aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/accessibility/contrast/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/accessibility/dasher/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/accessibility/mousetweaks/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/AMB-plugins/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/FIL-plugins/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/MMA/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/aacgain/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/abcde/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/adlplug/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/aeolus/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/airwave/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/amarok/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ams-lv2/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ams/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/5.nix162
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/as-flags.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/default.nix181
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ario/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/artyFX/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ashuffle/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/asunder/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/aucatctl/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/audacious/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/audacity/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/aumix/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/autotalent/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/default.nix101
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/dfu-util.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bambootracker/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/baudline/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bchoppr/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/beast/patch.patch187
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bitmeter/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix98
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bjumblr/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bristol/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bschaffl/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bsequencer/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bshapr/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/bslizr/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cadence/default.nix105
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/calf/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cantata/default.nix108
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/caps/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/carla/default.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/caudec/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cava/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cd-discid/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch468
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/utils.patch68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/0001-Drop-baked-in-build-date-for-r13y.patch39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/0002-Prepend-libSDL.dylib-to-macOS-SDL-loader.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/chuck/darwin-limits.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/chuck/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/clementine/default.nix135
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/clerk/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cmt/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cmus/default.nix136
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cmus/option-debugging.patch42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cmusfm/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/crip/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/csa/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-manual/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-qt/rtmidipath.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/csound/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/curseradio/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/curseradio/mpv.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/default.nix117
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/infobar.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/lyricbar.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/mpris2.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/denemo/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/dfasma/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/dirt/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/distrho/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/drumkv1/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/dsf2flac/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/easytag/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ecasound/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/eflite/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/eflite/format.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ekho/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ensemble-chorus/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/eq10q/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/edit.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-gcc6.patch57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/gcc6.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/eteroj.lv2/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust1.nix208
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2.nix222
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2csound.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2firefox.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jackrust.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2ladspa.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2lv2.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faustlive.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/fdkaac/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/flac/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/flac123/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/flacon/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/fmit/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/fmsynth/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/fomp/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/freewheeling/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/freqtweak/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/friture/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/friture/factorial.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/friture/unlock_constraints.patch34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/fverb/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/game-music-emu/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gbsplay/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/geonkick/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/giada/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gigedit/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gjay/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gmpc/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gmpc/libmpd-11.8.17-remove-strndup.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gmu/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/goattracker/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gpodder/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gpodder/disable-autoupdate.patch55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gradio/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/grandorgue/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/greg/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gspeech/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gtklick/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gtkpod/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/guitarix/default.nix132
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gwc/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gxmatcheq-lv2/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/helm/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/hydrogen/0.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/hydrogen/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/i-score/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/iannix/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/id3v2/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/industrializer/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/infamousPlugins/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ingen/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ir.lv2/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jaaa/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jack-capture/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jack-rack/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jackmeter/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jackmix/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jackmix/no_error.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jalv/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jamin/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/jamulus/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/japa/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/keyfinder-cli/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/keyfinder/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/kid3/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/klick/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/klystrack/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/kmetronome/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-sdk/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-sdk/ladspah.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lash/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lash/gcc-47.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lash/socket.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch137
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/librespot/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lingot/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/linuxband/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lmms/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lollypop/default.nix112
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix175
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ltc-tools/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/luppp/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lv2-cpp-tools/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lv2bm/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/lyrebird/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mamba/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/buf_rect.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mi2ly/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mi2ly/default.upstream3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mid2key/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/midas/generic.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/midas/m32edit.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/midas/x32edit.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mikmod/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/milkytracker/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mimic/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mimms/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mixxx/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/moc/default.nix104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch800
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/molot-lite/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/monkeys-audio/buildfix.diff49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mooSpace/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/iris.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/local.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/moped.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mopify.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mpd.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mpris.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/musicbox-webclient.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/somafm.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/soundcloud.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/spotify-tunigo.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/spotify.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/tunein.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mp3gain/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mp3info/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mp3splt/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mp3val/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mpc/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mpc123/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mpc123/use-gcc.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mpg123/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mpg321/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/munt/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mup/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mup/ghostscript-permit-file-write.patch5
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/muse/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/muse/fix-parallel-building.patch93
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/darwin.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/musikcube/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/musly/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/mympd/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ncmpc/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ncpamixer/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ncspot/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ninjas2/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/noise-repellent/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/version.patch37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/non/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/nootka/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/nootka/unstable.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/normalize/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/nova-filters/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/nuclear/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/openmpt123/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/opus-tools/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/opusfile/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/opusfile/include-multistream.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/opustags/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/orca-c/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/osmid/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/padthv1/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pamix/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pamixer/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/paprefs/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/parlatype/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/patchage/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/paulstretch/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/cyclone/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/gem/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/maxlib/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/mrpeach/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/zexy/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/petrifoo/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pianobar/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pianobooster/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/picoloop/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pithos/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/playbar2/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/plexamp/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/plugin-torture/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pmidi/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/polyphone/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ponymix/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/praat/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/projectm/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ptcollab/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/puddletag/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/default.nix91
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix113
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/puredata/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/qjackctl/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/qmidinet/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/qmmp/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/qsampler/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/qsynth/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/qtractor/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/qtscrobbler/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/quodlibet/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/r128gain/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/r128gain/ffmpeg-location.patch29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix100
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/radiotray-ng/no-dl-googletest.patch55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/rakarrack/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/rakarrack/fltk-path.patch35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/reaper/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/redoflacs/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/renoise/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/rhvoice/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/rhvoice/honor_nix_environment.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/rkrlv2/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/rosegarden/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/rubyripper/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/samplv1/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sayonara/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/schismtracker/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/seq24/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/seq24/mutex_no_nameclash.patch58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/seq66/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/setbfree/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sfizz/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sfxr/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/shntool/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/shortwave/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sisco.lv2/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/snapcast/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/snd/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sndpeek/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sndpeek/pthread.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sonata/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix116
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sorcer/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix106
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/soundscape-renderer/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/soundtracker/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/spectmorph/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/spectrojack/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/speech-denoiser/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/spek/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/split2flac/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/default.nix168
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/audio/spotify/update.sh88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/wrapper.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/spotifyd/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/spotifywm/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/squeezelite/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/squishyball/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/squishyball/gnu-screen.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ssrc/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/stone-phaser/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/strawberry/default.nix99
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/streamripper/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/string-machine/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sublime-music/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/sunvox/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/surge/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/svox/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/synthv1/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/talentedhack/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tambura/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tamgamp.lv2/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tetraproc/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/timemachine/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tony/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/transcode/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/traverso/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/Gemfile.lock13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/gemset.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tuijam/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/tunefish/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/uade123/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/vimpc/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix89
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/vkeybd/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/vmpk/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/vocal/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/vocproc/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/vorbis-tools/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/waon/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/wavegain/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/whipper/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/whipper/paths.patch32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/wolf-shaper/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/x42-avldrums/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/x42-gmsynth/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/xmp/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/xtuner/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/30_conf.patch18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/ympd/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/yoshimi/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/zita-ajbridge/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/zita-at1/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/zita-njbridge/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/backup/areca/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/backup/deja-dup/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/backup/vdmfec/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/backup/vorta/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/aeon/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-gold.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin.nix94
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcdeb/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix1932
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/clightning.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/cryptop/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/dashpay.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/dcrd.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/dero.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/digibyte.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/dogecoin.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/ergo/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/ethabi.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/exodus/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/litecoin.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/lnd.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/masari.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/namecoin.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix1077
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/update.sh6
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh45
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/pivx.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/quorum.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/stellar-core.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/sumokoin.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/tessera.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/vertcoin.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh98
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/default.nix100
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix956
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/wownero.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/zcash/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/fix-paths.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix145
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/fix-paths.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/ly/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/sddm/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/aewan/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/amp/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/android-studio/common.nix217
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/android-studio/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/apostrophe/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/allegro-glibc-2.30.patch8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/default.nix128
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia-deps.nix23
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia-make-deps.sh37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/atom/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/atom/env.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/bless/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/bluefish/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/bluej/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/brackets/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/bvi/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/bviplus/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/code-browser/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/codeblocks/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/codeblocks/writable-projects.patch18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/default.nix113
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/deps.json57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/dont-check-update.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/deadpixi-sam/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/dhex/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/dit/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/default.nix159
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix662
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/ed/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/edbrowse/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/edit/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/elvis/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix4011
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/emacs2nix.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/emacspeak/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/libgenerated.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix177
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix626
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/pod-mode/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json107144
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix16
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-elpa4
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-from-overlay19
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa.el434
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-org4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/updater-emacs.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/26.nix8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/27.nix8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/at-fdcwd.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/generic.nix199
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix120
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/site-start.el57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/featherpad/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/flpsed/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/focuswriter/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/fte/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/geany/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/geany/with-vte.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/glow/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix158
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/gobby/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/gophernotes/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/greenfoot/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/hecate/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/hecate/deps.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/heme/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/hexcurse/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/hexdino/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/hexedit/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/howl/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/ht/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/ht/gcc7.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jedit/build.xml.patch257
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jedit/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/common.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/default.nix425
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/update.pl92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/joe/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jucipp/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jupp/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock119
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix429
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-python.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/wrapper.nix7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kibi/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kile/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/kodestudio/default.nix134
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/leafpad/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/leo-editor/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/lighttable/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/lite/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/manuskript/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/marker/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/mg/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/micro/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/mindforger/build.patch91
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/mindforger/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/mle/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/moe/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/monodevelop/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/nano/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/ne/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/nedit/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/default.nix141
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/gnvim/wrapper.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/qt.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/gemset.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/system_rplugin_manifest.patch29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/utils.nix160
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix120
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/netbeans/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/notepadqq/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/nvi/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/nvpy/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/okteta/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix177
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/quilter/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/qxmledit/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/qxmledit/qxmledit.json6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/qxw/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/rednotebook/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/retext/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/default.nix143
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/r-location.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/scite/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/setzer/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/sigil/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/standardnotes/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/2/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/3/common.nix158
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/tecoc/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/common.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/darwin.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/darwin.patch29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/texmaker/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/texstudio/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/10/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/10/deps.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/11/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/11/deps.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/texworks/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/thonny/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/tiled/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/tweak/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/typora/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vbindiff/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vim/cflags-prune.diff15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vim/common.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vim/configurable.nix190
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vim/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vim/ft-nix-support.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim-configurable.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim.nix186
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim.patch204
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vim/vimacs.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vis/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/viw/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/generic.nix96
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/editors/vscode/update-vscode.sh29
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/editors/vscode/update-vscodium.sh28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/vscode.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/wily/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/wxhexeditor/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/wxhexeditor/missing-semicolon.patch35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/xmlcopyeditor/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/xmlcopyeditor/xmlcopyeditor.patch36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/yi/wrapper.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/zile/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/dcw.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/gshhg.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/grass/default.nix110
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/grass/no_symbolic_links.patch37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/qgis/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/qmapshack/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/saga/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/gis/zombietrackergps/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix89
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix105
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/akira/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/alchemy/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/animbar/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/antimony/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/antimony/paths-fix.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/apitrace/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/apngasm/2.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/apngasm/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/autotrace/default.nix125
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/avocode/default.nix102
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/awesomebump/qtnproperty-parallel-building.patch9
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/azpainter/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/batik/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/c3d/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/comical/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/comical/wxgtk-2.8.patch36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/cq-editor/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/darktable/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/deskew/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/dia/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/digikam/default.nix138
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/displaycal/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/djview/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/dosage/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/drawing/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/drawio/default.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/drawpile/default.nix117
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/epeg/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/exrtools/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/f3d/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/fbida/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/feh/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/fig2dev/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/fluxus/default.nix96
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/fluxus/fix-build.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/fondo/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/freecad/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/freepv/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/fstl/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor2/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/geeqie/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/default.nix182
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix219
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/plugins/patches/focusblur-glib.patch200
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/remove-cc-reference.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/glabels/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix141
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gocr/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/goxel/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/goxel/disable-imgui_ini.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gpicview/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gqview/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/grafx2/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/compat.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/disable-popen.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix109
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/gthumb/default.nix111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/guetzli/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/hugin/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/hydrus/default.nix112
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/ideogram/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/Gemfile.lock23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/gemset.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/imagej/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix94
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/imgcat/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/imgp/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/imv/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/default.nix151
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/ipe/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/jpeg-archive/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/jpeginfo/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/jpegoptim/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/jpegrescan/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/k3d/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/kcc/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/kodelife/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/krita/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/krop/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/ktikz/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/leocad/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/lightburn/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/luminance-hdr/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix99
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/meh/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/meme/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/meshlab/default.nix96
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/meshlab/meshlab.desktop14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/mozjpeg/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/mtpaint/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/mypaint/default.nix100
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/nomacs/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/ocrad/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/openimageio/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/openscad/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/panotools/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/paraview/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/pbrt/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/pbrt/openexr-cmake-3.12.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/pencil/default.nix106
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/photivo/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/photivo/gcc6.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflare/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflow/CMakeLists.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflow/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/photoqt/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/phototonic/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/pinta/default.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/potrace/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/pqiv/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/processing/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qimgv/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qimgv/qt5-12-compat.diff13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qiv/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qiv/default.upstream3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qosmic/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qvge/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qvge/set-graphviz-path.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/qview/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/rapcad/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/rawtherapee/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/runwayml/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/rx/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/default.nix94
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/preload.c170
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/dsseries/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/git.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/config.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/frontends.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/xsane.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/scantailor/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/screencloud/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/shotwell/default.nix110
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/shutter/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/solvespace/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/swingsane/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/sxiv/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix127
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/default.nix18
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/fetch-language-hashes35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/languages.nix289
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/tesseract3.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/tev/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/ufraw/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix115
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/viewnior/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/vimiv/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/wings/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/xaos/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/xfig/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/xfractint/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/xlife/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/xournal/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/xzgv/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/yacreader/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/yed/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/yeetgif/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/zgv/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/graphics/zgv/switch.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-calendar.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-mime.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-notes.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-search.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch190
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akonadiconsole.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/akregator.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ark/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/baloo-widgets.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/bomber.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/bovo.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/calendarsupport.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/default.nix214
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/dolphin.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/dragon.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/elisa.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/eventviews.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/fetch.sh1
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ffmpeg-path.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/filelight.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/granatier.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/gwenview.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/incidenceeditor.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/k3b.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kaddressbook.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kalarm.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kalarmcal.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kalzium.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kapman.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kapptemplate.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kate.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/katomic.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kblackbox.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kblocks.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kbounce.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kbreakout.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kcachegrind.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kcalc.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kcalutils.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kcharselect.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kcolorchooser.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdebugsettings.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdeconnect-kde.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdegraphics-mobipocket.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdenlive.nix104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-addons.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdf.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdialog.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kdiamond.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/keditbookmarks.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kfind.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kfloppy.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kgeography.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kget.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kgpg.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/khelpcenter.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kidentitymanagement.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kig.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kigo.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/killbots.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kimap.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kio-extras.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kipi-plugins.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kitinerary.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kldap.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kleopatra.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/klettres.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/klines.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmag.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmahjongg.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmail-account-wizard.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmail.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmailtransport.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmbox.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmime.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmines.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmix.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kmplot.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/knavalbattle.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/knetwalk.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/knights.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/knotes.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kolf.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kollision.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kolourpaint.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kompare.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/konqueror.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/konquest.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/konsole.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kontact.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kontactinterface.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/korganizer.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kpat.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kpimtextedit.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kpkpass.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kqtquickcharts.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/krdc.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kreversi.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/krfb.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kruler.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kshisen.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ksmtp/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ksmtp/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kspaceduel.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ksquares.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ksudoku.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ksystemlog.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kteatime.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ktimer.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ktnef.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/ktouch.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kturtle.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kwalletmanager.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/kwave.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libgravatar.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkcddb.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkdcraw.nix13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkdegames.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkdepim.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkexiv2.nix13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkgapi.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkipi.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkleo.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkmahjongg.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libkomparediff2.nix7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libksane.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/libksieve.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/mailcommon.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/mailimporter.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/marble.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/mbox-importer.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/messagelib.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/minuet.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/mlt-path.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/okular.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/picmi.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/pim-data-exporter.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/pimcommon.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/print-manager.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/rocs.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/spectacle.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/srcs.nix1734
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/kde/yakuake.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/logging/humioctl/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/1password/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/OSCAR/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/abook/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/airtame/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/albert/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/almanah/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ape/apeclex.nix8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ape/clex.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ape/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/appeditor/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/apvlv/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/apvlv/fix-build-with-poppler-0.73.0.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/archiver/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/archivy/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/artha/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/artha/gio-underlink.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/audio/sox/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/autospotting/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/avrdudess/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix115
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/barrier/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/batsignal/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/bb/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/bemenu/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/bibletime/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/bicon/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/birdtray/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/bleachbit/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/blender/darwin.patch59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/blender/default.nix151
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/blender/fix-include.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/blogc/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/blugon/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/break-time/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/brewtarget/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/buku/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/calcurse/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/default.nix171
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/candle/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cardpeek/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/build.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/default.nix8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/unstable.nix8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/catclock/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cbatticon/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/charm/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cheat/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cherrytree/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cherrytree/subprocess.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cipher/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/clight/clightd.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/clight/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/clipcat/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/clipit/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/clipmenu/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cmatrix/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cointop/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/colort/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/confclerk/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/coolreader/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/copyq/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/corectrl/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cpu-x/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/crumbs/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ctodo/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cum/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/uranium.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/plugins.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/cura/stable.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/curaengine/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/curaengine/stable.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dasel/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dbeaver/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ddcui/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ddgr/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/deco/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/devilspie2/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/diffpdf/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix142
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ding/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ding/dict.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15142.patch72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15143.patch39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15144.patch111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15145.patch28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-18804.patch32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/fix_hongfuzz_crash.patch51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dmensamenu/dmenu-path.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dmenu/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dockbarx/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/doing/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/doing/Gemfile.lock25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/doing/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/doing/gemset.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dotfiles/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dozenal/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dstask/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dunst/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/dupeguru/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/eaglemode/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch1091
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/effitask/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/electron-cash/default.nix89
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/dash.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/default.nix159
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/ltc.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/update.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/elf-dissector/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/elogind/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/emem/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/epdfview/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/epr/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/et/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/evtest/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/exercism/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/extract_url/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/far2l/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fbreader/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fehlstart/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fetchmail/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fff/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/filet/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/firestarter/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/flamerobin/default.nix33
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fme/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/font-manager/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fontpreview/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/formatter/default.nix78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/formatter/fix-paths.patch53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/freemind/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fslint/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fsv/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/fuzzel/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gImageReader/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/galculator/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/systemd.patch30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gcal/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gcalcli/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gcstar/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/genxword/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/getxbook/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/girara/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gitit/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gkrellm/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gksu/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/glava/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/glom/default.nix131
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/find-config-file-in-system-etc-dir.patch18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gmtp/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-firmware-updater/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/go-jira/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-check-for-updates.patch49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock112
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/gemset.nix466
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gomatrix/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/googleearth/default.nix106
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/googler/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gopacked/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gosmore/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpa/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gphoto2/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpsprune/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpx/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpxlab/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpxsee/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gramps/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/grip/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/grsync/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gsctl/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gummi/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gv/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gxmessage/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/gxneur/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hamster/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/haxor-news/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hdate/default.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/heimer/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hello/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hivemind/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/houdini/default.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/houdini/runtime.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hovercraft/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hr/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hstr/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/html5validator/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/revision.json5
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/update.sh18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/hugo/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/icesl/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ideamaker/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/imag/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/inkcut/avoid-name-clash-between-inkcut-and-extension.patch85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/inkcut/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ipmiview/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix434
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock154
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix726
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/update.sh15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jgmenu/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jigdo/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/josm/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jp2a/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/jrnl/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix172
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/kanboard/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/kapow/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/kdbplus/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/default.nix118
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch144
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch1
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/community.nix131
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/random.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/keeweb/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/khal/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/khal/skip-broken-test.patch33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/khard/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/kiwix/default.nix109
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/kjv/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/klayout/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/kondo/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/koreader/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/krename/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/krusader/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/kupfer/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/latte-dock/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/lenmus/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/libosmocore/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/librecad/default.nix94
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/lifelines/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/lighthouse/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/llpp/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/loxodo/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/lutris/default.nix119
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix120
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/lyx/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/madonctl/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/madonctl/deps.nix228
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/makeself/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mako/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mapproxy/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/marktext/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mbutil/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mdp/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mediainfo/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/megacmd/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/default.nix120
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/install-megasync.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/noinstall-distro-version.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/memo/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mencal/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/menumaker/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/merkaartor/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/metar/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/michabo/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/milu/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/minder/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/minergate/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/fix-failing-test.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/fix-failing-test.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/testinputs.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/testinputs.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/moolticute/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mop/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mop/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mps-youtube/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mpvc/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mu-repo/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mucommander/default.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/multibootusb/default.nix114
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/1.17.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/darwin.patch30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/default.nix108
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/default.upstream7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mwic/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix189
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-swig-build.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch187
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/mystem/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/navi/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/navipowm/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/navit/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/neap/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/nix-tour/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/nixnote2/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/nnn/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/noice/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/notable/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/notejot/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/notify-osd/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/nrsc5/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/nut/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/obinskit/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/obsidian/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ocropus/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/default.nix172
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix337
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/printtimegenius-logging.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ola/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/olifant/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/omegat.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/default.nix181
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/fix-paths.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/oneko/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/openambit/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/openbox-menu/with-svg.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/openbrf/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/opencpn/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/openjump/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/openrgb/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/opentx/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/orca/default.nix117
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/orpie/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/osmctools/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/overmind/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/overmind/deps.nix147
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pastel/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pbpst/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pdfdiff/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pdfmod/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pdfpc/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/peaclock/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pell/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/perkeep/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pgadmin/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pgmanage/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/phwmon/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pinfo/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pipr/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/plank/default.nix89
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch9
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/plater/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/playonlinux/default.nix113
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/plover/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/polybar/default.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/posterazor/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/data.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/tools.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/printrun/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/procmail/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/projectlibre/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix98
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pstree/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pt/.bundle/config2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pt/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pt/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pt/gemset.nix273
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/tw-version.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pueue/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pwsafe/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pydf/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pyditz/cerberus.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pyditz/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pytrainer/default.nix94
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/pytrainer/fix-paths.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qcad/default.nix102
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qdirstat/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qlandkartegt/default.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qlandkartegt/garmindev.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qlcplus/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qmetro/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qolibri/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qpdfview/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qsudo/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/qtpass/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ranger/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/razergenie/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/575.patch51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix147
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/regextester/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rescuetime/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/robo3t/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/robomongo/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-emoji/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-file-browser/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rofi/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rofimoji/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rsclock/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rsibreak/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/rtv/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/safeeyes/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sampler/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sbagen/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sc-im/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sdcv/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sent/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sequeler/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sequelpro/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sidequest/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sigal/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/simplenote/default.nix97
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/slade/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/slade/git.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/slic3r/boost-compile-error.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/slic3r/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/slmenu/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/slstatus/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/smos/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/snowsql/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/solaar/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/spacefm/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/spacefm/glibc-fix.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/speedread/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sqliteman/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ssocr/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ssw/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/stag/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/stog/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/stog/install.patch18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/stretchly/default.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/styx/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/subsurface/default.nix111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/swappy/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix93
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/synapse/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix93
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch97
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tabula/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taizen/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tasknc/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskopen/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tasksh/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskwarrior/0001-bash-completion-quote-pattern-argument-to-grep.patch28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tdrop/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/teleprompter/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tellico/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tellico/hex.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/termdown/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/teseq/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tickrs/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/timewarrior/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tint2/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tipp10/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tiv/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tmatrix/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tnef/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/todiff/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/todoist/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/todolist/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix149
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tomboy/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/toot/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tootle/default.nix78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/topydo/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/translate-shell/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tthsum/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tuir/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tut/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tut/deps.nix318
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/twmn/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/tzupdate/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/udevil/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/udiskie/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/default.nix121
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/fix-extensions.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/fix-path.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/upwork/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/urlscan/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/urlview/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/usync/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/valentina/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/variety/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/vcal/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/veracrypt/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/verbiste/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/vifm/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/viking/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/visidata/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/vit/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/volnoti/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/vp/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/vue/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/vym/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/waybar/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/wcalc/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/weather/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/web-media-controller/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/wego/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/wego/deps.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/wikicurses/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/with-shell/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/wmname/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/wofi/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/wordnet/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/worker/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/workrave/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/wtf/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xastir/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xautoclick/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xbattbar/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xca/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xchm/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xcruiser/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xdragon/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xfe/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xfontsel/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xiphos/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xkbd/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xkbmon/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xmenu/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xmind/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xmrig/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xneur/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xpad/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/default.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xrq/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xscope/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xsuspender/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xsw/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xsw/parse.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xteddy/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xxkb/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/xygrib/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/yarssr/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/yate/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/yokadi/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/yubioath-desktop/0001-replace-git-with-normal-python-package.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/cb/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/core/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zettlr/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zk-shell/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zola/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/misc/zscroll/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/3proxy/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/Sylk/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/brig/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix164
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix264
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/README.md69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix316
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix210
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix92
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py121
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix965
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix206
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix965
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/mozilla.ascbin0 -> 6109 bytes
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix965
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix93
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix392
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix364
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix157
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix147
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix106
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/buildsystem.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libcss.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libdom.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libhubbub.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsfb.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsgif.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnslog.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnspsl.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libparserutils.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libsvgtiny.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix159
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix414
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix358
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix218
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix42
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.py105
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix96
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix32
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix100
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix108
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/c14/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/calls/default.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cawbird/default.nix78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/charles/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cloudflared/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/click/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix161
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix269
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix79
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh113
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeval/schema.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/0.11.nix7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix11477
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/package.json3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix336
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/cloudfoundry/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/linuxbox/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json1059
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix30
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all-providers22
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider178
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix195
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/compactor/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/datovka/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/davmail/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/drive/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/drive/deps.nix192
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/droopy/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/cli.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/dsvpn/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/errbot/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/esniper/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/firehol/default.nix108
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/firehol/iprange.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/flent/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/flent/http-getter.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/flexget/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/gdrive/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/gmailctl/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/gui.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/server.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/hydroxide/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ids/daq/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ids/snort/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix158
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ike/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix126
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix89
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix36
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json113
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix6773
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix40
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix98
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix91
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix102
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/go-mod.patch50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix238
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix540
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix1426
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix98
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix422
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop9
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile1
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix150
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch106
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix41
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix143
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix120
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix180
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix89
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix148
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix96
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix113
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix106
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix154
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix136
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/insync/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ipget/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/iptraf/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/bip/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/communi/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/convos/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/ii/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/sic/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix91
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/jmeter/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/jnetmap/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/libcoap/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/lieer/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/linssid/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/bubblemail/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix117
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix121
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix108
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix96
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix184
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix615
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix181
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix665
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix343
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix340
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mkchromecast/default.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mpop/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/msmtp/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/msmtp/paths.patch97
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/default.nix150
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/fix-rnnoise-argument.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/overlay.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/default.nix18
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-env.nix542
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix6929
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/package.json3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ncgopher/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ndppd/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/netperf/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/nextdns/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/nload/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/nym/default.nix51
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/nym/update.sh37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/offrss/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/omping/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/onionshare/default.nix113
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch134
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/openbazaar/client.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/openbazaar/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ostinato/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/owamp/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/deluge/1/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/deluge/2/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix80
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix94
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix94
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/pcloud/default.nix110
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ping/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/pjsip/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/protocol/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ps2client/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/pyload/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/qv2ray/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix89
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix210
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix115
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/putty/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix93
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix105
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/scaleft/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/seafile-client/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/siproxd/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sniproxy/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/soapui/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/spideroak/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/station/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/super-productivity/default.nix106
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/backintime/qt.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/casync/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/desync/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix312
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/sync/unison/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/syncplay/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing/default.nix109
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/tcpkali/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/termius/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/testssl/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/trebleshot/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/tsung/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/twtxt/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/umurmur/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/utahfs/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/versus/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/vnstat/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile5
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/websocketd/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/wg-bond/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/znc/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/networking/znc/modules.nix198
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/abiword/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/aesop/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/agenda/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c_CVE-2014-8123.patch18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/antiword/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix48
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/office/atlassian-cli/wrapper.sh20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/autokey/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/autokey/remove-requires-dbus-python.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/beancount/bean-add.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/bookworm/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/calligra/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/calligra/qt5_11.patch98
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/cb2bib/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/csv2odf/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/docear/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/elementary-planner/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/envelope/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/espanso/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/fava/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/flexibee/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/gnucash/default.nix108
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/gnumeric/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/grisbi/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/gtg/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/homebank/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/ib/controller/default.nix162
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/ib/tws/default.nix96
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/impressive/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/jabref/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/jameica/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/keepnote/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/kexi/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/khronos/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/kmymoney/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/ktimetracker/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/ledger-autosync/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/Gemfile.lock61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/gemset.nix211
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/ledger/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/README.md9
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/default.nix431
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/download-list-builder.sh3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/gen-shell.nix29
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py328
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-additions.json5
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix884
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/override.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix856
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/wrapper.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/wrapper.sh31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/xdg-open-brief.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/marp/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/default.nix147
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/minetime/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/mmex/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/moneyplex/default.nix122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/mytetra/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/notes-up/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/osmo/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/p3x-onenote/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperless/default.nix174
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/django-filter.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperless/withConfig.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/openpaperwork-core.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/openpaperwork-gtk.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-backend.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-gtk.nix105
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-shell.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/src.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/pinpoint/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/planner/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/portfolio/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/pympress/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/qnotero/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/qownnotes/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/scribus/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/scribus/unstable.nix91
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/skanlite/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/skrooge/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/desktop_items.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/generic.nix129
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/spice-up/default.nix78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/tagainijisho/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/timekeeper/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/timetable/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/gemset.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/timeular/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/todoman/default.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/treesheets/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/trilium/default.nix119
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/tryton/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/tudu/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/tusk/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/vnote/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/watson/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/wordgrinder/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/wpsoffice/default.nix173
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/zanshin/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/zim/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/zotero/default.nix147
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/zotero/zotero.sh3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/airspy/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/aldo/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/chirp/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/cubicsdr/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/dablin/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/dabtools/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/direwolf/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/direwolf/udev-fix.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/dmrconfig/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/dsd/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/dump1090/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/ebook2cw/Makefile.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/ebook2cw/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/fldigi/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/fllog/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/flmsg/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/flrig/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/flwrap/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix295
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/ais.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/default.nix288
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/gsm.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/limesdr.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/nacl.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/osmosdr.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/rds.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix135
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix134
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/gqrx/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/hackrf/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/inspectrum/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/kalibrate-hackrf/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/kalibrate-rtl/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/limesuite/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/minimodem/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/pyradio/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/qradiolink/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/qsstv/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/quisk/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/rtl-ais/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/rtl_433/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/sdrangel/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/soapyairspy/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/soapybladerf/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/soapyhackrf/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/soapyremote/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/soapyrtlsdr/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/soapysdr/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/soapyuhd/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/svxlink/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/tlf/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/tqsl/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/uhd/default.nix160
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/uhd/neon.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/unixcw/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/unixcw/remove-use-of-dlopen.patch677
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/urh/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/welle-io/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/wsjtx/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/wsjtx/super.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/radio/xlog/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/astrolabe-generator/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/aarch64.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/clang.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/kstars/indi-fix.patch50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/assets.patch100
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/config.patch49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/constexpr.patch91
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/vrpn.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/phd2/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/N3/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/ants/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/bayescan/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/bftools/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/blast/default.nix108
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/blast/no_slash_bin.patch184
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/bppsuite/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/bwa/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/delly/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/diamond/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/diamond/diamond-0.8.36-no-warning.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/emboss/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/exonerate/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/igv/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/itsx/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/iv/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/kent/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/kssd/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/last/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/lumpy/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/macse/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/manta/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/megahit/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/migrate/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/minia/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/minia/no-bundle.patch222
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrbayes/builder.sh9
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/muscle/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/muscle/muscle-3.8.31-no-static.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/ncbi-tools/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/neuron/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/octopus/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/paml/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/platypus/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix39
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/science/biology/poretools/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/quast/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/raxml/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/seaview/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/spades/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/stacks/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/star/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/strelka/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/sumatools/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/svaba/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix48
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/science/biology/trimal/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/truvari/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/varscan/default.nix36
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/whisper/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/biology/xenomapper/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/gwyddion/codegen.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix53
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/LicenseManager.desktop9
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/MarvinSketch.desktop10
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/MarvinView.desktop10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/molden/dont_register_file_types.patch29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/openmolcas/openblasPath.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/adms/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/alliance/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/bitscope/packages.nix146
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/caneda/gcc6.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/csxcad/searchPath.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/install.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrokdecode4dsl.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/qt515.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix97
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7_fixer.c134
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/flatcam/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/flatcam/release.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fparser/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fped/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/geda/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix146
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix272
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/i18n.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix31
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/update.sh193
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/0001-strip-bin-prefix.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/0002-fix-format-security.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/nanovna-saver/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/openems/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/drop-hardcoded-prefix.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/gcc6-fixes.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qucs/cmakelists.patch34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qucs/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xoscope/gtkdepre.diff58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/geometry/antiprism/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/geometry/drgeo/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/geometry/drgeo/struct.patch68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/geometry/gama/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/abc/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/abella/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/aiger/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/aspino/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/glucose-fenv.patch65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/minisat-fenv.patch65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/beluga/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/boolector/cmake-gtest.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/boolector/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/btor2tools/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/cadical/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/cedille/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/celf/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/clprover/clprover.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/coq/default.nix175
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc3/cvc3-2.4.1-gccv6-fix.patch76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc4/minisat-fenv.patch65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.upstream3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/elan/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/eprover/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/gappa/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/glucose/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/glucose/syrup.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/hol/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/iprover/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/jonprl/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/key/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/lci/default.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/lean/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/lean2/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo2/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo2/default.upstream6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/logisim/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/mcy/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/minisat/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/monosat/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/ott/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/otter/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/sbv-7.13.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/z3.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/picosat/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/poly/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingcon.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingo.upstream6
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/prover9/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/proverif/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/redprl/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/monoid.patch51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/patch.patch200
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/satallax/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/satallax/fix-declaration-gcc9.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/saw-tools/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/spass/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/statverif/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/stp/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/tptp/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/twelf/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/vampire/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/verifast/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/verit/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/yices/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/4.4.0.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/tptp.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/fasttext/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/maps.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix98
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/streamlit/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/LiE/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/R/default.nix118
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/R/fix-failing-test.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/R/no-usr-local-search-paths.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/R/setup-hook.sh7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/almonds/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/bcal/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/bliss/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/darwin.patch47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/default.nix142
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/python.patch70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/calc/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/calculix/calculix.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/calculix/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/cbc/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/cemu/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/clp/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/cntk/default.nix105
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/colpack/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/cplex/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/csdp/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/ecm/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/eukleides/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/form/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/fricas/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/gap/default.nix185
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/geogebra/default.nix89
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/getdp/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/gfan/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/gfan/gfan-0.6.2-cddlib-prefix.patch55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/giac/default.nix110
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/ginac/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/glsurf/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/gmsh/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/gretl/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/gurobi/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/hmetis/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/jags/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/lp_solve/isnan.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/lrcalc/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/10.nix136
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/11.nix150
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/9.nix122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/default.nix164
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/maxima/default.nix105
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/msieve/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/mxnet/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/nasc/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/nauty/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/nota/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/palp/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/pari/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/pcalc/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/perseus/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/polymake/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/pspp/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/pynac/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/ries/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/ripser/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/rofi-calc/0001-Patch-plugindir-to-output.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/rofi-calc/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/README.md78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/default.nix172
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/dist-tests.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/flask-oldsessions.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/flask-openid.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/docutils-0.15.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/fix-ecl-race.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sympow-cache.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/pybrial.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/python-openid.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix189
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix179
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-tests.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix137
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix156
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagenb.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/scilab-bin/default.nix104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/scilab/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/scotch/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/singular/default.nix118
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/symmetrica/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/weka/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/yacas/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/math/zegrapher/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/medicine/dcmtk/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/boinc/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/colmap/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/convertall/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/cytoscape/gen_vmoptions_to_homedir.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/fityk/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/control.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/viewer.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/gephi/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/beta.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/default.upstream5
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/gplates/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/ocaml-3.12.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/ocaml-includes.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/nextinspace/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/fakegit.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-git.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-svn.nix5
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-main.nix6
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-git.sh64
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-svn.sh50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/rink/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/5.nix91
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/disable_libc_dicts_root5.patch27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/purify_include_paths_root5.patch204
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/setup-hook.sh13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch101
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/sw_vers_root5.patch104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/local_config.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/pyparsing-fix.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/xhtml2pdf.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix112
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/tulip/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/misc/vite/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/elmerfem/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/elmerfem/fix-cmake.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/compat.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/pythia83xx.patch55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/xfitter/undefined_behavior.patch454
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/programming/fdr/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/programming/groove/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/programming/plm/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/programming/scyther/cli.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/programming/scyther/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/robotics/yarp/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/search/doodle/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/search/grepcidr/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/search/grepm/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/search/recoll/default.nix105
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/system/glances/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/system/glances/skip-failing-tests.patch52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/system/monitor/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix142
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/aminal/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/cool-retro-term/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/eterm/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/evilvte/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/guake/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/havoc/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/iterm2/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/iterm2/disable_updates.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix143
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/kitty/fix-paths.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lilyterm/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lxterminal/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lxterminal/respect-xml-catalog-files-var.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/microcom/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/mlterm/default.nix122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/nimmm/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/roxterm/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-autocomplete-all-the-things/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-bidi/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-font-size/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perls/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-resize-font/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-tabbedex/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/256-color-resources.patch255
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/9.06-font-width.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/makefile-phony.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/sakura/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/st/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/st/xst.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/stupidterm/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/add_errno_header.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/remove_ldflags_macos.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/url_regexp_trailing.patch27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0002-expose-function-for-setting-cursor-position.patch61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/wrapper.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termonad/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/tilda/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/wayst/default.nix91
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/wayst/utf8proc.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/x3270/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix119
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xterm/sixel-256.support.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xtermcontrol/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/yaft/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/arch/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/bcompare/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/blackbox/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/bumpver/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/default.nix17
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh9
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix542
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-packages.nix9071
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/package.json3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch302
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/cvsps/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/cvsq/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/dvc/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/dvc/dvc-daemon.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/fossil/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gerrit/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bump2version/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix265
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-dbx/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cinnabar/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codereview/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-gone/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-my/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-codecommit/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-standup/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/zsh-completion.patch32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subset/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-trim/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vanity-hash/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix353
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch26
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/update.sh19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gita/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitbatch/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitbatch/deps.nix543
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/deps.nix121
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/romkatv_libgit2.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/legit/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix273
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/thicket/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/thicket/shards.nix8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-backup/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-repo/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-review/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/git-up/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitea/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix119
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile.lock35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/default.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/gemset.nix118
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/data.json13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/default.nix196
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/fix-grpc-ar.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock220
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix858
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch163
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile520
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock1527
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix5529
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/update.py242
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix14149
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitless/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitolite/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gitstats/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gogs/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gomp/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/gource/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/guitone/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/meld/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/mercurial/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/default.upstream8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/mr/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/nitpick/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/p4/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/p4v/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/peru/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/pijul/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/rcs/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/rcs/disable-t810.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch275
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock231
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix878
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sit/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix94
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/disable-npm-install.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/fetchNodeModules.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix43
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix89
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/src/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/srcml/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix127
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/subversion/default.nix130
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/tailor/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/vcsh/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/yadm/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/aegisub/default.nix137
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/bootstrap_logging.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/default.nix99
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/dynamic_install_dir.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/avxsynth/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/bino3d/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/bombono/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/bomi/default.nix118
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/byzanz/add-amflags.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/byzanz/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/catt/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/ccextractor/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/celluloid/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/cinelerra/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/clickshare-csc1/default.nix124
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/clipgrab/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/coriander/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/devede/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-automake-1.13.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-mga-strndup.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-imagemagick-0.7.0.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/dvdbackup/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/dvdstyler/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/default.nix122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/epgstation.152
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/package.json85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/use-mysql-over-domain-socket.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/ffmpeg-normalize/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/filebot/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/gnome-mplayer/fix-paths.patch87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/gnomecast/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/go-chromecast/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/gpac/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/handbrake/default.nix149
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/jftui/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kazam/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kazam/fix-paths.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kino/default.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/kmplayer_part-plugin_metadata.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/no-docs.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kodi/default.nix295
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kodi/plugins.nix552
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kodi/wrapper.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/lightworks/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/linuxstopmotion/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/makemkv/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/manim/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/manim/remove-dependency-constraints.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mapmap/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mediathekview/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/minitube/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mjpg-streamer/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mkclean/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mlv-app/aarch64-flags.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mlv-app/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/molotov/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/motion/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mpc-qt/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mplayer/default.nix230
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mpv/default.nix223
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/autoload.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/convert.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/convert.patch67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/mpris.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/sponsorblock.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mpv/wrapper.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mythtv/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/mythtv/disable-os-detection.patch31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/natron/config.pri20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/natron/default.nix129
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/default.nix125
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/fix-search-path.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/hardcode-ndi-path.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-move-transition.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/rename-obs-move-transition-cmake.patch34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/ogmtools/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/olive-editor/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/omxplayer/default.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/p2pvc/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/peek/default.nix86
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/pitivi/default.nix111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/pitivi/prevent-closure-contamination.patch23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/deps.nix28
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/update.sh71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/plex-mpv-shim/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/pyca/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/qarte/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/qmediathekview/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/qmplay2/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/qstopmotion/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/quvi/library.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/quvi/scripts.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/quvi/tool.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/screenkey/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/shotcut/default.nix102
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/simplescreenrecorder/fix-paths.patch35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/smplayer/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/smtube/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix100
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/streamlink/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/subdl/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/subtitleeditor/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/tartube/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/tivodecode/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/uvccapture/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vcs/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vcs/fonts.patch23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vdr/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vdr/plugins.nix340
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vdr/wrapper.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vlc/default.nix104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen-ng/default.nix71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen/ffmpeg-out-of-box.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/w_scan/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/webcamoid/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix96
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/wf-recorder/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/wxcam/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/xawtv/0001-Fix-build-for-glibc-2.32.patch63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/xawtv/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/xine-ui/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/xscast/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/xvidcap/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/xvidcap/xlib.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/8086tiny/builder.sh30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/8086tiny/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/arion/default.nix83
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/bochs-2.6.11-glibc-2.26.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/default.nix129
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/fix-build-smp.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/cntr/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/conmon/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/containerd/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix69
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.diff15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix93
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/update.py91
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/upstream-info.json23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/crun/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/default.nix226
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/distribution.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/gc.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-virtio/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/dumb-init/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/dynamips/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/ecs-agent/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/firectl/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/firectl/gomod.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/gvisor/containerd-shim.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix101
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/hercules/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/lkl/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/avoid-static-libtirpc-build.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/config.toml13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch130
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/libnvc.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qboot/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/9p-ignore-noatime.patch44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/CVE-2020-27617.patch43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/default.nix190
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/force-uid0-on-9p.patch81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/no-etc-install.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/sigrtminmax.patch30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/utils.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/qtemu/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/railcar/cargo-lock.patch435
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/railcar/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/remotebox/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/runc/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/seabios/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/singularity/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/spice-vdagent/timeout.diff84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/spike/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/tini/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/tinyemu/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/umoci/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-top/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-viewer/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-what/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtinst/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix235
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/extra_symbols.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix166
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/hardened.patch182
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/qt-env-vars.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/qtx11extras.patch16
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/vpcs/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-install-python.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.patch27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch104
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch165
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0004-makefile-use-efi-ld.patch36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.patch35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix181
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/acpica-utils-20180427.patch63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix258
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/packages.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/qemu-gluster-6-compat.diff95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/xsa-patches.nix488
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/xhyve/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/2bwm/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/awesome/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/berry/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/bevelbar/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/btops/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/btops/deps.nix120
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/cage/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/clfswm/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/clfswm/require-clx.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/cwm/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/git.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/fbpanel/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/fluxbox/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/fvwm/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/hikari/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/altlayout.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/pystatus.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/status.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/icewm/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/larswm/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/lwm/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/matchbox/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/neocomp/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/notion/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/openbox/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/oroborus/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/pekwm/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/picom/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/ratpoison/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/smallwm/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/stalonetray/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpish/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpish/paths.patch87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/bg.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/contrib.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/idle.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock-fancy.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/sway-config-no-nix-store-references.patch21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/tinywm/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/trayer/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/vwm/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/weston/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowchef/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowlab/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/libdockapp.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmCalClock.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/wmfs/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/wrapper.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/build.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/unstable.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/window-managers/yeahwm/default.nix58
3912 files changed, 380633 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/accessibility/contrast/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/accessibility/contrast/default.nix
new file mode 100644
index 000000000000..8f70f632cd6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/accessibility/contrast/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchFromGitLab
+, cairo
+, dbus
+, desktop-file-utils
+, gettext
+, glib
+, gtk3
+, libhandy_0
+, meson
+, ninja
+, pango
+, pkgconfig
+, python3
+, rustc
+, rustPlatform
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "contrast";
+ version = "0.0.3";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ group = "World";
+ owner = "design";
+ repo = "contrast";
+ rev = version;
+ sha256 = "0kk3mv7a6y258109xvgicmsi0lw0rcs00gfyivl5hdz7qh47iccy";
+ };
+
+ cargoSha256 = "0vi8nv4hkhsgqgz36xacwkk5cxirg6li44nbmk3x7vx7c64hzybq";
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ gettext
+ meson
+ ninja
+ pkgconfig
+ python3
+ wrapGAppsHook
+ glib # for glib-compile-resources
+ ];
+
+ buildInputs = [
+ cairo
+ dbus
+ glib
+ gtk3
+ libhandy_0
+ pango
+ ];
+
+ postPatch = ''
+ patchShebangs build-aux/meson_post_install.py
+ '';
+
+ # Don't use buildRustPackage phases, only use it for rust deps setup
+ configurePhase = null;
+ buildPhase = null;
+ checkPhase = null;
+ installPhase = null;
+
+ meta = with stdenv.lib; {
+ description = "Checks whether the contrast between two colors meet the WCAG requirements";
+ homepage = "https://gitlab.gnome.org/World/design/contrast";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jtojnar ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/accessibility/dasher/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/accessibility/dasher/default.nix
new file mode 100644
index 000000000000..43844d0c66bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/accessibility/dasher/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, lib, fetchFromGitHub
+, autoreconfHook, pkgconfig, wrapGAppsHook
+, glib, gtk3, expat, gnome-doc-utils, which
+, at-spi2-core, dbus
+, libxslt, libxml2
+, speechSupport ? true, speechd ? null
+}:
+
+assert speechSupport -> speechd != null;
+
+stdenv.mkDerivation {
+ pname = "dasher";
+ version = "2018-04-03";
+
+ src = fetchFromGitHub {
+ owner = "dasher-project";
+ repo = "dasher";
+ rev = "9ab12462e51d17a38c0ddc7f7ffe1cb5fe83b627";
+ sha256 = "1r9xn966nx3pv2bidd6i3pxmprvlw6insnsb38zabmac609h9d9s";
+ };
+
+ prePatch = ''
+ # tries to invoke git for something, probably fetching the ref
+ echo "true" > build-aux/mkversion
+ '';
+
+ configureFlags = lib.optional (!speechSupport) "--disable-speech";
+
+ nativeBuildInputs = [
+ autoreconfHook
+ wrapGAppsHook
+ pkgconfig
+ # doc generation
+ gnome-doc-utils
+ which
+ libxslt libxml2
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ expat
+ # at-spi2 needs dbus to be recognized by pkg-config
+ at-spi2-core dbus
+ ] ++ lib.optional speechSupport speechd;
+
+ meta = {
+ homepage = "http://www.inference.org.uk/dasher/";
+ description = "Information-efficient text-entry interface, driven by natural continuous pointing gestures";
+ license = lib.licenses.gpl2;
+ maintainers = [ lib.maintainers.Profpatsch ];
+ platforms = lib.platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/accessibility/mousetweaks/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/accessibility/mousetweaks/default.nix
new file mode 100644
index 000000000000..b645bc61848b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/accessibility/mousetweaks/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, pkgconfig
+, glib, gtk3, gnome3, gsettings-desktop-schemas, wrapGAppsHook
+, libX11, libXtst, libXfixes, libXcursor
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mousetweaks";
+ version = "3.32.0";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "005fhmvb45sa9mq17dpa23n1xnspiissx5rnpiy7hiqmy3g5rg8f";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+
+ buildInputs = [
+ glib gtk3 gsettings-desktop-schemas
+ libX11 libXtst libXfixes libXcursor
+ ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Provides mouse accessibility enhancements for the GNOME desktop";
+ longDescription = ''
+ Mousetweaks provides mouse accessibility enhancements for the GNOME
+ desktop. These enhancements are:
+
+ - It offers a way to perform the various clicks without using any
+ physical mouse buttons. (Hover Click)
+
+ - It allows users to perform a secondary click by keeping the primary
+ mouse button pressed for a predetermined amount of time. (Simulated
+ Secondary Click)
+
+ The features can be activated and configured through the Universal Access
+ panel of the GNOME Control Center.
+ '';
+ homepage = "https://wiki.gnome.org/Projects/Mousetweaks";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.johnazoidberg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/AMB-plugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/AMB-plugins/default.nix
new file mode 100644
index 000000000000..2e2af8f3a9a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/AMB-plugins/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, ladspaH
+}:
+
+stdenv.mkDerivation rec {
+ pname = "AMB-plugins";
+ version = "0.8.1";
+ src = fetchurl {
+ url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "0x4blm4visjqj0ndqr0cg776v3b7lvplpc8cgi9n51llhavn0jpl";
+ };
+
+ buildInputs = [ ladspaH ];
+
+ patchPhase = ''
+ sed -i 's@/usr/bin/install@install@g' Makefile
+ sed -i 's@/bin/rm@rm@g' Makefile
+ sed -i 's@/usr/lib/ladspa@$(out)/lib/ladspa@g' Makefile
+ '';
+
+ preInstall="mkdir -p $out/lib/ladspa";
+
+ meta = {
+ description = ''A set of ambisonics ladspa plugins'';
+ longDescription = ''
+ Mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders.
+ '';
+ version = version;
+ homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/FIL-plugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/FIL-plugins/default.nix
new file mode 100644
index 000000000000..253e724cd313
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/FIL-plugins/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ladspaH
+}:
+
+stdenv.mkDerivation rec {
+ pname = "FIL-plugins";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "1scfv9j7jrp50r565haa4rvxn1vk2ss86xssl5qgcr8r45qz42qw";
+ };
+
+ buildInputs = [ ladspaH ];
+
+ patchPhase = ''
+ sed -i 's@/usr/bin/install@install@g' Makefile
+ sed -i 's@/bin/rm@rm@g' Makefile
+ sed -i 's@/usr/lib/ladspa@$(out)/lib/ladspa@g' Makefile
+ '';
+
+ preInstall="mkdir -p $out/lib/ladspa";
+
+ meta = {
+ description = ''a four-band parametric equaliser, which has the nice property of being stable even while parameters are being changed'';
+ longDescription = ''
+ Each section has an active/bypass switch, frequency, bandwidth and gain controls.
+ There is also a global bypass switch and gain control.
+ The 2nd order resonant filters are implemented using a Mitra-Regalia style lattice filter.
+ All switches and controls are internally smoothed, so they can be used 'live' whithout any clicks or zipper noises.
+ This should make this plugin a good candidate for use in systems that allow automation of plugin control ports, such as Ardour, or for stage use.
+ '';
+ version = version;
+ homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/MMA/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/MMA/default.nix
new file mode 100644
index 000000000000..8b7629bc908b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/MMA/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, makeWrapper, python3, alsaUtils, timidity }:
+
+ stdenv.mkDerivation rec {
+ version = "20.02";
+ pname = "mma";
+
+ src = fetchurl {
+ url = "https://www.mellowood.ca/mma/mma-bin-${version}.tar.gz";
+ sha256 = "0i9c3f14j7wy2c86ky83f2vgmg5bihnnwsmpkq13fgqjsaf0qwnv";
+ };
+
+ buildInputs = [ makeWrapper python3 alsaUtils timidity ];
+
+ patchPhase = ''
+ sed -i 's@/usr/bin/aplaymidi@/${alsaUtils}/bin/aplaymidi@g' mma-splitrec
+ sed -i 's@/usr/bin/aplaymidi@/${alsaUtils}/bin/aplaymidi@g' util/mma-splitrec.py
+ sed -i 's@/usr/bin/arecord@/${alsaUtils}/bin/arecord@g' mma-splitrec
+ sed -i 's@/usr/bin/arecord@/${alsaUtils}/bin/arecord@g' util/mma-splitrec.py
+ sed -i 's@/usr/bin/timidity@/${timidity}/bin/timidity@g' mma-splitrec
+ sed -i 's@/usr/bin/timidity@/${timidity}/bin/timidity@g' util/mma-splitrec.py
+ find . -type f | xargs sed -i 's@/usr/bin/env python@${python3.interpreter}@g'
+ find . -type f | xargs sed -i 's@/usr/bin/python@${python3.interpreter}@g'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/mma,share/man/man1,share/man/man8}
+ mkdir -p $out/etc
+
+ cp mma.py $out/bin/mma
+ cp mma-gb $out/bin/mma-gb
+ cp mma-libdoc $out/bin/mma-libdoc
+ cp mma-renum $out/bin/mma-renum
+ cp mma-splitrec $out/bin/mma-splitrec
+ cp util/mma-mnx.py $out/bin/mma-mnx
+ cp util/mma-rm2std.py $out/bin/mma-rm2std
+ cp util/mmatabs.py $out/bin/mmatabs
+ cp util/mup2mma.py $out/bin/mup2mma
+ cp util/pg2mma.py $out/bin/pg2mma
+ cp util/synthsplit.py $out/bin/mma-synthsplit
+ cp -r {docs,egs,includes,lib,MMA,text} $out/share/mma
+ rmdir $out/share/mma/includes/aria
+
+ cp util/README.* $out/share/mma/docs
+ mv $out/share/mma/docs/man/mma-libdoc.8 $out/share/man/man8
+ mv $out/share/mma/docs/man/mma-renum.1 $out/share/man/man1
+ mv $out/share/mma/docs/man/mma.1 $out/share/man/man1
+ mv $out/share/mma/docs/man/mma-gb.1 $out/share/man/man1
+ rm -rf $out/share/mma/docs/man
+ find $out -type f | xargs sed -i "s@/usr/share/mma@$out/share/mma@g"
+ '';
+
+ preFixup = ''
+ PYTHONPATH=$out/share/mma/:$PYTHONPATH
+ for f in $out/bin/*; do
+ wrapProgram $f \
+ --prefix PYTHONPATH : $PYTHONPATH
+ done
+ cd $out/share/mma/
+ $out/bin/mma -G
+ '';
+
+ meta = {
+ description = "Creates MIDI tracks for a soloist to perform over from a user supplied file containing chords";
+ homepage = "https://www.mellowood.ca/mma/index.html";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
new file mode 100644
index 000000000000..984048828923
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, fetchpatch, makeWrapper, pkgconfig, alsaLib, dbus, libjack2
+, python3Packages , meson, ninja }:
+
+stdenv.mkDerivation rec {
+ pname = "a2jmidid";
+ version = "9";
+
+ src = fetchFromGitHub {
+ owner = "linuxaudio";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-WNt74tSWV8bY4TnpLp86PsnrjkqWynJJt3Ra4gZl2fQ=";
+ };
+
+ nativeBuildInputs = [ pkgconfig makeWrapper meson ninja ];
+ buildInputs = [ alsaLib dbus libjack2 ] ++
+ (with python3Packages; [ python dbus-python ]);
+
+ postInstall = ''
+ wrapProgram $out/bin/a2j_control --set PYTHONPATH $PYTHONPATH
+ substituteInPlace $out/bin/a2j --replace "a2j_control" "$out/bin/a2j_control"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/aacgain/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/aacgain/default.nix
new file mode 100644
index 000000000000..83b359b1b1cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/aacgain/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchFromGitLab, fetchpatch }:
+
+stdenv.mkDerivation {
+ name = "aacgain-1.9.0";
+
+ src = fetchFromGitLab {
+ owner = "mulx";
+ repo = "aacgain";
+ rev = "7c29dccd878ade1301710959aeebe87a8f0828f5";
+ sha256 = "07hl432vsscqg01b6wr99qmsj4gbx0i02x4k565432y6zpfmaxm0";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ postPatch = ''
+ (
+ cd mp4v2
+ patch -p0 < ${fetchpatch {
+ name = "fix_missing_ptr_deref.patch";
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_missing_ptr_deref.patch?h=aacgain-cvs&id=e1a19c920f57063e64bab75cb0d8624731f6e3d7";
+ sha256 = "1cq7r005nvmwdjb25z80grcam7jv6k57jnl2bh349mg3ajmslbq9";
+ }}
+ )
+ '';
+
+ configurePhase = ''
+ runHook preConfigure
+ cd mp4v2
+ ./configure
+
+ cd ../faad2
+ ./configure
+
+ cd ..
+ ./configure
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+ cd mp4v2
+ make libmp4v2.la
+
+ cd ../faad2
+ make LDFLAGS=-static
+
+ cd ..
+ make
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ install -D aacgain/aacgain "$out/bin/aacgain"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "ReplayGain for AAC files";
+ homepage = "https://aacgain.altosdesign.com";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.robbinch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/abcde/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/abcde/default.nix
new file mode 100644
index 000000000000..4cb28e512a72
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/abcde/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, libcdio-paranoia, cddiscid, wget, which, vorbis-tools, id3v2, eyeD3
+, lame, flac, glyr
+, perlPackages
+, makeWrapper }:
+
+let version = "2.9.3";
+in
+ stdenv.mkDerivation {
+ pname = "abcde";
+ inherit version;
+ src = fetchurl {
+ url = "https://abcde.einval.com/download/abcde-${version}.tar.gz";
+ sha256 = "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04";
+ };
+
+ # FIXME: This package does not support `distmp3', `eject', etc.
+
+ configurePhase = ''
+ sed -i "s|^[[:blank:]]*prefix *=.*$|prefix = $out|g ;
+ s|^[[:blank:]]*etcdir *=.*$|etcdir = $out/etc|g ;
+ s|^[[:blank:]]*INSTALL *=.*$|INSTALL = install -c|g" \
+ "Makefile";
+
+ echo 'CDPARANOIA=${libcdio-paranoia}/bin/cd-paranoia' >>abcde.conf
+ echo CDROMREADERSYNTAX=cdparanoia >>abcde.conf
+
+ substituteInPlace "abcde" \
+ --replace "/etc/abcde.conf" "$out/etc/abcde.conf"
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = with perlPackages; [ perl MusicBrainz MusicBrainzDiscID ];
+
+ installFlags = [ "sysconfdir=$(out)/etc" ];
+
+ postFixup = ''
+ for cmd in abcde cddb-tool abcde-musicbrainz-tool; do
+ wrapProgram "$out/bin/$cmd" \
+ --prefix PERL5LIB : "$PERL5LIB" \
+ --prefix PATH ":" ${stdenv.lib.makeBinPath [
+ "$out" which libcdio-paranoia cddiscid wget
+ vorbis-tools id3v2 eyeD3 lame flac glyr
+ ]}
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://abcde.einval.com/wiki/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ gebner ];
+ description = "Command-line audio CD ripper";
+ longDescription = ''
+ abcde is a front-end command-line utility (actually, a shell
+ script) that grabs tracks off a CD, encodes them to
+ Ogg/Vorbis, MP3, FLAC, Ogg/Speex and/or MPP/MP+ (Musepack)
+ format, and tags them, all in one go.
+ '';
+ platforms = platforms.linux;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/adlplug/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/adlplug/default.nix
new file mode 100644
index 000000000000..7dcc13eb96d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/adlplug/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libjack2, alsaLib
+, freetype, libX11, libXrandr, libXinerama, libXext, libXcursor
+, fetchpatch, fmt
+, adlplugChip ? "-DADLplug_CHIP=OPL3"
+, pname ? "ADLplug" }:
+
+stdenv.mkDerivation rec {
+ inherit pname;
+ version = "1.0.2";
+
+ src = fetchFromGitHub {
+ owner = "jpcima";
+ repo = "ADLplug";
+ rev = "v${version}";
+ sha256 = "0mqx4bzri8s880v7jwd24nb93m5i3aklqld0b3h0hjnz0lh2qz0f";
+ fetchSubmodules = true;
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/jpcima/ADLplug/83636c55bec1b86cabf634b9a6d56d07f00ecc61/resources/patch/juce-gcc9.patch";
+ sha256 = "15hkdb76n9lgjsrpczj27ld9b4804bzrgw89g95cj4sc8wwkplyy";
+ extraPrefix = "thirdparty/JUCE/";
+ stripLen = 1;
+ })
+ ];
+
+ cmakeFlags = [ adlplugChip "-DADLplug_USE_SYSTEM_FMT=ON" ];
+
+ buildInputs = [
+ libjack2 alsaLib freetype libX11 libXrandr libXinerama libXext
+ libXcursor
+ ];
+ nativeBuildInputs = [ cmake pkgconfig fmt ];
+
+ meta = with stdenv.lib; {
+ description = "OPL3 and OPN2 FM Chip Synthesizer";
+ homepage = src.meta.homepage;
+ license = licenses.boost;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ gnidorah ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/aeolus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/aeolus/default.nix
new file mode 100644
index 000000000000..c4982025999f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/aeolus/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, libclthreads, zita-alsa-pcmi, alsaLib, libjack2
+, libclxclient, libX11, libXft, readline
+}:
+
+stdenv.mkDerivation rec {
+ pname = "aeolus";
+ version = "0.9.9";
+
+ src = fetchurl {
+ url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "04y1j36y7vc93bv299vfiawbww4ym6q7avfx8vw6rmxr817zrch3";
+ };
+
+ buildInputs = [
+ libclthreads zita-alsa-pcmi alsaLib libjack2 libclxclient
+ libX11 libXft readline
+ ];
+
+ patchPhase = ''sed "s@ldconfig.*@@" -i source/Makefile'';
+
+ preBuild = "cd source";
+
+ makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ];
+
+ meta = {
+ description = "Synthetized (not sampled) pipe organ emulator";
+ homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/aeolus/index.html";
+ license = stdenv.lib.licenses.lgpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.nico202 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/airwave/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/airwave/default.nix
new file mode 100644
index 000000000000..176d1d4cfb37
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/airwave/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, multiStdenv, cmake, fetchFromGitHub, file, libX11, makeWrapper
+, qt5, requireFile, unzip, wine
+}:
+
+let
+
+ version = "1.3.3";
+
+ airwave-src = fetchFromGitHub {
+ owner = "phantom-code";
+ repo = "airwave";
+ rev = version;
+ sha256 = "1ban59skw422mak3cp57lj27hgq5d3a4f6y79ysjnamf8rpz9x4s";
+ };
+
+ vst-sdk = stdenv.mkDerivation rec {
+ name = "vstsdk368_08_11_2017_build_121";
+ src = requireFile {
+ name = "${name}.zip";
+ url = "http://www.steinberg.net/en/company/developers.html";
+ sha256 = "e0f235d8826d70f1ae0ae5929cd198acae1ecff74612fde5c60cbfb45c2f4a70";
+ };
+ nativeBuildInputs = [ unzip ];
+ installPhase = "cp -r . $out";
+ meta.license = stdenv.lib.licenses.unfree;
+ };
+
+ wine-wow64 = wine.override {
+ wineRelease = "stable";
+ wineBuild = "wineWow";
+ };
+
+ wine-xembed = wine-wow64.overrideDerivation (oldAttrs: {
+ patchFlags = [ "-p2" ];
+ patches = [ "${airwave-src}/fix-xembed-wine-windows.patch" ];
+ });
+
+in
+
+multiStdenv.mkDerivation {
+ name = "airwave-${version}";
+
+ src = airwave-src;
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+
+ buildInputs = [ file libX11 qt5.qtbase wine-xembed ];
+
+ postPatch = ''
+ # Binaries not used directly should land in libexec/.
+ substituteInPlace src/common/storage.cpp --replace '"/bin"' '"/libexec"'
+
+ # For airwave-host-32.exe.so, point wineg++ to 32-bit versions of
+ # these libraries, as $NIX_LDFLAGS contains only 64-bit ones.
+ substituteInPlace src/host/CMakeLists.txt --replace '-m32' \
+ '-m32 -L${wine-xembed}/lib -L${wine-xembed}/lib/wine -L${multiStdenv.cc.libc.out}/lib/32'
+ '';
+
+ # libstdc++.so link gets lost in 64-bit executables during
+ # shrinking.
+ dontPatchELF = true;
+
+ # Cf. https://github.com/phantom-code/airwave/issues/57
+ hardeningDisable = [ "format" ];
+
+ cmakeFlags = [ "-DVSTSDK_PATH=${vst-sdk}/VST2_SDK" ];
+
+ postInstall = ''
+ mv $out/bin $out/libexec
+ mkdir $out/bin
+ mv $out/libexec/airwave-manager $out/bin
+ wrapProgram $out/libexec/airwave-host-32.exe --set WINELOADER ${wine-xembed}/bin/wine
+ wrapProgram $out/libexec/airwave-host-64.exe --set WINELOADER ${wine-xembed}/bin/wine64
+ '';
+
+ meta = with stdenv.lib; {
+ description = "WINE-based VST bridge for Linux VST hosts";
+ longDescription = ''
+ Airwave is a wine based VST bridge, that allows for the use of
+ Windows 32- and 64-bit VST 2.4 audio plugins with Linux VST
+ hosts. Due to the use of shared memory, only one extra copying
+ is made for each data transfer. Airwave also uses the XEMBED
+ protocol to correctly embed the plugin editor into the host
+ window.
+ '';
+ homepage = "https://github.com/phantom-code/airwave";
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ michalrus ];
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix
new file mode 100644
index 000000000000..f781aad905d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, alsaLib, jack2Full, minixml, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ name = packageName + "-" + version ;
+ packageName = "aj-snapshot" ;
+ version = "0.9.9";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${packageName}/${name}.tar.bz2";
+ sha256 = "0z8wd5yvxdmw1h1rj6km9h01xd4xmp4d86gczlix7hsc7zrf0wil";
+ };
+
+ doCheck = false;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ alsaLib minixml jack2Full ];
+
+ meta = with stdenv.lib; {
+ description = "Tool for storing/restoring JACK and/or ALSA connections to/from cml files";
+ longDescription = ''
+ Aj-snapshot is a small program that can be used to make snapshots of the connections made between JACK and/or ALSA clients.
+ Because JACK can provide both audio and MIDI support to programs, aj-snapshot can store both types of connections for JACK.
+ ALSA, on the other hand, only provides routing facilities for MIDI clients.
+ You can also run aj-snapshot in daemon mode if you want to have your connections continually restored.
+ '';
+
+ homepage = "http://aj-snapshot.sourceforge.net/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.mrVanDalo ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/amarok/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/amarok/default.nix
new file mode 100644
index 000000000000..063cfcaa9fae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/amarok/default.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, fetchgit, lib
+, extra-cmake-modules, kdoctools
+, qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
+, karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
+, fftw, phonon, plasma-framework, threadweaver
+, curl, ffmpeg_3, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
+}:
+
+mkDerivation rec {
+ pname = "amarok-unstable";
+ version = "2020-06-12";
+
+ src = fetchgit {
+ # master has the Qt5 version as of April 2018 but a formal release has not
+ # yet been made so change this back to the proper upstream when such a
+ # release is out
+ url = "https://invent.kde.org/multimedia/amarok.git";
+ # url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+ rev = "fece39b0e81db310b6a6e08f93d83b0d498cd02b";
+ sha256 = "12casnq6w5yp2jlvnr466pjpkn0vriry8jzfq2qkjl564y0vhy9x";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+
+ propagatedBuildInputs = [
+ qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
+ karchive kcmutils kconfig kdnssd kguiaddons kinit kirigami2 knewstuff knotifyconfig ktexteditor kwindowsystem
+ phonon plasma-framework threadweaver
+ curl fftw ffmpeg_3 gdk-pixbuf libaio liblastfm libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
+ pcre snappy taglib taglib_extras
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ homepage = "https://amarok.kde.org";
+ description = "A powerful music player with an intuitive interface";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ams-lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ams-lv2/default.nix
new file mode 100644
index 000000000000..34f5667bfcaa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ams-lv2/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkgconfig
+, wafHook }:
+
+stdenv.mkDerivation rec {
+ pname = "ams-lv2";
+ version = "1.2.2";
+
+ src = fetchFromGitHub {
+ owner = "blablack";
+ repo = "ams-lv2";
+ rev = version;
+ sha256 = "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk";
+ };
+
+ nativeBuildInputs = [ pkgconfig wafHook ];
+ buildInputs = [ cairo fftw gtkmm2 lv2 lvtk ];
+
+ meta = with stdenv.lib; {
+ description = "An LV2 port of the internal modules found in Alsa Modular Synth";
+ homepage = "https://github.com/blablack/ams-lv2";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ # Build uses `-msse` and `-mfpmath=sse`
+ badPlatforms = [ "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ams/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ams/default.nix
new file mode 100644
index 000000000000..e6c4fbe802e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ams/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchgit
+, automake
+, alsaLib
+, ladspaH
+, libjack2
+, fftw
+, zita-alsa-pcmi
+, qt5
+, pkg-config
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+ name = "ams";
+ version = "unstable-2019-04-27";
+
+ src = fetchgit {
+ url = "https://git.code.sf.net/p/alsamodular/ams.git";
+ sha256 = "0qdyz5llpa94f3qx1xi1mz97vl5jyrj1mqff28p5g9i5rxbbk8z9";
+ rev = "3250bbcfea331c4fcb9845305eebded80054973d";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkg-config
+ qt5.wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ alsaLib
+ ladspaH
+ libjack2
+ fftw
+ zita-alsa-pcmi
+ ] ++ (with qt5; [
+ qtbase
+ qttools
+ ]);
+
+ meta = with stdenv.lib; {
+ description = "Realtime modular synthesizer for ALSA";
+ homepage = "http://alsamodular.sourceforge.net";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ sjfloat ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/5.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/5.nix
new file mode 100644
index 000000000000..86879e4e5bd8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/5.nix
@@ -0,0 +1,162 @@
+{ stdenv
+, fetchgit
+, alsaLib
+, aubio
+, boost
+, cairomm
+, curl
+, doxygen
+, fftwSinglePrec
+, flac
+, glibc
+, glibmm
+, graphviz
+, gtkmm2
+, libjack2
+, liblo
+, libogg
+, libsamplerate
+, libsigcxx
+, libsndfile
+, libusb1
+, fluidsynth_1
+, hidapi
+, libltc
+, qm-dsp
+, libxml2
+, lilv
+, lrdf
+, lv2
+, perl
+, pkg-config
+, itstool
+, python2
+, rubberband
+, serd
+, sord
+, sratom
+, taglib
+, vamp-plugin-sdk
+, dbus
+, fftw
+, pango
+, suil
+, libarchive
+, wafHook
+}:
+let
+ # Ardour git repo uses a mix of annotated and lightweight tags. Annotated
+ # tags are used for MAJOR.MINOR versioning, and lightweight tags are used
+ # in-between; MAJOR.MINOR.REV where REV is the number of commits since the
+ # last annotated tag. A slightly different version string format is needed
+ # for the 'revision' info that is built into the binary; it is the format of
+ # "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH.
+
+ # Version to build.
+ tag = "5.12";
+in stdenv.mkDerivation rec {
+ pname = "ardour_5";
+ version = "5.12";
+
+ src = fetchgit {
+ url = "git://git.ardour.org/ardour/ardour.git";
+ rev = "ae0dcdc0c5d13483271065c360e378202d20170a";
+ sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
+ };
+
+ nativeBuildInputs = [
+ wafHook
+ pkg-config
+ itstool
+ doxygen
+ graphviz # for dot
+ perl
+ python2
+ ];
+
+ buildInputs = [
+ alsaLib
+ aubio
+ boost
+ cairomm
+ curl
+ dbus
+ fftw
+ fftwSinglePrec
+ flac
+ glibmm
+ gtkmm2
+ libjack2
+ liblo
+ libogg
+ libsamplerate
+ libsigcxx
+ libsndfile
+ libusb1
+ fluidsynth_1
+ hidapi
+ libltc
+ qm-dsp
+ libxml2
+ lilv
+ lrdf
+ lv2
+ pango
+ rubberband
+ serd
+ sord
+ sratom
+ suil
+ taglib
+ vamp-plugin-sdk
+ libarchive
+ ];
+
+ wafConfigureFlags = [
+ "--optimize"
+ "--docs"
+ "--use-external-libs"
+ "--freedesktop"
+ "--with-backends=jack,alsa,dummy"
+ ];
+
+ NIX_CFLAGS_COMPILE = "-I${qm-dsp}/include/qm-dsp";
+
+ # ardour's wscript has a "tarball" target but that required the git revision
+ # be available. Since this is an unzipped tarball fetched from github we
+ # have to do that ourself.
+ postPatch = ''
+ printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
+ patchShebangs ./tools/
+ '';
+
+ postInstall = ''
+ # wscript does not install these for some reason
+ install -vDm 644 "build/gtk2_ardour/ardour.xml" \
+ -t "$out/share/mime/packages"
+ install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
+ -t "$out/share/applications"
+ for size in 16 22 32 48 256 512; do
+ install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
+ "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
+ done
+ install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Multi-track hard disk recording software";
+ longDescription = ''
+ Ardour is a digital audio workstation (DAW), You can use it to
+ record, edit and mix multi-track audio and midi. Produce your
+ own CDs. Mix video soundtracks. Experiment with new ideas about
+ music and sound.
+
+ Please consider supporting the ardour project financially:
+ https://community.ardour.org/donate
+ '';
+ homepage = "https://ardour.org/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ goibhniu fps ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/as-flags.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/as-flags.patch
new file mode 100644
index 000000000000..b8aab70ddca6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/as-flags.patch
@@ -0,0 +1,12 @@
+--- a/libs/ardour/wscript
++++ b/libs/ardour/wscript
+@@ -379,8 +379,7 @@ def build(bld):
+
+ # remove '${DEFINES_ST:DEFINES}' from run_str.
+ # x86_64-w64-mingw32-as (mingw) -D flag is for debug messages
+- if bld.env['build_target'] == 'mingw':
+- class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
++ class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
+
+ # operate on copy to avoid adding sources twice
+ sources = list(libardour_sources)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/default.nix
new file mode 100644
index 000000000000..49579e332946
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ardour/default.nix
@@ -0,0 +1,181 @@
+{ stdenv
+, fetchgit
+, alsaLib
+, aubio
+, boost
+, cairomm
+, cppunit
+, curl
+, dbus
+, doxygen
+, ffmpeg_3
+, fftw
+, fftwSinglePrec
+, flac
+, glibc
+, glibmm
+, graphviz
+, gtkmm2
+, itstool
+, libarchive
+, libjack2
+, liblo
+, libogg
+, libpulseaudio
+, librdf_raptor
+, librdf_rasqal
+, libsamplerate
+, libsigcxx
+, libsndfile
+, libusb1
+, libuv
+, libwebsockets
+, libxml2
+, libxslt
+, lilv
+, lrdf
+, lv2
+, pango
+, perl
+, pkg-config
+, python3
+, readline
+, rubberband
+, serd
+, sord
+, soundtouch
+, sratom
+, suil
+, taglib
+, vamp-plugin-sdk
+, wafHook
+}:
+stdenv.mkDerivation rec {
+ pname = "ardour";
+ version = "6.3";
+
+ # don't fetch releases from the GitHub mirror, they are broken
+ src = fetchgit {
+ url = "git://git.ardour.org/ardour/ardour.git";
+ rev = version;
+ sha256 = "050p1adgyirr790a3xp878pq3axqwzcmrk3drgm9z6v753h0xhcd";
+ };
+
+ patches = [
+ # AS=as in the environment causes build failure https://tracker.ardour.org/view.php?id=8096
+ ./as-flags.patch
+ ];
+
+ nativeBuildInputs = [
+ doxygen
+ graphviz # for dot
+ itstool
+ perl
+ pkg-config
+ python3
+ wafHook
+ ];
+
+ buildInputs = [
+ alsaLib
+ aubio
+ boost
+ cairomm
+ cppunit
+ curl
+ dbus
+ ffmpeg_3
+ fftw
+ fftwSinglePrec
+ flac
+ glibmm
+ gtkmm2
+ itstool
+ libarchive
+ libjack2
+ liblo
+ libogg
+ libpulseaudio
+ librdf_raptor
+ librdf_rasqal
+ libsamplerate
+ libsigcxx
+ libsndfile
+ libusb1
+ libuv
+ libwebsockets
+ libxml2
+ libxslt
+ lilv
+ lrdf
+ lv2
+ pango
+ perl
+ python3
+ readline
+ rubberband
+ serd
+ sord
+ soundtouch
+ sratom
+ suil
+ taglib
+ vamp-plugin-sdk
+ ];
+
+ wafConfigureFlags = [
+ "--cxx11"
+ "--docs"
+ "--freedesktop"
+ "--no-phone-home"
+ "--optimize"
+ "--ptformat"
+ "--run-tests"
+ "--test"
+ ];
+ # removed because it fixes https://tracker.ardour.org/view.php?id=8161 and https://tracker.ardour.org/view.php?id=8437
+ # "--use-external-libs"
+
+ # Ardour's wscript requires git revision and date to be available.
+ # Since they are not, let's generate the file manually.
+ postPatch = ''
+ printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = "${version}"; const char* date = ""; }\n' > libs/ardour/revision.cc
+ sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
+ patchShebangs ./tools/
+ substituteInPlace libs/ardour/video_tools_paths.cc \
+ --replace 'ffmpeg_exe = X_("");' 'ffmpeg_exe = X_("${ffmpeg_3}/bin/ffmpeg");' \
+ --replace 'ffprobe_exe = X_("");' 'ffprobe_exe = X_("${ffmpeg_3}/bin/ffprobe");'
+ '';
+
+ postInstall = ''
+ # wscript does not install these for some reason
+ install -vDm 644 "build/gtk2_ardour/ardour.xml" \
+ -t "$out/share/mime/packages"
+ install -vDm 644 "build/gtk2_ardour/ardour6.desktop" \
+ -t "$out/share/applications"
+ for size in 16 22 32 48 256 512; do
+ install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
+ "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png"
+ done
+ install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
+ '';
+
+ LINKFLAGS = "-lpthread";
+
+ meta = with stdenv.lib; {
+ description = "Multi-track hard disk recording software";
+ longDescription = ''
+ Ardour is a digital audio workstation (DAW), You can use it to
+ record, edit and mix multi-track audio and midi. Produce your
+ own CDs. Mix video soundtracks. Experiment with new ideas about
+ music and sound.
+
+ Please consider supporting the ardour project financially:
+ https://community.ardour.org/donate
+ '';
+ homepage = "https://ardour.org/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ goibhniu magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ario/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ario/default.nix
new file mode 100644
index 000000000000..99a09e7ee330
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ario/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, gettext, gtk3, intltool,
+ wrapGAppsHook, libxml2, curl, mpd_clientlib, dbus-glib,
+ libsoup, avahi, taglib
+ }:
+
+stdenv.mkDerivation rec {
+ version = "1.6";
+ pname = "ario";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/ario-player/${pname}-${version}.tar.gz";
+ sha256 = "16nhfb3h5pc7flagfdz7xy0iq6kvgy6h4bfpi523i57rxvlfshhl";
+ };
+
+ nativeBuildInputs = [ pkgconfig gettext intltool wrapGAppsHook ];
+ buildInputs = [
+ gtk3 libxml2 curl mpd_clientlib dbus-glib libsoup avahi taglib
+ ];
+
+ meta = {
+ description = "GTK client for MPD (Music player daemon)";
+ homepage = "http://ario-player.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.garrison ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/artyFX/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/artyFX/default.nix
new file mode 100644
index 000000000000..8cf9bec2e3df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/artyFX/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub , cairomm, cmake, libjack2, libpthreadstubs, libXdmcp, libxshmfence, libsndfile, lv2, ntk, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "artyFX";
+ # Fix build with lv2 1.18: https://github.com/openAVproductions/openAV-ArtyFX/pull/41/commits/492587461b50d140455aa3c98d915eb8673bebf0
+ version = "unstable-2020-04-28";
+
+ src = fetchFromGitHub {
+ owner = "openAVproductions";
+ repo = "openAV-ArtyFX";
+ rev = "492587461b50d140455aa3c98d915eb8673bebf0";
+ sha256 = "0wwg8ivnpyy0235bapjy4g0ij85zq355jwi6c1nkrac79p4z9ail";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ cairomm cmake libjack2 libpthreadstubs libXdmcp libxshmfence libsndfile lv2 ntk ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://openavproductions.com/artyfx/";
+ description = "A LV2 plugin bundle of artistic realtime effects";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ # Build uses `-msse` and `-mfpmath=sse`
+ badPlatforms = [ "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ashuffle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
new file mode 100644
index 000000000000..6bb21b5edaab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, mpd_clientlib, meson, ninja }:
+
+stdenv.mkDerivation rec {
+ pname = "ashuffle";
+ version = "3.4.0";
+
+ src = fetchFromGitHub {
+ owner = "joshkunz";
+ repo = "ashuffle";
+ rev = "v${version}";
+ sha256 = "09q6lwgc1dc8bg1mb9js9qz3xcsxph3548nxzvyb4v8111gixrp7";
+ fetchSubmodules = true;
+ };
+
+ dontUseCmakeConfigure = true;
+ nativeBuildInputs = [ cmake pkg-config meson ninja ];
+ buildInputs = [ mpd_clientlib ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/joshkunz/ashuffle";
+ description = "Automatic library-wide shuffle for mpd";
+ maintainers = [ maintainers.tcbravo ];
+ platforms = platforms.unix;
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/asunder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/asunder/default.nix
new file mode 100644
index 000000000000..610085a137aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/asunder/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, makeWrapper, gtk2, libcddb, intltool, pkgconfig, cdparanoia
+, mp3Support ? false, lame
+, oggSupport ? true, vorbis-tools
+, flacSupport ? true, flac
+, opusSupport ? false, opusTools
+, wavpackSupport ? false, wavpack
+#, musepackSupport ? false, TODO: mpcenc
+, monkeysAudioSupport ? false, monkeysAudio
+#, aacSupport ? false, TODO: neroAacEnc
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ version = "2.9.7";
+ pname = "asunder";
+ src = fetchurl {
+ url = "http://littlesvr.ca/asunder/releases/${pname}-${version}.tar.bz2";
+ sha256 = "1x3l308ss0iqhz90qyjb94gyd8b4piyrm2nzjmg5kf049k9prjf1";
+ };
+
+ nativeBuildInputs = [ intltool makeWrapper pkgconfig ];
+ buildInputs = [ gtk2 libcddb ];
+
+ runtimeDeps =
+ optional mp3Support lame ++
+ optional oggSupport vorbis-tools ++
+ optional flacSupport flac ++
+ optional opusSupport opusTools ++
+ optional wavpackSupport wavpack ++
+ optional monkeysAudioSupport monkeysAudio ++
+ [ cdparanoia ];
+
+ postInstall = ''
+ wrapProgram "$out/bin/asunder" \
+ --prefix PATH : "${makeBinPath runtimeDeps}"
+ '';
+
+ meta = {
+ description = "A graphical Audio CD ripper and encoder for Linux";
+ homepage = "http://littlesvr.ca/asunder/index.php";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ mudri ];
+ platforms = platforms.linux;
+
+ longDescription = ''
+ Asunder is a graphical Audio CD ripper and encoder for Linux. You can use
+ it to save tracks from an Audio CD as any of WAV, MP3, OGG, FLAC, Opus,
+ WavPack, Musepack, AAC, and Monkey's Audio files.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/aucatctl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/aucatctl/default.nix
new file mode 100644
index 000000000000..4aff3e1f7bfb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/aucatctl/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, sndio, libbsd }:
+
+stdenv.mkDerivation rec {
+ pname = "aucatctl";
+ version = "0.1";
+
+ src = fetchurl {
+ url = "http://www.sndio.org/${pname}-${version}.tar.gz";
+ sha256 = "524f2fae47db785234f166551520d9605b9a27551ca438bd807e3509ce246cf0";
+ };
+
+ buildInputs = [ sndio ]
+ ++ stdenv.lib.optional (!stdenv.isDarwin && !stdenv.targetPlatform.isBSD)
+ libbsd;
+
+ outputs = [ "out" "man" ];
+
+ preBuild = ''
+ makeFlagsArray+=("PREFIX=$out")
+ '' + stdenv.lib.optionalString
+ (!stdenv.isDarwin && !stdenv.targetPlatform.isBSD) ''
+ makeFlagsArray+=(LDADD="-lsndio -lbsd")
+
+ # Fix warning about implicit declaration of function 'strlcpy'
+ substituteInPlace aucatctl.c \
+ --replace '#include <string.h>' '#include <bsd/string.h>'
+ '';
+
+ meta = with stdenv.lib; {
+ description =
+ "The aucatctl utility sends MIDI messages to control sndiod and/or aucat volumes";
+ homepage = "http://www.sndio.org";
+ license = licenses.isc;
+ maintainers = with maintainers; [ sna ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/audacious/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/audacious/default.nix
new file mode 100644
index 000000000000..c441a2f9f3f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/audacious/default.nix
@@ -0,0 +1,68 @@
+{
+ mkDerivation, lib, fetchurl, fetchpatch,
+ gettext, pkgconfig,
+ qtbase,
+ alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
+ libcddb, libcdio, libcdio-paranoia, libcue, libjack2, libmad, libmms, libmodplug,
+ libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
+ libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
+ wavpack, openmpt123
+}:
+
+mkDerivation rec {
+ pname = "audacious";
+ version = "4.0.5";
+
+ src = fetchurl {
+ url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
+ sha256 = "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji";
+ };
+ pluginsSrc = fetchurl {
+ url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
+ sha256 = "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz";
+ };
+
+ nativeBuildInputs = [ gettext pkgconfig ];
+
+ buildInputs = [
+ # Core dependencies
+ qtbase
+
+ # Plugin dependencies
+ alsaLib curl faad2 ffmpeg flac fluidsynth gdk-pixbuf lame libbs2b libcddb
+ libcdio libcdio-paranoia libcue libjack2 libmad libmms libmodplug libmowgli
+ libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
+ libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
+ openmpt123
+ ];
+
+ # Here we build both audacious and audacious-plugins in one
+ # derivations, since they really expect to be in the same prefix.
+ # This is slighly tricky.
+ builder = builtins.toFile "builder.sh" ''
+ # First build audacious.
+ (
+ source $stdenv/setup
+ genericBuild
+ )
+ # Then build the plugins.
+ (
+ nativeBuildInputs="$out $nativeBuildInputs" # to find audacious
+ source $stdenv/setup
+ rm -rfv audacious-*
+ src=$pluginsSrc
+ genericBuild
+ )
+ '';
+
+ meta = with lib; {
+ description = "Audio player";
+ homepage = "https://audacious-media-player.org/";
+ maintainers = with maintainers; [ eelco ramkromberg ttuegel ];
+ platforms = with platforms; linux;
+ license = with licenses; [
+ bsd2 bsd3 #https://github.com/audacious-media-player/audacious/blob/master/COPYING
+ gpl2 gpl3 lgpl2Plus #http://redmine.audacious-media-player.org/issues/46
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/audacity/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/audacity/default.nix
new file mode 100644
index 000000000000..20526c8c6c56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/audacity/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchzip, wxGTK30, pkgconfig, file, gettext,
+ libvorbis, libmad, libjack2, lv2, lilv, serd, sord, sratom, suil, alsaLib, libsndfile, soxr, flac, lame,
+ expat, libid3tag, ffmpeg_3, soundtouch, /*, portaudio - given up fighting their portaudio.patch */
+ autoconf, automake, libtool
+ }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ version = "2.4.1";
+ pname = "audacity";
+
+ src = fetchzip {
+ url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
+ sha256 = "1xk0piv72d2xd3p7igr916fhcbrm76fhjr418k1rlqdzzg1hfljn";
+ };
+
+ preConfigure = /* we prefer system-wide libs */ ''
+ autoreconf -vi # use system libraries
+
+ # we will get a (possibly harmless) warning during configure without this
+ substituteInPlace configure \
+ --replace /usr/bin/file ${file}/bin/file
+ '';
+
+ configureFlags = [
+ "--with-libsamplerate"
+ ];
+
+ # audacity only looks for lame and ffmpeg at runtime, so we need to link them in manually
+ NIX_LDFLAGS = toString [
+ # LAME
+ "-lmp3lame"
+ # ffmpeg
+ "-lavcodec"
+ "-lavdevice"
+ "-lavfilter"
+ "-lavformat"
+ "-lavresample"
+ "-lavutil"
+ "-lpostproc"
+ "-lswresample"
+ "-lswscale"
+ ];
+
+ nativeBuildInputs = [ pkgconfig autoconf automake libtool ];
+ buildInputs = [
+ file gettext wxGTK30 expat alsaLib
+ libsndfile soxr libid3tag libjack2 lv2 lilv serd sord sratom suil wxGTK30.gtk
+ ffmpeg_3 libmad lame libvorbis flac soundtouch
+ ]; #ToDo: detach sbsms
+
+ enableParallelBuilding = true;
+
+ dontDisableStatic = true;
+ doCheck = false; # Test fails
+
+ meta = with stdenv.lib; {
+ description = "Sound editor with graphical UI";
+ homepage = "https://www.audacityteam.org/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ lheckemann ];
+ platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix
new file mode 100644
index 000000000000..eee293b76c2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl
+, pkgconfig, intltool
+, glib, dbus, gtk3, libappindicator-gtk3, gst_all_1
+, librsvg, wrapGAppsHook
+, pulseaudioSupport ? true, libpulseaudio ? null }:
+
+stdenv.mkDerivation rec {
+ pname = "audio-recorder";
+ version = "2.1.3";
+
+ src = fetchurl {
+ name = "${pname}-${version}.tar.gz";
+ url = "${meta.homepage}/+archive/ubuntu/ppa/+files/audio-recorder_${version}%7Ebionic.tar.gz";
+ sha256 = "160pnmnmc9zwzyclsci3w1qwlgxkfx1y3x5ck6i587w78570an1r";
+ };
+
+ # https://bugs.launchpad.net/audio-recorder/+bug/1784622
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+ nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+
+ buildInputs = [
+ glib dbus gtk3 librsvg libappindicator-gtk3
+ ] ++ (with gst_all_1; [
+ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav
+ ]) ++ stdenv.lib.optional pulseaudioSupport libpulseaudio;
+
+ meta = with stdenv.lib; {
+ description = "Audio recorder for GNOME and Unity Desktops";
+ longDescription = ''
+ This program allows you to record your favourite music or audio to a file.
+ It can record audio from your system soundcard, microphones, browsers and
+ webcams. Put simply; if it plays out of your loudspeakers you can record it.
+ This program has a timer that can start, stop or pause recording on certain
+ conditions such as audio level, file size and clock time. This recorder can
+ automatically record your Skype calls. It supports several audio (output)
+ formats such as OGG audio, Flac, MP3 and WAV.
+ '';
+ homepage = "https://launchpad.net/~audio-recorder";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.msteen ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/aumix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/aumix/default.nix
new file mode 100644
index 000000000000..5bc7f8432582
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/aumix/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, gettext, ncurses
+, gtkGUI ? false
+, pkgconfig ? null
+, gtk2 ? null}:
+
+assert gtkGUI -> pkgconfig != null && gtk2 != null;
+
+stdenv.mkDerivation rec {
+ name = "aumix-2.9.1";
+ src = fetchurl {
+ url = "http://www.jpj.net/~trevor/aumix/releases/${name}.tar.bz2";
+ sha256 = "0a8fwyxnc5qdxff8sl2sfsbnvgh6pkij4yafiln0fxgg6bal7knj";
+ };
+
+ buildInputs = [ gettext ncurses ]
+ ++ (if gtkGUI then [pkgconfig gtk2] else []);
+
+ meta = {
+ description = "Audio mixer for X and the console";
+ longDescription = ''
+ Aumix adjusts an audio mixer from X, the console, a terminal,
+ the command line or a script.
+ '';
+ homepage = "http://www.jpj.net/~trevor/aumix.html";
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/autotalent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/autotalent/default.nix
new file mode 100644
index 000000000000..8efa26777864
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/autotalent/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+ pname = "autotalent";
+ version = "0.2";
+
+ src = fetchzip {
+ url = "http://tombaran.info/${pname}-${version}.tar.gz";
+ sha256 = "19srnkghsdrxxlv2c7qimvyslxz63r97mkxfq78vbg654l3qz1a6";
+ };
+
+ makeFlags = [
+ "INSTALL_PLUGINS_DIR=$(out)/lib/ladspa"
+ ];
+
+ # To avoid name clashes, plugins should be compiled with symbols hidden, except for `ladspa_descriptor`:
+ preConfigure = ''
+ sed -r 's/^CFLAGS.*$/\0 -fvisibility=hidden/' -i Makefile
+
+ sed -r 's/^const LADSPA_Descriptor \*/__attribute__ ((visibility ("default"))) \0/' -i autotalent.c
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://tombaran.info/autotalent.html";
+ description = "A real-time pitch correction LADSPA plugin (no MIDI control)";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.michalrus ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/default.nix
new file mode 100644
index 000000000000..3d907e421b3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/default.nix
@@ -0,0 +1,101 @@
+{ stdenv, fetchFromGitHub, fetchurl, makeWrapper, unzip
+, gnumake, gcc-arm-embedded, binutils-arm-embedded
+, dfu-util-axoloti, jdk, ant, libfaketime }:
+
+stdenv.mkDerivation rec {
+ version = "1.0.12-2";
+ pname = "axoloti";
+
+ src = fetchFromGitHub {
+ owner = "axoloti";
+ repo = "axoloti";
+ rev = version;
+ sha256 = "1qffis277wshldr3i939b0r2x3a2mlr53samxqmr2nk1sfm2b4w9";
+ };
+
+ chibi_version = "2.6.9";
+ chibi_name = "ChibiOS_${chibi_version}";
+
+ chibios = fetchurl {
+ url = "mirror://sourceforge/project/chibios/ChibiOS_RT%20stable/Version%20${chibi_version}/${chibi_name}.zip";
+ sha256 = "0lb5s8pkj80mqhsy47mmq0lqk34s2a2m3xagzihalvabwd0frhlj";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper
+ unzip
+ gcc-arm-embedded
+ binutils-arm-embedded
+ dfu-util-axoloti
+ ant
+ ];
+ buildInputs = [jdk libfaketime ];
+
+ patchPhase = ''
+ unzip ${chibios}
+ mv ${chibi_name} chibios
+ (cd chibios/ext; unzip -q -o fatfs-0.9-patched.zip)
+
+ # Remove source of non-determinism in ChibiOS
+ substituteInPlace "chibios/os/various/shell.c" \
+ --replace "#ifdef __DATE__" "#if 0"
+
+ # Hardcode path to "make"
+ for f in "firmware/compile_firmware_linux.sh" \
+ "firmware/compile_patch_linux.sh"; do
+ substituteInPlace "$f" \
+ --replace "make" "${gnumake}/bin/make"
+ done
+
+ # Hardcode dfu-util path
+ substituteInPlace "platform_linux/upload_fw_dfu.sh" \
+ --replace "/bin/dfu-util" ""
+ substituteInPlace "platform_linux/upload_fw_dfu.sh" \
+ --replace "./dfu-util" "${dfu-util-axoloti}/bin/dfu-util"
+
+ # Fix build version
+ substituteInPlace "build.xml" \
+ --replace "(git missing)" "${version}"
+
+ # Remove build time
+ substituteInPlace "build.xml" \
+ --replace "<tstamp>" ""
+ substituteInPlace "build.xml" \
+ --replace \
+ '<format property="build.time" pattern="dd/MM/yyyy HH:mm:ss z"/>' \
+ '<property name="build.time" value=""/>'
+ substituteInPlace "build.xml" \
+ --replace "</tstamp>" ""
+ substituteInPlace "build.xml" \
+ --replace \
+ '{line.separator}</echo>' \
+ '{line.separator}</echo> <touch file="src/main/java/axoloti/Version.java" millis="0" />'
+ '';
+
+ buildPhase = ''
+ find . -exec touch -d '1970-01-01 00:00' {} \;
+ (cd platform_linux; sh compile_firmware.sh)
+ faketime "1970-01-01 00:00:00" ant -Dbuild.runtime=true
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/axoloti
+
+ cp -r doc firmware chibios platform_linux CMSIS *.txt $out/share/axoloti/
+ install -vD dist/Axoloti.jar $out/share/axoloti/
+
+ makeWrapper ${jdk}/bin/java $out/bin/axoloti --add-flags "-Daxoloti_release=$out/share/axoloti -Daxoloti_runtime=$out/share/axoloti -jar $out/share/axoloti/Axoloti.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.axoloti.com";
+ description = ''
+ Sketching embedded digital audio algorithms.
+
+ To fix permissions of the Axoloti USB device node, add a similar udev rule to <literal>services.udev.extraRules</literal>:
+ <literal>SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="0442", OWNER="someuser", GROUP="somegroup"</literal>
+ '';
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/dfu-util.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/dfu-util.nix
new file mode 100644
index 000000000000..80ec696c6459
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/dfu-util.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, libusb1-axoloti }:
+
+stdenv.mkDerivation rec {
+ pname = "dfu-util";
+ version = "0.8";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libusb1-axoloti ];
+
+ src = fetchurl {
+ url = "http://dfu-util.sourceforge.net/releases/${pname}-${version}.tar.gz";
+ sha256 = "0n7h08avlzin04j93m6hkq9id6hxjiiix7ff9gc2n89aw6dxxjsm";
+ };
+
+ 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 = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix
new file mode 100644
index 000000000000..255cf3f5e3bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchurl, pkgconfig, systemd ? null, libobjc, IOKit, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ name = "libusb-1.0.19";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/libusb/${name}.tar.bz2";
+ sha256 = "0h38p9rxfpg9vkrbyb120i1diq57qcln82h5fr7hvy82c20jql3c";
+ };
+
+ outputs = [ "out" "dev" ]; # get rid of propagating systemd closure
+
+ buildInputs = [ pkgconfig ];
+ propagatedBuildInputs =
+ stdenv.lib.optional stdenv.isLinux systemd ++
+ stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
+
+ patches = [
+ (fetchpatch {
+ name = "libusb.stdfu.patch";
+ url = "https://raw.githubusercontent.com/axoloti/axoloti/1.0.12/platform_linux/src/libusb.stdfu.patch";
+ sha256 = "194j7j61i4q6x0ihm9ms8dxd4vliw20n2rj6cm9h17qzdl9xr33d";
+ })
+ ];
+
+ NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
+
+ preFixup = stdenv.lib.optionalString stdenv.isLinux ''
+ sed 's,-ludev,-L${lib.getLib systemd}/lib -ludev,' -i $out/lib/libusb-1.0.la
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.libusb.info";
+ description = "User-space USB library";
+ platforms = platforms.unix;
+ license = licenses.lgpl21;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bambootracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
new file mode 100644
index 000000000000..f1f97de256e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
@@ -0,0 +1,50 @@
+{ mkDerivation
+, stdenv
+, fetchFromGitHub
+, qmake
+, qtbase
+, qttools
+, alsaSupport ? stdenv.hostPlatform.isLinux
+, alsaLib
+, pulseSupport ? stdenv.hostPlatform.isLinux
+, libpulseaudio
+, jackSupport ? stdenv.hostPlatform.isUnix
+, libjack2
+}:
+let
+
+ inherit (stdenv.lib) optional optionals;
+
+in
+mkDerivation rec {
+ pname = "bambootracker";
+ version = "0.4.5";
+
+ src = fetchFromGitHub {
+ owner = "rerrahkr";
+ repo = "BambooTracker";
+ rev = "v${version}";
+ sha256 = "0ibi0sykxf6cp5la2c4pgxf5gvy56yv259fbmdwdrdyv6vlddf42";
+ };
+
+ sourceRoot = "source/BambooTracker";
+
+ nativeBuildInputs = [ qmake qttools ];
+
+ buildInputs = [ qtbase ]
+ ++ optional alsaSupport alsaLib
+ ++ optional pulseSupport libpulseaudio
+ ++ optional jackSupport libjack2;
+
+ qmakeFlags = [ "CONFIG+=release" "CONFIG-=debug" ]
+ ++ optional pulseSupport "CONFIG+=use_pulse"
+ ++ optionals jackSupport [ "CONFIG+=use_jack" "CONFIG+=jack_has_rename" ];
+
+ meta = with stdenv.lib; {
+ description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
+ homepage = "https://github.com/rerrahkr/BambooTracker";
+ license = licenses.gpl2Only;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ OPNA2608 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/baudline/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/baudline/default.nix
new file mode 100644
index 000000000000..0d95675d1e67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/baudline/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl, libXmu, libXt, libX11, libXext, libXxf86vm, libjack2
+, makeWrapper
+}:
+
+let
+ rpath = stdenv.lib.makeLibraryPath
+ [ libXmu libXt libX11 libXext libXxf86vm libjack2 ];
+in
+stdenv.mkDerivation rec {
+ pname = "baudline";
+ version = "1.08";
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "http://www.baudline.com/baudline_${version}_linux_x86_64.tar.gz";
+ sha256 = "09fn0046i69in1jpizkzbaq5ggij0mpflcsparyskm3wh71mbzvr";
+ }
+ else if stdenv.hostPlatform.system == "i686-linux" then
+ fetchurl {
+ url = "http://www.baudline.com/baudline_${version}_linux_i686.tar.gz";
+ sha256 = "1waip5pmcf5ffcfvn8lf1rvsaq2ab66imrbfqs777scz7k8fhhjb";
+ }
+ else
+ throw "baudline isn't supported (yet?) on ${stdenv.hostPlatform.system}";
+
+ buildInputs = [ makeWrapper ];
+
+ # Prebuilt binary distribution.
+ # "patchelf --set-rpath" seems to break the application (cannot start), using
+ # LD_LIBRARY_PATH wrapper script instead.
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mkdir -p "$out/libexec/baudline"
+
+ cp -r . "$out/libexec/baudline/"
+
+ interpreter="$(echo ${stdenv.glibc.out}/lib/ld-linux*)"
+ for prog in "$out"/libexec/baudline/baudline*; do
+ patchelf --interpreter "$interpreter" "$prog"
+ ln -sr "$prog" "$out/bin/"
+ done
+ for prog in "$out"/bin/*; do
+ wrapProgram "$prog" --prefix LD_LIBRARY_PATH : ${rpath}
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Scientific signal analysis application";
+ longDescription = ''
+ Baudline is a time-frequency browser designed for scientific
+ visualization of the spectral domain. Signal analysis is performed by
+ Fourier, correlation, and raster transforms that create colorful
+ spectrograms with vibrant detail. Conduct test and measurement
+ experiments with the built in function generator, or play back audio
+ files with a multitude of effects and filters. The baudline signal
+ analyzer combines fast digital signal processing, versatile high speed
+ displays, and continuous capture tools for hunting down and studying
+ elusive signal characteristics.
+ '';
+ homepage = "http://www.baudline.com/";
+ # See http://www.baudline.com/faq.html#licensing_terms.
+ # (Do NOT (re)distribute on hydra.)
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = [ maintainers.bjornfor ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bchoppr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bchoppr/default.nix
new file mode 100644
index 000000000000..33827287712a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bchoppr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkg-config, cairo, libX11, lv2 }:
+
+stdenv.mkDerivation rec {
+ pname = "bchoppr";
+ version = "1.8.0";
+
+ src = fetchFromGitHub {
+ owner = "sjaehn";
+ repo = pname;
+ rev = version;
+ sha256 = "1nd6byy75f0rbz9dm9drhxmpsfhxhg0y7q3v2m3098llynhy9k2j";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ cairo libX11 lv2 ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/sjaehn/BChoppr;
+ description = "An audio stream chopping LV2 plugin";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/beast/patch.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/beast/patch.patch
new file mode 100644
index 000000000000..9d9f82cf4b4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/beast/patch.patch
@@ -0,0 +1,187 @@
+Index: beast-0.7.1/shell/Makefile.in
+===================================================================
+--- beast-0.7.1.orig/shell/Makefile.in
++++ beast-0.7.1/shell/Makefile.in
+@@ -859,10 +859,7 @@ check-before: check-installation
+ check-installation:
+ @for p in $(bin_PROGRAMS) ; do \
+ pp="$(DESTDIR)$(bindir)/$$p" ; \
+- echo "TEST: test -x \"$$pp\"" ; \
+- test -x "$$pp" || \
+- { echo "Failed to verify installation of executable: $$pp"; \
+- exit 1 ; } \
++ echo "TEST: test -x \"$$pp\" Test disabled" ; \
+ done
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+Index: beast-0.7.1/shell/Makefile.am
+===================================================================
+--- beast-0.7.1.orig/shell/Makefile.am
++++ beast-0.7.1/shell/Makefile.am
+@@ -859,10 +859,7 @@ check-before: check-installation
+ check-installation:
+ @for p in $(bin_PROGRAMS) ; do \
+ pp="$(DESTDIR)$(bindir)/$$p" ; \
+- echo "TEST: test -x \"$$pp\"" ; \
+- test -x "$$pp" || \
+- { echo "Failed to verify installation of executable: $$pp"; \
+- exit 1 ; } \
++ echo "TEST: test -x \"$$pp\" Test disabled" ; \
+ done
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+Index: beast-0.7.1/birnet/birnettests.h
+===================================================================
+--- beast-0.7.1.orig/birnet/birnettests.h
++++ beast-0.7.1/birnet/birnettests.h
+@@ -27,6 +27,7 @@
+
+ #include <glib.h>
+ #include <string.h>
++#include <signal.h>
+
+ BIRNET_EXTERN_C_BEGIN();
+
+Index: beast-0.7.1/tools/bseloopfuncs.c
+===================================================================
+--- beast-0.7.1.orig/tools/bseloopfuncs.c
++++ beast-0.7.1/tools/bseloopfuncs.c
+@@ -21,6 +21,7 @@
+ #include <string.h>
+ #include <stdio.h>
+ #include <math.h>
++#include <signal.h>
+
+ typedef struct {
+ gdouble score;
+--- beast-0.7.1.orig/bse/Makefile.am 2008-06-01 13:12:28.116708321 +0200
++++ beast-0.7.1/bse/Makefile.am 2008-06-01 13:12:40.000000000 +0200
+@@ -10,7 +10,7 @@
+ # need -I$(top_builddir) for <sfi/sficonfig.h>
+ # need -I$(srcdir) for "bseserver.h" in .genprc.c
+ # need -I. (builddir) for "bsecore.genidl.hh" in bsecore.cc
+-INCLUDES += -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) -I. $(BSE_CFLAGS) -DG_DISABLE_DEPRECATED -DG_DISABLE_CONST_RETURNS
++INCLUDES += -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) -I. $(BSE_CFLAGS) -DG_DISABLE_CONST_RETURNS
+ DEFS += $(strip \
+ $(patsubst %, -DG_LOG_DOMAIN=\"BSE\" -DBSE_COMPILATION, \
+ $(filter $(<F), $(bse_sources) $(bse_sources))) \
+--- beast-0.7.1.orig/bse/zintern/Makefile.am 2008-06-01 13:14:25.880028999 +0200
++++ beast-0.7.1/bse/zintern/Makefile.am 2008-06-01 13:14:38.000000000 +0200
+@@ -4,7 +4,7 @@
+ ## GNU Lesser General Public License version 2 or any later version.
+ include $(top_srcdir)/Makefile.decl
+
+-INCLUDES += -I$(top_srcdir) -I$(top_builddir) $(BSE_CFLAGS) -DG_DISABLE_DEPRECATED -DG_DISABLE_CONST_RETURNS
++INCLUDES += -I$(top_srcdir) -I$(top_builddir) $(BSE_CFLAGS) -DG_DISABLE_CONST_RETURNS
+
+ ZFILE_DEFS = $(strip \
+ wave-mono $(srcdir)/wave-mono.bse \
+--- a/configure.in 2008-06-01 15:19:46.000000000 +0200
++++ b/configure.in 2008-06-01 15:27:45.000000000 +0200
+@@ -159,39 +159,33 @@
+ dnl # Define package requirements.
+ dnl #
+ dnl ## include acintltool.m4 to provide IT_PROG_INTLTOOL
+-builtin(include, acintltool.m4)dnl
+-AC_DEFUN([AC_I18N_REQUIREMENTS],
+-[
+- ALL_LINGUAS=`cat "$srcdir/po/LINGUAS" | grep -v '^#' | xargs echo -n `
+- AC_SUBST(ALL_LINGUAS)
+- AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/po/LINGUAS'])
+-
+- dnl # versioned BEAST gettext domain (po/)
+- BST_GETTEXT_DOMAIN=beast-v$BIN_VERSION # version without -rcZ
+- AC_SUBST(BST_GETTEXT_DOMAIN)
+- AC_DEFINE_UNQUOTED(BST_GETTEXT_DOMAIN, "$BST_GETTEXT_DOMAIN", [Versioned BEAST gettext domain])
+- GETTEXT_PACKAGE=$BST_GETTEXT_DOMAIN
+- AC_SUBST(GETTEXT_PACKAGE)
+-
+- dnl # locale directory for all domains
+- dnl # (AM_GLIB_DEFINE_LOCALEDIR() could do this if it would do AC_SUBST())
+- saved_prefix="$prefix"
+- saved_exec_prefix="$exec_prefix"
+- test "x$prefix" = xNONE && prefix=$ac_default_prefix
+- test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+- if test "x$CATOBJEXT" = "x.mo" ; then
+- beastlocaledir=`eval echo "${libdir}/locale"`
+- else
+- beastlocaledir=`eval echo "${datadir}/locale"`
+- fi
+- exec_prefix="$saved_exec_prefix"
+- prefix="$saved_prefix"
+- AC_SUBST(beastlocaledir)
+-
+- dnl # do gettext checks and prepare for intltool
+- AM_GLIB_GNU_GETTEXT
+- IT_PROG_INTLTOOL
+-])
++IT_PROG_INTLTOOL([0.35.0])
++
++dnl # versioned BEAST gettext domain (po/)
++BST_GETTEXT_DOMAIN=beast-v$BIN_VERSION # version without -rcZ
++AC_SUBST(BST_GETTEXT_DOMAIN)
++AC_DEFINE_UNQUOTED(BST_GETTEXT_DOMAIN, "$BST_GETTEXT_DOMAIN", [Versioned BEAST gettext domain])
++GETTEXT_PACKAGE=$BST_GETTEXT_DOMAIN
++AC_SUBST(GETTEXT_PACKAGE)
++
++dnl # locale directory for all domains
++dnl # (AM_GLIB_DEFINE_LOCALEDIR() could do this if it would do AC_SUBST())
++saved_prefix="$prefix"
++saved_exec_prefix="$exec_prefix"
++test "x$prefix" = xNONE && prefix=$ac_default_prefix
++test "x$exec_prefix" = xNONE && exec_prefix=$prefix
++if test "x$CATOBJEXT" = "x.mo" ; then
++ beastlocaledir=`eval echo "${libdir}/locale"`
++else
++ beastlocaledir=`eval echo "${datadir}/locale"`
++fi
++exec_prefix="$saved_exec_prefix"
++prefix="$saved_prefix"
++AC_SUBST(beastlocaledir)
++
++dnl # do gettext checks and prepare for intltool
++AM_GLIB_GNU_GETTEXT
++
+ AC_DEFUN([AC_SFI_REQUIREMENTS],
+ [
+ dnl # check for GLib libs, libbirnet already provides gthread-2.0 and glib-2.0
+@@ -570,7 +564,6 @@
+ AC_BIRNET_REQUIREMENTS
+
+ # Check requirement sets
+-AC_I18N_REQUIREMENTS
+ AC_SFI_REQUIREMENTS
+ AC_BSE_REQUIREMENTS
+ AC_BSESCM_REQUIREMENTS
+--- a/po/POTFILES.in 2008-06-22 15:12:10.000000000 +0200
++++ b/po/POTFILES.in 2008-06-22 15:13:28.000000000 +0200
+@@ -131,3 +131,29 @@
+ plugins/davxtalstrings.c
+ plugins/freeverb/bsefreeverb.c
+ tools/bsewavetool.cc
++
++beast-gtk/bstgentypes.c
++birnet/birnetcpu.cc
++birnet/birnetutils.hh
++bse/bsebus.genprc.c
++bse/bsebusmodule.genidl.hh
++bse/bsecontainer.genprc.c
++bse/bsecore.genidl.hh
++bse/bseieee754.h
++bse/bseladspamodule.c
++bse/bseparasite.genprc.c
++bse/bsesong.genprc.c
++bse/bsesource.genprc.c
++bse/bsetrack.genprc.c
++plugins/artscompressor.genidl.hh
++plugins/bseamplifier.genidl.hh
++plugins/bsebalance.genidl.hh
++plugins/bsecontribsampleandhold.genidl.hh
++plugins/bsenoise.genidl.hh
++plugins/bsequantizer.genidl.hh
++plugins/bsesummation.genidl.hh
++plugins/davbassfilter.genidl.hh
++plugins/davchorus.genidl.hh
++plugins/standardguspatchenvelope.genidl.hh
++plugins/standardsaturator.genidl.hh
++tests/latency/bselatencytest.genidl.hh
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bitmeter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bitmeter/default.nix
new file mode 100644
index 000000000000..ac05a9367cc9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bitmeter/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, autoreconfHook, fetchurl, libjack2, gtk2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "bitmeter";
+ version = "1.2";
+
+ src = fetchurl {
+ url = "https://devel.tlrmx.org/audio/source/${pname}-${version}.tar.gz";
+ sha256 = "09ck2gxqky701dc1p0ip61rrn16v0pdc7ih2hc2sd63zcw53g2a7";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libjack2 gtk2 ];
+
+ patches = [
+ (fetchurl {
+ url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/bitmeter/files/bitmeter-1.2-fix-build-system.patch";
+ sha256 = "021mz6933iw7mpk6b9cbjr8naj6smbq1hwqjszlyx72qbwrrid7k";
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://devel.tlrmx.org/audio/bitmeter/";
+ description = "Also known as jack bitscope. Useful to detect denormals";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
new file mode 100644
index 000000000000..61d522f677fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
@@ -0,0 +1,98 @@
+{ stdenv, fetchurl, alsaLib, bzip2, cairo, dpkg, freetype, gdk-pixbuf
+, wrapGAppsHook, gtk2, gtk3, harfbuzz, jdk, lib, xorg
+, libbsd, libjack2, libpng, ffmpeg_3
+, libxkbcommon
+, makeWrapper, pixman, autoPatchelfHook
+, xdg_utils, zenity, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "bitwig-studio";
+ version = "1.3.16";
+
+ src = fetchurl {
+ url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
+ sha256 = "0n0fxh9gnmilwskjcayvjsjfcs3fz9hn00wh7b3gg0cv3qqhich8";
+ };
+
+ nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ];
+
+ unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
+
+ dontBuild = true;
+ dontWrapGApps = true; # we only want $gappsWrapperArgs here
+
+ buildInputs = with xorg; [
+ alsaLib bzip2.out cairo freetype gdk-pixbuf gtk2 gtk3 harfbuzz libX11 libXau
+ libXcursor libXdmcp libXext libXfixes libXrender libbsd libjack2 libpng libxcb
+ libxkbfile pixman xcbutil xcbutilwm zlib
+ ];
+
+ binPath = lib.makeBinPath [
+ xdg_utils zenity ffmpeg_3
+ ];
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r opt/bitwig-studio $out/libexec
+
+ # Use NixOS versions of these libs instead of the bundled ones.
+ (
+ cd $out/libexec/lib/bitwig-studio
+ rm libbz2.so* libxkbfile.so* libXcursor.so* libXau.so* \
+ libXdmcp.so* libpng16.so* libxcb*.so* libharfbuzz.so* \
+ libcairo.so* libfreetype.so*
+ ln -s ${bzip2.out}/lib/libbz2.so.1.0.6 libbz2.so.1.0
+ )
+
+ # Use our OpenJDK instead of Bitwig’s bundled—and commercial!—one.
+ rm -rf $out/libexec/lib/jre
+ ln -s ${jdk.home}/jre $out/libexec/lib/jre
+
+ mkdir -p $out/bin
+ ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio
+
+ cp -r usr/share $out/share
+ substitute usr/share/applications/bitwig-studio.desktop \
+ $out/share/applications/bitwig-studio.desktop \
+ --replace /usr/bin/bitwig-studio $out/bin/bitwig-studio
+ '';
+
+ postFixup = ''
+ # Bitwig’s `libx11-windowing-system.so` has several problems:
+ #
+ # • has some old version of libxkbcommon linked statically (ಠ_ಠ),
+ #
+ # • hardcodes path to `/usr/share/X11/xkb`,
+ #
+ # • even if we redirected it with libredirect (after adding
+ # `eaccess()` to libredirect!), their version of libxkbcommon
+ # is unable to parse our xkeyboardconfig. Been there, done that.
+ #
+ # However, it suffices to override theirs with our libxkbcommon
+ # in LD_PRELOAD. :-)
+
+ find $out -type f -executable \
+ -not -name '*.so.*' \
+ -not -name '*.so' \
+ -not -path '*/resources/*' | \
+ while IFS= read -r f ; do
+ wrapProgram $f \
+ --prefix PATH : "${binPath}" \
+ "''${gappsWrapperArgs[@]}" \
+ --set LD_PRELOAD "${libxkbcommon.out}/lib/libxkbcommon.so" || true
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A digital audio workstation";
+ longDescription = ''
+ Bitwig Studio is a multi-platform music-creation system for
+ production, performance and DJing, with a focus on flexible
+ editing tools and a super-fast workflow.
+ '';
+ homepage = "https://www.bitwig.com/";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ michalrus mrVanDalo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix
new file mode 100644
index 000000000000..345750e9e2a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix
@@ -0,0 +1,16 @@
+{ fetchurl, bitwig-studio1,
+ pulseaudio }:
+
+bitwig-studio1.overrideAttrs (oldAttrs: rec {
+ name = "bitwig-studio-${version}";
+ version = "2.5";
+
+ src = fetchurl {
+ url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
+ sha256 = "1zkiz36lhck3qvl0cp0dq6pwbv4lx4sh9wh0ga92kx5zhvbjm098";
+ };
+
+ runtimeDependencies = [
+ pulseaudio
+ ];
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
new file mode 100644
index 000000000000..6841cd6e75d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -0,0 +1,23 @@
+{ fetchurl, bitwig-studio1, pulseaudio, libjack2, xorg }:
+
+bitwig-studio1.overrideAttrs (oldAttrs: rec {
+ name = "bitwig-studio-${version}";
+ version = "3.2.8";
+
+ src = fetchurl {
+ url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
+ sha256 = "18ldgmnv7bigb4mch888kjpf4abalpiwmlhwd7rjb9qf6p72fhpj";
+ };
+
+ buildInputs = oldAttrs.buildInputs ++ [ xorg.libXtst ];
+
+ runtimeDependencies = [ pulseaudio libjack2 ];
+
+ installPhase = ''
+ ${oldAttrs.installPhase}
+
+ # recover commercial jre
+ rm -f $out/libexec/lib/jre
+ cp -r opt/bitwig-studio/lib/jre $out/libexec/lib
+ '';
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bjumblr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bjumblr/default.nix
new file mode 100644
index 000000000000..e1a5bee64b30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bjumblr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, libX11, cairo, lv2, pkgconfig, libsndfile }:
+
+stdenv.mkDerivation rec {
+ pname = "BJumblr";
+ version = "1.4.2";
+
+ src = fetchFromGitHub {
+ owner = "sjaehn";
+ repo = pname;
+ rev = version;
+ sha256 = "0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ libX11 cairo lv2 libsndfile
+ ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sjaehn/BJumblr";
+ description = "Pattern-controlled audio stream / sample re-sequencer LV2 plugin";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bristol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bristol/default.nix
new file mode 100644
index 000000000000..704b888e2293
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bristol/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, alsaLib, libjack2, pkgconfig, libpulseaudio, xorg }:
+
+stdenv.mkDerivation rec {
+ pname = "bristol";
+ version = "0.60.11";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/bristol/${pname}-${version}.tar.gz";
+ sha256 = "1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ alsaLib libjack2 libpulseaudio xorg.libX11 xorg.libXext
+ xorg.xorgproto
+ ];
+
+ patchPhase = "sed -i '41,43d' libbristolaudio/audioEngineJack.c"; # disable alsa/iatomic
+
+ configurePhase = "./configure --prefix=$out --enable-jack-default-audio --enable-jack-default-midi";
+
+ preInstall = ''
+ sed -e "s@\`which bristol\`@$out/bin/bristol@g" -i bin/startBristol
+ sed -e "s@\`which brighton\`@$out/bin/brighton@g" -i bin/startBristol
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A range of synthesiser, electric piano and organ emulations";
+ homepage = "http://bristol.sourceforge.net";
+ license = licenses.gpl3;
+ platforms = ["x86_64-linux" "i686-linux"];
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix
new file mode 100644
index 000000000000..76a789356193
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, ffmpeg, sox }:
+
+stdenv.mkDerivation rec {
+ pname = "bs1770gain";
+ version = "0.5.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/bs1770gain/${pname}-${version}.tar.gz";
+ sha256 = "1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk";
+ };
+
+ buildInputs = [ ffmpeg sox ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error";
+
+ meta = with stdenv.lib; {
+ description = "A audio/video loudness scanner implementing ITU-R BS.1770";
+ license = licenses.gpl2Plus;
+ homepage = "http://bs1770gain.sourceforge.net/";
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bschaffl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bschaffl/default.nix
new file mode 100644
index 000000000000..c0d11e1fe5ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bschaffl/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkg-config, cairo, libX11, lv2 }:
+
+stdenv.mkDerivation rec {
+ pname = "bschaffl";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ owner = "sjaehn";
+ repo = pname;
+ rev = version;
+ sha256 = "1c09acqrbd387ba41f8ch1qykdap5h6cg9if5pgd16i4dmjnpghj";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ cairo libX11 lv2 ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sjaehn/BSchaffl";
+ description = "Pattern-controlled MIDI amp & time stretch LV2 plugin";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bsequencer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
new file mode 100644
index 000000000000..093e9450de8b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, xorg, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "BSEQuencer";
+ version = "1.8.4";
+
+ src = fetchFromGitHub {
+ owner = "sjaehn";
+ repo = pname;
+ rev = version;
+ sha256 = "0hagnn104ybzdp13r95idw20fhmzif8p3kmiypnr20m6c64rdd29";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 cairo lv2
+ ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sjaehn/BSEQuencer";
+ description = "Multi channel MIDI step sequencer LV2 plugin";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bshapr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bshapr/default.nix
new file mode 100644
index 000000000000..aa4374c79bc1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bshapr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, xorg, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "BShapr";
+ version = "0.9";
+
+ src = fetchFromGitHub {
+ owner = "sjaehn";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "04zd3a178i2nivg5rjailzqvc5mlnilmhj1ziygmbhshbrywplri";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 cairo lv2
+ ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sjaehn/BShapr";
+ description = "Beat / envelope shaper LV2 plugin";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/bslizr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/bslizr/default.nix
new file mode 100644
index 000000000000..e239a89b8995
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/bslizr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, xorg, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "BSlizr";
+ version = "1.2.8";
+
+ src = fetchFromGitHub {
+ owner = "sjaehn";
+ repo = pname;
+ rev = version;
+ sha256 = "1f7xrljvsy7a1p8c7wln2zhwarl3ara7gbjxkpyh47wfdpigpdb0";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 cairo lv2
+ ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sjaehn/BSlizr";
+ description = "Sequenced audio slicing effect LV2 plugin (step sequencer effect)";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cadence/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cadence/default.nix
new file mode 100644
index 000000000000..7230bf63287d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cadence/default.nix
@@ -0,0 +1,105 @@
+{ stdenv
+, a2jmidid
+, coreutils
+, lib
+, libjack2
+, fetchpatch
+, fetchzip
+, jack_capture
+, pkgconfig
+, pulseaudioFull
+, qtbase
+, makeWrapper
+, mkDerivation
+, python3
+}:
+#ladish missing, claudia can't work.
+#pulseaudio needs fixes (patchShebangs .pa ...)
+#desktop needs icons and exec fixing.
+
+mkDerivation rec {
+ version = "0.9.1";
+ pname = "cadence";
+
+ src = fetchzip {
+ url = "https://github.com/falkTX/Cadence/archive/v${version}.tar.gz";
+ sha256 = "07z8grnnpkd0nf3y3r6qjlk1jlzrbhdrp9mnhrhhmws54p1bhl20";
+ };
+
+ patches = [
+ # Fix installation without DESTDIR
+ (fetchpatch {
+ url = "https://github.com/falkTX/Cadence/commit/1fd3275e7daf4b75f59ef1f85a9e2e93bd5c0731.patch";
+ sha256 = "0q791jsh8vmjg678dzhbp1ykq8xrrlxl1mbgs3g8if1ccj210vd8";
+ })
+ # Fix build with Qt 5.15
+ (fetchpatch {
+ url = "https://github.com/falkTX/Cadence/commit/c167f35fbb76c4246c730b29262a59da73010412.patch";
+ sha256 = "1gm9q6gx03sla5vcnisznc95pjdi2703f8b3mj2kby9rfx2pylyh";
+ })
+ ];
+
+ postPatch = ''
+ libjackso=$(realpath ${lib.makeLibraryPath [libjack2]}/libjack.so.0);
+ substituteInPlace ./src/jacklib.py --replace libjack.so.0 $libjackso
+ substituteInPlace ./src/cadence.py --replace "/usr/bin/pulseaudio" \
+ "${lib.makeBinPath[pulseaudioFull]}/pulseaudio"
+ substituteInPlace ./c++/jackbridge/JackBridge.cpp --replace libjack.so.0 $libjackso
+ '';
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ buildInputs = [
+ qtbase
+ jack_capture
+ pulseaudioFull
+ ((python3.withPackages (ps: with ps; [
+ pyqt5
+ dbus-python
+ ])))
+ ];
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "SYSCONFDIR=${placeholder "out"}/etc"
+ ];
+
+ dontWrapQtApps = true;
+
+ # Replace with our own wrappers. They need to be changed manually since it wouldn't work otherwise.
+ preFixup = let
+ outRef = placeholder "out";
+ prefix = "${outRef}/share/cadence/src";
+ scriptAndSource = lib.mapAttrs' (script: source:
+ lib.nameValuePair ("${outRef}/bin/" + script) ("${prefix}/" + source)
+ ) {
+ "cadence" = "cadence.py";
+ "claudia" = "claudia.py";
+ "catarina" = "catarina.py";
+ "catia" = "catia.py";
+ "cadence-jacksettings" = "jacksettings.py";
+ "cadence-aloop-daemon" = "cadence_aloop_daemon.py";
+ "cadence-logs" = "logs.py";
+ "cadence-render" = "render.py";
+ "claudia-launcher" = "claudia_launcher.py";
+ "cadence-session-start" = "cadence_session_start.py";
+ };
+ in lib.mapAttrsToList (script: source: ''
+ rm -f ${script}
+ makeQtWrapper ${source} ${script} \
+ --prefix PATH : "${lib.makeBinPath [
+ jack_capture # cadence-render
+ pulseaudioFull # cadence, cadence-session-start
+ ]}"
+ '') scriptAndSource;
+
+ meta = {
+ homepage = "https://github.com/falkTX/Cadence/";
+ description = "Collection of tools useful for audio production";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ worldofpeace ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/calf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/calf/default.nix
new file mode 100644
index 000000000000..bbeef4c395a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/calf/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, cairo, expat, fftwSinglePrec, fluidsynth, glib
+, gtk2, libjack2, ladspaH , libglade, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "calf";
+ version = "0.90.3";
+
+ src = fetchurl {
+ url = "https://calf-studio-gear.org/files/${pname}-${version}.tar.gz";
+ sha256 = "17x4hylgq4dn9qycsdacfxy64f5cv57n2qgkvsdp524gnqzw4az3";
+ };
+
+ enableParallelBuilding = true;
+
+ buildInputs = [
+ cairo expat fftwSinglePrec fluidsynth glib gtk2 libjack2 ladspaH
+ libglade lv2 pkgconfig
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://calf-studio-gear.org";
+ description = "A set of high quality open source audio plugins for musicians";
+ license = licenses.lgpl2;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cantata/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cantata/default.nix
new file mode 100644
index 000000000000..85806ca9a0d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cantata/default.nix
@@ -0,0 +1,108 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
+, qtbase, qtsvg, qttools, perl
+
+# Cantata doesn't build with cdparanoia enabled so we disable that
+# default for now until I (or someone else) figure it out.
+, withCdda ? false, cdparanoia
+, withCddb ? false, libcddb
+, withLame ? false, lame
+, withMusicbrainz ? false, libmusicbrainz5
+
+, withTaglib ? true, taglib, taglib_extras
+, withHttpStream ? true, qtmultimedia
+, withReplaygain ? true, ffmpeg_3, speex, mpg123
+, withMtp ? true, libmtp
+, withOnlineServices ? true
+, withDevices ? true, udisks2
+, withDynamic ? true
+, withHttpServer ? true
+, withLibVlc ? false, libvlc
+, withStreams ? true
+}:
+
+# Inter-dependencies.
+assert withCddb -> withCdda && withTaglib;
+assert withCdda -> withCddb && withMusicbrainz;
+assert withLame -> withCdda && withTaglib;
+assert withMtp -> withTaglib;
+assert withMusicbrainz -> withCdda && withTaglib;
+assert withOnlineServices -> withTaglib;
+assert withReplaygain -> withTaglib;
+assert withLibVlc -> withHttpStream;
+
+let
+ version = "2.4.2";
+ pname = "cantata";
+ fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF");
+ fstats = x: map (fstat x);
+
+ withUdisks = (withTaglib && withDevices);
+
+ perl' = perl.withPackages (ppkgs: [ ppkgs.URI ]);
+
+in mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "CDrummond";
+ repo = "cantata";
+ rev = "v${version}";
+ sha256 = "15qfx9bpfdplxxs08inwf2j8kvf7g5cln5sv1wj1l2l41vbf1mjr";
+ };
+
+ patches = [
+ # Cantata wants to check if perl is in the PATH at runtime, but we
+ # patchShebangs the playlists scripts, making that unnecessary (perl will
+ # always be available because it's a dependency)
+ ./dont-check-for-perl-in-PATH.diff
+ ];
+
+ postPatch = ''
+ patchShebangs playlists
+ '';
+
+ buildInputs = [ qtbase qtsvg perl' ]
+ ++ lib.optionals withTaglib [ taglib taglib_extras ]
+ ++ lib.optionals withReplaygain [ ffmpeg_3 speex mpg123 ]
+ ++ lib.optional withHttpStream qtmultimedia
+ ++ lib.optional withCdda cdparanoia
+ ++ lib.optional withCddb libcddb
+ ++ lib.optional withLame lame
+ ++ lib.optional withMtp libmtp
+ ++ lib.optional withMusicbrainz libmusicbrainz5
+ ++ lib.optional withUdisks udisks2
+ ++ lib.optional withLibVlc libvlc;
+
+ nativeBuildInputs = [ cmake pkgconfig qttools ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = lib.flatten [
+ (fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ])
+ (fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ])
+ (fstat withHttpStream "HTTP_STREAM_PLAYBACK")
+ (fstat withCdda "CDPARANOIA")
+ (fstat withCddb "CDDB")
+ (fstat withLame "LAME")
+ (fstat withMtp "MTP")
+ (fstat withMusicbrainz "MUSICBRAINZ")
+ (fstat withOnlineServices "ONLINE_SERVICES")
+ (fstat withDynamic "DYNAMIC")
+ (fstat withDevices "DEVICES_SUPPORT")
+ (fstat withHttpServer "HTTP_SERVER")
+ (fstat withLibVlc "LIBVLC")
+ (fstat withStreams "STREAMS")
+ (fstat withUdisks "UDISKS2")
+ "-DENABLE_HTTPS_SUPPORT=ON"
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/cdrummond/cantata";
+ description = "A graphical client for MPD";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ # Technically Cantata can run on Windows so if someone wants to
+ # bother figuring that one out, be my guest.
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff b/infra/libkookie/nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff
new file mode 100644
index 000000000000..effb0f3b502c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff
@@ -0,0 +1,17 @@
+diff --git a/playlists/dynamicplaylists.cpp b/playlists/dynamicplaylists.cpp
+index 07b6dce3..6a3f97c9 100644
+--- a/playlists/dynamicplaylists.cpp
++++ b/playlists/dynamicplaylists.cpp
+@@ -211,11 +211,6 @@ void DynamicPlaylists::start(const QString &name)
+ return;
+ }
+
+- if (Utils::findExe("perl").isEmpty()) {
+- emit error(tr("You need to install \"perl\" on your system in order for Cantata's dynamic mode to function."));
+- return;
+- }
+-
+ QString fName(Utils::dataDir(rulesDir, false)+name+constExtension);
+
+ if (!QFile::exists(fName)) {
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/caps/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/caps/default.nix
new file mode 100644
index 000000000000..dc8511bf5007
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/caps/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+ pname = "caps";
+ version = "0.9.26";
+ src = fetchurl {
+ url = "http://www.quitte.de/dsp/caps_${version}.tar.bz2";
+ sha256 = "1jcq9y51vdnk93q27r566y9qmddvadhr4ddnvkiypaq5rrdnqjg7";
+ };
+
+ configurePhase = ''
+ echo "PREFIX = $out" > defines.make
+ '';
+
+ meta = {
+ description = "A selection of LADSPA plugins implementing classic effects";
+ longDescription = ''
+ The C* Audio Plugin Suite is a selection of classic effects,
+ unique filters and signal generators.  The digital guitarist
+ finds in CAPS a range of processors recreating key aspects of
+ the formation of tone in traditional electronic instrument
+ amplification.  Beyond sound quality, central design
+ considerations are latency-free realtime operation, modesty of
+ resource demands and meaningful control interfaces.
+ '';
+ homepage = "http://www.quitte.de/dsp/caps.html";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.astsmtl ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/carla/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/carla/default.nix
new file mode 100644
index 000000000000..8a566c249917
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/carla/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, fetchFromGitHub, alsaLib, file, fluidsynth, ffmpeg_3, jack2,
+ liblo, libpulseaudio, libsndfile, pkgconfig, python3Packages,
+ which, withFrontend ? true,
+ withQt ? true, qtbase ? null, wrapQtAppsHook ? null,
+ withGtk2 ? true, gtk2 ? null,
+ withGtk3 ? true, gtk3 ? null }:
+
+with stdenv.lib;
+
+assert withFrontend -> python3Packages ? pyqt5;
+assert withQt -> qtbase != null;
+assert withQt -> wrapQtAppsHook != null;
+assert withGtk2 -> gtk2 != null;
+assert withGtk3 -> gtk3 != null;
+
+stdenv.mkDerivation rec {
+ pname = "carla";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "falkTX";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "B4xoRuNEW4Lz9haP8fqxOTcysGTNEXFOq9UXqUJLSFw=";
+ };
+
+ nativeBuildInputs = [
+ python3Packages.wrapPython pkgconfig which wrapQtAppsHook
+ ];
+
+ pythonPath = with python3Packages; [
+ rdflib pyliblo
+ ] ++ optional withFrontend pyqt5;
+
+ buildInputs = [
+ file liblo alsaLib fluidsynth ffmpeg_3 jack2 libpulseaudio libsndfile
+ ] ++ pythonPath
+ ++ optional withQt qtbase
+ ++ optional withGtk2 gtk2
+ ++ optional withGtk3 gtk3;
+
+ enableParallelBuilding = true;
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ dontWrapQtApps = true;
+ postFixup = ''
+ # Also sets program_PYTHONPATH and program_PATH variables
+ wrapPythonPrograms
+ wrapPythonProgramsIn "$out/share/carla/resources" "$out $pythonPath"
+
+ find "$out/share/carla" -maxdepth 1 -type f -not -name "*.py" -print0 | while read -d "" f; do
+ patchPythonScript "$f"
+ done
+ patchPythonScript "$out/share/carla/carla_settings.py"
+
+ for program in $out/bin/*; do
+ wrapQtApp "$program" \
+ --prefix PATH : "$program_PATH:${which}/bin" \
+ --set PYTHONNOUSERSITE true
+ done
+
+ find "$out/share/carla/resources" -maxdepth 1 -type f -not -name "*.py" -print0 | while read -d "" f; do
+ wrapQtApp "$f" \
+ --prefix PATH : "$program_PATH:${which}/bin" \
+ --set PYTHONNOUSERSITE true
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://kxstudio.sf.net/carla";
+ description = "An audio plugin host";
+ longDescription = ''
+ It currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3
+ and AU plugin formats, plus GIG, SF2 and SFZ file support.
+ It uses JACK as the default and preferred audio driver but also
+ supports native drivers like ALSA, DirectSound or CoreAudio.
+ '';
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.minijackson ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/caudec/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/caudec/default.nix
new file mode 100644
index 000000000000..c95390958637
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/caudec/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, makeWrapper, bash, bc, findutils, flac, lame, opusTools, procps, sox }:
+
+let
+ version = "1.7.5";
+in
+
+stdenv.mkDerivation {
+ pname = "caudec";
+ inherit version;
+
+ src = fetchurl {
+ url = "http://caudec.net/downloads/caudec-${version}.tar.gz";
+ sha256 = "5d1f5ab3286bb748bd29cbf45df2ad2faf5ed86070f90deccf71c60be832f3d5";
+ };
+
+ preBuild = ''
+ patchShebangs ./install.sh
+ '';
+
+ buildInputs = [ bash makeWrapper ];
+
+ installPhase = ''
+ ./install.sh --prefix=$out/bin
+ '';
+
+ postFixup = ''
+ for executable in $(cd $out/bin && ls); do
+ wrapProgram $out/bin/$executable \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ bc findutils sox procps opusTools lame flac ]}"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://caudec.net/";
+ description = "A multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
+ license = licenses.gpl3;
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cava/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cava/default.nix
new file mode 100644
index 000000000000..a92a5325f16d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cava/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, alsaLib, fftw,
+ libpulseaudio, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "cava";
+ version = "0.7.3";
+
+ buildInputs = [
+ alsaLib
+ fftw
+ libpulseaudio
+ ncurses
+ ];
+
+ src = fetchFromGitHub {
+ owner = "karlstav";
+ repo = "cava";
+ rev = version;
+ sha256 = "04j5hb29hivcbk542sfsx9m57dbnj2s6qpvy9fs488zvgjbgxrai";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ postConfigure = ''
+ substituteInPlace Makefile.am \
+ --replace "-L/usr/local/lib -Wl,-rpath /usr/local/lib" ""
+ substituteInPlace configure.ac \
+ --replace "/usr/share/consolefonts" "$out/share/consolefonts"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Console-based Audio Visualizer for Alsa";
+ homepage = "https://github.com/karlstav/cava";
+ license = licenses.mit;
+ maintainers = with maintainers; [ offline mirrexagon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cd-discid/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cd-discid/default.nix
new file mode 100644
index 000000000000..2ceb5f6d09a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cd-discid/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv
+, IOKit ? null }:
+
+stdenv.mkDerivation rec {
+ pname = "cd-discid";
+ version = "1.4";
+
+ src = fetchurl {
+ url = "http://linukz.org/download/${pname}-${version}.tar.gz";
+ sha256 = "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz";
+ };
+
+ installFlags = [ "PREFIX=$(out)" "INSTALL=install" ];
+
+ buildInputs = []
+ ++ stdenv.lib.optional stdenv.isDarwin IOKit;
+
+ meta = with stdenv.lib; {
+ homepage = "http://linukz.org/cd-discid.shtml";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.rycee ];
+ platforms = platforms.unix;
+ description = "Command-line utility to get CDDB discid information from a CD-ROM disc";
+
+ longDescription = ''
+ cd-discid is a backend utility to get CDDB discid information
+ from a CD-ROM disc. It was originally designed for cdgrab (now
+ abcde), but can be used for any purpose requiring CDDB data.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix
new file mode 100644
index 000000000000..0658305723c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, autoreconfHook, gnu-config, IOKit, Carbon }:
+
+stdenv.mkDerivation rec {
+ name = "cdparanoia-III-10.2";
+
+ src = fetchurl {
+ url = "http://downloads.xiph.org/releases/cdparanoia/${name}.src.tgz";
+ sha256 = "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80";
+ };
+
+ patches = stdenv.lib.optionals stdenv.isDarwin [
+ (fetchurl {
+ url = "https://trac.macports.org/export/70964/trunk/dports/audio/cdparanoia/files/osx_interface.patch";
+ sha256 = "1n86kzm2ssl8fdf5wlhp6ncb2bf6b9xlb5vg0mhc85r69prqzjiy";
+ })
+ (fetchurl {
+ url = "https://trac.macports.org/export/70964/trunk/dports/audio/cdparanoia/files/patch-paranoia_paranoia.c.10.4.diff";
+ sha256 = "17l2qhn8sh4jy6ryy5si6ll6dndcm0r537rlmk4a6a8vkn852vad";
+ })
+ ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./utils.patch
+ ++ [./fix_private_keyword.patch];
+
+ nativeBuildInputs = stdenv.lib.optional stdenv.isAarch64 autoreconfHook;
+
+ propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [
+ Carbon
+ IOKit
+ ];
+
+ hardeningDisable = [ "format" ];
+
+ preConfigure = "unset CC" + stdenv.lib.optionalString stdenv.isAarch64 '';
+ cp ${gnu-config}/config.sub configure.sub
+ cp ${gnu-config}/config.guess configure.guess
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://xiph.org/paranoia";
+ description = "A tool and library for reading digital audio from CDs";
+ license = with licenses; [ gpl2Plus lgpl21Plus ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch
new file mode 100644
index 000000000000..3e9cbe2bd8c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch
@@ -0,0 +1,468 @@
+--- cdparanoia-III-10.2/interface/cdda_interface.h (revision 15337)
++++ cdparanoia-III-10.2/interface/cdda_interface.h (revision 15338)
+@@ -85,5 +85,5 @@
+ int is_mmc;
+
+- cdda_private_data_t *private;
++ cdda_private_data_t *private_data;
+ void *reserved;
+ unsigned char inqbytes[4];
+--- cdparanoia-III-10.2/interface/cooked_interface.c (revision 15337)
++++ cdparanoia-III-10.2/interface/cooked_interface.c (revision 15338)
+@@ -14,11 +14,11 @@
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->private_data->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->private_data->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->private_data->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+--- cdparanoia-III-10.2/interface/interface.c (revision 15337)
++++ cdparanoia-III-10.2/interface/interface.c (revision 15338)
+@@ -40,7 +40,7 @@
+ if(d->cdda_fd!=-1)close(d->cdda_fd);
+ if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd);
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->private_data){
++ if(d->private_data->sg_hd)free(d->private_data->sg_hd);
++ free(d->private_data);
+ }
+
+@@ -128,5 +128,5 @@
+ }
+ }
+- if(ms)*ms=d->private->last_milliseconds;
++ if(ms)*ms=d->private_data->last_milliseconds;
+ return(sectors);
+ }
+--- cdparanoia-III-10.2/interface/scan_devices.c (revision 15337)
++++ cdparanoia-III-10.2/interface/scan_devices.c (revision 15338)
+@@ -265,9 +265,9 @@
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->private_data=calloc(1,sizeof(*d->private_data));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
+@@ -675,13 +675,13 @@
+ d->nsectors=-1;
+ d->messagedest = messagedest;
+- d->private=calloc(1,sizeof(*d->private));
++ d->private_data=calloc(1,sizeof(*d->private_data));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ if(use_sgio){
+ d->interface=SGIO_SCSI;
+- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
++ d->private_data->sg_buffer=(unsigned char *)(d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
+ g_fd=d->cdda_fd=dup(d->ioctl_fd);
+ }else{
+@@ -697,6 +697,6 @@
+
+ /* malloc our big buffer for scsi commands */
+- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
+ }
+
+@@ -773,7 +773,7 @@
+ if(g_fd!=-1)close(g_fd);
+ if(d){
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->private_data){
++ if(d->private_data->sg_hd)free(d->private_data->sg_hd);
++ free(d->private_data);
+ }
+ free(d);
+@@ -822,5 +822,5 @@
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->private_data=calloc(1,sizeof(*d->private_data));
+ d->drive_model=copystring("File based test interface");
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model);
+--- cdparanoia-III-10.2/interface/scsi_interface.c (revision 15337)
++++ cdparanoia-III-10.2/interface/scsi_interface.c (revision 15338)
+@@ -16,11 +16,11 @@
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->private_data->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->private_data->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->private_data->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+@@ -97,5 +97,5 @@
+ fd_set fdset;
+ struct timeval tv;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->private_data->sg_hd;
+ int flag=0;
+
+@@ -186,5 +186,5 @@
+ int tret1,tret2;
+ int status = 0;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->private_data->sg_hd;
+ long writebytes=SG_OFF+cmd_len+in_size;
+
+@@ -196,5 +196,5 @@
+ memset(sg_hd,0,sizeof(sg_hd));
+ memset(sense_buffer,0,SG_MAX_SENSE);
+- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size);
++ memcpy(d->private_data->sg_buffer,cmd,cmd_len+in_size);
+ sg_hd->twelve_byte = cmd_len == 12;
+ sg_hd->result = 0;
+@@ -210,5 +210,5 @@
+
+ if(bytecheck && out_size>in_size){
+- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
++ memset(d->private_data->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
+ /* the size does not remove cmd_len due to the way the kernel
+ driver copies buffers */
+@@ -244,5 +244,5 @@
+
+ sigprocmask (SIG_BLOCK, &(d->sigset), NULL );
+- tret1=clock_gettime(d->private->clock,&tv1);
++ tret1=clock_gettime(d->private_data->clock,&tv1);
+ errno=0;
+ status = write(d->cdda_fd, sg_hd, writebytes );
+@@ -290,5 +290,5 @@
+ }
+
+- tret2=clock_gettime(d->private->clock,&tv2);
++ tret2=clock_gettime(d->private_data->clock,&tv2);
+ errno=0;
+ status = read(d->cdda_fd, sg_hd, SG_OFF + out_size);
+@@ -314,5 +314,5 @@
+ long i,flag=0;
+ for(i=in_size;i<out_size;i++)
+- if(d->private->sg_buffer[i]!=bytefill){
++ if(d->private_data->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+@@ -327,7 +327,7 @@
+ errno=0;
+ if(tret1<0 || tret2<0){
+- d->private->last_milliseconds=-1;
++ d->private_data->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
+ }
+ return(0);
+@@ -348,5 +348,5 @@
+ memset(&hdr,0,sizeof(hdr));
+ memset(sense,0,sizeof(sense));
+- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size);
++ memcpy(d->private_data->sg_buffer,cmd+cmd_len,in_size);
+
+ hdr.cmdp = cmd;
+@@ -356,5 +356,5 @@
+ hdr.timeout = 50000;
+ hdr.interface_id = 'S';
+- hdr.dxferp = d->private->sg_buffer;
++ hdr.dxferp = d->private_data->sg_buffer;
+ hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */
+
+@@ -401,5 +401,5 @@
+ long i,flag=0;
+ for(i=in_size;i<out_size;i++)
+- if(d->private->sg_buffer[i]!=bytefill){
++ if(d->private_data->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+@@ -413,5 +413,5 @@
+
+ /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */
+- /* d->private->last_milliseconds = hdr.duration; */
++ /* d->private_data->last_milliseconds = hdr.duration; */
+
+ errno = 0;
+@@ -446,7 +446,7 @@
+ handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense);
+
+- key = d->private->sg_buffer[2] & 0xf;
+- ASC = d->private->sg_buffer[12];
+- ASCQ = d->private->sg_buffer[13];
++ key = d->private_data->sg_buffer[2] & 0xf;
++ ASC = d->private_data->sg_buffer[12];
++ ASCQ = d->private_data->sg_buffer[13];
+
+ if(key == 2 && ASC == 4 && ASCQ == 1) return 0;
+@@ -493,5 +493,5 @@
+
+ {
+- unsigned char *b=d->private->sg_buffer;
++ unsigned char *b=d->private_data->sg_buffer;
+ if(b[0])return(1); /* Handles only up to 256 bytes */
+ if(b[6])return(1); /* Handles only up to 256 bytes */
+@@ -605,6 +605,6 @@
+ if(mode_sense(d,12,0x01))return(-1);
+
+- d->orgdens = d->private->sg_buffer[4];
+- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]);
++ d->orgdens = d->private_data->sg_buffer[4];
++ return(d->orgsize = ((int)(d->private_data->sg_buffer[10])<<8)+d->private_data->sg_buffer[11]);
+ }
+
+@@ -665,6 +665,6 @@
+ }
+
+- first=d->private->sg_buffer[2];
+- last=d->private->sg_buffer[3];
++ first=d->private_data->sg_buffer[2];
++ last=d->private_data->sg_buffer[3];
+ tracks=last-first+1;
+
+@@ -684,5 +684,5 @@
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+@@ -705,5 +705,5 @@
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+@@ -739,5 +739,5 @@
+
+ /* copy to our structure and convert start sector */
+- tracks = d->private->sg_buffer[1];
++ tracks = d->private_data->sg_buffer[1];
+ if (tracks > MAXTRK) {
+ cderror(d,"003: CDROM reporting illegal number of tracks\n");
+@@ -755,31 +755,31 @@
+ }
+
+- d->disc_toc[i].bFlags = d->private->sg_buffer[10];
++ d->disc_toc[i].bFlags = d->private_data->sg_buffer[10];
+ d->disc_toc[i].bTrack = i + 1;
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- (((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]));
++ (((signed char)(d->private_data->sg_buffer[2])<<24) |
++ (d->private_data->sg_buffer[3]<<16)|
++ (d->private_data->sg_buffer[4]<<8)|
++ (d->private_data->sg_buffer[5]));
+ }
+
+ d->disc_toc[i].bFlags = 0;
+ d->disc_toc[i].bTrack = i + 1;
+- memcpy (&foo, d->private->sg_buffer+2, 4);
+- memcpy (&bar, d->private->sg_buffer+6, 4);
++ memcpy (&foo, d->private_data->sg_buffer+2, 4);
++ memcpy (&bar, d->private_data->sg_buffer+6, 4);
+ d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) +
+ be32_to_cpu(bar));
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- ((((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]))+
++ ((((signed char)(d->private_data->sg_buffer[2])<<24) |
++ (d->private_data->sg_buffer[3]<<16)|
++ (d->private_data->sg_buffer[4]<<8)|
++ (d->private_data->sg_buffer[5]))+
+
+- ((((signed char)(d->private->sg_buffer[6])<<24) |
+- (d->private->sg_buffer[7]<<16)|
+- (d->private->sg_buffer[8]<<8)|
+- (d->private->sg_buffer[9]))));
++ ((((signed char)(d->private_data->sg_buffer[6])<<24) |
++ (d->private_data->sg_buffer[7]<<16)|
++ (d->private_data->sg_buffer[8]<<8)|
++ (d->private_data->sg_buffer[9]))));
+
+
+@@ -818,5 +818,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -837,5 +837,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -855,5 +855,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -873,5 +873,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -891,5 +891,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -909,5 +909,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -923,5 +923,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -937,5 +937,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -951,5 +951,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -965,5 +965,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -979,5 +979,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -993,5 +993,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -1027,5 +1027,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -1040,5 +1040,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -1053,5 +1053,5 @@
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+@@ -1276,5 +1276,5 @@
+ long i;
+ for(i=2351;i>=0;i--)
+- if(d->private->sg_buffer[i]!=(unsigned char)'\177')
++ if(d->private_data->sg_buffer[i]!=(unsigned char)'\177')
+ return(((i+3)>>2)<<2);
+
+@@ -1285,5 +1285,5 @@
+ long i,flag=0;
+ for(i=0;i<2352;i++)
+- if(d->private->sg_buffer[i]!=0){
++ if(d->private_data->sg_buffer[i]!=0){
+ flag=1;
+ break;
+@@ -1622,5 +1622,5 @@
+ if(mode_sense(d,22,0x2A)==0){
+
+- b=d->private->sg_buffer;
++ b=d->private_data->sg_buffer;
+ b+=b[3]+4;
+
+@@ -1670,5 +1670,5 @@
+ return(NULL);
+ }
+- return (d->private->sg_buffer);
++ return (d->private_data->sg_buffer);
+ }
+
+@@ -1726,6 +1726,6 @@
+
+ d->error_retry=1;
+- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->private_data->sg_hd=realloc(d->private_data->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
+ d->report_all=1;
+ return(0);
+--- cdparanoia-III-10.2/interface/test_interface.c (revision 15337)
++++ cdparanoia-III-10.2/interface/test_interface.c (revision 15338)
+@@ -67,7 +67,7 @@
+
+ if(begin<lastread)
+- d->private->last_milliseconds=20;
++ d->private_data->last_milliseconds=20;
+ else
+- d->private->last_milliseconds=sectors;
++ d->private_data->last_milliseconds=sectors;
+
+ #ifdef CDDA_TEST_UNDERRUN
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/utils.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/utils.patch
new file mode 100644
index 000000000000..338e5303dcd0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cdparanoia/utils.patch
@@ -0,0 +1,68 @@
+diff --git cdparanoia-III-10.2/interface/utils.h cdparanoia-III-10.2/interface/utils.h
+index c9647da..68c1a3a 100644
+--- cdparanoia-III-10.2/interface/utils.h
++++ cdparanoia-III-10.2/interface/utils.h
+@@ -1,4 +1,6 @@
+-#include <endian.h>
++#include <unistd.h>
++#include <stdint.h>
++#include <stdlib.h>
+ #include <stdio.h>
+ #include <errno.h>
+ #include <string.h>
+@@ -14,15 +16,15 @@ static inline int bigendianp(void){
+ }
+
+ static inline int32_t swap32(int32_t x){
+- return((((u_int32_t)x & 0x000000ffU) << 24) |
+- (((u_int32_t)x & 0x0000ff00U) << 8) |
+- (((u_int32_t)x & 0x00ff0000U) >> 8) |
+- (((u_int32_t)x & 0xff000000U) >> 24));
++ return((((uint32_t)x & 0x000000ffU) << 24) |
++ (((uint32_t)x & 0x0000ff00U) << 8) |
++ (((uint32_t)x & 0x00ff0000U) >> 8) |
++ (((uint32_t)x & 0xff000000U) >> 24));
+ }
+
+ static inline int16_t swap16(int16_t x){
+- return((((u_int16_t)x & 0x00ffU) << 8) |
+- (((u_int16_t)x & 0xff00U) >> 8));
++ return((((uint16_t)x & 0x00ffU) << 8) |
++ (((uint16_t)x & 0xff00U) >> 8));
+ }
+
+ #if BYTE_ORDER == LITTLE_ENDIAN
+diff --git cdparanoia-III-10.2/utils.h cdparanoia-III-10.2/utils.h
+index 10dce58..6211ce3 100644
+--- cdparanoia-III-10.2/utils.h
++++ cdparanoia-III-10.2/utils.h
+@@ -1,5 +1,6 @@
++#include <unistd.h>
++#include <stdint.h>
+ #include <stdlib.h>
+-#include <endian.h>
+ #include <stdio.h>
+ #include <errno.h>
+ #include <string.h>
+@@ -18,15 +19,15 @@ static inline int bigendianp(void){
+ }
+
+ static inline int32_t swap32(int32_t x){
+- return((((u_int32_t)x & 0x000000ffU) << 24) |
+- (((u_int32_t)x & 0x0000ff00U) << 8) |
+- (((u_int32_t)x & 0x00ff0000U) >> 8) |
+- (((u_int32_t)x & 0xff000000U) >> 24));
++ return((((uint32_t)x & 0x000000ffU) << 24) |
++ (((uint32_t)x & 0x0000ff00U) << 8) |
++ (((uint32_t)x & 0x00ff0000U) >> 8) |
++ (((uint32_t)x & 0xff000000U) >> 24));
+ }
+
+ static inline int16_t swap16(int16_t x){
+- return((((u_int16_t)x & 0x00ffU) << 8) |
+- (((u_int16_t)x & 0xff00U) >> 8));
++ return((((uint16_t)x & 0x00ffU) << 8) |
++ (((uint16_t)x & 0xff00U) >> 8));
+ }
+
+ #if BYTE_ORDER == LITTLE_ENDIAN
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/0001-Drop-baked-in-build-date-for-r13y.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/0001-Drop-baked-in-build-date-for-r13y.patch
new file mode 100644
index 000000000000..9bc0e7b933ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/0001-Drop-baked-in-build-date-for-r13y.patch
@@ -0,0 +1,39 @@
+From eb21fd64a19a0e10c4c3826fc71610fd5850fa2f Mon Sep 17 00:00:00 2001
+From: Christoph Neidahl <christoph.neidahl@gmail.com>
+Date: Sun, 13 Sep 2020 23:18:51 +0200
+Subject: [PATCH 1/2] Drop baked-in build date for r13y
+
+---
+ src/ct2util.d | 2 +-
+ src/ui/ui.d | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/ct2util.d b/src/ct2util.d
+index 523cadc..e462b09 100644
+--- a/src/ct2util.d
++++ b/src/ct2util.d
+@@ -105,7 +105,7 @@ int main(string[] args) {
+ speeds.length = 32;
+ masks.length = 32;
+ void printheader() {
+- enum hdr = "CheeseCutter 2 utilities" ~ com.util.versionInfo;
++ enum hdr = "CheeseCutter 2 utilities";
+ writefln(hdr);
+ writefln("\nUsage: \t%s <command> <options> <infile> <-o outfile>",args[0]);
+ writefln("\t%s import <infile> <infile2> <-o outfile>",args[0]);
+diff --git a/src/ui/ui.d b/src/ui/ui.d
+index e418dda..21af408 100644
+--- a/src/ui/ui.d
++++ b/src/ui/ui.d
+@@ -231,7 +231,7 @@ class Infobar : Window {
+
+ screen.clrtoeol(0, headerColor);
+
+- enum hdr = "CheeseCutter 2.9" ~ com.util.versionInfo;
++ enum hdr = "CheeseCutter 2.9";
+ screen.cprint(4, 0, 1, headerColor, hdr);
+ screen.cprint(screen.width - 14, 0, 1, headerColor, "F12 = Help");
+ int c1 = audio.player.isPlaying ? 13 : 12;
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/0002-Prepend-libSDL.dylib-to-macOS-SDL-loader.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/0002-Prepend-libSDL.dylib-to-macOS-SDL-loader.patch
new file mode 100644
index 000000000000..6e33307f9f5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/0002-Prepend-libSDL.dylib-to-macOS-SDL-loader.patch
@@ -0,0 +1,25 @@
+From abc5e8786d41803300b56ef40c08db0d867eb01a Mon Sep 17 00:00:00 2001
+From: Christoph Neidahl <christoph.neidahl@gmail.com>
+Date: Sun, 13 Sep 2020 23:22:33 +0200
+Subject: [PATCH 2/2] Prepend libSDL.dylib to macOS SDL loader
+
+---
+ src/derelict/sdl/sdl.d | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/derelict/sdl/sdl.d b/src/derelict/sdl/sdl.d
+index e31a52f..f7915b1 100644
+--- a/src/derelict/sdl/sdl.d
++++ b/src/derelict/sdl/sdl.d
+@@ -54,7 +54,7 @@ public:
+ super(
+ "sdl.dll",
+ "libSDL.so, libSDL.so.0, libSDL-1.2.so, libSDL-1.2.so.0",
+- "@executable_path/../Frameworks/SDL.framework/SDL, /Library/Frameworks/SDL.framework/SDL, /System/Library/Frameworks/SDL.framework/SDL"
++ "@rpath/libSDL.dylib, @executable_path/../Frameworks/SDL.framework/SDL, /Library/Frameworks/SDL.framework/SDL, /System/Library/Frameworks/SDL.framework/SDL"
+ );
+ }
+
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/default.nix
new file mode 100644
index 000000000000..84f6b183033e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cheesecutter/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, acme
+, ldc
+, patchelf
+, SDL
+}:
+stdenv.mkDerivation rec {
+ pname = "cheesecutter";
+ version = "unstable-2020-04-03";
+
+ src = fetchFromGitHub {
+ owner = "theyamo";
+ repo = "CheeseCutter";
+ rev = "68d6518f0e6249a2a5d122fc80201578337c1277";
+ sha256 = "0xspzjhc6cp3m0yd0mwxncg8n1wklizamxvidrnn21jgj3mnaq2q";
+ };
+
+ patches = [
+ ./0001-Drop-baked-in-build-date-for-r13y.patch
+ ]
+ ++ lib.optional stdenv.hostPlatform.isDarwin ./0002-Prepend-libSDL.dylib-to-macOS-SDL-loader.patch;
+
+ nativeBuildInputs = [ acme ldc ]
+ ++ lib.optional (!stdenv.hostPlatform.isDarwin) patchelf;
+
+ buildInputs = [ SDL ];
+
+ makefile = "Makefile.ldc";
+
+ installPhase = ''
+ for exe in {ccutter,ct2util}; do
+ install -D $exe $out/bin/$exe
+ done
+
+ mkdir -p $out/share/cheesecutter/example_tunes
+ cp -r tunes/* $out/share/cheesecutter/example_tunes
+ '';
+
+ postFixup =
+ let
+ rpathSDL = lib.makeLibraryPath [ SDL ];
+ in
+ if stdenv.hostPlatform.isDarwin then ''
+ install_name_tool -add_rpath ${rpathSDL} $out/bin/ccutter
+ '' else ''
+ rpath=$(patchelf --print-rpath $out/bin/ccutter)
+ patchelf --set-rpath "$rpath:${rpathSDL}" $out/bin/ccutter
+ '';
+
+ meta = with lib; {
+ description = "A tracker program for composing music for the SID chip";
+ homepage = "https://github.com/theyamo/CheeseCutter/";
+ license = licenses.gpl2Plus;
+ platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+ maintainers = with maintainers; [ OPNA2608 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/chuck/darwin-limits.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/chuck/darwin-limits.patch
new file mode 100644
index 000000000000..dc98a1726913
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/chuck/darwin-limits.patch
@@ -0,0 +1,13 @@
+--- a/src/core/util_string.cpp 2014-10-27 22:52:11.875981552 +0100
++++ b/src/core/util_string.cpp 2014-10-27 22:54:18.613001994 +0100
+@@ -40,6 +40,10 @@
+ #include <linux/limits.h>
+ #endif // __PLATFORM_LINUX__
+
++#ifdef __PLATFORM_MACOSX__
++#include <limits.h>
++#endif // __PLATFORM_MACOSX__
++
+ #include <stdio.h>
+ using namespace std;
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/chuck/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/chuck/default.nix
new file mode 100644
index 000000000000..f30b5dba5b6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/chuck/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, fetchurl, alsaLib, bison, flex, libsndfile, which
+, AppKit, Carbon, CoreAudio, CoreMIDI, CoreServices, Kernel
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.4.0.1";
+ pname = "chuck";
+
+ src = fetchurl {
+ url = "http://chuck.cs.princeton.edu/release/files/chuck-${version}.tgz";
+ sha256 = "1m0fhndbqaf0lii1asyc50c66bv55ib6mbnm8fzk5qc5ncs0r8hi";
+ };
+
+ nativeBuildInputs = [ flex bison which ];
+
+ buildInputs = [ libsndfile ]
+ ++ lib.optional (!stdenv.isDarwin) alsaLib
+ ++ lib.optional stdenv.isDarwin [ AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel ];
+
+ patches = [ ./darwin-limits.patch ];
+
+ NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-missing-sysroot";
+ NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework MultitouchSupport";
+
+ postPatch = ''
+ substituteInPlace src/core/makefile.x/makefile.osx \
+ --replace "weak_framework" "framework" \
+ --replace "MACOSX_DEPLOYMENT_TARGET=10.9" "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET"
+ '';
+
+ makeFlags = [ "-C src" "DESTDIR=$(out)/bin" ];
+ buildFlags = [ (if stdenv.isDarwin then "osx" else "linux-alsa") ];
+
+ meta = with lib; {
+ description = "Programming language for real-time sound synthesis and music creation";
+ homepage = "http://chuck.cs.princeton.edu";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ftrvxmtrx ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob.patch
new file mode 100644
index 000000000000..344fc31d70dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob.patch
@@ -0,0 +1,13 @@
+diff --git a/src/internet/spotify/spotifyservice.cpp b/src/internet/spotify/spotifyservice.cpp
+index 88c7383..6e0893c 100644
+--- a/src/internet/spotify/spotifyservice.cpp
++++ b/src/internet/spotify/spotifyservice.cpp
+@@ -94,7 +94,7 @@ SpotifyService::SpotifyService(Application* app, InternetModel* parent)
+ system_blob_path_ = QCoreApplication::applicationDirPath() +
+ "/../PlugIns/clementine-spotifyblob";
+ #else
+- system_blob_path_ = QCoreApplication::applicationDirPath() +
++ system_blob_path_ = qgetenv("CLEMENTINE_SPOTIFYBLOB") +
+ "/clementine-spotifyblob" CMAKE_EXECUTABLE_SUFFIX;
+ #endif
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/clementine/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/clementine/default.nix
new file mode 100644
index 000000000000..0c1690f1462a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/clementine/default.nix
@@ -0,0 +1,135 @@
+{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm
+, qtbase, qtx11extras
+, taglib, fftw, glew, qjson, sqlite, libgpod, libplist, usbmuxd, libmtp
+, libpulseaudio, gvfs, libcdio, libechonest, libspotify, pcre, projectm, protobuf
+, qca2, pkgconfig, sparsehash, config, makeWrapper, gst_plugins }:
+
+let
+ withIpod = config.clementine.ipod or false;
+ withMTP = config.clementine.mtp or true;
+ withCD = config.clementine.cd or true;
+ withCloud = config.clementine.cloud or true;
+
+ version = "1.4.0rc1";
+
+ src = fetchFromGitHub {
+ owner = "clementine-player";
+ repo = "Clementine";
+ rev = version;
+ sha256 = "1rqk0hrsn8f8bjk0j0vq1af0ygy6xx7qi9fw0jjw2cmj6kzckyi2";
+ };
+
+ patches = [
+ ./clementine-spotify-blob.patch
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ boost
+ chromaprint
+ fftw
+ gettext
+ glew
+ gst_all_1.gst-plugins-base
+ gst_all_1.gstreamer
+ gvfs
+ libechonest
+ liblastfm
+ libpulseaudio
+ pcre
+ projectm
+ protobuf
+ qca2
+ qjson
+ qtbase
+ qtx11extras
+ sqlite
+ taglib
+ ]
+ ++ stdenv.lib.optionals (withIpod) [libgpod libplist usbmuxd]
+ ++ stdenv.lib.optionals (withMTP) [libmtp]
+ ++ stdenv.lib.optionals (withCD) [libcdio]
+ ++ stdenv.lib.optionals (withCloud) [sparsehash];
+
+ postPatch = ''
+ sed -i src/CMakeLists.txt \
+ -e 's,-Werror,,g' \
+ -e 's,-Wno-unknown-warning-option,,g' \
+ -e 's,-Wno-unused-private-field,,g'
+ sed -i CMakeLists.txt \
+ -e 's,libprotobuf.a,protobuf,g'
+ '';
+
+ free = mkDerivation {
+ pname = "clementine-free";
+ inherit version;
+ inherit src patches nativeBuildInputs postPatch;
+
+ # gst_plugins needed for setup-hooks
+ buildInputs = buildInputs ++ [ makeWrapper ] ++ gst_plugins;
+
+ preConfigure = ''
+ rm -rf ext/{,lib}clementine-spotifyblob
+ '';
+
+ cmakeFlags = [
+ "-DUSE_SYSTEM_PROJECTM=ON"
+ "-DSPOTIFY_BLOB=OFF"
+ ];
+
+ enableParallelBuilding = true;
+
+ passthru.unfree = unfree;
+
+ postInstall = ''
+ wrapProgram $out/bin/clementine \
+ --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.clementine-player.org";
+ description = "A multiplatform music player";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.ttuegel ];
+ };
+ };
+
+ # Unfree Spotify blob for Clementine
+ unfree = mkDerivation {
+ pname = "clementine-blob";
+ inherit version;
+ # Use the same patches and sources as Clementine
+ inherit src nativeBuildInputs patches postPatch;
+
+ buildInputs = buildInputs ++ [ libspotify makeWrapper ];
+ # Only build and install the Spotify blob
+ preBuild = ''
+ cd ext/clementine-spotifyblob
+ '';
+ postInstall = ''
+ mkdir -p $out/libexec/clementine
+ mv $out/bin/clementine-spotifyblob $out/libexec/clementine
+ rmdir $out/bin
+
+ makeWrapper ${free}/bin/clementine $out/bin/clementine \
+ --set CLEMENTINE_SPOTIFYBLOB $out/libexec/clementine
+
+ mkdir -p $out/share
+ for dir in applications icons kde4; do
+ ln -s "${free}/share/$dir" "$out/share/$dir"
+ done
+ '';
+ enableParallelBuilding = true;
+ meta = with stdenv.lib; {
+ homepage = "https://www.clementine-player.org";
+ description = "Spotify integration for Clementine";
+ # The blob itself is Apache-licensed, although libspotify is unfree.
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.ttuegel ];
+ };
+ };
+
+in free
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/clerk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/clerk/default.nix
new file mode 100644
index 000000000000..912662b7726c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/clerk/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, makeWrapper, rofi, mpc_cli, perl,
+util-linux, pythonPackages, libnotify }:
+
+stdenv.mkDerivation {
+ name = "clerk-2016-10-14";
+
+ src = fetchFromGitHub {
+ owner = "carnager";
+ repo = "clerk";
+ rev = "875963bcae095ac1db174627183c76ebe165f787";
+ sha256 = "0y045my65hr3hjyx13jrnyg6g3wb41phqb1m7azc4l6vx6r4124b";
+ };
+
+ buildInputs = [ makeWrapper pythonPackages.mpd2 ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ DESTDIR=$out PREFIX=/ make install
+ wrapProgram $out/bin/clerk \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ rofi mpc_cli perl util-linux libnotify ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An MPD client built on top of rofi";
+ homepage = "https://github.com/carnager/clerk";
+ license = licenses.mit;
+ maintainers = with maintainers; [ anderspapitto ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cmt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cmt/default.nix
new file mode 100644
index 000000000000..96cc3c573198
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cmt/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchurl
+, ladspaH
+}:
+
+stdenv.mkDerivation rec {
+ name = "cmt";
+ version = "1.17";
+
+ src = fetchurl {
+ url = "http://www.ladspa.org/download/${name}_${version}.tgz";
+ sha256 = "07xd0xmwpa0j12813jpf87fr9hwzihii5l35mp8ady7xxfmxfmpb";
+ };
+
+ buildInputs = [ ladspaH ];
+
+ preBuild = ''
+ cd src
+ '';
+
+ installFlags = [ "INSTALL_PLUGINS_DIR=${placeholder "out"}/lib/ladspa" ];
+ preInstall = ''
+ mkdir -p $out/lib/ladspa
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Computer Music Toolkit";
+ homepage = "https://www.ladspa.org/cmt";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ sjfloat ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cmus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cmus/default.nix
new file mode 100644
index 000000000000..3e5916ba0983
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cmus/default.nix
@@ -0,0 +1,136 @@
+{ config, stdenv, fetchFromGitHub, runCommand, ncurses, pkgconfig
+, libiconv, CoreAudio
+
+, alsaSupport ? stdenv.isLinux, alsaLib ? null
+# simple fallback for everyone else
+, aoSupport ? !stdenv.isLinux, libao ? null
+, jackSupport ? false, libjack ? null
+, samplerateSupport ? jackSupport, libsamplerate ? null
+, ossSupport ? false, alsaOss ? null
+, pulseaudioSupport ? config.pulseaudio or false, libpulseaudio ? null
+, mprisSupport ? stdenv.isLinux, systemd ? null
+
+# TODO: add these
+#, artsSupport
+#, roarSupport
+#, sndioSupport
+#, sunSupport
+#, waveoutSupport
+
+, cddbSupport ? true, libcddb ? null
+, cdioSupport ? true, libcdio ? null, libcdio-paranoia ? null
+, cueSupport ? true, libcue ? null
+, discidSupport ? (!stdenv.isDarwin), libdiscid ? null
+, ffmpegSupport ? true, ffmpeg ? null
+, flacSupport ? true, flac ? null
+, madSupport ? true, libmad ? null
+, mikmodSupport ? true, libmikmod ? null
+, modplugSupport ? true, libmodplug ? null
+, mpcSupport ? true, libmpcdec ? null
+, tremorSupport ? false, tremor ? null
+, vorbisSupport ? true, libvorbis ? null
+, wavpackSupport ? true, wavpack ? null
+, opusSupport ? true, opusfile ? null
+
+, aacSupport ? false, faad2 ? null # already handled by ffmpeg
+, mp4Support ? false, mp4v2 ? null # ffmpeg does support mp4 better
+
+# not in nixpkgs
+#, vtxSupport ? true, libayemu ? null
+}:
+
+with stdenv.lib;
+
+assert samplerateSupport -> jackSupport;
+
+# vorbis and tremor are mutually exclusive
+assert vorbisSupport -> !tremorSupport;
+assert tremorSupport -> !vorbisSupport;
+
+let
+
+ mkFlag = b: f: dep: if b
+ then { flags = [ f ]; deps = [ dep ]; }
+ else { flags = []; deps = []; };
+
+ opts = [
+ # Audio output
+ (mkFlag alsaSupport "CONFIG_ALSA=y" alsaLib)
+ (mkFlag aoSupport "CONFIG_AO=y" libao)
+ (mkFlag jackSupport "CONFIG_JACK=y" libjack)
+ (mkFlag samplerateSupport "CONFIG_SAMPLERATE=y" libsamplerate)
+ (mkFlag ossSupport "CONFIG_OSS=y" alsaOss)
+ (mkFlag pulseaudioSupport "CONFIG_PULSE=y" libpulseaudio)
+ (mkFlag mprisSupport "CONFIG_MPRIS=y" systemd)
+
+ #(mkFlag artsSupport "CONFIG_ARTS=y")
+ #(mkFlag roarSupport "CONFIG_ROAR=y")
+ #(mkFlag sndioSupport "CONFIG_SNDIO=y")
+ #(mkFlag sunSupport "CONFIG_SUN=y")
+ #(mkFlag waveoutSupport "CONFIG_WAVEOUT=y")
+
+ # Input file formats
+ (mkFlag cddbSupport "CONFIG_CDDB=y" libcddb)
+ (mkFlag cdioSupport "CONFIG_CDIO=y" [ libcdio libcdio-paranoia ])
+ (mkFlag cueSupport "CONFIG_CUE=y" libcue)
+ (mkFlag discidSupport "CONFIG_DISCID=y" libdiscid)
+ (mkFlag ffmpegSupport "CONFIG_FFMPEG=y" ffmpeg)
+ (mkFlag flacSupport "CONFIG_FLAC=y" flac)
+ (mkFlag madSupport "CONFIG_MAD=y" libmad)
+ (mkFlag mikmodSupport "CONFIG_MIKMOD=y" libmikmod)
+ (mkFlag modplugSupport "CONFIG_MODPLUG=y" libmodplug)
+ (mkFlag mpcSupport "CONFIG_MPC=y" libmpcdec)
+ (mkFlag tremorSupport "CONFIG_TREMOR=y" tremor)
+ (mkFlag vorbisSupport "CONFIG_VORBIS=y" libvorbis)
+ (mkFlag wavpackSupport "CONFIG_WAVPACK=y" wavpack)
+ (mkFlag opusSupport "CONFIG_OPUS=y" opusfile)
+
+ (mkFlag mp4Support "CONFIG_MP4=y" mp4v2)
+ (mkFlag aacSupport "CONFIG_AAC=y" faad2)
+
+ #(mkFlag vtxSupport "CONFIG_VTX=y" libayemu)
+ ];
+
+ clangGCC = runCommand "clang-gcc" {} ''
+ #! ${stdenv.shell}
+ mkdir -p $out/bin
+ ln -s ${stdenv.cc}/bin/clang $out/bin/gcc
+ ln -s ${stdenv.cc}/bin/clang++ $out/bin/g++
+ '';
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "cmus";
+ version = "2.8.0";
+
+ src = fetchFromGitHub {
+ owner = "cmus";
+ repo = "cmus";
+ rev = "v${version}";
+ sha256 = "1ydnvq13ay8b8mfmmgwi5qsgyf220yi1d01acbnxqn775dghmwar";
+ };
+
+ patches = [ ./option-debugging.patch ];
+
+ configurePhase = "./configure " + concatStringsSep " " ([
+ "prefix=$out"
+ "CONFIG_WAV=y"
+ ] ++ concatMap (a: a.flags) opts);
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ ncurses ]
+ ++ stdenv.lib.optional stdenv.cc.isClang clangGCC
+ ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv CoreAudio ]
+ ++ flatten (concatMap (a: a.deps) opts);
+
+ makeFlags = [ "LD=$(CC)" ];
+
+ meta = with stdenv.lib; {
+ description = "Small, fast and powerful console music player for Linux and *BSD";
+ homepage = "https://cmus.github.io/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.oxij ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cmus/option-debugging.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/cmus/option-debugging.patch
new file mode 100644
index 000000000000..84115e1480e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cmus/option-debugging.patch
@@ -0,0 +1,42 @@
+Shows build and link errors in configure for ease of debugging which
+options require what.
+diff --git a/scripts/checks.sh b/scripts/checks.sh
+index 64cbbf3..fab4d9b 100644
+--- a/scripts/checks.sh
++++ b/scripts/checks.sh
+@@ -425,7 +425,7 @@ try_compile()
+ echo "$1" > $__src || exit 1
+ shift
+ __cmd="$CC -c $CFLAGS $@ $__src -o $__obj"
+- $CC -c $CFLAGS "$@" $__src -o $__obj 2>/dev/null
++ $CC -c $CFLAGS "$@" $__src -o $__obj
+ ;;
+ cxx)
+ __src=`tmp_file prog.cc`
+@@ -433,7 +433,7 @@ try_compile()
+ echo "$1" > $__src || exit 1
+ shift
+ __cmd="$CXX -c $CXXFLAGS $@ $__src -o $__obj"
+- $CXX -c $CXXFLAGS "$@" $__src -o $__obj 2>/dev/null
++ $CXX -c $CXXFLAGS "$@" $__src -o $__obj
+ ;;
+ esac
+ return $?
+@@ -451,7 +451,7 @@ try_compile_link()
+ echo "$1" > $__src || exit 1
+ shift
+ __cmd="$CC $__src -o $__exe $CFLAGS $LDFLAGS $@"
+- $CC $__src -o $__exe $CFLAGS $LDFLAGS "$@" 2>/dev/null
++ $CC $__src -o $__exe $CFLAGS $LDFLAGS "$@"
+ ;;
+ cxx)
+ __src=`tmp_file prog.cc`
+@@ -459,7 +459,7 @@ try_compile_link()
+ echo "$1" > $__src || exit 1
+ shift
+ __cmd="$CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS $@"
+- $CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS "$@" 2>/dev/null
++ $CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS "$@"
+ ;;
+ esac
+ return $?
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cmusfm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cmusfm/default.nix
new file mode 100644
index 000000000000..3e8360e1eaf6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cmusfm/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, curl, libnotify, gdk-pixbuf }:
+
+stdenv.mkDerivation {
+ version = "2020-07-23";
+ pname = "cmusfm-unstable";
+ src = fetchFromGitHub {
+ owner = "Arkq";
+ repo = "cmusfm";
+ rev = "73df3e64d8aa3b5053b639615b8f81d512420e52";
+ sha256 = "1p9i65v8hda9bsps4hm9m2b7aw9ivk4ncllg8svyp455gn5v8xx6";
+ };
+ # building
+ configureFlags = [ "--enable-libnotify" ];
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ curl libnotify gdk-pixbuf ];
+
+ meta = with stdenv.lib; {
+ description = "Last.fm and Libre.fm standalone scrobbler for the cmus music player";
+ longDescription = ''
+ Features:
+ + Listening now notification support
+ + Off-line played track cache for later submission
+ + POSIX ERE-based file name parser
+ + Desktop notification support (optionally)
+ + Customizable scrobbling service
+ + Small memory footprint
+ Configuration:
+ + run `cmusfm init` to generate configuration file under ~/.config/cmus/cmusfm.conf
+ + Inside cmus run `:set status_display_program=cmusfm` to set up cmusfm
+ '';
+ homepage = "https://github.com/Arkq/cmusfm/";
+ maintainers = with stdenv.lib.maintainers; [ CharlesHD ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix
new file mode 100644
index 000000000000..1a78b783f53a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchFromGitHub
+, ninja
+, meson
+, pkgconfig
+, wrapGAppsHook
+, appstream-glib
+, desktop-file-utils
+, gtk3
+, gst_all_1
+, gobject-introspection
+, python3Packages
+, file
+, cairo
+, gettext
+, gnome3
+}:
+
+python3Packages.buildPythonApplication rec {
+
+ format = "other"; # no setup.py
+
+ pname = "cozy";
+ version = "0.7.2";
+
+ # Temporary fix
+ # See https://github.com/NixOS/nixpkgs/issues/57029
+ # and https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ src = fetchFromGitHub {
+ owner = "geigi";
+ repo = pname;
+ rev = version;
+ sha256 = "0fmbddi4ga0bppwg3rm3yjmf7jgqc6zfslmavnr1pglbzkjhy9fs";
+ };
+
+ nativeBuildInputs = [
+ meson ninja pkgconfig
+ wrapGAppsHook
+ appstream-glib
+ desktop-file-utils
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ gtk3
+ cairo
+ gettext
+ gnome3.adwaita-icon-theme
+ ] ++ (with gst_all_1; [
+ gstreamer
+ gst-plugins-good
+ gst-plugins-ugly
+ gst-plugins-base
+ ]);
+
+ propagatedBuildInputs = with python3Packages; [
+ apsw
+ cairo
+ dbus-python
+ distro
+ gst-python
+ magic
+ mutagen
+ packaging
+ peewee
+ pygobject3
+ pytz
+ requests
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ postInstall = ''
+ ln -s $out/bin/com.github.geigi.cozy $out/bin/cozy
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A modern audio book player for Linux using GTK 3";
+ homepage = "https://cozy.geigi.de/";
+ maintainers = [ maintainers.makefu ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/crip/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/crip/default.nix
new file mode 100644
index 000000000000..0181ede26dda
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/crip/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchurl
+, makeWrapper
+
+, perlPackages
+
+, cdparanoia
+, coreutils
+, eject
+, flac
+, gnugrep
+, nano
+, sox
+, vorbis-tools
+, vorbisgain
+, which
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ name = "crip-3.9";
+ src = fetchurl {
+ url = "http://bach.dynet.com/crip/src/${name}.tar.gz";
+ sha256 = "0pk9152wll6fmkj1pki3fz3ijlf06jyk32v31yarwvdkwrk7s9xz";
+ };
+
+ buildInputs = [ perlPackages.perl perlPackages.CDDB_get ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ toolDeps = makeBinPath [
+ cdparanoia
+ coreutils
+ eject
+ flac
+ gnugrep
+ sox
+ vorbis-tools
+ vorbisgain
+ which
+ ];
+
+ scripts = [ "crip" "editcomment" "editfilenames" ];
+
+ installPhase = ''
+ mkdir -p $out/bin/
+
+ for script in ${escapeShellArgs scripts}; do
+ cp $script $out/bin/
+
+ substituteInPlace $out/bin/$script \
+ --replace '$editor = "vim";' '$editor = "${nano}/bin/nano";'
+
+ wrapProgram $out/bin/$script \
+ --set PERL5LIB "${perlPackages.makePerlPath [ perlPackages.CDDB_get ]}" \
+ --set PATH "${toolDeps}"
+ done
+ '';
+
+ meta = {
+ homepage = "http://bach.dynet.com/crip/";
+ description = "Terminal-based ripper/encoder/tagger tool for creating Ogg Vorbis/FLAC files";
+ license = stdenv.lib.licenses.gpl1;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ maintainers.endgame ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/csa/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/csa/default.nix
new file mode 100644
index 000000000000..756c21892fb2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/csa/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "csa";
+ version = "0.5.100810";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/csa/${pname}-${version}.tar.gz";
+ sha256 = "1syg81dzdil0dyx1mlx1n7if3qsf2iz243p2zv34a1acfqm509r3";
+ };
+
+ # after running either cellular leveler mono or stereo, the other stops working,
+ # so we remove one of them:
+ postInstall = "rm $out/lib/ladspa/celllm_3890.*";
+
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/projects/csa/";
+ description = "A group of LADSPA Audio plugins for FM broadcast and more";
+ longDescription = ''
+ CSA means : Contrôle Signal Audio.
+ It contains the following plugins:
+ Emphazised Limiter, Cellular Leveler, Simple right/left amplifier. Blind Peak Meter.
+ '';
+ license = licenses.gpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-manual/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-manual/default.nix
new file mode 100644
index 000000000000..5cc8d71383b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-manual/default.nix
@@ -0,0 +1,44 @@
+{
+ stdenv, fetchFromGitHub, docbook_xsl,
+ docbook_xml_dtd_45, python, pygments,
+ libxslt
+}:
+
+stdenv.mkDerivation {
+ pname = "csound-manual";
+ version = "unstable-2019-02-22";
+
+ src = fetchFromGitHub {
+ owner = "csound";
+ repo = "manual";
+ rev = "3b0bdc83f9245261b4b85a57c3ed636d5d924a4f";
+ sha256 = "074byjhaxraapyg54dxgg7hi1d4978aa9c1rmyi50p970nsxnacn";
+ };
+
+ prePatch = ''
+ substituteInPlace manual.xml \
+ --replace "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
+ "${docbook_xml_dtd_45}/xml/dtd/docbook/docbookx.dtd"
+ '';
+
+ nativeBuildInputs = [ libxslt.bin ];
+
+ buildInputs = [ docbook_xsl python pygments ];
+
+ buildPhase = ''
+ make XSL_BASE_PATH=${docbook_xsl}/share/xml/docbook-xsl html-dist
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/doc/csound
+ cp -r ./html $out/share/doc/csound
+ '';
+
+ meta = {
+ description = "The Csound Canonical Reference Manual";
+ homepage = "https://github.com/csound/manual";
+ license = stdenv.lib.licenses.fdl12Plus;
+ maintainers = [ stdenv.lib.maintainers.hlolli ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix
new file mode 100644
index 000000000000..e6060c056ccb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, csound, desktop-file-utils,
+ fetchFromGitHub, python, python-qt, qmake,
+ qtwebengine, qtxmlpatterns, rtmidi, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "csound-qt";
+ version = "0.9.6-beta3";
+
+ src = fetchFromGitHub {
+ owner = "CsoundQt";
+ repo = "CsoundQt";
+ rev = version;
+ sha256 = "007jhkh0k6qk52r77i067999dwdiimazix6ggp2hvyc4pj6n5dip";
+ };
+
+ patches = [
+ (fetchpatch {
+ name = "examplepath.patch";
+ url = "https://github.com/CsoundQt/CsoundQt/commit/09f2d515bff638cbcacb450979d66e273a59fdec.diff";
+ sha256 = "0y23kf8m1mh9mklsvf908b2b8m2w2rji8qvws44paf1kpwnwdmgm";
+ })
+ ./rtmidipath.patch
+ ];
+
+ nativeBuildInputs = [ qmake qtwebengine qtxmlpatterns ];
+
+ buildInputs = [ csound desktop-file-utils rtmidi ];
+
+ qmakeFlags = [ "qcs.pro" "CONFIG+=rtmidi" "CONFIG+=pythonqt"
+ "CONFIG+=record_support" "CONFIG+=html_webengine"
+ "CSOUND_INCLUDE_DIR=${csound}/include/csound"
+ "CSOUND_LIBRARY_DIR=${csound}/lib"
+ "RTMIDI_DIR=${rtmidi.src}"
+ "PYTHONQT_SRC_DIR=${python-qt}/include/PythonQt"
+ "PYTHONQT_LIB_DIR=${python-qt}/lib"
+ "LIBS+=-L${python-qt}/lib"
+ "INCLUDEPATH+=${python-qt}/include/PythonQt"
+ "INCLUDEPATH+=${python}/include/python2.7"
+ "INSTALL_DIR=${placeholder "out"}"
+ "SHARE_DIR=${placeholder "out"}/share"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features";
+ homepage = "https://csoundqt.github.io/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ hlolli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-qt/rtmidipath.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-qt/rtmidipath.patch
new file mode 100644
index 000000000000..4cbab8a128fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/csound-qt/rtmidipath.patch
@@ -0,0 +1,17 @@
+diff --git a/src/src.pri b/src/src.pri
+index e5e0c896..9a9fa513 100644
+--- a/src/src.pri
++++ b/src/src.pri
+@@ -155,9 +155,9 @@ pythonqt {
+ "src/pyqcsobject.cpp"
+ }
+ rtmidi {
+- HEADERS += "src/../$${RTMIDI_DIR}/RtMidi.h"
+- SOURCES += "src/../$${RTMIDI_DIR}/RtMidi.cpp"
+- INCLUDEPATH += src/../$${RTMIDI_DIR}
++ HEADERS += "$${RTMIDI_DIR}/RtMidi.h"
++ SOURCES += "$${RTMIDI_DIR}/RtMidi.cpp"
++ INCLUDEPATH += $${RTMIDI_DIR}
+ }
+
+ perfThread_build {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/default.nix
new file mode 100644
index 000000000000..d91e550334b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/csound/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, cmake, libsndfile, libsamplerate, flex, bison, boost, gettext
+, alsaLib ? null
+, libpulseaudio ? null
+, libjack2 ? null
+, liblo ? null
+, ladspa-sdk ? null
+, fluidsynth ? null
+# , gmm ? null # opcodes don't build with gmm 5.1
+, eigen ? null
+, curl ? null
+, tcltk ? null
+, fltk ? null
+}:
+
+stdenv.mkDerivation rec {
+ pname = "csound";
+ # When updating, please check if https://github.com/csound/csound/issues/1078
+ # has been fixed in the new version so we can use the normal fluidsynth
+ # version and remove fluidsynth 1.x from nixpkgs again.
+ version = "6.15.0";
+
+ enableParallelBuilding = true;
+
+ hardeningDisable = [ "format" ];
+
+ src = fetchFromGitHub {
+ owner = "csound";
+ repo = "csound";
+ rev = version;
+ sha256 = "1vld6v55jxvv3ddr21kh41s4cdkhnm5wpffvd097zqrqh1aq08r0";
+ };
+
+ cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp
+ ++ stdenv.lib.optional (libjack2 != null) "-DJACK_HEADER=${libjack2}/include/jack/jack.h";
+
+ nativeBuildInputs = [ cmake flex bison gettext ];
+ buildInputs = [ libsndfile libsamplerate boost ]
+ ++ builtins.filter (optional: optional != null) [
+ alsaLib libpulseaudio libjack2
+ liblo ladspa-sdk fluidsynth eigen
+ curl tcltk fltk ];
+
+ meta = with stdenv.lib; {
+ description = "Sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms";
+ homepage = "http://www.csounds.com/";
+ license = licenses.gpl2;
+ maintainers = [maintainers.marcweber];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/curseradio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/curseradio/default.nix
new file mode 100644
index 000000000000..1dd5f9ee5eb2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/curseradio/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, substituteAll, python3Packages, mpv }:
+
+python3Packages.buildPythonApplication rec {
+ version = "0.2";
+ pname = "curseradio";
+
+ src = fetchFromGitHub {
+ owner = "chronitis";
+ repo = pname;
+ rev = "1bd4bd0faeec675e0647bac9a100b526cba19f8d";
+ sha256 = "11bf0jnj8h2fxhpdp498189r4s6b47vy4wripv0z4nx7lxajl88i";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ requests
+ lxml
+ pyxdg
+ ];
+
+ patches = [
+ (substituteAll {
+ src = ./mpv.patch;
+ inherit mpv;
+ })
+ ];
+
+ # No tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Command line radio player";
+ homepage = "https://github.com/chronitis/curseradio";
+ license = licenses.mit;
+ maintainers = [ maintainers.eyjhb ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/curseradio/mpv.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/curseradio/mpv.patch
new file mode 100644
index 000000000000..d085dc791099
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/curseradio/mpv.patch
@@ -0,0 +1,11 @@
+--- a/curseradio/curseradio.py
++++ b/curseradio/curseradio.py
+@@ -30,7 +30,7 @@ import re
+
+ CONFIG_DEFAULT = {
+ 'opml': {'root': "http://opml.radiotime.com/"},
+- 'playback': {'command': '/usr/bin/mpv'},
++ 'playback': {'command': '@mpv@/bin/mpv'},
+ 'interface': {'keymap': 'default'},
+ 'keymap.default': {
+ 'up': 'KEY_UP',
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
new file mode 100644
index 000000000000..6b92d1263e33
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
@@ -0,0 +1,117 @@
+{ config, stdenv, fetchFromGitHub
+, autoconf
+, automake
+, libtool
+, intltool
+, pkgconfig
+, jansson
+# deadbeef can use either gtk2 or gtk3
+, gtk2Support ? false, gtk2 ? null
+, gtk3Support ? true, gtk3 ? null, gsettings-desktop-schemas ? null, wrapGAppsHook ? null
+# input plugins
+, vorbisSupport ? true, libvorbis ? null
+, mp123Support ? true, libmad ? null
+, flacSupport ? true, flac ? null
+, wavSupport ? true, libsndfile ? null
+, cdaSupport ? true, libcdio ? null, libcddb ? null
+, aacSupport ? true, faad2 ? null
+, opusSupport ? true, opusfile ? null
+, wavpackSupport ? false, wavpack ? null
+, ffmpegSupport ? false, ffmpeg_3 ? null
+, apeSupport ? true, yasm ? null
+# misc plugins
+, zipSupport ? true, libzip ? null
+, artworkSupport ? true, imlib2 ? null
+, hotkeysSupport ? true, libX11 ? null
+, osdSupport ? true, dbus ? null
+# output plugins
+, alsaSupport ? true, alsaLib ? null
+, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
+# effect plugins
+, resamplerSupport ? true, libsamplerate ? null
+, overloadSupport ? true, zlib ? null
+# transports
+, remoteSupport ? true, curl ? null
+}:
+
+assert gtk2Support || gtk3Support;
+assert gtk2Support -> gtk2 != null;
+assert gtk3Support -> gtk3 != null && gsettings-desktop-schemas != null && wrapGAppsHook != null;
+assert vorbisSupport -> libvorbis != null;
+assert mp123Support -> libmad != null;
+assert flacSupport -> flac != null;
+assert wavSupport -> libsndfile != null;
+assert cdaSupport -> (libcdio != null && libcddb != null);
+assert aacSupport -> faad2 != null;
+assert opusSupport -> opusfile != null;
+assert zipSupport -> libzip != null;
+assert ffmpegSupport -> ffmpeg_3 != null;
+assert apeSupport -> yasm != null;
+assert artworkSupport -> imlib2 != null;
+assert hotkeysSupport -> libX11 != null;
+assert osdSupport -> dbus != null;
+assert alsaSupport -> alsaLib != null;
+assert pulseSupport -> libpulseaudio != null;
+assert resamplerSupport -> libsamplerate != null;
+assert overloadSupport -> zlib != null;
+assert wavpackSupport -> wavpack != null;
+assert remoteSupport -> curl != null;
+
+stdenv.mkDerivation rec {
+ pname = "deadbeef";
+ version = "1.8.4";
+
+ src = fetchFromGitHub {
+ owner = "DeaDBeeF-Player";
+ repo = "deadbeef";
+ rev = version;
+ sha256 = "161b0ll8v4cjgwwmk137hzvh0jidlkx56vjkpnr70f0x4jzv2nll";
+ };
+
+ buildInputs = with stdenv.lib; [ jansson ]
+ ++ optional gtk2Support gtk2
+ ++ optionals gtk3Support [ gtk3 gsettings-desktop-schemas ]
+ ++ optional vorbisSupport libvorbis
+ ++ optional mp123Support libmad
+ ++ optional flacSupport flac
+ ++ optional wavSupport libsndfile
+ ++ optionals cdaSupport [ libcdio libcddb ]
+ ++ optional aacSupport faad2
+ ++ optional opusSupport opusfile
+ ++ optional zipSupport libzip
+ ++ optional ffmpegSupport ffmpeg_3
+ ++ optional apeSupport yasm
+ ++ optional artworkSupport imlib2
+ ++ optional hotkeysSupport libX11
+ ++ optional osdSupport dbus
+ ++ optional alsaSupport alsaLib
+ ++ optional pulseSupport libpulseaudio
+ ++ optional resamplerSupport libsamplerate
+ ++ optional overloadSupport zlib
+ ++ optional wavpackSupport wavpack
+ ++ optional remoteSupport curl
+ ;
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ intltool
+ libtool
+ pkgconfig
+ ] ++ stdenv.lib.optional gtk3Support wrapGAppsHook;
+
+ enableParallelBuilding = true;
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Ultimate Music Player for GNU/Linux";
+ homepage = "http://deadbeef.sourceforge.net/";
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = [ maintainers.abbradar ];
+ repositories.git = "https://github.com/Alexey-Yakovenko/deadbeef";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix
new file mode 100644
index 000000000000..337d570a9353
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, pkgconfig, libxml2, deadbeef, glib, gtk3 }:
+
+stdenv.mkDerivation rec {
+ pname = "deadbeef-headerbar-gtk3-plugin";
+ version = "1.2";
+
+ src = fetchFromGitHub {
+ owner = "saivert";
+ repo = "ddb_misc_headerbar_GTK3";
+ rev = "v${version}";
+ sha256 = "1v1schvnps7ypjqgcbqi74a45w8r2gbhrawz7filym22h1qr9wn0";
+ };
+
+ nativeBuildInputs = [ autoconf automake libtool pkgconfig libxml2 ];
+ buildInputs = [ deadbeef glib gtk3 ];
+
+ # Choose correct installation path
+ # https://github.com/saivert/ddb_misc_headerbar_GTK3/commit/50ff75f76aa9d40761e352311670a894bfcd5cf6#r30319680
+ makeFlags = [ "pkglibdir=$(out)/lib/deadbeef" ];
+
+ preConfigure = "./autogen.sh";
+
+ meta = with stdenv.lib; {
+ description = "Plug-in that adds GTK 3 header bar to the DeaDBeeF music player";
+ homepage = "https://github.com/saivert/ddb_misc_headerbar_GTK3";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.jtojnar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/infobar.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/infobar.nix
new file mode 100644
index 000000000000..294d3a0ad8bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/infobar.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, deadbeef, gtk3, libxml2 }:
+
+stdenv.mkDerivation rec {
+ pname = "deadbeef-infobar-plugin";
+ version = "1.4";
+
+ src = fetchurl {
+ url = "https://bitbucket.org/dsimbiriatin/deadbeef-infobar/downloads/deadbeef-infobar-${version}.tar.gz";
+ sha256 = "0c9wh3wh1hdww7v96i8cy797la06mylhfi0880k8vwh88079aapf";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ deadbeef gtk3 libxml2 ];
+
+ buildFlags = [ "gtk3" ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/lib/deadbeef
+ cp gtk3/ddb_infobar_gtk3.so $out/lib/deadbeef
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ broken = true; # crashes DeaDBeeF and is abandoned (https://bitbucket.org/dsimbiriatin/deadbeef-infobar/issues/38/infobar-causes-deadbeef-180-to-crash)
+ description = "DeaDBeeF Infobar Plugin";
+ homepage = "https://bitbucket.org/dsimbiriatin/deadbeef-infobar";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.jtojnar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/lyricbar.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/lyricbar.nix
new file mode 100644
index 000000000000..699f9d86f68d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/lyricbar.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, pkgconfig, deadbeef, gtkmm3, libxmlxx3 }:
+
+stdenv.mkDerivation {
+ pname = "deadbeef-lyricbar-plugin";
+ version = "unstable-2019-01-29";
+
+ src = fetchFromGitHub {
+ owner = "C0rn3j";
+ repo = "deadbeef-lyricbar";
+ rev = "8f99b92ef827c451c43fc7dff38ae4f15c355e8e";
+ sha256 = "108hx5530f4xm8p9m2bk79nq7jkhcj39ad3vmxb2y6h6l2zv5kwl";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ deadbeef gtkmm3 libxmlxx3 ];
+
+ buildFlags = [ "gtk3" ];
+
+ meta = with stdenv.lib; {
+ description = "Plugin for DeaDBeeF audio player that fetches and shows the song’s lyrics";
+ homepage = "https://github.com/C0rn3j/deadbeef-lyricbar";
+ license = licenses.mit;
+ maintainers = [ maintainers.jtojnar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/mpris2.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/mpris2.nix
new file mode 100644
index 000000000000..95606a869b7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/plugins/mpris2.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, deadbeef, glib }:
+
+stdenv.mkDerivation rec {
+ pname = "deadbeef-mpris2-plugin";
+ version = "1.12";
+
+ src = fetchurl {
+ url = "https://github.com/Serranya/deadbeef-mpris2-plugin/releases/download/v${version}/${pname}-${version}.tar.xz";
+ sha256 = "0s3y4ka4qf38cypc0xspy79q0g5y1kqx6ldad7yr6a45nw6j95jh";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ deadbeef glib ];
+
+ meta = with stdenv.lib; {
+ description = "MPRISv2 plugin for the DeaDBeeF music player";
+ homepage = "https://github.com/Serranya/deadbeef-mpris2-plugin/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix
new file mode 100644
index 000000000000..cd45ef5926b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix
@@ -0,0 +1,14 @@
+{ symlinkJoin, deadbeef, makeWrapper, plugins }:
+
+symlinkJoin {
+ name = "deadbeef-with-plugins-${deadbeef.version}";
+
+ paths = [ deadbeef ] ++ plugins;
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/deadbeef \
+ --set DEADBEEF_PLUGIN_DIR "$out/lib/deadbeef"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/denemo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/denemo/default.nix
new file mode 100644
index 000000000000..313c7cbfd42f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/denemo/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig
+, libjack2, gettext, intltool, guile_2_0, lilypond
+, glib, libxml2, librsvg, libsndfile, aubio
+, gtk3, gtksourceview, evince, fluidsynth, rubberband
+, portaudio, portmidi, fftw, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "denemo";
+ version = "2.4.0";
+
+ src = fetchurl {
+ url = "https://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
+ sha256 = "145kq0zfgdadykl3i6na221i4s5wzdrcqq48amzyfarnrqk2rmpd";
+ };
+
+ buildInputs = [
+ libjack2 guile_2_0 lilypond glib libxml2 librsvg libsndfile
+ aubio gtk3 gtksourceview evince fluidsynth rubberband portaudio fftw portmidi
+ ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : "${lilypond}/bin"
+ )
+ '';
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ intltool
+ gettext
+ pkgconfig
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Music notation and composition software used with lilypond";
+ homepage = "http://denemo.org";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.olynch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/dfasma/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/dfasma/default.nix
new file mode 100644
index 000000000000..6df4679d1d5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/dfasma/default.nix
@@ -0,0 +1,66 @@
+{ mkDerivation, stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmake }:
+
+let
+
+ reaperFork = {
+ src = fetchFromGitHub {
+ sha256 = "07m2wf2gqyya95b65gawrnr4pvc9jyzmg6h8sinzgxlpskz93wwc";
+ rev = "39053e8896eedd7b3e8a9e9a9ffd80f1fc6ceb16";
+ repo = "REAPER";
+ owner = "gillesdegottex";
+ };
+ meta = with stdenv.lib; {
+ license = licenses.asl20;
+ };
+ };
+
+ libqaudioextra = {
+ src = fetchFromGitHub {
+ sha256 = "0m6x1qm7lbjplqasr2jhnd2ndi0y6z9ybbiiixnlwfm23sp15wci";
+ rev = "9ae051989a8fed0b2f8194b1501151909a821a89";
+ repo = "libqaudioextra";
+ owner = "gillesdegottex";
+ };
+ meta = with stdenv.lib; {
+ license = licenses.gpl3Plus;
+ };
+ };
+
+in mkDerivation rec {
+ pname = "dfasma";
+ version = "1.4.5";
+
+ src = fetchFromGitHub {
+ sha256 = "09fcyjm0hg3y51fnjax88m93im39nbynxj79ffdknsazmqw9ac0h";
+ rev = "v${version}";
+ repo = "dfasma";
+ owner = "gillesdegottex";
+ };
+
+ buildInputs = [ fftw libsndfile qtbase qtmultimedia ];
+
+ nativeBuildInputs = [ qmake ];
+
+ postPatch = ''
+ cp -Rv "${reaperFork.src}"/* external/REAPER
+ cp -Rv "${libqaudioextra.src}"/* external/libqaudioextra
+ substituteInPlace dfasma.pro --replace "CONFIG += file_sdif" "";
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Analyse and compare audio files in time and frequency";
+ longDescription = ''
+ DFasma is free open-source software to compare audio files by time and
+ frequency. The comparison is first visual, using wavforms and spectra. It
+ is also possible to listen to time-frequency segments in order to allow
+ perceptual comparison. It is basically dedicated to analysis. Even though
+ there are basic functionalities to align the signals in time and
+ amplitude, this software does not aim to be an audio editor.
+ '';
+ homepage = "http://gillesdegottex.github.io/dfasma/";
+ license = [ licenses.gpl3Plus reaperFork.meta.license ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/dirt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/dirt/default.nix
new file mode 100644
index 000000000000..5e0cf3616fe5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/dirt/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, libsndfile, libsamplerate, liblo, libjack2 }:
+
+stdenv.mkDerivation {
+ name = "dirt-2018-01-01";
+ src = fetchFromGitHub {
+ repo = "Dirt";
+ owner = "tidalcycles";
+ rev = "b09604c7d8e581bc7799d7e2ad293e7cdd254bda";
+ sha256 = "13adglk2d31d7mswfvi02b0rjdhzmsv11cc8smhidmrns3f9s96n";
+ fetchSubmodules = true;
+ };
+ buildInputs = [ libsndfile libsamplerate liblo libjack2 ];
+ postPatch = ''
+ sed -i "s|./samples|$out/share/dirt/samples|" dirt.c
+ '';
+ makeFlags = ["PREFIX=$(out)"];
+ postInstall = ''
+ mkdir -p $out/share/dirt/
+ cp -r samples $out/share/dirt/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An unimpressive thingie for playing bits of samples with some level of accuracy";
+ homepage = "https://github.com/tidalcycles/Dirt";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ anderspapitto ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/distrho/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/distrho/default.nix
new file mode 100644
index 000000000000..0f651f47a488
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/distrho/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, alsaLib, fftwSinglePrec, freetype, libjack2
+, pkgconfig, ladspa-sdk, premake3
+, libX11, libXcomposite, libXcursor, libXext, libXinerama, libXrender
+}:
+
+let
+ premakeos = if stdenv.hostPlatform.isDarwin then "osx"
+ else if stdenv.hostPlatform.isWindows then "mingw"
+ else "linux";
+in stdenv.mkDerivation rec {
+ pname = "distrho-ports";
+ version = "unstable-2019-10-09";
+
+ src = fetchFromGitHub {
+ owner = "DISTRHO";
+ repo = "DISTRHO-Ports";
+ rev = "7e62235e809e59770d0d91d2c48c3f50ce7c027a";
+ sha256 = "10hpsjcmk0cgcsic9r1wxyja9x6q9wb8w8254dlrnzyswl54r1f8";
+ };
+
+ configurePhase = ''
+ runHook preConfigure
+
+ sh ./scripts/premake-update.sh ${premakeos}
+
+ runHook postConfigure
+ '';
+
+ postPatch = ''
+ sed -e "s#@./scripts#sh scripts#" -i Makefile
+ '';
+
+ nativeBuildInputs = [ pkgconfig premake3 ];
+ buildInputs = [
+ alsaLib fftwSinglePrec freetype libjack2
+ libX11 libXcomposite libXcursor libXext
+ libXinerama libXrender ladspa-sdk
+ ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://distrho.sourceforge.net";
+ description = "A collection of cross-platform audio effects and plugins";
+ longDescription = ''
+ Includes:
+ Dexed drowaudio-distortion drowaudio-distortionshaper drowaudio-flanger
+ drowaudio-reverb drowaudio-tremolo drumsynth EasySSP eqinox HiReSam
+ JuceDemoPlugin KlangFalter LUFSMeter LUFSMeterMulti Luftikus Obxd
+ PitchedDelay ReFine StereoSourceSeparation TAL-Dub-3 TAL-Filter
+ TAL-Filter-2 TAL-NoiseMaker TAL-Reverb TAL-Reverb-2 TAL-Reverb-3
+ TAL-Vocoder-2 TheFunction ThePilgrim Vex Wolpertinger
+ '';
+ license = with licenses; [ gpl2 gpl3 gpl2Plus lgpl3 mit ];
+ maintainers = [ maintainers.goibhniu ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
new file mode 100644
index 000000000000..272701b36804
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, python3Packages, pkgs }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "dr14_tmeter";
+ version = "1.0.16";
+
+ disabled = !python3Packages.isPy3k;
+
+ src = fetchFromGitHub {
+ owner = "simon-r";
+ repo = "dr14_t.meter";
+ rev = "v${version}";
+ sha256 = "1nfsasi7kx0myxkahbd7rz8796mcf5nsadrsjjpx2kgaaw5nkv1m";
+ };
+
+ propagatedBuildInputs = with pkgs; [
+ python3Packages.numpy flac vorbis-tools ffmpeg_3 faad2 lame
+ ];
+
+ # There are no tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation";
+ license = licenses.gpl3Plus;
+ homepage = "http://dr14tmeter.sourceforge.net/";
+ maintainers = [ maintainers.adisbladis ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
new file mode 100644
index 000000000000..e5cbcd4a2e20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, libjack2, libGL, pkgconfig, xorg }:
+
+stdenv.mkDerivation rec {
+ pname = "dragonfly-reverb";
+ version = "3.2.1";
+
+ src = fetchFromGitHub {
+ owner = "michaelwillis";
+ repo = "dragonfly-reverb";
+ rev = version;
+ sha256 = "0vfm2510shah67k87mdyar4wr4vqwii59y9lqfhwm6blxparkrqa";
+ fetchSubmodules = true;
+ };
+
+ patchPhase = ''
+ patchShebangs dpf/utils/generate-ttl.sh
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ libjack2 xorg.libX11 libGL
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/lib/lv2/
+ mkdir -p $out/lib/vst/
+ cd bin
+ for bin in DragonflyEarlyReflections DragonflyPlateReverb DragonflyHallReverb DragonflyRoomReverb; do
+ cp -a $bin $out/bin/
+ cp -a $bin-vst.so $out/lib/vst/
+ cp -a $bin.lv2/ $out/lib/lv2/ ;
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/michaelwillis/dragonfly-reverb";
+ description = "A hall-style reverb based on freeverb3 algorithms";
+ maintainers = [ maintainers.magnetophon ];
+ license = licenses.gpl3;
+ platforms = ["x86_64-linux"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix
new file mode 100644
index 000000000000..9e24c4a1c295
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, fetchpatch, alsaLib, expat, glib, libjack2, libXext, libX11, libpng
+, libpthreadstubs, libsmf, libsndfile, lv2, pkgconfig, zita-resampler
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.9.18.1";
+ pname = "drumgizmo";
+
+ src = fetchurl {
+ url = "https://www.drumgizmo.org/releases/${pname}-${version}/${pname}-${version}.tar.gz";
+ sha256 = "0bpbkzcr3znbwfdk79c14n5k5hh80iqlk2nc03q95vhimbadk8k7";
+ };
+
+ patches = [
+ # Fix build for lv2 1.18.0
+ (fetchpatch {
+ url = "http://cgit.drumgizmo.org/plugingizmo.git/patch/?id=be64ddf9da525cd5c6757464efc966052731ba71";
+ sha256 = "17w8g78i5avssc7m8rpw64ka3rai8dff81wfzir9cpxp8s2h44qf";
+ extraPrefix = "plugin/plugingizmo/";
+ stripLen = 1;
+ })
+ ];
+
+ configureFlags = [ "--enable-lv2" ];
+
+ buildInputs = [
+ alsaLib expat glib libjack2 libXext libX11 libpng libpthreadstubs
+ libsmf libsndfile lv2 pkgconfig zita-resampler
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An LV2 sample based drum plugin";
+ homepage = "https://www.drumgizmo.org";
+ license = licenses.lgpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu maintainers.nico202 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/drumkv1/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
new file mode 100644
index 000000000000..82a47b8173a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5 }:
+
+mkDerivation rec {
+ pname = "drumkv1";
+ version = "0.9.18";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/drumkv1/${pname}-${version}.tar.gz";
+ sha256 = "1bzkaz7sqx1pvirja8zm7i2ckzl5ad6xspr4840389ik3l8qpnr5";
+ };
+
+ buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with lib; {
+ description = "An old-school drum-kit sampler synthesizer with stereo fx";
+ homepage = "http://drumkv1.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/dsf2flac/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/dsf2flac/default.nix
new file mode 100644
index 000000000000..031203dda756
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/dsf2flac/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, boost, flac, id3lib, pkg-config
+, taglib, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "dsf2flac";
+ version = "unstable-2018-01-02";
+
+ src = fetchFromGitHub {
+ owner = "hank";
+ repo = pname;
+ rev = "b0cf5aa6ddc60df9bbfeed25548e443c99f5cb16";
+ sha256 = "15j5f82v7lgs0fkgyyynl82cb1rsxyr9vw3bpzra63nacbi9g8lc";
+ };
+
+ buildInputs = [ boost flac id3lib taglib zlib ];
+
+ nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+ enableParallelBuilding = true;
+
+ preConfigure = ''
+ export LIBS="$LIBS -lz"
+ '';
+
+ configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ];
+
+ meta = with stdenv.lib; {
+ description = "A DSD to FLAC transcoding tool";
+ homepage = "https://github.com/hank/dsf2flac";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ dmrauh ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/easytag/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/easytag/default.nix
new file mode 100644
index 000000000000..3f294342da70
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/easytag/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, glib, libid3tag, id3lib, taglib
+, libvorbis, libogg, opusfile, flac, itstool, libxml2, gsettings-desktop-schemas
+, gnome3, wrapGAppsHook
+}:
+
+let
+ pname = "easytag";
+ version = "2.4.3";
+in stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+ sha256 = "1mbxnqrw1fwcgraa1bgik25vdzvf97vma5pzknbwbqq5ly9fwlgw";
+ };
+
+ NIX_LDFLAGS = "-lid3tag -lz";
+
+ nativeBuildInputs = [ pkgconfig intltool itstool libxml2 wrapGAppsHook ];
+ buildInputs = [
+ gtk3 glib libid3tag id3lib taglib libvorbis libogg opusfile flac
+ gsettings-desktop-schemas gnome3.adwaita-icon-theme
+ ];
+
+ doCheck = false; # fails 1 out of 9 tests
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ versionPolicy = "none";
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "View and edit tags for various audio files";
+ homepage = "https://wiki.gnome.org/Apps/EasyTAG";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ecasound/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ecasound/default.nix
new file mode 100644
index 000000000000..adb6f6b74274
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ecasound/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchurl
+, alsaLib
+, audiofile
+, libjack2
+, liblo
+, liboil
+, libsamplerate
+, libsndfile
+, lilv
+, lv2
+}:
+
+# TODO: fix readline, ncurses, lilv, liblo, liboil and python. See configure log.
+
+stdenv.mkDerivation rec {
+ pname = "ecasound";
+ version = "2.9.3";
+
+ src = fetchurl {
+ url = "https://ecasound.seul.org/download/ecasound-${version}.tar.gz";
+ sha256 = "1m7njfjdb7sqf0lhgc4swihgdr4snkg8v02wcly08wb5ar2fr2s6";
+ };
+
+ buildInputs = [ alsaLib audiofile libjack2 liblo liboil libsamplerate libsndfile lilv lv2 ];
+
+ meta = {
+ description = "Software package designed for multitrack audio processing";
+ license = with stdenv.lib.licenses; [ gpl2 lgpl21 ];
+ homepage = "http://nosignal.fi/ecasound/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/eflite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/eflite/default.nix
new file mode 100644
index 000000000000..30a35501771b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/eflite/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, fetchpatch, flite, alsaLib, debug ? false }:
+
+stdenv.mkDerivation rec {
+ pname = "eflite";
+ version = "0.4.1";
+
+ src = fetchurl {
+ url = "https://sourceforge.net/projects/eflite/files/eflite/${version}/${pname}-${version}.tar.gz";
+ sha256 = "088p9w816s02s64grfs28gai3lnibzdjb9d1jwxzr8smbs2qbbci";
+ };
+
+ buildInputs = [ flite alsaLib ];
+
+ configureFlags = [
+ "flite_dir=${flite}"
+ "--with-audio=alsa"
+ "--with-vox=cmu_us_kal16"
+ ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://sources.debian.org/data/main/e/eflite/0.4.1-8/debian/patches/cvs-update";
+ sha256 = "0r631vzmky7b7qyhm152557y4fr0xqrpi3y4w66fcn6p4rj03j05";
+ })
+ (fetchpatch {
+ url = "https://sources.debian.org/data/main/e/eflite/0.4.1-8/debian/patches/buf-overflow";
+ sha256 = "071qk133kb7n7bq6kxgh3p9bba6hcl1ixsn4lx8vp8klijgrvkmx";
+ })
+ (fetchpatch {
+ url = "https://sources.debian.org/data/main/e/eflite/0.4.1-8/debian/patches/link";
+ sha256 = "0p833dp4pdsya72bwh3syvkq85927pm6snxvx13lvcppisbhj0fc";
+ })
+ ./format.patch
+ ];
+
+ CFLAGS = stdenv.lib.optionalString debug " -DDEBUG=2";
+
+ meta = {
+ homepage = "http://eflite.sourceforge.net";
+ description = "Speech server for screen readers";
+ longDescription = ''
+ EFlite is a speech server for Emacspeak and other screen
+ readers that allows them to interface with Festival Lite,
+ a free text-to-speech engine developed at the CMU Speech
+ Center as an off-shoot of Festival.
+ '';
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ jhhuh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/eflite/format.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/eflite/format.patch
new file mode 100644
index 000000000000..d1a81aac4801
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/eflite/format.patch
@@ -0,0 +1,11 @@
+--- eflite-0.4.1.orig/es.c 2017-03-02 14:38:36.009731423 +0100
++++ eflite-0.4.1/es.c 2017-03-02 14:39:06.285894934 +0100
+@@ -449,7 +449,7 @@
+ fclose(fp);
+ if (flags & LOG_STDERR)
+ {
+- fprintf(stderr, buf);
++ fprintf(stderr, "%s", buf);
+ fprintf(stderr, "\n");
+ }
+ #endif
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ekho/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ekho/default.nix
new file mode 100644
index 000000000000..0e2c950051a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ekho/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig
+, libsndfile, libpulseaudio
+}:
+
+let
+ version = "5.8.2";
+in stdenv.mkDerivation rec {
+ pname = "ekho";
+ inherit version;
+
+ meta = with stdenv.lib; {
+ description = "Chinese text-to-speech software";
+ homepage = "http://www.eguidedog.net/ekho.php";
+ longDescription = ''
+ Ekho (余音) is a free, open source and multilingual text-to-speech (TTS)
+ software. It supports Cantonese (Chinese dialect spoken in Hong Kong and
+ part of Guangdong province), Mandarin (standard Chinese), Zhaoan Hakka
+ (a dialect in Taiwan), Tibetan, Ngangien (an ancient Chinese before
+ Yuan Dynasty) and Korean (in trial).
+ '';
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ hydraPlatforms = [];
+ };
+
+ src = fetchurl {
+ url = "mirror://sourceforge/e-guidedog/Ekho/${version}/${pname}-${version}.tar.xz";
+ sha256 = "0ym6lpcpsvwvsiwlzkl1509a2hljwcw7synngrmqjq1n49ww00nj";
+ };
+
+ preConfigure = with stdenv.lib; ''
+ NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE ${optionalString stdenv.is64bit "-D_x86_64"}"
+ NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DEKHO_DATA_PATH=\"$out/share/ekho-data\""
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ libsndfile libpulseaudio ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ensemble-chorus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ensemble-chorus/default.nix
new file mode 100644
index 000000000000..e2413a4fe87f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ensemble-chorus/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, fltk, alsaLib, freetype, libXrandr, libXinerama, libXcursor, lv2, libjack2, cmake, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "ensemble-chorus";
+ version = "unstable-15-02-2019";
+
+ src = fetchFromGitHub {
+ owner = "jpcima";
+ repo = pname;
+ rev = "59baeb86b8851f521bc8162e22e3f15061662cc3";
+ sha256 = "0c1y10vyhrihcjvxqpqf6b52yk5yhwh813cfp6nla5ax2w88dbhr";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ fltk alsaLib freetype libXrandr libXinerama libXcursor lv2 libjack2
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jpcima/ensemble-chorus";
+ description = "Digital model of electronic string ensemble chorus";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.boost;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/eq10q/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/eq10q/default.nix
new file mode 100644
index 000000000000..c614b96f6385
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/eq10q/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, fetchpatch, cmake, fftw, gtkmm2, libxcb, lv2, pkgconfig
+, xorg }:
+stdenv.mkDerivation rec {
+ pname = "eq10q";
+ version = "2.2";
+ src = fetchurl {
+ url = "mirror://sourceforge/project/eq10q/${pname}-${version}.tar.gz";
+ sha256 = "16mhcav8gwkp29k9ki4dlkajlcgh1i2wvldabxb046d37dq4qzrk";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ cmake fftw gtkmm2 libxcb lv2 xorg.libpthreadstubs xorg.libXdmcp xorg.libxshmfence ];
+
+ patches = [
+ (fetchpatch {
+ # glibc 2.27 compatibility
+ url = "https://sources.debian.org/data/main/e/eq10q/2.2~repack0-2.1/debian/patches/05-pow10.patch";
+ sha256 = "07b0wf6k4xqgigv4h095bzfaw8r218wa36r9w1817jcys13r6c5r";
+ })
+ ];
+
+ postPatch = ''
+ # Fix build with lv2 1.18: https://sourceforge.net/p/eq10q/bugs/23/
+ find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
+ -exec sed -i {} -e 's/const _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
+ '';
+
+ installFlags = [ "DESTDIR=$(out)" ];
+
+ fixupPhase = ''
+ cp -r $out/var/empty/local/lib $out
+ rm -R $out/var
+ '';
+
+ meta = {
+ description = "LV2 EQ plugins and more, with 64 bit processing";
+ longDescription = ''
+ Up to 10-Bands parametric equalizer with mono and stereo versions.
+ Versatile noise-gate plugin with mono and stereo versions.
+ Compressor plugin with mono and stereo versions.
+ BassUp plugin - Enhanceing the bass guitar sound or other low frequency sounding instruments.
+ Improved high frequency response for peaking filter (in equalizers).
+ 64 bits floating point internal audio processing.
+ Nice GUI with powerful metering for every plugin.
+ '';
+ homepage = "http://eq10q.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix
new file mode 100644
index 000000000000..32cec811d002
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkgconfig
+, ronn
+, pcaudiolibSupport ? true, pcaudiolib
+, sonicSupport ? true, sonic }:
+
+stdenv.mkDerivation rec {
+ pname = "espeak-ng";
+ version = "1.50";
+
+ src = fetchFromGitHub {
+ owner = "espeak-ng";
+ repo = "espeak-ng";
+ rev = version;
+ sha256 = "0jkqhf2h94vbqq7mg7mmm23bq372fa7mdk941my18c3vkldcir1b";
+ };
+
+ nativeBuildInputs = [ autoconf automake which libtool pkgconfig ronn ];
+
+ buildInputs = lib.optional pcaudiolibSupport pcaudiolib
+ ++ lib.optional sonicSupport sonic;
+
+ preConfigure = "./autogen.sh";
+
+ postInstall = ''
+ patchelf --set-rpath "$(patchelf --print-rpath $out/bin/espeak-ng)" $out/bin/speak-ng
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Open source speech synthesizer that supports over 70 languages, based on eSpeak";
+ homepage = src.meta.homepage;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ aske ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/default.nix
new file mode 100644
index 000000000000..aa68fd5363d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, unzip, portaudio }:
+
+stdenv.mkDerivation rec {
+ name = "espeak-1.48.04";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/espeak/${name}-source.zip";
+ sha256 = "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz";
+ };
+
+ buildInputs = [ unzip portaudio ];
+
+ patches = [
+ ./gcc6.patch
+ ];
+
+ prePatch = ''
+ sed -e s,/bin/ln,ln,g -i src/Makefile
+ sed -e 's,^CXXFLAGS=-O2,CXXFLAGS=-O2 -D PATH_ESPEAK_DATA=\\\"$(DATADIR)\\\",' -i src/Makefile
+ '' + (if portaudio.api_version == 19 then ''
+ cp src/portaudio19.h src/portaudio.h
+ '' else "");
+
+ configurePhase = ''
+ cd src
+ makeFlags="PREFIX=$out DATADIR=$out/share/espeak-data"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Compact open source software speech synthesizer";
+ homepage = "http://espeak.sourceforge.net/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/edit.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/edit.nix
new file mode 100644
index 000000000000..6bcffcbc5c34
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/edit.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, pkgconfig, unzip, portaudio, wxGTK, sox }:
+
+stdenv.mkDerivation rec {
+ name = "espeakedit-1.48.03";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/espeak/${name}.zip";
+ sha256 = "0x8s7vpb7rw5x37yjzy1f98m4f2csdg89libb74fm36gn8ly0hli";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ unzip portaudio wxGTK ];
+
+ # TODO:
+ # Uhm, seems like espeakedit still wants espeak-data/ in $HOME, even thought
+ # it should use $espeak/share/espeak-data. Have to contact upstream to get
+ # this fixed.
+ #
+ # Workaround:
+ # cp -r $(nix-build -A espeak)/share/espeak-data ~
+ # chmod +w ~/espeak-data
+
+ patches = [
+ ./gcc6.patch
+ ./espeakedit-fix-makefile.patch
+ ./espeakedit-configurable-sox-path.patch
+ ./espeakedit-configurable-path-espeak-data.patch
+ ./espeakedit-gcc6.patch
+ ];
+
+ postPatch = ''
+ # Disable -Wall flag because it's noisy
+ sed -i "s/-Wall//g" src/Makefile
+
+ # Fixup paths (file names from above espeak-configurable* patches)
+ for file in src/compiledata.cpp src/readclause.cpp src/speech.h; do
+ sed -e "s|@sox@|${sox}/bin/sox|" \
+ -e "s|@prefix@|$out|" \
+ -i "$file"
+ done
+ '' + stdenv.lib.optionalString (portaudio.api_version == 19) ''
+ cp src/portaudio19.h src/portaudio.h
+ '';
+
+ buildPhase = ''
+ make -C src
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp src/espeakedit "$out/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Phoneme editor for espeak";
+ homepage = "http://espeak.sourceforge.net/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch
new file mode 100644
index 000000000000..e5c761a11b35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch
@@ -0,0 +1,15 @@
+Don't hardcode /usr, use @prefix@.
+
+Author: Bjørn Forsman
+diff -uNr espeakedit-1.48.03.orig/src/speech.h espeakedit-1.48.03/src/speech.h
+--- espeakedit-1.48.03.orig/src/speech.h 2014-03-04 17:48:12.000000000 +0100
++++ espeakedit-1.48.03/src/speech.h 2014-07-22 18:21:40.860790719 +0200
+@@ -58,7 +58,7 @@
+
+ // will look for espeak_data directory here, and also in user's home directory
+ #ifndef PATH_ESPEAK_DATA
+- #define PATH_ESPEAK_DATA "/usr/share/espeak-data"
++ #define PATH_ESPEAK_DATA "@prefix@/share/espeak-data"
+ #endif
+
+ typedef unsigned short USHORT;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch
new file mode 100644
index 000000000000..1c5dfc21941a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch
@@ -0,0 +1,27 @@
+Make the path to 'sox' configurable by marking it '@sox@' (easy to match with sed).
+
+Author: Bjørn Forsman
+diff -uNr espeakedit-1.48.03.orig/src/compiledata.cpp espeakedit-1.48.03/src/compiledata.cpp
+--- espeakedit-1.48.03.orig/src/compiledata.cpp 2014-03-04 17:48:11.000000000 +0100
++++ espeakedit-1.48.03/src/compiledata.cpp 2014-07-22 16:38:50.261388452 +0200
+@@ -1884,7 +1884,7 @@
+ fname2 = msg;
+ }
+
+- sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp);
++ sprintf(command,"@sox@ \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp);
+ if(system(command) != 0)
+ {
+ failed = 1;
+diff -uNr espeakedit-1.48.03.orig/src/readclause.cpp espeakedit-1.48.03/src/readclause.cpp
+--- espeakedit-1.48.03.orig/src/readclause.cpp 2014-03-04 17:48:11.000000000 +0100
++++ espeakedit-1.48.03/src/readclause.cpp 2014-07-22 16:38:37.190440504 +0200
+@@ -892,7 +892,7 @@
+ if((fd_temp = mkstemp(fname_temp)) >= 0)
+ {
+ close(fd_temp);
+- sprintf(command,"sox \"%s\" -r %d -c1 -t wav %s\n", fname, samplerate, fname_temp);
++ sprintf(command,"@sox@ \"%s\" -r %d -c1 -t wav %s\n", fname, samplerate, fname_temp);
+ if(system(command) == 0)
+ {
+ fname = fname_temp;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch
new file mode 100644
index 000000000000..9f8a65d2b0ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch
@@ -0,0 +1,26 @@
+Fix broken Makefile:
+
+* fix syntax error (missing '\' to continue line):
+ Makefile:19: *** recipe commences before first target. Stop.
+* Get portaudio library flags from pkg-config (to get -Lpath/to/portaudio/lib etc.)
+
+Author: Bjørn Forsman
+diff -uNr espeakedit-1.48.03.orig/src/Makefile espeakedit-1.48.03/src/Makefile
+--- espeakedit-1.48.03.orig/src/Makefile 2013-03-13 15:52:02.000000000 +0100
++++ espeakedit-1.48.03/src/Makefile 2014-07-22 15:34:17.524114822 +0200
+@@ -12,12 +12,11 @@
+
+ WX_LIBS = -pthread `wx-config --libs`
+
+-LIBS=-lstdc++ -lportaudio
++LIBS=-lstdc++ `pkg-config --libs portaudio-2.0`
+ #LIBS=-lstdc++ /usr/lib/x86_64-linux-gnu/libportaudio.so.2
+
+-CPPFLAGS = -Wall -g -fexceptions `wx-config --cflags`
+- -I/usr/include/wx-2.8 \
+- -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES
++CPPFLAGS = -Wall -g -fexceptions `wx-config --cflags` \
++ -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES \
+ -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT
+
+ CXXFLAGS = -O2 -Wall -fexceptions `wx-config --cflags` \
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-gcc6.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-gcc6.patch
new file mode 100644
index 000000000000..1e0cb20bbf76
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/espeakedit-gcc6.patch
@@ -0,0 +1,57 @@
+diff --git i/src/compiledata.cpp w/src/compiledata.cpp
+index f1bcb30..30e9e2d 100755
+--- i/src/compiledata.cpp
++++ w/src/compiledata.cpp
+@@ -212,7 +212,7 @@ enum {
+ kTUNE_SPLIT,
+ };
+
+-static const char utf8_bom[] = {0xef,0xbb,0xbf,0};
++static const char utf8_bom[] = {char(0xef),char(0xbb),char(0xbf),0};
+
+ static keywtab_t k_intonation[] = {
+ {"tune", 0, kTUNE},
+diff --git i/src/espeakedit.cpp w/src/espeakedit.cpp
+index bde03ea..071689d 100755
+--- i/src/espeakedit.cpp
++++ w/src/espeakedit.cpp
+@@ -744,7 +744,7 @@ void MyFrame::OnTools(wxCommandEvent& event)
+ int debug_flag=0;
+ char fname_log[sizeof(path_dsource)+12];
+ char err_fname[sizeof(path_home)+15];
+- static const char utf8_bom[] = {0xef,0xbb,0xbf,0};
++ static const char utf8_bom[] = {char(0xef),char(0xbb),char(0xbf),0};
+
+ switch(event.GetId())
+ {
+diff --git i/src/extras.cpp w/src/extras.cpp
+index fa6ac3b..ee68f59 100644
+--- i/src/extras.cpp
++++ w/src/extras.cpp
+@@ -335,16 +335,16 @@ void Lexicon_It(int pass)
+ static const char *vowels1 = "aeiou";
+ static const char *vowels2 = "aeou";
+
+- static const char ex1[] = {'a',0xc3,0xac,0}; // aì
+- static const char ex2[] = {'e',0xc3,0xac,0}; // eì
+- static const char ex3[] = {0xc3,0xb9,'a',0}; // ùa
+- static const char ex4[] = {0xc3,0xb9,'e',0}; // ùe
+- static const char ex5[] = {0xc3,0xb9,'i',0}; // ùi
+- static const char ex6[] = {0xc3,0xb9,'o',0}; // ùo
+- static const char ex7[] = {'c',0xc3,0xac,'a',0}; // cìa
+- static const char ex8[] = {'c',0xc3,0xac,'o',0}; // cìo
+- static const char ex9[] = {'c',0xc3,0xac,'u',0}; // cìu
+- static const char ex10[] = {'g','l',0xc3,0xac,0}; // glì
++ static const char ex1[] = {'a',char(0xc3),char(0xac),0}; // aì
++ static const char ex2[] = {'e',char(0xc3),char(0xac),0}; // eì
++ static const char ex3[] = {char(0xc3),char(0xb9),'a',0}; // ùa
++ static const char ex4[] = {char(0xc3),char(0xb9),'e',0}; // ùe
++ static const char ex5[] = {char(0xc3),char(0xb9),'i',0}; // ùi
++ static const char ex6[] = {char(0xc3),char(0xb9),'o',0}; // ùo
++ static const char ex7[] = {'c',char(0xc3),char(0xac),'a',0}; // cìa
++ static const char ex8[] = {'c',char(0xc3),char(0xac),'o',0}; // cìo
++ static const char ex9[] = {'c',char(0xc3),char(0xac),'u',0}; // cìu
++ static const char ex10[] = {'g','l',char(0xc3),char(0xac),0}; // glì
+
+
+ static const char *exceptions[] = {ex1, ex2, ex3, ex4, ex5, ex6, ex7, ex8, ex9, ex10, NULL};
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/gcc6.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/gcc6.patch
new file mode 100644
index 000000000000..58036ecbe509
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/espeak/gcc6.patch
@@ -0,0 +1,13 @@
+diff --git c/src/tr_languages.cpp i/src/tr_languages.cpp
+index ec210a5..9503f47 100755
+--- c/src/tr_languages.cpp
++++ i/src/tr_languages.cpp
+@@ -198,7 +198,7 @@ static const unsigned short chars_ignore_zwnj_hyphen[] = {
+ 0x200d, 1, // zero width joiner
+ 0, 0 };
+
+-const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
++const char string_ordinal[] = {char(0xc2),char(0xba),0}; // masculine ordinal character, UTF-8
+
+
+ static Translator* NewTranslator(void)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/eteroj.lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/eteroj.lv2/default.nix
new file mode 100644
index 000000000000..c86e7b5e9ba1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/eteroj.lv2/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libuv, lv2 }:
+
+stdenv.mkDerivation rec {
+ pname = "eteroj.lv2";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "OpenMusicKontrollers";
+ repo = pname;
+ rev = version;
+ sha256 = "0lzdk7hlz3vqgshrfpj0izjad1fmsnzk2vxqrry70xgz8xglvnmn";
+ };
+
+ buildInputs = [ libuv lv2 ];
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ meta = with stdenv.lib; {
+ description = "OSC injection/ejection from/to UDP/TCP/Serial for LV2";
+ homepage = "https://open-music-kontrollers.ch/lv2/eteroj";
+ license = licenses.artistic2;
+ maintainers = with maintainers; [ magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust1.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust1.nix
new file mode 100644
index 000000000000..16956433655c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust1.nix
@@ -0,0 +1,208 @@
+{ stdenv
+, coreutils
+, fetchurl
+, makeWrapper
+, pkgconfig
+}:
+
+with stdenv.lib.strings;
+
+let
+
+ version = "0.9.90";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/faudiostream/faust-${version}.tgz";
+ sha256 = "0d1fqwymyfb73zkmpwv4zk4gsg4ji7qs20mfsr20skmnqx30xvna";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://faust.grame.fr/";
+ downloadPage = "https://sourceforge.net/projects/faudiostream/files/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ magnetophon pmahoney ];
+ };
+
+ faust = stdenv.mkDerivation {
+ pname = "faust";
+ inherit version;
+
+ inherit src;
+
+ buildInputs = [ makeWrapper ];
+
+ passthru = {
+ inherit wrap wrapWithBuildEnv;
+ };
+
+ preConfigure = ''
+ makeFlags="$makeFlags prefix=$out"
+
+ # The faust makefiles use 'system ?= $(shell uname -s)' but nix
+ # defines 'system' env var, so undefine that so faust detects the
+ # correct system.
+ unset system
+ '';
+
+ # Remove most faust2appl scripts since they won't run properly
+ # without additional paths setup. See faust.wrap,
+ # faust.wrapWithBuildEnv.
+ postInstall = ''
+ # syntax error when eval'd directly
+ pattern="faust2!(*@(atomsnippets|graph|graphviewer|md|plot|sig|sigviewer|svg))"
+ (shopt -s extglob; rm "$out"/bin/$pattern)
+ '';
+
+ postFixup = ''
+ # Set faustpath explicitly.
+ substituteInPlace "$out"/bin/faustpath \
+ --replace "/usr/local /usr /opt /opt/local" "$out"
+
+ # The 'faustoptflags' is 'source'd into other faust scripts and
+ # not used as an executable, so patch 'uname' usage directly
+ # rather than use makeWrapper.
+ substituteInPlace "$out"/bin/faustoptflags \
+ --replace uname "${coreutils}/bin/uname"
+
+ # wrapper for scripts that don't need faust.wrap*
+ for script in "$out"/bin/faust2*; do
+ wrapProgram "$script" \
+ --prefix PATH : "$out"/bin
+ done
+ '';
+
+ meta = meta // {
+ description = "A functional programming language for realtime audio signal processing";
+ longDescription = ''
+ FAUST (Functional Audio Stream) is a functional programming
+ language specifically designed for real-time signal processing
+ and synthesis. FAUST targets high-performance signal processing
+ applications and audio plug-ins for a variety of platforms and
+ standards.
+ The Faust compiler translates DSP specifications into very
+ efficient C++ code. Thanks to the notion of architecture,
+ FAUST programs can be easily deployed on a large variety of
+ audio platforms and plugin formats (jack, alsa, ladspa, maxmsp,
+ puredata, csound, supercollider, pure, vst, coreaudio) without
+ any change to the FAUST code.
+
+ This package has just the compiler, libraries, and headers.
+ Install faust2* for specific faust2appl scripts.
+ '';
+ };
+
+ };
+
+ # Default values for faust2appl.
+ faust2ApplBase =
+ { baseName
+ , dir ? "tools/faust2appls"
+ , scripts ? [ baseName ]
+ , ...
+ }@args:
+
+ args // {
+ name = "${baseName}-${version}";
+
+ inherit src;
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p "$out/bin"
+ for script in ${concatStringsSep " " scripts}; do
+ cp "${dir}/$script" "$out/bin/"
+ done
+
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ # For the faust2appl script, change 'faustpath' and
+ # 'faustoptflags' to absolute paths.
+ for script in "$out"/bin/*; do
+ substituteInPlace "$script" \
+ --replace ". faustpath" ". '${faust}/bin/faustpath'" \
+ --replace ". faustoptflags" ". '${faust}/bin/faustoptflags'"
+ done
+ '';
+
+ meta = meta // {
+ description = "The ${baseName} script, part of faust functional programming language for realtime audio signal processing";
+ };
+ };
+
+ # Some 'faust2appl' scripts, such as faust2alsa, run faust to
+ # generate cpp code, then invoke the c++ compiler to build the code.
+ # This builder wraps these scripts in parts of the stdenv such that
+ # when the scripts are called outside any nix build, they behave as
+ # if they were running inside a nix build in terms of compilers and
+ # paths being configured (e.g. rpath is set so that compiled
+ # binaries link to the libs inside the nix store)
+ #
+ # The function takes two main args: the appl name (e.g.
+ # 'faust2alsa') and an optional list of propagatedBuildInputs. It
+ # returns a derivation that contains only the bin/${appl} script,
+ # wrapped up so that it will run as if it was inside a nix build
+ # with those build inputs.
+ #
+ # The build input 'faust' is automatically added to the
+ # propagatedBuildInputs.
+ wrapWithBuildEnv =
+ { baseName
+ , propagatedBuildInputs ? [ ]
+ , ...
+ }@args:
+
+ stdenv.mkDerivation ((faust2ApplBase args) // {
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ makeWrapper ];
+
+ propagatedBuildInputs = [ faust ] ++ propagatedBuildInputs;
+
+ postFixup = ''
+
+ # export parts of the build environment
+ for script in "$out"/bin/*; do
+ wrapProgram "$script" \
+ --set FAUSTLIB "${faust}/lib/faust" \
+ --set FAUSTINC "${faust}/include/faust" \
+ --prefix PATH : "$PATH" \
+ --prefix PKG_CONFIG_PATH : "$PKG_CONFIG_PATH" \
+ --set NIX_CFLAGS_COMPILE "$NIX_CFLAGS_COMPILE" \
+ --set NIX_LDFLAGS "$NIX_LDFLAGS"
+ done
+ '';
+ });
+
+ # Builder for 'faust2appl' scripts, such as faust2firefox that
+ # simply need to be wrapped with some dependencies on PATH.
+ #
+ # The build input 'faust' is automatically added to the PATH.
+ wrap =
+ { baseName
+ , runtimeInputs ? [ ]
+ , ...
+ }@args:
+
+ let
+
+ runtimePath = concatStringsSep ":" (map (p: "${p}/bin") ([ faust ] ++ runtimeInputs));
+
+ in stdenv.mkDerivation ((faust2ApplBase args) // {
+
+ buildInputs = [ makeWrapper ];
+
+ postFixup = ''
+ for script in "$out"/bin/*; do
+ wrapProgram "$script" --prefix PATH : "${runtimePath}"
+ done
+ '';
+
+ });
+
+in faust
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2.nix
new file mode 100644
index 000000000000..1c096374a42b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2.nix
@@ -0,0 +1,222 @@
+{ stdenv
+, coreutils
+, fetchFromGitHub
+, makeWrapper
+, pkgconfig
+, cmake
+, llvm
+, emscripten
+, openssl
+, libsndfile
+, libmicrohttpd
+, gnutls
+, libtasn1
+, p11-kit
+, vim
+, which
+}:
+
+with stdenv.lib.strings;
+
+let
+
+ version = "unstable-2020-08-27";
+
+ src = fetchFromGitHub {
+ owner = "grame-cncm";
+ repo = "faust";
+ rev = "c10f316fa90f338e248787ebf55e3795c3a0d70e";
+ sha256 = "068pm04ddafbsj2r8akdpqyzb0m8mp9ql0rgi83hcqs4ndr8v7sb";
+ fetchSubmodules = true;
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://faust.grame.fr/";
+ downloadPage = "https://github.com/grame-cncm/faust/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ magnetophon pmahoney ];
+ };
+
+ faust = stdenv.mkDerivation {
+
+ pname = "faust";
+ inherit version;
+
+ inherit src;
+
+ nativeBuildInputs = [ makeWrapper pkgconfig cmake vim which ];
+ buildInputs = [ llvm emscripten openssl libsndfile libmicrohttpd gnutls libtasn1 p11-kit ];
+
+
+ passthru = {
+ inherit wrap wrapWithBuildEnv;
+ };
+
+
+ preConfigure = ''
+ cd build
+ '';
+
+ cmakeFlags = ''
+ -C ../backends/all.cmake -C ../targets/all.cmake ..
+ '';
+
+ postInstall = ''
+ # syntax error when eval'd directly
+ pattern="faust2!(*@(atomsnippets|graph|graphviewer|md|plot|sig|sigviewer|svg))"
+ (shopt -s extglob; rm "$out"/bin/$pattern)
+ '';
+
+ postFixup = ''
+ # The 'faustoptflags' is 'source'd into other faust scripts and
+ # not used as an executable, so patch 'uname' usage directly
+ # rather than use makeWrapper.
+ substituteInPlace "$out"/bin/faustoptflags \
+ --replace uname "${coreutils}/bin/uname"
+
+ # wrapper for scripts that don't need faust.wrap*
+ for script in "$out"/bin/faust2*; do
+ wrapProgram "$script" \
+ --prefix PATH : "$out"/bin
+ done
+ '';
+
+ meta = meta // {
+ description = "A functional programming language for realtime audio signal processing";
+ longDescription = ''
+ FAUST (Functional Audio Stream) is a functional programming
+ language specifically designed for real-time signal processing
+ and synthesis. FAUST targets high-performance signal processing
+ applications and audio plug-ins for a variety of platforms and
+ standards.
+ The Faust compiler translates DSP specifications into very
+ efficient C++ code. Thanks to the notion of architecture,
+ FAUST programs can be easily deployed on a large variety of
+ audio platforms and plugin formats (jack, alsa, ladspa, maxmsp,
+ puredata, csound, supercollider, pure, vst, coreaudio) without
+ any change to the FAUST code.
+
+ This package has just the compiler, libraries, and headers.
+ Install faust2* for specific faust2appl scripts.
+ '';
+ };
+
+ };
+
+ # Default values for faust2appl.
+ faust2ApplBase =
+ { baseName
+ , dir ? "tools/faust2appls"
+ , scripts ? [ baseName ]
+ , ...
+ }@args:
+
+ args // {
+ name = "${baseName}-${version}";
+
+ inherit src;
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p "$out/bin"
+ for script in ${concatStringsSep " " scripts}; do
+ cp "${dir}/$script" "$out/bin/"
+ done
+
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ # For the faust2appl script, change 'faustpath' and
+ # 'faustoptflags' to absolute paths.
+ for script in "$out"/bin/*; do
+ substituteInPlace "$script" \
+ --replace " error " "echo"
+ done
+ '';
+
+ meta = meta // {
+ description = "The ${baseName} script, part of faust functional programming language for realtime audio signal processing";
+ };
+ };
+
+ # Some 'faust2appl' scripts, such as faust2alsa, run faust to
+ # generate cpp code, then invoke the c++ compiler to build the code.
+ # This builder wraps these scripts in parts of the stdenv such that
+ # when the scripts are called outside any nix build, they behave as
+ # if they were running inside a nix build in terms of compilers and
+ # paths being configured (e.g. rpath is set so that compiled
+ # binaries link to the libs inside the nix store)
+ #
+ # The function takes two main args: the appl name (e.g.
+ # 'faust2alsa') and an optional list of propagatedBuildInputs. It
+ # returns a derivation that contains only the bin/${appl} script,
+ # wrapped up so that it will run as if it was inside a nix build
+ # with those build inputs.
+ #
+ # The build input 'faust' is automatically added to the
+ # propagatedBuildInputs.
+ wrapWithBuildEnv =
+ { baseName
+ , propagatedBuildInputs ? [ ]
+ , ...
+ }@args:
+
+ stdenv.mkDerivation ((faust2ApplBase args) // {
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ makeWrapper ];
+
+ propagatedBuildInputs = [ faust ] ++ propagatedBuildInputs;
+
+ libPath = stdenv.lib.makeLibraryPath propagatedBuildInputs;
+
+ postFixup = ''
+
+ # export parts of the build environment
+ for script in "$out"/bin/*; do
+ wrapProgram "$script" \
+ --set FAUSTLDDIR "${faust}/lib" \
+ --set FAUSTLIB "${faust}/share/faust" \
+ --set FAUSTINC "${faust}/include/faust" \
+ --set FAUSTARCH "${faust}/share/faust" \
+ --prefix PATH : "$PATH" \
+ --prefix PKG_CONFIG_PATH : "$PKG_CONFIG_PATH" \
+ --set NIX_CFLAGS_COMPILE "$NIX_CFLAGS_COMPILE" \
+ --set NIX_LDFLAGS "$NIX_LDFLAGS -lpthread" \
+ --prefix LIBRARY_PATH $libPath
+ done
+ '';
+ });
+
+ # Builder for 'faust2appl' scripts, such as faust2firefox that
+ # simply need to be wrapped with some dependencies on PATH.
+ #
+ # The build input 'faust' is automatically added to the PATH.
+ wrap =
+ { baseName
+ , runtimeInputs ? [ ]
+ , ...
+ }@args:
+
+ let
+
+ runtimePath = concatStringsSep ":" (map (p: "${p}/bin") ([ faust ] ++ runtimeInputs));
+
+ in stdenv.mkDerivation ((faust2ApplBase args) // {
+
+ buildInputs = [ makeWrapper ];
+
+ postFixup = ''
+ for script in "$out"/bin/*; do
+ wrapProgram "$script" --prefix PATH : "${runtimePath}"
+ done
+ '';
+
+ });
+
+in faust
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix
new file mode 100644
index 000000000000..8ac26e488b37
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix
@@ -0,0 +1,15 @@
+{ faust
+, alsaLib
+, qt4
+}:
+
+faust.wrapWithBuildEnv {
+
+ baseName = "faust2alqt";
+
+ propagatedBuildInputs = [
+ alsaLib
+ qt4
+ ];
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix
new file mode 100644
index 000000000000..6af5af9bbafb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix
@@ -0,0 +1,29 @@
+{ faust
+, alsaLib
+, atk
+, cairo
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gtk2
+, pango
+}:
+
+faust.wrapWithBuildEnv {
+
+ baseName = "faust2alsa";
+
+ propagatedBuildInputs = [
+ alsaLib
+ atk
+ cairo
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gtk2
+ pango
+ ];
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2csound.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2csound.nix
new file mode 100644
index 000000000000..eb5e5831cddd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2csound.nix
@@ -0,0 +1,20 @@
+{ faust
+, csound
+}:
+
+faust.wrapWithBuildEnv {
+
+ baseName = "faust2csound";
+
+ propagatedBuildInputs = [
+ csound
+ ];
+
+ # faust2csound generated .cpp files have
+ # #include "csdl.h"
+ # but that file is in the csound/ subdirectory
+ preFixup = ''
+ NIX_CFLAGS_COMPILE="$(printf '%s' "$NIX_CFLAGS_COMPILE" | sed 's%${csound}/include%${csound}/include/csound%')"
+ '';
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2firefox.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2firefox.nix
new file mode 100644
index 000000000000..b2cc6f464575
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2firefox.nix
@@ -0,0 +1,14 @@
+{ faust
+, xdg_utils
+}:
+
+# This just runs faust2svg, then attempts to open a browser using
+# 'xdg-open'.
+
+faust.wrap {
+
+ baseName = "faust2firefox";
+
+ runtimeInputs = [ xdg_utils ];
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
new file mode 100644
index 000000000000..dd4cdd29c663
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
@@ -0,0 +1,28 @@
+{ faust
+, gtk2
+, jack2Full
+, alsaLib
+, opencv
+, libsndfile
+, which
+}:
+
+faust.wrapWithBuildEnv {
+
+ baseName = "faust2jack";
+
+ scripts = [
+ "faust2jack"
+ "faust2jackconsole"
+ ];
+
+ propagatedBuildInputs = [
+ gtk2
+ jack2Full
+ alsaLib
+ opencv
+ libsndfile
+ which
+ ];
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jackrust.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jackrust.nix
new file mode 100644
index 000000000000..2562237424e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jackrust.nix
@@ -0,0 +1,18 @@
+{ stdenv
+, faust
+, libjack2
+, cargo
+, binutils
+, gcc
+, gnumake
+, openssl
+, pkgconfig
+
+}:
+
+faust.wrapWithBuildEnv {
+
+ baseName = "faust2jackrust";
+
+ propagatedBuildInputs = [ libjack2 cargo binutils gcc gnumake openssl pkgconfig ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
new file mode 100644
index 000000000000..76e4b5ce8dbb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
@@ -0,0 +1,26 @@
+{ faust
+, jack2Full
+, qt4
+, libsndfile
+, alsaLib
+, which
+}:
+
+faust.wrapWithBuildEnv {
+
+ baseName = "faust2jaqt";
+
+ scripts = [
+ "faust2jaqt"
+ "faust2jackserver"
+ ];
+
+ propagatedBuildInputs = [
+ jack2Full
+ qt4
+ libsndfile
+ alsaLib
+ which
+ ];
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2ladspa.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2ladspa.nix
new file mode 100644
index 000000000000..67de98cab9a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2ladspa.nix
@@ -0,0 +1,12 @@
+{ boost
+, faust
+, ladspaH
+}:
+
+faust.wrapWithBuildEnv {
+
+ baseName = "faust2ladspa";
+
+ propagatedBuildInputs = [ boost ladspaH ];
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2lv2.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2lv2.nix
new file mode 100644
index 000000000000..51d956b14036
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faust2lv2.nix
@@ -0,0 +1,15 @@
+{ boost
+, faust
+, lv2
+, qt4
+, which
+
+}:
+
+faust.wrapWithBuildEnv {
+
+ baseName = "faust2lv2";
+
+ propagatedBuildInputs = [ boost lv2 qt4 which ];
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faustlive.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
new file mode 100644
index 000000000000..907ea3ed7caf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub
+, llvm, qt48Full, qrencode, libmicrohttpd_0_9_70, libjack2, alsaLib, faust, curl
+, bc, coreutils, which, libsndfile, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+ pname = "faustlive";
+ version = "2.5.4";
+ src = fetchFromGitHub {
+ owner = "grame-cncm";
+ repo = "faustlive";
+ rev = version;
+ sha256 = "0npn8fvq8iafyamq4wrj1k1bmk4xd0my2sp3gi5jdjfx6hc1sm3n";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [
+ llvm qt48Full qrencode libmicrohttpd_0_9_70 libjack2 alsaLib faust curl
+ bc coreutils which libsndfile pkg-config
+ ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postPatch = "cd Build";
+
+ installPhase = ''
+ install -d "$out/bin"
+ install -d "$out/share/applications"
+ install FaustLive/FaustLive "$out/bin"
+ install rsrc/FaustLive.desktop "$out/share/applications"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A standalone just-in-time Faust compiler";
+ longDescription = ''
+ FaustLive is a standalone just-in-time Faust compiler. It tries to bring
+ together the convenience of a standalone interpreted language with the
+ efficiency of a compiled language. It's ideal for fast prototyping.
+ '';
+ homepage = "https://faust.grame.fr/";
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/fdkaac/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
new file mode 100644
index 000000000000..8969f3a47b23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, autoreconfHook, fetchFromGitHub, fdk_aac }:
+
+stdenv.mkDerivation rec {
+ pname = "fdkaac";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "nu774";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "02mzx4bird2q5chzpavfc9pg259hwfvq6px85xarm59vmj9nryb6";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = [ fdk_aac ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Command line encoder frontend for libfdk-aac encder";
+ longDescription = ''
+ fdkaac reads linear PCM audio in either WAV, raw PCM, or CAF format,
+ and encodes it into either M4A / AAC file.
+ '';
+ homepage = "https://github.com/nu774/fdkaac";
+ license = licenses.zlib;
+ platforms = platforms.all;
+ maintainers = [ maintainers.lunik1 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/flac/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/flac/default.nix
new file mode 100644
index 000000000000..bd8b9bea82b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/flac/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libogg }:
+
+stdenv.mkDerivation rec {
+ name = "flac-1.3.3";
+
+ src = fetchurl {
+ url = "http://downloads.xiph.org/releases/flac/${name}.tar.xz";
+ sha256 = "0j0p9sf56a2fm2hkjnf7x3py5ir49jyavg4q5zdyd7bcf6yq4gi1";
+ };
+
+ buildInputs = [ libogg ];
+
+ #doCheck = true; # takes lots of time
+
+ outputs = [ "bin" "dev" "out" "man" "doc" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://xiph.org/flac/";
+ description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
+ platforms = platforms.all;
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/flac123/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/flac123/default.nix
new file mode 100644
index 000000000000..6f13b710effc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/flac123/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, autoreconfHook, flac, libao, libogg, popt }:
+
+stdenv.mkDerivation rec {
+ pname = "flac123";
+ version = "0.0.12";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/flac-tools/${pname}-${version}-release.tar.gz";
+ sha256 = "0zg4ahkg7v81za518x32wldf42g0rrvlrcqhrg9sv3li9bayyxhr";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ flac libao libogg popt ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://flac-tools.sourceforge.net/";
+ description = "A command-line program for playing FLAC audio files";
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/flacon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/flacon/default.nix
new file mode 100644
index 000000000000..aaa0712c42fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/flacon/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, lib, fetchFromGitHub, cmake, libuchardet, pkgconfig, shntool, flac
+, opusTools, vorbis-tools, mp3gain, lame, wavpack, vorbisgain, gtk3, qtbase
+, qttools, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "flacon";
+ version = "6.1.0";
+
+ src = fetchFromGitHub {
+ owner = "flacon";
+ repo = "flacon";
+ rev = "v${version}";
+ sha256 = "04yp3aym7h70xjni9ancqv5lc4zds5a8dgw3fzgqs8k5nmh074gv";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
+ buildInputs = [ qtbase qttools libuchardet ];
+
+ bin_path = lib.makeBinPath [
+ shntool
+ flac
+ opusTools
+ vorbis-tools
+ mp3gain
+ lame
+ wavpack
+ vorbisgain
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/flacon \
+ --suffix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}" \
+ --prefix PATH : "$bin_path";
+ '';
+
+ meta = with stdenv.lib; {
+ description =
+ "Extracts audio tracks from an audio CD image to separate tracks";
+ homepage = "https://flacon.github.io/";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ snglth ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
new file mode 100644
index 000000000000..9d9772cde29a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, cmake
+, alsaLib, glib, libjack2, libsndfile, libpulseaudio
+, AudioUnit, CoreAudio, CoreMIDI, CoreServices
+, version ? "2"
+}:
+
+let
+ versionMap = {
+ "1" = {
+ fluidsynthVersion = "1.1.11";
+ sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh";
+ };
+ "2" = {
+ fluidsynthVersion = "2.0.6";
+ sha256 = "0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a";
+ };
+ };
+in
+
+with versionMap.${version};
+
+stdenv.mkDerivation {
+ name = "fluidsynth-${fluidsynthVersion}";
+ version = fluidsynthVersion;
+
+ src = fetchFromGitHub {
+ owner = "FluidSynth";
+ repo = "fluidsynth";
+ rev = "v${fluidsynthVersion}";
+ inherit sha256;
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+
+ buildInputs = [ glib libsndfile libpulseaudio libjack2 ]
+ ++ lib.optionals stdenv.isLinux [ alsaLib ]
+ ++ lib.optionals stdenv.isDarwin [ AudioUnit CoreAudio CoreMIDI CoreServices ];
+
+ cmakeFlags = [ "-Denable-framework=off" ];
+
+ meta = with lib; {
+ description = "Real-time software synthesizer based on the SoundFont 2 specifications";
+ homepage = "http://www.fluidsynth.org";
+ license = licenses.lgpl21Plus;
+ maintainers = with maintainers; [ goibhniu lovek323 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/fmit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/fmit/default.nix
new file mode 100644
index 000000000000..f173d2fe02b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/fmit/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, mkDerivation, fetchFromGitHub, fftw, qtbase, qtmultimedia, qmake, itstool, wrapQtAppsHook
+, alsaSupport ? true, alsaLib ? null
+, jackSupport ? false, libjack2 ? null
+, portaudioSupport ? false, portaudio ? null }:
+
+assert alsaSupport -> alsaLib != null;
+assert jackSupport -> libjack2 != null;
+assert portaudioSupport -> portaudio != null;
+
+with stdenv.lib;
+
+mkDerivation rec {
+ pname = "fmit";
+ version = "1.2.14";
+
+ src = fetchFromGitHub {
+ owner = "gillesdegottex";
+ repo = "fmit";
+ rev = "v${version}";
+ sha256 = "1q062pfwz2vr9hbfn29fv54ip3jqfd9r99nhpr8w7mn1csy38azx";
+ };
+
+ nativeBuildInputs = [ qmake itstool wrapQtAppsHook ];
+ buildInputs = [ fftw qtbase qtmultimedia ]
+ ++ optionals alsaSupport [ alsaLib ]
+ ++ optionals jackSupport [ libjack2 ]
+ ++ optionals portaudioSupport [ portaudio ];
+
+ postPatch = ''
+ substituteInPlace fmit.pro --replace '$$FMITVERSIONGITPRO' '${version}'
+ '';
+
+ preConfigure = ''
+ qmakeFlags="$qmakeFlags \
+ CONFIG+=${optionalString alsaSupport "acs_alsa"} \
+ CONFIG+=${optionalString jackSupport "acs_jack"} \
+ CONFIG+=${optionalString portaudioSupport "acs_portaudio"} \
+ PREFIXSHORTCUT=$out"
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Free Musical Instrument Tuner";
+ longDescription = ''
+ FMIT is a graphical utility for tuning musical instruments, with error
+ and volume history, and advanced features.
+ '';
+ homepage = "http://gillesdegottex.github.io/fmit/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/fmsynth/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/fmsynth/default.nix
new file mode 100644
index 000000000000..d957c7ec33d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/fmsynth/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, gtkmm2, lv2, lvtk, pkgconfig }:
+stdenv.mkDerivation {
+ pname = "fmsynth-unstable";
+ version = "2015-02-07";
+ src = fetchFromGitHub {
+ owner = "Themaister";
+ repo = "libfmsynth";
+ rev = "9ffa1d2fea287f1209b210d2dbde2f0f60f37176";
+ sha256 = "1bk0bpr069hzx2508rgfbwpxiqgr7dmdkhqdywmd2i4rmibgrm1q";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtkmm2 lv2 lvtk ];
+
+ buildPhase = ''
+ cd lv2
+ substituteInPlace GNUmakefile --replace "/usr/lib/lv2" "$out/lib/lv2"
+ make SIMD=0
+ '';
+
+ preInstall = "mkdir -p $out/lib/lv2";
+
+ meta = {
+ description = "a flexible 8 operator FM synthesizer for LV2";
+ longDescription = ''
+ The synth core supports:
+
+ - Arbitrary amounts of polyphony
+ - 8 operators
+ - No fixed "algorithms"
+ - Arbitrary modulation, every operator can modulate any other operator, even itself
+ - Arbitrary carrier selection, every operator can be a carrier
+ - Sine LFO, separate LFO per voice, modulates amplitude and frequency of operators
+ - Envelope per operator
+ - Carrier stereo panning
+ - Velocity sensitivity per operator
+ - Mod wheel sensitivity per operator
+ - Pitch bend
+ - Keyboard scaling
+ - Sustain, sustained keys can overlap each other for a very rich sound
+ - Full floating point implementation optimized for SIMD
+ - Hard real-time constraints
+ '';
+ homepage = "https://github.com/Themaister/libfmsynth";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/fomp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/fomp/default.nix
new file mode 100644
index 000000000000..a712eef06501
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/fomp/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, lv2, pkgconfig, python2, wafHook }:
+
+stdenv.mkDerivation rec {
+ pname = "fomp";
+ version = "1.2.0";
+
+ src = fetchurl {
+ url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
+ sha256 = "01ld6yjrqrki6zwac8lmwmqkr5rv0sdham4pfbfkjwck4hi1gqqw";
+ };
+
+ nativeBuildInputs = [ pkgconfig wafHook ];
+ buildInputs = [ lv2 python2 ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://drobilla.net/software/fomp/";
+ description = "An LV2 port of the MCP, VCO, FIL, and WAH plugins by Fons Adriaensen";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
new file mode 100644
index 000000000000..4ec69c62b1ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, libjack2, gtk2, lv2, faust, pkgconfig }:
+
+stdenv.mkDerivation {
+ version = "git-2015-05-21";
+ pname = "foo-yc20";
+ src = fetchFromGitHub {
+ owner = "sampov2";
+ repo = "foo-yc20";
+ rev = "edd9d14c91229429b14270a181743e1046160ca8";
+ sha256 = "0i8261n95n4xic766h70xkrpbvw3sag96n1883ahmg6h7yb94avq";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libjack2 gtk2 lv2 faust ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ # remove lv2 until https://github.com/sampov2/foo-yc20/issues/6 is resolved
+ postInstallFixup = "rm -rf $out/lib/lv2";
+
+ meta = with stdenv.lib; {
+ broken = true; # see: https://github.com/sampov2/foo-yc20/issues/7
+ description = "A Faust implementation of a 1969 designed Yamaha combo organ, the YC-20";
+ homepage = "https://github.com/sampov2/foo-yc20";
+ license = with licenses; [ bsd3 lgpl21 mpl11 ] ;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/freewheeling/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/freewheeling/default.nix
new file mode 100644
index 000000000000..071a4a9caab5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/freewheeling/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, gnutls, freetype
+, SDL, SDL_gfx, SDL_ttf, liblo, libxml2, alsaLib, libjack2, libvorbis
+, libSM, libsndfile, libogg, libtool
+}:
+let
+ makeSDLFlags = map (p: "-I${lib.getDev p}/include/SDL");
+in
+
+stdenv.mkDerivation rec {
+ pname = "freewheeling";
+ version = "0.6.6";
+
+ src = fetchFromGitHub {
+ owner = "free-wheeling";
+ repo = "freewheeling";
+ rev = "v${version}";
+ sha256 = "1xff5whr02cixihgd257dc70hnyf22j3zamvhsvg4lp7zq9l2in4";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook libtool ];
+ buildInputs = [
+ freetype SDL SDL_gfx SDL_ttf
+ liblo libxml2 libjack2 alsaLib libvorbis libsndfile libogg libSM
+ (gnutls.overrideAttrs (oldAttrs: {
+ configureFlags = oldAttrs.configureFlags ++ [ "--enable-openssl-compatibility" ];
+ }))
+ ];
+ NIX_CFLAGS_COMPILE = toString
+ (makeSDLFlags [ SDL SDL_ttf SDL_gfx ] ++ [ "-I${libxml2.dev}/include/libxml2" ]);
+
+ hardeningDisable = [ "format" ];
+
+ meta = {
+ description = "A live looping instrument with JACK and MIDI support";
+ longDescription = ''
+ Freewheeling allows us to build repetitive grooves
+ by sampling and directing loops from within spirited improvisation.
+
+ It works because, down to the core, it's built around
+ improv. We leave mice and menus, and dive into our own process
+ of making sound.
+
+ Freewheeling runs under macOS and Linux, and is open source
+ software, released under the GNU GPL license.
+ '' ;
+
+ homepage = "http://freewheeling.sourceforge.net";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.sepi ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/freqtweak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/freqtweak/default.nix
new file mode 100644
index 000000000000..046c8c8aac8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/freqtweak/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, pkg-config, fftwFloat, libjack2, libsigcxx, libxml2, wxGTK }:
+
+stdenv.mkDerivation rec {
+ pname = "freqtweak";
+ version = "unstable-2019-08-03";
+
+ src = fetchFromGitHub {
+ owner = "essej";
+ repo = pname;
+ rev = "d4205337558d36657a4ee6b3afb29358aa18c0fd";
+ sha256 = "10cq27mdgrrc54a40al9ahi0wqd0p2c1wxbdg518q8pzfxaxs5fi";
+ };
+
+ nativeBuildInputs = [ autoconf automake pkg-config ];
+ buildInputs = [ fftwFloat libjack2 libsigcxx libxml2 wxGTK ];
+
+ preConfigure = ''
+ sh autogen.sh
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = http://essej.net/freqtweak/;
+ description = "Realtime audio frequency spectral manipulation";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/friture/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/friture/default.nix
new file mode 100644
index 000000000000..e4bd79a08e31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/friture/default.nix
@@ -0,0 +1,46 @@
+{ lib, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
+
+let
+ py = python3Packages;
+in py.buildPythonApplication rec {
+ pname = "friture";
+ version = "unstable-2020-02-16";
+
+ src = fetchFromGitHub {
+ owner = "tlecomte";
+ repo = pname;
+ rev = "4460b4e72a9c55310d6438f294424b5be74fc0aa";
+ sha256 = "1pmxzq78ibifby3gbir1ah30mgsqv0y7zladf5qf3sl5r1as0yym";
+ };
+
+ nativeBuildInputs = (with py; [ numpy cython scipy ]) ++
+ [ wrapQtAppsHook ];
+
+ propagatedBuildInputs = with py; [
+ sounddevice
+ pyopengl
+ pyopengl-accelerate
+ docutils
+ numpy
+ pyqt5
+ appdirs
+ pyrr
+ rtmixer
+ ];
+
+ patches = [
+ ./unlock_constraints.patch
+ ];
+
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+
+ meta = with lib; {
+ description = "A real-time audio analyzer";
+ homepage = "http://friture.org/";
+ license = licenses.gpl3;
+ platforms = platforms.linux; # fails on Darwin
+ maintainers = [ maintainers.laikq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/friture/factorial.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/friture/factorial.patch
new file mode 100644
index 000000000000..de053802932d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/friture/factorial.patch
@@ -0,0 +1,13 @@
+diff --git a/friture/filter_design.py b/friture/filter_design.py
+index 9876c43..1cc749a 100644
+--- a/friture/filter_design.py
++++ b/friture/filter_design.py
+@@ -2,7 +2,7 @@
+ from numpy import pi, exp, arange, cos, sin, sqrt, zeros, ones, log, arange, set_printoptions
+ # the three following lines are a workaround for a bug with scipy and py2exe
+ # together. See http://www.pyinstaller.org/ticket/83 for reference.
+-from scipy.misc import factorial
++from scipy.special import factorial
+ import scipy
+ scipy.factorial = factorial
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/friture/unlock_constraints.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/friture/unlock_constraints.patch
new file mode 100644
index 000000000000..ab53f948a485
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/friture/unlock_constraints.patch
@@ -0,0 +1,34 @@
+diff --git a/setup.py b/setup.py
+index f31eeec..ac0927b 100644
+--- a/setup.py
++++ b/setup.py
+@@ -50,19 +50,19 @@ ext_modules = [LateIncludeExtension("friture_extensions.exp_smoothing_conv",
+ # these will be installed when calling 'pip install friture'
+ # they are also retrieved by 'requirements.txt'
+ install_requires = [
+- "sounddevice==0.3.14",
+- "rtmixer==0.1.0",
+- "PyOpenGL==3.1.4",
+- "PyOpenGL-accelerate==3.1.4",
+- "docutils==0.15.2",
+- "numpy==1.17.4",
+- "PyQt5==5.13.2",
+- "appdirs==1.4.3",
+- "pyrr==0.10.3",
++ "sounddevice>=0.3.14",
++ "rtmixer>=0.1.0",
++ "PyOpenGL>=3.1.4",
++ "PyOpenGL-accelerate>=3.1.4",
++ "docutils>=0.15.2",
++ "numpy>=1.17.4",
++ "PyQt5>=5.13.2",
++ "appdirs>=1.4.3",
++ "pyrr>=0.10.3",
+ ]
+
+ # Cython and numpy are needed when running setup.py, to build extensions
+-setup_requires=["numpy==1.17.4", "Cython==0.29.14"]
++setup_requires=["numpy>=1.17.4", "Cython>=0.29.14"]
+
+ with open(join(dirname(__file__), 'README.rst')) as f:
+ long_description = f.read()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
new file mode 100644
index 000000000000..7045d6811d38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, nixosTests
+, alsaLib
+, SDL2
+, libiconv
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ft2-clone";
+ version = "1.41_fix";
+
+ src = fetchFromGitHub {
+ owner = "8bitbubsy";
+ repo = "ft2-clone";
+ rev = "v${version}";
+ sha256 = "0c7jli79ckachl5n2rbhc4yzml8nc36pl9yzxcwgaz544q8pzmaa";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ SDL2 ]
+ ++ stdenv.lib.optional stdenv.isLinux alsaLib
+ ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+
+ passthru.tests = {
+ ft2-clone-starts = nixosTests.ft2-clone;
+ };
+
+ meta = with stdenv.lib; {
+ description = "A highly accurate clone of the classic Fasttracker II software for MS-DOS";
+ homepage = "https://16-bits.org/ft2.php";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ fgaz ];
+ # From HOW-TO-COMPILE.txt:
+ # > This code is NOT big-endian compatible
+ platforms = platforms.littleEndian;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/fverb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/fverb/default.nix
new file mode 100644
index 000000000000..289553795743
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/fverb/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+ pname = "fverb";
+ # no release yet: https://github.com/jpcima/fverb/issues/2
+ version = "unstable-2020-06-09";
+
+ src = fetchFromGitHub {
+ owner = "jpcima";
+ repo = pname;
+ rev = "462020e33e24c0204a375dc95e2c28654cc917b8";
+ sha256 = "12nl7qn7mnykk7v8q0j2n8kfq0xc46n0i45z6qcywspadwnncmd4";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ postPatch = ''
+ patchShebangs ./dpf/utils/generate-ttl.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A stereo variant of the reverberator by Jon Dattorro, for lv2";
+ homepage = "https://github.com/jpcima/fverb";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/game-music-emu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/game-music-emu/default.nix
new file mode 100644
index 000000000000..51f895ea2d5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/game-music-emu/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+ version = "0.6.1";
+ pname = "game-music-emu";
+
+ src = fetchurl {
+ url = "https://bitbucket.org/mpyne/game-music-emu/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "08fk7zddpn7v93d0fa7fcypx7hvgwx9b5psj9l6m8b87k2hbw4fw";
+ };
+
+ buildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://bitbucket.org/mpyne/game-music-emu/wiki/Home";
+ description = "A collection of video game music file emulators";
+ license = licenses.lgpl21Plus;
+ platforms = platforms.all;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gbsplay/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gbsplay/default.nix
new file mode 100644
index 000000000000..f89b8ed399b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gbsplay/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, libpulseaudio }:
+
+stdenv.mkDerivation {
+ name = "gbsplay-2016-12-17";
+
+ src = fetchFromGitHub {
+ owner = "mmitch";
+ repo = "gbsplay";
+ rev = "2c4486e17fd4f4cdea8c3fd79ae898c892616b70";
+ sha256 = "1214j67sr87zfhvym41cw2g823fmqh4hr451r7y1s9ql3jpjqhpz";
+ };
+
+ buildInputs = [ libpulseaudio ];
+
+ configureFlags =
+ [ "--without-test" "--without-contrib" "--disable-devdsp"
+ "--enable-pulse" "--disable-alsa" "--disable-midi"
+ "--disable-nas" "--disable-dsound" "--disable-i18n" ];
+
+ makeFlags = [ "tests=" ];
+
+ meta = with stdenv.lib; {
+ description = "gameboy sound player";
+ license = licenses.gpl1;
+ platforms = ["i686-linux" "x86_64-linux"];
+ maintainers = with maintainers; [ dasuxullebt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/geonkick/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/geonkick/default.nix
new file mode 100644
index 000000000000..804aaf75febe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/geonkick/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitLab, cmake, pkg-config, redkite, libsndfile, rapidjson
+, libjack2, lv2, libX11, cairo }:
+
+stdenv.mkDerivation rec {
+ pname = "geonkick";
+ version = "2.5.1";
+
+ src = fetchFromGitLab {
+ owner = "iurie-sw";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "14svwrxqw15j6wjy3x8s28yyrafa31bm7d1ns5h6gvpndccwc1kw";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+
+ buildInputs = [ redkite libsndfile rapidjson libjack2 lv2 libX11 cairo ];
+
+ # https://github.com/iurie-sw/geonkick/issues/120
+ cmakeFlags = [
+ "-DGKICK_REDKITE_SDK_PATH=${redkite}"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.com/iurie-sw/geonkick";
+ description = "A free software percussion synthesizer";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/giada/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/giada/default.nix
new file mode 100644
index 000000000000..1408deba97d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/giada/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, fltk
+, jansson
+, rtmidi
+, libsamplerate
+, libsndfile
+, jack2
+, alsaLib
+, libpulseaudio
+, libXpm
+, libXinerama
+, libXcursor
+, catch2
+, nlohmann_json
+}:
+
+stdenv.mkDerivation rec {
+ pname = "giada";
+ version = "0.16.4";
+
+ src = fetchFromGitHub {
+ owner = "monocasual";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0qyx0bvivlvly0vj5nnnbiks22xh13sqlw4mfgplq2lbbpgisigp";
+ };
+
+ configureFlags = [
+ "--target=linux"
+ "--enable-system-catch"
+ ];
+
+ nativeBuildInputs = [
+ autoreconfHook
+ ];
+
+ buildInputs = [
+ fltk
+ libsndfile
+ libsamplerate
+ jansson
+ rtmidi
+ libXpm
+ jack2
+ alsaLib
+ libpulseaudio
+ libXinerama
+ libXcursor
+ catch2
+ nlohmann_json
+ ];
+
+ postPatch = ''
+ sed -i 's:"deps/json/single_include/nlohmann/json\.hpp":<nlohmann/json.hpp>:' \
+ src/core/{conf,init,midiMapConf,patch}.cpp
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
+ homepage = "https://giadamusic.com/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ petabyteboy ];
+ platforms = platforms.all;
+ broken = stdenv.hostPlatform.isAarch64; # produces build failure on aarch64-linux
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gigedit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gigedit/default.nix
new file mode 100644
index 000000000000..08eec3135081
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gigedit/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, autoconf, automake, intltool, libtool, pkgconfig, which
+, docbook_xml_dtd_45, docbook_xsl, gtkmm2, libgig, libsndfile, libxslt
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gigedit";
+ version = "1.1.1";
+
+ src = fetchurl {
+ url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.bz2";
+ sha256 = "08db12crwf0dy1dbyrmivqqpg5zicjikqkmf2kb1ywpq0a9hcxrb";
+ };
+
+ preConfigure = "make -f Makefile.svn";
+
+ nativeBuildInputs = [ autoconf automake intltool libtool pkgconfig which ];
+
+ buildInputs = [ docbook_xml_dtd_45 docbook_xsl gtkmm2 libgig libsndfile libxslt ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.linuxsampler.org";
+ description = "Gigasampler file access library";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gjay/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gjay/default.nix
new file mode 100644
index 000000000000..9e016c68608b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gjay/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, mpd_clientlib, dbus-glib, audacious, gtk2, gsl
+, libaudclient }:
+
+stdenv.mkDerivation {
+ name = "gjay-0.3.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/gjay/gjay-0.3.2.tar.gz";
+ sha256 = "1a1vv4r0vnxjdyl0jyv7gga3zfd5azxlwjm1l6hjrf71lb228zn8";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ mpd_clientlib dbus-glib audacious gtk2 gsl libaudclient ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "Generates playlists such that each song sounds good following the previous song";
+ homepage = "http://gjay.sourceforge.net/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pSub ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gmpc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gmpc/default.nix
new file mode 100644
index 000000000000..7ae02ae38d85
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gmpc/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, libtool, intltool, pkgconfig, glib
+, gtk2, curl, mpd_clientlib, libsoup, gob2, vala, libunique
+, libSM, libICE, sqlite, hicolor-icon-theme, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gmpc";
+ version = "11.8.16";
+
+ libmpd = stdenv.mkDerivation {
+ name = "libmpd-11.8.17";
+ src = fetchurl {
+ url = "http://download.sarine.nl/Programs/gmpc/11.8/libmpd-11.8.17.tar.gz";
+ sha256 = "10vspwsgr8pwf3qp2bviw6b2l8prgdiswgv7qiqiyr0h1mmk487y";
+ };
+ patches = [ ./libmpd-11.8.17-remove-strndup.patch ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib ];
+ };
+
+ src = fetchurl {
+ url = "http://download.sarine.nl/Programs/gmpc/11.8/gmpc-11.8.16.tar.gz";
+ sha256 = "0b3bnxf98i5lhjyljvgxgx9xmb6p46cn3a9cccrng14nagri9556";
+ };
+
+ nativeBuildInputs = [ pkgconfig libtool intltool gob2 vala wrapGAppsHook ];
+ buildInputs = [
+ glib gtk2 curl mpd_clientlib libsoup
+ libunique libmpd libSM libICE sqlite hicolor-icon-theme
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://gmpclient.org";
+ description = "A GTK2 frontend for Music Player Daemon";
+ license = licenses.gpl2;
+ maintainers = [];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gmpc/libmpd-11.8.17-remove-strndup.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/gmpc/libmpd-11.8.17-remove-strndup.patch
new file mode 100644
index 000000000000..ad4fdc02ef3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gmpc/libmpd-11.8.17-remove-strndup.patch
@@ -0,0 +1,15 @@
+diff --git a/src/libmpd-internal.h b/src/libmpd-internal.h
+index c84c3a4..51be441 100644
+--- a/src/libmpd-internal.h
++++ b/src/libmpd-internal.h
+@@ -206,10 +206,6 @@ int mpd_unlock_conn(MpdObj *mi);
+ MpdData * mpd_misc_sort_tag_list(MpdData *data);
+
+
+-#ifndef HAVE_STRNDUP
+-char * strndup (const char *s, size_t n);
+-#endif
+-
+ int mpd_server_get_allowed_commands(MpdObj *mi);
+ typedef enum _MpdSearchType {
+ MPD_SEARCH_TYPE_NONE,
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gmu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gmu/default.nix
new file mode 100644
index 000000000000..bfe9f72d6646
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gmu/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, SDL, SDL_gfx, SDL_image, tremor, flac, mpg123, libmikmod
+, speex, ncurses
+, keymap ? "default"
+, conf ? "unknown"
+}:
+
+stdenv.mkDerivation rec {
+ name = "gmu-0.10.1";
+
+ src = fetchurl {
+ url = "http://wejp.k.vu/files/${name}.tar.gz";
+ sha256 = "03x0mc0xw2if0bpf0a15yprcyx1xccki039zvl2099dagwk6xskv";
+ };
+
+ buildInputs = [ SDL SDL_gfx SDL_image tremor flac mpg123 libmikmod speex ncurses ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ cp ${keymap}.keymap $out/share/gmu/default.keymap
+ cp gmuinput.${conf}.conf $out/share/gmu/gmuinput.conf
+ mkdir -p $out/etc/gmu
+ cp gmu.${conf}.conf $out/etc/gmu/gmu.conf
+ '';
+
+ meta = {
+ homepage = "http://wejp.k.vu/projects/gmu";
+ description = "Open source music player for portable gaming consoles and handhelds";
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
new file mode 100644
index 000000000000..cf3a8ae4197b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -0,0 +1,81 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitLab
+, fetchpatch
+, meson
+, ninja
+, gettext
+, cargo
+, rustc
+, python3
+, pkgconfig
+, glib
+, libhandy_0
+, gtk3
+, dbus
+, openssl
+, sqlite
+, gst_all_1
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+ version = "0.4.8";
+ pname = "gnome-podcasts";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "World";
+ repo = "podcasts";
+ rev = version;
+ sha256 = "0y2332zjq7vf1v38wzwz98fs19vpzy9kl7y0xbdzqr303l59hjb1";
+ };
+
+ cargoSha256 = "1jbii9k4bkrivdk1ffr6556q1sgk9j4jbzwnn8vbxmksyl1x328q";
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ gettext
+ cargo
+ rustc
+ python3
+ wrapGAppsHook
+ glib
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ libhandy_0
+ dbus
+ openssl
+ sqlite
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-bad
+ ];
+
+ # use Meson/Ninja phases
+ configurePhase = null;
+ buildPhase = null;
+ checkPhase = null;
+ installPhase = null;
+
+ # tests require network
+ doCheck = false;
+
+ postPatch = ''
+ chmod +x scripts/compile-gschema.py # patchShebangs requires executable file
+ patchShebangs scripts/compile-gschema.py scripts/cargo.sh scripts/test.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Listen to your favorite podcasts";
+ homepage = "https://wiki.gnome.org/Apps/Podcasts";
+ license = licenses.gpl3;
+ maintainers = teams.gnome.members;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/goattracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/goattracker/default.nix
new file mode 100644
index 000000000000..76b5617d23c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/goattracker/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchurl
+, unzip
+, copyDesktopItems
+, makeDesktopItem
+, imagemagick
+, SDL
+, isStereo ? false
+}:
+
+with stdenv.lib;
+let
+ pname = "goattracker" + optionalString isStereo "-stereo";
+ desktopItem = makeDesktopItem {
+ type = "Application";
+ name = pname;
+ desktopName = "GoatTracker 2" + optionalString isStereo " Stereo";
+ genericName = "Music Tracker";
+ exec = if isStereo
+ then "gt2stereo"
+ else "goattrk2";
+ icon = "goattracker";
+ categories = "AudioVideo;AudioVideoEditing;";
+ extraEntries = "Keywords=tracker;music;";
+ };
+
+in stdenv.mkDerivation rec {
+ inherit pname;
+ version = if isStereo
+ then "2.76" # stereo
+ else "2.75"; # normal
+
+ src = fetchurl {
+ url = "mirror://sourceforge/goattracker2/GoatTracker_${version}${optionalString isStereo "_Stereo"}.zip";
+ sha256 = if isStereo
+ then "12cz3780x5k047jqdv69n6rjgbfiwv67z850kfl4i37lxja432l7" # stereo
+ else "1km97nl7qvk6qc5l5j69wncbm76hf86j47sgzgr968423g0bxxlk"; # normal
+ };
+ sourceRoot = (if isStereo then "gt2stereo/trunk" else "goattrk2") + "/src";
+
+ nativeBuildInputs = [ copyDesktopItems unzip imagemagick ];
+ buildInputs = [ SDL ];
+
+ # PREFIX gets treated as BINDIR.
+ makeFlags = [ "PREFIX=$(out)/bin/" ];
+
+ # The zip contains some build artifacts.
+ prePatch = "make clean";
+
+ # The destination does not get created automatically.
+ preBuild = "mkdir -p $out/bin";
+
+ # Other files get installed during the build phase.
+ installPhase = ''
+ runHook preInstall
+
+ convert goattrk2.bmp goattracker.png
+ install -Dm644 goattracker.png $out/share/icons/hicolor/32x32/apps/goattracker.png
+
+ runHook postInstall
+ '';
+
+ desktopItems = [ desktopItem ];
+
+ meta = {
+ description = "A crossplatform music editor for creating Commodore 64 music. Uses reSID library by Dag Lem and supports alternatively HardSID & CatWeasel devices"
+ + optionalString isStereo " - Stereo version";
+ homepage = "https://cadaver.github.io/tools.html";
+ downloadPage = "https://sourceforge.net/projects/goattracker2/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix
new file mode 100644
index 000000000000..b4fe78dcbfcd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl
+, flac, expat, libidn, qtbase, qtwebkit, libvorbis }:
+assert stdenv.hostPlatform.system == "x86_64-linux";
+
+stdenv.mkDerivation rec {
+ version = "beta_1.0.467.4929-r0"; # friendly to nix-env version sorting algo
+ product = "google-musicmanager";
+ name = "${product}-${version}";
+
+ # When looking for newer versions, since google doesn't let you list their repo dirs,
+ # curl http://dl.google.com/linux/musicmanager/deb/dists/stable/Release
+ # fetch an appropriate packages file such as main/binary-amd64/Packages:
+ # curl http://dl.google.com/linux/musicmanager/deb/dists/stable/main/binary-amd64/Packages
+ # which will contain the links to all available *.debs for the arch.
+
+ src = fetchurl {
+ url = "http://dl.google.com/linux/musicmanager/deb/pool/main/g/google-musicmanager-beta/${name}_amd64.deb";
+ sha256 = "0yaprpbp44var88kdj1h11fqkhgcklixr69jyia49v9m22529gg2";
+ };
+
+ unpackPhase = ''
+ ar vx ${src}
+ tar xvf data.tar.xz
+ tar xvf control.tar.gz
+ '';
+
+ prePatch = ''
+ sed -i "s@\(Exec=\).*@\1$out/bin/google-musicmanager@" opt/google/musicmanager/google-musicmanager.desktop
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/lib
+ mkdir -p $out/share/applications
+
+ cp -r opt $out
+ find -name "*.so*" -exec cp "{}" $out/lib \;
+ ln -s $out/opt/google/musicmanager/google-musicmanager $out/bin
+ ln -s $out/opt/google/musicmanager/google-musicmanager.desktop $out/share/applications
+
+ for i in 16 32 48 128
+ do
+ iconDirectory=$out/usr/share/icons/hicolor/"$i"x"$i"/apps
+
+ mkdir -p $iconDirectory
+ ln -s $out/opt/google/musicmanager/product_logo_"$i".png $iconDirectory/google-musicmanager.png
+ done
+ '';
+
+ postFixup = ''
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$(patchelf --print-rpath $out/opt/google/musicmanager/minidump_upload):${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" \
+ $out/opt/google/musicmanager/minidump_upload
+
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$(patchelf --print-rpath $out/opt/google/musicmanager/MusicManager):$out/lib:${stdenv.lib.makeLibraryPath [
+ flac
+ expat
+ libidn
+ qtbase
+ qtwebkit
+ libvorbis
+ stdenv.cc.cc.lib
+ ]}" \
+ $out/opt/google/musicmanager/MusicManager
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Uploads music from your computer to Google Play";
+ homepage = "https://support.google.com/googleplay/answer/1229970";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ lovek323 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
new file mode 100644
index 000000000000..509d3ddcf751
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, alsaLib, atk, at-spi2-atk, cairo, cups, dbus, dpkg, expat, fontconfig, freetype
+, fetchurl, GConf, gdk-pixbuf, glib, gtk2, gtk3, libpulseaudio, makeWrapper, nspr
+, nss, pango, udev, xorg
+}:
+
+let
+ version = "4.7.1";
+
+ deps = [
+ alsaLib
+ atk
+ at-spi2-atk
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ GConf
+ gdk-pixbuf
+ glib
+ gtk2
+ gtk3
+ libpulseaudio
+ nspr
+ nss
+ pango
+ stdenv.cc.cc
+ udev
+ xorg.libX11
+ xorg.libxcb
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXScrnSaver
+ xorg.libXtst
+ ];
+
+in
+
+stdenv.mkDerivation {
+ pname = "google-play-music-desktop-player";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/releases/download/v${version}/google-play-music-desktop-player_${version}_amd64.deb";
+ sha256 = "1ljm9c5sv6wa7pa483yq03wq9j1h1jdh8363z5m2imz407yzgm5r";
+ };
+
+ dontBuild = true;
+ buildInputs = [ dpkg makeWrapper ];
+
+ unpackPhase = ''
+ dpkg -x $src .
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r ./usr/share $out
+ cp -r ./usr/bin $out
+
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ "$out/share/google-play-music-desktop-player/Google Play Music Desktop Player"
+
+ wrapProgram $out/bin/google-play-music-desktop-player \
+ --prefix LD_LIBRARY_PATH : "$out/share/google-play-music-desktop-player" \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath deps}"
+ '';
+
+ meta = {
+ homepage = "https://www.googleplaymusicdesktopplayer.com/";
+ description = "A beautiful cross platform Desktop Player for Google Play Music";
+ license = stdenv.lib.licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ stdenv.lib.maintainers.SuprDewd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gpodder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gpodder/default.nix
new file mode 100644
index 000000000000..4a21868f0972
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gpodder/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchFromGitHub, python3, python3Packages, intltool
+, glibcLocales, gnome3, gtk3, wrapGAppsHook
+, gobject-introspection
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "gpodder";
+ version = "3.10.16";
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "0pbpaasd7kj6y25nm45y1qyb9sxd4570f7g6zkfcpf6pa3nx7qkq";
+ };
+
+ patches = [
+ ./disable-autoupdate.patch
+ ];
+
+ postPatch = with stdenv.lib; ''
+ sed -i -re 's,^( *gpodder_dir *= *).*,\1"'"$out"'",' bin/gpodder
+ '';
+
+ nativeBuildInputs = [
+ intltool
+ wrapGAppsHook
+ glibcLocales
+ ];
+
+ buildInputs = [
+ python3
+ gobject-introspection
+ gnome3.adwaita-icon-theme
+ ];
+
+ checkInputs = with python3Packages; [
+ coverage minimock
+ ];
+
+ doCheck = true;
+
+ propagatedBuildInputs = with python3Packages; [
+ feedparser
+ dbus-python
+ mygpoclient
+ pygobject3
+ eyeD3
+ podcastparser
+ html5lib
+ gtk3
+ ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "share/applications/gpodder-url-handler.desktop"
+ "share/applications/gpodder.desktop"
+ "share/dbus-1/services/org.gpodder.service"
+ ];
+
+ preBuild = ''
+ export LC_ALL="en_US.UTF-8"
+ '';
+
+ installCheckPhase = ''
+ LC_ALL=C PYTHONPATH=./src:$PYTHONPATH python3 -m gpodder.unittests
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A podcatcher written in python";
+ longDescription = ''
+ gPodder downloads and manages free audio and video content (podcasts)
+ for you. Listen directly on your computer or on your mobile devices.
+ '';
+ homepage = "http://gpodder.org/";
+ license = licenses.gpl3;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ skeidel mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gpodder/disable-autoupdate.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/gpodder/disable-autoupdate.patch
new file mode 100644
index 000000000000..8f77518d03e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gpodder/disable-autoupdate.patch
@@ -0,0 +1,55 @@
+--- a/share/gpodder/ui/gtk/menus.ui
++++ b/share/gpodder/ui/gtk/menus.ui
+@@ -13,10 +13,6 @@
+ <attribute name="action">app.gotoMygpo</attribute>
+ <attribute name="label" translatable="yes">Go to gpodder.net</attribute>
+ </item>
+- <item>
+- <attribute name="action">app.checkForUpdates</attribute>
+- <attribute name="label" translatable="yes">Software updates</attribute>
+- </item>
+ </section>
+ <section>
+ <item>
+@@ -201,4 +197,4 @@
+ </submenu>
+ </menu>
+ </interface>
+-<!-- :noTabs=true:tabSize=2:indentSize=2: -->
+\ No newline at end of file
++<!-- :noTabs=true:tabSize=2:indentSize=2: -->
+--- a/src/gpodder/config.py
++++ b/src/gpodder/config.py
+@@ -91,13 +91,6 @@
+ 'retries': 3, # number of retries when downloads time out
+ },
+
+- # Software updates from gpodder.org
+- 'software_update': {
+- 'check_on_startup': True, # check for updates on start
+- 'last_check': 0, # unix timestamp of last update check
+- 'interval': 5, # interval (in days) to check for updates
+- },
+-
+ 'ui': {
+ # Settings for the Command-Line Interface
+ 'cli': {
+--- a/src/gpodder/gtkui/main.py
++++ b/src/gpodder/gtkui/main.py
+@@ -224,7 +224,7 @@
+ util.idle_add(self.subscribe_to_url, self.options.subscribe)
+ elif not self.channels:
+ self.on_itemUpdate_activate()
+- elif self.config.software_update.check_on_startup:
++ elif False and self.config.software_update.check_on_startup:
+ # Check for software updates from gpodder.org
+ diff = time.time() - self.config.software_update.last_check
+ if diff > (60 * 60 * 24) * self.config.software_update.interval:
+@@ -3288,6 +3288,7 @@
+ If silent=False, a message will be shown even if no updates are
+ available (set silent=False when the check is manually triggered).
+ """
++ return
+ try:
+ up_to_date, version, released, days = util.get_update_info()
+ except Exception as e:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch
new file mode 100644
index 000000000000..3a6296baaa64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch
@@ -0,0 +1,23 @@
+From 184c64718ee68b2738647f4a106b260c47f00437 Mon Sep 17 00:00:00 2001
+From: Sam Parkinson <sam@sam.today>
+Date: Thu, 26 Oct 2017 14:50:13 +1100
+Subject: [PATCH] Remove post-install script that hardcodes paths
+
+---
+ meson.build | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 25f3e1a..18b43bd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -21,4 +21,5 @@ subdir('src')
+ # subdir('tests')
+ # TODO: unit tests
+
+-meson.add_install_script('meson_post_install.sh')
++# This does not work for nixos; it hard-codes paths
++# meson.add_install_script('meson_post_install.sh')
+--
+2.14.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gradio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gradio/default.nix
new file mode 100644
index 000000000000..384235fc0650
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gradio/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchFromGitHub, pkgconfig
+, python3
+, gsettings-desktop-schemas
+, desktop-file-utils
+, glib
+, gtk3
+, intltool
+, libsoup
+, json-glib
+, wrapGAppsHook
+, meson
+, ninja
+, vala
+, sqlite
+, gst_all_1
+, gst_plugins ? with gst_all_1; [ gst-plugins-good gst-plugins-ugly ]
+}:
+let
+ version = "7.3";
+
+in stdenv.mkDerivation {
+ pname = "gradio";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "haecker-felix";
+ repo = "gradio";
+ rev = "v${version}";
+ sha256 = "00982dynl36lpsrx3mkd2a479zsrc8jvwfb8i7pi6w7fzzd8n8bl";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+
+ meson
+ ninja
+ vala
+
+ python3
+ ];
+ buildInputs = [
+ sqlite
+
+ glib
+ intltool
+ libsoup
+ json-glib
+
+ gtk3
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+
+ wrapGAppsHook
+ desktop-file-utils
+ gsettings-desktop-schemas
+ ] ++ gst_plugins;
+
+ enableParallelBuilding = true;
+ postInstall = ''
+ glib-compile-schemas "$out"/share/glib-2.0/schemas
+ '';
+
+ patches = [ ./0001-Remove-post-install-script-that-hardcodes-paths.patch ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/haecker-felix/gradio";
+ description = "A GTK3 app for finding and listening to internet radio stations";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.samdroid-apps ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/grandorgue/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/grandorgue/default.nix
new file mode 100644
index 000000000000..e2ba4ee2244e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/grandorgue/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchsvn, cmake, pkg-config, gcc, pkgconfig, fftwFloat, alsaLib
+, zlib, wavpack, wxGTK31, udev, jackaudioSupport ? false, libjack2
+, includeDemo ? true }:
+
+stdenv.mkDerivation rec {
+ pname = "grandorgue";
+ rev = "2333";
+ version = "0.3.1-r${rev}";
+ src = fetchsvn {
+ url = "https://svn.code.sf.net/p/ourorgan/svn/trunk";
+ inherit rev;
+ sha256 = "0xzjdc2g4gja2lpmn21xhdskv43qpbpzkbb05jfqv6ma2zwffzz1";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+
+ buildInputs = [ pkgconfig fftwFloat alsaLib zlib wavpack wxGTK31 udev ]
+ ++ lib.optional jackaudioSupport libjack2;
+
+ cmakeFlags = lib.optional (!jackaudioSupport) [
+ "-DRTAUDIO_USE_JACK=OFF"
+ "-DRTMIDI_USE_JACK=OFF"
+ ] ++ lib.optional (!includeDemo) "-DINSTALL_DEMO=OFF";
+
+ meta = {
+ description = "Virtual Pipe Organ Software";
+ homepage = "https://sourceforge.net/projects/ourorgan";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.puzzlewolf ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/greg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/greg/default.nix
new file mode 100644
index 000000000000..c243a81ac2eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/greg/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+with pythonPackages; buildPythonApplication rec {
+ pname = "greg";
+ version = "0.4.7";
+
+ disabled = !isPy3k;
+
+ src = fetchFromGitHub {
+ owner = "manolomartinez";
+ repo = pname;
+ rev = "v" + version;
+ sha256 = "0bdzgh2k1ppgcvqiasxwp3w89q44s4jgwjidlips3ixx1bzm822v";
+ };
+
+ propagatedBuildInputs = [ setuptools feedparser ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/manolomartinez/greg";
+ description = "A command-line podcast aggregator";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gspeech/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gspeech/default.nix
new file mode 100644
index 000000000000..21a4d6748bed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gspeech/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, fetchFromGitHub
+, python3
+, gtk3
+, wrapGAppsHook
+, glibcLocales
+, gobject-introspection
+, gettext
+, pango
+, gdk-pixbuf
+, librsvg
+, atk
+, libnotify
+, libappindicator-gtk3
+, gst_all_1
+, makeWrapper
+, picotts
+, sox
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "gSpeech";
+ version = "0.10.1";
+
+ src = fetchFromGitHub {
+ owner = "mothsart";
+ repo = pname;
+ rev = version;
+ sha256 = "1i0jwgxcn94nsi7c0ad0w77y04g04ka2szijzfqzqfnacdmdyrfc";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ gobject-introspection
+ pango
+ gdk-pixbuf
+ atk
+ gettext
+ libnotify
+ libappindicator-gtk3
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ makeWrapper
+ ];
+
+ buildInputs = [
+ glibcLocales
+ gtk3
+ python3
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pygobject3
+ librsvg
+ ];
+
+ postFixup = ''
+ wrapProgram $out/bin/gspeech --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
+ wrapProgram $out/bin/gspeech-cli --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
+ '';
+
+ strictDeps = false;
+
+ meta = with lib; {
+ description = "A minimal GUI for the Text To Speech 'Svox Pico'. Read clipboard or selected text in different languages and manage it : pause, stop, replay";
+ homepage = "https://github.com/mothsART/gSpeech";
+ maintainers = with maintainers; [ mothsart ];
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gtklick/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gtklick/default.nix
new file mode 100644
index 000000000000..a81834c1fff7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gtklick/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pythonPackages, gettext, klick}:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "gtklick";
+ version = "0.6.4";
+
+ src = fetchurl {
+ url = "http://das.nasophon.de/download/${pname}-${version}.tar.gz";
+ sha256 = "7799d884126ccc818678aed79d58057f8cf3528e9f1be771c3fa5b694d9d0137";
+ };
+
+ pythonPath = with pythonPackages; [
+ pyliblo
+ pyGtkGlade
+ ];
+
+ nativeBuildInputs = [ gettext ];
+
+ propagatedBuildInputs = [ klick ];
+
+ # wrapPythonPrograms breaks gtklick in the postFixup phase.
+ # To fix it, apply wrapPythonPrograms and then clean up the wrapped file.
+ postFixup = ''
+ wrapPythonPrograms
+
+ sed -i "/import sys; sys.argv\[0\] = 'gtklick'/d" $out/bin/.gtklick-wrapped
+ '';
+
+ meta = {
+ homepage = "http://das.nasophon.de/gtklick/";
+ description = "Simple metronome with an easy-to-use GTK interface";
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gtkpod/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gtkpod/default.nix
new file mode 100644
index 000000000000..1f293fe2d796
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gtkpod/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, wrapGAppsHook, intltool, libgpod, curl, flac,
+ gnome3, gtk3, gettext, perlPackages, flex, libid3tag, gdl,
+ libvorbis, gdk-pixbuf }:
+
+stdenv.mkDerivation rec {
+ version = "2.1.5";
+ pname = "gtkpod";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gtkpod/${pname}-${version}.tar.gz";
+ sha256 = "0xisrpx069f7bjkyc8vqxb4k0480jmx1wscqxr6cpq1qj6pchzd5";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook intltool ];
+ buildInputs = [
+ curl gettext
+ flex libgpod libid3tag flac libvorbis gtk3 gdk-pixbuf
+ gdl gnome3.adwaita-icon-theme gnome3.anjuta
+ ] ++ (with perlPackages; [ perl XMLParser ]);
+
+ patchPhase = ''
+ sed -i 's/which/type -P/' scripts/*.sh
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "GTK Manager for an Apple ipod";
+ homepage = "http://gtkpod.sourceforge.net";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.skeidel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/guitarix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/guitarix/default.nix
new file mode 100644
index 000000000000..d74f1c8728f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/guitarix/default.nix
@@ -0,0 +1,132 @@
+{ stdenv
+, fetchurl
+, avahi
+, bluez
+, boost
+, curl
+, eigen
+, fftw
+, gettext
+, glib
+, glib-networking
+, glibmm
+, gnome3
+, gsettings-desktop-schemas
+, gtk3
+, gtkmm3
+, hicolor-icon-theme
+, intltool
+, ladspaH
+, libav
+, libjack2
+, libsndfile
+, lilv
+, lrdf
+, lv2
+, pkgconfig
+, python2
+, sassc
+, serd
+, sord
+, sratom
+, wafHook
+, wrapGAppsHook
+, zita-convolver
+, zita-resampler
+, optimizationSupport ? false # Enable support for native CPU extensions
+}:
+
+let
+ inherit (stdenv.lib) optional;
+in
+
+stdenv.mkDerivation rec {
+ pname = "guitarix";
+ version = "0.41.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
+ sha256 = "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ hicolor-icon-theme
+ intltool
+ pkgconfig
+ python2
+ wafHook
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ avahi
+ bluez
+ boost
+ curl
+ eigen
+ fftw
+ glib
+ glib-networking.out
+ glibmm
+ gnome3.adwaita-icon-theme
+ gsettings-desktop-schemas
+ gtk3
+ gtkmm3
+ ladspaH
+ libav
+ libjack2
+ libsndfile
+ lilv
+ lrdf
+ lv2
+ sassc
+ serd
+ sord
+ sratom
+ zita-convolver
+ zita-resampler
+ ];
+
+ # this doesnt build, probably because we have the wrong faust version:
+ # "--faust"
+ # aproved versions are 2.20.2 and 2.15.11
+ wafConfigureFlags = [
+ "--no-faust"
+ "--no-font-cache-update"
+ "--shared-lib"
+ "--no-desktop-update"
+ "--enable-nls"
+ "--install-roboto-font"
+ ] ++ optional optimizationSupport "--optimization";
+
+ meta = with stdenv.lib; {
+ description = "A virtual guitar amplifier for Linux running with JACK";
+ longDescription = ''
+ guitarix is a virtual guitar amplifier for Linux running with
+ JACK (Jack Audio Connection Kit). It is free as in speech and
+ free as in beer. Its free sourcecode allows to build it for
+ other UNIX-like systems also, namely for BSD and for MacOSX.
+
+ It takes the signal from your guitar as any real amp would do:
+ as a mono-signal from your sound card. Your tone is processed by
+ a main amp and a rack-section. Both can be routed separately and
+ deliver a processed stereo-signal via JACK. You may fill the
+ rack with effects from more than 25 built-in modules spanning
+ from a simple noise-gate to brain-slashing modulation-fx like
+ flanger, phaser or auto-wah. Your signal is processed with
+ minimum latency. On any properly set-up Linux-system you do not
+ need to wait for more than 10 milli-seconds for your playing to
+ be delivered, processed by guitarix.
+
+ guitarix offers the range of sounds you would expect from a
+ full-featured universal guitar-amp. You can get crisp
+ clean-sounds, nice overdrive, fat distortion and a diversity of
+ crazy sounds never heard before.
+ '';
+ homepage = "http://guitarix.sourceforge.net/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ astsmtl goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gwc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gwc/default.nix
new file mode 100644
index 000000000000..d9631ac45e6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gwc/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, alsaLib
+, libpulseaudio
+, gtk2
+, hicolor-icon-theme
+, libsndfile
+, fftw
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gwc";
+ version = "0.22-04";
+
+ src = fetchFromGitHub {
+ owner = "AlisterH";
+ repo = pname;
+ rev = version;
+ sha256 = "0xvfra32dchnnyf9kj5s5xmqhln8jdrc9f0040hjr2dsb58y206p";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkg-config
+ ];
+
+ buildInputs = [
+ alsaLib
+ libpulseaudio
+ gtk2
+ hicolor-icon-theme
+ libsndfile
+ fftw
+ ];
+
+ enableParallelBuilding = false; # Fails to generate machine.h in time.
+
+ meta = with stdenv.lib; {
+ description = "GUI application for removing noise (hiss, pops and clicks) from audio files";
+ homepage = "https://github.com/AlisterH/gwc/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gxmatcheq-lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gxmatcheq-lv2/default.nix
new file mode 100644
index 000000000000..b2d99e0eba86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gxmatcheq-lv2/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, xorg, xorgproto, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "GxMatchEQ.lv2";
+ version = "0.1";
+
+ src = fetchFromGitHub {
+ owner = "brummer10";
+ repo = pname;
+ rev = "V${version}";
+ sha256 = "0azdmgzqwjn26nx38iw13666a1i4y2bv39wk89pf6ihdi46klf72";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 xorgproto cairo lv2
+ ];
+
+ # error: format not a string literal and no format arguments [-Werror=format-security]
+ hardeningDisable = [ "format" ];
+
+ installFlags = [ "INSTALL_DIR=$(out)/lib/lv2" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/brummer10/GxMatchEQ.lv2";
+ description = "Matching Equalizer to apply EQ curve from one source to another source";
+ maintainers = [ maintainers.magnetophon ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
new file mode 100644
index 000000000000..fa80611fc280
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, xorg, xorgproto, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "GxPlugins.lv2";
+ version = "0.8";
+
+ src = fetchFromGitHub {
+ owner = "brummer10";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "11iv7bwvvspm74pisqvcpsxpg9xi6b08hq4i8q67mri4mvy9hmal";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 xorgproto cairo lv2
+ ];
+
+ installFlags = [ "INSTALL_DIR=$(out)/lib/lv2" ];
+
+ configurePhase = ''
+ for i in GxBoobTube GxValveCaster; do
+ substituteInPlace $i.lv2/Makefile --replace "\$(shell which echo) -e" "echo -e"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/brummer10/GxPlugins.lv2";
+ description = "A set of extra lv2 plugins from the guitarix project";
+ maintainers = [ maintainers.magnetophon ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
new file mode 100644
index 000000000000..5fbfdc787eb7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub
+, alsaLib, freetype, xorg, curl, libGL, libjack2, gnome3
+, pkgconfig, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "helio-workstation";
+ version = "3.1";
+
+ src = fetchFromGitHub {
+ owner = "helio-fm";
+ repo = pname;
+ rev = version;
+ fetchSubmodules = true;
+ sha256 = "10pna4k43g648gapviykq2zk82iwy5rqff4lbfh5vzxqpg5v4ma6";
+ };
+
+ buildInputs = [
+ alsaLib freetype xorg.libX11 xorg.libXext xorg.libXinerama xorg.libXrandr
+ xorg.libXcursor xorg.libXcomposite curl libGL libjack2 gnome3.zenity
+ ];
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+ preBuild = ''
+ cd Projects/LinuxMakefile
+ substituteInPlace Makefile --replace alsa "alsa jack"
+ '';
+ buildFlags = [ "CONFIG=Release64" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ install -Dm755 build/Helio $out/bin
+ wrapProgram $out/bin/Helio --prefix PATH ":" ${gnome3.zenity}/bin
+
+ mkdir -p $out/share
+ cp -r ../Deployment/Linux/Debian/x64/usr/share/* $out/share
+ substituteInPlace $out/share/applications/Helio.desktop \
+ --replace "/usr/bin/helio" "$out/bin/Helio"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "One music sequencer for all major platforms, both desktop and mobile";
+ homepage = "https://helio.fm/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.suhr ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/helm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/helm/default.nix
new file mode 100644
index 000000000000..145ba68b08b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/helm/default.nix
@@ -0,0 +1,79 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, xorg
+, freetype
+, alsaLib
+, curl
+, libjack2
+, lv2
+, pkgconfig
+, libGLU
+, libGL
+}:
+
+ stdenv.mkDerivation {
+ version = "0.9.0";
+ pname = "helm";
+
+ src = fetchFromGitHub {
+ owner = "mtytel";
+ repo = "helm";
+ rev = "927d2ed27f71a735c3ff2a1226ce3129d1544e7e";
+ sha256 = "17ys2vvhncx9i3ydg3xwgz1d3gqv4yr5mqi7vr0i0ca6nad6x3d4";
+ };
+
+ buildInputs = [
+ xorg.libX11 xorg.libXcomposite xorg.libXcursor xorg.libXext
+ xorg.libXinerama xorg.libXrender xorg.libXrandr
+ freetype alsaLib curl libjack2 pkgconfig libGLU libGL lv2
+ ];
+
+ CXXFLAGS = "-DHAVE_LROUND";
+
+ patches = [
+ # gcc9 compatibility https://github.com/mtytel/helm/pull/233
+ (fetchpatch {
+ url = "https://github.com/mtytel/helm/commit/cb611a80bd5a36d31bfc31212ebbf79aa86c6f08.patch";
+ sha256 = "1i2289srcfz17c3zzab6f51aznzdj62kk53l4afr32bkjh9s4ixk";
+ })
+ ];
+
+ prePatch = ''
+ sed -i 's|usr/||g' Makefile
+ '';
+
+ buildPhase = ''
+ make lv2
+ make standalone
+ '';
+
+ installPhase = ''
+ make DESTDIR="$out" install
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://tytel.org/helm";
+ description = "A free, cross-platform, polyphonic synthesizer";
+ longDescription = ''
+ A free, cross-platform, polyphonic synthesizer.
+ Features:
+ 32 voice polyphony
+ Interactive visual interface
+ Powerful modulation system with live visual feedback
+ Dual oscillators with cross modulation and up to 15 oscillators each
+ Unison and Harmony mode for oscillators
+ Oscillator feedback and saturation for waveshaping
+ 12 different waveforms
+ 7 filter types with keytracking
+ 2 monophonic and 1 polyphonic LFO
+ Step sequencer
+ Lots of modulation sources including polyphonic aftertouch
+ Simple arpeggiator
+ Effects: Formant filter, stutter, delay
+ '';
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix
new file mode 100644
index 000000000000..831df6ba3c8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, fetchzip, cmake, pkgconfig, lv2, alsaLib, libjack2,
+ freetype, libX11, gtk3, pcre, libpthreadstubs, libXdmcp, libxkbcommon,
+ epoxy, at-spi2-core, dbus, curl, fftwFloat }:
+
+let
+ pname = "HybridReverb2";
+ version = "2.1.2";
+ owner = "jpcima";
+ DBversion = "1.0.0";
+in
+
+stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+
+ impulseDB = fetchzip {
+ url = "https://github.com/${owner}/${pname}-impulse-response-database/archive/v${DBversion}.zip";
+ sha256 = "1hlfxbbkahm1k2sk3c3n2mjaz7k80ky3r55xil8nfbvbv0qan89z";
+ };
+
+ src = fetchFromGitHub {
+ inherit owner;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "16r20plz1w068bgbkrydv01a991ygjybdya3ah7bhp3m5xafjwqb";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [ lv2 alsaLib libjack2 freetype libX11 gtk3 pcre
+ libpthreadstubs libXdmcp libxkbcommon epoxy at-spi2-core dbus curl fftwFloat ];
+
+ cmakeFlags = [
+ "-DHybridReverb2_AdvancedJackStandalone=ON"
+ "-DHybridReverb2_UseLocalDatabase=ON"
+ ];
+
+ postInstall = ''
+ mkdir -p $out/share/${pname}/
+ cp -r ${impulseDB}/* $out/share/${pname}/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www2.ika.ruhr-uni-bochum.de/HybridReverb2";
+ description = "Reverb effect using hybrid impulse convolution";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/hydrogen/0.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
new file mode 100644
index 000000000000..b3aff4e4c509
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, cmake
+, alsaLib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.9.7";
+ pname = "hydrogen";
+
+ src = fetchurl {
+ url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
+ sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [
+ alsaLib boost glib lash libjack2 libarchive libsndfile lrdf qt4
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Advanced drum machine";
+ homepage = "http://www.hydrogen-music.org";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/hydrogen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
new file mode 100644
index 000000000000..c6d307e2c163
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
+, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
+, qtbase, qttools, qtxmlpatterns
+}:
+
+stdenv.mkDerivation rec {
+ pname = "hydrogen";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "hydrogen-music";
+ repo = pname;
+ rev = version;
+ sha256 = "0snljpvbcgikhz610c325dgvayi0k512p3bglck9vvi90wsqx7l1";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
+ buildInputs = [
+ alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
+ qtbase qttools qtxmlpatterns
+ ];
+
+ cmakeFlags = [
+ "-DWANT_DEBUG=OFF"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Advanced drum machine";
+ homepage = "http://www.hydrogen-music.org";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ goibhniu orivej ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/i-score/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/i-score/default.nix
new file mode 100644
index 000000000000..daedb9b98206
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/i-score/default.nix
@@ -0,0 +1,85 @@
+{
+ alsaLib,
+ boost,
+ cln,
+ cmake,
+ fetchFromGitHub,
+ gcc,
+ ginac,
+ jamomacore,
+ kdnssd,
+ libsndfile,
+ ninja,
+ portaudio,
+ portmidi,
+ qtbase,
+ qtdeclarative,
+ qtimageformats,
+ qtmultimedia,
+ qtquickcontrols2,
+ qtserialport,
+ qtsvg,
+ qttools,
+ qtwebsockets,
+ rtaudio,
+ stdenv
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.0.0-b31";
+ pname = "i-score";
+
+ src = fetchFromGitHub {
+ owner = "OSSIA";
+ repo = "i-score";
+ rev = "v${version}";
+ sha256 = "0g7s6n11w3wflrv5i2047dxx56lryms7xj0mznnlk5bii7g8dxzb";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [
+ alsaLib
+ boost
+ cln
+ cmake
+ ginac
+ gcc
+ jamomacore
+ kdnssd
+ libsndfile
+ ninja
+ portaudio
+ portmidi
+ qtbase
+ qtdeclarative
+ qtimageformats
+ qtmultimedia
+ qtquickcontrols2
+ qtserialport
+ qtsvg
+ qttools
+ qtwebsockets
+ rtaudio
+ ];
+
+ cmakeFlags = [
+ "-GNinja"
+ "-DISCORE_CONFIGURATION=static-release"
+ "-DISCORE_ENABLE_LTO=OFF"
+ "-DISCORE_BUILD_FOR_PACKAGE_MANAGER=True"
+ ];
+
+ preConfigure = ''
+ export CMAKE_PREFIX_PATH="''${CMAKE_PREFIX_PATH-}:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")"
+ '';
+
+ postInstall = ''rm $out/bin/i-score.sh'';
+
+ meta = {
+ description = "An interactive sequencer for the intermedia arts";
+ homepage = "http://i-score.org/";
+ license = stdenv.lib.licenses.cecill20;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/iannix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/iannix/default.nix
new file mode 100644
index 000000000000..3765d2ca6788
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/iannix/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, lib, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmake
+}:
+
+mkDerivation rec {
+ pname = "iannix";
+ version = "0.9.20-b";
+
+ src = fetchFromGitHub {
+ owner = "iannix";
+ repo = "IanniX";
+ rev = "v${version}";
+ sha256 = "6jjgMvD2VkR3ztU5LguqhtNd+4/ZqRy5pVW5xQ6K20Q=";
+ };
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ buildInputs = [ alsaLib qtbase qtscript ];
+
+ qmakeFlags = [ "PREFIX=/" ];
+
+ installFlags = [ "INSTALL_ROOT=$(out)" ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Graphical open-source sequencer";
+ homepage = "https://www.iannix.org/";
+ license = licenses.lgpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ freezeboy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/id3v2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/id3v2/default.nix
new file mode 100644
index 000000000000..75d999ede1d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/id3v2/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, id3lib, groff, zlib}:
+
+stdenv.mkDerivation rec {
+ pname = "id3v2";
+ version = "0.1.12";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/id3v2/${pname}-${version}.tar.gz";
+ sha256 = "1gr22w8gar7zh5pyyvdy7cy26i47l57jp1l1nd60xfwx339zl1c1";
+ };
+
+ nativeBuildInputs = [ groff ];
+ buildInputs = [ id3lib zlib ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+ buildFlags = [ "clean" "all" ];
+
+ preInstall = ''
+ mkdir -p $out/{bin,share/man/man1}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A command line editor for id3v2 tags";
+ homepage = "http://id3v2.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/industrializer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/industrializer/default.nix
new file mode 100644
index 000000000000..593458506d8c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/industrializer/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, fetchurl
+, alsaLib
+, audiofile
+, autoconf
+, automake
+, gnome2
+, gtk2
+, libjack2
+, libtool
+, libxml2
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+ pname = "industrializer";
+ version = "0.2.6";
+ src = fetchurl {
+ url = "mirror://sourceforge/project/${pname}/ps${pname}-${version}.tar.bz2";
+ sha256 = "0vls94hqpkk8h17da6fddgqbl5dgm6250av3raimhhzwvm5r1gfi";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [
+ alsaLib
+ audiofile
+ autoconf
+ automake
+ gnome2.gtkglext
+ gtk2
+ libjack2
+ libtool
+ libxml2
+ ];
+
+ preConfigure = "./autogen.sh";
+
+ meta = {
+ description = "This program generates synthesized percussion sounds using physical modelling";
+ longDescription = ''
+ The range of sounds possible include but is not limited to cymbal sounds, metallic noises, bubbly sounds, and chimes.
+ After a sound is rendered, it can be played and then saved to a .WAV file.
+ '';
+ homepage = "https://sourceforge.net/projects/industrializer/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/infamousPlugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/infamousPlugins/default.nix
new file mode 100644
index 000000000000..9ba835eb7eae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/infamousPlugins/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, cairomm, cmake, lv2, libpthreadstubs, libXdmcp, libXft, ntk, pcre, fftwFloat, zita-resampler }:
+
+stdenv.mkDerivation rec {
+ pname = "infamousPlugins";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "ssj71";
+ repo = "infamousPlugins";
+ rev = "v${version}";
+ sha256 = "1r72agk5nxf5k0mghcc2j90z43j5d9i7rqjmf49jfyqnd443isip";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/ssj71/infamousPlugins/commit/06dd967b4736ea886dc1dc07f882cb1563961582.patch";
+ sha256 = "08xwh6px13y1gykaw103nhvjms7vgbgkcm0avh9f5d2d7aadq0l2";
+ })
+ ];
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [ cairomm lv2 libpthreadstubs libXdmcp libXft ntk pcre fftwFloat zita-resampler ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://ssj71.github.io/infamousPlugins";
+ description = "A collection of open-source LV2 plugins";
+ longDescription = ''
+ These are audio plugins in the LV2 format, developed for linux. Most are suitable for live use.
+ This collection contains:
+ * Cellular Automaton Synth - additive synthesizer, where 16 harmonics are added according to rules of elementary cellular automata
+ * Envelope Follower - a fully featured envelope follower plugin
+ * Hip2B - a distortion/destroyer plugin
+ * cheap distortion - another distortion plugin, but this one I wanted to get it as light as possible
+ * stuck - a clone of the electro-harmonix freeze
+ * power cut - this effect is commonly called tape stop
+ * power up - the opposite of the power cut
+ * ewham - a whammy style pitchshifter
+ * lushlife - a simulated double tracking plugin capable of everything from a thin beatle effect to thick lush choruses to weird outlandish effects
+ '';
+ license = licenses.gpl2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ingen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ingen/default.nix
new file mode 100644
index 000000000000..c5d4b3f87f49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ingen/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv
+, lv2, makeWrapper, pkgconfig, python, raul, rdflib, serd, sord, sratom
+, wafHook
+, suil
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ingen";
+ version = "unstable-2019-12-09";
+ name = "${pname}-${version}";
+
+ src = fetchgit {
+ url = "https://gitlab.com/drobilla/ingen.git";
+ rev = "e32f32a360f2bf8f017ea347b6d1e568c0beaf68";
+ sha256 = "0wjn2i3j7jb0bmxymg079xpk4iplb91q0xqqnvnpvyldrr7gawlb";
+ deepClone = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig wafHook ];
+ buildInputs = [
+ boost ganv glibmm gtkmm2 libjack2 lilv lv2 makeWrapper
+ python raul serd sord sratom suil
+ ];
+
+ preConfigure = ''
+ sed -e "s@{PYTHONDIR}/'@out/'@" -i wscript
+ '';
+
+ propagatedBuildInputs = [ rdflib ];
+
+ postInstall = ''
+ for program in ingenams ingenish
+ do
+ wrapProgram $out/bin/$program \
+ --prefix PYTHONPATH : $out/${python.sitePackages}:$PYTHONPATH
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A modular audio processing system using JACK and LV2 or LADSPA plugins";
+ homepage = "http://drobilla.net/software/ingen";
+ license = licenses.agpl3Plus;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ir.lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ir.lv2/default.nix
new file mode 100644
index 000000000000..aa5eeae0a46c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ir.lv2/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, fftw, gtk2, lv2, libsamplerate, libsndfile, pkgconfig, zita-convolver }:
+
+stdenv.mkDerivation rec {
+ pname = "ir.lv2";
+ version = "1.2.4";
+
+ src = fetchFromGitHub {
+ owner = "tomszilagyi";
+ repo = "ir.lv2";
+ rev = version;
+ sha256 = "1p6makmgr898fakdxzl4agh48qqwgv1k1kwm8cgq187n0mhiknp6";
+ };
+
+ buildInputs = [ fftw gtk2 lv2 libsamplerate libsndfile zita-convolver ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ postPatch = ''
+ # Fix build with lv2 1.18: https://github.com/tomszilagyi/ir.lv2/pull/20
+ find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
+ -exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
+ '';
+
+
+ postBuild = "make convert4chan";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mkdir "$out/include"
+ mkdir -p "$out/share/doc"
+
+ make PREFIX="$out" INSTDIR="$out/lib/lv2" install
+ install -Dm755 convert4chan "$out/bin/convert4chan"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://factorial.hu/plugins/lv2/ir";
+ description = "Zero-latency, realtime, high performance signal convolver especially for creating reverb effects";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jaaa/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/jaaa/default.nix
new file mode 100644
index 000000000000..80f15935af23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jaaa/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, alsaLib, libclthreads, libclxclient, libX11, libXft, libXrender, fftwFloat, libjack2, zita-alsa-pcmi }:
+
+stdenv.mkDerivation rec {
+ pname = "jaaa";
+ version = "0.9.2";
+
+ src = fetchurl {
+ url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "1czksxx2g8na07k7g57qlz0vvkkgi5bzajcx7vc7jhb94hwmmxbc";
+ };
+
+ buildInputs = [
+ alsaLib libclthreads libclxclient libX11 libXft libXrender fftwFloat libjack2 zita-alsa-pcmi
+ ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "SUFFIX=''"
+ ];
+
+ preConfigure = ''
+ cd ./source/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html";
+ description = "JACK and ALSA Audio Analyser";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jack-capture/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/jack-capture/default.nix
new file mode 100644
index 000000000000..e443a0a52694
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jack-capture/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, libjack2, libsndfile, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "jack_capture";
+ version = "0.9.73";
+
+ src = fetchurl {
+ url = "https://archive.notam02.no/arkiv/src/${pname}-${version}.tar.gz";
+ sha256 = "1pji0zdwm3kxjrkbzj7fnxhr8ncrc8pyqnwyrh47fhypgqjv1br1";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libjack2 libsndfile ];
+
+ buildPhase = "PREFIX=$out make jack_capture";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp jack_capture $out/bin/
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "A program for recording soundfiles with jack";
+ homepage = "http://archive.notam02.no/arkiv/src";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix
new file mode 100644
index 000000000000..08263f2abddc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, SDL, libjack2, libGLU, libGL, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "jack_oscrolloscope";
+ version = "0.7";
+
+ src = fetchurl {
+ url = "http://das.nasophon.de/download/${pname}-${version}.tar.gz";
+ sha256 = "1pl55in0sj7h5r06n1v91im7d18pplvhbjhjm1fdl39zwnyxiash";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ SDL libjack2 libGLU libGL ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv jack_oscrolloscope $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple waveform viewer for JACK";
+ homepage = "http://das.nasophon.de/jack_oscrolloscope";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jack-rack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/jack-rack/default.nix
new file mode 100644
index 000000000000..d13dbcc16889
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jack-rack/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, libjack2, ladspaH, gtk2, alsaLib, libxml2, lrdf }:
+stdenv.mkDerivation rec {
+ name = "jack-rack-1.4.7";
+ src = fetchurl {
+ url = "mirror://sourceforge/jack-rack/${name}.tar.bz2";
+ sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libjack2 ladspaH gtk2 alsaLib libxml2 lrdf ];
+ NIX_LDFLAGS = "-ldl -lm -lpthread";
+
+ meta = {
+ description = ''An effects "rack" for the JACK low latency audio API'';
+ longDescription = ''
+ JACK Rack is an effects "rack" for the JACK low latency audio
+ API. The rack can be filled with LADSPA effects plugins and can
+ be controlled using the ALSA sequencer. It's phat; it turns your
+ computer into an effects box.
+ '';
+ homepage = "http://jack-rack.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.astsmtl ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jackmeter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/jackmeter/default.nix
new file mode 100644
index 000000000000..2a75b384af5c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jackmeter/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, libjack2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ name = "jackmeter-0.4";
+
+ src = fetchurl {
+ url = "https://www.aelius.com/njh/jackmeter/${name}.tar.gz";
+ sha256 = "1cnvgx3jv0yvxlqy0l9k285zgvazmh5k8m4l7lxckjfm5bn6hm1r";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libjack2 ];
+
+ meta = {
+ description = "Console jack loudness meter";
+ homepage = "https://www.aelius.com/njh/jackmeter/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.marcweber ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jackmix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/jackmix/default.nix
new file mode 100644
index 000000000000..14cda8a81b52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jackmix/default.nix
@@ -0,0 +1,35 @@
+{ mkDerivation, lib, fetchFromGitHub, pkgconfig, sconsPackages, qtbase, lash, libjack2, jack ? libjack2, alsaLib }:
+
+mkDerivation rec {
+ pname = "jackmix";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "kampfschlaefer";
+ repo = "jackmix";
+ rev = version;
+ sha256 = "0p59411vk38lccn24r7nih10jpgg9i46yc26zpc3x13amxwwpd4h";
+ };
+
+ patches = [ ./no_error.patch ];
+
+ nativeBuildInputs = [ sconsPackages.scons_3_1_2 pkgconfig ];
+ buildInputs = [
+ qtbase
+ lash
+ jack
+ alsaLib
+ ];
+
+ installPhase = ''
+ install -D jackmix/jackmix $out/bin/jackmix
+ '';
+
+ meta = with lib; {
+ description = "Matrix-Mixer for the Jack-Audio-connection-Kit";
+ homepage = "https://github.com/kampfschlaefer/jackmix";
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ kampfschlaefer ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jackmix/no_error.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/jackmix/no_error.patch
new file mode 100644
index 000000000000..593800134e1f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jackmix/no_error.patch
@@ -0,0 +1,13 @@
+diff --git a/SConstruct b/SConstruct
+index 8bf6517..a432aa9 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -16,7 +16,7 @@ env = Environment(
+ env.Replace(LIBS="")
+ env.Replace(LIBPATH="")
+
+-env.MergeFlags(['-Wall', '-Werror', '-g', '-fpic', '-std=c++11'])
++env.MergeFlags(['-g', '-fpic', '-std=c++11'])
+
+ tests = {}
+ tests.update(env['PKGCONFIG_TESTS'])
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jalv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/jalv/default.nix
new file mode 100644
index 000000000000..39f1467138db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jalv/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkgconfig, python
+, serd, sord , sratom, suil, wafHook }:
+
+stdenv.mkDerivation rec {
+ pname = "jalv";
+ version = "1.6.4";
+
+ src = fetchurl {
+ url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
+ sha256 = "1wwfn7yzbs37s2rdlfjgks63svd5g14yyzd2gdl7h0z12qncwsy2";
+ };
+
+ nativeBuildInputs = [ pkgconfig wafHook ];
+ buildInputs = [
+ gtk2 libjack2 lilv lv2 python serd sord sratom suil
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A simple but fully featured LV2 host for Jack";
+ homepage = "http://drobilla.net/software/jalv";
+ license = licenses.isc;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jamin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/jamin/default.nix
new file mode 100644
index 000000000000..57caf4672d38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jamin/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, fftwFloat, gtk2, ladspaPlugins, libjack2, liblo, libxml2
+, makeWrapper, pkgconfig, perlPackages
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.95.0";
+ name = "jamin-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/jamin/jamin-${version}.tar.gz";
+ sha256 = "0g5v74cm0q3p3pzl6xmnp4rqayaymfli7c6z8s78h9rgd24fwbvn";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ fftwFloat gtk2 ladspaPlugins libjack2 liblo libxml2 makeWrapper ]
+ ++ (with perlPackages; [ perl XMLParser ]);
+
+ NIX_LDFLAGS = "-ldl";
+
+ postInstall = ''
+ wrapProgram $out/bin/jamin --set LADSPA_PATH ${ladspaPlugins}/lib/ladspa
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://jamin.sourceforge.net";
+ description = "JACK Audio Mastering interface";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.nico202 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/jamulus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/jamulus/default.nix
new file mode 100644
index 000000000000..4cc48b89f9c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/jamulus/default.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, stdenv, fetchFromGitHub, fetchpatch, pkg-config, qtscript, qmake, libjack2
+}:
+
+mkDerivation rec {
+ pname = "jamulus";
+ version = "3.6.1";
+ src = fetchFromGitHub {
+ owner = "corrados";
+ repo = "jamulus";
+ rev = "r${stdenv.lib.replaceStrings [ "." ] [ "_" ] version}";
+ sha256 = "11rwgd2car7ziqa0vancb363m4ca94pj480jfxywd6d81139jl15";
+ };
+
+ nativeBuildInputs = [ pkg-config qmake ];
+ buildInputs = [ qtscript libjack2 ];
+
+ qmakeFlags = [ "CONFIG+=noupcasename" ];
+
+ meta = {
+ description = "Enables musicians to perform real-time jam sessions over the internet";
+ longDescription = "You also need to enable JACK and should enable several real-time optimizations. See project website for details";
+ homepage = "https://github.com/corrados/jamulus/wiki";
+ license = stdenv.lib.licenses.gpl2; # linked in git repo, at least
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.seb314 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/japa/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/japa/default.nix
new file mode 100644
index 000000000000..426fea21107f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/japa/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, alsaLib, libjack2, fftwFloat, libclthreads, libclxclient, libX11, libXft, zita-alsa-pcmi, }:
+
+stdenv.mkDerivation rec {
+ version = "0.9.2";
+ pname = "japa";
+
+ src = fetchurl {
+ url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "1zmi4wg23hwsypg3h6y3qb72cbrihqcs19qrbzgs5a67d13q4897";
+ };
+
+ buildInputs = [ alsaLib libjack2 fftwFloat libclthreads libclxclient libX11 libXft zita-alsa-pcmi ];
+
+ preConfigure = ''
+ cd ./source/
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "SUFFIX=''"
+ ];
+
+ meta = {
+ description = "A 'perceptual' or 'psychoacoustic' audio spectrum analyser for JACK and ALSA";
+ homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
new file mode 100644
index 000000000000..53b55332f5d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, faust, meson, ninja, pkg-config
+, boost, cairo, fftw, gnome3, ladspa-sdk, libxcb, lv2, xcbutilwm
+, zita-convolver, zita-resampler
+ }:
+
+stdenv.mkDerivation rec {
+ pname = "kapitonov-plugins-pack";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "olegkapitonov";
+ repo = pname;
+ rev = version;
+ sha256 = "1mxi7b1vrzg25x85lqk8c77iziqrqyz18mqkfjlz09sxp5wfs9w4";
+ };
+
+ nativeBuildInputs = [
+ faust
+ meson
+ ninja
+ pkg-config
+ ];
+
+ buildInputs = [
+ boost
+ cairo
+ fftw
+ ladspa-sdk
+ libxcb
+ lv2
+ xcbutilwm
+ zita-convolver
+ zita-resampler
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Set of LADSPA and LV2 plugins for guitar sound processing";
+ homepage = https://github.com/olegkapitonov/Kapitonov-Plugins-Pack;
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/keyfinder-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/keyfinder-cli/default.nix
new file mode 100644
index 000000000000..4bb1d63a1e71
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/keyfinder-cli/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, libav, libkeyfinder }:
+
+stdenv.mkDerivation rec {
+ pname = "keyfinder-cli";
+ version = "2015-09-13";
+
+ src = fetchFromGitHub {
+ repo = "keyfinder-cli";
+ owner = "EvanPurkhiser";
+ rev = "8579282f15ab3ebad937fed398ec5c88843be03d";
+ sha256 = "0jylykigxmsqvdny265k58vpxa4cqs1hq2f7mph1nl3apfx2shrh";
+ };
+
+ buildInputs = [ libav libkeyfinder ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Musical key detection for digital audio (command-line tool)";
+ longDescription = ''
+ This small utility is the automation-oriented DJ's best friend. By making
+ use of Ibrahim Sha'ath's high quality libKeyFinder library, it can be
+ used to estimate the musical key of many different audio formats.
+ '';
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/keyfinder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/keyfinder/default.nix
new file mode 100644
index 000000000000..710c1e807929
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/keyfinder/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qtbase, qtxmlpatterns, qmake, taglib }:
+
+stdenv.mkDerivation rec {
+ pname = "keyfinder";
+ version = "2.2";
+
+ src = fetchFromGitHub {
+ sha256 = "0vjszk1h8vj2qycgbffzy6k7amg75jlvlnzwaqhz9nll2pcvw0zl";
+ rev = version;
+ repo = "is_KeyFinder";
+ owner = "ibsh";
+ };
+
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [ libav_0_8 libkeyfinder qtbase qtxmlpatterns taglib ];
+
+ postPatch = ''
+ substituteInPlace is_KeyFinder.pro \
+ --replace "keyfinder.0" "keyfinder" \
+ --replace "-stdlib=libc++" "" \
+ --replace "\$\$[QT_INSTALL_PREFIX]" "$out"
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Musical key detection for digital audio (graphical UI)";
+ longDescription = ''
+ KeyFinder is an open source key detection tool, for DJs interested in
+ harmonic and tonal mixing. Designed primarily for electronic and dance
+ music, it is highly configurable and can be applied to many genres. It
+ supports a huge range of codecs thanks to LibAV, and writes to metadata
+ tags using TagLib. It's intended to be very focused: no library
+ management, no track suggestions, no media player. Just a fast,
+ efficient workflow tool.
+ '';
+ homepage = "http://www.ibrahimshaath.co.uk/keyfinder/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/kid3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/kid3/default.nix
new file mode 100644
index 000000000000..c0900c56d0bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/kid3/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl
+, pkgconfig, cmake, python3, ffmpeg_3, phonon, automoc4
+, chromaprint, docbook_xml_dtd_45, docbook_xsl, libxslt
+, id3lib, taglib, mp4v2, flac, libogg, libvorbis
+, zlib, readline , qtbase, qttools, qtmultimedia, qtquickcontrols
+, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "kid3";
+ version = "3.8.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/kid3/kid3/${version}/${pname}-${version}.tar.gz";
+ sha256 = "sha256-WYuEOqMu2VMOv6mkVCRXnmInFER/DWfPNqYuaTJ3vAc=";
+ };
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+ buildInputs = [
+ pkgconfig cmake python3 ffmpeg_3 phonon automoc4
+ chromaprint docbook_xml_dtd_45 docbook_xsl libxslt
+ id3lib taglib mp4v2 flac libogg libvorbis zlib readline
+ qtbase qttools qtmultimedia qtquickcontrols ];
+
+ cmakeFlags = [ "-DWITH_APPS=Qt;CLI" ];
+ NIX_LDFLAGS = "-lm -lpthread";
+
+ preConfigure = ''
+ export DOCBOOKDIR="${docbook_xsl}/xml/xsl/docbook/"
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A simple and powerful audio tag editor";
+ longDescription = ''
+ If you want to easily tag multiple MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC,
+ MP2, Opus, Speex, TrueAudio, WavPack, WMA, WAV and AIFF files (e.g. full
+ albums) without typing the same information again and again and have
+ control over both ID3v1 and ID3v2 tags, then Kid3 is the program you are
+ looking for.
+
+ With Kid3 you can:
+ - Edit ID3v1.1 tags;
+ - Edit all ID3v2.3 and ID3v2.4 frames;
+ - Convert between ID3v1.1, ID3v2.3 and ID3v2.4 tags
+ - Edit tags in MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, MP2, Opus, Speex,
+ TrueAudio, WavPack, WMA, WAV, AIFF files and tracker modules (MOD, S3M,
+ IT, XM);
+ - Edit tags of multiple files, e.g. the artist, album, year and genre of
+ all files of an album typically have the same values and can be set
+ together;
+ - Generate tags from filenames;
+ - Generate tags from the contents of tag fields;
+ - Generate filenames from tags;
+ - Rename and create directories from tags;
+ - Generate playlist files;
+ - Automatically convert upper and lower case and replace strings;
+ - Import from gnudb.org, TrackType.org, MusicBrainz, Discogs, Amazon and
+ other sources of album data;
+ - Export tags as CSV, HTML, playlists, Kover XML and in other formats;
+ - Edit synchronized lyrics and event timing codes, import and export
+ LRC files.
+ '';
+ homepage = "http://kid3.sourceforge.net/";
+ license = licenses.lgpl2Plus;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/klick/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/klick/default.nix
new file mode 100644
index 000000000000..9ff063c1c807
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/klick/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, sconsPackages, pkgconfig
+, libsamplerate, libsndfile, liblo, libjack2, boost }:
+
+stdenv.mkDerivation rec {
+ pname = "klick";
+ version = "0.12.2";
+
+ src = fetchurl {
+ url = "http://das.nasophon.de/download/${pname}-${version}.tar.gz";
+ sha256 = "1289533c0849b1b66463bf27f7ce5f71736b655cfb7672ef884c7e6eb957ac42";
+ };
+
+ nativeBuildInputs = [ sconsPackages.scons_3_0_1 pkgconfig ];
+ buildInputs = [ libsamplerate libsndfile liblo libjack2 boost ];
+ prefixKey = "PREFIX=";
+ NIX_CFLAGS_COMPILE = "-fpermissive";
+
+ meta = {
+ homepage = "http://das.nasophon.de/klick/";
+ description = "Advanced command-line metronome for JACK";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/klystrack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/klystrack/default.nix
new file mode 100644
index 000000000000..5e8dc060c28c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/klystrack/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, fetchpatch
+, SDL2, SDL2_image
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ pname = "klystrack";
+ version = "1.7.6";
+
+ src = fetchFromGitHub {
+ owner = "kometbomb";
+ repo = pname;
+ rev = version;
+ fetchSubmodules = true;
+ sha256 = "1h99sm2ddaq483hhk2s3z4bjbgn0d2h7qna7l7qq98wvhqix8iyz";
+ };
+
+ buildInputs = [
+ SDL2 SDL2_image
+ ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/kometbomb/klystrack/commit/bb537595d02140176831c4a1b8e9121978b32d22.patch";
+ sha256 = "06gl9q0jwg039kpxb13lg9x0k59s11968qn4lybgkadvzmhxkgmi";
+ })
+ ];
+
+ buildFlags = [ "PREFIX=${placeholder "out"}" "CFG=release" ];
+
+ installPhase = ''
+ install -Dm755 bin.release/klystrack $out/bin/klystrack
+
+ mkdir -p $out/lib/klystrack
+ cp -R res $out/lib/klystrack
+ cp -R key $out/lib/klystrack
+
+ install -DT icon/256x256.png $out/share/icons/hicolor/256x256/apps/klystrack.png
+ mkdir -p $out/share/applications
+ substitute linux/klystrack.desktop $out/share/applications/klystrack.desktop \
+ --replace "klystrack %f" "$out/bin/klystrack %f"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A chiptune tracker";
+ homepage = "https://kometbomb.github.io/klystrack";
+ license = licenses.mit;
+ maintainers = with maintainers; [ suhr ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/kmetronome/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
new file mode 100644
index 000000000000..30a4d5f3684a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, cmake, pkgconfig, qttools, alsaLib, drumstick, qtbase, qtsvg }:
+
+stdenv.mkDerivation rec {
+ pname = "kmetronome";
+ version = "1.0.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "0bzm6vzlm32kjrgn1nvp096b2d41ybys2sk145nhy992wg56v32s";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig qttools ];
+
+ buildInputs = [ alsaLib drumstick qtbase qtsvg ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://kmetronome.sourceforge.io/";
+ description = "ALSA MIDI metronome with Qt interface";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
new file mode 100644
index 000000000000..a0fc8631fb39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, autoreconfHook, automake, fftw, ladspaH, libxml2, pkgconfig
+, perlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "swh-plugins";
+ version = "0.4.17";
+
+
+ src = fetchurl {
+ url = "https://github.com/swh/ladspa/archive/v${version}.tar.gz";
+ sha256 = "1rqwh8xrw6hnp69dg4gy336bfbfpmbx4fjrk0nb8ypjcxkz91c6i";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ fftw ladspaH libxml2 perlPackages.perl perlPackages.XMLParser ];
+
+ patchPhase = ''
+ patchShebangs .
+ patchShebangs ./metadata/
+ cp ${automake}/share/automake-*/mkinstalldirs .
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://plugin.org.uk/";
+ description = "LADSPA format audio plugins";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-sdk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-sdk/default.nix
new file mode 100644
index 000000000000..76acd1daba7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-sdk/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+ pname = "ladspa-sdk";
+ version = "1.15";
+ src = fetchurl {
+ url = "https://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
+ sha256 = "1vgx54cgsnc3ncl9qbgjbmq12c444xjafjkgr348h36j16draaa2";
+ };
+
+ patchPhase = ''
+ cd src
+ sed -i 's@/usr/@$(out)/@g' Makefile
+ sed -i 's@-mkdirhier@mkdir -p@g' Makefile
+ '';
+
+ meta = {
+ description = "The SDK for the LADSPA audio plugin standard";
+ longDescription = ''
+ The LADSPA SDK, including the ladspa.h API header file,
+ ten example LADSPA plugins and
+ three example programs (applyplugin, analyseplugin and listplugins).
+ '';
+ homepage = "http://www.ladspa.org/ladspa_sdk/overview.html";
+ license = stdenv.lib.licenses.lgpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-sdk/ladspah.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-sdk/ladspah.nix
new file mode 100644
index 000000000000..d51aa3b75e1f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ladspa-sdk/ladspah.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+ pname = "ladspa.h";
+ version = "1.15";
+ src = fetchurl {
+ url = "https://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
+ sha256 = "1vgx54cgsnc3ncl9qbgjbmq12c444xjafjkgr348h36j16draaa2";
+ };
+
+ installPhase = ''
+ mkdir -p $out/include
+ cp src/ladspa.h $out/include/ladspa.h
+ '';
+
+ meta = {
+ description = "LADSPA format audio plugins header file";
+ longDescription = ''
+ The ladspa.h API header file from the LADSPA SDK.
+ For the full SDK, use the ladspa-sdk package.
+ '';
+ homepage = "http://www.ladspa.org/ladspa_sdk/overview.html";
+ license = stdenv.lib.licenses.lgpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lash/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/lash/default.nix
new file mode 100644
index 000000000000..cb0a3ee05e12
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lash/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, alsaLib, gtk2, libjack2, libuuid, libxml2
+, makeWrapper, pkgconfig, readline }:
+
+assert libuuid != null;
+
+stdenv.mkDerivation rec {
+ pname = "lash";
+ version = "0.5.4";
+
+ src = fetchurl {
+ url = "mirror://savannah/lash/${pname}-${version}.tar.gz";
+ sha256 = "05kc4brcx8mncai0rj2gz4s4bsrsy9q8xlnaddf75i0m8jl7snhh";
+ };
+
+ # http://permalink.gmane.org/gmane.linux.redhat.fedora.extras.cvs/822346
+ patches = [ ./socket.patch ./gcc-47.patch ];
+
+ buildInputs = [ alsaLib gtk2 libjack2 libxml2 makeWrapper
+ pkgconfig readline ];
+ propagatedBuildInputs = [ libuuid ];
+ NIX_LDFLAGS = "-lm -lpthread -luuid";
+
+ postInstall = ''
+ for i in lash_control lash_panel
+ do wrapProgram "$out/bin/$i" --prefix LD_LIBRARY_PATH ":" "${libuuid}/lib"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Linux Audio Session Handler";
+ longDescription = ''
+ Session management system for GNU/Linux audio applications.
+ '';
+ homepage = "https://www.nongnu.org/lash";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lash/gcc-47.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/lash/gcc-47.patch
new file mode 100644
index 000000000000..774add431fab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lash/gcc-47.patch
@@ -0,0 +1,11 @@
+diff -rupN liblash/lash.c lash-0.5.4/liblash/lash.c
+--- a/liblash/lash.c 2007-03-09 10:34:40.000000000 -0500
++++ b/liblash/lash.c 2012-07-22 18:17:46.003963521 -0400
+@@ -22,6 +22,7 @@
+ #include <string.h>
+ #include <strings.h>
+ #include <pthread.h>
++#include <sys/resource.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <sys/socket.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lash/socket.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/lash/socket.patch
new file mode 100644
index 000000000000..c28259214443
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lash/socket.patch
@@ -0,0 +1,16 @@
+Via http://bugs.gentoo.org/show_bug.cgi?id=229603
+
+--- lash-0.5.4/liblash/socket.c 2008-06-26 15:20:44.227064193 +0200
++++ lash-0.5.4/liblash/socket.c 2008-06-26 15:21:18.245063129 +0200
+@@ -20,6 +20,11 @@
+
+ #define _POSIX_SOURCE /* addrinfo */
+
++#ifdef LASH_BUILD
++#define _GNU_SOURCE
++#include "config.h"
++#endif /* LASH_BUILD */
++
+ #include <stdint.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix
new file mode 100644
index 000000000000..efafc5b05b18
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "lastfmsubmitd";
+ version = "1.0.6";
+
+ src = fetchurl {
+ url = "https://www.red-bean.com/decklin/lastfmsubmitd/lastfmsubmitd-${version}.tar.gz";
+ sha256 = "c2636d5095a95167366bacd458624d67b046e060244fa54ba2c2e3efb79f9b0e";
+ };
+
+ doCheck = false;
+
+ installCommand = "python setup.py install --prefix=$out";
+
+ meta = {
+ homepage = "https://www.red-bean.com/decklin/lastfmsubmitd/";
+ license = lib.licenses.mit;
+ description = "An last.fm audio scrobbler and daemon";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch
new file mode 100644
index 000000000000..129ba96987ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch
@@ -0,0 +1,137 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 533b47d..9c9c2f6 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -932,7 +932,7 @@ dependencies = [
+
+ [[package]]
+ name = "librespot"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -940,12 +940,12 @@ dependencies = [
+ "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-audio 0.1.2",
+- "librespot-connect 0.1.2",
+- "librespot-core 0.1.2",
+- "librespot-metadata 0.1.2",
+- "librespot-playback 0.1.2",
+- "librespot-protocol 0.1.2",
++ "librespot-audio 0.1.3",
++ "librespot-connect 0.1.3",
++ "librespot-core 0.1.3",
++ "librespot-metadata 0.1.3",
++ "librespot-playback 0.1.3",
++ "librespot-protocol 0.1.3",
+ "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -961,7 +961,7 @@ dependencies = [
+
+ [[package]]
+ name = "librespot-audio"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+ "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -969,7 +969,7 @@ 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)",
+ "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.2",
++ "librespot-core 0.1.3",
+ "librespot-tremor 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -980,7 +980,7 @@ dependencies = [
+
+ [[package]]
+ name = "librespot-connect"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+ "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -990,9 +990,9 @@ dependencies = [
+ "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libmdns 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.2",
+- "librespot-playback 0.1.2",
+- "librespot-protocol 0.1.2",
++ "librespot-core 0.1.3",
++ "librespot-playback 0.1.3",
++ "librespot-protocol 0.1.3",
+ "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1007,7 +1007,7 @@ dependencies = [
+
+ [[package]]
+ name = "librespot-core"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+ "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1020,7 +1020,7 @@ dependencies = [
+ "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-protocol 0.1.2",
++ "librespot-protocol 0.1.3",
+ "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1043,12 +1043,12 @@ dependencies = [
+
+ [[package]]
+ name = "librespot-metadata"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+ "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.2",
+- "librespot-protocol 0.1.2",
++ "librespot-core 0.1.3",
++ "librespot-protocol 0.1.3",
+ "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1056,7 +1056,7 @@ dependencies = [
+
+ [[package]]
+ name = "librespot-playback"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+ "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1068,9 +1068,9 @@ dependencies = [
+ "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-audio 0.1.2",
+- "librespot-core 0.1.2",
+- "librespot-metadata 0.1.2",
++ "librespot-audio 0.1.3",
++ "librespot-core 0.1.3",
++ "librespot-metadata 0.1.3",
+ "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1081,7 +1081,7 @@ dependencies = [
+
+ [[package]]
+ name = "librespot-protocol"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+ "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/librespot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/librespot/default.nix
new file mode 100644
index 000000000000..6061edac0250
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/librespot/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, withRodio ? true
+, withALSA ? true, alsaLib ? null, withPulseAudio ? false, libpulseaudio ? null
+, withPortAudio ? false, portaudio ? null }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "librespot";
+ version = "0.1.3";
+
+ src = fetchFromGitHub {
+ owner = "librespot-org";
+ repo = "librespot";
+ rev = "v${version}";
+ sha256 = "1ixh47yvaamrpzagqsiimc3y6bi4nbym95843d23am55zkrgnmy5";
+ };
+
+ cargoSha256 = "1csls8kzzx28ng6w9vdwhnnav5sqp2m5fj430db5z306xh5acg3d";
+
+ cargoPatches = [ ./cargo-lock.patch ];
+
+ cargoBuildFlags = with stdenv.lib; [
+ "--no-default-features"
+ "--features"
+ (concatStringsSep "," (filter (x: x != "") [
+ (optionalString withRodio "rodio-backend")
+ (optionalString withALSA "alsa-backend")
+ (optionalString withPulseAudio "pulseaudio-backend")
+ (optionalString withPortAudio "portaudio-backend")
+
+ ]))
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ openssl ] ++ stdenv.lib.optional withALSA alsaLib
+ ++ stdenv.lib.optional withPulseAudio libpulseaudio
+ ++ stdenv.lib.optional withPortAudio portaudio;
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Open Source Spotify client library and playback daemon";
+ homepage = "https://github.com/librespot-org/librespot";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ bennofs ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lingot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/lingot/default.nix
new file mode 100644
index 000000000000..f229e15871e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lingot/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, fetchurl
+, pkg-config
+, intltool
+, gtk3
+, wrapGAppsHook
+, alsaLib
+, libjack2
+, libpulseaudio
+, fftw
+, jackSupport ? true
+}:
+
+stdenv.mkDerivation rec {
+ pname = "lingot";
+ version = "1.0.1";
+
+ src = fetchurl {
+ url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "03x0qqb9iarjapvii3ja522vkxrqv1hwix6b1r53is48p5xwgf3i";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ alsaLib
+ libpulseaudio
+ fftw
+ ] ++ stdenv.lib.optional jackSupport libjack2;
+
+ configureFlags = stdenv.lib.optional (!jackSupport) "--disable-jack";
+
+ meta = {
+ description = "Not a Guitar-Only tuner";
+ homepage = "https://www.nongnu.org/lingot/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = with stdenv.lib.platforms; linux;
+ maintainers = with stdenv.lib.maintainers; [ viric ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/linuxband/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/linuxband/default.nix
new file mode 100644
index 000000000000..cd9ca5e26748
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/linuxband/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, MMA, libjack2, libsmf, python2Packages }:
+
+let
+ inherit (python2Packages) pyGtkGlade pygtksourceview python;
+in stdenv.mkDerivation rec {
+ version = "12.02.1";
+ pname = "linuxband";
+
+ src = fetchurl {
+ url = "http://linuxband.org/assets/sources/${pname}-${version}.tar.gz";
+ sha256 = "1r71h4yg775m4gax4irrvygmrsclgn503ykmc2qwjsxa42ri4n2n";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ makeWrapper MMA libjack2 libsmf python pyGtkGlade pygtksourceview ];
+
+ patchPhase = ''
+ sed -i 's@/usr/@${MMA}/@g' src/main/config/linuxband.rc.in
+ cat src/main/config/linuxband.rc.in
+ '';
+
+ postFixup = ''
+ PYTHONPATH=$pyGtkGlade/share/:pygtksourceview/share/:$PYTHONPATH
+ for f in $out/bin/*; do
+ wrapProgram $f \
+ --prefix PYTHONPATH : $PYTHONPATH
+ done
+ '';
+
+ meta = {
+ description = "A GUI front-end for MMA: Type in the chords, choose the groove and it will play an accompaniment";
+ homepage = "http://linuxband.org/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix
new file mode 100644
index 000000000000..6b6cfd55926b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, autoconf, automake, bison, libtool, pkgconfig, which
+, alsaLib, asio, libjack2, libgig, libsndfile, lv2 }:
+
+stdenv.mkDerivation rec {
+ pname = "linuxsampler";
+ version = "2.1.1";
+
+ src = fetchurl {
+ url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.bz2";
+ sha256 = "1gijf50x5xbpya5dj3v2mzj7azx4qk9p012csgddp73f0qi0n190";
+ };
+
+ preConfigure = ''
+ make -f Makefile.svn
+ '';
+
+ nativeBuildInputs = [ autoconf automake bison libtool pkgconfig which ];
+
+ buildInputs = [ alsaLib asio libjack2 libgig libsndfile lv2 ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.linuxsampler.org";
+ description = "Sampler backend";
+ longDescription = ''
+ Includes sampler engine, audio and MIDI drivers, network layer
+ (LSCP) API and native C++ API.
+
+ LinuxSampler is licensed under the GNU GPL with the exception
+ that USAGE of the source code, libraries and applications FOR
+ COMMERCIAL HARDWARE OR SOFTWARE PRODUCTS IS NOT ALLOWED without
+ prior written permission by the LinuxSampler authors. If you
+ have questions on the subject, that are not yet covered by the
+ FAQ, please contact us.
+ '';
+ license = licenses.unfree;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch
new file mode 100644
index 000000000000..3cabd2a2c56c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch
@@ -0,0 +1,52 @@
+From 2e1e9b3ffce9d1069fca0b27b8011f85c7547c3b Mon Sep 17 00:00:00 2001
+From: Francesco Gazzetta <fgaz@fgaz.me>
+Date: Wed, 19 Aug 2020 15:06:19 +0200
+Subject: [PATCH 1/2] Remove coherency checks >:)
+
+As far as I can see, they are just to make sure that the types can fit
+in the word length, but this check was written when 64 bits weren't a
+possibility and didn't take that into account,
+so although the types do fit, the checks fail.
+Indeed, the program seems to work well on 64 bits.
+More info here:
+https://github.com/Mdashdotdashn/LittleGPTracker/issues/4
+---
+ sources/Externals/Soundfont/DATATYPE.H | 22 ----------------------
+ 1 file changed, 22 deletions(-)
+
+diff --git a/sources/Externals/Soundfont/DATATYPE.H b/sources/Externals/Soundfont/DATATYPE.H
+index 762a724..f6b031f 100644
+--- a/sources/Externals/Soundfont/DATATYPE.H
++++ b/sources/Externals/Soundfont/DATATYPE.H
+@@ -123,28 +123,6 @@ typedef short SHORT; /* 16 bit signed value was: INT */
+ ********************************************************************/
+ typedef unsigned short EMUSTAT;
+
+-/********************************************************************
+-* Compare <limits.h> values with SoundFont Enabler limits. Fail compile
+-* if discrepency. If compile fails due to one of these errors, then
+-* the SoundFont enabler will not work with your system or the state of your
+-* development environment.
+-********************************************************************/
+-#if (SCHAR_MAX != CHAR_MAXVAL) || (UCHAR_MAX != BYTE_MAXVAL)
+- #error <datatype.h>: char is out of range!
+-#endif
+-
+-#if (SHRT_MAX != SHRT_MAXVAL)
+- #error <datatype.h>: short is out of range!
+-#endif
+-
+-#if (LONG_MAX != LONG_MAXVAL)
+- #error <datatype.h>: long is out of range!
+-#endif
+-
+-#if (ULONG_MAX != DWORD_MAXVAL)
+- #error <datatype.h>: unsigned long is out of range!
+-#endif
+-
+ #ifdef __BYTE_COHERENT
+
+ /********************************************************************
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
new file mode 100644
index 000000000000..2fb453cf19c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchFromGitHub
+, unstableGitUpdater
+, SDL
+, jack2
+, Foundation
+}:
+
+stdenv.mkDerivation rec {
+ pname = "littlegptracker";
+ version = "unstable-2020-11-26";
+
+ src = fetchFromGitHub {
+ owner = "Mdashdotdashn";
+ repo = "littlegptracker";
+ rev = "4aca8cd765e1ad586da62decd019e66cb64b45b8";
+ sha256 = "0f2ip8z5wxk8fvlw47mczsbcrzh4nh1hgw1fwf5gjrqnzm8v111x";
+ };
+
+ buildInputs = [
+ SDL
+ ]
+ ++ stdenv.lib.optional stdenv.isDarwin Foundation
+ ++ stdenv.lib.optional stdenv.isLinux jack2;
+
+ patches = [
+ # Remove outdated (pre-64bit) checks that would fail on modern platforms
+ # (see description in patch file)
+ ./0001-Remove-coherency-checks.patch
+ ];
+
+ preBuild = "cd projects";
+
+ makeFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ]
+ ++ stdenv.lib.optionals stdenv.isLinux [ "PLATFORM=DEB" ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ "PLATFORM=OSX" ];
+
+ NIX_CFLAGS_COMPILE = [ "-fpermissive" ] ++
+ stdenv.lib.optional stdenv.hostPlatform.isAarch64 "-Wno-error=narrowing";
+
+ NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin "-framework Foundation";
+
+ installPhase = let extension = if stdenv.isDarwin then "app" else "deb-exe";
+ in "install -Dm555 lgpt.${extension} $out/bin/lgpt";
+
+ passthru.updateScript = unstableGitUpdater { };
+
+ meta = with stdenv.lib; {
+ description = "A music tracker similar to lsdj optimised to run on portable game consoles";
+ longDescription = ''
+ LittleGPTracker (a.k.a 'The piggy', 'lgpt') is a music tracker optimised
+ to run on portable game consoles. It is currently running on Game Park's
+ GP2x & Caanoo, PSP, Dingoo, Windows, Mac OSX (intel/ppc) & Linux (Debian).
+
+ It implements the user interface of littlesounddj, a very famous tracker
+ for the Gameboy platform that has been tried and tested by many users over
+ the years, leading to a little complex but yet extremely efficent way of
+ working.
+
+ Piggy currently supports 8 monophonic 16Bit/44.1Khz stereo sample playback
+ channels. Additionally, the program can drive MIDI instruments (with the
+ gp32 and gp2x a custom MIDI interface is required).
+ '';
+ homepage = "http://www.littlegptracker.com/";
+ downloadPage = "http://www.littlegptracker.com/download.php";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ # https://github.com/NixOS/nixpkgs/pull/91766#issuecomment-688751821
+ broken = stdenv.isDarwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lmms/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/lmms/default.nix
new file mode 100644
index 000000000000..b01c4055e406
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lmms/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, alsaLib ? null, fftwFloat, fltk13
+, fluidsynth_1 ? null, lame ? null, libgig ? null, libjack2 ? null, libpulseaudio ? null
+, libsamplerate, libsoundio ? null, libsndfile, libvorbis ? null, portaudio ? null
+, qtbase, qtx11extras, qttools, SDL ? null, mkDerivation }:
+
+mkDerivation rec {
+ pname = "lmms";
+ version = "1.2.2";
+
+ src = fetchFromGitHub {
+ owner = "LMMS";
+ repo = "lmms";
+ rev = "v${version}";
+ sha256 = "006hwv1pbh3y5whsxkjk20hsbgwkzr4dawz43afq1gil69y7xpda";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake qttools pkgconfig ];
+
+ buildInputs = [
+ alsaLib
+ fftwFloat
+ fltk13
+ fluidsynth_1
+ lame
+ libgig
+ libjack2
+ libpulseaudio
+ libsamplerate
+ libsndfile
+ libsoundio
+ libvorbis
+ portaudio
+ qtbase
+ qtx11extras
+ SDL # TODO: switch to SDL2 in the next version
+ ];
+
+ cmakeFlags = [ "-DWANT_QT5=ON" ];
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "DAW similar to FL Studio (music production software)";
+ homepage = "https://lmms.io";
+ license = licenses.gpl2Plus;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = with maintainers; [ goibhniu yegortimoshenko ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lollypop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/lollypop/default.nix
new file mode 100644
index 000000000000..14ab2aaf2d0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lollypop/default.nix
@@ -0,0 +1,112 @@
+{ lib
+, fetchgit
+, nix-update-script
+, meson
+, ninja
+, pkgconfig
+, python3
+, gtk3
+, gst_all_1
+, libhandy
+, libsecret
+, libsoup
+, appstream-glib
+, desktop-file-utils
+, totem-pl-parser
+, gobject-introspection
+, glib-networking
+, gdk-pixbuf
+, glib
+, pango
+, wrapGAppsHook
+, lastFMSupport ? true
+, youtubeSupport ? true
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "lollypop";
+ version = "1.4.5";
+
+ format = "other";
+ doCheck = false;
+
+ src = fetchgit {
+ url = "https://gitlab.gnome.org/World/lollypop";
+ rev = "refs/tags/${version}";
+ fetchSubmodules = true;
+ sha256 = "1i5qcpp3fpkda08g6nkiiff8lsjmv5xsvpa0512kigq5z0lsagrx";
+ };
+
+ nativeBuildInputs = [
+ appstream-glib
+ desktop-file-utils
+ gobject-introspection
+ meson
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = with gst_all_1; [
+ gdk-pixbuf
+ glib
+ glib-networking
+ gst-libav
+ gst-plugins-bad
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-ugly
+ gstreamer
+ gtk3
+ libhandy
+ libsoup
+ pango
+ totem-pl-parser
+ ] ++ lib.optional lastFMSupport libsecret;
+
+ propagatedBuildInputs = with python3.pkgs; [
+ beautifulsoup4
+ pillow
+ pycairo
+ pygobject3
+ ]
+ ++ lib.optional lastFMSupport pylast
+ ++ lib.optional youtubeSupport youtube-dl
+ ;
+
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ '';
+
+ postFixup = ''
+ wrapPythonProgramsIn $out/libexec "$out $propagatedBuildInputs"
+ '';
+
+ strictDeps = false;
+
+ # Produce only one wrapper using wrap-python passing
+ # gappsWrapperArgs to wrap-python additional wrapper
+ # argument
+ dontWrapGApps = true;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+
+ meta = with lib; {
+ changelog = "https://gitlab.gnome.org/World/lollypop/tags/${version}";
+ description = "A modern music player for GNOME";
+ homepage = "https://wiki.gnome.org/Apps/Lollypop";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
new file mode 100644
index 000000000000..e32b2e54f472
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
@@ -0,0 +1,175 @@
+{ stdenv, fetchFromGitHub, pkgconfig, makeWrapper
+, libsndfile, jack2Full
+, libGLU, libGL, lv2, cairo
+, ladspaH, php }:
+
+stdenv.mkDerivation rec {
+ pname = "lsp-plugins";
+ version = "1.1.26";
+
+ src = fetchFromGitHub {
+ owner = "sadko4u";
+ repo = pname;
+ rev = "${pname}-${version}";
+ sha256 = "1apw8zh3a3il4smkjji6bih4vbsymj0hjs10fgkrd4nazqkjvgyd";
+ };
+
+ nativeBuildInputs = [ pkgconfig php makeWrapper ];
+ buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH ];
+
+ makeFlags = [
+ "PREFIX=${placeholder ''out''}"
+ "ETC_PATH=$(out)/etc"
+ ];
+
+ NIX_CFLAGS_COMPILE = "-DLSP_NO_EXPERIMENTAL";
+
+ doCheck = true;
+
+ checkPhase = ''
+ runHook preCheck
+ TEST_PATH=$(pwd)".build-test"
+ make OBJDIR=$TEST_PATH test
+ $TEST_PATH/lsp-plugins-test utest
+ runHook postCheck
+ '';
+
+ buildFlags = [ "release" ];
+
+ meta = with stdenv.lib;
+ { description = "Collection of open-source audio plugins";
+ longDescription = ''
+ Compatible with follwing formats:
+
+ - LADSPA - set of plugins for Linux Audio Developer's Simple Plugin API
+ - LV2 - set of plugins and UIs for Linux Audio Developer's Simple Plugin API (LADSPA) version 2
+ - LinuxVST - set of plugins and UIs for Steinberg's VST 2.4 format ported on GNU/Linux Platform
+ - JACK - Standalone versions for JACK Audio connection Kit with UI
+
+ Contains the following plugins:
+
+ - Limiter Mono - Begrenzer Mono
+ - Limiter Stereo - Begrenzer Stereo
+ - Dynamic Processor LeftRight - Dynamikprozessor LeftRight
+ - Dynamic Processor MidSide - Dynamikprozessor MidSide
+ - Dynamic Processor Mono - Dynamikprozessor Mono
+ - Dynamic Processor Stereo - Dynamikprozessor Stereo
+ - Expander LeftRight - Expander LeftRight
+ - Expander MidSide - Expander MidSide
+ - Expander Mono - Expander Mono
+ - Expander Stereo - Expander Stereo
+ - Crossover LeftRight x8 - Frequenzweiche LeftRight x8
+ - Crossover MidSide x8 - Frequenzweiche MidSide x8
+ - Crossover Mono x8 - Frequenzweiche Mono x8
+ - Crossover Stereo x8 - Frequenzweiche Stereo x8
+ - Gate LeftRight - Gate LeftRight
+ - Gate MidSide - Gate MidSide
+ - Gate Mono - Gate Mono
+ - Gate Stereo - Gate Stereo
+ - Graphic Equalizer x16 LeftRight - Grafischer Entzerrer x16 LeftRight
+ - Graphic Equalizer x16 MidSide - Grafischer Entzerrer x16 MidSide
+ - Graphic Equalizer x16 Mono - Grafischer Entzerrer x16 Mono
+ - Graphic Equalizer x16 Stereo - Grafischer Entzerrer x16 Stereo
+ - Graphic Equalizer x32 LeftRight - Grafischer Entzerrer x32 LeftRight
+ - Graphic Equalizer x32 MidSide - Grafischer Entzerrer x32 MidSide
+ - Graphic Equalizer x32 Mono - Grafischer Entzerrer x32 Mono
+ - Graphic Equalizer x32 Stereo - Grafischer Entzerrer x32 Stereo
+ - Impulse Responses Mono - Impulsantworten Mono
+ - Impulse Responses Stereo - Impulsantworten Stereo
+ - Impulse Reverb Mono - Impulsnachhall Mono
+ - Impulse Reverb Stereo - Impulsnachhall Stereo
+ - Sampler Mono - Klangerzeuger Mono
+ - Sampler Stereo - Klangerzeuger Stereo
+ - Compressor LeftRight - Kompressor LeftRight
+ - Compressor MidSide - Kompressor MidSide
+ - Compressor Mono - Kompressor Mono
+ - Compressor Stereo - Kompressor Stereo
+ - Latency Meter - Latenzmessgerät
+ - Loudness Compensator Mono - Lautstärke Kompensator Mono
+ - Loudness Compensator Stereo - Lautstärke Kompensator Stereo
+ - Multiband Expander LeftRight x8 - Multi-band Expander LeftRight x8
+ - Multiband Expander MidSide x8 - Multi-band Expander MidSide x8
+ - Multiband Expander Mono x8 - Multi-band Expander Mono x8
+ - Multiband Expander Stereo x8 - Multi-band Expander Stereo x8
+ - Multiband Gate LeftRight x8 - Multi-band Gate LeftRight x8
+ - Multiband Gate MidSide x8 - Multi-band Gate MidSide x8
+ - Multiband Gate Mono x8 - Multi-band Gate Mono x8
+ - Multiband Gate Stereo x8 - Multi-band Gate Stereo x8
+ - Multiband Compressor LeftRight x8 - Multi-band Kompressor LeftRight x8
+ - Multiband Compressor MidSide x8 - Multi-band Kompressor MidSide x8
+ - Multiband Compressor Mono x8 - Multi-band Kompressor Mono x8
+ - Multiband Compressor Stereo x8 - Multi-band Kompressor Stereo x8
+ - Oscillator Mono - Oszillator Mono
+ - Parametric Equalizer x16 LeftRight - Parametrischer Entzerrer x16 LeftRight
+ - Parametric Equalizer x16 MidSide - Parametrischer Entzerrer x16 MidSide
+ - Parametric Equalizer x16 Mono - Parametrischer Entzerrer x16 Mono
+ - Parametric Equalizer x16 Stereo - Parametrischer Entzerrer x16 Stereo
+ - Parametric Equalizer x32 LeftRight - Parametrischer Entzerrer x32 LeftRight
+ - Parametric Equalizer x32 MidSide - Parametrischer Entzerrer x32 MidSide
+ - Parametric Equalizer x32 Mono - Parametrischer Entzerrer x32 Mono
+ - Parametric Equalizer x32 Stereo - Parametrischer Entzerrer x32 Stereo
+ - Phase Detector - Phasendetektor
+ - Profiler Mono - Profiler Mono
+ - Profiler Stereo - Profiler Stereo
+ - Room Builder Mono - Raumbaumeister Mono
+ - Room Builder Stereo - Raumbaumeister Stereo
+ - Multi-Sampler x12 DirectOut - Schlagzeug x12 Direktausgabe
+ - Multi-Sampler x12 Stereo - Schlagzeug x12 Stereo
+ - Multi-Sampler x24 DirectOut - Schlagzeug x24 Direktausgabe
+ - Multi-Sampler x24 Stereo - Schlagzeug x24 Stereo
+ - Multi-Sampler x48 DirectOut - Schlagzeug x48 Direktausgabe
+ - Multi-Sampler x48 Stereo - Schlagzeug x48 Stereo
+ - Sidechain Multiband Expander LeftRight x8 - Sidechain Multi-band Expander LeftRight x8
+ - Sidechain Multiband Expander MidSide x8 - Sidechain Multi-band Expander MidSide x8
+ - Sidechain Multiband Expander Mono x8 - Sidechain Multi-band Expander Mono x8
+ - Sidechain Multiband Expander Stereo x8 - Sidechain Multi-band Expander Stereo x8
+ - Sidechain Multiband Gate LeftRight x8 - Sidechain Multi-band Gate LeftRight x8
+ - Sidechain Multiband Gate MidSide x8 - Sidechain Multi-band Gate MidSide x8
+ - Sidechain Multiband Gate Mono x8 - Sidechain Multi-band Gate Mono x8
+ - Sidechain Multiband Gate Stereo x8 - Sidechain Multi-band Gate Stereo x8
+ - Sidechain Multiband Compressor LeftRight x8 - Sidechain Multi-band Kompressor LeftRight x8
+ - Sidechain Multiband Compressor MidSide x8 - Sidechain Multi-band Kompressor MidSide x8
+ - Sidechain Multiband Compressor Mono x8 - Sidechain Multi-band Kompressor Mono x8
+ - Sidechain Multiband Compressor Stereo x8 - Sidechain Multi-band Kompressor Stereo x8
+ - Sidechain Limiter Mono - Sidechain-Begrenzer Mono
+ - Sidechain Limiter Stereo - Sidechain-Begrenzer Stereo
+ - Sidechain Dynamic Processor LeftRight - Sidechain-Dynamikprozessor LeftRight
+ - Sidechain Dynamic Processor MidSide - Sidechain-Dynamikprozessor MidSide
+ - Sidechain Dynamic Processor Mono - Sidechain-Dynamikprozessor Mono
+ - Sidechain Dynamic Processor Stereo - Sidechain-Dynamikprozessor Stereo
+ - Sidechain Expander LeftRight - Sidechain-Expander LeftRight
+ - Sidechain Expander MidSide - Sidechain-Expander MidSide
+ - Sidechain Expander Mono - Sidechain-Expander Mono
+ - Sidechain Expander Stereo - Sidechain-Expander Stereo
+ - Sidechain Gate LeftRight - Sidechain-Gate LeftRight
+ - Sidechain Gate MidSide - Sidechain-Gate MidSide
+ - Sidechain Gate Mono - Sidechain-Gate Mono
+ - Sidechain Gate Stereo - Sidechain-Gate Stereo
+ - Sidechain Compressor LeftRight - Sidechain-Kompressor LeftRight
+ - Sidechain Compressor MidSide - Sidechain-Kompressor MidSide
+ - Sidechain Compressor Mono - Sidechain-Kompressor Mono
+ - Sidechain Compressor Stereo - Sidechain-Kompressor Stereo
+ - Slapback Delay Mono - Slapback-Delay Mono
+ - Slapback Delay Stereo - Slapback-Delay Stereo
+ - Spectrum Analyzer x1 - Spektrumanalysator x1
+ - Spectrum Analyzer x12 - Spektrumanalysator x12
+ - Spectrum Analyzer x16 - Spektrumanalysator x16
+ - Spectrum Analyzer x2 - Spektrumanalysator x2
+ - Spectrum Analyzer x4 - Spektrumanalysator x4
+ - Spectrum Analyzer x8 - Spektrumanalysator x8
+ - Surge Filter Mono - Sprungfilter Mono
+ - Surge Filter Stereo - Sprungfilter Stereo
+ - Trigger MIDI Mono - Triggersensor MIDI Mono
+ - Trigger MIDI Stereo - Triggersensor MIDI Stereo
+ - Trigger Mono - Triggersensor Mono
+ - Trigger Stereo - Triggersensor Stereo
+ - Delay Compensator Mono - Verzögerungsausgleicher Mono
+ - Delay Compensator Stereo - Verzögerungsausgleicher Stereo
+ - Delay Compensator x2 Stereo - Verzögerungsausgleicher x2 Stereo
+ '';
+ homepage = "https://lsp-plug.in";
+ maintainers = with maintainers; [ magnetophon ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ltc-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ltc-tools/default.nix
new file mode 100644
index 000000000000..c986e3af288e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ltc-tools/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchFromGitHub, pkgconfig, libltc, libsndfile, jack2}:
+
+stdenv.mkDerivation rec {
+ pname = "ltc-tools";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "x42";
+ repo = "ltc-tools";
+ rev = "v${version}";
+ sha256 = "0vp25b970r1hv5ndzs4di63rgwnl31jfaj3jz5dka276kx34q4al";
+ };
+
+ buildInputs = [ pkgconfig libltc libsndfile jack2 ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/x42/ltc-tools";
+ description = "Tools to deal with linear-timecode (LTC)";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ tg-x ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/luppp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/luppp/default.nix
new file mode 100644
index 000000000000..6cf2575b8e5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/luppp/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkgconfig
+, jack2
+, cairo
+, liblo
+, libsndfile
+, libsamplerate
+, ntk
+}:
+
+stdenv.mkDerivation rec {
+ pname = "luppp";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "openAVproductions";
+ repo = "openAV-Luppp";
+ rev = "release-${version}";
+ sha256 = "1ncbn099fyfnr7jw2bp3wf2g9k738lw53m6ssw6wji2wxwmghv78";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ ];
+
+ buildInputs = [
+ jack2
+ cairo
+ liblo
+ libsndfile
+ libsamplerate
+ ntk
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://openavproductions.com/luppp/"; # https does not work
+ description = "A music creation tool, intended for live use";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ prusnak ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lv2-cpp-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/lv2-cpp-tools/default.nix
new file mode 100644
index 000000000000..d98135fb0149
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lv2-cpp-tools/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip, pkgconfig, lv2, gtkmm2, boost }:
+
+stdenv.mkDerivation rec {
+ pname = "lv2-cpp-tools";
+ version = "1.0.5";
+
+ src = fetchzip {
+ url = "http://deb.debian.org/debian/pool/main/l/lv2-c++-tools/lv2-c++-tools_${version}.orig.tar.bz2";
+ sha256 = "039bq7d7s2bhfcnlsfq0mqxr9a9iqwg5bwcpxfi24c6yl6krydsi";
+ };
+
+ preConfigure = ''
+ sed -r 's,/bin/bash,${stdenv.shell},g' -i ./configure
+ sed -r 's,/sbin/ldconfig,ldconfig,g' -i ./Makefile.template
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ lv2 gtkmm2 boost ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://ll-plugins.nongnu.org/hacking.html";
+ description = "Tools and libraries that may come in handy when writing LV2 plugins in C++";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.michalrus ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lv2bm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/lv2bm/default.nix
new file mode 100644
index 000000000000..99a2665bc129
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lv2bm/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, glib, libsndfile, lilv, lv2, pkgconfig, serd, sord, sratom }:
+
+stdenv.mkDerivation rec {
+ pname = "lv2bm";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "moddevices";
+ repo = "lv2bm";
+ rev = "v${version}";
+ sha256 = "0vlppxfb9zbmffazs1kiyb79py66s8x9hihj36m2vz86zsq7ybl0";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib libsndfile lilv lv2 serd sord sratom ];
+
+ installPhase = ''
+ make install PREFIX=$out
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/portalmod/lv2bm";
+ description = "A benchmark tool for LV2 plugins";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/lyrebird/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/lyrebird/default.nix
new file mode 100644
index 000000000000..b40dbfe65bf8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/lyrebird/default.nix
@@ -0,0 +1,63 @@
+{ python3Packages
+, lib
+, fetchFromGitHub
+, makeDesktopItem
+, wrapGAppsHook
+, gtk3
+, gobject-introspection
+, sox
+, pulseaudio
+}:
+let
+ desktopItem = makeDesktopItem {
+ name = "lyrebird";
+ exec = "lyrebird";
+ icon = "${placeholder "out"}/share/lyrebird/icon.png";
+ desktopName = "Lyrebird";
+ genericName = "Voice Changer";
+ categories = "AudioVideo;Audio;";
+ };
+in
+python3Packages.buildPythonApplication rec {
+ pname = "lyrebird";
+ version = "1.1.0";
+
+ format = "other";
+ doCheck = false;
+
+ src = fetchFromGitHub {
+ owner = "chxrlt";
+ repo = "lyrebird";
+ rev = "v${version}";
+ sha256 = "0wmnww2wi8bb9m8jgc18n04gjia8pf9klmvij0w98xz11l6kxb13";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ toml pygobject3 ];
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+
+ buildInputs = [ gtk3 gobject-introspection sox ];
+
+ dontWrapGApps = true;
+ makeWrapperArgs = [
+ "--prefix 'PATH' ':' '${lib.makeBinPath [ sox pulseaudio ]}'"
+ "--prefix 'PYTHONPATH' ':' '${placeholder "out"}/share/lyrebird'"
+ "--run 'cd ${placeholder "out"}/share/lyrebird'"
+ ''"''${gappsWrapperArgs[@]}"''
+ ];
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/{applications,lyrebird}}
+ cp -at $out/share/lyrebird/ app icon.png
+ cp -at $out/share/applications/ ${desktopItem}
+ install -Dm755 app.py $out/bin/lyrebird
+ '';
+
+ meta = with lib; {
+ description = "Simple and powerful voice changer for Linux, written in GTK 3";
+ homepage = "https://github.com/chxrlt/lyrebird";
+ license = licenses.mit;
+ maintainers = with maintainers; [ OPNA2608 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
new file mode 100644
index 000000000000..e16198696a69
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "CharacterCompressor";
+ version = "0.3.3";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "CharacterCompressor";
+ rev = "V${version}";
+ sha256 = "1h0bhjhx023476gbijq842b6f8z71zcyn4c9mddwyb18w9cdamp5";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ faust2jaqt -vec -time -t 99999 CharacterCompressor.dsp
+ faust2jaqt -vec -time -t 99999 CharacterCompressorMono.dsp
+ faust2lv2 -vec -time -gui -t 99999 CharacterCompressor.dsp
+ faust2lv2 -vec -time -gui -t 99999 CharacterCompressorMono.dsp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp CharacterCompressor $out/bin/
+ cp CharacterCompressorMono $out/bin/
+ mkdir -p $out/lib/lv2
+ cp -r CharacterCompressor.lv2/ $out/lib/lv2
+ cp -r CharacterCompressorMono.lv2/ $out/lib/lv2
+ '';
+
+ meta = {
+ description = "A compressor with character. For jack and lv2";
+ homepage = "https://github.com/magnetophon/CharacterCompressor";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
new file mode 100644
index 000000000000..1ccc9f3fcd5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "CompBus";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "CompBus";
+ rev = "V${version}";
+ sha256 = "0yhj680zgk4dn4fi8j3apm72f3z2mjk12amf2a7p0lwn9iyh4a2z";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ for f in *.dsp;
+ do
+ faust2jaqt -time -vec -double -t 99999 $f
+ done
+
+ for f in *.dsp;
+ do
+ faust2lv2 -time -vec -double -gui -t 99999 $f
+ done
+ '';
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2
+ mv *.lv2/ $out/lib/lv2
+ mkdir -p $out/bin
+ for f in $(find . -executable -type f);
+ do
+ cp $f $out/bin/
+ done
+ '';
+
+ meta = {
+ description = "A group of compressors mixed into a bus, sidechained from that mix bus. For jack and lv2";
+ homepage = "https://github.com/magnetophon/CompBus";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
new file mode 100644
index 000000000000..d5ed7e85b696
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "constant-detune-chorus";
+ version = "0.1.3";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "constant-detune-chorus";
+ rev = "V${version}";
+ sha256 = "1sipmc25fr7w7xqx1r0y6i2zwfkgszzwvhk1v15mnsb3cqvk8ybn";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ faust2jaqt -time -vec -t 99999 ConstantDetuneChorus.dsp
+ faust2lv2 -time -vec -t 99999 -gui ConstantDetuneChorus.dsp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ConstantDetuneChorus $out/bin/
+ mkdir -p $out/lib/lv2
+ cp -r ConstantDetuneChorus.lv2/ $out/lib/lv2
+ '';
+
+ meta = {
+ description = "A chorus algorithm that maintains constant and symmetric detuning depth (in cents), regardless of modulation rate. For jack and lv2";
+ homepage = "https://github.com/magnetophon/constant-detune-chorus";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
new file mode 100644
index 000000000000..6d119394d5de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "LazyLimiter";
+ version = "0.3.2";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "LazyLimiter";
+ rev = "V${version}";
+ sha256 = "10xdydwmsnkx8hzsm74pa546yahp29wifydbc48yywv3sfj5anm7";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ faust2jaqt -vec -time -t 99999 LazyLimiter.dsp
+ faust2lv2 -vec -time -t 99999 -gui LazyLimiter.dsp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp LazyLimiter $out/bin/
+ mkdir -p $out/lib/lv2
+ cp -r LazyLimiter.lv2/ $out/lib/lv2
+ '';
+
+ meta = {
+ description = "A fast yet clean lookahead limiter for jack and lv2";
+ homepage = "https://magnetophon.github.io/LazyLimiter/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
new file mode 100644
index 000000000000..0eb68e65eae6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "MBdistortion";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "MBdistortion";
+ rev = "V${version}";
+ sha256 = "0mdzaqmxzgspfgx9w1hdip18y17hwpdcgjyq1rrfm843vkascwip";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ faust2jaqt -time -vec -t 99999 MBdistortion.dsp
+ faust2lv2 -time -vec -gui -t 99999 MBdistortion.dsp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp MBdistortion $out/bin/
+ mkdir -p $out/lib/lv2
+ cp -r MBdistortion.lv2/ $out/lib/lv2
+ '';
+
+ meta = {
+ description = "Mid-side multiband distortion for jack and lv2";
+ homepage = "https://github.com/magnetophon/MBdistortion";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
new file mode 100644
index 000000000000..be8ad72d28df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "RhythmDelay";
+ version = "2.1";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "RhythmDelay";
+ rev = "V${version}";
+ sha256 = "1j0bjl9agz43dcrcrbiqd7fv7xsxgd65s4ahhv5pvcr729y0fxg4";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ faust2jaqt -time -vec -t 99999 RhythmDelay.dsp
+ faust2lv2 -time -vec -t 99999 -gui RhythmDelay.dsp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp RhythmDelay $out/bin/
+ mkdir -p $out/lib/lv2
+ cp -r RhythmDelay.lv2/ $out/lib/lv2
+ '';
+
+ meta = {
+ description = "Tap a rhythm into your delay! For jack and lv2";
+ homepage = "https://github.com/magnetophon/RhythmDelay";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
new file mode 100644
index 000000000000..dce2db4cb770
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, faust2jack, faust2lv2, helmholtz, mrpeach, puredata-with-plugins }:
+stdenv.mkDerivation rec {
+ pname = "VoiceOfFaust";
+ version = "1.1.4";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "VoiceOfFaust";
+ rev = "V${version}";
+ sha256 = "0la9b806qwrlsxgbir7n1db8v3w24wmd6k43p6qpr1fjjpkhrrgw";
+ };
+
+ plugins = [ helmholtz mrpeach ];
+
+ pitchTracker = puredata-with-plugins plugins;
+
+ buildInputs = [ faust2jack faust2lv2 ];
+
+ runtimeInputs = [ pitchTracker ];
+
+ patchPhase = ''
+ sed -i "s@pd -nodac@${pitchTracker}/bin/pd -nodac@g" launchers/synthWrapper
+ sed -i "s@../PureData/OscSendVoc.pd@$out/PureData/OscSendVoc.pd@g" launchers/pitchTracker
+ '';
+
+ buildPhase = ''
+ sh install.sh
+ # so it doesn;t end up in /bin/ :
+ rm -f install.sh
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ for file in ./*; do
+ if test -x "$file" && test -f "$file"; then
+ cp "$file" "$out/bin"
+ fi
+ done
+
+ cp launchers/* $out/bin/
+ mkdir $out/PureData/
+ # cp PureData/OscSendVoc.pd $out/PureData/OscSendVoc.pd
+ cp PureData/* $out/PureData/
+
+ mkdir -p $out/lib/lv2
+ cp -r *.lv2/ $out/lib/lv2
+ '';
+
+ meta = {
+ description = "Turn your voice into a synthesizer";
+ homepage = "https://github.com/magnetophon/VoiceOfFaust";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
new file mode 100644
index 000000000000..172b5ed38913
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ name = "faustCompressors-v${version}";
+ version = "1.2";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "faustCompressors";
+ rev = "v${version}";
+ sha256 = "144f6g17q4m50kxzdncsfzdyycdfprnpwdaxcwgxj4jky1xsha1d";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ echo "hack out autoComp.dsp due to https://github.com/grame-cncm/faust/407/issues "
+ rm autoComp.dsp
+ for f in *.dsp;
+ do
+ echo "compiling standalone from" $f
+ faust2jaqt -time -double -t 99999 $f
+ done
+
+ for f in *.dsp;
+ do
+ echo "Compiling plugin from" $f
+ faust2lv2 -time -double -gui -t 99999 $f
+ done
+ '';
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2
+ mv *.lv2/ $out/lib/lv2
+ mkdir -p $out/bin
+ rm newlib.sh
+ for f in $(find . -executable -type f);
+ do
+ cp $f $out/bin/
+ done
+ '';
+
+ meta = {
+ description = "A collection of bread and butter compressors";
+ homepage = "https://github.com/magnetophon/faustCompressors";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
new file mode 100644
index 000000000000..11d51d756abc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "pluginUtils";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "pluginUtils";
+ rev = "V${version}";
+ sha256 = "1hnr5sp7k6ypf4ks61lnyqx44dkv35yllf3a3xcbrw7yqzagwr1c";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ for f in *.dsp
+ do
+ echo "Building jack standalone for $f"
+ faust2jaqt -vec -time -t 99999 "$f"
+ echo "Building lv2 for $f"
+ faust2lv2 -vec -time -gui -t 99999 "$f"
+ done
+ '';
+
+ installPhase = ''
+ rm -f *.dsp
+ rm -f *.lib
+ mkdir -p $out/lib/lv2
+ mv *.lv2/ $out/lib/lv2
+ mkdir -p $out/bin
+ cp * $out/bin/
+ '';
+
+ meta = {
+ description = "Some simple utility lv2 plugins";
+ homepage = "https://github.com/magnetophon/pluginUtils";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
new file mode 100644
index 000000000000..360cee243c33
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "shelfMultiBand";
+ version = "0.6.1";
+
+ src = fetchFromGitHub {
+ owner = "magnetophon";
+ repo = "shelfMultiBand";
+ rev = "V${version}";
+ sha256 = "1b1h4z5fs2xm7wvw11p9wnd0bxs3m88124f5phh0gwvpsdrd0im5";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ faust2jaqt -vec -double -time -t 99999 shelfMultiBand.dsp
+ faust2jaqt -vec -double -time -t 99999 shelfMultiBandMono.dsp
+ faust2lv2 -vec -double -time -gui -t 99999 shelfMultiBandMono.dsp
+ faust2lv2 -vec -double -time -gui -t 99999 shelfMultiBand.dsp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp shelfMultiBand $out/bin/
+ cp shelfMultiBandMono $out/bin/
+ mkdir -p $out/lib/lv2
+ cp -r shelfMultiBand.lv2/ $out/lib/lv2
+ cp -r shelfMultiBandMono.lv2/ $out/lib/lv2
+ '';
+
+ meta = {
+ description = "A multiband compressor made from shelving filters.";
+ homepage = "https://github.com/magnetophon/shelfMultiBand";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mamba/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mamba/default.nix
new file mode 100644
index 000000000000..dc8620fdd4e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mamba/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, cairo
+, fluidsynth
+, libX11
+, libjack2
+, alsaLib
+, liblo
+, libsigcxx
+, libsmf
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mamba";
+ version = "1.8";
+
+ src = fetchFromGitHub {
+ owner = "brummer10";
+ repo = "Mamba";
+ rev = "v${version}";
+ sha256 = "049gvdvvv3hkh1b47h0bia02g1p71agwh6g7q0n4yxz4d81b8kha";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ cairo fluidsynth libX11 libjack2 alsaLib liblo libsigcxx libsmf ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/brummer10/Mamba";
+ description = "Virtual MIDI keyboard for Jack Audio Connection Kit";
+ license = licenses.bsd0;
+ maintainers = with maintainers; [ magnetophon orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
new file mode 100644
index 000000000000..2464abb6585c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, fftwSinglePrec, lv2, pkgconfig, wafHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mda-lv2";
+ version = "1.2.4";
+
+ src = fetchurl {
+ url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
+ sha256 = "1a3cv6w5xby9yn11j695rbh3c4ih7rxfxmkca9s1324ljphh06m8";
+ };
+
+ nativeBuildInputs = [ pkgconfig wafHook ];
+ buildInputs = [ fftwSinglePrec lv2 ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://drobilla.net/software/mda-lv2/";
+ description = "An LV2 port of the MDA plugins by Paul Kellett";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix
new file mode 100644
index 000000000000..37c384967737
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix
@@ -0,0 +1,70 @@
+{ cmake
+, fetchFromGitLab
+, lib
+, libnotify
+, mkDerivation
+, pkgconfig
+, qtbase
+, qtdeclarative
+, qtgraphicaleffects
+, qtquickcontrols2
+, qttools
+, qtwebengine
+}:
+
+mkDerivation rec {
+ pname = "MellowPlayer";
+ version = "3.6.7";
+
+ src = fetchFromGitLab {
+ owner = "ColinDuquesnoy";
+ repo = "MellowPlayer";
+ rev = version;
+ sha256 = "1p0z8hkbxaxrqjmknjwxb0mpf3xdssik3m5cwrsv1881k1x2x5qs";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ libnotify
+ qtbase
+ qtdeclarative
+ qtgraphicaleffects
+ qtquickcontrols2
+ qttools
+ qtwebengine
+ ];
+
+ doCheck = true;
+
+ cmakeFlags = [ "-DBUILD_TESTS=ON" ];
+
+ preCheck = ''
+ # Running the tests requires a location at the home directory for logging.
+ export HOME="$NIX_BUILD_TOP/home"
+ mkdir -p "$HOME/.local/share/MellowPlayer.Tests/MellowPlayer.Tests/Logs"
+
+ # Without this, the tests fail because they cannot create the QT Window
+ export QT_QPA_PLATFORM=offscreen
+ ''
+ # TODO: The tests are failing because it can't locate QT plugins. Is there a better way to do this?
+ + (builtins.concatStringsSep "\n" (lib.lists.flatten (builtins.map
+ (pkg: [
+ (lib.optionalString (pkg ? qtPluginPrefix) ''
+ export QT_PLUGIN_PATH="${pkg}/${pkg.qtPluginPrefix}"''${QT_PLUGIN_PATH:+':'}$QT_PLUGIN_PATH
+ '')
+
+ (lib.optionalString (pkg ? qtQmlPrefix) ''
+ export QML2_IMPORT_PATH="${pkg}/${pkg.qtQmlPrefix}"''${QML2_IMPORT_PATH:+':'}$QML2_IMPORT_PATH
+ '')
+ ]) buildInputs)));
+
+ meta = with lib; {
+ inherit (qtbase.meta) platforms;
+
+ description = "Cloud music integration for your desktop";
+ homepage = "https://gitlab.com/ColinDuquesnoy/MellowPlayer";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/buf_rect.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/buf_rect.patch
new file mode 100644
index 000000000000..f108b80c1019
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/buf_rect.patch
@@ -0,0 +1,12 @@
+--- ../tmp-orig/meterbridge-0.9.2/src/main.h 2003-06-05 11:42:41.000000000 +0200
++++ ./src/main.h 2004-12-29 10:27:24.160912488 +0100
+@@ -8,7 +8,7 @@
+
+ extern SDL_Surface *screen;
+ extern SDL_Surface *image, *meter, *meter_buf;
+-extern SDL_Rect win, buf_rect[MAX_METERS], dest[MAX_METERS];
++extern SDL_Rect win, dest[MAX_METERS];
+
+ extern jack_port_t *input_ports[MAX_METERS];
+ extern jack_port_t *output_ports[MAX_METERS];
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/default.nix
new file mode 100644
index 000000000000..9d807358cd5a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, SDL, SDL_image, libjack2
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.9.3";
+ pname = "meterbridge";
+
+ src = fetchurl {
+ url = "http://plugin.org.uk/meterbridge/${pname}-${version}.tar.gz";
+ sha256 = "0s7n3czfpil94vsd7iblv4xrck9c7zvsz4r3yfbkqcv85pjz1viz";
+ };
+
+ patches = [ ./buf_rect.patch ./fix_build_with_gcc-5.patch];
+
+ buildInputs =
+ [ pkgconfig SDL SDL_image libjack2
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Various meters (VU, PPM, DPM, JF, SCO) for Jack Audio Connection Kit";
+ homepage = "http://plugin.org.uk/meterbridge/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.nico202 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch
new file mode 100644
index 000000000000..a738cd0b82a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch
@@ -0,0 +1,31 @@
+Description: Fix build with gcc-5
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=778003
+Author: Jaromír Mikeš <mira.mikes@seznam.cz>
+Forwarded: No
+
+Index: meterbridge/src/linedraw.h
+===================================================================
+--- meterbridge.orig/src/linedraw.h
++++ meterbridge/src/linedraw.h
+@@ -1,7 +1,7 @@
+ #ifndef LINEDRAW_H
+ #define LINEDRAW_H
+
+-inline void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col);
++void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col);
+
+ void draw_ptr(SDL_Surface *surface, int x1, int y1, int x2, int y2, Uint32 nedle_col, Uint32 aa_col);
+
+Index: meterbridge/src/linedraw.c
+===================================================================
+--- meterbridge.orig/src/linedraw.c
++++ meterbridge/src/linedraw.c
+@@ -4,7 +4,7 @@
+ /* set a pixel on an SDL_Surface, assumes that the surface is 32bit RGBA,
+ * ordered ABGR (I think), probably wont work on bigendian systems */
+
+-inline void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col)
++void set_rgba(SDL_Surface *surface, Uint32 x, Uint32 y, Uint32 col)
+ {
+ Uint32 *bufp = (Uint32 *)surface->pixels + y*surface->pitch/4 + x;
+ *bufp = col;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix
new file mode 100644
index 000000000000..cd9523d27108
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig
+, lv2, libGLU, libGL, gtk2, cairo, pango, fftwFloat, libjack2 }:
+
+let
+ version = "0.9.10";
+ name = "meters.lv2-${version}";
+
+ # robtk submodule is pegged to this version
+ robtkVersion = "0.6.2";
+ robtkName = "robtk-${robtkVersion}";
+
+ src = fetchurl {
+ name = "${name}.tar.gz";
+ url = "https://github.com/x42/meters.lv2/archive/v${version}.tar.gz";
+ sha256 = "0yfyn7j8g50w671b1z7ph4ppjx8ddj5c6nx53syp5y5mfr1b94nx";
+ };
+
+ robtkSrc = fetchurl {
+ name = "${robtkName}.tar.gz";
+ url = "https://github.com/x42/robtk/archive/v${robtkVersion}.tar.gz";
+ sha256 = "1v79xys1k2923wpivdjd44vand6c4agwvnrqi4c8kdv9r07b559v";
+ };
+
+in
+stdenv.mkDerivation {
+ inherit name;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ lv2 libGLU libGL gtk2 cairo pango fftwFloat libjack2 ];
+
+ srcs = [ src robtkSrc ];
+ sourceRoot = name;
+
+ postUnpack = "mv ${robtkName}/* ${name}/robtk"; # */
+
+ preConfigure = "makeFlagsArray=( PREFIX=$out )";
+ meter_VERSION = version;
+
+ meta = with stdenv.lib;
+ { description = "Collection of audio level meters with GUI in LV2 plugin format";
+ homepage = "http://x42.github.io/meters.lv2/";
+ maintainers = with maintainers; [ ehmry ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
new file mode 100644
index 000000000000..67204260da24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, makeWrapper, SDL, alsaLib, autoreconfHook, gtk2, libjack2, ladspaH
+, ladspaPlugins, libsamplerate, libsndfile, pkgconfig, libpulseaudio, lame
+, vorbis-tools }:
+
+stdenv.mkDerivation rec {
+ pname = "mhwaveedit";
+ version = "1.4.24";
+
+ src = fetchFromGitHub {
+ owner = "magnush";
+ repo = "mhwaveedit";
+ rev = "v${version}";
+ sha256 = "037pbq23kh8hsih994x2sv483imglwcrqrx6m8visq9c46fi0j1y";
+ };
+
+ nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
+
+ preAutoreconf = "(cd docgen && sh gendocs.sh)";
+
+ buildInputs = [
+ SDL alsaLib gtk2 libjack2 ladspaH libsamplerate libsndfile libpulseaudio
+ ];
+
+ configureFlags = [ "--with-default-ladspa-path=${ladspaPlugins}/lib/ladspa" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/mhwaveedit \
+ --prefix PATH : ${lame}/bin/ \
+ --prefix PATH : ${vorbis-tools}/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Graphical program for editing, playing and recording sound files";
+ homepage = "https://github.com/magnush/mhwaveedit";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mi2ly/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mi2ly/default.nix
new file mode 100644
index 000000000000..58c1690a9bb0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mi2ly/default.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchurl}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="mi2ly";
+ version="0.12";
+ name="${baseName}-${version}";
+ hash="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
+ url="https://download.savannah.gnu.org/releases/mi2ly/mi2ly.0.12.tar.bz2";
+ sha256="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
+ };
+ buildInputs = [
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+
+ sourceRoot=".";
+
+ hardeningDisable = [ "format" ];
+
+ buildPhase = "./cc";
+ installPhase = ''
+ mkdir -p "$out"/{bin,share/doc/mi2ly}
+ cp mi2ly "$out/bin"
+ cp README Doc.txt COPYING Manual.txt "$out/share/doc/mi2ly"
+ '';
+
+ meta = {
+ inherit (s) version;
+ description = ''MIDI to Lilypond converter'';
+ license = stdenv.lib.licenses.gpl2Plus ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ broken = true; # 2018-04-11
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mi2ly/default.upstream b/infra/libkookie/nixpkgs/pkgs/applications/audio/mi2ly/default.upstream
new file mode 100644
index 000000000000..0b2607989aa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mi2ly/default.upstream
@@ -0,0 +1,3 @@
+url https://download.savannah.gnu.org/releases/mi2ly/
+ensure_choice
+version '.*/mi2ly[.]([0-9.]+)[.]tar.*' '\1'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mid2key/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mid2key/default.nix
new file mode 100644
index 000000000000..071b18e5a8a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mid2key/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, alsaLib, libX11, libXi, libXtst, xorgproto }:
+
+stdenv.mkDerivation rec {
+ name = "mid2key-r1";
+
+ src = fetchurl {
+ url = "http://mid2key.googlecode.com/files/${name}.tar.gz";
+ sha256 = "0j2vsjvdgx51nd1qmaa18mcy0yw9pwrhbv2mdwnf913bwsk4y904";
+ };
+
+ unpackPhase = "tar xvzf $src";
+
+ buildInputs = [ alsaLib libX11 libXi libXtst xorgproto ];
+
+ buildPhase = "make";
+
+ installPhase = "mkdir -p $out/bin && mv mid2key $out/bin";
+
+ meta = with stdenv.lib; {
+ homepage = "http://code.google.com/p/mid2key/";
+ description = "A simple tool which maps midi notes to simulated keystrokes";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/midas/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/midas/generic.nix
new file mode 100644
index 000000000000..769593919d46
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/midas/generic.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, lib, libX11, libXext, alsaLib, freetype, brand, type, version, homepage, url, sha256, ... }:
+stdenv.mkDerivation rec {
+ inherit type;
+ baseName = "${type}-Edit";
+ name = "${lib.toLower baseName}-${version}";
+
+ src = fetchurl {
+ inherit url;
+ inherit sha256;
+ };
+
+ sourceRoot = ".";
+ dontBuild = true;
+ dontStrip = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ${baseName} $out/bin
+ '';
+ preFixup = let
+ # we prepare our library path in the let clause to avoid it become part of the input of mkDerivation
+ libPath = lib.makeLibraryPath [
+ libX11 # libX11.so.6
+ libXext # libXext.so.6
+ alsaLib # libasound.so.2
+ freetype # libfreetype.so.6
+ stdenv.cc.cc.lib # libstdc++.so.6
+ ];
+ in ''
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libPath}" \
+ $out/bin/${baseName}
+ '';
+
+ meta = with stdenv.lib; {
+ inherit homepage;
+ description = "Editor for the ${brand} ${type} digital mixer";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/midas/m32edit.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/midas/m32edit.nix
new file mode 100644
index 000000000000..082da1621be3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/midas/m32edit.nix
@@ -0,0 +1,10 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+ brand = "Midas";
+ type = "M32";
+ version = "4.1";
+ url = "https://mediadl.musictribe.com/download/software/midas_${type}/${type}-Edit_LINUX_64-Bit_${version}.tar.gz";
+ sha256 = "0aqhdrxqa49liyvbbw5x32kwk0h1spzvmizmdxklrfs64vvr9bvh";
+ homepage = "https://midasconsoles.com/midas/product?modelCode=P0B3I";
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/midas/x32edit.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/midas/x32edit.nix
new file mode 100644
index 000000000000..a07c83a9dfe4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/midas/x32edit.nix
@@ -0,0 +1,10 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+ brand = "Behringer";
+ type = "X32";
+ version = "4.1";
+ url = "https://mediadl.musictribe.com/download/software/behringer/${type}/${type}-Edit_LINUX_64-Bit_${version}.tar.gz";
+ sha256 = "0zsw7qfmcci87skkpq8vx5zxk35phn8y4byispvki9ascifnnb33";
+ homepage = "https://www.behringer.com/behringer/product?modelCode=P0ASF";
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
new file mode 100644
index 000000000000..64c0cae7a648
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, libX11, glfw, makeWrapper,
+ libXrandr, libXinerama, libXcursor, gtk3, ffmpeg-full, ...}:
+
+stdenv.mkDerivation rec {
+ pname = "MIDIVisualizer";
+ version = "5.2";
+
+ src = fetchFromGitHub {
+ owner = "kosua20";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "19z8m6clirz8kwfjp0z1j69fjfna8ar7hkgqnlm3lrc84gyx2rpf";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config makeWrapper];
+
+ buildInputs = [
+ libX11
+ glfw
+ libXrandr
+ libXinerama
+ libXcursor
+ gtk3
+ ffmpeg-full
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp MIDIVisualizer $out/bin
+
+ wrapProgram $out/bin/MIDIVisualizer \
+ --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A small MIDI visualizer tool, using OpenGL";
+ homepage = "https://github.com/kosua20/MIDIVisualizer";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.ericdallo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
new file mode 100644
index 000000000000..388fc2a1b3ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl
+, mono, dotnetPackages, makeWrapper
+, gtk2, cups, timidity }:
+
+let
+ version = "2.6";
+in stdenv.mkDerivation {
+ pname = "midisheetmusic";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/midisheetmusic/MidiSheetMusic-${version}-linux-src.tar.gz";
+ sha256 = "05c6zskj50g29f51lx8fvgzsi3f31z01zj6ssjjrgr7jfs7ak70p";
+ };
+
+ checkInputs = (with dotnetPackages; [ NUnitConsole ]);
+ nativeBuildInputs = [ mono makeWrapper ];
+
+ buildPhase = ''
+ for i in Classes/MidiPlayer.cs Classes/MidiSheetMusic.cs
+ do
+ substituteInPlace $i --replace "/usr/bin/timidity" "${timidity}/bin/timidity"
+ done
+
+ ./build.sh
+ '';
+
+ # include missing file with unit tests for building
+ # switch from mono nunit dll to standalone dll otherwise mono compiler barks
+ # run via nunit3 console, because mono nunit console wants access $HOME
+ checkPhase = ''
+ substituteInPlace UnitTestDLL.csproj \
+ --replace "</Compile>" '</Compile><Compile Include="Classes\UnitTest.cs"/>' \
+ --replace nunit.framework.dll "${dotnetPackages.NUnit}/lib/dotnet/NUnit/nunit.framework.dll"
+ ./build_unit_test.sh
+ nunit3-console bin/Debug/UnitTest.dll
+ '';
+
+ # 2 tests of 47 are still failing
+ doCheck = false;
+
+ installPhase = ''
+ mkdir -p $out/share/applications $out/share/pixmaps $out/bin
+
+ cp deb/midisheetmusic.desktop $out/share/applications
+ cp NotePair.png $out/share/pixmaps/midisheetmusic.png
+ cp bin/Debug/MidiSheetMusic.exe $out/bin/.MidiSheetMusic.exe
+
+ makeWrapper ${mono}/bin/mono $out/bin/midisheetmusic.mono.exe \
+ --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ gtk2 cups ]} \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ timidity ]} \
+ --add-flags $out/bin/.MidiSheetMusic.exe
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Convert MIDI Files to Piano Sheet Music for two hands";
+ homepage = "http://midisheetmusic.com";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.gnidorah ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mikmod/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mikmod/default.nix
new file mode 100644
index 000000000000..9be303cb652a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mikmod/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libmikmod, ncurses }:
+
+stdenv.mkDerivation rec {
+ name = "mikmod-3.2.8";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mikmod/${name}.tar.gz";
+ sha256 = "1k54p8pn3jinha0f2i23ad15pf1pamibzcxjrbzjbklpcz1ipc6v";
+ };
+
+ buildInputs = [ libmikmod ncurses ];
+
+ meta = {
+ description = "Tracker music player for the terminal";
+ homepage = "http://mikmod.shlomifish.org/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/milkytracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
new file mode 100644
index 000000000000..d7b9e5a6355b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, makeWrapper
+, SDL2, alsaLib, libjack2, lhasa, perl, rtmidi, zlib, zziplib }:
+
+stdenv.mkDerivation rec {
+ version = "1.02.00";
+ pname = "milkytracker";
+
+ src = fetchFromGitHub {
+ owner = "milkytracker";
+ repo = "MilkyTracker";
+ rev = "v${version}";
+ sha256 = "05a6d7l98k9i82dwrgi855dnccm3f2lkb144gi244vhk1156n0ca";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+
+ buildInputs = [ SDL2 alsaLib libjack2 lhasa perl rtmidi zlib zziplib ];
+
+ # Somehow this does not get set automatically
+ cmakeFlags = [ "-DSDL2MAIN_LIBRARY=${SDL2}/lib/libSDL2.so" ];
+
+ meta = with stdenv.lib; {
+ description = "Music tracker application, similar to Fasttracker II";
+ homepage = "http://milkytracker.org";
+ license = licenses.gpl3Plus;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = with maintainers; [ zoomulator ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mimic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mimic/default.nix
new file mode 100644
index 000000000000..e33e69ad78c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mimic/default.nix
@@ -0,0 +1,34 @@
+{ config, stdenv, autoreconfHook, fetchFromGitHub, pkgconfig
+, alsaLib, libtool, icu
+, pulseaudioSupport ? config.pulseaudio or false, libpulseaudio }:
+
+stdenv.mkDerivation rec {
+ pname = "mimic";
+ version = "1.2.0.2";
+
+ src = fetchFromGitHub {
+ rev = version;
+ repo = "mimic";
+ owner = "MycroftAI";
+ sha256 = "1wkpbwk88lsahzkc7pzbznmyy0lc02vsp0vkj8f1ags1gh0lc52j";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ ];
+
+ buildInputs = [
+ alsaLib
+ libtool
+ icu
+ ] ++ stdenv.lib.optional pulseaudioSupport libpulseaudio;
+
+ meta = {
+ description = "Mycroft's TTS engine, based on CMU's Flite (Festival Lite)";
+ homepage = "https://mimic.mycroft.ai/";
+ license = stdenv.lib.licenses.free;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.noneucat ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mimms/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mimms/default.nix
new file mode 100644
index 000000000000..47e9fa306dc4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mimms/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv, pythonPackages, libmms }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "mimms";
+ version = "3.2";
+
+ src = fetchurl {
+ url = "https://download.savannah.gnu.org/releases/mimms/mimms-${version}.tar.bz2";
+ sha256 = "0zmcd670mpq85cs3nvdq3i805ba0d1alqahfy1m9cpf7kxrivfml";
+ };
+
+ postInstall = ''
+ wrapProgram $out/bin/mimms \
+ --prefix LD_LIBRARY_PATH : ${libmms}/lib
+ '';
+
+ meta = {
+ homepage = "https://savannah.nongnu.org/projects/mimms/";
+ license = stdenv.lib.licenses.gpl3;
+ description = "An mms (e.g. mms://) stream downloader";
+
+ longDescription = ''
+ mimms is a program designed to allow you to download streams
+ using the MMS protocol and save them to your computer, as
+ opposed to watching them live. Similar functionality is
+ available in full media player suites such as Xine, MPlayer,
+ and VLC, but mimms is quick and easy to use and, for the time
+ being, remains a useful program.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mixxx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mixxx/default.nix
new file mode 100644
index 000000000000..576dd4d97b35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mixxx/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, mkDerivation, fetchurl, fetchFromGitHub, chromaprint
+, fftw, flac, faad2, glibcLocales, mp4v2
+, libid3tag, libmad, libopus, libshout, libsndfile, libusb1, libvorbis
+, libGLU, libxcb, lilv, lv2, opusfile
+, pkgconfig, portaudio, portmidi, protobuf, qtbase, qtscript, qtsvg
+, qtx11extras, rubberband, sconsPackages, sqlite, taglib, upower, vamp-plugin-sdk
+}:
+
+let
+ # Because libshout 2.4.2 and newer seem to break streaming in mixxx, build it
+ # with 2.4.1 instead.
+ libshout241 = libshout.overrideAttrs (o: rec {
+ name = "libshout-2.4.1";
+ src = fetchurl {
+ url = "http://downloads.xiph.org/releases/libshout/${name}.tar.gz";
+ sha256 = "0kgjpf8jkgyclw11nilxi8vyjk4s8878x23qyxnvybbgqbgbib7k";
+ };
+ });
+in
+mkDerivation rec {
+ pname = "mixxx";
+ version = "2.2.4";
+
+ src = fetchFromGitHub {
+ owner = "mixxxdj";
+ repo = "mixxx";
+ rev = "release-${version}";
+ sha256 = "1dj9li8av9b2kbm76jvvbdmihy1pyrw0s4xd7dd524wfhwr1llxr";
+ };
+
+ nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
+ buildInputs = [
+ chromaprint fftw flac faad2 glibcLocales mp4v2 libid3tag libmad libopus libshout241 libsndfile
+ libusb1 libvorbis libxcb libGLU lilv lv2 opusfile pkgconfig portaudio portmidi protobuf qtbase qtscript qtsvg
+ qtx11extras rubberband sqlite taglib upower vamp-plugin-sdk
+ ];
+
+ enableParallelBuilding = true;
+
+ sconsFlags = [
+ "build=release"
+ "qtdir=${qtbase}"
+ "faad=1"
+ "opus=1"
+ ];
+
+ qtWrapperArgs = [
+ "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://mixxx.org";
+ description = "Digital DJ mixing software";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.goibhniu maintainers.bfortz ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/moc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/moc/default.nix
new file mode 100644
index 000000000000..9f68f8bb8e8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/moc/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchurl, pkgconfig
+, ncurses, db , popt, libtool
+# Sound sub-systems
+, alsaSupport ? true, alsaLib
+, pulseSupport ? true, libpulseaudio, autoreconfHook
+, jackSupport ? true, libjack2
+, ossSupport ? true
+# Audio formats
+, aacSupport ? true, faad2, libid3tag
+, flacSupport ? true, flac
+, midiSupport ? true, timidity
+, modplugSupport ? true, libmodplug
+, mp3Support ? true, libmad
+, musepackSupport ? true, libmpc, libmpcdec, taglib
+, vorbisSupport ? true, libvorbis
+, speexSupport ? true, speex
+, ffmpegSupport ? true, ffmpeg_3
+, sndfileSupport ? true, libsndfile
+, wavpackSupport ? true, wavpack
+# Misc
+, withffmpeg4 ? false, ffmpeg_4
+, curlSupport ? true, curl
+, samplerateSupport ? true, libsamplerate
+, withDebug ? false
+}:
+
+let
+ opt = stdenv.lib.optional;
+ mkFlag = c: f: if c then "--with-${f}" else "--without-${f}";
+
+in stdenv.mkDerivation rec {
+
+ pname = "moc";
+ version = "2.5.2";
+
+ src = fetchurl {
+ url = "http://ftp.daper.net/pub/soft/moc/stable/moc-${version}.tar.bz2";
+ sha256 = "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk";
+ };
+
+ patches = []
+ ++ opt withffmpeg4 ./moc-ffmpeg4.patch
+ ++ opt pulseSupport ./pulseaudio.patch;
+
+ nativeBuildInputs = [ pkgconfig ]
+ ++ opt pulseSupport autoreconfHook;
+
+ buildInputs = [ ncurses db popt libtool ]
+ # Sound sub-systems
+ ++ opt alsaSupport alsaLib
+ ++ opt pulseSupport libpulseaudio
+ ++ opt jackSupport libjack2
+ # Audio formats
+ ++ opt (aacSupport || mp3Support) libid3tag
+ ++ opt aacSupport faad2
+ ++ opt flacSupport flac
+ ++ opt midiSupport timidity
+ ++ opt modplugSupport libmodplug
+ ++ opt mp3Support libmad
+ ++ stdenv.lib.optionals musepackSupport [ libmpc libmpcdec taglib ]
+ ++ opt vorbisSupport libvorbis
+ ++ opt speexSupport speex
+ ++ opt (ffmpegSupport && !withffmpeg4) ffmpeg_3
+ ++ opt (ffmpegSupport && withffmpeg4) ffmpeg_4
+ ++ opt sndfileSupport libsndfile
+ ++ opt wavpackSupport wavpack
+ # Misc
+ ++ opt curlSupport curl
+ ++ opt samplerateSupport libsamplerate;
+
+ configureFlags = [
+ # Sound sub-systems
+ (mkFlag alsaSupport "alsa")
+ (mkFlag pulseSupport "pulse")
+ (mkFlag jackSupport "jack")
+ (mkFlag ossSupport "oss")
+ # Audio formats
+ (mkFlag aacSupport "aac")
+ (mkFlag flacSupport "flac")
+ (mkFlag midiSupport "timidity")
+ (mkFlag modplugSupport "modplug")
+ (mkFlag mp3Support "mp3")
+ (mkFlag musepackSupport "musepack")
+ (mkFlag vorbisSupport "vorbis")
+ (mkFlag speexSupport "speex")
+ (mkFlag ffmpegSupport "ffmpeg")
+ (mkFlag sndfileSupport "sndfile")
+ (mkFlag wavpackSupport "wavpack")
+ # Misc
+ (mkFlag curlSupport "curl")
+ (mkFlag samplerateSupport "samplerate")
+ ("--enable-debug=" + (if withDebug then "yes" else "no"))
+ "--disable-cache"
+ "--without-rcc"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An ncurses console audio player designed to be powerful and easy to use";
+ homepage = "http://moc.daper.net/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ aethelz pSub jagajaga ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch
new file mode 100644
index 000000000000..7499f9c539bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch
@@ -0,0 +1,33 @@
+Index: decoder_plugins/ffmpeg/ffmpeg.c
+===================================================================
+--- /decoder_plugins/ffmpeg/ffmpeg.c (revisión: 2963)
++++ /decoder_plugins/ffmpeg/ffmpeg.c (copia de trabajo)
+@@ -697,7 +697,7 @@
+ * FFmpeg/LibAV in use. For some versions this will be caught in
+ * *_find_stream_info() above and misreported as an unfound codec
+ * parameters error. */
+- if (data->codec->capabilities & CODEC_CAP_EXPERIMENTAL) {
++ if (data->codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) {
+ decoder_error (&data->error, ERROR_FATAL, 0,
+ "The codec is experimental and may damage MOC: %s",
+ data->codec->name);
+@@ -705,8 +705,8 @@
+ }
+
+ set_downmixing (data);
+- if (data->codec->capabilities & CODEC_CAP_TRUNCATED)
+- data->enc->flags |= CODEC_FLAG_TRUNCATED;
++ if (data->codec->capabilities & AV_CODEC_CAP_TRUNCATED)
++ data->enc->flags |= AV_CODEC_FLAG_TRUNCATED;
+
+ if (avcodec_open2 (data->enc, data->codec, NULL) < 0)
+ {
+@@ -725,7 +725,7 @@
+
+ data->sample_width = sfmt_Bps (data->fmt);
+
+- if (data->codec->capabilities & CODEC_CAP_DELAY)
++ if (data->codec->capabilities & AV_CODEC_CAP_DELAY)
+ data->delay = true;
+ data->seek_broken = is_seek_broken (data);
+ data->timing_broken = is_timing_broken (data->ic);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch
new file mode 100644
index 000000000000..37d81dddf2bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch
@@ -0,0 +1,800 @@
+diff --git a/audio.c b/audio.c
+--- a/audio.c
++++ b/audio.c
+@@ -32,6 +32,9 @@
+ #include "log.h"
+ #include "lists.h"
+
++#ifdef HAVE_PULSE
++# include "pulse.h"
++#endif
+ #ifdef HAVE_OSS
+ # include "oss.h"
+ #endif
+@@ -893,6 +896,15 @@
+ }
+ #endif
+
++#ifdef HAVE_PULSE
++ if (!strcasecmp(name, "pulseaudio")) {
++ pulse_funcs (funcs);
++ printf ("Trying PulseAudio...\n");
++ if (funcs->init(&hw_caps))
++ return;
++ }
++#endif
++
+ #ifdef HAVE_OSS
+ if (!strcasecmp(name, "oss")) {
+ oss_funcs (funcs);
+diff --git a/configure.in b/configure.in
+--- a/configure.in
++++ b/configure.in
+@@ -162,6 +162,21 @@
+ AC_MSG_ERROR([BerkeleyDB (libdb) not found.]))
+ fi
+
++AC_ARG_WITH(pulse, AS_HELP_STRING(--without-pulse,
++ Compile without PulseAudio support.))
++
++if test "x$with_pulse" != "xno"
++then
++ PKG_CHECK_MODULES(PULSE, [libpulse],
++ [SOUND_DRIVERS="$SOUND_DRIVERS PULSE"
++ EXTRA_OBJS="$EXTRA_OBJS pulse.o"
++ AC_DEFINE([HAVE_PULSE], 1, [Define if you have PulseAudio.])
++ EXTRA_LIBS="$EXTRA_LIBS $PULSE_LIBS"
++ CFLAGS="$CFLAGS $PULSE_CFLAGS"],
++ [true])
++fi
++
++
+ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],
+ [Compile without OSS support]))
+
+diff --git a/options.c b/options.c
+--- a/options.c
++++ b/options.c
+@@ -572,10 +572,11 @@
+
+ #ifdef OPENBSD
+ add_list ("SoundDriver", "SNDIO:JACK:OSS",
+- CHECK_DISCRETE(5), "SNDIO", "Jack", "ALSA", "OSS", "null");
++ CHECK_DISCRETE(5), "SNDIO", "PulseAudio", "Jack", "ALSA", "OSS", "null");
++
+ #else
+ add_list ("SoundDriver", "Jack:ALSA:OSS",
+- CHECK_DISCRETE(5), "SNDIO", "Jack", "ALSA", "OSS", "null");
++ CHECK_DISCRETE(5), "SNDIO", "PulseAudio", "Jack", "ALSA", "OSS", "null");
+ #endif
+
+ add_str ("JackClientName", "moc", CHECK_NONE);
+diff --git a/pulse.c b/pulse.c
+new file mode 100644
+--- /dev/null
++++ b/pulse.c
+@@ -0,0 +1,705 @@
++/*
++ * MOC - music on console
++ * Copyright (C) 2011 Marien Zwart <marienz@marienz.net>
++ *
++ * 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 2 of the License, or
++ * (at your option) any later version.
++ *
++ */
++
++/* PulseAudio backend.
++ *
++ * FEATURES:
++ *
++ * Does not autostart a PulseAudio server, but uses an already-started
++ * one, which should be better than alsa-through-pulse.
++ *
++ * Supports control of either our stream's or our entire sink's volume
++ * while we are actually playing. Volume control while paused is
++ * intentionally unsupported: the PulseAudio documentation strongly
++ * suggests not passing in an initial volume when creating a stream
++ * (allowing the server to track this instead), and we do not know
++ * which sink to control if we do not have a stream open.
++ *
++ * IMPLEMENTATION:
++ *
++ * Most client-side (resource allocation) errors are fatal. Failure to
++ * create a server context or stream is not fatal (and MOC should cope
++ * with these failures too), but server communication failures later
++ * on are currently not handled (MOC has no great way for us to tell
++ * it we no longer work, and I am not sure if attempting to reconnect
++ * is worth it or even a good idea).
++ *
++ * The pulse "simple" API is too simple: it combines connecting to the
++ * server and opening a stream into one operation, while I want to
++ * connect to the server when MOC starts (and fall back to a different
++ * backend if there is no server), and I cannot open a stream at that
++ * time since I do not know the audio format yet.
++ *
++ * PulseAudio strongly recommends we use a high-latency connection,
++ * which the MOC frontend code might not expect from its audio
++ * backend. We'll see.
++ *
++ * We map MOC's percentage volumes linearly to pulse's PA_VOLUME_MUTED
++ * (0) .. PA_VOLUME_NORM range. This is what the PulseAudio docs recommend
++ * ( http://pulseaudio.org/wiki/WritingVolumeControlUIs ). It does mean
++ * PulseAudio volumes above PA_VOLUME_NORM do not work well with MOC.
++ *
++ * Comments in audio.h claim "All functions are executed only by one
++ * thread" (referring to the function in the hw_funcs struct). This is
++ * a blatant lie. Most of them are invoked off the "output buffer"
++ * thread (out_buf.c) but at least the "playing" thread (audio.c)
++ * calls audio_close which calls our close function. We can mostly
++ * ignore this problem because we serialize on the pulseaudio threaded
++ * mainloop lock. But it does mean that functions that are normally
++ * only called between open and close (like reset) are sometimes
++ * called without us having a stream. Bulletproof, therefore:
++ * serialize setting/unsetting our global stream using the threaded
++ * mainloop lock, and check for that stream being non-null before
++ * using it.
++ *
++ * I am not convinced there are no further dragons lurking here: can
++ * the "playing" thread(s) close and reopen our output stream while
++ * the "output buffer" thread is sending output there? We can bail if
++ * our stream is simply closed, but we do not currently detect it
++ * being reopened and no longer using the same sample format, which
++ * might have interesting results...
++ *
++ * Also, read_mixer is called from the main server thread (handling
++ * commands). This crashed me once when it got at a stream that was in
++ * the "creating" state and therefore did not have a valid stream
++ * index yet. Fixed by only assigning to the stream global when the
++ * stream is valid.
++ */
++
++#ifdef HAVE_CONFIG_H
++# include "config.h"
++#endif
++
++#define DEBUG
++
++#include <pulse/pulseaudio.h>
++#include "common.h"
++#include "log.h"
++#include "audio.h"
++
++
++/* The pulse mainloop and context are initialized in pulse_init and
++ * destroyed in pulse_shutdown.
++ */
++static pa_threaded_mainloop *mainloop = NULL;
++static pa_context *context = NULL;
++
++/* The stream is initialized in pulse_open and destroyed in pulse_close. */
++static pa_stream *stream = NULL;
++
++static int showing_sink_volume = 0;
++
++/* Callbacks that do nothing but wake up the mainloop. */
++
++static void context_state_callback (pa_context *context ATTR_UNUSED,
++ void *userdata)
++{
++ pa_threaded_mainloop *m = userdata;
++
++ pa_threaded_mainloop_signal (m, 0);
++}
++
++static void stream_state_callback (pa_stream *stream ATTR_UNUSED,
++ void *userdata)
++{
++ pa_threaded_mainloop *m = userdata;
++
++ pa_threaded_mainloop_signal (m, 0);
++}
++
++static void stream_write_callback (pa_stream *stream ATTR_UNUSED,
++ size_t nbytes ATTR_UNUSED, void *userdata)
++{
++ pa_threaded_mainloop *m = userdata;
++
++ pa_threaded_mainloop_signal (m, 0);
++}
++
++/* Initialize pulse mainloop and context. Failure to connect to the
++ * pulse daemon is nonfatal, everything else is fatal (as it
++ * presumably means we ran out of resources).
++ */
++static int pulse_init (struct output_driver_caps *caps)
++{
++ pa_context *c;
++ pa_proplist *proplist;
++
++ assert (!mainloop);
++ assert (!context);
++
++ mainloop = pa_threaded_mainloop_new ();
++ if (!mainloop)
++ fatal ("Cannot create PulseAudio mainloop");
++
++ if (pa_threaded_mainloop_start (mainloop) < 0)
++ fatal ("Cannot start PulseAudio mainloop");
++
++ /* TODO: possibly add more props.
++ *
++ * There are a few we could set in proplist.h but nothing I
++ * expect to be very useful.
++ *
++ * http://pulseaudio.org/wiki/ApplicationProperties recommends
++ * setting at least application.name, icon.name and media.role.
++ *
++ * No need to set application.name here, the name passed to
++ * pa_context_new_with_proplist overrides it.
++ */
++ proplist = pa_proplist_new ();
++ if (!proplist)
++ fatal ("Cannot allocate PulseAudio proplist");
++
++ pa_proplist_sets (proplist,
++ PA_PROP_APPLICATION_VERSION, PACKAGE_VERSION);
++ pa_proplist_sets (proplist, PA_PROP_MEDIA_ROLE, "music");
++ pa_proplist_sets (proplist, PA_PROP_APPLICATION_ID, "net.daper.moc");
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ c = pa_context_new_with_proplist (
++ pa_threaded_mainloop_get_api (mainloop),
++ PACKAGE_NAME, proplist);
++ pa_proplist_free (proplist);
++
++ if (!c)
++ fatal ("Cannot allocate PulseAudio context");
++
++ pa_context_set_state_callback (c, context_state_callback, mainloop);
++
++ /* Ignore return value, rely on state being set properly */
++ pa_context_connect (c, NULL, PA_CONTEXT_NOAUTOSPAWN, NULL);
++
++ while (1) {
++ pa_context_state_t state = pa_context_get_state (c);
++
++ if (state == PA_CONTEXT_READY)
++ break;
++
++ if (!PA_CONTEXT_IS_GOOD (state)) {
++ error ("PulseAudio connection failed: %s",
++ pa_strerror (pa_context_errno (c)));
++
++ goto unlock_and_fail;
++ }
++
++ debug ("waiting for context to become ready...");
++ pa_threaded_mainloop_wait (mainloop);
++ }
++
++ /* Only set the global now that the context is actually ready */
++ context = c;
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ /* We just make up the hardware capabilities, since pulse is
++ * supposed to be abstracting these out. Assume pulse will
++ * deal with anything we want to throw at it, and that we will
++ * only want mono or stereo audio.
++ */
++ caps->min_channels = 1;
++ caps->max_channels = 2;
++ caps->formats = (SFMT_S8 | SFMT_S16 | SFMT_S32 |
++ SFMT_FLOAT | SFMT_BE | SFMT_LE);
++
++ return 1;
++
++unlock_and_fail:
++
++ pa_context_unref (c);
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ pa_threaded_mainloop_stop (mainloop);
++ pa_threaded_mainloop_free (mainloop);
++ mainloop = NULL;
++
++ return 0;
++}
++
++static void pulse_shutdown (void)
++{
++ pa_threaded_mainloop_lock (mainloop);
++
++ pa_context_disconnect (context);
++ pa_context_unref (context);
++ context = NULL;
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ pa_threaded_mainloop_stop (mainloop);
++ pa_threaded_mainloop_free (mainloop);
++ mainloop = NULL;
++}
++
++static int pulse_open (struct sound_params *sound_params)
++{
++ pa_sample_spec ss;
++ pa_buffer_attr ba;
++ pa_stream *s;
++
++ assert (!stream);
++ /* Initialize everything to -1, which in practice gets us
++ * about 2 seconds of latency (which is fine). This is not the
++ * same as passing NULL for this struct, which gets us an
++ * unnecessarily short alsa-like latency.
++ */
++ ba.fragsize = (uint32_t) -1;
++ ba.tlength = (uint32_t) -1;
++ ba.prebuf = (uint32_t) -1;
++ ba.minreq = (uint32_t) -1;
++ ba.maxlength = (uint32_t) -1;
++
++ ss.channels = sound_params->channels;
++ ss.rate = sound_params->rate;
++ switch (sound_params->fmt) {
++ case SFMT_U8:
++ ss.format = PA_SAMPLE_U8;
++ break;
++ case SFMT_S16 | SFMT_LE:
++ ss.format = PA_SAMPLE_S16LE;
++ break;
++ case SFMT_S16 | SFMT_BE:
++ ss.format = PA_SAMPLE_S16BE;
++ break;
++ case SFMT_FLOAT | SFMT_LE:
++ ss.format = PA_SAMPLE_FLOAT32LE;
++ break;
++ case SFMT_FLOAT | SFMT_BE:
++ ss.format = PA_SAMPLE_FLOAT32BE;
++ break;
++ case SFMT_S32 | SFMT_LE:
++ ss.format = PA_SAMPLE_S32LE;
++ break;
++ case SFMT_S32 | SFMT_BE:
++ ss.format = PA_SAMPLE_S32BE;
++ break;
++
++ default:
++ fatal ("pulse: got unrequested format");
++ }
++
++ debug ("opening stream");
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ /* TODO: figure out if there are useful stream properties to set.
++ *
++ * I do not really see any in proplist.h that we can set from
++ * here (there are media title/artist/etc props but we do not
++ * have that data available here).
++ */
++ s = pa_stream_new (context, "music", &ss, NULL);
++ if (!s)
++ fatal ("pulse: stream allocation failed");
++
++ pa_stream_set_state_callback (s, stream_state_callback, mainloop);
++ pa_stream_set_write_callback (s, stream_write_callback, mainloop);
++
++ /* Ignore return value, rely on failed stream state instead. */
++ pa_stream_connect_playback (
++ s, NULL, &ba,
++ PA_STREAM_INTERPOLATE_TIMING |
++ PA_STREAM_AUTO_TIMING_UPDATE |
++ PA_STREAM_ADJUST_LATENCY,
++ NULL, NULL);
++
++ while (1) {
++ pa_stream_state_t state = pa_stream_get_state (s);
++
++ if (state == PA_STREAM_READY)
++ break;
++
++ if (!PA_STREAM_IS_GOOD (state)) {
++ error ("PulseAudio stream connection failed");
++
++ goto fail;
++ }
++
++ debug ("waiting for stream to become ready...");
++ pa_threaded_mainloop_wait (mainloop);
++ }
++
++ /* Only set the global stream now that it is actually ready */
++ stream = s;
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ return 1;
++
++fail:
++ pa_stream_unref (s);
++
++ pa_threaded_mainloop_unlock (mainloop);
++ return 0;
++}
++
++static void pulse_close (void)
++{
++ debug ("closing stream");
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ pa_stream_disconnect (stream);
++ pa_stream_unref (stream);
++ stream = NULL;
++
++ pa_threaded_mainloop_unlock (mainloop);
++}
++
++static int pulse_play (const char *buff, const size_t size)
++{
++ size_t offset = 0;
++
++ debug ("Got %d bytes to play", (int)size);
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ /* The buffer is usually writable when we get here, and there
++ * are usually few (if any) writes after the first one. So
++ * there is no point in doing further writes directly from the
++ * callback: we can just do all writes from this thread.
++ */
++
++ /* Break out of the loop if some other thread manages to close
++ * our stream underneath us.
++ */
++ while (stream) {
++ size_t towrite = MIN(pa_stream_writable_size (stream),
++ size - offset);
++ debug ("writing %d bytes", (int)towrite);
++
++ /* We have no working way of dealing with errors
++ * (see below). */
++ if (pa_stream_write(stream, buff + offset, towrite,
++ NULL, 0, PA_SEEK_RELATIVE))
++ error ("pa_stream_write failed");
++
++ offset += towrite;
++
++ if (offset >= size)
++ break;
++
++ pa_threaded_mainloop_wait (mainloop);
++ }
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ debug ("Done playing!");
++
++ /* We should always return size, calling code does not deal
++ * well with anything else. Only read the rest if you want to
++ * know why.
++ *
++ * The output buffer reader thread (out_buf.c:read_thread)
++ * repeatedly loads some 64k/0.1s of audio into a buffer on
++ * the stack, then calls audio_send_pcm repeatedly until this
++ * entire buffer has been processed (similar to the loop in
++ * this function). audio_send_pcm applies the softmixer and
++ * equalizer, then feeds the result to this function, passing
++ * through our return value.
++ *
++ * So if we return less than size the equalizer/softmixer is
++ * re-applied to the remaining data, which is silly. Also,
++ * audio_send_pcm checks for our return value being zero and
++ * calls fatal() if it is, so try to always process *some*
++ * data. Also, out_buf.c uses the return value of this
++ * function from the last run through its inner loop to update
++ * its time attribute, which means it will be interestingly
++ * off if that loop ran more than once.
++ *
++ * Oh, and alsa.c seems to think it can return -1 to indicate
++ * failure, which will cause out_buf.c to rewind its buffer
++ * (to before its start, usually).
++ */
++ return size;
++}
++
++static void volume_cb (const pa_cvolume *v, void *userdata)
++{
++ int *result = userdata;
++
++ if (v)
++ *result = 100 * pa_cvolume_avg (v) / PA_VOLUME_NORM;
++
++ pa_threaded_mainloop_signal (mainloop, 0);
++}
++
++static void sink_volume_cb (pa_context *c ATTR_UNUSED,
++ const pa_sink_info *i, int eol ATTR_UNUSED,
++ void *userdata)
++{
++ volume_cb (i ? &i->volume : NULL, userdata);
++}
++
++static void sink_input_volume_cb (pa_context *c ATTR_UNUSED,
++ const pa_sink_input_info *i,
++ int eol ATTR_UNUSED,
++ void *userdata ATTR_UNUSED)
++{
++ volume_cb (i ? &i->volume : NULL, userdata);
++}
++
++static int pulse_read_mixer (void)
++{
++ pa_operation *op;
++ int result = 0;
++
++ debug ("read mixer");
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ if (stream) {
++ if (showing_sink_volume)
++ op = pa_context_get_sink_info_by_index (
++ context, pa_stream_get_device_index (stream),
++ sink_volume_cb, &result);
++ else
++ op = pa_context_get_sink_input_info (
++ context, pa_stream_get_index (stream),
++ sink_input_volume_cb, &result);
++
++ while (pa_operation_get_state (op) == PA_OPERATION_RUNNING)
++ pa_threaded_mainloop_wait (mainloop);
++
++ pa_operation_unref (op);
++ }
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ return result;
++}
++
++static void pulse_set_mixer (int vol)
++{
++ pa_cvolume v;
++ pa_operation *op;
++
++ /* Setting volume for one channel does the right thing. */
++ pa_cvolume_set(&v, 1, vol * PA_VOLUME_NORM / 100);
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ if (stream) {
++ if (showing_sink_volume)
++ op = pa_context_set_sink_volume_by_index (
++ context, pa_stream_get_device_index (stream),
++ &v, NULL, NULL);
++ else
++ op = pa_context_set_sink_input_volume (
++ context, pa_stream_get_index (stream),
++ &v, NULL, NULL);
++
++ pa_operation_unref (op);
++ }
++
++ pa_threaded_mainloop_unlock (mainloop);
++}
++
++static int pulse_get_buff_fill (void)
++{
++ /* This function is problematic. MOC uses it to for the "time
++ * remaining" in the UI, but calls it more than once per
++ * second (after each chunk of audio played, not for each
++ * playback time update). We have to be fairly accurate here
++ * for that time remaining to not jump weirdly. But PulseAudio
++ * cannot give us a 100% accurate value here, as it involves a
++ * server roundtrip. And if we call this a lot it suggests
++ * switching to a mode where the value is interpolated, making
++ * it presumably more inaccurate (see the flags we pass to
++ * pa_stream_connect_playback).
++ *
++ * MOC also contains what I believe to be a race: it calls
++ * audio_get_buff_fill "soon" (after playing the first chunk)
++ * after starting playback of the next song, at which point we
++ * still have part of the previous song buffered. This means
++ * our position into the new song is negative, which fails an
++ * assert (in out_buf.c:out_buf_time_get). There is no sane
++ * way for us to detect this condition. I believe no other
++ * backend triggers this because the assert sits after an
++ * implicit float -> int seconds conversion, which means we
++ * have to be off by at least an entire second to get a
++ * negative value, and none of the other backends have buffers
++ * that large (alsa buffers are supposedly a few 100 ms).
++ */
++ pa_usec_t buffered_usecs = 0;
++ int buffered_bytes = 0;
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ /* Using pa_stream_get_timing_info and returning the distance
++ * between write_index and read_index would be more obvious,
++ * but because of how the result is actually used I believe
++ * using the latency value is slightly more correct, and it
++ * makes the following crash-avoidance hack more obvious.
++ */
++
++ /* This function will frequently fail the first time we call
++ * it (pulse does not have the requested data yet). We ignore
++ * that and just return 0.
++ *
++ * Deal with stream being NULL too, just in case this is
++ * called in a racy fashion similar to how reset() is.
++ */
++ if (stream &&
++ pa_stream_get_latency (stream, &buffered_usecs, NULL) >= 0) {
++ /* Crash-avoidance HACK: floor our latency to at most
++ * 1 second. It is usually more, but reporting that at
++ * the start of playback crashes MOC, and we cannot
++ * sanely detect when reporting it is safe.
++ */
++ if (buffered_usecs > 1000000)
++ buffered_usecs = 1000000;
++
++ buffered_bytes = pa_usec_to_bytes (
++ buffered_usecs,
++ pa_stream_get_sample_spec (stream));
++ }
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ debug ("buffer fill: %d usec / %d bytes",
++ (int) buffered_usecs, (int) buffered_bytes);
++
++ return buffered_bytes;
++}
++
++static void flush_callback (pa_stream *s ATTR_UNUSED, int success,
++ void *userdata)
++{
++ int *result = userdata;
++
++ *result = success;
++
++ pa_threaded_mainloop_signal (mainloop, 0);
++}
++
++static int pulse_reset (void)
++{
++ pa_operation *op;
++ int result = 0;
++
++ debug ("reset requested");
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ /* We *should* have a stream here, but MOC is racy, so bulletproof */
++ if (stream) {
++ op = pa_stream_flush (stream, flush_callback, &result);
++
++ while (pa_operation_get_state (op) == PA_OPERATION_RUNNING)
++ pa_threaded_mainloop_wait (mainloop);
++
++ pa_operation_unref (op);
++ } else
++ logit ("pulse_reset() called without a stream");
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ return result;
++}
++
++static int pulse_get_rate (void)
++{
++ /* This is called once right after open. Do not bother making
++ * this fast. */
++
++ int result;
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ if (stream)
++ result = pa_stream_get_sample_spec (stream)->rate;
++ else {
++ error ("get_rate called without a stream");
++ result = 0;
++ }
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ return result;
++}
++
++static void pulse_toggle_mixer_channel (void)
++{
++ showing_sink_volume = !showing_sink_volume;
++}
++
++static void sink_name_cb (pa_context *c ATTR_UNUSED,
++ const pa_sink_info *i, int eol ATTR_UNUSED,
++ void *userdata)
++{
++ char **result = userdata;
++
++ if (i && !*result)
++ *result = xstrdup (i->name);
++
++ pa_threaded_mainloop_signal (mainloop, 0);
++}
++
++static void sink_input_name_cb (pa_context *c ATTR_UNUSED,
++ const pa_sink_input_info *i,
++ int eol ATTR_UNUSED,
++ void *userdata)
++{
++ char **result = userdata;
++
++ if (i && !*result)
++ *result = xstrdup (i->name);
++
++ pa_threaded_mainloop_signal (mainloop, 0);
++}
++
++static char *pulse_get_mixer_channel_name (void)
++{
++ char *result = NULL;
++ pa_operation *op;
++
++ pa_threaded_mainloop_lock (mainloop);
++
++ if (stream) {
++ if (showing_sink_volume)
++ op = pa_context_get_sink_info_by_index (
++ context, pa_stream_get_device_index (stream),
++ sink_name_cb, &result);
++ else
++ op = pa_context_get_sink_input_info (
++ context, pa_stream_get_index (stream),
++ sink_input_name_cb, &result);
++
++ while (pa_operation_get_state (op) == PA_OPERATION_RUNNING)
++ pa_threaded_mainloop_wait (mainloop);
++
++ pa_operation_unref (op);
++ }
++
++ pa_threaded_mainloop_unlock (mainloop);
++
++ if (!result)
++ result = xstrdup ("disconnected");
++
++ return result;
++}
++
++void pulse_funcs (struct hw_funcs *funcs)
++{
++ funcs->init = pulse_init;
++ funcs->shutdown = pulse_shutdown;
++ funcs->open = pulse_open;
++ funcs->close = pulse_close;
++ funcs->play = pulse_play;
++ funcs->read_mixer = pulse_read_mixer;
++ funcs->set_mixer = pulse_set_mixer;
++ funcs->get_buff_fill = pulse_get_buff_fill;
++ funcs->reset = pulse_reset;
++ funcs->get_rate = pulse_get_rate;
++ funcs->toggle_mixer_channel = pulse_toggle_mixer_channel;
++ funcs->get_mixer_channel_name = pulse_get_mixer_channel_name;
++}
+diff --git a/pulse.h b/pulse.h
+new file mode 100644
+--- /dev/null
++++ b/pulse.h
+@@ -0,0 +1,14 @@
++#ifndef PULSE_H
++#define PULSE_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void pulse_funcs (struct hw_funcs *funcs);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix
new file mode 100644
index 000000000000..765def25d600
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, lv2 }:
+
+stdenv.mkDerivation {
+ pname = "mod-distortion-git";
+ version = "2016-08-19";
+
+ src = fetchFromGitHub {
+ owner = "portalmod";
+ repo = "mod-distortion";
+ rev = "e672d5feb9d631798e3d56eb96e8958c3d2c6821";
+ sha256 = "005wdkbhn9dgjqv019cwnziqg86yryc5vh7j5qayrzh9v446dw34";
+ };
+
+ buildInputs = [ lv2 ];
+
+ installFlags = [ "INSTALL_PATH=$(out)/lib/lv2" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/portalmod/mod-distortion";
+ description = "Analog distortion emulation lv2 plugins";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/molot-lite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/molot-lite/default.nix
new file mode 100644
index 000000000000..5c5aa5055370
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/molot-lite/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, unzip, lv2 }:
+
+stdenv.mkDerivation {
+ pname = "molot-lite";
+ version = "unstable-2014-04-23";
+
+ src = fetchurl {
+ # fetchzip does not accept urls that do not end with .zip.
+ url = "https://sourceforge.net/p/molot/code/ci/c4eddc426f8d5821e8ebcf1d67265365e4c8c52a/tree/molot_src.zip?format=raw";
+ sha256 = "1c47dwfgrmn9459px8s5zikcqyr0777v226qzcxlr6azlcjwr51b";
+ };
+
+ nativeBuildInputs = [ unzip ];
+ buildInputs = [ lv2 ];
+
+ unpackPhase = ''
+ unzip $src
+ '';
+
+ buildPhase = ''
+ make -C Molot_Mono_Lite
+ make -C Molot_Stereo_Lite
+ '';
+
+ installPhase = ''
+ make install INSTALL_DIR=$out/lib/lv2 -C Molot_Mono_Lite
+ make install INSTALL_DIR=$out/lib/lv2 -C Molot_Stereo_Lite
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Stereo and mono audio signal dynamic range compressor in LV2 format";
+ homepage = "https://sourceforge.net/projects/molot/";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/monkeys-audio/buildfix.diff b/infra/libkookie/nixpkgs/pkgs/applications/audio/monkeys-audio/buildfix.diff
new file mode 100644
index 000000000000..9684e5bf8e43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/monkeys-audio/buildfix.diff
@@ -0,0 +1,49 @@
+diff --git a/src/MACLib/APELink.cpp b/src/MACLib/APELink.cpp
+index d349f4b..b00ec83 100644
+--- a/src/MACLib/APELink.cpp
++++ b/src/MACLib/APELink.cpp
+@@ -63,10 +63,10 @@ void CAPELink::ParseData(const char * pData, const str_utf16 * pFilename)
+ if (pData != NULL)
+ {
+ // parse out the information
+- char * pHeader = strstr(pData, APE_LINK_HEADER);
+- char * pImageFile = strstr(pData, APE_LINK_IMAGE_FILE_TAG);
+- char * pStartBlock = strstr(pData, APE_LINK_START_BLOCK_TAG);
+- char * pFinishBlock = strstr(pData, APE_LINK_FINISH_BLOCK_TAG);
++ const char * pHeader = strstr(pData, APE_LINK_HEADER);
++ const char * pImageFile = strstr(pData, APE_LINK_IMAGE_FILE_TAG);
++ const char * pStartBlock = strstr(pData, APE_LINK_START_BLOCK_TAG);
++ const char * pFinishBlock = strstr(pData, APE_LINK_FINISH_BLOCK_TAG);
+
+ if (pHeader && pImageFile && pStartBlock && pFinishBlock)
+ {
+@@ -81,7 +81,7 @@ void CAPELink::ParseData(const char * pData, const str_utf16 * pFilename)
+
+ // get the path
+ char cImageFile[MAX_PATH + 1]; int nIndex = 0;
+- char * pImageCharacter = &pImageFile[strlen(APE_LINK_IMAGE_FILE_TAG)];
++ const char * pImageCharacter = &pImageFile[strlen(APE_LINK_IMAGE_FILE_TAG)];
+ while ((*pImageCharacter != 0) && (*pImageCharacter != '\r') && (*pImageCharacter != '\n'))
+ cImageFile[nIndex++] = *pImageCharacter++;
+ cImageFile[nIndex] = 0;
+diff --git a/src/Shared/All.h b/src/Shared/All.h
+index 328addc..7730e89 100644
+--- a/src/Shared/All.h
++++ b/src/Shared/All.h
+@@ -21,6 +21,8 @@ Global includes
+ #include <windows.h>
+ #endif
+
++#include <stdlib.h>
++
+ #ifdef _WIN32
+ #include <mmsystem.h>
+ #include <tchar.h>
+@@ -34,7 +36,6 @@ Global includes
+ #include "NoWindows.h"
+ #endif
+
+-#include <stdlib.h>
+ #include <memory.h>
+ #include <stdio.h>
+ #include <math.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix
new file mode 100644
index 000000000000..adc8eb2087e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ version = "3.99-u4-b5";
+ pname = "monkeys-audio";
+
+ patches = [ ./buildfix.diff ];
+
+ src = fetchurl {
+ url = "https://deb-multimedia.org/pool/main/m/${pname}/${pname}_${version}.orig.tar.gz";
+ sha256 = "0kjfwzfxfx7f958b2b1kf8yj655lp0ppmn0sh57gbkjvj8lml7nz";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Lossless audio codec";
+ platforms = platforms.linux;
+ license = licenses.lgpl2;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mooSpace/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mooSpace/default.nix
new file mode 100644
index 000000000000..f6958c5e974a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mooSpace/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "mooSpace";
+ version = "unstable-2020-06-10";
+
+ src = fetchFromGitHub {
+ owner = "modularev";
+ repo = pname;
+ rev = "e5440407ea6ef9f7fcca838383b2b9a388c22874";
+ sha256 = "10vsbddf6d7i06040850v8xkmqh3bqawczs29kfgakair809wqxl";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ patchPhase = "mv ${pname}_faust.dsp ${pname}.dsp";
+
+ buildPhase = ''
+ faust2jaqt -time -vec -t 0 ${pname}.dsp
+ faust2lv2 -time -vec -t 0 -gui ${pname}.dsp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ${pname} $out/bin/
+ mkdir -p $out/lib/lv2
+ cp -r ${pname}.lv2 $out/lib/lv2
+ '';
+
+ meta = {
+ description = "Variable reverb audio effect, jack and lv2";
+ homepage = "https://github.com/modularev/mooSpace";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/default.nix
new file mode 100644
index 000000000000..fc532482cba4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/default.nix
@@ -0,0 +1,45 @@
+{ newScope, python }:
+
+# Create a custom scope so we are consistent in which python version is used
+
+let
+ callPackage = newScope self;
+
+ self = {
+
+ inherit python;
+ pythonPackages = python.pkgs;
+
+ mopidy = callPackage ./mopidy.nix { };
+
+ mopidy-gmusic = callPackage ./gmusic.nix { };
+
+ mopidy-local = callPackage ./local.nix { };
+
+ mopidy-spotify = callPackage ./spotify.nix { };
+
+ mopidy-moped = callPackage ./moped.nix { };
+
+ mopidy-mopify = callPackage ./mopify.nix { };
+
+ mopidy-mpd = callPackage ./mpd.nix { };
+
+ mopidy-mpris = callPackage ./mpris.nix { };
+
+ mopidy-somafm = callPackage ./somafm.nix { };
+
+ mopidy-spotify-tunigo = callPackage ./spotify-tunigo.nix { };
+
+ mopidy-youtube = callPackage ./youtube.nix { };
+
+ mopidy-soundcloud = callPackage ./soundcloud.nix { };
+
+ mopidy-musicbox-webclient = callPackage ./musicbox-webclient.nix { };
+
+ mopidy-iris = callPackage ./iris.nix { };
+
+ mopidy-tunein = callPackage ./tunein.nix { };
+
+ };
+
+in self
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix
new file mode 100644
index 000000000000..1e5e42ac2f34
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix
@@ -0,0 +1,29 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "mopidy-gmusic";
+ version = "4.0.0";
+
+ src = python3Packages.fetchPypi {
+ inherit version;
+ pname = "Mopidy-GMusic";
+ sha256 = "14yswmlfs659rs3k595606m77lw9c6pjykb5pikqw21sb97haxl3";
+ };
+
+ propagatedBuildInputs = [
+ mopidy
+ python3Packages.requests
+ python3Packages.gmusicapi
+ python3Packages.cachetools
+ ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.mopidy.com/";
+ description = "Mopidy extension for playing music from Google Play Music";
+ license = licenses.asl20;
+ maintainers = [ maintainers.jgillich ];
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/iris.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
new file mode 100644
index 000000000000..48f955fd7137
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
@@ -0,0 +1,29 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "Mopidy-Iris";
+ version = "3.50.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "04miwf0dqb8jir9g7xkfnn3l62bdn74ap03kqzz2v3byg64f1p0g";
+ };
+
+ propagatedBuildInputs = [
+ mopidy
+ ] ++ (with python3Packages; [
+ configobj
+ requests
+ tornado
+ ]);
+
+ # no tests implemented
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jaedb/Iris";
+ description = "A fully-functional Mopidy web client encompassing Spotify and many other backends";
+ license = licenses.asl20;
+ maintainers = [ maintainers.rvolosatovs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/local.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/local.nix
new file mode 100644
index 000000000000..43554280565e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/local.nix
@@ -0,0 +1,30 @@
+{ lib
+, mopidy
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "Mopidy-Local";
+ version = "3.1.1";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "13m0iz14lyplnpm96gfpisqvv4n89ls30kmkg21z7v238lm0h19j";
+ };
+
+ propagatedBuildInputs = [
+ mopidy
+ python3Packages.uritools
+ ];
+
+ checkInputs = [
+ python3Packages.pytestCheckHook
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/mopidy/mopidy-local";
+ description = "Mopidy extension for playing music from your local music archive";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ ruuda ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/moped.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/moped.nix
new file mode 100644
index 000000000000..ffd9af76d173
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/moped.nix
@@ -0,0 +1,26 @@
+{ stdenv, pythonPackages, mopidy, glibcLocales }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "Mopidy-Moped";
+ version = "0.7.1";
+
+ src = pythonPackages.fetchPypi {
+ inherit pname version;
+ sha256 = "15461174037d87af93dd59a236d4275c5abf71cea0670ffff24a7d0399a8a2e4";
+ };
+
+ LC_ALL = "en_US.UTF-8";
+ buildInputs = [ glibcLocales ];
+ propagatedBuildInputs = [ mopidy ];
+
+ # no tests implemented
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/martijnboland/moped";
+ description = "A web client for Mopidy";
+ license = licenses.mit;
+ maintainers = [];
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
new file mode 100644
index 000000000000..eb5672fe135b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, pythonPackages, wrapGAppsHook
+, gst_all_1, glib-networking, gobject-introspection
+}:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "mopidy";
+ version = "3.0.2";
+
+ src = fetchFromGitHub {
+ owner = "mopidy";
+ repo = "mopidy";
+ rev = "v${version}";
+ sha256 = "1n9lpgq0p112cjgsrc1cd6mnffk56y36g2c5skk9cqzw27qrkd15";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+
+ buildInputs = with gst_all_1; [
+ glib-networking
+ gst-plugins-bad
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-ugly
+ ];
+
+ propagatedBuildInputs = [
+ gobject-introspection
+ ] ++ (with pythonPackages; [
+ gst-python
+ pygobject3
+ pykka
+ requests
+ setuptools
+ tornado
+ ] ++ stdenv.lib.optional (!stdenv.isDarwin) dbus-python
+ );
+
+ # There are no tests
+ doCheck = false;
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH")
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.mopidy.com/";
+ description = ''
+ An extensible music server that plays music from local disk, Spotify,
+ SoundCloud, Google Play Music, and more
+ '';
+ license = licenses.asl20;
+ maintainers = [ maintainers.fpletz ];
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mopify.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mopify.nix
new file mode 100644
index 000000000000..a9902ca41721
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mopify.nix
@@ -0,0 +1,23 @@
+{ stdenv, pythonPackages, mopidy }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "Mopidy-Mopify";
+ version = "1.6.1";
+
+ src = pythonPackages.fetchPypi {
+ inherit pname version;
+ sha256 = "93ad2b3d38b1450c8f2698bb908b0b077a96b3f64cdd6486519e518132e23a5c";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [ mopidy configobj ];
+
+ # no tests implemented
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/dirkgroenen/mopidy-mopify";
+ description = "A mopidy webclient based on the Spotify webbased interface";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.Gonzih ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mpd.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mpd.nix
new file mode 100644
index 000000000000..4dd32ea3aa35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mpd.nix
@@ -0,0 +1,24 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "Mopidy-MPD";
+ version = "3.0.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "0prjli4352521igcsfcgmk97jmzgbfy4ik8hnli37wgvv252wiac";
+ };
+
+ propagatedBuildInputs = [mopidy];
+
+ # no tests implemented
+ doCheck = false;
+ pythonImportsCheck = [ "mopidy_mpd" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mopidy/mopidy-mpd";
+ description = "Mopidy extension for controlling playback from MPD clients";
+ license = licenses.asl20;
+ maintainers = [ maintainers.tomahna ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mpris.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mpris.nix
new file mode 100644
index 000000000000..1c6d841a34e4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/mpris.nix
@@ -0,0 +1,27 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "mopidy-mpris";
+ version = "3.0.2";
+
+ src = python3Packages.fetchPypi {
+ inherit version;
+ pname = "Mopidy-MPRIS";
+ sha256 = "0mmdaikw00f43gzjdbvlcvzff6yppm7v8mv012r79adzd992q9y0";
+ };
+
+ propagatedBuildInputs = [
+ mopidy
+ python3Packages.pydbus
+ ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.mopidy.com/";
+ description = "Mopidy extension for controlling Mopidy through D-Bus using the MPRIS specification";
+ license = licenses.asl20;
+ maintainers = [ maintainers.nickhu ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/musicbox-webclient.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/musicbox-webclient.nix
new file mode 100644
index 000000000000..b10accedc6f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/musicbox-webclient.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "mopidy-musicbox-webclient";
+ version = "3.1.0";
+
+ src = fetchFromGitHub {
+ owner = "pimusicbox";
+ repo = "mopidy-musicbox-webclient";
+ rev = "v${version}";
+ sha256 = "1lzarazq67gciyn6r8cdms0f7j0ayyfwhpf28z93ydb280mfrrb9";
+ };
+
+ propagatedBuildInputs = [ mopidy ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Mopidy extension for playing music from SoundCloud";
+ license = licenses.mit;
+ broken = stdenv.isDarwin;
+ maintainers = [ maintainers.spwhitt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/somafm.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/somafm.nix
new file mode 100644
index 000000000000..2e3380fa20f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/somafm.nix
@@ -0,0 +1,26 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "mopidy-somafm";
+ version = "2.0.0";
+
+ src = python3Packages.fetchPypi {
+ inherit version;
+ pname = "Mopidy-SomaFM";
+ sha256 = "1j88rrliys8hqvnb35k1xqw88bvrllcb4rb53lgh82byhscsxlf3";
+ };
+
+ propagatedBuildInputs = [
+ mopidy
+ ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = https://www.mopidy.com/;
+ description = "Mopidy extension for playing music from SomaFM";
+ license = licenses.mit;
+ maintainers = [ maintainers.nickhu ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/soundcloud.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/soundcloud.nix
new file mode 100644
index 000000000000..8002feb0f901
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/soundcloud.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "mopidy-soundcloud";
+ version = "2.1.0";
+
+ src = fetchFromGitHub {
+ owner = "mopidy";
+ repo = "mopidy-soundcloud";
+ rev = "v${version}";
+ sha256 = "131qdm9i0j3ayff0js11qcmbjv50ws5s6iiqr6x5b66ymjl4scfv";
+ };
+
+ propagatedBuildInputs = [ mopidy ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Mopidy extension for playing music from SoundCloud";
+ license = licenses.mit;
+ maintainers = [ maintainers.spwhitt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/spotify-tunigo.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/spotify-tunigo.nix
new file mode 100644
index 000000000000..4b75af5ed579
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/spotify-tunigo.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, pythonPackages, mopidy, mopidy-spotify }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "mopidy-spotify-tunigo";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "trygveaa";
+ repo = "mopidy-spotify-tunigo";
+ rev = "v${version}";
+ sha256 = "1jwk0b2iz4z09qynnhcr07w15lx6i1ra09s9lp48vslqcf2fp36x";
+ };
+
+ propagatedBuildInputs = [ mopidy mopidy-spotify pythonPackages.tunigo ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Mopidy extension for providing the browse feature of Spotify";
+ license = licenses.asl20;
+ maintainers = [ maintainers.spwhitt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/spotify.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/spotify.nix
new file mode 100644
index 000000000000..32019c74f86d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/spotify.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pythonPackages, mopidy }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "mopidy-spotify";
+ version = "4.0.1";
+
+ src = fetchurl {
+ url = "https://github.com/mopidy/mopidy-spotify/archive/v${version}.tar.gz";
+ sha256 = "1ac8r8050i5r3ag1hlblbcyskqjqz7wgamndbzsmw52qi6hxk44f";
+ };
+
+ propagatedBuildInputs = [ mopidy pythonPackages.pyspotify ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.mopidy.com/";
+ description = "Mopidy extension for playing music from Spotify";
+ license = licenses.asl20;
+ maintainers = [];
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/tunein.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/tunein.nix
new file mode 100644
index 000000000000..9ab032320528
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/tunein.nix
@@ -0,0 +1,28 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "mopidy-tunein";
+ version = "1.0.0";
+
+ src = python3Packages.fetchPypi {
+ inherit version;
+ pname = "Mopidy-TuneIn";
+ sha256 = "0insasf4w8ajsqjh5zmax7pkzmrk1p245vh4y8ddicldj45p6qfj";
+ };
+
+ propagatedBuildInputs = [
+ mopidy
+ ];
+
+ # tests fail with "ValueError: Namespace Gst not available" in mopidy itself
+ doCheck = false;
+
+ pythonImportsCheck = [ "mopidy_tunein.tunein" ];
+
+ meta = with stdenv.lib; {
+ description = "Mopidy extension for playing music from tunein";
+ homepage = "https://github.com/kingosticks/mopidy-tunein";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ hexa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix
new file mode 100644
index 000000000000..a115812b86a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix
@@ -0,0 +1,29 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "mopidy-youtube";
+ version = "3.1";
+
+ src = python3Packages.fetchPypi {
+ inherit version;
+ pname = "Mopidy-YouTube";
+ sha256 = "1bn3nxianbal9f81z9wf2cxi893hndvrz2zdqvh1zpxrhs0cr038";
+ };
+
+ patchPhase = "sed s/bs4/beautifulsoup4/ -i setup.cfg";
+
+ propagatedBuildInputs = [
+ mopidy
+ python3Packages.beautifulsoup4
+ python3Packages.cachetools
+ python3Packages.youtube-dl
+ ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Mopidy extension for playing music from YouTube";
+ license = licenses.asl20;
+ maintainers = [ maintainers.spwhitt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix
new file mode 100644
index 000000000000..74814a1b7ceb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, ncurses, libvorbis, SDL }:
+
+stdenv.mkDerivation rec {
+ pname = "mp3blaster";
+ version = "3.2.6";
+
+ src = fetchFromGitHub {
+ owner = "stragulus";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0pzwml3yhysn8vyffw9q9p9rs8gixqkmg4n715vm23ib6wxbliqs";
+ };
+
+ buildInputs = [
+ ncurses
+ libvorbis
+ ] ++ stdenv.lib.optional stdenv.isDarwin SDL;
+
+ NIX_CFLAGS_COMPILE = toString ([
+ "-Wno-narrowing"
+ ] ++ stdenv.lib.optionals stdenv.cc.isClang [
+ "-Wno-reserved-user-defined-literal"
+ ]);
+
+ meta = with stdenv.lib; {
+ description = "An audio player for the text console";
+ homepage = "http://www.mp3blaster.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ earldouglas ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3gain/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3gain/default.nix
new file mode 100644
index 000000000000..f2b4564c7ccf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3gain/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, unzip, mpg123 }:
+
+stdenv.mkDerivation {
+ name = "mp3gain-1.6.2";
+ src = fetchurl {
+ url = "mirror://sourceforge/mp3gain/mp3gain-1_6_2-src.zip";
+ sha256 = "0varr6y7k8zarr56b42r0ad9g3brhn5vv3xjg1c0v19jxwr4gh2w";
+ };
+
+ buildInputs = [ unzip mpg123 ];
+
+ sourceRoot = ".";
+
+ buildFlags = [ "OSTYPE=linux" ];
+
+ installPhase = ''
+ install -vD mp3gain "$out/bin/mp3gain"
+ '';
+
+ meta = {
+ description = "Lossless mp3 normalizer with statistical analysis";
+ homepage = "http://mp3gain.sourceforge.net/";
+ license = stdenv.lib.licenses.lgpl21;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3info/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3info/default.nix
new file mode 100644
index 000000000000..69ca271d27dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3info/default.nix
@@ -0,0 +1,45 @@
+{ fetchurl, stdenv, ncurses, pkgconfig, gtk2 }:
+
+stdenv.mkDerivation rec {
+ name = "mp3info-0.8.5a";
+
+ src = fetchurl {
+ url = "ftp://ftp.ibiblio.org/pub/linux/apps/sound/mp3-utils/mp3info/${name}.tgz";
+ sha256 = "042f1czcs9n2sbqvg4rsvfwlqib2gk976mfa2kxlfjghx5laqf04";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ ncurses gtk2 ];
+
+ hardeningDisable = [ "format" ];
+
+ configurePhase =
+ '' sed -i Makefile \
+ -e "s|^prefix=.*$|prefix=$out|g ;
+ s|/bin/rm|rm|g ;
+ s|/usr/bin/install|install|g"
+ '';
+
+ preInstall =
+ '' mkdir -p "$out/bin"
+ mkdir -p "$out/man/man1"
+ '';
+
+ meta = {
+ description = "MP3 technical info viewer and ID3 1.x tag editor";
+
+ longDescription =
+ '' MP3Info is a little utility used to read and modify the ID3 tags of
+ MP3 files. MP3Info can also display various techincal aspects of an
+ MP3 file including playing time, bit-rate, sampling frequency and
+ other attributes in a pre-defined or user-specifiable output format.
+ '';
+
+ homepage = "http://www.ibiblio.org/mp3info/";
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3splt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3splt/default.nix
new file mode 100644
index 000000000000..323854575ea7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3splt/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, libmp3splt }:
+
+stdenv.mkDerivation rec {
+ pname = "mp3splt";
+ version = "2.6.2";
+
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "1aiv20gypb6r84qabz8gblk8vi42cg3x333vk2pi3fyqvl82phry";
+ };
+
+ configureFlags = [ "--enable-oggsplt-symlink" "--enable-flacsplt-symlink" ];
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libmp3splt ];
+
+ outputs = [ "out" "man" ];
+
+ meta = with stdenv.lib; {
+ description = "Utility to split mp3, ogg vorbis and FLAC files without decoding";
+ homepage = "https://sourceforge.net/projects/mp3splt/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bosu ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3val/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3val/default.nix
new file mode 100644
index 000000000000..636fb7d9b9a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mp3val/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "mp3val";
+ version = "0.1.8";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mp3val/${pname}-${version}-src.tar.gz";
+ sha256 = "17y3646ghr38r620vkrxin3dksxqig5yb3nn4cfv6arm7kz6x8cm";
+ };
+
+ makefile = "Makefile.linux";
+
+ installPhase = ''
+ install -Dv mp3val "$out/bin/mp3val"
+ '';
+
+ hardeningDisable = [ "fortify" ];
+
+ meta = {
+ description = "A tool for validating and repairing MPEG audio streams";
+ longDescription = ''
+ MP3val is a small, high-speed, free software tool for checking MPEG audio
+ files' integrity. It can be useful for finding corrupted files (e.g.
+ incompletely downloaded, truncated, containing garbage). MP3val is
+ also able to fix most of the problems. Being a multiplatform application,
+ MP3val can be runned both under Windows and under Linux (or BSD). The most
+ common MPEG audio file type is MPEG 1 Layer III (mp3), but MP3val supports
+ also other MPEG versions and layers. The tool is also aware of the most
+ common types of tags (ID3v1, ID3v2, APEv2).
+ '';
+ homepage = "http://mp3val.sourceforge.net/index.shtml";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mpc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpc/default.nix
new file mode 100644
index 000000000000..a226b720df9b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpc/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, mpd_clientlib, sphinx, libiconv }:
+
+stdenv.mkDerivation rec {
+ pname = "mpc";
+ version = "0.33";
+
+ src = fetchFromGitHub {
+ owner = "MusicPlayerDaemon";
+ repo = "mpc";
+ rev = "v${version}";
+ sha256 = "1qbi0i9cq54rj8z2kapk8x8g1jkw2jz781niwb9i7kw4xfhvy5zx";
+ };
+
+ buildInputs = [ mpd_clientlib ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ];
+
+ nativeBuildInputs = [ meson ninja pkgconfig sphinx ];
+
+ meta = with stdenv.lib; {
+ description = "A minimalist command line interface to MPD";
+ homepage = "https://www.musicpd.org/clients/mpc/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ algorith ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mpc123/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpc123/default.nix
new file mode 100644
index 000000000000..ef5cb169a2cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpc123/default.nix
@@ -0,0 +1,33 @@
+{ fetchurl, stdenv, gettext, libmpcdec, libao }:
+
+let version = "0.2.4"; in
+stdenv.mkDerivation rec {
+ pname = "mpc123";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mpc123/version%20${version}/${pname}-${version}.tar.gz";
+ sha256 = "0sf4pns0245009z6mbxpx7kqy4kwl69bc95wz9v23wgappsvxgy1";
+ };
+
+ patches = [ ./use-gcc.patch ];
+
+ buildInputs = [ gettext libmpcdec libao ];
+
+ installPhase =
+ # XXX: Should install locales too (though there's only 1 available).
+ '' mkdir -p "$out/bin"
+ cp -v mpc123 "$out/bin"
+ '';
+
+ meta = {
+ homepage = "http://mpc123.sourceforge.net/";
+
+ description = "A Musepack (.mpc) audio player";
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # arbitrary choice
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mpc123/use-gcc.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpc123/use-gcc.patch
new file mode 100644
index 000000000000..ca4cf84591ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpc123/use-gcc.patch
@@ -0,0 +1,13 @@
+Don't worry, just use GCC and everything's gonna be alright.
+
+--- mpc123-0.2.4/Makefile 2008-03-21 22:14:38.000000000 +0100
++++ mpc123-0.2.4/Makefile 2010-01-28 23:26:49.000000000 +0100
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software Foundation,
+ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+-CC := $(shell which colorgcc || which cc)
++CC := gcc
+
+ TAGSPRG := ctags
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mpg123/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpg123/default.nix
new file mode 100644
index 000000000000..f3203566a134
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpg123/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchurl
+, makeWrapper
+
+, alsaLib
+, perl
+}:
+
+stdenv.mkDerivation rec {
+ name = "mpg123-1.26.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
+ sha256 = "0vkcfdx0mqq6lmpczsmpa2jsb0s6dryx3i7gvr32i3w9b9w9ij9h";
+ };
+
+ outputs = [ "out" "conplay" ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [ perl ] ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
+
+ configureFlags = stdenv.lib.optional
+ (stdenv.hostPlatform ? mpg123)
+ "--with-cpu=${stdenv.hostPlatform.mpg123.cpu}";
+
+ postInstall = ''
+ mkdir -p $conplay/bin
+ mv scripts/conplay $conplay/bin/
+ '';
+
+ preFixup = ''
+ patchShebangs $conplay/bin/conplay
+ '';
+
+ postFixup = ''
+ wrapProgram $conplay/bin/conplay \
+ --prefix PATH : $out/bin
+ '';
+
+ meta = {
+ description = "Fast console MPEG Audio Player and decoder library";
+ homepage = "http://mpg123.org";
+ license = stdenv.lib.licenses.lgpl21;
+ maintainers = [ stdenv.lib.maintainers.ftrvxmtrx ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mpg321/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpg321/default.nix
new file mode 100644
index 000000000000..63b8e2d867a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mpg321/default.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchurl, fetchpatch, libao, libmad, libid3tag, zlib, alsaLib
+# Specify default libao output plugin to use (e.g. "alsa", "pulse" …).
+# If null, it will use the libao system default.
+, defaultAudio ? null
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mpg321";
+ version = "0.3.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mpg321/${version}/mpg321_${version}.orig.tar.gz";
+ sha256 = "0ki8mh76bbmdh77qsiw682dvi8y468yhbdabqwg05igmwc1wqvq5";
+ };
+
+ patches = [
+ (fetchpatch {
+ name = "CVE-2018-7263.patch";
+ url = "https://sources.debian.org/data/main/m/mpg321/0.3.2-3/debian/patches/handle_illegal_bitrate_value.patch";
+ sha256 = "15simp5fjvm9b024ryfh441rkh2d5bcrizqkzlrh07n9sm7fkw6x";
+ })
+ ];
+
+ hardeningDisable = [ "format" ];
+
+ configureFlags =
+ [ ("--enable-alsa=" + (if stdenv.isLinux then "yes" else "no")) ]
+ ++ (stdenv.lib.optional (defaultAudio != null)
+ "--with-default-audio=${defaultAudio}");
+
+ buildInputs = [libao libid3tag libmad zlib]
+ ++ stdenv.lib.optional stdenv.isLinux alsaLib;
+
+ installTargets = [ "install" "install-man" ];
+
+ meta = with stdenv.lib; {
+ description = "Command-line MP3 player";
+ homepage = "http://mpg321.sourceforge.net/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.rycee ];
+ platforms = platforms.gnu ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/munt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/munt/default.nix
new file mode 100644
index 000000000000..2e072efe7991
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/munt/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, qtbase, alsaLib, makeDesktopItem, libjack2 }:
+
+let
+ desktopItem = makeDesktopItem rec {
+ name = "Munt";
+ exec = "mt32emu-qt";
+ desktopName = name;
+ genericName = "Munt synthesiser";
+ categories = "Audio;AudioVideo;";
+ };
+in mkDerivation rec {
+ version = "2.4.1";
+ pname = "munt";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = with stdenv.lib.versions; "libmt32emu_${major version}_${minor version}_${patch version}";
+ sha256 = "0bszhkbz24hhx32f973l6h5lkyn4lxhqrckiwmv765d1sba8n5bk";
+ };
+
+ postInstall = ''
+ ln -s ${desktopItem}/share/applications $out/share
+ '';
+
+ dontFixCmake = true;
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ qtbase alsaLib libjack2 ];
+
+ meta = with stdenv.lib; {
+ description = "Multi-platform software synthesiser emulating Roland MT-32, CM-32L, CM-64 and LAPC-I devices";
+ homepage = "http://munt.sourceforge.net/";
+ license = with licenses; [ lgpl21 gpl3 ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ gnidorah ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mup/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mup/default.nix
new file mode 100644
index 000000000000..0227255d38dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mup/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, autoreconfHook, bison, flex, ghostscript, groff, netpbm
+, fltk, libXinerama, libXpm, libjpeg
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mup";
+ version = "6.8";
+
+ src = fetchurl {
+ url = "http://www.arkkra.com/ftp/pub/unix/mup${builtins.replaceStrings ["."] [""] version}src.tar.gz";
+ sha256 = "06bv5nyl8rcibyb83zzrfdq6x6f93g3rgnv47i5gsjcaw5w6l31y";
+ };
+
+ nativeBuildInputs = [ autoreconfHook bison flex ghostscript groff netpbm ];
+
+ buildInputs = [ fltk libXinerama libXpm libjpeg ];
+
+ patches = [ ./ghostscript-permit-file-write.patch ];
+
+ postPatch = ''
+ for f in Makefile.am doc/Makefile.am doc/htmldocs/Makefile.am src/mupmate/Preferences.C; do
+ substituteInPlace $f --replace doc/packages doc
+ done
+ substituteInPlace src/mupprnt/mupprnt --replace 'mup ' $out/bin/mup' '
+ substituteInPlace src/mupdisp/genfile.c --replace '"mup"' '"'$out/bin/mup'"'
+ substituteInPlace src/mupmate/Preferences.C \
+ --replace '"mup"' '"'$out/bin/mup'"' \
+ --replace '"gv"' '"xdg-open"' \
+ --replace /usr/share/doc $out/share/doc
+ '';
+
+ enableParallelBuilding = false; # Undeclared dependencies + https://stackoverflow.com/a/19822767/1687334 for prolog.ps.
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.arkkra.com/";
+ description = "Music typesetting program (ASCII to PostScript and MIDI)";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mup/ghostscript-permit-file-write.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/mup/ghostscript-permit-file-write.patch
new file mode 100644
index 000000000000..5059e71001f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mup/ghostscript-permit-file-write.patch
@@ -0,0 +1,5 @@
+--- a/src/mup/Makefile.am
++++ b/src/mup/Makefile.am
+@@ -39 +39 @@ fontdata.c: prolog.ps ../../tools/mup/getfontinfo.ps ../../LICENSE
+- $(GS) -sDEVICE=nullpage -sOutputFile=/dev/null -dQUIET - < ../../tools/mup/getfontinfo.ps | $(SED) -e "/Warning:/d" >> fontdata.c
++ $(GS) -sDEVICE=nullpage -sOutputFile=/dev/null -dQUIET --permit-file-write=charnames:fontinit - < ../../tools/mup/getfontinfo.ps | $(SED) -e "/Warning:/d" >> fontdata.c
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/muse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/muse/default.nix
new file mode 100644
index 000000000000..e7332aa18759
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/muse/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, qttools, wrapQtAppsHook
+, alsaLib, dssi, fluidsynth, ladspaH, lash, libinstpatch, libjack2, liblo
+, libsamplerate, libsndfile, lilv, lrdf, lv2, qtsvg, rtaudio, rubberband, sord
+}:
+
+stdenv.mkDerivation rec {
+ pname = "muse-sequencer";
+ version = "3.1.1";
+
+ src = fetchFromGitHub {
+ owner = "muse-sequencer";
+ repo = "muse";
+ rev = "muse_${builtins.replaceStrings ["."] ["_"] version}";
+ sha256 = "1rasp2v1ds2aw296lbf27rzw0l9fjl0cvbvw85d5ycvh6wkm301p";
+ };
+
+ sourceRoot = "source/muse3";
+
+ prePatch = ''
+ chmod u+w $NIX_BUILD_TOP
+ '';
+
+ patches = [ ./fix-parallel-building.patch ];
+
+ nativeBuildInputs = [ cmake pkgconfig qttools wrapQtAppsHook ];
+
+ buildInputs = [
+ alsaLib dssi fluidsynth ladspaH lash libinstpatch libjack2 liblo
+ libsamplerate libsndfile lilv lrdf lv2 qtsvg rtaudio rubberband sord
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://muse-sequencer.github.io/";
+ description = "MIDI/Audio sequencer with recording and editing capabilities";
+ longDescription = ''
+ MusE is a MIDI/Audio sequencer with recording and editing capabilities
+ written originally by Werner Schweer now developed and maintained
+ by the MusE development team.
+
+ MusE aims to be a complete multitrack virtual studio for Linux,
+ it is published under the GNU General Public License.
+ '';
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ orivej ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/muse/fix-parallel-building.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/muse/fix-parallel-building.patch
new file mode 100644
index 000000000000..a11970b7111a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/muse/fix-parallel-building.patch
@@ -0,0 +1,93 @@
+To confirm these dependencies, run in a fresh build tree:
+
+
+ninja muse/components/CMakeFiles/components.dir/confmport.o
+
+In file included from ../muse/components/confmport.cpp:48:
+../muse/mplugins/midifilterimpl.h:28:10: fatal error:
+ui_midifilter.h: No such file or directory
+
+
+ninja muse/waveedit/CMakeFiles/waveedit.dir/wavecanvas.o
+
+In file included from ../muse/waveedit/wavecanvas.cpp:72:
+../muse/components/copy_on_write.h:26:10: fatal error:
+ui_copy_on_write_base.h: No such file or directory
+
+
+ninja muse/instruments/CMakeFiles/instruments.dir/editinstrument.o
+
+In file included from ../muse/instruments/editinstrument.cpp:58:
+../muse/components/editevent.h:26:10: fatal error:
+ui_editnotedialogbase.h: No such file or directory
+
+
+ninja muse/liste/CMakeFiles/liste.dir/listedit.o
+
+In file included from ../muse/liste/listedit.cpp:37:
+../muse/components/editevent.h:26:10: fatal error:
+ui_editnotedialogbase.h: No such file or directory
+
+
+ninja muse/mixer/CMakeFiles/mixer.dir/rack.o
+
+In file included from ../muse/mixer/rack.cpp:49:
+../muse/components/plugindialog.h:4:10: fatal error:
+ui_plugindialogbase.h: No such file or directory
+
+
+ninja muse/midiedit/CMakeFiles/midiedit.dir/drumedit.o
+
+In file included from /build/source/muse3/muse/midiedit/drumedit.cpp:64:
+/build/source/muse3/muse/components/filedialog.h:29:10: fatal error:
+ui_fdialogbuttons.h: No such file or directory
+
+
+--- a/muse/components/CMakeLists.txt
++++ b/muse/components/CMakeLists.txt
+@@ -343,4 +343,5 @@ set_target_properties( components
+ target_link_libraries ( components
+ ${QT_LIBRARIES}
++ mplugins
+ widgets
+ xml_module
+--- a/muse/waveedit/CMakeLists.txt
++++ b/muse/waveedit/CMakeLists.txt
+@@ -79,4 +79,5 @@ set_target_properties( waveedit
+ target_link_libraries( waveedit
+ ${QT_LIBRARIES}
++ components
+ widgets
+ )
+--- a/muse/instruments/CMakeLists.txt
++++ b/muse/instruments/CMakeLists.txt
+@@ -78,4 +78,5 @@ set_target_properties( instruments
+ target_link_libraries ( instruments
+ ${QT_LIBRARIES}
++ components
+ icons
+ widgets
+--- a/muse/liste/CMakeLists.txt
++++ b/muse/liste/CMakeLists.txt
+@@ -65,4 +65,5 @@ set_target_properties( liste
+ target_link_libraries ( liste
+ ${QT_LIBRARIES}
++ components
+ awl
+ widgets
+--- a/muse/mixer/CMakeLists.txt
++++ b/muse/mixer/CMakeLists.txt
+@@ -87,4 +87,5 @@ set_target_properties ( mixer
+ target_link_libraries ( mixer
+ ${QT_LIBRARIES}
++ components
+ widgets
+ )
+--- a/muse/midiedit/CMakeLists.txt
++++ b/muse/midiedit/CMakeLists.txt
+@@ -93,4 +93,5 @@ set_target_properties( midiedit
+ target_link_libraries ( midiedit
+ ${QT_LIBRARIES}
++ components
+ al
+ ctrl
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/darwin.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/darwin.nix
new file mode 100644
index 000000000000..4a2ae29f36ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/darwin.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchurl, undmg }:
+
+let
+ versionComponents = [ "2" "1" ];
+ appName = "MuseScore ${builtins.head versionComponents}";
+in
+
+with lib;
+
+stdenv.mkDerivation rec {
+ pname = "musescore-darwin";
+ version = concatStringsSep "." versionComponents;
+
+ # The disk image contains the .app and a symlink to /Applications.
+ sourceRoot = "${appName}.app";
+
+ src = fetchurl {
+ url = "ftp://ftp.osuosl.org/pub/musescore/releases/MuseScore-${concatStringsSep "." (take 3 versionComponents)}/MuseScore-${version}.dmg";
+ sha256 = "19xkaxlkbrhvfip6n3iw6q7463ngr6y5gfisrpjqg2xl2igyl795";
+ };
+
+ buildInputs = [ undmg ];
+ installPhase = ''
+ mkdir -p "$out/Applications/${appName}.app"
+ cp -R . "$out/Applications/${appName}.app"
+ chmod a+x "$out/Applications/${appName}.app/Contents/MacOS/mscore"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Music notation and composition software";
+ homepage = "https://musescore.org/";
+ license = licenses.gpl2;
+ platforms = platforms.darwin;
+ maintainers = with maintainers; [ yurrriq ];
+ repositories.git = "https://github.com/musescore/MuseScore";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/default.nix
new file mode 100644
index 000000000000..c9a1f44ec639
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
+, alsaLib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis
+, portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects
+, qtquickcontrols2, qtscript, qtsvg, qttools
+, qtwebengine, qtxmlpatterns
+}:
+
+mkDerivation rec {
+ pname = "musescore";
+ version = "3.5.2";
+
+ src = fetchFromGitHub {
+ owner = "musescore";
+ repo = "MuseScore";
+ rev = "v${version}";
+ sha256 = "VA0+npLUUXQJHalD01pmFTTum2Re7FiiyAwU1XvR93s=";
+ };
+
+ patches = [
+ ./remove_qtwebengine_install_hack.patch
+ ];
+
+ cmakeFlags = [
+ "-DUSE_SYSTEM_FREETYPE=ON"
+ ];
+
+ qtWrapperArgs = [
+ # Work around crash on update from 3.4.2 to 3.5.0
+ # https://bugreports.qt.io/browse/QTBUG-85967
+ "--set QML_DISABLE_DISK_CACHE 1"
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ alsaLib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis
+ portaudio portmidi # tesseract
+ qtbase qtdeclarative qtgraphicaleffects qtquickcontrols2
+ qtscript qtsvg qttools qtwebengine qtxmlpatterns
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Music notation and composition software";
+ homepage = "https://musescore.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ vandenoever turion ];
+ platforms = platforms.linux;
+ repositories.git = "https://github.com/musescore/MuseScore";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patch
new file mode 100644
index 000000000000..57a6092d5852
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/musescore/remove_qtwebengine_install_hack.patch
@@ -0,0 +1,19 @@
+--- a/main/CMakeLists.txt
++++ b/main/CMakeLists.txt
+@@ -220,16 +219,0 @@ else (MINGW)
+- ## install qwebengine core
+- if (NOT APPLE AND USE_WEBENGINE)
+- install(PROGRAMS
+- ${QT_INSTALL_LIBEXECS}/QtWebEngineProcess
+- DESTINATION bin
+- )
+- install(DIRECTORY
+- ${QT_INSTALL_DATA}/resources
+- DESTINATION lib/qt5
+- )
+- install(DIRECTORY
+- ${QT_INSTALL_TRANSLATIONS}/qtwebengine_locales
+- DESTINATION lib/qt5/translations
+- )
+- endif(NOT APPLE AND USE_WEBENGINE)
+-
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/musikcube/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/musikcube/default.nix
new file mode 100644
index 000000000000..c6d1a264a9c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/musikcube/default.nix
@@ -0,0 +1,57 @@
+{ cmake
+, pkg-config
+, alsaLib
+, boost
+, curl
+, fetchFromGitHub
+, ffmpeg_3
+, lame
+, libev
+, libmicrohttpd
+, ncurses
+, pulseaudio
+, stdenv
+, taglib
+, systemdSupport ? stdenv.isLinux, systemd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "musikcube";
+ version = "0.95.0";
+
+ src = fetchFromGitHub {
+ owner = "clangen";
+ repo = pname;
+ rev = version;
+ sha256 = "16ksr4yjkg88bpij1i49dzi07ffhqq8b36r090y4fq5czrc420rc";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+ buildInputs = [
+ alsaLib
+ boost
+ curl
+ ffmpeg_3
+ lame
+ libev
+ libmicrohttpd
+ ncurses
+ pulseaudio
+ taglib
+ ] ++ stdenv.lib.optional systemdSupport systemd;
+
+ cmakeFlags = [
+ "-DDISABLE_STRIP=true"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A fully functional terminal-based music player, library, and streaming audio server";
+ homepage = "https://musikcube.com/";
+ maintainers = [ maintainers.aanderse ];
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/musly/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/musly/default.nix
new file mode 100644
index 000000000000..7ef2b400b769
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/musly/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, eigen, libav }:
+stdenv.mkDerivation {
+ pname = "musly";
+ version = "unstable-2017-04-26";
+ src = fetchFromGitHub {
+ owner = "dominikschnitzer";
+ repo = "musly";
+ rev = "f911eacbbe0b39ebe87cb37d0caef09632fa40d6";
+ sha256 = "1q42wvdwy2pac7bhfraqqj2czw7w2m33ms3ifjl8phm7d87i8825";
+ };
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ eigen (libav.override { vaapiSupport = stdenv.isLinux; }) ];
+ fixupPhase = if stdenv.isDarwin then ''
+ install_name_tool -change libmusly.dylib $out/lib/libmusly.dylib $out/bin/musly
+ install_name_tool -change libmusly_resample.dylib $out/lib/libmusly_resample.dylib $out/bin/musly
+ install_name_tool -change libmusly_resample.dylib $out/lib/libmusly_resample.dylib $out/lib/libmusly.dylib
+ '' else "";
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.musly.org";
+ description = "A fast and high-quality audio music similarity library written in C/C++";
+ longDescription = ''
+ Musly analyzes the the audio signal of music pieces to estimate their similarity.
+ No meta-data about the music piece is included in the similarity estimation.
+ To use Musly in your application, have a look at the library documentation
+ or try the command line application included in the package and start generating
+ some automatic music playlists right away.
+ '';
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ ggpeti ];
+ platforms = with platforms; darwin ++ linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/mympd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/mympd/default.nix
new file mode 100644
index 000000000000..5c8c5e7c7bff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/mympd/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, mpd_clientlib
+, openssl
+, lua5_3
+, libid3tag
+, flac
+, mongoose
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mympd";
+ version = "6.8.1";
+
+ src = fetchFromGitHub {
+ owner = "jcorporation";
+ repo = "myMPD";
+ rev = "v${version}";
+ sha256 = "dIGg2mLxN6XBDH3GFXtF7nB9a/zf/qMlPCvIulFRXn8=";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ cmake
+ ];
+ buildInputs = [
+ mpd_clientlib
+ openssl
+ lua5_3
+ libid3tag
+ flac
+ ];
+
+ cmakeFlags = [
+ "-DENABLE_LUA=ON"
+ # Otherwise, it tries to parse $out/etc/mympd.conf on startup.
+ "-DCMAKE_INSTALL_SYSCONFDIR=/etc"
+ # similarly here
+ "-DCMAKE_INSTALL_LOCALSTATEDIR=/var/lib/mympd"
+ ];
+ # See https://github.com/jcorporation/myMPD/issues/315
+ hardeningDisable = [ "strictoverflow" ];
+
+ meta = {
+ homepage = "https://jcorporation.github.io/mympd";
+ description = "A standalone and mobile friendly web mpd client with a tiny footprint and advanced features";
+ maintainers = [ stdenv.lib.maintainers.doronbehar ];
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ncmpc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
new file mode 100644
index 000000000000..97aa06453e52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, ncurses
+, mpd_clientlib, gettext, boost
+, pcreSupport ? false
+, pcre ? null
+}:
+
+with stdenv.lib;
+
+assert pcreSupport -> pcre != null;
+
+stdenv.mkDerivation rec {
+ pname = "ncmpc";
+ version = "0.42";
+
+ src = fetchFromGitHub {
+ owner = "MusicPlayerDaemon";
+ repo = "ncmpc";
+ rev = "v${version}";
+ sha256 = "1c21sbdm6pp3kwhnzc7c6ksna7madvsmfa7j91as2g8485symqv2";
+ };
+
+ buildInputs = [ glib ncurses mpd_clientlib boost ]
+ ++ optional pcreSupport pcre;
+ nativeBuildInputs = [ meson ninja pkgconfig gettext ];
+
+ mesonFlags = [
+ "-Dlirc=disabled"
+ "-Ddocumentation=disabled"
+ ] ++ optional (!pcreSupport) "-Dregex=disabled";
+
+ meta = with stdenv.lib; {
+ description = "Curses-based interface for MPD (music player daemon)";
+ homepage = "https://www.musicpd.org/clients/ncmpc/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ fpletz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix
new file mode 100644
index 000000000000..f8adc522fcb5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, boost, mpd_clientlib, ncurses, pkgconfig, readline
+, libiconv, icu, curl
+, outputsSupport ? true # outputs screen
+, visualizerSupport ? false, fftw ? null # visualizer screen
+, clockSupport ? true # clock screen
+, taglibSupport ? true, taglib ? null # tag editor
+}:
+
+assert visualizerSupport -> (fftw != null);
+assert taglibSupport -> (taglib != null);
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "ncmpcpp";
+ version = "0.8.2";
+
+ src = fetchurl {
+ url = "https://ncmpcpp.rybczak.net/stable/${pname}-${version}.tar.bz2";
+ sha256 = "0m0mjb049sl62vx13h9waavysa30mk0rphacksnvf94n13la62v5";
+ };
+
+ configureFlags = [ "BOOST_LIB_SUFFIX=" ]
+ ++ optional outputsSupport "--enable-outputs"
+ ++ optional visualizerSupport "--enable-visualizer --with-fftw"
+ ++ optional clockSupport "--enable-clock"
+ ++ optional taglibSupport "--with-taglib";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ boost mpd_clientlib ncurses readline libiconv icu curl ]
+ ++ optional visualizerSupport fftw
+ ++ optional taglibSupport taglib;
+
+ meta = {
+ description = "A featureful ncurses based MPD client inspired by ncmpc";
+ homepage = "https://ncmpcpp.rybczak.net/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ jfrankenau koral lovek323 ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ncpamixer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ncpamixer/default.nix
new file mode 100644
index 000000000000..89a0da5e0d63
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ncpamixer/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, ncurses, libpulseaudio, pkgconfig }:
+
+stdenv.mkDerivation rec {
+
+ pname = "ncpamixer";
+ version = "1.3.3.1";
+
+ src = fetchFromGitHub {
+ owner = "fulhax";
+ repo = "ncpamixer";
+ rev = version;
+ sha256 = "1v3bz0vpgh18257hdnz3yvbnl51779g1h5b265zgc21ks7m1jw5z";
+ };
+
+ buildInputs = [ ncurses libpulseaudio ];
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ configurePhase = ''
+ make PREFIX=$out build/Makefile
+ '';
+
+ buildPhase = ''
+ make build
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An ncurses mixer for PulseAudio inspired by pavucontrol";
+ homepage = "https://github.com/fulhax/ncpamixer";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ StijnDW ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ncspot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ncspot/default.nix
new file mode 100644
index 000000000000..60fb40c5f743
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ncspot/default.nix
@@ -0,0 +1,46 @@
+{ lib, fetchFromGitHub, rustPlatform, pkg-config, ncurses, openssl
+, withALSA ? true, alsaLib ? null
+, withPulseAudio ? false, libpulseaudio ? null
+, withPortAudio ? false, portaudio ? null
+, withMPRIS ? false, dbus ? null
+}:
+
+let
+ features = [ "cursive/pancurses-backend" ]
+ ++ lib.optional withALSA "alsa_backend"
+ ++ lib.optional withPulseAudio "pulseaudio_backend"
+ ++ lib.optional withPortAudio "portaudio_backend"
+ ++ lib.optional withMPRIS "mpris";
+in
+rustPlatform.buildRustPackage rec {
+ pname = "ncspot";
+ version = "0.2.4";
+
+ src = fetchFromGitHub {
+ owner = "hrkfdn";
+ repo = "ncspot";
+ rev = "v${version}";
+ sha256 = "0vdg1ybzfj7xg8nmrb8q9vr8bpwcs52730v9v0413wjyxb7hcll2";
+ };
+
+ cargoSha256 = "0afaxx8dv7jn48934ba0r8kd1h8l3k00sl83v07a1xqmfcmil2qf";
+
+ cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ ncurses openssl ]
+ ++ lib.optional withALSA alsaLib
+ ++ lib.optional withPulseAudio libpulseaudio
+ ++ lib.optional withPortAudio portaudio
+ ++ lib.optional withMPRIS dbus;
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Cross-platform ncurses Spotify client written in Rust, inspired by ncmpc and the likes";
+ homepage = "https://github.com/hrkfdn/ncspot";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ninjas2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ninjas2/default.nix
new file mode 100644
index 000000000000..3a23347c1e76
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ninjas2/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, libjack2, libGL, pkgconfig, xorg, mesa, libsndfile, libsamplerate }:
+
+stdenv.mkDerivation rec {
+ pname = "ninjas2";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "clearly-broken-software";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1kwp6pmnfar2ip9693gprfbcfscklgri1k1ycimxzlqr61nkd2k9";
+ fetchSubmodules = true;
+ };
+
+ patchPhase = ''
+ patchShebangs dpf/utils/generate-ttl.sh
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ libjack2 xorg.libX11 libGL mesa libsndfile libsamplerate
+ ];
+
+ installPhase = ''
+ install -dD bin/ninjas2.lv2 $out/lib/lv2/ninjas2.lv2
+ install -D bin/ninjas2-vst.so $out/lib/vst/ninjas2-vst.so
+ install -D bin/ninjas2 $out/bin/ninjas2
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/clearly-broken-software/ninjas2";
+ description = "sample slicer plugin for LV2, VST, and jack standalone";
+ license = with licenses; [ gpl3 ];
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/noise-repellent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/noise-repellent/default.nix
new file mode 100644
index 000000000000..3b2f233c6afe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/noise-repellent/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, fftwFloat, lv2 }:
+
+stdenv.mkDerivation rec {
+ pname = "noise-repellent";
+ version = "0.1.5";
+
+ src = fetchFromGitHub {
+ owner = "lucianodato";
+ repo = pname;
+ rev = version;
+ sha256 = "0hb89x9i2knzan46q4nwscf5zmnb2nwf4w13xl2c0y1mx1ls1mwl";
+ fetchSubmodules = true;
+ };
+
+ mesonFlags = ("--prefix=${placeholder "out"}/lib/lv2");
+
+ nativeBuildInputs = [ meson ninja pkgconfig ];
+ buildInputs = [
+ fftwFloat lv2
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An lv2 plugin for broadband noise reduction";
+ homepage = "https://github.com/lucianodato/noise-repellent";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
new file mode 100644
index 000000000000..1932f239cfd7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, buildGoModule, fetchFromGitHub, rnnoise-plugin }:
+
+buildGoModule rec {
+ pname = "NoiseTorch";
+ version = "0.8.2";
+
+ src = fetchFromGitHub {
+ owner = "lawl";
+ repo = "NoiseTorch";
+ rev = version;
+ sha256 = "14i04rmraxbddcvk0k9c6ak9invln7002g5jms54kcjzv9p39hbf";
+ };
+
+ patches = [ ./version.patch ./embedlibrnnoise.patch ];
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ buildInputs = [ rnnoise-plugin ];
+
+ preBuild = ''
+ export RNNOISE_LADSPA_PLUGIN="${rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so";
+ go generate;
+ rm ./scripts/*
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/icons/hicolor/256x256/apps/
+ cp assets/icon/noisetorch.png $out/share/icons/hicolor/256x256/apps/
+ mkdir -p $out/share/applications/
+ cp assets/noisetorch.desktop $out/share/applications/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Virtual microphone device with noise supression for PulseAudio";
+ homepage = "https://github.com/lawl/NoiseTorch";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ panaeon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch
new file mode 100644
index 000000000000..b1782efb8b35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch
@@ -0,0 +1,13 @@
+diff --git a/scripts/embedlibrnnoise.go b/scripts/embedlibrnnoise.go
+index 43daf80..0b3004b 100644
+--- a/scripts/embedlibrnnoise.go
++++ b/scripts/embedlibrnnoise.go
+@@ -8,7 +8,7 @@ import (
+ )
+
+ func main() {
+- b, err := ioutil.ReadFile("librnnoise_ladspa/bin/ladspa/librnnoise_ladspa.so")
++ b, err := ioutil.ReadFile(os.Getenv("RNNOISE_LADSPA_PLUGIN"))
+ if err != nil {
+ fmt.Printf("Couldn't read librnnoise_ladspa.so: %v\n", err)
+ os.Exit(1)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/version.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/version.patch
new file mode 100644
index 000000000000..20c51863744a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/noisetorch/version.patch
@@ -0,0 +1,37 @@
+diff --git a/scripts/embedversion.go b/scripts/embedversion.go
+index ce0a756..60e7a5e 100644
+--- a/scripts/embedversion.go
++++ b/scripts/embedversion.go
+@@ -1,24 +1,18 @@
+ package main
+
+ import (
+- "os"
+- "os/exec"
+- "strings"
++ "os"
++ "strings"
+ )
+
+ func main() {
+- cmd := exec.Command("git", "describe", "--tags")
+- ret, err := cmd.Output()
+
+- if err != nil {
+- panic("Couldn't read git tags to embed version number")
+- }
+- version := strings.TrimSpace(string(ret))
++ version := strings.TrimSpace(string(os.Getenv("version")))
+
+- out, _ := os.Create("version.go")
+- defer out.Close()
++ out, _ := os.Create("version.go")
++ defer out.Close()
+
+- out.Write([]byte("package main\n\n//THIS FILE IS AUTOMATICALLY GENERATED BY `go generate` DO NOT EDIT!\n\nvar version=\""))
+- out.Write([]byte(version))
+- out.Write([]byte("\"\n"))
++ out.Write([]byte("package main\n\n//THIS FILE IS AUTOMATICALLY GENERATED BY `go generate` DO NOT EDIT!\n\nvar version=\""))
++ out.Write([]byte(version))
++ out.Write([]byte("\"\n"))
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/non/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/non/default.nix
new file mode 100644
index 000000000000..9b4b147c2304
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/non/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pkgconfig, python2, cairo, libjpeg, ntk, libjack2
+, libsndfile, ladspaH, liblo, libsigcxx, lrdf, wafHook
+}:
+
+stdenv.mkDerivation {
+ pname = "non";
+ version = "2018-02-15";
+ src = fetchFromGitHub {
+ owner = "original-male";
+ repo = "non";
+ rev = "5ae43bb27c42387052a73e5ffc5d33efb9d946a9";
+ sha256 = "1cljkkyi9dxqpqhx8y6l2ja4zjmlya26m26kqxml8gx08vyvddhx";
+ };
+
+ nativeBuildInputs = [ pkgconfig wafHook ];
+ buildInputs = [ python2 cairo libjpeg ntk libjack2 libsndfile
+ ladspaH liblo libsigcxx lrdf
+ ];
+
+ meta = {
+ description = "Lightweight and lightning fast modular Digital Audio Workstation";
+ homepage = "http://non.tuxfamily.org";
+ license = stdenv.lib.licenses.lgpl21;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.nico202 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/nootka/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/nootka/default.nix
new file mode 100644
index 000000000000..b0d4843aecd5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/nootka/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, cmake
+, alsaLib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch, qtbase
+}:
+
+stdenv.mkDerivation rec {
+ name = "nootka-1.4.7";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/nootka/${name}-source.tar.bz2";
+ sha256 = "1y9wlwri74v2z9dwbcfjs7xri54yra24vpwq19xi2lfv1nbs518x";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [
+ alsaLib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch qtbase
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_INCLUDE_PATH=${libjack2}/include/jack;${libpulseaudio.dev}/include/pulse"
+ "-DENABLE_JACK=ON"
+ "-DENABLE_PULSEAUDIO=ON"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Application for practicing playing musical scores and ear training";
+ homepage = "https://nootka.sourceforge.io/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/nootka/unstable.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
new file mode 100644
index 000000000000..16df55c1dfba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, cmake
+, alsaLib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch
+, qtbase, qtdeclarative, qtquickcontrols2
+}:
+
+stdenv.mkDerivation rec {
+ name = "nootka-1.7.0-beta1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/nootka/${name}-source.tar.bz2";
+ sha256 = "13b50vnpr1zx2mrgkc8fmhsyfa19rqq1rksvn31145dy6fk1f3gc";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [
+ alsaLib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch
+ qtbase qtdeclarative qtquickcontrols2
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_INCLUDE_PATH=${libjack2}/include/jack;${libpulseaudio.dev}/include/pulse"
+ "-DENABLE_JACK=ON"
+ "-DENABLE_PULSEAUDIO=ON"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Application for practicing playing musical scores and ear training";
+ homepage = "https://nootka.sourceforge.io/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/normalize/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/normalize/default.nix
new file mode 100644
index 000000000000..0aa264116932
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/normalize/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libmad }:
+
+stdenv.mkDerivation rec {
+ pname = "normalize";
+ version = "0.7.7";
+
+ src = fetchurl {
+ url = "mirror://savannah/normalize/${pname}-${version}.tar.gz";
+ sha256 = "1n5khss10vjjp6w69q9qcl4kqfkd0pr555lgqghrchn6rjms4mb0";
+ };
+
+ buildInputs = [ libmad ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.nongnu.org/normalize/";
+ description = "Audio file normalizer";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/nova-filters/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/nova-filters/default.nix
new file mode 100644
index 000000000000..bc5a3efc59a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/nova-filters/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, sconsPackages, boost, ladspaH, pkgconfig }:
+
+stdenv.mkDerivation {
+ version = "0.2-2";
+ pname = "nova-filters";
+
+ src = fetchurl {
+ url = "https://klingt.org/~tim/nova-filters/nova-filters_0.2-2.tar.gz";
+ sha256 = "16064vvl2w5lz4xi3lyjk4xx7fphwsxc14ajykvndiz170q32s6i";
+ };
+
+ nativeBuildInputs = [ pkgconfig sconsPackages.scons_3_0_1 ];
+ buildInputs = [ boost ladspaH ];
+
+ patchPhase = ''
+ # remove TERM:
+ sed -i -e '4d' SConstruct
+ sed -i "s@mfpmath=sse@mfpmath=sse -I ${boost.dev}/include@g" SConstruct
+ sed -i "s@ladspa.h@${ladspaH}/include/ladspa.h@g" filters.cpp
+ sed -i "s@LADSPA_HINT_SAMPLE_RATE, 0, 0.5@LADSPA_HINT_SAMPLE_RATE, 0.0001, 0.5@g" filters.cpp
+ sed -i "s/= check/= detail::filter_base<internal_type, checked>::check/" nova/source/dsp/filter.hpp
+ '';
+
+ meta = with stdenv.lib; {
+ description = "LADSPA plugins based on filters of nova";
+ homepage = "http://klingt.org/~tim/nova-filters/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/nuclear/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/nuclear/default.nix
new file mode 100644
index 000000000000..6b2a5b67122d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/nuclear/default.nix
@@ -0,0 +1,32 @@
+{ appimageTools, lib, fetchurl }:
+let
+ pname = "nuclear";
+ version = "0.6.6";
+ name = "${pname}-v${version}";
+
+ src = fetchurl {
+ url = "https://github.com/nukeop/nuclear/releases/download/v${version}/${name}.AppImage";
+ sha256 = "0c1335m76fv0wfbk07s8r6ln7zbmlqd66052gqfisakl8a1aafl6";
+ };
+
+ appimageContents = appimageTools.extract { inherit name src; };
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+
+ install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace 'Exec=AppRun' 'Exec=$out/bin/nuclear'
+ cp -r ${appimageContents}/usr/share/icons $out/share
+ '';
+
+ meta = with lib; {
+ description = "Streaming music player that finds free music for you";
+ homepage = "https://nuclear.js.org/";
+ license = licenses.agpl3Plus;
+ maintainers = [ maintainers.ivar ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
new file mode 100644
index 000000000000..83b1ef3b0430
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, dpkg
+, qt5
+, libjack2
+, alsaLib
+, bzip2
+, libpulseaudio }:
+
+stdenv.mkDerivation rec {
+ pname = "ocenaudio";
+ version = "3.9.6";
+
+ src = fetchurl {
+ url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
+ sha256 = "07r49133kk99ya4grwby3admy892mkk9cfxz3wh0v81aznhpw4jg";
+ };
+
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ qt5.qtbase
+ libjack2
+ libpulseaudio
+ bzip2
+ alsaLib
+ ];
+
+ buildInputs = [ dpkg ];
+
+ dontUnpack = true;
+ dontBuild = true;
+ dontStrip = true;
+
+ installPhase = ''
+ mkdir -p $out
+ dpkg -x $src $out
+ cp -av $out/opt/ocenaudio/* $out
+ rm -rf $out/opt
+
+ # Create symlink bzip2 library
+ ln -s ${bzip2.out}/lib/libbz2.so.1 $out/libbz2.so.1.0
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Cross-platform, easy to use, fast and functional audio editor";
+ homepage = "https://www.ocenaudio.com";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ onny ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/openmpt123/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
new file mode 100644
index 000000000000..4d1387bf6331
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
@@ -0,0 +1,31 @@
+{ config, stdenv, fetchurl, zlib, pkgconfig, mpg123, libogg, libvorbis, portaudio, libsndfile, flac
+, usePulseAudio ? config.pulseaudio or false, libpulseaudio }:
+
+let
+ version = "0.5.4";
+in stdenv.mkDerivation {
+ pname = "openmpt123";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
+ sha256 = "0h7gpjx1221jwsq3k91p8zhf1h77qaxyasakc88s3g57vawhckgk";
+ };
+
+ enableParallelBuilding = true;
+ doCheck = true;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ zlib mpg123 libogg libvorbis portaudio libsndfile flac ]
+ ++ stdenv.lib.optional usePulseAudio libpulseaudio;
+
+ configureFlags = stdenv.lib.optional (!usePulseAudio) "--without-pulseaudio";
+
+ meta = with stdenv.lib; {
+ description = "A cross-platform command-line based module file player";
+ homepage = "https://lib.openmpt.org/libopenmpt/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ gnidorah ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/opus-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/opus-tools/default.nix
new file mode 100644
index 000000000000..b8253b078bea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/opus-tools/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl, libogg, libao, pkgconfig, flac, opusfile, libopusenc}:
+
+stdenv.mkDerivation rec {
+ name = "opus-tools-0.2";
+ src = fetchurl {
+ url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz";
+ sha256 = "11pzl27s4vcz4m18ch72nivbhww2zmzn56wspb7rll1y1nq6rrdl";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libogg libao flac opusfile libopusenc ];
+
+ meta = {
+ description = "Tools to work with opus encoded audio streams";
+ homepage = "https://www.opus-codec.org/";
+ license = stdenv.lib.licenses.bsd2;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ platforms = with stdenv.lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/opusfile/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/opusfile/default.nix
new file mode 100644
index 000000000000..8c83eb01b368
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/opusfile/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, openssl, libogg, libopus }:
+
+stdenv.mkDerivation rec {
+ name = "opusfile-0.12";
+ src = fetchurl {
+ url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz";
+ sha256 = "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl libogg ];
+ propagatedBuildInputs = [ libopus ];
+ patches = [ ./include-multistream.patch ];
+ configureFlags = [ "--disable-examples" ];
+
+ meta = with stdenv.lib; {
+ description = "High-level API for decoding and seeking in .opus files";
+ homepage = "https://www.opus-codec.org/";
+ license = licenses.bsd3;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/opusfile/include-multistream.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/opusfile/include-multistream.patch
new file mode 100644
index 000000000000..7c6dd8475963
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/opusfile/include-multistream.patch
@@ -0,0 +1,12 @@
+diff -Naur a/include/opusfile.h b/include/opusfile.h
+--- a/include/opusfile.h 2014-04-29 19:07:09.000000000 +0200
++++ b/include/opusfile.h 2016-09-05 17:50:15.147553798 +0200
+@@ -107,7 +107,7 @@
+ # include <stdarg.h>
+ # include <stdio.h>
+ # include <ogg/ogg.h>
+-# include <opus_multistream.h>
++# include <opus/opus_multistream.h>
+
+ /**@cond PRIVATE*/
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/opustags/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/opustags/default.nix
new file mode 100644
index 000000000000..8e5546aec8b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/opustags/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, cmake, pkgconfig, libogg, fetchFromGitHub, libiconv }:
+stdenv.mkDerivation rec {
+ pname = "opustags";
+ version = "1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "fmang";
+ repo = "opustags";
+ rev = version;
+ sha256 = "1y0czl72paawy342ff9ickaamkih43k59yfcdw7bnddypyfa7nbg";
+ };
+
+ buildInputs = [ libogg ];
+
+ nativeBuildInputs = [ cmake pkgconfig ] ++ lib.optional stdenv.isDarwin libiconv;
+
+ meta = with lib; {
+ homepage = "https://github.com/fmang/opustags";
+ description = "Ogg Opus tags editor";
+ platforms = platforms.all;
+ maintainers = [ maintainers.kmein ];
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/orca-c/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/orca-c/default.nix
new file mode 100644
index 000000000000..74c74578beb9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/orca-c/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, ncurses, portmidi }:
+stdenv.mkDerivation {
+ pname = "orca-c";
+
+ version = "git-2020-05-01";
+
+ src = fetchFromGitHub {
+ owner = "hundredrabbits";
+ repo = "Orca-c";
+ rev = "d7a3b169c5ed0b06a9ad0fdb3057704da9a0b6ce";
+ sha256 = "101y617a295hzwr98ykvza1sycxlk29kzxn2ybjwc718r0alkbzz";
+ };
+
+ buildInputs = [ ncurses portmidi ];
+
+ patchPhase = ''
+ patchShebangs tool
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ install build/orca $out/bin/orca
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An esoteric programming language designed to quickly create procedural sequencers";
+ homepage = "https://github.com/hundredrabbits/Orca-c";
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/osmid/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/osmid/default.nix
new file mode 100644
index 000000000000..2e31efd8172c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/osmid/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, alsaLib
+, libX11
+}:
+
+stdenv.mkDerivation rec {
+ pname = "osmid";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "llloret";
+ repo = "osmid";
+ rev = "v${version}";
+ sha256 = "1s1wsrp6g6wb0y61xzxvaj59mwycrgy52r4h456086zkz10ls6hw";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ alsaLib libX11 ];
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ cp {m2o,o2m} $out/bin/
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/llloret/osmid";
+ description = "A lightweight, portable, easy to use tool to convert MIDI to OSC and OSC to MIDI";
+ license = licenses.mit;
+ maintainers = with maintainers; [ c0deaddict ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/padthv1/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/padthv1/default.nix
new file mode 100644
index 000000000000..e321119d838f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/padthv1/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5, fftwFloat, mkDerivation }:
+
+mkDerivation rec {
+ pname = "padthv1";
+ version = "0.9.18";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/padthv1/${pname}-${version}.tar.gz";
+ sha256 = "1karrprb3ijrbiwpr43rl3nxnzc33lnmwrd1832psgr3flnr9fp5";
+ };
+
+ buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftwFloat ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with stdenv.lib; {
+ description = "polyphonic additive synthesizer";
+ homepage = "http://padthv1.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pamix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pamix/default.nix
new file mode 100644
index 000000000000..cc5d84d9471b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pamix/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, cmake
+, libpulseaudio, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "pamix";
+ version = "1.6";
+
+ src = fetchFromGitHub {
+ owner = "patroclos";
+ repo = "pamix";
+ rev = version;
+ sha256 = "1d44ggnwkf2gff62959pj45v3a2k091q8v154wc5pmzamam458wp";
+ };
+
+ preConfigure = ''
+ substituteInPlace CMakeLists.txt --replace "/etc" "$out/etc/xdg"
+ '';
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ libpulseaudio ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "Pulseaudio terminal mixer";
+ homepage = "https://github.com/patroclos/PAmix";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ericsagnes ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pamixer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pamixer/default.nix
new file mode 100644
index 000000000000..3e2192c04148
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pamixer/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, fetchpatch, boost, libpulseaudio }:
+
+stdenv.mkDerivation rec {
+ pname = "pamixer";
+ version = "1.4";
+
+ src = fetchFromGitHub {
+ owner = "cdemoulins";
+ repo = "pamixer";
+ rev = version;
+ sha256 = "1i14550n8paijwwnhksv5izgfqm3s5q2773bdfp6vyqybkll55f7";
+ };
+
+ buildInputs = [ boost libpulseaudio ];
+
+ installPhase = ''
+ install -Dm755 pamixer -t $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Pulseaudio command line mixer";
+ longDescription = ''
+ Features:
+ - Get the current volume of the default sink, the default source or a selected one by its id
+ - Set the volume for the default sink, the default source or any other device
+ - List the sinks
+ - List the sources
+ - Increase / Decrease the volume for a device
+ - Mute or unmute a device
+ '';
+ homepage = "https://github.com/cdemoulins/pamixer";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/paprefs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/paprefs/default.nix
new file mode 100644
index 000000000000..b5ec1206ce3d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/paprefs/default.nix
@@ -0,0 +1,50 @@
+{ fetchurl
+, stdenv
+, meson
+, ninja
+, gettext
+, pkgconfig
+, pulseaudioFull
+, glibmm
+, gtkmm3
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ name = "paprefs-1.1";
+
+ src = fetchurl {
+ url = "https://freedesktop.org/software/pulseaudio/paprefs/${name}.tar.xz";
+ sha256 = "189z5p20hk0xv9vwvym293503j4pwl03xqk9hl7cl6dwgv0l7wkf";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ gettext
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ pulseaudioFull
+ glibmm
+ gtkmm3
+ ];
+
+ meta = with stdenv.lib; {
+ description = "PulseAudio Preferences";
+
+ longDescription = ''
+ PulseAudio Preferences (paprefs) is a simple GTK based configuration
+ dialog for the PulseAudio sound server.
+ '';
+
+ homepage = "http://freedesktop.org/software/pulseaudio/paprefs/";
+
+ license = licenses.gpl2Plus;
+
+ maintainers = [ maintainers.abbradar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/parlatype/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/parlatype/default.nix
new file mode 100644
index 000000000000..b9babddb800f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/parlatype/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchFromGitHub, pkgconfig, meson, gtk3, at-spi2-core, dbus, gst_all_1, sphinxbase, pocketsphinx, ninja, gettext, appstream-glib, python3, glib, gobject-introspection, gsettings-desktop-schemas, itstool, wrapGAppsHook, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+ pname = "parlatype";
+ version = "2.1";
+
+ src = fetchFromGitHub {
+ owner = "gkarsay";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1k53q0kbwpnbgyr0lmfzf5sm4f93d8nbjrzdz9pdhzpxgihndg25";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ meson
+ ninja
+ gettext
+ appstream-glib
+ python3
+ gobject-introspection
+ itstool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ at-spi2-core
+ dbus
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-bad
+ gst_all_1.gst-plugins-ugly
+ gst_all_1.gst-libav
+ sphinxbase
+ pocketsphinx
+ glib
+ gsettings-desktop-schemas
+ hicolor-icon-theme
+ ];
+
+ mesonFlags = [ "-Dlibreoffice=false" ];
+
+ postPatch = ''
+ chmod +x data/meson_post_install.py
+ patchShebangs data/meson_post_install.py
+ '';
+
+ doCheck = false;
+ enableParallelBuilding = true;
+
+ buildPhase = ''
+ export GST_PLUGIN_SYSTEM_PATH_1_0="$out/lib/gstreamer-1.0/:$GST_PLUGIN_SYSTEM_PATH_1_0"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GNOME audio player for transcription";
+ longDescription = ''
+ Parlatype is a minimal audio player for manual speech transcription, written for the GNOME desktop environment.
+ It plays audio sources to transcribe them in your favourite text application.
+ It’s intended to be useful for journalists, students, scientists and whoever needs to transcribe audio files.
+ '';
+ homepage = "https://gkarsay.github.io/parlatype/";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.melchips ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/patchage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/patchage/default.nix
new file mode 100644
index 000000000000..ac679d6dd949
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/patchage/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, alsaLib, boost, dbus-glib, fetchsvn, ganv, glibmm
+, gtkmm2, libjack2, pkgconfig, python2, wafHook
+}:
+
+stdenv.mkDerivation {
+ pname = "patchage";
+ version = "1.0.1";
+ src = fetchsvn {
+ url = "http://svn.drobilla.net/lad/trunk/patchage/";
+ rev = "5821";
+ sha256 = "1ar64l0sg468qzxj7i6ppgfqjpm92awcp5lzskamrf3ln17lrgj7";
+ };
+
+ buildInputs = [
+ alsaLib boost dbus-glib ganv glibmm gtkmm2 libjack2
+ pkgconfig python2 wafHook
+ ];
+
+ meta = {
+ description = "Modular patch bay for Jack and ALSA systems";
+ homepage = "http://non.tuxfamily.org";
+ license = stdenv.lib.licenses.lgpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.nico202 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/paulstretch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/paulstretch/default.nix
new file mode 100644
index 000000000000..f6cee7672f7c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/paulstretch/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchFromGitHub, fetchpatch
+, audiofile, libvorbis, fltk, fftw, fftwFloat
+, minixml, pkgconfig, libmad, libjack2, portaudio, libsamplerate
+}:
+
+stdenv.mkDerivation {
+ pname = "paulstretch";
+ version = "2.2-2";
+
+ src = fetchFromGitHub {
+ owner = "paulnasca";
+ repo = "paulstretch_cpp";
+ rev = "7f5c3993abe420661ea0b808304b0e2b4b0048c5";
+ sha256 = "06dy03dbz1yznhsn0xvsnkpc5drzwrgxbxdx0hfpsjn2xcg0jrnc";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [
+ audiofile
+ libvorbis
+ fltk
+ fftw
+ fftwFloat
+ minixml
+ libmad
+ libjack2
+ portaudio
+ libsamplerate
+ ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/paulnasca/paulstretch_cpp/pull/12.patch";
+ sha256 = "0lx1rfrs53afkiz1drp456asqgj5yv6hx3lkc01165cv1jsbw6q4";
+ })
+ ];
+
+ buildPhase = ''
+ bash compile_linux_fftw_jack.sh
+ '';
+
+ installPhase = ''
+ install -Dm555 ./paulstretch $out/bin/paulstretch
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Produces high quality extreme sound stretching";
+ longDescription = ''
+ This is a program for stretching the audio. It is suitable only for
+ extreme sound stretching of the audio (like 50x) and for applying
+ special effects by "spectral smoothing" the sounds.
+ It can transform any sound/music to a texture.
+ '';
+ homepage = "http://hypermammut.sourceforge.net/paulstretch/";
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
new file mode 100644
index 000000000000..301e44168d39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
@@ -0,0 +1,36 @@
+{ fetchurl, stdenv, pkgconfig, intltool, libpulseaudio, gtkmm3
+, libcanberra-gtk3, gnome3, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "pavucontrol";
+ version = "4.0";
+
+ src = fetchurl {
+ url = "https://freedesktop.org/software/pulseaudio/${pname}/${pname}-${version}.tar.xz";
+ sha256 = "1qhlkl3g8d7h72xjskii3g1l7la2cavwp69909pzmbi2jyn5pi4g";
+ };
+
+ buildInputs = [ libpulseaudio gtkmm3 libcanberra-gtk3
+ gnome3.adwaita-icon-theme ];
+
+ nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+
+ configureFlags = [ "--disable-lynx" ];
+
+ meta = with stdenv.lib; {
+ description = "PulseAudio Volume Control";
+
+ longDescription = ''
+ PulseAudio Volume Control (pavucontrol) provides a GTK
+ graphical user interface to connect to a PulseAudio server and
+ easily control the volume of all clients, sinks, etc.
+ '';
+
+ homepage = "http://freedesktop.org/software/pulseaudio/pavucontrol/";
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ maintainers = with maintainers; [ abbradar globin ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/cyclone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/cyclone/default.nix
new file mode 100644
index 000000000000..56f1ec518de0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/cyclone/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, puredata }:
+
+stdenv.mkDerivation rec {
+ pname = "cyclone";
+ version = "0.3beta-2";
+
+ src = fetchFromGitHub {
+ owner = "porres";
+ repo = "pd-cyclone";
+ rev = "cyclone${version}";
+ sha256 = "192jrq3bdsv626js1ymq10gwp9wwcszjs63ys6ap9ig8xdkbhr3q";
+ };
+
+ buildInputs = [ puredata ];
+
+ makeFlags = [
+ "pdincludepath=${puredata}/include/pd"
+ "prefix=$(out)"
+ ];
+
+ postInstall = ''
+ mv "$out/lib/pd-externals/cyclone" "$out/"
+ rm -rf $out/lib
+ '';
+
+ meta = {
+ description = "A library of PureData classes, bringing some level of compatibility between Max/MSP and Pd environments";
+ homepage = "http://puredata.info/downloads/cyclone";
+ license = stdenv.lib.licenses.tcltk;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/gem/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/gem/default.nix
new file mode 100644
index 000000000000..a44ba689a618
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/gem/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, autoreconfHook
+, pkg-config
+, puredata
+, libGL
+, libGLU
+, glew
+, freeglut
+, libv4l
+, libX11
+, file
+ }:
+
+stdenv.mkDerivation rec {
+ pname = "gem-unstable";
+ version = "2020-09-22";
+
+ src = fetchFromGitHub {
+ owner = "umlaeute";
+ repo = "Gem";
+ rev = "2edfde4f0587e72ef325e7f53681936dcc19655b";
+ sha256 = "0k5sq128wxi2qhaidspkw310pdgysxs47agv09pkjgvch2n4d5dq";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ file
+ pkg-config
+ ];
+
+ buildInputs = [
+ puredata
+ libGL
+ libGLU
+ glew
+ freeglut
+ libv4l
+ libX11
+ ];
+
+ meta = {
+ description = "Graphics Environment for Multimedia";
+ homepage = "http://puredata.info/downloads/gem";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.raboof ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
new file mode 100644
index 000000000000..be5a385d3088
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, unzip, puredata }:
+
+stdenv.mkDerivation {
+ name = "helmholtz";
+
+ src = fetchurl {
+ url = "https://www.katjaas.nl/helmholtz/helmholtz~.zip";
+ name = "helmholtz.zip";
+ curlOpts = "--user-agent ''";
+ sha256 = "0h1fj7lmvq9j6rmw33rb8k0byxb898bi2xhcwkqalb84avhywgvs";
+ };
+
+ buildInputs = [ unzip puredata ];
+
+ unpackPhase = ''
+ unzip $src
+ mv helmholtz~/src/helmholtz\~.cpp .
+ mv helmholtz~/src/Helmholtz.cpp .
+ mv helmholtz~/src/include/ .
+ mv helmholtz~/src/Makefile .
+ rm -rf helmholtz~/src/
+ rm helmholtz~/helmholtz~.pd_darwin
+ rm helmholtz~/helmholtz~.pd_linux
+ rm helmholtz~/helmholtz~.dll
+ rm -rf __MACOSX
+ '';
+
+ patchPhase = ''
+ mkdir -p $out/helmholtz~
+ sed -i "s@current: pd_darwin@current: pd_linux@g" Makefile
+ sed -i "s@-Wl@@g" Makefile
+ sed -i "s@\$(NAME).pd_linux \.\./\$(NAME).pd_linux@helmholtz~.pd_linux $out/helmholtz~/@g" Makefile
+ '';
+
+ installPhase = ''
+ cp -r helmholtz~/ $out/
+ '';
+
+ meta = {
+ description = "Time domain pitch tracker for Pure Data";
+ homepage = "http://www.katjaas.nl/helmholtz/helmholtz.html";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/maxlib/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/maxlib/default.nix
new file mode 100644
index 000000000000..aec793c4ee8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/maxlib/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, puredata }:
+
+stdenv.mkDerivation rec {
+ pname = "maxlib";
+ version = "1.5.7";
+
+ src = fetchFromGitHub {
+ owner = "electrickery";
+ repo = "pd-maxlib";
+ rev = "v${version}";
+ sha256 = "10w9qfgn26lj3zqjksf2r1wsjpf5xy4dx22jay9l6idy9q62mxsn";
+ };
+
+ buildInputs = [ puredata ];
+
+ hardeningDisable = [ "format" ];
+
+ makeFlags = [ "prefix=$(out)" ];
+
+ postInstall = ''
+ mv $out/lib/pd-externals/maxlib/ $out
+ rm -rf $out/local/
+ rm -rf $out/lib/
+ '';
+
+ meta = {
+ description = "A library of non-tilde externals for puredata, by Miller Puckette";
+ homepage = "http://puredata.info/downloads/maxlib";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/mrpeach/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
new file mode 100644
index 000000000000..cefee430ad5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, puredata }:
+
+stdenv.mkDerivation {
+ pname = "mrpeach";
+ version = "1.1";
+
+ # this was to only usable url I could find:
+ # - The main url changes hash: http://pure-data.cvs.sourceforge.net/viewvc/pure-data/externals/mrpeach/?view=tar
+ # - There are lot's of places where this SW is available as part of a big pkg: pd-extended, pd-l2ork
+ # - It's just 211K
+
+ src = fetchurl {
+ url = "http://slackonly.com/pub/korgie/sources/pd_mrpeach-2011.10.21.tar.gz";
+ sha256 = "12jqba3jsdrk20ib9wc2wiivki88ypcd4mkzgsri9siywbbz9w8x";
+ };
+
+ buildInputs = [ puredata ];
+
+ hardeningDisable = [ "format" ];
+
+ patchPhase = ''
+ for D in net osc
+ do
+ sed -i "s@prefix = /usr/local@prefix = $out@g" $D/Makefile
+ for i in ${puredata}/include/pd/*; do
+ ln -s $i $D/
+ done
+ done
+ '';
+
+ buildPhase = ''
+ for D in net osc
+ do
+ cd $D
+ make
+ cd ..
+ done
+ '';
+
+ installPhase = ''
+ for D in net osc
+ do
+ cd $D
+ make install
+ cd ..
+ done
+ '';
+
+ fixupPhase = ''
+ mv $out/lib/pd-externals/net $out
+ mv $out/lib/pd-externals/osc $out
+ rm -rf $out/lib
+ '';
+
+ meta = {
+ description = "A collection of Pd objectclasses for OSC-messages";
+ homepage = "http://puredata.info/downloads/osc";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix
new file mode 100644
index 000000000000..7a5014664d55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, unzip, puredata }:
+
+stdenv.mkDerivation rec {
+ pname = "puremapping";
+ version = "20160130";
+
+ src = fetchurl {
+ url = "https://www.chnry.net/data/puremapping-${version}-generic.zip";
+ name = "puremapping";
+ sha256 = "1h7qgqd8srrxw2y1rkdw5js4k6f5vc8x6nlm2mq9mq9vjck7n1j7";
+ };
+
+ buildInputs = [ unzip puredata ];
+
+ unpackPhase = ''
+ unzip $src
+ '';
+
+ installPhase = ''
+ mkdir -p $out/puremapping
+ mv puremapping/ $out
+ '';
+
+ meta = {
+ description = "Set of externals to facilitate the use of sensors within Pure Data and to create complex relations between input and output of a dynamic system";
+ homepage = "http://www.chnry.net/ch/?090-Pure-Mapping&lang=en";
+ license = stdenv.lib.licenses.gpl1;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix
new file mode 100644
index 000000000000..e68610a02269
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, unzip, puredata, fftw }:
+
+stdenv.mkDerivation rec {
+ version = "0.7.0";
+ pname = "timbreid";
+
+ src = fetchurl {
+ url = "http://williambrent.conflations.com/pd/timbreID-${version}-src.zip";
+ sha256 = "14k2xk5zrzrw1zprdbwx45hrlc7ck8vq4drpd3l455i5r8yk4y6b";
+ };
+
+ buildInputs = [ unzip puredata fftw ];
+
+ unpackPhase = ''
+ mkdir source
+ cd source
+ unzip $src
+ '';
+
+ buildPhase = ''
+ make tIDLib.o all
+ '';
+
+ installPhase = ''
+ mkdir -p $out/
+ cp -r *.pd $out/
+ cp -r *.pd_linux $out/
+ cp -r audio/ $out/
+ cp -r data/ $out/
+ cp -r doc/ $out/
+ '';
+
+ postFixup = ''
+ mv $out/share/doc/ $out/
+ rm -rf $out/share/
+ '';
+
+ meta = {
+ description = "A collection of audio feature analysis externals for puredata";
+ homepage = "http://williambrent.conflations.com/pages/research.html";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/zexy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/zexy/default.nix
new file mode 100644
index 000000000000..4f8269081362
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pd-plugins/zexy/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, autoconf, automake, puredata }:
+
+stdenv.mkDerivation rec {
+ pname = "zexy";
+ version = "2.2.4";
+
+ src = fetchurl {
+ url = "https://puredata.info/downloads/zexy/releases/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1xpgl82c2lc6zfswjsa7z10yhv5jb7a4znzh3nc7ffrzm1z8vylp";
+ };
+
+ buildInputs = [ autoconf automake puredata ];
+
+ preBuild = ''
+ export LD=$CXX
+ cd src/
+ for i in ${puredata}/include/pd/*; do
+ ln -s $i .
+ done
+ ./bootstrap.sh
+ ./configure --enable-lpt=no --prefix=$out
+ '';
+
+ postInstall = ''
+ mv $out/lib/pd/extra/zexy $out
+ rm -rf $out/lib
+ '';
+
+ meta = {
+ description = "The swiss army knife for puredata";
+ homepage = "http://puredata.info/downloads/zexy";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.magnetophon ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/petrifoo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/petrifoo/default.nix
new file mode 100644
index 000000000000..322eba2b9521
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/petrifoo/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, alsaLib, cmake, gtk2, libjack2, libgnomecanvas
+, libpthreadstubs, libsamplerate, libsndfile, libtool, libxml2
+, pkgconfig, openssl }:
+
+stdenv.mkDerivation rec {
+ pname = "petri-foo";
+ version = "0.1.87";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/petri-foo/${pname}-${version}.tar.bz2";
+ sha256 = "0b25iicgn8c42487fdw32ycfrll1pm2zjgy5djvgw6mfcaa4gizh";
+ };
+
+ buildInputs =
+ [ alsaLib cmake gtk2 libjack2 libgnomecanvas libpthreadstubs
+ libsamplerate libsndfile libtool libxml2 pkgconfig openssl
+ ];
+
+ meta = with stdenv.lib; {
+ description = "MIDI controllable audio sampler";
+ longDescription = "a fork of Specimen";
+ homepage = "http://petri-foo.sourceforge.net";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pianobar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pianobar/default.nix
new file mode 100644
index 000000000000..4cdf415d26bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pianobar/default.nix
@@ -0,0 +1,27 @@
+{ fetchurl, stdenv, pkgconfig, libao, json_c, libgcrypt, ffmpeg_3, curl }:
+
+stdenv.mkDerivation rec {
+ name = "pianobar-2020.04.05";
+
+ src = fetchurl {
+ url = "http://6xq.net/projects/pianobar/${name}.tar.bz2";
+ sha256 = "1034f9ilj9xjw12d6n4vadhl5jzrx0jv8gq1w0rg9hfc55mkn5vc";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ libao json_c libgcrypt ffmpeg_3 curl
+ ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ CC = "gcc";
+ CFLAGS = "-std=c99";
+
+ meta = with stdenv.lib; {
+ description = "A console front-end for Pandora.com";
+ homepage = "https://6xq.net/pianobar/";
+ platforms = platforms.unix;
+ license = licenses.mit; # expat version
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pianobooster/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
new file mode 100644
index 000000000000..b92808775c8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, qttools
+, alsaLib, ftgl, libGLU, libjack2, qtbase, rtmidi, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "pianobooster";
+ version = "0.7.2b";
+
+ src = fetchFromGitHub {
+ owner = "captnfab";
+ repo = "PianoBooster";
+ rev = "v${version}";
+ sha256 = "03xcdnlpsij22ca3i6xj19yqzn3q2ch0d32r73v0c96nm04gvhjj";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config qttools wrapQtAppsHook ];
+
+ buildInputs = [ alsaLib ftgl libGLU libjack2 qtbase rtmidi ];
+
+ cmakeFlags = [
+ "-DOpenGL_GL_PREFERENCE=GLVND"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A MIDI file player that teaches you how to play the piano";
+ homepage = "https://github.com/captnfab/PianoBooster";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ goibhniu orivej ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix
new file mode 100644
index 000000000000..fb6f59d0ded7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, python3Packages, fetchFromGitHub, gettext, chromaprint, qt5
+, enablePlayback ? true
+, gst_all_1
+}:
+
+let
+ pythonPackages = python3Packages;
+ pyqt5 = if enablePlayback then
+ pythonPackages.pyqt5_with_qtmultimedia
+ else
+ pythonPackages.pyqt5
+ ;
+in pythonPackages.buildPythonApplication rec {
+ pname = "picard";
+ version = "2.5.2";
+
+ src = fetchFromGitHub {
+ owner = "metabrainz";
+ repo = pname;
+ rev = "release-${version}";
+ sha256 = "193pk6fhrqar2ra8krj6xdd7sm5qfw0p708iazzwk4b8c8g0q72j";
+ };
+
+ nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
+ ++ stdenv.lib.optionals (pyqt5.multimediaEnabled) [
+ qt5.qtmultimedia.bin
+ gst_all_1.gstreamer
+ gst_all_1.gst-vaapi
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ ]
+ ;
+
+ propagatedBuildInputs = with pythonPackages; [
+ pyqt5
+ mutagen
+ chromaprint
+ discid
+ dateutil
+ ];
+
+ prePatch = ''
+ # Pesky unicode punctuation.
+ substituteInPlace setup.cfg --replace "‘" "'"
+ '';
+
+ # In order to spare double wrapping, we use:
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ ''
+ + stdenv.lib.optionalString (pyqt5.multimediaEnabled) ''
+ makeWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+ ''
+ ;
+
+ meta = with stdenv.lib; {
+ homepage = "https://picard.musicbrainz.org/";
+ description = "The official MusicBrainz tagger";
+ maintainers = with maintainers; [ ehmry ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/picoloop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/picoloop/default.nix
new file mode 100644
index 000000000000..69052988f26f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/picoloop/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, libpulseaudio, SDL2, SDL2_image, SDL2_ttf, alsaLib, libjack2 }:
+
+stdenv.mkDerivation rec {
+ pname = "picoloop";
+ version = "0.77e";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "yoyz";
+ rev = "${pname}-${version}";
+ sha256 = "0i8j8rgyha3ara6d4iis3wcimszf2csxdwrm5yq0wyhg74g7cvjd";
+ };
+
+ buildInputs = [
+ libpulseaudio
+ SDL2
+ SDL2.dev
+ SDL2_image
+ SDL2_ttf
+ alsaLib
+ libjack2
+ ];
+
+ sourceRoot = "source/picoloop";
+
+ makeFlags = [ "-f Makefile.PatternPlayer_debian_RtAudio_sdl20" ];
+
+ NIX_CFLAGS_COMPILE = [ "-I${SDL2.dev}/include/SDL2" ];
+
+ hardeningDisable = [ "format" ];
+
+ patchPhase = ''
+ substituteInPlace SDL_GUI.cpp \
+ --replace "\"font.ttf\"" "\"$out/share/font.ttf\"" \
+ --replace "\"font.bmp\"" "\"$out/share/font.bmp\""
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{bin,share}
+ cp PatternPlayer_debian_RtAudio_sdl20 $out/bin/picoloop
+ cp {font.*,LICENSE} $out/share
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A synth and a stepsequencer (a clone of the famous nanoloop)";
+ homepage = "https://github.com/yoyz/picoloop";
+ platforms = platforms.linux;
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pithos/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pithos/default.nix
new file mode 100644
index 000000000000..6c3ffebc8c95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pithos/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, appstream-glib
+, wrapGAppsHook, pythonPackages, gtk3, gnome3, gobject-introspection
+, libnotify, libsecret, gst_all_1 }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "pithos";
+ version = "1.5.0";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "10nnm55ql86x1qfmq6dx9a1igf7myjxibmvyhd7fyv06vdhfifgy";
+ };
+
+ format = "other";
+
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ '';
+
+ nativeBuildInputs = [ meson ninja pkgconfig appstream-glib wrapGAppsHook ];
+
+ propagatedBuildInputs =
+ [ gtk3 gobject-introspection libnotify libsecret gnome3.adwaita-icon-theme ] ++
+ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad ]) ++
+ (with pythonPackages; [ pygobject3 pylast ]);
+
+ meta = with stdenv.lib; {
+ description = "Pandora Internet Radio player for GNOME";
+ homepage = "https://pithos.github.io/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ obadz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/playbar2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/playbar2/default.nix
new file mode 100644
index 000000000000..15385e91927c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/playbar2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, cmake
+, extra-cmake-modules
+, plasma-framework
+, kwindowsystem
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+ pname = "playbar2";
+ version = "2.5";
+
+ src = fetchFromGitHub {
+ owner = "audoban";
+ repo = "PlayBar2";
+ rev = "v${version}";
+ sha256 = "0iv2m4flgaz2r0k7f6l0ca8p6cw8j8j2gin1gci2pg3l5g5khbch";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ plasma-framework
+ kwindowsystem
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Mpris2 Client for Plasma5";
+ homepage = "https://github.com/audoban/PlayBar2";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pjones ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/plexamp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/plexamp/default.nix
new file mode 100644
index 000000000000..2c33584e3621
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/plexamp/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchurl, appimageTools, pkgs }:
+
+let
+ pname = "plexamp";
+ version = "3.3.1";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
+ name="${pname}-${version}.AppImage";
+ sha256 = "6/asP8VR+rJ52lKKds46gSw1or9suUEmyR75pjdWHIQ=";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ multiPkgs = null; # no 32bit needed
+ extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
+
+ extraInstallCommands = ''
+ ln -s $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop
+ install -m 444 -D ${appimageContents}/plexamp.png \
+ $out/share/icons/hicolor/512x512/apps/plexamp.png
+ substituteInPlace $out/share/applications/plexamp.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with lib; {
+ description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
+ homepage = "https://plexamp.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ killercup ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/plugin-torture/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/plugin-torture/default.nix
new file mode 100644
index 000000000000..3c852cf450e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/plugin-torture/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, boost, ladspaH, lilv, lv2, pkgconfig, serd, sord, sratom }:
+
+stdenv.mkDerivation {
+ pname = "plugin-torture";
+ version = "2016-07-25";
+
+ src = fetchFromGitHub {
+ owner = "cth103";
+ repo = "plugin-torture";
+ rev = "8b9c43197dca372da6b9c8212224ec86b5f16b4a";
+ sha256 = "1xyhvhm85d9z0kw716cjllrrzksn4s4bw34layg8hf4m5m31sp2p";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ boost ladspaH lilv lv2 serd sord sratom ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp plugin-torture $out/bin/
+ cp find-safe-plugins $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/cth103/plugin-torture";
+ description = "A tool to test LADSPA and LV2 plugins";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pmidi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pmidi/default.nix
new file mode 100644
index 000000000000..3491afaaf7a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pmidi/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, alsaLib
+, version ? "1.7.1"
+, sourceSha256 ? "051mv6f13c8y13c1iv3279k1hhzpz4fm9sfczhgp9sim2bjdj055"
+}:
+stdenv.mkDerivation {
+ pname = "pmidi";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/pmidi/${version}/pmidi-${version}.tar.gz";
+ sha256 = sourceSha256;
+ };
+
+ buildInputs = [ alsaLib ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.parabola.me.uk/alsa/pmidi.html";
+ description = "A straightforward command line program to play midi files through the ALSA sequencer";
+ maintainers = with maintainers; [ lheckemann ];
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/polyphone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/polyphone/default.nix
new file mode 100644
index 000000000000..270d51840d78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/polyphone/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, pkgconfig, alsaLib, libjack2, portaudio, libogg, flac, libvorbis, rtmidi, qtsvg }:
+
+mkDerivation rec {
+ version = "2.2.0";
+ pname = "polyphone";
+
+ src = fetchFromGitHub {
+ owner = "davy7125";
+ repo = "polyphone";
+ rev = version;
+ sha256 = "0w5pidzhpwpggjn5la384fvjzkvprvrnidb06068whci11kgpbp7";
+ };
+
+ buildInputs = [
+ alsaLib
+ libjack2
+ portaudio
+ libogg
+ flac
+ libvorbis
+ rtmidi
+ qtsvg
+ ];
+
+ nativeBuildInputs = [ qmake pkgconfig ];
+
+ preConfigure = ''
+ cd ./sources/
+ '';
+
+ installPhase = ''
+ install -d $out/bin
+ install -m755 bin/polyphone $out/bin/
+ '';
+
+ qmakeFlags = [
+ "DEFINES+=USE_LOCAL_STK"
+ "DEFINES+=USE_LOCAL_QCUSTOMPLOT"
+ "INCLUDEPATH+=${libjack2}/include/jack"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A soundfont editor for creating musical instruments";
+ homepage = "https://www.polyphone-soundfonts.com/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.maxdamantus ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ponymix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ponymix/default.nix
new file mode 100644
index 000000000000..6c289a97384f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ponymix/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, libpulseaudio, libnotify, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "ponymix";
+ version = "5";
+
+ src = fetchFromGitHub {
+ owner = "falconindy";
+ repo = "ponymix";
+ rev = version;
+ sha256 = "08yp7fprmzm6px5yx2rvzri0l60bra5h59l26pn0k071a37ks1rb";
+ };
+
+ buildInputs = [ libpulseaudio libnotify ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ postPatch = ''substituteInPlace Makefile --replace "\$(DESTDIR)/usr" "$out"'';
+
+ meta = with stdenv.lib; {
+ description = "CLI PulseAudio Volume Control";
+ homepage = "https://github.com/falconindy/ponymix";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ericsagnes ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/praat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/praat/default.nix
new file mode 100644
index 000000000000..5abab029bc92
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/praat/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, alsaLib, gtk2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "praat";
+ version = "6.0.43";
+
+ src = fetchurl {
+ url = "https://github.com/praat/praat/archive/v${version}.tar.gz";
+ sha256 = "1l13bvnl7sv8v6s5z63201bhzavnj6bnqcj446akippsam13z4sf";
+ };
+
+ configurePhase = ''
+ cp makefiles/makefile.defs.linux.alsa makefile.defs
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp praat $out/bin
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ alsaLib gtk2 ];
+
+ meta = {
+ description = "Doing phonetics by computer";
+ homepage = "https://www.fon.hum.uva.nl/praat/";
+ license = stdenv.lib.licenses.gpl2Plus; # Has some 3rd-party code in it though
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/projectm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/projectm/default.nix
new file mode 100644
index 000000000000..845435be60eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/projectm/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, mkDerivation
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, SDL2
+, qtdeclarative
+, libpulseaudio
+, glm
+, which
+}:
+
+mkDerivation rec {
+ pname = "projectm";
+ version = "3.1.8";
+
+ src = fetchFromGitHub {
+ owner = "projectM-visualizer";
+ repo = "projectM";
+ rev = "v${version}";
+ sha256 = "17zyxj1q0zj17jskq8w9bn2ijn34ldvdq61wy01yf5wgngax2r4z";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ autoreconfHook
+ which
+ ];
+
+ buildInputs = [
+ SDL2
+ qtdeclarative
+ libpulseaudio
+ glm
+ ];
+
+ configureFlags = [
+ "--enable-qt"
+ "--enable-sdl"
+ ];
+
+ fixupPhase = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+ # NOTE: 2019-10-05: Upstream inserts the src path buring build into ELF rpath, so must delete it out
+ # upstream report: https://github.com/projectM-visualizer/projectm/issues/245
+ for entry in $out/bin/* ; do
+ patchelf --set-rpath "$(patchelf --print-rpath $entry | tr ':' '\n' | grep -v 'src/libprojectM' | tr '\n' ':')" "$entry"
+ done
+ '' + ''
+ wrapQtApp $out/bin/projectM-pulseaudio
+ rm $out/bin/projectM-unittest
+ '';
+
+ meta = {
+ homepage = "https://github.com/projectM-visualizer/projectm";
+ description = "Cross-platform Milkdrop-compatible music visualizer";
+ license = lib.licenses.lgpl21;
+ platforms = lib.platforms.unix;
+ maintainers = with lib.maintainers; [ ajs124 ];
+ longDescription = ''
+ The open-source project that reimplements the esteemed Winamp Milkdrop by Geiss in a more modern, cross-platform reusable library.
+ Read an audio input and produces mesmerizing visuals, detecting tempo, and rendering advanced equations into a limitless array of user-contributed visualizations.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
new file mode 100644
index 000000000000..bc89505a1fe2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, nixosTests
+, alsaLib
+, SDL2
+}:
+
+stdenv.mkDerivation rec {
+ pname = "pt2-clone";
+ version = "1.26_fix";
+
+ src = fetchFromGitHub {
+ owner = "8bitbubsy";
+ repo = "pt2-clone";
+ rev = "v${version}";
+ sha256 = "1ikhgagniiq4irsy8i3g64m6cl61lnfvs163n8gs4hm426yckyb8";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ SDL2 ] ++ stdenv.lib.optional stdenv.isLinux alsaLib;
+
+ passthru.tests = {
+ pt2-clone-opens = nixosTests.pt2-clone;
+ };
+
+ meta = with stdenv.lib; {
+ description = "A highly accurate clone of the classic ProTracker 2.3D software for Amiga";
+ homepage = "https://16-bits.org/pt2.php";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ fgaz ];
+ # From HOW-TO-COMPILE.txt:
+ # > This code is NOT big-endian compatible
+ platforms = platforms.littleEndian;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ptcollab/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ptcollab/default.nix
new file mode 100644
index 000000000000..ff190fdcdd36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ptcollab/default.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, stdenv
+, fetchFromGitHub
+, qmake
+, qtbase
+, qtmultimedia
+, libvorbis
+}:
+
+mkDerivation rec {
+ pname = "ptcollab";
+ version = "0.3.5.1";
+
+ src = fetchFromGitHub {
+ owner = "yuxshao";
+ repo = "ptcollab";
+ rev = "v${version}";
+ sha256 = "1ahfxjm1chz8k65rs7rgn4s2bgippq58fjcxl8fr21pzn718wqf1";
+ };
+
+ nativeBuildInputs = [ qmake ];
+
+ buildInputs = [ qtbase qtmultimedia libvorbis ];
+
+ meta = with stdenv.lib; {
+ description = "Experimental pxtone editor where you can collaborate with friends";
+ homepage = "https://yuxshao.github.io/ptcollab/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ OPNA2608 ];
+ platforms = platforms.all;
+ # Requires Qt5.15
+ broken = stdenv.hostPlatform.isDarwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/puddletag/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/puddletag/default.nix
new file mode 100644
index 000000000000..55cde08fe871
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/puddletag/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, python3Packages, wrapQtAppsHook, chromaprint }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "puddletag";
+ version = "2.0.1";
+
+ src = fetchFromGitHub {
+ owner = "keithgg";
+ repo = "puddletag";
+ rev = version;
+ sha256 = "sha256-9l8Pc77MX5zFkOqU00HFS8//3Bzd2OMnVV1brmWsNAQ=";
+ };
+
+ sourceRoot = "source/source";
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+
+ propagatedBuildInputs = [ chromaprint ] ++ (with python3Packages; [
+ configobj
+ mutagen
+ pyparsing
+ pyqt5
+ ]);
+
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+
+ doCheck = false; # there are no tests
+
+ dontStrip = true; # we are not generating any binaries
+
+ meta = with stdenv.lib; {
+ description = "An audio tag editor similar to the Windows program, Mp3tag";
+ homepage = "https://docs.puddletag.net";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
new file mode 100644
index 000000000000..6a19d959a23d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, bc, dbus, gawk, gnused, libnotify, pulseaudio }:
+
+let
+ path = stdenv.lib.makeBinPath [ bc dbus gawk gnused libnotify pulseaudio ];
+ pname = "pulseaudio-ctl";
+
+in stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+ version = "1.68";
+
+ src = fetchFromGitHub {
+ owner = "graysky2";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0wrzfanwy18wyawpg8rfvfgjh3lwngqwmfpi4ww3530rfmi84cf0";
+ };
+
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace /usr $out
+
+ substituteInPlace common/${pname}.in \
+ --replace '$0' ${pname}
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postFixup = ''
+ wrapProgram $out/bin/${pname} \
+ --prefix PATH : ${path}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Control pulseaudio volume from the shell or mapped to keyboard shortcuts. No need for alsa-utils";
+ homepage = "https://bbs.archlinux.org/viewtopic.php?id=124513";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
new file mode 100644
index 000000000000..c0986880c094
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -0,0 +1,54 @@
+{ fetchFromGitHub, stdenv, pythonPackages
+, mp3Support ? true, lame ? null
+, opusSupport ? true, opusTools ? null
+, faacSupport ? false, faac ? null
+, flacSupport ? true, flac ? null
+, soxSupport ? true, sox ? null
+, vorbisSupport ? true, vorbis-tools ? null
+}:
+
+assert mp3Support -> lame != null;
+assert opusSupport -> opusTools != null;
+assert faacSupport -> faac != null;
+assert flacSupport -> flac != null;
+assert soxSupport -> sox != null;
+assert vorbisSupport -> vorbis-tools != null;
+
+let
+ zeroconf = pythonPackages.callPackage ./zeroconf.nix { };
+in
+pythonPackages.buildPythonApplication {
+ pname = "pulseaudio-dlna";
+ version = "unstable-2017-11-01";
+
+ src = fetchFromGitHub {
+ owner = "masmu";
+ repo = "pulseaudio-dlna";
+ rev = "4472928dd23f274193f14289f59daec411023ab0";
+ sha256 = "1dfn7036vrq49kxv4an7rayypnm5dlawsf02pfsldw877hzdamqk";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [
+ dbus-python docopt requests setproctitle protobuf psutil futures
+ chardet notify2 netifaces pyroute2 pygobject2 lxml setuptools ]
+ ++ [ zeroconf ]
+ ++ stdenv.lib.optional mp3Support lame
+ ++ stdenv.lib.optional opusSupport opusTools
+ ++ stdenv.lib.optional faacSupport faac
+ ++ stdenv.lib.optional flacSupport flac
+ ++ stdenv.lib.optional soxSupport sox
+ ++ stdenv.lib.optional vorbisSupport vorbis-tools;
+
+ # upstream has no tests
+ checkPhase = ''
+ $out/bin/pulseaudio-dlna --help > /dev/null
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
+ homepage = "https://github.com/masmu/pulseaudio-dlna";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ mog ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix
new file mode 100644
index 000000000000..efe39aa1600e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, ifaddr
+, typing
+, pythonOlder
+, netifaces
+, six
+, enum-compat
+}:
+
+buildPythonPackage rec {
+ pname = "zeroconf";
+ version = "0.19.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0ykzg730n915qbrq9bn5pn06bv6rb5zawal4sqjyfnjjm66snkj3";
+ };
+
+ propagatedBuildInputs = [ netifaces six enum-compat ifaddr ]
+ ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ];
+
+ meta = with stdenv.lib; {
+ description = "A pure python implementation of multicast DNS service discovery";
+ homepage = "https://github.com/jstasiak/python-zeroconf";
+ license = licenses.lgpl21;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/default.nix
new file mode 100644
index 000000000000..42e780af0989
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/default.nix
@@ -0,0 +1,91 @@
+{ stdenv
+, runCommand
+, fetchFromGitHub
+, pulseaudio
+, pkgconfig
+, ffmpeg
+, patchelf
+, fdk_aac
+, libtool
+, ldacbt
+, cmake
+, bluez
+, dbus
+, sbc
+, lib
+}:
+
+let
+ pulseSources = runCommand "pulseaudio-sources" {} ''
+ mkdir $out
+ if [ -d ${pulseaudio.src} ]; then
+ ln -s ${pulseaudio.src}/* $out/
+ else
+ tar -xf ${pulseaudio.src}
+ mv pulseaudio*/* $out/
+ fi
+ '';
+
+in stdenv.mkDerivation rec {
+ pname = "pulseaudio-modules-bt";
+ version = "1.4";
+
+ src = fetchFromGitHub {
+ owner = "EHfive";
+ repo = "pulseaudio-modules-bt";
+ rev = "v${version}";
+ sha256 = "0bzg6x405j39axnkvc6n6vkl1hv1frk94y1i9sl170081bk23asd";
+ };
+
+ patches = [
+ ./fix-install-path.patch
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ patchelf
+ cmake
+ ];
+
+ buildInputs = [
+ pulseaudio
+ ffmpeg
+ fdk_aac
+ libtool
+ ldacbt
+ bluez
+ dbus
+ sbc
+ ];
+
+ postPatch = ''
+ # Upstream bundles pulseaudio as a submodule
+ rm -r pa
+ ln -s ${pulseSources} pa
+
+ # Pulseaudio version is detected with a -rebootstrapped suffix which build system assumptions
+ substituteInPlace config.h.in --replace PulseAudio_VERSION ${pulseaudio.version}
+ substituteInPlace CMakeLists.txt --replace '${"\${PULSE_DIR}"}' ${pulseaudio.pulseDir}
+
+ # Fraunhofer recommends to enable afterburner but upstream has it set to false by default
+ substituteInPlace src/modules/bluetooth/a2dp/a2dp_aac.c \
+ --replace "info->aac_afterburner = false;" "info->aac_afterburner = true;"
+ '';
+
+ postFixup = ''
+ for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
+ orig_rpath=$(patchelf --print-rpath "$so")
+ patchelf \
+ --set-rpath "${ldacbt}/lib:${lib.getLib ffmpeg}/lib:$out/${pulseaudio.pulseDir}/modules:$orig_rpath" \
+ "$so"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/EHfive/pulseaudio-modules-bt";
+ description = "LDAC, aptX, aptX HD, AAC codecs (A2DP Audio) support for Linux PulseAudio";
+ platforms = platforms.linux;
+ license = licenses.mit;
+ maintainers = with maintainers; [ adisbladis ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch
new file mode 100644
index 000000000000..7cdb7de4dd13
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch
@@ -0,0 +1,11 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8d20dbf..63fe7ba 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -213,5 +213,4 @@ INSTALL(TARGETS
+ module-bluez5-device
+ module-bluetooth-discover
+ module-bluetooth-policy
+- LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
+-
++ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${PULSE_DIR}/modules/)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
new file mode 100644
index 000000000000..427d29768d66
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
@@ -0,0 +1,113 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkgconfig
+, itstool
+, python3
+, libxml2
+, desktop-file-utils
+, wrapGAppsHook
+, gst_all_1
+, pulseaudio
+, gtk3
+, glib
+, glibmm
+, gtkmm3
+, lilv
+, lv2
+, serd
+, sord
+, sratom
+, libbs2b
+, libsamplerate
+, libsndfile
+, libebur128
+, boost
+, dbus
+, fftwFloat
+, calf
+, zita-convolver
+, zam-plugins
+, rubberband
+, lsp-plugins
+}:
+
+let
+ lv2Plugins = [
+ calf # limiter, compressor exciter, bass enhancer and others
+ lsp-plugins # delay
+ ];
+ ladspaPlugins = [
+ rubberband # pitch shifting
+ zam-plugins # maximizer
+ ];
+in stdenv.mkDerivation rec {
+ pname = "pulseeffects";
+ version = "4.8.2";
+
+ src = fetchFromGitHub {
+ owner = "wwmm";
+ repo = "pulseeffects";
+ rev = "v${version}";
+ sha256 = "19h47mrxjm6x83pqcxfsshf48kd1babfk0kwdy1c7fjri7kj0g0s";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ libxml2
+ itstool
+ python3
+ desktop-file-utils
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ pulseaudio
+ glib
+ glibmm
+ gtk3
+ gtkmm3
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base # gst-fft
+ gst_all_1.gst-plugins-good # pulsesrc
+ gst_all_1.gst-plugins-bad
+ lilv lv2 serd sord sratom
+ libbs2b
+ libebur128
+ libsamplerate
+ libsndfile
+ boost
+ dbus
+ fftwFloat
+ zita-convolver
+ ];
+
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --set LV2_PATH "${stdenv.lib.makeSearchPath "lib/lv2" lv2Plugins}"
+ --set LADSPA_PATH "${stdenv.lib.makeSearchPath "lib/ladspa" ladspaPlugins}"
+ )
+ '';
+
+ # Meson is no longer able to pick up Boost automatically.
+ # https://github.com/NixOS/nixpkgs/issues/86131
+ BOOST_INCLUDEDIR = "${stdenv.lib.getDev boost}/include";
+ BOOST_LIBRARYDIR = "${stdenv.lib.getLib boost}/lib";
+
+ meta = with stdenv.lib; {
+ description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
+ homepage = "https://github.com/wwmm/pulseeffects";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = platforms.linux;
+ badPlatforms = [ "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/puredata/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/puredata/default.nix
new file mode 100644
index 000000000000..4b221cd1a76b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/puredata/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, autoreconfHook, gettext, makeWrapper
+, alsaLib, libjack2, tk, fftw
+}:
+
+stdenv.mkDerivation rec {
+ pname = "puredata";
+ version = "0.50-2";
+
+ src = fetchurl {
+ url = "http://msp.ucsd.edu/Software/pd-${version}.src.tar.gz";
+ sha256 = "0dz6r6jy0zfs1xy1xspnrxxks8kddi9c7pxz4vpg2ygwv83ghpg5";
+ };
+
+ nativeBuildInputs = [ autoreconfHook gettext makeWrapper ];
+
+ buildInputs = [ alsaLib libjack2 fftw ];
+
+ configureFlags = [
+ "--enable-alsa"
+ "--enable-jack"
+ "--enable-fftw"
+ "--disable-portaudio"
+ "--disable-oss"
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/pd --prefix PATH : ${tk}/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''A real-time graphical programming environment for
+ audio, video, and graphical processing'';
+ homepage = "http://puredata.info";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix
new file mode 100644
index 000000000000..80968e2700b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix
@@ -0,0 +1,16 @@
+{ symlinkJoin, puredata, makeWrapper, plugins }:
+
+let
+puredataFlags = map (x: "-path ${x}/") plugins;
+in symlinkJoin {
+ name = "puredata-with-plugins-${puredata.version}";
+
+ paths = [ puredata ] ++ plugins;
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/pd \
+ --add-flags "${toString puredataFlags}"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/qjackctl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
new file mode 100644
index 000000000000..8cb28dcfd5af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, mkDerivation, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
+
+mkDerivation rec {
+ version = "0.6.3";
+ pname = "qjackctl";
+
+ # some dependencies such as killall have to be installed additionally
+
+ src = fetchurl {
+ url = "mirror://sourceforge/qjackctl/${pname}-${version}.tar.gz";
+ sha256 = "0zbb4jlx56qvcqyhx34mbagkqf3wbxgj84hk0ppf5cmcrxv67d4x";
+ };
+
+ buildInputs = [
+ qtbase
+ qtx11extras
+ qttools
+ alsaLib
+ libjack2
+ dbus
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ configureFlags = [ "--enable-jack-version" ];
+
+ meta = with stdenv.lib; {
+ description = "A Qt application to control the JACK sound server daemon";
+ homepage = "http://qjackctl.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
new file mode 100644
index 000000000000..4bbfe79a2c9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchgit
+, automake
+, autoreconfHook
+, lv2
+, pkg-config
+, qt5
+, alsaLib
+, libjack2
+}:
+
+stdenv.mkDerivation rec {
+ name = "qmidiarp";
+ version = "0.6.5";
+
+ src = fetchgit {
+ url = "https://git.code.sf.net/p/qmidiarp/code";
+ sha256 = "1g2143gzfbihqr2zi3k2v1yn1x3mwfbb2khmcd4m4cq3hcwhhlx9";
+ rev = "qmidiarp-0.6.5";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkg-config
+ qt5.wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ alsaLib
+ lv2
+ libjack2
+ ] ++ (with qt5; [
+ qttools
+ ]);
+
+ meta = with stdenv.lib; {
+ description = "An advanced MIDI arpeggiator";
+ longDescription = ''
+ An advanced MIDI arpeggiator, programmable step sequencer and LFO for Linux.
+ It can hold any number of arpeggiator, sequencer, or LFO modules running in
+ parallel.
+ '';
+
+ homepage = "http://qmidiarp.sourceforge.net";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ sjfloat ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/qmidinet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
new file mode 100644
index 000000000000..9b9b84850dc5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, lib, fetchurl, pkgconfig, qtbase, qttools, alsaLib, libjack2 }:
+
+mkDerivation rec {
+ version = "0.6.3";
+ pname = "qmidinet";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/qmidinet/${pname}-${version}.tar.gz";
+ sha256 = "04jbvnf6yp9l0bhl1ym6zqkmaz8c2az3flq7qgflaxzj3isns1p1";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ buildInputs = [ qtbase qttools alsaLib libjack2 ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with lib; {
+ description = "A MIDI network gateway application that sends and receives MIDI data (ALSA Sequencer and/or JACK MIDI) over the network";
+ homepage = "http://qmidinet.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix
new file mode 100644
index 000000000000..2a83d98b6ea3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, qt4, alsaLib }:
+
+stdenv.mkDerivation rec {
+ version = "0.4.0";
+ pname = "qmidiroute";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/alsamodular/QMidiRoute/${version}/${pname}-${version}.tar.gz";
+ sha256 = "0vmjwarsxr5540rafhmdcc62yarf0w2l05bjjl9s28zzr5m39z3n";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ qt4 alsaLib ];
+
+ meta = with stdenv.lib; {
+ description = "MIDI event processor and router";
+ longDescription = ''
+ qmidiroute is a versatile MIDI event processor and router for the ALSA
+ sequencer. The graphical interface is based on the Qt4 toolkit.
+ qmidiroute permits setting up an unlimited number of MIDI maps in which
+ incoming events are selected, modified or even changed in type before
+ being directed to a dedicated ALSA output port. The maps work in
+ parallel, and they are organized in tabs.
+ '';
+
+ license = licenses.gpl2;
+ maintainers = [ maintainers.lebastr ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/qmmp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/qmmp/default.nix
new file mode 100644
index 000000000000..e6f41711fdf6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/qmmp/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, mkDerivation, fetchurl, cmake, pkgconfig, xlibsWrapper
+, qtbase, qttools, qtmultimedia, qtx11extras
+# transports
+, curl, libmms
+# input plugins
+, libmad, taglib, libvorbis, libogg, flac, libmpcdec, libmodplug, libsndfile
+, libcdio, cdparanoia, libcddb, faad2, ffmpeg_3, wildmidi
+# output plugins
+, alsaLib, libpulseaudio
+# effect plugins
+, libsamplerate
+}:
+
+# Additional plugins that can be added:
+# wavpack (http://www.wavpack.com/)
+# gme (Game music support)
+# Ogg Opus support
+# BS2B effect plugin (http://bs2b.sourceforge.net/)
+# JACK audio support
+# ProjectM visualization plugin
+
+# To make MIDI work we must tell Qmmp what instrument configuration to use (and
+# this can unfortunately not be set at configure time):
+# Go to settings (ctrl-p), navigate to the WildMidi plugin and click on
+# Preferences. In the instrument configuration field, type the path to
+# /nix/store/*wildmidi*/etc/wildmidi.cfg (or your own custom cfg file).
+
+# Qmmp installs working .desktop file(s) all by itself, so we don't need to
+# handle that.
+
+mkDerivation rec {
+ name = "qmmp-1.4.2";
+
+ src = fetchurl {
+ url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
+ sha256 = "1kvzw0n90crg3dgy8834qrjv0zb3ia5cny7virax9ax73y653jfa";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs =
+ [ # basic requirements
+ qtbase qttools qtmultimedia qtx11extras xlibsWrapper
+ # transports
+ curl libmms
+ # input plugins
+ libmad taglib libvorbis libogg flac libmpcdec libmodplug libsndfile
+ libcdio cdparanoia libcddb faad2 ffmpeg_3 wildmidi
+ # output plugins
+ alsaLib libpulseaudio
+ # effect plugins
+ libsamplerate
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Qt-based audio player that looks like Winamp";
+ homepage = "http://qmmp.ylsoftware.com/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ repositories.svn = "http://qmmp.googlecode.com/svn/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/qsampler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/qsampler/default.nix
new file mode 100644
index 000000000000..1f65b3748381
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/qsampler/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, autoconf, automake, libtool, pkgconfig, qttools
+, liblscp, libgig, qtbase, mkDerivation }:
+
+mkDerivation rec {
+ pname = "qsampler";
+ version = "0.6.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/qsampler/${pname}-${version}.tar.gz";
+ sha256 = "1wr7k739zx2nz00b810f60g9k3y92w05nfci987hw7y2sks9rd8j";
+ };
+
+ nativeBuildInputs = [ autoconf automake libtool pkgconfig qttools ];
+ buildInputs = [ liblscp libgig qtbase ];
+
+ preConfigure = "make -f Makefile.svn";
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.linuxsampler.org";
+ description = "Graphical frontend to LinuxSampler";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/qsynth/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/qsynth/default.nix
new file mode 100644
index 000000000000..af59bb56eb9a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/qsynth/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, alsaLib, fluidsynth, libjack2, autoconf, pkgconfig
+, mkDerivation, qtbase, qttools, qtx11extras
+}:
+
+mkDerivation rec {
+ pname = "qsynth";
+ version = "0.6.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
+ sha256 = "0xiqmpzpxjvh32vivfj6h33w0ahmyfjzjb41b6fnf92bbg9k6mqv";
+ };
+
+ nativeBuildInputs = [ autoconf pkgconfig ];
+
+ buildInputs = [ alsaLib fluidsynth libjack2 qtbase qttools qtx11extras ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Fluidsynth GUI";
+ homepage = "https://sourceforge.net/projects/qsynth";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/qtractor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/qtractor/default.nix
new file mode 100644
index 000000000000..961314088d1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/qtractor/default.nix
@@ -0,0 +1,35 @@
+{ alsaLib, autoconf, automake, dssi, fetchurl, libjack2
+, ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile
+, libtool, libvorbis, lilv, lv2, pkgconfig, qttools, qtbase, rubberband, serd
+, sord, sratom, stdenv, suil, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "qtractor";
+ version = "0.9.18";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "121vmygdzp37p6f93f8dbbg2m2r55j7amyiapzkqgypgn4vfdbwr";
+ };
+
+ nativeBuildInputs = [
+ autoconf automake libtool pkgconfig qttools wrapQtAppsHook
+ ];
+
+ buildInputs =
+ [ alsaLib dssi libjack2 ladspaH
+ ladspaPlugins liblo libmad libsamplerate libsndfile libtool
+ libvorbis lilv lv2 qtbase rubberband serd sord sratom
+ suil
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Audio/MIDI multi-track sequencer";
+ homepage = "http://qtractor.sourceforge.net";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/qtscrobbler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/qtscrobbler/default.nix
new file mode 100644
index 000000000000..5b84989a7c41
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/qtscrobbler/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchurl, withMtp ? true, libmtp, pkgconfig, which, qt4, qmake4Hook }:
+
+stdenv.mkDerivation rec {
+ pname = "qtscrobbler";
+ version = "0.11";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/qtscrob/qtscrob/${version}/qtscrob-${version}.tar.bz2";
+ sha256 = "01c8e48f616ed09504833d27d92fd62f455bd645ea2d1cc2a5f4c287d641daba";
+ };
+
+ nativeBuildInputs = [ qmake4Hook ] ++ lib.optionals withMtp [ pkgconfig which ];
+ buildInputs = [ qt4 ] ++ lib.optional withMtp libmtp;
+
+ enableParallelBuilding = true;
+
+ postPatch = ''
+ cd src
+ sed -i -e "s,/usr/local,$out," -e "s,/usr,," common.pri
+ '';
+
+ meta = with lib; {
+ description = "Qt based last.fm scrobbler";
+ longDescription = ''
+ QTScrobbler is a tool to upload information about the tracks you have played from your Digital Audio Player (DAP) to your last.fm account.
+ It is able to gather this information from Apple iPods or DAPs running the Rockbox replacement firmware.
+ '';
+
+ homepage = "http://qtscrob.sourceforge.net";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.vanzef ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/quodlibet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/quodlibet/default.nix
new file mode 100644
index 000000000000..704e20cc8c56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/quodlibet/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome3, gtk3, gdk-pixbuf,
+ tag ? "", xvfb_run, dbus, glibcLocales, glib, glib-networking, gobject-introspection,
+ gst_all_1, withGstPlugins ? true,
+ xineBackend ? false, xineLib,
+ withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false,
+ webkitgtk ? null,
+ keybinder3 ? null, gtksourceview ? null, libmodplug ? null, kakasi ? null, libappindicator-gtk3 ? null }:
+
+let optionals = stdenv.lib.optionals; in
+python3.pkgs.buildPythonApplication rec {
+ pname = "quodlibet${tag}";
+ version = "4.2.1";
+
+ src = fetchurl {
+ url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
+ sha256 = "0b1rvr4hqs2bjmhayms7vxxkn3d92k9v7p1269rjhf11hpk122l7";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook gettext ];
+
+ checkInputs = [ gdk-pixbuf ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb_run dbus.daemon glibcLocales ]);
+
+ buildInputs = [ gnome3.adwaita-icon-theme libsoup glib glib-networking gtk3 webkitgtk gdk-pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobject-introspection ]
+ ++ (if xineBackend then [ xineLib ] else with gst_all_1;
+ [ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]);
+
+ propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo mutagen gst-python feedparser ]
+ ++ optionals withDbusPython [ dbus-python ]
+ ++ optionals withPyInotify [ pyinotify ]
+ ++ optionals withMusicBrainzNgs [ musicbrainzngs ]
+ ++ optionals stdenv.isDarwin [ pyobjc ]
+ ++ optionals withPahoMqtt [ paho-mqtt ];
+
+ LC_ALL = "en_US.UTF-8";
+
+ pytestFlags = stdenv.lib.optionals (xineBackend || !withGstPlugins) [
+ "--ignore=tests/plugin/test_replaygain.py"
+ ] ++ [
+ # upstream does actually not enforce source code linting
+ "--ignore=tests/quality"
+ # build failure on Arch Linux
+ # https://github.com/NixOS/nixpkgs/pull/77796#issuecomment-575841355
+ "--ignore=tests/test_operon.py"
+ ];
+
+ checkPhase = ''
+ runHook preCheck
+ env XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_ICON_DIRS:$XDG_DATA_DIRS" \
+ HOME=$(mktemp -d) \
+ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+ py.test $pytestFlags
+ runHook postCheck
+ '';
+
+ preFixup = stdenv.lib.optionalString (kakasi != null) "gappsWrapperArgs+=(--prefix PATH : ${kakasi}/bin)";
+
+ meta = with stdenv.lib; {
+ description = "GTK-based audio player written in Python, using the Mutagen tagging library";
+ license = licenses.gpl2Plus;
+
+ longDescription = ''
+ Quod Libet is a GTK-based audio player written in Python, using
+ the Mutagen tagging library. It's designed around the idea that
+ you know how to organize your music better than we do. It lets
+ you make playlists based on regular expressions (don't worry,
+ regular searches work too). It lets you display and edit any
+ tags you want in the file. And it lets you do this for all the
+ file formats it supports. Quod Libet easily scales to libraries
+ of thousands (or even tens of thousands) of songs. It also
+ supports most of the features you expect from a modern media
+ player, like Unicode support, tag editing, Replay Gain, podcasts
+ & internet radio, and all major audio formats.
+ '';
+
+ maintainers = with maintainers; [ coroa sauyon ];
+ homepage = "https://quodlibet.readthedocs.io/en/latest/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/r128gain/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/r128gain/default.nix
new file mode 100644
index 000000000000..3044acb32649
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/r128gain/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, fetchFromGitHub
+, genericUpdater
+, substituteAll
+, common-updater-scripts
+, ffmpeg_3
+, python3Packages
+, sox
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "r128gain";
+ version = "1.0.3";
+
+ src = fetchFromGitHub {
+ owner = "desbma";
+ repo = "r128gain";
+ rev = version;
+ sha256 = "0w2i2szajv1vcmc96w0fczdr8xc28ijcf1gdg180f21gi6yh96sc";
+ };
+
+ patches = [
+ (
+ substituteAll {
+ src = ./ffmpeg-location.patch;
+ ffmpeg = ffmpeg_3;
+ }
+ )
+ ];
+
+ propagatedBuildInputs = with python3Packages; [ crcmod ffmpeg-python mutagen tqdm ];
+ checkInputs = with python3Packages; [ requests sox ];
+
+ # Testing downloads media files for testing, which requires the
+ # sandbox to be disabled.
+ doCheck = false;
+
+ passthru = {
+ updateScript = genericUpdater {
+ inherit pname version;
+ versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+ };
+ };
+
+ meta = with lib; {
+ description = "Fast audio loudness scanner & tagger (ReplayGain v2 / R128)";
+ homepage = "https://github.com/desbma/r128gain";
+ license = licenses.lgpl2Plus;
+ maintainers = [ maintainers.AluisioASG ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/r128gain/ffmpeg-location.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/r128gain/ffmpeg-location.patch
new file mode 100644
index 000000000000..c01f115c1d6d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/r128gain/ffmpeg-location.patch
@@ -0,0 +1,29 @@
+--- i/r128gain/__init__.py
++++ w/r128gain/__init__.py
+@@ -78,7 +78,7 @@ def get_ffmpeg_lib_versions(ffmpeg_path=None):
+ Example: 0x3040100 for FFmpeg 3.4.1
+ """
+ r = collections.OrderedDict()
+- cmd = (ffmpeg_path or "ffmpeg", "-version")
++ cmd = (ffmpeg_path or "@ffmpeg@/bin/ffmpeg", "-version")
+ output = subprocess.run(cmd,
+ check=True,
+ stdout=subprocess.PIPE,
+@@ -156,7 +156,7 @@ def get_r128_loudness(audio_filepaths, *, calc_peak=True, enable_ffmpeg_threadin
+ os.devnull,
+ **additional_ffmpeg_args,
+ f="null").global_args("-hide_banner", "-nostats"),
+- cmd=ffmpeg_path or "ffmpeg")
++ cmd=ffmpeg_path or "@ffmpeg@/bin/ffmpeg")
+
+ # run
+ logger().debug(cmd_to_string(cmd))
+@@ -740,7 +740,7 @@ def cl_main():
+ help="Maximum number of tracks to scan in parallel. If not specified, autodetect CPU count")
+ arg_parser.add_argument("-f",
+ "--ffmpeg-path",
+- default=shutil.which("ffmpeg"),
++ default="@ffmpeg@/bin/ffmpeg",
+ help="""Full file path of ffmpeg executable (only needed if not in PATH).
+ If not specified, autodetect""")
+ arg_parser.add_argument("-d",
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
new file mode 100644
index 000000000000..014906594a7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
@@ -0,0 +1,100 @@
+{ stdenv, fetchFromGitHub
+, cmake, pkgconfig
+# Transport
+, curl
+# Libraries
+, boost
+, jsoncpp
+, libbsd
+, pcre
+# GUI/Desktop
+, dbus
+, glibmm
+, gsettings-desktop-schemas
+, hicolor-icon-theme
+, libappindicator-gtk3
+, libnotify
+, libxdg_basedir
+, wxGTK
+# GStreamer
+, gst_all_1
+# User-agent info
+, lsb-release
+# rt2rtng
+, python3
+# Testing
+, gtest
+# Fixup
+, wrapGAppsHook
+, makeWrapper
+}:
+
+let
+ gstInputs = with gst_all_1; [
+ gstreamer gst-plugins-base
+ gst-plugins-good gst-plugins-bad gst-plugins-ugly
+ gst-libav
+ ];
+ # For the rt2rtng utility for converting bookmark file to -ng format
+ pythonInputs = with python3.pkgs; [ python lxml ];
+in
+stdenv.mkDerivation rec {
+ pname = "radiotray-ng";
+ version = "0.2.7";
+
+ src = fetchFromGitHub {
+ owner = "ebruck";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1v2nsz7s0jj0wmqabzk6akcf1353rachm1lfq77hxbq9z5pw8pgb";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook makeWrapper ];
+
+ buildInputs = [
+ curl
+ boost jsoncpp libbsd pcre
+ glibmm hicolor-icon-theme gsettings-desktop-schemas libappindicator-gtk3 libnotify
+ libxdg_basedir
+ lsb-release
+ wxGTK
+ ] ++ gstInputs
+ ++ pythonInputs;
+
+ patches = [ ./no-dl-googletest.patch ];
+
+ postPatch = ''
+ for x in package/CMakeLists.txt include/radiotray-ng/common.hpp data/*.desktop; do
+ substituteInPlace $x --replace /usr $out
+ done
+ substituteInPlace package/CMakeLists.txt --replace /etc/xdg/autostart $out/etc/xdg/autostart
+
+ # We don't find the radiotray-ng-notification icon otherwise
+ substituteInPlace data/radiotray-ng.desktop \
+ --replace radiotray-ng-notification radiotray-ng-on
+ substituteInPlace data/rtng-bookmark-editor.desktop \
+ --replace radiotray-ng-notification radiotray-ng-on
+ '';
+
+ cmakeFlags = [
+ "-DBUILD_TESTS=${if doCheck then "ON" else "OFF"}"
+ ];
+
+ enableParallelBuilding = true;
+
+ checkInputs = [ gtest ];
+ doCheck = !stdenv.isAarch64; # single failure that I can't explain
+
+ preFixup = ''
+ gappsWrapperArgs+=(--suffix PATH : ${stdenv.lib.makeBinPath [ dbus ]})
+ wrapProgram $out/bin/rt2rtng --prefix PYTHONPATH : $PYTHONPATH
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An internet radio player for linux";
+ homepage = "https://github.com/ebruck/radiotray-ng";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ dtzWill ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/radiotray-ng/no-dl-googletest.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/radiotray-ng/no-dl-googletest.patch
new file mode 100644
index 000000000000..3aee97516560
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/radiotray-ng/no-dl-googletest.patch
@@ -0,0 +1,55 @@
+From b6f7a9e2e0194c6baed63a33b7beff359080b8d9 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Sat, 16 Mar 2019 11:40:00 -0500
+Subject: [PATCH] don't download googletest
+
+---
+ CMakeLists.txt | 18 ------------------
+ tests/CMakeLists.txt | 1 -
+ 2 files changed, 19 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ddba1be..3396705 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -70,25 +70,7 @@ endif()
+
+ # build tests? Then we need googletest...
+ if (BUILD_TESTS)
+- include(ExternalProject)
+-
+- ExternalProject_Add(googletest
+- PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest"
+- URL https://github.com/google/googletest/archive/release-1.8.1.tar.gz
+- URL_HASH SHA256=9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c
+- TIMEOUT 30
+- DOWNLOAD_NO_PROGRESS true
+- INSTALL_COMMAND "")
+-
+- ExternalProject_Get_Property(googletest SOURCE_DIR)
+- include_directories(${SOURCE_DIR}/googlemock/include ${SOURCE_DIR}/googletest/include)
+- ExternalProject_Get_Property(googletest BINARY_DIR)
+- link_directories(${BINARY_DIR}/googlemock ${BINARY_DIR}/googlemock/gtest)
+ set(GMOCK_BOTH_LIBRARIES gmock_main gmock gtest)
+- set_property(DIRECTORY PROPERTY CLEAN_NO_CUSTOM "${CMAKE_CURRENT_BINARY_DIR}/googletest")
+- unset(SOURCE_DIR)
+- unset(BINARY_DIR)
+-
+ enable_testing()
+ add_subdirectory(tests)
+ add_subdirectory(tests/runners/)
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 859c048..58ab5c2 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -2,7 +2,6 @@ include(GoogleTest)
+
+ function(add_gmock_test target)
+ add_executable(${target} ${ARGN})
+- add_dependencies(${target} googletest)
+ target_link_libraries(${target} config playlist bookmarks event_bus ${GMOCK_BOTH_LIBRARIES} ${XDG_BASEDIR_LIBRARIES} ${Boost_LIBRARIES} ${CURL_LIBRARIES} ${JSONCPP_LIBRARIES} pthread)
+ target_include_directories(${target} PRIVATE ${JSONCPP_INCLUDE_DIRS})
+ gtest_discover_tests(${target})
+--
+2.22.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/rakarrack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/rakarrack/default.nix
new file mode 100644
index 000000000000..4548f9ba624f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/rakarrack/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, alsaLib, alsaUtils, fltk, libjack2, libXft,
+libXpm, libjpeg, libpng, libsamplerate, libsndfile, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "rakarrack";
+ version = "0.6.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/rakarrack/${pname}-${version}.tar.bz2";
+ sha256 = "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ patches = [ ./fltk-path.patch ];
+
+ buildInputs = [ alsaLib alsaUtils fltk libjack2 libXft libXpm libjpeg
+ libpng libsamplerate libsndfile zlib ];
+
+ meta = with stdenv.lib; {
+ description = "Multi-effects processor emulating a guitar effects pedalboard";
+ homepage = "http://rakarrack.sourceforge.net";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/rakarrack/fltk-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/rakarrack/fltk-path.patch
new file mode 100644
index 000000000000..8f042bd3a669
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/rakarrack/fltk-path.patch
@@ -0,0 +1,35 @@
+commit 47245c3fd30dc326fedd7cdae444ddcf0fd97490
+Author: holborn <holborn@users.sourceforge.net>
+Date: Tue Apr 19 15:02:26 2011 +0100
+
+ Fix FL path
+
+ modified: src/global.h
+ modified: src/process.C
+
+diff --git a/src/global.h b/src/global.h
+index fc74b06..3e33da9 100644
+--- a/src/global.h
++++ b/src/global.h
+@@ -176,7 +176,7 @@ return y;
+ #include <X11/xpm.h>
+ #include <jack/jack.h>
+ #include <jack/midiport.h>
+-#include <Fl/Fl_Preferences.H>
++#include <FL/Fl_Preferences.H>
+ #include "FPreset.h"
+ #include "Reverb.h"
+ #include "Chorus.h"
+diff --git a/src/process.C b/src/process.C
+index 51bbc65..c993ff8 100644
+--- a/src/process.C
++++ b/src/process.C
+@@ -28,7 +28,7 @@
+ #include <fcntl.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+-#include <Fl/Fl_Preferences.H>
++#include <FL/Fl_Preferences.H>
+ #include "global.h"
+
+ int Pexitprogram, preset;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix
new file mode 100644
index 000000000000..5193d2899d30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, perlPackages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "realTimeConfigQuickScan";
+ version = "unstable-2020-07-23";
+
+ src = fetchFromGitHub {
+ owner = "raboof";
+ repo = pname;
+ rev = "4697ba093d43d512b74a73b89531cb8c5adaa274";
+ sha256 = "16kanzp5i353x972zjkwgi3m8z90wc58613mlfzb0n01djdnm6k5";
+ };
+
+ buildInputs = [ perlPackages.perl makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ mkdir -p $out/share/$pname
+ mkdir -p $out/share/doc/$pname
+ # Install Script Files:
+ # *.pm files
+ for i in *.pm; do
+ install -Dm 755 "$i" "$out/share/$pname/$i"
+ done
+ # Install doc files:
+ install -D COPYING "$out/share/doc/$pname/COPYING"
+ install -D README.md "$out/share/doc/$pname/README.md"
+ # Install Executable scripts:
+ install -Dm 755 realTimeConfigQuickScan.pl "$out/bin/realTimeConfigQuickScan"
+ install -Dm 755 QuickScan.pl "$out/bin/QuickScan"
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/realTimeConfigQuickScan \
+ --set PERL5LIB "$out/share/$pname"
+ wrapProgram $out/bin/QuickScan \
+ --set PERL5LIB "$out/share/$pname:${with perlPackages; makePerlPath [ Tk ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Linux configuration checker for systems to be used for real-time audio";
+ homepage = "https://github.com/raboof/realtimeconfigquickscan";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ magnetophon ];
+ platforms = platforms.linux ;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/reaper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/reaper/default.nix
new file mode 100644
index 000000000000..e15addd78b1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/reaper/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, autoPatchelfHook, makeWrapper
+, alsaLib, xorg, libjack2
+, gtk3, pango, gdk-pixbuf, cairo, glib, freetype
+, libpulseaudio, xdg_utils
+}:
+
+stdenv.mkDerivation rec {
+ pname = "reaper";
+ version = "6.12c";
+
+ src = fetchurl {
+ url = "https://www.reaper.fm/files/${stdenv.lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
+ sha256 = "1xnd4qvgwsz1dmgb656i611776dqcb84m1gh30i8jhpwcr9ym46w";
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+
+ buildInputs = [
+ alsaLib
+
+ xorg.libX11
+ xorg.libXi
+
+ gdk-pixbuf
+ pango
+ cairo
+ glib
+ freetype
+
+ xdg_utils
+ ];
+
+ runtimeDependencies = [
+ gtk3
+ ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ XDG_DATA_HOME="$out/share" ./install-reaper.sh \
+ --install $out/opt \
+ --integrate-user-desktop
+ rm $out/opt/REAPER/uninstall-reaper.sh
+
+ wrapProgram $out/opt/REAPER/reaper \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libpulseaudio libjack2 ]}"
+
+ mkdir $out/bin
+ ln -s $out/opt/REAPER/reaper $out/bin/
+ ln -s $out/opt/REAPER/reamote-server $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Digital audio workstation";
+ homepage = "https://www.reaper.fm/";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/redoflacs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/redoflacs/default.nix
new file mode 100644
index 000000000000..140b163e25cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/redoflacs/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, makeWrapper
+, installShellFiles
+, flac
+, sox
+, withAucdtect ? false
+, aucdtect ? null
+}:
+
+stdenv.mkDerivation rec {
+ pname = "redoflacs";
+ version = "0.30.20190903";
+
+ src = fetchFromGitHub {
+ owner = "sirjaren";
+ repo = "redoflacs";
+ rev = "4ca544cbc075d0865884906208cb2b8bc318cf9e";
+ sha256 = "19lcl09d4ngz2zzwd8dnnxx41ddvznhar6ggrlf1xvkr5gd7lafp";
+ };
+
+ dontBuild = true;
+
+ nativeBuildInputs = [ installShellFiles makeWrapper ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 -t $out/bin redoflacs
+ install -Dm644 -t $out/share/doc/redoflacs LICENSE *.md
+ installManPage redoflacs.1
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/redoflacs \
+ --prefix PATH : ${stdenv.lib.makeBinPath ([ flac sox ] ++ lib.optional withAucdtect aucdtect)}
+ '';
+
+ meta = with lib; {
+ description = "Parallel BASH commandline FLAC compressor, verifier, organizer, analyzer, and retagger";
+ homepage = src.meta.homepage;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/renoise/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/renoise/default.nix
new file mode 100644
index 000000000000..0ae65cb8c373
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/renoise/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchurl, libX11, libXext, libXcursor, libXrandr, libjack2, alsaLib
+, mpg123, releasePath ? null }:
+
+with stdenv.lib;
+
+# To use the full release version:
+# 1) Sign into https://backstage.renoise.com and download the release version to some stable location.
+# 2) Override the releasePath attribute to point to the location of the newly downloaded bundle.
+# Note: Renoise creates an individual build for each license which screws somewhat with the
+# use of functions like requireFile as the hash will be different for every user.
+let
+ urlVersion = replaceStrings [ "." ] [ "_" ];
+in
+
+stdenv.mkDerivation rec {
+ pname = "renoise";
+ version = "3.2.2";
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ if releasePath == null then
+ fetchurl {
+ urls = [
+ "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
+ "https://web.archive.org/web/https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
+ ];
+ sha256 = "1v249kmyidx55kppk3sry7yg6hl1a91ixhnwz36h4y134fs7bkrl";
+ }
+ else
+ releasePath
+ else throw "Platform is not supported by Renoise";
+
+ buildInputs = [ alsaLib libjack2 libX11 libXcursor libXext libXrandr ];
+
+ installPhase = ''
+ cp -r Resources $out
+
+ mkdir -p $out/lib/
+
+ mv $out/AudioPluginServer* $out/lib/
+
+ cp renoise $out/renoise
+
+ for path in ${toString buildInputs}; do
+ ln -s $path/lib/*.so* $out/lib/
+ done
+
+ ln -s ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 $out/lib/
+
+ mkdir $out/bin
+ ln -s $out/renoise $out/bin/renoise
+ '';
+
+ postFixup = ''
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ --set-rpath ${mpg123}/lib:$out/lib \
+ $out/renoise
+ '';
+
+ meta = {
+ description = "Modern tracker-based DAW";
+ homepage = "https://www.renoise.com/";
+ license = licenses.unfree;
+ maintainers = [];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/rhvoice/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/rhvoice/default.nix
new file mode 100644
index 000000000000..a29fcf383b8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/rhvoice/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, pkgconfig, fetchFromGitHub, sconsPackages
+, python, glibmm, libpulseaudio, libao }:
+
+let
+ version = "unstable-2018-02-10";
+in stdenv.mkDerivation {
+ pname = "rhvoice";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "Olga-Yakovleva";
+ repo = "RHVoice";
+ rev = "7a25a881b0465e47a12d8029b56f3b71a1d02312";
+ sha256 = "1gkrlmv7msh9qlm0gkjqpl9gswghpclfdwszr1p85v8vk6m63v0b";
+ };
+
+ nativeBuildInputs = [
+ sconsPackages.scons_3_1_2 pkgconfig
+ ];
+
+ buildInputs = [
+ python glibmm libpulseaudio libao
+ ];
+
+ # SConstruct patch
+ # Scons creates an independent environment that assumes standard POSIX paths.
+ # The patch is needed to push the nix environment.
+ # - PATH
+ # - PKG_CONFIG_PATH, to find available (sound) libraries
+ # - RPATH, to link to the newly built libraries
+
+ patches = [ ./honor_nix_environment.patch ];
+
+ meta = {
+ description = "A free and open source speech synthesizer for Russian language and others";
+ homepage = "https://github.com/Olga-Yakovleva/RHVoice/wiki";
+ license = lib.licenses.gpl3;
+ maintainers = with lib.maintainers; [ berce ];
+ platforms = with lib.platforms; all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/rhvoice/honor_nix_environment.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/rhvoice/honor_nix_environment.patch
new file mode 100644
index 000000000000..ed180c92debc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/rhvoice/honor_nix_environment.patch
@@ -0,0 +1,14 @@
+diff --git a/SConstruct b/SConstruct
+index 2421399..ba39254 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -147,6 +147,9 @@ def create_base_env(vars):
+ env_args["package_name"]="RHVoice"
+ env_args["CPPDEFINES"]=[("RHVOICE","1")]
+ env=Environment(**env_args)
++ env.PrependENVPath("PATH", os.environ["PATH"])
++ env["ENV"]["PKG_CONFIG_PATH"]=os.environ["PKG_CONFIG_PATH"]
++ env["RPATH"]=env["libdir"]
+ env["package_version"]=get_version(env["release"])
+ env.Append(CPPDEFINES=("PACKAGE",env.subst(r'\"$package_name\"')))
+ env.Append(CPPDEFINES=("VERSION",env.subst(r'\"$package_version\"')))
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix
new file mode 100644
index 000000000000..79560451e540
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, pkgconfig
+, python3
+, perl
+, perlPackages
+, gtk3
+, intltool
+, libpeas
+, libsoup
+, gnome3
+, totem-pl-parser
+, tdb
+, json-glib
+, itstool
+, wrapGAppsHook
+, gst_all_1
+, gst_plugins ? with gst_all_1; [ gst-plugins-good gst-plugins-ugly ]
+}:
+let
+ pname = "rhythmbox";
+ version = "3.4.4";
+in stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+ sha256 = "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool perl perlPackages.XMLParser
+ itstool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ python3
+ libsoup
+ tdb
+ json-glib
+
+ gtk3
+ libpeas
+ totem-pl-parser
+ gnome3.adwaita-icon-theme
+
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ ] ++ gst_plugins;
+
+ enableParallelBuilding = true;
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ versionPolicy = "none";
+ };
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/Apps/Rhythmbox";
+ description = "A music playing application for GNOME";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.rasendubi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/rkrlv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/rkrlv2/default.nix
new file mode 100644
index 000000000000..59979c410838
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/rkrlv2/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub,
+automake, pkgconfig, lv2, fftw, cmake, xorg, libjack2, libsamplerate, libsndfile
+}:
+
+stdenv.mkDerivation rec {
+ repo = "rkrlv2";
+ name = "${repo}-b2.0";
+
+ src = fetchFromGitHub {
+ owner = "ssj71";
+ inherit repo;
+ rev = "beta_2";
+ sha256 = "128jcilbrd1l65c01w2bazsb21x78mng0jjkhi3x9crf1n9qbh2m";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = with xorg; [ automake lv2 fftw cmake libXpm libjack2 libsamplerate libsndfile libXft ];
+
+ meta = {
+ description = "Rakarrak effects ported to LV2";
+ homepage = "https://github.com/ssj71/rkrlv2";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.joelmo ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix
new file mode 100644
index 000000000000..8f9819bd913b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix
@@ -0,0 +1,26 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "rofi-mpd";
+ version = "2.2.1";
+
+ src = fetchFromGitHub {
+ owner = "JakeStanger";
+ repo = "Rofi_MPD";
+ rev = "v${version}";
+ sha256 = "0jabyn6gqh8ychn2a06xws3avz0lqdnx3qvqkavfd2xr6sp2q7lg";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ mutagen mpd2 toml appdirs ];
+
+ # upstream doesn't contain a test suite
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A rofi menu for interacting with MPD written in Python";
+ homepage = "https://github.com/JakeStanger/Rofi_MPD";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jakestanger ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/rosegarden/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
new file mode 100644
index 000000000000..8bda179df149
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, cmake, makedepend, perl, pkgconfig, qttools, wrapQtAppsHook
+, dssi, fftwSinglePrec, ladspaH, ladspaPlugins, libjack2, alsaLib
+, liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }:
+
+stdenv.mkDerivation (rec {
+ version = "20.06";
+ pname = "rosegarden";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/rosegarden/${pname}-${version}.tar.bz2";
+ sha256 = "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r";
+ };
+
+ patchPhase = ''
+ substituteInPlace src/CMakeLists.txt --replace svnheader svnversion
+ '';
+
+ nativeBuildInputs =
+ [ cmake makedepend perl pkgconfig qttools wrapQtAppsHook ];
+
+ buildInputs = [
+ dssi
+ fftwSinglePrec
+ ladspaH
+ ladspaPlugins
+ libjack2
+ liblo
+ libsamplerate
+ libsndfile
+ lirc
+ lrdf
+ qtbase
+ alsaLib
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.rosegardenmusic.com/";
+ description = "Music composition and editing environment";
+ longDescription = ''
+ Rosegarden is a music composition and editing environment based around
+ a MIDI sequencer that features a rich understanding of music notation
+ and includes basic support for digital audio.
+
+ Rosegarden is an easy-to-learn, attractive application that runs on Linux,
+ ideal for composers, musicians, music students, and small studio or home
+ recording environments.
+ '';
+ maintainers = with maintainers; [ lebastr ];
+ license = licenses.lgpl2Plus;
+ platforms = platforms.linux;
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/rubyripper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
new file mode 100644
index 000000000000..eb6de8431803
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, ruby, cdparanoia, makeWrapper }:
+stdenv.mkDerivation rec {
+ version = "0.6.2";
+ pname = "rubyripper";
+ src = fetchurl {
+ url = "https://rubyripper.googlecode.com/files/rubyripper-${version}.tar.bz2";
+ sha256 = "1fwyk3y0f45l2vi3a481qd7drsy82ccqdb8g2flakv58m45q0yl1";
+ };
+
+ preConfigure = "patchShebangs .";
+
+ configureFlags = [ "--enable-cli" ];
+ buildInputs = [ ruby cdparanoia makeWrapper ];
+ postInstall = ''
+ wrapProgram "$out/bin/rrip_cli" \
+ --prefix PATH : "${ruby}/bin" \
+ --prefix PATH : "${cdparanoia}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "High quality CD audio ripper";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/samplv1/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/samplv1/default.nix
new file mode 100644
index 000000000000..17b3f1c3745c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/samplv1/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, lib, fetchurl, pkgconfig, libjack2
+, alsaLib, liblo, libsndfile, lv2, qtbase, qttools
+, rubberband
+}:
+
+mkDerivation rec {
+ pname = "samplv1";
+ version = "0.9.18";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz";
+ sha256 = "ePhM9OTLJp1Wa2D9Y1Dqq/69WlEhEp3ih9yNUIJU5Y4=";
+ };
+
+ nativeBuildInputs = [ qttools pkgconfig ];
+
+ buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qtbase rubberband ];
+
+ meta = with lib; {
+ description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx";
+ homepage = "http://samplv1.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sayonara/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sayonara/default.nix
new file mode 100644
index 000000000000..722333134d90
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sayonara/default.nix
@@ -0,0 +1,64 @@
+{ mkDerivation
+, cmake
+, fetchFromGitLab
+, gst_all_1
+, lib
+, libpulseaudio
+, ninja
+, pcre
+, pkg-config
+, qtbase
+, qttools
+, taglib
+, zlib
+}:
+
+mkDerivation rec {
+ pname = "sayonara-player";
+ version = "1.6.0-beta6";
+
+ src = fetchFromGitLab {
+ owner = "luciocarreras";
+ repo = "sayonara-player";
+ rev = version;
+ sha256 = "sha256-SbJS0DQvbW++CNXbuDHQxFlLRb1kTtDdIdHOqu0YxeQ=";
+ };
+
+ nativeBuildInputs = [ cmake ninja pkg-config qttools ];
+
+ buildInputs = [
+ libpulseaudio
+ pcre
+ qtbase
+ taglib
+ zlib
+ ]
+ ++ (with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugins-ugly
+ ]);
+
+ # we carry the patched taglib 1.11.1 that doesn't break ogg but sayonara just
+ # checks for the version
+ cmakeFlags = [
+ "-DWITH_SYSTEM_TAGLIB=ON"
+ ];
+
+ # gstreamer cannot otherwise be found
+ NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0";
+
+ postInstall = ''
+ qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+ '';
+
+ meta = with lib; {
+ description = "Sayonara music player";
+ homepage = "https://sayonara-player.com/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ deepfire ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/schismtracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
new file mode 100644
index 000000000000..7f6762958a34
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub
+, autoreconfHook
+, alsaLib, python, SDL }:
+
+stdenv.mkDerivation rec {
+ pname = "schismtracker";
+ version = "20200412";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "1n6cgjiw3vkv7a1h1nki5syyjxjb6icknr9s049w2jrag10bxssn";
+ };
+
+ configureFlags = [ "--enable-dependency-tracking" ];
+
+ nativeBuildInputs = [ autoreconfHook python ];
+
+ buildInputs = [ SDL ] ++ stdenv.lib.optional stdenv.isLinux alsaLib;
+
+ meta = with stdenv.lib; {
+ description = "Music tracker application, free reimplementation of Impulse Tracker";
+ homepage = "http://schismtracker.org/";
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+ maintainers = with maintainers; [ ftrvxmtrx ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/seq24/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/seq24/default.nix
new file mode 100644
index 000000000000..c8347d70b1d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/seq24/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, alsaLib, gtkmm2, libjack2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "seq24";
+ version = "0.9.3";
+
+ src = fetchurl {
+ url = "https://launchpad.net/seq24/trunk/${version}/+download/${pname}-${version}.tar.gz";
+ sha256 = "1qpyb7355s21sgy6gibkybxpzx4ikha57a8w644lca6qy9mhcwi3";
+ };
+
+ patches = [ ./mutex_no_nameclash.patch ];
+
+ buildInputs = [ alsaLib gtkmm2 libjack2 ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with stdenv.lib; {
+ description = "Minimal loop based midi sequencer";
+ homepage = "http://www.filter24.org/seq24";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/seq24/mutex_no_nameclash.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/seq24/mutex_no_nameclash.patch
new file mode 100644
index 000000000000..dd82b1b0e09f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/seq24/mutex_no_nameclash.patch
@@ -0,0 +1,58 @@
+--- a/src/mutex.cpp
++++ b/src/mutex.cpp
+@@ -20,23 +20,23 @@
+
+ #include "mutex.h"
+
+-const pthread_mutex_t mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
++const pthread_mutex_t mutex_no_nameclash::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+ const pthread_cond_t condition_var::cond = PTHREAD_COND_INITIALIZER;
+
+-mutex::mutex( )
++mutex_no_nameclash::mutex_no_nameclash( )
+ {
+ m_mutex_lock = recmutex;
+ }
+
+ void
+-mutex::lock( )
++mutex_no_nameclash::lock( )
+ {
+ pthread_mutex_lock( &m_mutex_lock );
+ }
+
+
+ void
+-mutex::unlock( )
++mutex_no_nameclash::unlock( )
+ {
+ pthread_mutex_unlock( &m_mutex_lock );
+ }
+--- a/src/mutex.h
++++ b/src/mutex.h
+@@ -24,7 +24,7 @@
+
+ #include <pthread.h>
+
+-class mutex {
++class mutex_no_nameclash {
+
+ private:
+
+@@ -37,14 +37,14 @@
+
+ public:
+
+- mutex();
++ mutex_no_nameclash();
+
+ void lock();
+ void unlock();
+
+ };
+
+-class condition_var : public mutex {
++class condition_var : public mutex_no_nameclash {
+
+ private:
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/seq66/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/seq66/default.nix
new file mode 100644
index 000000000000..6b3a3939b43f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/seq66/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkg-config, qttools, which
+, alsaLib, libjack2, liblo, qtbase
+}:
+
+stdenv.mkDerivation rec {
+ pname = "seq66";
+ version = "0.90.5";
+
+ src = fetchFromGitHub {
+ owner = "ahlstromcj";
+ repo = pname;
+ rev = version;
+ sha256 = "1jvra1wzlycfpvffnqidk264zw6fyl4fsghkw5256ldk22aalmq9";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkg-config qttools which ];
+
+ buildInputs = [ alsaLib libjack2 liblo qtbase ];
+
+ postPatch = ''
+ for d in libseq66/include libseq66/src libsessions/include libsessions/src seq_qt5/src seq_rtmidi/include seq_rtmidi/src Seqtool/src; do
+ substituteInPlace "$d/Makefile.am" --replace '$(git_info)' '${version}'
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ahlstromcj/seq66";
+ description = "Loop based midi sequencer with Qt GUI derived from seq24 and sequencer64";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/setbfree/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/setbfree/default.nix
new file mode 100644
index 000000000000..a7500f8c6a5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/setbfree/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchzip, alsaLib, freetype, ftgl, libjack2, libX11, lv2
+, libGLU, libGL, pkgconfig, ttf_bitstream_vera
+}:
+
+stdenv.mkDerivation rec {
+ pname = "setbfree";
+ version = "0.8.11";
+
+ src = fetchzip {
+ url = "https://github.com/pantherb/setBfree/archive/v${version}.tar.gz";
+ sha256 = "0c2wc8nkrzsy0yic4y7hjz320m3d20r8152j9dk8nsnmgjmyr2ir";
+ };
+
+ postPatch = ''
+ sed 's#/usr/local#$(out)#g' -i common.mak
+ sed 's#/usr/share/fonts/truetype/ttf-bitstream-vera#${ttf_bitstream_vera}/share/fonts/truetype#g' \
+ -i b_synth/Makefile
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ alsaLib freetype ftgl libjack2 libX11 lv2 libGLU libGL
+ ttf_bitstream_vera
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A DSP tonewheel organ emulator";
+ homepage = "http://setbfree.org";
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" "i686-linux" ]; # fails on ARM and Darwin
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sfizz/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sfizz/default.nix
new file mode 100644
index 000000000000..b4ff5fc56d56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sfizz/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub , cmake, libjack2, libsndfile, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "sfizz";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "sfztools";
+ repo = pname;
+ rev = version;
+ sha256 = "0zpmvmh7n0064rxfqxb7z9rnz493k7yq7nl0vxppqnasg97jn5f3";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [ libjack2 libsndfile ];
+
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DSFIZZ_TESTS=ON"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sfztools/sfizz";
+ description = "SFZ jack client and LV2 plugin";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.all;
+ badPlatforms = platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix
new file mode 100644
index 000000000000..165f8446c763
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, qtbase
+, qtquickcontrols2
+, SDL
+, python3
+}:
+
+mkDerivation rec {
+ pname = "sfxr-qt";
+ version = "1.3.0";
+ src = fetchFromGitHub {
+ owner = "agateau";
+ repo = "sfxr-qt";
+ rev = version;
+ sha256 = "15yjgjl1c5k816mnpc09104zq0ack2a3mjsxmhcik7cmjkfiipr5";
+ fetchSubmodules = true;
+ };
+ nativeBuildInputs = [
+ cmake
+ (python3.withPackages (pp: with pp; [ pyyaml jinja2 setuptools ]))
+ ];
+ buildInputs = [
+ qtbase
+ qtquickcontrols2
+ SDL
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/agateau/sfxr-qt";
+ description = "A sound effect generator, QtQuick port of sfxr";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sfxr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sfxr/default.nix
new file mode 100644
index 000000000000..fbd0f3c5def3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sfxr/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, fetchurl
+, pkgconfig
+, desktop-file-utils
+, SDL
+, gtk3
+, gsettings-desktop-schemas
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sfxr";
+ version = "1.2.1";
+
+ src = fetchurl {
+ url = "http://www.drpetter.se/files/sfxr-sdl-${version}.tar.gz";
+ sha256 = "0dfqgid6wzzyyhc0ha94prxax59wx79hqr25r6if6by9cj4vx4ya";
+ };
+
+ postPatch = ''
+ substituteInPlace Makefile --replace "usr/" ""
+ substituteInPlace sdlkit.h --replace \
+ "/usr/share/sfxr/sfxr.bmp" \
+ "$out/share/sfxr/sfxr.bmp"
+ substituteInPlace main.cpp \
+ --replace \
+ "/usr/share/sfxr/font.tga" \
+ "$out/share/sfxr/font.tga" \
+ --replace \
+ "/usr/share/sfxr/ld48.tga" \
+ "$out/share/sfxr/ld48.tga"
+ '';
+
+ nativeBuildInputs = [
+ pkgconfig
+ desktop-file-utils
+ ];
+
+ buildInputs = [
+ SDL
+ gtk3
+ gsettings-desktop-schemas
+ wrapGAppsHook
+ ];
+
+ makeFlags = [ "DESTDIR=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.drpetter.se/project_sfxr.html";
+ description = "A videogame sound effect generator";
+ license = licenses.mit;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/shntool/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/shntool/default.nix
new file mode 100644
index 000000000000..de18f3c2ce8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/shntool/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, flac }:
+
+stdenv.mkDerivation {
+ version = "3.0.10";
+ pname = "shntool";
+
+ src = fetchurl {
+ url = "http://www.etree.org/shnutils/shntool/dist/src/shntool-3.0.10.tar.gz";
+ sha256 = "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l";
+ };
+
+ buildInputs = [ flac ];
+
+ meta = {
+ description = "Multi-purpose WAVE data processing and reporting utility";
+ homepage = "http://www.etree.org/shnutils/shntool/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.all;
+ maintainers = with stdenv.lib.maintainers; [ jcumming ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/shortwave/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/shortwave/default.nix
new file mode 100644
index 000000000000..3572bbf88abb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/shortwave/default.nix
@@ -0,0 +1,87 @@
+{ stdenv
+, fetchFromGitLab
+, cargo
+, dbus
+, desktop-file-utils
+, gdk-pixbuf
+, gettext
+, glib
+, gst_all_1
+, gtk3
+, libhandy_0
+, meson
+, ninja
+, openssl
+, pkg-config
+, python3
+, rust
+, rustc
+, rustPlatform
+, sqlite
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "shortwave";
+ version = "1.1.1";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "World";
+ repo = "Shortwave";
+ rev = version;
+ sha256 = "1vlhp2ss06j41simjrrjg38alp85jddhqyvccy6bhfzm0gzynwld";
+ };
+
+ cargoSha256 = "181699rlpr5dszc18wg0kbss3gfskxaz9lpxpgsc4yfb6ip89qnk";
+
+ nativeBuildInputs = [
+ cargo
+ desktop-file-utils
+ gettext
+ glib # for glib-compile-schemas
+ meson
+ ninja
+ pkg-config
+ python3
+ rustc
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ dbus
+ gdk-pixbuf
+ glib
+ gtk3
+ libhandy_0
+ openssl
+ sqlite
+ ] ++ (with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ ]);
+
+ # Don't use buildRustPackage phases, only use it for rust deps setup
+ configurePhase = null;
+ buildPhase = null;
+ checkPhase = null;
+ installPhase = null;
+
+ postPatch = ''
+ patchShebangs build-aux/meson/postinstall.py
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.gnome.org/World/Shortwave";
+ description = "Find and listen to internet radio stations";
+ longDescription = ''
+ Shortwave is a streaming audio player designed for the GNOME
+ desktop. It is the successor to the older Gradio application.
+ '';
+ maintainers = with maintainers; [ lasandell ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
new file mode 100644
index 000000000000..2ebf56fee521
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, lib
+, fetchurl
+, pkgconfig
+, libsidplayfp
+, alsaSupport ? stdenv.hostPlatform.isLinux
+, alsaLib
+, pulseSupport ? stdenv.hostPlatform.isLinux
+, libpulseaudio
+}:
+
+assert alsaSupport -> alsaLib != null;
+assert pulseSupport -> libpulseaudio != null;
+let
+ inherit (lib) optional;
+ inherit (lib.versions) majorMinor;
+in
+stdenv.mkDerivation rec {
+ pname = "sidplayfp";
+ version = "2.0.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/sidplay-residfp/sidplayfp/${majorMinor version}/${pname}-${version}.tar.gz";
+ sha256 = "1s2dfs9z1hwarpfzawg11wax9nh0zcqx4cafwq7iysckyg4scz4k";
+ };
+
+ nativeBuildInputs = [ pkgconfig ]
+ ++ optional alsaSupport alsaLib
+ ++ optional pulseSupport libpulseaudio;
+
+ buildInputs = [ libsidplayfp ];
+
+ meta = with lib; {
+ description = "A SID player using libsidplayfp";
+ homepage = "https://sourceforge.net/projects/sidplay-residfp/";
+ license = with licenses; [ gpl2Plus ];
+ maintainers = with maintainers; [ dezgeg ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sisco.lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sisco.lv2/default.nix
new file mode 100644
index 000000000000..07215fc42f87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sisco.lv2/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, lv2, pkgconfig, libGLU, libGL, cairo, pango, libjack2 }:
+
+let
+ name = "sisco.lv2-${version}";
+ version = "0.7.0";
+
+ robtkVersion = "80a2585253a861c81f0bfb7e4579c75f5c73af89";
+ robtkName = "robtk-${robtkVersion}";
+
+ src = fetchFromGitHub {
+ owner = "x42";
+ repo = "sisco.lv2";
+ rev = "v${version}";
+ sha256 = "1r6g29yqbdqgkh01x6d3nvmvc58rk2dp94fd0qyyizq37a1qplj1";
+ };
+
+ robtkSrc = fetchFromGitHub {
+ owner = "x42";
+ repo = "robtk";
+ rev = robtkVersion;
+ sha256 = "0gk16nrvnrffqqw0yd015kja9wkgbzvb648bl1pagriabhznhfxl";
+ };
+in
+stdenv.mkDerivation rec {
+ inherit name;
+
+ srcs = [ src robtkSrc ];
+ sourceRoot = src.name;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ lv2 pango cairo libjack2 libGLU libGL ];
+
+ postUnpack = "chmod u+w -R ${robtkName}-src; mv ${robtkName}-src/* ${sourceRoot}/robtk";
+ sisco_VERSION = version;
+ preConfigure = "makeFlagsArray=(PREFIX=$out)";
+
+ meta = with stdenv.lib; {
+ description = "Simple audio oscilloscope with variable time scale, triggering, cursors and numeric readout in LV2 plugin format";
+ homepage = "http://x42.github.io/sisco.lv2/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.e-user ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/snapcast/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/snapcast/default.nix
new file mode 100644
index 000000000000..5eff8f82e89d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/snapcast/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
+, alsaLib, asio, avahi, boost170, flac, libogg, libvorbis, soxr
+, nixosTests }:
+
+let
+
+ dependency = { name, version, sha256 }:
+ stdenv.mkDerivation {
+ name = "${name}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "badaix";
+ repo = name;
+ rev = "v${version}";
+ inherit sha256;
+ };
+
+ nativeBuildInputs = [ cmake ];
+ };
+
+ aixlog = dependency {
+ name = "aixlog";
+ version = "1.2.1";
+ sha256 = "1rh4jib5g41b85bqrxkl5g74hk5ryf187y9fw0am76g59xlymfpr";
+ };
+
+ popl = dependency {
+ name = "popl";
+ version = "1.2.0";
+ sha256 = "1z6z7fwffs3d9h56mc2m24d5gp4fc5bi8836zyfb276s6fjyfcai";
+ };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "snapcast";
+ version = "0.20.0";
+
+ src = fetchFromGitHub {
+ owner = "badaix";
+ repo = "snapcast";
+ rev = "v${version}";
+ sha256 = "152ic8hlyawcmj9pykb33xc6yx7il6yb9ilmsy6m9nlh40m8yxls";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig boost170.dev ];
+ # snapcast also supports building against tremor but as we have libogg, that's
+ # not needed
+ buildInputs = [
+ alsaLib asio avahi flac libogg libvorbis
+ aixlog popl soxr
+ ];
+
+ # Upstream systemd unit files are pretty awful, so we provide our own in a
+ # NixOS module. It might make sense to get that upstreamed...
+ postInstall = ''
+ install -d $out/share/doc/snapcast
+ cp -r ../doc/* ../*.md $out/share/doc/snapcast
+ '';
+
+ passthru.tests.snapcast = nixosTests.snapcast;
+
+ meta = with lib; {
+ description = "Synchronous multi-room audio player";
+ homepage = "https://github.com/badaix/snapcast";
+ maintainers = with maintainers; [ fpletz ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/snd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/snd/default.nix
new file mode 100644
index 000000000000..76ea4efeace8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/snd/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig
+, gtk2, alsaLib
+, fftw, gsl
+}:
+
+stdenv.mkDerivation rec {
+ name = "snd-20.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/snd/${name}.tar.gz";
+ sha256 = "016slh34gb6qqb38m8k9yg48rbhc5p12084szcwvanhh5v7fc7mk";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [
+ gtk2 alsaLib
+ fftw gsl
+ ];
+
+ meta = {
+ description = "Sound editor";
+ homepage = "http://ccrma.stanford.edu/software/snd";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.free;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ };
+
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sndpeek/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sndpeek/default.nix
new file mode 100644
index 000000000000..d239fda11aee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sndpeek/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, libsndfile, freeglut, alsaLib, mesa, libGLU, libX11, libXmu
+, libXext, libXi }:
+
+stdenv.mkDerivation rec {
+ pname = "sndpeek";
+ version = "1.4";
+
+ src = fetchurl {
+ url = "https://soundlab.cs.princeton.edu/software/sndpeek/files/sndpeek-${version}.tgz";
+ sha256 = "2d86cf74854fa00dcdc05a35dd92bc4cf6115e87102b17023be5cba9ead8eedf";
+ };
+ sourceRoot = "sndpeek-${version}/src/sndpeek";
+
+ # this patch adds -lpthread to the list of libraries, without it a
+ # symbol-not-found-error is thrown
+ patches = [ ./pthread.patch ];
+
+ buildInputs = [
+ freeglut
+ alsaLib
+ mesa
+ libGLU
+ libsndfile
+ libX11
+ libXmu
+ libXext
+ libXi
+ ];
+ buildFlags = [ "linux-alsa" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv sndpeek $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Real-time 3D animated audio display/playback";
+ longDescription = ''
+ sndpeek is just what it sounds (and looks) like:
+ * real-time 3D animated display/playback
+ * can use mic-input or wav/aiff/snd/raw/mat file (with playback)
+ * time-domain waveform
+ * FFT magnitude spectrum
+ * 3D waterfall plot
+ * lissajous! (interchannel correlation)
+ * rotatable and scalable display
+ * freeze frame! (for didactic purposes)
+ * real-time spectral feature extraction (centroid, rms, flux, rolloff)
+ * available on MacOS X, Linux, and Windows under GPL
+ * part of the sndtools distribution.
+ '';
+ homepage = "https://soundlab.cs.princeton.edu/software/sndpeek/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.laikq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sndpeek/pthread.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/sndpeek/pthread.patch
new file mode 100644
index 000000000000..b2f1d37da6be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sndpeek/pthread.patch
@@ -0,0 +1,13 @@
+diff --git a/makefile.alsa b/makefile.alsa
+index 34fb848..cdaeaec 100644
+--- a/makefile.alsa
++++ b/makefile.alsa
+@@ -4,7 +4,7 @@ CPP=g++
+ INCLUDES=-I../marsyas/
+ MARSYAS_DIR=../marsyas/
+ CFLAGS=-D__LINUX_ALSA__ -D__LITTLE_ENDIAN__ $(INCLUDES) -O3 -c
+-LIBS=-L/usr/X11R6/lib -lglut -lGL -lGLU -lasound -lXmu -lX11 -lXext -lXi -lm -lsndfile
++LIBS=-L/usr/X11R6/lib -lglut -lGL -lGLU -lasound -lXmu -lX11 -lXext -lXi -lm -lsndfile -lpthread
+
+ OBJS=chuck_fft.o RtAudio.o Thread.o sndpeek.o Stk.o \
+ Centroid.o DownSampler.o Flux.o LPC.o MFCC.o RMS.o Rolloff.o \
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sonata/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sonata/default.nix
new file mode 100644
index 000000000000..cf3f173a096e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sonata/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchFromGitHub, wrapGAppsHook, gettext
+, python3Packages, gnome3, gtk3, glib, gdk-pixbuf, gsettings-desktop-schemas, gobject-introspection }:
+
+let
+ inherit (python3Packages) buildPythonApplication isPy3k dbus-python pygobject3 mpd2 setuptools;
+in buildPythonApplication rec {
+ pname = "sonata";
+ version = "1.7b1";
+
+ src = fetchFromGitHub {
+ owner = "multani";
+ repo = "sonata";
+ rev = "v${version}";
+ sha256 = "1npbxlrg6k154qybfd250nq2p96kxdsdkj9wwnp93gljnii3g8wh";
+ };
+
+ disabled = !isPy3k;
+
+ nativeBuildInputs = [
+ gettext
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gnome3.adwaita-icon-theme
+ gsettings-desktop-schemas
+ gtk3
+ gdk-pixbuf
+ ];
+
+ # The optional tagpy dependency (for editing metadata) is not yet
+ # included because it's difficult to build.
+ pythonPath = [
+ dbus-python
+ mpd2
+ pygobject3
+ setuptools
+ ];
+
+ # Otherwise the setup hook for gobject-introspection is not run:
+ # https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ postPatch = ''
+ # Remove "Local MPD" tab which is not suitable for NixOS.
+ sed -i '/localmpd/d' sonata/consts.py
+ '';
+
+ meta = {
+ description = "An elegant client for the Music Player Daemon";
+ longDescription = ''
+ Sonata is an elegant client for the Music Player Daemon.
+
+ Written in Python and using the GTK 3 widget set, its features
+ include:
+
+ - Expanded and collapsed views
+ - Automatic remote and local album art
+ - Library browsing by folders, or by genre/artist/album
+ - User-configurable columns
+ - Automatic fetching of lyrics
+ - Playlist and stream support
+ - Support for editing song tags (not in NixOS version)
+ - Drag and drop to copy files
+ - Popup notification
+ - Library and playlist searching, filter as you type
+ - Audioscrobbler (last.fm) 1.2 support
+ - Multiple MPD profiles
+ - Keyboard friendly
+ - Support for multimedia keys
+ - Commandline control
+ - Available in 24 languages
+ '';
+ homepage = "https://www.nongnu.org/sonata/";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.rvl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
new file mode 100644
index 000000000000..526dd245691b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, alsaLib, boost, bzip2, fftw, fftwFloat, libfishsound
+, libid3tag, liblo, libmad, liboggz, libpulseaudio, libsamplerate
+, libsndfile, lrdf, opusfile, portaudio, rubberband, serd, sord, capnproto
+, wrapQtAppsHook, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sonic-lineup";
+ version = "1.1";
+
+ src = fetchurl {
+ url = "https://code.soundsoftware.ac.uk/attachments/download/2765/${pname}-${version}.tar.gz";
+ sha256 = "0k45k9fawcm4s5yy05x00pgww7j8m7k2cxcc7g0fn9vqy7vcbq9h";
+ };
+
+ buildInputs =
+ [ alsaLib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo
+ libmad liboggz libpulseaudio libsamplerate libsndfile lrdf opusfile
+ portaudio rubberband serd sord capnproto
+ ];
+
+ nativeBuildInputs = [ pkgconfig wrapQtAppsHook ];
+
+ enableParallelBuilding = true;
+
+ # comment out the tests
+ preConfigure = ''
+ sed -i 's/sub_test_svcore_/#sub_test_svcore_/' sonic-lineup.pro
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Comparative visualisation of related audio recordings";
+ homepage = "https://www.sonicvisualiser.org/sonic-lineup/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.vandenoever ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix
new file mode 100644
index 000000000000..d80632a08f59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix
@@ -0,0 +1,116 @@
+{ mkDerivation
+, lib
+, qtbase
+, fetchFromGitHub
+, fftwSinglePrec
+, ruby
+, aubio
+, cmake
+, pkgconfig
+, boost
+, bash
+, jack2Full
+, supercollider
+, qwt
+, osmid
+}:
+
+let
+
+ supercollider_single_prec = supercollider.override { fftw = fftwSinglePrec; };
+
+in
+
+mkDerivation rec {
+ version = "3.2.2";
+ pname = "sonic-pi";
+
+ src = fetchFromGitHub {
+ owner = "samaaron";
+ repo = "sonic-pi";
+ rev = "v${version}";
+ sha256 = "1nlkpkpg9iz2hvf5pymvk6lqhpdpjbdrvr0hrnkc3ymj7llvf1cm";
+ };
+
+ buildInputs = [
+ bash
+ cmake
+ pkgconfig
+ qtbase
+ qwt
+ ruby
+ aubio
+ supercollider_single_prec
+ boost
+ ];
+
+ dontUseCmakeConfigure = true;
+
+ preConfigure = ''
+ patchShebangs .
+ substituteInPlace app/gui/qt/mainwindow.cpp \
+ --subst-var-by ruby "${ruby}/bin/ruby" \
+ --subst-var out
+ '';
+
+ buildPhase = ''
+ export SONIC_PI_HOME=$TMPDIR
+ export AUBIO_LIB=${aubio}/lib/libaubio.so
+ export OSMID_DIR=app/server/native/osmid
+
+ mkdir -p $OSMID_DIR
+ cp ${osmid}/bin/{m2o,o2m} $OSMID_DIR
+
+ pushd app/server/ruby/bin
+ ./compile-extensions.rb
+ ./i18n-tool.rb -t
+ popd
+
+ pushd app/gui/qt
+ cp -f utils/ruby_help.tmpl utils/ruby_help.h
+ ../../server/ruby/bin/qt-doc.rb -o utils/ruby_help.h
+
+ lrelease lang/*.ts
+
+ mkdir build
+ pushd build
+ cmake -G "Unix Makefiles" ..
+ make
+ popd
+ popd
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir $out
+ cp -r {bin,etc} $out/
+
+ # Copy server whole.
+ mkdir -p $out/app
+ cp -r app/server $out/app/
+
+ # Copy only necessary files for the gui app.
+ mkdir -p $out/app/gui/qt/build
+ cp -r app/gui/qt/{book,fonts,help,html,images,image_source,info,lang,theme} $out/app/gui/qt/
+ cp app/gui/qt/build/sonic-pi $out/app/gui/qt/build/sonic-pi
+
+ runHook postInstall
+ '';
+
+ # $out/bin/sonic-pi is a shell script, and wrapQtAppsHook doesn't wrap them.
+ dontWrapQtApps = true;
+ preFixup = ''
+ wrapQtApp "$out/bin/sonic-pi" \
+ --prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2Full}/bin \
+ --set AUBIO_LIB "${aubio}/lib/libaubio.so"
+ '';
+
+ meta = {
+ homepage = "https://sonic-pi.net/";
+ description = "Free live coding synth for everyone originally designed to support computing and music lessons within schools";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ Phlogistique kamilchm c0deaddict ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
new file mode 100644
index 000000000000..2593bf38d194
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -0,0 +1,54 @@
+# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
+
+{ stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo
+, libmad, lrdf, librdf_raptor, librdf_rasqal, libsamplerate
+, libsndfile, pkg-config, libpulseaudio, qtbase, qtsvg, redland
+, rubberband, serd, sord, vamp-plugin-sdk, fftwFloat
+, capnproto, liboggz, libfishsound, libid3tag, opusfile
+, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sonic-visualiser";
+ version = "4.2";
+
+ src = fetchurl {
+ url = "https://code.soundsoftware.ac.uk/attachments/download/2755/${pname}-${version}.tar.gz";
+ sha256 = "1wsvranhvdl21ksbinbgb55qvs3g2d4i57ssj1vx2aln6m01ms9q";
+ };
+
+ nativeBuildInputs = [ pkg-config wrapQtAppsHook ];
+ buildInputs =
+ [ libsndfile qtbase qtsvg fftw fftwFloat bzip2 lrdf rubberband
+ libsamplerate vamp-plugin-sdk alsaLib librdf_raptor librdf_rasqal redland
+ serd
+ sord
+ # optional
+ libjack2
+ # portaudio
+ libpulseaudio
+ libmad
+ libfishsound
+ liblo
+ libX11
+ capnproto
+ liboggz
+ libid3tag
+ opusfile
+ ];
+
+ # comment out the tests
+ preConfigure = ''
+ sed -i 's/sub_test_svcore_/#sub_test_svcore_/' sonic-visualiser.pro
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "View and analyse contents of music audio files";
+ homepage = "https://www.sonicvisualiser.org/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.goibhniu maintainers.marcweber ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
new file mode 100644
index 000000000000..f1c76bf0d33c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, which
+, libtool
+, liblo
+, libxml2
+, libjack2
+, libsndfile
+, wxGTK30
+, libsigcxx
+, libsamplerate
+, rubberband
+, gettext
+, ncurses
+, alsaLib
+, fftw
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sooperlooper";
+ version = "1.7.4";
+
+ src = fetchFromGitHub {
+ owner = "essej";
+ repo = "sooperlooper";
+ rev = "v${builtins.replaceStrings [ "." ] [ "_" ] version}";
+ sha256 = "1jng9bkb7iikad0dy1fkiq9wjjdhh1xi1p0cp2lvnz1dsc4yk6iw";
+ };
+
+ autoreconfPhase = ''
+ patchShebangs ./autogen.sh
+ ./autogen.sh
+ '';
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig which libtool ];
+
+ buildInputs = [
+ liblo
+ libxml2
+ libjack2
+ libsndfile
+ wxGTK30
+ libsigcxx
+ libsamplerate
+ rubberband
+ gettext
+ ncurses
+ alsaLib
+ fftw
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more";
+ longDescription = ''
+ It allows for multiple simultaneous multi-channel loops limited only by your computer's available memory.
+ The application is a standalone JACK client with an engine controllable via OSC and MIDI.
+ It also includes a GUI which communicates with the engine via OSC (even over a network) for user-friendly control on a desktop.
+ However, this kind of live performance looping tool is most effectively used via hardware (midi footpedals, etc)
+ and the engine can be run standalone on a computer without a monitor.
+ '';
+ homepage = "http://essej.net/sooperlooper/"; # https is broken
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sorcer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sorcer/default.nix
new file mode 100644
index 000000000000..ad5f8fda1a99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sorcer/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub , boost, cairomm, cmake, libsndfile, lv2, ntk, pkgconfig, python }:
+
+stdenv.mkDerivation rec {
+ pname = "sorcer";
+ version = "1.1.3";
+
+ src = fetchFromGitHub {
+ owner = "openAVproductions";
+ repo = "openAV-Sorcer";
+ rev = "release-${version}";
+ sha256 = "1x7pi77nal10717l02qpnhrx6d7w5nqrljkn9zx5w7gpb8fpb3vp";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ boost cairomm cmake libsndfile lv2 ntk python ];
+
+ postPatch = ''
+ # Fix build with lv2 1.18: https://github.com/brummer10/guitarix/commit/c0334c72
+ find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
+ -exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
+ '';
+
+ installPhase = ''
+ make install
+ cp -a ../presets/* "$out/lib/lv2"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://openavproductions.com/sorcer/";
+ description = "A wavetable LV2 plugin synth, targeted at the electronic / dubstep genre";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
new file mode 100644
index 000000000000..89653a59f437
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig, glib, gtk3, intltool, itstool, libxml2, brasero
+, libcanberra-gtk3, gnome3, gst_all_1, libmusicbrainz5, libdiscid, isocodes
+, gsettings-desktop-schemas, wrapGAppsHook }:
+
+let
+ pname = "sound-juicer";
+ version = "3.24.0";
+in stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+ sha256 = "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool itstool libxml2 wrapGAppsHook ];
+ buildInputs = [
+ glib gtk3 brasero libcanberra-gtk3 gnome3.adwaita-icon-theme
+ gsettings-desktop-schemas libmusicbrainz5 libdiscid isocodes
+ gst_all_1.gstreamer gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
+ gst_all_1.gst-libav
+ ];
+
+ NIX_CFLAGS_COMPILE="-Wno-error=format-nonliteral";
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "A Gnome CD Ripper";
+ homepage = "https://wiki.gnome.org/Apps/SoundJuicer";
+ maintainers = [ maintainers.bdimcheff ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
new file mode 100644
index 000000000000..992dd728e765
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
@@ -0,0 +1,106 @@
+# currently needs to be installed into an environment and needs a `kbuildsycoca5` run afterwards for plugin discovery
+{
+ mkDerivation, fetchFromGitHub, fetchpatch, lib, makeWrapper,
+ cmake, extra-cmake-modules, pkgconfig,
+ libkcddb, kconfig, kconfigwidgets, ki18n, kdelibs4support, kio, solid, kwidgetsaddons, kxmlgui,
+ qtbase, phonon,
+ taglib,
+ # optional backends
+ withCD ? true, cdparanoia,
+ withFlac ? true, flac,
+ withMidi ? true, fluidsynth, timidity,
+ withSpeex ? false, speex,
+ withVorbis ? true, vorbis-tools, vorbisgain,
+ withMp3 ? true, lame, mp3gain,
+ withAac ? true, faad2, aacgain,
+ withUnfreeAac ? false, faac,
+ withFfmpeg ? true, ffmpeg-full,
+ withMplayer ? false, mplayer,
+ withSox ? true, sox,
+ withOpus ? true, opusTools,
+ withTwolame ? false, twolame,
+ withApe ? false, mac,
+ withWavpack ? false, wavpack
+}:
+
+assert withAac -> withFfmpeg || withUnfreeAac;
+assert withUnfreeAac -> withAac;
+
+let runtimeDeps = []
+ ++ lib.optional withCD cdparanoia
+ ++ lib.optional withFlac flac
+ ++ lib.optional withSpeex speex
+ ++ lib.optional withFfmpeg ffmpeg-full
+ ++ lib.optional withMplayer mplayer
+ ++ lib.optional withSox sox
+ ++ lib.optional withOpus opusTools
+ ++ lib.optional withTwolame twolame
+ ++ lib.optional withApe mac
+ ++ lib.optional withWavpack wavpack
+ ++ lib.optional withUnfreeAac faac
+ ++ lib.optionals withMidi [ fluidsynth timidity ]
+ ++ lib.optionals withVorbis [ vorbis-tools vorbisgain ]
+ ++ lib.optionals withMp3 [ lame mp3gain ]
+ ++ lib.optionals withAac [ faad2 aacgain ];
+
+in
+mkDerivation rec {
+ name = "soundkonverter";
+ version = "3.0.1";
+ src = fetchFromGitHub {
+ owner = "dfaust";
+ repo = "soundkonverter";
+ rev = "v" + version;
+ sha256 = "1g2khdsjmsi4zzynkq8chd11cbdhjzmi37r9jhpal0b730nq9x7l";
+ };
+ patches = [
+ # already merged into master, so it can go during the next release
+ (fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/dfaust/soundkonverter/pull/87.patch";
+ sha256 = "sha256-XIpD4ZMTZVcu+F27OtpRy51H+uQgpd5l22IZ6XsD64w=";
+ name = "soundkonverter_taglib.patch";
+ stripLen = 1;
+ })
+ ];
+ enableParallelBuilding = true;
+ nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig kdelibs4support makeWrapper ];
+ propagatedBuildInputs = [ libkcddb kconfig kconfigwidgets ki18n kdelibs4support kio solid kwidgetsaddons kxmlgui qtbase phonon];
+ buildInputs = [ taglib ] ++ runtimeDeps;
+ # encoder plugins go to ${out}/lib so they're found by kbuildsycoca5
+ cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX=$out" ];
+ sourceRoot = "source/src";
+ # add runt-time deps to PATH
+ postInstall = ''
+ wrapProgram $out/bin/soundkonverter --prefix PATH : ${lib.makeBinPath runtimeDeps }
+ '';
+ meta = {
+ license = lib.licenses.gpl2;
+ maintainers = [ lib.maintainers.schmittlauch ];
+ description = "Audio file converter, CD ripper and Replay Gain tool";
+ longDescription = ''
+ soundKonverter is a frontend to various audio converters.
+
+ The key features are:
+ - Audio file conversion
+ - Replay Gain calculation
+ - CD ripping
+
+ soundKonverter supports reading and writing tags and covers for many formats, so they are preserved when converting files.
+
+ It is extendable by plugins and supports many backends including:
+
+ - Audio file conversion
+ Backends: faac, faad, ffmpeg, flac, lame, mplayer, neroaac, timidity, fluidsynth, vorbistools, opustools, sox, twolame,
+ flake, mac, shorten, wavpack and speex
+ Formats: ogg vorbis, mp3, flac, wma, aac, ac3, opus, alac, mp2, als, amr nb, amr wb, ape, speex, m4a, mp1, musepack shorten,
+ tta, wavpack, ra, midi, mod, 3gp, rm, avi, mkv, ogv, mpeg, mov, mp4, flv, wmv and rv
+
+ - Replay Gain calculation
+ Backends: aacgain, metaflac, mp3gain, vorbisgain, wvgain, mpcgain
+ Formats: aac, mp3, flac, ogg vorbis, wavpack, musepack
+
+ - CD ripping
+ Backends: cdparanoia
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/soundscape-renderer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/soundscape-renderer/default.nix
new file mode 100644
index 000000000000..741211bd90d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/soundscape-renderer/default.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, fetchgit
+, autoreconfHook
+, help2man
+, pkgconfig
+, libsndfile
+, fftwFloat
+, libjack2
+, libxml2
+, qt4
+, boost
+, ecasound
+, glibcLocales
+, libGLU, libGL # Needed because help2man basically does a ./ssr-binaural --help and ssr-binaural needs libGL
+}:
+
+stdenv.mkDerivation {
+ pname = "soundscape-renderer-unstable";
+
+ version = "2016-11-03";
+
+ src = fetchgit {
+ url = "https://github.com/SoundScapeRenderer/ssr";
+ rev = "0dd0136dd24e47b63d8a4e05de467f5c7b047ec9";
+ sha256 = "095x2spv9bmg6pi71mpajnghbqj58ziflg16f9854awx0qp9d8x7";
+ };
+
+ # Without it doesn't find all of the boost libraries.
+ BOOST_LIB_DIR="${boost}/lib";
+ # uses the deprecated get_generic_category() in boost_system
+ NIX_CFLAGS_COMPILE="-DBOOST_SYSTEM_ENABLE_DEPRECATED=1";
+
+ LC_ALL = "en_US.UTF-8";
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ boost boost.dev ecasound libGLU libGL help2man libsndfile fftwFloat libjack2 libxml2 qt4 glibcLocales ];
+
+ # 1) Fix detecting version. https://github.com/SoundScapeRenderer/ssr/pull/53
+ # 2) Make it find ecasound headers
+ # 3) Fix locale for help2man
+ prePatch = ''
+ substituteInPlace configure.ac --replace 'git describe ||' 'git describe 2> /dev/null ||';
+ substituteInPlace configure.ac --replace '/{usr,opt}/{,local/}' '${ecasound}/'
+ substituteInPlace man/Makefile.am --replace '--locale=en' '--locale=en_US.UTF-8'
+ '';
+
+ meta = {
+ homepage = "http://spatialaudio.net/ssr/";
+ description = "The SoundScape Renderer (SSR) is a tool for real-time spatial audio reproduction";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.fridh ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/soundtracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/soundtracker/default.nix
new file mode 100644
index 000000000000..1fd341765b09
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/soundtracker/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, fetchurl
+, pkg-config
+, autoconf
+, gtk2
+, alsaLib
+, SDL
+, jack2
+, audiofile
+, goocanvas # graphical envelope editing
+}:
+
+stdenv.mkDerivation rec {
+ pname = "soundtracker";
+ version = "1.0.1";
+
+ src = fetchurl {
+ # Past releases get moved to the "old releases" directory.
+ # Only the latest release is at the top level.
+ # Nonetheless, only the name of the file seems to affect which file is
+ # downloaded, so this path should be fine both for old and current releases.
+ url = "mirror://sourceforge/soundtracker/soundtracker-${version}.tar.bz2";
+ sha256 = "0m5iiqccch6w53khpvdldz59zymw13vmwqc5ggx3sn41riwbd6ks";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ autoconf
+ ];
+ buildInputs = [
+ gtk2
+ SDL
+ jack2
+ audiofile
+ goocanvas
+ ] ++ stdenv.lib.optional stdenv.isLinux alsaLib;
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "A music tracking tool similar in design to the DOS program FastTracker and the Amiga legend ProTracker";
+ longDescription = ''
+ SoundTracker is a pattern-oriented music editor (similar to the DOS
+ program 'FastTracker'). Samples are lined up on tracks and patterns
+ which are then arranged to a song. Supported module formats are XM and
+ MOD; the player code is the one from OpenCP. A basic sample recorder
+ and editor is also included.
+ '';
+ homepage = "http://www.soundtracker.org/";
+ downloadPage = "https://sourceforge.net/projects/soundtracker/files/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ # gdk/gdkx.h not found
+ broken = stdenv.isDarwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spectmorph/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/spectmorph/default.nix
new file mode 100644
index 000000000000..ece6689a9d07
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spectmorph/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, libjack2, lv2, glib, qt5, libao, cairo, libsndfile, fftwFloat }:
+
+stdenv.mkDerivation rec {
+ pname = "spectmorph";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "http://spectmorph.org/files/releases/${pname}-${version}.tar.bz2";
+ sha256 = "0yrq7mknhk096wfsx0q3b6wwa2w5la0rxa113di26rrrw136xl1f";
+ };
+
+ buildInputs = [ libjack2 lv2 glib qt5.qtbase libao cairo libsndfile fftwFloat ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with stdenv.lib; {
+ description = "Allows to analyze samples of musical instruments, and to combine them (morphing) to construct hybrid sounds";
+ homepage = "http://spectmorph.org";
+ license = licenses.gpl3;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = [ maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spectrojack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/spectrojack/default.nix
new file mode 100644
index 000000000000..35534750d0c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spectrojack/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, libjack2, fftwFloat, gtk2 }:
+
+stdenv.mkDerivation rec {
+ pname = "spectrojack";
+ version = "0.4.1";
+
+ src = fetchurl {
+ url = "http://sed.free.fr/spectrojack/${pname}-${version}.tar.gz";
+ sha256 = "1kiwx0kag7kq7rhg0bvckfm8r7pqmbk76ppa39cq2980jb5v8rfp";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libjack2 fftwFloat gtk2 ];
+ configurePhase= ''
+ sed -i 's/.*home.*/#&/' ./Makefile
+ substituteInPlace ./Makefile \
+ --replace "/usr/share" "$out/usr/share"
+ '';
+ installPhase= ''
+ install -Dm755 spectrojack $out/bin/spectrojack
+ install -Dm644 spectrojack_icon.svg $out/usr/share/spectrojack/icon.svg
+ install -Dm644 -t $out/usr/share/spectrojack/colormaps colormaps/*
+ '';
+
+ meta = {
+ description = "A little spectrogram/audiogram/sonogram/whatever for JACK";
+ homepage = "http://sed.free.fr/spectrojack";
+ license = stdenv.lib.licenses.publicDomain;
+ maintainers = with stdenv.lib.maintainers; [ sleexyz ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/speech-denoiser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/speech-denoiser/default.nix
new file mode 100644
index 000000000000..9c18665d3993
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/speech-denoiser/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, lv2, meson, ninja }:
+
+let
+ speech-denoiser-src = fetchFromGitHub {
+ owner = "lucianodato";
+ repo = "speech-denoiser";
+ rev = "04cfba929630404f8d4f4ca5bac8d9b09a99152f";
+ sha256 = "189l6lz8sz5vr6bjyzgcsrvksl1w6crqsg0q65r94b5yjsmjnpr4";
+ };
+
+ rnnoise-nu = stdenv.mkDerivation {
+ pname = "rnnoise-nu";
+ version = "unstable-07-10-2019";
+ src = speech-denoiser-src;
+ sourceRoot = "source/rnnoise";
+ nativeBuildInputs = [ autoreconfHook ];
+ configureFlags = [ "--disable-examples" "--disable-doc" "--disable-shared" "--enable-static" ];
+ installTargets = [ "install-rnnoise-nu" ];
+ };
+in
+stdenv.mkDerivation {
+ pname = "speech-denoiser";
+ version = "unstable-07-10-2019";
+
+ src = speech-denoiser-src;
+
+ nativeBuildInputs = [ pkgconfig meson ninja ];
+ buildInputs = [ lv2 rnnoise-nu ];
+
+ mesonFlags = ("--prefix=${placeholder "out"}/lib/lv2");
+
+ postPatch = ''
+ substituteInPlace meson.build \
+ --replace "cc.find_library('rnnoise-nu',dirs: meson.current_source_dir() + '/rnnoise/.libs/',required : true)" "cc.find_library('rnnoise-nu', required : true)"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Speech denoise lv2 plugin based on RNNoise library";
+ homepage = "https://github.com/lucianodato/speech-denoiser";
+ license = licenses.lgpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spek/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/spek/default.nix
new file mode 100644
index 000000000000..d6918b192315
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spek/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, intltool, pkgconfig, ffmpeg, wxGTK30-gtk3, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "spek";
+ version = "unstable-2018-12-29";
+
+ src = fetchFromGitHub {
+ owner = "alexkay";
+ repo = "spek";
+ rev = "f071c2956176ad53c7c8059e5c00e694ded31ded";
+ sha256 = "1l9gj9c1n92zlcjnyjyk211h83dk0idk644xnm5rs7q40p2zliy5";
+ };
+
+ # needed for autoreconfHook
+ AUTOPOINT="intltoolize --automake --copy";
+
+ nativeBuildInputs = [ autoreconfHook intltool pkgconfig wrapGAppsHook ];
+
+ buildInputs = [ ffmpeg wxGTK30-gtk3 wxGTK30-gtk3.gtk ];
+
+ meta = with stdenv.lib; {
+ description = "Analyse your audio files by showing their spectrogram";
+ homepage = "http://spek.cc/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ bjornfor ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/split2flac/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/split2flac/default.nix
new file mode 100644
index 000000000000..efad434e3079
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/split2flac/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, shntool, cuetools
+, flac, faac, mp4v2, wavpack, mac
+, imagemagick, libiconv, enca, lame, pythonPackages, vorbis-tools
+, aacgain, mp3gain, vorbisgain
+}:
+
+let
+ wrapSplit2flac = format: ''
+ makeWrapper $out/bin/.split2flac-wrapped $out/bin/split2${format} \
+ --set SPLIT2FLAC_FORMAT ${format} \
+ --prefix PATH : ${stdenv.lib.makeBinPath [
+ shntool cuetools
+ flac faac mp4v2 wavpack mac
+ imagemagick libiconv enca lame pythonPackages.mutagen vorbis-tools
+ aacgain mp3gain vorbisgain
+ ]}
+ '';
+
+in stdenv.mkDerivation rec {
+ pname = "split2flac";
+ version = "122";
+
+ src = fetchFromGitHub {
+ owner = "ftrvxmtrx";
+ repo = "split2flac";
+ rev = version;
+ sha256 = "1a71amamip25hhqx7wwzfcl3d5snry9xsiha0kw73iq2m83r2k63";
+ };
+
+ dontBuild = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ patchPhase = ''
+ substituteInPlace split2flac \
+ --replace 'FORMAT="''${0##*split2}"' 'FORMAT=''${SPLIT2FLAC_FORMAT:-flac}'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/bash-completion/completions
+ cp split2flac-bash-completion.sh \
+ $out/share/bash-completion/completions/split2flac-bash-completion.sh
+
+ mkdir -p $out/bin
+ cp split2flac $out/bin/.split2flac-wrapped
+
+ ${wrapSplit2flac "flac"}
+ ${wrapSplit2flac "mp3"}
+ ${wrapSplit2flac "ogg"}
+ ${wrapSplit2flac "m4a"}
+ ${wrapSplit2flac "wav"}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Split flac/ape/wv/wav + cue sheet into separate tracks";
+ homepage = "https://github.com/ftrvxmtrx/split2flac";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix
new file mode 100644
index 000000000000..da41fb6b64ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, python3Packages, dbus }:
+python3Packages.buildPythonApplication rec {
+ pname = "spotify-cli-linux";
+ version = "1.6.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "0slyc3jfrj3rwq8rv6p5aqkw487aw7a87kmf1fb6n4vnvcf08v7w";
+ };
+
+ preBuild = ''
+ substituteInPlace spotifycli/spotifycli.py \
+ --replace dbus-send ${dbus}/bin/dbus-send
+ '';
+
+ disabled = !python3Packages.isPy3k;
+ propagatedBuildInputs = with python3Packages; [ lyricwikia dbus-python ];
+
+ # upstream has no code tests, but uses its "tests" for linting and formatting checks
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://pwittchen.github.io/spotify-cli-linux/";
+ maintainers = [ maintainers.kmein ];
+ description = "A command line interface to Spotify on Linux.";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
new file mode 100644
index 000000000000..a2001996c988
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, python3, libxcb, AppKit, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "spotify-tui";
+ version = "0.22.0";
+
+ src = fetchFromGitHub {
+ owner = "Rigellute";
+ repo = "spotify-tui";
+ rev = "v${version}";
+ sha256 = "0w1y37qh9n3936d59hvqzjz2878x2nwxqxc4s7mp4f9xqcfl0c5r";
+ };
+
+ cargoSha256 = "1ri054p08si95x1gh2bkh4fk50ja79c5izzjnkvs0yhfj1wzbghi";
+
+ nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkgconfig python3 ];
+ buildInputs = [ ]
+ ++ stdenv.lib.optionals stdenv.isLinux [ openssl libxcb ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ AppKit Security ];
+
+ meta = with stdenv.lib; {
+ description = "Spotify for the terminal written in Rust";
+ homepage = "https://github.com/Rigellute/spotify-tui";
+ changelog = "https://github.com/Rigellute/spotify-tui/releases/tag/v${version}";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jwijenbergh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/default.nix
new file mode 100644
index 000000000000..ff44f14476f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/default.nix
@@ -0,0 +1,168 @@
+{ fetchurl, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
+, glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify
+, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
+, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa
+}:
+
+let
+ # TO UPDATE: just execute the ./update.sh script (won't do anything if there is no update)
+ # "rev" decides what is actually being downloaded
+ # If an update breaks things, one of those might have valuable info:
+ # https://aur.archlinux.org/packages/spotify/
+ # https://community.spotify.com/t5/Desktop-Linux
+ version = "1.1.46.916.g416cacf1";
+ # To get the latest stable revision:
+ # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
+ # To get general information:
+ # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
+ # More examples of api usage:
+ # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
+ rev = "43";
+
+ deps = [
+ alsaLib
+ atk
+ at-spi2-atk
+ at-spi2-core
+ cairo
+ cups
+ curl
+ dbus
+ expat
+ ffmpeg_3
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gtk2
+ libdrm
+ libgcrypt
+ libnotify
+ libpng
+ libpulseaudio
+ mesa
+ nss
+ pango
+ stdenv.cc.cc
+ systemd
+ xorg.libX11
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXScrnSaver
+ xorg.libXtst
+ xorg.libxcb
+ xorg.libSM
+ xorg.libICE
+ zlib
+ ];
+
+in
+
+stdenv.mkDerivation {
+ pname = "spotify-unwrapped";
+ inherit version;
+
+ # fetch from snapcraft instead of the debian repository most repos fetch from.
+ # That is a bit more cumbersome. But the debian repository only keeps the last
+ # two versions, while snapcraft should provide versions indefinately:
+ # https://forum.snapcraft.io/t/how-can-a-developer-remove-her-his-app-from-snap-store/512
+
+ # This is the next-best thing, since we're not allowed to re-distribute
+ # spotify ourselves:
+ # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
+ src = fetchurl {
+ url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
+ sha512 = "5b3d5d1f52a554c8e775b8aed16ef84e96bf3b61a2b53266e10d3c47e341899310af13cc8513b04424fc14532e36543a6fae677f80a036e3f51c75166d8d53d1";
+ };
+
+ buildInputs = [ squashfsTools makeWrapper ];
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ unpackPhase = ''
+ runHook preUnpack
+ unsquashfs "$src" '/usr/share/spotify' '/usr/bin/spotify' '/meta/snap.yaml'
+ cd squashfs-root
+ if ! grep -q 'grade: stable' meta/snap.yaml; then
+ # Unfortunately this check is not reliable: At the moment (2018-07-26) the
+ # latest version in the "edge" channel is also marked as stable.
+ echo "The snap package is marked as unstable:"
+ grep 'grade: ' meta/snap.yaml
+ echo "You probably chose the wrong revision."
+ exit 1
+ fi
+ if ! grep -q '${version}' meta/snap.yaml; then
+ echo "Package version differs from version found in snap metadata:"
+ grep 'version: ' meta/snap.yaml
+ echo "While the nix package specifies: ${version}."
+ echo "You probably chose the wrong revision or forgot to update the nix version."
+ exit 1
+ fi
+ runHook postUnpack
+ '';
+
+ installPhase =
+ ''
+ runHook preInstall
+
+ libdir=$out/lib/spotify
+ mkdir -p $libdir
+ mv ./usr/* $out/
+
+ cp meta/snap.yaml $out
+
+ # Work around Spotify referring to a specific minor version of
+ # OpenSSL.
+
+ ln -s ${openssl.out}/lib/libssl.so $libdir/libssl.so.1.0.0
+ ln -s ${openssl.out}/lib/libcrypto.so $libdir/libcrypto.so.1.0.0
+ ln -s ${nspr.out}/lib/libnspr4.so $libdir/libnspr4.so
+ ln -s ${nspr.out}/lib/libplc4.so $libdir/libplc4.so
+
+ ln -s ${ffmpeg_3.out}/lib/libavcodec.so* $libdir
+ ln -s ${ffmpeg_3.out}/lib/libavformat.so* $libdir
+
+ rpath="$out/share/spotify:$libdir"
+
+ patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath $rpath $out/share/spotify/spotify
+
+ librarypath="${stdenv.lib.makeLibraryPath deps}:$libdir"
+ wrapProgram $out/share/spotify/spotify \
+ --prefix LD_LIBRARY_PATH : "$librarypath" \
+ --prefix PATH : "${gnome3.zenity}/bin"
+
+ # fix Icon line in the desktop file (#48062)
+ sed -i "s:^Icon=.*:Icon=spotify-client:" "$out/share/spotify/spotify.desktop"
+
+ # Desktop file
+ mkdir -p "$out/share/applications/"
+ cp "$out/share/spotify/spotify.desktop" "$out/share/applications/"
+
+ # Icons
+ for i in 16 22 24 32 48 64 128 256 512; do
+ ixi="$i"x"$i"
+ mkdir -p "$out/share/icons/hicolor/$ixi/apps"
+ ln -s "$out/share/spotify/icons/spotify-linux-$i.png" \
+ "$out/share/icons/hicolor/$ixi/apps/spotify-client.png"
+ done
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.spotify.com/";
+ description = "Play music from the Spotify music service";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ eelco ftrvxmtrx sheenobu mudri timokau ma27 ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/update.sh
new file mode 100755
index 000000000000..a8836214f2fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/update.sh
@@ -0,0 +1,88 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p curl jq git gnused gnugrep
+
+
+# executing this script without arguments will
+# - find the newest stable spotify version avaiable on snapcraft (https://snapcraft.io/spotify)
+# - read the current spotify version from the current nix expression
+# - update the nix expression if the versions differ
+# - try to build the updated version, exit if that fails
+# - give instructions for upstreaming
+
+# Please test the update manually before pushing. There have been errors before
+# and because the service is proprietary and a paid account is necessary to do
+# anything with spotify automatic testing is not possible.
+
+# As an optional argument you can specify the snapcraft channel to update to.
+# Default is `stable` and only stable updates should be pushed to nixpkgs. For
+# testing you may specify `candidate` or `edge`.
+
+
+channel="${1:-stable}" # stable/candidate/edge
+nixpkgs="$(git rev-parse --show-toplevel)"
+spotify_nix="$nixpkgs/pkgs/applications/audio/spotify/default.nix"
+
+
+#
+# find the newest stable spotify version avaiable on snapcraft
+#
+
+# create bash array from snap info
+snap_info=($(
+ curl -s -H 'X-Ubuntu-Series: 16' \
+ "https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=$channel" \
+ | jq --raw-output \
+ '.revision,.download_sha512,.version,.last_updated'
+))
+
+# "revision" is the actual version identifier on snapcraft, the "version" is
+# just for human consumption. Revision is just an integer that gets increased
+# by one every (stable or unstable) release.
+revision="${snap_info[0]}"
+sha512="${snap_info[1]}"
+upstream_version="${snap_info[2]}"
+last_updated="${snap_info[3]}"
+
+echo "Latest $channel release is $upstream_version from $last_updated."
+
+#
+# read the current spotify version from the currently *committed* nix expression
+#
+
+current_nix_version=$(
+ grep 'version\s*=' "$spotify_nix" \
+ | sed -Ene 's/.*"(.*)".*/\1/p'
+)
+
+echo "Current nix version: $current_nix_version"
+
+#
+# update the nix expression if the versions differ
+#
+
+if [[ "$current_nix_version" = "$upstream_version" ]]; then
+ echo "Spotify is already up-to-date"
+ exit 0
+fi
+
+echo "Updating from ${current_nix_version} to ${upstream_version}, released on ${last_updated}"
+
+# search-and-replace revision, hash and version
+sed --regexp-extended \
+ -e 's/rev\s*=\s*"[0-9]+"\s*;/rev = "'"${revision}"'";/' \
+ -e 's/sha512\s*=\s*"[^"]*"\s*;/sha512 = "'"${sha512}"'";/' \
+ -e 's/version\s*=\s*".*"\s*;/version = "'"${upstream_version}"'";/' \
+ -i "$spotify_nix"
+
+#
+# try to build the updated version
+#
+
+if ! nix-build -A spotify "$nixpkgs"; then
+ echo "The updated spotify failed to build."
+ exit 1
+fi
+
+# Commit changes
+git add "$spotify_nix"
+git commit -m "spotify: ${current_nix_version} -> ${upstream_version}"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/wrapper.nix
new file mode 100644
index 000000000000..418ef3cbc03e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotify/wrapper.nix
@@ -0,0 +1,31 @@
+{ symlinkJoin
+, lib
+, spotify-unwrapped
+, makeWrapper
+
+ # High-DPI support: Spotify's --force-device-scale-factor argument; not added
+ # if `null`, otherwise, should be a number.
+, deviceScaleFactor ? null
+}:
+
+symlinkJoin {
+ name = "spotify-${spotify-unwrapped.version}";
+
+ paths = [ spotify-unwrapped.out ];
+
+ nativeBuildInputs = [ makeWrapper ];
+ preferLocalBuild = true;
+ passthru.unwrapped = spotify-unwrapped;
+ postBuild = ''
+ wrapProgram $out/bin/spotify \
+ ${lib.optionalString (deviceScaleFactor != null) ''
+ --add-flags ${lib.escapeShellArg "--force-device-scale-factor=${
+ builtins.toString deviceScaleFactor
+ }"}
+ ''}
+ '';
+
+ meta = spotify-unwrapped.meta // {
+ priority = (spotify-unwrapped.meta.priority or 0) - 1;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spotifyd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
new file mode 100644
index 000000000000..c4e1695f0835
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, rustPackages_1_45, pkgconfig, openssl
+, withALSA ? true, alsaLib ? null
+, withPulseAudio ? false, libpulseaudio ? null
+, withPortAudio ? false, portaudio ? null
+, withMpris ? false
+, withKeyring ? false
+, dbus ? null
+}:
+
+# rust >= 1.48 causes a panic within spotifyd on music playback. as long as
+# there is no upstream fix for the issue we use an older version of rust.
+# Upstream issue: https://github.com/Spotifyd/spotifyd/issues/719
+rustPackages_1_45.rustPlatform.buildRustPackage rec {
+ pname = "spotifyd";
+ version = "0.2.24";
+
+ src = fetchFromGitHub {
+ owner = "Spotifyd";
+ repo = "spotifyd";
+ rev = "v${version}";
+ sha256 = "08i0zm7kgprixqjpgaxk7xid1njgj6lmi896jf9fsjqzdzlblqk8";
+ };
+
+ cargoSha256 = "0200apqbx769ggjnjr0m72g61ikhml2xak5n1il2pvfx1yf5nw0n";
+
+ cargoBuildFlags = [
+ "--no-default-features"
+ "--features"
+ "${stdenv.lib.optionalString withALSA "alsa_backend,"}${stdenv.lib.optionalString withPulseAudio "pulseaudio_backend,"}${stdenv.lib.optionalString withPortAudio "portaudio_backend,"}${stdenv.lib.optionalString withMpris "dbus_mpris,"}${stdenv.lib.optionalString withKeyring "dbus_keyring,"}"
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optional withALSA alsaLib
+ ++ stdenv.lib.optional withPulseAudio libpulseaudio
+ ++ stdenv.lib.optional withPortAudio portaudio
+ ++ stdenv.lib.optional (withMpris || withKeyring) dbus;
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "An open source Spotify client running as a UNIX daemon";
+ homepage = "https://github.com/Spotifyd/spotifyd";
+ license = with licenses; [ gpl3 ];
+ maintainers = with maintainers; [ anderslundstedt Br1ght0ne marsam ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/spotifywm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotifywm/default.nix
new file mode 100644
index 000000000000..a51e82f29c4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/spotifywm/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, spotify, xorg, runtimeShell }:
+stdenv.mkDerivation {
+ pname = "spotifywm-unstable";
+ version = "2016-11-28";
+
+ src = fetchFromGitHub {
+ owner = "dasJ";
+ repo = "spotifywm";
+ rev = "91dd5532ffb7a398d775abe94fe7781904ab406f";
+ sha256 = "01z088i83410bpx1vbp7c6cq01r431v55l7340x3izp53lnpp379";
+ };
+
+ buildInputs = [ xorg.libX11 ];
+
+ propagatedBuildInputs = [ spotify ];
+
+ installPhase = ''
+ echo "#!${runtimeShell}" > spotifywm
+ echo "LD_PRELOAD="$out/lib/spotifywm.so" ${spotify}/bin/spotify \$*" >> spotifywm
+ install -Dm644 spotifywm.so $out/lib/spotifywm.so
+ install -Dm755 spotifywm $out/bin/spotifywm
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/dasJ/spotifywm";
+ description = "Wrapper around Spotify that correctly sets class name before opening the window";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jqueiroz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/squeezelite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
new file mode 100644
index 000000000000..c6a78f090058
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchFromGitHub
+, alsaLib, flac, libmad, libvorbis, mpg123
+, dsdSupport ? true
+, faad2Support ? true, faad2
+, ffmpegSupport ? true, ffmpeg_3
+, opusSupport ? true, opusfile
+, resampleSupport ? true, soxr
+, sslSupport ? true, openssl
+}:
+
+let
+ concatStringsSep = stdenv.lib.concatStringsSep;
+ optional = stdenv.lib.optional;
+ opts = [ "-DLINKALL" ]
+ ++ optional dsdSupport "-DDSD"
+ ++ optional (!faad2Support) "-DNO_FAAD"
+ ++ optional ffmpegSupport "-DFFMPEG"
+ ++ optional opusSupport "-DOPUS"
+ ++ optional resampleSupport "-DRESAMPLE"
+ ++ optional sslSupport "-DUSE_SSL";
+
+in stdenv.mkDerivation {
+ pname = "squeezelite";
+
+ # versions are specified in `squeezelite.h`
+ # see https://github.com/ralph-irving/squeezelite/issues/29
+ version = "1.9.6.1196";
+
+ src = fetchFromGitHub {
+ owner = "ralph-irving";
+ repo = "squeezelite";
+ rev = "2b508464dce2cbdb2a3089c58df2a6fbc36328c0";
+ sha256 = "024ypr1da2r079k3hgiifzd3d3wcfprhbl5zdm40zm0c7frzmr8i";
+ };
+
+ buildInputs = [ alsaLib flac libmad libvorbis mpg123 ]
+ ++ optional faad2Support faad2
+ ++ optional ffmpegSupport ffmpeg_3
+ ++ optional opusSupport opusfile
+ ++ optional resampleSupport soxr
+ ++ optional sslSupport openssl;
+
+ enableParallelBuilding = true;
+
+ postPatch = ''
+ substituteInPlace opus.c \
+ --replace "<opusfile.h>" "<opus/opusfile.h>"
+ '';
+
+ preBuild = ''
+ export OPTS="${concatStringsSep " " opts}"
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 -t $out/bin squeezelite
+ install -Dm644 -t $out/share/doc/squeezelite *.txt *.md
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Lightweight headless squeezebox client emulator";
+ homepage = "https://github.com/ralph-irving/squeezelite";
+ license = with licenses; [ gpl3 ] ++ optional dsdSupport bsd2;
+ maintainers = with maintainers; [ samdoshi ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/squishyball/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/squishyball/default.nix
new file mode 100644
index 000000000000..e6dd48018e74
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/squishyball/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, autoreconfHook, fetchsvn, flac, libao, libvorbis, ncurses
+, opusfile, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ name = "squishyball-${rev}";
+ rev = "19580";
+
+ src = fetchsvn {
+ url = "https://svn.xiph.org/trunk/squishyball";
+ rev = rev;
+ sha256 = "013vq52q9z6kpg9iyc2jnb3m2gihcjblvwpg4yj4wy1q2c05pzqp";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ buildInputs = [ flac libao libvorbis ncurses opusfile ];
+
+ NIX_CFLAGS_COMPILE = "-DNCURSES_INTERNALS";
+
+ patches = [ ./gnu-screen.patch ];
+
+ postInstall = ''
+ # Why doesn’t this happen automagically?
+ mkdir -p $out/share/man/man1
+ cp squishyball.1 $out/share/man/man1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool to perform sample comparison testing on the command line";
+ longDescription = ''
+ squishyball is a simple command-line utility for performing
+ double-blind A/B, A/B/X or X/X/Y testing on the command line.
+ The user specifies two input files to be compared and uses the
+ keyboard during playback to flip between the randomized samples
+ to perform on-the-fly compar‐ isons. After a predetermined
+ number of trials, squishyball prints the trial results to
+ stdout and exits. Results (stdout) may be redirected to a file
+ without affecting interactive use of the terminal.
+
+ squishyball can also be used to perform casual, non-randomized
+ comparisons of groups of up to ten samples; this is the default
+ mode of operation.
+ '';
+ homepage = "https://svn.xiph.org/trunk/squishyball";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ michalrus ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/squishyball/gnu-screen.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/squishyball/gnu-screen.patch
new file mode 100644
index 000000000000..addc30d604c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/squishyball/gnu-screen.patch
@@ -0,0 +1,20 @@
+diff -Naur a/main.c b/main.c
+--- a/main.c 2016-09-06 13:37:32.259895631 +0200
++++ b/main.c 2016-09-07 01:41:51.014309863 +0200
+@@ -693,6 +693,11 @@
+ }
+
+ /* set up terminal */
++ if (!strncmp(getenv("TERM"), "screen", 6)) {
++ char term[256];
++ snprintf(term, sizeof(term), "xterm%s", getenv("TERM") + 6);
++ setenv("TERM", term, 1);
++ }
+ atexit(min_panel_remove);
+ panel_init(pcm, test_files, test_mode, start, end>0 ? end : len, len,
+ beep_mode, restart_mode, tests, running_score);
+@@ -1170,4 +1175,3 @@
+ fprintf(stderr,"Done.\n");
+ return 0;
+ }
+-
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ssrc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ssrc/default.nix
new file mode 100644
index 000000000000..9d519e14147b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ssrc/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "ssrc";
+ version = "1.33";
+
+ src = fetchFromGitHub {
+ owner = "shibatch";
+ repo = "SSRC";
+ rev = "4adf75116dfc0ef709fef74a0e2f3360bd15007f";
+ sha256 = "0hgma66v7sszkpz5jkyscj0q6lmjfqdwf1hw57535c012pa2vdrh";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ssrc ssrc_hp $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A high quality audio sampling rate converter";
+ longDescription = ''
+ This program converts sampling rates of PCM wav files. This
+ program also has a function to apply dither to its output and
+ extend perceived dynamic range.
+
+ Sampling rates of 44.1kHz and 48kHz are popularly used, but the
+ ratio between these two frequencies is 147:160, which are not
+ small numbers. As a result, sampling rate conversion without
+ degradation of sound quality requires filter with very large
+ order, and it is difficult to have both quality and speed. This
+ program quickly converts between these sampling frequencies
+ without audible degradation.
+ '';
+
+ version = version;
+ homepage = "http://shibatch.sourceforge.net/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ leenaars];
+ platforms = with platforms; [ linux ] ;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/stone-phaser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/stone-phaser/default.nix
new file mode 100644
index 000000000000..d36b28df978a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/stone-phaser/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, xorg, cairo, lv2, libjack2, mesa, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "stone-phaser";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "jpcima";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "180b32z8h9zi8p0q55r1dzxfckamnngm52zjypjjvvy7qdj3mfcd";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xorg.libX11 cairo lv2 libjack2 mesa
+ ];
+
+ postPatch = ''
+ patch -d dpf -p 1 -i "$src/resources/patch/DPF-bypass.patch"
+ patchShebangs ./dpf/utils/generate-ttl.sh
+ '';
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jpcima/stone-phaser";
+ description = "A classic analog phaser effect, made with DPF and Faust";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.boost;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/strawberry/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/strawberry/default.nix
new file mode 100644
index 000000000000..c2f1a0db701c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/strawberry/default.nix
@@ -0,0 +1,99 @@
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, alsaLib
+, boost
+, chromaprint
+, fftw
+, gnutls
+, libcdio
+, libmtp
+, libpthreadstubs
+, libtasn1
+, libXdmcp
+, ninja
+, pcre
+, protobuf
+, sqlite
+, taglib
+, libpulseaudio ? null
+, libselinux ? null
+, libsepol ? null
+, p11-kit ? null
+, util-linux ? null
+, qtbase
+, qtx11extras
+, qttools
+, withGstreamer ? true
+, gst_all_1 ? null
+, withVlc ? true
+, libvlc ? null
+}:
+
+mkDerivation rec {
+ pname = "strawberry";
+ version = "0.8.4";
+
+ src = fetchFromGitHub {
+ owner = "jonaski";
+ repo = pname;
+ rev = version;
+ sha256 = "145djlfvbkx2b1wqipk51mz82dhm27vmh9x00lkn24q1xz1y6h5n";
+ };
+
+ buildInputs = [
+ alsaLib
+ boost
+ chromaprint
+ fftw
+ gnutls
+ libcdio
+ libmtp
+ libpthreadstubs
+ libtasn1
+ libXdmcp
+ pcre
+ protobuf
+ sqlite
+ taglib
+ qtbase
+ qtx11extras
+ ]
+ ++ lib.optionals stdenv.isLinux [
+ libpulseaudio
+ libselinux
+ libsepol
+ p11-kit
+ util-linux
+ ]
+ ++ lib.optionals withGstreamer (with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-ugly
+ ])
+ ++ lib.optional withVlc libvlc;
+
+ nativeBuildInputs = [ cmake ninja pkgconfig qttools ];
+
+ cmakeFlags = [
+ "-DUSE_SYSTEM_TAGLIB=ON"
+ ];
+
+ postInstall = ''
+ qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+ '';
+
+ meta = with lib; {
+ description = "Music player and music collection organizer";
+ homepage = "https://www.strawberrymusicplayer.org/";
+ changelog = "https://raw.githubusercontent.com/jonaski/strawberry/${version}/Changelog";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ # upstream says darwin should work but they lack maintainers as of 0.6.6
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/streamripper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/streamripper/default.nix
new file mode 100644
index 000000000000..1411fe59b30f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/streamripper/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl , glib, pkgconfig, libogg, libvorbis, libmad }:
+
+stdenv.mkDerivation rec {
+ pname = "streamripper";
+ version = "1.64.6";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/streamripper/${pname}-${version}.tar.gz";
+ sha256 = "0hnyv3206r0rfprn3k7k6a0j959kagsfyrmyjm3gsf3vkhp5zmy1";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib libogg libvorbis libmad ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://streamripper.sourceforge.net/";
+ description = "Application that lets you record streaming mp3 to your hard drive";
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/string-machine/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/string-machine/default.nix
new file mode 100644
index 000000000000..67053baa35ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/string-machine/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, boost, cairo, lv2, pkg-config }:
+
+stdenv.mkDerivation rec {
+ pname = "string-machine";
+ version = "unstable-2020-01-20";
+
+ src = fetchFromGitHub {
+ owner = "jpcima";
+ repo = pname;
+ rev = "188082dd0beb9a3c341035604841c53675fe66c4";
+ sha256 = "0l9xrzp3f0hk6h320qh250a0n1nbd6qhjmab21sjmrlb4ngy672v";
+ fetchSubmodules = true;
+ };
+
+ postPatch = ''
+ patchShebangs ./dpf/utils/generate-ttl.sh
+ '';
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [
+ boost cairo lv2
+ ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jpcima/string-machine";
+ description = "Digital model of electronic string ensemble instrument";
+ maintainers = [ maintainers.magnetophon ];
+ platforms = intersectLists platforms.linux platforms.x86;
+ license = licenses.boost;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sublime-music/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
new file mode 100644
index 000000000000..7e3c1b9164f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
@@ -0,0 +1,60 @@
+{ lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook
+
+, chromecastSupport ? false
+, serverSupport ? false
+, keyringSupport ? true
+, notifySupport ? true, libnotify
+, networkSupport ? true, networkmanager
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "sublime-music";
+ version = "0.11.7";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "1x6b02gw46gp6qcgv67j7k3gr1dpfczbyma6dxanag8pnpqrj8qi";
+ };
+
+ nativeBuildInputs = [
+ gobject-introspection
+ python3Packages.setuptools
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ pango
+ ]
+ ++ lib.optional notifySupport libnotify
+ ++ lib.optional networkSupport networkmanager
+ ;
+
+ propagatedBuildInputs = with python3Packages; [
+ dataclasses-json
+ deepdiff
+ fuzzywuzzy
+ mpv
+ peewee
+ pygobject3
+ python-Levenshtein
+ python-dateutil
+ requests
+ semver
+ ]
+ ++ lib.optional chromecastSupport PyChromecast
+ ++ lib.optional keyringSupport keyring
+ ++ lib.optional serverSupport bottle
+ ;
+
+ # hook for gobject-introspection doesn't like strictDeps
+ # https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ meta = with lib; {
+ description = "GTK3 Subsonic/Airsonic client";
+ homepage = "https://sublimemusic.app/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ albakham ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/sunvox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/sunvox/default.nix
new file mode 100644
index 000000000000..2cd48806f7d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/sunvox/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, unzip, alsaLib, libX11, libXi, SDL2 }:
+
+let
+ libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc alsaLib libX11 libXi SDL2 ];
+ arch =
+ if stdenv.isAarch64
+ then "arm64"
+ else if stdenv.isAarch32
+ then "arm_armhf_raspberry_pi"
+ else if stdenv.is64bit
+ then "x86_64"
+ else "x86";
+in
+stdenv.mkDerivation rec {
+ pname = "SunVox";
+ version = "1.9.5d";
+
+ src = fetchurl {
+ url = "http://www.warmplace.ru/soft/sunvox/sunvox-${version}.zip";
+ sha256 = "04f7psm0lvc09nw7d2wp0sncf37bym2v7hhxp4v8c8gdgayj7k8m";
+ };
+
+ buildInputs = [ unzip ];
+
+ unpackPhase = "unzip $src";
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/share $out/bin
+ mv sunvox $out/share/
+
+ bin="$out/share/sunvox/sunvox/linux_${arch}/sunvox"
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libPath}" \
+ "$bin"
+
+ ln -s "$bin" $out/bin/sunvox
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Small, fast and powerful modular synthesizer with pattern-based sequencer";
+ license = licenses.unfreeRedistributable;
+ homepage = "http://www.warmplace.ru/soft/sunvox/";
+ maintainers = with maintainers; [ puffnfresh ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/surge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/surge/default.nix
new file mode 100644
index 000000000000..1614bbfae667
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/surge/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, git, pkg-config, python3
+, cairo, libsndfile, libxcb, libxkbcommon, xcbutil, xcbutilcursor, xcbutilkeysyms, zenity
+}:
+
+stdenv.mkDerivation rec {
+ pname = "surge";
+ version = "1.7.1";
+
+ src = fetchFromGitHub {
+ owner = "surge-synthesizer";
+ repo = pname;
+ rev = "release_${version}";
+ sha256 = "1b3ccc78vrpzy18w7070zfa250dnd1bww147xxcnj457vd6n065s";
+ leaveDotGit = true; # for SURGE_VERSION
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake git pkg-config python3 ];
+ buildInputs = [ cairo libsndfile libxcb libxkbcommon xcbutil xcbutilcursor xcbutilkeysyms zenity ];
+
+ postPatch = ''
+ substituteInPlace src/common/SurgeStorage.cpp --replace "/usr/share/Surge" "$out/share/surge"
+ substituteInPlace src/common/gui/PopupEditorDialog.cpp --replace '"zenity' '"${zenity}/bin/zenity'
+ substituteInPlace src/linux/UserInteractionsLinux.cpp --replace '"zenity' '"${zenity}/bin/zenity'
+ substituteInPlace vstgui.surge/vstgui/lib/platform/linux/x11fileselector.cpp --replace /usr/bin/zenity ${zenity}/bin/zenity
+ '';
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2 $out/lib/vst3 $out/share/surge
+ cp -r surge_products/Surge.lv2 $out/lib/lv2/
+ cp -r surge_products/Surge.vst3 $out/lib/vst3/
+ cp -r ../resources/data/* $out/share/surge/
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ cd ..
+ build/surge-headless
+ '';
+
+ meta = with stdenv.lib; {
+ description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)";
+ homepage = "https://surge-synthesizer.github.io";
+ license = licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ magnetophon orivej ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/svox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/svox/default.nix
new file mode 100644
index 000000000000..d5b67819cb07
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/svox/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, popt }:
+
+stdenv.mkDerivation {
+ pname = "svox";
+ version = "2018-02-14";
+
+ # basically took the source code from android and borrowed autotool patches from debian
+ src = fetchFromGitHub {
+ owner = "naggety";
+ repo = "picotts";
+ rev = "e3ba46009ee868911fa0b53db672a55f9cc13b1c";
+ sha256 = "0k3m7vh1ak9gmxd83x29cvhzfkybgz5hnlhd9xj19l1bjyx84s8v";
+ };
+
+ postPatch = ''
+ cd pico
+ '';
+
+ buildInputs = [ popt ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ description = "Text-to-speech engine";
+ homepage = "https://android.googlesource.com/platform/external/svox";
+ platforms = platforms.linux;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix
new file mode 100644
index 000000000000..02499d54476f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, fftwSinglePrec, libxslt, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "swh-lv2";
+ version = "1.0.16";
+
+ src = fetchurl {
+ url = "https://github.com/swh/lv2/archive/v${version}.tar.gz";
+ sha256 = "0j1mih0lp4fds07knp5i32in515sh0df1qi6694pmyz2wqnm295w";
+ };
+
+ patchPhase = ''
+ sed -e "s#xsltproc#${libxslt.bin}/bin/xsltproc#" -i Makefile
+ sed -e "s#PREFIX = /usr/local#PREFIX = $out#" -i Makefile
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ fftwSinglePrec lv2 ];
+
+ installPhase = "make install-system";
+
+ meta = with stdenv.lib; {
+ homepage = "http://plugin.org.uk";
+ description = "LV2 version of Steve Harris' SWH plugins";
+ longDescription = ''
+ SWH plugins include:
+ amp, fast overdrive, overdrive (with colourisation), comb
+ filter, waveshaper, ringmod, divider, diode, decliper, pitch
+ scaler, 16 band equaliser, sinus wavewrapper, hermes filter,
+ chorus, flanger, decimater, oscillator, gverb, phasers, harmonic
+ generators, surround encoders and more.
+ '';
+ license = licenses.gpl3;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/synthv1/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/synthv1/default.nix
new file mode 100644
index 000000000000..74f68283fd60
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/synthv1/default.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, stdenv, fetchurl, pkgconfig, qtbase, qttools, libjack2, alsaLib, liblo, lv2 }:
+
+mkDerivation rec {
+ pname = "synthv1";
+ version = "0.9.15";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz";
+ sha256 = "047y2l7ipzv00ly54f074v6p043xjml7vz0svc7z81bhx74vs0ix";
+ };
+
+ buildInputs = [ qtbase qttools libjack2 alsaLib liblo lv2 ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with stdenv.lib; {
+ description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";
+ homepage = "https://synthv1.sourceforge.io/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/talentedhack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/talentedhack/default.nix
new file mode 100644
index 000000000000..b30cf59f7b30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/talentedhack/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, lv2, fftwFloat, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "talentedhack";
+ version = "1.86";
+
+ src = fetchFromGitHub {
+ owner = "jeremysalwen";
+ repo = "talentedhack";
+ rev = "v${version}";
+ sha256 = "0kwvayalysmk7y49jq0k16al252md8d45z58hphzsksmyz6148bx";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ lv2 fftwFloat ];
+
+ # To avoid name clashes, plugins should be compiled with symbols hidden, except for `lv2_descriptor`:
+ preConfigure = ''
+ sed -r 's/^CFLAGS.*$/\0 -fvisibility=hidden/' -i Makefile
+ '';
+
+ installPhase = ''
+ d=$out/lib/lv2/talentedhack.lv2
+ mkdir -p $d
+ cp *.so *.ttl $d
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jeremysalwen/TalentedHack";
+ description = "LV2 port of Autotalent pitch correction plugin";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.michalrus ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tambura/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/tambura/default.nix
new file mode 100644
index 000000000000..96f9bb7053e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tambura/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+ pname = "Tambura";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "olilarkin";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1w80cmiyzca1wirf5gypg3hcix1ky777id8wnd3k92mn1jf4a24y";
+ };
+
+ buildInputs = [ faust2jaqt faust2lv2 ];
+
+ buildPhase = ''
+ faust2jaqt -vec -time -t 99999 ${pname}.dsp
+ faust2lv2 -vec -time -gui -t 99999 ${pname}.dsp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ${pname} $out/bin/
+ mkdir -p $out/lib/lv2
+ cp -r ${pname}.lv2/ $out/lib/lv2
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A FAUST patch inspired by the Indian Tambura/Tanpura - a four string drone instrument, known for its unique rich harmonic timbre";
+ homepage = "https://github.com/olilarkin/Tambura";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tamgamp.lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/tamgamp.lv2/default.nix
new file mode 100644
index 000000000000..9f51f9d022d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tamgamp.lv2/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, pkg-config, lv2, zita-resampler }:
+
+stdenv.mkDerivation rec {
+ pname = "tamgamp.lv2";
+ version = "unstable-2020-06-14";
+
+ src = fetchFromGitHub {
+ owner = "sadko4u";
+ repo = pname;
+ rev = "426da74142fcb6b7687a35b2b1dda3392e171b92";
+ sha256 = "0dqsnim7v79rx13bkkh143gqz0xg26cpf6ya3mrwwprpf5hns2bp";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ lv2 zita-resampler ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sadko4u/tamgamp.lv2";
+ description = "Guitar amplifier simulator";
+ longDescription = ''
+ Tamgamp (Pronouncement: "Damage Amp") is an LV2 guitar amp simulator that provides two plugins:
+
+ - Tamgamp - a plugin based on Guitarix DK Builder simulated chains.
+ - TamgampGX - a plugin based on tuned Guitarix internal amplifiers implementation.
+
+ The reference to the original Guitarix project: https://guitarix.org/
+
+ It simulates the set of the following guitar amplifiers:
+
+ - Fender Princeton Reverb-amp AA1164 (without reverb module)
+ - Fender Twin Reverb-Amp AA769 (Normal channel, bright off)
+ - Fender Twin Reverb-Amp AA769 (Vibrato channel, bright on)
+ - Marshall JCM-800 High-gain input
+ - Marshall JCM-800 Low-gain input
+ - Mesa/Boogie DC3 preamplifier (lead channel)
+ - Mesa/Boogie DC3 preamplifier (rhythm channel)
+ - Mesa Dual Rectifier preamplifier (orange channel, less gain)
+ - Mesa Dual Rectifier preamplifier (red channel, more gain)
+ - Peavey 5150II crunch channel
+ - Peavey 5150II lead channel
+ - VOX AC-30 Brilliant channel
+ - VOX AC-30 normal channel
+ '';
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ license = licenses.lgpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tetraproc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/tetraproc/default.nix
new file mode 100644
index 000000000000..8780e54bb7c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tetraproc/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, makeWrapper
+, expat, fftwFloat, fontconfig, freetype, libjack2, jack2Full, libclthreads, libclxclient
+, libsndfile, libxcb, xorg
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tetraproc";
+ version = "0.8.6";
+
+ src = fetchurl {
+ url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "02155ljfwgvfgq9z258fb4z7jrz7qx022d054fj5gr0v007cv0r7";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [
+ expat libjack2 libclthreads libclxclient fftwFloat fontconfig libsndfile freetype
+ libxcb xorg.libX11 xorg.libXau xorg.libXdmcp xorg.libXft xorg.libXrender
+ ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "SUFFIX=''"
+ ];
+
+ preConfigure = ''
+ cd ./source/
+ '';
+
+ postInstall = ''
+ # Make sure Jack is avalable in $PATH for tetraproc
+ wrapProgram $out/bin/tetraproc --prefix PATH : "${jack2Full}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Converts the A-format signals from a tetrahedral Ambisonic microphone into B-format signals ready for recording";
+ homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/timemachine/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/timemachine/default.nix
new file mode 100644
index 000000000000..8be43346bc04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/timemachine/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, gtk2
+, libjack2, libsndfile
+}:
+
+stdenv.mkDerivation rec {
+ pname = "timemachine";
+ version = "0.3.4";
+ src = fetchFromGitHub {
+ owner = "swh";
+ repo = "timemachine";
+ rev = "v${version}";
+ sha256 = "16fgyw6jnscx9279dczv72092dddghwlp53rkfw469kcgvjhwx0z";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ autoconf automake gtk2 libjack2
+ libsndfile
+ ];
+
+ preConfigure = "./autogen.sh";
+
+ NIX_LDFLAGS = "-lm";
+
+ meta = {
+ description = "JACK audio recorder";
+ homepage = "http://plugin.org.uk/timemachine/";
+ license = stdenv.lib.licenses.lgpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.nico202 ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tony/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/tony/default.nix
new file mode 100644
index 000000000000..011d80253647
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tony/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, pkgconfig, wrapQtAppsHook
+, alsaLib, boost, bzip2, fftw, fftwFloat, libX11, libfishsound, libid3tag
+, libjack2, liblo, libmad, libogg, liboggz, libpulseaudio, libsamplerate
+, libsndfile, lrdf, opusfile, qtbase, qtsvg, rubberband, serd, sord
+}:
+
+stdenv.mkDerivation rec {
+ name = "tony-2.1.1";
+
+ src = fetchurl {
+ url = "https://code.soundsoftware.ac.uk/attachments/download/2616/${name}.tar.gz";
+ sha256 = "03g2bmlj08lmgvh54dyd635xccjn730g4wwlhpvsw04bffz8b7fp";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapQtAppsHook ];
+
+ buildInputs = [
+ alsaLib boost bzip2 fftw fftwFloat libX11 libfishsound libid3tag
+ libjack2 liblo libmad libogg liboggz libpulseaudio libsamplerate
+ libsndfile lrdf opusfile qtbase qtsvg rubberband serd sord
+ ];
+
+ # comment out the tests
+ preConfigure = ''
+ sed -i 's/sub_test_svcore_/#sub_test_svcore_/' tony.pro
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Pitch and note annotation of unaccompanied melody";
+ homepage = "https://www.sonicvisualiser.org/tony/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/transcode/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/transcode/default.nix
new file mode 100644
index 000000000000..c7ee3914f25c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/transcode/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, flac, lame, zlib, libjpeg, libvorbis, libtheora, libxml2
+, lzo, libdvdread, pkgconfig, x264, libmpeg2, xvidcore }:
+
+stdenv.mkDerivation rec {
+ name = "transcode-1.1.7";
+ src = fetchurl {
+ url = "https://bitbucket.org/france/transcode-tcforge/downloads/${name}.tar.bz2";
+ sha256 = "1e4e72d8e0dd62a80b8dd90699f5ca64c9b0cb37a5c9325c184166a9654f0a92";
+ };
+
+ buildInputs = [ flac lame zlib libjpeg libvorbis libtheora libxml2 lzo
+ libdvdread pkgconfig x264 libmpeg2 xvidcore ];
+ configureFlags = [
+ "--disable-ffmpeg" "--disable-libavcodec" "--disable-libavformat"
+ "--enable-lzo" "--enable-ogg" "--enable-vorbis" "--enable-theora" "--enable-libxml2"
+ "--enable-x264" "--enable-libmpeg2" "--enable-xvid"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Suite of command line utilities for transcoding video and audio codecs, and for converting between different container formats";
+ homepage = "http://www.transcoding.org/";
+ license = licenses.lgpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/traverso/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/traverso/default.nix
new file mode 100644
index 000000000000..63ba44bec35a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/traverso/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, stdenv, fetchurl, cmake, pkgconfig
+, alsaLib, fftw, flac, lame, libjack2, libmad, libpulseaudio
+, libsamplerate, libsndfile, libvorbis, portaudio, qtbase, wavpack
+}:
+mkDerivation {
+ pname = "traverso";
+ version = "0.49.6";
+
+ src = fetchurl {
+ url = "https://traverso-daw.org/traverso-0.49.6.tar.gz";
+ sha256 = "12f7x8kw4fw1j0xkwjrp54cy4cv1ql0zwz2ba5arclk4pf6bhl7q";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ alsaLib fftw flac.dev libjack2 lame
+ libmad libpulseaudio libsamplerate.dev libsndfile.dev libvorbis
+ portaudio qtbase wavpack ];
+
+ cmakeFlags = [ "-DWANT_PORTAUDIO=1" "-DWANT_PULSEAUDIO=1" "-DWANT_MP3_ENCODE=1" "-DWANT_LV2=0" ];
+
+ enableParallelBuilding = true;
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "Cross-platform multitrack audio recording and audio editing suite";
+ homepage = "https://traverso-daw.org/";
+ license = with licenses; [ gpl2Plus lgpl21Plus ];
+ platforms = platforms.all;
+ maintainers = with maintainers; [ coconnor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/Gemfile
new file mode 100644
index 000000000000..24f308f3f423
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "taglib-ruby"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/Gemfile.lock
new file mode 100644
index 000000000000..0ae90c1aebbe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ taglib-ruby (0.7.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ taglib-ruby
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/default.nix
new file mode 100644
index 000000000000..3b25b4218f19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, bundlerEnv, ruby, fetchFromGitHub }:
+let
+ version = "1.1";
+ gems = bundlerEnv {
+ name = "tree-from-tags-${version}-gems";
+ inherit ruby;
+ gemdir = ./.;
+ };
+in stdenv.mkDerivation {
+ pname = "tree-from-tags";
+ inherit version;
+ src = fetchFromGitHub {
+ owner = "dbrock";
+ repo = "bongo";
+ rev = version;
+ sha256 = "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv";
+ };
+ buildInputs = [ gems ruby ];
+ installPhase = ''
+ mkdir -p $out/{bin,share}
+ cp tree-from-tags.rb $out/share/
+ bin=$out/bin/tree-from-tags
+# we are using bundle exec to start in the bundled environment
+ cat > $bin <<EOF
+#!/bin/sh -e
+exec ${gems}/bin/bundle exec ${ruby}/bin/ruby "$out"/share/tree-from-tags.rb "\$@"
+EOF
+ chmod +x $bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Create file hierarchies from media tags";
+ homepage = "https://www.emacswiki.org/emacs/Bongo";
+ platforms = ruby.meta.platforms;
+ maintainers = [ maintainers.livnev maintainers.dbrock ];
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/gemset.nix
new file mode 100644
index 000000000000..20e10e9d93b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tree-from-tags/gemset.nix
@@ -0,0 +1,10 @@
+{
+ taglib-ruby = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r8g7zdncc6243d000jn0grc1n70rn9mx16vggy3q7c4wgsa37xi";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tuijam/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/tuijam/default.nix
new file mode 100644
index 000000000000..8a08b64508d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tuijam/default.nix
@@ -0,0 +1,46 @@
+{ buildPythonApplication
+, fetchFromGitHub
+, lib
+, python3Packages
+, youtube-dl
+}:
+
+buildPythonApplication rec {
+ pname = "tuijam";
+ version = "unstable-2020-06-05";
+
+ src = fetchFromGitHub {
+ owner = "cfangmeier";
+ repo = pname;
+ rev = "7baec6f6e80ee90da0d0363b430dd7d5695ff03b";
+ sha256 = "1l0s88jvj99jkxnczw5nfj78m8vihh29g815n4mg9jblad23mgx5";
+ };
+
+ buildInputs = [ python3Packages.Babel ];
+
+ # the package has no tests
+ doCheck = false;
+
+ propagatedBuildInputs = with python3Packages; [
+ gmusicapi
+ google_api_python_client
+ mpv
+ pydbus
+ pygobject3
+ pyyaml
+ requests
+ rsa
+ urwid
+ ];
+
+ meta = with lib; {
+ description = "A fancy TUI client for Google Play Music";
+ longDescription = ''
+ TUIJam seeks to make a simple, attractive, terminal-based interface to
+ listening to music for Google Play Music All-Access subscribers.
+ '';
+ homepage = "https://github.com/cfangmeier/tuijam";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/tunefish/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/tunefish/default.nix
new file mode 100644
index 000000000000..72802c4f8784
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/tunefish/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, pkg-config, python3
+, alsaLib, curl, freetype, gtk3, libGL, libX11, libXext, libXinerama, webkitgtk
+}:
+
+stdenv.mkDerivation {
+ pname = "tunefish";
+ version = "unstable-2020-08-13";
+
+ src = fetchFromGitHub {
+ owner = "jpcima";
+ repo = "tunefish";
+ rev = "b3d83cc66201619f6399500f6897fbeb1786d9ed";
+ fetchSubmodules = true;
+ sha256 = "0rjpq3s609fblzkvnc9729glcnfinmxljh0z8ldpzr245h367zxh";
+ };
+
+ nativeBuildInputs = [ pkg-config python3 ];
+ buildInputs = [ alsaLib curl freetype gtk3 libGL libX11 libXext libXinerama webkitgtk ];
+
+ postPatch = ''
+ patchShebangs src/tunefish4/generate-lv2-ttl.py
+ '';
+
+ makeFlags = [
+ "-C" "src/tunefish4/Builds/LinuxMakefile"
+ "CONFIG=Release"
+ ];
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2
+ cp -r src/tunefish4/Builds/LinuxMakefile/build/Tunefish4.lv2 $out/lib/lv2
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://tunefish-synth.com/";
+ description = "Virtual analog synthesizer LV2 plugin";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/uade123/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/uade123/default.nix
new file mode 100644
index 000000000000..9130461e4d72
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/uade123/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, which, libao, pkgconfig }:
+
+let
+ version = "2.13";
+in stdenv.mkDerivation {
+ pname = "uade123";
+ inherit version;
+ src = fetchurl {
+ url = "http://zakalwe.fi/uade/uade2/uade-${version}.tar.bz2";
+ sha256 = "04nn5li7xy4g5ysyjjngmv5d3ibxppkbb86m10vrvadzxdd4w69v";
+ };
+ nativeBuildInputs = [ pkgconfig which ];
+ buildInputs = [ libao ];
+
+ enableParallelBuilding = true;
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "Plays old Amiga tunes through UAE emulation and cloned m68k-assembler Eagleplayer API";
+ homepage = "http://zakalwe.fi/uade/";
+ license = licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.gnidorah ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix
new file mode 100644
index 000000000000..732e9d8433f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, python3
+, fftw
+, libGL
+, libX11
+, libjack2
+, liblo
+, lv2
+}:
+
+stdenv.mkDerivation rec {
+ # this is what upstream calls the package, see:
+ # https://github.com/ryukau/LV2Plugins#uhhyou-plugins-lv2
+ pname = "uhhyou.lv2";
+ version = "unstable-2020-07-31";
+
+ src = fetchFromGitHub {
+ owner = "ryukau";
+ repo = "LV2Plugins";
+ rev = "6189be67acaeb95452f8adab73a731d94a7b6f47";
+ fetchSubmodules = true;
+ sha256 = "049gigx2s89z8vf17gscs00c150lmcdwya311nbrwa18fz4bx242";
+ };
+
+ nativeBuildInputs = [ pkg-config python3 ];
+
+ buildInputs = [ fftw libGL libX11 libjack2 liblo lv2 ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ prePatch = ''
+ patchShebangs generate-ttl.sh
+ cp patch/NanoVG.cpp lib/DPF/dgl/src/NanoVG.cpp
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Audio plugins for Linux";
+ longDescription = ''
+ Plugin List:
+ - CubicPadSynth
+ - EnvelopedSine
+ - EsPhaser
+ - FDNCymbal
+ - FoldShaper
+ - IterativeSinCluster
+ - L3Reverb
+ - L4Reverb
+ - LatticeReverb
+ - LightPadSynth
+ - ModuloShaper
+ - OddPowShaper
+ - SevenDelay
+ - SoftClipper
+ - SyncSawSynth
+ - TrapezoidSynth
+ - WaveCymbal
+ '';
+ homepage = "https://github.com/ryukau/LV2Plugins/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
new file mode 100644
index 000000000000..18d8f7415b56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
@@ -0,0 +1,103 @@
+{ stdenv, makeWrapper, fetchFromBitbucket, fetchFromGitHub, pkgconfig
+, alsaLib, curl, glew, glfw, gtk2-x11, jansson, libjack2, libXext, libXi
+, libzip, rtaudio, rtmidi, speex, libsamplerate }:
+
+let
+ # The package repo vendors some of the package dependencies as submodules.
+ # Others are downloaded with `make deps`. Due to previous issues with the
+ # `glfw` submodule (see above) and because we can not access the network when
+ # building in a sandbox, we fetch the dependency source manually.
+ pfft-source = fetchFromBitbucket {
+ owner = "jpommier";
+ repo = "pffft";
+ rev = "74d7261be17cf659d5930d4830609406bd7553e3";
+ sha256 = "084csgqa6f1a270bhybjayrh3mpyi2jimc87qkdgsqcp8ycsx1l1";
+ };
+ nanovg-source = fetchFromGitHub {
+ owner = "memononen";
+ repo = "nanovg";
+ rev = "1f9c8864fc556a1be4d4bf1d6bfe20cde25734b4";
+ sha256 = "08r15zrr6p1kxigxzxrg5rgya7wwbdx7d078r362qbkmws83wk27";
+ };
+ nanosvg-source = fetchFromGitHub {
+ owner = "memononen";
+ repo = "nanosvg";
+ rev = "25241c5a8f8451d41ab1b02ab2d865b01600d949";
+ sha256 = "114qgfmazsdl53rm4pgqif3gv8msdmfwi91lyc2jfadgzfd83xkg";
+ };
+ osdialog-source = fetchFromGitHub {
+ owner = "AndrewBelt";
+ repo = "osdialog";
+ rev = "e5db5de6444f4b2c4e1390c67b3efd718080c3da";
+ sha256 = "0iqxn1md053nl19hbjk8rqsdcmjwa5l5z0ci4fara77q43rc323i";
+ };
+ oui-blendish-source = fetchFromGitHub {
+ owner = "AndrewBelt";
+ repo = "oui-blendish";
+ rev = "79ec59e6bc7201017fc13a20c6e33380adca1660";
+ sha256 = "17kd0lh2x3x12bxkyhq6z8sg6vxln8m9qirf0basvcsmylr6rb64";
+ };
+in
+with stdenv.lib; stdenv.mkDerivation rec {
+ pname = "VCV-Rack";
+ version = "1.1.6";
+
+ src = fetchFromGitHub {
+ owner = "VCVRack";
+ repo = "Rack";
+ rev = "v${version}";
+ sha256 = "0ji64prr74qzxf5bx1sw022kbslx9nzll16lmk5in78hbl137b3i";
+ };
+
+ patches = [
+ ./rack-minimize-vendoring.patch
+ ];
+
+ prePatch = ''
+ # As we can't use `make dep` to set up the dependencies (as explained
+ # above), we do it here manually
+ mkdir -p dep/include
+
+ cp -r ${pfft-source} dep/jpommier-pffft-source
+ cp -r ${nanovg-source}/* dep/nanovg
+ cp -r ${nanosvg-source}/* dep/nanosvg
+ cp -r ${osdialog-source}/* dep/osdialog
+ cp -r ${oui-blendish-source}/* dep/oui-blendish
+
+ cp dep/jpommier-pffft-source/*.h dep/include
+ cp dep/nanosvg/**/*.h dep/include
+ cp dep/nanovg/src/*.h dep/include
+ cp dep/osdialog/*.h dep/include
+ cp dep/oui-blendish/*.h dep/include
+
+ substituteInPlace include/audio.hpp --replace "<RtAudio.h>" "<rtaudio/RtAudio.h>"
+ substituteInPlace compile.mk --replace "-march=nocona" ""
+ '';
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ makeWrapper pkgconfig ];
+ buildInputs = [ alsaLib curl glew glfw gtk2-x11 jansson libjack2 libsamplerate libzip rtaudio rtmidi speex ];
+
+ buildFlags = [ "Rack" ];
+
+ installPhase = ''
+ install -D -m755 -t $out/bin Rack
+
+ mkdir -p $out/share/vcv-rack
+ cp -r res Core.json template.vcv LICENSE* cacert.pem $out/share/vcv-rack
+
+ # Override the default global resource file directory
+ wrapProgram $out/bin/Rack --add-flags "-s $out/share/vcv-rack"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Open-source virtual modular synthesizer";
+ homepage = "https://vcvrack.com/";
+ # The source is BSD-3 licensed, some of the art is CC-BY-NC 4.0 or under a
+ # no-derivatives clause
+ license = with licenses; [ bsd3 cc-by-nc-40 unfreeRedistributable ];
+ maintainers = with maintainers; [ moredread nathyong ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch
new file mode 100644
index 000000000000..d310d57835e4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch
@@ -0,0 +1,13 @@
+diff -ru a/Makefile b/Makefile
+--- a/Makefile 1970-01-01 01:00:01.000000000 +0100
++++ b/Makefile 1970-01-01 01:00:01.000000000 +0100
+@@ -21,8 +21,8 @@
+ build/dep/osdialog/osdialog_gtk2.c.o: FLAGS += $(shell pkg-config --cflags gtk+-2.0)
+
+ LDFLAGS += -rdynamic \
+- dep/lib/libGLEW.a dep/lib/libglfw3.a dep/lib/libjansson.a dep/lib/libcurl.a dep/lib/libssl.a dep/lib/libcrypto.a dep/lib/libzip.a dep/lib/libz.a dep/lib/libspeexdsp.a dep/lib/libsamplerate.a dep/lib/librtmidi.a dep/lib/librtaudio.a \
++ -lGLEW -lglfw -ljansson -lcurl -lssl -lcrypto -lzip -lz -lspeexdsp -lsamplerate -lrtmidi -lrtaudio \
+ -lpthread -lGL -ldl -lX11 -lasound -ljack \
+ $(shell pkg-config --libs gtk+-2.0)
+ TARGET := Rack
+ endif
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/vimpc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/vimpc/default.nix
new file mode 100644
index 000000000000..bcbfa6d3874f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/vimpc/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, mpd_clientlib, ncurses, pcre, pkgconfig
+, taglib, curl }:
+
+stdenv.mkDerivation rec {
+ version = "0.09.2";
+ pname = "vimpc";
+
+ src = fetchFromGitHub {
+ owner = "boysetsfrog";
+ repo = "vimpc";
+ rev = "v${version}";
+ sha256 = "0lswzkap2nm7v5h7ppb6a64cb35rajysd09nb204rxgrkij4m6nx";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ mpd_clientlib ncurses pcre taglib curl ];
+
+ postInstall = ''
+ mkdir -p $out/etc
+ cp doc/vimpcrc.example $out/etc
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A vi/vim inspired client for the Music Player Daemon (mpd)";
+ homepage = "https://github.com/boysetsfrog/vimpc";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix
new file mode 100644
index 000000000000..24e112aff2b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix
@@ -0,0 +1,89 @@
+{ stdenv
+, fetchzip
+, libX11
+, libXi
+, libGL
+, alsaLib
+, SDL2
+, autoPatchelfHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "virtual-ans";
+ version = "3.0.2c";
+
+ src = fetchzip {
+ url = "https://warmplace.ru/soft/ans/virtual_ans-${version}.zip";
+ sha256 = "03r1v3l7rd59dakr7ndvgsqchv00ppkvi6sslgf1ng07r3rsvb1n";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ ];
+
+ buildInputs = [
+ stdenv.cc.cc.lib
+ libX11
+ libXi
+ libGL
+ alsaLib
+ SDL2
+ ];
+
+ installPhase = ''
+ mkdir -p $out
+ cp -R ./* $out/
+
+ # Remove all executables except for current architecture
+ ls -1d $out/START* | grep -v ${startScript} | xargs rm -rf
+ ls -1d $out/bin/pixilang_linux* | grep -v ${linuxExecutable} | xargs rm -rf
+
+ # Start script performs relative search for resources, so it cannot be moved
+ # to bin directory
+ ln -s $out/${startScript} $out/bin/virtual-ans
+ '';
+
+ startScript = if stdenv.isx86_32 then "START_LINUX_X86"
+ else if stdenv.isx86_64 then "START_LINUX_X86_64"
+ #else if stdenv.isDarwin then "START_MACOS.app" # disabled because I cannot test on Darwin
+ else abort "Unsupported platform: ${stdenv.platform.kernelArch}.";
+
+ linuxExecutable = if stdenv.isx86_32 then "pixilang_linux_x86"
+ else if stdenv.isx86_64 then "pixilang_linux_x86_64"
+ else "";
+
+ meta = with stdenv.lib; {
+ description = "Photoelectronic microtonal/spectral musical instrument";
+ longDescription = ''
+ Virtual ANS is a software simulator of the unique Russian synthesizer ANS
+ - photoelectronic musical instrument created by Evgeny Murzin from 1938 to
+ 1958. The ANS made it possible to draw music in the form of a spectrogram
+ (sonogram), without live instruments and performers. It was used by
+ Stanislav Kreichi, Alfred Schnittke, Edward Artemiev and other Soviet
+ composers in their experimental works. You can also hear the sound of the
+ ANS in Andrei Tarkovsky's movies Solaris, The Mirror, Stalker.
+
+ The simulator extends the capabilities of the original instrument. Now
+ it's a full-featured graphics editor where you can convert sound into an
+ image, load and play pictures, draw microtonal/spectral music and create
+ some unusual deep atmospheric sounds. This app is for everyone who loves
+ experiments and is looking for something new.
+
+ Key features:
+
+ + unlimited number of pure tone generators;
+ + powerful sonogram editor - you can draw the spectrum and play it at the same time;
+ + any sound (from a WAV file or a Microphone/Line-in) can be converted to image (sonogram) and vice versa;
+ + support for MIDI devices;
+ + polyphonic synth mode with MIDI mapping;
+ + supported file formats: WAV, AIFF, PNG, JPEG, GIF;
+ + supported sound systems: ASIO, DirectSound, MME, ALSA, OSS, JACK, Audiobus, IAA.
+ '';
+ homepage = "https://warmplace.ru/soft/ans/";
+ license = licenses.free;
+ # I cannot test the Darwin version, so I'll leave it disabled
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = with maintainers; [ jacg ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/vkeybd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
new file mode 100644
index 000000000000..0e8f12823d1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, alsaLib, libX11, makeWrapper, tcl, tk }:
+
+stdenv.mkDerivation rec {
+ pname = "vkeybd";
+ version = "0.1.18d";
+
+ src = fetchurl {
+ url = "ftp://ftp.suse.com/pub/people/tiwai/vkeybd/${pname}-${version}.tar.bz2";
+ sha256 = "0107b5j1gf7dwp7qb4w2snj4bqiyps53d66qzl2rwj4jfpakws5a";
+ };
+
+ buildInputs = [ alsaLib libX11 makeWrapper tcl tk ];
+
+ configurePhase = ''
+ mkdir -p $out/bin
+ sed -e "s@/usr/local@$out@" -i Makefile
+ '';
+
+ makeFlags = [ "TKLIB=-l${tk.libPrefix}" "TCLLIB=-l${tcl.libPrefix}" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/vkeybd --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Virtual MIDI keyboard";
+ homepage = "https://www.alsa-project.org/~tiwai/alsa.html";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/vmpk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/vmpk/default.nix
new file mode 100644
index 000000000000..dfae5d40e114
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/vmpk/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, lib, fetchurl, cmake, pkg-config
+, qttools, qtx11extras, drumstick
+, docbook-xsl-nons
+}:
+
+mkDerivation rec {
+ pname = "vmpk";
+ version = "0.7.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "5oLrjQADg59Mxpb0CNLQAE574IOSYLDLJNaQ/9q2cMQ=";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config qttools docbook-xsl-nons ];
+
+ buildInputs = [ qtx11extras drumstick ];
+
+ meta = with lib; {
+ description = "Virtual MIDI Piano Keyboard";
+ homepage = "http://vmpk.sourceforge.net/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/vocal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/vocal/default.nix
new file mode 100644
index 000000000000..b519003a9ec9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/vocal/default.nix
@@ -0,0 +1,81 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, cmake
+, ninja
+, vala
+, pkgconfig
+, pantheon
+, gtk3
+, glib
+, glib-networking
+, libxml2
+, webkitgtk
+, clutter-gtk
+, clutter-gst
+, libunity
+, libnotify
+, sqlite
+, gst_all_1
+, json-glib
+, libgee
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "vocal";
+ version = "2.4.2";
+
+ src = fetchFromGitHub {
+ owner = "needle-and-thread";
+ repo = pname;
+ rev = version;
+ sha256 = "1c4n89rdl9r13kmmh2qymmy9sa6shjwai7df48k2kfn0pnzq5mad";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ libxml2
+ ninja
+ vala
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = with gst_all_1; [
+ clutter-gst
+ clutter-gtk
+ glib
+ gst-plugins-base
+ gst-plugins-good
+ gstreamer
+ gtk3
+ json-glib
+ libgee
+ libnotify
+ libunity
+ pantheon.elementary-icon-theme
+ pantheon.granite
+ sqlite
+ webkitgtk
+ glib-networking
+ ];
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+
+ meta = with stdenv.lib; {
+ description = "The podcast client for the modern free desktop";
+ longDescription = ''
+ Vocal is a powerful, fast, and intuitive application that helps users find new podcasts, manage their libraries, and enjoy the best that indepedent audio and video publishing has to offer. Vocal features full support for both episode downloading and streaming, native system integration, iTunes store search and top 100 charts (with international results support), iTunes link parsing, OPML importing and exporting, and so much more. Plus, it has great smart features like automatically keeping your library clean from old files, and the ability to set custom skip intervals.
+ '';
+ homepage = "https://github.com/needle-and-thread/vocal";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/vocproc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/vocproc/default.nix
new file mode 100644
index 000000000000..ddaa5b790e27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/vocproc/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip, pkgconfig, lvtk, lv2, fftw, lv2-cpp-tools, gtkmm2 }:
+
+stdenv.mkDerivation rec {
+ pname = "vocproc";
+ version = "0.2.1";
+
+ src = fetchzip {
+ url = "https://hyperglitch.com/files/vocproc/${pname}-${version}.default.tar.gz";
+ sha256 = "07a1scyz14mg2jdbw6fpv4qg91zsw61qqii64n9qbnny9d5pn8n2";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ lv2 fftw lv2-cpp-tools gtkmm2 ];
+
+ makeFlags = [
+ "INSTALL_DIR=$(out)/lib/lv2"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://hyperglitch.com/dev/VocProc";
+ description = "An LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice (harmonizer)";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.michalrus ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/vorbis-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/vorbis-tools/default.nix
new file mode 100644
index 000000000000..2270e56e62ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/vorbis-tools/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, fetchzip, libogg, libvorbis, libao, pkgconfig, curl
+, speex, flac }:
+
+let
+ debPatch = fetchzip {
+ url = "mirror://debian/pool/main/v/vorbis-tools/vorbis-tools_1.4.0-11.debian.tar.xz";
+ sha256 = "0kvmd5nslyqplkdb7pnmqj47ir3y5lmaxd12wmrnqh679a8jhcyi";
+ };
+in
+stdenv.mkDerivation {
+ name = "vorbis-tools-1.4.0";
+ src = fetchurl {
+ url = "http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.0.tar.gz";
+ sha256 = "1g12bnh5ah08v529y72kfdz5lhvy75iaz7f9jskyby23m9dkk2d3";
+ };
+
+ postPatch = ''
+ for patch in $(ls "${debPatch}"/patches/*.{diff,patch} | grep -v debian_subdir)
+ do patch -p1 < "$patch"
+ done
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libogg libvorbis libao curl speex flac ];
+
+ meta = with stdenv.lib; {
+ description = "Extra tools for Ogg-Vorbis audio codec";
+ longDescription = ''
+ A set of command-line tools to manipulate Ogg Vorbis audio
+ files, notably the `ogg123' player and the `oggenc' encoder.
+ '';
+ homepage = "https://xiph.org/vorbis/";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/waon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/waon/default.nix
new file mode 100644
index 000000000000..bc05547e641d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/waon/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, fftw, gtk2, libao, libsamplerate
+, libsndfile, ncurses, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ pname = "waon";
+ version = "0.11";
+
+ src = fetchFromGitHub {
+ owner = "kichiki";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1xmq8d2rj58xbp4rnyav95y1vnz3r9s9db7xxfa2rd0ilq0ps4y7";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ fftw gtk2 libao libsamplerate libsndfile ncurses ];
+
+ installPhase = ''
+ install -Dt $out/bin waon pv gwaon
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Wave-to-Notes transcriber";
+ homepage = "https://kichiki.github.io/WaoN/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.puckipedia ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/wavegain/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/wavegain/default.nix
new file mode 100644
index 000000000000..d9b13f532735
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/wavegain/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ name = "wavegain-1.3.1";
+ src = fetchFromGitHub {
+ owner = "MestreLion";
+ repo = "wavegain";
+ rev = "c928eaf97aeec5732625491b64c882e08e314fee";
+ sha256 = "0wghqnsbypmr4xcrhb568bfjdnxzzp8qgnws3jslzmzf34dpk5ls";
+ };
+
+ installPhase = ''
+ strip -s wavegain
+ install -vD wavegain "$out/bin/wavegain"
+ '';
+
+ meta = {
+ description = "ReplayGain for wave files";
+ homepage = "https://github.com/MestreLion/wavegain";
+ license = stdenv.lib.licenses.lgpl21;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.robbinch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/whipper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/whipper/default.nix
new file mode 100644
index 000000000000..3ff1368c9432
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/whipper/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, python3, cdparanoia, cdrdao, flac
+, sox, accuraterip-checksum, libsndfile, util-linux, substituteAll }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "whipper";
+ version = "0.9.1.dev7+g${stdenv.lib.substring 0 7 src.rev}";
+
+ src = fetchFromGitHub {
+ owner = "whipper-team";
+ repo = "whipper";
+ rev = "9e95f0604fa30ab06445fe46e3bc93bba6092a05";
+ sha256 = "1c2qldw9vxpvdfh5wl6mfcd7zzz3v8r86ffqll311lcp2zin33dg";
+ };
+
+ pythonPath = with python3.pkgs; [
+ musicbrainzngs
+ mutagen
+ pycdio
+ pygobject3
+ requests
+ ruamel_yaml
+ setuptools
+ setuptools_scm
+ ];
+
+ buildInputs = [ libsndfile ];
+
+ checkInputs = with python3.pkgs; [
+ twisted
+ ];
+
+ patches = [
+ (substituteAll {
+ src = ./paths.patch;
+ inherit cdparanoia;
+ })
+ ];
+
+ makeWrapperArgs = [
+ "--prefix" "PATH" ":" (stdenv.lib.makeBinPath [ accuraterip-checksum cdrdao util-linux flac sox ])
+ ];
+
+ preBuild = ''
+ export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
+ '';
+
+ # some tests require internet access
+ # https://github.com/JoeLametta/whipper/issues/291
+ doCheck = false;
+
+ preCheck = ''
+ HOME=$TMPDIR
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/whipper-team/whipper";
+ description = "A CD ripper aiming for accuracy over speed";
+ maintainers = with maintainers; [ rycee emily ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/whipper/paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/whipper/paths.patch
new file mode 100644
index 000000000000..14b5384330da
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/whipper/paths.patch
@@ -0,0 +1,32 @@
+--- a/whipper/program/cdparanoia.py
++++ b/whipper/program/cdparanoia.py
+@@ -280,10 +280,10 @@
+
+ bufsize = 1024
+ if self._overread:
+- argv = ["cd-paranoia", "--stderr-progress",
++ argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
+ "--sample-offset=%d" % self._offset, "--force-overread", ]
+ else:
+- argv = ["cd-paranoia", "--stderr-progress",
++ argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
+ "--sample-offset=%d" % self._offset, ]
+ if self._device:
+ argv.extend(["--force-cdrom-device", self._device, ])
+@@ -560,7 +560,7 @@
+
+ def getCdParanoiaVersion():
+ getter = common.VersionGetter('cd-paranoia',
+- ["cd-paranoia", "-V"],
++ ["@cdparanoia@/bin/cdparanoia", "-V"],
+ _VERSION_RE,
+ "%(version)s %(release)s")
+
+@@ -585,7 +585,7 @@
+ def __init__(self, device=None):
+ # cdparanoia -A *always* writes cdparanoia.log
+ self.cwd = tempfile.mkdtemp(suffix='.whipper.cache')
+- self.command = ['cd-paranoia', '-A']
++ self.command = ['@cdparanoia@/bin/cdparanoia', '-A']
+ if device:
+ self.command += ['-d', device]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/wolf-shaper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/wolf-shaper/default.nix
new file mode 100644
index 000000000000..ca16d60bea88
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/wolf-shaper/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub , libjack2, lv2, xorg, liblo, libGL, libXcursor, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "wolf-shaper";
+ version = "0.1.8";
+
+ src = fetchFromGitHub {
+ owner = "pdesaulniers";
+ repo = "wolf-shaper";
+ rev = "v${version}";
+ sha256 = "1j9xmh1nkf45ay1c5dz2g165qvrwlanzcq6mvb3nfxar265drd9q";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libjack2 lv2 xorg.libX11 liblo libGL libXcursor ];
+
+ makeFlags = [
+ "BUILD_LV2=true"
+ "BUILD_DSSI=true"
+ "BUILD_VST2=true"
+ "BUILD_JACK=true"
+ ];
+
+ patchPhase = ''
+ patchShebangs ./dpf/utils/generate-ttl.sh
+ '';
+
+ installPhase = ''
+ mkdir -p $out/lib/lv2
+ mkdir -p $out/lib/dssi
+ mkdir -p $out/lib/vst
+ mkdir -p $out/bin/
+ cp -r bin/wolf-shaper.lv2 $out/lib/lv2/
+ cp -r bin/wolf-shaper-dssi* $out/lib/dssi/
+ cp -r bin/wolf-shaper-vst.so $out/lib/vst/
+ cp -r bin/wolf-shaper $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://pdesaulniers.github.io/wolf-shaper/";
+ description = "Waveshaper plugin with spline-based graph editor";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/x42-avldrums/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/x42-avldrums/default.nix
new file mode 100644
index 000000000000..fb05a50b4e59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/x42-avldrums/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cairo, glib, libGLU, lv2, pango }:
+
+stdenv.mkDerivation rec {
+ pname = "x42-avldrums";
+ version = "0.4.1";
+
+ src = fetchFromGitHub {
+ owner = "x42";
+ repo = "avldrums.lv2";
+ rev = "v${version}";
+ sha256 = "1vwdp3d8qzd493qa99ddya7iql67bbfxmbcl8hk96lxif2lhmyws";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ cairo glib libGLU lv2 pango ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Drum sample player LV2 plugin dedicated to Glen MacArthur's AVLdrums";
+ homepage = "https://x42-plugins.com/x42/x42-avldrums";
+ maintainers = with maintainers; [ magnetophon orivej ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/x42-gmsynth/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/x42-gmsynth/default.nix
new file mode 100644
index 000000000000..7a96e3fd4f2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/x42-gmsynth/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pkgconfig, glib, lv2 }:
+
+stdenv.mkDerivation rec {
+ pname = "x42-gmsynth";
+ version = "0.4.1";
+
+ src = fetchFromGitHub {
+ owner = "x42";
+ repo = "gmsynth.lv2";
+ rev = "v${version}";
+ sha256 = "08dvdj8r17sfl6l18g2b8abgls2irkbrq5vhrfai01hp2m0rlm34";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib lv2 ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Chris Colins' General User soundfont player LV2 plugin";
+ homepage = "https://x42-plugins.com/x42/x42-gmsynth";
+ maintainers = with maintainers; [ orivej ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
new file mode 100644
index 000000000000..d3726eab7ffc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig
+, libltc, libsndfile, libsamplerate, ftgl, freefont_ttf, libjack2
+, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
+
+stdenv.mkDerivation rec {
+ version = "20200714";
+ pname = "x42-plugins";
+
+ src = fetchurl {
+ url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
+ sha256 = "1av05ykph8x67018hm9zfgh1vk0zi39mvrsxkj6bm4hkarxf0vvl";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libGLU ftgl freefont_ttf libjack2 libltc libsndfile libsamplerate lv2 gtk2 cairo pango fftwFloat zita-convolver ];
+
+ # Don't remove this. The default fails with 'do not know how to unpack source archive'
+ # every now and then on Hydra. No idea why.
+ unpackPhase = ''
+ tar xf $src
+ sourceRoot=$(echo x42-plugins-*)
+ chmod -R u+w $sourceRoot
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" "FONTFILE=${freefont_ttf}/share/fonts/truetype/FreeSansBold.ttf" ];
+
+ patchPhase = ''
+ patchShebangs ./stepseq.lv2/gridgen.sh
+ patchShebangs ./matrixmixer.lv2/genttl.sh
+ patchShebangs ./matrixmixer.lv2/genhead.sh
+ sed -i 's|/usr/include/zita-convolver.h|${zita-convolver}/include/zita-convolver.h|g' ./convoLV2/Makefile
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Collection of LV2 plugins by Robin Gareus";
+ homepage = "https://github.com/x42/x42-plugins";
+ maintainers = with maintainers; [ magnetophon ];
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/xmp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/xmp/default.nix
new file mode 100644
index 000000000000..d234f6b6b8cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/xmp/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, alsaLib, libxmp }:
+
+stdenv.mkDerivation rec {
+ name = "xmp-4.1.0";
+
+ meta = with stdenv.lib; {
+ description = "Extended module player";
+ homepage = "http://xmp.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xmp/xmp/${name}.tar.gz";
+ sha256 = "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ alsaLib libxmp ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
new file mode 100644
index 000000000000..c0803ffa4185
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, alsaLib, autoconf, automake, dssi, gtk2, libjack2,
+ladspaH, ladspaPlugins, liblo, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "xsynth-dssi";
+ version = "0.9.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/dssi/${pname}-${version}.tar.gz";
+ sha256 = "00nwv2pqjbmxqdc6xdm0cljq6z05lv4y6bibmhz1kih9lm0lklnk";
+ };
+
+ buildInputs = [ alsaLib autoconf automake dssi gtk2 libjack2 ladspaH
+ ladspaPlugins liblo pkgconfig ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/lib
+ cp src/Xsynth_gtk $out/bin
+ cp src/.libs/* $out/lib
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Classic-analog (VCOs-VCF-VCA) style software synthesizer";
+ longDescription = ''
+ Xsynth-DSSI is a classic-analog (VCOs-VCF-VCA) style software
+ synthesizer which operates as a plugin for the DSSI Soft Synth
+ Interface. DSSI is a plugin API for software instruments (soft
+ synths) with user interfaces, permitting them to be hosted
+ in-process by audio applications.
+ '';
+ homepage = "http://dssi.sourceforge.net/download.html#Xsynth-DSSI";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/xtuner/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/xtuner/default.nix
new file mode 100644
index 000000000000..57ce3ab15114
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/xtuner/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, cairo
+, libX11
+, libjack2
+, liblo
+, libsigcxx
+, zita-resampler
+, fftwFloat
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xtuner";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "brummer10";
+ repo = "XTuner";
+ rev = "v${version}";
+ sha256 = "1i5chfnf3hcivwzni9z6cn9pb68qmwsx8bf4z7d29a5vig8kbhrv";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ cairo libX11 libjack2 liblo libsigcxx zita-resampler fftwFloat ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/brummer10/XTuner";
+ description = "Tuner for Jack Audio Connection Kit";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch
new file mode 100644
index 000000000000..f575af5ecd31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch
@@ -0,0 +1,25 @@
+Disable openpty() and forkpty() prototypes when needed.
+--- a/yasr/yasr.h
++++ b/yasr/yasr.h
+@@ -308,8 +308,10 @@ extern void opt_set(int num, void *val);
+ extern void opt_queue_empty(int ll);
+ extern void opt_write(FILE * fp);
+
++#ifndef HAVE_OPENPTY
+ /* openpty.c prototypes */
+ extern int openpty(int *, int *, char *, struct termios *, struct winsize *);
++#endif
+
+ /* cfmakeraw.c prototypes */
+ extern void cfmakeraw(struct termios *);
+@@ -317,8 +319,10 @@ extern void cfmakeraw(struct termios *);
+ /* login_tty.c prototypes */
+ extern int login_tty(int);
+
++#ifndef HAVE_FORKPTY
+ /* forkpty.c prototypes */
+ extern int forkpty(int *, char *, struct termios *, struct winsize *);
++#endif
+
+ /* tbc - Would it be more efficient to ensure that "blank" grids always held
+ ascii 0x20 rather than ascii 0x00? */
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen.patch
new file mode 100644
index 000000000000..386c6cbf22bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen.patch
@@ -0,0 +1,11 @@
+--- a/yasr/config.c.orig 2011-11-28 03:56:58.764995828 +0100
++++ a/yasr/config.c 2011-11-28 03:57:00.048967703 +0100
+@@ -60,7 +60,7 @@
+ int args, arg[16], *argp;
+ int i, key, ln = 0, mode = 0;
+ char *home, *ptr, *s;
+- char confname[MAXPATHLEN];
++ char confname[strlen(PACKAGE_DATA_DIR) + 10 + 1];
+
+ if ((home = getenv("HOME")) != NULL)
+ {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/30_conf.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/30_conf.patch
new file mode 100644
index 000000000000..98e959f55f31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/30_conf.patch
@@ -0,0 +1,18 @@
+diff --git a/yasr.conf b/yasr.conf
+index 1e07fc6..72f5922 100644
+--- a/yasr.conf
++++ b/yasr.conf
+@@ -59,11 +59,11 @@ synthesizer=emacspeak server
+ #synthesizer=speech dispatcher
+ #synthesizer port=S0
+ #synthesizer port=l0
+-synthesizer port=|/usr/local/bin/eflite
++synthesizer port=|eflite
+ # Below line appropriate for Speech Dispatcher in its default configuration
+ #synthesizer port=127.0.0.1:6560
+ key echo=off
+-shell=/bin/bash
++shell=/bin/sh
+ special=off
+ up and down arrows=speak line
+ DisableKey=6925
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch
new file mode 100644
index 000000000000..cc1f0af86065
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch
@@ -0,0 +1,14 @@
+Index: yasr-0.6.9/yasr/tts.c
+===================================================================
+--- yasr-0.6.9.orig/yasr/tts.c 2008-02-03 00:10:07.000000000 +1100
++++ yasr-0.6.9/yasr/tts.c 2012-02-05 10:59:06.059007839 +1100
+@@ -281,6 +281,9 @@
+ char *p = synth[tts.synth].unspeakable;
+
+ if (ch < 32) return 1;
++ /* characters with high bit set cause DECTALK to crash */
++ if (tts.synth == TTS_DECTALK && ch & 0x80)
++ return 1;
+ while (*p)
+ {
+ if (*p++ == ch) return 1;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/default.nix
new file mode 100644
index 000000000000..fed2ee0d8f75
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/yasr/default.nix
@@ -0,0 +1,28 @@
+{stdenv,fetchurl}:
+
+stdenv.mkDerivation rec {
+ pname = "yasr";
+
+ version = "0.6.9";
+
+ src = fetchurl {
+ url = "https://sourceforge.net/projects/yasr/files/yasr/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1prv9r9y6jb5ga5578ldiw507fa414m60xhlvjl29278p3x7rwa1";
+ };
+
+ patches = [
+ ./10_fix_openpty_forkpty_declarations.patch
+ ./20_maxpathlen.patch
+ ./30_conf.patch
+ ./40_dectalk_extended_chars.patch
+ ]; # taken from the debian yasr package
+
+ meta = {
+ homepage = "http://yasr.sourceforge.net";
+ description = "A general-purpose console screen reader";
+ longDescription = "Yasr is a general-purpose console screen reader for GNU/Linux and other Unix-like operating systems.";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ jhhuh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/ympd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/ympd/default.nix
new file mode 100644
index 000000000000..8f86d6e7ba93
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/ympd/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, mpd_clientlib, openssl }:
+
+stdenv.mkDerivation rec {
+ pname = "ympd";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "notandy";
+ repo = "ympd";
+ rev = "v${version}";
+ sha256 = "1nvb19jd556v2h2bi7w4dcl507p3p8xvjkqfzrcsy7ccy3502brq";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ cmake mpd_clientlib openssl ];
+
+ meta = {
+ homepage = "https://www.ympd.org";
+ description = "Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS";
+ maintainers = [ stdenv.lib.maintainers.siddharthist ];
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/yoshimi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
new file mode 100644
index 000000000000..2b0a89bbaf5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub , alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk, pcre
+, libjack2, libsndfile, libXdmcp, readline, lv2, libGLU, libGL, minixml, pkgconfig, zlib, xorg
+}:
+
+assert stdenv ? glibc;
+
+stdenv.mkDerivation rec {
+ pname = "yoshimi";
+ # Fix build with lv2 1.18: https://github.com/Yoshimi/yoshimi/pull/102/commits/86996cbb235f0fe138ae814a6758c2c8ba1c2a38
+ version = "unstable-2020-05-10";
+
+ src = fetchFromGitHub {
+ owner = "Yoshimi";
+ repo = pname;
+ rev = "86996cbb235f0fe138ae814a6758c2c8ba1c2a38";
+ sha256 = "0bgcc5fbgwpdjircq00wlii30pakf45yzligpbnf02a554hh4j01";
+ };
+ buildInputs = [
+ alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU libGL
+ minixml zlib xorg.libpthreadstubs pcre
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ patchPhase = ''
+ substituteInPlace src/Misc/Config.cpp --replace /usr $out
+ substituteInPlace src/Misc/Bank.cpp --replace /usr $out
+ '';
+
+ preConfigure = "cd src";
+
+ cmakeFlags = [ "-DFLTK_MATH_LIBRARY=${stdenv.glibc.out}/lib/libm.so" ];
+
+ meta = with stdenv.lib; {
+ description = "High quality software synthesizer based on ZynAddSubFX";
+ longDescription = ''
+ Yoshimi delivers the same synthesizer capabilities as
+ ZynAddSubFX along with very good Jack and Alsa midi/audio
+ functionality on Linux
+ '';
+ homepage = "http://yoshimi.sourceforge.net";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix
new file mode 100644
index 000000000000..edcc70f9912f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, boost, libX11, libGL, liblo, libjack2, ladspaH, lv2, pkgconfig, rubberband, libsndfile, fftwFloat, libsamplerate }:
+
+stdenv.mkDerivation rec {
+ pname = "zam-plugins";
+ version = "3.13";
+
+ src = fetchFromGitHub {
+ owner = "zamaudio";
+ repo = pname;
+ rev = version;
+ sha256 = "02blg0iqich4vx5z1ahj6avkh83yqszdiq83p9jd5qwm0i4llqjq";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ boost libX11 libGL liblo libjack2 ladspaH lv2 rubberband libsndfile fftwFloat libsamplerate ];
+
+ postPatch = ''
+ patchShebangs ./dpf/utils/generate-ttl.sh
+ '';
+
+ makeFlags = [
+ "PREFIX=${placeholder ''out''}"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.zamaudio.com/?p=976";
+ description = "A collection of LV2/LADSPA/VST/JACK audio plugins by ZamAudio";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/zita-ajbridge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/zita-ajbridge/default.nix
new file mode 100644
index 000000000000..ad2ea53e9f7e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/zita-ajbridge/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, alsaLib, libjack2, zita-alsa-pcmi, zita-resampler }:
+
+stdenv.mkDerivation rec {
+ name = "zita-ajbridge-0.8.4";
+
+ src = fetchurl {
+ url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
+ sha256 = "0g5v0l0zmqh049mhv62n8s5bpm0yrlby7mkxxhs5qwadp8v4w9mw";
+ };
+
+ buildInputs = [ alsaLib libjack2 zita-alsa-pcmi zita-resampler ];
+
+ preConfigure = ''
+ cd ./source/
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "MANDIR=$(out)/share/man/man1"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Connect additional ALSA devices to JACK";
+ homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/zita-at1/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/zita-at1/default.nix
new file mode 100644
index 000000000000..d357febd882e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/zita-at1/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl
+, cairo, fftwSinglePrec, libX11, libXft, libclthreads, libclxclient, libjack2
+, xorgproto, zita-resampler
+}:
+
+stdenv.mkDerivation rec {
+ name = "zita-at1-0.6.2";
+
+ src = fetchurl {
+ url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
+ sha256 = "0mxfn61zvhlq3r1mqipyqzjbanrfdkk8x4nxbz8nlbdk0bf3vfqr";
+ };
+
+ buildInputs = [
+ cairo fftwSinglePrec libX11 libXft libclthreads libclxclient libjack2
+ xorgproto zita-resampler
+ ];
+
+ preConfigure = ''
+ cd ./source/
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Autotuner Jack application to correct the pitch of vocal tracks";
+ homepage = "https://kokkinizita.linuxaudio.org/linuxaudio/index.html";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/zita-njbridge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/zita-njbridge/default.nix
new file mode 100644
index 000000000000..3a293cfc026f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/zita-njbridge/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, libjack2, zita-resampler }:
+
+stdenv.mkDerivation rec {
+ version = "0.4.4";
+ pname = "zita-njbridge";
+
+ src = fetchurl {
+ url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "1l8rszdjhp0gq7mr54sdgfs6y6cmw11ssmqb1v9yrkrz5rmwzg8j";
+ };
+
+ buildInputs = [ libjack2 zita-resampler ];
+
+ preConfigure = ''
+ cd ./source/
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "MANDIR=$(out)"
+ "SUFFIX=''"
+ ];
+
+
+ meta = with stdenv.lib; {
+ description = "command line Jack clients to transmit full quality multichannel audio over a local IP network";
+ homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
new file mode 100644
index 000000000000..9a432f73d3f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, alsaLib, cairo, cmake, libjack2, fftw, fltk13, lash, libjpeg
+, libXpm, minixml, ntk, pkgconfig, zlib, liblo
+}:
+
+stdenv.mkDerivation rec {
+ pname = "zynaddsubfx";
+ version = "3.0.5";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/zynaddsubfx/zynaddsubfx-${version}.tar.bz2";
+ sha256 = "0qwzg14h043rmyf9jqdylxhyfy4sl0vsr0gjql51wjhid0i34ivl";
+ };
+
+ buildInputs = [ alsaLib cairo libjack2 fftw fltk13 lash libjpeg libXpm minixml ntk zlib liblo ];
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ patchPhase = ''
+ substituteInPlace src/Misc/Config.cpp --replace /usr $out
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "High quality software synthesizer";
+ homepage = "http://zynaddsubfx.sourceforge.net";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu maintainers.nico202 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/backup/areca/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/backup/areca/default.nix
new file mode 100644
index 000000000000..b4d644430dd1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/backup/areca/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, ant, jre, jdk, swt, acl, attr }:
+
+stdenv.mkDerivation {
+ name = "areca-7.5";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/areca/areca-stable/areca-7.5/areca-7.5-src.tar.gz";
+ sha256 = "1q4ha9s96c1syplxm04bh1v1gvjq16l4pa8w25w95d2ywwvyq1xb";
+ };
+
+ sourceRoot = ".";
+
+ buildInputs = [ jdk ant acl attr ];
+
+ patches = [ ./fix-javah-bug.diff ];
+
+ postPatch = ''
+ substituteInPlace build.xml --replace "/usr/lib/java/swt.jar" "${swt}/jars/swt.jar"
+ substituteInPlace build.xml --replace "gcc" "${stdenv.cc}/bin/gcc"
+ substituteInPlace areca.sh --replace "bin/" ""
+ substituteInPlace bin/areca_run.sh --replace "/usr/java" "${jre}/lib/openjdk"
+ substituteInPlace bin/areca_run.sh --replace "/usr/lib/java/swt.jar" "${swt}/jars/swt.jar"
+
+ # Fix for NixOS/nixpkgs/issues/53716
+ sed -i -e 's;^;#include <attr/attributes.h>;' jni/com_myJava_file_metadata_posix_jni_wrapper_FileAccessWrapper.c
+ substituteInPlace jni/com_myJava_file_metadata_posix_jni_wrapper_FileAccessWrapper.c --replace attr/xattr.h sys/xattr.h
+
+ sed -i "s#^PROGRAM_DIR.*#PROGRAM_DIR=$out#g" bin/areca_run.sh
+ sed -i "s#^LIBRARY_PATH.*#LIBRARY_PATH=$out/lib:${stdenv.lib.makeLibraryPath [ swt acl ]}#g" bin/areca_run.sh
+
+ # https://sourceforge.net/p/areca/bugs/563/
+ substituteInPlace bin/areca_run.sh --replace '[ "$JAVA_IMPL" = "java" ]' \
+ '[[ "$JAVA_IMPL" = "java" || "$JAVA_IMPL" = "openjdk" ]]'
+ '';
+
+ buildPhase = "ant";
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib $out/translations
+ cp areca.sh $out/bin/areca
+ cp -r bin $out
+ cp -r lib $out
+ cp -r translations $out
+ cp COPYING $out
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.areca-backup.org/";
+ description = "An Open Source personal backup solution";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pSub ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff b/infra/libkookie/nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff
new file mode 100644
index 000000000000..5d5feaf9b943
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff
@@ -0,0 +1,24 @@
+diff --git a/build.xml b/build.xml
+index 1ba08e0..9248b76 100644
+--- a/build.xml
++++ b/build.xml
+@@ -56,10 +56,16 @@
+
+ <target name="compilejni" unless="isWindows">
+ <description>JNI compilation task (builds libarecafs.so ... for unix-like operating systems only)</description>
++
+ <!--Generate the JNI header-->
+- <javah destdir="${root}/jni" force="yes" classpath="${root}/lib/areca.jar">
+- <class name="com.myJava.file.metadata.posix.jni.wrapper.FileAccessWrapper"/>
+- </javah>
++ <exec executable="javah">
++ <arg value="-d"/>
++ <arg value="${root}/jni"/>
++ <arg value="-force"/>
++ <arg value="-classpath"/>
++ <arg value="${root}/lib/areca.jar"/>
++ <arg value="com.myJava.file.metadata.posix.jni.wrapper.FileAccessWrapper"/>
++ </exec>
+
+ <!-- Compile the JNI code -->
+ <exec dir="${root}/jni" executable="gcc">
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/backup/deja-dup/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
new file mode 100644
index 000000000000..d6ce864d6523
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, fetchFromGitLab
+, substituteAll
+, meson
+, ninja
+, pkg-config
+, vala
+, gettext
+, itstool
+, glib
+, gtk3
+, coreutils
+, libsoup
+, libsecret
+, libhandy_0
+, wrapGAppsHook
+, libgpgerror
+, json-glib
+, duplicity
+}:
+
+stdenv.mkDerivation rec {
+ pname = "deja-dup";
+ version = "42.6";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "World";
+ repo = pname;
+ rev = version;
+ sha256 = "0grwlfakrnr9ij7h8lsfazlws6qix8pl50dr94cpxnnbjga9xn9z";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ inherit coreutils;
+ })
+ ];
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ vala
+ gettext
+ itstool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ libsoup
+ glib
+ gtk3
+ libsecret
+ libhandy_0
+ libgpgerror
+ json-glib
+ ];
+
+ mesonFlags = [
+ "-Dduplicity_command=${duplicity}/bin/duplicity"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A simple backup tool";
+ longDescription = ''
+ Déjà Dup is a simple backup tool. It hides the complexity \
+ of backing up the Right Way (encrypted, off-site, and regular) \
+ and uses duplicity as the backend.
+ '';
+ homepage = "https://wiki.gnome.org/Apps/DejaDup";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch
new file mode 100644
index 000000000000..26126fdc9d56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/libdeja/tools/duplicity/DuplicityInstance.vala
++++ b/libdeja/tools/duplicity/DuplicityInstance.vala
+@@ -159,7 +159,7 @@
+ // We already are pretty sure we don't have other duplicities in our
+ // archive directories, because we use our own and we ensure we only have
+ // one deja-dup running at a time via DBus.
+- Posix.system("/bin/rm -f " + Shell.quote(cache_dir) + "/*/lockfile.lock");
++ Posix.system("@coreutils@/bin/rm -f " + Shell.quote(cache_dir) + "/*/lockfile.lock");
+
+ Process.spawn_async_with_pipes(null, real_argv, real_envp,
+ SpawnFlags.SEARCH_PATH |
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/backup/vdmfec/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/backup/vdmfec/default.nix
new file mode 100644
index 000000000000..1366bb484a91
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/backup/vdmfec/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "vdmfec";
+ version = "1.0";
+
+ src = fetchurl {
+ url = "http://members.tripod.com/professor_tom/archives/${pname}-${version}.tgz";
+ sha256 = "0i7q4ylx2xmzzq778anpkj4nqir5gf573n1lbpxnbc10ymsjq2rm";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A program that adds error correction blocks";
+ homepage = "http://members.tripod.com/professor_tom/archives/index.html";
+ maintainers = [ maintainers.ar1a ];
+ license = with licenses; [ gpl2 /* for vdmfec */ bsd2 /* for fec */ ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/backup/vorta/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/backup/vorta/default.nix
new file mode 100644
index 000000000000..fc7e6c0fc359
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/backup/vorta/default.nix
@@ -0,0 +1,42 @@
+{ buildPythonApplication, fetchFromGitHub, lib, paramiko, peewee, pyqt5
+, python-dateutil, APScheduler, psutil, qdarkstyle, secretstorage
+, appdirs, setuptools, qt5
+}:
+
+buildPythonApplication rec {
+ pname = "vorta";
+ version = "0.7.1";
+
+ src = fetchFromGitHub {
+ owner = "borgbase";
+ repo = "vorta";
+ rev = "v${version}";
+ sha256 = "069fq5gv324l2ap3g6m6i12lhq1iqm27dsmaagyc3sva945j0gxw";
+ };
+
+ postPatch = ''
+ sed -i -e '/setuptools_git/d' -e '/pytest-runner/d' setup.cfg
+ '';
+
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+
+ propagatedBuildInputs = [
+ paramiko peewee pyqt5 python-dateutil APScheduler psutil qdarkstyle
+ secretstorage appdirs setuptools
+ ];
+
+ # QT setup in tests broken.
+ doCheck = false;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+
+ meta = with lib; {
+ license = licenses.gpl3;
+ homepage = "https://vorta.borgbase.com/";
+ maintainers = with maintainers; [ ma27 ];
+ description = "Desktop Backup Client for Borg";
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/aeon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/aeon/default.nix
new file mode 100644
index 000000000000..5e0c25466ebe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/aeon/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, git, doxygen, graphviz
+, boost, miniupnpc, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium
+}:
+
+let
+ version = "0.13.0.0";
+in
+stdenv.mkDerivation {
+ pname = "aeon";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "aeonix";
+ repo = "aeon";
+ rev = "v${version}-aeon";
+ fetchSubmodules = true;
+ sha256 = "07d87n1j4dc9gfwj6xy5jdpryn45095xdh961g6xjnjzc5fivjch";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig git doxygen graphviz ];
+
+ buildInputs = [
+ boost miniupnpc openssl unbound
+ cppzmq zeromq pcsclite readline libsodium
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DBUILD_GUI_DEPS=ON"
+ "-DReadline_ROOT_DIR=${readline.dev}"
+ ];
+
+ hardeningDisable = [ "fortify" ];
+
+ meta = with stdenv.lib; {
+ description = "Private, secure, untraceable currency";
+ homepage = "http://www.aeon.cash/";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.aij ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix
new file mode 100644
index 000000000000..81825d3d5b02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix
@@ -0,0 +1,52 @@
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, openssl, db53, boost
+, zlib, miniupnpc, qtbase ? null , qttools ? null, util-linux, protobuf, qrencode, libevent
+, withGui, python3, jemalloc, zeromq4 }:
+
+with stdenv.lib;
+
+mkDerivation rec {
+
+ name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
+ version = "0.21.13";
+
+ src = fetchFromGitHub {
+ owner = "bitcoin-ABC";
+ repo = "bitcoin-abc";
+ rev = "v${version}";
+ sha256 = "1x8xcdi1vcskggk9bqkwr3ah4vi9b7sj2h8hf7spac6dvz8lmzav";
+ };
+
+ patches = [ ./fix-bitcoin-qt-build.patch ];
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [ openssl db53 boost zlib python3 jemalloc zeromq4
+ miniupnpc util-linux protobuf libevent ]
+ ++ optionals withGui [ qtbase qttools qrencode ];
+
+ cmakeFlags = optionals (!withGui) [
+ "-DBUILD_BITCOIN_QT=OFF"
+ ];
+
+ # many of the generated scripts lack execute permissions
+ postConfigure = ''
+ find ./. -type f -iname "*.sh" -exec chmod +x {} \;
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Peer-to-peer electronic cash system (Cash client)";
+ longDescription= ''
+ Bitcoin ABC is the name of open source software which enables the use of Bitcoin.
+ It is designed to facilite a hard fork to increase Bitcoin's block size limit.
+ "ABC" stands for "Adjustable Blocksize Cap".
+
+ Bitcoin ABC is a fork of the Bitcoin Core software project.
+ '';
+ homepage = "https://bitcoinabc.org/";
+ maintainers = with maintainers; [ lassulus ];
+ license = licenses.mit;
+ broken = stdenv.isDarwin;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix
new file mode 100644
index 000000000000..417262f6f4d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, qtbase ? null, qttools ? null, util-linux, protobuf, qrencode, libevent
+, withGui }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+ name = "bitcoin" + (toString (optional (!withGui) "d")) + "-classic-" + version;
+ version = "1.3.8";
+
+ src = fetchFromGitHub {
+ owner = "bitcoinclassic";
+ repo = "bitcoinclassic";
+ rev = "v${version}";
+ sha256 = "06ij9v7zbdnhxq9429nnxiw655cp8idldj18l7fmj94gqx07n5vh";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ openssl db48 boost zlib
+ miniupnpc util-linux protobuf libevent ]
+ ++ optionals withGui [ qtbase qttools qrencode ];
+
+ configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+ ++ optionals withGui [ "--with-gui=qt5"
+ "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Peer-to-peer electronic cash system (Classic client)";
+ longDescription= ''
+ Bitcoin is a free open source peer-to-peer electronic cash system that is
+ completely decentralized, without the need for a central server or trusted
+ parties. Users hold the crypto keys to their own money and transact directly
+ with each other, with the help of a P2P network to check for double-spending.
+
+ Bitcoin Classic stands for the original Bitcoin as Satoshi described it,
+ "A Peer-to-Peer Electronic Cash System". We are writing the software that
+ miners and users say they want. We will make sure it solves their needs, help
+ them deploy it, and gracefully upgrade the bitcoin network's capacity
+ together. The data shows that Bitcoin can grow, on-chain, to welcome many
+ more users onto our coin in a safe and distributed manner. In the future we
+ will continue to release updates that are in line with Satoshi’s whitepaper &
+ vision, and are agreed upon by the community.
+ '';
+ homepage = "https://bitcoinclassic.com/";
+ maintainers = with maintainers; [ jefdaj ];
+ license = licenses.mit;
+ broken = stdenv.isDarwin;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-gold.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-gold.nix
new file mode 100644
index 000000000000..7205e882c314
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-gold.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, fetchFromGitHub
+, openssl
+, boost
+, libevent
+, autoreconfHook
+, db4
+, pkgconfig
+, protobuf
+, hexdump
+, zeromq
+, libsodium
+, withGui
+, qtbase ? null
+, qttools ? null
+, wrapQtAppsHook ? null
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+ pname = "bitcoin" + toString (optional (!withGui) "d") + "-gold";
+ version = "0.15.2";
+
+ src = fetchFromGitHub {
+ owner = "BTCGPU";
+ repo = "BTCGPU";
+ rev = "v${version}";
+ sha256 = "0grd1cd8d2nsrxl27la85kcan09z73fn70ncr9km4iccaj5pg12h";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ hexdump
+ ] ++ optionals withGui [
+ wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ openssl
+ boost
+ libevent
+ db4
+ zeromq
+ libsodium
+ ] ++ optionals withGui [
+ qtbase
+ qttools
+ protobuf
+ ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-boost-libdir=${boost.out}/lib"
+ ] ++ optionals withGui [
+ "--with-gui=qt5"
+ "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+ ];
+
+ meta = {
+ description = "BTG is a cryptocurrency with Bitcoin fundamentals, mined on common GPUs instead of specialty ASICs";
+ homepage = "https://bitcoingold.org/";
+ license = licenses.mit;
+ maintainers = [ maintainers.mmahut ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix
new file mode 100644
index 000000000000..dd0132df4d94
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, autoreconfHook
+, db5
+, openssl
+, boost
+, zlib
+, miniupnpc
+, libevent
+, protobuf
+, util-linux
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bitcoind-knots";
+ version = "0.20.0";
+ versionDate = "20200614";
+
+ src = fetchFromGitHub {
+ owner = "bitcoinknots";
+ repo = "bitcoin";
+ rev = "v${version}.knots${versionDate}";
+ sha256 = "0c8k1154kcwz6q2803wx0zigvqaij1fi5akgfqlj3yl57jjw48jj";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ openssl db5 openssl util-linux
+ protobuf boost zlib miniupnpc libevent ];
+
+ configureFlags = [ "--with-incompatible-bdb"
+ "--with-boost-libdir=${boost.out}/lib" ];
+
+ meta = with stdenv.lib; {
+ description = "An enhanced Bitcoin node software";
+ homepage = "https://bitcoinknots.org/";
+ license = licenses.mit;
+ maintainers = [ maintainers.mmahut ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
new file mode 100644
index 000000000000..8a2b9e370f51
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, util-linux, protobuf, qrencode, libevent, python3
+, withGui, wrapQtAppsHook ? null, qtbase ? null, qttools ? null
+, Foundation, ApplicationServices, AppKit }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
+ version = "1.9.0.1";
+
+ src = fetchFromGitHub {
+ owner = "bitcoinunlimited";
+ repo = "bitcoinunlimited";
+ rev = "BCHunlimited${version}";
+ sha256 = "018a22zbvjqky0whizmgxzscmna0sh2xqgyw02yjk8qj4yi0zp8c";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook python3 ]
+ ++ optionals withGui [ wrapQtAppsHook qttools ];
+ buildInputs = [ openssl db48 boost zlib
+ miniupnpc util-linux protobuf libevent ]
+ ++ optionals withGui [ qtbase qttools qrencode ]
+ ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
+
+ configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+ ++ optionals withGui [ "--with-gui=qt5"
+ "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+ ];
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Peer-to-peer electronic cash system (Unlimited client)";
+ longDescription= ''
+ Bitcoin is a free open source peer-to-peer electronic cash system that is
+ completely decentralized, without the need for a central server or trusted
+ parties. Users hold the crypto keys to their own money and transact directly
+ with each other, with the help of a P2P network to check for double-spending.
+
+ The Bitcoin Unlimited (BU) project seeks to provide a voice to all
+ stakeholders in the Bitcoin ecosystem.
+
+ Every node operator or miner can currently choose their own blocksize limit
+ by modifying their client. Bitcoin Unlimited makes the process easier by
+ providing a configurable option for the accepted and generated blocksize via
+ a GUI menu. Bitcoin Unlimited further provides a user-configurable failsafe
+ setting allowing you to accept a block larger than your maximum accepted
+ blocksize if it reaches a certain number of blocks deep in the chain.
+
+ The Bitcoin Unlimited client is not a competitive block scaling proposal
+ like BIP-101, BIP-102, etc. Instead it tracks consensus. This means that it
+ tracks the blockchain that the hash power majority follows, irrespective of
+ blocksize, and signals its ability to accept larger blocks via protocol and
+ block versioning fields.
+
+ If you support an increase in the blocksize limit by any means - or just
+ support Bitcoin conflict resolution as originally envisioned by its founder -
+ consider running a Bitcoin Unlimited client.
+ '';
+ homepage = "https://www.bitcoinunlimited.info/";
+ maintainers = with maintainers; [ DmitryTsygankov ];
+ license = licenses.mit;
+ broken = stdenv.isDarwin;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
new file mode 100644
index 000000000000..80e935f2b1a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
@@ -0,0 +1,94 @@
+{ stdenv
+, fetchurl
+, pkgconfig
+, autoreconfHook
+, db48
+, boost
+, zeromq
+, hexdump
+, zlib
+, miniupnpc
+, qtbase ? null
+, qttools ? null
+, wrapQtAppsHook ? null
+, util-linux
+, python3
+, qrencode
+, libevent
+, withGui
+}:
+
+with stdenv.lib;
+let
+ version = "0.20.1";
+ majorMinorVersion = versions.majorMinor version;
+ desktop = fetchurl {
+ url = "https://raw.githubusercontent.com/bitcoin-core/packaging/${majorMinorVersion}/debian/bitcoin-qt.desktop";
+ sha256 = "0cpna0nxcd1dw3nnzli36nf9zj28d2g9jf5y0zl9j18lvanvniha";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = if withGui then "bitcoin" else "bitcoind";
+ inherit version;
+
+ src = fetchurl {
+ urls = [
+ "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
+ "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
+ ];
+ sha256 = "4bbd62fd6acfa5e9864ebf37a24a04bc2dcfe3e3222f056056288d854c53b978";
+ };
+
+ nativeBuildInputs =
+ [ pkgconfig autoreconfHook ]
+ ++ optional stdenv.isDarwin hexdump
+ ++ optional withGui wrapQtAppsHook;
+ buildInputs = [ db48 boost zlib zeromq miniupnpc libevent ]
+ ++ optionals stdenv.isLinux [ util-linux ]
+ ++ optionals withGui [ qtbase qttools qrencode ];
+
+ postInstall = optional withGui ''
+ install -Dm644 ${desktop} $out/share/applications/bitcoin-qt.desktop
+ install -Dm644 share/pixmaps/bitcoin128.png $out/share/pixmaps/bitcoin128.png
+ '';
+
+ configureFlags = [
+ "--with-boost-libdir=${boost.out}/lib"
+ "--disable-bench"
+ ] ++ optionals (!doCheck) [
+ "--disable-tests"
+ "--disable-gui-tests"
+ ]
+ ++ optionals withGui [
+ "--with-gui=qt5"
+ "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+ ];
+
+ checkInputs = [ python3 ];
+
+ doCheck = true;
+
+ checkFlags =
+ [ "LC_ALL=C.UTF-8" ]
+ # QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Bitcoin's GUI.
+ # See also https://github.com/NixOS/nixpkgs/issues/24256
+ ++ optional withGui "QT_PLUGIN_PATH=${qtbase}/${qtbase.qtPluginPrefix}";
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Peer-to-peer electronic cash system";
+ longDescription = ''
+ Bitcoin is a free open source peer-to-peer electronic cash system that is
+ completely decentralized, without the need for a central server or trusted
+ parties. Users hold the crypto keys to their own money and transact directly
+ with each other, with the help of a P2P network to check for double-spending.
+ '';
+ homepage = "https://bitcoin.org/";
+ downloadPage = "https://bitcoincore.org/bin/bitcoin-core-${version}/";
+ changelog = "https://bitcoincore.org/en/releases/${version}/";
+ maintainers = with maintainers; [ roconnor ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcdeb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcdeb/default.nix
new file mode 100644
index 000000000000..39d2197626a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcdeb/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, openssl
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "btcdeb-unstable";
+ version = "200806";
+
+ src = fetchFromGitHub {
+ owner = "bitcoin-core";
+ repo = "btcdeb";
+ rev = "f6708c397c64894c9f9e31bea2d22285d9462de7";
+ sha256 = "0qkmf89z2n7s95vhw3n9vh9dbi14zy4vqw3ffdh1w911jwm5ry3z";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ openssl ];
+
+ meta = {
+ description = "Bitcoin Script Debugger";
+ homepage = "https://github.com/kallewoof/btcdeb";
+ license = licenses.mit;
+ maintainers = with maintainers; [ akru ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
new file mode 100644
index 000000000000..3958a44cdafe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -0,0 +1,58 @@
+{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
+ dotnetPackages, dotnetCorePackages, writeScript, bash
+}:
+
+let
+ deps = import ./deps.nix {
+ fetchNuGet = { name, version, sha256 }: fetchurl {
+ name = "nuget-${name}-${version}.nupkg";
+ url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+ inherit sha256;
+ };
+ };
+ dotnetSdk = dotnetCorePackages.sdk_3_1;
+in
+
+stdenv.mkDerivation rec {
+ pname = "btcpayserver";
+ version = "1.0.5.9";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "011pp94i49fx587ng16m6ml63vwiysjvpkijihrk6xamz78zddgx";
+ };
+
+ nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
+
+ buildPhase = ''
+ export HOME=$TMP/home
+ export DOTNET_CLI_TELEMETRY_OPTOUT=1
+ export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
+ nuget sources Add -Name tmpsrc -Source $TMP/nuget
+ nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
+
+ dotnet restore --source $TMP/nuget BTCPayServer/BTCPayServer.csproj
+ dotnet publish --no-restore --output $out/share/$pname -c Release BTCPayServer/BTCPayServer.csproj
+ '';
+
+ # btcpayserver requires the publish directory as its working dir
+ # https://github.com/btcpayserver/btcpayserver/issues/1894
+ installPhase = ''
+ makeWrapper $out/share/$pname/BTCPayServer $out/bin/$pname \
+ --set DOTNET_ROOT "${dotnetSdk}" \
+ --run "cd $out/share/$pname"
+ '';
+
+ dontStrip = true;
+
+ meta = with lib; {
+ description = "Self-hosted, open-source cryptocurrency payment processor";
+ homepage = "https://btcpayserver.org";
+ maintainers = with maintainers; [ kcalvinalvin earvstedt ];
+ license = lib.licenses.mit;
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
new file mode 100644
index 000000000000..5ee5e2612115
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -0,0 +1,1932 @@
+{ fetchNuGet }: [
+ (fetchNuGet {
+ name = "AngleSharp";
+ version = "0.9.11";
+ sha256 = "17vf1bizskkxr8pf547lk2b48m12wv3si83gxk145i73bf9gi64a";
+ })
+ (fetchNuGet {
+ name = "AWSSDK.Core";
+ version = "3.3.104.14";
+ sha256 = "157694kb63z1szbsv861515fvjv7amrjrfmgbm3idpyw31afk650";
+ })
+ (fetchNuGet {
+ name = "AWSSDK.S3";
+ version = "3.3.110.10";
+ sha256 = "1lf1hfbx792dpa1hxgn0a0jrrvldd16hgbxx229dk2qcz5qlnc38";
+ })
+ (fetchNuGet {
+ name = "BTCPayServer.Hwi";
+ version = "1.1.3";
+ sha256 = "1c8hfnrjh2ad8qh75d63gsl170q8czf3j1hk8sv8fnbgnxdnkm7a";
+ })
+ (fetchNuGet {
+ name = "BTCPayServer.Lightning.All";
+ version = "1.2.4";
+ sha256 = "1f4wgs8ijk1wmppz5lmas7l6m83szz57jyk6ak0dxhccdld9rdaj";
+ })
+ (fetchNuGet {
+ name = "BTCPayServer.Lightning.Charge";
+ version = "1.2.1";
+ sha256 = "0iv9frbr6xfxif3pnfd7c87y8mv31nqkdrnhvnaswrx43nv6s272";
+ })
+ (fetchNuGet {
+ name = "BTCPayServer.Lightning.CLightning";
+ version = "1.2.1";
+ sha256 = "14km69jzmnyqg19w27g6znml4z0xkm8l4j7rj0x36bw67cjmgahv";
+ })
+ (fetchNuGet {
+ name = "BTCPayServer.Lightning.Common";
+ version = "1.2.0";
+ sha256 = "17di8ndkw8z0ci0zk15mcrqpmganwkz9ys2snr2rqpw5mrlhpwa0";
+ })
+ (fetchNuGet {
+ name = "BTCPayServer.Lightning.Eclair";
+ version = "1.2.0";
+ sha256 = "0w7nwsr0n2hrqak023xa294palsk3r96wlgw2ks8d3p5kxm8kskp";
+ })
+ (fetchNuGet {
+ name = "BTCPayServer.Lightning.LND";
+ version = "1.2.1";
+ sha256 = "0ql4qyvz0rms6ls46pi3bgak3r6hj2c5ivnzahiq6cb84pbl61cr";
+ })
+ (fetchNuGet {
+ name = "BTCPayServer.Lightning.Ptarmigan";
+ version = "1.2.0";
+ sha256 = "1yd6nhlssb9k08p5491knlwwjij9324ildir99sa9cp24rlq5nis";
+ })
+ (fetchNuGet {
+ name = "BuildBundlerMinifier";
+ version = "3.2.435";
+ sha256 = "0y1p226dbvs7q2ngm9w4mpkhfrhw2y122plv1yff7lx5m84ia02l";
+ })
+ (fetchNuGet {
+ name = "BundlerMinifier.Core";
+ version = "3.2.435";
+ sha256 = "17338x8ycr7hjzq16kr0ri30k19802hsn1sy259k3v694mxk59vd";
+ })
+ (fetchNuGet {
+ name = "BundlerMinifier.TagHelpers";
+ version = "3.2.435";
+ sha256 = "0ksmby0lzgsxkv0xfzr840262kcqra9vds91mcx0rf20blksfvsk";
+ })
+ (fetchNuGet {
+ name = "CsvHelper";
+ version = "15.0.5";
+ sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma";
+ })
+ (fetchNuGet {
+ name = "DBriize";
+ version = "1.0.1.3";
+ sha256 = "0rsm68hwq2ky8i6mv3ckdjkj4vjygnkgk3disva0skl3apk833dc";
+ })
+ (fetchNuGet {
+ name = "DigitalRuby.ExchangeSharp";
+ version = "0.6.3";
+ sha256 = "1vb7ahafcd3lcbiiz552aisilwm1yq3j600gkf1wik8vhvsk02fs";
+ })
+ (fetchNuGet {
+ name = "Google.Api.Gax.Rest";
+ version = "2.5.0";
+ sha256 = "1zkjl5zh6qwdz4qmnxnk5877pas638i2qi25znilhqqf3mrkp0rp";
+ })
+ (fetchNuGet {
+ name = "Google.Api.Gax";
+ version = "2.5.0";
+ sha256 = "0q6pi53px998i3gdndla8v0zqdpyi9gnsy9mdcfpkrg09vfbdsl9";
+ })
+ (fetchNuGet {
+ name = "Google.Apis.Auth";
+ version = "1.35.1";
+ sha256 = "1qdnd1nq9bfgyljmiww91pfi0iz1n29rz2dlizhxcijqya2ldha3";
+ })
+ (fetchNuGet {
+ name = "Google.Apis.Auth";
+ version = "1.38.0";
+ sha256 = "0x3bdwiyqjxw5df99bfasmsv09kb47wzisag938631cijl0g277y";
+ })
+ (fetchNuGet {
+ name = "Google.Apis.Core";
+ version = "1.35.1";
+ sha256 = "01dfw2kxknlc5pm7x1q88lv9j979509lkkgvlffjry5bawsxsja4";
+ })
+ (fetchNuGet {
+ name = "Google.Apis.Core";
+ version = "1.38.0";
+ sha256 = "012gslhnx65vqfyzjnqx4bqk9kb8bwbx966q2f9fdgrfcn26gj9j";
+ })
+ (fetchNuGet {
+ name = "Google.Apis.Storage.v1";
+ version = "1.38.0.1470";
+ sha256 = "0mfrz7fmpfbjvp4zfpjasmnfbgxgxrrjkf8xgp9p6h9g8qh2f2h2";
+ })
+ (fetchNuGet {
+ name = "Google.Apis";
+ version = "1.35.1";
+ sha256 = "1022l8m7v9f3rkjc9l11mkzwsbmqx9sk5f4aym035vn9hdr16d49";
+ })
+ (fetchNuGet {
+ name = "Google.Apis";
+ version = "1.38.0";
+ sha256 = "01j3d1lv106cqw9n0lwgclrxghy852fsibv6av4xr03ivrkm8g40";
+ })
+ (fetchNuGet {
+ name = "Google.Cloud.Storage.V1";
+ version = "2.3.0";
+ sha256 = "01jhrd6m6md8m28chzg2dkdfd4yris79j1xi7r1ydm1cfjhmlj64";
+ })
+ (fetchNuGet {
+ name = "HtmlSanitizer";
+ version = "4.0.217";
+ sha256 = "0szay9mf5mmrp1hx0yc175aaalv76qg0j515lfs133j1d95lj26d";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNet.SignalR.Client";
+ version = "2.3.0";
+ sha256 = "1xyj8b88bc6sc7fxgqyalzfmlfgbagfk7adyk29if9hr8ki9bic4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNet.WebApi.Client";
+ version = "5.2.7";
+ sha256 = "1j0wbdmycj5xbk06p32f7xrddc40sbj3yca4d7ywg611yk26mvi1";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Cryptography.Internal";
+ version = "3.1.4";
+ sha256 = "0d4djj073bl9kps5jkcpydh92lcp6kpa7njhypjw3myaa987dcsh";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Cryptography.KeyDerivation";
+ version = "3.1.4";
+ sha256 = "1rya2775prm8ss0rz6izsqqcz96gcf1rh0bpcvnfy1mwi04rx8bl";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Hosting.Abstractions";
+ version = "2.0.0";
+ sha256 = "0x6vw7kiy9z7cdmgbqav0d9wq66032wg39l2c9cv6xvxxvdpbkz7";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Hosting.Server.Abstractions";
+ version = "2.0.0";
+ sha256 = "1k4dr6l32swi8zasfvzxixnjvgbrra7v6lgpri0929vb3r5lagjb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Http.Abstractions";
+ version = "2.0.0";
+ sha256 = "1hgmnd5mj35g8cqq3mdhjf9cmi3wm5lqiyrj5mgfscnig6i686xr";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Http.Features";
+ version = "2.0.0";
+ sha256 = "1zk5ad3laa7ma83md8r80kijqzps6dcrvv0k1015nddfk1qd74s6";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Identity.EntityFrameworkCore";
+ version = "3.1.4";
+ sha256 = "0smcpaqm7d95flr0k7i2psrsfvs48lv28kzqgnllv5229hhb670d";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.JsonPatch";
+ version = "3.1.1";
+ sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
+ version = "3.1.1";
+ sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Mvc.Razor.Extensions";
+ version = "3.1.1";
+ sha256 = "1iydcr7rfzg3kqky0x70853g6lbzsl9ja9cv8ph6iwpqxnswgdkh";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation";
+ version = "3.1.1";
+ sha256 = "1q1bblcj9l2dnz46frygsfq7w4v08l96clgryh78wyws83xjm43y";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Razor.Language";
+ version = "3.1.1";
+ sha256 = "0arqmy04dd0r4wm2fin66gxxwj2kirbgxyf3w7kq6f73lrnazhq0";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Bcl.AsyncInterfaces";
+ version = "1.1.0";
+ sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Bcl.AsyncInterfaces";
+ version = "1.1.1";
+ sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Bcl.HashCode";
+ version = "1.1.0";
+ sha256 = "1ggsadahlp76zcn1plapszd5v5ja8rh479fwrahqd3knql4dfnr0";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeAnalysis.Analyzers";
+ version = "2.9.3";
+ sha256 = "1kskwc9gyd2sx3zwx52qwfsl7s0xhaclmlnxvjsb4jgvpydv3xii";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeAnalysis.Analyzers";
+ version = "3.0.0";
+ sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeAnalysis.Common";
+ version = "3.3.0";
+ sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeAnalysis.Common";
+ version = "3.6.0";
+ sha256 = "0i8x90700jr30j580mpawj6d90fngrb2zpkjjbn7f8r2p1mz75y7";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeAnalysis.CSharp";
+ version = "3.3.0";
+ sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeAnalysis.CSharp";
+ version = "3.6.0";
+ sha256 = "0c44qp7lfpja6cq5nk7851qrswm2z1k2pnvsw43j9ybf10a27jrn";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeAnalysis.Razor";
+ version = "3.1.1";
+ sha256 = "03n5rli6v1kvghha82zar3dvvkbc2vb9g8zp5fjrzhvp4l74ingn";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeCoverage";
+ version = "16.6.1";
+ sha256 = "01ffm4nflqdb93vq4xl0j3377x360fgx6c6h12mpkcy85ixbv3rl";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CSharp";
+ version = "4.0.1";
+ sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CSharp";
+ version = "4.3.0";
+ sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CSharp";
+ version = "4.5.0";
+ sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CSharp";
+ version = "4.7.0";
+ sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Data.Sqlite.Core";
+ version = "3.1.4";
+ sha256 = "1pahyqjs4l9g1wg9hvxf68kgzzf72ny2i7n7ai97a389p2c86xvh";
+ })
+ (fetchNuGet {
+ name = "Microsoft.DotNet.PlatformAbstractions";
+ version = "2.0.4";
+ sha256 = "1fdzln4im9hb55agzwchbfgm3vmngigmbpci5j89b0gqcxixmv8j";
+ })
+ (fetchNuGet {
+ name = "Microsoft.DotNet.PlatformAbstractions";
+ version = "3.1.4";
+ sha256 = "1s5h96zdc3vh1v03gizmqfw5hmksajw10bdrj79pm8brbyzipxia";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Abstractions";
+ version = "3.1.0";
+ sha256 = "1bd6hilnwp47z3l14qspdxi5f5nhv6rivarc6w8wil425bq0h3pd";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Abstractions";
+ version = "3.1.4";
+ sha256 = "07l7137pzwh0k4m53ji5j6a2zmbbzrl164p18wxcri77ds5is4g7";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Analyzers";
+ version = "3.1.0";
+ sha256 = "1pjn4wwhxgsiap7byld114kx6m0nm6696r8drspqic7lskm4y305";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Analyzers";
+ version = "3.1.4";
+ sha256 = "1zaqn9z7ns6p6jgnffzkgpziqr2wqs68g2sa0c11kaclhlhgvvbv";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Design";
+ version = "3.1.4";
+ sha256 = "10mxnbiw23ia4sln86sd3gn84yhmrb6r2kipzid4h1g15paal9gi";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Relational";
+ version = "3.1.0";
+ sha256 = "0javqw6c27ppcysigjvcjcw3mk0gg1pv2pmwfpvvryr1pb4a9n55";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Relational";
+ version = "3.1.4";
+ sha256 = "1344rsavawwg69dx8xsl08hcs43lc6h7z4mn461dcx85rirlwd0v";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
+ version = "3.1.4";
+ sha256 = "080qz0b52i7v5c1sgnqlh9px9881cfr1x06np66hdgmh0ni5c1lw";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore.Sqlite";
+ version = "3.1.4";
+ sha256 = "009mcmakw0p7k8xrz920a8qc0rjv361awiz8jia5i5a8p5ihgkbx";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore";
+ version = "3.1.0";
+ sha256 = "1l12lsk1xfrv5pjnm0b9w9kncgdh0pcjcbxl4zrsg82s7bs7dhda";
+ })
+ (fetchNuGet {
+ name = "Microsoft.EntityFrameworkCore";
+ version = "3.1.4";
+ sha256 = "11w63yp7fk9qwmnq3lmpf1h30mlbzfx4zpm89vrs0lprj86g0742";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Caching.Abstractions";
+ version = "3.1.0";
+ sha256 = "0j5m2a48rwyzzvbz0hpr2md35iv78b86zyqjnrjq0y4vb7sairc0";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Caching.Abstractions";
+ version = "3.1.4";
+ sha256 = "09f96pvpyzylpdaiw3lsvr7p6rs4i21mmhsxl6pkivg5lpfb79sk";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Caching.Memory";
+ version = "3.1.0";
+ sha256 = "1hi61647apn25kqjcb37nqafp8fikymdrk43j3kxjbwwwx507jy1";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Caching.Memory";
+ version = "3.1.4";
+ sha256 = "0b8ijxjd8lgq8mgnvh3wl4y4wbjj3v5b763y6gslm75fn43iyad8";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Abstractions";
+ version = "1.1.2";
+ sha256 = "0z83kxfzsgqlshg4x1mhdnhlrprrwsgnnibvwk257drzy9079994";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Abstractions";
+ version = "2.0.0";
+ sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Abstractions";
+ version = "2.1.0";
+ sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Abstractions";
+ version = "3.1.0";
+ sha256 = "1f7h52kamljglx5k08ccryilvk6d6cvr9c26lcb6b2c091znzk0q";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Abstractions";
+ version = "3.1.4";
+ sha256 = "0r33m68y1vgpmqams4sgciizl0w6y97qkp93m0hyn0nlkxqf72l6";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Binder";
+ version = "2.0.0";
+ sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Binder";
+ version = "3.1.0";
+ sha256 = "13jj7jxihiswmhmql7r5jydbca4x5qj6h7zq10z17gagys6dc7pw";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Binder";
+ version = "3.1.4";
+ sha256 = "1bnf213zlrh0m3sbhsv601yx21l5xp254jiy2g4hm7zpm8vsz1hz";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
+ version = "2.1.0";
+ sha256 = "0xx3idb1l5y1da5zynlys5gyarijmw5pc9hgci8xdxbrcv6rzbjb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.FileExtensions";
+ version = "2.1.0";
+ sha256 = "1lz2xwm63clbh9dfhmygbqvcp4dsrwh5jihv82dmqd5h7lqngl40";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Ini";
+ version = "2.1.0";
+ sha256 = "0bchsljywcq36si4zs2dcx2gj8x98ww93dh2bx2z6x5ilxyjnfip";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration";
+ version = "2.0.0";
+ sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration";
+ version = "2.1.0";
+ sha256 = "04rjl38wlr1jjjpbzgf64jp0ql6sbzbil0brwq9mgr3hdgwd7vx2";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration";
+ version = "3.1.0";
+ sha256 = "1rszgz0rd5kvib5fscz6ss3pkxyjwqy0xpd4f2ypgzf5z5g5d398";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration";
+ version = "3.1.4";
+ sha256 = "0npc18pjl86d06czb0fy6ln3prfpwfb16p6709xx2jrsl96dp9bp";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+ version = "2.0.0";
+ sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+ version = "2.1.0";
+ sha256 = "0c0cx8r5xkjpxmcfp51959jnp55qjvq28d9vaslk08avvi1by12s";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+ version = "3.1.0";
+ sha256 = "1pvms778xkyv1a3gfwrxnh8ja769cxi416n7pcidn9wvg15ifvbh";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+ version = "3.1.4";
+ sha256 = "03ys96pqca93zwxvh0vprzms09i9y0lmq32w98m6klbizq01fc06";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyInjection";
+ version = "2.0.0";
+ sha256 = "018izzgykaqcliwarijapgki9kp2c560qv8qsxdjywr7byws5apq";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyInjection";
+ version = "3.1.0";
+ sha256 = "1xc61dy07bn2q73mx1z3ylrw80xpa682qjby13gklnqq636a3gab";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyInjection";
+ version = "3.1.4";
+ sha256 = "0rhyjgdpjm56drvrvqd9v1xq1qhyrpwwn2pjsz17g2s462rwliqx";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyModel";
+ version = "2.0.4";
+ sha256 = "041i1vlcibpzgalxxzdk81g5pgmqvmz2g61k0rqa2sky0wpvijx9";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyModel";
+ version = "3.1.1";
+ sha256 = "0qa04dspjl4qk7l8d66wqyrvhp5dxcfn2j4r8mmj362xyrp3r8sh";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.DependencyModel";
+ version = "3.1.4";
+ sha256 = "0r0wv4k0ig6mrl6fr184zqbf5f010d6i2an2ws23g2bjvk8jh1bk";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileProviders.Abstractions";
+ version = "2.0.0";
+ sha256 = "0d6y5isjy6jpf4w3f3w89cwh9p40glzhwvm7cwhx05wkqd8bk9w4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileProviders.Abstractions";
+ version = "2.1.0";
+ sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileProviders.Physical";
+ version = "2.1.0";
+ sha256 = "1firpsl5bk219i9gdfgiqw1zm68146h1dzx9hvawfpw9slfaa56w";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileSystemGlobbing";
+ version = "2.1.0";
+ sha256 = "1d2622qp22x1cnlwycnzjbc3sgi9jria26fk78zwzsa08npa3avv";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Hosting.Abstractions";
+ version = "2.0.0";
+ sha256 = "056wgjcdzvz1qwb26xv6hgxq4xya56qiimhk30v8an8cgsrjk3mc";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Hosting.Abstractions";
+ version = "2.1.0";
+ sha256 = "04vm9mdjjzg3lpp2rzpgkpn8h5bzdl3bwcr22lshd3kp602ws4k9";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Identity.Core";
+ version = "3.1.4";
+ sha256 = "0kyi03l9d7pnsvrcylc86fcxwnj59mhvmbz4c1d142f8djdrqfid";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Identity.Stores";
+ version = "3.1.4";
+ sha256 = "0jb3syy0glyn4nnd7lb7aj412xnqyrwhfavh98rbc5adq9v09nbw";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Abstractions";
+ version = "1.0.0";
+ sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Abstractions";
+ version = "1.1.2";
+ sha256 = "0j9b4z3pf8a5xphx3ksn6jm01rf4z001vfll5kcbxw995xcidjw1";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Abstractions";
+ version = "2.0.0";
+ sha256 = "1x5isi71z02khikzvm7vaschb006pqqrsv86ky1x08a4hir4s43h";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Abstractions";
+ version = "2.1.0";
+ sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Abstractions";
+ version = "3.1.0";
+ sha256 = "1zyalrcksszmn9r5xjnirfh7847axncgzxkk3k5srbvlcch8fw8g";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Abstractions";
+ version = "3.1.4";
+ sha256 = "1rkl0yqmi5vfivn641866v2mdsgdy8amym546y6lzbab39g24b5n";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Filter";
+ version = "1.1.2";
+ sha256 = "1pip87q89376xxpi3r5pf9vxhqxx21qrp179fbldbkr2m1577k9m";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging";
+ version = "2.0.0";
+ sha256 = "1jkwjcq1ld9znz1haazk8ili2g4pzfdp6i7r7rki4hg3jcadn386";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging";
+ version = "3.1.0";
+ sha256 = "1d3yhqj1rav7vswm747j7w8fh8paybji4rz941hhlq4b12mfqfh4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging";
+ version = "3.1.4";
+ sha256 = "04asfrhfrcl3ijilry2pr28ql5m6pgrwapadikgcg66jjxbx75zq";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Options.ConfigurationExtensions";
+ version = "2.0.0";
+ sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Options";
+ version = "2.0.0";
+ sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Options";
+ version = "3.1.0";
+ sha256 = "0akccwhpn93a4qrssyb3rszdsp3j4p9hlxbsb7yhqb78xydaqhyh";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Options";
+ version = "3.1.4";
+ sha256 = "0jphncx82l7jm5xi49dfxhbh24wv86sy44022chd7bkizllsypp4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.PlatformAbstractions";
+ version = "1.1.0";
+ sha256 = "0r4j8v2vvp3kalvb11ny9cvpls3nrvqj0c81rxbkh99ynd2dbscp";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Primitives";
+ version = "1.1.1";
+ sha256 = "0rcwxz1r89y96s8k3bmg0v6zdqanqfp09khy5l99wnl777y15g7x";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Primitives";
+ version = "2.0.0";
+ sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Primitives";
+ version = "2.1.0";
+ sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Primitives";
+ version = "3.1.0";
+ sha256 = "1w1y22njywwysi8qjnj4m83qhbq0jr4mmjib0hfawz6cwamh7xrb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Primitives";
+ version = "3.1.4";
+ sha256 = "12xvysk024aghrcwzv4525vznnk8lqmknl2vqqxhq4k5hjxpsysp";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NET.Test.Sdk";
+ version = "16.6.1";
+ sha256 = "0jjdg468jc6pv2z764f3xc19lcr772nzjm9cjfqq3bqw8vkpzmhv";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NetCore.Analyzers";
+ version = "2.9.8";
+ sha256 = "1klybsdy9yw49zlpmix4vjdhmfaibg5h9yx03vszdnijzap7vpsx";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "1.0.1";
+ sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "1.1.0";
+ sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "2.0.0";
+ sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "2.1.2";
+ sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Targets";
+ version = "1.0.1";
+ sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Targets";
+ version = "1.1.0";
+ sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+ })
+ (fetchNuGet {
+ name = "Microsoft.TestPlatform.ObjectModel";
+ version = "16.6.1";
+ sha256 = "0q98q1nw6jl4bajm66z4a9vvh928w8ffsd3k6fpsps23ykpsky7h";
+ })
+ (fetchNuGet {
+ name = "Microsoft.TestPlatform.TestHost";
+ version = "16.6.1";
+ sha256 = "0anzvb2mda548swb2ll1hv65knb8gwjm01hwbl0pzzr607my3lix";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Win32.Primitives";
+ version = "4.0.1";
+ sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Win32.Primitives";
+ version = "4.3.0";
+ sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+ })
+ (fetchNuGet {
+ name = "MySqlConnector";
+ version = "0.61.0";
+ sha256 = "0b0mc41dsih4p1ky3kcmibsz4bw14w439nraq5732wjfkq2sqdxg";
+ })
+ (fetchNuGet {
+ name = "NBitcoin.Altcoins";
+ version = "2.0.21";
+ sha256 = "0xmygiwjlia7fbxy63893jb15g6fxggxxr9bbm8znd9bs3jzp2g1";
+ })
+ (fetchNuGet {
+ name = "NBitcoin";
+ version = "5.0.33";
+ sha256 = "030q609b9lhapq4wfl1w3impjw5m40kz2rg1s9jn3bn8yjfmsi4a";
+ })
+ (fetchNuGet {
+ name = "NBitcoin";
+ version = "5.0.4";
+ sha256 = "04iafda61izzxb691brk72qs01m5dadqb4970nw5ayck6275s71i";
+ })
+ (fetchNuGet {
+ name = "NBitcoin";
+ version = "5.0.40";
+ sha256 = "1rqzn84yaww4afagwg8jg1l5qdkvqyjdfcyd5widddqwxabbsjvh";
+ })
+ (fetchNuGet {
+ name = "NBitcoin";
+ version = "5.0.60";
+ sha256 = "0pin4ldfz5lfxyd47mj1ypyp8lmj0v5nq5zvygdjna956vphd39v";
+ })
+ (fetchNuGet {
+ name = "NBitpayClient";
+ version = "1.0.0.39";
+ sha256 = "1sgwradg7jnb4n3chwqfkximj1qhgl3r23p0sifmaa0kql2hlira";
+ })
+ (fetchNuGet {
+ name = "NBXplorer.Client";
+ version = "3.0.19";
+ sha256 = "0nahfxdsryf5snjy87770m51v2jcry02lmb10ilsg4h2ig4pjdk4";
+ })
+ (fetchNuGet {
+ name = "NETStandard.Library";
+ version = "1.6.1";
+ sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json.Bson";
+ version = "1.0.1";
+ sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json.Bson";
+ version = "1.0.2";
+ sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json.Schema";
+ version = "3.0.13";
+ sha256 = "04vzjz5fb588rh6ji5a0svfzjsdcfpr1qrz9hxpc64z5zhnh6sf4";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "10.0.3";
+ sha256 = "06vy67bkshclpz69kps4vgzc9h2cgg41c8vlqmdbwclfky7c4haq";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "11.0.1";
+ sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "11.0.2";
+ sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "12.0.2";
+ sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "12.0.3";
+ sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "9.0.1";
+ sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+ })
+ (fetchNuGet {
+ name = "NicolasDorier.CommandLine.Configuration";
+ version = "1.0.0.3";
+ sha256 = "0al0pd4zhjpmn8m208xjmy17cbyab68grzdvzr2lhsckwkl6b1jg";
+ })
+ (fetchNuGet {
+ name = "NicolasDorier.CommandLine";
+ version = "1.0.0.2";
+ sha256 = "08a9l18zkhcfa6f56xqylzvmqjzgxsmgkpm2r3ckvxfyml6w0qyy";
+ })
+ (fetchNuGet {
+ name = "NicolasDorier.RateLimits";
+ version = "1.1.0";
+ sha256 = "06cajxi8wnrxfwqfnk98avphwiyvg1fw428bd42lqjgq9k414rk9";
+ })
+ (fetchNuGet {
+ name = "NicolasDorier.StandardConfiguration";
+ version = "1.0.0.18";
+ sha256 = "0lgssxafv6cqlw21fb79fm0fcln0clgsk6zadcwrnjv9vampfw7b";
+ })
+ (fetchNuGet {
+ name = "NLog";
+ version = "4.5.10";
+ sha256 = "0d4yqxrhqn2k36h3v1f5pn6qqlagbzg67v6gvxqhz3s4zyc3b8rg";
+ })
+ (fetchNuGet {
+ name = "Npgsql.EntityFrameworkCore.PostgreSQL";
+ version = "3.1.4";
+ sha256 = "1ng9pbamh93g0fbnjq8ygaf40d6rs0fy4s08bjmxpa69k3s8c7a4";
+ })
+ (fetchNuGet {
+ name = "Npgsql";
+ version = "4.1.3.1";
+ sha256 = "0qk3hb8s521c2gy4k3m1i6fhpr133mnw9w85cwsy9j7ghxyca1nv";
+ })
+ (fetchNuGet {
+ name = "NuGet.Frameworks";
+ version = "5.0.0";
+ sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
+ })
+ (fetchNuGet {
+ name = "NUglify";
+ version = "1.5.12";
+ sha256 = "0f4gs31z8dwfvd246nrv3m0qkxzav37hxynx2maykza017khynyf";
+ })
+ (fetchNuGet {
+ name = "Pomelo.EntityFrameworkCore.MySql";
+ version = "3.1.1";
+ sha256 = "1jvv2q7pmh5wzsfjim7iby4r1scb30kgj9w6sbm2dp60i6vm32dx";
+ })
+ (fetchNuGet {
+ name = "Pomelo.JsonObject";
+ version = "2.2.1";
+ sha256 = "1w6s9wjbsyvq8cnqknkdzm9chnv0g5gcsrq5i94zp6br9vg7c627";
+ })
+ (fetchNuGet {
+ name = "Portable.BouncyCastle";
+ version = "1.8.1.3";
+ sha256 = "1lv1ljaz8df835jgmp3ny1xgqqjf1s9f25baw7bf8d24qlf25i2g";
+ })
+ (fetchNuGet {
+ name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+ })
+ (fetchNuGet {
+ name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+ })
+ (fetchNuGet {
+ name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.IO.Compression";
+ version = "4.3.0";
+ sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Net.Http";
+ version = "4.0.1";
+ sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Net.Http";
+ version = "4.3.0";
+ sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Net.Security";
+ version = "4.3.0";
+ sha256 = "0dnqjhw445ay3chpia9p6vy4w2j6s9vy3hxszqvdanpvvyaxijr3";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Security.Cryptography.Apple";
+ version = "4.3.0";
+ sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Security.Cryptography";
+ version = "4.0.0";
+ sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System";
+ version = "4.0.0";
+ sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System";
+ version = "4.3.0";
+ sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+ })
+ (fetchNuGet {
+ name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+ })
+ (fetchNuGet {
+ name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+ })
+ (fetchNuGet {
+ name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+ version = "4.3.0";
+ sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
+ })
+ (fetchNuGet {
+ name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+ })
+ (fetchNuGet {
+ name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+ })
+ (fetchNuGet {
+ name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+ })
+ (fetchNuGet {
+ name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+ })
+ (fetchNuGet {
+ name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+ })
+ (fetchNuGet {
+ name = "Selenium.WebDriver.ChromeDriver";
+ version = "85.0.4183.8700";
+ sha256 = "0klyqmwa6yc0ibbmci51mzb2vl6n13qlk06chc9w78i0a43fs382";
+ })
+ (fetchNuGet {
+ name = "Selenium.WebDriver";
+ version = "3.141.0";
+ sha256 = "09g0zhz6n7yhxmxlrpzjdykfavr3m4z1gb4cmq304dw0gr8s89mq";
+ })
+ (fetchNuGet {
+ name = "Serilog.AspNetCore";
+ version = "3.2.0";
+ sha256 = "14d1lsw1djsshlkxbn5lkmdvj4372hnddb6788m6ix0mv4mhj3bj";
+ })
+ (fetchNuGet {
+ name = "Serilog.Extensions.Hosting";
+ version = "3.0.0";
+ sha256 = "1r01lsy4rp0wj7ffbjcf9dcg3aipdhy7066yjicja45m0z2y42w6";
+ })
+ (fetchNuGet {
+ name = "Serilog.Extensions.Logging";
+ version = "3.0.1";
+ sha256 = "069qy7dm5nxb372ij112ppa6m99b4iaimj3sji74m659fwrcrl9a";
+ })
+ (fetchNuGet {
+ name = "Serilog.Formatting.Compact";
+ version = "1.0.0";
+ sha256 = "0mi1yzzj33v4nkyspyshhc6nn2mx3y07z5dvv26hl7hw6kb6yazw";
+ })
+ (fetchNuGet {
+ name = "Serilog.Settings.Configuration";
+ version = "3.1.0";
+ sha256 = "1cj5am4n073331gbfm2ylqb9cadl4q3ppzgwmm5c8m1drxpiwkb5";
+ })
+ (fetchNuGet {
+ name = "Serilog.Sinks.Console";
+ version = "3.1.1";
+ sha256 = "0j99as641y1k6havwwkhyr0n08vibiblmfjj6nz051mz8g3864fn";
+ })
+ (fetchNuGet {
+ name = "Serilog.Sinks.Debug";
+ version = "1.0.1";
+ sha256 = "0969mb254kr59bgkq01ybyzca89z3f4n9ng5mdj8m53d5653zf22";
+ })
+ (fetchNuGet {
+ name = "Serilog.Sinks.File";
+ version = "4.1.0";
+ sha256 = "1ry7p9hf1zlnai1j5zjhjp4dqm2agsbpq6cvxgpf5l8m26x6mgca";
+ })
+ (fetchNuGet {
+ name = "Serilog";
+ version = "2.9.0";
+ sha256 = "0z0ib82w9b229a728bbyhzc2hnlbl0ki7nnvmgnv3l741f2vr4i6";
+ })
+ (fetchNuGet {
+ name = "SQLitePCLRaw.bundle_e_sqlite3";
+ version = "2.0.2";
+ sha256 = "00p7n7ndmmh45fhhd3clb11igpzklm1n7r50sdrgnbi5yifv1lxl";
+ })
+ (fetchNuGet {
+ name = "SQLitePCLRaw.core";
+ version = "2.0.2";
+ sha256 = "11mnbnsiirpgmilskqh1issvgzgg08ndq3p3nkrw73hyqr7kl958";
+ })
+ (fetchNuGet {
+ name = "SQLitePCLRaw.lib.e_sqlite3";
+ version = "2.0.2";
+ sha256 = "0967w6r6n94hj0fma3kidb9fx1m2p3fgrw6gpsy6q6jbb33qw6vj";
+ })
+ (fetchNuGet {
+ name = "SQLitePCLRaw.provider.dynamic_cdecl";
+ version = "2.0.2";
+ sha256 = "1lzs8yfjygrwfm3hjmkhnbnpsjzq53ijwx9whmii2r9kjg2a46if";
+ })
+ (fetchNuGet {
+ name = "SSH.NET";
+ version = "2016.1.0";
+ sha256 = "0q08bf9sdf1rf9763z4bk2mr6z381iybm73823scmq9qcpr2jk4d";
+ })
+ (fetchNuGet {
+ name = "SshNet.Security.Cryptography";
+ version = "1.2.0";
+ sha256 = "1xlj8bjavpjk6lrkypk66cxpf2xa31wv73ymrk34d72f05z0xrg0";
+ })
+ (fetchNuGet {
+ name = "System.AppContext";
+ version = "4.1.0";
+ sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+ })
+ (fetchNuGet {
+ name = "System.AppContext";
+ version = "4.3.0";
+ sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
+ })
+ (fetchNuGet {
+ name = "System.Buffers";
+ version = "4.3.0";
+ sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Concurrent";
+ version = "4.0.12";
+ sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Concurrent";
+ version = "4.3.0";
+ sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Immutable";
+ version = "1.5.0";
+ sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Immutable";
+ version = "1.7.0";
+ sha256 = "1gik4sn9jsi1wcy1pyyp0r4sn2g17cwrsh24b2d52vif8p2h24zx";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Immutable";
+ version = "1.7.1";
+ sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
+ })
+ (fetchNuGet {
+ name = "System.Collections.NonGeneric";
+ version = "4.3.0";
+ sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Specialized";
+ version = "4.3.0";
+ sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+ })
+ (fetchNuGet {
+ name = "System.Collections";
+ version = "4.0.11";
+ sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+ })
+ (fetchNuGet {
+ name = "System.Collections";
+ version = "4.3.0";
+ sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel.Annotations";
+ version = "4.7.0";
+ sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel.Primitives";
+ version = "4.3.0";
+ sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel.TypeConverter";
+ version = "4.3.0";
+ sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel";
+ version = "4.3.0";
+ sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+ })
+ (fetchNuGet {
+ name = "System.Configuration.ConfigurationManager";
+ version = "4.5.0";
+ sha256 = "1frpy24mn6q7hgwayj98kkx89z861f5dmia4j6zc0a2ydgx8x02c";
+ })
+ (fetchNuGet {
+ name = "System.Console";
+ version = "4.3.0";
+ sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Debug";
+ version = "4.0.11";
+ sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Debug";
+ version = "4.3.0";
+ sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.DiagnosticSource";
+ version = "4.0.0";
+ sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.DiagnosticSource";
+ version = "4.3.0";
+ sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.DiagnosticSource";
+ version = "4.7.0";
+ sha256 = "0cr0v5dz8l5ackxv6b772fjcyj2nimqmrmzanjs4cw2668v568n1";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.DiagnosticSource";
+ version = "4.7.1";
+ sha256 = "1mivaifniyrqwlnvzsfaxzrh2sd981bwzs3cbvs5wi7jjzbcqr4p";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tools";
+ version = "4.0.1";
+ sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tools";
+ version = "4.3.0";
+ sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.TraceSource";
+ version = "4.0.0";
+ sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tracing";
+ version = "4.1.0";
+ sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tracing";
+ version = "4.3.0";
+ sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+ })
+ (fetchNuGet {
+ name = "System.Dynamic.Runtime";
+ version = "4.0.11";
+ sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+ })
+ (fetchNuGet {
+ name = "System.Dynamic.Runtime";
+ version = "4.3.0";
+ sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Calendars";
+ version = "4.0.1";
+ sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Calendars";
+ version = "4.3.0";
+ sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Extensions";
+ version = "4.0.1";
+ sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Extensions";
+ version = "4.3.0";
+ sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+ })
+ (fetchNuGet {
+ name = "System.Globalization";
+ version = "4.0.11";
+ sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+ })
+ (fetchNuGet {
+ name = "System.Globalization";
+ version = "4.3.0";
+ sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+ })
+ (fetchNuGet {
+ name = "System.Interactive.Async";
+ version = "3.1.1";
+ sha256 = "03iq20gq0n2b2sdzs5jhxf46nzkfgvzip6q5248vka2rcvn1yanh";
+ })
+ (fetchNuGet {
+ name = "System.IO.Compression.ZipFile";
+ version = "4.3.0";
+ sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
+ })
+ (fetchNuGet {
+ name = "System.IO.Compression";
+ version = "4.3.0";
+ sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem.Primitives";
+ version = "4.0.1";
+ sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem.Primitives";
+ version = "4.3.0";
+ sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem";
+ version = "4.0.1";
+ sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem";
+ version = "4.3.0";
+ sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+ })
+ (fetchNuGet {
+ name = "System.IO.Pipelines";
+ version = "4.7.2";
+ sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9";
+ })
+ (fetchNuGet {
+ name = "System.IO";
+ version = "4.1.0";
+ sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+ })
+ (fetchNuGet {
+ name = "System.IO";
+ version = "4.3.0";
+ sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+ })
+ (fetchNuGet {
+ name = "System.Linq.Expressions";
+ version = "4.1.0";
+ sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+ })
+ (fetchNuGet {
+ name = "System.Linq.Expressions";
+ version = "4.3.0";
+ sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+ })
+ (fetchNuGet {
+ name = "System.Linq";
+ version = "4.1.0";
+ sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+ })
+ (fetchNuGet {
+ name = "System.Linq";
+ version = "4.3.0";
+ sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+ })
+ (fetchNuGet {
+ name = "System.Memory";
+ version = "4.5.0";
+ sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
+ })
+ (fetchNuGet {
+ name = "System.Memory";
+ version = "4.5.3";
+ sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
+ })
+ (fetchNuGet {
+ name = "System.Net.Http";
+ version = "4.1.0";
+ sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
+ })
+ (fetchNuGet {
+ name = "System.Net.Http";
+ version = "4.3.0";
+ sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
+ })
+ (fetchNuGet {
+ name = "System.Net.NameResolution";
+ version = "4.0.0";
+ sha256 = "0dj3pvpv069nyia28gkl4a0fb7q33hbxz2dg25qvpah3l7pbl0qh";
+ })
+ (fetchNuGet {
+ name = "System.Net.NameResolution";
+ version = "4.3.0";
+ sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
+ })
+ (fetchNuGet {
+ name = "System.Net.Primitives";
+ version = "4.0.11";
+ sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+ })
+ (fetchNuGet {
+ name = "System.Net.Primitives";
+ version = "4.3.0";
+ sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
+ })
+ (fetchNuGet {
+ name = "System.Net.Requests";
+ version = "4.0.11";
+ sha256 = "13mka55sa6dg6nw4zdrih44gnp8hnj5azynz47ljsh2791lz3d9h";
+ })
+ (fetchNuGet {
+ name = "System.Net.Security";
+ version = "4.3.0";
+ sha256 = "1aa5igz31ivk6kpgsrwck3jccab7wd88wr52lddmgypmbh9mmf87";
+ })
+ (fetchNuGet {
+ name = "System.Net.Sockets";
+ version = "4.1.0";
+ sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+ })
+ (fetchNuGet {
+ name = "System.Net.Sockets";
+ version = "4.3.0";
+ sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebHeaderCollection";
+ version = "4.0.1";
+ sha256 = "10bxpxj80c4z00z3ksrfswspq9qqsw8jwxcbzvymzycb97m9b55q";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebHeaderCollection";
+ version = "4.3.0";
+ sha256 = "0ms3ddjv1wn8sqa5qchm245f3vzzif6l6fx5k92klqpn7zf4z562";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebSockets.Client";
+ version = "4.3.2";
+ sha256 = "103y8lfsfa5xd1sqmq9sml4qyp4rij2i3fnnw119h119hb04l0rk";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebSockets";
+ version = "4.3.0";
+ sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
+ })
+ (fetchNuGet {
+ name = "System.ObjectModel";
+ version = "4.0.12";
+ sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+ })
+ (fetchNuGet {
+ name = "System.ObjectModel";
+ version = "4.3.0";
+ sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.ILGeneration";
+ version = "4.0.1";
+ sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.ILGeneration";
+ version = "4.3.0";
+ sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.Lightweight";
+ version = "4.0.1";
+ sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.Lightweight";
+ version = "4.3.0";
+ sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit";
+ version = "4.0.1";
+ sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit";
+ version = "4.3.0";
+ sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Extensions";
+ version = "4.0.1";
+ sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Extensions";
+ version = "4.3.0";
+ sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Metadata";
+ version = "1.6.0";
+ sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Primitives";
+ version = "4.0.1";
+ sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Primitives";
+ version = "4.3.0";
+ sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.TypeExtensions";
+ version = "4.1.0";
+ sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.TypeExtensions";
+ version = "4.3.0";
+ sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+ })
+ (fetchNuGet {
+ name = "System.Reflection";
+ version = "4.1.0";
+ sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+ })
+ (fetchNuGet {
+ name = "System.Reflection";
+ version = "4.3.0";
+ sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+ })
+ (fetchNuGet {
+ name = "System.Resources.ResourceManager";
+ version = "4.0.1";
+ sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+ })
+ (fetchNuGet {
+ name = "System.Resources.ResourceManager";
+ version = "4.3.0";
+ sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.CompilerServices.Unsafe";
+ version = "4.3.0";
+ sha256 = "149xcsa1pphlrc2zfmca9n822g4mxk7s2a44phvf34r0fajm3hk8";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.CompilerServices.Unsafe";
+ version = "4.4.0";
+ sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.CompilerServices.Unsafe";
+ version = "4.5.0";
+ sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.CompilerServices.Unsafe";
+ version = "4.5.2";
+ sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.CompilerServices.Unsafe";
+ version = "4.6.0";
+ sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.CompilerServices.Unsafe";
+ version = "4.7.0";
+ sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Extensions";
+ version = "4.1.0";
+ sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Extensions";
+ version = "4.3.0";
+ sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Handles";
+ version = "4.0.1";
+ sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Handles";
+ version = "4.3.0";
+ sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices.RuntimeInformation";
+ version = "4.0.0";
+ sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices.RuntimeInformation";
+ version = "4.3.0";
+ sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices";
+ version = "4.1.0";
+ sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices";
+ version = "4.3.0";
+ sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Numerics";
+ version = "4.0.1";
+ sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Numerics";
+ version = "4.3.0";
+ sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Formatters";
+ version = "4.3.0";
+ sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Primitives";
+ version = "4.1.1";
+ sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Primitives";
+ version = "4.3.0";
+ sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+ })
+ (fetchNuGet {
+ name = "System.Runtime";
+ version = "4.1.0";
+ sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+ })
+ (fetchNuGet {
+ name = "System.Runtime";
+ version = "4.3.0";
+ sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+ })
+ (fetchNuGet {
+ name = "System.Security.AccessControl";
+ version = "4.5.0";
+ sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
+ })
+ (fetchNuGet {
+ name = "System.Security.Claims";
+ version = "4.0.1";
+ sha256 = "03dw0ls49bvsrffgwycyifjgz0qzr9r85skqhdyhfd51fqf398n6";
+ })
+ (fetchNuGet {
+ name = "System.Security.Claims";
+ version = "4.3.0";
+ sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Algorithms";
+ version = "4.2.0";
+ sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Algorithms";
+ version = "4.3.0";
+ sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Cng";
+ version = "4.2.0";
+ sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Cng";
+ version = "4.3.0";
+ sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Csp";
+ version = "4.0.0";
+ sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Csp";
+ version = "4.3.0";
+ sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Encoding";
+ version = "4.0.0";
+ sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Encoding";
+ version = "4.3.0";
+ sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.OpenSsl";
+ version = "4.0.0";
+ sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Primitives";
+ version = "4.0.0";
+ sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Primitives";
+ version = "4.3.0";
+ sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.ProtectedData";
+ version = "4.5.0";
+ sha256 = "11qlc8q6b7xlspayv07718ibzvlj6ddqqxkvcbxv5b24d5kzbrb7";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.X509Certificates";
+ version = "4.1.0";
+ sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.X509Certificates";
+ version = "4.3.0";
+ sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+ })
+ (fetchNuGet {
+ name = "System.Security.Permissions";
+ version = "4.5.0";
+ sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm";
+ })
+ (fetchNuGet {
+ name = "System.Security.Principal.Windows";
+ version = "4.0.0";
+ sha256 = "1d3vc8i0zss9z8p4qprls4gbh7q4218l9845kclx7wvw41809k6z";
+ })
+ (fetchNuGet {
+ name = "System.Security.Principal.Windows";
+ version = "4.3.0";
+ sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
+ })
+ (fetchNuGet {
+ name = "System.Security.Principal.Windows";
+ version = "4.5.0";
+ sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
+ })
+ (fetchNuGet {
+ name = "System.Security.Principal";
+ version = "4.0.1";
+ sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
+ })
+ (fetchNuGet {
+ name = "System.Security.Principal";
+ version = "4.3.0";
+ sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding.CodePages";
+ version = "4.5.1";
+ sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding.Extensions";
+ version = "4.0.11";
+ sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding.Extensions";
+ version = "4.3.0";
+ sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding";
+ version = "4.0.11";
+ sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding";
+ version = "4.3.0";
+ sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encodings.Web";
+ version = "4.4.0";
+ sha256 = "05qp3yivh6gz0vva0v3wjlj3g1b45d5jmz362f2y8ah6yb3rx088";
+ })
+ (fetchNuGet {
+ name = "System.Text.Json";
+ version = "4.7.0";
+ sha256 = "0fp3xrysccm5dkaac4yb51d793vywxks978kkl5x4db9gw29rfdr";
+ })
+ (fetchNuGet {
+ name = "System.Text.Json";
+ version = "4.7.2";
+ sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4";
+ })
+ (fetchNuGet {
+ name = "System.Text.RegularExpressions";
+ version = "4.1.0";
+ sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+ })
+ (fetchNuGet {
+ name = "System.Text.RegularExpressions";
+ version = "4.3.0";
+ sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Channels";
+ version = "4.5.0";
+ sha256 = "0n6z3wjia7h2a5vl727p97riydnb6jhhkb1pdcnizza02dwkz0nz";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks.Extensions";
+ version = "4.0.0";
+ sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks.Extensions";
+ version = "4.3.0";
+ sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks.Extensions";
+ version = "4.5.3";
+ sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks";
+ version = "4.0.11";
+ sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks";
+ version = "4.3.0";
+ sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Thread";
+ version = "4.0.0";
+ sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+ })
+ (fetchNuGet {
+ name = "System.Threading.ThreadPool";
+ version = "4.0.10";
+ sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
+ })
+ (fetchNuGet {
+ name = "System.Threading.ThreadPool";
+ version = "4.3.0";
+ sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Timer";
+ version = "4.0.1";
+ sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Timer";
+ version = "4.3.0";
+ sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
+ })
+ (fetchNuGet {
+ name = "System.Threading";
+ version = "4.0.11";
+ sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+ })
+ (fetchNuGet {
+ name = "System.Threading";
+ version = "4.3.0";
+ sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+ })
+ (fetchNuGet {
+ name = "System.Xml.ReaderWriter";
+ version = "4.0.11";
+ sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+ })
+ (fetchNuGet {
+ name = "System.Xml.ReaderWriter";
+ version = "4.3.0";
+ sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XDocument";
+ version = "4.0.11";
+ sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XDocument";
+ version = "4.3.0";
+ sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XmlDocument";
+ version = "4.0.1";
+ sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XmlDocument";
+ version = "4.3.0";
+ sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XPath.XmlDocument";
+ version = "4.0.1";
+ sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XPath";
+ version = "4.0.1";
+ sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
+ })
+ (fetchNuGet {
+ name = "Text.Analyzers";
+ version = "2.6.4";
+ sha256 = "1fm3gjnbfnjap3wphx5x48awriy14a2g3s9c1nc4m8w85k8mqdsl";
+ })
+ (fetchNuGet {
+ name = "TwentyTwenty.Storage.Amazon";
+ version = "2.12.1";
+ sha256 = "03nrkvhki35w1rqx94s97rwxl0qwqlczyiimhrkc72vjppn5p6ph";
+ })
+ (fetchNuGet {
+ name = "TwentyTwenty.Storage.Azure";
+ version = "2.12.1";
+ sha256 = "10q7gpr8kmgzmxrzj3paqlnw4d8li8scwpxkzs11ildscfp6hvlv";
+ })
+ (fetchNuGet {
+ name = "TwentyTwenty.Storage.Google";
+ version = "2.12.1";
+ sha256 = "0d8s7p9brp03h9dpv3wxnqg0xsm7d9p4k6dpxpb9jak535khxzhp";
+ })
+ (fetchNuGet {
+ name = "TwentyTwenty.Storage.Local";
+ version = "2.12.1";
+ sha256 = "1zmjqwd1v3z78ab4vdmaadh94465k1qgpv7ylv8x3sdx4z78yjm8";
+ })
+ (fetchNuGet {
+ name = "TwentyTwenty.Storage";
+ version = "2.12.1";
+ sha256 = "0m41dxzc3hh0f4j1k4q915pvcq6zr0hv1pj6b3sayrn8vjhk64qb";
+ })
+ (fetchNuGet {
+ name = "U2F.Core";
+ version = "1.0.4";
+ sha256 = "0mk32yyihigp9njs54z411fswgzr6x3kw134c7ylwy2d2wmq2n9b";
+ })
+ (fetchNuGet {
+ name = "WindowsAzure.Storage";
+ version = "9.3.3";
+ sha256 = "14b0b0nj85yvyn0h8ghr3kj6di2nkbzjxc2q98f1wcr0151xvdfx";
+ })
+ (fetchNuGet {
+ name = "xunit.abstractions";
+ version = "2.0.3";
+ sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh";
+ })
+ (fetchNuGet {
+ name = "xunit.analyzers";
+ version = "0.10.0";
+ sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j";
+ })
+ (fetchNuGet {
+ name = "xunit.assert";
+ version = "2.4.1";
+ sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6";
+ })
+ (fetchNuGet {
+ name = "xunit.core";
+ version = "2.4.1";
+ sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a";
+ })
+ (fetchNuGet {
+ name = "xunit.extensibility.core";
+ version = "2.4.1";
+ sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050";
+ })
+ (fetchNuGet {
+ name = "xunit.extensibility.execution";
+ version = "2.4.1";
+ sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia";
+ })
+ (fetchNuGet {
+ name = "xunit.runner.visualstudio";
+ version = "2.4.2";
+ sha256 = "0fi85h43nyrhfc5jzg07znh01r7cpb7bpjdc6mzb9z1pm14ppfm6";
+ })
+ (fetchNuGet {
+ name = "xunit";
+ version = "2.4.1";
+ sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20";
+ })
+ (fetchNuGet {
+ name = "YamlDotNet";
+ version = "8.0.0";
+ sha256 = "09hr1jimmfhcpk97p963y94h2k5p7wzcj4mpwqpdnwzbyrp2flpm";
+ })
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh
new file mode 100755
index 000000000000..1f7dbedd0204
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+
+"$scriptDir"/../nbxplorer/util/update-common.sh btcpayserver "$scriptDir"/deps.nix
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix
new file mode 100644
index 000000000000..966303ec5a65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, libtool
+, autoconf
+, automake
+, curl
+, ncurses
+, ocl-icd
+, opencl-headers
+, libusb1
+, xorg
+, jansson }:
+
+stdenv.mkDerivation rec {
+ pname = "cgminer";
+ version = "4.11.1";
+
+ src = fetchFromGitHub {
+ owner = "ckolivas";
+ repo = "cgminer";
+ rev = "v${version}";
+ sha256 = "0l1ms3nxnjzh4mpiadikvngcr9k3jnjqy3yna207za0va0c28dj5";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ autoconf automake libtool curl ncurses ocl-icd opencl-headers
+ xorg.libX11 xorg.libXext xorg.libXinerama jansson libusb1 ];
+
+ configureScript = "./autogen.sh";
+ configureFlags = [ "--enable-scrypt"
+ "--enable-opencl"
+ "--enable-bitforce"
+ "--enable-icarus"
+ "--enable-modminer"
+ "--enable-ztex"
+ "--enable-avalon"
+ "--enable-klondike"
+ "--enable-keccak"
+ "--enable-bflsc"];
+
+ meta = with stdenv.lib; {
+ description = "CPU/GPU miner in c for bitcoin";
+ homepage = "https://github.com/ckolivas/cgminer";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ offline mmahut ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/clightning.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/clightning.nix
new file mode 100644
index 000000000000..b17876325d5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/clightning.nix
@@ -0,0 +1,50 @@
+{ stdenv, python3, pkgconfig, which, libtool, autoconf, automake,
+ autogen, sqlite, gmp, zlib, fetchurl, unzip, fetchpatch, gettext }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "clightning";
+ version = "0.9.2";
+
+ src = fetchurl {
+ url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
+ sha256 = "022fw6rbn0chg0432h9q05w8qnys0hd9hf1qm2qlnnmamxw4dyfy";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ autoconf autogen automake libtool pkgconfig which unzip gettext ];
+ buildInputs =
+ let py3 = python3.withPackages (p: [ p.Mako ]);
+ in [ sqlite gmp zlib py3 ];
+
+ makeFlags = [ "prefix=$(out) VERSION=v${version}" ];
+
+ configurePhase = ''
+ ./configure --prefix=$out --disable-developer --disable-valgrind
+ '';
+
+ postPatch = ''
+ patchShebangs \
+ tools/generate-wire.py \
+ tools/update-mocks.sh \
+ tools/mockup.sh \
+ devtools/sql-rewrite.py
+ '';
+
+ doCheck = false;
+
+ meta = {
+ description = "A Bitcoin Lightning Network implementation in C";
+ longDescription= ''
+ c-lightning is a standard compliant implementation of the Lightning
+ Network protocol. The Lightning Network is a scalability solution for
+ Bitcoin, enabling secure and instant transfer of funds between any two
+ parties for any amount.
+ '';
+ homepage = "https://github.com/ElementsProject/lightning";
+ maintainers = with maintainers; [ jb55 ];
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/cryptop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/cryptop/default.nix
new file mode 100644
index 000000000000..f0bcda579301
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/cryptop/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonApplication, fetchPypi, requests, requests-cache }:
+
+buildPythonApplication rec {
+ pname = "cryptop";
+ version = "0.2.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0akrrz735vjfrm78plwyg84vabj0x3qficq9xxmy9kr40fhdkzpb";
+ };
+
+ propagatedBuildInputs = [ requests requests-cache ];
+
+ # No tests in archive
+ doCheck = false;
+
+ meta = {
+ homepage = "https://github.com/huwwp/cryptop";
+ description = "Command line Cryptocurrency Portfolio";
+ license = with lib.licenses; [ mit ];
+ maintainers = with lib.maintainers; [ bhipple ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dashpay.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dashpay.nix
new file mode 100644
index 000000000000..b55dd3b5b78d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dashpay.nix
@@ -0,0 +1,44 @@
+{ fetchFromGitHub, stdenv, pkgconfig, autoreconfHook
+, openssl, db48, boost, zlib, miniupnpc
+, qrencode, glib, protobuf, yasm, libevent
+, util-linux
+, enable_Upnp ? false
+, disable_Wallet ? false
+, disable_Daemon ? false }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "dashpay";
+ version = "0.12.2.3";
+
+ src = fetchFromGitHub {
+ owner = "dashpay";
+ repo= "dash";
+ rev = "v${version}";
+ sha256 = "0l1gcj2xf2bal9ph9y11x8yd28fd25f55f48xbm45bfw3ij7nbaa";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ glib openssl db48 yasm boost zlib libevent
+ miniupnpc protobuf qrencode util-linux ];
+
+
+ configureFlags = [ "--with-boost-libdir=${boost.out}/lib --with-gui=no" ]
+ ++ optional enable_Upnp "--enable-upnp-default"
+ ++ optional disable_Wallet "--disable-wallet"
+ ++ optional disable_Daemon "--disable-daemon"
+ ;
+
+ meta = {
+ description = "A decentralized key/value registration and transfer system";
+ longDescription = ''
+ Dash (DASH) is an open sourced, privacy-centric digital currency
+ with instant transactions. It allows you to keep your finances
+ private as you make transactions without waits, similar to cash.
+ '';
+ homepage = "https://www.dash.org";
+ maintainers = with maintainers; [ ];
+ platforms = platforms.unix;
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dcrd.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dcrd.nix
new file mode 100644
index 000000000000..e959eca48aeb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dcrd.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "dcrd";
+ version = "1.5.2";
+
+ src = fetchFromGitHub {
+ owner = "decred";
+ repo = "dcrd";
+ rev = "refs/tags/release-v${version}";
+ sha256 = "14pxajc8si90hnddilfm09kmljwxq6i6p53fk0g09jp000cbklkl";
+ };
+
+ vendorSha256 = "03aw6mcvp1vr01ppxy673jf5hdryd5032cxndlkaiwg005mxp1dy";
+
+ doCheck = false;
+
+ subPackages = [ "." "cmd/dcrctl" "cmd/promptsecret" ];
+
+ meta = {
+ homepage = "https://decred.org";
+ description = "Decred daemon in Go (golang)";
+ license = with lib.licenses; [ isc ];
+ maintainers = with lib.maintainers; [ juaningan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix
new file mode 100644
index 000000000000..779e7135618a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "dcrwallet";
+ version = "1.5.1";
+
+ src = fetchFromGitHub {
+ owner = "decred";
+ repo = "dcrwallet";
+ rev = "refs/tags/v${version}";
+ sha256 = "0ij2mwvdxg78p9qbdf9wm7aaphfg4j8lqgrjyjsj3kyi1l458ds9";
+ };
+
+ vendorSha256 = "0qrrr92cad399xwr64qa9h41wqqaj0dy5mw248g5v53zars541w7";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ meta = {
+ homepage = "https://decred.org";
+ description = "A secure Decred wallet daemon written in Go (golang)";
+ license = with lib.licenses; [ isc ];
+ maintainers = with lib.maintainers; [ juaningan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dero.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dero.nix
new file mode 100644
index 000000000000..8aa693d28714
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dero.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost
+, lmdb, miniupnpc, readline }:
+
+stdenv.mkDerivation rec {
+ pname = "dero";
+ version = "0.11.7";
+
+ src = fetchFromGitHub {
+ owner = "deroproject";
+ repo = "dero";
+ rev = "v${version}";
+ sha256 = "1v8b9wbmqbpyf4jpc0v276qzk3hc5fpddcmwvv5k5yfi30nmbh5c";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ boost miniupnpc openssl lmdb unbound readline ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Secure, private blockchain with smart contracts based on Monero";
+ homepage = "https://dero.io/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ fpletz ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/digibyte.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/digibyte.nix
new file mode 100644
index 000000000000..0d0fc081a118
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/digibyte.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, openssl
+, boost
+, libevent
+, autoreconfHook
+, db4
+, pkgconfig
+, protobuf
+, hexdump
+, zeromq
+, withGui
+, qtbase ? null
+, qttools ? null
+, wrapQtAppsHook ? null
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "digibyte";
+ version = "7.17.2";
+
+ name = pname + toString (optional (!withGui) "d") + "-" + version;
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "04czj7mx3wpbx4832npk686p9pg5zb6qwlcvnmvqf31hm5qylbxj";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ hexdump
+ ] ++ optionals withGui [
+ wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ openssl
+ boost
+ libevent
+ db4
+ zeromq
+ ] ++ optionals withGui [
+ qtbase
+ qttools
+ protobuf
+ ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-boost-libdir=${boost.out}/lib"
+ ] ++ optionals withGui [
+ "--with-gui=qt5"
+ "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+ ];
+
+ meta = {
+ description = "DigiByte (DGB) is a rapidly growing decentralized, global blockchain";
+ homepage = "https://digibyte.io/";
+ license = licenses.mit;
+ maintainers = [ maintainers.mmahut ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dogecoin.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
new file mode 100644
index 000000000000..527b307042c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
@@ -0,0 +1,41 @@
+{ stdenv , fetchFromGitHub
+, pkgconfig, autoreconfHook
+, db5, openssl, boost, zlib, miniupnpc, libevent
+, protobuf, util-linux, qt4, qrencode
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
+ version = "1.14.2";
+
+ src = fetchFromGitHub {
+ owner = "dogecoin";
+ repo = "dogecoin";
+ rev = "v${version}";
+ sha256 = "1gw46q63mjzwvb17ck6p1bap2xpdrap08szw2kjhasa3yvd5swyy";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ openssl db5 openssl util-linux
+ protobuf boost zlib miniupnpc libevent ]
+ ++ optionals withGui [ qt4 qrencode ];
+
+ configureFlags = [ "--with-incompatible-bdb"
+ "--with-boost-libdir=${boost.out}/lib" ]
+ ++ optionals withGui [ "--with-gui" ];
+
+ meta = {
+ description = "Wow, such coin, much shiba, very rich";
+ longDescription = ''
+ Dogecoin is a decentralized, peer-to-peer digital currency that
+ enables you to easily send money online. Think of it as "the
+ internet currency."
+ It is named after a famous Internet meme, the "Doge" - a Shiba Inu dog.
+ '';
+ homepage = "http://www.dogecoin.com/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ edwtjo offline ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/ergo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
new file mode 100644
index 000000000000..6b686d0b2d6c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+ pname = "ergo";
+ version = "3.3.6";
+
+ src = fetchurl {
+ url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
+ sha256 = "1zi559ixjxxsrpvvjbxa1d0g96px3h9amjvy149sfhp7b8w5hhk3";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontUnpack = true;
+
+ installPhase = ''
+ makeWrapper ${jre}/bin/java $out/bin/ergo --add-flags "-jar $src"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Open protocol that implements modern scientific ideas in the blockchain area";
+ homepage = "https://ergoplatform.org/en/";
+ license = licenses.cc0;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ mmahut ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/ethabi.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/ethabi.nix
new file mode 100644
index 000000000000..ad574c82b464
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/ethabi.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "ethabi";
+ version = "11.0.0";
+
+ src = fetchFromGitHub {
+ owner = "paritytech";
+ repo = "ethabi";
+ rev = "v${version}";
+ sha256 = "1gqd3vwsvv1wvi659qcdywgmh41swblpwmmxb033k8irw581dwq4";
+ };
+
+ cargoSha256 = "1hx8qw51rl7sn9jmnclw0hc4rx619hf78hpaih5mvny3k0zgiwpm";
+
+ meta = with stdenv.lib; {
+ description = "Ethereum function call encoding (ABI) utility";
+ homepage = "https://github.com/ethcore/ethabi/";
+ maintainers = [ maintainers.dbrock ];
+ license = licenses.gpl3;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/exodus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
new file mode 100644
index 000000000000..3992c7824851
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, lib, fetchurl, unzip, glib, systemd, nss, nspr, gtk3-x11, pango,
+atk, cairo, gdk-pixbuf, xorg, xorg_sys_opengl, util-linux, alsaLib, dbus, at-spi2-atk,
+cups, vivaldi-ffmpeg-codecs, libpulseaudio, at-spi2-core }:
+
+stdenv.mkDerivation rec {
+ pname = "exodus";
+ version = "20.12.4";
+
+ src = fetchurl {
+ url = "https://downloads.exodus.io/releases/${pname}-linux-x64-${version}.zip";
+ sha256 = "1j1iqmcbwfj72l7g83ah701bipas9cqwazyhh0af5hp2ckj9nmmf";
+ };
+
+ sourceRoot = ".";
+ unpackCmd = ''
+ ${unzip}/bin/unzip "$src" -x "Exodus*/lib*so"
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/applications
+ cd Exodus-linux-x64
+ cp -r . $out
+ ln -s $out/Exodus $out/bin/Exodus
+ ln -s $out/bin/Exodus $out/bin/exodus
+ ln -s $out/exodus.desktop $out/share/applications
+ substituteInPlace $out/share/applications/exodus.desktop \
+ --replace 'Exec=bash -c "cd `dirname %k` && ./Exodus"' "Exec=Exodus"
+ '';
+
+ dontPatchELF = true;
+ dontBuild = true;
+
+ preFixup = let
+ libPath = lib.makeLibraryPath [
+ glib
+ nss
+ nspr
+ gtk3-x11
+ pango
+ atk
+ cairo
+ gdk-pixbuf
+ xorg.libX11
+ xorg.libxcb
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrender
+ xorg.libXtst
+ xorg_sys_opengl
+ util-linux
+ xorg.libXrandr
+ xorg.libXScrnSaver
+ alsaLib
+ dbus.lib
+ at-spi2-atk
+ at-spi2-core
+ cups.lib
+ libpulseaudio
+ systemd
+ vivaldi-ffmpeg-codecs
+ ];
+ in ''
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libPath}" \
+ $out/Exodus
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.exodus.io/";
+ description = "Top-rated cryptocurrency wallet with Trezor integration and built-in Exchange";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mmahut rople380 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch
new file mode 100644
index 000000000000..c49bbc432519
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch
@@ -0,0 +1,15 @@
+--- bitcoin-abc-v0.15.0-src/build-aux/m4/bitcoin_qt.m4 1970-01-01 01:00:01.000000000 +0100
++++ bitcoin-abc-v0.15.0-src.org/build-aux/m4/bitcoin_qt.m4 2017-09-27 23:38:44.748384197 +0100
+@@ -35,11 +35,7 @@
+ dnl Output: $1 is set to the path of $2 if found. $2 are searched in order.
+ AC_DEFUN([BITCOIN_QT_PATH_PROGS],[
+ BITCOIN_QT_CHECK([
+- if test "x$3" != x; then
+- AC_PATH_PROGS($1,$2,,$3)
+- else
+- AC_PATH_PROGS($1,$2)
+- fi
++ AC_PATH_PROGS($1,$2)
+ if test "x$$1" = x && test "x$4" != xyes; then
+ BITCOIN_QT_FAIL([$1 not found])
+ fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
new file mode 100644
index 000000000000..b0f464cbfdc8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
@@ -0,0 +1,46 @@
+{ stdenv, buildGoModule, fetchFromGitHub, libobjc, IOKit }:
+
+buildGoModule rec {
+ pname = "go-ethereum";
+ version = "1.9.24";
+
+ src = fetchFromGitHub {
+ owner = "ethereum";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0nrx5fwfij9wajd3lj76hh1yv4zg4q3jc76a76m22djn1njl0n5j";
+ };
+
+ runVend = true;
+ vendorSha256 = "1qbg44cryiv9kvcak6qjrbmkc9bxyk5fybj62vdkskqfjvv86068";
+
+ doCheck = false;
+
+ subPackages = [
+ "cmd/abidump"
+ "cmd/abigen"
+ "cmd/bootnode"
+ "cmd/checkpoint-admin"
+ "cmd/clef"
+ "cmd/devp2p"
+ "cmd/ethkey"
+ "cmd/evm"
+ "cmd/faucet"
+ "cmd/geth"
+ "cmd/p2psim"
+ "cmd/puppeth"
+ "cmd/rlpdump"
+ "cmd/utils"
+ ];
+
+ # Fix for usb-related segmentation faults on darwin
+ propagatedBuildInputs =
+ stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://geth.ethereum.org/";
+ description = "Official golang implementation of the Ethereum protocol";
+ license = with licenses; [ lgpl3 gpl3 ];
+ maintainers = with maintainers; [ adisbladis lionello xrelkd RaghavSood ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
new file mode 100644
index 000000000000..4c64c595fefb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, makeDesktopItem, appimageTools, imagemagick }:
+
+let
+ pname = "ledger-live-desktop";
+ version = "2.18.0";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
+ sha256 = "19sx9n5mij68v07vy65h1c16rgbpll3kagr437cjb7r95k3nk2zn";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+in appimageTools.wrapType2 rec {
+ inherit name src;
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D ${appimageContents}/ledger-live-desktop.desktop $out/share/applications/ledger-live-desktop.desktop
+ install -m 444 -D ${appimageContents}/ledger-live-desktop.png $out/share/icons/hicolor/1024x1024/apps/ledger-live-desktop.png
+ ${imagemagick}/bin/convert ${appimageContents}/ledger-live-desktop.png -resize 512x512 ledger-live-desktop_512.png
+ install -m 444 -D ledger-live-desktop_512.png $out/share/icons/hicolor/512x512/apps/ledger-live-desktop.png
+ substituteInPlace $out/share/applications/ledger-live-desktop.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Wallet app for Ledger Nano S and Ledger Blue";
+ homepage = "https://www.ledger.com/live";
+ license = licenses.mit;
+ maintainers = with maintainers; [ thedavidmeister nyanloutre RaghavSood th0rgal ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/litecoin.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/litecoin.nix
new file mode 100644
index 000000000000..85adbec718f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/litecoin.nix
@@ -0,0 +1,55 @@
+{ stdenv, mkDerivation, fetchFromGitHub
+, pkgconfig, autoreconfHook
+, openssl, db48, boost, zlib, miniupnpc
+, glib, protobuf, util-linux, qrencode
+, AppKit
+, withGui ? true, libevent
+, qtbase, qttools
+, zeromq
+}:
+
+with stdenv.lib;
+
+mkDerivation rec {
+
+ name = "litecoin" + (toString (optional (!withGui) "d")) + "-" + version;
+ version = "0.18.1";
+
+ src = fetchFromGitHub {
+ owner = "litecoin-project";
+ repo = "litecoin";
+ rev = "v${version}";
+ sha256 = "11753zhyx1kmrlljc6kbjwrcb06dfcrsqvmw3iaki9a132qk6l5c";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ openssl db48 boost zlib zeromq
+ miniupnpc glib protobuf util-linux libevent ]
+ ++ optionals stdenv.isDarwin [ AppKit ]
+ ++ optionals withGui [ qtbase qttools qrencode ];
+
+ configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+ ++ optionals withGui [
+ "--with-gui=qt5"
+ "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin" ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "A lite version of Bitcoin using scrypt as a proof-of-work algorithm";
+ longDescription= ''
+ Litecoin is a peer-to-peer Internet currency that enables instant payments
+ to anyone in the world. It is based on the Bitcoin protocol but differs
+ from Bitcoin in that it can be efficiently mined with consumer-grade hardware.
+ Litecoin provides faster transaction confirmations (2.5 minutes on average)
+ and uses a memory-hard, scrypt-based mining proof-of-work algorithm to target
+ the regular computers and GPUs most people already have.
+ The Litecoin network is scheduled to produce 84 million currency units.
+ '';
+ homepage = "https://litecoin.org/";
+ platforms = platforms.unix;
+ license = licenses.mit;
+ broken = stdenv.isDarwin;
+ maintainers = with maintainers; [ offline ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/lnd.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/lnd.nix
new file mode 100644
index 000000000000..831195f06f0d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/lnd.nix
@@ -0,0 +1,40 @@
+{ buildGoModule, fetchFromGitHub, lib
+, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" ]
+}:
+
+buildGoModule rec {
+ pname = "lnd";
+ version = "0.11.0-beta";
+
+ src = fetchFromGitHub {
+ owner = "lightningnetwork";
+ repo = "lnd";
+ rev = "v${version}";
+ sha256 = "1r1hwz8ka5mnmrvj9zcd78kn68g8fg3d4bdx9i0xy4sc2hh1dcpj";
+ };
+
+ vendorSha256 = "090b9sxvdwh787w0rhrcbky9pbx64qgqx1pvk9ysk3886nxdhf7k";
+
+ doCheck = false;
+
+ subPackages = ["cmd/lncli" "cmd/lnd"];
+
+ preBuild = let
+ buildVars = {
+ RawTags = lib.concatStringsSep "," tags;
+ GoVersion = "$(go version | egrep -o 'go[0-9]+[.][^ ]*')";
+ };
+ buildVarsFlags = lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "-X github.com/lightningnetwork/lnd/build.${k}=${v}") buildVars);
+ in
+ lib.optionalString (tags != []) ''
+ buildFlagsArray+=("-tags=${lib.concatStringsSep " " tags}")
+ buildFlagsArray+=("-ldflags=${buildVarsFlags}")
+ '';
+
+ meta = with lib; {
+ description = "Lightning Network Daemon";
+ homepage = "https://github.com/lightningnetwork/lnd";
+ license = lib.licenses.mit;
+ maintainers = with maintainers; [ cypherpunk2140 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/masari.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/masari.nix
new file mode 100644
index 000000000000..dfa005abb6ec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/masari.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost
+, lmdb, miniupnpc, readline }:
+
+stdenv.mkDerivation rec {
+ pname = "masari";
+ version = "0.1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "masari-project";
+ repo = "masari";
+ rev = "v${version}";
+ sha256 = "0l6i21wkq5f6z8xr756i7vqgkzk7lixaa31ydy34fkfcqxppgxz3";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ boost miniupnpc openssl lmdb unbound readline ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "scalability-focused, untraceable, secure, and fungible cryptocurrency using the RingCT protocol";
+ homepage = "https://www.getmasari.org/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ fpletz ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
new file mode 100644
index 000000000000..16f4aefe349e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
@@ -0,0 +1,111 @@
+{ stdenv, wrapQtAppsHook, makeDesktopItem
+, fetchFromGitHub
+, cmake, qttools, pkgconfig
+, qtbase, qtdeclarative, qtgraphicaleffects
+, qtmultimedia, qtxmlpatterns
+, qtquickcontrols, qtquickcontrols2
+, monero, miniupnpc, unbound, readline
+, boost, libunwind, libsodium, pcsclite
+, randomx, zeromq, libgcrypt, libgpgerror
+, hidapi, rapidjson
+, trezorSupport ? true
+, libusb1 ? null
+, protobuf ? null
+, python3 ? null
+}:
+
+with stdenv.lib;
+
+assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
+
+let
+ arch = if stdenv.isx86_64 then "x86-64"
+ else if stdenv.isi686 then "i686"
+ else if stdenv.isAarch64 then "armv8-a"
+ else throw "unsupported architecture";
+in
+
+stdenv.mkDerivation rec {
+ pname = "monero-gui";
+ version = "0.17.1.5";
+
+ src = fetchFromGitHub {
+ owner = "monero-project";
+ repo = "monero-gui";
+ rev = "v${version}";
+ sha256 = "0qlcqli0wvrjfy89mbgh1hpmk60dxgn5sws93h8lhgyfwx557iw0";
+ };
+
+ nativeBuildInputs = [
+ cmake pkgconfig wrapQtAppsHook
+ (getDev qttools)
+ ];
+
+ buildInputs = [
+ qtbase qtdeclarative qtgraphicaleffects
+ qtmultimedia qtquickcontrols qtquickcontrols2
+ qtxmlpatterns
+ monero miniupnpc unbound readline
+ randomx libgcrypt libgpgerror
+ boost libunwind libsodium pcsclite
+ zeromq hidapi rapidjson
+ ] ++ optionals trezorSupport [ libusb1 protobuf python3 ];
+
+ postUnpack = ''
+ # copy monero sources here
+ # (needs to be writable)
+ cp -r ${monero.source}/* source/monero
+ chmod -R +w source/monero
+ '';
+
+ patches = [ ./move-log-file.patch ];
+
+ postPatch = ''
+ # set monero-gui version
+ substituteInPlace src/version.js.in \
+ --replace '@VERSION_TAG_GUI@' '${version}'
+
+ # use monerod from the monero package
+ substituteInPlace src/daemon/DaemonManager.cpp \
+ --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin'
+
+ # only build external deps, *not* the full monero
+ substituteInPlace CMakeLists.txt \
+ --replace 'add_subdirectory(monero)' \
+ 'add_subdirectory(monero EXCLUDE_FROM_ALL)'
+ '';
+
+ cmakeFlags = [ "-DARCH=${arch}" ];
+
+ desktopItem = makeDesktopItem {
+ name = "monero-wallet-gui";
+ exec = "monero-wallet-gui";
+ icon = "monero";
+ desktopName = "Monero";
+ genericName = "Wallet";
+ categories = "Network;Utility;";
+ };
+
+ postInstall = ''
+ # install desktop entry
+ install -Dm644 -t $out/share/applications \
+ ${desktopItem}/share/applications/*
+
+ # install icons
+ for n in 16 24 32 48 64 96 128 256; do
+ size=$n"x"$n
+ install -Dm644 \
+ -t $out/share/icons/hicolor/$size/apps/monero.png \
+ $src/images/appicons/$size.png
+ done;
+ '';
+
+ meta = {
+ description = "Private, secure, untraceable currency";
+ homepage = "https://getmonero.org/";
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ badPlatforms = platforms.darwin;
+ maintainers = with maintainers; [ rnhmjoj ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch
new file mode 100644
index 000000000000..6d3313624e37
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch
@@ -0,0 +1,14 @@
+diff --git a/src/main/main.cpp b/src/main/main.cpp
+index c5210e5f..45794d72 100644
+--- a/src/main/main.cpp
++++ b/src/main/main.cpp
+@@ -220,6 +220,9 @@ int main(int argc, char *argv[])
+ QCommandLineOption logPathOption(QStringList() << "l" << "log-file",
+ QCoreApplication::translate("main", "Log to specified file"),
+ QCoreApplication::translate("main", "file"));
++ logPathOption.setDefaultValue(
++ QStandardPaths::writableLocation(QStandardPaths::CacheLocation)
++ + "/monero-wallet-gui.log");
+
+ QCommandLineOption testQmlOption("test-qml");
+ testQmlOption.setFlags(QCommandLineOption::HiddenFromHelp);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero/default.nix
new file mode 100644
index 000000000000..2978d65e2ef0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub, fetchpatch
+, cmake, pkgconfig
+, boost, miniupnpc, openssl, unbound
+, zeromq, pcsclite, readline, libsodium, hidapi
+, randomx, rapidjson
+, CoreData, IOKit, PCSC
+, trezorSupport ? true
+, libusb1 ? null
+, protobuf ? null
+, python3 ? null
+}:
+
+with stdenv.lib;
+
+assert stdenv.isDarwin -> IOKit != null;
+assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
+
+stdenv.mkDerivation rec {
+ pname = "monero";
+ version = "0.17.1.5";
+
+ src = fetchFromGitHub {
+ owner = "monero-project";
+ repo = "monero";
+ rev = "v${version}";
+ sha256 = "0yy9n2qng02j314h8fh5n0mcy6vpdks0yk4d8ifn8hj03f3g2c8b";
+ fetchSubmodules = true;
+ };
+
+ patches = [
+ ./use-system-libraries.patch
+ ];
+
+ postPatch = ''
+ # remove vendored libraries
+ rm -r external/{miniupnp,randomx,rapidjson,unbound}
+ # export patched source for monero-gui
+ cp -r . $source
+ '';
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ boost miniupnpc openssl unbound
+ zeromq pcsclite readline
+ libsodium hidapi randomx rapidjson
+ protobuf
+ ] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ]
+ ++ optionals trezorSupport [ libusb1 protobuf python3 ];
+
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DUSE_DEVICE_TREZOR=ON"
+ "-DBUILD_GUI_DEPS=ON"
+ "-DReadline_ROOT_DIR=${readline.dev}"
+ "-DRandomX_ROOT_DIR=${randomx}"
+ ] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
+
+ outputs = [ "out" "source" ];
+
+ meta = with stdenv.lib; {
+ description = "Private, secure, untraceable currency";
+ homepage = "https://getmonero.org/";
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ehmry rnhmjoj ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch
new file mode 100644
index 000000000000..57e2a2e9a696
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch
@@ -0,0 +1,69 @@
+diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
+index a8916a7d0..39ec7747b 100644
+--- a/external/CMakeLists.txt
++++ b/external/CMakeLists.txt
+@@ -37,34 +37,16 @@
+
+ find_package(Miniupnpc REQUIRED)
+
+-message(STATUS "Using in-tree miniupnpc")
+-add_subdirectory(miniupnp/miniupnpc)
+-set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
+-if(MSVC)
+- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
+-elseif(NOT MSVC)
+- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
+-endif()
+-if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
+- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE")
+-endif()
+-
+-set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
++set(UPNP_STATIC false PARENT_SCOPE)
++set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
++set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
+
+ find_package(Unbound)
+
+ if(NOT UNBOUND_INCLUDE_DIR OR STATIC)
+- # NOTE: If STATIC is true, CMAKE_FIND_LIBRARY_SUFFIXES has been reordered.
+- # unbound has config tests which used OpenSSL libraries, so -ldl may need to
+- # be set in this case.
+- # The unbound CMakeLists.txt can set it, since it's also needed for the
+- # static OpenSSL libraries set up there after with target_link_libraries.
+- add_subdirectory(unbound)
+-
+- set(UNBOUND_STATIC true PARENT_SCOPE)
+- set(UNBOUND_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/unbound/libunbound" PARENT_SCOPE)
+- set(UNBOUND_LIBRARY "unbound" PARENT_SCOPE)
+- set(UNBOUND_LIBRARY_DIRS "${LIBEVENT2_LIBDIR}" PARENT_SCOPE)
++ set(UNBOUND_STATIC false PARENT_SCOPE)
++ set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
++ set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
+ else()
+ message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}")
+ if(UNBOUND_LIBRARIES)
+@@ -81,4 +63,5 @@ endif()
+ add_subdirectory(db_drivers)
+ add_subdirectory(easylogging++)
+ add_subdirectory(qrcodegen)
+-add_subdirectory(randomx EXCLUDE_FROM_ALL)
++
++find_library(RANDOMX_LIBRARIES NAMES RandomX)
+diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
+index 175741146..088b582f7 100644
+--- a/src/p2p/net_node.inl
++++ b/src/p2p/net_node.inl
+@@ -60,9 +60,9 @@
+ #include "cryptonote_core/cryptonote_core.h"
+ #include "net/parse.h"
+
+-#include <miniupnp/miniupnpc/miniupnpc.h>
+-#include <miniupnp/miniupnpc/upnpcommands.h>
+-#include <miniupnp/miniupnpc/upnperrors.h>
++#include <miniupnpc/miniupnpc.h>
++#include <miniupnpc/upnpcommands.h>
++#include <miniupnpc/upnperrors.h>
+
+ #undef MONERO_DEFAULT_LOG_CATEGORY
+ #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
new file mode 100644
index 000000000000..77e603e8380b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
@@ -0,0 +1,59 @@
+{ lib, appimageTools, fetchurl, makeDesktopItem
+, gsettings-desktop-schemas, gtk2
+}:
+
+let
+ pname = "MyCrypto";
+ version = "1.7.12";
+ sha256 = "0zmdmkli9zxygrcvrd4lbi0xqyq32dqlkxby8lsjknj1nd6l26n3";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/mycryptohq/mycrypto/releases/download/${version}/linux-x86-64_${version}_MyCrypto.AppImage";
+ inherit sha256;
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ desktopName = pname;
+ comment = "MyCrypto is a free, open-source interface for interacting with the blockchain";
+ exec = pname;
+ icon = "mycrypto";
+ categories = "Finance;";
+ };
+
+in appimageTools.wrapType2 rec {
+ inherit name src;
+
+ profile = ''
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk2}/share/gsettings-schemas/${gtk2.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null; # no p32bit needed
+ extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+
+ extraInstallCommands = ''
+ mv $out/bin/{${name},${pname}}
+
+ mkdir -p $out/share
+ cp -rt $out/share ${desktopItem}/share/applications ${appimageContents}/usr/share/icons
+ chmod -R +w $out/share
+ mv $out/share/icons/hicolor/{0x0,256x256}
+ '';
+
+ meta = with lib; {
+ description = "A free, open-source interface for interacting with the blockchain";
+ longDescription = ''
+ MyCrypto is an open-source, client-side tool for generating ether wallets,
+ handling ERC-20 tokens, and interacting with the blockchain more easily.
+ '';
+ homepage = "https://mycrypto.com";
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ oxalica ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/namecoin.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/namecoin.nix
new file mode 100644
index 000000000000..cbce17731043
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/namecoin.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, qrencode, hexdump
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ version = "nc0.20.1";
+ name = "namecoin" + toString (optional (!withGui) "d") + "-" + version;
+
+ src = fetchFromGitHub {
+ owner = "namecoin";
+ repo = "namecoin-core";
+ rev = version;
+ sha256 = "1wpfp9y95lmfg2nk1xqzchwck1wk6gwkya1rj07mf5in9jngxk9z";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ hexdump
+ ];
+
+ buildInputs = [
+ openssl
+ boost
+ libevent
+ db4
+ miniupnpc
+ eject
+ ] ++ optionals withGui [
+ qt4
+ protobuf
+ qrencode
+ ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-boost-libdir=${boost.out}/lib"
+ ];
+
+ meta = {
+ description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
+ homepage = "https://namecoin.org";
+ license = licenses.mit;
+ maintainers = with maintainers; [ infinisil ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch
new file mode 100644
index 000000000000..5bbec1d39bea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b43f02f6..4470abbf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -119,7 +119,7 @@ endif (RAIBLOCKS_SECURE_RPC)
+
+ include_directories (${CMAKE_SOURCE_DIR})
+
+-set(Boost_USE_STATIC_LIBS ON)
++add_definitions(-DBOOST_LOG_DYN_LINK)
+ set(Boost_USE_MULTITHREADED ON)
+
+ if (BOOST_CUSTOM)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix
new file mode 100644
index 000000000000..664e26740629
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix
@@ -0,0 +1,64 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook, boost, libGL
+, qtbase}:
+
+stdenv.mkDerivation rec {
+
+ pname = "nano-wallet";
+ version = "20.0";
+
+ src = fetchFromGitHub {
+ owner = "nanocurrency";
+ repo = "raiblocks";
+ rev = "V${version}";
+ sha256 = "12nrjjd89yjzx20d85ccmp395pl0djpx0x0qb8dgka8xfy11k7xn";
+ fetchSubmodules = true;
+ };
+
+ # Use a patch to force dynamic linking
+ patches = [
+ ./CMakeLists.txt.patch
+ ];
+
+ cmakeFlags = let
+ options = {
+ BOOST_ROOT = boost;
+ Boost_USE_STATIC_LIBS = "OFF";
+ RAIBLOCKS_GUI = "ON";
+ RAIBLOCKS_TEST = "ON";
+ Qt5_DIR = "${qtbase.dev}/lib/cmake/Qt5";
+ Qt5Core_DIR = "${qtbase.dev}/lib/cmake/Qt5Core";
+ Qt5Gui_INCLUDE_DIRS = "${qtbase.dev}/include/QtGui";
+ Qt5Widgets_INCLUDE_DIRS = "${qtbase.dev}/include/QtWidgets";
+ };
+ optionToFlag = name: value: "-D${name}=${value}";
+ in lib.mapAttrsToList optionToFlag options;
+
+ nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
+ buildInputs = [ boost libGL qtbase ];
+
+ buildPhase = ''
+ make nano_wallet
+ '';
+
+ # Move executables under bin directory
+ postInstall = ''
+ mkdir -p $out/bin
+ mv $out/nano* $out/bin/
+ '';
+
+ checkPhase = ''
+ ./core_test
+ '';
+
+ meta = {
+ inherit version;
+ description = "Wallet for Nano cryptocurrency";
+ homepage = "https://nano.org/en/wallet/";
+ license = lib.licenses.bsd2;
+ # Fails on Darwin. See:
+ # https://github.com/NixOS/nixpkgs/pull/39295#issuecomment-386800962
+ platforms = lib.platforms.linux;
+ maintainers = with lib.maintainers; [ jluttine ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
new file mode 100644
index 000000000000..45143a797e5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
+ dotnetPackages, dotnetCorePackages
+}:
+
+let
+ deps = import ./deps.nix {
+ fetchNuGet = { name, version, sha256 }: fetchurl {
+ name = "nuget-${name}-${version}.nupkg";
+ url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+ inherit sha256;
+ };
+ };
+ dotnetSdk = dotnetCorePackages.sdk_3_1;
+in
+
+stdenv.mkDerivation rec {
+ pname = "nbxplorer";
+ version = "2.1.46";
+
+ src = fetchFromGitHub {
+ owner = "dgarage";
+ repo = "NBXplorer";
+ rev = "v${version}";
+ sha256 = "1aph7yiwmch7s7x1qkzqv1shs3v6kg8i2s7266la0yp9ksf3w35p";
+ };
+
+ nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
+
+ buildPhase = ''
+ export HOME=$TMP/home
+ export DOTNET_CLI_TELEMETRY_OPTOUT=1
+ export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
+ nuget sources Add -Name tmpsrc -Source $TMP/nuget
+ nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
+
+ dotnet restore --source $TMP/nuget NBXplorer/NBXplorer.csproj
+ dotnet publish --no-restore --output $out/share/$pname -c Release NBXplorer/NBXplorer.csproj
+ '';
+
+ installPhase = ''
+ makeWrapper $out/share/$pname/NBXplorer $out/bin/$pname \
+ --set DOTNET_ROOT "${dotnetSdk}"
+ '';
+
+ dontStrip = true;
+
+ meta = with lib; {
+ description = "Minimalist UTXO tracker for HD Cryptocurrency Wallets";
+ maintainers = with maintainers; [ kcalvinalvin earvstedt ];
+ license = lib.licenses.mit;
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
new file mode 100644
index 000000000000..85d395089de1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
@@ -0,0 +1,1077 @@
+{ fetchNuGet }: [
+ (fetchNuGet {
+ name = "DBTrie";
+ version = "1.0.38";
+ sha256 = "09n9f2j0pha2np9cpbgjfs19jwvfmrglws89izarq71gl8jia6d9";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.JsonPatch";
+ version = "3.1.5";
+ sha256 = "0agcp9c8zf59bliybjfg5whby7k1i1xc4sccyyyj3qcx1snf6lfx";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
+ version = "3.1.5";
+ sha256 = "1n76xr3jn4bcxm9f3lk8k76zn39mhyqcj5b0dqhi2xykyvvrqjgc";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Azure.Amqp";
+ version = "2.4.2";
+ sha256 = "0pfgl6fnw3apwasfg1dp5pvi5h0z0vmznhn2bfsgwndn1xlfw1g9";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Azure.ServiceBus";
+ version = "4.1.3";
+ sha256 = "1mj21nal3hv8b5678rah808521c5rkb0yh6hrlqirsdgxwnl6z6g";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Azure.Services.AppAuthentication";
+ version = "1.0.3";
+ sha256 = "0as64agcsilwgbvwx7iw3abdxyp9cbfpczbagjz49mqmmgnqp899";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CodeCoverage";
+ version = "16.7.1";
+ sha256 = "1farw63445cdyciplfs6l9j1gayxw16rkzmrwsiswfyjhqz70xd4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CSharp";
+ version = "4.0.1";
+ sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CSharp";
+ version = "4.3.0";
+ sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CSharp";
+ version = "4.7.0";
+ sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Abstractions";
+ version = "2.1.0";
+ sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
+ version = "2.1.0";
+ sha256 = "0xx3idb1l5y1da5zynlys5gyarijmw5pc9hgci8xdxbrcv6rzbjb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.FileExtensions";
+ version = "2.1.0";
+ sha256 = "1lz2xwm63clbh9dfhmygbqvcp4dsrwh5jihv82dmqd5h7lqngl40";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration.Ini";
+ version = "2.1.0";
+ sha256 = "0bchsljywcq36si4zs2dcx2gj8x98ww93dh2bx2z6x5ilxyjnfip";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Configuration";
+ version = "2.1.0";
+ sha256 = "04rjl38wlr1jjjpbzgf64jp0ql6sbzbil0brwq9mgr3hdgwd7vx2";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileProviders.Abstractions";
+ version = "2.1.0";
+ sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileProviders.Physical";
+ version = "2.1.0";
+ sha256 = "1firpsl5bk219i9gdfgiqw1zm68146h1dzx9hvawfpw9slfaa56w";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileSystemGlobbing";
+ version = "2.1.0";
+ sha256 = "1d2622qp22x1cnlwycnzjbc3sgi9jria26fk78zwzsa08npa3avv";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Abstractions";
+ version = "1.0.0";
+ sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Abstractions";
+ version = "2.1.0";
+ sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Primitives";
+ version = "2.1.0";
+ sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.IdentityModel.Clients.ActiveDirectory";
+ version = "3.14.2";
+ sha256 = "0g9a2z1qjxd71lqqghp0a542xk9jkvz951bbnnnw43is4hlnqncq";
+ })
+ (fetchNuGet {
+ name = "Microsoft.IdentityModel.JsonWebTokens";
+ version = "5.4.0";
+ sha256 = "0a5fn0p10dmkwa7vvbq28xw78aq33xm7c82l7vhla95n0lr178n8";
+ })
+ (fetchNuGet {
+ name = "Microsoft.IdentityModel.Logging";
+ version = "5.4.0";
+ sha256 = "1idlpyg3q3syam6aflfbnsa7iql685mjralr1cnfpryf00lm59v0";
+ })
+ (fetchNuGet {
+ name = "Microsoft.IdentityModel.Tokens";
+ version = "5.4.0";
+ sha256 = "0gpdh5rs0p97zm41pphha8n3ccd50b1iszikj3917f111khpw8l0";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NET.Test.Sdk";
+ version = "16.7.1";
+ sha256 = "0yqxipj74ax2n76w9ccydppx78ym8m5fda88qnvj4670qjvl0kf8";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "1.0.1";
+ sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "1.0.2";
+ sha256 = "17rrj0awknxx6rpdxr7yijdxqdmbbpdlcf2nsadjbd4d2gw7dck0";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "1.1.0";
+ sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Targets";
+ version = "1.0.1";
+ sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Targets";
+ version = "1.1.0";
+ sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+ })
+ (fetchNuGet {
+ name = "Microsoft.TestPlatform.ObjectModel";
+ version = "16.7.1";
+ sha256 = "0s9dyh99gzdpk1i5v468i2r9m6i3jrr41r394pwdwiajsz99kay0";
+ })
+ (fetchNuGet {
+ name = "Microsoft.TestPlatform.TestHost";
+ version = "16.7.1";
+ sha256 = "1xik06rxn9ps83in0zn9vcl2ibv3acmdqvrx07qq89lxj1sgqlhs";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Win32.Primitives";
+ version = "4.0.1";
+ sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Win32.Primitives";
+ version = "4.3.0";
+ sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Win32.Registry";
+ version = "4.3.0";
+ sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7";
+ })
+ (fetchNuGet {
+ name = "NBitcoin.Altcoins";
+ version = "2.0.21";
+ sha256 = "0xmygiwjlia7fbxy63893jb15g6fxggxxr9bbm8znd9bs3jzp2g1";
+ })
+ (fetchNuGet {
+ name = "NBitcoin.TestFramework";
+ version = "2.0.12";
+ sha256 = "1d6lmymc9x3p74c8hc2x3m61ncnkqqgrddw9cw2m0zkvilkncsns";
+ })
+ (fetchNuGet {
+ name = "NBitcoin";
+ version = "5.0.58";
+ sha256 = "0qim9xbbj380254iyi1jsh2gnr90ddwd2593jw9a8bjwnlk7qr2c";
+ })
+ (fetchNuGet {
+ name = "NBitcoin";
+ version = "5.0.60";
+ sha256 = "0pin4ldfz5lfxyd47mj1ypyp8lmj0v5nq5zvygdjna956vphd39v";
+ })
+ (fetchNuGet {
+ name = "NETStandard.Library";
+ version = "1.6.1";
+ sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+ })
+ (fetchNuGet {
+ name = "NETStandard.Library";
+ version = "2.0.3";
+ sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json.Bson";
+ version = "1.0.2";
+ sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "10.0.3";
+ sha256 = "06vy67bkshclpz69kps4vgzc9h2cgg41c8vlqmdbwclfky7c4haq";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "11.0.1";
+ sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "12.0.2";
+ sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "9.0.1";
+ sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+ })
+ (fetchNuGet {
+ name = "NicolasDorier.CommandLine.Configuration";
+ version = "1.0.0.3";
+ sha256 = "0al0pd4zhjpmn8m208xjmy17cbyab68grzdvzr2lhsckwkl6b1jg";
+ })
+ (fetchNuGet {
+ name = "NicolasDorier.CommandLine";
+ version = "1.0.0.2";
+ sha256 = "08a9l18zkhcfa6f56xqylzvmqjzgxsmgkpm2r3ckvxfyml6w0qyy";
+ })
+ (fetchNuGet {
+ name = "NicolasDorier.StandardConfiguration";
+ version = "1.0.0.18";
+ sha256 = "0lgssxafv6cqlw21fb79fm0fcln0clgsk6zadcwrnjv9vampfw7b";
+ })
+ (fetchNuGet {
+ name = "NuGet.Frameworks";
+ version = "5.0.0";
+ sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
+ })
+ (fetchNuGet {
+ name = "RabbitMQ.Client";
+ version = "5.1.2";
+ sha256 = "195nxmnva1z2p0ahvn0kswv4d39f5bdy2sl3cxcvfziamc21xrmd";
+ })
+ (fetchNuGet {
+ name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+ })
+ (fetchNuGet {
+ name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+ })
+ (fetchNuGet {
+ name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.IO.Compression";
+ version = "4.3.0";
+ sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Net.Http";
+ version = "4.0.1";
+ sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Net.Http";
+ version = "4.3.0";
+ sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Net.Security";
+ version = "4.3.0";
+ sha256 = "0dnqjhw445ay3chpia9p6vy4w2j6s9vy3hxszqvdanpvvyaxijr3";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Security.Cryptography.Apple";
+ version = "4.3.0";
+ sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Security.Cryptography";
+ version = "4.0.0";
+ sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System";
+ version = "4.0.0";
+ sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System";
+ version = "4.3.0";
+ sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+ })
+ (fetchNuGet {
+ name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+ })
+ (fetchNuGet {
+ name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+ })
+ (fetchNuGet {
+ name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+ version = "4.3.0";
+ sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
+ })
+ (fetchNuGet {
+ name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+ })
+ (fetchNuGet {
+ name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+ })
+ (fetchNuGet {
+ name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+ })
+ (fetchNuGet {
+ name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+ })
+ (fetchNuGet {
+ name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+ })
+ (fetchNuGet {
+ name = "System.AppContext";
+ version = "4.3.0";
+ sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
+ })
+ (fetchNuGet {
+ name = "System.Buffers";
+ version = "4.3.0";
+ sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+ })
+ (fetchNuGet {
+ name = "System.Buffers";
+ version = "4.4.0";
+ sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19";
+ })
+ (fetchNuGet {
+ name = "System.Buffers";
+ version = "4.5.0";
+ sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Concurrent";
+ version = "4.0.12";
+ sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Concurrent";
+ version = "4.3.0";
+ sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+ })
+ (fetchNuGet {
+ name = "System.Collections.NonGeneric";
+ version = "4.3.0";
+ sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Specialized";
+ version = "4.3.0";
+ sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+ })
+ (fetchNuGet {
+ name = "System.Collections";
+ version = "4.0.11";
+ sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+ })
+ (fetchNuGet {
+ name = "System.Collections";
+ version = "4.3.0";
+ sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel.Primitives";
+ version = "4.3.0";
+ sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel.TypeConverter";
+ version = "4.3.0";
+ sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel";
+ version = "4.3.0";
+ sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+ })
+ (fetchNuGet {
+ name = "System.Console";
+ version = "4.3.0";
+ sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Debug";
+ version = "4.0.11";
+ sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Debug";
+ version = "4.3.0";
+ sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.DiagnosticSource";
+ version = "4.3.0";
+ sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.DiagnosticSource";
+ version = "4.5.1";
+ sha256 = "1j8dgilsgd0n7y87wq1cdlnwck96wijhbyhdp4d01l1gzm3074c1";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Process";
+ version = "4.3.0";
+ sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tools";
+ version = "4.0.1";
+ sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tools";
+ version = "4.3.0";
+ sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tracing";
+ version = "4.1.0";
+ sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tracing";
+ version = "4.3.0";
+ sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+ })
+ (fetchNuGet {
+ name = "System.Dynamic.Runtime";
+ version = "4.0.11";
+ sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+ })
+ (fetchNuGet {
+ name = "System.Dynamic.Runtime";
+ version = "4.3.0";
+ sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Calendars";
+ version = "4.0.1";
+ sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Calendars";
+ version = "4.3.0";
+ sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Extensions";
+ version = "4.3.0";
+ sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+ })
+ (fetchNuGet {
+ name = "System.Globalization";
+ version = "4.0.11";
+ sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+ })
+ (fetchNuGet {
+ name = "System.Globalization";
+ version = "4.3.0";
+ sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+ })
+ (fetchNuGet {
+ name = "System.IdentityModel.Tokens.Jwt";
+ version = "5.4.0";
+ sha256 = "05f91fjn054bwphmbbg7c38ipl4i81v73j232jgcq6y16dx6ifyc";
+ })
+ (fetchNuGet {
+ name = "System.IO.Compression.ZipFile";
+ version = "4.3.0";
+ sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
+ })
+ (fetchNuGet {
+ name = "System.IO.Compression";
+ version = "4.3.0";
+ sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem.Primitives";
+ version = "4.0.1";
+ sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem.Primitives";
+ version = "4.3.0";
+ sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem";
+ version = "4.0.1";
+ sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem";
+ version = "4.3.0";
+ sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+ })
+ (fetchNuGet {
+ name = "System.IO";
+ version = "4.1.0";
+ sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+ })
+ (fetchNuGet {
+ name = "System.IO";
+ version = "4.3.0";
+ sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+ })
+ (fetchNuGet {
+ name = "System.Linq.Expressions";
+ version = "4.1.0";
+ sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+ })
+ (fetchNuGet {
+ name = "System.Linq.Expressions";
+ version = "4.3.0";
+ sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+ })
+ (fetchNuGet {
+ name = "System.Linq";
+ version = "4.1.0";
+ sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+ })
+ (fetchNuGet {
+ name = "System.Linq";
+ version = "4.3.0";
+ sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+ })
+ (fetchNuGet {
+ name = "System.Memory";
+ version = "4.5.0";
+ sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
+ })
+ (fetchNuGet {
+ name = "System.Net.Http";
+ version = "4.3.0";
+ sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
+ })
+ (fetchNuGet {
+ name = "System.Net.NameResolution";
+ version = "4.3.0";
+ sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
+ })
+ (fetchNuGet {
+ name = "System.Net.Primitives";
+ version = "4.0.11";
+ sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+ })
+ (fetchNuGet {
+ name = "System.Net.Primitives";
+ version = "4.3.0";
+ sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
+ })
+ (fetchNuGet {
+ name = "System.Net.Security";
+ version = "4.3.0";
+ sha256 = "1aa5igz31ivk6kpgsrwck3jccab7wd88wr52lddmgypmbh9mmf87";
+ })
+ (fetchNuGet {
+ name = "System.Net.Sockets";
+ version = "4.3.0";
+ sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebHeaderCollection";
+ version = "4.0.1";
+ sha256 = "10bxpxj80c4z00z3ksrfswspq9qqsw8jwxcbzvymzycb97m9b55q";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebHeaderCollection";
+ version = "4.3.0";
+ sha256 = "0ms3ddjv1wn8sqa5qchm245f3vzzif6l6fx5k92klqpn7zf4z562";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebSockets.Client";
+ version = "4.0.2";
+ sha256 = "0p8m9h94h9za8281hngpi6awka6v26s1gkk0npmxzqq4ilas6b4s";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebSockets.Client";
+ version = "4.3.2";
+ sha256 = "103y8lfsfa5xd1sqmq9sml4qyp4rij2i3fnnw119h119hb04l0rk";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebSockets";
+ version = "4.0.0";
+ sha256 = "04jdhq9dp43x1m6hddn06sq74skc50i1yk6hip0224pj6fwxa4k2";
+ })
+ (fetchNuGet {
+ name = "System.Net.WebSockets";
+ version = "4.3.0";
+ sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
+ })
+ (fetchNuGet {
+ name = "System.Numerics.Vectors";
+ version = "4.4.0";
+ sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
+ })
+ (fetchNuGet {
+ name = "System.ObjectModel";
+ version = "4.0.12";
+ sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+ })
+ (fetchNuGet {
+ name = "System.ObjectModel";
+ version = "4.3.0";
+ sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+ })
+ (fetchNuGet {
+ name = "System.Private.DataContractSerialization";
+ version = "4.1.1";
+ sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
+ })
+ (fetchNuGet {
+ name = "System.Private.DataContractSerialization";
+ version = "4.3.0";
+ sha256 = "06fjipqvjp559rrm825x6pll8gimdj9x1n3larigh5hsm584gndw";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.ILGeneration";
+ version = "4.0.1";
+ sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.ILGeneration";
+ version = "4.3.0";
+ sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.Lightweight";
+ version = "4.0.1";
+ sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.Lightweight";
+ version = "4.3.0";
+ sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit";
+ version = "4.0.1";
+ sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit";
+ version = "4.3.0";
+ sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Extensions";
+ version = "4.0.1";
+ sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Extensions";
+ version = "4.3.0";
+ sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Primitives";
+ version = "4.0.1";
+ sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Primitives";
+ version = "4.3.0";
+ sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.TypeExtensions";
+ version = "4.1.0";
+ sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.TypeExtensions";
+ version = "4.3.0";
+ sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+ })
+ (fetchNuGet {
+ name = "System.Reflection";
+ version = "4.1.0";
+ sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+ })
+ (fetchNuGet {
+ name = "System.Reflection";
+ version = "4.3.0";
+ sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+ })
+ (fetchNuGet {
+ name = "System.Resources.ResourceManager";
+ version = "4.0.1";
+ sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+ })
+ (fetchNuGet {
+ name = "System.Resources.ResourceManager";
+ version = "4.3.0";
+ sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.CompilerServices.Unsafe";
+ version = "4.5.0";
+ sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Extensions";
+ version = "4.1.0";
+ sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Extensions";
+ version = "4.3.0";
+ sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Handles";
+ version = "4.0.1";
+ sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Handles";
+ version = "4.3.0";
+ sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices.RuntimeInformation";
+ version = "4.3.0";
+ sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices";
+ version = "4.1.0";
+ sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices";
+ version = "4.3.0";
+ sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Numerics";
+ version = "4.0.1";
+ sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Numerics";
+ version = "4.3.0";
+ sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Formatters";
+ version = "4.3.0";
+ sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Json";
+ version = "4.0.2";
+ sha256 = "08ypbzs0sb302ga04ds5b2wxa2gg0q50zpa0nvc87ipjhs0v66dn";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Primitives";
+ version = "4.1.1";
+ sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Primitives";
+ version = "4.3.0";
+ sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Xml";
+ version = "4.3.0";
+ sha256 = "1b2cxl2h7s8cydbhbmxhvvq071n9ck61g08npg4gyw7nvg37rfni";
+ })
+ (fetchNuGet {
+ name = "System.Runtime";
+ version = "4.1.0";
+ sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+ })
+ (fetchNuGet {
+ name = "System.Runtime";
+ version = "4.3.0";
+ sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+ })
+ (fetchNuGet {
+ name = "System.Security.Claims";
+ version = "4.3.0";
+ sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Algorithms";
+ version = "4.2.0";
+ sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Algorithms";
+ version = "4.3.0";
+ sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Cng";
+ version = "4.2.0";
+ sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Cng";
+ version = "4.3.0";
+ sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Csp";
+ version = "4.0.0";
+ sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Csp";
+ version = "4.3.0";
+ sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Encoding";
+ version = "4.0.0";
+ sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Encoding";
+ version = "4.3.0";
+ sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.OpenSsl";
+ version = "4.0.0";
+ sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.OpenSsl";
+ version = "4.3.0";
+ sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Primitives";
+ version = "4.0.0";
+ sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Primitives";
+ version = "4.3.0";
+ sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.X509Certificates";
+ version = "4.1.0";
+ sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.X509Certificates";
+ version = "4.3.0";
+ sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+ })
+ (fetchNuGet {
+ name = "System.Security.Principal.Windows";
+ version = "4.3.0";
+ sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
+ })
+ (fetchNuGet {
+ name = "System.Security.Principal";
+ version = "4.3.0";
+ sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding.Extensions";
+ version = "4.0.11";
+ sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding.Extensions";
+ version = "4.3.0";
+ sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding";
+ version = "4.0.11";
+ sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding";
+ version = "4.3.0";
+ sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+ })
+ (fetchNuGet {
+ name = "System.Text.RegularExpressions";
+ version = "4.1.0";
+ sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+ })
+ (fetchNuGet {
+ name = "System.Text.RegularExpressions";
+ version = "4.3.0";
+ sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Channels";
+ version = "4.7.1";
+ sha256 = "038fyrriypwzsj5fwgnkw79hm5ya0x63r724yizgahbxf512chr2";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks.Extensions";
+ version = "4.0.0";
+ sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks.Extensions";
+ version = "4.3.0";
+ sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks";
+ version = "4.0.11";
+ sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks";
+ version = "4.3.0";
+ sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Thread";
+ version = "4.3.0";
+ sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
+ })
+ (fetchNuGet {
+ name = "System.Threading.ThreadPool";
+ version = "4.3.0";
+ sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Timer";
+ version = "4.3.0";
+ sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
+ })
+ (fetchNuGet {
+ name = "System.Threading";
+ version = "4.0.11";
+ sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+ })
+ (fetchNuGet {
+ name = "System.Threading";
+ version = "4.3.0";
+ sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+ })
+ (fetchNuGet {
+ name = "System.Xml.ReaderWriter";
+ version = "4.0.11";
+ sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+ })
+ (fetchNuGet {
+ name = "System.Xml.ReaderWriter";
+ version = "4.3.0";
+ sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XDocument";
+ version = "4.0.11";
+ sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XDocument";
+ version = "4.3.0";
+ sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XmlDocument";
+ version = "4.0.1";
+ sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XmlDocument";
+ version = "4.3.0";
+ sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XmlSerializer";
+ version = "4.0.11";
+ sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XmlSerializer";
+ version = "4.3.0";
+ sha256 = "07pa4sx196vxkgl3csvdmw94nydlsm9ir38xxcs84qjn8cycd912";
+ })
+ (fetchNuGet {
+ name = "xunit.abstractions";
+ version = "2.0.3";
+ sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh";
+ })
+ (fetchNuGet {
+ name = "xunit.analyzers";
+ version = "0.10.0";
+ sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j";
+ })
+ (fetchNuGet {
+ name = "xunit.assert";
+ version = "2.4.1";
+ sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6";
+ })
+ (fetchNuGet {
+ name = "xunit.core";
+ version = "2.4.1";
+ sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a";
+ })
+ (fetchNuGet {
+ name = "xunit.extensibility.core";
+ version = "2.4.1";
+ sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050";
+ })
+ (fetchNuGet {
+ name = "xunit.extensibility.execution";
+ version = "2.4.1";
+ sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia";
+ })
+ (fetchNuGet {
+ name = "xunit.runner.visualstudio";
+ version = "2.4.3";
+ sha256 = "0j1d0rbcm7pp6dypi61sjxp8l22sv261252z55b243l39jgv2rp3";
+ })
+ (fetchNuGet {
+ name = "xunit";
+ version = "2.4.1";
+ sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20";
+ })
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/update.sh
new file mode 100755
index 000000000000..5db2723ef8e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/update.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+
+getVersionFromTags=1 "$scriptDir"/util/update-common.sh nbxplorer "$scriptDir"/deps.nix
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
new file mode 100755
index 000000000000..1402d1cd1eb8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p dotnet-sdk_3
+set -euo pipefail
+
+# Writes deps for dotnet package in $pkgSrc to $depsFile.
+# Expects $pkgSrc to contain a single .sln file.
+
+pkgSrc=$1
+depsFile=$2
+
+sln=$(cd "$pkgSrc"; find * -maxdepth 0 -name '*.sln' | head -1)
+[[ $sln ]] || { echo "No .sln file in $pkgSrc" ; exit 1; }
+
+tmpdir=$(mktemp -d /tmp/$pkgName-src.XXX)
+echo "Using tmp dir: $tmpdir"
+cp -rT "$pkgSrc" "$tmpdir"
+chmod -R +w "$tmpdir"
+
+pushd "$tmpdir" > /dev/null
+mkdir home
+echo "Running dotnet restore for $sln"
+HOME=home DOTNET_CLI_TELEMETRY_OPTOUT=1 \
+ dotnet restore -v normal --no-cache "$sln" > restore_log
+
+echo "{ fetchNuGet }: [" > "$depsFile"
+while read pkgSpec; do
+ { read name; read version; } < <(
+ # Ignore build version part: 1.0.0-beta2+77df2220 -> 1.0.0-beta2
+ sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkgSpec"
+ )
+ sha256=$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkgSpec")"/*.nupkg)
+ cat >> "$depsFile" <<EOF
+ (fetchNuGet {
+ name = "$name";
+ version = "$version";
+ sha256 = "$sha256";
+ })
+EOF
+done < <(find home/.nuget/packages -name '*.nuspec' | LC_ALL=C sort)
+echo "]" >> "$depsFile"
+
+echo "Created $depsFile"
+
+popd > /dev/null
+rm -r $tmpdir
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
new file mode 100755
index 000000000000..c69168ccbbb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p coreutils curl jq common-updater-scripts dotnet-sdk_3
+set -euo pipefail
+
+# This script uses the following env vars:
+# getVersionFromTags
+# onlyCreateDeps
+
+pkgName=$1
+depsFile=$2
+
+: ${getVersionFromTags:=}
+: ${onlyCreateDeps:=}
+
+scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+nixpkgs=$(realpath "$scriptDir"/../../../../..)
+
+evalNixpkgs() {
+ nix eval --raw "(with import \"$nixpkgs\" {}; $1)"
+}
+
+getRepo() {
+ url=$(evalNixpkgs $pkgName.src.meta.homepage)
+ echo $(basename $(dirname $url))/$(basename $url)
+}
+
+getLatestVersionTag() {
+ "$nixpkgs"/pkgs/common-updater/scripts/list-git-tags https://github.com/$(getRepo) 2>/dev/null \
+ | sort -V | tail -1 | sed 's|^v||'
+}
+
+if [[ ! $onlyCreateDeps ]]; then
+ oldVersion=$(evalNixpkgs "$pkgName.version")
+ if [[ $getVersionFromTags ]]; then
+ newVersion=$(getLatestVersionTag)
+ else
+ newVersion=$(curl -s "https://api.github.com/repos/$(getRepo)/releases" | jq -r '.[0].name')
+ fi
+
+ if [[ $newVersion == $oldVersion ]]; then
+ echo "nixpkgs already has the latest version $newVersion"
+ echo "Run this script with env var onlyCreateDeps=1 to recreate "$(basename "$depsFile")
+ exit 0
+ else
+ echo "Updating $pkgName: $oldVersion -> $newVersion"
+ (cd "$nixpkgs" && update-source-version "$pkgName" "$newVersion")
+ fi
+fi
+
+storeSrc="$(nix-build "$nixpkgs" -A $pkgName.src --no-out-link)"
+. "$scriptDir"/create-deps.sh "$storeSrc" "$depsFile"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
new file mode 100644
index 000000000000..563b2378f845
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, cmake
+, llvmPackages
+, openssl
+, pkg-config
+, stdenv
+, systemd
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "openethereum";
+ version = "3.1.0";
+
+ src = fetchFromGitHub {
+ owner = "openethereum";
+ repo = "openethereum";
+ rev = "v${version}";
+ sha256 = "cs84Zz0nhagGDu5sDFTaFZF3SPEgJU8F4vGX7KLihOM=";
+ };
+
+ cargoSha256 = "6suNkHw1BbISb0MkYkUaD+mpUal+kn3y1SFVqzJFqJc=";
+
+ LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+ nativeBuildInputs = [
+ cmake
+ llvmPackages.clang
+ llvmPackages.libclang
+ pkg-config
+ ];
+
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isLinux [ systemd ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ];
+
+ cargoBuildFlags = [ "--features final" ];
+
+ # test result: FAILED. 88 passed; 13 failed; 0 ignored; 0 measured; 0 filtered out
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Fast, light, robust Ethereum implementation";
+ homepage = "http://parity.io/ethereum";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ akru xrelkd ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix
new file mode 100644
index 000000000000..b18c121607ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, pkgs, fetchurl, makeWrapper, nodePackages }:
+
+let
+
+uiEnv = pkgs.callPackage ./env.nix { };
+
+in stdenv.mkDerivation rec {
+ pname = "parity-ui";
+ version = "0.3.4";
+
+ src = fetchurl {
+ url = "https://github.com/parity-js/shell/releases/download/v${version}/parity-ui_${version}_amd64.deb";
+ sha256 = "1xbd00r9ph8w2d6d2c5xg4b5l74ljzs50rpc6kahfznypmh4kr73";
+ name = "${pname}-${version}.deb";
+ };
+
+ nativeBuildInputs = [ makeWrapper nodePackages.asar ];
+
+ buildCommand = ''
+ mkdir -p $out/usr/
+ ar p $src data.tar.xz | tar -C $out -xJ .
+ substituteInPlace $out/usr/share/applications/parity-ui.desktop \
+ --replace "/opt/Parity UI" $out/bin
+ mv $out/usr/* $out/
+ mv "$out/opt/Parity UI" $out/share/parity-ui
+ rm -r $out/usr/
+ rm -r $out/opt/
+
+ fixupPhase
+
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${uiEnv.libPath}:$out/share/parity-ui" \
+ $out/share/parity-ui/parity-ui
+
+ find $out/share/parity-ui -name "*.node" -exec patchelf --set-rpath "${uiEnv.libPath}:$out/share/parity-ui" {} \;
+
+ mkdir -p $out/bin
+ ln -s $out/share/parity-ui/parity-ui $out/bin/parity-ui
+ '';
+
+ meta = with stdenv.lib; {
+ description = "UI for Parity. Fast, light, robust Ethereum implementation";
+ homepage = "http://parity.io";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.sorpaas ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix
new file mode 100644
index 000000000000..a878bbf2e3e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix
@@ -0,0 +1,19 @@
+{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk2, atk, pango, freetype, fontconfig
+, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
+, nss, xorg, libcap, systemd, libnotify, libsecret, gnome2 }:
+
+let
+ packages = [
+ stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3
+ fontconfig gdk-pixbuf cairo cups expat libgpgerror alsaLib nspr nss
+ xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
+ xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
+ xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
+ xorg.libxcb libsecret gnome2.GConf
+ ];
+
+ libPathNative = lib.makeLibraryPath packages;
+ libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
+ libPath = "${libPathNative}:${libPath64}";
+
+in { inherit packages libPath; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix
new file mode 100644
index 000000000000..f30e9a609808
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, autoreconfHook
+, boost
+, db48
+, fetchurl
+, libevent
+, miniupnpc
+, openssl
+, pkgconfig
+, zeromq
+, zlib
+, unixtools
+, python3
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "particl-core";
+ version = "0.19.1.1";
+
+ src = fetchurl {
+ url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
+ sha256 = "11y5q2srkh6r2samppjb5mg6hl79y16j2lj1r23p0968vb9c45kl";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ openssl db48 boost zlib miniupnpc libevent zeromq unixtools.hexdump python3 ];
+
+ configureFlags = [
+ "--disable-bench"
+ "--with-boost-libdir=${boost.out}/lib"
+ ] ++ optionals (!doCheck) [
+ "--enable-tests=no"
+ ];
+
+ # Always check during Hydra builds
+ doCheck = true;
+ preCheck = "patchShebangs test";
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Privacy-Focused Marketplace & Decentralized Application Platform";
+ longDescription= ''
+ An open source, decentralized privacy platform built for global person to person eCommerce.
+ RPC daemon and CLI client only.
+ '';
+ homepage = "https://particl.io/";
+ maintainers = with maintainers; [ demyanrogozhin ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/pivx.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/pivx.nix
new file mode 100644
index 000000000000..6d6f881ae65f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/pivx.nix
@@ -0,0 +1,59 @@
+{ fetchFromGitHub, stdenv, pkgconfig, autoreconfHook, wrapQtAppsHook ? null
+, openssl, db48, boost, zlib, miniupnpc, gmp
+, qrencode, glib, protobuf, yasm, libevent
+, util-linux, qtbase ? null, qttools ? null
+, enableUpnp ? false
+, disableWallet ? false
+, disableDaemon ? false
+, withGui ? false }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ name = "pivx-${version}";
+ version = "4.1.1";
+
+ src = fetchFromGitHub {
+ owner = "PIVX-Project";
+ repo= "PIVX";
+ rev = "v${version}";
+ sha256 = "03ndk46h6093v8s18d5iffz48zhlshq7jrk6vgpjfs6z2iqgd2sy";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ] ++ optionals withGui [ wrapQtAppsHook ];
+ buildInputs = [ glib gmp openssl db48 yasm boost zlib libevent miniupnpc protobuf util-linux ]
+ ++ optionals withGui [ qtbase qttools qrencode ];
+
+ configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+ ++ optional enableUpnp "--enable-upnp-default"
+ ++ optional disableWallet "--disable-wallet"
+ ++ optional disableDaemon "--disable-daemon"
+ ++ optionals withGui [ "--with-gui=yes"
+ "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+ ];
+
+ enableParallelBuilding = true;
+ doChecks = true;
+ postBuild = ''
+ mkdir -p $out/share/applications $out/share/icons
+ cp contrib/debian/pivx-qt.desktop $out/share/applications/
+ cp share/pixmaps/*128.png $out/share/icons/
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/test_pivx
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An open source crypto-currency focused on fast private transactions";
+ longDescription = ''
+ PIVX is an MIT licensed, open source, blockchain-based cryptocurrency with
+ ultra fast transactions, low fees, high network decentralization, and
+ Zero Knowledge cryptography proofs for industry-leading transaction anonymity.
+ '';
+ license = licenses.mit;
+ homepage = "https://pivx.org";
+ maintainers = with maintainers; [ wucke13 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
new file mode 100644
index 000000000000..866adeea2780
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
@@ -0,0 +1,41 @@
+{ clang
+, fetchFromGitHub
+, lib
+, llvmPackages
+, protobuf
+, rustPlatform
+}:
+rustPlatform.buildRustPackage rec {
+ pname = "polkadot";
+ version = "0.8.26-1";
+
+ src = fetchFromGitHub {
+ owner = "paritytech";
+ repo = "polkadot";
+ rev = "v${version}";
+ sha256 = "17ji1gjrx3gzw4msaz9kgvm132y14wgh8z183l3mfw1cj44a6kqk";
+ };
+
+ cargoSha256 = "07zwlwx02xw1y20br2c4grwv7bprhynqy7gav4qh3vw117ijpiqk";
+
+ nativeBuildInputs = [ clang ];
+
+ LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+ PROTOC = "${protobuf}/bin/protoc";
+
+ # NOTE: We don't build the WASM runtimes since this would require a more
+ # complicated rust environment setup. The resulting binary is still useful for
+ # live networks since those just use the WASM blob from the network chainspec.
+ BUILD_DUMMY_WASM_BINARY = 1;
+
+ # We can't run the test suite since we didn't compile the WASM runtimes.
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Polkadot Node Implementation";
+ homepage = "https://polkadot.network";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ akru andresilva RaghavSood ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/quorum.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/quorum.nix
new file mode 100644
index 000000000000..eb98777c587d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/quorum.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, buildGoPackage, git, which, removeReferencesTo, go }:
+
+buildGoPackage rec {
+ pname = "quorum";
+ version = "2.5.0";
+
+ goPackagePath = "github.com/jpmorganchase/quorum";
+
+ src = fetchFromGitHub {
+ owner = "jpmorganchase";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0xfdaqp9bj5dkw12gy19lxj73zh7w80j051xclsvnd41sfah86ll";
+ };
+
+ buildInputs = [ git which ];
+
+ buildPhase = ''
+ cd "go/src/$goPackagePath"
+ make geth bootnode swarm
+ '';
+
+ installPhase = ''
+ mkdir -pv $out/bin
+ cp -v build/bin/geth build/bin/bootnode build/bin/swarm $out/bin
+ '';
+
+ # fails with `GOFLAGS=-trimpath`
+ allowGoReference = true;
+ preFixup = ''
+ find $out -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${go} '{}' +
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A permissioned implementation of Ethereum supporting data privacy";
+ homepage = "https://www.goquorum.com/";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ mmahut ];
+ platforms = subtractLists ["aarch64-linux"] platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch
new file mode 100644
index 000000000000..57d66ce5919a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch
@@ -0,0 +1,15 @@
+Subject: Prevent "-dirty" from being erroneously added to the version
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index d36d1a3..00048fc 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -28,7 +28,7 @@ always:
+ # Always rebuild because .git/HEAD is a symbolic ref one can't depend on
+ StellarCoreVersion.h: always
+ @vers=$$(cd "$(srcdir)" \
+- && git describe --always --dirty --tags 2>/dev/null \
++ && git describe --always --tags 2>/dev/null \
+ || echo "$(PACKAGE) $(VERSION)"); \
+ echo "#define STELLAR_CORE_VERSION \"$$vers\"" > $@~
+ @if cmp -s $@~ $@; then rm -f $@~; else \
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/stellar-core.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/stellar-core.nix
new file mode 100644
index 000000000000..6bb717a0344b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/stellar-core.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchgit, autoconf, libtool, automake, pkgconfig, git
+, bison, flex, postgresql }:
+
+let
+ pname = "stellar-core";
+ version = "0.5.1";
+
+in stdenv.mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchgit {
+ url = "https://github.com/stellar/stellar-core.git";
+ rev = "refs/tags/v${version}";
+ sha256 = "0ldw3qr0sajgam38z2w2iym0214ial6iahbzx3b965cw92n8n88z";
+ fetchSubmodules = true;
+ leaveDotGit = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ autoconf automake libtool git ];
+
+ propagatedBuildInputs = [ bison flex postgresql ];
+
+ patches = [ ./stellar-core-dirty-version.patch ];
+
+ preConfigure = ''
+ # Everything needs to be staged in git because the build uses
+ # `git ls-files` to search for source files to compile.
+ git add .
+
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Implements the Stellar Consensus Protocol, a federated consensus protocol";
+ longDescription = ''
+ Stellar-core is the backbone of the Stellar network. It maintains a
+ local copy of the ledger, communicating and staying in sync with other
+ instances of stellar-core on the network. Optionally, stellar-core can
+ store historical records of the ledger and participate in consensus.
+ '';
+ homepage = "https://www.stellar.org/";
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ chris-martin ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/sumokoin.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/sumokoin.nix
new file mode 100644
index 000000000000..beb294d2dfe0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/sumokoin.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, cmake, unbound, openssl, boost
+, libunwind, lmdb, miniupnpc }:
+
+stdenv.mkDerivation rec {
+ pname = "sumokoin";
+ version = "0.2.0.0";
+
+ src = fetchFromGitHub {
+ owner = "sumoprojects";
+ repo = "sumokoin";
+ rev = "v${version}";
+ sha256 = "0ndgcawhxh3qb3llrrilrwzhs36qpxv7f53rxgcansbff9b3za6n";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ unbound openssl boost libunwind lmdb miniupnpc ];
+
+ postPatch = ''
+ substituteInPlace src/blockchain_db/lmdb/db_lmdb.cpp --replace mdb_size_t size_t
+ '';
+
+ cmakeFlags = [
+ "-DLMDB_INCLUDE=${lmdb}/include"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "A fork of Monero and a truely fungible cryptocurrency";
+ homepage = "https://www.sumokoin.org/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ fpletz ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/tessera.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/tessera.nix
new file mode 100644
index 000000000000..84f7925d2180
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/tessera.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+ pname = "tessera";
+ version = "0.10.2";
+
+ src = fetchurl {
+ url = "https://oss.sonatype.org/service/local/repositories/releases/content/com/jpmorgan/quorum/${pname}-app/${version}/${pname}-app-${version}-app.jar";
+ sha256 = "1zn8w7q0q5man0407kb82lw4mlvyiy9whq2f6izf2b5415f9s0m4";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontUnpack = true;
+
+ installPhase = ''
+ makeWrapper ${jre}/bin/java $out/bin/tessera --add-flags "-jar $src"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Enterprise Implementation of Quorum's transaction manager";
+ homepage = "https://github.com/jpmorganchase/tessera";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ mmahut ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix
new file mode 100644
index 000000000000..b8aa3de44dad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "turbo-geth";
+ version = "2020.12.01";
+
+ src = fetchFromGitHub {
+ owner = "ledgerwatch";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0l1qj10vhfkrk66zihz8m24pnyj8jbb65a7amvphp07r199swy2a";
+ };
+
+ vendorSha256 = "16vawkky612zf45d8dhipjmhrprmi28z9wdcnjy07x3bxdyfbhfr";
+ runVend = true;
+
+ subPackages = [
+ "cmd/tg"
+ "cmd/restapi"
+ "cmd/rpcdaemon"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ledgerwatch/turbo-geth/";
+ description = "Ethereum node and geth fork focused on scalability and modularity";
+ license = with licenses; [ lgpl3 gpl3 ];
+ maintainers = with maintainers; [ xwvvvvwx ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/vertcoin.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/vertcoin.nix
new file mode 100644
index 000000000000..21104012f4d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/vertcoin.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, openssl
+, boost
+, libevent
+, autoreconfHook
+, db4
+, pkgconfig
+, protobuf
+, hexdump
+, zeromq
+, withGui
+, qtbase ? null
+, qttools ? null
+, wrapQtAppsHook ? null
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "vertcoin";
+ version = "0.15.0.1";
+
+ name = pname + toString (optional (!withGui) "d") + "-" + version;
+
+ src = fetchFromGitHub {
+ owner = pname + "-project";
+ repo = pname + "-core";
+ rev = version;
+ sha256 = "09q7qicw52gv225hq6wlpsf4zr4hjc8miyim5cygi5nxxrlw7kd3";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ hexdump
+ ] ++ optionals withGui [
+ wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ openssl
+ boost
+ libevent
+ db4
+ zeromq
+ ] ++ optionals withGui [
+ qtbase
+ qttools
+ protobuf
+ ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-boost-libdir=${boost.out}/lib"
+ ] ++ optionals withGui [
+ "--with-gui=qt5"
+ "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+ ];
+
+ meta = {
+ description = "A digital currency with mining decentralisation and ASIC resistance as a key focus";
+ homepage = "https://vertcoin.org/";
+ license = licenses.mit;
+ maintainers = [ maintainers.mmahut ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh
new file mode 100644
index 000000000000..814f92a341a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh
@@ -0,0 +1,98 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p dotnet-sdk_3 nixfmt
+
+# Run this script to generate deps.nix
+# ./create_deps.sh /path/to/package/source/checkout > deps.nix
+
+# TODO: consolidate with other dotnet deps generation scripts by which
+# this script is inspired:
+# - pkgs/servers/nosql/eventstore/create-deps.sh
+# - pkgs/development/dotnet-modules/python-language-server/create_deps.sh
+
+URLBASE="https://www.nuget.org/api/v2/package"
+
+DEPS_HEADER="
+{ fetchurl }:
+let
+ nugetUrlBase = \"$URLBASE\";
+ fetchNuGet = { name, version, sha256 }: fetchurl {
+ inherit sha256;
+ url = \"\${nugetUrlBase}/\${name}/\${version}\";
+ };
+in ["
+
+DEPS_FOOTER="]"
+
+DEPS_TEMPLATE="
+(fetchNuGet {
+ name = \"%s\";
+ version = \"%s\";
+ sha256 = \"%s\";
+})"
+
+
+function generate_restore_log() {
+ checkout_path=$1
+ >&2 echo "generating restore log for $checkout_path..."
+ cd $checkout_path
+ dotnet nuget locals all --clear
+ dotnet restore -v normal --no-cache WalletWasabi.Backend -r linux-x64
+ cd -
+}
+
+function process_restore_log() {
+ restore_log=$1
+ >&2 echo "processing restore log..."
+ while read line; do
+ if echo $line | grep -q "^[[:space:]]*Installing"; then
+ l=$(echo $line | xargs)
+ l=${l#Installing }
+ l=${l%.}
+ echo $l
+ fi
+ done < $restore_log
+}
+
+function prefetch_deps() {
+ processed_log=$1
+ >&2 echo "prefetching deps..."
+ while read line; do
+ name=$(echo $line | cut -d' ' -f1)
+ >&2 echo "prefetching '$name' version: $version"
+ version=$(echo $line | cut -d' ' -f2)
+ hash=$(nix-prefetch-url "$URLBASE/$name/$version" 2>/dev/null)
+ echo "$name $version $hash"
+ done < $processed_log
+}
+
+function generate_deps_expression() {
+ packages=$1
+ >&2 echo "generating deps nix-expression..."
+ echo $DEPS_HEADER
+ while read line; do
+ name=$(echo $line | cut -d' ' -f1)
+ version=$(echo $line | cut -d' ' -f2)
+ hash=$(echo $line | cut -d' ' -f3)
+ printf "$DEPS_TEMPLATE" $name $version $hash
+ done < $packages
+ echo $DEPS_FOOTER
+}
+
+function main() {
+ checkout_path=$1
+ tmpdir=$(mktemp -d)
+ generate_restore_log $checkout_path > $tmpdir/restore.log
+ process_restore_log $tmpdir/restore.log > $tmpdir/processed.log
+ prefetch_deps $tmpdir/processed.log > $tmpdir/prefetched.log
+ generate_deps_expression $tmpdir/prefetched.log > $tmpdir/deps.nix
+ nixfmt $tmpdir/deps.nix
+ cat $tmpdir/deps.nix
+ rm -rf $tmpdir
+}
+
+if [ ! -d "$1" ]; then
+ >&2 echo "First argument must be a directory, the path to the package source checkout"
+ exit 1
+fi
+
+main $@
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/default.nix
new file mode 100644
index 000000000000..6b5358c9cf93
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/default.nix
@@ -0,0 +1,100 @@
+{ stdenv
+, fetchFromGitHub
+, fetchurl
+, makeWrapper
+, Nuget
+, dotnetCorePackages
+, openssl
+, zlib
+}:
+
+let
+ deps = import ./deps.nix { inherit fetchurl; };
+
+ dotnet-sdk = dotnetCorePackages.sdk_3_1;
+ dotnet-aspnetcore = dotnetCorePackages.aspnetcore_3_1;
+
+ nugetSource = stdenv.mkDerivation {
+ pname = "${pname}-nuget-deps";
+ inherit version;
+
+ dontUnpack = true;
+ dontInstall = true;
+
+ nativeBuildInputs = [ Nuget ];
+
+ buildPhase = ''
+ export HOME=$(mktemp -d)
+ mkdir -p $out/lib
+
+ nuget sources Disable -Name "nuget.org"
+ for package in ${toString deps}; do
+ nuget add $package -Source $out/lib
+ done
+ '';
+ };
+
+ pname = "WasabiBackend";
+ version = "1.1.12";
+
+ projectName = "WalletWasabi.Backend";
+ projectConfiguration = "Release";
+ projectRuntime = "linux-x64";
+in
+
+stdenv.mkDerivation rec {
+ inherit pname version;
+
+ src = fetchFromGitHub {
+ owner = "zkSNACKs";
+ repo = "WalletWasabi";
+ rev = "v${version}";
+ sha256 = "001k43z2jxvs03csyzndlzlk034aclzc4n8ddrqxykgrq508xk1d";
+ };
+
+ buildInputs = [
+ Nuget
+ dotnet-sdk
+ makeWrapper
+ ];
+
+ buildPhase = ''
+ export HOME=$(mktemp -d)
+ export DOTNET_CLI_TELEMETRY_OPTOUT=1
+ export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+ export DOTNET_ROOT="${dotnet-sdk}/bin"
+
+ nuget sources Disable -Name "nuget.org"
+
+ dotnet restore \
+ --source ${nugetSource}/lib \
+ --runtime ${projectRuntime} \
+ ${projectName}
+
+ dotnet publish \
+ --no-restore \
+ --runtime ${projectRuntime} \
+ --configuration ${projectConfiguration} \
+ ${projectName}
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r ${projectName}/bin/${projectConfiguration}/netcoreapp3.1/${projectRuntime}/publish $out/lib
+ mkdir -p $out/bin
+ makeWrapper $out/lib/WalletWasabi.Backend $out/bin/${pname} \
+ --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ openssl zlib ]} \
+ --run "cd $out/lib"
+ '';
+
+ # If we don't disable stripping the executable fails to start with segfault
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ description = "Backend for the Wasabi Wallet";
+ homepage = "https://wasabiwallet.io/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mmahut ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix
new file mode 100644
index 000000000000..4d4489efa3cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix
@@ -0,0 +1,956 @@
+{ fetchurl }:
+let
+ nugetUrlBase = "https://www.nuget.org/api/v2/package";
+ fetchNuGet = { name, version, sha256 }:
+ fetchurl {
+ inherit sha256;
+ url = "${nugetUrlBase}/${name}/${version}";
+ };
+in [
+
+ (fetchNuGet {
+ name = "System.Xml.XmlSerializer";
+ version = "4.0.11";
+ sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Extensions";
+ version = "4.3.0";
+ sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Handles";
+ version = "4.3.0";
+ sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+ })
+ (fetchNuGet {
+ name = "System.Dynamic.Runtime";
+ version = "4.0.11";
+ sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Overlapped";
+ version = "4.0.1";
+ sha256 = "0fi79az3vmqdp9mv3wh2phblfjls89zlj6p9nc3i9f6wmfarj188";
+ })
+ (fetchNuGet {
+ name = "System.Security.Principal";
+ version = "4.0.1";
+ sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
+ })
+ (fetchNuGet {
+ name = "System.Private.DataContractSerialization";
+ version = "4.1.1";
+ sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Win32.Registry";
+ version = "4.0.0";
+ sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit";
+ version = "4.0.1";
+ sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.Lightweight";
+ version = "4.0.1";
+ sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.ILGeneration";
+ version = "4.0.1";
+ sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Extensions";
+ version = "4.0.1";
+ sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.DiagnosticSource";
+ version = "4.0.0";
+ sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks.Extensions";
+ version = "4.0.0";
+ sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Cng";
+ version = "4.2.0";
+ sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Csp";
+ version = "4.0.0";
+ sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+ })
+ (fetchNuGet {
+ name = "Microsoft.VisualStudio.Web.CodeGeneration.Tools";
+ version = "2.0.2";
+ sha256 = "0fkjm06irs53d77z29i6dwj5pjhgj9ivhad8v39ghnrwasc0ivq6";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.OpenSsl";
+ version = "4.0.0";
+ sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+ })
+ (fetchNuGet {
+ name = "Microsoft.VisualStudio.Web.CodeGeneration.Contracts";
+ version = "2.0.2";
+ sha256 = "1fs6sbjn0chx6rv38d61zgk8mhyyxz44xp4wsfya0lvkckyszyn1";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Net.Http";
+ version = "4.0.1";
+ sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileProviders.Physical";
+ version = "2.0.0";
+ sha256 = "0l0l92g7sq4122n139av1pn1jl6wlw92hjmdnr47xdss0ndmwrs3";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.IO.Compression";
+ version = "4.1.0";
+ sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.App";
+ version = "2.0.5";
+ sha256 = "0qb7k624w7l0zhapdp519ymqg84a67r8zyd8cpj42hywsgb0dqv6";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System.Security.Cryptography";
+ version = "4.0.0";
+ sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+ })
+ (fetchNuGet {
+ name = "NuGet.Frameworks";
+ version = "4.0.0";
+ sha256 = "0nar684cm53cvzx28gzl6kmpg9mrfr1yv29323din7xqal4pscgq";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Build.Runtime";
+ version = "15.3.409";
+ sha256 = "135ycnqz5jfg61y5zaapgc7xdpjx2aq4icmxb9ph7h5inl445q7q";
+ })
+ (fetchNuGet {
+ name = "runtime.native.System";
+ version = "4.0.0";
+ sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+ })
+ (fetchNuGet {
+ name = "System.Buffers";
+ version = "4.0.0";
+ sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Targets";
+ version = "1.0.1";
+ sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "10.0.1";
+ sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.DotNetAppHost";
+ version = "2.0.5";
+ sha256 = "00bsxdg9c8msjxyffvfi8siqk8v2m7ca8fqy1npv7b2pzg3byjws";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.CompilerServices.Unsafe";
+ version = "4.4.0";
+ sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.Lightweight";
+ version = "4.3.0";
+ sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem";
+ version = "4.3.0";
+ sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileSystemGlobbing";
+ version = "2.0.0";
+ sha256 = "02lzy6r14ghwfwm384xajq08vv3pl3ww0mi5isrr10vivhijhgg4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.FileProviders.Abstractions";
+ version = "2.0.0";
+ sha256 = "0d6y5isjy6jpf4w3f3w89cwh9p40glzhwvm7cwhx05wkqd8bk9w4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "2.0.1";
+ sha256 = "1j2hmnivgb4plni2dd205kafzg6mkg7r4knrd3s7mg75wn2l25np";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.DotNetHostPolicy";
+ version = "2.0.5";
+ sha256 = "0v5csskiwpk8kz8wclqad8kcjmxr7ik4w99wl05740qvaag3qysk";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem.Primitives";
+ version = "4.3.0";
+ sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+ })
+ (fetchNuGet {
+ name = "NETStandard.Library";
+ version = "2.0.1";
+ sha256 = "0d44wjxphs1ck838v7dapm0ag0b91zpiy33cr5vflsrwrqgj51dk";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks.Extensions";
+ version = "4.3.0";
+ sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Specialized";
+ version = "4.3.0";
+ sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel";
+ version = "4.3.0";
+ sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+ })
+ (fetchNuGet {
+ name = "System.Collections.NonGeneric";
+ version = "4.3.0";
+ sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel.Primitives";
+ version = "4.3.0";
+ sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices";
+ version = "4.3.0";
+ sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+ })
+ (fetchNuGet {
+ name = "NETStandard.Library";
+ version = "1.6.0";
+ sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Build.Framework";
+ version = "15.3.409";
+ sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Build.Tasks.Core";
+ version = "15.3.409";
+ sha256 = "135swyygp7cz2civwsz6a7dj7h8bzp7yrybmgxjanxwrw66hm933";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding.CodePages";
+ version = "4.0.1";
+ sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Build.Utilities.Core";
+ version = "15.3.409";
+ sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Build";
+ version = "15.3.409";
+ sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Formatters";
+ version = "4.3.0";
+ sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Primitives";
+ version = "4.3.0";
+ sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+ })
+ (fetchNuGet {
+ name = "System.ObjectModel";
+ version = "4.3.0";
+ sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Debug";
+ version = "4.3.0";
+ sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+ })
+ (fetchNuGet {
+ name = "System.Resources.ResourceManager";
+ version = "4.3.0";
+ sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Extensions";
+ version = "4.3.0";
+ sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit";
+ version = "4.3.0";
+ sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding.Extensions";
+ version = "4.3.0";
+ sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding";
+ version = "4.3.0";
+ sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XmlDocument";
+ version = "4.3.0";
+ sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Emit.ILGeneration";
+ version = "4.3.0";
+ sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Numerics";
+ version = "4.3.0";
+ sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+ })
+ (fetchNuGet {
+ name = "System.Globalization";
+ version = "4.3.0";
+ sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.TypeExtensions";
+ version = "4.3.0";
+ sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+ })
+ (fetchNuGet {
+ name = "System.Threading";
+ version = "4.3.0";
+ sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Primitives";
+ version = "4.3.0";
+ sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+ })
+ (fetchNuGet {
+ name = "System.Linq";
+ version = "4.3.0";
+ sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tools";
+ version = "4.3.0";
+ sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Targets";
+ version = "1.1.0";
+ sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+ })
+ (fetchNuGet {
+ name = "System.Collections";
+ version = "4.3.0";
+ sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "1.1.0";
+ sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+ })
+ (fetchNuGet {
+ name = "System.IO";
+ version = "4.3.0";
+ sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks.Dataflow";
+ version = "4.6.0";
+ sha256 = "0a1davr71wssyn4z1hr75lk82wqa0daz0vfwkmg1fm3kckfd72k1";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XDocument";
+ version = "4.3.0";
+ sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+ })
+ (fetchNuGet {
+ name = "System.IO.Pipes";
+ version = "4.0.0";
+ sha256 = "0fxfvcf55s9q8zsykwh8dkq2xb5jcqnml2ycq8srfry2l07h18za";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.FileVersionInfo";
+ version = "4.0.0";
+ sha256 = "1s5vxhy7i09bmw51kxqaiz9zaj9am8wsjyz13j85sp23z267hbv3";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks";
+ version = "4.3.0";
+ sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Contracts";
+ version = "4.0.1";
+ sha256 = "0y6dkd9n5k98vzhc3w14r2pbhf10qjn2axpghpmfr6rlxx9qrb9j";
+ })
+ (fetchNuGet {
+ name = "System.Reflection";
+ version = "4.3.0";
+ sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+ })
+ (fetchNuGet {
+ name = "System.Dynamic.Runtime";
+ version = "4.3.0";
+ sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Loader";
+ version = "4.0.0";
+ sha256 = "0lpfi3psqcp6zxsjk2qyahal7zaawviimc8lhrlswhip2mx7ykl0";
+ })
+ (fetchNuGet {
+ name = "System.Threading.ThreadPool";
+ version = "4.0.10";
+ sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Extensions";
+ version = "4.3.0";
+ sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Xml";
+ version = "4.1.1";
+ sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk";
+ })
+ (fetchNuGet {
+ name = "System.Text.RegularExpressions";
+ version = "4.3.0";
+ sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Immutable";
+ version = "1.2.0";
+ sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CSharp";
+ version = "4.3.0";
+ sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+ })
+ (fetchNuGet {
+ name = "System.ComponentModel.TypeConverter";
+ version = "4.3.0";
+ sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Metadata";
+ version = "1.3.0";
+ sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b";
+ })
+ (fetchNuGet {
+ name = "System.Xml.ReaderWriter";
+ version = "4.3.0";
+ sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+ })
+ (fetchNuGet {
+ name = "System.Linq.Parallel";
+ version = "4.0.1";
+ sha256 = "0i33x9f4h3yq26yvv6xnq4b0v51rl5z8v1bm7vk972h5lvf4apad";
+ })
+ (fetchNuGet {
+ name = "System.Linq.Expressions";
+ version = "4.3.0";
+ sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Process";
+ version = "4.1.0";
+ sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s";
+ })
+ (fetchNuGet {
+ name = "System.Runtime";
+ version = "4.3.0";
+ sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XmlDocument";
+ version = "4.0.1";
+ sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Primitives";
+ version = "2.0.0";
+ sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.DotNetHostResolver";
+ version = "2.0.5";
+ sha256 = "1sz2fdp8fdwz21x3lr2m1zhhrbix6iz699fjkwiryqdjl4ygd3hw";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Serialization.Primitives";
+ version = "4.1.1";
+ sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "1.0.1";
+ sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+ })
+ (fetchNuGet {
+ name = "System.AppContext";
+ version = "4.1.0";
+ sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Debug";
+ version = "4.0.11";
+ sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.TraceSource";
+ version = "4.0.0";
+ sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
+ })
+ (fetchNuGet {
+ name = "System.Resources.ResourceManager";
+ version = "4.0.1";
+ sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+ })
+ (fetchNuGet {
+ name = "System.Globalization.Calendars";
+ version = "4.0.1";
+ sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XPath";
+ version = "4.0.1";
+ sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tools";
+ version = "4.0.1";
+ sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding.Extensions";
+ version = "4.0.11";
+ sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+ })
+ (fetchNuGet {
+ name = "System.Diagnostics.Tracing";
+ version = "4.1.0";
+ sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+ })
+ (fetchNuGet {
+ name = "System.Resources.Writer";
+ version = "4.0.0";
+ sha256 = "07hp218kjdcvpl27djspnixgnacbp9apma61zz3wsca9fx5g3lmv";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.TypeExtensions";
+ version = "4.1.0";
+ sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+ })
+ (fetchNuGet {
+ name = "System.Collections.NonGeneric";
+ version = "4.0.1";
+ sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
+ })
+ (fetchNuGet {
+ name = "System.Console";
+ version = "4.0.0";
+ sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Primitives";
+ version = "4.0.0";
+ sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Numerics";
+ version = "4.0.1";
+ sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Win32.Primitives";
+ version = "4.0.1";
+ sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+ })
+ (fetchNuGet {
+ name = "System.IO.Compression.ZipFile";
+ version = "4.0.1";
+ sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XPath.XmlDocument";
+ version = "4.0.1";
+ sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
+ })
+ (fetchNuGet {
+ name = "System.Net.Sockets";
+ version = "4.1.0";
+ sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+ })
+ (fetchNuGet {
+ name = "System.Xml.XDocument";
+ version = "4.0.11";
+ sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Extensions";
+ version = "4.0.1";
+ sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices.RuntimeInformation";
+ version = "4.0.0";
+ sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+ })
+ (fetchNuGet {
+ name = "System.Resources.Reader";
+ version = "4.0.0";
+ sha256 = "1jafi73dcf1lalrir46manq3iy6xnxk2z7gpdpwg4wqql7dv3ril";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Thread";
+ version = "4.0.0";
+ sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Timer";
+ version = "4.0.1";
+ sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem.Primitives";
+ version = "4.0.1";
+ sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+ })
+ (fetchNuGet {
+ name = "System.IO.FileSystem";
+ version = "4.0.1";
+ sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Encoding";
+ version = "4.0.0";
+ sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+ })
+ (fetchNuGet {
+ name = "System.Runtime";
+ version = "4.1.0";
+ sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.Algorithms";
+ version = "4.2.0";
+ sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+ })
+ (fetchNuGet {
+ name = "System.Reflection.Primitives";
+ version = "4.0.1";
+ sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Handles";
+ version = "4.0.1";
+ sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+ })
+ (fetchNuGet {
+ name = "System.ObjectModel";
+ version = "4.0.12";
+ sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+ })
+ (fetchNuGet {
+ name = "System.Net.Primitives";
+ version = "4.0.11";
+ sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+ })
+ (fetchNuGet {
+ name = "System.Text.Encoding";
+ version = "4.0.11";
+ sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+ })
+ (fetchNuGet {
+ name = "System.Collections.Concurrent";
+ version = "4.0.12";
+ sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+ })
+ (fetchNuGet {
+ name = "System.IO.Compression";
+ version = "4.1.0";
+ sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
+ })
+ (fetchNuGet {
+ name = "System.IO";
+ version = "4.1.0";
+ sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+ })
+ (fetchNuGet {
+ name = "System.Reflection";
+ version = "4.1.0";
+ sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+ })
+ (fetchNuGet {
+ name = "System.Collections";
+ version = "4.0.11";
+ sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+ })
+ (fetchNuGet {
+ name = "System.Linq";
+ version = "4.1.0";
+ sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+ })
+ (fetchNuGet {
+ name = "System.Globalization";
+ version = "4.0.11";
+ sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+ })
+ (fetchNuGet {
+ name = "System.Threading";
+ version = "4.0.11";
+ sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+ })
+ (fetchNuGet {
+ name = "System.Text.RegularExpressions";
+ version = "4.1.0";
+ sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+ })
+ (fetchNuGet {
+ name = "System.Security.Cryptography.X509Certificates";
+ version = "4.1.0";
+ sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+ })
+ (fetchNuGet {
+ name = "System.Xml.ReaderWriter";
+ version = "4.0.11";
+ sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+ })
+ (fetchNuGet {
+ name = "System.Net.Http";
+ version = "4.1.0";
+ sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.Extensions";
+ version = "4.1.0";
+ sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+ })
+ (fetchNuGet {
+ name = "System.Threading.Tasks";
+ version = "4.0.11";
+ sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+ })
+ (fetchNuGet {
+ name = "System.Linq.Expressions";
+ version = "4.1.0";
+ sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+ })
+ (fetchNuGet {
+ name = "System.Runtime.InteropServices";
+ version = "4.1.0";
+ sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
+ version = "3.1.8";
+ sha256 = "140zr3nwkmf6xc52gq4iz6ycyh95fxy0jpgn637pkd9z423z8135";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.App.Runtime.linux-x64";
+ version = "3.1.8";
+ sha256 = "1bv9n9wzsqf9g8h6z10p61xkcx8ad4nnip83qv8yyfvhr4kdmbsa";
+ })
+ (fetchNuGet {
+ name = "Microsoft.CSharp";
+ version = "4.7.0";
+ sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
+ })
+ (fetchNuGet {
+ name = "Microsoft.NETCore.Platforms";
+ version = "3.1.0";
+ sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "11.0.1";
+ sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.Logging.Abstractions";
+ version = "1.0.0";
+ sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json.Bson";
+ version = "1.0.2";
+ sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.JsonPatch";
+ version = "3.1.1";
+ sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml";
+ })
+ (fetchNuGet {
+ name = "Newtonsoft.Json";
+ version = "12.0.2";
+ sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+ })
+ (fetchNuGet {
+ name = "System.Security.Principal.Windows";
+ version = "4.7.0";
+ sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
+ })
+ (fetchNuGet {
+ name = "System.Security.AccessControl";
+ version = "4.7.0";
+ sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
+ })
+ (fetchNuGet {
+ name = "NBitcoin";
+ version = "5.0.47";
+ sha256 = "1plri6q83jn80m95np0zxdg3nk2f36z8v42j4sg5wjv8qppp866d";
+ })
+ (fetchNuGet {
+ name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
+ version = "3.1.1";
+ sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Win32.Registry";
+ version = "4.7.0";
+ sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
+ })
+ (fetchNuGet {
+ name = "NBitcoin.Secp256k1";
+ version = "1.0.3";
+ sha256 = "08d4db64j1qz8ax9fg8zi6n7g1n53clnkajbbvv2hgaqyfrsnqxj";
+ })
+ (fetchNuGet {
+ name = "Microsoft.OpenApi";
+ version = "1.1.4";
+ sha256 = "1sn79829nhx6chi2qxsza1801di7zdl5fd983m0jakawzbjhjcb3";
+ })
+ (fetchNuGet {
+ name = "Swashbuckle.AspNetCore.SwaggerUI";
+ version = "5.0.0";
+ sha256 = "0d7vjq489rz208j6k3rb7vq6mzxzff3mqg83yk2rqy25vklrsbjd";
+ })
+ (fetchNuGet {
+ name = "Swashbuckle.AspNetCore";
+ version = "5.0.0";
+ sha256 = "0rn2awmzrsrppk97xbbwk4kq1mys9bygb5xhl6mphbk0hchrvh09";
+ })
+ (fetchNuGet {
+ name = "Swashbuckle.AspNetCore.SwaggerGen";
+ version = "5.0.0";
+ sha256 = "00swg2avqnb38q2bsxljd34n8rpknp74h9vbn0fdnfds3a32cqr4";
+ })
+ (fetchNuGet {
+ name = "Microsoft.Extensions.ApiDescription.Server";
+ version = "3.0.0";
+ sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh";
+ })
+ (fetchNuGet {
+ name = "Swashbuckle.AspNetCore.Swagger";
+ version = "5.0.0";
+ sha256 = "1341nv8nmh6avs3y7w2szzir5qd0bndxwrkdmvvj3hcxj1126w2f";
+ })
+ (fetchNuGet {
+ name = "runtime.unix.System.Private.Uri";
+ version = "4.0.1";
+ sha256 = "0ic5dgc45jkhcr1g9xmmzjm7ffiw4cymm0fprczlx4fnww4783nm";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Text.Encoding";
+ version = "4.0.11";
+ sha256 = "0m4vgmzi1ky8xlj0r7xcyazxln3j9dlialnk6d2gmgrfnzf8f9m7";
+ })
+ (fetchNuGet {
+ name = "System.Private.Uri";
+ version = "4.0.1";
+ sha256 = "0k57qhawjysm4cpbfpc49kl4av7lji310kjcamkl23bwgij5ld9j";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Runtime.Handles";
+ version = "4.0.1";
+ sha256 = "1kswgqhy34qvc49i981fk711s7knd6z13bp0rin8ms6axkh98nas";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Reflection.Primitives";
+ version = "4.0.1";
+ sha256 = "1zxrpvixr5fqzkxpnin6g6gjq6xajy1snghz99ds2dwbhm276rhz";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.IO";
+ version = "4.1.0";
+ sha256 = "0kasfkjiml2kk8prnyn1990nhsahnjggvqwszqjdsfwfl43vpcb5";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Runtime";
+ version = "4.1.0";
+ sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Threading.Tasks";
+ version = "4.0.11";
+ sha256 = "1qzdp09qs8br5qxzlm1lgbjn4n57fk8vr1lzrmli2ysdg6x1xzvk";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Diagnostics.Tracing";
+ version = "4.1.0";
+ sha256 = "041im8hmp1zdgrx6jzyrdch6kshvbddmkar7r2mlm1ksb5c5kwpq";
+ })
+ (fetchNuGet {
+ name = "runtime.unix.System.Runtime.Extensions";
+ version = "4.1.0";
+ sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Runtime.InteropServices";
+ version = "4.1.0";
+ sha256 = "0gm8if0hcmp1qys1wmx4970k2x62pqvldgljsyzbjhiy5644vl8z";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Reflection";
+ version = "4.1.0";
+ sha256 = "06kcs059d5czyakx75rvlwa2mr86156w18fs7chd03f7084l7mq6";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Collections";
+ version = "4.0.11";
+ sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Globalization";
+ version = "4.0.11";
+ sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
+ })
+ (fetchNuGet {
+ name = "runtime.any.System.Resources.ResourceManager";
+ version = "4.0.1";
+ sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
+ })
+ (fetchNuGet {
+ name = "runtime.unix.System.Diagnostics.Debug";
+ version = "4.0.11";
+ sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
+ })
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
new file mode 100644
index 000000000000..e566661d36a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchurl
+, makeDesktopItem
+, curl
+, dotnet-netcore
+, fontconfig
+, krb5
+, openssl
+, xorg
+, zlib
+}:
+
+let
+ libPath = stdenv.lib.makeLibraryPath [
+ curl
+ dotnet-netcore
+ fontconfig.lib
+ krb5
+ openssl
+ stdenv.cc.cc.lib
+ xorg.libX11
+ zlib
+ ];
+in
+stdenv.mkDerivation rec {
+ pname = "wasabiwallet";
+ version = "1.1.12.2";
+
+ src = fetchurl {
+ url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
+ sha256 = "0nl7n24nsy3gyzrxa6llx81pvsjqcwi0a4qdv34dpcq483aclp2r";
+ };
+
+ dontBuild = true;
+ dontPatchELF = true;
+
+ desktopItem = makeDesktopItem {
+ name = "wasabi";
+ exec = "wasabiwallet";
+ desktopName = "Wasabi";
+ genericName = "Bitcoin wallet";
+ comment = meta.description;
+ categories = "Network;Utility;";
+ };
+
+ installPhase = ''
+ mkdir -p $out/opt/${pname} $out/bin $out/share/applications
+ cp -Rv . $out/opt/${pname}
+ cd $out/opt/${pname}
+ for i in $(find . -type f -name '*.so') wassabee
+ do
+ patchelf --set-rpath ${libPath} $i
+ done
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" wassabee
+ ln -s $out/opt/${pname}/wassabee $out/bin/${pname}
+ cp -v $desktopItem/share/applications/* $out/share/applications
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Privacy focused Bitcoin wallet";
+ homepage = "https://wasabiwallet.io/";
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ mmahut ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix
new file mode 100644
index 000000000000..9a660bb8bffb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchFromGitHub, callPackage, makeWrapper, makeDesktopItem
+, nodejs, yarn, electron_7, jre8, tor }:
+
+let
+ system = stdenv.hostPlatform.system;
+ electron = electron_7;
+
+in stdenv.mkDerivation rec {
+ pname = "whirlpool-gui";
+ version = "0.10.1";
+
+ src = fetchFromGitHub {
+ owner = "Samourai-Wallet";
+ repo = pname;
+ rev = version;
+ sha256 = "ru6WJQRulhnQCPY2E0x9M6xXtFdj/pg2fu4HpQxhImU=";
+ };
+
+ yarnCache = stdenv.mkDerivation {
+ name = "${pname}-${version}-${system}-yarn-cache";
+ inherit src;
+ phases = [ "unpackPhase" "buildPhase" ];
+ nativeBuildInputs = [ yarn ];
+ buildPhase = ''
+ export HOME=$NIX_BUILD_ROOT
+
+ yarn config set yarn-offline-mirror $out
+ yarn --frozen-lockfile --ignore-scripts --ignore-platform \
+ --ignore-engines --no-progress --non-interactive
+ '';
+
+ outputHashMode = "recursive";
+ outputHashAlgo = "sha256";
+ outputHash = {
+ x86_64-linux = "6fl4cSwHXWgQcYlqxCae0p1Ppcb9fI5fFrxm7y6wxTo=";
+ }.${system} or (throw "Unsupported platform ${system}");
+ };
+
+ nativeBuildInputs = [ makeWrapper nodejs yarn ];
+
+ configurePhase = ''
+ # Yarn and bundler wants a real home directory to write cache, config, etc to
+ export HOME=$NIX_BUILD_ROOT
+
+ # Make yarn install packages from our offline cache, not the registry
+ yarn config --offline set yarn-offline-mirror ${yarnCache}
+ '';
+
+ buildPhase = ''
+ yarn install --offline --ignore-scripts --frozen-lockfile --no-progress --non-interactive
+
+ patchShebangs node_modules/
+
+ yarn build
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{bin,share,libexec/whirlpool-gui/app}
+
+ # install production dependencies
+ yarn install \
+ --offline --frozen-lockfile --ignore-scripts \
+ --no-progress --non-interactive \
+ --production --no-bin-links \
+ --modules-folder $out/libexec/whirlpool-gui/node_modules
+
+ # copy application
+ cp -r app/{dist,app.html,main.prod.js,main.prod.js.map,img} $out/libexec/whirlpool-gui/app
+ cp -r package.json resources $out/libexec/whirlpool-gui
+
+ # make desktop item
+ ln -s "${desktopItem}/share/applications" "$out/share/applications"
+
+ # wrap electron
+ makeWrapper '${electron}/bin/electron' "$out/bin/whirlpool-gui" \
+ --add-flags "$out/libexec/whirlpool-gui" \
+ --prefix PATH : "${jre8}/bin:${tor}/bin"
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "whirlpool-gui";
+ exec = "whirlpool-gui";
+ icon = "whirlpool-gui";
+ desktopName = "Whirlpool";
+ genericName = "Whirlpool";
+ comment = meta.description;
+ categories = "Network;";
+ extraEntries = ''
+ StartupWMClass=whrilpool-gui
+ '';
+ };
+
+ passthru.prefetchYarnCache = stdenv.lib.overrideDerivation yarnCache (d: {
+ outputHash = stdenv.lib.fakeSha256;
+ });
+
+ meta = with stdenv.lib; {
+ description = "Desktop GUI for Whirlpool by Samourai-Wallet";
+ homepage = https://www.samouraiwallet.com/whirlpool;
+ license = licenses.unlicense;
+ maintainers = [ maintainers.offline ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wownero.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wownero.nix
new file mode 100644
index 000000000000..8d45e1a96b57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/wownero.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchgit, cmake, boost, miniupnpc_2, openssl, unbound
+, readline, libsodium, rapidjson, fetchurl
+}:
+
+with stdenv.lib;
+
+let
+ randomwowVersion = "1.1.7";
+ randomwow = fetchurl {
+ url = "https://github.com/wownero/RandomWOW/archive/${randomwowVersion}.tar.gz";
+ sha256 = "1xp76zf01hnhnk6rjvqjav9n9pnvxzxlzqa5rc574d1c2qczfy3q";
+ };
+in
+
+stdenv.mkDerivation rec {
+ pname = "wownero";
+ version = "0.8.0.1";
+
+ src = fetchgit {
+ url = "https://git.wownero.com/wownero/wownero.git";
+ rev = "v${version}";
+ sha256 = "15443xv6q1nw4627ajk6k4ghhahvh82lb4gyb8nvq753p2v838g3";
+ fetchSubmodules = false;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ boost miniupnpc_2 openssl unbound rapidjson readline libsodium
+ ];
+
+ postUnpack = ''
+ rm -r $sourceRoot/external/RandomWOW
+ unpackFile ${randomwow}
+ mv RandomWOW-${randomwowVersion} $sourceRoot/external/RandomWOW
+ '';
+
+ cmakeFlags = [
+ "-DReadline_ROOT_DIR=${readline.dev}"
+ "-DMANUAL_SUBMODULES=ON"
+ ];
+
+ meta = {
+ description = ''
+ A privacy-centric memecoin that was fairly launched on April 1, 2018 with
+ no pre-mine, stealth-mine or ICO
+ '';
+ longDescription = ''
+ Wownero has a maximum supply of around 184 million WOW with a slow and
+ steady emission over 50 years. It is a fork of Monero, but with its own
+ genesis block, so there is no degradation of privacy due to ring
+ signatures using different participants for the same tx outputs on
+ opposing forks.
+ '';
+ homepage = "https://wownero.org/";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fuwa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/zcash/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/zcash/default.nix
new file mode 100644
index 000000000000..9cccbd7b7e46
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/zcash/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, libsodium, fetchFromGitHub, wget, pkgconfig, autoreconfHook, openssl, db62, boost17x
+, zlib, gtest, gmock, callPackage, gmp, qt4, util-linux, protobuf, qrencode, libevent }:
+
+let librustzcash = callPackage ./librustzcash {};
+in
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+ pname = "zcash";
+ version = "2.1.1-1";
+
+ src = fetchFromGitHub {
+ owner = "zcash";
+ repo = "zcash";
+ rev = "v${version}";
+ sha256 = "1g5zlfzfp31my8w8nlg5fncpr2y95iv9fm04x57sjb93rgmjdh5n";
+ };
+
+ patchPhase = ''
+ sed -i"" 's,-fvisibility=hidden,,g' src/Makefile.am
+ '';
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ gtest gmock gmp openssl wget db62 boost17x zlib
+ protobuf libevent libsodium librustzcash ]
+ ++ optionals stdenv.isLinux [ util-linux ];
+
+ configureFlags = [ "--with-boost-libdir=${boost17x.out}/lib" ];
+
+ postInstall = ''
+ cp zcutil/fetch-params.sh $out/bin/zcash-fetch-params
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Peer-to-peer, anonymous electronic cash system";
+ homepage = "https://z.cash/";
+ maintainers = with maintainers; [ rht tkerber ];
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix
new file mode 100644
index 000000000000..526adc715d45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "librustzcash";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "zcash";
+ repo = "librustzcash";
+ rev = version;
+ sha256 = "0d28k29sgzrg9clynz29kpw50kbkp0a4dfdayqhmpjmsh05y6261";
+ };
+
+ cargoSha256 = "1wzyrcmcbrna6rjzw19c4lq30didzk4w6fs6wmvxp0xfg4qqdlax";
+
+ installPhase = ''
+ mkdir -p $out/lib
+ cp $releaseDir/librustzcash.a $out/lib/
+ mkdir -p $out/include
+ cp librustzcash/include/librustzcash.h $out/include/
+ '';
+
+ # The tests do pass, but they take an extremely long time to run.
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Rust-language assets for Zcash";
+ homepage = "https://github.com/zcash/librustzcash";
+ maintainers = with maintainers; [ rht tkerber ];
+ license = with licenses; [ mit asl20 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
new file mode 100644
index 000000000000..488ef4cfedd4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchgit, pkgconfig, linkFarm, lightdm-enso-os-greeter
+, dbus, pcre, epoxy, libXdmcp, at-spi2-core, libxklavier, libxkbcommon, libpthreadstubs
+, gtk3, vala, cmake, libgee, libX11, lightdm, gdk-pixbuf, clutter-gtk, wrapGAppsHook, librsvg }:
+
+stdenv.mkDerivation {
+ version = "0.2.1";
+ pname = "lightdm-enso-os-greeter";
+
+ src = fetchgit {
+ url = "https://github.com/nick92/Enso-OS";
+ rev = "ed48330bfd986072bd82ac542ed8f8a7365c6427";
+ sha256 = "11jm181jq1vbn83h235avpdxz7pqq6prqyzki5yryy53mkj4kgxz";
+ };
+
+ patches = [
+ ./fix-paths.patch
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ dbus
+ gtk3
+ pcre
+ epoxy
+ libgee
+ libX11
+ lightdm
+ libXdmcp
+ gdk-pixbuf
+ clutter-gtk
+ libxklavier
+ at-spi2-core
+ libxkbcommon
+ libpthreadstubs
+ librsvg
+ ];
+
+ preConfigure = ''
+ cd greeter
+ '';
+
+ passthru.xgreeters = linkFarm "enso-os-greeter-xgreeters" [{
+ path = "${lightdm-enso-os-greeter}/share/xgreeters/pantheon-greeter.desktop";
+ name = "pantheon-greeter.desktop";
+ }];
+
+ postFixup = ''
+ substituteInPlace $out/share/xgreeters/pantheon-greeter.desktop \
+ --replace "pantheon-greeter" "$out/bin/pantheon-greeter"
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ A fork of pantheon greeter that positions elements in a central and
+ vertigal manner and adds a blur effect to the background
+ '';
+ homepage = "https://github.com/nick92/Enso-OS";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [
+ eadwu
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/fix-paths.patch
new file mode 100644
index 000000000000..ab3ad2b10e41
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/fix-paths.patch
@@ -0,0 +1,24 @@
+diff --git a/greeter/CMakeLists.txt b/greeter/CMakeLists.txt
+index 57aebb0..ab50bff 100644
+--- a/greeter/CMakeLists.txt
++++ b/greeter/CMakeLists.txt
+@@ -9,7 +9,6 @@ list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+ set (CONF_DIR "/etc/lightdm")
+ set (DATADIR "${CMAKE_INSTALL_PREFIX}/share")
+ set (PKGDATADIR "${DATADIR}/enso/greeter")
+-set (CMAKE_INSTALL_PREFIX /usr)
+ set (VERSION "1.0.6")
+
+
+@@ -94,9 +93,9 @@ glib_compile_resources (GLIB_RESOURCES_CSS SOURCE data/css.gresource.xml)
+ add_executable (pantheon-greeter ${VALA_C} ${GLIB_RESOURCES_CSS})
+ target_link_libraries(pantheon-greeter m)
+
+-install (TARGETS pantheon-greeter RUNTIME DESTINATION sbin)
++install (TARGETS pantheon-greeter RUNTIME DESTINATION bin)
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/pantheon-greeter.desktop DESTINATION share/xgreeters)
+-install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/greeter.conf DESTINATION ${CONF_DIR})
++install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/greeter.conf DESTINATION etc/lightdm)
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/fingerprint.svg DESTINATION ${PKGDATADIR})
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/power.svg DESTINATION ${PKGDATADIR})
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/checked.svg DESTINATION ${PKGDATADIR})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
new file mode 100644
index 000000000000..256ecd59f4e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, linkFarm, lightdm-mini-greeter, fetchFromGitHub, autoreconfHook, pkgconfig, lightdm, gtk3, glib, gdk-pixbuf, wrapGAppsHook, librsvg }:
+
+stdenv.mkDerivation rec {
+ pname = "lightdm-mini-greeter";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "prikhi";
+ repo = "lightdm-mini-greeter";
+ rev = version;
+ sha256 = "10hga7pmfyjdvj4xwm3djwrhk50brcpycj3p3c57pa0vnx4ill3s";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
+ buildInputs = [ lightdm gtk3 glib gdk-pixbuf librsvg ];
+
+ configureFlags = [ "--sysconfdir=/etc" ];
+ makeFlags = [ "configdir=${placeholder "out"}/etc" ];
+
+ postInstall = ''
+ substituteInPlace "$out/share/xgreeters/lightdm-mini-greeter.desktop" \
+ --replace "Exec=lightdm-mini-greeter" "Exec=$out/bin/lightdm-mini-greeter"
+ '';
+
+ passthru.xgreeters = linkFarm "lightdm-mini-greeter-xgreeters" [{
+ path = "${lightdm-mini-greeter}/share/xgreeters/lightdm-mini-greeter.desktop";
+ name = "lightdm-mini-greeter.desktop";
+ }];
+
+ meta = with stdenv.lib; {
+ description = "A minimal, configurable, single-user GTK3 LightDM greeter";
+ homepage = "https://github.com/prikhi/lightdm-mini-greeter";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ mnacamura prikhi ];
+ platforms = platforms.linux;
+ changelog = "https://github.com/prikhi/lightdm-mini-greeter/blob/master/CHANGELOG.md";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix
new file mode 100644
index 000000000000..7e37d1348749
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, linkFarm, lightdm-tiny-greeter, fetchFromGitHub
+, pkgconfig, lightdm, gtk3, glib, wrapGAppsHook, conf ? "" }:
+
+stdenv.mkDerivation rec {
+ pname = "lightdm-tiny-greeter";
+ version = "1.2";
+
+ src = fetchFromGitHub {
+ owner = "off-world";
+ repo = "lightdm-tiny-greeter";
+ rev = version;
+ sha256 = "08azpj7b5qgac9bgi1xvd6qy6x2nb7iapa0v40ggr3d1fabyhrg6";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+ buildInputs = [ lightdm gtk3 glib ];
+
+ postUnpack = if conf != "" then ''
+ cp ${builtins.toFile "config.h" conf} source/config.h
+ '' else "";
+
+ buildPhase = ''
+ mkdir -p $out/bin $out/share/xgreeters
+ make ${pname}
+ mv ${pname} $out/bin/.
+ mv lightdm-tiny-greeter.desktop $out/share/xgreeters
+ '';
+
+ installPhase = ''
+ substituteInPlace "$out/share/xgreeters/lightdm-tiny-greeter.desktop" \
+ --replace "Exec=lightdm-tiny-greeter" "Exec=$out/bin/lightdm-tiny-greeter"
+ '';
+
+ passthru.xgreeters = linkFarm "lightdm-tiny-greeter-xgreeters" [{
+ path = "${lightdm-tiny-greeter}/share/xgreeters/lightdm-tiny-greeter.desktop";
+ name = "lightdm-tiny-greeter.desktop";
+ }];
+
+ meta = with stdenv.lib; {
+ description = "A tiny multi user lightdm greeter";
+ homepage = "https://github.com/off-world/lightdm-tiny-greeter";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ edwtjo ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
new file mode 100644
index 000000000000..19ebedf1ea33
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
@@ -0,0 +1,145 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, substituteAll
+, plymouth
+, pam
+, pkgconfig
+, autoconf
+, automake
+, libtool
+, libxcb
+, glib
+, libXdmcp
+, itstool
+, intltool
+, libxklavier
+, libgcrypt
+, audit
+, busybox
+, polkit
+, accountsservice
+, gtk-doc
+, gnome3
+, gobject-introspection
+, vala
+, fetchpatch
+, withQt4 ? false
+, qt4
+, withQt5 ? false
+, qtbase
+, yelp-tools
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "lightdm";
+ version = "1.30.0";
+
+ outputs = [ "out" "dev" ];
+
+ src = fetchFromGitHub {
+ owner = "CanonicalLtd";
+ repo = pname;
+ rev = version;
+ sha256 = "0i1yygmjbkdjnqdl9jn8zsa1mfs2l19qc4k2capd8q1ndhnjm2dx";
+ };
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ yelp-tools
+ gnome3.yelp-xsl
+ gobject-introspection
+ gtk-doc
+ intltool
+ itstool
+ libtool
+ pkgconfig
+ vala
+ ];
+
+ buildInputs = [
+ accountsservice
+ audit
+ glib
+ libXdmcp
+ libgcrypt
+ libxcb
+ libxklavier
+ pam
+ polkit
+ ] ++ optional withQt4 qt4
+ ++ optional withQt5 qtbase;
+
+ patches = [
+ # Adds option to disable writing dmrc files
+ (fetchpatch {
+ url = "https://src.fedoraproject.org/rpms/lightdm/raw/4cf0d2bed8d1c68970b0322ccd5dbbbb7a0b12bc/f/lightdm-1.25.1-disable_dmrc.patch";
+ sha256 = "06f7iabagrsiws2l75sx2jyljknr9js7ydn151p3qfi104d1541n";
+ })
+
+ # Don't use etc/dbus-1/system.d
+ (fetchpatch {
+ url = "https://github.com/canonical/lightdm/commit/a99376f5f51aa147aaf81287d7ce70db76022c47.patch";
+ sha256 = "1zyx1qqajrmqcf9hbsapd39gmdanswd9l78rq7q6rdy4692il3yn";
+ })
+
+ # https://github.com/canonical/lightdm/pull/104
+ (fetchpatch {
+ url = "https://github.com/canonical/lightdm/commit/03f218981733e50d810767f9d04e42ee156f7feb.patch";
+ sha256 = "07w18m2gpk29z6ym4y3lzsmg5dk3ffn39sq6lac26ap7narf4ma7";
+ })
+
+ # Hardcode plymouth to fix transitions.
+ # For some reason it can't find `plymouth`
+ # even when it's in PATH in environment.systemPackages.
+ (substituteAll {
+ src = ./fix-paths.patch;
+ plymouth = "${plymouth}/bin/plymouth";
+ })
+ ];
+
+ preConfigure = "NOCONFIGURE=1 ./autogen.sh";
+
+ configureFlags = [
+ "--localstatedir=/var"
+ "--sysconfdir=/etc"
+ "--disable-tests"
+ "--disable-dmrc"
+ ] ++ optional withQt4 "--enable-liblightdm-qt"
+ ++ optional withQt5 "--enable-liblightdm-qt5";
+
+ installFlags = [
+ "sysconfdir=${placeholder "out"}/etc"
+ "localstatedir=\${TMPDIR}"
+ ];
+
+ prePatch = ''
+ substituteInPlace autogen.sh \
+ --replace "which" "${busybox}/bin/which"
+
+ substituteInPlace src/shared-data-manager.c \
+ --replace /bin/rm ${busybox}/bin/rm
+ '';
+
+ postInstall = ''
+ rm -rf $out/etc/apparmor.d $out/etc/init $out/etc/pam.d
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+
+ meta = {
+ homepage = "https://github.com/CanonicalLtd/lightdm";
+ description = "A cross-desktop display manager";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ocharles worldofpeace ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/fix-paths.patch
new file mode 100644
index 000000000000..4498bc4d1a3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/plymouth.c b/src/plymouth.c
+index d1ed91f4..318f9409 100644
+--- a/src/plymouth.c
++++ b/src/plymouth.c
+@@ -24,7 +24,7 @@ static gboolean has_active_vt = FALSE;
+ static gboolean
+ plymouth_run_command (const gchar *command, gint *exit_status)
+ {
+- g_autofree gchar *command_line = g_strdup_printf ("plymouth %s", command);
++ g_autofree gchar *command_line = g_strdup_printf ("@plymouth@ %s", command);
+ g_autoptr(GError) error = NULL;
+ gboolean result = g_spawn_command_line_sync (command_line, NULL, NULL, exit_status, &error);
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
new file mode 100644
index 000000000000..ab7dd90801ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, lightdm_gtk_greeter
+, fetchurl
+, lightdm
+, pkgconfig
+, intltool
+, linkFarm
+, wrapGAppsHook
+, useGTK2 ? false
+, gtk2
+, gtk3 # gtk3 seems better supported
+, exo
+, at-spi2-core
+, librsvg
+, hicolor-icon-theme
+}:
+
+#ToDo: bad icons with gtk2;
+# avatar icon is missing in standard hicolor theme, I don't know where gtk3 takes it from
+
+let
+ ver_branch = "2.0";
+ version = "2.0.7";
+in
+stdenv.mkDerivation rec {
+ pname = "lightdm-gtk-greeter";
+ inherit version;
+
+ src = fetchurl {
+ url = "${meta.homepage}/${ver_branch}/${version}/+download/${pname}-${version}.tar.gz";
+ sha256 = "1g7wc3d3vqfa7mrdhx1w9ywydgjbffla6rbrxq9k3sc62br97qms";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+ buildInputs = [ lightdm exo librsvg hicolor-icon-theme ]
+ ++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]);
+
+ configureFlags = [
+ "--localstatedir=/var"
+ "--sysconfdir=/etc"
+ "--disable-indicator-services-command"
+ "--sbindir=${placeholder "out"}/bin" # for wrapGAppsHook to wrap automatically
+ ] ++ stdenv.lib.optional useGTK2 "--with-gtk2";
+
+ preConfigure = ''
+ configureFlagsArray+=( --enable-at-spi-command="${at-spi2-core}/libexec/at-spi-bus-launcher --launch-immediately" )
+ '';
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+ installFlags = [
+ "localstatedir=\${TMPDIR}"
+ "sysconfdir=${placeholder "out"}/etc"
+ ];
+
+ postInstall = ''
+ substituteInPlace "$out/share/xgreeters/lightdm-gtk-greeter.desktop" \
+ --replace "Exec=lightdm-gtk-greeter" "Exec=$out/bin/lightdm-gtk-greeter"
+ '';
+
+ passthru.xgreeters = linkFarm "lightdm-gtk-greeter-xgreeters" [{
+ path = "${lightdm_gtk_greeter}/share/xgreeters/lightdm-gtk-greeter.desktop";
+ name = "lightdm-gtk-greeter.desktop";
+ }];
+
+ meta = with stdenv.lib; {
+ homepage = "https://launchpad.net/lightdm-gtk-greeter";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ocharles ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/ly/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/ly/default.nix
new file mode 100644
index 000000000000..f16dd62bb1a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/ly/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchFromGitHub, linux-pam }:
+
+stdenv.mkDerivation rec {
+ pname = "ly";
+ version = "0.2.1";
+
+ src = fetchFromGitHub {
+ owner = "cylgom";
+ repo = "ly";
+ rev = version;
+ sha256 = "16gjcrd4a6i4x8q8iwlgdildm7cpdsja8z22pf2izdm6rwfki97d";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [ linux-pam ];
+ makeFlags = [ "FLAGS=-Wno-error" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/ly $out/bin
+ '';
+
+ meta = with lib; {
+ description = "TUI display manager";
+ license = licenses.wtfpl;
+ homepage = "https://github.com/cylgom/ly";
+ maintainers = [ maintainers.spacekookie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/sddm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
new file mode 100644
index 000000000000..fd02536589fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
@@ -0,0 +1,68 @@
+{ mkDerivation, lib, fetchFromGitHub
+, cmake, extra-cmake-modules, pkgconfig, libxcb, libpthreadstubs
+, libXdmcp, libXau, qtbase, qtdeclarative, qtquickcontrols2, qttools, pam, systemd
+}:
+
+let
+ version = "0.19.0";
+
+in mkDerivation {
+ pname = "sddm";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "sddm";
+ repo = "sddm";
+ rev = "v${version}";
+ sha256 = "1s6icb5r1n6grfs137gdzfrcvwsb3hvlhib2zh6931x8pkl1qvxa";
+ };
+
+ patches = [
+ ./sddm-ignore-config-mtime.patch
+ ];
+
+ postPatch =
+ # Fix missing include for gettimeofday()
+ ''
+ sed -e '1i#include <sys/time.h>' -i src/helper/HelperApp.cpp
+ '';
+
+ nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qttools ];
+
+ buildInputs = [
+ libxcb libpthreadstubs libXdmcp libXau pam qtbase qtdeclarative qtquickcontrols2 systemd
+ ];
+
+ cmakeFlags = [
+ "-DCONFIG_FILE=/etc/sddm.conf"
+ # Set UID_MIN and UID_MAX so that the build script won't try
+ # to read them from /etc/login.defs (fails in chroot).
+ # The values come from NixOS; they may not be appropriate
+ # for running SDDM outside NixOS, but that configuration is
+ # not supported anyway.
+ "-DUID_MIN=1000"
+ "-DUID_MAX=29999"
+
+ "-DQT_IMPORTS_DIR=${placeholder "out"}/${qtbase.qtQmlPrefix}"
+ "-DCMAKE_INSTALL_SYSCONFDIR=${placeholder "out"}/etc"
+ "-DSYSTEMD_SYSTEM_UNIT_DIR=${placeholder "out"}/lib/systemd/system"
+ "-DDBUS_CONFIG_DIR=${placeholder "out"}/share/dbus-1/system.d"
+ ];
+
+ postInstall = ''
+ # remove empty scripts
+ rm "$out/share/sddm/scripts/Xsetup" "$out/share/sddm/scripts/Xstop"
+ for f in $out/share/sddm/themes/**/theme.conf ; do
+ substituteInPlace $f \
+ --replace 'background=' "background=$(dirname $f)/"
+ done
+ '';
+
+ meta = with lib; {
+ description = "QML based X11 display manager";
+ homepage = "https://github.com/sddm/sddm";
+ maintainers = with maintainers; [ abbradar ttuegel ];
+ platforms = platforms.linux;
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
new file mode 100644
index 000000000000..a4d41e3e6f52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
@@ -0,0 +1,45 @@
+diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp
+index 041e5ed..efb1324 100644
+--- a/src/common/ConfigReader.cpp
++++ b/src/common/ConfigReader.cpp
+@@ -148,17 +148,14 @@ namespace SDDM {
+ // * m_path (classic fallback /etc/sddm.conf)
+
+ QStringList files;
+- QDateTime latestModificationTime = QFileInfo(m_path).lastModified();
+
+ if (!m_sysConfigDir.isEmpty()) {
+ //include the configDir in modification time so we also reload on any files added/removed
+ QDir dir(m_sysConfigDir);
+ if (dir.exists()) {
+- latestModificationTime = std::max(latestModificationTime, QFileInfo(m_sysConfigDir).lastModified());
+ const auto dirFiles = dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware);
+ for (const QFileInfo &file : dirFiles) {
+ files << (file.absoluteFilePath());
+- latestModificationTime = std::max(latestModificationTime, file.lastModified());
+ }
+ }
+ }
+@@ -166,22 +163,15 @@ namespace SDDM {
+ //include the configDir in modification time so we also reload on any files added/removed
+ QDir dir(m_configDir);
+ if (dir.exists()) {
+- latestModificationTime = std::max(latestModificationTime, QFileInfo(m_configDir).lastModified());
+ const auto dirFiles = dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware);
+ for (const QFileInfo &file : dirFiles) {
+ files << (file.absoluteFilePath());
+- latestModificationTime = std::max(latestModificationTime, file.lastModified());
+ }
+ }
+ }
+
+ files << m_path;
+
+- if (latestModificationTime <= m_fileModificationTime) {
+- return;
+- }
+- m_fileModificationTime = latestModificationTime;
+-
+ for (const QString &filepath : qAsConst(files)) {
+ loadInternal(filepath);
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/aewan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/aewan/default.nix
new file mode 100644
index 000000000000..56a144bdfb8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/aewan/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, zlib, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "aewan";
+ version = "1.0.01";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/aewan/${pname}-${version}.tar.gz";
+ sha256 = "5266dec5e185e530b792522821c97dfa5f9e3892d0dca5e881d0c30ceac21817";
+ };
+
+ buildInputs = [ zlib ncurses ];
+
+ meta = {
+ description = "Ascii-art Editor Without A Name";
+ homepage = "http://aewan.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/amp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/amp/default.nix
new file mode 100644
index 000000000000..9be6d56ab345
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/amp/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkgconfig, python3, xorg, cmake, libgit2, darwin
+, curl }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "amp";
+ version = "0.6.2";
+
+ src = fetchFromGitHub {
+ owner = "jmacdonald";
+ repo = pname;
+ rev = version;
+ sha256 = "0l1vpcfq6jrq2dkrmsa4ghwdpp7c54f46gz3n7nk0i41b12hnigw";
+ };
+
+ cargoSha256 = "09v991rl2w4c4jh7ga7q1lk6wyl2vr71j5cpniij8mcvszrz78qf";
+
+ nativeBuildInputs = [ cmake pkgconfig python3 ];
+ buildInputs = [ openssl xorg.libxcb libgit2 ] ++ stdenv.lib.optionals stdenv.isDarwin
+ (with darwin.apple_sdk.frameworks; [ curl Security AppKit ]);
+
+ # Tests need to write to the theme directory in HOME.
+ preCheck = "export HOME=`mktemp -d`";
+
+ meta = with stdenv.lib; {
+ description = "A modern text editor inspired by Vim";
+ homepage = "https://amp.rs";
+ license = [ licenses.gpl3 ];
+ maintainers = [ maintainers.sb0 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/android-studio/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/android-studio/common.nix
new file mode 100644
index 000000000000..605d810b3d9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/android-studio/common.nix
@@ -0,0 +1,217 @@
+{ channel, pname, version, build, sha256Hash }:
+
+{ alsaLib
+, bash
+, buildFHSUserEnv
+, cacert
+, coreutils
+, dbus
+, expat
+, fetchurl
+, findutils
+, file
+, fontsConf
+, git
+, glxinfo
+, gnugrep
+, gnused
+, gnutar
+, gtk2, gnome_vfs, glib, GConf
+, gzip
+, fontconfig
+, freetype
+, libpulseaudio
+, libGL
+, libuuid
+, libX11
+, libxcb
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXrandr
+, libXrender
+, libXtst
+, makeWrapper
+, nspr
+, nss
+, pciutils
+, pkgsi686Linux
+, ps
+, setxkbmap
+, stdenv
+, systemd
+, unzip
+, which
+, runCommand
+, xkeyboard_config
+, zlib
+, makeDesktopItem
+}:
+
+let
+ drvName = "android-studio-${channel}-${version}";
+ androidStudio = stdenv.mkDerivation {
+ name = "${drvName}-unwrapped";
+
+ src = fetchurl {
+ url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.tar.gz";
+ sha256 = sha256Hash;
+ };
+
+ buildInputs = [
+ makeWrapper
+ unzip
+ ];
+ installPhase = ''
+ cp -r . $out
+ wrapProgram $out/bin/studio.sh \
+ --set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
+ --prefix PATH : "${stdenv.lib.makeBinPath [
+
+ # Checked in studio.sh
+ coreutils
+ findutils
+ gnugrep
+ which
+ gnused
+
+ # For Android emulator
+ file
+ glxinfo
+ pciutils
+ setxkbmap
+
+ # Used during setup wizard
+ gnutar
+ gzip
+
+ # Runtime stuff
+ git
+ ps
+ ]}" \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
+
+ # Crash at startup without these
+ fontconfig
+ freetype
+ libXext
+ libXi
+ libXrender
+ libXtst
+
+ # Gradle wants libstdc++.so.6
+ stdenv.cc.cc.lib
+ # mksdcard wants 32 bit libstdc++.so.6
+ pkgsi686Linux.stdenv.cc.cc.lib
+
+ # aapt wants libz.so.1
+ zlib
+ pkgsi686Linux.zlib
+ # Support multiple monitors
+ libXrandr
+
+ # For Android emulator
+ alsaLib
+ dbus
+ expat
+ libpulseaudio
+ libuuid
+ libX11
+ libxcb
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXfixes
+ libGL
+ nspr
+ nss
+ systemd
+
+ # For GTKLookAndFeel
+ gtk2
+ gnome_vfs
+ glib
+ GConf
+ ]}" \
+ --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \
+ --set FONTCONFIG_FILE ${fontsConf}
+ '';
+ };
+
+ desktopItem = makeDesktopItem {
+ name = drvName;
+ exec = pname;
+ icon = drvName;
+ desktopName = "Android Studio (${channel} channel)";
+ comment = "The official Android IDE";
+ categories = "Development;IDE;";
+ startupNotify = "true";
+ extraEntries="StartupWMClass=jetbrains-studio";
+ };
+
+ # Android Studio downloads prebuilt binaries as part of the SDK. These tools
+ # (e.g. `mksdcard`) have `/lib/ld-linux.so.2` set as the interpreter. An FHS
+ # environment is used as a work around for that.
+ fhsEnv = buildFHSUserEnv {
+ name = "${drvName}-fhs-env";
+ multiPkgs = pkgs: [
+ pkgs.ncurses5
+
+ # Flutter can only search for certs Fedora-way.
+ (runCommand "fedoracert" {}
+ ''
+ mkdir -p $out/etc/pki/tls/
+ ln -s ${cacert}/etc/ssl/certs $out/etc/pki/tls/certs
+ '')
+ ];
+ };
+in runCommand
+ drvName
+ {
+ startScript = ''
+ #!${bash}/bin/bash
+ ${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh
+ '';
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ passthru = {
+ unwrapped = androidStudio;
+ };
+ meta = with stdenv.lib; {
+ description = "The Official IDE for Android (${channel} channel)";
+ longDescription = ''
+ Android Studio is the official IDE for Android app development, based on
+ IntelliJ IDEA.
+ '';
+ homepage = if channel == "stable"
+ then "https://developer.android.com/studio/index.html"
+ else "https://developer.android.com/studio/preview/index.html";
+ license = with licenses; [ asl20 unfree ]; # The code is under Apache-2.0, but:
+ # If one selects Help -> Licenses in Android Studio, the dialog shows the following:
+ # "Android Studio includes proprietary code subject to separate license,
+ # including JetBrains CLion(R) (www.jetbrains.com/clion) and IntelliJ(R)
+ # IDEA Community Edition (www.jetbrains.com/idea)."
+ # Also: For actual development the Android SDK is required and the Google
+ # binaries are also distributed as proprietary software (unlike the
+ # source-code itself).
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; rec {
+ stable = [ meutraa ];
+ beta = [ meutraa ];
+ canary = [ meutraa ];
+ dev = canary;
+ }."${channel}";
+ };
+ }
+ ''
+ mkdir -p $out/{bin,share/pixmaps}
+
+ echo -n "$startScript" > $out/bin/${pname}
+ chmod +x $out/bin/${pname}
+
+ ln -s ${androidStudio}/bin/studio.png $out/share/pixmaps/${drvName}.png
+ ln -s ${desktopItem}/share/applications $out/share/applications
+ ''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/android-studio/default.nix
new file mode 100644
index 000000000000..d94ad070536a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/android-studio/default.nix
@@ -0,0 +1,48 @@
+{ callPackage, makeFontsConf, gnome2, buildFHSUserEnv }:
+
+let
+ mkStudio = opts: callPackage (import ./common.nix opts) {
+ fontsConf = makeFontsConf {
+ fontDirectories = [];
+ };
+ inherit (gnome2) GConf gnome_vfs;
+ inherit buildFHSUserEnv;
+ };
+ stableVersion = {
+ version = "4.1.1.0"; # "Android Studio 4.1.1"
+ build = "201.6953283";
+ sha256Hash = "sha256-aAMhhJWcVFdvEZt8fI3tF12Eg3TzlU+kUFMNeCYN1os=";
+ };
+ betaVersion = {
+ version = "4.2.0.17"; # "Android Studio 4.2 Beta 1"
+ build = "202.6987402";
+ sha256Hash = "07qr0b1zdzpc1nsi6593518dxp89dcjfp4lznb1d3id8vbqla4i7";
+ };
+ latestVersion = { # canary & dev
+ version = "2020.3.1.2"; # "Android Studio Arctic Fox Canary 2"
+ build = "202.7006259";
+ sha256Hash = "1d4brfx1fh1vlcjkb0x8hjj2qgz2dl5wbaiy8dj8w03vcf493nc5";
+ };
+in {
+ # Attributes are named by their corresponding release channels
+
+ stable = mkStudio (stableVersion // {
+ channel = "stable";
+ pname = "android-studio";
+ });
+
+ beta = mkStudio (betaVersion // {
+ channel = "beta";
+ pname = "android-studio-beta";
+ });
+
+ dev = mkStudio (latestVersion // {
+ channel = "dev";
+ pname = "android-studio-dev";
+ });
+
+ canary = mkStudio (latestVersion // {
+ channel = "canary";
+ pname = "android-studio-canary";
+ });
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/apostrophe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
new file mode 100644
index 000000000000..b3902293718e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitLab, meson, ninja, cmake
+, wrapGAppsHook, pkgconfig, desktop-file-utils
+, appstream-glib, pythonPackages, glib, gobject-introspection
+, gtk3, webkitgtk, glib-networking, gnome3, gspell, texlive
+, shared-mime-info, haskellPackages}:
+
+let
+ pythonEnv = pythonPackages.python.withPackages(p: with p;
+ [ regex setuptools python-Levenshtein pyenchant pygobject3 pycairo pypandoc ]);
+ texliveDist = texlive.combined.scheme-medium;
+
+in stdenv.mkDerivation rec {
+ pname = "apostrophe";
+ version = "2.2.0.3";
+
+ src = fetchFromGitLab {
+ owner = "somas";
+ repo = pname;
+ domain = "gitlab.gnome.org";
+ rev = "v${version}";
+ sha256 = "06bl1hc69ixk2vcb2ig74mwid14sl5zq6rfna7lx9na6j3l04879";
+ };
+
+ nativeBuildInputs = [ meson ninja cmake pkgconfig desktop-file-utils
+ appstream-glib wrapGAppsHook ];
+
+ buildInputs = [ glib pythonEnv gobject-introspection gtk3
+ gnome3.adwaita-icon-theme webkitgtk gspell texliveDist
+ glib-networking ];
+
+ postPatch = ''
+ patchShebangs --build build-aux/meson_post_install.py
+
+ substituteInPlace ${pname}/config.py --replace "/usr/share/${pname}" "$out/share/${pname}"
+
+ # get rid of unused distributed dependencies
+ rm -r ${pname}/pylocales
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PYTHONPATH : "$out/lib/python${pythonEnv.pythonVersion}/site-packages/"
+ --prefix PATH : "${texliveDist}/bin"
+ --prefix PATH : "${haskellPackages.pandoc-citeproc}/bin"
+ --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.gnome.org/somas/apostrophe";
+ description = "A distraction free Markdown editor for GNU/Linux";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.sternenseemann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/allegro-glibc-2.30.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/allegro-glibc-2.30.patch
new file mode 100644
index 000000000000..94c70da276c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/allegro-glibc-2.30.patch
@@ -0,0 +1,8 @@
+diff --git a/src/she/CMakeLists.txt b/src/she/CMakeLists.txt
+index 4909ff1..02fa145 100644
+--- a/src/she/CMakeLists.txt
++++ b/src/she/CMakeLists.txt
+@@ -23,2 +23,3 @@ if(USE_ALLEG4_BACKEND)
+ add_definitions(-DUSE_MOUSE_POLLER)
++ add_definitions(-DALLEGRO_NO_FIX_ALIASES)
+ endif()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/default.nix
new file mode 100644
index 000000000000..4ba8932fec25
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/default.nix
@@ -0,0 +1,128 @@
+{ stdenv, lib, callPackage, fetchFromGitHub, fetchpatch, cmake, ninja, pkgconfig
+, curl, freetype, giflib, libjpeg, libpng, libwebp, pixman, tinyxml, zlib
+, harfbuzzFull, glib, fontconfig, pcre
+, libX11, libXext, libXcursor, libXxf86vm, libGL
+, unfree ? false
+, cmark
+}:
+
+# Unfree version is not redistributable:
+# https://dev.aseprite.org/2016/09/01/new-source-code-license/
+# Consider supporting the developer: https://aseprite.org/#buy
+
+let
+ skia = callPackage ./skia.nix {};
+in
+stdenv.mkDerivation rec {
+ pname = "aseprite";
+ version = if unfree then "1.2.16.3" else "1.1.7";
+
+ src = fetchFromGitHub {
+ owner = "aseprite";
+ repo = "aseprite";
+ rev = "v${version}";
+ fetchSubmodules = true;
+ sha256 = if unfree
+ then "16yn7y9xdc5jd50cq7bmsm320gv23pp71lr8hg2nmynzc8ibyda8"
+ else "0gd49lns2bpzbkwax5jf9x1xmg1j8ij997kcxr2596cwiswnw4di";
+ };
+
+ nativeBuildInputs = [
+ cmake pkgconfig
+ ] ++ lib.optionals unfree [ ninja ];
+
+ buildInputs = [
+ curl freetype giflib libjpeg libpng libwebp pixman tinyxml zlib
+ libX11 libXext libXcursor libXxf86vm
+ ] ++ lib.optionals unfree [
+ cmark
+ harfbuzzFull glib fontconfig pcre
+ skia libGL
+ ];
+
+ patches = if !unfree then [
+ ./allegro-glibc-2.30.patch
+ ] else [
+ (fetchpatch {
+ url = "https://github.com/lfont/aseprite/commit/f1ebc47012d3fed52306ed5922787b4b98cc0a7b.patch";
+ sha256 = "03xg7x6b9iv7z18vzlqxhcfphmx4v3qhs9f5rgf38ppyklca5jyw";
+ })
+ (fetchpatch {
+ url = "https://github.com/orivej/aseprite/commit/ea87e65b357ad0bd65467af5529183b5a48a8c17.patch";
+ sha256 = "1vwn8ivap1pzdh444sdvvkndp55iz146nhmd80xbm8cyzn3qmg91";
+ })
+ ];
+
+ postPatch = ''
+ sed -i src/config.h -e "s-\\(#define VERSION\\) .*-\\1 \"$version\"-"
+ '';
+
+ cmakeFlags = [
+ "-DENABLE_UPDATER=OFF"
+ "-DUSE_SHARED_CURL=ON"
+ "-DUSE_SHARED_FREETYPE=ON"
+ "-DUSE_SHARED_GIFLIB=ON"
+ "-DUSE_SHARED_JPEGLIB=ON"
+ "-DUSE_SHARED_LIBPNG=ON"
+ "-DUSE_SHARED_LIBWEBP=ON"
+ "-DUSE_SHARED_PIXMAN=ON"
+ "-DUSE_SHARED_TINYXML=ON"
+ "-DUSE_SHARED_ZLIB=ON"
+ "-DWITH_DESKTOP_INTEGRATION=ON"
+ "-DWITH_WEBP_SUPPORT=ON"
+ ] ++ lib.optionals unfree [
+ "-DUSE_SHARED_CMARK=ON"
+ "-DUSE_SHARED_HARFBUZZ=ON"
+ # Aseprite needs internal freetype headers.
+ "-DUSE_SHARED_FREETYPE=OFF"
+ # Disable libarchive programs.
+ "-DENABLE_CAT=OFF"
+ "-DENABLE_CPIO=OFF"
+ "-DENABLE_TAR=OFF"
+ # UI backend.
+ "-DLAF_OS_BACKEND=skia"
+ "-DSKIA_DIR=${skia}"
+ ];
+
+ postInstall = ''
+ # Install desktop icons.
+ src="$out/share/aseprite/data/icons"
+ for size in 16 32 48 64; do
+ dst="$out"/share/icons/hicolor/"$size"x"$size"
+ install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png
+ install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/aseprite.png
+ done
+ # Delete unneeded artifacts of bundled libraries.
+ rm -rf "$out"/include "$out"/lib
+ '';
+
+ enableParallelBuilding = true;
+
+ passthru = { inherit skia; };
+
+ meta = with lib; {
+ homepage = "https://www.aseprite.org/";
+ description = "Animated sprite editor & pixel art tool";
+ license = if unfree then licenses.unfree else licenses.gpl2;
+ longDescription =
+ ''Aseprite is a program to create animated sprites. Its main features are:
+
+ - Sprites are composed by layers & frames (as separated concepts).
+ - Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
+ - Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
+ - Export/import animations to/from Sprite Sheets.
+ - Tiled drawing mode, useful to draw patterns and textures.
+ - Undo/Redo for every operation.
+ - Real-time animation preview.
+ - Multiple editors support.
+ - Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
+ - Onion skinning.
+ '' + lib.optionalString unfree
+ ''
+ This version is not redistributable: https://dev.aseprite.org/2016/09/01/new-source-code-license/
+ Consider supporting the developer: https://aseprite.org/#buy
+ '';
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia-deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia-deps.nix
new file mode 100644
index 000000000000..e5655ca8315d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia-deps.nix
@@ -0,0 +1,23 @@
+{ fetchgit }:
+{
+ angle2 = fetchgit {
+ url = "https://chromium.googlesource.com/angle/angle.git";
+ rev = "956ab4d9fab36be9929e63829475d4d69b2c681c";
+ sha256 = "0fcw04wwkn3ixr9l9k0d32n78r9g72p31ii9i5spsq2d0wlylr38";
+ };
+ dng_sdk = fetchgit {
+ url = "https://android.googlesource.com/platform/external/dng_sdk.git";
+ rev = "96443b262250c390b0caefbf3eed8463ba35ecae";
+ sha256 = "1rsr7njhj7c5p87hfznj069fdc3qqhvvnq9sa2rb8c4q849rlzx6";
+ };
+ piex = fetchgit {
+ url = "https://android.googlesource.com/platform/external/piex.git";
+ rev = "bb217acdca1cc0c16b704669dd6f91a1b509c406";
+ sha256 = "05ipmag6k55jmidbyvg5mkqm69zfw03gfkqhi9jnjlmlbg31y412";
+ };
+ sfntly = fetchgit {
+ url = "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git";
+ rev = "b18b09b6114b9b7fe6fc2f96d8b15e8a72f66916";
+ sha256 = "0zf1h0dibmm38ldypccg4faacvskmd42vsk6zbxlfcfwjlqm6pp4";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia-make-deps.sh b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia-make-deps.sh
new file mode 100755
index 000000000000..5e12c4f5c858
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia-make-deps.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+FILTER=$1
+OUT=skia-deps.nix
+REVISION=89e4ca4352d05adc892f5983b108433f29b2c0c2
+DEPS=$(curl -s https://raw.githubusercontent.com/aseprite/skia/$REVISION/DEPS)
+THIRD_PARTY_DEPS=$(echo "$DEPS" | grep third_party | grep "#" -v | sed 's/"//g')
+
+function write_fetch_defs ()
+{
+ while read -r DEP; do
+ NAME=$(echo "$DEP" | cut -d: -f1 | cut -d/ -f3 | sed 's/ //g')
+ URL=$(echo "$DEP" | cut -d: -f2- | cut -d@ -f1 | sed 's/ //g')
+ REV=$(echo "$DEP" | cut -d: -f2- | cut -d@ -f2 | sed 's/[ ,]//g')
+
+ echo "Fetching $NAME@$REV"
+ PREFETCH=$(nix-prefetch-git --rev "$REV" "$URL")
+
+(
+cat <<EOF
+ $NAME = fetchgit {
+ url = "$URL";
+ rev = "$REV";
+ sha256 = $(echo $PREFETCH | jq '.sha256');
+ };
+EOF
+) >> "$OUT"
+
+ echo "----------"
+ echo
+ done <<< "$1"
+}
+
+echo "{ fetchgit }:" > "$OUT"
+echo "{" >> "$OUT"
+write_fetch_defs "$(echo "$THIRD_PARTY_DEPS" | grep -E "$FILTER")"
+echo "}" >> "$OUT"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia.nix
new file mode 100644
index 000000000000..141d51bed0f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/aseprite/skia.nix
@@ -0,0 +1,76 @@
+{ stdenv, lib, fetchFromGitHub, fetchgit, python2, gn, ninja
+, fontconfig, expat, icu58, libglvnd, libjpeg, libpng, libwebp, zlib
+, mesa, libX11
+}:
+
+let
+ # skia-deps.nix is generated by: ./skia-make-deps.sh 'angle2|dng_sdk|piex|sfntly'
+ depSrcs = import ./skia-deps.nix { inherit fetchgit; };
+ gnOld = gn.overrideAttrs (oldAttrs: rec {
+ version = "20190403";
+ src = fetchgit {
+ url = "https://gn.googlesource.com/gn";
+ rev = "64b846c96daeb3eaf08e26d8a84d8451c6cb712b";
+ sha256 = "1v2kzsshhxn0ck6gd5w16gi2m3higwd9vkyylmsczxfxnw8skgpy";
+ };
+ });
+in
+stdenv.mkDerivation {
+ name = "skia-aseprite-m71";
+
+ src = fetchFromGitHub {
+ owner = "aseprite";
+ repo = "skia";
+ # latest commit from aseprite-m71 branch
+ rev = "89e4ca4352d05adc892f5983b108433f29b2c0c2"; # TODO: Remove the gnOld override
+ sha256 = "0n3vrkswvi6rib9zv2pzi18h3j5wm7flmgkgaikcm6q7iw4l2c7x";
+ };
+
+ nativeBuildInputs = [ python2 gnOld ninja ];
+
+ buildInputs = [
+ fontconfig expat icu58 libglvnd libjpeg libpng libwebp zlib
+ mesa libX11
+ ];
+
+ preConfigure = with depSrcs; ''
+ mkdir -p third_party/externals
+ ln -s ${angle2} third_party/externals/angle2
+ ln -s ${dng_sdk} third_party/externals/dng_sdk
+ ln -s ${piex} third_party/externals/piex
+ ln -s ${sfntly} third_party/externals/sfntly
+ '';
+
+ configurePhase = ''
+ runHook preConfigure
+ gn gen out/Release --args="is_debug=false is_official_build=true"
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+ ninja -C out/Release skia
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+
+ # Glob will match all subdirs.
+ shopt -s globstar
+
+ # All these paths are used in some way when building aseprite.
+ cp -r --parents -t $out/ \
+ include/codec \
+ include/config \
+ include/core \
+ include/effects \
+ include/gpu \
+ include/private \
+ include/utils \
+ out/Release/*.a \
+ src/gpu/**/*.h \
+ third_party/externals/angle2/include \
+ third_party/skcms/**/*.h
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/atom/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/atom/default.nix
new file mode 100644
index 000000000000..35640965c6fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/atom/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, pkgs, fetchurl, wrapGAppsHook, gvfs, gtk3, atomEnv }:
+
+let
+ versions = {
+ atom = {
+ version = "1.48.0";
+ sha256 = "1693bxbylf6jhld9bdcr5pigk36wqlbj89praldpz9s96yxig9s1";
+ };
+
+ atom-beta = {
+ version = "1.49.0";
+ beta = 0;
+ sha256 = "1fr6m4a7shdj3wpn6g4n95cqpkkg2x9srwjf7bqxv9f3d5jb1y33";
+ };
+ };
+
+ common = pname: {version, sha256, beta ? null}:
+ let fullVersion = version + stdenv.lib.optionalString (beta != null) "-beta${toString beta}";
+ name = "${pname}-${fullVersion}";
+ in stdenv.mkDerivation {
+ inherit name;
+ version = fullVersion;
+
+ src = fetchurl {
+ url = "https://github.com/atom/atom/releases/download/v${fullVersion}/atom-amd64.deb";
+ name = "${name}.deb";
+ inherit sha256;
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
+ ];
+
+ buildInputs = [
+ gtk3 # Fix error: GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' is not installed
+ ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ ar p $src data.tar.xz | tar xJ ./usr/
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out
+ mv usr/bin usr/share $out
+ rm -rf $out/share/lintian
+
+ runHook postInstall
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix "PATH" : "${gvfs}/bin"
+ )
+ '';
+
+ postFixup = ''
+ share=$out/share/${pname}
+
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${atomEnv.libPath}:$share" \
+ $share/atom
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${atomEnv.libPath}" \
+ $share/resources/app/apm/bin/node
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ $share/resources/app.asar.unpacked/node_modules/symbols-view/vendor/ctags-linux
+
+ dugite=$share/resources/app.asar.unpacked/node_modules/dugite
+ rm -f $dugite/git/bin/git
+ ln -s ${pkgs.git}/bin/git $dugite/git/bin/git
+ rm -f $dugite/git/libexec/git-core/git
+ ln -s ${pkgs.git}/bin/git $dugite/git/libexec/git-core/git
+
+ find $share -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$share" {} \;
+
+ sed -i -e "s|Exec=.*$|Exec=$out/bin/${pname}|" $out/share/applications/${pname}.desktop
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A hackable text editor for the 21st Century";
+ homepage = "https://atom.io/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ offline ysndr ];
+ platforms = platforms.x86_64;
+ };
+ };
+in stdenv.lib.mapAttrs common versions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/atom/env.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/atom/env.nix
new file mode 100644
index 000000000000..5e3c1070ad2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/atom/env.nix
@@ -0,0 +1,21 @@
+{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk3, atk, pango, freetype, fontconfig
+, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
+, gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
+, at-spi2-core
+}:
+
+let
+ packages = [
+ stdenv.cc.cc zlib glib dbus gtk3 atk pango freetype libgnome-keyring3
+ fontconfig gdk-pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
+ xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
+ xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
+ xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
+ xorg.libxcb libsecret libuuid at-spi2-atk at-spi2-core
+ ];
+
+ libPathNative = lib.makeLibraryPath packages;
+ libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
+ libPath = "${libPathNative}:${libPath64}";
+
+in { inherit packages libPath; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/bless/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/bless/default.nix
new file mode 100644
index 000000000000..b3c3caae4e45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/bless/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, mono
+, gtk-sharp-2_0
+, gettext
+, makeWrapper
+, glib
+, gtk2-x11
+, gnome2
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bless";
+ version = "0.6.2";
+
+ src = fetchFromGitHub {
+ owner = "afrantzis";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "04ra2mcx3pkhzbhcz0zwfmbpqj6cwisrypi6xbc2d6pxd4hdafn1";
+ };
+
+ buildInputs = [
+ gtk-sharp-2_0
+ mono
+ # runtime only deps
+ glib
+ gtk2-x11
+ gnome2.libglade
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ autoreconfHook
+ gettext
+ makeWrapper
+ ];
+
+ configureFlags = [
+ # scrollkeeper is a gnome2 package, so it must be old and we shouldn't really support it
+ # NOTE: that sadly doesn't turn off the compilation of the manual with scrollkeeper, so we have to fake the binaries below
+ "--without-scrollkeeper"
+ ];
+
+ autoreconfPhase = ''
+ mkdir _bin
+
+ # this fakes the scrollkeeper commands, to keep the build happy
+ for f in scrollkeeper-preinstall scrollkeeper-update; do
+ echo "true" > ./_bin/$f
+ chmod +x ./_bin/$f
+ done
+
+ export PATH="$PWD/_bin:$PATH"
+
+ # and it also wants to install that file
+ touch ./doc/user/bless-manual.omf
+
+ # patch mono path
+ sed "s|^mono|${mono}/bin/mono|g" -i src/bless-script.in
+
+ ./autogen.sh
+ '';
+
+ preFixup = ''
+ MPATH="${gtk-sharp-2_0}/lib/mono/gtk-sharp-2.0:${glib.out}/lib:${gtk2-x11}/lib:${gnome2.libglade}/lib:${gtk-sharp-2_0}/lib"
+ wrapProgram $out/bin/bless --prefix MONO_PATH : "$MPATH" --prefix LD_LIBRARY_PATH : "$MPATH"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/afrantzis/bless";
+ description = "Gtk# Hex Editor";
+ maintainers = [ maintainers.mkg20001 ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ badPlatforms = [ "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/bluefish/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/bluefish/default.nix
new file mode 100644
index 000000000000..48c83b053108
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/bluefish/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, intltool, wrapGAppsHook, pkgconfig , gtk, libxml2
+, enchant, gucharmap, python, gnome3
+}:
+
+stdenv.mkDerivation rec {
+ name = "bluefish-2.2.12";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/bluefish/${name}.tar.bz2";
+ sha256 = "0slyjx4b4l612505q02crk00pjg9d5wi8gm5gxvcs0f6l9dr1y8d";
+ };
+
+ nativeBuildInputs = [ intltool pkgconfig wrapGAppsHook ];
+ buildInputs = [ gnome3.adwaita-icon-theme gtk libxml2
+ enchant gucharmap python ];
+
+ meta = with stdenv.lib; {
+ description = "A powerful editor targeted towards programmers and webdevelopers";
+ homepage = "http://bluefish.openoffice.nl/";
+ license = licenses.gpl3Plus;
+ maintainers = [maintainers.vbgl];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/bluej/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/bluej/default.nix
new file mode 100644
index 000000000000..25caf4b7ac7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/bluej/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, makeWrapper, jdk }:
+
+stdenv.mkDerivation rec {
+ pname = "bluej";
+ version = "4.2.2";
+ src = fetchurl {
+ # We use the deb here. First instinct might be to go for the "generic" JAR
+ # download, but that is actually a graphical installer that is much harder
+ # to unpack than the deb.
+ url = "https://www.bluej.org/download/files/BlueJ-linux-${builtins.replaceStrings ["."] [""] version}.deb";
+ sha256 = "5c2241f2208e98fcf9aad7c7a282bcf16e6fd543faa5fdb0b99b34d1023113c3";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ unpackPhase = ''
+ ar xf $src
+ tar xf data.tar.xz
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r usr/* $out
+
+ makeWrapper ${jdk}/bin/java $out/bin/bluej \
+ --add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp \"$out/share/bluej/bluej.jar\" bluej.Boot"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple integrated development environment for Java";
+ homepage = "https://www.bluej.org/";
+ license = licenses.gpl2ClasspathPlus;
+ maintainers = [ maintainers.charvp ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix
new file mode 100644
index 000000000000..a12ccd257f8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, makeWrapper, fetchFromGitHub, cmake, alsaLib, mesa_glu, libXcursor, libXinerama, libXrandr, xorgserver }:
+
+stdenv.mkDerivation rec {
+ pname = "bonzomatic";
+ version = "2018-03-29";
+
+ src = fetchFromGitHub {
+ owner = "Gargaj";
+ repo = pname;
+ rev = version;
+ sha256 = "12mdfjvbhdqz1585772rj4cap8m4ijfci6ib62jysxjf747k41fg";
+ };
+
+ buildInputs = [ cmake makeWrapper alsaLib mesa_glu libXcursor libXinerama libXrandr xorgserver ];
+
+ postFixup = ''
+ wrapProgram $out/bin/Bonzomatic --prefix LD_LIBRARY_PATH : "${alsaLib}/lib"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A live-coding tool for writing 2D fragment/pixel shaders";
+ license = with licenses; [
+ unlicense
+ unfreeRedistributable # contains libbass.so in repository
+ ];
+ maintainers = [ maintainers.nocent ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/brackets/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/brackets/default.nix
new file mode 100644
index 000000000000..9d5978e605ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/brackets/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, lib, fetchurl, gtk2, glib, gdk-pixbuf, alsaLib, nss, nspr, gconf
+, cups, libgcrypt_1_5, systemd, dbus, libXdamage, expat }:
+with stdenv.lib;
+
+let
+ bracketsLibs = makeLibraryPath [
+ gtk2 glib gdk-pixbuf stdenv.cc.cc.lib alsaLib nss nspr gconf cups libgcrypt_1_5 dbus systemd libXdamage expat
+ ];
+in
+stdenv.mkDerivation rec {
+ pname = "brackets";
+ version = "1.9";
+
+ src = fetchurl {
+ url = "https://github.com/adobe/brackets/releases/download/release-${version}/Brackets.Release.${version}.64-bit.deb";
+ sha256 = "0c4l2rr0853xd21kw8hhxlmrx8mqwb7iqa2k24zvwyjp4nnwkgbp";
+ name = "${pname}-${version}.deb";
+ };
+
+ phases = [ "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ mkdir -p $out
+ ar p $src data.tar.xz | tar -C $out -xJ
+
+ mv $out/usr/* $out/
+ rmdir $out/usr
+ ln -sf $out/opt/brackets/brackets $out/bin/brackets
+
+ ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
+
+ substituteInPlace $out/opt/brackets/brackets.desktop \
+ --replace "Exec=/opt/brackets/brackets" "Exec=brackets"
+ mkdir -p $out/share/applications
+ ln -s $out/opt/brackets/brackets.desktop $out/share/applications/
+ '';
+
+ postFixup = ''
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${bracketsLibs}:$out/opt/brackets/lib" \
+ $out/opt/brackets/Brackets
+
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${bracketsLibs}" \
+ $out/opt/brackets/Brackets-node
+
+ patchelf --set-rpath "${bracketsLibs}" \
+ $out/opt/brackets/lib/libcef.so
+ '';
+
+ meta = {
+ description = "An open source code editor for the web, written in JavaScript, HTML and CSS";
+ homepage = "http://brackets.io/";
+ license = licenses.mit;
+ maintainers = [ maintainers.matejc ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/bvi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/bvi/default.nix
new file mode 100644
index 000000000000..8a61e0252bc3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/bvi/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "bvi";
+ version = "1.4.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/bvi/${pname}-${version}.src.tar.gz";
+ sha256 = "0a0yl0dcyff31k3dr4dpgqmlwygp8iaslnr5gmb6814ylxf2ad9h";
+ };
+
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "Hex editor with vim style keybindings";
+ homepage = "http://bvi.sourceforge.net/download.html";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pSub ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/bviplus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/bviplus/default.nix
new file mode 100644
index 000000000000..2cf094c091a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/bviplus/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "bviplus";
+ version = "1.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/bviplus/bviplus/${version}/bviplus-${version}.tgz";
+ sha256 = "08q2fdyiirabbsp5qpn3v8jxp4gd85l776w6gqvrbjwqa29a8arg";
+ };
+
+ buildInputs = [
+ ncurses
+ ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ buildFlags = [ "CFLAGS=-fgnu89-inline" ];
+
+ meta = with stdenv.lib; {
+ description = "Ncurses based hex editor with a vim-like interface";
+ homepage = "http://bviplus.sourceforge.net";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/code-browser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/code-browser/default.nix
new file mode 100644
index 000000000000..ed11298c621a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/code-browser/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchurl
+, copper
+, ruby
+, python3
+, qtbase
+, gtk3
+, pkg-config
+, withQt ? false
+, withGtk ? false, wrapQtAppsHook ? null
+}:
+stdenv.mkDerivation rec {
+ pname = "code-browser";
+ version = "7.1.20";
+ src = fetchurl {
+ url = "https://tibleiz.net/download/code-browser-${version}-src.tar.gz";
+ sha256 = "1svi0v3h42h2lrb8c7pjvqc8019v1p20ibsnl48pfhl8d96mmdnz";
+ };
+ postPatch = ''
+ substituteInPlace Makefile --replace "LFLAGS=-no-pie" "LFLAGS=-no-pie -L."
+ substituteInPlace libs/copper-ui/Makefile --replace "moc -o" "${qtbase.dev}/bin/moc -o"
+ patchShebangs .
+ '';
+ nativeBuildInputs = [ copper
+ python3
+ ruby
+ qtbase
+ gtk3
+ pkg-config
+ ]
+ ++ stdenv.lib.optionals withQt [ wrapQtAppsHook ];
+ buildInputs = stdenv.lib.optionals withQt [ qtbase ]
+ ++ stdenv.lib.optionals withGtk [ gtk3 ];
+ makeFlags = [
+ "prefix=$(out)"
+ "COPPER=${copper}/bin/copper-elf64"
+ "with-local-libs"
+ "QINC=${qtbase.dev}/include"
+ ]
+ ++ stdenv.lib.optionals withQt [ "UI=qt" ]
+ ++ stdenv.lib.optionals withGtk [ "UI=gtk" ];
+ meta = with stdenv.lib; {
+ description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code";
+ homepage = "https://tibleiz.net/code-browser/";
+ license = licenses.gpl2;
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/codeblocks/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/codeblocks/default.nix
new file mode 100644
index 000000000000..4e2ac8a50f14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/codeblocks/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, autoreconfHook, libtool, pkgconfig, file, zip, wxGTK, gtk2
+, contribPlugins ? false, hunspell, gamin, boost
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ name = "${pname}-${stdenv.lib.optionalString contribPlugins "full-"}${version}";
+ version = "17.12";
+ pname = "codeblocks";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/codeblocks/Sources/${version}/codeblocks_${version}.tar.xz";
+ sha256 = "1q2pph7md1p10i83rir2l4gvy7ym2iw8w6sk5vl995knf851m20k";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig libtool file zip ];
+ buildInputs = [ wxGTK gtk2 ]
+ ++ optionals contribPlugins [ hunspell gamin boost ];
+ enableParallelBuilding = true;
+ patches = [ ./writable-projects.patch ];
+ preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
+ postConfigure = optionalString stdenv.isLinux "substituteInPlace libtool --replace ldconfig ${stdenv.cc.libc.bin}/bin/ldconfig";
+ configureFlags = [ "--enable-pch=no" ]
+ ++ optionals contribPlugins [ "--with-contrib-plugins" "--with-boost-libdir=${boost}/lib" ];
+
+ meta = {
+ maintainers = [ maintainers.linquize ];
+ platforms = platforms.all;
+ description = "The open source, cross platform, free C, C++ and Fortran IDE";
+ longDescription =
+ ''
+ Code::Blocks is a free C, C++ and Fortran IDE built to meet the most demanding needs of its users.
+ It is designed to be very extensible and fully configurable.
+ Finally, an IDE with all the features you need, having a consistent look, feel and operation across platforms.
+ '';
+ homepage = "http://www.codeblocks.org";
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/codeblocks/writable-projects.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/codeblocks/writable-projects.patch
new file mode 100644
index 000000000000..3b6364a52a1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/codeblocks/writable-projects.patch
@@ -0,0 +1,18 @@
+diff --git a/src/plugins/scriptedwizard/wiz.cpp b/src/plugins/scriptedwizard/wiz.cpp
+index 0eb4b27..7d469fe 100644
+--- a/src/plugins/scriptedwizard/wiz.cpp
++++ b/src/plugins/scriptedwizard/wiz.cpp
+@@ -785,6 +785,13 @@ void Wiz::CopyFiles(cbProject* theproject, const wxString& prjdir, const wxStri
+ }
+ }
+ if (do_copy) wxCopyFile(srcfile, dstfile, true);
++ // Noticed! Files in Nix Store are readonly, so make the copied file writable
++ if (do_copy)
++ {
++ struct stat statbuf;
++ if (!::stat(dstfile.mb_str(), &statbuf))
++ ::chmod(dstfile.mb_str(), statbuf.st_mode | 0200);
++ }
+
+ // and add it to the project
+ fname.MakeRelativeTo(prjdir);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/default.nix
new file mode 100644
index 000000000000..af3f087dae26
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/default.nix
@@ -0,0 +1,113 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, lazarus
+, fpc
+, libX11
+
+# GTK2/3
+, pango
+, cairo
+, glib
+, atk
+, gtk2
+, gtk3
+, gdk-pixbuf
+, python3
+
+# Qt5
+, libqt5pas
+, qt5
+
+, widgetset ? "qt5"
+# See https://github.com/Alexey-T/CudaText-lexers
+, additionalLexers ? [ "Nix" ]
+}:
+
+assert builtins.elem widgetset [ "gtk2" "gtk3" "qt5" ];
+
+let
+ deps = lib.mapAttrs
+ (name: spec:
+ fetchFromGitHub {
+ repo = name;
+ inherit (spec) owner rev sha256;
+ }
+ )
+ (builtins.fromJSON (builtins.readFile ./deps.json));
+in
+stdenv.mkDerivation rec {
+ pname = "cudatext";
+ version = "1.115.0";
+
+ src = fetchFromGitHub {
+ owner = "Alexey-T";
+ repo = "CudaText";
+ rev = version;
+ sha256 = "0q7gfpzc97fvyvabjdb9a4d3c2qhm4zf5bqgnsj73vkly80kgww8";
+ };
+
+ patches = [
+ # Don't check for update
+ ./dont-check-update.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace app/proc_globdata.pas \
+ --replace "/usr/share/cudatext" "$out/share/cudatext" \
+ --replace "libpython3.so" "${python3}/lib/libpython3.so"
+ '';
+
+ nativeBuildInputs = [ lazarus fpc ]
+ ++ lib.optional (widgetset == "qt5") qt5.wrapQtAppsHook;
+
+ buildInputs = [ libX11 ]
+ ++ lib.optionals (lib.hasPrefix "gtk" widgetset) [ pango cairo glib atk gdk-pixbuf ]
+ ++ lib.optional (widgetset == "gtk2") gtk2
+ ++ lib.optional (widgetset == "gtk3") gtk3
+ ++ lib.optional (widgetset == "qt5") libqt5pas;
+
+ NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
+
+ buildPhase = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: dep: ''
+ cp -r --no-preserve=mode ${dep} ${name}
+ '') deps) + ''
+ lazbuild --lazarusdir=${lazarus}/share/lazarus --pcp=./lazarus --ws=${widgetset} \
+ bgrabitmap/bgrabitmap/bgrabitmappack.lpk \
+ EncConv/encconv/encconv_package.lpk \
+ ATBinHex-Lazarus/atbinhex/atbinhex_package.lpk \
+ ATFlatControls/atflatcontrols/atflatcontrols_package.lpk \
+ ATSynEdit/atsynedit/atsynedit_package.lpk \
+ ATSynEdit_Cmp/atsynedit_cmp/atsynedit_cmp_package.lpk \
+ EControl/econtrol/econtrol_package.lpk \
+ ATSynEdit_Ex/atsynedit_ex/atsynedit_ex_package.lpk \
+ Python-for-Lazarus/python4lazarus/python4lazarus_package.lpk \
+ Emmet-Pascal/emmet/emmet_package.lpk \
+ app/cudatext.lpi
+ '';
+
+ installPhase = ''
+ install -Dm755 app/cudatext $out/bin/cudatext
+
+ install -dm755 $out/share/cudatext
+ cp -r app/{data,py,settings_default} $out/share/cudatext
+
+ install -Dm644 setup/debfiles/cudatext-512.png -t $out/share/pixmaps
+ install -Dm644 setup/debfiles/cudatext.desktop -t $out/share/applications
+ '' + lib.concatMapStringsSep "\n" (lexer: ''
+ install -Dm644 CudaText-lexers/${lexer}/*.{cuda-lexmap,lcf} $out/share/cudatext/data/lexlib
+ '') additionalLexers;
+
+ meta = with lib; {
+ description = "Cross-platform code editor";
+ longDescription = ''
+ Text/code editor with lite UI. Syntax highlighting for 200+ languages.
+ Config system in JSON files. Multi-carets and multi-selections.
+ Search and replace with RegEx. Extendable by Python plugins and themes.
+ '';
+ homepage = "http://www.uvviewsoft.com/cudatext/";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/deps.json b/infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/deps.json
new file mode 100644
index 000000000000..02418d25842d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/deps.json
@@ -0,0 +1,57 @@
+{
+ "EncConv": {
+ "owner": "Alexey-T",
+ "rev": "2020.06.15",
+ "sha256": "07dpvq3ppfq3b70i1smkf7vwdlzq8qnxs3fk94hi9h1z36bz2rw3"
+ },
+ "ATBinHex-Lazarus": {
+ "owner": "Alexey-T",
+ "rev": "2020.09.05",
+ "sha256": "022yx5vic4hnc9lz53wvr4h7hf0h71801dzlilj55x5mf8p59072"
+ },
+ "ATFlatControls": {
+ "owner": "Alexey-T",
+ "rev": "2020.09.20",
+ "sha256": "09svn8yyqp6znvfpcxrsybkclh828h5rvah7nhbhk7nrfzj8i63x"
+ },
+ "ATSynEdit": {
+ "owner": "Alexey-T",
+ "rev": "2020.10.12",
+ "sha256": "07vznwwfa3c1jr1cd32yppw0mmmm1ja9bmsxhxlcbnc2nb30n9zr"
+ },
+ "ATSynEdit_Cmp": {
+ "owner": "Alexey-T",
+ "rev": "2020.10.11",
+ "sha256": "11vx685i85izp7wzb34dalcwlkmkbz1vzva5j9cf2yz1jff1v4qw"
+ },
+ "EControl": {
+ "owner": "Alexey-T",
+ "rev": "2020.10.04",
+ "sha256": "0ypbaca3y5biw2207yh3x5p28gm8g51qf7glm5622w3cgbrf9mdq"
+ },
+ "ATSynEdit_Ex": {
+ "owner": "Alexey-T",
+ "rev": "2020.10.04",
+ "sha256": "0z66cm9pgdi7whqaim6hva4aa08zrr1881n1fal7lnz6wlla824k"
+ },
+ "Python-for-Lazarus": {
+ "owner": "Alexey-T",
+ "rev": "2020.07.31",
+ "sha256": "0qbs51h6gw8qd3h06kwy1j7db35shbg7r2rayrhvvw0vzr9n330j"
+ },
+ "Emmet-Pascal": {
+ "owner": "Alexey-T",
+ "rev": "2020.09.05",
+ "sha256": "0qfiirxnk5g3whx8y8hp54ch3h6gkkd01yf79m95bwar5qvdfybg"
+ },
+ "CudaText-lexers": {
+ "owner": "Alexey-T",
+ "rev": "2020.08.10",
+ "sha256": "1gzs2psyfhb9si1qyacxzfjb3dz2v255hv7y4jlkbxdxv0kckqr6"
+ },
+ "bgrabitmap": {
+ "owner": "bgrabitmap",
+ "rev": "v11.2.4",
+ "sha256": "1zk88crfn07md16wg6af4i8nlx4ikkhxq9gfk49jirwimgwbf1md"
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/dont-check-update.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/dont-check-update.patch
new file mode 100644
index 000000000000..5c896bc046c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/cudatext/dont-check-update.patch
@@ -0,0 +1,12 @@
+diff --git i/app/formmain.pas w/app/formmain.pas
+index f6f37febb..cf993d75e 100644
+--- i/app/formmain.pas
++++ w/app/formmain.pas
+@@ -2156,6 +2156,7 @@ begin
+ false
+ {$endif};
+ *)
++ mnuHelpCheckUpd.Enabled:=false;
+
+ with AppPanels[cPaneSide] do
+ begin
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/deadpixi-sam/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/deadpixi-sam/default.nix
new file mode 100644
index 000000000000..65ec43939127
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/deadpixi-sam/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, freetype, libX11, libXi, libXt, libXft }:
+
+stdenv.mkDerivation rec {
+ version = "2017-10-27";
+ pname = "deadpixi-sam-unstable";
+
+ src = fetchFromGitHub {
+ owner = "deadpixi";
+ repo = "sam";
+ rev = "51693780fb1457913389db6634163998f9b775b8";
+ sha256 = "0nfkj93j4bgli4ixbk041nwi14rabk04kqg8krq4mj0044m1qywr";
+ };
+
+ postPatch = ''
+ substituteInPlace config.mk.def \
+ --replace "/usr/include/freetype2" "${freetype.dev}/include/freetype2" \
+ --replace "CC=gcc" ""
+ '';
+
+ CFLAGS = "-D_DARWIN_C_SOURCE";
+ makeFlags = [ "DESTDIR=$(out)" ];
+ buildInputs = [ libX11 libXi libXt libXft ];
+
+ postInstall = ''
+ mkdir -p $out/share/applications
+ mv deadpixi-sam.desktop $out/share/applications
+ '';
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Updated version of the sam text editor";
+ license = with licenses; lpl-102;
+ maintainers = with maintainers; [ ramkromberg ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/dhex/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/dhex/default.nix
new file mode 100644
index 000000000000..0a635b7ba82e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/dhex/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "dhex";
+ version = "0.69";
+
+ src = fetchurl {
+ url = "http://www.dettus.net/dhex/dhex_${version}.tar.gz";
+ sha256 = "06y4lrp29f2fh303ijk1xhspa1d4x4dm6hnyw3dd8szi3k6hnwsj";
+ };
+
+ buildInputs = [ ncurses ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/man/man1
+ mkdir -p $out/share/man/man5
+
+ cp dhex $out/bin
+ cp dhex.1 $out/share/man/man1
+ cp dhexrc.5 $out/share/man/man5
+ cp dhex_markers.5 $out/share/man/man5
+ cp dhex_searchlog.5 $out/share/man/man5
+ '';
+
+ meta = {
+ description = "A themeable hex editor with diff mode";
+ homepage = "http://www.dettus.net/dhex/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [qknight];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/dit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/dit/default.nix
new file mode 100644
index 000000000000..e89267d04c50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/dit/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchurl, stdenv, libiconv, ncurses, lua }:
+
+stdenv.mkDerivation rec {
+ pname = "dit";
+ version = "0.7";
+
+ src = fetchurl {
+ url = "https://hisham.hm/dit/releases/${version}/${pname}-${version}.tar.gz";
+ sha256 = "0cmbyzqfz2qa83cg8lpjifn34wmx34c5innw485zh4vk3c0k8wlj";
+ };
+
+ buildInputs = [ ncurses lua ]
+ ++ lib.optional stdenv.isDarwin libiconv;
+
+ # fix paths
+ prePatch = ''
+ patchShebangs tools/GenHeaders
+ substituteInPlace Prototypes.h --replace 'tail' "$(type -P tail)"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A console text editor for Unix that you already know how to use";
+ homepage = "https://hisham.hm/dit/";
+ license = licenses.gpl2;
+ platforms = with platforms; linux;
+ maintainers = with maintainers; [ davidak ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix
new file mode 100644
index 000000000000..0282dc95f72e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -0,0 +1,64 @@
+{ stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender
+, zlib, jdk, glib, gtk, libXtst, gsettings-desktop-schemas, webkitgtk
+, makeWrapper, perl, ... }:
+
+{ name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description }:
+
+stdenv.mkDerivation rec {
+ inherit name src;
+
+ desktopItem = makeDesktopItem {
+ name = "Eclipse";
+ exec = "eclipse";
+ icon = "eclipse";
+ comment = "Integrated Development Environment";
+ desktopName = "Eclipse IDE";
+ genericName = "Integrated Development Environment";
+ categories = "Development;";
+ };
+
+ buildInputs = [
+ fontconfig freetype glib gsettings-desktop-schemas gtk jdk libX11
+ libXrender libXtst makeWrapper zlib
+ ] ++ stdenv.lib.optional (webkitgtk != null) webkitgtk;
+
+ buildCommand = ''
+ # Unpack tarball.
+ mkdir -p $out
+ tar xfvz $src -C $out
+
+ # Patch binaries.
+ interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
+ libCairo=$out/eclipse/libcairo-swt.so
+ patchelf --set-interpreter $interpreter $out/eclipse/eclipse
+ [ -f $libCairo ] && patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ freetype fontconfig libX11 libXrender zlib ]} $libCairo
+
+ # Create wrapper script. Pass -configuration to store
+ # settings in ~/.eclipse/org.eclipse.platform_<version> rather
+ # than ~/.eclipse/org.eclipse.platform_<version>_<number>.
+ productId=$(sed 's/id=//; t; d' $out/eclipse/.eclipseproduct)
+ productVersion=$(sed 's/version=//; t; d' $out/eclipse/.eclipseproduct)
+
+ makeWrapper $out/eclipse/eclipse $out/bin/eclipse \
+ --prefix PATH : ${jdk}/bin \
+ --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk libXtst ] ++ stdenv.lib.optional (webkitgtk != null) webkitgtk)} \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+ --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration"
+
+ # Create desktop item.
+ mkdir -p $out/share/applications
+ cp ${desktopItem}/share/applications/* $out/share/applications
+ mkdir -p $out/share/pixmaps
+ ln -s $out/eclipse/icon.xpm $out/share/pixmaps/eclipse.xpm
+
+ # ensure eclipse.ini does not try to use a justj jvm, as those aren't compatible with nix
+ ${perl}/bin/perl -i -p0e 's|-vm\nplugins/org.eclipse.justj.*/jre/bin\n||' $out/eclipse/eclipse.ini
+ ''; # */
+
+ meta = {
+ homepage = "http://www.eclipse.org/";
+ inherit description;
+ platforms = [ "x86_64-linux" ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/default.nix
new file mode 100644
index 000000000000..0afbecb84cf3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/default.nix
@@ -0,0 +1,159 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper
+, freetype, fontconfig, libX11, libXrender, zlib
+, glib, gtk3, gtk2, libXtst, jdk, jdk8, gsettings-desktop-schemas
+, webkitgtk ? null # for internal web browser
+, buildEnv, runCommand
+, callPackage
+}:
+
+assert stdenv ? glibc;
+
+# https://download.eclipse.org/eclipse/downloads/ is the main place to
+# find the downloads needed for new versions
+#
+# to test:
+# $ for e in cpp modeling platform sdk java committers; do nix build -f default.nix pkgs.eclipses.eclipse-${e} -o eclipse-${e}; done
+
+let
+ platform_major = "4";
+ platform_minor = "17";
+ year = "2020";
+ month = "09";
+ timestamp = "${year}${month}021800";
+ gtk = gtk3;
+in rec {
+
+ buildEclipse = callPackage ./build-eclipse.nix {
+ inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib
+ jdk glib gtk libXtst gsettings-desktop-schemas webkitgtk
+ makeWrapper;
+ };
+
+ ### Eclipse CPP
+
+ eclipse-cpp = buildEclipse {
+ name = "eclipse-cpp-${platform_major}.${platform_minor}";
+ description = "Eclipse IDE for C/C++ Developers";
+ src =
+ fetchurl {
+ url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+ sha512 = "270pk7vvfvanig49xkrail01nf967zlp7xf8rvyh2ya7s0y0akj2bi0y4yms4gwijmingm8y2ir9qynd360mzwl8mnc1c31ykf9l3lh";
+ };
+ };
+
+ ### Eclipse Modeling
+
+ eclipse-modeling = buildEclipse {
+ name = "eclipse-modeling-${platform_major}.${platform_minor}";
+ description = "Eclipse Modeling Tools";
+ src =
+ fetchurl {
+ url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+ sha512 = "26bb6cbnw94ml585aqrs8wpfksd2883njlqi48klpbn5n1bwpnpwvymx9q46i49piiyp0r1pa8ghdcgiwcakvri5nzldlh522fs7h5y";
+ };
+ };
+
+ ### Eclipse Platform
+
+ eclipse-platform = buildEclipse {
+ name = "eclipse-platform-${platform_major}.${platform_minor}";
+ description = "Eclipse Platform ${year}-${month}";
+ src =
+ fetchurl {
+ url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
+ sha512 = "2i3gjxmq1i4p70q2l5749b96z1r4nv15dii17fywbyby3kbggwhfvaydizy7z5p6kn0y91dw13p7gmg3qpr9d46mb8f8h3sxks7fyl9";
+ };
+ };
+
+ ### Eclipse Scala SDK
+
+ eclipse-scala-sdk =
+ buildEclipse.override { jdk = jdk8; gtk = gtk2; } {
+ name = "eclipse-scala-sdk-4.7.0";
+ description = "Eclipse IDE for Scala Developers";
+ src =
+ fetchurl {
+ url = "https://downloads.typesafe.com/scalaide-pack/4.7.0-vfinal-oxygen-212-20170929/scala-SDK-4.7.0-vfinal-2.12-linux.gtk.x86_64.tar.gz";
+ sha256 = "1n5w2a7mh9ajv6fxcas1gpgwb04pdxbr9v5dzr67gsz5bhahq4ya";
+ };
+ };
+
+ ### Eclipse SDK
+
+ eclipse-sdk = buildEclipse {
+ name = "eclipse-sdk-${platform_major}.${platform_minor}";
+ description = "Eclipse ${year}-${month} Classic";
+ src =
+ fetchurl {
+ url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
+ sha512 = "1c29r7qwjrjv86q2c4bhlrmmh50690lrq164jzrlisys9vnxb6wii0gwb34p9m1xqr3lgba1zhffb4jx18prrk0x8xbd78mp0lvya3k";
+ };
+ };
+
+ ### Eclipse Java
+
+ eclipse-java = buildEclipse {
+ name = "eclipse-java-${platform_major}.${platform_minor}";
+ description = "Eclipse IDE for Java Developers";
+ src =
+ fetchurl {
+ url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+ sha512 = "3rkpngrk6423i2pcf241wbr9jfzwxm2qwm57ipjpjw6705w1rapcws4bibqjznlf34lqvnynkw2wihy51j1ryw25z9fc2jsvyj67c1q";
+ };
+ };
+
+ ### Eclipse Committers
+
+ eclipse-committers = buildEclipse {
+ name = "eclipse-committers-${platform_major}.${platform_minor}";
+ description = "Eclipse IDE for Eclipse Committers and Eclipse Platform Plugin Developers";
+ src =
+ fetchurl {
+ url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+ sha512 = "3gnqamrn3x2gr4dfcgl7ppxpyi1q422l0sm7sh0vmipbs9l1c58plm3p14j9rjsyjlly2xjci6dg7sb9mj6259vc640wafnzcs89ii1";
+ };
+ };
+
+ ### Environments
+
+ # Function that assembles a complete Eclipse environment from an
+ # Eclipse package and list of Eclipse plugins.
+ eclipseWithPlugins = { eclipse, plugins ? [], jvmArgs ? [] }:
+ let
+ # Gather up the desired plugins.
+ pluginEnv = buildEnv {
+ name = "eclipse-plugins";
+ paths =
+ with stdenv.lib;
+ filter (x: x ? isEclipsePlugin) (closePropagation plugins);
+ };
+
+ # Prepare the JVM arguments to add to the ini file. We here also
+ # add the property indicating the plugin directory.
+ dropinPropName = "org.eclipse.equinox.p2.reconciler.dropins.directory";
+ dropinProp = "-D${dropinPropName}=${pluginEnv}/eclipse/dropins";
+ jvmArgsText = stdenv.lib.concatStringsSep "\n" (jvmArgs ++ [dropinProp]);
+
+ # Base the derivation name on the name of the underlying
+ # Eclipse.
+ name = (stdenv.lib.meta.appendToName "with-plugins" eclipse).name;
+ in
+ runCommand name { buildInputs = [ makeWrapper ]; } ''
+ mkdir -p $out/bin $out/etc
+
+ # Prepare an eclipse.ini with the plugin directory.
+ cat ${eclipse}/eclipse/eclipse.ini - > $out/etc/eclipse.ini <<EOF
+ ${jvmArgsText}
+ EOF
+
+ makeWrapper ${eclipse}/bin/eclipse $out/bin/eclipse \
+ --add-flags "--launcher.ini $out/etc/eclipse.ini"
+
+ ln -s ${eclipse}/share $out/
+ '';
+
+ ### Plugins
+
+ plugins = callPackage ./plugins.nix { };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
new file mode 100644
index 000000000000..43ab2a796ebd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
@@ -0,0 +1,662 @@
+{ stdenv, fetchurl, fetchzip, unzip }:
+
+rec {
+
+ # A primitive builder of Eclipse plugins. This function is intended
+ # to be used when building more advanced builders.
+ buildEclipsePluginBase = { name
+ , buildInputs ? []
+ , passthru ? {}
+ , ... } @ attrs:
+ stdenv.mkDerivation (attrs // {
+ name = "eclipse-plugin-" + name;
+
+ buildInputs = buildInputs ++ [ unzip ];
+
+ passthru = {
+ isEclipsePlugin = true;
+ } // passthru;
+ });
+
+ # Helper for the common case where we have separate feature and
+ # plugin JARs.
+ buildEclipsePlugin =
+ { name, srcFeature, srcPlugin ? null, srcPlugins ? [], ... } @ attrs:
+ assert srcPlugin == null -> srcPlugins != [];
+ assert srcPlugin != null -> srcPlugins == [];
+
+ let
+
+ pSrcs = if (srcPlugin != null) then [ srcPlugin ] else srcPlugins;
+
+ in
+
+ buildEclipsePluginBase (attrs // {
+ srcs = [ srcFeature ] ++ pSrcs;
+
+ buildCommand = ''
+ dropinDir="$out/eclipse/dropins/${name}"
+
+ mkdir -p $dropinDir/features
+ unzip ${srcFeature} -d $dropinDir/features/
+
+ mkdir -p $dropinDir/plugins
+ for plugin in ${toString pSrcs}; do
+ cp -v $plugin $dropinDir/plugins/$(stripHash $plugin)
+ done
+ '';
+ });
+
+ # Helper for the case where the build directory has the layout of an
+ # Eclipse update site, that is, it contains the directories
+ # `features` and `plugins`. All features and plugins inside these
+ # directories will be installed.
+ buildEclipseUpdateSite = { name, ... } @ attrs:
+ buildEclipsePluginBase (attrs // {
+ dontBuild = true;
+ doCheck = false;
+
+ installPhase = ''
+ dropinDir="$out/eclipse/dropins/${name}"
+
+ # Install features.
+ cd features
+ for feature in *.jar; do
+ featureName=''${feature%.jar}
+ mkdir -p $dropinDir/features/$featureName
+ unzip $feature -d $dropinDir/features/$featureName
+ done
+ cd ..
+
+ # Install plugins.
+ mkdir -p $dropinDir/plugins
+
+ # A bundle should be unpacked if the manifest matches this
+ # pattern.
+ unpackPat="Eclipse-BundleShape:\\s*dir"
+
+ cd plugins
+ for plugin in *.jar ; do
+ pluginName=''${plugin%.jar}
+ manifest=$(unzip -p $plugin META-INF/MANIFEST.MF)
+
+ if [[ $manifest =~ $unpackPat ]] ; then
+ mkdir $dropinDir/plugins/$pluginName
+ unzip $plugin -d $dropinDir/plugins/$pluginName
+ else
+ cp -v $plugin $dropinDir/plugins/
+ fi
+ done
+ cd ..
+ '';
+ });
+
+ acejump = buildEclipsePlugin rec {
+ name = "acejump-${version}";
+ version = "1.0.0.201610261941";
+
+ srcFeature = fetchurl {
+ url = "https://tobiasmelcher.github.io/acejumpeclipse/features/acejump.feature_${version}.jar";
+ sha256 = "1szswjxp9g70ibfbv3p8dlq1bngq7nc22kp657z9i9kp8309md2d";
+ };
+
+ srcPlugin = fetchurl {
+ url = "https://tobiasmelcher.github.io/acejumpeclipse/plugins/acejump_${version}.jar";
+ sha256 = "1cn64xj2bm69vnn9db2xxh6kq148v83w5nx3183mrqb59ym3v9kf";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/tobiasmelcher/EclipseAceJump";
+ description = "Provides fast jumps to text based on initial letter";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ ansi-econsole = buildEclipsePlugin rec {
+ name = "ansi-econsole-${version}";
+ version = "1.3.5.201612301822";
+
+ srcFeature = fetchurl {
+ url = "https://mihnita.github.io/ansi-econsole/install/features/net.mihai-nita.ansicon_${version}.jar";
+ sha256 = "086ylxpsrlpbvwv5mw7v6b44j63cwzgi8apg2mq058ydr5ak6hxs";
+ };
+
+ srcPlugin = fetchurl {
+ url = "https://mihnita.github.io/ansi-econsole/install/plugins/net.mihai-nita.ansicon.plugin_${version}.jar";
+ sha256 = "1j42l0xxzs89shqkyn91lb0gia10mifzy0i73c3n7gj7sv2ddbjq";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://mihai-nita.net/java/#ePluginAEC";
+ description = "Adds support for ANSI escape sequences in the Eclipse console";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ antlr-runtime_4_5 = buildEclipsePluginBase rec {
+ name = "antlr-runtime-4.5.3";
+
+ src = fetchurl {
+ url = "https://www.antlr.org/download/${name}.jar";
+ sha256 = "0lm78i2annlczlc2cg5xvby0g1dyl0sh1y5xc2pymjlmr67a1g4k";
+ };
+
+ buildCommand = ''
+ dropinDir="$out/eclipse/dropins/"
+ mkdir -p $dropinDir
+ cp -v $src $dropinDir/${name}.jar
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A powerful parser generator for processing structured text or binary files";
+ homepage = "https://www.antlr.org/";
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ antlr-runtime_4_7 = buildEclipsePluginBase rec {
+ name = "antlr-runtime-4.7.1";
+
+ src = fetchurl {
+ url = "https://www.antlr.org/download/${name}.jar";
+ sha256 = "07f91mjclacrvkl8a307w2abq5wcqp0gcsnh0jg90ddfpqcnsla3";
+ };
+
+ buildCommand = ''
+ dropinDir="$out/eclipse/dropins/"
+ mkdir -p $dropinDir
+ cp -v $src $dropinDir/${name}.jar
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A powerful parser generator for processing structured text or binary files";
+ homepage = "https://www.antlr.org/";
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ anyedittools = buildEclipsePlugin rec {
+ name = "anyedit-${version}";
+ version = "2.7.1.201709201439";
+
+ srcFeature = fetchurl {
+ url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar";
+ sha256 = "1wqzl7wq85m9gil8rnvly45ps0a2m0svw613pg6djs5i7amhnayh";
+ };
+
+ srcPlugin = fetchurl {
+ url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.7.1/de.loskutov.anyedit.AnyEditTools_${version}.jar";
+ sha256 = "03iyb6j2srq74iigmg7dk098c2svyv0ygdfql5jqr44a32n07k8q";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "http://andrei.gmxhome.de/anyedit/";
+ description = "Adds new tools to the context menu of text-based editors";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ autodetect-encoding = buildEclipsePlugin rec {
+ name = "autodetect-encoding-${version}";
+ version = "1.8.5.201801191359";
+
+ srcFeature = fetchurl {
+ url = "https://github.com/cypher256/eclipse-encoding-plugin/raw/master/eclipse.encoding.updatesite.snapshot/features/eclipse.encoding.plugin.feature_${version}.jar";
+ sha256 = "1m8ypsc1dwz0y6yhjgxsdi9813d38jllv7javgwvcd30g042a3kx";
+ };
+
+ srcPlugin = fetchurl {
+ url = "https://github.com/cypher256/eclipse-encoding-plugin/raw/master/eclipse.encoding.updatesite.snapshot/plugins/mergedoc.encoding_${version}.jar";
+ sha256 = "1n2rzybfcwp3ss2qi0fhd8vm38vdwav8j837lqiqlfcnvzwsk86m";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/cypher256/eclipse-encoding-plugin";
+ description = "Show file encoding and line ending for the active editor in the eclipse status bar";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ bytecode-outline = buildEclipsePlugin rec {
+ name = "bytecode-outline-${version}";
+ version = "2.5.0.201711011753-5a57fdf";
+
+ srcFeature = fetchurl {
+ url = "http://andrei.gmxhome.de/eclipse/features/de.loskutov.BytecodeOutline.feature_${version}.jar";
+ sha256 = "0yciqhcq0n5i326mwy57r4ywmkz2c2jky7r4pcmznmhvks3z65ps";
+ };
+
+ srcPlugin = fetchurl {
+ url = "http://dl.bintray.com/iloveeclipse/plugins/de.loskutov.BytecodeOutline_${version}.jar";
+ sha256 = "1vmsqv32jfl7anvdkw0vir342miv5sr9df7vd1w44lf1yf97vxlw";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "http://andrei.gmxhome.de/bytecode/";
+ description = "Shows disassembled bytecode of current java editor or class file";
+ license = licenses.bsd2;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ cdt = buildEclipseUpdateSite rec {
+ name = "cdt-${version}";
+ # find current version at https://www.eclipse.org/cdt/downloads.php
+ version = "10.0.1";
+
+ src = fetchzip {
+ stripRoot = false;
+ url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/10.0/${name}/${name}.zip";
+ sha256 = "1smi1yc4l627bb01zp0pcilm6d0hysxk440hy4n55gz3jxilygx5";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://eclipse.org/cdt/";
+ description = "C/C++ development tooling";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.bjornfor ];
+ };
+ };
+
+ checkstyle = buildEclipseUpdateSite rec {
+ name = "checkstyle-${version}";
+ version = "8.7.0.201801131309";
+
+ src = fetchzip {
+ stripRoot = false;
+ url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/8.7.0/net.sf.eclipsecs-updatesite_${version}.zip";
+ sha256 = "07fymk705x4mwq7vh2i6frsf67jql4bzrkdzhb4n74zb0g1dib60";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://eclipse-cs.sourceforge.net/";
+ description = "Checkstyle integration into the Eclipse IDE";
+ license = licenses.lgpl21;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+
+ };
+
+ color-theme = buildEclipsePlugin rec {
+ name = "color-theme-${version}";
+ version = "1.0.0.201410260308";
+
+ srcFeature = fetchurl {
+ url = "https://eclipse-color-theme.github.io/update/features/com.github.eclipsecolortheme.feature_${version}.jar";
+ sha256 = "128b9b1cib5ff0w1114ns5mrbrhj2kcm358l4dpnma1s8gklm8g2";
+ };
+
+ srcPlugin = fetchurl {
+ url = "https://eclipse-color-theme.github.io/update/plugins/com.github.eclipsecolortheme_${version}.jar";
+ sha256 = "0wz61909bhqwzpqwll27ia0cn3anyp81haqx3rj1iq42cbl42h0y";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "http://eclipsecolorthemes.org/";
+ description = "Plugin to switch color themes conveniently and without side effects";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ cup = buildEclipsePlugin rec {
+ name = "cup-${version}";
+ version = "1.1.0.201604221613";
+ version_ = "1.0.0.201604221613";
+
+ srcFeature = fetchurl {
+ url = "http://www2.in.tum.de/projects/cup/eclipse/features/CupEclipsePluginFeature_${version}.jar";
+ sha256 = "13nnsf0cqg02z3af6xg45rhcgiffsibxbx6h1zahjv7igvqgkyna";
+ };
+
+ srcPlugins = [
+ (fetchurl {
+ url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/CupReferencedLibraries_${version_}.jar";
+ sha256 = "0kif8kivrysprva1pxzajm88gi967qf7idhb6ga2xpvsdcris91j";
+ })
+
+ (fetchurl {
+ url = "http://www2.in.tum.de/projects/cup/eclipse/plugins/de.tum.in.www2.CupPlugin_${version}.jar";
+ sha256 = "022phbrsny3gb8npb6sxyqqxacx138q5bd7dq3gqxh3kprx5chbl";
+ })
+ ];
+
+ propagatedBuildInputs = [ zest ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://www2.cs.tum.edu/projects/cup/eclipse.php";
+ description = "IDE for developing CUP based parsers";
+ platforms = platforms.all;
+ maintainers = [ maintainers.romildo ];
+ };
+ };
+
+ drools = buildEclipseUpdateSite rec {
+ name = "drools-${version}";
+ version = "7.17.0.Final";
+
+ src = fetchzip {
+ url = "https://download.jboss.org/drools/release/${version}/droolsjbpm-tools-distribution-${version}.zip";
+ sha512 = "2qzc1iszqfrfnw8xip78n3kp6hlwrvrr708vlmdk7nv525xhs0ssjaxriqdhcr0s6jripmmazxivv3763rnk2bfkh31hmbnckpx4r3m";
+ extraPostFetch = ''
+ # update site is a couple levels deep, alongside some other irrelevant stuff
+ cd $out;
+ find . -type f -not -path ./binaries/org.drools.updatesite/\* -exec rm {} \;
+ rmdir sources;
+ mv binaries/org.drools.updatesite/* .;
+ rmdir binaries/org.drools.updatesite binaries;
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.drools.org/";
+ description = "Drools is a Business Rules Management System (BRMS) solution";
+ license = licenses.asl20;
+ };
+ };
+
+ eclemma = buildEclipseUpdateSite rec {
+ name = "eclemma-${version}";
+ version = "2.3.2.201409141915";
+
+ src = fetchzip {
+ stripRoot = false;
+ url = "mirror://sourceforge/project/eclemma/01_EclEmma_Releases/2.3.2/eclemma-2.3.2.zip";
+ sha256 = "0w1kwcjh45p7msv5vpc8i6dsqwrnfmjama6vavpnxlji56jd3c43";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.eclemma.org/";
+ description = "EclEmma is a free Java code coverage tool for Eclipse";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ findbugs = buildEclipsePlugin rec {
+ name = "findbugs-${version}";
+ version = "3.0.1.20150306-5afe4d1";
+
+ srcFeature = fetchurl {
+ url = "http://findbugs.cs.umd.edu/eclipse/features/edu.umd.cs.findbugs.plugin.eclipse_${version}.jar";
+ sha256 = "1m9fav2xlb9wrx2d00lpnh2sy0w5yzawynxm6xhhbfdzd0vpfr9v";
+ };
+
+ srcPlugin = fetchurl {
+ url = "http://findbugs.cs.umd.edu/eclipse/plugins/edu.umd.cs.findbugs.plugin.eclipse_${version}.jar";
+ sha256 = "10p3mrbp9wi6jhlmmc23qv7frh605a23pqsc7w96569bsfb5wa8q";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "http://findbugs.sourceforge.net/";
+ description = "Plugin that uses static analysis to look for bugs in Java code";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ gnuarmeclipse = buildEclipseUpdateSite rec {
+ name = "gnuarmeclipse-${version}";
+ version = "3.1.1-201606210758";
+
+ src = fetchzip {
+ stripRoot = false;
+ url = "https://github.com/gnuarmeclipse/plug-ins/releases/download/v${version}/ilg.gnuarmeclipse.repository-${version}.zip";
+ sha256 = "1g77jlhfa3csaxxps1z5lasrd9l2p5ajnddnq9ra5syw8ggkdc2h";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "http://gnuarmeclipse.livius.net/";
+ description = "GNU ARM Eclipse Plug-ins";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.bjornfor ];
+ };
+ };
+
+ jsonedit = buildEclipsePlugin rec {
+ name = "jsonedit-${version}";
+ version = "1.1.1";
+
+ srcFeature = fetchurl {
+ url = "https://boothen.github.io/Json-Eclipse-Plugin/features/jsonedit-feature_${version}.jar";
+ sha256 = "0zkg8d8x3l5jpfxi0mz9dn62wmy4fjgpwdikj280fvsklmcw5b86";
+ };
+
+ srcPlugins =
+ let
+ fetch = { n, h }:
+ fetchurl {
+ url = "https://boothen.github.io/Json-Eclipse-Plugin/plugins/jsonedit-${n}_${version}.jar";
+ sha256 = h;
+ };
+ in
+ map fetch [
+ { n = "core"; h = "0svs0aswnhl26cqw6bmw30cisx4cr50kc5njg272sy5c1dqjm1zq"; }
+ { n = "editor"; h = "1q62dinrbb18aywbvii4mlr7rxa20rdsxxd6grix9y8h9776q4l5"; }
+ { n = "folding"; h = "1qh4ijfb1gl9xza5ydi87v1kyima3a9sh7lncwdy1way3pdhln1y"; }
+ { n = "model"; h = "1pr6k2pdfdwx8jqs7gx7wzn3gxsql3sk6lnjha8m15lv4al6d4kj"; }
+ { n = "outline"; h = "1jgr2g16j3id8v367jbgd6kx6g2w636fbzmd8jvkvkh7y1jgjqxm"; }
+ { n = "preferences"; h = "027fhaqa5xbil6dmhvkbpha3pgw6dpmc2im3nlliyds57mdmdb1h"; }
+ { n = "text"; h = "0clywylyidrxlqs0n816nhgjmk1c3xl7sn904ki4q050amfy0wb2"; }
+ ];
+
+ propagatedBuildInputs = [ antlr-runtime_4_7 ];
+
+ meta = with stdenv.lib; {
+ description = "Adds support for JSON files to Eclipse";
+ homepage = "https://github.com/boothen/Json-Eclipse-Plugin";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ jdt = buildEclipseUpdateSite rec {
+ name = "jdt-${version}";
+ version = "4.17";
+
+ src = fetchzip {
+ stripRoot = false;
+ url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202009021800/org.eclipse.jdt-${version}.zip";
+ sha256 = "16vb88ywqfh0rix5krp2g39yhisv4i797g9c03aayzy5lynqm3ky";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.eclipse.org/jdt/";
+ description = "Eclipse Java development tools";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ jdt-codemining = buildEclipsePlugin rec {
+ name = "jdt-codemining-${version}";
+ version = "1.0.0.201806221018";
+
+ srcFeature = fetchurl {
+ url = "http://oss.opensagres.fr/jdt-codemining/snapshot/features/jdt-codemining-feature_${version}.jar";
+ sha256 = "1vy30rsb9xifn4r1r2n84d48g6riadzli1xvhfs1mf5pkm5ljwl6";
+ };
+
+ srcPlugin = fetchurl {
+ url = "http://oss.opensagres.fr/jdt-codemining/snapshot/plugins/org.eclipse.jdt.codemining_${version}.jar";
+ sha256 = "0qdzlqcjcm2i4mwhmcdml0am83z1dayrcmf37ji7vmw6iwdk1xmp";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/angelozerr/jdt-codemining";
+ description = "Provides JDT Java CodeMining";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ rustdt = buildEclipseUpdateSite rec {
+ name = "rustdt-${version}";
+ version = "0.6.2";
+ owner = "RustDT";
+ repo = "rustdt.github.io";
+ rev = "5cbe753008c40555c493092a6f4ae1ffbff0b3ce";
+
+ src = fetchzip {
+ stripRoot = false;
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.zip";
+ sha256 = "1xfj4j27d1h4bdf2v7f78zi8lz4zkkj7s9kskmsqx5jcs2d459yp";
+ extraPostFetch =
+ ''
+ mv "$out/${repo}-${rev}/releases/local-repo/"* "$out/"
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/RustDT";
+ description = "Rust development tooling";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ };
+ };
+
+ scala = buildEclipseUpdateSite rec {
+ name = "scala-${version}";
+ version = "4.4.1.201605041056";
+
+ src = fetchzip {
+ url = "http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/base-20160504-1321.zip";
+ sha256 = "13xgx2rwlll0l4bs0g6gyvrx5gcc0125vzn501fdj0wv2fqxn5lw";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "http://scala-ide.org/";
+ description = "The Scala IDE for Eclipse";
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ spotbugs = buildEclipseUpdateSite rec {
+ name = "spotbugs-${version}";
+ version = "3.1.11";
+
+ src = fetchzip {
+ stripRoot = false;
+ url = "https://github.com/spotbugs/spotbugs/releases/download/${version}/eclipsePlugin.zip";
+ sha256 = "0aanqwx3gy1arpbkqd846381hiy6272lzwhfjl94x8jhfykpqqbj";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://spotbugs.github.io/";
+ description = "Plugin that uses static analysis to look for bugs in Java code";
+ license = licenses.lgpl21;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ testng = buildEclipsePlugin rec {
+ name = "testng-${version}";
+ version = "6.9.13.201609291640";
+
+ srcFeature = fetchurl {
+ url = "http://beust.com/eclipse-old/eclipse_${version}/features/org.testng.eclipse_${version}.jar";
+ sha256 = "02wzcysl7ga3wnvnwp6asl8d77wgc547c5qqawixw94lw6fn1a15";
+ };
+
+ srcPlugin = fetchurl {
+ url = "http://beust.com/eclipse-old/eclipse_${version}/plugins/org.testng.eclipse_${version}.jar";
+ sha256 = "1j4zw6392q3q6z3pcy803k3g0p220gk1x19fs99p0rmmdz83lc8d";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://testng.org/doc/";
+ description = "Eclipse plugin for the TestNG testing framework";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ vrapper = buildEclipseUpdateSite rec {
+ name = "vrapper-${version}";
+ version = "0.72.0";
+ owner = "vrapper";
+ repo = "vrapper";
+ date = "20170311";
+
+ src = fetchzip {
+ stripRoot = false;
+ url = "https://github.com/${owner}/${repo}/releases/download/${version}/vrapper_${version}_${date}.zip";
+ sha256 = "0nyirf6km97q211cxfy01kidxac20m8ba3kk9xj73ykrhsk3cxjp";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/vrapper/vrapper";
+ description = "A wrapper to provide a Vim-like input scheme for moving around and editing text";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.stumoss ];
+ };
+ };
+
+ yedit = buildEclipsePlugin rec {
+ name = "yedit-${version}";
+ version = "1.0.20.201509041456";
+
+ srcFeature = fetchurl {
+ url = "http://dadacoalition.org/yedit/features/org.dadacoalition.yedit.feature_${version}-RELEASE.jar";
+ sha256 = "0rps73y19gwlrdr8jjrg3rhcaaagghnmri8297inxc5q2dvg0mlk";
+ };
+
+ srcPlugin = fetchurl {
+ url = "http://dadacoalition.org/yedit/plugins/org.dadacoalition.yedit_${version}-RELEASE.jar";
+ sha256 = "1wpyw4z28ka60z36f8m71kz1giajcm26wb9bpv18sjiqwdgx9v0z";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/oyse/yedit";
+ description = "A YAML editor plugin for Eclipse";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.rycee ];
+ };
+ };
+
+ zest = buildEclipseUpdateSite rec {
+ name = "zest-${version}";
+ version = "3.9.101";
+
+ src = fetchurl {
+ url = "http://archive.eclipse.org/tools/gef/downloads/drops/${version}/R201408150207/GEF-${name}.zip";
+ sha256 = "01scn7cmcrjcp387spjm8ifgwrwwi77ypildandbisfvhj3qqs7m";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.eclipse.org/gef/zest/";
+ description = "The Eclipse Visualization Toolkit";
+ platforms = platforms.all;
+ maintainers = [ maintainers.romildo ];
+ };
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/ed/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/ed/default.nix
new file mode 100644
index 000000000000..0fb48203b2f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/ed/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, lzip
+}:
+
+# 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 = "ed-${version}";
+ version = "1.16";
+
+ src = fetchurl {
+ url = "mirror://gnu/ed/${name}.tar.lz";
+ sha256 = "0b4b1lwizvng9bvpcjnmpj2i80xz9xw2w8nfff27b2h4mca7mh6g";
+ };
+
+ nativeBuildInputs = [ lzip ];
+
+ doCheck = true; # not cross;
+
+ meta = {
+ description = "An implementation of the standard Unix editor";
+
+ longDescription = ''
+ GNU ed is a line-oriented text editor. It is used to create,
+ display, modify and otherwise manipulate text files, both
+ interactively and via shell scripts. A restricted version of ed,
+ red, can only edit files in the current directory and cannot
+ execute shell commands. Ed is the "standard" text editor in the
+ sense that it is the original editor for Unix, and thus widely
+ available. For most purposes, however, it is superseded by
+ full-screen editors such as GNU Emacs or GNU Moe.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ homepage = "https://www.gnu.org/software/ed/";
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+} // stdenv.lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) {
+ # This may be moved above during a stdenv rebuild.
+ preConfigure = ''
+ configureFlagsArray+=("CC=$CC")
+ '';
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/edbrowse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/edbrowse/default.nix
new file mode 100644
index 000000000000..4e727e9a22a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/edbrowse/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, duktape, curl, pcre, readline, openssl, perl, html-tidy }:
+
+stdenv.mkDerivation rec {
+ pname = "edbrowse";
+ version = "3.7.7";
+
+ buildInputs = [ curl pcre readline openssl duktape perl html-tidy ];
+
+ postPatch = ''
+ for i in ./tools/*.pl
+ do
+ substituteInPlace $i --replace "/usr/bin/perl" "${perl}/bin/perl"
+ done
+ '';
+
+ makeFlags = [
+ "-C" "src"
+ "prefix=${placeholder "out"}"
+ ];
+
+ src = fetchFromGitHub {
+ owner = "CMB";
+ repo = "edbrowse";
+ rev = "v${version}";
+ sha256 = "0cw9d60mdhwna57r1vxn53s8gl81rr3cxnvm769ifq3xyh49vfcf";
+ };
+ meta = with stdenv.lib; {
+ description = "Command Line Editor Browser";
+ longDescription = ''
+ Edbrowse is a combination editor, browser, and mail client that is 100% text based.
+ The interface is similar to /bin/ed, though there are many more features, such as editing multiple files simultaneously, and rendering html.
+ This program was originally written for blind users, but many sighted users have taken advantage of the unique scripting capabilities of this program, which can be found nowhere else.
+ A batch job, or cron job, can access web pages on the internet, submit forms, and send email, with no human intervention whatsoever.
+ edbrowse can also tap into databases through odbc. It was primarily written by Karl Dahlke.
+ '';
+ license = licenses.gpl1Plus;
+ homepage = "https://edbrowse.org/";
+ maintainers = with maintainers; [ schmitthenner vrthra equirosa ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/edit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/edit/default.nix
new file mode 100644
index 000000000000..052206002610
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/edit/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchgit, unzip, pkgconfig, ncurses, libX11, libXft, cwebbin }:
+
+stdenv.mkDerivation {
+ pname = "edit-nightly";
+ version = "20160425";
+
+ src = fetchgit {
+ url = "git://c9x.me/ed.git";
+ rev = "323d49b68c5e804ed3b8cada0e2274f1589b3484";
+ sha256 = "0wv8i3ii7cd9bqhjpahwp2g5fcmyk365nc7ncmvl79cxbz3f7y8v";
+ };
+
+ buildInputs = [
+ unzip
+ pkgconfig
+ ncurses
+ libX11
+ libXft
+ cwebbin
+ ];
+
+ buildPhase = ''
+ ctangle *.w
+ make
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin/
+ cp obj/edit $out/bin/edit
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A relaxing mix of Vi and ACME";
+ homepage = "http://c9x.me/edit";
+ license = licenses.publicDomain;
+ maintainers = [ maintainers.vrthra ];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/elvis/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/elvis/default.nix
new file mode 100644
index 000000000000..df8f255de5e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/elvis/default.nix
@@ -0,0 +1,46 @@
+{ fetchurl, fetchpatch, stdenv, ncurses }:
+
+stdenv.mkDerivation {
+ name = "elvis-2.2_0";
+
+ src = fetchurl {
+ url = "http://www.the-little-red-haired-girl.org/pub/elvis/elvis-2.2_0.tar.gz";
+ sha256 = "182fj9qzyq6cjq1r849gpam6nq9smwv9f9xwaq84961p56r6d14s";
+ };
+
+ buildInputs = [ ncurses ];
+
+ patches = [ (fetchpatch {
+ url = "https://github.com/mbert/elvis/commit/076cf4ad5cc993be0c6195ec0d5d57e5ad8ac1eb.patch";
+ sha256 = "0yzkc1mxjwg09mfmrk20ksa0vfnb2x83ndybwvawq4xjm1qkcahc";
+ }) ];
+
+ postPatch = ''
+ substituteInPlace configure \
+ --replace '-lcurses' '-lncurses'
+ '';
+
+ preConfigure = ''
+ mkdir -p $out/share/man/man1
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/elvis $out/share/elvis/doc
+ cp elvis ref elvtags elvfmt $out/bin
+ cp -R data/* $out/share/elvis
+ cp doc/* $out/share/elvis/doc
+
+ mkdir -p $out/share/man/man1
+ for a in doc/*.man; do
+ cp $a $out/share/man/man1/`basename $a .man`.1
+ done
+ '';
+
+ configureFlags = [ "--ioctl=termios" ];
+
+ meta = {
+ homepage = "http://elvis.the-little-red-haired-girl.org/";
+ description = "A vi clone for Unix and other operating systems";
+ license = stdenv.lib.licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix
new file mode 100644
index 000000000000..45f20fccad90
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix
@@ -0,0 +1,51 @@
+{ fetchurl, stdenv, emacs, python }:
+
+stdenv.mkDerivation rec {
+ name = "cedet-1.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/cedet/${name}.tar.gz";
+ sha256 = "0p2bwlpwwa019axvgj09xkxbr53j0pq23d46s4la9jfhl47nbh22";
+ };
+
+ buildInputs = [ emacs python ];
+
+ doCheck = true;
+ checkPhase = "make utest";
+
+ installPhase = ''
+ mkdir -p "$out/share/emacs/site-lisp"
+ cp -v */*.el */*/*.el */*.elc */*/*.elc "$out/share/emacs/site-lisp"
+ chmod a-x "$out/share/emacs/site-lisp/"*
+
+ mkdir -p "$out/share/info"
+ cp -v */*.info* */*/*.info* "$out/share/info"
+ '';
+
+ meta = {
+ description = "CEDET, a Collection of Emacs Development Environment Tools";
+
+ longDescription = ''
+ CEDET is a collection of tools written with the end goal of
+ creating an advanced development environment in Emacs.
+
+ Emacs already is a great environment for writing software, but
+ there are additional areas that need improvement. Many new
+ ideas for integrated environments have been developed in newer
+ products, such as JBuilder, Eclipse, or KDevelop. CEDET is a
+ project which brings together several different tools needed to
+ implement advanced features.
+
+ CEDET includes EIEIO (Enhanced Implementation of Emacs
+ Interpreted Objects), Semantic, SRecode, Speedbar, EDE (Emacs
+ Development Environment), and COGRE (COnnected GRaph Editor).
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ homepage = "http://cedet.sourceforge.net/";
+
+ # Fails with `semantic-idle.el:42:1:Error: Invalid function: class-p`
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix
new file mode 100644
index 000000000000..3af53cda492f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, cedille, emacs }:
+
+stdenv.mkDerivation {
+ pname = "cedille-mode";
+ version = cedille.version;
+
+ src = cedille.src;
+
+ buildInputs = [ emacs ];
+
+ buildPhase = ":";
+
+ installPhase = ''
+ install -d $out/share/emacs/site-lisp
+ install se-mode/*.el se-mode/*.elc $out/share/emacs/site-lisp
+ install cedille-mode/*.el cedille-mode/*.elc $out/share/emacs/site-lisp
+ install *.el *.elc $out/share/emacs/site-lisp
+ substituteInPlace $out/share/emacs/site-lisp/cedille-mode.el \
+ --replace /usr/bin/cedille ${cedille}/bin/cedille \
+
+ '';
+
+ meta = {
+ description = "Emacs major mode for Cedille";
+ homepage = cedille.meta.homepage;
+ license = cedille.meta.license ;
+ platforms = cedille.meta.platforms;
+ maintainers = cedille.meta.maintainers;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
new file mode 100644
index 000000000000..ba54e5f43412
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchzip, emacs, color-theme}:
+let
+ commit = "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee";
+in
+stdenv.mkDerivation {
+ name = "color-theme-solarized-1.0.0";
+
+ src = fetchzip {
+
+ url = "https://github.com/sellout/emacs-color-theme-solarized/archive/${commit}.zip";
+ sha256 = "16d7adqi07lzzr0qipl1fbag9l8kiyr3xrqxi528pimcisbg85d3";
+ };
+
+ buildInputs = [ emacs ];
+ propagatedUserEnvPkgs = [ color-theme ];
+
+ buildPhase = ''
+ emacs -L . -L ${color-theme}/share/emacs/site-lisp/elpa/color-theme-* --batch -f batch-byte-compile *.el
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/emacs/site-lisp
+ install *.el* $out/share/emacs/site-lisp
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Precision colors for machines and people";
+ homepage = "http://ethanschoonover.com/solarized";
+ maintainers = [ maintainers.samuelrivas ];
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
new file mode 100644
index 000000000000..a56cb73fb245
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -0,0 +1,4011 @@
+{ callPackage }:
+ {
+ ace-window = callPackage ({ avy, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ace-window";
+ ename = "ace-window";
+ version = "0.9.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ace-window-0.9.0.el";
+ sha256 = "1m7fc4arcxn7fp0hnzyp20czjp4zx3rjaspfzpxzgc8sbghi81a3";
+ };
+ packageRequires = [ avy ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ace-window.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ack = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ack";
+ ename = "ack";
+ version = "1.10";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ack-1.10.tar";
+ sha256 = "0jz8badhjpzjlrprpzgcm1z6ask1ykc7ab62ixjrj9wcgfjif5qw";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ack.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ada-mode = callPackage ({ elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , uniquify-files
+ , wisi }:
+ elpaBuild {
+ pname = "ada-mode";
+ ename = "ada-mode";
+ version = "7.1.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ada-mode-7.1.4.tar";
+ sha256 = "13zcs7kn7rca82c80qshbdpmmmgkf5phr88hf7p5nwxqhkazy9cd";
+ };
+ packageRequires = [ emacs uniquify-files wisi ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ada-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ada-ref-man = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ada-ref-man";
+ ename = "ada-ref-man";
+ version = "2020.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ada-ref-man-2020.1.tar";
+ sha256 = "1g4brb9g2spd55issyqldfc4azwilbrz8kh8sl0lka2kn42l3qqc";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ada-ref-man.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ adaptive-wrap = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "adaptive-wrap";
+ ename = "adaptive-wrap";
+ version = "0.7";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/adaptive-wrap-0.7.el";
+ sha256 = "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/adaptive-wrap.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ adjust-parens = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "adjust-parens";
+ ename = "adjust-parens";
+ version = "3.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/adjust-parens-3.1.tar";
+ sha256 = "059v0njd52vxidr5xwv2jmknm2shnwpj3101069q6lsmz1wq242a";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/adjust-parens.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ advice-patch = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "advice-patch";
+ ename = "advice-patch";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/advice-patch-0.1.el";
+ sha256 = "0mb7linzsnf72vzkn9h6w2i2b0h92h6qzkapyrv61vh5a67k1m0s";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/advice-patch.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ aggressive-indent = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "aggressive-indent";
+ ename = "aggressive-indent";
+ version = "1.8.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/aggressive-indent-1.8.3.el";
+ sha256 = "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/aggressive-indent.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ahungry-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "ahungry-theme";
+ ename = "ahungry-theme";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ahungry-theme-1.10.0.tar";
+ sha256 = "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ahungry-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ all = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "all";
+ ename = "all";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/all-1.0.el";
+ sha256 = "17h4cp0xnh08szh3snbmn1mqq2smgqkn45bq7v0cpsxq1i301hi3";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/all.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ampc = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ampc";
+ ename = "ampc";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ampc-0.2.el";
+ sha256 = "1pdy5mvi6h8m7qjnxiy217fgcp9w91375hq29bacfgh7bix56jlr";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ampc.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ arbitools = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "arbitools";
+ ename = "arbitools";
+ version = "0.977";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/arbitools-0.977.el";
+ sha256 = "0nvdy14lqvy2ca4vw2qlr2kg2vv4y4sr8sa7kqrpf8cg7k9q3mbv";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/arbitools.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ascii-art-to-unicode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ascii-art-to-unicode";
+ ename = "ascii-art-to-unicode";
+ version = "1.12";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ascii-art-to-unicode-1.12.el";
+ sha256 = "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ascii-art-to-unicode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ async = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, nadvice }:
+ elpaBuild {
+ pname = "async";
+ ename = "async";
+ version = "1.9.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/async-1.9.3.tar";
+ sha256 = "1pmfjrlapvhkjqcal8x95w190hm9wsgxb3byc22rc1gf5z0p52c8";
+ };
+ packageRequires = [ cl-lib nadvice ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/async.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ auctex = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "auctex";
+ ename = "auctex";
+ version = "12.2.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/auctex-12.2.4.tar";
+ sha256 = "1yz2h692mr35zgqwlxdq8rzv8n0jixhpaqmbiki00hlysm4zh9py";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/auctex.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ aumix-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "aumix-mode";
+ ename = "aumix-mode";
+ version = "7";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/aumix-mode-7.el";
+ sha256 = "0qyjw2g3pzcxqdg1cpp889nmb524jxqq32dz7b7cg2m903lv5gmv";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/aumix-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ auto-correct = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "auto-correct";
+ ename = "auto-correct";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/auto-correct-1.1.4.el";
+ sha256 = "1ml35l6lk4sf51sh6cal1ylsn61iddz0s01wwly199i3nim0qnw8";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/auto-correct.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ auto-overlays = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "auto-overlays";
+ ename = "auto-overlays";
+ version = "0.10.9";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/auto-overlays-0.10.9.tar";
+ sha256 = "0aqjp3bkd7mi191nm971z857s09py390ikcd93hyhmknblk0v14p";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/auto-overlays.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ avy = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "avy";
+ ename = "avy";
+ version = "0.5.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/avy-0.5.0.tar";
+ sha256 = "1xfcml38qmrwdd0rkhwrvv2s7dbznwhk3vy9pjd6ljpg22wkb80d";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/avy.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ bbdb = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "bbdb";
+ ename = "bbdb";
+ version = "3.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/bbdb-3.2.tar";
+ sha256 = "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/bbdb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ beacon = callPackage ({ elpaBuild, fetchurl, lib, seq }:
+ elpaBuild {
+ pname = "beacon";
+ ename = "beacon";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/beacon-1.3.3.el";
+ sha256 = "10r4fpf8pcf1qn5ncpm5g7skzba749mrc1ggykq92jlha3q98s02";
+ };
+ packageRequires = [ seq ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/beacon.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ bluetooth = callPackage ({ dash, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "bluetooth";
+ ename = "bluetooth";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/bluetooth-0.1.2.el";
+ sha256 = "1vp2vpyq0ybjni35ics1mg1kiwgvc7x12dlmvygy78sqp52sfkcv";
+ };
+ packageRequires = [ dash emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/bluetooth.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ bnf-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "bnf-mode";
+ ename = "bnf-mode";
+ version = "0.4.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/bnf-mode-0.4.4.tar";
+ sha256 = "0acr3x96zknxs90dc9mpnrwiaa81883h36lx5q1lxfn78vjfw14x";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/bnf-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ brief = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "brief";
+ ename = "brief";
+ version = "5.87";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/brief-5.87.tar";
+ sha256 = "02z8fzzf1zsk2r0cnssz3i2nd4qwsnya4i2r4qi4ndc1xjlsvgwc";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/brief.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ buffer-expose = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "buffer-expose";
+ ename = "buffer-expose";
+ version = "0.4.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/buffer-expose-0.4.3.el";
+ sha256 = "1blpvan31mvqhzal16sdn564jnfnn7xsfn8zb65ijndh23drljwd";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/buffer-expose.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ bug-hunter = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, seq }:
+ elpaBuild {
+ pname = "bug-hunter";
+ ename = "bug-hunter";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/bug-hunter-1.3.1.el";
+ sha256 = "0xplsnmj144r90vxxkmpdxlaq6gyx4ca6iklq60wd0w05fw9q02x";
+ };
+ packageRequires = [ cl-lib seq ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/bug-hunter.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ caps-lock = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "caps-lock";
+ ename = "caps-lock";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/caps-lock-1.0.el";
+ sha256 = "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/caps-lock.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ captain = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "captain";
+ ename = "captain";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/captain-1.0.3.el";
+ sha256 = "02b4s4pfnwfwc3xgh4g96wrqll37m35dc2x09pjwkdjxglki7045";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/captain.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ chess = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "chess";
+ ename = "chess";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/chess-2.0.4.tar";
+ sha256 = "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/chess.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ cl-generic = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "cl-generic";
+ ename = "cl-generic";
+ version = "0.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/cl-generic-0.3.el";
+ sha256 = "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/cl-generic.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ cl-lib = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "cl-lib";
+ ename = "cl-lib";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/cl-lib-0.6.1.el";
+ sha256 = "00w7bw6wkig13pngijh7ns45s1jn5kkbbjaqznsdh6jk5x089j9y";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/cl-lib.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ cl-print = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "cl-print";
+ ename = "cl-print";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/cl-print-1.0.el";
+ sha256 = "0ib8j7rv5f4c4xg3kban58jm6cam756i3xz6j8100846g3jn9zcc";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/cl-print.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ clipboard-collector = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "clipboard-collector";
+ ename = "clipboard-collector";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/clipboard-collector-0.2.el";
+ sha256 = "19scspkxgm3b1jkv10jy6nw9gv1q6sfjys09l37mvsva3djxa1dl";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/clipboard-collector.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ cobol-mode = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "cobol-mode";
+ ename = "cobol-mode";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/cobol-mode-1.0.0.el";
+ sha256 = "1zmcfpl7v787yacc7gxm8mkp53fmrznp5mnad628phf3vj4kwnxi";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/cobol-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ coffee-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "coffee-mode";
+ ename = "coffee-mode";
+ version = "0.4.1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/coffee-mode-0.4.1.1.el";
+ sha256 = "1jffd8rqmc3l597db26rggis6apf91glyzm1qvpf5g3iz55g6slz";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/coffee-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ compact-docstrings = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "compact-docstrings";
+ ename = "compact-docstrings";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/compact-docstrings-0.1.el";
+ sha256 = "1qmxn1i07nnzfckl06lg3xpvccx2hjgpypgc9v4pdihjfdwnifm5";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/compact-docstrings.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ company = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "company";
+ ename = "company";
+ version = "0.9.13";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/company-0.9.13.tar";
+ sha256 = "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/company.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ company-ebdb = callPackage ({ company, ebdb, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "company-ebdb";
+ ename = "company-ebdb";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/company-ebdb-1.1.el";
+ sha256 = "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9";
+ };
+ packageRequires = [ company ebdb ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/company-ebdb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ company-math = callPackage ({ company
+ , elpaBuild
+ , fetchurl
+ , lib
+ , math-symbol-lists }:
+ elpaBuild {
+ pname = "company-math";
+ ename = "company-math";
+ version = "1.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/company-math-1.3.tar";
+ sha256 = "0fc9ms0s9w81sxp3qcfva3n3d2qys0pj19pnm621a6v1xdsc7i1l";
+ };
+ packageRequires = [ company math-symbol-lists ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/company-math.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ company-statistics = callPackage ({ company
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "company-statistics";
+ ename = "company-statistics";
+ version = "0.2.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/company-statistics-0.2.3.tar";
+ sha256 = "0780xp09f739jys469x4fqpgj1lysi8gnhiaz0735jib07lmh4ww";
+ };
+ packageRequires = [ company emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/company-statistics.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ context-coloring = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "context-coloring";
+ ename = "context-coloring";
+ version = "8.1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/context-coloring-8.1.0.tar";
+ sha256 = "01wm36qgxsg7lgdxkn7avzfmxcpilsmvfwz3s7y04i0sdrsjvzp4";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/context-coloring.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ counsel = callPackage ({ elpaBuild, emacs, fetchurl, lib, swiper }:
+ elpaBuild {
+ pname = "counsel";
+ ename = "counsel";
+ version = "0.13.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/counsel-0.13.1.el";
+ sha256 = "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli";
+ };
+ packageRequires = [ emacs swiper ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/counsel.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ cpio-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "cpio-mode";
+ ename = "cpio-mode";
+ version = "0.16";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/cpio-mode-0.16.tar";
+ sha256 = "06xdifgx45aghfppz5dws3v6w37q84lwgxp1pc51p2jjflqbqy5q";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/cpio-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ crisp = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "crisp";
+ ename = "crisp";
+ version = "1.3.6";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/crisp-1.3.6.el";
+ sha256 = "0jf4668h0mzh8han2vbvpzz8m02b8rsbdrj0ddar30w5i6v2f8kz";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/crisp.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ csv-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "csv-mode";
+ ename = "csv-mode";
+ version = "1.12";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/csv-mode-1.12.tar";
+ sha256 = "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/csv-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ cycle-quotes = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "cycle-quotes";
+ ename = "cycle-quotes";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/cycle-quotes-0.1.tar";
+ sha256 = "0aa6ykblgb6anqmi4qxakbvyrq9v02skgayhfb2qddffiww404ka";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/cycle-quotes.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ darkroom = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "darkroom";
+ ename = "darkroom";
+ version = "0.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/darkroom-0.3.el";
+ sha256 = "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/darkroom.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ dash = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "dash";
+ ename = "dash";
+ version = "2.12.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/dash-2.12.0.tar";
+ sha256 = "02r547vian59zr55z6ri4p2b7q5y5k256wi9j8a317vjzyh54m05";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/dash.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ dbus-codegen = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "dbus-codegen";
+ ename = "dbus-codegen";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/dbus-codegen-0.1.el";
+ sha256 = "1gi7jc6rn6hlgh01zfwb7cczb5hi3c05wlnzw6akj1h9kai1lmzw";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/dbus-codegen.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ debbugs = callPackage ({ elpaBuild, emacs, fetchurl, lib, soap-client }:
+ elpaBuild {
+ pname = "debbugs";
+ ename = "debbugs";
+ version = "0.25";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/debbugs-0.25.tar";
+ sha256 = "0h0pxav170yzfpjf4vb8simiw67x9dkcjx9m4ghdk6wia25y8jni";
+ };
+ packageRequires = [ emacs soap-client ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/debbugs.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ delight = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, nadvice }:
+ elpaBuild {
+ pname = "delight";
+ ename = "delight";
+ version = "1.7";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/delight-1.7.el";
+ sha256 = "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1";
+ };
+ packageRequires = [ cl-lib nadvice ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/delight.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ dict-tree = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA, trie }:
+ elpaBuild {
+ pname = "dict-tree";
+ ename = "dict-tree";
+ version = "0.14";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/dict-tree-0.14.el";
+ sha256 = "1k00k3510bgq7rijvrxbx4b7qlq2abq1dyyn51zgm8q0qk68p5jq";
+ };
+ packageRequires = [ heap tNFA trie ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/dict-tree.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ diff-hl = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "diff-hl";
+ ename = "diff-hl";
+ version = "1.8.7";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/diff-hl-1.8.7.tar";
+ sha256 = "1qcwicflvm6dxcflnlg891hyzwp2q79fdkdbdwp1440a0j09riam";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/diff-hl.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ diffview = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "diffview";
+ ename = "diffview";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/diffview-1.0.el";
+ sha256 = "1gkdmzmgjixz9nak7dxvqy28kz0g7i672gavamwgnc1jl37wkcwi";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/diffview.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ dired-du = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "dired-du";
+ ename = "dired-du";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/dired-du-0.5.2.tar";
+ sha256 = "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/dired-du.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ dired-git-info = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "dired-git-info";
+ ename = "dired-git-info";
+ version = "0.3.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/dired-git-info-0.3.1.el";
+ sha256 = "1kd0rpw7l32wvwi7q8s0inx4bc66xrl7hkllnlicyczsnzw2z52z";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/dired-git-info.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ disk-usage = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "disk-usage";
+ ename = "disk-usage";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/disk-usage-1.3.3.el";
+ sha256 = "0h1jwznd41gi0vg830ilfgm01q05zknikzahwasm9cizwm2wyizj";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/disk-usage.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ dismal = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "dismal";
+ ename = "dismal";
+ version = "1.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/dismal-1.5.tar";
+ sha256 = "1vhs6w6c2klsrfjpw8vr5c4gwiw83ppdjhsn2la0fvkm60jmc476";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/dismal.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ djvu = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "djvu";
+ ename = "djvu";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/djvu-1.1.el";
+ sha256 = "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/djvu.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ docbook = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "docbook";
+ ename = "docbook";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/docbook-0.1.el";
+ sha256 = "01x0g8dhw65mzp9mk6qhx9p2bsvkw96hz1awrrf2ji17sp8hd1v6";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/docbook.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ dts-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "dts-mode";
+ ename = "dts-mode";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/dts-mode-0.1.0.el";
+ sha256 = "08xwqbdg0gwipc3gfacs3gpc6zz6lhkw7pyj7n9qhg020c4qv7hq";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/dts-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ easy-kill = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "easy-kill";
+ ename = "easy-kill";
+ version = "0.9.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/easy-kill-0.9.3.tar";
+ sha256 = "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/easy-kill.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ebdb = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
+ elpaBuild {
+ pname = "ebdb";
+ ename = "ebdb";
+ version = "0.6.18";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ebdb-0.6.18.tar";
+ sha256 = "0znbv3c7wdgak1f1zb051vg4r29fksqh53k1j77jfmqcvwkpz2mw";
+ };
+ packageRequires = [ cl-lib emacs seq ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ebdb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ebdb-gnorb = callPackage ({ ebdb, elpaBuild, fetchurl, gnorb, lib }:
+ elpaBuild {
+ pname = "ebdb-gnorb";
+ ename = "ebdb-gnorb";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ebdb-gnorb-1.0.2.el";
+ sha256 = "0bma7mqilp3lfgv0z2mk6nnqzh1nn1prkz2aiwrs4hxwydmda13i";
+ };
+ packageRequires = [ ebdb gnorb ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ebdb-gnorb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ebdb-i18n-chn = callPackage ({ ebdb, elpaBuild, fetchurl, lib, pyim }:
+ elpaBuild {
+ pname = "ebdb-i18n-chn";
+ ename = "ebdb-i18n-chn";
+ version = "1.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ebdb-i18n-chn-1.3.el";
+ sha256 = "1w7xgagscyjxrw4xl8bz6wf7skvdvk5qdcp5p7kxl4r9nhjffj20";
+ };
+ packageRequires = [ ebdb pyim ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ebdb-i18n-chn.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ediprolog = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ediprolog";
+ ename = "ediprolog";
+ version = "2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ediprolog-2.1.el";
+ sha256 = "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ediprolog.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ eev = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "eev";
+ ename = "eev";
+ version = "20200224";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/eev-20200224.tar";
+ sha256 = "1r1wh001ikg34axihffrhzl0n8r0w42s2hac2jys8sil1hqvx306";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/eev.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ eglot = callPackage ({ elpaBuild
+ , emacs
+ , fetchurl
+ , flymake ? null
+ , jsonrpc
+ , lib }:
+ elpaBuild {
+ pname = "eglot";
+ ename = "eglot";
+ version = "1.6";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/eglot-1.6.tar";
+ sha256 = "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx";
+ };
+ packageRequires = [ emacs flymake jsonrpc ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/eglot.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ el-search = callPackage ({ cl-print
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , stream }:
+ elpaBuild {
+ pname = "el-search";
+ ename = "el-search";
+ version = "1.12.6.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/el-search-1.12.6.1.tar";
+ sha256 = "150f4rirg107hmzpv8ifa32k2mgf07smbf9z44ln5rh8n17xwqah";
+ };
+ packageRequires = [ cl-print emacs stream ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/el-search.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ eldoc = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "eldoc";
+ ename = "eldoc";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/eldoc-1.8.0.el";
+ sha256 = "1zxy9x9a0yqwdi572jj04x9lyj3d87mpyfbn3092a5nqwc864k9w";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/eldoc.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ eldoc-eval = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "eldoc-eval";
+ ename = "eldoc-eval";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/eldoc-eval-0.1.el";
+ sha256 = "1mnhxdsn9h43iq941yqmg92v3hbzwyg7acqfnz14q5g52bnagg19";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/eldoc-eval.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ electric-spacing = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "electric-spacing";
+ ename = "electric-spacing";
+ version = "5.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/electric-spacing-5.0.el";
+ sha256 = "1jk6v84z0n8jljzsz4wk7rgzh7drpfvxf4bp6xis8gapnd3ycfyv";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/electric-spacing.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ elisp-benchmarks = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "elisp-benchmarks";
+ ename = "elisp-benchmarks";
+ version = "1.7";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.7.tar";
+ sha256 = "1ps28bvh87d98k84ygx374a1kbwvnqm4w8jpkgzic01as78hgkiz";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/elisp-benchmarks.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ emms = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "emms";
+ ename = "emms";
+ version = "5.42";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/emms-5.42.tar";
+ sha256 = "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/emms.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ enwc = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "enwc";
+ ename = "enwc";
+ version = "2.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/enwc-2.0.tar";
+ sha256 = "17w35b06am5n19nlq00ni5w3jvys9i7swyw4glb7081d2jbij2mn";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/enwc.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ epoch-view = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "epoch-view";
+ ename = "epoch-view";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/epoch-view-0.0.1.el";
+ sha256 = "1wy25ryyg9f4v83qjym2pwip6g9mszhqkf5a080z0yl47p71avfx";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/epoch-view.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ergoemacs-mode = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , undo-tree }:
+ elpaBuild {
+ pname = "ergoemacs-mode";
+ ename = "ergoemacs-mode";
+ version = "5.16.10.12";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ergoemacs-mode-5.16.10.12.tar";
+ sha256 = "1zfzjmi30lllrbyzicmp11c9lpa82g57wi134q9bajvzn9ryx4jr";
+ };
+ packageRequires = [ cl-lib emacs undo-tree ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ergoemacs-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ excorporate = callPackage ({ elpaBuild
+ , emacs
+ , fetchurl
+ , fsm
+ , lib
+ , nadvice
+ , soap-client
+ , url-http-ntlm }:
+ elpaBuild {
+ pname = "excorporate";
+ ename = "excorporate";
+ version = "0.8.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/excorporate-0.8.3.tar";
+ sha256 = "04bsbiwgfbfd501qvwh0iwyk0xh442kjfj73b3876idwj3p8alr5";
+ };
+ packageRequires = [ emacs fsm nadvice soap-client url-http-ntlm ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/excorporate.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ expand-region = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "expand-region";
+ ename = "expand-region";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/expand-region-0.11.0.tar";
+ sha256 = "1q6xaqkv40z4c6rgdkxqqkvxgsaj8yjqjrxi40kz5y0ck3bjrk0i";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/expand-region.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ exwm = callPackage ({ elpaBuild, fetchurl, lib, xelb }:
+ elpaBuild {
+ pname = "exwm";
+ ename = "exwm";
+ version = "0.24";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/exwm-0.24.tar";
+ sha256 = "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s";
+ };
+ packageRequires = [ xelb ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/exwm.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ f90-interface-browser = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "f90-interface-browser";
+ ename = "f90-interface-browser";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/f90-interface-browser-1.1.el";
+ sha256 = "0mf32w2bgc6b43k0r4a11bywprj7y3rvl21i0ry74v425r6hc3is";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/f90-interface-browser.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ filladapt = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "filladapt";
+ ename = "filladapt";
+ version = "2.12.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/filladapt-2.12.2.el";
+ sha256 = "1cxyxfdjg1dsmn1jrl6b7xy03xr42fb6vyggh27s4dk417ils6yg";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/filladapt.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ flylisp = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "flylisp";
+ ename = "flylisp";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/flylisp-0.2.el";
+ sha256 = "0hh09qy1xwlv52lsh49nr11h4lk8qlmk06b669q494d79hxyv4v6";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/flylisp.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ flymake = callPackage ({ eldoc, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "flymake";
+ ename = "flymake";
+ version = "1.0.9";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/flymake-1.0.9.el";
+ sha256 = "0xm1crhjcs14iqkf481igbf40wj2ib3hjzinw1gn8w1n0462ymp6";
+ };
+ packageRequires = [ eldoc emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/flymake.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ fountain-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "fountain-mode";
+ ename = "fountain-mode";
+ version = "2.7.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/fountain-mode-2.7.3.el";
+ sha256 = "1sz3qp3y52d05jd006zc99r4ryignpa2jgfk72rw3zfqmikzv15j";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/fountain-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ frame-tabs = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "frame-tabs";
+ ename = "frame-tabs";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/frame-tabs-1.1.el";
+ sha256 = "0fx9zc7mvyl703k7sjjcvffm2qw42ncr7r3d4fm0h45p9pi83svz";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/frame-tabs.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ frog-menu = callPackage ({ avy, elpaBuild, emacs, fetchurl, lib, posframe }:
+ elpaBuild {
+ pname = "frog-menu";
+ ename = "frog-menu";
+ version = "0.2.11";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/frog-menu-0.2.11.el";
+ sha256 = "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff";
+ };
+ packageRequires = [ avy emacs posframe ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/frog-menu.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ fsm = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "fsm";
+ ename = "fsm";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/fsm-0.2.1.el";
+ sha256 = "1jyxyqdbfl8nv7c50q0sg3w5p7whp1sqgi7w921k5hfar4d11qqp";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/fsm.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ggtags = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "ggtags";
+ ename = "ggtags";
+ version = "0.8.13";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ggtags-0.8.13.el";
+ sha256 = "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ggtags.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ gited = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "gited";
+ ename = "gited";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/gited-0.6.0.tar";
+ sha256 = "187asqrxfpxv53hhnrcid1sy46vcy07qx5yqgnrczi54jpcc57j5";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/gited.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ gle-mode = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "gle-mode";
+ ename = "gle-mode";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/gle-mode-1.1.el";
+ sha256 = "0p9glalhkf8i4486pjwvrb9z4lqxl6jcqfk6jrjl6b1xi72xmdi0";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/gle-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ gnome-c-style = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "gnome-c-style";
+ ename = "gnome-c-style";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/gnome-c-style-0.1.tar";
+ sha256 = "09w68jbpzyyhcaqw335qpr840j7xx0j81zxxkxq4ahqv6ck27v4x";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/gnome-c-style.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ gnorb = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "gnorb";
+ ename = "gnorb";
+ version = "1.6.7";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/gnorb-1.6.7.tar";
+ sha256 = "17pz6i51z298rk7j3rraw1gxlssn88yi4bbpzyxv9cs7y1lfy8ld";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/gnorb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ gnu-elpa = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "gnu-elpa";
+ ename = "gnu-elpa";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/gnu-elpa-1.1.tar";
+ sha256 = "0b0law1xwwqa42wb09b3w73psq2kx16lkiwxjxl0sshjcmarhv8r";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/gnu-elpa.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ gnu-elpa-keyring-update = callPackage ({ elpaBuild
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "gnu-elpa-keyring-update";
+ ename = "gnu-elpa-keyring-update";
+ version = "2019.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/gnu-elpa-keyring-update-2019.3.tar";
+ sha256 = "1zw65kag25abimg088m4h8vj2nd4y5nc4qal6fsda0dldckfv1w0";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/gnu-elpa-keyring-update.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ gnugo = callPackage ({ ascii-art-to-unicode
+ , cl-lib ? null
+ , elpaBuild
+ , fetchurl
+ , lib
+ , xpm }:
+ elpaBuild {
+ pname = "gnugo";
+ ename = "gnugo";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/gnugo-3.1.0.tar";
+ sha256 = "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1";
+ };
+ packageRequires = [ ascii-art-to-unicode cl-lib xpm ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/gnugo.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ gnus-mock = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "gnus-mock";
+ ename = "gnus-mock";
+ version = "0.4.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/gnus-mock-0.4.5.tar";
+ sha256 = "1hfh315vrxd54r2f1wpdfk06b7lhpab7knygav58vdwwdbndlqiz";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/gnus-mock.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ gpastel = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "gpastel";
+ ename = "gpastel";
+ version = "0.5.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/gpastel-0.5.0.el";
+ sha256 = "1wky6047071vgyyw2m929nbwg4d9qqp1mjqwk7a5rs8hfr4xqxfw";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/gpastel.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ greader = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "greader";
+ ename = "greader";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/greader-0.1.tar";
+ sha256 = "0mwhmidzv9vnmx6xls8pq4ra4m0f4yg677xgv34ivv34vsgg1mhb";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/greader.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ guess-language = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , nadvice }:
+ elpaBuild {
+ pname = "guess-language";
+ ename = "guess-language";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/guess-language-0.0.1.el";
+ sha256 = "11a6m2337j4ncppaf59yr2vavvvsph2qh51d12zmq58g9wh3d7wz";
+ };
+ packageRequires = [ cl-lib emacs nadvice ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/guess-language.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ heap = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "heap";
+ ename = "heap";
+ version = "0.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/heap-0.5.el";
+ sha256 = "13qv0w3fi87c85jcy7lv359r6rpsgnp5zzs2f2zq4dl3540wzrxg";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/heap.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ highlight-escape-sequences = callPackage ({ elpaBuild
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "highlight-escape-sequences";
+ ename = "highlight-escape-sequences";
+ version = "0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/highlight-escape-sequences-0.4.el";
+ sha256 = "1z8r9rnppn7iy7xv4kprfsqxday16h7c471i7rkyi3rv3l0pfxd0";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/highlight-escape-sequences.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ hook-helpers = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "hook-helpers";
+ ename = "hook-helpers";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/hook-helpers-1.1.1.tar";
+ sha256 = "05nqlshdqh32smav58hzqg8wp04h7w9sxr239qrz4wqxwlxlv9im";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/hook-helpers.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ html5-schema = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "html5-schema";
+ ename = "html5-schema";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/html5-schema-0.1.tar";
+ sha256 = "19k1jal6j64zq78w8h0lw7cljivmp2jzs5sa1ppc0mqkpn2hyq1i";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/html5-schema.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ hydra = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "hydra";
+ ename = "hydra";
+ version = "0.14.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/hydra-0.14.0.tar";
+ sha256 = "1r2vl2cpzqzayfzc0bijigxc7c0mkgcv96g4p65gnw99jk8d78kb";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/hydra.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ hyperbole = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "hyperbole";
+ ename = "hyperbole";
+ version = "7.1.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/hyperbole-7.1.2.tar";
+ sha256 = "1bspmqnbniwr9385wh823dsr5fgch5qnlkf45s4vi0nvg8jdccp1";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/hyperbole.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ioccur = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "ioccur";
+ ename = "ioccur";
+ version = "2.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ioccur-2.4.el";
+ sha256 = "1isid3kgsi5qkz27ipvmp9v5knx0qigmv7lz12mqdkwv8alns1p9";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ioccur.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ iterators = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "iterators";
+ ename = "iterators";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/iterators-0.1.1.el";
+ sha256 = "1r2cz2n6cr6wal5pqiqi5pn28pams639czgrvd60xcqmlr3li3g5";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/iterators.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ivy = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "ivy";
+ ename = "ivy";
+ version = "0.13.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ivy-0.13.1.tar";
+ sha256 = "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ivy.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ivy-explorer = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib }:
+ elpaBuild {
+ pname = "ivy-explorer";
+ ename = "ivy-explorer";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ivy-explorer-0.3.2.el";
+ sha256 = "0q9gy9w22hnq30bfmnpqknk0qc1rcbjcybpjgb8hnlldvcci95l7";
+ };
+ packageRequires = [ emacs ivy ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ivy-explorer.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ javaimp = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "javaimp";
+ ename = "javaimp";
+ version = "0.7.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/javaimp-0.7.1.tar";
+ sha256 = "0i93akp9jhlpgbm454wkjhir8cbzhfjb97cxxlk8n4pgzbh481l3";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/javaimp.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ jgraph-mode = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "jgraph-mode";
+ ename = "jgraph-mode";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/jgraph-mode-1.1.el";
+ sha256 = "0479irjz5r79x6ngl3lfkl1gqsmvcw8kn6285sm6nkn66m1dfs8l";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/jgraph-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ js2-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "js2-mode";
+ ename = "js2-mode";
+ version = "20190219";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/js2-mode-20190219.tar";
+ sha256 = "0jgqs7cwykw5ihdq9wp5qc05y6br9gsyfiylqhjq43z59673chcc";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/js2-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ json-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "json-mode";
+ ename = "json-mode";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/json-mode-0.1.el";
+ sha256 = "025bwpx7nc1qhdyf2yaqjdr6x1qr6q45776yvy427xdh4nbk054l";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/json-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ jsonrpc = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "jsonrpc";
+ ename = "jsonrpc";
+ version = "1.0.12";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/jsonrpc-1.0.12.el";
+ sha256 = "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/jsonrpc.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ jumpc = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "jumpc";
+ ename = "jumpc";
+ version = "3.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/jumpc-3.0.el";
+ sha256 = "1vhggw3mzaq33al8f16jbg5qq5f95s8365is9qqyb8yq77gqym6a";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/jumpc.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ kmb = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "kmb";
+ ename = "kmb";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/kmb-0.1.el";
+ sha256 = "1wjfk28illfd5bkka3rlhhq59r0pad9zik1njlxym0ha8kbhzsj8";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/kmb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ landmark = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "landmark";
+ ename = "landmark";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/landmark-1.0.el";
+ sha256 = "0mz1l9zc1nvggjhg4jcly8ncw38xkprlrha8l8vfl9k9rg7s1dv4";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/landmark.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ leaf = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "leaf";
+ ename = "leaf";
+ version = "4.2.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/leaf-4.2.5.tar";
+ sha256 = "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/leaf.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ let-alist = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "let-alist";
+ ename = "let-alist";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/let-alist-1.0.6.el";
+ sha256 = "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/let-alist.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ lex = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "lex";
+ ename = "lex";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/lex-1.1.tar";
+ sha256 = "1i6ri3k2b2nginhnmwy67mdpv5p75jkxjfwbf42wymza8fxzwbb7";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/lex.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ lmc = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "lmc";
+ ename = "lmc";
+ version = "1.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/lmc-1.4.el";
+ sha256 = "0fm4sclx9gg0d0615smz105x320sk45y4ivpjk3nbc67c5l0sh2h";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/lmc.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ load-dir = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "load-dir";
+ ename = "load-dir";
+ version = "0.0.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/load-dir-0.0.5.el";
+ sha256 = "1575ipn155nzzb5yghblxc7v1vpq4i16w1ff7y56qw2498ligpc5";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/load-dir.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ load-relative = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "load-relative";
+ ename = "load-relative";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/load-relative-1.3.1.el";
+ sha256 = "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/load-relative.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ loc-changes = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "loc-changes";
+ ename = "loc-changes";
+ version = "1.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/loc-changes-1.2.el";
+ sha256 = "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/loc-changes.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ loccur = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "loccur";
+ ename = "loccur";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/loccur-1.2.4.el";
+ sha256 = "00f1ifa4z5ay90bd2002fmj83d7xqzrcr9018q8crlypmpxkyh7j";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/loccur.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ map = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "map";
+ ename = "map";
+ version = "2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/map-2.1.el";
+ sha256 = "0ydz5w1n4vwhhzxxj003s7jv8n1wjijwfryk5z93bwhnr0cak0i0";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/map.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ markchars = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "markchars";
+ ename = "markchars";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/markchars-0.2.1.el";
+ sha256 = "0dpq3brblcxjkcqv3xsmlsx5z9zbv94v0kg4j1sic3brz6hbl4lk";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/markchars.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ math-symbol-lists = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "math-symbol-lists";
+ ename = "math-symbol-lists";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/math-symbol-lists-1.2.1.el";
+ sha256 = "015q44qg9snrpz04syz89f9f79pzg5h7w88nh84p38klynkx2f86";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/math-symbol-lists.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ memory-usage = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "memory-usage";
+ ename = "memory-usage";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/memory-usage-0.2.el";
+ sha256 = "03qwb7sprdh1avxv3g7hhnhl41pwvnpxcpnqrikl7picy78h1gwj";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/memory-usage.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ metar = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "metar";
+ ename = "metar";
+ version = "0.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/metar-0.3.el";
+ sha256 = "07gv0v0xwb5yzynwagmvf0n5c9wljy1jg4ympnxpa2d9r1zqc02g";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/metar.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ midi-kbd = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "midi-kbd";
+ ename = "midi-kbd";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/midi-kbd-0.2.el";
+ sha256 = "1783k07gyiaq784wqv8qqc89cw5d6q1bdqz68b7n1lx4vmvfrhmh";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/midi-kbd.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ mines = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "mines";
+ ename = "mines";
+ version = "1.6";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/mines-1.6.tar";
+ sha256 = "1199s1v4my0qpvc5aaxzbqayjn59vilxbqnywvyhvm7hz088aps2";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/mines.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ minibuffer-line = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "minibuffer-line";
+ ename = "minibuffer-line";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/minibuffer-line-0.1.el";
+ sha256 = "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/minibuffer-line.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ minimap = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "minimap";
+ ename = "minimap";
+ version = "1.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/minimap-1.3.el";
+ sha256 = "15azlmi6kk9pg1c4zrw952qsh9wq6ggqb4qqc84a7l67nhqb9bqp";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/minimap.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ mmm-mode = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "mmm-mode";
+ ename = "mmm-mode";
+ version = "0.5.8";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/mmm-mode-0.5.8.tar";
+ sha256 = "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/mmm-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ modus-operandi-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "modus-operandi-theme";
+ ename = "modus-operandi-theme";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.11.0.el";
+ sha256 = "11sq105vpp8rmyayfb7h8gz099kfdr7nb8n4pg81iby4fllj1kgd";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/modus-operandi-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ modus-vivendi-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "modus-vivendi-theme";
+ ename = "modus-vivendi-theme";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.11.0.el";
+ sha256 = "14ky9cxg9cpvhgg24ra0xla2dapqjlf948470q7v0m402x1r2iif";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/modus-vivendi-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ multishell = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "multishell";
+ ename = "multishell";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/multishell-1.1.5.tar";
+ sha256 = "0g38p5biyxqkjdkmxlikvhkhkmafyy3ibd012q83skaf8fi4cv1y";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/multishell.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ muse = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "muse";
+ ename = "muse";
+ version = "3.20.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/muse-3.20.2.tar";
+ sha256 = "0g2ff6x45x2k5dnkp31sk3bjj92jyhhnar7l5hzn8vp22l0rv8wn";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/muse.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ myers = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "myers";
+ ename = "myers";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/myers-0.1.el";
+ sha256 = "0yrxklkksj16cfbvwmdxjj43vngjd6q0fivib1xim3c9g3c9b670";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/myers.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ nadvice = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "nadvice";
+ ename = "nadvice";
+ version = "0.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/nadvice-0.3.el";
+ sha256 = "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/nadvice.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ nameless = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "nameless";
+ ename = "nameless";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/nameless-1.0.2.el";
+ sha256 = "13c1payc46ry5bf8ia8cwqpshm2ya74fi5r4sxq5n410z5f0pgqx";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/nameless.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ names = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , nadvice }:
+ elpaBuild {
+ pname = "names";
+ ename = "names";
+ version = "20151201.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/names-20151201.0.tar";
+ sha256 = "13smsf039x4yd7pzvllgn1vz8lhkwghnhip9y2bka38vk37w912d";
+ };
+ packageRequires = [ cl-lib emacs nadvice ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/names.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ nhexl-mode = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "nhexl-mode";
+ ename = "nhexl-mode";
+ version = "1.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/nhexl-mode-1.5.el";
+ sha256 = "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/nhexl-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ nlinum = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "nlinum";
+ ename = "nlinum";
+ version = "1.9";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/nlinum-1.9.el";
+ sha256 = "03zqlz58fvh4cpfl43h7py2fpnc7m37f1ys8zhrc511ccq9cwkdn";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/nlinum.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ notes-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "notes-mode";
+ ename = "notes-mode";
+ version = "1.30";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/notes-mode-1.30.tar";
+ sha256 = "1aqivlfa0nk0y27gdv68k5rg3m5wschh8cw196a13qb7kaghk9r6";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/notes-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ntlm = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ntlm";
+ ename = "ntlm";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ntlm-2.1.0.el";
+ sha256 = "01d0bcmh8a36qf871w6bc05kjk9bmnh843m9869xw06zyvqwg9mv";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ntlm.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ num3-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "num3-mode";
+ ename = "num3-mode";
+ version = "1.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/num3-mode-1.3.el";
+ sha256 = "0x2jpnzvpbj03pbmhsny5gygh63c4dbl4g3k0cfs3vh4qmp2dg6w";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/num3-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ oauth2 = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "oauth2";
+ ename = "oauth2";
+ version = "0.13";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/oauth2-0.13.el";
+ sha256 = "0y5nbdwxz2hfr09xgsqgyv60vgx0rsaisibcpkz00klvgg26w33r";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/oauth2.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ objed = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "objed";
+ ename = "objed";
+ version = "0.8.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/objed-0.8.3.tar";
+ sha256 = "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/objed.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ olivetti = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "olivetti";
+ ename = "olivetti";
+ version = "1.7.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/olivetti-1.7.1.el";
+ sha256 = "1bk41bqri0ycpab46c7a6i5k3js1pm5k6d76y91mp3l2izy2bxwj";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/olivetti.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ omn-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "omn-mode";
+ ename = "omn-mode";
+ version = "1.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/omn-mode-1.2.el";
+ sha256 = "0p7lmqabdcn625q9z7libn7q1b6mjc74bkic2kjhhckzvlfjk742";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/omn-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ on-screen = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "on-screen";
+ ename = "on-screen";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/on-screen-1.3.3.el";
+ sha256 = "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/on-screen.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ org = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "org";
+ ename = "org";
+ version = "9.3.6";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/org-9.3.6.tar";
+ sha256 = "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/org.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ org-edna = callPackage ({ elpaBuild, emacs, fetchurl, lib, org, seq }:
+ elpaBuild {
+ pname = "org-edna";
+ ename = "org-edna";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/org-edna-1.1.1.tar";
+ sha256 = "1hfkdjbjnhbwb27vgs43ywl4kn2lqc037f4xppp2v0s97850za8r";
+ };
+ packageRequires = [ emacs org seq ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/org-edna.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ orgalist = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "orgalist";
+ ename = "orgalist";
+ version = "1.12";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/orgalist-1.12.el";
+ sha256 = "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/orgalist.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ osc = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "osc";
+ ename = "osc";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/osc-0.2.el";
+ sha256 = "1b1ck9kb9mkyd7nlj4cqahsshar6h8mpvqss6n3dp4cl3r6dk1sw";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/osc.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ other-frame-window = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "other-frame-window";
+ ename = "other-frame-window";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/other-frame-window-1.0.6.el";
+ sha256 = "04h0jr73xv8inm52h8b8zbc9lsnlzkn40qy99x4x0lkkdqqxw1ny";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/other-frame-window.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ pabbrev = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "pabbrev";
+ ename = "pabbrev";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/pabbrev-4.2.1.el";
+ sha256 = "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/pabbrev.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ paced = callPackage ({ async, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "paced";
+ ename = "paced";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/paced-1.1.3.tar";
+ sha256 = "1gaszf68h0nnv6p6yzv48m24csw6v479nsq0f02y6slixxaflnwl";
+ };
+ packageRequires = [ async emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/paced.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ parsec = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "parsec";
+ ename = "parsec";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/parsec-0.1.3.tar";
+ sha256 = "032m9iks5a05vbc4159dfs9b7shmqm6mk05jgbs9ndvy400drwd6";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/parsec.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ path-iterator = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "path-iterator";
+ ename = "path-iterator";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/path-iterator-1.0.tar";
+ sha256 = "0kgl7rhv9x23jyr6ahfy6ql447zpz9fnmfwldkpn69g7jdx6a3cc";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/path-iterator.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ peg = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "peg";
+ ename = "peg";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/peg-1.0.tar";
+ sha256 = "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/peg.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ persist = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "persist";
+ ename = "persist";
+ version = "0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/persist-0.4.tar";
+ sha256 = "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/persist.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ phps-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "phps-mode";
+ ename = "phps-mode";
+ version = "0.3.52";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/phps-mode-0.3.52.tar";
+ sha256 = "11783i4raw6z326bqin9g37ig2szbqsma1r0fsdckyn2q6w7nn92";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/phps-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ pinentry = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "pinentry";
+ ename = "pinentry";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/pinentry-0.1.el";
+ sha256 = "0iiw11prk4w32czk69mvc3x6ja9xbhbvpg9b0nidrsg5njjjh76d";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/pinentry.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ poker = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "poker";
+ ename = "poker";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/poker-0.2.el";
+ sha256 = "0sikspimvnzvwhyivi1gvr0630zz2pr3q2fwagl57iv06jas9f00";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/poker.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ posframe = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "posframe";
+ ename = "posframe";
+ version = "0.8.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/posframe-0.8.0.el";
+ sha256 = "1vzaiiw2pxa0zrc2bkaxljpr4035xrh3d8z3l5f0jvp72cnq49kp";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/posframe.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ project = callPackage ({ elpaBuild, emacs, fetchurl, lib, xref }:
+ elpaBuild {
+ pname = "project";
+ ename = "project";
+ version = "0.5.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/project-0.5.1.el";
+ sha256 = "1i15hlrfipsfrdmgh6xzkr6aszgvik3y8j9363qkj654dl04pmz4";
+ };
+ packageRequires = [ emacs xref ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/project.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ psgml = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "psgml";
+ ename = "psgml";
+ version = "1.3.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/psgml-1.3.4.tar";
+ sha256 = "1pgg9g040zsnvilvmwa73wyrvv9xh7gf6w1rkcx57qzg7yq4yaaj";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/psgml.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ pspp-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "pspp-mode";
+ ename = "pspp-mode";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/pspp-mode-1.1.el";
+ sha256 = "1qnwj7r367qs0ykw71c6s96ximgg2wb3hxg5fwsl9q2vfhbh35ca";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/pspp-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ python = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "python";
+ ename = "python";
+ version = "0.26.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/python-0.26.1.el";
+ sha256 = "1dpw2w2nk6ggr8pz293qysjkiya3i7k25i447fbycjil59anzpb3";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/python.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ quarter-plane = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "quarter-plane";
+ ename = "quarter-plane";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/quarter-plane-0.1.el";
+ sha256 = "0hj3asdzf05h8j1fsxx9y71arnprg2xwk2dcb81zj04hzggzpwmm";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/quarter-plane.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ queue = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "queue";
+ ename = "queue";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/queue-0.2.el";
+ sha256 = "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/queue.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ rainbow-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "rainbow-mode";
+ ename = "rainbow-mode";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/rainbow-mode-1.0.5.el";
+ sha256 = "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/rainbow-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ rbit = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "rbit";
+ ename = "rbit";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/rbit-0.1.el";
+ sha256 = "0h0f9jx4xmkbyxk39wibrvnj65b1ylkz4sk4np7qcavfjs6dz3lm";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/rbit.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ rcirc-color = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "rcirc-color";
+ ename = "rcirc-color";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/rcirc-color-0.4.1.el";
+ sha256 = "1zs3i3xr8zbjr8hzr1r1qx7mqb2wckpn25qh9444c9as2dnh9sn9";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/rcirc-color.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ rcirc-menu = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "rcirc-menu";
+ ename = "rcirc-menu";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/rcirc-menu-1.1.el";
+ sha256 = "0w77qlwlmx59v5894i96fldn6x4lliv4ddv8967vq1kfchn4w5mc";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/rcirc-menu.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ realgud = callPackage ({ elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , load-relative
+ , loc-changes
+ , test-simple }:
+ elpaBuild {
+ pname = "realgud";
+ ename = "realgud";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/realgud-1.5.1.tar";
+ sha256 = "01155sydricdvxy3djk64w2zc6x0q4j669bvz8m8rd766wsmida8";
+ };
+ packageRequires = [ emacs load-relative loc-changes test-simple ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/realgud.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ realgud-ipdb = callPackage ({ elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , load-relative
+ , realgud }:
+ elpaBuild {
+ pname = "realgud-ipdb";
+ ename = "realgud-ipdb";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/realgud-ipdb-1.0.0.tar";
+ sha256 = "1ljh2igm6na92jdvnn4f51019v3klc6k03nayxf6qxzaxwq2w254";
+ };
+ packageRequires = [ emacs load-relative realgud ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/realgud-ipdb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ realgud-jdb = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , load-relative
+ , realgud }:
+ elpaBuild {
+ pname = "realgud-jdb";
+ ename = "realgud-jdb";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/realgud-jdb-1.0.0.tar";
+ sha256 = "081lqsxbg6cxv8hz8s0z2gbdif9drp5b0crbixmwf164i4h8l4gc";
+ };
+ packageRequires = [ cl-lib emacs load-relative realgud ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/realgud-jdb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ realgud-lldb = callPackage ({ elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , load-relative
+ , realgud }:
+ elpaBuild {
+ pname = "realgud-lldb";
+ ename = "realgud-lldb";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/realgud-lldb-1.0.2.tar";
+ sha256 = "0nqbvknhvw5lwf4i44q8wvh4y4s9mvs5kn7lskg3xicl464ag1d0";
+ };
+ packageRequires = [ emacs load-relative realgud ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/realgud-lldb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ realgud-node-debug = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , load-relative
+ , realgud }:
+ elpaBuild {
+ pname = "realgud-node-debug";
+ ename = "realgud-node-debug";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/realgud-node-debug-1.0.0.tar";
+ sha256 = "1wyh6apy289a3qa1bnwv68x8pjkpqy4m18ygqnr4x759hjkq3nir";
+ };
+ packageRequires = [ cl-lib emacs load-relative realgud ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/realgud-node-debug.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ realgud-node-inspect = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , load-relative
+ , realgud }:
+ elpaBuild {
+ pname = "realgud-node-inspect";
+ ename = "realgud-node-inspect";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/realgud-node-inspect-1.0.0.tar";
+ sha256 = "16cx0rq4zx5k0y75j044dbqzrzs1df3r95rissmhfgsi5m2qf1h2";
+ };
+ packageRequires = [ cl-lib emacs load-relative realgud ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/realgud-node-inspect.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ realgud-trepan-ni = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , load-relative
+ , realgud }:
+ elpaBuild {
+ pname = "realgud-trepan-ni";
+ ename = "realgud-trepan-ni";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/realgud-trepan-ni-1.0.1.tar";
+ sha256 = "0vakfzlk4pgqi66mdvwqhzgdsnks6clgnj7cjjbi80v3ipkfdnak";
+ };
+ packageRequires = [ cl-lib emacs load-relative realgud ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/realgud-trepan-ni.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ register-list = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "register-list";
+ ename = "register-list";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/register-list-0.1.el";
+ sha256 = "1azgfm4yvhp2bqqplmfbz1fij8gda527lks82bslnpnabd8m6sjh";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/register-list.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ relint = callPackage ({ elpaBuild, emacs, fetchurl, lib, xr }:
+ elpaBuild {
+ pname = "relint";
+ ename = "relint";
+ version = "1.18";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/relint-1.18.tar";
+ sha256 = "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci";
+ };
+ packageRequires = [ emacs xr ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/relint.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ rich-minority = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "rich-minority";
+ ename = "rich-minority";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/rich-minority-1.0.1.el";
+ sha256 = "1pr89k3jz044vf582klphl1zf0r7hj2g7ga8j1dwbrpr9ngiicgc";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/rich-minority.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ rnc-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "rnc-mode";
+ ename = "rnc-mode";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/rnc-mode-0.2.el";
+ sha256 = "0xhvcfqjkb010wc7r218xcjidv1c8597vayyv09vk97z4qxqkrbd";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/rnc-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ rt-liberation = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "rt-liberation";
+ ename = "rt-liberation";
+ version = "1.31";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/rt-liberation-1.31.tar";
+ sha256 = "0qqqqwdkb0h8137rqsr08179skl1475cg4hl7a987rmccys0j83c";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/rt-liberation.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ rudel = callPackage ({ cl-generic
+ , cl-lib ? null
+ , cl-print
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "rudel";
+ ename = "rudel";
+ version = "0.3.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/rudel-0.3.1.tar";
+ sha256 = "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz";
+ };
+ packageRequires = [ cl-generic cl-lib cl-print emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/rudel.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ scanner = callPackage ({ dash, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "scanner";
+ ename = "scanner";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/scanner-0.1.tar";
+ sha256 = "0hv4w7yzfdnz8vrfhw6i6agj9hs09vzsqr63nrp6dd93q0gk71mw";
+ };
+ packageRequires = [ dash emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/scanner.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ scroll-restore = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "scroll-restore";
+ ename = "scroll-restore";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/scroll-restore-1.0.el";
+ sha256 = "0h55szlmkmzmcvd6gvv8l74n7y64i0l78nwwmq7xsbzprlmj6khn";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/scroll-restore.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ sed-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "sed-mode";
+ ename = "sed-mode";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/sed-mode-1.0.el";
+ sha256 = "1zpdai5k9zhy5hw0a5zx7qv3rcf8cn29hncfjnhk9k6sjq0302lg";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/sed-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ seq = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "seq";
+ ename = "seq";
+ version = "2.20";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/seq-2.20.tar";
+ sha256 = "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/seq.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ shelisp = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "shelisp";
+ ename = "shelisp";
+ version = "0.9.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/shelisp-0.9.1.el";
+ sha256 = "15z8rpx8nhx53q77z5fqcpww255di80lb5mm28mnn2myalrr8b59";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/shelisp.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ shen-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "shen-mode";
+ ename = "shen-mode";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/shen-mode-0.1.tar";
+ sha256 = "1dr24kkah4hr6vrfxwhl9vzjnwn4n773bw23c3j9bkmlgnbvn0kz";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/shen-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ sisu-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "sisu-mode";
+ ename = "sisu-mode";
+ version = "7.1.8";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/sisu-mode-7.1.8.el";
+ sha256 = "12zs6y4rzng1d7djl9wh3wc0f9fj0bqb7h754rvixvndlr5c10nj";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/sisu-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ sm-c-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "sm-c-mode";
+ ename = "sm-c-mode";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/sm-c-mode-1.0.el";
+ sha256 = "1lq65dhcvrh6ybla37lvni7wmbjb5nhm75ja9cl79148da1zrg91";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/sm-c-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ smalltalk-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "smalltalk-mode";
+ ename = "smalltalk-mode";
+ version = "3.2.92";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/smalltalk-mode-3.2.92.tar";
+ sha256 = "0zlp1pk88m1gybhnvcmm0bhrj6zvnjzhc26r1i4d56pyh6vwivfj";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/smalltalk-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ smart-yank = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "smart-yank";
+ ename = "smart-yank";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/smart-yank-0.1.1.el";
+ sha256 = "1v7hbn8pl4bzal31m132dn04rgsgjjcc7k2knd1jqzk1wq6azpdn";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/smart-yank.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ sml-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "sml-mode";
+ ename = "sml-mode";
+ version = "6.10";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/sml-mode-6.10.el";
+ sha256 = "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/sml-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ so-long = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "so-long";
+ ename = "so-long";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/so-long-1.0.el";
+ sha256 = "00z9gnxz32rakd0k7lqaj050fwmqzq5vr9d6rb7ji3fn01rjp7kj";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/so-long.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ soap-client = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "soap-client";
+ ename = "soap-client";
+ version = "3.1.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/soap-client-3.1.5.tar";
+ sha256 = "0nnf075ywxmsfd6vmzk2yg3khx6sycl5l6qrgp5rqqmw0wzhxlh0";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/soap-client.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ sokoban = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "sokoban";
+ ename = "sokoban";
+ version = "1.4.8";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/sokoban-1.4.8.tar";
+ sha256 = "1w3vrkg239x1saqka21zbl380fxqmbz3lr7820spxd8p5w9v55pn";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/sokoban.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ sotlisp = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "sotlisp";
+ ename = "sotlisp";
+ version = "1.6.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/sotlisp-1.6.2.el";
+ sha256 = "05cr4dmhg4wbmw7jbcfh0yrnbq6dhzp2wrbzvhwrfznz51j03nhi";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/sotlisp.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ spinner = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "spinner";
+ ename = "spinner";
+ version = "1.7.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/spinner-1.7.3.el";
+ sha256 = "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/spinner.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ sql-indent = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "sql-indent";
+ ename = "sql-indent";
+ version = "1.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/sql-indent-1.5.tar";
+ sha256 = "07k5rn9hbxppnka7nq0a3a6zyqqa1hp8j6qrb344js6zyak0cb63";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/sql-indent.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ssh-deploy = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "ssh-deploy";
+ ename = "ssh-deploy";
+ version = "3.1.11";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ssh-deploy-3.1.11.tar";
+ sha256 = "1xd09kfn7lqw6jzfkrn0p5agdpcz1z9zbazqigylpqfcywr5snhk";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ssh-deploy.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ stream = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "stream";
+ ename = "stream";
+ version = "2.2.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/stream-2.2.5.tar";
+ sha256 = "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/stream.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ svg = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "svg";
+ ename = "svg";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/svg-1.0.el";
+ sha256 = "1hh0x7sz2rqb7zdhcm2q9knr8nnwqrsbz1zfp29k8l1318li9f62";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/svg.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ svg-clock = callPackage ({ elpaBuild, emacs, fetchurl, lib, svg }:
+ elpaBuild {
+ pname = "svg-clock";
+ ename = "svg-clock";
+ version = "1.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/svg-clock-1.2.el";
+ sha256 = "15pmj07wnlcpv78av9qpnbfwdjlkf237vib8smpa7nvyikdfszfr";
+ };
+ packageRequires = [ emacs svg ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/svg-clock.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ swiper = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib }:
+ elpaBuild {
+ pname = "swiper";
+ ename = "swiper";
+ version = "0.13.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/swiper-0.13.1.el";
+ sha256 = "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y";
+ };
+ packageRequires = [ emacs ivy ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/swiper.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ system-packages = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "system-packages";
+ ename = "system-packages";
+ version = "1.0.11";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/system-packages-1.0.11.tar";
+ sha256 = "0xf2q5bslxpw0wycgi2k983lnfpw182rgdzq0f99f64kb7ifns9y";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/system-packages.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ tNFA = callPackage ({ elpaBuild, fetchurl, lib, queue }:
+ elpaBuild {
+ pname = "tNFA";
+ ename = "tNFA";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/tNFA-0.1.1.el";
+ sha256 = "01n4p8lg8f2k55l2z77razb2sl202qisjqm5lff96a2kxnxinsds";
+ };
+ packageRequires = [ queue ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/tNFA.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ temp-buffer-browse = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "temp-buffer-browse";
+ ename = "temp-buffer-browse";
+ version = "1.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/temp-buffer-browse-1.5.el";
+ sha256 = "1drfvqxc6g4vfijmx787b1ygq7x2s5wq26l45qnz4wdrqqmcqx3c";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/temp-buffer-browse.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ test-simple = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "test-simple";
+ ename = "test-simple";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/test-simple-1.3.0.el";
+ sha256 = "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/test-simple.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ timerfunctions = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "timerfunctions";
+ ename = "timerfunctions";
+ version = "1.4.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/timerfunctions-1.4.2.el";
+ sha256 = "122q8nv08pz1mkgilvi9qfrs7rsnc5picr7jyz2jpnvpd9qw6jw5";
+ };
+ packageRequires = [ cl-lib emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/timerfunctions.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ tiny = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "tiny";
+ ename = "tiny";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/tiny-0.2.1.tar";
+ sha256 = "1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/tiny.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ tramp = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "tramp";
+ ename = "tramp";
+ version = "2.4.4.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/tramp-2.4.4.1.tar";
+ sha256 = "0jayd75yscaqvg6y0m6g2mgbjswyj5gqdij2az9g0j18vm5vbqy3";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/tramp.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ tramp-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "tramp-theme";
+ ename = "tramp-theme";
+ version = "0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/tramp-theme-0.2.el";
+ sha256 = "1q1j0vcdyv5gnfbnfl08rnwd5j4ayc1gi1vpinr99ny70wsv7gbf";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/tramp-theme.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ transcribe = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "transcribe";
+ ename = "transcribe";
+ version = "1.5.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/transcribe-1.5.2.el";
+ sha256 = "08m1n6adab46bfywm47gygswf10vnxcfh16yjxglvcsg4prkn2vh";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/transcribe.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }:
+ elpaBuild {
+ pname = "trie";
+ ename = "trie";
+ version = "0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/trie-0.4.el";
+ sha256 = "0869fh3bghxil94wd9vgbb5bk1hx2qkh75vbvp0psmcima8dgzgw";
+ };
+ packageRequires = [ heap tNFA ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/trie.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ undo-tree = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "undo-tree";
+ ename = "undo-tree";
+ version = "0.7.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/undo-tree-0.7.4.el";
+ sha256 = "018ixl802f076sfyf4gkacpgrdpybin88jd8vq9zgyvc6x2dalfa";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/undo-tree.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ uni-confusables = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "uni-confusables";
+ ename = "uni-confusables";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/uni-confusables-0.1.tar";
+ sha256 = "0s3scvzhd4bggk0qafcspf97cmcvdw3w8bbf5ark4p22knvg80zp";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/uni-confusables.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ uniquify-files = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "uniquify-files";
+ ename = "uniquify-files";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/uniquify-files-1.0.3.tar";
+ sha256 = "04yfys615ncz3jyh3hx5sg6x6szx028223184zv52skb4j99vkwq";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/uniquify-files.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ url-http-ntlm = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , fetchurl
+ , lib
+ , ntlm ? null }:
+ elpaBuild {
+ pname = "url-http-ntlm";
+ ename = "url-http-ntlm";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/url-http-ntlm-2.0.4.el";
+ sha256 = "1cakq2ykraci7d1gl8rnpv4f2f5ffyaidhqb1282g7i72adwmb98";
+ };
+ packageRequires = [ cl-lib ntlm ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/url-http-ntlm.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ validate = callPackage ({ cl-lib ? null
+ , elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , seq }:
+ elpaBuild {
+ pname = "validate";
+ ename = "validate";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/validate-1.0.4.el";
+ sha256 = "0vksssk98hcnz804g62k8kika13argf6p7bx8rf9hwidvzdsv6mi";
+ };
+ packageRequires = [ cl-lib emacs seq ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/validate.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ vcard = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "vcard";
+ ename = "vcard";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/vcard-0.1.tar";
+ sha256 = "1awcm2s292r2nkyz5bwjaga46jsh5rn92469wrg1ag843mlyxbd0";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/vcard.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ vcl-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "vcl-mode";
+ ename = "vcl-mode";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/vcl-mode-1.1.el";
+ sha256 = "1r70pmvr95k5f2xphvhliqvyh7al0qabm7wvkamximcssvs38q1h";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/vcl-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ vdiff = callPackage ({ elpaBuild, emacs, fetchurl, hydra, lib }:
+ elpaBuild {
+ pname = "vdiff";
+ ename = "vdiff";
+ version = "0.2.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/vdiff-0.2.3.el";
+ sha256 = "197wszzhm2kbfvvlg3f0dzfs3lf4536yq5fd67k2rycj421fr9qz";
+ };
+ packageRequires = [ emacs hydra ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/vdiff.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ verilog-mode = callPackage ({ elpaBuild
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "verilog-mode";
+ ename = "verilog-mode";
+ version = "2020.6.27.14326051";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/verilog-mode-2020.6.27.14326051.el";
+ sha256 = "194gn8cj01jb9xcl0qq3gq6mzxfdyn459ysb35fnib7pcnafm188";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/verilog-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ vigenere = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "vigenere";
+ ename = "vigenere";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/vigenere-1.0.el";
+ sha256 = "1i5s6h1nngcp74gf53dw9pvj5y0ywk9j8pyvkfr7gqq49bz22hmm";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/vigenere.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ visual-filename-abbrev = callPackage ({ elpaBuild
+ , emacs
+ , fetchurl
+ , lib }:
+ elpaBuild {
+ pname = "visual-filename-abbrev";
+ ename = "visual-filename-abbrev";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/visual-filename-abbrev-1.0.el";
+ sha256 = "086cmyv08jd3qadjrd14b7c932i8msxjdvxxa36pyac18d3i50kj";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/visual-filename-abbrev.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ visual-fill = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "visual-fill";
+ ename = "visual-fill";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/visual-fill-0.1.el";
+ sha256 = "1y4xqcr1am74y9jy7kdkjigvx7h3208si5lm4p6a0kzxa3xizhvx";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/visual-fill.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ vlf = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "vlf";
+ ename = "vlf";
+ version = "1.7.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/vlf-1.7.1.tar";
+ sha256 = "0cnwxk20573iqkwk0c0h7pyjk0rkr8l2qd0xmyqj8mvdxjb8nnkz";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/vlf.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ w3 = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "w3";
+ ename = "w3";
+ version = "4.0.49";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/w3-4.0.49.tar";
+ sha256 = "01n334b3gwx288xysa1vxsvb14avsz3syfigw85i7m5nizhikqbb";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/w3.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ wcheck-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "wcheck-mode";
+ ename = "wcheck-mode";
+ version = "2019.6.17";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/wcheck-mode-2019.6.17.el";
+ sha256 = "0579a3p9swq0j0fca9s885kzv69y9lhhnqa6m4pzdgrr6pfrirqv";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/wcheck-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ wconf = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "wconf";
+ ename = "wconf";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/wconf-0.2.1.el";
+ sha256 = "13p1xycp3mcrg8jv65mcyqvln4h7awhjz35dzr5bi86zb824ryxf";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/wconf.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ web-server = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "web-server";
+ ename = "web-server";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/web-server-0.1.2.tar";
+ sha256 = "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/web-server.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ webfeeder = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "webfeeder";
+ ename = "webfeeder";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/webfeeder-1.0.0.tar";
+ sha256 = "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/webfeeder.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ websocket = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "websocket";
+ ename = "websocket";
+ version = "1.12";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/websocket-1.12.tar";
+ sha256 = "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/websocket.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ which-key = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "which-key";
+ ename = "which-key";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/which-key-3.3.0.tar";
+ sha256 = "0436hvqdn2jafgfwdr0m9mwz8k2swl661xnrkypyrwg66j9wi1qz";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/which-key.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ windower = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "windower";
+ ename = "windower";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/windower-0.0.1.el";
+ sha256 = "19xizbfbnzhhmhlqy20ir1a1y87bjwrq67bcawxy6nxpkwbizsv7";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/windower.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ windresize = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "windresize";
+ ename = "windresize";
+ version = "0.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/windresize-0.1.el";
+ sha256 = "0b5bfs686nkp7s05zgfqvr1mpagmkd74j1grq8kp2w9arj0qfi3x";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/windresize.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ wisi = callPackage ({ elpaBuild, emacs, fetchurl, lib, seq }:
+ elpaBuild {
+ pname = "wisi";
+ ename = "wisi";
+ version = "3.1.3";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/wisi-3.1.3.tar";
+ sha256 = "0cbjcm35lp164wd06mn3clikga07qxfsfnkvadswsapsd0cn2b4k";
+ };
+ packageRequires = [ emacs seq ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/wisi.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ wisitoken-grammar-mode = callPackage ({ elpaBuild
+ , emacs
+ , fetchurl
+ , lib
+ , mmm-mode
+ , wisi }:
+ elpaBuild {
+ pname = "wisitoken-grammar-mode";
+ ename = "wisitoken-grammar-mode";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/wisitoken-grammar-mode-1.2.0.tar";
+ sha256 = "0isxmpwys148djjymszdm5nisqjp9xff8kad45l4cpb3c717vsjw";
+ };
+ packageRequires = [ emacs mmm-mode wisi ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/wisitoken-grammar-mode.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ wpuzzle = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "wpuzzle";
+ ename = "wpuzzle";
+ version = "1.1";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/wpuzzle-1.1.el";
+ sha256 = "1wjg411dc0fvj2n8ak73igfrzc31nizzvvr2qa87fhq99bgh62kj";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/wpuzzle.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ xclip = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "xclip";
+ ename = "xclip";
+ version = "1.10";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/xclip-1.10.el";
+ sha256 = "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/xclip.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ xelb = callPackage ({ cl-generic, elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "xelb";
+ ename = "xelb";
+ version = "0.18";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/xelb-0.18.tar";
+ sha256 = "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7";
+ };
+ packageRequires = [ cl-generic emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/xelb.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ xpm = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "xpm";
+ ename = "xpm";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/xpm-1.0.4.tar";
+ sha256 = "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/xpm.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ xr = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "xr";
+ ename = "xr";
+ version = "1.19";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/xr-1.19.tar";
+ sha256 = "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/xr.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ xref = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+ elpaBuild {
+ pname = "xref";
+ ename = "xref";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/xref-1.0.2.el";
+ sha256 = "156rfwdihb3vz31iszbmby16spqswyf69nhl3r2cp6jzkgwzc1d8";
+ };
+ packageRequires = [ emacs ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/xref.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ yasnippet = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "yasnippet";
+ ename = "yasnippet";
+ version = "0.14.0";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/yasnippet-0.14.0.tar";
+ sha256 = "1lbil3dyz43nmr2lvx9vhpybqynpb7shg7m1xl1f7j4vm4dh0r08";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/yasnippet.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ yasnippet-classic-snippets = callPackage ({ elpaBuild
+ , fetchurl
+ , lib
+ , yasnippet }:
+ elpaBuild {
+ pname = "yasnippet-classic-snippets";
+ ename = "yasnippet-classic-snippets";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/yasnippet-classic-snippets-1.0.2.tar";
+ sha256 = "1kk1sf9kgj6qp3z2d9nbswigl444sqq11pdrhx0gny2jsgi3283l";
+ };
+ packageRequires = [ yasnippet ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/yasnippet-classic-snippets.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ zones = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "zones";
+ ename = "zones";
+ version = "2019.7.13";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/zones-2019.7.13.el";
+ sha256 = "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/zones.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ ztree = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "ztree";
+ ename = "ztree";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://elpa.gnu.org/packages/ztree-1.0.5.tar";
+ sha256 = "14pbbsyav1dzz8m8waqdcmcx9bhw5g8m2kh1ahpxc3i2lfhdan1x";
+ };
+ packageRequires = [ cl-lib ];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/ztree.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ } \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix
new file mode 100644
index 000000000000..57f5d7b85941
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix
@@ -0,0 +1,62 @@
+/*
+
+# Updating
+
+To update the list of packages from MELPA,
+
+1. Run `./update-elpa`.
+2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacsPackagesNg.elpaPackages`.
+3. `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix`
+
+## Update from overlay
+
+Alternatively, run the following command:
+
+./update-from-overlay
+
+It will update both melpa and elpa packages using
+https://github.com/nix-community/emacs-overlay. It's almost
+instantenous and formats commits for you.
+
+*/
+
+{ lib, stdenv, texinfo }:
+
+self: let
+
+ markBroken = pkg: pkg.override {
+ elpaBuild = args: self.elpaBuild (args // {
+ meta = (args.meta or {}) // { broken = true; };
+ });
+ };
+
+ elpaBuild = import ../../../build-support/emacs/elpa.nix {
+ inherit lib stdenv texinfo;
+ inherit (self) emacs;
+ };
+
+ generateElpa = lib.makeOverridable ({
+ generated ? ./elpa-generated.nix
+ }: let
+
+ imported = import generated {
+ inherit (self) callPackage;
+ };
+
+ super = removeAttrs imported [ "dash" ];
+
+ overrides = {
+ rcirc-menu = markBroken super.rcirc-menu; # Missing file header
+ cl-lib = null; # builtin
+ tle = null; # builtin
+ advice = null; # builtin
+ seq = if lib.versionAtLeast self.emacs.version "27"
+ then null
+ else super.seq;
+ };
+
+ elpaPackages = super // overrides;
+
+ in elpaPackages // { inherit elpaBuild; });
+
+in generateElpa { }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/emacs2nix.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/emacs2nix.nix
new file mode 100644
index 000000000000..852f395c4a22
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/emacs2nix.nix
@@ -0,0 +1,23 @@
+let
+ pkgs = import ../../../.. { };
+
+ src = pkgs.fetchgit {
+ url = "https://github.com/ttuegel/emacs2nix.git";
+ fetchSubmodules = true;
+ rev = "d4c52a7b22b0622aecf0b0d59941a4a2b250617c";
+ sha256 = "133m0bmm8ahy0jbappgcdjqppkpxf5s9wg4gg254afx3f7yfqzbh";
+ };
+
+in pkgs.mkShell {
+
+ buildInputs = [
+ pkgs.bash
+ ];
+
+ EMACS2NIX = src;
+
+ shellHook = ''
+ export PATH=$PATH:${src}
+ '';
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/emacspeak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/emacspeak/default.nix
new file mode 100644
index 000000000000..f2ae3712cac4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/emacspeak/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, makeWrapper, emacs, tcl, tclx, espeak-ng, lib }:
+
+stdenv.mkDerivation rec {
+ pname = "emacspeak";
+ version = "51.0";
+
+ src = fetchurl {
+ url = "https://github.com/tvraman/emacspeak/releases/download/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "09a0ywxlqa8jmc0wmvhaf7bdydnkyhy9nqfsdqcpbsgdzj6qpg90";
+ };
+
+ nativeBuildInputs = [ makeWrapper emacs ];
+ buildInputs = [ tcl tclx espeak-ng ];
+
+ preConfigure = ''
+ make config
+ '';
+
+ postBuild = ''
+ make -C servers/native-espeak PREFIX=$out "TCL_INCLUDE=${tcl}/include"
+ '';
+
+ postInstall = ''
+ make -C servers/native-espeak PREFIX=$out install
+ local d=$out/share/emacs/site-lisp/emacspeak/
+ install -d -- "$d"
+ cp -a . "$d"
+ find "$d" \( -type d -or \( -type f -executable \) \) -execdir chmod 755 {} +
+ find "$d" -type f -not -executable -execdir chmod 644 {} +
+ makeWrapper ${emacs}/bin/emacs $out/bin/emacspeak \
+ --set DTK_PROGRAM "${espeak-ng}/bin/espeak" \
+ --add-flags '-l "${placeholder "out"}/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.elc"'
+ '';
+
+ meta = {
+ homepage = "https://github.com/tvraman/emacspeak/";
+ description = "Emacs extension that provides spoken output";
+ license = lib.licenses.gpl2;
+ maintainers = [ ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix
new file mode 100644
index 000000000000..5beaed582407
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation {
+ name = "ess-R-object-popup-20130302";
+
+ src = fetchgit {
+ url = "https://github.com/myuhe/ess-R-object-popup.el.git";
+ rev = "7e1f601bfba72de0fda44d9c82f96028ecbb9948";
+ sha256 = "0q8pbaa6wahli6fh0kng5zmnypsxi1fr2bzs2mfk3h8vf4nikpv0";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/emacs/site-lisp
+ cp *.el *.elc $out/share/emacs/site-lisp/
+ '';
+
+ meta = {
+ description = "Popup descriptions of R objects";
+ homepage = "https://github.com/myuhe/ess-R-object-popup.el";
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix
new file mode 100644
index 000000000000..fdb28f447192
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix
@@ -0,0 +1,19 @@
+{ fetchurl, lib, melpaBuild, writeText }:
+
+melpaBuild {
+ pname = "font-lock+";
+ version = "20180101.25";
+
+ src = fetchurl {
+ url = "https://www.emacswiki.org/emacs/download/font-lock%2b.el?revision=25";
+ sha256 = "0197yzn4hbjmw5h3m08264b7zymw63pdafph5f3yzfm50q8p7kp4";
+ name = "font-lock+.el";
+ };
+
+ recipe = writeText "recipe" "(font-lock+ :fetcher github :repo \"\")";
+
+ meta = {
+ homepage = "https://melpa.org/#/font-lock+";
+ license = lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix
new file mode 100644
index 000000000000..00879463276c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation {
+ name = "helm-words-20190917";
+
+ src = fetchgit {
+ url = "https://github.com/pronobis/helm-words.git";
+ rev = "e6387ece1940a06695b9d910de3d90252efb8d29";
+ sha256 = "1ly0mbzlgc26fqvf7rxpmy698g0cf9qldrwrx022ar6r68l1h7xf";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/emacs/site-lisp
+ cp *.el *.elc $out/share/emacs/site-lisp/
+ '';
+
+ meta = {
+ description = "Emacs major mode for jade and stylus";
+ homepage = "https://github.com/brianc/helm-words";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix
new file mode 100644
index 000000000000..6c2db85d7942
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, emacs }:
+
+# this package installs the emacs-mode which
+# resides in the hsc3 sources.
+
+let version = "0.15";
+
+in stdenv.mkDerivation {
+ pname = "hsc3-mode";
+ inherit version;
+ src = fetchurl {
+ url = "mirror://hackage/hsc3-0.15/hsc3-0.15.tar.gz";
+ sha256 = "2f3b15655419cf8ebe25ab1c6ec22993b2589b4ffca7c3a75ce478ca78a0bde6";
+ };
+
+ buildInputs = [ emacs ];
+
+ installPhase = ''
+ mkdir -p "$out/share/emacs/site-lisp"
+ cp "emacs/hsc3.el" "$out/share/emacs/site-lisp"
+ '';
+
+ meta = {
+ homepage = "http://rd.slavepianos.org/?t=hsc3";
+ description = "hsc3 mode package for Emacs";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix
new file mode 100644
index 000000000000..eaa0f2c2a5b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, emacs }:
+
+let
+ version = "3.6-4-gb659bf8";
+in
+stdenv.mkDerivation {
+ pname = "ido-ubiquitous";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "DarwinAwardWinner";
+ repo = "ido-ubiquitous";
+ rev = version;
+ sha256 = "06r8qpfr60gc673w881m0nplj91b6bfw77bxgl6irz1z9bp7cc4y";
+ };
+
+ buildInputs = [ emacs ];
+
+ buildPhase = ''
+ emacs -L . --batch -f batch-byte-compile *.el
+ '';
+
+ installPhase = ''
+ install -d $out/share/emacs/site-lisp
+ install *.el *.elc $out/share/emacs/site-lisp
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/libgenerated.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/libgenerated.nix
new file mode 100644
index 000000000000..2ddafc4796c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/libgenerated.nix
@@ -0,0 +1,95 @@
+lib: self:
+
+let
+
+ fetcherGenerators = { repo ? null
+ , url ? null
+ , ... }:
+ { sha256
+ , commit
+ , ...}: {
+ github = self.callPackage ({ fetchFromGitHub }:
+ fetchFromGitHub {
+ owner = lib.head (lib.splitString "/" repo);
+ repo = lib.head (lib.tail (lib.splitString "/" repo));
+ rev = commit;
+ inherit sha256;
+ }
+ ) {};
+ gitlab = self.callPackage ({ fetchFromGitLab }:
+ fetchFromGitLab {
+ owner = lib.head (lib.splitString "/" repo);
+ repo = lib.head (lib.tail (lib.splitString "/" repo));
+ rev = commit;
+ inherit sha256;
+ }
+ ) {};
+ git = self.callPackage ({ fetchgit }:
+ (fetchgit {
+ rev = commit;
+ inherit sha256 url;
+ }).overrideAttrs(_: {
+ GIT_SSL_NO_VERIFY = true;
+ })
+ ) {};
+ bitbucket = self.callPackage ({ fetchhg }:
+ fetchhg {
+ rev = commit;
+ url = "https://bitbucket.com/${repo}";
+ inherit sha256;
+ }
+ ) {};
+ hg = self.callPackage ({ fetchhg }:
+ fetchhg {
+ rev = commit;
+ inherit sha256 url;
+ }
+ ) {};
+ };
+
+in {
+
+ melpaDerivation = variant:
+ { ename, fetcher
+ , commit ? null
+ , sha256 ? null
+ , ... }@args:
+ let
+ sourceArgs = args.${variant};
+ version = sourceArgs.version or null;
+ deps = sourceArgs.deps or null;
+ error = sourceArgs.error or args.error or null;
+ hasSource = lib.hasAttr variant args;
+ pname = builtins.replaceStrings [ "@" ] [ "at" ] ename;
+ broken = ! isNull error;
+ in
+ if hasSource then
+ lib.nameValuePair ename (
+ self.callPackage ({ melpaBuild, fetchurl, ... }@pkgargs:
+ melpaBuild {
+ inherit pname;
+ ename = ename;
+ version = if isNull version then "" else
+ lib.concatStringsSep "." (map toString version);
+ # TODO: Broken should not result in src being null (hack to avoid eval errors)
+ src = if (isNull sha256 || broken) then null else
+ lib.getAttr fetcher (fetcherGenerators args sourceArgs);
+ recipe = if isNull commit then null else
+ fetchurl {
+ name = pname + "-recipe";
+ url = "https://raw.githubusercontent.com/melpa/melpa/${commit}/recipes/${ename}";
+ inherit sha256;
+ };
+ packageRequires = lib.optionals (! isNull deps)
+ (map (dep: pkgargs.${dep} or self.${dep} or null)
+ deps);
+ meta = (sourceArgs.meta or {}) // {
+ inherit broken;
+ };
+ }
+ ) {}
+ )
+ else
+ null;
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix
new file mode 100644
index 000000000000..dfe287a7f402
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix
@@ -0,0 +1,177 @@
+{ lib, external, pkgs }: self: with self; with lib.licenses; {
+
+ elisp-ffi = melpaBuild rec {
+ pname = "elisp-ffi";
+ version = "1.0.0";
+ src = pkgs.fetchFromGitHub {
+ owner = "skeeto";
+ repo = "elisp-ffi";
+ rev = version;
+ sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22";
+ };
+ buildInputs = [ external.libffi ];
+ preBuild = "make";
+ recipe = pkgs.writeText "recipe" ''
+ (elisp-ffi
+ :repo "skeeto/elisp-ffi"
+ :fetcher github
+ :files ("ffi-glue" "ffi.el"))
+ '';
+ meta = {
+ description = "Emacs Lisp Foreign Function Interface";
+ longDescription = ''
+ This library provides an FFI for Emacs Lisp so that Emacs
+ programs can invoke functions in native libraries. It works by
+ driving a subprocess to do the heavy lifting, passing result
+ values on to Emacs.
+ '';
+ license = publicDomain;
+ };
+ };
+
+ agda2-mode = with external; trivialBuild {
+ pname = "agda-mode";
+ version = Agda.version;
+
+ phases = [ "buildPhase" "installPhase" ];
+
+ # already byte-compiled by Agda builder
+ buildPhase = ''
+ agda=`${Agda}/bin/agda-mode locate`
+ cp `dirname $agda`/*.el* .
+ '';
+
+ meta = {
+ description = "Agda2-mode for Emacs extracted from Agda package";
+ longDescription = ''
+ Wrapper packages that liberates init.el from `agda-mode locate` magic.
+ Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el.
+ '';
+ homepage = Agda.meta.homepage;
+ license = Agda.meta.license;
+ };
+ };
+
+ agda-input = self.trivialBuild {
+ pname = "agda-input";
+
+ inherit (external.Agda) src version;
+
+ postUnpack = "mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot";
+
+ meta = {
+ description = "Standalone package providing the agda-input method without building Agda.";
+ inherit (external.Agda.meta) homepage license;
+ };
+ };
+
+ emacspeak = callPackage ./emacspeak {};
+
+ ess-R-object-popup =
+ callPackage ./ess-R-object-popup { };
+
+ font-lock-plus = callPackage ./font-lock-plus { };
+
+ ghc-mod = melpaBuild {
+ pname = "ghc";
+ version = external.ghc-mod.version;
+ src = external.ghc-mod.src;
+ packageRequires = [ haskell-mode ];
+ propagatedUserEnvPkgs = [ external.ghc-mod ];
+ recipe = pkgs.writeText "recipe" ''
+ (ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el"))
+ '';
+ fileSpecs = [ "elisp/*.el" ];
+ meta = {
+ description = "An extension of haskell-mode that provides completion of symbols and documentation browsing";
+ license = bsd3;
+ };
+ };
+
+ haskell-unicode-input-method = melpaBuild {
+ pname = "emacs-haskell-unicode-input-method";
+ version = "20110905.2307";
+ src = pkgs.fetchFromGitHub {
+ owner = "roelvandijk";
+ repo = "emacs-haskell-unicode-input-method";
+ rev = "d8d168148c187ed19350bb7a1a190217c2915a63";
+ sha256 = "09b7bg2s9aa4s8f2kdqs4xps3jxkq5wsvbi87ih8b6id38blhf78";
+ };
+ recipe = pkgs.writeText "recipe" ''
+ (emacs-haskell-unicode-input-method
+ :repo "roelvandijk/emacs-haskell-unicode-input-method"
+ :fetcher github)
+ '';
+ packageRequires = [];
+ meta = {
+ homepage = "https://melpa.org/#haskell-unicode-input-method/";
+ license = lib.licenses.free;
+ };
+ };
+
+ helm-words = callPackage ./helm-words { };
+
+ org-mac-link =
+ callPackage ./org-mac-link { };
+
+ perl-completion =
+ callPackage ./perl-completion { };
+
+ pod-mode = callPackage ./pod-mode { };
+
+ railgun = callPackage ./railgun { };
+
+ structured-haskell-mode = self.shm;
+
+ sv-kalender = callPackage ./sv-kalender { };
+
+ tramp = callPackage ./tramp { };
+
+ zeitgeist = callPackage ./zeitgeist { };
+
+ # From old emacsPackages (pre emacsPackagesNg)
+ cedet = callPackage ./cedet { };
+ cedille = callPackage ./cedille { cedille = pkgs.cedille; };
+ colorThemeSolarized = callPackage ./color-theme-solarized { };
+ emacsSessionManagement = callPackage ./session-management-for-emacs { };
+ hsc3-mode = callPackage ./hsc3 { };
+ ido-ubiquitous = callPackage ./ido-ubiquitous { };
+ prolog-mode = callPackage ./prolog { };
+ rectMark = callPackage ./rect-mark { };
+ sunriseCommander = callPackage ./sunrise-commander { };
+
+ # Legacy aliases, these try to mostly map to melpa stable because it's
+ # closer to the old outdated package infra.
+ #
+ # Ideally this should be dropped some time during/after 20.03
+ bbdb3 = self.melpaStablePackages.bbdb;
+ jade = self.jade-mode;
+ # scalaMode2 = null; # No clear mapping as of now
+ flymakeCursor = self.melpaStablePackages.flymake-cursor;
+ cryptol = self.melpaStablePackages.cryptol-mode;
+ maudeMode = self.maude-mode;
+ phpMode = self.melpaStablePackages.php-mode;
+ idris = self.melpaStablePackages.idris-mode;
+ rainbowDelimiters = self.melpaStablePackages.rainbow-delimiters;
+ colorTheme = self.color-theme;
+ sbtMode = self.melpaStablePackages.sbt-mode;
+ markdownMode = self.melpaStablePackages.markdown-mode;
+ scalaMode1 = self.melpaStablePackages.scala-mode;
+ prologMode = self.prolog-mode;
+ hsc3Mode = self.hsc3-mode;
+ graphvizDot = self.melpaStablePackages.graphviz-dot-mode;
+ proofgeneral_HEAD = self.proof-general;
+ proofgeneral = self.melpaStablePackages.proof-general;
+ haskellMode = self.melpaStablePackages.haskell-mode;
+ writeGood = self.melpaStablePackages.writegood-mode;
+ erlangMode = self.melpaStablePackages.erlang;
+ d = self.melpaStablePackages.d-mode;
+ autoComplete = self.melpaStablePackages.auto-complete;
+ tuaregMode = self.melpaStablePackages.tuareg;
+ structuredHaskellMode = self.melpaStablePackages.shm;
+ xmlRpc = self.melpaStablePackages.xml-rpc;
+ emacsw3m = self.w3m;
+ loremIpsum = self.lorem-ipsum;
+ js2 = self.melpaStablePackages.js2-mode;
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
new file mode 100644
index 000000000000..03e9923f737a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -0,0 +1,626 @@
+/*
+
+# Updating
+
+To update the list of packages from MELPA,
+
+1. Run ./update-melpa
+2. Check for evaluation errors:
+env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackages.melpaStablePackages
+env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackages.melpaPackages
+3. `git commit -m "melpa-packages: $(date -Idate)" recipes-archive-melpa.json`
+
+## Update from overlay
+
+Alternatively, run the following command:
+
+./update-from-overlay
+
+It will update both melpa and elpa packages using
+https://github.com/nix-community/emacs-overlay. It's almost
+instantenous and formats commits for you.
+
+*/
+
+{ lib, external, pkgs }: variant: self:
+let
+ dontConfigure = pkg:
+ if pkg != null then pkg.override (args: {
+ melpaBuild = drv: args.melpaBuild (drv // {
+ dontConfigure = true;
+ });
+ }) else null;
+
+ markBroken = pkg:
+ if pkg != null then pkg.override (args: {
+ melpaBuild = drv: args.melpaBuild (drv // {
+ meta = (drv.meta or { }) // { broken = true; };
+ });
+ }) else null;
+
+ externalSrc = pkg: epkg:
+ if pkg != null then pkg.override (args: {
+ melpaBuild = drv: args.melpaBuild (drv // {
+ inherit (epkg) src version;
+
+ propagatedUserEnvPkgs = [ epkg ];
+ });
+ }) else null;
+
+ fix-rtags = pkg:
+ if pkg != null then dontConfigure (externalSrc pkg external.rtags)
+ else null;
+
+ generateMelpa = lib.makeOverridable ({ archiveJson ? ./recipes-archive-melpa.json
+ }:
+ let
+ inherit (import ./libgenerated.nix lib self) melpaDerivation;
+ super = (
+ lib.listToAttrs (builtins.filter
+ (s: s != null)
+ (map
+ (melpaDerivation variant)
+ (lib.importJSON archiveJson)
+ )
+ )
+ );
+
+ overrides = {
+ # Expects bash to be at /bin/bash
+ ac-rtags = fix-rtags super.ac-rtags;
+
+ airline-themes = super.airline-themes.override {
+ inherit (self.melpaPackages) powerline;
+ };
+
+ auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs (old: {
+ buildInputs = old.buildInputs ++ [ external.llvmPackages.llvm ];
+ CFLAGS = "-I${external.llvmPackages.clang}/include";
+ LDFLAGS = "-L${external.llvmPackages.clang}/lib";
+ });
+
+ # part of a larger package
+ caml = dontConfigure super.caml;
+
+ # part of a larger package
+ # upstream issue: missing package version
+ cmake-mode = dontConfigure super.cmake-mode;
+
+ company-rtags = fix-rtags super.company-rtags;
+
+ easy-kill-extras = super.easy-kill-extras.override {
+ inherit (self.melpaPackages) easy-kill;
+ };
+
+ dune = dontConfigure super.dune;
+
+ emacsql-sqlite = super.emacsql-sqlite.overrideAttrs (old: {
+ buildInputs = old.buildInputs ++ [ pkgs.sqlite ];
+
+ postBuild = ''
+ cd source/sqlite
+ make
+ cd -
+ '';
+
+ postInstall = ''
+ install -m=755 -D source/sqlite/emacsql-sqlite \
+ $out/share/emacs/site-lisp/elpa/emacsql-sqlite-${old.version}/sqlite/emacsql-sqlite
+ '';
+
+ stripDebugList = [ "share" ];
+ });
+
+ # https://github.com/syl20bnr/evil-escape/pull/86
+ evil-escape = super.evil-escape.overrideAttrs (attrs: {
+ postPatch = ''
+ substituteInPlace evil-escape.el \
+ --replace ' ;;; evil' ';;; evil'
+ '';
+ packageRequires = with self; [ evil ];
+ });
+
+ evil-magit = super.evil-magit.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ eopengrok = super.eopengrok.overrideAttrs (attrs: {
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ ess-R-data-view = super.ess-R-data-view.override {
+ inherit (self.melpaPackages) ess ctable popup;
+ };
+
+ forge = super.forge.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ flycheck-rtags = fix-rtags super.flycheck-rtags;
+
+ gnuplot = super.gnuplot.overrideAttrs (old: {
+ nativeBuildInputs =
+ (old.nativeBuildInputs or [ ]) ++ [ pkgs.autoreconfHook ];
+ });
+
+ pdf-tools = super.pdf-tools.overrideAttrs (old: {
+ nativeBuildInputs = [ external.pkgconfig ];
+ buildInputs = with external; old.buildInputs ++ [ autoconf automake libpng zlib poppler ];
+ preBuild = "make server/epdfinfo";
+ recipe = pkgs.writeText "recipe" ''
+ (pdf-tools
+ :repo "politza/pdf-tools" :fetcher github
+ :files ("lisp/pdf-*.el" "server/epdfinfo"))
+ '';
+ });
+
+ # Build same version as Haskell package
+ hindent = (externalSrc super.hindent external.hindent).overrideAttrs (attrs: {
+ packageRequires = [ self.haskell-mode ];
+ });
+
+ irony = super.irony.overrideAttrs (old: {
+ cmakeFlags = old.cmakeFlags or [ ] ++ [ "-DCMAKE_INSTALL_BINDIR=bin" ];
+ NIX_CFLAGS_COMPILE = "-UCLANG_RESOURCE_DIR";
+ preConfigure = ''
+ cd server
+ '';
+ preBuild = ''
+ make
+ install -D bin/irony-server $out/bin/irony-server
+ cd ..
+ '';
+ checkPhase = ''
+ cd source/server
+ make check
+ cd ../..
+ '';
+ preFixup = ''
+ rm -rf $out/share/emacs/site-lisp/elpa/*/server
+ '';
+ dontUseCmakeBuildDir = true;
+ doCheck = true;
+ packageRequires = [ self.emacs ];
+ nativeBuildInputs = [ external.cmake external.llvmPackages.llvm external.llvmPackages.clang ];
+ });
+
+ # tries to write a log file to $HOME
+ insert-shebang = super.insert-shebang.overrideAttrs (attrs: {
+ HOME = "/tmp";
+ });
+
+ ivy-rtags = fix-rtags super.ivy-rtags;
+
+ libgit = super.libgit.overrideAttrs(attrs: {
+ nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [ pkgs.cmake ];
+ buildInputs = attrs.buildInputs ++ [ pkgs.libgit2 ];
+ dontUseCmakeBuildDir = true;
+ postPatch = ''
+ sed -i s/'add_subdirectory(libgit2)'// CMakeLists.txt
+ '';
+ postBuild = ''
+ pushd working/libgit
+ make
+ popd
+ '';
+ postInstall = ''
+ outd=$(echo $out/share/emacs/site-lisp/elpa/libgit-**)
+ mkdir $outd/build
+ install -m444 -t $outd/build ./source/src/libegit2.so
+ rm -r $outd/src $outd/Makefile $outd/CMakeLists.txt
+ '';
+ });
+
+ magit = super.magit.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-find-file = super.magit-find-file.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-gh-pulls = super.magit-gh-pulls.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-imerge = super.magit-imerge.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-lfs = super.magit-lfs.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-org-todos = super.magit-org-todos.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-stgit = super.magit-stgit.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-tbdiff = super.magit-tbdiff.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-topgit = super.magit-topgit.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-vcsh = super.magit-vcsh.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-gerrit = super.magit-gerrit.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-annex = super.magit-annex.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-todos = super.magit-todos.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magithub = super.magithub.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-svn = super.magit-svn.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ kubernetes = super.kubernetes.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ kubernetes-evil = super.kubernetes-evil.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ # upstream issue: missing file header
+ mhc = super.mhc.override {
+ inherit (self.melpaPackages) calfw;
+ };
+
+ # missing .NET
+ nemerle = markBroken super.nemerle;
+
+ # part of a larger package
+ notmuch = dontConfigure super.notmuch;
+
+ rtags = dontConfigure (externalSrc super.rtags external.rtags);
+
+ rtags-xref = dontConfigure super.rtags;
+
+ shm = super.shm.overrideAttrs (attrs: {
+ propagatedUserEnvPkgs = [ external.structured-haskell-mode ];
+ });
+
+ # Telega has a server portion for it's network protocol
+ telega = super.telega.overrideAttrs (old: {
+ buildInputs = old.buildInputs ++ [ pkgs.tdlib ];
+
+ postBuild = ''
+ cd source/server
+ make
+ cd -
+ '';
+
+ postInstall = ''
+ mkdir -p $out/bin
+ install -m755 -Dt $out/bin ./source/server/telega-server
+ '';
+ });
+
+ treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: {
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ zmq = super.zmq.overrideAttrs (old: {
+ stripDebugList = [ "share" ];
+ preBuild = ''
+ make
+ '';
+ nativeBuildInputs = [
+ external.autoconf
+ external.automake
+ external.pkgconfig
+ external.libtool
+ (external.zeromq.override { enableDrafts = true; })
+ ];
+ postInstall = ''
+ mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-*
+ rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src
+ rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile
+ '';
+ });
+
+ # Map legacy renames from emacs2nix since code generation was ported to emacs lisp
+ _0blayout = super."0blayout";
+ desktop-plus = super."desktop+";
+ ghub-plus = super."ghub+";
+ git-gutter-plus = super."git-gutter+";
+ git-gutter-fringe-plus = super."git-gutter-fringe+";
+ ido-completing-read-plus = super."ido-completing-read+";
+ image-plus = super."image+";
+ image-dired-plus = super."image-dired+";
+ markdown-mode-plus = super."markdown-mode+";
+ package-plus = super."package+";
+ rect-plus = super."rect+";
+
+ # upstream issue: missing file header
+ bufshow = markBroken super.bufshow;
+
+ # upstream issue: missing file header
+ connection = markBroken super.connection;
+
+ # upstream issue: missing file header
+ dictionary = markBroken super.dictionary;
+
+ # upstream issue: missing file header
+ elmine = markBroken super.elmine;
+
+ # upstream issue: missing file header
+ ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
+
+ # upstream issue: missing file header
+ initsplit = markBroken super.initsplit;
+
+ # upstream issue: missing file header
+ jsfmt = markBroken super.jsfmt;
+
+ # upstream issue: missing file header
+ maxframe = markBroken super.maxframe;
+
+ # upstream issue: doesn't build
+ eterm-256color = markBroken super.eterm-256color;
+
+ # upstream issue: missing file header
+ qiita = markBroken super.qiita;
+
+ # upstream issue: missing file header
+ speech-tagger = markBroken super.speech-tagger;
+
+ # upstream issue: missing file header
+ textmate = markBroken super.textmate;
+
+ # upstream issue: missing file header
+ link = markBroken super.link;
+
+ # upstream issue: missing file header
+ voca-builder = markBroken super.voca-builder;
+
+ # upstream issue: missing file header
+ window-numbering = markBroken super.window-numbering;
+
+ editorconfig = super.editorconfig.overrideAttrs (attrs: {
+ propagatedUserEnvPkgs = [ external.editorconfig-core-c ];
+ });
+
+ egg = super.egg.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ # missing dependencies
+ evil-search-highlight-persist = super.evil-search-highlight-persist.overrideAttrs (attrs: {
+ packageRequires = with self; [ evil highlight ];
+ });
+
+ kapacitor = super.kapacitor.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ gerrit = super.gerrit.overrideAttrs (attrs: {
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ gerrit-download = super.gerrit-download.overrideAttrs (attrs: {
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ github-pullrequest = super.github-pullrequest.overrideAttrs (attrs: {
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ helm-rtags = fix-rtags super.helm-rtags;
+
+ jist = super.jist.overrideAttrs (attrs: {
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ mandoku = super.mandoku.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ mandoku-tls = super.mandoku-tls.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-p4 = super.magit-p4.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-rbr = super.magit-rbr.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-diff-flycheck = super.magit-diff-flycheck.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-reviewboard = super.magit-reviewboard.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-patch-changelog = super.magit-patch-changelog.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ magit-circleci = super.magit-circleci.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ orgit =
+ (super.orgit.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ }));
+
+ orgit-forge = super.orgit-forge.overrideAttrs (attrs: {
+ # searches for Git at build time
+ nativeBuildInputs =
+ (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+ });
+
+ # tries to write to $HOME
+ php-auto-yasnippets = super.php-auto-yasnippets.overrideAttrs (attrs: {
+ HOME = "/tmp";
+ });
+
+ racer = super.racer.overrideAttrs (attrs: {
+ postPatch = attrs.postPatch or "" + ''
+ substituteInPlace racer.el \
+ --replace /usr/local/src/rust/src ${external.rustPlatform.rustcSrc}
+ '';
+ });
+
+ spaceline = super.spaceline.override {
+ inherit (self.melpaPackages) powerline;
+ };
+
+ vterm = super.vterm.overrideAttrs (old: {
+ buildInputs = old.buildInputs ++ [ self.emacs pkgs.cmake pkgs.libvterm-neovim ];
+ cmakeFlags = [
+ "-DEMACS_SOURCE=${self.emacs.src}"
+ "-DUSE_SYSTEM_LIBVTERM=ON"
+ ];
+ # we need the proper out directory to exist, so we do this in the
+ # postInstall instead of postBuild
+ postInstall = ''
+ pushd source/build >/dev/null
+ make
+ install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so
+ popd > /dev/null
+ rm -rf $out/share/emacs/site-lisp/elpa/vterm-**/{CMake*,build,*.c,*.h}
+ '';
+ });
+
+ w3m = super.w3m.override (args: {
+ melpaBuild = drv: args.melpaBuild (drv // {
+ prePatch =
+ let w3m = "${lib.getBin external.w3m}/bin/w3m"; in
+ ''
+ substituteInPlace w3m.el \
+ --replace 'defcustom w3m-command nil' \
+ 'defcustom w3m-command "${w3m}"'
+ '';
+ });
+ });
+ };
+
+ # Deprecated legacy aliases for backwards compat
+ aliases = lib.listToAttrs (lib.attrValues (lib.mapAttrs (n: v: { name = v; value = builtins.trace "Melpa attribute '${v}' is a legacy alias that will be removed in 21.03, use '${n}' instead" melpaPackages.${n}; }) (lib.filterAttrs (n: v: lib.hasAttr n melpaPackages) {
+ "auto-complete-clang-async" = "emacsClangCompleteAsync";
+ "vterm" = "emacs-libvterm";
+ "0xc" = "_0xc";
+ "2048-game" = "_2048-game";
+ "4clojure" = "_4clojure";
+ "@" = "at";
+ "term+" = "term-plus";
+ "term+key-intercept" = "term-plus-key-intercept";
+ "term+mux" = "term-plus-mux";
+ "xml+" = "xml-plus";
+ })));
+
+ melpaPackages = lib.mapAttrs (n: v: if lib.hasAttr n overrides then overrides.${n} else v) super;
+
+ in
+ melpaPackages // aliases);
+
+in
+generateMelpa { }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix
new file mode 100644
index 000000000000..b0eccbd88813
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix
@@ -0,0 +1,33 @@
+{ callPackage }:
+ {
+ org = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "org";
+ ename = "org";
+ version = "20200817";
+ src = fetchurl {
+ url = "https://orgmode.org/elpa/org-20200817.tar";
+ sha256 = "159hch9zls3apxq11c5rjpmci1avyl7q3cgsrqxwgnzy8c61104d";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/org.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }:
+ elpaBuild {
+ pname = "org-plus-contrib";
+ ename = "org-plus-contrib";
+ version = "20200817";
+ src = fetchurl {
+ url = "https://orgmode.org/elpa/org-plus-contrib-20200817.tar";
+ sha256 = "0n3fhcxjsk2w78p7djna4nlppa7ypjxzpq3r5dmzc8jpl71mipba";
+ };
+ packageRequires = [];
+ meta = {
+ homepage = "https://elpa.gnu.org/packages/org-plus-contrib.html";
+ license = lib.licenses.free;
+ };
+ }) {};
+ } \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix
new file mode 100644
index 000000000000..93af03ce229f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation {
+ name = "org-mac-link-1.2";
+
+ src = fetchurl {
+ url = "https://raw.githubusercontent.com/stuartsierra/org-mode/master/contrib/lisp/org-mac-link.el";
+ sha256 = "1gkzlfbhg289r1hbqd25szan1wizgk6s99h9xxjip5bjv0jywcx5";
+ };
+
+ phases = [ "buildPhase" "installPhase"];
+
+ buildInputs = [ emacs ];
+
+ buildPhase = ''
+ cp $src org-mac-link.el
+ emacs --batch -f batch-byte-compile org-mac-link.el
+ '';
+
+ installPhase = ''
+ install -d $out/share/emacs/site-lisp
+ install org-mac-link.el $out/share/emacs/site-lisp
+ '';
+
+ meta = {
+ description = "Insert org-mode links to items selected in various Mac apps";
+ homepage = "https://orgmode.org/worg/org-contrib/org-mac-link.html";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix
new file mode 100644
index 000000000000..1f37cf624f9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix
@@ -0,0 +1,32 @@
+/*
+
+# Updating
+
+To update the list of packages from Org (ELPA),
+
+1. Run `./update-org`.
+2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacsPackagesNg.orgPackages`.
+3. `git commit -m "org-packages $(date -Idate)" -- org-generated.nix`
+
+*/
+
+{ lib }:
+
+self: let
+
+ generateOrg = lib.makeOverridable ({
+ generated ? ./org-generated.nix
+ }: let
+
+ imported = import generated {
+ inherit (self) callPackage;
+ };
+
+ super = imported;
+
+ overrides = {
+ };
+
+ in super // overrides);
+
+in generateOrg { }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix
new file mode 100644
index 000000000000..7f2454c811a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+ name = "perl-completion";
+
+ src = fetchurl {
+ url = "http://emacswiki.org/emacs/download/perl-completion.el";
+ sha256 = "0x6qsgs4hm87k0z9q3g4p6508kc3y123j5jayll3jf3lcl2vm6ks";
+ };
+
+ phases = [ "installPhase"];
+
+ installPhase = ''
+ install -d $out/share/emacs/site-lisp
+ install $src $out/share/emacs/site-lisp/perl-completion.el
+ '';
+
+ meta = {
+ description = "Minor mode provides useful features for editing perl codes";
+ homepage = "http://emacswiki.org/emacs/PerlCompletion";
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/pod-mode/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/pod-mode/default.nix
new file mode 100644
index 000000000000..549633b7dfbd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/pod-mode/default.nix
@@ -0,0 +1,18 @@
+{ trivialBuild, lib, fetchurl }:
+
+trivialBuild rec {
+ pname = "pod-mode";
+ version = "1.04";
+
+ src = fetchurl {
+ url = "mirror://cpan/authors/id/F/FL/FLORA/pod-mode-${version}.tar.gz";
+ sha256 = "1wr0khymkaa65blrc5nya607c1a3sjsww49bbf8f0a6176as71sv";
+ };
+
+ meta = with lib; {
+ description = "Major mode for editing .pod-files";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ qyliss ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix
new file mode 100644
index 000000000000..66ab98302375
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ pname = "prolog-mode";
+ version = "1.28";
+
+ src = fetchurl {
+ url = "http://bruda.ca/_media/emacs/prolog.el";
+ sha256 = "oCMzks4xuor8Il8Ll8PXh1zIvMl5qN0RCFJ9yKiHOHU=";
+ };
+
+ buildCommand = ''
+ mkdir -p $out/share/emacs/site-lisp/
+ cp $src $out/share/emacs/site-lisp/prolog.el
+ '';
+
+ meta = {
+ homepage = "http://bruda.ca/emacs/prolog_mode_for_emacs/";
+ description = "Prolog mode for Emacs";
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix
new file mode 100644
index 000000000000..8ca8d1feaa1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation {
+ name = "railgun-2012-10-17";
+
+ src = fetchgit {
+ url = "https://github.com/mbriggs/railgun.el.git";
+ rev = "66aaa1b091baef53a69d0d7425f48d184b865fb8";
+ sha256 = "00x09vjd3jz5f73qkf5v1y402zn8vl8dsyfwlq9z646p18ba7gyh";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/emacs/site-lisp
+ cp *.el *.elc $out/share/emacs/site-lisp/
+ '';
+
+ meta = {
+ description = "Propel yourself through a rails project with the power of magnets";
+ homepage = "https://github.com/mbriggs/railgun.el";
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
new file mode 100644
index 000000000000..98346d4d82ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
@@ -0,0 +1,107144 @@
+[
+ {
+ "ename": "0blayout",
+ "commit": "6521ec44ae8b0ba2e0523517f0f3d5b94ddbe1be",
+ "sha256": "027k85h34998i8vmbg2hi4q1m4f7jfva5jm38k0g9m1db700gk92",
+ "fetcher": "github",
+ "repo": "etu/0blayout-mode",
+ "unstable": {
+ "version": [
+ 20190703,
+ 527
+ ],
+ "commit": "fd9a8f353dbd45b4628b5f84b8d8c2525ebf571d",
+ "sha256": "18jkq140s2hwgdxs5s13hprjmq2qnxnqhrmdiyrhvl176r3wbh37"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "commit": "b8bb44b5336965b5519b9a826a0f46f8ee31c471",
+ "sha256": "1apv5zd3zzni2llj9is7h2bzq1xxbx67kr7c07dfjd26n7l0zvfi"
+ }
+ },
+ {
+ "ename": "0x0",
+ "commit": "a48b10b770038efc606fbbbedf79178d3b05186c",
+ "sha256": "1nkc5hfz77s37a1rp8m69f7zbk05jc1y1fcj0b46h9khyz6zbm01",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~zge/nullpointer-emacs",
+ "unstable": {
+ "version": [
+ 20200521,
+ 1352
+ ],
+ "commit": "16581d94a1e32677091f3721506a48177cc49e68",
+ "sha256": "08gdycsi5mjz7ak8x71i3zs7xnr23b384bdlf1bspa325k8v2klq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "commit": "16581d94a1e32677091f3721506a48177cc49e68",
+ "sha256": "08gdycsi5mjz7ak8x71i3zs7xnr23b384bdlf1bspa325k8v2klq"
+ }
+ },
+ {
+ "ename": "0xc",
+ "commit": "3fbb2c86a50a8df9a3967787fc10f33beab2c933",
+ "sha256": "0lxcz1x1dymsh9idhkn7jn8vphr724d6sb88a4g55x2m1rlmzg3w",
+ "fetcher": "github",
+ "repo": "AdamNiederer/0xc",
+ "unstable": {
+ "version": [
+ 20190219,
+ 117
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "167e93ce863381a58988655927042514d984ad49",
+ "sha256": "0msx29il7c01njlc4pwxs3f3qcvyakgjcivxaa287jibf67yg0ph"
+ }
+ },
+ {
+ "ename": "2048-game",
+ "commit": "d3828ad7599d13728b5571b882344c3ada434b85",
+ "sha256": "0i7g7fg21ndpfbdydij3fb683pqgd1sicb7x6rradbc8jpmcf5sq",
+ "fetcher": "hg",
+ "url": "https://hg.sr.ht/~zck/game-2048",
+ "unstable": {
+ "version": [
+ 20200417,
+ 259
+ ],
+ "commit": "aad4a590ea91f9a3256233b9b345e9159c6993f2",
+ "sha256": "1jd50m5w0g0yplzms4qvkxx16f7xsbm9h7sdrw1p130gbij252l3"
+ }
+ },
+ {
+ "ename": "4clojure",
+ "commit": "3fea8d290fe4d71b954ad6b68a8d182e40ee1e13",
+ "sha256": "1cqab8kh4varf5hasvhkia39fa8qmmqycica7mbcvp33n8w3941j",
+ "fetcher": "github",
+ "repo": "emacsorphanage/4clojure",
+ "unstable": {
+ "version": [
+ 20200123,
+ 2008
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "557eecb5da50fedd92840021c8b08d87dfdc782b",
+ "sha256": "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"
+ }
+ },
+ {
+ "ename": "@",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0da0xqk8fhz8aij3zmpp4bz3plpvfq2riyy17i7ny4ralxb3g08z",
+ "fetcher": "github",
+ "repo": "skeeto/at-el",
+ "unstable": {
+ "version": [
+ 20181225,
+ 1438
+ ],
+ "commit": "0a6189f8be42dbbc5d9358cbd447d471236135a2",
+ "sha256": "11s46n3j6ij0ynxwl35wxbzg97pkmnhxh43l5vvaz9kizf6mhpbj"
+ }
+ },
+ {
+ "ename": "a",
+ "commit": "a226f1d81cd1ae81b91c1102fbe40aac2eddcaa8",
+ "sha256": "1xqja47iw1c78kiv4854z47iblvvzrc1l35zjdhmhkh9hh10z886",
+ "fetcher": "github",
+ "repo": "plexus/a.el",
+ "unstable": {
+ "version": [
+ 20180907,
+ 953
+ ],
+ "commit": "18966975db7110d0aac726be95b593e2fc3d44ed",
+ "sha256": "0d8ffpc8r7xial9q0miyxab6mbh9rm6sckvw9g10cgp8f1rrk7h4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "8583685c32069a73ccae0100e990e7b39c901737",
+ "sha256": "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"
+ }
+ },
+ {
+ "ename": "aa-edit-mode",
+ "commit": "20d00f782f2db87264c7fb1aac7455e44b8b24e7",
+ "sha256": "00b99ik04xx4b2a1cm1z8dl42hjnb5r32qypjyyx8924n1dhxzgn",
+ "fetcher": "github",
+ "repo": "zonuexe/aa-edit-mode",
+ "unstable": {
+ "version": [
+ 20170119,
+ 320
+ ],
+ "deps": [
+ "navi2ch"
+ ],
+ "commit": "1dd801225b7ad3c23ad09698f5e77f0df7012a65",
+ "sha256": "17kxpyfprdyj96c4ivv8bxwyls69cgh2r3gwrgj6bwinbiszh9rr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "navi2ch"
+ ],
+ "commit": "2e56f3b627f0f19fbfce4968180b4d736f7afb5d",
+ "sha256": "1rh9n97z1vi7w60qzam5vc025wwm346fgzym2zs1cm7ykyfh3mgd"
+ }
+ },
+ {
+ "ename": "abc-mode",
+ "commit": "aaee9dc5de06747374f311d86a550d3cc15beed1",
+ "sha256": "0qf5lbszyscmagiqhc0d05vzkhdky7ini4w33z1h3j5417sscrcx",
+ "fetcher": "github",
+ "repo": "mkjunker/abc-mode",
+ "unstable": {
+ "version": [
+ 20171020,
+ 1019
+ ],
+ "commit": "15691b32431b50f9106cb9fa50ee7244957a8ac8",
+ "sha256": "089l4rmxrnm4fmrbgw98rjigy3hzkx4lkw9hv8gn36cv2fp61h71"
+ },
+ "stable": {
+ "version": [
+ 20140225,
+ 944
+ ],
+ "commit": "6b5ab7402287dab5a091e94fec9982dc45d9d287",
+ "sha256": "13f4l9xzx4xm5m80kkb49zh31w0bn0kw9m5ca28rrx4aysqmwryv"
+ }
+ },
+ {
+ "ename": "abgaben",
+ "commit": "2b0aa60aa0edf33205e0fcb309be779ad8da08ec",
+ "sha256": "1xywghyp6aahzin1ygwzqfg9640dliycl4g02jz3gpix8hd3g8gy",
+ "fetcher": "gitlab",
+ "repo": "akoehn/abgaben",
+ "unstable": {
+ "version": [
+ 20171119,
+ 646
+ ],
+ "deps": [
+ "f",
+ "pdf-tools",
+ "s"
+ ],
+ "commit": "20d14830f07d66e2a04bcad1498a4a6fbf4b4451",
+ "sha256": "0apcbfaa70kgrpjjsfbr0lg9lcfiijpx5bms4sbzc606vlnxxn0d"
+ }
+ },
+ {
+ "ename": "abl-mode",
+ "commit": "70a52edb381daa9c4dcc9f7e511175b38fc141be",
+ "sha256": "0h25lc87pa8irgxflnmnmkr9dcv4kz841nfc45fcz4awrn75kkzb",
+ "fetcher": "github",
+ "repo": "afroisalreadyinu/abl-mode",
+ "unstable": {
+ "version": [
+ 20190403,
+ 904
+ ],
+ "commit": "44b7d946bc3a693f5a931c4a62c0a67d42e8d4dc",
+ "sha256": "070c408bq5pliq0xbd1861l6db4sbfpnj3r6aknbqh2vb7l4yimb"
+ }
+ },
+ {
+ "ename": "abs-mode",
+ "commit": "aabccc4061e7764069796e12ee9688b67651cf70",
+ "sha256": "148y99iaxcnjaacw017chwq0sq05ywgy5jx1lhp9ly7innrl9i1k",
+ "fetcher": "github",
+ "repo": "abstools/abs-mode",
+ "unstable": {
+ "version": [
+ 20200220,
+ 1701
+ ],
+ "deps": [
+ "erlang",
+ "flymake",
+ "maude-mode"
+ ],
+ "commit": "2db38537e9c481c38477997467bc98ee00607d7a",
+ "sha256": "006l73nacbr45y81ypj3x91nd1pnqppvgrlc6wmysma14lndazqx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5
+ ],
+ "deps": [
+ "erlang",
+ "flymake",
+ "maude-mode"
+ ],
+ "commit": "a9a512992f681669dc59fe9ca86f12b9688b5454",
+ "sha256": "0v6d7cxnj4mil7c7y4m1csiznl6rmzxg9snwhhv6wdqfw112kn8j"
+ }
+ },
+ {
+ "ename": "abyss-theme",
+ "commit": "f390e5153b6360a27abc74983f5fef11226634f3",
+ "sha256": "0ckrgfd7fjls6g510v8fqpkd0fd18lr0spg3lf5s88gky8ihdg6c",
+ "fetcher": "github",
+ "repo": "mgrbyte/emacs-abyss-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1345
+ ],
+ "commit": "18791c6e8d9cc2b4815c9f08627a2e94fc0eeb14",
+ "sha256": "07z0djv7h3yrv4iw9n633j6dxzxb4nnzijsqkmz22ik6fbwxg5mh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "commit": "18791c6e8d9cc2b4815c9f08627a2e94fc0eeb14",
+ "sha256": "07z0djv7h3yrv4iw9n633j6dxzxb4nnzijsqkmz22ik6fbwxg5mh"
+ }
+ },
+ {
+ "ename": "ac-alchemist",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0cakni8lvkhgdrzwa2cdqwnkbaiac1fn4j2lqgmx33z7hmrk8am6",
+ "fetcher": "github",
+ "repo": "emacsorphanage/ac-alchemist",
+ "unstable": {
+ "version": [
+ 20150908,
+ 656
+ ],
+ "deps": [
+ "alchemist",
+ "auto-complete",
+ "cl-lib"
+ ],
+ "commit": "b1891c3d41aed83f61d78a609ea97be5cc2758d9",
+ "sha256": "19msfx3f3px1maj41bzh139s6sv2pjk9vm3bphn7758fqhzyin0f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "alchemist",
+ "auto-complete",
+ "cl-lib"
+ ],
+ "commit": "31114f3e1e7cc1e101d0b81819d7876d8861df92",
+ "sha256": "0a8widshsm39cbala17pmnk1sazazhhyqppwalysli170whk49c5"
+ }
+ },
+ {
+ "ename": "ac-c-headers",
+ "commit": "d7736fb9ea3a59c36c0b8b824d83bb1bb0099d43",
+ "sha256": "1cq5rz2w79bj185va7y13x7bciihrpsvyxwk6msmcxb4g86s9phv",
+ "fetcher": "github",
+ "repo": "zk-phi/ac-c-headers",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1007
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "67e1e86a48c9bed57bc7ce5ce2553ad203f5752e",
+ "sha256": "1yk0a4p1pi7jwv48rvzn4i2733kg5ffp0q5vgcq22f98pmzyk77f"
+ }
+ },
+ {
+ "ename": "ac-capf",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "08a1ywyv5l1npbkpmg3wmprnqk837bmbwjpcgf5di9a2j33xqbin",
+ "fetcher": "github",
+ "repo": "emacsorphanage/ac-capf",
+ "unstable": {
+ "version": [
+ 20151101,
+ 217
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib"
+ ],
+ "commit": "17571dba0a8f98111f2ab758e9bea285b263781b",
+ "sha256": "0nyq34yq4jcp3p30ygma3iz1h0q551p33792byj76pa5ps09g1da"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib"
+ ],
+ "commit": "17571dba0a8f98111f2ab758e9bea285b263781b",
+ "sha256": "0nyq34yq4jcp3p30ygma3iz1h0q551p33792byj76pa5ps09g1da"
+ }
+ },
+ {
+ "ename": "ac-cider",
+ "commit": "e8adefaf2e284ef91baec3dbd3e10c868de69926",
+ "sha256": "1dszpb706h34miq2bxqyq1ycbran5ax36vcniwp8vvhgcjsw5sz6",
+ "fetcher": "github",
+ "repo": "clojure-emacs/ac-cider",
+ "unstable": {
+ "version": [
+ 20161006,
+ 719
+ ],
+ "deps": [
+ "auto-complete",
+ "cider",
+ "cl-lib"
+ ],
+ "commit": "fa13e067dd9c8c76151c7d140a2803da1d109b84",
+ "sha256": "1pklmjldnm8bf34f5q8x983d1m72l3kf51ns9vh6z704mkhv658f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "deps": [
+ "auto-complete",
+ "cider",
+ "cl-lib"
+ ],
+ "commit": "4be034e5f82421b0a836ec7ff45815c67caffcee",
+ "sha256": "12s7wy7fyk5z9q287j871gcsrvj90f4c81h39p66d99jw0cl93qj"
+ }
+ },
+ {
+ "ename": "ac-clang",
+ "commit": "ffe0485048b85825f5e8ba95917d8c9dc64fe5de",
+ "sha256": "070s06xhkzaqfc3j8c4i44rks6gn8z66lwd54j17p8d91x3qjpr4",
+ "fetcher": "github",
+ "repo": "yaruopooner/ac-clang",
+ "unstable": {
+ "version": [
+ 20180710,
+ 546
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "pos-tip",
+ "yasnippet"
+ ],
+ "commit": "3294b968eb1a8317049190940193f9da47c085ef",
+ "sha256": "160hda911vsc2zcs56560cpv7kj0966vjzwmc0md6fkz3wrj7w0n"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 3
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "pos-tip",
+ "yasnippet"
+ ],
+ "commit": "3294b968eb1a8317049190940193f9da47c085ef",
+ "sha256": "160hda911vsc2zcs56560cpv7kj0966vjzwmc0md6fkz3wrj7w0n"
+ }
+ },
+ {
+ "ename": "ac-dcd",
+ "commit": "64142a4b14531409f45f02a8053ed8948f48221d",
+ "sha256": "086jp9c6bilc361n1hscza3pbhgvqlq944z7cil2jm1kicsf8s7r",
+ "fetcher": "github",
+ "repo": "atilaneves/ac-dcd",
+ "unstable": {
+ "version": [
+ 20190902,
+ 1124
+ ],
+ "deps": [
+ "auto-complete",
+ "flycheck-dmd-dub"
+ ],
+ "commit": "d378d33c7bedc6c108eda7f674bd0aa1d8664857",
+ "sha256": "1gpqxfc83p7gzjrhs95gimwg46v9pq58m81m0fhz6slk7i005mdl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "auto-complete",
+ "flycheck-dmd-dub"
+ ],
+ "commit": "d378d33c7bedc6c108eda7f674bd0aa1d8664857",
+ "sha256": "1gpqxfc83p7gzjrhs95gimwg46v9pq58m81m0fhz6slk7i005mdl"
+ }
+ },
+ {
+ "ename": "ac-emacs-eclim",
+ "commit": "1e9d3075587fbd9ca188535fd945a7dc451c6d7e",
+ "sha256": "0bkh7x6zj5drdvm9ji4vwqdxv7limd9a1idy8lsg0lcca3rjq3s5",
+ "fetcher": "github",
+ "repo": "emacs-eclim/emacs-eclim",
+ "unstable": {
+ "version": [
+ 20180911,
+ 1121
+ ],
+ "deps": [
+ "auto-complete",
+ "eclim"
+ ],
+ "commit": "222ddd48fcf0ee01592dec77c58e0cf3f2ea1100",
+ "sha256": "0jdddf8krvg379wlay1xs27qlxpi87nz6v2i526pk59mmg8jrnvc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "auto-complete",
+ "eclim"
+ ],
+ "commit": "8203fbf8544e65324a948a67718f7a16ba2d52e6",
+ "sha256": "10bbbxhvlwm526g1wib1f87grnayirlg8jbsvmpzxr9nmdjgikz3"
+ }
+ },
+ {
+ "ename": "ac-emmet",
+ "commit": "39861b4f0a458c8ccf02f7a3443c54b0e74daa11",
+ "sha256": "09ycjllfpdgqaf5iis5bkkhal1vxvl3qkxrn2759p67s97c49f3x",
+ "fetcher": "github",
+ "repo": "yasuyk/ac-emmet",
+ "unstable": {
+ "version": [
+ 20131015,
+ 1558
+ ],
+ "deps": [
+ "auto-complete",
+ "emmet-mode"
+ ],
+ "commit": "88f24876ee3b759978d4614a758280b5d512d543",
+ "sha256": "1lkhqmfkjga7qi4r1m7mjax3pyf9m6minsn57cbzm2z2kvkhq22g"
+ }
+ },
+ {
+ "ename": "ac-emoji",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "06cwaasv2bsxr86wsjc21ggibcyqfp352wnc8i5fbr4ypd3vbk42",
+ "fetcher": "github",
+ "repo": "emacsorphanage/ac-emoji",
+ "unstable": {
+ "version": [
+ 20150823,
+ 711
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib"
+ ],
+ "commit": "40a639764eb654f1b4bb705c817b66032a26ff2b",
+ "sha256": "1gk84bv6w9lg5wrygd7cfab3h46j84k1dwmhzr7jay6n02q6y499"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib"
+ ],
+ "commit": "53677f754929ead403ccde64b714ebb6b8fc808e",
+ "sha256": "0cc3jpc4pihbyznyzvf6i3xwc2x78gb5m36ba9gkvxhabsljnlfg"
+ }
+ },
+ {
+ "ename": "ac-etags",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1qy6v37v7lx93lnpgh5bf2ccxpg2ldzwgdyigqmby9fy0wzwr8sf",
+ "fetcher": "github",
+ "repo": "emacsorphanage/ac-etags",
+ "unstable": {
+ "version": [
+ 20161001,
+ 1507
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "7983e631c226fe0fa53af3b2d56bf4eca3d785ce",
+ "sha256": "1vvgcy5hybrip4jn4pj9r3fahr6rc70k28w5aw951h0x7g7laipr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "8cd188b2e4908285ba8178bbd18a555edd7282e8",
+ "sha256": "0ijni3qgd68jhznhirhgcl59cr7hwfvbwgf6z120x56jmp8h01d2"
+ }
+ },
+ {
+ "ename": "ac-geiser",
+ "commit": "586ef409e3ae758b459b625d4bf0108f0525a085",
+ "sha256": "0v558qz1mp8b1bgk8kgdk5sx5mpd353mw77n5b0pw4b2ikzpz2mx",
+ "fetcher": "github",
+ "repo": "xiaohanyu/ac-geiser",
+ "unstable": {
+ "version": [
+ 20200318,
+ 824
+ ],
+ "deps": [
+ "auto-complete",
+ "geiser"
+ ],
+ "commit": "93818c936ee7e2f1ba1b315578bde363a7d43d05",
+ "sha256": "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "auto-complete",
+ "geiser"
+ ],
+ "commit": "0e2e36532336f27e3dc3b01fff55ad1a4329817d",
+ "sha256": "02ifz25rq64z0ifxs52aqdz0iz4mi6xvj88hcn3aakkmsj749vvn"
+ }
+ },
+ {
+ "ename": "ac-haskell-process",
+ "commit": "98bd259b6bfd9b49a8ae421807a4ab3821f09608",
+ "sha256": "0kv4z850kv03wiax1flnrp6sgqja25j23l719w7rkr7ck110q8rw",
+ "fetcher": "github",
+ "repo": "purcell/ac-haskell-process",
+ "unstable": {
+ "version": [
+ 20150423,
+ 1402
+ ],
+ "deps": [
+ "auto-complete",
+ "haskell-mode"
+ ],
+ "commit": "0362d4323511107ec70e7165cb612f3ab01b712f",
+ "sha256": "0m33v9iy3y37sicfmpx7kvmn8v1a8k6cs7d0v9v5k93p4d5ila41"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "deps": [
+ "auto-complete",
+ "haskell-mode"
+ ],
+ "commit": "0362d4323511107ec70e7165cb612f3ab01b712f",
+ "sha256": "0m33v9iy3y37sicfmpx7kvmn8v1a8k6cs7d0v9v5k93p4d5ila41"
+ }
+ },
+ {
+ "ename": "ac-helm",
+ "commit": "50427d365c79aff84ac759d19ce177b4f7ed2751",
+ "sha256": "16ajxlhcah5zbvywpc6l4l1arr308gjpgvdx6l1nrv2zvpckhlwq",
+ "fetcher": "github",
+ "repo": "yasuyk/ac-helm",
+ "unstable": {
+ "version": [
+ 20160319,
+ 233
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "helm",
+ "popup"
+ ],
+ "commit": "baf2b1e04bcffa835084389c0fab415f26efbf32",
+ "sha256": "1fyikdwn0gzng7pbmfg7zb7jphjv228776vsjc12j7g1aqz92n4l"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1
+ ],
+ "deps": [
+ "auto-complete",
+ "helm",
+ "popup"
+ ],
+ "commit": "f2110576b0eb35850a7f638c1a991a9fa0c8da3a",
+ "sha256": "1gw38phyaslpql7szvlpwgyfngdgd21f6lq406vq0gjwwmxgig34"
+ }
+ },
+ {
+ "ename": "ac-html",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "1vidmvylwwvraf8k63dvxv47ism49n6pp0f38l5rl4iaznhkdr84",
+ "fetcher": "github",
+ "repo": "zhangkaiyulw/ac-html",
+ "unstable": {
+ "version": [
+ 20151005,
+ 731
+ ],
+ "deps": [
+ "auto-complete",
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "668154cba123c321d1b07c2dc8b26d14092253b8",
+ "sha256": "0lz1a8a4bqxiw20jh65r7cg7jnid3vz4h8b7dkfcrzwn0agx8frw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 31
+ ],
+ "deps": [
+ "auto-complete",
+ "web-completion-data"
+ ],
+ "commit": "415a78c3b84855b0c0411832d21a0fb63239b184",
+ "sha256": "19v9515ixg22m7h7riix8w3vyhzax1m2pbwdirp59v532xn9b0cz"
+ }
+ },
+ {
+ "ename": "ac-html-angular",
+ "commit": "0805ba6674d1298d730770e8ea46b9bbd68cd1d3",
+ "sha256": "05rbxf5kbr4jlskrhvfvhf82qvb55zl5cb6z1ymfh9l3h9j9xk3s",
+ "fetcher": "github",
+ "repo": "osv/ac-html-angular",
+ "unstable": {
+ "version": [
+ 20151225,
+ 719
+ ],
+ "deps": [
+ "web-completion-data"
+ ],
+ "commit": "6bafe09afe03112ca4183d58461c1a6f6c2b3c67",
+ "sha256": "1v3ia439h4n2i204n0sazzbwwm0l5k6j31gq58iv2rqrq2ysikny"
+ }
+ },
+ {
+ "ename": "ac-html-bootstrap",
+ "commit": "6cf8aed547ca2390395dcf52d6c542b6944697af",
+ "sha256": "0z71m6xws0k9smhsswaivpikr64mv0wh6klnmi5cwhwcqas6kdi1",
+ "fetcher": "github",
+ "repo": "osv/ac-html-bootstrap",
+ "unstable": {
+ "version": [
+ 20160302,
+ 1701
+ ],
+ "deps": [
+ "web-completion-data"
+ ],
+ "commit": "481e6e441cd566554ce71cd8cb28c9e7ebb1c24b",
+ "sha256": "0ry398awbsyswc87v275x4mdyv64kr0s647y6nagqg1h3n3jhvsq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 3
+ ],
+ "deps": [
+ "web-completion-data"
+ ],
+ "commit": "591e1e996c820da218ea1eee0a500c556769f128",
+ "sha256": "1zmjqnlbfchnb7n2v7ms7q06xma1lmf9ry3v6f4pfnwlmz5lsf3a"
+ }
+ },
+ {
+ "ename": "ac-html-csswatcher",
+ "commit": "fba8b9bf212e6fa389eae8394d0b3bbce9eb0f92",
+ "sha256": "0jb9dnm2lxadrxssf0rjqw8yvvskcq4hys8c21shjyj3gkvwbfqn",
+ "fetcher": "github",
+ "repo": "osv/ac-html-csswatcher",
+ "unstable": {
+ "version": [
+ 20151208,
+ 2113
+ ],
+ "deps": [
+ "web-completion-data"
+ ],
+ "commit": "b0f3e7e1a3fe49e88b6eb6432377232fc715f221",
+ "sha256": "0swbw62zh5rjjf73pvmp8brrrmk6bp061k793z4z83v7ic0cicrr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 7
+ ],
+ "deps": [
+ "web-completion-data"
+ ],
+ "commit": "dadc3c595cf1708291096c03987f1981f3cabc6b",
+ "sha256": "0p18wxyyc1jmcwx9y5i77s25v4jszv7cmm4bkwm4dzhkxd33kh1f"
+ }
+ },
+ {
+ "ename": "ac-inf-ruby",
+ "commit": "1a72abe0fe1253149afb45b0d9e81b6846a926c0",
+ "sha256": "04jclf0yxz78x1fsaf5sh1p466947nqrcx337kyhqn0nkj3hplqr",
+ "fetcher": "github",
+ "repo": "purcell/ac-inf-ruby",
+ "unstable": {
+ "version": [
+ 20131115,
+ 1150
+ ],
+ "deps": [
+ "auto-complete",
+ "inf-ruby"
+ ],
+ "commit": "ee53fc9c61950da9a96df3ff5ef186f9a9faf151",
+ "sha256": "13xgv1c4gr075gffq95njra7bw1fkb5yp3xdlh3qndzw4bpary1l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "auto-complete",
+ "inf-ruby"
+ ],
+ "commit": "3e22b66d3d3e2712a0fe783b5cdd0583a0d4c318",
+ "sha256": "1acm13n59sdgvvzicscxzrr5j1x5sa5x4rc4cnkbwb28nw5a5ysm"
+ }
+ },
+ {
+ "ename": "ac-ispell",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0npbrvwww6mi8q8x3cc6sf02x1b3ns2w7499lip7ymbr1zi9gdxg",
+ "fetcher": "github",
+ "repo": "emacsorphanage/ac-ispell",
+ "unstable": {
+ "version": [
+ 20151101,
+ 226
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib"
+ ],
+ "commit": "22bace7387e9012002a6a444922f75f9913077b0",
+ "sha256": "1cq73bdv3lkn8v3nx6aznygqaac9s5i7pvirl8wz9ib31hsgwpbk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib"
+ ],
+ "commit": "a8c84f7f0b96dc091abc51b1698f24e9c994e6aa",
+ "sha256": "16qsj3wni4xhcrjx2rnxdzq6jb7jrl4bngi4an37vgdlrx3w8m6l"
+ }
+ },
+ {
+ "ename": "ac-js2",
+ "commit": "255588a330e4c9a03517885092d5678375aa7850",
+ "sha256": "0gcr0xdi89nj3854v2z3nndfgazmcdzmd6wdndl0i4s7pdfl96fa",
+ "fetcher": "github",
+ "repo": "ScottyB/ac-js2",
+ "unstable": {
+ "version": [
+ 20190101,
+ 933
+ ],
+ "deps": [
+ "js2-mode",
+ "skewer-mode"
+ ],
+ "commit": "2b56d09a16c1a0ce514cc1b85d64cb1be4502723",
+ "sha256": "11q4aaiqr4xnw5j0yqj35gc4a290az75qdyhadj09xr2j2jay35x"
+ }
+ },
+ {
+ "ename": "ac-math",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "02c821zabxp9qkwx252pxjmssdbmas0iwanw09r03bmiby9d4nsl",
+ "fetcher": "github",
+ "repo": "vspinu/ac-math",
+ "unstable": {
+ "version": [
+ 20141116,
+ 2127
+ ],
+ "deps": [
+ "auto-complete",
+ "math-symbol-lists"
+ ],
+ "commit": "c012a8f620a48cb18db7d78995035d65eae28f11",
+ "sha256": "0p5cdaw9v8jgnmjqpb95bxy4khwbdgg19wzg8jkr2j2p55dpfbd6"
+ }
+ },
+ {
+ "ename": "ac-mozc",
+ "commit": "4b3f74039d397037e640cc371d24bdb60ac90bf1",
+ "sha256": "1v3iiid8cq50i076q98ycks9m827xzncgxqwqs2rqhab0ncy3h0f",
+ "fetcher": "github",
+ "repo": "igjit/ac-mozc",
+ "unstable": {
+ "version": [
+ 20150227,
+ 1619
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "mozc"
+ ],
+ "commit": "4c6c8be4701010d9362184437c0f783e0335c631",
+ "sha256": "19cb8kq8gmrplkxil22ahvbyq5cng1l2vh2lrfiyqpjsap7zfjz5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "mozc"
+ ],
+ "commit": "4c6c8be4701010d9362184437c0f783e0335c631",
+ "sha256": "19cb8kq8gmrplkxil22ahvbyq5cng1l2vh2lrfiyqpjsap7zfjz5"
+ }
+ },
+ {
+ "ename": "ac-octave",
+ "commit": "634bd324148d6b74e1098362e06dc512456cde31",
+ "sha256": "1g5s4dk1rcgkjn17jfw6g201pw0vfhqcx1nhigmnizpnzy0man9z",
+ "fetcher": "github",
+ "repo": "coldnew/ac-octave",
+ "unstable": {
+ "version": [
+ 20180406,
+ 334
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "fe0f931f2024f43de3c4fff4b1ace672413adeae",
+ "sha256": "1yj5fapbp79k88k1cxrmmf91fb0j6s4s7f2dhk2afcf7z83mqkwb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "6d09b94a86f43de84c60e9a699b5e1be61c0f138",
+ "sha256": "1kg5q0bw0ymynsn3j7bjavb6wr8b0bjwm6jfj254g80y1inn4bp4"
+ }
+ },
+ {
+ "ename": "ac-php",
+ "commit": "ac283f1b65c3ba6278e9d3236e5a19734e42b123",
+ "sha256": "1wqwwgdln98snlq5msdx94b7985krvqfn264hxs1h94r85kgn1ba",
+ "fetcher": "github",
+ "repo": "xcwen/ac-php",
+ "unstable": {
+ "version": [
+ 20190424,
+ 222
+ ],
+ "deps": [
+ "ac-php-core",
+ "auto-complete",
+ "yasnippet"
+ ],
+ "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+ "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 0
+ ],
+ "deps": [
+ "ac-php-core",
+ "auto-complete",
+ "yasnippet"
+ ],
+ "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+ "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
+ }
+ },
+ {
+ "ename": "ac-php-core",
+ "commit": "ac283f1b65c3ba6278e9d3236e5a19734e42b123",
+ "sha256": "0vk3jsxb7dgk5a6pap3bdqkqwpszil0rck1c3y0wyxrlj2y1jcvn",
+ "fetcher": "github",
+ "repo": "xcwen/ac-php",
+ "unstable": {
+ "version": [
+ 20200516,
+ 52
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "php-mode",
+ "popup",
+ "s",
+ "xcscope"
+ ],
+ "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+ "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "php-mode",
+ "popup",
+ "s",
+ "xcscope"
+ ],
+ "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+ "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
+ }
+ },
+ {
+ "ename": "ac-racer",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0vxnc6q2khxf5xl3k8lwvjg5biqxasr4vm9k3c8033xwl6in299r",
+ "fetcher": "github",
+ "repo": "emacsorphanage/ac-racer",
+ "unstable": {
+ "version": [
+ 20170114,
+ 809
+ ],
+ "deps": [
+ "auto-complete",
+ "racer"
+ ],
+ "commit": "4408c2d652dec0432e20c05e001db8222d778c6b",
+ "sha256": "01154kqzh3pjy57vxhv27nm69p85a1fwl7r95c7pzmzxgxigfz1p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "auto-complete",
+ "racer"
+ ],
+ "commit": "4408c2d652dec0432e20c05e001db8222d778c6b",
+ "sha256": "01154kqzh3pjy57vxhv27nm69p85a1fwl7r95c7pzmzxgxigfz1p"
+ }
+ },
+ {
+ "ename": "ac-rtags",
+ "commit": "3dea16daf0d72188c8b4043534f0833fe9b04e07",
+ "sha256": "1w9v32di9135mm598c4506gxf0xr5jyz8dyd9dhga5d60q7g9641",
+ "fetcher": "github",
+ "repo": "Andersbakken/rtags",
+ "unstable": {
+ "version": [
+ 20191222,
+ 920
+ ],
+ "deps": [
+ "auto-complete",
+ "rtags"
+ ],
+ "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+ "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 38
+ ],
+ "deps": [
+ "auto-complete",
+ "rtags"
+ ],
+ "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
+ "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+ }
+ },
+ {
+ "ename": "ac-skk",
+ "commit": "1d9d8268d2db4b38ca18156964483b0b067f6f5d",
+ "sha256": "0iycyfgv8v15ygngvyx66m3w3sv8p9h6q6j1hbpzwd8azl8fzj5z",
+ "fetcher": "github",
+ "repo": "myuhe/ac-skk.el",
+ "unstable": {
+ "version": [
+ 20141230,
+ 119
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "ddskk",
+ "tinysegmenter"
+ ],
+ "commit": "d25a265930430d080329789fb253d786c01dfa24",
+ "sha256": "1nvz0jfz4x99xc5ywspl8fdpyqns5zd0j7i4bwzlwplmy3qakjwm"
+ }
+ },
+ {
+ "ename": "ac-slime",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0mk3k1lcbqa16xvsbgk28x09vzqyaidqaqpq934xdbrwhdgwgckg",
+ "fetcher": "github",
+ "repo": "purcell/ac-slime",
+ "unstable": {
+ "version": [
+ 20171027,
+ 2100
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "slime"
+ ],
+ "commit": "6c80cb602ddad46486288f94ad7546396c6e4b1a",
+ "sha256": "11w1z653klghi6inv9n92cigz8m3c67j3r18mdk39inc3izwplkj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "slime"
+ ],
+ "commit": "df6c4e88b5ba2d15d47a651ecf7edc0986624112",
+ "sha256": "13yghv7p6c91fn8mrxbwrb6ldk5n3b6nj6a7pwsvks1q73i1pl88"
+ }
+ },
+ {
+ "ename": "ac-sly",
+ "commit": "bb26741e841d4886c14f0a059a52805732f179b1",
+ "sha256": "1ng81b5f8w2s9mm9s7h5kwyx8fdwndnlsbzx50slmqyaz2ad15mx",
+ "fetcher": "github",
+ "repo": "qoocku/ac-sly",
+ "unstable": {
+ "version": [
+ 20170728,
+ 1027
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "sly"
+ ],
+ "commit": "bf69c687c4ecf1994349d20c182e9b567399912e",
+ "sha256": "09g6v2yp3wl566488zsb79lklqpai9dgz6xwv1y5h6zkghxvkhpy"
+ }
+ },
+ {
+ "ename": "academic-phrases",
+ "commit": "fe4323043fb875c0252861800e61fdd0a51ed453",
+ "sha256": "18y6lff7xwg6hczwgavwp32848gnlmc30afra9x7m8wmdddps1bh",
+ "fetcher": "github",
+ "repo": "nashamri/academic-phrases",
+ "unstable": {
+ "version": [
+ 20180723,
+ 1021
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "s"
+ ],
+ "commit": "25d9cf67feac6359cb213f061735e2679c84187f",
+ "sha256": "0m32jpg6n0azz2f4y57y92zfvzm54ankx5cm06gli2zw2v1218fw"
+ }
+ },
+ {
+ "ename": "ace-flyspell",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1zgywb90cg64nllbbk0x9ipm6znyc5yh7vkajrrnw06r5vabyp9y",
+ "fetcher": "github",
+ "repo": "cute-jumper/ace-flyspell",
+ "unstable": {
+ "version": [
+ 20170309,
+ 509
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "538d4f8508d305262ba0228dfe7c819fb65b53c9",
+ "sha256": "1yplf5klgjjzx3cb1ihqb9f9cwn898l0vhasc3cwiqz6ldyq2na8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "044d38fb8eb390ef1f51cf92cfe5c4ffd103044c",
+ "sha256": "0yy7g2903v78a8pavhxi8c7vqbmifn2sjk84zhw5aygihp3d6vf0"
+ }
+ },
+ {
+ "ename": "ace-isearch",
+ "commit": "344f0cf784a027cde196b7d766024fb415fa1968",
+ "sha256": "0n8qf08z9n8c2sp5ks29nxcfks5mil1jj6wq348apda8safk36hm",
+ "fetcher": "github",
+ "repo": "tam17aki/ace-isearch",
+ "unstable": {
+ "version": [
+ 20200420,
+ 518
+ ],
+ "commit": "58e4f1ad5cbbd2f86d161881d3f3ded3a3db984c",
+ "sha256": "0mlswnyd89ir060kiinzlrh70mdy8nfm2zpwr9jj2p19hrslmc4r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "ace-jump-mode",
+ "avy",
+ "helm-swoop"
+ ],
+ "commit": "7e041d058492c5c35ec70de0e7c5586043e7e5ec",
+ "sha256": "0233ai62zhsy5yhv72016clygwp2pcg80y6kr4cjm2k1k2wwy7m9"
+ }
+ },
+ {
+ "ename": "ace-jump-buffer",
+ "commit": "31100b5b899e942de7796bcbf6365625d1b62574",
+ "sha256": "0hkxa0ps0v1hwmjafqbnyr6rc4s0w95igk8y3w53asl7f5sj5mpi",
+ "fetcher": "github",
+ "repo": "waymondo/ace-jump-buffer",
+ "unstable": {
+ "version": [
+ 20171031,
+ 1550
+ ],
+ "deps": [
+ "avy",
+ "dash"
+ ],
+ "commit": "0d335064230caf3efdd5a732e8fbd67e3948ed6a",
+ "sha256": "04rlg8mlx3kggn04krvi3zgx263j1ysbgfccawaarzixas2r9gd9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "avy",
+ "dash"
+ ],
+ "commit": "02797c22c10a817dbbdfbd8fddceeba6c4f0499a",
+ "sha256": "13wq92ia18q9vyhmvnz1grl1l18hxnaisb7hv13dhfc06alcsrw2"
+ }
+ },
+ {
+ "ename": "ace-jump-helm-line",
+ "commit": "8925f3daa92ff39776b55642aa9ec0e49245c0c7",
+ "sha256": "04q8wh6jskvbiq6y2xsp2ir23vgz5zw09rm127sgiqrmn0jc61b9",
+ "fetcher": "github",
+ "repo": "cute-jumper/ace-jump-helm-line",
+ "unstable": {
+ "version": [
+ 20160918,
+ 1836
+ ],
+ "deps": [
+ "avy",
+ "helm"
+ ],
+ "commit": "1483055255df3f8ae349f7520f05b1e43ea3ed37",
+ "sha256": "191a2g1if1jliikbxkpwmvlp4v1sp541j71xrlymili8ygm0idq5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "avy",
+ "helm"
+ ],
+ "commit": "8779050e4794279946892b6a156d0086554a9c9e",
+ "sha256": "1d4bxxcnjbdr6cjr3jmz2zrnzjv5pwrypbp4xqgqyv9rz02n7ac1"
+ }
+ },
+ {
+ "ename": "ace-jump-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0yk0kppjyblr5wamncrjm3ym3n8jcl0r0g0cbnwni89smvpngij6",
+ "fetcher": "github",
+ "repo": "winterTTr/ace-jump-mode",
+ "unstable": {
+ "version": [
+ 20140616,
+ 815
+ ],
+ "commit": "8351e2df4fbbeb2a4003f2fb39f46d33803f3dac",
+ "sha256": "17axrgd99glnl6ma4ls3k01ysdqmiqr581wnrbsn3s4gp53mm2x6"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "a62a6867811cd739dd98a5e00a2d2e17edfb5b71",
+ "sha256": "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"
+ }
+ },
+ {
+ "ename": "ace-jump-zap",
+ "commit": "3b435db3b79333a20aa27a72f33c431f0a019ba1",
+ "sha256": "07bkmly3lvlbby2m13nj3m1q0gcnwy5sas7d6ws6vr9jh0d36byb",
+ "fetcher": "github",
+ "repo": "waymondo/ace-jump-zap",
+ "unstable": {
+ "version": [
+ 20170717,
+ 1849
+ ],
+ "deps": [
+ "ace-jump-mode",
+ "dash"
+ ],
+ "commit": "52b5d4c6c73bd0fc833a0dcb4e803a5287d8cae8",
+ "sha256": "1iw90mk6hdrbskxgv67xj27qd26w5dlh4s6a6xqqsj8ld56nzbvr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "ace-jump-mode",
+ "dash"
+ ],
+ "commit": "1a9bf779d8f9225ede9ec482b840942bb58111df",
+ "sha256": "0r875w4aq3p091hcrpkpqsivn1q9hmq2ppa1rvxzdaq0rhl9kfz4"
+ }
+ },
+ {
+ "ename": "ace-link",
+ "commit": "68032f40c0ce4170a22db535be4bfa7099f61f85",
+ "sha256": "1jl805r2s3wa0xyhss1q28rcy6y2fngf0yfcrcd9wf8kamhpajk5",
+ "fetcher": "github",
+ "repo": "abo-abo/ace-link",
+ "unstable": {
+ "version": [
+ 20200518,
+ 957
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "298f02f7dd117f9ec01f6aa2a2ddfecae0efb7f4",
+ "sha256": "1i243wfwrbxn00sh96248lpqfb7cvxqqwlc78nf8kim4ymylpp41"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "7b9bc8d916b60a501c32b63ce81f315486ad44e9",
+ "sha256": "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"
+ }
+ },
+ {
+ "ename": "ace-mc",
+ "commit": "62e3a5f23ce219b16081cb0bba9fc4699e11fafa",
+ "sha256": "1kca6ha2glhv7lkamqx3sxp7dy05c7f6xxy3lr3v2bik8r50jss8",
+ "fetcher": "github",
+ "repo": "mm--/ace-mc",
+ "unstable": {
+ "version": [
+ 20190206,
+ 749
+ ],
+ "deps": [
+ "ace-jump-mode",
+ "dash",
+ "multiple-cursors"
+ ],
+ "commit": "6877880efd99e177e4e9116a364576def3da391b",
+ "sha256": "180licc7w5b6f42ifwvllbnmf3aq8cbr8jhkbk37lzick4sv10d2"
+ }
+ },
+ {
+ "ename": "ace-pinyin",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1b3asvzm3k66lsdkmlsgmnf8xlyic8zv294j1iahzkwm6bzqj8wd",
+ "fetcher": "github",
+ "repo": "cute-jumper/ace-pinyin",
+ "unstable": {
+ "version": [
+ 20190917,
+ 318
+ ],
+ "deps": [
+ "avy",
+ "pinyinlib"
+ ],
+ "commit": "8b2e9335b02486730ea4ceee790130cc5328f9ea",
+ "sha256": "1p2h4bva0v8yad075is1zkhn69x78ddwa8ncdfm0zzysddw5w8bq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 5
+ ],
+ "deps": [
+ "ace-jump-mode",
+ "avy",
+ "pinyinlib"
+ ],
+ "commit": "c444d8d6861dafd06dd41e694dc9db32652e3b7c",
+ "sha256": "1d2g873zwq78ggs47954lccmaky20746wg0gafyj93d1qyc3m8rn"
+ }
+ },
+ {
+ "ename": "ace-popup-menu",
+ "commit": "53742e2242101c4b3b3901f5c74e24facf62c7d6",
+ "sha256": "1cq1mpv7v98bqrpsm598krq1741b6rwih71cx3yjifpbagrv4m5s",
+ "fetcher": "github",
+ "repo": "mrkkrp/ace-popup-menu",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1337
+ ],
+ "deps": [
+ "avy-menu"
+ ],
+ "commit": "390f0711d2a42675980d8b531fd5dc396b85f24b",
+ "sha256": "00va4glq9iibrfrnhinv8a7f5q0z7xvfyxnjf1rl4z770drz9j4n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "avy-menu"
+ ],
+ "commit": "e7cc8bace9dda5c9fbe545c6fbd41c12679c3d7d",
+ "sha256": "1khqh5b9c7ass3q2gc04ayc8idanabkyfpaqvfnag063x16fv40c"
+ }
+ },
+ {
+ "ename": "ace-window",
+ "commit": "42fe131d3c2ea498e4df30ba539a6b91c00f5b07",
+ "sha256": "1k0x8m1phmvgdxb5aj841iai9q96a5lfq8i4b5vnlbc3w888n3xa",
+ "fetcher": "github",
+ "repo": "abo-abo/ace-window",
+ "unstable": {
+ "version": [
+ 20200606,
+ 1259
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "c7cb315c14e36fded5ac4096e158497ae974bec9",
+ "sha256": "06zkb5v6h0gwrqx7xiz2vlzf13kzf3z79xc5jhv2j73rqcajjy9v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10,
+ 0
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "7003c88cd9cad58dc35c7cd13ebc61c355fb5be7",
+ "sha256": "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"
+ }
+ },
+ {
+ "ename": "achievements",
+ "commit": "2790c00a79df237cf853a00f094fdeca9e532a9a",
+ "sha256": "1cl2rlmfhs5mhh5rjdr66a0mszy9hb50z8fxn1c081cnqd6iw8a2",
+ "fetcher": "gitlab",
+ "repo": "gvol/emacs-achievements",
+ "unstable": {
+ "version": [
+ 20150531,
+ 1317
+ ],
+ "deps": [
+ "keyfreq"
+ ],
+ "commit": "c8275ee492d56255999d58f2988129ab29145182",
+ "sha256": "14p9lmnrpsnx94ycvsqmfxnk5kws0cman4a6fbnikl35ma8zc01x"
+ }
+ },
+ {
+ "ename": "ack-menu",
+ "commit": "8ff331ed45e5b7697e4862e723408602ecc98bc7",
+ "sha256": "1d2kw04ndxji2qjcm1b65qnxpp08zx8gbia8bl6x6mnjb2isc2d9",
+ "fetcher": "github",
+ "repo": "chumpage/ack-menu",
+ "unstable": {
+ "version": [
+ 20150504,
+ 2022
+ ],
+ "deps": [
+ "mag-menu"
+ ],
+ "commit": "f77be93a4697926ecf3195a355eb69580f695f4d",
+ "sha256": "02ba4d8qkvgy52g0zcbyfvsnhr9685gq569nkwa2as30xdcq3khm"
+ }
+ },
+ {
+ "ename": "acme-theme",
+ "commit": "0bf14d91ff89556671b175d5f7e71066f27cb73d",
+ "sha256": "0zsrqvhly3si2qkvc4rhki89r2z185l684wf7j9kx32fgaaqanac",
+ "fetcher": "github",
+ "repo": "ianpan870102/acme-emacs-theme",
+ "unstable": {
+ "version": [
+ 20200724,
+ 1833
+ ],
+ "commit": "e416ec678be72eb1aed3de3d88a8a9e3ee7315ca",
+ "sha256": "0y98il3gsnhm586hr1qdmif4r6v1987fzl82wgx75g8kiy5shbrj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "680b2022445861e3e9030a96d9fe587188d778c8",
+ "sha256": "1mww6x8gwhkrqcylxxm25xhcvam52nhj7q3f3bvaxhyfdc7jw9yq"
+ }
+ },
+ {
+ "ename": "actionscript-mode",
+ "commit": "2c11e74f2156f109b713380cebf83022d7159d4a",
+ "sha256": "1dkiay9jmizvslji5kzab4dxm1dq0jm8ps7sjq6710g7a5aqdvwq",
+ "fetcher": "github",
+ "repo": "austinhaas/actionscript-mode",
+ "unstable": {
+ "version": [
+ 20180527,
+ 1701
+ ],
+ "commit": "65abd58e198458a8e46748c5962c41d80d60c4ea",
+ "sha256": "0cb8kkhh43wg63abjx6d4x55f0l3r6ziqcaz8rz1zr12jffnac8z"
+ },
+ "stable": {
+ "version": [
+ 7,
+ 2,
+ 2
+ ],
+ "commit": "fddd7220342d29e7eca734f6b798b7a2849717a5",
+ "sha256": "0zybch8hz3mj63i0pxynb4d76ywqcy7b4fsa4hh71c2kb0bnczb3"
+ }
+ },
+ {
+ "ename": "activity-watch-mode",
+ "commit": "9780c413da8001651191fb8f9708fe9691d714cf",
+ "sha256": "0k0ai6658gb43c4ylrq66zqzrfh6ksvkf0kxj2qx8a5a1aw9bd4d",
+ "fetcher": "github",
+ "repo": "pauldub/activity-watch-mode",
+ "unstable": {
+ "version": [
+ 20200416,
+ 637
+ ],
+ "deps": [
+ "cl-lib",
+ "json",
+ "request"
+ ],
+ "commit": "9d591c5ec9a2b2c7b55a754dd37c7434b2ef9fdc",
+ "sha256": "0a1ylq0il5aca5y9acykaa47p8d9xb3jy4wgi1lpm60z06n4m99y"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "json",
+ "request"
+ ],
+ "commit": "9d591c5ec9a2b2c7b55a754dd37c7434b2ef9fdc",
+ "sha256": "0a1ylq0il5aca5y9acykaa47p8d9xb3jy4wgi1lpm60z06n4m99y"
+ }
+ },
+ {
+ "ename": "adafruit-wisdom",
+ "commit": "18483af52c26f719fbfde626db84a67750bf4754",
+ "sha256": "0ckh420cirspwg2yd5q9y1az03j2l1jzd67g8dpvqjkgdp485gad",
+ "fetcher": "github",
+ "repo": "gonewest818/adafruit-wisdom.el",
+ "unstable": {
+ "version": [
+ 20200217,
+ 306
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "86bb7249bd4b0c8ebaf749f69f00c8faeff11063",
+ "sha256": "062m653pyzddwjf75a6clsdkihfg35b3phbbff6vdyymg77608f2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "50414eaac3dbeb67a1329833b912d26b164873eb",
+ "sha256": "0s6xrg9g7f4cv745k4zmxhgqr68qajfr6hi6wpyab330y0hd1m0v"
+ }
+ },
+ {
+ "ename": "add-hooks",
+ "commit": "901f846aef46d512dc0a1770bab7f07c0ae330cd",
+ "sha256": "09a5b3prznibkb5igfn8x3vsjrlkh3534zycs8g25g4li87mcb6p",
+ "fetcher": "github",
+ "repo": "nickmccurdy/add-hooks",
+ "unstable": {
+ "version": [
+ 20171217,
+ 123
+ ],
+ "commit": "1845137703461fc44bd77cf24014ba58f19c369d",
+ "sha256": "02s9mv26ycypn4qfshrh17v1hsys2q9vffxj3g4lgq0lykplvkkm"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 1
+ ],
+ "commit": "a1043b7cdb1ea98055a2c99f8d37584a553ca362",
+ "sha256": "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"
+ }
+ },
+ {
+ "ename": "add-node-modules-path",
+ "commit": "63e99d8fc0678d7b1831cae8940e9e6547780861",
+ "sha256": "0gbl875fgqr5np6r4cs8njs6fil1qmy8a5wir88x78ybdwwxsmbl",
+ "fetcher": "github",
+ "repo": "codesuki/add-node-modules-path",
+ "unstable": {
+ "version": [
+ 20180710,
+ 2342
+ ],
+ "commit": "f31e69ccb681f882aebb806ce6e9478e3ac39708",
+ "sha256": "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "6f7801b2c41e3711406b7e1654257ad5557f5bb3",
+ "sha256": "1pfgy1k7vp34k4zb9835y3x4jmf81na60vsf80wlgvfafwk170z6"
+ }
+ },
+ {
+ "ename": "addressbook-bookmark",
+ "commit": "a497aec6e27efa627068542cae5a16c01c3c6d3c",
+ "sha256": "15p00v4ndrsbadal0ss176mks4ynj39786bmrnil29b6sqibd43r",
+ "fetcher": "github",
+ "repo": "thierryvolpiatto/addressbook-bookmark",
+ "unstable": {
+ "version": [
+ 20190612,
+ 1638
+ ],
+ "commit": "d8e502fc2f3d3ab1508ce9e50ebf8a9addc6e5b3",
+ "sha256": "1bgx4vn7q3nqfawip2m4a8wdm91vjnz1nv8957c748707x7rlkrr"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "ad3c73369b804a48803fdfdf2ab613e6220260de",
+ "sha256": "012kfqkmpagn8jrp09acpx631qmjim7b33j0pahv1fcqhin89pn6"
+ }
+ },
+ {
+ "ename": "adoc-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0jd3zr4zpb4qqn504azl0y02cryv7n9wphv64b0fbpipr7w5hm2c",
+ "fetcher": "github",
+ "repo": "sensorflo/adoc-mode",
+ "unstable": {
+ "version": [
+ 20160314,
+ 2130
+ ],
+ "deps": [
+ "markup-faces"
+ ],
+ "commit": "745884359a1b8826ede2c4cfd2f0b5478953ac40",
+ "sha256": "199da15f6p84809z33w3m35lrk9bgx8qpgnxsxgisli373mpzvd8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 6
+ ],
+ "deps": [
+ "markup-faces"
+ ],
+ "commit": "995785538489e573ad208f73c4e833ba60c5cfdb",
+ "sha256": "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"
+ }
+ },
+ {
+ "ename": "aes",
+ "commit": "33ca3106852f82624b36c7e3f03f5c0c620f304f",
+ "sha256": "11vl9x3ldrv7q7rd29xk4xmlvfxs0m6iys84f6mlgf00190l5r5v",
+ "fetcher": "github",
+ "repo": "Sauermann/emacs-aes",
+ "unstable": {
+ "version": [
+ 20171029,
+ 623
+ ],
+ "commit": "b7d5da89c3443292e4f0b1c9d254d459933cf5af",
+ "sha256": "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "commit": "b7d5da89c3443292e4f0b1c9d254d459933cf5af",
+ "sha256": "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7"
+ }
+ },
+ {
+ "ename": "afternoon-theme",
+ "commit": "583256b7fa48501c8bfad305d76d2e16b6441539",
+ "sha256": "13xgdw8px58sxpl7nyhkcdxwqdpp13i8wghvlb3l4471plw3vqgj",
+ "fetcher": "github",
+ "repo": "osener/emacs-afternoon-theme",
+ "unstable": {
+ "version": [
+ 20140104,
+ 1859
+ ],
+ "commit": "89b1d778a1f8b385775c122f2bd1c62f0fbf931a",
+ "sha256": "19d5d6qs5nwmpf26rsb86ranb5p4236qp7p2b4i88cimcmzspylb"
+ }
+ },
+ {
+ "ename": "ag",
+ "commit": "67f410ac3a58a038e194bcf174bc0a8ceceafb9a",
+ "sha256": "1r4ai09vdckkg4h4i7dp781qqmm4kky53p4q8azp3n2c78i1vz6g",
+ "fetcher": "github",
+ "repo": "Wilfred/ag.el",
+ "unstable": {
+ "version": [
+ 20190726,
+ 9
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "bd81d68466e44301505629454dfc689b6c17d94b",
+ "sha256": "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 48
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "bd81d68466e44301505629454dfc689b6c17d94b",
+ "sha256": "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"
+ }
+ },
+ {
+ "ename": "aggressive-fill-paragraph",
+ "commit": "982f5936f2d83222263df2886ca0b629076366bb",
+ "sha256": "1df4bk3ks09805y67af6z1gpfln0lz773jzbbckfl0fy3yli0dja",
+ "fetcher": "github",
+ "repo": "davidshepherd7/aggressive-fill-paragraph-mode",
+ "unstable": {
+ "version": [
+ 20180910,
+ 816
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "2d65d925318006e2f6fa261ad192fbc2d212877b",
+ "sha256": "0x4630lz9s59hidpf4pqc3697fgd09ac3zjax0xq3kk1993hrpa2"
+ }
+ },
+ {
+ "ename": "aggressive-indent",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "1qi8jbr28gax35siim3hnnkiy8pa2vcrzqzc6axr98wzny46x0i2",
+ "fetcher": "github",
+ "repo": "Malabarba/aggressive-indent-mode",
+ "unstable": {
+ "version": [
+ 20200512,
+ 1207
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "12a64b4e5c1a1e124baa74336738b6ae1972607f",
+ "sha256": "1pkqjg30l9sjh5m8w4p8qrlw92sxr28c3d7mq6h8sfc8dkgivd33"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d6778ae89cd2d40949aa076a43e327f7acff59c3",
+ "sha256": "0xya19w1bwpqrrqvmms0lfhqb168iv7j6kvnn49zbynnf9dhgr9w"
+ }
+ },
+ {
+ "ename": "agtags",
+ "commit": "eb6677262303a0cad2d844db77693c00d9bc575a",
+ "sha256": "07kpdbchplkbspid8gnjsprbdwf244nr2q596pw6jl17bysbbbk7",
+ "fetcher": "github",
+ "repo": "vietor/agtags",
+ "unstable": {
+ "version": [
+ 20200730,
+ 116
+ ],
+ "commit": "d80c6f61dee74040c07b7010d48cab1df13a3abf",
+ "sha256": "05jkkh7m126j24ayh85bk10s4z3lsy1s6n217qb7hlgfl8y5fqdj"
+ }
+ },
+ {
+ "ename": "ah",
+ "commit": "029c328e87ceb346e162c47162af727af22b65ac",
+ "sha256": "0h5kjf3sa17n8swkynb0fqk2jiwwgib3lzmrhwlk6k8pvzsgvlhj",
+ "fetcher": "github",
+ "repo": "takaxp/ah",
+ "unstable": {
+ "version": [
+ 20191212,
+ 652
+ ],
+ "commit": "3ca848bcf1fc4c18b4a5329d1439c5effb7dcb97",
+ "sha256": "1lgxwhq5359qrn3zv5m9sssz93vbqa6bp49z526pck1bkf80s3vx"
+ }
+ },
+ {
+ "ename": "ahg",
+ "commit": "eb2493e54641d6ca54461f237d3b7d30067a639f",
+ "sha256": "1za0hsk6mz6h958mqh4wcv3jv02qdbwi28cwnk90fpkkn43grwdi",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/agriggio/ahg",
+ "unstable": {
+ "version": [
+ 20200304,
+ 741
+ ],
+ "commit": "0ece48646ef7a8c813005934cc13f984b9998707",
+ "sha256": "0ypck79bmv4pa8l555kgij69jbpkv4fz9w91qs30lacjmrj0nha5"
+ }
+ },
+ {
+ "ename": "ahk-mode",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "0jx5vhlfw5r6l4125bjjbf7dl1589ac6j419swx26k3p8p58d93r",
+ "fetcher": "github",
+ "repo": "ralesi/ahk-mode",
+ "unstable": {
+ "version": [
+ 20200412,
+ 1832
+ ],
+ "commit": "729007b5f22a49f5187ff47fca18c0d674e73047",
+ "sha256": "0989iva0igmd3y61hihwnc7mhn11midimrnbpvq7d062iy7g4vaw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 6
+ ],
+ "commit": "bf3205efe7b7a40f3c8978f68f14ea3a939cffa8",
+ "sha256": "02nkcin0piv7s93c9plhy361dbqr78m0gd19myc7qb7gnm36kzpn"
+ }
+ },
+ {
+ "ename": "ahungry-theme",
+ "commit": "520295978fd7de3f4266dd69cc30d0b4fdf09db0",
+ "sha256": "0fhim0qscpqx9siprp3ax1azxzmqkzvrjx517d9bnd68z7xxbpqy",
+ "fetcher": "github",
+ "repo": "ahungry/color-theme-ahungry",
+ "unstable": {
+ "version": [
+ 20180131,
+ 328
+ ],
+ "commit": "a038d91ec593d1f1b19ca66a0576d59bbc24c523",
+ "sha256": "0f86xp7l8bv4z5dgf3pamjgqyiq3kfx9gbi9wcw0m6lbza8db15a"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 10,
+ 0
+ ],
+ "commit": "45bf75f17752c8e8dd4c8a4531c0aa419cdccb84",
+ "sha256": "03xypgq6vy7819r42g23kgn7p775bc0v9blzhi0zp5c61p4cw8v3"
+ }
+ },
+ {
+ "ename": "aio",
+ "commit": "95744cc13e7ac8d9acd794004d951f62e5880fa4",
+ "sha256": "0sd8g2w4n9r2ndmp353v89xvky8043vmd92v2ggbl45chhpjl5zw",
+ "fetcher": "github",
+ "repo": "skeeto/emacs-aio",
+ "unstable": {
+ "version": [
+ 20200610,
+ 1904
+ ],
+ "commit": "da93523e235529fa97d6f251319d9e1d6fc24a41",
+ "sha256": "0hnxbz5pxlrgxhjr5gnhf06qwg67g5pd87xkp0smmagsh18pnf76"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "077722896e649e7a33dcafbc4585686a29423979",
+ "sha256": "1y7j10j74r3fy0rcb8g3cm9nlls34qb0pz9xkia7psp77syrlz54"
+ }
+ },
+ {
+ "ename": "airline-themes",
+ "commit": "addeb923176132a52807308fa5e71d41c9511802",
+ "sha256": "0jkhb6nigyjmwqny7g59h4ssfy64vl3qnwcw46wnx5k9i73cjyih",
+ "fetcher": "github",
+ "repo": "AnthonyDiGirolamo/airline-themes",
+ "unstable": {
+ "version": [
+ 20200511,
+ 1543
+ ],
+ "deps": [
+ "powerline"
+ ],
+ "commit": "a6a3bd55baee29bd372869c835aded0f7d5e5f76",
+ "sha256": "1yg9wdagysfa5xswdrnwngbzf7gmdhjsl40ivqnxxvb74adxcwp6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8
+ ],
+ "deps": [
+ "powerline"
+ ],
+ "commit": "5ea031bcbdf665afea7e47e519a49e2c33978833",
+ "sha256": "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"
+ }
+ },
+ {
+ "ename": "airplay",
+ "commit": "b7f9d8229e4c91f4e3e8925b07e59d2a81cc745e",
+ "sha256": "095nibgs197iplphk6csvkgsrgh1fcfyy33py860v6qmihvk538f",
+ "fetcher": "github",
+ "repo": "gongo/airplay-el",
+ "unstable": {
+ "version": [
+ 20130212,
+ 1226
+ ],
+ "deps": [
+ "deferred",
+ "request",
+ "simple-httpd"
+ ],
+ "commit": "bd690aafcae3a887946e1bba8327597932d964ad",
+ "sha256": "1lxpfswp1bjrz192px79f155dycf2kazpr7dfrcr1gyshlgxkpf7"
+ }
+ },
+ {
+ "ename": "alan-mode",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1i3vhqdrp8zdmkzgyri5z7vh1j0mykcp7mkjxjc7293ncsj310d8",
+ "fetcher": "github",
+ "repo": "alan-platform/AlanForEmacs",
+ "unstable": {
+ "version": [
+ 20200723,
+ 1405
+ ],
+ "deps": [
+ "flycheck",
+ "s"
+ ],
+ "commit": "fc1fc0312b3e7f868f95b917a66719afb96f0c9a",
+ "sha256": "1cadc2v8mdlz5di7cwhc9qqhrkwgl3gxyw5v4il895r44rcdifgq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "0089e7c874c6d35e55be6ecd479ada2b97688a1f",
+ "sha256": "0mw9ja0f2jsj0vqk1zqwpzxm9j2yfahiibd8xkhx0wan0dggx592"
+ }
+ },
+ {
+ "ename": "alarm-clock",
+ "commit": "440fe05fa0d10d54e9c52e2e54e71a1321325376",
+ "sha256": "1cgrj6dzpx0q15qzr9d342wg8w92c2r4zmk7rif2h87qxr66fbrg",
+ "fetcher": "github",
+ "repo": "wlemuel/alarm-clock",
+ "unstable": {
+ "version": [
+ 20191204,
+ 716
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "644f331071f8b09a898fae490541908b5054d2e6",
+ "sha256": "0yf2mikpxnfl673rv0w7xp1cvlkgvlmzgaixva3ppz6f0wg3vgz6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "2621d3a492d7f4e10a34d9d1d4af015df55a2b1b",
+ "sha256": "1l1q9hkip9yikvppxscf6vy6wls16ryhgyp1x8640v81xh1jy8jb"
+ }
+ },
+ {
+ "ename": "alchemist",
+ "commit": "6616dc61d17c5bd89bc4d226baab24a1f8e49b3e",
+ "sha256": "18jxw0zb7y34qbm4bcpfpb2656f0h9grmrbfskgp4ra4q5q3n369",
+ "fetcher": "github",
+ "repo": "tonini/alchemist.el",
+ "unstable": {
+ "version": [
+ 20180312,
+ 1304
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "elixir-mode",
+ "pkg-info",
+ "s"
+ ],
+ "commit": "6f99367511ae209f8fe2c990779764bbb4ccb6ed",
+ "sha256": "12f95rwxs11sqf1w9pnf6cxc2lh2jz4nqkq33p8b5yamnl8cq9kg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 2
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "elixir-mode",
+ "pkg-info"
+ ],
+ "commit": "34caeed1bd231c7dfa8d2b9aa5c5de2b2a059601",
+ "sha256": "1cci0sq568ghx6x7my96m0iiwvqz2f4dh6k3gn3mmfyvi7bmrpww"
+ }
+ },
+ {
+ "ename": "alda-mode",
+ "commit": "848cb17d871287c401496e4483e400b44696e89d",
+ "sha256": "0qvaxh4392rpxikylcnn31z13wabaydj5aa4jyn499ggqdz7liw9",
+ "fetcher": "gitlab",
+ "repo": "jgkamat/alda-mode",
+ "unstable": {
+ "version": [
+ 20180608,
+ 605
+ ],
+ "commit": "1692b9003d2c3de403251ec452c6ce43ec819c84",
+ "sha256": "0kz0b2c1np088wbmnlvznizsv8nwiidgs67cn4dz46k66g9yg3g5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "97c20b1fd9ad3f138e1100e3a837d05108c4c564",
+ "sha256": "1wsvs756cbwbxlaxij352kman7196m39684m6sqnfb685cfrwzdj"
+ }
+ },
+ {
+ "ename": "alect-themes",
+ "commit": "84c25a290ae4bcc4674434c83c66ae128e4c4282",
+ "sha256": "04fq65qnxlvl5nc2q037c6yb4nf422dfw2913gv6zfh9rdmxsks8",
+ "fetcher": "github",
+ "repo": "alezost/alect-themes",
+ "unstable": {
+ "version": [
+ 20200801,
+ 2041
+ ],
+ "commit": "684249b83d711145865ec31650e66ed9aa6e691b",
+ "sha256": "1cyd327shiwgdxf7bx542pfw6d6ilsq51n65lz3bfs8fzm5mib8v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "commit": "a24065dc780738e914140d617bfe119c889d9c78",
+ "sha256": "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"
+ }
+ },
+ {
+ "ename": "alert",
+ "commit": "113953825ac4ff98d90a5375eb48d8b7bfa224e7",
+ "sha256": "0x3cvczq09jvshz435jw2fjm69457x2wxdvvbbjq46nfnybhi118",
+ "fetcher": "github",
+ "repo": "jwiegley/alert",
+ "unstable": {
+ "version": [
+ 20200303,
+ 2118
+ ],
+ "deps": [
+ "cl-lib",
+ "gntp",
+ "log4e"
+ ],
+ "commit": "7046393272686c7a1a9b3e7f7b1d825d2e5250a6",
+ "sha256": "1s93ijkax0s78qn79c364ainmq7jq4gc95akl9wra642ql6hz3iq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "gntp",
+ "log4e"
+ ],
+ "commit": "9f329be87820474925f29b52a1131084c8ea95b9",
+ "sha256": "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"
+ }
+ },
+ {
+ "ename": "alert-termux",
+ "commit": "d43e98a7142cf0edc89fa9e2f2817787c073667f",
+ "sha256": "19dfxbpp1kn1ara0fj9xr0ishpk1yiykg2al8g43rcy615vkpk8j",
+ "fetcher": "github",
+ "repo": "gergelypolonkai/alert-termux",
+ "unstable": {
+ "version": [
+ 20181119,
+ 951
+ ],
+ "commit": "47c414285c2f5971f3be52aaf0a4066ea6989238",
+ "sha256": "1gxw730b865zlaz0fdh95y7jhfwjpc3j2pkw0s3zz2xah9y0751b"
+ }
+ },
+ {
+ "ename": "align-cljlet",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0pnhhv33rvlmb3823xpy9v5h6q99fa7fn38djbwry4rymi4jmlih",
+ "fetcher": "github",
+ "repo": "gstamp/align-cljlet",
+ "unstable": {
+ "version": [
+ 20160112,
+ 2101
+ ],
+ "deps": [
+ "clojure-mode"
+ ],
+ "commit": "602d72a7ad52788a0265e3c6da519464a98166b8",
+ "sha256": "0l2rgs0rd4nmv4v7m10zhf2znzfvdifv1vlhpa3zbppg0fj8zph1"
+ }
+ },
+ {
+ "ename": "all-ext",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "0vmpa5p7likg2xgck18sa0jvmvnhjs9v1fbl82sxx7qy2f3cggql",
+ "fetcher": "github",
+ "repo": "rubikitch/all-ext",
+ "unstable": {
+ "version": [
+ 20200315,
+ 1443
+ ],
+ "deps": [
+ "all"
+ ],
+ "commit": "c865c62506af2c9edc7705a7c24dc8b70d5d4de2",
+ "sha256": "16r0ll7wsfsrymwm78gnnrfawafan9gbwiymqfmij3m9riqss7y0"
+ }
+ },
+ {
+ "ename": "all-the-icons",
+ "commit": "604c01aa15927bd122260529ff0f4bb6a8168b7e",
+ "sha256": "00ba4gkfvg38l4s0gsb4asvv1hfw9yjl2786imybzy7bkg9f9x3q",
+ "fetcher": "github",
+ "repo": "domtronn/all-the-icons.el",
+ "unstable": {
+ "version": [
+ 20200730,
+ 1545
+ ],
+ "deps": [
+ "memoize"
+ ],
+ "commit": "8c0228053dd6693d926970d89270094be52b0f75",
+ "sha256": "08p2x6da4dp6imw6dg501kw68m4rhjfdbc6yn5ld29mazvv923zl"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 1
+ ],
+ "deps": [
+ "memoize"
+ ],
+ "commit": "d363bb3e73909be013fcf35e1458bb654ec5bbaa",
+ "sha256": "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"
+ }
+ },
+ {
+ "ename": "all-the-icons-dired",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1qj639z24ln29hv6c51g1vsa2jsy4qrlhf8c7d5w9bxcrcn2fnr9",
+ "fetcher": "github",
+ "repo": "jtbm37/all-the-icons-dired",
+ "unstable": {
+ "version": [
+ 20200403,
+ 1018
+ ],
+ "deps": [
+ "all-the-icons"
+ ],
+ "commit": "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5",
+ "sha256": "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"
+ }
+ },
+ {
+ "ename": "all-the-icons-gnus",
+ "commit": "f8ed74d39d165343c81c2a21aa47e3d3895d8119",
+ "sha256": "0vdqhpa49p8vzbad426gl0dvniapyk73kbscvjv7mdl4bwhcr309",
+ "fetcher": "github",
+ "repo": "nlamirault/all-the-icons-gnus",
+ "unstable": {
+ "version": [
+ 20180511,
+ 654
+ ],
+ "deps": [
+ "all-the-icons",
+ "dash"
+ ],
+ "commit": "27f78996da0725943bcfb2d18038e6f7bddfa9c7",
+ "sha256": "0yi3nbhx7cdxq2192kh5ra2n0a3qg20p342prz3a0bm3w7q2ym11"
+ }
+ },
+ {
+ "ename": "all-the-icons-ibuffer",
+ "commit": "3b3899fbae1e54e4385e1edfc8cc88d5ff0080d1",
+ "sha256": "08p4jj932x6xrq8ylx1hl9a3i2x8mm6l1jxi21akgjszf4s41mix",
+ "fetcher": "github",
+ "repo": "seagle0128/all-the-icons-ibuffer",
+ "unstable": {
+ "version": [
+ 20200612,
+ 1642
+ ],
+ "deps": [
+ "all-the-icons"
+ ],
+ "commit": "8bb1a893e826e39ad4d7abc0add5dd6c33b18f29",
+ "sha256": "02sbddvjys6bf8pcbg3pv5fc1f8b48vmx0bnfyqw1x04dyb8cdm7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "deps": [
+ "all-the-icons"
+ ],
+ "commit": "ee0409588ebaee1aada351f1a75abcdc999ac9e2",
+ "sha256": "0afq5wjh74ks8hrsb9m41h1m9gyc0hvp2qmy4b1ls9kffgnk7ri2"
+ }
+ },
+ {
+ "ename": "all-the-icons-ivy",
+ "commit": "9496e6bb6f03f35444fb204860bc50e5e1b36214",
+ "sha256": "1xv67gxd2sqj6zld4i3qcid0x5qsbd7baz55m93y1ivdqi7x7gr2",
+ "fetcher": "github",
+ "repo": "asok/all-the-icons-ivy",
+ "unstable": {
+ "version": [
+ 20190508,
+ 1803
+ ],
+ "deps": [
+ "all-the-icons",
+ "ivy"
+ ],
+ "commit": "a70cbfa1effe36efc946a823a580cec686d5e88d",
+ "sha256": "17h7gscrvdi9rygagwzcqzbw6dbfvwmv7jbi8pjkj1c06p3kbq8i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "all-the-icons",
+ "ivy"
+ ],
+ "commit": "b768b83716100701a5cda9c071da2bcac34bd6a4",
+ "sha256": "03fssygwia1gv35y6mzifnkg5cb4klaq240jfqmyfji9jq95jzrd"
+ }
+ },
+ {
+ "ename": "all-the-icons-ivy-rich",
+ "commit": "66c873f1b542404d8982385ff7f6defe5b68f0ff",
+ "sha256": "16q294s61310aisqkhznzml2g05x24grzm93ga1wnyksn20wm9l2",
+ "fetcher": "github",
+ "repo": "seagle0128/all-the-icons-ivy-rich",
+ "unstable": {
+ "version": [
+ 20200811,
+ 838
+ ],
+ "deps": [
+ "all-the-icons",
+ "ivy-rich"
+ ],
+ "commit": "e918b23d55313a7464d8cb5d45eb917249638e32",
+ "sha256": "1wz3dgn8cggdkijzm7qf13g3s9gmz6v895bjck7sdhmr5mbr28a4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 1
+ ],
+ "deps": [
+ "all-the-icons",
+ "ivy-rich"
+ ],
+ "commit": "e918b23d55313a7464d8cb5d45eb917249638e32",
+ "sha256": "1wz3dgn8cggdkijzm7qf13g3s9gmz6v895bjck7sdhmr5mbr28a4"
+ }
+ },
+ {
+ "ename": "almost-mono-themes",
+ "commit": "71ca87a0dd28f911dd988e1c208896b1ec5bfcc7",
+ "sha256": "1lv7c63lii8463mmsmxnldkwark2c6n46j9zvf990dhacwl4q1mg",
+ "fetcher": "github",
+ "repo": "cryon/almost-mono-themes",
+ "unstable": {
+ "version": [
+ 20200211,
+ 2126
+ ],
+ "commit": "2f5935a1a9d042751c7135cac79875886edb2556",
+ "sha256": "1q1ry37rcpzwwl2bwf3j8nmhap7v72fg0hdzxlls89gm3jl3nb97"
+ }
+ },
+ {
+ "ename": "alsamixer",
+ "commit": "61a07f01ee94173fa59716d30b14a34ec967578e",
+ "sha256": "1kil28lpxaqnwgyw2h69dmx78q5lpn5k0l6y0fwyz2n6vayxw4yj",
+ "fetcher": "github",
+ "repo": "remvee/alsamixer-el",
+ "unstable": {
+ "version": [
+ 20191002,
+ 1133
+ ],
+ "commit": "1bdb99e433acd38685f05408562746cfbf2bc820",
+ "sha256": "0c40vycphv5nf374rp8pnzvi50vlmgab3wrdq92hyprjw76gwxhk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "1bdb99e433acd38685f05408562746cfbf2bc820",
+ "sha256": "0c40vycphv5nf374rp8pnzvi50vlmgab3wrdq92hyprjw76gwxhk"
+ }
+ },
+ {
+ "ename": "alt-codes",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1h1hs0vxzmmrkf7mkm44lqb9d41jg02sk7iwb54s9g92rc7c10rg",
+ "fetcher": "github",
+ "repo": "jcs-elpa/alt-codes",
+ "unstable": {
+ "version": [
+ 20200723,
+ 1037
+ ],
+ "commit": "b36c2b2bccc628da1579016381d5c3195c9e12b2",
+ "sha256": "19nqpg91in65gj59zndhncx6c1005k0wh05rprv1z6465j5gd40g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "commit": "b36c2b2bccc628da1579016381d5c3195c9e12b2",
+ "sha256": "19nqpg91in65gj59zndhncx6c1005k0wh05rprv1z6465j5gd40g"
+ }
+ },
+ {
+ "ename": "amd-mode",
+ "commit": "e4d6e9935e4935c9de769c7bf1c1b6dd256e10da",
+ "sha256": "17ry6vm5xlmdfs0mykdyn05cik38yswq5axdgn8hxrvvb6f58d06",
+ "fetcher": "github",
+ "repo": "NicolasPetton/amd-mode.el",
+ "unstable": {
+ "version": [
+ 20180111,
+ 1402
+ ],
+ "deps": [
+ "f",
+ "js2-mode",
+ "js2-refactor",
+ "makey",
+ "projectile",
+ "s",
+ "seq"
+ ],
+ "commit": "01fd19e0d635ccaf8e812364d8720733f2e84126",
+ "sha256": "040g07k2hcwqspansjqfpng0lxzkmip26ipz26q6mvkpwm2wilv4"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8
+ ],
+ "deps": [
+ "f",
+ "js2-mode",
+ "js2-refactor",
+ "makey",
+ "projectile",
+ "s",
+ "seq"
+ ],
+ "commit": "977b53e28b3141408fff4814be8b67ee23650cac",
+ "sha256": "0m80bwar80qsga735cqrn6rbvfz4w9a036zh8inhsigylv3vwqjv"
+ }
+ },
+ {
+ "ename": "ameba",
+ "commit": "043b5acb0552272c523d642fd9f9dca438087068",
+ "sha256": "1c2bmv04g30108qhcr0a67s1acmwzaz39dbvb03b7llhgmn5s92y",
+ "fetcher": "github",
+ "repo": "crystal-ameba/ameba.el",
+ "unstable": {
+ "version": [
+ 20200103,
+ 1454
+ ],
+ "commit": "0c4925ae0e998818326adcb47ed27ddf9761c7dc",
+ "sha256": "0jh0pfyqdks9xk43765vgm4569a8ny01pk3gy2p3vr5gdgfdm4a3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "ca5faaa0d5115dc2c301e06e062e653a7b9cb927",
+ "sha256": "07207h1643amlairnmpf8lnnkgf69kc04z3ri9k6fm4gmh6c9dy0"
+ }
+ },
+ {
+ "ename": "ammonite-term-repl",
+ "commit": "cf0ece0efb1fcf0ea7364df0d35fca69862f5e9a",
+ "sha256": "004cvhyh4afgpb31m1q31g98x8c9m6lmsb5fzc4a1r5pb4p3iimp",
+ "fetcher": "github",
+ "repo": "zwild/ammonite-term-repl",
+ "unstable": {
+ "version": [
+ 20200416,
+ 559
+ ],
+ "deps": [
+ "s",
+ "scala-mode"
+ ],
+ "commit": "b552fe21977e005c1c460bf6607557e67241a6b6",
+ "sha256": "0g6ldvzcm6arm6hxiz1y168mj73kipgbjzxciif2b4sd3z7wpnp6"
+ }
+ },
+ {
+ "ename": "ample-regexps",
+ "commit": "6a5c72dfb52d55b2b22c91f115b32fff14f2f61e",
+ "sha256": "00y07pd438v7ldkn5f1w84cpxa1mvcnzjkj6sf5l5pm97xqiz7j2",
+ "fetcher": "github",
+ "repo": "immerrr/ample-regexps.el",
+ "unstable": {
+ "version": [
+ 20200508,
+ 1021
+ ],
+ "commit": "153969ce547afe410b8986f01c9ed4087c9cd20b",
+ "sha256": "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"
+ }
+ },
+ {
+ "ename": "ample-theme",
+ "commit": "d448c03202137a461ed814ce87acfac23faf676e",
+ "sha256": "055c6jy2q761za4cl1vlqdskcd3mc1j58k8b4418q7h2lv2zc0ry",
+ "fetcher": "github",
+ "repo": "jordonbiondo/ample-theme",
+ "unstable": {
+ "version": [
+ 20180207,
+ 1745
+ ],
+ "commit": "f5a163626e04abda2d3c168f703c3f330f302a7c",
+ "sha256": "1z08mdl3i4nfs4ln64sks3b4vbir4r8czscrdqyvq4izr6j05j2f"
+ }
+ },
+ {
+ "ename": "ample-zen-theme",
+ "commit": "b3b8c21f5dfbe9d4845a01548c8b7d9ddfe172a7",
+ "sha256": "0xygk80mh05qssrbfj4h6k50pg557dyj6kzc2pdlmnr5r4gnzdn3",
+ "fetcher": "github",
+ "repo": "mjwall/ample-zen",
+ "unstable": {
+ "version": [
+ 20150119,
+ 2154
+ ],
+ "commit": "b277bb7abd4b6624e8d59f02474b79af50a007bd",
+ "sha256": "18z9jl5d19a132k6g1dvwqfbbdh5cx66b2qxlcjsfiqxlxglc2sa"
+ }
+ },
+ {
+ "ename": "amread-mode",
+ "commit": "2155dbd9bdf7b1f6f500c11ad1796c2ba2ddadec",
+ "sha256": "19wafb0aszphdmx9ayiazvq2avj9kqhanszh714n397810ak7k0v",
+ "fetcher": "github",
+ "repo": "stardiviner/amread-mode",
+ "unstable": {
+ "version": [
+ 20200623,
+ 1544
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7b1ed6c8aea409e2dce4a3b59f304d716a8efab7",
+ "sha256": "12hcgkznf1l4db8y0q33v735b5iin8iycc5s0di46ichxcjr0b7x"
+ }
+ },
+ {
+ "ename": "amx",
+ "commit": "c55bfad05343b2b0f3150fd2b4adb07a1768c1c0",
+ "sha256": "1ikhjvkca0lsb9j719yf6spg6nwc0qaydkd8aax162sis7kp9fap",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/amx",
+ "unstable": {
+ "version": [
+ 20200701,
+ 2108
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "ccfc92c600df681df5e8b5fecec328c462ceb71e",
+ "sha256": "0pdgicknrph4lfyjxwdqh7xwcfsnqnrx1l4xpd972ivy1n8s7783"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 3
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "394734e42aa8c43940df358e77a69248b42f2a9c",
+ "sha256": "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"
+ }
+ },
+ {
+ "ename": "anaconda-mode",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "1cr4qyk2brm1kvm7i9cmvihid8799df7yhmmdizv3sj5l6qnsyfr",
+ "fetcher": "github",
+ "repo": "pythonic-emacs/anaconda-mode",
+ "unstable": {
+ "version": [
+ 20200806,
+ 436
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "pythonic",
+ "s"
+ ],
+ "commit": "73266a48fa964d44268c3f3478597e553b9843f1",
+ "sha256": "0b4zzkr73hmjg92vr348294xymrynw4j0x89jzklh2plizp0alcr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 12
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "pythonic",
+ "s"
+ ],
+ "commit": "6be586123f606317c51e62239490af9843ba2d13",
+ "sha256": "1vydyyxd5n0pz0jlib3yvw8vnklp15nvyyj7qkm4wcyssi70q1rf"
+ }
+ },
+ {
+ "ename": "anakondo",
+ "commit": "197ff9f72a46a5732495d97c6b0ecb526e6995f4",
+ "sha256": "14kypppdgvzj2plydcpd22b9wpkircr0nc6gs4rcw416h157l2bv",
+ "fetcher": "github",
+ "repo": "didibus/anakondo",
+ "unstable": {
+ "version": [
+ 20200503,
+ 123
+ ],
+ "deps": [
+ "clojure-mode",
+ "projectile"
+ ],
+ "commit": "ba6b56c18f2b0ae035b448813b27114d19fb821c",
+ "sha256": "0dbhkinfn6ahvi9pi7kghlc0fccil15lx0pd1rpgv4d7n3bnsdna"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "projectile"
+ ],
+ "commit": "87760e8326a0e303ca66dda298a79742888b7254",
+ "sha256": "1l58l0gj3my61yi55hak0c8y26dc2sn8kzbs80v3vsfr6pq916vx"
+ }
+ },
+ {
+ "ename": "anaphora",
+ "commit": "8505db1945071a15ba0f2bb74b58d4a6875ca7d6",
+ "sha256": "1wb7fb3pc4gxvpjlm6gjbyx0rbhjiwd93qwc4vfw6p865ikl19y2",
+ "fetcher": "github",
+ "repo": "rolandwalker/anaphora",
+ "unstable": {
+ "version": [
+ 20180618,
+ 2200
+ ],
+ "commit": "3b2da3f759b244975852e79721c4a2dbad3905cf",
+ "sha256": "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 4
+ ],
+ "commit": "3b2da3f759b244975852e79721c4a2dbad3905cf",
+ "sha256": "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"
+ }
+ },
+ {
+ "ename": "android-env",
+ "commit": "570ad0e94736d9fd16f3909bcfa928a9153ea703",
+ "sha256": "1gfxrfg42rn2rzh5fr4w6h8ngczhl56jghfgrffz9x8wcxxmqgpr",
+ "fetcher": "github",
+ "repo": "fernando-jascovich/android-env.el",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1403
+ ],
+ "commit": "5c6a6d9449f300eec4f374a5410edc1cbab02e40",
+ "sha256": "182b3fd85q3x5ynnfnjb01phhq1glf1wxj5rz8zx43ddnzz9ahmn"
+ }
+ },
+ {
+ "ename": "android-mode",
+ "commit": "77633aa340803a433570327943fbe31b396f4355",
+ "sha256": "1nqrvq411yg4b9xb5cvc7ai7lfalwc2rfhclzprvymc4vxh6k4cc",
+ "fetcher": "github",
+ "repo": "remvee/android-mode",
+ "unstable": {
+ "version": [
+ 20190903,
+ 811
+ ],
+ "commit": "d5332e339a1f5e30559a53feffb8442ca79265d6",
+ "sha256": "10jhnxmxcjv9jpnsz2hrfb3rdl8306m8j30aclhvrvh4gcy1vwck"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 2
+ ],
+ "commit": "d5332e339a1f5e30559a53feffb8442ca79265d6",
+ "sha256": "10jhnxmxcjv9jpnsz2hrfb3rdl8306m8j30aclhvrvh4gcy1vwck"
+ }
+ },
+ {
+ "ename": "angry-police-captain",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "00r3dx33h0wjxj0687ln8nbl1ff2badm3mk3r3bplfrd61z2qzld",
+ "fetcher": "github",
+ "repo": "rolpereira/angry-police-captain-el",
+ "unstable": {
+ "version": [
+ 20120829,
+ 1252
+ ],
+ "commit": "d11931c5cb63368dcc4a48797962428cca6d3e9d",
+ "sha256": "1m0c7ns7aiycg86cgglir8bkw730fslyg1n15m9ki0da4cnmm97a"
+ }
+ },
+ {
+ "ename": "angular-mode",
+ "commit": "54d86ad963ca7357ccb62a2e4aa124ed44bc0ebf",
+ "sha256": "04c07flrfnfr6jsqm76xdl5gw79rh18ys4cmqjmgv55rrs0w4rws",
+ "fetcher": "github",
+ "repo": "emacsattic/angular-mode",
+ "unstable": {
+ "version": [
+ 20200510,
+ 1729
+ ],
+ "commit": "b24020768217f16b1b86aa236e9729b3d40e17b3",
+ "sha256": "04kg2x0lif91knmkkh05mj42xw3dkzsnysjda6ian95v57wfg377"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "7c0fb37f59dfd9e69f00b50e90a0e88c4e25d8c2",
+ "sha256": "1798nv4djhxzbin68zf6w7dbfm9sc39d0kygky52ii36arg5r1zp"
+ }
+ },
+ {
+ "ename": "angular-snippets",
+ "commit": "96a0ad5fdbc52f803846e580856fb9c58181c020",
+ "sha256": "057phgizn1c6njvdfigb23ljs31knq247gr0rcpqfrdaxsnnzm5c",
+ "fetcher": "github",
+ "repo": "magnars/angular-snippets.el",
+ "unstable": {
+ "version": [
+ 20140514,
+ 523
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "af5ae0a4a8603b040446c28afcf6ca01a8b4bd7b",
+ "sha256": "0hdm1a323mzxjfdply8ri3addk146f21d8cmpd18r7dw3j3cdfrn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "8f737c2cf5fce758a7a3833ebad2952b5398568d",
+ "sha256": "0h9i0iimanbvhbqy0cj9na335rs961pvhxjj4k8y53qc73xm102a"
+ }
+ },
+ {
+ "ename": "anki-connect",
+ "commit": "1f2c391b543a6b98b9f171f8638c003737424e52",
+ "sha256": "09mvw1qppn1nrjyn7gfq1bfxn9hyh5kpxz30m1rrfwjjgw4lw4x6",
+ "fetcher": "github",
+ "repo": "lujun9972/anki-connect.el",
+ "unstable": {
+ "version": [
+ 20191123,
+ 1858
+ ],
+ "commit": "1324f0c248aa2c6e73d6cf93fad6119d699f7dae",
+ "sha256": "055nzb0dki4fmgmfhq83x7gciyp74r36a233hnl9lyd8wmb2hvqf"
+ }
+ },
+ {
+ "ename": "anki-editor",
+ "commit": "8155d649e4b129d0c72da6bb2b1aac66c8483491",
+ "sha256": "18c5p82llq11vg1svqvbjrcnm7695nbbc6pwwl9jdjplasar585l",
+ "fetcher": "github",
+ "repo": "louietan/anki-editor",
+ "unstable": {
+ "version": [
+ 20190922,
+ 1223
+ ],
+ "deps": [
+ "dash",
+ "request"
+ ],
+ "commit": "546774a453ef4617b1bcb0d1626e415c67cc88df",
+ "sha256": "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"
+ }
+ },
+ {
+ "ename": "anki-mode",
+ "commit": "fc02d06e7c7e9230e4b082923b889e1e83676263",
+ "sha256": "1d429ws6kmswcyk0dnb303z01kq475n60a520hj258x23vp8802q",
+ "fetcher": "github",
+ "repo": "davidshepherd7/anki-mode",
+ "unstable": {
+ "version": [
+ 20200703,
+ 736
+ ],
+ "deps": [
+ "dash",
+ "markdown-mode",
+ "request",
+ "s"
+ ],
+ "commit": "3918e4f7b2f14e485cc3acc927abe6563695963f",
+ "sha256": "16fx2w1nz6jxsrc9naykah3valab46xnwsmjz5lm9zl38g4ypyna"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "markdown-mode",
+ "request",
+ "s"
+ ],
+ "commit": "06dd1bd49b7a2b43cf9b744dd5caf67809f39d74",
+ "sha256": "0ryyyihvvrcipj2bkx24cx1ibgcymnsbn79ibvmhb3wbad3hr072"
+ }
+ },
+ {
+ "ename": "anki-vocabulary",
+ "commit": "2ee1509faf58c4ea1bddcfd6f103e63c5c466c69",
+ "sha256": "11rl81s268l605lwzni29w366h2csnj4snl0nq12m9mvywv2dx2n",
+ "fetcher": "github",
+ "repo": "lujun9972/anki-vocabulary.el",
+ "unstable": {
+ "version": [
+ 20200103,
+ 325
+ ],
+ "deps": [
+ "anki-connect",
+ "s",
+ "youdao-dictionary"
+ ],
+ "commit": "863fe0219577f996ab126f1b7902db3c2cc59b2b",
+ "sha256": "0mfch10hvs5czgc3lj75s02bbf36gfdk3xvry717g8gqqa37j581"
+ }
+ },
+ {
+ "ename": "annalist",
+ "commit": "2298cf2894029267c77a8aa06f4fa8d9d7c3e4f0",
+ "sha256": "1102yd0vas3kyml8flf3mdswnc2kizbdq996740plzwnnnbw34vj",
+ "fetcher": "github",
+ "repo": "noctuid/annalist.el",
+ "unstable": {
+ "version": [
+ 20190929,
+ 207
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "134fa3f0fb91a636a1c005c483516d4b64905a6d",
+ "sha256": "06dvk7hd3bqjng87apf5dsbdn0rv0gcrj66m7dz26c8bg19mddcc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "08df07e4530953a2c0b1aa553adcab37b7b614b0",
+ "sha256": "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"
+ }
+ },
+ {
+ "ename": "annotate",
+ "commit": "3aae88b8e3b080501195d291012deab31aaf35f7",
+ "sha256": "1ajykgara2m713blj2kfmdz12fzm8jw7klyakkyi6i3c3a9m44jy",
+ "fetcher": "github",
+ "repo": "bastibe/annotate.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1439
+ ],
+ "commit": "2bf7a7c1acb6768a590954c9bfef5f72ae8cc452",
+ "sha256": "05zwfflsx69904jxlayalh3n3n9msl92zw2rk5kk17p9psjpv9yw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "commit": "99c45f553e7caef693506498d11e4b664b6f2946",
+ "sha256": "154655p54xxsbr06lbbdpzzx4hif6542a4cf767qnichsz9cj75j"
+ }
+ },
+ {
+ "ename": "annotate-depth",
+ "commit": "bb37bd77aea642ca72d74112bdd8a02eab8d1a80",
+ "sha256": "1j1pwnj7k6gl1p4npxsgrib0j1rzisq40pkm2wchjh86j3ybv2l4",
+ "fetcher": "github",
+ "repo": "netromdk/annotate-depth",
+ "unstable": {
+ "version": [
+ 20160520,
+ 2040
+ ],
+ "commit": "fcb24fa36287250e40d195590c4ca4a8a696277b",
+ "sha256": "18cav5wl3d0yq15273rqmdwvrgw96lmqiq9x5fxhf3wjb543mifl"
+ }
+ },
+ {
+ "ename": "annoying-arrows-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1vswlfypn6ijn0wwa3dsqkz5n3pillpmli2ha4q9snhd3a667vyh",
+ "fetcher": "github",
+ "repo": "magnars/annoying-arrows-mode.el",
+ "unstable": {
+ "version": [
+ 20161024,
+ 646
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3c42e9807d7696da2da2a21b63beebf9cdb3f5dc",
+ "sha256": "06gs5ln3w1xvq8f8k9225rwiipbh9cs0dzyyb7z05717rmqixcc4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "fe59f3fd464e7a87cc43fb8a1f135b3bdf8a2fb3",
+ "sha256": "1ppq3kszzj2fgr7mwj565bjs8bs285ymy384cnnw7paddgcr9z02"
+ }
+ },
+ {
+ "ename": "ansi",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0b5xnv6z471jm53g37njxin6l8yflsgm80y4wxahfgy8apipcq89",
+ "fetcher": "github",
+ "repo": "rejeep/ansi.el",
+ "unstable": {
+ "version": [
+ 20200611,
+ 944
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "a41d5cc719297515d85bb5256980cd1204a71b88",
+ "sha256": "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "a042c5954453bab9a74177e2b78ad17a824caebc",
+ "sha256": "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g"
+ }
+ },
+ {
+ "ename": "ansible",
+ "commit": "8e45bf58b980ff542a5e887707a6361eb5ac0492",
+ "sha256": "1xdc05fdglqfbizra6s1zl6knnvaq526dkxqnw9g7w269j8f4z8g",
+ "fetcher": "github",
+ "repo": "k1LoW/emacs-ansible",
+ "unstable": {
+ "version": [
+ 20200704,
+ 1354
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "b5ef59406604bc5027f4d816d90e633feef0149c",
+ "sha256": "1v56mz39vlszprd6m6virbv87qvsnb38n0h0yhqzcy85c2l0jzx3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "b5ef59406604bc5027f4d816d90e633feef0149c",
+ "sha256": "1v56mz39vlszprd6m6virbv87qvsnb38n0h0yhqzcy85c2l0jzx3"
+ }
+ },
+ {
+ "ename": "ansible-doc",
+ "commit": "29dc2ef3801a1cd7cf8edd2eae68b03bf00e96a0",
+ "sha256": "1gn334v5k1i3wsh1i53vnjj2y7kv4vba9yiwgiwz0pn7wd26wk5s",
+ "fetcher": "github",
+ "repo": "emacsorphanage/ansible-doc",
+ "unstable": {
+ "version": [
+ 20160924,
+ 824
+ ],
+ "commit": "86083a7bb2ed0468ca64e52076b06441a2f8e9e0",
+ "sha256": "0lap404ch74w99n3xip176jr42b38xhyzkfnkyqg0g3wk2cd3aq8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "bc8128a85a79b14f4a121105d87a5eddc33975ad",
+ "sha256": "0z3y69sfzka764wjbx31dywdq4d6bfsafv2gmmbpmxqmwfmy8sz4"
+ }
+ },
+ {
+ "ename": "ansible-vault",
+ "commit": "2bff0da29a9b883e53a3d211c5577a3e0bc263a0",
+ "sha256": "0pmsvpc866rgcajb2ihhb62g3rwhda7vvq2kxkvr566y609vv021",
+ "fetcher": "github",
+ "repo": "zellio/ansible-vault-mode",
+ "unstable": {
+ "version": [
+ 20200305,
+ 2240
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "c4fe4b0af2ac7f9d32acee234716ab31fa824cef",
+ "sha256": "1xif6vv53rpc2k974pqckmzck55zhdhzyfl54kdp25w93xbs3js4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "9a50ed6b73222e9973c08d79b6955e57ed3b7d97",
+ "sha256": "1xif6vv53rpc2k974pqckmzck55zhdhzyfl54kdp25w93xbs3js4"
+ }
+ },
+ {
+ "ename": "ant",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "06028xjic14yv3rfqyc3k6jyjgm6fqfrf1mv8lvbh2sri2d5ifqa",
+ "fetcher": "github",
+ "repo": "apg/ant-el",
+ "unstable": {
+ "version": [
+ 20160211,
+ 1543
+ ],
+ "commit": "510b5a3f57ee4b2855422d88d359a28922c1ab70",
+ "sha256": "0jb5vl3cq5m3r23fjhcxgxl4g011zkjkkyn5mqqxx22a1sydsvab"
+ }
+ },
+ {
+ "ename": "anti-zenburn-theme",
+ "commit": "6f6f803dc99a1b1fdb5b4e79f1c9cf72b702d091",
+ "sha256": "1sp9p6m2jy4m9fdn1hz25cmasy0mwwgn46qmvm92i56f5x6jlzzk",
+ "fetcher": "github",
+ "repo": "m00natic/anti-zenburn-theme",
+ "unstable": {
+ "version": [
+ 20180712,
+ 1838
+ ],
+ "commit": "dbafbaa86be67c1d409873f57a5c0bbe1e7ca158",
+ "sha256": "1h4lachmrpjiblah4rjd2cpvz6n6qh3i5cdp4wra2dk177h7kj6h"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 5,
+ 1
+ ],
+ "commit": "c80cc51bb1aaf11dd53b9d08e01d61bc9b32622f",
+ "sha256": "1c97d2jkh7iawgsbcg19gha9ffnxypbcfz0sgcsgf9vy4bvnc350"
+ }
+ },
+ {
+ "ename": "anx-api",
+ "commit": "2e3b329ff11818a1553c74a02475cb4110173076",
+ "sha256": "1vzg3wsqyfb9rsfxrpz8k2gazjlz2nwnf4gnn1dypsjspjnzcb8r",
+ "fetcher": "github",
+ "repo": "rmloveland/emacs-appnexus-api",
+ "unstable": {
+ "version": [
+ 20140208,
+ 1514
+ ],
+ "commit": "b2411ebc966ac32c3ffc61bc22bf183834df0fa0",
+ "sha256": "0fzxzar8m9qznfxv3wr7vfj9y2110wf6mm5cj55k3sd5djdjhmf1"
+ }
+ },
+ {
+ "ename": "anybar",
+ "commit": "5516e309df9ac8bf0fafb9ec9037094d82913b67",
+ "sha256": "0prnr8wjhishpf2zmn4b7054vfahk10w05nzsg2p6whaxywcachm",
+ "fetcher": "github",
+ "repo": "tie-rack/anybar-el",
+ "unstable": {
+ "version": [
+ 20160816,
+ 1421
+ ],
+ "commit": "7a0743e0d31bcb36ab1bb2e351f3e7139c422ac5",
+ "sha256": "1s7vnp2xzffdj4pqdqn6mrirw33ms0yqlpxzz5pwj6xrbp2x5r6s"
+ }
+ },
+ {
+ "ename": "anyins",
+ "commit": "a367da2cb71fc0b144f9e608dc4857624991f19c",
+ "sha256": "0ncf3kn8rackcidkgda2zs60km3hx87rwr9daj7ksmbb6am09s7c",
+ "fetcher": "github",
+ "repo": "antham/anyins",
+ "unstable": {
+ "version": [
+ 20131229,
+ 1041
+ ],
+ "commit": "83844c17ac9b5b6c7655ee556b75689e4c8ea663",
+ "sha256": "05lq0bllgn44zs85mgnfdcyjasm6j8m70jdcxksf798i0qdqnk7n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "1ff4673ca197c9bf64c65f718573bf7d478fc562",
+ "sha256": "1z6l72dn98icqsmxb3rrj6l63ijc3xgfa3vdl19yqa2rfy6ya721"
+ }
+ },
+ {
+ "ename": "anzu",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0m9wwq5fl7g6gfzv6m9hlrjf8nvqn1q7nqif1x93sh7q3vfwgxzl",
+ "fetcher": "github",
+ "repo": "emacsorphanage/anzu",
+ "unstable": {
+ "version": [
+ 20200514,
+ 1801
+ ],
+ "commit": "7b8688c84d6032300d0c415182c7c1ad6cb7f819",
+ "sha256": "09x4hhycnv4sc472fqv7z8jpjx8viap5hb143yri3wkwa15bqd3b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 63
+ ],
+ "commit": "a5a22fd537cb3bd2194d1eecc91dca418bedf442",
+ "sha256": "11k30174a0z738gcmvpvk8wxsnsdnaf4qphrz0aq8yy0k1pidav2"
+ }
+ },
+ {
+ "ename": "aozora-view",
+ "commit": "c6c13f8a0dd90c1c1f39711a5de69c1e0b785601",
+ "sha256": "0pd2574a6dkhrfr0jf5gvv34ganp6ddylyb6cfpg2d4znwbc2r2w",
+ "fetcher": "github",
+ "repo": "kawabata/aozora-view",
+ "unstable": {
+ "version": [
+ 20140310,
+ 1317
+ ],
+ "commit": "b0390616d19e45f15f9a2f5d5688274831e721fd",
+ "sha256": "0528z3axjmplg2fdbv4jxgy1p39vr4rnsm4a3ps2fanf8bwsyx3l"
+ }
+ },
+ {
+ "ename": "apache-mode",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "0wzfx3kaiwvya30ihq3vpdhy6znkzf25w5x43x457ifdn2vrh9zi",
+ "fetcher": "github",
+ "repo": "emacs-php/apache-mode",
+ "unstable": {
+ "version": [
+ 20190711,
+ 1111
+ ],
+ "commit": "a66dc1f246cd4ce0960773989bc43188f0394948",
+ "sha256": "0d0wc2zhwxy6ag8hh6g6k7dqpxf5yilxkaziy26pp5khryb7j7p9"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 0
+ ],
+ "commit": "354f9302a8d805ac80d846adcd1cef10830b3d51",
+ "sha256": "1grs2x51k8pa6sgfa82s5pwwdfv7zw46ccw0zvd2rvzbhpq21p2z"
+ }
+ },
+ {
+ "ename": "apdl-mode",
+ "commit": "2fd3f323919b8eebba081689c93bb918d0af1359",
+ "sha256": "11in64hcs5gmvviv986043r68l34byi31v5vibwqx63qg8k3gqfn",
+ "fetcher": "github",
+ "repo": "dieter-wilhelm/apdl-mode",
+ "unstable": {
+ "version": [
+ 20200501,
+ 1904
+ ],
+ "commit": "ee5f546f6659b9ca3c6895a1959087531b4a016a",
+ "sha256": "1qpqji2qx4srxk22684gh3sjj8sa87kd5fbr1xh8dscn19h5yvx9"
+ },
+ "stable": {
+ "version": [
+ 20,
+ 5,
+ 0
+ ],
+ "commit": "ee5f546f6659b9ca3c6895a1959087531b4a016a",
+ "sha256": "1qpqji2qx4srxk22684gh3sjj8sa87kd5fbr1xh8dscn19h5yvx9"
+ }
+ },
+ {
+ "ename": "apel",
+ "commit": "4976446a8ae40980d502186615902fc05c15ec7c",
+ "sha256": "0zrm8m66p3aqr0108s3cj6z4xqbg2hx37z1pam4c65bqlhh74s8y",
+ "fetcher": "github",
+ "repo": "wanderlust/apel",
+ "unstable": {
+ "version": [
+ 20190407,
+ 1056
+ ],
+ "commit": "d146ddbf8818e81d3577d5eee7825d377bec0c73",
+ "sha256": "04ic76gzn3m4rnmm2xjc72vrxazxjvsjabd3lbxvwj6c1fb11fnw"
+ }
+ },
+ {
+ "ename": "apib-mode",
+ "commit": "dc2ebb04f975d8226a76260895399c937d6a1940",
+ "sha256": "0y3n0xmyc4gkypq07v4sp0i6291qaj2m13zkg6mxp61zm669v2fb",
+ "fetcher": "github",
+ "repo": "w-vi/apib-mode",
+ "unstable": {
+ "version": [
+ 20200101,
+ 1017
+ ],
+ "deps": [
+ "markdown-mode"
+ ],
+ "commit": "c6dd05201f6eb9295736d8668a79a7510d11159e",
+ "sha256": "0f5zph67h0pr445ykllz0pix2dg2kdxl0g5mhxaggdydizf24p45"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "markdown-mode"
+ ],
+ "commit": "c6dd05201f6eb9295736d8668a79a7510d11159e",
+ "sha256": "0f5zph67h0pr445ykllz0pix2dg2kdxl0g5mhxaggdydizf24p45"
+ }
+ },
+ {
+ "ename": "apiwrap",
+ "commit": "0197fd3657e65e3826375d9b6f19da3058366c91",
+ "sha256": "0n50n1n5pvcgcp1gmna3ci36pnbanjdbjpgv7zyarlb80hywbiyw",
+ "fetcher": "github",
+ "repo": "vermiculus/apiwrap.el",
+ "unstable": {
+ "version": [
+ 20180602,
+ 2231
+ ],
+ "commit": "a4fb21d96027369307b22439a4a6c765ee272f44",
+ "sha256": "19v92dgbwrb66bj5zs4fh0knba286i32afi42mvjmgagf228x6ka"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "e4c9c57d6620a788ec8a715ff1bb50542edea3a6",
+ "sha256": "0xpb8mmssajy42r2h1m9inhv1chx19wkp5p0p63nwpk7mhjj8bis"
+ }
+ },
+ {
+ "ename": "apples-mode",
+ "commit": "5ca765a6a2f312f585624ec8b82dc9eb6b9bbc0c",
+ "sha256": "05ssnxs9ybc26jhr69xl9jpb41bz1688minmlc9msq2nvyfnj97s",
+ "fetcher": "github",
+ "repo": "tequilasunset/apples-mode",
+ "unstable": {
+ "version": [
+ 20110121,
+ 418
+ ],
+ "commit": "83a9ab0d6ba82496e2f7df386909b1a55701fccb",
+ "sha256": "0br0jl6xnajdx37s5cvs13srn9lldg58y9587a11s3s651xjdq0z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "fac47b6255e79a373c5d5e1abe66ea5d74588e9f",
+ "sha256": "13j2r4nx2x6j3qx50d5rdnqd8nl5idxdkhizsk7ccz3v2607fbyy"
+ }
+ },
+ {
+ "ename": "applescript-mode",
+ "commit": "3fea8d290fe4d71b954ad6b68a8d182e40ee1e13",
+ "sha256": "1ihf4b2r14ikjkqpibqv1ipjgdq7q1pkhw7rs3ph1gzg5j552waf",
+ "fetcher": "github",
+ "repo": "emacsorphanage/applescript-mode",
+ "unstable": {
+ "version": [
+ 20090321,
+ 632
+ ],
+ "commit": "8f888cd80af1e0902b5609143facd3051bc94892",
+ "sha256": "0d3bqx6346vmniv001jgd6wggp80kv1kqc38sdgd88862gkqnqyg"
+ }
+ },
+ {
+ "ename": "aproject",
+ "commit": "de10c48976352f273e8363c2f6fa60602ee86c9b",
+ "sha256": "0v3gx2mff2s7knm69y253pm1yr4svy8w00pqbn1chrvymb62jhp2",
+ "fetcher": "github",
+ "repo": "vietor/aproject",
+ "unstable": {
+ "version": [
+ 20190730,
+ 152
+ ],
+ "commit": "b534e2a62738ad59a8a3cddd386466c145dad3b2",
+ "sha256": "08nhfa845cn20kx0q9rchs24imfmvpywi1b8mn40d1lw587yr519"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "702caf5392288dfd821b1e744fef0bb4fd9f9281",
+ "sha256": "18n3gsghj7sxxd6kpp21b2p7qwv93giwyr1zfvgbs8pzsbc8i9rx"
+ }
+ },
+ {
+ "ename": "apropospriate-theme",
+ "commit": "1da33013f15825ab656260ce7453b8127e0286f4",
+ "sha256": "10bj2bsi7b104m686z8mgvbh493liidsvivxfvfxzbndc8wyjsw9",
+ "fetcher": "github",
+ "repo": "waymondo/apropospriate-theme",
+ "unstable": {
+ "version": [
+ 20191220,
+ 2017
+ ],
+ "commit": "543341f0836b24e001375c530c4706e9345ec1e3",
+ "sha256": "03917db85x4c2a1ba94wmik21wwnwf9xpz6wc0d0ay0zkkvqsn5g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "0d918da74a7a225fe5a586e26f5d834e579c5323",
+ "sha256": "0hqsq7y89crcmqcfbgn885dlvj7f7b0zd9q6adbhyscphk7kasjw"
+ }
+ },
+ {
+ "ename": "apt-sources-list",
+ "commit": "141a22e593415302d64cf8ebd2635a1baf35eb38",
+ "sha256": "1gnl6zqv6imk2qpv4lj7qyjgf1ldxib3k14gsmwqm0c1zwjsid3j",
+ "fetcher": "git",
+ "url": "https://git.korewanetadesu.com/apt-sources-list.git",
+ "unstable": {
+ "version": [
+ 20180527,
+ 1241
+ ],
+ "commit": "5289443ceff230dfc8a2c1c6b524c90560eb08a5",
+ "sha256": "1svicgmiibnim47fhlik3fgs0d6427and5h61s3rhvfj3352d9li"
+ }
+ },
+ {
+ "ename": "aqi",
+ "commit": "4218547747cdbe33aab3c59338cd2dc9da869cda",
+ "sha256": "1dzvf3i648ssavrdy4v1ckvf2gkywa3cc4zgddb8dj4ihpivm6bc",
+ "fetcher": "github",
+ "repo": "zzkt/aqi",
+ "unstable": {
+ "version": [
+ 20200215,
+ 1334
+ ],
+ "deps": [
+ "let-alist",
+ "request"
+ ],
+ "commit": "5fe8b035b2b6bc165728444bb8e9792d14b7409d",
+ "sha256": "1wbpjz5jgpph6c6wk29dxz8r368ai6jx9cb4y2mdcpngig8kmazm"
+ }
+ },
+ {
+ "ename": "arc-dark-theme",
+ "commit": "f8c9060669b262f0588643bd8758edac578834bc",
+ "sha256": "0a61kxdyzm6gf8gf8fniqz5mqkxk24k8hpxww3996v9mqs1bn05s",
+ "fetcher": "github",
+ "repo": "cfraz89/arc-dark-theme",
+ "unstable": {
+ "version": [
+ 20190314,
+ 1632
+ ],
+ "commit": "ee17dcca35dd0304145efc468b3f25af6907a59d",
+ "sha256": "0cfj5c6rz68095wxs8m733lwc5ymbgi5v82drxhjqcascvrdr1v1"
+ }
+ },
+ {
+ "ename": "arch-packer",
+ "commit": "6d1796688ed0d6957557d960ca28e450f9bcb6cf",
+ "sha256": "04kv22vpcpjhc047yz6k6dizmwwdjk6vcm8imri76gi9ns1w5n5z",
+ "fetcher": "github",
+ "repo": "brotzeit/arch-packer",
+ "unstable": {
+ "version": [
+ 20170730,
+ 1321
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "s"
+ ],
+ "commit": "940e96f7d357c6570b675a0f942181c787f1bfd7",
+ "sha256": "0m80ka51m7a1797q6br41x96znvqfmpwzh3vk4mz66mdx2r4xk77"
+ }
+ },
+ {
+ "ename": "archive-region",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "1aiz6a0vdc2zm2q5r80cj5xixqfhsgmr7ldj9ff40k4sf3z5xny3",
+ "fetcher": "github",
+ "repo": "rubikitch/archive-region",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1425
+ ],
+ "commit": "53cd2d96ea7c33f320353982b36854f25c900c2e",
+ "sha256": "1c3ji0asnhdls8pa5hbqg65kc35jc6yndib7cx1zvnpb8pjlvbbr"
+ }
+ },
+ {
+ "ename": "archive-rpm",
+ "commit": "e5f5653e62afdc022eac30bda3d21bd2d2625d2e",
+ "sha256": "0s53zbn71lb008gw3f0b5w4q0pw0vgiqbffgnyib24sh03ijl7z7",
+ "fetcher": "github",
+ "repo": "legoscia/archive-rpm",
+ "unstable": {
+ "version": [
+ 20180706,
+ 1232
+ ],
+ "commit": "59f83caebbd2f92fd634f6968e6d17b50ffa3dc7",
+ "sha256": "11ssqaax4jl7r3z5agzmc74sjsfvl0m3xvp015ncqzpzysla47g3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "59f83caebbd2f92fd634f6968e6d17b50ffa3dc7",
+ "sha256": "11ssqaax4jl7r3z5agzmc74sjsfvl0m3xvp015ncqzpzysla47g3"
+ }
+ },
+ {
+ "ename": "arduino-cli-mode",
+ "commit": "613b2f82b1fd035e725e574c750da408e8386cde",
+ "sha256": "1h49bfn4gn1h2xdb6axhbg6wm74h4fmiylcm55lwg9ri57rcdqkl",
+ "fetcher": "github",
+ "repo": "motform/arduino-cli-mode",
+ "unstable": {
+ "version": [
+ 20200812,
+ 935
+ ],
+ "commit": "80c5aa6a29a192f9a9d3ba3d7fb7446b1281051a",
+ "sha256": "1bj4vlvryk2k3920zc9pg9jca9385hji76nrx7avhd6jsjjm79mf"
+ }
+ },
+ {
+ "ename": "arduino-mode",
+ "commit": "2db785f52c2facc55459e945ccb4d4b088506747",
+ "sha256": "1amqah0sx95866ikdlc7h7n9hmrwaqizc0rj0gliv15kjjggv55v",
+ "fetcher": "github",
+ "repo": "stardiviner/arduino-mode",
+ "unstable": {
+ "version": [
+ 20200819,
+ 103
+ ],
+ "deps": [
+ "cl-lib",
+ "spinner"
+ ],
+ "commit": "16955f579c5caca223c0ba825075e3573dcf2288",
+ "sha256": "1vf3ahvs81i0fa3rbwz3i67ahf3x169pv879p5igxk93xf6whqnp"
+ }
+ },
+ {
+ "ename": "aria2",
+ "commit": "89a55e7c313066ae1bc0db0af5c289814c85fcb1",
+ "sha256": "1gsqdqs3q86k7q88rf7qamc0sp5ca00xn9kr1r717vf6qq6a0c3c",
+ "fetcher": "gitlab",
+ "repo": "ukaszg/aria2",
+ "unstable": {
+ "version": [
+ 20190816,
+ 25
+ ],
+ "commit": "32e08d5a8ad2f305578e0f783e087c1d312238c7",
+ "sha256": "00135gq4xfblv50dwxq02dd1y18xv29lrl7iir3caq4pr3nhrshg"
+ }
+ },
+ {
+ "ename": "ariadne",
+ "commit": "89635cd11621b04a8575629ec1bf196fb3ea5d43",
+ "sha256": "0lfhving19wcfr40gjb2gnginiz8cncixiyyxhwx08lm84qb3a7p",
+ "fetcher": "github",
+ "repo": "manzyuk/ariadne-el",
+ "unstable": {
+ "version": [
+ 20131117,
+ 1711
+ ],
+ "deps": [
+ "bert"
+ ],
+ "commit": "6fe401c7f996bcbc2f685e7971324c6f5e5eaf15",
+ "sha256": "0vh9wfc3657sd12ybjcrxpg6f757x2ghkcl1lw01szmyy5vmj27h"
+ }
+ },
+ {
+ "ename": "arjen-grey-theme",
+ "commit": "ed9804061cfadd26c69bb1bfe63dbe22f916f723",
+ "sha256": "18q66f7hhys2ab9ljsdp9013mp7d6v6d1lrb0d1bb035r1b4pfj7",
+ "fetcher": "github",
+ "repo": "credmp/arjen-grey-theme",
+ "unstable": {
+ "version": [
+ 20170522,
+ 2047
+ ],
+ "commit": "4cd0be72b65d42390e2105cfdaa408a1ead8d8d1",
+ "sha256": "1n5axwn498ahb6984ir1zfl8vvwgbvq9bbrdfzydkmjljhgrp0rd"
+ }
+ },
+ {
+ "ename": "artbollocks-mode",
+ "commit": "22b237ab91ddd3c17986ea12e6a32f2ce62d3a79",
+ "sha256": "0dlnxicn6nzyiz44y92pbl4nzr9jxfb9a99wacjrwq2ahdrwhhjp",
+ "fetcher": "github",
+ "repo": "sachac/artbollocks-mode",
+ "unstable": {
+ "version": [
+ 20170524,
+ 422
+ ],
+ "commit": "33a41ca4f8206f57e5498a526d3b0ea18d08bb93",
+ "sha256": "06a2dp6nwy8xjr01k6d2c611qr2n9m7hdkrz9fci9r4rv1ikx5xv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "commit": "583c7048a1b09cd79554423d5115f5ddd129d190",
+ "sha256": "133c1n4ra7z3vb6y47400y71a6ac19pyji0bgd4kr9fcbx0flx91"
+ }
+ },
+ {
+ "ename": "arview",
+ "commit": "31574cd756f4f93e2c6bcad5eca33a3294cccd54",
+ "sha256": "0d935lj0x3rbar94l7288xrgbcp1wmz6r2l0b7i89r5piczyiy1y",
+ "fetcher": "github",
+ "repo": "afainer/arview",
+ "unstable": {
+ "version": [
+ 20160419,
+ 2109
+ ],
+ "commit": "5437b4221b64b238c273a651d4792c577dba6d45",
+ "sha256": "1yvirfmvf6v5khl7zhx2ddv9bbxnx1qhwfzi0gy2nmbxlykb6s2j"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "5437b4221b64b238c273a651d4792c577dba6d45",
+ "sha256": "1yvirfmvf6v5khl7zhx2ddv9bbxnx1qhwfzi0gy2nmbxlykb6s2j"
+ }
+ },
+ {
+ "ename": "ascii-table",
+ "commit": "d6d5599ff68bf9125a9825ddd2a00009242bf2e1",
+ "sha256": "0p3dyxzs5xaq17209nnf2cqs87hz2b1k3x1nkq4jvhn71v4jcaj1",
+ "fetcher": "github",
+ "repo": "lassik/emacs-ascii-table",
+ "unstable": {
+ "version": [
+ 20200329,
+ 1744
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "572b62c8305b8c26082a17e15bc2f53066ddcb5a",
+ "sha256": "1k1wfbwzn9gjv7hmc7ffr3r211vxrxassryar6gnajmj9xbzwcgi"
+ }
+ },
+ {
+ "ename": "asilea",
+ "commit": "858e673c66e876d80f41d47d307c944d7bdb147d",
+ "sha256": "1lb8nr6r6yy06m4pxg8w9ja4zv8k5xwhl95v2wv95y1qwhgnwg3j",
+ "fetcher": "github",
+ "repo": "Fanael/asilea",
+ "unstable": {
+ "version": [
+ 20150105,
+ 1525
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2aab1cc63b64ef08d12e84fd7ba5c94065f6039f",
+ "sha256": "1s973vzivibaqjb8acn4ylrdasxh17jcfmmvqp4wm05nwhg75597"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2aab1cc63b64ef08d12e84fd7ba5c94065f6039f",
+ "sha256": "1s973vzivibaqjb8acn4ylrdasxh17jcfmmvqp4wm05nwhg75597"
+ }
+ },
+ {
+ "ename": "asn1-mode",
+ "commit": "b694baceceb54810be8f8c7152b2ac0b4063f01c",
+ "sha256": "0iswisb08dqz7jc5ra4wcdhbmglildgyrb547dm5362xmvm9ifmy",
+ "fetcher": "github",
+ "repo": "kawabata/asn1-mode",
+ "unstable": {
+ "version": [
+ 20170729,
+ 226
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "d5d4a8259daf708411699bcea85d322f18beb972",
+ "sha256": "067khpi4ghzyifrk1vhi57n3alp67qks4k4km11hasiavi5gsjmp"
+ }
+ },
+ {
+ "ename": "assess",
+ "commit": "6f917a34506193f2674b195569dfd3c13ba62c1d",
+ "sha256": "0xj3f48plwxmibax00qn15ya7s0h560xzwr8nkwl5r151v1mc9rr",
+ "fetcher": "github",
+ "repo": "phillord/assess",
+ "unstable": {
+ "version": [
+ 20200211,
+ 1817
+ ],
+ "deps": [
+ "m-buffer"
+ ],
+ "commit": "5bac045b273623772b6a2d820997d50f7ab4e466",
+ "sha256": "0mq59wz9anvywazl7d01fis1z7z7fsp9c7pymrc8rgmz77xpwnqx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "m-buffer"
+ ],
+ "commit": "5bac045b273623772b6a2d820997d50f7ab4e466",
+ "sha256": "0mq59wz9anvywazl7d01fis1z7z7fsp9c7pymrc8rgmz77xpwnqx"
+ }
+ },
+ {
+ "ename": "astyle",
+ "commit": "b495f29653edd15cef8eb3c9ea4d8aea35b0ac75",
+ "sha256": "0vchbm2lb9qa66fspyylyv0snmrxjfpzc332j0k7pkp6cmi08fnh",
+ "fetcher": "github",
+ "repo": "storvik/emacs-astyle",
+ "unstable": {
+ "version": [
+ 20200328,
+ 616
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "04ff2941f08c4b731fe6a18ee1697436d1ca1cc0",
+ "sha256": "0midga1dz9yl7mzn6syb3iwnfpzvnfpqnxi9rsv63rqnrm36qy4q"
+ }
+ },
+ {
+ "ename": "asx",
+ "commit": "2eda72c3574c41184104532bb129cbe0efc8afd4",
+ "sha256": "0kijqfwkwm5kd1h3v0rab9fm8ivmqnmijy065iz5xhmi3yicx4aq",
+ "fetcher": "github",
+ "repo": "ragone/asx",
+ "unstable": {
+ "version": [
+ 20191024,
+ 1100
+ ],
+ "commit": "ec4bf74de602b97df1f306d51acf4cda45184aac",
+ "sha256": "1j505ijrgd0rwh69jl7677sgf5ryjwp160nrp0w0bskisrf028d7"
+ }
+ },
+ {
+ "ename": "async",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0s2qrmkqqfgi1ilzbj0rfk27f89p4dycdl1lqkbsm23j0zya53w4",
+ "fetcher": "github",
+ "repo": "jwiegley/emacs-async",
+ "unstable": {
+ "version": [
+ 20200809,
+ 501
+ ],
+ "commit": "36a10151e70e956e2f766ed9e65f4a9cfc8479b2",
+ "sha256": "08glbksm13kgxvy17x0kg01x9cgnkz01yqqnlwzfaan0zbf6brdl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9,
+ 4
+ ],
+ "commit": "67c369555de998eaabd60056dead038c6c50b8fd",
+ "sha256": "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"
+ }
+ },
+ {
+ "ename": "async-await",
+ "commit": "9d74ecf94e5dbb46a939d26833b7cd0efd159ca1",
+ "sha256": "1534rhr4j74qbndafdj9q2wggcn8gphhjn3id8p27wyxr5sh93ms",
+ "fetcher": "github",
+ "repo": "chuntaro/emacs-async-await",
+ "unstable": {
+ "version": [
+ 20200117,
+ 828
+ ],
+ "deps": [
+ "iter2",
+ "promise"
+ ],
+ "commit": "deef2bb343463f5196545f1dd8c2a32d0cb3b146",
+ "sha256": "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "iter2",
+ "promise"
+ ],
+ "commit": "deef2bb343463f5196545f1dd8c2a32d0cb3b146",
+ "sha256": "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"
+ }
+ },
+ {
+ "ename": "atcoder-tools",
+ "commit": "314396ec5a51460ad679ee9fcf3aa3970cd44229",
+ "sha256": "1rlsqqc7p351yyzmad4dvxrp5aj2788sg04019ybk83kacy0y5hf",
+ "fetcher": "github",
+ "repo": "sei40kr/emacs-atcoder-tools",
+ "unstable": {
+ "version": [
+ 20200109,
+ 1236
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "cfe61ed18ea9b3b1bfb6f9e7d80a47599680cd1f",
+ "sha256": "04v775vsy01h7wv2p4nc26d0p9ss8106v4whqfgd0c1rrkh5012p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "780fabbe5b3c890b3ae764e26b188603be294daa",
+ "sha256": "1pvnwzp0i1s19cyyzrkcannhx1jizvylxsr7qcipfiy2kmf8sbhz"
+ }
+ },
+ {
+ "ename": "atl-markup",
+ "commit": "42025212ccfe998023f7eb563588be76282d53de",
+ "sha256": "1123lbnc6hlycm6bg5f7292z7cdnp2iv0wb8mg0n0ydma524s6bm",
+ "fetcher": "github",
+ "repo": "jcs-elpa/atl-markup",
+ "unstable": {
+ "version": [
+ 20200810,
+ 845
+ ],
+ "commit": "79adac0149bb6083ad3a327c6bbdf56537282ee9",
+ "sha256": "1kd9fk1f3aaw0ikkbf9n6w5b2sy7v0xzsch688h8ac9rp6s2yws8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "commit": "876d8a31d5e233d5234231f1428f8edb013e30eb",
+ "sha256": "1czqi0l1jzhlb47n0grlrnx421wi9mdqb41abcfd33k4mjavv0iz"
+ }
+ },
+ {
+ "ename": "atom-dark-theme",
+ "commit": "d1f565871559d6ea4ca4bb2fbaebce58f2f383eb",
+ "sha256": "1ci61blm7wc83wm2iyax017ai4jljyag5j1mvw86rimmmjzr0v8f",
+ "fetcher": "github",
+ "repo": "whitlockjc/atom-dark-theme-emacs",
+ "unstable": {
+ "version": [
+ 20181022,
+ 1602
+ ],
+ "commit": "5c8610d0b45a536b8f7f9777297c86362685a357",
+ "sha256": "15mjn5z7f7x8k4lbab5xv2r88s9ch9b58znv6vwpqakp63rx8hsx"
+ }
+ },
+ {
+ "ename": "atom-one-dark-theme",
+ "commit": "3ba1c4625c9603372746a6c2edb69d65f0ef79f5",
+ "sha256": "0wwnkhq7vyysqiqcxc1jsn98155ri4mf4w03k7inl1f8ffpwahvw",
+ "fetcher": "github",
+ "repo": "jonathanchu/atom-one-dark-theme",
+ "unstable": {
+ "version": [
+ 20190705,
+ 554
+ ],
+ "commit": "623fc08252e30174401750a09168279571288c7f",
+ "sha256": "09y4zh0i07vq8njvi4y1vmjqip057y3w2rhd7qzz6326bjz75cxk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "commit": "c2ae343971f8cda7f5b5392552ce9281f52e53de",
+ "sha256": "1xyn8qiikng6vf5rbpfqz9ac10c69aip0w6v9l46w0qxsy8svyaj"
+ }
+ },
+ {
+ "ename": "atomic-chrome",
+ "commit": "35785773942a5510e2317ded5bdf872ffe434e8c",
+ "sha256": "0dx12mjdc4vhbvrcl61a7j247mgs71vvy0qqj6czbpfawfl46am9",
+ "fetcher": "github",
+ "repo": "alpha22jp/atomic-chrome",
+ "unstable": {
+ "version": [
+ 20180617,
+ 724
+ ],
+ "deps": [
+ "let-alist",
+ "websocket"
+ ],
+ "commit": "a505f638866f9e7b913784be0dc84f338e9ad449",
+ "sha256": "081465ahis2rvlklzn2vakbwn5dgr43ks4csp3arnlj11b43f3ai"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "let-alist",
+ "websocket"
+ ],
+ "commit": "38ce9127285e1ff45f0f39b9da36a682103bdb96",
+ "sha256": "01zwpdmq13iy3hsgijnqsg0yahjxngfbrnn1dd2x1bzpmr8hpxnz"
+ }
+ },
+ {
+ "ename": "attrap",
+ "commit": "b7420eca80a8c1776d68b1f121511cc265cc70dc",
+ "sha256": "1gxnrlsn9xcnnx0nhjxnhrz9bdpk2kpzjhj8jhjmwws9y361fimh",
+ "fetcher": "github",
+ "repo": "jyp/attrap",
+ "unstable": {
+ "version": [
+ 20200114,
+ 1928
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "flycheck",
+ "s"
+ ],
+ "commit": "4cf3e4a16255997e7c3c39682a72866a0a37dd4b",
+ "sha256": "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "flycheck",
+ "s"
+ ],
+ "commit": "4cf3e4a16255997e7c3c39682a72866a0a37dd4b",
+ "sha256": "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"
+ }
+ },
+ {
+ "ename": "auctex-cluttex",
+ "commit": "d08e481ad618a44f9bfa38c68ca30e67a6727538",
+ "sha256": "05cbiihq0k9d13l8xgd67yanxmj57hajcm2x2v3ils3lfkphqm5w",
+ "fetcher": "github",
+ "repo": "tsuu32/auctex-cluttex",
+ "unstable": {
+ "version": [
+ 20200531,
+ 402
+ ],
+ "deps": [
+ "auctex"
+ ],
+ "commit": "7e36dcb88c0021e48e7a095257e63e2913f75789",
+ "sha256": "1wfsd7kcjm8inbhacsilngjqcwfn5alr02m4bcpv5w8gjyc0qwgx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "auctex"
+ ],
+ "commit": "e358f7148092d8ed64703641b5621e130cce458d",
+ "sha256": "1whzcp9wvpwn1c33n7mqxx8v6g4apg3cq5h2ffl74423ysymry71"
+ }
+ },
+ {
+ "ename": "auctex-latexmk",
+ "commit": "3f48af615c56f093dff417a5d3b705f9993c518f",
+ "sha256": "1rdlgkiwlgm06i1gjxcfciz6wgdskfhln8qhixyfxk7pnz0ax327",
+ "fetcher": "github",
+ "repo": "tom-tan/auctex-latexmk",
+ "unstable": {
+ "version": [
+ 20170618,
+ 1636
+ ],
+ "deps": [
+ "auctex"
+ ],
+ "commit": "4d353522650d7685acbf1d38f7dbc504f734bd84",
+ "sha256": "0qvscgffmzqk8lkcg3yk91vciim5ygk2m4crk02qn72ipkw5q13m"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "auctex"
+ ],
+ "commit": "4d353522650d7685acbf1d38f7dbc504f734bd84",
+ "sha256": "0qvscgffmzqk8lkcg3yk91vciim5ygk2m4crk02qn72ipkw5q13m"
+ }
+ },
+ {
+ "ename": "auctex-lua",
+ "commit": "102c7b05f5bfff12ac2820cae58c0205ca450559",
+ "sha256": "0v999jvinljkvhbn205p36a6jfzppn0xvflvzr8mid1hnqlrpjhf",
+ "fetcher": "github",
+ "repo": "vermiculus/auctex-lua",
+ "unstable": {
+ "version": [
+ 20151121,
+ 1610
+ ],
+ "deps": [
+ "auctex",
+ "lua-mode"
+ ],
+ "commit": "799cd8ac10c96991bb63d9aa60528ae5d8c786b5",
+ "sha256": "0lgfgvnaln5rhhwgcrzwrhbj0gz8sgaf6xxdl7njf3sa6bfgngsz"
+ }
+ },
+ {
+ "ename": "audio-notes-mode",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "0q88xmi7jbrx47nvbbmwggbm6i7agzpnv5y7cpdh73lg165xsz2h",
+ "fetcher": "github",
+ "repo": "Malabarba/audio-notes-mode",
+ "unstable": {
+ "version": [
+ 20170611,
+ 2159
+ ],
+ "commit": "fa38350829c7e97257efc746a010471d33748a68",
+ "sha256": "1srg6rg3j9ri2cyr4g78dfqq3fhpn6hf3mq4iz2jfqjayppfv38b"
+ }
+ },
+ {
+ "ename": "aurel",
+ "commit": "d1612acd2cf1fea739739608113923ec51d307e9",
+ "sha256": "13zyi55ksv426pcksbm3l9s6bmp102w7j1xbry46bc48al6i2nnl",
+ "fetcher": "github",
+ "repo": "alezost/aurel",
+ "unstable": {
+ "version": [
+ 20170114,
+ 937
+ ],
+ "deps": [
+ "bui",
+ "dash"
+ ],
+ "commit": "fc7ad208f43f8525f84a18941c9b55f956df8961",
+ "sha256": "0mcbw8p4wrnnr39wzkfz9kc899w0k1jb00q1926mchf202cmnz94"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "deps": [
+ "bui",
+ "dash"
+ ],
+ "commit": "fc7ad208f43f8525f84a18941c9b55f956df8961",
+ "sha256": "0mcbw8p4wrnnr39wzkfz9kc899w0k1jb00q1926mchf202cmnz94"
+ }
+ },
+ {
+ "ename": "aurora-config-mode",
+ "commit": "10a44bed8edee646bf68abf7dffbe352a137a278",
+ "sha256": "1hpjwidqmjxanijsc1imc7ww9abbylmkin1p0846fbz1hz3a603c",
+ "fetcher": "github",
+ "repo": "bdd/aurora-config-mode.el",
+ "unstable": {
+ "version": [
+ 20180216,
+ 2302
+ ],
+ "commit": "8273ec7937a21b469b9dbb6c11714255b890f410",
+ "sha256": "1dlhf35hhjgkd9bqbpwrb825g1z6nh14mg31jg2avv55s28j0riy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "0a7ca7987c3a0824e25470389c7d25c337a81593",
+ "sha256": "0ns1xhpk1awbj3kv946dv11a99p84dhm54vjk72kslxwx42nia28"
+ }
+ },
+ {
+ "ename": "auth-source-pass",
+ "commit": "5e268441634a6e58a00e577d6e2292fa226c11b8",
+ "sha256": "0icwdwz2zy3f9ynksr81pgq482iapsbx8lpyssiklyw0xgd1k8ak",
+ "fetcher": "github",
+ "repo": "DamienCassou/auth-password-store",
+ "unstable": {
+ "version": [
+ 20191126,
+ 1242
+ ],
+ "commit": "ff4940c647786914b3cbef69103d96a4ea334111",
+ "sha256": "1swrr8wjrfzjy3x11lfby2jckw5fgvpaywhg2pzmwwvf9mr9xzdg"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 0,
+ 0
+ ],
+ "commit": "df074612114c3cc2fa1c3023f26ff182f9b1190a",
+ "sha256": "0qnqqdpbfr06nqw4hq7c1s7yh7zyrv4gqjj06v70cavjml7pagp6"
+ }
+ },
+ {
+ "ename": "auth-source-xoauth2",
+ "commit": "8ba0273c8aa2a50b9dc9b8312b860d94dfd808d5",
+ "sha256": "0g06240ix4gzw3fb74jcadiq7nissi20i1vsbzhkx35j10mv7wn3",
+ "fetcher": "github",
+ "repo": "ccrusius/auth-source-xoauth2",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1604
+ ],
+ "commit": "b0386d4a12a88c5635b26eaa4c9e355fc84fb3f6",
+ "sha256": "11i184s36ddxs06d8gq15nd0q59im8vfqnww3mvy35q12y6r8gpq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "5e646a32c9ba31a015a09fce1ad711b85717119a",
+ "sha256": "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"
+ }
+ },
+ {
+ "ename": "auto-async-byte-compile",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "0ks6xsxzayiyd0jl8m36xlc5p57p21qbhgq2mmz50a2lhpxxfiyg",
+ "fetcher": "github",
+ "repo": "rubikitch/auto-async-byte-compile",
+ "unstable": {
+ "version": [
+ 20160916,
+ 454
+ ],
+ "commit": "8681e74ddb8481789c5dbb3cafabb327db4c4484",
+ "sha256": "1g98gla9qdqmifsxakhkbxlljy2ln1s3wfahk9zycrwgzfjlsdf4"
+ }
+ },
+ {
+ "ename": "auto-auto-indent",
+ "commit": "2ad2ea105b895cb958ce0ab2bf2fad2b40d41b2f",
+ "sha256": "08s73pnyrmklb660jl5rshncpq31z3m9fl55v7453ch8syp7gzh7",
+ "fetcher": "github",
+ "repo": "sabof/auto-auto-indent",
+ "unstable": {
+ "version": [
+ 20131106,
+ 1903
+ ],
+ "deps": [
+ "cl-lib",
+ "es-lib"
+ ],
+ "commit": "0139378577f936d34b20276af6f022fb457af490",
+ "sha256": "1whbvqylwnxg8d8gn55kcky39rgyc49rakyxlbkplh813lk6lxb7"
+ }
+ },
+ {
+ "ename": "auto-compile",
+ "commit": "57a2fb9524df3fdfdc54c403112e12bd70888b23",
+ "sha256": "08k9wqk4yysps8n5n50v7lpadwsnm553pv9p7m242fwbgbsgz6nf",
+ "fetcher": "github",
+ "repo": "emacscollective/auto-compile",
+ "unstable": {
+ "version": [
+ 20191020,
+ 1040
+ ],
+ "deps": [
+ "packed"
+ ],
+ "commit": "3e92c5b1a94b0cf43f2d624180a1cb01df92afd8",
+ "sha256": "1f270axx8cpl1fgrwaxjbwyhkacp1b9whmn9f3mjpwkr55ih7wgl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 2
+ ],
+ "deps": [
+ "packed"
+ ],
+ "commit": "3e92c5b1a94b0cf43f2d624180a1cb01df92afd8",
+ "sha256": "1f270axx8cpl1fgrwaxjbwyhkacp1b9whmn9f3mjpwkr55ih7wgl"
+ }
+ },
+ {
+ "ename": "auto-complete",
+ "commit": "083fb071191bccd6feb3fb84569373a597440fb1",
+ "sha256": "1c4ij5bnclg94jdzhkqvq2vxwv6wvs051mbki1ibjm5f2hlacvh3",
+ "fetcher": "github",
+ "repo": "auto-complete/auto-complete",
+ "unstable": {
+ "version": [
+ 20170125,
+ 245
+ ],
+ "deps": [
+ "cl-lib",
+ "popup"
+ ],
+ "commit": "c0836fa0662095071e3c40237db611063e3c3ceb",
+ "sha256": "1269k2q1hv1yixn7w32ani7g0zspiiwfmbywxi8lvh9hj0asbrsc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "popup"
+ ],
+ "commit": "0655b7f1e6c0f8475adc55f2b86404a877f26a77",
+ "sha256": "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"
+ }
+ },
+ {
+ "ename": "auto-complete-auctex",
+ "commit": "77167fb2e84bed32ace9490c1ed4148719e4cf8e",
+ "sha256": "00npvryds5wd3d5a13r9prlvw6vvjlag8d32x5xf9bfmmvs0fgqh",
+ "fetcher": "github",
+ "repo": "monsanto/auto-complete-auctex",
+ "unstable": {
+ "version": [
+ 20140223,
+ 1758
+ ],
+ "deps": [
+ "auto-complete",
+ "yasnippet"
+ ],
+ "commit": "855633f668bcc4b9408396742a7cb84e0c4a2f77",
+ "sha256": "1wri8q5llpy1q1h4ac4kjnnkgj6fby8i9vrpr6mrb13d4gnk4gr2"
+ }
+ },
+ {
+ "ename": "auto-complete-c-headers",
+ "commit": "0174b70fec45ddec9c1e9555adc82fef59054135",
+ "sha256": "02pkrxvzrpyjrr2fkxnl1qw06aspzv8jlp2c1piln6zcjd92l3j7",
+ "fetcher": "github",
+ "repo": "mooz/auto-complete-c-headers",
+ "unstable": {
+ "version": [
+ 20150912,
+ 323
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "52fef720c6f274ad8de52bef39a343421006c511",
+ "sha256": "12mzi6bwg702sp0f0wd1ag555blbpk252rr9rqs03bn8pkw89h4n"
+ }
+ },
+ {
+ "ename": "auto-complete-chunk",
+ "commit": "306e2528638d97c28372df55a9376750d3fde1d4",
+ "sha256": "1937j1xm20vfcqm9ig4nvciqfkz7rpw0nsfhlg69gkmv0nqszdr3",
+ "fetcher": "github",
+ "repo": "tkf/auto-complete-chunk",
+ "unstable": {
+ "version": [
+ 20140225,
+ 946
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "a9aa77ffb84a1037984a7ce4dda25074272f13fe",
+ "sha256": "1zhbpxpl443ghpkl9i68jcjfcw1vnf8ky06pf5qjjmqbxlcyd9li"
+ }
+ },
+ {
+ "ename": "auto-complete-clang",
+ "commit": "eab7d88a893fdf76c22f0aa5ac3577efd60fc9b4",
+ "sha256": "1rnmphl7ml5ryjl5ka2l58hddir8b34iz1rm905wdwh164piljva",
+ "fetcher": "github",
+ "repo": "brianjcj/auto-complete-clang",
+ "unstable": {
+ "version": [
+ 20140409,
+ 752
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "a195db1d0593b4fb97efe50885e12aa6764d998c",
+ "sha256": "12y6f47xbjl4gy14j2f5wlisy5vl6rhx74n27w61pjv38m0a7mi1"
+ }
+ },
+ {
+ "ename": "auto-complete-clang-async",
+ "commit": "23aa24b025216359c5e600eee2f2cd4ecc7556e3",
+ "sha256": "1jj0jn1v3070g7g0j5gvpybv145kki8nsjxqb8fjf9qag8ilfkjh",
+ "fetcher": "github",
+ "repo": "Golevka/emacs-clang-complete-async",
+ "unstable": {
+ "version": [
+ 20130526,
+ 1514
+ ],
+ "commit": "5d9c5cabbb6b31e0ac3637631c0c8b25184aa8b4",
+ "sha256": "1sw0wxrjcjqk0w1llfj376g6axa5bnk2lq2vv66746bkz14h0s8f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "a5114e3477793ccb9420acc5cd6a1cb26be65964",
+ "sha256": "1kp2l1cgzlg2g3wllz4gl1ssn4lnx2sn26xqigfrpr8y5rj2bsfj"
+ }
+ },
+ {
+ "ename": "auto-complete-distel",
+ "commit": "90fff35dd9709b06802edef89d1fe6a96b7115a6",
+ "sha256": "0ca242gl8dl4rmg8qqyhgxvf46fprl2npbq2w8f6s546s9nql4jk",
+ "fetcher": "github",
+ "repo": "sebastiw/distel-completion",
+ "unstable": {
+ "version": [
+ 20180827,
+ 1344
+ ],
+ "deps": [
+ "auto-complete",
+ "distel-completion-lib"
+ ],
+ "commit": "acc4c0a5521904203d797fe96b08e5fae4233c7e",
+ "sha256": "0yvp3dwa9mwfyrqla27ycwyjad4bp1267bxv0chxcr4528hnygl3"
+ }
+ },
+ {
+ "ename": "auto-complete-exuberant-ctags",
+ "commit": "1cc9786ed8cea2461b592f860d8e2a0897c57068",
+ "sha256": "1i2s3ycc8jafkzdsz3kbvx1hh95ydi5s6rq6n0wzw1kyy3km35gd",
+ "fetcher": "github",
+ "repo": "k1LoW/auto-complete-exuberant-ctags",
+ "unstable": {
+ "version": [
+ 20140320,
+ 724
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "ff6121ff8b71beb5aa606d28fd389c484ed49765",
+ "sha256": "1fqgyg986fg1dzac5wa97bx82mfddqb6qrfnpr3zksmw3vgykxr0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 7
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "ff6121ff8b71beb5aa606d28fd389c484ed49765",
+ "sha256": "1fqgyg986fg1dzac5wa97bx82mfddqb6qrfnpr3zksmw3vgykxr0"
+ }
+ },
+ {
+ "ename": "auto-complete-nxml",
+ "commit": "c89dcbf03a802a4361e44174a332a312e352be36",
+ "sha256": "0viscr5k1carn9vhflry16kgihr6fvh6h36b049pgnk6ww085k6a",
+ "fetcher": "github",
+ "repo": "aki2o/auto-complete-nxml",
+ "unstable": {
+ "version": [
+ 20140221,
+ 458
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "ac7b09a23e45f9bd02affb31847263de4180163a",
+ "sha256": "18bf1kw85mab0zp7rn85cm1nxjxg5c1dmiv0j0mjwzsv8an4px5y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "ac7b09a23e45f9bd02affb31847263de4180163a",
+ "sha256": "18bf1kw85mab0zp7rn85cm1nxjxg5c1dmiv0j0mjwzsv8an4px5y"
+ }
+ },
+ {
+ "ename": "auto-complete-pcmp",
+ "commit": "f5c53a8aeaaab23e032a8e7cb5cad7e531a1662c",
+ "sha256": "1mpgkwj8jwpvxphlm6iaprwjrldmihbgg97jav0fbm1kjnm4azna",
+ "fetcher": "github",
+ "repo": "aki2o/auto-complete-pcmp",
+ "unstable": {
+ "version": [
+ 20140227,
+ 651
+ ],
+ "deps": [
+ "auto-complete",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "2595d3dab1ef3549271ca922f212928e9d830eec",
+ "sha256": "1hf2f903hy9afahrgy2fx9smgn631drs6733188zgqi3nkyizj26"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "auto-complete",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "2595d3dab1ef3549271ca922f212928e9d830eec",
+ "sha256": "1hf2f903hy9afahrgy2fx9smgn631drs6733188zgqi3nkyizj26"
+ }
+ },
+ {
+ "ename": "auto-complete-rst",
+ "commit": "4c948dc47f67aa47a1607cbdacdc95241d1a658f",
+ "sha256": "0dazkpnzzr0imb2a01qq8l60jxhhlknzjx7wccnbm7d2rk3338m6",
+ "fetcher": "github",
+ "repo": "tkf/auto-complete-rst",
+ "unstable": {
+ "version": [
+ 20140225,
+ 944
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "4803ce41a96224e6fa54e6741a5b5f40ebed7351",
+ "sha256": "107svb82cgfns9kcrmy3hh56cab81782jkbz5i9959ms81xizfb8"
+ }
+ },
+ {
+ "ename": "auto-complete-sage",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0ic60b9jnzgidpwxriwamicimyqa8y4hqfbkxmwcrp0snk4nf4hn",
+ "fetcher": "github",
+ "repo": "sagemath/auto-complete-sage",
+ "unstable": {
+ "version": [
+ 20160514,
+ 751
+ ],
+ "deps": [
+ "auto-complete",
+ "sage-shell-mode"
+ ],
+ "commit": "51b8e3905196d266e1f8aa47881189833151b398",
+ "sha256": "139in1jgxg43v7ji4i1qmxbgspr71h95lzlz0fvdk78vkxc5842b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "auto-complete",
+ "sage-shell-mode"
+ ],
+ "commit": "a61a4e58b14134712e0737280281c0b10e56da93",
+ "sha256": "0l49ciic7g30vklxq6l1ny3mz87l5p8qc30rmkjvkzvg8r52ksn3"
+ }
+ },
+ {
+ "ename": "auto-dictionary",
+ "commit": "1711d710ac09fe407fde89ee351ccdcb78555d35",
+ "sha256": "1va485a8lxvb3507kr83cr6wpssxnf8y4l42mamn9daa8sjx3q16",
+ "fetcher": "github",
+ "repo": "nschum/auto-dictionary-mode",
+ "unstable": {
+ "version": [
+ 20150410,
+ 1610
+ ],
+ "commit": "b364e08009fe0062cf0927d8a0582fad5a12b8e7",
+ "sha256": "0rfjx0x2an28821shgb4v5djza4kwn5nnrsl2cvh3px4wrvw3izp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "0e3567a81f7bb0ad53ed9f20c7d3d1ac40c26ad1",
+ "sha256": "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"
+ }
+ },
+ {
+ "ename": "auto-dim-other-buffers",
+ "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
+ "sha256": "0n9d23sfcmkjfqlm80vrgf856wy08ak4n4rk0z7vadq07yj46zxh",
+ "fetcher": "github",
+ "repo": "mina86/auto-dim-other-buffers.el",
+ "unstable": {
+ "version": [
+ 20200801,
+ 2029
+ ],
+ "commit": "cad370fb6c9fc7186c2af221932e097af5900a2d",
+ "sha256": "0hjxadi8245zwwsp0kdz0c6i1j25drbky5cvksdnc8xw2l91kpbs"
+ }
+ },
+ {
+ "ename": "auto-highlight-symbol",
+ "commit": "fdf73ee62f0a4e762e3a1aa94284abea8da8ce7c",
+ "sha256": "02mkji4sxym07jf5ww5kgv1c18x0xdfn8cmvgns5h4gij64lnr66",
+ "fetcher": "github",
+ "repo": "gennad/auto-highlight-symbol",
+ "unstable": {
+ "version": [
+ 20130313,
+ 943
+ ],
+ "commit": "26573de912d760e04321b350897aea70958cee8b",
+ "sha256": "0jfiax1qqnyznhlnqkjsr9nnv7fpjywvfhj9jq59460j0nbrgs5c"
+ }
+ },
+ {
+ "ename": "auto-indent-mode",
+ "commit": "49af78177278e7072c70fde0eaa5bb82490ebe9d",
+ "sha256": "1nk78p8lqs8cx90asfs8iaqnwwyy8fi5bafaprm9c0nrxz299ibz",
+ "fetcher": "github",
+ "repo": "mattfidler/auto-indent-mode.el",
+ "unstable": {
+ "version": [
+ 20191112,
+ 1418
+ ],
+ "commit": "ebb1ee5ca24f3040c34b9455502a0e94f19903d0",
+ "sha256": "19p73jws7iddgs14cnfz9lb5ggyicqk08pasf66fkcvyhzydnwkm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 126
+ ],
+ "commit": "ad7032ee058a74405d04d775b0b384351536bc53",
+ "sha256": "1hlsgsdxpx42kmqkjgy9b9ldz5i4dbi879v87pjd2qbkj8iywb6y"
+ }
+ },
+ {
+ "ename": "auto-minor-mode",
+ "commit": "b3ab5f048034777551e344101d8415cac92362c8",
+ "sha256": "1dpdylrpw1pvlmhh229b3lqs07drx9kdhw4vcv5a48qah14dz6qa",
+ "fetcher": "github",
+ "repo": "joewreschnig/auto-minor-mode",
+ "unstable": {
+ "version": [
+ 20180527,
+ 1123
+ ],
+ "commit": "17cfa1b54800fdef2975c0c0531dad34846a5065",
+ "sha256": "1jgq9b262pjr6npza3k0p2glb6mpp0dfpslgx3i2p8a5ipwhwaqa"
+ },
+ "stable": {
+ "version": [
+ 20180527,
+ 1
+ ],
+ "commit": "c62f4e04c7b73835c399f0348bea0ade2720bcbb",
+ "sha256": "0vqqy6nbb884h8qhzqvjycvfqbm9pbhqxr3dlxrhfx8m6c3iasq1"
+ }
+ },
+ {
+ "ename": "auto-org-md",
+ "commit": "39f934f86b5dc04078c204bcbd268af60857e268",
+ "sha256": "1yh9g8407kym6r0b8kr18qshxlrkw47ac17a9lvql0ksshfmnqvk",
+ "fetcher": "github",
+ "repo": "jamcha-aa/auto-org-md",
+ "unstable": {
+ "version": [
+ 20180213,
+ 2343
+ ],
+ "commit": "9318338bdb7fe8bd698d88f3af89b2d6413efdd2",
+ "sha256": "1dzxc1f4yvj8xww5drcpzmn3fyi8ziimh1cmy6l3i399l1zl0njj"
+ }
+ },
+ {
+ "ename": "auto-package-update",
+ "commit": "78f549a299a06941edce13381f597f3a61e8c723",
+ "sha256": "0fdcniq5mrwbc7yvma4088r0frdfvc2ydfil0s003faz0nrjcp8k",
+ "fetcher": "github",
+ "repo": "rranelli/auto-package-update.el",
+ "unstable": {
+ "version": [
+ 20200421,
+ 309
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "cf7f7486ed699f2ed7cc8af950740aece0de6124",
+ "sha256": "14sq8p3qbhlfmpisanjxpginiibngmb84mjga97aq5sgpxy38wix"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "cdef79f9fc6f8347fdd05664978fb9a948ea0410",
+ "sha256": "05llpa6g4nb4qswmcn7j3bs7hnmkrkax7hsk7wvklr0wrljyg9a2"
+ }
+ },
+ {
+ "ename": "auto-pause",
+ "commit": "275d1b1bf1eb47cd9c769286c03b2b9aff9d74dd",
+ "sha256": "0cdak2kicxylj5f161kia0bzzqad426y8cj4zf04gcl0nndijyrc",
+ "fetcher": "github",
+ "repo": "lujun9972/auto-pause",
+ "unstable": {
+ "version": [
+ 20160426,
+ 1216
+ ],
+ "commit": "a4d778de774ca3895542cb559a953e0d98657338",
+ "sha256": "1pxhqwvg059pslin6z87jd8d0q44ljwvdn6y23ffrz9kfpn3m5m2"
+ }
+ },
+ {
+ "ename": "auto-read-only",
+ "commit": "189e394eb9fac09783c75ff1b64facdd745a0454",
+ "sha256": "1cvh2c7pgdxgnl0fr1lymz9pf573hj6dn8cjcb64wdczkrci7yk5",
+ "fetcher": "github",
+ "repo": "zonuexe/auto-read-only.el",
+ "unstable": {
+ "version": [
+ 20200726,
+ 1356
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a6c493c5279d484c00ce7fe75dfd2e60101b97db",
+ "sha256": "0wg6pl69k1hy69hgsqry5zahycr1n13avjfrw7g3sva71rqzkzrn"
+ }
+ },
+ {
+ "ename": "auto-rename-tag",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "05ln7dj57f3rjhmvbwy6fpn71ln4fw94qiw120qby199da1an28f",
+ "fetcher": "github",
+ "repo": "jcs-elpa/auto-rename-tag",
+ "unstable": {
+ "version": [
+ 20200717,
+ 814
+ ],
+ "commit": "7227c93e58a2c1837aa35ca35b6325c6f734d0f9",
+ "sha256": "1q029xy4ssb6lvd199yl1p63ir142q9waw31v2zagxlyn9rs9qx9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 9
+ ],
+ "commit": "7227c93e58a2c1837aa35ca35b6325c6f734d0f9",
+ "sha256": "1q029xy4ssb6lvd199yl1p63ir142q9waw31v2zagxlyn9rs9qx9"
+ }
+ },
+ {
+ "ename": "auto-save-buffers-enhanced",
+ "commit": "d221a217e9f6a686fa2a8b120a1f0b43c4482ce6",
+ "sha256": "123vf6nnvdhrrfjn8n8h8a11mkqmy2zm3w3yn99np0zj31x8z7bb",
+ "fetcher": "github",
+ "repo": "kentaro/auto-save-buffers-enhanced",
+ "unstable": {
+ "version": [
+ 20161109,
+ 710
+ ],
+ "commit": "461e8c816c1b7c650be5f209078b381fe55da8c6",
+ "sha256": "0ckjijjpqpbv9yrqfnl3x9hcdwwdgvm5r2vyx1a9nk4d3i0hd9i5"
+ }
+ },
+ {
+ "ename": "auto-shell-command",
+ "commit": "ea710bfa77fee7c2688eea8258ca9d2105d1896e",
+ "sha256": "1i78fh72i8yv91rnabf0vs78r43qrjkr36hndmn5ya2xs3b1g41j",
+ "fetcher": "github",
+ "repo": "ongaeshi/auto-shell-command",
+ "unstable": {
+ "version": [
+ 20180817,
+ 1502
+ ],
+ "deps": [
+ "deferred",
+ "popwin"
+ ],
+ "commit": "a8f9213e3c773b5687b81881240e6e648f2f56ba",
+ "sha256": "1b0kgqh521y16cx84rbsr244i4fs3l8h4wqjy2zdpwbpbikx1hxk"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "deferred",
+ "popwin"
+ ],
+ "commit": "59d4abce779a3ce3e920592bf5696b54b2e192c7",
+ "sha256": "1h8zsgw30axprs7a5kkygbhvilillzazxgqz01ng36il65fi28s6"
+ }
+ },
+ {
+ "ename": "auto-sudoedit",
+ "commit": "7cf6bc8bb7b618d74427622b9b2812daa79a3767",
+ "sha256": "1clp52fqxsilyi62p1cabhan55lbwax6fqlhccyjbl36yrdig3fh",
+ "fetcher": "github",
+ "repo": "ncaq/auto-sudoedit",
+ "unstable": {
+ "version": [
+ 20200427,
+ 635
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "0ad8247fdd0f1d747cd1ff73adb6b5efcecc7f3b",
+ "sha256": "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "0ad8247fdd0f1d747cd1ff73adb6b5efcecc7f3b",
+ "sha256": "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"
+ }
+ },
+ {
+ "ename": "auto-virtualenv",
+ "commit": "ccb91515d9a8195061429ed8df3471867d211f9a",
+ "sha256": "0xv51g74l5pxa3s185867dpc98m6y26xbj5wgz7f9177qchvdbhk",
+ "fetcher": "github",
+ "repo": "marcwebbie/auto-virtualenv",
+ "unstable": {
+ "version": [
+ 20200729,
+ 2204
+ ],
+ "deps": [
+ "cl-lib",
+ "pyvenv",
+ "s"
+ ],
+ "commit": "214604ebd3366078d03814a344c3249268d1f15a",
+ "sha256": "14waa4v6nr0ybyncgfjg96r43ma4lw57iyma0chvpqifmbs6ski0"
+ }
+ },
+ {
+ "ename": "auto-virtualenvwrapper",
+ "commit": "02a209ae8f9fc68feb3bb64d32d129fedef2b80b",
+ "sha256": "1v82z922d9sadwvyrl4iddsa19f5k43s6iwn8w146jcl0v42bkmd",
+ "fetcher": "github",
+ "repo": "robert-zaremba/auto-virtualenvwrapper.el",
+ "unstable": {
+ "version": [
+ 20200510,
+ 1006
+ ],
+ "deps": [
+ "cl-lib",
+ "s",
+ "virtualenvwrapper"
+ ],
+ "commit": "30fb54aa3c99f3c614ea9a92669d634df30c9439",
+ "sha256": "19qycxf6ln60s604j5rn3qfsy2rbzdbw4gwkiprdiq1bkmphbwzj"
+ }
+ },
+ {
+ "ename": "auto-yasnippet",
+ "commit": "d33c0aee6a5d27217bbae28fc8f448c3badc8a4b",
+ "sha256": "02281gyy07cy72a29fjsixg9byqq3izb9m1jxv98ni8pcy3bpsqa",
+ "fetcher": "github",
+ "repo": "abo-abo/auto-yasnippet",
+ "unstable": {
+ "version": [
+ 20191015,
+ 942
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "db9e0dd4335b2202cd5dac95bbbc87a1032d9bbe",
+ "sha256": "0az8pip0gsq5xqpfizcz4rmj5hmkvz1fdkg996k9qqacp17p2caj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "5cc54edbe03c0061bf69883a3e39d3bb16019e0f",
+ "sha256": "0n3r7j83csby2s7284hy5pycynazyrkljxkn6xqn08gvxbbbdpdq"
+ }
+ },
+ {
+ "ename": "autobookmarks",
+ "commit": "e40e6ebeb30b3f23ad37a695e011431a48c5a62e",
+ "sha256": "11zhg3y9fb5mq67fwsnjrql9mnwkp3hwib7fpllb3yyf2yywc8zp",
+ "fetcher": "github",
+ "repo": "Fuco1/autobookmarks",
+ "unstable": {
+ "version": [
+ 20190919,
+ 841
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "224b24950d3ae57cd16d7417c07fda337fe0ea09",
+ "sha256": "0cfx447185shbiadhbar72bgqwzmbia82f8a2py215hgw9wrgqr9"
+ }
+ },
+ {
+ "ename": "autobuild",
+ "commit": "c738dea2608e68ec0758cb9d5fde1af472f49f1e",
+ "sha256": "0k5s86xcva3v0zg3dcpkrrcvxxk93gfp7nb80dvac8dyk1qx99bd",
+ "fetcher": "github",
+ "repo": "erjoalgo/autobuild",
+ "unstable": {
+ "version": [
+ 20200713,
+ 227
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6c10b13c285cc4180dc64c1f89ead264e6786f53",
+ "sha256": "02zjfv5365misiivjgjwwrp6bly7z81vnndkyrn6xzv88d2l2byv"
+ }
+ },
+ {
+ "ename": "autocrypt",
+ "commit": "c5aac210984709f020f96f3ca166185900accddf",
+ "sha256": "1y5p5n2p2qk638i1as3wbfz82r08jv4q91470xz9r1gkdnn1xyx8",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~zge/autocrypt",
+ "unstable": {
+ "version": [
+ 20200505,
+ 1717
+ ],
+ "commit": "d77140654405cabd007621606aca9beb512dff7a",
+ "sha256": "0cr2q5dfvh85m6zlc2glssxj81py0hrvg9kh7bk6r33j0zygbr7r"
+ }
+ },
+ {
+ "ename": "autodisass-java-bytecode",
+ "commit": "a094845521d76754a29435012af5fba9f7975a8e",
+ "sha256": "1k19nkbxnysm3qkpdhz4gv2x9nnrp94xl40x84q8n84s6xaan4dc",
+ "fetcher": "github",
+ "repo": "gbalats/autodisass-java-bytecode",
+ "unstable": {
+ "version": [
+ 20151005,
+ 1612
+ ],
+ "commit": "3d61dbe266133c950b39e880f78d142751c7dc4c",
+ "sha256": "1pf2mwnicj5x2kksxwmrzz2vfxj9y9r6rzgc1fl8028mfrmrmg8s"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "3d61dbe266133c950b39e880f78d142751c7dc4c",
+ "sha256": "1pf2mwnicj5x2kksxwmrzz2vfxj9y9r6rzgc1fl8028mfrmrmg8s"
+ }
+ },
+ {
+ "ename": "autodisass-llvm-bitcode",
+ "commit": "657e8f6bd0e44f11db8480ca42fb29d85fc3ec29",
+ "sha256": "0bh73nzll9jp7kiqfnb5dwkipw85p3c3cyq58s0nghig02z63j01",
+ "fetcher": "github",
+ "repo": "gbalats/autodisass-llvm-bitcode",
+ "unstable": {
+ "version": [
+ 20150411,
+ 125
+ ],
+ "commit": "d2579e3a1427af2dc947c343e49eb3434078bf04",
+ "sha256": "1fq4h5fmamyh7z8nq6pigx74p5v8k3qfm64k66vwsm8bl5jdkw17"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "14bb1bfe2be3b04d6e0c87a7a9d1e88ce15506d0",
+ "sha256": "1hyp49bidwc53cr25wwwyzcd0cbbqzxkfcpnccimphv24qfsai85"
+ }
+ },
+ {
+ "ename": "autopair",
+ "commit": "4150455d424326667390f72f6edd22b274d9fa01",
+ "sha256": "0l2ypsj3dkasm0lj9jmnaqjs3rv97ldfw8cmayv77mzfd6lhjmh3",
+ "fetcher": "github",
+ "repo": "joaotavora/autopair",
+ "unstable": {
+ "version": [
+ 20160304,
+ 1237
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2b6d72bccb0ebba6e7e711528872b898b0c65b0a",
+ "sha256": "09p56vi5zgm2djglimwyhv4n4gyydjndzn46vg9qzzlxvvmw66i1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2d1eb81d12f71248ad305e70cceddf08d4fe2b39",
+ "sha256": "0g6kd1r0wizamw26bhp5jkvpsd98rcybkfchc622b9v5b89a07nq"
+ }
+ },
+ {
+ "ename": "autotest",
+ "commit": "5fc2c4a590cbeccfb43003972a78f5d76ec4a9e7",
+ "sha256": "0f46m5pc40i531dzfnhkcn192dcs1q20y083c1c0wg2zhjcdr5iy",
+ "fetcher": "github",
+ "repo": "zenspider/elisp",
+ "unstable": {
+ "version": [
+ 20190331,
+ 2230
+ ],
+ "commit": "fc9ec563430e3beaefc00b26da179f4b4ca9855b",
+ "sha256": "1m4v56yy73gvycsvpc36h7yh6yhn3fgp90rk5m248hz89gjf9kxv"
+ }
+ },
+ {
+ "ename": "autotetris-mode",
+ "commit": "4c5c698b7dfb179f43b9fdf4652b96e2d7f8e7c6",
+ "sha256": "0k4yq4pvrs1zaf9aqxmlb6l2v4k774zbxj4zcx49w3l1h8gwxpbb",
+ "fetcher": "github",
+ "repo": "skeeto/autotetris-mode",
+ "unstable": {
+ "version": [
+ 20141114,
+ 1646
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0c3a746dcc304a67d2a6e7ad4ef93f512486343a",
+ "sha256": "055kzs1qgx8jbwsxrnnqzbl8hgmaigkz3mqll2i0fdac5a605vxc"
+ }
+ },
+ {
+ "ename": "autothemer",
+ "commit": "9a15a17a5aa78aed72958b2a1bde53f0c0ab5be7",
+ "sha256": "0wahmbihyr3dx4lgiwi7041gvmmqlzlv7ss25fw90srs9n2h05gj",
+ "fetcher": "github",
+ "repo": "jasonm23/autothemer",
+ "unstable": {
+ "version": [
+ 20180920,
+ 923
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "69488c71dfc182cf2e7be2d745037f230ade678e",
+ "sha256": "0l3xsnp5j46jcjc1nkfbfg0pyzdi94rn0h5idfpqikj6f3ralh10"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "8c467f57571c154129d660dfccebd151c998f2d9",
+ "sha256": "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"
+ }
+ },
+ {
+ "ename": "autumn-light-theme",
+ "commit": "52a7598dc550c76f4e081fe1c4a6d8697bd30561",
+ "sha256": "0g3wqv1yw3jycq30mcj3w4sn9nj6i6gyd2ljzimf547ggcai536a",
+ "fetcher": "github",
+ "repo": "aalpern/emacs-color-theme-autumn-light",
+ "unstable": {
+ "version": [
+ 20150515,
+ 1447
+ ],
+ "commit": "1e3b2a43a3001e4a97a5ff073ba3f0d2ea3888f9",
+ "sha256": "1lip7282g41ghn64dvx2ab437s83cj9l8ps1rd8rbhqyz4bx5wb9"
+ }
+ },
+ {
+ "ename": "avandu",
+ "commit": "e1344e49e6a41ce390a047cb8d48090160b37b50",
+ "sha256": "174bd3vbvh0l9282bg8575nqc71zkg90bwbxbv1b7dz8qaaczhcy",
+ "fetcher": "github",
+ "repo": "ryuslash/avandu",
+ "unstable": {
+ "version": [
+ 20170101,
+ 1903
+ ],
+ "commit": "f44588d8e747fa880411cb4542cc39962252b90a",
+ "sha256": "097wls9k6qrf12nn8mpszfbqsaqc81956yqxns1sjs6dmjqi0c7z"
+ }
+ },
+ {
+ "ename": "avk-emacs-themes",
+ "commit": "ef362a76a3881c7596dcc2639df588227b3713c0",
+ "sha256": "0yimnfm50qsq505fc67b3qnxx2aiyz5a7bw87zkjrdnar12vv144",
+ "fetcher": "github",
+ "repo": "avkoval/avk-emacs-themes",
+ "unstable": {
+ "version": [
+ 20191220,
+ 625
+ ],
+ "commit": "e97ec20d07cc9093661f51853375063bcdc91993",
+ "sha256": "14011k7rafibjpfd7g903a81pml176m7hxvvgd8a65vgqx52q4d3"
+ }
+ },
+ {
+ "ename": "avy",
+ "commit": "77fac7a702d4086fb860514e377037acedc60412",
+ "sha256": "0gjq79f8jagbngp0shkcqmwhisc3hpgwfk34kq30nb929nbnlmag",
+ "fetcher": "github",
+ "repo": "abo-abo/avy",
+ "unstable": {
+ "version": [
+ 20200624,
+ 1148
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bbf1e7339eba06784dfe86643bb0fbddf5bb0342",
+ "sha256": "0jmjjckrmivfy2r527vynq9x0mzwcgcyclydar9fa2xb1wn669pd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f2cf43b5372a6e2a7c101496c47caaf03338de36",
+ "sha256": "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"
+ }
+ },
+ {
+ "ename": "avy-flycheck",
+ "commit": "05755bed49219072d2ec98f0be5ecba4deda7cd1",
+ "sha256": "0xvgysbx8yxhypms6639kk3cn0x6y6njnhnn9lf6hxsi96wd9y96",
+ "fetcher": "github",
+ "repo": "magicdirac/avy-flycheck",
+ "unstable": {
+ "version": [
+ 20160720,
+ 1500
+ ],
+ "deps": [
+ "avy",
+ "flycheck",
+ "seq"
+ ],
+ "commit": "5522f3bbbed1801d9278ed696ec0cbba38352985",
+ "sha256": "1nwc8xid0k6bnnpgsrrlwx71a04llkiapjsbchp9jgcf11l5mghw"
+ }
+ },
+ {
+ "ename": "avy-menu",
+ "commit": "2f0b4cfb30c405d44803b36ebcaccef0cf87fe2d",
+ "sha256": "1g2bsm0jpig51jwn9f9mx6z5glb0bn4s21194xam768qin0rf4iw",
+ "fetcher": "github",
+ "repo": "mrkkrp/avy-menu",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1348
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "970204989bcd4a4f8223c2fe980a08dc58441045",
+ "sha256": "196pwh83p0yrnagpiig8h2mq9xxm7wk9q8x832ffwizip4yni80b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "71b71e64900d0637e17013781042e086e9bf56e7",
+ "sha256": "1mxrq2fpx3qa9vy121wnv02r43sb7djc2j8z7c2vh8x56h8bpial"
+ }
+ },
+ {
+ "ename": "avy-migemo",
+ "commit": "6a02db29eb3e4b76b4a9cdbc966df5a1bd35dec0",
+ "sha256": "1zvgkhma445gj1zjl8j25prw95bdpjbvfy8yr0r5liay6g2hf296",
+ "fetcher": "github",
+ "repo": "momomo5717/avy-migemo",
+ "unstable": {
+ "version": [
+ 20180716,
+ 1455
+ ],
+ "deps": [
+ "avy",
+ "migemo"
+ ],
+ "commit": "922a6dd82c0bfa316b0fbb56a9d4dd4ffa5707e7",
+ "sha256": "1a4421h15ba7lsnbh8kqm3hvs06fp830wb1nvwgpsk7vmqqi2qgl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "avy",
+ "migemo"
+ ],
+ "commit": "ce87777bea76c45be5f185e9fe356a8efe5c2d16",
+ "sha256": "0s6m44b49jm5cnrx1pvk7rfw3zhwiw5xasdlgmlvv7wws7m5snd9"
+ }
+ },
+ {
+ "ename": "avy-zap",
+ "commit": "10a2a57c78ac1d8ab621031caa21e8574daeb9a0",
+ "sha256": "1zbkf21ggrmg1w0xaw40i3swgc1g4fz0j8p0r9djm9j120d94zkx",
+ "fetcher": "github",
+ "repo": "cute-jumper/avy-zap",
+ "unstable": {
+ "version": [
+ 20190801,
+ 329
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "7c8d1f40e43d03e2f6c1696bfa547526528ce8cb",
+ "sha256": "1b9yc8wkcddd81060r03myxcdxas6vdhgybl44da412p0hx4bccb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "avy"
+ ],
+ "commit": "67fed60d0dfe9087ca4fe3332f4a78e775b8d239",
+ "sha256": "0lmv34pi9qdh76fi3w4lrfyfhzr824nsiif4nyjvpnmrabxgk309"
+ }
+ },
+ {
+ "ename": "aws-ec2",
+ "commit": "90ac00160cbf692baa1f3953122ac828356944e0",
+ "sha256": "040c69g8rhpcmrdjjg4avdmqarxx3dfzylmz62yxhfpn02qh48xd",
+ "fetcher": "github",
+ "repo": "Yuki-Inoue/aws.el",
+ "unstable": {
+ "version": [
+ 20161007,
+ 1914
+ ],
+ "deps": [
+ "dash",
+ "tblui"
+ ],
+ "commit": "5601d4f268fc34b86a02ca90cde7d3771619a368",
+ "sha256": "15idbbxsghzn737s9jppnx820nnm1srcl1418458hwfy3wqhq38g"
+ }
+ },
+ {
+ "ename": "aws-snippets",
+ "commit": "485aa401a6a14cd4a916474d9a7df12cdf45d591",
+ "sha256": "1p2il4ig3nafsapa87hgghw6ri9d5qqi0hl8zjyypa06rcnag9g9",
+ "fetcher": "github",
+ "repo": "baron42bba/aws-snippets",
+ "unstable": {
+ "version": [
+ 20191203,
+ 1553
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "557d19a0bc486e0fddb597b2be5087769d9bd47e",
+ "sha256": "1s71h8limqxql9qhkp7bmq9k9j1mkazvc0lh92a6wd7hk6xg1hi1"
+ }
+ },
+ {
+ "ename": "awscli-capf",
+ "commit": "286c5963541f099032890c6df3bbe39648fb8684",
+ "sha256": "1mggykjjdl74rbgnw4k0q01iqdhl09q9zgp51xakgy07vpjs49w0",
+ "fetcher": "github",
+ "repo": "sebasmonia/awscli-capf",
+ "unstable": {
+ "version": [
+ 20190930,
+ 1517
+ ],
+ "commit": "1a75f88f53a2969fe821c31e6857861d0a0c0a5e",
+ "sha256": "13ry0lhh8ss93h9c60gc02i28bwc70jb4fzqmvw778fk0shj8jxn"
+ }
+ },
+ {
+ "ename": "axiom-environment",
+ "commit": "8b4c6b03c5ff78ce327dcf66b175e266bbc53dbf",
+ "sha256": "1hzfxdwhgv0z9136k7bdjhqjrkawsjmvqch6za6p7nkpd9ikr2zb",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/pdo/axiom-environment",
+ "unstable": {
+ "version": [
+ 20200411,
+ 1031
+ ],
+ "commit": "25932da0dc40c6877463cbf019b14ab05a6b0164",
+ "sha256": "1xbps0k4x982gh1a0pscpx4kayjjyykvm5pyj516wwkya7bac4a6"
+ }
+ },
+ {
+ "ename": "ayu-theme",
+ "commit": "22bdc35d5c432c5d58d751c0fc3f2e5d0fafe583",
+ "sha256": "1ygg6dwzg0kjxxd8c6w5j174jcjkc7f4hljgd70vkh4k7817kxj8",
+ "fetcher": "github",
+ "repo": "vutran1710/Ayu-Theme-Emacs",
+ "unstable": {
+ "version": [
+ 20200521,
+ 1157
+ ],
+ "commit": "ed98a9f41d9f0e08458ee71cc1038f66c50e1979",
+ "sha256": "1qdw9pq1daydky0b94x248q27sjzaxpfw9d027xk6ygi9hksvcsk"
+ }
+ },
+ {
+ "ename": "babel",
+ "commit": "b0d748fa06b3cbe336cb01a7e3ed7b0421d885cc",
+ "sha256": "0sdpp4iym61ni32zv75n48ylj4jib8ca6n9hyqwj1b7nqg76mm1c",
+ "fetcher": "github",
+ "repo": "juergenhoetzel/babel",
+ "unstable": {
+ "version": [
+ 20181201,
+ 919
+ ],
+ "commit": "c25dedb5c7f2465b122102f02cd9845668818c20",
+ "sha256": "1ydb8zbg8n56wf5hb8i3i2s40mspqfkszfdd8v8jjqb5wm8q32rc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "commit": "65b55ad89017c9b3a1c8c241ac4b4541eabdaf5f",
+ "sha256": "0px1xggk6qyrwkma1p3d7b4z2id2gbrsxkliw3nwc1q4zndg1zr7"
+ }
+ },
+ {
+ "ename": "babel-repl",
+ "commit": "dfd4ac01ea16fcbc6e9343a953a2f278c5874d3d",
+ "sha256": "0h11i8w8s4ia1x0lm5n7bnc3db4bv0a7f7hzl27qrg38m3c7dl6x",
+ "fetcher": "github",
+ "repo": "hung-phan/babel-repl",
+ "unstable": {
+ "version": [
+ 20160504,
+ 2201
+ ],
+ "commit": "e619c16e349a1ee7bd0ee0d7f3650d33bff73fc3",
+ "sha256": "1174r0gjpn5z3pnf32qlpqhmdfvskcd2vqgicvmqzjsrysj3fypn"
+ }
+ },
+ {
+ "ename": "back-button",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "0vyhvm445d0rs14j5xi419akk5nd88d4hvm4251z62fmnvs50j85",
+ "fetcher": "github",
+ "repo": "rolandwalker/back-button",
+ "unstable": {
+ "version": [
+ 20150804,
+ 2004
+ ],
+ "deps": [
+ "list-utils",
+ "nav-flash",
+ "pcache",
+ "persistent-soft",
+ "smartrep",
+ "ucs-utils"
+ ],
+ "commit": "98d92984a740acd1547bd7ed05cca0affdb21c3e",
+ "sha256": "0rj6a8rdwa0h2ckz7h4d91hnxqcin98l4ikbfyak2whfb47z909l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 6
+ ],
+ "deps": [
+ "nav-flash",
+ "pcache",
+ "persistent-soft",
+ "smartrep",
+ "ucs-utils"
+ ],
+ "commit": "c7b50a3e087a8dc5588d7292379cd387a1afff87",
+ "sha256": "0hmn3jlsqgpc602lbcs9wzw0hgr5qpjdcxi2hjlc1cp27ilyscnf"
+ }
+ },
+ {
+ "ename": "backlight",
+ "commit": "4b33ef75760ff02983d8c4c6f98621bb441751c3",
+ "sha256": "0gzshxs9vw5wrb6pnxdaw5q4c8i0vsmc7wb0y2jyhxsr81mlxdpi",
+ "fetcher": "github",
+ "repo": "mschuldt/backlight.el",
+ "unstable": {
+ "version": [
+ 20200813,
+ 1839
+ ],
+ "commit": "38fcb9256c3bf7300a41332fa7f9feffc4e2db9a",
+ "sha256": "0982il82v10yclm87b06ghwv4cglw03ia0zs4m838ag6zg8a08jg"
+ }
+ },
+ {
+ "ename": "backline",
+ "commit": "f252e45e8bd6e8af1267755d108f378a974ddaf1",
+ "sha256": "0y5y048s6r3mcgjfxpmwarnhn6lh00j9cla6qjsd83f79hw5cq4y",
+ "fetcher": "github",
+ "repo": "tarsius/backline",
+ "unstable": {
+ "version": [
+ 20200104,
+ 1851
+ ],
+ "deps": [
+ "outline-minor-faces"
+ ],
+ "commit": "dc541a6daf82ab73774904ae9ccecd13e3c2af48",
+ "sha256": "0410p7144k2kh1bz050h45zrfd98j10sbx409la5x01l9xrmb03y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "outline-minor-faces"
+ ],
+ "commit": "cde271f5e01ed44de239f776c3d0bb27e30953de",
+ "sha256": "0j1w2ig3rick6lnq668jkzjhrfy8cg3xgra5sj1qpxygdspfjyp9"
+ }
+ },
+ {
+ "ename": "backup-each-save",
+ "commit": "caa478356d20b5b0e9a450f7b4a8b25937e583a4",
+ "sha256": "1l7lx3vd27qypkxa0cdm8zbd9fv08xn1bf6xj6g9c49ql95xbyiv",
+ "fetcher": "github",
+ "repo": "conornash/backup-each-save",
+ "unstable": {
+ "version": [
+ 20180227,
+ 557
+ ],
+ "commit": "3c414b9d6b278911c95c5b8b71819e6af6f8a02a",
+ "sha256": "13pliz2ra020hhxcidkyhfa0767n188l1w5r0vpvv6zqyc2p414i"
+ }
+ },
+ {
+ "ename": "backup-walker",
+ "commit": "9428a70292cf6b796d7d994ad6b73d7d45970c19",
+ "sha256": "0hfr27yiiblrd0p3zhpapbj4vijfdk7wqh406xnlwf2yvnfsqycd",
+ "fetcher": "github",
+ "repo": "lewang/backup-walker",
+ "unstable": {
+ "version": [
+ 20130720,
+ 1516
+ ],
+ "commit": "934a4128c122972ac32bb9952addf279a60a94da",
+ "sha256": "0z4d8x9lkad50720lgvr8f85p1ligv07865i30lgr9ck0q04w68v"
+ }
+ },
+ {
+ "ename": "backward-forward",
+ "commit": "cb44d7b604c50d4e07404c0dff071fbc66ea903d",
+ "sha256": "0kpy761xdk2s21s92cw03fgw5xq9glybrhnjv2v89xrg16vdvamf",
+ "fetcher": "gitlab",
+ "repo": "vancan1ty/emacs-backward-forward",
+ "unstable": {
+ "version": [
+ 20161229,
+ 550
+ ],
+ "commit": "58489957a62a0da25dfb5df902624d2548d800b4",
+ "sha256": "14v9q58vd0iggs8x8hjh24cv58g2pbwnr6zghd2anaygbj74ij24"
+ }
+ },
+ {
+ "ename": "badger-theme",
+ "commit": "298e43769c6cd855526d847e8e3b237912360777",
+ "sha256": "01h5bsqllgn6gs0wpl0y2h041007mn3ldjswkz6f3mayrgl4c6yf",
+ "fetcher": "github",
+ "repo": "ccann/badger-theme",
+ "unstable": {
+ "version": [
+ 20140717,
+ 232
+ ],
+ "commit": "493d672d5a5478976da7d5ca752008cc7837c57f",
+ "sha256": "0mrn3sl1xq19k6v4mw98zqgs11fidnarvidmxayx805k21pana6v"
+ }
+ },
+ {
+ "ename": "badwolf-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "15n33l0iaq2pk70rpw7qdm8dlwcinfclpnlr3bs7vcb1dknp4g9v",
+ "fetcher": "github",
+ "repo": "bkruczyk/badwolf-emacs",
+ "unstable": {
+ "version": [
+ 20161004,
+ 715
+ ],
+ "commit": "ea01a3d9358e968f75e3ed15dec6a2a96ce3d9a1",
+ "sha256": "0a6adsxvmw3mgji17is75jrq3ifmzpch8rwqqyfgc99xzndvab7l"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "24a557f92a702f632901a5b7bee59945a0a8cde9",
+ "sha256": "1plh7i4zhs5p7qkv7p7lnfrmkszn8b3znwvbxgp7wpxay5safc5j"
+ }
+ },
+ {
+ "ename": "baidu-translate",
+ "commit": "c9cdf13f64a1de8c57dcb90229da0f62a8e14e7a",
+ "sha256": "0m8pqnp57bmk41wij5a0dcilg09p992q5413llfac41b6biqf2yd",
+ "fetcher": "github",
+ "repo": "liShiZhensPi/baidu-translate",
+ "unstable": {
+ "version": [
+ 20190817,
+ 1318
+ ],
+ "commit": "b04a74d09ff5e3fbefd1b39b2abe79a9e272321a",
+ "sha256": "0qja8xw2sk2wn7w6qa5zj2i0j5c8a7cnldrag99ip2b5m02f1z4l"
+ }
+ },
+ {
+ "ename": "balanced-windows",
+ "commit": "2dc9c15d14d4417df74b73cde983ef4f25eda363",
+ "sha256": "0y53als0cmd4h0z1w55f4z5w6zkk7ig0ygjrzjv2khwig8hl2b8h",
+ "fetcher": "github",
+ "repo": "wbolster/emacs-balanced-windows",
+ "unstable": {
+ "version": [
+ 20190903,
+ 1120
+ ],
+ "commit": "1da5354ad8a9235d13928e2ee0863f3642ccdd13",
+ "sha256": "1hsjg48jlfi6lc6izp9xcfqvxj7c0ivjrfsr2q3yv3s1iy2fz37l"
+ }
+ },
+ {
+ "ename": "bang",
+ "commit": "d9830cce42339243091f4463490954a8a955c65f",
+ "sha256": "1dx1130095ij09ix20jyqradkjw9gpdfpw0d9f3krrx6xjqfn2sk",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~zge/bang",
+ "unstable": {
+ "version": [
+ 20200811,
+ 1008
+ ],
+ "commit": "e02338331463461a85144c0ce6b9b877bd3a7567",
+ "sha256": "1rvgmkl950zrakczk9libws29c9l2hklw49m3xb4swa14kz1r639"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 3
+ ],
+ "commit": "e02338331463461a85144c0ce6b9b877bd3a7567",
+ "sha256": "1rvgmkl950zrakczk9libws29c9l2hklw49m3xb4swa14kz1r639"
+ }
+ },
+ {
+ "ename": "banner-comment",
+ "commit": "4bb69f15cb6be38a86abf4d15450a29c9a819068",
+ "sha256": "0i5nkfdwfr9mcir2ijdhw563azmr5p7hyl6rfy1r04fzs8j7w2pc",
+ "fetcher": "github",
+ "repo": "WJCFerguson/banner-comment",
+ "unstable": {
+ "version": [
+ 20190606,
+ 1809
+ ],
+ "commit": "35d3315683d3f97605207691b77e9f447af18fe2",
+ "sha256": "0f48mvzy5wxx5f975hsqp00p9vmjda2wlxsprws5jgmpn95hbbs8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 7
+ ],
+ "commit": "ac52f6b24e590787a385c08cc3751d6f2ddca815",
+ "sha256": "1630py97ldh3w71s26jbcxk58529g03sl0padnzqj0rbqy82yw8w"
+ }
+ },
+ {
+ "ename": "bap-mode",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0w82dzhahp9zc1dhkfwc77irpqbq0fdp14cjfkk3g5cmvyzz5s1a",
+ "fetcher": "github",
+ "repo": "BinaryAnalysisPlatform/bap-mode",
+ "unstable": {
+ "version": [
+ 20200128,
+ 1354
+ ],
+ "commit": "8969679f60db0aa918d35f40d959c0a9c723b111",
+ "sha256": "1i5yhqig104j33cyhkhil4d1wfvnldkvrk2wgxbm4p01xw1rs6cq"
+ }
+ },
+ {
+ "ename": "bar-cursor",
+ "commit": "932e7b128f092ec724ebf18c9c5ca84e16edc82c",
+ "sha256": "0f7z3mlnh3p28pmn1bnqbszcy1j68dwm8xra1wz8jgykvrdlyf2s",
+ "fetcher": "github",
+ "repo": "ajsquared/bar-cursor",
+ "unstable": {
+ "version": [
+ 20180227,
+ 45
+ ],
+ "commit": "20cb59bedc3532a712fe7feeff3660ebd72a8107",
+ "sha256": "06b0nkcp8yjixps72nrgk2zmljc9f71cdr96jdpgssydfhn4pcdf"
+ }
+ },
+ {
+ "ename": "bart-mode",
+ "commit": "8f9cb09c07cb9fdef15de3e8dbfb6725d97dff6f",
+ "sha256": "0wyfsf7kqfghnci9rlk9x0rkai6x7hy3vfzkgh7s2yz081p1kfam",
+ "fetcher": "github",
+ "repo": "mschuldt/bart-mode",
+ "unstable": {
+ "version": [
+ 20190601,
+ 1004
+ ],
+ "commit": "f70b6c42452e47c0c6b3ebd4c90e555a9bedeec7",
+ "sha256": "0s47ijlnspndia6f1116g6nr6hnirmba6fkvdcvw4qm7mhn5xrc9"
+ }
+ },
+ {
+ "ename": "base16-theme",
+ "commit": "30862f6be74882cfb57fb031f7318d3fd15551e3",
+ "sha256": "115dhr3gfvdz5wv76fwpv3b4dywiwbk69qrhkfhij8vpcfybrpzx",
+ "fetcher": "github",
+ "repo": "belak/base16-emacs",
+ "unstable": {
+ "version": [
+ 20200414,
+ 2048
+ ],
+ "commit": "d68512c0856f57a19cd49d1034199836352c15a0",
+ "sha256": "1h98ra53i7hc7zi9yjc6p29f70r04hivdczhw4imds13akq6j034"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2
+ ],
+ "commit": "10180e88d6d9434cec367b6c91222dd2fc3bd8ae",
+ "sha256": "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"
+ }
+ },
+ {
+ "ename": "bash-completion",
+ "commit": "8b528544841995045fb1f8344aaaa38946bb3915",
+ "sha256": "0l41yj0sb87i27hw6dh35l32hg4qkka6r3bpkckjnfm0xifrd9hj",
+ "fetcher": "github",
+ "repo": "szermatt/emacs-bash-completion",
+ "unstable": {
+ "version": [
+ 20200806,
+ 1743
+ ],
+ "commit": "d47edb9d4142a22746009c1f680df93a4fefd107",
+ "sha256": "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 0
+ ],
+ "commit": "d47edb9d4142a22746009c1f680df93a4fefd107",
+ "sha256": "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"
+ }
+ },
+ {
+ "ename": "basic-c-compile",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0g595d1vd97b5qqydpb6cr3ibgcm08cw8c154h35vz3cl4w86mwd",
+ "fetcher": "github",
+ "repo": "nick96/basic-c-compile",
+ "unstable": {
+ "version": [
+ 20170302,
+ 1112
+ ],
+ "deps": [
+ "cl-lib",
+ "f"
+ ],
+ "commit": "0129786aeee50d7bb0020d9fc2b7508875d403e8",
+ "sha256": "0q6scyva1psyam7jzygqcr1wayf70vrp237hm01q5i9cin8j4j1z"
+ }
+ },
+ {
+ "ename": "basic-ide",
+ "commit": "9aaac29f5711f93f9ba7c14e5a332888e8920a86",
+ "sha256": "1pvgbc3vxqm4l8qc43g7b4viz4ilw828k9qlmb6ynzmij5ykrfrq",
+ "fetcher": "gitlab",
+ "repo": "sasanidas/emacs-c64-basic-ide",
+ "unstable": {
+ "version": [
+ 20200429,
+ 1104
+ ],
+ "deps": [
+ "basic-mode",
+ "company",
+ "dash",
+ "f",
+ "flycheck"
+ ],
+ "commit": "0f75c944239960445f1e9c8a0b5f7a5b4d37ff89",
+ "sha256": "0xmi27b3zs8bsvcf9405rg88cjz1x2nivj5pvy6gjy07r9dl7ngf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "basic-mode",
+ "company",
+ "dash",
+ "f",
+ "flycheck"
+ ],
+ "commit": "5bfd5f91b9f91e46158e0419c6bb5c350e7684a1",
+ "sha256": "0nb6dbk8aclkq7jki52y4lwgbxg61xh1598l08yfv2l1ykhgg0n0"
+ }
+ },
+ {
+ "ename": "basic-mode",
+ "commit": "71801bdc0720f150edeab6796487c753c6e7c3f5",
+ "sha256": "1l0ylzww7jg6l804fdrklhay4is0wx1drfi9l9wn7gcdjh76mr6g",
+ "fetcher": "github",
+ "repo": "dykstrom/basic-mode",
+ "unstable": {
+ "version": [
+ 20180919,
+ 1752
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "812f078240f9de09491701853569335ba6d9b5ff",
+ "sha256": "1492klgbkxb46x02kmhngccx4p9fmjvf6m4ay89j7pyaixvcqj8v"
+ }
+ },
+ {
+ "ename": "basic-theme",
+ "commit": "451d1b67fefec5d3a346b1261d1284e8df6927a0",
+ "sha256": "16rgff1d0s65alh328lr93zc06zmgbzgwx1rf3k3l4d10ki4cc27",
+ "fetcher": "github",
+ "repo": "fgeller/basic-theme.el",
+ "unstable": {
+ "version": [
+ 20160817,
+ 827
+ ],
+ "commit": "e2a855bd39f4b78296228d4b790f9123156f7d7e",
+ "sha256": "1dfk73bkyhmhxnizbcp5zky8qyrgl7cf0dl9y6drqqc1lrcgz3jl"
+ }
+ },
+ {
+ "ename": "bats-mode",
+ "commit": "d742fb825e163beb33c3873aa48a1c411711e312",
+ "sha256": "1l5winy30w8fs3f5cylc3a3j3mfkvchwanlgsin7q76jivn87h7w",
+ "fetcher": "github",
+ "repo": "dougm/bats-mode",
+ "unstable": {
+ "version": [
+ 20160514,
+ 615
+ ],
+ "commit": "d519f7c89f5ae17dfc33400596df4564b478315f",
+ "sha256": "1ikb4rb20ng1yq95g3ydwpk37axmiw38rjzn1av9m4cs81qby4jv"
+ }
+ },
+ {
+ "ename": "battle-haxe",
+ "commit": "75781ee881a8f3215ab40d47273c8a9d1fed7949",
+ "sha256": "02x7hchk3jninas4mybn98m09wn1bfqqdjfq45b6rgw1am6mvvwz",
+ "fetcher": "github",
+ "repo": "AlonTzarafi/battle-haxe",
+ "unstable": {
+ "version": [
+ 20200222,
+ 56
+ ],
+ "deps": [
+ "async",
+ "cl-lib",
+ "company",
+ "dash",
+ "dash-functional",
+ "f",
+ "helm",
+ "s"
+ ],
+ "commit": "64d20c9ea3fd503fdefafda122e7095c192e72a3",
+ "sha256": "15ykwqg100vjl014awwwzmch84vwqyrlm46c22w9x3dgqk8yxyi2"
+ }
+ },
+ {
+ "ename": "bazel-mode",
+ "commit": "10f3918c55426c8c4754ef0dfccf19300e516012",
+ "sha256": "1gylmwlhzg6kgj9936799ppahbhicrxn2zpbr3417qycib84nl8x",
+ "fetcher": "github",
+ "repo": "bazelbuild/emacs-bazel-mode",
+ "unstable": {
+ "version": [
+ 20200627,
+ 1625
+ ],
+ "commit": "2cf143b616df3de4b199538341d674c58386719e",
+ "sha256": "1p9pxxdx39jmf8sav660ps6mqwbsgcl4v1i9xb8xsd5qdxmwjqli"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "6103da2dd9c9461e35a45fc0544ddf33410baa25",
+ "sha256": "0lbiih6lj7qf2h1l2nxcwfkhdzccrs01lcdqsyhp5hysp0zdcr66"
+ }
+ },
+ {
+ "ename": "bbcode-mode",
+ "commit": "57c307eecfc0fccfdc525ce6ff63a69ff3b78874",
+ "sha256": "0rrhvwb4hrg2sbjbpgdghcgrc6gwpq3vax28r5mlacn5w5x31qjb",
+ "fetcher": "github",
+ "repo": "lassik/emacs-bbcode-mode",
+ "unstable": {
+ "version": [
+ 20190304,
+ 2122
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e16619c80ea21154b4a4ccc2e13d0077e97c9caf",
+ "sha256": "0l7jygskxmbckf3xhbjzgwzkrj2m6z1n3i2l7qc9ii4i3mhpx0ai"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e16619c80ea21154b4a4ccc2e13d0077e97c9caf",
+ "sha256": "0l7jygskxmbckf3xhbjzgwzkrj2m6z1n3i2l7qc9ii4i3mhpx0ai"
+ }
+ },
+ {
+ "ename": "bbdb",
+ "commit": "caaa21f235c4864f6008fb454d0a970a2fd22a86",
+ "sha256": "0mm8n3dbi8lap3pjr97n2f675iy7sg476sm1vxygbc3j67rq1zb2",
+ "fetcher": "git",
+ "url": "https://git.savannah.nongnu.org/git/bbdb.git",
+ "unstable": {
+ "version": [
+ 20200102,
+ 403
+ ],
+ "commit": "45529e315ba861f9df2914f9b88d2f7b991d5595",
+ "sha256": "0iim6394q02yw5rcyjs7ym16v9jbq5pwqsbpwc98ckg26063p3fi"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 2
+ ],
+ "commit": "f18720ff5cd963a0bf6fc0e41293e50c0172b8ae",
+ "sha256": "1s5qi8njiqdpgnzlik36islzh13zfhybnynqisr61p602pn4ghk7"
+ }
+ },
+ {
+ "ename": "bbdb-",
+ "commit": "01e7a8cc1dde506cb2fcfd9270f15dc61c43ec17",
+ "sha256": "1vzbalcchay4pxl9f1sxg0zclgc095f59dlj15pj0bqq61sbl9jf",
+ "fetcher": "github",
+ "repo": "aki2o/bbdb-",
+ "unstable": {
+ "version": [
+ 20140221,
+ 2354
+ ],
+ "deps": [
+ "bbdb",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "2839e84c894de2513af41053e80a277a1b483d22",
+ "sha256": "17nbnkg0zn6p89r27mk9hl6qhv6xscwdsq8iyikdw03svpr16lnp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "bbdb",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "2839e84c894de2513af41053e80a277a1b483d22",
+ "sha256": "17nbnkg0zn6p89r27mk9hl6qhv6xscwdsq8iyikdw03svpr16lnp"
+ }
+ },
+ {
+ "ename": "bbdb-csv-import",
+ "commit": "76ac7178ee5381e08ae881f3fc6061106eeb1c1d",
+ "sha256": "0r7pc2ypd1ydqrnvcqmsg69rm047by7k0zhm563538ra82597wnm",
+ "fetcher": "gitlab",
+ "repo": "iankelling/bbdb-csv-import",
+ "unstable": {
+ "version": [
+ 20180122,
+ 49
+ ],
+ "deps": [
+ "bbdb",
+ "dash",
+ "pcsv"
+ ],
+ "commit": "dbc2e0fe9e8ae65e494011044d905ae79b3cee3e",
+ "sha256": "0n52arydcsmarkpqqwxvw686cypl7iz73kzizirdjhcqmzimx9pl"
+ }
+ },
+ {
+ "ename": "bbdb-ext",
+ "commit": "b1ba0575cb6f0270bab8bf00726842b2a4d0bef3",
+ "sha256": "0fnxcvzdyh0602rdfz3lz3vmvza4s0syz1vn2fgsn2lg3afqq7li",
+ "fetcher": "github",
+ "repo": "vapniks/bbdb-ext",
+ "unstable": {
+ "version": [
+ 20151220,
+ 2013
+ ],
+ "deps": [
+ "bbdb"
+ ],
+ "commit": "fee97b1b3faa83edaea00fbc5ad3cbca5e791a55",
+ "sha256": "1ydf89mmp3zjfqdymnrwg18wclyf7psarz9f2k82pl58h0khh71g"
+ }
+ },
+ {
+ "ename": "bbdb-vcard",
+ "commit": "dd5d9027c49beae89f78d2a30dfa4bd070dff1bd",
+ "sha256": "1kn98b7mh9a28933r4yl8qfl9p92rpix4vkp71sar9cka0m71ilj",
+ "fetcher": "github",
+ "repo": "tohojo/bbdb-vcard",
+ "unstable": {
+ "version": [
+ 20190410,
+ 2054
+ ],
+ "deps": [
+ "bbdb"
+ ],
+ "commit": "853cbcd882be137a5488c70328c25f5982aca657",
+ "sha256": "0r8xcxvzalf5g12mqy6w7yv34nxd8n2wcqa5ib06nf40n162nrwg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "9e11fafef1a94bc6395bd1eeacd00f94848ac560",
+ "sha256": "0fg72qnb40djyciy4gzj359lqlcbbrq0indbkzd0dj09zipkx0df"
+ }
+ },
+ {
+ "ename": "bbdb2erc",
+ "commit": "04867a574773e8794335a2664d4f5e8b243f3ec9",
+ "sha256": "0k1f6mq9xd3568vg01dqqvcdbdshbdsi4ivkjyxis6dqfnqhlfdd",
+ "fetcher": "github",
+ "repo": "unhammer/bbdb2erc",
+ "unstable": {
+ "version": [
+ 20190822,
+ 907
+ ],
+ "deps": [
+ "bbdb"
+ ],
+ "commit": "40b89e961762af3e7ade3a1844a9fbcd4084ac65",
+ "sha256": "1faa32ya515rkx5pwz6bsav0ffyajq8vq8d3vzn9j81d9in2rh5j"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "bbdb"
+ ],
+ "commit": "40b89e961762af3e7ade3a1844a9fbcd4084ac65",
+ "sha256": "1faa32ya515rkx5pwz6bsav0ffyajq8vq8d3vzn9j81d9in2rh5j"
+ }
+ },
+ {
+ "ename": "bbyac",
+ "commit": "92c10c13a1bd19c8bdbca128852d1c91b76f7002",
+ "sha256": "1pb12b8xrcgyniwqc90z3kr3rq9kkzxjawwcz7xwzymq39fx0897",
+ "fetcher": "github",
+ "repo": "baohaojun/bbyac",
+ "unstable": {
+ "version": [
+ 20180206,
+ 1441
+ ],
+ "deps": [
+ "browse-kill-ring",
+ "cl-lib"
+ ],
+ "commit": "9f0de9cad13801891ffb590dc09f51ff9a7cb225",
+ "sha256": "0q0i1j8ljfd61rk6d5fys7wvdbym9pz5nhwyfvmm0ijmy19d1ppz"
+ }
+ },
+ {
+ "ename": "beacon",
+ "commit": "d09cfab21be800831644218e9c8c4433087951c0",
+ "sha256": "1pwxvdfzs9qjd44wvgimipi2hg4qw5sh5wlsl8h8mq2kyx09s7hq",
+ "fetcher": "github",
+ "repo": "Malabarba/beacon",
+ "unstable": {
+ "version": [
+ 20190104,
+ 1931
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "bde78180c678b233c94321394f46a81dc6dce1da",
+ "sha256": "19m90jjbsjzhzf7phlg79l8d2kxgrqnrrg1ipa3sf7vzxxkmsdld"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 4
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "729338b02a0e331a4faf475da9f54771a3470106",
+ "sha256": "0mypzfasclq7bmw0i8hfyp8c1ycd3kdgd5h1faygzh9r0phh7ciy"
+ }
+ },
+ {
+ "ename": "beeminder",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1cb8xmgsv23b464hpchm9f9i64p3fyf7aillrwk1aa2l1008kyww",
+ "fetcher": "github",
+ "repo": "Sodaware/beeminder.el",
+ "unstable": {
+ "version": [
+ 20200610,
+ 2311
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "8f86ae34ebd17324d98146a2b3a532d56dd1cdd0",
+ "sha256": "0jw62l1nnnnz4gr7jrk10jlf8ayjngyx9wm97fd339spiygld5pr"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "3e95a669474e27cd51a16caea030456377f83062",
+ "sha256": "1bj9yzjvglnb0f4glh8fg478xlm5nqmd9jqm1casdj5m30i4kafn"
+ }
+ },
+ {
+ "ename": "beginend",
+ "commit": "31c1157d4fd9e47a780bbd91075252acdc7899dd",
+ "sha256": "1y81kr9q0zrsr3c3s14rm6l86y5wf1a0kia6d98112fy4fwdm7kq",
+ "fetcher": "github",
+ "repo": "DamienCassou/beginend",
+ "unstable": {
+ "version": [
+ 20200526,
+ 2005
+ ],
+ "commit": "9c7a92779d75f6fd985cf707ff5241bc98ccea6c",
+ "sha256": "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "commit": "0710e25138c1cec40ccf78d704741143c5bac735",
+ "sha256": "1ic5z3qb5sc3mjrjdlg0rqm2l59a43gwnakagns4cilln2a3xdg8"
+ }
+ },
+ {
+ "ename": "belarus-holidays",
+ "commit": "6987c5fbafc602ff6b48c347b4e3e7c4471681e8",
+ "sha256": "0ls4y0bjdz37zvzp2xppsa4qdgmpwkz2l6ycjf9134brdnhm9gqy",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/EugeneMakei/belarus-holidays.el",
+ "unstable": {
+ "version": [
+ 20190102,
+ 1343
+ ],
+ "commit": "35a18273e19edc3b4c761030ffbd11116483b83e",
+ "sha256": "1mddjgv2q0sr5v4gxvrzz8y0ybj2bjb5klqsrjajcpbpgbim1qgf"
+ }
+ },
+ {
+ "ename": "benchmark-init",
+ "commit": "54b9ae6fc10b0c56fcc7a0ad73743ffc85a3e9a0",
+ "sha256": "0dknch4b1j7ff1079z2fhqng7kp4903b3v7mhj15b5vzspbp3wal",
+ "fetcher": "github",
+ "repo": "dholm/benchmark-init-el",
+ "unstable": {
+ "version": [
+ 20150905,
+ 938
+ ],
+ "commit": "7a0f263282bbc86b01b662636306f22813082647",
+ "sha256": "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "7a0f263282bbc86b01b662636306f22813082647",
+ "sha256": "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"
+ }
+ },
+ {
+ "ename": "benchstat",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1pcwgvln6dhyqk52021hqs5gpgnj1a07ddbb7xs1qclgyyk72y85",
+ "fetcher": "github",
+ "repo": "quasilyte/benchstat.el",
+ "unstable": {
+ "version": [
+ 20171014,
+ 312
+ ],
+ "commit": "a5b67cf7972ca2bbc9f5bc6a0f521ab02b76d4f0",
+ "sha256": "02v5l9qvzcr58qr973phgj1c846pqp3cj16khn4h9v3f3gb180n1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "b39a97f3072c2d3c1d3f86790b9e134d05b8d7e6",
+ "sha256": "0j508n860dp4in1psnkcriqck6by1jvnscalyff5na8hx6xgyysm"
+ }
+ },
+ {
+ "ename": "bencoding",
+ "commit": "a668dc6c90a3be1a51be7478e385b9ab395f6852",
+ "sha256": "1qjk71gkzqq07yy84i0bkyg2wh0jn4gvglcknpcia38dd80m8b7z",
+ "fetcher": "github",
+ "repo": "xuchunyang/bencoding.el",
+ "unstable": {
+ "version": [
+ 20200331,
+ 1102
+ ],
+ "commit": "f0af19511831f3ade590879e7d1636387682a8e7",
+ "sha256": "1sfj694a6yjc4qwkxn2yvnl8xp8rzrkdgnsaj8ncwdyaa50xgw78"
+ }
+ },
+ {
+ "ename": "bento",
+ "commit": "aad104fd26adb419c5da1e3472807244794e8949",
+ "sha256": "0a7yaikvaxxk8wmr7f9darpwb4r17rkzxcxaagfypn8n5kswddj4",
+ "fetcher": "github",
+ "repo": "returntocorp/bento-emacs",
+ "unstable": {
+ "version": [
+ 20191024,
+ 2123
+ ],
+ "deps": [
+ "f",
+ "flycheck"
+ ],
+ "commit": "31546a03475fc2b3ffd3159fe1beda55f7762224",
+ "sha256": "0ny0bably9h4ak2fr01z4a80mp9kjalzhw232a92n8dvmz4b7mq7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "f",
+ "flycheck"
+ ],
+ "commit": "116839c7d50342e62a2832715ba850d8bf04362e",
+ "sha256": "0gxqy2l1a4pddh4pdci2nyflmv76rhl8wx3zmh5j0aqk5ahh1ln5"
+ }
+ },
+ {
+ "ename": "berrys-theme",
+ "commit": "d7043d5fcdf995a6278c8a92aa451ce4b58694b3",
+ "sha256": "1fn2n7li6fs9zibjzp07y6wdn3a64nsib8d23l7sl7jyzib6vbqa",
+ "fetcher": "github",
+ "repo": "vbuzin/berrys-theme",
+ "unstable": {
+ "version": [
+ 20191201,
+ 1609
+ ],
+ "commit": "888a14206b2fb3dc45b5273aeb05075f3e0b5f60",
+ "sha256": "1a75pa7gckdqwrcm25a2ic4cq1la42z939qqzj6nnqyjsj3sbn00"
+ }
+ },
+ {
+ "ename": "bert",
+ "commit": "89635cd11621b04a8575629ec1bf196fb3ea5d43",
+ "sha256": "1zhz1dcy1nf84p244x6lc4ajancv5fgmqmbrm080yhb2ral1z8x7",
+ "fetcher": "github",
+ "repo": "manzyuk/bert-el",
+ "unstable": {
+ "version": [
+ 20131117,
+ 1014
+ ],
+ "commit": "a3eec6980a725aa4abd2019e4c00246450260490",
+ "sha256": "06izbc0ksyhgh4gsjiifhj11v0gx9x5xjx9aqci5mc4kc6mg05sf"
+ }
+ },
+ {
+ "ename": "better-defaults",
+ "commit": "7bb729c1ad8602a5c0c27e81c9442981a54a924a",
+ "sha256": "13bqcmx2gagm2ykg921ik3awp8zvw5d4lb69rr6gkpjlqp7nq2cm",
+ "fetcher": "github",
+ "repo": "technomancy/better-defaults",
+ "unstable": {
+ "version": [
+ 20200717,
+ 2012
+ ],
+ "commit": "293237a22a4f24171dd9910d6517a0eccf526fdf",
+ "sha256": "0f3alik361d81kdwpigcgkj9rxww23prqfhjfdh97fnycp3r1nyb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "commit": "90df5752a0a0602feb47aadfd3542aa7fc841bd8",
+ "sha256": "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"
+ }
+ },
+ {
+ "ename": "better-jumper",
+ "commit": "b08970e3bd5d64e640158d98d7e3ab5031d82895",
+ "sha256": "0javbi799yijc3lb4dzkjwj4f4wxxrga9iixik544z98412ia8an",
+ "fetcher": "github",
+ "repo": "gilbertw1/better-jumper",
+ "unstable": {
+ "version": [
+ 20200103,
+ 1413
+ ],
+ "commit": "6d240032ca213ccb3347e25f26c29b6822bf03a7",
+ "sha256": "0vdrdd0q4rlpyxgwbc31zz8f6sr7sy0gdw84sb1dy9bpq6qvdbdw"
+ }
+ },
+ {
+ "ename": "better-shell",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0si8nj18i3jlhdb8m6f21rmi0lxians34vhw4xhvxw2yr9l85lj6",
+ "fetcher": "github",
+ "repo": "killdash9/better-shell",
+ "unstable": {
+ "version": [
+ 20191025,
+ 1737
+ ],
+ "commit": "70c787b981caeef8c5f8012b170eb7b9f167cd13",
+ "sha256": "0i87d1xrg4gvszm52wdrx81g49lh75ycdfxkxhlrckbw7nkrjchz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 1
+ ],
+ "commit": "70c787b981caeef8c5f8012b170eb7b9f167cd13",
+ "sha256": "0i87d1xrg4gvszm52wdrx81g49lh75ycdfxkxhlrckbw7nkrjchz"
+ }
+ },
+ {
+ "ename": "bf-mode",
+ "commit": "f7fe1763891c7343c0ad0c7970b8a3c9035b4e8a",
+ "sha256": "0b1yf9bx1ldkzry7v5qvcnl059rq62a50dvpa10i2f5v0y96n1q9",
+ "fetcher": "github",
+ "repo": "emacs-jp/bf-mode",
+ "unstable": {
+ "version": [
+ 20130403,
+ 1442
+ ],
+ "commit": "7cc4d09aed64d9db6be95646f5f5067de68f8895",
+ "sha256": "02b2m0cq04ynjcmr4j8gpdzjv9mpf1fysn736xv724xgaymj396n"
+ }
+ },
+ {
+ "ename": "bfbuilder",
+ "commit": "3e77dd911b850846f1719b2ee943b74028d94f04",
+ "sha256": "16ckybqd0a8l75ascm3k4cdzp969lzq7m050aymdyjhwif6ld2r7",
+ "fetcher": "github",
+ "repo": "zk-phi/bfbuilder",
+ "unstable": {
+ "version": [
+ 20200816,
+ 519
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "00cbf1010dc3fee5a0b8e7c0e0b6041bb6251bdf",
+ "sha256": "1n1aq3kwsjc3hlgas73bs22pvrn69hfba1wcbqs2j28j2j9j00b2"
+ }
+ },
+ {
+ "ename": "bibclean-format",
+ "commit": "a96cc66b22e7ec145ffa3031089a3d60e77b8c42",
+ "sha256": "1lvi1r612jb6w0j6mbq93gk9f7hmb1pn42lfs47gvf0prmjf1zyb",
+ "fetcher": "github",
+ "repo": "peterwvj/bibclean-format",
+ "unstable": {
+ "version": [
+ 20190302,
+ 2017
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "b4003950a925d1c659bc359ab5e88e4441775d77",
+ "sha256": "1x5hbs9j4ms93p080267kjyqpk81il3x7q87awf6qzz5xhc20d3b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "b4003950a925d1c659bc359ab5e88e4441775d77",
+ "sha256": "1x5hbs9j4ms93p080267kjyqpk81il3x7q87awf6qzz5xhc20d3b"
+ }
+ },
+ {
+ "ename": "biblio",
+ "commit": "c5fbaa8c59b0e64d13beb0e0f18b0734afa84f51",
+ "sha256": "0ym7xvcfd7hh3qdpfb8zpa7w8s4lpg0vngh9d0ns3s3lnhz4mi0g",
+ "fetcher": "github",
+ "repo": "cpitclaudel/biblio.el",
+ "unstable": {
+ "version": [
+ 20200416,
+ 1407
+ ],
+ "deps": [
+ "biblio-core"
+ ],
+ "commit": "eb9baf1d2bf6a073d24ccb717025baa693e98f3e",
+ "sha256": "0s7wld8ikfyn2rz8zr4g3lj59b2g95mj1jnqw6xvmxys0ahnb0r5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "biblio-core"
+ ],
+ "commit": "a5a68fcf677f286f205f32dc7486f6c9f66aa6af",
+ "sha256": "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"
+ }
+ },
+ {
+ "ename": "biblio-bibsonomy",
+ "commit": "e4867fd81cf56c8a74dcc71774790aa602b068a7",
+ "sha256": "0xfycxsslmr5si636l9pv9w5s5hmlk3253wq2vg8dm7b7ag5gr4s",
+ "fetcher": "github",
+ "repo": "andreasjansson/biblio-bibsonomy.el",
+ "unstable": {
+ "version": [
+ 20190105,
+ 1200
+ ],
+ "deps": [
+ "biblio-core"
+ ],
+ "commit": "778cc944db3c6dababe2e7fec5877fba42e8c00d",
+ "sha256": "0141nphan49br71bx89ias78wvchfsir3snssn3kf6l97ha1afgn"
+ }
+ },
+ {
+ "ename": "biblio-core",
+ "commit": "f4f086d3e8fd6a95ce198e148cd3ede35dd73fb8",
+ "sha256": "0zpfamrb2gka41h834a05hxdbw4h55777kh6rhjikjfmy765nl97",
+ "fetcher": "github",
+ "repo": "cpitclaudel/biblio.el",
+ "unstable": {
+ "version": [
+ 20200416,
+ 307
+ ],
+ "deps": [
+ "dash",
+ "let-alist",
+ "seq"
+ ],
+ "commit": "eb9baf1d2bf6a073d24ccb717025baa693e98f3e",
+ "sha256": "0s7wld8ikfyn2rz8zr4g3lj59b2g95mj1jnqw6xvmxys0ahnb0r5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "let-alist",
+ "seq"
+ ],
+ "commit": "a5a68fcf677f286f205f32dc7486f6c9f66aa6af",
+ "sha256": "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"
+ }
+ },
+ {
+ "ename": "bibliothek",
+ "commit": "8b8308e72c4437237fded29db1f60b3eba0edd26",
+ "sha256": "011wnya65vfnn17fn1vhq0sk8c1mli81x0nb44yi6zl1hwxivb55",
+ "fetcher": "github",
+ "repo": "cadadr/elisp",
+ "unstable": {
+ "version": [
+ 20190124,
+ 1828
+ ],
+ "deps": [
+ "a",
+ "pdf-tools"
+ ],
+ "commit": "61a14d1a8c17930caca5c5daf893cedc9c23c5f3",
+ "sha256": "0acq8d8vlx3hd405wmi5w36gg88bz1c1crmlxbd2whgi8kyf506z"
+ }
+ },
+ {
+ "ename": "bibretrieve",
+ "commit": "e548e0cf8babaf32f1db58099599a72cebdbb84d",
+ "sha256": "1mf884c6adx7rq5c2z5wrnjpb6znljy30mscxskwqiyfs8c62mii",
+ "fetcher": "github",
+ "repo": "pzorin/bibretrieve",
+ "unstable": {
+ "version": [
+ 20191124,
+ 1855
+ ],
+ "deps": [
+ "auctex"
+ ],
+ "commit": "81dc8e0db3629cc180eafb2bc34b60dcd8980316",
+ "sha256": "00zya2h6f5fpfxyi893fz3kpbbdhd8yq6b8g42bvxc5bfbknfhwc"
+ }
+ },
+ {
+ "ename": "bibslurp",
+ "commit": "67f473e839d6325f193c641792671f43fbf83b6d",
+ "sha256": "178nhng87bdi8s0r2bdh2gk31w9mmjkyi6ncnddk3v7p8fsh4jjp",
+ "fetcher": "github",
+ "repo": "mkmcc/bibslurp",
+ "unstable": {
+ "version": [
+ 20151202,
+ 2346
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "0116bbb04840d20a6b087e6d9c921bb1c2489a8f",
+ "sha256": "0vcdi0q6rbs3qqlpccy9hdv82zrx61gdj3fn444qashk84s085vf"
+ }
+ },
+ {
+ "ename": "bibtex-completion",
+ "commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3",
+ "sha256": "06mg9fwp6jwr6fbnzh4z8am47bspcl8hv0icmdpc9lmzbcyfpg8f",
+ "fetcher": "github",
+ "repo": "tmalsburg/helm-bibtex",
+ "unstable": {
+ "version": [
+ 20200513,
+ 852
+ ],
+ "deps": [
+ "biblio",
+ "cl-lib",
+ "dash",
+ "f",
+ "parsebib",
+ "s"
+ ],
+ "commit": "8a0dd9841316793aacddea744d6b8ca4a7857a35",
+ "sha256": "1av058d7888kr3q15y1122r8jkarfw1s83gvkillj7kyzj3i53m5"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f",
+ "parsebib",
+ "s"
+ ],
+ "commit": "d6a98ac6f28d2a6a05e203115211c98333d40aca",
+ "sha256": "0arhy051945lxjqg77b275ny9nsv60cqj0qfpmvd8xkc07lqfn23"
+ }
+ },
+ {
+ "ename": "bibtex-utils",
+ "commit": "5764b6a880e8143db66e9011cc1c2bf0bcd61082",
+ "sha256": "13llsyyvy0xc9s51cqqc1rz13m3qdqh8jw07gwywfbixlma59z8l",
+ "fetcher": "github",
+ "repo": "plantarum/bibtex-utils",
+ "unstable": {
+ "version": [
+ 20190703,
+ 2117
+ ],
+ "commit": "26a8f0909b6adbf545a2b5e57ce7f779bf7a65af",
+ "sha256": "19p9v49j7yq41wifw34nwxhqnv18zjqzy6z8xbwm1j7fn78lafk3"
+ }
+ },
+ {
+ "ename": "bicycle",
+ "commit": "ec9b4138ffaf81b556e01b85ce4b112e77909260",
+ "sha256": "16ikqbmsjyknj3580wdnp8ffs85bq9idf9hvxm0ihgw5gy469xqj",
+ "fetcher": "github",
+ "repo": "tarsius/bicycle",
+ "unstable": {
+ "version": [
+ 20200723,
+ 2222
+ ],
+ "commit": "799969a66192b27c6464fc2e0025f4089d70493b",
+ "sha256": "13179nlhjkdsgpjp2lbx8fqx76ka79hjkhip6im6afv9icr3j3ba"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "commit": "799969a66192b27c6464fc2e0025f4089d70493b",
+ "sha256": "13179nlhjkdsgpjp2lbx8fqx76ka79hjkhip6im6afv9icr3j3ba"
+ }
+ },
+ {
+ "ename": "bifocal",
+ "commit": "79e71995bd8452bad2e717884f148ec74c9735fc",
+ "sha256": "07qrxsby611l3cwsmw3d53h1n7cd1vg53j4vlc2isg56l2m4qks5",
+ "fetcher": "github",
+ "repo": "riscy/bifocal-mode",
+ "unstable": {
+ "version": [
+ 20200325,
+ 539
+ ],
+ "commit": "de8d09b08b0b30714c4f9b98c97e9577d47b9be6",
+ "sha256": "1z3jk232i0h2zakvbkfpb5a5qdbzfqn4zvbja1hms9349x54a07i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "commit": "773a6dde790c4a240e643a9071e4c7bce09d40de",
+ "sha256": "11dirb13hblfa95hqqshrsjri4d4qzcq5qhhnd4xqajdchr62758"
+ }
+ },
+ {
+ "ename": "binclock",
+ "commit": "95dfa38d795172dca6a09cd02e21630747723949",
+ "sha256": "1s0072kcd1xp8355j8aph94gb3a1wqmzx1hhfp9d6bzqf6cij8gk",
+ "fetcher": "github",
+ "repo": "davep/binclock.el",
+ "unstable": {
+ "version": [
+ 20170802,
+ 1116
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "87042230d7f3fe3e9a77fae0dbab7d8f7e7794ad",
+ "sha256": "0bbcn3aif3qvmgbga7znivcbgn1n79278x7xvbha52zpj584xp8d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 11
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b964e437311e5406a31c0ec7038b3bf1fd02b876",
+ "sha256": "0ljxb70vx7x0yn8y1ilf4phk0hamprl43dh23fm3njqqgw60hzbk"
+ }
+ },
+ {
+ "ename": "bind-chord",
+ "commit": "6240afa625290187785e4b7535ee7b0d7aad8969",
+ "sha256": "1hyhs3iypyg5730a20axcfzrrglm4nbgdz8x1ifkaa0iy5zc9hb0",
+ "fetcher": "github",
+ "repo": "jwiegley/use-package",
+ "unstable": {
+ "version": [
+ 20171204,
+ 2010
+ ],
+ "deps": [
+ "bind-key",
+ "key-chord"
+ ],
+ "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+ "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4
+ ],
+ "deps": [
+ "bind-key",
+ "key-chord"
+ ],
+ "commit": "39a8b8812c2c9f6f0b299e6a04e504ef393694ce",
+ "sha256": "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"
+ }
+ },
+ {
+ "ename": "bind-key",
+ "commit": "d39d33af6b6c9af9fe49bda319ea05c711a1b16e",
+ "sha256": "1qw2c27016d3yfg0w10is1v72y2jvzhq07ca4h6v17yi94ahj5xm",
+ "fetcher": "github",
+ "repo": "jwiegley/use-package",
+ "unstable": {
+ "version": [
+ 20200805,
+ 1727
+ ],
+ "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+ "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4
+ ],
+ "commit": "39a8b8812c2c9f6f0b299e6a04e504ef393694ce",
+ "sha256": "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"
+ }
+ },
+ {
+ "ename": "bind-map",
+ "commit": "f58800af5965a6e7c9314aa00e971196ea0d036e",
+ "sha256": "1jzkp010b4vs1bdhccf5igmymfxab4vxs1pccpk9n5n5a4xaa358",
+ "fetcher": "github",
+ "repo": "justbur/emacs-bind-map",
+ "unstable": {
+ "version": [
+ 20161207,
+ 1511
+ ],
+ "commit": "bf4181e3a41463684adfffc6c5c305b30480e30f",
+ "sha256": "0vrk17yg3jbww92p433p64ijmjf7cjg2wmzi9w418235w1xdfzz8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "bf4181e3a41463684adfffc6c5c305b30480e30f",
+ "sha256": "0vrk17yg3jbww92p433p64ijmjf7cjg2wmzi9w418235w1xdfzz8"
+ }
+ },
+ {
+ "ename": "bing-dict",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1cqjndq8xm2bwjvdj95dn377bp9r6rrkp1z4a45faj408mipahli",
+ "fetcher": "github",
+ "repo": "cute-jumper/bing-dict.el",
+ "unstable": {
+ "version": [
+ 20200216,
+ 110
+ ],
+ "commit": "1d581aaa9622b34f8fb83af5579fa252aa24cfef",
+ "sha256": "1v0ncgnj9vv2r0qbwiipg63rlhnfjz8q23jx3la2l22l0i2lyivb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "commit": "52718ae3a3abfa5e5457239ee7ddf8f0c23a79a7",
+ "sha256": "1kn8kmljn0pj0hz7dj7r7nxw43xd6acndaqq92d02mla12hiqayz"
+ }
+ },
+ {
+ "ename": "birds-of-paradise-plus-theme",
+ "commit": "3932853232c269f158806aebe416b456c752a9bb",
+ "sha256": "0vdv2siy30kf1qhzrc39sygjk17lwm3ix58pcs3shwkg1y5amj3m",
+ "fetcher": "github",
+ "repo": "jimeh/birds-of-paradise-plus-theme.el",
+ "unstable": {
+ "version": [
+ 20130419,
+ 2129
+ ],
+ "commit": "bb9f9d4ef7f7872a388ec4eee1253069adcadb6f",
+ "sha256": "1n5icy29ks5rxrxp7v4sf0523z7wxn0fh9lx4y6jb7ppdjnff12s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "ba2c4443388a73f2c5e2de0c24d3106676aeb6fa",
+ "sha256": "1r3f5d67x257g8kvdbdsl4w3y1dvc1d6s9x8bygbkvyahfi5m5hn"
+ }
+ },
+ {
+ "ename": "bison-mode",
+ "commit": "d08592cabbc0779c67c260f9648d2273c0dd9e3e",
+ "sha256": "097gimlzmyrsfnl76cbzyyi9dm0d2y3f9107672h56ncri35mh66",
+ "fetcher": "github",
+ "repo": "Wilfred/bison-mode",
+ "unstable": {
+ "version": [
+ 20200226,
+ 47
+ ],
+ "commit": "675df47193accaf30ca44e142523b2b3bb122979",
+ "sha256": "08yg51pzpry5gy29fdbrrb7s5j5c5fxsrhgy0ncp0vl082fs1bv9"
+ }
+ },
+ {
+ "ename": "bitbake",
+ "commit": "da099b66180ed537f8962ab4ca727d2441f9691d",
+ "sha256": "1k2n1i8g0jc78sp1icm64rlhi1q0vqar2a889nldp134a1l7bfah",
+ "fetcher": "github",
+ "repo": "canatella/bitbake-el",
+ "unstable": {
+ "version": [
+ 20190107,
+ 1155
+ ],
+ "deps": [
+ "dash",
+ "mmm-mode",
+ "s"
+ ],
+ "commit": "4896ff48712a6be37009605ba697a7104462e2fd",
+ "sha256": "0hrqgi3xck8sfs56igxhmvb3vpwm8kj00sqi6f13r7szpxy6cnrq"
+ }
+ },
+ {
+ "ename": "bitbucket",
+ "commit": "9cf87389e6a5d868850d27e077202e1e52eaf4aa",
+ "sha256": "1d0v6hvmxky3k2m89b7xm1igx9fmzvhdpn1bi8zln61m4zgr3yz0",
+ "fetcher": "github",
+ "repo": "tjaartvdwalt/bitbucket.el",
+ "unstable": {
+ "version": [
+ 20170405,
+ 446
+ ],
+ "deps": [
+ "request",
+ "s"
+ ],
+ "commit": "5e663da1bd38a14c1ecf4d66a79d4321ac833bcf",
+ "sha256": "1sikayb6i1k40zdl4j9n04xcmsf74py5vmcjbvli7k8b3ar7l5l5"
+ }
+ },
+ {
+ "ename": "bitlbee",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1lmbmlshr8b645qsb88rswmbbcbbawzl04xdjlygq4dnpkxc8w0f",
+ "fetcher": "github",
+ "repo": "pjones/bitlbee-el",
+ "unstable": {
+ "version": [
+ 20151203,
+ 0
+ ],
+ "commit": "3a92a4119e0c007df2c7dcf1b1c3a5f23ee40e05",
+ "sha256": "0mccvpf8f87i7rqga3s4slrqz80rp3kyj071rrimhzpx8pnsrxx9"
+ }
+ },
+ {
+ "ename": "blackboard-bold-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "08fmzm5lblkk503zr4d6hkp45075pwwd8zinngasrsf1r01isksj",
+ "fetcher": "github",
+ "repo": "grettke/blackboard-bold-mode",
+ "unstable": {
+ "version": [
+ 20160813,
+ 206
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5299cb064ba71baa3e331b8560bf8dd38cbbc4ed",
+ "sha256": "00xbcgx4snz4sd7q7ys24rsnf5wdxjn402v8y5dgn4ayx88y1rrj"
+ }
+ },
+ {
+ "ename": "blackboard-theme",
+ "commit": "eca8cbcc1282bb061f769daf86b1938d1f30f704",
+ "sha256": "19cnfxrm85985ic55y5x7nwxdynjp7djyd33dhj8r7s92cs25fn7",
+ "fetcher": "github",
+ "repo": "don9z/blackboard-theme",
+ "unstable": {
+ "version": [
+ 20161216,
+ 656
+ ],
+ "commit": "7a0d79410feb728ff5cce75c140fadc19a3f9a6d",
+ "sha256": "00hws9fbf7hy11hnicgk2q3din0z8hdq7my00aaw7b8nnb8q4g89"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "d8b984f2541bb86eb4363a2b4c94631e49843d4a",
+ "sha256": "1jh2960yab6rhdq7ci1slpmnr43619cza0g8bfbq759yz5b7xryh"
+ }
+ },
+ {
+ "ename": "blacken",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "0lk7rhrzysdg4zmvv75bkpxcs6fcd6jaf0nh0bp15c3kp2v9zsn5",
+ "fetcher": "github",
+ "repo": "pythonic-emacs/blacken",
+ "unstable": {
+ "version": [
+ 20200626,
+ 2018
+ ],
+ "commit": "784da60033fe3743336d1da0f33239f1bf514266",
+ "sha256": "1s7isvih1xl4l6say8xa69r9lf3prq9sd6d9fmn1n8g8p3w09cnq"
+ }
+ },
+ {
+ "ename": "blackout",
+ "commit": "9128d87569dc74b90f57dd65edead7199f5c7911",
+ "sha256": "06gxgald2vchfwhbiaap7rfjk7kirfv4yjc4r98g998v96bilw64",
+ "fetcher": "github",
+ "repo": "raxod502/blackout",
+ "unstable": {
+ "version": [
+ 20200404,
+ 1550
+ ],
+ "commit": "d99ab1aad84e4bd2bd4a499877764c213cce50ff",
+ "sha256": "0ay49ars61vr43n4bd3k4n1w89ilmw7d8s53ifixgw0vvjkz74z1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "87822abd1ed46411368ef91752a7f51c0ef2aee0",
+ "sha256": "0n0889vsm3lzswkcdgdykgv3vz4pb9s88wwkinc5bn70vc187byp"
+ }
+ },
+ {
+ "ename": "blgrep",
+ "commit": "e78ed9dc4a7ff57524e79213973157ab364ae14d",
+ "sha256": "0w7453vh9c73hdfgr06693kwvhznn9xr1hqa65izlsx2fjhqc9gm",
+ "fetcher": "github",
+ "repo": "ataka/blgrep",
+ "unstable": {
+ "version": [
+ 20150401,
+ 1416
+ ],
+ "deps": [
+ "clmemo"
+ ],
+ "commit": "605beda210610a5829750a987f5fcebea97af546",
+ "sha256": "1pslwyaq18d1z7fay2ih3n27i6b49ss62drqqb095l1jxk42xxm0"
+ }
+ },
+ {
+ "ename": "blimp",
+ "commit": "4fe28626950659c5ba4aa9cc7ba6126ce4737fb7",
+ "sha256": "1k70x0gs9ns7652ahq2b8fhmichsmajzqmm46v1imji238zr7kb1",
+ "fetcher": "github",
+ "repo": "walseb/blimp",
+ "unstable": {
+ "version": [
+ 20180903,
+ 2240
+ ],
+ "deps": [
+ "eimp"
+ ],
+ "commit": "39562f02acc1113595cb253a85bb3b9da743ddd2",
+ "sha256": "0wzdln3rqqvckkc63q5sb83kimnyk6hrc4slbxhwapdfk53gz0j9"
+ }
+ },
+ {
+ "ename": "bliss-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "1kzvi6zymfgirr41l8r2kazfz1y4xkigbp5qa1fafcdmw81anmdh",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-bliss-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1307
+ ],
+ "commit": "c3cf6d8a666ab26909b7da158f9e94df71a5fbbf",
+ "sha256": "1bpyhsjfdjfa1iw9kv7fsl30vz48qllqgjg1rsxdl3vcripcbc9z"
+ }
+ },
+ {
+ "ename": "blitzmax-mode",
+ "commit": "a1a59a8ac5bb12507e58cde85b09e7f19ce72a82",
+ "sha256": "1isqkmc6g412l7gbg0bmyfsl975wjv7fv753z1mi0bzr7ihv5ckz",
+ "fetcher": "github",
+ "repo": "Sodaware/blitzmax-mode",
+ "unstable": {
+ "version": [
+ 20200415,
+ 1529
+ ],
+ "commit": "5f67bb3c8e4baf1f6881cc998f9f031641a7b08a",
+ "sha256": "1hcx6b3ka0n6sbi9p0z2wqlsxk5d2pvkjawpcyh40b5f1r6dpfmc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "d772deff2464d48d018bbe43b1e4b3745a4ac886",
+ "sha256": "0gzm2qzwbaqfmfi1vhcx23w9v1mcs6kx5kijncn9hbvhi0640j76"
+ }
+ },
+ {
+ "ename": "bln-mode",
+ "commit": "ee12ef97df241b7405feee69c1e66b3c1a67204b",
+ "sha256": "0w4abaqx9gz04ls1hn1qz8qg9jpvi80b9jb597ddjcbnwqq9z83r",
+ "fetcher": "github",
+ "repo": "mgrachten/bln-mode",
+ "unstable": {
+ "version": [
+ 20181121,
+ 918
+ ],
+ "commit": "a601b0bf975dd1432f6552ab6afe3f4f71133b4a",
+ "sha256": "19y1fs5bzp2sqvh6svmj0cpvgq13zmsn852027hi11zvwi6dzqz8"
+ }
+ },
+ {
+ "ename": "blockdiag-mode",
+ "commit": "2a0adb94f2a435e846944a1c544e6591b131a10e",
+ "sha256": "0v48w4slzx8baxrf10jrzcpqmcv9d3z2pz0xqn8czlzm2f6id3ya",
+ "fetcher": "github",
+ "repo": "xcezx/blockdiag-mode",
+ "unstable": {
+ "version": [
+ 20160427,
+ 524
+ ],
+ "commit": "f3b21ba433d60327cebd103ae4492200750e24a9",
+ "sha256": "111i897dnkbx4xq62jfkqq4li4gm16lxbgkgg2gn13zv0f0lzgvy"
+ }
+ },
+ {
+ "ename": "blog-admin",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "03wnci5903c6jikkvlzc2vfma9h9qk673cc3wm756rx94jxinmyk",
+ "fetcher": "github",
+ "repo": "CodeFalling/blog-admin",
+ "unstable": {
+ "version": [
+ 20170923,
+ 1409
+ ],
+ "deps": [
+ "cl-lib",
+ "ctable",
+ "f",
+ "names",
+ "s"
+ ],
+ "commit": "b5f2e1dad7d68ec903619f7280bb0bcb7e398a1e",
+ "sha256": "0fgzmmjxhl8i9yqx1bvb7hgkk9w4ylx73xy990qf1bl7fg21v636"
+ }
+ },
+ {
+ "ename": "blog-minimal",
+ "commit": "56217a33b0669a782621dd65d83419ae371ed60a",
+ "sha256": "1qj25b6n3slvmbqvzfd37v4xmy1vvz37686jdr29bw5qk4prgxff",
+ "fetcher": "github",
+ "repo": "thiefuniverse/blog-minimal",
+ "unstable": {
+ "version": [
+ 20181021,
+ 849
+ ],
+ "deps": [
+ "ht",
+ "mustache",
+ "org",
+ "s",
+ "simple-httpd"
+ ],
+ "commit": "356c878322258159021eecdd15757e11cf02e335",
+ "sha256": "1phiraki6l6bp7mw90spw0r99wahl47ycpz0lxr3zljb5ip8jddp"
+ }
+ },
+ {
+ "ename": "bm",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "07459r7m12j2nsb7qrb26bx32alylhaaq3z448n42lz02a8dc63g",
+ "fetcher": "github",
+ "repo": "joodland/bm",
+ "unstable": {
+ "version": [
+ 20190807,
+ 1217
+ ],
+ "commit": "8129428182e1b8a647d16fceb2d08cc0a2a5f3c7",
+ "sha256": "048n596psrnvz5hi7i7vs0dyk6i6m9krzfh8fld95yggyyikf0iw"
+ },
+ "stable": {
+ "version": [
+ 201905
+ ],
+ "commit": "637dacf4cb9112fdfb949706a704dd53cbe79c7e",
+ "sha256": "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"
+ }
+ },
+ {
+ "ename": "bmx-mode",
+ "commit": "7f456d2b2b8f5a33bcb0f2ffd19e6e0276950f24",
+ "sha256": "04g8l4cw20k3yhbija9mz1l4nx3bzhzj7nb35s0xdyvwbc2mhrwb",
+ "fetcher": "github",
+ "repo": "josteink/bmx-mode",
+ "unstable": {
+ "version": [
+ 20180929,
+ 1132
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash",
+ "s"
+ ],
+ "commit": "536b332edc3b98cc97588c937c7368803ba5961c",
+ "sha256": "0hbkh4fb1cb1fd7fq1999i9rffr2xc0l16b0m5sajcrsir3gq4nr"
+ }
+ },
+ {
+ "ename": "bnf-mode",
+ "commit": "217bde4ccd2d68dc14b1bfee22fbc99cd4109952",
+ "sha256": "027pn2lvqsxyj9ii5svql2sw4xm9wrd9zy7ms8vayv737w5xd3n1",
+ "fetcher": "github",
+ "repo": "sergeyklay/bnf-mode",
+ "unstable": {
+ "version": [
+ 20200323,
+ 1348
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d88eef69ae66ea1ffa21a65317afe84c9ddb0814",
+ "sha256": "1bci2w8drwgcli9hqg55izaxpwq4fvqdigvlrfc0524s7021ij24"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4a7aff6a3a691826ea4add9f519c854b9611d780",
+ "sha256": "1hnkvwl0as2s4aayqahclqclsriigqv51h8yafx0za1xfh4snfzv"
+ }
+ },
+ {
+ "ename": "bnfc",
+ "commit": "7871b6372a391ace76edea40c6f92ceb10b70bf9",
+ "sha256": "0h6qhyi7vcikg7zhv8lywdz033kp27a8z1ymq5wgs4aqs184igm6",
+ "fetcher": "github",
+ "repo": "jmitchell/bnfc-mode",
+ "unstable": {
+ "version": [
+ 20160605,
+ 1927
+ ],
+ "commit": "1b58df1dd0cb9b81900632fb2843a03b94f56fdb",
+ "sha256": "0lmqrcy80nw6vmf81kh6q39x8pwhzrj6lbk31xpl8mvwnpqaykmn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "1b58df1dd0cb9b81900632fb2843a03b94f56fdb",
+ "sha256": "0lmqrcy80nw6vmf81kh6q39x8pwhzrj6lbk31xpl8mvwnpqaykmn"
+ }
+ },
+ {
+ "ename": "bog",
+ "commit": "19fd0bf2f8e52c79120c492a6dcabdd51b465d35",
+ "sha256": "1ci8xxca7dclmi5v37y5k45qlmzs6a9hi6m7czgiwxii902w5pkl",
+ "fetcher": "github",
+ "repo": "kyleam/bog",
+ "unstable": {
+ "version": [
+ 20200720,
+ 244
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "14241d308d15410bfaafcf607a8a4a7ff3d7254c",
+ "sha256": "1k9ww9in54v0bmw8l6azx67wbb18r2q6fdwl1j931gaz9pngk3k0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "14241d308d15410bfaafcf607a8a4a7ff3d7254c",
+ "sha256": "1k9ww9in54v0bmw8l6azx67wbb18r2q6fdwl1j931gaz9pngk3k0"
+ }
+ },
+ {
+ "ename": "bolt-mode",
+ "commit": "ec9e35f0e37db90d906fccd08fb25b673c88d3b8",
+ "sha256": "03x89k8v0m9kv1fhyys2gwympb70qlmg7gdib8wsmdxs34ys5igz",
+ "fetcher": "github",
+ "repo": "mpontus/bolt-mode",
+ "unstable": {
+ "version": [
+ 20180310,
+ 810
+ ],
+ "commit": "85a5a752bfbebb4aed884326c25db64c000e9934",
+ "sha256": "03nxcmpm5n8jcca39ivrl7cjqz3gzsl3w6qc30hcp278qf2jq6va"
+ }
+ },
+ {
+ "ename": "bongo",
+ "commit": "692428769cd792dc0644641682c2793103dd00c6",
+ "sha256": "07i9gw067r2igp6s2g2iakm1ybvw04q6zznna2cfdf08nax64ghv",
+ "fetcher": "github",
+ "repo": "dbrock/bongo",
+ "unstable": {
+ "version": [
+ 20190722,
+ 1644
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9afbf269d33cd3196962423a2c261824611cffe4",
+ "sha256": "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9afbf269d33cd3196962423a2c261824611cffe4",
+ "sha256": "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"
+ }
+ },
+ {
+ "ename": "bonjourmadame",
+ "commit": "34c4cfd7bbf5b442a9304598ba0a23ba9b8dfae4",
+ "sha256": "0d36yradh37359fjk59s54hxkbh4qcc17sblj2ylcdyw7181iwfn",
+ "fetcher": "github",
+ "repo": "pierre-lecocq/bonjourmadame",
+ "unstable": {
+ "version": [
+ 20170919,
+ 1134
+ ],
+ "commit": "d3df185fce78aefa689fded8e56a654f0fde4ac0",
+ "sha256": "1acn63hd7s2z8viy52hmhncdic7m86rcqczxnz9aivikqy4hfnsi"
+ }
+ },
+ {
+ "ename": "boogie-friends",
+ "commit": "5bdd06b82d002677c046876642efe1dc01bc3e77",
+ "sha256": "0cfs7gvjxsx2027dbzh4yypz500nmk503ikiiprbww8jyvc8grk7",
+ "fetcher": "github",
+ "repo": "boogie-org/boogie-friends",
+ "unstable": {
+ "version": [
+ 20190909,
+ 1432
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash",
+ "flycheck",
+ "yasnippet"
+ ],
+ "commit": "45ee305eba1cce63f89e49daef9eaeaa90e34265",
+ "sha256": "0dnmg84ynxr4vhdgrzdvrq68jrrmp9vkz0lbwhlxpljckpmfdf03"
+ }
+ },
+ {
+ "ename": "bool-flip",
+ "commit": "f56377a7c3f4b75206ad9ba570c35dbf752079e9",
+ "sha256": "1xfspqxshx7m8gh6g1snkaahka9f71fnq7hx81nik4s9s8pmxj9c",
+ "fetcher": "github",
+ "repo": "michaeljb/bool-flip",
+ "unstable": {
+ "version": [
+ 20161215,
+ 1539
+ ],
+ "commit": "f58a9a7b9ab875bcfbd57c8262697ae404eb4485",
+ "sha256": "06q86a6dhc7jvq25yqqq3dsmrbm67h0ayb6nhd0q5l90yrmfqfjh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "0f7cc9b387429239fb929896511727d4e49a795b",
+ "sha256": "1051gy7izy25jwh079231d4lh9azchbqc6nvfrkv8s9ck407a65a"
+ }
+ },
+ {
+ "ename": "boon",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0gryw7x97jd46jgrm93cjagj4p7w93cjc36i2ps9ajf0d8m4gajb",
+ "fetcher": "github",
+ "repo": "jyp/boon",
+ "unstable": {
+ "version": [
+ 20200514,
+ 1227
+ ],
+ "deps": [
+ "dash",
+ "expand-region",
+ "multiple-cursors"
+ ],
+ "commit": "57271ed2ddca96c77b83b282019852d1cffffd26",
+ "sha256": "0mmyxi75hlg1lkvpk4lq5nagmcsmjijmkcmmkkq25llf7nmik8as"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "expand-region",
+ "multiple-cursors"
+ ],
+ "commit": "270ae67b3136ac355d2aed5b4690ae28edaf7c29",
+ "sha256": "1ss9bjs34q41pa0g0nbdzd8fwpjcbd2239rdlx5aykfv9v0b8j77"
+ }
+ },
+ {
+ "ename": "borg",
+ "commit": "878ab90d444f3a1fd2c9f9068ca7b477e218f1da",
+ "sha256": "0gn4hf7hn190gl0kg59nr6jzjnb39c0hy9b3brrsfld9hyxga9jr",
+ "fetcher": "github",
+ "repo": "emacscollective/borg",
+ "unstable": {
+ "version": [
+ 20200805,
+ 1131
+ ],
+ "deps": [
+ "epkg",
+ "magit"
+ ],
+ "commit": "1fe1d2b7a574dd560740a55d87d9a5fb3a989dbc",
+ "sha256": "19rxqh6qagznsm5hqal65cv03k9gg1cfvb0j5saaqfc4nxkhkv7v"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "epkg",
+ "magit"
+ ],
+ "commit": "3f9fc2281e9ae873873998782c98c57c5ebb0555",
+ "sha256": "1k889m4095lm97lphcwcrsl53vhgas7iha594mmk8cs7sm5csjy1"
+ }
+ },
+ {
+ "ename": "borland-blue-theme",
+ "commit": "f2ff5916fd2caee778479bc2ad3ef13ee514052c",
+ "sha256": "1sc8qngm40bwdym8k1dgbahg48i73c00zxd99kqqwm9fnd6nm7qx",
+ "fetcher": "github",
+ "repo": "fourier/borland-blue-theme",
+ "unstable": {
+ "version": [
+ 20160117,
+ 1321
+ ],
+ "commit": "db74eefebbc89d3c62575f8f50b319e87b4a3470",
+ "sha256": "0yzfxxv2bw4x320268bixfc7yf97851804bz3829vbdhnr4kp6y5"
+ }
+ },
+ {
+ "ename": "boron-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "1rrqlq08jnh9ihb99ji1vvmamj742assnm4a7xqz6gp7f248nb81",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-boron-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1308
+ ],
+ "commit": "87ae1a765e07429fec25d2f29b004f84b52d2e0a",
+ "sha256": "1kdf71af1s67vshgwkdgi7swxx942i605awhmhrhdjbkra29v4yn"
+ }
+ },
+ {
+ "ename": "boxquote",
+ "commit": "d2148f8f17b16154bfc337df69a5ad31e25a9b05",
+ "sha256": "0s6cxb8y1y8w9vxxhj1izs8d0gzk4z2zm0cm9gkw1h7k2kyggx6s",
+ "fetcher": "github",
+ "repo": "davep/boxquote.el",
+ "unstable": {
+ "version": [
+ 20200727,
+ 1203
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bdc6c84b9274b228dbc383a14abf9694157e869c",
+ "sha256": "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bdc6c84b9274b228dbc383a14abf9694157e869c",
+ "sha256": "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"
+ }
+ },
+ {
+ "ename": "bpe",
+ "commit": "1a99263c2672d4c2433835cf948101130126e14b",
+ "sha256": "08zfqcgs7i2ram2qpy8vrzksx5722aahr66vdi4d9bcxm03s19fm",
+ "fetcher": "github",
+ "repo": "yuutayamada/bpe",
+ "unstable": {
+ "version": [
+ 20141228,
+ 2205
+ ],
+ "commit": "7b5b25f83506e6c9f4075d3803fa32404943a189",
+ "sha256": "0chmarbpqingdma54d6chbr6v6jg8lapbw56cpvcpbl04fz980r0"
+ }
+ },
+ {
+ "ename": "bpftrace-mode",
+ "commit": "560a126db20ff4da100eeb3edaa0716d7a27eb94",
+ "sha256": "1p1d5xnypfq1lbrkn9i9sdwkyxyrg92f069r21f7nf6a4r2dlf9s",
+ "fetcher": "gitlab",
+ "repo": "jgkamat/bpftrace-mode",
+ "unstable": {
+ "version": [
+ 20190608,
+ 2201
+ ],
+ "commit": "587b39ea7a1d786df5c04796d51bf2a5a4eda0d7",
+ "sha256": "0bvg2vpak2bv3s7wc0zzrqb3pys5s7vi6rs7k7l4fmaj5amaq9vb"
+ }
+ },
+ {
+ "ename": "bpr",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "0rjxn40n4s4xdq51bq0w3455g9pli2pvcf1gnbr96zawbngrw6x2",
+ "fetcher": "github",
+ "repo": "ilya-babanov/emacs-bpr",
+ "unstable": {
+ "version": [
+ 20180220,
+ 1844
+ ],
+ "commit": "7f3c787ed80ac0e83447192ac5450dfa7110ade1",
+ "sha256": "1jb14vd1d35jk3mnb2ja293p2l57yvi7w1idrajapz41ggvfyqbb"
+ }
+ },
+ {
+ "ename": "bracketed-paste",
+ "commit": "6446db573d97ceb21cd39ce05fb39627113bbd74",
+ "sha256": "1v7zwi29as0218vy6ch21iqqcxfhyh373m3dbcdzm2pb8bpcg58j",
+ "fetcher": "github",
+ "repo": "hchbaw/bracketed-paste.el",
+ "unstable": {
+ "version": [
+ 20160407,
+ 2348
+ ],
+ "commit": "843ce3bbb63d560face889e13a57a2f7543957d5",
+ "sha256": "1l6j2zs12psc15cfhqq6hm1bg012jr49zd2i36cmappbsiax1l8m"
+ }
+ },
+ {
+ "ename": "brainfuck-mode",
+ "commit": "279ae8faabbfa2f894999e1534a964606722a150",
+ "sha256": "08jzx329mrr3c2pifs3hb4i79dsw606b0iviagaaja8s808m40cd",
+ "fetcher": "github",
+ "repo": "tom-tan/brainfuck-mode",
+ "unstable": {
+ "version": [
+ 20150113,
+ 842
+ ],
+ "deps": [
+ "langdoc"
+ ],
+ "commit": "36e69552bb3b97a4f888d362c59845651bd0d492",
+ "sha256": "1nzgjgzidyrplfs4jl8nikd5wwvb4rmrnm51qxmw9y2if0hpq0jd"
+ }
+ },
+ {
+ "ename": "brazilian-holidays",
+ "commit": "111f2736e864e7cc8be6beb00eebb62f4d614e8c",
+ "sha256": "1akqv0xd03vq46s8rzpk2hmjvy676dgnivaq8n5myagjkj9bmw3r",
+ "fetcher": "github",
+ "repo": "jadler/brazilian-holidays",
+ "unstable": {
+ "version": [
+ 20191211,
+ 330
+ ],
+ "commit": "13a480f03eb3729e6f203ce77dfd4de5e1203a3d",
+ "sha256": "1980267q70b7m16jsxc433cdqzr15q8dz5cwpkhla52wfdf1s184"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "commit": "13a480f03eb3729e6f203ce77dfd4de5e1203a3d",
+ "sha256": "1980267q70b7m16jsxc433cdqzr15q8dz5cwpkhla52wfdf1s184"
+ }
+ },
+ {
+ "ename": "brf",
+ "commit": "203e7d21e2387866107740ead4ec28787d82ebfb",
+ "sha256": "0439bzzzy6kx536zh9azxrdmfpb69xrr8axxg5q7989892iaqi5m",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/MikeWoolley/brf-mode",
+ "unstable": {
+ "version": [
+ 20200811,
+ 1622
+ ],
+ "deps": [
+ "fringe-helper"
+ ],
+ "commit": "4e12ec16d6b896402f8bcdc1cd468d4064a2df6f",
+ "sha256": "1pdrpvff6hvhjv512z1vkivd848ar5li4p63jnbvl90hp7kpy7c3"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 19
+ ],
+ "deps": [
+ "fringe-helper"
+ ],
+ "commit": "0024b1a276c43fde0d85011b51b5aaf1f201da64",
+ "sha256": "1nnhb0vyx5f3f7h2fsg2p7656kcsk7ahrndxrhs7a77svnr426lb"
+ }
+ },
+ {
+ "ename": "brightscript-mode",
+ "commit": "9acbba1c180ea7c03156009c08285697a7aae419",
+ "sha256": "0g0lwmd53v6lqihksqdirl12rz6a9ljp9zdm1xpd4wbqz72w17jw",
+ "fetcher": "github",
+ "repo": "viseztrance/brightscript-mode",
+ "unstable": {
+ "version": [
+ 20200321,
+ 2126
+ ],
+ "commit": "3b34032bdde6a37b4566c45ce93cb38da21d4965",
+ "sha256": "16p4404mxqgl1zqdalnq3bvbhwv11wgfl42871lxv3nndcsd30gr"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "01405633a14269ab26d053ca6f1494c987d24195",
+ "sha256": "0952smngj32an30v2bqgfc14xrl90xwr4a038w01cdgg9k848g7y"
+ }
+ },
+ {
+ "ename": "broadcast",
+ "commit": "6ed51896112e702a8b853059884aad50d37738c2",
+ "sha256": "1h2c3mb49q3vlpalrsrx8q3rmy1zg0y45ayvzbvzdkfgs8idgbib",
+ "fetcher": "github",
+ "repo": "killdash9/broadcast.el",
+ "unstable": {
+ "version": [
+ 20151205,
+ 212
+ ],
+ "commit": "f6f9cd2e0e3f8c31d6b8e7446c27eb0e50b25f16",
+ "sha256": "0w6b9rxdciy1365kgf6fh3vgrjr8xd5ar6xcn0g4h56f2zg9hdmj"
+ }
+ },
+ {
+ "ename": "browse-at-remote",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0s088ba047azba60rlfn3jbqr321vnm953i7dqw2gj9xml90kbm4",
+ "fetcher": "github",
+ "repo": "rmuslimov/browse-at-remote",
+ "unstable": {
+ "version": [
+ 20200308,
+ 639
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "s"
+ ],
+ "commit": "6aecae4b5d202e582425fc8aa2c9c2b6a4779f25",
+ "sha256": "0c93ilvxmfv28a05fs2lbdyc2q308anjw0xvbkg7dc0blg0fgb05"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 14,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "s"
+ ],
+ "commit": "771a3079e27f397d2f5a9470b945980fa68ee048",
+ "sha256": "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"
+ }
+ },
+ {
+ "ename": "browse-kill-ring",
+ "commit": "294dc32a672e6b6b0ebfc46cdf0ff9ceacf73e89",
+ "sha256": "1d97ap0vrg5ymp96z7y6si98fspxzy02jh1i4clvw5lggjfibhq4",
+ "fetcher": "github",
+ "repo": "browse-kill-ring/browse-kill-ring",
+ "unstable": {
+ "version": [
+ 20200210,
+ 921
+ ],
+ "commit": "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965",
+ "sha256": "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "commit": "2a7acf98c348c4f405a6b2ab216224ca14915be8",
+ "sha256": "0y9m6cv70pzcm0v2v8nwmyh1xx40831chx72m85h5ic5db03gy7b"
+ }
+ },
+ {
+ "ename": "browse-url-dwim",
+ "commit": "a082c2dc0458e3007a947923f5b97e88217199e8",
+ "sha256": "13bv2ka5pp9k4kwrxfqfawwxzsqlakvpi9a32gxgx7qfi0dcb1rf",
+ "fetcher": "github",
+ "repo": "rolandwalker/browse-url-dwim",
+ "unstable": {
+ "version": [
+ 20140731,
+ 1922
+ ],
+ "deps": [
+ "string-utils"
+ ],
+ "commit": "3d611dbb167c286109ac53995ad68286d87aafb9",
+ "sha256": "1rcihwdxrzhgcz573rh1yp3770ihkwqjqvd39yhic1d3sgwxz2hy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 8
+ ],
+ "deps": [
+ "string-utils"
+ ],
+ "commit": "11f1c53126619c7ef1bb5f5d6914ce0b3cce0e30",
+ "sha256": "08qz9l0gb7fvknzkp67srhldzkk8cylnbn0qwkflxgcs6ndfk95y"
+ }
+ },
+ {
+ "ename": "brutal-theme",
+ "commit": "e415b9a4d269cfee5ee2b0e58acb18804c2a8cb7",
+ "sha256": "1xjj2ssw3lbx21w6g4m6vqc471v8jgmgk0zw1z1hkmygg0xipgl3",
+ "fetcher": "github",
+ "repo": "topikettunen/brutal-emacs",
+ "unstable": {
+ "version": [
+ 20200415,
+ 602
+ ],
+ "commit": "ee63563b7cb07aeec342722ae684426cb0465a98",
+ "sha256": "1wx6771iv4psvlwhng0n09g0w3yml1pw3ga5lghjz9j6hba0bc6s"
+ }
+ },
+ {
+ "ename": "brutalist-theme",
+ "commit": "ec889956a5685c3a60003ad2bfa04b03b57aa8e8",
+ "sha256": "0dg0432r3cpjgdlpz583vky4hj5vld9d25dvaj6nxlir2ph9g9hn",
+ "fetcher": "git",
+ "url": "https://git.madhouse-project.org/algernon/brutalist-theme.el.git",
+ "unstable": {
+ "version": [
+ 20181023,
+ 1222
+ ],
+ "commit": "6568844b83dc916a5d6aa69960cbc85ded5f7d73",
+ "sha256": "1b76hvk87p3glrlbm8gj4w6r7y7gqa5yq8hdxq31m2swqg8h3k52"
+ }
+ },
+ {
+ "ename": "bshell",
+ "commit": "cf0ed51304f752af3e1f56caf2856d1521d782a4",
+ "sha256": "1ds8xvh74i6wqswjp8i30knr74l4gbalkb2jil8qjb9wp9l1gw9z",
+ "fetcher": "github",
+ "repo": "plandes/bshell",
+ "unstable": {
+ "version": [
+ 20190617,
+ 238
+ ],
+ "deps": [
+ "buffer-manage"
+ ],
+ "commit": "5cdffa393ec3f923736bc6459bc958829a321327",
+ "sha256": "0nfj00fgg7lsd5201qds7pniyn9lbnmmdbps5lkiqmbp6phksba9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "deps": [
+ "buffer-manage"
+ ],
+ "commit": "8d359f8a76749dcd5ca046b280a11fdb3f87cd23",
+ "sha256": "10nidam7zyqxc085v6f4mzz5d62p92k88vvcrv95i1sbzma7lz4f"
+ }
+ },
+ {
+ "ename": "btc-ticker",
+ "commit": "f78796a8835ec44f4d13c99559fd4d113c6f4f29",
+ "sha256": "1vfnx114bvnly1k3fmcpkqq4m9558wqr5c9k9yj8f046dgfh8dp1",
+ "fetcher": "github",
+ "repo": "niedbalski/emacs-btc-ticker",
+ "unstable": {
+ "version": [
+ 20151113,
+ 1459
+ ],
+ "deps": [
+ "json",
+ "request"
+ ],
+ "commit": "845235b545f070d0812cd1654cbaa4997565824f",
+ "sha256": "022j0gw5qkxjz8f70vqjxysifv2mz6cigf9n5z03zmpvwwvxmx2z"
+ }
+ },
+ {
+ "ename": "bts",
+ "commit": "0d2f9c2f465b06c97cd03c5644155cd6c7fade24",
+ "sha256": "1i1lbjracrgdxr52agxhxxgkra4w291dmz85s195lcx38rva7ib3",
+ "fetcher": "github",
+ "repo": "aki2o/emacs-bts",
+ "unstable": {
+ "version": [
+ 20151109,
+ 1333
+ ],
+ "deps": [
+ "dash",
+ "log4e",
+ "pos-tip",
+ "s",
+ "widget-mvc",
+ "yaxception"
+ ],
+ "commit": "df42d58a36447697f93b56e69f5e700b2baef1f9",
+ "sha256": "1qgasaqhqm0birjmb6k6isd2f5pn58hva8db8qfhva9g5kg1f38w"
+ }
+ },
+ {
+ "ename": "bts-github",
+ "commit": "6f3e87699181877e50d75a89e2ee76e403fc9317",
+ "sha256": "03lz12bbkjqbs82alc97k6s1pmk721qip3h9cifq8a5ww5cbq9ln",
+ "fetcher": "github",
+ "repo": "aki2o/emacs-bts-github",
+ "unstable": {
+ "version": [
+ 20170401,
+ 1249
+ ],
+ "deps": [
+ "bts",
+ "gh"
+ ],
+ "commit": "ef2cf9202dc2128e5efdb613bfde9276a8cd95ad",
+ "sha256": "173i9n4c8mg93gpc7ljxh3nhm4lq2c04yhrvjz6fwwwqvmnkha5f"
+ }
+ },
+ {
+ "ename": "bubbleberry-theme",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "1mjygck5ra30j44msccqas8v6gkpyv74p6y6hidm8v4f8n6m8dcz",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-bubbleberry-theme",
+ "unstable": {
+ "version": [
+ 20141017,
+ 944
+ ],
+ "commit": "22e9adf4586414024e4592972022ec297321b320",
+ "sha256": "1aha8rzilv4k300rr4l9qjfygydfwllkbw17lhm8jz0kh9w6bd28"
+ }
+ },
+ {
+ "ename": "buckwalter",
+ "commit": "7dd38487731cc978e104afa39f8954cfc33ba27f",
+ "sha256": "08pnmfy910n5l00kmkn4533x48m3scsxzyra0nl6iry2n39y2kr1",
+ "fetcher": "github",
+ "repo": "joehakimrahme/buckwalter.el",
+ "unstable": {
+ "version": [
+ 20191119,
+ 1950
+ ],
+ "commit": "1ef6f210f38c0686bc5b445b9704190f168f30ea",
+ "sha256": "054gbfdaqfj5psb3f06ba46x38gd9xak28h1la5b1szdzj61f23i"
+ }
+ },
+ {
+ "ename": "buffer-buttons",
+ "commit": "d518e81c8342a93455108e769c8b42747982c924",
+ "sha256": "1p0ydbrff9197sann3s0d7hpav7r9g461w4llncafmy31w7m1dn6",
+ "fetcher": "github",
+ "repo": "rpav/buffer-buttons",
+ "unstable": {
+ "version": [
+ 20150106,
+ 1439
+ ],
+ "commit": "2feb8494fa7863b98256bc85da670d74a3a8a975",
+ "sha256": "1p5a29bpjqr1gs6sb6rr7y0j06nlva23wxkwfskap25zvjpgwbvq"
+ }
+ },
+ {
+ "ename": "buffer-flip",
+ "commit": "3924870cac1392a7eaeeda34b92614c26c674d63",
+ "sha256": "0ka9ynj528yp1p31hbhm89627v6dpwspybly806n92vxavxrn098",
+ "fetcher": "github",
+ "repo": "killdash9/buffer-flip.el",
+ "unstable": {
+ "version": [
+ 20180307,
+ 2251
+ ],
+ "commit": "e093360e05164c78255866c1ac8f966aa38ba514",
+ "sha256": "1s35llycdhhclf9kl1q9l7zzzfqrnnvbiqv5csfw0mngfj0lz77f"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1
+ ],
+ "commit": "e093360e05164c78255866c1ac8f966aa38ba514",
+ "sha256": "1s35llycdhhclf9kl1q9l7zzzfqrnnvbiqv5csfw0mngfj0lz77f"
+ }
+ },
+ {
+ "ename": "buffer-manage",
+ "commit": "28f8f376df810e6ebebba9fb2c93eabbe3526cc9",
+ "sha256": "0fwri332faybv2apjh8zajqpryi0g4kk3and8djibpvci40l42jb",
+ "fetcher": "github",
+ "repo": "plandes/buffer-manage",
+ "unstable": {
+ "version": [
+ 20191015,
+ 1730
+ ],
+ "deps": [
+ "choice-program",
+ "dash"
+ ],
+ "commit": "4fd0e6f9f3da31bc805be2000adf2c91088dd39b",
+ "sha256": "1an2w2s2xnmcj2knnax4mpv4wzcq31bvqcbhwasm39yzjlz7j5s9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10
+ ],
+ "deps": [
+ "choice-program",
+ "dash"
+ ],
+ "commit": "f21bac39b3c890704a7b1b50e8d6bc39e6417a3d",
+ "sha256": "0hs3glwwp1b0i1gxp0ypyjwaw8pyi26a66y9dqv7sz0xsvnm3zbs"
+ }
+ },
+ {
+ "ename": "buffer-move",
+ "commit": "e30e053eab078a8bef73e42b90299231ea0997ee",
+ "sha256": "0wysywff2bggrha7lpl83c8x6ln7zgdj9gsqmjva6gramqb260fg",
+ "fetcher": "github",
+ "repo": "lukhas/buffer-move",
+ "unstable": {
+ "version": [
+ 20160615,
+ 1803
+ ],
+ "commit": "cb517ecf8409b5fdcda472d7190c6021f0c49751",
+ "sha256": "0gxy58v8nyv6pmzfn8552m8a14f5lzcbkndp5xpzq4g9qvmifmj6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 2
+ ],
+ "commit": "9bf3ff940011c7af3fdd172fa3ea2511c7a8a190",
+ "sha256": "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"
+ }
+ },
+ {
+ "ename": "buffer-sets",
+ "commit": "61d07bbe7201fc991c7ab7ee6299a89d63ddb5e5",
+ "sha256": "1xj9fn2x4kbx8kp999wvz1j68znp7j81zl6rnbaipbx7hjpqrsin",
+ "fetcher": "git",
+ "url": "https://git.flintfam.org/swf-projects/buffer-sets.git",
+ "unstable": {
+ "version": [
+ 20170718,
+ 340
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4a4ccb0d6916c3e9fba737bb7b48e8aac921954e",
+ "sha256": "1rg6iwswi82w8938pavwhvvr2z3ismb42asam2fkad47h2sgn0gz"
+ }
+ },
+ {
+ "ename": "buffer-utils",
+ "commit": "a082c2dc0458e3007a947923f5b97e88217199e8",
+ "sha256": "0cfipdn4fc4fvz513mwiaihvbdi05mza3z5z1379wlljw6r539z2",
+ "fetcher": "github",
+ "repo": "rolandwalker/buffer-utils",
+ "unstable": {
+ "version": [
+ 20140512,
+ 1400
+ ],
+ "commit": "685b13457e3a2085b7584e41365d2aa0779a1b6f",
+ "sha256": "1mnf0dgr6g58k0jyia7985jsinrla04vm5sjl2iajwphbhadjk8p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "b4d325543e25518d725a2122b49cd72a0d6a079a",
+ "sha256": "0rp9hiysy13c4in7b420r7yjza2knlmvphj7l01xbxphbilplqk5"
+ }
+ },
+ {
+ "ename": "buffer-watcher",
+ "commit": "c8681776d467951d14d8247e6939bd9a6f2a80ec",
+ "sha256": "0v096021xk7k821bxb5zddw6sljqa6fs8f7s8j0w3pv6lmhra1ln",
+ "fetcher": "github",
+ "repo": "NicolasPetton/buffer-watcher",
+ "unstable": {
+ "version": [
+ 20170913,
+ 839
+ ],
+ "deps": [
+ "cl-lib",
+ "f"
+ ],
+ "commit": "b32c67c8a5d724257d759f4c903d0dedc32246ef",
+ "sha256": "0mygs48mk2z8cw1csz2wfyn7kln9662d16hwpmbxs5x8k71aq8jx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "353d76882c65d44341b6f28bd86279dda00c3440",
+ "sha256": "0x9bcnya47pf78p6ksdvs1ca5arvbgyi1q8b9yxq55fg3k9523ln"
+ }
+ },
+ {
+ "ename": "buffer-wrap",
+ "commit": "446fb5528644d9e51a10ade59de97e248729d3f3",
+ "sha256": "1fdk490hwz1mf4ldw8bh0w2byxi03qwdapgdgcvzir3s913gagrw",
+ "fetcher": "github",
+ "repo": "jcs-elpa/buffer-wrap",
+ "unstable": {
+ "version": [
+ 20200724,
+ 906
+ ],
+ "commit": "ef0fcb38b23246cfea1721570acc266764cef0a4",
+ "sha256": "029vq5hfknp5l8b9lmxw4hskq9bmv56kqysdfka0636hp7bvc63p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "commit": "c24eb1f251baecfb0bbfa750904e6b15cc977a6c",
+ "sha256": "1bzr5bf4rm1wm0xdhhdprlv7z60ijwrp1lq9h572iw6giyl0hgc3"
+ }
+ },
+ {
+ "ename": "bufler",
+ "commit": "4ba5657f237eea9073a46a4127be5795be07c687",
+ "sha256": "1zxvkrgwk7v3404vcwyv5nag60ri72qqi5fkpwwmzc9cs2bckj20",
+ "fetcher": "github",
+ "repo": "alphapapa/bufler.el",
+ "unstable": {
+ "version": [
+ 20200409,
+ 1253
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "magit-section",
+ "pretty-hydra"
+ ],
+ "commit": "b2b260e4f9e8ba76bb8b4d71344c7b75e05ac44f",
+ "sha256": "0ww7z2xz185i97wa1rnmqwlx2mvwx69hhlyi5m3sm0nkyckb2hjs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "magit-section",
+ "pretty-hydra"
+ ],
+ "commit": "d6c79f04b7d288174d8294fb30488b567586364d",
+ "sha256": "0l35ssjry15wqcxnr8rf5lrv856pgnm0k2d4d6ag14ypjx9nfhw3"
+ }
+ },
+ {
+ "ename": "bufshow",
+ "commit": "543a734795eed11aa47a8e1348d14e362b341af0",
+ "sha256": "027cd0jzb8yxm66q1bhyi75f2m9f2pq3aswgav1d18na3ybwg65h",
+ "fetcher": "github",
+ "repo": "pjones/bufshow",
+ "unstable": {
+ "version": [
+ 20130726,
+ 1838
+ ],
+ "commit": "d60a554e7239e6f7520d9c3436d5ecdbc9cf6957",
+ "sha256": "1rh848adjqdl42rw8yf1fqbr143m0pnbrlznx0d97v4vszvbby2s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "d8424e412d63dcc721c64fbd2ddd2420a03b4e8b",
+ "sha256": "0x9q4amsmawi8jqj9xxg81khvb3gyyf9hjvb0w6vhrgjwpxiq8sy"
+ }
+ },
+ {
+ "ename": "bug-reference-github",
+ "commit": "5dfce86371692dddef78a6c1d772138b487b82cb",
+ "sha256": "18yzxwanbrxsab6ba75z1196x0m6dapdhbvy6df5b5x5viz99cf6",
+ "fetcher": "github",
+ "repo": "arnested/bug-reference-github",
+ "unstable": {
+ "version": [
+ 20200206,
+ 2158
+ ],
+ "commit": "c9512a010f19633e69f1d4b1597eff7048b21112",
+ "sha256": "0nyxd9dnvvdvjik94m9frbbhcf9axi50vpcs0mk0xy5raxq3scf7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "f570a0532bfb44f095b42cf68ab1f69799101137",
+ "sha256": "09rbxgrk7jp9xajya6nccj0ak7fc48wyxq4sfmjmy3q1qfszdsc3"
+ }
+ },
+ {
+ "ename": "bui",
+ "commit": "38b7c9345de75a707b4a73e8bb8e2f213e4fd739",
+ "sha256": "0a4g55k02hi3cwvk4d35lk2x5kc4fabskl2025i83hx0rqw4w3f1",
+ "fetcher": "github",
+ "repo": "alezost/bui.el",
+ "unstable": {
+ "version": [
+ 20200426,
+ 2219
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "28a9b0a36cb69b931cf32db7546ad5c6589752cf",
+ "sha256": "1gwb95pjwv9k0iq290mcyyl0xasr3jldr086rrhabxpcc9ih3yv8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "9162c24b75799857d54838d961c60776ffcd657e",
+ "sha256": "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"
+ }
+ },
+ {
+ "ename": "build-farm",
+ "commit": "bc97bf56ea50788ecbbbb1f46e188e8487370936",
+ "sha256": "0dbq3sc1x0cj06hv3mlk0zw0cijdwjszicylv14m1wahal33xjrw",
+ "fetcher": "github",
+ "repo": "alezost/build-farm.el",
+ "unstable": {
+ "version": [
+ 20181218,
+ 2002
+ ],
+ "deps": [
+ "bui",
+ "magit-popup"
+ ],
+ "commit": "5c268a3c235ace0d79ef1ec82c440120317e06f5",
+ "sha256": "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "bui",
+ "magit-popup"
+ ],
+ "commit": "5c268a3c235ace0d79ef1ec82c440120317e06f5",
+ "sha256": "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"
+ }
+ },
+ {
+ "ename": "build-helper",
+ "commit": "af56cde18ae0efb0ae91c818e6804c55cdb3b8c2",
+ "sha256": "1asgpf2k4i7p88ask1i6ra4krhsxr6j2d2qv0gfxlsa5p330mmgh",
+ "fetcher": "github",
+ "repo": "afonso360/build-helper",
+ "unstable": {
+ "version": [
+ 20161009,
+ 1755
+ ],
+ "deps": [
+ "projectile"
+ ],
+ "commit": "7a6fe71125a26ed1c492dab77cc688a7fe1d68ac",
+ "sha256": "0pipdzjf7arli6b88fp21as5d4v8ylsy19hixywhfgb7917qsrkv"
+ }
+ },
+ {
+ "ename": "build-status",
+ "commit": "23bbe012f313cf0cf4c45a66eb0bee9361ced564",
+ "sha256": "0ckyf0asll50gifx1v0qqzpimjms8i1rgw9bnqiyj861qn5hch92",
+ "fetcher": "github",
+ "repo": "sshaw/build-status",
+ "unstable": {
+ "version": [
+ 20190807,
+ 1231
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1a1d2473aa62f2fdda47d8bfeb9fe352d2579b48",
+ "sha256": "03mxvqiknca5dzcr5j3xdwfyjpq172rbj3dgdfjms8lbgxgm4kgw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c29a0146c5d0be274f5e17921e01698f572c23a1",
+ "sha256": "03f0h7sp0sr9kjyhvcx7i34lvc26f5x8nikfidihgzhrqpprv2b6"
+ }
+ },
+ {
+ "ename": "bundler",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "1jvcrxwsf9yd5vhirfdmjl52n6hffr1vikd386qbn32vgqcsba7a",
+ "fetcher": "github",
+ "repo": "endofunky/bundler.el",
+ "unstable": {
+ "version": [
+ 20200129,
+ 1338
+ ],
+ "deps": [
+ "cl-lib",
+ "inf-ruby"
+ ],
+ "commit": "43efb6be4ed118b06d787ce7fbcffd68a31732a7",
+ "sha256": "1r7x3xw4l5bp4dfqk2v2nrd2yl0rs064gw75nx99ifm92n7nkmgh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "inf-ruby"
+ ],
+ "commit": "4cb4fafe092d587cc9e58ff61cf900fb7f409adf",
+ "sha256": "18d74nwcpk1i8adxzfwz1lgqqcxsc4wkrb490v64pph79dxsi80h"
+ }
+ },
+ {
+ "ename": "bury-successful-compilation",
+ "commit": "f66e2e23c7a1fa0ce6fa8a0e814242b7c46c299c",
+ "sha256": "1gkq4r1573m6m57fp7x69k7kcpqchpcqfcz3792v0wxr22zhkwr3",
+ "fetcher": "github",
+ "repo": "EricCrosson/bury-successful-compilation",
+ "unstable": {
+ "version": [
+ 20181106,
+ 403
+ ],
+ "commit": "674644c844184605a1bb4f9487a60f7a780a6fe7",
+ "sha256": "13ilv4zbzwb5rz0gf69z8pvxazvwlmb5shkb055l42ksxslp49hh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "064817b44a431476305099301311def0a2d9d543",
+ "sha256": "13ilv4zbzwb5rz0gf69z8pvxazvwlmb5shkb055l42ksxslp49hh"
+ }
+ },
+ {
+ "ename": "buster-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0nylkxy9qlj1h5v0pja4g315xcj5qzvkys4dsnzbh3xq4xzyj6xj",
+ "fetcher": "github",
+ "repo": "magnars/buster-mode",
+ "unstable": {
+ "version": [
+ 20140928,
+ 1213
+ ],
+ "commit": "de6958ef8369400922618b8d1e99abfa91b97ac5",
+ "sha256": "1viq7cb41r8klr8i38c5zjrhdnww31gh4j51xdgy4v2lc3z321zi"
+ }
+ },
+ {
+ "ename": "buster-snippets",
+ "commit": "67dabf33096113e68fe282309246094711751e1f",
+ "sha256": "0k36c2k7wwix10rgmjxipc77fkn9jahjyvl191af6w41wla47x4x",
+ "fetcher": "github",
+ "repo": "magnars/buster-snippets.el",
+ "unstable": {
+ "version": [
+ 20151125,
+ 1010
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "bb8769dae132659858e74d52f3f4e8790399423a",
+ "sha256": "11djqlw4qf3qs2rwiz7dn5q2zw5i8sykwdf4hg4awsgv8g0bbxn6"
+ }
+ },
+ {
+ "ename": "busybee-theme",
+ "commit": "36e2089b998d98575aa6dd3cc79fb7f6847f7aa3",
+ "sha256": "0w0z5x2fbnalv404av3mapfkqbfgyk81a1mzvngll8x0pirbyi10",
+ "fetcher": "github",
+ "repo": "mswift42/busybee-theme",
+ "unstable": {
+ "version": [
+ 20170719,
+ 928
+ ],
+ "commit": "66b2315b030582d0ebee605cf455d386d8c30fcd",
+ "sha256": "1cvj5m45f5ky3w86khh6crvdqrdjxg2z6b34jlm32qpgmn0s5g45"
+ }
+ },
+ {
+ "ename": "butler",
+ "commit": "c86e3f5083e59568afac69eed9aa8c1a0bd76e2e",
+ "sha256": "1jv74l9jy55qpwf5np9nlj6a1wqsm3xirm7wm89d1h2mbsfcr0mq",
+ "fetcher": "github",
+ "repo": "AshtonKem/Butler",
+ "unstable": {
+ "version": [
+ 20150812,
+ 8
+ ],
+ "deps": [
+ "deferred",
+ "json"
+ ],
+ "commit": "8ceb35737107572455cca9a61ff46b3ff78f1016",
+ "sha256": "0pp604r2gzzdpfajw920607pklwflk842difdyl4hy9w87fgc0jg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "deps": [
+ "deferred",
+ "json"
+ ],
+ "commit": "0e91e0f01ac9c09422f076a096ee567ee138e7a4",
+ "sha256": "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"
+ }
+ },
+ {
+ "ename": "buttercup",
+ "commit": "d4b187cb5b3cc5b546bfa6b94b6792e6363242d1",
+ "sha256": "1grrrdk5pl9l1jvnwzl8g0102gipvxb5qn6k2nmv28jpl57v8dkb",
+ "fetcher": "github",
+ "repo": "jorgenschaefer/emacs-buttercup",
+ "unstable": {
+ "version": [
+ 20200817,
+ 2001
+ ],
+ "commit": "0e5eae0766a33b5c8997e1477e3914d5c8ba3d29",
+ "sha256": "0qn3i26g119h14jv9q0vha55s4g154djp3f68d2g7i0f46wm54hz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 23
+ ],
+ "commit": "a9647cbb566eb488b7bbde44c4cdaf51b7915851",
+ "sha256": "0ym1hajy47n5f1rxic8qfxrwd8zc1r7csz1v4hrwhwm4qld4krfr"
+ }
+ },
+ {
+ "ename": "buttercup-junit",
+ "commit": "f1030960afe994da338d78607233319b3f7f0c8b",
+ "sha256": "1v848vbwxqrw9sdsvjaggkspavmbwkmqshf321m4n8srvi51383w",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/olanilsson/buttercup-junit",
+ "unstable": {
+ "version": [
+ 20190802,
+ 2258
+ ],
+ "deps": [
+ "buttercup"
+ ],
+ "commit": "3ae4f84813c9e04e03a6e703990ca998b62b6deb",
+ "sha256": "0ndxbh2jff6qryczawzbg580744h18z7grg82dpg7fv0rbxnyi3j"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "buttercup"
+ ],
+ "commit": "6bc28b6b0f36fb71b0915c9e45963c840c64a8df",
+ "sha256": "1rayxq1va7jpikfr37p8nq2pv339mhq7zqy082kzwvj5q6qfw88s"
+ }
+ },
+ {
+ "ename": "button-lock",
+ "commit": "83459421dd2eb3d60ec668c3d5bb38d99ee64aff",
+ "sha256": "1arrdmb3nm570hgs18y9sz3z9v0wlkr3vwa2zgfnc15lmf0y34mp",
+ "fetcher": "github",
+ "repo": "rolandwalker/button-lock",
+ "unstable": {
+ "version": [
+ 20200309,
+ 1323
+ ],
+ "commit": "9afe0f4d05910b0cccc94cb6d4d880119f3b0528",
+ "sha256": "1d893isxvchrqxw6iaknbv8l31rgalfc4hmppf0l87gxp5y9hxa2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "commit": "cd0bf4a3c2f224d851e6ed8a54a6e80c129b225f",
+ "sha256": "1kqcc1d56jz107bswlzvdng6ny6qwp93yck2i2j921msn62qvbb2"
+ }
+ },
+ {
+ "ename": "buttons",
+ "commit": "3b8f9437268a51654b2bebdd024c35060b078962",
+ "sha256": "0pp7x4z6vzdfav5ljxsk1q6xby7gcxnkyl5fcbsd4r98ja4zmyq4",
+ "fetcher": "github",
+ "repo": "erjoalgo/emacs-buttons",
+ "unstable": {
+ "version": [
+ 20190319,
+ 41
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a14d0c21cc30d33b57481f535f2a838d65b2032f",
+ "sha256": "17b6km8qvkh43g276fmv552lffd2jq5x863fc7zm7xf2khwmpwbh"
+ }
+ },
+ {
+ "ename": "c-c-combo",
+ "commit": "da105eab0e7a5a3a1fc562973d99cbbbe9019b5f",
+ "sha256": "09rvh6n2hqls7qki5dc34s2hmcmlvdsbgzcxgglhcmrhwx5w4vxn",
+ "fetcher": "github",
+ "repo": "CestDiego/c-c-combo.el",
+ "unstable": {
+ "version": [
+ 20151224,
+ 255
+ ],
+ "commit": "a261a833499a7fdc29610863b3aafc74818770ba",
+ "sha256": "040mcq2cwzbrf96f9mghb4314cd8xwp7ki2ix9fxpmbwiy323ld5"
+ }
+ },
+ {
+ "ename": "c-eldoc",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "13grkww14w39y2x6mrbfa9nzljsnl5l7il8dnj6sjdyv0hz9x8vm",
+ "fetcher": "github",
+ "repo": "nflath/c-eldoc",
+ "unstable": {
+ "version": [
+ 20181109,
+ 439
+ ],
+ "commit": "e35c0e40f71c25804919f6c01fd27e95c2e2adb7",
+ "sha256": "0rwxlq8w6507lkvvj0krwvg4ai1wyj466nhns1f857kry7cssnzy"
+ }
+ },
+ {
+ "ename": "c0-mode",
+ "commit": "268115452d9c22a6f2627cec1eb122b47e85b88c",
+ "sha256": "0s3h4b3lpz4jsk222yyfdxh780dvykhaqgyv6r3ambz95vrmmpl4",
+ "fetcher": "github",
+ "repo": "catern/c0-mode",
+ "unstable": {
+ "version": [
+ 20151110,
+ 1852
+ ],
+ "commit": "c214093c36864d6208fcb9e6a72413ed17ed5d60",
+ "sha256": "10k90r4ckkkdjn9pqcbfyp6ynvrd5k0ngqcn5d0v1qvkn6jifxjx"
+ }
+ },
+ {
+ "ename": "cabledolphin",
+ "commit": "0c8bd2715aec4793abc37d6899adabd568955a08",
+ "sha256": "04slrx0vkcm66q59158limn0cpxn18ghlqyx7z8nrn7frrc03z03",
+ "fetcher": "github",
+ "repo": "legoscia/cabledolphin",
+ "unstable": {
+ "version": [
+ 20160204,
+ 938
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "fffc192cafa61558e924323d6da8166fe5f2a6f9",
+ "sha256": "1h395hvia7r76zlgr10qdr9q2159qyrs89znhkp2czikwm8kjiqk"
+ }
+ },
+ {
+ "ename": "cache",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "15pj7f4n0lk8qqsfafdj19iy0hz4xpfcf2fnby7ziq2dldyqrax9",
+ "fetcher": "github",
+ "repo": "nflath/cache",
+ "unstable": {
+ "version": [
+ 20111019,
+ 2300
+ ],
+ "commit": "7499586b6c8224df9f5c5bc4dec96b008258d580",
+ "sha256": "1hp6dk84vvgkmj5lzghvqlpq3axwzgx9c7gly2yx6497fgf9jlby"
+ }
+ },
+ {
+ "ename": "cacoo",
+ "commit": "2bd55f5c29876c2483001cd9deaca68cab5054b9",
+ "sha256": "0kri4vi6dpsf0zk24psm16f3aa27cq5b54ga7zygmr02csq24a6z",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-cacoo",
+ "unstable": {
+ "version": [
+ 20120319,
+ 2359
+ ],
+ "deps": [
+ "concurrent"
+ ],
+ "commit": "c9fa04fbe97639b24698709530361c2bb5f3273c",
+ "sha256": "07kzhyqr8ycjvkknijqhsfr26zd5jc8wxm9sl8bp6pzn4jbs1dmx"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 2
+ ],
+ "deps": [
+ "concurrent"
+ ],
+ "commit": "c2e6a8830144810cd4e51de3646cb8200bcebbc6",
+ "sha256": "1k2hmc87ifww95k3m8ksiswkk2z0y8grssba7381g8dnlp6jgprx"
+ }
+ },
+ {
+ "ename": "caddyfile-mode",
+ "commit": "ec771222056dcb6c67e133cd6aa6b4e4d03ac264",
+ "sha256": "12d57xcpp78lmcr95nfp0r9g7lkw8kfxf9c3rc7g53kh5xaaj4i2",
+ "fetcher": "github",
+ "repo": "Schnouki/caddyfile-mode",
+ "unstable": {
+ "version": [
+ 20181204,
+ 858
+ ],
+ "deps": [
+ "loop"
+ ],
+ "commit": "976ad0664c3f44bfa11cb9b8787ddfb094d0a666",
+ "sha256": "1k9nkqgnighwj0jj4yl8v2vncy5cnlayx3vw4884hf9amkbv6bg1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "b0371063adc18d3cbd6dd673ea4fe39d27825d1b",
+ "sha256": "1w0jfh8z9q2b0av66gckmb9d9dvx0wqmjf54avgynlmh3a7gv7lz"
+ }
+ },
+ {
+ "ename": "cake-inflector",
+ "commit": "77c46238b632047160d6dfac9b257f57b0c4283b",
+ "sha256": "04mrqcm1igb638skaq2b3nr5yzxnck2vwhln61rnh7lkfxq7wbwf",
+ "fetcher": "github",
+ "repo": "k1LoW/emacs-cake-inflector",
+ "unstable": {
+ "version": [
+ 20140415,
+ 858
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "a1d338ec4840b1b1bc14f7f9298c07e2c1d2d8fc",
+ "sha256": "0m8ss9aky24f5i6b8fyy8mhv9ygj158crjyddnj9xx73vsjf96bs"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "40bf11890842ba305954528694e1c39a8b73737b",
+ "sha256": "1w7yq35gzzwyf480d8gc5r6jbnawg09l6663q068ir6zr9pp4far"
+ }
+ },
+ {
+ "ename": "cakecrumbs",
+ "commit": "c970907affeb4a21fa1b7c350edf171dbdcd8de5",
+ "sha256": "1s5j8w0y47qpdq4f34l7hmdhxp560wg1lgzqz6p3p3lg1l89sv47",
+ "fetcher": "github",
+ "repo": "kuanyui/cakecrumbs.el",
+ "unstable": {
+ "version": [
+ 20180929,
+ 139
+ ],
+ "commit": "cf8c1df885eee004602f73c4f841301e200e5850",
+ "sha256": "0s5ga39dpn9rjxjk5inkylqh56w3qgaq2wmwwgv5gsydqdyil31f"
+ }
+ },
+ {
+ "ename": "cal-china-x",
+ "commit": "c1098d34012fa72f8c8c30d5f0f495fdbe1d3d65",
+ "sha256": "06mh2p14m2axci8vy1hr7jpy53jj215z0djyn8h7zpr0k62ajhka",
+ "fetcher": "github",
+ "repo": "xwl/cal-china-x",
+ "unstable": {
+ "version": [
+ 20190518,
+ 1057
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "177f60e011606126f23c8ffed69458439f1c12e0",
+ "sha256": "1a0qdiihyc5qwz5j68hnpfp0fx3qbzgvzflrbfv072r7ldxzfi57"
+ }
+ },
+ {
+ "ename": "calc-at-point",
+ "commit": "9ab725281ae66c1b97875518614a0f6312ace3a8",
+ "sha256": "1yzb2gmmdrcckgq1kd1gcbnbqf65aia7nx4j2lgrh2n9dlp40d03",
+ "fetcher": "github",
+ "repo": "walseb/calc-at-point",
+ "unstable": {
+ "version": [
+ 20200406,
+ 1618
+ ],
+ "deps": [
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "11e40c8db9493ada71964b73069c6db529016492",
+ "sha256": "06dmm6b2xflkwgk5mysi3ycbi6yz5n0sci191a15nnzxg7vh1fbf"
+ }
+ },
+ {
+ "ename": "calendar-norway",
+ "commit": "c5d01230027d5cec9da2545a9ce9270a611f6567",
+ "sha256": "1i23ks0bnq62bvn3szvqf0ikcam4s92yvr998mkjxhdhc94zd19c",
+ "fetcher": "github",
+ "repo": "unhammer/calendar-norway.el",
+ "unstable": {
+ "version": [
+ 20180906,
+ 1502
+ ],
+ "commit": "8d1fda8268caa74ba5e712c7675ed3c34e46e2d4",
+ "sha256": "011c8pz1g805a7c3djai39yasd2idfp4c2dcrvf7kbls27ayrl6d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 4
+ ],
+ "commit": "8d1fda8268caa74ba5e712c7675ed3c34e46e2d4",
+ "sha256": "011c8pz1g805a7c3djai39yasd2idfp4c2dcrvf7kbls27ayrl6d"
+ }
+ },
+ {
+ "ename": "calfw",
+ "commit": "cc64274abdc7c8fb904b43d2d036aac98e738131",
+ "sha256": "0am1nafc16zax8082gjlz0pi85lryjhrx0v80nzgr23iybj5mfx4",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-calfw",
+ "unstable": {
+ "version": [
+ 20180118,
+ 45
+ ],
+ "commit": "03abce97620a4a7f7ec5f911e669da9031ab9088",
+ "sha256": "0wiggihw9ackjdssqgp2cqccd3sil13n3pfn33d3r320fmxfjbch"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "c538d3746449b4f0e16b16aad3073d4f7379d805",
+ "sha256": "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"
+ }
+ },
+ {
+ "ename": "calfw-cal",
+ "commit": "cc64274abdc7c8fb904b43d2d036aac98e738131",
+ "sha256": "1wylkd7jl1ifq56jj04l5b9wfrjkhwncxzrjgnbgg1cl2klf6v4m",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-calfw",
+ "unstable": {
+ "version": [
+ 20170320,
+ 1206
+ ],
+ "commit": "03abce97620a4a7f7ec5f911e669da9031ab9088",
+ "sha256": "0wiggihw9ackjdssqgp2cqccd3sil13n3pfn33d3r320fmxfjbch"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "c538d3746449b4f0e16b16aad3073d4f7379d805",
+ "sha256": "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"
+ }
+ },
+ {
+ "ename": "calfw-gcal",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0pzjs8kvf9vxdzziq7zd59vniq21k4a6yygpv4fz2by3s3bvnrid",
+ "fetcher": "github",
+ "repo": "myuhe/calfw-gcal.el",
+ "unstable": {
+ "version": [
+ 20120111,
+ 1000
+ ],
+ "commit": "14aab20687d6cc9e6c5ddb9e11984c4e14c3d870",
+ "sha256": "14n5rci4bkbl7037xvkd69gfxnjlgvd2j1xzciqcgz92f06ir3xi"
+ }
+ },
+ {
+ "ename": "calfw-howm",
+ "commit": "cc64274abdc7c8fb904b43d2d036aac98e738131",
+ "sha256": "08cv16cq211sy2v1i0gk7d81f0gyywv0i9szmamnrbjif3rrv2m0",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-calfw",
+ "unstable": {
+ "version": [
+ 20170704,
+ 4
+ ],
+ "commit": "03abce97620a4a7f7ec5f911e669da9031ab9088",
+ "sha256": "0wiggihw9ackjdssqgp2cqccd3sil13n3pfn33d3r320fmxfjbch"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "c538d3746449b4f0e16b16aad3073d4f7379d805",
+ "sha256": "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"
+ }
+ },
+ {
+ "ename": "calfw-ical",
+ "commit": "cc64274abdc7c8fb904b43d2d036aac98e738131",
+ "sha256": "1bh9ahwp9b5knjxph79kl19fgs48x3w7dga299l0xvbxq2jhs95q",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-calfw",
+ "unstable": {
+ "version": [
+ 20150703,
+ 819
+ ],
+ "commit": "03abce97620a4a7f7ec5f911e669da9031ab9088",
+ "sha256": "0wiggihw9ackjdssqgp2cqccd3sil13n3pfn33d3r320fmxfjbch"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "c538d3746449b4f0e16b16aad3073d4f7379d805",
+ "sha256": "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"
+ }
+ },
+ {
+ "ename": "calfw-org",
+ "commit": "cc64274abdc7c8fb904b43d2d036aac98e738131",
+ "sha256": "1cfpjh08djz3k067w3580yb15p1csks3gzch9c4cbrbcjvg8inh5",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-calfw",
+ "unstable": {
+ "version": [
+ 20160303,
+ 258
+ ],
+ "commit": "03abce97620a4a7f7ec5f911e669da9031ab9088",
+ "sha256": "0wiggihw9ackjdssqgp2cqccd3sil13n3pfn33d3r320fmxfjbch"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "c538d3746449b4f0e16b16aad3073d4f7379d805",
+ "sha256": "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"
+ }
+ },
+ {
+ "ename": "calibredb",
+ "commit": "774ebbd69372ffba6fd16107762957b8ea3713a5",
+ "sha256": "1bdkxzs18c8krw28vfnzirx0pq13yf8pgkmjy8ks5j8zbih4dhqm",
+ "fetcher": "github",
+ "repo": "chenyanming/calibredb.el",
+ "unstable": {
+ "version": [
+ 20200809,
+ 1128
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s",
+ "transient"
+ ],
+ "commit": "a53d3c3d87fb7cd756f73fcd813aca0480ada5f7",
+ "sha256": "11m9d015fnjf89qg6wpy0vs1vhvak5q753m4dzqrdw3jgm9zsnmv"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 5,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s",
+ "transient"
+ ],
+ "commit": "a53d3c3d87fb7cd756f73fcd813aca0480ada5f7",
+ "sha256": "11m9d015fnjf89qg6wpy0vs1vhvak5q753m4dzqrdw3jgm9zsnmv"
+ }
+ },
+ {
+ "ename": "call-graph",
+ "commit": "a6acf099e2510c82b4b03e2f35051afc3d28af45",
+ "sha256": "0cklr79gqqrb94jq8aq65wqriamay78vv9sd3jrvp86ixl3ig5xc",
+ "fetcher": "github",
+ "repo": "beacoder/call-graph",
+ "unstable": {
+ "version": [
+ 20200402,
+ 910
+ ],
+ "deps": [
+ "anaconda-mode",
+ "cl-lib",
+ "hierarchy",
+ "ivy",
+ "tree-mode"
+ ],
+ "commit": "2f47dcb65ed8dc5393df846b4175a4872e254c05",
+ "sha256": "0xn8xk2x3ih22vlfjvnl6853ddpk57q70z9b0vwhjvwmi4idz7xp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "hierarchy",
+ "ivy",
+ "tree-mode"
+ ],
+ "commit": "0bbe292b1b9c7ba1d8a65ed5e475f6a53f5f9f27",
+ "sha256": "0kckjs7yg8d04nir5z3f00k05272kgma98794g0ycgfn1vrck0h0"
+ }
+ },
+ {
+ "ename": "calmer-forest-theme",
+ "commit": "edb51491e575ef64a705cd0b972de07993f185cf",
+ "sha256": "0riz5n8fzvxdnzgg650xqc2zwc4xvhwjlrrzls5h0pl5adaxz96p",
+ "fetcher": "github",
+ "repo": "caldwell/calmer-forest-theme",
+ "unstable": {
+ "version": [
+ 20130926,
+ 510
+ ],
+ "commit": "87ba7bae389084d13fe3bc34e0c923017eda6ba0",
+ "sha256": "0n6y4z3qg04qnlsrjysf8ldxl2f2bk7n8crijydwabyy672qxd9h"
+ }
+ },
+ {
+ "ename": "camcorder",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "1kbnpz3kn8ycpy8nlp8bsnnd1k1h7m02h7w5f7raw97sk4cnpvbi",
+ "fetcher": "github",
+ "repo": "Malabarba/camcorder.el",
+ "unstable": {
+ "version": [
+ 20190317,
+ 2138
+ ],
+ "deps": [
+ "cl-lib",
+ "names"
+ ],
+ "commit": "b11ca61491a27681bb3131b72b51c105fd996bed",
+ "sha256": "11p42cmk9sj2ilpx6nnlbzff85qi0m27wk49da2ipal28wcx2452"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "names"
+ ],
+ "commit": "b11ca61491a27681bb3131b72b51c105fd996bed",
+ "sha256": "11p42cmk9sj2ilpx6nnlbzff85qi0m27wk49da2ipal28wcx2452"
+ }
+ },
+ {
+ "ename": "caml",
+ "commit": "42667ee0d64bce19ad9081a4fae163a9655641d4",
+ "sha256": "0hpxvvgq9nxcbxq9dm1sia3ph2h7p07pp48jz77pr786lrw67la0",
+ "fetcher": "github",
+ "repo": "ocaml/caml-mode",
+ "unstable": {
+ "version": [
+ 20190413,
+ 1205
+ ],
+ "commit": "38ebde12d3d529e6ef8078967997d32226e69e82",
+ "sha256": "13gz0s7bnjsnab7wn8mk0zva7756hf68izqp9agd8vqnm0c75nlp"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 7,
+ 1
+ ],
+ "commit": "9803cf37ac52bbfa5130fde0f228dc51c4590c2d",
+ "sha256": "13gz0s7bnjsnab7wn8mk0zva7756hf68izqp9agd8vqnm0c75nlp"
+ }
+ },
+ {
+ "ename": "cangjie",
+ "commit": "ed79fc972f7fe69d7bad5d1cdde3a276885a9fe8",
+ "sha256": "0gdp6dlkzkkd8r3cmwakwxlxsbysb351n1lr9sq4d60gbbskklln",
+ "fetcher": "github",
+ "repo": "kisaragi-hiu/cangjie.el",
+ "unstable": {
+ "version": [
+ 20200808,
+ 828
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "0cbf706890df06b9e0d541692c579ed213da8252",
+ "sha256": "0a3mwgbza09rfiswmk4kh699mqc5746k16jc6rgy9q24jbjgradf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 4
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "b34a28dd06bd95a16b655f1917227925975314bc",
+ "sha256": "0xz62fivll6yv1x94f7f5m07zg7383llyz6wa1n5q1ysix2p20j1"
+ }
+ },
+ {
+ "ename": "capture",
+ "commit": "bdfe43be6c5f77845e82745534a1b1a9eb190466",
+ "sha256": "1hxrvyq8my5886q7wj5w3mhyja7d6cf19gyclap492ci7kmrkdk2",
+ "fetcher": "github",
+ "repo": "pashinin/capture.el",
+ "unstable": {
+ "version": [
+ 20130828,
+ 1644
+ ],
+ "commit": "1bb26060311da76767f70096218313fc93b0c806",
+ "sha256": "08cp45snhyir5w8gyp6xws1q7c54pz06q099l0m3zmwn9277g68z"
+ }
+ },
+ {
+ "ename": "carbon-now-sh",
+ "commit": "b79bb8af3c149b2d131813c5308141e0e06adccf",
+ "sha256": "1casq1b71rlwanayixs6rrn96jn1w7bzkq77lg0ini5hrfd3w18p",
+ "fetcher": "github",
+ "repo": "veelenga/carbon-now-sh.el",
+ "unstable": {
+ "version": [
+ 20180331,
+ 1735
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "71dee6bc4f2a2cb02b9b7b5e643c4c92b880e6a4",
+ "sha256": "1aij3590c7fqga7sla5f4hibyq7m77kxfyiiviv6xrdzwrd98w37"
+ }
+ },
+ {
+ "ename": "cargo",
+ "commit": "e997b356b009b3d2ab467fe49b79d728a8cfe24b",
+ "sha256": "06zq657cxfk5l4867qqsvhskcqc9wswyl030wj27a43idj8n41jx",
+ "fetcher": "github",
+ "repo": "kwrooijen/cargo.el",
+ "unstable": {
+ "version": [
+ 20191224,
+ 47
+ ],
+ "deps": [
+ "markdown-mode",
+ "rust-mode"
+ ],
+ "commit": "dc9ff35c2861d524ac4d65020c5320eec71acacf",
+ "sha256": "0nng284i5jygsnbda6ycrm2wv8rw47z8ilcs6r1z0w1gv3p012fd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "rust-mode"
+ ],
+ "commit": "b0487f95a7de7a1d6f03cdd05220f633977d65a2",
+ "sha256": "0r9v7q7hkdw2q3iifyrb6n9jrssz2rcv2xcc7n1nmg1v40av3ijd"
+ }
+ },
+ {
+ "ename": "caroline-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "178nxcz73lmvnjcr6x6as25d8m5knc21jpr66b4rg0rmlmhchkal",
+ "fetcher": "github",
+ "repo": "xjackk/caroline-theme",
+ "unstable": {
+ "version": [
+ 20160318,
+ 520
+ ],
+ "commit": "222fd483db304509f9e422dc82883d808e023ceb",
+ "sha256": "055w1spba0q9rqqg4rjds0iakr9d8xg66959xahxq8268mq5446n"
+ }
+ },
+ {
+ "ename": "caseformat",
+ "commit": "ba158fbeebcda6b6122b18c97ab8042b1c0a0bc0",
+ "sha256": "1qwyr74jbx4jpfcw8sccg47q1vdg094rr06m111gsz2yaj9m0gfk",
+ "fetcher": "github",
+ "repo": "HKey/caseformat",
+ "unstable": {
+ "version": [
+ 20160115,
+ 1615
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "75ddb9c64eeb78b46d9e1db99bef8d0fb1e46b99",
+ "sha256": "06briiapv2pfll8zc0wl55sad8cjgxkb8j8d4bvc8w5li3d52xa9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "72707c9f0f0819b4e2aa45876432a293aa07f814",
+ "sha256": "0mg49rpz362ipn5qzqhyfs3d6fpb51rfa73kna3gxdw0wxq2sa7g"
+ }
+ },
+ {
+ "ename": "cask",
+ "commit": "69e996727e40fa28cb5356f664ffdc3d5aca21b2",
+ "sha256": "0c1fxikcba3xcd3xpspnjhaahyl5n3r91c2b40xvadyjarkhxhgc",
+ "fetcher": "github",
+ "repo": "cask/cask",
+ "unstable": {
+ "version": [
+ 20200814,
+ 913
+ ],
+ "deps": [
+ "ansi",
+ "cl-lib",
+ "dash",
+ "epl",
+ "f",
+ "package-build",
+ "s",
+ "shut-up"
+ ],
+ "commit": "c69822a1a3168d43caebb7afaa13249429419ae0",
+ "sha256": "0w7q16y2r54rann07lk4gwi7jkqnb5xc8cbjnx2avgpsk7kawi8w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "epl",
+ "f",
+ "package-build",
+ "s",
+ "shut-up"
+ ],
+ "commit": "ba5f6eb78178deb954ab9ac02e0e370315097ebe",
+ "sha256": "1p37lq8xpyq0rc7phxgsw3b73h8vf9rkpa5959rb5k46w6ps9686"
+ }
+ },
+ {
+ "ename": "cask-mode",
+ "commit": "2d8bc1afaf69b4f29ba1bb0243c25574bc1197cc",
+ "sha256": "0fs9zyihipr3klnh3w22h43qz0wnxplm62x4kx7pm1chq9bc9kz6",
+ "fetcher": "github",
+ "repo": "Wilfred/cask-mode",
+ "unstable": {
+ "version": [
+ 20160410,
+ 1449
+ ],
+ "commit": "7c6719d3bb4fe552958634bd5a11abc56681f3a7",
+ "sha256": "0gywc2mzdzq3ny0jjffa3151vi7zb9i8ddy5d63x4yhicf5sxlh1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "5203b1beac4dd2ee07a6e993bc86719f5f35dbbf",
+ "sha256": "09y4cr32i2cw06lnq698lajxmqyzq2ah426f4dm176xfbrim89d5"
+ }
+ },
+ {
+ "ename": "cask-package-toolset",
+ "commit": "ed71e45389626e700b93b29d5e2659b6706274d8",
+ "sha256": "13ix093c0a58rjqj7zfp3914xj3hvj276gb2d8zhvrx9vvs1345g",
+ "fetcher": "github",
+ "repo": "AdrieanKhisbe/cask-package-toolset.el",
+ "unstable": {
+ "version": [
+ 20170921,
+ 2256
+ ],
+ "deps": [
+ "ansi",
+ "cl-lib",
+ "commander",
+ "dash",
+ "f",
+ "s",
+ "shut-up"
+ ],
+ "commit": "2c74cd827e88c7f8360581a841e45f0b794510e7",
+ "sha256": "1hk5q6p1j7cqg5srr3v21xfyy7aas4hfj1a66h21c2xvfjra3hxw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 2
+ ],
+ "deps": [
+ "ansi",
+ "cl-lib",
+ "commander",
+ "dash",
+ "f",
+ "s",
+ "shut-up"
+ ],
+ "commit": "2c74cd827e88c7f8360581a841e45f0b794510e7",
+ "sha256": "1hk5q6p1j7cqg5srr3v21xfyy7aas4hfj1a66h21c2xvfjra3hxw"
+ }
+ },
+ {
+ "ename": "caskxy",
+ "commit": "1d61aea505e4913879f68081497e85542e9fd786",
+ "sha256": "0x4s3c8m75zxsvqpgfc5xwll0489zzdnngmnq048z9gkgcd7pd2s",
+ "fetcher": "github",
+ "repo": "aki2o/caskxy",
+ "unstable": {
+ "version": [
+ 20140513,
+ 1539
+ ],
+ "deps": [
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "dc18dcab7ed526070ab76de071c9c5272e6ac40e",
+ "sha256": "15sq5vrkhb7c5j6ny6wy4bkyl5pggch4l7zw46an29rzni3pffr3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "279f3ab79bd77fe69cb3148a79896b9bf118a9b3",
+ "sha256": "1j1lw5zifp7q1ykm6si0nzxfp7n3z2lzla2njkkxmc2s6m7w4x1a"
+ }
+ },
+ {
+ "ename": "catmacs",
+ "commit": "e62e45ea234a574ed602f27c3c6bc240bcd4fa43",
+ "sha256": "0ym1szmq9ib75yiyy5jw647fcs7gg0d5dkskqc293pg81qf3im50",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/pymaximus/catmacs",
+ "unstable": {
+ "version": [
+ 20170826,
+ 1157
+ ],
+ "commit": "65d3e0563abe6ff9577202cf2278074d4130fbdd",
+ "sha256": "0954qck9j417c17niy28ccrhmsbjyh95z4dbqc5j4mib06j37587"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "c6e8277bd2aab3f5fbf10d419111110f3b33564f",
+ "sha256": "0kdlmmqgpgmhbbvafywllqdwkkd5a41rf8zhfmxhs3ydza86hmlg"
+ }
+ },
+ {
+ "ename": "cbm",
+ "commit": "f28dbc97dc23cdb0b4c74f8805775c787635871e",
+ "sha256": "02ch0gdw610c8dfxxjxs7ijsc9lzbhklj7hqgwfwksnyc36zcjmn",
+ "fetcher": "github",
+ "repo": "akermu/cbm.el",
+ "unstable": {
+ "version": [
+ 20171116,
+ 1240
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5b41c936ba9f6d170309a85ffebc9939c1050b31",
+ "sha256": "091ln3d0jhdgahbwfdm1042b19886n3kwipw5gk8d0jnq5vwrkws"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5b41c936ba9f6d170309a85ffebc9939c1050b31",
+ "sha256": "091ln3d0jhdgahbwfdm1042b19886n3kwipw5gk8d0jnq5vwrkws"
+ }
+ },
+ {
+ "ename": "cc-cedict",
+ "commit": "368aaef30c5c4f38d9d2dd09f966e3dcc2463e11",
+ "sha256": "1h8i9nfd66ayka5vkm1lp5crr4nm1bzi4sak0xid85fzgmx364vr",
+ "fetcher": "github",
+ "repo": "xuchunyang/cc-cedict.el",
+ "unstable": {
+ "version": [
+ 20200705,
+ 443
+ ],
+ "commit": "6bb9481e48b889503626b4e3cb7cfec8d14cbf4b",
+ "sha256": "0nxq8p7hafpl1xq9daf5lcyk8ragdgnwsfxxd2d0rnzmyflgw5wi"
+ }
+ },
+ {
+ "ename": "ccc",
+ "commit": "7375cab750a67ede1a021b6a4371b678a7b991b0",
+ "sha256": "0fckhmz4svcg059v4acbn13yf3ijs09fxmq1axc1b9bm3xxig2cq",
+ "fetcher": "github",
+ "repo": "skk-dev/ddskk",
+ "unstable": {
+ "version": [
+ 20200314,
+ 1557
+ ],
+ "commit": "275a831be77573470309a78967734d2b6d10f218",
+ "sha256": "1a25aybavi6p7ijc4rbd8zyzgiim1m2xwm7yqfmsvrfzwgb29xal"
+ }
+ },
+ {
+ "ename": "ccls",
+ "commit": "be27a4022d58860917a659fce2b7d7791fbea4e2",
+ "sha256": "0kiv0n6pdpa75wjcimpwccwbjbhga4gjnphjrkpj4qz5qv42rbnm",
+ "fetcher": "github",
+ "repo": "MaskRay/emacs-ccls",
+ "unstable": {
+ "version": [
+ 20200819,
+ 106
+ ],
+ "deps": [
+ "dash",
+ "lsp-mode"
+ ],
+ "commit": "44f1fb38786cb6159e03e930876239a215d3feee",
+ "sha256": "0adw1gfp8a6cfyh7s1bchdpak7z32jlnliq35ynhakwwx3ixzmfv"
+ }
+ },
+ {
+ "ename": "cd-compile",
+ "commit": "bca4c9e8b071497ac50a85741bf46be6eaae2135",
+ "sha256": "1a24rv1jbb883vwhjkw6qxv3h3qy039iqkhkx3jkq1ydidr9f0hv",
+ "fetcher": "github",
+ "repo": "jamienicol/emacs-cd-compile",
+ "unstable": {
+ "version": [
+ 20141108,
+ 1957
+ ],
+ "commit": "10284ccae86afda4a37b09ba90acd1e2efedec9f",
+ "sha256": "1a93cim1w96aaj81clhjv25r7v9bwqm9a818mn8lk4aj1bmhgc4c"
+ }
+ },
+ {
+ "ename": "cdb",
+ "commit": "b48fe069ecd95ea0f9768ecad969e0838344e45d",
+ "sha256": "1gx34062h25gqsl3j1fjlklha19snvmfaw068q6bv6x9r92niqnf",
+ "fetcher": "github",
+ "repo": "skk-dev/ddskk",
+ "unstable": {
+ "version": [
+ 20200803,
+ 2138
+ ],
+ "commit": "275a831be77573470309a78967734d2b6d10f218",
+ "sha256": "1a25aybavi6p7ijc4rbd8zyzgiim1m2xwm7yqfmsvrfzwgb29xal"
+ }
+ },
+ {
+ "ename": "cdlatex",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "021gj0jw93r8gk0cacw1ldfibpwr6fpkcrnign7b4nqqnb3135k9",
+ "fetcher": "github",
+ "repo": "cdominik/cdlatex",
+ "unstable": {
+ "version": [
+ 20200506,
+ 739
+ ],
+ "commit": "480387b39f6ddd9cd2a9511ecee064ad8e1dd324",
+ "sha256": "1y5c2ycvmij7klvc9rhg265ha23xlh2hi4q5w50xljzh2mmlp3fb"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 7
+ ],
+ "commit": "b7183c2200392b6d85fca69390f4a65fac7a7b19",
+ "sha256": "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"
+ }
+ },
+ {
+ "ename": "cdnjs",
+ "commit": "66e4ce4e2c7e4aaac9dc0ce476c4759b000ff5d6",
+ "sha256": "1clm86n643z1prxrlxlg59jg43l9wwm34x5d88bj6yvix8g6wkb7",
+ "fetcher": "github",
+ "repo": "yasuyk/cdnjs.el",
+ "unstable": {
+ "version": [
+ 20161031,
+ 1522
+ ],
+ "deps": [
+ "dash",
+ "deferred",
+ "f",
+ "pkg-info"
+ ],
+ "commit": "ce19880d3ec3d81e6c665d0b1dfea99cc7a3f908",
+ "sha256": "02j45ngddx7n5gvy42r8y3s22bmxlnvg2pqjfh0li8m599fnd11h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "deferred",
+ "f",
+ "pkg-info"
+ ],
+ "commit": "ce19880d3ec3d81e6c665d0b1dfea99cc7a3f908",
+ "sha256": "02j45ngddx7n5gvy42r8y3s22bmxlnvg2pqjfh0li8m599fnd11h"
+ }
+ },
+ {
+ "ename": "cedit",
+ "commit": "0de4796054f0c616849904bacf05c74c7d2cdcf6",
+ "sha256": "169sy7a1bgczwfxkkzjiggb7vdjxhrx7i3a39g6zv9f1zs6byk6m",
+ "fetcher": "github",
+ "repo": "zk-phi/cedit",
+ "unstable": {
+ "version": [
+ 20200816,
+ 526
+ ],
+ "commit": "cb38316903e6cfa8b8c978defa7e1dafcd4e0c12",
+ "sha256": "1m5n0rwh97g3vl4x0akclgc8flh9vpdavp82q3i1yraigvzqzfc9"
+ }
+ },
+ {
+ "ename": "celery",
+ "commit": "4b896b2b89d990a7ce2f4bf4ce0aee0d126f3e55",
+ "sha256": "0m3hmvp6xz2m7z1kbb0ii0j3c95zi19652gfixq5a5x23kz8y59h",
+ "fetcher": "github",
+ "repo": "ardumont/emacs-celery",
+ "unstable": {
+ "version": [
+ 20170225,
+ 924
+ ],
+ "deps": [
+ "dash-functional",
+ "deferred",
+ "s"
+ ],
+ "commit": "51197d74f5eaa8ae09144af7663a2f4277f07d16",
+ "sha256": "1845qz0ih30z1jgm1zi11q4gvw9gy6w3vyj2mc1aiv5r170qj8as"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "dash-functional",
+ "deferred",
+ "s"
+ ],
+ "commit": "163ebede3f6a7f59202ff319675b0873dd1de365",
+ "sha256": "07h5g905i1jglsryl0dnqxz8yya5kkyjjggzbk4nl3rcj41lyas7"
+ }
+ },
+ {
+ "ename": "celestial-mode-line",
+ "commit": "cdb1d057f76166ba32d5028f18eec7d09857f990",
+ "sha256": "1s6vn71mxfvvafjs25j12z1gnmxnkvnw716zy5ifx1bs8s5960kq",
+ "fetcher": "github",
+ "repo": "ecraven/celestial-mode-line",
+ "unstable": {
+ "version": [
+ 20180518,
+ 822
+ ],
+ "commit": "3f5794aca99b977f1592cf1ab4516ae7922196a1",
+ "sha256": "01kdpfjnfnjll40n1zdp641gw8pk2vnv93a59lyx1mw1f30yvfr6"
+ }
+ },
+ {
+ "ename": "centaur-tabs",
+ "commit": "6685b1fa14f8b0b2ca1eacb426ca6856ada72190",
+ "sha256": "1dxngm93k6jaf6nvr8wwyh5y1yxlki8y0b8ls02x7lb7nfgdgj7n",
+ "fetcher": "github",
+ "repo": "ema2159/centaur-tabs",
+ "unstable": {
+ "version": [
+ 20200722,
+ 27
+ ],
+ "deps": [
+ "cl-lib",
+ "powerline"
+ ],
+ "commit": "7e0332b138f836b9d0b6d2134310f53369598cfd",
+ "sha256": "1fjs1l79wsyiyi4nrdkxg2hhfkngm7g0zpdq5ca3c1zi4fsv084i"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "powerline"
+ ],
+ "commit": "af50f87d40697a4e5d6097e2042111fc4a930b40",
+ "sha256": "1c3szcv87gjlm2bndasrx9q46x699cxapmhfs2zs08yk6gc1yfji"
+ }
+ },
+ {
+ "ename": "centered-cursor-mode",
+ "commit": "9a7a28caba49a20413dec3c3d0cc9c36b859834d",
+ "sha256": "1yy50p3xprkqiak3vfly5s5kpbbdmxmw6fhgz13fw97553hr3w5x",
+ "fetcher": "github",
+ "repo": "andre-r/centered-cursor-mode.el",
+ "unstable": {
+ "version": [
+ 20200507,
+ 1529
+ ],
+ "commit": "f376bdb882047347345d5f0e3ec3fcef63ee93ba",
+ "sha256": "1dnc0vjy6z6kdh8h8bmwi5vgyvy2z4405qpxb20d0dbly8qz9fns"
+ }
+ },
+ {
+ "ename": "centered-window",
+ "commit": "58bfd795d4d620f0c83384fb03008e129c71dc09",
+ "sha256": "0w6na4ld79bpmkiv6glbrphc32v6g2rcrpi28259i94jhgy1kxqk",
+ "fetcher": "github",
+ "repo": "anler/centered-window-mode",
+ "unstable": {
+ "version": [
+ 20200426,
+ 1053
+ ],
+ "commit": "f50859941ab5c7cbeaee410f2d38716252b552ac",
+ "sha256": "1l7m3gfn7j1mxs0rj1pm5avknplw2f34dd2k24n5rldfm41pf8i8"
+ }
+ },
+ {
+ "ename": "centimacro",
+ "commit": "de048d6e5d11a42d92de1938fd74fd37146a5a89",
+ "sha256": "1qbyfi6s4hdp5sv394w3sib8g2kx06i06q8gh6hdv5pis5kq9fx6",
+ "fetcher": "github",
+ "repo": "abo-abo/centimacro",
+ "unstable": {
+ "version": [
+ 20140306,
+ 1427
+ ],
+ "commit": "1b97a9b558ed9c49d5da1bfbf29b2506575c2742",
+ "sha256": "0zqrpaq9c3lm12jxnvysh8f3m3193k22zaj0ycscdqd1jpq4wcgh"
+ }
+ },
+ {
+ "ename": "cerbere",
+ "commit": "4145e270a2113f30f8bb4d0f6c335f1c76f77b1c",
+ "sha256": "1g3svmh5dlh5mvyag3hmiy90dfkk6f7ppd9qpwckxqyll9vl7r06",
+ "fetcher": "github",
+ "repo": "nlamirault/cerbere",
+ "unstable": {
+ "version": [
+ 20181113,
+ 1641
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "c667c165d9c1657f13d2d46f09ba21b61f9402cc",
+ "sha256": "0kqwcy96fy9mdhwsxh1zj2zn5qr7wvss22qq2ij2kpyh3jh8gxya"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "f",
+ "go-mode",
+ "pkg-info",
+ "s"
+ ],
+ "commit": "11de1e7ec5126083ae697f5a9993facdb9895f9d",
+ "sha256": "08hqgsjvs62l1cfzshbpj80xd8365qmx2b5r5jq20d5cj68s36wl"
+ }
+ },
+ {
+ "ename": "ceylon-mode",
+ "commit": "09cd1a2ccf33b209a470780a66d54e1b1d597a86",
+ "sha256": "0dgqmmb8qmvzn557h0fw1mx4y0p96870l8f8glizkk3fifg7wgq4",
+ "fetcher": "github",
+ "repo": "lucaswerkmeister/ceylon-mode",
+ "unstable": {
+ "version": [
+ 20180606,
+ 1324
+ ],
+ "commit": "948515672bc596dc118e8e3ede3ede5ec6a3c95a",
+ "sha256": "1a9f9h5kywfy8c2kmaxc9vf5zcykbhghpi3ra2l3z5hm0knq54ay"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "00f790b3ed5ec48e2461e20a4d466ba45c634e13",
+ "sha256": "08zk6aspy59gv3989zxz0ibxxwkbjasa83ilpzvpcwszrzq8x640"
+ }
+ },
+ {
+ "ename": "cfengine-code-style",
+ "commit": "c737839aeda583e61257ad40157e24df7f918b0f",
+ "sha256": "1ny8xvdnz740qmw9m81xnwd0gh0a516arpvl3nfimglaai5bfc9a",
+ "fetcher": "github",
+ "repo": "cfengine/core",
+ "unstable": {
+ "version": [
+ 20171115,
+ 2108
+ ],
+ "commit": "ec47889f4bef53c6c5a15add60d34c44c6ef1634",
+ "sha256": "16lndmhm0ad23g0pa4rl7dyrwmdv22xmscnpqnd49sg88356fyd2"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 16,
+ 0
+ ],
+ "commit": "ee2c1fd898a8219e81fea4f753648070e50ebc2e",
+ "sha256": "1jcvh67kxx5isqb78zjbca51px21cyjcwy1cbfkx47y1rmgsqzaw"
+ }
+ },
+ {
+ "ename": "cff",
+ "commit": "c4e056132be11481aa26e89d5af1cd03925f92d1",
+ "sha256": "04b2ck1jkhsrka6dbyn6rpsmmc2bn13kpyhzibd781hj73d93jgc",
+ "fetcher": "github",
+ "repo": "fourier/cff",
+ "unstable": {
+ "version": [
+ 20160118,
+ 2018
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b6ab2a28e64ef06f281ec74cfe3114e450644dfa",
+ "sha256": "019vqjmq6hb2f5lddqy0ya5q0fd47xix29cashlchz0r034rc32r"
+ }
+ },
+ {
+ "ename": "cfml-mode",
+ "commit": "0d28507e1109195004a371fa201d914b995c2b4e",
+ "sha256": "0q88lxhkzzab4jjihk0livdpn6lsmd8l2s4brcbl8402m285sylp",
+ "fetcher": "github",
+ "repo": "am2605/cfml-mode",
+ "unstable": {
+ "version": [
+ 20190617,
+ 1130
+ ],
+ "commit": "b06d7cee2af0ed5d55a94f0db80fc1f429a1829a",
+ "sha256": "0gzkjyai3njllbifm66mjwndy8xl06ph1957l75il9797jzxw4sc"
+ }
+ },
+ {
+ "ename": "cframe",
+ "commit": "6e39555b2538cc8a955766c5533871396e8fe712",
+ "sha256": "0pngdaflk1pk2xmwbij4b520b3mlacnjab4r3jby0phah44ziv4l",
+ "fetcher": "github",
+ "repo": "plandes/cframe",
+ "unstable": {
+ "version": [
+ 20190616,
+ 1946
+ ],
+ "deps": [
+ "buffer-manage",
+ "dash"
+ ],
+ "commit": "38026cbd004231c5525bea31723ced39311bb408",
+ "sha256": "1j5g1gdd1fhqfwxgjjvy7ywhb3cfvdl5rxlklacy5qfs4dva8z06"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "buffer-manage",
+ "dash"
+ ],
+ "commit": "bb99672502046e87c8f029ce98c637f762a4fc54",
+ "sha256": "088px3wlvr4km913y7hajrjqnxnv6n325rk6353bkbah2d75vxq4"
+ }
+ },
+ {
+ "ename": "cfrs",
+ "commit": "3ce16d27a9d73a5eaffebf7b0ff36d90c292248f",
+ "sha256": "03mi5iz0yny2ddvp41l3yc49583zw0wqsv33rkycjfj562903syx",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/cfrs",
+ "unstable": {
+ "version": [
+ 20191125,
+ 2007
+ ],
+ "deps": [
+ "dash",
+ "posframe",
+ "s"
+ ],
+ "commit": "fc5effdc25a926eada4936e5506dcccdf3902137",
+ "sha256": "1d18wvx2szmpvj5v26qqp2qkdmb764sfkp2f864by2hpad0rx034"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "posframe",
+ "s"
+ ],
+ "commit": "de83b587affe374d1cf6e6c2d747696e6c33a817",
+ "sha256": "130g09i38k77y2kyirg54dglksl6vrypdhh4h2j8hzy1mipc5a43"
+ }
+ },
+ {
+ "ename": "cg",
+ "commit": "be27e728327016b819535ef8cae10020e5a07c2e",
+ "sha256": "1xffjilr9f2s3w7j8f3clq7qvsnr0lr8gadlybpzzy8x5fbmk4n3",
+ "fetcher": "github",
+ "repo": "emacsmirror/cg",
+ "unstable": {
+ "version": [
+ 20200305,
+ 1845
+ ],
+ "commit": "b0e4cca3d8a28054b3af2f592b528903c7e7c111",
+ "sha256": "06ff0blmixn38z013pxj0a5qqn6aw09kv50zzyx5prdyzb57fx6h"
+ }
+ },
+ {
+ "ename": "challenger-deep-theme",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "02k0irp27wv1b5g2a6g86zp7cdprv17c0mlhkjsq2brls274ch3y",
+ "fetcher": "github",
+ "repo": "challenger-deep-theme/emacs",
+ "unstable": {
+ "version": [
+ 20191114,
+ 1339
+ ],
+ "commit": "b8427b5c87948a183e2dd2b8920a54fbaae2738b",
+ "sha256": "05vgax8arz6l0a4x0gsh7gs0qasjf09xj973nb7k3w8gyzmy1z95"
+ }
+ },
+ {
+ "ename": "change-inner",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "09y076vhhvp21jsvw9f5z4yk6cnmmjavg7600flxg5g27ydgix57",
+ "fetcher": "github",
+ "repo": "magnars/change-inner.el",
+ "unstable": {
+ "version": [
+ 20150707,
+ 1544
+ ],
+ "deps": [
+ "expand-region"
+ ],
+ "commit": "52c543a4b9808c0d15b565fcdf646c9779de33e8",
+ "sha256": "1m9sq93bwajbld3lnlzkjbsby5zlm9sxjzqynryyvsb9zr1d0a9z"
+ }
+ },
+ {
+ "ename": "chapel-mode",
+ "commit": "f84c693e9e90069b028be6149dd730f2ba5f4aff",
+ "sha256": "0yi1xjm1myxywjdb3n1505mz7vnylrvpd067aibjc4vgq0gqvq6f",
+ "fetcher": "github",
+ "repo": "damon-kwok/chapel-mode",
+ "unstable": {
+ "version": [
+ 20200814,
+ 759
+ ],
+ "deps": [
+ "hydra"
+ ],
+ "commit": "0855d6ea5e74da7b02e7307066da912c242084c8",
+ "sha256": "08bgjwkm6bhm5s73pdx62bjm58z18q21fhj02zdp0q8dds5babf9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "936a76a26bdc4f9570c4d54369f74bcd1cb0a698",
+ "sha256": "0n93qz5hzsnrs6c3y5yighfpdpkkmabxyi5i755hfcs5007v199v"
+ }
+ },
+ {
+ "ename": "char-menu",
+ "commit": "f6676747e853045b3b19e7fc9524c793c6a08303",
+ "sha256": "11jkwghrmmvpv7piznkpa0wilwjdsps9rix3950pfabhlllw268l",
+ "fetcher": "github",
+ "repo": "mrkkrp/char-menu",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1343
+ ],
+ "deps": [
+ "avy-menu"
+ ],
+ "commit": "a1ccf5ed786af6e2441037964668d817b9c7362f",
+ "sha256": "19yl7gmzalhrhr3spi8vs6wpxpv6m3m1d9564naznswxx19sjcjy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "avy-menu"
+ ],
+ "commit": "f4d8bf8fa6787e2aaca2ccda5223646541d7a4b2",
+ "sha256": "0zyi1ha17jk3zz7nirasrrx43j3jkrsfz7ypbc4mk44w7hsvx2hj"
+ }
+ },
+ {
+ "ename": "charmap",
+ "commit": "11c549fca81c4276054f614d86d17fa7af4ab32e",
+ "sha256": "1j7762d2i17ysn9ys8j7wfv989avmax8iylml2hc26mwbpyfpm84",
+ "fetcher": "github",
+ "repo": "lateau/charmap",
+ "unstable": {
+ "version": [
+ 20200616,
+ 1418
+ ],
+ "commit": "feac50b87d2a596c5e5b7b82b79ddd65b6dedd8c",
+ "sha256": "1pms4s1qnf60d3amhx1lfa255ln5wypq0q6w918whhzi4l7mdyz4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "165193d91ef96f563ae8366ed4c1a2df5a4eaed2",
+ "sha256": "0crnd64cnsnaj5mcy55q0sc1rnamxa1xbpwpmirhyhxz780klww6"
+ }
+ },
+ {
+ "ename": "chatwork",
+ "commit": "77ae72e62b8771e890525c063522e7091ca8f674",
+ "sha256": "0p71swcpfqbx2zmp5nh57f0m30cn68g3019005wa5x4fg7dx746p",
+ "fetcher": "github",
+ "repo": "ataka/chatwork",
+ "unstable": {
+ "version": [
+ 20170511,
+ 442
+ ],
+ "commit": "fea231d479f06bf40dbfcf45de143eecc9ed744c",
+ "sha256": "163xr18lm4awfgh4lcp7pr04jirpvlk8w1g4445zbxbpjfvv268z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "fea231d479f06bf40dbfcf45de143eecc9ed744c",
+ "sha256": "163xr18lm4awfgh4lcp7pr04jirpvlk8w1g4445zbxbpjfvv268z"
+ }
+ },
+ {
+ "ename": "cheat-sh",
+ "commit": "ebac62fb3828d81e30145b9948d60e781e20eda2",
+ "sha256": "0f6wqyh3c3ap0l6khikqlw8sqqi6fsl468gn157faza4x63j9z80",
+ "fetcher": "github",
+ "repo": "davep/cheat-sh.el",
+ "unstable": {
+ "version": [
+ 20200226,
+ 1021
+ ],
+ "commit": "52293c366044e44c8f6b648a312433345e4718ad",
+ "sha256": "098b70gvyr74ygzbpyfvpn2zzlij47bzvqqj89igh10s4lxj0lzb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8
+ ],
+ "commit": "bd970d7c576b8720d63a1e7fd88ea8a943f2160b",
+ "sha256": "027ws9hz84d4j00bfl5s0id8jcv2yqjkjmph1890w37miwj62cjf"
+ }
+ },
+ {
+ "ename": "cheatsheet",
+ "commit": "0d2cd657fcadb2dd3fd12864fe94a3465f8c9bd7",
+ "sha256": "11z3svlzvmhdy0pkxbx9qz9bnq056cgkbfyw9z34aq1yxazi2cpq",
+ "fetcher": "github",
+ "repo": "darksmile/cheatsheet",
+ "unstable": {
+ "version": [
+ 20170126,
+ 2150
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e4f8e0110167ea16a17a74517d1f10cb7ff805b8",
+ "sha256": "1vy2qmx9872hfrfcycpsmy0si481rwv4q4gwiy8f2w04zb92szbn"
+ }
+ },
+ {
+ "ename": "checkbox",
+ "commit": "81c4a9d10238836865716f5ea45f8e0e625a87c6",
+ "sha256": "17gw6w1m6bs3sfx8nqa8nzdq26m8w85a0fca5qw3bmd18bcmknqa",
+ "fetcher": "github",
+ "repo": "camdez/checkbox.el",
+ "unstable": {
+ "version": [
+ 20141117,
+ 58
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "335afa4404adf72973195a580458927004664d98",
+ "sha256": "0660ix17ksxy5a5v8yqy7adr9d4bs6p1mnkc6lpyw96k4pn62h45"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2afc2011fa35ccfa0ce9ef46cb1896911fa340d1",
+ "sha256": "09ypxhfad3v1pz0xhw4xgxvfj7ad2kb3ff9zy1mnw7fzsa7gw6nj"
+ }
+ },
+ {
+ "ename": "chee",
+ "commit": "25b445a1dea5e8f1042bed6b5372471c25129fd8",
+ "sha256": "1sw84qaca2cwgrw332wfqjp3kg3axgi9n6wx5a6h2n3liq5yr1wj",
+ "fetcher": "github",
+ "repo": "eikek/chee",
+ "unstable": {
+ "version": [
+ 20171123,
+ 2233
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "669ff9ee429f24c3c2d03b83d9cb9aec5f86bb8b",
+ "sha256": "1k64mjzqmjirsld40dvmpq4llpb7ggx80r1hvsjqazc4mr16pbri"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "beeaa5bb2ce92f1a745440c7ff7468e5f6524701",
+ "sha256": "1n0n6rnhms2mgh9yjc5whhf3n37y5lp9jk3ban6f6hn55f8p1gmk"
+ }
+ },
+ {
+ "ename": "cheerilee",
+ "commit": "da435df8d78b7c8d4834e00e35c69248a7043c0a",
+ "sha256": "15igjlnq35cg9nslyqa63i1inqipx3y8g7zg4r26m69k25simqrv",
+ "fetcher": "github",
+ "repo": "Vannil/cheerilee.el",
+ "unstable": {
+ "version": [
+ 20160313,
+ 1835
+ ],
+ "deps": [
+ "xelb"
+ ],
+ "commit": "41bd81b5b0bb657241ceda5be6af5e07254d7376",
+ "sha256": "1jdlp5cnsiza55vx4kxacqgk7yqg9fvd9swhwdxkczadb2d5l9p1"
+ }
+ },
+ {
+ "ename": "chef-mode",
+ "commit": "4044056af824d552a2852ef1f2e7166899f56d8c",
+ "sha256": "1pz82s82d4z3vkm8mpmwdxb9pd11kq09g23mg461lzqxjjw734rr",
+ "fetcher": "github",
+ "repo": "mpasternacki/chef-mode",
+ "unstable": {
+ "version": [
+ 20180628,
+ 1453
+ ],
+ "commit": "048d691cb63981ae235763d4a6ced4af5c729924",
+ "sha256": "1niin51xwkd8q3wbwcgb0gyk3sw1829qj2p2zv7fm8ljy1jicn2d"
+ }
+ },
+ {
+ "ename": "cherry-blossom-theme",
+ "commit": "401ae22f11f7ee808eb696a4c1f869cd824702c0",
+ "sha256": "1i3kafj3m7iij5mr0vhg45zdnkl9pg9ndrq0b0i3k3mw7d5siq7w",
+ "fetcher": "github",
+ "repo": "inlinestyle/emacs-cherry-blossom-theme",
+ "unstable": {
+ "version": [
+ 20150622,
+ 342
+ ],
+ "commit": "eea7653e00f35973857ee23b27bc2fae5e753e50",
+ "sha256": "0m97xr6lddy2jdmd4bl4kbp2568p4n110yfa9k7fqc20ihq8jkyd"
+ }
+ },
+ {
+ "ename": "chicken-scheme",
+ "commit": "03f4992471185bf41720ff6fc725fd5fa1291a41",
+ "sha256": "0ns49p7nsifpi7wrzr02ljrr0p6hxanrg54zaixakvjkxwcgfabr",
+ "fetcher": "github",
+ "repo": "dleslie/chicken-scheme.el",
+ "unstable": {
+ "version": [
+ 20141116,
+ 1939
+ ],
+ "commit": "19b0b08b5592063e852cae094b394c7d1f923639",
+ "sha256": "0j61lvr99viaharg4553whcppp7lxhimkk5lps0izz9mnd8y2wm5"
+ }
+ },
+ {
+ "ename": "chinese-conv",
+ "commit": "a798158829f8fd84dd3e5e3ec5987d98ff54e641",
+ "sha256": "1lqpq7pg0nqqqj29f8is6c724vl75wscmm1v08j480pfks3l8cnr",
+ "fetcher": "github",
+ "repo": "gucong/emacs-chinese-conv",
+ "unstable": {
+ "version": [
+ 20170807,
+ 2128
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b56815bbb163d642e97fa73093b5a7e87cc32574",
+ "sha256": "1bc3yn8y60y6a4vpqv39arn1pkcpl4s4n0sz9446f6m1lcal4c3r"
+ }
+ },
+ {
+ "ename": "chinese-number",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "0cjfxhd5izahkncs2nzpdv8brsxlwr2dx4hi07ymr62cr0hh0jgy",
+ "fetcher": "github",
+ "repo": "zhcosin/chinese-number",
+ "unstable": {
+ "version": [
+ 20161008,
+ 509
+ ],
+ "commit": "7311c2a0c5eea5f016a90d733dfe75144c302fb2",
+ "sha256": "01i7nycjnx4cpfgwakj14jv9dwybjl5jnslcxic9pr1n77mz53wk"
+ }
+ },
+ {
+ "ename": "chinese-wbim",
+ "commit": "3b6b1d100ddf29d6936569d61bf4be19a24d002d",
+ "sha256": "1pax3kpmvg170mpvfrjbpj9czq0xykmfbany2f7vbn96jb5xfmsb",
+ "fetcher": "github",
+ "repo": "zilongshanren/chinese-wbim",
+ "unstable": {
+ "version": [
+ 20190727,
+ 854
+ ],
+ "commit": "5d496364b0b6bbaaf0f9b37e5a6d260d4994f260",
+ "sha256": "1gmdklcldnzngki0rwa7f7lc71wb6qbyxcwlyqdw908ppkk40vbl"
+ }
+ },
+ {
+ "ename": "chinese-word-at-point",
+ "commit": "c9b7785eca577218feade982c979694389f37ec3",
+ "sha256": "0pjs4ckncv84qrdj0pyibrbiy86f1gmjla9n2cgh10xbc7j9y0c4",
+ "fetcher": "github",
+ "repo": "xuchunyang/chinese-word-at-point.el",
+ "unstable": {
+ "version": [
+ 20170811,
+ 941
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8223d7439e005555b86995a005b225ae042f0538",
+ "sha256": "13gva1ld4f9wwb2m4fpk6bd9342qvvmaf5i1r3x3h84czmk0nq1r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "36a03cce32fe059d2b581cb2e029715c0be81074",
+ "sha256": "1jsy43avingxxccs0zw2qm5ysx8g76xhhh1mnyypxskl9m60qb4j"
+ }
+ },
+ {
+ "ename": "chinese-yasdcv",
+ "commit": "b6d727c30d2ec0f885a927a16a442fe220a740d5",
+ "sha256": "1y2qywldf8b8b0km1lcf74p0w6rd8gr86qcj7ikwhhbvd19dfglm",
+ "fetcher": "github",
+ "repo": "tumashu/chinese-yasdcv",
+ "unstable": {
+ "version": [
+ 20171015,
+ 144
+ ],
+ "deps": [
+ "cl-lib",
+ "pyim"
+ ],
+ "commit": "5ab830daf1273d5a5cddcb94b56a9737f12d996f",
+ "sha256": "1mv1n6m73aamxj18i851ww53q7p4ydiqgaapxyvjbm6sx8ddz9ak"
+ }
+ },
+ {
+ "ename": "chocolate-theme",
+ "commit": "77ad3eb92e1f7016ed703705697b3cdfe811c387",
+ "sha256": "14slzm0c1lwclmk73ivhflf2kkwmxr3fxy3c2h9r6x7p1z4l32d7",
+ "fetcher": "github",
+ "repo": "SavchenkoValeriy/emacs-chocolate-theme",
+ "unstable": {
+ "version": [
+ 20191021,
+ 1346
+ ],
+ "deps": [
+ "autothemer"
+ ],
+ "commit": "1c6cd8d2fdc939bd4d26117d61e57c11cfe26512",
+ "sha256": "1knnj1kzjccr7hg5zbj4qfnkgjkf221bf7wv83km9hs7zs7brj5x"
+ }
+ },
+ {
+ "ename": "choice-program",
+ "commit": "6e39555b2538cc8a955766c5533871396e8fe712",
+ "sha256": "0a21yd3b8sb15vms9mclaa7xnnk0as08p6q38mwdwjp9sgcfyh1b",
+ "fetcher": "github",
+ "repo": "plandes/choice-program",
+ "unstable": {
+ "version": [
+ 20190817,
+ 2153
+ ],
+ "commit": "583242445e7890a12bb674b43244bf27c84d91f6",
+ "sha256": "08pbh4z3xbpk62a2m6shdpw2g44158di8pb9rjszfcpd5m6m2lf2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "215e8ab6acc47f240b12bd11ab387da7f5de885d",
+ "sha256": "14sp47l7j7sv3bsrnwzqz6mzn3wwv4s75r5my6vjh39pn0qshfh1"
+ }
+ },
+ {
+ "ename": "chronometer",
+ "commit": "b20fa4885e2cdc0429d988c76b365bf34d9343db",
+ "sha256": "1kgfq9srch0amdgb4cvizlrg5xqq0hkkdq85yjr2xwsljh09m83k",
+ "fetcher": "github",
+ "repo": "marcelotoledo/chronometer",
+ "unstable": {
+ "version": [
+ 20190304,
+ 1528
+ ],
+ "commit": "8457b296ef87be339cbe47730b922757d60bdcd5",
+ "sha256": "1apzb0jccw91gdynqa1722bbalzj4kp9fq25zzw1rxsrgh3mgmc5"
+ }
+ },
+ {
+ "ename": "chronometrist",
+ "commit": "9031f880b8646bf9a4be61f3057dc6a3c50393e8",
+ "sha256": "1xjxq257iwjd3zzwqicjqs3mdrkg9x299sm7wfx53dac14d7sa9g",
+ "fetcher": "github",
+ "repo": "contrapunctus-1/chronometrist",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1947
+ ],
+ "deps": [
+ "anaphora",
+ "dash",
+ "s",
+ "seq",
+ "ts"
+ ],
+ "commit": "c886dbb1ec8d1e22f7e9891ce9794d373b3b4e9b",
+ "sha256": "0f94w039ibqyysldgs0rdzjczhpgd1dq6ll85gdb4av7vw6mp3hy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "seq",
+ "ts"
+ ],
+ "commit": "0445b5187293a927f505633e851ca871bb89d8df",
+ "sha256": "0jz35972m372kx9x8mgf42zhzdw2w9wv2ri52chfb2fin4bh1biy"
+ }
+ },
+ {
+ "ename": "chronometrist-goal",
+ "commit": "61031b9ab0c0dedf88e6947ae2ad8d4ad0351210",
+ "sha256": "0hcww5qy167fiwwkj33pj8fdc89b61mb767gz85ya5r6d5nd4si3",
+ "fetcher": "github",
+ "repo": "contrapunctus-1/chronometrist-goal",
+ "unstable": {
+ "version": [
+ 20200706,
+ 1306
+ ],
+ "deps": [
+ "alert",
+ "chronometrist"
+ ],
+ "commit": "a9c4410f25f875c55b9237ef6544e82f4a805af6",
+ "sha256": "0wydrc4x19rp6nn1hyhaa5zxr4br51aamrv0ky5yppr17rnyygsy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "alert",
+ "chronometrist"
+ ],
+ "commit": "e651821d0f64830235232082a8295e86a173574b",
+ "sha256": "02q9bksjs24hxl1lz93f16rvqyn6ah10acjg2yw7kx0nj3qxff8v"
+ }
+ },
+ {
+ "ename": "chronos",
+ "commit": "53648c5699fc03e50774270f9560c727e2c22873",
+ "sha256": "1fwpll0mk6pc37qagbq3b3z32d2qwz993nxp9pjw4qbmlnq6sy9d",
+ "fetcher": "github",
+ "repo": "dxknight/chronos",
+ "unstable": {
+ "version": [
+ 20150602,
+ 1529
+ ],
+ "commit": "b360d9dae57aa553cf2a14ffa0756a51ad71de09",
+ "sha256": "1mqdz3rvx0jm80fgzw3s3lqn448kqrlrifdwcg36cqq4qmkpalq4"
+ }
+ },
+ {
+ "ename": "chruby",
+ "commit": "1989a3c6fa4cd7aaf6b0b202f197eb7db51936b9",
+ "sha256": "0pk6vdvmifiq52n452lbrkklxa69c40bfyzra9qhrghxr2q5v3mk",
+ "fetcher": "github",
+ "repo": "plexus/chruby.el",
+ "unstable": {
+ "version": [
+ 20180114,
+ 1652
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "42bc6d521f832eca8e2ba210f30d03ad5529788f",
+ "sha256": "06pvjw40qk017py9km26vjrh90acycnkr5r04nxf664qqkjlg2mc"
+ }
+ },
+ {
+ "ename": "chyla-theme",
+ "commit": "5c55eebf8df165360ce1e5d18e484c90f296fe52",
+ "sha256": "1mgr6483bjjwk8bi6kijyw61s52nq6g2svhy5n1jnffi3gaw7hl5",
+ "fetcher": "github",
+ "repo": "chyla/ChylaThemeForEmacs",
+ "unstable": {
+ "version": [
+ 20180302,
+ 1658
+ ],
+ "commit": "ae5e7ecace2ab474151eb0ac5ef07fba2dc32f8a",
+ "sha256": "1gqzwwr3fnhd9iqn7zmqpxgxvmrhq7g849ndjwizksk0bfj3b596"
+ }
+ },
+ {
+ "ename": "cider",
+ "commit": "55a937aed818dbe41530037da315f705205f189b",
+ "sha256": "1a6hb728a3ir18c2dn9zfd3jn79fi5xjn5gqr7ljy6qb063xd4qx",
+ "fetcher": "github",
+ "repo": "clojure-emacs/cider",
+ "unstable": {
+ "version": [
+ 20200814,
+ 1540
+ ],
+ "deps": [
+ "clojure-mode",
+ "parseedn",
+ "pkg-info",
+ "queue",
+ "seq",
+ "sesman",
+ "spinner"
+ ],
+ "commit": "a89b694cc3cec0294d84bf9dbe1163ad2373e8db",
+ "sha256": "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 26,
+ 1
+ ],
+ "deps": [
+ "clojure-mode",
+ "parseedn",
+ "pkg-info",
+ "queue",
+ "seq",
+ "sesman",
+ "spinner"
+ ],
+ "commit": "a89b694cc3cec0294d84bf9dbe1163ad2373e8db",
+ "sha256": "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"
+ }
+ },
+ {
+ "ename": "cider-decompile",
+ "commit": "0b7f7f23bb15922ce7a7dad1ae23093db72aa10c",
+ "sha256": "0jhsm31zcfwkbpsdh1lvmjm1fv2m7y849930sjvf5nxv3ffhx3b4",
+ "fetcher": "github",
+ "repo": "clojure-emacs/cider-decompile",
+ "unstable": {
+ "version": [
+ 20151122,
+ 537
+ ],
+ "deps": [
+ "cider",
+ "javap-mode"
+ ],
+ "commit": "5d87035f3c3c14025e8f01c0c53d0ce2c8f56651",
+ "sha256": "1w4y65s3m2irga4iqfqqkcmvl6ss24zmaxqzbfib8jmi84r4lpac"
+ }
+ },
+ {
+ "ename": "cider-eval-sexp-fu",
+ "commit": "947f4d106d70f95ca8aac124ab0d90b2975208df",
+ "sha256": "1n4sgv042qd9560pllabysx0c5snly6i22bk126y8f8rn0zj58iq",
+ "fetcher": "github",
+ "repo": "clojure-emacs/cider-eval-sexp-fu",
+ "unstable": {
+ "version": [
+ 20190311,
+ 2152
+ ],
+ "deps": [
+ "eval-sexp-fu"
+ ],
+ "commit": "7fd229f1441356866aedba611fd0cf4e89b50921",
+ "sha256": "01gky548v3758fyr317lkwsc9aacab6m9d9vk1mrr3qyvmciwd51"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "eval-sexp-fu"
+ ],
+ "commit": "7fd229f1441356866aedba611fd0cf4e89b50921",
+ "sha256": "01gky548v3758fyr317lkwsc9aacab6m9d9vk1mrr3qyvmciwd51"
+ }
+ },
+ {
+ "ename": "cider-hydra",
+ "commit": "51d5e6471f88337c478ee5c189f037aaec937f56",
+ "sha256": "1qjgfrj3ck70vkyc9c00mif0jq5hc2yan2hql31qzbpqzg3pi2r7",
+ "fetcher": "github",
+ "repo": "clojure-emacs/cider-hydra",
+ "unstable": {
+ "version": [
+ 20190816,
+ 1121
+ ],
+ "deps": [
+ "cider",
+ "hydra"
+ ],
+ "commit": "c3b8a15d72dddfbc390ab6a454bd7e4c765a2c95",
+ "sha256": "0qrxja9bxx07m1ij8ly36sib901a6qhczgxsp4ap4wszy63lx93r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cider",
+ "hydra"
+ ],
+ "commit": "5956c3909cd9beae11f64973e4f0d830cea7860d",
+ "sha256": "1hnari85c4y5sc8cdv2idkg2qv058crz54xdidnphr1wgw5zhvpk"
+ }
+ },
+ {
+ "ename": "ciel",
+ "commit": "9c70c007a557ea9fb9eb4d3f8b7adbe4dac39c8a",
+ "sha256": "0rz7z3shhsvky91b581nn3hw760nlsc94fl35flm1973kvm9lvdp",
+ "fetcher": "github",
+ "repo": "cs14095/ciel.el",
+ "unstable": {
+ "version": [
+ 20180914,
+ 815
+ ],
+ "commit": "429773a3c551691a463ecfddd634b8bae2f48503",
+ "sha256": "0xykdwsjgx44c0l5v9swkjjv0xa673krzlc71b1sc4dw9l526s4m"
+ }
+ },
+ {
+ "ename": "cil-mode",
+ "commit": "ccbf4a7c9df3c85207c7160ee68ecc4ba4f3801a",
+ "sha256": "1h18r086bqspyn5n252yzw8x2zgyaqzdd8pbcf5gqlh1w8kapq4y",
+ "fetcher": "github",
+ "repo": "ForNeVeR/cil-mode",
+ "unstable": {
+ "version": [
+ 20160622,
+ 1430
+ ],
+ "commit": "a78a88ca9a66a82f069329a96e34b67478ae2d9b",
+ "sha256": "06p6hz6jrnvnlbxdr1pjgf5wh4n34kf6al4589qg1s88r2lf86bl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "a78a88ca9a66a82f069329a96e34b67478ae2d9b",
+ "sha256": "06p6hz6jrnvnlbxdr1pjgf5wh4n34kf6al4589qg1s88r2lf86bl"
+ }
+ },
+ {
+ "ename": "cinspect",
+ "commit": "1e5b5bdbfeb59ed8e98e50d0cc773d78c72d1699",
+ "sha256": "0djh61mrfgcm3767ll1l5apw6646j4fdcaripksrmvn5aqfn8rjj",
+ "fetcher": "github",
+ "repo": "inlinestyle/cinspect-mode",
+ "unstable": {
+ "version": [
+ 20150716,
+ 233
+ ],
+ "deps": [
+ "cl-lib",
+ "deferred",
+ "python-environment"
+ ],
+ "commit": "4e199a90f89b335cccda1518aa0963e0a1d4fbab",
+ "sha256": "190n4kdcqdwglhnawnj9mqjarmcaqylxipc07whmrii0jv279kjw"
+ }
+ },
+ {
+ "ename": "circadian",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1xxrhifw371yc4i2cddzcdmqh5dfc905wyl88765098685q8k4bp",
+ "fetcher": "github",
+ "repo": "guidoschmidt/circadian.el",
+ "unstable": {
+ "version": [
+ 20181024,
+ 1256
+ ],
+ "commit": "414127acad8e2e0092ca60918e6a7cb89da6e28a",
+ "sha256": "08cfhk33xawj0jbgywfn1w0j7gjyj9bcghbrwn96fd7wwj3wh5j2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "commit": "9894361dcd6ffb6d4629b4cbbabda2153699eb8e",
+ "sha256": "0wpsykmai3idz0bgfl07hwl9nr4x9sgprvqgw8jln4dz2wf5gdic"
+ }
+ },
+ {
+ "ename": "circe",
+ "commit": "a2b295656d53fddc76cacc86b239e5648e49e3a4",
+ "sha256": "1f54d8490gfx0r0cdvgmcjdxqpni43msy0k2mgqd1qz88a4b5l07",
+ "fetcher": "github",
+ "repo": "jorgenschaefer/circe",
+ "unstable": {
+ "version": [
+ 20200815,
+ 1410
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "89aac22259e5d09ae1183e0df163338fe491e9e7",
+ "sha256": "16hfahyhl1vv3r0amyvc514sw6x9x56b319lkp7bwcy8mxicc3cy"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 11
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6ccd4b494cbae9d28091217654f052eaea321007",
+ "sha256": "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"
+ }
+ },
+ {
+ "ename": "circe-notifications",
+ "commit": "76c0408423c4e0728789de7b356b2971d6c446c7",
+ "sha256": "06y525x5yc0xgbw0cf16mc72ca9bv8j8z4gpgznbad2qp7psf53c",
+ "fetcher": "github",
+ "repo": "eqyiel/circe-notifications",
+ "unstable": {
+ "version": [
+ 20180102,
+ 2318
+ ],
+ "deps": [
+ "alert",
+ "circe"
+ ],
+ "commit": "291149ac12877bbd062da993479d3533a26862b0",
+ "sha256": "18mva5nn919c86sgk6kdh437vdnlh9bk7fg10xqcpics1yv3viaw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "alert",
+ "circe"
+ ],
+ "commit": "80c44441ecd3ae04ae63760aa20afa837c1ed05b",
+ "sha256": "0s0iw5vclciziga78f1lvj6sdg84a132in39k4vz0pj598ypin1w"
+ }
+ },
+ {
+ "ename": "citeproc",
+ "commit": "20aa56e9a4809cee1082224b1b4e65921a48bda1",
+ "sha256": "1qphg2bg7vvjzgvnsscbyf40llxxh4aa2s2ffk8vsbfd4p8208cq",
+ "fetcher": "github",
+ "repo": "andras-simonyi/citeproc-el",
+ "unstable": {
+ "version": [
+ 20200705,
+ 1155
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "org",
+ "queue",
+ "s",
+ "string-inflection"
+ ],
+ "commit": "0ad1f975a095156d02dd7f9adc0fecbc57b1e751",
+ "sha256": "1xhkicffmdiy4c22m9qilm09nq9zqfsi9gawq3gflla79avblh4r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "org",
+ "queue",
+ "s",
+ "string-inflection"
+ ],
+ "commit": "80b395b8a0c7fc92290f0d1bfd1b5520ffd415fd",
+ "sha256": "1b918gjzds9jzs0ywfr41wd069l234pshpa9rn8srkzlpj5lac4d"
+ }
+ },
+ {
+ "ename": "citeproc-org",
+ "commit": "2055da5d0628ca3c35b111b5ded56c0f635ca690",
+ "sha256": "06kr5qg0l2389n72vyxmh86sc376hjg4npzkrh42cgb1c2m4psj8",
+ "fetcher": "github",
+ "repo": "andras-simonyi/citeproc-org",
+ "unstable": {
+ "version": [
+ 20200615,
+ 947
+ ],
+ "deps": [
+ "citeproc",
+ "dash",
+ "f",
+ "org",
+ "org-ref"
+ ],
+ "commit": "342f6531b08f5d789a1ae222f9707f636b1f5e2f",
+ "sha256": "1dc5qkwmfi2jm12297yy14fqbc335qjsdfi2mfgiz8wvs84hyci8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "deps": [
+ "citeproc",
+ "dash",
+ "f",
+ "org",
+ "org-ref"
+ ],
+ "commit": "a35655c55bbdc3f8c0571c8a8f14a33f9eac330b",
+ "sha256": "1n9k25qsxjv50nkk0v7cfqwdb0y89bid8lprfzzn8zi9b7gyly6x"
+ }
+ },
+ {
+ "ename": "cl-format",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "09jwy0fgaz2f04dvcdns6w859s6izvrkp8ib4lws3x8kx8z918fy",
+ "fetcher": "github",
+ "repo": "alvinfrancis/cl-format",
+ "unstable": {
+ "version": [
+ 20160413,
+ 45
+ ],
+ "commit": "4380cb8009c47cc6d9098b383082b93b1aefa460",
+ "sha256": "108s96viral3s62a77jfgvjam08hdk97frfmxjg3xpp2ifccjs7h"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "4380cb8009c47cc6d9098b383082b93b1aefa460",
+ "sha256": "108s96viral3s62a77jfgvjam08hdk97frfmxjg3xpp2ifccjs7h"
+ }
+ },
+ {
+ "ename": "cl-lib-highlight",
+ "commit": "696c79669478b0d1c9769cc6f0fe581ee056cf32",
+ "sha256": "13qdrvpxq928p27b1xdcbsscyhqk042rwfa17037gp9h02fd42j8",
+ "fetcher": "github",
+ "repo": "skeeto/cl-lib-highlight",
+ "unstable": {
+ "version": [
+ 20200210,
+ 1951
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "72afc4dd0107c357543244d09903767f49651c5c",
+ "sha256": "1ndjjdada219fgs68np4r7vg50s2h6060wd6wf0x3pnj8b0ca5wm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c117451df8455769701af6c8e92a8fb29c05e1fa",
+ "sha256": "12vgi5dicx3lxzngjcg9g3nflrhfy9wdw6ldm72zarp1h96jy5cw"
+ }
+ },
+ {
+ "ename": "cl-libify",
+ "commit": "22088f8779652072871d5c472c67f34bd0470129",
+ "sha256": "0p3b57vfzhk348hb7bcnkq4ihi4qzsy4hcdvwa1h85i84vwyzk5d",
+ "fetcher": "github",
+ "repo": "purcell/cl-libify",
+ "unstable": {
+ "version": [
+ 20181130,
+ 230
+ ],
+ "commit": "f215866d7d7c52e84220cd541f40608a5b85abf0",
+ "sha256": "1k8x48cayanwajz81h5kfysqvnf58wrb9j4f9rbaqzg2nrnqw5sm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "f7df5d868ada173bc81860ef81ece359f13ae4e4",
+ "sha256": "1xp0zajp4rsnxkfzrmz0m5bihk0n1hgwc1cm9q163b2azsvixxmw"
+ }
+ },
+ {
+ "ename": "clang-capf",
+ "commit": "c47e1fd9d5a4b85f08676742a9b36b74a2ac8fb6",
+ "sha256": "11qfh8c2kjcy715yyp0sywla74z92qn5j1z9wp4fv5p45w6b6112",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~zge/clang-capf",
+ "unstable": {
+ "version": [
+ 20200813,
+ 2056
+ ],
+ "commit": "630ab057ed614d142ac08bb3a44a869a81cb591a",
+ "sha256": "0xrxk4b903ayymrngf2swk8d7ic8np1dy8zp9hg3wjlibsmagak0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "630ab057ed614d142ac08bb3a44a869a81cb591a",
+ "sha256": "0xrxk4b903ayymrngf2swk8d7ic8np1dy8zp9hg3wjlibsmagak0"
+ }
+ },
+ {
+ "ename": "clang-format",
+ "commit": "be27e728327016b819535ef8cae10020e5a07c2e",
+ "sha256": "0v8nvgjadzmsz088q6cgli5s99z45bz9qb508qln1yips42zn258",
+ "fetcher": "github",
+ "repo": "emacsmirror/clang-format",
+ "unstable": {
+ "version": [
+ 20191121,
+ 1708
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2d6a4526a2518b7c0059a8a0dfee156e90a49369",
+ "sha256": "1l64r9rr59g26mlph6r8pkn8vzadmh3mh8gvv398kz8skayfa55f"
+ }
+ },
+ {
+ "ename": "clang-format+",
+ "commit": "9ee8e3de203fb3259202bf847f020259a7f07a74",
+ "sha256": "0r9n962q0nq8x3r4vyrdfmw74wsvxw7lxizvklxcsm421qpnzyfa",
+ "fetcher": "github",
+ "repo": "SavchenkoValeriy/emacs-clang-format-plus",
+ "unstable": {
+ "version": [
+ 20190824,
+ 2216
+ ],
+ "deps": [
+ "clang-format"
+ ],
+ "commit": "ddd4bfe1a13c2fd494ce339a320a51124c1d2f68",
+ "sha256": "0y97f86qnpcscwj41icb4i6j40qhvpkyhg529hwibpf6f53j7ckl"
+ }
+ },
+ {
+ "ename": "clean-aindent-mode",
+ "commit": "ee9dac7c10e652f026643620418dfea9237a0d23",
+ "sha256": "1whzbs2gg2ar24kw29ffv94dgvrlfy2v4zdn0g7ksjjmmdr8ahh4",
+ "fetcher": "github",
+ "repo": "pmarinov/clean-aindent-mode",
+ "unstable": {
+ "version": [
+ 20171017,
+ 2043
+ ],
+ "commit": "a97bcae8f43a9ff64e95473e4ef0d8bafe829211",
+ "sha256": "07dgx09j6nn5dl9vpqfcs5yqm79kza3h3r1lb7r09wpkmrg0c2cr"
+ }
+ },
+ {
+ "ename": "clean-buffers",
+ "commit": "7fcabd17d7de9af443198ac9c2996bfbd94324de",
+ "sha256": "025sxrqxm24yg1wpfncrjw1nm91h0h7jy2xd5g20xqlinqqvdihj",
+ "fetcher": "github",
+ "repo": "lujun9972/clean-buffers",
+ "unstable": {
+ "version": [
+ 20160529,
+ 2259
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1be6c54e3095761b6b64bf749faae3dfce94e72a",
+ "sha256": "1h7kmj53fqwfzam3ywz3yn4abl2n94v0lxnyv7x4qzwi2ggizc3l"
+ }
+ },
+ {
+ "ename": "clear-text",
+ "commit": "d2ae86a3001587ba753fcd0ca5137cb65d38910d",
+ "sha256": "1cx2lbcbhd024pq9njan7xrlvj3k4c3wdsvgbz5qyna0k06ix8dv",
+ "fetcher": "github",
+ "repo": "xuchunyang/clear-text.el",
+ "unstable": {
+ "version": [
+ 20160406,
+ 2043
+ ],
+ "commit": "b50669b6077d6948f72cb3c649281d206e0c2f2b",
+ "sha256": "0y5z2pfhzpv67w2lnw1q06mflww90sfcilj89kqx2jhhrnrnn2ka"
+ }
+ },
+ {
+ "ename": "clevercss",
+ "commit": "ec88232feb9d0a04278d5f615bb0ee0833ecb8ca",
+ "sha256": "189f2l4za1j9ds0bhxrzyp7da9p6svh5dx2vnzf4vql7qhjk3gf0",
+ "fetcher": "github",
+ "repo": "jschaf/CleverCSS-Mode",
+ "unstable": {
+ "version": [
+ 20131229,
+ 155
+ ],
+ "commit": "b8a3c0dd674367c62b1a1ffec84d88fe0c0219bc",
+ "sha256": "19q6zbnl9fg4cwgi56d7p4qp6y3g0fdyihinpakby49xv2n2k8dx"
+ }
+ },
+ {
+ "ename": "click-mode",
+ "commit": "1859bb26e3efd66394d7d9f4d2296cbeeaf5ba4d",
+ "sha256": "1p5dz4a74w5zxdlw17h5z9dglapia4p29880liw3bif2c7dzkg0r",
+ "fetcher": "github",
+ "repo": "bmalehorn/click-mode",
+ "unstable": {
+ "version": [
+ 20180611,
+ 44
+ ],
+ "commit": "b94ea8cce89cf0e753b2ab915202d49ffc470fb6",
+ "sha256": "0bz0wp40khha96k74g9vgnzm7xzsrh0wh4vks205pjhaxabhb5vh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "commit": "c074e7b5b0a88434d0d3411f18884d1f6e288b33",
+ "sha256": "0w34ixzk8vs2nv5xr7l1b3k0crl1lqvbq6gs5r4b8rhsx9b6c1mb"
+ }
+ },
+ {
+ "ename": "clipetty",
+ "commit": "3f6895244ad88e79d9e5d98dd0ba28be96c79595",
+ "sha256": "0471hrl5nw4v83fglgnsa5yh810idbsliwvrm2b5i6zwgn3mndci",
+ "fetcher": "github",
+ "repo": "spudlyo/clipetty",
+ "unstable": {
+ "version": [
+ 20200327,
+ 2241
+ ],
+ "commit": "01b39044b9b65fa4ea7d3166f8b1ffab6f740362",
+ "sha256": "1g1awdcqzrnw1a6gl4n87a97lniyn0ck5a51l9n6jz2m8k3idmsg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "8430e1c01ae701fb85bb12703fe59a0f04fd0a6f",
+ "sha256": "0k3srxvy5r7hbwbr8r65l9gc7nynqrqx5hc39s3xgx3ddq66wq4i"
+ }
+ },
+ {
+ "ename": "cliphist",
+ "commit": "82d86dae4ad8efc8ef342883c164c56e43079171",
+ "sha256": "0mg6pznijba3kvp3r57pi54v6mgih2vfwj2kg6qmcy1abrc0xq29",
+ "fetcher": "github",
+ "repo": "redguardtoo/cliphist",
+ "unstable": {
+ "version": [
+ 20190920,
+ 149
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "3105e5c4b4d2d0338edb6effd9329426854b80b1",
+ "sha256": "0jbn2nczhsv9adhkc6mnrmxyjbpkbqq475gry0khhqlmzm49y618"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 6
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "232ab0b3f6d502de61ebe76681a6a04d4223b877",
+ "sha256": "0is772r0b7i8rvra9zb94g9aczv8b6q0dmdk67wbli5rv5drfjyq"
+ }
+ },
+ {
+ "ename": "clipmon",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "0qhav3scmk3zsa7v3hg3zczps0as3mzrz3cl34n3xlvf4f6ifd9k",
+ "fetcher": "github",
+ "repo": "bburns/clipmon",
+ "unstable": {
+ "version": [
+ 20180129,
+ 1054
+ ],
+ "commit": "95dc56c7ed84a654ec90f4740eb6df1050de8cf1",
+ "sha256": "0mfb4k0i71y49hn0xk5a1mv4zaj249qcan0y0nzvgf7mmvr32n9w"
+ }
+ },
+ {
+ "ename": "clippy",
+ "commit": "e3743596c4b6387351684b1bf00f17275b8e59e8",
+ "sha256": "0nqmc8f2qrsp25vzc66xw6b232n7fyw6g06mwn2cdpm3d2pgb7rg",
+ "fetcher": "github",
+ "repo": "Fuco1/clippy.el",
+ "unstable": {
+ "version": [
+ 20161028,
+ 1954
+ ],
+ "deps": [
+ "pos-tip"
+ ],
+ "commit": "e77f6b63e54d74e243be98accad474e38f7e2a86",
+ "sha256": "052xqscb63kjj6z9m0kk5jlfsy84g848lnpcn5yhz3km2r6nigqm"
+ }
+ },
+ {
+ "ename": "clips-mode",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "1ckk8ajr1x8y2h8jx2q233xs69nip3kjn0wp3xgfbwx7hjcbk7kr",
+ "fetcher": "github",
+ "repo": "clips-mode/clips-mode",
+ "unstable": {
+ "version": [
+ 20170909,
+ 823
+ ],
+ "commit": "dd38e2822640a38f7d8bfec4f69d8dd24be27074",
+ "sha256": "1q2jz72wi8d2pdrjic9kwqixp5sczjkkx8rf67rgaz37ysjpcbf6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "commit": "a3ab4a3e958d54a16544ec38fe6338f27df20817",
+ "sha256": "0i6sj5rs4b9v8aqq9l6wr15080qb101hdxspx6innhijhajgmssd"
+ }
+ },
+ {
+ "ename": "clj-refactor",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "05x0820x34pidcz03z96qs685y2700g7ha0dx4vy1xr7fg356c3z",
+ "fetcher": "github",
+ "repo": "clojure-emacs/clj-refactor.el",
+ "unstable": {
+ "version": [
+ 20200405,
+ 1419
+ ],
+ "deps": [
+ "cider",
+ "clojure-mode",
+ "hydra",
+ "inflections",
+ "multiple-cursors",
+ "paredit",
+ "parseedn",
+ "seq",
+ "yasnippet"
+ ],
+ "commit": "97095682580bbc5bfebcbc5349f03f5bd7121c96",
+ "sha256": "1dgksqzdln8cv0hyq273ikfk2bmk16rwvkiyscqsxzi8jdv8cdck"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cider",
+ "clojure-mode",
+ "hydra",
+ "inflections",
+ "multiple-cursors",
+ "paredit",
+ "parseedn",
+ "seq",
+ "yasnippet"
+ ],
+ "commit": "92d372393a031e5fa73ef926447afe72b574cb45",
+ "sha256": "0lnis1qwk1gyxgapl06d7ww1mlb9a8ahl8zwa7y2n3jrgfm25qp4"
+ }
+ },
+ {
+ "ename": "cljr-helm",
+ "commit": "d99b67e295ef59916211bf22b57b4d093e3d53ab",
+ "sha256": "108a1xgnc6qy088vs41j3npwk25a5vny0xx4r3yh76jsmpdpcgnc",
+ "fetcher": "github",
+ "repo": "philjackson/cljr-helm",
+ "unstable": {
+ "version": [
+ 20160913,
+ 828
+ ],
+ "deps": [
+ "cl-lib",
+ "clj-refactor",
+ "helm-core"
+ ],
+ "commit": "f2fc7b698a56e4a44d5dfbc6a55d77a93c0fa9a4",
+ "sha256": "0jy6hkz8sr1bplymwxnjg4q408cw2dgfrv70chlw3y5ddc4cingj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 11
+ ],
+ "deps": [
+ "cl-lib",
+ "clj-refactor",
+ "helm-core"
+ ],
+ "commit": "f2fc7b698a56e4a44d5dfbc6a55d77a93c0fa9a4",
+ "sha256": "0jy6hkz8sr1bplymwxnjg4q408cw2dgfrv70chlw3y5ddc4cingj"
+ }
+ },
+ {
+ "ename": "cljr-ivy",
+ "commit": "c34d8d2edc5e5d213aef33255a9214ff87ece1bf",
+ "sha256": "03afriiwswaw0canv4wphqr4kfrrpkclcczcx5ab0w3pm4bax1zl",
+ "fetcher": "github",
+ "repo": "wandersoncferreira/cljr-ivy",
+ "unstable": {
+ "version": [
+ 20200602,
+ 1607
+ ],
+ "deps": [
+ "cl-lib",
+ "clj-refactor",
+ "ivy"
+ ],
+ "commit": "921ba65d0db7cda4edcd690c708946125b874a70",
+ "sha256": "12g74sfjw6siix8hvfbb0a7y8cxzxi1mb22sw8wih56bcv1987wl"
+ }
+ },
+ {
+ "ename": "cljsbuild-mode",
+ "commit": "d801a2e0ba5ae7c65b5d312fbf41261278a8b1ba",
+ "sha256": "0qvb990dgq4v75lwnd661wxszbdbhlgxpsyv4zaj6h10gp1vi214",
+ "fetcher": "github",
+ "repo": "kototama/cljsbuild-mode",
+ "unstable": {
+ "version": [
+ 20160402,
+ 1700
+ ],
+ "commit": "fa2315660cb3ce944b5e16c679dcf5afd6a97f4c",
+ "sha256": "0flnfivz6w3pkham3g08m3xzy3jg1rzvxfa00vkr7ll8iyv4ypqc"
+ }
+ },
+ {
+ "ename": "clmemo",
+ "commit": "e98b438990dc0dbda264fb4bf7a3237a2661baab",
+ "sha256": "03qa79ip0gqinj1kk898lcvixk98hf6gknz0yc2fnqcrm642k2vs",
+ "fetcher": "github",
+ "repo": "ataka/clmemo",
+ "unstable": {
+ "version": [
+ 20160326,
+ 1623
+ ],
+ "commit": "846a81b984d71edf8278a4d9f9b886e44d5b8365",
+ "sha256": "152qf7i5bf7xvr35gyawl8abkh7v5dsz957zxslrbbnc8bb1k6bz"
+ }
+ },
+ {
+ "ename": "cloc",
+ "commit": "0dd7a641efd13aa0bd7509d8a5b0a28e3a0493c8",
+ "sha256": "1ny5wixa9x4fq5jvhs01jmyvwkfvwwi9aamrcqsl42s9sx6ygz7a",
+ "fetcher": "github",
+ "repo": "cosmicexplorer/cloc-emacs",
+ "unstable": {
+ "version": [
+ 20170728,
+ 1824
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f30f0472e465cc8d433d2473e9d3b8dfe2c94491",
+ "sha256": "0g8hklc0914dsi3ks7g251w58ixa78qsh87dx914cc8sahpc0ws2"
+ }
+ },
+ {
+ "ename": "clocker",
+ "commit": "dadd3f5abad2e1f7863c4d654ff065f641395f64",
+ "sha256": "0cckrk40k1labiqjh7ghzpx5zi136xz70j3ipp117x52qf24k10k",
+ "fetcher": "github",
+ "repo": "roman/clocker.el",
+ "unstable": {
+ "version": [
+ 20190214,
+ 1833
+ ],
+ "deps": [
+ "dash",
+ "projectile",
+ "spaceline"
+ ],
+ "commit": "c4d76968a49287ce3bac0832bb5d5d076054c96f",
+ "sha256": "1wp74fmnk21n5lrpmyk9j25dc79jffbmmhbgg5avzv63az6ffkdk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 11
+ ],
+ "deps": [
+ "dash",
+ "projectile"
+ ],
+ "commit": "4a4831ed4e42e18976edd16b844cb16cb78f3c17",
+ "sha256": "0hz6a7gj0zfsdaifkhwf965c96rkjc3kivvqlf50zllsw0ysbnn0"
+ }
+ },
+ {
+ "ename": "clojars",
+ "commit": "7f766319c3e18a41017684ea503b0382e96ab31b",
+ "sha256": "1skvd29347hwapgdqznbzwfcp2nf077qkdzknxc8ylmqa32yf5w1",
+ "fetcher": "github",
+ "repo": "joshuamiller/clojars.el",
+ "unstable": {
+ "version": [
+ 20180825,
+ 1951
+ ],
+ "deps": [
+ "request-deferred"
+ ],
+ "commit": "696c5b056e45067512a7d6dcce2515f3c639f61b",
+ "sha256": "0qkkdlifii6wkfxaj95zphiw3psmf9qnds3whmp6jq2lq9wpd74f"
+ }
+ },
+ {
+ "ename": "clojure-essential-ref",
+ "commit": "8ecff309816256bdc09163aee6ca06b4292d98b7",
+ "sha256": "0vl4lz9wmymkai7yhv0gqiky5czmzd7yz9g9czfp7lhfh1hpgbkg",
+ "fetcher": "github",
+ "repo": "p3r7/clojure-essential-ref",
+ "unstable": {
+ "version": [
+ 20200619,
+ 1653
+ ],
+ "deps": [
+ "cider"
+ ],
+ "commit": "3787300a2f6100d1a20b1259b488256f3a840fa6",
+ "sha256": "08r5whs39r2fscicjzvmdfj7s7f49afhiz4i2i05ps1f1545569d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cider"
+ ],
+ "commit": "e05d61b96f6469a93f52015b7ad5deadf616139e",
+ "sha256": "118zkdx118p1mzgq1szschl40qmb2cb5vw9jb9fhpimqdrlq53md"
+ }
+ },
+ {
+ "ename": "clojure-essential-ref-nov",
+ "commit": "11341af9478acdaec9d5e0b5011269ac7c0ada86",
+ "sha256": "1740mmv8qh8gsnzvvvfdxsp676ss8b6filidbxq6b6qz2jyb7fzw",
+ "fetcher": "github",
+ "repo": "p3r7/clojure-essential-ref",
+ "unstable": {
+ "version": [
+ 20200719,
+ 608
+ ],
+ "deps": [
+ "clojure-essential-ref",
+ "dash",
+ "nov"
+ ],
+ "commit": "3787300a2f6100d1a20b1259b488256f3a840fa6",
+ "sha256": "08r5whs39r2fscicjzvmdfj7s7f49afhiz4i2i05ps1f1545569d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "clojure-essential-ref",
+ "dash",
+ "nov"
+ ],
+ "commit": "e05d61b96f6469a93f52015b7ad5deadf616139e",
+ "sha256": "118zkdx118p1mzgq1szschl40qmb2cb5vw9jb9fhpimqdrlq53md"
+ }
+ },
+ {
+ "ename": "clojure-mode",
+ "commit": "5e3cd2e6ee52692dc7b2a04245137130a9f521c7",
+ "sha256": "11n0rjhs1mmlzdqy711g432an5ybdka5xj0ipsk8dx6xcyab70np",
+ "fetcher": "github",
+ "repo": "clojure-emacs/clojure-mode",
+ "unstable": {
+ "version": [
+ 20200813,
+ 639
+ ],
+ "commit": "84ed16c5ddb6561620886485e20669d0c81f88a1",
+ "sha256": "1kdm9dfj3qifwylj9j2x12xwxzrkmyp4pvph7bvwfrv65jp4r58j"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 12,
+ 0
+ ],
+ "commit": "3dc12d3a54ab17dee2db36c8fc48eb9598a17c5e",
+ "sha256": "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"
+ }
+ },
+ {
+ "ename": "clojure-mode-extra-font-locking",
+ "commit": "5e3cd2e6ee52692dc7b2a04245137130a9f521c7",
+ "sha256": "00nff9mkj61i76dj21x87vhz0bbkzgvkx1ypkxcv6yf3pfhq7r8n",
+ "fetcher": "github",
+ "repo": "clojure-emacs/clojure-mode",
+ "unstable": {
+ "version": [
+ 20200320,
+ 823
+ ],
+ "deps": [
+ "clojure-mode"
+ ],
+ "commit": "84ed16c5ddb6561620886485e20669d0c81f88a1",
+ "sha256": "1kdm9dfj3qifwylj9j2x12xwxzrkmyp4pvph7bvwfrv65jp4r58j"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 12,
+ 0
+ ],
+ "deps": [
+ "clojure-mode"
+ ],
+ "commit": "3dc12d3a54ab17dee2db36c8fc48eb9598a17c5e",
+ "sha256": "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"
+ }
+ },
+ {
+ "ename": "clojure-quick-repls",
+ "commit": "e618430057eb3ac235ab4a44767524919c870036",
+ "sha256": "10glzyd4y3918pwp048pc1y7y7fa34fkqckn1nbys841dbssmay0",
+ "fetcher": "github",
+ "repo": "symfrog/clojure-quick-repls",
+ "unstable": {
+ "version": [
+ 20150814,
+ 736
+ ],
+ "deps": [
+ "cider",
+ "dash"
+ ],
+ "commit": "730311dd3ac4e0aceb0204f818b422017873467f",
+ "sha256": "1qxhgqldvzzbpr3cxkj3a1zhpjck04pcqli9nnnb75hawi7vi8si"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cider",
+ "dash"
+ ],
+ "commit": "90f82e294cfdfb65231adc456177580cd69bfc00",
+ "sha256": "0sw34yjp8934xd2n76lbwyvxkbyz5pxszj6gkflas8lfjvms9z7d"
+ }
+ },
+ {
+ "ename": "clojure-snippets",
+ "commit": "4898fc6746b30b0d0453b3b56d02479bfb0f70b9",
+ "sha256": "15622mdd6b3fpwp22d32p78yap08pyscs2vc83sv1xz4338i0lij",
+ "fetcher": "github",
+ "repo": "mpenet/clojure-snippets",
+ "unstable": {
+ "version": [
+ 20180314,
+ 1308
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "6068dca90467a0f4ebc2cd39338a173d6f5ddc04",
+ "sha256": "0vvadcydpsz4b17dlm1jd4fbddzfqibh3mlzv3k4gvp67vv10cqy"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "83785faa607884308a42b81f160854f2cecfd098",
+ "sha256": "1sdgf1avfw7w3m3i7nqb9m9nhqk8lr0bri686lrkq23ds2b44454"
+ }
+ },
+ {
+ "ename": "clomacs",
+ "commit": "345f9797e87e3f5f957c167a5e3d33d1e31b50a3",
+ "sha256": "1vfjzrzp58ap75i0dh5bwnlkb8qbpfmrd3fg9n6aaibvvd2m3hyh",
+ "fetcher": "github",
+ "repo": "clojure-emacs/clomacs",
+ "unstable": {
+ "version": [
+ 20200808,
+ 2347
+ ],
+ "deps": [
+ "cider",
+ "s",
+ "simple-httpd"
+ ],
+ "commit": "ada167954911bf1631ea73537b4b496f35f99a73",
+ "sha256": "0gc4c97s6y7al1777zmzvq1n30i532b4v8k2p7i71bzzijr97fml"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "cider",
+ "s",
+ "simple-httpd"
+ ],
+ "commit": "ada167954911bf1631ea73537b4b496f35f99a73",
+ "sha256": "0gc4c97s6y7al1777zmzvq1n30i532b4v8k2p7i71bzzijr97fml"
+ }
+ },
+ {
+ "ename": "closql",
+ "commit": "2df16abf56e53d4a1cc267a78797419520ff8a1c",
+ "sha256": "13ybna20w2d1b3n0y5p1ybhkw0j0zh5nd43p1yvf8h1haj983l87",
+ "fetcher": "github",
+ "repo": "emacscollective/closql",
+ "unstable": {
+ "version": [
+ 20200704,
+ 2124
+ ],
+ "deps": [
+ "emacsql-sqlite"
+ ],
+ "commit": "c864c1fadfea4a05fff29cb60891b7a32ac88c78",
+ "sha256": "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 4
+ ],
+ "deps": [
+ "emacsql-sqlite"
+ ],
+ "commit": "c864c1fadfea4a05fff29cb60891b7a32ac88c78",
+ "sha256": "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"
+ }
+ },
+ {
+ "ename": "closure-lint-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "11kxgvfwngdjryrrihlpn0509axwv4zwkxzs4h1pw5vi7sv1n6xd",
+ "fetcher": "github",
+ "repo": "r0man/closure-lint-mode",
+ "unstable": {
+ "version": [
+ 20101118,
+ 2124
+ ],
+ "commit": "bc3d2fd5c35580bf1b8af43b12484c95a343b4b5",
+ "sha256": "0v0wdq0b5jz4x0d7dl3ilgf3aqp2hk375db366ij6gxwd0b9i3na"
+ }
+ },
+ {
+ "ename": "cloud-theme",
+ "commit": "2b003217d0d518b23385e9486c84db7036a479ad",
+ "sha256": "1q0y04rx4xj251fbnv01shk0l7xvqqsr4xm3m2m5q5gf18s66hrp",
+ "fetcher": "github",
+ "repo": "vallyscode/cloud-theme",
+ "unstable": {
+ "version": [
+ 20200221,
+ 2201
+ ],
+ "commit": "bdac53baf1c38f83a16091db515047f7d42dac14",
+ "sha256": "0ikhngr4cq4v6dgj59fffbdd6z9pdfcckgblsk3xs26frqqqxknf"
+ }
+ },
+ {
+ "ename": "cloud-to-butt-erc",
+ "commit": "b12354152cce6e9a281dc26018c763b6f93e3cee",
+ "sha256": "061mmw39dq8sqzi2589lf7svy15n2iyiwbfiram48r2yhma5dd0f",
+ "fetcher": "github",
+ "repo": "leathekd/cloud-to-butt-erc",
+ "unstable": {
+ "version": [
+ 20130627,
+ 2308
+ ],
+ "commit": "6710c03d1bc91736435cbfe845924940cae34e5c",
+ "sha256": "07kvnb6p35swkyj92c4wymsqq4r2885wdpqhv7nhicvi6n658kpf"
+ }
+ },
+ {
+ "ename": "clues-theme",
+ "commit": "6f26b8281f9bd05e3c8f2ef21838275711e622c9",
+ "sha256": "0b0gypmxx8qjd8hgxf4kbvci1nwacsxl7rm5s1bcnk9cwc6k2jpr",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-clues-theme",
+ "unstable": {
+ "version": [
+ 20161213,
+ 1127
+ ],
+ "commit": "abd61f2b7f3e98de58ca26e6d1230e70c6406cc7",
+ "sha256": "118k5bnlk9sc2n04saaxjncmc1a4m1wlf2y7xyklpffkazbd0m72"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "abd61f2b7f3e98de58ca26e6d1230e70c6406cc7",
+ "sha256": "118k5bnlk9sc2n04saaxjncmc1a4m1wlf2y7xyklpffkazbd0m72"
+ }
+ },
+ {
+ "ename": "cm-mode",
+ "commit": "42dda804ec0c7338c39c57eec6ba479609a38555",
+ "sha256": "1rgfpxbnp8wiq9j8aywm2n07rxzkhqljigwynrkyvrnsgxlq2a9x",
+ "fetcher": "github",
+ "repo": "joostkremers/criticmarkup-emacs",
+ "unstable": {
+ "version": [
+ 20170203,
+ 2107
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "276d49c859822265070ae5dfbb403fd7d8d06436",
+ "sha256": "0mqbjw9wiaq735v307hd7g0g6i3a4k7h71bi4g9rr2jbgiljmql4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "276d49c859822265070ae5dfbb403fd7d8d06436",
+ "sha256": "0mqbjw9wiaq735v307hd7g0g6i3a4k7h71bi4g9rr2jbgiljmql4"
+ }
+ },
+ {
+ "ename": "cmake-font-lock",
+ "commit": "383a7f191c10916ad40284fba94f967765ffeb7e",
+ "sha256": "0ws4kd94m8fh55d7whsf3rj9qrxjp1wsgxh0valsjxyp2ck9zrz0",
+ "fetcher": "github",
+ "repo": "Lindydancer/cmake-font-lock",
+ "unstable": {
+ "version": [
+ 20200103,
+ 1702
+ ],
+ "deps": [
+ "cmake-mode"
+ ],
+ "commit": "9e0fcd1ee2cf316f661f2d652368b12f83a4ec9c",
+ "sha256": "0m1i5ijiwsxral544xd4nygcr1qbackaghjfgr8pfb5yfwgdxifh"
+ }
+ },
+ {
+ "ename": "cmake-ide",
+ "commit": "17e8a8a5205d222950dc8e9245549a48894b864a",
+ "sha256": "0xvy7l80zw67jgvk1rkhwzjvsqjqckmd8zj6s67rgbm56z6ypmcg",
+ "fetcher": "github",
+ "repo": "atilaneves/cmake-ide",
+ "unstable": {
+ "version": [
+ 20200515,
+ 951
+ ],
+ "deps": [
+ "cl-lib",
+ "levenshtein",
+ "s",
+ "seq"
+ ],
+ "commit": "a8f9e83848b513f810170988679a9ef455025975",
+ "sha256": "1dzqqcj9l7hr73cj65rx5iy58bsiif5521d18jym4pajhzj3mkx0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib",
+ "levenshtein",
+ "seq"
+ ],
+ "commit": "a2e476ad42e61075cae9beb35fb83e3c1bf8619e",
+ "sha256": "0n169i4y2c450bk5r284bakjk3hsg74pply5fqxvdm6p5p1z2vr1"
+ }
+ },
+ {
+ "ename": "cmake-mode",
+ "commit": "9b95a562119259839dcaa08d27871282a5ca5391",
+ "sha256": "1nhnrkyfd8f2vgxvl5y78vvmjjhqjjpxqcdl7i7kwm243l2zy5g3",
+ "fetcher": "git",
+ "url": "https://gitlab.kitware.com/cmake/cmake.git",
+ "unstable": {
+ "version": [
+ 20190710,
+ 1319
+ ],
+ "commit": "92d724903192b98e42cc1048ca587207aa20043f",
+ "sha256": "1ig5wjiq31rgf57gkf37d2rzx4qkkif997w1dfllwc4w3svwykp0"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 18,
+ 1
+ ],
+ "commit": "63a65baf4c343c73b2142078ef0045d3711dea1d",
+ "sha256": "1a3r119qca4sg83zchnsnmmq9k7ad8pljl5s24k00xbyyfs1wm7k"
+ }
+ },
+ {
+ "ename": "cmake-project",
+ "commit": "0857c4db1027981ea73bc32bcaa15e5df53edea3",
+ "sha256": "13n6j9ljvzjzkknbm9zkhxljcn12avl39gxqq95hah44dr11rns3",
+ "fetcher": "github",
+ "repo": "alamaison/emacs-cmake-project",
+ "unstable": {
+ "version": [
+ 20171121,
+ 1115
+ ],
+ "commit": "a7cf9e4c01c4683e14b6942cc5cc5e8cddc98721",
+ "sha256": "0zff8705vllkmm112qm58q1af0x1rcra5yw4fi8m5q97kh0n77vn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "commit": "ec61f687772cccdb699f64ebe1e8dc8ba83f790f",
+ "sha256": "10xlny2agxjknvnjdnw41cyb3d361yy0wvpc8l1d0xwnmmfh3bxk"
+ }
+ },
+ {
+ "ename": "cmd-to-echo",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1b4mw1ips4695ixgw2hyinq9ry3bx4d1842kr7k6155a1v34s4zh",
+ "fetcher": "github",
+ "repo": "mallt/cmd-to-echo",
+ "unstable": {
+ "version": [
+ 20161203,
+ 2133
+ ],
+ "deps": [
+ "s",
+ "shell-split-string"
+ ],
+ "commit": "e0e874fc0e1ad6d291e39ed76023445297ad438a",
+ "sha256": "0wi097yk9p1xcfmps1g58xvvlv60akwky4y0pxdz6pa31w9jd1q8"
+ }
+ },
+ {
+ "ename": "cmm-mode",
+ "commit": "07579854200302cf69e120648f4983961e628f7d",
+ "sha256": "184b8x19cnvx8z4dr9alv62wchzc7vr7crzz8jiyqw9d544zs50h",
+ "fetcher": "github",
+ "repo": "bgamari/cmm-mode",
+ "unstable": {
+ "version": [
+ 20150225,
+ 746
+ ],
+ "commit": "c3ad514dff3eb30434f6b20d953276d4c00de1ee",
+ "sha256": "0xdcw329d2gssx86iajwrgpr7yv69b9nflmzjgb4jvg4pskj4pgx"
+ }
+ },
+ {
+ "ename": "cnfonts",
+ "commit": "0d5787ffeeee68ffa41f3e777071815084e0ed7a",
+ "sha256": "1pryn08fkdrdj7w302205nj1qhfbk1jzqxx6717crrxakkdqmn9w",
+ "fetcher": "github",
+ "repo": "tumashu/cnfonts",
+ "unstable": {
+ "version": [
+ 20200819,
+ 543
+ ],
+ "commit": "d4d303b0045b682b9e699e63fa3af4dd00daf878",
+ "sha256": "06gcm7wc1ayz0z2fqz3bqyfxqlgbx31z95gwbwjd9x2mqgkp02mh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 1
+ ],
+ "commit": "cbe1ddd49e33b790a568c55351146aa5b909f173",
+ "sha256": "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"
+ }
+ },
+ {
+ "ename": "cobalt",
+ "commit": "b2435d98e7564d333c8224b67ac6ad9c95debda1",
+ "sha256": "0r3fx1xx24x4qapbj2p8krc67rjmrjm88y89baf1x2swk7xdza92",
+ "fetcher": "github",
+ "repo": "cobalt-org/cobalt.el",
+ "unstable": {
+ "version": [
+ 20180304,
+ 1155
+ ],
+ "commit": "634ace275697e188746ca22a30ff94380ec756be",
+ "sha256": "1mrydmzldgabkkdpmlwfrfb6iddj4by7scc14k9bak5y6hj6ix7l"
+ }
+ },
+ {
+ "ename": "cobra-mode",
+ "commit": "e986942c391f50fb633097f2f31969a8aeecb99e",
+ "sha256": "11jscpbclxlq2xqy2nsfa4y575bp8h0kpkp8cfjqb05lm5ybcp89",
+ "fetcher": "github",
+ "repo": "Nekroze/cobra-mode",
+ "unstable": {
+ "version": [
+ 20140116,
+ 2116
+ ],
+ "commit": "acd6e53f6286af5176471d01f25257e5ddb6dd01",
+ "sha256": "1sx8grp3j7zcma3nb7zj6kijkdqx166vw1qgmm29hvx48bys6vlp"
+ }
+ },
+ {
+ "ename": "codcut",
+ "commit": "0fcd1c7a483dd377674a71a07fd86297f05cc83b",
+ "sha256": "1pmbsv7pzmlbkfcw4ihpi5k7pgcrwlcg1hp0wkhkii8w61dq62x6",
+ "fetcher": "github",
+ "repo": "codcut/codcut-emacs",
+ "unstable": {
+ "version": [
+ 20190915,
+ 1009
+ ],
+ "commit": "7ca7db69e8c38ec45eb572ad16ab2b56086f2131",
+ "sha256": "1jfglmsknvyh3srqn7m6yr02j7n8xa7iznzyhhr34mwg2q71ihzr"
+ }
+ },
+ {
+ "ename": "code-archive",
+ "commit": "a8d0832eff966874d90e1d5ac1043c03e96b1c25",
+ "sha256": "0rj7cvwzhgam25jxjw5aqx9cxa86008gx2mwcyjlbnjrkhcbi97a",
+ "fetcher": "github",
+ "repo": "mschuldt/code-archive",
+ "unstable": {
+ "version": [
+ 20190612,
+ 308
+ ],
+ "commit": "1ad9af6679d0294c3056eab9cad673f29c562721",
+ "sha256": "0s0zakrmbx9gr7ippnyqngc09xj9f7bsv0mv11p062a8pkilg219"
+ }
+ },
+ {
+ "ename": "code-library",
+ "commit": "197bdc508c4fd9712125553a108ca6c9fedcaefc",
+ "sha256": "0gi8lz2q0vis4nyziykq15jp3m3vykfwycbk6amhf1ybkn9k3ywj",
+ "fetcher": "github",
+ "repo": "lujun9972/code-library",
+ "unstable": {
+ "version": [
+ 20160426,
+ 1218
+ ],
+ "deps": [
+ "gist"
+ ],
+ "commit": "32d59c5c845d6dbdda18f9bd1c03a58d55417fc5",
+ "sha256": "1n00bb39jgx02zdgla85zx0a338xir0zh0af6xca14kg5bx07vsv"
+ }
+ },
+ {
+ "ename": "code-stats",
+ "commit": "20af5580926e9975605c0a245f6ac15c25f4921e",
+ "sha256": "0mwjlhpmrbh3mbw3hjlsbv1fr4mxh068c9g0zcxq7wkksxx707if",
+ "fetcher": "github",
+ "repo": "xuchunyang/code-stats-emacs",
+ "unstable": {
+ "version": [
+ 20200216,
+ 2020
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "0d5be395d4233ea533e6eddf50af725c51304205",
+ "sha256": "12b2skhp9x17ffh1jxpl0nw7cybq9a2iyqmp3fwmvrr51mdg6va1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "20d60ded0743f01206c3c2e92ab73788def9adcb",
+ "sha256": "0g8pqqpwmc646krdpfkri8q7pwnj8sb3pma5mfkwg8lvj6ddcx27"
+ }
+ },
+ {
+ "ename": "codebug",
+ "commit": "35cd654bd7b390518eb5ddca8842bdfcc9e9e6f1",
+ "sha256": "1cb2wvawp3wqslhgbmbw9xwcqgwfscqg0jfgqzi3nr42mjp9zgqj",
+ "fetcher": "github",
+ "repo": "shano/emacs-codebug",
+ "unstable": {
+ "version": [
+ 20140929,
+ 2137
+ ],
+ "commit": "ac0e4331ba94ccb5203fa492570e1ca6b90c3d52",
+ "sha256": "11v671c4338bsizbmm7ypp4x9s5hiwyddsg2ig6h157gfv2597pp"
+ }
+ },
+ {
+ "ename": "codesearch",
+ "commit": "0da1c6971ac2d3e9ee67731d00a9e8ca2d169826",
+ "sha256": "1zm7fqwiknk07c8aks1silnkxifkfbdzvbzg77wrap48k8mnw03l",
+ "fetcher": "github",
+ "repo": "abingham/emacs-codesearch",
+ "unstable": {
+ "version": [
+ 20181006,
+ 1431
+ ],
+ "deps": [
+ "log4e"
+ ],
+ "commit": "f6eb96f034a925444412cfa03e45e0ccbbafe3f2",
+ "sha256": "1xdkm1f04z1h3ivd6zm8hckf3n3fbi5rwybg4dwi5mim6w84i7j9"
+ }
+ },
+ {
+ "ename": "codic",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "05pa2a74c4ra7qqv3da3bx623vf36qrk5dm1jx1a4x1vbpgv5mz0",
+ "fetcher": "github",
+ "repo": "emacsorphanage/codic",
+ "unstable": {
+ "version": [
+ 20150926,
+ 1127
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "52bbb6997ef4ab9fb7fea43bbfff7f04671aa557",
+ "sha256": "14jcxrs3b02pbppvdsabr7c74i3c6d1lmd6l1p9dj8gv413pghsz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "52bbb6997ef4ab9fb7fea43bbfff7f04671aa557",
+ "sha256": "14jcxrs3b02pbppvdsabr7c74i3c6d1lmd6l1p9dj8gv413pghsz"
+ }
+ },
+ {
+ "ename": "coffee-fof",
+ "commit": "9024e5a71c992509a1dea5f673a31b806d5e175e",
+ "sha256": "02cqza46qp8y69jd33cg4nmcgvrpwz23vyxqnmzwwvlmnbky96yc",
+ "fetcher": "github",
+ "repo": "yasuyk/coffee-fof",
+ "unstable": {
+ "version": [
+ 20131012,
+ 1230
+ ],
+ "deps": [
+ "coffee-mode"
+ ],
+ "commit": "211529594bc074721c6cbc4edb73a63cc05f89ac",
+ "sha256": "010v886ak0rbbhqwxwj6m0mkgh19s232igy7wwbv07l2pdqszf3p"
+ }
+ },
+ {
+ "ename": "coffee-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1px50hs0x30psa5ljndpcc22c0qwcaxslpjf28cfgxinawnp74g1",
+ "fetcher": "github",
+ "repo": "defunkt/coffee-mode",
+ "unstable": {
+ "version": [
+ 20200315,
+ 1133
+ ],
+ "commit": "35a41c7d8233eac0b267d9593e67fb8b6235e134",
+ "sha256": "11jppi95j9229qmj1747kfa602640kjz1xf5254ph3nhljxb0nsv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "adfb7ae73d6ee2ef790c780dd3c967e62930e94a",
+ "sha256": "0yhmg5j051mviqp5laz7y1zjs1w9ykbbxqm7vrgf2py0hpd1kcrg"
+ }
+ },
+ {
+ "ename": "coin-ticker",
+ "commit": "fd783998658b69159e39d9440da7a0dd04135e49",
+ "sha256": "0v4zyswhghknlsal9xfsgwf8ckjwrjkjrg8w7p6yjqrxmfsbw93b",
+ "fetcher": "github",
+ "repo": "eklitzke/coin-ticker-mode",
+ "unstable": {
+ "version": [
+ 20170611,
+ 727
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "9efab90fe4e6f29464af14e0d8fd1e20c0147b80",
+ "sha256": "0xnrh6v4s2s3fgvw0v9fl48dlk4r2p6axp7xf41gzb1ai81yczhv"
+ }
+ },
+ {
+ "ename": "colemak-evil",
+ "commit": "0f0750a3f9537782ee61d6e56c51ce7b86def12e",
+ "sha256": "1bfzs5px1k6g3cnwjdaq2m78bbnfy3lxhjzkcch7zdv3nyacwl5z",
+ "fetcher": "github",
+ "repo": "patbl/colemak-evil",
+ "unstable": {
+ "version": [
+ 20200326,
+ 2359
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "981bdcb1a48c6d9139493abe7e25fabe126e43c3",
+ "sha256": "0dqyqaqr71z4mipb4g5jxdw96lzb108fd5w4wi27023hfll3j1hc"
+ }
+ },
+ {
+ "ename": "colonoscopy-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "0x9bfr4j0sp41jkgnyjlaxnnjjrc102x6sznn6cgcmqk5qhswl4q",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-colonoscopy-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1309
+ ],
+ "commit": "64bbb322b13dae91ce9f1e3581f836f94f800ead",
+ "sha256": "1r0is6zjkzikm565fvmj0gx8ms5ig9l5xihnka4fig7jy6ak33z5"
+ }
+ },
+ {
+ "ename": "color-identifiers-mode",
+ "commit": "5c735755e414fdf169aca5ec6f742533d21472e0",
+ "sha256": "1hxp8lzn7kfckn5ngxic6qiz3nbynilqlxhlq9k1n1llfg216gfq",
+ "fetcher": "github",
+ "repo": "ankurdave/color-identifiers-mode",
+ "unstable": {
+ "version": [
+ 20200705,
+ 2145
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "dfca97595094fc192a04172d86cb4ba68cab984f",
+ "sha256": "1w9biijvqr7ig7l3j6axbnmdn44xvyj3m8yinx0d6qqyys98hgyj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "536151410dbb198b328dc62b829d9692cec0b1bd",
+ "sha256": "1zwgyp65jivds9zvbp5k5q3gazffh3w0mvs739ddq93lkf165rwh"
+ }
+ },
+ {
+ "ename": "color-moccur",
+ "commit": "19105272fd8def5c7b22bfe5eeed5212e6ccae9c",
+ "sha256": "17b9walfc5c9qfdvl9pcwb2gjikc3wxk1d3v878ckypmxd38vciq",
+ "fetcher": "github",
+ "repo": "myuhe/color-moccur.el",
+ "unstable": {
+ "version": [
+ 20141223,
+ 35
+ ],
+ "commit": "4f1c59ffd1ccc2ab1a171cd6b721e8cb9e002fb7",
+ "sha256": "1p1f30qz4nd5a8ym2iwrgp6vhws0dls2qlc0apblj9nj3b0ziv0x"
+ }
+ },
+ {
+ "ename": "color-theme",
+ "commit": "90fc6a19838f8e5ffe3b96747784d2f5628f7434",
+ "sha256": "0sgjyiqi65ylvd926ywfjzh752bpch3szvx4z3la1r9gpkrnwspd",
+ "fetcher": "github",
+ "repo": "emacsattic/color-theme",
+ "unstable": {
+ "version": [
+ 20190220,
+ 1115
+ ],
+ "commit": "3a2f6b615f5e2401e30d93a3e0adc210bbb4b7aa",
+ "sha256": "09imx996afh3j207163kg8sc92hd7wljkpban1pnn6f67bgyrvlv"
+ }
+ },
+ {
+ "ename": "color-theme-approximate",
+ "commit": "f10631b740eea56e7209d7e84f0da8613274ef1d",
+ "sha256": "1wdnia9q42x7vky3ks555iic5s50g4mx7ss5ppaljvgxvbxyxqh1",
+ "fetcher": "github",
+ "repo": "tungd/color-theme-approximate",
+ "unstable": {
+ "version": [
+ 20140228,
+ 436
+ ],
+ "commit": "f54301ca39bc5d2ffb000f233f8114184a3e7d71",
+ "sha256": "1b0ymwszqsjcihcbfp7s4fjam983ixh3yb7sdc0rmqlyric1zwxq"
+ }
+ },
+ {
+ "ename": "color-theme-buffer-local",
+ "commit": "e43060d80b3345ef4e8df9f5a9d66af8a44a9c41",
+ "sha256": "1448rffyzn5k5mr31hwd28wlj7if7rp5sjlqcsvbxd2mnbgkgjz0",
+ "fetcher": "github",
+ "repo": "vic/color-theme-buffer-local",
+ "unstable": {
+ "version": [
+ 20170126,
+ 601
+ ],
+ "deps": [
+ "color-theme"
+ ],
+ "commit": "e606dec66f16a06140b9aad625a4fd52bca4f936",
+ "sha256": "0c04fy3hc8wc0aabilqx9mcipmd41rmshqjxc3z8m1w0bm4288g1"
+ }
+ },
+ {
+ "ename": "color-theme-modern",
+ "commit": "2db82e101916d8709b711034da5ca6e4072e1077",
+ "sha256": "0f662ham430fgxpqw96zcl1whcm28cv710g6wvg4fma60sblaxcm",
+ "fetcher": "github",
+ "repo": "emacs-jp/replace-colorthemes",
+ "unstable": {
+ "version": [
+ 20200729,
+ 921
+ ],
+ "commit": "a996eca37f4df726eec95406deb76b538320771a",
+ "sha256": "1fgcd6vdqknqb1s1hwqqspk84a8xnxmrcnlic1j0x558i2yj4l2x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "4f7da6f955f7c584c5dfab2dc170f9a3debd80f8",
+ "sha256": "08wmllq3smg7cp7jspmvd67z5vzmxvi136c6j87r1gsgprhgmhw4"
+ }
+ },
+ {
+ "ename": "color-theme-sanityinc-solarized",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0xg79hgb893f1nqx6q4q6hp4w6rvgp1aah1v2r3scg2jk057qxkf",
+ "fetcher": "github",
+ "repo": "purcell/color-theme-sanityinc-solarized",
+ "unstable": {
+ "version": [
+ 20200805,
+ 603
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7ef39ac9d99bfb699903cfc3623521c0ceec7b86",
+ "sha256": "18x1hhq5v9agv2gvragwvxgzxfixfqy8pcbqhi63yqxmx30zlqj1"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 29
+ ],
+ "commit": "554e941131d009c0a5d7129ed96796182b4cc590",
+ "sha256": "13jmg05skv409z8pg5m9rzkajj9knyln0ff8a3i1pbpyrnpngmmc"
+ }
+ },
+ {
+ "ename": "color-theme-sanityinc-tomorrow",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1k8iwjc7iidq5sxybs47rnswa6c5dwqfdzfw7w0by2h1id2z6nqd",
+ "fetcher": "github",
+ "repo": "purcell/color-theme-sanityinc-tomorrow",
+ "unstable": {
+ "version": [
+ 20200813,
+ 333
+ ],
+ "commit": "b7e33d1ccb10a93d6a0393c43400435b70a48689",
+ "sha256": "1qg5wz04d7kq63zsjbhdcxn96j6x84hsbj7vbx6d051yql6l3m8s"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 17
+ ],
+ "commit": "81d8990085960824f700520d08027e6aca58feaa",
+ "sha256": "1x3aq6hadp158vh8mf9hmj5rikq0qz7a1frv7vbl39xr3wcnjj23"
+ }
+ },
+ {
+ "ename": "color-theme-x",
+ "commit": "321900baf4149f8b58b075b9fb27716cf708f2a2",
+ "sha256": "0nb2hqmmj1rhqjcbv5m8r9g2bf993lp45ka9rrxqp0pkmyd9fvs2",
+ "fetcher": "github",
+ "repo": "ajsquared/color-theme-x",
+ "unstable": {
+ "version": [
+ 20180227,
+ 46
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6c2264aa6c5d9a72caeae67ebaa4472090e70350",
+ "sha256": "1fyz8bampcqzpbyg0l1g0nvv2m5n8000xy5yl05217dlxb448nnd"
+ }
+ },
+ {
+ "ename": "colorless-themes",
+ "commit": "996d2a04de493d6ce8f5638df4500774010dcfe9",
+ "sha256": "1f3yz20379hx7gb5621apd1qvfv8kapgkcpni06p870w5p7ppmcl",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~lthms/colorless-themes.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 656
+ ],
+ "commit": "736f7a105535901b4783d19534e7855920e25115",
+ "sha256": "1wi7wxiyk0g3k0l60hdmcyvvxr1kaapbkxvkknwd9qvdsji0ng73"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "8e539097185704444a5dd5545924de92c11ba767",
+ "sha256": "1p16vxai8dj1vy4ahflwij1ldx00jzrjcinpgpc7wgh6ka748v11"
+ }
+ },
+ {
+ "ename": "colormaps",
+ "commit": "f4c795d9e323b08bc8354a6933a061644705a2ec",
+ "sha256": "16plhgpfz1wb58p6h8wxjhplhgv0mbj3f2xj34p6vydh44l8w8q2",
+ "fetcher": "github",
+ "repo": "lepisma/colormaps.el",
+ "unstable": {
+ "version": [
+ 20171008,
+ 2224
+ ],
+ "commit": "19fbb64a6288d505b9cf45c9b5a3eed0bfb135e2",
+ "sha256": "0kbhy8bpxqdr1kjczz2vm7chfpjprx2frpbh1gh9i1gwwx5k4myp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "3a88961ba66b09a49ea5aa92b2b8776b2c92d68c",
+ "sha256": "083hks2zzalizdsgabiwc1kd114r748v5i3w3kfk8pv37i2gay35"
+ }
+ },
+ {
+ "ename": "column-enforce-mode",
+ "commit": "91bebef8e97665a5d076c557d559367911a25ea2",
+ "sha256": "1qh7kwr65spbbnzvq744gkksx50x04zs0nwn5ly60swc05d05lcg",
+ "fetcher": "github",
+ "repo": "jordonbiondo/column-enforce-mode",
+ "unstable": {
+ "version": [
+ 20200605,
+ 1933
+ ],
+ "commit": "14a7622f2268890e33536ccd29510024d51ee96f",
+ "sha256": "1vxra5vk78yns2sw89m41bggczqg1akq6xvzfs9kylhkg5yz3g7g"
+ }
+ },
+ {
+ "ename": "com-css-sort",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "11cdp3cgcwwi06njjpwryh3vwmkdh2rzlin77p630590bynagw8c",
+ "fetcher": "github",
+ "repo": "jcs-elpa/com-css-sort",
+ "unstable": {
+ "version": [
+ 20200717,
+ 338
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "e12f77ad3a17a0d599ca802497086cd9155d451b",
+ "sha256": "1i0pg3hzw87drvfivr1355h3rfp409ak57bff9la8qlx1llynv5y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "e12f77ad3a17a0d599ca802497086cd9155d451b",
+ "sha256": "1i0pg3hzw87drvfivr1355h3rfp409ak57bff9la8qlx1llynv5y"
+ }
+ },
+ {
+ "ename": "comb",
+ "commit": "1b236a1f3953475cbd7eb5c4289b092818ae08cf",
+ "sha256": "0n4pkigr07hwj5nb0ngs6ay80psqv7nppp82rg5w38qf0mjs3pkp",
+ "fetcher": "github",
+ "repo": "cyrus-and/comb",
+ "unstable": {
+ "version": [
+ 20200411,
+ 1040
+ ],
+ "commit": "59e025c3afb867706b869ac4bf2623665eb99821",
+ "sha256": "16swixv88nbs6gscgzy5lizi66pw0c9fm03xpm1kinan8v2s9m3v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "8a68d313bf429763eb8aa78ece00230a668f2a1f",
+ "sha256": "1hh1lkan1ch5xyzrpfgzibf8dxmvaa1jfwlxyyhpnfs5h69h3245"
+ }
+ },
+ {
+ "ename": "comby",
+ "commit": "1173462e86ec0518cd6bab241fea3fe0342c4b41",
+ "sha256": "0wipqvdsmjhg4kvqcgarix955m9v8fs1lccs002f03rz4ckfdpxf",
+ "fetcher": "github",
+ "repo": "s-kostyaev/comby.el",
+ "unstable": {
+ "version": [
+ 20200629,
+ 140
+ ],
+ "commit": "928b8b8959a2556aba5526f2a25801341eb59dc3",
+ "sha256": "1f0155fyvh1m20ahl6wqask4qx6jp3lfwxj894cda9j4y8gnr5iq"
+ }
+ },
+ {
+ "ename": "comint-hyperlink",
+ "commit": "3c3bc7c897bfc5fafcda33d9837e6f3ff4da3692",
+ "sha256": "17fvg00r2wjwxa747v8yvgv70rd287crhhxxmp6nchfklw408ai6",
+ "fetcher": "github",
+ "repo": "matthewbauer/comint-hyperlink",
+ "unstable": {
+ "version": [
+ 20191104,
+ 2224
+ ],
+ "commit": "a7878825788ff6b9d6b8a5adf0214a028bad895e",
+ "sha256": "19fww5aciqx4h67hpmzf564n0ygzg69v1sk1qjyhbs27pq5zrjmq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 6
+ ],
+ "commit": "a7878825788ff6b9d6b8a5adf0214a028bad895e",
+ "sha256": "19fww5aciqx4h67hpmzf564n0ygzg69v1sk1qjyhbs27pq5zrjmq"
+ }
+ },
+ {
+ "ename": "comint-intercept",
+ "commit": "7d38188ec2d6e16714de9bb24ebd1ea89c7df3da",
+ "sha256": "1m2fn02n7aphlqmiaxgwp8jqg60sq4001cnkdxn5wb3w1hxy5qvq",
+ "fetcher": "github",
+ "repo": "hying-caritas/comint-intercept",
+ "unstable": {
+ "version": [
+ 20200106,
+ 454
+ ],
+ "commit": "3c9a6125e450435b79ab5e6466f830e57c5e0a30",
+ "sha256": "06cvphbnhb89h4ss3y87lladb0dcsrkij8pfv65ky06brc1jl0hx"
+ }
+ },
+ {
+ "ename": "command-log-mode",
+ "commit": "8426ca3c543178018f7feae6f0076af67a898483",
+ "sha256": "11jq6055bvpwvrm0b8cgab25wa2mcyylpz4j56h1nqj7cnhb6ppj",
+ "fetcher": "github",
+ "repo": "lewang/command-log-mode",
+ "unstable": {
+ "version": [
+ 20160413,
+ 447
+ ],
+ "commit": "af600e6b4129c8115f464af576505ea8e789db27",
+ "sha256": "06hll2frlx4sg9fj13a7ipq9y24isbjkjm6034xswhak40m7g1ii"
+ }
+ },
+ {
+ "ename": "command-queue",
+ "commit": "8fd6a70036e88039c850d280fbac782d04790a5f",
+ "sha256": "1jaywdg8vcf1v6ayy1zd5mjs0x3s96845ig9ssb08397lfqasx1k",
+ "fetcher": "github",
+ "repo": "Yuki-Inoue/command-queue",
+ "unstable": {
+ "version": [
+ 20160328,
+ 1725
+ ],
+ "commit": "f327c6f852592229a755ec6de0c62c6aeafd6659",
+ "sha256": "0216hzdl4h1jssw5g2y95z4yx7abqsaxpk1s78r35w5cnx7kplrc"
+ }
+ },
+ {
+ "ename": "commander",
+ "commit": "8b308e05dd85856addbc04a9438f5026803cebd7",
+ "sha256": "17y0hg6a90hflgwn24ww23qmvc1alzivpipca8zvpf0nih4fl393",
+ "fetcher": "github",
+ "repo": "rejeep/commander.el",
+ "unstable": {
+ "version": [
+ 20140120,
+ 1852
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "9ba1456b0a389a2f7b42b6f42a4208ddd87ce609",
+ "sha256": "1kj7w8akrybr1y30lbhax8dnk5m4fg365ifxlyw766v69g5x7zd2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "2c8a57b9c619e29ccbe2d5a85921b9c689e95bf9",
+ "sha256": "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"
+ }
+ },
+ {
+ "ename": "comment-dwim-2",
+ "commit": "4ac6ac97875117013515a36c9a4452fbd6c0d74c",
+ "sha256": "1w9w2a72ygsj5w47vjqcljajmmbz0mi8dhz5gjnpwxjwsr6fn6lj",
+ "fetcher": "github",
+ "repo": "remyferre/comment-dwim-2",
+ "unstable": {
+ "version": [
+ 20190105,
+ 1653
+ ],
+ "commit": "3dfdd58495c46a37708344a57c5c52beca6b2c1c",
+ "sha256": "08pi3y12i6wx69aj09nk5qd6lplwxq5wz3m7w5701988q39x62xl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "commit": "3dfdd58495c46a37708344a57c5c52beca6b2c1c",
+ "sha256": "08pi3y12i6wx69aj09nk5qd6lplwxq5wz3m7w5701988q39x62xl"
+ }
+ },
+ {
+ "ename": "comment-or-uncomment-sexp",
+ "commit": "d1e87e59e1a7c7c7d6eab7dd6b37114e567e5c13",
+ "sha256": "150gg1i593wgfzy0bg8jwgfc7a6hjnz84m2digjf3fpggvwv0rf8",
+ "fetcher": "github",
+ "repo": "Malabarba/comment-or-uncomment-sexp",
+ "unstable": {
+ "version": [
+ 20190225,
+ 1122
+ ],
+ "commit": "bec730d3fc1e6c17ff1339eb134af16c034a4d95",
+ "sha256": "1jhyr854qraza75hjza8fjz2s06iydmdsa61vf5bf2kj5g1bfqkj"
+ }
+ },
+ {
+ "ename": "comment-tags",
+ "commit": "6ac71f4ffc19bce4f571001f9270d5be855dfc3c",
+ "sha256": "13slv150zch0b7zpxa2dbqjzpqh0iy559m6rc0zs0dwdagzryp3i",
+ "fetcher": "github",
+ "repo": "vincekd/comment-tags",
+ "unstable": {
+ "version": [
+ 20170910,
+ 1735
+ ],
+ "commit": "7d914097f0a03484af71e621db533737fc692f58",
+ "sha256": "0s86a7078arck9z4gzkp2hnxyklprl0zh5hsw7nkyyscjydly80i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "293a30026d7750f6657d6c2e6d6428abf1d7db5a",
+ "sha256": "06s0phgqpzkkv81gl0cm6x8rjs53lhs8b2j56xamflqiydq0fz7n"
+ }
+ },
+ {
+ "ename": "commentary-theme",
+ "commit": "852b5f83c9870209080d2ed39fede3215ae43e64",
+ "sha256": "1s3g40f0r0v8m1qqldvw64vs43i5xza7rwkvhxqcqmj6p1a7mqqw",
+ "fetcher": "github",
+ "repo": "pzel/commentary-theme",
+ "unstable": {
+ "version": [
+ 20181213,
+ 1045
+ ],
+ "commit": "dede0f8ecb72156fa6ae81198ea570ead02997ff",
+ "sha256": "1ykicd6yp495s7795mlfwd54lp0427j8mw6ajbqsw2c2w0f7jcjr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "commit": "9a825ae98166c9dbbf106e7be62ee69dd9f0342f",
+ "sha256": "1x30iyvvxggbh7xvp8lwpirvpqijchqf2fdaw4xrlbw5vajlaxcx"
+ }
+ },
+ {
+ "ename": "commenter",
+ "commit": "437afab17b22c0c559617afa06923b5bc73a3ae8",
+ "sha256": "01bm8jbj6xw23nls4fps6zwjkgvcsjhmn3l3ncqd764kwhxdx8q3",
+ "fetcher": "github",
+ "repo": "yuutayamada/commenter",
+ "unstable": {
+ "version": [
+ 20160219,
+ 1627
+ ],
+ "deps": [
+ "let-alist"
+ ],
+ "commit": "6d1885419434ba779270c6fda0e30d390bb074bd",
+ "sha256": "1jwd3whag39qhzhbsfivzdlcr6vj37dv5ychkhmilw8v6dfdnpdb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 2
+ ],
+ "deps": [
+ "let-alist"
+ ],
+ "commit": "6d1885419434ba779270c6fda0e30d390bb074bd",
+ "sha256": "1jwd3whag39qhzhbsfivzdlcr6vj37dv5ychkhmilw8v6dfdnpdb"
+ }
+ },
+ {
+ "ename": "commify",
+ "commit": "fec4b048e1dc78a07acce7d2e6527b9f417d06d5",
+ "sha256": "1jc6iqa4hna3277hx13scfcqzkr43yv6gndbxv7qf4ydi01ysd0m",
+ "fetcher": "github",
+ "repo": "ddoherty03/commify",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1241
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "92514f071c667653f146629c0aec0ab4d3b78226",
+ "sha256": "1n6jpkhq0kncsszkkpfi923zq75h3d032vwmlz7pp8szs93w2308"
+ }
+ },
+ {
+ "ename": "common-lisp-snippets",
+ "commit": "48d0166ccd3dcdd3df4719349778c6c5ab6872ca",
+ "sha256": "0ig8cz00cbfx0jckqk1xhsvm18ivl2mjvcn65s941nblsywfvxjl",
+ "fetcher": "github",
+ "repo": "mrkkrp/common-lisp-snippets",
+ "unstable": {
+ "version": [
+ 20180226,
+ 1523
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "c82ebf18f4ad49f390dd96ffcc59f8683c1a868b",
+ "sha256": "0xz4jv0l7vgq7rivx8c1m3hahyyk7cj9cadrq3rg9rybhzski57d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "fc5c2683952328927a6d1c1f2694b85ddf7e9053",
+ "sha256": "1835kg05794p1wdi7fsmpzlnnqy79dgfnfrxjfjj2j1gzcwmynsw"
+ }
+ },
+ {
+ "ename": "company",
+ "commit": "96e7b4184497d0d0db532947f2801398b72432e4",
+ "sha256": "0v4x038ly970lkzb0n8fbqssfqwx1p46xldr7nss32jiqvavr4m4",
+ "fetcher": "github",
+ "repo": "company-mode/company-mode",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1753
+ ],
+ "commit": "54f60ef523878c4d332f29df380f36cf2f165935",
+ "sha256": "08lbjvm97fh1bm5201ncbnr5b1456y9mwf6yhrrhg1rjqvcca74q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 13
+ ],
+ "commit": "656ad10670512e135a0a5881f127bb7a789ef8ca",
+ "sha256": "1j5f8kqv36r18pg09a6139q7a0a39xdnc5nf6sv3c0pw3yfw1szn"
+ }
+ },
+ {
+ "ename": "company-anaconda",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "0kq8vh4i92n0b42jyy8a2ra2jk27l6hmzq8r2hsyl6zj7qqzymrx",
+ "fetcher": "github",
+ "repo": "pythonic-emacs/company-anaconda",
+ "unstable": {
+ "version": [
+ 20200404,
+ 1859
+ ],
+ "deps": [
+ "anaconda-mode",
+ "cl-lib",
+ "company",
+ "dash",
+ "s"
+ ],
+ "commit": "da1566db41a68809ef7f91ebf2de28118067c89b",
+ "sha256": "1x260p0fj33xg6hkrz9q9dqrpibp4yn2n9is3a6s4xxfb485rz0g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "anaconda-mode",
+ "cl-lib",
+ "company",
+ "dash",
+ "s"
+ ],
+ "commit": "182a8fdabc01630f255beeb2708728c0cd5c6316",
+ "sha256": "1rqf9i4l32njpwx4aiwxqr994g3jzispwprs6nwjfvg70xkvm4m0"
+ }
+ },
+ {
+ "ename": "company-ansible",
+ "commit": "7b44cd4bd9f9a7c942ca3f3bd88b2ce61ffff130",
+ "sha256": "084l9dr2hvm00952y4m3jhchzxjhcd61sfn5ywj9b9a1d4sr110d",
+ "fetcher": "github",
+ "repo": "krzysztof-magosa/company-ansible",
+ "unstable": {
+ "version": [
+ 20200306,
+ 1441
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "79dd421b161efa49fbdffad57fa40edb41f484a3",
+ "sha256": "0b05n6m47vyhirxfqzapzl4gf179aks1296qsw1sw8v84kb5kl0x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 0
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "2ea0be24f003dc64a30412df76298152be29103c",
+ "sha256": "1h3cl975k7lbk8x0r0f2yjw8nc5w455npc3nn4jx5nynirvz3i7n"
+ }
+ },
+ {
+ "ename": "company-arduino",
+ "commit": "45350f816c4f5249792d29f97ef91f8c0685b983",
+ "sha256": "1bch447lllikip1xd90kdgssgc67sl04a70fxqkqlrc1bs6gkkws",
+ "fetcher": "github",
+ "repo": "yuutayamada/company-arduino",
+ "unstable": {
+ "version": [
+ 20160306,
+ 1739
+ ],
+ "deps": [
+ "arduino-mode",
+ "cl-lib",
+ "company",
+ "company-c-headers",
+ "company-irony",
+ "irony"
+ ],
+ "commit": "d7e369702b8eee63e6dfdeba645ce28b6dc66fb1",
+ "sha256": "06v7y7gxlxrxdaqy8c93niy1di80r738cq7rkghnhqi174pwl1wv"
+ }
+ },
+ {
+ "ename": "company-auctex",
+ "commit": "189e1a60894db0787a4468b120fbab84be1b5d59",
+ "sha256": "1jia80sqmm83kzjcf1h1d9iz2k4k9albzvfka5hx6hpa4h8nm5q4",
+ "fetcher": "github",
+ "repo": "alexeyr/company-auctex",
+ "unstable": {
+ "version": [
+ 20200529,
+ 1835
+ ],
+ "deps": [
+ "auctex",
+ "company",
+ "yasnippet"
+ ],
+ "commit": "9400a2ec7459dde8cbf1a5d50dfee4e300ed7e18",
+ "sha256": "0x8qc63zn126hspcblwlihxfzs8kvcjb6cpj28ahsb0117j2i789"
+ }
+ },
+ {
+ "ename": "company-axiom",
+ "commit": "8b4c6b03c5ff78ce327dcf66b175e266bbc53dbf",
+ "sha256": "061n8zn11r5a9m96sqnw8kx252n1m401cmcyqla8n9valjbnvsag",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/pdo/axiom-environment",
+ "unstable": {
+ "version": [
+ 20191027,
+ 1928
+ ],
+ "deps": [
+ "axiom-environment",
+ "company"
+ ],
+ "commit": "25932da0dc40c6877463cbf019b14ab05a6b0164",
+ "sha256": "1xbps0k4x982gh1a0pscpx4kayjjyykvm5pyj516wwkya7bac4a6"
+ }
+ },
+ {
+ "ename": "company-bibtex",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1b96p5qyxl6jlq0kz0dbma5pwvgqcy4x4gmpknjqrjabafbq1ynn",
+ "fetcher": "github",
+ "repo": "gbgar/company-bibtex",
+ "unstable": {
+ "version": [
+ 20171105,
+ 644
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "parsebib"
+ ],
+ "commit": "da67faf3a6faba8e7f1b222dedfc5521b02c7655",
+ "sha256": "0p1kwcpjd2rya6dlp1w48pxd5x0qxyyamrfzwha5wbd5y7m2lh62"
+ }
+ },
+ {
+ "ename": "company-box",
+ "commit": "a54879f4dd4dcb6867680567731547d604ad02bb",
+ "sha256": "0v39gja3jp8b2xfn9da93xsh8mihizwbg0gqp2yyczaxjm8ga23i",
+ "fetcher": "github",
+ "repo": "sebastiencs/company-box",
+ "unstable": {
+ "version": [
+ 20200818,
+ 738
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "20384f0e382c063173b9d863344b1b23bc1e4954",
+ "sha256": "0l66ajzh1x0gazmv9nzgcsy72kyja3yq4gmzgzpkgin5dxms33k0"
+ }
+ },
+ {
+ "ename": "company-c-headers",
+ "commit": "d97b5c53967e0ff767b3654c52622f4b5ddf1985",
+ "sha256": "1715vnjr5cjiq8gjcd3idnpnijg5cg3sw3f8gr5x2ixcrip1hx3a",
+ "fetcher": "github",
+ "repo": "randomphrase/company-c-headers",
+ "unstable": {
+ "version": [
+ 20190825,
+ 1631
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "5e676ab0c2f287c868b1e3931afd4c78895910cd",
+ "sha256": "18zyzhjnlbwblgqgr876ynrc7k736lg5s6bgxmxph7gymdz4fb4h"
+ }
+ },
+ {
+ "ename": "company-cabal",
+ "commit": "ee888b1ba57b6af3a3330607898810cd248862db",
+ "sha256": "0pbjidj88c9qri6xw8023yqwnczad5ig224cbsz6vsmdla2nlxra",
+ "fetcher": "github",
+ "repo": "iquiw/company-cabal",
+ "unstable": {
+ "version": [
+ 20170917,
+ 1317
+ ],
+ "deps": [
+ "cl-lib",
+ "company"
+ ],
+ "commit": "62112a7259e24bd6c08885629a185afe512b7d3d",
+ "sha256": "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "company"
+ ],
+ "commit": "f458de88cad16ed48a605e8347e56433e73dcef8",
+ "sha256": "0ll9dxzsgrpy4psz3dqhzny990lfccn63swcyfvl8mnqgwbrq8k0"
+ }
+ },
+ {
+ "ename": "company-coq",
+ "commit": "7f89e3097c654774981953ef125679fec0b5b7c9",
+ "sha256": "1iagm07ckf60kg4i8m4n0gfmv0brqc4dcn7lkcz229r3f4kyqksa",
+ "fetcher": "github",
+ "repo": "cpitclaudel/company-coq",
+ "unstable": {
+ "version": [
+ 20200729,
+ 401
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "company-math",
+ "dash",
+ "yasnippet"
+ ],
+ "commit": "b096cb528de1e0bb31cc1059d0bd698b98a6cc6a",
+ "sha256": "0m70w4f0kpvk97nnnp1bfk191dhipv418fmcfqjw90sajknyhq6m"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "company-math",
+ "dash",
+ "yasnippet"
+ ],
+ "commit": "a4e0625725e4f54d202e746bb41b8bc14c14ddef",
+ "sha256": "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"
+ }
+ },
+ {
+ "ename": "company-ctags",
+ "commit": "b548dbf4a388d2f69205786351a1d4336e0c0e88",
+ "sha256": "17j7cl5b6vd7ymbci83s0nfs8zn4h8zvir57cp9wl2z5wcjyxzcn",
+ "fetcher": "github",
+ "repo": "redguardtoo/company-ctags",
+ "unstable": {
+ "version": [
+ 20200603,
+ 438
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "ba4d2577fbbe5ad7bb978838e3e3177f8a56e8f8",
+ "sha256": "0cy48my9d02v7wa40dw5x6djyjjacddj9p0pgdvr1rg70lqxii45"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "ba4d2577fbbe5ad7bb978838e3e3177f8a56e8f8",
+ "sha256": "0cy48my9d02v7wa40dw5x6djyjjacddj9p0pgdvr1rg70lqxii45"
+ }
+ },
+ {
+ "ename": "company-dcd",
+ "commit": "ad5be8c53911271fba03a88da7e9d518c6508ffe",
+ "sha256": "03849k4jzs23iglk9ghcq6283c9asffcq4dznypcjax7y4x113vd",
+ "fetcher": "github",
+ "repo": "tsukimizake/company-dcd",
+ "unstable": {
+ "version": [
+ 20190116,
+ 256
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "flycheck-dmd-dub",
+ "ivy",
+ "popwin",
+ "yasnippet"
+ ],
+ "commit": "11e90949e546fcff1b1cd40887ad7b6701aa1653",
+ "sha256": "1n4f2hqmvwysbb1l6c5ah58b1bq8vxznk3ysszz8rs5gpqsizqd4"
+ }
+ },
+ {
+ "ename": "company-dict",
+ "commit": "212c077def5b4933c6001056132181e1a5850a7c",
+ "sha256": "1377b40f1j4rmw7lnhy1zsm6r234ds5zsn02v1ajm3bzrpkkmin0",
+ "fetcher": "github",
+ "repo": "hlissner/emacs-company-dict",
+ "unstable": {
+ "version": [
+ 20190302,
+ 5
+ ],
+ "deps": [
+ "company",
+ "parent-mode"
+ ],
+ "commit": "cd7b8394f6014c57897f65d335d6b2bd65dab1f4",
+ "sha256": "11whnjmy5dyg4wkwabpip8hqsmqys193m7aqbd7jl4hmq24hrwsw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 8
+ ],
+ "deps": [
+ "company",
+ "parent-mode"
+ ],
+ "commit": "cd7b8394f6014c57897f65d335d6b2bd65dab1f4",
+ "sha256": "11whnjmy5dyg4wkwabpip8hqsmqys193m7aqbd7jl4hmq24hrwsw"
+ }
+ },
+ {
+ "ename": "company-distel",
+ "commit": "90fff35dd9709b06802edef89d1fe6a96b7115a6",
+ "sha256": "1jklxwkm2dvpcasmy9vl48dxq3q9s4dlk159ica39z0kqpkpzmgw",
+ "fetcher": "github",
+ "repo": "sebastiw/distel-completion",
+ "unstable": {
+ "version": [
+ 20180827,
+ 1344
+ ],
+ "deps": [
+ "distel-completion-lib"
+ ],
+ "commit": "acc4c0a5521904203d797fe96b08e5fae4233c7e",
+ "sha256": "0yvp3dwa9mwfyrqla27ycwyjad4bp1267bxv0chxcr4528hnygl3"
+ }
+ },
+ {
+ "ename": "company-emacs-eclim",
+ "commit": "1e9d3075587fbd9ca188535fd945a7dc451c6d7e",
+ "sha256": "1l56hcy0y3cr38z1pjf0ilsdqdzvj3zwd40markm6si2xhdr8xig",
+ "fetcher": "github",
+ "repo": "emacs-eclim/emacs-eclim",
+ "unstable": {
+ "version": [
+ 20180911,
+ 1121
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "eclim"
+ ],
+ "commit": "222ddd48fcf0ee01592dec77c58e0cf3f2ea1100",
+ "sha256": "0jdddf8krvg379wlay1xs27qlxpi87nz6v2i526pk59mmg8jrnvc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "eclim"
+ ],
+ "commit": "8203fbf8544e65324a948a67718f7a16ba2d52e6",
+ "sha256": "10bbbxhvlwm526g1wib1f87grnayirlg8jbsvmpzxr9nmdjgikz3"
+ }
+ },
+ {
+ "ename": "company-emoji",
+ "commit": "5733dccdffe97911a30352fbcda2900c33d79810",
+ "sha256": "1mflqqw9gnfcqjb6g8ivdfl7s4mdyjg7j0457hamgyvgvpxsh8x3",
+ "fetcher": "github",
+ "repo": "dunn/company-emoji",
+ "unstable": {
+ "version": [
+ 20200612,
+ 1902
+ ],
+ "deps": [
+ "cl-lib",
+ "company"
+ ],
+ "commit": "5f2d10623c1e9f547d852cb13c7a391afbda09fb",
+ "sha256": "0b7hfcgmrkmbi138hjfc9jsgh84slw4fcizxss55b9j60xrzsc75"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 5,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "company"
+ ],
+ "commit": "fc45b56f3e2081d794f243bce705e77d4e29fc06",
+ "sha256": "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"
+ }
+ },
+ {
+ "ename": "company-erlang",
+ "commit": "ca96ed0b5d6f8aea4de56ddeaa003b9c81d96219",
+ "sha256": "0qlc89c05523kjzsb7j3yfi022la47kgixl74ggkafhn60scwdm7",
+ "fetcher": "github",
+ "repo": "s-kostyaev/company-erlang",
+ "unstable": {
+ "version": [
+ 20170123,
+ 538
+ ],
+ "deps": [
+ "company",
+ "ivy-erlang-complete"
+ ],
+ "commit": "bc0524a16f17b66c7397690e4ca0e004f09ea6c5",
+ "sha256": "04wm3i65fpzln7sdcny88hfjfm0n7wy44ffsr3697x4l95d0bnyh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "company",
+ "ivy-erlang-complete"
+ ],
+ "commit": "bc0524a16f17b66c7397690e4ca0e004f09ea6c5",
+ "sha256": "04wm3i65fpzln7sdcny88hfjfm0n7wy44ffsr3697x4l95d0bnyh"
+ }
+ },
+ {
+ "ename": "company-flow",
+ "commit": "63d346c14af1c5c138d14591a4d6dbc44d9bc429",
+ "sha256": "07brjfgiwv4dxjf0sca84allcy3qlp4jrkz7ki1qc5wmb5sd209l",
+ "fetcher": "github",
+ "repo": "aaronjensen/company-flow",
+ "unstable": {
+ "version": [
+ 20180225,
+ 2159
+ ],
+ "deps": [
+ "company",
+ "dash"
+ ],
+ "commit": "76ef585c70d2a3206c2eadf24ba61e59124c3a16",
+ "sha256": "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"
+ }
+ },
+ {
+ "ename": "company-flx",
+ "commit": "f27d718ee67f8c91b208a35adbbcdac67bbb89ce",
+ "sha256": "1r4jcfzrhdpclblfrmi4qbl8dnhc2d7d4c1425xnslg7bhwd2vxn",
+ "fetcher": "github",
+ "repo": "PythonNut/company-flx",
+ "unstable": {
+ "version": [
+ 20180103,
+ 518
+ ],
+ "deps": [
+ "company",
+ "flx"
+ ],
+ "commit": "16ca0d2f84e8e768bf2db8c5cfe421230a00bded",
+ "sha256": "09zaaqi8587n1fv5pxnrdmdll319s8f66xkc41p51gcs2p7qa5w1"
+ }
+ },
+ {
+ "ename": "company-fuzzy",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1xr5bilhj0xps0i0rgdvspq8yfiqkybq682jhzqjs1qzrm91apn0",
+ "fetcher": "github",
+ "repo": "jcs-elpa/company-fuzzy",
+ "unstable": {
+ "version": [
+ 20200712,
+ 49
+ ],
+ "deps": [
+ "company",
+ "s"
+ ],
+ "commit": "af017d00f4576fddee1d386f41c9ccebd7038d9a",
+ "sha256": "1a3317wzilp7z01j34rqg5khr77hqz9nxm930d16225gki98g9q3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "company",
+ "s"
+ ],
+ "commit": "af017d00f4576fddee1d386f41c9ccebd7038d9a",
+ "sha256": "1a3317wzilp7z01j34rqg5khr77hqz9nxm930d16225gki98g9q3"
+ }
+ },
+ {
+ "ename": "company-ghc",
+ "commit": "28f6a983444f796c81df7e5ee94d74c480b21298",
+ "sha256": "07adykza4dqs64bk8vjmgryr54khxmcy28hms5z8i1qpsk9vmvnn",
+ "fetcher": "github",
+ "repo": "iquiw/company-ghc",
+ "unstable": {
+ "version": [
+ 20170918,
+ 833
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "ghc"
+ ],
+ "commit": "8b264b5c3c0e42c0d0c4e9315559896c9b0edfdc",
+ "sha256": "0cmyrz251ls6ygyas455mj4pnmzfdqag1sp8v5zggw74wsl5wm23"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "ghc"
+ ],
+ "commit": "64e4f9d0cf9377138a8dee34c69e7d578fd71090",
+ "sha256": "0y9i0q37xjbnlnlxq7xjvnpn6ykzbd55g6nbw10z1wg0m2v7f96r"
+ }
+ },
+ {
+ "ename": "company-ghci",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "1qps4bgnmwbaml3dhx3lkcznngl8w5j58pacw35kbk4q8r69s4kx",
+ "fetcher": "github",
+ "repo": "horellana/company-ghci",
+ "unstable": {
+ "version": [
+ 20190707,
+ 311
+ ],
+ "deps": [
+ "company",
+ "haskell-mode"
+ ],
+ "commit": "a1d25652583ab4666c5a78cac18cd8039776b50d",
+ "sha256": "0sbkmsrvjikf6y53nsd5n0zhdp4hms7cw88w9qln136xjp5vgxqj"
+ }
+ },
+ {
+ "ename": "company-glsl",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1wzfdp6xz4nydfdcba8vs1za60lbfa0v4b8007dzn2fyg26rl326",
+ "fetcher": "github",
+ "repo": "guidoschmidt/company-glsl",
+ "unstable": {
+ "version": [
+ 20171015,
+ 1749
+ ],
+ "deps": [
+ "company",
+ "glsl-mode"
+ ],
+ "commit": "a262c12c3bcd0807718c4edcaf2b054e30ef0e26",
+ "sha256": "0338bym8ifvkgpbc4vyzf3nmlp6rc8lihyxcbym5m08612ln78mk"
+ }
+ },
+ {
+ "ename": "company-go",
+ "commit": "ef45683cbfe82bf8a9d6f3f1c59e3cf340accbe3",
+ "sha256": "1zhdckq1c9jzi5cf90w2m77fq6l67rjri4lnf8maq82gxqzk6wa5",
+ "fetcher": "github",
+ "repo": "mdempsky/gocode",
+ "unstable": {
+ "version": [
+ 20190203,
+ 19
+ ],
+ "deps": [
+ "company",
+ "go-mode"
+ ],
+ "commit": "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c",
+ "sha256": "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb"
+ },
+ "stable": {
+ "version": [
+ 20150303
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "eef10fdde96a12528a6da32f51bf638b2863a3b1",
+ "sha256": "03snnra31b5j6iy94gql240vhkynbjql9b4b5j8bsqp9inmbsia3"
+ }
+ },
+ {
+ "ename": "company-inf-ruby",
+ "commit": "ec0f597ceed00c68faa030ff0bc5676c513919f1",
+ "sha256": "0cb1w0sxgb5jf0p2a5s2i4d511lsjjhyaqkqlwjz8nk4w14n0zxm",
+ "fetcher": "github",
+ "repo": "company-mode/company-inf-ruby",
+ "unstable": {
+ "version": [
+ 20140805,
+ 2054
+ ],
+ "deps": [
+ "company",
+ "inf-ruby"
+ ],
+ "commit": "fe3e4863bc971fbb81edad447efad5795ead1b17",
+ "sha256": "0fnv4rvvs9rqzrs86g23jcrpg0rcgk25299hm6jm08ia0kjjby1m"
+ }
+ },
+ {
+ "ename": "company-irony",
+ "commit": "d2b6a8d57b192325dcd30fddc9ff8dd1516ad680",
+ "sha256": "15adamk1b9y1i6k06i5ahf1wn70cgwlhgk0x6fk8pl5izg05z1km",
+ "fetcher": "github",
+ "repo": "Sarcasm/company-irony",
+ "unstable": {
+ "version": [
+ 20190124,
+ 2346
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "irony"
+ ],
+ "commit": "b44711dfce445610c1ffaec4951c6ff3882b216a",
+ "sha256": "0s8v6kfgngpz6ic0g0l6xi6j9692xpmcamidmbk3l2blb172mggr"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "irony"
+ ],
+ "commit": "52aca45bcd0f2cb0648fcafa2bbb4f8ad4b2fee7",
+ "sha256": "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"
+ }
+ },
+ {
+ "ename": "company-irony-c-headers",
+ "commit": "9f9f62d8ef438a9ba4872bd7731768eddc5905de",
+ "sha256": "0kiag5ggmc2f5c3gd8nn40x16i686jpdrfrflgrz2aih8p3g6af8",
+ "fetcher": "github",
+ "repo": "hotpxl/company-irony-c-headers",
+ "unstable": {
+ "version": [
+ 20151018,
+ 909
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "irony"
+ ],
+ "commit": "72c386aeb079fb261d9ec02e39211272f76bbd97",
+ "sha256": "1f462v8xq2hdsr4ks4i79icpfz6fjpb4q7khnx6si55agxj3rvaq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "irony"
+ ],
+ "commit": "ba304fe7eebdff90bbc7dea063b45b82638427fa",
+ "sha256": "1x2dfjmy86icyv2g1y5bjlr87w8rixqdcndkwm1sba6ha277wp9i"
+ }
+ },
+ {
+ "ename": "company-jedi",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0a1p00jcvslm7h08kzdf6by9v4lf850jb2ki8gl8hgdcf5yvkdyi",
+ "fetcher": "github",
+ "repo": "emacsorphanage/company-jedi",
+ "unstable": {
+ "version": [
+ 20200324,
+ 25
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "jedi-core"
+ ],
+ "commit": "5232fbc1fdbfc81b1dd883afb720338c3e39556b",
+ "sha256": "155dba3qim7r8xhrv6dkhzhcc2km9761g5d3qmgd37jnk0mmd8l0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "jedi-core"
+ ],
+ "commit": "ad49407451c7f28fe137f9c8f3a7fc89e8693a1b",
+ "sha256": "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"
+ }
+ },
+ {
+ "ename": "company-lean",
+ "commit": "42f4d6438c8aeb94ebc1782f2f5e2abd17f0ffde",
+ "sha256": "1hqkn7w5dyznf7i3r3132q8x31r74q188jsm5kdrjqgbwak2p91a",
+ "fetcher": "github",
+ "repo": "leanprover/lean-mode",
+ "unstable": {
+ "version": [
+ 20171102,
+ 1454
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "dash-functional",
+ "f",
+ "lean-mode",
+ "s"
+ ],
+ "commit": "6b4377686128d5c2fb55d8fe61b92a9991d40fbd",
+ "sha256": "1zb3igic1i30mfbsx4k2sabhdpl58fsrl5c3fjvqrpn92ixi9vws"
+ }
+ },
+ {
+ "ename": "company-ledger",
+ "commit": "546bc62530136a7fdf3886731e4316c6c8081ead",
+ "sha256": "0y54wbky6jq9r3h4ghpkjywj78hw8k83ri6szph6s8w5m6dkji82",
+ "fetcher": "github",
+ "repo": "debanjum/company-ledger",
+ "unstable": {
+ "version": [
+ 20200726,
+ 1825
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "9fe9e3b809d6d2bc13c601953f696f43b09ea296",
+ "sha256": "08cs8vd2vzpzk71wzcrghn48mzvbk6w2fzlb3if63klhfcfpngc8"
+ }
+ },
+ {
+ "ename": "company-lsp",
+ "commit": "5125f53307c1af3d9ccf2bae3c25e7d23dfe1932",
+ "sha256": "09nbi6vxw8l26gfgsc1k3bx4m8i1px1b0jxaywszky5bv4fdy03l",
+ "fetcher": "github",
+ "repo": "tigersoldier/company-lsp",
+ "unstable": {
+ "version": [
+ 20190612,
+ 1553
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "lsp-mode",
+ "s"
+ ],
+ "commit": "f921ffa0cdc542c21dc3dd85f2c93df4288e83bd",
+ "sha256": "0dd2plznnnc2l1gqhsxnvrs8n1scp6zbcd4457wrq9z2f7pb5ig2"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "lsp-mode",
+ "s"
+ ],
+ "commit": "4eb6949f19892be7bf682381cde005791a48583a",
+ "sha256": "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"
+ }
+ },
+ {
+ "ename": "company-lua",
+ "commit": "c8191ab2aaa72041be46091e363d216cf1b73fde",
+ "sha256": "13sm7ya2ndqxwdjarhxbmg7fvr3413c7p3n6yf1i4rabbliqsf2c",
+ "fetcher": "github",
+ "repo": "ptrv/company-lua",
+ "unstable": {
+ "version": [
+ 20171108,
+ 2306
+ ],
+ "deps": [
+ "company",
+ "f",
+ "lua-mode",
+ "s"
+ ],
+ "commit": "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52",
+ "sha256": "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"
+ }
+ },
+ {
+ "ename": "company-manually",
+ "commit": "a7cdcad45efa0ecb807645c597b6fc3be22899d3",
+ "sha256": "1ws4kgvjz8ff600rw4grgjq7s34233s9616jnyykjfdh18skssmi",
+ "fetcher": "github",
+ "repo": "yanghaoxie/company-manually",
+ "unstable": {
+ "version": [
+ 20200709,
+ 913
+ ],
+ "deps": [
+ "company",
+ "ivy"
+ ],
+ "commit": "b922318da821fc3cf1d3155f21d543ea8470c881",
+ "sha256": "1s2bv040gg22qzjca39r32cz3qhairnvppk9wdp1hl52i6by57v9"
+ }
+ },
+ {
+ "ename": "company-math",
+ "commit": "fadff01600d57f5b9ea9c0c47ed109e058114998",
+ "sha256": "0chig8k8l65bnd0a6734fiy0ikl20k9v2wlndh3ckz5a8h963g87",
+ "fetcher": "github",
+ "repo": "vspinu/company-math",
+ "unstable": {
+ "version": [
+ 20200131,
+ 2337
+ ],
+ "deps": [
+ "company",
+ "math-symbol-lists"
+ ],
+ "commit": "a796053590012e6a15c8b527b521ffc15d137bd0",
+ "sha256": "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "deps": [
+ "company",
+ "math-symbol-lists"
+ ],
+ "commit": "a796053590012e6a15c8b527b521ffc15d137bd0",
+ "sha256": "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1"
+ }
+ },
+ {
+ "ename": "company-nand2tetris",
+ "commit": "90421372b3f60b59762279ac805c61a984606d11",
+ "sha256": "1g2i33jjh7kbpzk835kbnqicf0w4cq5rqv934bqzz5kavj9cg886",
+ "fetcher": "github",
+ "repo": "CestDiego/nand2tetris.el",
+ "unstable": {
+ "version": [
+ 20171201,
+ 1813
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "nand2tetris"
+ ],
+ "commit": "33acee34d24b1c6a87db833b7d23449cf858f64f",
+ "sha256": "0sfa674g1qm280s0pc3n6qiiphj5i9ibknckx5capkrkxb5cwpkw"
+ }
+ },
+ {
+ "ename": "company-native-complete",
+ "commit": "b112834a7ab05829fbc9101151bf82440bf6e551",
+ "sha256": "18f62r8y9k5flkqhzz6sr2w3srdhb6cpzrcyl98pv0zy3dq49lp4",
+ "fetcher": "github",
+ "repo": "CeleritasCelery/emacs-native-shell-complete",
+ "unstable": {
+ "version": [
+ 20200315,
+ 2144
+ ],
+ "deps": [
+ "company",
+ "native-complete"
+ ],
+ "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
+ "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
+ }
+ },
+ {
+ "ename": "company-nginx",
+ "commit": "fb8843cddfa9133ea9e2790e8a1d8051cd4dabea",
+ "sha256": "15pxz0v3zpshwri0v15yh995k7ih9h46y81n4xywlyyh34wys3sj",
+ "fetcher": "github",
+ "repo": "stardiviner/company-nginx",
+ "unstable": {
+ "version": [
+ 20180604,
+ 2
+ ],
+ "commit": "3074a5d322562f36867ef67bffeb25f1c0d8aca9",
+ "sha256": "04nq6cihb5kymi3rjfx53337fx4g042cw1jxiv016sq88z24lznx"
+ }
+ },
+ {
+ "ename": "company-ngram",
+ "commit": "937e6a23782450525c4a90392c414173481e101b",
+ "sha256": "1y9k9s8c248m91xld4f5l75j4swml333rpwq590bsx7mrsq131xx",
+ "fetcher": "github",
+ "repo": "kshramt/company-ngram",
+ "unstable": {
+ "version": [
+ 20170129,
+ 1913
+ ],
+ "deps": [
+ "cl-lib",
+ "company"
+ ],
+ "commit": "09a68b802e64799e95f205b438d469bbd78cd2e6",
+ "sha256": "0qg1ws7xi418lbnx130xqkwgpsl0p218gqxwy0fpwky01iahwcw9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "company"
+ ],
+ "commit": "d15182df3eac72b29772802759b77c9eafef5066",
+ "sha256": "05108s2a3c857n9j3c34hdni3fyq149pva4m3f51lis4wqrm4zv7"
+ }
+ },
+ {
+ "ename": "company-nixos-options",
+ "commit": "6846c7d86e70a9dd8300b89b61435aa7e146be96",
+ "sha256": "1yrqqdadmf7qfxpqp8wwb325zjnwwjmn2hhnl7i3j0ckg6hqyqf0",
+ "fetcher": "github",
+ "repo": "travisbhartwell/nix-emacs",
+ "unstable": {
+ "version": [
+ 20160215,
+ 857
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "nixos-options"
+ ],
+ "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
+ "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "nixos-options"
+ ],
+ "commit": "5fc8fa29bea9dd8e9c822af92f9bc6ddc223635f",
+ "sha256": "1lm7rkgf7q5g4ji6v1masfbhxdpwni8d77dapsy5k9p73cr2aqld"
+ }
+ },
+ {
+ "ename": "company-org-roam",
+ "commit": "aeb95e34be27dd78a237c0bfe1da94802fa68eae",
+ "sha256": "0k4w9g1rl94rpcvbcdmvsy47vzs53wz4b4hy9khj4yjn023nbsj7",
+ "fetcher": "github",
+ "repo": "org-roam/company-org-roam",
+ "unstable": {
+ "version": [
+ 20200711,
+ 355
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "org-roam"
+ ],
+ "commit": "1132663bd68022aa7ea005ff53c7c7571890769d",
+ "sha256": "1xk53lyf5sn16cs2gv874sajs5jlsxbxpksbjx9nk8glzrq7r6r3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "company",
+ "org-roam"
+ ],
+ "commit": "a4c3f60883de783b190d4eb8bcc85f5912d9393a",
+ "sha256": "087z699i7y0q72s5qc7ks09bzin9cl3gm3aqs4ka99lzg676lrl8"
+ }
+ },
+ {
+ "ename": "company-php",
+ "commit": "ac283f1b65c3ba6278e9d3236e5a19734e42b123",
+ "sha256": "1gnhklfkg17vxfx7fw65lr4nr07jx71y84mhs9zszwcr9p840hh5",
+ "fetcher": "github",
+ "repo": "xcwen/ac-php",
+ "unstable": {
+ "version": [
+ 20190424,
+ 222
+ ],
+ "deps": [
+ "ac-php-core",
+ "cl-lib",
+ "company"
+ ],
+ "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+ "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 0
+ ],
+ "deps": [
+ "ac-php-core",
+ "cl-lib",
+ "company"
+ ],
+ "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+ "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
+ }
+ },
+ {
+ "ename": "company-phpactor",
+ "commit": "dc6edd22befea0aee9b11bc8df7d42c400e12f43",
+ "sha256": "1a6szs85hmxm2xpkmc3dyx2daap7bjvpnrl4gcmbq26zbz2f0z0a",
+ "fetcher": "github",
+ "repo": "emacs-php/phpactor.el",
+ "unstable": {
+ "version": [
+ 20200121,
+ 1218
+ ],
+ "deps": [
+ "company",
+ "phpactor"
+ ],
+ "commit": "62d2372ea55c0c5fb4e77076988472ebb5d85f24",
+ "sha256": "1sfrdap157zc7lk9vwsy91p813ip8dmazgfjwh7jwzyvcj7dsimc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "company"
+ ],
+ "commit": "61e4eab638168b7034eef0f11e35a89223fa7687",
+ "sha256": "0dsa1mygb96nlz5gppf0sny3lxaacvmvnkg84c0cs6x223s6zfx8"
+ }
+ },
+ {
+ "ename": "company-plisp",
+ "commit": "bdd486fdb97b4954a881b6099704704829eb0058",
+ "sha256": "071h99nv6q3lrc6navii0dhzak28j3fqx4mwajyapzlcrrsdpp4i",
+ "fetcher": "gitlab",
+ "repo": "sasanidas/company-plisp",
+ "unstable": {
+ "version": [
+ 20200531,
+ 1927
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash",
+ "s"
+ ],
+ "commit": "fc0b56d2a711340ca3e63119bfe692bb3e8620fb",
+ "sha256": "0xw475spfwq32nn5qz3gk22cggj1f5y245da9030vzi2jfb9vvid"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash",
+ "s"
+ ],
+ "commit": "0e6941e1832faafb2176238339667edd482acd95",
+ "sha256": "1ri022shrwiw10gdydm66c2xya1qxl449r5f8qadals7m4crczp2"
+ }
+ },
+ {
+ "ename": "company-plsense",
+ "commit": "9cf9d671d81e07c704676c557a9f0d686067ce5c",
+ "sha256": "0k8k2vpkknd4nyxzwdj7698lgm5d85byxd49x7w5nrxmh2h1w3c7",
+ "fetcher": "github",
+ "repo": "CeleritasCelery/company-plsense",
+ "unstable": {
+ "version": [
+ 20180118,
+ 58
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash",
+ "s"
+ ],
+ "commit": "b48e3181e08ec597269621d621aa06636f02d883",
+ "sha256": "14rawd5xfgnkhdpp43mz4a5mf480949ny5hr5w6v5djmsibqxw5s"
+ }
+ },
+ {
+ "ename": "company-pollen",
+ "commit": "97bda0616abe3bb632fc4231e5317d9472dfd14f",
+ "sha256": "1pz5d8j7scrv2ci9mxvyikwsk8badkrbp8dznnb5qq1ycqv24bl1",
+ "fetcher": "github",
+ "repo": "lijunsong/pollen-mode",
+ "unstable": {
+ "version": [
+ 20160812,
+ 1510
+ ],
+ "deps": [
+ "company",
+ "pollen-mode"
+ ],
+ "commit": "d0a33591498013886c2c4676e204cd684954e82a",
+ "sha256": "0lg65hzdjwbc3dav79f3jm7251yyq8ghcbccvkb32vwz281xhjnh"
+ }
+ },
+ {
+ "ename": "company-posframe",
+ "commit": "68c1203ae710e5f7af3f0e5e2877aba6deaf1ac8",
+ "sha256": "1pd68m3hcn6wggw8a026x5kxn73f3zs278vs96q6cb5gbxyyhirs",
+ "fetcher": "github",
+ "repo": "tumashu/company-posframe",
+ "unstable": {
+ "version": [
+ 20200812,
+ 410
+ ],
+ "deps": [
+ "company",
+ "posframe"
+ ],
+ "commit": "4bfb8bccef4b64479f4147de6bf6fbd05df2a67e",
+ "sha256": "0k19gkh8xbap4j1jjqw6lnkp1v2q76fz3ryrns7kvbzmca3y5599"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "company",
+ "posframe"
+ ],
+ "commit": "361de25739e866843b770638669f5bdf7ed95610",
+ "sha256": "0azmln9mssc52563vs5g3z3ajv4p6908c94v3fij1q0bdvlmcv6g"
+ }
+ },
+ {
+ "ename": "company-prescient",
+ "commit": "b92c34e493bbefab1d7747b0855d1ab2f984cb7c",
+ "sha256": "0cp918ihbjqxfgqnifknl5hphmvq5bl42dhp5ylvijsfa8kvbsb9",
+ "fetcher": "github",
+ "repo": "raxod502/prescient.el",
+ "unstable": {
+ "version": [
+ 20200716,
+ 1414
+ ],
+ "deps": [
+ "company",
+ "prescient"
+ ],
+ "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+ "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 0
+ ],
+ "deps": [
+ "company",
+ "prescient"
+ ],
+ "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+ "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+ }
+ },
+ {
+ "ename": "company-qml",
+ "commit": "5b53477eaba4ef62f8317c9454e15ac015442fed",
+ "sha256": "0sva7i93dam8mc2z3cp785vmgcg7cphrpkwyvqyqhq8w51qg8mxx",
+ "fetcher": "github",
+ "repo": "cute-jumper/company-qml",
+ "unstable": {
+ "version": [
+ 20170428,
+ 1708
+ ],
+ "deps": [
+ "company",
+ "qml-mode"
+ ],
+ "commit": "4af4f32a7ad86d86bb9293fb0b675aec513b5736",
+ "sha256": "09d733r07gr4cxp7npyhi93xchvirxh1v00fr487v4a0mdaahpxf"
+ }
+ },
+ {
+ "ename": "company-quickhelp",
+ "commit": "651679c2430c69294d1a1870fd206b7ea69ab017",
+ "sha256": "0g4l12j85g129p9li4p7rsji263qy05hgkb7qi7k1ik5s2bm7jdw",
+ "fetcher": "github",
+ "repo": "company-mode/company-quickhelp",
+ "unstable": {
+ "version": [
+ 20200714,
+ 1611
+ ],
+ "deps": [
+ "company",
+ "pos-tip"
+ ],
+ "commit": "5a86731de461142db3b7ca26b4681756edb4b773",
+ "sha256": "0n0pdcgql8hcipwacc60hk4ymp8ry6z9lm4p4wn8gmnb7km023qb"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 0
+ ],
+ "deps": [
+ "company",
+ "pos-tip"
+ ],
+ "commit": "b2953c725654650677e3d66eaeec666826d5f65f",
+ "sha256": "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"
+ }
+ },
+ {
+ "ename": "company-quickhelp-terminal",
+ "commit": "f5fa4121cd4e2a49adfd23929c73f385cf7d1264",
+ "sha256": "13pig4bkfhwvpak78v85dzmrv7hwqd3pz4s5y8cb7xa033i1v78s",
+ "fetcher": "github",
+ "repo": "jcs-elpa/company-quickhelp-terminal",
+ "unstable": {
+ "version": [
+ 20200627,
+ 908
+ ],
+ "deps": [
+ "company-quickhelp",
+ "popup"
+ ],
+ "commit": "e18b4cf309e2bbc63995ebc3c1230c8c865dd00e",
+ "sha256": "1ixl54wgynq0zzqr7cxphblwmxx5a9gs28rfyq5c2l499ja4r1k7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "company-quickhelp",
+ "popup"
+ ],
+ "commit": "e18b4cf309e2bbc63995ebc3c1230c8c865dd00e",
+ "sha256": "1ixl54wgynq0zzqr7cxphblwmxx5a9gs28rfyq5c2l499ja4r1k7"
+ }
+ },
+ {
+ "ename": "company-racer",
+ "commit": "b38908bc1b759b14173ffb49ddeb040a9892cc0d",
+ "sha256": "180851z4ngpfvib2rhr9dvc1kbqjn4flsibc9r382na8wnmmcx5j",
+ "fetcher": "github",
+ "repo": "emacsattic/company-racer",
+ "unstable": {
+ "version": [
+ 20171205,
+ 310
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "deferred"
+ ],
+ "commit": "a00381c9d416f375f783fcb6ae8d40669ce1f567",
+ "sha256": "13m3yzn4xbyl13z7h1cl6vqjbzikjycy7wydpy4a44yhr466zjr5"
+ }
+ },
+ {
+ "ename": "company-reftex",
+ "commit": "84c938612d46d45b5bb05ee35178eaa2284023e0",
+ "sha256": "0xfl8cfpd2bdk91aj0nygp5gm808pnbi7zjdp4z6l21dsrawhbxz",
+ "fetcher": "github",
+ "repo": "TheBB/company-reftex",
+ "unstable": {
+ "version": [
+ 20181222,
+ 906
+ ],
+ "deps": [
+ "company",
+ "s"
+ ],
+ "commit": "275ef708f08d3bf0eb30632148e5c6184eeaacdb",
+ "sha256": "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"
+ }
+ },
+ {
+ "ename": "company-restclient",
+ "commit": "3dd063bc3789772fdcc6a8555817588962e60825",
+ "sha256": "1md0n4k4wmbh9rmbwqh3kg2fj0c34rzqfd56jsq8lcdg14k0kdcb",
+ "fetcher": "github",
+ "repo": "iquiw/company-restclient",
+ "unstable": {
+ "version": [
+ 20190426,
+ 1312
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "know-your-http-well",
+ "restclient"
+ ],
+ "commit": "e5a3ec54edb44776738c13e13e34c85b3085277b",
+ "sha256": "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "know-your-http-well",
+ "restclient"
+ ],
+ "commit": "e5a3ec54edb44776738c13e13e34c85b3085277b",
+ "sha256": "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"
+ }
+ },
+ {
+ "ename": "company-rtags",
+ "commit": "3dea16daf0d72188c8b4043534f0833fe9b04e07",
+ "sha256": "0dicxbp3xn02pflrpfndj7hs494prvz64llsk1xpc2z23kfarp6f",
+ "fetcher": "github",
+ "repo": "Andersbakken/rtags",
+ "unstable": {
+ "version": [
+ 20191222,
+ 920
+ ],
+ "deps": [
+ "company",
+ "rtags"
+ ],
+ "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+ "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 38
+ ],
+ "deps": [
+ "company",
+ "rtags"
+ ],
+ "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
+ "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+ }
+ },
+ {
+ "ename": "company-shell",
+ "commit": "bbaa05d158f3806b9f79a2c826763166dbee56ca",
+ "sha256": "0my9jghf3s4idkgrpki8mj1lm5ichfvznb09lfwf07fjhg0q1apz",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/company-shell",
+ "unstable": {
+ "version": [
+ 20170518,
+ 541
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash"
+ ],
+ "commit": "52f3bf26b74adc30a275f5f4290a1fc72a6876ff",
+ "sha256": "0nv8vwmqgdb33cl1wfdbmncbrpfdciid48f6w8vmw39ks53i2z32"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash"
+ ],
+ "commit": "acdbf8cba6ad9831d81a77bab7bbfd50f19edd86",
+ "sha256": "1dk927da7g4a39sva9bda978bx6hpiz5kf341fj8sb7xhryvh5r2"
+ }
+ },
+ {
+ "ename": "company-solidity",
+ "commit": "e561d869f4e32bad5d1a8678f67e591ff586d6de",
+ "sha256": "1rkja48j2m0g0azc34i715ckkqwjkb44y3b4a9vlxs8cjqza4w7q",
+ "fetcher": "github",
+ "repo": "ethereum/emacs-solidity",
+ "unstable": {
+ "version": [
+ 20181117,
+ 1518
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "solidity-mode"
+ ],
+ "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
+ "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 10
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "solidity-mode"
+ ],
+ "commit": "93412f211fad7dfc3b02aa226856fc52b6a15c22",
+ "sha256": "06zqs7p22h1jkm3zs1i16wvch6rnzzb3m8d5r9r51clzpasf6zy8"
+ }
+ },
+ {
+ "ename": "company-sourcekit",
+ "commit": "45969cd5cd936ea61fbef4722843b0b0092d7b72",
+ "sha256": "0hr5j1ginf43h4qf3fvsh3z53z0c7w5a9lhrvdwmlzj396qhqmzs",
+ "fetcher": "github",
+ "repo": "nathankot/company-sourcekit",
+ "unstable": {
+ "version": [
+ 20170126,
+ 1153
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "dash-functional",
+ "sourcekit"
+ ],
+ "commit": "abf9bc5a0102eb666d3aa6d6bf22f6efcc852781",
+ "sha256": "1g8a4fgy2c5nqk8gysbnzn5jvfw6ynmfhc6j3hkrbswgf9188v5n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "dash-functional",
+ "sourcekit"
+ ],
+ "commit": "8ba62ac25bf533b7f148f333bcb5c1db799f749b",
+ "sha256": "01dh0wdaydiai4v13r8g05rpiwqr5qqi34wif8vbk2mrr25wc7i9"
+ }
+ },
+ {
+ "ename": "company-stan",
+ "commit": "33fd0382da97c7397b1e4435860e7344d70399b8",
+ "sha256": "064476s2gccjmwhrc406460k3aqc80giqqyjbii8243964rdx4p0",
+ "fetcher": "github",
+ "repo": "stan-dev/stan-mode",
+ "unstable": {
+ "version": [
+ 20200221,
+ 2025
+ ],
+ "deps": [
+ "company",
+ "stan-mode"
+ ],
+ "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+ "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
+ },
+ "stable": {
+ "version": [
+ 10,
+ 1,
+ 0
+ ],
+ "deps": [
+ "company",
+ "stan-mode"
+ ],
+ "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
+ "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+ }
+ },
+ {
+ "ename": "company-statistics",
+ "commit": "89d05b43f31ec157ce8e7bfba4b7c9119bda6dd2",
+ "sha256": "1fl4ldj17m3xhi6xbw3bp9c2jir34xv3jh9daiw8g912fv2l5dcj",
+ "fetcher": "github",
+ "repo": "company-mode/company-statistics",
+ "unstable": {
+ "version": [
+ 20170210,
+ 1933
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "e62157d43b2c874d2edbd547c3bdfb05d0a7ae5c",
+ "sha256": "12mwviz1mwx4ywks2lkmybbgh1wny67wkzlq5y3ml8gvyc288n3i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "906d8137224c1a5bd1dc913940e0d32ffecf5523",
+ "sha256": "0c98kfg7gimjx9cf8dmbk9mdsrybhphshrdl8dhif3zqvn6gxyd7"
+ }
+ },
+ {
+ "ename": "company-suggest",
+ "commit": "9579e3366db055364829e20d3ce228bf17060b0a",
+ "sha256": "1w5fp4mydc4av14sjb8di6jjvzfqwnasnxpf9720pk0rsj05i972",
+ "fetcher": "github",
+ "repo": "juergenhoetzel/company-suggest",
+ "unstable": {
+ "version": [
+ 20200804,
+ 1127
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "7f4efb0e2577b7b34928db3dc71758ab6852f66b",
+ "sha256": "0hlvg11p4xkafqys322ablbld2v7fks924cpc3bs3wcipjjxl3cf"
+ }
+ },
+ {
+ "ename": "company-tabnine",
+ "commit": "94476897a71a271b985967334632836252eb131b",
+ "sha256": "1x37xacrscmh9hq9mljbgdcl3pwfn2kmn567qv0jqys8ihbzi3v7",
+ "fetcher": "github",
+ "repo": "TommyX12/company-tabnine",
+ "unstable": {
+ "version": [
+ 20200327,
+ 2137
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash",
+ "s",
+ "unicode-escape"
+ ],
+ "commit": "e986a4ad0d0e0174b08f1fb94c4f804a98a344e4",
+ "sha256": "1g5qv1fg22x1nkj696n12ixa2akgzivdc5q7yzy502kqjg67mkx5"
+ }
+ },
+ {
+ "ename": "company-terraform",
+ "commit": "1d9732da975dcf59d3b311b19e20abbb29c33656",
+ "sha256": "198ppqn6f7y9bg582z5s4cl9gg1q9ibsr7mmn68b50zvma7ankzh",
+ "fetcher": "github",
+ "repo": "rafalcieslak/emacs-company-terraform",
+ "unstable": {
+ "version": [
+ 20190607,
+ 1037
+ ],
+ "deps": [
+ "company",
+ "terraform-mode"
+ ],
+ "commit": "2d11a21fee2f298e48968e479ddcaeda4d736e12",
+ "sha256": "0hxilq7289djrn6kgw7n926zpz0pr7iyd1wm6cy8yfhxf546a4px"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "company",
+ "terraform-mode"
+ ],
+ "commit": "2d11a21fee2f298e48968e479ddcaeda4d736e12",
+ "sha256": "0hxilq7289djrn6kgw7n926zpz0pr7iyd1wm6cy8yfhxf546a4px"
+ }
+ },
+ {
+ "ename": "company-try-hard",
+ "commit": "d65c26aee15a27cbf27fa81110b607bf38099079",
+ "sha256": "1rwn521dc8kxh43vcd3rf0h8jc53d4gmid3szj2msi0da1sk0mmj",
+ "fetcher": "github",
+ "repo": "Wilfred/company-try-hard",
+ "unstable": {
+ "version": [
+ 20200417,
+ 1603
+ ],
+ "deps": [
+ "company",
+ "dash"
+ ],
+ "commit": "2b41136b5ed6e02032d99bcdb0599ecf00394fa5",
+ "sha256": "07c4vsrixqw6d6d2mqm6xzzzc9l9mgwgabcc6jlnw78cxij1wrsx"
+ }
+ },
+ {
+ "ename": "company-web",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1q2am684l4d038a3ymyy6gg2ds9lq5mcfc4in8dmvap5grdhia4b",
+ "fetcher": "github",
+ "repo": "osv/company-web",
+ "unstable": {
+ "version": [
+ 20180402,
+ 1155
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash",
+ "web-completion-data"
+ ],
+ "commit": "f0cc9187c9c34f72ad71f5649a69c74f996bae9a",
+ "sha256": "1xcwwcy2866vzaqgn7hrl7j8k48mk74i4shm40v7ybacws47s9nr"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "company",
+ "dash",
+ "web-completion-data"
+ ],
+ "commit": "f0cc9187c9c34f72ad71f5649a69c74f996bae9a",
+ "sha256": "1xcwwcy2866vzaqgn7hrl7j8k48mk74i4shm40v7ybacws47s9nr"
+ }
+ },
+ {
+ "ename": "company-ycm",
+ "commit": "44e168f757cb51249db2deb9f781eff99cf6fb7c",
+ "sha256": "1q4d63c7nr3g7q0smd55pp636vqa9lf1pkwjn9iq265369npvina",
+ "fetcher": "github",
+ "repo": "neuromage/ycm.el",
+ "unstable": {
+ "version": [
+ 20140904,
+ 1817
+ ],
+ "deps": [
+ "ycm"
+ ],
+ "commit": "4da8a14abcd0f4fa3235042ade2e12b5068c0601",
+ "sha256": "0znchya89zzk30mwl4qfm0q9sfa5m3jspapb892ydj0mck5n4nyj"
+ }
+ },
+ {
+ "ename": "company-ycmd",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1dycbp2q8grvv94mwp9n8s7xpz2zjs05l3lf471j3nlbk6xfsn5d",
+ "fetcher": "github",
+ "repo": "abingham/emacs-ycmd",
+ "unstable": {
+ "version": [
+ 20180520,
+ 1053
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "deferred",
+ "f",
+ "let-alist",
+ "s",
+ "ycmd"
+ ],
+ "commit": "bc81b992f79100c98f56b7b83caf64cb8ea60477",
+ "sha256": "0kwm5q2sv2xrsmnr0gc2fimp6b2cvwh5mhqsmcc3lgs32m4j1kwv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "deferred",
+ "f",
+ "let-alist",
+ "s",
+ "ycmd"
+ ],
+ "commit": "d042a673b4d717c3ca9d641f120bfe16c994c740",
+ "sha256": "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0"
+ }
+ },
+ {
+ "ename": "compdef",
+ "commit": "462b3d92c8c5f72ae1b70fa4d48b803c2f3d07e2",
+ "sha256": "04cav3f1ggyjfgnbx1wsyfaj8d63sxwfqkjar869p6kz9gajy4qr",
+ "fetcher": "gitlab",
+ "repo": "jjzmajic/compdef",
+ "unstable": {
+ "version": [
+ 20200304,
+ 611
+ ],
+ "commit": "30fb5846ed851efee641ce8c5d8879ad36cd7ac6",
+ "sha256": "0qn99jynafjyxc6fy9z888h7j7drs2mz34acwq8yh22v314x2639"
+ }
+ },
+ {
+ "ename": "competitive-programming-snippets",
+ "commit": "9a6d2467c37bf095c0a1e4605744474999ce04e2",
+ "sha256": "1yblnm1ar466fgwvhxybqv8sp2hn40p10p6hhnn9gi1xj9napam7",
+ "fetcher": "github",
+ "repo": "sei40kr/competitive-programming-snippets",
+ "unstable": {
+ "version": [
+ 20200501,
+ 1205
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "22bbf4c5edcc895b67b9f22599f284655ca48858",
+ "sha256": "14vbpy1y9dq9ip0bkmap7l2y2qx9jxzvisarbwlqqxj0xl7gbwc6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 4
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "b0245fcbabf035d89b80150add5d6a47859ab555",
+ "sha256": "07l495vv3by6r62i48jbfyr5pp1p6896cz25gkc7p3xqwrhi2min"
+ }
+ },
+ {
+ "ename": "completions-frame",
+ "commit": "dcbb088900f76c05b04ffe25d32e43a477a0556f",
+ "sha256": "1ng5wmk1vp6yqrcyld23mrs8xdfa010l9acjy1vgkcsxjp3nmv3x",
+ "fetcher": "github",
+ "repo": "muffinmad/emacs-completions-frame",
+ "unstable": {
+ "version": [
+ 20200507,
+ 1703
+ ],
+ "commit": "192a70060d2a8710ca75aa2336a10c21a4d30eed",
+ "sha256": "0bi7q2napzfqbsdi4si1kfzdjq39hxg3czwbpmybrljg6rwgr9xf"
+ }
+ },
+ {
+ "ename": "composable",
+ "commit": "1fc0f076198e4be46a33a26eea9f2d273dda12b8",
+ "sha256": "1fs4pczjn9sv12sladf6zbkz0cmzxr0jaqkiwryydal1l5nqqxcy",
+ "fetcher": "github",
+ "repo": "paldepind/composable.el",
+ "unstable": {
+ "version": [
+ 20200604,
+ 1156
+ ],
+ "commit": "f6262e6d7380ce9d4eacd7127fe0d968325f347d",
+ "sha256": "0a2xfnd54pclh3qm1hwv867dpkhk6wck94092yyzapj7zxnfnr15"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "4739b6a730498e7526d06222810c3ccf3723d509",
+ "sha256": "1mii790r6gaz0nidlaib50wj4vryfvw7ls6b4mg1nw5km7hplpgq"
+ }
+ },
+ {
+ "ename": "composer",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "01w9cywhfngkrl9az8kfpzm12nc0zwmax01pyxlbi2l2icmvp5s1",
+ "fetcher": "github",
+ "repo": "emacs-php/composer.el",
+ "unstable": {
+ "version": [
+ 20200616,
+ 1717
+ ],
+ "deps": [
+ "f",
+ "php-runtime",
+ "s",
+ "seq"
+ ],
+ "commit": "7c7f89df226cac69664d7eca5e913b544dc475c5",
+ "sha256": "0iyajdlp95mii462xqy6fqbv5q7vai3ya4jip8433zwwr2pkdbsr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "f",
+ "php-runtime",
+ "s",
+ "seq"
+ ],
+ "commit": "db65d874d762f70558449a01bdac5361bf067c15",
+ "sha256": "1krfdc8xrkxl7mhldxhbf2lddyskvvrykrspkzvvwivc29dl0vmm"
+ }
+ },
+ {
+ "ename": "comware-router-mode",
+ "commit": "47d74f54efc324d39b66d88051edbe6ff2cad9e0",
+ "sha256": "0i3isavwhdwzz8dzwkss4sajj9v3phk8hvq7cxrwrh09lwpp4kxs",
+ "fetcher": "github",
+ "repo": "daviderestivo/comware-router-mode",
+ "unstable": {
+ "version": [
+ 20200106,
+ 2011
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "e6e2d9ca71a7a46c0e4ebeb30e4994c2a8b5fe0d",
+ "sha256": "16x9xbf3km6k8xjivlf2ill7pmvrmaf3c35baznixm6hwdcv4wib"
+ }
+ },
+ {
+ "ename": "concurrent",
+ "commit": "8bc29a8d518ce7a584277089bd4654f52ac0f358",
+ "sha256": "09wjw69bqrr3424h0mpb2kr5ixh96syjjsqrcyd7z2lsas5ldpnf",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-deferred",
+ "unstable": {
+ "version": [
+ 20161229,
+ 330
+ ],
+ "deps": [
+ "deferred"
+ ],
+ "commit": "2239671d94b38d92e9b28d4e12fd79814cfb9c16",
+ "sha256": "0vz59lm7pfz0gbsgrb44y555js85wbdjn0zm6p8wfqjiqf63ds3i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 1
+ ],
+ "deps": [
+ "deferred"
+ ],
+ "commit": "d012a1ab50edcc2c44e3e49006f054dbff47cb6c",
+ "sha256": "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"
+ }
+ },
+ {
+ "ename": "conda",
+ "commit": "fcf762e34837975f5440a1d81a7f09699778123e",
+ "sha256": "1hi292h6ccl7vkvyxcwwcdxw8q2brv3hy0mnlikzj2qy5pbnfg4y",
+ "fetcher": "github",
+ "repo": "necaris/conda.el",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1614
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "pythonic",
+ "s"
+ ],
+ "commit": "9f7eea16e9ad3eb34fe3d1cbd9d6162b8046c2f8",
+ "sha256": "1151bk1fx8y8yql1sg9qqagxcbq57rz85gwnx0z2acfpljb2i7r7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 11
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "pythonic",
+ "s"
+ ],
+ "commit": "78e1aad076f6cefc6aa7cc77d08e174b13050994",
+ "sha256": "02l9m5wx0z865w3cdwbw7c22fmdjbsw4svivqg72nbl7yrq7rv5v"
+ }
+ },
+ {
+ "ename": "config-general-mode",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1pqivnyb1yljzs3fd554s0971wr9y6g1dx3lgym9gi5jhpyza38z",
+ "fetcher": "github",
+ "repo": "TLINDEN/config-general-mode",
+ "unstable": {
+ "version": [
+ 20171024,
+ 1840
+ ],
+ "commit": "b4a8e6ba0bb027a77e4a0f701409f3e57bb2e4c0",
+ "sha256": "115sk0h6i1bfnxw1v11719926cvnq7gyisjcysvkam40hp3d5fx5"
+ }
+ },
+ {
+ "ename": "config-parser",
+ "commit": "8fc040eebe72b278e3bd69212b207446cf4a5f06",
+ "sha256": "0wncg1v4wccb9j16rcmwz8fcmrscj7knfisq0r4qqx3skrmpccah",
+ "fetcher": "github",
+ "repo": "lujun9972/el-config-parser",
+ "unstable": {
+ "version": [
+ 20160426,
+ 1219
+ ],
+ "commit": "85d559e7889d8f5b98b8794b79426ae25ec3caa5",
+ "sha256": "09vq7hcsw4027whn3xrnfz9hkgkakva619hyz0zfgpvppqah9n1p"
+ }
+ },
+ {
+ "ename": "confluence",
+ "commit": "30de78c9cf83de30093a5647976eeaf552d4b2cb",
+ "sha256": "0xa2g168mm31kh5h7smhx35cjsk1js88nzs19yakjljf56b1khlf",
+ "fetcher": "github",
+ "repo": "emacsorphanage/confluence",
+ "unstable": {
+ "version": [
+ 20151021,
+ 128
+ ],
+ "deps": [
+ "xml-rpc"
+ ],
+ "commit": "4518d270a07760644c4204985c83d234ece4738b",
+ "sha256": "1lrq23cxlp2vkyv7g56r06bp7chhw10kii3ymkydf24y4pyn1zpg"
+ }
+ },
+ {
+ "ename": "conkeror-minor-mode",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "1ch108f20k7xbf79azsp31hh4wmw7iycsxddcszgxkbm7pj11933",
+ "fetcher": "github",
+ "repo": "Malabarba/conkeror-minor-mode",
+ "unstable": {
+ "version": [
+ 20150114,
+ 1604
+ ],
+ "commit": "476e81c27b056e21c192391fe674a2bf875466b0",
+ "sha256": "0sz3qx1bn0lwjhka2l6wfl4b5486ji9dklgjs7fdlkg3dgpp1ahx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 2
+ ],
+ "commit": "476e81c27b056e21c192391fe674a2bf875466b0",
+ "sha256": "0sz3qx1bn0lwjhka2l6wfl4b5486ji9dklgjs7fdlkg3dgpp1ahx"
+ }
+ },
+ {
+ "ename": "conllu-mode",
+ "commit": "444f943baddfeafe29708d6d68aeeeedbb7aa7bd",
+ "sha256": "1wffvvs8d0xcnz6mcm9rbr8imyj4npyc148yh0gzfzlgjm0fiz1v",
+ "fetcher": "github",
+ "repo": "odanoburu/conllu-mode",
+ "unstable": {
+ "version": [
+ 20200501,
+ 2328
+ ],
+ "deps": [
+ "cl-lib",
+ "flycheck",
+ "hydra",
+ "s"
+ ],
+ "commit": "0db3063572b0de08874822e20570bb153747e6ed",
+ "sha256": "0l7d88p010z47qhk33k8s13h9596g3dxz3mx9winsm82px8fvcpp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "flycheck",
+ "hydra",
+ "s"
+ ],
+ "commit": "d1b5b682e0a481ab74caed20bbca6177edb83080",
+ "sha256": "1n98aqh3pyvaz1lwsqpcpv1nzrij79r342iiw2h90v4mf2r665dy"
+ }
+ },
+ {
+ "ename": "connection",
+ "commit": "5b08ed7b90e3283e177eff57cb02b12a093dc258",
+ "sha256": "1y68d2kay8p5vapailxhrc5dl7b8k8nkvp7pa54md3fsivwp1d0q",
+ "fetcher": "github",
+ "repo": "myrkr/dictionary-el",
+ "unstable": {
+ "version": [
+ 20191111,
+ 446
+ ],
+ "commit": "c9cad101100975e88873636bfd426b7a19304ebd",
+ "sha256": "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 11
+ ],
+ "commit": "c9cad101100975e88873636bfd426b7a19304ebd",
+ "sha256": "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"
+ }
+ },
+ {
+ "ename": "constant-theme",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "13m4r37gscnqg3qmb0rs2r8sslp0irm7n4p6p496mmvljvjmpv6b",
+ "fetcher": "github",
+ "repo": "Jannis/emacs-constant-theme",
+ "unstable": {
+ "version": [
+ 20180921,
+ 1012
+ ],
+ "commit": "23543a09729569b566175abe1efbe774048d3fa8",
+ "sha256": "1456kydn5k5sq8dgaf45nzqaw1035945dhwkh07vz11ivvcrz3xs"
+ }
+ },
+ {
+ "ename": "contextual",
+ "commit": "de20db067590624bbd2ca5a7a537b7f11ada84f2",
+ "sha256": "1xwjjchmn3xqxbgvqishh8i75scc4kjgdzlp5j64d443pfgyr56a",
+ "fetcher": "github",
+ "repo": "e-user/contextual",
+ "unstable": {
+ "version": [
+ 20180726,
+ 800
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "e3c0de4a2e06757a0e8407c3c6e75930026191e3",
+ "sha256": "1nl2748s5x252f6sx4xpgzfdcas9ky38bnqfdx9l562agmcp9615"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "8134a2d8034c624f4fdbbb0b3893de12f4257909",
+ "sha256": "0s4b7dkndhnh8q3plvg2whjx8zd7ffz4hnbn3xh86xd3k7sch7av"
+ }
+ },
+ {
+ "ename": "contextual-menubar",
+ "commit": "cba21d98f3abbf1f45d1fdd9164d4660b7d3e368",
+ "sha256": "0r9bsnvf45h7gsdfhsz7h02nskjvflfa2yjarjv9fcl7aipz8rr6",
+ "fetcher": "github",
+ "repo": "aaronjensen/contextual-menubar",
+ "unstable": {
+ "version": [
+ 20180205,
+ 709
+ ],
+ "commit": "f76f55232ac07df76ef9a334a0c527dfab97c40b",
+ "sha256": "0zks4w99nbhz1xvr67isgg6yjghpzbh5s5wd839zi0ly30x4riqf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "cc2e7c952b59401188b81d84be81dead9d0da3db",
+ "sha256": "01mk5xzsg52vfqjri1my193y6jczg2dp3pa2d0v0vw11m1k433h3"
+ }
+ },
+ {
+ "ename": "contrast-color",
+ "commit": "7a13602e10a5fa889d0e094eff5b74a39023a477",
+ "sha256": "0pa88mfla7g7wpia0q1lkv2dncw63ivvh83hf73f75a22rvl8jcx",
+ "fetcher": "github",
+ "repo": "yuutayamada/contrast-color-el",
+ "unstable": {
+ "version": [
+ 20160903,
+ 1807
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c5fb77a211ebbef3185ada37bea7420534c33f94",
+ "sha256": "06grlp93n50d7c5z43fia0d6r1hmfpnqa062fzrz8gypy5kqxi1f"
+ }
+ },
+ {
+ "ename": "control-mode",
+ "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
+ "sha256": "1biq4p2w8rqcbvr09gxbchjqlaixjf1fzv7xv8lpv81dlhi7dgz6",
+ "fetcher": "github",
+ "repo": "stephendavidmarsh/control-mode",
+ "unstable": {
+ "version": [
+ 20160624,
+ 1710
+ ],
+ "commit": "72d6179b60adc438aada74083b2bf4264b575de3",
+ "sha256": "0pqdh9bx2j9kla57sn349m90azk02wajapmazdm26cjdc2npw7jh"
+ }
+ },
+ {
+ "ename": "copy-as-format",
+ "commit": "42fe8a2113d1c15701abe7a7e0a68e939c3d789b",
+ "sha256": "1yij5mqm0dg6326yms0a2w8gs42kdxq0ih8dhkpdar54r0bk3m8k",
+ "fetcher": "github",
+ "repo": "sshaw/copy-as-format",
+ "unstable": {
+ "version": [
+ 20190523,
+ 258
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a0962b670e26b723ce304b14e3397da453aef84e",
+ "sha256": "0amgnl9d9sh69dh76vfb7ar6m995nka5zs3swa1pmqqnrmp8nr1w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 8
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d2376c64334fe3de65d89d6d138a2187f9bf802f",
+ "sha256": "0i158bkra7zgq75j08knq2camvlhbs2v8zrsxiyp0mc4q949xysd"
+ }
+ },
+ {
+ "ename": "copy-file-on-save",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "1mcwgkhd241aijnmzrrqqn9f7hiq5k1w4fj83v50aixrcs049gc3",
+ "fetcher": "github",
+ "repo": "emacs-php/emacs-auto-deployment",
+ "unstable": {
+ "version": [
+ 20200616,
+ 518
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "s"
+ ],
+ "commit": "811c8fe638c5616b6471525421e61a4470be3b52",
+ "sha256": "0j205ky9djlzhgrgjw4562lz2gnpi48las66w7ll8z20zkk4ylnm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "s"
+ ],
+ "commit": "5af6d5fcc35ddf9050eada96fd5f334bf0661b62",
+ "sha256": "1q9liby1dmwwmg2jz13gx2ld47bpcqb9c7vx4qgky75wb5c2q1xz"
+ }
+ },
+ {
+ "ename": "copyit",
+ "commit": "69bd50fd1f3865d48cec9fe2680d260d746248e5",
+ "sha256": "1m28irqixzl44c683dxvc5x6l3qcqlpy6jzk6629paqkdi5mx1c0",
+ "fetcher": "github",
+ "repo": "zonuexe/emacs-copyit",
+ "unstable": {
+ "version": [
+ 20190919,
+ 1258
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "c4f2c28e5b6270e8e3364341619f1154bb4e682e",
+ "sha256": "17xqpshwc48srwljpbad7vhx3rkxqav0ygp0ff4xh7wgy21fp2mp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "c4f2c28e5b6270e8e3364341619f1154bb4e682e",
+ "sha256": "17xqpshwc48srwljpbad7vhx3rkxqav0ygp0ff4xh7wgy21fp2mp"
+ }
+ },
+ {
+ "ename": "copyit-pandoc",
+ "commit": "69bd50fd1f3865d48cec9fe2680d260d746248e5",
+ "sha256": "03v448gh6glq126r95w4y6s2p08jgjhkc6zgsplx0v9d5f2mwaqk",
+ "fetcher": "github",
+ "repo": "zonuexe/emacs-copyit",
+ "unstable": {
+ "version": [
+ 20190919,
+ 1258
+ ],
+ "deps": [
+ "copyit",
+ "pandoc"
+ ],
+ "commit": "c4f2c28e5b6270e8e3364341619f1154bb4e682e",
+ "sha256": "17xqpshwc48srwljpbad7vhx3rkxqav0ygp0ff4xh7wgy21fp2mp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "copyit",
+ "pandoc"
+ ],
+ "commit": "c4f2c28e5b6270e8e3364341619f1154bb4e682e",
+ "sha256": "17xqpshwc48srwljpbad7vhx3rkxqav0ygp0ff4xh7wgy21fp2mp"
+ }
+ },
+ {
+ "ename": "coq-commenter",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1d6a40f8b4r8x08sy7qs335c9z744xmll326qzsjmxiqdkjv7h2k",
+ "fetcher": "github",
+ "repo": "Ailrun/coq-commenter",
+ "unstable": {
+ "version": [
+ 20170822,
+ 2309
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "7fe9a2cc0ebdb0b1e54a24eb7971d757fb588ac3",
+ "sha256": "1rq0j6ds9snv21k2lzyja96qxxz8nrai5aj1k1si9zshld28mapx"
+ }
+ },
+ {
+ "ename": "corral",
+ "commit": "7b0d7e326f0401de0488b77d39af7bd7b8e8fdd4",
+ "sha256": "1drccqk4qzkgvkgkzlrrfd1dcgj8ziqriijrjihrzjgjsbpzv6da",
+ "fetcher": "github",
+ "repo": "nivekuil/corral",
+ "unstable": {
+ "version": [
+ 20160502,
+ 701
+ ],
+ "commit": "e7ab6aa118e46b93d4933d1364bc273f57cd6911",
+ "sha256": "00055gzv032xxzqm1hffipljy8fzgsm58cbv8dzajh035jvdgpv7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 20
+ ],
+ "commit": "e7ab6aa118e46b93d4933d1364bc273f57cd6911",
+ "sha256": "00055gzv032xxzqm1hffipljy8fzgsm58cbv8dzajh035jvdgpv7"
+ }
+ },
+ {
+ "ename": "cort",
+ "commit": "1c99109a816303b1a14ff15e7a8300c73910e3a7",
+ "sha256": "1r1plngky2djgpbja0xr2j7hgj79d0l2jcjq4kj97q6874r4fswq",
+ "fetcher": "github",
+ "repo": "conao3/cort.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 910
+ ],
+ "deps": [
+ "ansi",
+ "cl-lib"
+ ],
+ "commit": "28c8422e84fd545f7a166f1904277b6b3f98398c",
+ "sha256": "06fcwadrn32i19qp30xw65976wplsw3xh2jm0zzsp9g0pir1snxb"
+ },
+ "stable": {
+ "version": [
+ 7,
+ 1,
+ 0
+ ],
+ "deps": [
+ "ansi"
+ ],
+ "commit": "a2d5ac5639e43dd73b5dbfa5bd011b7760b126fd",
+ "sha256": "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"
+ }
+ },
+ {
+ "ename": "cosmo",
+ "commit": "3ab914dfefcddf6ecd65261bc11bd3eb12929c79",
+ "sha256": "1pk34d0kv1jm2fq72qa5lj0y39x1yf2nbkjjg8jcj8ari28h9vfk",
+ "fetcher": "gitlab",
+ "repo": "montanari/cosmo-el",
+ "unstable": {
+ "version": [
+ 20170922,
+ 744
+ ],
+ "commit": "dd83b09a49a2843606b28279b674b2207040b36b",
+ "sha256": "0phcg81g3dy67s1hfymvj0lkcpwygwql8iixf940nv31qllgzvd7"
+ }
+ },
+ {
+ "ename": "counsel",
+ "commit": "06c50f32b8d603db0d70e77907e36862cd66b811",
+ "sha256": "0y8cb2q4mqvzan5n8ws5pjpm7bkjcghg5q19mzc3gqrq9vrvyzi6",
+ "fetcher": "github",
+ "repo": "abo-abo/swiper",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1428
+ ],
+ "deps": [
+ "swiper"
+ ],
+ "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+ "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13,
+ 0
+ ],
+ "deps": [
+ "swiper"
+ ],
+ "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
+ "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+ }
+ },
+ {
+ "ename": "counsel-bbdb",
+ "commit": "0ed9bcdb1f25a6dd743c1dac2bb6cda73a5a5dc2",
+ "sha256": "14d9mk44skpmyj0zkqwz97j80r630j7s5hfrrhlsafdpl5aafjxp",
+ "fetcher": "github",
+ "repo": "redguardtoo/counsel-bbdb",
+ "unstable": {
+ "version": [
+ 20181128,
+ 1320
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "df2890deb73b09f8055243bd91942ea887d9b7a1",
+ "sha256": "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "df2890deb73b09f8055243bd91942ea887d9b7a1",
+ "sha256": "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"
+ }
+ },
+ {
+ "ename": "counsel-codesearch",
+ "commit": "d3404c3cdfa6654ad80378ab258f0df68a6beeb9",
+ "sha256": "0y547cfxjq59zvi36av0rd1wdydf8d96ma438ja0x726f53nxd3g",
+ "fetcher": "github",
+ "repo": "abingham/emacs-counsel-codesearch",
+ "unstable": {
+ "version": [
+ 20180925,
+ 803
+ ],
+ "deps": [
+ "codesearch",
+ "counsel",
+ "ivy"
+ ],
+ "commit": "b7989fad3e06f301c31d5e896c42b6cc549a0e0c",
+ "sha256": "1qv82nvj0kddmajm6pniadnz96mqz8rhl0g2w2z5834r48higxqv"
+ }
+ },
+ {
+ "ename": "counsel-css",
+ "commit": "519a05a9f0e43f3e1dfac75759346476bfc40772",
+ "sha256": "1sckfq8kv68q1anqmslrvhcf83m7b5r0clny6q33b9x0qypkv9xp",
+ "fetcher": "github",
+ "repo": "hlissner/emacs-counsel-css",
+ "unstable": {
+ "version": [
+ 20200331,
+ 632
+ ],
+ "deps": [
+ "cl-lib",
+ "counsel"
+ ],
+ "commit": "6427dfcbda0d2bbd81db03f9d6b56b06c260ac02",
+ "sha256": "1g8gz5mz2qclia64qmgw02h5ivywgn46d6djlr7vcdfyp774cf64"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 7
+ ],
+ "deps": [
+ "cl-lib",
+ "counsel"
+ ],
+ "commit": "61a38c9d50fa9d1e38b2fa550d07130eb9322524",
+ "sha256": "0c8assn7dc8dhzyzk37x7y8s266pvr6hs0vh13y65z0sgxk59i2w"
+ }
+ },
+ {
+ "ename": "counsel-dash",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1ya7mnxlgb1rwr8xlg17mqh25dbkr0v04wccg9l8hwl63m7bfzpv",
+ "fetcher": "github",
+ "repo": "dash-docs-el/counsel-dash",
+ "unstable": {
+ "version": [
+ 20200103,
+ 1411
+ ],
+ "deps": [
+ "cl-lib",
+ "counsel",
+ "dash-docs"
+ ],
+ "commit": "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24",
+ "sha256": "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "counsel",
+ "dash",
+ "dash-functional",
+ "helm-dash"
+ ],
+ "commit": "a342340bbd8e50e4d1015e0b91d8ecd8f6cdf9f2",
+ "sha256": "1ma67lc4y9y3byrz8v6635w8q2scp6f2cqagq09k723k5nnwisfj"
+ }
+ },
+ {
+ "ename": "counsel-etags",
+ "commit": "87528349a3ab305bfe98f30c5404913272817a38",
+ "sha256": "1h3dlczm1m21d4h41vz9ngg5fi02g6f95qalfxdnsvz0d4w4yxk0",
+ "fetcher": "github",
+ "repo": "redguardtoo/counsel-etags",
+ "unstable": {
+ "version": [
+ 20200814,
+ 716
+ ],
+ "deps": [
+ "counsel"
+ ],
+ "commit": "5ec1e422b47163e17d0d5c1cf732068f93ffc39c",
+ "sha256": "0zwyff7lamlpqd52ifspf6bb78cpanlsy5gccp7ms7mnj82zhfxm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9,
+ 12
+ ],
+ "deps": [
+ "counsel"
+ ],
+ "commit": "9436bdbddc0deba88d97b5f31d62a2c95a52c400",
+ "sha256": "08glszh5y8y078vjrnmasxdfmxiics88hkva4nqq6spl0a0hrn9f"
+ }
+ },
+ {
+ "ename": "counsel-fd",
+ "commit": "b2e58e2a0bf3825d6ef43455fd3e60b33c88aaa2",
+ "sha256": "1ywyg2l1dx2rziw23b0i5m4xg4n8laarkq9wbbq80ma5pjb18ims",
+ "fetcher": "github",
+ "repo": "CsBigDataHub/counsel-fd",
+ "unstable": {
+ "version": [
+ 20200505,
+ 1344
+ ],
+ "deps": [
+ "counsel"
+ ],
+ "commit": "afba62f73d348cd7dfd10db039769788f5ae7ad4",
+ "sha256": "1v5iy8axlrapaav0vwhns32xbsnsay62dc9g50bv7n84cn1pvmmy"
+ }
+ },
+ {
+ "ename": "counsel-ffdata",
+ "commit": "f91f760ed71543b9c11661ab8131206a13d2e6e3",
+ "sha256": "0pmlvlpz22j7jk96456j2l365sq47rq0i9k5byfmzvm1s2p8nqvl",
+ "fetcher": "github",
+ "repo": "cireu/counsel-ffdata",
+ "unstable": {
+ "version": [
+ 20191017,
+ 1237
+ ],
+ "deps": [
+ "counsel",
+ "emacsql"
+ ],
+ "commit": "88c2348c4039d9e562bd3d9a364708b01037c283",
+ "sha256": "0sbp3f72dcln8y789vjdmg73lxvyb4qs4pb5mg452b3y8c8xlj30"
+ }
+ },
+ {
+ "ename": "counsel-gtags",
+ "commit": "fe8fe6af7826a4b73ac784fde8859130b9ad7096",
+ "sha256": "1vxxcqijn3nab4146p06vhw6dn8zwb7arbk1610bajsvkyid428y",
+ "fetcher": "github",
+ "repo": "FelipeLema/emacs-counsel-gtags",
+ "unstable": {
+ "version": [
+ 20200101,
+ 1701
+ ],
+ "deps": [
+ "counsel",
+ "seq"
+ ],
+ "commit": "5d2a8c2c2d358e374a576cf8a3a67f7997a8839b",
+ "sha256": "0qx7gdxgd28grz8pn57kb9qrsvdiysci6hya1fif3iqb1hbyg2mn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "counsel"
+ ],
+ "commit": "8066dd4cd6eb157345fb43788bacf2c5d746b497",
+ "sha256": "07kxv56p340a913673h30q65814ji7lwc6gsn9vcr18rsdaj7qwi"
+ }
+ },
+ {
+ "ename": "counsel-jq",
+ "commit": "556a010fac8da34a655e5bb2bee331c8af24b283",
+ "sha256": "07lmpzrz03kqa0xklrz0vxpgiadsnvy96vlwwp14nswr6i3r5hia",
+ "fetcher": "github",
+ "repo": "200ok-ch/counsel-jq",
+ "unstable": {
+ "version": [
+ 20191207,
+ 1334
+ ],
+ "deps": [
+ "ivy",
+ "swiper"
+ ],
+ "commit": "b14dfc5c18d991c3b3051c3cbb244d5923b3a327",
+ "sha256": "0f5h7nnqrkzbyxi4mgzahqzylszrqb25l3i24ml8yra2a23nl2w8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "swiper"
+ ],
+ "commit": "33d709f5b73a68093ec9414c774844d5f4983aee",
+ "sha256": "120i4j4bw3v1ybcwrfpn0v7jphhk7hhlp738m60fck97p9lwfyy0"
+ }
+ },
+ {
+ "ename": "counsel-notmuch",
+ "commit": "54fe0be4e8e8b90cd2dc3cc8b9c573694c8f773b",
+ "sha256": "1n4jp9fa5fbv55am0w1b832ncdih8gi6xflwabpwqqj4k5mj94p1",
+ "fetcher": "github",
+ "repo": "fuxialexander/counsel-notmuch",
+ "unstable": {
+ "version": [
+ 20181203,
+ 935
+ ],
+ "deps": [
+ "ivy",
+ "notmuch",
+ "s"
+ ],
+ "commit": "a4a1562935e4180c42524c51609d1283e9be0688",
+ "sha256": "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"
+ }
+ },
+ {
+ "ename": "counsel-org-capture-string",
+ "commit": "380d58ac9487f2fb1d4a791008fa60fb7165e7e3",
+ "sha256": "1jqp4qscv8shx1kfnrm6642a83ba3rpzm7v9hz46j3aw6f3psw9g",
+ "fetcher": "github",
+ "repo": "akirak/counsel-org-capture-string",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1114
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "dbb7d95f99d7910d76ffc2d024580088a34ec444",
+ "sha256": "1pymgwvjiagsx9dh9678x3i8ds1s7l4s182dr2p9rpjiwya48l6x"
+ }
+ },
+ {
+ "ename": "counsel-org-clock",
+ "commit": "d21e10ba82b4ae0f8101031be16bc5f7e80ba5d5",
+ "sha256": "16pai05qqaw31ghdy1h164qy56mqsdsf2925i0qhlhysslkki8gh",
+ "fetcher": "github",
+ "repo": "akirak/counsel-org-clock",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1109
+ ],
+ "deps": [
+ "dash",
+ "ivy"
+ ],
+ "commit": "c5f781f241f8b16b7c3b6fb3e56e2938ba1dd87a",
+ "sha256": "10img15z5lfn8ml8d6v5mjf1nr73i8mjn9xy23ydp16n2idshh3d"
+ }
+ },
+ {
+ "ename": "counsel-osx-app",
+ "commit": "926d0ab3d62d7114d6997944521b66ab969f6830",
+ "sha256": "0zc74szalyazbvi0lh3zy08kb8kzlwcwnc8d1sj5n23ymvvs5nn3",
+ "fetcher": "github",
+ "repo": "d12frosted/counsel-osx-app",
+ "unstable": {
+ "version": [
+ 20160821,
+ 809
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "b1c54cbc033c4939966910d85ce035503079e108",
+ "sha256": "0p3j60hjai3v8yny9zlzbxppy0pl9s3yf4x6z5rac6n86xx0iix8"
+ }
+ },
+ {
+ "ename": "counsel-projectile",
+ "commit": "389f16f886a385b02f466540f042a16eea8ba792",
+ "sha256": "1gshphxaa902kq878rnizn3k1zycakwqkciz92z3xxb3bdyy0hnl",
+ "fetcher": "github",
+ "repo": "ericdanan/counsel-projectile",
+ "unstable": {
+ "version": [
+ 20200522,
+ 1131
+ ],
+ "deps": [
+ "counsel",
+ "projectile"
+ ],
+ "commit": "77392cbbc42e98fc137b43f1db1b111ba6e2dd75",
+ "sha256": "131pww7lf88az5bsnaza8i60p7xcic271wpdr870zan8z1jh69k3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "counsel",
+ "projectile"
+ ],
+ "commit": "d71a3274cfa9d7425f1bcee3eb2dfed9714ac16d",
+ "sha256": "1k4n5lw6wwbgpwv0dg9dw0bjzi0hvbgkzrs1zmq36yhfz6y8gwnh"
+ }
+ },
+ {
+ "ename": "counsel-pydoc",
+ "commit": "110939c12b4e042a486e97be4c2a2426c5978ca6",
+ "sha256": "1a3vwh4jf5y03z95bd4blk75n6wjd24l6yw6vpr3991bi4qrxclz",
+ "fetcher": "github",
+ "repo": "co-dh/pydoc_utils",
+ "unstable": {
+ "version": [
+ 20171018,
+ 2042
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "1d8ff8ca3b9d69453cde423b1887fbb490a95c9e",
+ "sha256": "06kf93y8wb9nwvs70xi4lkd5x4g6sl8f83diy2wl7ha657dwx3m8"
+ }
+ },
+ {
+ "ename": "counsel-spotify",
+ "commit": "b386462518a5ebb6454f4d01582df98395239bcc",
+ "sha256": "1xs4km5vjhn6dnlmrscz7airip07n1ppybp8mr17hinb8scfpv47",
+ "fetcher": "github",
+ "repo": "Lautaro-Garcia/counsel-spotify",
+ "unstable": {
+ "version": [
+ 20200818,
+ 2055
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "2743ad52a9def53534fd505397fbe1ac49e53015",
+ "sha256": "1xrh06w3pszp4gygwsyjz7b5w2ffqmnh6rh891ydbhysp586hk0v"
+ }
+ },
+ {
+ "ename": "counsel-test",
+ "commit": "5b21ac3eaacfff27ca4def04f6cf7b4888b7fcf4",
+ "sha256": "0604kmj0ydfps2si0wvgjw41x2ds7dmsd53x50219f65d4w44nqr",
+ "fetcher": "github",
+ "repo": "xmagpie/counsel-test",
+ "unstable": {
+ "version": [
+ 20190819,
+ 1920
+ ],
+ "deps": [
+ "ivy",
+ "s"
+ ],
+ "commit": "7fc4e5d0d65c53edbcb4c25917bcf7faaea36ec7",
+ "sha256": "1xlcn99iizfv3wi701r6q176wicvpdsrz9k1jbyr65r6aw8am8fl"
+ }
+ },
+ {
+ "ename": "counsel-tramp",
+ "commit": "e1822b735b6bd533f658bd64ddccda29e19e9a5e",
+ "sha256": "1ga57v6whnpigciw54k3hs0idq4cbl35qrysarik72f46by859v5",
+ "fetcher": "github",
+ "repo": "masasam/emacs-counsel-tramp",
+ "unstable": {
+ "version": [
+ 20190616,
+ 122
+ ],
+ "deps": [
+ "counsel"
+ ],
+ "commit": "719b38ba2242cc1c6d1d79cab106c8c8b1afa775",
+ "sha256": "1jjgyps59xiyqdi392cfbx19n0znw3kj3fxbc5v3l56i3qm24bd4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 5
+ ],
+ "deps": [
+ "counsel"
+ ],
+ "commit": "da451df4c5f0ba32056ec600e8eb6a2c7ca4df08",
+ "sha256": "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"
+ }
+ },
+ {
+ "ename": "counsel-web",
+ "commit": "0dc010d5e4de5c5830ffac3ec0565faac4da7c19",
+ "sha256": "0phrna7bm20vmbnnxrri90i7qnbwcwkxrmycbaxkai5l2rk0ijy8",
+ "fetcher": "github",
+ "repo": "mnewt/counsel-web",
+ "unstable": {
+ "version": [
+ 20200313,
+ 5
+ ],
+ "deps": [
+ "counsel",
+ "request"
+ ],
+ "commit": "35c648b4cdd9f266ab54512a0fec2a3ca55d5bc6",
+ "sha256": "128vl9a5w8v2xzfi5xn9cqshxmcfq2pcmnkkqcxfmi401m2lm0bx"
+ }
+ },
+ {
+ "ename": "counsel-world-clock",
+ "commit": "7d9da8c45e7d06647f9591d80e83f851a7f3af85",
+ "sha256": "151vm7g7g0jwjlp0wrwlxrjnh9qsckc10whkfgaz9czzvvmsf4cv",
+ "fetcher": "github",
+ "repo": "kchenphy/counsel-world-clock",
+ "unstable": {
+ "version": [
+ 20190709,
+ 2211
+ ],
+ "deps": [
+ "ivy",
+ "s"
+ ],
+ "commit": "674e4c6b82a92ea765af97cc5f017b357284c7dc",
+ "sha256": "1wm6g6g5jlk3k2h2zb6mjzdnl95yr3x7hk8x1ikpbpfd4xdc64kb"
+ }
+ },
+ {
+ "ename": "countdown",
+ "commit": "ce30233b21be706ab3aaeeb61d5110143fa47c89",
+ "sha256": "0rjhc54f5dj55442b44yhvpicg98jg1jj1n0bv6alx699575vmym",
+ "fetcher": "github",
+ "repo": "xuchunyang/countdown.el",
+ "unstable": {
+ "version": [
+ 20190626,
+ 244
+ ],
+ "deps": [
+ "stream"
+ ],
+ "commit": "139dea91fc818d65944aca5f16c9626abbdfbf04",
+ "sha256": "0khwqwwsp2zhz7x2w7qcsdh5vmk3ybshj9isa6zr2ygag8aag13h"
+ }
+ },
+ {
+ "ename": "cov",
+ "commit": "d0f35ce436ac157955d6f92de96e14bef9ad69e3",
+ "sha256": "02wk8ikanl5lcwqb9wqc8xx5vwzhn2hpqpxdchg5mdi7fifa1rni",
+ "fetcher": "github",
+ "repo": "AdamNiederer/cov",
+ "unstable": {
+ "version": [
+ 20200630,
+ 1942
+ ],
+ "deps": [
+ "elquery",
+ "f",
+ "s"
+ ],
+ "commit": "8b9c7d7f4e53ab3a66cc4d9c88ac07fa57c7a5fe",
+ "sha256": "17msfsl7q78cs065a28z95hgcqvhbddlg9qwgldc1v62lgpqfd7a"
+ }
+ },
+ {
+ "ename": "coverage",
+ "commit": "cd70e138534551dd12ba4d165ba56fbd1e033241",
+ "sha256": "0ja7wsx2sj0h01sk1l3c0aidbs1ld4gj3kiwq6brs7r018sz45pm",
+ "fetcher": "github",
+ "repo": "trezona-lecomte/coverage",
+ "unstable": {
+ "version": [
+ 20191113,
+ 1958
+ ],
+ "deps": [
+ "cl-lib",
+ "ov"
+ ],
+ "commit": "6e3c6f2dcb759a76086adeeb1fdfe83e4f082482",
+ "sha256": "1l2vpyv22f77r2nd1bxf4mggmarb621dl7fnskp5hizhc5sfxi4f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib",
+ "ov"
+ ],
+ "commit": "6e3c6f2dcb759a76086adeeb1fdfe83e4f082482",
+ "sha256": "1l2vpyv22f77r2nd1bxf4mggmarb621dl7fnskp5hizhc5sfxi4f"
+ }
+ },
+ {
+ "ename": "coverlay",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1n0fblacwps94mhbdwpi22frhqp3pxg4323ghb79rvszb7in9i8j",
+ "fetcher": "github",
+ "repo": "twada/coverlay.el",
+ "unstable": {
+ "version": [
+ 20190414,
+ 940
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0beae208d0e7d746a94385428bd61aa5cd7ea828",
+ "sha256": "1qf1s0997n6bfx50bd0jln25p7z6y8pfibijnbqcg2011xmv5dqh"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0beae208d0e7d746a94385428bd61aa5cd7ea828",
+ "sha256": "1qf1s0997n6bfx50bd0jln25p7z6y8pfibijnbqcg2011xmv5dqh"
+ }
+ },
+ {
+ "ename": "cp5022x",
+ "commit": "761fcb0ff07d9746d68e9946c8b46e50c67cd1d8",
+ "sha256": "0v1jhkix01l299m67jag43rnps68m19zy83vvdglxa8dj3naz5dl",
+ "fetcher": "github",
+ "repo": "awasira/cp5022x.el",
+ "unstable": {
+ "version": [
+ 20120323,
+ 2335
+ ],
+ "commit": "ea7327dd75e54539576916f592ae1be98179ae35",
+ "sha256": "1z67x4a0aricd9q6i2w33k74alddl6w0rijjhzyxwml7ibhbvphz"
+ }
+ },
+ {
+ "ename": "cpanfile-mode",
+ "commit": "673e828a076ad806cdb69102a9d55f80ace45670",
+ "sha256": "1sflykfrhx9sn5dqlaa4s7w34nczh4xqwcig5rmlpwj9yl2mk2dm",
+ "fetcher": "github",
+ "repo": "zakame/cpanfile-mode",
+ "unstable": {
+ "version": [
+ 20161001,
+ 710
+ ],
+ "commit": "eda675703525198df1f76ddf250bffa40217ec5d",
+ "sha256": "07xivp1i9f884gs17lhp5jm0zk916c7gwazxnkm6m8rl3z2mcq0l"
+ }
+ },
+ {
+ "ename": "cpp-auto-include",
+ "commit": "e745bff580b3fa8a982f2bdfafbc9e238de47b7f",
+ "sha256": "0nzq7k656iy5x4hp7646rxqd0wyf0aspbjdsr8xfkgdp8m3yvaz5",
+ "fetcher": "github",
+ "repo": "emacsorphanage/cpp-auto-include",
+ "unstable": {
+ "version": [
+ 20191221,
+ 2319
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "08208ca7b9dc4ac940ce9ca1f79424d2f3d3d391",
+ "sha256": "0yspf51h5b7wbqvi9lbd22chyw799n5d05xdzl5axg0i33lzk7bq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "08208ca7b9dc4ac940ce9ca1f79424d2f3d3d391",
+ "sha256": "0yspf51h5b7wbqvi9lbd22chyw799n5d05xdzl5axg0i33lzk7bq"
+ }
+ },
+ {
+ "ename": "cpputils-cmake",
+ "commit": "9b84a159e97f7161d0705da5dd5e8c34ae5cb848",
+ "sha256": "0fswmmmrjv897n51nidmn8gs8yp00595g35vwjafsq6rzfg58j60",
+ "fetcher": "github",
+ "repo": "redguardtoo/cpputils-cmake",
+ "unstable": {
+ "version": [
+ 20181006,
+ 328
+ ],
+ "commit": "64b2b05eff5398b4cd522e66efaf14553ab18ff4",
+ "sha256": "0kmqk0ba9cacss3m34a8sdnmdir4ci7mv3j176ylm5af0x9yqc45"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 5
+ ],
+ "commit": "55e5c69554379632692a0fa20bfadeef9194fbdd",
+ "sha256": "1rk0bwdvfrp24z69flh7jg3c8vgvwk6vciixmmmldnrlwhpnbh6i"
+ }
+ },
+ {
+ "ename": "cpu-sos",
+ "commit": "612eddcec84562a1f060c9eb5a63f77ce88da7ea",
+ "sha256": "1mjbcyz8j1d0l6jnfa3bk4ba5dbb8xih56rvfri61caqmy73s6pz",
+ "fetcher": "github",
+ "repo": "oitofelix/cpu-sos",
+ "unstable": {
+ "version": [
+ 20200409,
+ 2356
+ ],
+ "commit": "1594b76d4ad3a6e3c471d82da366226d156e6226",
+ "sha256": "1pqw1gilj3m35fqaj5j51ggmxzwhdiks0k36hxmw3ihr63am0j5f"
+ }
+ },
+ {
+ "ename": "cql-mode",
+ "commit": "1084dd0ec0f2e8fe6fa8e97b322833c14e8e59d1",
+ "sha256": "0wdal8w0i73xjak2g0wazs54z957f4lj4n8qdmzpcylzpl1lqd88",
+ "fetcher": "github",
+ "repo": "Yuki-Inoue/cql-mode",
+ "unstable": {
+ "version": [
+ 20190315,
+ 225
+ ],
+ "commit": "d400c046850d3cf404778b2c47d6be4ff84ca04b",
+ "sha256": "016fs984fbn9k6q17mpxq8gbpspai71r52da8aq31f3jijxmrh5a"
+ }
+ },
+ {
+ "ename": "cquery",
+ "commit": "3cd3bffff0d2564c39735f844f9a02a660272caa",
+ "sha256": "01mw6aqiazpzcn6h5h5xcnra8a04yg1ibvpfajx70m5iw9f5w6l6",
+ "fetcher": "github",
+ "repo": "cquery-project/emacs-cquery",
+ "unstable": {
+ "version": [
+ 20190118,
+ 542
+ ],
+ "deps": [
+ "dash",
+ "lsp-mode"
+ ],
+ "commit": "555e50984ebda177421fdcdc8c76cb29235d9694",
+ "sha256": "1d1m1lgc93fkg7dxb8d6ch68vh6w1zp3yy31bv78vaz8siqrmk16"
+ }
+ },
+ {
+ "ename": "crappy-jsp-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "17m404kdz9avihz52xd7hn5qx06a6k74gmn0gbhly4gl84w3zc6y",
+ "fetcher": "github",
+ "repo": "magnars/crappy-jsp-mode",
+ "unstable": {
+ "version": [
+ 20140311,
+ 931
+ ],
+ "commit": "6c45ab92b452411cc0fab9bcee2f456276b4fc40",
+ "sha256": "12g6l6xlbs9h24q5lk8yjgk91xqd7r3v7r6czy10r09cmfjmkxbb"
+ }
+ },
+ {
+ "ename": "creamsody-theme",
+ "commit": "488f95b9e425726d641120130d894babcc3b3e85",
+ "sha256": "0l3mq43bszxrz0bxmxb76drp4c8721cw8akgk3l5a800wqbfp2l7",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-theme-creamsody",
+ "unstable": {
+ "version": [
+ 20170222,
+ 1058
+ ],
+ "deps": [
+ "autothemer"
+ ],
+ "commit": "32fa3f4e461da92700523b1b20e7b28974c19a26",
+ "sha256": "01q1l8ajw6lpp1bb4yp8r70d86hcl4hy0mz7x1hzqsvb7flhppp0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 7
+ ],
+ "deps": [
+ "autothemer"
+ ],
+ "commit": "32fa3f4e461da92700523b1b20e7b28974c19a26",
+ "sha256": "01q1l8ajw6lpp1bb4yp8r70d86hcl4hy0mz7x1hzqsvb7flhppp0"
+ }
+ },
+ {
+ "ename": "creds",
+ "commit": "81b032049ccc3837e8693f010b39716912f76bba",
+ "sha256": "0n11xxaf93bbc9ih25wj09zzw4sj32wb99qig4zcy8bpkl5y3llk",
+ "fetcher": "github",
+ "repo": "ardumont/emacs-creds",
+ "unstable": {
+ "version": [
+ 20140510,
+ 1706
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "b059397a7d59481f05fbb1bb9c8d3c2c69226482",
+ "sha256": "0l4bvk3m355b25d7pdnhczn3fckbq0rg2l4r0a0d94004ksvylqa"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "00ebefd10005c170b790a01380cb6a98f798ce5c",
+ "sha256": "169ai0xkh3988racnhaapxw0v1pbxvcaq470x1qacdzdpka4a7bs"
+ }
+ },
+ {
+ "ename": "creole",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1q1c6f953g39xal1p7rj8dlcx2crk5cz1q07zp8bgp5jx4nd2z9n",
+ "fetcher": "github",
+ "repo": "nicferrier/elwikicreole",
+ "unstable": {
+ "version": [
+ 20140924,
+ 1500
+ ],
+ "deps": [
+ "kv",
+ "noflet"
+ ],
+ "commit": "7d5cffe93857f6c75ca09ac79c0e47b8d4410e53",
+ "sha256": "18c4jfjnhb7asdhwj41g06cp9rz5xd7bbx2s1xvk6gahay27rlrv"
+ }
+ },
+ {
+ "ename": "creole-mode",
+ "commit": "f04f93ab9482dbabfdbe3f0c8186c62a9a80c8b3",
+ "sha256": "1lj9a0bgn7lmc2wyjzzvmpaz1f1spj02l51ki2wydjbfhxq61k0s",
+ "fetcher": "github",
+ "repo": "nicferrier/creole-mode",
+ "unstable": {
+ "version": [
+ 20130722,
+ 50
+ ],
+ "commit": "b5e79b2ec5f19fb5aacf689b5febc3e0b61515c4",
+ "sha256": "0japww5x89vd1ahjm2bc3biz6wxv94vvqq5fyyzkqsblgk5bys0h"
+ }
+ },
+ {
+ "ename": "cricbuzz",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "18nmr7rpbylqgfx5q3ps38wx9q1ndj06msgyjyc8lqpipbsz0pip",
+ "fetcher": "github",
+ "repo": "lepisma/cricbuzz.el",
+ "unstable": {
+ "version": [
+ 20180804,
+ 2254
+ ],
+ "deps": [
+ "dash",
+ "enlive",
+ "f",
+ "s"
+ ],
+ "commit": "0b95d45991bbcd2fa58d96ce921f6a57ba42c153",
+ "sha256": "1s77a2lfy7nnaxm3ai9dg8lbdxp0892z4gr0yxqrgzawc4qcbb3x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 6
+ ],
+ "deps": [
+ "dash",
+ "enlive",
+ "f",
+ "s"
+ ],
+ "commit": "0b95d45991bbcd2fa58d96ce921f6a57ba42c153",
+ "sha256": "1s77a2lfy7nnaxm3ai9dg8lbdxp0892z4gr0yxqrgzawc4qcbb3x"
+ }
+ },
+ {
+ "ename": "crm-custom",
+ "commit": "5e0752ba601a8d518d3c7fb54fd008602e7dc19f",
+ "sha256": "14w15skxr44p9ilhpswlgdbqfw8jghxi69l37yk4m449m7g9694c",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/crm-custom",
+ "unstable": {
+ "version": [
+ 20160117,
+ 6
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f1aaccf64306a5f99d9bf7ba815d7ea41c15518d",
+ "sha256": "1kl6blr4dlz40gfc845071nhfms4fm59284ja2177bhghy3wmw6r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f1aaccf64306a5f99d9bf7ba815d7ea41c15518d",
+ "sha256": "1kl6blr4dlz40gfc845071nhfms4fm59284ja2177bhghy3wmw6r"
+ }
+ },
+ {
+ "ename": "crontab-mode",
+ "commit": "0831d0f869cad4681b22296225307aa5bf185f3f",
+ "sha256": "1lwkj5c8435xgqi9d4zgnp9dzi06byibf69fv9p3x79kv565g3gd",
+ "fetcher": "github",
+ "repo": "emacs-pe/crontab-mode",
+ "unstable": {
+ "version": [
+ 20200330,
+ 920
+ ],
+ "commit": "9625228cbfce29ac3b443c6eff893ff828268f7d",
+ "sha256": "01s32ivn1fdqq99ms3s6a73hrqdc2r5khrg4jv3sniviql2k3i31"
+ }
+ },
+ {
+ "ename": "crux",
+ "commit": "575e3442a925500a5806e0b900208c1e6bfd11ae",
+ "sha256": "10lim1sngqbdqqwyq6ksqjjqpkm97aj1jk550sgwj28338lnw73c",
+ "fetcher": "github",
+ "repo": "bbatsov/crux",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1534
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "139eb6f1504b6885c86c658fd33c6d59bfac0a8c",
+ "sha256": "1889cn6pb8j55mi606nm1r6yywg64xa89s0hfbiksl4gx03yk2ip"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "5b3c8155a9e9fe6f189645d175976026a2dc7b8d",
+ "sha256": "0809pb8626i6z1dics3i1cs30p4qd8bzqcgr20lx9k3yq2abq2k7"
+ }
+ },
+ {
+ "ename": "cryptol-mode",
+ "commit": "de12333bb429d84b2c214ac7ebb0219f67838f4f",
+ "sha256": "08iq69gqmps8cckybhj9065b8a2a49p0rpzgx883qxnypsmjfmf2",
+ "fetcher": "github",
+ "repo": "thoughtpolice/cryptol-mode",
+ "unstable": {
+ "version": [
+ 20190531,
+ 2051
+ ],
+ "commit": "81ebbde83f7cb75b2dfaefc09de6a1703068c769",
+ "sha256": "1y24hssckqi8bapm24b6zw7lagdsh3gaacvq5pscgnjbqpk2rlvp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "a54d000d24757fad2a91ae2853b16a97ebe52771",
+ "sha256": "00wgbcw09xn9xi52swi4wyi9dj9p9hyin7i431xi6zkhxysw4q7w"
+ }
+ },
+ {
+ "ename": "crystal-mode",
+ "commit": "d4b9b47d7deecf0cf24a42b26d50021cb1219a69",
+ "sha256": "1fgpz7zab6nc6kvjzjsbvrbg8shf4by0f20cvjvyky8kym72q0hk",
+ "fetcher": "github",
+ "repo": "crystal-lang-tools/emacs-crystal-mode",
+ "unstable": {
+ "version": [
+ 20191121,
+ 1447
+ ],
+ "commit": "f9e4db16ff9fdc6a296363aa35d19cfb4926e472",
+ "sha256": "1x0lmb48bza2w52s15288hpbipafs87lj5lv0ldd1q4r9yv0i102"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "0fe6815201bebe4c5ff6857bd541d95b05132b10",
+ "sha256": "0r75dvc0jqcqi1qjns8zj132dnm0s6mvqlqynkis16nigbawix8m"
+ }
+ },
+ {
+ "ename": "crystal-playground",
+ "commit": "3e8d3a41e3307f415a144ff55e7a5fa95216cd6c",
+ "sha256": "0789x443qrvxgrcha6rag11fwyr0aj1ixw6xc0l4d34fsy76ppwh",
+ "fetcher": "github",
+ "repo": "jasonrobot/crystal-playground",
+ "unstable": {
+ "version": [
+ 20180830,
+ 501
+ ],
+ "deps": [
+ "crystal-mode"
+ ],
+ "commit": "fb3691b1281207b459c5be50015a626f356dc40d",
+ "sha256": "19bla2xhvr34vi33cibr2pc8jgasbwjj24vwnwx25w9471sbaszi"
+ }
+ },
+ {
+ "ename": "csgo-conf-mode",
+ "commit": "2298e3f840da549707ec3270c8303f4f63a674dc",
+ "sha256": "0djx6jraqlh9da2jqagj72vjnc8n3px2jp23jdy9rk40z10m5sbr",
+ "fetcher": "github",
+ "repo": "wynro/emacs-csgo-conf-mode",
+ "unstable": {
+ "version": [
+ 20161209,
+ 1619
+ ],
+ "commit": "57e7224f87a3ccc76b5564cc95fa0ff43bb6807c",
+ "sha256": "14wzh3rlq7xb8djncbjkfiq9hl5frp7gp42sz2ic7aky4qajbcdv"
+ }
+ },
+ {
+ "ename": "csharp-mode",
+ "commit": "736716bbcfd9c9fb1d10ce290cb4f66fe1c68f44",
+ "sha256": "17j84qrprq492dsn103dji8mvh29mbdlqlpsszbgfdgnpvfr1rv0",
+ "fetcher": "github",
+ "repo": "josteink/csharp-mode",
+ "unstable": {
+ "version": [
+ 20200728,
+ 1113
+ ],
+ "commit": "48851778e0f01a2b0395e054e418a1d8a1687a06",
+ "sha256": "0nikm2sn59ichbd3ikyhdn696fqj5ikzh79iniylza8gzmhxgddi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 2
+ ],
+ "commit": "5e47b7764b3f4c97c260a902e8072d444dbd0f1b",
+ "sha256": "1dnhpxcinrwc7dmwgzbg4lnly05h38f00zrfsjincvii6d8rjiw0"
+ }
+ },
+ {
+ "ename": "csound-mode",
+ "commit": "c940d29de11e43b4abf2901c466c94d426a21818",
+ "sha256": "047a78nhkn6qycsz8w9a0r1xyz5wyf4rds3z5yx9sn5wkv54w95d",
+ "fetcher": "github",
+ "repo": "hlolli/csound-mode",
+ "unstable": {
+ "version": [
+ 20200518,
+ 1546
+ ],
+ "deps": [
+ "dash",
+ "highlight",
+ "multi",
+ "shut-up"
+ ],
+ "commit": "b6e8167c927c400c291daaa46a8aea132834b07c",
+ "sha256": "12k3z7azwbg11gs8sc8j6h0rb3zy3kw19z6l9ynxys4vzm9ln7dm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "highlight",
+ "multi",
+ "shut-up"
+ ],
+ "commit": "389be230aecfea03e8043e8ea6884ea21ea9230b",
+ "sha256": "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"
+ }
+ },
+ {
+ "ename": "csproj-mode",
+ "commit": "49823bd653c3599bbc6662c99d0406e9886f1bab",
+ "sha256": "08w22bfk6fs6cxyqxrcv3314vwmh868200axss5fsdfgbggs4vy1",
+ "fetcher": "github",
+ "repo": "omajid/csproj-mode",
+ "unstable": {
+ "version": [
+ 20200801,
+ 1732
+ ],
+ "commit": "a7f0f4610c976a28c41b9b8299892f88b5d0336c",
+ "sha256": "0j8m7rhkf98zqkg6zydcks6qs4msw6vz51nbqya23hka2wpz7f81"
+ }
+ },
+ {
+ "ename": "css-autoprefixer",
+ "commit": "122e3813a5b8a57303345e9cd855f4d85eced6f0",
+ "sha256": "0q40k8jvs4nc57kcljsx5qzylz9ms0kbr3dic3mr3bj0w062b1qg",
+ "fetcher": "github",
+ "repo": "kkweon/emacs-css-autoprefixer",
+ "unstable": {
+ "version": [
+ 20180311,
+ 1600
+ ],
+ "commit": "386a5defc8543a3b87820f1761c075c7d1d93b38",
+ "sha256": "0ymba9bhzfi7kkrha4d4sn0hrc3sid4b5k8lhakwwdwafhym0jjb"
+ }
+ },
+ {
+ "ename": "css-comb",
+ "commit": "0afc24de7f847feaa128168d0fd8b2110242cca6",
+ "sha256": "1axwrvbc3xl1ixhh72bii3hhbi9d96y6i1my1rpvwqyd6f7wb2cf",
+ "fetcher": "github",
+ "repo": "channikhabra/css-comb.el",
+ "unstable": {
+ "version": [
+ 20160416,
+ 559
+ ],
+ "commit": "6fa45e5af8a8bd3af6c1154cde3540e32c4206ee",
+ "sha256": "0nvl6y90p9crk12j7aw0cqdjhli7xbrx3hqckxsnvrnxy4zax7nk"
+ }
+ },
+ {
+ "ename": "css-eldoc",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0k0yzpqwfh5rg8sbv60simdslag514768i0naimm8vyrvv87fzny",
+ "fetcher": "github",
+ "repo": "zenozeng/css-eldoc",
+ "unstable": {
+ "version": [
+ 20150125,
+ 323
+ ],
+ "commit": "c558ac4c470742c98a37290e6b409db28183df30",
+ "sha256": "1mgc6bd0dzrp1dq1yj8m2qxjnpysd8ppdk2yp96d3zd07zllw4rx"
+ }
+ },
+ {
+ "ename": "cssh",
+ "commit": "da3fcf6252f83d80de8a3ec564244e6cd22391eb",
+ "sha256": "10yvvyzqr06jvijmzis9clb1slzp2mn80yclis8wvrmg4p8djljk",
+ "fetcher": "github",
+ "repo": "dimitri/cssh",
+ "unstable": {
+ "version": [
+ 20150810,
+ 1709
+ ],
+ "commit": "2fe2754235225a59b63f08b130cfd4352e2e1c3f",
+ "sha256": "1xf2hy077frfz8qf91c0l0qppcjxzr4bsbb622bx6fidqkpa3a1a"
+ }
+ },
+ {
+ "ename": "csv",
+ "commit": "233f9de5f65fd8374f2c1912503c30905aa6691d",
+ "sha256": "1rvi5p27lsb284zqgv4cdqkbqc9r92axmvg7sv52rm7qcj8njwqd",
+ "fetcher": "gitlab",
+ "repo": "u11/csv.el",
+ "unstable": {
+ "version": [
+ 20161113,
+ 1510
+ ],
+ "commit": "aa1dfa1263565d5fac3879c21d8ddf5f8915e411",
+ "sha256": "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1
+ ],
+ "commit": "aa1dfa1263565d5fac3879c21d8ddf5f8915e411",
+ "sha256": "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"
+ }
+ },
+ {
+ "ename": "ctable",
+ "commit": "8bc29a8d518ce7a584277089bd4654f52ac0f358",
+ "sha256": "040qmlgfvjc1f908n52m5ll2fizbrhjzbd0kgrsw37bvm3029rx1",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-ctable",
+ "unstable": {
+ "version": [
+ 20171006,
+ 11
+ ],
+ "commit": "b8830d1ca95abb100a81bc32011bd17d5ecba000",
+ "sha256": "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "08a017bde6d24ea585e39ce2637bebe28774d316",
+ "sha256": "13zq8kym1y6bzrpxbcdz32323a6azy5px4ridff6xh8bfprwlay3"
+ }
+ },
+ {
+ "ename": "ctags-update",
+ "commit": "e5d0c347ff8cf6e0ade80853775fd6b84f387fa5",
+ "sha256": "07548jjpx4var2817y47i6br8iicjlj66n1b33h0av6r1h514nci",
+ "fetcher": "github",
+ "repo": "jixiuf/ctags-update",
+ "unstable": {
+ "version": [
+ 20190609,
+ 613
+ ],
+ "commit": "67faf248b92388442958a069263c62a345425a1b",
+ "sha256": "0442jdxvn33i0bnb4fspvpdn66gxqyazyc6n3wqjmpn3fqvzwsrp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "67faf248b92388442958a069263c62a345425a1b",
+ "sha256": "0442jdxvn33i0bnb4fspvpdn66gxqyazyc6n3wqjmpn3fqvzwsrp"
+ }
+ },
+ {
+ "ename": "ctl-mode",
+ "commit": "38d2279fd05bb48f0d0e2276c605cd92892d0196",
+ "sha256": "0fydq779b0y6hmh8srfdimr5rl9mk3sj08rbvlljxv3kqv5ajczj",
+ "fetcher": "github",
+ "repo": "yyr/emacs-grads",
+ "unstable": {
+ "version": [
+ 20151202,
+ 1006
+ ],
+ "commit": "1a13051db21b999c7682a015b33a03096ff9d891",
+ "sha256": "1d89gxyzv0z0nk7v1aa4qa0xfms2g2dsrr07cw0d99xsnyxfky31"
+ }
+ },
+ {
+ "ename": "ctrlf",
+ "commit": "46073c430c271aa1971e27948e7f6d4b65b3d533",
+ "sha256": "01d2zv7x588r55namcda58l21lg5sbwcn1ycnvg5md69pv5cg461",
+ "fetcher": "github",
+ "repo": "raxod502/ctrlf",
+ "unstable": {
+ "version": [
+ 20200802,
+ 1422
+ ],
+ "commit": "5a13161bb2ef2908dd5a00b3b6aa7b8dacfecd8a",
+ "sha256": "09gd2zi3wvg9vhaxz6y1zii0n8nxhffp9qyjsgswyzaa1j7dzv2i"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "b91f88a24c05408757ae9c9b5ce74d46d6ce20d8",
+ "sha256": "1ffcjf0ff0748gqipkklz6jmcj4f3blgzdcax93ql9ws8bmvlsdc"
+ }
+ },
+ {
+ "ename": "ctune",
+ "commit": "927ecd888bc00abff13f5fc335a88dffc2bf6779",
+ "sha256": "1ymy508h19w6c7z93nww9fzirzk84w24j3dpbj08d08bifndhj1q",
+ "fetcher": "github",
+ "repo": "maurooaranda/ctune",
+ "unstable": {
+ "version": [
+ 20190914,
+ 1305
+ ],
+ "commit": "d7643461f5aa33cc04e4d808123e4ed1d85500ee",
+ "sha256": "03gby644xqah7q9sjba9w6c7askc1s7ka4bx814x6vrlla6089h4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "d7643461f5aa33cc04e4d808123e4ed1d85500ee",
+ "sha256": "03gby644xqah7q9sjba9w6c7askc1s7ka4bx814x6vrlla6089h4"
+ }
+ },
+ {
+ "ename": "ctxmenu",
+ "commit": "6fc4f51bb6ce8fa9e37c0aeb51696b1980aece0c",
+ "sha256": "03g9px858mg19wapqszwav3599slljdyam8bvn1ri85fpa5ydvdp",
+ "fetcher": "github",
+ "repo": "aki2o/emacs-ctxmenu",
+ "unstable": {
+ "version": [
+ 20140303,
+ 2142
+ ],
+ "deps": [
+ "log4e",
+ "popup",
+ "yaxception"
+ ],
+ "commit": "5c2376859562b98c07c985d2b483658e4c0e888e",
+ "sha256": "1jlr2miwqsg06hk2clvsrw9fa98m2n76qfq8qv5svrb8dpil04wb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "log4e",
+ "popup",
+ "yaxception"
+ ],
+ "commit": "5c2376859562b98c07c985d2b483658e4c0e888e",
+ "sha256": "1jlr2miwqsg06hk2clvsrw9fa98m2n76qfq8qv5svrb8dpil04wb"
+ }
+ },
+ {
+ "ename": "cubicaltt",
+ "commit": "1be42b49c206fc4f0df6fb50fed80b3d9b76710b",
+ "sha256": "1wgy6965cnw201wx4a2pn71sa40mh2712y0d0470klr156krj0n9",
+ "fetcher": "github",
+ "repo": "mortberg/cubicaltt",
+ "unstable": {
+ "version": [
+ 20171108,
+ 1402
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a5c6f94bfc0da84e214641e0b87aa9649ea114ea",
+ "sha256": "1jwyqc86fyrxx9vkirgg97v6d1zdyg2f1l9nhvpjzm7zf77vmb98"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3257eadf70826fb3ef060c46f85b7a4d60464b1d",
+ "sha256": "1c5nfzsj4bi2rk3d3r2iw03kkpc5dg9p3q3xzj7cxfg2wmg1xaxk"
+ }
+ },
+ {
+ "ename": "cubicle-mode",
+ "commit": "81c29c912b83cbb536d30ba04130b39c0e5e5969",
+ "sha256": "0xcmd0s6dfryl1ihfaqq0pfqc906yzzwk3d3nv8g6b6w78pv1lzv",
+ "fetcher": "github",
+ "repo": "cubicle-model-checker/cubicle",
+ "unstable": {
+ "version": [
+ 20171009,
+ 1957
+ ],
+ "commit": "c2fba597da83b9ddc1195f1c8710d5330db24735",
+ "sha256": "0gprqhm38y5dcpkmhy1i6rv7pa5l8271b71284p1g90p2iyvm89g"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "commit": "b043b0247bf9b144a5c3360e5096a4b141dd1fb6",
+ "sha256": "0zsfz1h68xpbgdb1ln8l081vwrgd7i01ap4rjlyrsk8j3q3ry5wz"
+ }
+ },
+ {
+ "ename": "cucumber-goto-step",
+ "commit": "d78d7abccfd9bcebf6888032639923327ad25309",
+ "sha256": "1ydsd455dvaw6a180b6570bfgg0kxn01sn6cb57smqj835am6gx8",
+ "fetcher": "github",
+ "repo": "gstamp/cucumber-goto-step",
+ "unstable": {
+ "version": [
+ 20131210,
+ 519
+ ],
+ "deps": [
+ "pcre2el"
+ ],
+ "commit": "f2713ffb26ebe1b757d1f2ea80e900b55e5895aa",
+ "sha256": "184plai32sn0indvi1dma6ykz907zgnrdyxdw6f5mghwca96g5kx"
+ }
+ },
+ {
+ "ename": "cuda-mode",
+ "commit": "d21cf17a4a9ae391e2e9cf9be3399095fa23ef55",
+ "sha256": "0ip4vax93x72bjrh6prik6ddmrvszpsmgm0fxfz772rp24smc300",
+ "fetcher": "github",
+ "repo": "chachi/cuda-mode",
+ "unstable": {
+ "version": [
+ 20151214,
+ 321
+ ],
+ "commit": "9ae9eacfdba3559b5456342d0d03296290df8ff5",
+ "sha256": "1ms0z5zplcbdwwdbgsjsbm32i57z9i2i8j9y3wm0pwzyz4zr36zy"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "c8cf7d92b8039cdd0bd525c258ab42f49a0f91cf",
+ "sha256": "1y685qfdkjyl7dwyvivlgc2lwp102vy6hvcb9zynw84c49f726sn"
+ }
+ },
+ {
+ "ename": "curl-to-elisp",
+ "commit": "11453864d71c7853bc743341db7ca071126ca160",
+ "sha256": "16qyw6yx5vlm32ikmgxhf162jjl1nq7lmrcn6g43fkk93id0374n",
+ "fetcher": "github",
+ "repo": "xuchunyang/curl-to-elisp",
+ "unstable": {
+ "version": [
+ 20200427,
+ 219
+ ],
+ "commit": "25449962e758607762b3df76fc5501cfeedbbd38",
+ "sha256": "1yk5j8sb1li2zh1w5awwn83rhcwr1g492an4ajxkyikj3b7ljyfv"
+ }
+ },
+ {
+ "ename": "currency-convert",
+ "commit": "cc9d610a29376bb1c24f77669ee6a05bcf60023d",
+ "sha256": "1i7hs3c7lwfnp7d9ql6bl5l0s9byfnc3n68gkk57zl5imsfhbgg1",
+ "fetcher": "github",
+ "repo": "lassik/emacs-currency-convert",
+ "unstable": {
+ "version": [
+ 20200611,
+ 815
+ ],
+ "commit": "a8bd12654c34380b87ac6ffece32f43b723b6f0f",
+ "sha256": "1np43lwrwfwnnff98230ahaqdifiq2nzd361ypsg8cp8qja4zwwi"
+ }
+ },
+ {
+ "ename": "cursor-test",
+ "commit": "6439f7561cfab4f6f3beb132d2a65e94b3deba9e",
+ "sha256": "1c1d5xq4alamlwyqxjx557aykz5dw87acp0lyglsrzzkdynbwlb1",
+ "fetcher": "github",
+ "repo": "ainame/cursor-test.el",
+ "unstable": {
+ "version": [
+ 20131207,
+ 1732
+ ],
+ "commit": "e09956e048b88fd2ee8dd90b5678baed8b04d31b",
+ "sha256": "0wmnhizv4jfcl1w9za4ydxf6xwxgm5vwmn1zi5vn70zmv4d6r49l"
+ }
+ },
+ {
+ "ename": "cwl-mode",
+ "commit": "2309764cd56d9631dd97981a78b50b9fe793a280",
+ "sha256": "0x8akxxmphpgsc2m78h6b0fs6vvcfvmi1q2jrz8hwlmai8f7zi9j",
+ "fetcher": "github",
+ "repo": "tom-tan/cwl-mode",
+ "unstable": {
+ "version": [
+ 20171205,
+ 945
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "bdeb9c0734126f940db80bfb8b1dc735dab671c7",
+ "sha256": "0x9rvyhgy7ijq2r9pin94jz7nisrw6z91jch7d27lkhrmyb1rwk3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 5
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "bdeb9c0734126f940db80bfb8b1dc735dab671c7",
+ "sha256": "0x9rvyhgy7ijq2r9pin94jz7nisrw6z91jch7d27lkhrmyb1rwk3"
+ }
+ },
+ {
+ "ename": "cyberpunk-2019-theme",
+ "commit": "1821a436d3d9f7c46cbd198f93951aa35bbf6ad7",
+ "sha256": "09bg3avrsca308y3g86mrzi6klzr4ky8k5y2nbsmwarrarv29qyy",
+ "fetcher": "github",
+ "repo": "the-frey/cyberpunk-2019",
+ "unstable": {
+ "version": [
+ 20191008,
+ 1133
+ ],
+ "commit": "7e40c37210c363b2819fd9bb98a73101d7a3c206",
+ "sha256": "0fgh39lyq49b4zm10fiqhqzafwrg2vmpfn8k1frdkadansq4jl7z"
+ }
+ },
+ {
+ "ename": "cyberpunk-theme",
+ "commit": "4c632d1e501d48dab54432ab111ce589aa229125",
+ "sha256": "0l2bwb5afkkhrbh99v2gns1vil9s5911hbnlq5w35nmg1wvbmbc9",
+ "fetcher": "github",
+ "repo": "n3mo/cyberpunk-theme.el",
+ "unstable": {
+ "version": [
+ 20200601,
+ 1632
+ ],
+ "commit": "cbd0d7193e69ff9e98262eb06aee3d27667ff5f5",
+ "sha256": "16nd57rwld78brcwx6vjib2v3l9xsiv7bxhbn2kilg1p75m3ngpx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 22
+ ],
+ "commit": "81004fc774d373777d426926fc11abcf1e7ab334",
+ "sha256": "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"
+ }
+ },
+ {
+ "ename": "cycbuf",
+ "commit": "39f1919271df023898e60f5e7635928dc905083f",
+ "sha256": "0gyj48h5wgjawqq3j4hgk5a8d23nffmhd1q53kg7b9vfsda51hbw",
+ "fetcher": "github",
+ "repo": "martinp26/cycbuf",
+ "unstable": {
+ "version": [
+ 20131203,
+ 2037
+ ],
+ "commit": "1079b41c3eb27d65b66d4399959bb6253f84858e",
+ "sha256": "1d5i8sm1xrsp4v4myidfyb40hm3wp7hgva7dizg9gbb7prmn1p5w"
+ }
+ },
+ {
+ "ename": "cycle-resize",
+ "commit": "8806af6662c8250c7533f643fe1c277ff0466651",
+ "sha256": "0vp57plwqx4nf3pbv5g4frjriq8niiia9xc3bv6c3gzd4a0zm7xi",
+ "fetcher": "github",
+ "repo": "pierre-lecocq/cycle-resize",
+ "unstable": {
+ "version": [
+ 20160521,
+ 1557
+ ],
+ "commit": "7d255d6fe85f12c967a0f7fcfcf18633be194c88",
+ "sha256": "1bmdjr99g50dzr4y1jxixfjhqmhrzblmpiyjhh5l5gqmdhammm4k"
+ }
+ },
+ {
+ "ename": "cycle-themes",
+ "commit": "f24c358fd616a86f6594001deddee4d62dbb0bc6",
+ "sha256": "1whp9q26sgyf59wygbrvdf9gc94bn4dmhr2f2qivpajx550fjfbc",
+ "fetcher": "github",
+ "repo": "toroidal-code/cycle-themes.el",
+ "unstable": {
+ "version": [
+ 20150403,
+ 309
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6e125d11fdbc6b78fc9f219eb2609a5e29815898",
+ "sha256": "125s6vwbb9zpx6h3vrxnn7nr8pb45vhxd70ba2r3f87dlxah93am"
+ }
+ },
+ {
+ "ename": "cyphejor",
+ "commit": "ad7cacfa39d8f85e26372ef21898663aebb68e43",
+ "sha256": "18l5km4xm5j3vv19k3fxs8i3rg4qnhrvx7b62vmyfcqmpiasrh6g",
+ "fetcher": "github",
+ "repo": "mrkkrp/cyphejor",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1339
+ ],
+ "commit": "763531d077d02a4a45c58332b8a8b8300c090678",
+ "sha256": "0q0wjybmasrv04r09linnb3n1m7g7qylaynzmmsdrk59fwzda3c2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "d7842388a1872b165489624a1a68f536de97e28d",
+ "sha256": "1gi7rp0vf3iahljzjhs3rj9c0rvfcfs93hr8a3hl0ch3h9qq8ng2"
+ }
+ },
+ {
+ "ename": "cypher-mode",
+ "commit": "ef558e7425adfe87202475babfbc1a679dc4cde5",
+ "sha256": "174rfbm7yzkznkfjmh9bdnm5fgqv9bjwm85h39317pv1g8c3mgv0",
+ "fetcher": "github",
+ "repo": "fxbois/cypher-mode",
+ "unstable": {
+ "version": [
+ 20151110,
+ 1142
+ ],
+ "commit": "ce8543d7877c736c574a17b49874c9dcdc7a06d6",
+ "sha256": "0vbcq807jpjssabmyjcdkpp6nnx1288is2c6x79dkrviw2xxw3qf"
+ }
+ },
+ {
+ "ename": "cython-mode",
+ "commit": "be9bfabe3f79153cb859efc7c3051db244a63879",
+ "sha256": "0asai1f1pncrfxx296fn6ky09hj1qam5j0dpxxkzhy0a34xz0k2i",
+ "fetcher": "github",
+ "repo": "cython/cython",
+ "unstable": {
+ "version": [
+ 20190111,
+ 2150
+ ],
+ "commit": "fcfd16c7467c31f255287a73f36cf66b32bc096c",
+ "sha256": "1yscd5q1qqw8xx4ds2pifpiyzhdnx0la5n50mxqjb3hlky7p48wh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 29,
+ 21
+ ],
+ "commit": "976f5483c6df8570f34076ef25af7e7512dd9347",
+ "sha256": "1951kwfnngy2k7m3adqi17rb7f17yrr5n9zpvvmw7vxpfmca66ka"
+ }
+ },
+ {
+ "ename": "czech-holidays",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0yp04d7czypxd22mvd84n4mgm6f4mfwmbzyfjiiqc7va60bbsis0",
+ "fetcher": "github",
+ "repo": "chkhd/czech-holidays",
+ "unstable": {
+ "version": [
+ 20160113,
+ 1752
+ ],
+ "commit": "d136fa09a152b3cd80db6d55c7b4ddfe07b90fbf",
+ "sha256": "1ck1a61m0kjynqwzbw9hnc7y2a6gd6l1430wm7mw3qqsq959qwm6"
+ }
+ },
+ {
+ "ename": "d-mode",
+ "commit": "3c13e9ccc358743de660b1f0e89d6bb709c42bff",
+ "sha256": "060k9ndjx0n5vlpzfxlv5zxnizx72d7y9vk7gz7gdvpm6w2ha0a2",
+ "fetcher": "github",
+ "repo": "Emacs-D-Mode-Maintainers/Emacs-D-Mode",
+ "unstable": {
+ "version": [
+ 20191009,
+ 903
+ ],
+ "commit": "cfd1d0869d51b7548b3fb738b2f2593c76533d44",
+ "sha256": "0vkl470vvmxap8ca773a0jvjvalmvdbbax3qvgjdclp54ml75al4"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 10
+ ],
+ "commit": "b5d936dfd4c1d0b68a0d911aadd4ba25df7af0e4",
+ "sha256": "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"
+ }
+ },
+ {
+ "ename": "dactyl-mode",
+ "commit": "72d503380511d2d6580b9522b6e0bd2d800bdebe",
+ "sha256": "0ppcabddcpwshfd04x42nbrbkagbyi1bg4vslysnlxn4kaxjs7pm",
+ "fetcher": "github",
+ "repo": "luxbock/dactyl-mode",
+ "unstable": {
+ "version": [
+ 20140906,
+ 1725
+ ],
+ "commit": "cc55fe6b987271d9647492b8df4c812d884f661f",
+ "sha256": "0fp40cyamchc9qq5vbpxgq3yp6vs8p3ncg46mjzr54psy3fc86dm"
+ }
+ },
+ {
+ "ename": "dad-joke",
+ "commit": "484d571b2737f7c613816333afdde6460c64e635",
+ "sha256": "1cg8iaq79w5zx1s3dirdl7ymcp162mmsy5c4vly90v20yrijblad",
+ "fetcher": "github",
+ "repo": "davep/dad-joke.el",
+ "unstable": {
+ "version": [
+ 20170928,
+ 658
+ ],
+ "commit": "bee47e7b746b403228fa7d7361cb095de19ac9ba",
+ "sha256": "14snnnjs28jg6k8x6g90m3dbcx10306ipcd256d3l6czk9p17vpd"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "commit": "bee47e7b746b403228fa7d7361cb095de19ac9ba",
+ "sha256": "14snnnjs28jg6k8x6g90m3dbcx10306ipcd256d3l6czk9p17vpd"
+ }
+ },
+ {
+ "ename": "daemons",
+ "commit": "1f780485e72ae2885f698fdab0156855f70831f1",
+ "sha256": "14givkrw9p0m261hawahzi0n8jarapb63kv1s62faq57mqnq23jr",
+ "fetcher": "github",
+ "repo": "cbowdon/daemons.el",
+ "unstable": {
+ "version": [
+ 20200421,
+ 912
+ ],
+ "commit": "a26155d04cec399ffe25b88f71cbfa4ada784569",
+ "sha256": "0bvfcrr3blyz0861ysfw2qbfh1iq8nfdh1kw9wz4m7g6big27qgd"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "commit": "dcf42cb3178d7245d6d49de346d5e2b44e5b7498",
+ "sha256": "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"
+ }
+ },
+ {
+ "ename": "dakrone-light-theme",
+ "commit": "f3a88022a5f68d2fe01e08c2e99cfe380e3697b7",
+ "sha256": "1njlpvfa4ar14zn51fdmby55vjgfkpskizg5rif2f3zn6y4np2xw",
+ "fetcher": "github",
+ "repo": "dakrone/dakrone-light-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 2140
+ ],
+ "commit": "06f198dc8b4ca7421990b30a23d89c8e0b8c5de4",
+ "sha256": "01vqlsv44h2ah79c8jqv8vkqvgmhqx2w3qbq07l7fx3zkpgjfmpy"
+ }
+ },
+ {
+ "ename": "dakrone-theme",
+ "commit": "dcc07077b47d7c710c7f2d4919d791ed16ed5b26",
+ "sha256": "0ma4rfmgwd6k24jzn6pgk46b88jfix7mz0ib7c7r90h5vmpiq814",
+ "fetcher": "github",
+ "repo": "dakrone/dakrone-theme",
+ "unstable": {
+ "version": [
+ 20170801,
+ 1933
+ ],
+ "commit": "232ad1be5f3572dcbdf528f1655109aa355a6937",
+ "sha256": "0p51zni42hv090vv6mk9v0v88achmgxlsmlr40y8y6ng57w51r4s"
+ }
+ },
+ {
+ "ename": "danneskjold-theme",
+ "commit": "557244a3b60c7cd3ca964ff843aa1e9d5a1e32ec",
+ "sha256": "0cwab7qp293g92n9mjjz2vpg1pz2q3d40hfszf29rci89wsf3yxl",
+ "fetcher": "github",
+ "repo": "rails-to-cosmos/danneskjold-theme",
+ "unstable": {
+ "version": [
+ 20200724,
+ 1525
+ ],
+ "commit": "5b458ce976acf948aa101a05994b68baf9b01846",
+ "sha256": "16496dr846whv056xq2y994csr55zjd8906brkav2zjhj7qy0w1r"
+ }
+ },
+ {
+ "ename": "dante",
+ "commit": "5afa8226077cbda4b76f52734cf8e0b745ab88e8",
+ "sha256": "1j0qwjshh2227k63vd06bvrsccymqssx26yfzams1xf7bp6y0krs",
+ "fetcher": "github",
+ "repo": "jyp/dante",
+ "unstable": {
+ "version": [
+ 20200416,
+ 1217
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "f",
+ "flycheck",
+ "haskell-mode",
+ "lcr",
+ "s"
+ ],
+ "commit": "c516bc9e8f09e0f928de9a93e82acfb382636f5c",
+ "sha256": "16msp36vflq10w0h1hh6fy7z9gmqzhr61w0xali2jkb203v1pi6d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "f",
+ "flycheck",
+ "haskell-mode",
+ "lcr",
+ "s"
+ ],
+ "commit": "38b589417294c7ea44bf65b73b8046d950f9531b",
+ "sha256": "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"
+ }
+ },
+ {
+ "ename": "dap-mode",
+ "commit": "67942b34975015dd6f2b5f6b43829cc13b1832c6",
+ "sha256": "041mmla70ld5783gn8g360klk3cw39pir5d41544zf3yssk12qpn",
+ "fetcher": "github",
+ "repo": "emacs-lsp/dap-mode",
+ "unstable": {
+ "version": [
+ 20200814,
+ 1819
+ ],
+ "deps": [
+ "bui",
+ "dash",
+ "dash-functional",
+ "f",
+ "lsp-mode",
+ "lsp-treemacs",
+ "posframe",
+ "s"
+ ],
+ "commit": "0c11dd205152f3b8712362e4bc8919def7f312a4",
+ "sha256": "1j7vxf42icl4nsnza91lp8l3lgrhn6y11xi9ql5lji5vfgj94mk6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "bui",
+ "dash",
+ "dash-functional",
+ "f",
+ "lsp-mode",
+ "lsp-treemacs",
+ "posframe",
+ "s"
+ ],
+ "commit": "35db94e81c592246675f300aaca4a70966b8a5fc",
+ "sha256": "1d4hdydfk86d4slibigyhwng8wx3vzyap8hp5iv0h7wr6868m4iv"
+ }
+ },
+ {
+ "ename": "darcsum",
+ "commit": "be27e728327016b819535ef8cae10020e5a07c2e",
+ "sha256": "1qr3jh05awxxh2qi1sv542vkryfja44zswa5wxwj7g2dr6ck9jr1",
+ "fetcher": "github",
+ "repo": "emacsmirror/darcsum",
+ "unstable": {
+ "version": [
+ 20190316,
+ 2215
+ ],
+ "commit": "6a8b690539d133c5e3d17cb23fe4365fbb6fb493",
+ "sha256": "1ajdm0p8rdyaqy0wwfslb1mqj9b2dpk8xkljjw6ddacph5hflhcm"
+ }
+ },
+ {
+ "ename": "darcula-theme",
+ "commit": "23c8f10205187babb17e3abc3dc40eb1938e6640",
+ "sha256": "1n9mpkdyf5jpxc5azfs38ccp9p0b5ii87sz4c7z4khs94y0gxqh3",
+ "fetcher": "gitlab",
+ "repo": "fommil/emacs-darcula-theme",
+ "unstable": {
+ "version": [
+ 20171227,
+ 1845
+ ],
+ "commit": "d9b82b58ded9014985be6658f4ab17e26ed9e93e",
+ "sha256": "1y8rsc63nl4n43pvn283f1vcpqyjnv6xl60fwyscwrqaz19bsnl1"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "2ecd466ffa7a3157b9ddcd7545b6fb8ad308c976",
+ "sha256": "1h5lssnc1am54hkprnp61bsj5fnm8j556q2gbhljfjgrdwnqv8ky"
+ }
+ },
+ {
+ "ename": "dark-krystal-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "056aql35502sgvdpbgphpqdxzbjf4ay01rra6pm11c1dya8avv0j",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-dark-krystal-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1300
+ ],
+ "commit": "79084b99665dc9ffb0ec62cc092349a5ecebebbc",
+ "sha256": "1d3cdsaba71qxdqrbj1jrlq8a0iw3h50l5grcdjvxixdnf5nsa4c"
+ }
+ },
+ {
+ "ename": "dark-mint-theme",
+ "commit": "de74e734ae75df051475e60e79d4f5ad5bc128ae",
+ "sha256": "0rljpwycarbn8rnac9vz7n23j69wmx35gn5dx77v0f0ws8ni4k9m",
+ "fetcher": "github",
+ "repo": "shaunvxc/dark-mint-theme",
+ "unstable": {
+ "version": [
+ 20160302,
+ 642
+ ],
+ "commit": "95c30a26de31549cd341184ba9ab2be8fdc67eba",
+ "sha256": "052k8mqxx8lkadxyz6rwa7l741rwbd1blk2ggpsj2s1g6p9l68a1"
+ }
+ },
+ {
+ "ename": "dark-souls",
+ "commit": "535577ce57bd772aca9f66e27485b0f58a7d35c5",
+ "sha256": "1ilsn657mpl7v8vkbzqf3gp0gmvy0dgynfsn8w4cb49qaiy337xc",
+ "fetcher": "github",
+ "repo": "tomjakubowski/dark-souls.el",
+ "unstable": {
+ "version": [
+ 20140314,
+ 1128
+ ],
+ "commit": "94122b1215423e58dcf18584a2bd022029d54d4b",
+ "sha256": "1w0y2j0j9n107dbk7ksr9bipshjfs9dk08qbs9m6h5aqh4hmwa4r"
+ }
+ },
+ {
+ "ename": "darkburn-theme",
+ "commit": "a04dd517e02bc4b4a62d956aa901a727354202b0",
+ "sha256": "18hwdnwmkf640vcyx8d66i424wwazbzjq3k0w0xjmwsn2mpyhm9w",
+ "fetcher": "github",
+ "repo": "gorauskas/darkburn-theme",
+ "unstable": {
+ "version": [
+ 20170423,
+ 1652
+ ],
+ "commit": "0af794ff7fac19778ac8a7efb92455c6f6c2158f",
+ "sha256": "0nv917r8pbj6mfncjl8d7hq4763c69q491d4iwnff1n3wzlcp42s"
+ }
+ },
+ {
+ "ename": "darkmine-theme",
+ "commit": "e527d1335f5fd2aba5b00255a7d69adbc20585ff",
+ "sha256": "06vzldyqlmfd11g8dqrqh5x244ikfa20qwpsmbgsiry3041k8iw5",
+ "fetcher": "github",
+ "repo": "pierre-lecocq/darkmine-theme",
+ "unstable": {
+ "version": [
+ 20160406,
+ 624
+ ],
+ "commit": "7f7e82ca03bcad52911fa41fb3e204e32d6ee63e",
+ "sha256": "0d2g4iyp8gyfrcc1gkvl40p1shlw1sadswzhry0m1lgbyxiiklrz"
+ }
+ },
+ {
+ "ename": "darkokai-theme",
+ "commit": "81387a5a70f7c42fbae16b52db765136795a37e1",
+ "sha256": "0jw71xl4ihkyq4m0w8c35x5hr8ic07wcabmvpwmvspnj8hkfccwf",
+ "fetcher": "github",
+ "repo": "sjrmanning/darkokai",
+ "unstable": {
+ "version": [
+ 20200614,
+ 1452
+ ],
+ "commit": "5820aeddfc8c869ba840cc534eba776936656a66",
+ "sha256": "1bj7l5sh6nzxcw575kjcscjpjqmwlxhvi30qviqg4d6aymzkgr53"
+ }
+ },
+ {
+ "ename": "darktooth-theme",
+ "commit": "b7f62ac1566ced7332e83253f79078dc30cb7889",
+ "sha256": "1vss0mg1vz4wvsal1r0ya8lid2c18ig11ip5v9nc80b5slbixzvs",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-theme-darktooth",
+ "unstable": {
+ "version": [
+ 20190412,
+ 142
+ ],
+ "deps": [
+ "autothemer"
+ ],
+ "commit": "5cc7fbfb08d2f1a33b85eac92b6450407b915119",
+ "sha256": "164y8hrdz46gg1b6sfi7gdv7pj54hrin0lcmhxp6gc9x5dg3l354"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 10
+ ],
+ "deps": [
+ "autothemer"
+ ],
+ "commit": "ae14a9be19b6fbd287e0f5ad156e7942cd6a5bc6",
+ "sha256": "1jisiz0blksjl6d8q7bnvnlfrwalqfpd93fs66i8pgllhf5z7j19"
+ }
+ },
+ {
+ "ename": "dart-mode",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "0zpvp86067a6l63wrpqxsm9fhv3n4ggbq8pg21vgiz54hk4x1xpp",
+ "fetcher": "github",
+ "repo": "bradyt/dart-mode",
+ "unstable": {
+ "version": [
+ 20190827,
+ 2102
+ ],
+ "commit": "04fcd649f19d49390079fbf2920a10bf37f6a634",
+ "sha256": "1rpdrq8w8vishjpakxvj20dgnnp2qksi1nrd0qllllb5sjyih56d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "flycheck",
+ "s"
+ ],
+ "commit": "d414a5faf22f7fafbb0a8208b88cecd6324704bf",
+ "sha256": "1qmdlwjmmqyyb65sqvfpygifai5m0llc815vp0jqwp8ldd8ls172"
+ }
+ },
+ {
+ "ename": "dart-server",
+ "commit": "e798e4fbe5a1d1dbe08c9bfc5c54d32cfe4bde62",
+ "sha256": "1w7qxd78cnxycg34hxlcw8yda2ixkl683k7mxm20wfqyg5f46bxm",
+ "fetcher": "github",
+ "repo": "bradyt/dart-server",
+ "unstable": {
+ "version": [
+ 20190817,
+ 1254
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "flycheck",
+ "s"
+ ],
+ "commit": "aba838e8ee2f30309f366e8a91c17616549003ce",
+ "sha256": "0lwss1s1n2kfy0i8nwwfmz5fnw137zkhjs6zv81piniad6hrmn1l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "flycheck",
+ "s"
+ ],
+ "commit": "bbc66eb981d17046ab98584c950baf963ac5da61",
+ "sha256": "18my32ni61z9dbr8cfkx0cjk4pqhdcmmz3l1hh57vzysscdxldh5"
+ }
+ },
+ {
+ "ename": "dash",
+ "commit": "2853d2fcf46eda788e5a3ea08815d0a2bf9d9d32",
+ "sha256": "1z55hwp6xzbn44xbz6fzpcgbp1b1sf37amryl8p54likj3i21i8n",
+ "fetcher": "github",
+ "repo": "magnars/dash.el",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1520
+ ],
+ "commit": "b92ab5a39b987e4fe69317b9d9fda452300baf20",
+ "sha256": "0qxjl10883l5xq56d474visrp0m3hapj4qqvrpqnanppx22499mh"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 17,
+ 0
+ ],
+ "commit": "721436b04da4e2795387cb48a98ac6de37ece0fd",
+ "sha256": "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"
+ }
+ },
+ {
+ "ename": "dash-alfred",
+ "commit": "5c93798af21ba97773ccb761841a54650ffec6d7",
+ "sha256": "10s7gfzpzdhvr5v3w4mqkaqjr2xs9j6p8n4mqwi4xw4aps8p0mnr",
+ "fetcher": "github",
+ "repo": "xuchunyang/dash-alfred.el",
+ "unstable": {
+ "version": [
+ 20191024,
+ 450
+ ],
+ "commit": "fcd21bd6c7eb5cd31377be970406ff3d2454bd5c",
+ "sha256": "0cvkj0d45aan6g5c7930v9syp0m3l1w6zkdgsdvbbiav0i6kpqrx"
+ }
+ },
+ {
+ "ename": "dash-at-point",
+ "commit": "0b2b0c544a76802df5ff3b1bf68a0418a653ea98",
+ "sha256": "0x4nq42nbh2qgbg111lgbknc7w7m7lxd14mp9s8dcrpwsaxz960m",
+ "fetcher": "github",
+ "repo": "stanaka/dash-at-point",
+ "unstable": {
+ "version": [
+ 20180710,
+ 1356
+ ],
+ "commit": "4d795a23a8428c421d5107f1b005c9d8e0d1816c",
+ "sha256": "09rxyr22qxc9pdrkg0c4smifh2r797ggz5hg74q8j8jybvixsbls"
+ }
+ },
+ {
+ "ename": "dash-docs",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0y5mq4cy9swp0xb51n3h57ra0ln3k0i6q2j7sslmwvaxi9a12zkg",
+ "fetcher": "github",
+ "repo": "dash-docs-el/dash-docs",
+ "unstable": {
+ "version": [
+ 20200516,
+ 1943
+ ],
+ "deps": [
+ "async",
+ "cl-lib"
+ ],
+ "commit": "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06",
+ "sha256": "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"
+ }
+ },
+ {
+ "ename": "dash-functional",
+ "commit": "57eed8767c3e98614259c408dc0b5c54d3473883",
+ "sha256": "0hx36hs12mf4nmskaaqrqpcgwrfjdqj6qcxn6bwb0s5m2jf9hs8p",
+ "fetcher": "github",
+ "repo": "magnars/dash.el",
+ "unstable": {
+ "version": [
+ 20200617,
+ 702
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "b92ab5a39b987e4fe69317b9d9fda452300baf20",
+ "sha256": "0qxjl10883l5xq56d474visrp0m3hapj4qqvrpqnanppx22499mh"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 17,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "721436b04da4e2795387cb48a98ac6de37ece0fd",
+ "sha256": "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"
+ }
+ },
+ {
+ "ename": "dashboard",
+ "commit": "ef3c6af6ff5d880e6336f8db32b22b64b182794e",
+ "sha256": "19l7mv57ra3i8bz35zfq0wrrp8mk0bzhng6wqpbf9dax4pq3pnp9",
+ "fetcher": "github",
+ "repo": "emacs-dashboard/emacs-dashboard",
+ "unstable": {
+ "version": [
+ 20200306,
+ 1344
+ ],
+ "deps": [
+ "page-break-lines"
+ ],
+ "commit": "bf38867ae80902d58207974b4a2bba4249324599",
+ "sha256": "1ksa1rq6xmyxc4srj1n3l0rd66zcz9br8k2bp3pzriljqvk8l753"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7,
+ 0
+ ],
+ "deps": [
+ "page-break-lines"
+ ],
+ "commit": "8dda82fcd4d0954f37a472ad68fb8df55195820e",
+ "sha256": "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa"
+ }
+ },
+ {
+ "ename": "dashboard-hackernews",
+ "commit": "a5ba74a9b76458bfd53e9cea7bd704d1488c9c98",
+ "sha256": "0j5ai05g84cl6dhzw1cjvvhchg0sy7zwv355x87c5mg1kx0mrdpk",
+ "fetcher": "github",
+ "repo": "hyakt/emacs-dashboard-hackernews",
+ "unstable": {
+ "version": [
+ 20190109,
+ 205
+ ],
+ "deps": [
+ "dashboard",
+ "request"
+ ],
+ "commit": "b71814716d8f78181b9d1990f06072460de0797e",
+ "sha256": "1dvv10xn2mh0nh85cd78y23cn8p9ygdhj4k7xs4fa6r7bhp0xvqm"
+ }
+ },
+ {
+ "ename": "dashboard-ls",
+ "commit": "656977197e0030525c52b14de8f6e1faa042daeb",
+ "sha256": "10dsdzps7kh3v5p5grdjwf2xjr7rvaiqp57fg9vh4pficvhylqaa",
+ "fetcher": "github",
+ "repo": "jcs-elpa/dashboard-ls",
+ "unstable": {
+ "version": [
+ 20200515,
+ 1430
+ ],
+ "deps": [
+ "dashboard",
+ "f",
+ "s"
+ ],
+ "commit": "8b2922abb75847787626fe241d609cff7eabf840",
+ "sha256": "19i6rd0yk90yw9cib2xg72mc667jarfwgh30xh4jfkpdl1j2481h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "dashboard",
+ "f",
+ "s"
+ ],
+ "commit": "8b2922abb75847787626fe241d609cff7eabf840",
+ "sha256": "19i6rd0yk90yw9cib2xg72mc667jarfwgh30xh4jfkpdl1j2481h"
+ }
+ },
+ {
+ "ename": "dashboard-project-status",
+ "commit": "dfc05873c6532c866d89c4cc07eb84b447a25c70",
+ "sha256": "1r25xmscz3lrjm6jjix416py26za5l1ck3xa77qbyrr4rf1gsakg",
+ "fetcher": "github",
+ "repo": "functionreturnfunction/dashboard-project-status",
+ "unstable": {
+ "version": [
+ 20190202,
+ 1354
+ ],
+ "deps": [
+ "dashboard",
+ "git"
+ ],
+ "commit": "7675c138e9df8fe2c626e7ba9bbb8b6717671a41",
+ "sha256": "1sbjrc1l57q2ifmw6pf3n105qk3q7rskqy9811qijpsbcl1m819d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "dashboard",
+ "git"
+ ],
+ "commit": "42fc624937b965d05c9f9d017661fa0420164df7",
+ "sha256": "07n1xqwgmsdiv55fg2vwbg17nyq5jij1ml6mrbzjn726bm88zz4w"
+ }
+ },
+ {
+ "ename": "date-at-point",
+ "commit": "a6dbeddd236f312fac1d5542dfd2edf81df8fad2",
+ "sha256": "0r26df6px6q5jlxj29nhl3qbp6kzy9hs5vd72kpiirgn4wlmagp0",
+ "fetcher": "github",
+ "repo": "alezost/date-at-point.el",
+ "unstable": {
+ "version": [
+ 20150308,
+ 1243
+ ],
+ "commit": "38df823d05df08ec0748a4185113fae5f99090e9",
+ "sha256": "024jx6q0dik4w2wb8nrk1q73asvjgrsl5mslns0ci3zsya343rch"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "662f8350a83311503dc0aae47a28752f9f1270c9",
+ "sha256": "06aprbhhxb6bbzmf0r5yq2ry6x7708vp4d94ja3ir6zcwc96wn0k"
+ }
+ },
+ {
+ "ename": "date-field",
+ "commit": "fe790729a67d2210cbccefce43805daa20db647d",
+ "sha256": "0fmw13sa4ajs1xkrkdpcjpbp0jl9d81cgvwh93myg8yjjn7wbmvk",
+ "fetcher": "github",
+ "repo": "aki2o/emacs-date-field",
+ "unstable": {
+ "version": [
+ 20141129,
+ 105
+ ],
+ "deps": [
+ "dash",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "11c9170d1f7b343233f7716d4c0a62be024c1654",
+ "sha256": "1lmwnj2fnvijj9qp4rjggl7c4x91vnpb47rqaam6m2wmr5wbrx3w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "11c9170d1f7b343233f7716d4c0a62be024c1654",
+ "sha256": "1lmwnj2fnvijj9qp4rjggl7c4x91vnpb47rqaam6m2wmr5wbrx3w"
+ }
+ },
+ {
+ "ename": "date2name",
+ "commit": "b62dc50387e7f432ca470042f10c9a310981f64d",
+ "sha256": "0xlhq0k8ww7br3xqzn7wkscnsf1d948x3x4li60a9r4287ngjj3l",
+ "fetcher": "github",
+ "repo": "DerBeutlin/date2name.el",
+ "unstable": {
+ "version": [
+ 20190630,
+ 933
+ ],
+ "commit": "386dbe73678705d6107cd5c9bdeb4f7c97632360",
+ "sha256": "0mdsvrwn6g33arcby02v6m9kfyymq7svgnvpvkvkvfdswcrns4mn"
+ }
+ },
+ {
+ "ename": "datetime",
+ "commit": "91ef4352603cc69930ab3d63f0a90eee63f5f328",
+ "sha256": "0c000fnqg936dhjw5qij4lydzllw1x1jgnyy960zh6r61pk062xj",
+ "fetcher": "github",
+ "repo": "doublep/datetime",
+ "unstable": {
+ "version": [
+ 20200621,
+ 2103
+ ],
+ "deps": [
+ "extmap"
+ ],
+ "commit": "c51eeb6df180f6c7d1676d1c0af78255bb0fdf95",
+ "sha256": "11w32jnkc596ybbhqih5d4rbvqk50cc6yyc9759acnzlqfd188xs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 6
+ ],
+ "deps": [
+ "extmap"
+ ],
+ "commit": "55297bf409f35dbc4bcd26b458b83e349ed11452",
+ "sha256": "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"
+ }
+ },
+ {
+ "ename": "datetime-format",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "19qccjz2lzh01glgkixya7bxd6pvyjqgmw8bmqlwag6cb68bwsyv",
+ "fetcher": "github",
+ "repo": "emacs-php/emacs-datetime",
+ "unstable": {
+ "version": [
+ 20160612,
+ 1715
+ ],
+ "commit": "e6427538b547cbe02e1bd6ed4b765c73620bdae8",
+ "sha256": "1573z8wq5m8qzbzmnsz2fmbwrj9c0ava0jjfchzmwm2b3jyvqh5r"
+ }
+ },
+ {
+ "ename": "datomic-snippets",
+ "commit": "4da8ec133ec5e1204966c1b12c9bc0ca1b50d643",
+ "sha256": "0lax0pj4k9c9n0gmrvil240pc9p25535q3n5m8nb2ar4sli8dn8r",
+ "fetcher": "github",
+ "repo": "magnars/datomic-snippets",
+ "unstable": {
+ "version": [
+ 20180817,
+ 1045
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "yasnippet"
+ ],
+ "commit": "4a14228840d5252e13d2bf6209670f26345bbb84",
+ "sha256": "1nvng479sy7ykwy9a86qq48yzv8n0903g724srhf42v9c81fc9s7"
+ }
+ },
+ {
+ "ename": "dayone",
+ "commit": "a7c34ae046b75994cf04d16642bf28d4645d1821",
+ "sha256": "0hi09dj00h6g5r84jxglwkgbijhfxknx4mq5gcl5jzjis5affk8l",
+ "fetcher": "github",
+ "repo": "mori-dev/emacs-dayone",
+ "unstable": {
+ "version": [
+ 20160105,
+ 1240
+ ],
+ "deps": [
+ "ht",
+ "mustache",
+ "uuid"
+ ],
+ "commit": "ab628274f0806451f23bce16f62a6a11cbf91a2b",
+ "sha256": "1j0mk8vyr6sniliq0ix77jldx8vzl73nd5yhh82klzgyymal58ms"
+ }
+ },
+ {
+ "ename": "db",
+ "commit": "79ac40439b65c217e1caaa7175d26556b6a6c889",
+ "sha256": "05jhga9n6gh1bmj8gda14sb703gn7jgjlvy55mlr5kdb2z3rqw1n",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-db",
+ "unstable": {
+ "version": [
+ 20140421,
+ 2111
+ ],
+ "deps": [
+ "kv"
+ ],
+ "commit": "b3a423fb8e72f9013009cbe033d654df2ce31438",
+ "sha256": "0syv4kr319d34yqi4q61b8jh5yy22wvd148x1m3pc511znh2ry5k"
+ }
+ },
+ {
+ "ename": "db-pg",
+ "commit": "c4eb90ea7b8ed5c529c74c3faeaf3eac3955eb31",
+ "sha256": "06nfibw01ijv7nr0m142y80jbbpg9kk1dh19s5wq7i6fqf7g08xg",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-db-pg",
+ "unstable": {
+ "version": [
+ 20130131,
+ 1902
+ ],
+ "deps": [
+ "db",
+ "pg"
+ ],
+ "commit": "7d5ab86b74b05fe003b3b434d4835f37f3f3eded",
+ "sha256": "15r0qwjkl33p8kh2k5kxz9wnbkv1k470b1h0i6svvljkx9ynk68a"
+ }
+ },
+ {
+ "ename": "dbc",
+ "commit": "0f82920ec0b8544c7008a57a412fe3ba15fc5e0f",
+ "sha256": "0xba153ky52iiyjndryzm6n3v019d0710r4k91chvv8gvyb4jr9z",
+ "fetcher": "gitlab",
+ "repo": "matsievskiysv/display-buffer-control",
+ "unstable": {
+ "version": [
+ 20200527,
+ 1040
+ ],
+ "deps": [
+ "cl-lib",
+ "ht"
+ ],
+ "commit": "8aa8982e6afbe3820f60c3defbb3c8037e04eebe",
+ "sha256": "1zwxn76zh0ba5pa821g2aaqa1niz2l0g3wvnngspw04fla2scjb4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "ht"
+ ],
+ "commit": "5123477396a562fae350a89fbed79464cc498bc9",
+ "sha256": "0xd94cpqpv0yw70ajrvs69ygds62m40fk0m4s59zvdn5qs7ivj4k"
+ }
+ },
+ {
+ "ename": "ddskk",
+ "commit": "6eccccb79881eaa04af3ed6395cd2ab981d9c894",
+ "sha256": "01pb00p126q7swsl12yjrhghln2wgaj65jhjr0k7dkk64x4psyc9",
+ "fetcher": "github",
+ "repo": "skk-dev/ddskk",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1809
+ ],
+ "deps": [
+ "ccc",
+ "cdb"
+ ],
+ "commit": "275a831be77573470309a78967734d2b6d10f218",
+ "sha256": "1a25aybavi6p7ijc4rbd8zyzgiim1m2xwm7yqfmsvrfzwgb29xal"
+ }
+ },
+ {
+ "ename": "ddskk-posframe",
+ "commit": "24a819d5032b4f0c72a68ef05a2dd1d0272decea",
+ "sha256": "1b98pkwxmmgngzsqmlmlyr1llml67alkanl34dfvhyyqvmm6p5v2",
+ "fetcher": "github",
+ "repo": "conao3/ddskk-posframe.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 917
+ ],
+ "deps": [
+ "ddskk",
+ "posframe"
+ ],
+ "commit": "299493dd951e5a0b43b8213321e3dc0bac10f762",
+ "sha256": "1rsy0wjncxzjhis8jrxpxjh9l9pw0bngg1sb4dj5qvhsgszhawpn"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "ddskk"
+ ],
+ "commit": "322a9ef8cdb7416dd137e7d2b1be1120126c05fc",
+ "sha256": "0d8ng5m8y88zda286qdjmj0m0wdm3xnv1jzl6m7yv8z8967lj1az"
+ }
+ },
+ {
+ "ename": "deadgrep",
+ "commit": "93389fae7233b83ea904e17bdaf83f8247cda3d8",
+ "sha256": "01m5ds7lic9g11a5iwzw86k6xcv56wbbzjm1343ckbbi255h9i09",
+ "fetcher": "github",
+ "repo": "Wilfred/deadgrep",
+ "unstable": {
+ "version": [
+ 20200803,
+ 606
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "spinner"
+ ],
+ "commit": "9cd79e0d5dd6b77abca3e84e17d3e4e2e9aa5695",
+ "sha256": "1xq06af3lib8i2l0619ggzkzf00pb39pk0pd97i6dv7593y82c94"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "spinner"
+ ],
+ "commit": "411a6973580b3503535ba58e405035bde2392903",
+ "sha256": "05xsf2axlxdsv8aivd7qyb0ipf9cp95y9f0sf0kaqpc1rn6i79ps"
+ }
+ },
+ {
+ "ename": "debian-el",
+ "commit": "1a381ec81eb160365f478c6a3af638c14558d7d6",
+ "sha256": "0x74a4nm2p4w82kzrdqy90969sminsrhdzppld2mg63jg0wxb8ga",
+ "fetcher": "git",
+ "url": "https://salsa.debian.org/emacsen-team/debian-el.git",
+ "unstable": {
+ "version": [
+ 20200401,
+ 1622
+ ],
+ "commit": "d7117ab18b15f449f194cd7d91ff22e55fcfa817",
+ "sha256": "09i2n4990d5ra4zqswzv8sjk4psd9lf71xdsgnfbr88pdv1q8bhf"
+ },
+ "stable": {
+ "version": [
+ 37,
+ 4
+ ],
+ "commit": "9690c4adb71e0fc7d00fea24b49ba944f913f4f5",
+ "sha256": "118yyhmfwpdlqvz5xjqfr4mmpjznkja3jn63n43z66q0apfhhk61"
+ }
+ },
+ {
+ "ename": "debpaste",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0h3hx3vgdhchmndabmzprddq3bxd80jnv4xvma9v6k1v07bl721v",
+ "fetcher": "github",
+ "repo": "alezost/debpaste.el",
+ "unstable": {
+ "version": [
+ 20160113,
+ 2347
+ ],
+ "deps": [
+ "xml-rpc"
+ ],
+ "commit": "6f2a400665062468ebd03a2ce1de2a73d9084958",
+ "sha256": "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "xml-rpc"
+ ],
+ "commit": "6f2a400665062468ebd03a2ce1de2a73d9084958",
+ "sha256": "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"
+ }
+ },
+ {
+ "ename": "debug-print",
+ "commit": "aaaaa43f6ce7db654b651969797978164143b269",
+ "sha256": "01dsqq2qdsbxny6j9dhvg770493awxjhk1m85c14ysgh6sl199rm",
+ "fetcher": "github",
+ "repo": "kenoss/debug-print",
+ "unstable": {
+ "version": [
+ 20140126,
+ 19
+ ],
+ "commit": "d817fd9ea2d3f8d2c1ace4d8af155684f3a99dc5",
+ "sha256": "1n99nrp42slmyp5228d1nz174bysjn122jgs8fn1x0qxywg7jyxp"
+ }
+ },
+ {
+ "ename": "decide",
+ "commit": "6adcd300e2ac2c718989cf855fd7b3eef654df00",
+ "sha256": "1gjkays48lhrifi9jwja5n2dpxjbl7f9rmka1nsqg9vf7s59vhhc",
+ "fetcher": "github",
+ "repo": "lifelike/decide-mode",
+ "unstable": {
+ "version": [
+ 20190201,
+ 2137
+ ],
+ "commit": "4bfcc826dd5b1c30caec455d8baa4f363159eac6",
+ "sha256": "07rwflgqlsgqrw2v7rbshrbcr1qkgsx59y904jspvj310s8bsczg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "commit": "90133687118c236142b8110571c463304b3192f9",
+ "sha256": "04yakjnh9c165ssmcwkkm03lnlhgfx5bnk0v3cm73kmwdmfd2q7s"
+ }
+ },
+ {
+ "ename": "decl",
+ "commit": "8c2ecd46180643a0c493e05ec86fe50bc1e55146",
+ "sha256": "0wdhmp226wmrjvjgpbz8ihvhxxv3rrxh97sdqm3mgsav3n071n6k",
+ "fetcher": "github",
+ "repo": "preetpalS/decl.el",
+ "unstable": {
+ "version": [
+ 20171212,
+ 1458
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "ff7f8a4f1225cbdf141c86172104e67a4cf58c86",
+ "sha256": "1ns1ni6aalr541df3a0ylqy0gj68fcsxdfvm4m1ga5532kxnswnj"
+ }
+ },
+ {
+ "ename": "dedicated",
+ "commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
+ "sha256": "1ka8n02r3nd2ksbid23g2qd6707c7xsjx7lbbdi6pcmwam5mglw9",
+ "fetcher": "github",
+ "repo": "emacsorphanage/dedicated",
+ "unstable": {
+ "version": [
+ 20151202,
+ 110
+ ],
+ "commit": "f47b504c0c56fa5ab9d1028417ca1f65a713a2f0",
+ "sha256": "08ggrfdx8j7zqbid35ph0k8jramm4yf95rjilycywb82n3y6wynz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "8275fb672f9cc4ba6682ebda0ef91db827e32992",
+ "sha256": "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"
+ }
+ },
+ {
+ "ename": "dedukti-mode",
+ "commit": "767a685fbe8ae86177e90a17dac3815d41d74df4",
+ "sha256": "17adfmrhfks5f45ddr6ygjq870ac50vfzc5872ycv414zg0w4sa9",
+ "fetcher": "github",
+ "repo": "rafoo/dedukti-mode",
+ "unstable": {
+ "version": [
+ 20171103,
+ 1212
+ ],
+ "commit": "d7c3505a1046187de3c3aeb144455078d514594e",
+ "sha256": "1842wikq24c8rg0ac84vb1qby9ng1nssxswyyni4kq85lng5lcrp"
+ }
+ },
+ {
+ "ename": "default-text-scale",
+ "commit": "db5e0b70e2d9c80aa41ae2c397f822789c2d3cc2",
+ "sha256": "18r90ic38fnlsbg4gi3r962vban398x2bf3rqhrc6z4jk4aiv3mi",
+ "fetcher": "github",
+ "repo": "purcell/default-text-scale",
+ "unstable": {
+ "version": [
+ 20191226,
+ 2234
+ ],
+ "commit": "bfc0987c37e93742255d3b23d86c17096fda8e7e",
+ "sha256": "1kbmq9ssp1i58bcmnk0g0ijhwsa80qm5xwwzhzcskrmxb6dg88j2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "f425d3765c4dea3f2e550720278f9d424579ee5d",
+ "sha256": "0h42jiwxrxjmk7ccwh3h25n7dy2rq61ncm5wx27jhkncc5jdm4h6"
+ }
+ },
+ {
+ "ename": "deferred",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1i8jfapzmw86iqwhnnlqmcj6zh4hyhizdcwjxcnxdj6kvxmwyysm",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-deferred",
+ "unstable": {
+ "version": [
+ 20170901,
+ 1330
+ ],
+ "commit": "2239671d94b38d92e9b28d4e12fd79814cfb9c16",
+ "sha256": "0vz59lm7pfz0gbsgrb44y555js85wbdjn0zm6p8wfqjiqf63ds3i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 1
+ ],
+ "commit": "d012a1ab50edcc2c44e3e49006f054dbff47cb6c",
+ "sha256": "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"
+ }
+ },
+ {
+ "ename": "define-it",
+ "commit": "c3b4c0c6a715b4302cc6cb6171b185883f2a87e2",
+ "sha256": "0y9l0dy4l1k9j5fis652rypxm5r6qmdxgb5msihbyl8acbwdhhr2",
+ "fetcher": "github",
+ "repo": "jcs-elpa/define-it",
+ "unstable": {
+ "version": [
+ 20191230,
+ 1409
+ ],
+ "deps": [
+ "google-translate",
+ "popup",
+ "pos-tip",
+ "request",
+ "s",
+ "wiki-summary"
+ ],
+ "commit": "4e769b94c4ec81d9c1eac9dda0e22c869a07aa7c",
+ "sha256": "0amwslk4hawjzjbdakx7ggclw3y9ackl2vnmrr0pw17m5ccsr10b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "deps": [
+ "google-translate",
+ "popup",
+ "pos-tip",
+ "request",
+ "s",
+ "wiki-summary"
+ ],
+ "commit": "ec13795cd1185706fcc81ea627d3680f65283891",
+ "sha256": "05wq0apnljclpjn3ifwl31vx3rlwv9kns5yva26sd8ks7kjyqizj"
+ }
+ },
+ {
+ "ename": "define-word",
+ "commit": "e318b30d8b2b89981f4b89d78e5a46e77d3de412",
+ "sha256": "035fdfwnxw0mir1dyvrimygx2gafcgnvlcsmwmry1rsfh39n5b9a",
+ "fetcher": "github",
+ "repo": "abo-abo/define-word",
+ "unstable": {
+ "version": [
+ 20200417,
+ 844
+ ],
+ "commit": "08c71b1ff4fd07bf0c78d1fcf77efeaafc8f7443",
+ "sha256": "053kyg2jqayphdkm7s8fz8yl97yspib6qszcajyr77m6n7j4i764"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "38e2f94779652fc6280a51b68dc910431513a8e1",
+ "sha256": "1lyqd9cgj7cb2lasf6ycw5j8wnsx2nrfm8ra4sg3dgcspm01a89g"
+ }
+ },
+ {
+ "ename": "defproject",
+ "commit": "86465b351e668d6c19a6fc8e1b1a4aa7904cd139",
+ "sha256": "1gld2fkssrjh4smpp54017549d6aw3n1zisp5s4kkb6cmszwj5gm",
+ "fetcher": "github",
+ "repo": "kotfic/defproject",
+ "unstable": {
+ "version": [
+ 20151201,
+ 2219
+ ],
+ "commit": "674d48a5e34cb4bba76faa38ee901322ec649086",
+ "sha256": "07jzr571q02l0lg5d40rnmzg16hmybi1nkjgslmvlx46z3c4xvyr"
+ }
+ },
+ {
+ "ename": "defrepeater",
+ "commit": "f0d9cf994233ad098826c6933dfd57665044f598",
+ "sha256": "1zlp206dy5qipb7m3m77j4har258rxgwxg5ipflym4jj183maa39",
+ "fetcher": "github",
+ "repo": "alphapapa/defrepeater.el",
+ "unstable": {
+ "version": [
+ 20180830,
+ 410
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "9c027a2561fe141dcfb79f75fcaee36cd0386ec1",
+ "sha256": "1fync4i8ds718pdr2v25ily71jng0506hw5k9qpa0a533nsh7p30"
+ }
+ },
+ {
+ "ename": "deft",
+ "commit": "1e2a0e4698d4e71ec28656594f6a83504a823490",
+ "sha256": "0f6z9hsigbwdsmg0abk1ddl9j19d0rpj4gzkl0d5arcpqbla26hp",
+ "fetcher": "github",
+ "repo": "jrblevin/deft",
+ "unstable": {
+ "version": [
+ 20200515,
+ 1513
+ ],
+ "commit": "fca9ea05ef4fdac825e2ad3921baa7042f6b82c8",
+ "sha256": "0h5znwc4sa92l2472204yn60z30ysvkr9hphjga7kn4j4jgvqak1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "commit": "c4b30d780bfa732ff52d85f0311e4a045f44a7b4",
+ "sha256": "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"
+ }
+ },
+ {
+ "ename": "delim-kill",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1pplc456771hi52ap1p87y7pabxlvm6raszcxjvnxff3xzw56pig",
+ "fetcher": "github",
+ "repo": "thomas11/delim-kill",
+ "unstable": {
+ "version": [
+ 20100517,
+ 620
+ ],
+ "commit": "1dbe47344f2d2cbc8c54beedf0cf0bf10fd203c1",
+ "sha256": "06a20sd8nc273azrgha40l1fbqvv9qmxsmkjiqbf6dcf1blkwjyf"
+ }
+ },
+ {
+ "ename": "demangle-mode",
+ "commit": "6ced9f4ffb051a8474d3f72695156416cf2dd8be",
+ "sha256": "0ky0bb6rc99vrdli4lhs656qjndnla9b7inc2ji9l4n1zki5qxzk",
+ "fetcher": "github",
+ "repo": "liblit/demangle-mode",
+ "unstable": {
+ "version": [
+ 20200621,
+ 2344
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "697c1dbde93f164eac7ea0dc530d7e8b799272d6",
+ "sha256": "1ycbggyljbm5iawhk6i1cm21a3gzz1javab99c3abprkgmldmd5l"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "697c1dbde93f164eac7ea0dc530d7e8b799272d6",
+ "sha256": "1ycbggyljbm5iawhk6i1cm21a3gzz1javab99c3abprkgmldmd5l"
+ }
+ },
+ {
+ "ename": "demo-it",
+ "commit": "1dec5877db00c29d81d76be0ee2504399bad9cc4",
+ "sha256": "063v115xy9mcga4qv16v538k12rn9maz92khzwa35wx56bwz4gg7",
+ "fetcher": "github",
+ "repo": "howardabrams/demo-it",
+ "unstable": {
+ "version": [
+ 20190828,
+ 26
+ ],
+ "commit": "9cfa5c3f92a0dca7eebb1f1a2011643c9b009d26",
+ "sha256": "1fcmrhm6h0j7jjw6kijrcacv628fy80ssxn6h5bilwmw0r4c7wm6"
+ }
+ },
+ {
+ "ename": "deno-fmt",
+ "commit": "d6c3171a30886ecc4427938d847924023d1171ae",
+ "sha256": "15490s5xx58jc0irras3yaczx9s0v93fp7dnd6pba7zq149nqpy7",
+ "fetcher": "github",
+ "repo": "rclarey/deno-emacs",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1838
+ ],
+ "commit": "3b193eef576e2c14fdcf350495955e6e8546dddd",
+ "sha256": "19fl389rgi6k8w84ggin54p9lpngwah96fxa6qf86y4rf9r2s9sh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "ccae334361b9f83b687f040bcdfdc2a58c78059f",
+ "sha256": "1fm2ym36gv4p4i27hln706dnwr6rvrkkfgggbcz9rqfbphrsfqyx"
+ }
+ },
+ {
+ "ename": "describe-hash",
+ "commit": "8c6c5cd96acd3deeb86503341dd9cd729e20185e",
+ "sha256": "0a26d46p46fypq3snh52grnjcgp6isb5k4qv2fm2m6ha2n7jdi5a",
+ "fetcher": "github",
+ "repo": "Junker/describe-hash",
+ "unstable": {
+ "version": [
+ 20200718,
+ 1556
+ ],
+ "commit": "18e69a932d5495c8439571ba8f2d2ee123d434b1",
+ "sha256": "1z2msiqwq7lqvyz6b2szyx1kpb6rv6irvwdcv36519mda0smhjlv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "20dbbbea630055b2401f13a55fbb21216960dc46",
+ "sha256": "1mz5951yr27jnncz3c080jri7h3pb1k07i6w7wx5aj54kwpsg1d8"
+ }
+ },
+ {
+ "ename": "describe-number",
+ "commit": "d5ed9063f7e9f540bc90c1df4e3604d4af9bcfe5",
+ "sha256": "0gvriailni2ppz69g0bwnb1ik1ghjkj341k45vllz30j0frp9iji",
+ "fetcher": "github",
+ "repo": "netromdk/describe-number",
+ "unstable": {
+ "version": [
+ 20151101,
+ 55
+ ],
+ "deps": [
+ "yabin"
+ ],
+ "commit": "40618345a37831804b29589849a785ef5aa5ac24",
+ "sha256": "13fasbhdjwc4jh3cy25gm5sbbg56hq8la271098qpx6dhqm2wycq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "yabin"
+ ],
+ "commit": "40618345a37831804b29589849a785ef5aa5ac24",
+ "sha256": "13fasbhdjwc4jh3cy25gm5sbbg56hq8la271098qpx6dhqm2wycq"
+ }
+ },
+ {
+ "ename": "desktop+",
+ "commit": "0b009b42c73490d56d4613dcf5a57447fb4ccab4",
+ "sha256": "0w7i6k4814hwb19l7ly9yq59674xiw57ylrwxq7yprwx52sgs2r8",
+ "fetcher": "github",
+ "repo": "ffevotte/desktop-plus",
+ "unstable": {
+ "version": [
+ 20170107,
+ 2132
+ ],
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "88055cee526a000056201898499cebbd35e3ea76",
+ "sha256": "1nkljslx8cwmm4z18mhnwrc1lmd6lxdyhk8bwhzms7g1p6yi99d8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "a9cb8dd0af5071d9f148211b408c54306239381c",
+ "sha256": "10f5dkrwfd6a1ab98j2kywkh1h01pnanvj2i7fv9a9vxnmiywrcf"
+ }
+ },
+ {
+ "ename": "desktop-environment",
+ "commit": "dfe988e0dd4a1272ecf7b2fe758ef0c81e2acad2",
+ "sha256": "0iai1awpkv4n8k263854mx95c8yh2vvif6z91mgn6hck8774v9zp",
+ "fetcher": "github",
+ "repo": "DamienCassou/desktop-environment",
+ "unstable": {
+ "version": [
+ 20200225,
+ 1042
+ ],
+ "commit": "dbcf3d9411d53908de09ab0d34932d19c8117144",
+ "sha256": "12lqwc3aqrly85ihdrh4k4vwglqypbi250fl0aasbbiwpbnraawa"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "57de5e018baa1c7667230cae657c80ca765ae912",
+ "sha256": "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"
+ }
+ },
+ {
+ "ename": "desktop-registry",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "1sfj0w6hlrx37js63fn1v5xc9ngmahv07g42z68717md6w3c8g0v",
+ "fetcher": "github",
+ "repo": "ryuslash/desktop-registry",
+ "unstable": {
+ "version": [
+ 20140119,
+ 2143
+ ],
+ "commit": "244c2e7f9f0a1050aa8a47ad0b38f4e4584682dd",
+ "sha256": "11qvhbz7149vqh61fgqqn4inw0ic6ib9lz2xgr9m54pdw9a901mp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "244c2e7f9f0a1050aa8a47ad0b38f4e4584682dd",
+ "sha256": "11qvhbz7149vqh61fgqqn4inw0ic6ib9lz2xgr9m54pdw9a901mp"
+ }
+ },
+ {
+ "ename": "detour",
+ "commit": "010af7946b10ded846225a19d375434b5d9427a8",
+ "sha256": "0w63vqlzkvx54y8y71gzzdyxzm4430bqfyapzyrzrsmxh773hnmn",
+ "fetcher": "github",
+ "repo": "ska2342/detour",
+ "unstable": {
+ "version": [
+ 20181122,
+ 2138
+ ],
+ "commit": "1ff23c236e18971ed1077840daf047cde79a45ee",
+ "sha256": "0pi0r443yh8xspqbjy2splksws38j8mwrgzjlsp6fizx2warn6y6"
+ }
+ },
+ {
+ "ename": "devdocs",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "14vab71fy5i1ccmzgfdg37lfs1ix3qwhcyk9lvbahcmwnbnimlzm",
+ "fetcher": "github",
+ "repo": "xuchunyang/DevDocs.el",
+ "unstable": {
+ "version": [
+ 20170731,
+ 850
+ ],
+ "commit": "a2d51e824f0cc48a9dd611cc740bc8b86143e611",
+ "sha256": "0nzh7pgvj4cs5d29lrrmbas29xdslgqzsqjmpapzqzbnrgprnbx8"
+ }
+ },
+ {
+ "ename": "dfmt",
+ "commit": "a343a752d25185b30b10805c4012f3b21a03651e",
+ "sha256": "06g9yimw6q4wl2prspr8vjyv2pxk8bb0451wplpp70h5ajfwy3dz",
+ "fetcher": "github",
+ "repo": "qsimpleq/elisp-dfmt",
+ "unstable": {
+ "version": [
+ 20170728,
+ 1023
+ ],
+ "commit": "21b9094e907b7ac53f5ecb4ff4539613a9d12434",
+ "sha256": "11r1i8nlz98z49fqb447abg1pv6838q54ly19wyg82k52875ms7m"
+ }
+ },
+ {
+ "ename": "dhall-mode",
+ "commit": "c7ab435077b2f47d75ddc0ff10c64ee2b46044e2",
+ "sha256": "1zkspjwllcw9k4nlnif6jdwzl08ki39vmx90apw029n87xhvx7mp",
+ "fetcher": "github",
+ "repo": "psibi/dhall-mode",
+ "unstable": {
+ "version": [
+ 20200716,
+ 2147
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "484bcf8f78f1183ef45c3b04a362bb73690c6b9b",
+ "sha256": "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"
+ }
+ },
+ {
+ "ename": "dianyou",
+ "commit": "059b003c74acdfdd917ecb6fecb782a0f54d155b",
+ "sha256": "1mz3nvr62gfkhbayw7784c8kn8drbiq9hlqv1g5vd9pdfhxqs8jl",
+ "fetcher": "github",
+ "repo": "redguardtoo/dianyou",
+ "unstable": {
+ "version": [
+ 20191120,
+ 39
+ ],
+ "commit": "da7443a680bd8db75884355314e9352cd8c68d05",
+ "sha256": "099iiwp52rfnxgwhiaxdaridhcjdp3qchmskxmb1j5dz757c6w1c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "1a1fe6da3196f91db7b76b6c552ca4f2629e36bf",
+ "sha256": "1bgyq4zrhzlqmfgv3az4csgsrqidlshwjbx4r9l2rydk3k3gl78n"
+ }
+ },
+ {
+ "ename": "diary-manager",
+ "commit": "a014f4d862a2480f7edb1266f79ce0801cca13c2",
+ "sha256": "1sk0pvadx4jmv93dj796ysn3jh2wvywayd7dd20v22kdvnlii73d",
+ "fetcher": "github",
+ "repo": "raxod502/diary-manager",
+ "unstable": {
+ "version": [
+ 20200404,
+ 1549
+ ],
+ "commit": "2850e8f27662eb1e8a34425b3032a361a5c989cc",
+ "sha256": "0p4l6gsfazq6aigvyy8mjkr9jpqs8cbmpzsfwdr7yvr5llxg77ds"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 2
+ ],
+ "commit": "919f724bb58e36b8626dd8d7c8475f71c0c54443",
+ "sha256": "12zg022bhfn4gsclb5wk8wh0bqyy0v5j37369haq6rb5jcc6x5fb"
+ }
+ },
+ {
+ "ename": "dic-lookup-w3m",
+ "commit": "30de78c9cf83de30093a5647976eeaf552d4b2cb",
+ "sha256": "1kwbmzzf8sj4bn5kicmlp2hzv8ydcikwmdy7s40ggkgf1mk9zvqr",
+ "fetcher": "github",
+ "repo": "emacsorphanage/dic-lookup-w3m",
+ "unstable": {
+ "version": [
+ 20180526,
+ 1621
+ ],
+ "deps": [
+ "stem",
+ "w3m"
+ ],
+ "commit": "3254ab10cbf0078c7162557dd1f68dac28459cf9",
+ "sha256": "0g8kzaxjka7n9jdldh45m22nizgv0m0v94ns7vmmhf1hpsf3zfxz"
+ }
+ },
+ {
+ "ename": "dictcc",
+ "commit": "5e867df96915a0c4f22fdccd4e2096878895bda6",
+ "sha256": "0x1y742hb3dm7xmh5810dlqki38kybw68rmg9adcchm2rn86jqlm",
+ "fetcher": "github",
+ "repo": "cqql/dictcc.el",
+ "unstable": {
+ "version": [
+ 20200421,
+ 1422
+ ],
+ "deps": [
+ "cl-lib",
+ "ivy"
+ ],
+ "commit": "3950011197ba81f27cc82b4e6075c9100945f936",
+ "sha256": "0xmmkzsg48q6awhkbi5naqjm0yjdnwb437k17razgd6y99vyh0ns"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "ivy"
+ ],
+ "commit": "33df7c64ee5bb9faf77a4b80cd123d35a15ad706",
+ "sha256": "1dxn41p4bmi7l8lz6kp56qhb4v2qi7x8wijyicd3715amsagl2jc"
+ }
+ },
+ {
+ "ename": "dictionary",
+ "commit": "5b08ed7b90e3283e177eff57cb02b12a093dc258",
+ "sha256": "0zr9sm5rmr0frxdr0za72wiffip9391fn9dm5y5x0aj1z4c1n28w",
+ "fetcher": "github",
+ "repo": "myrkr/dictionary-el",
+ "unstable": {
+ "version": [
+ 20191111,
+ 446
+ ],
+ "deps": [
+ "connection",
+ "link"
+ ],
+ "commit": "c9cad101100975e88873636bfd426b7a19304ebd",
+ "sha256": "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 11
+ ],
+ "deps": [
+ "connection",
+ "link"
+ ],
+ "commit": "c9cad101100975e88873636bfd426b7a19304ebd",
+ "sha256": "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"
+ }
+ },
+ {
+ "ename": "didyoumean",
+ "commit": "6030fcde06d23b98b0c81d40e1cdb5eb4412b9a1",
+ "sha256": "0hfd6kgqry0mcg77lqf0rvcb9clhjh7krq41hlz4wkrjyw0xbngg",
+ "fetcher": "gitlab",
+ "repo": "kisaragi-hiu/didyoumean.el",
+ "unstable": {
+ "version": [
+ 20191020,
+ 531
+ ],
+ "commit": "4a6049f2de36801e0a50e93b17a375501f16cf28",
+ "sha256": "0plwn23h96m71vx0jxilnl6nj7lsq4mpjv8mjaiankrxhvjcv6f0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "commit": "6d0c4203eb192d73d89261b3a9bad52951e394af",
+ "sha256": "1rdmhsrlqn19a140i3099fp7f9wnlglp760rnrjp5p840wzfm74q"
+ }
+ },
+ {
+ "ename": "diff-at-point",
+ "commit": "d342698c94e145ecfebf204c1099dbe765b39c71",
+ "sha256": "1gjjnxafsxrhpxz3zs5kbdmy5wmhcqqfkgryzzc0mmm9iqbskd3j",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-diff-at-point",
+ "unstable": {
+ "version": [
+ 20200413,
+ 200
+ ],
+ "commit": "5b06de513297a80cf3a2081b8ee0914e90da810b",
+ "sha256": "1ib8297alpsvcxl9c56n2bjh5j4m49k92nz1mgdybiqwg3z4is21"
+ }
+ },
+ {
+ "ename": "diff-hl",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "135jgjfaiq6kj72ji5k22v4pqc8gjjmcv80r5rkjbjigzlvcvvj2",
+ "fetcher": "github",
+ "repo": "dgutov/diff-hl",
+ "unstable": {
+ "version": [
+ 20200701,
+ 2141
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2281a89a3ddc6616073da6f190dda08d23b18ba6",
+ "sha256": "0lyx0hnc45k2f154p81dyjxrv5r53bwb6nfyhmy5avmp9cqdjd4d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 7
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "374b1d4b34876219218da7a539e7301259b56958",
+ "sha256": "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"
+ }
+ },
+ {
+ "ename": "difflib",
+ "commit": "df1924ddff6fd1b5fa32481d3b3d6fbe89a127d3",
+ "sha256": "07bm5hib3ihrrx0lhfsl6km9gfckl73qd4cb37h93zw0hc9xwhy6",
+ "fetcher": "github",
+ "repo": "dieggsy/difflib.el",
+ "unstable": {
+ "version": [
+ 20171227,
+ 1518
+ ],
+ "deps": [
+ "cl-generic",
+ "ht",
+ "s"
+ ],
+ "commit": "b08850251812d71e62fd6956081299590acdf37b",
+ "sha256": "03k5iy610f1m2nmkdk69p49fcfqfyxmy3h6fqvqsr2v1hix8i54a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 8
+ ],
+ "deps": [
+ "cl-generic",
+ "ht",
+ "s"
+ ],
+ "commit": "b08850251812d71e62fd6956081299590acdf37b",
+ "sha256": "03k5iy610f1m2nmkdk69p49fcfqfyxmy3h6fqvqsr2v1hix8i54a"
+ }
+ },
+ {
+ "ename": "diffscuss-mode",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "1mycjis38gqwha7jgj05fzv0041ghk6khy5d2dlcyy2nh3bb68rb",
+ "fetcher": "github",
+ "repo": "tomheon/diffscuss",
+ "unstable": {
+ "version": [
+ 20141014,
+ 2357
+ ],
+ "commit": "e0aacd8b3d9f886f27222c1397f0655e849e0af7",
+ "sha256": "14ccak3cmv36pd085188lypal9gd3flyikcrxn0wi6hn60w2dgvr"
+ }
+ },
+ {
+ "ename": "diffview",
+ "commit": "0ea5dd4c9c114618ac20f565c878f509ce8d9872",
+ "sha256": "0vlzmykvxjwjww313brl1nr13kz41jypsk0s3l8q3rbsnkpfic5k",
+ "fetcher": "github",
+ "repo": "mgalgs/diffview-mode",
+ "unstable": {
+ "version": [
+ 20150929,
+ 511
+ ],
+ "commit": "031b70913e755c5e55222680f80185032a7d1728",
+ "sha256": "0diw887x4q7kbgdvxbbnxdw51z33kqwxw3v9m45fczxbywyi4cxf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "471dc36af93e68849bf2da0db991e186283b3546",
+ "sha256": "1ci2gmyl0i736b2sxh77fyg4hs2pkn6rn9z7v2hzv6xlgqd6j3z6"
+ }
+ },
+ {
+ "ename": "digistar-mode",
+ "commit": "851fa17152b664df99b80a654e5c055bb5227181",
+ "sha256": "0khzxlrm09h31i1nqz6rnzhrdssb3kppc4klpxza612l306fih0s",
+ "fetcher": "github",
+ "repo": "retroj/digistar-mode",
+ "unstable": {
+ "version": [
+ 20200819,
+ 1316
+ ],
+ "commit": "7f89372f27eff9e4db55bcf39f9cce3693d95bb2",
+ "sha256": "0s9q9f9bqr4w9ll0im65h95hxki3svanlikwxgq6m7p493s1q5j0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 0
+ ],
+ "commit": "343de0e0fe408f422a32e1bda22cafc2cc9900bb",
+ "sha256": "1cg38x7zd1n9zqsyg47famss91nqs7giqpgsi5qy10zp8y3i3l2c"
+ }
+ },
+ {
+ "ename": "digit-groups",
+ "commit": "e5768c2d9f77e7fc58b7b293763cab64634e00da",
+ "sha256": "032dcnbwrm0fbg6dlghrcvslpwxlhw5bp4ank1mnkp5m39iwdn60",
+ "fetcher": "github",
+ "repo": "adamsmd/digit-groups",
+ "unstable": {
+ "version": [
+ 20200506,
+ 37
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "7b81930cad19b8b7913b7eedbcb498964bfdcbdb",
+ "sha256": "1ss8ym7zayhvyrl4lzxjqiy8azx2zciwcp1x6s8vw649gmyi98jc"
+ }
+ },
+ {
+ "ename": "digitalocean",
+ "commit": "bc81950b42e4fdc9e6710ba1b859f0fba98be3fa",
+ "sha256": "086v4wrzkjgjks6lfp2hn97pcbplxmc7y7bbiriw4gixgqds6yx9",
+ "fetcher": "gitlab",
+ "repo": "olymk2/emacs-digitalocean",
+ "unstable": {
+ "version": [
+ 20190607,
+ 726
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "6c32d3593286e2a62d9afab0057c829407b0d1e8",
+ "sha256": "08708nfqfgcd6hzh91li0yhr4kz9lxw6i80brlnis9bfk3cs4m9x"
+ }
+ },
+ {
+ "ename": "digitalocean-helm",
+ "commit": "bc81950b42e4fdc9e6710ba1b859f0fba98be3fa",
+ "sha256": "0q1ir6i9x1ql5c8vg1bff9px2jpwb0rxfiavk9fj3mqbjdifrz0w",
+ "fetcher": "gitlab",
+ "repo": "olymk2/emacs-digitalocean-helm",
+ "unstable": {
+ "version": [
+ 20180610,
+ 746
+ ],
+ "deps": [
+ "digitalocean",
+ "helm"
+ ],
+ "commit": "b125c9882eded7d73ec109d152b26625f333440b",
+ "sha256": "072v1800gjv566fqjxp8dvzkilwhbvl7lc5fqc0mr4xw8lpldkx9"
+ }
+ },
+ {
+ "ename": "dim",
+ "commit": "3a740ab40cab3a1890f56df808f41a2d541aa77c",
+ "sha256": "0gsyily47g3g55qmhp1wzfz319l1pkgjz4lbigafjzlzqxyclz52",
+ "fetcher": "github",
+ "repo": "alezost/dim.el",
+ "unstable": {
+ "version": [
+ 20160818,
+ 949
+ ],
+ "commit": "5515f2e8657ef14adcc34aa5b05383a2684328ae",
+ "sha256": "044f337k5swz9bgfmisk6mqr5gjfv3y7zclqspdw846ka4kwpr2z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "0c19a510580ebdc77e6db536f0f8ed2840b9b33e",
+ "sha256": "1vrd74vmm60gb69a4in412mjncnhkjbfpakpaa6w9rj7w4kyfiz1"
+ }
+ },
+ {
+ "ename": "dim-autoload",
+ "commit": "66b1a81dfd09a2859ae996d5d8e3d704857a340f",
+ "sha256": "0lhzzjrgfvbqnzwhjywrk3skdb7x10xdq7d21q6kdk3h5r0np9f9",
+ "fetcher": "github",
+ "repo": "tarsius/dim-autoload",
+ "unstable": {
+ "version": [
+ 20200103,
+ 1239
+ ],
+ "commit": "c8dc02259d6c1aa25fb58742ae8b181f83b39a13",
+ "sha256": "0k9m57zrdpabb6b34j9xy3cmcpzni89wq71pzzwgdi47p1n4r4vd"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 3
+ ],
+ "commit": "c8dc02259d6c1aa25fb58742ae8b181f83b39a13",
+ "sha256": "0k9m57zrdpabb6b34j9xy3cmcpzni89wq71pzzwgdi47p1n4r4vd"
+ }
+ },
+ {
+ "ename": "diminish",
+ "commit": "1bfb4acb381cada46458cf60eae9b88d007294d5",
+ "sha256": "1h6a31jllypk47akjflz89xk6h47na96pim17d6g4rpqcafc2k43",
+ "fetcher": "github",
+ "repo": "myrjola/diminish.el",
+ "unstable": {
+ "version": [
+ 20191127,
+ 1326
+ ],
+ "commit": "6ec6ebc391371418efc6c98d70b013f34af5a2ee",
+ "sha256": "0q8pihj9fwq9w978ycmvzv8kq8ksrdf8zfadjy8i2iwc4ib0jg7y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 45
+ ],
+ "commit": "0211de96b7cfba9c9dc8d2d392dbd4ccdb22bc65",
+ "sha256": "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"
+ }
+ },
+ {
+ "ename": "diminish-buffer",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1z0ini177r9dkn4bpdpcmyi014a3444blij8izvpj31bqkyckmqf",
+ "fetcher": "github",
+ "repo": "jcs-elpa/diminish-buffer",
+ "unstable": {
+ "version": [
+ 20200712,
+ 1355
+ ],
+ "commit": "2ef1e03458b9528a737814546aaee66067db649e",
+ "sha256": "0xlbgxl44iyffpg5r7md3a3l1b7gdj1vsfajww8g3rsna7d7n2wp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 7
+ ],
+ "commit": "cef452767c16c564dabc819b234fd3236fa97a51",
+ "sha256": "1hz3b44pbsy6ybicjs6i1fm2lai1ccxk46dk6fyd5bcb66s2lxzy"
+ }
+ },
+ {
+ "ename": "dimmer",
+ "commit": "8ae80e9202d69ed3214325dd15c4b2f114263954",
+ "sha256": "0w8n5svckk1jp8856pg2gkws9798prqjjkdqf8ili2hjcqnd1a3r",
+ "fetcher": "github",
+ "repo": "gonewest818/dimmer.el",
+ "unstable": {
+ "version": [
+ 20200509,
+ 1718
+ ],
+ "commit": "4abe51533a972910f9012029a47b533878ec682e",
+ "sha256": "023lrm9s8rdq41d19nlizq2s1d2317s4qlc83m4g6ymw54m61z2m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "commit": "e45bf2d064a8ecdea2b4caf646ece2d0adc1d84e",
+ "sha256": "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"
+ }
+ },
+ {
+ "ename": "dionysos",
+ "commit": "890445eca3c555acd2639a6f509c8e83b687f2bd",
+ "sha256": "1wjgj74dnlwd79gc3l7ymbx75jka8rw9smzbb10dsfppw3rrzfmz",
+ "fetcher": "github",
+ "repo": "nlamirault/dionysos",
+ "unstable": {
+ "version": [
+ 20160810,
+ 1056
+ ],
+ "deps": [
+ "alert",
+ "cl-lib",
+ "dash",
+ "libmpdee",
+ "pkg-info",
+ "s"
+ ],
+ "commit": "0aac21caadabc5a7f09e18a9dcb02f3dec26588b",
+ "sha256": "1g6p9cr3p85i7ay3jmvn7f8c5k8d49fcynb3ymns7rgsf3ypvpyc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "alert",
+ "cl-lib",
+ "dash",
+ "libmpdee",
+ "pkg-info",
+ "s"
+ ],
+ "commit": "98bc789d20e41020d6e62d63d3c78f8032fa4bf2",
+ "sha256": "1hma72dyn3w6cwd3vrgg4hdlrxgwqs55cjyxb05vs9csz7r42208"
+ }
+ },
+ {
+ "ename": "dircmp",
+ "commit": "b146db5977003cb48bc37317f3df19b8a8c7fc30",
+ "sha256": "0cnj7b0s8vc83sh9sai1cldw54krk5qbz1qmlvvd1whryf2pc95c",
+ "fetcher": "github",
+ "repo": "matthewlmcclure/dircmp-mode",
+ "unstable": {
+ "version": [
+ 20141204,
+ 1756
+ ],
+ "commit": "558ee0b601c2de9d247612085aafe2926f56a09f",
+ "sha256": "0mcsfsybpsxhzkd2m9bzc0np49azm6qf5x4x9h9lbxc8vfgh4z8s"
+ }
+ },
+ {
+ "ename": "dired-atool",
+ "commit": "0fe7b0857828a041ee06b30edd2cd488cc3394c7",
+ "sha256": "0qljx6fmz1hal9r2smjyc957wcvcpg16vp5mv65ip6d26k5qsj0w",
+ "fetcher": "github",
+ "repo": "HKey/dired-atool",
+ "unstable": {
+ "version": [
+ 20181228,
+ 1422
+ ],
+ "commit": "52ce4ac88fa39a0ebdf732435fd831ea9a8d0764",
+ "sha256": "00br8f8rw0rrzmi3nvacwn14d122jw243z1izlsm8h8q95hh8f6l"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "09dbb769fe02f546da470369a12468ab4a0cceb2",
+ "sha256": "0j2dz4vy4i22185hhlwg2kprpis97xb12qvfdhvdcnz2vwy61sxa"
+ }
+ },
+ {
+ "ename": "dired-avfs",
+ "commit": "568e524b7bdf91b31655bdbb30fe9481d7a0ffbf",
+ "sha256": "1q42pvrpmd525887iicd3m5gw4w2a78xb72v7fjfl30ay1kir4bm",
+ "fetcher": "github",
+ "repo": "Fuco1/dired-hacks",
+ "unstable": {
+ "version": [
+ 20161012,
+ 1104
+ ],
+ "deps": [
+ "dash",
+ "dired-hacks-utils"
+ ],
+ "commit": "f49a8bbf95f70671a74a24f7f4de453b2686be46",
+ "sha256": "0b5mk501sy3b2ak46yyy8qcl5f5fsc9py750n962qfh2zs1amrbs"
+ }
+ },
+ {
+ "ename": "dired-collapse",
+ "commit": "6aab23df1451682ff18d9ad02c35cb7ec612bc38",
+ "sha256": "1k8h5cl8r68rnr1a3jnbc0ydflzm5mad7v7f1q60wks5hv61dsd1",
+ "fetcher": "github",
+ "repo": "Fuco1/dired-hacks",
+ "unstable": {
+ "version": [
+ 20190515,
+ 1210
+ ],
+ "deps": [
+ "dash",
+ "dired-hacks-utils",
+ "f"
+ ],
+ "commit": "f49a8bbf95f70671a74a24f7f4de453b2686be46",
+ "sha256": "0b5mk501sy3b2ak46yyy8qcl5f5fsc9py750n962qfh2zs1amrbs"
+ }
+ },
+ {
+ "ename": "dired-dups",
+ "commit": "6d01ad74959e17b5708ba9fa6a4958d4cda4e232",
+ "sha256": "05s02gw8b339yvsr7vvka1r2140y7mbjzs8px4kn4acgb5y7rk71",
+ "fetcher": "github",
+ "repo": "vapniks/dired-dups",
+ "unstable": {
+ "version": [
+ 20130527,
+ 2125
+ ],
+ "commit": "694ad128c822c59348ced16c4a0c1356d43da47a",
+ "sha256": "1lcmpzwj43gix2q56bh2gw3gfqh8vl5j3mqr8s7v3k0aw816j0ni"
+ }
+ },
+ {
+ "ename": "dired-efap",
+ "commit": "5669ca2adc48f3349eb59276850e6174e37f9de7",
+ "sha256": "01j5v6584qi8ia7zmk03kx3i3kmm6hn6ycfgqlh5va6lp2h9sr00",
+ "fetcher": "github",
+ "repo": "juan-leon/dired-efap",
+ "unstable": {
+ "version": [
+ 20140122,
+ 1656
+ ],
+ "commit": "624757b2e54d9a13e2183118d6c113e37684b90c",
+ "sha256": "0jj9da880b4zwxba140fldai1x9p2sxc6hdf3wz6lnbvz1pyn1mv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "commit": "2b849bc5c09d0b752a177495ea1b851ee821f5bf",
+ "sha256": "1m0nx8wd6q56qbp5mbp9n466kyglrz34nflwvgd1qnmi08jwswgv"
+ }
+ },
+ {
+ "ename": "dired-explorer",
+ "commit": "acd40e02185847dfdcd70b3cacea703133e4356d",
+ "sha256": "12mymmcl663ci543vqzg8jai8kgfbb3gw5wsbcm4ln3j8d5fgzd9",
+ "fetcher": "github",
+ "repo": "jidaikobo-shibata/dired-explorer",
+ "unstable": {
+ "version": [
+ 20180607,
+ 221
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3ade0a31b5340271d05e9bf443f2504960f6c6dd",
+ "sha256": "0lbm326na005k3pa11rqq5nbhvm55dydi2a7fzs3bzlqwbx7d6fq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3ade0a31b5340271d05e9bf443f2504960f6c6dd",
+ "sha256": "0lbm326na005k3pa11rqq5nbhvm55dydi2a7fzs3bzlqwbx7d6fq"
+ }
+ },
+ {
+ "ename": "dired-fdclone",
+ "commit": "8a0ddc10b11772d72a473e8d24ab4641bf4239a4",
+ "sha256": "11aikq2q3m9h4zpgl24f8npvpwd98jgh8ygjwy2x5q8as8i89vf9",
+ "fetcher": "github",
+ "repo": "knu/dired-fdclone.el",
+ "unstable": {
+ "version": [
+ 20180403,
+ 608
+ ],
+ "commit": "903d7a736d240ef7352989a4e5d0ff9129c2ee3c",
+ "sha256": "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 4
+ ],
+ "commit": "903d7a736d240ef7352989a4e5d0ff9129c2ee3c",
+ "sha256": "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw"
+ }
+ },
+ {
+ "ename": "dired-filetype-face",
+ "commit": "4e6c8015af3d5f013272308a97e089a4e3ca847d",
+ "sha256": "1g9wzkkqmlkxlxwx43446q9mlam035zwq0wzpf7m6394rw2xlwx6",
+ "fetcher": "github",
+ "repo": "jixiuf/dired-filetype-face",
+ "unstable": {
+ "version": [
+ 20180907,
+ 1339
+ ],
+ "commit": "7ade7f7e8c2d7518c65f3f0343a10c272da0f47e",
+ "sha256": "0s8mqz331iw2bk4xdvj9zljklqj8dxv0yaw100lddg37qmdf7lgl"
+ }
+ },
+ {
+ "ename": "dired-filter",
+ "commit": "568e524b7bdf91b31655bdbb30fe9481d7a0ffbf",
+ "sha256": "1mw94210i57wrqfyif6rh689xbwbpv1qp6bgc0j7z6g4xypvd52p",
+ "fetcher": "github",
+ "repo": "Fuco1/dired-hacks",
+ "unstable": {
+ "version": [
+ 20191105,
+ 1404
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "dired-hacks-utils",
+ "f"
+ ],
+ "commit": "f49a8bbf95f70671a74a24f7f4de453b2686be46",
+ "sha256": "0b5mk501sy3b2ak46yyy8qcl5f5fsc9py750n962qfh2zs1amrbs"
+ }
+ },
+ {
+ "ename": "dired-git",
+ "commit": "640074b41e5b70e3b32484ea850a681e9026a9cf",
+ "sha256": "09qh6zjpyasqlsjnakal6a5i04pkhps51b064470rgg855jfh9li",
+ "fetcher": "github",
+ "repo": "conao3/dired-git.el",
+ "unstable": {
+ "version": [
+ 20200527,
+ 732
+ ],
+ "deps": [
+ "all-the-icons",
+ "async",
+ "async-await",
+ "ppp"
+ ],
+ "commit": "82c93bdb2fe392b122f79d2e425c632f1c69ede3",
+ "sha256": "134f97zk7q2fvqphfgbjdbwlgrrnq51v0zrv6aw8c8n7fln5ap93"
+ }
+ },
+ {
+ "ename": "dired-hacks-utils",
+ "commit": "568e524b7bdf91b31655bdbb30fe9481d7a0ffbf",
+ "sha256": "1vgl0wqf7gc2nbiqjn0rkrdlnxfm3wrgspx5b3cixv2n8rqx8kyi",
+ "fetcher": "github",
+ "repo": "Fuco1/dired-hacks",
+ "unstable": {
+ "version": [
+ 20190522,
+ 950
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "f49a8bbf95f70671a74a24f7f4de453b2686be46",
+ "sha256": "0b5mk501sy3b2ak46yyy8qcl5f5fsc9py750n962qfh2zs1amrbs"
+ }
+ },
+ {
+ "ename": "dired-hide-dotfiles",
+ "commit": "ba64a50f85fdb0ad54149dfed4051b4c1a719cbb",
+ "sha256": "0yy131cvj9a9sz02ari7pzwf22r5y7acyg757h3jvih317v6jyp0",
+ "fetcher": "github",
+ "repo": "mattiasb/dired-hide-dotfiles",
+ "unstable": {
+ "version": [
+ 20170314,
+ 2039
+ ],
+ "commit": "b715f643ec805b3b8aca334595e6589320f04a49",
+ "sha256": "1n6l25lrhp1x8nhc54kqal96wq96kkfyvz5yzvlw1qd3yk4s567i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "32cf3b6f90dc56f6ff271c28d827aab303bc6221",
+ "sha256": "1fpzgmvbgfgl6wdrynlpvvdlbm8npgrmnzfz2133zvf5x3zfzq6r"
+ }
+ },
+ {
+ "ename": "dired-icon",
+ "commit": "8a96249947cba52cd75515b3dc83b0842fedf624",
+ "sha256": "0nyiqcywc1p8kw3psisl4zxwmf2g0x82kanka85zxxdz15s509j1",
+ "fetcher": "gitlab",
+ "repo": "xuhdev/dired-icon",
+ "unstable": {
+ "version": [
+ 20170223,
+ 526
+ ],
+ "commit": "f60e10757a5011235b519231ad35974ff25963ed",
+ "sha256": "0r9qmr2l5kjwh1frp0k87nyaf13f7f9fjjf9yf9z92djqapfm9dd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "dbace8d2250f84487d31b39050fcdc260fcde804",
+ "sha256": "1d9105ibaw858gqp19rx2m6xm3hl57vzsmdqir883cy46qpvwhki"
+ }
+ },
+ {
+ "ename": "dired-imenu",
+ "commit": "e346de86b7f7fd5dad548f0936cde54ac11e3f79",
+ "sha256": "09yix4fkr03jq6j2rmvyg6gkmcnraw49a8m9649r3m525qdnhxs1",
+ "fetcher": "github",
+ "repo": "DamienCassou/dired-imenu",
+ "unstable": {
+ "version": [
+ 20140109,
+ 1610
+ ],
+ "commit": "610e21fe0988c85931d34894d3eee2442c79ab0a",
+ "sha256": "088h9yn6wndq4pq6f7q4iz17f9f4ci29z9nh595idljp3vwr7qid"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "610e21fe0988c85931d34894d3eee2442c79ab0a",
+ "sha256": "088h9yn6wndq4pq6f7q4iz17f9f4ci29z9nh595idljp3vwr7qid"
+ }
+ },
+ {
+ "ename": "dired-k",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1nimv6rzk0rrzvniirrsxzd78f4yil1aajcxyra2nmx7dr4xszqh",
+ "fetcher": "github",
+ "repo": "emacsorphanage/dired-k",
+ "unstable": {
+ "version": [
+ 20200322,
+ 2035
+ ],
+ "commit": "1f90cf6ac932ad30ccfefec27ea7e514c24ab335",
+ "sha256": "1bmpn18z42i8dy331yrks5gsivpvwj677yc58iw66ckjnyjnyjps"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 19
+ ],
+ "commit": "3f0b9315f87b0f930d51089e311d41282d5f8b15",
+ "sha256": "09xh097v3fd0mjxqlmbfwjlr1v4a99mj4rvwdb6kqgajmlhgi9hx"
+ }
+ },
+ {
+ "ename": "dired-launch",
+ "commit": "31c9a4945d65aa6afc371c447a572284d38d4d71",
+ "sha256": "0vhf0iai60mp8sp7snishz6nrw0bcriq4cx64f41lk1adjb2mqaw",
+ "fetcher": "github",
+ "repo": "thomp/dired-launch",
+ "unstable": {
+ "version": [
+ 20200430,
+ 1625
+ ],
+ "commit": "95a411f6d4bb5eec4ef8fdbba9f038ddf60da81f",
+ "sha256": "0rz8d9lj2zbipz6cwrlw2a3z9y4rybbmz73h73l1i7fjg9q1kqm4"
+ }
+ },
+ {
+ "ename": "dired-lsi",
+ "commit": "b38502c7c37658b369ae004e1ce8a21c16d9e6de",
+ "sha256": "1q84krip2814b726ni4q2c8mhqqhr39wgvi6881mg96h624v9bxm",
+ "fetcher": "github",
+ "repo": "conao3/dired-lsi.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 929
+ ],
+ "commit": "0f4038c8b47f6cfc70f82062800700c14c9912c2",
+ "sha256": "1bb46cla9pa4697njyqlycjjxf63i0nsxppg9sb0762xsashyz9s"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "8170d7711254af18cbf1397d681fd331363a17d8",
+ "sha256": "1wgvd229cirfgn2vkjqwam4gnhs7jnp05c73vh8sckrzs3z51zc9"
+ }
+ },
+ {
+ "ename": "dired-narrow",
+ "commit": "8994330f90a925df17ae425ccdc87865df8e19cd",
+ "sha256": "1rgqiscbizalh78jwc53zbj599dd13a6vzdgf75vzllc1w7jsg6d",
+ "fetcher": "github",
+ "repo": "Fuco1/dired-hacks",
+ "unstable": {
+ "version": [
+ 20181114,
+ 1723
+ ],
+ "deps": [
+ "dash",
+ "dired-hacks-utils"
+ ],
+ "commit": "f49a8bbf95f70671a74a24f7f4de453b2686be46",
+ "sha256": "0b5mk501sy3b2ak46yyy8qcl5f5fsc9py750n962qfh2zs1amrbs"
+ }
+ },
+ {
+ "ename": "dired-open",
+ "commit": "568e524b7bdf91b31655bdbb30fe9481d7a0ffbf",
+ "sha256": "0a4ksz2jkva4gvhprywjc1fzrbf95xdk8gn25nv1h1c1ckhr91qx",
+ "fetcher": "github",
+ "repo": "Fuco1/dired-hacks",
+ "unstable": {
+ "version": [
+ 20180922,
+ 1113
+ ],
+ "deps": [
+ "dash",
+ "dired-hacks-utils"
+ ],
+ "commit": "f49a8bbf95f70671a74a24f7f4de453b2686be46",
+ "sha256": "0b5mk501sy3b2ak46yyy8qcl5f5fsc9py750n962qfh2zs1amrbs"
+ }
+ },
+ {
+ "ename": "dired-posframe",
+ "commit": "33ce7b7ad21c774ce7f1222af5a7d87219072fc1",
+ "sha256": "0jzbkafv0hv107412szs777ni3zxpn8fwlr5xm8pb89q3q5v7bcx",
+ "fetcher": "github",
+ "repo": "conao3/dired-posframe.el",
+ "unstable": {
+ "version": [
+ 20200817,
+ 420
+ ],
+ "deps": [
+ "posframe"
+ ],
+ "commit": "1a21eb9ad956a0371dd3c9e1bec53407d685f705",
+ "sha256": "0k633fz5gccza5l3dydn55yg4r1a50bgcmxwxn89qc7cd8dck75v"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "posframe"
+ ],
+ "commit": "1a21eb9ad956a0371dd3c9e1bec53407d685f705",
+ "sha256": "0k633fz5gccza5l3dydn55yg4r1a50bgcmxwxn89qc7cd8dck75v"
+ }
+ },
+ {
+ "ename": "dired-quick-sort",
+ "commit": "4d278178128deb03a7b1d2e586dc38da2c7af857",
+ "sha256": "01vrk3wqq2zmcblyp9abi2lvrzr2a5ca8r8gjjnr5223037ppl3l",
+ "fetcher": "gitlab",
+ "repo": "xuhdev/dired-quick-sort",
+ "unstable": {
+ "version": [
+ 20161208,
+ 2112
+ ],
+ "deps": [
+ "hydra"
+ ],
+ "commit": "1845f978d313f750a5b70b832457ed803c4ffbdb",
+ "sha256": "014frvpszixn8cx7rdx704glmjbslv3py3kw0pb0xqf50k4scynf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "hydra"
+ ],
+ "commit": "fe39cfb2d4a7ba6b30f98134548b4e4bac67c469",
+ "sha256": "1a9r1kz5irpvb2byabbf27sy7rjzaygfpqimpag41sj955wlgy9a"
+ }
+ },
+ {
+ "ename": "dired-rainbow",
+ "commit": "568e524b7bdf91b31655bdbb30fe9481d7a0ffbf",
+ "sha256": "1b9yh8p2x1dg7dyqhjhnqqiiymyl6bwsam65j0lpvbdx8r4iw882",
+ "fetcher": "github",
+ "repo": "Fuco1/dired-hacks",
+ "unstable": {
+ "version": [
+ 20190722,
+ 1109
+ ],
+ "deps": [
+ "dash",
+ "dired-hacks-utils"
+ ],
+ "commit": "f49a8bbf95f70671a74a24f7f4de453b2686be46",
+ "sha256": "0b5mk501sy3b2ak46yyy8qcl5f5fsc9py750n962qfh2zs1amrbs"
+ }
+ },
+ {
+ "ename": "dired-ranger",
+ "commit": "c03f6f8c779c8784f52adb20b266404cb537113a",
+ "sha256": "19lbbzqflqda5b0alqfzdhpbgqssghqb4n4viq8x4l1fac8mby6h",
+ "fetcher": "github",
+ "repo": "Fuco1/dired-hacks",
+ "unstable": {
+ "version": [
+ 20180401,
+ 2206
+ ],
+ "deps": [
+ "dash",
+ "dired-hacks-utils"
+ ],
+ "commit": "f49a8bbf95f70671a74a24f7f4de453b2686be46",
+ "sha256": "0b5mk501sy3b2ak46yyy8qcl5f5fsc9py750n962qfh2zs1amrbs"
+ }
+ },
+ {
+ "ename": "dired-recent",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1qvw7m6wzahc0xmf37cyl9lv1k9442j0kkzx6dl6f0wclw0v6hgs",
+ "fetcher": "github",
+ "repo": "Vifon/dired-recent.el",
+ "unstable": {
+ "version": [
+ 20200712,
+ 716
+ ],
+ "commit": "860e70b15983ac7164648de8148a529bdcdb8833",
+ "sha256": "1558cdinig8kx2hx2hkl3zxk001ijx53n5rjdm3367wllp0icyzf"
+ }
+ },
+ {
+ "ename": "dired-rifle",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1x6i68i7f1c3k0w3w4zph16s046ccajyb2641fx0j8dl5367qgbc",
+ "fetcher": "github",
+ "repo": "Vifon/dired-rifle.el",
+ "unstable": {
+ "version": [
+ 20200308,
+ 2358
+ ],
+ "commit": "99e4110c80d65ca43e2b0ec078e3202995e392d7",
+ "sha256": "034qak8kdp7laz1ylqy9np5ajhwf741mdl0bj5kb7rrrsijxada6"
+ }
+ },
+ {
+ "ename": "dired-rmjunk",
+ "commit": "75d501ae9b64d9aa083f43358881a467a7cd2a04",
+ "sha256": "1m07z6gcsd5i1xshgfxqrpcrqpl0ffa9ls2443za5wkgbalhxx47",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~jakob/dired-rmjunk",
+ "unstable": {
+ "version": [
+ 20191007,
+ 1232
+ ],
+ "commit": "92af5fcc2bd0bc3826f4ce238a850e9a362533a4",
+ "sha256": "0720lnnm0sjf8yazr0xjwfrzqwia283jj3c6hcbgfp5l0z162m5b"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "6a9fa6a35498e53e8c57282e3b08dedc896d880d",
+ "sha256": "0kpkd7qasrb303d0b01d62r82prhrmaasxqa14nf5lh01c213nr4"
+ }
+ },
+ {
+ "ename": "dired-rsync",
+ "commit": "ce9f41ad832cef527dde97f829a8b8339e6ac48b",
+ "sha256": "0lykj7nfpaspwn90macvr7iir4jlrx88i0s9spii7iic2fnm51ql",
+ "fetcher": "github",
+ "repo": "stsquad/dired-rsync",
+ "unstable": {
+ "version": [
+ 20200308,
+ 1150
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "bfd5c155be1cb6b71c83e5f41116c81b6532b6d5",
+ "sha256": "096lqsq4bh5fgxhfscvmscd5v8d4ji88wks2chi92h9v85sha3b6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "707f527a5448f8fd881321f1d60e49821d3efe60",
+ "sha256": "1nq3d8py2zsji835wilg514z5j180k371pwqsqrmnnhq1cj4fkia"
+ }
+ },
+ {
+ "ename": "dired-sidebar",
+ "commit": "30e15c8361b01195f198197e704828fbcac0e8d6",
+ "sha256": "19a4gsx9wmpc94jd992c7dj5mxfnnij2nc6qnb2lhk8ad69h1lmc",
+ "fetcher": "github",
+ "repo": "jojojames/dired-sidebar",
+ "unstable": {
+ "version": [
+ 20200711,
+ 2031
+ ],
+ "deps": [
+ "dired-subtree"
+ ],
+ "commit": "da77919081d9a4e73c2df63542353319381e4f89",
+ "sha256": "05h56wdl2xvc8davnx83ypg20fl7wlks97cafa4r2yf141xjc05h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dired-subtree"
+ ],
+ "commit": "347f56480228c2aac97e14f4f5a762c4582d1323",
+ "sha256": "1ahmvbwwdnjddn8qk6gq5gjfkvi1mvm13a968n7zpcpnphk6ygzb"
+ }
+ },
+ {
+ "ename": "dired-single",
+ "commit": "41669decbb7ad5c4dbe152a863f16d87e7bba493",
+ "sha256": "13h8dsn7bkz8ji2rrb7vyrqb2znxarpiynqi65mfli7dn5k086vf",
+ "fetcher": "github",
+ "repo": "crocket/dired-single",
+ "unstable": {
+ "version": [
+ 20200303,
+ 1144
+ ],
+ "commit": "90ade369ba478fdebf61957f837c0b10cef128b1",
+ "sha256": "08qm8s77kfx9yfhm10vivhq15jrndvd29azkv4y1wd9qsrh5ylk0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "27120d6a079541e994105e3f969032d3ae7edaa4",
+ "sha256": "14q8lp1x1b78ra9mk90n6dyrm1j9ny5pr7valgpkg8agqyqn7xmn"
+ }
+ },
+ {
+ "ename": "dired-subtree",
+ "commit": "d6a947ac9476f10b95a3c153ec784d2a8330dd4c",
+ "sha256": "1vqcnkh3g6dwi2hwfkb534q0j19pkqzqk3yb7ah8ck4z4ln4ppfk",
+ "fetcher": "github",
+ "repo": "Fuco1/dired-hacks",
+ "unstable": {
+ "version": [
+ 20180922,
+ 1615
+ ],
+ "deps": [
+ "dash",
+ "dired-hacks-utils"
+ ],
+ "commit": "f49a8bbf95f70671a74a24f7f4de453b2686be46",
+ "sha256": "0b5mk501sy3b2ak46yyy8qcl5f5fsc9py750n962qfh2zs1amrbs"
+ }
+ },
+ {
+ "ename": "dired-toggle",
+ "commit": "17ae4c5ff42e0c48e53d93c88853f649f59034e6",
+ "sha256": "18v571kp440n5g1d7pj86rr8dgbbm324f9vblkdbdvn13c5dczf5",
+ "fetcher": "github",
+ "repo": "fasheng/dired-toggle",
+ "unstable": {
+ "version": [
+ 20190616,
+ 303
+ ],
+ "commit": "b694ba91a45d0762bd032ff1bb4109e4c62ca686",
+ "sha256": "0kcyd6a3c46dz54c2h74bxm62c0shl85rgi1dhy9gmjshlmwn24k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "commit": "5bcdd9f13c0b0149c5125004e93bc2dfd22f3fce",
+ "sha256": "0dghbrx364fihzp5r8ar6vxkavd7mn74qjkijy1wvy34vl0b4911"
+ }
+ },
+ {
+ "ename": "dired-toggle-sudo",
+ "commit": "5cdee2d52c0c53566fdd77a5d42edf365764acff",
+ "sha256": "0fy05af9aq9791ij4j9pscdk5j44pbg0kmhpqli41qiazjw7v2va",
+ "fetcher": "github",
+ "repo": "renard/dired-toggle-sudo",
+ "unstable": {
+ "version": [
+ 20200401,
+ 1353
+ ],
+ "commit": "13bbe52c54893f5aa3e56228450ffdd0c9e1d169",
+ "sha256": "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "02449dbda4e168f99fe5352c9628df5d39e11483",
+ "sha256": "0ajj8d6k5in2hclcrqckinfh80ylddplva0ryfbkzsjkfq167cv2"
+ }
+ },
+ {
+ "ename": "diredfl",
+ "commit": "3da86e18d423198766455929da1dcb3a9a3be381",
+ "sha256": "0cybq15yq07x2mnrnwapy020d598yymcy8y9wwf1m7f59p3h9hvn",
+ "fetcher": "github",
+ "repo": "purcell/diredfl",
+ "unstable": {
+ "version": [
+ 20191227,
+ 2028
+ ],
+ "commit": "cd052dfef602fe79d8dfbcf9f06e6da74412218b",
+ "sha256": "1zhnr4wkb0gifhf1gfssipanifaiixvz6wqlmscxyp7hdm8xjvad"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "45e9c46f58c655694758d4986b9195c8bb40ddf3",
+ "sha256": "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"
+ }
+ },
+ {
+ "ename": "diredful",
+ "commit": "76f3d178e7c3982b53c7ee0096c839397534d732",
+ "sha256": "0y8x6q1yfsk0srxsh4g5nbsms1g9pk9d103jx7cfdac79mcigw7x",
+ "fetcher": "github",
+ "repo": "thamer/diredful",
+ "unstable": {
+ "version": [
+ 20160529,
+ 2017
+ ],
+ "commit": "c08e163d9d6c62f7b07e94d54c96c2e364e67e0e",
+ "sha256": "1h2hnm8r3anfbk5x7d2dnv38bdllsbwaam6ivpbgzn12r23wrsr2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 10
+ ],
+ "commit": "b17b3087e0084a5571a9ac4d47ccfc36d96b109e",
+ "sha256": "1d8n8wj5k82a1sfg93kn3ajci804mpp9j206x5f185zd48wb25z8"
+ }
+ },
+ {
+ "ename": "direnv",
+ "commit": "5419809ee62b920463e359c8e1314cd0763657c1",
+ "sha256": "0zzmi5m6fh42kyf8dyjrjyrl03pkbipnh4mnssrhp83ljczxkyhd",
+ "fetcher": "github",
+ "repo": "wbolster/emacs-direnv",
+ "unstable": {
+ "version": [
+ 20200529,
+ 1305
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "f5484b0fc33d4e5116612626294efb362ff9ecd4",
+ "sha256": "0772z4v2jjinqlqhrdcsvk912gdi0dkxag7q5nm0rnkx2pyk7ynw"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "1f93e3f9cae5ec171939fe5c1fe9744a28fa6576",
+ "sha256": "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"
+ }
+ },
+ {
+ "ename": "direx",
+ "commit": "7856a62fb86415c88aa72b574895328c93c10a09",
+ "sha256": "0qp3pidsa9gwz8vhcfg3l5vl6w8071gk04amba8cpc0w3a9pps95",
+ "fetcher": "github",
+ "repo": "emacsorphanage/direx",
+ "unstable": {
+ "version": [
+ 20170422,
+ 1327
+ ],
+ "commit": "a79bfdb5980cf6ed7bfb3b41ddc471a7b6c0ede4",
+ "sha256": "0fl9hdnrq54awx43635p6pmc8bqyppa02gs1d76nifi0q4g9v4m7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "423caeed13249e37afc937dc8134cb3c53e0f111",
+ "sha256": "0p8c2hjgr81idm1psv3i3v5hr5rv0875ig8app2yqjwzvl0nn73f"
+ }
+ },
+ {
+ "ename": "direx-grep",
+ "commit": "6a88a29090a0d6c636f4aeb5214433db66367d9e",
+ "sha256": "0y2wrzq06prm55akwgaqjg56znknyvbayav13asirqzg258skvm2",
+ "fetcher": "github",
+ "repo": "aki2o/direx-grep",
+ "unstable": {
+ "version": [
+ 20140515,
+ 1506
+ ],
+ "deps": [
+ "direx"
+ ],
+ "commit": "1109a512a80b2673a70b18b8568514049017faad",
+ "sha256": "0swdh0qynpijsv6a2d308i42hfa0jwqsnmf4sm8vrhaf3vv25f5h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "direx"
+ ],
+ "commit": "1109a512a80b2673a70b18b8568514049017faad",
+ "sha256": "0swdh0qynpijsv6a2d308i42hfa0jwqsnmf4sm8vrhaf3vv25f5h"
+ }
+ },
+ {
+ "ename": "dirtree",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "1fm003rix3sdfx8fq3ab5s8b2q65gbkjsn1j3fg5qmhv56p7lrs9",
+ "fetcher": "github",
+ "repo": "emacsorphanage/dirtree",
+ "unstable": {
+ "version": [
+ 20140129,
+ 832
+ ],
+ "deps": [
+ "tree-mode",
+ "windata"
+ ],
+ "commit": "ba55f1e716e386fdd37cb8e7f48616e405dc7251",
+ "sha256": "0abs3r4zzfnf4igiakrv3bpyxz7qlnw26l57rynsk7c3w3s5ya29"
+ }
+ },
+ {
+ "ename": "dirtree-prosjekt",
+ "commit": "6d359ec827573dd8c871c4f23df5d1737f1830e7",
+ "sha256": "0pyb6c0gvc16z5rc5h0kpl8021hz2hzv86cmjsd20gbhz7imrqwk",
+ "fetcher": "github",
+ "repo": "abingham/prosjekt",
+ "unstable": {
+ "version": [
+ 20140129,
+ 904
+ ],
+ "deps": [
+ "dirtree",
+ "prosjekt"
+ ],
+ "commit": "a864a8be5842223043702395f311e3350c28e9db",
+ "sha256": "1m8zvrv5aws7b0dffk8y6b5mncdk2c4k90mx69jys10fs0gc5hb3"
+ }
+ },
+ {
+ "ename": "disable-mouse",
+ "commit": "dbbc396373212fdf731e135cde391f27708ff015",
+ "sha256": "0c0ps39s6wg3grspvgck0cwxnas73nfaahfa87l0mmgsrsvas5m7",
+ "fetcher": "github",
+ "repo": "purcell/disable-mouse",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2159
+ ],
+ "commit": "a8318f5f21716316053cc092ab9abb43cb681fe0",
+ "sha256": "0z9749hd3x1z2sf3lyzx2rrcfarixmfg0hnc5xsckkgyb7gbn6hq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "81639930bcaeedadbcc19728e91719afcac84613",
+ "sha256": "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"
+ }
+ },
+ {
+ "ename": "disaster",
+ "commit": "a4654b3646b96f967e2c75440e664a417cd0f517",
+ "sha256": "1ad8q81n0s13cwmm216wqx3s92195pda1amc4wxvpb3lq7dbd3yn",
+ "fetcher": "github",
+ "repo": "jart/disaster",
+ "unstable": {
+ "version": [
+ 20171016,
+ 2152
+ ],
+ "commit": "10a785facc60d89d78e0d5177985ab1af1741bb4",
+ "sha256": "0iz43jdkh5qdllqdchliys84gn9bpj6688rpc4jnycp64141m6cx"
+ }
+ },
+ {
+ "ename": "discourse",
+ "commit": "f5e64fc3fa3fc7d0ac14e7e5d324ee1ca77ea4c3",
+ "sha256": "0j11pyly7qni3gqgywd9bkzfm1dfvhbfjc7pls9n9s26nbqdzcw9",
+ "fetcher": "github",
+ "repo": "lujun9972/discourse-api",
+ "unstable": {
+ "version": [
+ 20160911,
+ 819
+ ],
+ "deps": [
+ "cl-lib",
+ "request",
+ "s"
+ ],
+ "commit": "a86c7e608851e186fe12e892a573994f08c8e65e",
+ "sha256": "1p4crd7v94hmqzqh8bc7jx1pfhallmj4kn36f8l22z4r2mkyycxc"
+ }
+ },
+ {
+ "ename": "discover",
+ "commit": "688e32e98758aa6fd31218e98608bd54a76c3e83",
+ "sha256": "1hf57p90jn1zzhjl63zv9ascbgkcbr0p0zmd3fvzpjsw84235dga",
+ "fetcher": "github",
+ "repo": "mickeynp/discover.el",
+ "unstable": {
+ "version": [
+ 20140103,
+ 2139
+ ],
+ "deps": [
+ "makey"
+ ],
+ "commit": "7b0044bbb3b3bd5d811fdfb0f5ac6ec8de1239df",
+ "sha256": "0f7h2rhh37lrs6xclj182li6s1fawv5m8w3hgy6qgm06dam45lka"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "makey"
+ ],
+ "commit": "bbfda2b4e429985a8fa7971d264c942767cfa816",
+ "sha256": "0qxw30zrlcxhxb0alrgyiclrk44dysal8xsbz2mvgrb6jli8wg18"
+ }
+ },
+ {
+ "ename": "discover-clj-refactor",
+ "commit": "3311371cadf00b00bfbece4e4b2f96c226f0e27d",
+ "sha256": "08bz60fxcgzab77690mmv0f7wdxcpygmasazcss427k37z9ysm7r",
+ "fetcher": "github",
+ "repo": "maio/discover-clj-refactor.el",
+ "unstable": {
+ "version": [
+ 20150328,
+ 1459
+ ],
+ "deps": [
+ "clj-refactor",
+ "discover"
+ ],
+ "commit": "3fbd5c1162739e606d7cf5d4f5d7426547d99647",
+ "sha256": "0l2g58f55p8zmzv2q2hf163ggm9p0wk8hg93wlkyldrgyb94dgf4"
+ }
+ },
+ {
+ "ename": "discover-js2-refactor",
+ "commit": "b84129a8a90f8f66a513c11c299e0acb5f3fbd3a",
+ "sha256": "139zq66cpcn4dnidf22h7x88p812ywrrz4c3c62w3915b75f71ki",
+ "fetcher": "github",
+ "repo": "NicolasPetton/discover-js2-refactor",
+ "unstable": {
+ "version": [
+ 20140129,
+ 1552
+ ],
+ "deps": [
+ "discover",
+ "js2-refactor"
+ ],
+ "commit": "3812abf61f39f3e73a9f3daefa6fed4f21a429ba",
+ "sha256": "1vnbn4asz3lifscvy4shzisl6r0gkgq0qsa3kpgif3853wcd2rvn"
+ }
+ },
+ {
+ "ename": "discover-my-major",
+ "commit": "f0a8eb0eefe88b4ea683a4743c0f8393506e014b",
+ "sha256": "1b10bwhls5bx83hzhqq1ylc2civ3bsivd6db46f3s5hpgvr4q17n",
+ "fetcher": "git",
+ "url": "https://framagit.org/steckerhalter/discover-my-major.git",
+ "unstable": {
+ "version": [
+ 20180606,
+ 511
+ ],
+ "deps": [
+ "makey"
+ ],
+ "commit": "c592e5e67454f0d1b68669ac0c270073164b16b3",
+ "sha256": "1lhjrknxw928vmw5h59q98sarh5pwjn0fpdyr38sql5zyv0ikc6w"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "makey"
+ ],
+ "commit": "57d76fd21ec54706289cf9396fc871250569951e",
+ "sha256": "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"
+ }
+ },
+ {
+ "ename": "disk",
+ "commit": "e6e75695594ce17b618ad8786c8a04e283f68b11",
+ "sha256": "1jzkqgjw8xl0jc6ssl5bsdjp2dxw88nss6szvjv7frrhsncaq28h",
+ "fetcher": "github",
+ "repo": "kensanata/disk",
+ "unstable": {
+ "version": [
+ 20171116,
+ 731
+ ],
+ "commit": "283e54e3be7d08f959076240b2ab324e25632137",
+ "sha256": "15fkfl9kjlpsg9p5g0xhm384ipvrzclwxvqk8vz1zixq0wam2ajm"
+ }
+ },
+ {
+ "ename": "dispass",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "09c9v41rh63hjpdh377rbfvpial33r41dn5bss3632fi34az5l9n",
+ "fetcher": "github",
+ "repo": "ryuslash/dispass.el",
+ "unstable": {
+ "version": [
+ 20140202,
+ 1531
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "b6e8f89040ebaaf0e7609b04bc27a8979f0ae861",
+ "sha256": "075gj81rnhrvv061wnldixpfmlsyfbnvacnk107z6f9v3m2m3vl1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "commit": "38b880e72cfe5e65179b16791903b0900c73eff4",
+ "sha256": "1b1a1bwc6nv6wkd8jg1cqmjb9m9pxi5i2wbrz97fgii23dwfmlnl"
+ }
+ },
+ {
+ "ename": "display-theme",
+ "commit": "4dd76f49f1c10656ea0004a654d73666e1d188db",
+ "sha256": "07nqscmfa6iykll1m6gyiqca1g5ncx3rx468iyf2ahygpvqvnbxa",
+ "fetcher": "github",
+ "repo": "kawabata/emacs-display-theme",
+ "unstable": {
+ "version": [
+ 20140115,
+ 1556
+ ],
+ "commit": "b180b3be7a74ae4799a14e7e4bc2fe10e3ff7a15",
+ "sha256": "0r560bpgw5p2pfcgkgcrlpp1bprv1f23dl4y5fjk06dg93fgaysa"
+ }
+ },
+ {
+ "ename": "dispwatch",
+ "commit": "580cee72ac9871f8f256069b371f7fb66367a048",
+ "sha256": "1cq5lbh3r9jjwixn2q30gryy4j4l8jb70nkhsjbaln1c3jdwrf9p",
+ "fetcher": "github",
+ "repo": "mnp/dispwatch",
+ "unstable": {
+ "version": [
+ 20191130,
+ 52
+ ],
+ "commit": "93aac853215d0902e7a30a6dd2b99d796da77df4",
+ "sha256": "186294rkmhwbh8x054w1hnqykp1iydxd490irl542j5alinv43qk"
+ }
+ },
+ {
+ "ename": "dist-file-mode",
+ "commit": "dd10fbed2810a642600dba9dfe320fa6299e6d34",
+ "sha256": "1gbnkb0537gw8flv4gdi4jzb7y9dnbf9cfj2jw8y84axyfzbb4mf",
+ "fetcher": "github",
+ "repo": "emacs-php/dist-file-mode.el",
+ "unstable": {
+ "version": [
+ 20180830,
+ 418
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "e1ce8f592bc5d4d86d2f09e334728ac0d524c761",
+ "sha256": "09rp83d81y9mm81isrwvacl21vgah7nhi5r4j2xbp13kgdn7my1w"
+ }
+ },
+ {
+ "ename": "distel-completion-lib",
+ "commit": "90fff35dd9709b06802edef89d1fe6a96b7115a6",
+ "sha256": "0b06z3k30b4x5zpzk0jgcs7kcaix64xx81iskm1kys57r3gskzpa",
+ "fetcher": "github",
+ "repo": "sebastiw/distel-completion",
+ "unstable": {
+ "version": [
+ 20180827,
+ 1344
+ ],
+ "commit": "acc4c0a5521904203d797fe96b08e5fae4233c7e",
+ "sha256": "0yvp3dwa9mwfyrqla27ycwyjad4bp1267bxv0chxcr4528hnygl3"
+ }
+ },
+ {
+ "ename": "distinguished-theme",
+ "commit": "8d969e91bbba522a31d6ae7a81c7783034c15b9b",
+ "sha256": "0h03aqgijrmisbgqga42zlb5yz4x3jn9jgr29rq8canyhayr3rk4",
+ "fetcher": "github",
+ "repo": "Lokaltog/distinguished-theme",
+ "unstable": {
+ "version": [
+ 20151216,
+ 2015
+ ],
+ "commit": "9b1d25ac59465a5016d187ea84b7614c95a29b3b",
+ "sha256": "03d8zb2is7n2y2z0k6j37cijjc3ndgasxsm9gqyq7drlq9bqwzsm"
+ }
+ },
+ {
+ "ename": "ditz-mode",
+ "commit": "ac0d321e7486f297f783c07268563586aa0e3d92",
+ "sha256": "1k6rw2xmhlpcixwgfy6207h0jcqv09jfhi3dzj5n56s108z6hqr4",
+ "fetcher": "hg",
+ "url": "https://hg.sr.ht/~zondo/ditz-mode",
+ "unstable": {
+ "version": [
+ 20150729,
+ 940
+ ],
+ "commit": "74b6b93b097d595a001c019e3b762abfc60f821a",
+ "sha256": "194i43s99by2rrb112nh6rkwcd5rmmdj6kfc2bc1k6ygnvynnk67"
+ }
+ },
+ {
+ "ename": "dix",
+ "commit": "149eeba213b82aa0bcda1073aaf1aa02c2593f91",
+ "sha256": "0c5fmknpy6kwlz7nx0csbbia1maz0szj7yha1p7wq28s3a5426xq",
+ "fetcher": "github",
+ "repo": "unhammer/dix",
+ "unstable": {
+ "version": [
+ 20200108,
+ 1057
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "391832823f3f9835d957bc0224e122b376e5d825",
+ "sha256": "1h7wxi1nk6051arzx8671sf3m178ci9gs3a78h4hp8z0jrz364kz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b973de948deb7aa2995b1895e1e62bbe3129b5a5",
+ "sha256": "1bjxyidcp7y309asbk4pfb4mzgb8j62fmp3w3zl2nahdgv1rja45"
+ }
+ },
+ {
+ "ename": "dix-evil",
+ "commit": "d9dcceb57231bf2082154cab394064a59d84d3a5",
+ "sha256": "1jscaksnl5qmpqgkjkv6sx56llz0w4p5h7j73c4a1hld94gwklh3",
+ "fetcher": "github",
+ "repo": "unhammer/dix",
+ "unstable": {
+ "version": [
+ 20170105,
+ 1423
+ ],
+ "deps": [
+ "dix",
+ "evil"
+ ],
+ "commit": "391832823f3f9835d957bc0224e122b376e5d825",
+ "sha256": "1h7wxi1nk6051arzx8671sf3m178ci9gs3a78h4hp8z0jrz364kz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "dix",
+ "evil"
+ ],
+ "commit": "b973de948deb7aa2995b1895e1e62bbe3129b5a5",
+ "sha256": "1bjxyidcp7y309asbk4pfb4mzgb8j62fmp3w3zl2nahdgv1rja45"
+ }
+ },
+ {
+ "ename": "dizzee",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "14y10k8s65cyn86m1z77817436m89l0xpwd1wr4d7qp3x2mmn215",
+ "fetcher": "github",
+ "repo": "davidmiller/dizzee",
+ "unstable": {
+ "version": [
+ 20171201,
+ 916
+ ],
+ "commit": "e3cf1c2ea5d0fc00747524b6f3c5b905d0a8c8e1",
+ "sha256": "1i32msin8ra963w7af6612d038gxb25m1gj97kbjymjq1r8zbdrv"
+ }
+ },
+ {
+ "ename": "django-commands",
+ "commit": "fd217a23a9670c7eb826360b34df1a06ab3e450f",
+ "sha256": "17k9bnig2cfnxbbz6k9vdk5k5gzhvn1h5j9wvww7n137c9vv0qmk",
+ "fetcher": "github",
+ "repo": "muffinmad/emacs-django-commands",
+ "unstable": {
+ "version": [
+ 20191107,
+ 1830
+ ],
+ "commit": "bef7ca848d6d1721ebb22b181c50dcfbef16e434",
+ "sha256": "1zd98xkbxvikp4sf5nxf6vb2sk7a5s3q9ida0l5f4z4jc48xx5zm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 3
+ ],
+ "commit": "bef7ca848d6d1721ebb22b181c50dcfbef16e434",
+ "sha256": "1zd98xkbxvikp4sf5nxf6vb2sk7a5s3q9ida0l5f4z4jc48xx5zm"
+ }
+ },
+ {
+ "ename": "django-manage",
+ "commit": "66f88d30a1ab9b7f9281a2b5939c7ab2711b966a",
+ "sha256": "0j95g7fps28xhlrikkg61xgpbpf52xb56swmns2qdib6x1xzd6rh",
+ "fetcher": "github",
+ "repo": "gopar/django-manage",
+ "unstable": {
+ "version": [
+ 20160819,
+ 212
+ ],
+ "deps": [
+ "hydra"
+ ],
+ "commit": "876fb2cb627d465adfdc905841279784bcdd7ee8",
+ "sha256": "0yi38aif1n0s9yp87wimdbnq7vr7k5gbshfprj9ansibrjxnb6xk"
+ }
+ },
+ {
+ "ename": "django-mode",
+ "commit": "bdc46811612ff96cb1e09552b9f095d68528dcb3",
+ "sha256": "1rdkzqvicjpfh9k66m31ky6jshx9fqw7pza7add36bk6xg8lbara",
+ "fetcher": "github",
+ "repo": "myfreeweb/django-mode",
+ "unstable": {
+ "version": [
+ 20170522,
+ 714
+ ],
+ "deps": [
+ "helm-make",
+ "projectile",
+ "s"
+ ],
+ "commit": "a71b8dd984e7f724b8321246e5c353a4ae5c986e",
+ "sha256": "0xf33ri5phy2mrb1dwvqb8waba33gj9bwmf6jhl6n0ksm43x0z40"
+ }
+ },
+ {
+ "ename": "django-snippets",
+ "commit": "bdc46811612ff96cb1e09552b9f095d68528dcb3",
+ "sha256": "1qs9fw104kidbr5zbxc1q71yy033nq3wxh98vvzk4z4fppnd29sw",
+ "fetcher": "github",
+ "repo": "myfreeweb/django-mode",
+ "unstable": {
+ "version": [
+ 20131229,
+ 1611
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "a71b8dd984e7f724b8321246e5c353a4ae5c986e",
+ "sha256": "0xf33ri5phy2mrb1dwvqb8waba33gj9bwmf6jhl6n0ksm43x0z40"
+ }
+ },
+ {
+ "ename": "django-theme",
+ "commit": "4ede3b4fb214b915a8230e7f220ffe71c73ad7c4",
+ "sha256": "1rydl857zfpbvd7aziz6h7n3rrh584z2cbfxlss3wgfclzmbyhgf",
+ "fetcher": "github",
+ "repo": "andrzejsliwa/django-theme.el",
+ "unstable": {
+ "version": [
+ 20131022,
+ 902
+ ],
+ "commit": "86c8142b3eb1addd94a43aa6f1d98dab06401af0",
+ "sha256": "1azf4p6salga7269l0kf13bqlxf9idp0ys8mm20qpyjpj79p5g9w"
+ }
+ },
+ {
+ "ename": "djangonaut",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "1ys0s8hx8a8zykwynpan1h95v9fl87m7hlh8zhcg42kzd7b09px2",
+ "fetcher": "github",
+ "repo": "pythonic-emacs/djangonaut",
+ "unstable": {
+ "version": [
+ 20200503,
+ 921
+ ],
+ "deps": [
+ "f",
+ "magit-popup",
+ "pythonic",
+ "s"
+ ],
+ "commit": "75f642114e3997308a1e7e67c3025738cecee0fe",
+ "sha256": "1bka2nj2hqhpjiwdghp56y7z3jdxrpqw10s9divpa910mk33vay8"
+ }
+ },
+ {
+ "ename": "djinni-mode",
+ "commit": "e6e88f64e21275c6755f2589d1afa16eb4e575b8",
+ "sha256": "19222702dr7hfl7ffqp5z4sslg949p88rwvmg2al82i1a0wkgc98",
+ "fetcher": "github",
+ "repo": "danielmartin/djinni-mode",
+ "unstable": {
+ "version": [
+ 20190303,
+ 139
+ ],
+ "commit": "6f84bc60d078725cc8b922a259ec5f4c7de83681",
+ "sha256": "1x77f0a0gz9xfmlma6bdvm0x5rn4w08fkmdbjqvllqvca1630s12"
+ }
+ },
+ {
+ "ename": "dkdo",
+ "commit": "2d4f75f6f6349b81ddbaaf35fb5d7ddeb4cde622",
+ "sha256": "0p7ybgldjs046jrkkbpli1iicfmblpxfz9lql8m8sz7lpjn7h300",
+ "fetcher": "github",
+ "repo": "davidkeegan/dkdo",
+ "unstable": {
+ "version": [
+ 20131110,
+ 1119
+ ],
+ "deps": [
+ "dkmisc"
+ ],
+ "commit": "fd6bb105e8331fafb6385c5238c988c4c5bbe2da",
+ "sha256": "1nbvdnw9g3zbbb0n2sn2kxfzs5wichhl9qid3qjp8dsiq1wpv459"
+ }
+ },
+ {
+ "ename": "dkl",
+ "commit": "e8bd9cf21473f676aa54e142b6f0bf0427f40d29",
+ "sha256": "0bcv4ld8bfj2sk3sh4j1m9qqybw3l0a6b3d12qwy8lc3b8197lr0",
+ "fetcher": "github",
+ "repo": "flexibeast/dkl",
+ "unstable": {
+ "version": [
+ 20161005,
+ 7
+ ],
+ "commit": "6b4584f86037bda3383960c678d51f340229fb91",
+ "sha256": "1xpidgj5xk0g4ajpglhbhi02s5il8qqcvh2ccf4ac9daa1r34kxp"
+ }
+ },
+ {
+ "ename": "dklrt",
+ "commit": "71f980fdb2180df2429c898e1507dd3b989a5a2c",
+ "sha256": "11ss5x9sxgxp1wx2r1m0vsp5z5qm8m4ww20ybr6bqjw0a1gax561",
+ "fetcher": "github",
+ "repo": "davidkeegan/dklrt",
+ "unstable": {
+ "version": [
+ 20131110,
+ 1341
+ ],
+ "deps": [
+ "dkmisc",
+ "ledger-mode"
+ ],
+ "commit": "5d6c99f8018335256ab934b4c1049708ae2d48ba",
+ "sha256": "063nnln5m42qf190vr2z0ibacyn7n0xkxm3v5vaa4gxdvdwzhshs"
+ }
+ },
+ {
+ "ename": "dkmisc",
+ "commit": "71f980fdb2180df2429c898e1507dd3b989a5a2c",
+ "sha256": "0nnbl272hldcmhyj47r463yvj7b06rjdkpkl5xk0gw9ikyja7w0z",
+ "fetcher": "github",
+ "repo": "davidkeegan/dkmisc",
+ "unstable": {
+ "version": [
+ 20131110,
+ 1115
+ ],
+ "commit": "fe3d49c6f8322b6f89466361acd97585bdfe0608",
+ "sha256": "1nz71g8pb19aqjcb4s94hhn6j30cc04q05kmwvcbxpjb11qqrv49"
+ }
+ },
+ {
+ "ename": "dmacro",
+ "commit": "26d2f0ed0013dc0c03db5bae3119ae3522181ed2",
+ "sha256": "1n2gsml4ypasakxvq9q3h54kj5pl87m796si73700n5m4pgpp4hq",
+ "fetcher": "github",
+ "repo": "emacs-jp/dmacro",
+ "unstable": {
+ "version": [
+ 20200803,
+ 633
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3480b97aaad9e65fa03c6a9d1a0a8111be1179f8",
+ "sha256": "1vb2jz4z4z9bhw76b1l08jf8gd3kq6c8zsxxvmlan87nwkj211wz"
+ }
+ },
+ {
+ "ename": "dmenu",
+ "commit": "98bcdd71a160b9c04f83cc5b939031c9e7b5eb59",
+ "sha256": "1w1pgaj2yasfhsd1ibvrwy11ykq8v17h913g298h3ycsvqv8gic0",
+ "fetcher": "github",
+ "repo": "lujun9972/el-dmenu",
+ "unstable": {
+ "version": [
+ 20190908,
+ 44
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e8cc9b27c79d3ecc252267c082ab8e9c82eab264",
+ "sha256": "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"
+ }
+ },
+ {
+ "ename": "dna-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "06vprwv1v4jzqzi2nj9hbhnypnvqxmixls8yf91hzwlk3fdkdywf",
+ "fetcher": "github",
+ "repo": "jhgorrell/dna-mode-el",
+ "unstable": {
+ "version": [
+ 20191001,
+ 2108
+ ],
+ "commit": "7a48393fcf0015eed2368fcb89b3091c9d029dc4",
+ "sha256": "05p1mllp7vgk69078gn6hc0vx5hfqz6k81i4ghkfkxr5fdm5fdk5"
+ }
+ },
+ {
+ "ename": "docbook-snippets",
+ "commit": "07b832b72773ab41f9cbdefabd30dc1aa29d04c5",
+ "sha256": "1ipqfylgiw9iyjc1nckbay890clfkhda81nr00cq06sjmm71iniq",
+ "fetcher": "github",
+ "repo": "jhradilek/emacs-docbook-snippets",
+ "unstable": {
+ "version": [
+ 20150714,
+ 1625
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "b06297fdec039a541aaa6312cb328a11062cfab4",
+ "sha256": "1nbm3wzd12rsrhnwlcc6b72b1ala328mfpcp5bwlfcdshw6mfcrq"
+ }
+ },
+ {
+ "ename": "docean",
+ "commit": "b38908bc1b759b14173ffb49ddeb040a9892cc0d",
+ "sha256": "0y45gk3jvjqpzk51098qbnrvhbvg0rzsdhd3fnw7pblsgzzqn9w6",
+ "fetcher": "github",
+ "repo": "emacsorphanage/docean",
+ "unstable": {
+ "version": [
+ 20180605,
+ 1744
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "bbe2298fd21f7876fc2d5c52a69b931ff59df979",
+ "sha256": "1fzs6k76nyz2xjvydks6v6d2ib7qqj181s7c8r57w9ylr2zqfacj"
+ }
+ },
+ {
+ "ename": "docker",
+ "commit": "6c74bf8a41c17bc733636f9e7c05f3858d17936b",
+ "sha256": "10x05vli7lg1w3fdbkrl34y4mwbhp2c7nqdwnbdy53i81jisw2lk",
+ "fetcher": "github",
+ "repo": "Silex/docker.el",
+ "unstable": {
+ "version": [
+ 20200610,
+ 715
+ ],
+ "deps": [
+ "dash",
+ "docker-tramp",
+ "json-mode",
+ "s",
+ "tablist",
+ "transient"
+ ],
+ "commit": "3773112eea3fc99704b5ca50c1e9a3db2cb8e4f3",
+ "sha256": "0gi86ggjyfmfas7pswj7wirn5n7zs6rvb5b95nchnf4xf0nzwia1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "docker-tramp",
+ "json-mode",
+ "magit-popup",
+ "s",
+ "tablist"
+ ],
+ "commit": "e127a157f8d0d9ffd465075ecf6558f36d2d3b24",
+ "sha256": "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"
+ }
+ },
+ {
+ "ename": "docker-api",
+ "commit": "3924914124370fc028a7b1ecdc154a53e73037a7",
+ "sha256": "1giqiapm4hf4dhfm3x69qqpir3jg7qz3parhbx88xxqrd1z18my0",
+ "fetcher": "github",
+ "repo": "Silex/docker-api.el",
+ "unstable": {
+ "version": [
+ 20160525,
+ 720
+ ],
+ "deps": [
+ "dash",
+ "request",
+ "s"
+ ],
+ "commit": "206144346b7fa4165223349cfeb64a75d47ddd1b",
+ "sha256": "0phmpranrgdi2gi89nxr1ii9xbr7h2ccpx1mkpnfxnjlzkdzq2fb"
+ }
+ },
+ {
+ "ename": "docker-cli",
+ "commit": "5664de22600c428b7931085985e6fe779e8876b2",
+ "sha256": "1pyrnxa9iwzp0a810250xy191xcbaq68c76fc5plh70c37gzribp",
+ "fetcher": "github",
+ "repo": "bosko/docker-cli",
+ "unstable": {
+ "version": [
+ 20190524,
+ 1624
+ ],
+ "commit": "c4b02894466d8642ad3d49df4c4a80e023a672aa",
+ "sha256": "0q1c943m0ncxbwi5mb1vf7lavkcz0dbx14m3i8a981pqkaksl1lw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "328429219574555c5fb831a421b4b5d9a2338561",
+ "sha256": "15jsp1jsb13qv394js9pd6407ya7dgqk7blzbnyf9i9abyyr0v67"
+ }
+ },
+ {
+ "ename": "docker-compose-mode",
+ "commit": "37dd4c1fc11d22598c6faf03ccc860503a68b950",
+ "sha256": "1hldddl86h0i1ysxklkr1kyz44lzic1zr68x3vb0mha4n5d6bl5g",
+ "fetcher": "github",
+ "repo": "meqif/docker-compose-mode",
+ "unstable": {
+ "version": [
+ 20200730,
+ 1258
+ ],
+ "deps": [
+ "dash",
+ "yaml-mode"
+ ],
+ "commit": "4c0c897fb0572e6b026b2a5ab9f2c76174be7a14",
+ "sha256": "01fj856511qjn5zw370axyz4imdnq3j5sqvbm8nkd71z1mz3dyv1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "yaml-mode"
+ ],
+ "commit": "7f4cd0b1718df2ab93d51bd395b2f37df9482265",
+ "sha256": "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"
+ }
+ },
+ {
+ "ename": "docker-tramp",
+ "commit": "6c74bf8a41c17bc733636f9e7c05f3858d17936b",
+ "sha256": "19kky80qm68n2izpjfyiy4gjywav7ljcmp101kmziklpqdldgh1w",
+ "fetcher": "github",
+ "repo": "emacs-pe/docker-tramp.el",
+ "unstable": {
+ "version": [
+ 20170207,
+ 325
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8e2b671eff7a81af43b76d9dfcf94ddaa8333a23",
+ "sha256": "1lgjvrss25d4hwgygr1amsbkh1l4kgpsdjpxxpyfgil1542haan1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d8b510365d8e65551f4f792f251e7212411708c3",
+ "sha256": "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"
+ }
+ },
+ {
+ "ename": "dockerfile-mode",
+ "commit": "1406f5a24115d29e3b140c360a51b977a369e4f9",
+ "sha256": "1dxvzn35a9qd3x8pjvrvb2g71yf84404g6vz81y0p353rf2zknpa",
+ "fetcher": "github",
+ "repo": "spotify/dockerfile-mode",
+ "unstable": {
+ "version": [
+ 20200106,
+ 2126
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "d31f7685ebc5832d957e25070a930aa42984327d",
+ "sha256": "1br73dsls42fn4rwagljkpa3l4wwj6f7jxfn3gmgl6c54z81av3v"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "9a75fcd119c5b2a1d723d440bbe4b1db56df90cc",
+ "sha256": "1cmh8pwwa6dhl4w66wy8s5yqxs326mnaalg1ig2yhl4bjk8gi4m2"
+ }
+ },
+ {
+ "ename": "doct",
+ "commit": "f075d73b3269eec73dda992ce2bee67ccdfe4911",
+ "sha256": "0z4h2pmlmzaz2726pmd2y7g63k5ncw4fwd5jh5rv744f5pxxfs2m",
+ "fetcher": "github",
+ "repo": "progfolio/doct",
+ "unstable": {
+ "version": [
+ 20200815,
+ 2139
+ ],
+ "commit": "89eb2e6f1c2630c980bdf4c0430ba54722c9ee00",
+ "sha256": "0210jwk19b59hx7gi2ddy5ja9jndvmwmip8bh16g35qiscn2jwml"
+ }
+ },
+ {
+ "ename": "dokuwiki",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "0d92il37z1m1hgcgb6c6zaifllznzk1na4yv4bfsfqg25l0mid75",
+ "fetcher": "github",
+ "repo": "accidentalrebel/emacs-dokuwiki",
+ "unstable": {
+ "version": [
+ 20180102,
+ 59
+ ],
+ "deps": [
+ "xml-rpc"
+ ],
+ "commit": "594c4d4904dcc2796bbbd2c0845d9e7c09ccf6f7",
+ "sha256": "0vqx8npw0i02dhw2yb7s4z7njw60r3xyncw4z8l6fj99pp6pfh15"
+ }
+ },
+ {
+ "ename": "dokuwiki-mode",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1jc3sn61mipkhgr91wp74s673jk2w5991p54jlw05qqpf5gmxd7v",
+ "fetcher": "github",
+ "repo": "kai2nenobu/emacs-dokuwiki-mode",
+ "unstable": {
+ "version": [
+ 20170223,
+ 1301
+ ],
+ "commit": "e4e116f6fcc373e3f5937c1a7daa5c2c9c6d3fa1",
+ "sha256": "0bmcm7lvzm8sg2l1j7bg02jasxb8g81q9ilycblmsl1ckbfwq0yp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "e4e116f6fcc373e3f5937c1a7daa5c2c9c6d3fa1",
+ "sha256": "0bmcm7lvzm8sg2l1j7bg02jasxb8g81q9ilycblmsl1ckbfwq0yp"
+ }
+ },
+ {
+ "ename": "dollaro",
+ "commit": "b8195000cffa1913060266b17801eb7c1e472a83",
+ "sha256": "06kaqzb0nh8sndhk7p5n4acn5nc27dyxw3ldgcbp81wj6ipii26h",
+ "fetcher": "github",
+ "repo": "laynor/dollaro",
+ "unstable": {
+ "version": [
+ 20151123,
+ 1302
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "500127f0172ac7a1eec627e026b59136580a74ac",
+ "sha256": "1xyqsnymgdd8ic3az2lgwv7s7vld6d4pcycb234bxm4in9fixgdj"
+ }
+ },
+ {
+ "ename": "doneburn-theme",
+ "commit": "7fc483d5f487f462567bba22d611f90fc8a1a709",
+ "sha256": "0j8fyb6wcjrfhfjp06w0bzp5vrcvydhjwkzg4c4s4j54xaw6laxx",
+ "fetcher": "github",
+ "repo": "manuel-uberti/doneburn-theme",
+ "unstable": {
+ "version": [
+ 20181110,
+ 1857
+ ],
+ "commit": "da4fa915a2a659001eea04498d790cdd8cac1fce",
+ "sha256": "1xlh20vc43ywljjw13cp0aj4h9qackhqqzm0yi5g881lcyng2ca1"
+ }
+ },
+ {
+ "ename": "doom",
+ "commit": "0960deb3b1d106ad2ffa95a44f34cb9efc026f01",
+ "sha256": "1ji2fdiw5b13n76nv2wvkz6v155b0qgh1rxwmv3m5nnrbmklfjh5",
+ "fetcher": "github",
+ "repo": "kensanata/doom",
+ "unstable": {
+ "version": [
+ 20180301,
+ 2308
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e59040aefc92dd9b3134eb623624307fb9e4327b",
+ "sha256": "14lwq30m0s7pkwkbn6vm5gdlkww7sszc6pdhxyinkhj67b0bxpin"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5e2d3f54e5b84eaa533cbdb6cf17b1b6009f0730",
+ "sha256": "04h1hlsc83w4dppw9m44jq7mkcpy0bblvnzrhvsh06pibjywdd73"
+ }
+ },
+ {
+ "ename": "doom-modeline",
+ "commit": "f4f610757f85fb01bd9b1dd212ddbea8f34f3ecd",
+ "sha256": "0pscrhhgk4wpz1f2r94ficgan4f9blbhqzvav1wjahwp7fn5m29j",
+ "fetcher": "github",
+ "repo": "seagle0128/doom-modeline",
+ "unstable": {
+ "version": [
+ 20200819,
+ 117
+ ],
+ "deps": [
+ "all-the-icons",
+ "dash",
+ "shrink-path"
+ ],
+ "commit": "ffbaaee832f1c97ff608bc4959b408997d959b7d",
+ "sha256": "0gvdlwa4w7s1igy8hqapng2s1k9ca6f76g68m5wzrfnx1z0zf7xl"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "deps": [
+ "all-the-icons",
+ "dash",
+ "shrink-path"
+ ],
+ "commit": "b44955841a301f4930b054e912fa4c1a700d426d",
+ "sha256": "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"
+ }
+ },
+ {
+ "ename": "doom-themes",
+ "commit": "c5084bc2c3fe378af6ff39d65e40649c6359b7b5",
+ "sha256": "0plqhis9ki3ck1pbv4hiqk4x428fps8qsfx72mamdayyx2nncdrs",
+ "fetcher": "github",
+ "repo": "hlissner/emacs-doom-themes",
+ "unstable": {
+ "version": [
+ 20200816,
+ 2044
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "24023de3c80c9f3afc3d012762d1ef0f8dbd326e",
+ "sha256": "0dwwpdwi0722xyap3xnm7034syb2fssfm4c6k5868k0344rvdkr8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 6
+ ],
+ "deps": [
+ "all-the-icons",
+ "cl-lib"
+ ],
+ "commit": "39e6971e81181b86a57f65cd0ea31376203a9756",
+ "sha256": "042pzcdhxi2z07jcscgjbaki9nrrm0cbgbbrnymd1r4q8ckkn8l9"
+ }
+ },
+ {
+ "ename": "dot-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "039ylmbvw0wb3i2w4qn3dhckz7y3swbid4hwjcxljy4szc709p6k",
+ "fetcher": "github",
+ "repo": "wyrickre/dot-mode",
+ "unstable": {
+ "version": [
+ 20180312,
+ 2300
+ ],
+ "commit": "6ca22b73bcdae2363ee9641b822a60685df16a3e",
+ "sha256": "10lmwra48ihxqxyl54m3yn1zy0q5w6cxqd2n5pbs4lva1yck0z4w"
+ }
+ },
+ {
+ "ename": "dotenv-mode",
+ "commit": "9fc022c54b90933e70dcedb6a85167c2d9d7ba79",
+ "sha256": "1lwfzfri6vywcjkc9wassrz0rdrg0kvljxsm6b4smlnphp6pdbbs",
+ "fetcher": "github",
+ "repo": "preetpalS/emacs-dotenv-mode",
+ "unstable": {
+ "version": [
+ 20191027,
+ 2129
+ ],
+ "commit": "e3701bf739bde44f6484eb7753deadaf691b73fb",
+ "sha256": "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 5
+ ],
+ "commit": "e3701bf739bde44f6484eb7753deadaf691b73fb",
+ "sha256": "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"
+ }
+ },
+ {
+ "ename": "dotnet",
+ "commit": "6ef473594ec57a747ad7d9d57d7287bcacf4b446",
+ "sha256": "06k1ikwg9bis9kk4r41bm0a0d8a31wscqyr6n99d7836p1h4jfki",
+ "fetcher": "github",
+ "repo": "julienXX/dotnet.el",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1032
+ ],
+ "commit": "83ba1305d7895b03f3dffb2d3458b7ec75e6909f",
+ "sha256": "0x3kaq06wbrhqanfzj0m6yb5x1mvcjz3xg52kk7a7d4mr1h9xlip"
+ }
+ },
+ {
+ "ename": "double-saber",
+ "commit": "19f5c0195ad9b278a7aaa3fd8e70c0004cc03500",
+ "sha256": "0zsmyvlxm3my3xbj7m38539vk2dl7azi1v7jb41kdiavj2cc55zg",
+ "fetcher": "github",
+ "repo": "dp12/double-saber",
+ "unstable": {
+ "version": [
+ 20190325,
+ 1917
+ ],
+ "commit": "b61df3561ea9bed1848cf69b6bb53f7fdf6916dc",
+ "sha256": "063jw3b94l43j31piygjcjzqp2gf828xr3da1hd3qimp25c9fsv6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "5555dc28cbaa228fa8f9390738a4200e071380b8",
+ "sha256": "06ykn84hp4yvf6z2457jqgyck70y30361l8617ilb7g337hk15xl"
+ }
+ },
+ {
+ "ename": "download-region",
+ "commit": "7801d9fac121f213609a802fe9d88bdc5364d1f3",
+ "sha256": "1mrl2x6j708nchyh9y5avbf2cq10kpnhfj553l6akarvl5n5pvkl",
+ "fetcher": "github",
+ "repo": "zk-phi/download-region",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1009
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0dca3b224649bba80a7e9ecbf1d1b6f6be962455",
+ "sha256": "1yka864dzz8nxskcllqyxk04313hlyfc9a4p0apmk56q19fcpwgn"
+ }
+ },
+ {
+ "ename": "downplay-mode",
+ "commit": "50d67ea3c4d92b4093373d5e4ff07b7d5a3dc537",
+ "sha256": "1v6nga101ljzza8qj3lkmkzzl0vvzj4lsh1m69698s8prnczxr9b",
+ "fetcher": "github",
+ "repo": "tobias/downplay-mode",
+ "unstable": {
+ "version": [
+ 20151125,
+ 2009
+ ],
+ "commit": "4a2c3addc73c8ca3816345c3c11c08af265baedb",
+ "sha256": "0s7swvfd7h8r0n3cjmkps6ary9vwg61jylfm4qrkp3idsz6is548"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "225a4b3ca09e6f463dfdd54941c98b02be8d574c",
+ "sha256": "13czcxmmvy4g9ysfjr6lb91c0fqv1xv8ppd27wbfsrgxm3aaqimb"
+ }
+ },
+ {
+ "ename": "doxy-graph-mode",
+ "commit": "4727d492a4867fc58bfdb8f57fff9313710bada8",
+ "sha256": "170r39cq25qkbng4i1rlpj3y7cvdqc0wxxr1rcxy15szjf7qw2dl",
+ "fetcher": "github",
+ "repo": "gustavopuche/doxy-graph-mode",
+ "unstable": {
+ "version": [
+ 20200807,
+ 646
+ ],
+ "commit": "2685c28e7a725614c23345195c3b85e505be2a1b",
+ "sha256": "0a4kil5v88wkki3r4jjc9ackv2z7ik0qgn4bdv75baskig8f8qjy"
+ }
+ },
+ {
+ "ename": "dpaste",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0wrfy9w0yf5m15vmhg4l880v92cy557g332xniqs77ab0sga4vgc",
+ "fetcher": "github",
+ "repo": "gregnewman/dpaste.el",
+ "unstable": {
+ "version": [
+ 20160303,
+ 2112
+ ],
+ "commit": "5ebabb466a6ae70882549855b6b2194fc32189f8",
+ "sha256": "03n3k6a40lw9m1ycf62g6vll4gr2kr2509vjp1dkfq722xwrw7zk"
+ }
+ },
+ {
+ "ename": "dpaste_de",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0022dd8l7jsyl0lv9x6iz882ln71js8brqcbiqz001zv45yrgvy0",
+ "fetcher": "github",
+ "repo": "theju/dpaste_de.el",
+ "unstable": {
+ "version": [
+ 20131015,
+ 1225
+ ],
+ "deps": [
+ "web"
+ ],
+ "commit": "f0c39e8864299f735642f7d9fa490689398ce39d",
+ "sha256": "1avpg0cgzk8d6g1q0ryx41lkcdgkm0mkzr5xr32xm28dzrfmgd4z"
+ }
+ },
+ {
+ "ename": "dpkg-dev-el",
+ "commit": "3e057df3608780a6191f761b9a81262c2eaa053c",
+ "sha256": "1cgfzxlw4m3wsl5fhck08pc2w7fw91mxk58yaprk9lkw4jxd1yjy",
+ "fetcher": "git",
+ "url": "https://salsa.debian.org/emacsen-team/dpkg-dev-el.git",
+ "unstable": {
+ "version": [
+ 20190824,
+ 2314
+ ],
+ "deps": [
+ "debian-el"
+ ],
+ "commit": "aafb047e03c642e6ae4740a7fbc0a789e0ec1291",
+ "sha256": "1sfan4pil51jrc0b6fxf5vjyrif0dx1xmx92yhgwap684kpsarv4"
+ },
+ "stable": {
+ "version": [
+ 37,
+ 1
+ ],
+ "deps": [
+ "debian-el"
+ ],
+ "commit": "54b137309b078ec39f4b982368c500df04d4bd5f",
+ "sha256": "03yawrzds5jc5ckck3w7l9rszv4vcibydi15hqnxwfcszyp8wrdn"
+ }
+ },
+ {
+ "ename": "dr-racket-like-unicode",
+ "commit": "6e612ede00c4b44ace741d2b6baabc61571af15c",
+ "sha256": "0cqcbn4hmv99d8z03xc0rqw4yh5by6g09y33h75dhl9nh95rybgf",
+ "fetcher": "github",
+ "repo": "david-christiansen/dr-racket-like-unicode",
+ "unstable": {
+ "version": [
+ 20200513,
+ 1642
+ ],
+ "commit": "70bc1caea6b277e49e1cb29e1926a7b0c83c5ebc",
+ "sha256": "1an4hk9cjg1lhis0japdr371mnf1p4pl5mzl0l1cfkvprbxhzy65"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "4953f1c8a68472e157a0dcd0a7e35a4ec2577133",
+ "sha256": "1i7k7d2gnzd2izplhdmjbkcxvkwnc3y3y0hrcp2rq60bjpkcl1gv"
+ }
+ },
+ {
+ "ename": "dracula-theme",
+ "commit": "d63cb8906726f106e65f7d9895b49a38ffebf8d5",
+ "sha256": "1px162v7h7136rasafq875yzw0h8n6wvzbyh73c3w093kd30bmh8",
+ "fetcher": "github",
+ "repo": "dracula/emacs",
+ "unstable": {
+ "version": [
+ 20200814,
+ 1717
+ ],
+ "commit": "3b7c2905d249f47bc9c09d304c16f72f217df2e0",
+ "sha256": "031c2md9zxk8bhb8v6s6i5s3qmlfxf5ks0nl7n6kyw1w31h6pww9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7,
+ 0
+ ],
+ "commit": "7751d4d3115c5e873b73b670248c49ce8910997e",
+ "sha256": "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"
+ }
+ },
+ {
+ "ename": "draft-mode",
+ "commit": "cbfefacda071c0f5ee698a4c345a2d6fea6a0d24",
+ "sha256": "19lq1a3rj6fck3xq2vcz8fk30hpx25kyfz6c7hmq36kx4lv0mjpa",
+ "fetcher": "gitlab",
+ "repo": "gaudecker/draft-mode",
+ "unstable": {
+ "version": [
+ 20140609,
+ 1456
+ ],
+ "commit": "4779fb32daf53746459da2def7e08004492d4f18",
+ "sha256": "0z3w58zplm5ks195zfsaq8kwbc944p3kbzs702jgz02wcrm4c28y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "4779fb32daf53746459da2def7e08004492d4f18",
+ "sha256": "0z3w58zplm5ks195zfsaq8kwbc944p3kbzs702jgz02wcrm4c28y"
+ }
+ },
+ {
+ "ename": "drag-stuff",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1q67q20gfhixzkmddhzp6fd8z2qfpsmyyvymmaffjcscnjaz21w4",
+ "fetcher": "github",
+ "repo": "rejeep/drag-stuff.el",
+ "unstable": {
+ "version": [
+ 20161108,
+ 749
+ ],
+ "commit": "6d06d846cd37c052d79acd0f372c13006aa7e7c8",
+ "sha256": "1fsj88n1j50cxjzx62khzxrajsvf33si8iwgbaz6z7z8pwh91qcd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "d49fe376d24f0f8ac5ade67b6d7fccc2487c81db",
+ "sha256": "1jrr59iazih3imkl9ja1lbni9v3xv6b8gmqs015g2mxhlql35jka"
+ }
+ },
+ {
+ "ename": "drawille",
+ "commit": "e45ddc0c886fd2bd89ef24c99110c9faf0a05776",
+ "sha256": "1rsnp3zfp4y6bjdwr2adys91gc4jph3cgwkbj9r1d07xvh5fpfwm",
+ "fetcher": "github",
+ "repo": "emacsattic/drawille",
+ "unstable": {
+ "version": [
+ 20160418,
+ 1838
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d914845725719d8293e2f0dea3c9c7e0a1e0e62a",
+ "sha256": "1ynjxfvx8b6rq6d4gm1sl96rmlk5pi8j5s1rd1y0p8x2lwqcfv77"
+ }
+ },
+ {
+ "ename": "drill-instructor-AZIK-force",
+ "commit": "fb5ee8a113b98e8df8368c5e17c6d762decf8f5b",
+ "sha256": "1bb698r11m58csd2rm17fmiw691p25npphzqgjiiqbn4vx35ja7f",
+ "fetcher": "github",
+ "repo": "myuhe/drill-instructor-AZIK-force.el",
+ "unstable": {
+ "version": [
+ 20151123,
+ 514
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "008cea202dc31d7d6fb1e7d8e6334d516403b7a5",
+ "sha256": "0lzq0mkhhj3s5yrcbs576qxkd8h0m2ikc4iplk97ddpzh4nz4127"
+ }
+ },
+ {
+ "ename": "drone",
+ "commit": "3b62e697798627b07000ac72c19ecd1d89c22229",
+ "sha256": "0wjbmgic715i4nxk90nasfamk04lskl8dll9y5klk32w1lsj546q",
+ "fetcher": "github",
+ "repo": "olymk2/emacs-drone",
+ "unstable": {
+ "version": [
+ 20161106,
+ 918
+ ],
+ "commit": "1d4ee037ad3208847a4235426edf0c4a3e7b1899",
+ "sha256": "1dwxgzf32cvfi7b6zw3qzamj82zs2c0ap6i1w0jqqgzmkz20dqvf"
+ }
+ },
+ {
+ "ename": "dropbox",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1dqjsn7wkjjvbwq3kgdd7bvwrirappwnhcwkj2ai19dpx6jd8wym",
+ "fetcher": "github",
+ "repo": "pavpanchekha/dropbox.el",
+ "unstable": {
+ "version": [
+ 20190918,
+ 1629
+ ],
+ "deps": [
+ "json",
+ "oauth",
+ "request"
+ ],
+ "commit": "5e0c954a6b819fd3a22b463cce3825984f9ef691",
+ "sha256": "0z1iw5rzdgipqhx4bvshjbrqqr3wyqy75frwmz34g7s6vll1ip0a"
+ }
+ },
+ {
+ "ename": "drupal-mode",
+ "commit": "13e16af340868048eb1f51f9865dfc707e57abe8",
+ "sha256": "14jvk4phq3wcff3yvhygix0c9cpbphh0dvm961i93jpsx7g9awgn",
+ "fetcher": "github",
+ "repo": "arnested/drupal-mode",
+ "unstable": {
+ "version": [
+ 20200210,
+ 2222
+ ],
+ "deps": [
+ "php-mode"
+ ],
+ "commit": "ee1a24c96a7487bb9df8dd15656be7d8330028f0",
+ "sha256": "1h0p1z0s02vn7b4p2kj6jr49y245wjf5grcv0n5riqds2s863q2v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 3
+ ],
+ "deps": [
+ "php-mode"
+ ],
+ "commit": "49ce63c659aa0af7a2daf0c9e74e58fbce6deb71",
+ "sha256": "1l2xc24y037b3z62yxmq2bx1x3qqv56d15bf3qmb3mpgm4gh85j6"
+ }
+ },
+ {
+ "ename": "drupal-spell",
+ "commit": "bb859d9755bde3fd852bc7d08f2fab2429ba31b3",
+ "sha256": "117rr2bfnc99g3qsr127grxwaqp54cxjaj3nl2nr6z78nja0fij3",
+ "fetcher": "github",
+ "repo": "arnested/drupal-spell",
+ "unstable": {
+ "version": [
+ 20130520,
+ 1655
+ ],
+ "commit": "4087c28c89a884ee050961c57166e6b09085f59d",
+ "sha256": "1hjs8jbbflj56dm87mkzray75dlczy6p58lpkr8lvh7wnim4pd6a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "commit": "a69f5e3b62c4c0da74ce26c1d00d5b8f7395e4ae",
+ "sha256": "156cscpavrp695lp8pgjg5jnq3b8n9c2h8qg8w89dd4vfkc3iikd"
+ }
+ },
+ {
+ "ename": "dsvn",
+ "commit": "be27e728327016b819535ef8cae10020e5a07c2e",
+ "sha256": "189navhhakmkhfc2afsls1jiaxg62wxvpmmn00jlnwlgjm97gdk3",
+ "fetcher": "github",
+ "repo": "emacsmirror/dsvn",
+ "unstable": {
+ "version": [
+ 20190316,
+ 2201
+ ],
+ "commit": "c37d2412ba92aad647bcf5aeb151e620e8069f8d",
+ "sha256": "1bv4ivv9j5r0ax4vay1kmwv753y44qj6qprr38yh7ky0fpsml34c"
+ }
+ },
+ {
+ "ename": "dtk",
+ "commit": "39333468fb6e9493deb86511f0032610a412ec8a",
+ "sha256": "005x3j5q8dhphhh4c48l6qx7qi3jz9k02m86ww1bzwfzji55p9sp",
+ "fetcher": "github",
+ "repo": "dtk01/dtk",
+ "unstable": {
+ "version": [
+ 20200816,
+ 2055
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s",
+ "seq"
+ ],
+ "commit": "a0e789919f71ff4ab752432fe9e295f9f44c7b12",
+ "sha256": "029xsdasbrvkg8w2ykgy6iq618cdjkr4gkp4l094na35jpv96yca"
+ }
+ },
+ {
+ "ename": "dtrace-script-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "00ar2qahgqpf4an6v9lbzgj73ylbavvigsm8kqdq94ghm4awxi4z",
+ "fetcher": "github",
+ "repo": "dotemacs/dtrace-script-mode",
+ "unstable": {
+ "version": [
+ 20150214,
+ 623
+ ],
+ "commit": "801af1ef16075d31a19830ebb8404bbf3a322f10",
+ "sha256": "1blfx3r2xd3idbfjrx44ma3x1d83xp67il2s2bmdwa8qz92z99lf"
+ }
+ },
+ {
+ "ename": "dtrt-indent",
+ "commit": "61bcbcfa6c0f38a1d87f5b6913b8be6c50ef2994",
+ "sha256": "1npn2jngy1wq0jpwmg1hkn8lx6ncbqsi587jl38lyp2xwchshfk5",
+ "fetcher": "github",
+ "repo": "jscheid/dtrt-indent",
+ "unstable": {
+ "version": [
+ 20200430,
+ 1023
+ ],
+ "commit": "50c440c80e0d15303d8ab543bce4c56e9c2bf407",
+ "sha256": "0p5v5xwr0s59hv3s0f85byafphc85qv76g41crad9fhnxzab9rly"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "50c440c80e0d15303d8ab543bce4c56e9c2bf407",
+ "sha256": "0p5v5xwr0s59hv3s0f85byafphc85qv76g41crad9fhnxzab9rly"
+ }
+ },
+ {
+ "ename": "dts-mode",
+ "commit": "864a7ec64c46a0357710bc80ad4880dd35b2fda1",
+ "sha256": "1k8cbiayajbzwkm0s0kyin0qpq9yhymidz0srs4hbvsnb6hvp234",
+ "fetcher": "github",
+ "repo": "bgamari/dts-mode",
+ "unstable": {
+ "version": [
+ 20161103,
+ 1223
+ ],
+ "commit": "9ee0854446dcc6c53d2b8d2941051768dba50344",
+ "sha256": "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"
+ }
+ },
+ {
+ "ename": "ducpel",
+ "commit": "2d64adac965e1dac0f29dab9a587cd6ce9c3bb3a",
+ "sha256": "1cqrkgg7n9bhjswnpl7yc6w6yjs4gfbliaqsimmf9z43wk2ml4pc",
+ "fetcher": "github",
+ "repo": "alezost/ducpel",
+ "unstable": {
+ "version": [
+ 20140702,
+ 1154
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b53b935ab95c02b82ccf38f63c89e39e99477a55",
+ "sha256": "07cgwkfi69xjjxx9hs5rdblsil1h3bpbx9k7hwyv1dg3ivihm04s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ece785baaa102bd2e9d54257af3a92bacc5757bc",
+ "sha256": "17yldk76mxakhb90bma7r4z9jgx02wankgk17r2di196mc04bj7b"
+ }
+ },
+ {
+ "ename": "dumb-diff",
+ "commit": "cf7fa0b4235247d82569ed078f92774f10afa45c",
+ "sha256": "1h1dvxbj85kgi04lxh0bpx81f6sl1fd56lhjmq1cw9biwqw0sm0c",
+ "fetcher": "github",
+ "repo": "jacktasia/dumb-diff",
+ "unstable": {
+ "version": [
+ 20171211,
+ 2122
+ ],
+ "commit": "1a2331d283049b71a07c1b06b1e0627a950d55f4",
+ "sha256": "05gmpp4s9y2ql27vb5vpqn3xh35qjfxgq9gzyvg86df43qfl8wvl"
+ }
+ },
+ {
+ "ename": "dumb-jump",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1j90n8gydsp2v07rysz1k5vf6hspybcl27214sib1iz3hbimid1w",
+ "fetcher": "github",
+ "repo": "jacktasia/dumb-jump",
+ "unstable": {
+ "version": [
+ 20200815,
+ 1537
+ ],
+ "deps": [
+ "dash",
+ "popup",
+ "s"
+ ],
+ "commit": "0d74b2f2aa834b602e91d99e9cb23197a389f042",
+ "sha256": "01jwyridywbihspan8zrrfpxl4gl275z8l23swhczg0bcjq1x8g8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "popup",
+ "s"
+ ],
+ "commit": "0319569f1332641057c3e23d1e3bffb2404435a8",
+ "sha256": "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"
+ }
+ },
+ {
+ "ename": "dummyparens",
+ "commit": "e1f6199a9afece4d6eb581dc8e513601d55a5833",
+ "sha256": "1yah8kpqkk9ygm73iy51fzwc8q5nw0xlwqir2qld1fc5y1lkb7dk",
+ "fetcher": "github",
+ "repo": "snosov1/dummyparens",
+ "unstable": {
+ "version": [
+ 20141009,
+ 1024
+ ],
+ "commit": "9798ef1d0eaa24e4fe66f8aa6022a8c62714cc89",
+ "sha256": "0g72nnz0j6dvllyxyrw20z1vg6p7sy46yy0fq017pa77sgqm0xzh"
+ }
+ },
+ {
+ "ename": "dune",
+ "commit": "06648d1d37767cbdc7588d7a8f709d679d478a3b",
+ "sha256": "1lqza4fjm9xxmdn8040bvsl467qzjy709dlmiq2241gfhxpmvvr7",
+ "fetcher": "github",
+ "repo": "ocaml/dune",
+ "unstable": {
+ "version": [
+ 20191016,
+ 1241
+ ],
+ "commit": "26078df94ea16e2fc9221a84c5d42f2fe024074b",
+ "sha256": "1pvqrijx5bmnbvwk4pz6j1ldir5zi95ixbfrqki284qcgq28krd1"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 7,
+ 0
+ ],
+ "commit": "85b4e16bd6c310811fcc206d3d0cbb391eb8b81c",
+ "sha256": "19fn7ywx13j1hc600pccyghz2izjy26bzwaqjynn7swlbkc96ymz"
+ }
+ },
+ {
+ "ename": "duplicate-thing",
+ "commit": "be28db1bfbd663af5b5c24bad50372fddd341982",
+ "sha256": "1jx2b6h23dj561xhizzbpxp3av69ic8zdw4kkf0py1jm3gnrmlm4",
+ "fetcher": "github",
+ "repo": "ongaeshi/duplicate-thing",
+ "unstable": {
+ "version": [
+ 20181031,
+ 1500
+ ],
+ "commit": "9d8fd05e3e5caa35d3f2a0c0032c92f0c0908e21",
+ "sha256": "05lflc0r84c95vb81wbn44kh11cbgm42zn3y4ss0ychbf13mzdb5"
+ }
+ },
+ {
+ "ename": "dut-mode",
+ "commit": "ecf49ceab8b25591fab2ed6574cba0e6634d1539",
+ "sha256": "0hlr5qvqcqdh2k1nyq621z6vq2yiflj4jy0pgg6lbiy3j6819mai",
+ "fetcher": "github",
+ "repo": "dut-lang/dut-mode",
+ "unstable": {
+ "version": [
+ 20170729,
+ 2111
+ ],
+ "commit": "9235c7acaa6690942e9de8b7acd1e4be0c859dc1",
+ "sha256": "0fpqsm6y23anyx57gp4c6whzxrn8x03cp76iwx27c4gkq6ph1z8n"
+ }
+ },
+ {
+ "ename": "dyalog-mode",
+ "commit": "1a8f86df54f1243fea71e1e73ed0b9fb049032bd",
+ "sha256": "00mbkl275g8x3w341nsi90ffm5cfalnrfzx8ww1hnxc86q5ldivw",
+ "fetcher": "github",
+ "repo": "harsman/dyalog-mode",
+ "unstable": {
+ "version": [
+ 20200817,
+ 737
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5d703d91f90ddebdfb4cae1b45c476aec5976313",
+ "sha256": "1vf88vywb4cjfndc4jd185fdqjydd7ckbf1n2qsi9w3k8940q2pq"
+ }
+ },
+ {
+ "ename": "dylan-mode",
+ "commit": "94481ba3ebba6a99f11efab5a33e8bc6ea2d857a",
+ "sha256": "0kimvz8vmcvgxi0wvf7dqv6plj31xlksmvgip8h3bhyy7slxj3yy",
+ "fetcher": "github",
+ "repo": "dylan-lang/dylan-mode",
+ "unstable": {
+ "version": [
+ 20200607,
+ 1911
+ ],
+ "commit": "bdccb252dffa99a3a55dce446cc4a7ff4a8dc089",
+ "sha256": "09dgjwdsni936chj2b8r607bqa2vcav66mb49j5vi2lxiw60sg8m"
+ }
+ },
+ {
+ "ename": "dynamic-fonts",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "0a210ca41maa755lv1n7hhpxp0f7lfxrxbi0x34icbkfkmijhl6q",
+ "fetcher": "github",
+ "repo": "rolandwalker/dynamic-fonts",
+ "unstable": {
+ "version": [
+ 20140731,
+ 1226
+ ],
+ "deps": [
+ "font-utils",
+ "pcache",
+ "persistent-soft"
+ ],
+ "commit": "ab0c65accbdb59acaed5b263327e22ec019b3e82",
+ "sha256": "150dj1g49q9x9zx9wkymq30l5gc8c4mhsq91fm6q0yj6ip7hlfxh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 4
+ ],
+ "deps": [
+ "font-utils",
+ "pcache",
+ "persistent-soft"
+ ],
+ "commit": "d318498b377d8941c7420f51616c78e3440d00f5",
+ "sha256": "1ppwlill1z4vqd566h9zi6zx5jb7hggmnmqrga84j5n7fwqvgz7f"
+ }
+ },
+ {
+ "ename": "dynamic-graphs",
+ "commit": "8c0101a98dcddd7135478a218f4b0a5fd6d4fe0c",
+ "sha256": "188w7srdrfzri1l7y68b6vhrwn0yxx8578v6p234p8bsgmlwzan9",
+ "fetcher": "github",
+ "repo": "zellerin/dynamic-graphs",
+ "unstable": {
+ "version": [
+ 20200818,
+ 442
+ ],
+ "commit": "10dffcbc4011647c16e8d65d05856e043de1865d",
+ "sha256": "08f3f4bwryyhvj8yp2y2v3fppl6drd4rq3wyx48mxwkiw6z1db4r"
+ }
+ },
+ {
+ "ename": "dynamic-ruler",
+ "commit": "926c43867120db429807ff5aaacc8af65a1738c8",
+ "sha256": "13jc3xbsyc3apkdfy0iafmsfvgqs0zfa5w8jxp7zj4dhb7pxpnmc",
+ "fetcher": "github",
+ "repo": "rocher/dynamic-ruler",
+ "unstable": {
+ "version": [
+ 20160602,
+ 808
+ ],
+ "commit": "c9c0de6fe5721f06b50e01d9b4684b519c71b367",
+ "sha256": "09skp2d5likqjlrsfis3biqw59sjkgid5249fld9ahqm5f1wq296"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 6
+ ],
+ "commit": "c9c0de6fe5721f06b50e01d9b4684b519c71b367",
+ "sha256": "09skp2d5likqjlrsfis3biqw59sjkgid5249fld9ahqm5f1wq296"
+ }
+ },
+ {
+ "ename": "dynamic-spaces",
+ "commit": "e0b59ce66132cbe2b1f41b665dcb30bdd04bc48b",
+ "sha256": "0l4hwqivzv51j7h5sgd91dxb5slylmrfrvf7r6w0k04bhld6ry0c",
+ "fetcher": "github",
+ "repo": "Lindydancer/dynamic-spaces",
+ "unstable": {
+ "version": [
+ 20171027,
+ 1851
+ ],
+ "commit": "97ae8480c257ba573ca3d06dbf602f9b23c41d38",
+ "sha256": "0qs7gqjl6ilwwmd21663345az6766j7h1pv7wvd2kyh24yfs1xkj"
+ }
+ },
+ {
+ "ename": "e2ansi",
+ "commit": "5e655a3fdfae80ea120cdb2ce84dd4fd36f9a71e",
+ "sha256": "0ns1sldipx5kyqpi0bw79kdmhi1ry5glwxfzfx8r01hbbkf0cc94",
+ "fetcher": "github",
+ "repo": "Lindydancer/e2ansi",
+ "unstable": {
+ "version": [
+ 20190517,
+ 1902
+ ],
+ "deps": [
+ "face-explorer"
+ ],
+ "commit": "6e1bb4e4e27885d1786db08b091cfa13b184fb54",
+ "sha256": "1rbbwz8a6gqyxkkh5fapzlbnny816yzqj4170fzrswhib610mcvz"
+ }
+ },
+ {
+ "ename": "e2wm",
+ "commit": "8da85815c39f58552a968ae68ee07c08c53b0f61",
+ "sha256": "0dp360jr3fgxqywkp7g88cp02g37kw2hdsc0f70hjak9n3sy03la",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-window-manager",
+ "unstable": {
+ "version": [
+ 20170215,
+ 36
+ ],
+ "deps": [
+ "window-layout"
+ ],
+ "commit": "4353d3394c77a49f8f0291c239858c8c5e877549",
+ "sha256": "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "deps": [
+ "window-layout"
+ ],
+ "commit": "4353d3394c77a49f8f0291c239858c8c5e877549",
+ "sha256": "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"
+ }
+ },
+ {
+ "ename": "e2wm-R",
+ "commit": "c52a1ea0afa8e5f439b7ac987b79c49eb08fe95a",
+ "sha256": "195qgcdkz1913bvr8pk0yakp83phfn8i7gjv9s0zi8alwwpm3cw9",
+ "fetcher": "github",
+ "repo": "emacsattic/e2wm-R",
+ "unstable": {
+ "version": [
+ 20151230,
+ 926
+ ],
+ "deps": [
+ "e2wm",
+ "ess",
+ "inlineR"
+ ],
+ "commit": "4350601ee1a96bf89777b3f09f1b79b88e2e6e4d",
+ "sha256": "1g77gf24abwcvf7z52vs762s6jp978pnvza8zmzwkwfvp1mkx233"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "e2wm"
+ ],
+ "commit": "fe17906bf48324032a1beaec9af32b9b49ea9125",
+ "sha256": "1yf081rac0chvkjha9z9xi1p983gmhjph0hai6ppsz5hzf2vikpp"
+ }
+ },
+ {
+ "ename": "e2wm-bookmark",
+ "commit": "45488849da42ac775e532f30f588bfabb7af3cae",
+ "sha256": "1myaqxzrgff5gxcn3zn1bsmyf5122ql1mwr05wamd450lq8nmbw5",
+ "fetcher": "github",
+ "repo": "myuhe/e2wm-bookmark.el",
+ "unstable": {
+ "version": [
+ 20151123,
+ 521
+ ],
+ "deps": [
+ "e2wm"
+ ],
+ "commit": "bad816b6d8049984d69bcd277b7d325fb84d55eb",
+ "sha256": "121vd44f42bxqvdjswmjlghf1jalbs974b6cip2i049k1n08xgh0"
+ }
+ },
+ {
+ "ename": "e2wm-direx",
+ "commit": "8320cf626050cf455c97ef22e7a8ccfb253e3243",
+ "sha256": "0nv8aciq0swxi9ahwc2pvk9c7i3rmlp7vrzqcan58ml0i3nm17wg",
+ "fetcher": "github",
+ "repo": "aki2o/e2wm-direx",
+ "unstable": {
+ "version": [
+ 20200805,
+ 1414
+ ],
+ "deps": [
+ "direx",
+ "e2wm"
+ ],
+ "commit": "5672bc44d8e5cea6bc3b84c3b58e522050ffae0e",
+ "sha256": "18fj8qn4b6f13vb3n6j5cwcgdh2ypnvaqyjszmh321zmwxq08nd5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 7
+ ],
+ "deps": [
+ "direx",
+ "e2wm"
+ ],
+ "commit": "5672bc44d8e5cea6bc3b84c3b58e522050ffae0e",
+ "sha256": "18fj8qn4b6f13vb3n6j5cwcgdh2ypnvaqyjszmh321zmwxq08nd5"
+ }
+ },
+ {
+ "ename": "e2wm-pkgex4pl",
+ "commit": "8f84b421cb1673d2a9fe820cee11dc4a6e72adad",
+ "sha256": "0hgdbqfw3015fr929m36kfiqqzsid6afs3222iqq0apg7gfj7jil",
+ "fetcher": "github",
+ "repo": "aki2o/e2wm-pkgex4pl",
+ "unstable": {
+ "version": [
+ 20140525,
+ 1047
+ ],
+ "deps": [
+ "e2wm",
+ "plsense-direx"
+ ],
+ "commit": "7ea994450727190c4f3cb46cb429ba41b692ecc0",
+ "sha256": "1vrlfzy1wynm7x4m7pl8vim7ykqd6qkcilwz7sjc1lbckz11ig0d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "e2wm",
+ "plsense-direx"
+ ],
+ "commit": "7ea994450727190c4f3cb46cb429ba41b692ecc0",
+ "sha256": "1vrlfzy1wynm7x4m7pl8vim7ykqd6qkcilwz7sjc1lbckz11ig0d"
+ }
+ },
+ {
+ "ename": "e2wm-svg-clock",
+ "commit": "784f5598910ecf208a68fa97448e148a8ebefa32",
+ "sha256": "0q02lksrbn43s8d9rzpglqybalglpi6qi9lix0cllag6i7fzcbms",
+ "fetcher": "github",
+ "repo": "myuhe/e2wm-svg-clock.el",
+ "unstable": {
+ "version": [
+ 20150106,
+ 1306
+ ],
+ "deps": [
+ "e2wm",
+ "svg-clock"
+ ],
+ "commit": "d425925e3afffcbe2ff74edc80b714e4319d4c94",
+ "sha256": "0h1fnlpvy2mqfxjv64znghmiadh9qimj9q9a60cxhyc0bq0prz6f"
+ }
+ },
+ {
+ "ename": "e2wm-sww",
+ "commit": "cc873e8271e9f372e08da5d0e4b77c8ba0e3a8cb",
+ "sha256": "0x45j62cjivf9v7jp1b41yya3f9akp92md6cbv0v7bwz98g2vsk8",
+ "fetcher": "github",
+ "repo": "aki2o/e2wm-sww",
+ "unstable": {
+ "version": [
+ 20200805,
+ 1339
+ ],
+ "deps": [
+ "e2wm"
+ ],
+ "commit": "8926d0c70be05c7b4ef821e22e411e8813973687",
+ "sha256": "0941mfz6a398jq5cb8kgr5cikzkzrpjnfbbx2f9c1yy9wj1awklk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "e2wm"
+ ],
+ "commit": "8926d0c70be05c7b4ef821e22e411e8813973687",
+ "sha256": "0941mfz6a398jq5cb8kgr5cikzkzrpjnfbbx2f9c1yy9wj1awklk"
+ }
+ },
+ {
+ "ename": "e2wm-term",
+ "commit": "c9a800f5af893cb670cedb47e4a723c407be8429",
+ "sha256": "0wrq06yap80a96l9l0hs7x7rng7sx6vi1hz778kknb6il4f2f45g",
+ "fetcher": "github",
+ "repo": "aki2o/e2wm-term",
+ "unstable": {
+ "version": [
+ 20200322,
+ 729
+ ],
+ "deps": [
+ "e2wm",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "74362d6271e736272df32ea807c5a22e4df54a50",
+ "sha256": "1cr2mp1visx4fnxc73sk6gw7wnl1mxfb624rm1sxz7wwry8b8fx9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "e2wm",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "65b5ac88043d5c4048920a048f3599904ca55981",
+ "sha256": "0qv3kh6q3q7vgfsd8x25x8agi3fp96dkpjnxdidkwk6k8h9n0jzw"
+ }
+ },
+ {
+ "ename": "eacl",
+ "commit": "8223bec7eed97f0bad300af9caa4c8207322d39a",
+ "sha256": "16afsf3diz498jb63q85lm5ifvm487clfl838qzagl1l4aywhlwr",
+ "fetcher": "github",
+ "repo": "redguardtoo/eacl",
+ "unstable": {
+ "version": [
+ 20200612,
+ 736
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "0517e60d8d36838df1a90498f2d75ded814d75e4",
+ "sha256": "0vri0dmq6w58crjwhpi9r1r2i6nqr2q69arqagbwvs4hrxm79z1k"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 3
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "0517e60d8d36838df1a90498f2d75ded814d75e4",
+ "sha256": "0vri0dmq6w58crjwhpi9r1r2i6nqr2q69arqagbwvs4hrxm79z1k"
+ }
+ },
+ {
+ "ename": "easy-after-load",
+ "commit": "384ffc463cc6edb4806f8da68bd251e662718e65",
+ "sha256": "1mn4hpx82nifphzx71yw3rbixbgis8bhvl3iyxcgcd88n5hqwvys",
+ "fetcher": "github",
+ "repo": "pd/easy-after-load",
+ "unstable": {
+ "version": [
+ 20170817,
+ 1231
+ ],
+ "commit": "29e20145da49ac9ea40463c552130777408040de",
+ "sha256": "00xgd39qc760lmxpbggzn98aks5nad08b5ry54pkszjlmh37yqj7"
+ }
+ },
+ {
+ "ename": "easy-escape",
+ "commit": "c39e3b867fa3143e9dc7c2fefa57b5755f70b433",
+ "sha256": "1zspb79x6s151wwiian45j1nh0xps8y8yd98byyn5lbwbj2pp2gk",
+ "fetcher": "github",
+ "repo": "cpitclaudel/easy-escape",
+ "unstable": {
+ "version": [
+ 20161209,
+ 1544
+ ],
+ "commit": "a6449f22cb97160ee1c90121968de89e193268df",
+ "sha256": "1spbavcs4a3vn1ggdcgwgb2wvq4lbk74xyfagr4y5b5w2azlkh51"
+ }
+ },
+ {
+ "ename": "easy-hugo",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1m7iw6njxxsk82agyqay277iql578b3wz6z9wjs8ls30ps8s2b8g",
+ "fetcher": "github",
+ "repo": "masasam/emacs-easy-hugo",
+ "unstable": {
+ "version": [
+ 20200811,
+ 842
+ ],
+ "deps": [
+ "popup",
+ "request"
+ ],
+ "commit": "cc4ba71c07dd8b3a66c996e7b31fa7e3e9870ce2",
+ "sha256": "1haias0k1gia0jfjiviy222jmbv4zf1ddsv00z9h476g8h303w7b"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 9,
+ 47
+ ],
+ "deps": [
+ "popup",
+ "request"
+ ],
+ "commit": "cc4ba71c07dd8b3a66c996e7b31fa7e3e9870ce2",
+ "sha256": "1haias0k1gia0jfjiviy222jmbv4zf1ddsv00z9h476g8h303w7b"
+ }
+ },
+ {
+ "ename": "easy-jekyll",
+ "commit": "c3f281145bad12c27bdbef32ccc07b6a5f13b577",
+ "sha256": "16jj70fr23z5qsaijv4d4xfiiypny2cama8rsaci9fk9haq19lxv",
+ "fetcher": "github",
+ "repo": "masasam/emacs-easy-jekyll",
+ "unstable": {
+ "version": [
+ 20200811,
+ 859
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "8ecdb70a4f957fbd0b81dc0c5726edc136513b34",
+ "sha256": "15ps0b8ik3bsxv96jb0cbbgiwx0z601m56cj83yp7r5zyphbm2n5"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4,
+ 27
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "8ecdb70a4f957fbd0b81dc0c5726edc136513b34",
+ "sha256": "15ps0b8ik3bsxv96jb0cbbgiwx0z601m56cj83yp7r5zyphbm2n5"
+ }
+ },
+ {
+ "ename": "easy-kill",
+ "commit": "7d0a74c2a7d8859e9311bc8d71f5e6cf5a8063b6",
+ "sha256": "10jcv7a4vcnaj3wkabip2xwzcwlmvdlqkl409a9lnzfasxcpf32i",
+ "fetcher": "github",
+ "repo": "leoliu/easy-kill",
+ "unstable": {
+ "version": [
+ 20181114,
+ 2330
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2a6309d98aa6b71df6bbbcdf15cab3187c521a6b",
+ "sha256": "1j8hl0f52fqb21775xn94sf9g12yqyg6z0ibgmxzmnl02ir4xr86"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e3b2442e2096cefff94ea8656e49af07fee58f47",
+ "sha256": "0r56nqrj6iaz57ys6hqdq5qkyliv7dj6dv274l228r7x0axrwd9m"
+ }
+ },
+ {
+ "ename": "easy-kill-extras",
+ "commit": "7b55d93f78fefde47a2bd4ebbfd93c028fab1f40",
+ "sha256": "0xzlzv57nvrc142saydwfib51fyqcdzjccc1hj6xvgcdbwadlnjy",
+ "fetcher": "github",
+ "repo": "knu/easy-kill-extras.el",
+ "unstable": {
+ "version": [
+ 20180920,
+ 1334
+ ],
+ "deps": [
+ "easy-kill"
+ ],
+ "commit": "b8ce8350cc86e0229f195082557970cd51def960",
+ "sha256": "1f8db92zzk8g8yyj0g334mdbgqmzrs8xamm1d24jai1289hm29xa"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 6
+ ],
+ "deps": [
+ "easy-kill"
+ ],
+ "commit": "b8ce8350cc86e0229f195082557970cd51def960",
+ "sha256": "1f8db92zzk8g8yyj0g334mdbgqmzrs8xamm1d24jai1289hm29xa"
+ }
+ },
+ {
+ "ename": "easy-repeat",
+ "commit": "f1f5e0d19043f6a24ab4069c9c850e96cbe61a8f",
+ "sha256": "1vx57gpw0nbxh976s18va4ali1nqxqffhaxv1c5rhf4pwlk2fa06",
+ "fetcher": "github",
+ "repo": "xuchunyang/easy-repeat.el",
+ "unstable": {
+ "version": [
+ 20150516,
+ 848
+ ],
+ "commit": "060f0e6801c82c40c06961dc0528a00e18947a8c",
+ "sha256": "18bm5ns1qrxq0rrz9sylshr62wkymh1m6b7ch2y74f8rcwdwjgnq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "060f0e6801c82c40c06961dc0528a00e18947a8c",
+ "sha256": "18bm5ns1qrxq0rrz9sylshr62wkymh1m6b7ch2y74f8rcwdwjgnq"
+ }
+ },
+ {
+ "ename": "ebf",
+ "commit": "22e2f6383f2a7a01778c0524af19a68af57796ae",
+ "sha256": "072w1hczzb4z0dadvqy8px9zfnfd2z0w8nwa7q2qm5njg30rrqpb",
+ "fetcher": "github",
+ "repo": "rexim/ebf",
+ "unstable": {
+ "version": [
+ 20160211,
+ 1758
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "4cd9c26354d8be6571354b2954d21fba882e78a2",
+ "sha256": "1pgn6fcg5cnbpk93hc2vw95sna07x0s1v2i6lq9bmij2msvar611"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "d0bd4fe1abbe327e7d9228eff09927fec57e8378",
+ "sha256": "16hiwz8a1hyyiflzn53v97704v783pg18yxapn7pqk90fbcf7czw"
+ }
+ },
+ {
+ "ename": "ebib",
+ "commit": "4e39cd8e8b4f61c04fa967def6a653bb22f45f5b",
+ "sha256": "1kdqf5nk9l6mr3698nqngrkw5dicgf7d24krir5wrcfbrsqrfmid",
+ "fetcher": "github",
+ "repo": "joostkremers/ebib",
+ "unstable": {
+ "version": [
+ 20200628,
+ 2157
+ ],
+ "deps": [
+ "parsebib"
+ ],
+ "commit": "805c2e30e30f9f211f4aa443263d1c3971935295",
+ "sha256": "0kgw049wph40kk0kin7zxj44ghd1s1pr8zpl1gli4zic02vzcaga"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 25,
+ 1
+ ],
+ "deps": [
+ "parsebib"
+ ],
+ "commit": "bd258c1f364a8c96b0026fdc3de75117ca4e324a",
+ "sha256": "1mvsa2a761va74ybxprdvmhkzhjl6axn1ngjfhrrljqgsvqgyjwk"
+ }
+ },
+ {
+ "ename": "ebuku",
+ "commit": "2f38ff73025a8645e9a93d27dc2c19446920737b",
+ "sha256": "0f9gm24cw81hfczas7w5k7dcr5n255ffskp926ks4wwvl4bpvdpq",
+ "fetcher": "github",
+ "repo": "flexibeast/ebuku",
+ "unstable": {
+ "version": [
+ 20200427,
+ 1143
+ ],
+ "commit": "9e1878810eaaaa55885d4cbcd6968566e4e3f7a8",
+ "sha256": "0czrchzz7ljynbkkgpp1ifjybp33wx4lhyzyqkxs4q84rs4m7p2p"
+ }
+ },
+ {
+ "ename": "ecb",
+ "commit": "4db5183f35bedbc459843ad9f442f9cb6608c5fc",
+ "sha256": "0z61p9zgv7gcx04m4jv16a3mn9kjvnw0rdd65kpvbmzkgls0nk8d",
+ "fetcher": "github",
+ "repo": "ecb-home/ecb",
+ "unstable": {
+ "version": [
+ 20170728,
+ 1921
+ ],
+ "commit": "1330a44cf3c171781083b0b926ab7622f64e6e81",
+ "sha256": "0nx1blkvnzrxd2l7ckdihm9fvq5vkcghf6qccagkjzk4zbdalz30"
+ }
+ },
+ {
+ "ename": "eclim",
+ "commit": "1e9d3075587fbd9ca188535fd945a7dc451c6d7e",
+ "sha256": "1n60ci6kjmzy2khr3gs7s8gf21j1f9zjaj5a1yy2dyygsarbxw7b",
+ "fetcher": "github",
+ "repo": "emacs-eclim/emacs-eclim",
+ "unstable": {
+ "version": [
+ 20181108,
+ 1134
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "json",
+ "popup",
+ "s",
+ "yasnippet"
+ ],
+ "commit": "222ddd48fcf0ee01592dec77c58e0cf3f2ea1100",
+ "sha256": "0jdddf8krvg379wlay1xs27qlxpi87nz6v2i526pk59mmg8jrnvc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "json",
+ "popup",
+ "s",
+ "yasnippet"
+ ],
+ "commit": "8203fbf8544e65324a948a67718f7a16ba2d52e6",
+ "sha256": "10bbbxhvlwm526g1wib1f87grnayirlg8jbsvmpzxr9nmdjgikz3"
+ }
+ },
+ {
+ "ename": "eclipse-theme",
+ "commit": "81fcf3536ead18a91400f6936b3f789b4b594b9c",
+ "sha256": "0mww0jysxqky1zkkhvhj7fn20w970n2w6501rdm5jwqfb58ivxfx",
+ "fetcher": "github",
+ "repo": "abo-abo/eclipse-theme",
+ "unstable": {
+ "version": [
+ 20191113,
+ 1518
+ ],
+ "commit": "dcf97865512ed450f9d5137c1a05e12edb5b7f80",
+ "sha256": "0nv0cwn9pjvy54b2pv9ncr6xmh6nnrdcdyqmcahrzmlvgy4ks8ra"
+ }
+ },
+ {
+ "ename": "ecukes",
+ "commit": "14cf66e6929db2a0f377612e786aaed9eb12b799",
+ "sha256": "0ava8hrc7r1mzv6xgbrb84qak5xrf6fj8g9qr4i4g0cr7843nrw0",
+ "fetcher": "github",
+ "repo": "ecukes/ecukes",
+ "unstable": {
+ "version": [
+ 20190822,
+ 2127
+ ],
+ "deps": [
+ "ansi",
+ "commander",
+ "dash",
+ "espuds",
+ "f",
+ "s"
+ ],
+ "commit": "d835ce619a8f0057a133c08060af4b026e1c9359",
+ "sha256": "1iqrb6lmvmsfk1g6hcc304b091nv3x7f5pv7zpn87kvvw7xw6lqg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 17
+ ],
+ "deps": [
+ "ansi",
+ "commander",
+ "dash",
+ "espuds",
+ "f",
+ "s"
+ ],
+ "commit": "3a77ba9f1064c2bca47b401974c009e65727c46e",
+ "sha256": "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn"
+ }
+ },
+ {
+ "ename": "edbi",
+ "commit": "238a11afa52d2c01d69eb16ffd7d07ccd6dff403",
+ "sha256": "0qq0j16n8lyvkqqlcsrq1m7r7f0in6b92d74mpx5c6siv6z2vxlr",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-edbi",
+ "unstable": {
+ "version": [
+ 20160225,
+ 141
+ ],
+ "deps": [
+ "concurrent",
+ "ctable",
+ "epc"
+ ],
+ "commit": "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0",
+ "sha256": "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "concurrent",
+ "ctable",
+ "epc"
+ ],
+ "commit": "39b833d2e51ae5ce66ebdec7c5425ff0d34e02d2",
+ "sha256": "0xy3q68i47a3s81jwr0rdvc1722bp78ng56xm53pri05g1z0db9s"
+ }
+ },
+ {
+ "ename": "ede-compdb",
+ "commit": "3b70138b7d82aec2d60f4a7c0cd21e734a1fc52a",
+ "sha256": "1ypi7rxbgg2qck1b571hcw5m4ipllb48g6sindpdf180kbfbfpn7",
+ "fetcher": "github",
+ "repo": "randomphrase/ede-compdb",
+ "unstable": {
+ "version": [
+ 20150920,
+ 2033
+ ],
+ "deps": [
+ "cl-lib",
+ "ede",
+ "semantic"
+ ],
+ "commit": "d6d8466cd62876fc90adeff5875a1a584fd846cd",
+ "sha256": "1cfjw9b1lm29s5cbh0qqmkchbq2382s71w4rpb0gyf603s0yg13m"
+ }
+ },
+ {
+ "ename": "ede-php-autoload",
+ "commit": "afc7ddfcf16e92889e54f30599b576a24823f60d",
+ "sha256": "1255a1drpb50650i0yijahbp97chpw89mi9fvdrk3vf64xlysamq",
+ "fetcher": "github",
+ "repo": "emacs-php/ede-php-autoload",
+ "unstable": {
+ "version": [
+ 20180901,
+ 1255
+ ],
+ "commit": "8a4eeeaa93b8d87b65a107c4ebcbeb14528d9449",
+ "sha256": "109cys3d4pfaa2c6gb33p5b40cd6wmisx63w20cxpj86drx8iabf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "28a989232c276ee7fc5112c9050b1c29f628be9f",
+ "sha256": "0kc51bb5jxrsra9ycg43n35dd8kngby321qbcixaj68cksf0whrm"
+ }
+ },
+ {
+ "ename": "ede-php-autoload-composer-installers",
+ "commit": "6e0e9058593b32b8d9fd7873d4698b4dd516930f",
+ "sha256": "0s7dv81niz4h8kj0648x2nbmz47hqxchfs2rjmjpy2lcbifvj268",
+ "fetcher": "github",
+ "repo": "xendk/ede-php-autoload-composer-installers",
+ "unstable": {
+ "version": [
+ 20170221,
+ 2026
+ ],
+ "deps": [
+ "ede-php-autoload",
+ "f",
+ "s"
+ ],
+ "commit": "7840439802c7d11ee086bbf465657f3da12f9f66",
+ "sha256": "1dkq0py1sybmpy59h3szafa59g5g3jp8l9az22l15qgmkpbqydh4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "ede-php-autoload",
+ "f",
+ "s"
+ ],
+ "commit": "f9942e07d0773444040084ac84652e69f0fd46d5",
+ "sha256": "04gw8ma5c898ai7haxvdagmxx8zw9ncc9v0cv8a5ddg6arvzkl1z"
+ }
+ },
+ {
+ "ename": "ede-php-autoload-drupal",
+ "commit": "532fec4788350cc11893c32e3895f06510a39d35",
+ "sha256": "139sr7jy5hb8h5zmw5mw01r0dy7yvbbyaxzj62m1a589n8w6a964",
+ "fetcher": "github",
+ "repo": "xendk/ede-php-autoload-drupal",
+ "unstable": {
+ "version": [
+ 20170316,
+ 2158
+ ],
+ "deps": [
+ "ede-php-autoload",
+ "f",
+ "s"
+ ],
+ "commit": "54a04241d94fabc4f4d16ae4dc8ba4f0c6e3b435",
+ "sha256": "1ckfja95zk4f7fgvycia7nxhxjgz4byrz30ic63f6kcq4dx78scs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "ede-php-autoload",
+ "f",
+ "s"
+ ],
+ "commit": "6b62ffa7a69f52aab79067eaed80b2720f7e3fc2",
+ "sha256": "001yhxngr6h7v1sjz0wskd5dv6fiby7m1mbc8vdz1h93150wzahp"
+ }
+ },
+ {
+ "ename": "edebug-x",
+ "commit": "204e40cd450f4223598be1f385f08ec82b44f70c",
+ "sha256": "0mzrip6y346mix4ny1xj8rkji1w531ix24k3cczmlmm4hm7l29ql",
+ "fetcher": "github",
+ "repo": "ScottyB/edebug-x",
+ "unstable": {
+ "version": [
+ 20130616,
+ 625
+ ],
+ "commit": "a2c2c42553d3bcbd5ac11898554865acbed1bc46",
+ "sha256": "1zgiifi1k2d9g8sarfpjzamk8g1yx4ilgn60mqhy2pznp30b5qb2"
+ }
+ },
+ {
+ "ename": "edit-at-point",
+ "commit": "2c01af1911a0c8856e3dee09b6d233f821d67814",
+ "sha256": "0ris81wld73h70arvc7zpzvk2wqqmzbpa090vak71w9xgw1jfr36",
+ "fetcher": "github",
+ "repo": "emacsattic/edit-at-point",
+ "unstable": {
+ "version": [
+ 20191013,
+ 1218
+ ],
+ "commit": "28c85a65c9c61f2aff50bc5e93f61cde26a5d9c0",
+ "sha256": "1wciwx9zk28r21v9ampjd8wn19g19ia7hiq1x0hami479dxwinfc"
+ }
+ },
+ {
+ "ename": "edit-chrome-textarea",
+ "commit": "d9e8d07ed13d190a8a7eab75a59ec5b9a01d97a8",
+ "sha256": "0xp7925y04gr09j204r01jq7hqjp32gqsazwsbih4fkx0n30aqbs",
+ "fetcher": "github",
+ "repo": "xuchunyang/edit-chrome-textarea.el",
+ "unstable": {
+ "version": [
+ 20200324,
+ 1513
+ ],
+ "deps": [
+ "websocket"
+ ],
+ "commit": "e9ef6a72bdc6b58f932c51aa161869cee11b4bc9",
+ "sha256": "1akyxq0ja06q5bywa6nb4klnbvrw6f6d83bzrjdz2sc7ddk3a4hz"
+ }
+ },
+ {
+ "ename": "edit-color-stamp",
+ "commit": "2ad2ea105b895cb958ce0ab2bf2fad2b40d41b2f",
+ "sha256": "1f8v8w3w7vb8jv29w06mplah8yfcs5qfjz2w4irv0rg7dwzy3zk8",
+ "fetcher": "github",
+ "repo": "sabof/edit-color-stamp",
+ "unstable": {
+ "version": [
+ 20130529,
+ 1733
+ ],
+ "deps": [
+ "cl-lib",
+ "es-lib"
+ ],
+ "commit": "32dc1ca5bcf3dcf83fad5e39b55dc5b77becb3d3",
+ "sha256": "0vk954f44m2bq7qb122pzlb8fibrisx47ihvn3h96m8nmx0fv32r"
+ }
+ },
+ {
+ "ename": "edit-indirect",
+ "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
+ "sha256": "0q5jjmrvx5kaajllmhaxihsab2kr1vmcsfqrhxdhw3x3nf41s439",
+ "fetcher": "github",
+ "repo": "Fanael/edit-indirect",
+ "unstable": {
+ "version": [
+ 20200805,
+ 1840
+ ],
+ "commit": "bdc8f542fe8430ba55f9a24a7910639d4c434422",
+ "sha256": "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 6
+ ],
+ "commit": "bdc8f542fe8430ba55f9a24a7910639d4c434422",
+ "sha256": "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"
+ }
+ },
+ {
+ "ename": "edit-indirect-region-latex",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0ys0fpfk259g14wvg0nnkc3wk1dbjjd2n4a636jblgq63w6g3h79",
+ "fetcher": "github",
+ "repo": "niitsuma/edit-indirect-region-latex",
+ "unstable": {
+ "version": [
+ 20161129,
+ 645
+ ],
+ "deps": [
+ "edit-indirect",
+ "ht"
+ ],
+ "commit": "05043f2c0c9838947d3ca4b51b695deb7c47612e",
+ "sha256": "0dgac0nk9x4sz4lisxb5badrzpcjqjwgi79hhl1y6mafzm0ncqs2"
+ }
+ },
+ {
+ "ename": "edit-list",
+ "commit": "6c8aa348ce5289a8b1238f186affac1d544af755",
+ "sha256": "0mi12jfgx06i0yr8k5nk80xryqszjv0xykdnri505862rb90xakv",
+ "fetcher": "github",
+ "repo": "emacsmirror/edit-list",
+ "unstable": {
+ "version": [
+ 20100930,
+ 1443
+ ],
+ "commit": "f460d3f9e208a4e606fe6ded307f1b011916ca71",
+ "sha256": "0981hy1n50yizc3k06vbxqrpfml817a67kab1hkgkw5v6ymm1hc9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "f460d3f9e208a4e606fe6ded307f1b011916ca71",
+ "sha256": "0981hy1n50yizc3k06vbxqrpfml817a67kab1hkgkw5v6ymm1hc9"
+ }
+ },
+ {
+ "ename": "edit-server",
+ "commit": "d98d69008b5ca8b92fa7a6045b9d1af86f269386",
+ "sha256": "0ffxcgmnz0f2c1i3vfwm8vlm6jyd7ibf4kq5z8c6n50zkwfdmns0",
+ "fetcher": "github",
+ "repo": "stsquad/emacs_chrome",
+ "unstable": {
+ "version": [
+ 20181016,
+ 1125
+ ],
+ "commit": "5f6352f98f9795ea0423cb46e9b01dc54e523ab1",
+ "sha256": "0khf51sbjkqij36l00lby004ca9nb67xvksjnbafzp2bvwcs356j"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 15
+ ],
+ "commit": "4e959de2f78268b348d2eaac4e43c846792d345f",
+ "sha256": "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y"
+ }
+ },
+ {
+ "ename": "edit-server-htmlize",
+ "commit": "219b037401a81ce70bd2106dabffa16d8b0c7cef",
+ "sha256": "007lv3698a88wxan7kplz2117azxxpzzgshin9c1aabg059hszlj",
+ "fetcher": "github",
+ "repo": "frobtech/edit-server-htmlize",
+ "unstable": {
+ "version": [
+ 20130329,
+ 2248
+ ],
+ "deps": [
+ "edit-server"
+ ],
+ "commit": "e7f8dadfabe869c77ca241cd6fbd4c52bd908392",
+ "sha256": "174xq45xc632zrb916aw7q4bch96pbi6zgy3dk77qla3ky9cfpl3"
+ }
+ },
+ {
+ "ename": "editorconfig",
+ "commit": "50d4f2ed288ef38153a7eab44c036e4f075b51d0",
+ "sha256": "0zv96m07ml8i3k7zm7sdci4hn611n3ypna7zppfkwbdyr7d5k2gc",
+ "fetcher": "github",
+ "repo": "editorconfig/editorconfig-emacs",
+ "unstable": {
+ "version": [
+ 20200730,
+ 1329
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9bc1343ce8bd2cc84bf04b58a053b7ec700244c0",
+ "sha256": "10zaxq356fq6y4h1g9gxj8sja4k4g5z9g2xggw0yy4dbx1mmw7n1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0b65d5316bcab4d76b5823ea6ecf8f5880f460d2",
+ "sha256": "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"
+ }
+ },
+ {
+ "ename": "editorconfig-charset-extras",
+ "commit": "62f27dad806fa135209289933f2131ee4ce8f8bf",
+ "sha256": "15p9qpdwradcnjr0nf0ibhy94yi73l18xz7zxf6khmdirsirpwgh",
+ "fetcher": "github",
+ "repo": "10sr/editorconfig-charset-extras-el",
+ "unstable": {
+ "version": [
+ 20180223,
+ 457
+ ],
+ "deps": [
+ "editorconfig"
+ ],
+ "commit": "4f75e175ad15ce2038f926fe4f0e5a0c1d0cbc46",
+ "sha256": "12a78187ar4mxdf1sk8bkrdcxly1nc5m9krkry04jklj6h9dayj3"
+ }
+ },
+ {
+ "ename": "editorconfig-custom-majormode",
+ "commit": "fcd47bf4630442ad1a941ad432cef64c7746aa71",
+ "sha256": "0ykvjg3gwxky6w5cm0y5s63q9820b7d25fy9plw8sarxwy2a5lxy",
+ "fetcher": "github",
+ "repo": "10sr/editorconfig-custom-majormode-el",
+ "unstable": {
+ "version": [
+ 20180816,
+ 244
+ ],
+ "deps": [
+ "editorconfig"
+ ],
+ "commit": "13ad1c83f847bedd4b3a19f9df7fd925853b19de",
+ "sha256": "1zagd6cliwm8xyhzfvpi7n7m58k78wv4ihc2snq00v7321jjh9bp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "editorconfig"
+ ],
+ "commit": "ae613f0a56364afbbab19d4377c108406d5cfc7c",
+ "sha256": "0sm3xdysnqzc6nc2n7rcnr478l7qdy7bv8rhq500240aprzv63y4"
+ }
+ },
+ {
+ "ename": "editorconfig-domain-specific",
+ "commit": "831a7dd7ef853ca44709eabfd48ee97113705319",
+ "sha256": "1rkan6q7z0qfq28zg114iik71nghd7fbs4g8qppzhgr3pwbpn73q",
+ "fetcher": "github",
+ "repo": "lassik/editorconfig-emacs-domain-specific",
+ "unstable": {
+ "version": [
+ 20180505,
+ 924
+ ],
+ "deps": [
+ "cl-lib",
+ "editorconfig"
+ ],
+ "commit": "e9824160fb2e466afa755240ee3ab7cc5657fb04",
+ "sha256": "0gkwhvywfpnay7rxb2bmsnywcd89qw710bsp53sk5fvilgfwfpkj"
+ }
+ },
+ {
+ "ename": "editorconfig-generate",
+ "commit": "dc1cfe5ce6bc3d247c5b7730ac6cb2d6c6198a0c",
+ "sha256": "1xfm3vnr5ngi1vihs7cack8a6zyipvdq260v43cr0y8dqg3sn89i",
+ "fetcher": "github",
+ "repo": "10sr/editorconfig-generate-el",
+ "unstable": {
+ "version": [
+ 20190513,
+ 433
+ ],
+ "commit": "47a31f928f46d2a0188db8e2cffa5d6354a81573",
+ "sha256": "01bv064rzxjpqvcs0x62qfqn51js51wmkbg04v28pvmwlmnigkg0"
+ }
+ },
+ {
+ "ename": "edn",
+ "commit": "305dd770d9db86d5ee602e6bd571b7c4f6c4ddbe",
+ "sha256": "00cy8axhy2p3zalzl8k2083l5a7s3aswb9qfk9wsmf678m8pqwqg",
+ "fetcher": "github",
+ "repo": "expez/edn.el",
+ "unstable": {
+ "version": [
+ 20160215,
+ 1219
+ ],
+ "deps": [
+ "cl-lib",
+ "peg"
+ ],
+ "commit": "be9e32d1b49e35247b263b0243df7cfdc8d413ab",
+ "sha256": "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "peg",
+ "s"
+ ],
+ "commit": "bb035dcbeccccdb2c899d2cce8e81486764d0ad7",
+ "sha256": "06v34l9dkykrrdfpnm3zi5wjm0fdvy76pbkfnk92wqkjp8fqimhd"
+ }
+ },
+ {
+ "ename": "edts",
+ "commit": "92b0d3a2af833e0f11e6a935d54eba5e3879d690",
+ "sha256": "1363k9fh1z7r6hxccsqx2a1d688kldr4h6vp91hwph7ihk4868il",
+ "fetcher": "github",
+ "repo": "sebastiw/edts",
+ "unstable": {
+ "version": [
+ 20200710,
+ 1424
+ ],
+ "deps": [
+ "auto-complete",
+ "auto-highlight-symbol",
+ "dash",
+ "erlang",
+ "f",
+ "popup",
+ "s"
+ ],
+ "commit": "eda93f89c198db6aa3590d8e812ed797c9b3e305",
+ "sha256": "0vpvil86j6ahfq9f123ampba93h7pgnlvg14y9a9fpwig1hvqm60"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "61855db6f1315ea45f97ed95b47a3f182ec4c6be",
+ "sha256": "1a1apa48n24yisd2zw5k4lfkngx3016x6y11qi80hg75vrnmg7f1"
+ }
+ },
+ {
+ "ename": "edwina",
+ "commit": "050188e81b045bdadf722db552a42864121d9b81",
+ "sha256": "1581cwgfnrlcmbmrnfj57w9hb9jx9sinz6zw6zy2yk7g1r9vgbzl",
+ "fetcher": "github",
+ "repo": "ajgrf/edwina",
+ "unstable": {
+ "version": [
+ 20200113,
+ 1714
+ ],
+ "commit": "c5368716a504c93407fd8cb4ef925a8d8eb62698",
+ "sha256": "0rsi1v9rr76crbgb7f13g31rfq5bjk0hchqr356h97xlqr39168y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "cc0a039a400e8ef07b0d96d2169f1407e0af107a",
+ "sha256": "0l8w5f4bkqzb8pglvh516q91s6lvc1s1lfilxc9h881vl3934y7l"
+ }
+ },
+ {
+ "ename": "efire",
+ "commit": "4150455d424326667390f72f6edd22b274d9fa01",
+ "sha256": "0dhgms6s0c889xx75khn1mqfn8i32z4rjlx2w7i0chm2abxbgd3m",
+ "fetcher": "github",
+ "repo": "joaotavora/efire",
+ "unstable": {
+ "version": [
+ 20151009,
+ 2031
+ ],
+ "deps": [
+ "circe"
+ ],
+ "commit": "91a644662afb352475efad0b377713656f131e5c",
+ "sha256": "1c2iyv392ap35nss4j901h33d3lx9lmq5v43flf2rid1766pam6v"
+ }
+ },
+ {
+ "ename": "eg",
+ "commit": "3d2b6b92b2a71486f260571885bf149ad6afc551",
+ "sha256": "1ic6qzk0zmay3vvbb8jg35irqkc0k68dmgbq4j9isiawy449zvp7",
+ "fetcher": "github",
+ "repo": "davep/eg.el",
+ "unstable": {
+ "version": [
+ 20170830,
+ 815
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1c7f1613d2aaae728ef540305f6ba030616f86bd",
+ "sha256": "1g2ha6q9k6dmi63i2p4aypwf5mha699wr7yy5dsck39mqk15hx0f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0791452498719afb7409d1f723dbea2ec26d56f1",
+ "sha256": "1y16pah8f4jp117vihvlcwvsw2i85gdk45h9y9r1w9mslb24faac"
+ }
+ },
+ {
+ "ename": "egalgo",
+ "commit": "904fac56b9acc8218d0a61ce9953a29f146bb57a",
+ "sha256": "1dhy3m546grpmxwfnvkgpd0hbh9iydag7n5a6arm7ik7sglb9jvd",
+ "fetcher": "github",
+ "repo": "ROCKTAKEY/egalgo",
+ "unstable": {
+ "version": [
+ 20190706,
+ 1611
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "e683b16ed4265ddb46efcc8cbf9503301cc39e22",
+ "sha256": "12nsbqrk7clr642kmbaa9xqgx7j2r6as6grx5qmghnp7kjfy1d7l"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "85c8c01c3424e69528f4111a384092dfa721196a",
+ "sha256": "0fdqzv111d37cbl5wzasrppkhkxqgk3aslac7bjpq7jpj5gabwr2"
+ }
+ },
+ {
+ "ename": "egg",
+ "commit": "a1c97870c2641d73685f07a12f010530cc186544",
+ "sha256": "144g1fvs2cmn3px0a98nvxl5cz70kx30v936k5ppyi8gvbj0md5i",
+ "fetcher": "github",
+ "repo": "byplayer/egg",
+ "unstable": {
+ "version": [
+ 20181126,
+ 500
+ ],
+ "commit": "00e768a78ac3d25f457eed667d02cac568480bf9",
+ "sha256": "1ak23v9gqj6x104mzgihn0hi7w0kr76q1sl929wmbb9h8s3a54q8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 4
+ ],
+ "commit": "00e768a78ac3d25f457eed667d02cac568480bf9",
+ "sha256": "1ak23v9gqj6x104mzgihn0hi7w0kr76q1sl929wmbb9h8s3a54q8"
+ }
+ },
+ {
+ "ename": "egg-timer",
+ "commit": "a8fbafbeec955fb9bb421519de1e3d09d9812c66",
+ "sha256": "1q3l8hxymk3vxa0nf8pydy4k9qnbzzzpgkp86c9d744smal5xn3v",
+ "fetcher": "github",
+ "repo": "wpcarro/egg-timer.el",
+ "unstable": {
+ "version": [
+ 20200217,
+ 1650
+ ],
+ "commit": "e3542aeb80905956b94373a222a9cbac04e6497e",
+ "sha256": "0pq6ni2kvdps7j8pdlv16cka198sv29axp9xrp7c755k82pydhk4"
+ }
+ },
+ {
+ "ename": "egison-mode",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "0bch4863l9wxrss63fj46gy3nx3hp635709xr4c2arw0j7n82lzd",
+ "fetcher": "github",
+ "repo": "egison/egison",
+ "unstable": {
+ "version": [
+ 20200107,
+ 2333
+ ],
+ "commit": "54b0f51a103e4c12515cd814e3bc6be67c3da966",
+ "sha256": "1yvf4qns69smcg6vbb6l25g8dnai5da827qpd8f6pg3qp8w1q5wc"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 3
+ ],
+ "commit": "64665dba315f5b70b3ce2045a42f6059d7b858de",
+ "sha256": "0z41p0aqz4bqvx885vy7hqny8ni8q2nrk7bhwazwymnhnzq52bjp"
+ }
+ },
+ {
+ "ename": "eglot",
+ "commit": "6c644530eca56f93d94fac2c9d7663c35c2b8c01",
+ "sha256": "17w39hcgv4p49g841qaicjdx7xac72yxvsc83jf1rrakg713pj7y",
+ "fetcher": "github",
+ "repo": "joaotavora/eglot",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1810
+ ],
+ "deps": [
+ "eldoc",
+ "flymake",
+ "jsonrpc",
+ "project",
+ "xref"
+ ],
+ "commit": "5f873d288e1c5434c1640bef03555ed056cb0d35",
+ "sha256": "1rdfrw6qcbkl7bnjsfrzz6ndbr6lk0s4ldyqwv48k1nvlk9jc796"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "deps": [
+ "flymake",
+ "jsonrpc"
+ ],
+ "commit": "e02479a8c20cd79c3dfeb553deaaecd7d6e97e51",
+ "sha256": "13r1ysdhnxkc025wypwi6w507v18hm5qf0x29qrycql46f8klrjb"
+ }
+ },
+ {
+ "ename": "eglot-jl",
+ "commit": "5f04bf5d68dc12aa3f3fd66591d45cc894e59df6",
+ "sha256": "0ffbxzhx1fqgqlfk8gqdgyfsc98rqw7mbrdd99qx9gds1pzzx4r8",
+ "fetcher": "github",
+ "repo": "non-Jedi/eglot-jl",
+ "unstable": {
+ "version": [
+ 20200726,
+ 741
+ ],
+ "deps": [
+ "eglot",
+ "julia-mode"
+ ],
+ "commit": "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9",
+ "sha256": "1g3k3ym0hx97dk3sv1kz3vq0p1s1zw6r34ynhwm31y954miwyvm4"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "deps": [
+ "eglot",
+ "julia-mode"
+ ],
+ "commit": "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9",
+ "sha256": "1g3k3ym0hx97dk3sv1kz3vq0p1s1zw6r34ynhwm31y954miwyvm4"
+ }
+ },
+ {
+ "ename": "ego",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "09k33ggc6n7wgykaawbmh6hyrl9dqp0azaq9zcjhjbc88nszj7fj",
+ "fetcher": "github",
+ "repo": "emacs-china/EGO",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1101
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "htmlize",
+ "mustache",
+ "org"
+ ],
+ "commit": "211c4cb2af2582849d9df984fb2346deecaf79be",
+ "sha256": "0sk3mn1gxb826x69s6hlkrzgj8irs9sh3anfazryibw7i61p9cbj"
+ }
+ },
+ {
+ "ename": "eide",
+ "commit": "1dd52b48fbac25ee2873645d87a1238351a6ff74",
+ "sha256": "1akmb48rpq05mmb022yh0qnjlbs1wx5x6f1gk2kw5fb5g45swb0c",
+ "fetcher": "git",
+ "url": "https://forge.tedomum.net/eide/eide.git",
+ "unstable": {
+ "version": [
+ 20200702,
+ 2009
+ ],
+ "commit": "b1dfdaf06b00409250135cb1000beac60c7f659b",
+ "sha256": "17wzffhqnd65c94qcxlwmb4qyw44kq39hvkqlwpxx8g4wj0lql3j"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 0
+ ],
+ "commit": "93b7f4e6013f378f387586011b6389f7ae366bbc",
+ "sha256": "04hsk0dbnv4viypq6x5wrg1dd0q35ihb5lvk74r1h508s6ngbvyd"
+ }
+ },
+ {
+ "ename": "eimp",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "00g77bg49m38cjfbh17ccnmksz05qx7yvgl6i4i4hysbr2d8pgxd",
+ "fetcher": "github",
+ "repo": "nicferrier/eimp",
+ "unstable": {
+ "version": [
+ 20120826,
+ 2039
+ ],
+ "commit": "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f",
+ "sha256": "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"
+ }
+ },
+ {
+ "ename": "ein",
+ "commit": "215e163755fe391ce1f049622e7b9bf9a8aea95a",
+ "sha256": "14blq1cbrp00rq0ilk7z9qppqfj0r4n3jidw3abcpchvh5ln086r",
+ "fetcher": "github",
+ "repo": "millejoh/emacs-ipython-notebook",
+ "unstable": {
+ "version": [
+ 20200812,
+ 230
+ ],
+ "deps": [
+ "anaphora",
+ "dash",
+ "deferred",
+ "exec-path-from-shell",
+ "polymode",
+ "request",
+ "websocket",
+ "with-editor"
+ ],
+ "commit": "99a4718f50538a439a2a3f2011d1aa97246e259b",
+ "sha256": "0qi012pbyj1zdj7h0y3r26ijf80046827ln079v1q9hgkz9ipaam"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 16,
+ 2,
+ 3
+ ],
+ "deps": [
+ "auto-complete",
+ "dash",
+ "deferred",
+ "markdown-mode",
+ "polymode",
+ "request",
+ "s",
+ "skewer-mode",
+ "websocket"
+ ],
+ "commit": "42f8efc54bfb915248972490a4b438b8d5bda381",
+ "sha256": "0jnqi8pq83s8q0dy2y1518yz8lsc0graqrqf8frss21fcj7ny22g"
+ }
+ },
+ {
+ "ename": "ein-mumamo",
+ "commit": "bd8fcf7f6332f94dc37697f9412c8043da8d4f76",
+ "sha256": "029sk90xz9fhv2s56f5hp0aks1d6ybz517009vv4892bbzkpjv1w",
+ "fetcher": "github",
+ "repo": "millejoh/ein-mumamo",
+ "unstable": {
+ "version": [
+ 20150302,
+ 28
+ ],
+ "deps": [
+ "ein"
+ ],
+ "commit": "028fefec499598add1a87b92ed991891f38f0c7b",
+ "sha256": "1w0b3giy9ca35pp2ni4afnqas64a2vriilab7jiw9anp3ryh6570"
+ }
+ },
+ {
+ "ename": "eink-theme",
+ "commit": "a1349c3f93ab60983f77c28f97048fa258b612a6",
+ "sha256": "0z437cpf1b8bqyi7bv0w0dnc52q4f5g17530lwdcxjkr38s9b1zn",
+ "fetcher": "github",
+ "repo": "maio/eink-emacs",
+ "unstable": {
+ "version": [
+ 20190219,
+ 858
+ ],
+ "commit": "326b07523dcb076d6209cdbc7fdbb73df296dbdb",
+ "sha256": "1s5w45p0in2ljrbhc7nsc0ppff5wybzwrwv60z1a6dnd8d679qfj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "93d25c097b105594472c4f99d693f439b4b709f0",
+ "sha256": "0m7qsk378c30fva2n2ag99rsdklx5nsqc395msg1ab11sbpxvis0"
+ }
+ },
+ {
+ "ename": "ejc-sql",
+ "commit": "e01655679087504db1206b22435ba8eb7050aa23",
+ "sha256": "13i55l6hwsxbmdxmvh6aajayivgskw4iagmj9in1qkd9rnrykhn9",
+ "fetcher": "github",
+ "repo": "kostafey/ejc-sql",
+ "unstable": {
+ "version": [
+ 20200809,
+ 1221
+ ],
+ "deps": [
+ "clomacs",
+ "dash",
+ "direx",
+ "spinner"
+ ],
+ "commit": "c99825ce67c142b38a8d3edec444593e29d48b44",
+ "sha256": "0fwkaz5cacfmgchl0xyb82bqc20fbvl1kk14m5mvydhjqaam7r45"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "clomacs",
+ "dash",
+ "direx",
+ "spinner"
+ ],
+ "commit": "ddbae7be2aed9c273d9d570c542936f1faa3088f",
+ "sha256": "1gvbw4iqnsbs6fj713gjd9s0l1xxqmvq98ixsh59p0wh68a1nhhl"
+ }
+ },
+ {
+ "ename": "ejson-mode",
+ "commit": "f932205e18fa8955ecaf439306a0bf3c411ee8d4",
+ "sha256": "1mimixdaldkd8kswhrrvs4v126nyf7zhh1j5ynyrdmg33m0mir1m",
+ "fetcher": "github",
+ "repo": "dantecatalfamo/ejson-mode",
+ "unstable": {
+ "version": [
+ 20190720,
+ 2138
+ ],
+ "commit": "9630dfac9549779711dbe89e621f516bb4b3a354",
+ "sha256": "1j4v34m7jfiivbpps2pdvzl9q2gwj7rzcna9x93pj0qkw1xaqc3l"
+ }
+ },
+ {
+ "ename": "el-autoyas",
+ "commit": "cc4845343dbb8f8294394f6850788e4f1fe6b99b",
+ "sha256": "0hh5j79f3z82nmb3kqry8k8lgc1qswk6ni3g9jg60pasc3wkbh6c",
+ "fetcher": "github",
+ "repo": "mattfidler/el-autoyas.el",
+ "unstable": {
+ "version": [
+ 20120918,
+ 1317
+ ],
+ "commit": "bde0251ecb504f585dfa27c205c8e312655310cc",
+ "sha256": "0dbp2zz993cm7mrd58c4iflbzqwg50wzgn2cpwfivk14w1mznh4n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "bde0251ecb504f585dfa27c205c8e312655310cc",
+ "sha256": "0dbp2zz993cm7mrd58c4iflbzqwg50wzgn2cpwfivk14w1mznh4n"
+ }
+ },
+ {
+ "ename": "el-fly-indent-mode",
+ "commit": "237311b98eec4b577409f55e16d8e640936d41a2",
+ "sha256": "00iqiawbzijm515lswbkzxf1m6ys242xrg6lzf8k40g2ygyd1q1r",
+ "fetcher": "github",
+ "repo": "jiahaowork/el-fly-indent-mode.el",
+ "unstable": {
+ "version": [
+ 20180422,
+ 243
+ ],
+ "commit": "4917f486a7be7482dedfea0a7ac3d01cab4ce21c",
+ "sha256": "19ap5l2i0ydkl2whzy44rxc8cgjgrrwi4w7i429ga3pjkac9170g"
+ }
+ },
+ {
+ "ename": "el-get",
+ "commit": "1c61197a2b616d6d3c6b652248cb166196846b44",
+ "sha256": "1438v2sw5n67q404c93y2py226v469nagqwp4w9l6yyy40h4myhz",
+ "fetcher": "github",
+ "repo": "dimitri/el-get",
+ "unstable": {
+ "version": [
+ 20181006,
+ 225
+ ],
+ "commit": "3b5e48ba4a4dca5c91610e2eb607a8bbb725a6ab",
+ "sha256": "1kx0c3wgij66hhryb9ggf8c975406vb9a9m6z4yrsrrisyc2ljgk"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 1
+ ],
+ "commit": "bfffd553f4c72b818e9ee94f05458eae7a16056b",
+ "sha256": "1awyh9ffd6a4cia239s89asb88ddqlnrv757d76vcb701pq412bz"
+ }
+ },
+ {
+ "ename": "el-init",
+ "commit": "f0c18cc62ffaaf839284ed7b261cc6f375fab813",
+ "sha256": "121n6z8p9kzi7axp4i2kyi621gw20635w4j81i1bryblaqrv5kl5",
+ "fetcher": "github",
+ "repo": "HKey/el-init",
+ "unstable": {
+ "version": [
+ 20150728,
+ 920
+ ],
+ "deps": [
+ "anaphora",
+ "cl-lib"
+ ],
+ "commit": "747acd434aa6f50a599efe5f6e96dea2dfed79d6",
+ "sha256": "0nyllimsrghwd1vkmal1c58g1nx4djyvjfmylhqidx4h79gkryxm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "anaphora",
+ "cl-lib"
+ ],
+ "commit": "25fd21d820bca1cf576b8f70c8d5a3bc76792597",
+ "sha256": "1mzla7ijmq1mgzr6bf16mjdycbf8ylsf4zdk4j6fh5kw5n4k6c5n"
+ }
+ },
+ {
+ "ename": "el-init-viewer",
+ "commit": "f90e6be757783352c4a7732177ff2e2c0a066247",
+ "sha256": "0kkmsml9xf2n8nlrcicfg2l78s3dlhd6ssx0s62v77v4wdpl297m",
+ "fetcher": "github",
+ "repo": "HKey/el-init-viewer",
+ "unstable": {
+ "version": [
+ 20150303,
+ 828
+ ],
+ "deps": [
+ "anaphora",
+ "cl-lib",
+ "ctable",
+ "dash",
+ "el-init"
+ ],
+ "commit": "7c0169d356d6c007317e253e5776e1e48a60d6ad",
+ "sha256": "0w2mxppkx6306kyxaw00fzv8q745iklcm41iswmflr2585h2adnq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "anaphora",
+ "cl-lib",
+ "ctable",
+ "dash",
+ "el-init"
+ ],
+ "commit": "dcc595ba51b5aff972292278aa528c7ddb46f1b5",
+ "sha256": "1488wv0f9ihzzf9fl8cki044k61b0kva604hdwpb2qk9gnjr4g1l"
+ }
+ },
+ {
+ "ename": "el-mock",
+ "commit": "b1989beb927657c0ff7e79fe448f62ac58c11be7",
+ "sha256": "07m7w7n202nijnxidy0j0r4nbcvlnbkm9b0n8qb2bwi3d4cfp77l",
+ "fetcher": "github",
+ "repo": "rejeep/el-mock.el",
+ "unstable": {
+ "version": [
+ 20170824,
+ 1954
+ ],
+ "commit": "5df1d3a956544f1d3ad0bcd81daf47fff33ab8cc",
+ "sha256": "06ldnrpqvbdxfzr8v7pj9xacgvkp36xjlhvjkpxldmqj1l5v8a6w"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 25,
+ 1
+ ],
+ "commit": "3069931de75bb6704ecf565af5390009dc4dae00",
+ "sha256": "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"
+ }
+ },
+ {
+ "ename": "el-patch",
+ "commit": "2f4f57e0edbae35597aa4a7744d22d2f971d5de5",
+ "sha256": "1imijmsni8c8fxjrzprnanf94c1pma3h5w9p75c4y99l8l3xmj7g",
+ "fetcher": "github",
+ "repo": "raxod502/el-patch",
+ "unstable": {
+ "version": [
+ 20200716,
+ 1428
+ ],
+ "commit": "ff1951d776f80d2fd4a0cd9a0c930182fbb57b3c",
+ "sha256": "1f783xapqa6zigg0gqayxsf8lfkldng8r4ns9x04rqg9vmhkxmk0"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 1
+ ],
+ "commit": "ff1951d776f80d2fd4a0cd9a0c930182fbb57b3c",
+ "sha256": "1f783xapqa6zigg0gqayxsf8lfkldng8r4ns9x04rqg9vmhkxmk0"
+ }
+ },
+ {
+ "ename": "el-spec",
+ "commit": "407e344bf4e4b3885ebb7df02ebb37feee5e2515",
+ "sha256": "017syizs8qw5phwvpzzffzdnj6rh9q4n7s51qjvj8qfb3088igkh",
+ "fetcher": "github",
+ "repo": "uk-ar/el-spec",
+ "unstable": {
+ "version": [
+ 20121018,
+ 704
+ ],
+ "commit": "1dbc465401d4aea5560318c4f13ff30920a0718d",
+ "sha256": "1lsq7980pwcwlg7z37hrig8ddm9nyvaqrlczv1w0vy631vc5z2az"
+ }
+ },
+ {
+ "ename": "el-spice",
+ "commit": "4666eee9f6837d6d9dba77e04aa4c8c4a93b47b5",
+ "sha256": "0i0l3y9w1q9pf5zhvmsq4h427imix67jgcfwq21b6j82dzg5l4hg",
+ "fetcher": "github",
+ "repo": "vedang/el-spice",
+ "unstable": {
+ "version": [
+ 20180128,
+ 1721
+ ],
+ "commit": "4e0852ebf5d8e9cbb3eaaa6ae9c53d126b53f58c",
+ "sha256": "08mkn4qfxax3fgppw79117phm05hihifwj4pgll9ivrilbf75lb8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "972dace20ec61cd27b9322432d0c7a688c6f061a",
+ "sha256": "1wrb46y4s4v0lwwyriz2qn1j1l804jyb4dmadf462jxln85rml70"
+ }
+ },
+ {
+ "ename": "el-sprunge",
+ "commit": "547209532faf45b35b55350783ccee532ce2bcbb",
+ "sha256": "0rb1cr7zrfl1s5prxy3xwdqgnm8ddw33pcvk049km2qbccb08v6a",
+ "fetcher": "github",
+ "repo": "eschulte/el-sprunge",
+ "unstable": {
+ "version": [
+ 20200312,
+ 1212
+ ],
+ "deps": [
+ "htmlize",
+ "web-server"
+ ],
+ "commit": "e4365ea0bdf60969817619376bdcc98003fec33d",
+ "sha256": "13d2dr5r9nv97ma3abcnhqgq86rqwqlwvq64z3hm0qibsxxajdhq"
+ }
+ },
+ {
+ "ename": "el-spy",
+ "commit": "7a90318a38c35e648152ec5fb2dd86c432af9553",
+ "sha256": "1bgv4mgsnkmjdyay7lhkqdszvnwpjy4dxxw11kq45w866ba8645n",
+ "fetcher": "github",
+ "repo": "uk-ar/el-spy",
+ "unstable": {
+ "version": [
+ 20131226,
+ 2008
+ ],
+ "commit": "b1dead9d1877660856ada22d906ac4e54695aec7",
+ "sha256": "016l3inzb7dby0w58najj2pvymwk6gllsxvqj2fkz3599i36p1pn"
+ }
+ },
+ {
+ "ename": "el-x",
+ "commit": "0346f6349cf39a0414cd055b06d8ed193f4972d4",
+ "sha256": "1721d9mljlcbdwb5b9934q7a48y30x6706pp4bjvgys0r64dml5g",
+ "fetcher": "github",
+ "repo": "sigma/el-x",
+ "unstable": {
+ "version": [
+ 20140111,
+ 2201
+ ],
+ "commit": "e7c333d4fc31a90f4dca951efe21129164b42605",
+ "sha256": "00wp2swrmalcifx9fsvhz9pgbf6ixvn8dpz1lq6k6pj9h24pq7wh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "commit": "e96541c1f32e0a3aca4ad0a0eb382bd898250163",
+ "sha256": "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"
+ }
+ },
+ {
+ "ename": "el2markdown",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1bpfddcvg9wgc5g14clj6wyiw8rsh45rgibvlmyan2m0gmwvmqx6",
+ "fetcher": "github",
+ "repo": "Lindydancer/el2markdown",
+ "unstable": {
+ "version": [
+ 20170630,
+ 1858
+ ],
+ "commit": "368d99313683cd943c99feaffca356be60bdb636",
+ "sha256": "1h0cr8qcvj9r3acb6bf5nyglvi5gdglwflkfl5jbzp0nm1p9iqcg"
+ }
+ },
+ {
+ "ename": "el2org",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "02kyvzpjws2mrp414i4zm4fmrnzgkaax6bnrlyhp17a8aqaggbnh",
+ "fetcher": "github",
+ "repo": "tumashu/el2org",
+ "unstable": {
+ "version": [
+ 20200408,
+ 146
+ ],
+ "commit": "7db77fdd73f378d4e60e34c11bbdf00677adc32c",
+ "sha256": "196nrg4cp57calv36if0fkc8bjiz6qzisr29ry49zmkgjlqaafq3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "commit": "4a33469cd305e581603d7ef63bc2a1f2156f2e2e",
+ "sha256": "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"
+ }
+ },
+ {
+ "ename": "elbank",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1i1cdywcbdj9ykfczbagrqdpgf3c88f1kc0mdlj8mzyvjixx7mhk",
+ "fetcher": "github",
+ "repo": "NicolasPetton/elbank",
+ "unstable": {
+ "version": [
+ 20180316,
+ 1343
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "fa9bc7dec0a8fd489e90b9f178719344cc8d315a",
+ "sha256": "08jxxkbgn2z4kvqkhbimf3lj999yxmyi14wpq8wgbhgcf6q6zx8a"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "f494716105b1a9f4f52f43bc3dd37c9cd0309bf5",
+ "sha256": "0bvx6nq0gjjbjs0mzd1x1ajyjpa181z0n4kv4aknh3is210gbpbb"
+ }
+ },
+ {
+ "ename": "elcontext",
+ "commit": "12bcb0bfc89c1f235e4ac5d7e308e41905725dc6",
+ "sha256": "1firdsrag7r02qb3kjxc3j8l9psvh117z3qwycazhxdz82z0isw7",
+ "fetcher": "github",
+ "repo": "rollacaster/elcontext",
+ "unstable": {
+ "version": [
+ 20180526,
+ 1304
+ ],
+ "deps": [
+ "f",
+ "ht",
+ "hydra",
+ "osx-location",
+ "uuidgen"
+ ],
+ "commit": "f434ffc655e6349a4dd52285ff68a9194bcfc949",
+ "sha256": "0gbbnx969asq73ypc5lp4qpi4iwwfzm1mmxb1fdifl2lf18p8qwv"
+ }
+ },
+ {
+ "ename": "elcord",
+ "commit": "cf2c52366a8f60b68a33a40ea92cc96e7f0933d2",
+ "sha256": "0a1f99mahaixx6j3lylc7w2zlq8f614m6xhd0x927afv3a6n50l6",
+ "fetcher": "github",
+ "repo": "Mstrodl/elcord",
+ "unstable": {
+ "version": [
+ 20200611,
+ 2314
+ ],
+ "commit": "01b26d1af2f33a7c7c5a1c24d8bfb6d40115a7b0",
+ "sha256": "1lj87zfcvmzm34rlq5s4y4x2nwckwg5qxlhlgl4qry3bf16bmkcf"
+ }
+ },
+ {
+ "ename": "elcouch",
+ "commit": "b5d9a35dd5a272a592d248993ea7e5dda8fdf0ab",
+ "sha256": "1dp7chvnz6gadqgyqbvdxpva3hm3sx60izsa690mp2rifjyxgqf1",
+ "fetcher": "github",
+ "repo": "DamienCassou/elcouch",
+ "unstable": {
+ "version": [
+ 20190820,
+ 1641
+ ],
+ "deps": [
+ "json-mode",
+ "libelcouch",
+ "navigel"
+ ],
+ "commit": "8e1b7ddec91ae863c3951776a0fcbfead8ca7a80",
+ "sha256": "07psfjynphzpm5jgajf31cigs5jyj8qnq491xrk88jvxm63sq55c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "json-mode",
+ "libelcouch"
+ ],
+ "commit": "d22e8cab9328966b2e2d5bc4fc17a4abbb222736",
+ "sha256": "0l9ah3ijlidjshwkazfcdasm3hmigw8dcyqgi9pmpv0kw9096y64"
+ }
+ },
+ {
+ "ename": "eldev",
+ "commit": "dd7ae513905a4e4cc23078239ecf2d5f346f1226",
+ "sha256": "11vxhssii5h5c3qm8iwg8d5zrxas3nzl391h9dl83v9h1pg98kg1",
+ "fetcher": "github",
+ "repo": "doublep/eldev",
+ "unstable": {
+ "version": [
+ 20200815,
+ 2332
+ ],
+ "commit": "ae353301c15b15930b0a83807275ed58a3be82e6",
+ "sha256": "0l1ac2ll2127wn6nlrpvxzk38xb74rb8bmp6c5sjh79hnjr04zh5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "commit": "8440e797f0dcaf7bf6da2a7573a7b07c4ea9da82",
+ "sha256": "16g68lgd5lp3rdskym4xnkvsm6953xgx48yah8zs5fpk4qny212r"
+ }
+ },
+ {
+ "ename": "eldoc-box",
+ "commit": "aac2e64f9e0d06b95bdf0dece214263f75470ea8",
+ "sha256": "11720hi2gvjwc4x2yrxnrhh76wf3sj3yd0vaa3sc22xa5g1wi40r",
+ "fetcher": "github",
+ "repo": "casouri/eldoc-box",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1956
+ ],
+ "commit": "c1a1b77ec0c7fff9ecf7122d10dcd16eebcd3829",
+ "sha256": "1gg3gxw5ks4fds7lgl9mqxyb2qjrdsdwyyc183nfz6aq0m4w91yb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9,
+ 1
+ ],
+ "commit": "8aa2b6d35a557864ff64762774fd5b4960cbeff0",
+ "sha256": "08h42a3mrhcn4qi77fz2s8yz5sbsfcm8vxyc707lhj8cvl8qp9c2"
+ }
+ },
+ {
+ "ename": "eldoc-cmake",
+ "commit": "e19f92097e6003a893907aa46a2df755d2bf0b87",
+ "sha256": "1y47zhxgisvsk0kgvlwrlspmjb2a6wrxwkiahxp9fkdc58r9w7v0",
+ "fetcher": "github",
+ "repo": "ikirill/eldoc-cmake",
+ "unstable": {
+ "version": [
+ 20190419,
+ 2244
+ ],
+ "commit": "4453c03b5c95ff32842f13db2fc317fb0fe2f79e",
+ "sha256": "01jhfglj1v4p3qmhiri4k05p0dg10k59pj5608hjls6zsmxf2wbg"
+ }
+ },
+ {
+ "ename": "eldoc-eval",
+ "commit": "63ba2004d3db4c5a71676dca82ad880328cf6073",
+ "sha256": "0z4scgi2xgrgd47aqqmyv1ww8alh43s0qny5qmh3f1nnppz3nd7c",
+ "fetcher": "github",
+ "repo": "thierryvolpiatto/eldoc-eval",
+ "unstable": {
+ "version": [
+ 20190423,
+ 1858
+ ],
+ "commit": "a67fe3637378dcb6c5f9e140acc8131f0d2346b3",
+ "sha256": "0504yyzxp1rk0br6f25395n4aa4w8ixf59vqxxb55a7agxplfpjc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "deca5e39f31282a06531002d289258cd099433c0",
+ "sha256": "1fh9dx669czkwy4msylcg64azz3az27akx55ipnazb5ghmsi7ivk"
+ }
+ },
+ {
+ "ename": "eldoc-overlay",
+ "commit": "f865b248002d6d3ba9653c2221072a4aa54cd740",
+ "sha256": "0nn6i89xbw8vkd5ybsnc1zpnf3ra4s8pf01jdj2i59ayjs64s28x",
+ "fetcher": "github",
+ "repo": "stardiviner/eldoc-overlay",
+ "unstable": {
+ "version": [
+ 20200715,
+ 1214
+ ],
+ "deps": [
+ "inline-docs",
+ "quick-peek"
+ ],
+ "commit": "563ca285a510d1cbd5129cc3a8f8a3cdded065de",
+ "sha256": "1llh93rlvzsl9m2f7gprb5rbbf2ghysyn1balb8clb64hq98gjyb"
+ }
+ },
+ {
+ "ename": "eldoc-stan",
+ "commit": "e4ae4feacc7d83ad2acc8db83cf6339b6c63ec3e",
+ "sha256": "0ah6fbz039lyb9xf4q379h7y0df18r1vyri6nq3lmhj3zw3042n1",
+ "fetcher": "github",
+ "repo": "stan-dev/stan-mode",
+ "unstable": {
+ "version": [
+ 20200221,
+ 2025
+ ],
+ "deps": [
+ "stan-mode"
+ ],
+ "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+ "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
+ },
+ "stable": {
+ "version": [
+ 10,
+ 1,
+ 0
+ ],
+ "deps": [
+ "stan-mode"
+ ],
+ "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
+ "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+ }
+ },
+ {
+ "ename": "electric-case",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1ch108ljzg5xkk4pkfpfxm8v2yzqk79q3h2zhzzqhsydq7r07bdn",
+ "fetcher": "github",
+ "repo": "zk-phi/electric-case",
+ "unstable": {
+ "version": [
+ 20150417,
+ 1112
+ ],
+ "commit": "bac64e772107e3dc721a9819f63b9ebdc28a81f7",
+ "sha256": "0s4y1319sr4xc0k6h2zhzzxsx2kc3pc2m6saah18y4kip0hjyhr8"
+ }
+ },
+ {
+ "ename": "electric-operator",
+ "commit": "906cdf8647524bb76f644373cf8b65397d9053a5",
+ "sha256": "043bkpvvk42lmkll5jnz4q8i0m44y4wdxvkz6hiqhqcp1rv03nw2",
+ "fetcher": "github",
+ "repo": "davidshepherd7/electric-operator",
+ "unstable": {
+ "version": [
+ 20200410,
+ 928
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "f8454905a147045f25ab03da7aa6406e4f20cc64",
+ "sha256": "1x087fry0yx5sk9vvgqv1zh7fkpgzvykl14fzns1920sxacgms68"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "names"
+ ],
+ "commit": "21e6b84754118912768263a393442a7aefb4742b",
+ "sha256": "1bgz5vn4piax8jm0ixqlds0qj5my26zczaxs21fah11pwbdc0xyk"
+ }
+ },
+ {
+ "ename": "electric-spacing",
+ "commit": "a78c0044f8b7a0df1af1aba407be4d7865c98c59",
+ "sha256": "0fcsz9wmibqp6ci0pa5r4gzlrsyj5klajxpgfksa0nfj3dc94cvg",
+ "fetcher": "github",
+ "repo": "xwl/electric-spacing",
+ "unstable": {
+ "version": [
+ 20200607,
+ 1405
+ ],
+ "commit": "f039011edb922cdc56c1d2bd0e49bb4575c35ab3",
+ "sha256": "1qfjk928y8bnx2ksciv0f0ackahj78x3qsr84m9qcvsvlg9cql5p"
+ }
+ },
+ {
+ "ename": "elein",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "01y5yrmm3biyrfgnl3qjfpn1xvjk2nabwjr8cls53ds697qpz5x2",
+ "fetcher": "github",
+ "repo": "remvee/elein",
+ "unstable": {
+ "version": [
+ 20120120,
+ 1116
+ ],
+ "commit": "d4c0c0491dbb7c90e953d7a16172107c37103605",
+ "sha256": "1ijrhm9vrzh5wl1rr9ayl11dwm05bh1i43fnbz3ga58l6whgkfpw"
+ }
+ },
+ {
+ "ename": "elf-mode",
+ "commit": "368d1ff91f310e5ffe68f872ab0a91584a41a66e",
+ "sha256": "0xwpaqg4mc0a0d8a4dxbd1sqzvi01gfhwr75f7i3sjzx0fj8vcwd",
+ "fetcher": "github",
+ "repo": "abo-abo/elf-mode",
+ "unstable": {
+ "version": [
+ 20161009,
+ 748
+ ],
+ "commit": "cd280d683cd3341d8bb31af6db7e3b74a133e6ab",
+ "sha256": "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "cd280d683cd3341d8bb31af6db7e3b74a133e6ab",
+ "sha256": "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"
+ }
+ },
+ {
+ "ename": "elfeed",
+ "commit": "407ae027fcec444622c2a822074b95996df9e6af",
+ "sha256": "1psga7fcjk2b8xjg10fndp9l0ib72l5ggf43gxp62i4lxixzv8f9",
+ "fetcher": "github",
+ "repo": "skeeto/elfeed",
+ "unstable": {
+ "version": [
+ 20200716,
+ 1921
+ ],
+ "commit": "8fb09ad75f2ff7d6f7d8b8d1ac65b9be873cc31d",
+ "sha256": "0rs32xvpwky37y18wr6maqbkncijia7yvmbrsngbhgdpzdvijp7v"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 3,
+ 0
+ ],
+ "commit": "9b5a0ce648cdaa59f7c96414ee868038e08ea29d",
+ "sha256": "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"
+ }
+ },
+ {
+ "ename": "elfeed-goodies",
+ "commit": "e6ebb8d23961fd9bfe101f7917caa3b405493f31",
+ "sha256": "0zpk6nx757hasgzcww90fzkcdn078my33p7yax7xslvi4msm37bi",
+ "fetcher": "github",
+ "repo": "algernon/elfeed-goodies",
+ "unstable": {
+ "version": [
+ 20190128,
+ 1631
+ ],
+ "deps": [
+ "ace-jump-mode",
+ "cl-lib",
+ "elfeed",
+ "noflet",
+ "popwin",
+ "powerline"
+ ],
+ "commit": "95b4ea632fbd5960927952ec8f3394eb88da4752",
+ "sha256": "0mfigkp77acqlnkj07vjzbcamwxp37zqxramp1qdf95psnz177q7"
+ }
+ },
+ {
+ "ename": "elfeed-org",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0rnxr2q2ib6xrdx41ams1z2ivw5zhcsmqdylyvbw62h20rlmlgm8",
+ "fetcher": "github",
+ "repo": "remyhonig/elfeed-org",
+ "unstable": {
+ "version": [
+ 20181015,
+ 1100
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "elfeed",
+ "org",
+ "s"
+ ],
+ "commit": "77b6bbf222487809813de260447d31c4c59902c9",
+ "sha256": "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"
+ }
+ },
+ {
+ "ename": "elfeed-protocol",
+ "commit": "3f1eef8add7cd2cfefe6fad6d8e69d65696e9677",
+ "sha256": "1gd2ny764qsnnqf3j7rbdqhh7hqd5c0fzwxx6wacd0dpbq4w56qi",
+ "fetcher": "github",
+ "repo": "fasheng/elfeed-protocol",
+ "unstable": {
+ "version": [
+ 20200526,
+ 341
+ ],
+ "deps": [
+ "cl-lib",
+ "elfeed"
+ ],
+ "commit": "c5a928d4217060a49444d80d2fd54282d32a12a5",
+ "sha256": "0zky2iqkpckaq8c1fyhw9drdnmnyapix8jw46p6jvspljb9vwzkb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 8
+ ],
+ "deps": [
+ "cl-lib",
+ "elfeed"
+ ],
+ "commit": "c5a928d4217060a49444d80d2fd54282d32a12a5",
+ "sha256": "0zky2iqkpckaq8c1fyhw9drdnmnyapix8jw46p6jvspljb9vwzkb"
+ }
+ },
+ {
+ "ename": "elfeed-score",
+ "commit": "e981f8adeb5015d966e733496280d5cea457228d",
+ "sha256": "0jag1ksmnql61303a51i2lizd2yk4cjlsm2hksqqjk46cwv2cvl7",
+ "fetcher": "github",
+ "repo": "sp1ff/elfeed-score",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1547
+ ],
+ "deps": [
+ "cl-lib",
+ "elfeed"
+ ],
+ "commit": "0551993338c5d41386eccd47cc2f1b382a1b29c3",
+ "sha256": "0hgdsvi4l9k978kcx8gmbqkdi7q3qj70cg697fqky0cmcpykhcbq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "elfeed"
+ ],
+ "commit": "916c47b3590b2ff3c5075dcc1def4b36a4b14947",
+ "sha256": "1vhchbyy3c79cgvdz12wnryklr5g1bwh02d604zj2wca3b0199w4"
+ }
+ },
+ {
+ "ename": "elfeed-web",
+ "commit": "62459d16ee44d5fcf170c0ebc981ca2c7d4672f2",
+ "sha256": "14ydwvjjc6wbhkj4g4xdh0c3nh4asqsz8ln7my5vjib881vmaq1n",
+ "fetcher": "github",
+ "repo": "skeeto/elfeed",
+ "unstable": {
+ "version": [
+ 20191123,
+ 1738
+ ],
+ "deps": [
+ "elfeed",
+ "simple-httpd"
+ ],
+ "commit": "8fb09ad75f2ff7d6f7d8b8d1ac65b9be873cc31d",
+ "sha256": "0rs32xvpwky37y18wr6maqbkncijia7yvmbrsngbhgdpzdvijp7v"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 3,
+ 0
+ ],
+ "deps": [
+ "elfeed",
+ "simple-httpd"
+ ],
+ "commit": "9b5a0ce648cdaa59f7c96414ee868038e08ea29d",
+ "sha256": "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"
+ }
+ },
+ {
+ "ename": "elgrep",
+ "commit": "0d9ab623b2d634936a79ff6f4b98b31825d44b6d",
+ "sha256": "0b8dma52zv57sh1jbrabfy6k5lzixs7f541s8dsqyrg0fzlq460j",
+ "fetcher": "github",
+ "repo": "TobiasZawada/elgrep",
+ "unstable": {
+ "version": [
+ 20191203,
+ 1227
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "c475cee98bc607746901318ef9da463c96d5e04e",
+ "sha256": "02jfpi8bvjxw5jnjjpzq87xf1xjly745k8s74jc9lpginip3kj95"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "c2c5858f335ac1d0013dc631e5bc2dc16d9b3198",
+ "sha256": "1rlj9cniwk8fzfn1i4apffrikv08r9c2dmwxhqc6nmrhfjr2rf1k"
+ }
+ },
+ {
+ "ename": "elhome",
+ "commit": "527cc08a3424f87fe2e99119b931530840ad07ba",
+ "sha256": "1k7936wxgslr29511dz9az38i9vi35rcxk68gzv35v9lpj89lalh",
+ "fetcher": "github",
+ "repo": "demyanrogozhin/elhome",
+ "unstable": {
+ "version": [
+ 20161025,
+ 2042
+ ],
+ "deps": [
+ "initsplit"
+ ],
+ "commit": "e789e806469af3e9705f72298683c21f6c3a516d",
+ "sha256": "1q9glli1czbfp62aalblaak55j8rj2nl8bm8nifnnb8jrzj1qrn0"
+ }
+ },
+ {
+ "ename": "elisp-def",
+ "commit": "1f027b844efdc5946d2ad80d7052a8f3b96aac3d",
+ "sha256": "1y29nsgjv9nb03g0jc5hb1a8k23r54ivdlv9h0a384cig8i91hsz",
+ "fetcher": "github",
+ "repo": "Wilfred/elisp-def",
+ "unstable": {
+ "version": [
+ 20200528,
+ 633
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "da1f76391ac0d277e3c5758203e0150f6bae0beb",
+ "sha256": "17zpil3zgi2j7a63lv5vas3ad6bvh45d9vnf2nb37z3id62rjdkd"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "5e0d766a5db537f4e7145c2053c22829d736ceba",
+ "sha256": "0l9az09yw40rr2xrvf01c3idfqplddr1kk880qscnzj8v9p06l4x"
+ }
+ },
+ {
+ "ename": "elisp-demos",
+ "commit": "e1bd1c7a4576d4874a8c5fc8ab2dbc65f0e5bc8c",
+ "sha256": "1571l826x8ixlqd3nkqgizkzrq37af13ihrm1rvgaf5gl0va9ik8",
+ "fetcher": "github",
+ "repo": "xuchunyang/elisp-demos",
+ "unstable": {
+ "version": [
+ 20200606,
+ 949
+ ],
+ "commit": "8c9748134f7c017ae1536dbd0b76434afb52e64d",
+ "sha256": "15gyhqnlppsswmmcknc3yfm6p7s2y06r2py656vh5vwhah7pcqxj"
+ },
+ "stable": {
+ "version": [
+ 2020,
+ 2,
+ 19
+ ],
+ "commit": "7cc5ae4eac5bd8f38ade9ba1c28ad6faaba82160",
+ "sha256": "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"
+ }
+ },
+ {
+ "ename": "elisp-depend",
+ "commit": "7ea159f0cc8c6e4b8483401a6e6687ab4ed73b7f",
+ "sha256": "0zpafwnm52g6v867f1ghfb492nnmm66imcwlhm5v9hhgwy3z17jm",
+ "fetcher": "github",
+ "repo": "emacsorphanage/elisp-depend",
+ "unstable": {
+ "version": [
+ 20190325,
+ 1114
+ ],
+ "commit": "6679da9a6be5a845bb4804224c8394a9bc62168f",
+ "sha256": "09xbrk1li76fwa85kvd5xpr0zswrkh51p7a62sb8g422wpaqxiwx"
+ }
+ },
+ {
+ "ename": "elisp-depmap",
+ "commit": "8c86ca9b1ad39282f965d36ec2a8df807cc0ebb1",
+ "sha256": "08qjrc3vrn18apnb856qd2m0wzza8755fbh8ly9nh58dlbjhkkd7",
+ "fetcher": "github",
+ "repo": "mtekman/elisp-depmap.el",
+ "unstable": {
+ "version": [
+ 20200714,
+ 1630
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "98676e6ffcc4efb70cc991e659c79cb599b01bc7",
+ "sha256": "0ybqbyv1jnjk25z6ys90d5lddd4qxqspn2xppkzvby21x634s2ry"
+ }
+ },
+ {
+ "ename": "elisp-docstring-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0mdh3ikn6zfd3fbmifvivqih2fsijvlzalljdvm32crs9cy6fa96",
+ "fetcher": "github",
+ "repo": "Fuco1/elisp-docstring-mode",
+ "unstable": {
+ "version": [
+ 20170304,
+ 1615
+ ],
+ "commit": "f512e509dd690f65133e55563ebbfd2dede5034f",
+ "sha256": "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"
+ }
+ },
+ {
+ "ename": "elisp-format",
+ "commit": "ff353f4228529c51577f7104cdf52c677be8a500",
+ "sha256": "1l0596y4yjn3jdyy6pgws1pgz6i12fxfy27566lmxklbxp8sxgy8",
+ "fetcher": "github",
+ "repo": "Yuki-Inoue/elisp-format",
+ "unstable": {
+ "version": [
+ 20160508,
+ 952
+ ],
+ "commit": "03cc293eb2f78ec58fc1d84279af06816a04b979",
+ "sha256": "17l2xsixx3p93dmx9jsg0a3xqdg19nwp1di2pymlg41pw0kdf3x3"
+ }
+ },
+ {
+ "ename": "elisp-lint",
+ "commit": "61595c78ac7f15eef47bf28636ad796f74741509",
+ "sha256": "13cxcn0qp63f2nkv37c3w47dby9cqm4l1f8xilgpczdaxd86kd63",
+ "fetcher": "github",
+ "repo": "gonewest818/elisp-lint",
+ "unstable": {
+ "version": [
+ 20200324,
+ 2217
+ ],
+ "deps": [
+ "dash",
+ "package-lint"
+ ],
+ "commit": "35a3fcc3131c243206fa914b8562cda771eab8c5",
+ "sha256": "09ibaq3mjnw3vm1rwrljdcgybxly2fk9gjdim39s9fpgar4ys12p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "package-lint"
+ ],
+ "commit": "2b645266be8010a6a49c6d0ebf6a3ad5bd290ff4",
+ "sha256": "1gg9ik0x67cnldzsclp45i7gf190y9pxl11k3grdkrkqjiph1375"
+ }
+ },
+ {
+ "ename": "elisp-refs",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "1pj3dm2z6m24179ibl7zhr8lhan2v2rjnm3abfciwp228piz1sfz",
+ "fetcher": "github",
+ "repo": "Wilfred/elisp-refs",
+ "unstable": {
+ "version": [
+ 20200815,
+ 2357
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "b3634a4567c655a1cda51b217629849cba0ac6a7",
+ "sha256": "1zy629gavyrwx5gmpz7l1a86hbrxjrfqik398v3ja8vg8bj9d6nq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "loop",
+ "s"
+ ],
+ "commit": "0b6fcdee29d8156ef37477f4e128a148e295c62b",
+ "sha256": "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"
+ }
+ },
+ {
+ "ename": "elisp-sandbox",
+ "commit": "4b0e7c52ff8034a1c0d1e5d7bc0c58f166986b28",
+ "sha256": "1bazm1cf9ghh9b7jzqqgyfcalnrfg7vmxqbn4fiy2c76gbzlr2bp",
+ "fetcher": "github",
+ "repo": "joelmccracken/elisp-sandbox",
+ "unstable": {
+ "version": [
+ 20131116,
+ 1842
+ ],
+ "commit": "d894d68934ef09c42f72ac4e1173a0bedc23f139",
+ "sha256": "0r70axda1piwxznksygby9vid49q4lzjwcrhx7gl5midjs961531"
+ }
+ },
+ {
+ "ename": "elisp-slime-nav",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "009zgp68i4naprpjr8lcp06lh3i5ickn0nh0lgvrqs0niprnzh8c",
+ "fetcher": "github",
+ "repo": "purcell/elisp-slime-nav",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2201
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9ab52362600af9f97f1590f05a295538025170b3",
+ "sha256": "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9ab52362600af9f97f1590f05a295538025170b3",
+ "sha256": "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"
+ }
+ },
+ {
+ "ename": "elixir-mode",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "0d25p6sal1qg1xsq5yk343afnrxa0lzpx5gsh72khnx2i8pi40vz",
+ "fetcher": "github",
+ "repo": "elixir-editors/emacs-elixir",
+ "unstable": {
+ "version": [
+ 20200723,
+ 1750
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "01b332495d3f44addeb236428041c4ffa0c2ca3b",
+ "sha256": "0qzzrvzpzj8vpdm8fw3sagp7bfps28l615hi67vnwp2car9a7f2y"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 1
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "a1f4d60ec555574c945201359d2e32b183c69f4b",
+ "sha256": "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"
+ }
+ },
+ {
+ "ename": "elixir-yasnippets",
+ "commit": "6c37a13d56e9a0a4e7e2c11349ed87610a0f6b2c",
+ "sha256": "0vmkcd88wfafv31lyw0983p4qjj387qf258q7py1ij47fcmfp579",
+ "fetcher": "github",
+ "repo": "hisea/elixir-yasnippets",
+ "unstable": {
+ "version": [
+ 20150417,
+ 1239
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "980ca7626c14ef0573bec0035ec7942796062783",
+ "sha256": "1sdq4372i19wdxpdp3347a1rf5zf5w6sa0da6lr511m7ri0lj6hd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "6b55c88ce483932f226b6bca0212b589d1d393ea",
+ "sha256": "0dx5h3sfccc2bp1jxnqqki95x5hp1skw8n5n4lnh703yjga5gkrz"
+ }
+ },
+ {
+ "ename": "ellocate",
+ "commit": "fac47d8b4937c714df7b61ce4914831bfd7fcd20",
+ "sha256": "1i31gr3hdl1mjqwkkrfb7x1dpddyxnl1n9l7p7jiqbg3nn85gsxx",
+ "fetcher": "github",
+ "repo": "walseb/ellocate",
+ "unstable": {
+ "version": [
+ 20200112,
+ 1931
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "81405082f68f0577c9f176d3d4f034a7142aba59",
+ "sha256": "0amzbazg53956h1h5ppxd9psr1d1fwvlpm27kpfvhw5ipqzp3ws4"
+ }
+ },
+ {
+ "ename": "elm-mode",
+ "commit": "5d1a4d786b137f61ed3a1dd4ec236d0db120e571",
+ "sha256": "1gw9szkyr1spcx7qijddhxlm36h0hmfd53b4yzp1336yx44mlnd1",
+ "fetcher": "github",
+ "repo": "jcollard/elm-mode",
+ "unstable": {
+ "version": [
+ 20200602,
+ 500
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "reformatter",
+ "s"
+ ],
+ "commit": "363da4b47c9de1ff091a8caf95fccc34188d59a3",
+ "sha256": "0nmhf4vql0nkc4igd9mp9v77cb0rsxfawb160f9mcgkdd6ahn3xj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 21,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "reformatter",
+ "s"
+ ],
+ "commit": "5df694e307cf8fa5a3555d800984aa4ebb40664f",
+ "sha256": "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"
+ }
+ },
+ {
+ "ename": "elm-test-runner",
+ "commit": "064db8f60438927255458a7fbd8ae871f8264d67",
+ "sha256": "1axzp93a0xmbprskql4bdfnxnmcpfnq6xf7c4x7cgn5pbd1p6inz",
+ "fetcher": "github",
+ "repo": "juanedi/elm-test-runner",
+ "unstable": {
+ "version": [
+ 20190105,
+ 1923
+ ],
+ "commit": "a31d567a64d86d36e3675347abd696824a731e0c",
+ "sha256": "15kgz44ylni4anz461hihrhvg24jvd7jzykqdjacsznyphfv94m9"
+ }
+ },
+ {
+ "ename": "elm-yasnippets",
+ "commit": "340664dd1c57b539de191dd6faa9eb8ed9ae6914",
+ "sha256": "0nnr0sxkxviw2i7b5s8jgvsv7lgqxqvirmvmband84q9gxlz24zb",
+ "fetcher": "github",
+ "repo": "abingham/elm-yasnippets",
+ "unstable": {
+ "version": [
+ 20160401,
+ 524
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "45a11a0cef0c36633fb3477d3dc4167e82779ba4",
+ "sha256": "1zb5yra6znkr7yaq6wqlmlr054wkv9cy1dih8h4j2gp2wnfwg968"
+ }
+ },
+ {
+ "ename": "elmacro",
+ "commit": "566cc5bc0f71c5a4191ad93b917dc268f6e1a2da",
+ "sha256": "0644rgwawivrq1shsjx1x2p53z7jgr6bxqgn2smzql8pp6azy7xz",
+ "fetcher": "github",
+ "repo": "Silex/elmacro",
+ "unstable": {
+ "version": [
+ 20191208,
+ 1057
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "ba4086ef241dadfc2b1ce1bcfa56e12dbb89ef58",
+ "sha256": "0q29h3y6q1xkz2jx9bvrk8nvmisv1di2l79yc3zrw5k4hirq8j2a"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "5bf9ba6009226b95e5ba0f50489ccced475753e3",
+ "sha256": "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"
+ }
+ },
+ {
+ "ename": "elmine",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1xkx1wwrzd2dl13z8n4qh3gl202j0i9crab5b3788z8mq0g4v4bn",
+ "fetcher": "github",
+ "repo": "leoc/elmine",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1237
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "c78cc8705c2dffbf649b858f02b5028225943482",
+ "sha256": "05z9v3lcc0mm40k0y08v8mhnlxb4krlgj6zghfavwwz6nhxn61g3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "091f61c70c9e7630a74b7b127488051d143a35e7",
+ "sha256": "080nnw6ddsczbm7gk50x4dkahi77fsybfiki5iyp39fjpa7lfzq3"
+ }
+ },
+ {
+ "ename": "elnode",
+ "commit": "987a93afa134fdda466fbdc6dd9c48a572b0be61",
+ "sha256": "11avrs18cjlk6v2y4y202ay38375pdzh49lizy7w1w2mwy0q40am",
+ "fetcher": "github",
+ "repo": "jcaw/elnode",
+ "unstable": {
+ "version": [
+ 20190702,
+ 1509
+ ],
+ "deps": [
+ "creole",
+ "dash",
+ "db",
+ "fakir",
+ "kv",
+ "noflet",
+ "s",
+ "web"
+ ],
+ "commit": "29ef0f51a65a24fca7fdcdb4140d2e4556e4bb29",
+ "sha256": "1bks7aakhvdab56gbsa44ca9kbilajisdd9bns485d9wr62d2lgj"
+ }
+ },
+ {
+ "ename": "elog",
+ "commit": "4f3d560bf56b1b4e7540dc5ae16258895c106f1f",
+ "sha256": "0hixsi60nf0khm9xmya3saf95ahn1gydp0l5wxawsc491qwg4vqd",
+ "fetcher": "github",
+ "repo": "lujun9972/elog",
+ "unstable": {
+ "version": [
+ 20160724,
+ 2255
+ ],
+ "deps": [
+ "eieio"
+ ],
+ "commit": "a67237d9813c7591614d95e2ef31cc5e5ed3f31b",
+ "sha256": "0alg5nbmq56zsc032pvah92h5fw155fbfjc275k9vbh915hs6y0w"
+ }
+ },
+ {
+ "ename": "elogcat",
+ "commit": "4855c75dc22a7089cf9e4fa80dbe0ccd2830fe83",
+ "sha256": "0sqdqlpg4firswr742nrb6b8sz3bpijf6pbxvandq3ddpm0rx9ia",
+ "fetcher": "github",
+ "repo": "youngker/elogcat.el",
+ "unstable": {
+ "version": [
+ 20151121,
+ 41
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "4f311b7a07565b0d060334bc68edb36f2bff703f",
+ "sha256": "1jcr8bxffvnfs0ym6zkgs79hd6a0m81r4x4jr3v5l9zwxw04sy15"
+ }
+ },
+ {
+ "ename": "eloud",
+ "commit": "f1e80fba9bc541594129756f5c668f3192919bc8",
+ "sha256": "1h8wd5mfi1cn9bzrckgc5mdrr5jkqsx92ay008p650wvjl689rn2",
+ "fetcher": "github",
+ "repo": "smythp/eloud",
+ "unstable": {
+ "version": [
+ 20190706,
+ 1707
+ ],
+ "commit": "b8f4af1f652268d73281de91fb333b5984970847",
+ "sha256": "0sdzn8546ww3x4q4c9h69i9wdr51mjq19vi6r3bbba8iwl2rf67w"
+ }
+ },
+ {
+ "ename": "elpa-audit",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "18a8n22g53d8fxzr3snb2px28gvxbkx44grrx8lywaprz1f1lwdi",
+ "fetcher": "github",
+ "repo": "purcell/elpa-audit",
+ "unstable": {
+ "version": [
+ 20141023,
+ 1331
+ ],
+ "commit": "727da50e626977351aff2675b6540a36818bbbe6",
+ "sha256": "0wlhdzsrlj266jfvp925zrgzg2mxfba93klgky0hc8zialmmb50b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "a7a1806278c73ea6cb6d235714e7bc8088971df5",
+ "sha256": "1q4krfrc2dy0vr7q148msfpkcwj55mlsrn4n5xjnya4xj0134ib7"
+ }
+ },
+ {
+ "ename": "elpa-clone",
+ "commit": "11861edd9c7f9deebd44fd1f8ef648e7a04caf2b",
+ "sha256": "172gpmpwf75y41n3v05l47w34x83vy63bqk97fd8a6b4dkj91lqa",
+ "fetcher": "github",
+ "repo": "dochang/elpa-clone",
+ "unstable": {
+ "version": [
+ 20191006,
+ 1953
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "827e2723b123618aaa32642d78c447cf2979a00a",
+ "sha256": "08psgia9vwwil16nymy0z12p823in3bxf9k7phjrmdicqqc01k42"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 9
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "827e2723b123618aaa32642d78c447cf2979a00a",
+ "sha256": "08psgia9vwwil16nymy0z12p823in3bxf9k7phjrmdicqqc01k42"
+ }
+ },
+ {
+ "ename": "elpa-deploy",
+ "commit": "d1708e6fa8778a79cd2423a56497140e3302b579",
+ "sha256": "1yv4sfipaxqgx3zwjfr3wzc25f59pl03snq0ja2s13r7l5kg6im8",
+ "fetcher": "github",
+ "repo": "oitofelix/elpa-deploy",
+ "unstable": {
+ "version": [
+ 20191022,
+ 718
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "f5126a2da1e0e52981fad9c12028814be80328c2",
+ "sha256": "0s1cv983cgz8iysjllqbpbq80bcmsynqb6d3c8z177xqvvr4zaw8"
+ }
+ },
+ {
+ "ename": "elpa-mirror",
+ "commit": "d64ce7042c45f29fb394be25ce415912182bac8b",
+ "sha256": "1jnviav2ybr13cgllg26kfjrwrl25adggnqiiwyjwgbbzxfycah8",
+ "fetcher": "github",
+ "repo": "redguardtoo/elpa-mirror",
+ "unstable": {
+ "version": [
+ 20200502,
+ 115
+ ],
+ "commit": "9b25a8a2619e1f723528e8a093d31181223d5c85",
+ "sha256": "0frafk7a86l2g02c1c6vrinp609v480klhkh3y823b5k4bx3m3b7"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 1
+ ],
+ "commit": "83a38b5721c459d311833522903de96f874e1a4e",
+ "sha256": "0j2nk1nhbihfqajkmzp3501mhv5617qhb7qbj46qz8azs8a1dvri"
+ }
+ },
+ {
+ "ename": "elpher",
+ "commit": "d87a0f3142e0a59842608576961707c98374f954",
+ "sha256": "1i52q6xsyabl8gg8cd29d24gnw6aac69pjif2yh0rijxvbcl2a86",
+ "fetcher": "git",
+ "url": "git://thelambdalab.xyz/elpher.git",
+ "unstable": {
+ "version": [
+ 20200628,
+ 2255
+ ],
+ "commit": "b4450244a5e23605f80b2179ce7d4dbaff56d927",
+ "sha256": "0fjqdp4xh9q50rdxg20il1y6wwn5l1af7139f4613z4j5ha3zxxg"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 10,
+ 0
+ ],
+ "commit": "b4450244a5e23605f80b2179ce7d4dbaff56d927",
+ "sha256": "0fjqdp4xh9q50rdxg20il1y6wwn5l1af7139f4613z4j5ha3zxxg"
+ }
+ },
+ {
+ "ename": "elpl",
+ "commit": "b1e3a1b614f6ad19bcfaa414d9faf0b70236aa3d",
+ "sha256": "0lzxl19mr56p28jh99k1sp1f1r9idl32im6b847sbw6mqx47p5mx",
+ "fetcher": "github",
+ "repo": "twlz0ne/elpl",
+ "unstable": {
+ "version": [
+ 20191229,
+ 1929
+ ],
+ "commit": "48ecee2aa7b3d085a3deff809fb3ae31ae4ef9dd",
+ "sha256": "06xqww1r3i2hlr4hyg4n2l9zbpiki3g90b51jylaiabj4gqfswzv"
+ }
+ },
+ {
+ "ename": "elpy",
+ "commit": "1d8fcd8745bb15402c9f3b6f4573ea151415237a",
+ "sha256": "1ri3dwnkw005plj1g5grmmq9np41sqk4s2v18pwsvr18ysnq6nnr",
+ "fetcher": "github",
+ "repo": "jorgenschaefer/elpy",
+ "unstable": {
+ "version": [
+ 20200805,
+ 1736
+ ],
+ "deps": [
+ "company",
+ "highlight-indentation",
+ "pyvenv",
+ "s",
+ "yasnippet"
+ ],
+ "commit": "c766feb5c34dd17b7afba480ae9e90a08d75012c",
+ "sha256": "13z21jfvinjxyyi37xvx12gbr28fbr0g43x0nsip270dz797ls0v"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 34,
+ 0
+ ],
+ "deps": [
+ "company",
+ "highlight-indentation",
+ "pyvenv",
+ "s",
+ "yasnippet"
+ ],
+ "commit": "980705c0b23aead72d7d6711008b1fb1706a45c2",
+ "sha256": "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"
+ }
+ },
+ {
+ "ename": "elpygen",
+ "commit": "e670bd79a85c4e2a9ca3355feb8aaefa709f49cb",
+ "sha256": "01fak1dz9mna3p4c2r0scb0j10qk3lvpq270jy6rvzlcbwri4akl",
+ "fetcher": "github",
+ "repo": "vkazanov/elpygen",
+ "unstable": {
+ "version": [
+ 20171225,
+ 1736
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "21929c997a05968f9eefe52b85a76ceaab3b0d81",
+ "sha256": "093ck4dkdvbgafb1bmkmszg1ba81ns5kjbk2iq2b5p9dvfcjjr3k"
+ }
+ },
+ {
+ "ename": "elquery",
+ "commit": "121f7d2091b83143402b44542db12e8f78275103",
+ "sha256": "19yik9w4kcj7i9d3bwwdszznwcrh75hxd0540iqk5by861z5f3zr",
+ "fetcher": "github",
+ "repo": "AdamNiederer/elquery",
+ "unstable": {
+ "version": [
+ 20200628,
+ 1756
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "cba7629ad886c4e51d66f8b509aad48bdfe100cc",
+ "sha256": "119g9ca40rg0aam7i2n4jhjzjzm8r7bg6q0yjaw5x1j7ywks5af6"
+ }
+ },
+ {
+ "ename": "elsa",
+ "commit": "f126c49fe01a1c21aca0f45643d44ecf4c3ad95b",
+ "sha256": "0g8l61fg9krqakp6fjvm6jr1lss3mll707rknhm5d2grr6ik3lvl",
+ "fetcher": "github",
+ "repo": "emacs-elsa/Elsa",
+ "unstable": {
+ "version": [
+ 20200225,
+ 1440
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f",
+ "trinary"
+ ],
+ "commit": "5ac373088eca10581e848ad42f5e278aedcd85c0",
+ "sha256": "11q5bh1mxc3z8a2zxs157pf7aqld9vddcffibgawh4r8q661ys03"
+ }
+ },
+ {
+ "ename": "elscreen",
+ "commit": "e6140694c1dea0a573586d23d1f63d46c9b22936",
+ "sha256": "1mlqbw14ilk6d3ba38kfw50pnlhb9f6sm5hy9dw58gp59siark5s",
+ "fetcher": "github",
+ "repo": "knu/elscreen",
+ "unstable": {
+ "version": [
+ 20181009,
+ 451
+ ],
+ "commit": "cc58337faf5ba1eae7e87f75f6ff3758675688f2",
+ "sha256": "15kffci7qlhjwz1rlr0zg0z9rq0vlsxy295dvg96wiiz4fvs4jk2"
+ },
+ "stable": {
+ "version": [
+ 20180321
+ ],
+ "commit": "cc58337faf5ba1eae7e87f75f6ff3758675688f2",
+ "sha256": "15kffci7qlhjwz1rlr0zg0z9rq0vlsxy295dvg96wiiz4fvs4jk2"
+ }
+ },
+ {
+ "ename": "elscreen-buffer-group",
+ "commit": "9c6fedb7b6ef58089da4b35ad115f699b4b24ff2",
+ "sha256": "1clmhpk9zp6hsgz6a4jpmbrr9fr6k8b324s0x61n5yi4yzgdmc0v",
+ "fetcher": "github",
+ "repo": "jeffgran/elscreen-buffer-group",
+ "unstable": {
+ "version": [
+ 20200109,
+ 2338
+ ],
+ "deps": [
+ "cl-lib",
+ "elscreen"
+ ],
+ "commit": "b48e71d4782adfeb2958f227d78c04164d26e4bd",
+ "sha256": "13wfnkg42k1fk1dbf7zspxfp116xm1z4j6pc82wk8lz5k5xjlpzq"
+ }
+ },
+ {
+ "ename": "elscreen-fr",
+ "commit": "18730986df5eb9816eec7ad479abe1e338d3c66f",
+ "sha256": "1kmga1zz9mb3hxd2sxja2vz45pix5a52yl0g9z4vmak32x9rgqrm",
+ "fetcher": "github",
+ "repo": "rocher/elscreen-fr",
+ "unstable": {
+ "version": [
+ 20160920,
+ 953
+ ],
+ "deps": [
+ "elscreen",
+ "seq"
+ ],
+ "commit": "6dc77e1d3f17b3f76da5ccf92b715572aa55fb85",
+ "sha256": "18d4mz6sk1zvcl80115fy0ar358dqkwb3khgxsn71a67yxg9db15"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "elscreen",
+ "seq"
+ ],
+ "commit": "b9c11f80d277086d5d5bf88623e15fc7adbbbe3c",
+ "sha256": "1dz8jqd2agh06hya59vbybrmgyhyz2rk6c9panrm49w37v0bwksb"
+ }
+ },
+ {
+ "ename": "elscreen-mew",
+ "commit": "47404ea3cfb591b780ca7e31095951a708b0a6b7",
+ "sha256": "06g4wcfjs036nn64ac0zsvr08cfmak2hyj83y7a0r35yxr1853w4",
+ "fetcher": "github",
+ "repo": "masutaka/elscreen-mew",
+ "unstable": {
+ "version": [
+ 20160504,
+ 1835
+ ],
+ "deps": [
+ "elscreen"
+ ],
+ "commit": "c90a23441d836da14a1cb12788432308ba58e2b6",
+ "sha256": "167kgbnh5q3pqirv0f7wpjn7yc76k8mz9qx45i7d4scmx8952d2g"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "elscreen"
+ ],
+ "commit": "89871fad690ae161dc076e16ef481b1965612077",
+ "sha256": "14hwl5jzmm43qa4jbpsyswbz4hk1l2iwqh3ank6502bz58877k6c"
+ }
+ },
+ {
+ "ename": "elscreen-multi-term",
+ "commit": "7a24477cf83df7da931fa33c622ef720839529d2",
+ "sha256": "1zwrzblkag1d18xz450b7khsdssvsxyl1x6a682vy0dkn1y5qh1n",
+ "fetcher": "github",
+ "repo": "wamei/elscreen-multi-term",
+ "unstable": {
+ "version": [
+ 20200417,
+ 821
+ ],
+ "deps": [
+ "elscreen",
+ "multi-term"
+ ],
+ "commit": "4ea89bae0444d9d4377515929f76cb3e98140f1f",
+ "sha256": "0j5dpikjxwn1679ndy894g55qm9hs0n65lqyxx483h584nqxsdkg"
+ }
+ },
+ {
+ "ename": "elscreen-separate-buffer-list",
+ "commit": "9f5e5c8e2cd45a25e47c74bef59b9114aa7685eb",
+ "sha256": "1d8kc137cd8i3wglir1rlvk7w8mrdhd3xvcihi2f2f2g5nh2n5jk",
+ "fetcher": "github",
+ "repo": "wamei/elscreen-separate-buffer-list",
+ "unstable": {
+ "version": [
+ 20200807,
+ 1324
+ ],
+ "deps": [
+ "elscreen"
+ ],
+ "commit": "88d8850108947949431425a2d938a09d941454e8",
+ "sha256": "0c18w11wy3bnxhf109dbr01fcv3y9fg4jx5nkjx2gaf0kl0d7nfi"
+ }
+ },
+ {
+ "ename": "elscreen-tab",
+ "commit": "06a8348c6911936e16a98cf216578ea148e20e5d",
+ "sha256": "18krbs462cwi3pf72kn1zf1jf4gv9n3ffdg4v5bgb19i69sq7spi",
+ "fetcher": "github",
+ "repo": "aki-s/elscreen-tab",
+ "unstable": {
+ "version": [
+ 20190203,
+ 1619
+ ],
+ "deps": [
+ "dash",
+ "elscreen"
+ ],
+ "commit": "da79fb0b9ead2402662ff8e163039635aaae2413",
+ "sha256": "18zzp7ziawb2qb5qlmn9b85pfx4h6ldfxdhv9nr72njgrfp1q5al"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "elscreen"
+ ],
+ "commit": "29d7a65c3e134dd476049c9aebc8d029238e71f7",
+ "sha256": "0303i61m1qg65d3i3hsy7pzdhw0icpx3im99qkfmy6lxi4h9nd0p"
+ }
+ },
+ {
+ "ename": "elvish-mode",
+ "commit": "0fc724072702a565af471f9ae523a1e6e48e3f04",
+ "sha256": "1f5pyadmbh2ldd51srvlhbjq2849f1f0s8qmpjnsz9bc986yga34",
+ "fetcher": "github",
+ "repo": "ALSchwalm/elvish-mode",
+ "unstable": {
+ "version": [
+ 20180809,
+ 1612
+ ],
+ "commit": "c3a7e31564256b9755b1ab9fb40d32ad78cd1ad2",
+ "sha256": "0dxa8g49fq4h1ab3sawnbgy1fxaxxsdac3l6im34qfw4km8brp9y"
+ }
+ },
+ {
+ "ename": "elwm",
+ "commit": "0eb45a6141b797243973695be4c0582c9ad6965d",
+ "sha256": "0rf663ih3lfg4n4pj4dpp133967zha5m1wr46riaxpha7xr59al9",
+ "fetcher": "github",
+ "repo": "Fuco1/elwm",
+ "unstable": {
+ "version": [
+ 20150817,
+ 1007
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "c33b183f006ad476c3a44dab316f580f8b369930",
+ "sha256": "1k7npf93xbmrsq607x8zlgrpzqvplgia3ixz5w1lr1jlv1m2m8x2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "c33b183f006ad476c3a44dab316f580f8b369930",
+ "sha256": "1k7npf93xbmrsq607x8zlgrpzqvplgia3ixz5w1lr1jlv1m2m8x2"
+ }
+ },
+ {
+ "ename": "elx",
+ "commit": "57a2fb9524df3fdfdc54c403112e12bd70888b23",
+ "sha256": "008nwa2gn3d2ayr8023pxyvph52gh9m56f77h41hp8hcw6hbdwrz",
+ "fetcher": "github",
+ "repo": "emacscollective/elx",
+ "unstable": {
+ "version": [
+ 20200728,
+ 819
+ ],
+ "commit": "f9f810ffcd3cce7ed15848c72ce299609ec09414",
+ "sha256": "1p3zpg4p4a1cn13sg3hsa33gs1bdra1mlmxkagx883p3808i5qha"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 2
+ ],
+ "commit": "f9f810ffcd3cce7ed15848c72ce299609ec09414",
+ "sha256": "1p3zpg4p4a1cn13sg3hsa33gs1bdra1mlmxkagx883p3808i5qha"
+ }
+ },
+ {
+ "ename": "emacsc",
+ "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
+ "sha256": "1fbf9al3yds0il18jz6hbpj1fsjlpb1kgp450gb6r09lc46x77mk",
+ "fetcher": "github",
+ "repo": "knu/emacsc",
+ "unstable": {
+ "version": [
+ 20190917,
+ 1102
+ ],
+ "commit": "57940b93881efabb375df18093b99800bfb5d5f7",
+ "sha256": "032g44dad90cas2b80cxhzbim2sxd8rliyxf65ccfrqi1xg3vkff"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 20190917
+ ],
+ "commit": "57940b93881efabb375df18093b99800bfb5d5f7",
+ "sha256": "032g44dad90cas2b80cxhzbim2sxd8rliyxf65ccfrqi1xg3vkff"
+ }
+ },
+ {
+ "ename": "emacsist-view",
+ "commit": "d2157e14d68fa2875c6d5c40c20a39b9a2431c10",
+ "sha256": "0lf280ppi3zksqvx81y8mm9479j26kd5wywfghhwk36kz410hk99",
+ "fetcher": "github",
+ "repo": "lujun9972/emacsist-view",
+ "unstable": {
+ "version": [
+ 20160426,
+ 1223
+ ],
+ "commit": "f67761259ed779a9bc95c9a4e0474522990c5c6b",
+ "sha256": "1vhs9725fyl2j65lk014qz76iv4hsvyim06361h4lai634hp7ck6"
+ }
+ },
+ {
+ "ename": "emacsql",
+ "commit": "9c3b6175b5c64f03b0b9dfdc10f393081d681309",
+ "sha256": "0c2d0kymzr53wh87fq1wy2x5ahfsymz0cw8qbrqx0k613l3mpr38",
+ "fetcher": "github",
+ "repo": "skeeto/emacsql",
+ "unstable": {
+ "version": [
+ 20200714,
+ 28
+ ],
+ "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+ "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "commit": "8c5f095458aa37e4146b80d9319ee63571734127",
+ "sha256": "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"
+ }
+ },
+ {
+ "ename": "emacsql-mysql",
+ "commit": "9cc47c05fb0d282531c9560252090586e9f6196e",
+ "sha256": "1c20zhpdzfqjds6kcjhiq1m5ch53fsx6n1xk30i35kkg1wxaaqzy",
+ "fetcher": "github",
+ "repo": "skeeto/emacsql",
+ "unstable": {
+ "version": [
+ 20171219,
+ 227
+ ],
+ "deps": [
+ "emacsql"
+ ],
+ "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+ "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "deps": [
+ "emacsql"
+ ],
+ "commit": "8c5f095458aa37e4146b80d9319ee63571734127",
+ "sha256": "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"
+ }
+ },
+ {
+ "ename": "emacsql-psql",
+ "commit": "9cc47c05fb0d282531c9560252090586e9f6196e",
+ "sha256": "1aa1g9jyjmz6w0lmi2cf67926ad3xvs0qsg7lrccnllr9k0flly3",
+ "fetcher": "github",
+ "repo": "skeeto/emacsql",
+ "unstable": {
+ "version": [
+ 20171219,
+ 227
+ ],
+ "deps": [
+ "emacsql"
+ ],
+ "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+ "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "deps": [
+ "emacsql"
+ ],
+ "commit": "8c5f095458aa37e4146b80d9319ee63571734127",
+ "sha256": "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"
+ }
+ },
+ {
+ "ename": "emacsql-sqlite",
+ "commit": "3cfa28c7314fa57fa9a3aaaadf9ef83f8ae541a9",
+ "sha256": "1y81nabzzb9f7b8azb9giy23ckywcbrrg4b88gw5qyjizbb3h70x",
+ "fetcher": "github",
+ "repo": "skeeto/emacsql",
+ "unstable": {
+ "version": [
+ 20190727,
+ 1710
+ ],
+ "deps": [
+ "emacsql"
+ ],
+ "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+ "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "deps": [
+ "emacsql"
+ ],
+ "commit": "8c5f095458aa37e4146b80d9319ee63571734127",
+ "sha256": "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"
+ }
+ },
+ {
+ "ename": "emacsql-sqlite3",
+ "commit": "5a25cf38b4f39b1c4d259143f1586fdad605b101",
+ "sha256": "06zm6vs6sry2lwksikxp0rjyvs1rgiqyapyw7m8hgy336h810v84",
+ "fetcher": "github",
+ "repo": "cireu/emacsql-sqlite3",
+ "unstable": {
+ "version": [
+ 20200718,
+ 614
+ ],
+ "deps": [
+ "emacsql"
+ ],
+ "commit": "e920671872cd8e0ef9c3646e6f0fae331bf8a7df",
+ "sha256": "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "emacsql"
+ ],
+ "commit": "e920671872cd8e0ef9c3646e6f0fae331bf8a7df",
+ "sha256": "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"
+ }
+ },
+ {
+ "ename": "emacsshot",
+ "commit": "d94b48f1d01c6f0e7bb2169a4a3181eae3f79c23",
+ "sha256": "1v5cd278fls5hib6f4arv0g5mzjhv22lslbb9s2p274dk4pn1ggc",
+ "fetcher": "gitlab",
+ "repo": "marcowahl/emacsshot",
+ "unstable": {
+ "version": [
+ 20191206,
+ 944
+ ],
+ "commit": "fe958b11056f3c671ebdd604d5aa574323284ca5",
+ "sha256": "0zg52b3hl0rp9hjz04546kngssxs0l64dm01bwp9hapy7pichbci"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "f0add6820d250875f7d7c21aa5d813dc73dbcf96",
+ "sha256": "18bnw6yb41ki1xvkhi07v7fqx3var928majgd6613ra9nirnyqnj"
+ }
+ },
+ {
+ "ename": "emamux",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0y75dnaz65fwk8d9l6n1bkbj32rcmzaf58fhj686b1n55bsz3xz6",
+ "fetcher": "github",
+ "repo": "emacsorphanage/emamux",
+ "unstable": {
+ "version": [
+ 20200315,
+ 1220
+ ],
+ "commit": "6172131d78038f0b1490e24bac60534bf4ad3b30",
+ "sha256": "1cv9b15lj2663aik9s0s2bj05vv4zfzz2w7wjbj6s5vlnf5byfnl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 14
+ ],
+ "commit": "573dd1cf18584a1fd240efb16c7726b6fd790b73",
+ "sha256": "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"
+ }
+ },
+ {
+ "ename": "emamux-ruby-test",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1lk2fpqnmzh1gsbp9pkh36lgr76sf2mbf12577xs4scia7xr29bc",
+ "fetcher": "github",
+ "repo": "emacsorphanage/emamux-ruby-test",
+ "unstable": {
+ "version": [
+ 20130812,
+ 1639
+ ],
+ "deps": [
+ "emamux",
+ "projectile"
+ ],
+ "commit": "23b73c650573b340351a919da3da416acfc2ac84",
+ "sha256": "1idsvilsvlxh72waalhl8vrsmh0vfvz56qcv56fc2c0pb1i90icn"
+ }
+ },
+ {
+ "ename": "emaps",
+ "commit": "4faeda02aabc0b6c5003cdf5d1fdfca0fd71b0d7",
+ "sha256": "151rh6lyqi0ps2w022shzjj67nkg6y4m1nfj90qyc7jgl64qb9qw",
+ "fetcher": "github",
+ "repo": "GuiltyDolphin/emaps",
+ "unstable": {
+ "version": [
+ 20200508,
+ 1759
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "7c561f3ded2015ed3774e5784059d6601082743e",
+ "sha256": "0x4i2c493zb7cf0cnixsxiwl409faljd5sk05flkq88wjm176dcm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "7c561f3ded2015ed3774e5784059d6601082743e",
+ "sha256": "0x4i2c493zb7cf0cnixsxiwl409faljd5sk05flkq88wjm176dcm"
+ }
+ },
+ {
+ "ename": "ember-mode",
+ "commit": "9ac1eef4ad87b1b6b6d8e63d340ba03dc013425b",
+ "sha256": "0fwd34cim29dg802ibsfd120px9sj54d4wzp3ggmjjzwkl9ky7dx",
+ "fetcher": "github",
+ "repo": "madnificent/ember-mode",
+ "unstable": {
+ "version": [
+ 20200208,
+ 1423
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a587c423041b2fcb065fd5b6a03b2899b764e462",
+ "sha256": "0x5fnrflbgafwcqr6v0jj6522j2j086s7msh2mr6yysmrfjhx2zk"
+ }
+ },
+ {
+ "ename": "ember-yasnippets",
+ "commit": "6c37a13d56e9a0a4e7e2c11349ed87610a0f6b2c",
+ "sha256": "1jwkzcqcpy7ykdjhsqmg8ds6qyl4jglyjbgg7v301x068dsxkja6",
+ "fetcher": "github",
+ "repo": "ronco/ember-yasnippets.el",
+ "unstable": {
+ "version": [
+ 20160526,
+ 1658
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "3b5bd01569646237bf1b540d097e12f9118b67f4",
+ "sha256": "0g7hp1aq0zznbhd234dpbblnagn34fxdasc5v4lfhm5ykw5xyb5x"
+ }
+ },
+ {
+ "ename": "embrace",
+ "commit": "e8f07e3b5ba4ec4b0b79fba5a2cca5a3986218b6",
+ "sha256": "1w9zp9n91703d6jd4adl2xk574wsr7fm2a9v32b1i9bi3hr0hdjc",
+ "fetcher": "github",
+ "repo": "cute-jumper/embrace.el",
+ "unstable": {
+ "version": [
+ 20171031,
+ 1833
+ ],
+ "deps": [
+ "cl-lib",
+ "expand-region"
+ ],
+ "commit": "dd5da196e5bcc5e6d87e1937eca0c21da4334ef2",
+ "sha256": "1m0qyipkp5ydgcav8d0m58fbj1gilipbj7g8mg40iajr8wfqcjdc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "expand-region"
+ ],
+ "commit": "dd5da196e5bcc5e6d87e1937eca0c21da4334ef2",
+ "sha256": "1m0qyipkp5ydgcav8d0m58fbj1gilipbj7g8mg40iajr8wfqcjdc"
+ }
+ },
+ {
+ "ename": "emidje",
+ "commit": "5d64b3b42b4b9acd3e9d84921df287f3217db83e",
+ "sha256": "1p2aa4wl2465gm7ljgr5lbvxfgx0g1w1170zdv3596hi07mccabs",
+ "fetcher": "github",
+ "repo": "nubank/emidje",
+ "unstable": {
+ "version": [
+ 20190209,
+ 1726
+ ],
+ "deps": [
+ "cider",
+ "magit-popup",
+ "seq"
+ ],
+ "commit": "7e92f053964d925c97dc8cca8d4d70a3030021db",
+ "sha256": "0xg2bw9vzwvkx6xh4k2n6qhyhqg5iifl6aa0s7svvdnw35x00hv2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cider",
+ "seq"
+ ],
+ "commit": "e8577698bade8a8ea6bf394ab9a441e982058f19",
+ "sha256": "1yz84dnd7jmnhgyssk405mw1c4p55fvfxwx03libj4ik1wq8nj8i"
+ }
+ },
+ {
+ "ename": "emlib",
+ "commit": "46b3738975c8082d9eb6da9fe733edb353aa7069",
+ "sha256": "02l135v3pqpf6ngfq11h4rc843iwh3dgi4rr3gcc63pjl4ws2w2c",
+ "fetcher": "github",
+ "repo": "narendraj9/emlib",
+ "unstable": {
+ "version": [
+ 20161126,
+ 1523
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "dea2af00f551ea580c641d86dd69219f7d4f3685",
+ "sha256": "0p52pkq3wvnhg0l7cribhc39zl1cjjxgw9qzpmwd0jw1g1lslwbm"
+ }
+ },
+ {
+ "ename": "emmet-mode",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0wjv4hqddjvbdrmsxzav5rpwnm2n6lr86jzkrnav8f2kyzypdsnr",
+ "fetcher": "github",
+ "repo": "smihica/emmet-mode",
+ "unstable": {
+ "version": [
+ 20180613,
+ 341
+ ],
+ "commit": "1acb821e0142136344ccf40c1e5fb664d7db2e70",
+ "sha256": "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 8
+ ],
+ "commit": "bf76d717c60f33d223cdac35513105e9f9244885",
+ "sha256": "1dsa85bk33j90h1ypaz1ylqh9yp2xvlga237h3kwa5y3sb0d5ydi"
+ }
+ },
+ {
+ "ename": "emms",
+ "commit": "4caa7403144670c07e326ed3a7d982c427d4a254",
+ "sha256": "0ml66fgzxl4wsk5g7d78mqhr9gqmbld6qh31nfc6z19c8107jrd5",
+ "fetcher": "git",
+ "url": "https://git.savannah.gnu.org/git/emms.git",
+ "unstable": {
+ "version": [
+ 20200716,
+ 1815
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "36d760e2bd7e5376aff3f03456fa6445833242ad",
+ "sha256": "0xgshxdd5zmy1c7sxvrmw0wkqwhwaccqf93zwz98gb9gsfabyxd8"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f4924c2e77bdc5806495a74832fba60b2c30aca1",
+ "sha256": "01d8akv046igc13d5ki9wz36v51dlijab892ki5s5c4ysgj42wkr"
+ }
+ },
+ {
+ "ename": "emms-bilibili",
+ "commit": "533f96d1e68eda20b2d2e7f8eb3e7fa118904970",
+ "sha256": "1mx3fn2x526np8awjn0ydsqh59b4aznf3sig410fbr6wk6pa6y47",
+ "fetcher": "github",
+ "repo": "0xDEATHCODE/emms-bilibili",
+ "unstable": {
+ "version": [
+ 20180103,
+ 418
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "294bca3dfc42fe3a55fb326ab39bc0fcfc8c5090",
+ "sha256": "0q8z3q1agwgb3d0kpvac7a98p3q4ljjnv404cf9kihjjfxvh4vm5"
+ }
+ },
+ {
+ "ename": "emms-info-mediainfo",
+ "commit": "d08c28c6ff4caf14f0bf4b0f40f16660dac2d5d9",
+ "sha256": "17x8vvfhx739hcj9j1nh6j4r6zqnwa5zq9zpi9b6lxc8979k3m4w",
+ "fetcher": "github",
+ "repo": "fgallina/emms-info-mediainfo",
+ "unstable": {
+ "version": [
+ 20131223,
+ 1300
+ ],
+ "deps": [
+ "emms"
+ ],
+ "commit": "bce16eae9eacd38719fea62a9755225a888da59d",
+ "sha256": "07qbbs2i05bqndr4dxb84z50wav8ffbc56f6saw6pdx6n0sw6n6n"
+ }
+ },
+ {
+ "ename": "emms-mark-ext",
+ "commit": "36b7292160d3dab1a684d09c848a6b0f68b31add",
+ "sha256": "13h6hy8y0as0xfc1cg8balw63as81fzar32q9h4zhnndl3hc1081",
+ "fetcher": "github",
+ "repo": "vapniks/emms-mark-ext",
+ "unstable": {
+ "version": [
+ 20130529,
+ 327
+ ],
+ "deps": [
+ "emms"
+ ],
+ "commit": "ec68129e3e9e469e5bf160c6a1b7030e322f3541",
+ "sha256": "03a7sn8pl0pnr05rmrrbw4hjyi8vpjqbvkvh0fqnij913a6qc64l"
+ }
+ },
+ {
+ "ename": "emms-mode-line-cycle",
+ "commit": "dab676acd774616a32a0373f30647f3cb4522afc",
+ "sha256": "1jdmfh1i9v84iy7bj2dbc3s2wfzkrby3pabd99gnqzd9gn1cn8ca",
+ "fetcher": "github",
+ "repo": "momomo5717/emms-mode-line-cycle",
+ "unstable": {
+ "version": [
+ 20160221,
+ 1120
+ ],
+ "deps": [
+ "emms"
+ ],
+ "commit": "2c2f395e484a1d345050ddd61ff5fab71a92a6bc",
+ "sha256": "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 5
+ ],
+ "deps": [
+ "emms"
+ ],
+ "commit": "2c2f395e484a1d345050ddd61ff5fab71a92a6bc",
+ "sha256": "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"
+ }
+ },
+ {
+ "ename": "emms-player-mpv-jp-radios",
+ "commit": "09ba6da5057061f055d4a3212d167f9666618d4f",
+ "sha256": "0gdap5cv08pz370fl92v9lyvgkbbyjhp9wsc4kyjm4f4pwx9fybv",
+ "fetcher": "github",
+ "repo": "momomo5717/emms-player-mpv-jp-radios",
+ "unstable": {
+ "version": [
+ 20180325,
+ 1117
+ ],
+ "deps": [
+ "cl-lib",
+ "emms",
+ "emms-player-simple-mpv"
+ ],
+ "commit": "f6b37f5878c741124d5fca43c5b80af873541edd",
+ "sha256": "1sxzh1bhdwln7kcn07agayyhmgyrbmmhgc3f85336xybc6ljpqs8"
+ }
+ },
+ {
+ "ename": "emms-player-simple-mpv",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1lv1rhd5vya068mnnaysfh56raar79hf2g413ysrk3yhyajk6316",
+ "fetcher": "github",
+ "repo": "momomo5717/emms-player-simple-mpv",
+ "unstable": {
+ "version": [
+ 20180316,
+ 1549
+ ],
+ "deps": [
+ "cl-lib",
+ "emms"
+ ],
+ "commit": "101d120ccdee1c2c213fd2f0423c858b21649c00",
+ "sha256": "1i6rxkm0ra0jbkkwgkwxg3vk5xfl794h1gkgnlpscynz0v94b6ll"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "emms"
+ ],
+ "commit": "bcc056364df5f405716006a8b7bb90102a57f62f",
+ "sha256": "0kz31qsn3nrpi8r31nlxlkkkah0qcdkq9a9i9ypv4ky7pvnzx6m5"
+ }
+ },
+ {
+ "ename": "emms-soundcloud",
+ "commit": "19e423525255371cf479842885eca07e801f6d00",
+ "sha256": "0nf1f719m4pvxn0mf4qyx8mzwhrhv6kchnrpiy9clx520y8x3dqi",
+ "fetcher": "github",
+ "repo": "osener/emms-soundcloud",
+ "unstable": {
+ "version": [
+ 20131221,
+ 1145
+ ],
+ "deps": [
+ "emms",
+ "json"
+ ],
+ "commit": "87e5cbf9609d1f26c24dc834fdeb78b33d453c2b",
+ "sha256": "0nx5bb5fjmaa1nhkbfnhd1aydqrq390x4rl1vfh11ilnf52wzzld"
+ }
+ },
+ {
+ "ename": "emms-state",
+ "commit": "8f2798e22c6ccbadf73e65d8a8d901e47f55cb83",
+ "sha256": "080y02hxxqfn0a0dhq5vm0r020v2q3h1612a2zkq5fxi8ssvhp9i",
+ "fetcher": "github",
+ "repo": "alezost/emms-state.el",
+ "unstable": {
+ "version": [
+ 20160504,
+ 805
+ ],
+ "deps": [
+ "emms"
+ ],
+ "commit": "77930300222333b71eafd495cc1fee3a3585eb23",
+ "sha256": "1kipxa9ax8zi9qqk19mknpg7nnlzgr734kh9bnklydipwnsy00pi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "emms"
+ ],
+ "commit": "77930300222333b71eafd495cc1fee3a3585eb23",
+ "sha256": "1kipxa9ax8zi9qqk19mknpg7nnlzgr734kh9bnklydipwnsy00pi"
+ }
+ },
+ {
+ "ename": "emoji-cheat-sheet-plus",
+ "commit": "ffbfae9577673ef8d50b55624f94288e315deba4",
+ "sha256": "1ciwlbw0ihm0p5gnnl3safcj7dxwiy53bkj8cmw3i334al0gjnnv",
+ "fetcher": "github",
+ "repo": "syl20bnr/emacs-emoji-cheat-sheet-plus",
+ "unstable": {
+ "version": [
+ 20200202,
+ 1404
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "ffcc84d7060dfa000148e7f8be4fd6701593a74f",
+ "sha256": "1na7mn9pgnwf9a1fbpb5k36aczzc7506ld5xm7mqpqgwshdxk0hq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 2
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "ffcc84d7060dfa000148e7f8be4fd6701593a74f",
+ "sha256": "1na7mn9pgnwf9a1fbpb5k36aczzc7506ld5xm7mqpqgwshdxk0hq"
+ }
+ },
+ {
+ "ename": "emoji-display",
+ "commit": "2c34abbda5acbd52f4e79ce9f87f9ae0fa1e48d5",
+ "sha256": "04cf18z26d64l0sv8qkbxjixi2wbw23awd5fznvg1cs8ixss01j9",
+ "fetcher": "github",
+ "repo": "ikazuhiro/emoji-display",
+ "unstable": {
+ "version": [
+ 20140117,
+ 1013
+ ],
+ "commit": "bb4217f6400151a9cfa6d4524b8427f01feb5193",
+ "sha256": "0sh4q4sb4j58ryvvmlsx7scry9inzgv2ssa87vbyzpxq0435l229"
+ }
+ },
+ {
+ "ename": "emoji-fontset",
+ "commit": "60df435eb82fcc9a8a02a0a271bb6a2d5a161bc4",
+ "sha256": "19affsvlm1rzrzdh1k6xsv79icdkzx4izxivrd2ia6y2wcg9wc5d",
+ "fetcher": "github",
+ "repo": "zonuexe/emoji-fontset.el",
+ "unstable": {
+ "version": [
+ 20160726,
+ 1924
+ ],
+ "commit": "8f159e8073b9b57a07a54b549df687424eeb98ee",
+ "sha256": "1hwikjy4ah1zkb4aknc9yni3d9cqgvnh5n955bdljyp0lvpvvhpr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "e460c9a08e48ec4103e38a7a04acae20880149a9",
+ "sha256": "0xdlqsrwdf0smi5z9rjj46nwrrfpl0gzanf0jmdg8zzn62l6ldck"
+ }
+ },
+ {
+ "ename": "emoji-github",
+ "commit": "64d18d6bb06d2d747b101845d3ed298787abaec0",
+ "sha256": "09b9kyx1zzi1i2m4isvnhb5526589vscv81xg35pgxwv6ilkky4z",
+ "fetcher": "github",
+ "repo": "jcs-elpa/emoji-github",
+ "unstable": {
+ "version": [
+ 20200323,
+ 233
+ ],
+ "deps": [
+ "emojify",
+ "request"
+ ],
+ "commit": "43f63c0dd64aae6c8054c2dad617bf810abdfadd",
+ "sha256": "0wcxsy3q8912kf87bn3mi2si010i5dd99yinf23nhb2nqvqgiw94"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "emojify",
+ "request"
+ ],
+ "commit": "5d1512fb30c65018a507ef549d92c668d8221da3",
+ "sha256": "00dj0kfllyhiklylj4cjcv64zjaxs6a4cc79f8pppmzvf1spivvz"
+ }
+ },
+ {
+ "ename": "emoji-recall",
+ "commit": "8f03b34d3e8e5edf9888c71b6e4bd2e1a5aec016",
+ "sha256": "06cahk2h6q3vlw2p4jmjrpzycxpm884p31yhbp77lagkqhs2fzbk",
+ "fetcher": "github",
+ "repo": "lujun9972/emoji-recall.el",
+ "unstable": {
+ "version": [
+ 20160723,
+ 2208
+ ],
+ "commit": "d9122f8fb1467309260109a1985cd14f18fdf631",
+ "sha256": "13ajzafm9wmddch8ipjjkv2p13fmyd0ghdr479lll5c7xff2051x"
+ }
+ },
+ {
+ "ename": "emojify",
+ "commit": "488d2751b5fd3bf00f5a6f0545530f44563b86d7",
+ "sha256": "1sgd32qm43hwby75a9q2pz1yfzj988i35d8p9f18zvbxypy7b2yp",
+ "fetcher": "github",
+ "repo": "iqbalansari/emacs-emojify",
+ "unstable": {
+ "version": [
+ 20200812,
+ 628
+ ],
+ "deps": [
+ "ht",
+ "seq"
+ ],
+ "commit": "d886069974d05c8c15654204f9afeaee962f3e7d",
+ "sha256": "00s6vzziiym4bqh91c1k55qjihpmqs7w6kcxnwms8mx92w40hlw2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "ht",
+ "seq"
+ ],
+ "commit": "302d16e9bac72faf94984e0c48ecd0e4b8d66738",
+ "sha256": "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"
+ }
+ },
+ {
+ "ename": "emojify-logos",
+ "commit": "114d5596a7b36f47c150c413c6ecc74de36ca239",
+ "sha256": "0kgci1svi80xnz44bvh19si8bcjllrkm9rbd8761h77iylkqs3q5",
+ "fetcher": "github",
+ "repo": "mxgoldstein/emojify-logos",
+ "unstable": {
+ "version": [
+ 20180814,
+ 917
+ ],
+ "deps": [
+ "emojify"
+ ],
+ "commit": "a3e78bcbdf863092d4c9b026ac08bf7d1c7c0e8b",
+ "sha256": "1fhxf3nky9wlcn54q60f9254iawcccsrxw370q7cgpsrl1gj3dgp"
+ }
+ },
+ {
+ "ename": "empos",
+ "commit": "461f7849e7be986994dd1e7cf109b66e8c37c719",
+ "sha256": "0wbrszl9rq4is0ymxq9lxpqzlfg93gljh6almjy0hp3cs7pkzyl4",
+ "fetcher": "github",
+ "repo": "dimalik/empos",
+ "unstable": {
+ "version": [
+ 20151011,
+ 1916
+ ],
+ "commit": "7b99ad30e56937adb7e6349777e5a2045597d564",
+ "sha256": "0bm0cxnv7g2dzfvfhkyy16kzn6shvy9gzypiqyjj42ng54xmhs0n"
+ }
+ },
+ {
+ "ename": "emr",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "02a7yzv6vxdazi26wk1ijadrjffd4iaf1abhpv642xib86pgpfd6",
+ "fetcher": "github",
+ "repo": "Wilfred/emacs-refactor",
+ "unstable": {
+ "version": [
+ 20200420,
+ 721
+ ],
+ "deps": [
+ "cl-lib",
+ "clang-format",
+ "dash",
+ "iedit",
+ "list-utils",
+ "paredit",
+ "popup",
+ "projectile",
+ "s"
+ ],
+ "commit": "a8f6ab823453decf43f0764d02e554d05009a631",
+ "sha256": "0d1qd9jzmh0vg1in6q1xjlwq85sgds5lfvyg2wi6z8ci5a7m3ahs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "clang-format",
+ "dash",
+ "iedit",
+ "list-utils",
+ "paredit",
+ "popup",
+ "projectile",
+ "s"
+ ],
+ "commit": "2b3606252d2dd29898d0ef702918eb13081b6c1a",
+ "sha256": "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"
+ }
+ },
+ {
+ "ename": "enclose",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1bkrv3cwhbiydgfjhmyjr96cvsgr9zi8n0ir1akgamccm2ln73d6",
+ "fetcher": "github",
+ "repo": "rejeep/enclose.el",
+ "unstable": {
+ "version": [
+ 20121008,
+ 1614
+ ],
+ "commit": "2747653e84af39017f503064bc66ed1812a77259",
+ "sha256": "0dz5xm05d7irh1j8iy08jk521p19cjai1kw68z2nngnyf1az7cim"
+ }
+ },
+ {
+ "ename": "encourage-mode",
+ "commit": "1e90146c03a3f85313e3d338c48547ccfb73f605",
+ "sha256": "0fwn6w7s61c08z0d8z3awclqrhszia9is30gm2kx4hwr9dhhwh63",
+ "fetcher": "github",
+ "repo": "halbtuerke/encourage-mode.el",
+ "unstable": {
+ "version": [
+ 20151128,
+ 905
+ ],
+ "commit": "99edacf2d94d168d3da0609860dc7253db7c9815",
+ "sha256": "0k5ns40s5nskn0zialwq96qll1v5k50lfa5xh8hxbpcamsfym6h8"
+ }
+ },
+ {
+ "ename": "engine-mode",
+ "commit": "ea1b5dfb6628cf17e77369f25341835aad425f54",
+ "sha256": "1gg7i93163m7k7lr3pnal1svymnhzwrfpfcdc0798d7ybv26gg8c",
+ "fetcher": "github",
+ "repo": "hrs/engine-mode",
+ "unstable": {
+ "version": [
+ 20200611,
+ 1825
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e0910f141f2d37c28936c51c3c8bb8a9ca0c01d1",
+ "sha256": "15zx4a8gvgk077pnj7wr78nfjrzrj2i9ma6cj6jj6i8ikz6wyvjz"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "96b3488a6de2f50b8ba3a101e04ebcbe9821a989",
+ "sha256": "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"
+ }
+ },
+ {
+ "ename": "enh-ruby-mode",
+ "commit": "cd1ac1ce69b77b11f34c4175611a852e7ec0806c",
+ "sha256": "0r486yajjf7vsaz92ypxpfmz2nsvw9giffpxb9szj7fcry3nfdns",
+ "fetcher": "github",
+ "repo": "zenspider/enhanced-ruby-mode",
+ "unstable": {
+ "version": [
+ 20200729,
+ 634
+ ],
+ "commit": "f0bffbe4b32bb59680f897731169442cce5a1eec",
+ "sha256": "0zjx6mz8kql9d09rzqircbqd9rcpfsn1k7nz9vwijp59m6mnjw1h"
+ },
+ "stable": {
+ "version": [
+ 20191111
+ ],
+ "commit": "4e058f36a455c90816fd9615a4a7a63a8c8b8cc8",
+ "sha256": "1jpiyjb5291jk6pd649d6i8nxaazqjznb3zpksp7ykrqqgw4wgjm"
+ }
+ },
+ {
+ "ename": "enlive",
+ "commit": "388fa2580e687d9608b11cdc069841831b414b29",
+ "sha256": "1dyayk37zik12qfh8zbjmhsch64yqsx3acrlm7hcnavx465hmhnz",
+ "fetcher": "github",
+ "repo": "zweifisch/enlive",
+ "unstable": {
+ "version": [
+ 20170725,
+ 1417
+ ],
+ "commit": "604a8ca272b6889f114e2b5a13adb5b1dc4bae86",
+ "sha256": "1iwfb5hxhnp4rl3rh5yayik0xl2lg82klxkvqf29536pk8ip710m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "60facaf8bc48b660d209551c0ce4d17e5c907ab8",
+ "sha256": "08j6b79vy8ry4ad1abk3hvxjbb4ylrhkvrbrnq1gcikl4h1p2v63"
+ }
+ },
+ {
+ "ename": "eno",
+ "commit": "2c01af1911a0c8856e3dee09b6d233f821d67814",
+ "sha256": "1agnkykmq8d6mw4cwdw772zzsrwdd28v8m37894w2c80cxmjjrbq",
+ "fetcher": "github",
+ "repo": "emacsattic/eno",
+ "unstable": {
+ "version": [
+ 20191013,
+ 1239
+ ],
+ "deps": [
+ "dash",
+ "edit-at-point"
+ ],
+ "commit": "c5c6193687c0bede1ddf507c430cf8b0a6d272d9",
+ "sha256": "1khi2x0v2f7kn74s5mszp4f5qsdp6v91b98y8gyzhrxic7n083q4"
+ }
+ },
+ {
+ "ename": "enotify",
+ "commit": "f10631b740eea56e7209d7e84f0da8613274ef1d",
+ "sha256": "0mii6m6zw9y8njgzi79rcf1n251iw7qz3yqjjij3c19rk3zpm5qi",
+ "fetcher": "github",
+ "repo": "laynor/enotify",
+ "unstable": {
+ "version": [
+ 20130407,
+ 1348
+ ],
+ "commit": "7fd2f48ef4ff32c8f013c634ea2dd6b1d1409f80",
+ "sha256": "0v5p97dvzrk3j59yjc6iny71j3fdw9bb8737wnnzm098ff42dfmd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "commit": "75c84b53703e5d52cb18acc9251b87ffa400f388",
+ "sha256": "1in4wbwkxn8qfcsfjbczzk73z74w4ixlml61wk666dw0kpscgbs5"
+ }
+ },
+ {
+ "ename": "envrc",
+ "commit": "f66883b0d6a49decde7d438d9d4bdfa107a3554e",
+ "sha256": "1hkz0a7rs2yqapv3asmqr9pb8r8jk5hlmrpp8ab5l7qsdjm7xn63",
+ "fetcher": "github",
+ "repo": "purcell/envrc",
+ "unstable": {
+ "version": [
+ 20200714,
+ 201
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "1dc5aad14d2c27211c7c288d2d9dffeb2e27cb2d",
+ "sha256": "11ad4i1cyz6cfsckm4jf10w0570sd2fcrji87sf5052csl4ril2h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "a15003d6b540b1b07847310d5ed4c39046336a7d",
+ "sha256": "1sspy227b733dxx6czml5lmx9g7nsxwgnazk1b9ip81q0cm0dv55"
+ }
+ },
+ {
+ "ename": "eopengrok",
+ "commit": "2b87ea158a6fdbc6b4e40fd7c0f6814d135f8545",
+ "sha256": "0756x78113286hwk1i1m5s8xq04gh7zxb4fkmw58lg2ssff8q6av",
+ "fetcher": "github",
+ "repo": "youngker/eopengrok.el",
+ "unstable": {
+ "version": [
+ 20200205,
+ 624
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "magit",
+ "s"
+ ],
+ "commit": "6fa16c4ccaaebaef64dca0d3d29904c45fd6597d",
+ "sha256": "1y6n5b9pk4c3badzhwm7qv1jw60p34z55ljwhaaqlnmv7nq1qnj3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "magit",
+ "s"
+ ],
+ "commit": "11c99f7e1e2c1c7d70cbda496cb5b6c7f6e4082a",
+ "sha256": "1c5kzq3h7gr0459z364dyq5m8vq0ydclw5wphqj9fyg28mxjj6ns"
+ }
+ },
+ {
+ "ename": "epc",
+ "commit": "8bc29a8d518ce7a584277089bd4654f52ac0f358",
+ "sha256": "1l9rcx07pa4b9z5654gyw6b64c95lcigzg15amphwr56v2g3rbzx",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-epc",
+ "unstable": {
+ "version": [
+ 20140610,
+ 534
+ ],
+ "deps": [
+ "concurrent",
+ "ctable"
+ ],
+ "commit": "e1bfa5ca163273859336e3cc89b4b6460f7f8cda",
+ "sha256": "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "concurrent",
+ "ctable"
+ ],
+ "commit": "16e975efad63093a1f1f7b59f8fda5a3cf34f2a0",
+ "sha256": "0smk23f23jdnvmrisj5d4isna36sr15bbvh53dq5261y8ddxlkvw"
+ }
+ },
+ {
+ "ename": "epic",
+ "commit": "7c7162791d560846fe386746c00a9fe88c8007bb",
+ "sha256": "0gfl8if83jbs0icz6gcjkwxvcz5v744k1kvqnbx3ga481kds9rqf",
+ "fetcher": "github",
+ "repo": "yoshinari-nomura/epic",
+ "unstable": {
+ "version": [
+ 20170210,
+ 23
+ ],
+ "deps": [
+ "htmlize"
+ ],
+ "commit": "a41826c330eb0ea061d58a08cc861b0c4ac8ec4e",
+ "sha256": "0mvg52f2y3725hlzqcn2mh8jihnbg68wlqmq951sa3qfma7m40pp"
+ }
+ },
+ {
+ "ename": "epkg",
+ "commit": "2df16abf56e53d4a1cc267a78797419520ff8a1c",
+ "sha256": "0vvkjjaffvwvsvld3c6hwd18icmp2lc7f9yqvclifpadi98dhpww",
+ "fetcher": "github",
+ "repo": "emacscollective/epkg",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1145
+ ],
+ "deps": [
+ "closql"
+ ],
+ "commit": "ac6e85e11f0e071911279f3f0a4ea7bff35b68cf",
+ "sha256": "1g5g8rs4zpwlxmkmnml34hy0arbhq8fsmyxqjq0h1l1xxbwscdl4"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 2,
+ 2
+ ],
+ "deps": [
+ "closql",
+ "dash"
+ ],
+ "commit": "ca211c5225aa550374d77629dd9b87e2b0b0d992",
+ "sha256": "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"
+ }
+ },
+ {
+ "ename": "epl",
+ "commit": "9c6cf24e86d8865bd2e4b405466118de1894851f",
+ "sha256": "0zr3r2hn9jaxscrl83hyixznb8l5dzfr6fsac76aa8x12xgsc5hn",
+ "fetcher": "github",
+ "repo": "cask/epl",
+ "unstable": {
+ "version": [
+ 20180205,
+ 2049
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "78ab7a85c08222cd15582a298a364774e3282ce6",
+ "sha256": "0ksilx9gzdazngxfni5i632jpb1nprcxplsbhgqirs2xdl53q8v8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fd906d3f92d58ecf24169055744409886ceb06ce",
+ "sha256": "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"
+ }
+ },
+ {
+ "ename": "epm",
+ "commit": "e12e8ae2e8e8aff7cbd75a951dd328cb9ccf58b0",
+ "sha256": "0k94qhzxjzw5d0c53jnyx1xfciwr9qib845awyjaybzzs34s8r08",
+ "fetcher": "github",
+ "repo": "xuchunyang/epm",
+ "unstable": {
+ "version": [
+ 20190509,
+ 443
+ ],
+ "deps": [
+ "epl"
+ ],
+ "commit": "6375ddbf93c5f25647f6ebb25b54045b3c93a5be",
+ "sha256": "1m0l0szrwljzsch4xj9a42nflpqfii68g8clizsjwv323h6xff4n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "epl"
+ ],
+ "commit": "6375ddbf93c5f25647f6ebb25b54045b3c93a5be",
+ "sha256": "1m0l0szrwljzsch4xj9a42nflpqfii68g8clizsjwv323h6xff4n"
+ }
+ },
+ {
+ "ename": "epresent",
+ "commit": "150487558ecda0520c637ffed1ffe2fbf2dc5811",
+ "sha256": "176d1nwsafi6fb0dnv35bfskp0xczyzf2939gi4bz69zh0161jg8",
+ "fetcher": "github",
+ "repo": "dakrone/epresent",
+ "unstable": {
+ "version": [
+ 20160411,
+ 201
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "6c8abedcf46ff08091fa2bba52eb905c6290057d",
+ "sha256": "1qa1nq63kax767gs53s75ihspirvh69l4xdm89mj57qvrbpz36z5"
+ }
+ },
+ {
+ "ename": "eprime-mode",
+ "commit": "37b4f3dce033fa18d23202ca4c36bc85754d547d",
+ "sha256": "0vswjcs24f3mdyw6ai7p21ab8pdn327lr2d6css0a5nrg539cn2g",
+ "fetcher": "github",
+ "repo": "AndrewHynes/eprime-mode",
+ "unstable": {
+ "version": [
+ 20140513,
+ 1816
+ ],
+ "commit": "17a481af26496be91c07139a9bfc05cfe722506f",
+ "sha256": "1wwg46xdb488wxvglwvsy08vznrnmdmmbcvm9vb60dy3gqjmz7cw"
+ }
+ },
+ {
+ "ename": "eproject",
+ "commit": "d7e82668617a9b599f8994c720f3f123ba1e008a",
+ "sha256": "0kpg4r57khbyinc73v9kj32b9m3b4nb5014r5fkl5mzzpzmd85b4",
+ "fetcher": "github",
+ "repo": "jrockway/eproject",
+ "unstable": {
+ "version": [
+ 20180312,
+ 1642
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "068218d2cf2138cb2e8fc29b57e773a0097a7e8b",
+ "sha256": "110b8gn47m5kafmvxr8q9zzrj0pdn6ikw9xsx4z1rc58i02jy307"
+ }
+ },
+ {
+ "ename": "equake",
+ "commit": "2a4a0ec11a9c720d7ed90addcb31d0a9d5594f5b",
+ "sha256": "17r10d3acmhixbi24k19rx720qi8ss4v53n107arqmr04rkd1v2y",
+ "fetcher": "gitlab",
+ "repo": "emacsomancer/equake",
+ "unstable": {
+ "version": [
+ 20200805,
+ 2110
+ ],
+ "deps": [
+ "dash",
+ "tco"
+ ],
+ "commit": "85fe1033e3aa64986d297bf1fde2d172827309cc",
+ "sha256": "0w3yp9ixdwcm3fl8104yb3rxp1h8z6i6msd95b48jia52dbajzcj"
+ }
+ },
+ {
+ "ename": "eradio",
+ "commit": "b5c8621acac2bfb7859bf0b830994fc867ecdaa2",
+ "sha256": "0kan4ia1g9xsb53gkj43c6sn2009a9cm49x2c30ccj2gl999szq2",
+ "fetcher": "github",
+ "repo": "olav35/eradio",
+ "unstable": {
+ "version": [
+ 20200729,
+ 1817
+ ],
+ "commit": "5e257849113b70b2b42a999994d89ec8abadf253",
+ "sha256": "1nni4yyvhqg4dscgn1xlbgh073lwjff5mqw8zxwyiahfsdi0z9ca"
+ }
+ },
+ {
+ "ename": "erblint",
+ "commit": "5c65941ad1afd57d633f8586e9034c5e14acfa18",
+ "sha256": "1m2w8krg59x5pvbmdnnf9iglx2191hhdpxmfd0ww4bgnf1pf0gn4",
+ "fetcher": "github",
+ "repo": "leodcs/erblint-emacs",
+ "unstable": {
+ "version": [
+ 20200622,
+ 5
+ ],
+ "commit": "89af42f776d8dc656104322edaace2ede7499932",
+ "sha256": "1s3fcic42wlab3vnwdakvy7268cr19j5rd2ajr18qkr0vibj7xxj"
+ }
+ },
+ {
+ "ename": "erc-colorize",
+ "commit": "e69214e89ec0e00b36609fce3efe22b5c1add1f9",
+ "sha256": "1m941q7ql3yb71s71783nvz822bwhn1krmin18fvh0fbsbbnck2a",
+ "fetcher": "github",
+ "repo": "thisirs/erc-colorize",
+ "unstable": {
+ "version": [
+ 20170107,
+ 1339
+ ],
+ "commit": "d026a016dcb9d63d9ac66d30627a92a8f1681bbd",
+ "sha256": "1zzmsrlknrpw26kizd4dm1g604y9nkgh85xal9la70k94qcgv138"
+ }
+ },
+ {
+ "ename": "erc-crypt",
+ "commit": "a1a71b46c0370d2ed25aa3f39983048a04576ad5",
+ "sha256": "1mzzqcxjnll4d9r9n5z80zfb3ywkd8jx6b49g02vwf1iak9h7hv3",
+ "fetcher": "github",
+ "repo": "atomontage/erc-crypt",
+ "unstable": {
+ "version": [
+ 20200516,
+ 2054
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "be87248435509f83c56a7f08ac9bcbbd3b20d780",
+ "sha256": "1d8wfa4rgwv41kmw1kpp90r8371n1l7lfx3k79k2psppvrf72xbf"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6d158b39ea2833b753858153eb110da9b8a40fc4",
+ "sha256": "0pj330x5j9rnwcv2la2yc6w3vsg53c9ij0f3q9zi2psxbr268xi0"
+ }
+ },
+ {
+ "ename": "erc-hl-nicks",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "03hxsknf31vrja2amfa317ig4c34i5jpdq35zczrp00ap0s31nbq",
+ "fetcher": "github",
+ "repo": "leathekd/erc-hl-nicks",
+ "unstable": {
+ "version": [
+ 20200317,
+ 16
+ ],
+ "commit": "a67fe361c8f2aa20fc235447fbb898f424b51439",
+ "sha256": "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 4
+ ],
+ "commit": "a67fe361c8f2aa20fc235447fbb898f424b51439",
+ "sha256": "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"
+ }
+ },
+ {
+ "ename": "erc-image",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1k5llh2jg2wxy9v03qrhwqa6g7apkqiqa47jm24z0ydqinm6zl83",
+ "fetcher": "github",
+ "repo": "kidd/erc-image.el",
+ "unstable": {
+ "version": [
+ 20180522,
+ 1424
+ ],
+ "commit": "82fb3871f02e24b1e880770b9a3d187aab43d0f0",
+ "sha256": "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"
+ }
+ },
+ {
+ "ename": "erc-scrolltoplace",
+ "commit": "848cb17d871287c401496e4483e400b44696e89d",
+ "sha256": "0632i1p26z3f633iinkqka0x2dd55x02xidk9qr66jh0dzfs6q3i",
+ "fetcher": "gitlab",
+ "repo": "jgkamat/erc-scrolltoplace",
+ "unstable": {
+ "version": [
+ 20180608,
+ 606
+ ],
+ "deps": [
+ "switch-buffer-functions"
+ ],
+ "commit": "feb0fbf1fd4bdf220ae2d31ea7c066d8e62089f9",
+ "sha256": "1wb3xm45g77daw2ncs8a8w0m8d2hi591jmzwy5xli1zgrr5mm8h3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "switch-buffer-functions"
+ ],
+ "commit": "7539654e4a72edcc5bba07a101961e5bf0a9d449",
+ "sha256": "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"
+ }
+ },
+ {
+ "ename": "erc-social-graph",
+ "commit": "9f347636c417aaf91728e56fd32313854fde3684",
+ "sha256": "07arn3k89cqxab5x5lczv8bpgrbirmlw9p6c37fgrl3df6f46h4h",
+ "fetcher": "github",
+ "repo": "vibhavp/erc-social-graph",
+ "unstable": {
+ "version": [
+ 20150508,
+ 1204
+ ],
+ "commit": "e6ef3416a1c5064054bf054d9f0c1c7bf54a9cd0",
+ "sha256": "0k3gp4c74g5awk7v9lzb6py3dvf59nggh6dw7530cswxb6kg2psa"
+ }
+ },
+ {
+ "ename": "erc-status-sidebar",
+ "commit": "29631de8ec4140a8e35cc500902b58115faa3955",
+ "sha256": "04qh70ih74vbavq7ccwj1ixpd8s3g8rck9bxv6zhm1yv34bslw5d",
+ "fetcher": "github",
+ "repo": "drewbarbs/erc-status-sidebar",
+ "unstable": {
+ "version": [
+ 20200811,
+ 136
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "b589b74245591257c9e666bd5cd25812e04b7a34",
+ "sha256": "08fvr5ba6gb3y52sypbdj236nxr5rl95zgz1b120scz6xal7mysy"
+ }
+ },
+ {
+ "ename": "erc-terminal-notifier",
+ "commit": "f2ba978b1ba63fac3b7f1e9776ddc3b054455ac4",
+ "sha256": "0vrxkg62qr3ki8n9mdn02sdni5fkj79fpkn0drx0a4kqp0nrrj7c",
+ "fetcher": "github",
+ "repo": "julienXX/erc-terminal-notifier.el",
+ "unstable": {
+ "version": [
+ 20140115,
+ 1024
+ ],
+ "commit": "a3dacb935845e4a20031212bbd82b2170f68d2a8",
+ "sha256": "0cfqbqskh260zfq1lx1s8jz2351w2ij9m73rqim16fy7zr0s0670"
+ }
+ },
+ {
+ "ename": "erc-track-score",
+ "commit": "671afe0ff3889ae8c4b2d7b8617a3a25c16f3f0f",
+ "sha256": "19wjwah2n8ri6gyrsbzxnrvxwr5cj48sxrar1226n9miqvgj5whx",
+ "fetcher": "github",
+ "repo": "jd/erc-track-score.el",
+ "unstable": {
+ "version": [
+ 20130328,
+ 1215
+ ],
+ "commit": "5b27531ea6b1a4c4b703b270dfa9128cb5bfdaa3",
+ "sha256": "0n107d77z04ahypa7hn2165kkb6490v4vkzdm5zwm4lfhvlmp0x2"
+ }
+ },
+ {
+ "ename": "erc-tweet",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0nmh3r8s69hfmkz0jycn7w2icb5gnw2qbf8xjd52kigkdb2s646c",
+ "fetcher": "github",
+ "repo": "kidd/erc-tweet.el",
+ "unstable": {
+ "version": [
+ 20150920,
+ 1258
+ ],
+ "commit": "91fed61e139fa788d66a7358f0d50acc896414b8",
+ "sha256": "118q4zj9dh5xnimcsi229j5pflhcd8qz0p212kc4p9dmyrx2iw0n"
+ }
+ },
+ {
+ "ename": "erc-twitch",
+ "commit": "46f8640b24bade45cc729eeb370adf959f99526f",
+ "sha256": "08vlwcxrzc2ndm52112z1r0qnz6jlmjhiwq2j3j59fbw82ys61ia",
+ "fetcher": "github",
+ "repo": "vibhavp/erc-twitch",
+ "unstable": {
+ "version": [
+ 20170427,
+ 606
+ ],
+ "deps": [
+ "erc",
+ "json"
+ ],
+ "commit": "53c6af0cb72e56d897d30a40e7e5066668d6b5ec",
+ "sha256": "0qirx38czv8m7sgj3rm1zncmyd8z6k4xhd8ixwxl7nigfpqvvv4c"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "erc",
+ "json"
+ ],
+ "commit": "6938191c787d66fef4c13674e0a98a9d64eff364",
+ "sha256": "1xsxykmhz34gmyj4jb26qfai7j95kzlc7vfydrajc6is7xlrwhfk"
+ }
+ },
+ {
+ "ename": "erc-view-log",
+ "commit": "0c0176d8e26014f7b62d14ac3adffa21a84b5741",
+ "sha256": "1k6fawblz0d7kz1y7sa3q43s7ci28jsmzkp9vnl1nf55p9xvv4cf",
+ "fetcher": "github",
+ "repo": "Niluge-KiWi/erc-view-log",
+ "unstable": {
+ "version": [
+ 20140227,
+ 2039
+ ],
+ "commit": "c5a25f0cbca84ed2e4f72068c02b66bd0ea3b266",
+ "sha256": "0bzi2sh2fhrz49j5y53h6jgf41av6rx78smb3bbk6m74is8vim2y"
+ }
+ },
+ {
+ "ename": "erc-youtube",
+ "commit": "a80ee9617a30a8ad1d457a0b0c7f35e6ec1c0bb2",
+ "sha256": "12ylxkskkgfv5x7vlkib963ichb3rlmdzkf4zh8a39cgl8wsmacx",
+ "fetcher": "github",
+ "repo": "kidd/erc-youtube.el",
+ "unstable": {
+ "version": [
+ 20150603,
+ 2136
+ ],
+ "commit": "97054ba8475b442e2aa81e5a291f668b7f28697f",
+ "sha256": "0kh4amx3l3a14qaiyvjyak1jbybs6n49mdvzjrd1i2vd1y74zj5w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "97054ba8475b442e2aa81e5a291f668b7f28697f",
+ "sha256": "0kh4amx3l3a14qaiyvjyak1jbybs6n49mdvzjrd1i2vd1y74zj5w"
+ }
+ },
+ {
+ "ename": "erc-yt",
+ "commit": "ece0a6185a36d52971c35a35f5aa76ddafec3ced",
+ "sha256": "0yrwvahv4l2s1aavy6y6mjlrw8l11i00a249825ab5yaxrkzz7xc",
+ "fetcher": "github",
+ "repo": "yhvh/erc-yt",
+ "unstable": {
+ "version": [
+ 20150426,
+ 1249
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "43e7d49325b17a3217a6ffb4a9daf75c5ff4e6f8",
+ "sha256": "1dlw34kaslyvnsrahf4rm76r2b7qqqn589i4mmhr23prl8xbz9z9"
+ }
+ },
+ {
+ "ename": "ercn",
+ "commit": "a12f264653d79224adeb5d0ae76518dc408ff1e9",
+ "sha256": "0yvis02bypw6v1zv7i326y8s6j0id558n0bdri52hr5pw85imnlp",
+ "fetcher": "github",
+ "repo": "leathekd/ercn",
+ "unstable": {
+ "version": [
+ 20150523,
+ 1503
+ ],
+ "commit": "79a4df5609046ae2e2e3375998287be6dda80615",
+ "sha256": "0xw3d9fz4kmn1myrsy44ki4bgg0aclv41wldl6r9nhvkrnri41cv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "73b00dadf83b97dd9edd8381a4b27f583c08b7f6",
+ "sha256": "19jninbf0dhdw3kn4d38bxmklg0v7sh3m9dwj6z69w99r5pcw480"
+ }
+ },
+ {
+ "ename": "ereader",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1ai27lyb9xcmjjcnppzzhb6ilsvq9d9g9z7h79lp7axq761vind4",
+ "fetcher": "github",
+ "repo": "bddean/emacs-ereader",
+ "unstable": {
+ "version": [
+ 20170810,
+ 501
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "xml+"
+ ],
+ "commit": "f3bbd3f13195f8fba3e3c880aab0e4c60430dcf3",
+ "sha256": "18yqqqxsivnq2m8mxz7ifp0bfmn3q9m11w3abryxg2snh4vb5sy6"
+ }
+ },
+ {
+ "ename": "eredis",
+ "commit": "63f06713d06911f836fe2a4bf199b0794ac89cf0",
+ "sha256": "087lln2izn5bv7bprmbaciivf17vv4pz2cjl91hy2f0sww6nsiw8",
+ "fetcher": "github",
+ "repo": "justinhj/eredis",
+ "unstable": {
+ "version": [
+ 20181119,
+ 131
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "bc86b9f63a3e7a5eb263875030d0e15d6f5f6e37",
+ "sha256": "1a3vvdlld66x0j3i7plhc0fm6mkj64mvd375j8g65nvfn6cwc3h4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 6
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "cfbfc25832f6fbc507bdd56b02e3a0b851a3c368",
+ "sha256": "1f2f57c0bz3c6p11hr69aar6z5gg33zvfvsm76ma11vx21qilz6i"
+ }
+ },
+ {
+ "ename": "erefactor",
+ "commit": "18063e16a6f556b1871e1a5b74e353a85a794e63",
+ "sha256": "0ma9sbrq4n8y5w7vvbhhgmw25aiykbq5yhxzm0knj32bgpviprw7",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-erefactor",
+ "unstable": {
+ "version": [
+ 20200513,
+ 1252
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bfe27a1b8c7cac0fe054e76113e941efa3775fe8",
+ "sha256": "1071gqli1qd498syhysyj2wzyw1nya5070m82xd9qalqdh11b8is"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fde3fd42c815c76e8015f69518a92f6bfcfde990",
+ "sha256": "17i567nfm0rykimh6bpcc5f2l7wsf8zcdy2jzd7sgrl54dvb0g9i"
+ }
+ },
+ {
+ "ename": "ergoemacs-mode",
+ "commit": "02920517987c7fc698de9952cbb09dfd41517c40",
+ "sha256": "0h99m0n3q41lw5fm33pc1405lrxyc8rzghnc6c7j4a6gr1d82s62",
+ "fetcher": "github",
+ "repo": "ergoemacs/ergoemacs-mode",
+ "unstable": {
+ "version": [
+ 20200526,
+ 18
+ ],
+ "deps": [
+ "cl-lib",
+ "undo-tree"
+ ],
+ "commit": "6a3214e1a892a45f575604f0bc4bb83175142aa4",
+ "sha256": "1n0ki4214c53ax3r54gg303kawyqivwcciyhvrgqa1y0kk093982"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 16,
+ 10,
+ 12
+ ],
+ "deps": [
+ "cl-lib",
+ "undo-tree"
+ ],
+ "commit": "ac70b2563fb6e3d69ea382fddc87b5721c20c292",
+ "sha256": "0ydxyylijdd6da4n9by441352shphrpfyk2631ld5aq3gz27z9gi"
+ }
+ },
+ {
+ "ename": "ergoemacs-status",
+ "commit": "f4af9606cfe09cdd294fae6b4b1f477f7861fdb7",
+ "sha256": "065pw31s8dmqpag7zj40iv6dbl0qln7c65gcyp7pz9agg9rp6vbb",
+ "fetcher": "github",
+ "repo": "ergoemacs/ergoemacs-status",
+ "unstable": {
+ "version": [
+ 20160318,
+ 538
+ ],
+ "deps": [
+ "mode-icons",
+ "powerline"
+ ],
+ "commit": "d952cc2361adf6eb4d6af60950ad4ab699c81320",
+ "sha256": "06pdwrhflpi5rkigqnr5h3jzv3dm1p9nydpvql9w33ixm6qhjj71"
+ }
+ },
+ {
+ "ename": "erlang",
+ "commit": "d9cd526f43981e0826af59cdc4bb702f644781d9",
+ "sha256": "1cs768xxbyrr78ln50k4yknmpbcc1iplws3k07r0gx5f3ca73iaq",
+ "fetcher": "github",
+ "repo": "erlang/otp",
+ "unstable": {
+ "version": [
+ 20200519,
+ 530
+ ],
+ "commit": "d9bc7858e985143a433953ba286422511b466a0c",
+ "sha256": "0ik1hhmw4xsmny9j5gbz7lr73jsvdd79xb3ygcsi8jkwz7lxi3v1"
+ },
+ "stable": {
+ "version": [
+ 23,
+ 0,
+ 3
+ ],
+ "commit": "44b6531bc575bac4eccab7eea2b27167f0d324aa",
+ "sha256": "133aw1ffkxdf38na3smmvn5qwwlalh4r4a51793h1wkhdzkyl6mv"
+ }
+ },
+ {
+ "ename": "erlstack-mode",
+ "commit": "6ee61c1c5f116082b37fb13d15052ed9bbbc1dac",
+ "sha256": "0b7mj0rs8k3hdv4v3v5vmdqs0y26mss7dzc0sjjxj4d095yddqqf",
+ "fetcher": "github",
+ "repo": "k32/erlstack-mode",
+ "unstable": {
+ "version": [
+ 20190812,
+ 1117
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "d0a67fb6f91cef02376e71b4b4669b071ebd9737",
+ "sha256": "10b77q2qwwlvj56g9yd6d9lkmk184mjf6x3067vvqs40xiv9bsgl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "07398e929978b0eaf2bf119e97cba7b9f9e90d2a",
+ "sha256": "1gf9k3z9v1s7d01s551ys87j05xh3lpnvv86dq86rz8xinc09kac"
+ }
+ },
+ {
+ "ename": "eros",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0l79bn72x5m2lzglrwwngz3hax9pf8wv7ci86y5pkwaa8frxycww",
+ "fetcher": "github",
+ "repo": "xiongtx/eros",
+ "unstable": {
+ "version": [
+ 20180415,
+ 618
+ ],
+ "commit": "dd8910279226259e100dab798b073a52f9b4233a",
+ "sha256": "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"
+ }
+ },
+ {
+ "ename": "ert-async",
+ "commit": "2ec669e3fc73b0b499b84cec87d0f8621274732e",
+ "sha256": "004798ckri5j72j0xvzkyciss1iz4lw9gya2749hkjxlamg14cn5",
+ "fetcher": "github",
+ "repo": "rejeep/ert-async.el",
+ "unstable": {
+ "version": [
+ 20200105,
+ 1031
+ ],
+ "commit": "948cf2faa10e085bda3739034ca5ea1912893433",
+ "sha256": "1ixkh6bghrg1criczhdvr9igjcdsijadaqvywyjj6bfwd8ql5x39"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "f64a7ed5b0d2900c9a3d8cc33294bf8a79bc8526",
+ "sha256": "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"
+ }
+ },
+ {
+ "ename": "ert-expectations",
+ "commit": "84f836338818946a6bb31d35d6ae959571128ed5",
+ "sha256": "07mp0azb6wsa1z4s6q8jyh7dpzils0wh2bamfmxzy4gjqjwv8ncn",
+ "fetcher": "github",
+ "repo": "emacsorphanage/ert-expectations",
+ "unstable": {
+ "version": [
+ 20121009,
+ 734
+ ],
+ "commit": "aed70e002c4305b66aed7f6d0d48e9addd2dc1e6",
+ "sha256": "0qgi3rj49k0hz4azg7ghcj6385p5s9gakqjhrjnhih7dxvihcgxi"
+ }
+ },
+ {
+ "ename": "ert-junit",
+ "commit": "27c627eacab54896a1363dbabc56250a65343dd8",
+ "sha256": "0bv22mhh1ahbjwi6s1csxkh11dmy0srabkddjd33l4havykxlg6g",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/olanilsson/ert-junit",
+ "unstable": {
+ "version": [
+ 20190802,
+ 2232
+ ],
+ "deps": [
+ "ert"
+ ],
+ "commit": "65f91c35b088b87943dbbbe7e1ce354bc9bc0992",
+ "sha256": "1srmkffzj7xf8iickhyhw1fpg4nxbkp45aiz9w784ra9p99a366y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "ert"
+ ],
+ "commit": "65f91c35b088b87943dbbbe7e1ce354bc9bc0992",
+ "sha256": "1srmkffzj7xf8iickhyhw1fpg4nxbkp45aiz9w784ra9p99a366y"
+ }
+ },
+ {
+ "ename": "ert-modeline",
+ "commit": "3b3a301889d6eea2470017519b080519efbe1bec",
+ "sha256": "06pc50q9ggin20cbfafxd53x35ac3kh85dap0nbws7514f473m7b",
+ "fetcher": "github",
+ "repo": "chrisbarrett/ert-modeline",
+ "unstable": {
+ "version": [
+ 20140115,
+ 1015
+ ],
+ "deps": [
+ "dash",
+ "projectile",
+ "s"
+ ],
+ "commit": "e7be2b81191afb437b70368a819770f8f750e4af",
+ "sha256": "08yfq3qzscxvzyxvyvdqpkrm787278yhkdd9prbvrgjj80p8n7vq"
+ }
+ },
+ {
+ "ename": "ert-runner",
+ "commit": "0a1acc68f296e80b6ed99a1783e9f67be54ffac9",
+ "sha256": "0fnb8rmjr5lvc3dq0fnyxhws8ync1lj5xp8ycs63z4ax6gmdqr48",
+ "fetcher": "github",
+ "repo": "rejeep/ert-runner.el",
+ "unstable": {
+ "version": [
+ 20200704,
+ 1048
+ ],
+ "deps": [
+ "ansi",
+ "commander",
+ "dash",
+ "f",
+ "s",
+ "shut-up"
+ ],
+ "commit": "59a0f07f4f6b7c4757768309e8a47cec983e862a",
+ "sha256": "198bc526s6sw8qqsbmw4wgz5m97n6kf9002f2bgg9phms7a8if4s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 0
+ ],
+ "deps": [
+ "ansi",
+ "commander",
+ "dash",
+ "f",
+ "s",
+ "shut-up"
+ ],
+ "commit": "1829f05c46b0baaae160d900f89c8881f4fcdbcc",
+ "sha256": "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"
+ }
+ },
+ {
+ "ename": "es-lib",
+ "commit": "f10631b740eea56e7209d7e84f0da8613274ef1d",
+ "sha256": "0mwvgf5385qsp91zsdw75ipif1h90xy277xdmrpwixsxd7abbn0n",
+ "fetcher": "github",
+ "repo": "sabof/es-lib",
+ "unstable": {
+ "version": [
+ 20141111,
+ 1830
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "753b27363e39c10edc9e4e452bdbbbe4d190df4a",
+ "sha256": "0jq4yp80wiphlpsc0429rg8n50g8l4lf78q0l3nywz2p93smjy9b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "753b27363e39c10edc9e4e452bdbbbe4d190df4a",
+ "sha256": "0jq4yp80wiphlpsc0429rg8n50g8l4lf78q0l3nywz2p93smjy9b"
+ }
+ },
+ {
+ "ename": "es-mode",
+ "commit": "9912193f73c4beae03b295822bf41cb2298756e2",
+ "sha256": "0zp84k5idqkrvc9qci49ains0b86kpk97lk1jcwyj75s4xsfyp1y",
+ "fetcher": "github",
+ "repo": "dakrone/es-mode",
+ "unstable": {
+ "version": [
+ 20191119,
+ 2018
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "request",
+ "s",
+ "spark"
+ ],
+ "commit": "3aacf72daf6a2b4104914dd40e5f33e78fb084ac",
+ "sha256": "1ki839cfsn2xr2d8a2j89llbl452d45x3y5jiaiwkcmfhf7xadcb"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "spark"
+ ],
+ "commit": "996730ebce57d810d2c275c7fadb11c2b1134dea",
+ "sha256": "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"
+ }
+ },
+ {
+ "ename": "es-windows",
+ "commit": "944d4cd54e040d2a58e1778cb282727deee83f92",
+ "sha256": "112ngkan0hv3y7m71479f46x5gwdmf0vhbqrzs5kcjwlacqlrahx",
+ "fetcher": "github",
+ "repo": "sabof/es-windows",
+ "unstable": {
+ "version": [
+ 20140211,
+ 904
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "239e30408cb1adb4bc8bd63e2df34711fa910b4f",
+ "sha256": "14rsifcx2kwdmwq9zh41fkb848l0f4igp5v9pk3x4jd2yw9gay7m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7ebe6c6e0831373847d7adbedeaa2e506b54b2af",
+ "sha256": "0cjchwrhk7bw87bg10zgcwkga50rvs0jn5v2jf6bbsxbcqx2nfc9"
+ }
+ },
+ {
+ "ename": "esa",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0y4mbq0z6vp0faxq6dq5hhxnsbi685amxqbvpxkxahl1nckp76lb",
+ "fetcher": "github",
+ "repo": "nabinno/esa.el",
+ "unstable": {
+ "version": [
+ 20180403,
+ 1525
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "417e0ac55abe9b17e0b7165d0df26bc018aff42e",
+ "sha256": "0hib8q9fslvw02i1y19z78fv6yy88q09lhfdfmbdyn6yal21855q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 13
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0f69f9f45ac15018c48853509ac38e68286f9c0e",
+ "sha256": "0cairmqsaghl2ddb2v8zhcwy5ik756m7gkair8xrbigz4jklpcv9"
+ }
+ },
+ {
+ "ename": "esh-autosuggest",
+ "commit": "dc3776068d6928fc1661a27cccaeb8fb85577099",
+ "sha256": "1rcng1dhy4yw95qg909ck33svpdxhv9v5k7226d29gp4y54dwyrx",
+ "fetcher": "github",
+ "repo": "dieggsy/esh-autosuggest",
+ "unstable": {
+ "version": [
+ 20190228,
+ 401
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "972094808d231a86dc6e43862191167b1997d840",
+ "sha256": "1nkf3n20bc8fhdw8vmmnrwhaddhmqpjsrxm304ci6r6b4zz71nq6"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 1
+ ],
+ "deps": [
+ "company"
+ ],
+ "commit": "a6d5eb3337d010bd2a2d677ff304cd53adc291a0",
+ "sha256": "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"
+ }
+ },
+ {
+ "ename": "esh-buf-stack",
+ "commit": "61e8f75aa0d5446c61aadc7ac22371e44a3761b8",
+ "sha256": "0zmwlsm98m9vbjk9mldfj2nf6cip7mlvb71j33ddix76yqggp4qg",
+ "fetcher": "github",
+ "repo": "tom-tan/esh-buf-stack",
+ "unstable": {
+ "version": [
+ 20140107,
+ 1018
+ ],
+ "commit": "ce0ea5aadca3150eaa9d2e6ec20296add4e99176",
+ "sha256": "1k8k9hl9m4vjqdw3x9wg04cy2lb9x64mq0mm0i3i6w59zrsnkn4q"
+ }
+ },
+ {
+ "ename": "esh-help",
+ "commit": "ab94c66d1ed7cfdbc437ee239984ba70408fd28a",
+ "sha256": "1k925wmn8jy9rxxsxxawasxq6r4yzwl116digdx314gd3i04sh3w",
+ "fetcher": "github",
+ "repo": "tom-tan/esh-help",
+ "unstable": {
+ "version": [
+ 20190905,
+ 22
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "417673ed18a983930a66a6692dbfb288a995cb80",
+ "sha256": "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "8a8a9d4d9852f8bd96da3b94e95ff57097ac8ec6",
+ "sha256": "02fybhmqm2qmy5qdig7xvwxazqi499pw32kh5mrsbdr14srg9fhs"
+ }
+ },
+ {
+ "ename": "eshell-autojump",
+ "commit": "68bd1a8ec9d17eff2d23e15b3686f7c0b8723126",
+ "sha256": "09l2680hknmdbwr4cncv1v4b0adik0c3sm5i9m3qbwyyxm8m41i5",
+ "fetcher": "github",
+ "repo": "coldnew/eshell-autojump",
+ "unstable": {
+ "version": [
+ 20150927,
+ 724
+ ],
+ "commit": "c6a8b81a16576df9875e721fbbfe6690d04e7e43",
+ "sha256": "13crzgkx1lham1nfsg6hj2zg875majvnig0v4ydg691zk1qi4hc2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "c0866d7f2789831665ebb01b812bae89d085bff0",
+ "sha256": "0nkmwwx224r50y2xnrz3v26l3ngqshvy5hs861gy4zagwllqfmvc"
+ }
+ },
+ {
+ "ename": "eshell-bookmark",
+ "commit": "e7bf4702a907727990fcc676980f2b219e22ab0c",
+ "sha256": "1bybxlq1h5chrjxqjb23kq8dmgw2xrjwkrnvpbphblqzpdy5ck0s",
+ "fetcher": "github",
+ "repo": "Fuco1/eshell-bookmark",
+ "unstable": {
+ "version": [
+ 20170922,
+ 1514
+ ],
+ "commit": "99a491c77e27ecc4626bdd4ad453ac71aa2654d4",
+ "sha256": "0imn9x7lylnzprg54mdmf21nxld1cq3r1037jzix0pq39bgz0vk7"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "commit": "deda4b848b2fb979dbe73ead2cb866610e3596ed",
+ "sha256": "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"
+ }
+ },
+ {
+ "ename": "eshell-did-you-mean",
+ "commit": "a7649eca21a21ddbbc7131f29cbbd91a00a84060",
+ "sha256": "1z1wpn3sj1gi5nn0a71wg0i3av0dijnk79dc32zh3qlh500kz8mz",
+ "fetcher": "github",
+ "repo": "xuchunyang/eshell-did-you-mean",
+ "unstable": {
+ "version": [
+ 20150915,
+ 1952
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7cb6ef8e2274d0a50a9e114d412307a6543533d5",
+ "sha256": "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7cb6ef8e2274d0a50a9e114d412307a6543533d5",
+ "sha256": "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"
+ }
+ },
+ {
+ "ename": "eshell-fixed-prompt",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0mhrfxf19p4qqnlnnfc0z70324c7qiiv63riaz4cn5jj1ps3v0iy",
+ "fetcher": "github",
+ "repo": "mallt/eshell-fixed-prompt-mode",
+ "unstable": {
+ "version": [
+ 20190111,
+ 2235
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "2c860029354bf1f69edc1f12e4a0d9aeb9054f5d",
+ "sha256": "1j1m661rgbfr04357wq2a7vhm04s3vrbw4r6y1k2cx2ap9amkb25"
+ }
+ },
+ {
+ "ename": "eshell-fringe-status",
+ "commit": "9efd9fefab5d449b9f70d9f548aadfea52d66bc0",
+ "sha256": "1vavidnijxzhr4v39q4bxi645vsfcj6vp0wnlhznpxagshr950lg",
+ "fetcher": "github",
+ "repo": "ryuslash/eshell-fringe-status",
+ "unstable": {
+ "version": [
+ 20170117,
+ 2316
+ ],
+ "commit": "adc6997c68e39c0d52a2af1b2fd5cf2057783797",
+ "sha256": "1cwn4cvjjd4l5kk7s6cxzafjmdv3s7k78i73fvscmsnpwx9p2wj0"
+ }
+ },
+ {
+ "ename": "eshell-git-prompt",
+ "commit": "5272280b19579c302ba41b53c77e42bc5e8ccbda",
+ "sha256": "0a8pyppqvnavvb8rwsjxagb76hra9zhs5gwa0ylyznmql83f8w8s",
+ "fetcher": "github",
+ "repo": "xuchunyang/eshell-git-prompt",
+ "unstable": {
+ "version": [
+ 20200109,
+ 2250
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "48ee35774c9b8d0e2d96110e3ae84bac60f43dfd",
+ "sha256": "1w0drk4sfljshcnlvvn028v4lzqznglfx8ly0mfridsm85xws3pw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "b6bb2d7bd4e393b4170b29891cfefb72ae020aab",
+ "sha256": "02i00an9wa8ns66xq900la68m7pd4hwv95g83cvf22bypivx7p2y"
+ }
+ },
+ {
+ "ename": "eshell-prompt-extras",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "1k0cig7chdm349bp6rz9z105njs9bxicnpkcm4v0nrnk59ynj2h6",
+ "fetcher": "github",
+ "repo": "zwild/eshell-prompt-extras",
+ "unstable": {
+ "version": [
+ 20200319,
+ 322
+ ],
+ "commit": "1801b3aeccf1363f138fe01ee99d892d10fc2a07",
+ "sha256": "1dgfd9yf4ikn5whqpxyliyp21vs1h852wjfqy5lmxzhnzic1xsi1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "356a540f9365b2f37f8a8cfb9c0e0e1994d12f4a",
+ "sha256": "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"
+ }
+ },
+ {
+ "ename": "eshell-toggle",
+ "commit": "b7a3cf4c5ed3bb0995eac9dcce939b518a0ef987",
+ "sha256": "06cxjh0cqcafb4skw317f8wria9gv77wbwpc62a276s3zrv961qf",
+ "fetcher": "github",
+ "repo": "4DA/eshell-toggle",
+ "unstable": {
+ "version": [
+ 20200528,
+ 1124
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "aeb7c121e4518c0edd1d2972851502303a299984",
+ "sha256": "12w38h438bg2vm8najsqizcdfyr1px5h1gba68x4mzyv2bcll2qx"
+ }
+ },
+ {
+ "ename": "eshell-up",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1jyaaw950isissjjgqflfn2bllgdfcyphpbi7il06mv9p0dzpwvy",
+ "fetcher": "github",
+ "repo": "peterwvj/eshell-up",
+ "unstable": {
+ "version": [
+ 20170425,
+ 1737
+ ],
+ "commit": "9c100bae5c3020e8d9307e4332d3b64e7dc28519",
+ "sha256": "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "653121392acd607d5dfbca0832927e06806a2d39",
+ "sha256": "05mfwp8zira7p2ip1rmqa08arlbkv7w1mbx7s5saj655scg7jaq3"
+ }
+ },
+ {
+ "ename": "eshell-z",
+ "commit": "8079cecaa59ad2ef22812960838123effc46a9b3",
+ "sha256": "14ixazj0nscyqsdv7brqnfr0q8llir1pwb91yhl9jdqypmadpm6d",
+ "fetcher": "github",
+ "repo": "xuchunyang/eshell-z",
+ "unstable": {
+ "version": [
+ 20191116,
+ 333
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "337cb241e17bd472bd3677ff166a0800f684213c",
+ "sha256": "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "337cb241e17bd472bd3677ff166a0800f684213c",
+ "sha256": "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"
+ }
+ },
+ {
+ "ename": "eslint-fix",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0ry271jlv95nhdqx6qxmvkpa10lpwkg1q6asnliviwplq2mxw2da",
+ "fetcher": "github",
+ "repo": "codesuki/eslint-fix",
+ "unstable": {
+ "version": [
+ 20180514,
+ 700
+ ],
+ "commit": "f81f3b47a47460611fbdbdae1d23275ec78f2f8d",
+ "sha256": "0k3asz3mdz4nm8lq37x9rgx4wb8hsfyr0hlfyhzwdb10x57jfzns"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "be90d1e78b1dfd43b6b3b1c06868539e2ac27d3a",
+ "sha256": "1l7pm0ywjby0giilyn6qsz1zh54sgmvmii7y9jhrva13c5kgg9an"
+ }
+ },
+ {
+ "ename": "eslintd-fix",
+ "commit": "c72d2b3ee9b8066d51d09e165e58e9846ca879cc",
+ "sha256": "0lv4xpp9bm1yyn9mj7hpgw1v46yyxr0nlwggbav78jbg4v7ai04v",
+ "fetcher": "github",
+ "repo": "aaronjensen/eslintd-fix",
+ "unstable": {
+ "version": [
+ 20190830,
+ 2116
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "0c431141be9a408c28aead152ea454df0804364f",
+ "sha256": "0yyssbgfi3fg3dbfrzsy9sms42z87apk6amql8pijwzb3b735jc2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "97e8aa9b106e3e4b3a44c775ca972bdd2feda9ec",
+ "sha256": "1g6bv58m1052x2f5ffs17ryyqv0ay8vii5bwqs7dyfhlpppsn6c8"
+ }
+ },
+ {
+ "ename": "esonify",
+ "commit": "8a05dadbf515af6202d1cb96d4fdceb07bb7a6da",
+ "sha256": "0facvhl6p4v1h3magvp6lzahdzbgg7a15hbj9rgfncvfzfjzlq5a",
+ "fetcher": "github",
+ "repo": "oflatt/esonify",
+ "unstable": {
+ "version": [
+ 20190110,
+ 1621
+ ],
+ "deps": [
+ "cl-lib",
+ "deferred"
+ ],
+ "commit": "bdc79d4ab2e3c449b5bef46e5cabc552beeed5c6",
+ "sha256": "03xl6a49pg3y1g3dl7fglrn956ynzj2vlviwlv08ngflvbn5shai"
+ }
+ },
+ {
+ "ename": "espresso-theme",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "1njc1ppi1jvb3mdckr19kbk7g0a3dx8j4d6j101ygszzrr24ycmv",
+ "fetcher": "github",
+ "repo": "dgutov/espresso-theme",
+ "unstable": {
+ "version": [
+ 20181025,
+ 826
+ ],
+ "commit": "d2fa034eb833bf37cc6842017070725e0da9b046",
+ "sha256": "0fds36w6l2aaa88wjkd2ck561i0wwpxgz5ldadhbi5lvfwj9386m"
+ }
+ },
+ {
+ "ename": "espuds",
+ "commit": "14cf66e6929db2a0f377612e786aaed9eb12b799",
+ "sha256": "16yzw9l64ahf5v92jzb7vyb4zqxxplq6qh0y9rkfmvm59s4nhk6c",
+ "fetcher": "github",
+ "repo": "ecukes/espuds",
+ "unstable": {
+ "version": [
+ 20160905,
+ 1300
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "78fc53feaf77a98d63894cd410faee2a18107b00",
+ "sha256": "04479z1397vaz48bxx3f1xdvxnq1p01gg1y5f3hcbswjl8j3ahmr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "1405972873339e056517217136de4ad3202d744a",
+ "sha256": "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"
+ }
+ },
+ {
+ "ename": "espy",
+ "commit": "184718ee62f25b2bfed7d5126e02bce3290c50c4",
+ "sha256": "1icyiygw7brn4lrp28szmk4kk94n5q1zlrzrl6z7y0hdhdsjflgg",
+ "fetcher": "github",
+ "repo": "walseb/espy",
+ "unstable": {
+ "version": [
+ 20200317,
+ 2333
+ ],
+ "commit": "2c01be937a5e5bde62921684a0b27300705fb4e0",
+ "sha256": "1nnnr184y29g1svxqxlqyg5irzrf1xmay4p78jfv8v07sisl90kp"
+ }
+ },
+ {
+ "ename": "esqlite",
+ "commit": "bbec16cd1682ac15a81304f351f9c4e6b3b70fa9",
+ "sha256": "1dny5qjzl9gaj90ihzbhliwk0n0x7jz333hzf6gaw7wsjmx91wlh",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-esqlite",
+ "unstable": {
+ "version": [
+ 20151206,
+ 1206
+ ],
+ "deps": [
+ "pcsv"
+ ],
+ "commit": "08a779a821f8d32c1a1985d8d9eb6cf21646ce2e",
+ "sha256": "18dvg2yagk9qyn3xfnhgfv192vyqzahzfy8xgc1fnm7a1l0gcg2x"
+ }
+ },
+ {
+ "ename": "esqlite-helm",
+ "commit": "bbec16cd1682ac15a81304f351f9c4e6b3b70fa9",
+ "sha256": "00y2nwyx13xlny40afczr31lvbpnw1cgmj5wc3iycyznizg5kvhq",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-esqlite",
+ "unstable": {
+ "version": [
+ 20151116,
+ 850
+ ],
+ "deps": [
+ "esqlite",
+ "helm"
+ ],
+ "commit": "08a779a821f8d32c1a1985d8d9eb6cf21646ce2e",
+ "sha256": "18dvg2yagk9qyn3xfnhgfv192vyqzahzfy8xgc1fnm7a1l0gcg2x"
+ }
+ },
+ {
+ "ename": "ess",
+ "commit": "678b5515b5194da6ca605c2070ce1f3ed730f008",
+ "sha256": "0nw56mjp17xw7ay2ka10rxa0sa764spsvzjrh5hscn7x02qychy9",
+ "fetcher": "github",
+ "repo": "emacs-ess/ESS",
+ "unstable": {
+ "version": [
+ 20200819,
+ 1030
+ ],
+ "commit": "1baf8bf1403fe5956a25475b03be0d8f02b3f3ca",
+ "sha256": "0asyd67krsq3xx7kk770x1f70j33bga8w0i7l4089a1jqzmpn3kx"
+ },
+ "stable": {
+ "version": [
+ 18,
+ 10,
+ 2
+ ],
+ "deps": [
+ "julia-mode"
+ ],
+ "commit": "0728c6fdf8e13f10ee50b27fb3f39e7c229f05b1",
+ "sha256": "1yq41l2bicwjrc0b731iic20cpcnz6ppigri1jn621qv2qv22vy3"
+ }
+ },
+ {
+ "ename": "ess-R-data-view",
+ "commit": "492c90bd0ee97c0b895efa0c5e647b2becc6db11",
+ "sha256": "0r2fzwayf3yb7fqk6f31x4xfqiiczwik8qw4rrvkqx2h3s1kz7i0",
+ "fetcher": "github",
+ "repo": "myuhe/ess-R-data-view.el",
+ "unstable": {
+ "version": [
+ 20130509,
+ 1158
+ ],
+ "deps": [
+ "ctable",
+ "ess",
+ "popup"
+ ],
+ "commit": "d6e98d3ae1e2a2ea39a56eebcdb73e99d29562e9",
+ "sha256": "1ya2ay52gkrd31pmw45ban8kkxgnzhhwkzkypwdhjfccq3ys835x"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "ctable",
+ "ess",
+ "popup"
+ ],
+ "commit": "d6e98d3ae1e2a2ea39a56eebcdb73e99d29562e9",
+ "sha256": "1ya2ay52gkrd31pmw45ban8kkxgnzhhwkzkypwdhjfccq3ys835x"
+ }
+ },
+ {
+ "ename": "ess-smart-equals",
+ "commit": "4403cf87e05311d7fe0360f35f9634b9fdfc6f81",
+ "sha256": "0mfmxmsqr2byj56psx4h08cjc2j3aac3xqr04yd47k2mlivnyrxp",
+ "fetcher": "github",
+ "repo": "genovese/ess-smart-equals",
+ "unstable": {
+ "version": [
+ 20190204,
+ 449
+ ],
+ "deps": [
+ "ess"
+ ],
+ "commit": "746cf9e78c3b86cbbf78d69c335a8a4ff3da79d6",
+ "sha256": "1by8bzw3yl86mqzh7lwz5dca243n956jnd2rz4vilpgbh5cka2l3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "ess"
+ ],
+ "commit": "746cf9e78c3b86cbbf78d69c335a8a4ff3da79d6",
+ "sha256": "1by8bzw3yl86mqzh7lwz5dca243n956jnd2rz4vilpgbh5cka2l3"
+ }
+ },
+ {
+ "ename": "ess-smart-underscore",
+ "commit": "b4d6166f5c80cf37c79256402fa633ad2274d065",
+ "sha256": "01pki1xa8zpgvldcbjwg6vmslj7ddf44hsx976xipc95vrdk15r2",
+ "fetcher": "github",
+ "repo": "mattfidler/ess-smart-underscore.el",
+ "unstable": {
+ "version": [
+ 20190309,
+ 101
+ ],
+ "deps": [
+ "ess"
+ ],
+ "commit": "aa871c5b0448515db439ea9bed6a8574e82ddb47",
+ "sha256": "0knb4zfva2m0vd8awcfy5kyd21rjdhxnc1n74qazr9y82l5w7i9b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 81
+ ],
+ "deps": [
+ "ess"
+ ],
+ "commit": "ed4b37e8976124a182196a721068a8e334b6aa97",
+ "sha256": "00hkq5q1ra9mqjj08f357m1lg1wx1sj4nm0rb382vhf31mlj15m7"
+ }
+ },
+ {
+ "ename": "ess-view",
+ "commit": "96960a8799138187b748a47ac007dc25d739fe10",
+ "sha256": "1zx5sbxmbs6ya349ic7yvnx56v3km2cb27p8kan5ygisnwwq2wc4",
+ "fetcher": "github",
+ "repo": "GioBo/ess-view",
+ "unstable": {
+ "version": [
+ 20181001,
+ 1730
+ ],
+ "deps": [
+ "ess",
+ "f",
+ "s"
+ ],
+ "commit": "d4e5a340b7bcc58c434867b97923094bd0680283",
+ "sha256": "1yzki5f2k7gmj4m0871h4h46zalv2x71rbpa6glkfx7bm9kyc193"
+ }
+ },
+ {
+ "ename": "esup",
+ "commit": "b9d2948a42da5d4864404d2d11a924a4f235fc3b",
+ "sha256": "0cv3zc2zzm38ki3kxq58g9sp4gsk3dffa398wky6z83a3zc02zs0",
+ "fetcher": "github",
+ "repo": "jschaf/esup",
+ "unstable": {
+ "version": [
+ 20200814,
+ 1400
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "0de8af8233d9ce1b67f05a50f25c481c4f1118d8",
+ "sha256": "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "49e05d4f96adfbf71e608a78d23bbf148a8a7fc0",
+ "sha256": "020svy3r1m7xs38vcinad8kjd4622wvh4scfmjpklbln8r99n178"
+ }
+ },
+ {
+ "ename": "esxml",
+ "commit": "db6556fe1b2403d1bcdade263986fd0faf0d9087",
+ "sha256": "1375gryii984l33gc8f8yhl3vncjmw1w9k6xpvjgmnpx2fwr1vbq",
+ "fetcher": "github",
+ "repo": "tali713/esxml",
+ "unstable": {
+ "version": [
+ 20171129,
+ 807
+ ],
+ "commit": "193d199305e7abcb5ed795b9bc5434ded20ae60e",
+ "sha256": "1cbzdwfndz6pdmb3vzb6l2smxb2l47sncmkccya0nzlvvhz3p8c0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 4
+ ],
+ "commit": "5548ceba17deae0c3c6d0092672edc4de3c75ce3",
+ "sha256": "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"
+ }
+ },
+ {
+ "ename": "etable",
+ "commit": "afee0fed80f4fa444116b12653c034d760f5f1fb",
+ "sha256": "0m4h24mmhp680wfhb90im228mrcyxapzyi4kla8xdmss83gc0c32",
+ "fetcher": "github",
+ "repo": "Fuco1/ETable",
+ "unstable": {
+ "version": [
+ 20161028,
+ 2009
+ ],
+ "deps": [
+ "dash",
+ "interval-list"
+ ],
+ "commit": "d502141f0c69bf95256ba5cb9cd15350c7e942d2",
+ "sha256": "0k0g58qzkkzall715k0864v3b7p5jnfwxqgmkj087x34frcf388k"
+ }
+ },
+ {
+ "ename": "etc-sudoers-mode",
+ "commit": "e665f3b7fd75544c174ac3da9e0a498ceb694f5a",
+ "sha256": "01sn1pd6s4blf6dk3vvi70sr1mgcfsigb1qvxk3dsggf1ng2rhsk",
+ "fetcher": "gitlab",
+ "repo": "mavit/etc-sudoers-mode",
+ "unstable": {
+ "version": [
+ 20200608,
+ 1555
+ ],
+ "commit": "52d5be9214185cfbba56e0b39bc4af474fc95f45",
+ "sha256": "1ff4dpwr0127mziwafxry5a9iyw8lbm4z8bdlim81p4pyyll7vx6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "8d3805d8b8e016278204d727f6b97913ea0e5079",
+ "sha256": "0cg0l8ksqrxy0clzj5x8l891873zcxwwzziv1mvwf8i618w2sjss"
+ }
+ },
+ {
+ "ename": "eterm-256color",
+ "commit": "e556383f7e18c0215111aa720d4653465e91eff6",
+ "sha256": "1mxc2hqjcj67jq5k4621a7f089qahcqw7f0dzqpaxn7if11w333b",
+ "fetcher": "github",
+ "repo": "dieggsy/eterm-256color",
+ "unstable": {
+ "version": [
+ 20190123,
+ 401
+ ],
+ "deps": [
+ "f",
+ "xterm-color"
+ ],
+ "commit": "0f0dab497239ebedbc9c4a48b3ec8cce4a47e980",
+ "sha256": "00ins8n92p5aspr6bjrvn5y5w0ximakk22yklsfmkav4h10al4as"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 13
+ ],
+ "deps": [
+ "f",
+ "xterm-color"
+ ],
+ "commit": "dab96af559deb443c4c9c00e23389926e1607192",
+ "sha256": "0ysxblc90kjcz84siprnyxwh94scflivqbxylzkvjm7hbx93rsh1"
+ }
+ },
+ {
+ "ename": "eterm-fn",
+ "commit": "a1955059915511fd16c2d671c262dde47adf724a",
+ "sha256": "1v4kpix16a07i95lcryj65ln0l31vs9k7jfnmdyrpsf7q2mw7z0j",
+ "fetcher": "github",
+ "repo": "oitofelix/eterm-fn",
+ "unstable": {
+ "version": [
+ 20191010,
+ 2331
+ ],
+ "deps": [
+ "term"
+ ],
+ "commit": "66f3b2f6308fa2ac4d8a32be5a7e35a96e08a9ee",
+ "sha256": "1vw2ha3x2yfkb20g9hfppkrb3mp9r07shb65wsf1b99mw8m22xwi"
+ }
+ },
+ {
+ "ename": "ethan-wspace",
+ "commit": "9454f3a58e3416fa60d8411b0db19c408935408f",
+ "sha256": "0k4kqkf5c6ysyhh1vpi9v4220yxm5ir3ippq2gmvvhnk77pg6hws",
+ "fetcher": "github",
+ "repo": "glasserc/ethan-wspace",
+ "unstable": {
+ "version": [
+ 20190522,
+ 1448
+ ],
+ "commit": "0f110fc26b829093c352e8dc9e50ba51a4e483ac",
+ "sha256": "1w26cczq58xyzgmpsks11dnl58kvzk0av2y4bg46cgma4fdg9pb1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 1
+ ],
+ "commit": "e055ee6730c0b03525d32e67511ef6c51e4c29e4",
+ "sha256": "0ik3y60xd3ap1pg5dr5ab6bq4qh8gblpgz1iiprmv7acr3ckzc41"
+ }
+ },
+ {
+ "ename": "euslisp-mode",
+ "commit": "b04fffe5e52f26e92930a112a64531228f94e340",
+ "sha256": "0v92lry9ynkvsvx060njaw1j5lj9sb1i3srs2hfqqwyqni5ldkri",
+ "fetcher": "github",
+ "repo": "iory/euslisp-mode",
+ "unstable": {
+ "version": [
+ 20170830,
+ 1929
+ ],
+ "deps": [
+ "exec-path-from-shell",
+ "helm-ag",
+ "s"
+ ],
+ "commit": "db62a2d148482317794727982576494596365a55",
+ "sha256": "187ij4s7mzppgmh0ifny70mw8w31nq86rhsrmnflz26iywnkp8x2"
+ }
+ },
+ {
+ "ename": "eval-expr",
+ "commit": "f56c5312cc8ffc1a8b31fc342e8e2b8827eff846",
+ "sha256": "0zkphbx7ph4p7qkfxqyr6p8420j9qkvx5wghd1sza6y0kb456872",
+ "fetcher": "github",
+ "repo": "jwiegley/eval-expr",
+ "unstable": {
+ "version": [
+ 20120619,
+ 647
+ ],
+ "commit": "a0e69e83de41df8dbccefc1962ab4f02206a3328",
+ "sha256": "08zw3qrhqmnv2wxmbf74svk2cx5by4831kyw6rx13imkc4x8kngx"
+ }
+ },
+ {
+ "ename": "eval-in-repl",
+ "commit": "0bee5fb7a7874dd20babd1de7f216c5bda3e0115",
+ "sha256": "10h5vy9wdiqf9dgk1d1bsvp93y8sfcxghzg8zbhhn7m5cqg2wh63",
+ "fetcher": "github",
+ "repo": "kaz-yos/eval-in-repl",
+ "unstable": {
+ "version": [
+ 20191116,
+ 1107
+ ],
+ "deps": [
+ "ace-window",
+ "dash",
+ "paredit"
+ ],
+ "commit": "c8e5f31a2476c922857d921e367b6a2320ce5a6f",
+ "sha256": "1mrssbl0wyc6iij8zk1y3h9bd3rv53nnrxsij7fn67l1m4z0clyn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 7
+ ],
+ "deps": [
+ "ace-window",
+ "dash",
+ "paredit"
+ ],
+ "commit": "c8e5f31a2476c922857d921e367b6a2320ce5a6f",
+ "sha256": "1mrssbl0wyc6iij8zk1y3h9bd3rv53nnrxsij7fn67l1m4z0clyn"
+ }
+ },
+ {
+ "ename": "eval-sexp-fu",
+ "commit": "4b1a896521cac1f54f7571ad5837ff215d01044d",
+ "sha256": "17cazf81z4cszflnfp66zyq2cclw5sp9539pxskdf267cf7r0ycs",
+ "fetcher": "github",
+ "repo": "hchbaw/eval-sexp-fu.el",
+ "unstable": {
+ "version": [
+ 20191128,
+ 825
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "36d2fe3bcf602e15ca10a7f487da103515ef391a",
+ "sha256": "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "36d2fe3bcf602e15ca10a7f487da103515ef391a",
+ "sha256": "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"
+ }
+ },
+ {
+ "ename": "evalator",
+ "commit": "544a503d72c0a501f9ca854cd11181a7783294a3",
+ "sha256": "0k6alxwg89gc4v5m2bxmzmj7l6kywhbh4036xgz19q28xnlbr9xk",
+ "fetcher": "github",
+ "repo": "seanirby/evalator",
+ "unstable": {
+ "version": [
+ 20160213,
+ 128
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "f30da4da48c0b3f3cfa1fc1c7cfdb53ffe79df36",
+ "sha256": "1llxxdprs8yw2hqj4dhrkrrzmkl25h7p4rcaa2cw544fmg3kvlz1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "edf3840f5aa025cf38d0c2677b2f88f59079409e",
+ "sha256": "1a3y69s7lb24zdivxcpsjh9l6adxyjqxbpgradnj0q1n6kdyq679"
+ }
+ },
+ {
+ "ename": "evalator-clojure",
+ "commit": "5f57089f3e5c8342092128d44451b338af8a769f",
+ "sha256": "10mxlgirnsq3z7l1izrf2v1l1yr4sbdjsaszz7llqv6l80y4bji3",
+ "fetcher": "github",
+ "repo": "seanirby/evalator-clojure",
+ "unstable": {
+ "version": [
+ 20160208,
+ 2148
+ ],
+ "deps": [
+ "cider",
+ "evalator"
+ ],
+ "commit": "caa4e0a137bdfada86593128a654e16aa617ad50",
+ "sha256": "1q5s1ffmfh5dby92853xm8kjhgjfd5vbvcg1xbf8lswc1i41k7n7"
+ }
+ },
+ {
+ "ename": "eve-mode",
+ "commit": "e0f197adfe64ef88d90d24dfd6532bf52a5bce0d",
+ "sha256": "1ch50bm452g8k1xnqcbpmpwkmg8amzv7bq0hphk3y0kiqkwd1gdh",
+ "fetcher": "github",
+ "repo": "witheve/emacs-eve-mode",
+ "unstable": {
+ "version": [
+ 20170822,
+ 2231
+ ],
+ "deps": [
+ "markdown-mode",
+ "polymode"
+ ],
+ "commit": "a4661114d9c18725691b76321d72167ca5a9070a",
+ "sha256": "19s6cid42q0lm2w94a7f6sxvmy3zpjdj5r5dbwcxxp5n3qfs7nip"
+ }
+ },
+ {
+ "ename": "evil",
+ "commit": "69567536a89f0294726ae58f748386a8d336c55e",
+ "sha256": "0nbfhynlv213rjl6jh4lji1q94s99q4iv18mnd3x23r91sx7ssm3",
+ "fetcher": "github",
+ "repo": "emacs-evil/evil",
+ "unstable": {
+ "version": [
+ 20200816,
+ 737
+ ],
+ "deps": [
+ "cl-lib",
+ "goto-chg",
+ "undo-tree"
+ ],
+ "commit": "1e7aa5bfbd86feff0ed5982e487070352d326b90",
+ "sha256": "1vb7np6yzv8iqblxg0yi1ac080k2bn7n8wz6wj8vkm080zmfwfb0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 14,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "goto-chg",
+ "undo-tree"
+ ],
+ "commit": "4dc63903d9688e2ce838a220b0e24d8f14a64c12",
+ "sha256": "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"
+ }
+ },
+ {
+ "ename": "evil-anzu",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "08cc33wjq5853c0hqwn30342ylkfldy7xg7yd2ak0apjxnz4qr40",
+ "fetcher": "github",
+ "repo": "emacsorphanage/evil-anzu",
+ "unstable": {
+ "version": [
+ 20200514,
+ 1902
+ ],
+ "deps": [
+ "anzu",
+ "evil"
+ ],
+ "commit": "d3f6ed4773b48767bd5f4708c7f083336a8a8a86",
+ "sha256": "0ribvnw2slaad4xlcyxhg3linvd810qqn52qpyrjsq0dnqrpmwyl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "anzu",
+ "evil"
+ ],
+ "commit": "64cc08a3546373f28cd7bfd76a3e93bd78efa251",
+ "sha256": "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"
+ }
+ },
+ {
+ "ename": "evil-args",
+ "commit": "0976c82a22f1a8701b9da0b8ba4753ed48191376",
+ "sha256": "1bwdvf1i3jc77bw2as1wr1djm8z3a7wms60694xkyqh0m909hs2w",
+ "fetcher": "github",
+ "repo": "wcsmith/evil-args",
+ "unstable": {
+ "version": [
+ 20180908,
+ 2157
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "758ad5ae54ad34202064fec192c88151c08cb387",
+ "sha256": "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "2a88b4d19953a11227cc1e91973b92149116f44c",
+ "sha256": "1nh7wa4ynr7ln42x32znzqsmh7ijzy5ymd7rszf49l8677alvazq"
+ }
+ },
+ {
+ "ename": "evil-avy",
+ "commit": "f86bccc9f2190cfa5487cf8e9c9b7938774533ed",
+ "sha256": "1hc96dd78yxgr8cs9sk9y1i5h1qnyk110vlb3wnlxv1hwn92qvrd",
+ "fetcher": "github",
+ "repo": "louy2/evil-avy",
+ "unstable": {
+ "version": [
+ 20150908,
+ 748
+ ],
+ "deps": [
+ "avy",
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "2dd955cc3ecaa7ddeb67b295298abdc6d16dd3a5",
+ "sha256": "1q6znbnshk45mdglx519qlbfhb7g47qsm245i93ka4djsjy55j9l"
+ }
+ },
+ {
+ "ename": "evil-better-visual-line",
+ "commit": "c46640394c29643eea4e59066bab9963db67b8d7",
+ "sha256": "00l6gd66apf0gphlx5hk9lcl7rmj7ag8kf558psyzcyvhpmff2bq",
+ "fetcher": "github",
+ "repo": "YourFin/evil-better-visual-line",
+ "unstable": {
+ "version": [
+ 20200123,
+ 2045
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "4373f930ab1a8d3a2a90e68540967702313b2ce9",
+ "sha256": "0dnh932ib3hhphprm1jjh1hdwnj96d6cnfc64rj2y4mgxji4y19l"
+ }
+ },
+ {
+ "ename": "evil-cleverparens",
+ "commit": "e3b3637d6527b16ea0d606fd87b01004be446b09",
+ "sha256": "10zkyaxy52ixh26hzm9v1y0gakcn5sdwz4ny8v1vcmjqjphnk799",
+ "fetcher": "github",
+ "repo": "luxbock/evil-cleverparens",
+ "unstable": {
+ "version": [
+ 20170718,
+ 413
+ ],
+ "deps": [
+ "dash",
+ "evil",
+ "paredit",
+ "smartparens"
+ ],
+ "commit": "8c45879d49bfa6d4e414b6c1df700a4a51cbb869",
+ "sha256": "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"
+ }
+ },
+ {
+ "ename": "evil-colemak-basics",
+ "commit": "945417d19faf492fb678aee3ba692d14e7518d85",
+ "sha256": "1sbbli0hdmpc23f3g5n95svqfdg3rlvf71plyvpv1a6va9jhi83k",
+ "fetcher": "github",
+ "repo": "wbolster/evil-colemak-basics",
+ "unstable": {
+ "version": [
+ 20200630,
+ 1936
+ ],
+ "deps": [
+ "evil",
+ "evil-snipe"
+ ],
+ "commit": "dcdf5c3e844f6eef2bf9d6a502cf8c81b3edaff2",
+ "sha256": "1g9li89kg3wgpm39prz9xra12vw7mhrnjl9wqqkvj98fx6dxsdr7"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "deps": [
+ "evil",
+ "evil-snipe"
+ ],
+ "commit": "7844079b47f47bb1dc24c885b0ac2e67524fa960",
+ "sha256": "0phspmd31pcxana2lp6mqywmghhdpj6ydsrl1bjn4b1gcp1fqsy2"
+ }
+ },
+ {
+ "ename": "evil-colemak-minimal",
+ "commit": "828c744062069027f19fe5f2f233179f9149dc16",
+ "sha256": "0qi5k17b9k227zz9binbrd22cwmlqxkay98by9yxcbyhl4hjhdyy",
+ "fetcher": "github",
+ "repo": "bmallred/evil-colemak-minimal",
+ "unstable": {
+ "version": [
+ 20171006,
+ 1317
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "6d98b6da60f414524a0d718f76024c26dce742b3",
+ "sha256": "0pd05jq4qkw5xx7xqzxzx62fsm77vjz0ry9ayaqgqw5831rbp553"
+ }
+ },
+ {
+ "ename": "evil-collection",
+ "commit": "fbc35279115f6fdf1ce7d1ecef3b413c7ca9c4f1",
+ "sha256": "1l6x782ix873n90k9g00i9065h31dnhv07bgzrp28l7y7bivqwl7",
+ "fetcher": "github",
+ "repo": "emacs-evil/evil-collection",
+ "unstable": {
+ "version": [
+ 20200808,
+ 850
+ ],
+ "deps": [
+ "annalist",
+ "evil"
+ ],
+ "commit": "c136589d9584e5d01a4b3f2e4cf8ac5f5a23be63",
+ "sha256": "0kbv4p4v5mgjk2hbrg0c5p29yd74s4xaa8z6c8f2h6l5p28dsk4j"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "annalist",
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "34d515e99e911f368b335bbccc026b71b42a9821",
+ "sha256": "1737dbwv8fa9kps340jsvjyz4gd5vjf3zrdzbvjcjh56ssvdaw2w"
+ }
+ },
+ {
+ "ename": "evil-commentary",
+ "commit": "fe5b05152c919d49ddd920b1bd5ffc351141fa0d",
+ "sha256": "151iiimmkpn58pl9zn40qssfahbrqy83axyl9dcd6kx2ywv5gcxz",
+ "fetcher": "github",
+ "repo": "linktohack/evil-commentary",
+ "unstable": {
+ "version": [
+ 20170413,
+ 1451
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "395f91014b69844b81660c155f42eb9b1b3d199d",
+ "sha256": "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 1
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "395f91014b69844b81660c155f42eb9b1b3d199d",
+ "sha256": "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"
+ }
+ },
+ {
+ "ename": "evil-dvorak",
+ "commit": "69abca9985339c59ee0e2334cabf3c99e1ba1349",
+ "sha256": "1iq9wzcb625vs942khja39db1js8r46vrdiqcm47yfji98g39gsn",
+ "fetcher": "github",
+ "repo": "jbranso/evil-dvorak",
+ "unstable": {
+ "version": [
+ 20160416,
+ 1841
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "824f7c56980d72a0ff04c662223540cd66f13754",
+ "sha256": "15rnxhqc56g4ydr8drvcgzvjp8blxsarm86dqc36rym7g5gnxr20"
+ }
+ },
+ {
+ "ename": "evil-easymotion",
+ "commit": "e67955ead0b9d69acab40d66d4e0b821229d635c",
+ "sha256": "0zixgdhc228y6yqr044cbyls0pihzacqsgvybhhar916p4h8izgv",
+ "fetcher": "github",
+ "repo": "PythonNut/evil-easymotion",
+ "unstable": {
+ "version": [
+ 20200424,
+ 135
+ ],
+ "deps": [
+ "avy",
+ "cl-lib"
+ ],
+ "commit": "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9",
+ "sha256": "0xsva9bnlfwfmccm38qh3yvn4jr9za5rxqn4pwxbmhnx4rk47cch"
+ }
+ },
+ {
+ "ename": "evil-ediff",
+ "commit": "b3eff8cd4bedff3e2111d96743d94be5053826f1",
+ "sha256": "0yglhxm670996hd7305q38y5f47y87n75hh0q7qlm2vra2m2wa5s",
+ "fetcher": "github",
+ "repo": "emacs-evil/evil-ediff",
+ "unstable": {
+ "version": [
+ 20170724,
+ 1923
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "50d26cb0654fca8f8fd7227410e5cbf0b8f681cf",
+ "sha256": "0x81ws1kaiklqnsywvjyv5pifsj5hd3wsl1wq11aqik34kjxfy2g"
+ }
+ },
+ {
+ "ename": "evil-embrace",
+ "commit": "d4886f068766514deab5673b4366d6bdd311e3b6",
+ "sha256": "10cfkksh3llyfk26x36b7ri0x6a6hrcv275pxk7ckhs1pyhb14y7",
+ "fetcher": "github",
+ "repo": "cute-jumper/evil-embrace.el",
+ "unstable": {
+ "version": [
+ 20160519,
+ 1829
+ ],
+ "deps": [
+ "embrace",
+ "evil-surround"
+ ],
+ "commit": "4379adea032b25e359d01a36301b4a5afdd0d1b7",
+ "sha256": "0rj1ippc6yi560xalhd91r7a00lk3d0jk13w464myznkpnasfw3a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "embrace",
+ "evil-surround"
+ ],
+ "commit": "4379adea032b25e359d01a36301b4a5afdd0d1b7",
+ "sha256": "0rj1ippc6yi560xalhd91r7a00lk3d0jk13w464myznkpnasfw3a"
+ }
+ },
+ {
+ "ename": "evil-escape",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0jiwsgcqw8m6z4z82gx0m0r0vbvkcxc0czhn4mqjwkhhglwzgi8l",
+ "fetcher": "github",
+ "repo": "syl20bnr/evil-escape",
+ "unstable": {
+ "version": [
+ 20180910,
+ 1234
+ ],
+ "commit": "f4e9116bfbaac8c9d210c17ad488e0982291245f",
+ "sha256": "1whppnlzkjig1yrz0fjvp8cy86215gjahgh88166nzk95wlc3pvf"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 14
+ ],
+ "deps": [
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "b4d44fc5015341e484495fc86b73d09b2ac062ec",
+ "sha256": "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"
+ }
+ },
+ {
+ "ename": "evil-ex-fasd",
+ "commit": "8ebdddebb0272765ebbf72073da8c2158a05f624",
+ "sha256": "1zljsrpbsimldpc1wviw87vgm6941zz4wy8vhpplwkfbnywiwnp7",
+ "fetcher": "github",
+ "repo": "yqrashawn/evil-ex-fasd",
+ "unstable": {
+ "version": [
+ 20180903,
+ 612
+ ],
+ "deps": [
+ "evil",
+ "fasd"
+ ],
+ "commit": "ed8fbbe23a8a268d9dcbf1a6132e928ba2c655c5",
+ "sha256": "0fr57nlg7m65gzhnrwnqi5bgy4vzl0l0mxk63sr3561r8fnm8hbc"
+ }
+ },
+ {
+ "ename": "evil-ex-shell-command",
+ "commit": "6d4205a35cc0c4518ab1424d91bbc627e8cdae42",
+ "sha256": "1lbk31l7g6n6lqm8rvsfqbagqvhkp0s2v6wz8x4fnrjj0ymd4syf",
+ "fetcher": "github",
+ "repo": "yqrashawn/evil-ex-shell-command",
+ "unstable": {
+ "version": [
+ 20181226,
+ 226
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "a6ca6d27c07f6a0807abfb5b8f8865f1d17f54aa",
+ "sha256": "0jx2cj6p8wag7aphbgf3ij5v71prxkbxpfia8nmcpmrpvjqpsb74"
+ }
+ },
+ {
+ "ename": "evil-exchange",
+ "commit": "9b06397c032d24a8da4074ad97cdb30d0c468e20",
+ "sha256": "1mvw7w23yfbfmhzj6wimslbryb0gppryw24ac0wh4fzl9rdcma4r",
+ "fetcher": "github",
+ "repo": "Dewdrops/evil-exchange",
+ "unstable": {
+ "version": [
+ 20200118,
+ 252
+ ],
+ "deps": [
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "3030e21ee16a42dfce7f7cf86147b778b3f5d8c1",
+ "sha256": "0zchmnzkq7bz2c4hl95xwnz5w243ya4ryi6hgbdss7mc9rnyyarh"
+ }
+ },
+ {
+ "ename": "evil-expat",
+ "commit": "f08f6396e66479eb9510727968c5bb01ac239476",
+ "sha256": "03niji6wymhlfkvdg90gasccs4683djxcj925c8k0vdgmfr8sx32",
+ "fetcher": "github",
+ "repo": "edkolev/evil-expat",
+ "unstable": {
+ "version": [
+ 20190521,
+ 714
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2",
+ "sha256": "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"
+ }
+ },
+ {
+ "ename": "evil-extra-operator",
+ "commit": "fc0b157c3adf8a2899c4dd2ce98e8a81e4f403a3",
+ "sha256": "066apin0yrjx7zr007p2h9p2nq58lz7qikzjzg0spqkb8vy7vkc5",
+ "fetcher": "github",
+ "repo": "Dewdrops/evil-extra-operator",
+ "unstable": {
+ "version": [
+ 20161213,
+ 403
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "e16a9b36f9901254da9af8a73871061616410fc3",
+ "sha256": "116srvfck3b244shxm9cmw3yvpprjgr840fvcv6jwwpfaphafxw4"
+ }
+ },
+ {
+ "ename": "evil-find-char-pinyin",
+ "commit": "8755d2fca519f23f11c5cbb53443a2ad4340220e",
+ "sha256": "0n52ijdf5hy7mn0rab4493zs2nrf7r1qkmvf0algqaj7bfjscs79",
+ "fetcher": "github",
+ "repo": "cute-jumper/evil-find-char-pinyin",
+ "unstable": {
+ "version": [
+ 20160514,
+ 2041
+ ],
+ "deps": [
+ "evil",
+ "pinyinlib"
+ ],
+ "commit": "04e277946d658f1a73c68dcbbadea9c21097a31c",
+ "sha256": "1bsy2bynzxr1ibyidv2r21xnfnxbzr0xh5m3h05s5igbmajxr12d"
+ }
+ },
+ {
+ "ename": "evil-fringe-mark",
+ "commit": "70dcc07c389d5454de64fb08cd666d489d6d5483",
+ "sha256": "1ahlbp31ll24vzah4bv1xx58gn8y8fsjb0n9a135zwb3fjla9drb",
+ "fetcher": "github",
+ "repo": "Andrew-William-Smith/evil-fringe-mark",
+ "unstable": {
+ "version": [
+ 20190320,
+ 453
+ ],
+ "deps": [
+ "evil",
+ "fringe-helper",
+ "goto-chg"
+ ],
+ "commit": "a1689fddb7ee79aaa720a77aada1208b8afd5c20",
+ "sha256": "0pf8bl7bmcn1l0dlxkgbgwb1n2fxpzxwcr4jf06gzyrrmmwah526"
+ }
+ },
+ {
+ "ename": "evil-god-state",
+ "commit": "46b8586e9a821efb67539155f783a32867084bfa",
+ "sha256": "1g547d58zf11qw0zz3fk5kmrzmfx1rhawyh5d2h8bll8hwygnrxf",
+ "fetcher": "github",
+ "repo": "gridaphobe/evil-god-state",
+ "unstable": {
+ "version": [
+ 20141117,
+ 255
+ ],
+ "deps": [
+ "evil",
+ "god-mode"
+ ],
+ "commit": "3d44197dc0a1fb40e7b7ff8717f8a8c339ce1d40",
+ "sha256": "1cv24qnxxf6n1grf4n5969v8y9xll5zb9mbfdnq9iavdvhnndk2h"
+ }
+ },
+ {
+ "ename": "evil-goggles",
+ "commit": "811b1261705b4c525e165fa9ee23ae191727a623",
+ "sha256": "151xvawyhcjp98skaif08wbxqaw602f51zgwm604hp25a111qmnq",
+ "fetcher": "github",
+ "repo": "edkolev/evil-goggles",
+ "unstable": {
+ "version": [
+ 20200101,
+ 1935
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "08a22058fd6a167f9f1b684c649008caef571459",
+ "sha256": "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"
+ }
+ },
+ {
+ "ename": "evil-iedit-state",
+ "commit": "b0b6b7d09c023cfe34da65fa1eb8f3fdbe7b1290",
+ "sha256": "1dihyh7vqcp7kvfic613k7v33czr93hz04d635awrsyzgy8savhl",
+ "fetcher": "github",
+ "repo": "syl20bnr/evil-iedit-state",
+ "unstable": {
+ "version": [
+ 20180607,
+ 558
+ ],
+ "deps": [
+ "evil",
+ "iedit"
+ ],
+ "commit": "f75cff4ecbd5beaa9ca64a6c157c4105f078daec",
+ "sha256": "0f6m5wi1q6ac9mkvalm62rlnlkjz1c315a4sa93p6iw9x12llkgw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "evil",
+ "iedit"
+ ],
+ "commit": "eab7d5e3e7d25c4a852fedb6c0c7f50dd9e9bd7c",
+ "sha256": "0r9gif2sgf84z8qniz6chr32av9g2i38rlyms81m8ssghf0j86ss"
+ }
+ },
+ {
+ "ename": "evil-indent-plus",
+ "commit": "992ea3d372fa3569ad9f838aa2818eaee8b8033a",
+ "sha256": "15vnvch0qsaram22d44k617bqhr9rrf8qc86sf20yvdyy3gi5j12",
+ "fetcher": "github",
+ "repo": "TheBB/evil-indent-plus",
+ "unstable": {
+ "version": [
+ 20151109,
+ 1906
+ ],
+ "deps": [
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "0c7501e6efed661242c3a20e0a6c79a6455c2c40",
+ "sha256": "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"
+ }
+ },
+ {
+ "ename": "evil-indent-textobject",
+ "commit": "63cfc9c2962780dd5d27da670d5540a0441e7ca2",
+ "sha256": "172a3krid5lrx1w9xcifkhjnvlxg1nbz4w102d99d0grr9465r09",
+ "fetcher": "github",
+ "repo": "cofi/evil-indent-textobject",
+ "unstable": {
+ "version": [
+ 20130831,
+ 2219
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "70a1154a531b7cfdbb9a31d6922482791e20a3a7",
+ "sha256": "0nghisnc49ivh56mddfdlcbqv3y2vqzjvkpgwv3zp80ga6ghvdmz"
+ }
+ },
+ {
+ "ename": "evil-leader",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "154s2nb170hzksmc87wnzlwg3ic3w3ravgsfvwkyfi2q285vmra6",
+ "fetcher": "github",
+ "repo": "cofi/evil-leader",
+ "unstable": {
+ "version": [
+ 20140606,
+ 1243
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "39f7014bcf8b36463e0c7512c638bda4bac6c2cf",
+ "sha256": "10xrlimsxk09z9cw6rxdz8qvvn1i0vhc1gdicwxri0j10p0hacl3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 3
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "753b01eb4958370ae2226b3780ff31fe157c2852",
+ "sha256": "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"
+ }
+ },
+ {
+ "ename": "evil-ledger",
+ "commit": "500e99a1b92f0a0c144f843cd7645872034d9fbb",
+ "sha256": "13idy2kbzhckzfwrjnzjrf8h2881w3v8pmhlcj26xcyf4ch0dq9r",
+ "fetcher": "github",
+ "repo": "atheriel/evil-ledger",
+ "unstable": {
+ "version": [
+ 20180802,
+ 1612
+ ],
+ "deps": [
+ "evil",
+ "ledger-mode"
+ ],
+ "commit": "7a9f9f5d39c42fffdba8004f8982642351f2b233",
+ "sha256": "010r1qn9l3clqqrlia0y25bqjbrixvf8i409v10yxqb949jvw1vk"
+ }
+ },
+ {
+ "ename": "evil-lion",
+ "commit": "8a7a0691775afec6d2c7be3d6739b55bd1d2053d",
+ "sha256": "1rwmpc5ifblb41c1yhhv26ayff4nk9iza7w0wb5ganny2r82fg2v",
+ "fetcher": "github",
+ "repo": "edkolev/evil-lion",
+ "unstable": {
+ "version": [
+ 20170811,
+ 614
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab",
+ "sha256": "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"
+ }
+ },
+ {
+ "ename": "evil-lisp-state",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "16h6zi0kkq2zlrwqiz6avnw2ady3h9gmxyinvk5gbkskxf12d1pz",
+ "fetcher": "github",
+ "repo": "syl20bnr/evil-lisp-state",
+ "unstable": {
+ "version": [
+ 20160404,
+ 248
+ ],
+ "deps": [
+ "bind-map",
+ "evil",
+ "smartparens"
+ ],
+ "commit": "3c65fecd9917a41eaf6460f22187e2323821f3ce",
+ "sha256": "1n6r8xs670r5qp4b5f72nr9g8nlqcrx1v7yqqlbkgv8gns8n5xgh"
+ },
+ "stable": {
+ "version": [
+ 8,
+ 2
+ ],
+ "deps": [
+ "bind-map",
+ "evil",
+ "smartparens"
+ ],
+ "commit": "3c65fecd9917a41eaf6460f22187e2323821f3ce",
+ "sha256": "1n6r8xs670r5qp4b5f72nr9g8nlqcrx1v7yqqlbkgv8gns8n5xgh"
+ }
+ },
+ {
+ "ename": "evil-lispy",
+ "commit": "377d43f3717b8e17c3adce886aaf3e579383ec64",
+ "sha256": "17z830b0x6lhmqkk07hfbrg63c7q7mpn4zz1ppjd1smv4mcqzyld",
+ "fetcher": "github",
+ "repo": "sp3ctum/evil-lispy",
+ "unstable": {
+ "version": [
+ 20190502,
+ 739
+ ],
+ "deps": [
+ "evil",
+ "hydra",
+ "lispy"
+ ],
+ "commit": "ed317f7fccbdbeea8aa04a91b1b1f48a0e2ddc4e",
+ "sha256": "0izgd9zwfwykmznv6wjrq9czmjqc1hkw41szrjmrcxy5kbz1p5c0"
+ }
+ },
+ {
+ "ename": "evil-magit",
+ "commit": "50315ec837d2951bf5b2bb75809a35dd7ffc8fe8",
+ "sha256": "02ncki7qrl22804576h76xl4d5lvvk32lzn9gvxn63hb19r0s980",
+ "fetcher": "github",
+ "repo": "emacs-evil/evil-magit",
+ "unstable": {
+ "version": [
+ 20200604,
+ 110
+ ],
+ "deps": [
+ "evil",
+ "magit"
+ ],
+ "commit": "88dc26ce59dbf4acb4e2891c79c4bd329553ba56",
+ "sha256": "0vh872rpxfwqj7m77l12czknddmz7aijk30vwb1l08yi9309cdsf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "deps": [
+ "evil",
+ "magit"
+ ],
+ "commit": "a24186be7cc2cdab24b56f6dcc4665eeb8349c1a",
+ "sha256": "12hr2w5r2hgagb3hqbi59v73rxpjml5prc3m7dw3wzsm0rf1rwh3"
+ }
+ },
+ {
+ "ename": "evil-mark-replace",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "14j2d46288shlixb57nh5vlqdi3aiv20djvcbhiw1cm9ar2c3y4v",
+ "fetcher": "github",
+ "repo": "redguardtoo/evil-mark-replace",
+ "unstable": {
+ "version": [
+ 20200630,
+ 940
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "d4fec7b10e93cca149163324cd2b2b2dcc211047",
+ "sha256": "0v08jwb92igd8cxbb1nxjdzwymppcaar9mf89dmbk7jkqif2q72z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "d4fec7b10e93cca149163324cd2b2b2dcc211047",
+ "sha256": "0v08jwb92igd8cxbb1nxjdzwymppcaar9mf89dmbk7jkqif2q72z"
+ }
+ },
+ {
+ "ename": "evil-matchit",
+ "commit": "aeab4a998bffbc784e8fb23927d348540baf9951",
+ "sha256": "01z69n20qs4gngd28ry4kn825cax5km9hn96i87yrvq7nfa64swq",
+ "fetcher": "github",
+ "repo": "redguardtoo/evil-matchit",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1050
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "574d3c4e4517d3bb10bf652cacf459376ae401fe",
+ "sha256": "12c7y8dmkpqlak733cak6274fxzrk1hpywj7ky6nkfspqdvc2xz8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 8
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "8fba4f12e1bbfdbf25a8ed2a5308840f104bc7c0",
+ "sha256": "04s650hz6aa4ld3xqa272a2jsw9j1scnn5qkhpgis0w2d3gpwvpa"
+ }
+ },
+ {
+ "ename": "evil-mc",
+ "commit": "96770d778a03ab012fb82a3a0122983db6f9b0c4",
+ "sha256": "0cq4xg6svb5gz4ra607wy768as2igla4h1xcrfnxldknk476fqqs",
+ "fetcher": "github",
+ "repo": "gabesoft/evil-mc",
+ "unstable": {
+ "version": [
+ 20200228,
+ 1535
+ ],
+ "deps": [
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "4d4c0172e4c7f80acc1d0e73d5fb3e536929b262",
+ "sha256": "1a5glj1n5dyhdaas5b8m3v2p36s1w9qcpmj7gnfxyp75iy0rqlbs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "be2259b8cedd62011b25ddbcc1774bbbe9a66c61",
+ "sha256": "0p435ykkq41nksd40qczlhz6kvs2zpkxch661wy0w93wffwnq3b9"
+ }
+ },
+ {
+ "ename": "evil-mc-extras",
+ "commit": "cd7c9aa0f4c17e7f27836e75a0b83c44a68ad744",
+ "sha256": "1px4akqaddqgfd03932d03d3rrvjr5lv5nc94xc448kqcbfn7yjk",
+ "fetcher": "github",
+ "repo": "gabesoft/evil-mc-extras",
+ "unstable": {
+ "version": [
+ 20170202,
+ 1649
+ ],
+ "deps": [
+ "cl-lib",
+ "evil",
+ "evil-mc",
+ "evil-numbers"
+ ],
+ "commit": "8c1af3232dd1e15b2ea38360b8cd1e857e11c416",
+ "sha256": "0f67ky9w2qapah0l0ym2c6x1j3ngf8whp1ls42f3kzb9gfi36fpn"
+ }
+ },
+ {
+ "ename": "evil-mu4e",
+ "commit": "332f3f9c6dc106e58345abbc2d8fd99056d518c0",
+ "sha256": "1ks4vnga7dkz27a7gza5hakzbcsiqgkq1ysc0lcx7g82ihpmrrcq",
+ "fetcher": "github",
+ "repo": "JorisE/evil-mu4e",
+ "unstable": {
+ "version": [
+ 20180613,
+ 1039
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "5b22c1e30246318f233264506272d770f63897ca",
+ "sha256": "17qppyw9sx8y6caiwraxnbs4fkhvjsfk4brda7jy9wd0i074mwk4"
+ }
+ },
+ {
+ "ename": "evil-multiedit",
+ "commit": "997f5a6999d1add57fae33ba8eb3e3bc60d7bb56",
+ "sha256": "0p02q9skqw2zhx7sfadqgs7vn518s72856962dam0xw4sqasplfp",
+ "fetcher": "github",
+ "repo": "hlissner/evil-multiedit",
+ "unstable": {
+ "version": [
+ 20200229,
+ 528
+ ],
+ "deps": [
+ "cl-lib",
+ "evil",
+ "iedit"
+ ],
+ "commit": "9f271e0e6048297692f80ed6c5ae8994ac523abc",
+ "sha256": "03imayy9afv084yl6g4kg6qis3mikllpbbizd2fya7njbsnpbpq1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 9
+ ],
+ "deps": [
+ "cl-lib",
+ "evil",
+ "iedit"
+ ],
+ "commit": "cb35914ffabb4f65d22ab2f812ff6e7622cc5c26",
+ "sha256": "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"
+ }
+ },
+ {
+ "ename": "evil-nerd-commenter",
+ "commit": "a3e1ff69e7cc95a5b5d628524ad836833f4ee736",
+ "sha256": "1pa5gh065hqn5mhs47qvjllwdwwafl0clk555mb6w7svq58r6i8d",
+ "fetcher": "github",
+ "repo": "redguardtoo/evil-nerd-commenter",
+ "unstable": {
+ "version": [
+ 20200630,
+ 911
+ ],
+ "commit": "87734b9c7fcd047f73a072b9d03ec05f786eeb03",
+ "sha256": "15dahrvary0ahyzg83jxdhf00pd2231rr628nq9fl0dl54laixsd"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 5,
+ 1
+ ],
+ "commit": "fa40dab8d2f010db17e1e62dfd245c1504d0542f",
+ "sha256": "0dn712k54qsxy82jqbqip77k5i3zv8m7afj2yi39zqx28iqvic0z"
+ }
+ },
+ {
+ "ename": "evil-nl-break-undo",
+ "commit": "a43ea989f52cebadc68c8e9c0f87f8f2e23b0974",
+ "sha256": "0q6b459z06h4l47b5lcxlqbksf8sbazkk569r3h2577zpc56prfn",
+ "fetcher": "github",
+ "repo": "VanLaser/evil-nl-break-undo",
+ "unstable": {
+ "version": [
+ 20181125,
+ 2054
+ ],
+ "commit": "4a8f2bf99c978a109eeb92965a72a17bedb68762",
+ "sha256": "0xnjzdbn0rzzr1vkd31swdhxj2vm7xijhn5s5gigmsm3i0n4k0sa"
+ }
+ },
+ {
+ "ename": "evil-numbers",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1lpmkklwjdf7ayhv99g9zh3l9hzrwm0hr0ijvbc7yz3n398zn1b2",
+ "fetcher": "github",
+ "repo": "cofi/evil-numbers",
+ "unstable": {
+ "version": [
+ 20140606,
+ 1251
+ ],
+ "commit": "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e",
+ "sha256": "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "8834eb2e8bd93561a706363946701d0d90546a9f",
+ "sha256": "13jg2xbh4p02x1nj77b6csb93hh56c1nv8kslcq2hjj3caipk4m8"
+ }
+ },
+ {
+ "ename": "evil-opener",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0cld853pyzlaa306rpypw2wm4953i6y06irlk96bql9aa1zx977g",
+ "fetcher": "github",
+ "repo": "0robustus1/opener.el",
+ "unstable": {
+ "version": [
+ 20161207,
+ 1810
+ ],
+ "deps": [
+ "evil",
+ "opener"
+ ],
+ "commit": "c384f67278046fdcd220275fdd212ab85672cbeb",
+ "sha256": "0gci909a2rbx5i8dyzyrcddwdic7nvpk6y6djvn521yaag4sq87h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "evil",
+ "opener"
+ ],
+ "commit": "c384f67278046fdcd220275fdd212ab85672cbeb",
+ "sha256": "0gci909a2rbx5i8dyzyrcddwdic7nvpk6y6djvn521yaag4sq87h"
+ }
+ },
+ {
+ "ename": "evil-org",
+ "commit": "1768558ed0a0249421437b66fe45018dd768e637",
+ "sha256": "18glpsnpxap4dvnvkl59h9pnwlp20libsfbbkmvrbzsvbdyspg6z",
+ "fetcher": "github",
+ "repo": "Somelauw/evil-org-mode",
+ "unstable": {
+ "version": [
+ 20200601,
+ 1855
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "4b23116a6ecfa687819050e5a9a419cf08d5ba90",
+ "sha256": "0r3b6j0ywkz8wggzyfnvqwwrd7ir317njdwldcdncirfwy603337"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "9d4be14118bf27094a30dbff349b815f098aacbf",
+ "sha256": "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"
+ }
+ },
+ {
+ "ename": "evil-owl",
+ "commit": "306209c3e3669b962dfd0abf649865164ed8bba3",
+ "sha256": "1629ca2n3i6nk1vsxfn9rnzdy40kmiy18hqa4dw9v56jb9p47xh5",
+ "fetcher": "github",
+ "repo": "mamapanda/evil-owl",
+ "unstable": {
+ "version": [
+ 20200113,
+ 405
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "ed5a98644a9cf321de213b50df6473de9f3a71ed",
+ "sha256": "03afn47fgz3bxifmpwlmckpkl9nc237lc0khmaks0jfpmzcbkagc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "24c5f43df375194386344e69bc720ea3986c9510",
+ "sha256": "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"
+ }
+ },
+ {
+ "ename": "evil-paredit",
+ "commit": "88db86e1351410bcff6f3ed80681946afcec9959",
+ "sha256": "0xvxxa3gjgsrv10a61y0591bn3gj8v1ff2wck8s0svwfl076gyfy",
+ "fetcher": "github",
+ "repo": "roman/evil-paredit",
+ "unstable": {
+ "version": [
+ 20150413,
+ 2048
+ ],
+ "deps": [
+ "evil",
+ "paredit"
+ ],
+ "commit": "e058fbdcf9dbf7ad6cc77f0172d7517ef233d55f",
+ "sha256": "0b08y4spapl4g2292j3l4cr84gjlvm3rpma3gqld4yb1sxd7v78p"
+ }
+ },
+ {
+ "ename": "evil-pinyin",
+ "commit": "640f1cd1b05d7a806404ffbc2c1a95a10ed63a55",
+ "sha256": "1gd9fdmm0fdscc3cw5c8sc1sg8yhsvrlnj3kyyj6jjbrz6s96xni",
+ "fetcher": "github",
+ "repo": "laishulu/evil-pinyin",
+ "unstable": {
+ "version": [
+ 20200726,
+ 546
+ ],
+ "deps": [
+ "evil",
+ "names"
+ ],
+ "commit": "ee4ea5a297fb8a445e0c886f9d20bbd4e94c00df",
+ "sha256": "1g1v0513ypq4kax56rmq5dvf8yf9absvfls6zadhniwjzmdh68ii"
+ }
+ },
+ {
+ "ename": "evil-python-movement",
+ "commit": "130e6d17735ff86b962859528d7e50869f683251",
+ "sha256": "1qs0z93rpi9dz6hy64816afdr4k5gssyw2dhaxcn152ylg1yzkg3",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/FelipeLema/evil-python-movement.el",
+ "unstable": {
+ "version": [
+ 20180724,
+ 1420
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "evil",
+ "s"
+ ],
+ "commit": "9936b3b7f8d96415d517c1f3604637889484a637",
+ "sha256": "11ivb95ilsw3svpna9n07yf8s9q3w36ia6js2qv6wf0d0dp2xb9r"
+ }
+ },
+ {
+ "ename": "evil-quickscope",
+ "commit": "ec118caf243c74d243f533c9e12f7de0d6c43bc4",
+ "sha256": "0xym1mh4p68i00l1lshywf5fdg1vw3szxp3fk9fwfcg04z6vd489",
+ "fetcher": "github",
+ "repo": "blorbx/evil-quickscope",
+ "unstable": {
+ "version": [
+ 20160202,
+ 1924
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "37a20e4c56c6058abf186ad4013c155e695e876f",
+ "sha256": "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "37a20e4c56c6058abf186ad4013c155e695e876f",
+ "sha256": "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"
+ }
+ },
+ {
+ "ename": "evil-rails",
+ "commit": "ff526fe800b0535067431f1ae78c4a4b5594b23d",
+ "sha256": "0ah0nvzl30z19566kacyrsznsdm3cpij8n3bw3dfng7263rh60gj",
+ "fetcher": "github",
+ "repo": "antono/evil-rails",
+ "unstable": {
+ "version": [
+ 20190512,
+ 1517
+ ],
+ "deps": [
+ "evil",
+ "projectile-rails"
+ ],
+ "commit": "b0f1c5de6720714febeb76c4b569b71bb891938c",
+ "sha256": "0mypsbf0mg2b4746r9b9ybj51qkrlxz48lf9g53kzbk3wdf6p5vi"
+ }
+ },
+ {
+ "ename": "evil-replace-with-char",
+ "commit": "0ac1b487e0fe193cc46c8b489686972ed6db3973",
+ "sha256": "0lgazw53j44rc72czwqxs6yaz67l9i1v52wbi7l9w958fnjra84r",
+ "fetcher": "github",
+ "repo": "ninrod/evil-replace-with-char",
+ "unstable": {
+ "version": [
+ 20180324,
+ 2206
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "ed4a12d5bff11163eb03ad2826c52fd30f51a8d3",
+ "sha256": "1nhnwl39wsi7akzcjqszxxw2b6j9i5y4qabcd8p387zajjpgscwk"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "dddbbafdd620cc48dd0a257baf4010e1b415ebe8",
+ "sha256": "0gcmva2q1bxqp3p8cl1nf19kh4nkgfdm64havyzhnkwq18q84pxi"
+ }
+ },
+ {
+ "ename": "evil-replace-with-register",
+ "commit": "b1bd98aebefc13da5a129d1d3f1c8878e4a70654",
+ "sha256": "0qyym6vwjs0aqf2p28rh96v30pgxg060pxyij0vrfj469wzmlrj9",
+ "fetcher": "github",
+ "repo": "Dewdrops/evil-ReplaceWithRegister",
+ "unstable": {
+ "version": [
+ 20170713,
+ 925
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "91cc7bf21a94703c441cc9212214075b226b7f67",
+ "sha256": "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"
+ }
+ },
+ {
+ "ename": "evil-rsi",
+ "commit": "24f438b47e8ede0ef84261424c122d2ac28b90cb",
+ "sha256": "0mc39n72420n36kwyf9zpw1pgyih0aigfnmkbywb0yxgj7myc345",
+ "fetcher": "github",
+ "repo": "linktohack/evil-rsi",
+ "unstable": {
+ "version": [
+ 20160221,
+ 2104
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "65ae60866be494e4622fe383e23975e04d2a42a3",
+ "sha256": "0cc2yxck5brnicllcadb4m5zlzczvdy6v38q34hj8bri1kxfzslz"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "236bf6ed1e2285698db808463e5f2f69f5f5e7c0",
+ "sha256": "1xz629qv1ss1fap397k48piawcwl8lrybraq5449bw1vvn1a4d9f"
+ }
+ },
+ {
+ "ename": "evil-ruby-text-objects",
+ "commit": "ba500b9f3df067e57e84654561091897e39623ef",
+ "sha256": "0icvmrcj2lslill2a26vzb71598l7c2fl2fi1971z8r1vhmckwmq",
+ "fetcher": "github",
+ "repo": "porras/evil-ruby-text-objects",
+ "unstable": {
+ "version": [
+ 20200323,
+ 1552
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "32983d91be83ed903b6ef9655e00f69beed2572c",
+ "sha256": "0qha7xxqxh7c6n6r26r49y85inxcbr4nvxlv2zzj0qkifw7f9ana"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "e69abb6aad7687222cb47a8a64dc4dd66ef96a9e",
+ "sha256": "0m1ilv4w4rlg8005cqp5l5dwdhqnrf1mb44qmvd8qwkl2rvslsbs"
+ }
+ },
+ {
+ "ename": "evil-search-highlight-persist",
+ "commit": "f2e91974ddb219c88229782b70ade7e14f20c0b5",
+ "sha256": "08l8ymrp9vkpwprq9gp4562yvcnd4hfc3z7n4n5lz7h6ffv3zym3",
+ "fetcher": "github",
+ "repo": "naclander/evil-search-highlight-persist",
+ "unstable": {
+ "version": [
+ 20170523,
+ 334
+ ],
+ "deps": [
+ "highlight"
+ ],
+ "commit": "979d2dec58d3b9c5ca5fdf4bb802a0209913794e",
+ "sha256": "0ak8r7cgz5xnjyfg3w9mwxhvaw8ny3hy0i2bqn3vf5dps649iy7i"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8
+ ],
+ "deps": [
+ "highlight"
+ ],
+ "commit": "0e2b3d4e3dec5f38ae95f62519eb2736f73c0b85",
+ "sha256": "1jfi2k9dm0cc9bx8klppm965ydhdw17a2n664199vhxrap6g27yk"
+ }
+ },
+ {
+ "ename": "evil-smartparens",
+ "commit": "850898fbfc8e0aeb779e8feae56476d989110e79",
+ "sha256": "1viwrd6gfqmwhlil80pk68dikn3cjf9ddsy0z781z3qfx0j35qza",
+ "fetcher": "github",
+ "repo": "expez/evil-smartparens",
+ "unstable": {
+ "version": [
+ 20171210,
+ 1513
+ ],
+ "deps": [
+ "evil",
+ "smartparens"
+ ],
+ "commit": "026d4a3cfce415a4dfae1457f871b385386e61d3",
+ "sha256": "05habba44zls2d20kgzshrq2psagay16cnvcnkqgrbhvj1rxfmrk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "evil",
+ "smartparens"
+ ],
+ "commit": "9fe4eed1c6327197afe6c13bb0771e18908aff00",
+ "sha256": "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"
+ }
+ },
+ {
+ "ename": "evil-snipe",
+ "commit": "6748f3febbe2f098761e967b4dc67791186d0aa7",
+ "sha256": "0gcmpjw3iw7rjk86b2k6clfigp48vakfjd1a9n8qramhnc85rgkn",
+ "fetcher": "github",
+ "repo": "hlissner/evil-snipe",
+ "unstable": {
+ "version": [
+ 20200531,
+ 1008
+ ],
+ "deps": [
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "6dcac7f2516c6137a2de532fc2c052f242559ee3",
+ "sha256": "1faimkch2s08kbrwh3j77y0n5inrjr7vphy0xdl402bv0d20h8nq"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 8
+ ],
+ "deps": [
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "dc62ac317fd29f018e9785c1b3b7dd7ad57b3938",
+ "sha256": "18j33smlajj7ynigfgm64z3kfys5idbxin2gd93civ2564n85r33"
+ }
+ },
+ {
+ "ename": "evil-space",
+ "commit": "4e5a4b9427038f90898ac0e237e71ba7152501f5",
+ "sha256": "1asvh873r1xgffvz3nr653yn8h5ifaphnafp6wf1b1mja6as7f23",
+ "fetcher": "github",
+ "repo": "linktohack/evil-space",
+ "unstable": {
+ "version": [
+ 20151208,
+ 1228
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "a9c07284d308425deee134c9d88a2d538dd229e6",
+ "sha256": "1x4nphjq8lvg8qsm1pj04mk9n59xc6jlxiv5s3bih1nl4xkssrxy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "f77860fa00662e2def3e1885adac777f051e1e61",
+ "sha256": "1rchanv0vq9rx6x69608dlpdybvkn8a9ymx8wzm7gqpz9qh6xqrk"
+ }
+ },
+ {
+ "ename": "evil-string-inflection",
+ "commit": "0720a0f5b775fcee8d1cfa0defe80048e2dd0972",
+ "sha256": "0w9x49c0gmv4waspa9fvbhf2adm19cixkwx7a7la9v4qy7da6akh",
+ "fetcher": "github",
+ "repo": "ninrod/evil-string-inflection",
+ "unstable": {
+ "version": [
+ 20180313,
+ 1755
+ ],
+ "deps": [
+ "evil",
+ "string-inflection"
+ ],
+ "commit": "d22a90ab807afa7f27f3815b5b5ea47d52d05218",
+ "sha256": "1vwch4kwwh82k1rlc9qsg74zbghn6vkgch5xb1wz0dmbv4id06l5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "evil",
+ "string-inflection"
+ ],
+ "commit": "d22a90ab807afa7f27f3815b5b5ea47d52d05218",
+ "sha256": "1vwch4kwwh82k1rlc9qsg74zbghn6vkgch5xb1wz0dmbv4id06l5"
+ }
+ },
+ {
+ "ename": "evil-surround",
+ "commit": "2c9dc47a4c837c44429a74fd998fe468c00639f2",
+ "sha256": "0aphv5zinb0lzdx22qbzcr7fn6jbpkdczar7py3df6mzxw5wvcm1",
+ "fetcher": "github",
+ "repo": "emacs-evil/evil-surround",
+ "unstable": {
+ "version": [
+ 20200603,
+ 2216
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "346d4d85fcf1f9517e9c4991c1efe68b4130f93a",
+ "sha256": "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "346d4d85fcf1f9517e9c4991c1efe68b4130f93a",
+ "sha256": "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"
+ }
+ },
+ {
+ "ename": "evil-swap-keys",
+ "commit": "2abff8e3d54ac13c4fe90692a56437844accca25",
+ "sha256": "12cx95mjm4ymggidvf41gh3a364z32h655jmhk417v0ga9jk9fv6",
+ "fetcher": "github",
+ "repo": "wbolster/evil-swap-keys",
+ "unstable": {
+ "version": [
+ 20191105,
+ 1426
+ ],
+ "commit": "b5ef105499f998b5667da40da30c073229a213ea",
+ "sha256": "1kawq9c64cmkdjy03sfppjn7g9anxnmds3ip7cgj1j0yym0glyfq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "56bc201e265a6bd482a7c41a7c81d2238341ef3a",
+ "sha256": "0n0hl0plaghz9rjssabxwfzm46kr6564hpfh6hn8lzla4rf1q5zs"
+ }
+ },
+ {
+ "ename": "evil-tabs",
+ "commit": "61eea3ae1c89163736b806aa8ca4f44d17daaba3",
+ "sha256": "0qgvpv5hcai8wmkv2fp6i2vdy7qp4gwidwpzz8j6vl9519x73s62",
+ "fetcher": "github",
+ "repo": "krisajenkins/evil-tabs",
+ "unstable": {
+ "version": [
+ 20160217,
+ 1520
+ ],
+ "deps": [
+ "elscreen",
+ "evil"
+ ],
+ "commit": "53d3314a810017b6056ab6796aef671f5ea1c063",
+ "sha256": "1qklx0j3fz3mp87v64yqbyyq5csfymbjfwvy2s4nk634wbnrra93"
+ }
+ },
+ {
+ "ename": "evil-terminal-cursor-changer",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "16p9a1dybbqr8r717c5ssfd3p5392bqxxzqs4n0xc7v7g8v1m0cd",
+ "fetcher": "github",
+ "repo": "7696122/evil-terminal-cursor-changer",
+ "unstable": {
+ "version": [
+ 20170401,
+ 842
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "b49ca4393d2f3cc6014174950059b36a5cb22949",
+ "sha256": "1zra2h0x20whshbc4sfyj6w73jv6ak435mr9n6r6s7brqqqgpa36"
+ }
+ },
+ {
+ "ename": "evil-test-helpers",
+ "commit": "87da8c50f9167ad9c3844b23becb6904f809611d",
+ "sha256": "0l4skyznzgr76z518q22lf90ymlsfcs02w8vqkg8az1nfl3ch7fs",
+ "fetcher": "github",
+ "repo": "emacs-evil/evil",
+ "unstable": {
+ "version": [
+ 20200816,
+ 737
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "1e7aa5bfbd86feff0ed5982e487070352d326b90",
+ "sha256": "1vb7np6yzv8iqblxg0yi1ac080k2bn7n8wz6wj8vkm080zmfwfb0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 14,
+ 0
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "4dc63903d9688e2ce838a220b0e24d8f14a64c12",
+ "sha256": "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"
+ }
+ },
+ {
+ "ename": "evil-tex",
+ "commit": "2b8ead8c7b1b7cdaefd35e9622fbb99307715e08",
+ "sha256": "1aph898q7mkw5vgwd1c7fh8vrgmarrbbkglgdfnawg8jycxac6sp",
+ "fetcher": "github",
+ "repo": "iyefrat/evil-tex",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1628
+ ],
+ "deps": [
+ "auctex",
+ "evil"
+ ],
+ "commit": "03c014d63373c21c511506f36763a355e566eb01",
+ "sha256": "096im6yld0bqkdrb3ywxiabv55l8qdvg10887iwq86zprj89igmf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "auctex",
+ "evil"
+ ],
+ "commit": "bb01576e4cf9cc10c529621ced3ef3a7eb5ab376",
+ "sha256": "1d4s9f0p8bmch3kv7zh5fcv1y6nxza9kfcrjrdvmflz1nb96sy6g"
+ }
+ },
+ {
+ "ename": "evil-text-object-python",
+ "commit": "0d0893b07bc4a057561a1c1a85b7520c50f31e12",
+ "sha256": "0jdzs1yn8nrxq890427yjrxdvnzj8jy7bs3jj4w4c0fik26ngqhm",
+ "fetcher": "github",
+ "repo": "wbolster/evil-text-object-python",
+ "unstable": {
+ "version": [
+ 20191010,
+ 1328
+ ],
+ "deps": [
+ "dash",
+ "evil"
+ ],
+ "commit": "39d22fc524f0413763f291267eaab7f4e7984318",
+ "sha256": "0293hfgczpjghvg28s27c5r6ll1zaq466pasrhzj71sqzyvxq7ax"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "3b3fb01e7ad7eeeeae1143695547fe75148cc44f",
+ "sha256": "1alin2rmx1xa1w3b1nb76bplmg10il55jxxm6jj7qs6z1izzllci"
+ }
+ },
+ {
+ "ename": "evil-textobj-anyblock",
+ "commit": "36b734960313d4cb484cebaac0f112781436631c",
+ "sha256": "03vk30s2wkcszcjxmh5ww39rihnag9cp678wdzq4bnqy0c6rnjwa",
+ "fetcher": "github",
+ "repo": "noctuid/evil-textobj-anyblock",
+ "unstable": {
+ "version": [
+ 20170905,
+ 1907
+ ],
+ "deps": [
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "ff00980f0634f95bf2ad9956b615a155ea8743be",
+ "sha256": "0wn5lp7kh3ip1bmqi12c9ivpjj0x602h8d7ag39qw36smv4jqvnb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "evil"
+ ],
+ "commit": "068d26a625cd6202aaf70a8ff399f9130c0ffa68",
+ "sha256": "0vsf7yzlb2j7c5c7cnk81y1979psy6a9v7klg6c2j9lkcn3cqpvj"
+ }
+ },
+ {
+ "ename": "evil-textobj-column",
+ "commit": "de7d6dc0d9c42a89be2959d015efa30960df2de7",
+ "sha256": "13q3nawx05rn3k6kzq1889vxjznr454cib96pc9lmrq7h65lym2h",
+ "fetcher": "github",
+ "repo": "noctuid/evil-textobj-column",
+ "unstable": {
+ "version": [
+ 20170905,
+ 1905
+ ],
+ "deps": [
+ "evil",
+ "names"
+ ],
+ "commit": "835d7036d0bc9a6e44fc9b7c54ccf2a7c01428cd",
+ "sha256": "0g9d62sgcpzvhbrdk4hf3phphfss74mjz6xv4wd9895rzjsziwkf"
+ }
+ },
+ {
+ "ename": "evil-textobj-entire",
+ "commit": "e1da0063a17d53f30e041e08161ad8fbc9942270",
+ "sha256": "0hkdnkv03b31330pnkijhhbyw00m7bxfvs3cgzfazsvvcsha4gmi",
+ "fetcher": "github",
+ "repo": "supermomonga/evil-textobj-entire",
+ "unstable": {
+ "version": [
+ 20150422,
+ 1254
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "5b3a98f3a69edc3a788f539f6ffef4a0ef5e853d",
+ "sha256": "0m3krfmc9llpywr0lbya36b2jbnzx1pylvhj0p1ss5rh735m00jy"
+ }
+ },
+ {
+ "ename": "evil-textobj-line",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1jwhg56nhf5iv7zbfdzi6ygikc49bnrqh1r5kd98n5wxz9vz2h75",
+ "fetcher": "github",
+ "repo": "emacsorphanage/evil-textobj-line",
+ "unstable": {
+ "version": [
+ 20150729,
+ 1522
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "3d401b6831bdbeec967ec8e64177a8950251e812",
+ "sha256": "1vnk27bizzi321mdq3k39zxv8w20ifxbhxabiy685nyk89cq3mbj"
+ }
+ },
+ {
+ "ename": "evil-textobj-syntax",
+ "commit": "0dba37e5a2ba5ef1f397b37d6845acdc4872e5f2",
+ "sha256": "0d0fg71xmbqhx91ljnkxmakcc0qn3341wjjmzax33qilz5syp3m9",
+ "fetcher": "github",
+ "repo": "laishulu/evil-textobj-syntax",
+ "unstable": {
+ "version": [
+ 20181210,
+ 1213
+ ],
+ "deps": [
+ "evil",
+ "names"
+ ],
+ "commit": "2d9ba8c75c754b409aea7469f46a5cfa52a872f3",
+ "sha256": "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"
+ }
+ },
+ {
+ "ename": "evil-traces",
+ "commit": "29f1f13a99b065f4510f6967d0cfce37eaa59178",
+ "sha256": "1h8mi0qa5aaahhlkaf91ynsddj5fm11yimkqj14xmjyig1m98yyd",
+ "fetcher": "github",
+ "repo": "mamapanda/evil-traces",
+ "unstable": {
+ "version": [
+ 20191214,
+ 558
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "bc25cae9fa5ab0ba1507827f0944f52ce0ca7462",
+ "sha256": "0xz2yjgz6h2d6h7gfhnvrylh8gj0s7vf45bvqa450j5579gz5sqz"
+ }
+ },
+ {
+ "ename": "evil-tutor",
+ "commit": "4b7bfffdc34e181893b8cf4d1cc091f6c3f91126",
+ "sha256": "1hvc2w5ykrgh62n4sxqqqcdk5sd7nmh6xzv4mir5vf9y2dgqcvsn",
+ "fetcher": "github",
+ "repo": "syl20bnr/evil-tutor",
+ "unstable": {
+ "version": [
+ 20150103,
+ 650
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "4e124cd3911dc0d1b6817ad2c9e59b4753638f28",
+ "sha256": "00yfq8aflxvp2nnz7smgq0c5wlb7cips5irj8qs6193ixlkpffvx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "909273bac88b98a565f1b89bbb13d523b7edce2b",
+ "sha256": "1rskvkmz30xyy8xfjf2i35f3dxh663gb3plfy3f0j6z17i086jl2"
+ }
+ },
+ {
+ "ename": "evil-tutor-ja",
+ "commit": "2c98605fd21b38aaa200c6a0ec4c18f8575b0d7a",
+ "sha256": "1yd8aij9q1jdmb387f1zjiq5mf68jvbgbyp5b49hmag4hw5h7vm2",
+ "fetcher": "github",
+ "repo": "kenjimyzk/evil-tutor-ja",
+ "unstable": {
+ "version": [
+ 20160917,
+ 132
+ ],
+ "deps": [
+ "evil",
+ "evil-tutor"
+ ],
+ "commit": "99af7d82e02ce3bcdfaff47c5c80b57327a7ea8d",
+ "sha256": "1cms98cy4p5dxwfc1zhgdaln8vr2nxzcj0d31imyabb4mwliabfw"
+ }
+ },
+ {
+ "ename": "evil-vimish-fold",
+ "commit": "fcd51e24f88ebbbd3fddfc7c6f3b667d5104cf2b",
+ "sha256": "01wp4h97hjyzbpd7iighjj26m79499wp5pn8m4pa7v59f6r3sdk6",
+ "fetcher": "github",
+ "repo": "alexmurray/evil-vimish-fold",
+ "unstable": {
+ "version": [
+ 20200122,
+ 117
+ ],
+ "deps": [
+ "evil",
+ "vimish-fold"
+ ],
+ "commit": "b6e0e6b91b8cd047e80debef1a536d9d49eef31a",
+ "sha256": "14qhfhk3d4c7v4jhr909dbxy8222flpqwk73bwg0pqwpkcifyv7n"
+ }
+ },
+ {
+ "ename": "evil-visual-mark-mode",
+ "commit": "293cdd3387f26e4c8f21582d75a194963ac9cff7",
+ "sha256": "1qgr2dfhfz6imnlznicl7lplajd1s8wny7mlxs1bkms3xjcjfi48",
+ "fetcher": "github",
+ "repo": "roman/evil-visual-mark-mode",
+ "unstable": {
+ "version": [
+ 20190116,
+ 1557
+ ],
+ "deps": [
+ "dash",
+ "evil"
+ ],
+ "commit": "ac5997971972a9251f140b5542d82790ca4a43b4",
+ "sha256": "1gh5614l4zf15109zc64pnnc5rp5ilah9mavgr2rbv2874k3vs4n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "evil"
+ ],
+ "commit": "094ee37599492885ff3144918fcdd9b74dadaaa0",
+ "sha256": "07cmql8zsqz1qchq2mp3qybbay499dk1yglisig6jfddcmrbbggz"
+ }
+ },
+ {
+ "ename": "evil-visual-replace",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1dq3bd9aqpk3jq1c9yzlpjyw6mi8l428l111vrmfg156k1w22v01",
+ "fetcher": "github",
+ "repo": "troyp/evil-visual-replace",
+ "unstable": {
+ "version": [
+ 20171016,
+ 613
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "163fc827a1ffc106475da470c37fb26f4cc9b008",
+ "sha256": "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "163fc827a1ffc106475da470c37fb26f4cc9b008",
+ "sha256": "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"
+ }
+ },
+ {
+ "ename": "evil-visualstar",
+ "commit": "578d33f3f8e68ef1b3ca3fb8af9b9ff77b649bd3",
+ "sha256": "135l9hjfbpn0a6p53picnpydi9qs5vrk2rfn64gxa5ag2apcyycy",
+ "fetcher": "github",
+ "repo": "bling/evil-visualstar",
+ "unstable": {
+ "version": [
+ 20160223,
+ 48
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "06c053d8f7381f91c53311b1234872ca96ced752",
+ "sha256": "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "eb996eca0081b6e8bab70b2c0a86ef1c71087bf6",
+ "sha256": "11y2jrwbsw4fcx77zkhj1cn2hl1zcdqy00bv3mpbcrs03jywssrk"
+ }
+ },
+ {
+ "ename": "evm",
+ "commit": "bbcead697f745d197459f90ee05b172e35af2411",
+ "sha256": "19l6cs5schbnph0pwhhj66gkxsswd4bmjpy79l9kxzpjf107wc03",
+ "fetcher": "github",
+ "repo": "rejeep/evm.el",
+ "unstable": {
+ "version": [
+ 20141007,
+ 1156
+ ],
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "d0623b2355436a5fd9f7238b419782080c79196b",
+ "sha256": "0739v0m9vj70a55z0canslyqgafzys815i7a0r6bxj2f9iwq6rhb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "d0623b2355436a5fd9f7238b419782080c79196b",
+ "sha256": "0739v0m9vj70a55z0canslyqgafzys815i7a0r6bxj2f9iwq6rhb"
+ }
+ },
+ {
+ "ename": "ewal",
+ "commit": "33592edc97154b396b469e2352779721d5df670b",
+ "sha256": "1i6j8dgbgj64wa08wl4kzf26q2x73zy2n4zfa4dzvdspm2bn0ddr",
+ "fetcher": "gitlab",
+ "repo": "jjzmajic/ewal",
+ "unstable": {
+ "version": [
+ 20200305,
+ 230
+ ],
+ "commit": "4ecc355dae9c7d648cd2874e01a15dfa02b9350d",
+ "sha256": "1v444nfrzz0lkybrgfics5kc8gncbvvs23qlq1pkz7ann6q84ip0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "732a2f4abb480f9f5a3249af822d8eb1e90324e3",
+ "sha256": "09dgs0g5hcf5hris8i1w6w7wxarzmsagyc3l50rflvxy3djhlbkd"
+ }
+ },
+ {
+ "ename": "ewal-doom-themes",
+ "commit": "5f59228fa54a9733f549c1ba531cd90d4350fb62",
+ "sha256": "14blxk8dkr0hkhf1hd75xk0zzx6qxavynymhbwbvbf3m0mp64x6l",
+ "fetcher": "gitlab",
+ "repo": "jjzmajic/ewal",
+ "unstable": {
+ "version": [
+ 20200301,
+ 839
+ ],
+ "deps": [
+ "doom-themes",
+ "ewal"
+ ],
+ "commit": "4ecc355dae9c7d648cd2874e01a15dfa02b9350d",
+ "sha256": "1v444nfrzz0lkybrgfics5kc8gncbvvs23qlq1pkz7ann6q84ip0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "doom-themes",
+ "ewal"
+ ],
+ "commit": "732a2f4abb480f9f5a3249af822d8eb1e90324e3",
+ "sha256": "09dgs0g5hcf5hris8i1w6w7wxarzmsagyc3l50rflvxy3djhlbkd"
+ }
+ },
+ {
+ "ename": "ewal-evil-cursors",
+ "commit": "ee7f9833a1dda00e12bcf45c7194ebc38e26168b",
+ "sha256": "177f5m1a3cvgjkgqz61w8gz3q272sk2cafq2z29rk88gcfbm2iqc",
+ "fetcher": "gitlab",
+ "repo": "jjzmajic/ewal",
+ "unstable": {
+ "version": [
+ 20190911,
+ 1315
+ ],
+ "deps": [
+ "ewal"
+ ],
+ "commit": "4ecc355dae9c7d648cd2874e01a15dfa02b9350d",
+ "sha256": "1v444nfrzz0lkybrgfics5kc8gncbvvs23qlq1pkz7ann6q84ip0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "ewal"
+ ],
+ "commit": "732a2f4abb480f9f5a3249af822d8eb1e90324e3",
+ "sha256": "09dgs0g5hcf5hris8i1w6w7wxarzmsagyc3l50rflvxy3djhlbkd"
+ }
+ },
+ {
+ "ename": "ewal-spacemacs-themes",
+ "commit": "5aebe80668479c02a694fef153cea0e9f9ca7eb0",
+ "sha256": "0a0xpjlw3yfqfn2wcyqzpdisyr5pm1x35k8rpcjhwn5lhh7njlfc",
+ "fetcher": "gitlab",
+ "repo": "jjzmajic/ewal",
+ "unstable": {
+ "version": [
+ 20190911,
+ 1305
+ ],
+ "deps": [
+ "ewal",
+ "spacemacs-theme"
+ ],
+ "commit": "4ecc355dae9c7d648cd2874e01a15dfa02b9350d",
+ "sha256": "1v444nfrzz0lkybrgfics5kc8gncbvvs23qlq1pkz7ann6q84ip0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "ewal",
+ "spacemacs-theme"
+ ],
+ "commit": "732a2f4abb480f9f5a3249af822d8eb1e90324e3",
+ "sha256": "09dgs0g5hcf5hris8i1w6w7wxarzmsagyc3l50rflvxy3djhlbkd"
+ }
+ },
+ {
+ "ename": "ewmctrl",
+ "commit": "b2a7679f0961b171bf23080e628ae80f50c446e4",
+ "sha256": "1w60pb7szai1kh06jd3qvgpzq3z1ci4a77ysnpqjfk326s6zv7hl",
+ "fetcher": "github",
+ "repo": "flexibeast/ewmctrl",
+ "unstable": {
+ "version": [
+ 20170922,
+ 217
+ ],
+ "commit": "3d0217c4d6cdb5c308b6cb4293574f470d4faacf",
+ "sha256": "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "3d0217c4d6cdb5c308b6cb4293574f470d4faacf",
+ "sha256": "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"
+ }
+ },
+ {
+ "ename": "eww-lnum",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1hhc6q8zlj335v27j4dq6ms7frqpivfabs9w3vkaly5kjr60fw7c",
+ "fetcher": "github",
+ "repo": "m00natic/eww-lnum",
+ "unstable": {
+ "version": [
+ 20150102,
+ 1512
+ ],
+ "commit": "4b0ecec769919ecb05ca4fb15ec51911ba589929",
+ "sha256": "1i6zf17rwa390c33cbspz81dz86vwlphyhjjsia4gp205nfk3s20"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "daef49974446ed4c1001e0549c3f74679bca6bd3",
+ "sha256": "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"
+ }
+ },
+ {
+ "ename": "exato",
+ "commit": "939efbcb9b40a2df5ef14e653fb242a8e37c72f9",
+ "sha256": "1h2dd3yhv1n0sznznw8ncx98g53hgi1rg1zkd0nmldih2rd5qisn",
+ "fetcher": "github",
+ "repo": "ninrod/exato",
+ "unstable": {
+ "version": [
+ 20180305,
+ 1042
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "aee7af7b7a0e7551478f453d1de7d5b9cb2e06c4",
+ "sha256": "0m98bwj8dy90ifck8rsda6zfgbjrv5z0166pp7qzvwls9rqa695m"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "evil"
+ ],
+ "commit": "5e7b5721bf48aa49c6cdb5d41b908ef7d513b2a8",
+ "sha256": "0xia8dvpz294pqc3zdr0knhdlw251dhkdm69v1005674kd15259w"
+ }
+ },
+ {
+ "ename": "exec-path-from-shell",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "014bfcs7znds4if1njyq4s5zrfnr6b3wj6722b4l5r58gh9mlrr5",
+ "fetcher": "github",
+ "repo": "purcell/exec-path-from-shell",
+ "unstable": {
+ "version": [
+ 20200526,
+ 324
+ ],
+ "commit": "e5647b910900972bc59acea7b74e932ba0a94ce2",
+ "sha256": "18awpmyrvcw6yckms8wfgyh5kfyva1w7vpvclqa655l22brbvpph"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 12
+ ],
+ "commit": "76cd6e3fa8a7dac937af7e40507843dfae4f9184",
+ "sha256": "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"
+ }
+ },
+ {
+ "ename": "execline",
+ "commit": "118862adbbd26616a5fe110c29296f5ae53b199a",
+ "sha256": "1wjj826vglnxccyl95k7kqnsa185w8qirvimzqldp6j53asrd0vy",
+ "fetcher": "gitlab",
+ "repo": "KAction/emacs-execline",
+ "unstable": {
+ "version": [
+ 20190711,
+ 2010
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "c75dd9b2c54d8e59fc35fd4bd98d8e213948a3f5",
+ "sha256": "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "c75dd9b2c54d8e59fc35fd4bd98d8e213948a3f5",
+ "sha256": "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"
+ }
+ },
+ {
+ "ename": "exiftool",
+ "commit": "4835a76909d020781021e747fbc341111a94dbfa",
+ "sha256": "1zvcps64yvz8lsjhi1j0808983fv2s7kx67yjr8ps454mcl8bpab",
+ "fetcher": "git",
+ "url": "https://git.systemreboot.net/exiftool.el/",
+ "unstable": {
+ "version": [
+ 20190520,
+ 1106
+ ],
+ "commit": "e043df1bcef40cd5934a74c210e1e35d5eb0e5a6",
+ "sha256": "0am4g25mlmm1iqcm2kxzskrzhrm1f09cdwcqmvk4lidid5xcb6xc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "commit": "c1058d99c34e62b99dbfca13ada47519fb51bf73",
+ "sha256": "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"
+ }
+ },
+ {
+ "ename": "exotica-theme",
+ "commit": "9182f92dd62e2f1775a76699a6c8f9c3e71e9030",
+ "sha256": "1fzf1zpllkddkq02hvabbi2bh6rnanlyinb6fjwsyh39wvzhsfhs",
+ "fetcher": "github",
+ "repo": "jbharat/exotica-theme",
+ "unstable": {
+ "version": [
+ 20180212,
+ 2329
+ ],
+ "commit": "ff3ef4f6fa38c93b99becad977c7810c990a4d2f",
+ "sha256": "1kp6q55g3dcya4y79x877vqwxa4z2rkkvhs49pkwr3wljf4af2pd"
+ }
+ },
+ {
+ "ename": "expand-line",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "0bzz7zrpfdxhjxs7nzlmzjb9jfajhxkivzr5sm87mg3zx8b6gjyi",
+ "fetcher": "github",
+ "repo": "zhangkaiyulw/expand-line",
+ "unstable": {
+ "version": [
+ 20151006,
+ 207
+ ],
+ "commit": "75a5d0241f35dd0748ab8ecb4ff16891535be372",
+ "sha256": "0wz4h5hrr5ci0w8pynd2nr1b2zl5hl4pa8gc16mcabik5927rf7z"
+ }
+ },
+ {
+ "ename": "expand-region",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1c7f1nqsqdc75h22fxxnyg0m4yxj6l23sirk3c71fqj14paxqnwg",
+ "fetcher": "github",
+ "repo": "magnars/expand-region.el",
+ "unstable": {
+ "version": [
+ 20200304,
+ 1839
+ ],
+ "commit": "ea6b4cbb9985ddae532bd2faf9bb00570c9f2781",
+ "sha256": "1pc3nnyb6cy4x6xnm25kdhmjmfm2rar7cnxsfck2wg5nm11p0klm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 11,
+ 0
+ ],
+ "commit": "0bc14fc7fbbcca5da4fdd9695cfd7cbd36eb3b96",
+ "sha256": "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"
+ }
+ },
+ {
+ "ename": "express",
+ "commit": "9a97f5f81af13c49f5bea31455d7da0bf2c12e4f",
+ "sha256": "0lhisy4ds96bwpc7k8w9ws1zi1qh0d36nhxsp36bqzfi09ig0nb9",
+ "fetcher": "github",
+ "repo": "rolandwalker/express",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "deps": [
+ "string-utils"
+ ],
+ "commit": "93dae7377eace4a5413ba99aecb6f26f90798725",
+ "sha256": "0ah8zayipwp760909llb9whcdvmbsdgkg0x5y4qlcicm1r9kwcc7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "string-utils"
+ ],
+ "commit": "e6dc9abdc395ef537408befebeb4fd3ed4ee5c60",
+ "sha256": "106yh793scbyharsk1dvrirkj3c6666w8jqilpkaz78vwyw3zs5y"
+ }
+ },
+ {
+ "ename": "exsqlaim-mode",
+ "commit": "7f660d7629bc27144c99ebcba45f1b06b14c5745",
+ "sha256": "0ssn48wcn3x066nsl8y78y57ndasqv5x6ifxbifdxl3f5vjhyvg7",
+ "fetcher": "github",
+ "repo": "ahmadnazir/exsqlaim-mode",
+ "unstable": {
+ "version": [
+ 20170607,
+ 1003
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "a2e0a62ec8b87193d8eaa695774bfd689324b06c",
+ "sha256": "1gj1q2h1ja30jizkjql12cxlppj07ykr4wxqca9msy043zdhqnkk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "a2e0a62ec8b87193d8eaa695774bfd689324b06c",
+ "sha256": "1gj1q2h1ja30jizkjql12cxlppj07ykr4wxqca9msy043zdhqnkk"
+ }
+ },
+ {
+ "ename": "extempore-mode",
+ "commit": "7bd3e57171f5283604e9375613a7a94416ee99a7",
+ "sha256": "1z8nzpcj27s74kxfjz7wyr3848jpd6mbyjkssd06ri5p694j9php",
+ "fetcher": "github",
+ "repo": "extemporelang/extempore-emacs-mode",
+ "unstable": {
+ "version": [
+ 20200518,
+ 1043
+ ],
+ "commit": "7d0ca861e6b483be1f4a08e63c5ade9cd07b4799",
+ "sha256": "0mw041jccyn8s1n3wpas397k2vrp9ryq9lfj16ipk9iqs4la6hlx"
+ }
+ },
+ {
+ "ename": "extend-dnd",
+ "commit": "f2d866ca12cb997b7fad878808c0966f3413b73d",
+ "sha256": "0rknpvp8yw051pg3blvmjpp3c9a82jw7f10mq67ggbz98w227417",
+ "fetcher": "github",
+ "repo": "mattfidler/extend-dnd",
+ "unstable": {
+ "version": [
+ 20151122,
+ 1850
+ ],
+ "commit": "80c966c93b82c9bb5c6225a432557c39144fc602",
+ "sha256": "15dwl1rb3186k328a83dz9xmslc0px60ah16fifvmr3migis9hwz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "a1923d57f8f5e862cc66c189b5e6627bc84a2119",
+ "sha256": "1k2j8szavyq2wy5c0skvs03a88cr9njy7y63b7knh2m92nw4830d"
+ }
+ },
+ {
+ "ename": "extmap",
+ "commit": "91ef4352603cc69930ab3d63f0a90eee63f5f328",
+ "sha256": "0c12gfd3480y4fc22ik02n7h85k6s70i5jv5i872h0yi68cgd01j",
+ "fetcher": "github",
+ "repo": "doublep/extmap",
+ "unstable": {
+ "version": [
+ 20200617,
+ 1905
+ ],
+ "commit": "2a6373d4fad1a5ac95272cabb6f5e4af89233d67",
+ "sha256": "0n0hz93x7mbf95mf8vvc6cam7qbzwj4kskbbws07km2av7jsi166"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "341e3e16e217da5a006c0859cb3a59cbc40cfb84",
+ "sha256": "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"
+ }
+ },
+ {
+ "ename": "exunit",
+ "commit": "94e4fd4cf58b280d08d22aff4dd9c47201a29e72",
+ "sha256": "1wyxxy1hd50p17widf31sysp28adr09n8ksyd3hn6pnvyn2m0k81",
+ "fetcher": "github",
+ "repo": "ananthakumaran/exunit.el",
+ "unstable": {
+ "version": [
+ 20190919,
+ 1238
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "c77b0397b80d772c98fcc34c9ab131a8350fbf40",
+ "sha256": "08lhsjmibgvd4cjrvyxhwn7cqrpd83bgsvh2xqppi9mnw1xwgzd5"
+ }
+ },
+ {
+ "ename": "exwm-edit",
+ "commit": "f247915e02e59ebd6a2a219e55870e034d41c938",
+ "sha256": "0bydkznywma0x293m105amppx4qx1iyjpqdfq6np73176xfy6kc5",
+ "fetcher": "github",
+ "repo": "agzam/exwm-edit",
+ "unstable": {
+ "version": [
+ 20200728,
+ 8
+ ],
+ "commit": "2fd9426922c8394ec8d21c50dcc20b7d03af21e4",
+ "sha256": "1gwqwj50ch8iib5yqbyvski7vxiwid6s49lj2xcy5kksnx1a2410"
+ }
+ },
+ {
+ "ename": "exwm-firefox-core",
+ "commit": "745a2b98c48b00cd794dfb97be4072813ee67ada",
+ "sha256": "1d6j8nrlb7lsyki796vpfidj8y2cz5lnqf8zzfqsbqf92kj5v9zd",
+ "fetcher": "github",
+ "repo": "walseb/exwm-firefox-core",
+ "unstable": {
+ "version": [
+ 20190812,
+ 2110
+ ],
+ "deps": [
+ "exwm"
+ ],
+ "commit": "e2fe2a895e8f973307ef52f8c9976b26e701cbd0",
+ "sha256": "0k5jkjzx6f8nfmbkc61raj585p9pymycgzv7rr3fhv2drgkaa4yi"
+ }
+ },
+ {
+ "ename": "exwm-firefox-evil",
+ "commit": "09fa63c7bd639c0b7dda540504c74cdbbe4f9875",
+ "sha256": "0wg3jydgj2fi5gxv3kwm1dvpxvc3ypn28kxlzfp801xrrfc241ml",
+ "fetcher": "github",
+ "repo": "walseb/exwm-firefox-evil",
+ "unstable": {
+ "version": [
+ 20200206,
+ 2212
+ ],
+ "deps": [
+ "evil",
+ "exwm",
+ "exwm-firefox-core"
+ ],
+ "commit": "14643ee53a506ddcb5d2e06cb9f1be7310cd00b1",
+ "sha256": "12rhsy5f662maip1sma0vi364xb8swb7g59r4dmafjv3b52gxik8"
+ }
+ },
+ {
+ "ename": "exwm-mff",
+ "commit": "78f94ec4d5f83020003cbdb7b954213dfb0f242b",
+ "sha256": "10qjdhdkvyavjl43cyq9czvfbx8s0riiby0fss6v0snxdhg4qysd",
+ "fetcher": "github",
+ "repo": "ieure/exwm-mff",
+ "unstable": {
+ "version": [
+ 20200516,
+ 2335
+ ],
+ "deps": [
+ "exwm"
+ ],
+ "commit": "81fbbea495e32aef2e2d86c097cb586422d8822c",
+ "sha256": "0c3k2cs57iahm5dc1i3h05kiz4fjh7l2675im8kh91jx7lk27vb5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 6
+ ],
+ "deps": [
+ "exwm"
+ ],
+ "commit": "74a05bb1cc9444bb57d7a5361a15ec38deb4295a",
+ "sha256": "128j1xqg1k2z0lp7ivnszx8aai8y0zg182n1fhwc3iryrz52fn5q"
+ }
+ },
+ {
+ "ename": "exwm-surf",
+ "commit": "4fc27fae2b58c7af87dadba9217cc05f8ab4890c",
+ "sha256": "066qbn1w63irh9b03qs0fv77x71cind22kdj6wygaznrpgwr0kny",
+ "fetcher": "github",
+ "repo": "ecraven/exwm-surf",
+ "unstable": {
+ "version": [
+ 20171204,
+ 1140
+ ],
+ "deps": [
+ "exwm"
+ ],
+ "commit": "6c17e2c1597fe4b7b454a1dac23b9127ac951e94",
+ "sha256": "0rb921fq3pyzv0w1s6n0zx4j7cvv68mb50hfa8nqnppz5ii1k0lb"
+ }
+ },
+ {
+ "ename": "exwm-x",
+ "commit": "a0e6e23bcffdcd1e17c70599c563609050e5de40",
+ "sha256": "1d9q57vz63sk3h1g5gvp9xnmqkpa73wppmiy2bv8mxk11whl6xa3",
+ "fetcher": "github",
+ "repo": "tumashu/exwm-x",
+ "unstable": {
+ "version": [
+ 20190224,
+ 1152
+ ],
+ "deps": [
+ "bind-key",
+ "cl-lib",
+ "counsel",
+ "exwm",
+ "ivy",
+ "swiper",
+ "switch-window"
+ ],
+ "commit": "02ec31cd8996b1b3fe305405fef7334c4d08e72b",
+ "sha256": "18cgfnh7bp152gi4zv2skrkjbxs0v2zn6jk35rc48y8nfivps2f4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9,
+ 0
+ ],
+ "deps": [
+ "bind-key",
+ "cl-lib",
+ "counsel",
+ "exwm",
+ "ivy",
+ "swiper",
+ "switch-window"
+ ],
+ "commit": "88c8b70be678ce0e9fa31e191ffd3f76bbfee61f",
+ "sha256": "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"
+ }
+ },
+ {
+ "ename": "eyebrowse",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "18wkfih7i6swg0wadkrs3bq7bmy54v0lph2p14dqpgmxcyh2zzgg",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/eyebrowse.git",
+ "unstable": {
+ "version": [
+ 20200506,
+ 1303
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "bde0eb8f56ec7e2501dc33154c273e43cafb1e5d",
+ "sha256": "19x3wfnbcmrrywxbigr3lv0yp6dxmr0iy10ykqg3pajpxbvarcn2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 8
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "d75e37a048718d6981c366c431b93ccbe884f356",
+ "sha256": "08k6dcz2pzgv0n4rfpq0gmpzs9319h5jk5xznmh2s8y42imvp5l7"
+ }
+ },
+ {
+ "ename": "eyuml",
+ "commit": "b09a8d723e357da67441e65047759ccfa9cb7ef6",
+ "sha256": "0ada2gcl8bw9nn0fz8g9lbqy8a8w1554q03fzd7lv8qla33ri3wx",
+ "fetcher": "github",
+ "repo": "antham/eyuml",
+ "unstable": {
+ "version": [
+ 20141028,
+ 2227
+ ],
+ "deps": [
+ "request",
+ "s"
+ ],
+ "commit": "eb29c37316e44a14741f16e894fbcfcb7537dc80",
+ "sha256": "19n2dzr3m56g76igh57cvvhqwpbcicwr7r6r4i3l8vsjch99kp6m"
+ }
+ },
+ {
+ "ename": "ez-query-replace",
+ "commit": "c40808c7687ace84e4c59bf8c25332c94b6fdd76",
+ "sha256": "1h9ijr1qagwp9vvikh7ajby0dqgfypjgc45s7d93zb9jrg2n5cgx",
+ "fetcher": "github",
+ "repo": "Wilfred/ez-query-replace.el",
+ "unstable": {
+ "version": [
+ 20170814,
+ 1321
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "f5dbd2d3e5e62e6b7e7cc1a98fc4d0cd411e5afa",
+ "sha256": "14mikpxrsmjwdpya45cf47v2gjwxmql10xjk907x27iqqxmfif74"
+ }
+ },
+ {
+ "ename": "eziam-theme",
+ "commit": "4e0411583bd4fdbe425eb07de98851136fa1eeb0",
+ "sha256": "0iz3r4r54ai8y4qhnix291ra7qfmk8dbr06f52pgmz3gzin1cqpb",
+ "fetcher": "github",
+ "repo": "thblt/eziam-theme-emacs",
+ "unstable": {
+ "version": [
+ 20200327,
+ 1810
+ ],
+ "commit": "7a585de01b6fee081eaa167b09d7e12d02cf4149",
+ "sha256": "11v8rbaiaihpky1m7azbflz77mwg76nbg8hsgybs86wyjk5797dv"
+ },
+ "stable": {
+ "version": [
+ 3
+ ],
+ "commit": "e0c0daa37c3d70880052b3d55fcda05b92d575a6",
+ "sha256": "0jv0l1hcb33cinqivckhp18a8fkxpg38pkdyva1zripgz1ldjvxc"
+ }
+ },
+ {
+ "ename": "f",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "18qax8i24gpccif4xcxccclpwl00plxjf3zbq9dry37b1r4mj57s",
+ "fetcher": "github",
+ "repo": "rejeep/f.el",
+ "unstable": {
+ "version": [
+ 20191110,
+ 1357
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "1814209e2ff43cf2e6d38c4cd476218915f550fb",
+ "sha256": "1l9lff15vbji9phpx4jrg8bmw2bkspzmhcgawchf5ylg2sb6yymm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 20,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "de6d4d40ddc844eee643e92d47b9d6a63fbebb48",
+ "sha256": "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"
+ }
+ },
+ {
+ "ename": "f3",
+ "commit": "5b40de62a82d6895a37ff795d56f7d0f783461e6",
+ "sha256": "099wibgp9k6sgglaqigic5ay6qg7aqijnis5crwjl7b81ddqp610",
+ "fetcher": "github",
+ "repo": "cosmicexplorer/f3",
+ "unstable": {
+ "version": [
+ 20180130,
+ 1158
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "000009ce4adf7a57eae80512f29c4ec2a1391ce5",
+ "sha256": "0q3ylw0i1bg7pzsv4gj72jcfjjfh57vsb3fnfnhhh5i5vladiqsf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "19120dda2d760d3dd6c6aa620121d1de0a40932d",
+ "sha256": "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"
+ }
+ },
+ {
+ "ename": "fabric",
+ "commit": "83939d2a4d5874244a4916eee9ae6b327af18b5d",
+ "sha256": "1mkblsakdhvi10b67bv3j0jsf7hr8lf9sibmprvx8smqsih7l88m",
+ "fetcher": "github",
+ "repo": "nlamirault/fabric.el",
+ "unstable": {
+ "version": [
+ 20171116,
+ 656
+ ],
+ "commit": "df79be341d0b34ed23850f9894136092fa5fea8c",
+ "sha256": "1mnz81k1jz2sa3zj68ihzgq66l9fcxvzb67ad62p8bvi2aksxx7z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "004934318f63d8cf955022f87b2c33eb97ada280",
+ "sha256": "0crhkdbxz1ldbrvppi95g005ni5zg99z1271rkrnk5i6cvc4hlq5"
+ }
+ },
+ {
+ "ename": "face-explorer",
+ "commit": "2370fdf6421dc518337e04bd2453a5f74e2df2b2",
+ "sha256": "1jfidkkizgwhkkrgvrmq5vrx5ir4zjw4zzc2alw9gkjn1ddq22q7",
+ "fetcher": "github",
+ "repo": "Lindydancer/face-explorer",
+ "unstable": {
+ "version": [
+ 20190517,
+ 1857
+ ],
+ "commit": "ad1300e13e5643e4c246cabfd91f833d39113052",
+ "sha256": "0nq36h6kwyi2sv1fklm42spfkllm6jlz0alh2qlpgy4ixq5sp2pv"
+ }
+ },
+ {
+ "ename": "face-shift",
+ "commit": "e55d2d30525602726c3c63025f5fce671efac416",
+ "sha256": "1y0m6yv64q76x6i2r5npn97c2axsy2k7b3m58zxh8p7c5lpwjdpa",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~zge/face-shift",
+ "unstable": {
+ "version": [
+ 20190818,
+ 1551
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8dd6fb5f6277d3a594654aeb3e6a7b7b5581656a",
+ "sha256": "003k8i18s782zf1g0c9wi8p9lyk0viz76dah8hd3y622hmx8sdlb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "347e9a1c801c80be546fbf3be808f8245fb049d8",
+ "sha256": "0lkrbbhgv2a101rsf78ik27ni66spml3z9ljsajwjwhv3hvky0rq"
+ }
+ },
+ {
+ "ename": "faceup",
+ "commit": "a10bf2928b93c3908e89ca8ad9649bb468ebca05",
+ "sha256": "0l41xp38iji55dv20lk7r187ywcz8s1g2jmwbjwkspzmcf763xvx",
+ "fetcher": "github",
+ "repo": "Lindydancer/faceup",
+ "unstable": {
+ "version": [
+ 20170925,
+ 1946
+ ],
+ "commit": "6c92dad56a133e14e7b27831e1bcf9b3a71ff154",
+ "sha256": "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"
+ }
+ },
+ {
+ "ename": "factlog",
+ "commit": "9075a42edee1ac7de0812d2eefcba5681859eb6e",
+ "sha256": "163482vfpa52b5ya5xps4qnclbaql1x0q54gqdwwmm04as8qbfz7",
+ "fetcher": "github",
+ "repo": "tkf/factlog",
+ "unstable": {
+ "version": [
+ 20130210,
+ 140
+ ],
+ "deps": [
+ "deferred"
+ ],
+ "commit": "6503d77ea882c995b051d22e72db336fb28770fc",
+ "sha256": "19zm9my7fl1r3q48axjv2f8x9hcjk6qah4y4r92b90bzfmcdc30y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "c834fdab81ec5b1bdc0ee2721a12cecb48a319bf",
+ "sha256": "01l8dlfpyy97b17djbza46rq11xlbkhd5kn2r26r2xac8klj4pka"
+ }
+ },
+ {
+ "ename": "faff-theme",
+ "commit": "0b35c169fe56a5612ff5a4242140f617fdcae14f",
+ "sha256": "1dmwbkp94zsddy0brs3mkdjr09n69maw2mrdfhriqcdk56qpwp4g",
+ "fetcher": "github",
+ "repo": "WJCFerguson/emacs-faff-theme",
+ "unstable": {
+ "version": [
+ 20200304,
+ 1414
+ ],
+ "commit": "3a2f4b567de490ee7af32ecca46de741e7fd7d6a",
+ "sha256": "0h3i61md4w6zsjarqan0s3p3kxz5af6ic3fww4ly6s8q1nv57xsc"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 9
+ ],
+ "commit": "0aaa15181eab4088a57ad69ba2c93b2663453c31",
+ "sha256": "0xg20g9qqmi1x94d8f0gqwxgxpyzirs61nj86507bqn2c4n00r7v"
+ }
+ },
+ {
+ "ename": "fakespace",
+ "commit": "778dbe1fd1d2ecebb499ad66bc950e586f231c52",
+ "sha256": "09dsmrqax4wfcw8fd5jf07bjxm5dizpc2qvjkqwg74j2n352wv27",
+ "fetcher": "github",
+ "repo": "skeeto/elisp-fakespace",
+ "unstable": {
+ "version": [
+ 20120818,
+ 6
+ ],
+ "commit": "d1bd1f4b14b2690d7a67f9a52622ec51ed84813a",
+ "sha256": "11fm0h9rily5731s137mgv8rdbfqi99s6f36bgr0arwbq3f2j3fs"
+ }
+ },
+ {
+ "ename": "fakir",
+ "commit": "d0a8abd5fd77a14b957f53b5bc8474403cc1e18f",
+ "sha256": "07bicglgpm6qkcsxwj6rswhx4hgh27rfg8s1cki7g8qcvk2f7b25",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-fakir",
+ "unstable": {
+ "version": [
+ 20140729,
+ 1652
+ ],
+ "deps": [
+ "dash",
+ "kv",
+ "noflet"
+ ],
+ "commit": "1fca406ad7de80fece6319ff75d4230b648534b0",
+ "sha256": "1w5apzbzr1jd983b0rzsy9ldb0z0zcq6mpyb5r8czl5wd4vvj69h"
+ }
+ },
+ {
+ "ename": "fancy-battery",
+ "commit": "29dc2ef3801a1cd7cf8edd2eae68b03bf00e96a0",
+ "sha256": "09qlkij9lbkaq46yb1860nkfiqpcn0h67zmm9lyz28475686759j",
+ "fetcher": "github",
+ "repo": "emacsorphanage/fancy-battery",
+ "unstable": {
+ "version": [
+ 20150101,
+ 1204
+ ],
+ "commit": "9b88ae77a01aa3edc529840338bcb2db7f445822",
+ "sha256": "1k6prddw277iszh9hq145yqidwiiy9iqz656rpmqwn5hmr1vakhk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "5b8115bbeb67c52d4202a12dcd5726fb66e0a1ff",
+ "sha256": "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"
+ }
+ },
+ {
+ "ename": "fancy-dabbrev",
+ "commit": "1ac5a3797d9882235de984739d5a2bf122b64540",
+ "sha256": "038zyg8kmz7k2y2xfs5mmm4fh87a503yri990kyf82pqyrsj3yww",
+ "fetcher": "github",
+ "repo": "jrosdahl/fancy-dabbrev",
+ "unstable": {
+ "version": [
+ 20200129,
+ 1933
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "158e1e54055cafe5da9122a59519e8b3ed1057cf",
+ "sha256": "06616lzvv6vdc2i37gy47zw3rb4yjml83vn5py2k30ck8gl4fhs2"
+ }
+ },
+ {
+ "ename": "fancy-narrow",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "15i86jz6rdpva1az7gqp1wbm8kispcfc8h6v9fqsbag9sbzvgcyv",
+ "fetcher": "github",
+ "repo": "Malabarba/fancy-narrow",
+ "unstable": {
+ "version": [
+ 20171031,
+ 16
+ ],
+ "commit": "c9b3363752c09045b8ce7a2635afae42d2ae63c7",
+ "sha256": "1icc43dlb38w9ip2077a4n8xk102f4l1wfy4c04vpjykxpda4sxv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 5
+ ],
+ "commit": "c0f70b4333d4764323b7154e37a378adb1610ab7",
+ "sha256": "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"
+ }
+ },
+ {
+ "ename": "fantom-theme",
+ "commit": "e5cb6a9f6a657b72a00a39c118d90416ae2f343c",
+ "sha256": "18p82f82hr1sx8w9lmjxr3hvvy4ddxvyd245v32vjay5zc730y33",
+ "fetcher": "github",
+ "repo": "adsva/fantom-emacs-theme",
+ "unstable": {
+ "version": [
+ 20200328,
+ 604
+ ],
+ "commit": "2c1c7fd53086c2ff86ee0961642c3b58e2343c08",
+ "sha256": "1clvpjsf241fdkk3915zjqb4wivsjsvc9phf633pzbvi61qwhaap"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "70cef2886ca90c93bcafc869bcc77bad1e390c33",
+ "sha256": "1q15wx53zq6b9f567anrfmfpj04f3r6wz28w4237f9lg62yqhm9x"
+ }
+ },
+ {
+ "ename": "farmhouse-theme",
+ "commit": "3b0d427db8ab66d2fe323366b0837595b3b59afa",
+ "sha256": "0hbqdrw6x25b331qhbg3yaaa45c2b896wknsjm0a1kg142klq229",
+ "fetcher": "github",
+ "repo": "mattly/emacs-farmhouse-theme",
+ "unstable": {
+ "version": [
+ 20160713,
+ 2244
+ ],
+ "commit": "7ddc1ff13b4a3d5466bd0d33ecb86100352e83a7",
+ "sha256": "09k6agh205kr2lif354m38l3967b0jajm14rgpl7l1vlajh8wzfd"
+ }
+ },
+ {
+ "ename": "fasd",
+ "commit": "f0a8eb0eefe88b4ea683a4743c0f8393506e014b",
+ "sha256": "0ssb1bbw3cwd4zdy08a0fymwjwgdnx0kil5x3x1b7k8kan942436",
+ "fetcher": "git",
+ "url": "https://framagit.org/steckerhalter/emacs-fasd.git",
+ "unstable": {
+ "version": [
+ 20180606,
+ 505
+ ],
+ "commit": "020c6a4b5fd1498a84ae142d2e32c7ff678fb029",
+ "sha256": "142zq0zz38j3akgc1gipqhgs05krlkig1i97pgzmi4jcqdgm3lx9"
+ }
+ },
+ {
+ "ename": "fast-scroll",
+ "commit": "1a06816fe50be692f971f08e76f687a3560baceb",
+ "sha256": "1ds8wjc2zdvr31c4c1dwrbf6al9ff3p4njli7mis85kb883k371c",
+ "fetcher": "github",
+ "repo": "ahungry/fast-scroll",
+ "unstable": {
+ "version": [
+ 20191016,
+ 327
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3f6ca0d5556fe9795b74714304564f2295dcfa24",
+ "sha256": "08nwjyqdkp1g27jqgq7b2nd90kzsfv9mjkkjpniprhfqdqjjcp63"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0f78d1039e5394a6b57d186189a89937453c7002",
+ "sha256": "042dkz12rcj27ymla1lg70vwg3n7vb9i5908ga6vabn7q61bxbsh"
+ }
+ },
+ {
+ "ename": "fastdef",
+ "commit": "f6effb2fbccc71e8a44c53138e3c21f10dc55fbc",
+ "sha256": "1cf4slxhcp2z7h9k3l31h06nnqsyb4smwnj55ivil2lm0fa0vlzj",
+ "fetcher": "github",
+ "repo": "redguardtoo/fastdef",
+ "unstable": {
+ "version": [
+ 20160713,
+ 1329
+ ],
+ "deps": [
+ "ivy",
+ "w3m"
+ ],
+ "commit": "0696f41dc150d35ce31fe8d2ea74f4173818bb55",
+ "sha256": "1p5vmbx7zdzxnyjzcp2vxscd3dwf7xk82wk9dfiv99svwqv2ki3w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "ivy",
+ "w3m"
+ ],
+ "commit": "0696f41dc150d35ce31fe8d2ea74f4173818bb55",
+ "sha256": "1p5vmbx7zdzxnyjzcp2vxscd3dwf7xk82wk9dfiv99svwqv2ki3w"
+ }
+ },
+ {
+ "ename": "fastnav",
+ "commit": "d2a7dce6617bf4ed250dba150e6787bf48891c64",
+ "sha256": "08hg256w8k9f5nzgpyl1jykbf28vmvv09kkhzs0s2zhwbl2158a5",
+ "fetcher": "github",
+ "repo": "gleber/fastnav.el",
+ "unstable": {
+ "version": [
+ 20120211,
+ 1457
+ ],
+ "commit": "1019ba2b61d1a070204099b23da347278a61bc89",
+ "sha256": "0y95lrdqd9i2kbb266s1wdiim4m8vrn3br19d8s55ib6xlywf8cx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 7
+ ],
+ "commit": "54626e9e7cc7be5bc2bd01732e95ed2afc2312a1",
+ "sha256": "0h32w63vv451797zi6206j529fd4j8l3fp7rqip3s8xn8d4728x1"
+ }
+ },
+ {
+ "ename": "faust-mode",
+ "commit": "b362e7daeabd07c726ad9770d7d4941dfffd5b19",
+ "sha256": "0l8cbf5i6lv6i5vyqp6ngfmrm2y6z2070b8m10w4376kbbnr266z",
+ "fetcher": "github",
+ "repo": "rukano/emacs-faust-mode",
+ "unstable": {
+ "version": [
+ 20180205,
+ 926
+ ],
+ "commit": "7c31b22bdbfd2f8c16ec117d2975d56dd61ac15c",
+ "sha256": "0a3p69ay88da13cz2cqx00r3qs2swnn7vkcvchcqyrdybfjs7y4z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "commit": "7c31b22bdbfd2f8c16ec117d2975d56dd61ac15c",
+ "sha256": "0a3p69ay88da13cz2cqx00r3qs2swnn7vkcvchcqyrdybfjs7y4z"
+ }
+ },
+ {
+ "ename": "faustine",
+ "commit": "8b4c6b03c5ff78ce327dcf66b175e266bbc53dbf",
+ "sha256": "1blmz993xrwkyr7snj7rm07s07imgpdlfqi6wxkm4ns6iwa2q60s",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/yphil/faustine",
+ "unstable": {
+ "version": [
+ 20171122,
+ 1202
+ ],
+ "deps": [
+ "faust-mode"
+ ],
+ "commit": "07a38963111518f86123802f9d477be0d4689a3f",
+ "sha256": "0dj35hwkm5v8758c4ssl873vkvplba5apjsh7l23nsmnzdji99zg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "faust-mode"
+ ],
+ "commit": "f186461e2bc38ec8ae38bd5ab727cc769218a168",
+ "sha256": "16p7qmljjki4svci3mxzydmvpxaprbnfq6794b3adyyixkmgr6k7"
+ }
+ },
+ {
+ "ename": "fcitx",
+ "commit": "e8c40f09d9397b3ca32a7ed37203f490497dc984",
+ "sha256": "0a8wd588c26p3czfp5hn2n46f2vwyg5v301sv0y07b55b1i3ynmx",
+ "fetcher": "github",
+ "repo": "cute-jumper/fcitx.el",
+ "unstable": {
+ "version": [
+ 20190806,
+ 1923
+ ],
+ "commit": "12dc2638ddd15c8f6cfaecb20e1f428ab2bb5624",
+ "sha256": "0ahw2pi6i693s4mdjdkisy94yvg0wgmd3c6zi0z4yi60b6irskdn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "commit": "6d552ab44234ed78ce9a50f2412f56197266bc9f",
+ "sha256": "08l859rw1lwj6hdxrlxqlxf1cfxv8yv9h1jsgs5zfis3hp7nq39j"
+ }
+ },
+ {
+ "ename": "fcopy",
+ "commit": "f9afd35b7c7075bef9ed878b7122ff9783fdd9fd",
+ "sha256": "13337ymf8vlbk8c4jpj6paqi06xdmk39yf72s40kmfrbvgmi8qy1",
+ "fetcher": "github",
+ "repo": "ataka/fcopy",
+ "unstable": {
+ "version": [
+ 20150304,
+ 1403
+ ],
+ "commit": "e355f6ec889d8ecbdb096019c2dc660b1cec4941",
+ "sha256": "0c56j8ip2fyma9yvwaanz89jyzgi9k11xwwkflzlzc4smnvgfibr"
+ }
+ },
+ {
+ "ename": "fd-dired",
+ "commit": "1217e0d4f42df68cc22de9b4f27a36c0377509e3",
+ "sha256": "0g8zvg6b9hcxkmqn254y9khjm7jz2lz4mh7dhsxfcy64inaj0481",
+ "fetcher": "github",
+ "repo": "yqrashawn/fd-dired",
+ "unstable": {
+ "version": [
+ 20200713,
+ 243
+ ],
+ "commit": "5622041068d5fa2f299dbc8aa91fece0ba260086",
+ "sha256": "028qm0snna2w8wrgx988nhw3sdid5n3nr01hvavnzyhadha1j6fc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "d90ec902f417c194e44697f73a9d6cbfd0cf7216",
+ "sha256": "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"
+ }
+ },
+ {
+ "ename": "feather",
+ "commit": "ffb7d037679110473a8c3f9e98f737ecaba37c40",
+ "sha256": "1k3sxwpibk5sdim4pzfi83pzsm4vnq0xl006dy76pv363r9mvs21",
+ "fetcher": "github",
+ "repo": "conao3/feather.el",
+ "unstable": {
+ "version": [
+ 20200321,
+ 1237
+ ],
+ "deps": [
+ "async",
+ "async-await",
+ "page-break-lines",
+ "ppp"
+ ],
+ "commit": "3f19293dada8bf368e9f86f783610e7ca0a51ecb",
+ "sha256": "11ml9n4bkm0150ifyx3igx55hnnrhbg04q8sb15v734xi29swp6z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "4cb69055cfc42841bad1de072f69dd6923899766",
+ "sha256": "1fq5ysxwiaah56rizkc47vjqi8906af3ga1n1frvrvap8m9vdz4m"
+ }
+ },
+ {
+ "ename": "feature-mode",
+ "commit": "0a70991695f9ff305f12cfa45e0a597f4a782ba3",
+ "sha256": "0ryinmpqb3c91qcna6gbijcmqv3skxdc947dlr5s1w623z9nxgqg",
+ "fetcher": "github",
+ "repo": "michaelklishin/cucumber.el",
+ "unstable": {
+ "version": [
+ 20200815,
+ 1617
+ ],
+ "commit": "8e1464113b489b54067294cd988ff6a11a423fdb",
+ "sha256": "1lmfksx49ig4b7nqg0mmaalz08b280iaqgsc0x9i471m9kvbisp7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "4bd8f19da816115094beb4b0e085822eb298ac37",
+ "sha256": "1cxjygg05v8s96c8z6plk3hl34jaiwg7s7dl7dsk20rj5f54kgw7"
+ }
+ },
+ {
+ "ename": "feebleline",
+ "commit": "782295d8c530878bd0e20cde7e7f7f8f640953dd",
+ "sha256": "0c604ahhv9c89r3hj7091zhhfpbykh4c23sn6ymqw4pp0dq4pgkj",
+ "fetcher": "github",
+ "repo": "tautologyclub/feebleline",
+ "unstable": {
+ "version": [
+ 20190822,
+ 1401
+ ],
+ "commit": "b2f2db25cac77817bf0c49ea2cea6383556faea0",
+ "sha256": "0f2nynx9sib29qi3zkfkgxlcfrwz607pgg6qvvk4nnads033p1yn"
+ }
+ },
+ {
+ "ename": "feed-discovery",
+ "commit": "eaea977d51dd55a0dd2bfdc2f7cff822ed4053d7",
+ "sha256": "0yd8hsc6dqipmqh7ahbmr16gj5p4lh8a55652x1lic3q4ssah1ql",
+ "fetcher": "github",
+ "repo": "HKey/feed-discovery",
+ "unstable": {
+ "version": [
+ 20200714,
+ 1118
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "47692787326a14c06dab6815bb18caced59a5bf0",
+ "sha256": "1mj86p4zw73c1n6nqv35zhgsqrmcmgvi07q60dahs016bwdzc6jb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "3812439c845c184eaf164d3ac8935de135259855",
+ "sha256": "0v0xcy81a0kysycm3p8rl64vrsc9ph3d4yqzxp7kik9rmkgrp89w"
+ }
+ },
+ {
+ "ename": "fennel-mode",
+ "commit": "cda0732050a17b2dc70b80afd6fc6bb9cf8bb60f",
+ "sha256": "0lg69rjvbg7zl4jxc88m12r4rgv2mg2xdyz591mdmgvxwr2hfrv9",
+ "fetcher": "gitlab",
+ "repo": "technomancy/fennel-mode",
+ "unstable": {
+ "version": [
+ 20200714,
+ 237
+ ],
+ "commit": "a39543750ba337b9327108ba17ffb0cdb18c7f9b",
+ "sha256": "0p9n0plb1ry6r8i09if6mzhhk4gs1saxm05msq8sgwdjs6r1ra61"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "ae4634bef12f66a1d4721ab74c5bf8dd29d710d2",
+ "sha256": "15b5zb66dzszpdiqkwgxqv434kqgpk1l065ic4lbj3y3krm2snbg"
+ }
+ },
+ {
+ "ename": "fetch",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "0mph6kri9p0g38ll1cakpgfaz1krkyhi1382kybg1xyfy17jisg3",
+ "fetcher": "github",
+ "repo": "cbrst/fetch.el",
+ "unstable": {
+ "version": [
+ 20131201,
+ 730
+ ],
+ "commit": "3f2793afcbbc32f320e572453166f9354ecc6d06",
+ "sha256": "0pjw9fb3n08yd38680ifdn2wlnw2k6q97lzhqb2259mywsycyqy8"
+ }
+ },
+ {
+ "ename": "ffmpeg-player",
+ "commit": "c3b60e5e699e0731ba195e5ea0760c218b3df4e9",
+ "sha256": "03ni2m92rjsz1dclw3gl983aganv9s88mczxw06lpmflrc5w0ac6",
+ "fetcher": "github",
+ "repo": "jcs-elpa/ffmpeg-player",
+ "unstable": {
+ "version": [
+ 20200720,
+ 1028
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "164fb15d70adbc186eb2d987f5c5143aa7336659",
+ "sha256": "0i6r2mlpahrnszr9vk476iqvc1c8cpp6wn6fhlnz6vw4dybpw5p5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "164fb15d70adbc186eb2d987f5c5143aa7336659",
+ "sha256": "0i6r2mlpahrnszr9vk476iqvc1c8cpp6wn6fhlnz6vw4dybpw5p5"
+ }
+ },
+ {
+ "ename": "fic-mode",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "0yy1zw0b0s93qkzyq0n17gzn33ma5h56mh40ysz6adwsi68af84c",
+ "fetcher": "github",
+ "repo": "lewang/fic-mode",
+ "unstable": {
+ "version": [
+ 20180603,
+ 2035
+ ],
+ "commit": "a05fc36ed54ba0c6dc22ac216a6a72cf191ca13d",
+ "sha256": "074dfwdir2dx5cpbjk1ac8d3hkjkrylivy7agir5mnmzjm3bs9gw"
+ }
+ },
+ {
+ "ename": "fifo-class",
+ "commit": "1b4fa87f7d5592bc264805760d191df2a3539cf1",
+ "sha256": "0yyjrvdjiq5166vrys13c3dqy5807a3x99597iw5v6mcxg37jg3h",
+ "fetcher": "github",
+ "repo": "mola-T/fifo-class",
+ "unstable": {
+ "version": [
+ 20160425,
+ 558
+ ],
+ "commit": "8fe4cf690727f4ac7b67f29c55f845df023c3f21",
+ "sha256": "0dkng4zkd5xdyvqy67bnfp4z6w8byx66bssq1zl7bhga45vihfjg"
+ }
+ },
+ {
+ "ename": "figlet",
+ "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203",
+ "sha256": "0p5xnq3c4bvvy7nqgi18ylsha7kz9r7apw7lz84kq5hwhni298k5",
+ "fetcher": "github",
+ "repo": "jpkotta/figlet",
+ "unstable": {
+ "version": [
+ 20160218,
+ 2237
+ ],
+ "commit": "19a38783a90e151faf047ff233a21a729db0cea9",
+ "sha256": "1c18b1h154sdxkksqwk8snyk8n43bwzgavi75l8mnz8dnl1ciaxs"
+ }
+ },
+ {
+ "ename": "filelock",
+ "commit": "bda76dfbf37eaa17bebb4b8c34006704862db433",
+ "sha256": "13ra697y0fhkjwsaqqlphcyfqkaiix5z59qw4q6rgix4k8ypj8db",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/emacs-filelock",
+ "unstable": {
+ "version": [
+ 20180524,
+ 2215
+ ],
+ "deps": [
+ "cl-lib",
+ "f"
+ ],
+ "commit": "17a5ca6e0dee14d2e7d92c84be91143bca9d9663",
+ "sha256": "1smiad56626bc7q6vgj5gc710hnx814d4xlpxdlfzqlmj08y9dyk"
+ }
+ },
+ {
+ "ename": "filetags",
+ "commit": "eabd1c808758bb46fbc25e124bd4532764b8d7da",
+ "sha256": "06qvwhg884plz0bk7lhnp3sb6qv5rypkb0jqq53vmnbw7nz0dlyv",
+ "fetcher": "github",
+ "repo": "DerBeutlin/filetags.el",
+ "unstable": {
+ "version": [
+ 20190706,
+ 804
+ ],
+ "commit": "01e6a919507a832ee001a2a0fc257657f8b04b72",
+ "sha256": "15557rkbi3d40q2zs5vkgkpbya4c4ksnh2a07d8l7x457zah4fbn"
+ }
+ },
+ {
+ "ename": "fill-column-indicator",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1fd9l7idzn9vwcy3v80fnn2d8g4c9g3rc505sapc5wgkn8in0p6d",
+ "fetcher": "github",
+ "repo": "alpaker/fill-column-indicator",
+ "unstable": {
+ "version": [
+ 20200806,
+ 2239
+ ],
+ "commit": "c35f9de072c241699b57bcb46da84bed5af29cfe",
+ "sha256": "1q682bn6wgvga8arv4xfmr4nnw8nhw7qkjrlp5crpyv42x9yqr73"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 90
+ ],
+ "commit": "f7b3f99b41ff017f50a21ad53eed16f8ef5ab7ee",
+ "sha256": "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"
+ }
+ },
+ {
+ "ename": "fill-function-arguments",
+ "commit": "b78eab67517b19516e5d265018afcbff0acfa9ec",
+ "sha256": "1gigzzz2csl3a55jmjx391a5k3ymixnwpblsn0pfgkkk4p3674q0",
+ "fetcher": "github",
+ "repo": "davidshepherd7/fill-function-arguments",
+ "unstable": {
+ "version": [
+ 20190710,
+ 929
+ ],
+ "commit": "295d55d6056e6f79b68283f7631f6438ea8a7b5f",
+ "sha256": "0nx3krpqn1c0xvr81504m4s84bkxpq42s97igmg6jfsjy7dphp2k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "commit": "e819fca19a138ae67201220e41fe1d4384fb2a42",
+ "sha256": "102aalb7bfvjgf1klqsx6mn5a4vfjq63kwn7wqs9cmlib1mp8vnf"
+ }
+ },
+ {
+ "ename": "fillcode",
+ "commit": "85eb403503aa83799a6072bfe21bf66c8177ca73",
+ "sha256": "0bfsw55vjhx88jpy6npnzfwinvggivbvkk7fa3iwzq19005fkag2",
+ "fetcher": "github",
+ "repo": "snarfed/fillcode",
+ "unstable": {
+ "version": [
+ 20200524,
+ 2226
+ ],
+ "commit": "501468082e46bd0975ef4d8765363fd564338099",
+ "sha256": "0z18x3gxh004nd648hwqdlb60a6ss61pkkqg30xpdmsrj8darf5q"
+ }
+ },
+ {
+ "ename": "finalize",
+ "commit": "1b55869b5183644de02687d2e56f9b68854ccda3",
+ "sha256": "1n0w4kdzc4hv4pprv13lr88gh46slpxdvsc162nqm5mrqp9giqqq",
+ "fetcher": "github",
+ "repo": "skeeto/elisp-finalize",
+ "unstable": {
+ "version": [
+ 20170418,
+ 1945
+ ],
+ "deps": [
+ "cl-generic",
+ "cl-lib",
+ "eieio"
+ ],
+ "commit": "846731531e7d1d80451787992e07bfe7dedbe9ff",
+ "sha256": "0kqsqmfvnh0slx0hmrsw66rh62sgzyhzck7ii9zylkq72wj60fgl"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-generic",
+ "cl-lib",
+ "eieio"
+ ],
+ "commit": "0f7d47c4d50f1c76fc3b43bfc2d4886dd3e8ca27",
+ "sha256": "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"
+ }
+ },
+ {
+ "ename": "find-by-pinyin-dired",
+ "commit": "0aa68b4603bf4071d7d12b40de0138ecab1989d7",
+ "sha256": "150hvih3mdd1dqffgdcv3nn4qhy86s4lhjkfq0cfzgngfwif8qqq",
+ "fetcher": "github",
+ "repo": "redguardtoo/find-by-pinyin-dired",
+ "unstable": {
+ "version": [
+ 20180210,
+ 218
+ ],
+ "deps": [
+ "pinyinlib"
+ ],
+ "commit": "3b4781148dddc84a701ad76c0934ed991ecd59d5",
+ "sha256": "03fw1si115padxss6zb9fr0dsyq1bxlhxikgh4i5swp4jd4331k5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "pinyinlib"
+ ],
+ "commit": "2c48434637bd63840fca4d2c6cf9ebd5dd44658f",
+ "sha256": "0ial0lbvg0xbrwn8cm68xc5wxj3xgp110y2zgypkdpak8gkv8b5h"
+ }
+ },
+ {
+ "ename": "find-file-in-project",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0aznnv82xhnilc9j4cdmcgh6ksv7bhjjm3pa76hynnyrfn7kq7wy",
+ "fetcher": "github",
+ "repo": "technomancy/find-file-in-project",
+ "unstable": {
+ "version": [
+ 20200227,
+ 1204
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "506f35e91e06463cca7390da6ebffc411b8c220f",
+ "sha256": "1iwfhymbmlmakbga1jlp7w6jlnj0jbb0zs1yxxg8mmj7k9ss2xjr"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 7,
+ 10
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "e5bd59c52ddf3cd59bbaa4247770d7b2957a6ea3",
+ "sha256": "156sfd5xs831sdlkf7p5m20hzznv1zlf9nm3pfm8n8ixp13fnzj0"
+ }
+ },
+ {
+ "ename": "find-file-in-repository",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "02rihpfpckppnf5a2zgd5s3dspdhq4mr6qchlrzg2fd4byjxra9s",
+ "fetcher": "github",
+ "repo": "h/find-file-in-repository",
+ "unstable": {
+ "version": [
+ 20190404,
+ 828
+ ],
+ "commit": "b44d78682082270dc6b59cdc911333d0d3e7edaa",
+ "sha256": "1icsxp2b3grvdbv6bh9hpxz1hrqa7vvjzajjwi2knvjbq41d99bn"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "8b888f85029a2ff9159a724b42aeacdb051c3420",
+ "sha256": "0wbmmrd7brf4498pdyilz17rzv7221cj8sd4h11gac2r72f1q2md"
+ }
+ },
+ {
+ "ename": "find-temp-file",
+ "commit": "c01efd0cb3e3bab4661a358c084b645dc7e31736",
+ "sha256": "0c98zm94958rb9kdvqr3pad744nh63y3vy3lshfm0lsg85k9j62p",
+ "fetcher": "github",
+ "repo": "thisirs/find-temp-file",
+ "unstable": {
+ "version": [
+ 20200117,
+ 2254
+ ],
+ "commit": "2bfcdba0d6a8a0e6faa080cb04ff0f7ed06491ba",
+ "sha256": "1fr48mkrwxmpjk5lrznrr6nhnj8h6d3v984261nm44c0rzziq7vj"
+ }
+ },
+ {
+ "ename": "find-things-fast",
+ "commit": "3b63336dd150e791f3139d675af735b60054eb2b",
+ "sha256": "1fs3wf61lzm1hxh5sx8pr74g7g9np3npdwg7xmk81b5f2jx2vy6m",
+ "fetcher": "github",
+ "repo": "eglaysher/find-things-fast",
+ "unstable": {
+ "version": [
+ 20150519,
+ 2226
+ ],
+ "commit": "efc7c189019ed65430e2f9e910e8e0a5ca9d2d03",
+ "sha256": "1r6cs7p43pi6n2inbrv9q924m679izxwxqgyr4sjjj3lg6an4cnx"
+ }
+ },
+ {
+ "ename": "findr",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "0pw72bdpmc0ymlgjmwwrslhynij5a5b9sc3rx6vyprpv1ad4ac2c",
+ "fetcher": "github",
+ "repo": "emacsorphanage/findr",
+ "unstable": {
+ "version": [
+ 20130127,
+ 2032
+ ],
+ "commit": "1ddbc0464bb05dcda392b62666ad17239a2152d3",
+ "sha256": "0wx4hd4agrfvk0igyash658cbf7v3bv01rlspllsvzr59fl3faqq"
+ }
+ },
+ {
+ "ename": "fingers",
+ "commit": "f2afd4983d1a5820daafb31e96d54b214a79849f",
+ "sha256": "1r8fy6q6isjxz9mvaa8in4imdghzla3gg1l93dfm1v2rlr7bhzbg",
+ "fetcher": "github",
+ "repo": "fgeller/fingers.el",
+ "unstable": {
+ "version": [
+ 20160817,
+ 829
+ ],
+ "commit": "fed0f742afb1d72eaef29d8da394467550a030fa",
+ "sha256": "1mx05zfdrkwb50l7f0iycsqw23b1gxzacfnssclb42xdjxxmyhdj"
+ }
+ },
+ {
+ "ename": "fiplr",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1a4w0yqdkz477lfyin4lb9k9qkfpx4350kfxmrqx6dj3aadkikca",
+ "fetcher": "github",
+ "repo": "grizzl/fiplr",
+ "unstable": {
+ "version": [
+ 20140724,
+ 645
+ ],
+ "deps": [
+ "cl-lib",
+ "grizzl"
+ ],
+ "commit": "3f50159fd42125440d5b0eb9d6398560461f030b",
+ "sha256": "1m5rcyvfwfqslqn9km413s8wqpzc9z68qpz3584g9sqp37mp6clp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "deps": [
+ "grizzl"
+ ],
+ "commit": "100dfc33f43da8c49e50e8a2222b9d95532f6e24",
+ "sha256": "0lwgbd9zwdv7qs39c3fp4hrc17d9wrwwjgba7a14zwrhb27m7j07"
+ }
+ },
+ {
+ "ename": "fira-code-mode",
+ "commit": "0dc34b2d3cfd5e48df0fbe2086b8b4be1358dea4",
+ "sha256": "09i3xyk1xj7j895xmjwmxl1gaw73j9y22c5mgnavq0sm3fbpk4w0",
+ "fetcher": "github",
+ "repo": "jming422/fira-code-mode",
+ "unstable": {
+ "version": [
+ 20200415,
+ 2356
+ ],
+ "commit": "c6945a005b9a581c81e2f3560eab4bd629967364",
+ "sha256": "1ylndx5n433zy9y7n79xhl7p0g1f4c0y97ha50d8fqm451jm0569"
+ }
+ },
+ {
+ "ename": "firecode-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "10lxd93lkrvz8884dv4sh6fzzg355j7ab4p5dpvwry79rhs7f739",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-firecode-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1311
+ ],
+ "commit": "8b7b03ecdd41e70dab145b98906017e1392eaef4",
+ "sha256": "1vrpnv7555mbsksflgdkg7hc65fjcyzvzv2261y043rlh2qrn0sy"
+ }
+ },
+ {
+ "ename": "firefox-controller",
+ "commit": "70a69c20f8dcf73c878f2172dcc9f1796fdc0408",
+ "sha256": "03y96b3l75w9al8ylijnlb8pcfkwddyfnh8xwig1b6k08zxfgal6",
+ "fetcher": "github",
+ "repo": "cute-jumper/emacs-firefox-controller",
+ "unstable": {
+ "version": [
+ 20160320,
+ 1847
+ ],
+ "deps": [
+ "cl-lib",
+ "moz",
+ "popwin"
+ ],
+ "commit": "a8af8cbf70afaf6b89a26d6ac69af8e92afc181f",
+ "sha256": "0icgl88pwizwzkdqsxbwhnc6pdyqsfd7wgjnkvg3206i7hcqwpsp"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "moz",
+ "popwin"
+ ],
+ "commit": "a8af8cbf70afaf6b89a26d6ac69af8e92afc181f",
+ "sha256": "0icgl88pwizwzkdqsxbwhnc6pdyqsfd7wgjnkvg3206i7hcqwpsp"
+ }
+ },
+ {
+ "ename": "fireplace",
+ "commit": "4c1ac52c1cfe7ccf46092c2d299ebbffdc1b7609",
+ "sha256": "1apcypznq23fc7xgy4xy1c5hvfvjx1xhyq3aaq1lf59v99zchciw",
+ "fetcher": "github",
+ "repo": "johanvts/emacs-fireplace",
+ "unstable": {
+ "version": [
+ 20200402,
+ 2206
+ ],
+ "commit": "f6c23e259349922aae25cf2898ba815a7d8f2527",
+ "sha256": "16cb8grw2cfgdix1sr5a3fnwhhc93ci8qgbhgs5ilyayy2cb6s4c"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "f6c23e259349922aae25cf2898ba815a7d8f2527",
+ "sha256": "16cb8grw2cfgdix1sr5a3fnwhhc93ci8qgbhgs5ilyayy2cb6s4c"
+ }
+ },
+ {
+ "ename": "firestarter",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "1kaw710za76178ak35nlgr2pj1303z7fcas6474rr3nd82l8sypf",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/firestarter.git",
+ "unstable": {
+ "version": [
+ 20200506,
+ 1311
+ ],
+ "commit": "5b117bf8d290af5c104d88c413f40e84da0c4ce8",
+ "sha256": "13axz8c4v4x43x2ami78kwaj6cpmyqykapj94mqrr3b5qzms502b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 5
+ ],
+ "commit": "4d6b106f325ac1802eabce3c8a7cd0a4c7a32864",
+ "sha256": "13daz15v0sshl7lxcg1xcbpl64gklgh50pzk0qxmn5ygw7nlifn0"
+ }
+ },
+ {
+ "ename": "firrtl-mode",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "19r7wbw9pr05p8fywcnbbpdpklic2vd2bsy80r7xrzgs4fcl12as",
+ "fetcher": "github",
+ "repo": "IBM/firrtl-mode",
+ "unstable": {
+ "version": [
+ 20200329,
+ 2002
+ ],
+ "commit": "fa40141411a876ce7a1a9d6d3fe47134bc1fa954",
+ "sha256": "1pj7b8ppkbjp8q5dzw5v086v8lp1gv1il6qc65l4nlm8p5iicvzq"
+ }
+ },
+ {
+ "ename": "fish-completion",
+ "commit": "6d17ca0213ba5ef9dce92002e281e6f08c3492be",
+ "sha256": "1y7vwh7w0shnrnp8x1m1sa0p7kdyz5mg1mfs263gm38in2biym9i",
+ "fetcher": "gitlab",
+ "repo": "Ambrevar/emacs-fish-completion",
+ "unstable": {
+ "version": [
+ 20191103,
+ 1210
+ ],
+ "commit": "10384881817b5ae38cf6197a077a663420090d2c",
+ "sha256": "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "10384881817b5ae38cf6197a077a663420090d2c",
+ "sha256": "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"
+ }
+ },
+ {
+ "ename": "fish-mode",
+ "commit": "efac97c0f54a3300251020c4626056526c18b441",
+ "sha256": "0l6k06bs0qdhj3h8vf5fv8c3rbhiqfwszrpb0v2cgnb6xhwzmq14",
+ "fetcher": "github",
+ "repo": "wwwjfy/emacs-fish",
+ "unstable": {
+ "version": [
+ 20200213,
+ 2137
+ ],
+ "commit": "db257db81058b0b12f788c324c264cc59b9a5bf4",
+ "sha256": "1f6viga13k90ws8v18az3vh3rdc5vd28xkpx9vfv3542bx1np1im"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "commit": "688c82decad108029b0434e3bce6c3d129ede6f3",
+ "sha256": "1s961nhwxpb9xyc26rxpn6hvwn63sng452l03mm2ply32b247f9p"
+ }
+ },
+ {
+ "ename": "fit-text-scale",
+ "commit": "5ccb1803a5783834685c4bdf40e6b1e876ea3ea4",
+ "sha256": "0w4wg7zl9082q558dyj1hk021ry1sig5w5abnn90plvjc65xs72q",
+ "fetcher": "gitlab",
+ "repo": "marcowahl/fit-text-scale",
+ "unstable": {
+ "version": [
+ 20200701,
+ 2239
+ ],
+ "commit": "a87341d4fb2077076eb83af0fb510112900aaebe",
+ "sha256": "1ayswmb99mimsg6b05nnvm15yg8w2512sv1mjk1nbifz627vgq2x"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 4
+ ],
+ "commit": "ba63f0591c3be1644ee7ee972430c74b5d346579",
+ "sha256": "014vbzxz1jmm83a5mg4zsyxm8nw96n8s2l7h3myhrn880d9xnqgg"
+ }
+ },
+ {
+ "ename": "fix-input",
+ "commit": "7d31f907997d1d07ec794a4f09824f43818f035c",
+ "sha256": "03xpr7rlv0xq1d9126j1fk0c2j7ssf366n0yc8yzm9vq32n9pp4p",
+ "fetcher": "github",
+ "repo": "mrkkrp/fix-input",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1349
+ ],
+ "commit": "7aef6fb29840a2f3c7e3c01eeeb7838a0e702050",
+ "sha256": "0hf4x16fr5z5l2ypp41sw78dz5qpi14pphpbh8zdg4ky5sa8d4fd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "a70edfa7880ff9b082f358607d2a9ad6a8dcc8f3",
+ "sha256": "121m0h0nwxr27f9d2llbgl63ni1makcg66lnvg24wx07wggf0n8z"
+ }
+ },
+ {
+ "ename": "fix-muscle-memory",
+ "commit": "c6b0501714a6d82657b88d11e3f79d75eea17d8e",
+ "sha256": "0qhasnjw0bj5hzw27r8vj6shhwc3zxcp3wmxijh1rpdw4773f7n8",
+ "fetcher": "github",
+ "repo": "jonnay/fix-muscle-memory",
+ "unstable": {
+ "version": [
+ 20160823,
+ 439
+ ],
+ "commit": "a123e04f8a1d2982cbf930efb909cad9522ac884",
+ "sha256": "0mm6dl7017x5l43jf89w4nn5hcyi4fm160d2rcqx5w6dwb6f0v27"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 93
+ ],
+ "commit": "df687aea23c6eac4b751f993893c2fd56e5a8a3b",
+ "sha256": "02nl4vz6fnbjc7w1lk1y9z0qw5bsxr407ww0b2wqw6h8spmcpcrc"
+ }
+ },
+ {
+ "ename": "fix-word",
+ "commit": "22636390e8a15c09293a1506a901286dd72e565f",
+ "sha256": "0a8w09cx8p5pkkd4533nd199axkhdhs2a7blp7syfn40bkscx6xc",
+ "fetcher": "github",
+ "repo": "mrkkrp/fix-word",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1338
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "46487e5279a3079730e2d7146ace7c8ad42371ac",
+ "sha256": "0ij0bjrb446h07lyhflfk06sk802jylgdl11ib00r89zai8sq8r7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b3b3a3c8e33e425f9a8d0ec653adb6897c8efc03",
+ "sha256": "1nw9ih0knaqaban5nqp3anvr37mivylqs8sc8l3v1i9srlqnsj1m"
+ }
+ },
+ {
+ "ename": "fixmee",
+ "commit": "f5d06db82e237e6c6babd92a1fd2b58c29662e4f",
+ "sha256": "0wnp6h8f547fsi1lkk4ajny7g21dnr76qfhxl82n0l5h1ps4w8mp",
+ "fetcher": "github",
+ "repo": "rolandwalker/fixmee",
+ "unstable": {
+ "version": [
+ 20150223,
+ 1355
+ ],
+ "deps": [
+ "back-button",
+ "button-lock",
+ "nav-flash",
+ "smartrep",
+ "string-utils",
+ "tabulated-list"
+ ],
+ "commit": "5cddb64e0d52635e9a1529d80cb5cefa6f829341",
+ "sha256": "0kl2b4j93kk9lzw0qclib55ghcwznag3p022jkr0bq5z30m2gdj4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 6
+ ],
+ "deps": [
+ "back-button",
+ "button-lock",
+ "nav-flash",
+ "smartrep",
+ "string-utils",
+ "tabulated-list"
+ ],
+ "commit": "aa3be8ad9fcc9c0c7ff15f70cda4ba77de96dd74",
+ "sha256": "1hnxdmzqmnp3dr7mpr58pjmigykb3cxwphxzia013kfi37ipf5a0"
+ }
+ },
+ {
+ "ename": "flame",
+ "commit": "b7a14c14368de722855286c088020a5657f7cf8b",
+ "sha256": "1br9c48anscq9vbssr0gq8f5kbq755hjaglbljwwh9nd5riycv5v",
+ "fetcher": "github",
+ "repo": "mschuldt/flame",
+ "unstable": {
+ "version": [
+ 20180303,
+ 2016
+ ],
+ "commit": "a749b2a77b87e505572d0f1f5d59fac76348bb73",
+ "sha256": "1l9jbzavyi75li64jqfs000s1m8iw9xvsv8mg0bw1div6bc7vq7s"
+ }
+ },
+ {
+ "ename": "flames-of-freedom",
+ "commit": "71883f7c1e28695701244bab6368aa528ff339f3",
+ "sha256": "1xj4kznx94xxzvxgx74dqd4flljzacygfvp6xr1lsvvm9wvb4m9h",
+ "fetcher": "github",
+ "repo": "wiz21b/FlamesOfFreedom",
+ "unstable": {
+ "version": [
+ 20191202,
+ 1637
+ ],
+ "commit": "5e47ff27cfa2f7c06081be2ffefe91a731efd012",
+ "sha256": "1xgrd2ybf8g488fq698xv30bqzcv1swxqnds61slj99w6k2gm29i"
+ }
+ },
+ {
+ "ename": "flappymacs",
+ "commit": "a63b22f357b2d08b12fb86c27261ab4d687c5f7f",
+ "sha256": "1rp4r5ldhm8nrj26y1vm5d5fj3kl7v45cj1naxczrqbcgkd0r404",
+ "fetcher": "github",
+ "repo": "taksatou/flappymacs",
+ "unstable": {
+ "version": [
+ 20171023,
+ 1004
+ ],
+ "commit": "27f3e21acb22f786606481e3f4e5dc1edbaaaed4",
+ "sha256": "0zcwsbz93p1l2jb1fs6m4s5y9klcr5qg5nw10qg30j9l2bc1hda8"
+ }
+ },
+ {
+ "ename": "flash-region",
+ "commit": "bf26329a30ec6e39b052e5815d3f113c05e72f84",
+ "sha256": "1rgg7j34ka0nj1yjl688asim07bbz4aavh67kly6dzzwndr0nw8c",
+ "fetcher": "github",
+ "repo": "Fuco1/flash-region",
+ "unstable": {
+ "version": [
+ 20130923,
+ 1817
+ ],
+ "commit": "261b3597b23cdd40e5c14262a5687bcc6c1d0901",
+ "sha256": "0z77lm6jv2w5z551pwarcx6xg9kx8fgms9dlskngfvnzbqkldj1f"
+ }
+ },
+ {
+ "ename": "flatfluc-theme",
+ "commit": "de15ce71674965c5e0a8564ae2e640bc05dbd589",
+ "sha256": "0rpmiw71scdl3dgrvf2j9d909wmafyvlgraxfg5hsxngcyj5gjk0",
+ "fetcher": "github",
+ "repo": "seblemaguer/flatfluc-theme",
+ "unstable": {
+ "version": [
+ 20200707,
+ 630
+ ],
+ "commit": "5a30b1cd344ac0d3c3bf9dab017805ab96897b54",
+ "sha256": "0vcinly3lrrkbihafgxcv084zn8fhw94wc8qjjq2lwcc1db7lfjc"
+ }
+ },
+ {
+ "ename": "flatland-black-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "0cl2qbry56nb4prbsczffx8h35x91pgicw5pld0ndw3pxid9h2da",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-flatland-black-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1312
+ ],
+ "commit": "348c5d5fe615e6ea13cadc17f046e506e789ce07",
+ "sha256": "1g5jqxdk35ahx8qk4vi7whhcpi1qp7rbbjgiih974fs59cg5iki0"
+ }
+ },
+ {
+ "ename": "flatland-theme",
+ "commit": "0a081fd0c5598fdf5bc0ab92f4d009f32132a29e",
+ "sha256": "14drqwcp9nv269aqm34d426a7gx1a7kr9ygnqa2c8ia1fsizybl3",
+ "fetcher": "github",
+ "repo": "gchp/flatland-emacs",
+ "unstable": {
+ "version": [
+ 20171113,
+ 1521
+ ],
+ "commit": "a98a6f19ad4dff0fa3fad1ea487b7d0ef634a19a",
+ "sha256": "02gbzxd1v003aaj5rn3vr00n4390bhdx2jhpa7nb430fg3s1ppdy"
+ }
+ },
+ {
+ "ename": "flatui-dark-theme",
+ "commit": "5f9dc5abeb37422c63cac74f9a006d54c4a7c5a5",
+ "sha256": "1mswmkhi43fm0cmdgf0ywpy9lmapy0syl65kqh68sa3jqbznhm6y",
+ "fetcher": "github",
+ "repo": "theasp/flatui-dark-theme",
+ "unstable": {
+ "version": [
+ 20170513,
+ 1422
+ ],
+ "commit": "5b959a9f743f891e4660b1b432086417947872ea",
+ "sha256": "0nz4ql7qf49cwsgjb7dg0jhipr5d472r4fddy6fhr1h17s1cd9qy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "af5c84e2a2810748cc71a68ec7ba333097cc1f63",
+ "sha256": "0c0pm67d8w9jdraap0sswvx7ywly9ifimij2c5w9p4hiph8gisr9"
+ }
+ },
+ {
+ "ename": "flatui-theme",
+ "commit": "96dc9a8b1f6e5cdd46fc94fc2979f2a1787f4d21",
+ "sha256": "0s88xihw44ks4b07wcb9swr52f3l1ls0jn629mxvfkv4a6hn7rmz",
+ "fetcher": "github",
+ "repo": "john2x/flatui-theme.el",
+ "unstable": {
+ "version": [
+ 20160619,
+ 127
+ ],
+ "commit": "9c15db5526c15c8dba55023f5698372b19c2a780",
+ "sha256": "0ybgpnbq3b0ml3lzgkispn667acpjww7z6cr7hgwg3j1zrqpwi75"
+ }
+ },
+ {
+ "ename": "flex-autopair",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0w3l236psqxl7wqdi2aisz8wcv279kw6gdja72viiscrbcm78xh0",
+ "fetcher": "github",
+ "repo": "uk-ar/flex-autopair",
+ "unstable": {
+ "version": [
+ 20120809,
+ 1218
+ ],
+ "commit": "4bb757f2556a4a51828e2fed8fb81e31e83052cb",
+ "sha256": "187ah7yhmr3ckw23bf4fivx8v79yj0zmilrkjj7k6l198w8wmvql"
+ }
+ },
+ {
+ "ename": "flex-compile",
+ "commit": "259caeebc317e81ab9d532a371ea85656c2b1619",
+ "sha256": "1hlh4k7qgln87xajnjjhf1yyg6bgdwd0iczhlfw8gdwfj5xpjd38",
+ "fetcher": "github",
+ "repo": "plandes/flex-compile",
+ "unstable": {
+ "version": [
+ 20200506,
+ 1309
+ ],
+ "deps": [
+ "buffer-manage",
+ "dash"
+ ],
+ "commit": "dc6d920b477fe96a71bc37d593beef5ae8b2ae7e",
+ "sha256": "1vcpb0bnklq89vgynnpfs4dmjacaajrzkasgwzix7q4qfzcbid9n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "buffer-manage",
+ "dash"
+ ],
+ "commit": "29caf6573eb9bb730a851dec2a234a7cfe912a13",
+ "sha256": "17s1v4xwgq98jfa3i57dbmy9ls29xsdhp5ng7bz46dhgmkrksbj5"
+ }
+ },
+ {
+ "ename": "flex-isearch",
+ "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203",
+ "sha256": "0y5j90y4ssw3kwqhji9h4icy8xj2pa5fjvkbkl4x7rxs8kwwm989",
+ "fetcher": "github",
+ "repo": "jpkotta/flex-isearch",
+ "unstable": {
+ "version": [
+ 20170308,
+ 2010
+ ],
+ "commit": "b1f7e04de762282c276343cc2709af9ff4abc9d2",
+ "sha256": "0xbwrzkfv4i91qxs80p0pfjlvj5pyigvidby8m5lammm8idwx9dh"
+ }
+ },
+ {
+ "ename": "flim",
+ "commit": "94faf56ff9bf94f51ef5253e4c4244faec5eecfd",
+ "sha256": "1gkaq549svflx8qyqrk0ccb52b7wp17wmd5jgzkw1109bpc4k6jc",
+ "fetcher": "github",
+ "repo": "wanderlust/flim",
+ "unstable": {
+ "version": [
+ 20200303,
+ 319
+ ],
+ "deps": [
+ "apel"
+ ],
+ "commit": "f303f2f6c124bc8635add96d3326a2209749437b",
+ "sha256": "08gxrpzxxfgbxznvpj00bjvh8l7afg2h2vaj6iasis9724f3mgl6"
+ }
+ },
+ {
+ "ename": "flimenu",
+ "commit": "0ffc67a266de3d58553b27325b7fc6937df425be",
+ "sha256": "1xr28kprkq9xwy2f7b3wnjr25a8avm2lfcyi8853jygkm2vmnsx1",
+ "fetcher": "github",
+ "repo": "IvanMalison/flimenu",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1510
+ ],
+ "commit": "4c0ff37cf3bd6c836bd136b5f6c450560a6c92b9",
+ "sha256": "1z57vm8pgxfhklzz4gpyqy8wwv3dzl76dzgilx5pfkd69m2jrijg"
+ }
+ },
+ {
+ "ename": "fliptext",
+ "commit": "e36776cbed8eab151f69d0edd5217a7bba7c2451",
+ "sha256": "1wbrvqrvrpk2lx7b6y30rrshr7a25b2191bnx4v8lm3cv16gv8p7",
+ "fetcher": "github",
+ "repo": "andre-r/fliptext.el",
+ "unstable": {
+ "version": [
+ 20171124,
+ 2056
+ ],
+ "commit": "fd821f645ffebae6ae3894afa7ba7fc06f91afc6",
+ "sha256": "1jf63kp1myxihv6r13cddxgr8cchxcnnmylj5dx50y42595ia4yh"
+ }
+ },
+ {
+ "ename": "floobits",
+ "commit": "95c859e8440049579630b4c2bcc31e7eaa13b1f1",
+ "sha256": "1jpk0q4mkf9ag1rqyai993nz5ngzfvxq9n9avmaaq59gkk9cjraf",
+ "fetcher": "github",
+ "repo": "Floobits/floobits-emacs",
+ "unstable": {
+ "version": [
+ 20180801,
+ 524
+ ],
+ "deps": [
+ "highlight",
+ "json"
+ ],
+ "commit": "489b294a7f30ecd2af2edc0823dead8102f27af6",
+ "sha256": "1pw88qn6s8ln626c8mgxgpfax39h7ww4m930dp7gg4aklxjbspkn"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9,
+ 3
+ ],
+ "deps": [
+ "highlight",
+ "json"
+ ],
+ "commit": "489b294a7f30ecd2af2edc0823dead8102f27af6",
+ "sha256": "1pw88qn6s8ln626c8mgxgpfax39h7ww4m930dp7gg4aklxjbspkn"
+ }
+ },
+ {
+ "ename": "flow-js2-mode",
+ "commit": "3487c252f013f6937c6731b57f2a9c1e5227a81d",
+ "sha256": "05wx7z5f4mkiab8ahhhr3fi6awmsdl253fwapad5ag3kaimnmxv7",
+ "fetcher": "github",
+ "repo": "Fuco1/flow-js2-mode",
+ "unstable": {
+ "version": [
+ 20191213,
+ 1004
+ ],
+ "deps": [
+ "flow-minor-mode",
+ "js2-mode"
+ ],
+ "commit": "7520bdda70287e8d57b3f41033b1e0ca59a3be95",
+ "sha256": "1d0g5v3nwy2wyjgh1f1s27bb8nxcfhq6yq3d7scgbnd6v6anyxxv"
+ }
+ },
+ {
+ "ename": "flow-minor-mode",
+ "commit": "66504f789069922ea56f268f4da90fac52b601ff",
+ "sha256": "190dv225sb37jawzrasd7qkbznrmkrdnb90l44il63vrlmjv3r1s",
+ "fetcher": "github",
+ "repo": "an-sh/flow-minor-mode",
+ "unstable": {
+ "version": [
+ 20191214,
+ 1309
+ ],
+ "commit": "5db3936d9eba8ccb2beca476afc84675b7b161ca",
+ "sha256": "1rnihrhkr1xpwsl6c4cgg75slsqs31bckrlkgw1252ihpl9laa6p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "50dded94ad201fdc9453656a8b15179981cd5acd",
+ "sha256": "1vaqml0ypbc14mnwycgm9slkds3bgg6x5qz99kck98acbcfijxk6"
+ }
+ },
+ {
+ "ename": "flower",
+ "commit": "c8a731715d360aea9af2b898242fd4eee5419d14",
+ "sha256": "1cb9ppgspdrg4yrrlq4sfajpa6s7xiwvdf9b3947rmmxizgqgynd",
+ "fetcher": "github",
+ "repo": "PositiveTechnologies/flower",
+ "unstable": {
+ "version": [
+ 20190215,
+ 1746
+ ],
+ "deps": [
+ "clomacs"
+ ],
+ "commit": "6ef1affa2d7090714ccc4494823de28cfc11da35",
+ "sha256": "1dp3g52j1i49bv802g27b7yszpxz0i28i4j74qp39qlld3k0gys0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 6
+ ],
+ "deps": [
+ "clomacs"
+ ],
+ "commit": "6ef1affa2d7090714ccc4494823de28cfc11da35",
+ "sha256": "1dp3g52j1i49bv802g27b7yszpxz0i28i4j74qp39qlld3k0gys0"
+ }
+ },
+ {
+ "ename": "flucui-themes",
+ "commit": "77d06aa7405f0badf5ab425ddeeb7a754c17d2af",
+ "sha256": "0ki2vxjhccyi6w2y9qj6xbfqgvjd91wqkzn6qq8ig6ggqir7wc6a",
+ "fetcher": "github",
+ "repo": "MetroWind/flucui-theme",
+ "unstable": {
+ "version": [
+ 20200815,
+ 2103
+ ],
+ "commit": "6591b5093e6e8f0e720e3995a16a91835b2e7a48",
+ "sha256": "1lrpx1y103655xwaqkvn7i2zvkzbsf5bm7zndaj31rpm917xcm3i"
+ }
+ },
+ {
+ "ename": "flutter",
+ "commit": "edfe2d6078e8e6231feb614f28a248f3a7b3d94c",
+ "sha256": "0dabx2jsdvbzic282b8q3m9nb44f4lcdyqj5011y2yk97gsg7vf7",
+ "fetcher": "github",
+ "repo": "amake/flutter.el",
+ "unstable": {
+ "version": [
+ 20200718,
+ 1434
+ ],
+ "commit": "78b3c572584c95220a40934bd67fd5e3fb096f96",
+ "sha256": "1vmm1d5sviwwvhm6cbr3sirfhqxa04d0s62a8vsiydb1q7868g2s"
+ }
+ },
+ {
+ "ename": "flutter-l10n-flycheck",
+ "commit": "6714760b205a2da8727229a4f8d4b656877890cb",
+ "sha256": "13symbzw16h0sl0j6q4n47vwgaifbmj9572n2ihfz0ml5iww1vyy",
+ "fetcher": "github",
+ "repo": "amake/flutter.el",
+ "unstable": {
+ "version": [
+ 20200221,
+ 1415
+ ],
+ "deps": [
+ "flutter",
+ "flycheck"
+ ],
+ "commit": "78b3c572584c95220a40934bd67fd5e3fb096f96",
+ "sha256": "1vmm1d5sviwwvhm6cbr3sirfhqxa04d0s62a8vsiydb1q7868g2s"
+ }
+ },
+ {
+ "ename": "fluxus-mode",
+ "commit": "a3396e0da67153ad051b8551bf34630d32f974f4",
+ "sha256": "1xn2aw9gxwkmr1miam63lrdx6n0qxsgph3rlaqy9cbs0vkb254an",
+ "fetcher": "github",
+ "repo": "defaultxr/fluxus-mode",
+ "unstable": {
+ "version": [
+ 20191001,
+ 1716
+ ],
+ "deps": [
+ "osc"
+ ],
+ "commit": "3d05fa15f141ac3e936f908097bb7eb6295cc367",
+ "sha256": "0axjlvhv3xwg16zkpskqp9kvb1x513jl329pmrjzazn5mdh2m8cw"
+ }
+ },
+ {
+ "ename": "flx",
+ "commit": "63bdf3ae2f861e333a8f9c5997f5cc52869d3b3a",
+ "sha256": "04plfhrnw7jx2jaxhbhw4ypydfcb8v0x2m5hyacvrli1mca2iyf9",
+ "fetcher": "github",
+ "repo": "lewang/flx",
+ "unstable": {
+ "version": [
+ 20191115,
+ 659
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "17f5c9cb2af18aa6f52910ff4a5a63591261ced5",
+ "sha256": "1zny29byq08vic9pzxfkchdary7dsk9ygc1lcb8drai4kd9g5jk8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7fce6a4cdb65ac1b52e2b409ba548767581ce34c",
+ "sha256": "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"
+ }
+ },
+ {
+ "ename": "flx-ido",
+ "commit": "63bdf3ae2f861e333a8f9c5997f5cc52869d3b3a",
+ "sha256": "00wcwbvfjbcx8kyap7rl1b6nsgqdwjzlpv6al2cdpdd19rm1vgdc",
+ "fetcher": "github",
+ "repo": "lewang/flx",
+ "unstable": {
+ "version": [
+ 20180117,
+ 1519
+ ],
+ "deps": [
+ "cl-lib",
+ "flx"
+ ],
+ "commit": "17f5c9cb2af18aa6f52910ff4a5a63591261ced5",
+ "sha256": "1zny29byq08vic9pzxfkchdary7dsk9ygc1lcb8drai4kd9g5jk8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "flx"
+ ],
+ "commit": "7fce6a4cdb65ac1b52e2b409ba548767581ce34c",
+ "sha256": "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"
+ }
+ },
+ {
+ "ename": "flx-isearch",
+ "commit": "2cd1438cc0821b8ae1d01e2a3bc8f07ca8a79134",
+ "sha256": "14cshv5xb57ch5g3m3hfhawnnabdnbacp4kx40d0pw6jxw677gqd",
+ "fetcher": "github",
+ "repo": "PythonNut/flx-isearch",
+ "unstable": {
+ "version": [
+ 20191119,
+ 515
+ ],
+ "deps": [
+ "cl-lib",
+ "flx"
+ ],
+ "commit": "a44097fb8f539a193c2f09a37ea52a68f2c51839",
+ "sha256": "051cpdggssmbz2zhr26q2831a8g2n66r5f1aqbvczg3kfw1axpkq"
+ }
+ },
+ {
+ "ename": "flycheck",
+ "commit": "649f9c3576e81409ae396606798035173cc6669f",
+ "sha256": "045k214dq8bmrai13da6gwdz97a2i998gggxqswqs4g52l1h6hvr",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck",
+ "unstable": {
+ "version": [
+ 20200610,
+ 1809
+ ],
+ "deps": [
+ "dash",
+ "let-alist",
+ "pkg-info",
+ "seq"
+ ],
+ "commit": "c02cd773dded0215f9417ec04dfe8dabda63ef43",
+ "sha256": "15w2b98zylppbfvy653i3a5jrxqvbrz8lqs4pzb39w2mbf8nxibx"
+ },
+ "stable": {
+ "version": [
+ 31
+ ],
+ "deps": [
+ "dash",
+ "let-alist",
+ "pkg-info",
+ "seq"
+ ],
+ "commit": "401b115d10e202a1b31f57340438420081af21ce",
+ "sha256": "141i6wzqlb0dslmca6930cal7q4y5wbwzmxrpjk3hgm6nxz483p8"
+ }
+ },
+ {
+ "ename": "flycheck-ameba",
+ "commit": "043b5acb0552272c523d642fd9f9dca438087068",
+ "sha256": "0ix0rfsasnifn1l1m31242fyyg7ms251hd3k0mj1mgwrsjibyq3c",
+ "fetcher": "github",
+ "repo": "crystal-ameba/ameba.el",
+ "unstable": {
+ "version": [
+ 20191226,
+ 1011
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "0c4925ae0e998818326adcb47ed27ddf9761c7dc",
+ "sha256": "0jh0pfyqdks9xk43765vgm4569a8ny01pk3gy2p3vr5gdgfdm4a3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "ca5faaa0d5115dc2c301e06e062e653a7b9cb927",
+ "sha256": "07207h1643amlairnmpf8lnnkgf69kc04z3ri9k6fm4gmh6c9dy0"
+ }
+ },
+ {
+ "ename": "flycheck-apertium",
+ "commit": "7f6cec0d312f0e86e17829e6fd8f87acabc0174f",
+ "sha256": "1cc15sljqs6gvb3wiw7n1wkd714qkvfpw6l1kg4lfx9r4jalcvw7",
+ "fetcher": "github",
+ "repo": "unhammer/flycheck-apertium",
+ "unstable": {
+ "version": [
+ 20181211,
+ 1038
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "22b60a17836477ac1edd15dc85b14f88ca871ba9",
+ "sha256": "0313h4yh85xndzvy3yzznar79ys0ng3rdsz0xa237xqsf71ypg4z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "e146ab1b929c50450ba0708e1bdd9fed85606964",
+ "sha256": "1g1m7pm84mkmjx7hdspb5k6n8aqphphxb5gya725qy1wqi950jqz"
+ }
+ },
+ {
+ "ename": "flycheck-ats2",
+ "commit": "2d3605bdc402e6b13f53910eafb7f1428a5f749f",
+ "sha256": "0xm7zzz6hs5qnqkmv7hwxpvp3jjca57agx71sj0m12v0h53gbzhr",
+ "fetcher": "github",
+ "repo": "drvink/flycheck-ats2",
+ "unstable": {
+ "version": [
+ 20170225,
+ 1636
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "9f77add8408462af35bdddf87e37a661880255e3",
+ "sha256": "1fv3r49i8dgszaq5rs8dwnwcj6rgx922ww01ikrq3b4c9y17srpz"
+ }
+ },
+ {
+ "ename": "flycheck-bashate",
+ "commit": "54fd062e4ad012d846260c96801d3415756ce981",
+ "sha256": "1c8hf4893zb74g61afr02wqhmdaswxr3nwsnzzwmb8nrrygvfa8j",
+ "fetcher": "github",
+ "repo": "alexmurray/flycheck-bashate",
+ "unstable": {
+ "version": [
+ 20200625,
+ 642
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "5e673c591d017329d0a07a61dc1223fa98639ee2",
+ "sha256": "1gaih50mkyby0r4qnmc03dy111ik4and5p6r3lvsflpvd3hcxjn3"
+ }
+ },
+ {
+ "ename": "flycheck-cask",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0d2m7mg91k1nazysayryxagql1vi975n7iv0snknhbw4wisqp82f",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-cask",
+ "unstable": {
+ "version": [
+ 20191030,
+ 2253
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "3457ae553c4feaf8168008f063d78fdde8fb5f94",
+ "sha256": "0fw5ikifp0n8jjkcg328hg1sklsgd7b8bsd538dvymk6qhx223zc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "b4667500dcf52f96ec7e0fa10dd07edf191cbf5b",
+ "sha256": "1wm5saf29gw0gp0qq5glf9qq3iras99npc2rip7bsnn0czr2mscy"
+ }
+ },
+ {
+ "ename": "flycheck-checkbashisms",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "1gjfv3zkgc07wgrxia509pdl2z23a29m5x1p0w8bdjrp5zc4j7pw",
+ "fetcher": "github",
+ "repo": "cuonglm/flycheck-checkbashisms",
+ "unstable": {
+ "version": [
+ 20190403,
+ 218
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "2e386775f1a0eb5d80e5d70e98474ee32ecafb24",
+ "sha256": "1ai4p0s6wh4sp972fxkjlc4mn6ai1zc27zh4vm63rfrayri1g31z"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "39362240b8e38e6ddc1da2e2c2229e3fecdf6057",
+ "sha256": "1s2zq97d7ryif6rlbvriz36dh23wmwi67v4q6krl77dfzcs705b3"
+ }
+ },
+ {
+ "ename": "flycheck-checkpatch",
+ "commit": "193aaae5640434559cd479df1463ee44eab14d86",
+ "sha256": "1apjn26n663rjddv5iagfs65fdf22049ykmzggybbnprvnmasf55",
+ "fetcher": "github",
+ "repo": "zpp0/flycheck-checkpatch",
+ "unstable": {
+ "version": [
+ 20170217,
+ 1025
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "6461fc7b0d493eb9863814055f8bce5fa35739de",
+ "sha256": "1651xmw01n5h7x81y3cvsamdmb67jcf385ax52dkp8miyq1a090r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "aca98ea79f8b26a95f9dbdd4142b01fdd2def866",
+ "sha256": "0bs36dp1jy2z9zfq4mnrin9ik0ffl7023h6dx3qbfya1gcxs07py"
+ }
+ },
+ {
+ "ename": "flycheck-clang-analyzer",
+ "commit": "8de7b717a1b0caf30f8f29d3e764b4756b93aeff",
+ "sha256": "0wby4vilvcmmncr6l6abh3v4wznx9m0zbk30vllj8bq98awfcy3a",
+ "fetcher": "github",
+ "repo": "alexmurray/flycheck-clang-analyzer",
+ "unstable": {
+ "version": [
+ 20200429,
+ 238
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "0c9b6e4626cd5376037464f8d6b8c64aa32768ee",
+ "sha256": "0nr3wipmcalxfp48hi23vmrj2rwbwk6gipdqmic8ay4z9x2csi8v"
+ }
+ },
+ {
+ "ename": "flycheck-clang-tidy",
+ "commit": "a289ac549a7735a12eec85521c32f915b9194b85",
+ "sha256": "0lhf5byydmd380y7qx5x34r0sq7gzrj286pcaxhl388p6j58cb4p",
+ "fetcher": "github",
+ "repo": "ch1bo/flycheck-clang-tidy",
+ "unstable": {
+ "version": [
+ 20191030,
+ 814
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "2ae5542960785604a2974548f89e10407e2ccfc1",
+ "sha256": "0gpvavwmb4zp5c5b8z60jcsza0zsb29hsg4sapp9d35hk3ranbx5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "2f89698ab0d78818875d5ef08d0b470a9ffc402f",
+ "sha256": "1l4jla3vlyx37nz9hjaihy9pi3ywbrg3512k2zp9cdis7130mvrb"
+ }
+ },
+ {
+ "ename": "flycheck-clangcheck",
+ "commit": "b42dd133e4fd5579dd1c6cdcbf733571bc890899",
+ "sha256": "1316cj3ynl80j39ha0371ss7cqw5hcr3m8944pdacdzbmp2sak2m",
+ "fetcher": "github",
+ "repo": "kumar8600/flycheck-clangcheck",
+ "unstable": {
+ "version": [
+ 20150712,
+ 710
+ ],
+ "deps": [
+ "cl-lib",
+ "flycheck",
+ "seq"
+ ],
+ "commit": "24a9424c484420073a24443a829fd5779752362b",
+ "sha256": "1ckzs32wzqpnw89rrw3l7i4gbyn25wagbadsc4mcrixml5nf0mck"
+ }
+ },
+ {
+ "ename": "flycheck-clj-kondo",
+ "commit": "20dca546bbad0fa7b713dc015d1b9a9b7caf5370",
+ "sha256": "0a61jq6g0arrsa97rl3frns8k9l9qxazb96ir99y9kskim4njl6r",
+ "fetcher": "github",
+ "repo": "borkdude/flycheck-clj-kondo",
+ "unstable": {
+ "version": [
+ 20200414,
+ 1444
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "5472c26ffdf754a0661357564874ffd4f8598805",
+ "sha256": "0nb88mil1nlhv0nalswl3xwndzz91yah52zpri2jfbyvivshpfm4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "353e3481a20fbd577ad79db8bbc6113ce179c195",
+ "sha256": "1xgvz2mdacyr7jszrpxs9lm30y0p72ahin98lr385gvsa8gknmhm"
+ }
+ },
+ {
+ "ename": "flycheck-clojure",
+ "commit": "c9c642a234f93ed4cf5edcf27a552a8916984946",
+ "sha256": "1b20gcs6fvq9pm4nl2qwsf34sg6wxngdql921q2pyh5n1xsxhm28",
+ "fetcher": "github",
+ "repo": "clojure-emacs/squiggly-clojure",
+ "unstable": {
+ "version": [
+ 20191215,
+ 2227
+ ],
+ "deps": [
+ "cider",
+ "flycheck",
+ "let-alist"
+ ],
+ "commit": "592c4f89efb5112784cbf94c9ea6fdd045771b62",
+ "sha256": "0yyy1c385jn0m6ql7vf9za4waqznr4mvv7fd234ygcbvhqn4pfdz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "cider",
+ "flycheck",
+ "let-alist"
+ ],
+ "commit": "fc0f1473c85b5287c8a62c1eee86894c98fbb84c",
+ "sha256": "0dqnv7l82h09janakq2b3ncz3jj99418pb91w0gabvfylww3pm21"
+ }
+ },
+ {
+ "ename": "flycheck-clolyze",
+ "commit": "69fb1a2c590eb1a9a7cae09a7080b24185e49c74",
+ "sha256": "1181g7ni0xihq0mbk6g6h7wh31hrg9q2xxsyrg6gb1zf4qqp2zyv",
+ "fetcher": "github",
+ "repo": "DLaps/flycheck-clolyze",
+ "unstable": {
+ "version": [
+ 20190422,
+ 2134
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "c8b27602dd505aeae6486feb6f584754079baf51",
+ "sha256": "163qlcjwzg8yg7ygg8h99484basz76fsqwdgv8s7v7kyfsclbjq8"
+ }
+ },
+ {
+ "ename": "flycheck-color-mode-line",
+ "commit": "02b5b60b74581ff0d1815155223e0c6e94a851a1",
+ "sha256": "0hw19nsh5h2l8qbp7brqmml2fhs8a0x850vlvq3qfd7z248gvhrq",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-color-mode-line",
+ "unstable": {
+ "version": [
+ 20200528,
+ 416
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "575b604cfe21f65fb07c134392c382c163c87739",
+ "sha256": "04wc61my2p6zbq22nh6yvap5aww9lfr5zgd7mf0l1chbvi9scdn0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "c85319f8d2579e770c9060bfef11bedc1370d8be",
+ "sha256": "11xc08xld758xx9myqjsiqz8vk3gh4d9c4yswswvky6mrx34c0y5"
+ }
+ },
+ {
+ "ename": "flycheck-coverity",
+ "commit": "55e8df91adbcf8b059096e02aba2781424250381",
+ "sha256": "1knd1sqgjkgb5zs8hgsi6lyvkqmrcrdjgx81f26nhg40qv5m2p5l",
+ "fetcher": "github",
+ "repo": "alexmurray/flycheck-coverity",
+ "unstable": {
+ "version": [
+ 20170704,
+ 59
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "cb211e3dd50413a5042eb20175be518214591c9d",
+ "sha256": "17c5lppa5axw6wga3k8zqmn5f2syadlqbavrqgsi8k8nlcckxy1x"
+ }
+ },
+ {
+ "ename": "flycheck-credo",
+ "commit": "88dfffe034135cc46d661f8173e8b14e0fb7f240",
+ "sha256": "0xmnbib7lx6v10pd3pkr69c4jb4sn3nmjk16qzvscwjgf2dypyax",
+ "fetcher": "github",
+ "repo": "aaronjensen/flycheck-credo",
+ "unstable": {
+ "version": [
+ 20170526,
+ 1545
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "e88f11ead53805c361ec7706e44c3dfee1daa19f",
+ "sha256": "04i7fbqpkjpsfa8vjpkdhg1sj5isczxwncdp4vr9x3vll3svblm7"
+ }
+ },
+ {
+ "ename": "flycheck-crystal",
+ "commit": "c718f809af30226611358f9aaed7519e52923fd3",
+ "sha256": "04avxav2rayprm09xkphs1ni10j1kk10j7m77afcac0gnma5rwyn",
+ "fetcher": "github",
+ "repo": "crystal-lang-tools/emacs-crystal-mode",
+ "unstable": {
+ "version": [
+ 20200805,
+ 2344
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "f9e4db16ff9fdc6a296363aa35d19cfb4926e472",
+ "sha256": "1x0lmb48bza2w52s15288hpbipafs87lj5lv0ldd1q4r9yv0i102"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "0fe6815201bebe4c5ff6857bd541d95b05132b10",
+ "sha256": "0r75dvc0jqcqi1qjns8zj132dnm0s6mvqlqynkis16nigbawix8m"
+ }
+ },
+ {
+ "ename": "flycheck-css-colorguard",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "16qgn12jdps61mlbvhji5l8qrqigv382wyiv79rj2bwvdzbl653f",
+ "fetcher": "github",
+ "repo": "Simplify/flycheck-css-colorguard",
+ "unstable": {
+ "version": [
+ 20161031,
+ 1122
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "ae94fa0396acd99f9ec36d9572459df793f37fe8",
+ "sha256": "1vy5yjf98b7dk9lniz3rgk33agg8f1x8488lvm28ljdq3jfdgcfw"
+ }
+ },
+ {
+ "ename": "flycheck-cstyle",
+ "commit": "5970f4f0967dc3a10dc9554a8f5f06b703872878",
+ "sha256": "0p3lzpcgwk4nkq1w0iq40njz8ll2h3vi9z5fbvv1ar4r80fqd909",
+ "fetcher": "github",
+ "repo": "alexmurray/flycheck-cstyle",
+ "unstable": {
+ "version": [
+ 20160905,
+ 2341
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "207285140a353d08cf1fc450cacab158bc98ba82",
+ "sha256": "19wwv4r3nh79bdfcqp55qmknl0gwicy7dcaz28hm3sswbjpfv3rw"
+ }
+ },
+ {
+ "ename": "flycheck-cython",
+ "commit": "2d963eb1b8f8f863b37a96803b00d395e9d85e94",
+ "sha256": "1mbrwhpbs8in11mp79cnl4bd3m33qdgrvnbvi1mqvrsvz1ay28g4",
+ "fetcher": "github",
+ "repo": "lbolla/emacs-flycheck-cython",
+ "unstable": {
+ "version": [
+ 20170724,
+ 958
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "ecc4454d35ab5317ab66a04406f36f0c1dbc0b76",
+ "sha256": "1v17skw0wn7a7nkc1vrs0bbzihnjw0dwvyyd0lydsihzxl5z2r5g"
+ }
+ },
+ {
+ "ename": "flycheck-d-unittest",
+ "commit": "b86c666ee9b0620390a250dddd42b17cbec2409f",
+ "sha256": "0n4m4f0zqcx966582af1nqff5sla7jcr0wrmgzzxnn97yjrlnzk2",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-d-unittest",
+ "unstable": {
+ "version": [
+ 20160522,
+ 417
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "3e614f23cb4a5566fd7988dbcaaf254af81c7718",
+ "sha256": "0lrxyrvdkj88qh78jmamrnji770vjsr6h01agl7hvd4n2xvlxcym"
+ }
+ },
+ {
+ "ename": "flycheck-dedukti",
+ "commit": "732832e88a65a8866fa3872ff5f29eb8a26438f2",
+ "sha256": "00nc18w4nsi6vicpbqqpr4xcdh48g95vnay3kirb2xp5hc2rw3x8",
+ "fetcher": "github",
+ "repo": "rafoo/flycheck-dedukti",
+ "unstable": {
+ "version": [
+ 20171103,
+ 1212
+ ],
+ "deps": [
+ "dedukti-mode",
+ "flycheck"
+ ],
+ "commit": "3dbff5646355f39d57a3ec514f560a6b0082a1cd",
+ "sha256": "1ffpxnwl3wx244n44mbw81g00nhnykd0lnid29f4aw1av7w6nw8l"
+ }
+ },
+ {
+ "ename": "flycheck-dialyxir",
+ "commit": "fa49551b8f726c235e03ea377bb09a8be37b9f32",
+ "sha256": "0pacxidpgwp7wij17c5r0fm5w3nga3lp4mcim365k3y5r4ralc0c",
+ "fetcher": "github",
+ "repo": "aaronjensen/flycheck-dialyxir",
+ "unstable": {
+ "version": [
+ 20170515,
+ 1525
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "adfb73374cb2bee75724822972f405f2ec371199",
+ "sha256": "1kzvq99f052mdj4ml1m6nvxhv0kqqblmpdgnwcm89krf0qfl4gjg"
+ }
+ },
+ {
+ "ename": "flycheck-dialyzer",
+ "commit": "bc84fb9fabfac4c008fe0eecb0b59933bfbf95c6",
+ "sha256": "0bn81yzijmnfg5xcnvcvxvqxz995iaafhgbfckgcal974s229kd2",
+ "fetcher": "github",
+ "repo": "lbolla/emacs-flycheck-dialyzer",
+ "unstable": {
+ "version": [
+ 20160326,
+ 1430
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "a5df0db95ac69f397b5f85d325a6d88cf8974f64",
+ "sha256": "1i5wm2r6rck6864a60mm6kv31vgvqnq49hi9apvhyywfn6sycwkf"
+ }
+ },
+ {
+ "ename": "flycheck-dmd-dub",
+ "commit": "a812594901c1099283bdf51fbea1aa077cfc588d",
+ "sha256": "0pg3sf7h6xqv65yqclhlb7fx1mp2w0m3qk4vji6m438kxy6fhzqm",
+ "fetcher": "github",
+ "repo": "atilaneves/flycheck-dmd-dub",
+ "unstable": {
+ "version": [
+ 20180625,
+ 1635
+ ],
+ "deps": [
+ "f",
+ "flycheck"
+ ],
+ "commit": "d7df2895d7d27cc39916816e3c32a60ce0e1d2d9",
+ "sha256": "11p1r8gfii7mbh65nrm5hzrz50bmfgx5c4a0zmy6wr219syiggnl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 12
+ ],
+ "deps": [
+ "f",
+ "flycheck"
+ ],
+ "commit": "41a839e18eb7159175c59a2f8b2f5f283191e33f",
+ "sha256": "0a78np6nb9ciz440n9ks6kybwggkq99knzv7swbmvngvhg96khbx"
+ }
+ },
+ {
+ "ename": "flycheck-dogma",
+ "commit": "1dd7601c55206fd0b9b59f98e861c52b9d640278",
+ "sha256": "0mpmmz0ssdd3a4fnqzy5kf9r3ddcs9kcl0chhilkw5k8480j3dcy",
+ "fetcher": "github",
+ "repo": "aaronjensen/flycheck-dogma",
+ "unstable": {
+ "version": [
+ 20170125,
+ 721
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "eea1844a81e87e2488b05e703a93272d0fc3bc74",
+ "sha256": "0wmp4q1jzb6giwrv8ajgqriy155mcc7jnj5sycpfk3hw6q74js66"
+ }
+ },
+ {
+ "ename": "flycheck-drstring",
+ "commit": "2070680f0d883ea61def1b7a9487c4524886a579",
+ "sha256": "08hyh39wyphh2lr879y2havw0wfgppq0v763j0sa5hpvaf0y46h7",
+ "fetcher": "github",
+ "repo": "danielmartin/flycheck-drstring",
+ "unstable": {
+ "version": [
+ 20200210,
+ 1903
+ ],
+ "deps": [
+ "flycheck",
+ "swift-mode"
+ ],
+ "commit": "d8d5a560e792a6657ef5ac69934c74f1ed51372d",
+ "sha256": "0vcp3zbpi5vb8cs01fzb4268gj9ijq9qndqarwnls8w9wky4548w"
+ }
+ },
+ {
+ "ename": "flycheck-dtrace",
+ "commit": "cdcdd10fbcd58a5c67e4d07632212e7dedf42dbe",
+ "sha256": "14sg7zkq9f5zbcfn8app8m9mdc8cnwcxh7h4glsz32yaqc1dj7h8",
+ "fetcher": "github",
+ "repo": "juergenhoetzel/flycheck-dtrace",
+ "unstable": {
+ "version": [
+ 20180903,
+ 1630
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "951fab3a15c11d92b9fac1ea4791a80dfe034a00",
+ "sha256": "1qkzir3lzz4lc5kn55qb52cm5y7iy8w1ljq6xxzcjxfbk9980y0y"
+ }
+ },
+ {
+ "ename": "flycheck-eldev",
+ "commit": "170b59e0f97ea8a27910efc1de3c82ee188a3fe5",
+ "sha256": "0z83w4gd34g4kgdfc46c5zkhm0awa1hhi9p600k3sd4n8ac2ms4m",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-eldev",
+ "unstable": {
+ "version": [
+ 20200614,
+ 1904
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "c2e2bea1e69fe5f50a9629dec1d9b468ee92de54",
+ "sha256": "0rkzjzghfgypplnsx4w4ih9dh8xyysy9wb0jqmbg13zvc3jcb600"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "1bddbfaa1de22879ea2b900c9f8d6f16940ee9fb",
+ "sha256": "0ma26gk9a3lw60i172wcwdsyfa19j7fj579b4yb7gf9ibca2hs5m"
+ }
+ },
+ {
+ "ename": "flycheck-elixir",
+ "commit": "da2ab73ab1426f71ea2b2bea2b418941856b3454",
+ "sha256": "0f78fai6q15smh9rvsliv8r0hh3kpwn1lz37yvqkkbx9vl7rlwld",
+ "fetcher": "github",
+ "repo": "lbolla/emacs-flycheck-elixir",
+ "unstable": {
+ "version": [
+ 20180810,
+ 642
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "11998d7e3e63a33453e934d25b3673f7c558e579",
+ "sha256": "1hdbg0hvb6hwzjma9mxy0h888c8j2z4g38gwixrdixzbw5727r75"
+ }
+ },
+ {
+ "ename": "flycheck-elm",
+ "commit": "78bdcdaa660beda29acecb51761b95d8664d28ac",
+ "sha256": "06dpv19wgbw48gbf701c77vw1dkpddx8056wpim3zbvwwfwk8ra4",
+ "fetcher": "github",
+ "repo": "bsermons/flycheck-elm",
+ "unstable": {
+ "version": [
+ 20181107,
+ 146
+ ],
+ "deps": [
+ "flycheck",
+ "let-alist",
+ "seq"
+ ],
+ "commit": "1b60050efd4729bfba548f3e5adbcb58436667cb",
+ "sha256": "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"
+ }
+ },
+ {
+ "ename": "flycheck-elsa",
+ "commit": "2a15c49d2fc800a6b69304edd6dbad90aaa5053f",
+ "sha256": "07a07hmy7cibm7263dw4x8kkv17g5hby8isaks7n2814ifblf30r",
+ "fetcher": "github",
+ "repo": "emacs-elsa/flycheck-elsa",
+ "unstable": {
+ "version": [
+ 20200203,
+ 1758
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "6274e6d5391bcdca46164b3238b045ca21c353a2",
+ "sha256": "0dr52dqxsgswswbkdbv0dax57k41j58n5wf3gny6yz52626kv8n8"
+ }
+ },
+ {
+ "ename": "flycheck-flawfinder",
+ "commit": "e67a84d1a8c890ea56bd842549d70d9841d1e7a7",
+ "sha256": "1nabj00f5p1klzh6509ywnazxx2m017isdjdzzixg94g5mp0kv5i",
+ "fetcher": "github",
+ "repo": "alexmurray/flycheck-flawfinder",
+ "unstable": {
+ "version": [
+ 20170116,
+ 327
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "7d964d38023b088adf3ffc2fddeead81f4491a45",
+ "sha256": "0y023brz8adwa6gdaaixk6dnrq4kj2i5h56rj54cxrjkagyklfxl"
+ }
+ },
+ {
+ "ename": "flycheck-flow",
+ "commit": "4d18fb21d8ef9b33aa84bc26f5918e636c5771e5",
+ "sha256": "0p4vvk09vjgk98dwzr2qzldvij3v6af56pradssi6sm3shbqhkk3",
+ "fetcher": "github",
+ "repo": "lbolla/emacs-flycheck-flow",
+ "unstable": {
+ "version": [
+ 20190304,
+ 1459
+ ],
+ "deps": [
+ "flycheck",
+ "json"
+ ],
+ "commit": "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d",
+ "sha256": "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"
+ }
+ },
+ {
+ "ename": "flycheck-ghcmod",
+ "commit": "b6ed620e038f361c41115430a1fc119a04cf4f20",
+ "sha256": "0mqxg622lqnkb52a0wff7h8b0k6mm1k7fhkfi95fi5sahclja0rp",
+ "fetcher": "github",
+ "repo": "scturtle/flycheck-ghcmod",
+ "unstable": {
+ "version": [
+ 20150114,
+ 632
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "6bb7b7d879f05bbae54e99eb04806c877adf3ccc",
+ "sha256": "0q1m1f3vhw1wy0pa3njy55z28psznbw2xwmwk2v1p5c86n74ns8d"
+ }
+ },
+ {
+ "ename": "flycheck-golangci-lint",
+ "commit": "fffbecd6cb43866fc9f37ba2d2c998ef6186c6d5",
+ "sha256": "1vg80q4axbzb147fglli2w19n70bc934hb3hfl1r4shhpbfjlcgj",
+ "fetcher": "github",
+ "repo": "weijiangan/flycheck-golangci-lint",
+ "unstable": {
+ "version": [
+ 20190330,
+ 1412
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "8e446c68311048f0b87febf8ef0379e29d358851",
+ "sha256": "0xxxqk8ag082nwwq3dvhzvnbgn9c90mbda7qvi2y4qbh1p1nccqc"
+ }
+ },
+ {
+ "ename": "flycheck-gometalinter",
+ "commit": "8bfe9f2d030c04fb292297eb9226072bfea2ac64",
+ "sha256": "1bnvj5kwgbh0dv989rsjcvmcij1ahwcz0vpr6a8f2p6wwvksw1h2",
+ "fetcher": "github",
+ "repo": "favadi/flycheck-gometalinter",
+ "unstable": {
+ "version": [
+ 20180424,
+ 941
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "1e3eede14da405b914a7d8b00300846e4393cb83",
+ "sha256": "10gskp8ch904s3lw7g4sixfhwyx74grdivdl2wnsvd44im9zlw6c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "2e863429cc953cf4c14783e249df56d1ae669868",
+ "sha256": "07r2csy2psflvg0pl6n9scfwhnp9mv7hs02hz861v5kbkfx0ajzw"
+ }
+ },
+ {
+ "ename": "flycheck-gradle",
+ "commit": "382d9afd2bbb0c137719c308a67d185b86d84331",
+ "sha256": "0zd92lx0mqjqwzclvvhfwwahq80qspyv9k7qcxjc0bl3avjk6a47",
+ "fetcher": "github",
+ "repo": "jojojames/flycheck-gradle",
+ "unstable": {
+ "version": [
+ 20190315,
+ 234
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "1ca08bbc343362a923cbdc2010f66e41655e92ab",
+ "sha256": "14zvx7f2nszf8p14aibqa4pdg3ly7yw66a58bw2whjw9zfi9rnr0"
+ }
+ },
+ {
+ "ename": "flycheck-grammalecte",
+ "commit": "ddaffa55c1b99cce9097c019efe9a236e2f5a395",
+ "sha256": "1fblc6mvj9n676ci8597as3rnwh6hmbh2hfwr92gi1dd8ibnd2pn",
+ "fetcher": "git",
+ "url": "https://git.deparis.io/flycheck-grammalecte/",
+ "unstable": {
+ "version": [
+ 20200515,
+ 1120
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "8608df3144714d79b93afcfe13400693ed763ed8",
+ "sha256": "1ibcalim4mp9676szbvrf69nhfbc8vy47anmpqi9idjvdf6bpm75"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "8608df3144714d79b93afcfe13400693ed763ed8",
+ "sha256": "1ibcalim4mp9676szbvrf69nhfbc8vy47anmpqi9idjvdf6bpm75"
+ }
+ },
+ {
+ "ename": "flycheck-grammarly",
+ "commit": "5fdf51167be86e0871125d5548bddc0c926b79dd",
+ "sha256": "0rdgb9ig3gda33xwl8p9c11gf274v02zibzd660ncp0cipapvqp7",
+ "fetcher": "github",
+ "repo": "jcs-elpa/flycheck-grammarly",
+ "unstable": {
+ "version": [
+ 20200720,
+ 951
+ ],
+ "deps": [
+ "flycheck",
+ "grammarly"
+ ],
+ "commit": "698b82936f6b592591f7ed9cc3e3cdf0099e8d96",
+ "sha256": "14lp2js3vlwj2wd8l38bkg4q3dgp4n51smfi70isg3rpi8i0csxy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "flycheck",
+ "grammarly"
+ ],
+ "commit": "698b82936f6b592591f7ed9cc3e3cdf0099e8d96",
+ "sha256": "14lp2js3vlwj2wd8l38bkg4q3dgp4n51smfi70isg3rpi8i0csxy"
+ }
+ },
+ {
+ "ename": "flycheck-guile",
+ "commit": "e94519d09e86af65778a7b81877e21d139c9a529",
+ "sha256": "1jxdqn3smpd9vf26y24m35yg60xjkqcazlj18q0vrf4ib188d36c",
+ "fetcher": "github",
+ "repo": "flatwhatson/flycheck-guile",
+ "unstable": {
+ "version": [
+ 20200721,
+ 103
+ ],
+ "deps": [
+ "flycheck",
+ "geiser"
+ ],
+ "commit": "2940f1622fa352e7ca95a9e4ad65958c5575da02",
+ "sha256": "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "flycheck",
+ "geiser"
+ ],
+ "commit": "2940f1622fa352e7ca95a9e4ad65958c5575da02",
+ "sha256": "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"
+ }
+ },
+ {
+ "ename": "flycheck-haskell",
+ "commit": "6ca601613788ae830655e148a222625035195f55",
+ "sha256": "12lgirz3j6n5ns2ikq4n41z0d33qp1lb5lfz1q11qvpbpn9d0jn7",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-haskell",
+ "unstable": {
+ "version": [
+ 20200218,
+ 753
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "haskell-mode",
+ "let-alist",
+ "seq"
+ ],
+ "commit": "23cfb9387faf6f70b421bb4c11b6847f0db38dfc",
+ "sha256": "0s36fcqvmi3kmvhmmb0vrbgjkxjpx9wkj343f0rjjz1rh4b3n7qv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "haskell-mode",
+ "let-alist",
+ "seq"
+ ],
+ "commit": "ee3401d97cc5e8edc216f2369e9dea3d363e462c",
+ "sha256": "0yryd346cp5zir3icldkhjzwjb0bkq8rlidbr62dry1cw9bic6z0"
+ }
+ },
+ {
+ "ename": "flycheck-hdevtools",
+ "commit": "9e210eb2405cc85dd1d03e9119d2249178950398",
+ "sha256": "0ahvai1q4x59ryiyccvqvjisgqbaiahx4gk8ssaxhblhj0sqga93",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-hdevtools",
+ "unstable": {
+ "version": [
+ 20160926,
+ 702
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "8248ebaf8376ee5e37ff47c814a291550a7bdcf2",
+ "sha256": "1al9kyj7n0cjc4s1m41389bzvvrckg28598v506zd5hqvaiynsp0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "fbf90b9a7d2d90f69ac55b57d18f0f4a47afed61",
+ "sha256": "136mdg21a8sqxhijsjsvpli7r7sb40nmf80p6gmgb1ghwmhlm8k3"
+ }
+ },
+ {
+ "ename": "flycheck-indent",
+ "commit": "b1c1163d5acc402716c4a6cf877f13665138b74b",
+ "sha256": "0d6wa3w377s22psbficabyqi03z8kp32662yxcly1dlv5zyyh6nd",
+ "fetcher": "github",
+ "repo": "conao3/indent-lint.el",
+ "unstable": {
+ "version": [
+ 20200129,
+ 2046
+ ],
+ "deps": [
+ "flycheck",
+ "indent-lint"
+ ],
+ "commit": "c55f4ded11e8e50a96f43675a071354a8fb501c3",
+ "sha256": "0d7vkgzsx6ka4zliscsg6drqhg2bj16i911ryzmsp4v6hj294jrc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "flycheck",
+ "indent-lint"
+ ],
+ "commit": "5601a716d4daeb444642736ddef420cbc1047968",
+ "sha256": "0ndpdqdcg2rlrw5z86gyj46qsmsilh3a4snyyybi87kk5ajk2k64"
+ }
+ },
+ {
+ "ename": "flycheck-indicator",
+ "commit": "25d59829ca2f4fbedfee500885b45bc358faf47b",
+ "sha256": "1h2d7dw94agrdrks41npjdmf5m628n1jg060pv1mrjysj4xm2n45",
+ "fetcher": "github",
+ "repo": "gexplorer/flycheck-indicator",
+ "unstable": {
+ "version": [
+ 20200331,
+ 1142
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "e00d9a20cbc21d6814c27cc9206296da394478e8",
+ "sha256": "0y3dzamm7xcac9fcgx88z48l6nkgmz5lx0a6lnxxywkh0h1y2kqn"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "e00d9a20cbc21d6814c27cc9206296da394478e8",
+ "sha256": "0y3dzamm7xcac9fcgx88z48l6nkgmz5lx0a6lnxxywkh0h1y2kqn"
+ }
+ },
+ {
+ "ename": "flycheck-ini-pyinilint",
+ "commit": "c2a1d0b4be0dd3e238ad2e3a157b11ecc82c0639",
+ "sha256": "028ksrlrrsn2wsz7kqf3qk4pp3scs7zvp74c4xj52rm4hh7ycbl7",
+ "fetcher": "gitlab",
+ "repo": "danieljrmay/flycheck-ini-pyinilint",
+ "unstable": {
+ "version": [
+ 20190312,
+ 1931
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "e1c3adfc148caf721691a55cae686b5f31209204",
+ "sha256": "0b8hs7cdywqblbf5dkgck00x18xirlxi7kqd21cqfd276wvn8wyp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "54744a78d06373404933fedc3ca836916e83de51",
+ "sha256": "1zdvan6l2s97s7swnccq21z1ja8vl64l757j3hg50ipq8j5yy9dl"
+ }
+ },
+ {
+ "ename": "flycheck-inline",
+ "commit": "a9ecc3a4696d2b3b0f0b8b1ca6e5285380ac046a",
+ "sha256": "14ph2f5aj2mpyxbbq4v0rk5zdz7773lf2m83m30h3r1cbh5jmddj",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-inline",
+ "unstable": {
+ "version": [
+ 20200808,
+ 1019
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "0662c314bd819f9b46f8b2b13f0c650445b3a8c5",
+ "sha256": "1wlvwi8y5pb3gy3j061v7krxfb1766yw5iika5ymk4zjg9g057vn"
+ }
+ },
+ {
+ "ename": "flycheck-irony",
+ "commit": "1e367afce9a792c168ef1e7e20cc5903f7b570d8",
+ "sha256": "0qk814m5s7mjba659llml0gy1g3045w8l1g73w2pnm1pbpqdfn3z",
+ "fetcher": "github",
+ "repo": "Sarcasm/flycheck-irony",
+ "unstable": {
+ "version": [
+ 20180604,
+ 2152
+ ],
+ "deps": [
+ "flycheck",
+ "irony"
+ ],
+ "commit": "42dbecd4a865cabeb301193bb4d660e26ae3befe",
+ "sha256": "00ggn7v1nj2zb7rvwmjrhybd1vcp07n74krdy28z9xwh7w59wyq7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "flycheck",
+ "irony"
+ ],
+ "commit": "34940ae5ab8f4c721d9c1118ebfc3496d7e67a84",
+ "sha256": "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"
+ }
+ },
+ {
+ "ename": "flycheck-jest",
+ "commit": "31e2ac9de5f28ee9d847097cdeb60afa99476a51",
+ "sha256": "19dg8v0xzni7x6zn472n4ach1c1jv4syzarfi8ba8r6n26vz9ss4",
+ "fetcher": "github",
+ "repo": "jojojames/flycheck-jest",
+ "unstable": {
+ "version": [
+ 20180411,
+ 328
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "08f27c5ed97c83c445f99fab58f0b6c826f14449",
+ "sha256": "1ipr1yyk5vf2i8q7923r18a216sgf759x5f6j5776jcjkhp98c98"
+ }
+ },
+ {
+ "ename": "flycheck-joker",
+ "commit": "599bf33a5d4a4a590b355001e532cab4e1ee9ef6",
+ "sha256": "0war80zdljpjhfihqrind8471ic7l4z7j74zmrysybxvnd5nr7l3",
+ "fetcher": "github",
+ "repo": "candid82/flycheck-joker",
+ "unstable": {
+ "version": [
+ 20200412,
+ 2346
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "93576295fef7a749bf779eeece5edd85e21868e2",
+ "sha256": "1hz5nlrhbrlwwk8rcjvc3jhj0g9wgm6xw903ap8fxq470mj99gln"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "93576295fef7a749bf779eeece5edd85e21868e2",
+ "sha256": "1hz5nlrhbrlwwk8rcjvc3jhj0g9wgm6xw903ap8fxq470mj99gln"
+ }
+ },
+ {
+ "ename": "flycheck-julia",
+ "commit": "4e964e3c6f737d0102b4fd7440fa9d434e6382bf",
+ "sha256": "0340bv0lifs8pajk7gh7rngdjg62vaggn5biyysng642dlg5fwqs",
+ "fetcher": "github",
+ "repo": "gdkrmr/flycheck-julia",
+ "unstable": {
+ "version": [
+ 20170729,
+ 2141
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "213b60a5a9a1cb7887260e1d159b5bb27167cbb6",
+ "sha256": "0wk8mc8j67dmc3mxzrhypgxmyywwrjh5q5llj4m2mgf0j7yp2576"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "213b60a5a9a1cb7887260e1d159b5bb27167cbb6",
+ "sha256": "0wk8mc8j67dmc3mxzrhypgxmyywwrjh5q5llj4m2mgf0j7yp2576"
+ }
+ },
+ {
+ "ename": "flycheck-keg",
+ "commit": "bbf222afada736c149ec91d148c25aad5e077c95",
+ "sha256": "1kyf3fimdi3kbg9simkn0gqmqd8i5la26p7xrhhg34am5n6wm3g6",
+ "fetcher": "github",
+ "repo": "conao3/keg.el",
+ "unstable": {
+ "version": [
+ 20200726,
+ 218
+ ],
+ "deps": [
+ "flycheck",
+ "keg"
+ ],
+ "commit": "fea2f831d84d7642c35820bb63250487e46683e5",
+ "sha256": "062lnv7g9ixs6d0qzp6py9ajd2rbrk7l2yrz3dn5zz8lx06hbaga"
+ }
+ },
+ {
+ "ename": "flycheck-kotlin",
+ "commit": "f158727cc8892aadba0a613dd08e65e2fc791b48",
+ "sha256": "0vh4f3ap1ciddf2fvfnjz668d6spyx49xs2wfp1hrzxn5yqpnra5",
+ "fetcher": "github",
+ "repo": "whirm/flycheck-kotlin",
+ "unstable": {
+ "version": [
+ 20190808,
+ 630
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "5104ee9a3fdb7f0a0a3d3bcfd8dd3c45a9929310",
+ "sha256": "193l9amk45b0bkrqqm6cxx8y4a6jvm0mcncwq6kvhq2kj9slw7g2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "5104ee9a3fdb7f0a0a3d3bcfd8dd3c45a9929310",
+ "sha256": "193l9amk45b0bkrqqm6cxx8y4a6jvm0mcncwq6kvhq2kj9slw7g2"
+ }
+ },
+ {
+ "ename": "flycheck-ledger",
+ "commit": "dc715e6849aa5d6017e2478514c4a0d84c7ddbe5",
+ "sha256": "0807pd2km4r60wgd6jakscbx63ab22d9kvf1cml0ad8wynsap7jl",
+ "fetcher": "github",
+ "repo": "purcell/flycheck-ledger",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2204
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "628e25ba66604946085571652a94a54f4d1ad96f",
+ "sha256": "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "628e25ba66604946085571652a94a54f4d1ad96f",
+ "sha256": "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"
+ }
+ },
+ {
+ "ename": "flycheck-lilypond",
+ "commit": "da99de90193c9ad362afdbbae28dfba52ef3676e",
+ "sha256": "0yx0jbilr8z58df13wcssp3p95skcvl8mnhhr6lijak44sd7klbf",
+ "fetcher": "github",
+ "repo": "hinrik/flycheck-lilypond",
+ "unstable": {
+ "version": [
+ 20200614,
+ 2104
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "17133911b519be76365103dec8c10cb2f3729f1a",
+ "sha256": "01486ch8vsq7kcfdpggvykbdangv2pvq2v4g9npr9izlja2kwpar"
+ }
+ },
+ {
+ "ename": "flycheck-liquidhs",
+ "commit": "d5921fde4068ff1bb288f6f9e2fe03f4a7fdbbda",
+ "sha256": "07dn2ifj49z2jj9zw0f0ydp5rxx9wfmah4fh4vx8slnpjby367yh",
+ "fetcher": "github",
+ "repo": "ucsd-progsys/flycheck-liquidhs.el",
+ "unstable": {
+ "version": [
+ 20170412,
+ 2326
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "c27252ac24d77f4b6eec76a4ba9cd61761a3fba9",
+ "sha256": "1v5s252w2ai0rrci0rkq6wsx110pw8hp60n67990jg6l6lpvir2s"
+ }
+ },
+ {
+ "ename": "flycheck-mercury",
+ "commit": "a775d12d9b9b6f27a44aeffbbb18de46a9e1b532",
+ "sha256": "1z2y6933f05yv9y2aapmn876jnsydh642zqid3j88bb9kqi67x0h",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-mercury",
+ "unstable": {
+ "version": [
+ 20181118,
+ 1952
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "s"
+ ],
+ "commit": "b6807a8db70981e21a91a93324c31e49de85c89f",
+ "sha256": "15pjqglpcwm4wy0cxk1man3ar0n56qi1bjrr1fxfjq2xwsgsfagh"
+ }
+ },
+ {
+ "ename": "flycheck-mmark",
+ "commit": "2fd10423ab80e32245bb494005c8f87a8987fffb",
+ "sha256": "0lnw7pz40hijcpi9b92vjxvvyh9v50ww2f2r8z9pyhl9mjy2245x",
+ "fetcher": "github",
+ "repo": "mmark-md/flycheck-mmark",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1323
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "a285d849e6e227b79bef98f575ecfa43a70661da",
+ "sha256": "1wdv7iv3lmrpxxdas1p3grkpi08c4ipjfg170nfd2fy9nhr8iy38"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "b73b40cb9c5cf6bc6fa501aa87a4c30b210c0c5f",
+ "sha256": "1w75accl67i0qwadwp7dgpxaj0i8zwckvv5isyn93vknzw5dz66x"
+ }
+ },
+ {
+ "ename": "flycheck-mypy",
+ "commit": "b1f5ad8263ee33b8950ff68e39dca5b1f1748c1b",
+ "sha256": "1w418jm6x3vcg2x31nzc8a3b8asx6gznl6m76ip8w98riz7vy02f",
+ "fetcher": "github",
+ "repo": "lbolla/emacs-flycheck-mypy",
+ "unstable": {
+ "version": [
+ 20200113,
+ 1336
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "5b4e14ab0cbce2ff35fee7e69b5b95eafd609c80",
+ "sha256": "1cx1rm40ns3y5bdbk8hfycdaq16p4zxkjjss02xs6hl96yvc4kaj"
+ }
+ },
+ {
+ "ename": "flycheck-nim",
+ "commit": "68747db46761f28aa2fdf13494d7cecc334cb604",
+ "sha256": "0w6f6998rqx8a3i4xhga7mrmvhxrm690wkqwfzspidid2z7v71az",
+ "fetcher": "github",
+ "repo": "ALSchwalm/flycheck-nim",
+ "unstable": {
+ "version": [
+ 20190927,
+ 1514
+ ],
+ "deps": [
+ "dash",
+ "flycheck"
+ ],
+ "commit": "ddfade51001571c2399f78bcc509e0aa8eb752a4",
+ "sha256": "19xxwj66q45499s9jvw6rq8im0g7wxl9m66kq2a9ykds4v7sprlm"
+ }
+ },
+ {
+ "ename": "flycheck-nimsuggest",
+ "commit": "cb4170f002dbcd1906e81836f3ce035b1e81c379",
+ "sha256": "099mlzramm6z66zyjb6ypn7qb0hpvwbbgk9ydsanj8sni0dd66hv",
+ "fetcher": "github",
+ "repo": "yuutayamada/flycheck-nimsuggest",
+ "unstable": {
+ "version": [
+ 20171027,
+ 2208
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "dc9a5de1cb3ee05db5794d824610959a1f603bc9",
+ "sha256": "1bf65hrz0s6f180kn2ir8l5qn7in789w8pyy96b9gqn21z50vb9d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 1
+ ],
+ "deps": [
+ "flycheck",
+ "nim-mode"
+ ],
+ "commit": "8b1c69e9aa924368bc4dadd4cde818ff158cd3f0",
+ "sha256": "0vnwy7b3xs2smbr6ah6yk8hq7vvsciq7d6m1qr91nfnazdgvxmvg"
+ }
+ },
+ {
+ "ename": "flycheck-objc-clang",
+ "commit": "4ff4412f507371b93cfb85fc744e54110cd87338",
+ "sha256": "07mzwd04a69d7xpkjmhfmf95j69h6accnf9bb9br7jb1hi9vdalp",
+ "fetcher": "github",
+ "repo": "GyazSquare/flycheck-objc-clang",
+ "unstable": {
+ "version": [
+ 20191116,
+ 1015
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "683d52e7bc3aeabd966c546a1d835d4c7191509b",
+ "sha256": "0aymv9y06gzkh1m0jl693wsqvbh3cc5fp5z2yprmqzc98w1lh8bs"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "683d52e7bc3aeabd966c546a1d835d4c7191509b",
+ "sha256": "0aymv9y06gzkh1m0jl693wsqvbh3cc5fp5z2yprmqzc98w1lh8bs"
+ }
+ },
+ {
+ "ename": "flycheck-ocaml",
+ "commit": "8ce9283eb1285953a2578eb7c4d280b4d98c801f",
+ "sha256": "1cv2bb66aql2kj1y1gsl4xji8yrzrq6rd8hxxs5vpfsk47052lf7",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-ocaml",
+ "unstable": {
+ "version": [
+ 20170730,
+ 2153
+ ],
+ "deps": [
+ "flycheck",
+ "let-alist",
+ "merlin"
+ ],
+ "commit": "8707a7bf545a8639a6a5c600a98d9a2ea1487dc9",
+ "sha256": "13vzxkjq6v1f1i9zgxgjbwpiba04k9frkcl2wx6a9h3vgd7jyay0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "flycheck",
+ "let-alist",
+ "merlin"
+ ],
+ "commit": "9b4cd83ad2a87cc94b5d4e1ac26ac235475f1e6c",
+ "sha256": "1phfarws2aajkgcl96hqa4ydmb1yncg10q2ldzf8ff6yd6mvk51l"
+ }
+ },
+ {
+ "ename": "flycheck-package",
+ "commit": "d17ec69c9f192625e74dfadf03b11d0d7dc575e7",
+ "sha256": "0068kpia17rsgjdmzsjnw0n6x5z9jvfxggxlzkszvwsx73mvcs2d",
+ "fetcher": "github",
+ "repo": "purcell/flycheck-package",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2151
+ ],
+ "deps": [
+ "flycheck",
+ "package-lint"
+ ],
+ "commit": "64cf27d69051e02a32e3c517cbfea23f9d2d7557",
+ "sha256": "0m2bmdwrj7ccf6ndv089qbbrz1msbcgls0ckbbhzpxxq39as2rpv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13
+ ],
+ "deps": [
+ "flycheck",
+ "package-lint"
+ ],
+ "commit": "e867b83dc84f1f8870eea069a71fa2a24cbcd5c9",
+ "sha256": "1b7javiqbcfzh1xkrjld9f5xrmld69gvnjz72mqpqmzbilfvmdpq"
+ }
+ },
+ {
+ "ename": "flycheck-pact",
+ "commit": "0ffc77b2ddcd4f9c27a2306459cf2fcde7880e3e",
+ "sha256": "1nxmh6p2id4cxzs7jxdrk88g8qmvk33nbzmrqhm7962iqizlvnrw",
+ "fetcher": "github",
+ "repo": "kadena-io/flycheck-pact",
+ "unstable": {
+ "version": [
+ 20180920,
+ 2052
+ ],
+ "deps": [
+ "flycheck",
+ "pact-mode"
+ ],
+ "commit": "0e10045064ef89ec8b6f5a473073d47b976a2ca3",
+ "sha256": "072jc0vrjg531ydk5bjrjpmbvdk81yw75jqjnvb7alkib6jn5f9r"
+ }
+ },
+ {
+ "ename": "flycheck-perl6",
+ "commit": "2f6ecdb2ce6bc74a27dca01ab4942778e986ac8f",
+ "sha256": "0czc0fqx7g543afzkbjyz4bhxfl4s3v5swn9xrkayv8cgk8acvp4",
+ "fetcher": "github",
+ "repo": "hinrik/flycheck-perl6",
+ "unstable": {
+ "version": [
+ 20180509,
+ 2201
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "b804702305d7a6e26f762ff98cfdeec2e9dd4cb7",
+ "sha256": "0gys38rlx9lx35bia6nj7kfhz1v5xfrirgf8adwk7b2hfjazrsib"
+ }
+ },
+ {
+ "ename": "flycheck-pest",
+ "commit": "f0c1b89d79456ecaa22b95f3c292799f5d1aa133",
+ "sha256": "06nvryshinagp26idjcb1r98k39x4k82cjj735l9kiwpiag53ash",
+ "fetcher": "github",
+ "repo": "ksqsf/pest-mode",
+ "unstable": {
+ "version": [
+ 20200317,
+ 1503
+ ],
+ "deps": [
+ "flycheck",
+ "pest-mode"
+ ],
+ "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+ "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "flycheck",
+ "pest-mode"
+ ],
+ "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+ "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+ }
+ },
+ {
+ "ename": "flycheck-phpstan",
+ "commit": "5a2b6cc39957e6d7185bd2bdfa3755e5b1f474a6",
+ "sha256": "1dr0h6cnwxdjmhlackv4gpsljwzs27gk41p8q99r0m44dada9gaf",
+ "fetcher": "github",
+ "repo": "emacs-php/phpstan.el",
+ "unstable": {
+ "version": [
+ 20200411,
+ 531
+ ],
+ "deps": [
+ "flycheck",
+ "phpstan"
+ ],
+ "commit": "e675cf0881408e10b76f2e70c6158237cb94671e",
+ "sha256": "11qd0mpcvc56hghwv60a57d5pap19s7yvlvi6827wnrq35cyzh7f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "flycheck",
+ "phpstan"
+ ],
+ "commit": "bf9e82a63f2ccb12af02c9e79a83e7989eeb7cb1",
+ "sha256": "15kv5xv6lcfgf048wr2zsnpvrplbxypy3wq56zvrzbq18hwprqg1"
+ }
+ },
+ {
+ "ename": "flycheck-pkg-config",
+ "commit": "5b2e88f2f126c9ff8b4261d6adb4c0d8d3049f33",
+ "sha256": "0w7h4fa4mv8377sdbkilqcw4b9qda98c1k01nxic7a8i3iyq02d6",
+ "fetcher": "github",
+ "repo": "Wilfred/flycheck-pkg-config",
+ "unstable": {
+ "version": [
+ 20200409,
+ 501
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "s"
+ ],
+ "commit": "b76b24ea1f4800f5fb96ce9c6c4788e0e63133d3",
+ "sha256": "01wzzrpfgh3z28qsynxvkfm92xy98vyvkkv31qh53kxxdicnzlh0"
+ }
+ },
+ {
+ "ename": "flycheck-plantuml",
+ "commit": "65f050860a0efda8cf472c2945b79a0a57651556",
+ "sha256": "01l22isiym635471628b951n025ls3lm6gfhfp6f8n8w7v1sb986",
+ "fetcher": "github",
+ "repo": "alexmurray/flycheck-plantuml",
+ "unstable": {
+ "version": [
+ 20171018,
+ 111
+ ],
+ "deps": [
+ "flycheck",
+ "plantuml-mode"
+ ],
+ "commit": "183be89e1dbba0b38237dd198dff600e0790309d",
+ "sha256": "1fbdbpwrlkvbgv693ndr3zamkf3gp28v94jg911fsav8bk08f6pq"
+ }
+ },
+ {
+ "ename": "flycheck-pony",
+ "commit": "0ef333f9ea8ec691b65e7fbd286fb7f1ddbe5381",
+ "sha256": "0y5nwfjyb3cvyq7a22r5cwfasfnzalsqvbv61bvdirdamn290nc3",
+ "fetcher": "github",
+ "repo": "ponylang/flycheck-pony",
+ "unstable": {
+ "version": [
+ 20190227,
+ 235
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "43421fb43ab4fec759061a11e9d9166bb7da013d",
+ "sha256": "03byayxvhrkm88s7157cfzi91ziggs872yis9ys04ndk1pdf940f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "9356cbcd404eaf381ab0c4b0f9c47232f723fa7e",
+ "sha256": "1rzz3cl0pxn3hhrkxcdiy17wl4dzbn8kxm3hq90zmhag1gbfy4zz"
+ }
+ },
+ {
+ "ename": "flycheck-popup-tip",
+ "commit": "9b2269ee9532bb092756ae0c0693cb44b73820e8",
+ "sha256": "1j8pgljnxcbfh08qpbr9jkw56l7d6k8lmdcsjbi6jd7jmyqbqvnx",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-popup-tip",
+ "unstable": {
+ "version": [
+ 20170812,
+ 2351
+ ],
+ "deps": [
+ "flycheck",
+ "popup"
+ ],
+ "commit": "ef86aad907f27ca076859d8d9416f4f7727619c6",
+ "sha256": "1bi6f9nm4bylsbjv4qnkar35s6xzdf2cc2cxi3g691p9527apdz6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 12,
+ 2
+ ],
+ "deps": [
+ "flycheck",
+ "popup"
+ ],
+ "commit": "ef86aad907f27ca076859d8d9416f4f7727619c6",
+ "sha256": "1bi6f9nm4bylsbjv4qnkar35s6xzdf2cc2cxi3g691p9527apdz6"
+ }
+ },
+ {
+ "ename": "flycheck-pos-tip",
+ "commit": "698843f75e17b9e6160487c0153f9d6b4af288f6",
+ "sha256": "09i2jmwj8b915fhyczwdb1j7c551ggbva33avis77ga1s9v3nsf9",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-pos-tip",
+ "unstable": {
+ "version": [
+ 20200516,
+ 1600
+ ],
+ "deps": [
+ "flycheck",
+ "pos-tip"
+ ],
+ "commit": "dc57beac0e59669926ad720c7af38b27c3a30467",
+ "sha256": "15h4m5cfk0vh1g630vlwfxmcpa1jdalrrldnvijsqla99mb2jm1w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "flycheck",
+ "pos-tip"
+ ],
+ "commit": "3f1d5297fdff44a14ee624160eefdc678e2bd0bd",
+ "sha256": "0qxx3xdgk5l793yg5ffbi5qhrxrf6akwdz93n2vibpkdjkvzyh2y"
+ }
+ },
+ {
+ "ename": "flycheck-posframe",
+ "commit": "124f2a7833e3386a0bf57c8111d782ae7a7ee02e",
+ "sha256": "02ym2isn761w2nsfxiqjh0jk4md9wy3hk9na2aw7pyycm5cgmfwp",
+ "fetcher": "github",
+ "repo": "alexmurray/flycheck-posframe",
+ "unstable": {
+ "version": [
+ 20200817,
+ 412
+ ],
+ "deps": [
+ "flycheck",
+ "posframe"
+ ],
+ "commit": "c928b5b5424fe84a0b346e28bd7d461c80b27482",
+ "sha256": "1prjqqhzzaznbsysdipgvcinl3zkbgf19rb061h5mrqbgjw1l8f4"
+ }
+ },
+ {
+ "ename": "flycheck-prospector",
+ "commit": "45475a408ff287f4f9d2a8bc729b995635579c84",
+ "sha256": "1z028qi40pk7jh0m8w332kr5qi6k6sw1kbymqdxxfakh1976fww9",
+ "fetcher": "github",
+ "repo": "chocoelho/flycheck-prospector",
+ "unstable": {
+ "version": [
+ 20180524,
+ 450
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "92f2680573290ba4a69a2d6e140f44680efce6a8",
+ "sha256": "00jlw18y68yq0fyvfzhvw89a4nmv1ah4c8h4d6g79rl5djnb48hk"
+ }
+ },
+ {
+ "ename": "flycheck-psalm",
+ "commit": "148d9b28e683a6602bb18eecaaf3cbc8dede65b1",
+ "sha256": "1a8mvf268bbfg6f557xdmhwa8ihi2misy8ps30kkia9asb176smz",
+ "fetcher": "github",
+ "repo": "emacs-php/psalm.el",
+ "unstable": {
+ "version": [
+ 20200510,
+ 1540
+ ],
+ "deps": [
+ "flycheck",
+ "psalm"
+ ],
+ "commit": "b2a1e8a9524b0004e62996c70da5536f86e56182",
+ "sha256": "0r0qz5bdznzdj7zxq6a6fz7fwn2c978bq57yywj3fcy8f5vh8jcf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "flycheck",
+ "psalm"
+ ],
+ "commit": "aaa77b4ceb61d41a520baa0b84b9b236c99c4156",
+ "sha256": "1fnr8sbx74c4mdz91y6b4m0n6njjb0qa01r4i9975q197vwzni48"
+ }
+ },
+ {
+ "ename": "flycheck-pycheckers",
+ "commit": "af36dca316b318d25d65c9e842f15f736e19ea63",
+ "sha256": "18ski3bp8x33589pc273i5ia3hffvlb4czrd97wkfgr4k59ww6yq",
+ "fetcher": "github",
+ "repo": "msherry/flycheck-pycheckers",
+ "unstable": {
+ "version": [
+ 20200807,
+ 610
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "055830b67cd0f0d7196a5b71bd5cce3197a557a7",
+ "sha256": "1zw6993a8l7yf3j8dbagmj051m1z8cdax2pzm0l2p2dxvkm0h4s2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 15
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "44b11b51c97fd334ecdce74169c0e65123ef5991",
+ "sha256": "08wsr0hrmbh24bzsd2ghc82mp4m31ms3aykv0x68vpspzm06yyi3"
+ }
+ },
+ {
+ "ename": "flycheck-pyflakes",
+ "commit": "05e6f3041151006e44f91e5bcbaa7be3750fb403",
+ "sha256": "186h5ky48i1xmjbvvhn1i0rzhsy8bgdv1d8f7rlr2z4brb52f9c1",
+ "fetcher": "github",
+ "repo": "Wilfred/flycheck-pyflakes",
+ "unstable": {
+ "version": [
+ 20170330,
+ 2311
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "61b045939e3743b2162b7e4e73249c66fc2b8f65",
+ "sha256": "03p0666vpprp6ijkvx9ypaw58bdq42gh533270plv2k5l8r22cl1"
+ }
+ },
+ {
+ "ename": "flycheck-pyre",
+ "commit": "aca6199ebfbf93f844c8f7a3db785dec079ef8af",
+ "sha256": "0h7ccxw9ymlmr2vq3p61cbfxfcjs8pzm73654s13c18rbl6dzfxv",
+ "fetcher": "github",
+ "repo": "linnik/flycheck-pyre",
+ "unstable": {
+ "version": [
+ 20190215,
+ 1222
+ ],
+ "deps": [
+ "cl-lib",
+ "flycheck"
+ ],
+ "commit": "0560122caae207d99d8af1ac2b4e5d6f6a1ce444",
+ "sha256": "0f58127197q6yfylz53nigyn7v91pcsdd91ywfgq5lrl0f5fvmdy"
+ }
+ },
+ {
+ "ename": "flycheck-relint",
+ "commit": "e20128460e942a78a88bd9e6389a8fcbb14343ad",
+ "sha256": "1q443078jf6cxzwxz6mc4m9drzfcd86q0lcw5vszmfyzn35nwyzb",
+ "fetcher": "github",
+ "repo": "purcell/flycheck-relint",
+ "unstable": {
+ "version": [
+ 20200721,
+ 2217
+ ],
+ "deps": [
+ "flycheck",
+ "relint"
+ ],
+ "commit": "86ebb4dac919eda01341b15b9c896742b9d17c30",
+ "sha256": "1k638y125xyb0bc5i2zrkypwb770jn1ndky6qak31n4ws41xynbd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "flycheck",
+ "relint"
+ ],
+ "commit": "d1e54d4bfdb12d0b60a1b9a8c2b11799426ddc57",
+ "sha256": "095vxjy6aacvmav86sg8b43svlnad7h8a83nl830v4nynpmx3183"
+ }
+ },
+ {
+ "ename": "flycheck-rtags",
+ "commit": "3dea16daf0d72188c8b4043534f0833fe9b04e07",
+ "sha256": "00v6shfs7piqapmyqyi0fk3182rcfa3p8wr2cm5vqlrana13kbw4",
+ "fetcher": "github",
+ "repo": "Andersbakken/rtags",
+ "unstable": {
+ "version": [
+ 20191222,
+ 920
+ ],
+ "deps": [
+ "flycheck",
+ "rtags"
+ ],
+ "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+ "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 38
+ ],
+ "deps": [
+ "flycheck",
+ "rtags"
+ ],
+ "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
+ "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+ }
+ },
+ {
+ "ename": "flycheck-rust",
+ "commit": "68d8cdf3d225b13ebbbe5ce81a01366f33266aed",
+ "sha256": "1k0n0y6lbp71v4465dwq7864vp1qqyx7zjz0kssszcpx5gl1596w",
+ "fetcher": "github",
+ "repo": "flycheck/flycheck-rust",
+ "unstable": {
+ "version": [
+ 20190319,
+ 1546
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "let-alist",
+ "seq"
+ ],
+ "commit": "a139cd53c5062697e9ed94ad80b803c37d999600",
+ "sha256": "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "let-alist",
+ "seq"
+ ],
+ "commit": "a139cd53c5062697e9ed94ad80b803c37d999600",
+ "sha256": "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"
+ }
+ },
+ {
+ "ename": "flycheck-stan",
+ "commit": "e1d19cd6b80080aad5eff159c1bc7f7585bcd655",
+ "sha256": "15dxj6lklnavs3lfs8l7wq0wmqfmsss919cjw6jy8hgfbnf27wyx",
+ "fetcher": "github",
+ "repo": "stan-dev/stan-mode",
+ "unstable": {
+ "version": [
+ 20200221,
+ 2025
+ ],
+ "deps": [
+ "flycheck",
+ "stan-mode"
+ ],
+ "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+ "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
+ },
+ "stable": {
+ "version": [
+ 10,
+ 1,
+ 0
+ ],
+ "deps": [
+ "flycheck",
+ "stan-mode"
+ ],
+ "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
+ "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+ }
+ },
+ {
+ "ename": "flycheck-status-emoji",
+ "commit": "5abd6aaa8d2bf55ae75cd217820763531f91958b",
+ "sha256": "0p42424b1fsmfcjyl252vhblppmpjwd6br2yqh10fi60wmprvn2p",
+ "fetcher": "github",
+ "repo": "liblit/flycheck-status-emoji",
+ "unstable": {
+ "version": [
+ 20180330,
+ 2325
+ ],
+ "deps": [
+ "cl-lib",
+ "flycheck",
+ "let-alist"
+ ],
+ "commit": "4bd113ab42dec9544b66e0a27ed9008ce8148433",
+ "sha256": "0ldy9lhh6mirjz02pnrf7z235jz55k4sdysbqxjhfidsszvp9v6w"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "flycheck",
+ "let-alist"
+ ],
+ "commit": "4bd113ab42dec9544b66e0a27ed9008ce8148433",
+ "sha256": "0ldy9lhh6mirjz02pnrf7z235jz55k4sdysbqxjhfidsszvp9v6w"
+ }
+ },
+ {
+ "ename": "flycheck-swift",
+ "commit": "fd99bea06079c4231363c37e3361bd9e5b1ba490",
+ "sha256": "1s6rn4wyz9la6bw228jfxx8dxjyk5hf8r3vbmq0k808p772zki0z",
+ "fetcher": "github",
+ "repo": "swift-emacs/flycheck-swift",
+ "unstable": {
+ "version": [
+ 20170129,
+ 549
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "4c5ad401252400a78da395fd56a71e67ff8c2761",
+ "sha256": "094vpmpjq0skhkq634p3zgj3nmsiq1dl8k0z7hzafnaw2y157z1s"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "822d1415eabfd464adc52063f9c44da1c87f0ff9",
+ "sha256": "0gf7cxrsrf62kamm4xy1fi4v264szm6qk607ifg4bi5dmdc10b0k"
+ }
+ },
+ {
+ "ename": "flycheck-swift3",
+ "commit": "f1fb8c731c118327dc0bbb726e046fec46bcfb82",
+ "sha256": "05yfrn42svcvdkr8mx16ii8llhzn33lxdawksjqiqg671s6fgdpa",
+ "fetcher": "github",
+ "repo": "GyazSquare/flycheck-swift3",
+ "unstable": {
+ "version": [
+ 20191116,
+ 1113
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "62c93add8ff65d335f6ef8a3123d2d4f53339df5",
+ "sha256": "0jh8mb9zscj7bzvis6fplc142s7iqy6hhhwfy2lz34yp4n6ap1p0"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "62c93add8ff65d335f6ef8a3123d2d4f53339df5",
+ "sha256": "0jh8mb9zscj7bzvis6fplc142s7iqy6hhhwfy2lz34yp4n6ap1p0"
+ }
+ },
+ {
+ "ename": "flycheck-swiftlint",
+ "commit": "7e2a979726507e974a0a19dfc2ca6884157025be",
+ "sha256": "1nwxv4l3ml9hlc8qf8a8x1bnnvdj80sb8nfbkcfiqwak315wihr4",
+ "fetcher": "github",
+ "repo": "jojojames/flycheck-swiftlint",
+ "unstable": {
+ "version": [
+ 20180830,
+ 340
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "8861ddbd9c1c2a951630d9ea29162ad0916580cb",
+ "sha256": "0v1n9q5kcncd9dyfl0xwr378in8law41ciazdfd38ks0xjjppqvh"
+ }
+ },
+ {
+ "ename": "flycheck-swiftx",
+ "commit": "fe5b92702eb8bc9af8f344a4d34c91b69d1e38e2",
+ "sha256": "0f00iir9xxlckn51xs7k72j26jw404nnyyb3kc8wpmy55dhzshw3",
+ "fetcher": "github",
+ "repo": "nhojb/flycheck-swiftx",
+ "unstable": {
+ "version": [
+ 20200814,
+ 845
+ ],
+ "deps": [
+ "flycheck",
+ "xcode-project"
+ ],
+ "commit": "84f42393dea362d3bdfc9253a205a17ec7a12a76",
+ "sha256": "0v5km3hf58xysal526l4l2jpyibh0l6f367vwmn4zi64cl5hvf3p"
+ }
+ },
+ {
+ "ename": "flycheck-tcl",
+ "commit": "fafc86df6c15348711f16302bb86c0ee08c08454",
+ "sha256": "0rmc7rk0n4mgk11jgza1dn1nkjyi7rqs79d3p0cj1081znyj56f3",
+ "fetcher": "github",
+ "repo": "nwidger/flycheck-tcl",
+ "unstable": {
+ "version": [
+ 20180327,
+ 1259
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "7ca23f4673e178b9f5dcc8a82b86cf05b15d7236",
+ "sha256": "17mmj0yx7d7cwyq35ll1lw4j0yyha172375apvanrkpgpzjpnvrq"
+ }
+ },
+ {
+ "ename": "flycheck-tip",
+ "commit": "024f1e588e94014734fa252ee7bdb00b4991ede9",
+ "sha256": "0zab1zknrnsw5xh5pwzzcpz7p40bbywkf9zx99sgsd6b5j1jz656",
+ "fetcher": "github",
+ "repo": "yuutayamada/flycheck-tip",
+ "unstable": {
+ "version": [
+ 20171020,
+ 1048
+ ],
+ "deps": [
+ "flycheck",
+ "popup"
+ ],
+ "commit": "9b0072d92e6b4a52834bf5a34120a0f5e1c8c2fd",
+ "sha256": "1adcxz2chy0qcv5z79hhj05gdzk4l0jijy5iy9nd3sg8sclxf6nq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "flycheck",
+ "popup"
+ ],
+ "commit": "0bfddf52ae4ec48d970324f8336a5d62986bbc9e",
+ "sha256": "0azjr5mfb3hnb66m1b2319i035mn5i9qz24y7fj5crhnc9vp8w3s"
+ }
+ },
+ {
+ "ename": "flycheck-title",
+ "commit": "2996b70645cd6fd093e3b31b9586ce5acb036cf6",
+ "sha256": "1cxid9qmzy8pl8qkvr6kgvfqm05pjw8cxpz66x619hbkw2vr7sza",
+ "fetcher": "github",
+ "repo": "Wilfred/flycheck-title",
+ "unstable": {
+ "version": [
+ 20170216,
+ 2346
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "6faea67be8661faf8152217869d16e993cc2bc49",
+ "sha256": "08b2cq5bzmq9aa8b8glx5js2nhfpgdsd0r2sgvi0ij937yz8lf37"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "2b7a11c39420e517a07d0c95126455c1617f2c61",
+ "sha256": "07p3bwf4mvsdxvqwl9zd35rm6ax6ywqiy8gsh1ag3ygqbmd94cwy"
+ }
+ },
+ {
+ "ename": "flycheck-vale",
+ "commit": "7693eeb536e601589b49f96d0e2734cd08fad4f2",
+ "sha256": "1ny30q81hq62s178rj3jjwsf9f3988dd6pl82r0vq53z3asnsxyd",
+ "fetcher": "github",
+ "repo": "abingham/flycheck-vale",
+ "unstable": {
+ "version": [
+ 20190609,
+ 1533
+ ],
+ "deps": [
+ "flycheck",
+ "let-alist"
+ ],
+ "commit": "f08249535348d046d0974b9c20fe1b7dd3cd2660",
+ "sha256": "0xjaxckl5rajlxq9a4c9n8l4605n2xkkyd2sdj38kd9w9a428wvz"
+ }
+ },
+ {
+ "ename": "flycheck-vdm",
+ "commit": "f246b9dcf7915a845b9e2cd44cc1a0833b412c8f",
+ "sha256": "15ng1l8gfp8iz50yb5d39dy57763gd2x8j6z6rz0byiykgxhl9zg",
+ "fetcher": "github",
+ "repo": "peterwvj/vdm-mode",
+ "unstable": {
+ "version": [
+ 20190304,
+ 839
+ ],
+ "deps": [
+ "flycheck",
+ "vdm-mode"
+ ],
+ "commit": "89e7db6ee1a89b8c1f7ce36ce6800c32b5c4ba2d",
+ "sha256": "1vfqkfw39yg7379s6b28n8nyswv1jq7caljfbnyrndsag6z4j50k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "flycheck",
+ "vdm-mode"
+ ],
+ "commit": "e131edb0d35de28bd47d6128dd70d9a6fc46e0fa",
+ "sha256": "090a0imk7dr6vqq4lf806pvajqc499x2gmi0k7rgc1696rbyzhb5"
+ }
+ },
+ {
+ "ename": "flycheck-xcode",
+ "commit": "5fc66203fdd1721bf1a6f8dcec51694c57d2e690",
+ "sha256": "0n86hn6rf0mrx1385pwxgkx28xrbnksarlzb07h9d63s0yb5shaa",
+ "fetcher": "github",
+ "repo": "jojojames/flycheck-xcode",
+ "unstable": {
+ "version": [
+ 20180122,
+ 651
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "b76f872c8985801951a095b8b3c1572b94189f9e",
+ "sha256": "1mihq4w8vbcrazx81svx81dnb84ba5h93jxyvaxly5nxxjw1i5bj"
+ }
+ },
+ {
+ "ename": "flycheck-yamllint",
+ "commit": "932ee0a1f13a52d53102b90911da79145208cbb5",
+ "sha256": "1q2sy0hsbnwdlwq99wk8n5gi9fd8bs4jvi859np8bylbhhb3kj8m",
+ "fetcher": "github",
+ "repo": "krzysztof-magosa/flycheck-yamllint",
+ "unstable": {
+ "version": [
+ 20170325,
+ 1735
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "1e9fe3b2d3e42d551b94473816a8eeee637b446c",
+ "sha256": "1w7b6v1zlq8c95pddx6a2rffmgghv90dpnzz6vczg37hyad3a2np"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "aa211b1243168a4f752888c0014c5b9d2da178b1",
+ "sha256": "1dg2lymb53vp16isdc6k0gq1a43h7vjpksbacskyd4nwmsxaf2bm"
+ }
+ },
+ {
+ "ename": "flycheck-yang",
+ "commit": "e58b4f4294d11424918b399898c0044f5b76ab14",
+ "sha256": "0agfmirjwlz13aq1jh94agav0y1rxkyhj7mngdgys7mwjxy0ac9h",
+ "fetcher": "github",
+ "repo": "andaru/flycheck-yang",
+ "unstable": {
+ "version": [
+ 20180312,
+ 1831
+ ],
+ "deps": [
+ "flycheck",
+ "yang-mode"
+ ],
+ "commit": "47881fc42ef0163c47064b72b5d6dbef4f83d778",
+ "sha256": "0bkbl1pas44bl6s3xjdb5zjbd6bmfjk39md5ds1ix4wchnkjm3iy"
+ }
+ },
+ {
+ "ename": "flycheck-ycmd",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "114k5y3jy470g5zzhxy03036gcayc08n6g61cidlr2zlyq80glyr",
+ "fetcher": "github",
+ "repo": "abingham/emacs-ycmd",
+ "unstable": {
+ "version": [
+ 20181016,
+ 618
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "let-alist",
+ "ycmd"
+ ],
+ "commit": "bc81b992f79100c98f56b7b83caf64cb8ea60477",
+ "sha256": "0kwm5q2sv2xrsmnr0gc2fimp6b2cvwh5mhqsmcc3lgs32m4j1kwv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "let-alist",
+ "ycmd"
+ ],
+ "commit": "d042a673b4d717c3ca9d641f120bfe16c994c740",
+ "sha256": "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0"
+ }
+ },
+ {
+ "ename": "flymake-coffee",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1aig1d4fgjdg31vrg8k43z5hbqiydgfvxi45p1695s3kbdm8pr2d",
+ "fetcher": "github",
+ "repo": "purcell/flymake-coffee",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "dee295acf30820ed15fe0de17137d50bc27fc80c",
+ "sha256": "0706jbi3jcmffxmcpvh8w3007q8sh48kgrcjip5c9hhfqpagayld"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 12
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "d4ef325255ea36d1dd622f29284fe72c3fc9abc0",
+ "sha256": "1svj5n7mmzhq03azlv4n33rz0nyqb00qr8ihdbc8hh2xnp63j5rc"
+ }
+ },
+ {
+ "ename": "flymake-cppcheck",
+ "commit": "2a83d56c6e150de5d4fdbd89f271f18e5304afd8",
+ "sha256": "11brzgq2zl32a8a2dgj2imsldjqaqvxwk2jypf4bmfwa3mkcqh3d",
+ "fetcher": "github",
+ "repo": "senda-akiha/flymake-cppcheck",
+ "unstable": {
+ "version": [
+ 20140415,
+ 1257
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "7eac8c7b9c74ebb5e600686f1f3891767dc87bb2",
+ "sha256": "1xwpznllgz47f6h7mzwy601179sxdj6i8qvnfa6fn4cx4dz5z3iv"
+ }
+ },
+ {
+ "ename": "flymake-css",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0kqm3wn9symqc9ivnh11gqgq8ql2bhpqvxfm86d8vwm082hd92c5",
+ "fetcher": "github",
+ "repo": "purcell/flymake-css",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "de090163ba289910ceeb61b13368ce42d0f2dfd8",
+ "sha256": "18rqzah8p7mqwkddaav1d4r146amvn8jppazvsvc5vs01syj83m9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "3e56d47d3c53e39741aa4f702bb9fb827cce22ed",
+ "sha256": "054ws88fcfz3hf3cha7dvndm52v5n4jc4vzif1lif44xq0iggwqa"
+ }
+ },
+ {
+ "ename": "flymake-cursor",
+ "commit": "a02597edee67c84bef259d7fc5c5b61bd39a5b86",
+ "sha256": "0v5abg3h9kmybr0cyr7hqy4rn88h84snzxbsmqcbjw24s10v9p0s",
+ "fetcher": "github",
+ "repo": "flymake/emacs-flymake-cursor",
+ "unstable": {
+ "version": [
+ 20120322,
+ 1757
+ ],
+ "deps": [
+ "flymake"
+ ],
+ "commit": "ecc539082c3fc9e91bba33d72c26989217411593",
+ "sha256": "0cdf5m3rfwsim505qjyyml0r5zzqx7jrlc8ayfvix70f3bmxnibs"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "flymake"
+ ],
+ "commit": "5cac5045398b1436ceb143d48961b50d38ae1396",
+ "sha256": "0xaq8zfd90kqqwg8ik081jblrdyj6p3fh2xpf6a4sdj8826ry93v"
+ }
+ },
+ {
+ "ename": "flymake-diagnostic-at-point",
+ "commit": "b7ae169ca3b59d3b876d52148dac573b7f083ac3",
+ "sha256": "0cdxb9w5sq6z6wramj1bss5vwqzxkmdyzb1di39rghyh243cdrzx",
+ "fetcher": "github",
+ "repo": "meqif/flymake-diagnostic-at-point",
+ "unstable": {
+ "version": [
+ 20180815,
+ 1004
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "379616b1c6f5ebeaf08fbe54ae765008a78b3be7",
+ "sha256": "1wbzrxxz5z1xg2lwmqgglvixxf1xm3gl6mdyj9idsbym05azm3hg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "379616b1c6f5ebeaf08fbe54ae765008a78b3be7",
+ "sha256": "1wbzrxxz5z1xg2lwmqgglvixxf1xm3gl6mdyj9idsbym05azm3hg"
+ }
+ },
+ {
+ "ename": "flymake-easy",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0y7nm2p5x1f0nqfj73zr6xzbpf4wrzx8sn8154yx0qm0qh3id39v",
+ "fetcher": "github",
+ "repo": "purcell/flymake-easy",
+ "unstable": {
+ "version": [
+ 20140818,
+ 755
+ ],
+ "commit": "de41ea49503f71f997e5c359a2ad08df696c0147",
+ "sha256": "1mylcsklnv3q27q1gvf7wrila39rmxab1ypmvjh5p56d91y6pszc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10
+ ],
+ "commit": "2a24f260cdc3b9c8f9263b653a475d90efa1d392",
+ "sha256": "1j35k52na02b59yglfb48w6m5qzydvzqfsylb8ax5ks0f287yf0c"
+ }
+ },
+ {
+ "ename": "flymake-elixir",
+ "commit": "05dae578f0dd6b5185f666431b3f36aad3aeffa1",
+ "sha256": "15r3m58hnc75l3j02xdr8yg25fbn2sbz1295ac44widzis82m792",
+ "fetcher": "github",
+ "repo": "syl20bnr/flymake-elixir",
+ "unstable": {
+ "version": [
+ 20130810,
+ 1417
+ ],
+ "commit": "3810566cffe35d04cc3f01e27fe397d68d52f802",
+ "sha256": "04w6g4wixrpfidxbk2bwazhvf0cx3c2v2mxnycqqlqkg0m0sb0fn"
+ }
+ },
+ {
+ "ename": "flymake-eslint",
+ "commit": "1b607c3b859f4564e316532a256a299c73e5f6f0",
+ "sha256": "0avirxxgjk3k8hqpnhay83ij7s3xr4ha4wz5lji1zyx6f6im6gyb",
+ "fetcher": "github",
+ "repo": "orzechowskid/flymake-eslint",
+ "unstable": {
+ "version": [
+ 20191129,
+ 1558
+ ],
+ "commit": "6e2d376f84ddf9af593072954c97e9c82ab85331",
+ "sha256": "1pkigdarkjk2gpqjrfavg68bwihaazjzf1rr9fmrqkgis5hz3zf7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 0
+ ],
+ "commit": "6e2d376f84ddf9af593072954c97e9c82ab85331",
+ "sha256": "1pkigdarkjk2gpqjrfavg68bwihaazjzf1rr9fmrqkgis5hz3zf7"
+ }
+ },
+ {
+ "ename": "flymake-gjshint",
+ "commit": "b4673825b15519e9eb2204ade5cc045751771c52",
+ "sha256": "19jcd5z4883z3fzlrdn4fzmsvn16f4hfnhgw4vbs5b0ma6a8ka44",
+ "fetcher": "github",
+ "repo": "yasuyk/flymake-gjshint-el",
+ "unstable": {
+ "version": [
+ 20130327,
+ 1232
+ ],
+ "commit": "dc957c14cb060819585de8aedb330e24efa4b784",
+ "sha256": "14kbqyw4v1c51dx7pfgqbn8x4j8j3rgyyq2fa9klqzxpldcskl24"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "commit": "71495ee5303de18293decd57ab9f9abdbaabfa05",
+ "sha256": "002s01cymgx4z4l3j2pqirg7899pljdx2hmbz8k6cksdxlymzmkd"
+ }
+ },
+ {
+ "ename": "flymake-go",
+ "commit": "b42b8b34388803439c249f16fdf14257ef182ed6",
+ "sha256": "030m67d8g60ljm7ny3jh4vwj3cshypsklgbjpcvh32y109ga1hy1",
+ "fetcher": "github",
+ "repo": "robert-zaremba/flymake-go",
+ "unstable": {
+ "version": [
+ 20150714,
+ 733
+ ],
+ "commit": "ae83761aa908c1a50ff34af04f00dcc46bca2ce9",
+ "sha256": "03gh0y988pksghmmvb5av2vnlbcsncafvn4nwihsis0bhys8k28q"
+ }
+ },
+ {
+ "ename": "flymake-go-staticcheck",
+ "commit": "5c358f178a2debf621e11050334d5def87439230",
+ "sha256": "1rm63fgsn5iss1nbc33wc19g3lzzvrm97wgq9hgxvwq2j8m2y87i",
+ "fetcher": "github",
+ "repo": "s-kostyaev/flymake-go-staticcheck",
+ "unstable": {
+ "version": [
+ 20190708,
+ 1325
+ ],
+ "commit": "130079fcd29c3e2a72f8325f3041042bcc6286f1",
+ "sha256": "1wxsk6vy9hm8gi5cvhmxmqv9415q8k2yp8636s4fb1xcp1zalysk"
+ }
+ },
+ {
+ "ename": "flymake-golangci",
+ "commit": "76c98b2e204eb2a733295037cbf13b60d1cad97b",
+ "sha256": "13p29d7b3pchyiw1rbdaif7h6jhzfg635ix8z2kzkqg9bvkxxr7y",
+ "fetcher": "gitlab",
+ "repo": "shackra/flymake-golangci",
+ "unstable": {
+ "version": [
+ 20191028,
+ 1927
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "dfc31a1a6ae3f087b49fe6f5f21b3866780aa91c",
+ "sha256": "1py7ssjz4q5r28c8lzga5qi8x4gmdg3z0ga0cyskiba6krvv45ry"
+ }
+ },
+ {
+ "ename": "flymake-google-cpplint",
+ "commit": "01f8e5c2b63e80f0411860fde38bf694df3bfc8f",
+ "sha256": "0q7v70xbprh03f1yabq216q4q82a58s2c1ykr6ig49cg1jdgzkf3",
+ "fetcher": "github",
+ "repo": "senda-akiha/flymake-google-cpplint",
+ "unstable": {
+ "version": [
+ 20140205,
+ 1325
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "426e56ae1278d7a078c368e9d495003825ada0bd",
+ "sha256": "1gckz68050pj9pg7yn3wwn13x2nrv6y4ggswkgcyijxi7x0sqana"
+ }
+ },
+ {
+ "ename": "flymake-gradle",
+ "commit": "7cccc8537324e0faf7fd35325e3ccd3b2e05771a",
+ "sha256": "00wpymzw2j2zx37nq8qf77pk04r0hxlmlwykcj6yzq9bfgi75wnf",
+ "fetcher": "github",
+ "repo": "jojojames/flymake-gradle",
+ "unstable": {
+ "version": [
+ 20190315,
+ 233
+ ],
+ "commit": "dbedd29b78d4828ef57d4de20867be5df3eaab99",
+ "sha256": "0g6h09lz68b4dvqv5sksr7gkab0599fbm07xnc2mk01lzbas43b0"
+ }
+ },
+ {
+ "ename": "flymake-haml",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0dmdhh12h4xrx6mc0qrwavngk2sx0l4pfqkjjyavabsgcs9wlgp1",
+ "fetcher": "github",
+ "repo": "purcell/flymake-haml",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "22a81e8484734552d461e7ae7305664dc244447e",
+ "sha256": "0pgp2gl3wdwrzcik5b5csn4qp8iv6pc51brx8p7jrwn7bz4lkb82"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "343449920866238db343d61343bc845cc8bc5e1b",
+ "sha256": "1b3lf5jwan03k7rb97g4bb982dacdwsfdddnwc0inx9gs3qq1zni"
+ }
+ },
+ {
+ "ename": "flymake-haskell-multi",
+ "commit": "e879eca5eb11b2ae77ee2cb8d8150d85e9e93ebd",
+ "sha256": "0cyzmmghwkkv6020s6n436lwymi6dr49i7gkci5n0hw5pdywcaij",
+ "fetcher": "github",
+ "repo": "purcell/flymake-haskell-multi",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "b564a94312259885b1380272eb867bf52a164020",
+ "sha256": "1h21hy5fjwa5qxl31rq3jjp3wwkipdwaliq0ci184rw48kw51xjh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "d2c9aeffd33440d360c1ea0c5aef6d1f171599f9",
+ "sha256": "0k1qc0r0gr7f9l5if2a67cv4k73z5yxd6vxd6l1bqw500y0aajxz"
+ }
+ },
+ {
+ "ename": "flymake-hlint",
+ "commit": "17820f32d46e845cc44b237d0bfd5c2d898721de",
+ "sha256": "0wq1ijhn3ypy31yk8jywl5hnz0r0vlhcxjyznzccwqbdc5vf7b2x",
+ "fetcher": "github",
+ "repo": "purcell/flymake-hlint",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "f910736b26784efc9a2fa29503f45c1f1dd0aa38",
+ "sha256": "157f2l6hllwl12h8f502rq2kl33s202k9bcyfy2cmnn6vhky1b8s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "d540e250a80a09da3036c16bf86f9deb6d738c9c",
+ "sha256": "1ygg51r4ym4x7h4svizwllsvr72x9np6jvjqpk8ayv3w2fpb9l31"
+ }
+ },
+ {
+ "ename": "flymake-joker",
+ "commit": "1b40ad24abac91b6beb550e743cdcece8c3ab849",
+ "sha256": "1wflpdqdczjsvkqnlr6p4qv1s7865lr4gpm9aq7gcfqwb0fm7pbw",
+ "fetcher": "github",
+ "repo": "beetleman/flymake-joker",
+ "unstable": {
+ "version": [
+ 20200315,
+ 1429
+ ],
+ "deps": [
+ "flymake-quickdef"
+ ],
+ "commit": "fc132beedac9e6f415b72e578e77318fd13af9ee",
+ "sha256": "1pqi6d1kgn5s6bkabi8jxk26ffwqq7g3rl3xgas49rn9vgqwqmq1"
+ }
+ },
+ {
+ "ename": "flymake-jshint",
+ "commit": "144511ce3378b468751b1ee627b77a2d22fe8dfc",
+ "sha256": "0j4djylz6mrq14qmbm35k3gvvsw6i9qc4gd9ma4fykiqzkdjsg7j",
+ "fetcher": "github",
+ "repo": "Wilfred/flymake-jshint.el",
+ "unstable": {
+ "version": [
+ 20140319,
+ 2200
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "79dd554c227883c487db38ac111306c8d5382c95",
+ "sha256": "0ywm9fpb7d7ry2fly8719fa41q97yj9za3phqhv6j1chzaxvcv3a"
+ }
+ },
+ {
+ "ename": "flymake-jslint",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1cq8fni4p0qhigx0qh34ypmcsbnilra1ixgnrn9mgg8x3cvcm4cm",
+ "fetcher": "github",
+ "repo": "purcell/flymake-jslint",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "8edb82be605542b0ef62d38d818adcdde335eecb",
+ "sha256": "0i6bqpbibsbqhpqfy9zl0awiqkmddi3q8xlrslcjd429f0g5f1ad"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 23
+ ],
+ "commit": "30693f75059bab53a9d2eb676c68751f4d8b091c",
+ "sha256": "00zkm3wqlss386qd6jiq0siga7c48n5ykh0vf9q5v83rmpd79yri"
+ }
+ },
+ {
+ "ename": "flymake-json",
+ "commit": "acb0a4d29159aa6d74f754911f63152dac3425bd",
+ "sha256": "1p5kajiycpqy2id664bs0fb1mbf73a43qqfdi4c57n6j9x7fxp4d",
+ "fetcher": "github",
+ "repo": "purcell/flymake-json",
+ "unstable": {
+ "version": [
+ 20180511,
+ 911
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "ae58795f948402e987cda4c15f10354f8ec2d0fd",
+ "sha256": "1hr35xxj6w34h7xs13n6sxs69j3z3i0r1qim3hgyiym797xjsa0p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "ad8e482db1ad29e23bdd9d089b9bc3615649ce65",
+ "sha256": "0rzlw80mi39147yqnpzcvw9wvr5svksd3kn6s3w8191f2kc6xzzv"
+ }
+ },
+ {
+ "ename": "flymake-kondor",
+ "commit": "ca065538aa80cd33b08092d7787c6b4a1754fb31",
+ "sha256": "1wgd42g3rfdrf93isfk0z5r6naxibripad3ds08iv20qqcdryasd",
+ "fetcher": "github",
+ "repo": "turbo-cafe/flymake-kondor",
+ "unstable": {
+ "version": [
+ 20200714,
+ 646
+ ],
+ "deps": [
+ "flymake-quickdef"
+ ],
+ "commit": "530bf3e6c401d17f6b4f784a1f2524d5ba2d3414",
+ "sha256": "06adysd3q1gh92y0cdsnlmb588gdax85ad7pkmi324bixck5ggqx"
+ }
+ },
+ {
+ "ename": "flymake-ktlint",
+ "commit": "7b2e630e5e16044fb8ffe251f4fa58fb8f3d6bb9",
+ "sha256": "07v90pkhmrz59m6hf1lzxq4h3kk4qblihw4qgz5phbj4l5pahivd",
+ "fetcher": "github",
+ "repo": "jojojames/flymake-ktlint",
+ "unstable": {
+ "version": [
+ 20180831,
+ 346
+ ],
+ "commit": "56aab6f2d22061999050783dbc3166cdb456d0bb",
+ "sha256": "1nri5rq28plaq69a5k5kx65rzk8yyppyqpjhjicr7dqaa00ibnwy"
+ }
+ },
+ {
+ "ename": "flymake-less",
+ "commit": "6d4eae8b7b7d81ebf4d85f38fc3a17b4bc918318",
+ "sha256": "05k5daphxy94164c73ia7f4l1gv2cmlw8xzs8xnddg7ly22gjhi0",
+ "fetcher": "github",
+ "repo": "purcell/flymake-less",
+ "unstable": {
+ "version": [
+ 20151111,
+ 738
+ ],
+ "deps": [
+ "flymake-easy",
+ "less-css-mode"
+ ],
+ "commit": "32d3c28a9a5c52b82d1741ff9d715013b6498421",
+ "sha256": "0ggi8a4j4glpsar0sqg8q06rscajjaziis5ann31wphx88rc5wd7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "less-css-mode"
+ ],
+ "commit": "8cbb5e41c8f4b988cee3ef4449cfa9aea3540893",
+ "sha256": "0ggvmsjj6p6a7cwr2bzhlcf8ab4v6a2bz5djsscd2ryy570p367z"
+ }
+ },
+ {
+ "ename": "flymake-lua",
+ "commit": "63889df90a8cd4a39871cc43ccc559eff7b8dd5f",
+ "sha256": "05q6bifr1ywirk6sdn0pr812nlrzsi79bpbgn6ay4jyzmhhfi9z0",
+ "fetcher": "github",
+ "repo": "sroccaserra/flymake-lua",
+ "unstable": {
+ "version": [
+ 20170129,
+ 154
+ ],
+ "commit": "84589f20066921a5b79cf3a1f914a223a2552d2a",
+ "sha256": "1f4nigl65g1g5w15ddf33ypk2b07xph964pkdq1bw81451vmvzhn"
+ }
+ },
+ {
+ "ename": "flymake-perlcritic",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "1i0bc81cby2nsala2mhghzv7clhbf1gpp54vdxiq2wdanqy25vmk",
+ "fetcher": "github",
+ "repo": "flymake/emacs-flymake-perlcritic",
+ "unstable": {
+ "version": [
+ 20120328,
+ 814
+ ],
+ "deps": [
+ "flymake"
+ ],
+ "commit": "edfaa86500ddfa8a6a6f51f5581a81a821277df6",
+ "sha256": "1f4l2r4gp03s18255jawc7s5abpjjrw54937wzygmvzvqvmaiikj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 3
+ ],
+ "deps": [
+ "flymake"
+ ],
+ "commit": "0692d6ad5495f6e5438bde0a10345829b8e1def8",
+ "sha256": "11r982h5fhjkmm9ld8wfdip0ghinw523nm1w4fmy830g0bbkgkrq"
+ }
+ },
+ {
+ "ename": "flymake-pest",
+ "commit": "747e1b060e3aa78b91d61abcf2c9a4dc0d4aaf7e",
+ "sha256": "17bsvrd1g7d5b0z5psx0bvg2ym0bi7dh1vvl8a45dnzpig141f36",
+ "fetcher": "github",
+ "repo": "ksqsf/pest-mode",
+ "unstable": {
+ "version": [
+ 20200317,
+ 1503
+ ],
+ "deps": [
+ "pest-mode"
+ ],
+ "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+ "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "pest-mode"
+ ],
+ "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+ "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+ }
+ },
+ {
+ "ename": "flymake-php",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "12ds2l5kvs7fz38syp4amasbjkpqd36rlpajnb3xxll0hbk6vffk",
+ "fetcher": "github",
+ "repo": "purcell/flymake-php",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "c045d01e002ba5e09b05f40e25bf5068d02126bc",
+ "sha256": "03fk8kzlwbs9k91ra91r7djxlpv5mhbha33dnyz50sqwa52cg8ck"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "91f867e209011af31a2ca2d8f6874b994403bcb2",
+ "sha256": "0dzyid0av9icp77wv0zcsygpw46z24qibq1ra0iwnkzl3kqvkyzh"
+ }
+ },
+ {
+ "ename": "flymake-phpcs",
+ "commit": "6e4d444198f593cfb03c7ca84f3e90db13ef5a01",
+ "sha256": "0zzxi3c203fiw6jp1ar9bb9f28x2lg23bczgy8n5cicrq59jfsn9",
+ "fetcher": "github",
+ "repo": "senda-akiha/flymake-phpcs",
+ "unstable": {
+ "version": [
+ 20140713,
+ 631
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "bba25dbda15955b609ceae0893cf3be74ec67230",
+ "sha256": "1z6m3bggd3gmxvx92j16jmqm5h9jjxnmsd7adyf12ziy5n5rqcbc"
+ }
+ },
+ {
+ "ename": "flymake-phpstan",
+ "commit": "bc0ea837b6813002826d861acb7f3cc506c337ba",
+ "sha256": "0fg2skkzd9xn42a5jdxg69bjg0jw26p5jrq6i5v815vgisxfgjbv",
+ "fetcher": "github",
+ "repo": "emacs-php/phpstan.el",
+ "unstable": {
+ "version": [
+ 20200415,
+ 1637
+ ],
+ "deps": [
+ "phpstan"
+ ],
+ "commit": "e675cf0881408e10b76f2e70c6158237cb94671e",
+ "sha256": "11qd0mpcvc56hghwv60a57d5pap19s7yvlvi6827wnrq35cyzh7f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "phpstan"
+ ],
+ "commit": "bf9e82a63f2ccb12af02c9e79a83e7989eeb7cb1",
+ "sha256": "15kv5xv6lcfgf048wr2zsnpvrplbxypy3wq56zvrzbq18hwprqg1"
+ }
+ },
+ {
+ "ename": "flymake-puppet",
+ "commit": "302dbe34e7949da9c65e9c7bf2ab924db91b968f",
+ "sha256": "1izq6s33p74dy4wzfnjii8wjs723bm5ggl0w6hkvzgbmyjc01hxv",
+ "fetcher": "github",
+ "repo": "benprew/flymake-puppet",
+ "unstable": {
+ "version": [
+ 20170801,
+ 554
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "8a772395f4ccc59d883712ab53a92a17c1d9a429",
+ "sha256": "00w87qa7r8rigmpv58vpjwpn9x13sv7db5m6z4cqh76qkgkghgqi"
+ }
+ },
+ {
+ "ename": "flymake-python-pyflakes",
+ "commit": "49091c0eca4158b80269b6ff5f7f3fc8e981420b",
+ "sha256": "0asbjxv03zkbcjayanv13qzbv4z7b6fi0z1j6yv7fl6q9mgvm497",
+ "fetcher": "github",
+ "repo": "purcell/flymake-python-pyflakes",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "1d65c26bf65a5dcbd29fcd967e2feb90e1e7a33d",
+ "sha256": "0hsvw6rxg3k1ymrav0bf5q3siqr9v2jp4c4h1f98szrj2lp200fm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "78806a25b0f01f03df4210a79a6eaeec59511d7a",
+ "sha256": "0l8qpcbzfi32h3vy7iwydx3hg2w60x9l3v3rabzjx412m5d00gsh"
+ }
+ },
+ {
+ "ename": "flymake-quickdef",
+ "commit": "8e9d6121472d6a82ac5371bef7dc2dbe5acfc63f",
+ "sha256": "08w8i5rr3g7rwmrr29rah1rh68mpvfbabsik81vxlzpq1c7hhqk5",
+ "fetcher": "github",
+ "repo": "karlotness/flymake-quickdef",
+ "unstable": {
+ "version": [
+ 20200308,
+ 2342
+ ],
+ "commit": "150c5839768a3d32f988f9dc08052978a68f2ad7",
+ "sha256": "19gfd539l97j8xbrq1fw83b54mxbcamlz9m896088d3p01zf8b0g"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "150c5839768a3d32f988f9dc08052978a68f2ad7",
+ "sha256": "19gfd539l97j8xbrq1fw83b54mxbcamlz9m896088d3p01zf8b0g"
+ }
+ },
+ {
+ "ename": "flymake-racket",
+ "commit": "67f2b469ea8df6d0db6b9ece91f544c0e7dd3ab2",
+ "sha256": "173dyn8bxggyh0g97gg5f0si3905116i3k6s3islsblgrz00gjcn",
+ "fetcher": "github",
+ "repo": "jojojames/flymake-racket",
+ "unstable": {
+ "version": [
+ 20180912,
+ 109
+ ],
+ "commit": "d20fa60d66db3f7c2df0133814564ee5b36d2aba",
+ "sha256": "0fdrlzvznpqfyzy6v7rz4cj83fhdcpyhy37l7jjbb91cqqk2hjc2"
+ }
+ },
+ {
+ "ename": "flymake-ruby",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1shr6d03vx85nmyxnysglzlc1pz0zy3n28nrcmxqgdm02g197bzr",
+ "fetcher": "github",
+ "repo": "purcell/flymake-ruby",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "6c320c6fb686c5223bf975cc35178ad6b195e073",
+ "sha256": "0hzyxhg6y1rknvgj2ycivwrlrw7fznw9jrin5n9z627mzpjpfcnk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "e14e8e2abda223bd3920dbad0eefd5af5973ae6d",
+ "sha256": "0d2vmpgr5c2cbpxcqm5x1ckfysbpwcbaa9frcnp2yfp8scvkvqj0"
+ }
+ },
+ {
+ "ename": "flymake-rust",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0fgpkz1d4y2ywizwwrhqdqncdmhdnbgf3mcv3hjpa82x44yb7j32",
+ "fetcher": "github",
+ "repo": "jxs/flymake-rust",
+ "unstable": {
+ "version": [
+ 20170729,
+ 2139
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "2f42d1f2dad73ec9de460eda6176e3ab25c446f0",
+ "sha256": "02fgkv9hxwrv8n5h6izb5jyjcpazlf86pjjj4zkv1ycpa6gyzzwn"
+ }
+ },
+ {
+ "ename": "flymake-sass",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0sz6n5r9pdphgvvaljg9zdwj3dqayaxzxmb4s8x4b05c8yx3ba0d",
+ "fetcher": "github",
+ "repo": "purcell/flymake-sass",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "2de28148e92deb93bff3d55fe14e7c67ac476056",
+ "sha256": "05v83l05knqv2inharmhjvzmjskjlany7dnwp5dz44bvy0jhnm39"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "1c7664818db539de7f3dab396c013528a3f5b8b4",
+ "sha256": "0c74qdgy9c4hv3nyjnbqdzypbg9399vq3p5ngp5lasc7iz6vi0h8"
+ }
+ },
+ {
+ "ename": "flymake-shell",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "13ff4r0k29yqgx8ybxz7hh50cjsadcjb7pd0075s9xcrzia5x63i",
+ "fetcher": "github",
+ "repo": "purcell/flymake-shell",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "a16cf453056b9849cc7c912bb127fb0b08fc6dab",
+ "sha256": "1ki0zk5ijfkf4blavl62b55jnjzxw2b7blaxg51arpvvbflqmmlh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "ec097bd77db5523a04ceb15a128e01689d36fb90",
+ "sha256": "0c2lz1p91yhprmlbmp0756d96yiy0w92zf0c9vlp0i9abvd0cvkc"
+ }
+ },
+ {
+ "ename": "flymake-shellcheck",
+ "commit": "8dccb106ff6c9cb4b14440be9026c3e427dddff2",
+ "sha256": "1gvm4sh1sga3gkkg0zi7ynvp9b09sx16cclj2qzawmgfv2c111vy",
+ "fetcher": "github",
+ "repo": "federicotdn/flymake-shellcheck",
+ "unstable": {
+ "version": [
+ 20200329,
+ 2005
+ ],
+ "commit": "78956f0e5bb9c4d35989657a55929e8e3f5691e6",
+ "sha256": "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix"
+ }
+ },
+ {
+ "ename": "flymake-solidity",
+ "commit": "3b13f57b77f6648336a049a8dda37757d4dafd90",
+ "sha256": "10d1g14y3l670lqgfdsnyxanzcjs2jpgnliih56n1xhcpyz551l3",
+ "fetcher": "github",
+ "repo": "kootenpv/flymake-solidity",
+ "unstable": {
+ "version": [
+ 20170805,
+ 644
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "48bfe9525f764d8a68cc0270905dbf45bfd00bb8",
+ "sha256": "0v8sf5m0mygqahjyadxgffdf7p59wb0qnghyxajhc69sbg58hnnd"
+ }
+ },
+ {
+ "ename": "flymake-vala",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1fs4alyf3dckdf1pm6vgh4wjpl22wrlhfx9nv072l0dg48zgyw16",
+ "fetcher": "github",
+ "repo": "daniellawrence/flymake-vala",
+ "unstable": {
+ "version": [
+ 20150326,
+ 531
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "c3674f461fc84fb0300cd3a562fb903a59782745",
+ "sha256": "0qpr0frcn3w0f6yz8vgavwbxvn6wb0qkfk653v4cfy57dvslr4wf"
+ }
+ },
+ {
+ "ename": "flymake-vnu",
+ "commit": "0cfb4c70ebb75088ef6fb39efde91429802b4671",
+ "sha256": "05i6sfylg716cr0k0hyvkmag25qcqh51plljv6sw8250fwxwn0xn",
+ "fetcher": "github",
+ "repo": "theneosloth/flymake-vnu",
+ "unstable": {
+ "version": [
+ 20181128,
+ 216
+ ],
+ "commit": "7c4ab9d12611756ad5a80d866890b2f9b73fb611",
+ "sha256": "1jzdypfbvdbm9z6ankl35bzlpf32iymzlvxmdykddzwzbhkj1npf"
+ }
+ },
+ {
+ "ename": "flymake-yaml",
+ "commit": "888bcbcb24866abd990abd5b467461a1e1fc13fa",
+ "sha256": "17wghm797np4hlidf3wwb47w4klwc6qyk6ry1z05psl3nykws1g7",
+ "fetcher": "github",
+ "repo": "yasuyk/flymake-yaml",
+ "unstable": {
+ "version": [
+ 20130423,
+ 1548
+ ],
+ "deps": [
+ "flymake-easy"
+ ],
+ "commit": "24cb5b744a1796e554e6dbfc6eeb237d06a00b10",
+ "sha256": "0mdam39a85csi9b90wak9j3zkd25lj6x54affwkg3fym8yphmplm"
+ }
+ },
+ {
+ "ename": "flymd",
+ "commit": "07e4121f4cfaf4c33828f84b6b06f9cf2b64a0a2",
+ "sha256": "16wq34xv7hswbxw5w9wnnsw2mhc9qzhmaa6aydhh32blcszhp4rk",
+ "fetcher": "github",
+ "repo": "mola-T/flymd",
+ "unstable": {
+ "version": [
+ 20160617,
+ 1214
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "84d5a68bcfed4a295952c33ffcd11e880978d9d7",
+ "sha256": "0j2mmr9f0d3zkhb92zc820iw4vkz958rm3ca7l9k3gx37cc4sn2l"
+ }
+ },
+ {
+ "ename": "flyparens",
+ "commit": "8c4565ae5b84eb8733cb7fd28cf6a087fd1fedab",
+ "sha256": "1mvbfq062qj8vmgzk6rymg3idlfc1makfp1scmjvpw98h30j2a0a",
+ "fetcher": "github",
+ "repo": "jiyoo/flyparens",
+ "unstable": {
+ "version": [
+ 20140723,
+ 1846
+ ],
+ "commit": "af9b8cfd647d0e5f97684d613dc2eea7cfc19398",
+ "sha256": "07hy1kyw4cbxydmhp4scsy3dcbk2s50rmdp8rch1vbcjk5lj4mvb"
+ }
+ },
+ {
+ "ename": "flyspell-correct",
+ "commit": "fa06fbe3bc40ae5e3f6d10dee93a9d49e9288ba5",
+ "sha256": "0d2205h234na9s942s83yvkq89l9w9jnl5yfrxkkdiq8pw0dvymd",
+ "fetcher": "github",
+ "repo": "d12frosted/flyspell-correct",
+ "unstable": {
+ "version": [
+ 20200601,
+ 944
+ ],
+ "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+ "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "commit": "7b4cf8c9ba5ac65e3bb2b62f5b72d45f4c9cf7b6",
+ "sha256": "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"
+ }
+ },
+ {
+ "ename": "flyspell-correct-avy-menu",
+ "commit": "be7986f018c7029a8e581059bec31ed23a464e0a",
+ "sha256": "1mwdg1q7818kl5r9rnsqd11p9b2clcm0bxph4i1rll9rvggfgjp6",
+ "fetcher": "github",
+ "repo": "d12frosted/flyspell-correct",
+ "unstable": {
+ "version": [
+ 20200215,
+ 1337
+ ],
+ "deps": [
+ "avy-menu",
+ "flyspell-correct"
+ ],
+ "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+ "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "avy-menu",
+ "flyspell-correct"
+ ],
+ "commit": "7b4cf8c9ba5ac65e3bb2b62f5b72d45f4c9cf7b6",
+ "sha256": "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"
+ }
+ },
+ {
+ "ename": "flyspell-correct-helm",
+ "commit": "ef7b9302d8f804c77eb81fee7ed27f13cb1176f6",
+ "sha256": "18s2bzszy6x31avqg7j2lsll2cf4asb8njwhmx4mm215agack976",
+ "fetcher": "github",
+ "repo": "d12frosted/flyspell-correct",
+ "unstable": {
+ "version": [
+ 20200215,
+ 1337
+ ],
+ "deps": [
+ "flyspell-correct",
+ "helm"
+ ],
+ "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+ "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "flyspell-correct",
+ "helm"
+ ],
+ "commit": "7b4cf8c9ba5ac65e3bb2b62f5b72d45f4c9cf7b6",
+ "sha256": "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"
+ }
+ },
+ {
+ "ename": "flyspell-correct-ivy",
+ "commit": "ef7b9302d8f804c77eb81fee7ed27f13cb1176f6",
+ "sha256": "1n5iyab6bj761w6vxncyqvqzwh9k60pzq5f2n00ifrz74pqs537i",
+ "fetcher": "github",
+ "repo": "d12frosted/flyspell-correct",
+ "unstable": {
+ "version": [
+ 20200513,
+ 708
+ ],
+ "deps": [
+ "flyspell-correct",
+ "ivy"
+ ],
+ "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+ "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "flyspell-correct",
+ "ivy"
+ ],
+ "commit": "7b4cf8c9ba5ac65e3bb2b62f5b72d45f4c9cf7b6",
+ "sha256": "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"
+ }
+ },
+ {
+ "ename": "flyspell-correct-popup",
+ "commit": "ef7b9302d8f804c77eb81fee7ed27f13cb1176f6",
+ "sha256": "1fr8ajwldcl58i8xm31dz1mjwbi9f4q8s58x5jrqhqha0x4p4h9l",
+ "fetcher": "github",
+ "repo": "d12frosted/flyspell-correct",
+ "unstable": {
+ "version": [
+ 20200204,
+ 521
+ ],
+ "deps": [
+ "flyspell-correct",
+ "popup"
+ ],
+ "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+ "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "flyspell-correct",
+ "popup"
+ ],
+ "commit": "7b4cf8c9ba5ac65e3bb2b62f5b72d45f4c9cf7b6",
+ "sha256": "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"
+ }
+ },
+ {
+ "ename": "flyspell-lazy",
+ "commit": "a082c2dc0458e3007a947923f5b97e88217199e8",
+ "sha256": "0lzazrhsfh5m7n57dzx0v46d5mg87wpwwkjzf5j9gpv1mc1xfg1y",
+ "fetcher": "github",
+ "repo": "rolandwalker/flyspell-lazy",
+ "unstable": {
+ "version": [
+ 20180224,
+ 2106
+ ],
+ "commit": "3ebf68cc9eb10c972a2de8d7861cbabbbce69570",
+ "sha256": "1n67y90vm041mz172gjqypw3b5za5f18sic54h7wz4a9naynwyb6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 10
+ ],
+ "commit": "31786fe04a4732d2f845e1c7e96fcb030182ef10",
+ "sha256": "1g09s57b773nm9xqslzbin5i2h18k55nx00s5nnkvx1qg0n0mzkm"
+ }
+ },
+ {
+ "ename": "flyspell-popup",
+ "commit": "186d00724137c055b521a5f5c54acf71c4b16c32",
+ "sha256": "0wp15ra1ry6xpwal6mb53ixh3f0s4nps0rdyfli7hhaiwbr9bhql",
+ "fetcher": "github",
+ "repo": "xuchunyang/flyspell-popup",
+ "unstable": {
+ "version": [
+ 20170529,
+ 815
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "29311849bfd253b9b689bf331860b4c4d3bd4dde",
+ "sha256": "0x7jilwb0fgzsr7ma59sgd0d4122cl0hwzr28vi3z5s8wdab7nc4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "29311849bfd253b9b689bf331860b4c4d3bd4dde",
+ "sha256": "0x7jilwb0fgzsr7ma59sgd0d4122cl0hwzr28vi3z5s8wdab7nc4"
+ }
+ },
+ {
+ "ename": "fm-bookmarks",
+ "commit": "1ca020aff7f19cc150cd6968ae7c441372e240c2",
+ "sha256": "12ami0k6rfwhrr6xgj0dls4mkk6dp0r9smwzhr4897dv0lw89bdj",
+ "fetcher": "github",
+ "repo": "kuanyui/fm-bookmarks.el",
+ "unstable": {
+ "version": [
+ 20170104,
+ 1716
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "11dacfd16a926bfecba96a94c6b13e162c7717f7",
+ "sha256": "0is4617ivga8qrw19y7fy883fgczzdxvrl15ja1dydzj2cbn5d97"
+ }
+ },
+ {
+ "ename": "fn",
+ "commit": "6d2929604b6dd21d6cf425643927a9c216801dc1",
+ "sha256": "0cb98rxdb6sd0kws6bc4pa536kiyw3yk0hlfqcm3ps81hcgqjhhn",
+ "fetcher": "github",
+ "repo": "troyp/fn.el",
+ "unstable": {
+ "version": [
+ 20170210,
+ 204
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "f685fd0c08ec3b1d1b9974b37e62edd78a000cb8",
+ "sha256": "1k8pwlpcvlwr4pavg85ja8hdc7rrbafqs1mhhqr5gbq8cp822sja"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "2842e3c6d1b5c96184fa638c37b25ce5b347a1a6",
+ "sha256": "0kxpy87f44gkfzrnhcrprca0irkpddpbw7wbrm4aidw0synpab91"
+ }
+ },
+ {
+ "ename": "focus",
+ "commit": "4e8f1217224514f9b048b7101c89e3b1a305821e",
+ "sha256": "0jw26j8npyl3dgsrs7ap2djxmkafn2hl6gfqvi7v76bccs4jkyv8",
+ "fetcher": "github",
+ "repo": "larstvei/Focus",
+ "unstable": {
+ "version": [
+ 20191209,
+ 2210
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0",
+ "sha256": "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0",
+ "sha256": "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw"
+ }
+ },
+ {
+ "ename": "focus-autosave-mode",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "10cd1x5b1w7apgxd2kq45lv0jlj7az4zmn2iz4iymf2r2hancrcd",
+ "fetcher": "github",
+ "repo": "Vifon/focus-autosave-mode.el",
+ "unstable": {
+ "version": [
+ 20160519,
+ 2116
+ ],
+ "commit": "2e0844fabb6f0dc9e0f31928e4785febf38b9e35",
+ "sha256": "08wibc6rzy5qj3anzd076ncjd8wwr4vpak7fdjv29aai1gkzsc9j"
+ }
+ },
+ {
+ "ename": "foggy-night-theme",
+ "commit": "65b3f5959241e601fdf9469e407d153cebcbe24c",
+ "sha256": "03x3dhkk81d2zh9nflq6wd7v3khpy9046v8qhq4i9dw6davvy9j4",
+ "fetcher": "github",
+ "repo": "mswift42/foggy-night-theme",
+ "unstable": {
+ "version": [
+ 20190123,
+ 1614
+ ],
+ "commit": "14894e06ee5c6e14db36f2cb07387ee971c1736f",
+ "sha256": "1rjhb8gjlnw002y8sjn2d976qdsjgvp9hsrlca1h5wmmkfha9knp"
+ }
+ },
+ {
+ "ename": "fold-dwim",
+ "commit": "62064e272a658d998b1ccf13dc3c2e3e454acade",
+ "sha256": "1k5186s69qahwbzvwq70af3bkcglls9a82c5jw5mdw3ic8k631sh",
+ "fetcher": "github",
+ "repo": "emacsattic/fold-dwim",
+ "unstable": {
+ "version": [
+ 20140208,
+ 1637
+ ],
+ "commit": "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b",
+ "sha256": "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "4764b0246a722d37eb8ec9f204ffaccaad1755d0",
+ "sha256": "1k8z30imlxvqm7lv12kgqdfgc5znxyvl9jxi8j2ymmwlgy11f726"
+ }
+ },
+ {
+ "ename": "fold-dwim-org",
+ "commit": "97d22d9feaf521ce576b80d2933ecbc166c1dbe7",
+ "sha256": "0812p351rzvqcfn00k92nfhlg3y772y4z4b9f0xqnpa935y6harn",
+ "fetcher": "github",
+ "repo": "mattfidler/fold-dwim-org",
+ "unstable": {
+ "version": [
+ 20131203,
+ 1351
+ ],
+ "deps": [
+ "fold-dwim"
+ ],
+ "commit": "c09bb2b46d65afbd1d0febc6fded7495be7a3037",
+ "sha256": "14jvbkahwvv4wb0s9vp8gqmlpv1d4269j5rsjxn79q5pawjzslxw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "fold-dwim"
+ ],
+ "commit": "c09bb2b46d65afbd1d0febc6fded7495be7a3037",
+ "sha256": "14jvbkahwvv4wb0s9vp8gqmlpv1d4269j5rsjxn79q5pawjzslxw"
+ }
+ },
+ {
+ "ename": "fold-this",
+ "commit": "9853fcb99bd8717c77fa2b3bafb6e85d0d5d491c",
+ "sha256": "1iri4a6ixw3q7qr803cj2ik7rvmww1b6ybj5q2pvkf1v25r8655d",
+ "fetcher": "github",
+ "repo": "magnars/fold-this.el",
+ "unstable": {
+ "version": [
+ 20191107,
+ 1816
+ ],
+ "commit": "c3912c738cf0515f65162479c55999e2992afce5",
+ "sha256": "0cnfkz2bjyk0fkbxa80h500f7pig7q0rdifmj56d4whzhg2jsicg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "90b41d7b588ab1c3295bf69f7dd87bf31b543a6a",
+ "sha256": "1cbabpyp66nl5j8yhyj2jih4mhaljxvjh9ij05clai71z4598ahn"
+ }
+ },
+ {
+ "ename": "folding",
+ "commit": "1912296b7879019bea5ba8353d511496e3a9ca2d",
+ "sha256": "0rb4f4llc4z502znmmc0hfi7n07lp01msx4y1iyqijvqzlq2i93y",
+ "fetcher": "github",
+ "repo": "jaalto/project-emacs--folding-mode",
+ "unstable": {
+ "version": [
+ 20190524,
+ 1632
+ ],
+ "commit": "a1361aa154b27bd4db2e1cfe6c3b81b4fc1fdc9a",
+ "sha256": "0ghj0nw2zlrppsgl6x2nda9fj4w04rz6647v9823wxhfirrgnd5z"
+ }
+ },
+ {
+ "ename": "font-lock-profiler",
+ "commit": "b372892a29376bc3f0101ea5865efead41e1df26",
+ "sha256": "089r74jgi5gwjk9w1bc600vkj0p5ac84rgcl7aqcpqfbh9ylwcp9",
+ "fetcher": "github",
+ "repo": "Lindydancer/font-lock-profiler",
+ "unstable": {
+ "version": [
+ 20170208,
+ 2008
+ ],
+ "commit": "6e096458416888a4f63cca0d6bc5965a052753c8",
+ "sha256": "186fvyfbakz54fr8j1l7cijvaklw96m1hfbjyw7nha08zc2m1hw5"
+ }
+ },
+ {
+ "ename": "font-lock-studio",
+ "commit": "f8046fef1ac09cac1113dd5d0a6e1bf8e0c77bb1",
+ "sha256": "0swwbfaypc78cg4ak24cc92kgxmr1x9vcpaw3jz4zgpm2wzbgmrq",
+ "fetcher": "github",
+ "repo": "Lindydancer/font-lock-studio",
+ "unstable": {
+ "version": [
+ 20170127,
+ 2051
+ ],
+ "commit": "12c35967b31233e06946c70627aa3152dacfe261",
+ "sha256": "0q0s6f5vi3sfifj7vq2nnsmgyyivp1sd3idk32858md5ri71qif0"
+ }
+ },
+ {
+ "ename": "font-utils",
+ "commit": "2af0a1644116e89c5a705ffe0885ffe3ee874eaf",
+ "sha256": "0k33jdchjkj7j211a23kfp5axg74cfsrrq4axsb1pfp124swh2n5",
+ "fetcher": "github",
+ "repo": "rolandwalker/font-utils",
+ "unstable": {
+ "version": [
+ 20150806,
+ 1751
+ ],
+ "deps": [
+ "pcache",
+ "persistent-soft"
+ ],
+ "commit": "9192d3f8ee6a4e75f34c3fed10378674cc2b11d3",
+ "sha256": "1k90w8v5rpswqb8fn1cc8sq5w12gf4sn6say5dhvqd63512b0055"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 8
+ ],
+ "deps": [
+ "pcache",
+ "persistent-soft"
+ ],
+ "commit": "9192d3f8ee6a4e75f34c3fed10378674cc2b11d3",
+ "sha256": "1k90w8v5rpswqb8fn1cc8sq5w12gf4sn6say5dhvqd63512b0055"
+ }
+ },
+ {
+ "ename": "fontawesome",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1xqq0ndq6hndpyar11qlylkdgqpq5kxhbayyjbad3vbm6r5i9nri",
+ "fetcher": "github",
+ "repo": "emacsorphanage/fontawesome",
+ "unstable": {
+ "version": [
+ 20170305,
+ 1356
+ ],
+ "commit": "a743f80bfd53767ca9ee32da34c5ca032172a480",
+ "sha256": "1mkyd2bbyd9avw2qaidkzkpv8i7lfiv9189bj49dxklg92823sip"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "72b4f2f83c7fdacd225aee58f93acefc53166626",
+ "sha256": "1icwjd1rbyr1g8ifyhvpi21wjff2qrddq2rmp5lmiajnwrlfli0d"
+ }
+ },
+ {
+ "ename": "fontify-face",
+ "commit": "72bd6750dd5a7d9ed6e408e690f76c260ffd7d9e",
+ "sha256": "1w7xlkladqkbh7gpnkbi53a7k9p5wzma4y9jgwbc58hng9ggm1k0",
+ "fetcher": "github",
+ "repo": "Fuco1/fontify-face",
+ "unstable": {
+ "version": [
+ 20180420,
+ 1624
+ ],
+ "commit": "30ec0134f04d2b156bbc772e94edfa1a31ef0a58",
+ "sha256": "1i7hc436230dn68q2r7das7rgg8x0j3h43sv23krrg4qr0n0v07y"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "fc3325c98427523d86f0b411e0515cec51ac3d8a",
+ "sha256": "1zfld9a17xhisfwhmfxvx1x63ksl6jg5g99kbivj4nq70sf26dpw"
+ }
+ },
+ {
+ "ename": "forecast",
+ "commit": "a7ea18a56370348715dec91f75adc162c800dd10",
+ "sha256": "0zng8xdficpfccq484pghzg8yylihcy8aq0vpxd1w6l40m2qf6zn",
+ "fetcher": "github",
+ "repo": "cadadr/elisp",
+ "unstable": {
+ "version": [
+ 20191004,
+ 1850
+ ],
+ "commit": "61a14d1a8c17930caca5c5daf893cedc9c23c5f3",
+ "sha256": "0acq8d8vlx3hd405wmi5w36gg88bz1c1crmlxbd2whgi8kyf506z"
+ }
+ },
+ {
+ "ename": "foreign-regexp",
+ "commit": "d05514013948a520cf0dcaf1dc2ef2300dd55e98",
+ "sha256": "189cq8n759f28nx10fn3w4qbq7q49bb788kp9l70pj38jgnjn7n7",
+ "fetcher": "github",
+ "repo": "k-talo/foreign-regexp.el",
+ "unstable": {
+ "version": [
+ 20200325,
+ 50
+ ],
+ "commit": "e2dd47f2160cadc194eb156e7c76c3c869e6706e",
+ "sha256": "0bqhabpv992ss8rw3fgym6q5kq1d6b9ycs0a5ndgjpcz19rmlr66"
+ }
+ },
+ {
+ "ename": "foreman-mode",
+ "commit": "edeeb2b52ac70f8bdad38d3af62a7e434853c504",
+ "sha256": "0p3kwbld05wf3dwcv0k6ynz727fiy0ik2srx4js9wvagy57x98kv",
+ "fetcher": "github",
+ "repo": "zweifisch/foreman-mode",
+ "unstable": {
+ "version": [
+ 20170725,
+ 1422
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "s"
+ ],
+ "commit": "22b3bb13134b617870ed1e888af739f4818be929",
+ "sha256": "01qanhif24czcmhpdfkcjs019ss4r79f7y2wfbzmj6w4z7g3rikk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "s"
+ ],
+ "commit": "e90d2b56e83ab914f9ba9e78126bd7a534d5b8fb",
+ "sha256": "199kybf2bvywqfnwr5w893km82829k1j7sp079y6s2601hq8ylw9"
+ }
+ },
+ {
+ "ename": "forest-blue-theme",
+ "commit": "49b8686c31f863dde58d56cddf0baa7757a0c453",
+ "sha256": "1pcpwil883k4n5na7jpq7h8a8gw6mily1cj5n5rf25lqqnsz6fxa",
+ "fetcher": "github",
+ "repo": "olkinn/forest-blue-emacs",
+ "unstable": {
+ "version": [
+ 20160627,
+ 842
+ ],
+ "commit": "58096ce1a25615d2bae806c3775bae3e2775019d",
+ "sha256": "1qm74cfnc13wgv0c3657nd3xbgn492r24m5m2i0ipnpq49cddccf"
+ }
+ },
+ {
+ "ename": "forge",
+ "commit": "58c5ca46286712b2aa43e07bb5dcbc8b5eb321e8",
+ "sha256": "1ykpjgbi2yak9ww54wnm1gxj9zff2ggldg9msg3219r8frzjcnjv",
+ "fetcher": "github",
+ "repo": "magit/forge",
+ "unstable": {
+ "version": [
+ 20200725,
+ 1419
+ ],
+ "deps": [
+ "closql",
+ "dash",
+ "emacsql-sqlite",
+ "ghub",
+ "let-alist",
+ "magit",
+ "markdown-mode",
+ "transient"
+ ],
+ "commit": "feee7e2fce3f87f7aa113c5edcb1896127ee9d12",
+ "sha256": "1nn73hxhp7rziwdnnvz6avn1gkax531f4l72sk0v4ywdwjhnnlgs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "closql",
+ "dash",
+ "emacsql-sqlite",
+ "ghub",
+ "graphql",
+ "let-alist",
+ "magit",
+ "magit-popup",
+ "markdown-mode"
+ ],
+ "commit": "f5fc99935e2059ddede9766ce4bb96d99dcd203b",
+ "sha256": "0jipyqj3r4gkdwpcy0m5ij7x510r2admi8fbzwfysqyrwahs60nv"
+ }
+ },
+ {
+ "ename": "form-feed",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "0nh50lwr9jyi45sd4722nm2rmmc9zm9l8l55w4pjq61cfwldqq7p",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/form-feed.git",
+ "unstable": {
+ "version": [
+ 20200527,
+ 2152
+ ],
+ "commit": "fc06255e185d32b1616bd86b69b55c1daabbe378",
+ "sha256": "05yqyp20bvfk5n1nqyffv1k8l1zl1bpz8q32kzqarm9fim2wv23n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "commit": "eac6724c093458745e9ae0e37221077fa2ad0ff6",
+ "sha256": "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"
+ }
+ },
+ {
+ "ename": "format-all",
+ "commit": "f53143ebd42ef5be793b86d50b23f0a57617d6cc",
+ "sha256": "1kmnv8ypxvgm3p79cc1wk8032fh7bl1pripys180vw89r2748qs9",
+ "fetcher": "github",
+ "repo": "lassik/emacs-format-all-the-code",
+ "unstable": {
+ "version": [
+ 20200804,
+ 1822
+ ],
+ "deps": [
+ "cl-lib",
+ "language-id"
+ ],
+ "commit": "ccfff41a200e16e3644c2531e984959392e3341a",
+ "sha256": "0wqq86gfilrg9jf9yls9wcxy926j44lvzafj92kdmmyzbas1nm9k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "language-id"
+ ],
+ "commit": "8c8c47a863a397d947999fff4358caf20bafca0a",
+ "sha256": "0ayb57p114z64ppf74g2wpm2g2iga2vrl8rhay7fnfv1j2i4xjss"
+ }
+ },
+ {
+ "ename": "format-sql",
+ "commit": "085c03104aa5a809a112525547eec51100b6fb09",
+ "sha256": "0684xqzs933vj9d3n3lv7afk4gii41kaqykbb05cribaswapsanj",
+ "fetcher": "github",
+ "repo": "paetzke/format-sql.el",
+ "unstable": {
+ "version": [
+ 20150422,
+ 1333
+ ],
+ "commit": "97f475c245cd6c81a72a265678e2087cee66ac7b",
+ "sha256": "0mikksamljps1czacgqavlnzzhgs8s3f8q4jza6v3csf8kgp5zd0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "97f475c245cd6c81a72a265678e2087cee66ac7b",
+ "sha256": "0mikksamljps1czacgqavlnzzhgs8s3f8q4jza6v3csf8kgp5zd0"
+ }
+ },
+ {
+ "ename": "format-table",
+ "commit": "e307ead5e8a291cb5dfe316f3b13144e71b6a1b7",
+ "sha256": "1fwjilx0n9m8q0macq231i73zvridjfgqlhw7d1xblw4qp82rzvp",
+ "fetcher": "github",
+ "repo": "functionreturnfunction/format-table",
+ "unstable": {
+ "version": [
+ 20181223,
+ 1616
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "dfcae3a867e574577fc09a43b045889ff155b58f",
+ "sha256": "1z9l1qmv5hw7bgchi5f68nzsz9arjwsazvd6viq6k6jmjzncli6q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "dfcae3a867e574577fc09a43b045889ff155b58f",
+ "sha256": "1z9l1qmv5hw7bgchi5f68nzsz9arjwsazvd6viq6k6jmjzncli6q"
+ }
+ },
+ {
+ "ename": "forth-mode",
+ "commit": "e46832079ee34c655835f06bf565ad5a5ab48ebd",
+ "sha256": "0j60abi5qyy94f4as90zhmkb12jdirysdbq4ajs5h91vi6gb1g3i",
+ "fetcher": "github",
+ "repo": "larsbrinkhoff/forth-mode",
+ "unstable": {
+ "version": [
+ 20170527,
+ 1930
+ ],
+ "commit": "522256d98d1a909983bcfd3ae20c65226d5929b6",
+ "sha256": "110ycl8zkimy2818rhp3hk3mn2y25m695shdsy6dwxnrv90agss6"
+ }
+ },
+ {
+ "ename": "fortpy",
+ "commit": "73b277e19f5f9f6605f3e9b7afac95152dac0599",
+ "sha256": "1nn5vx1rspfsijwhilnjhiy0mjw154ds3lwxvkpwxpchygirlyxj",
+ "fetcher": "github",
+ "repo": "rosenbrockc/fortpy-el",
+ "unstable": {
+ "version": [
+ 20150715,
+ 2032
+ ],
+ "deps": [
+ "auto-complete",
+ "epc",
+ "pos-tip",
+ "python-environment"
+ ],
+ "commit": "c614517e9396ef7a78be3b8786fbf303879cf43b",
+ "sha256": "1nqx2igxmwswjcrnzdjpx5qcjr60zjy3q9cadq5disms17wdcr6y"
+ }
+ },
+ {
+ "ename": "fortune-cookie",
+ "commit": "ab0d56626c9bf847c693b4d9ddb08acee636054f",
+ "sha256": "0xg0zk7hnyhnbhqpxnzrgqs5yz0sy6wb0n9982qc0pa6jqnl9z78",
+ "fetcher": "github",
+ "repo": "andschwa/fortune-cookie",
+ "unstable": {
+ "version": [
+ 20181223,
+ 842
+ ],
+ "commit": "6c1c08f5be83822c0b762872ab25e3dbee96f333",
+ "sha256": "0gnidiryappk9naazwv0dd3b1dyd284zkwnhy2b1z3zkc9i7awfq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "bad99a2cd090f6646c7ee1125b95dd98744939c6",
+ "sha256": "1kiflisiabc39lxi5hcazfvcwrpasl01lqsi2sri6pyrcrjyh8mf"
+ }
+ },
+ {
+ "ename": "fountain-mode",
+ "commit": "12589d1eb14bfc87d2e6f2a5ff8f5fb66b574a56",
+ "sha256": "1i55gcjy8ycr1ww2fh1a2j0bchx1bsfs0zd6v4cv5zdgy7vw6840",
+ "fetcher": "github",
+ "repo": "rnkn/fountain-mode",
+ "unstable": {
+ "version": [
+ 20200811,
+ 652
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "55be196ef20cdc276b3bde1a39444df1cc599f9b",
+ "sha256": "14baj9ldssdb5vrc3fl7c7nhc2iff6gxa7v2flcjjnazfg87r3b2"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 2,
+ 2
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "1405217e69d055b869e804d33feca23cb602f759",
+ "sha256": "0rwdwbw9cq8ljvbmgmz9izank8dqjki79l1bw127lli69fs72gyi"
+ }
+ },
+ {
+ "ename": "fraktur-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0hy2cncbgpp7ysp7qwfpj0r075rxrc77bmc70bw7hf8m1xiw124k",
+ "fetcher": "github",
+ "repo": "grettke/fraktur-mode",
+ "unstable": {
+ "version": [
+ 20160815,
+ 227
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "514baf5546aed12a0d9fa0fe66e87cdcc7843b08",
+ "sha256": "169d9j7jk3li96fkn2sr257835flkcpml24l4bmzp8j3q57a7wxw"
+ }
+ },
+ {
+ "ename": "frame-local",
+ "commit": "556179857e2b46f5a48b45e1b71cd460ffd9f7d7",
+ "sha256": "1lz4xmz67l99xbyg9gvgzl06yqh61xhr29vfhv68kq5pg5m881vs",
+ "fetcher": "github",
+ "repo": "sebastiencs/frame-local",
+ "unstable": {
+ "version": [
+ 20180330,
+ 940
+ ],
+ "commit": "7ee1106c3bcd4022f48421f8cb1ef4f995da816e",
+ "sha256": "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"
+ }
+ },
+ {
+ "ename": "frame-mode",
+ "commit": "1e83da89eeee834cc14c0b128d55ef3634f76fd0",
+ "sha256": "0ch58x07fnsx3v3r9cvcmqrqws121m8achjilhqk988hkg7y47c8",
+ "fetcher": "github",
+ "repo": "IvanMalison/frame-mode",
+ "unstable": {
+ "version": [
+ 20190710,
+ 2030
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "ae2366969927c9f89ea07c999bef382b0b47cac1",
+ "sha256": "0fr4rc6axgk98sinsmqr6zhd2ba4djijmbpkha2vs1qn31p1z4g7"
+ }
+ },
+ {
+ "ename": "frame-purpose",
+ "commit": "033bd36a2419f4521944ccbfe8ce1eb56af20472",
+ "sha256": "0mvzryfakz5g8smsg4ciaa0bs0jp692rnjbahp9vl62ml5dp62fz",
+ "fetcher": "github",
+ "repo": "alphapapa/frame-purpose.el",
+ "unstable": {
+ "version": [
+ 20190114,
+ 1403
+ ],
+ "deps": [
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "78f978f13589ec5c5370187c008c8aa83e6e71b4",
+ "sha256": "0zd981jsbf8fj5a3s7agbg32f6x3s7g87jlz13msgpgmkfhpx3gx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "60778ef3c02cb09a7ccc323732c89bf374dfbffe",
+ "sha256": "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"
+ }
+ },
+ {
+ "ename": "frame-tag",
+ "commit": "e69899b53c158903b9b147754021acf1a6136eda",
+ "sha256": "1n13xcc3ny9j9h1h4vslpjl6k9mqksr73kgmqrmkq301p8zps94q",
+ "fetcher": "github",
+ "repo": "liangzan/frame-tag.el",
+ "unstable": {
+ "version": [
+ 20170111,
+ 6
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "73d6163568c7d32952175e663318b872f995a4e5",
+ "sha256": "1ks8qw1vq30mjp7bpgrk3f11jhm9viibiap6zjk8r5rykjzl1ifv"
+ }
+ },
+ {
+ "ename": "frames-only-mode",
+ "commit": "1e628416ad9420b3ac5bbfacf930a86d98958ac8",
+ "sha256": "17p04l16ghz9kk096xk37yjpi4rmla86gp7c8ysjf6q6nyh0608h",
+ "fetcher": "github",
+ "repo": "davidshepherd7/frames-only-mode",
+ "unstable": {
+ "version": [
+ 20200728,
+ 740
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "3cd98cbf80b04ae2ebca1c67c52ba756116f6784",
+ "sha256": "0smyic3x3b98ipwhb9pw47nnymccy4w7k3dbng2g2zhgwi5pyc1k"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "5a2947d797a5d6f74d3a9c97f8c0ab6cff115b28",
+ "sha256": "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"
+ }
+ },
+ {
+ "ename": "frameshot",
+ "commit": "e5cfaa4b5fda97054d45691fad9d79b559f2df14",
+ "sha256": "1z5f988m9s25miyxbhaxk6m4af9afvblb2p5mdidva04szjklr70",
+ "fetcher": "github",
+ "repo": "tarsius/frameshot",
+ "unstable": {
+ "version": [
+ 20200103,
+ 1238
+ ],
+ "commit": "1b5974f0cc7c2a34e5f9fab6b25578dad7df3dbf",
+ "sha256": "1rcx0la0njg3ij0xgw7l1wl8nlvdd0bj40v51wvmdybyiba7cdx6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "commit": "1b5974f0cc7c2a34e5f9fab6b25578dad7df3dbf",
+ "sha256": "1rcx0la0njg3ij0xgw7l1wl8nlvdd0bj40v51wvmdybyiba7cdx6"
+ }
+ },
+ {
+ "ename": "framesize",
+ "commit": "c53062af16b26b6f64bd63fa62d7e9db264768f3",
+ "sha256": "1rwiwx3n7gkpfihbf6ndl1lxza4zi2rlj5av6lfp5qypbw9wddkf",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-framesize",
+ "unstable": {
+ "version": [
+ 20131017,
+ 2132
+ ],
+ "deps": [
+ "key-chord"
+ ],
+ "commit": "f2dbf5d2513b2bc45f2085370a55c1754b6025da",
+ "sha256": "11h9xw6jnw7dacyv1jch2a77xp7hfb93690m7hhazy6l87xmm4dk"
+ }
+ },
+ {
+ "ename": "frecency",
+ "commit": "d7a6e855d01e0b1c9a23c006af67c487719c50bd",
+ "sha256": "033zhzwvh23igfqxbiy68cq6i1wflna19pbg81r0hh9kcfg2afpa",
+ "fetcher": "github",
+ "repo": "alphapapa/frecency.el",
+ "unstable": {
+ "version": [
+ 20170909,
+ 631
+ ],
+ "deps": [
+ "a",
+ "dash"
+ ],
+ "commit": "6d57aee131d96315aedf6cb7d6e5d6d09bf71503",
+ "sha256": "1hxjvfys5kqwvl21jj5sfb6bpqxdgdhsrniq821y324glc8s38xc"
+ }
+ },
+ {
+ "ename": "frecentf",
+ "commit": "64d342c3814721f82dee8859d90b2da4192d8bc8",
+ "sha256": "1z20035iplkjan3nf3lr0jzdz6jh988rq281zbi4a5l271ll8lb9",
+ "fetcher": "git",
+ "url": "https://git.launchpad.net/frecentf.el",
+ "unstable": {
+ "version": [
+ 20200624,
+ 1534
+ ],
+ "deps": [
+ "frecency",
+ "persist"
+ ],
+ "commit": "d9d093365ffe12c46e81d16ee81850abd86a2177",
+ "sha256": "06w17km8hmlr2mrxi26g51mnfvcvilw91b17y52pmx09jgnqa9ac"
+ }
+ },
+ {
+ "ename": "free-keys",
+ "commit": "55067e899ba618d4394ad9657322c92a667a0774",
+ "sha256": "0j9cfgy2nkbska4lm5z32p804i9n8pdgn50bs5zzk1ilwd5vbalj",
+ "fetcher": "github",
+ "repo": "Fuco1/free-keys",
+ "unstable": {
+ "version": [
+ 20160726,
+ 2050
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "edfd69dc369b2647447b7c28c7c1163b1ddf45b4",
+ "sha256": "0xgifa7s9n882f9ymyyz9gc11xfbj3vfpnxiq1fqfm5hmwx9pwbc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "edfd69dc369b2647447b7c28c7c1163b1ddf45b4",
+ "sha256": "0xgifa7s9n882f9ymyyz9gc11xfbj3vfpnxiq1fqfm5hmwx9pwbc"
+ }
+ },
+ {
+ "ename": "freeradius-mode",
+ "commit": "a93de3f3933441b94303cd6dd25dabbade04dcc5",
+ "sha256": "1lk7px2v5rpfg7kakqcsg31pg69pk64x9j0j9bjwpkxc49bnk1w2",
+ "fetcher": "github",
+ "repo": "VersBinarii/freeradius-mode",
+ "unstable": {
+ "version": [
+ 20190401,
+ 1743
+ ],
+ "commit": "cf8bf0359cf6c77848facbd24b764b3e111b4c2d",
+ "sha256": "0ggkflx4lhyxqr7sgf1f3z0i3glmqyvl4bn16clh9ybl14q22rli"
+ }
+ },
+ {
+ "ename": "freeze-it",
+ "commit": "0b50aa7ce66a827ddd975eddf8e95ba655e05239",
+ "sha256": "03wnmp6m9ss3vvzibajjdvzbgh2ydvq95xk9k2rhrgjj9pdz5ml8",
+ "fetcher": "github",
+ "repo": "rnkn/freeze-it",
+ "unstable": {
+ "version": [
+ 20200416,
+ 1605
+ ],
+ "commit": "b93af18633bc783c2cb8443808aeeaaca33e1146",
+ "sha256": "0gljal6hmchx5zyd268kwlqn8pqq206y8a89ff7kq6qaql88mngn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "b93af18633bc783c2cb8443808aeeaaca33e1146",
+ "sha256": "0gljal6hmchx5zyd268kwlqn8pqq206y8a89ff7kq6qaql88mngn"
+ }
+ },
+ {
+ "ename": "friendly-remote-shell",
+ "commit": "de68633dae1e07006ae7b043c9264d9b8d08d377",
+ "sha256": "0ja0xgxs26sk2mx57wqb3schmw8ms01sdla260c96ilmy1qj6fvq",
+ "fetcher": "github",
+ "repo": "p3r7/friendly-shell",
+ "unstable": {
+ "version": [
+ 20200527,
+ 830
+ ],
+ "deps": [
+ "cl-lib",
+ "friendly-shell",
+ "friendly-tramp-path",
+ "with-shell-interpreter"
+ ],
+ "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+ "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "friendly-shell",
+ "friendly-tramp-path",
+ "with-shell-interpreter"
+ ],
+ "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+ "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+ }
+ },
+ {
+ "ename": "friendly-shell",
+ "commit": "de68633dae1e07006ae7b043c9264d9b8d08d377",
+ "sha256": "1xpfykkfrm6gg6p0rjp1hfnjf4k4n6k3v5kxifgbxld4hjl9223d",
+ "fetcher": "github",
+ "repo": "p3r7/friendly-shell",
+ "unstable": {
+ "version": [
+ 20200527,
+ 830
+ ],
+ "deps": [
+ "cl-lib",
+ "with-shell-interpreter"
+ ],
+ "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+ "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "with-shell-interpreter"
+ ],
+ "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+ "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+ }
+ },
+ {
+ "ename": "friendly-shell-command",
+ "commit": "de68633dae1e07006ae7b043c9264d9b8d08d377",
+ "sha256": "0hsnn18zxwqvk5zpp5kf8mlfya6if0npnfm0crvwqqsipx9nj8v4",
+ "fetcher": "github",
+ "repo": "p3r7/friendly-shell",
+ "unstable": {
+ "version": [
+ 20200527,
+ 830
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "with-shell-interpreter"
+ ],
+ "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+ "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "with-shell-interpreter"
+ ],
+ "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+ "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+ }
+ },
+ {
+ "ename": "friendly-tramp-path",
+ "commit": "cb18ad238792570e5ef825a101059bfdc293949f",
+ "sha256": "120g9w1l4i544km5d1jx5g4vsfb92lizn7ibxl767zffgahqhbdf",
+ "fetcher": "github",
+ "repo": "p3r7/friendly-tramp-path",
+ "unstable": {
+ "version": [
+ 20200502,
+ 1032
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "be572b8953b9e5a3a35c30bb64c2936d3e9802ba",
+ "sha256": "0w99py469ylkg9jg9fdxalv3axd57ld9rgwhgfy1r8rpp7xch7pn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "be2714118876c592fae199aaa877c49475b6176a",
+ "sha256": "1z1rcm8pc8p2d7zzf02nms6cz2ik8y1b95a58lqxlp8n75rz4c5i"
+ }
+ },
+ {
+ "ename": "fringe-current-line",
+ "commit": "eaaa6f7f2f753a7c8489415ae406c4169eda9fa8",
+ "sha256": "125yn0wbrrxrmdn7qfxj0f4538sb3xnqb3r2inz3gpblc1vxnqb8",
+ "fetcher": "github",
+ "repo": "kyanagi/fringe-current-line",
+ "unstable": {
+ "version": [
+ 20140111,
+ 411
+ ],
+ "commit": "0ef000bac76abae30601222e6f06c7d133ab4942",
+ "sha256": "0zwlnzbi91hkfz1jgj9s9pxwi21s21cwp6psdm687wj2a3wy4231"
+ }
+ },
+ {
+ "ename": "fringe-helper",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1i5wra4j0rvrsl9vbg7fzga8cadw43ka2rwdj1m11wq8m3cs8g7m",
+ "fetcher": "github",
+ "repo": "nschum/fringe-helper.el",
+ "unstable": {
+ "version": [
+ 20140620,
+ 2109
+ ],
+ "commit": "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd",
+ "sha256": "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "0f10a196c6e57222b8d4c94eafc40a96e7b20f1b",
+ "sha256": "1c3yx9j3q8fkfiay4nzcabsq9i4ydqf6vxk8vv80h78gg9afrzrj"
+ }
+ },
+ {
+ "ename": "frog-jump-buffer",
+ "commit": "8dbb470b4041c58650088b0a1d8af8bac498a573",
+ "sha256": "0nd59k8jnry2w3c32ww3494fnsqp01q570508bwqmg203lksdwf9",
+ "fetcher": "github",
+ "repo": "waymondo/frog-jump-buffer",
+ "unstable": {
+ "version": [
+ 20200114,
+ 1826
+ ],
+ "deps": [
+ "avy",
+ "dash",
+ "frog-menu"
+ ],
+ "commit": "1eb289c9b2a4bbebb3065076750f54216ac9c718",
+ "sha256": "0qlwjk3a13gb3glib9irgpyx94j933kflky7pbnrl17a53pnryrw"
+ }
+ },
+ {
+ "ename": "fsbot-data-browser",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "14d4d8lasvgj520rmqgnzk6mi16znzcdvja9p8164fr9l41wnzgd",
+ "fetcher": "github",
+ "repo": "Benaiah/fsbot-data-browser",
+ "unstable": {
+ "version": [
+ 20160921,
+ 1533
+ ],
+ "commit": "6bca4f7de63e31839d2542f6c678b79931dec344",
+ "sha256": "0lvpgfp89sz6f6rn576g1g88s0q3ibj5ghydjwfcg9w6h7vx5b5s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "6bca4f7de63e31839d2542f6c678b79931dec344",
+ "sha256": "0lvpgfp89sz6f6rn576g1g88s0q3ibj5ghydjwfcg9w6h7vx5b5s"
+ }
+ },
+ {
+ "ename": "fsharp-mode",
+ "commit": "7a41e8a101b1b76870402eb8f60130be9e9f189d",
+ "sha256": "1bcgy40z5d1663rafh4vhbm8d24yxnbw23sagki4427sywinl11x",
+ "fetcher": "github",
+ "repo": "fsharp/emacs-fsharp-mode",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1842
+ ],
+ "deps": [
+ "dash",
+ "eglot",
+ "s"
+ ],
+ "commit": "3e41fe1391b64eefa66a8a02fce27a12a04e1e01",
+ "sha256": "03ln0dmjkg4bnpabnw27vby3jqf40wzvs3znynqqqx7cn53vy5fp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 10
+ ],
+ "deps": [
+ "dash",
+ "eglot",
+ "s"
+ ],
+ "commit": "4a1df3342931f09edc933cb481da70cc5a5ef268",
+ "sha256": "0dkfd4nlc0hxikvby1271y6zppsvcc0jr12m2w1zrng1pqx666di"
+ }
+ },
+ {
+ "ename": "fstar-mode",
+ "commit": "c58ace42342c3d3ff5a56d86a16206f2ecb45f77",
+ "sha256": "1kwa6gqh91265vpp4gcady2brkizfkfjj0gnya9lar6x7rn4gj7s",
+ "fetcher": "github",
+ "repo": "FStarLang/fstar-mode.el",
+ "unstable": {
+ "version": [
+ 20200624,
+ 2201
+ ],
+ "deps": [
+ "company",
+ "company-quickhelp",
+ "dash",
+ "flycheck",
+ "quick-peek",
+ "yasnippet"
+ ],
+ "commit": "bd28cb8f25538e26287c76efbbc5ef7378d1fbc6",
+ "sha256": "1jvvasin29bwxq7cmviv0431jb7p2gq3yh12pyf6f5zinsax97cp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 4,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "3a9be64827bbed8e34d38803b5c44d8d4f6cd688",
+ "sha256": "0manmkd66355g1fw2q1q96ispd0vxf842i8dcr6g592abrz5lhi7"
+ }
+ },
+ {
+ "ename": "fuel",
+ "commit": "1e2a0e4698d4e71ec28656594f6a83504a823490",
+ "sha256": "08hzzg5dhqkl5c5lfhwcwmx8m8z3k1nxshn2wlpqf5gch8f2nj6z",
+ "fetcher": "github",
+ "repo": "factor/factor",
+ "unstable": {
+ "version": [
+ 20200514,
+ 1516
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3fdb0325ca2a6d80e4111af43b1b166808022020",
+ "sha256": "0kid3a0qq2qvzndbs1c69z30f2in7q7fzpv6yas84f8y5kkmk220"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 98
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7999e72aecc3c5bc4019d43dc4697f49678cc3b4",
+ "sha256": "0d8zs78xnk1wqh821hs8zyjv9lphj2xmxclnr969y1d9axcblaxj"
+ }
+ },
+ {
+ "ename": "fuff",
+ "commit": "4d0fc6d19559a9ea1bb7fce0c26a2dd65fc71603",
+ "sha256": "080a2lz6mv629c68z44qrrww080gy2iggfzajdq54rr8i23y14vf",
+ "fetcher": "github",
+ "repo": "joelmo/fuff",
+ "unstable": {
+ "version": [
+ 20170202,
+ 1503
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "278e849913df87bd8756c59382282d87474802c3",
+ "sha256": "12s25c0abvghkhfbxcf77d2dc20y3xn9df7mfk8mkfwnlwdss2ga"
+ }
+ },
+ {
+ "ename": "full-ack",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "09ikhyhpvkcl6yl6pa4abnw6i7yfsx5jkmzypib94w7khikvb309",
+ "fetcher": "github",
+ "repo": "nschum/full-ack",
+ "unstable": {
+ "version": [
+ 20140223,
+ 1732
+ ],
+ "commit": "761d846e105b150f8e6d13d7a8983f0248313a45",
+ "sha256": "0bjny4ryrs788myhiaf3ir99vadf2v4swa5gkz9i36a7j6wzpgk5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "0aef4be1686535f83217cafb1524818071bd8325",
+ "sha256": "0c3w3xs2jbdqgsqw0qmdbwii6p395qfznird4gg0hfr7lby2kmjq"
+ }
+ },
+ {
+ "ename": "fullframe",
+ "commit": "13d1dc5c39543b65c6bb4150c3690211872c00dc",
+ "sha256": "08sh8lmb6g8asv28fcb36ilcn0ka4fc6ka0pnslid0h4c32fxp2a",
+ "fetcher": "github",
+ "repo": "tomterl/fullframe",
+ "unstable": {
+ "version": [
+ 20170816,
+ 1003
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2c4497f5d66898f5f4cbde3abe97402880e46c2c",
+ "sha256": "0jnkri7d23hh392lfc3gwjlis4a0pgn0jpbhm4md94ap263yyylc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d6a5217f7f2a5a5edcb75140f3fa69b3a50f1cdd",
+ "sha256": "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"
+ }
+ },
+ {
+ "ename": "function-args",
+ "commit": "80688d85a34b77783140ad2b8a47ef60c762b084",
+ "sha256": "13yfscr993pll5yg019v9dwy71g123a166w114n2m78h0rbnzdak",
+ "fetcher": "github",
+ "repo": "abo-abo/function-args",
+ "unstable": {
+ "version": [
+ 20171031,
+ 1704
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "609b25305670fff08d5e357298e7128e4f4e3497",
+ "sha256": "1xymwk42n2l7c7iaigz23i4l580qpjgq8nqhgr4mnw6invdsgg2c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "0b07db81c0c1fa88d1ec763219ee57640858f79d",
+ "sha256": "0lg9bhwn3za4jvz38zld389gdl48qf34nqqqrzj0r119g1jqdrg1"
+ }
+ },
+ {
+ "ename": "fuo",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1aaqa7lih9gh4rz51jy577l95rgmyhna2h9ci1h4baini19mxi26",
+ "fetcher": "github",
+ "repo": "feeluown/emacs-fuo",
+ "unstable": {
+ "version": [
+ 20190812,
+ 927
+ ],
+ "commit": "0e4122f94a336a50c02bc96652d25ac3d74bedeb",
+ "sha256": "1cv30sgjngnl0274viaf42dw9sr0v1kdw31na7lzznqx6q8laz47"
+ }
+ },
+ {
+ "ename": "furl",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "1z3yqx95qmvpi6vkkgcwvkmw96s24h8ssd5gc06988picw6vj76f",
+ "fetcher": "github",
+ "repo": "nex3/furl-el",
+ "unstable": {
+ "version": [
+ 20150509,
+ 316
+ ],
+ "commit": "014438271e0ef27333dfcd599cb247f12a20d870",
+ "sha256": "0wrmbvx0risdjkaxqmh4li6iwvg4635cdpjvw32k2wkdsyn2dlsb"
+ }
+ },
+ {
+ "ename": "futhark-mode",
+ "commit": "97210774b450b7611d2bfdf36e04a425835d86b9",
+ "sha256": "1sck984a8m0i9n07jnhpnin6k060756g73ix34ghzd65j5f0pvlw",
+ "fetcher": "github",
+ "repo": "diku-dk/futhark-mode",
+ "unstable": {
+ "version": [
+ 20200627,
+ 732
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9db9fb81e08b6ded43a4eede5220644ce354060d",
+ "sha256": "0hcwqsq65hlznsq2k5bviwzyh82sddfb28v5xna0016yphbdng2h"
+ }
+ },
+ {
+ "ename": "fuz",
+ "commit": "2d3139563902bb1cb8aa48a517747f12a1ca1746",
+ "sha256": "0xmi3r7mhxc38rjmx2p0lhsn0gch21hhbr2s0gxy1h29mhgvy3sb",
+ "fetcher": "github",
+ "repo": "rustify-emacs/fuz.el",
+ "unstable": {
+ "version": [
+ 20200104,
+ 524
+ ],
+ "commit": "fee874aa35d2ee6b12b836290b5c8eaa44175a28",
+ "sha256": "1xswm8my29i4fddy64k21b1vclbr5fjb0pisb4hs8ynkk5w1kw2a"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "commit": "90ca9207a9c1decda24a552b94ff41169ecccb14",
+ "sha256": "0v1advw2yr8b4jwd713fijd1kx4yc5xzz5ck2qfdxy5ixi1b39nm"
+ }
+ },
+ {
+ "ename": "fuzzy",
+ "commit": "9e0197df173fbd7ec1e7e35c47476fcf2aaa483f",
+ "sha256": "1hwdh9bx4g4vzzyc20vdwxsii611za37kc9ik40kwjjk62qmll8h",
+ "fetcher": "github",
+ "repo": "auto-complete/fuzzy-el",
+ "unstable": {
+ "version": [
+ 20150730,
+ 337
+ ],
+ "commit": "a36bde2f6e94d6b2bfaae68d73bbd39734e5b907",
+ "sha256": "1aj7r16bnx2jr2gpzwsmr3yqmfza5qbdcn78chcsfqxv5c8bgswa"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "939f4e9a3f08d83925b41dd3d23b2321f3f6b09c",
+ "sha256": "1g7my9ha5cnwg3pjwa86wncg5gphv18xpnpmj3xc3vg7z5m45rss"
+ }
+ },
+ {
+ "ename": "fvwm-mode",
+ "commit": "ac39130f8a031d6fe7df4411a5f94f2cdf652449",
+ "sha256": "07y32cnp4qfhncp7s24gmlxljdrj5miicinfaf4gc7hihb4bkrkb",
+ "fetcher": "github",
+ "repo": "theBlackDragon/fvwm-mode",
+ "unstable": {
+ "version": [
+ 20160411,
+ 1138
+ ],
+ "commit": "6832a1c1f68bf6249c3fd6672ea8e27dc7a5c79e",
+ "sha256": "03zmk4v259pqx7gkwqq95lccn78rwmh7iq5j0d5jj4jf9h39rr20"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 4
+ ],
+ "commit": "d48a309bb7db21f5404b6619c6ee861fe0457704",
+ "sha256": "0c3g0yfclczdh6nxmg9lljjf288zibqy51bhh1b1cgdmxcbpg8bv"
+ }
+ },
+ {
+ "ename": "fwb-cmds",
+ "commit": "fe40cdeb5e19628937820181479897acdad40200",
+ "sha256": "0wnjvi0v0l2h1mhwlsk2d8ggwh3nk7pks48l55gp18nmj00jxycx",
+ "fetcher": "github",
+ "repo": "tarsius/fwb-cmds",
+ "unstable": {
+ "version": [
+ 20180318,
+ 2219
+ ],
+ "commit": "90258a5c7dbbaa2ac227e0fb4ff6c7d5aec3628f",
+ "sha256": "1xwvv8wjgdaz96v1x1xc5w697bfvcanlcixd0n5qbx6ryakqrb72"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "90258a5c7dbbaa2ac227e0fb4ff6c7d5aec3628f",
+ "sha256": "1xwvv8wjgdaz96v1x1xc5w697bfvcanlcixd0n5qbx6ryakqrb72"
+ }
+ },
+ {
+ "ename": "fxrd-mode",
+ "commit": "796eb6b2126ec616c0de6af6abb7598900557c12",
+ "sha256": "17zimg64lqc1yh9gnp5izshkvviz996aym7q6n9p61a4kqq37z4r",
+ "fetcher": "github",
+ "repo": "msherry/fxrd-mode",
+ "unstable": {
+ "version": [
+ 20170728,
+ 1801
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "18a603474abb5a786a8d9f20c283d5f7beed3540",
+ "sha256": "1yprlpxxh7bbxg8filgb00lqqlavbz03h7hqf4280aiypkwi0y86"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "795b969346982b75e24b5c8619b46197982fbb4d",
+ "sha256": "0aha13vqj6ygyr7bflrxll837g4z6wrmrhh5rhcd0vphqg70frgn"
+ }
+ },
+ {
+ "ename": "fyure",
+ "commit": "27f4188f460060277ad2f5422bc2bde8e6fd3ff3",
+ "sha256": "0k5z2xqlrzp5lyvp2lr462x38kqdmqld845bvyvkfjd2k4yri71x",
+ "fetcher": "github",
+ "repo": "mooz/fyure",
+ "unstable": {
+ "version": [
+ 20130216,
+ 1314
+ ],
+ "commit": "b6977f1eb148e8b63259f7233b55bb050e44d9b8",
+ "sha256": "08x5li0mshrlamr7vswy7xh358bqhh3pngjr4ckswfi0l2r5fjbd"
+ }
+ },
+ {
+ "ename": "fzf",
+ "commit": "1671e17c99ef1932c6a2e83fc4fa2e4eb6674bc8",
+ "sha256": "0jjzm1gq85fx1gmj6nqaijnjws9bm8hmk40ws3x7fmsp41qq5py0",
+ "fetcher": "github",
+ "repo": "bling/fzf.el",
+ "unstable": {
+ "version": [
+ 20180619,
+ 145
+ ],
+ "commit": "521d18933cb586337c4e34281bdc71ac07202c98",
+ "sha256": "0fpzjslbhhwvs4nh5dxj9cyxyiw6n8qmg76mvq73k5mc8pk7d4ir"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "383a050920e9b99d37c21d041deb7f38b202485c",
+ "sha256": "14drm6b6rxbcdilcms1jlqyrqbipcqbdil6q06ni9pgafi7xp8hz"
+ }
+ },
+ {
+ "ename": "gameoflife",
+ "commit": "bdfc00fe567155ae98fbf1a44d0bb4fa3a8e5786",
+ "sha256": "0vjlbpf9672442lzcw1p39vldywy4a1yj2mcwmbsqhpjlnzalw4l",
+ "fetcher": "github",
+ "repo": "Lindydancer/gameoflife",
+ "unstable": {
+ "version": [
+ 20200614,
+ 1814
+ ],
+ "commit": "2483f3d98dbcf7f1633f551cc3691f5659b4b942",
+ "sha256": "1a57fc8ylrdlqlywp81b71jd93hiwkxy6gxpi8358d6d4czslvq7"
+ }
+ },
+ {
+ "ename": "gams-ac",
+ "commit": "ca2681b39ac5a985c2f70b4b84ee3c10af1a7ca4",
+ "sha256": "03w9ffscwaaspwxmrqhrfws0qjk3xxzz63k5wkrhx37899w75qha",
+ "fetcher": "github",
+ "repo": "ShiroTakeda/gams-ac",
+ "unstable": {
+ "version": [
+ 20180423,
+ 926
+ ],
+ "deps": [
+ "auto-complete",
+ "gams-mode"
+ ],
+ "commit": "66d04ff36033f54205c19bc1d893e926d4dbf02e",
+ "sha256": "1hjbzwgzwqwpyfm8db1r1q14bbk42hrl5469gqfzjq0423wy7szw"
+ }
+ },
+ {
+ "ename": "gams-mode",
+ "commit": "c895a716636b00c2a158d33aab18f664a8601833",
+ "sha256": "0hx9mv4sqskz4nn7aks64hqd4vn3m7b34abzhy9bnmyw6d5zzfci",
+ "fetcher": "github",
+ "repo": "ShiroTakeda/gams-mode",
+ "unstable": {
+ "version": [
+ 20200131,
+ 1335
+ ],
+ "commit": "bb4e8a223c8aac5ec9268d1cfcf1a9ea9b3d8a49",
+ "sha256": "084xjxj03d0ghh1lgrgwlkzf78y3szh47m3qva4r344yg0051yz3"
+ },
+ "stable": {
+ "version": [
+ 6,
+ 6
+ ],
+ "commit": "bb4e8a223c8aac5ec9268d1cfcf1a9ea9b3d8a49",
+ "sha256": "084xjxj03d0ghh1lgrgwlkzf78y3szh47m3qva4r344yg0051yz3"
+ }
+ },
+ {
+ "ename": "gandalf-theme",
+ "commit": "4354bbc1ec16783dd286d69fd6e4682ae63e28f9",
+ "sha256": "0wkmsg3pdw98gyp3q508wsqkzw821qsqi796ynm53zd7a4jfap4p",
+ "fetcher": "github",
+ "repo": "ptrv/gandalf-theme-emacs",
+ "unstable": {
+ "version": [
+ 20130809,
+ 947
+ ],
+ "commit": "4e472fc851431458537d458d09c1f5895e338536",
+ "sha256": "0sn3y1ilbg532mg941qmzipvzq86q31x86ypaf0h0m4015r7l59v"
+ }
+ },
+ {
+ "ename": "gap-mode",
+ "commit": "2790c00a79df237cf853a00f094fdeca9e532a9a",
+ "sha256": "1xq50vkw4sgfjv2sfc3ddybjzbaxq97xwgjxjkd8k6v5f755qn29",
+ "fetcher": "gitlab",
+ "repo": "gvol/gap-mode",
+ "unstable": {
+ "version": [
+ 20191110,
+ 2237
+ ],
+ "commit": "62adb8935033eead7fbf2c107c2dfb79afa53c67",
+ "sha256": "1rhhls2ylc2jg3mman3zq0mknmmwhll09d9dxrqmk5262d2f7vw4"
+ }
+ },
+ {
+ "ename": "gather",
+ "commit": "595e40c7102294684badf86deb72d86bbc3c1426",
+ "sha256": "1f0cqqp1a7w8g1pfvzxxb0hjrxq4m79a4n85dncqj2xhjxrkm0xk",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-gather",
+ "unstable": {
+ "version": [
+ 20141230,
+ 1338
+ ],
+ "commit": "50809fbc22d70a1c724c2dd99ac5a1f818ffeb6b",
+ "sha256": "0j0dg7nl9kmanayvw0712x5c5x9h48qmqdsyi0pijvgmv8l5slg5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "303af57dd2ae0fc1363a3d1a84d475167f58c84a",
+ "sha256": "1q9bz294bc6bplwfrfzsczh444v9152wv7zm2l1pcpwv8n8581p6"
+ }
+ },
+ {
+ "ename": "gcmh",
+ "commit": "e478bee9aade9cdac22f9935b937978f3a3e1d3c",
+ "sha256": "0h5l02k01dv74n04ybnm1416dfhr5sm3h3maq0pypxqdfz1anhsg",
+ "fetcher": "gitlab",
+ "repo": "koral/gcmh",
+ "unstable": {
+ "version": [
+ 20200409,
+ 1456
+ ],
+ "commit": "b1bde5089169a74f62033d027e06e98cbeedd43f",
+ "sha256": "0k0gh1dr3hipg73mpgkw6hlg27c7c5r8aa61p4vj2rpmf6k90pc5"
+ }
+ },
+ {
+ "ename": "gdscript-mode",
+ "commit": "b4414989beecd113ec405116402a5232ac32cb85",
+ "sha256": "1clakvkjifqhi847p6zrxxfkr5s3hv33qsh7r96w04pihyd38q9l",
+ "fetcher": "github",
+ "repo": "GDQuest/emacs-gdscript-mode",
+ "unstable": {
+ "version": [
+ 20200726,
+ 1721
+ ],
+ "commit": "7aea87bd7b3cd14b1a767e7d835cee896722cd29",
+ "sha256": "1cq2k054ngqwanayy7fgkqdb5fq6xcqdglpyxngqmh765lyb7nrb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "36c92dff1587d7c3c7ff2cd02d8e158cbed55215",
+ "sha256": "02by4bvdayldbjlz6jkp36m5rgcy2h5bwhqx2cj7wma6xf6cw3lf"
+ }
+ },
+ {
+ "ename": "geben",
+ "commit": "6f8648609e160f7dcefe4a963e8b00475f2fff78",
+ "sha256": "1ai1qcx76m8xh80c8zixq9cqbhnqmj3jk3r7lj3ngbiwx4pnlnwf",
+ "fetcher": "github",
+ "repo": "ahungry/geben",
+ "unstable": {
+ "version": [
+ 20170801,
+ 1251
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ec3f5e9376cf1ea5615990bd8c212543d57f033b",
+ "sha256": "0860nnarbm76jp40v7p5d2wdnq12p03paiw17g3h5p27wnaj611d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "003abd23a7468daa133dfbc7ef85d0d61a0410dc",
+ "sha256": "15ck23xv3dz9i4w5xd9lkg0c6rlsyxdz465xrpkr77fq9qw0c4dg"
+ }
+ },
+ {
+ "ename": "geben-helm-projectile",
+ "commit": "b7d28c45304a69e6ca78b3d00df2563171c027ee",
+ "sha256": "11zhapys6wx2cadflvjimsmilwvjpfd4ihwzzmap8shxpyllsq9r",
+ "fetcher": "github",
+ "repo": "ahungry/geben-helm-projectile",
+ "unstable": {
+ "version": [
+ 20160611,
+ 59
+ ],
+ "deps": [
+ "geben",
+ "helm-projectile"
+ ],
+ "commit": "31ce0faca5dcc71924884f03fd5a7a25d00ccd9b",
+ "sha256": "0a1srhwfbgkvndjfi9irg5s6snlxyqrw1vwyqg1sn8aqnbpgib04"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "geben",
+ "helm-projectile"
+ ],
+ "commit": "31ce0faca5dcc71924884f03fd5a7a25d00ccd9b",
+ "sha256": "0a1srhwfbgkvndjfi9irg5s6snlxyqrw1vwyqg1sn8aqnbpgib04"
+ }
+ },
+ {
+ "ename": "geeknote",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "03q0ca8m110qw8wczyyx94gwqymwnmamahw30j7fqkq6ry19yqsm",
+ "fetcher": "github",
+ "repo": "avendael/emacs-geeknote",
+ "unstable": {
+ "version": [
+ 20160717,
+ 1249
+ ],
+ "commit": "8ed607c76864afcc9c338972ab093caf4501cbf8",
+ "sha256": "1dadsyvkzf0rg6immjdjkb0k7iaqh3hm1w9qhap94j54j7v75w2q"
+ }
+ },
+ {
+ "ename": "geiser",
+ "commit": "67dc8d6e33f3522043f96761b23ea68c9c27084e",
+ "sha256": "1g7z6c3lfa7slwrxk7q8awqs39qibcv2kc4c2fwlwvgbcfhkw085",
+ "fetcher": "gitlab",
+ "repo": "jaor/geiser",
+ "unstable": {
+ "version": [
+ 20200714,
+ 1210
+ ],
+ "commit": "adc5c4ab5ff33cf94cb3fcd892bb9503b5fa2aa2",
+ "sha256": "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 12
+ ],
+ "commit": "adc5c4ab5ff33cf94cb3fcd892bb9503b5fa2aa2",
+ "sha256": "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"
+ }
+ },
+ {
+ "ename": "geiser-gauche",
+ "commit": "1cb02b836748f31be26013d2e43ada6d68f35c90",
+ "sha256": "1fbhfaz304bfzq7m75kifpfxb69zx4ymnvanfv7lnmbx6fqqfrqp",
+ "fetcher": "gitlab",
+ "repo": "emacs-geiser/gauche",
+ "unstable": {
+ "version": [
+ 20200802,
+ 1300
+ ],
+ "deps": [
+ "geiser"
+ ],
+ "commit": "66e51430bded0f0e2037f474818a7bbaafb2906c",
+ "sha256": "1gsvl0r6r385lkv0z4gkxirz9as6k0ghmk402zsyz8gvdpl0f3jw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "geiser"
+ ],
+ "commit": "9e7ed54e5629f759660569bc7efc3d75dbabbc5f",
+ "sha256": "0rxncnzx7qgcpvc8nz0sd8r0hwrplazzraahdwhbpq0q6z8ywqgg"
+ }
+ },
+ {
+ "ename": "geiser-kawa",
+ "commit": "68690d6b011c95197af6b5a87cc21c4dbe97ff00",
+ "sha256": "0gzzab0v93vd9n14s1bya0frf3dagh0gbwg1an4mapg7gjz9ffdg",
+ "fetcher": "gitlab",
+ "repo": "spellcard199/geiser-kawa",
+ "unstable": {
+ "version": [
+ 20200507,
+ 1305
+ ],
+ "deps": [
+ "geiser"
+ ],
+ "commit": "b96c008e9c3b8dc210d8b536ee7b76b8690c8af6",
+ "sha256": "0j2djjgfd4hd2k60ymgxzpsy52ks6hxpd4rr81z5nh9fdg9axhrs"
+ }
+ },
+ {
+ "ename": "gemini-mode",
+ "commit": "2cc0e9039171064cd0fb37b3eb5324c91a88ef7a",
+ "sha256": "1mbhv034jk4bwi58z6jc2r4d828v0ir3jwqpgi2mfjnjxk5x5ga5",
+ "fetcher": "git",
+ "url": "http://git.carcosa.net/jmcbray/gemini.el.git",
+ "unstable": {
+ "version": [
+ 20200813,
+ 1424
+ ],
+ "commit": "d114bacfb12f9e66821254ff0a1fb85443700b24",
+ "sha256": "0m7jricw40h4r30kcg60dl2ybgrdbiglnb55lz3n70bc5nsx8dcd"
+ }
+ },
+ {
+ "ename": "general",
+ "commit": "d86383b443622d78f6d8ff7b8ac74c8d72879d26",
+ "sha256": "104ywsfylfymly64p1i3hsy9pnpz3dkpmcq1ygafnld8zjd08gpc",
+ "fetcher": "github",
+ "repo": "noctuid/general.el",
+ "unstable": {
+ "version": [
+ 20200516,
+ 50
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a0b17d207badf462311b2eef7c065b884462cb7c",
+ "sha256": "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"
+ }
+ },
+ {
+ "ename": "genrnc",
+ "commit": "dd2d908ba5fa96d90643091573939e54d9165aaa",
+ "sha256": "1nwbdscl0yh9j1n421can93m6s8j9dkyb3xmpampr6x528g6z0lm",
+ "fetcher": "github",
+ "repo": "aki2o/emacs-genrnc",
+ "unstable": {
+ "version": [
+ 20140612,
+ 1237
+ ],
+ "deps": [
+ "concurrent",
+ "deferred",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "da75b1966a73ad215ec2ced4522c25f4d0bf1f9a",
+ "sha256": "08cw1fa25kbhbq2sp1cpn90bz38i9hjfdj93xf6wvki55b52s0nn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "concurrent",
+ "deferred",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "da75b1966a73ad215ec2ced4522c25f4d0bf1f9a",
+ "sha256": "08cw1fa25kbhbq2sp1cpn90bz38i9hjfdj93xf6wvki55b52s0nn"
+ }
+ },
+ {
+ "ename": "geoip",
+ "commit": "40336cd135414e1c6f478705e5873eaa396554b0",
+ "sha256": "0j70gl9423ghrjp4k250kq8xpngxa8pzlpivpksyzzj32s7dy1nw",
+ "fetcher": "github",
+ "repo": "xuchunyang/geoip.el",
+ "unstable": {
+ "version": [
+ 20200310,
+ 911
+ ],
+ "commit": "25eb1278788b942c38405c233d3614a1de92ddea",
+ "sha256": "0nbgbqxmpq6c487yx4igph58zmaslqn7z92x9b1xymw58fnlyrm6"
+ }
+ },
+ {
+ "ename": "geolocation",
+ "commit": "fddc094aa08365c0e04f0d8f2f19a47908964f50",
+ "sha256": "03mxy8dfmy8db8rx9j7q1lvzy11grz0bd3054ckwgmlb6ng7d72q",
+ "fetcher": "github",
+ "repo": "gonewest818/geolocation.el",
+ "unstable": {
+ "version": [
+ 20200308,
+ 2324
+ ],
+ "deps": [
+ "deferred",
+ "request-deferred"
+ ],
+ "commit": "83ab28e64bc067016b5344dffe93e380e9807e9c",
+ "sha256": "0ns7pgi4gbpfb192n9fdhv12zflq74jdmqc518rgh7hqlyp26mf4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "deferred",
+ "request-deferred"
+ ],
+ "commit": "83ab28e64bc067016b5344dffe93e380e9807e9c",
+ "sha256": "0ns7pgi4gbpfb192n9fdhv12zflq74jdmqc518rgh7hqlyp26mf4"
+ }
+ },
+ {
+ "ename": "german-holidays",
+ "commit": "bf5b3807ff989b13f95e8d6fad2f26a42ff0643c",
+ "sha256": "0fgrxdgyl6va6axjc5l4sp90pyqaz5zha1g73xyhbxblshm5dwxn",
+ "fetcher": "github",
+ "repo": "rudolfochrist/german-holidays",
+ "unstable": {
+ "version": [
+ 20181213,
+ 644
+ ],
+ "commit": "a8462dffccaf2b665f2032e646b5370e993a386a",
+ "sha256": "1rf8p42pl7jmmdiibfcamlbr3kg6kslffv8vbpwn20xm2ii13rxz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "8388b3bf5b5c38f9b9fcc9216ca26ef0640c6edc",
+ "sha256": "0344w4sbd6wlgl13j163v0hzjw9nwhvpr5s7658xsdd90wp4i701"
+ }
+ },
+ {
+ "ename": "gerrit",
+ "commit": "3b966a2476cf10234686e49d808bcbabe0686891",
+ "sha256": "1ikkd2xjr1n8p43pwycfrsfy9fkib83mf8l0p4bjrjszfcb9ln4v",
+ "fetcher": "github",
+ "repo": "thisch/gerrit.el",
+ "unstable": {
+ "version": [
+ 20200727,
+ 2006
+ ],
+ "deps": [
+ "dash",
+ "hydra",
+ "magit",
+ "s"
+ ],
+ "commit": "eb4b182e493a6d5d3e94c9ff5abe0a0206b03c7c",
+ "sha256": "16v043avd9sm0rq7951x7045zfxhiadq2q056grkjgcpy2id45lw"
+ }
+ },
+ {
+ "ename": "gerrit-download",
+ "commit": "18725e799efd1694ff2397b6c877f926ac5f4ce8",
+ "sha256": "1rlz0iqgvr8yxnv5qmk29xs1jwf0g0ckzanlyldcxvs7n6mhkjjp",
+ "fetcher": "github",
+ "repo": "chmouel/gerrit-download.el",
+ "unstable": {
+ "version": [
+ 20150714,
+ 1408
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "d568acc7c5935188c9bc19ba72719a6092d9f6fd",
+ "sha256": "1ch8yp0mgk57x0pny9bvkknsqj27fd1rcmpm9s7qpryrwqkp1ix4"
+ }
+ },
+ {
+ "ename": "gf",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "0vk866gy97zk8dbx48azjlpnrnf0snc50zlhbzv1is97d9frjici",
+ "fetcher": "github",
+ "repo": "GrammaticalFramework/gf-emacs-mode",
+ "unstable": {
+ "version": [
+ 20181028,
+ 1542
+ ],
+ "deps": [
+ "ht",
+ "s"
+ ],
+ "commit": "30b3127f229e0db522c7752f6957ca01b2ea2821",
+ "sha256": "1znskia2rvmpag8hs4z8d4m1yzn90ibaab94xd9qyk40f53nk4nl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "deps": [
+ "ht",
+ "s"
+ ],
+ "commit": "49fa46db67634530499be969ffd3c436a22d4404",
+ "sha256": "0q234wzzmq1r53dv7z798liwkcbpnvc8mnxvkyfxd94f6za9ylgz"
+ }
+ },
+ {
+ "ename": "ggo-mode",
+ "commit": "e055994c3c3042eab11f11ec916ad5b56689809f",
+ "sha256": "1403x530n90jlfz3lq2vfiqx84cxsrhgs6hhmniq960cjj31q35p",
+ "fetcher": "github",
+ "repo": "mkjunker/ggo-mode",
+ "unstable": {
+ "version": [
+ 20130524,
+ 1143
+ ],
+ "commit": "e326899d9ed8217c7a4ea6cfdc4dd7aea61d6c1b",
+ "sha256": "0bwjiq4a4f5pg0ngvc3lmkk7aki8n9zqfa1dym0lk4vy6yfhcbhp"
+ },
+ "stable": {
+ "version": [
+ 20130521
+ ],
+ "commit": "ea5097f87072309c7b77204888d459d084bf630f",
+ "sha256": "1m9ra9qp7bgf6anfqyn56n3xa9a25ran10k9wd355qknd5skq1zz"
+ }
+ },
+ {
+ "ename": "ggtags",
+ "commit": "b158bb1bc2fbe3de61a6b21174eac7b1457edda2",
+ "sha256": "1cmry4knxbx9257ivhfxsd09z07z3g3wjihi99nrwmhb9h4mpqyw",
+ "fetcher": "github",
+ "repo": "leoliu/ggtags",
+ "unstable": {
+ "version": [
+ 20190320,
+ 2208
+ ],
+ "commit": "4d9000034d352cd983ae6626f560e434d0b3e9ca",
+ "sha256": "1h89prfxdr50drsira3qqvh1mb7v09p4w8jpb7aapq2jl5fl2knc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 13
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "17a121af1b375a6a5c5acec52f2ffd2b9715d244",
+ "sha256": "10hryphjjyi13gvk8sy8r5y7nvs0hbw8ycjqj9snai0c1f9xrdsa"
+ }
+ },
+ {
+ "ename": "gh",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1141l8pas3m755yzby4zsan7p81nbnlch3kj1zh69qzjpgqp30c0",
+ "fetcher": "github",
+ "repo": "sigma/gh.el",
+ "unstable": {
+ "version": [
+ 20180308,
+ 2138
+ ],
+ "deps": [
+ "logito",
+ "marshal",
+ "pcache"
+ ],
+ "commit": "f029fc11f345ef04ab62ee91c38657e29c462fea",
+ "sha256": "1rgdpi8ld5hi2rp30p8sxbrl6z95nvq80jfp3zsr7cmsniwz0vv3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10,
+ 0
+ ],
+ "deps": [
+ "logito",
+ "pcache"
+ ],
+ "commit": "d0471dd1ba279072cbf8caf6368f3008d7120f25",
+ "sha256": "099msgsxdqyjrd18jv2mfkpaylp2scq18782354lcpr3fbp8vbsl"
+ }
+ },
+ {
+ "ename": "gh-md",
+ "commit": "b38908bc1b759b14173ffb49ddeb040a9892cc0d",
+ "sha256": "11bbicmv15qfh4s5bpgvbnc6v9v1hdh6y0clii5k8jv4p1nxfix4",
+ "fetcher": "github",
+ "repo": "emacsorphanage/gh-md",
+ "unstable": {
+ "version": [
+ 20151207,
+ 1740
+ ],
+ "commit": "693cb0dcadff70e813e1a9d303d227aff7898557",
+ "sha256": "0g3bjpnwgqczw6ddh4mv7pby0zyqzqgywjrjz2ib6hwmdqzyp1s0"
+ }
+ },
+ {
+ "ename": "ghc",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "02nc7a9khqpd4ca2snam8dq72m53q8x7v5awx56bjq31z6vcmav5",
+ "fetcher": "github",
+ "repo": "DanielG/ghc-mod",
+ "unstable": {
+ "version": [
+ 20180121,
+ 1218
+ ],
+ "deps": [
+ "haskell-mode"
+ ],
+ "commit": "391e187a5dfef4421aab2508fa6ff7875cc8259d",
+ "sha256": "1z142vgv72yfly7nyknzlcpm51sx5zqi26by3c7g68dbb4dxhq57"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 8,
+ 0,
+ 0
+ ],
+ "deps": [
+ "haskell-mode"
+ ],
+ "commit": "35690941aadbe44d9401102ab44a39753e0bb2b5",
+ "sha256": "0fcaxj2lhkhkm2h91d9fdqas2b99wblwl74l2y6ckpf05hrc4w1q"
+ }
+ },
+ {
+ "ename": "ghc-imported-from",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "063kbymk4r1yrg5ks660d2byrnia6gs6nimjzrvqfi2ib1psc7jc",
+ "fetcher": "github",
+ "repo": "david-christiansen/ghc-imported-from-el",
+ "unstable": {
+ "version": [
+ 20141124,
+ 1932
+ ],
+ "commit": "fcff08628a19f5d26151564659218cc677779b79",
+ "sha256": "1ywwyc2kz1c1s26c412nmzh55cinh84cfiazyyi3jsy5zzwhrbhi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "fcff08628a19f5d26151564659218cc677779b79",
+ "sha256": "1ywwyc2kz1c1s26c412nmzh55cinh84cfiazyyi3jsy5zzwhrbhi"
+ }
+ },
+ {
+ "ename": "ghci-completion",
+ "commit": "804aa2f9088dfc1b48b59aaa72a61f82fb5be971",
+ "sha256": "1a6k47z5kmacj1s5479393jyj27bjx0911yaqfmmwg2hr0yz7vll",
+ "fetcher": "github",
+ "repo": "manzyuk/ghci-completion",
+ "unstable": {
+ "version": [
+ 20151125,
+ 1257
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c47e23d585d2a3c7b13aac163693fdc4f2bb90e5",
+ "sha256": "17fl3k2sqiavbv3bp6rnp3p89j6pnpkkp7wi26pzzk4675r5k45q"
+ }
+ },
+ {
+ "ename": "gherkin-mode",
+ "commit": "82d80becedead8db441eed6f7856ca64d78815e2",
+ "sha256": "0dhrsz24hn0sdf22wpmzbkn66g4540vdkl03pc27kv21gwa9ixxv",
+ "fetcher": "github",
+ "repo": "candera/gherkin-mode",
+ "unstable": {
+ "version": [
+ 20171224,
+ 1353
+ ],
+ "commit": "0313492e7da152f0aa73ddf96c0287ded8f51253",
+ "sha256": "15m9a2dcxgmbj0ni2qcxg3vpxvs50pyjvlacm3xd2xhm9wd484hr"
+ }
+ },
+ {
+ "ename": "ghost-blog",
+ "commit": "4a906d461bcb2aa07050b72669feb5787414d809",
+ "sha256": "0c591cx5kkfmhhqh8jall470iicxdv01mm3m13irq5xhmp3i5kjy",
+ "fetcher": "github",
+ "repo": "javaguirre/ghost-blog-emacs",
+ "unstable": {
+ "version": [
+ 20171023,
+ 742
+ ],
+ "deps": [
+ "markdown-mode"
+ ],
+ "commit": "71b358643cc9a2db1bf752281ff94aba9b59e4cc",
+ "sha256": "1fkh7zslkdi7a4x2xrk73acmigbi7yx9k6iaj75zbjfd49gyqj13"
+ }
+ },
+ {
+ "ename": "ghq",
+ "commit": "a9daa3b0039f6b296b8176523cffbbe27506bb02",
+ "sha256": "0prvywcgwdhx5pw66rv5kkfriahal2mli2ibam5np3z6bwcq4ngh",
+ "fetcher": "github",
+ "repo": "rcoedo/emacs-ghq",
+ "unstable": {
+ "version": [
+ 20160803,
+ 1557
+ ],
+ "commit": "aae4b8cb22fd6c24d2c9e3962c7e8e9dac6d9825",
+ "sha256": "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "aae4b8cb22fd6c24d2c9e3962c7e8e9dac6d9825",
+ "sha256": "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"
+ }
+ },
+ {
+ "ename": "ghub",
+ "commit": "f403587f77380d1db214aa34933a9b5cce1ef2bd",
+ "sha256": "15kjyi8ialpr1zjqvw68w9pa5sigcwy2szq21yvcy295z7ylzy4i",
+ "fetcher": "github",
+ "repo": "magit/ghub",
+ "unstable": {
+ "version": [
+ 20200801,
+ 815
+ ],
+ "deps": [
+ "let-alist",
+ "treepy"
+ ],
+ "commit": "942e7bdabc4b938a0535530c26eb6548504fca24",
+ "sha256": "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 4,
+ 1
+ ],
+ "deps": [
+ "let-alist",
+ "treepy"
+ ],
+ "commit": "942e7bdabc4b938a0535530c26eb6548504fca24",
+ "sha256": "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"
+ }
+ },
+ {
+ "ename": "ghub+",
+ "commit": "03a412fd25218ff6f302734e078a699ff0234e36",
+ "sha256": "0xx7nwmjx3f7z6z164x1lb9arbb3m3d16mpn92v66w572rhbr34n",
+ "fetcher": "github",
+ "repo": "vermiculus/ghub-plus",
+ "unstable": {
+ "version": [
+ 20191229,
+ 1748
+ ],
+ "deps": [
+ "apiwrap",
+ "ghub"
+ ],
+ "commit": "b1adef2402d7599911d4dd447a987a0cea04e6fe",
+ "sha256": "0bzri6s5mwvgir9smkz68d5cgcf4glpdmcj8dz8rjxziwrg6k5bz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "apiwrap",
+ "ghub"
+ ],
+ "commit": "b4a9662f5a6562f8d1dfdda2f009ec78a107c9a2",
+ "sha256": "0xi7xhdla64xbcfqi8x8yzqc6v6rrqxd4q8lcrv7sw08ap5ykfas"
+ }
+ },
+ {
+ "ename": "gif-screencast",
+ "commit": "6d17ca0213ba5ef9dce92002e281e6f08c3492be",
+ "sha256": "05l46bsnjdnvcgwx5rc5y7ry9p0hvmkf09rlpalgnrp8qpy8xw0q",
+ "fetcher": "gitlab",
+ "repo": "Ambrevar/emacs-gif-screencast",
+ "unstable": {
+ "version": [
+ 20200327,
+ 1332
+ ],
+ "commit": "e39786458fb30e2e9683094c75c6c2cef537d9c4",
+ "sha256": "135mkyi8kqsxs0a3qa20splvx4xhl8k91s48yy6gwlz6m81vwvb5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "9522f7e41d07b59afe21e28abbf186f78be3eab6",
+ "sha256": "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"
+ }
+ },
+ {
+ "ename": "gift-mode",
+ "commit": "c4c9081a60bdbf4e5fe1ccc4809c0f6f396d11e4",
+ "sha256": "0sybrjmcg90cjaax7lzzqvacirn5l23hqy9d843c660fsv98scg1",
+ "fetcher": "github",
+ "repo": "csrhodes/gift-mode",
+ "unstable": {
+ "version": [
+ 20180530,
+ 1235
+ ],
+ "commit": "b0441ae6e02f343be3b611a2d4b40495ecd932f0",
+ "sha256": "0dwpmvjsczcdzwhjvpfxrkfha513538z8wq3gr3l1zc1kdggx2bk"
+ }
+ },
+ {
+ "ename": "gildas-mode",
+ "commit": "f43d3aec955d31023056baba971805f0ebbb6702",
+ "sha256": "0bc3d8bnvg1w2chrr4rp9daq1x8p41qgklrniq0bbkr2h93cmkgv",
+ "fetcher": "github",
+ "repo": "smaret/gildas-mode",
+ "unstable": {
+ "version": [
+ 20181022,
+ 649
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "d0c9e997e2aa0bcd9b8b7db082d69100448cb1b2",
+ "sha256": "11290b6daly9nn73iw0s6386hzjk3q2iywdhiazxscxaxzhx2c8c"
+ }
+ },
+ {
+ "ename": "gist",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "053fl8aw0ram9wsabzvmlm5w2klwd2pgcn2w9r1yqfs4xqja5sd3",
+ "fetcher": "github",
+ "repo": "defunkt/gist.el",
+ "unstable": {
+ "version": [
+ 20171128,
+ 406
+ ],
+ "deps": [
+ "gh"
+ ],
+ "commit": "314fe6ab80fae35b95f0734eceb82f72813b6f41",
+ "sha256": "0vbyzww9qmsvdpdc6d6wq6drlq1r9y92807fjhs0frgzmq6dg0rh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "deps": [
+ "gh"
+ ],
+ "commit": "a03f142455e8b39f77fbd57ee1c1e44478c1f9e2",
+ "sha256": "1xisjaxr54zrxzxj8cp8f90kzphd5v3j56d14534fm5r1f5343vp"
+ }
+ },
+ {
+ "ename": "git",
+ "commit": "ce19d2716416295966716db47241a0e37b412ab5",
+ "sha256": "1nd2yvfgin13m368gjn7xah99glspnam4g4fh348x4makxcaw8w5",
+ "fetcher": "github",
+ "repo": "rejeep/git.el",
+ "unstable": {
+ "version": [
+ 20140128,
+ 1041
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "a3396a7027a7d986598c6a2d6d5599bac918f3da",
+ "sha256": "10siqf21ay6vl1r1v2c93rajzyjc67m4wq9q88pbij0z18vkq2f0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "8b7f1477ef367b5b7de452589dd9a8ab30150d0a",
+ "sha256": "06ws3x5qa92drmn6rcp502jk2yil6q9gkzdmb2gww9gb2g695wl5"
+ }
+ },
+ {
+ "ename": "git-annex",
+ "commit": "9c91e16bb9e92db9dc9be6a7af3944c3290d2f14",
+ "sha256": "0194y24vq1w6m2cjgqgx9dqp99cq8y9licyry2zxa5brbrsxi94l",
+ "fetcher": "github",
+ "repo": "jwiegley/git-annex-el",
+ "unstable": {
+ "version": [
+ 20190625,
+ 2118
+ ],
+ "commit": "1324d3f23c534fe79391a2c256bb8803054e383b",
+ "sha256": "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "7d41775a1709b5754a7779e9f64f15d336ea5c8c",
+ "sha256": "0fm62lm29wp1ljgyi6pqqkzwzps53cjjbj5j3y0c2013ry7va6c5"
+ }
+ },
+ {
+ "ename": "git-attr",
+ "commit": "3417e4bc586df60b5e6239b1f7683b87953f5b7c",
+ "sha256": "084l3zdcgy1ka2wq1fz9d6ryhg38gxvr52njlv43gwibzvbqniyi",
+ "fetcher": "github",
+ "repo": "arnested/emacs-git-attr",
+ "unstable": {
+ "version": [
+ 20180925,
+ 2003
+ ],
+ "commit": "50df0630eba2a931146f676d349b29bde6b6b37b",
+ "sha256": "181yd1nwg5mvk8i5y49fmqzk6jp0rzx3zl50qq59d48jlj4l5f9f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "3e43a0cf616b00a4bbd3c6b49fd2397f3103796f",
+ "sha256": "1alpr4gnkikwzljz0fdbrx5hs3zy5s2fz7qyxdz0nx9hv8zb5ir5"
+ }
+ },
+ {
+ "ename": "git-auto-commit-mode",
+ "commit": "5660fb76ce93e5fe56227698d079c6994ef3305f",
+ "sha256": "0nf4n63xnzcsizjk1yl8qvqj9wjdqy57kvn6r736xvsxwzd44xgl",
+ "fetcher": "github",
+ "repo": "ryuslash/git-auto-commit-mode",
+ "unstable": {
+ "version": [
+ 20200801,
+ 748
+ ],
+ "commit": "d4fd94320610100f23de083493d12de3324304b5",
+ "sha256": "180rzh53hrd374nf96cz8n6brxvi68fgss21ic5r623hkczhi73b"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 6,
+ 0
+ ],
+ "commit": "ae69e61233417a7f14efba35e42bd842b707aeb0",
+ "sha256": "0nrx3wnn2jii4yiv9c1cbbll4bgll5j73ypp1fi82kk99n0d8372"
+ }
+ },
+ {
+ "ename": "git-backup",
+ "commit": "07d8ba2d036abeeb585f9dfd0399ae97fd1e2415",
+ "sha256": "094sh80zyidzavf0b4nfpryi164x24mi4bs8jqcwvlyg91vn9b96",
+ "fetcher": "github",
+ "repo": "antham/git-backup",
+ "unstable": {
+ "version": [
+ 20191209,
+ 2144
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "643c8c292c128ac3d0c4d80f2d4a2e19db711e6c",
+ "sha256": "0k7blj6s31llvznwsj94kwpnahb6ga58vkx6542ibdmcgdb59n1d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "e28d7af2d1c58fa5b8068223eb83a73f044e6a6c",
+ "sha256": "1kx5pmm7hrcppryb39z289dab5h0w6hwk0jk1bmvbg9lzf9hqz3q"
+ }
+ },
+ {
+ "ename": "git-backup-ivy",
+ "commit": "51d979059ab570a0e43264dfa081e7241dc3a2b5",
+ "sha256": "1yfyq6i2cfm0kdjkzrc5pql2k5hsk9wwhz220blcizldw142p236",
+ "fetcher": "github",
+ "repo": "walseb/git-backup-ivy",
+ "unstable": {
+ "version": [
+ 20200709,
+ 818
+ ],
+ "deps": [
+ "git-backup",
+ "ivy"
+ ],
+ "commit": "0a5c52e64d0062f77ffefc9213e75690c6d7b111",
+ "sha256": "060x20c4q7cr5zrfsa28z2zgr6isfb2y2ys450h46a9yi3w9h60f"
+ }
+ },
+ {
+ "ename": "git-blamed",
+ "commit": "87bc01218964a01cfd471ee068ed75976793a568",
+ "sha256": "08az5mwg8kv8xsivs63y4sym54l1n34zc9z6k0iwpfixv9f8bk9p",
+ "fetcher": "github",
+ "repo": "tsgates/git-emacs",
+ "unstable": {
+ "version": [
+ 20161028,
+ 1926
+ ],
+ "commit": "cef196abf398e2dd11f775d1e6cd8690567408aa",
+ "sha256": "1n6x69z1s3hk6m6w8gpmqyrb2cxfzhi9w7q94d46c3z6r75v18vz"
+ }
+ },
+ {
+ "ename": "git-command",
+ "commit": "8a55d697bc95a7026c7788c13e4765e1b71075e3",
+ "sha256": "1hsxak63y6648n0jkzl5ajxg45w84qq8vljvjh0bmwfrbb67kwbg",
+ "fetcher": "github",
+ "repo": "10sr/git-command-el",
+ "unstable": {
+ "version": [
+ 20191028,
+ 333
+ ],
+ "deps": [
+ "term-run",
+ "with-editor"
+ ],
+ "commit": "a773d40da39dfb1c6ecf2b0758aa370ddea8f06d",
+ "sha256": "01b2h88a6fxy23p9ggwlj5vv30aw16m8fnqxx9yr9c6yv8p9f5cl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "git-ps1-mode",
+ "term-run",
+ "with-editor"
+ ],
+ "commit": "6cc5c17ca3cc1967b5402bb9a0538fb90933428d",
+ "sha256": "0a3ws852ypi34ash39srkwzkfish4n3c5lma10d9xzddjrwapgj9"
+ }
+ },
+ {
+ "ename": "git-commit",
+ "commit": "cec5af50ae7634cc566adfbfdf0f95c3e2951c0c",
+ "sha256": "1i7122fydqga68cilgzir80xfq77hnrw75zrvn52mjymfli6aza2",
+ "fetcher": "github",
+ "repo": "magit/magit",
+ "unstable": {
+ "version": [
+ 20200701,
+ 2112
+ ],
+ "deps": [
+ "dash",
+ "transient",
+ "with-editor"
+ ],
+ "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+ "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 90,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "with-editor"
+ ],
+ "commit": "791901b2f1d26fa0a383147fe77948a9abc753da",
+ "sha256": "1kw94sdczswsyzn1zlk5s5aplpdv4qd7qcqc5zfxsmsfwm3jacl4"
+ }
+ },
+ {
+ "ename": "git-commit-insert-issue",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0xhlchr7dbm0hp4cjba3x1fdf7lnfc97id327i2fqgkdc4yn9fax",
+ "fetcher": "gitlab",
+ "repo": "emacs-stuff/git-commit-insert-issue",
+ "unstable": {
+ "version": [
+ 20191008,
+ 950
+ ],
+ "deps": [
+ "bitbucket",
+ "github-issues",
+ "gitlab",
+ "projectile",
+ "s"
+ ],
+ "commit": "51c863d9ba21bf11f6681b54be19b4c04d50d1ba",
+ "sha256": "16m3669vm7j0ksfxvp8xqli70z8smb2xlf4cbzgjkfsl3kffbww6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "bitbucket",
+ "github-issues",
+ "gitlab",
+ "helm",
+ "projectile",
+ "s"
+ ],
+ "commit": "5f08c17bf93b17915415d435ee41923d924fe20b",
+ "sha256": "11my5apnyhdqh0pmq9wdjd1iah415a5nw87sk586cb3vxnbn5qas"
+ }
+ },
+ {
+ "ename": "git-dwim",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "0xcigah06ak5wdma4ddcix58q2v5hszncb65f272m4lc2racgsfl",
+ "fetcher": "github",
+ "repo": "rubikitch/emacs-git-dwim",
+ "unstable": {
+ "version": [
+ 20170126,
+ 1214
+ ],
+ "commit": "485c732130686c2f28a026e385366006435394b9",
+ "sha256": "0rcrsjx4ifa9y3rd5l4498kvqkh58zx21gl7mqp053jdsqqq1yrx"
+ }
+ },
+ {
+ "ename": "git-gutter",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1vcrjxg9pckixsbfmvpf0624s990nx33qn0p6xhnag4jn81ih03x",
+ "fetcher": "github",
+ "repo": "emacsorphanage/git-gutter",
+ "unstable": {
+ "version": [
+ 20200326,
+ 1814
+ ],
+ "commit": "2c3242116a42dbbe30fc0844d1ec3c41074cdaba",
+ "sha256": "18gbns5mjwr5kirgpzjp4iqmj130qa5m1hs4phx1057qdq11ihrr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 90
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a786465bd527c13e32c73c02b95086560c1be878",
+ "sha256": "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"
+ }
+ },
+ {
+ "ename": "git-gutter+",
+ "commit": "b2db25d23c2a1a4f38867aac25d687a150e95c2b",
+ "sha256": "1w78p5cz6kyl9kmndgvwnfrs80ha707s8952hycrihgfb6lixmp0",
+ "fetcher": "github",
+ "repo": "nonsequitur/git-gutter-plus",
+ "unstable": {
+ "version": [
+ 20151204,
+ 1723
+ ],
+ "deps": [
+ "dash",
+ "git-commit"
+ ],
+ "commit": "b7726997806d9a2da9fe84ff00ecf21d62b6f975",
+ "sha256": "0bhrrgdzzj8gwxjx7b2kibp1b6s0vgvykfg0n47iq49m6rqkgi5q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "git-commit"
+ ],
+ "commit": "f8daebb6569bb116086d8653da3505382e03d940",
+ "sha256": "101hracd77mici778x3ixwrcicd6fqkcr9z76kapkr0dq5z42yjb"
+ }
+ },
+ {
+ "ename": "git-gutter-fringe",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1i8vvh2si3fdgq1m0yyzs9qbw5jzykp4qgl3ksm4xrimlw1ln4vc",
+ "fetcher": "github",
+ "repo": "emacsorphanage/git-gutter-fringe",
+ "unstable": {
+ "version": [
+ 20200323,
+ 2249
+ ],
+ "deps": [
+ "cl-lib",
+ "fringe-helper",
+ "git-gutter"
+ ],
+ "commit": "da19a474137876b29b5658ee7e9ae366f2b65c1d",
+ "sha256": "015qaaap2cvy4cxl31r27z48zbgd9vyj6rac9yv3caw5zsvzlkiv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 23
+ ],
+ "deps": [
+ "cl-lib",
+ "fringe-helper",
+ "git-gutter"
+ ],
+ "commit": "dfc93d1064df154a809aab350942830408051da3",
+ "sha256": "18jpa5i99x0gqizs2qbqr8c1jlza8x9vpb6wg9zqd4np1p6q4lan"
+ }
+ },
+ {
+ "ename": "git-gutter-fringe+",
+ "commit": "ad46c349d13f7d40db706b487319ede40b96b09c",
+ "sha256": "1zkjb8p08cq2nqskn79rjszlhp9mrblplgamgi66yskz8qb1bgcc",
+ "fetcher": "github",
+ "repo": "nonsequitur/git-gutter-fringe-plus",
+ "unstable": {
+ "version": [
+ 20140729,
+ 1103
+ ],
+ "deps": [
+ "fringe-helper",
+ "git-gutter+"
+ ],
+ "commit": "7a2f49d2455a3a872e90e5f7dd4e6b27f1d96cfc",
+ "sha256": "1rsj193zpblndki4khjjlwl2njxb329d42l75ki55msxifqrn4fi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "fringe-helper",
+ "git-gutter+"
+ ],
+ "commit": "ce9d594c0189e78d78df26a0c26bbcf886e373cd",
+ "sha256": "1c7ijbpa7xw831k55cdm2gl8r597rxnp22jcmqnfpwqkqmk48ln9"
+ }
+ },
+ {
+ "ename": "git-identity",
+ "commit": "ebad3a7a81fbf0293ac04ba319929c8b24bb98f5",
+ "sha256": "0kmpm5zp2x60r68in94x2bazq4wxx95n6zfc6mwiq8ln8m0164j0",
+ "fetcher": "github",
+ "repo": "akirak/git-identity.el",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1106
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "hydra"
+ ],
+ "commit": "6bf8b2cd72061eac5a4d247ba2fabdd8deafdea7",
+ "sha256": "1p6if6fvz6m7nnd7fl1j2dxg830ax06ln9wvm5anpsdky0lqwqyr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "hydra"
+ ],
+ "commit": "d5b8dcfc9f93aecfcd9c6fb212742c165d48173f",
+ "sha256": "1dblc0vlnkm1b16pgi40yr21wh45larb7818l9q8p9nbpxcjinh2"
+ }
+ },
+ {
+ "ename": "git-io",
+ "commit": "a713197f227e3c43de3609dd505cf7cd226d94b9",
+ "sha256": "1acwc9iqchvlvx98fxh4xf3xphv0xzrnxpv8kkl8qaly41izfj0v",
+ "fetcher": "github",
+ "repo": "tejasbubane/emacs-git-io",
+ "unstable": {
+ "version": [
+ 20180317,
+ 1752
+ ],
+ "commit": "48753acba73b48b997bb678fb5e2a938ae63b5d6",
+ "sha256": "1zw24j6l0ap761q1knxjaxzdfz11kmfq29aag5av4n87m86rxzr8"
+ }
+ },
+ {
+ "ename": "git-lens",
+ "commit": "a52b516b7b10bdada2f64499c8f43f85a236f254",
+ "sha256": "02a393b5y4vpmf9ixgyi3a4gbzk4146zql827ljlav3j0434ssw2",
+ "fetcher": "gitlab",
+ "repo": "pidu/git-lens",
+ "unstable": {
+ "version": [
+ 20190319,
+ 1342
+ ],
+ "commit": "f6cc0a37c9c5c422c49c32650e70bc4721707985",
+ "sha256": "05bkpg7xz8644np9imsj5ms821sbsb784ap5fjdnnn69kllz0d33"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "commit": "ea49e2e005af977a08331f8caa8f64d102b3b932",
+ "sha256": "0prx0xbnhhp46c09nnzpz07jgr3s5ngrw8zjksf48abr8acwywfv"
+ }
+ },
+ {
+ "ename": "git-link",
+ "commit": "1385443585e628e3d4efb3badb7611e9d653e0c9",
+ "sha256": "1vqabnmdw8pxd84c15ghh1rnglwb5i4zxicvpkg1ci8xalayn1c7",
+ "fetcher": "github",
+ "repo": "sshaw/git-link",
+ "unstable": {
+ "version": [
+ 20200721,
+ 2250
+ ],
+ "commit": "cbaf7033edad8d4712b6e7dc11cad979c6a002de",
+ "sha256": "074xqp1apcrmnh2cb9m60gaq78hzybyg5sr09n37ka0sw447rp15"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 0
+ ],
+ "commit": "2f61413bec5d94b068140a764ba8c2a732ac8d58",
+ "sha256": "1cj04nzqxwvi1f97y36n311nayj31y3iy7kysb31nlfn19y2g4wj"
+ }
+ },
+ {
+ "ename": "git-messenger",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0nmxx7543x7cl40m69lmyb5fv68gzdwbr8dq18qbi5kapvhg5b8y",
+ "fetcher": "github",
+ "repo": "emacsorphanage/git-messenger",
+ "unstable": {
+ "version": [
+ 20200321,
+ 2337
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "2d64e62e33be9f881ebb019afc183caac9c62eda",
+ "sha256": "1w23qjc740bxj95gdzjcy3qldfmx4y19dhcrzh83l9wfz4y566c7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 18
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "9297464c010dd8a2d584ac8e012876856655a8b5",
+ "sha256": "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"
+ }
+ },
+ {
+ "ename": "git-msg-prefix",
+ "commit": "bd37811d17beaa54e08eb4968791da960d37b391",
+ "sha256": "0vicaj91yhbzda76wrwmbfby2ikaja52bcm923jx8brjh1wd99wr",
+ "fetcher": "github",
+ "repo": "kidd/git-msg-prefix.el",
+ "unstable": {
+ "version": [
+ 20191031,
+ 1304
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "43f6b31c1090371260a2f15b2117a7666920bee7",
+ "sha256": "01fcf0qqy24ji0ka9gh91gdrp81ilq2xjwah3rv2b90yjk8wib60"
+ }
+ },
+ {
+ "ename": "git-ps1-mode",
+ "commit": "ea177b5ea168828881bd8dcd29ef6b4cb81317f0",
+ "sha256": "15gswi9s0m3hrsl1qqyjnjgbglsai95klbdp51h3pcq7zj22wkn6",
+ "fetcher": "github",
+ "repo": "10sr/git-ps1-mode-el",
+ "unstable": {
+ "version": [
+ 20200113,
+ 704
+ ],
+ "commit": "6762a309bd593d26258dfbf43e7bc21254a70fbf",
+ "sha256": "1xrp9c7ih5xvq9mhd4h2vwn47khmiycdinzhn4kmp69xy1a93b2c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "commit": "288e5c4d0ff20a4e1ac9e72b6af632f67f1d7525",
+ "sha256": "1hyq3il03cm6apfawps60r4km8r6pw0vphzba30smsqfk50z3ya3"
+ }
+ },
+ {
+ "ename": "git-time-metric",
+ "commit": "7f6f8839be619d3eeb6ab83b630441bf8c0ca024",
+ "sha256": "1lwpj3z1i532v59vcpkcp1bkad7i2gmlk2yspjhvyvsgp1slsxl1",
+ "fetcher": "github",
+ "repo": "c301/gtm-emacs-plugin",
+ "unstable": {
+ "version": [
+ 20181116,
+ 2011
+ ],
+ "commit": "287108ed1d6885dc795eb3bad4476aa08c626186",
+ "sha256": "0cq4jn2vvcm8hyzmmnnvbmffygxnnv0v71kqlgjm8lcil0xsf84d"
+ }
+ },
+ {
+ "ename": "git-timemachine",
+ "commit": "a52b516b7b10bdada2f64499c8f43f85a236f254",
+ "sha256": "06xdzic7j3d3pqgwxp1q6fs8sf3mi02a9phjvhk90kyvbr8h94ck",
+ "fetcher": "gitlab",
+ "repo": "pidu/git-timemachine",
+ "unstable": {
+ "version": [
+ 20200603,
+ 701
+ ],
+ "deps": [
+ "transient"
+ ],
+ "commit": "8d675750e921a047707fcdc36d84f8439b19a907",
+ "sha256": "1ppids836gdk5j8cli8wkzkjb85f4s1s550v5xpxyyq75rj1bnsr"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 11
+ ],
+ "deps": [
+ "transient"
+ ],
+ "commit": "391eb61050de321101e631fcf373fc70ec6e7700",
+ "sha256": "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"
+ }
+ },
+ {
+ "ename": "git-walktree",
+ "commit": "10bccf74f0bfd3788a7a07956b9f46fe40ff81e8",
+ "sha256": "1iyxncq8bgh4hlsll7agsxnw5038g712aglh4qczg202kdq1qcnz",
+ "fetcher": "github",
+ "repo": "10sr/git-walktree-el",
+ "unstable": {
+ "version": [
+ 20191101,
+ 302
+ ],
+ "deps": [
+ "cl-lib",
+ "git"
+ ],
+ "commit": "162d9073286c256502df4baa9845790b9f4c2f05",
+ "sha256": "17z0csy00i56l7mmz2xhc1pmq044m17r4xy1azp775h9k9y2n6m9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "git"
+ ],
+ "commit": "a1a5490b89d193724ec637818baf2d8edf97c638",
+ "sha256": "13ksz3syz96n3qzk4spwyq8g8xl8riqdlh9glp92v3hg2h3d5nbs"
+ }
+ },
+ {
+ "ename": "git-wip-timemachine",
+ "commit": "81b5dd5765f52efdb88fdc14f48af641a18b3dcb",
+ "sha256": "02fi51k6l23cgnwjp507ylkiwb8azmnhc0fips68nwn9dghzp6dw",
+ "fetcher": "github",
+ "repo": "itsjeyd/git-wip-timemachine",
+ "unstable": {
+ "version": [
+ 20150408,
+ 1006
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "ed4c7931a5f5233bf3e358b1e81647d063526460",
+ "sha256": "1ivnf4vsqk6c7iw1cid7q1hxp7047ajd1mpg0fl002d7m7ginhyl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "7da7f2acec0b1d1252d7474b13190ae88e5b205d",
+ "sha256": "0igawn43i81icshimj5agv33ab120hd6182knlrn3i46p7lcs3lx"
+ }
+ },
+ {
+ "ename": "gitattributes-mode",
+ "commit": "4b4e2ddd2a80875afc0fc654052e6cbff2f3777f",
+ "sha256": "1gjs0pjh6ap0h54savamzx94lq6vqrg58jxqaq5n5qplrbg15a6x",
+ "fetcher": "github",
+ "repo": "magit/git-modes",
+ "unstable": {
+ "version": [
+ 20180318,
+ 1956
+ ],
+ "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
+ "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 8
+ ],
+ "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
+ "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+ }
+ },
+ {
+ "ename": "gitconfig",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0lqm04nfhhhsdagrjnnagkpg7vpswd8lkd3l52lmpdh0fy16kgrf",
+ "fetcher": "github",
+ "repo": "tonini/gitconfig.el",
+ "unstable": {
+ "version": [
+ 20130718,
+ 935
+ ],
+ "commit": "7612a37ca14009cac8fb8d6b6f54adad739a5741",
+ "sha256": "184q3vsxa9rvhc1n57ms47r73f3zap25wswzi66rm6rmfi2k7678"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "6c313a39e20702ddcebc12d146f69db1ce668901",
+ "sha256": "0j0w6ywhiapmx7dk20yw3zgf8803kmccnjsr664am3g85kbb644v"
+ }
+ },
+ {
+ "ename": "gitconfig-mode",
+ "commit": "44a37f59b87f59a587f6681e7aadfabf137c98d7",
+ "sha256": "0hqky40kcgxdnghnf56gpi0xp7ik45ssia1x84v0mvfwqc50dgn1",
+ "fetcher": "github",
+ "repo": "magit/git-modes",
+ "unstable": {
+ "version": [
+ 20180318,
+ 1956
+ ],
+ "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
+ "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 8
+ ],
+ "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
+ "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+ }
+ },
+ {
+ "ename": "github-browse-file",
+ "commit": "f8bca60348fc5e2ad55663e69b8690093cf861ca",
+ "sha256": "03xvgxlw7wmfby898din7dfcg87ihahkhlav1n7qklw6qi7skjcr",
+ "fetcher": "github",
+ "repo": "osener/github-browse-file",
+ "unstable": {
+ "version": [
+ 20160205,
+ 1427
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9742a5183af853788c6ecb83fb7ee0b00d1675ac",
+ "sha256": "0i3dkm0j4gh21b7r5vxr6dddql5rj7lg8xlaairvild0ccf3bhdl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fa5cc00a40869430fb44596792961a4cddf9c265",
+ "sha256": "07vgnmfn0kbg3h3vhf3xk443yi1b55761x881xlmw9sr9nraa578"
+ }
+ },
+ {
+ "ename": "github-clone",
+ "commit": "ba11d6a5cc2fbc76037687c842f90dc815a6468e",
+ "sha256": "0ffrm4lmcj3d9kx3g2d5xbiih7hn4frs0prjrvcjq8acvsbc50q9",
+ "fetcher": "github",
+ "repo": "dgtized/github-clone.el",
+ "unstable": {
+ "version": [
+ 20160623,
+ 310
+ ],
+ "deps": [
+ "gh",
+ "magit"
+ ],
+ "commit": "467b40ca60a6c26257466ebc43c74414df7f19cc",
+ "sha256": "1gdx9sl509vn4bagqg8vi1wvj1h3ryfvd5ggs2mv9rry6x9dg823"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "gh",
+ "magit"
+ ],
+ "commit": "ab048cf49d9ebda73acae803bc44e731e629d540",
+ "sha256": "18c169nxvdl7iv18pyqx690ldg6pkc8njaxdg1cww6ykqzqnfxh7"
+ }
+ },
+ {
+ "ename": "github-elpa",
+ "commit": "81ec06e370f51b750ba3313b661d7386710cffb0",
+ "sha256": "1981dnz49l5r4qsn49i4dhy6x4ln0haff6gl2zx0p5p0zfkzbi7x",
+ "fetcher": "github",
+ "repo": "10sr/github-elpa",
+ "unstable": {
+ "version": [
+ 20200129,
+ 417
+ ],
+ "deps": [
+ "commander",
+ "git",
+ "package-build"
+ ],
+ "commit": "04a55c723ffcd84dd35e5438e7e2b9f1cce08d42",
+ "sha256": "19jidx1v3awga0d95shdcz5vgwfw4svpgs5l43d4l340lz84c4dk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "commander",
+ "git",
+ "package-build"
+ ],
+ "commit": "c5960375ed5d67465412be7eb0ac558082feebc7",
+ "sha256": "02710iy9zz4ymmb2ydrca5kbdc5i06fjg7212iyvpd58yfzxjj2m"
+ }
+ },
+ {
+ "ename": "github-explorer",
+ "commit": "e224d2272892fb6751a093b0306f399057e6098a",
+ "sha256": "0s7k9wspdmvgmyd5sws3asp3kjp5a4nnzvbyn6jp8bcwd7girmr0",
+ "fetcher": "github",
+ "repo": "TxGVNN/github-explorer",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1445
+ ],
+ "commit": "e6bdc500dd9b580ed12a54d18600f5db541b38b8",
+ "sha256": "1a9hnmx1q7fxyyxn0ji2mcam6wz8rwxi7a71f5542l65ah20gg1r"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "e6bdc500dd9b580ed12a54d18600f5db541b38b8",
+ "sha256": "1a9hnmx1q7fxyyxn0ji2mcam6wz8rwxi7a71f5542l65ah20gg1r"
+ }
+ },
+ {
+ "ename": "github-issues",
+ "commit": "f761e76236e9372d5fae6b5c5dcb1992c5d64d37",
+ "sha256": "12c6yb3v7xwkzc51binfgl4jb3sm3al5nlrklbsxhn44alazsvb0",
+ "fetcher": "github",
+ "repo": "inkel/github-issues.el",
+ "unstable": {
+ "version": [
+ 20160616,
+ 1841
+ ],
+ "commit": "816f7712b0eb05bffec0add3507302862d2629c4",
+ "sha256": "1x6jbnx9lwgy64nl9lpp01xcj9cbx5fq435iwhiarjdsm4kvixb5"
+ }
+ },
+ {
+ "ename": "github-modern-theme",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "07xv4psw34mrpb1f5fsvj8vcm9k3xlm43zxr6qmj00p46b35z25r",
+ "fetcher": "github",
+ "repo": "philiparvidsson/GitHub-Modern-Theme-for-Emacs",
+ "unstable": {
+ "version": [
+ 20171109,
+ 1251
+ ],
+ "commit": "a7e7b8e5e9c122138e79e837caf9b7299e748d44",
+ "sha256": "0agfy3wiznb2ksfa00g7066mb0vps4g74mj6nl9wkvx847dzg34h"
+ }
+ },
+ {
+ "ename": "github-notifier",
+ "commit": "c09f4e7e8a84a241881d214e8359f8a50ab14ddf",
+ "sha256": "1jqc2wx1pvkca8syj97ds32404szm0wn12b7zpa98265sg3n64nw",
+ "fetcher": "github",
+ "repo": "xuchunyang/github-notifier.el",
+ "unstable": {
+ "version": [
+ 20180421,
+ 316
+ ],
+ "commit": "274f3812926ea371346f639fcee98066f6e8c96f",
+ "sha256": "1qv66sdi8zm8nv1xc32lsmm2bgkxf03hb8sfz59mbvzhy6r7dxin"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "f8d011ebef9f626a94a27b5576c8ed06e6ff8987",
+ "sha256": "0glkn36fs93y2n1583k8v958qfhl212hbdk3cpkq432hj08wzjnr"
+ }
+ },
+ {
+ "ename": "github-pullrequest",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1p5mwpl59iwd1aqczf1b5shcpzhlqwrcy2vp46c276mhqx15r8fr",
+ "fetcher": "github",
+ "repo": "jakoblind/github-pullrequest",
+ "unstable": {
+ "version": [
+ 20170116,
+ 616
+ ],
+ "deps": [
+ "dash",
+ "magit",
+ "request"
+ ],
+ "commit": "6ae5c38b0fc15b638b5ba4490112d9822ce5e267",
+ "sha256": "1yr7v2wdrvwb1slks83bbh857qq1n207rdk48y8qwlcxbk4ygdr6"
+ }
+ },
+ {
+ "ename": "github-review",
+ "commit": "3b57420d20c799c0472dae4ab7e017d53dafb262",
+ "sha256": "1vh24bmvafv9px80gwgcgk7d9z6pjxaadzz7fba8r3m3fzhv4v58",
+ "fetcher": "github",
+ "repo": "charignon/github-review",
+ "unstable": {
+ "version": [
+ 20200314,
+ 438
+ ],
+ "deps": [
+ "dash",
+ "deferred",
+ "ghub",
+ "s"
+ ],
+ "commit": "fab440aeae4fbf6a8192fd11795052e9eb5d27d1",
+ "sha256": "19kk55r0qixmvw1q80x3rnvcssrq64k5b5ixp8wjzpg6h65s9vk9"
+ }
+ },
+ {
+ "ename": "github-search",
+ "commit": "733a808400858513137e0e3d7d38b5b25e8ddc5a",
+ "sha256": "1pwrzbbwnq0il5494561fyvkr0vmm5jqlvpffgkk28c54vs7ms0b",
+ "fetcher": "github",
+ "repo": "IvanMalison/github-search",
+ "unstable": {
+ "version": [
+ 20190624,
+ 436
+ ],
+ "deps": [
+ "gh",
+ "magit"
+ ],
+ "commit": "b73efaf19491010522b09db35bb0f1bad1620e63",
+ "sha256": "19qmvwki9nfbd2pz5ld36mzcbj8plfls7snmzssgkpw06n0y68j9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "gh",
+ "magit"
+ ],
+ "commit": "1a5c1f8291f4d41e57367a8522699cb08eea8fc4",
+ "sha256": "1382hda3hgpx3c3d1kjzz8hs4l5hi3s7c485hsgihhr6xdd5wrgm"
+ }
+ },
+ {
+ "ename": "github-stars",
+ "commit": "58df7d536f9711e10ecaa6e0a37b9ad255e8fca5",
+ "sha256": "1vljmrjid5xxmq5yfmsaq09js7zd75nmm4gd0kwm3lf71pb3lp6f",
+ "fetcher": "github",
+ "repo": "xuchunyang/github-stars.el",
+ "unstable": {
+ "version": [
+ 20190517,
+ 1319
+ ],
+ "deps": [
+ "ghub"
+ ],
+ "commit": "a9f25ab2487c886f5d50d26693d49856bd51383b",
+ "sha256": "1wp1zfwa4ai0771pkmcsybw8z8zwbwmqazm9fszyg8dsdns5wz2f"
+ }
+ },
+ {
+ "ename": "github-theme",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "132jahd8vvhzhhkm71dzq6x46wmaakbbxg9s7r9779bfwbrms9j9",
+ "fetcher": "github",
+ "repo": "philiparvidsson/GitHub-Theme-for-Emacs",
+ "unstable": {
+ "version": [
+ 20170630,
+ 2201
+ ],
+ "commit": "29f00a51d949a248a5f6355a97131e216747c797",
+ "sha256": "16ldfz1k0hxc1b785gzrf70hg0q88ijjxp39hb62iax1k1aw9vlw"
+ }
+ },
+ {
+ "ename": "gitignore-mode",
+ "commit": "44a37f59b87f59a587f6681e7aadfabf137c98d7",
+ "sha256": "1i98ribmnxr4hwphd95f9hcfm5wfwgdbcxw3g0w17ws7z0ir61mn",
+ "fetcher": "github",
+ "repo": "magit/git-modes",
+ "unstable": {
+ "version": [
+ 20180318,
+ 1956
+ ],
+ "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
+ "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 8
+ ],
+ "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
+ "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+ }
+ },
+ {
+ "ename": "gitignore-templates",
+ "commit": "4c9aa71eac2e68eb1925ed00a2c659c4375bd39c",
+ "sha256": "17zx52pmpd4yqlnj39v7ym728i710mdl0by3lc8zk6ljfz77933w",
+ "fetcher": "github",
+ "repo": "xuchunyang/gitignore-templates.el",
+ "unstable": {
+ "version": [
+ 20200228,
+ 1419
+ ],
+ "commit": "b147d1930645dda76dbd48fb6f4f7f790353de26",
+ "sha256": "17g66y8swy8pjkrv0in9bb1qbaq04ixn5wp6h7r54nfvjlnl1rza"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "b147d1930645dda76dbd48fb6f4f7f790353de26",
+ "sha256": "17g66y8swy8pjkrv0in9bb1qbaq04ixn5wp6h7r54nfvjlnl1rza"
+ }
+ },
+ {
+ "ename": "gitlab",
+ "commit": "1d012991188956f6e06c37d504b0d06ab31487b9",
+ "sha256": "0vxsqfnipgapnd2ijvdnkspk68dlnki3pkpkzg2h6hyazmzrsqnq",
+ "fetcher": "github",
+ "repo": "nlamirault/emacs-gitlab",
+ "unstable": {
+ "version": [
+ 20180312,
+ 1647
+ ],
+ "deps": [
+ "dash",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "8c2324c02119500f094c2f92dfaba4c9977ce1ba",
+ "sha256": "056c4fb5sj2y4h94klx2g24n1g3qdi7ifzs8ksw5v6hcj9lrkb1n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "a1c1441ff5ffb290e695eb9ac05431e9385578f4",
+ "sha256": "0ywjrgafpl4cnrykx9yysazr7hkd2pxk67h065f8z3mid6cgh1wa"
+ }
+ },
+ {
+ "ename": "gitlab-ci-mode",
+ "commit": "d7915ddcf21fdec539a86bb86c209cf0bbd378cb",
+ "sha256": "1jg6ihrgccrcwg30ysyqw9k7rmvfmsrp70skr2057hfamvccwn4f",
+ "fetcher": "gitlab",
+ "repo": "joewreschnig/gitlab-ci-mode",
+ "unstable": {
+ "version": [
+ 20191022,
+ 2017
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "c861dc5fa17d380d5c3aca99dc3bbec5eee623bc",
+ "sha256": "0yd6s5vy5afkigm87xyh1nnwljplx1wdn5h02224ica0py48fzhd"
+ },
+ "stable": {
+ "version": [
+ 20190824,
+ 12,
+ 2
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "2651e831aed84ee2512245952fac94901b086549",
+ "sha256": "16fb4r3vq8xkzl911v7gaky95w1agfxjlpaxpjmidwx48rbcar59"
+ }
+ },
+ {
+ "ename": "gitlab-ci-mode-flycheck",
+ "commit": "d7915ddcf21fdec539a86bb86c209cf0bbd378cb",
+ "sha256": "19ixd60yynsvmaj7mkppp6k73793x794vrnhx3hh6n7dap1rsjdh",
+ "fetcher": "gitlab",
+ "repo": "joewreschnig/gitlab-ci-mode-flycheck",
+ "unstable": {
+ "version": [
+ 20190323,
+ 1829
+ ],
+ "deps": [
+ "flycheck",
+ "gitlab-ci-mode"
+ ],
+ "commit": "eba81cfb7224fd1fa4e4da90d11729cc7ea12f72",
+ "sha256": "1w1simnlffg56j79gal1qf1nlav9f8fmr2zfswfrmcv6cac6fhj9"
+ },
+ "stable": {
+ "version": [
+ 20180605,
+ 1
+ ],
+ "deps": [
+ "flycheck",
+ "gitlab-ci-mode"
+ ],
+ "commit": "30ea0eab74b24818f187242b079845785035e967",
+ "sha256": "0awv24znkxs0h8pkj4b5jwjajxkf1agam09m5glr8zn5g3xbj798"
+ }
+ },
+ {
+ "ename": "gitlab-snip-helm",
+ "commit": "d73cc8f3490f5e56bc0fda1b7e680d21839f4c98",
+ "sha256": "0hv0m9lh105f18d4jhc5i68nhv5hxlv4264mkza4cwq07amxlhw2",
+ "fetcher": "gitlab",
+ "repo": "sasanidas/gitlab-snip-helm",
+ "unstable": {
+ "version": [
+ 20200427,
+ 2014
+ ],
+ "deps": [
+ "dash",
+ "helm"
+ ],
+ "commit": "782df679e33646db29e07508311bc8e8624b484e",
+ "sha256": "1mxkcnjgazc1pyjbqqfnhc9phpyrgah960avm2fmi7m9n5v8cf0w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "helm"
+ ],
+ "commit": "5fe0a66642da6f4e7ba9e1e3a96572c7f1876e37",
+ "sha256": "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"
+ }
+ },
+ {
+ "ename": "gitolite-clone",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0mv2bdfqqq47wgikkm5kwpr8gajylf1yzk2j6cxljz09amgq6c8q",
+ "fetcher": "github",
+ "repo": "IvanMalison/gitolite-clone",
+ "unstable": {
+ "version": [
+ 20160609,
+ 2355
+ ],
+ "deps": [
+ "dash",
+ "pcache",
+ "s"
+ ],
+ "commit": "d8a4c2875c984e51137c980b5773f42703602721",
+ "sha256": "11i9hxj76869w1z9xn7wq370v56hx5hm4d7msn4zgp64glpa66j9"
+ }
+ },
+ {
+ "ename": "gitpatch",
+ "commit": "e1746d87f65dc4b0d8f47c7d6ba4c7e0dfa35953",
+ "sha256": "0qaswkk06z24v40nkjkv7f6gfv0dlsjd6wchkn0ppqw95883vhv1",
+ "fetcher": "github",
+ "repo": "tumashu/gitpatch",
+ "unstable": {
+ "version": [
+ 20170722,
+ 410
+ ],
+ "commit": "577d5adf65c8133caa325c10e89e1e2fc323c907",
+ "sha256": "1jj12pjwza6cq8a3kr8nqnmm3vxs0wam8h983irry4xr4ifywsn4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 1
+ ],
+ "commit": "94d40a2ee2b7cd7b209546ea02568079176b0034",
+ "sha256": "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"
+ }
+ },
+ {
+ "ename": "gitter",
+ "commit": "b8076c3b4d60e4c505bb6f4e426ecc4f69d74684",
+ "sha256": "1ad5abqgfh6x2fcqbbdvgbg8xin69j0h93z7bav1hs3jla7mgwnv",
+ "fetcher": "github",
+ "repo": "xuchunyang/gitter.el",
+ "unstable": {
+ "version": [
+ 20180122,
+ 856
+ ],
+ "deps": [
+ "let-alist"
+ ],
+ "commit": "11cb9b4b45f67bdc24f055a9bfac21d2bd19ea1a",
+ "sha256": "14ri86kxqz9qfhcr0bkgfyggy4bgg9imk9akhw6dfzqkl90gn2gy"
+ },
+ "stable": {
+ "version": [
+ 1
+ ],
+ "deps": [
+ "let-alist"
+ ],
+ "commit": "bd2ba457109dd5d3e4b419e3ef5cbd3b5c9498d6",
+ "sha256": "1fzl40bwdfbcq55p3kvbzjqr5w0703imzgrmqcf4f6jhav127zk6"
+ }
+ },
+ {
+ "ename": "gl-conf-mode",
+ "commit": "e3117e62d429e44506f7d82fc64252d41bc1a4b6",
+ "sha256": "0lf8xmq309aqyf16ymqlr8gj2qawlsqagbdndj0kgj72dnnw4cfm",
+ "fetcher": "github",
+ "repo": "llloret/gitolite-emacs",
+ "unstable": {
+ "version": [
+ 20170714,
+ 1310
+ ],
+ "commit": "9136a9b737e0a5b6471a91571d104c487c43f35b",
+ "sha256": "0wls3sfplrf7wkg7g7fxx4s87cvm3p7myxw6k91np6pbfh8p0s9q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "1a53e548277eb9c669bbeda4bee9be32be7a82ec",
+ "sha256": "059m30vvp71y630pcam6qfv5bxc35ygj26wcg28p56pccxxyj3q9"
+ }
+ },
+ {
+ "ename": "global-tags",
+ "commit": "2bf3f3de312becb948000a21b280c990a03c8aa0",
+ "sha256": "0zfjfn92dnz7x5k67fphch6a5n7nyigapcg20gsz34xshdnnsz3z",
+ "fetcher": "git",
+ "url": "https://git.launchpad.net/global-tags.el",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1816
+ ],
+ "commit": "f3c93828ab08895bf7eac8a2d3bfd949303a6d1f",
+ "sha256": "1ar9pgc31mfv2x26qpvsmiv2lnczfjliplnzjxnrmiccqiabp1y8"
+ }
+ },
+ {
+ "ename": "glsl-mode",
+ "commit": "c416822d54df436f29dcf9a5f26398685fdc17a2",
+ "sha256": "0d05qb60k5f7wwpsp3amzghayfbwcha6rh8nrslhnklpjbg87aw5",
+ "fetcher": "github",
+ "repo": "jimhourihan/glsl-mode",
+ "unstable": {
+ "version": [
+ 20200501,
+ 2304
+ ],
+ "commit": "b07112016436d9634cd4ef747f9af6b01366d136",
+ "sha256": "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"
+ }
+ },
+ {
+ "ename": "gmail-message-mode",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "0py0i7b893ihb8l1hmk3jfl0xil450znadcd18q7svr3zl2m0gkk",
+ "fetcher": "github",
+ "repo": "Malabarba/gmail-mode",
+ "unstable": {
+ "version": [
+ 20160627,
+ 1847
+ ],
+ "deps": [
+ "ham-mode"
+ ],
+ "commit": "ec36672a9dc93c09ebe2f77597b498d11883d008",
+ "sha256": "0xcdd3abcrqr7nabdmmh0kgfar64hhgnrhsiwg3q201cymhnv49p"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "deps": [
+ "ham-mode"
+ ],
+ "commit": "ec36672a9dc93c09ebe2f77597b498d11883d008",
+ "sha256": "0xcdd3abcrqr7nabdmmh0kgfar64hhgnrhsiwg3q201cymhnv49p"
+ }
+ },
+ {
+ "ename": "gmail2bbdb",
+ "commit": "fb3c88b20a7614504165cd5fb459b0a9d5c73f60",
+ "sha256": "03jhrk4vpjim3ybzjxy7s9r1cgjysj9vlc4criz5k0w7vqz3r28j",
+ "fetcher": "github",
+ "repo": "redguardtoo/gmail2bbdb",
+ "unstable": {
+ "version": [
+ 20170423,
+ 1144
+ ],
+ "commit": "a84fa385cfaec7fc5f1518c368e52722da139f99",
+ "sha256": "1qbf3r8a66xlrbni3hv5q5b5v3izis5aid06228rfpc2hwa97hr7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "commit": "181ef6039227bb30a02041d8cfdc435551a7d948",
+ "sha256": "0205ldrw1i7czq44pqdl374cl0rjp5w5zadrayw8brl7mmw92byn"
+ }
+ },
+ {
+ "ename": "gmpl-mode",
+ "commit": "c89a523f87db358c477e5840b0e043e9f253e640",
+ "sha256": "1f60xim8h85jmqpvgfg402ff8mjd66gla8fa0cwi7l18ijnjblpz",
+ "fetcher": "github",
+ "repo": "cute-jumper/gmpl-mode",
+ "unstable": {
+ "version": [
+ 20171031,
+ 2054
+ ],
+ "commit": "c5d362169819ee8b8e8954145daee7e260c54921",
+ "sha256": "00p2z6kbyc0bas21d1zygx7z49w6mf22y9kf1rcm9gqsnnadb4j9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "25d20f9d24594e85cb6f80d35d7c73b7e82cbc71",
+ "sha256": "0x0a94bfkk72kqyr5m6arx450qsg1axmp5r0c4r9m84z8j08r4v1"
+ }
+ },
+ {
+ "ename": "gn-mode",
+ "commit": "f5c6c27bce3d0aaf7e3791299a527d5f1fd69653",
+ "sha256": "1rn4xa1am1yd9k2hpi5b0zhs3pgq4hnhgxdgs258cmhszm8c6ii2",
+ "fetcher": "github",
+ "repo": "lashtear/gn-mode",
+ "unstable": {
+ "version": [
+ 20190428,
+ 1812
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fcf8e1e500d953364e97e7ebc5708a2c00fa3cd2",
+ "sha256": "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fcf8e1e500d953364e97e7ebc5708a2c00fa3cd2",
+ "sha256": "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"
+ }
+ },
+ {
+ "ename": "gnome-calendar",
+ "commit": "8e497668d65f0eabd15e39b7492adb395a5a8e75",
+ "sha256": "00clamlm5b42zqggxywdqrf6s2dnsxir5rpd8mjpyc502kqmsfn6",
+ "fetcher": "github",
+ "repo": "NicolasPetton/gnome-calendar.el",
+ "unstable": {
+ "version": [
+ 20161110,
+ 1256
+ ],
+ "commit": "489f9f15f7bb35696b1cc19db75b554ae8328df2",
+ "sha256": "1aca65g4rfpsm4yk5k2bj6kbb2wrf6s14m8jgv1p94mqmzkj7rlq"
+ }
+ },
+ {
+ "ename": "gnome-screencast",
+ "commit": "628db4fa9d74c60290bf0e81cbb7ffdd08bd4a68",
+ "sha256": "0h16zj0lyg76g6561q8xbazyidwbr8bd146lw8s68vdgmn6k9qn3",
+ "fetcher": "github",
+ "repo": "juergenhoetzel/emacs-gnome-screencast",
+ "unstable": {
+ "version": [
+ 20200115,
+ 2230
+ ],
+ "commit": "8c5e787230b2b8a51520ab970d5b505cbbc8f32f",
+ "sha256": "1zalx97b92vxjczm798arxyxhl29hla9c9j4da9ykpyspf3wry4d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "commit": "261844a88c75f10d98b60577ac8121fcd6721564",
+ "sha256": "0qc5dj14fj3wa36kf3d6n0ijd49lpxmgnn1qw5qqbz29k12w5sqf"
+ }
+ },
+ {
+ "ename": "gnomenm",
+ "commit": "dd98221d3498528efb0f2d943102d32ebd7b34b3",
+ "sha256": "01vmr64j6hcvdbzg945c5a2g4fiidl18dsk4px7mdf85cv45kzqm",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-nm",
+ "unstable": {
+ "version": [
+ 20150316,
+ 1918
+ ],
+ "deps": [
+ "dash",
+ "kv",
+ "s"
+ ],
+ "commit": "9065cda44ffc9e06239b8189a0154d31314c3b4d",
+ "sha256": "1svnvm9fqqx4mrk9jjn11pzqwk71w8kyyd9wwxam8gz22ykw5jb2"
+ }
+ },
+ {
+ "ename": "gntp",
+ "commit": "c69a148d3b72d1be6ea10100a8e0cbbd918baa9c",
+ "sha256": "1ywj3p082g54dcpy8q4jnkqfr12npikx8yz14r0njxdlr0janh4f",
+ "fetcher": "github",
+ "repo": "tekai/gntp.el",
+ "unstable": {
+ "version": [
+ 20141025,
+ 250
+ ],
+ "commit": "767571135e2c0985944017dc59b0be79af222ef5",
+ "sha256": "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "767571135e2c0985944017dc59b0be79af222ef5",
+ "sha256": "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"
+ }
+ },
+ {
+ "ename": "gnu-apl-mode",
+ "commit": "369a55301bba0c4f7ce27f6e141944a523beaa0f",
+ "sha256": "0971pzc14gw8f0b4lzvicxww1k3wc58gbr3fd0qvdra2jifk2is6",
+ "fetcher": "github",
+ "repo": "lokedhs/gnu-apl-mode",
+ "unstable": {
+ "version": [
+ 20200108,
+ 1633
+ ],
+ "commit": "7f84eb307e9765fadcd1e0a9201ae562724ef1c9",
+ "sha256": "0aqlgsl19p2vlagdvahxxhqdcvmr8g7wlziwjvm2pina3lqfw4wc"
+ }
+ },
+ {
+ "ename": "gnuplot",
+ "commit": "be594de074dc3513c773d78c38e823be53061612",
+ "sha256": "1cz3db40r72cfqazg0w85fx5249d98wkxvjjjcn8dhwnmqymqigi",
+ "fetcher": "github",
+ "repo": "emacsorphanage/gnuplot",
+ "unstable": {
+ "version": [
+ 20200322,
+ 53
+ ],
+ "commit": "f0001c30010b2899e36d7d89046322467e923088",
+ "sha256": "1qnlcfzaihwc6kxdr1h2mrhccnhlwsdqwmcygxi2s01q2ifq1nc1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "commit": "aefd4f671485fbcea42511ce79a7a60e5e0110a3",
+ "sha256": "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"
+ }
+ },
+ {
+ "ename": "gnuplot-mode",
+ "commit": "d801a2e0ba5ae7c65b5d312fbf41261278a8b1ba",
+ "sha256": "1avpik06cmi4h6v6039c64b4zw1r1nsg3nrryl254gl881pysfxg",
+ "fetcher": "github",
+ "repo": "mkmcc/gnuplot-mode",
+ "unstable": {
+ "version": [
+ 20171013,
+ 1616
+ ],
+ "commit": "601f6392986f0cba332c87678d31ae0d0a496ce7",
+ "sha256": "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"
+ }
+ },
+ {
+ "ename": "gnus-alias",
+ "commit": "6176257e00ca09e79fdff03c6dd450af8eb83666",
+ "sha256": "0mbq9v8fiqqyldpb66v9bc777mzxywaq2dabivabxjg6554s8chf",
+ "fetcher": "github",
+ "repo": "hexmode/gnus-alias",
+ "unstable": {
+ "version": [
+ 20150316,
+ 42
+ ],
+ "commit": "9447d3ccb4c0e75d0468899cccff7aa249657bac",
+ "sha256": "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"
+ }
+ },
+ {
+ "ename": "gnus-desktop-notify",
+ "commit": "c1cf98dff029d494007fe25d29bd8bcfecc5b8e6",
+ "sha256": "1cfcmmq0ywgp41g0rf8s5fabh3yqbv9iacxi7v74kqh59bqdnz3x",
+ "fetcher": "gitlab",
+ "repo": "wavexx/gnus-desktop-notify.el",
+ "unstable": {
+ "version": [
+ 20180623,
+ 1538
+ ],
+ "deps": [
+ "gnus"
+ ],
+ "commit": "b438feb59136621a8ab979f0e2784f7002398d06",
+ "sha256": "0h7w5wrkrd0jw8nmgbkzq8wam7ynvy7flhjg4frphzmimlhysli2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "deps": [
+ "gnus"
+ ],
+ "commit": "210c70f0021ee78e724f1d8e00ca96e1e99928ca",
+ "sha256": "08j8x0iaz5s9q0b68d8h3153w0z6vak5l8qgw3dd1drz5p9xnvyw"
+ }
+ },
+ {
+ "ename": "gnus-notes",
+ "commit": "971db65c22e975ef52ca964e7d468d2f65ad81ea",
+ "sha256": "0xvkkmgqhib1fx8dbzv1iz03y67z504b312n2k1rfwl7rgggjc8k",
+ "fetcher": "github",
+ "repo": "deusmax/gnus-notes",
+ "unstable": {
+ "version": [
+ 20200605,
+ 1421
+ ],
+ "deps": [
+ "async",
+ "bbdb",
+ "helm",
+ "hydra",
+ "lv",
+ "org",
+ "s"
+ ],
+ "commit": "2b587ac2e428fe3805443df5306e67d78bdf8ec2",
+ "sha256": "0r08dhc6w2zk8is738qd6rkpq03n1fnfr398lsqgn2jaizgsik0l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "async",
+ "bbdb",
+ "helm",
+ "hydra",
+ "lv",
+ "org",
+ "s"
+ ],
+ "commit": "56403ee22242fd479c2aff85f4cf4133e32ca90a",
+ "sha256": "0g26ygcmbcmxbafvyw04xcqzg2dlava2rqa5m2lv0cxyi6rnvdhj"
+ }
+ },
+ {
+ "ename": "gnus-recent",
+ "commit": "0b80d94cf1a8b8e2d4da5d45f65231aa4884a3a0",
+ "sha256": "14xac6bmn61bk0h6dby14111iijz0j254v4mh77lf0ydbz6wxjf1",
+ "fetcher": "github",
+ "repo": "unhammer/gnus-recent",
+ "unstable": {
+ "version": [
+ 20200513,
+ 1038
+ ],
+ "commit": "a7b131c5acd10df2949ef4f799af08ded013bc35",
+ "sha256": "0cx0764ksxmjnryjwya3h49r1c5npyipxv16amad1lyysm4a8q0a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "a7b131c5acd10df2949ef4f799af08ded013bc35",
+ "sha256": "0cx0764ksxmjnryjwya3h49r1c5npyipxv16amad1lyysm4a8q0a"
+ }
+ },
+ {
+ "ename": "gnus-select-account",
+ "commit": "e1746d87f65dc4b0d8f47c7d6ba4c7e0dfa35953",
+ "sha256": "1yini6kif7vp5msmhnnpfkab5m5px8y4wgvc0f0k79kdd17gvpsx",
+ "fetcher": "github",
+ "repo": "tumashu/gnus-select-account",
+ "unstable": {
+ "version": [
+ 20170722,
+ 511
+ ],
+ "commit": "ddc8c135eeaf90f5b6692a033af2badae36e68ce",
+ "sha256": "0csq8cqv028g3mrvk88l0nlj3dk5fh67c10hdjwvxbf7winv0391"
+ }
+ },
+ {
+ "ename": "gnus-summary-ext",
+ "commit": "5ca4a905b5f81991074c7d3e41d4422c7e6713d5",
+ "sha256": "0svyz8fy4k9ba6gpdymf4cf8zjjpgm71y48vlybxbv507xjm17qf",
+ "fetcher": "github",
+ "repo": "vapniks/gnus-summary-ext",
+ "unstable": {
+ "version": [
+ 20180113,
+ 1316
+ ],
+ "commit": "025fd853fe9280ae696a89ec2c2cac9befd010aa",
+ "sha256": "07ww2nc03daz70f2ajw7b2gin22xa306001zclhrxkm1cpjif2fi"
+ }
+ },
+ {
+ "ename": "gnus-summary-repo",
+ "commit": "0decb1e7d7fd32dc4ed7e07c751621eea0af0ab5",
+ "sha256": "0lwdhymayqs1cx76lnral2cs5dhrxwzlpc1ivchbyr1pj9x2nj6w",
+ "fetcher": "github",
+ "repo": "TxGVNN/gnus-summary-repo",
+ "unstable": {
+ "version": [
+ 20190617,
+ 1419
+ ],
+ "commit": "3968667bfded60fbbf33f2fba3170e2b6501ec43",
+ "sha256": "0rxaxc7b0dkhsd5547hngq24bdvnxig5a7xp9jir59fp2k8xd4aw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "3968667bfded60fbbf33f2fba3170e2b6501ec43",
+ "sha256": "0rxaxc7b0dkhsd5547hngq24bdvnxig5a7xp9jir59fp2k8xd4aw"
+ }
+ },
+ {
+ "ename": "gnus-x-gm-raw",
+ "commit": "263b87e40e32421ae56a99971a7e1baca0484778",
+ "sha256": "1a5iccghzqmcndql2bppvr48535sf6jbvc83iypr1031z1b5k4wg",
+ "fetcher": "github",
+ "repo": "aki2o/gnus-x-gm-raw",
+ "unstable": {
+ "version": [
+ 20140610,
+ 731
+ ],
+ "deps": [
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "978bdfcecc8844465b71641c2e909fcdc66b22be",
+ "sha256": "1i3f67x2l9l5c5agspbkxr2mmh3rpq3009d8yzh6r1lih0b4hril"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "978bdfcecc8844465b71641c2e909fcdc66b22be",
+ "sha256": "1i3f67x2l9l5c5agspbkxr2mmh3rpq3009d8yzh6r1lih0b4hril"
+ }
+ },
+ {
+ "ename": "go",
+ "commit": "50e8d089f4e163eb459fc602cb90440b110b489f",
+ "sha256": "1mk1j504xwi3xswc0lfr3czs9j6wcsbrw2halr46mraiy8lnbz6h",
+ "fetcher": "github",
+ "repo": "eschulte/el-go",
+ "unstable": {
+ "version": [
+ 20161111,
+ 249
+ ],
+ "commit": "ff45fb44d9cb6579d8511d8b6156ed0b34d5ac97",
+ "sha256": "14av8zcxp9r4ka0h9x73i6gzwbf231wqkin65va3agrzwaf8swz1"
+ }
+ },
+ {
+ "ename": "go-add-tags",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0syra7h9wixiq3g4ydamvzw2vc0852zcx5ij0rhw103hrvhrzcjd",
+ "fetcher": "github",
+ "repo": "emacsorphanage/go-add-tags",
+ "unstable": {
+ "version": [
+ 20161123,
+ 1227
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "54879945e46a0884c5f93d7fd6c866a9cdf401ac",
+ "sha256": "1gr65skrd41pk46ilfsbxfdng4br6h9c6blf1q1wx6i9ylhs0ak5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "54879945e46a0884c5f93d7fd6c866a9cdf401ac",
+ "sha256": "1gr65skrd41pk46ilfsbxfdng4br6h9c6blf1q1wx6i9ylhs0ak5"
+ }
+ },
+ {
+ "ename": "go-autocomplete",
+ "commit": "ef45683cbfe82bf8a9d6f3f1c59e3cf340accbe3",
+ "sha256": "15ns1zzw6kblcbih7dmjvk1p0f6f3p2wpgx4gnd9ax0fcj65ghwi",
+ "fetcher": "github",
+ "repo": "mdempsky/gocode",
+ "unstable": {
+ "version": [
+ 20150904,
+ 240
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c",
+ "sha256": "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb"
+ },
+ "stable": {
+ "version": [
+ 20150303
+ ],
+ "deps": [
+ "auto-complete"
+ ],
+ "commit": "eef10fdde96a12528a6da32f51bf638b2863a3b1",
+ "sha256": "03snnra31b5j6iy94gql240vhkynbjql9b4b5j8bsqp9inmbsia3"
+ }
+ },
+ {
+ "ename": "go-capf",
+ "commit": "be3dc9ae83c9d11a4f04f79775b17c5a2b86e96d",
+ "sha256": "0k6s65bf8iwkpr93agw9hqaxfckqi43lanffdic6j4vjrk4inlwz",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~zge/go-capf",
+ "unstable": {
+ "version": [
+ 20200814,
+ 1046
+ ],
+ "commit": "acc353135f390245453f0d90f5846f67b0a84952",
+ "sha256": "1hb8glprzpm94bsyx2mnv9w6b825y451agpqh2ry8ngydbc1llhi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "de3b668b83a73da5ce189c536a58aa1d4f5d492c",
+ "sha256": "1y1dscqyd2jx5irj5pcy7sspzzp0nsy2j4zaqhln2snffpqa3hmf"
+ }
+ },
+ {
+ "ename": "go-complete",
+ "commit": "4df81abbf3b16f06fa327c1626bef1245ea77758",
+ "sha256": "0dl0ibw145f84kd709r5i2kaw07z1sjzn3dmsiqn8dncspcf2vb4",
+ "fetcher": "github",
+ "repo": "vibhavp/go-complete",
+ "unstable": {
+ "version": [
+ 20190409,
+ 516
+ ],
+ "deps": [
+ "cl-lib",
+ "go-mode"
+ ],
+ "commit": "056294014f37a1004958ec17ebd6748deed63502",
+ "sha256": "021mc1lq4xvmj8dvnpr6hhfs08cd0r07d520h498b345y6a6ihdg"
+ }
+ },
+ {
+ "ename": "go-direx",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0x9yrbbcwsc5kf88d1j75g02yndavgb4g4wwhy9ml58a6d6kq5y3",
+ "fetcher": "github",
+ "repo": "emacsorphanage/go-direx",
+ "unstable": {
+ "version": [
+ 20150316,
+ 143
+ ],
+ "deps": [
+ "cl-lib",
+ "direx"
+ ],
+ "commit": "8f2206469328ee932c7f1892f5e1fb02dec98432",
+ "sha256": "09rxz40bkr0l75v3lmf8lcwqsgjiv5c8zjmwzy2d4syj4qv69c5y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "direx"
+ ],
+ "commit": "aecb9fef4d56d04d230d37c75c260c8392b5ad9f",
+ "sha256": "05yc0nylg3457an5j7yp3x23157j0hbi21qhcpgsa01144mwnwln"
+ }
+ },
+ {
+ "ename": "go-dlv",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0lb5v9pmd6m8nvk4c9gcda5dmshrf5812gg1arq5p2g0nzg32mm8",
+ "fetcher": "github",
+ "repo": "benma/go-dlv.el",
+ "unstable": {
+ "version": [
+ 20200713,
+ 1202
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "69b86c1bdb73d78fb3404f2f1eefbc9a93b1aba6",
+ "sha256": "1ww91sw15qnwrglz9q37vxm5qxxa43ccpyczz7kkjp66qs6746wh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "69b86c1bdb73d78fb3404f2f1eefbc9a93b1aba6",
+ "sha256": "1ww91sw15qnwrglz9q37vxm5qxxa43ccpyczz7kkjp66qs6746wh"
+ }
+ },
+ {
+ "ename": "go-eldoc",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1x8qwmn8b2wc79dqqx89c3l1m9sj08hgdwh5lwrlp1l80vhfp3sr",
+ "fetcher": "github",
+ "repo": "emacsorphanage/go-eldoc",
+ "unstable": {
+ "version": [
+ 20170305,
+ 1427
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "cbbd2ea1e94a36004432a9ac61414cb5a95a39bd",
+ "sha256": "1029qg6ida3cw4ynxll6ykpnqkpbrbrx12nnzcplhc25vqpz7hik"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 30
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "f1ad302ec4073354801e613293be2f55ba770618",
+ "sha256": "0hkwhmgjyn5jxrd0k1nakrvy4d7cz7sxb1nw4hb1rqmz4yd14c8i"
+ }
+ },
+ {
+ "ename": "go-errcheck",
+ "commit": "c874f608a55cafcc6e57ca2c80bdae6b1c2e47e9",
+ "sha256": "11a75h32cd5h5xjv30x83k60s49k9fhgis31358q46y2gbvqp5bs",
+ "fetcher": "github",
+ "repo": "dominikh/go-errcheck.el",
+ "unstable": {
+ "version": [
+ 20160723,
+ 43
+ ],
+ "commit": "9db21eccecedc2490793f176246094167164af31",
+ "sha256": "1ngzgkmcbk6qa3p97hch75k446h15515arsdfv7mqb4m5va6429h"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "commit": "1b0cd6af048a8b2074ace14ab51fb6c987beb430",
+ "sha256": "1fm6xd3vsi8mqh0idddjpfxlsmz1ljmjppw3qkxl1vr0qz3598k3"
+ }
+ },
+ {
+ "ename": "go-expr-completion",
+ "commit": "8d09efb2e93fefd5158685084691ccf20178fe78",
+ "sha256": "1fhcwwv377zahg6nh9v9vigb7pqnm6r0fwvfa6fd5j81vffivaww",
+ "fetcher": "github",
+ "repo": "fujimisakari/emacs-go-expr-completion",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1750
+ ],
+ "commit": "66bba78f52a732b978848e3a4c99fa2afeb6c25f",
+ "sha256": "0gbxgf36p24gjh9n5swmvyzl4h518lx63zyf0b80xnrvb7d5qi46"
+ }
+ },
+ {
+ "ename": "go-fill-struct",
+ "commit": "0c03d2382efd20e248b27b5505cdeed67d000f73",
+ "sha256": "19xxqb836saxigvwdqf4xv0y9zrl7csv97x0facgyjyiqmwhx3x7",
+ "fetcher": "github",
+ "repo": "s-kostyaev/go-fill-struct",
+ "unstable": {
+ "version": [
+ 20171225,
+ 331
+ ],
+ "commit": "a613d0b378473eef39e8fd5724abe790aea84321",
+ "sha256": "16bgfykvqc61hlx1hj55z15y83zgpavhb853sblds75m8w7mndqg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "3c97c92e78f3629a7a1069404c7c641881c16d0e",
+ "sha256": "0ara9qqv31pr7dpcby6xp24llf79m0dmwrx4yv6w0bhxi197fmlx"
+ }
+ },
+ {
+ "ename": "go-gen-test",
+ "commit": "0861c126161a2674f0e115eac6f948490b142b44",
+ "sha256": "1pj8n8xj9ccq9ips4wy4v6hdxxgwv11pwi671l6jjrig38v13dzr",
+ "fetcher": "github",
+ "repo": "s-kostyaev/go-gen-test",
+ "unstable": {
+ "version": [
+ 20171023,
+ 358
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "44c202ac97e728e93a35cee028a0ea8dd6e4292c",
+ "sha256": "1vi5xsf0xbcbvapi20hsjangwyp38cbgi8kiccpmingnq2kp8ghs"
+ }
+ },
+ {
+ "ename": "go-gopath",
+ "commit": "1ca8d10b10b015c5bdafe1dbc8e53eb4c0d26d9c",
+ "sha256": "0jfy2r3axqpn2cnibp8f9vw36kmx0icixhj6zy43d9xa4znvdqal",
+ "fetcher": "github",
+ "repo": "iced/go-gopath",
+ "unstable": {
+ "version": [
+ 20160705,
+ 1034
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5172fc53f21edbf9347d5ee7d1d745da1ec88a15",
+ "sha256": "0gqb3k33y42gchc89rw3k1pvb7ai9ka50ljfd4avk31fdpr4dln5"
+ }
+ },
+ {
+ "ename": "go-guru",
+ "commit": "0cede3a468b6f7e4ad88e9fa985f0fdee7d195f5",
+ "sha256": "01f0gz65z8d0iv8k49xl2sp6q4qnsvwhd4g8fb2irp7iclb0xmvk",
+ "fetcher": "github",
+ "repo": "dominikh/go-mode.el",
+ "unstable": {
+ "version": [
+ 20181012,
+ 330
+ ],
+ "deps": [
+ "cl-lib",
+ "go-mode"
+ ],
+ "commit": "734d5232455ffde088021ea5908849ac570e890f",
+ "sha256": "0228l3s3afmvm4cy3vwcpz3g2gkmyhqdq2kwwn1n5dsha8fzbdps"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "go-mode"
+ ],
+ "commit": "35f6826e435c3004dabf134d0f2ae2f31ea7b6a2",
+ "sha256": "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"
+ }
+ },
+ {
+ "ename": "go-imenu",
+ "commit": "d602b6071787018e3e0a68b4852eb978b34acbea",
+ "sha256": "0s8rc7rkqlywrhnm2h8yygn87jhjc492wmsvnr1rxl62wf5cijms",
+ "fetcher": "github",
+ "repo": "brantou/go-imenu.el",
+ "unstable": {
+ "version": [
+ 20181029,
+ 1029
+ ],
+ "commit": "4f3f334ed0b6f6afaca6b9775636a52ad3843053",
+ "sha256": "1ar2fw7wnlxvdj61vhd9sfqrd0yrb65r7ldjvfdpp1jv9mg50vad"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "fc1566fbe396fc8c94f7de99d9c7191b47cd48d9",
+ "sha256": "0qygxqrzx009cd59b452ampakr9rwmj1skl8pic9an4wjz742qlg"
+ }
+ },
+ {
+ "ename": "go-impl",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1vi986ymza88cpjlxjz88na1w9dq4dr9d82vdbpav762vz828h9i",
+ "fetcher": "github",
+ "repo": "emacsorphanage/go-impl",
+ "unstable": {
+ "version": [
+ 20170125,
+ 1552
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "69f0d0ef05771487e15abec500cd06befd171abf",
+ "sha256": "1rmik6g3l9q1bqavmqx1fhcadz4pwswgfnkbaxl6c5b6g2sl26iq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 14
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "69f0d0ef05771487e15abec500cd06befd171abf",
+ "sha256": "1rmik6g3l9q1bqavmqx1fhcadz4pwswgfnkbaxl6c5b6g2sl26iq"
+ }
+ },
+ {
+ "ename": "go-imports",
+ "commit": "4118ebf0db84cc047fab311c789bfbffd6eb2d92",
+ "sha256": "0xxlh4rmyvfxiynsdqng6wd3js7h3azhb8ii0ch7n0hhqkcnda4x",
+ "fetcher": "github",
+ "repo": "yasushi-saito/go-imports",
+ "unstable": {
+ "version": [
+ 20190715,
+ 1647
+ ],
+ "commit": "55681e815da93b6f927213c4aa352ae33db97c37",
+ "sha256": "12xgkhc5nqrj5x306ninysyd78dwa3p3bvf69qqi2g0a9ngl8d3x"
+ }
+ },
+ {
+ "ename": "go-mode",
+ "commit": "0cede3a468b6f7e4ad88e9fa985f0fdee7d195f5",
+ "sha256": "0ghqm4lbkfla79plqiyb1lzf5kbz0380h9vf8px15zal00xrv0bl",
+ "fetcher": "github",
+ "repo": "dominikh/go-mode.el",
+ "unstable": {
+ "version": [
+ 20200425,
+ 1740
+ ],
+ "commit": "734d5232455ffde088021ea5908849ac570e890f",
+ "sha256": "0228l3s3afmvm4cy3vwcpz3g2gkmyhqdq2kwwn1n5dsha8fzbdps"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 0
+ ],
+ "commit": "35f6826e435c3004dabf134d0f2ae2f31ea7b6a2",
+ "sha256": "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"
+ }
+ },
+ {
+ "ename": "go-noisegate",
+ "commit": "1a033cf87c7d53ed8e3af1ac3a5b9b1bac035559",
+ "sha256": "0hpslf7q4jqbfkr17kb6phc0dbdvqcm9wynzj4fsji7c1cq0z5xh",
+ "fetcher": "github",
+ "repo": "go-noisegate/go-noisegate.el",
+ "unstable": {
+ "version": [
+ 20200502,
+ 703
+ ],
+ "commit": "e3fc198c234131c94f7d307b7f7c6ef623fb93b7",
+ "sha256": "12b4l3sl1pykz7v73vsjsicbqpmylsmwhlyprpiimc0r1is5km3m"
+ }
+ },
+ {
+ "ename": "go-playground",
+ "commit": "900aabb7bc2350698f8740d72a5fad69c9219c33",
+ "sha256": "1rabwc80qwkafq833m6a199zfiwwmf0hha89721gc7i0myk9pac6",
+ "fetcher": "github",
+ "repo": "grafov/go-playground",
+ "unstable": {
+ "version": [
+ 20200818,
+ 2215
+ ],
+ "deps": [
+ "go-mode",
+ "gotest"
+ ],
+ "commit": "ede417a52c0eea1a69658f4c6c6c12d6165e64a4",
+ "sha256": "1zzdkp6zqh03gfiirmvwv5c8s9m4511zcaya9cp5sjzmh0g5wjip"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7
+ ],
+ "deps": [
+ "go-mode",
+ "gotest"
+ ],
+ "commit": "ede417a52c0eea1a69658f4c6c6c12d6165e64a4",
+ "sha256": "1zzdkp6zqh03gfiirmvwv5c8s9m4511zcaya9cp5sjzmh0g5wjip"
+ }
+ },
+ {
+ "ename": "go-playground-cli",
+ "commit": "3af0a72ee1222c133ccfd76f004a346fd6110eee",
+ "sha256": "00h89rh8d7lq1di77nv609xbzxmjmffq6mz3cmagylxncflg81jc",
+ "fetcher": "github",
+ "repo": "kosh04/emacs-go-playground",
+ "unstable": {
+ "version": [
+ 20160503,
+ 914
+ ],
+ "deps": [
+ "cl-lib",
+ "deferred",
+ "f",
+ "let-alist",
+ "names",
+ "request",
+ "s"
+ ],
+ "commit": "60beebd98e3930641d41cee0189c579626f223bc",
+ "sha256": "1fcm65r1sy2fmcp2i7mwc7mxqiaf4aaxda4i2qrm8s25cxsffir7"
+ }
+ },
+ {
+ "ename": "go-projectile",
+ "commit": "3559a179be2a5cda71ee0a5a18bead4b3a1a8138",
+ "sha256": "07diik27gr82n11a8k62v1jxq8rhi16f02ybk548f6cn7iqgp2ml",
+ "fetcher": "github",
+ "repo": "dougm/go-projectile",
+ "unstable": {
+ "version": [
+ 20200609,
+ 131
+ ],
+ "deps": [
+ "dash",
+ "go-eldoc",
+ "go-guru",
+ "go-mode",
+ "go-rename",
+ "projectile"
+ ],
+ "commit": "ad4ca3b5695a0e31e95e3cc4ccab498f87d68303",
+ "sha256": "1ai34z7n56cczz6qb0vbcrqbjrkmxwv9r928pjbw58812nycj1mh"
+ }
+ },
+ {
+ "ename": "go-rename",
+ "commit": "d806abe90da9a8951fdb0c31e2167bde13183c5c",
+ "sha256": "1cd2nfgwnqzylbry11ahahdip8w66w5hnrndrs65ip10s08w2xki",
+ "fetcher": "github",
+ "repo": "dominikh/go-mode.el",
+ "unstable": {
+ "version": [
+ 20190805,
+ 2101
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "734d5232455ffde088021ea5908849ac570e890f",
+ "sha256": "0228l3s3afmvm4cy3vwcpz3g2gkmyhqdq2kwwn1n5dsha8fzbdps"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 0
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "35f6826e435c3004dabf134d0f2ae2f31ea7b6a2",
+ "sha256": "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"
+ }
+ },
+ {
+ "ename": "go-scratch",
+ "commit": "1713e6f02f8908b828ac2722a3185ea7cceb0609",
+ "sha256": "11ahvmxbh67wa39cymymxmcpkq0kcn5jz0rrvazjy2p1hx3x1ma5",
+ "fetcher": "github",
+ "repo": "shosti/go-scratch.el",
+ "unstable": {
+ "version": [
+ 20150810,
+ 440
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "3f68cbcce04f59eb8e83af109164731ec0454be0",
+ "sha256": "1a6vg2vwgnafb61pwrd837fwlq5gs80wawbzjsnykawnmcaag8pm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "3f68cbcce04f59eb8e83af109164731ec0454be0",
+ "sha256": "1a6vg2vwgnafb61pwrd837fwlq5gs80wawbzjsnykawnmcaag8pm"
+ }
+ },
+ {
+ "ename": "go-snippets",
+ "commit": "ca9f3022e7f4d5391be394cd56f6db75c9cff3b6",
+ "sha256": "1wcbnfzxailv18spxyv4a0nwlqh9l7yf5vxg0qcjcp5ajd2w12kn",
+ "fetcher": "github",
+ "repo": "toumorokoshi/go-snippets",
+ "unstable": {
+ "version": [
+ 20180113,
+ 611
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "d437df148879566ffe7f2e503a3cf2602aa9fb28",
+ "sha256": "0rs2yj9bh0snf13hfj9bvyawl16j8416naz6h52l21q72ymd4b0k"
+ }
+ },
+ {
+ "ename": "go-stacktracer",
+ "commit": "401996c585d2ccf97add1bc420250d96188b651a",
+ "sha256": "1laz2ggqydnyr7b36ggb7sphlib79dhp7nszw42wssmv212v94cy",
+ "fetcher": "github",
+ "repo": "samertm/go-stacktracer.el",
+ "unstable": {
+ "version": [
+ 20150430,
+ 2142
+ ],
+ "commit": "a2ac6d801b389f80ca4e2fcc1ab44513a9e55976",
+ "sha256": "0n5nsyfwx2pdlwx6bl35wrfyady5dwraimv92f58mhc344ajd70y"
+ }
+ },
+ {
+ "ename": "go-tag",
+ "commit": "fc4cd3fd8fb0707912e205b9d71789ea8126c442",
+ "sha256": "18ff41i0gr708fl4gzzspf9cc09nv4wy21wsn609yhwlh7w0vs1f",
+ "fetcher": "github",
+ "repo": "brantou/emacs-go-tag",
+ "unstable": {
+ "version": [
+ 20180227,
+ 411
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "59b243f2fa079d9de9d56f6e2d94397e9560310a",
+ "sha256": "0r72qk79q8yyidpxgq4r0295fm73id946p1r4s65bwyzii76rjyi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "8dbcb7d42dccac046c7beb31bdf79bb09a0fef40",
+ "sha256": "1l20az4lhgbrh96sk6bpvp3w4bh29653fms4bimmiaqmhn2n14y2"
+ }
+ },
+ {
+ "ename": "gobgen",
+ "commit": "8c9fed22bb8dbfb359e4fdb0d802ed4b5781f50d",
+ "sha256": "0fb0q9x7wj8gs1iyr87q1vpxmfa2d43zy6cgxpzmv2wc26x96vi7",
+ "fetcher": "github",
+ "repo": "gergelypolonkai/gobgen.el",
+ "unstable": {
+ "version": [
+ 20161020,
+ 1523
+ ],
+ "commit": "ed2c2b0d217deae293096f3cf14aa492791ddd4f",
+ "sha256": "1isda941gzrl9r2xxaxbsqjxq146cmnhl04m634m8m0q2d751pwk"
+ }
+ },
+ {
+ "ename": "god-mode",
+ "commit": "c4f8b0a0766bcff6b716b9e35da25c00b8a91abd",
+ "sha256": "0l8hdn227axan7ryx6z4fbk9nqsb50bmhwqxgy3g8g19vqhflhfr",
+ "fetcher": "github",
+ "repo": "emacsorphanage/god-mode",
+ "unstable": {
+ "version": [
+ 20200708,
+ 2200
+ ],
+ "commit": "ad2e6745294843462f78768b5a1cd3b0d3563951",
+ "sha256": "00v69c76737yfmy3injhf6l1khj67rr0xvpq0yyjxg4hh9dv4j90"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 17,
+ 2
+ ],
+ "commit": "2e519312fdef36dea523aa530d134a703d3032a6",
+ "sha256": "1gnwl81immxdq72hsxgic2631r4jsq9pv5jqh0jzji0q320m9xcl"
+ }
+ },
+ {
+ "ename": "godoctor",
+ "commit": "0e23e1362ff7d477ad9ce6cfff694db989dfb87b",
+ "sha256": "0k734hry9npsr6zhsplcvmcjqw6jdf79pv4k9dw0xvd598hkpazz",
+ "fetcher": "github",
+ "repo": "microamp/godoctor.el",
+ "unstable": {
+ "version": [
+ 20180710,
+ 2152
+ ],
+ "commit": "4b45ff3d0572f0e84056e4c3ba91fcc178199859",
+ "sha256": "12gga1ghc54r6f2adyaq30hm2yxspvgg54zd4k82c3d6cj51qwci"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "commit": "4b45ff3d0572f0e84056e4c3ba91fcc178199859",
+ "sha256": "12gga1ghc54r6f2adyaq30hm2yxspvgg54zd4k82c3d6cj51qwci"
+ }
+ },
+ {
+ "ename": "gold-mode",
+ "commit": "6d1991b63067c581c7576df4b69b509ab5a44d5a",
+ "sha256": "1b67hd1fp6xcj65xxp5jcpdjspxsbzxy26v6lqg5kiy8knls57kf",
+ "fetcher": "github",
+ "repo": "yuutayamada/gold-mode-el",
+ "unstable": {
+ "version": [
+ 20140607,
+ 206
+ ],
+ "deps": [
+ "sws-mode"
+ ],
+ "commit": "6d3aa59602b1b835495271c8c9741ac344c2eab1",
+ "sha256": "1k4i9z9h4m0h0y92mncr96jir63q5h1bix5bpnlfxhxl5w8pvk1q"
+ }
+ },
+ {
+ "ename": "golden-ratio",
+ "commit": "e87b2af052d0406431957d75aa3717899bdbc8ae",
+ "sha256": "15fkrv0sgpzmnw2h4fp2gb83d8s42khkfq1h76l241njjayk1f81",
+ "fetcher": "github",
+ "repo": "roman/golden-ratio.el",
+ "unstable": {
+ "version": [
+ 20191028,
+ 1732
+ ],
+ "commit": "007911d8a431b72670f5fe5f0e5b4380c2777a31",
+ "sha256": "1dkc25yj47jlrji0v9xjxj3d3hhgnxxb5ia91zlby1mil7r9cwv1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "79b1743fc1a2f3462445e9ddd0a869f30065bb6d",
+ "sha256": "00igv83hiyx7x3pf2grmjpd379brn33fm85f05k104mkkrhg99nm"
+ }
+ },
+ {
+ "ename": "golden-ratio-scroll-screen",
+ "commit": "af044c4a28149362347c2477f0d8d0f8d1dc8c0d",
+ "sha256": "1ygh104vr65s7frlkzyhrfi6shrbvp2b2j3ynj5dip253v85xki5",
+ "fetcher": "github",
+ "repo": "jixiuf/golden-ratio-scroll-screen",
+ "unstable": {
+ "version": [
+ 20200419,
+ 451
+ ],
+ "commit": "1b6ff0e3e8822423335d3f7d88c1fcb4cf43ce42",
+ "sha256": "0kniznqdbaim9llf76zi0cbwpa21xcf07w970hrspffjpzkcadnv"
+ }
+ },
+ {
+ "ename": "goldendict",
+ "commit": "af87026905478d9134a4a036e792f6afd9c10768",
+ "sha256": "0zvrlz169pg9bj1bmks4lh5zn8cygqzwiyzg49na2a7wf2sk9m1f",
+ "fetcher": "github",
+ "repo": "stardiviner/goldendict.el",
+ "unstable": {
+ "version": [
+ 20200731,
+ 1119
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ad5212f6ade58c193287851a46c3f9378fe2f059",
+ "sha256": "0lgdrrch9rn23jd90rpcs5zxrv279ds3g9rzq5whl19410dbjamm"
+ }
+ },
+ {
+ "ename": "golint",
+ "commit": "34f22d829257456abbc020c006b92da9c7a7860e",
+ "sha256": "1q4y6mgll8wyp0c7zx810nzsm0k4wvz0wkly1fbja9z63sjzzxwb",
+ "fetcher": "github",
+ "repo": "golang/lint",
+ "unstable": {
+ "version": [
+ 20180221,
+ 2015
+ ],
+ "commit": "738671d3881b9731cc63024d5d88cf28db875626",
+ "sha256": "0jkiz4py59jjnkyxbxifpf7bsar11lbgmj5jiq2kic5k03shkn9c"
+ }
+ },
+ {
+ "ename": "gom-mode",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0qwqvkdvxmwnijj60jvqzwvikw1avrg6i66cl74qbqqcqkhazbpz",
+ "fetcher": "github",
+ "repo": "emacsorphanage/gom-mode",
+ "unstable": {
+ "version": [
+ 20131008,
+ 253
+ ],
+ "commit": "972e33df1d38ff323bc97de87477305826013701",
+ "sha256": "1anjzlg53kjdqfjcdahbxy8zk9hdha075c1f9nzrnnbbqvmirbbb"
+ }
+ },
+ {
+ "ename": "gomacro-mode",
+ "commit": "ce33236843b8eb266769f588e8d8341b056ccf2c",
+ "sha256": "0gfx9z8cb3lakr1c6irjmcb7fv3val349vxibwlxjbmax689r5v5",
+ "fetcher": "github",
+ "repo": "storvik/gomacro-mode",
+ "unstable": {
+ "version": [
+ 20200326,
+ 1103
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "3112e56d2d5e645a3e0fd877f3e810dbccbf989f",
+ "sha256": "1f3y46q7djr1riz7x26gc7a1gf9p8sfdrnlqyiwzmi9vkk6h8wdz"
+ }
+ },
+ {
+ "ename": "google",
+ "commit": "45237d37da807559498bb958184e05109f880070",
+ "sha256": "11a521cq5bj7afl7bqiilg0c81dy00lnhak7h3d9c9kwg7kfljiq",
+ "fetcher": "github",
+ "repo": "hober/google-el",
+ "unstable": {
+ "version": [
+ 20140416,
+ 1748
+ ],
+ "commit": "3b3189a8b201c8d36fed6e61496274e530dd40bd",
+ "sha256": "06p1dpnmg7lhdff1g7c04qq8f9srgkmnm42jlqy85k87j3p5ys2i"
+ }
+ },
+ {
+ "ename": "google-c-style",
+ "commit": "b4e7f5f641251e17add561991d3bcf1fde23467b",
+ "sha256": "10gsbg880jbvxs4291vi2ww30ird2f313lbgcb11lswivmhrmd1r",
+ "fetcher": "github",
+ "repo": "google/styleguide",
+ "unstable": {
+ "version": [
+ 20180130,
+ 1736
+ ],
+ "commit": "25e977d641fc204a38263a2272f92307c545121b",
+ "sha256": "1dgna85s3gwb0a2504min4ch0xih4ygnv8ia2jvx3wyxgn436z1x"
+ }
+ },
+ {
+ "ename": "google-contacts",
+ "commit": "671afe0ff3889ae8c4b2d7b8617a3a25c16f3f0f",
+ "sha256": "0wgi244zy2am90alimgzazshk2z756bk1hchphssfa4j15n16jgn",
+ "fetcher": "github",
+ "repo": "jd/google-contacts.el",
+ "unstable": {
+ "version": [
+ 20180919,
+ 1314
+ ],
+ "deps": [
+ "cl-lib",
+ "oauth2"
+ ],
+ "commit": "2273582713712a58e71156a8a29972d42e8e690e",
+ "sha256": "1iw5khd3mcgq7vmpm2xw1s713glc8c569n4mgrmmggg73sjnj4kf"
+ }
+ },
+ {
+ "ename": "google-maps",
+ "commit": "671afe0ff3889ae8c4b2d7b8617a3a25c16f3f0f",
+ "sha256": "0a0wqs3cnlpar2dzdi6h14isw78vgqr2r6psmrzbdl00s4fcyxwx",
+ "fetcher": "github",
+ "repo": "jd/google-maps.el",
+ "unstable": {
+ "version": [
+ 20181121,
+ 1532
+ ],
+ "commit": "2eb16ff609f5a9f8d02c15238a111fbb7db6c146",
+ "sha256": "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "90151ab59e693243ca8da660ce7b9ce361ea5126",
+ "sha256": "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"
+ }
+ },
+ {
+ "ename": "google-this",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "0hg9y1b03aiamyn3mam3hyxmxy21wygxrnrww91zcbwlzgp4dd2c",
+ "fetcher": "github",
+ "repo": "Malabarba/emacs-google-this",
+ "unstable": {
+ "version": [
+ 20170810,
+ 1215
+ ],
+ "commit": "8a2e3ca5da6a8c89bfe99a21486c6c7db125dc84",
+ "sha256": "1dbra309w8awmi0g0pp7r2dm9nwrj2j9lpl7md8wa89rnzazwahl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 12
+ ],
+ "commit": "8a2e3ca5da6a8c89bfe99a21486c6c7db125dc84",
+ "sha256": "1dbra309w8awmi0g0pp7r2dm9nwrj2j9lpl7md8wa89rnzazwahl"
+ }
+ },
+ {
+ "ename": "google-translate",
+ "commit": "e3c275e59cbfe6e40f9cd4c470fc66544c9a6d21",
+ "sha256": "1crgzdd32mk6hrawdypg496dwh51wzwfb5wqw4a2j5l8y958xf47",
+ "fetcher": "github",
+ "repo": "atykhonov/google-translate",
+ "unstable": {
+ "version": [
+ 20200809,
+ 1430
+ ],
+ "commit": "0ab218f9e1a620af7b4b22d9c82b8d83ff5f4606",
+ "sha256": "1z0jbjgjnb36cj14l6khnxmrcfvbmlw89sc9dbkw6j7a3k51nlc0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 12,
+ 0
+ ],
+ "commit": "ba027ff85352b989abac29b0efba1811b870ebec",
+ "sha256": "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"
+ }
+ },
+ {
+ "ename": "goose-theme",
+ "commit": "e23a52e068ec0e6d457402254727673ea02bd407",
+ "sha256": "1nw948js678xc5vgrpdkykpcbn1b1id4k1clf87vfv7y5zssvd0x",
+ "fetcher": "github",
+ "repo": "tokenrove/goose-theme",
+ "unstable": {
+ "version": [
+ 20160828,
+ 1245
+ ],
+ "commit": "acd017b50ab25a75fd1331eb3de66467e2042e9c",
+ "sha256": "1mmdvjsgnwgs6akhyj96fgj30mz53djdq85dl5q4cmiznlbma7hy"
+ }
+ },
+ {
+ "ename": "gopher",
+ "commit": "8c01e1c5009e8a4fefe5169c8e97ead53f8f6621",
+ "sha256": "01b1mr8nn5yrq65y067slc7mvxigansbim0nha41ckyrkh8mw4fs",
+ "fetcher": "github",
+ "repo": "msnyder-info/gopher.el",
+ "unstable": {
+ "version": [
+ 20190512,
+ 1351
+ ],
+ "deps": [
+ "w3m"
+ ],
+ "commit": "6f4accac226698b22e8388e41ad5723b12553dde",
+ "sha256": "02093q9dwbqjyq47j05cmxmw12690f4qqpwsj7qnqz15m9n4b6xc"
+ }
+ },
+ {
+ "ename": "gore-mode",
+ "commit": "de09fcf14f778efe4247a93fb887b77050258f39",
+ "sha256": "0nljybh2pw8pbbajfsz57r11rs4bvzfxmwpbm5qrdn6dzzv65nq3",
+ "fetcher": "github",
+ "repo": "sergey-pashaev/gore-mode",
+ "unstable": {
+ "version": [
+ 20151123,
+ 1927
+ ],
+ "deps": [
+ "go-mode"
+ ],
+ "commit": "94d7f3e99104e06167967c98fdc201049c433c2d",
+ "sha256": "0l022aqpnb38q6kgdqpbxrc1r7fljwl7xq14yi5jb7qgzw2v43cz"
+ }
+ },
+ {
+ "ename": "gorepl-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0xcjjh9hf3pv5jgv089c6bb00s215fc9qwn72fav1xbm5f49nkaq",
+ "fetcher": "github",
+ "repo": "manute/gorepl-mode",
+ "unstable": {
+ "version": [
+ 20170905,
+ 945
+ ],
+ "deps": [
+ "f",
+ "hydra",
+ "s"
+ ],
+ "commit": "6a73bf352e8d893f89cad36c958c4db2b5e35e07",
+ "sha256": "0ydiq55ylm8ph2r5nlv9p7a5bnnxk3c9731l7mbzdhd43f734dld"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "17e025951f5964a0542a4b353ddddbc734c01eed",
+ "sha256": "1abb78xxsggawl43hspl0cr0f7i1b3jd9r6xl1nl5jg97i4byg0b"
+ }
+ },
+ {
+ "ename": "gotest",
+ "commit": "0670b42c0c998daa7bf01080757976ac3589ec06",
+ "sha256": "1kan3gykhci33jgg67jjiiz7rqlz5mpxp8sh6mb0n6kpfmgb4ly9",
+ "fetcher": "github",
+ "repo": "nlamirault/gotest.el",
+ "unstable": {
+ "version": [
+ 20191128,
+ 1111
+ ],
+ "deps": [
+ "f",
+ "go-mode",
+ "s"
+ ],
+ "commit": "70f63eafda1f6a2f0a01a9320cc4d2edee9a17b2",
+ "sha256": "090xf2w5zgffndpjvg4qfdm77cpsc8vpr00h6j0skjpr3bni79cx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 14,
+ 0
+ ],
+ "deps": [
+ "f",
+ "go-mode",
+ "s"
+ ],
+ "commit": "8a5ef7363f83edb3b77c5e23876f13dd8c23b2b9",
+ "sha256": "1ksi37kmy9mnrjr5lf9f0ga5nvi3r2kc85g6yvdfj0mbsjm1pnp7"
+ }
+ },
+ {
+ "ename": "gotham-theme",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "17nkg3ac8ckk5sa722nqinzhln8nb96yppjyp0567cc8p9a3bp59",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/gotham-theme.git",
+ "unstable": {
+ "version": [
+ 20200506,
+ 1250
+ ],
+ "commit": "0e5965f897c8c976d6b2ca2471dec0dec9b29bbb",
+ "sha256": "0cvrb23p1m83kd6p5ah04pgzc5gic7q88gnnad9p8d0a7ajh2vbi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 8
+ ],
+ "commit": "417d61978d139cb5d089c5365fc8d3166d76d3ac",
+ "sha256": "0rc40cfj2mby1q7bk1pp1fxdi72nh9ip80spjdm1csvjjc4dbkwr"
+ }
+ },
+ {
+ "ename": "goto-char-preview",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1k7dp2zhlk3kyy0br5fqzj6sx9zkg215s3qs8flf3w0xji150r6k",
+ "fetcher": "github",
+ "repo": "jcs-elpa/goto-char-preview",
+ "unstable": {
+ "version": [
+ 20200717,
+ 730
+ ],
+ "commit": "11fb6b8c77c6191f839f86afc8c8ca3341919058",
+ "sha256": "14wcz9azp1c66jz1wz75v0ijbsk5hjmchcm36k7phbn3hjag99ji"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "446e5236227d6b3f180be2eb5ef2209aef947553",
+ "sha256": "0dd5iq9xkvqavabipg1iz9zk1rnz830grhzw0z1l89b1vvgzpd62"
+ }
+ },
+ {
+ "ename": "goto-chg",
+ "commit": "cf1fc176430fe3ab55ce537a0efc59780bb812be",
+ "sha256": "1yd4jq4zql4av9nr1sdk4nsnnk54c3brgjhpczndy1ipiaxlnydy",
+ "fetcher": "github",
+ "repo": "emacs-evil/goto-chg",
+ "unstable": {
+ "version": [
+ 20200603,
+ 1911
+ ],
+ "deps": [
+ "undo-tree"
+ ],
+ "commit": "85fca9f7d8b04be3fbb37cc5d42416f3c4d32830",
+ "sha256": "0laq44dfwcdhphrkwsklxa0146sl9y841mmjwn5gc0z4d5npz0ql"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7,
+ 3
+ ],
+ "commit": "16a63aae80db90713fb1f7d378c5d591c2ce15ff",
+ "sha256": "0kpalpssfrwcqrmp47i3j2x04m01fm7cspwsm6fks8pn71lagcwm"
+ }
+ },
+ {
+ "ename": "goto-last-change",
+ "commit": "d68945f5845e5e44fb6c11726a56acd4dc56e101",
+ "sha256": "1yl9p95ls04bkmf4d6az72pycp27bv7q7wxxzvj8sj97bgwvwajx",
+ "fetcher": "github",
+ "repo": "camdez/goto-last-change.el",
+ "unstable": {
+ "version": [
+ 20150109,
+ 1823
+ ],
+ "commit": "58b0928bc255b47aad318cd183a5dce8f62199cc",
+ "sha256": "1f0zlvva7d7iza1v79yjp0bm7vd011q4cy14g1saryll32z115z5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 1
+ ],
+ "commit": "58b0928bc255b47aad318cd183a5dce8f62199cc",
+ "sha256": "1f0zlvva7d7iza1v79yjp0bm7vd011q4cy14g1saryll32z115z5"
+ }
+ },
+ {
+ "ename": "goto-last-point",
+ "commit": "20148869e301d236bbf335e8545131488ad57f27",
+ "sha256": "0lns0w7zvi8afsr64kcyn68arrjf7bqmpadw12zj100nnnvs40lh",
+ "fetcher": "github",
+ "repo": "manuel-uberti/goto-last-point",
+ "unstable": {
+ "version": [
+ 20190525,
+ 1855
+ ],
+ "commit": "7ea191df18ff4774cf1dc568e1726143dd54ea02",
+ "sha256": "1x8sr1xrarb7s7hxp4wg96ng7hb3li3ahixybkzcisz4ga9iwj8x"
+ }
+ },
+ {
+ "ename": "goto-line-preview",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "18q5x2rsg8qyll76cyi0rm5ywgcb4p0w1b2zl0pc9y3qi2g2lwvr",
+ "fetcher": "github",
+ "repo": "jcs-elpa/goto-line-preview",
+ "unstable": {
+ "version": [
+ 20200717,
+ 733
+ ],
+ "commit": "b1df7fe72b0281704d277a69dfd9e2b8214a328b",
+ "sha256": "00862y6r5xbq5crb581xh1b18dqigc8k42di9mjc6zvslxq8n6qd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "commit": "a4173abfffda03ad27e695a316adfe560a97f00e",
+ "sha256": "0bh70d2isl3kdzxyidjrxhs7sh8rqr8cmdwil7ksp9a28mz3l55p"
+ }
+ },
+ {
+ "ename": "govc",
+ "commit": "92d6391318021c63b06fe39b0ca38f667bb45ae9",
+ "sha256": "1ivgaziv25wlzg6y4zh8x7mv97pnyhi7p8jpvgh5fg5lnqpzhl4v",
+ "fetcher": "github",
+ "repo": "vmware/govmomi",
+ "unstable": {
+ "version": [
+ 20191213,
+ 2131
+ ],
+ "deps": [
+ "dash",
+ "json-mode",
+ "magit-popup",
+ "s"
+ ],
+ "commit": "609218c5232673cec215d088eb01d043120de385",
+ "sha256": "0wg2sn5zfcsdnv6ymy0a13px7j6pkgmdd9dpss98l70xf3b6g590"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 23,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "json-mode",
+ "magit-popup",
+ "s"
+ ],
+ "commit": "cfbe1d59b449be9b5378251bc6e52c65bc5e1cbd",
+ "sha256": "05f6i7v8v9g3w3cmz8c952djl652mj6qcwjx9iyl23h6knd1d9b1"
+ }
+ },
+ {
+ "ename": "govet",
+ "commit": "7e4a5f5031c76056d8f1b64b27a39a512c7c59cd",
+ "sha256": "1rpgngixf1xnnqf0l2vvh6y9q3395qyj9ln1rh0xz5lm7d4pq4hy",
+ "fetcher": "github",
+ "repo": "meshelton/govet",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1724
+ ],
+ "commit": "1c05817cf8b96589076c7ac4e52ee58a860a0cbf",
+ "sha256": "1n223i87xmk8p8h8dswnhhvazy0z53dzl36gmk9y7ck8bd9vz706"
+ }
+ },
+ {
+ "ename": "gpastel",
+ "commit": "9b70e05ff0a074f9e2f1373e8495dc8df462deea",
+ "sha256": "0mjy4n26s89b481dby018l80glgfwfaacihmd7vhh2c75ns671a6",
+ "fetcher": "github",
+ "repo": "DamienCassou/gpastel",
+ "unstable": {
+ "version": [
+ 20181229,
+ 1404
+ ],
+ "commit": "d5fc55bc825203f998537c5834718e665bb87c29",
+ "sha256": "1ggyd2jy7j3kvqsdxbfcsk41r3d31b8bcyncwglm9m1dh4vx5qsr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "8a5522b274f79d55d7c9a0b2aaf062526f9253c7",
+ "sha256": "01pnnqcxni55xr7r2lxcnsqiszm2w5iwnjcwp748p1faq6ywhi19"
+ }
+ },
+ {
+ "ename": "grab-mac-link",
+ "commit": "e4cc8a72a9f161f024ed9415ad281dbea5f07a18",
+ "sha256": "1a4wyvx1mlgnd45nn99lwy3vaiwhi1nrphfln86pb6z939dxakj3",
+ "fetcher": "github",
+ "repo": "xuchunyang/grab-mac-link.el",
+ "unstable": {
+ "version": [
+ 20200712,
+ 428
+ ],
+ "commit": "9b47cbe126a0735fa447a3c5e1e8ba80a7ef8d26",
+ "sha256": "1hx3a6sfc3ah3xgwii0l0jvshgbw0fjwsyrmb4sri0k8cla7fwin"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "9b47cbe126a0735fa447a3c5e1e8ba80a7ef8d26",
+ "sha256": "1hx3a6sfc3ah3xgwii0l0jvshgbw0fjwsyrmb4sri0k8cla7fwin"
+ }
+ },
+ {
+ "ename": "grab-x-link",
+ "commit": "64d4d4e6f9d6a3ea670757f248afd355baf1d933",
+ "sha256": "1kni49n1v716w4hjfm49mk25jshfc6idpby0k58qvngbfqk3kzy5",
+ "fetcher": "github",
+ "repo": "xuchunyang/grab-x-link",
+ "unstable": {
+ "version": [
+ 20191113,
+ 848
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d898db46e4864118359fdedfe915e180de3fe290",
+ "sha256": "0npz0da2rcckv0zcf2f8vpjcdnii3z99x6c5c4z7jd4xgkp004xs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d19f0c0da0ddc55005a4c1cdc2b8c5de8bea1e8c",
+ "sha256": "1l9jg2w8ym169b5dhg3k5vksbmicg4n1a55x7ddjysf8n887cpid"
+ }
+ },
+ {
+ "ename": "gradle-mode",
+ "commit": "771cc597daebf9b4aa308f8b350af91a515b44c9",
+ "sha256": "0lx9qi93wmiy9pxjxqp68scbcb4bx88b6jiqk3y8jg5cajizh24g",
+ "fetcher": "github",
+ "repo": "jacobono/emacs-gradle-mode",
+ "unstable": {
+ "version": [
+ 20150313,
+ 1905
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "e4d665d5784ecda7ddfba015f07c69be3cfc45f2",
+ "sha256": "0xs2278gamzg0710bm1fkhjh1p75m2l1jcl98ldhyjhvaf9d0ysc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 5
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "579de06674551919cddac9cfe42129f4fb0155c9",
+ "sha256": "0k86lrb55d701nj6pvlw3kjp1dcd3lzfya0hv6q56c529y69d782"
+ }
+ },
+ {
+ "ename": "grails",
+ "commit": "be0196207245ea9d23fda09121d624db9ea6d83d",
+ "sha256": "177y6xv35d2dhc3pdx5qhpywlmlqgfnjpzfm9yxc8l6q2rgs8irw",
+ "fetcher": "github",
+ "repo": "lifeisfoo/emacs-grails",
+ "unstable": {
+ "version": [
+ 20200519,
+ 1909
+ ],
+ "commit": "d47273a619d6731683afe60636259b02e2c78a2e",
+ "sha256": "1j2sd51bnn6ngz5sd01akmrnh9938g7v1fh6mxq4lbzjwgnzbvgy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "commit": "d47273a619d6731683afe60636259b02e2c78a2e",
+ "sha256": "1j2sd51bnn6ngz5sd01akmrnh9938g7v1fh6mxq4lbzjwgnzbvgy"
+ }
+ },
+ {
+ "ename": "grails-mode",
+ "commit": "3fe318b4e51a280a55c01fa30455e4a180df8bd6",
+ "sha256": "1zdlmdkwyaj2zns3xwmqpil83j7857aj2070kvx8xza66dxcnlm4",
+ "fetcher": "github",
+ "repo": "Groovy-Emacs-Modes/groovy-emacs-modes",
+ "unstable": {
+ "version": [
+ 20160504,
+ 911
+ ],
+ "commit": "26da902d1158c0312628d57578109be54eca2415",
+ "sha256": "113s9znqrdi9zm045hi3ws5ixrd0bzxfy3wr8lzxq9r3jbv67iz2"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "d7b362e6186d263ec3eefc141dbb5b27a8773f24",
+ "sha256": "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"
+ }
+ },
+ {
+ "ename": "grails-projectile-mode",
+ "commit": "35d49029c1f665ad40e543040d98d5a770bfea96",
+ "sha256": "0dy8v2mila7ccvb7j5jlfkhfjsjfk3bm3rcy84m0rgbqjai67amn",
+ "fetcher": "github",
+ "repo": "yveszoundi/grails-projectile-mode",
+ "unstable": {
+ "version": [
+ 20160327,
+ 1324
+ ],
+ "deps": [
+ "cl-lib",
+ "projectile"
+ ],
+ "commit": "8efca50ce92b556fe9d467b157d7aec635bcc017",
+ "sha256": "0xnj0wp0na53l0y8fiaah50ij4r80j8a29hbjbcicska21p5w1s1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "projectile"
+ ],
+ "commit": "8efca50ce92b556fe9d467b157d7aec635bcc017",
+ "sha256": "0xnj0wp0na53l0y8fiaah50ij4r80j8a29hbjbcicska21p5w1s1"
+ }
+ },
+ {
+ "ename": "grammarly",
+ "commit": "1bbf7e3434cea3d0f6f72747ea653188ce25f68f",
+ "sha256": "0h0gikvbyraflm921jmf2jkj1nfgxsdq1ybih449zbhxkvb494d4",
+ "fetcher": "github",
+ "repo": "jcs-elpa/grammarly",
+ "unstable": {
+ "version": [
+ 20200720,
+ 948
+ ],
+ "deps": [
+ "request",
+ "s",
+ "websocket"
+ ],
+ "commit": "d597c5d71bc64f5a91e96c707d7471bceaa84075",
+ "sha256": "073rv64m14llav59b2y73qcw7z5p0b537aa46chxf2bxq93lb4vf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "request",
+ "s",
+ "websocket"
+ ],
+ "commit": "d597c5d71bc64f5a91e96c707d7471bceaa84075",
+ "sha256": "073rv64m14llav59b2y73qcw7z5p0b537aa46chxf2bxq93lb4vf"
+ }
+ },
+ {
+ "ename": "grandshell-theme",
+ "commit": "f0a8eb0eefe88b4ea683a4743c0f8393506e014b",
+ "sha256": "1r0r0r0g116f4jp3rip8mjqqgdam4h5dr5qvdglr9xpirfcw6wq3",
+ "fetcher": "git",
+ "url": "https://framagit.org/steckerhalter/grandshell-theme.git",
+ "unstable": {
+ "version": [
+ 20180606,
+ 517
+ ],
+ "commit": "0ed8e4273607dd4fcaa742b4097259233b09eda6",
+ "sha256": "04vx5p1ffln5b9rxgfi15q735plxcjvskby3c5k4slgwf4p91bpq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "22c8df52c0fb8899fa748fa2980947ab38b53380",
+ "sha256": "08556ci80iycm4qkvbnrci55wyv91b4fh6sjp0im0ywndmrq3yyc"
+ }
+ },
+ {
+ "ename": "graphene",
+ "commit": "0206d6adcb7855c2174c3cd506b71c21def1209b",
+ "sha256": "1wz3rvd8b7gx5d0k7yi4dd69ax5bybcm10vdc7xp4yn296lmyl9k",
+ "fetcher": "github",
+ "repo": "rdallasgray/graphene",
+ "unstable": {
+ "version": [
+ 20180529,
+ 1112
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "exec-path-from-shell",
+ "flycheck",
+ "graphene-meta-theme",
+ "ido-completing-read+",
+ "ppd-sr-speedbar",
+ "smartparens",
+ "smex",
+ "sr-speedbar",
+ "web-mode"
+ ],
+ "commit": "cc8477fcfb7771ea4e5bbaf3c01f9e679234c1c1",
+ "sha256": "0j0igcmfl61c4pakqmyxpwr4kjar9i81vkl84rw19phc7k9497nb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "exec-path-from-shell",
+ "flycheck",
+ "graphene-meta-theme",
+ "ido-completing-read+",
+ "ppd-sr-speedbar",
+ "smartparens",
+ "smex",
+ "sr-speedbar",
+ "web-mode"
+ ],
+ "commit": "cc8477fcfb7771ea4e5bbaf3c01f9e679234c1c1",
+ "sha256": "0j0igcmfl61c4pakqmyxpwr4kjar9i81vkl84rw19phc7k9497nb"
+ }
+ },
+ {
+ "ename": "graphene-meta-theme",
+ "commit": "44af719ede73c9fe7787272d7868587ce8966e3d",
+ "sha256": "1cqdr93lccdpxkzgap3r3qc92dh8vqgdlnxvqkw7lrcbs31fvf3q",
+ "fetcher": "github",
+ "repo": "rdallasgray/graphene-meta-theme",
+ "unstable": {
+ "version": [
+ 20161204,
+ 1607
+ ],
+ "commit": "62cc73fee31f1bd9474027b83a249feee050271e",
+ "sha256": "1ydl6dlg5z4infq8j09izwgs6n97yza6nbq5rs1xfv00zd9gr63c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "commit": "8e75528529f460b1b5910467c4fc1f516e1a57b9",
+ "sha256": "03wllxivl95gsknjkmljm3kgjkwixwxaksaxv8i9c0zjrb2wwm24"
+ }
+ },
+ {
+ "ename": "graphql",
+ "commit": "3e801ae56f11b64a5a3e52cf1a6c152940ab8c97",
+ "sha256": "139fng2psn535ymqa7c6hm1r7ja1gs5mdvb487jj6fh0bl9wq8la",
+ "fetcher": "github",
+ "repo": "vermiculus/graphql.el",
+ "unstable": {
+ "version": [
+ 20180912,
+ 31
+ ],
+ "commit": "e2b309689f4faf9225f290080f836e988c5a576d",
+ "sha256": "1hqvsr2s2lbdssbx3v8nqxdhhdvydx6hpbhh4rlnfcadhhs0f6nr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "672dd9ebd7e67d8089388b0c484cd650e76565f3",
+ "sha256": "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"
+ }
+ },
+ {
+ "ename": "graphql-mode",
+ "commit": "3850073e6706d4d8151bc6ab12963a19deae8be9",
+ "sha256": "074dc8fgbrikb5inv837n9bpmz1ami7aaxsqcci1f94x3iw8i74i",
+ "fetcher": "github",
+ "repo": "davazp/graphql-mode",
+ "unstable": {
+ "version": [
+ 20191024,
+ 1221
+ ],
+ "commit": "7c37aee28bf8c8ffb3da73df5571c4e1e352562b",
+ "sha256": "0hjzqmrc024b98nisvn2ld8gn3bslg8ip19d1fnid3m8q9zk8w8b"
+ }
+ },
+ {
+ "ename": "graphviz-dot-mode",
+ "commit": "6e2f1e66b33fd95142be4622c996911e38d56281",
+ "sha256": "04rkynsrsk6w4sxn1pc0b9b6pij1p7yraywbrk7qvv05fv69kri2",
+ "fetcher": "github",
+ "repo": "ppareit/graphviz-dot-mode",
+ "unstable": {
+ "version": [
+ 20200304,
+ 432
+ ],
+ "commit": "3642a0a5f41a80c8ecef7c6143d514200b80e194",
+ "sha256": "16aq9zz4dnccngk9q1k2qa0mwd63cycwrzdkvzg4nn6ikq6w7wnp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "commit": "80b9c5e7f464c70cfa423e5ee3237581bc69d643",
+ "sha256": "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"
+ }
+ },
+ {
+ "ename": "grapnel",
+ "commit": "dd482e4b2c45921b81c5fb3dfce53acfec3c3093",
+ "sha256": "019cdx1wdx8sc2ibqwgp1akgckzxxvrayyp2sv806gha0kn6yf6r",
+ "fetcher": "github",
+ "repo": "leathekd/grapnel",
+ "unstable": {
+ "version": [
+ 20131001,
+ 1534
+ ],
+ "commit": "fbd0f9a51139973d35e4014855964fa435e8ecaf",
+ "sha256": "0nvl8mh7jxailisq31h5bi64s9b74ah1465wiwh18x502swr2s3c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 3
+ ],
+ "commit": "7387234eb3f0285a490fddb1e06a4bf029719fb7",
+ "sha256": "0xcj1kqzgxifhrhpl9j2nfpnkd6213ix5z7f97269v3inpzaiyf5"
+ }
+ },
+ {
+ "ename": "grass-mode",
+ "commit": "c6f0b067cfbd2902a585b9d1eaadabcac3e62286",
+ "sha256": "1njzw4sparjcyhxki2z0xqrsbazfm52bxm7522szgvxcmjwxybcz",
+ "fetcher": "github",
+ "repo": "plantarum/grass-mode",
+ "unstable": {
+ "version": [
+ 20170503,
+ 1500
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "8a7e9dcb2295eef1ec25d886b05e09c876bd8398",
+ "sha256": "023s9kn012z6m4aprsq77zv4kvfvwfics5gcdja7ig4xwqqrzymq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "23ca856ca979fec0f90196b357f2b74fe1cc3a73",
+ "sha256": "116247yggxs0hfbx1746j1d642gk9zbx15c2dw4p5pq9qkasmy95"
+ }
+ },
+ {
+ "ename": "grayscale-theme",
+ "commit": "2993881c7285cfbfc590b4118db46bfd435817bc",
+ "sha256": "0jbzb1zxv5mg3pivii31d4kz75igm339nw4cmx9kgzia9zal5f1r",
+ "fetcher": "github",
+ "repo": "belak/emacs-grayscale-theme",
+ "unstable": {
+ "version": [
+ 20171005,
+ 802
+ ],
+ "commit": "53ad50e10e68f2f076ebfc96e10ecef7a932d38d",
+ "sha256": "034pa35cjl07bhqdyw3xrcl97xcdg7jg0jvgn034fs3hssmsyxgv"
+ }
+ },
+ {
+ "ename": "greek-polytonic",
+ "commit": "bf0e6206be0e6f416c59323cf10bf052882863f3",
+ "sha256": "0rp5iwiznp95r8srxvq72hna2hgcqj4q1dvg2ma86cqzgqwr4xnw",
+ "fetcher": "github",
+ "repo": "jhanschoo/greek-polytonic",
+ "unstable": {
+ "version": [
+ 20190303,
+ 1358
+ ],
+ "commit": "114cba0f57cc077871693c799b807df2292341ec",
+ "sha256": "09prvjnhvirip6s0rlsp7pyyaj9xswvvjskxb2977ymki8ijxmqf"
+ }
+ },
+ {
+ "ename": "green-is-the-new-black-theme",
+ "commit": "3e42528d5677fd90515cad47266c07ea3d4363fb",
+ "sha256": "03q0vj409icmawffy2kd9yl04r453q80cy1p9y4i3xk368z0362g",
+ "fetcher": "github",
+ "repo": "fredcamps/green-is-the-new-black-emacs",
+ "unstable": {
+ "version": [
+ 20200529,
+ 242
+ ],
+ "commit": "9b682c0000bc732e4c55e876ac968877eada0402",
+ "sha256": "0yilp68qw2a4z8b8mmr2yl2lmwkd3ibk6j5ix6x3vlcmfmrfl3bj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "9b682c0000bc732e4c55e876ac968877eada0402",
+ "sha256": "0yilp68qw2a4z8b8mmr2yl2lmwkd3ibk6j5ix6x3vlcmfmrfl3bj"
+ }
+ },
+ {
+ "ename": "green-phosphor-theme",
+ "commit": "c6770f5d800232c152833d32efb814005e65ffc6",
+ "sha256": "1p4l75lahmbjcx74ca5jcyc04828vlcahk7gzv5lr7z9mhvq6fbh",
+ "fetcher": "github",
+ "repo": "aalpern/emacs-color-theme-green-phosphor",
+ "unstable": {
+ "version": [
+ 20150515,
+ 1447
+ ],
+ "commit": "fa42f598626adfdc5450e5c380fa2d5df6110f28",
+ "sha256": "0rgv96caigcjffg1983274p4ff1icx1xh5bj7rcd53hai5ag16mp"
+ }
+ },
+ {
+ "ename": "green-screen-theme",
+ "commit": "821744ca106f1b74941524782e4581fc93800fed",
+ "sha256": "0a45xcl74kp3v39bl169sq46mqxiwvvis6jzwcy6yrl2vqqi4mab",
+ "fetcher": "github",
+ "repo": "rbanffy/green-screen-emacs",
+ "unstable": {
+ "version": [
+ 20180816,
+ 1502
+ ],
+ "commit": "774e8f6c033786406267f71ec07319d906a30b75",
+ "sha256": "0f12lqgfi1vlhq8p5ia04vlmvmyb4f40q7dm2nbh5y8r6k89hisg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 26
+ ],
+ "commit": "774e8f6c033786406267f71ec07319d906a30b75",
+ "sha256": "0f12lqgfi1vlhq8p5ia04vlmvmyb4f40q7dm2nbh5y8r6k89hisg"
+ }
+ },
+ {
+ "ename": "gregorio-mode",
+ "commit": "34cdc536cd0509c5a151c16f44f4db2c5b44365f",
+ "sha256": "1x3z4gc88h13miz72a597lz9hcn2lxps9jvldl2j62s6nvr88pff",
+ "fetcher": "github",
+ "repo": "jsrjenkins/gregorio-mode",
+ "unstable": {
+ "version": [
+ 20170705,
+ 1451
+ ],
+ "commit": "736fd3d05fb67f707cca1a7ce24e3ee7ca5e9567",
+ "sha256": "1w13a3irak6i74kl7va8d2simd2kjvw5253s8jvapi1mg4ifw379"
+ }
+ },
+ {
+ "ename": "grep-a-lot",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1cbl4gl91dx73q3i2glsivfxd8jkanrcrzy35zf6rb7raj7rc1bw",
+ "fetcher": "github",
+ "repo": "ZungBang/emacs-grep-a-lot",
+ "unstable": {
+ "version": [
+ 20131006,
+ 1347
+ ],
+ "commit": "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad",
+ "sha256": "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"
+ }
+ },
+ {
+ "ename": "greymatters-theme",
+ "commit": "d13621f3033b180d06852d90bd3ebe03276031f5",
+ "sha256": "10cxajyws5rwk62i4vk26c1ih0dq490kcfx7gijw38q3b5r1l8nr",
+ "fetcher": "github",
+ "repo": "mswift42/greymatters-theme",
+ "unstable": {
+ "version": [
+ 20150621,
+ 1123
+ ],
+ "commit": "a7220a8c6cf18ccae2b76946b6f01188a7c9d5d1",
+ "sha256": "14c09m9p6556rrf0qfad4zsv7qxa5flamzg6fa83cxh0qfg7wjbp"
+ }
+ },
+ {
+ "ename": "grip-mode",
+ "commit": "de97f1c15b3ab53ca5e314b679c289705302bb64",
+ "sha256": "162ss93hbkxv5zd0vid6xh77ln7bsx2ngzr7h1y4dmcg36npmy5d",
+ "fetcher": "github",
+ "repo": "seagle0128/grip-mode",
+ "unstable": {
+ "version": [
+ 20200725,
+ 725
+ ],
+ "commit": "281ada2c93bac7043c6f665fac065a17d4247bdc",
+ "sha256": "14gsmxpp8znk2w2yszdpwb8dx0hxbpy2rjr7rshs3bvqjib8rzyp"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 1
+ ],
+ "commit": "9615c4774727a719d38313a679d70f2a2c6aca68",
+ "sha256": "01imyi1l33ng78m6c5g4pma5gy4j7jy7dwmqwsqgwbws08qdbwgr"
+ }
+ },
+ {
+ "ename": "grizzl",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0354xskqzxc38l14zxqs31hadwh27v9lyx67y3hnd94d8abr0qcb",
+ "fetcher": "github",
+ "repo": "grizzl/grizzl",
+ "unstable": {
+ "version": [
+ 20160818,
+ 737
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1e917253ce2b846f0272b8356fad3dbff9cd513a",
+ "sha256": "1hw932zvhyxajdgd0h18vr3w0sr0vp4334phlr1aysv7rjfgnpkr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "c775de1c34d1e5a374e2f40c1ae2396b4b003fe7",
+ "sha256": "1bq73kcx744xnlm2yvccrzlbyx91c492sg7blx2a9z643v3gg1zs"
+ }
+ },
+ {
+ "ename": "groovy-imports",
+ "commit": "b18a6842805856062e9452dc32bf0fd458f7d51a",
+ "sha256": "09yjkwsm192lgala1pvxw47id4j7362sl3j1hn9ald2m8m3ddyfs",
+ "fetcher": "github",
+ "repo": "mbezjak/emacs-groovy-imports",
+ "unstable": {
+ "version": [
+ 20161003,
+ 851
+ ],
+ "deps": [
+ "pcache",
+ "s"
+ ],
+ "commit": "e56d7dda617555ec6205644d32ffddf2e1fa43d9",
+ "sha256": "060zxl2y4p50g5fwgplgx07h5akfplp49rkv5cx09rqlcyzqhqwa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "pcache",
+ "s"
+ ],
+ "commit": "e56d7dda617555ec6205644d32ffddf2e1fa43d9",
+ "sha256": "060zxl2y4p50g5fwgplgx07h5akfplp49rkv5cx09rqlcyzqhqwa"
+ }
+ },
+ {
+ "ename": "groovy-mode",
+ "commit": "3fe318b4e51a280a55c01fa30455e4a180df8bd6",
+ "sha256": "1pxw7rdn56klmr6kw21lhzh7zhp338gyf54ypsml64ibzr1x9kal",
+ "fetcher": "github",
+ "repo": "Groovy-Emacs-Modes/groovy-emacs-modes",
+ "unstable": {
+ "version": [
+ 20191031,
+ 2256
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "26da902d1158c0312628d57578109be54eca2415",
+ "sha256": "113s9znqrdi9zm045hi3ws5ixrd0bzxfy3wr8lzxq9r3jbv67iz2"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "d7b362e6186d263ec3eefc141dbb5b27a8773f24",
+ "sha256": "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"
+ }
+ },
+ {
+ "ename": "gruber-darker-theme",
+ "commit": "87ade74553c04cb9dcfe16d03f263cc6f1fed046",
+ "sha256": "0vn4msixb77xj6p5mlfchjyyjhzah0lcmp0z82s8849zd194fxqi",
+ "fetcher": "github",
+ "repo": "rexim/gruber-darker-theme",
+ "unstable": {
+ "version": [
+ 20200227,
+ 2238
+ ],
+ "commit": "7f95ce96079eb22b9214435ed25c5af98f60b482",
+ "sha256": "1zdqbjhcb8b1f4szzjmkzhpxcg17dqfp91882h95f1x9c2an5gdw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "commit": "0c08d77e615aceb9e6e1ca66b1fbde275200cfe4",
+ "sha256": "14h0rcd3nkw3pmx8jwip20p6rzl9qdkip5g52gfjjbqfvaffsrkd"
+ }
+ },
+ {
+ "ename": "grugru",
+ "commit": "eb55452f19b8f33605ca1b0cb5d93e00ff4cf3f5",
+ "sha256": "0zrcx6097hjdrr3b5fagm77h6fl5ys0djk8h70gkzvc2cc4sdim2",
+ "fetcher": "github",
+ "repo": "ROCKTAKEY/grugru",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1411
+ ],
+ "commit": "2f304daa39df10ebe9e4cb982af5343bca252c6d",
+ "sha256": "1bry2iqab6shyhlmka7334yqc5k4c9hl1qrigz2p9km9hv45r7hw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 10,
+ 0
+ ],
+ "commit": "d71007802389028a70d0ccbf5c57330241add7cc",
+ "sha256": "1gr8jdm8g7cxysf1f83mkfwp3la6bcd08r8gw5v9ms4k217nx2is"
+ }
+ },
+ {
+ "ename": "grunt",
+ "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
+ "sha256": "1qdzqcrff9x97kyy0d4j636d5i751qja10liw8i0lf4lk6n0lywz",
+ "fetcher": "github",
+ "repo": "gempesaw/grunt.el",
+ "unstable": {
+ "version": [
+ 20160316,
+ 1528
+ ],
+ "deps": [
+ "ansi-color",
+ "dash"
+ ],
+ "commit": "4c269e2738658643ec2ed9ef61a2a3d71b08d304",
+ "sha256": "1xd6gv9bkqnj7j5mcnwvl1mxjmzvxqhp135hxj0ijc0ybdybacf7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 2
+ ],
+ "deps": [
+ "ansi-color",
+ "dash"
+ ],
+ "commit": "e27dbb6b3de9b36c7fb28f69aa06b4b2ea32d4b9",
+ "sha256": "0zpmhjwj64s72iv3dgsy07pfh20f25ngsy3pszmlrfkxk0926d8k"
+ }
+ },
+ {
+ "ename": "gruvbox-theme",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "12z89fjfqcp9rx2f2x9wcffgxxv3kjn1dabyk0cjf286hgvmgz88",
+ "fetcher": "github",
+ "repo": "greduan/emacs-theme-gruvbox",
+ "unstable": {
+ "version": [
+ 20200807,
+ 855
+ ],
+ "deps": [
+ "autothemer"
+ ],
+ "commit": "746a5f36cf4ff3959f2d007598d5cb248cfc1879",
+ "sha256": "1j66ffg1xl37nggckm38fmapxm0v7bycvpggxdx0s8q7hqlikk9f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 28,
+ 0
+ ],
+ "deps": [
+ "autothemer"
+ ],
+ "commit": "69a6ddf6c7e8c84174b94900ba71ddd08ec0237f",
+ "sha256": "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"
+ }
+ },
+ {
+ "ename": "gs-mode",
+ "commit": "bc1aa5335810e3d6572ebe9cd8949932b74d0f46",
+ "sha256": "02ldd92fv1k28nygl34i8gv0b0i1v5qd7nl1l17cf5f3akdwc6iq",
+ "fetcher": "github",
+ "repo": "yyr/emacs-grads",
+ "unstable": {
+ "version": [
+ 20151202,
+ 1006
+ ],
+ "commit": "1a13051db21b999c7682a015b33a03096ff9d891",
+ "sha256": "1d89gxyzv0z0nk7v1aa4qa0xfms2g2dsrr07cw0d99xsnyxfky31"
+ }
+ },
+ {
+ "ename": "gscholar-bibtex",
+ "commit": "9fa546d3dce59b07a623ee83e3befe139dc10481",
+ "sha256": "0d41gr9amf9vdn9pl9lamhp2swqllxslv9r3wsgzqvjl7zayd1az",
+ "fetcher": "github",
+ "repo": "cute-jumper/gscholar-bibtex",
+ "unstable": {
+ "version": [
+ 20190130,
+ 555
+ ],
+ "commit": "3b651e3de116860eb1f1aef9b547a561784871fe",
+ "sha256": "0wwjz4k1hsc1z489ygz4kh3dh23d7pnkgg2js07as7038hmhkjcb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 3
+ ],
+ "commit": "ba4ce159e385d695d8560e8b06b3cbe48424861c",
+ "sha256": "0idnfhk17avp0r4706grjqqkz0xl98gs0bx7wrkvwym3y2gadlz2"
+ }
+ },
+ {
+ "ename": "gsettings",
+ "commit": "ebdd0285684c712748d6353bd2a4774bd97dd521",
+ "sha256": "168zq3gp874k66jv8k78i6b1cb9042763aj9wpmcs9bz437hhw32",
+ "fetcher": "github",
+ "repo": "wbolster/emacs-gsettings",
+ "unstable": {
+ "version": [
+ 20190513,
+ 1003
+ ],
+ "deps": [
+ "dash",
+ "gvariant",
+ "s"
+ ],
+ "commit": "3009335a077636347defd08d24fb092495d16d3e",
+ "sha256": "0xvj0p533laxvhv9jvgdzw5pix6zlai3jp43n2bi0kwmq21clwgz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "gvariant",
+ "s"
+ ],
+ "commit": "1dd9a6a3036d76d8e680b2764c35b31bf5e6aff7",
+ "sha256": "0bv6acy3b6pbjqm24yxgi7xdd3x0c2b7s5sq65sb3lxf8hy5gdf6"
+ }
+ },
+ {
+ "ename": "gtk-pomodoro-indicator",
+ "commit": "a58f1acaafc459e055d751acdb68427e4b11275e",
+ "sha256": "1lkz1bk3zl51jdgp7pg6sr57drdwz8mlvl9ryky3iv73kr5i0q6c",
+ "fetcher": "github",
+ "repo": "abo-abo/gtk-pomodoro-indicator",
+ "unstable": {
+ "version": [
+ 20191007,
+ 1500
+ ],
+ "commit": "338e6dca6d749cfc85195907bba593f9f6855715",
+ "sha256": "1nl2ji5wvmfzchxpnmsgxn4v2lybyymyyh99lw3riqg6gb0phl9l"
+ }
+ },
+ {
+ "ename": "gtk-variant",
+ "commit": "12bcbebf4b604e29cee443825c56336f5249e088",
+ "sha256": "1dcj0k2j89yx7k0cqqinb4xnhl0i2yivlvrb87xbj89zbijss967",
+ "fetcher": "github",
+ "repo": "bepvte/gtk-variant.el",
+ "unstable": {
+ "version": [
+ 20200416,
+ 2136
+ ],
+ "commit": "4462a5ab071ec001734e92d1ac2e5fa9721b94bd",
+ "sha256": "0v2h846k9xv47am66nv4piqhvn74xijhp2bq84v3wpls4msvfk70"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 4
+ ],
+ "commit": "4462a5ab071ec001734e92d1ac2e5fa9721b94bd",
+ "sha256": "0v2h846k9xv47am66nv4piqhvn74xijhp2bq84v3wpls4msvfk70"
+ }
+ },
+ {
+ "ename": "guess-language",
+ "commit": "6e78cb707943fcaaba0414d7af2af717efce84d0",
+ "sha256": "1p8j18hskvsv4pn3cal5s91l19hgshq8hpclmp84z9hlnj9g9fpm",
+ "fetcher": "github",
+ "repo": "tmalsburg/guess-language.el",
+ "unstable": {
+ "version": [
+ 20200707,
+ 1058
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "256230072f4f828e07db6ab17b6b7e90891b7308",
+ "sha256": "0yqvrd7b43ibzszzcw8zg0ifqz7v4ply5wdgq1zclk3xgsn9n3pr"
+ }
+ },
+ {
+ "ename": "guide-key",
+ "commit": "490b81308ae8132d8c3fd8c3951be88159719172",
+ "sha256": "0zjrdvppcg8b2k6hfdj45rswc1ks9xgimcr2yvgpc8prrwk1yjsf",
+ "fetcher": "github",
+ "repo": "kai2nenobu/guide-key",
+ "unstable": {
+ "version": [
+ 20150108,
+ 635
+ ],
+ "deps": [
+ "dash",
+ "popwin",
+ "s"
+ ],
+ "commit": "8f8b839f42edd53af13d588254f07727108ae312",
+ "sha256": "0awx1s5qsg92flha8i0j72zg4kax2h2vi62qikk19sniiwdlrv4i"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 5
+ ],
+ "deps": [
+ "popwin"
+ ],
+ "commit": "626f3aacfe4561eddc46617570426246b88e9cab",
+ "sha256": "1bmcvn8a7g9ahpv2fww673hx9pa7nnrj9kpljq65azf61vq2an2g"
+ }
+ },
+ {
+ "ename": "guide-key-tip",
+ "commit": "1f23db7563654ab58632d56e3b01d2f78276fc3e",
+ "sha256": "0h2vkkbxq361dkn6irm1v19qj7bkhxcjljiksd5wwlq5zsq6bd06",
+ "fetcher": "github",
+ "repo": "aki2o/guide-key-tip",
+ "unstable": {
+ "version": [
+ 20161011,
+ 823
+ ],
+ "deps": [
+ "guide-key",
+ "pos-tip"
+ ],
+ "commit": "02c5d4b0b65f3e91be5a47f0ff1ae5e86e00c64e",
+ "sha256": "1xkrfjmhprnj8i39a85wfcs5whm93fw8l57c606wdhiwqj719ciz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "guide-key",
+ "pos-tip"
+ ],
+ "commit": "e08b2585228529aeaae5e0ae0948f898e83a6200",
+ "sha256": "040mcfhj2gggp8w1pgip7rxb1bnb23rxlm02wl6x1qv5i0q7g5x3"
+ }
+ },
+ {
+ "ename": "guix",
+ "commit": "b3d8c73e8a946b8265487a0825d615d80aa3337d",
+ "sha256": "0h4jwc4h2jv09c6rngb614fc39qfy04rmvqrn1l54hn28s6q7sk9",
+ "fetcher": "github",
+ "repo": "alezost/guix.el",
+ "unstable": {
+ "version": [
+ 20200730,
+ 930
+ ],
+ "deps": [
+ "bui",
+ "dash",
+ "edit-indirect",
+ "geiser",
+ "magit-popup"
+ ],
+ "commit": "58a840d0671091e3064e36244790ef8839da87d6",
+ "sha256": "1qnr5sixmvrhr9rinrhfy7sy20mikjvvwbdixwkbx30qpcdwgwj1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 2
+ ],
+ "deps": [
+ "bui",
+ "dash",
+ "edit-indirect",
+ "geiser",
+ "magit-popup"
+ ],
+ "commit": "c2796e68868c91253b6aca422a9ae07363aa03a9",
+ "sha256": "0i0bvv3wd3fd22mffa62076mi1cnzwyphibqiimll23kngg507b2"
+ }
+ },
+ {
+ "ename": "gulp-task-runner",
+ "commit": "34a2bede5ea70cf9df623c32e789d78205f9ebb0",
+ "sha256": "0211mws99bc9ipg7r3qqm1n7gszvwil31psinf0250wliyppjij7",
+ "fetcher": "github",
+ "repo": "NicolasPetton/gulp-task-runner",
+ "unstable": {
+ "version": [
+ 20170718,
+ 2041
+ ],
+ "commit": "877990e956b1d71e2d9c7c3e5a129ad199b9debb",
+ "sha256": "13qy4x4ap43qm5w2vrsy6w01z2s2kymfr9qvlj2yri4xk3r4vrps"
+ }
+ },
+ {
+ "ename": "guru-mode",
+ "commit": "e60af6ccb902d8ef00cfecbb13cafebbe3b00d89",
+ "sha256": "0j25nxs3ndybq1ik36qyqdprmhav4ba8ny7v2z61s23id8hz3xjs",
+ "fetcher": "github",
+ "repo": "bbatsov/guru-mode",
+ "unstable": {
+ "version": [
+ 20200708,
+ 728
+ ],
+ "commit": "9d0aff6cda6d3d78d5102f07f813b9fca6f0ab7b",
+ "sha256": "1ja98di2iwjp0l4ndh22pwm7s56753kmz255xlv6vni2ai4rf8sm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "9d0aff6cda6d3d78d5102f07f813b9fca6f0ab7b",
+ "sha256": "1ja98di2iwjp0l4ndh22pwm7s56753kmz255xlv6vni2ai4rf8sm"
+ }
+ },
+ {
+ "ename": "gvariant",
+ "commit": "7a616ac75f77b1e61e1386bd905b6bcf3d8aaa3f",
+ "sha256": "1ycrnfq60z9fycgqmp1y8jna0l0c2b6mlg6ggimb0rml1ili6npm",
+ "fetcher": "github",
+ "repo": "wbolster/emacs-gvariant",
+ "unstable": {
+ "version": [
+ 20190513,
+ 1005
+ ],
+ "deps": [
+ "parsec"
+ ],
+ "commit": "b162867c03ead58784c47996ae329355ecea2869",
+ "sha256": "0yqgj3zcpmga9v085l98yr02k8bhgd4bzshmyjl1x98s50n207jp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "parsec"
+ ],
+ "commit": "79c34d11ee6a34f190f1641a133d34b0808a1143",
+ "sha256": "18ld0wv8r5wlbicqym8vdw33la0bn59s7bxm2fw0w97qwjka8g8k"
+ }
+ },
+ {
+ "ename": "gvpr-mode",
+ "commit": "ab25afcf4232082dc0e48706734f141a308912a7",
+ "sha256": "19p6f06qdjvh2vmgbabajvkfxpn13j899jrivw9mqyssz0cyvzgw",
+ "fetcher": "github",
+ "repo": "rodw/gvpr-lib",
+ "unstable": {
+ "version": [
+ 20131208,
+ 1718
+ ],
+ "commit": "3d6cc6f4416faf2a1913821d12ba6eb624362af0",
+ "sha256": "0060qw4gr9fv6db20xf3spgl2fwg2iid5ckfjm3vj3ydyv62q13s"
+ }
+ },
+ {
+ "ename": "gxref",
+ "commit": "429b9150d4054fcadab8c5ca3b688921eeb19b78",
+ "sha256": "06qlfjclfx00m8pr7lk6baim3vjk5i0m75i1p4aihp2vflvgjaby",
+ "fetcher": "github",
+ "repo": "dedi/gxref",
+ "unstable": {
+ "version": [
+ 20170411,
+ 1753
+ ],
+ "commit": "380b02c3c3c2586c828456716eef6a6392bb043b",
+ "sha256": "1c5j28rwqx53qdsqglif8yblhm2bwm4qzpl2dg0l0g3pr8pk8zjk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "15723a9d910d7dd9ea18cab0336332cf988aeceb",
+ "sha256": "1l5d1kh2dy3w42i8c3z63c7mzarxixxiby2g7ay2i809yxj10y1n"
+ }
+ },
+ {
+ "ename": "habamax-theme",
+ "commit": "77386484ad0b31c2818fae52cd312821c4632cb8",
+ "sha256": "1rmir9gc1niwkshxg1826nkh8xxmpim5pbhp61wx1m273lfn2h69",
+ "fetcher": "github",
+ "repo": "habamax/habamax-theme",
+ "unstable": {
+ "version": [
+ 20181001,
+ 850
+ ],
+ "commit": "6e86a1b23b6e2aaf40d4374b5673da00a28be447",
+ "sha256": "0k96mdxg28bbm14d6rdlin8l4c75i9wicj3mxrd0bys0shxl9jm6"
+ }
+ },
+ {
+ "ename": "habitica",
+ "commit": "cf9543db3564f4806440ed8c5c30fecbbc625fa1",
+ "sha256": "0g7rb8ip5d6xvlsfk8cvf81hgzlq5p4kw9pkisjq9ri8mvkfmxf3",
+ "fetcher": "github",
+ "repo": "abrochard/emacs-habitica",
+ "unstable": {
+ "version": [
+ 20190721,
+ 1620
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d",
+ "sha256": "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"
+ }
+ },
+ {
+ "ename": "hack-mode",
+ "commit": "27e238e5d2aaca810fd3fb6836ca49c9fa07cc87",
+ "sha256": "1zs7p6fczj526wz9kvyhmxqkgrkfkkrvm9ma4cg349sfpjpxwkbl",
+ "fetcher": "github",
+ "repo": "hhvm/hack-mode",
+ "unstable": {
+ "version": [
+ 20200526,
+ 2210
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "572c3b41bed91ea543434c04914a7a0c45fec7c7",
+ "sha256": "12r14846dpgn03h1gn58aff3p8swlp0zlajhzpqpzp2s7kvl0f6f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "4e50d9f46b044c0d885af3a486bf6275c121f29e",
+ "sha256": "1s06m8bam7wlhqw0gbc443lfrz51mj05pzvbmjzqadqn4240v4jw"
+ }
+ },
+ {
+ "ename": "hacker-typer",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "0vf18hylhszvplam6c4yynr53zc3n816p9k36gywm6awwblfpyfb",
+ "fetcher": "github",
+ "repo": "dieggsy/emacs-hacker-typer",
+ "unstable": {
+ "version": [
+ 20170206,
+ 1520
+ ],
+ "commit": "d5a23714a4ccc5071580622f278597d5973f40bd",
+ "sha256": "13wp7cg9d9ij44inxxyk1knczglxrbfaq50wyhc4x5zfhz5yw7wx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 6
+ ],
+ "commit": "d5a23714a4ccc5071580622f278597d5973f40bd",
+ "sha256": "13wp7cg9d9ij44inxxyk1knczglxrbfaq50wyhc4x5zfhz5yw7wx"
+ }
+ },
+ {
+ "ename": "hackernews",
+ "commit": "c43a342e47e5ede468bcf51a60d4dea3926f51bd",
+ "sha256": "1x1jf5gkhmpiby5rmy0sziywh6c1f1n0p4f6dlz6ifbwns7har6a",
+ "fetcher": "github",
+ "repo": "clarete/hackernews.el",
+ "unstable": {
+ "version": [
+ 20200604,
+ 1557
+ ],
+ "commit": "019a727b41e2726516841048a2b5b04f2ed2301a",
+ "sha256": "1b4vlk3l1mm8jz0kkyjbddfnx963vzsq4gprci8aw203fjnxhbdx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "commit": "aec997970f2c2f8e0077c1f6584e4d1996ae3864",
+ "sha256": "15asarr271p582xbmhvhh9q0lgka25h6k65xh82rqvig4mirhn1l"
+ }
+ },
+ {
+ "ename": "hal-mode",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "0nlan5f3llhn04p86a6l47dl9g83a51wzrchs2q8rvfcy4161nn4",
+ "fetcher": "github",
+ "repo": "machinekoder/hal-mode",
+ "unstable": {
+ "version": [
+ 20160704,
+ 1746
+ ],
+ "commit": "cd2f66f219ee520198d4586fb6b169cef7ad3f21",
+ "sha256": "0xibwmngijq0wv9hkahs5nh02qj3ma0bkczl07hx8wnl6j27f0nj"
+ }
+ },
+ {
+ "ename": "ham-mode",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "000qrdby7d6zmp5066vs4gjlc9ik0ybrgcwzcbfgxb16w1g9xpmz",
+ "fetcher": "github",
+ "repo": "Malabarba/ham-mode",
+ "unstable": {
+ "version": [
+ 20150811,
+ 1306
+ ],
+ "deps": [
+ "html-to-markdown",
+ "markdown-mode"
+ ],
+ "commit": "3a141986a21c2aa6eefb428983352abb8b7907d2",
+ "sha256": "0d3xmagl18pas19zbpg27j0lmdiry23df48z4vkjsrcllqg25v5g"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "deps": [
+ "html-to-markdown",
+ "markdown-mode"
+ ],
+ "commit": "3a141986a21c2aa6eefb428983352abb8b7907d2",
+ "sha256": "0d3xmagl18pas19zbpg27j0lmdiry23df48z4vkjsrcllqg25v5g"
+ }
+ },
+ {
+ "ename": "hamburg-theme",
+ "commit": "465ac6063c4f91652e59a8bbb493897109791728",
+ "sha256": "149ln7670kjyhdfj5j9akxch47dlff2hd58amla7j3297z1nhg4k",
+ "fetcher": "github",
+ "repo": "mswift42/hamburg-theme",
+ "unstable": {
+ "version": [
+ 20160123,
+ 740
+ ],
+ "commit": "aacefdf1501d97a5afc0e63c8ead4b2463323028",
+ "sha256": "1rnkzl51h263nck1bd0jyb7q58b54d764gcsh7wqxfgzs1jfr4am"
+ }
+ },
+ {
+ "ename": "hamburger-menu",
+ "commit": "e8017730403cc0e613e3939017f85074753c3778",
+ "sha256": "0ws9729i51arjqwpiywcpb7y3c5sm3c9wrq8q0k0m9hpq8h11wdb",
+ "fetcher": "gitlab",
+ "repo": "iain/hamburger-menu-mode",
+ "unstable": {
+ "version": [
+ 20160825,
+ 2031
+ ],
+ "commit": "3568159c693c30bed7f61580e4f3b6241253ad4e",
+ "sha256": "1nykpp8afa0c0wiax1qn8wf5hfjaixk5kn4yhcw40z00pb8i2z5f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 5
+ ],
+ "commit": "fd37f013c2f2619a88d3ed5311a9d1308cc82614",
+ "sha256": "196ydb57h4mjagjaiflvb20my561i6mdc6v6694ibdik2yns2inm"
+ }
+ },
+ {
+ "ename": "haml-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0ih0m7zr6kgn6zd45zbp1jgs1ydc5i5gmq6l080wma83v5w1436f",
+ "fetcher": "github",
+ "repo": "nex3/haml-mode",
+ "unstable": {
+ "version": [
+ 20190219,
+ 2102
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bf5b6c11b1206759d2b28af48765e04882dd1fc4",
+ "sha256": "1zh19b9az4ql87vjmjm0j7y6c4ir6w3rh0n4sxzqqpnv8xpd4b44"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 9
+ ],
+ "deps": [
+ "ruby-mode"
+ ],
+ "commit": "5e0baf7b795b9e41ac03b55f8feff6b51027c43b",
+ "sha256": "0fmr7ji8x5ki9fzybpbg3xbhzws6n7ffk7d0zf9jl1x3jd8d6988"
+ }
+ },
+ {
+ "ename": "hamlet-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "16cyfzv2yrf249jklxdahfmsy8rg6hargjpafy4fz4a532fcbw81",
+ "fetcher": "github",
+ "repo": "lightquake/hamlet-mode",
+ "unstable": {
+ "version": [
+ 20131208,
+ 724
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "7362b955e556a3d007fa06945a27e5b99349527d",
+ "sha256": "1njrpb1s2v9skyfbgb28clrxyvyp8i4b8kwa68ynvq3vjb4fnws6"
+ }
+ },
+ {
+ "ename": "handle",
+ "commit": "da5debb55f7b34dcbcea81675bddd872bdb7fd69",
+ "sha256": "032rfk3hiv0ps0p332gkf67vqs5nif8hhraiv3zlybxblzhcxaw1",
+ "fetcher": "gitlab",
+ "repo": "jjzmajic/handle",
+ "unstable": {
+ "version": [
+ 20191029,
+ 856
+ ],
+ "deps": [
+ "parent-mode"
+ ],
+ "commit": "e27b2d0b229923f81a2c8afa3e9c65ae9e84a0da",
+ "sha256": "1w77p85ww1fjqgybi75s9bayqxyfvy040nr0gvsv3lmkri2mhglm"
+ }
+ },
+ {
+ "ename": "handlebars-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0wizasjihnabnqzn1226vh4gb571rs7s86bffhvkfvbk95zkiafq",
+ "fetcher": "github",
+ "repo": "danielevans/handlebars-mode",
+ "unstable": {
+ "version": [
+ 20150211,
+ 1749
+ ],
+ "commit": "81f6b73fea8f397807781a1b51568397af21a6ef",
+ "sha256": "0w443knp6kvjm2m79cni5d17plyhbsl0a4kip7yrpv5nmg370q3p"
+ }
+ },
+ {
+ "ename": "handlebars-sgml-mode",
+ "commit": "87aec68ed80545a61ad46b71e7bd9dbfc7634108",
+ "sha256": "10sxm7v94yxa92mqbwj3shqjs6f3zbxjvwgbvg9m2fh3b7xj617w",
+ "fetcher": "github",
+ "repo": "jacott/handlebars-sgml-mode",
+ "unstable": {
+ "version": [
+ 20130623,
+ 2333
+ ],
+ "commit": "c76df93a9a8c1b1b3efdcc4add32bf93304192a4",
+ "sha256": "1z37di9vk1l35my8kl8jnyqlkr1rnp0iz13hpc0r065mib67v58k"
+ }
+ },
+ {
+ "ename": "handoff",
+ "commit": "bbdb89413b3f5de680e3f9fa625039c73a377e97",
+ "sha256": "0iqqvygx50wi2vcbs6bfgqzhcz9a89zrwb7sg0ang9qrkiz5k36w",
+ "fetcher": "github",
+ "repo": "rejeep/handoff.el",
+ "unstable": {
+ "version": [
+ 20150917,
+ 600
+ ],
+ "commit": "75dc7a7e352f38679f65d0ca80ad158798e168bd",
+ "sha256": "0whn8rc98dhncgizzrb22nx6b6cm655q1cf2fpn6g3knq1c2471r"
+ }
+ },
+ {
+ "ename": "hardcore-mode",
+ "commit": "b929b3343cd5925944665e4e09b4524bca873c95",
+ "sha256": "1bgi1acpw4z7i03d0i8mrd2hpjn6hyvkdsk0ks9q380yp9mqmiwd",
+ "fetcher": "github",
+ "repo": "magnars/hardcore-mode.el",
+ "unstable": {
+ "version": [
+ 20151114,
+ 701
+ ],
+ "commit": "b1dda19692b4a7a58a689e81784a9b35be39e70d",
+ "sha256": "124k803pgxc7fz325yy6jcyam69f5fk9kdwfgmnwwca9ablq4cfb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "5ab75594a7a0ca236e2ac87882ee439ff6155d96",
+ "sha256": "08l6p9n2ggg4filad1k663qc2gjgfbia4knnnif4sw7h92yb31jl"
+ }
+ },
+ {
+ "ename": "hardhat",
+ "commit": "081aa3e1d50c2c9e5a9b9ce0716258a93279f605",
+ "sha256": "16pdbpm647ag9cadmdm75nwwyzrqsd9y1b4zgkl3pg669mi5vl5z",
+ "fetcher": "github",
+ "repo": "rolandwalker/hardhat",
+ "unstable": {
+ "version": [
+ 20160414,
+ 1413
+ ],
+ "deps": [
+ "ignoramus"
+ ],
+ "commit": "9038a49ab55cd4c502cf7f07ed0d1b9b6bc3626e",
+ "sha256": "0j9z46j777y3ljpai5czdlwl07f0irp4fsk4677n11ndyqm1amb5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 6
+ ],
+ "deps": [
+ "ignoramus"
+ ],
+ "commit": "9038a49ab55cd4c502cf7f07ed0d1b9b6bc3626e",
+ "sha256": "0j9z46j777y3ljpai5czdlwl07f0irp4fsk4677n11ndyqm1amb5"
+ }
+ },
+ {
+ "ename": "harvest",
+ "commit": "c97d3f653057eab35c612109792884334be556fe",
+ "sha256": "1r6brld6iq03wsr1b3jhdkxwrcxa6g6fwa1jiy1kgjsr9dq1m51c",
+ "fetcher": "github",
+ "repo": "kostajh/harvest.el",
+ "unstable": {
+ "version": [
+ 20170822,
+ 1746
+ ],
+ "deps": [
+ "hydra",
+ "s",
+ "swiper"
+ ],
+ "commit": "7acbc0564b250521b67131ee2a0a92720239454f",
+ "sha256": "0wzv67kkfyaw19ddw0ra45p6rja6bk6d1xi3ak5lkyzvgqvylr3b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 8
+ ],
+ "deps": [
+ "hydra",
+ "s",
+ "swiper"
+ ],
+ "commit": "69041907bdca68d3ab6802e08ec698c3448f28a1",
+ "sha256": "0rqxi668wra1mfzq4fqscjghis5gqnwpazgidgix13brybaxydx4"
+ }
+ },
+ {
+ "ename": "haskell-emacs",
+ "commit": "5daff329a96a6d10bca11d838bbc95d1c8bcfbd9",
+ "sha256": "1wkh7qws35c32hha0p9rpjz5pls2844920nh919lvp2wmq9l6jd6",
+ "fetcher": "github",
+ "repo": "knupfer/haskell-emacs",
+ "unstable": {
+ "version": [
+ 20160904,
+ 2026
+ ],
+ "commit": "a2c6a079175904689eed7c6c200754bfa85d1ed9",
+ "sha256": "1xpaqcj33vyzs5yv2w4dahw8a2vb6zcb3z7y2aqc5jdg3fx9ypam"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 3
+ ],
+ "commit": "a2c6a079175904689eed7c6c200754bfa85d1ed9",
+ "sha256": "1xpaqcj33vyzs5yv2w4dahw8a2vb6zcb3z7y2aqc5jdg3fx9ypam"
+ }
+ },
+ {
+ "ename": "haskell-emacs-base",
+ "commit": "5daff329a96a6d10bca11d838bbc95d1c8bcfbd9",
+ "sha256": "1fwkds6qyhbxxdgxfzmgd7dlcxr08ynrrg5jdp9r7f924pd536vb",
+ "fetcher": "github",
+ "repo": "knupfer/haskell-emacs",
+ "unstable": {
+ "version": [
+ 20150714,
+ 1559
+ ],
+ "deps": [
+ "haskell-emacs"
+ ],
+ "commit": "a2c6a079175904689eed7c6c200754bfa85d1ed9",
+ "sha256": "1xpaqcj33vyzs5yv2w4dahw8a2vb6zcb3z7y2aqc5jdg3fx9ypam"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 3
+ ],
+ "deps": [
+ "haskell-emacs"
+ ],
+ "commit": "a2c6a079175904689eed7c6c200754bfa85d1ed9",
+ "sha256": "1xpaqcj33vyzs5yv2w4dahw8a2vb6zcb3z7y2aqc5jdg3fx9ypam"
+ }
+ },
+ {
+ "ename": "haskell-emacs-text",
+ "commit": "5daff329a96a6d10bca11d838bbc95d1c8bcfbd9",
+ "sha256": "1j18fhhra6lv32xrq8jc6l8i56fgn68da81wymcimpmpbp0hl5fy",
+ "fetcher": "github",
+ "repo": "knupfer/haskell-emacs",
+ "unstable": {
+ "version": [
+ 20150713,
+ 1416
+ ],
+ "deps": [
+ "haskell-emacs"
+ ],
+ "commit": "a2c6a079175904689eed7c6c200754bfa85d1ed9",
+ "sha256": "1xpaqcj33vyzs5yv2w4dahw8a2vb6zcb3z7y2aqc5jdg3fx9ypam"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 3
+ ],
+ "deps": [
+ "haskell-emacs"
+ ],
+ "commit": "a2c6a079175904689eed7c6c200754bfa85d1ed9",
+ "sha256": "1xpaqcj33vyzs5yv2w4dahw8a2vb6zcb3z7y2aqc5jdg3fx9ypam"
+ }
+ },
+ {
+ "ename": "haskell-mode",
+ "commit": "7f18b4dcbad4192b0153a316cff6533272898f1a",
+ "sha256": "0wijvcpfdbl17iwzy47vf8brkj2djarfr8y28rw0wqvbs381zzwp",
+ "fetcher": "github",
+ "repo": "haskell/haskell-mode",
+ "unstable": {
+ "version": [
+ 20200531,
+ 2255
+ ],
+ "commit": "41683c0e634bb3f54eac8747919a82132e1714fe",
+ "sha256": "1fxj11in90xvpbqhxx5c3qynkd8yfainpbf8cvdh3gdgpifrc0gg"
+ },
+ "stable": {
+ "version": [
+ 17,
+ 1
+ ],
+ "commit": "17357211a16394884a981fe0c062f94250b40300",
+ "sha256": "0izcasi2v02zh08c863h43m8mmsldzy8pck43cllrfn0zf24v2qn"
+ }
+ },
+ {
+ "ename": "haskell-snippets",
+ "commit": "b5534e58ea66fd90ba4a69262f0b303c7fb85af4",
+ "sha256": "10bvv7q694fahcpm83v8lpqihg1gvfzrp1hdzwiffxydfvdbalh2",
+ "fetcher": "github",
+ "repo": "haskell/haskell-snippets",
+ "unstable": {
+ "version": [
+ 20160919,
+ 22
+ ],
+ "deps": [
+ "cl-lib",
+ "yasnippet"
+ ],
+ "commit": "07b0f460b946fd1be26c29652cb0468b47782f3a",
+ "sha256": "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "bcf12cf33a67ddc2f023a55072859e637fe4fa25",
+ "sha256": "0b3d7rvqvvcsp51aqfhl0zg9zg8j0p6vlfvga6jp9xc7626vh6f6"
+ }
+ },
+ {
+ "ename": "haskell-tab-indent",
+ "commit": "371f9f45e441cdf4e95557d1e9692619fab3024a",
+ "sha256": "0vdfmy56w5yi202nbd28v1bzj97v1wxnfnb5z3dh9687p2abgnr7",
+ "fetcher": "git",
+ "url": "https://git.spwhitton.name/haskell-tab-indent",
+ "unstable": {
+ "version": [
+ 20200513,
+ 1950
+ ],
+ "commit": "3239e814d6999f31ad845cc58df53395ad299059",
+ "sha256": "0319nr4l56p0d2gpybkc2lkkhwi6qmf2gjpgpajpcz11ms9m8x5z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "1127f46eca40a48be9cd2380df2cfc5f0b694e63",
+ "sha256": "13c2z1i7icpwv60njn83qbla9i0qlq3m0yz88ach1mlvmsdfj9jz"
+ }
+ },
+ {
+ "ename": "hasklig-mode",
+ "commit": "15a60278102de9e078b613456126945737718ce9",
+ "sha256": "0gz0k9ahk0jpdp893ckbby9ilkac1zp95kpfqdnpfy0a036xfwm7",
+ "fetcher": "github",
+ "repo": "minad/hasklig-mode",
+ "unstable": {
+ "version": [
+ 20181110,
+ 1859
+ ],
+ "commit": "386c098c93a744f6b30ad937d193eebf0fd79e1b",
+ "sha256": "0m1cn59fzsfqc6j1892yaaddh6g6mwiqnp1ssxhic5fcm2xk00rz"
+ }
+ },
+ {
+ "ename": "hasky-extensions",
+ "commit": "e3f73e3df8476fa231d04211866671dd74911603",
+ "sha256": "0ymigba1d0qkrk3ccd3cx754safzmx1v5d13976571rszgmkvr15",
+ "fetcher": "github",
+ "repo": "hasky-mode/hasky-extensions",
+ "unstable": {
+ "version": [
+ 20190204,
+ 2016
+ ],
+ "deps": [
+ "avy-menu"
+ ],
+ "commit": "4a0d1d9beb3be8ff4a1857eb920c916734dcc8e1",
+ "sha256": "1sp07lqvxxcl625qr9ka7idvci3j0p77ll90pwzykr5cs7r3lzl2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "avy-menu"
+ ],
+ "commit": "65bf7bc3967cbda23789d6c505daf73eed9a43aa",
+ "sha256": "0r91hcm265xa8amdfi44pn0cqf4m9zigzqx1ldgg8qd6l9r2hbh7"
+ }
+ },
+ {
+ "ename": "hasky-stack",
+ "commit": "c3faf544872478c3bccf2fe7dc51d406031e4d80",
+ "sha256": "08ds0v5p829s47lbhibswnbn1aqfnwf6xx7p5bc5062wxdvqahw8",
+ "fetcher": "github",
+ "repo": "hasky-mode/hasky-stack",
+ "unstable": {
+ "version": [
+ 20190304,
+ 2248
+ ],
+ "deps": [
+ "f",
+ "magit-popup"
+ ],
+ "commit": "9ef133ed831a95a2b9990a46a3c57f1918d0274f",
+ "sha256": "08h795hplyy7d0yqxvdfx3ylb7gkjplyriyq0w9dsv6ggvmc5hhl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 0
+ ],
+ "deps": [
+ "f",
+ "magit-popup"
+ ],
+ "commit": "a3176aece9a9ab0a36ae795965f83f4c1fa243bf",
+ "sha256": "1j9cvy95wnmssg68y7hcjr0fh117ix1ypa0k7rxqn84na7hyhdpl"
+ }
+ },
+ {
+ "ename": "haste",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "175kprxqbpmssjxavcm7lyzg1cwsxkrfg9pc72vgqyfmcmjyk34c",
+ "fetcher": "github",
+ "repo": "rlister/emacs-haste-client",
+ "unstable": {
+ "version": [
+ 20141030,
+ 2034
+ ],
+ "deps": [
+ "json"
+ ],
+ "commit": "22d05aacc3296ab50a7361222ab139fb4d447c25",
+ "sha256": "1gmh455ahd9if11f8mrqbfky24c784bb4fgdl3pj8i0n5sl51i88"
+ }
+ },
+ {
+ "ename": "haxe-imports",
+ "commit": "db7d2b08e914aab7719c6d3a951b142ec7252f34",
+ "sha256": "10xh57ir49f18pzw9ihpwffchm1mba0ck1zdqsfllh3p5gry1msg",
+ "fetcher": "github",
+ "repo": "accidentalrebel/emacs-haxe-imports",
+ "unstable": {
+ "version": [
+ 20170330,
+ 2304
+ ],
+ "deps": [
+ "pcache",
+ "s"
+ ],
+ "commit": "f104a641f3dfe698359d9aca1f28d9383cf43e04",
+ "sha256": "09crkm4ibi4m23qw4saqm0nm2i4cv40md3p768j2vniamby2q78f"
+ }
+ },
+ {
+ "ename": "haxe-mode",
+ "commit": "31ab3513c2d048ee6d8277916e29987f981b81ca",
+ "sha256": "1h5v0vza8pyqf76hmzwgavh2zzrzwfjl4xdcc469bb6c59gzvhmr",
+ "fetcher": "github",
+ "repo": "emacsorphanage/haxe-mode",
+ "unstable": {
+ "version": [
+ 20200204,
+ 1015
+ ],
+ "commit": "9449b2b8bc733faa130d3ab68b97ac1ae1db3bff",
+ "sha256": "1xpjwzd8vd41hs3i3yy4l1w0q0pk8s12bgky5q524n03pdq4n756"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "commit": "ed99906a808ff4a00bf6b0e231c30c240a563954",
+ "sha256": "1lnx8qrqix2n3bvw8blqc7msghfy1w1dzyga9s8c9z5pawqrbm85"
+ }
+ },
+ {
+ "ename": "haxor-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0ss0kkwjyc7z7vcb89qr02p70c6m2jarr34mxmdv6ipwil58jj1s",
+ "fetcher": "github",
+ "repo": "krzysztof-magosa/haxor-mode",
+ "unstable": {
+ "version": [
+ 20160618,
+ 1129
+ ],
+ "commit": "6fa25a8e6b6a59481bc0354c2fe1e0ed53cbdc91",
+ "sha256": "0pdfvqbz4wmjl15wi3k4h7myij8v63vmyiq8g9fai18f7ad2klp1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "commit": "6fa25a8e6b6a59481bc0354c2fe1e0ed53cbdc91",
+ "sha256": "0pdfvqbz4wmjl15wi3k4h7myij8v63vmyiq8g9fai18f7ad2klp1"
+ }
+ },
+ {
+ "ename": "hayoo",
+ "commit": "01c1b96a4d076323264b2762d2c5a61680e21cff",
+ "sha256": "1rqvnv5nxlsyvsa5my1wpfm82sw21s7kfbg80vrjmxh0mwlyv4p9",
+ "fetcher": "github",
+ "repo": "benma/hayoo.el",
+ "unstable": {
+ "version": [
+ 20140831,
+ 1221
+ ],
+ "deps": [
+ "json"
+ ],
+ "commit": "3ca2fb0c4d5f337d0410c21b2702dd147014e984",
+ "sha256": "0pjxyhh8a02i54a9jsqr8p1mcqfl6k9b8gv9lnzb242gy4518y3l"
+ }
+ },
+ {
+ "ename": "hc-zenburn-theme",
+ "commit": "01ccd40bd5fc2699a4756ebf503ac50f562cf600",
+ "sha256": "0jcddk9ppgcizyyciabj3sgk1pmingl97knf9nmr0mi89h7n2g5y",
+ "fetcher": "github",
+ "repo": "edran/hc-zenburn-emacs",
+ "unstable": {
+ "version": [
+ 20150928,
+ 1633
+ ],
+ "commit": "fd0024a5191cdce204d91c8f1db99ba31640f6e9",
+ "sha256": "0rgcj47h7a67qkw6696pcm1a4g4ryx8nrz55s69fw86958fp08hk"
+ }
+ },
+ {
+ "ename": "hcl-mode",
+ "commit": "979fe43b4f9325a4fccad6998763af2b44431b30",
+ "sha256": "0kvyvjv19fag60vv9qv0j91jmj8nilamcwqd1mj70qcj35pwlp60",
+ "fetcher": "github",
+ "repo": "purcell/emacs-hcl-mode",
+ "unstable": {
+ "version": [
+ 20200315,
+ 2129
+ ],
+ "commit": "e12b1df2ca28d2b06c471cd709c038a2dc0bcdbd",
+ "sha256": "05j97g2l4rdx35a435xpdpq1ixgf9j94828fx4yhh4g60fjwwb82"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "6a6daf37522188a2f2fcdebc60949fc3bdabbc06",
+ "sha256": "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"
+ }
+ },
+ {
+ "ename": "headlong",
+ "commit": "826e9a8221d9378dd3b9fcc16ce5f50fd6ed2dce",
+ "sha256": "042ybplkqjb30qf5cpbw5d91j1rdc71b789v277h036bri7hgxz6",
+ "fetcher": "github",
+ "repo": "abo-abo/headlong",
+ "unstable": {
+ "version": [
+ 20150417,
+ 1526
+ ],
+ "commit": "f6830f87f236eee88263cb6976125f72422abe72",
+ "sha256": "06hq6p6a4fzprbj4r885vsvzddlvx0wxqk5kik06v5bm7hjmnyrq"
+ }
+ },
+ {
+ "ename": "heaven-and-hell",
+ "commit": "685edd63bf65520be304cbd564db7f5974fc5ae1",
+ "sha256": "19r0p78r9c78ly8awkgc33xa5b75zkkrb5kwvxbagirxdgkjv74r",
+ "fetcher": "github",
+ "repo": "valignatev/heaven-and-hell",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1830
+ ],
+ "commit": "e1febfd60d060c110a1e43c5f093cd8537251308",
+ "sha256": "1bgs638nsn9hyvc9wbc2jpqm5i3hblld1mhmf0h9z0j6fjr0aapx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "commit": "e1febfd60d060c110a1e43c5f093cd8537251308",
+ "sha256": "1bgs638nsn9hyvc9wbc2jpqm5i3hblld1mhmf0h9z0j6fjr0aapx"
+ }
+ },
+ {
+ "ename": "helm",
+ "commit": "7e8bccffdf69479892d76b9336a4bec3f35e919d",
+ "sha256": "03la01d0syikjgsjq0krlp3p894djwfxqfmd2srddwks7ish6xjf",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm",
+ "unstable": {
+ "version": [
+ 20200818,
+ 742
+ ],
+ "deps": [
+ "async",
+ "helm-core",
+ "popup"
+ ],
+ "commit": "e9a1e53c57478389343ee23ebb962c8b9b4b4bba",
+ "sha256": "1vw6qcpz71sb6xhjzlikr4l1q23sfbphlza4x4ma0gc7mfzyqfh0"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 6,
+ 4
+ ],
+ "deps": [
+ "async",
+ "helm-core",
+ "popup"
+ ],
+ "commit": "a3343a370975d9c01df4f1ff42875cc32ae89592",
+ "sha256": "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz"
+ }
+ },
+ {
+ "ename": "helm-R",
+ "commit": "ce6eb840368f8cbee66dc061478d5096b9dacb68",
+ "sha256": "0zq9f2xhgap3ihnrlsrsaxaz0nx014k0820bfsq7lckwcnm0mng1",
+ "fetcher": "github",
+ "repo": "myuhe/helm-R.el",
+ "unstable": {
+ "version": [
+ 20120820,
+ 14
+ ],
+ "deps": [
+ "ess",
+ "helm"
+ ],
+ "commit": "b0eb9d5f6a483a9dbe6eb6cf1f2024d4f5938bc2",
+ "sha256": "0nip0zrmn944wy0x2dc5ryr0m7a948rn2a8cbaajghs7a7zai4cr"
+ }
+ },
+ {
+ "ename": "helm-ack",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "124w7grwindyv86xfshfm70h0xfq29ns067pchk8dcbjbgh9yl7b",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-ack",
+ "unstable": {
+ "version": [
+ 20141030,
+ 1226
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "889bc225318d14c6e3be80e73b1d9d6fb30e48c3",
+ "sha256": "04rvbafa77blps7x7cmlsciys8fgmvhfhq4v51pk8z5q3j1lrgc5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "5982f3cb6ec9f460ebbe06ec0ce7b3590bca3118",
+ "sha256": "0ps86zpyywibjwcm9drmamla979ad61fyqr8d6bv71fr56k9ak21"
+ }
+ },
+ {
+ "ename": "helm-ad",
+ "commit": "b44ec4e059ab830a3708697fa95fada5f6a30a91",
+ "sha256": "0h2zjfj9hy7bkpmmjjs0a4a06asbw0yww8mw9rk2xi1gc2aqq4hi",
+ "fetcher": "github",
+ "repo": "tnoda/helm-ad",
+ "unstable": {
+ "version": [
+ 20151209,
+ 1015
+ ],
+ "deps": [
+ "dash",
+ "helm"
+ ],
+ "commit": "8ac044705d8620ee354a9cfa8cc1b865e83c0d55",
+ "sha256": "0hxfgdn56c7qr64r59g9hvxxwa4mw0ad9c9m0z5cj85bsdd7rlx4"
+ }
+ },
+ {
+ "ename": "helm-addressbook",
+ "commit": "4bb805b0f2d2055aa4e88bd41239d75ec34f5785",
+ "sha256": "1d8byi6sr5gz1rx3kglnkp47sn9dqdd83s12d84wyay06ix3cqqi",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-addressbook",
+ "unstable": {
+ "version": [
+ 20170903,
+ 728
+ ],
+ "deps": [
+ "addressbook-bookmark",
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "62497f72d46afd3a9f9f94b27d062a82fb232de4",
+ "sha256": "1lmq7j19qv3pabs5arapx3lv2xhf0sgn4b2hl0l0kzph52fvics7"
+ }
+ },
+ {
+ "ename": "helm-ag",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0jzfycbaz88r6scsiw74prcnbvilsaphljdys6i5k9g5rhn5sxh5",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-ag",
+ "unstable": {
+ "version": [
+ 20200811,
+ 1304
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "4ee2174c4e27e02c75a487a235de4d80c663aa08",
+ "sha256": "1sc9ksfb3s5p5kqriz5402r785fklw3ykz8fb107xykl9kdjnzy3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 62
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "08aaab53b8876caba619f956945a8152ece47182",
+ "sha256": "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"
+ }
+ },
+ {
+ "ename": "helm-ag-r",
+ "commit": "6aa1cf029db913dafb561e4c8ccc1ca9099524de",
+ "sha256": "0ivh7f021lbmbaj6gs4y8m99s63js57w04q7cwx7v4i32cpas7r9",
+ "fetcher": "github",
+ "repo": "yuutayamada/helm-ag-r",
+ "unstable": {
+ "version": [
+ 20131123,
+ 1531
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "67de4ebafe9b088db950eefa5ef590a6d78b4ac8",
+ "sha256": "1rifdkhzvf7xd2npban0i8v3rjcji69063dw9rs1d32w4n7fzlfa"
+ }
+ },
+ {
+ "ename": "helm-apt",
+ "commit": "5d3fec3e22c66091f0f71c2c9916755006b290f4",
+ "sha256": "11l35c08zs0ds0k8q8mr63446b0943i9yr85g9i6s1kdcsx96swc",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-apt",
+ "unstable": {
+ "version": [
+ 20200719,
+ 1131
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "f6204e2333881291b007e4859d9446994e988653",
+ "sha256": "08gxfby2i80nmzlbj39p0nnicg95swzjxc222wksvggfxvvln5f7"
+ }
+ },
+ {
+ "ename": "helm-aws",
+ "commit": "421182006b8af17dae8b5ad453cc11e2d990a053",
+ "sha256": "0sjgdjpznjxsf6nlv2ah45fw17j8j5apdphd1fp43rjv1lskkgc5",
+ "fetcher": "github",
+ "repo": "istib/helm-aws",
+ "unstable": {
+ "version": [
+ 20180514,
+ 1032
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "s"
+ ],
+ "commit": "b36c744b3f00f458635a91d1f5158fccbb5baef6",
+ "sha256": "11683s12dabgi9j6cyx0i147pgz4jdd240xviry7w3cxgarqki8y"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "172a4a3427d31c999e27e9ee06aa8e3822364a8c",
+ "sha256": "015p5sszd54x81qm96gx6xwjkvbi4f3j9i2nhcvlkk75s95w1ijv"
+ }
+ },
+ {
+ "ename": "helm-backup",
+ "commit": "5e6eba7b201e91211e43c39e501f6066f0afeb8b",
+ "sha256": "182jbm36yzayxi9y3vhpyn25ivrgay37sncqvah35vbw52lnjcn3",
+ "fetcher": "github",
+ "repo": "antham/helm-backup",
+ "unstable": {
+ "version": [
+ 20180911,
+ 614
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "s"
+ ],
+ "commit": "691fe542f38fc7c8cca409997f6a0ff5d76ad6c2",
+ "sha256": "0zi1md5f1haqcrclqfk4ilvr6hbm389kl3ajnyx230rq22vmb9ca"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "s"
+ ],
+ "commit": "45a86a41ac44f90d4db2c0e9339233ee7f0be0b8",
+ "sha256": "0pr4qd6mi9g91lndqnk4w26lq3w8pxcgxragxj3209dgwqsxps95"
+ }
+ },
+ {
+ "ename": "helm-bbdb",
+ "commit": "7025c319fcabc64576c0c6554d0d572cef697693",
+ "sha256": "1wlacbfs23shvyaq616r1p84h8321zz1k5nzir5qg8nr6lssi8vp",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-bbdb",
+ "unstable": {
+ "version": [
+ 20190728,
+ 1325
+ ],
+ "deps": [
+ "bbdb",
+ "helm"
+ ],
+ "commit": "db69114ff1af8bf48b5a222242e3a8dd6e101e67",
+ "sha256": "1yfz5s83589jazyfzyrzh84iv0db2akbwj796gadpb3yhn17pl4v"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "bbdb",
+ "helm"
+ ],
+ "commit": "20513422102fea4c08a0433d728a7783bb4968c8",
+ "sha256": "0ns537fimv774n1bq0r8k4qwdpapbw96linqyhx9mxp23zkhlg80"
+ }
+ },
+ {
+ "ename": "helm-bibtex",
+ "commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3",
+ "sha256": "0ciz4lczfv9b4n12jd9r5w81yj884pmi53xmm9cqzvrv3hh9n8hs",
+ "fetcher": "github",
+ "repo": "tmalsburg/helm-bibtex",
+ "unstable": {
+ "version": [
+ 20200429,
+ 1606
+ ],
+ "deps": [
+ "bibtex-completion",
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "8a0dd9841316793aacddea744d6b8ca4a7857a35",
+ "sha256": "1av058d7888kr3q15y1122r8jkarfw1s83gvkillj7kyzj3i53m5"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "biblio",
+ "cl-lib",
+ "dash",
+ "f",
+ "helm",
+ "parsebib",
+ "s"
+ ],
+ "commit": "d6a98ac6f28d2a6a05e203115211c98333d40aca",
+ "sha256": "0arhy051945lxjqg77b275ny9nsv60cqj0qfpmvd8xkc07lqfn23"
+ }
+ },
+ {
+ "ename": "helm-bibtexkey",
+ "commit": "d35a2e5cb5232d16d5c98168706d8b6426fcfb44",
+ "sha256": "00i7ni4r73mmxavhfcm0fd7jhx6gxvxx7prax1yxmhs46fpz8jwj",
+ "fetcher": "github",
+ "repo": "kenbeese/helm-bibtexkey",
+ "unstable": {
+ "version": [
+ 20140214,
+ 1504
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "aa1637ea5c8c5f1817e480fc2a3750cafab3d99f",
+ "sha256": "10k7hjfz9jmfpbmsv20jy9vr6fqxx1yp8v115hprqvw057iifsl9"
+ }
+ },
+ {
+ "ename": "helm-bind-key",
+ "commit": "9ae8bfd320cdef6c65da2a00439f8108d7ffa7ce",
+ "sha256": "1yfj6mmxc165in1i85ccanssch6bg19ib1fcm7sa4i4hv0mgwaid",
+ "fetcher": "github",
+ "repo": "myuhe/helm-bind-key.el",
+ "unstable": {
+ "version": [
+ 20141109,
+ 515
+ ],
+ "deps": [
+ "bind-key",
+ "helm"
+ ],
+ "commit": "9da6ad8b7530e72fb4ac67be8c6a482898dddc25",
+ "sha256": "1wmcy7q4ys2sf8ya5l4n7a6bq5m9d6m19amjfwkmkh4ajkwl041y"
+ }
+ },
+ {
+ "ename": "helm-bitbucket",
+ "commit": "8df73e21dee5144147f9432efe95ee576ac5f435",
+ "sha256": "19bflbnavkwipf7mcrkg3i64iz50jmzm64nl7y1ka349mpy5sm04",
+ "fetcher": "github",
+ "repo": "dragonwasrobot/helm-bitbucket",
+ "unstable": {
+ "version": [
+ 20190422,
+ 1102
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "c722016622ad019202419cca60c3be3c53e56130",
+ "sha256": "08i8d6b41n4sq3jb4gvxkiml73am82jzqkqvvdm9mdhibb8x08mx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "632495036c4a6ac30e408fc74ee9f209fd5ac429",
+ "sha256": "0rbgk982jlbqh1rhns3zmndfr3lpw7m2j9z7qylghkll4k8fcjpl"
+ }
+ },
+ {
+ "ename": "helm-bm",
+ "commit": "115033d7b02d3ca42902195de933f62c5f927ae4",
+ "sha256": "1dnlcvn0zv4qv4ii4j0h9r8w6vhi3l0c5aa768kblh5r2rf4bjjh",
+ "fetcher": "github",
+ "repo": "yasuyk/helm-bm",
+ "unstable": {
+ "version": [
+ 20160321,
+ 1331
+ ],
+ "deps": [
+ "bm",
+ "cl-lib",
+ "helm",
+ "s"
+ ],
+ "commit": "d66341f5646c23178d4d8bffb6cfebe3fb73f1d7",
+ "sha256": "011k37p4vnzm1x8vyairllanvjfknskl20bdfv0glf64xgbdpfil"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "bm",
+ "cl-lib",
+ "helm",
+ "s"
+ ],
+ "commit": "d66341f5646c23178d4d8bffb6cfebe3fb73f1d7",
+ "sha256": "011k37p4vnzm1x8vyairllanvjfknskl20bdfv0glf64xgbdpfil"
+ }
+ },
+ {
+ "ename": "helm-books",
+ "commit": "acba3db40f37e74e1bf9e30f2abed431c259ff50",
+ "sha256": "0xh53vji7nsnpi0b38cjh97x26ryxk61mj7bd6m63qwh8dyhs3yx",
+ "fetcher": "github",
+ "repo": "grugrut/helm-books",
+ "unstable": {
+ "version": [
+ 20170325,
+ 631
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "625aadec1541a5ca36951e4ce1301f4b6fe2bf3f",
+ "sha256": "1d3nps765gxmadhbd1yqn4qvs23bczglwhxkciprky7ixm5lx53k"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "b4c57d2aed596faad41a753dccbcd0a31a717b76",
+ "sha256": "1yr5prp9xvd73balxbn4yn52zah2advq1186ba5aanj436pal0fh"
+ }
+ },
+ {
+ "ename": "helm-bufler",
+ "commit": "4ba5657f237eea9073a46a4127be5795be07c687",
+ "sha256": "0wb1ds3acc36hl7798phbvhygfljjc6br11lf4y3043q8v0lz6gi",
+ "fetcher": "github",
+ "repo": "alphapapa/bufler.el",
+ "unstable": {
+ "version": [
+ 20200409,
+ 1253
+ ],
+ "deps": [
+ "bufler",
+ "helm"
+ ],
+ "commit": "b2b260e4f9e8ba76bb8b4d71344c7b75e05ac44f",
+ "sha256": "0ww7z2xz185i97wa1rnmqwlx2mvwx69hhlyi5m3sm0nkyckb2hjs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "bufler",
+ "helm"
+ ],
+ "commit": "d6c79f04b7d288174d8294fb30488b567586364d",
+ "sha256": "0l35ssjry15wqcxnr8rf5lrv856pgnm0k2d4d6ag14ypjx9nfhw3"
+ }
+ },
+ {
+ "ename": "helm-bundle-show",
+ "commit": "2f10f7387cca102696c38af1d8dc0fe5da5e366f",
+ "sha256": "1af5g233kjf04m2fryizk51a1s2mcmj36zip5nyb8skcsfl4riq7",
+ "fetcher": "github",
+ "repo": "masutaka/emacs-helm-bundle-show",
+ "unstable": {
+ "version": [
+ 20190526,
+ 1401
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "70f1ca7d1847c7d5cd5a3e488562cd4a295b809f",
+ "sha256": "12wz98fcs8v8w74ck4jqbh47pp5956xxh9ld5kpym9zrm39adpq2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 6
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "70f1ca7d1847c7d5cd5a3e488562cd4a295b809f",
+ "sha256": "12wz98fcs8v8w74ck4jqbh47pp5956xxh9ld5kpym9zrm39adpq2"
+ }
+ },
+ {
+ "ename": "helm-c-moccur",
+ "commit": "462a43341a5811822928bcac331d617a38b52e8a",
+ "sha256": "1i6a4jqjy9amlhdbj5d26wzagndfgszha09vs5qf4760vjl7kn4b",
+ "fetcher": "github",
+ "repo": "myuhe/helm-c-moccur.el",
+ "unstable": {
+ "version": [
+ 20151230,
+ 924
+ ],
+ "deps": [
+ "color-moccur",
+ "helm"
+ ],
+ "commit": "b0a906f85fa352db091f88b91a9c510de607dfe9",
+ "sha256": "0w4svbg32y63v049plvk7djc1m2amjzrr1v979d9s6jbnnpzlb5c"
+ }
+ },
+ {
+ "ename": "helm-c-yasnippet",
+ "commit": "2fc20598a2cd22efb212ba43159c6728f0249e5e",
+ "sha256": "0jwj4giv6lxb3h7vqqb2alkwq5kp0shy2nraik33956p4l8dfs90",
+ "fetcher": "github",
+ "repo": "emacs-jp/helm-c-yasnippet",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1519
+ ],
+ "deps": [
+ "helm",
+ "yasnippet"
+ ],
+ "commit": "89cc8561e7e57e9d1070ee3641df019c7f49c5dd",
+ "sha256": "1b6wwz7j9alwmxmk3wvf862ynznkdm1jk5r456dn8ykkvfrs7nlv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 7
+ ],
+ "deps": [
+ "cl-lib",
+ "helm-core",
+ "yasnippet"
+ ],
+ "commit": "1fa400233ba8e990066c47cca1e2af64bd192d4d",
+ "sha256": "108584bmadgidqkdfvf333zkyb5v9f84pasz5h01fkh57ks8by9f"
+ }
+ },
+ {
+ "ename": "helm-catkin",
+ "commit": "c6e88d2a2fc07c8d25f4e1d973147805522a3261",
+ "sha256": "1yr62riiva55c341s9x0fn9wdrv1j05s9a82xm2925jsyh5xzaxy",
+ "fetcher": "github",
+ "repo": "gollth/helm-catkin",
+ "unstable": {
+ "version": [
+ 20190425,
+ 1520
+ ],
+ "deps": [
+ "helm",
+ "xterm-color"
+ ],
+ "commit": "d33c71cecd35616dfa7c3b81d8f51c128405977f",
+ "sha256": "0pggn78lxfq6gmvyxr9y1j5qbcnkfh5f8vavxjpnch6k9xq0591x"
+ }
+ },
+ {
+ "ename": "helm-charinfo",
+ "commit": "6667774bba495c45703ef75261f1f14d89684e3a",
+ "sha256": "04k6crcwhv2k69f5w75g0dg0f5qsbhyxl93qzxxdb5bnr56ad7f6",
+ "fetcher": "github",
+ "repo": "mandoku/helm-charinfo",
+ "unstable": {
+ "version": [
+ 20170810,
+ 1231
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "91798a49dc115342a7e01e48b264e9a0bf5ea414",
+ "sha256": "1ifj6zz5k7qjalg06fvfc7rdmlha0n9hll2hiq7mrcj7lfac6jga"
+ }
+ },
+ {
+ "ename": "helm-chrome",
+ "commit": "7f6ca33fe8ec8a0af8fb166451050f5502838deb",
+ "sha256": "0p3n2pna83mp4ym8x69lk4r3q4apbj5v2blg2mwcsd9zij153nxz",
+ "fetcher": "github",
+ "repo": "kawabata/helm-chrome",
+ "unstable": {
+ "version": [
+ 20160719,
+ 520
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "fd630ace4b4b4f33355a973743bbfe0c90ce4830",
+ "sha256": "0r8s85fs5lnwdn377z5zgi3d090k2n1mgiyxwgy49i8yirssgz51"
+ }
+ },
+ {
+ "ename": "helm-chrome-control",
+ "commit": "ef7ab4aa5a95d14ef9bbe22a53410eab5d64822f",
+ "sha256": "1544zlf95iwgizq0kq0kp70kaqfqiwci1hhl4vhah01jl3ifrdxa",
+ "fetcher": "github",
+ "repo": "xuchunyang/helm-chrome-control",
+ "unstable": {
+ "version": [
+ 20190707,
+ 1807
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "e6758763099959e961e218bb1122526323f7ee5e",
+ "sha256": "186m2zq978hzdixh4cbdjp6mfigdaiqhmx25895574vn3wv4xmj7"
+ }
+ },
+ {
+ "ename": "helm-chrome-history",
+ "commit": "2948c9e1c926fd061f1ee0e6a0f7e31ee788ac49",
+ "sha256": "1nf4bx1vf78bb7ig6wk68lhyp4acj6asxlh0846fgv01c0m8plh5",
+ "fetcher": "github",
+ "repo": "xuchunyang/helm-chrome-history",
+ "unstable": {
+ "version": [
+ 20191031,
+ 1233
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "f9002d4c12df65a99830376b126dbbeae3ef2148",
+ "sha256": "18vgy5kaj0cmrar7ahcxiy9jva006zd7yfcgyi5h99yv62g76j72"
+ }
+ },
+ {
+ "ename": "helm-chronos",
+ "commit": "b6f5eef6ac62ed8d035f4dd272695655d00a4180",
+ "sha256": "1a65b680741cx4cyyizyl2c3bss36x3j2m9sh9hjc87xrzarg0s3",
+ "fetcher": "github",
+ "repo": "dxknight/helm-chronos",
+ "unstable": {
+ "version": [
+ 20150528,
+ 2036
+ ],
+ "deps": [
+ "chronos",
+ "helm"
+ ],
+ "commit": "a14fc3d65dd96ce6616234b3f7b8b08b4c1817ef",
+ "sha256": "1dmj4f8pris1i7wvfplp4dbnyfm403l6rplxfrfi0cd9afg7m68i"
+ }
+ },
+ {
+ "ename": "helm-cider",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0ykhrvh6mix55sv4j8q6614sibksdlwaks736maamqwl3wk6826x",
+ "fetcher": "github",
+ "repo": "clojure-emacs/helm-cider",
+ "unstable": {
+ "version": [
+ 20180307,
+ 458
+ ],
+ "deps": [
+ "cider",
+ "helm-core"
+ ],
+ "commit": "9363cc537f06233345aa3af5cd46aa5681ad607b",
+ "sha256": "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "cider",
+ "helm-core"
+ ],
+ "commit": "9a948b834dd31b3f60d4701d6dd0ecfab0adbb72",
+ "sha256": "0wssd9jv6xighjhfh3p8if1anz3rcrjr71a4j063v6gyknb7fv27"
+ }
+ },
+ {
+ "ename": "helm-cider-history",
+ "commit": "31a9c900d57f2eeed4f0101af73f8a59c20e9a99",
+ "sha256": "12l8jyl743zqk8m2xzcz75y1ybdkbkvcbvfkn1k88k09s31kdq4h",
+ "fetcher": "github",
+ "repo": "Kungi/helm-cider-history",
+ "unstable": {
+ "version": [
+ 20150719,
+ 2120
+ ],
+ "deps": [
+ "cider",
+ "helm"
+ ],
+ "commit": "c391fcb2e162a02001605a0b9449783575a831fd",
+ "sha256": "18j4ikb3q8ygdq74zqzm83wgb39x7w209n3186mm051n8lfmkaif"
+ }
+ },
+ {
+ "ename": "helm-circe",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "07559rg55b0glxiw787xmvxrhms14jz21bvprc5n24b4j827g9xw",
+ "fetcher": "github",
+ "repo": "lesharris/helm-circe",
+ "unstable": {
+ "version": [
+ 20160207,
+ 652
+ ],
+ "deps": [
+ "circe",
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "9091651d9fdd8d49d8ff6f9dcf3a2ae416c9f15a",
+ "sha256": "1gwg299s8ps0q97iw6p515gwn73rjk1icgl3j7cj1s143njjg122"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "circe",
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "9091651d9fdd8d49d8ff6f9dcf3a2ae416c9f15a",
+ "sha256": "1gwg299s8ps0q97iw6p515gwn73rjk1icgl3j7cj1s143njjg122"
+ }
+ },
+ {
+ "ename": "helm-clojuredocs",
+ "commit": "adb117e04c158b1c77a8c1174329477d7eaca838",
+ "sha256": "0yz0wlyay9286by8i30gs3ispswq8ayqlcnna1s7bgspjvb7scmk",
+ "fetcher": "github",
+ "repo": "mbuczko/helm-clojuredocs",
+ "unstable": {
+ "version": [
+ 20160405,
+ 723
+ ],
+ "deps": [
+ "edn",
+ "helm"
+ ],
+ "commit": "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea",
+ "sha256": "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"
+ }
+ },
+ {
+ "ename": "helm-cmd-t",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1w870ldq029wgicgv4cqm31zw2i8vkap3m9hsr9d0i3gv2virnc6",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-cmd-t",
+ "unstable": {
+ "version": [
+ 20170125,
+ 1459
+ ],
+ "commit": "7fa3d4a9f7271512e54c5de999079b27c9eec6bf",
+ "sha256": "06jdvkgnmwrgsdh9y2bwzdng7hy4331v3lh11jvdy4704w4khmak"
+ }
+ },
+ {
+ "ename": "helm-codesearch",
+ "commit": "0a992824e46a4170e2f0915f7a507fcb8a9ef0a6",
+ "sha256": "1v21zwcyx73bc1lcfk60v8xim31bwdk4p06g9i4qag3cijdlli9q",
+ "fetcher": "github",
+ "repo": "youngker/helm-codesearch.el",
+ "unstable": {
+ "version": [
+ 20190412,
+ 1153
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "helm",
+ "s"
+ ],
+ "commit": "72f1d1de746115ab7e861178b49fa3c0b6b58d90",
+ "sha256": "1qxpx8jmkvg59k4rx99bn9asnh4nl5rwkjvbhprdlqaicglm153q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "helm",
+ "s"
+ ],
+ "commit": "a6bac6b8a063b91b444a72318b163b266742db9b",
+ "sha256": "0xmplh7q5wvrkfha8qc9hx7sjyc8dsms0wrvj2y7zg35siw1561l"
+ }
+ },
+ {
+ "ename": "helm-commandlinefu",
+ "commit": "7eaf1e41ef2fa90b6bb6a80891ef1bf52ef1029b",
+ "sha256": "150nqib0sr4n35vdj1xrxcja8gkv3chzhdbgkjxqgkz2yq10xxnd",
+ "fetcher": "github",
+ "repo": "xuchunyang/helm-commandlinefu",
+ "unstable": {
+ "version": [
+ 20150611,
+ 545
+ ],
+ "deps": [
+ "helm",
+ "json",
+ "let-alist"
+ ],
+ "commit": "9ee7e018c5db23ae9c8d1c8fa969876f15b7280d",
+ "sha256": "0fxrmvb64lav4aqs61z3a4d2mcp9s2nw7fvysyjn0r1291pkzk9j"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "helm",
+ "json",
+ "let-alist"
+ ],
+ "commit": "e11cd3e961c1c4c973b51d8d12592e7235a4971b",
+ "sha256": "1l61csd1gqz7kg5zjx60cfy824g42p682z7pk0rqzlrz8498wvkh"
+ }
+ },
+ {
+ "ename": "helm-company",
+ "commit": "8acf7420f2ac8a36474594bc34316f187b43d771",
+ "sha256": "1wl1mzm1h9ig351y77yascdv4z0cka1gayi8cnnlayk763is7q34",
+ "fetcher": "github",
+ "repo": "Sodel-the-Vociferous/helm-company",
+ "unstable": {
+ "version": [
+ 20190812,
+ 1429
+ ],
+ "deps": [
+ "company",
+ "helm"
+ ],
+ "commit": "6eb5c2d730a60e394e005b47c1db018697094dde",
+ "sha256": "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 5
+ ],
+ "deps": [
+ "company",
+ "helm"
+ ],
+ "commit": "6eb5c2d730a60e394e005b47c1db018697094dde",
+ "sha256": "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"
+ }
+ },
+ {
+ "ename": "helm-core",
+ "commit": "ef7a700c5665e6d72cb4cecf7fb5a2dd43ef9bf7",
+ "sha256": "1dyv8rv1728vwsp6vfdq954sp878jbp3srbfxl9gsgjnv1l6vjda",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1032
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "e9a1e53c57478389343ee23ebb962c8b9b4b4bba",
+ "sha256": "1vw6qcpz71sb6xhjzlikr4l1q23sfbphlza4x4ma0gc7mfzyqfh0"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 6,
+ 4
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "a3343a370975d9c01df4f1ff42875cc32ae89592",
+ "sha256": "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz"
+ }
+ },
+ {
+ "ename": "helm-cscope",
+ "commit": "3d2e3460df1ec750053bc8402ad6eb822c10c697",
+ "sha256": "13a76wc1ia4c0v701dxqc9ycbb43d5k09m5pfsvs8mccisfzk9y4",
+ "fetcher": "github",
+ "repo": "alpha22jp/helm-cscope.el",
+ "unstable": {
+ "version": [
+ 20190615,
+ 41
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "xcscope"
+ ],
+ "commit": "af1d9e7f4460a88d7400b5a74d5da68084089ac1",
+ "sha256": "1ynn49ngx3y4m9y820sf3rbyzw3k5gs0xf1bsxi3h8hdvyqd7j9p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "xcscope"
+ ],
+ "commit": "b82db54071bd2d1c77db2e648f8b4e61b1abe288",
+ "sha256": "0xnqkc4z22m41v5lgf87dd8xc4gmf932zbnbdhf9xic1gal1779c"
+ }
+ },
+ {
+ "ename": "helm-css-scss",
+ "commit": "7a4e84530b4607a277fc3b678fe7b34b1c5e3b4f",
+ "sha256": "14k29g4zm302r00n49k8b6p4bz115s0jcidiaf6nrhba9y40i0wz",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-css-scss",
+ "unstable": {
+ "version": [
+ 20191230,
+ 1549
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "48b996f73af1fef8d6e88a1c545d98f8c50b0cf3",
+ "sha256": "1xadlsg4c52anbk3dqz6blkrid8lzsd28rw402gy17vnk7lwg9i7"
+ }
+ },
+ {
+ "ename": "helm-ctest",
+ "commit": "1cc85ff5554df10fc2066eec4d90de3b25536923",
+ "sha256": "1mphc9fsclbw19p5i1xf52qg6ljljbajvbcsl95hisrnvhg89vpm",
+ "fetcher": "github",
+ "repo": "danlamanna/helm-ctest",
+ "unstable": {
+ "version": [
+ 20191031,
+ 1435
+ ],
+ "deps": [
+ "dash",
+ "helm-core",
+ "s"
+ ],
+ "commit": "2a29cfb4ec583da247fa2ae7bac88790b1223e40",
+ "sha256": "11am95crkf409w3ph17x55v0xx2gy4spb4qc6z5f7vbxgwyaa4a6"
+ }
+ },
+ {
+ "ename": "helm-dash",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0vn9b6v6y1l4v475s69930sf2h8cj9g3vdi1rx5janpcq7w42mq7",
+ "fetcher": "github",
+ "repo": "dash-docs-el/helm-dash",
+ "unstable": {
+ "version": [
+ 20190527,
+ 1118
+ ],
+ "deps": [
+ "cl-lib",
+ "dash-docs",
+ "helm"
+ ],
+ "commit": "7f853bd34da666f0e9a883011c80f451b06f6c59",
+ "sha256": "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "9a230125a7a11f5fa90aa048b61abd95eb78ddfe",
+ "sha256": "0xs3nq86qmvkiazn5w564npdgbcfjlnpw2f48g2jd43yznblz7ly"
+ }
+ },
+ {
+ "ename": "helm-descbinds",
+ "commit": "447610a05422cd2f35399e43d98bf46410ff0408",
+ "sha256": "1890ss4pimjxskzzllf57fg07xbs8zqcrp6r8r6x989llrfvd1h7",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-descbinds",
+ "unstable": {
+ "version": [
+ 20190501,
+ 935
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "b72515982396b6e336ad7beb6767e95a80fca192",
+ "sha256": "1bp2n32lvb1fhnwzk8s782i928m8mklv77jz5rq0ag1q7y740r31"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 13
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "6d5ddc11e6cef86548bd6b3e0d840112d602659c",
+ "sha256": "03b79wdcp4im0fwadzhyc8jxl2wqvg8gmpflnznrwz3l71bi4sqq"
+ }
+ },
+ {
+ "ename": "helm-describe-modes",
+ "commit": "23f0b2025073850c477ba4646c3821b3c7de6c42",
+ "sha256": "0ajy9kwspm8rzafl0df57fad5867s86yjqj29shznqb12r91lpqb",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-describe-modes",
+ "unstable": {
+ "version": [
+ 20160212,
+ 518
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "11fb36af119b784539d31c6160002de1957408aa",
+ "sha256": "1d5b85m33hsdb4wswh9wpid0ghsr2zrj3f6ky587lc32s4bs0w0z"
+ }
+ },
+ {
+ "ename": "helm-dictionary",
+ "commit": "b8cc457b06ce271f7c19729cde7728286bb85528",
+ "sha256": "1pak8qn0qvbzyclhzvr5ka3pl370i4kiykypfkwbfgvqqwczhl3n",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-dictionary",
+ "unstable": {
+ "version": [
+ 20200406,
+ 1632
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "1dfec049c7851754a5967329a60e9e9a9f805423",
+ "sha256": "042rn38myq8b2024mdpisakmqysp34mmhvbdnw433vl9qxw6pikd"
+ }
+ },
+ {
+ "ename": "helm-directory",
+ "commit": "d0c066d6f285ab6d572dab4549781101547cb704",
+ "sha256": "01c5a08v6rd867kdyrfwdvj05z4srzj9g6xy4scirlbwbff0q76n",
+ "fetcher": "github",
+ "repo": "masasam/emacs-helm-directory",
+ "unstable": {
+ "version": [
+ 20170706,
+ 402
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "51bd7cd6e40a84a7efda894283ec76a0107830ad",
+ "sha256": "18lv8s7lw6zw97v4q5810f9cn43ybiygl139i2hf5p37p48d8fyy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 4
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "2c6d45404506ba744888dcdb65e9f63878f2da16",
+ "sha256": "1a5j4zzn249jdm4kcri64x1dxazhhk7g5dmgnhflrnbrc2kdwm8h"
+ }
+ },
+ {
+ "ename": "helm-dired-history",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0qciafa42rbw0dxgkp5mbbwbrcziswmwdj2lszm0px1bip4x7yb8",
+ "fetcher": "github",
+ "repo": "jixiuf/helm-dired-history",
+ "unstable": {
+ "version": [
+ 20170524,
+ 1046
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "281523f9fc46cf00fafd670ba5cd16552a607212",
+ "sha256": "1bqavj5ljr350dckyf39i9plkb0rbhyd17ka94n2g6daapgpq0x6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "281523f9fc46cf00fafd670ba5cd16552a607212",
+ "sha256": "1bqavj5ljr350dckyf39i9plkb0rbhyd17ka94n2g6daapgpq0x6"
+ }
+ },
+ {
+ "ename": "helm-dired-recent-dirs",
+ "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+ "sha256": "08dyzsfpzzp279jvzbj7m187gn8rmxzfclrn71n4xsss5g1k7gb1",
+ "fetcher": "github",
+ "repo": "zonkyy/helm-dired-recent-dirs",
+ "unstable": {
+ "version": [
+ 20131228,
+ 1414
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "3bcd125b44f5a707588ae3868777d91192351523",
+ "sha256": "14sifdrfg8ydvi9mj8qm2bfphbffglxrkb5ky4q5b3j96bn8v110"
+ }
+ },
+ {
+ "ename": "helm-dirset",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1bwgv1pm047xafidq23mdqj3sdc5bvqlw74s80dj88ybp3vrpvlk",
+ "fetcher": "github",
+ "repo": "k1LoW/helm-dirset",
+ "unstable": {
+ "version": [
+ 20151209,
+ 12
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "helm",
+ "s"
+ ],
+ "commit": "eb30810cd26e1ee73d84a863e6b2667700e9aead",
+ "sha256": "183vj5yi575aqkak19hl8k4mw38r0ki9p1fnpa8nny2srjyy34yb"
+ }
+ },
+ {
+ "ename": "helm-elscreen",
+ "commit": "dfe42a7fe2dc051c6c49aa75bce89bfe1b5fdbbb",
+ "sha256": "186k66kf2ak2ihha39989cz1aarqrvbgp213y1fwh9qsn1kxclnd",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-elscreen",
+ "unstable": {
+ "version": [
+ 20170709,
+ 914
+ ],
+ "deps": [
+ "cl-lib",
+ "elscreen",
+ "helm"
+ ],
+ "commit": "b8212866939dc4a1e1dc23ad572407b688e130e3",
+ "sha256": "0gy6lbdngiwfl9vfw32clagbmv70f93slc9zkm3dz3mca37435kz"
+ }
+ },
+ {
+ "ename": "helm-emmet",
+ "commit": "acbc5e9fab159ad2d63b10c0fa6ac18636bb2379",
+ "sha256": "1dkn9qa3dv2im11lm19wfh5jwwwp42sv7jc0p6qg35rhzwdpfg03",
+ "fetcher": "github",
+ "repo": "yasuyk/helm-emmet",
+ "unstable": {
+ "version": [
+ 20160713,
+ 1231
+ ],
+ "deps": [
+ "emmet-mode",
+ "helm"
+ ],
+ "commit": "f0364e736b10cf44232053a78de04133a88185ae",
+ "sha256": "1zl6vhzbf29864q97q5v7c318x36y1a4cjm0i7kgj3hc6qla5j88"
+ }
+ },
+ {
+ "ename": "helm-emms",
+ "commit": "db836b671705607f6cd9bce8229884b1f29b4a76",
+ "sha256": "1vq7cxnacmhyczsa4s5h1nnzc08m66harfnxsqxyrdsnggv9hbf5",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-emms",
+ "unstable": {
+ "version": [
+ 20200322,
+ 1309
+ ],
+ "deps": [
+ "cl-lib",
+ "emms",
+ "helm"
+ ],
+ "commit": "37e5aa029abfa5a5c48636314de8157142944fa2",
+ "sha256": "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "emms",
+ "helm"
+ ],
+ "commit": "d7da090af0f63b92c5d735197992c732adbeef3d",
+ "sha256": "0fs0i33di3liyx1f55xpg5nmac1b750n37g3pkxw2mil7fx7dz32"
+ }
+ },
+ {
+ "ename": "helm-esa",
+ "commit": "5813ef34f178c7549749b7440764b8aa8b142ade",
+ "sha256": "0bqj4lbh0q4g21xb35q2yqy0kzmm8rp1nmlcg2v9hagpx7996z0g",
+ "fetcher": "github",
+ "repo": "masutaka/emacs-helm-esa",
+ "unstable": {
+ "version": [
+ 20190721,
+ 1429
+ ],
+ "deps": [
+ "helm",
+ "request"
+ ],
+ "commit": "d93b4af404346870cb2cf9c257d055332ef3f577",
+ "sha256": "1lqih8qadk1miwi8fv7syfd7i2rzbg669b96my177g0i57sah4mw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "helm",
+ "request"
+ ],
+ "commit": "d93b4af404346870cb2cf9c257d055332ef3f577",
+ "sha256": "1lqih8qadk1miwi8fv7syfd7i2rzbg669b96my177g0i57sah4mw"
+ }
+ },
+ {
+ "ename": "helm-etags-plus",
+ "commit": "e5d0c347ff8cf6e0ade80853775fd6b84f387fa5",
+ "sha256": "0lw21yp1q6iggzlb1dks3p6qdfppnqf50f3rijjs18lisp4izp99",
+ "fetcher": "github",
+ "repo": "jixiuf/helm-etags-plus",
+ "unstable": {
+ "version": [
+ 20170113,
+ 1414
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "704f0991ee4a2298b01c33aafc224eef322e15e3",
+ "sha256": "03n7c9jlpqkz5z1gygx2s3yf46caav2l11d9xnmqhyhbvyimjqf9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "99512856918e485862ceb21460476adb0349f525",
+ "sha256": "08ddxp1hm0ckx6gq9yl6dhh0jrfb6f747snchykl3z5p0ayknvlm"
+ }
+ },
+ {
+ "ename": "helm-evil-markers",
+ "commit": "71e3618dc6a9f614397d251398c6304345949d9b",
+ "sha256": "12r5adwl9qanfvf3558niqdql67csg2lvyb6b6z3khdr34ac0sr6",
+ "fetcher": "github",
+ "repo": "xueeinstein/helm-evil-markers",
+ "unstable": {
+ "version": [
+ 20200506,
+ 715
+ ],
+ "deps": [
+ "evil",
+ "helm"
+ ],
+ "commit": "0245f0c268e0eaec85df51ab2deba7ac961f6770",
+ "sha256": "0b1db6x2hz9rixchn9qfp2ak27a2vbz2l4g0fd7mys5c0llbwj1r"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "evil",
+ "helm"
+ ],
+ "commit": "29f9288a73370f26fe431db1472ed948bd63190d",
+ "sha256": "13jd7kdb6qi4dkl2fr7132ijargjb2fcqhkfb72gr101a44xxg5p"
+ }
+ },
+ {
+ "ename": "helm-eww",
+ "commit": "455a32c1d4642dc6752408c4f5055f5f4d1288eb",
+ "sha256": "0pl8s7jmk1kak13bal43kp2awjji9lgr3npq9m09zms121rh709w",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-eww",
+ "unstable": {
+ "version": [
+ 20190315,
+ 907
+ ],
+ "deps": [
+ "helm",
+ "seq"
+ ],
+ "commit": "76ba59fda8dd6f32a1bc7c6df0b43c6f76169911",
+ "sha256": "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "helm",
+ "seq"
+ ],
+ "commit": "76ba59fda8dd6f32a1bc7c6df0b43c6f76169911",
+ "sha256": "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"
+ }
+ },
+ {
+ "ename": "helm-ext",
+ "commit": "1ee74cb0aa3445bc9ae4226c2043ee4de3ac6cd3",
+ "sha256": "0la2i0b7nialib4wq26cxcak8nq1jzavsw8f0mvbavsb7hfwkpgw",
+ "fetcher": "github",
+ "repo": "cute-jumper/helm-ext",
+ "unstable": {
+ "version": [
+ 20200722,
+ 107
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "c30f7772ec577a5ce1de3215f0507826e0725a69",
+ "sha256": "1sb3z1c1p9wal5g6fz8b948pvaarg4yhcmjqmpd2y7b85hzapgp1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "c8ac56918b200239b3f73a4e6a031deecc2c5646",
+ "sha256": "08c6n4zr6s3h7y0kk6g51xqs6hs29hkfmn55jfjw6hpimbk3vi1j"
+ }
+ },
+ {
+ "ename": "helm-exwm",
+ "commit": "8ecdf9e00cf19fabbeade12a66d66cd010561366",
+ "sha256": "0g15c4bg794vqigafl9g2w85jbs1lbw9qplaf8ffx0az4qwhnvqz",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-exwm",
+ "unstable": {
+ "version": [
+ 20200325,
+ 1022
+ ],
+ "deps": [
+ "exwm",
+ "helm"
+ ],
+ "commit": "00ddb4d2a127087a0b99f0a440562bd54408572d",
+ "sha256": "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "exwm",
+ "helm"
+ ],
+ "commit": "00ddb4d2a127087a0b99f0a440562bd54408572d",
+ "sha256": "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"
+ }
+ },
+ {
+ "ename": "helm-fd",
+ "commit": "ea8d504faa73bc0a649b13738ed7c6a76e2fad88",
+ "sha256": "1hlq0xxi616flykay9jr96rqgvs53dmlk50h25982jpl6xb63g9y",
+ "fetcher": "github",
+ "repo": "lerouxrgd/helm-fd",
+ "unstable": {
+ "version": [
+ 20190923,
+ 48
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "84a2aa656473f2921e35abad62b158b3813ee944",
+ "sha256": "14bdcr4db500sqv5p47jdkjp06hys35bpb07fp40v39r9pbzfdla"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "2891ca941b5a70facf35d5a8bbc791fc41ab0284",
+ "sha256": "16szlby36g393mwnywl59iyngrinnsd9xilsgadr6l9hngas4anm"
+ }
+ },
+ {
+ "ename": "helm-file-preview",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "0rvwf54xz3wb640z0r8gsdv9frf650r7llviicvy5gmfddrlpjh4",
+ "fetcher": "github",
+ "repo": "jcs-elpa/helm-file-preview",
+ "unstable": {
+ "version": [
+ 20190903,
+ 331
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "d7e0c1814299fc0e345e159f02733cee5277716e",
+ "sha256": "07767jm0wqnn4qavnvnsf6wzfsvsk5bfba2sm16l5036sj4dyjxn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "52dbc68cf7484d66c40593733770c0c61b383ef0",
+ "sha256": "1xrq5481mri9nfdwkn14zjq1zgl31w6aywca6sr1by5cqggqrqr1"
+ }
+ },
+ {
+ "ename": "helm-filesets",
+ "commit": "71c0d98ede6119e838e3db146dea5c16d8ba8ed8",
+ "sha256": "1yhhchksi0r4r5c5q1mggz2hykkvk93baq91b5hkaflqi30d1v8f",
+ "fetcher": "github",
+ "repo": "gcla/helm-filesets",
+ "unstable": {
+ "version": [
+ 20140929,
+ 1835
+ ],
+ "deps": [
+ "filesets+",
+ "helm"
+ ],
+ "commit": "b352910af4c3099267a8aa0169c7f743b35bb1fa",
+ "sha256": "00yhmpv5xjlw1gwbcrznz83gkaby8zlqv74d3p7plca2cwjll1g9"
+ }
+ },
+ {
+ "ename": "helm-firefox",
+ "commit": "257e452d37768d2f3a6e0a5ccd062d128b2bc867",
+ "sha256": "0677nj0zsk11vvp3q3xl9nk8dhz3ki9yl3kfb57wgnmprp109wgs",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-firefox",
+ "unstable": {
+ "version": [
+ 20200612,
+ 800
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "8ecf5bcb815d1650bf184deffeef10b1277e0e1e",
+ "sha256": "00is30ijsh2aqvrkk5cxl46mbcj3q2fzc02hb55mj3gq4h6lb1bq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "0ad34b7b5abc485a86cae6920c14de861cbeb085",
+ "sha256": "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"
+ }
+ },
+ {
+ "ename": "helm-fish-completion",
+ "commit": "0e73cbca73b5be3fa107c045083c765b5dc5d9e8",
+ "sha256": "1farkigcif15yb8nz6kb99hc9qf7kpf39z2vmsjp62c936rrsxls",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-fish-completion",
+ "unstable": {
+ "version": [
+ 20200622,
+ 1255
+ ],
+ "deps": [
+ "fish-completion",
+ "helm"
+ ],
+ "commit": "f055dab2f14462ff130841d4ab421f34baab39d5",
+ "sha256": "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "fish-completion",
+ "helm"
+ ],
+ "commit": "f055dab2f14462ff130841d4ab421f34baab39d5",
+ "sha256": "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"
+ }
+ },
+ {
+ "ename": "helm-flx",
+ "commit": "f1418d260f34d698cec611978001c7fd1d1a8a89",
+ "sha256": "03vxr5f5m4s6k6rm0976w8h3s4c3b5mrdqgmkd281hmyh9q3cslq",
+ "fetcher": "github",
+ "repo": "PythonNut/helm-flx",
+ "unstable": {
+ "version": [
+ 20180103,
+ 516
+ ],
+ "deps": [
+ "flx",
+ "helm"
+ ],
+ "commit": "6640fac5cb16bee73c95b8ed1248a4e5e113690e",
+ "sha256": "1fh1dy6xpc476hs87mn9fwxhxi97h7clfnnm7dxb7hg43xmgsjjs"
+ }
+ },
+ {
+ "ename": "helm-flycheck",
+ "commit": "9cce1662d4ca7b7d868685084294d22ebf6c39e9",
+ "sha256": "038f9294qc0jnkzrrjxm97hyhwa4sca3wdsjbaya50cf0g4cmk7b",
+ "fetcher": "github",
+ "repo": "yasuyk/helm-flycheck",
+ "unstable": {
+ "version": [
+ 20160710,
+ 829
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "helm-core"
+ ],
+ "commit": "3cf7d3bb194acacc6395f88360588013d92675d6",
+ "sha256": "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "helm-core"
+ ],
+ "commit": "a15e62a6432c165c4f2c17388686873383400d7d",
+ "sha256": "0q9yksx66ry4x3vkcyyj437il225s2ad5h6vkxpyz04p62g3ysnx"
+ }
+ },
+ {
+ "ename": "helm-flymake",
+ "commit": "d8547036dceaa466957f4c5a07eb0461f313b924",
+ "sha256": "0h87yd56nhxpahrcpk6hin142hzv3sdr5bvz0injbv8a2lwnny3b",
+ "fetcher": "github",
+ "repo": "tam17aki/helm-flymake",
+ "unstable": {
+ "version": [
+ 20160610,
+ 2
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "72cf18a1a1f843db9bb5d58301739ea9ccb1655b",
+ "sha256": "05wpclg4ibp0ida692m3s8nknx4aizfcdgxgfzlwczgdgw0922kn"
+ }
+ },
+ {
+ "ename": "helm-flyspell",
+ "commit": "f8c5b91762d47a4d3024f1ed7f19666c6f2d5ce5",
+ "sha256": "1g6xry2y6396pg7rg8hc0l84z5r3j2df7dpd1jgffxa8xa3i661f",
+ "fetcher": "github",
+ "repo": "pronobis/helm-flyspell",
+ "unstable": {
+ "version": [
+ 20170210,
+ 1901
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "8d4d947c687cb650cb149aa2271ad5201ea92594",
+ "sha256": "0q0xcgg8w9rrlsrrnk0l7qd8q7jc6x1agm2i769j21wpyfv1nbns"
+ }
+ },
+ {
+ "ename": "helm-frame",
+ "commit": "8bbb56b883658fdf91b984c01d2472bdf6787003",
+ "sha256": "1hmml0209z3ap35bqk9b1fh0lcfksysqszgj1ifh1mdjz81xx9sq",
+ "fetcher": "github",
+ "repo": "chee/helm-frame",
+ "unstable": {
+ "version": [
+ 20180604,
+ 1005
+ ],
+ "commit": "485e2a534b0de5e8dbeb144a9a60ceca00215a4a",
+ "sha256": "1hxqyyh8jzk83ppi1p5r9b9gy7k2hanh3xzp129iw9yqpmvwmsnq"
+ }
+ },
+ {
+ "ename": "helm-fuz",
+ "commit": "2d3139563902bb1cb8aa48a517747f12a1ca1746",
+ "sha256": "1c6mm698kzk0armpla4i5xn5fh8pwhim6gj4cblk0wwf2av2r58b",
+ "fetcher": "github",
+ "repo": "rustify-emacs/fuz.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1222
+ ],
+ "deps": [
+ "fuz",
+ "helm"
+ ],
+ "commit": "fee874aa35d2ee6b12b836290b5c8eaa44175a28",
+ "sha256": "1xswm8my29i4fddy64k21b1vclbr5fjb0pisb4hs8ynkk5w1kw2a"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "deps": [
+ "fuz",
+ "helm"
+ ],
+ "commit": "90ca9207a9c1decda24a552b94ff41169ecccb14",
+ "sha256": "0v1advw2yr8b4jwd713fijd1kx4yc5xzz5ck2qfdxy5ixi1b39nm"
+ }
+ },
+ {
+ "ename": "helm-fuzzier",
+ "commit": "51dc6f01e0e5ee0593bea6616894bc0163878cd0",
+ "sha256": "0qdgf0phs3iz29zj3qjhdgb3i4xvf5r2vi0709pwxx2s6r13pvcc",
+ "fetcher": "github",
+ "repo": "EphramPerdition/helm-fuzzier",
+ "unstable": {
+ "version": [
+ 20160605,
+ 2145
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "8798dcf3583b863df5b9dea7fe3b0179ba1c35bc",
+ "sha256": "1250mh0ydap0sifcyrgs32dnr6c8d723v4c55yvwm23dzvzwycp8"
+ }
+ },
+ {
+ "ename": "helm-fuzzy",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "088mrqqv9d2vrja67xrd37zzxl4k02rl5smscrp7ad6d60y1k1zy",
+ "fetcher": "github",
+ "repo": "jcs-elpa/helm-fuzzy",
+ "unstable": {
+ "version": [
+ 20190905,
+ 526
+ ],
+ "deps": [
+ "flx",
+ "helm"
+ ],
+ "commit": "152d54bcd7137e4f5df54cf213e578c9d71864bd",
+ "sha256": "1msnagb1mxxi9c64j54j9r95l98jha2n6qdgs236b953lz8d9wwf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "flx",
+ "helm"
+ ],
+ "commit": "fc080a0b4be8a68944a64bc4fb5b38cd11a70bc7",
+ "sha256": "01632zrpl69b034srgsfidf62r1kwc8f4z8i48kz95g5n2ax1xk9"
+ }
+ },
+ {
+ "ename": "helm-fuzzy-find",
+ "commit": "34f76bb377ed31aa42663858c407cc5476e6fe1f",
+ "sha256": "0lczlrpd5jy2vhy9jl3rjcdyiwr136spqm8k2rj8m9s8wpn0v75i",
+ "fetcher": "github",
+ "repo": "xuchunyang/helm-fuzzy-find",
+ "unstable": {
+ "version": [
+ 20171106,
+ 400
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "de2abbf7ca13609587325bacd4a1ed4376b5c927",
+ "sha256": "1dacvnkqqiax02c627z9qi61iyqgr0j3qqmjp29h0v494czvrdbs"
+ }
+ },
+ {
+ "ename": "helm-ghc",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0bv0sfpya1jyay9p80lv0w6h9kdp96r8lnp6nj15w660p1b51c0d",
+ "fetcher": "github",
+ "repo": "david-christiansen/helm-ghc",
+ "unstable": {
+ "version": [
+ 20141105,
+ 1459
+ ],
+ "deps": [
+ "cl-lib",
+ "ghc",
+ "helm"
+ ],
+ "commit": "e5ee7b8d3b745d162553aecfbd41381c4de85f35",
+ "sha256": "16p1gisbza48qircsvrwx020n96ss1c6s68d7cgqqfc0bf2467is"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "ghc",
+ "helm"
+ ],
+ "commit": "d3603ee18299b789be255297dc42af16dd431869",
+ "sha256": "00ls9v3jdpz3wka90crd193z3ipwnf1b0slmldn4vb9ivrndh6wn"
+ }
+ },
+ {
+ "ename": "helm-ghq",
+ "commit": "e94eec646def7c77b15f6a6ac1841200848e62c7",
+ "sha256": "14f3cbsj7jhlhrp561d8pasllnx1cmi7jk6v2fja7ghzj76dnvq6",
+ "fetcher": "github",
+ "repo": "masutaka/emacs-helm-ghq",
+ "unstable": {
+ "version": [
+ 20190526,
+ 1409
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "d0d6aa0f407388e7012f0443df8ae657ece01779",
+ "sha256": "08884pk0d6xplsn1z9slaf4b9mmam6s9dg4dcxi1na1inpi6y082"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "d0d6aa0f407388e7012f0443df8ae657ece01779",
+ "sha256": "08884pk0d6xplsn1z9slaf4b9mmam6s9dg4dcxi1na1inpi6y082"
+ }
+ },
+ {
+ "ename": "helm-ghs",
+ "commit": "0f8d37030806905344a2ca56bfc469f5a238cd69",
+ "sha256": "0bzy2vr2h9c886cm4gd161n7laym952bzy5fhcibafhzm4abl4sh",
+ "fetcher": "github",
+ "repo": "iory/emacs-helm-ghs",
+ "unstable": {
+ "version": [
+ 20170715,
+ 541
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "17a70bf16255d90d67c8350e88200ec8bfd47563",
+ "sha256": "1jc51anmkr44db4kbcwza17x3ln78ihpslrf2v9xs0sq0ggw1rva"
+ }
+ },
+ {
+ "ename": "helm-git",
+ "commit": "707696fbec477027e675ff01c502e0b81096025c",
+ "sha256": "1ib73p7cmkw96csxxpkqwn6m60k1xrd46z6vyp29gj85cs4fpsb8",
+ "fetcher": "github",
+ "repo": "maio/helm-git",
+ "unstable": {
+ "version": [
+ 20120630,
+ 2103
+ ],
+ "commit": "cb96a52b5aecadd3c27aba7749d14e43ab128d55",
+ "sha256": "1yfy4a52hx44r32i0b75bka8gfcn5lp61jl86lzrsi2cr9wg10pn"
+ }
+ },
+ {
+ "ename": "helm-git-files",
+ "commit": "23bfa0b94f242f9da06366b4aefdf6ece72561e7",
+ "sha256": "02109r956nc1dmqh4v082vkr9wdixh03xhl7icwkzl7ipr5453s6",
+ "fetcher": "github",
+ "repo": "kenbeese/helm-git-files",
+ "unstable": {
+ "version": [
+ 20141212,
+ 1317
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "43193960774069369ac6964bbf7c026900206fa8",
+ "sha256": "157b525h0kiaknn12fsw67fg26lzb20apx8sssmvlcicqcd51iaw"
+ }
+ },
+ {
+ "ename": "helm-git-grep",
+ "commit": "338d28c3fe201a7b2f15793be6d540f44819f4d8",
+ "sha256": "1ww6a4q78w5hnwikq7y93ic2b7x070c27r946lh6p8cz1k4b8vqi",
+ "fetcher": "github",
+ "repo": "yasuyk/helm-git-grep",
+ "unstable": {
+ "version": [
+ 20170614,
+ 1411
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "744cea07dba6e6a5effbdba83f1b786c78fd86d3",
+ "sha256": "172m7wbgx9qnv9n1slbzpd9j24p6blddik49z6bq3zdg1vlnf3dv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10,
+ 1
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "744cea07dba6e6a5effbdba83f1b786c78fd86d3",
+ "sha256": "172m7wbgx9qnv9n1slbzpd9j24p6blddik49z6bq3zdg1vlnf3dv"
+ }
+ },
+ {
+ "ename": "helm-github-stars",
+ "commit": "2e77f4a75504ca3e1091cdc757e91fb1ae361fa7",
+ "sha256": "1r4mc4v71171sq9rbbhm346s92fb7jnvvl91y2q52jqmrnzzl9zy",
+ "fetcher": "github",
+ "repo": "Sliim/helm-github-stars",
+ "unstable": {
+ "version": [
+ 20190428,
+ 1047
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "c891690218b0d8b957ea6cb45b1b6cffd15a6950",
+ "sha256": "0050i3apv72klqi3s0zw5sv4r4sizx4vlw07l52i39ij7bzjhkzz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 7
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "c891690218b0d8b957ea6cb45b1b6cffd15a6950",
+ "sha256": "0050i3apv72klqi3s0zw5sv4r4sizx4vlw07l52i39ij7bzjhkzz"
+ }
+ },
+ {
+ "ename": "helm-gitignore",
+ "commit": "3146b9309e8cbe464330dcd1f5b8a9fd8788ad6f",
+ "sha256": "01l7mx8g1m5qnwz973hzrgds4gywm56jgl4hcdxqvpi1n56md3x6",
+ "fetcher": "github",
+ "repo": "jupl/helm-gitignore",
+ "unstable": {
+ "version": [
+ 20170211,
+ 8
+ ],
+ "deps": [
+ "cl-lib",
+ "gitignore-mode",
+ "helm",
+ "request"
+ ],
+ "commit": "2a2e7da7855a6db0ab3bb6a6a087863d7abd4391",
+ "sha256": "07770qhy56cf5l69mk6aq882sryjbfjd05kdk78v65mgmlwv806a"
+ }
+ },
+ {
+ "ename": "helm-gitlab",
+ "commit": "1d012991188956f6e06c37d504b0d06ab31487b9",
+ "sha256": "010ihx3yddhb8j3jqcssc49qnf3i7xlz0s380mpgrdxgz6yahsmd",
+ "fetcher": "github",
+ "repo": "nlamirault/emacs-gitlab",
+ "unstable": {
+ "version": [
+ 20180312,
+ 1647
+ ],
+ "deps": [
+ "dash",
+ "gitlab",
+ "helm",
+ "s"
+ ],
+ "commit": "8c2324c02119500f094c2f92dfaba4c9977ce1ba",
+ "sha256": "056c4fb5sj2y4h94klx2g24n1g3qdi7ifzs8ksw5v6hcj9lrkb1n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "gitlab",
+ "helm",
+ "s"
+ ],
+ "commit": "a1c1441ff5ffb290e695eb9ac05431e9385578f4",
+ "sha256": "0ywjrgafpl4cnrykx9yysazr7hkd2pxk67h065f8z3mid6cgh1wa"
+ }
+ },
+ {
+ "ename": "helm-go-package",
+ "commit": "449d272b94c189176305ca17652d76adac087ce5",
+ "sha256": "102yhn1xg83l67yaq3brn35a03fkvqqhad10rq0h39n4i1slq3z6",
+ "fetcher": "github",
+ "repo": "yasuyk/helm-go-package",
+ "unstable": {
+ "version": [
+ 20161103,
+ 153
+ ],
+ "deps": [
+ "deferred",
+ "go-mode",
+ "helm-core"
+ ],
+ "commit": "e42c563936c205ceedb930a687c11b4bb56447bc",
+ "sha256": "1169q25paz7x3hia5px4vmn06zzss179q9179x95vx8vfr43ny08"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "deferred",
+ "go-mode",
+ "helm-core"
+ ],
+ "commit": "7db5ea9ce97502152a6bb1fe38f8fabb5a49abd2",
+ "sha256": "08llqkswilzsigh28w9qjbqi5g5z0ylfabz5sqia7c18gjshvz0h"
+ }
+ },
+ {
+ "ename": "helm-google",
+ "commit": "f0a8eb0eefe88b4ea683a4743c0f8393506e014b",
+ "sha256": "0hv7wfrahjn8j4914dp2p4fl2cj85pmxnyxf5cnmv6p97yis0ham",
+ "fetcher": "git",
+ "url": "https://framagit.org/steckerhalter/helm-google.git",
+ "unstable": {
+ "version": [
+ 20180606,
+ 520
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "48e91a73d5f48c39d7a219022a24440cff548e1a",
+ "sha256": "05xj6bkr330glh56n8c63297zqh1cmlhxlyxpr04srjraifyzba1"
+ }
+ },
+ {
+ "ename": "helm-grepint",
+ "commit": "26446d6a2215bfa622d86837b30f2754dd25eb4c",
+ "sha256": "00wr3wk41sbpamxbjkqlby49g8y5z9n79p51sg7ginban4qy91gf",
+ "fetcher": "github",
+ "repo": "kopoli/helm-grepint",
+ "unstable": {
+ "version": [
+ 20200811,
+ 1616
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "9aec98428823b749eb14d2c8512b46b59ca9f8ca",
+ "sha256": "1fmpk9ynish20daajnx4c2s8bnlngb8sv3nwspxkk8fvv0c3p39i"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 1
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "9aec98428823b749eb14d2c8512b46b59ca9f8ca",
+ "sha256": "1fmpk9ynish20daajnx4c2s8bnlngb8sv3nwspxkk8fvv0c3p39i"
+ }
+ },
+ {
+ "ename": "helm-growthforecast",
+ "commit": "7d92e66cad586d4dc6b1de12d1b41b818b5232c2",
+ "sha256": "1qlyp263rl0892hr53kgc16jlx3jylw2pplbzlx05a60k5348jjv",
+ "fetcher": "github",
+ "repo": "daichirata/helm-growthforecast",
+ "unstable": {
+ "version": [
+ 20140120,
+ 344
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "0f94ac090d6c354058ad89a86e5c18385c136d9b",
+ "sha256": "0p0mk44y2z875ra8mzcb6vlf4rbkiq9yank5hdxvg2x2sxsaambk"
+ }
+ },
+ {
+ "ename": "helm-gtags",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0qcn6hmm26irlljcq93c6ap0k1kihdakr2jpgzvdbm8km2cxrm47",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-gtags",
+ "unstable": {
+ "version": [
+ 20200602,
+ 1610
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "a15fe1dd272d252ad933d8129db1dce02fd41adb",
+ "sha256": "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 7
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "a15fe1dd272d252ad933d8129db1dce02fd41adb",
+ "sha256": "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"
+ }
+ },
+ {
+ "ename": "helm-hatena-bookmark",
+ "commit": "3e9335ad16d4151dd4970c4a3ad1fee9a84404fa",
+ "sha256": "14091zrp4vj7752rb5s3pkyvrrsdl7iaj3q9ys8rjmbsjwcv30id",
+ "fetcher": "github",
+ "repo": "masutaka/emacs-helm-hatena-bookmark",
+ "unstable": {
+ "version": [
+ 20190609,
+ 1455
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "10b8bfbd7fc4c3f503b2bc01f0c062dac128059e",
+ "sha256": "17f7y7bw15y3x30j7b3ymp3gpnszfvnf8hmlgc1mkwafxvzv06i1"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4,
+ 3
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "10b8bfbd7fc4c3f503b2bc01f0c062dac128059e",
+ "sha256": "17f7y7bw15y3x30j7b3ymp3gpnszfvnf8hmlgc1mkwafxvzv06i1"
+ }
+ },
+ {
+ "ename": "helm-hayoo",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "06nbilb6vfa8959ss5d06zbcwqxlbyi3cb5jnbdag0jnpxvv1hqb",
+ "fetcher": "github",
+ "repo": "markus1189/helm-hayoo",
+ "unstable": {
+ "version": [
+ 20151014,
+ 651
+ ],
+ "deps": [
+ "haskell-mode",
+ "helm",
+ "json"
+ ],
+ "commit": "dd4c0c8c87521026edf1b808c4de01fa19b7c693",
+ "sha256": "08pfzs030d8g5s7vkpgicz4srp5cr3xpd84lhrr24ncrhbszxar9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "haskell-mode",
+ "helm",
+ "json"
+ ],
+ "commit": "f49a77e8b8704bb7eb0d1097eefb8010a6617664",
+ "sha256": "1imfzz6cfdq7fgrcgrafy2nln929mgh31vybk9frm7a9jpamqdxp"
+ }
+ },
+ {
+ "ename": "helm-helm-commands",
+ "commit": "f8bd33d5d5c8653df5373984d01c3ec87b30c51b",
+ "sha256": "0dq9p37i5rrp2nb1vhqzzqfmdg11va2xr3yz8hdxpwykm1ldqdcf",
+ "fetcher": "github",
+ "repo": "vapniks/helm-helm-commands",
+ "unstable": {
+ "version": [
+ 20130902,
+ 1748
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "3a05aa19c976501343ad9ae630a36810921a85f6",
+ "sha256": "05ksfx54ar2j4mypzwh0gfir8r26s4f1i4xw319q5pa1y2100cpn"
+ }
+ },
+ {
+ "ename": "helm-hoogle",
+ "commit": "8ccc21c2acc76a6794aee94902b1bc4c14119901",
+ "sha256": "0vhk4vwqfirdm5d0pppplfpqyc2sfj6jybhzp9n1w8xgrh2d1c0x",
+ "fetcher": "github",
+ "repo": "jwiegley/helm-hoogle",
+ "unstable": {
+ "version": [
+ 20161027,
+ 534
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "73969a9d46d2121a849a01a9f7ed3636d01f7bbc",
+ "sha256": "043bddm6lldl6wkifr1plqip7laai771z1a1l0x2h35l3g8c64h0"
+ }
+ },
+ {
+ "ename": "helm-hunks",
+ "commit": "d61cbe53ad42f2405a66de9f551f5b870a60709f",
+ "sha256": "1fhb9sf7fpz3f3ylc906w5xa4zzfr0gix6m7zc4c8qmz33zbhbp5",
+ "fetcher": "github",
+ "repo": "torgeir/helm-hunks.el",
+ "unstable": {
+ "version": [
+ 20171217,
+ 1933
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "6392bf716f618eac23ce81140aceb0dfacb9c6d0",
+ "sha256": "1ih2pgyhshv8nl7hhchd4h0pbjgj45irp5dy1fq2gy05v4rn7wi4"
+ }
+ },
+ {
+ "ename": "helm-icons",
+ "commit": "388e1c96b251fd68adc08288c9109dad19840bc7",
+ "sha256": "074s4pv0lgvcmvfqv34bsi45cy4rlskc6skmfffkflyf1kddpz1g",
+ "fetcher": "github",
+ "repo": "yyoncho/helm-icons",
+ "unstable": {
+ "version": [
+ 20200719,
+ 1359
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "treemacs"
+ ],
+ "commit": "d8c15dc61c1f321686b447e83abb17e14bc6f1c6",
+ "sha256": "0na4nks6l7917r64rc49b38lwsdj7wvslnnikms92882z5c8c6nn"
+ }
+ },
+ {
+ "ename": "helm-idris",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "04f1963ksbjdza1syajb5vkwwsc9gzk0az6c1m1zgvsianrq4rd9",
+ "fetcher": "github",
+ "repo": "david-christiansen/helm-idris",
+ "unstable": {
+ "version": [
+ 20141202,
+ 1757
+ ],
+ "deps": [
+ "helm",
+ "idris-mode"
+ ],
+ "commit": "a2f45d6817974f318b55ad9b7fd19d5df132d47e",
+ "sha256": "0128nrhwyzslzl0l7wcjxn3dlx3h1sjmwnbbnp2fj4bjk7chc59q"
+ }
+ },
+ {
+ "ename": "helm-img",
+ "commit": "e0ea97a55f8f4183d375424c94705f372189d6ed",
+ "sha256": "0sq9l1wgm97ppfc45w3bdcv0qq5m85ygnanv1bdcp8bxbdl4vg0q",
+ "fetcher": "github",
+ "repo": "l3msh0/helm-img",
+ "unstable": {
+ "version": [
+ 20151224,
+ 2321
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "aa3f8a5dce8d0413bf07584f07153a39015c2bfc",
+ "sha256": "0py4xs27z2jvg99i6qaf2ccz0mvk6bb9cvdyz8v8ngmnj3rw2vla"
+ }
+ },
+ {
+ "ename": "helm-img-tiqav",
+ "commit": "f6a948f91dc58ce565e54967ab75fe572f37f616",
+ "sha256": "1m083hiih2rpyy8i439745mj4ldqy85fpnvms8qnv3042b8x35y0",
+ "fetcher": "github",
+ "repo": "l3msh0/helm-img-tiqav",
+ "unstable": {
+ "version": [
+ 20151224,
+ 2322
+ ],
+ "deps": [
+ "helm-img"
+ ],
+ "commit": "33a7e9508bc8f37d53320b56c92b53d321a57bb0",
+ "sha256": "04vdin0n3514c8bycdjrwk3l6pkarrwanlklnm75315b91nkkbcp"
+ }
+ },
+ {
+ "ename": "helm-ispell",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "14slvcjyqd1ryymh63an7r2z1882dybwpq73bb50xkwrk7rs0389",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-ispell",
+ "unstable": {
+ "version": [
+ 20151231,
+ 853
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "cb735695ab3a0e66c123c2f3f3e8911fb1c2d5fc",
+ "sha256": "04ddjdia09y14gq4h6m8g6aiwkqvdxp66yjx3j5dh2xrkyxhlxpz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "640723ace794d21b8a5892012db99f963149415b",
+ "sha256": "0bz2ngw816jvpw1a10j31y5hf1knz0mzz60l073h33qci11jbwid"
+ }
+ },
+ {
+ "ename": "helm-itunes",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0zi4wyraqkjwp954pkng8b23giv1q9618apd9v3dczsvlmaar9hf",
+ "fetcher": "github",
+ "repo": "anschwa/helm-itunes",
+ "unstable": {
+ "version": [
+ 20151013,
+ 648
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "966de755a5aadbe02311a6cef77bd4790e84c263",
+ "sha256": "1czgf5br89x192g3lh3x2n998f79hi1n2f309ll264qnl35kv14w"
+ }
+ },
+ {
+ "ename": "helm-j-cheatsheet",
+ "commit": "681b43eb224942155b97181bbb78bcd295347d04",
+ "sha256": "0lppzk60vl3ps9fqnrh020awiy5w46gwlb6d91pr889x24ryphmm",
+ "fetcher": "github",
+ "repo": "abo-abo/helm-j-cheatsheet",
+ "unstable": {
+ "version": [
+ 20170217,
+ 829
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "6c47e7162b9ba2de4b41221d01180146973d860b",
+ "sha256": "0ayv6aqmwjy95gc9cpyx0s71486rvlmn04iwgfn43mr192c38y9p"
+ }
+ },
+ {
+ "ename": "helm-jira",
+ "commit": "b91a22c2117403e278a8116ea1180bed736ae1e3",
+ "sha256": "1fb2hk97zlr30gzln8b5x7xc3v119ki8kbiyh7shxnaqx7dy1ihs",
+ "fetcher": "github",
+ "repo": "DeX3/helm-jira",
+ "unstable": {
+ "version": [
+ 20180802,
+ 815
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "75d6ed5bd7a041fa8c1adb21cbbbe57b5a7c7cc7",
+ "sha256": "08cczc4jnkdgvzs0s3wq2dqmhnsvyhpl65dydmi7pmayl7zg6jir"
+ }
+ },
+ {
+ "ename": "helm-js-codemod",
+ "commit": "dd005bfb170df2f0c992043130a5e9588dcf4d77",
+ "sha256": "1m07xh97fjyah8di363yalg9f5g5rfr3k5mbjql3n67lfwgxrz94",
+ "fetcher": "github",
+ "repo": "torgeir/helm-js-codemod.el",
+ "unstable": {
+ "version": [
+ 20190921,
+ 942
+ ],
+ "deps": [
+ "helm-core",
+ "js-codemod"
+ ],
+ "commit": "29b1b3c441f0d7e450a3c65b5ff9e72023dc6314",
+ "sha256": "15lksdyk5z4xszfsdk290pm6ri5r9c2ki9jxmwppkqpd52w2dxck"
+ }
+ },
+ {
+ "ename": "helm-jstack",
+ "commit": "a92ffbc4de86248729773dd8729e6487bf56fbb0",
+ "sha256": "0giix1rv2jrmdxyg990w90ivl8bvgbbvah6nkpj7gb6vbnm15ldz",
+ "fetcher": "github",
+ "repo": "raghavgautam/helm-jstack",
+ "unstable": {
+ "version": [
+ 20150603,
+ 422
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "2064f7215dcf4ccbd6a7b8784223251507746da4",
+ "sha256": "0vhqpcv8xi6a6q7n6xxahdzijr1x5s40fvk9nc44q55psbyv627g"
+ }
+ },
+ {
+ "ename": "helm-kythe",
+ "commit": "dd1a6d0b08ad750a0e44ebdf76109d29ab226bd3",
+ "sha256": "1yybpic3jzp3yy8xlfdn2jj12h087vn0lj3mqx6xxj2nxd9q4949",
+ "fetcher": "github",
+ "repo": "MaskRay/emacs-helm-kythe",
+ "unstable": {
+ "version": [
+ 20170709,
+ 726
+ ],
+ "deps": [
+ "dash",
+ "helm"
+ ],
+ "commit": "eabbef4948f8ec7c7b2fac498e9145dfdb10ca82",
+ "sha256": "1ws7vl0pvznmxb7yj77kfv4l52xkzblhsl68lfkf9cdxcj9g6177"
+ }
+ },
+ {
+ "ename": "helm-lastpass",
+ "commit": "a39f1b0a5b22e91eb9e298949def6c29e7bc5755",
+ "sha256": "0zgq3szds5l3ah39wiacqcc1j0dlbhwm0cjx64j28jx93300kx57",
+ "fetcher": "github",
+ "repo": "xuchunyang/helm-lastpass",
+ "unstable": {
+ "version": [
+ 20180722,
+ 806
+ ],
+ "deps": [
+ "csv",
+ "helm"
+ ],
+ "commit": "82e1ffb6ae77d9d9e29c398eb013cd20ce963f77",
+ "sha256": "0pri9zsjg0zii7dpsr56dy5204q0mld5wi22iay3kqpiyxghhssv"
+ }
+ },
+ {
+ "ename": "helm-lean",
+ "commit": "42f4d6438c8aeb94ebc1782f2f5e2abd17f0ffde",
+ "sha256": "0j5ax14lhlyd9mpqk1jwh7nfp090kj71r045v2qjfaw2fa23b7si",
+ "fetcher": "github",
+ "repo": "leanprover/lean-mode",
+ "unstable": {
+ "version": [
+ 20200620,
+ 915
+ ],
+ "deps": [
+ "dash",
+ "helm",
+ "lean-mode"
+ ],
+ "commit": "6b4377686128d5c2fb55d8fe61b92a9991d40fbd",
+ "sha256": "1zb3igic1i30mfbsx4k2sabhdpl58fsrl5c3fjvqrpn92ixi9vws"
+ }
+ },
+ {
+ "ename": "helm-lib-babel",
+ "commit": "d6718da5d8849a8c3ec17188b89a1273cf963047",
+ "sha256": "0ddj6xrhz4n0npplkjmblqb43jnd6fmr4i4vv1cigrgb7zj6bjx4",
+ "fetcher": "github",
+ "repo": "dfeich/helm-lib-babel",
+ "unstable": {
+ "version": [
+ 20180510,
+ 1324
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "41bc0cdea8a604c6c8dc83ed5066644d33688fad",
+ "sha256": "1jrpaip5v9kzk0rf8wivsq8irdfd39svxd7p3v80cwgrrl7546xj"
+ }
+ },
+ {
+ "ename": "helm-lines",
+ "commit": "b0aee0be5f388a6d778cb22ce5ad930d21c6f521",
+ "sha256": "110y0vdmab4zr3ab6cpf93b6iidxhanq4rh1cfrzqjf7a7xik78h",
+ "fetcher": "github",
+ "repo": "torgeir/helm-lines.el",
+ "unstable": {
+ "version": [
+ 20180601,
+ 2033
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "3bfe15a60c6405682085ab289de3eb364624c4e9",
+ "sha256": "1fi0khqx35v48s14jr59jp06bpnhx9dy2rdasj2wn1a34jwgd49i"
+ }
+ },
+ {
+ "ename": "helm-lobsters",
+ "commit": "6247e3786131e5b2a7824804e49927ed65d266d5",
+ "sha256": "0dkb78n373kywxj8zba2s5a2g85vx19rdswv9i78xjwv1lqh8cpp",
+ "fetcher": "github",
+ "repo": "julienXX/helm-lobste.rs",
+ "unstable": {
+ "version": [
+ 20150213,
+ 1546
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "53c5b42baf72776dcba891fc3d7cd7d47721e9b0",
+ "sha256": "1ic0pcr7cfrfalb7760viixz5gfdg5hfazzwfhhw08vx44xx0jk4"
+ }
+ },
+ {
+ "ename": "helm-ls-git",
+ "commit": "b487b4c0db9092bb7e32aad9265b79a9d18c8478",
+ "sha256": "08rsy9479nk03kinjfkxddrq6wi4sx2a0wrz37cl2q517qi7sibj",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-ls-git",
+ "unstable": {
+ "version": [
+ 20200519,
+ 912
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "4da1a53f2f0a078ee2e896a914a1b19c0bf1d5ed",
+ "sha256": "12fi08w20yjsdfkxl1pk9q4w0z9l92va5fa5ghay9w33xlymc8dc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9,
+ 1
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "7b7b6dc2554603ad98412927f84a803625069ab3",
+ "sha256": "1s748a5abj58hd7cwzfggfnnmyzhj04gpbqqwqmskn8xlsq5qcdi"
+ }
+ },
+ {
+ "ename": "helm-ls-hg",
+ "commit": "03a22c9ec281330c4603aec6feb04cf580dee340",
+ "sha256": "0ca0xn7n8bagxb504xgkcv04rpm1vxhx2m77biqrx5886pwl25bh",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-ls-hg",
+ "unstable": {
+ "version": [
+ 20150909,
+ 543
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "61b91a22fcfb62d0fc56e361ec01ce96973c7165",
+ "sha256": "1msrsqiwk7bg5gry5cia8a6c7ifymfyn738hk8g2qwzzw4vkxxcs"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "61b91a22fcfb62d0fc56e361ec01ce96973c7165",
+ "sha256": "1msrsqiwk7bg5gry5cia8a6c7ifymfyn738hk8g2qwzzw4vkxxcs"
+ }
+ },
+ {
+ "ename": "helm-ls-svn",
+ "commit": "be27e728327016b819535ef8cae10020e5a07c2e",
+ "sha256": "10rbplwagmwp8lvhandzlinnzl1vcsvdlnjk9jpj3nw42x9wahx4",
+ "fetcher": "github",
+ "repo": "emacsmirror/helm-ls-svn",
+ "unstable": {
+ "version": [
+ 20190316,
+ 2203
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "a6043e1187282f649e2cb9f0e722a42daf41294b",
+ "sha256": "0jh3q2nx3hn6v1qvip5sbfsvf9zy74ppn1rl037d0hlssh6qir9j"
+ }
+ },
+ {
+ "ename": "helm-lsp",
+ "commit": "67942b34975015dd6f2b5f6b43829cc13b1832c6",
+ "sha256": "0hzwz243n45xcm3rnzmd6z8zrqy9660fy0l8mb940960cjzsxf3m",
+ "fetcher": "github",
+ "repo": "emacs-lsp/helm-lsp",
+ "unstable": {
+ "version": [
+ 20200808,
+ 713
+ ],
+ "deps": [
+ "dash",
+ "helm",
+ "lsp-mode"
+ ],
+ "commit": "4263c967267b0579956b3b12ef32878a9ea80d97",
+ "sha256": "1j0w6391ivw7gyx03vmmhccj25d5p94dnbblhd6vxl8d22azdfq3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "helm",
+ "lsp-mode"
+ ],
+ "commit": "5c960e7800dc8f4432f3a1466a637d484b87dc35",
+ "sha256": "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"
+ }
+ },
+ {
+ "ename": "helm-lxc",
+ "commit": "7a7717154a657bb7c27b25579ea2c1b31b5c0b5f",
+ "sha256": "0mhxbs99isbvls34g0415iy3fry7kanala6624gp5l5isbmn95rm",
+ "fetcher": "github",
+ "repo": "montag451/helm-lxc",
+ "unstable": {
+ "version": [
+ 20200323,
+ 816
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "lxc-tramp"
+ ],
+ "commit": "37fe2d7ed97967edf59a3b68b1434910516ae24f",
+ "sha256": "1xnkwmdcdjfvslahhslw2xnlcym9fvb3m8384c455bas6s180qxh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "lxc-tramp"
+ ],
+ "commit": "02812daf09d5ffb02abef7a8e0fa1f7b7c472d67",
+ "sha256": "14x69laf6mfz766w6lrzj5a430jr0lrilk60ywc6i1wlpcs2v10v"
+ }
+ },
+ {
+ "ename": "helm-make",
+ "commit": "0f25f066c60d4caff1fbf885bc944cac47515ec8",
+ "sha256": "1r6jjy1rlsii6p6pinbz7h6gcw4vmcycd3vj338bfbnqp5rrf2mc",
+ "fetcher": "github",
+ "repo": "abo-abo/helm-make",
+ "unstable": {
+ "version": [
+ 20200620,
+ 27
+ ],
+ "commit": "ebd71e85046d59b37f6a96535e01993b6962c559",
+ "sha256": "14jvhhw4chl94dgfwbyy7yirwchvcz5zrsgr9w6qy4z0fhqba41a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "helm",
+ "projectile"
+ ],
+ "commit": "6558a79d20d04465419b312da198190be6832647",
+ "sha256": "17ls0bplnja2qvg3129x2irgsgs7l4bjj0qi7b9z16i6knjkwfya"
+ }
+ },
+ {
+ "ename": "helm-migemo",
+ "commit": "ce6eb840368f8cbee66dc061478d5096b9dacb68",
+ "sha256": "1cjvb1lm1fsg5ky63fvrphwl5a7r7xf6qzb4mvl06ikj8hv2h33x",
+ "fetcher": "github",
+ "repo": "emacs-jp/helm-migemo",
+ "unstable": {
+ "version": [
+ 20151010,
+ 356
+ ],
+ "deps": [
+ "cl-lib",
+ "helm-core",
+ "migemo"
+ ],
+ "commit": "66c6a19d07c6a385daefd2090d0709d26b608b4e",
+ "sha256": "0gzlprf5js4y3vzkf7si2xc7ai5j97b5cqrs002hyjj5ij4f2vix"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 22
+ ],
+ "deps": [
+ "cl-lib",
+ "helm-core",
+ "migemo"
+ ],
+ "commit": "2d964309a5415cf47f5154271e6fe7b6a7fffec7",
+ "sha256": "03588hanfa20pjp9w1bqy8wsf5x6az0vfq0bmcnr4xvlf6fhkyxs"
+ }
+ },
+ {
+ "ename": "helm-mode-manager",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "04yhqbb9cliv1922b0abpc1wrladvhyfmwn8ifqfkzaks4067rhl",
+ "fetcher": "github",
+ "repo": "istib/helm-mode-manager",
+ "unstable": {
+ "version": [
+ 20151124,
+ 938
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "5d9c3ca4f8205d07ff4e03c4c3e88f596751c1fc",
+ "sha256": "1lbxb4vnnv6s46m90qihkj99qdbdylwncwaijjfd7i2kap2ayawh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "1fc1d65a27bc57d3a5bbd359f3eb77a6353fa4a5",
+ "sha256": "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"
+ }
+ },
+ {
+ "ename": "helm-mt",
+ "commit": "e726bf0b9b3f371b21f1f0d75175e0dda62f6fb0",
+ "sha256": "04hx8cg8wmm2w8g942nc9mvm12ammmjnx4k61ljrq76smd8s3x2a",
+ "fetcher": "github",
+ "repo": "dfdeshom/helm-mt",
+ "unstable": {
+ "version": [
+ 20160918,
+ 452
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "multi-term"
+ ],
+ "commit": "d2bff4100118483bc398c56d0ff095294209265b",
+ "sha256": "1wci63y0vjvrvrylkhhrz8p9q0ml6la5cpj4rx5cwin9rkmislm6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "multi-term"
+ ],
+ "commit": "d2bff4100118483bc398c56d0ff095294209265b",
+ "sha256": "1wci63y0vjvrvrylkhhrz8p9q0ml6la5cpj4rx5cwin9rkmislm6"
+ }
+ },
+ {
+ "ename": "helm-mu",
+ "commit": "63ee2e2aa622c96993c1b705d0fd223d6b36fd0f",
+ "sha256": "0pydp6scj5icaqfp3dp5h0q1y2i7z9mfyw1ll6iphsz9qh3x2bj2",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-mu",
+ "unstable": {
+ "version": [
+ 20190819,
+ 1311
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "481964fb26c59ea280a1ec7bce192d724ddf7d12",
+ "sha256": "08cszx5iqr65sz66ank722c1kdvjff2k7kvhxdilhf3gb6f8ph9p"
+ }
+ },
+ {
+ "ename": "helm-navi",
+ "commit": "e5ffbc25c0eb30b9c96594d50f47cd0383aa8ebc",
+ "sha256": "0v3amm15pwja2y7zg92hsfhp3scmswwl0q0slg33g11rvj26iiks",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-navi",
+ "unstable": {
+ "version": [
+ 20200401,
+ 904
+ ],
+ "deps": [
+ "helm",
+ "helm-org",
+ "navi-mode",
+ "s"
+ ],
+ "commit": "9bba79119edd8959d26484326c2f6868b7d942c0",
+ "sha256": "136shiqwr7k95gqywrlqqykx1pgpvyjbfzggwj7q1akqjslxfffn"
+ }
+ },
+ {
+ "ename": "helm-nixos-options",
+ "commit": "6846c7d86e70a9dd8300b89b61435aa7e146be96",
+ "sha256": "1nsi4hfw53iwn29fp33dkri1c6w8kdyn4sa0yn2fi6144ilmq933",
+ "fetcher": "github",
+ "repo": "travisbhartwell/nix-emacs",
+ "unstable": {
+ "version": [
+ 20151013,
+ 2309
+ ],
+ "deps": [
+ "helm",
+ "nixos-options"
+ ],
+ "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
+ "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "helm",
+ "nixos-options"
+ ],
+ "commit": "5fc8fa29bea9dd8e9c822af92f9bc6ddc223635f",
+ "sha256": "1lm7rkgf7q5g4ji6v1masfbhxdpwni8d77dapsy5k9p73cr2aqld"
+ }
+ },
+ {
+ "ename": "helm-notmuch",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1k1kj5n6r32qc139ms5cvj5x5xpbd5v8c64j3jpcrmgg8d396f1m",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-notmuch",
+ "unstable": {
+ "version": [
+ 20190320,
+ 1048
+ ],
+ "deps": [
+ "helm",
+ "notmuch"
+ ],
+ "commit": "97a01497e079a7b6505987e9feba6b603bbec288",
+ "sha256": "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "helm",
+ "notmuch"
+ ],
+ "commit": "97a01497e079a7b6505987e9feba6b603bbec288",
+ "sha256": "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"
+ }
+ },
+ {
+ "ename": "helm-open-github",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1lqjaprgybs4svnrgxvnbbzrkibgkf1zvhbg4ipiljz7h1byzqs7",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-open-github",
+ "unstable": {
+ "version": [
+ 20170220,
+ 159
+ ],
+ "deps": [
+ "gh",
+ "helm-core"
+ ],
+ "commit": "2f03d97552a1233db7694116d5f80ecde7612756",
+ "sha256": "1nzi2m23mqvxkpa7wsd2j0rwvlv5pj0mcaz2ypgfd023k2vh9is1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 15
+ ],
+ "deps": [
+ "gh",
+ "helm-core"
+ ],
+ "commit": "553f3ab0fe0a028015e9b6cb7c35fb139ec222fc",
+ "sha256": "1xj5b44nkdvbxhk1bnllqm2qq393w22ccy708prrhiq8fmk53aa8"
+ }
+ },
+ {
+ "ename": "helm-org",
+ "commit": "5c14f6b048ec9983e31fcd3e7cdea45ebe806ce8",
+ "sha256": "02zyc7nssl4zvbbw03fl0nbf4d6qmqxywa2hnfyiwfzn5jzxkl95",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-org",
+ "unstable": {
+ "version": [
+ 20200311,
+ 633
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "b7a18dfc17e8b933956d61d68c435eee03a96c24",
+ "sha256": "0sbk8c05v28xz7mdpzrlawn5iwf3hkkr1fj8lsi861l4fhjbmcap"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "3a20d0eca0e95943cd9fdd40882cec65628f4a67",
+ "sha256": "0j3xz59hl84asv332fk94j5c06w3ix6b14zrkhxr8vb5ci1b2b1k"
+ }
+ },
+ {
+ "ename": "helm-org-multi-wiki",
+ "commit": "536cf8f9a0b16e6e9bda30de67d0da44bb1b5877",
+ "sha256": "0wk08m6y2rvjbj28h3hqf9w3cgx0ykiv8z6f6kqjfpik8fl2bzbj",
+ "fetcher": "github",
+ "repo": "akirak/org-multi-wiki",
+ "unstable": {
+ "version": [
+ 20200505,
+ 1053
+ ],
+ "deps": [
+ "dash",
+ "helm",
+ "helm-org",
+ "org-multi-wiki",
+ "org-ql"
+ ],
+ "commit": "2541e1b0798a1c9d4b4b8778e6c97a579ac3fa14",
+ "sha256": "1mcpbq1qylkxpd6nzq04jrji6p1xll5a30dc7dpxpcjrkgvbzf39"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "org-multi-wiki",
+ "org-ql"
+ ],
+ "commit": "80791ea872939df0578dc3a2992a2f7fd5618971",
+ "sha256": "0avg5xwnb3c9ylj9dqdcqmh8kykl98jsr6cl3rrivkj7l47i1rl0"
+ }
+ },
+ {
+ "ename": "helm-org-rifle",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "05arqjadly6qf2slw8109wk828sd4f76spklpnxwjc98x01vacxw",
+ "fetcher": "github",
+ "repo": "alphapapa/org-rifle",
+ "unstable": {
+ "version": [
+ 20200512,
+ 1943
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "helm",
+ "s"
+ ],
+ "commit": "263f56d70112f5d0496684c89a2aa07959e0a95f",
+ "sha256": "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "helm",
+ "s"
+ ],
+ "commit": "263f56d70112f5d0496684c89a2aa07959e0a95f",
+ "sha256": "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"
+ }
+ },
+ {
+ "ename": "helm-orgcard",
+ "commit": "ce6eb840368f8cbee66dc061478d5096b9dacb68",
+ "sha256": "1a56y8fny7qxxidc357n7l3yi7h66hidhvwhkam8y5wk6k61460p",
+ "fetcher": "github",
+ "repo": "emacs-jp/helm-orgcard",
+ "unstable": {
+ "version": [
+ 20151001,
+ 1524
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "9655ac340d1ccc5f3d1c0f7c49be8dd3556d4d0d",
+ "sha256": "1zyjxrrda7nxxjqczv2p3sfimxy2pq734kf51j6v2y0biclc4bk3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "9655ac340d1ccc5f3d1c0f7c49be8dd3556d4d0d",
+ "sha256": "1zyjxrrda7nxxjqczv2p3sfimxy2pq734kf51j6v2y0biclc4bk3"
+ }
+ },
+ {
+ "ename": "helm-osx-app",
+ "commit": "fe3d52e2f699d68dfbcdbc2f9a3e3cfd99b79be8",
+ "sha256": "1qxh7hs8z7sp8dnpxirnjnyjynij9j6w5vq9l1w1sy4zbhr49l31",
+ "fetcher": "github",
+ "repo": "xuchunyang/helm-osx-app",
+ "unstable": {
+ "version": [
+ 20190717,
+ 958
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "634ed5d721a20af265825a018e9df3ee6640daee",
+ "sha256": "04p2fp7mp2q1ava457cg1vm6ycag0ig11nmr23fybixdsp1j646j"
+ }
+ },
+ {
+ "ename": "helm-pages",
+ "commit": "7a33cb19b6e71240896bbe5da07ab25f2ee11f0b",
+ "sha256": "1v3w8100invb5wsmm3dyl41pjs7s889s3b1rlr6vlcspa1ncv3wj",
+ "fetcher": "github",
+ "repo": "david-christiansen/helm-pages",
+ "unstable": {
+ "version": [
+ 20161121,
+ 226
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "51dcb9374d1df9feaae85e60cfb39b970554ecba",
+ "sha256": "0znmj13nshzspysnzrn2x6k9fym21n9ywkpjibljy0s05m36nbs5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "e334ca3312e51d6fdfa989df5d3ebe683d673c0e",
+ "sha256": "1r2ndmrw5ivawb940j8jnmqzxv46qrzd3cqh9fvxx5yicf020fjf"
+ }
+ },
+ {
+ "ename": "helm-pass",
+ "commit": "4a34e0ab66491540dd0c5b62c7f60684056b16d5",
+ "sha256": "153cj58x2xcmjs2n4fl1jsv8zir4z9jwg1w00ghv70k5j3rwsjkp",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-pass",
+ "unstable": {
+ "version": [
+ 20190315,
+ 1335
+ ],
+ "deps": [
+ "auth-source-pass",
+ "helm",
+ "password-store"
+ ],
+ "commit": "ed5798f2d83937575e8f23fde33323bca9e85131",
+ "sha256": "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "auth-source-pass",
+ "helm",
+ "password-store"
+ ],
+ "commit": "ed5798f2d83937575e8f23fde33323bca9e85131",
+ "sha256": "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"
+ }
+ },
+ {
+ "ename": "helm-perldoc",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1xl075bg35lc48zxnwbvyr7dqcz8cxk3v87i9v506kqwfmfpiz95",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-perldoc",
+ "unstable": {
+ "version": [
+ 20200315,
+ 1716
+ ],
+ "deps": [
+ "deferred",
+ "helm-core"
+ ],
+ "commit": "6f3526f07f3df3059dbde779f8e681f5f1fee6ea",
+ "sha256": "1g7f2vdvzh9qhk8lviii86w7cb06a60kz6gvv8gnbqx88mndqclq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "deps": [
+ "cl-lib",
+ "deferred",
+ "helm"
+ ],
+ "commit": "18645f2065a07acce2c6b50a2f9d7a2554e532a3",
+ "sha256": "01cj2897hqz02mfz32nxlyyp59iwm0gz1zj11s8ll7pwy9q3r90g"
+ }
+ },
+ {
+ "ename": "helm-perspeen",
+ "commit": "1ee26a57aacbd571da0cfaca2c31eec6ea86a543",
+ "sha256": "07cnsfhph807fqyai3by2c5ml9a40gxkq280f27disf8sc45rg1y",
+ "fetcher": "github",
+ "repo": "jimo1001/helm-perspeen",
+ "unstable": {
+ "version": [
+ 20170228,
+ 1345
+ ],
+ "deps": [
+ "helm",
+ "perspeen"
+ ],
+ "commit": "7fe2922d85608bfa9e18269fc44181428b8849ff",
+ "sha256": "1m89c95vzmhsvrg5g7ixz5a5ckw2n983x58cwh8rkmaklavacgsy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "helm",
+ "perspeen"
+ ],
+ "commit": "aec145d5196aed1689563d138a2aa37b139e1759",
+ "sha256": "1wv13mvm9149nl9p93znl3d2yfnq4rph440ja07w804cd61qjhq9"
+ }
+ },
+ {
+ "ename": "helm-phpunit",
+ "commit": "96470d7190199bfb13dd54e7e8f5ea50cf0a5039",
+ "sha256": "0anbrzlpmashcklifyvnnf2rwv5fk4x0kbls2dp2db1bliw3rdh6",
+ "fetcher": "github",
+ "repo": "eric-hansen/helm-phpunit",
+ "unstable": {
+ "version": [
+ 20160513,
+ 853
+ ],
+ "deps": [
+ "helm",
+ "phpunit"
+ ],
+ "commit": "739f26204ad2ba76c25f45e8eab1e5216f7c3518",
+ "sha256": "0wirqnzprfxbppdawfx6ah5rdawgyvl8b4zn2r3zm9mnj9jci4dw"
+ }
+ },
+ {
+ "ename": "helm-posframe",
+ "commit": "a99c37bc50c371aae8ccc27de8120d4773981cf7",
+ "sha256": "16mhi17kl3cgwk7ymzg8crakwrwrzsg5p9ijgrdawa7px2z9ym78",
+ "fetcher": "github",
+ "repo": "tumashu/helm-posframe",
+ "unstable": {
+ "version": [
+ 20200512,
+ 1146
+ ],
+ "deps": [
+ "helm",
+ "posframe"
+ ],
+ "commit": "b107e64eedef6292c49d590f30d320c29b64190b",
+ "sha256": "09y98ij4wkqh771ahwi3b7nsg6yb2b69n94v3ad41kp4q0c2rscd"
+ }
+ },
+ {
+ "ename": "helm-proc",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "11mh8ny8mhdmp16s21vy9yyql56zxcgmj2aapqs5jy4yad5q62rz",
+ "fetcher": "github",
+ "repo": "markus1189/helm-proc",
+ "unstable": {
+ "version": [
+ 20161006,
+ 305
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "576d31c2d74ba3897d56e2acd2b0993f52c2547c",
+ "sha256": "11xahzybwh02ds19y6h5hbpqdj278kcb4239vyykdl3wx8p048a7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "0a75a86e4f381143134e0cdcd8c84c5b5b0fb2d6",
+ "sha256": "0bgpd50ningqyzwhfinfrn6gqacard5ynwllhg9clq0f683sbck2"
+ }
+ },
+ {
+ "ename": "helm-project-persist",
+ "commit": "98780edaf8b1d97aec9e25d07d93289c90fd5069",
+ "sha256": "1n87kn1n3453mpdj6amyrgivslskmnzdafpspvkz7b0smf9mv2ld",
+ "fetcher": "github",
+ "repo": "Sliim/helm-project-persist",
+ "unstable": {
+ "version": [
+ 20151210,
+ 1543
+ ],
+ "deps": [
+ "helm",
+ "project-persist"
+ ],
+ "commit": "357950fbac18090985a750e40d5d8b10ee9dcd53",
+ "sha256": "0j54c1kzsjgr05qx25rg3ylawvyw6n6liypiwaas47vpyfswbxhv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "helm",
+ "project-persist"
+ ],
+ "commit": "df63a21b9118f9639f0f4a336127b4fb8ec6deec",
+ "sha256": "1q7hfj8ldwivhjp9ns5pvsn0ds6pyvl2zhl366c22s6q8jmbr8ik"
+ }
+ },
+ {
+ "ename": "helm-projectile",
+ "commit": "8bc4e3a5af7ba86d277c73a1966a91c87d3d855a",
+ "sha256": "18y7phrvbpdi3cnghwyhh0v1bwm95nwq1lymzf8lrcbmrwcvh36a",
+ "fetcher": "github",
+ "repo": "bbatsov/helm-projectile",
+ "unstable": {
+ "version": [
+ 20200625,
+ 443
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "projectile"
+ ],
+ "commit": "2f3a2a03d6cb9419c25b432637aa11c8d2f9f3b7",
+ "sha256": "0h6r8v2lj6abjz73iv8568ijs7l37j76nf58h4p9r9ldpdigihzz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "projectile"
+ ],
+ "commit": "5eb861b77d8e6697733def65288039df5be81a0e",
+ "sha256": "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"
+ }
+ },
+ {
+ "ename": "helm-prosjekt",
+ "commit": "6d359ec827573dd8c871c4f23df5d1737f1830e7",
+ "sha256": "019rya3bf13cnval8iz680wby3sqlmqg4nbn0a13l1pkhlnv9fvm",
+ "fetcher": "github",
+ "repo": "abingham/prosjekt",
+ "unstable": {
+ "version": [
+ 20140129,
+ 717
+ ],
+ "deps": [
+ "helm",
+ "prosjekt"
+ ],
+ "commit": "a864a8be5842223043702395f311e3350c28e9db",
+ "sha256": "1m8zvrv5aws7b0dffk8y6b5mncdk2c4k90mx69jys10fs0gc5hb3"
+ }
+ },
+ {
+ "ename": "helm-pt",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "1pvipzjw9h668jkbwwkmphvp806fs9q4mb2v2bjxpb0f3kn2qk3n",
+ "fetcher": "github",
+ "repo": "ralesi/helm-pt",
+ "unstable": {
+ "version": [
+ 20160214,
+ 2342
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "8acc52911dad1ed0c3975f134a468762afe0b76b",
+ "sha256": "03ys40rr0pvgp35j5scw9c28j184f1c9m58a3x0c8f0lgyfpssjk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "03e35e2bb5b683d79897d07acb57ee67009cc6cd",
+ "sha256": "0jm6nnnjyd4kmm1knh0mq3xhnw2hvs3linwlynj8yaliqvlv6brv"
+ }
+ },
+ {
+ "ename": "helm-purpose",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "16c9if636v7l8z5df011vdj4a3ci5kf3rdfk4g9hdbbl639yca79",
+ "fetcher": "github",
+ "repo": "bmag/helm-purpose",
+ "unstable": {
+ "version": [
+ 20170114,
+ 1636
+ ],
+ "deps": [
+ "helm",
+ "window-purpose"
+ ],
+ "commit": "9ff4c21c1e9ebc7afb851b738f815df7343bb287",
+ "sha256": "1xh6v5xlf1prgk6mrvkc6qa0r0bz74s5f4z3dl7d00chsi7i2m5v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "helm",
+ "window-purpose"
+ ],
+ "commit": "115a9d612aa07bb6f7f7b18f42b34918699660b9",
+ "sha256": "1jy9l4an2aqynj86pw2qxpzw446xm376n2ykiz17qlimqbxhwkgz"
+ }
+ },
+ {
+ "ename": "helm-pydoc",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0a2vn7xgvcil8vp40jiljff83hwb2ysb240amd8darxbfxz1j9mi",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-pydoc",
+ "unstable": {
+ "version": [
+ 20160918,
+ 542
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "85480a29b56dacde425655bc8f5a597c785afdf5",
+ "sha256": "1wrs2d84xzjnsmw255bmnd1wcpwd36m0vyni48aa7661d4dh10x3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "deps": [
+ "cl-lib",
+ "helm-core"
+ ],
+ "commit": "30f1814b5b16db0413ffe74b0d0420b38e153df9",
+ "sha256": "1ik0vllakh73kc2zbgii4sm33n9pj388gaz69j4drz2mik307zvs"
+ }
+ },
+ {
+ "ename": "helm-qiita",
+ "commit": "37331f6cc8a95fd2b2ed5b20be0bcb604ea66dee",
+ "sha256": "1iz2w1901zz3zk9zazikmnkzng5klnvqn4ph1id7liksrcdpdmpm",
+ "fetcher": "github",
+ "repo": "masutaka/emacs-helm-qiita",
+ "unstable": {
+ "version": [
+ 20190526,
+ 1359
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "5f82010c595f8e122aa3f68148ba8d8ccb1333d8",
+ "sha256": "1vkm2h0ia0gqqjw6cnbyik0fv37zzjwwdzk1cnh7a3s5hsg60i68"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 3
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "5f82010c595f8e122aa3f68148ba8d8ccb1333d8",
+ "sha256": "1vkm2h0ia0gqqjw6cnbyik0fv37zzjwwdzk1cnh7a3s5hsg60i68"
+ }
+ },
+ {
+ "ename": "helm-rage",
+ "commit": "84f831fdc5a0e90c23ac11c79f193f4d3c1ebb04",
+ "sha256": "02pdmkzwnqhf1r0v7b498z5b2il3ng75ykdwgmwd60k6hiygj70x",
+ "fetcher": "github",
+ "repo": "bomgar/helm-rage",
+ "unstable": {
+ "version": [
+ 20180118,
+ 1532
+ ],
+ "deps": [
+ "dash",
+ "helm",
+ "s"
+ ],
+ "commit": "5d0aefb53d859186181d4bdcfeff7d315339c7b8",
+ "sha256": "0msj3rrv9bwhhwz7r1ayr6qvnxjsq7374j0xfhqbrx49pix4qf3q"
+ }
+ },
+ {
+ "ename": "helm-rails",
+ "commit": "3af52fd266364a81ff42eb6d08389fa549bd6c2c",
+ "sha256": "1iihfsmnkpfp08pldghf3w5k8v5dlmy5ns0l4niwdwp5w8lyjcd6",
+ "fetcher": "github",
+ "repo": "asok/helm-rails",
+ "unstable": {
+ "version": [
+ 20130424,
+ 1519
+ ],
+ "deps": [
+ "helm",
+ "inflections"
+ ],
+ "commit": "506d9948d45dfbc575c9c4c0d102c1ad2f511e82",
+ "sha256": "0i5ps5yds21bsrx86piy9bdgca95l1farsrbjpqz88ad8pq6xa9c"
+ }
+ },
+ {
+ "ename": "helm-rb",
+ "commit": "7ba8e94755f5a96881bbf4c4ffbff67bec9b804a",
+ "sha256": "14pkrj1rpi2ihpb7c1hx6xwzvc1x7l41lwr9znp5vn7z93i034fr",
+ "fetcher": "github",
+ "repo": "yuutayamada/helm-rb",
+ "unstable": {
+ "version": [
+ 20131123,
+ 1639
+ ],
+ "deps": [
+ "helm",
+ "helm-ag-r"
+ ],
+ "commit": "4949d646420a9849af234dacdd8eb34a77c662fd",
+ "sha256": "1b74jsr28ldz80mrqz3d1bmykpcprdbhf3fzhc0awd5i5xdnfaid"
+ }
+ },
+ {
+ "ename": "helm-rdefs",
+ "commit": "e1c7a20847513dc1153d54a3a700bc120f71dc6b",
+ "sha256": "0z3nrqrz63j9nxkbxdsjj3z8zhsqlik28iry3j1plgsxq1mhrn0y",
+ "fetcher": "github",
+ "repo": "saidie/emacs-helm-rdefs",
+ "unstable": {
+ "version": [
+ 20161130,
+ 536
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "cd3a6b3af3015ee58ef30cb7c81c79ebe5fc867b",
+ "sha256": "0ji7ak9pkmw0wxzmw5a1amvn3pkj90v9jv1yi12w388njxn7qsvj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "cd3a6b3af3015ee58ef30cb7c81c79ebe5fc867b",
+ "sha256": "0ji7ak9pkmw0wxzmw5a1amvn3pkj90v9jv1yi12w388njxn7qsvj"
+ }
+ },
+ {
+ "ename": "helm-recoll",
+ "commit": "0a0d168f96470753c22b92ad863be98d8c421ccd",
+ "sha256": "0pr2pllplml55k1xx9inr3dm90ichg2wb62dvgvmbq2sqdf4606b",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-recoll",
+ "unstable": {
+ "version": [
+ 20200805,
+ 1235
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "c021a3b5e8c010bdad062cceb80fb49788f89e9f",
+ "sha256": "09aj1hsj81vx761v5ai48hvl17i2i60gx3szk8qcmmpcn00m3ps7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "8548b157f40f5e7a4940a54abe5ca0016fd9bdee",
+ "sha256": "1a3ja8j9nvddlyr04q1wn60r6pp83fcwmmn54dn0c3m3w5icflcw"
+ }
+ },
+ {
+ "ename": "helm-rg",
+ "commit": "958fbafdcb214f1ec89fd0d84c6600c89890e0cf",
+ "sha256": "0gfq59540q9s6mr04q7dz638zqmqbqmbl1qaczddgmjn4vyjmf7v",
+ "fetcher": "github",
+ "repo": "cosmicexplorer/helm-rg",
+ "unstable": {
+ "version": [
+ 20200721,
+ 725
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "helm"
+ ],
+ "commit": "ee0a3c09da0c843715344919400ab0a0190cc9dc",
+ "sha256": "0m4l894345n0zkbgl0ar4c93v8pyrhblk9zbrjrdr9cfz40bx2kd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "helm"
+ ],
+ "commit": "96dcbeb366caa0b158668384113458ee5f7c4dfd",
+ "sha256": "1k9yv9iw694alf5w7555ygk2i1b26i90rqq7ny63a4nd3y5cbs5f"
+ }
+ },
+ {
+ "ename": "helm-rhythmbox",
+ "commit": "8a81c43958308ad8035a9d0b2422fd094adc72f0",
+ "sha256": "0pnm7yvas0q3b38ch5idm7v4ih2fjyfai8217j74xhkpcc2w4g4a",
+ "fetcher": "github",
+ "repo": "mrBliss/helm-rhythmbox",
+ "unstable": {
+ "version": [
+ 20160524,
+ 1158
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "c92e1ded34ddd4e62e7e9a558259c232e05193fa",
+ "sha256": "1ng73dmligj38xbfdfr8sb69czppks7wfvh5q5xcm2pha828kcwm"
+ }
+ },
+ {
+ "ename": "helm-robe",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "143azbrj32mk0xv0i7wpvwcj4lqvphbjj3rbcpwnx76rywi3iqp7",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-robe",
+ "unstable": {
+ "version": [
+ 20151209,
+ 355
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "6e69543b4ee76c5f8f3f2510c76e6d9aed17a370",
+ "sha256": "1qcx036pgrg4xc1y74amd8jkjylnc0g1c4841cc3fbknnn1ap54g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "7348d0bc0251b51979554ea678b970fd01c0efe9",
+ "sha256": "163ljqar3vvbavzc8sk6rnf8awyc2rhh2g117fglswich3c8lnqg"
+ }
+ },
+ {
+ "ename": "helm-ros",
+ "commit": "2c9ddf53b4060c33550a445f877aef37dffaeb7e",
+ "sha256": "1q9qqjchkj6anikaamhw998f5aaampc1z7085v9pigg3x11vv9fm",
+ "fetcher": "github",
+ "repo": "davidlandry93/helm-ros",
+ "unstable": {
+ "version": [
+ 20160812,
+ 1752
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "xterm-color"
+ ],
+ "commit": "92b0b215f6a017f0f57f1af15466cc0b2a5a0135",
+ "sha256": "1fgph8wsm2nakn53zj19r59mirzn25r601rljmdv2xpw5h3axywg"
+ }
+ },
+ {
+ "ename": "helm-rtags",
+ "commit": "3dea16daf0d72188c8b4043534f0833fe9b04e07",
+ "sha256": "1vv6wnniplyls344qzgcf1ivv25c8qilax6sbhvsf46lvrwnr48n",
+ "fetcher": "github",
+ "repo": "Andersbakken/rtags",
+ "unstable": {
+ "version": [
+ 20191222,
+ 920
+ ],
+ "deps": [
+ "helm",
+ "rtags"
+ ],
+ "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+ "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 38
+ ],
+ "deps": [
+ "helm",
+ "rtags"
+ ],
+ "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
+ "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+ }
+ },
+ {
+ "ename": "helm-rubygems-local",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "134qyqnh9l05lfj0vizlx35631q8ih6cdblrvka3p8i571300ikh",
+ "fetcher": "github",
+ "repo": "hadashiA/helm-rubygems-local",
+ "unstable": {
+ "version": [
+ 20130712,
+ 111
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "289cb33d41c703af9791d6da46b55f070013c2e3",
+ "sha256": "0s4hb1fvwr9za5gkz8s5w1kh9qjyygz6g59w7vmrg2d8ds2an03d"
+ }
+ },
+ {
+ "ename": "helm-rubygems-org",
+ "commit": "655be547d57d358eff968f42c13dcf4371529a72",
+ "sha256": "04ni03ak53z3rggdgf68qh7ksgcf3s0f2cv6skwjqw7v8qhph6qs",
+ "fetcher": "github",
+ "repo": "neomantic/helm-rubygems-org",
+ "unstable": {
+ "version": [
+ 20140826,
+ 1156
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "6aaed984f698cbdf9f9aceb0221404563e28764d",
+ "sha256": "1sff8kagyhmwcxf9062il1077d4slvr2kq76abj496610gpb75i0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "6aaed984f698cbdf9f9aceb0221404563e28764d",
+ "sha256": "1sff8kagyhmwcxf9062il1077d4slvr2kq76abj496610gpb75i0"
+ }
+ },
+ {
+ "ename": "helm-safari",
+ "commit": "553e27a3523ade9dc4951086d9340e8240d5d943",
+ "sha256": "0lvwghcl5w67g0lc97r7hfvca7ss0mysy2mxj9axxbpyiq6fmh0y",
+ "fetcher": "github",
+ "repo": "xuchunyang/helm-safari",
+ "unstable": {
+ "version": [
+ 20160404,
+ 324
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "664c7f4488829228eed7e90cd53002e14bec555b",
+ "sha256": "1ws5zxanaiaaxpgkcb2914qa8wxp6ml019hfnfcp7amjnajq9pyz"
+ }
+ },
+ {
+ "ename": "helm-sage",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1v1j2ipmzxcflknzmy1asm2ifalj2yb5qiv24wi7a323izlaxy2m",
+ "fetcher": "github",
+ "repo": "sagemath/helm-sage",
+ "unstable": {
+ "version": [
+ 20160514,
+ 745
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "sage-shell-mode"
+ ],
+ "commit": "f14e9281d8f2162df7d8f9c2ad9ad1248a24803b",
+ "sha256": "0padb6mncgc52wib3dgvdc9r4dp591gf8nblbfnsnxx4zjrcwawb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "sage-shell-mode"
+ ],
+ "commit": "b42b4ba5fd1b17c4b54c30376a053281686beeb8",
+ "sha256": "1s6aw1viyzhhrfiazzi82n7bkvshp7clwi6539660m72lfwc5zdl"
+ }
+ },
+ {
+ "ename": "helm-selected",
+ "commit": "acc087661e614d9f30c23fe4a65c020bd3656a29",
+ "sha256": "0ksyh0r59y4abwls6v6v519yxmcjnaryfnxlam48fqqfrsxv1j0h",
+ "fetcher": "github",
+ "repo": "takaxp/helm-selected",
+ "unstable": {
+ "version": [
+ 20171223,
+ 210
+ ],
+ "deps": [
+ "helm",
+ "selected"
+ ],
+ "commit": "a9c769998bc56373d19f0ec9cbbbb4bd89a43c2d",
+ "sha256": "1n6sp6bhlz01b1d87cgrgxhap0ch1bkh7fl45dzidx5fjz9lccdf"
+ }
+ },
+ {
+ "ename": "helm-selector",
+ "commit": "91193d76993bc65cc71bfa06148ef375b8034bd7",
+ "sha256": "19v1xvrbc9pn6ilbf28g4bjd4psmb34as6cjmksyaw5rn71ps2ay",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-selector",
+ "unstable": {
+ "version": [
+ 20200808,
+ 858
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "a1920a885830693dd9b1d6af3dd60f1915d976f4",
+ "sha256": "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "a1920a885830693dd9b1d6af3dd60f1915d976f4",
+ "sha256": "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"
+ }
+ },
+ {
+ "ename": "helm-sheet",
+ "commit": "010c5c5e6ad6e7b05e63936079229739963bf970",
+ "sha256": "0lx70l5gq43hckgdfna8s6wx287sw5ms9l1z3n6vg2x8nr9m61kc",
+ "fetcher": "github",
+ "repo": "yasuyk/helm-sheet",
+ "unstable": {
+ "version": [
+ 20130630,
+ 1239
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "d360b68d0ddb09aa1854e7b2f3cb39caeee26463",
+ "sha256": "00wnqcgpf4hqdnqj5zrizr4s0pffb93xwya8k5c3rp4plncrcdzx"
+ }
+ },
+ {
+ "ename": "helm-slime",
+ "commit": "c35d43a7a8219de4a7f675147f598966aaecb9db",
+ "sha256": "0qv4c1dd28zqbjxpshga967szrh75a4k51n4x86xkbax7ycca4hh",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-slime",
+ "unstable": {
+ "version": [
+ 20191016,
+ 1601
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "slime"
+ ],
+ "commit": "7886cc49906a87ebd73be3b71f5dd6b1433a9b7b",
+ "sha256": "1g9fnp818d677xhx2m4820742fyblvmnsygmkdb5530lacdaksh2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "slime"
+ ],
+ "commit": "e0dbf04d447098a1d074bc04e125764ff82091b7",
+ "sha256": "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"
+ }
+ },
+ {
+ "ename": "helm-sly",
+ "commit": "4dbeeaca23d938116bf23177a71f38b16276d2c6",
+ "sha256": "1ikrn07b2glyix6n08v6yydiisi17acfmv1cpbq6is5f3zwqcgmx",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-sly",
+ "unstable": {
+ "version": [
+ 20191104,
+ 1054
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "sly"
+ ],
+ "commit": "b1567c27c0b421b9e25e350f0c83b9c7fe0fee6b",
+ "sha256": "0ihcqysz5cvn94rrvjz5l4whzmxcjrfrinas180x8iycpyvzkwk6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "sly"
+ ],
+ "commit": "9a4d91ba738ca06ceab2dea3c1e09fd45a67d488",
+ "sha256": "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"
+ }
+ },
+ {
+ "ename": "helm-smex",
+ "commit": "85568bd732da952053148e07b95e53f7caf5f62c",
+ "sha256": "02jvq2hyq4wwc9v8gaxr9vkjldc60khdbjf71p8w2iny5w3k0jbj",
+ "fetcher": "github",
+ "repo": "ptrv/helm-smex",
+ "unstable": {
+ "version": [
+ 20171004,
+ 2008
+ ],
+ "deps": [
+ "helm",
+ "smex"
+ ],
+ "commit": "2269375dfa452b88b5170d1a5d5849ebb2c1e413",
+ "sha256": "0n2ki7g0hygsq4bi5zkhp3v772ld7niiajfznxmv11dgn949a52s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "helm",
+ "smex"
+ ],
+ "commit": "2269375dfa452b88b5170d1a5d5849ebb2c1e413",
+ "sha256": "0n2ki7g0hygsq4bi5zkhp3v772ld7niiajfznxmv11dgn949a52s"
+ }
+ },
+ {
+ "ename": "helm-spaces",
+ "commit": "8c2ffb50643223b68a62fab348cd5aba24ce92e6",
+ "sha256": "0hdvkk173k98iycvii5xpbiblx044125pl7jyz4kb8r1vvwcv791",
+ "fetcher": "github",
+ "repo": "yasuyk/helm-spaces",
+ "unstable": {
+ "version": [
+ 20161001,
+ 1409
+ ],
+ "deps": [
+ "helm-core",
+ "spaces"
+ ],
+ "commit": "877e2b5178926308d6a7c2a37477bb12c33a96d4",
+ "sha256": "1cz8aw6zprzfalagma7jmbycwll2chk2l4n5hkgqyhakdfm2ryzm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "helm-core",
+ "spaces"
+ ],
+ "commit": "877e2b5178926308d6a7c2a37477bb12c33a96d4",
+ "sha256": "1cz8aw6zprzfalagma7jmbycwll2chk2l4n5hkgqyhakdfm2ryzm"
+ }
+ },
+ {
+ "ename": "helm-spotify",
+ "commit": "1bf9eda57cba4742656f37a621b6d394483ff638",
+ "sha256": "1rzvxnaqh8bm78qp0rhpqs971pc855qrq589r3s8z3gpqzmwlnmf",
+ "fetcher": "github",
+ "repo": "krisajenkins/helm-spotify",
+ "unstable": {
+ "version": [
+ 20160905,
+ 2147
+ ],
+ "deps": [
+ "helm",
+ "multi"
+ ],
+ "commit": "f7a62d1ff88e3127de9be7cd3e818b0a92268ab3",
+ "sha256": "0q3h84zj63b1rnlvmsznrpmvvf0qbic5yb9xkdjcz4jz4h8p3h1w"
+ }
+ },
+ {
+ "ename": "helm-spotify-plus",
+ "commit": "306aa9fd29f1495eef71476dfcba3b494223b0a9",
+ "sha256": "1f39g2kgx4jr7ahhhswkrj0m5rbsykvkgh00d7jy8czpp8r4dl20",
+ "fetcher": "github",
+ "repo": "wandersoncferreira/helm-spotify-plus",
+ "unstable": {
+ "version": [
+ 20190913,
+ 2236
+ ],
+ "deps": [
+ "helm",
+ "multi"
+ ],
+ "commit": "c3922ec368250965e483876cde5880d88a40a71b",
+ "sha256": "12zl775l7zikv268vypnb56ly2h0y3sf5wxv5rc2amnmwgrikvra"
+ }
+ },
+ {
+ "ename": "helm-sql-connect",
+ "commit": "58347c583dcf4a915c1af1262a5348755f28fe03",
+ "sha256": "1av42580c68iq694yr532hhcq0jn7m58x3cib4ix5c8b4ljvnnvd",
+ "fetcher": "github",
+ "repo": "eric-hansen/helm-sql-connect",
+ "unstable": {
+ "version": [
+ 20170319,
+ 1251
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "5aead55b6f8636140945714d8c332b287ab9ef10",
+ "sha256": "037gri2r9y135av8gbgi9d8k90qs8jlax0bimzcbwdkyhibhzrcp"
+ }
+ },
+ {
+ "ename": "helm-switch-shell",
+ "commit": "d585f1f9d6eaccf5150b0e7db530b61beb4ebcf4",
+ "sha256": "1x1qp9l9ahx85m6yqnf00ids1xlm75l6v8rdig77kzzmazpvc707",
+ "fetcher": "github",
+ "repo": "jamesnvc/helm-switch-shell",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1725
+ ],
+ "deps": [
+ "dash",
+ "helm"
+ ],
+ "commit": "9cab3dfd2f006148e969555bc3bfb6456d1b3f84",
+ "sha256": "0z1785cw5sbcyqs2zbi35b5y6ac9lws1wxp89la7hwdlzwzk1c2a"
+ }
+ },
+ {
+ "ename": "helm-swoop",
+ "commit": "7a4e84530b4607a277fc3b678fe7b34b1c5e3b4f",
+ "sha256": "0dbn0mzzsjhpxh0dpxrrzqam9hl2sjsp1izq2qv3z11iv2hylzx4",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-swoop",
+ "unstable": {
+ "version": [
+ 20200814,
+ 448
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "1f7d3cf0d742b199e4ce13fcb8b19c977a44611e",
+ "sha256": "1r03d3ivmi0r5knsrlfx2cq5jljjl36h2l5n0mbs3sc6iad9wz20"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "533dcd14198b61fd2fbf8c6f286f65feae5b6bd2",
+ "sha256": "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"
+ }
+ },
+ {
+ "ename": "helm-system-packages",
+ "commit": "0c46cfb0fcda0500e15d04106150a072a1a75ccc",
+ "sha256": "01mndx2zzh7r7gmpn6gd1vy1w3l6dnhvgn7n2p39viji1r8b39s4",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-system-packages",
+ "unstable": {
+ "version": [
+ 20200502,
+ 751
+ ],
+ "deps": [
+ "helm",
+ "seq"
+ ],
+ "commit": "d6ad2f682d744048ea0ac47c470be5a159a6541b",
+ "sha256": "01zsl1g8r3rkgwpdphgmbljjnrhk6mmk2rjqhykjk5f3bdk02rwk"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 10,
+ 1
+ ],
+ "deps": [
+ "helm",
+ "seq"
+ ],
+ "commit": "2b4636dc861ffe2c4a2025b67ab40460f85b9563",
+ "sha256": "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f"
+ }
+ },
+ {
+ "ename": "helm-systemd",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1m1by9i37ban3zkznyamp5vxizj8zsz06fdscdhmky1grf6ri4r8",
+ "fetcher": "github",
+ "repo": "Lompik/helm-systemd",
+ "unstable": {
+ "version": [
+ 20180131,
+ 434
+ ],
+ "deps": [
+ "helm",
+ "with-editor"
+ ],
+ "commit": "96f5cd3ee3412539c2f8d145201f47c4f8e53b4f",
+ "sha256": "0wyabh76q2lighd7qxpkzp35fkblxlz8g7p4lpgfwvjid0ixmnvq"
+ }
+ },
+ {
+ "ename": "helm-tail",
+ "commit": "74b235c2ecf8c8f8206670bca3b915deb4b77c2b",
+ "sha256": "0sw97fzpnrk335l3vjaj3nw87cajhzwsjsxx16r0x6npbiv51wd4",
+ "fetcher": "github",
+ "repo": "akirak/helm-tail",
+ "unstable": {
+ "version": [
+ 20181124,
+ 439
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "1f5a6355aa3bdb00b9b0bc93db29c17f0d6701e3",
+ "sha256": "1ad0khw26m22xpdv0iyg5gac92i8m455sznsfh16vxaa98gq0c4q"
+ }
+ },
+ {
+ "ename": "helm-taskswitch",
+ "commit": "3602b1f7b9a75cc82c4bde9ea12b2509465db30f",
+ "sha256": "01yvdbwlixif670f4lffpsk9kvlhgrmh95jw0vc568x0bd3j2a02",
+ "fetcher": "github",
+ "repo": "bdc34/helm-taskswitch",
+ "unstable": {
+ "version": [
+ 20190304,
+ 1414
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "59f7cb99defa6e6bf6e7d599559fa8d5786cf8a9",
+ "sha256": "0bx9fvw0jv1f4xdvf94lgxdzhvx2lpab4gyx71w6dg5wvd5cxzq0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 4
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "de494738f8e5f7d6e681199dd3aad91e5bdb7691",
+ "sha256": "01a4z0x5p94hglcnakxdgi4cq0cvz48c3dg58b7y2cq1nwjdw8d7"
+ }
+ },
+ {
+ "ename": "helm-themes",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "15qs23f467j99wybjd0n6dacgik5ibf96jn00j9fip55v8rp66gj",
+ "fetcher": "github",
+ "repo": "emacsorphanage/helm-themes",
+ "unstable": {
+ "version": [
+ 20200323,
+ 712
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "244121903650c2d25a233d12b378060cf8b010e7",
+ "sha256": "0ii70wn3vadx8a36q2frmsvrmlpz1w58qgn2w3knjivj195knliw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "8c979f4efc6174eed7df5f3b62db955246202818",
+ "sha256": "0rzbdrs5d5a0icpxrqik2iaz8i5bacw6nm2caf75s9w9j0j6s9li"
+ }
+ },
+ {
+ "ename": "helm-tramp",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0wqnabaywkhj1fnc3wpx7czrqbja1hsqwcpixmvv0fyrflmza517",
+ "fetcher": "github",
+ "repo": "masasam/emacs-helm-tramp",
+ "unstable": {
+ "version": [
+ 20190616,
+ 125
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "55e56975fe1456591a293bf60c183c3dda9f788f",
+ "sha256": "0py1k0r15frj67mazfjkdwi8sx5a51ykrrbzvfb73kakq2f55jap"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 9
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "924b5516270b3933e847562e8e14e3888dd24184",
+ "sha256": "19y97ia4zl50wd22gkb7kkhj713imd5jc92l2xnpw04b59b60di1"
+ }
+ },
+ {
+ "ename": "helm-unicode",
+ "commit": "f720b9f9b667bf9ff3080938beab36aa0036dc92",
+ "sha256": "1j95qy2zwdb46dl30ankfx7013l0akc61m14s473j93w320j5224",
+ "fetcher": "github",
+ "repo": "bomgar/helm-unicode",
+ "unstable": {
+ "version": [
+ 20180608,
+ 1407
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "fbeb0c5e741a6f462520884b744d43a9acbe1d34",
+ "sha256": "1aqwjw0jky07swagxnaqcn28inckavvpnlrwj62fljglip87zrc2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "3b2a61dd9d4c9e85946567e07d8e70e276c5136b",
+ "sha256": "1247ghg1jkslgvwbffzsaxabz5l6qszw14vrwgln9smsc42cxjy2"
+ }
+ },
+ {
+ "ename": "helm-w32-launcher",
+ "commit": "fa678329a5081e1affa460c00239dabfd1b9dd82",
+ "sha256": "0bzn2vhspn6lla815qxwsl9gwfyiwgwmnysr6rjpyacmi17d73ri",
+ "fetcher": "github",
+ "repo": "Fanael/helm-w32-launcher",
+ "unstable": {
+ "version": [
+ 20141223,
+ 2014
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "3e59ad62b89dd21d334af0203d445a83eb25dc5b",
+ "sha256": "0xlz9rxx7y9pkrzvxmv42vgys5iwx75zv9g50k8ihwc08z80dhcq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 6
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "01aa370a32900e7521330fba495474f2aa435e19",
+ "sha256": "0s8zp3kx2kxlfyd26yr3lphwcybhbm8qa9vzmxr3kaylwy6jpz5q"
+ }
+ },
+ {
+ "ename": "helm-w3m",
+ "commit": "f683fc9c7990e9ecb8a94808a7d03eb90c5569b1",
+ "sha256": "1rr83ija93iqz74k236hk3v75jk0iwcccwqpqgys7spvrld0b9pz",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-w3m",
+ "unstable": {
+ "version": [
+ 20181029,
+ 726
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "w3m"
+ ],
+ "commit": "c15d926631198d6d759ec8881837bcca5a64963b",
+ "sha256": "0qaqcwhwmckfmg3axiad35azn0l74k1niw4ix0v1bn2vqrxanqcw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "w3m"
+ ],
+ "commit": "280673470672c9fbc57fd6a91defeb9f6641fc8a",
+ "sha256": "0d47mqib4zkfadq26vpy0ih7j18d6n5v4c21wvr4hhg6hg205iiz"
+ }
+ },
+ {
+ "ename": "helm-wikipedia",
+ "commit": "317729c132a993dd14f25876f753c8f1636d7b91",
+ "sha256": "0wnyzqz0q79bl2fmq0wszkhv10wm7ydqvqy4mmi4hi78skqmykq6",
+ "fetcher": "github",
+ "repo": "emacs-helm/helm-wikipedia",
+ "unstable": {
+ "version": [
+ 20200630,
+ 504
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "a6c8b1d1ab5dc0a69cb44bb5f3eb6792ef091147",
+ "sha256": "1him1sqdl15qfjqrkgmnhligwqc6a9liiqndssa1law3bd36c2jb"
+ }
+ },
+ {
+ "ename": "helm-wordnet",
+ "commit": "11626120951afc589beac4cf5a0f49bffa752349",
+ "sha256": "0di8gxsa9r8mzja4akhz0wpgrhlidqyn1s1ix5szplwxklwf2r2f",
+ "fetcher": "github",
+ "repo": "raghavgautam/helm-wordnet",
+ "unstable": {
+ "version": [
+ 20160128,
+ 1507
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "a36dbc6fcb570b812870bc1e190f203e0a0042fc",
+ "sha256": "03a5hzgqak8wg6i2h2p3fr9ij55lqarcsblml8qrnrj27ghcvzzh"
+ }
+ },
+ {
+ "ename": "helm-xcdoc",
+ "commit": "e3352ce89039fb48827b74f22fcf543722a27738",
+ "sha256": "1ikphlnj053i4g1l8r2pqaljvdqglj1yk0xx4vygnw98qyzdsx4v",
+ "fetcher": "github",
+ "repo": "fujimisakari/emacs-helm-xcdoc",
+ "unstable": {
+ "version": [
+ 20160116,
+ 1018
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "a85612149a6d8e18ab309b3db2d222ce39c42049",
+ "sha256": "1yqr5z5sw7schvaq9pmwg79anp806gikm28s6xvrayzyn4idz2n6"
+ }
+ },
+ {
+ "ename": "helm-xref",
+ "commit": "6d1796688ed0d6957557d960ca28e450f9bcb6cf",
+ "sha256": "1wyh25gxqgsc151bv4j5l050z1cz0n3yq174m62ihi1fy1pkra4l",
+ "fetcher": "github",
+ "repo": "brotzeit/helm-xref",
+ "unstable": {
+ "version": [
+ 20191108,
+ 859
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "6b4a8bd91f5eaf82f51bd31b03f6587387fe6983",
+ "sha256": "03b57sm98v25bqyy9d2pccfnlfxkvaxmvismhxmai4kfv8d84azj"
+ }
+ },
+ {
+ "ename": "helm-youtube",
+ "commit": "7537f732091b96b6c1b96c0174895278eba6776a",
+ "sha256": "1qal5q83p06ghn482rflcfklr17mir582r0mvchxabb5ql60dy0b",
+ "fetcher": "github",
+ "repo": "maximus12793/helm-youtube",
+ "unstable": {
+ "version": [
+ 20190101,
+ 1733
+ ],
+ "deps": [
+ "cl-lib",
+ "helm",
+ "request"
+ ],
+ "commit": "e7272f1648c7fa836ea5ac1a61770b4931ab4709",
+ "sha256": "062i1gkwa1rmxaw5mf20vc3nqsj6g6hfbggcglgd3wfn9rckvlqb"
+ }
+ },
+ {
+ "ename": "helm-z",
+ "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+ "sha256": "0vazbn8i0yz59310zq839jr86nwv6hh2mn1a9m8a7jv0l3121hzq",
+ "fetcher": "github",
+ "repo": "zonkyy/helm-z",
+ "unstable": {
+ "version": [
+ 20171204,
+ 325
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "37212220bebea8b9c238cb1bbacd8332b7f26c03",
+ "sha256": "1vz958yiva01yl1qj2pz84savcx8jgkvbywhcp4c3a8x3fikf0yl"
+ }
+ },
+ {
+ "ename": "helm-zhihu-daily",
+ "commit": "27246ec2bad3c85f8bb76aa26ebcd800edfe0d70",
+ "sha256": "0hkgail60s9qhxl0pskqxjvfz93iq1qh1kcmcq0x5kq7d08b911r",
+ "fetcher": "github",
+ "repo": "xuchunyang/helm-zhihu-daily",
+ "unstable": {
+ "version": [
+ 20160625,
+ 1145
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "be27dcc6be1eb97663b65581a9a5c0fc81cfaba7",
+ "sha256": "1s8q97pra27bacvm5knj0sjgj7iqljlhxqiniaw8ij8w4fhcdh93"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "helm"
+ ],
+ "commit": "be27dcc6be1eb97663b65581a9a5c0fc81cfaba7",
+ "sha256": "1s8q97pra27bacvm5knj0sjgj7iqljlhxqiniaw8ij8w4fhcdh93"
+ }
+ },
+ {
+ "ename": "help-find-org-mode",
+ "commit": "572003398d1bba572fa9f6332b25ade9306bf718",
+ "sha256": "149rd61bcvgrwhnhlqriw6fn6fr4pwr4ynmj2bwcp558nwf0py0b",
+ "fetcher": "github",
+ "repo": "EricCrosson/help-find-org-mode",
+ "unstable": {
+ "version": [
+ 20181204,
+ 234
+ ],
+ "commit": "aeda7f92c086dab9d8dfcd580fe80b332887a548",
+ "sha256": "18qj0ssmysfr5hlrayhw8m7a1nr1fpzsd5hn15kzbi7kzdnmc18w"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "c6fa2c8a8e9381572190010a9fa01f2be78f2790",
+ "sha256": "1szjqaw31r5070wpbj5rcai124c66bs32x35w1hsxyvzs5k85wg9"
+ }
+ },
+ {
+ "ename": "helpful",
+ "commit": "889d34b654de13bd413d46071a5ff191cbf3d157",
+ "sha256": "17w9j5v1r2c8ka1fpzbr295cgnsbiw8fxlslh4zbjqzaazamchn2",
+ "fetcher": "github",
+ "repo": "Wilfred/helpful",
+ "unstable": {
+ "version": [
+ 20200506,
+ 816
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "elisp-refs",
+ "f",
+ "s"
+ ],
+ "commit": "c0662aa07266fe204f4e6d72ccaa6af089400556",
+ "sha256": "1k61k7hhrfi8rzsniy15almvnvdsv85l7bmlaqs695pvanr5zlgh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 17
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "elisp-refs",
+ "f",
+ "s"
+ ],
+ "commit": "429f1fb5f588cc6124513335e8eca3b4ef15735a",
+ "sha256": "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"
+ }
+ },
+ {
+ "ename": "hemera-theme",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "00d8dmmn7mhzj6ai0qgdkj4hy1qpdcyiriky97prydibjvljq239",
+ "fetcher": "github",
+ "repo": "guidoschmidt/emacs-hemera-theme",
+ "unstable": {
+ "version": [
+ 20180916,
+ 924
+ ],
+ "commit": "b67c902b210b37b00cac68726822404543147ba8",
+ "sha256": "1q31kz5p97pby26lyb6r0jfcx5pdyax3sfba4lp8dzmxpisz2g2p"
+ }
+ },
+ {
+ "ename": "hemisu-theme",
+ "commit": "bb4dd85ccbd2c8936e59ca5c5e6234290b8bdf1b",
+ "sha256": "0byzrz74yvk12m8dl47kkmkziwrrql193q72qx974zbqdj8h2sph",
+ "fetcher": "github",
+ "repo": "andrzejsliwa/hemisu-theme",
+ "unstable": {
+ "version": [
+ 20130508,
+ 1844
+ ],
+ "commit": "5c206561aa2c844ecdf3e3b672c3235e559ddd7f",
+ "sha256": "178dvigiw162m01x7dm8pf61w2n3bq51lvk5q7jzpb9s35pz1697"
+ }
+ },
+ {
+ "ename": "hercules",
+ "commit": "c0a3b713c6c8465dc461d9776ccd27f06659993e",
+ "sha256": "1ggb8ax18nvcrcf1rqf8lkjjxb90kl05ivk0110h6pb9270x03hy",
+ "fetcher": "gitlab",
+ "repo": "jjzmajic/hercules.el",
+ "unstable": {
+ "version": [
+ 20200420,
+ 747
+ ],
+ "deps": [
+ "which-key"
+ ],
+ "commit": "557da39878d0637395fdded91243b340c37eff7b",
+ "sha256": "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "which-key"
+ ],
+ "commit": "557da39878d0637395fdded91243b340c37eff7b",
+ "sha256": "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"
+ }
+ },
+ {
+ "ename": "heroku-theme",
+ "commit": "348f0e7aec86c3efd87ab06849a5f1ce90ba23e2",
+ "sha256": "0mchh9y3pqwamry6105qrv1bp1qg1g0jmz7rzc5svz9giynypwf9",
+ "fetcher": "github",
+ "repo": "jonathanchu/heroku-theme",
+ "unstable": {
+ "version": [
+ 20150523,
+ 219
+ ],
+ "commit": "8083643fe92ec3a1c3eb82f1b8dc2236c9c9691d",
+ "sha256": "15hk0v6ck076mahsz4spq75jcnv587fx4d3w50c7bdh423fl0xvx"
+ }
+ },
+ {
+ "ename": "hexo",
+ "commit": "21de1b7db0fa4af4fc0014207d41893a0713d738",
+ "sha256": "0fgrxf6gdw0kzs6x6y8qr511cazaaiyk7licgkgznngj4w6g7jyn",
+ "fetcher": "github",
+ "repo": "kuanyui/hexo.el",
+ "unstable": {
+ "version": [
+ 20200416,
+ 1410
+ ],
+ "commit": "d600b6c2d51959f1331c8abf3953365544322afa",
+ "sha256": "07w6jlq3z5y019n5kplqn38gw60ffk2yx4vchp6qgif98lhcjiyr"
+ }
+ },
+ {
+ "ename": "hfst-mode",
+ "commit": "e324bb114997f9cc57d76d8a66fec4ff4d1d71fe",
+ "sha256": "1w342n5k9ak1m5znysvrplpr9dhmi7hxbkr4d1dx51dn0azbpjh7",
+ "fetcher": "github",
+ "repo": "unhammer/hfst-mode",
+ "unstable": {
+ "version": [
+ 20160708,
+ 1202
+ ],
+ "commit": "ac1bb9dd92545d3e7fdc05c83996c227cc15c6b8",
+ "sha256": "0zsz8542kh51clzy8j7g29bwm8zcnfxm9sjzh3xjpqk2ziqf4ii6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "commit": "ac1bb9dd92545d3e7fdc05c83996c227cc15c6b8",
+ "sha256": "0zsz8542kh51clzy8j7g29bwm8zcnfxm9sjzh3xjpqk2ziqf4ii6"
+ }
+ },
+ {
+ "ename": "hg-histedit",
+ "commit": "ce252397ab16ff9cbb965a036710d8b843db267f",
+ "sha256": "0c09p4pvv53wpm68sn251x52lqz0zfxq98aazhwbpp7i3jxbzq2b",
+ "fetcher": "github",
+ "repo": "jojojames/hg-histedit",
+ "unstable": {
+ "version": [
+ 20190707,
+ 11
+ ],
+ "deps": [
+ "with-editor"
+ ],
+ "commit": "2448d00bc390fed3e53091d968ec1222c8e7e35b",
+ "sha256": "0qp29yiyplv8h0z2yk5h0473a7nj401h14gi3fqsxqq9brx3s9jy"
+ }
+ },
+ {
+ "ename": "hgignore-mode",
+ "commit": "f3e325c84d0a30789fab7e897b4fe5040c5093ba",
+ "sha256": "0ja71l3cghhn1c6w2pff80km8h8xgzf0j9gcldfyc72ar6ifhjkj",
+ "fetcher": "github",
+ "repo": "omajid/hgignore-mode",
+ "unstable": {
+ "version": [
+ 20160501,
+ 7
+ ],
+ "commit": "7aa9f3b8a9c610dbd80b952061b40194e1d9c5bd",
+ "sha256": "0l22sqi9lmy25idh231p0hgq22b3dxwb9wq60yxk8dck9zlkv7rr"
+ }
+ },
+ {
+ "ename": "hgrc-mode",
+ "commit": "31a24d95efce2f04f0b555ed16b8d3d5a3aa255a",
+ "sha256": "18400dhdackdpndkz6shjmd4klfh6b4vlccnnqlzf3a93alw6vqf",
+ "fetcher": "github",
+ "repo": "omajid/hgrc-mode",
+ "unstable": {
+ "version": [
+ 20150409,
+ 2043
+ ],
+ "commit": "314e8320b82cc1ce74b1bd372f296252e7a23090",
+ "sha256": "1ky5s7hzqbxgasdz285q3rnvzh3irwsq61rlivjrcxyfdxdjbbvp"
+ }
+ },
+ {
+ "ename": "hi2",
+ "commit": "ba880f0130707098e5b648f74d14e151b0110e4e",
+ "sha256": "1wxkjg1jnw05lqzggi20jy2jl20d8brvv76vmrf6lnz62g6jv9h2",
+ "fetcher": "github",
+ "repo": "nilcons/hi2",
+ "unstable": {
+ "version": [
+ 20141005,
+ 1931
+ ],
+ "commit": "c9d199727b5cdcb9e36a972b38131ce4611fd6c8",
+ "sha256": "1s08sgbh5v59lqskd0s1dscs6dy7z5mkqqkabs3gd35agbfvbmlf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "c9d199727b5cdcb9e36a972b38131ce4611fd6c8",
+ "sha256": "1s08sgbh5v59lqskd0s1dscs6dy7z5mkqqkabs3gd35agbfvbmlf"
+ }
+ },
+ {
+ "ename": "hide-lines",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "18h5ygi6idpb5wjlmjjvjmwcw7xiljkfxdvq7pm8wnw75p705x4d",
+ "fetcher": "github",
+ "repo": "emacsorphanage/hide-lines",
+ "unstable": {
+ "version": [
+ 20151127,
+ 1840
+ ],
+ "commit": "331122bf19361130351cfe55968c2a7820329eb3",
+ "sha256": "183l0sx8zn3jv1fqa3xj7a6fd792sp50jyhm50j3hy7c54m4capf"
+ },
+ "stable": {
+ "version": [
+ 20130623,
+ 1701
+ ],
+ "commit": "4bfb4c6f4769bd6c637e4c18bbf65506832fc9f0",
+ "sha256": "01cy7v9ql70bsvjz3idq23jpyb8jb61bs9ff8vf5y3fj45pc32ps"
+ }
+ },
+ {
+ "ename": "hide-mode-line",
+ "commit": "2af28365f9fbc6ae71043a67966490c5d18a6095",
+ "sha256": "0yl6aicpib5h1ckqi3gyilh2nwvp8gf1017n1w1755j01gw1p9hl",
+ "fetcher": "github",
+ "repo": "hlissner/emacs-hide-mode-line",
+ "unstable": {
+ "version": [
+ 20190922,
+ 115
+ ],
+ "commit": "88888825b5b27b300683e662fa3be88d954b1cea",
+ "sha256": "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "commit": "88888825b5b27b300683e662fa3be88d954b1cea",
+ "sha256": "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"
+ }
+ },
+ {
+ "ename": "hidepw",
+ "commit": "f2ee7663bcedaffa935b8379cc77168035cb1f14",
+ "sha256": "0qnvlcjldg1mcb5ilcy538sbf294glrx5g1a7vbmspdm3wby7lna",
+ "fetcher": "github",
+ "repo": "jekor/hidepw",
+ "unstable": {
+ "version": [
+ 20200326,
+ 112
+ ],
+ "commit": "73f099da79d73fe4087472df3469d8b9b20a59f2",
+ "sha256": "1lcm5nfpcrvy3700g1zzi89j59n0508xvk3v66x9px5aq6a8xk2j"
+ }
+ },
+ {
+ "ename": "hideshow-org",
+ "commit": "3de48eee24a5cca9c8b7dba2d6d01dfbc679d8d6",
+ "sha256": "1bzx5ii06r64nra92zv1dvw5zv3im7la2dd3md801hxyfrpb74gc",
+ "fetcher": "github",
+ "repo": "shanecelis/hideshow-org",
+ "unstable": {
+ "version": [
+ 20120223,
+ 2250
+ ],
+ "commit": "16419e52e6cdd2f46f755144c0ab11ce00d1a626",
+ "sha256": "1dr06b9njzih8z97k62l9w3x0a801x4bp043zvk7av9qkz8izl2r"
+ }
+ },
+ {
+ "ename": "hierarchy",
+ "commit": "7aea238a2d14e9f58c0474251984b6c617b6854d",
+ "sha256": "0fh1a590pdq21b4mwh9wrfsmm2lw2faw18r35cdzy8fgyf89yimp",
+ "fetcher": "github",
+ "repo": "DamienCassou/hierarchy",
+ "unstable": {
+ "version": [
+ 20190425,
+ 842
+ ],
+ "commit": "be2634dc1f08a5e781d02ef301c727246863756f",
+ "sha256": "05v3p2n92xjz035m5p0m5wd85ygngbvjd8y09r5sx1mi5ya2k0v2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "commit": "4ab1372c252847c316f8978a81e2fe92ff79579e",
+ "sha256": "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"
+ }
+ },
+ {
+ "ename": "highlight",
+ "commit": "38433e95f73ab20f27254a084d0b245c6e62d882",
+ "sha256": "0ik2kci2y404zzvs78h74v21ssgi6f0jdzzbq45fhdhjra02kzzz",
+ "fetcher": "github",
+ "repo": "emacsmirror/highlight",
+ "unstable": {
+ "version": [
+ 20190710,
+ 1527
+ ],
+ "commit": "9258a2b8362d737115cbd87618f947eadb140411",
+ "sha256": "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"
+ }
+ },
+ {
+ "ename": "highlight-blocks",
+ "commit": "eaf524488c408483ea8f2c3a71174b1b5fc3f5da",
+ "sha256": "1a32iv5kgf6g6ygbs559w156dh578k45m860czazfx0d6ap3k5m1",
+ "fetcher": "github",
+ "repo": "Fanael/highlight-blocks",
+ "unstable": {
+ "version": [
+ 20190318,
+ 1557
+ ],
+ "commit": "33cf3d36662faa36c86c8d53e4d5a3922efa3eb8",
+ "sha256": "04v5y04v4n06ig8zld6axrxpz07s70sn5ckxcy8gnz5qm0zvr7mx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 17
+ ],
+ "commit": "33cf3d36662faa36c86c8d53e4d5a3922efa3eb8",
+ "sha256": "04v5y04v4n06ig8zld6axrxpz07s70sn5ckxcy8gnz5qm0zvr7mx"
+ }
+ },
+ {
+ "ename": "highlight-context-line",
+ "commit": "00df721571ff67fe158251fa843c8f515ded3469",
+ "sha256": "0zmqcfsr2j0m2l76c8h6lmdqwrd1b38gi6yp5sdib0m4vj9d0pnd",
+ "fetcher": "github",
+ "repo": "ska2342/highlight-context-line",
+ "unstable": {
+ "version": [
+ 20181122,
+ 2203
+ ],
+ "commit": "6b334e8207c780835a05b6909b4d826898c33d26",
+ "sha256": "0pzb6pnshcglbjpfk7y2s8qissmldr27phyh1v3mvq2q09pyskb6"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "c3257c0ca9dba76167bbd7e0718a65ecd26ef26f",
+ "sha256": "10mv1hd33msafp3r62p9zhwivy0l876ci9xjh7nqc9621qxxd5rw"
+ }
+ },
+ {
+ "ename": "highlight-defined",
+ "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
+ "sha256": "1vjxm35wf4c2qphpkjh57hf03a5qdssdlmfj0n0gwxsdw1q5rpms",
+ "fetcher": "github",
+ "repo": "Fanael/highlight-defined",
+ "unstable": {
+ "version": [
+ 20181106,
+ 1718
+ ],
+ "commit": "8e05be23e555ab05edc6fb188f5ce28ef495c946",
+ "sha256": "1xqs8shzka47ns4a60ba2i2kgjcq9vl9w1518ffhb4x2x41lr4ri"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "commit": "9cc03c7136b56c04ea053fbe08a3a4a6af26b90e",
+ "sha256": "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"
+ }
+ },
+ {
+ "ename": "highlight-doxygen",
+ "commit": "0153353e5abfa7513e74485049eaa384aaddbd58",
+ "sha256": "0jkzf2mqn7y465c77vglaj3mr0cpfy2z810mywd1q21d71lsqmbl",
+ "fetcher": "github",
+ "repo": "Lindydancer/highlight-doxygen",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1713
+ ],
+ "commit": "eec4874e2e89d4eb39091aad89a67dff8f8ec84c",
+ "sha256": "0r3rv1px43r265716l3g20c1ss4381h1mc1kjxin22vdmrj6cmxy"
+ }
+ },
+ {
+ "ename": "highlight-escape-sequences",
+ "commit": "cd087f2c5a9524986b0f2c7fd7efd1f296363101",
+ "sha256": "0938b29cqapid9v9q4w2jwh8kdb0p70qwzy9xm2nxaairm7436d6",
+ "fetcher": "github",
+ "repo": "dgutov/highlight-escape-sequences",
+ "unstable": {
+ "version": [
+ 20171117,
+ 1237
+ ],
+ "commit": "08d846a7aa748209d65fecead2b6a766c3e5cb41",
+ "sha256": "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"
+ }
+ },
+ {
+ "ename": "highlight-function-calls",
+ "commit": "2d1eed3f9af218d21ea8db37ee91888e23e59bd5",
+ "sha256": "0wmxijkhx74da3ygnvzsdvbh2iii4f7424wmm01b5skbr7qva690",
+ "fetcher": "github",
+ "repo": "alphapapa/highlight-function-calls",
+ "unstable": {
+ "version": [
+ 20170908,
+ 500
+ ],
+ "commit": "f7a1eaf95fc64cc0db4d0567f9ff79ec4ae04787",
+ "sha256": "1gbj1awjp69352a5p49ldimvij5mj8cngjp2sh45qw1cm5dpq653"
+ }
+ },
+ {
+ "ename": "highlight-indent-guides",
+ "commit": "c8acca65a5c134d4405900a43b422c4f4e18b586",
+ "sha256": "00ghp677qgb5clxhdjarfl8ab3mbp6v7yfsldm9bn0s14lyaq5pm",
+ "fetcher": "github",
+ "repo": "DarthFennec/highlight-indent-guides",
+ "unstable": {
+ "version": [
+ 20200528,
+ 2128
+ ],
+ "commit": "a4f771418e4eed1f3f7879a43af28cf97747d41c",
+ "sha256": "0zwp7kh10b0gxwp6128am94fwc5lmn73qar13qzyh3r1jsc8f95y"
+ }
+ },
+ {
+ "ename": "highlight-indentation",
+ "commit": "31c443de5088410c0fe1b1c18f664b33ad259277",
+ "sha256": "0iblrrbssjwfn71n8xxjcl98pjv1qw1igf3hlz6mh8740fsca3d6",
+ "fetcher": "github",
+ "repo": "antonj/Highlight-Indentation-for-Emacs",
+ "unstable": {
+ "version": [
+ 20181204,
+ 839
+ ],
+ "commit": "d03803f2c06749c430443a3d24e039cbafc9c58f",
+ "sha256": "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "commit": "cd6d8168ccb04c6c0394f42e9512c58f23c01689",
+ "sha256": "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"
+ }
+ },
+ {
+ "ename": "highlight-leading-spaces",
+ "commit": "74a4af76be764896cef169e24994630498cf19c1",
+ "sha256": "0h2ww2vqmarghf4zg0wbwn0wgndmkcjy696mc885rwavck2dav4p",
+ "fetcher": "github",
+ "repo": "mrBliss/highlight-leading-spaces",
+ "unstable": {
+ "version": [
+ 20151216,
+ 1222
+ ],
+ "commit": "840db19d863dd97993fd9f893f5be501627b6354",
+ "sha256": "1vy6j63jp83ljdqkrqglpys74yfh7p61sd0lqiwczgr5nqyc60rl"
+ }
+ },
+ {
+ "ename": "highlight-numbers",
+ "commit": "882e3a4877ddd22cc52f56f0ce3d55b6e4831c7a",
+ "sha256": "1bywrjv9ybr65mwkrxggb52jdqn16z8acgs5vqm0faq43an8i5yv",
+ "fetcher": "github",
+ "repo": "Fanael/highlight-numbers",
+ "unstable": {
+ "version": [
+ 20181013,
+ 1744
+ ],
+ "deps": [
+ "parent-mode"
+ ],
+ "commit": "8b4744c7f46c72b1d3d599d4fb75ef8183dee307",
+ "sha256": "075ip8h7bdin0yvvhn5nkwnz58arlaw1imr866ghp12q5rl4shmc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "deps": [
+ "parent-mode"
+ ],
+ "commit": "b7adef0286aaa5bca8e98a12d0ffed3a880e25aa",
+ "sha256": "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"
+ }
+ },
+ {
+ "ename": "highlight-operators",
+ "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203",
+ "sha256": "1l0ci20r0qm4lc9chvvwxgyi3vg41n3ccj0csfgzilzicsvjs9ic",
+ "fetcher": "github",
+ "repo": "jpkotta/highlight-operators",
+ "unstable": {
+ "version": [
+ 20170213,
+ 2220
+ ],
+ "commit": "7696b43419505d6e3511ad2781f9f1dd3c55ef8c",
+ "sha256": "1h5whrc1iphzq0g8x9mmkhjkbmbdg9i9bvr1y8zrwrs8za8k127y"
+ }
+ },
+ {
+ "ename": "highlight-parentheses",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1d38wxk5bwblddr74crzwjwpgyr8zgcl5h5ilywg35jpv7n66lp5",
+ "fetcher": "github",
+ "repo": "tsdh/highlight-parentheses.el",
+ "unstable": {
+ "version": [
+ 20180704,
+ 1102
+ ],
+ "commit": "f0bd58c8dadd2db703b7bfd09e911b5fda05b3df",
+ "sha256": "14jzh0vr2sig2ql1iq2x7svvk8ayvy9ahz04y407f53h70ifbmdl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "5aa800a68e3795716de1e7f2722e836781190f31",
+ "sha256": "08ld4wjrkd77cghmrf1n2hn2yzid7bdqwz6b1rzzqaiwxl138iy9"
+ }
+ },
+ {
+ "ename": "highlight-quoted",
+ "commit": "93b5ba18e4bc31ca60aee9cb4674586cd8523bcf",
+ "sha256": "0x6gxi0jfxvpx7r1fm43ikxlxilnbk2xbhdy9xivhgmmdyqiqqkl",
+ "fetcher": "github",
+ "repo": "Fanael/highlight-quoted",
+ "unstable": {
+ "version": [
+ 20140916,
+ 1822
+ ],
+ "commit": "24103478158cd19fbcfb4339a3f1fa1f054f1469",
+ "sha256": "1gq8inxfni9zgz2brqm4nlswgr8b0spq15wr532xfrgr456g10ks"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "cdd7164f9ad3a9929387c08af641ef6f5f013f4f",
+ "sha256": "1ahg9qzss67jpw0wp2izys6lyss4nqjy9320fpa4vdx39msdmjjb"
+ }
+ },
+ {
+ "ename": "highlight-refontification",
+ "commit": "d6c59f2b5cf1594248e8365b6ce3324f493c5647",
+ "sha256": "0cm9p4d7yhkz5a88m0y4646a6b9lb2ha7q12fcrdikyckpmbkqss",
+ "fetcher": "github",
+ "repo": "Lindydancer/highlight-refontification",
+ "unstable": {
+ "version": [
+ 20170211,
+ 2024
+ ],
+ "commit": "32632897d88c4611fadb08517ca00ef5cbc989b6",
+ "sha256": "1k6af947h70ivkj31mk3nv2vkxlfpqvpwq8za53n2l7adsjdlf73"
+ }
+ },
+ {
+ "ename": "highlight-stages",
+ "commit": "46884aa6588f55d6f688477a5e9f528f57673131",
+ "sha256": "0r4kmjmrpi38q3y0q9h5xkxh7x728ha2nbnc152lzw6zfsxnm4x4",
+ "fetcher": "github",
+ "repo": "zk-phi/highlight-stages",
+ "unstable": {
+ "version": [
+ 20161212,
+ 1457
+ ],
+ "commit": "29cbc5b78261916da042ddb107420083da49b271",
+ "sha256": "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"
+ }
+ },
+ {
+ "ename": "highlight-symbol",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "01zw7xrkpgc89m55d60dx3s3kjajh5c164f64s2fzrgl9xj92h0r",
+ "fetcher": "github",
+ "repo": "nschum/highlight-symbol.el",
+ "unstable": {
+ "version": [
+ 20160102,
+ 2009
+ ],
+ "commit": "7a789c779648c55b16e43278e51be5898c121b3a",
+ "sha256": "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "6136dac6d4328c19077a838dfbae2efc4caa4db2",
+ "sha256": "09z13kv2g21kjjkkm3iyaz93sdjmdy2d563r8n7r7ng94acrn7f6"
+ }
+ },
+ {
+ "ename": "highlight-thing",
+ "commit": "84b6cb403ff9a588771d051e472596f4e3cc974d",
+ "sha256": "0rvdb1lx9xn9drqw0sw9ih759n10g7k0af39w6n8g0wfr67p96w1",
+ "fetcher": "github",
+ "repo": "fgeller/highlight-thing.el",
+ "unstable": {
+ "version": [
+ 20181229,
+ 1301
+ ],
+ "commit": "561d08a26f78f18d405d4f371f1c813db094e2f3",
+ "sha256": "1mqxkcdac8qqzxi1jhnqqr98zj272rkk28m6r29v6x34hgdyjwdz"
+ }
+ },
+ {
+ "ename": "highlight-unique-symbol",
+ "commit": "78b7caccef56cd2f1a9d8001417af52cc06d6573",
+ "sha256": "0lwl8pkmq0q4dvyflarggnn8vzpvk5hhcnk508r6xml2if1sg9zx",
+ "fetcher": "github",
+ "repo": "hitode909/emacs-highlight-unique-symbol",
+ "unstable": {
+ "version": [
+ 20130612,
+ 542
+ ],
+ "deps": [
+ "deferred"
+ ],
+ "commit": "4141bf86a94e30d94d9af9c29d40b16886226e1c",
+ "sha256": "0hhc2l4pz6q8injpplv6b5l08l8q2lnjdpwabp7gwmhraq54rhjx"
+ }
+ },
+ {
+ "ename": "highlight2clipboard",
+ "commit": "87afa08061dc406528e7666cd4ee16995839b2d9",
+ "sha256": "19r7abbpm31b0azf2v3xn0rjagg9h01i8g72qapp8dhqb4d9n9r0",
+ "fetcher": "github",
+ "repo": "Lindydancer/highlight2clipboard",
+ "unstable": {
+ "version": [
+ 20151020,
+ 1840
+ ],
+ "deps": [
+ "htmlize"
+ ],
+ "commit": "6ce58a060d9c5843ccb8c79ec2bba7858c68ac15",
+ "sha256": "06nnqry36ncqacfzd8yvc4q59bwk3vgf9a14rkpph2hk2rfvq2m6"
+ }
+ },
+ {
+ "ename": "hindent",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1f3vzgnqigwbwvglxv0ziz3kyp5dxjraw3vlghkpw39f57mky4xz",
+ "fetcher": "github",
+ "repo": "chrisdone/hindent",
+ "unstable": {
+ "version": [
+ 20180518,
+ 902
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "50242bb64e946555defc9fff11ab32bcb05300b6",
+ "sha256": "0k062mswihnpl1h7r0w37siv57fi5k90956ji2vix9r9qc33zsxc"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1583be4a8a01b765841f7306284528ae713abb7b",
+ "sha256": "1l8v3vq3yw7zr1yxyscfw8lggcf0klnyszhv18505c6myybp2dkp"
+ }
+ },
+ {
+ "ename": "hippie-exp-ext",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "142s7cmgjnqdmac21yps3b071sv18lw068kmxchyxb0zsa067g9l",
+ "fetcher": "github",
+ "repo": "rubikitch/hippie-exp-ext",
+ "unstable": {
+ "version": [
+ 20160502,
+ 2326
+ ],
+ "commit": "4eda13f90da51ab217d024701f4c30f91ffcb90e",
+ "sha256": "141ikpyns1gd6kjply8m9jy9gifx5xdw5bn4p29hrxgiw994a78d"
+ }
+ },
+ {
+ "ename": "hippie-expand-slime",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0kxyv1lpkg33qgfv1jfqx03640py7525bcnc9dk98w6y6y92zf4m",
+ "fetcher": "github",
+ "repo": "purcell/hippie-expand-slime",
+ "unstable": {
+ "version": [
+ 20170723,
+ 146
+ ],
+ "commit": "39bbae94896a62854d31754debdfae71d35fec62",
+ "sha256": "1l2j5k4jk8jpm1vdf0z5zwa287859afsgd3gda778sdsiy38l6r7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "de31fbc9f9d55891a006463bcee7670b47084015",
+ "sha256": "0mzk4agkcaaw7gryi0wrxv0blqndqsjf1ivdvr2nrnqi798sdhbr"
+ }
+ },
+ {
+ "ename": "hippie-namespace",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "1bzjhq116ci9c9f0aw121fn3drmg2pw5ny1w6wcasa4p30syxxf0",
+ "fetcher": "github",
+ "repo": "rolandwalker/hippie-namespace",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "commit": "d0d0f15c67ab8bef5e9d1e29a89ecd3613a60b49",
+ "sha256": "0b5wrid428s11afc48d6mdifmd31gmzyrj9zcpd3jwk63ydiihdc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 8
+ ],
+ "commit": "79a662dfe9e61341e071b879f4f9101ca027ad10",
+ "sha256": "0nfr8ad0klqwi97fjchvwx9mfc672lhv3ll166sr8vn6jlh7rkv0"
+ }
+ },
+ {
+ "ename": "historian",
+ "commit": "f16dacf64c52767c0c8aef653ac5d1a7a3bd0883",
+ "sha256": "00cghcyb3liz2prgygjwsw82d9h70zjddnbf7dvglmj7ph9wn9ab",
+ "fetcher": "github",
+ "repo": "PythonNut/historian.el",
+ "unstable": {
+ "version": [
+ 20200203,
+ 1927
+ ],
+ "commit": "ac1bea7d99dd6965c72fabeb72d5fdc38c5380a4",
+ "sha256": "13pray3iapy6vbd1y1y7fqcnjpsvgfz2z7j1a1awzd8ifp12g9cp"
+ }
+ },
+ {
+ "ename": "history",
+ "commit": "f51d4cc6521546c99197adeb35459fcd53bd67d4",
+ "sha256": "0s8pcz53bk1w4h5847204vb6j838vr8za66ni1b2y4pas76zjr5g",
+ "fetcher": "github",
+ "repo": "boyw165/history",
+ "unstable": {
+ "version": [
+ 20160821,
+ 1602
+ ],
+ "commit": "5317663fb45bbd5e96d258cb0807dcc266ce67ff",
+ "sha256": "1ghbpfmmp5p0wvivd79165dx5kia8qkmac3a6asg2d6l1h9y58n1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "adef53ecc2f6067bb61f020a2b66c5185a51632d",
+ "sha256": "0dy98sg92xvnr4algm2v2bnjcdwzv0b0vqk0312b0ziinkzisas1"
+ }
+ },
+ {
+ "ename": "historyf",
+ "commit": "a67279875c19475433fa13625c95ee5855962a59",
+ "sha256": "15pcaqfjpkfwcy46yqqw10q8kpw7aamcg0gr4frbdgzbv0yld08s",
+ "fetcher": "github",
+ "repo": "k1LoW/emacs-historyf",
+ "unstable": {
+ "version": [
+ 20151124,
+ 159
+ ],
+ "commit": "196c058ceb092fdd56b0e4ce85b7e714d6f72224",
+ "sha256": "0fgm1m9mq1zn5gnrynf332hamif05qhh8haqci7gii7crzy47c0g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 9
+ ],
+ "commit": "64ab6c9d2cd6dec6982622bf675326e011373cd2",
+ "sha256": "1mxicha6m61qxz1mv9z76x4g9fpqk4ch9i6jf7nnpxd6x4xz3f7z"
+ }
+ },
+ {
+ "ename": "hive",
+ "commit": "b167265dff60950823a5e98a299462b2b535b9a9",
+ "sha256": "1marz8gmk824hb0nkhaw48d4qw1xjk1aad27gviya7f5ilypxrya",
+ "fetcher": "github",
+ "repo": "r0man/hive-el",
+ "unstable": {
+ "version": [
+ 20131217,
+ 1512
+ ],
+ "deps": [
+ "sql"
+ ],
+ "commit": "11b5172e081ad8079fc78758bef6f306f82ae32b",
+ "sha256": "097lrj9lgfa7szww324hlqywwkbi31n1pxfqyg0zbfj45djkp9bx"
+ }
+ },
+ {
+ "ename": "hiwin",
+ "commit": "5f050fd2b1038dce05a1302d3670933546f86525",
+ "sha256": "0klhxwxsz7xan2vsknw79r1dj4qhhjbfpddr67mk9qzccp8q0w8g",
+ "fetcher": "github",
+ "repo": "yoshida-mediba/hiwin-mode",
+ "unstable": {
+ "version": [
+ 20150825,
+ 827
+ ],
+ "commit": "6ee8ed051405653bd9b7332d7e9fbb591d954051",
+ "sha256": "177blksgncxpxd1zi9kmbcfjnpd3ll1szjxiyc4am8a6hs1dyyqk"
+ }
+ },
+ {
+ "ename": "hl-anything",
+ "commit": "f38d26ede4e2e1d495a02c68e3b5041702b032e8",
+ "sha256": "0czpc82j5hbzprc66aall72lqnk38dxgpzx4rs8sbx95cag12dxa",
+ "fetcher": "github",
+ "repo": "hl-anything/hl-anything-emacs",
+ "unstable": {
+ "version": [
+ 20160422,
+ 1708
+ ],
+ "commit": "8696bc55a8cba408f0fc83a907a9ec529d79e558",
+ "sha256": "10ps1rb5fqwaw4lz3nz2rbsry4y81asmi5557g229h8xjhp6gpnm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 9
+ ],
+ "commit": "de631c87d3a6602cdbf84c1623558334fda354fa",
+ "sha256": "0889dzrwizpkyh3wms13k8zx27ipsrsxfa4j4yzk4cwk3aicckcr"
+ }
+ },
+ {
+ "ename": "hl-block-mode",
+ "commit": "68b7cb0ffe90cd56e2ca6e91e33668be586a1da7",
+ "sha256": "17ghc2hbvckp68blk8izwmx6far9ampalik2f9idz27982h49ia8",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-hl-block-mode",
+ "unstable": {
+ "version": [
+ 20200404,
+ 702
+ ],
+ "commit": "6dc75e71b0b179d7c087cf7de51823f5810d671a",
+ "sha256": "142nrxq72dkl45lq93c076nl2ifdl6vdgiydpcs4lwg0crja8qzl"
+ }
+ },
+ {
+ "ename": "hl-fill-column",
+ "commit": "68c40d7b6af664e01083b78c60b6a8e66b278a4e",
+ "sha256": "1kv77zfz1rd60cajjgljn8b04j6szqwwc3ialfxf6wdzh1w28jd3",
+ "fetcher": "github",
+ "repo": "laishulu/hl-fill-column",
+ "unstable": {
+ "version": [
+ 20200607,
+ 757
+ ],
+ "deps": [
+ "names"
+ ],
+ "commit": "5782a91ba0182c4e562fa0db6379ff9dd472856b",
+ "sha256": "0sfki2844yjlvnjlaia0n46af3c5y1bi74x91icwxccqwlkyg8jg"
+ }
+ },
+ {
+ "ename": "hl-indent",
+ "commit": "3aa6ce8f3d1349e28dd9dea8396c38257e3cea2f",
+ "sha256": "1z42kcwcyinjay65mv042ijh4xfaaiyri368g0sjw0fflsg0ikcr",
+ "fetcher": "github",
+ "repo": "ikirill/hl-indent",
+ "unstable": {
+ "version": [
+ 20170429,
+ 2104
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bdb2e0177a7c8b29af26998e688b856adc6ded93",
+ "sha256": "0fwb64ja5ij97308pnd7g6l5mascavcp7jcar8igxv9yyqnw6pfi"
+ }
+ },
+ {
+ "ename": "hl-sentence",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "16sjfs0nnpwzj1cqfna9vhmxgznwwhb2qdmjci25hlgrdxwwyahs",
+ "fetcher": "github",
+ "repo": "milkypostman/hl-sentence",
+ "unstable": {
+ "version": [
+ 20171018,
+ 1519
+ ],
+ "commit": "86ae38d3103bd20da5485cbdd59dfbd396c45ee4",
+ "sha256": "1rzc74ckj06qs8kq2bd1cgqvgjd2qc3zxmk7bvgg6dy2m9nj52cm"
+ },
+ "stable": {
+ "version": [
+ 3
+ ],
+ "commit": "f88882772f1a29fabb54194cc8aacd80d7f5b085",
+ "sha256": "1hgigbgppdhmr7rc901r95kyydjk05dck8mwbryh7kpglns365fa"
+ }
+ },
+ {
+ "ename": "hl-todo",
+ "commit": "7c262f6a1a10e8b3cc30151cad2e34ceb66c6ed7",
+ "sha256": "1iyh68xwldj1r02blar5zi01wnb90dkbmi67vd6h78ksghl3z9j4",
+ "fetcher": "github",
+ "repo": "tarsius/hl-todo",
+ "unstable": {
+ "version": [
+ 20200813,
+ 1419
+ ],
+ "commit": "0598b98f63b623c1778cbd2e2f60b774b7a311b9",
+ "sha256": "1y57q3s6hrjd134mkwzcz5ii2jichvccpvc6bcj1vfl4d7yrxsal"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 2
+ ],
+ "commit": "3bba4591c54951d2abab113ec5e58a6319808ca9",
+ "sha256": "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"
+ }
+ },
+ {
+ "ename": "hledger-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "15s8rqc94z70jzv13961nvcm9a9qadq04pf0m6xrzf8qqk71zn52",
+ "fetcher": "github",
+ "repo": "narendraj9/hledger-mode",
+ "unstable": {
+ "version": [
+ 20191012,
+ 1046
+ ],
+ "deps": [
+ "async",
+ "htmlize",
+ "popup"
+ ],
+ "commit": "8206f3c5d8e5b9b084733879191ec3724b60494d",
+ "sha256": "16y3xb8kc4j72gv1d59g4jw21q53i474hiksa6dzxvxkzva4wzf9"
+ }
+ },
+ {
+ "ename": "hlint-refactor",
+ "commit": "384ffc463cc6edb4806f8da68bd251e662718e65",
+ "sha256": "1311z6y7ycwx0mj67bya7a39j5hiypg72y6yg93dhgpk23wk7frq",
+ "fetcher": "github",
+ "repo": "mpickering/hlint-refactor-mode",
+ "unstable": {
+ "version": [
+ 20190115,
+ 900
+ ],
+ "commit": "c4307f86aad6d02e32e9b30cb6edc115584c791c",
+ "sha256": "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"
+ }
+ },
+ {
+ "ename": "hlinum",
+ "commit": "41bca7b89a7ce52d4c9381b9a4046b7103996c4f",
+ "sha256": "04b6m0njr7yrbcbpkhqz4hmqpfacmyca3lw75dyw3vpjpsj2g0iv",
+ "fetcher": "github",
+ "repo": "tom-tan/hlinum-mode",
+ "unstable": {
+ "version": [
+ 20180422,
+ 412
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5646d9c0b9e7598b20b2004eab5439fdc6dbeda5",
+ "sha256": "1w442h5wzxylrbmqn1blpv2pmvyvq7avsk5h8xxsjfqw5580riri"
+ }
+ },
+ {
+ "ename": "hmac",
+ "commit": "7cabf363dbdfc87f29ab3dcf63bfe39b9e0920f7",
+ "sha256": "0am8pbjwf43nvhqa2mppdgiyd7kil7jxnaq7hhi5214bsrqgxk31",
+ "fetcher": "github",
+ "repo": "grimnebulin/emacs-hmac",
+ "unstable": {
+ "version": [
+ 20180429,
+ 2010
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "30132cd3fee7d3d91a9f04709d49ca0dcb96d565",
+ "sha256": "0l4msj1i8amcn10dk1shcyh6hn49iphma1q03kp2h84ga79xdpi3"
+ }
+ },
+ {
+ "ename": "hnreader",
+ "commit": "65dc5e41f88158d7595aba7a66b791b205b929b7",
+ "sha256": "1y7ariri9q7dvda28rdp5i66c2xw74ap8cd7n6lskgnnxjk1yl8j",
+ "fetcher": "github",
+ "repo": "thanhvg/emacs-hnreader",
+ "unstable": {
+ "version": [
+ 20200726,
+ 654
+ ],
+ "deps": [
+ "org",
+ "promise",
+ "request"
+ ],
+ "commit": "7ff808d4728ce4e269b6d99a73604063dd9b374a",
+ "sha256": "0kxx8pvl99qdbldsn6lvxj69j1jpmmc33wxcr2aw3h423ibcna3s"
+ }
+ },
+ {
+ "ename": "hoa-mode",
+ "commit": "f8b91f35d06f9e7e17c9aaf2fb9ee43a77257113",
+ "sha256": "06rfqn7sqvmgpvwhfmk17qqs4q0frfzhm597z3p1q7kys2035kiv",
+ "fetcher": "git",
+ "url": "https://gitlab.lrde.epita.fr/spot/emacs-modes.git",
+ "unstable": {
+ "version": [
+ 20200610,
+ 1339
+ ],
+ "commit": "18f5c981e256f867f29a93376ccdc04717b159cd",
+ "sha256": "1814si09xjimmn1a8yp6q13lz1lr6cwnaz7fqfszqcil8lldcwvx"
+ }
+ },
+ {
+ "ename": "hoa-pp-mode",
+ "commit": "0c0d707dad9dc86bb3d6a829a60e21e92a5f3160",
+ "sha256": "01ijfn0hd645j6j88rids5dsanmzwmky37slf50yqffnv69jwvla",
+ "fetcher": "github",
+ "repo": "hoaproject/Contributions-Emacs-Pp",
+ "unstable": {
+ "version": [
+ 20151027,
+ 736
+ ],
+ "deps": [
+ "names"
+ ],
+ "commit": "925b79930a3f4377b0fb2a36b3c6d5566d4b9a8e",
+ "sha256": "0g2r4d0ivbadqw1k8jsv0jwv8krpfahsg0qmzyi909p2yfddqk1l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "names"
+ ],
+ "commit": "a72104a191214fba502653643a0d166a8f5341d9",
+ "sha256": "1wg6vc9swwspi6s6jpig3my83i2pq8vkq2cy1q3an87rczacmfzp"
+ }
+ },
+ {
+ "ename": "holiday-pascha-etc",
+ "commit": "4108926b1fee78e54c9fa68445c7a2b1b20404ea",
+ "sha256": "0v2mhga1db6qy1160i730pzzrzisvhl3fjkazj4cjbkpjlshfc5j",
+ "fetcher": "github",
+ "repo": "hexmode/holiday-pascha-etc",
+ "unstable": {
+ "version": [
+ 20160822,
+ 58
+ ],
+ "commit": "eb198656f63cb8679fb0e3a8248782df071a0f3c",
+ "sha256": "1dd0k7r5kx15sph12vzakhq27zh7vy9r541qdp8w5051k6apw3pw"
+ }
+ },
+ {
+ "ename": "home-end",
+ "commit": "f67c9cf33e0f11a9bd6e1521af86d180177111c4",
+ "sha256": "0xnpb0n4kd7b0m80g2a88ylfk5gbvkcgwb78nig98dmgjg48z2ly",
+ "fetcher": "github",
+ "repo": "Boruch-Baum/emacs-home-end",
+ "unstable": {
+ "version": [
+ 20180817,
+ 855
+ ],
+ "deps": [
+ "keypress-multi-event"
+ ],
+ "commit": "30676ceec0d4ad84038cd0d65ee45ae810ab185c",
+ "sha256": "0czvnk74988p6gqz5jz83gkvvqdrdmzn4qz6cc8dmbyxk1zg6l8y"
+ }
+ },
+ {
+ "ename": "homebrew-mode",
+ "commit": "1e4007f6d15574098722fb427b6a9903f77afb21",
+ "sha256": "088wc5fq4r5yj1nbh7mriyqf0xwqmbxvblj9d2wwrkkdm5flc8mj",
+ "fetcher": "github",
+ "repo": "dunn/homebrew-mode",
+ "unstable": {
+ "version": [
+ 20200205,
+ 224
+ ],
+ "deps": [
+ "dash",
+ "inf-ruby"
+ ],
+ "commit": "8c04b040656dc99719efd7663c10f26f74df4a47",
+ "sha256": "0hqpj9fqq0b4nj7ya93jgkagafixqkinyr7qj8dsy2j1q458ynzf"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "inf-ruby"
+ ],
+ "commit": "8c04b040656dc99719efd7663c10f26f74df4a47",
+ "sha256": "0hqpj9fqq0b4nj7ya93jgkagafixqkinyr7qj8dsy2j1q458ynzf"
+ }
+ },
+ {
+ "ename": "honcho",
+ "commit": "76487b6776d148325c0200d2f788815f115feac9",
+ "sha256": "1ywx67dmvackfx19p4fvrb8mm27a7pri3m3bwr2acwd29lrrid2x",
+ "fetcher": "github",
+ "repo": "emacs-pe/honcho.el",
+ "unstable": {
+ "version": [
+ 20190623,
+ 2120
+ ],
+ "deps": [
+ "sudo-edit"
+ ],
+ "commit": "d5e6206dd23ff9305d976c52845c750a064aca4b",
+ "sha256": "0nh8n9rbd640rjpb3qz1mq3mgwj4dw5m98v4xypxpd954pr90afc"
+ }
+ },
+ {
+ "ename": "hookify",
+ "commit": "aa04ccd0ac05beed5de8d51ed96ccbf0071fdea1",
+ "sha256": "0prls539ifk2fsqklcxmbrwmgbm9hya50z486d7sw426lh648qmy",
+ "fetcher": "github",
+ "repo": "Silex/hookify",
+ "unstable": {
+ "version": [
+ 20141216,
+ 2209
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "21baae7393b07257de5796402fde0ca72fb00d77",
+ "sha256": "0sg4h0m1ds3f6kpzd3vk30g6x2xl74r5j9bidw658f3mmai7m1l8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "e76127230716f7fab6662410c03c3872d17a172b",
+ "sha256": "1yvz9d5h7npxhsdf6s9fgxpmqk5ixx91iwivbhzcz935gs2886hc"
+ }
+ },
+ {
+ "ename": "horizon-theme",
+ "commit": "e2021dcf9db816a28cdc3fda226dc58431d7baca",
+ "sha256": "1532ab1blkxyfjcalr2vzp6yk9mkxnxh9yim2v9l0h7j17ddmw2v",
+ "fetcher": "github",
+ "repo": "aodhneine/horizon-theme.el",
+ "unstable": {
+ "version": [
+ 20200720,
+ 1832
+ ],
+ "commit": "9595549c514a9376c61d5d303405f6a6982e9e46",
+ "sha256": "1m7wwf17p7qa6dmm0qykz0qnqz7rxvxhsmn9287y8f6wahzd8yfb"
+ }
+ },
+ {
+ "ename": "horoscope",
+ "commit": "180248c19160940a208b32fa7a9660a838f68de5",
+ "sha256": "1y2nzhdl7ghi5l3iyzb04xics7gr5981jmb5z5y8y1z04xhqpfs6",
+ "fetcher": "github",
+ "repo": "mschuldt/horoscope.el",
+ "unstable": {
+ "version": [
+ 20180409,
+ 641
+ ],
+ "commit": "f4c683e991adce0a8f9023f15050f306f9b9a9ed",
+ "sha256": "17k4j4q19l4ahxlzzic1jlbbh7l378j9vgnrcrvpm0lxa9ipclk0"
+ }
+ },
+ {
+ "ename": "hound",
+ "commit": "90cfc34eb4e8be7bf887533b85feba91131a435b",
+ "sha256": "0qri6bddd3c4sqvaqvmqw6xg46vwlfi1by3gc9i3izpq4xl1cr1v",
+ "fetcher": "github",
+ "repo": "ryoung786/hound.el",
+ "unstable": {
+ "version": [
+ 20200122,
+ 1700
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "35e2cdc81fcc904b450a7ef3ec00fd25df6a4431",
+ "sha256": "04pb5yhv4ysmm9ngpipxglbwd6msxr4d0jd64mixxq77g2yfmfm4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "28cb804d99f9240d690d60098644e4300336b5fa",
+ "sha256": "1zyd6350mbah7wjz7qrwyh9pr4jpk5i1v8p7cfmdlja92fpqj9rh"
+ }
+ },
+ {
+ "ename": "hover",
+ "commit": "0dea54ebe452094c141e99f724a5fbfffe9381f0",
+ "sha256": "1vnxga7bbv96la2jjvh3r71j3fgaz59v81q7z5yixgn7vxrcvvc9",
+ "fetcher": "github",
+ "repo": "ericdallo/hover.el",
+ "unstable": {
+ "version": [
+ 20200321,
+ 1819
+ ],
+ "commit": "6f9ed1a6517e3a43ef2deafc2f86c70b2abce008",
+ "sha256": "06vhxmvd57hf8kc21ncv6is9h70syjbzqwfcl3xf5zwcpc8vn13s"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 3
+ ],
+ "commit": "6f9ed1a6517e3a43ef2deafc2f86c70b2abce008",
+ "sha256": "06vhxmvd57hf8kc21ncv6is9h70syjbzqwfcl3xf5zwcpc8vn13s"
+ }
+ },
+ {
+ "ename": "howdoi",
+ "commit": "d08f4d6c8bdf16f47d2474f92273fd214179cb18",
+ "sha256": "12vgbypawxhhrnjp8dgh0wrcp7pvjccfaxw4yhq7msai7ik3h83b",
+ "fetcher": "github",
+ "repo": "atykhonov/emacs-howdoi",
+ "unstable": {
+ "version": [
+ 20150204,
+ 43
+ ],
+ "commit": "5fbf7069ee160c597a328e5ce5fb32920e1ca88f",
+ "sha256": "01sj9c8mxqaif8wh6zz9v2czjaq7vcdi66drldyjmifkln6rg2v8"
+ }
+ },
+ {
+ "ename": "howdoyou",
+ "commit": "eb5356c3e094e93c09398bfd628b1594c7e3ec20",
+ "sha256": "0dnlhkpnjag6vk7qyfgzc7p0fs1b01pc3dnm6bgw19ghdp1wvp8y",
+ "fetcher": "github",
+ "repo": "thanhvg/emacs-howdoyou",
+ "unstable": {
+ "version": [
+ 20200805,
+ 1739
+ ],
+ "deps": [
+ "org",
+ "promise",
+ "request"
+ ],
+ "commit": "6bf4d5964299c5b51a2299869c0402079869343b",
+ "sha256": "0rzyh71w5ccimzy1wm489sj96119bnn86mdfshhyk753h9ldjjgp"
+ }
+ },
+ {
+ "ename": "howm",
+ "commit": "0099a1f9b0efb3fc3a1420cfe71a647ec6458998",
+ "sha256": "07wx3wmc51vm42s81km5sdbm600ax2pv83xg0116xsyn05za3bfn",
+ "fetcher": "git",
+ "url": "https://scm.osdn.net/gitroot/howm/howm.git",
+ "unstable": {
+ "version": [
+ 20190818,
+ 1144
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4f550d35935abc943e37e1f2da78c52218ac7c8d",
+ "sha256": "1rcyqyb48lsqpsa65ggd7ks88rk53frjhgrwr357b057kcqjic4n"
+ }
+ },
+ {
+ "ename": "hsluv",
+ "commit": "b74189f827ed54760c758f0364e573809ab32a22",
+ "sha256": "1g7g8434q2a4vpzxa4y5vrplzjali89px3gr8vhzfhscxg6mdcki",
+ "fetcher": "github",
+ "repo": "hsluv/hsluv-emacs",
+ "unstable": {
+ "version": [
+ 20181127,
+ 1206
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "c3bc5228e30d66e7dee9ff1a0694c2b976862fc0",
+ "sha256": "19q8qlq4s2kfydpadkq1zd92611dvq7dr8vlhlbd9gplzpx7dhfd"
+ }
+ },
+ {
+ "ename": "ht",
+ "commit": "6c7589bca1c1dfcc0fe76779f6847fda946ab981",
+ "sha256": "16vmxksannn2wyn8r44jbkdp19jvz1bg57ggbs1vn0yi7nkanwbd",
+ "fetcher": "github",
+ "repo": "Wilfred/ht.el",
+ "unstable": {
+ "version": [
+ 20200217,
+ 2331
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "fff8c43f0e03d5b98deb9f988522b839ce2ca253",
+ "sha256": "0v89jrz0igkj1w4jxi365nqny2vqr1wjmrvknzdlrm7g0islinwc"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "a23a72342fda1eb3cc8d792f86efabe45eb0d1fd",
+ "sha256": "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"
+ }
+ },
+ {
+ "ename": "html-check-frag",
+ "commit": "a53c9877f6f4c4e72c565fb8bd7cbe81ddbc565c",
+ "sha256": "0drancb9ryifiln44b40l6cal0c7nyp597a6q26288s3v909yk2a",
+ "fetcher": "github",
+ "repo": "TobiasZawada/html-check-frag",
+ "unstable": {
+ "version": [
+ 20160131,
+ 535
+ ],
+ "commit": "feb89765eafd69dfcf07afeebded8985dc456e7c",
+ "sha256": "10lbxf56gvy26grzrhhx2p710fzs0h866jd2zmmgkisvyb0vaiay"
+ }
+ },
+ {
+ "ename": "html-script-src",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0pdyc2a9wxxc9rivjm2kgh4ysdxmdp73wg37nfy2nzka1m7qni7j",
+ "fetcher": "github",
+ "repo": "rejeep/html-script-src.el",
+ "unstable": {
+ "version": [
+ 20120403,
+ 1815
+ ],
+ "commit": "66460f8ab1b24656e6f3ce5bd50cff6a81be8422",
+ "sha256": "0k9ga0qi6h33akip2vrpclfp4zljnbw5ax40lxyxc1813hwkdrmh"
+ }
+ },
+ {
+ "ename": "html-to-hiccup",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0gyghgdil14i4p0yv5mb6la1ajzf8xcgdm1si5i5w7cn72vfapmz",
+ "fetcher": "github",
+ "repo": "plexus/html-to-hiccup",
+ "unstable": {
+ "version": [
+ 20190909,
+ 1549
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "50a52e2b0d13d865187acdf775b8203d5003f2f1",
+ "sha256": "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"
+ }
+ },
+ {
+ "ename": "html-to-markdown",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "1gjh9ndqsb3nfb7w5h7carjckkgy6qh63b4mg141j19dsyx9rrjv",
+ "fetcher": "github",
+ "repo": "Malabarba/html-to-markdown",
+ "unstable": {
+ "version": [
+ 20151105,
+ 840
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "60c5498c801be186478cf7c05be05b4430c4a144",
+ "sha256": "09n3zm9ivln8ng80fv5vwwzh9mj355ni685axda3m85xfxgai8gi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 1
+ ],
+ "commit": "0fa0effd71acd8981a425ef11e0e63d53aea3199",
+ "sha256": "0c648dl5zwjrqx9n6zr6nyzx2zcnv05d5i4hvhjpl9q3y011ncns"
+ }
+ },
+ {
+ "ename": "html2org",
+ "commit": "771e6604edc90182697bbd4827c8c46c34b48289",
+ "sha256": "1lj4dwmjkc43dfmsc7z4nvydmmf6wrk5v9ms23zf0llnk9h3hvnk",
+ "fetcher": "github",
+ "repo": "lujun9972/html2org.el",
+ "unstable": {
+ "version": [
+ 20170418,
+ 501
+ ],
+ "commit": "6904aed40259ad8afccff079ebd8a07bff319ebc",
+ "sha256": "0dryk622fz0yj939pbs0fbb9i4m8qjnmkcxjsssws8f90plk06af"
+ }
+ },
+ {
+ "ename": "htmlize",
+ "commit": "075aa00a0757c6cd1ad392f0300bf5f1b937648d",
+ "sha256": "16nvvsi4nxi0zzk5a6mwmp43p0ls20zdx9r18mxz6bsaw6jangh2",
+ "fetcher": "github",
+ "repo": "hniksic/emacs-htmlize",
+ "unstable": {
+ "version": [
+ 20200816,
+ 746
+ ],
+ "commit": "49205105898ba8993b5253beec55d8bddd820a70",
+ "sha256": "0caw0wwbscfr4a9ynfabrpkvgibf0hlrkwisib82nhcqcaanf962"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 55
+ ],
+ "commit": "682edbf751f5c255bfd4af0eb714a8bce0737cec",
+ "sha256": "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"
+ }
+ },
+ {
+ "ename": "htmltagwrap",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1jac5ri96wqwss933z2m3q7yrrz8s3mwz39fahfspwqbycbhx8sx",
+ "fetcher": "github",
+ "repo": "jcs-elpa/htmltagwrap",
+ "unstable": {
+ "version": [
+ 20190517,
+ 511
+ ],
+ "commit": "35c62dd95c580fad49f84c5270cd69810455fedd",
+ "sha256": "1gh6acc21lfnng4hlgf6wv5pv4zcs9j44i25grrac0714sa2lm81"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "3260d9267b51019328c30a6317f28e4a2dd7d522",
+ "sha256": "15rfg4z8lhwadgnr58r3skmzmkxs5phnqr1ap4bjd9pq618amdbn"
+ }
+ },
+ {
+ "ename": "http",
+ "commit": "c7c63aaf27240706d84e464881d40cfb7cbe9ee3",
+ "sha256": "1176jhm8m7s1pzp0zv1sqawcgn4m5zvxghypmsrjyyb5p7m6dalm",
+ "fetcher": "github",
+ "repo": "emacs-pe/http.el",
+ "unstable": {
+ "version": [
+ 20181008,
+ 2121
+ ],
+ "deps": [
+ "edit-indirect",
+ "request"
+ ],
+ "commit": "1bbfff5994e16ffc185c4ac28d792cb040da3351",
+ "sha256": "0bs2l487mn8zkx3h7zgynm5cq54w8wlr150izaxynqddcpkrr44h"
+ }
+ },
+ {
+ "ename": "http-post-simple",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "0z3zphaqywbm7vn2g1f7fkrdamgsc26i8zydm9y53v9z9fmzch5s",
+ "fetcher": "github",
+ "repo": "emacsorphanage/http-post-simple",
+ "unstable": {
+ "version": [
+ 20170715,
+ 940
+ ],
+ "commit": "f53697fca278c741051aeb668b00466b5e0fd3fe",
+ "sha256": "0krdbvvvzn323vx554yw7947nddl3icfjk4wf5kfx7fim5v3mdn6"
+ }
+ },
+ {
+ "ename": "http-twiddle",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1d8xnwhb8lp4p4xnnkryx5c6isd8ckalp0smx66lbi1pa4g6iqsh",
+ "fetcher": "github",
+ "repo": "hassy/http-twiddle",
+ "unstable": {
+ "version": [
+ 20160801,
+ 1911
+ ],
+ "commit": "4d0c73b7dcbde8b483d4f3a75c49c74d2fe3ca45",
+ "sha256": "0fxmk5b4ggi92n5gi2nim08a2gx1yg7jlp4hj4m0qazxqdcy38i1"
+ }
+ },
+ {
+ "ename": "httpcode",
+ "commit": "906da23e26d44f8c71ba57ab59bb089caea673a9",
+ "sha256": "05k1al1j119x6zf03p7jn2r9qql33859583nbf85k41bhicknpgh",
+ "fetcher": "github",
+ "repo": "rspivak/httpcode.el",
+ "unstable": {
+ "version": [
+ 20121002,
+ 345
+ ],
+ "commit": "a45e735082b09477cd704a99294d336cdbeb12ba",
+ "sha256": "02jz8qwxl69zhwvpmlqc15znr8x4f30paqszmm7xrrrz5x1c1rn4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "2c8eb3b5455254ba70fb71f7178886bfc2d3af90",
+ "sha256": "1h9n388fi17nbyfciqywgrq3n165kpiildbimx59qyk2ac3v7rqk"
+ }
+ },
+ {
+ "ename": "httprepl",
+ "commit": "c49824f6e2dc2f3482e607c2d3a1e2d7685bf688",
+ "sha256": "0899qb1yfnsyf04hhvnk47qnq4d1f4vd5ghj43x4743wd2b9qawh",
+ "fetcher": "github",
+ "repo": "gregsexton/httprepl.el",
+ "unstable": {
+ "version": [
+ 20141101,
+ 1734
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "cfa3693267a8ed1c96a86a126823f37dbfe077d8",
+ "sha256": "0wd4wmy99mx677x4sdbp57bxxll1fsnnf8hk97r85xdmmjsmrkld"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "d2de8a676544deed1a5e084631a7799e487dbe55",
+ "sha256": "0dd257988bdar9hl2711ch5qshx9jc11fqxcvbrd7rc1va5cshs9"
+ }
+ },
+ {
+ "ename": "hugsql-ghosts",
+ "commit": "969fd5e51bf93b5eff6919956c43c041a3b24d1e",
+ "sha256": "1v1iypis5iyimdr9796qpqw0qmhzijap0nbr0mhhyp4001kakkwz",
+ "fetcher": "github",
+ "repo": "rkaercher/hugsql-ghosts",
+ "unstable": {
+ "version": [
+ 20180425,
+ 1129
+ ],
+ "deps": [
+ "cider",
+ "dash",
+ "s"
+ ],
+ "commit": "f3ebc60c66204ad39058cb84eb4bd5facce091df",
+ "sha256": "0pcr39x8yxl5aa0sz20gw20ixz5imw5m19bzhzbzyn7slr65hlqn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "cider",
+ "dash",
+ "s"
+ ],
+ "commit": "f3ebc60c66204ad39058cb84eb4bd5facce091df",
+ "sha256": "0pcr39x8yxl5aa0sz20gw20ixz5imw5m19bzhzbzyn7slr65hlqn"
+ }
+ },
+ {
+ "ename": "humanoid-themes",
+ "commit": "3f4a3e3f257a02c4d702ddc38f5aff5a9411e21e",
+ "sha256": "070y1xrfabpzc4rdj7qhxa6yl8fdv4p7imi8yivbv0cwx3rpx75s",
+ "fetcher": "github",
+ "repo": "humanoid-colors/emacs-humanoid-themes",
+ "unstable": {
+ "version": [
+ 20200403,
+ 1939
+ ],
+ "commit": "22c9a0987c7d746d7eb9fe850f93f232d91cae14",
+ "sha256": "1h3v76p17mzigwr0kpjlm5fgas4vvrm59g73l1699pnq1n1i5kgx"
+ }
+ },
+ {
+ "ename": "hungarian-holidays",
+ "commit": "0c2dc20ce4b878a32c540744016a40f6cc2a657a",
+ "sha256": "1bdl0ynlni1i19hq4h48k8j9b2davv2kfgrpd2mrl2xqmjvhm1m2",
+ "fetcher": "github",
+ "repo": "gergelypolonkai/hungarian-holidays",
+ "unstable": {
+ "version": [
+ 20161020,
+ 1138
+ ],
+ "commit": "653108769279499d84a79267c90e640d98823872",
+ "sha256": "0jjparw5axydjf2lj8asccmksbbj9zgdiv2kc211h122q5712gvm"
+ }
+ },
+ {
+ "ename": "hungry-delete",
+ "commit": "e33960d9b7e24f830ebe4e5a26a562422d52fe97",
+ "sha256": "0hcsm3yndkyfqzb77ibx7df6bjppc34x5yabi6nd389pdscp9rpz",
+ "fetcher": "github",
+ "repo": "nflath/hungry-delete",
+ "unstable": {
+ "version": [
+ 20200807,
+ 2257
+ ],
+ "commit": "671d941de0176255b79820a662d5a694607cf28a",
+ "sha256": "1cnbyixm1dihcvvfqx591qcjcrs963d2swn9rbrwkplm4a5fyxhf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 5
+ ],
+ "commit": "78a787a87aceb821818bbe2a322fbf2e5cbf80c3",
+ "sha256": "171s7akqcpj0jcbm8w19b4n9kdzw0acf7cv0ymwdz5mmgmfiy292"
+ }
+ },
+ {
+ "ename": "hy-mode",
+ "commit": "fc9ab5cf16b61bb27559cd8ec5cf665a5aab2154",
+ "sha256": "1vxrqla3p82x7s3kn7x4h33vcdfms21srxgxzidr02k37f0vi82m",
+ "fetcher": "github",
+ "repo": "hylang/hy-mode",
+ "unstable": {
+ "version": [
+ 20200730,
+ 2340
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "s"
+ ],
+ "commit": "55e84cadbdb63427a8d531992df3990414a26688",
+ "sha256": "0mrml5cy3isgy5mybxm8mrzqcrxrw4nn9yxchyjakkqzvfjk8gm1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 4
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "s"
+ ],
+ "commit": "e2d5fecdaec602788aa7123ed13651c888b8d94b",
+ "sha256": "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"
+ }
+ },
+ {
+ "ename": "hyai",
+ "commit": "1dd9bd1cfd2f3b760b664a4677b0e4e617cbdfa6",
+ "sha256": "00ns7q5b11c5amwkq11fs4p5vrmdfmjljfrcxbwb39gc12yrhn7s",
+ "fetcher": "github",
+ "repo": "iquiw/hyai",
+ "unstable": {
+ "version": [
+ 20170301,
+ 1447
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9efad2ac6a57059b3be624588f649e276a96fdd4",
+ "sha256": "0fw6qh0aajsyxrp5gg4wnwf61h112k73vvdn14x0zvd8i4fkm6hw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7c644d31f62943c75ccf5a772e43450b462cc08f",
+ "sha256": "1b8992vzq5bh01pjlj181nzqjrqs4fbjpwvv8h7gjq42sf8w59sm"
+ }
+ },
+ {
+ "ename": "hybrid-reverse-theme",
+ "commit": "efea6a0ea9176f61cb5a97f5fdce22b3ba28894e",
+ "sha256": "1lfssdga5y1h42qqbr1lg4rjb8rn8kkv0yxbqyxfv1w1yybn924l",
+ "fetcher": "github",
+ "repo": "Riyyi/emacs-hybrid-reverse",
+ "unstable": {
+ "version": [
+ 20200819,
+ 240
+ ],
+ "commit": "18b1b786fb4346ad31ec76df75cb672ef5cc7cbf",
+ "sha256": "03wgxhly8n3j05l9k3pzixczj4xzqd499k0l3d4nngsxps2v67w3"
+ }
+ },
+ {
+ "ename": "hydandata-light-theme",
+ "commit": "51edfd2eed17b79058bbef836bc3edff50defa6e",
+ "sha256": "1x4hf3ysjq3nwzr8jg0zs5lgalgxriyby4rww24w9xi3jc1bx5f1",
+ "fetcher": "github",
+ "repo": "chkhd/hydandata-light-theme",
+ "unstable": {
+ "version": [
+ 20190809,
+ 1925
+ ],
+ "commit": "180c3797fa7ef3e4bb679baaf5b492c33bbb9b8b",
+ "sha256": "157s8lssp6b4sjlm84qjg5wzgvgsgzqzpdh4y6g042xpgaz8b8nw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 0
+ ],
+ "commit": "3b9bb5f213029a8331818b1d670194ef26d9505a",
+ "sha256": "11vgz64f8vs8vqp4scj9qvrfdshag7bs615ly9zvzzlk68jivdya"
+ }
+ },
+ {
+ "ename": "hyde",
+ "commit": "151f5c1097e5020dbc13e41f2657aae781c5942b",
+ "sha256": "18kjcxm7qmv9bfh4crw37zgax8khjqs9zkp4lrb490zlad2asbs3",
+ "fetcher": "github",
+ "repo": "nibrahim/Hyde",
+ "unstable": {
+ "version": [
+ 20160508,
+ 308
+ ],
+ "commit": "a8cd6ed00ecd8d7de0ded2f4867015b412b15b76",
+ "sha256": "14sk9gai7sscvwgbl7y3dzz8fdhrqynilscmdimlncpm15w56m6i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "181f9d2f91c2678a22243c5485162fa7999fd893",
+ "sha256": "0nwsmc4c3v0wbfy917ik9k7yz8yclfac695p7p9sh9y354k3maw4"
+ }
+ },
+ {
+ "ename": "hydra",
+ "commit": "82d9e1bfd501ed2d1cd11319c5e1eb17482e8922",
+ "sha256": "1s1hj70jjbira054q8ly1pcr0818hh91qnhj0zwbv7milmvv2wwd",
+ "fetcher": "github",
+ "repo": "abo-abo/hydra",
+ "unstable": {
+ "version": [
+ 20200711,
+ 1210
+ ],
+ "deps": [
+ "cl-lib",
+ "lv"
+ ],
+ "commit": "112e689f75b59398d8eca79ac6562dca12b8a959",
+ "sha256": "0famsjgsgd61fm3l5m9mqg4szf8lcgcb57paxlg8rxnsmxmwga7d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 15,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "lv"
+ ],
+ "commit": "f27fce1b2f0a9162e159557bdeb2c0c94defb4d2",
+ "sha256": "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"
+ }
+ },
+ {
+ "ename": "hyperlist-mode",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0c3jdwbarxvnczfx2g3g1m53kiyjls7l48s6l4bzxl2w4x8axvsw",
+ "fetcher": "github",
+ "repo": "Vifon/hyperlist-mode",
+ "unstable": {
+ "version": [
+ 20200515,
+ 2209
+ ],
+ "commit": "374cdc04761df23e7a50ca276319ba9745cda9d7",
+ "sha256": "11940wmzhnj6yxgdkadkwak4k9gad4y1bbf0k39sca13j10j48n7"
+ }
+ },
+ {
+ "ename": "hyperspace",
+ "commit": "0696a12acba676015640de63fc6e011128bca71c",
+ "sha256": "0ya41c9bxvspj81n5209p9b4c9p1i6jcp710n9i9jawpahwpqlkw",
+ "fetcher": "github",
+ "repo": "ieure/hyperspace-el",
+ "unstable": {
+ "version": [
+ 20190908,
+ 550
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "825ac47887bf2f63e7dc2ecce264a52d9f0fae70",
+ "sha256": "00bjwgg67y6igm2k2rwrw4n35jiw5akhl01mhbggwy999gb01cg2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 4
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "5fdd680dc2e7b8a064cfdf93d6948546ff51afc2",
+ "sha256": "1r5h55zcm5n2vx126q16ndhgdchcj59qqcybhsqw69vk02x96arg"
+ }
+ },
+ {
+ "ename": "i2b2-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1jnlisdnp9sz54p444vlq00y3080i4ljcvclri9fy382g1s5ags5",
+ "fetcher": "github",
+ "repo": "danlamanna/i2b2-mode",
+ "unstable": {
+ "version": [
+ 20140710,
+ 104
+ ],
+ "commit": "db10efcfc8bed369a516bbf7526ede41f98cb95a",
+ "sha256": "17k41rah17l9kf7bvlm83x71nzz4aizgn7254cl5sb59mdhcm8pm"
+ }
+ },
+ {
+ "ename": "i3wm",
+ "commit": "2e12638554a13ef49ab24da08fe20ed2a53dbd11",
+ "sha256": "11246d71g82iv9zrd44013zwkmnf32m1x8zbrbb656dnzx7ps4rl",
+ "fetcher": "git",
+ "url": "https://git.flintfam.org/swf-projects/emacs-i3.git",
+ "unstable": {
+ "version": [
+ 20170822,
+ 1438
+ ],
+ "commit": "71391dc61063fee77ad174f3b2ca25c60b41009e",
+ "sha256": "16rwqfg517ask3y6mqxw689w8xx4i51nq8js5wnzbz9a55aj776n"
+ }
+ },
+ {
+ "ename": "ialign",
+ "commit": "072f1f7ce17e2972863bce10af9c52b3c6502eab",
+ "sha256": "070a0fa2vbdfvbnpbzv4z0c7311lf8sy2zw2ifn9k548n4l8k62j",
+ "fetcher": "github",
+ "repo": "mkcms/interactive-align",
+ "unstable": {
+ "version": [
+ 20200711,
+ 1117
+ ],
+ "commit": "eca40b8b59ea713dba21b18f5b047a6c086b91dc",
+ "sha256": "1nvj47d62dffgry0dy08m8rz5fqsrn1yhmkmp5jn57fyhbk6nfal"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "commit": "7ad88c8f7922adc616b8f060b65fa1add8952ea1",
+ "sha256": "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"
+ }
+ },
+ {
+ "ename": "iasm-mode",
+ "commit": "5c230ec10eb62d1b3f6df10c05c5dbc2e25d4507",
+ "sha256": "09xh41ayaha07fi5crk3c6pn17gwm3samsf6h71ldkywvz74kipv",
+ "fetcher": "github",
+ "repo": "RAttab/iasm-mode",
+ "unstable": {
+ "version": [
+ 20171023,
+ 1422
+ ],
+ "commit": "abbec7f308f9ce97beeb57e459fff35f559b4c18",
+ "sha256": "0hvpcckhlxab5f7w4s6iw5lhdbjrqn0l8gayg1w42rn6gssr3rap"
+ }
+ },
+ {
+ "ename": "ibuffer-git",
+ "commit": "d341da1b9bac782c75ab931fd53a9525a85c702e",
+ "sha256": "048888y07bzmi9x5i43fg6bgqbzdqi3nfjfnn6zr29jvlx366r5z",
+ "fetcher": "github",
+ "repo": "jrockway/ibuffer-git",
+ "unstable": {
+ "version": [
+ 20110508,
+ 731
+ ],
+ "commit": "d326319c05ddb8280885b31f9094040c1b365876",
+ "sha256": "1s5qvlf310b0z7q9k1xhcf4qmyfqd37jpqd67ciahaxk7cp224rd"
+ }
+ },
+ {
+ "ename": "ibuffer-project",
+ "commit": "895d692a678322e2d082ead155b679fa24a3a82d",
+ "sha256": "14lpjf9lsjzvkbp5ai95ymgl6h8waq80623hnamg6mv83vg7w135",
+ "fetcher": "github",
+ "repo": "muffinmad/emacs-ibuffer-project",
+ "unstable": {
+ "version": [
+ 20200210,
+ 2252
+ ],
+ "commit": "8cc8c96cb15874dd55cdbfce759f528de0046f9f",
+ "sha256": "0ysjyirw9gkrs8wivvvxfgdq8radpkl6nhh2a0ac3s42vrwbf9g1"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "8cc8c96cb15874dd55cdbfce759f528de0046f9f",
+ "sha256": "0ysjyirw9gkrs8wivvvxfgdq8radpkl6nhh2a0ac3s42vrwbf9g1"
+ }
+ },
+ {
+ "ename": "ibuffer-projectile",
+ "commit": "363a6a888945f2c8b02f5715539439ba744d737d",
+ "sha256": "1qh4krggmsc6lx5mg60n8aakmi3f6ppl1gw094vfcsni96jl34fk",
+ "fetcher": "github",
+ "repo": "purcell/ibuffer-projectile",
+ "unstable": {
+ "version": [
+ 20200805,
+ 604
+ ],
+ "deps": [
+ "projectile"
+ ],
+ "commit": "ecbe482804a217b1471593f6c7a8b3d64f3cdc47",
+ "sha256": "0gcars1zmfrysq1n3bv40nwqsk821bz3pffrsjw14fg2mwjpmaxq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "projectile"
+ ],
+ "commit": "504b0edaa0d937ce60ccc8fdf09f2dae0a90fbaf",
+ "sha256": "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"
+ }
+ },
+ {
+ "ename": "ibuffer-rcirc",
+ "commit": "d8bcf68d54fce13fcb0fb0ae0b6aa975e8127a1f",
+ "sha256": "1y6pyc6g8j42hs103yynjsdkkxvcq0q4xsz4r93rqwsr3za3wcmc",
+ "fetcher": "github",
+ "repo": "fgallina/ibuffer-rcirc",
+ "unstable": {
+ "version": [
+ 20150215,
+ 2118
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8a4409b1c679d65c819dee4085faf929840e79f8",
+ "sha256": "15lapyj7qkkw1i1g1aizappm7gxkfnxhvd4fq66lghkzb76clz2m"
+ }
+ },
+ {
+ "ename": "ibuffer-sidebar",
+ "commit": "19c7c36af8e30b9a9ccc4afda2a7b7e39e8d32ff",
+ "sha256": "0rzdybkqaf8r6v19isgw4wv0mwdqxvf55gq1ig4shscjc7ys22wp",
+ "fetcher": "github",
+ "repo": "jojojames/ibuffer-sidebar",
+ "unstable": {
+ "version": [
+ 20180219,
+ 131
+ ],
+ "commit": "7ddf1b5a158b33e9a7d3fe5dad7ea626a464d2bc",
+ "sha256": "18rl379bfilzvyi4f4kmy74l4vq2q8hhy5i8kflcgvn0ibipwqjz"
+ }
+ },
+ {
+ "ename": "ibuffer-tramp",
+ "commit": "a1a7449b15cb2a89cf06ea3de2cfdc6bc387db3b",
+ "sha256": "11a9b9g1jk2r3fldi012zka4jzy68kfn4991xp046qm2fbc7la32",
+ "fetcher": "github",
+ "repo": "svend/ibuffer-tramp",
+ "unstable": {
+ "version": [
+ 20151118,
+ 1739
+ ],
+ "commit": "bcad0bda3a67f55d1be936bf8fa9ef735fe1e3f3",
+ "sha256": "1ry7nbhqhjy6gkxd10s97nbm6flk5nm0l5q8071fprx8xxphqj8f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "bcad0bda3a67f55d1be936bf8fa9ef735fe1e3f3",
+ "sha256": "1ry7nbhqhjy6gkxd10s97nbm6flk5nm0l5q8071fprx8xxphqj8f"
+ }
+ },
+ {
+ "ename": "ibuffer-vc",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0bn5qyiq07cgzci10xl57ss5wsk7bfhi3hjq2v6yvpy9v704dvla",
+ "fetcher": "github",
+ "repo": "purcell/ibuffer-vc",
+ "unstable": {
+ "version": [
+ 20200805,
+ 604
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5fa6aea09bc67f71ea743302d609f459967b1e81",
+ "sha256": "03xkhr8vq741pgbv0b184j5ksqhhdvb7pzwa1arpymsarc6hjwsy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 11
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1249c1e30cf11badfe032ac3b1058f24ba510ace",
+ "sha256": "1mgn7b786j4hwq1ks012hxxgvrfn5rz90adi2j190gmjz60rc5g5"
+ }
+ },
+ {
+ "ename": "iceberg-theme",
+ "commit": "dec6f24b215de80a4c12856bd1ad4dc26c33f47e",
+ "sha256": "021v5rpmmk2bym46w9hs5ckyajqv41qf2l2183ybqfc679mkbym8",
+ "fetcher": "github",
+ "repo": "conao3/iceberg-theme.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 943
+ ],
+ "deps": [
+ "solarized-theme"
+ ],
+ "commit": "183b41eae07d94d4a8f299306078410bddc41d34",
+ "sha256": "1sxadaip63mhfjvgkax45jlv3c8cnbjnq653qbvw98vb8xsrmjc4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "solarized-theme"
+ ],
+ "commit": "04b8d04c30276a471b37ff93d73409508e88d295",
+ "sha256": "13m6sq3ld8cm28jq7kxmv4ygrvyi7pjh1lsxwzvgaj6ncjqdi87v"
+ }
+ },
+ {
+ "ename": "icomplete-vertical",
+ "commit": "1a952162da476b4a0f496d9dc15d2d7a8d0964f6",
+ "sha256": "10rbsxp3jp8xyzcklpcc2zs0sv4pvvkqb7i96js9cp13nc9a7rgz",
+ "fetcher": "github",
+ "repo": "oantolin/icomplete-vertical",
+ "unstable": {
+ "version": [
+ 20200616,
+ 2322
+ ],
+ "commit": "a5871d39c5850ac4d9aac48350eaa1d31f3aaef7",
+ "sha256": "00sp2n8kb38nrkgs11m3jpijj9qnsdmy3sp37c1v6p7lgnzly80i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "2c328a19f617b538986977a897d3af051ae7f355",
+ "sha256": "1bm02qd71r3j35b861rgbxkv3kcmg2458c70vwfaw9sjjba0ssng"
+ }
+ },
+ {
+ "ename": "icsql",
+ "commit": "bf2a7e6572418d2f252d63068edd82c21eab874e",
+ "sha256": "1lsh5nfw7xki4cjln492b92v37k093633sl4fs4254qfpi25n94a",
+ "fetcher": "github",
+ "repo": "plandes/icsql",
+ "unstable": {
+ "version": [
+ 20190815,
+ 501
+ ],
+ "deps": [
+ "buffer-manage",
+ "choice-program"
+ ],
+ "commit": "5e5cd04e3f3ad9963c29759293c1f7a54257866b",
+ "sha256": "0y9nsdkw8sahb3vgrgc278dys7m3nqzq6wgcifhhcsvv1bgs93hd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "buffer-manage",
+ "choice-program"
+ ],
+ "commit": "415cfb7473537ea5a0f156c35f4dce0d2c49d124",
+ "sha256": "078cgskyzdx6sbyry20p6f3y5idd8fi8jhgm5bcyrj626nkf60f2"
+ }
+ },
+ {
+ "ename": "id-manager",
+ "commit": "64a61b3801a0cafec87b1875eaec5950746f716d",
+ "sha256": "13g5fi06hvx0x2wn1d1d8rkfq5n6wbk9g5bhx2b5sar2yw0akmwm",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-id-manager",
+ "unstable": {
+ "version": [
+ 20170320,
+ 1246
+ ],
+ "commit": "14ebc35db298aac4dedc8aa188bc46bacab81f3b",
+ "sha256": "0k9b12gzvjw06y5ycjkigkj8vcmj4rz57d4hyzip27g1v93vvimc"
+ }
+ },
+ {
+ "ename": "idea-darkula-theme",
+ "commit": "abf27cce70443010f996b5577d71fe78f7eab6fb",
+ "sha256": "0lanhwlhd7pbzjc047vd5sgsmi2bx66gr3inr8y57swgrfw3l8sk",
+ "fetcher": "github",
+ "repo": "fourier/idea-darkula-theme",
+ "unstable": {
+ "version": [
+ 20160416,
+ 2303
+ ],
+ "commit": "52602d9b91883e1f297d000951aeed48bf60176e",
+ "sha256": "1hknhbm3b5rsba2s84iwspylhzjsm91zdckz22j9gyrq37wjgyrr"
+ }
+ },
+ {
+ "ename": "identica-mode",
+ "commit": "812b7c1fbc435f0530b7f66a1e65f62f5f00da01",
+ "sha256": "1r69ylykjap305g23cry4wajiqhpgw08nw3b5d9i1y3mwx0j253q",
+ "fetcher": "github",
+ "repo": "gabrielsaldana/Emacs-Identica-mode",
+ "unstable": {
+ "version": [
+ 20130204,
+ 2253
+ ],
+ "commit": "cf9183ee11ac922e85c7c908f04e2d00b03111b3",
+ "sha256": "047gzycr49cs8wlmm9j4ry7b7jxmfhmbayx6rbbxs49lba8dgwlk"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 1
+ ],
+ "commit": "cf9183ee11ac922e85c7c908f04e2d00b03111b3",
+ "sha256": "047gzycr49cs8wlmm9j4ry7b7jxmfhmbayx6rbbxs49lba8dgwlk"
+ }
+ },
+ {
+ "ename": "idle-highlight-in-visible-buffers-mode",
+ "commit": "b5a533be3b8dea556438d93ac48853dd3a9690f1",
+ "sha256": "0kv06qlv1zp5hwaya0l90z6d5lhxcg69qac6x24ky6kf97vcdq72",
+ "fetcher": "github",
+ "repo": "ignacy/idle-highlight-in-visible-buffers-mode",
+ "unstable": {
+ "version": [
+ 20181027,
+ 1531
+ ],
+ "commit": "8d8de309d5bd4b035c01bf7f0cfc6e079c79d898",
+ "sha256": "194r7f4ngwx03n74rs26hqn9wypn9idjizvmffpsjpxfr7wr9z7l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "8d8de309d5bd4b035c01bf7f0cfc6e079c79d898",
+ "sha256": "194r7f4ngwx03n74rs26hqn9wypn9idjizvmffpsjpxfr7wr9z7l"
+ }
+ },
+ {
+ "ename": "idle-highlight-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1i5ky61bq0dpk71yasfpjhsrv29mmp9nly9f5xxin7gz3x0f36fc",
+ "fetcher": "github",
+ "repo": "nonsequitur/idle-highlight-mode",
+ "unstable": {
+ "version": [
+ 20120920,
+ 1648
+ ],
+ "commit": "c466f2a9e291f9da1167dc879577b2e1a7880482",
+ "sha256": "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 3
+ ],
+ "commit": "c466f2a9e291f9da1167dc879577b2e1a7880482",
+ "sha256": "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"
+ }
+ },
+ {
+ "ename": "idle-org-agenda",
+ "commit": "de55ad7d9b8b3bed6a646f526a7b20c272eb4e26",
+ "sha256": "12g18gqwb520iqvs4v6jv0fjxsa3m6an1lq13saa4gwqixja1rrv",
+ "fetcher": "github",
+ "repo": "enisozgen/idle-org-agenda",
+ "unstable": {
+ "version": [
+ 20190106,
+ 1844
+ ],
+ "commit": "8e6052fc4923c30132052d67d794b76c92851c20",
+ "sha256": "0s9rql5izfc9bxg7xpv8406mirvj1r4djd8crknqsvc6gr0m1b1b"
+ }
+ },
+ {
+ "ename": "idle-require",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "03z8d06ifzaf81h8b3h16ab69cp3ssky3my07spy81rbhbjl5nn3",
+ "fetcher": "github",
+ "repo": "nschum/idle-require.el",
+ "unstable": {
+ "version": [
+ 20090715,
+ 2203
+ ],
+ "commit": "33592bb098223b4432d7a35a1d65ab83f47c1ec1",
+ "sha256": "0f8rxvc3dk2hi4x524l18fx73xrxy0qqwbybdma4ca67ck9n6xam"
+ }
+ },
+ {
+ "ename": "ido-at-point",
+ "commit": "6ffbfa66c4284a134265efc606fdc7652b0a7f75",
+ "sha256": "0jpgq2iiwgqifwdhwhqv0cd3lp846pdqar6rxqgw9fvvb8bijqm0",
+ "fetcher": "github",
+ "repo": "katspaugh/ido-at-point",
+ "unstable": {
+ "version": [
+ 20151021,
+ 757
+ ],
+ "commit": "e5907bbe8a3d148d07698b76bd994dc3076e16ee",
+ "sha256": "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "e5907bbe8a3d148d07698b76bd994dc3076e16ee",
+ "sha256": "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"
+ }
+ },
+ {
+ "ename": "ido-complete-space-or-hyphen",
+ "commit": "59e11094068d3a0c0e4edc1f82158c43d3b15e0e",
+ "sha256": "1wk0cq5gjnprmpyvhh80ksz3fash42hckvmx8m95crbzjg9j0gbc",
+ "fetcher": "github",
+ "repo": "doitian/ido-complete-space-or-hyphen",
+ "unstable": {
+ "version": [
+ 20180929,
+ 150
+ ],
+ "commit": "ed60ebed113e4e1552efeab0c416f7c88428268e",
+ "sha256": "15h0alwi7qfqyi7w7gdl06ykxvafbx1p4614rg81kmzgs4dpqgy3"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "ad9baaec10e06be3f85db97b6c8fd970cf20df77",
+ "sha256": "1ffmsmi31jc0gqnbdxrd8ipsy790bn6hgq3rmayylavmdpg3qfd5"
+ }
+ },
+ {
+ "ename": "ido-completing-read+",
+ "commit": "6104efc035bcf469d133ab9a2caf42c9d4482334",
+ "sha256": "0rxdv3cd0bg0p8c1bck5vichdq941dki934k23qf5p6cfgw8gw4z",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/ido-completing-read-plus",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1535
+ ],
+ "deps": [
+ "cl-lib",
+ "memoize",
+ "seq"
+ ],
+ "commit": "b9ca2566b867464c25b720e2148d240961c110e7",
+ "sha256": "1vkk311wghhnkmybv3h5a6hf3vxlgy03iqzwl6xyxdw3hgip8in5"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 13
+ ],
+ "deps": [
+ "cl-lib",
+ "memoize",
+ "s"
+ ],
+ "commit": "41b42779e22c064192b95e4de855ff7ebad45af6",
+ "sha256": "088b50iajgj602wsm1280gn5pqirycazndhs27r1li5d84fm1nvj"
+ }
+ },
+ {
+ "ename": "ido-exit-target",
+ "commit": "b815e7492eb0bd39c5d1be5a95784f9fe5612b62",
+ "sha256": "17vmg47xwk6yjlbcsswirl8s2q565k291ajzjglnz7qg2fwx6spi",
+ "fetcher": "github",
+ "repo": "waymondo/ido-exit-target",
+ "unstable": {
+ "version": [
+ 20170717,
+ 1851
+ ],
+ "commit": "e56fc6928649c87ccf39d56d84ab53ebaced1f73",
+ "sha256": "1a1bcvmihf22kr8rpv6kyp4b7x79hla5qdys48d6kl06m53gyckp"
+ }
+ },
+ {
+ "ename": "ido-flex-with-migemo",
+ "commit": "1647d1ae7400ddbc8367c355ade16b5c360b42fc",
+ "sha256": "1w8f1r17l4r7w5bacckv9zfl9qynv2ivsw639rzr5acg2ndxagv7",
+ "fetcher": "github",
+ "repo": "ROCKTAKEY/ido-flex-with-migemo",
+ "unstable": {
+ "version": [
+ 20190408,
+ 350
+ ],
+ "deps": [
+ "flx-ido",
+ "migemo"
+ ],
+ "commit": "da64f2fe3849492d35e155d81a817308a4853473",
+ "sha256": "0r8z8ingq83nkab9khpl9gspihv28gy721hcs0yh1d74wyjc71cr"
+ }
+ },
+ {
+ "ename": "ido-gnus",
+ "commit": "3c5cd46d72a3f99ef1344b5f1156f5bf7a5b9adc",
+ "sha256": "14ijb8q4s846984h102h72ij713v5bj3k2vfdvr94gw1f0iya2yg",
+ "fetcher": "github",
+ "repo": "vapniks/ido-gnus",
+ "unstable": {
+ "version": [
+ 20140216,
+ 1646
+ ],
+ "deps": [
+ "gnus"
+ ],
+ "commit": "f5fe3f6aa8086f675ba216abace9e3d5f2e3a089",
+ "sha256": "0ifdwd5vnjv2iyb5bnz8pij35lc0ymmyx8j8zhpkbgjigz8f05ip"
+ }
+ },
+ {
+ "ename": "ido-grid-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0sq1d2fwvv247rr9lqg9x87d5h910k5ifqr9cjyskc74mvhrcsr3",
+ "fetcher": "github",
+ "repo": "larkery/ido-grid-mode.el",
+ "unstable": {
+ "version": [
+ 20160122,
+ 1139
+ ],
+ "commit": "7cfca3988a6dc3ad18e28abe114218095ff2366f",
+ "sha256": "1ip8g0r0aimhc4a1f06m711zmbs0krxn8hmayk99gk5kkz12igkb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 5
+ ],
+ "commit": "8bbd66e365d4f6f352bbb17673be5869ab26d7ab",
+ "sha256": "0f1p6cnl0arcc2y1h99nqcflp7byvyf6hj6fmv5xqggs66qc72lb"
+ }
+ },
+ {
+ "ename": "ido-hacks",
+ "commit": "4ac3074d28e76133835366273219e180c6e75b18",
+ "sha256": "05f9pdkqppnp7wafka2d2yj84gqchjd7vnrl5rcywy1l47gbxiw0",
+ "fetcher": "github",
+ "repo": "scottjad/ido-hacks",
+ "unstable": {
+ "version": [
+ 20190206,
+ 2153
+ ],
+ "commit": "d2153a3e8d23436ee07ecae2a106f434361a10c5",
+ "sha256": "0rq5jmij691cccv4x8h8aiclnzx04v08axgz30prp6p71dxlrdms"
+ }
+ },
+ {
+ "ename": "ido-load-library",
+ "commit": "baa49e7d2d5c07ebf77e7941c240b88fcfd0fc8b",
+ "sha256": "13f83gqh39p3yjy7r7qc7kzgdcmqh4b5c07zl7rwzb8y9rz59lhj",
+ "fetcher": "github",
+ "repo": "rolandwalker/ido-load-library",
+ "unstable": {
+ "version": [
+ 20140611,
+ 1600
+ ],
+ "deps": [
+ "pcache",
+ "persistent-soft"
+ ],
+ "commit": "e03b55957c93aa1a7dd190e173e16ec59dbb2ba7",
+ "sha256": "0l69sr3g1n2x61j6sv6hnbiyk8a2qra6y2kh413qp0sfpx4fzchv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "pcache",
+ "persistent-soft"
+ ],
+ "commit": "8589cb1e4303066eb333f1cfc789835d1cbe21df",
+ "sha256": "1z7az7h90v72llxvdclcywvf1qd0nhkfa45bp99xi7cy7sqsqssf"
+ }
+ },
+ {
+ "ename": "ido-migemo",
+ "commit": "c52a1ea0afa8e5f439b7ac987b79c49eb08fe95a",
+ "sha256": "0dpgr9lxj7g7kciw4w7y1qmah91z2b2vwj9xyn8m6f6grihg7p2l",
+ "fetcher": "github",
+ "repo": "emacsattic/ido-migemo",
+ "unstable": {
+ "version": [
+ 20191017,
+ 1919
+ ],
+ "deps": [
+ "migemo"
+ ],
+ "commit": "09a2cc175b500cab7655a25ffc982e78d46ca669",
+ "sha256": "0my4bvi2b4c5q8wdsdhypyk6w6n63pw0240kx3r6kb85l9rg95r3"
+ }
+ },
+ {
+ "ename": "ido-occasional",
+ "commit": "ed49d07aa36dfc742ca3fbfa83a6d624bf2fa525",
+ "sha256": "1vdh5i9qznzd9r148a6jw9v47swf7ykwyciqfzc3ismv5q909bl2",
+ "fetcher": "github",
+ "repo": "abo-abo/ido-occasional",
+ "unstable": {
+ "version": [
+ 20150214,
+ 1248
+ ],
+ "commit": "d405f1795e1e0c63be411ee2825184738d29c33a",
+ "sha256": "0zlkq29wxd3a4vg0w6ds2jad5h1pja7ccd3l6ppl0kz1b1517qlr"
+ }
+ },
+ {
+ "ename": "ido-select-window",
+ "commit": "775c8361322c2ba9026130dd60083e0255170b8f",
+ "sha256": "03xqfpnagy2sk67yq7n7s6ma3im37d558zzx8sdzd9pbfxy9ij23",
+ "fetcher": "github",
+ "repo": "pjones/ido-select-window",
+ "unstable": {
+ "version": [
+ 20131220,
+ 2047
+ ],
+ "commit": "a64707d8d154664d50d12e26417d586e4c3dd78b",
+ "sha256": "1iifpgdpa98si0g2ykr0xbxcbqrvzqfl6r1dv9zihmxhdr7hs9c8"
+ }
+ },
+ {
+ "ename": "ido-skk",
+ "commit": "6da9bd69a646a8edfaf9dc7f2e31e5f057f44b6b",
+ "sha256": "1fyzjkw9xp126bzfv1254bvyakh323iw3wdzrkd9gb4ir39k5jzw",
+ "fetcher": "github",
+ "repo": "tsukimizake/ido-skk",
+ "unstable": {
+ "version": [
+ 20151111,
+ 950
+ ],
+ "deps": [
+ "ddskk"
+ ],
+ "commit": "89a2e62799bff2841ff634517c86084c4ce69246",
+ "sha256": "149cznbybwj0gkjyvpnh4kn258kxw449m7cn95n9jbh1r45vljvy"
+ }
+ },
+ {
+ "ename": "ido-sort-mtime",
+ "commit": "36d2f7f1bb0d0694a25c1e83340781e08bee814b",
+ "sha256": "1dkny9y3x49dv1vjwz78x2qhb6kdq3fa8qh1xkm30jyapvgiwdg2",
+ "fetcher": "github",
+ "repo": "pkkm/ido-sort-mtime",
+ "unstable": {
+ "version": [
+ 20171121,
+ 859
+ ],
+ "commit": "f638ff0c922af862f5211779f2311a27fde428eb",
+ "sha256": "0isy3rmw69664fsypg58rs42ql43drf27l90yvplnbcqd7nnnb21"
+ }
+ },
+ {
+ "ename": "ido-springboard",
+ "commit": "409d847fb464a320e626fae56521a81a8e862a3e",
+ "sha256": "04jqnag8jiyfbwvc3vd9ikrsmf6cajld7dz2gz9y0zkj1k4gs7zv",
+ "fetcher": "github",
+ "repo": "jwiegley/springboard",
+ "unstable": {
+ "version": [
+ 20170106,
+ 755
+ ],
+ "commit": "687d1e5898a880878995dc9bffe93b4598366203",
+ "sha256": "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"
+ }
+ },
+ {
+ "ename": "ido-vertical-mode",
+ "commit": "d4bbd212ea4606b9871cf583d06b5cee2f6ce0a9",
+ "sha256": "1vg5s6nd6v2g8ychz1q9cdqvsdw6vag7d9w68sn7blpmlr0nqhfm",
+ "fetcher": "github",
+ "repo": "creichert/ido-vertical-mode.el",
+ "unstable": {
+ "version": [
+ 20180618,
+ 2101
+ ],
+ "commit": "16c4c1a112796ee0bcf401ea39d3e2643a89feaf",
+ "sha256": "10cfm765qwba0bnablwy8c4mjxvb1lwm89d16svwhp1pn20an6a8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 6
+ ],
+ "commit": "c3e0514405ba5c15b5527e7f8e2d42dff259788f",
+ "sha256": "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"
+ }
+ },
+ {
+ "ename": "ido-yes-or-no",
+ "commit": "e575f46b8597a34523df6b6a75da5a640f4c5a2e",
+ "sha256": "0glag4yb9xyf1lxxbdhph2nq6s1vg44i6f2z1ii8bkxpambz2ana",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/ido-yes-or-no",
+ "unstable": {
+ "version": [
+ 20161108,
+ 2351
+ ],
+ "deps": [
+ "ido-completing-read+"
+ ],
+ "commit": "c55383b1fce5879e87e7ca6809fc60534508e182",
+ "sha256": "1p50ycsn1mcq5nqa16w10hm8v2pixibvandc91mj5l7s8zspanik"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "deps": [
+ "ido-completing-read+"
+ ],
+ "commit": "9ddee9e878ad62d58c9f4b3a7685f22b8e36e420",
+ "sha256": "046ns1nqisz830f6xwlly1qgmi4v2ikw6vmj0f93jprv4vkjylpq"
+ }
+ },
+ {
+ "ename": "idomenu",
+ "commit": "f856045bc5ab2aee4dd4ad9806917e27e56ec64c",
+ "sha256": "0mg601ak9mhp2fg5n13npcfzphgyms4vkqd18ldmv098z2z1412h",
+ "fetcher": "github",
+ "repo": "birkenfeld/idomenu",
+ "unstable": {
+ "version": [
+ 20141123,
+ 2120
+ ],
+ "commit": "4b0152d606360c70204fb4c27f68de79ca885386",
+ "sha256": "1vx2g1xgxpcabr49mkl6ggzrpa3k2zhm479j6262vb64swzx33jw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "5daaf7e06e4704ae43c825488109d7eb8c049321",
+ "sha256": "0bq0kx0889rdy8aasxbpmb0a4awpk2b24zv6x1dmhacmc5rj11i0"
+ }
+ },
+ {
+ "ename": "idris-mode",
+ "commit": "17a86efca3bdebef7c92ba6ece2de214d283c627",
+ "sha256": "0hiiizz976hz3z3ciwg1gs9y10qhxbs8givhz89kvyn4s4861a1s",
+ "fetcher": "github",
+ "repo": "idris-hackers/idris-mode",
+ "unstable": {
+ "version": [
+ 20200522,
+ 808
+ ],
+ "deps": [
+ "cl-lib",
+ "prop-menu"
+ ],
+ "commit": "b77eadd8ac2048d5c882b4464bd9673e45dd6a59",
+ "sha256": "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "prop-menu"
+ ],
+ "commit": "b77eadd8ac2048d5c882b4464bd9673e45dd6a59",
+ "sha256": "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"
+ }
+ },
+ {
+ "ename": "ids-edit",
+ "commit": "ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38",
+ "sha256": "1n4gpcl3qj65cmaq9cdljsmrf84570z4chfvga6slsqjz5him8d1",
+ "fetcher": "github",
+ "repo": "kawabata/ids-edit",
+ "unstable": {
+ "version": [
+ 20170818,
+ 1502
+ ],
+ "commit": "8562a6cbfb3f2d44bc6f62ab15081a80f8fee502",
+ "sha256": "10h64c5n9piq9ly7ipqq33ji8x8vwh9j1h7r05yab8a2sn0h8587"
+ }
+ },
+ {
+ "ename": "iedit",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0bh8ir6kspxjsvjww5y3b5hl3flbm2cc77jh8vnnva3z086f18mh",
+ "fetcher": "github",
+ "repo": "victorhge/iedit",
+ "unstable": {
+ "version": [
+ 20200807,
+ 853
+ ],
+ "commit": "59430e8c11c1fa9a294a070a3b1d571bd3887806",
+ "sha256": "1phm9n25hdg7v7gjjb5l173hrsgb64rc5frmdpchkd7li4ka4g91"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 9,
+ 9
+ ],
+ "commit": "39919478f9472ce7a808ca601f4c19261ecc2f99",
+ "sha256": "1pwkrm98vlpzsy5iwwfksdaz3zzyi7bvdf5fglhsn4ssf47p787g"
+ }
+ },
+ {
+ "ename": "ietf-docs",
+ "commit": "cedfdfe2c282d0484ea8239726f46a4861ef07ea",
+ "sha256": "0wnk36z9g7lksmynd04hb2m6rx45wpxnxj1lhrlpjnzsrknhf4k3",
+ "fetcher": "github",
+ "repo": "choppsv1/ietf-docs",
+ "unstable": {
+ "version": [
+ 20190420,
+ 851
+ ],
+ "commit": "ae157549eae5ec78dcbf215c2f48cb662b73abd0",
+ "sha256": "050c6fpf41xzx5kdpqcpa2rb0fk1a3h3009fdz77v0dp3bxv3a5d"
+ }
+ },
+ {
+ "ename": "iflipb",
+ "commit": "fad6fc8bc3c0be0d5789a0d7626ebc3f298b4318",
+ "sha256": "1nfrrxgi9nlhn477z8ay7jxycpcghhhmmg9dagdhrlrr20fx697d",
+ "fetcher": "github",
+ "repo": "jrosdahl/iflipb",
+ "unstable": {
+ "version": [
+ 20200731,
+ 1655
+ ],
+ "commit": "d48884212499cd128d103c5ceba3173a90ebd2b4",
+ "sha256": "0qbdaf41zpm846jjkr9sgarb7iivpvb1qj5izsd5v4w1sz6igwf4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5
+ ],
+ "commit": "83e698f312a6e621f6d2c87b27d1e4acce96b4bf",
+ "sha256": "1nnkxzf35gx6a7a2xjf73wc5jzzpg4x0hj96jb3j6rim19yrfs8f"
+ }
+ },
+ {
+ "ename": "ignoramus",
+ "commit": "ac5439afe2f9a902e615f0cf919ef7138559c0f0",
+ "sha256": "1czqdmlrds1l5afi8ldg7nrxcwav86538z2w1npad3dz8xk67da9",
+ "fetcher": "github",
+ "repo": "rolandwalker/ignoramus",
+ "unstable": {
+ "version": [
+ 20160414,
+ 1409
+ ],
+ "commit": "b37dc7c07edd9d152436f9019c14df158b599be3",
+ "sha256": "1b4r4h8yrs8zkyr1hnnx2wjrmm39wbqxfhyxpjb5pxi4zk3fh4rj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 4
+ ],
+ "commit": "00385fcd0d42de3a470f61c1fdbe7e19fbef9c5b",
+ "sha256": "1ca2n6vv2z7c3550w0jzwmp6xp0rmrrbljr1ik2ijign62r35a3q"
+ }
+ },
+ {
+ "ename": "igv",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0vjqdyj9j26y0hhzmip6lpwc8g1c9vnmgya1p7v77bkgdicgl659",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/sbarbit/eigv",
+ "unstable": {
+ "version": [
+ 20141210,
+ 1227
+ ],
+ "commit": "47ac6ceede252f451348a2c696398c0cb5279555",
+ "sha256": "11pss3hfxkfkyi273zfajdj43shdl6pn739zfv9jbm75v7m9bz6f"
+ }
+ },
+ {
+ "ename": "image+",
+ "commit": "02d7400477a993b7a3cae327501dbf8db97dfa28",
+ "sha256": "1a9dxswnqn6cvx28180kclpjc0vc6fimzp7n91gpdwnmy123x6hg",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-imagex",
+ "unstable": {
+ "version": [
+ 20150707,
+ 1616
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc",
+ "sha256": "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "967508a6c151e6ab6e97d3ac332dc5599011830d",
+ "sha256": "0k69xbih0273xvmj035vcmm67l6hgjb99pb1jbva5x0pnszb1vdv"
+ }
+ },
+ {
+ "ename": "image-archive",
+ "commit": "17464f31b07f64da0e9db187cd6f5facee3ad7ce",
+ "sha256": "0x0lv5dr1gc9bnr3dn26bc9s1ccq2rp8c4a1licbi929f0jyxxfp",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-image-archive",
+ "unstable": {
+ "version": [
+ 20150621,
+ 132
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8d29535bd832329ffeeac780aae7aa8919af1175",
+ "sha256": "068z3ygq9p139ikm04xqhhqhc994an5isba5c7kpqs009y09xw3w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 7
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "699e967fa7b1dfcce2bf2ec878e74f4238bb6e45",
+ "sha256": "0imvxzcja91cd19zm2frqfpxm8j0bc89w9s7q0pkpvyjz44kjbq8"
+ }
+ },
+ {
+ "ename": "image-dired+",
+ "commit": "98f83f450804f1dc496a7bda17818cdae3f52151",
+ "sha256": "0hhwqfn490n7p12n7ij4xbjh15gfvicmn21fvwbnrmfqc343pcdy",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-image-diredx",
+ "unstable": {
+ "version": [
+ 20150430,
+ 544
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b68094625d963056ad64e0e44af0e2266b2eadc7",
+ "sha256": "1n2ya9s0ld257a8iryjd0dz0z2zs1xhzfiwsdkq4l4azwxl54m29"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b68094625d963056ad64e0e44af0e2266b2eadc7",
+ "sha256": "1n2ya9s0ld257a8iryjd0dz0z2zs1xhzfiwsdkq4l4azwxl54m29"
+ }
+ },
+ {
+ "ename": "imakado",
+ "commit": "ca131089c823065852f58347a88bd49217a22072",
+ "sha256": "18mj0vpv3dybfpa8hl9jwlagsivbhgqgz8lwb8cswsq9hwv3jgd3",
+ "fetcher": "github",
+ "repo": "imakado/emacs-imakado",
+ "unstable": {
+ "version": [
+ 20141024,
+ 923
+ ],
+ "commit": "00a1e7eea2cb9e9066343a23927d6c747707902f",
+ "sha256": "0f3xdqhq9nprvl8bnmgrx20h08ddkfak0is29bsqwckkfgn7pmqp"
+ }
+ },
+ {
+ "ename": "imake",
+ "commit": "28de8f7f5302b27c7c6600ad65a998119518be43",
+ "sha256": "0j732fi6999n9990w4l28raw140fvqfbynyh4x65yilhw95r7c34",
+ "fetcher": "github",
+ "repo": "tarsius/imake",
+ "unstable": {
+ "version": [
+ 20200103,
+ 1238
+ ],
+ "commit": "100d62c7095743fadddfad5b9e0740ee386ba4cf",
+ "sha256": "0wpfl74v7xnvsk3ribxkfyy4p5p9j2wskrcf0naavqpgm6fc6jvr"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 3
+ ],
+ "commit": "100d62c7095743fadddfad5b9e0740ee386ba4cf",
+ "sha256": "0wpfl74v7xnvsk3ribxkfyy4p5p9j2wskrcf0naavqpgm6fc6jvr"
+ }
+ },
+ {
+ "ename": "imapfilter",
+ "commit": "2415894afa3404fbd73c84c58f8b8267187d6d86",
+ "sha256": "0i893kqj6yzadhza800r6ri7fihl01r57z8yrzzh3d09qaias5vz",
+ "fetcher": "github",
+ "repo": "tarsius/imapfilter",
+ "unstable": {
+ "version": [
+ 20180318,
+ 2027
+ ],
+ "commit": "79bbbe918319bc1e8f42a0bef53dc7c77fe868ea",
+ "sha256": "0lqhwh8kav7f526a40rjdy2hzarzph1i3ig2dmbf02gp32sl7rg9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 3
+ ],
+ "commit": "79bbbe918319bc1e8f42a0bef53dc7c77fe868ea",
+ "sha256": "0lqhwh8kav7f526a40rjdy2hzarzph1i3ig2dmbf02gp32sl7rg9"
+ }
+ },
+ {
+ "ename": "imenu-anywhere",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1ylqzdnd3nzcpyyd6rh6i5q9mvf8c99rvpk51fzfm3yq2kyw4dbq",
+ "fetcher": "github",
+ "repo": "vspinu/imenu-anywhere",
+ "unstable": {
+ "version": [
+ 20190512,
+ 1939
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "88b0e120284058b32252e4b0ed1a07c9fe44092f",
+ "sha256": "1w0n4hx29zc6n06qfq3ryc4dcfmk7wx3lw083yv7fi12hjj255vm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fc7f0fd2f19e5ebee70156a99bf87393123893e3",
+ "sha256": "0g2gb7jrys81kphmhlvhvzwl8l75j36y6pqjawh9wmzzwad876q5"
+ }
+ },
+ {
+ "ename": "imenu-list",
+ "commit": "86dea881a5b2d0458449f08b82c2614ad9abd068",
+ "sha256": "092fsn7hnbfabcyakbqyk20pk62sr8xrs45aimkv1l91681np98s",
+ "fetcher": "github",
+ "repo": "bmag/imenu-list",
+ "unstable": {
+ "version": [
+ 20190115,
+ 2130
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "46008738f8fef578a763c308cf6695e5b4d4aa77",
+ "sha256": "14l3yw9y1nk103s7z5i1fmd6kvlb2p6ayi6sf9l1x1ydg9glrpl8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "27170d27c9594989587c03c23f753a809f6a0e10",
+ "sha256": "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"
+ }
+ },
+ {
+ "ename": "imenus",
+ "commit": "cc571105a8d7e2ea85391812f1fa639787fa7563",
+ "sha256": "1q0j6r2n5vjlbgchkz9zdglmmbpd8agawzcg61knqrgzpc4lk82r",
+ "fetcher": "github",
+ "repo": "alezost/imenus.el",
+ "unstable": {
+ "version": [
+ 20200730,
+ 855
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "90200f5f22377903b405082eabe185447968f3e2",
+ "sha256": "04zhyn69bihxqddzsn9j0l6lxjpqkgdvbslh77cfdb4fp02cxsp1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ee1bbd2228dbb86df2865dc9004d375421b171ba",
+ "sha256": "1y57xp0w0c6hg3gn4f1l3612a18li4gwhfa4dy18fy94gr54ycpx"
+ }
+ },
+ {
+ "ename": "imgbb",
+ "commit": "89d363862890aa7f25db1a5fc5e209bccbadf0bf",
+ "sha256": "0p29pasq0f0b5x7yig4g4n1k0y82aiapxazz359pm7n4kjy2s6qp",
+ "fetcher": "github",
+ "repo": "ecraven/imgbb.el",
+ "unstable": {
+ "version": [
+ 20180609,
+ 1649
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "a524a46263835aa474f908827ebab4e8fa586001",
+ "sha256": "1fhhpz29x9vkhzms2qkxblic96kqzg0rqsxj71vgz6fpwdb4f9gy"
+ }
+ },
+ {
+ "ename": "immaterial-theme",
+ "commit": "9a95d88bb00b1313da82929bc2733d726d2041d7",
+ "sha256": "15gwqjfpls7lqc37s70vnhycnry5g9grn6shk2wpijrxfnmyqjhj",
+ "fetcher": "github",
+ "repo": "petergardfjall/emacs-immaterial-theme",
+ "unstable": {
+ "version": [
+ 20200818,
+ 638
+ ],
+ "commit": "d7f18842f5e97977684c3dbb550c418b7625b343",
+ "sha256": "0gfw8fdl1wh7m2p449qxs2kfixqbhl4lc4zgmx1l3llv1kdq9qkw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 5
+ ],
+ "commit": "d7f18842f5e97977684c3dbb550c418b7625b343",
+ "sha256": "0gfw8fdl1wh7m2p449qxs2kfixqbhl4lc4zgmx1l3llv1kdq9qkw"
+ }
+ },
+ {
+ "ename": "immortal-scratch",
+ "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203",
+ "sha256": "00g68abnssf9xw233zs09jyjqbm0720isamc97rfr95d7wvrb2cr",
+ "fetcher": "github",
+ "repo": "jpkotta/immortal-scratch",
+ "unstable": {
+ "version": [
+ 20160517,
+ 2118
+ ],
+ "commit": "faeab0ad6c33c74c0cbd1dfcebffaa0690de40c6",
+ "sha256": "1mx9f8pwnbrm6q9ngdyv64aqkw1izj83m0mf7zqlpww7yfhv1q9b"
+ }
+ },
+ {
+ "ename": "immutant-server",
+ "commit": "d6e906492f9982e2cebd1e4838d7b7c81a295efa",
+ "sha256": "15vcxag1ni41ja4b3q0444sq5ysrisis59la7li6h3617wy8r02i",
+ "fetcher": "github",
+ "repo": "leathekd/immutant-server.el",
+ "unstable": {
+ "version": [
+ 20140311,
+ 2208
+ ],
+ "commit": "2a21e65588acb6a976f2998e30b21fdabdba4dbb",
+ "sha256": "0rbamm9qvipgswxng8g1d7rbdbcj7sgwrccg7imcfapwwq7xhj4h"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "6f3d303354a229780a33e6bae64460a95bfefe60",
+ "sha256": "1pf7pqh8yzyvh4gzvp5npfq8kcfjcbzra0kkw7zmz769xxc8v84x"
+ }
+ },
+ {
+ "ename": "impatient-mode",
+ "commit": "aaa64c4d43139075d77f4518de94bcbe475d21fc",
+ "sha256": "07z5ds3zgzkxvxwaalp9i5x2rl5sq4jjk8ygk1rfmsl52l5y1z6j",
+ "fetcher": "github",
+ "repo": "skeeto/impatient-mode",
+ "unstable": {
+ "version": [
+ 20200723,
+ 2117
+ ],
+ "deps": [
+ "htmlize",
+ "simple-httpd"
+ ],
+ "commit": "cbddfd54242210df3e1c3b590fada5bb5423f5ed",
+ "sha256": "14jnni828ndl1sj92cy49r0aa6y8qwqbm2rrxc87j0yfn5sdckc7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "htmlize",
+ "simple-httpd"
+ ],
+ "commit": "96c068d5add95595dc5be42115d100cf99f908ba",
+ "sha256": "18fawpnqcm1yv7f83sz05pjihwydmafmccfmizyg0hlgayhj0izf"
+ }
+ },
+ {
+ "ename": "import-js",
+ "commit": "6f26b8281f9bd05e3c8f2ef21838275711e622c9",
+ "sha256": "00b2qv1y8879cf8ayplmwqd36w7sppx57myi2wjhy9i2rnvdbmgn",
+ "fetcher": "github",
+ "repo": "Galooshi/emacs-import-js",
+ "unstable": {
+ "version": [
+ 20180709,
+ 1833
+ ],
+ "deps": [
+ "grizzl"
+ ],
+ "commit": "fb1f167e33c388b09a2afd32fbda90a67bfb2e40",
+ "sha256": "0if117lia2ykd6ai0cf5z4ddhsm9icijigwbrn079v7m9s8yl43p"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "grizzl"
+ ],
+ "commit": "0a1032894445062b87dbe4e2c8cdba35ac25c250",
+ "sha256": "0vx2k4k8ig1k74ifxaxvhbkmfmba683qza7f9pp08daa43mgr1r3"
+ }
+ },
+ {
+ "ename": "import-popwin",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0ax0s2jkfmjlnvj741n58m52srppzcn58l4vqq5gvmqj3dbh9rhd",
+ "fetcher": "github",
+ "repo": "emacsorphanage/import-popwin",
+ "unstable": {
+ "version": [
+ 20170218,
+ 1407
+ ],
+ "deps": [
+ "popwin"
+ ],
+ "commit": "bb05a9e226f8c63fe7b18a3e92010357049ab5ba",
+ "sha256": "0jjm214zfq2kk8vzf67vala46lbbkjyms7qm27qv3yhcbc7ricvn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10
+ ],
+ "deps": [
+ "popwin"
+ ],
+ "commit": "6a21efc7fd44f8c2484d22eadf298e4bfd4bc003",
+ "sha256": "1h4c3cib87hvgp37c30lx7cpyxvgdsb9hp7z0nfrkbbif0acrj2i"
+ }
+ },
+ {
+ "ename": "importmagic",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1kpmgpll0zz3zlr3q863v1fq6wmwdwx7mn676x0r7g4iy1bdslmv",
+ "fetcher": "github",
+ "repo": "anachronic/importmagic.el",
+ "unstable": {
+ "version": [
+ 20180520,
+ 303
+ ],
+ "deps": [
+ "epc",
+ "f"
+ ],
+ "commit": "701dfcca5f3ab42be0f26a8d381d7116c79be850",
+ "sha256": "035830aizamh4c8hpnmfrbz9v9gy23d3nx0dv366l3q8mrh36l44"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "epc",
+ "f"
+ ],
+ "commit": "c0360a8146ca65565a7fa66c6d72986edd916dd5",
+ "sha256": "0s6hp62kmhvmgj3m5jr3cfqc8yv3p8jfxk0piq8xbf2chr1hp6l5"
+ }
+ },
+ {
+ "ename": "indent-guide",
+ "commit": "5d7110054801e3af5e5ef710a29f73116a2bc746",
+ "sha256": "029fj9rr9vfmkysi6lzpwra92j6ppw675qpj3sinfq7fqqlicvp7",
+ "fetcher": "github",
+ "repo": "zk-phi/indent-guide",
+ "unstable": {
+ "version": [
+ 20191106,
+ 240
+ ],
+ "commit": "7fc710748f9e5a086acfe77970f117df89ee9749",
+ "sha256": "055cpcj57k14v2vdpc1an6dww5ncvfpxghpgw1spv53wzgv8vzkq"
+ },
+ "stable": {
+ "version": [
+ 20160630
+ ],
+ "commit": "feb207cb5610f351c7cdcf266e0c99117b2f786c",
+ "sha256": "0ykddzily3b6c6k7fvq274pqdjf3934n8p3nrmnsw6c93i1ndd4f"
+ }
+ },
+ {
+ "ename": "indent-info",
+ "commit": "1274c0d871c51e358b3de577372dae8e3a04ead0",
+ "sha256": "0fa6p5fvyxib1iz025kqak7navb11jlfxw5x2jr47180vv9a1373",
+ "fetcher": "github",
+ "repo": "terlar/indent-info.el",
+ "unstable": {
+ "version": [
+ 20200128,
+ 1052
+ ],
+ "commit": "9548f14e7f0f7220d6cd1b8e88756b89fc57c471",
+ "sha256": "1hmrg1pyzcldqh858j3zpb6y0ap4x6142m56pas0lyh65d2wzggk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "4713807101bff80b342d0f847da9006be001141b",
+ "sha256": "0sprs5qgrbvgxd6k8h8fyybxdxfd3izhvk1bh13vg238qbn09a26"
+ }
+ },
+ {
+ "ename": "indent-lint",
+ "commit": "2cd74b5fe81e9b2dcdd9f40e8d5693335629f6ec",
+ "sha256": "1wy8cpyiljjg3315pwivpzlz5cjnxpcigx3pv7rrx5lvdzapz5v8",
+ "fetcher": "github",
+ "repo": "conao3/indent-lint.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 949
+ ],
+ "deps": [
+ "async",
+ "async-await"
+ ],
+ "commit": "c55f4ded11e8e50a96f43675a071354a8fb501c3",
+ "sha256": "0d7vkgzsx6ka4zliscsg6drqhg2bj16i911ryzmsp4v6hj294jrc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "async",
+ "async-await"
+ ],
+ "commit": "5601a716d4daeb444642736ddef420cbc1047968",
+ "sha256": "0ndpdqdcg2rlrw5z86gyj46qsmsilh3a4snyyybi87kk5ajk2k64"
+ }
+ },
+ {
+ "ename": "indent-tools",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "12rawl9qaihgyascy53yxpkknp95wh8fiqygb5cgl7d761qizvp6",
+ "fetcher": "gitlab",
+ "repo": "emacs-stuff/indent-tools",
+ "unstable": {
+ "version": [
+ 20190606,
+ 1642
+ ],
+ "deps": [
+ "hydra",
+ "s",
+ "yafolding"
+ ],
+ "commit": "c419874e6fb296ecdba94b2f4b73c9eecdd5329d",
+ "sha256": "1dwhn9ssirr7i08rfd97mih629cxc9jwnvncb74dxdbgn1bi2b9k"
+ }
+ },
+ {
+ "ename": "indian-ext",
+ "commit": "04e29d1a745d46ff32ccd9ee787ce1fe92786ec6",
+ "sha256": "07mny5rd2bmj1v260zfs4imp795lw4gnwr06pcx0s1ml2km1a2k2",
+ "fetcher": "github",
+ "repo": "paddymcall/indian-ext",
+ "unstable": {
+ "version": [
+ 20190424,
+ 1547
+ ],
+ "commit": "c941cde1205642c6b933ae6abbc47d199f609df0",
+ "sha256": "0523x5am383j1msaiflffa98mm05y38v4jvj144hbrhrdk3vykrs"
+ }
+ },
+ {
+ "ename": "indicators",
+ "commit": "72c96bad0d0b5a4f738fd1b2afe5d302eded440d",
+ "sha256": "1rhmz8sfi2gnv72sbw6kgyzidk43mnp05wnscw9vjvz9v0vwirss",
+ "fetcher": "github",
+ "repo": "Fuco1/indicators.el",
+ "unstable": {
+ "version": [
+ 20161211,
+ 1126
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "f62a1201f21453e3aca93f48483e65ae8251432e",
+ "sha256": "0n933jigp0awba2hxg3kwscmfmmqn3jwbrxcw3vw9aj0a5rg5bq6"
+ }
+ },
+ {
+ "ename": "indium",
+ "commit": "4292058cc6e31cabc0de575134427bce7fcef541",
+ "sha256": "024ljx7v8xahmr8jm41fiy8i5jbg48ybqp5n67k4jwg819cz8wvl",
+ "fetcher": "github",
+ "repo": "NicolasPetton/Indium",
+ "unstable": {
+ "version": [
+ 20200116,
+ 1247
+ ],
+ "deps": [
+ "company",
+ "js2-mode",
+ "js2-refactor",
+ "json-process-client",
+ "seq"
+ ],
+ "commit": "59f12cb1bc73bb399e00b2c6c69d21bdcb9c0955",
+ "sha256": "06x20zapygdgh7i2nr3c8xk8znrpp69yl5vpz08kkix7vssr9sxx"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 4
+ ],
+ "deps": [
+ "company",
+ "js2-mode",
+ "js2-refactor",
+ "json-process-client",
+ "seq"
+ ],
+ "commit": "9614d63fa5a5126bd5b68d62410894371da081bf",
+ "sha256": "1cvc9nk1cbym0ah6z0zmgv9bywj3lxvcaflywmavnn4gvxg67m9n"
+ }
+ },
+ {
+ "ename": "indy",
+ "commit": "e997b356b009b3d2ab467fe49b79d728a8cfe24b",
+ "sha256": "118n3n07h1vx576fdv6v5a94aa004q0gmy9hlsnrswpxa30ahnw7",
+ "fetcher": "github",
+ "repo": "kwrooijen/indy",
+ "unstable": {
+ "version": [
+ 20190807,
+ 625
+ ],
+ "commit": "abc5bee424780ad2de5520f8fefbf8e120c0d9ed",
+ "sha256": "1mvmd8vm9w6vhr7ablxk5pylwrga6knhjjbin9l1xlgrpdh2pglp"
+ }
+ },
+ {
+ "ename": "inf-clojure",
+ "commit": "5d6112e06d1efcb7cb5652b0bec8d282d7f67bd9",
+ "sha256": "0n8w0vx1dnbfz88j45a57z9bsmkxr2zyh6ld72ady8asanf17zhl",
+ "fetcher": "github",
+ "repo": "clojure-emacs/inf-clojure",
+ "unstable": {
+ "version": [
+ 20200801,
+ 1128
+ ],
+ "deps": [
+ "clojure-mode"
+ ],
+ "commit": "2c8e46b584be71fe1a585c9072da86382710dc59",
+ "sha256": "13rk3g58vaizp67c1plhfc80vsshdvvsz81wsf3076xp35p05w9b"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "deps": [
+ "clojure-mode"
+ ],
+ "commit": "2c8e46b584be71fe1a585c9072da86382710dc59",
+ "sha256": "13rk3g58vaizp67c1plhfc80vsshdvvsz81wsf3076xp35p05w9b"
+ }
+ },
+ {
+ "ename": "inf-crystal",
+ "commit": "ff84c742eebb84577f362b2739f4bcf1434d58ac",
+ "sha256": "09ssq7i5c2fxxbrsp3nn1f1ah1yv2nb19n5s1iqyykkk316k2q26",
+ "fetcher": "github",
+ "repo": "brantou/inf-crystal.el",
+ "unstable": {
+ "version": [
+ 20180119,
+ 211
+ ],
+ "deps": [
+ "crystal-mode"
+ ],
+ "commit": "02007b2a2a3bea44902d7c83c4acba1e39d278e3",
+ "sha256": "18627gvpgw2ay7zcbglw6gwpslgh69hbvynwcyqln4c17fk9h0kw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "crystal-mode"
+ ],
+ "commit": "71a330f2d29e2fb4f51d223cf6230b88620a80af",
+ "sha256": "0vija33n2j4j5inzm29qk1bjzaxjm97zn263j15258pqxwkbddv3"
+ }
+ },
+ {
+ "ename": "inf-mongo",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "0f12yb3dgkjnpr4d36jwfnncqzz7kl3bnnrmjw7hv223p2ryzwpx",
+ "fetcher": "github",
+ "repo": "endofunky/inf-mongo",
+ "unstable": {
+ "version": [
+ 20180408,
+ 1338
+ ],
+ "commit": "2e498d1c88bd1904eeec18ed06b1a0cf8bdc2a92",
+ "sha256": "1m6skisj6r3fbxadpwwgf3a3934b2qvwb7zj975qksxq56ij0wkq"
+ }
+ },
+ {
+ "ename": "inf-ruby",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "02f01vwzr6j9iqcdns4l579bhia99sw8hwdqfwqjs9gk3xampfpp",
+ "fetcher": "github",
+ "repo": "nonsequitur/inf-ruby",
+ "unstable": {
+ "version": [
+ 20200730,
+ 1456
+ ],
+ "commit": "9f0f79ff459c7c417e8931ca020db121e24b45b5",
+ "sha256": "0h0kxgihjrabklnwfphaf86b67q0wmfjywffrydhdmlidi56rbis"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 5,
+ 2
+ ],
+ "commit": "d2cc45ac1a035286decb12c4f49c696ad5f03d27",
+ "sha256": "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"
+ }
+ },
+ {
+ "ename": "inflections",
+ "commit": "392c7616d27bf12b29ef3c2ea71e42ffaea81cc6",
+ "sha256": "0f02bhm2a5xiaxnf2c2hlpa4p121xfyyj3c59fy0yldipdxhvw70",
+ "fetcher": "github",
+ "repo": "eschulte/jump.el",
+ "unstable": {
+ "version": [
+ 20170913,
+ 916
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e4f1372cf22e811faca52fc86bdd5d817498a4d8",
+ "sha256": "0354b64drvv8v5g13xy5nc1klwx4hldz1b5mf1frhna7h2dqz0j9"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 5
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "40a7ffdf734ffe7d1968909663146255d7ba69c8",
+ "sha256": "1ig1wdjg914p9ng1nir2fid4mb3xz2dbpmkdnfy1klq2zp0xw2s3"
+ }
+ },
+ {
+ "ename": "info-beamer",
+ "commit": "e9da9aac33df6e53a8cbabcffd8e3a363298b9f3",
+ "sha256": "0jlwvn96diwnngjbabq6wzp5q6rvmwa6p36d80nv8r7x7ch0740q",
+ "fetcher": "github",
+ "repo": "dakra/info-beamer.el",
+ "unstable": {
+ "version": [
+ 20180604,
+ 2122
+ ],
+ "commit": "97db34d23cb05b23e50c15875ee84f5d3236e0db",
+ "sha256": "0z1cya3mhgh5ibj3dgwzii1fkbzsq7zjjzg6hfdv3pd4a7722qlx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "f65e89ad0c2a7acdef1dc182947d59287f371783",
+ "sha256": "0vd8d3dgqgqhrkmmvvf90ac04hcng03q32niwd54c0xj63hcxg8l"
+ }
+ },
+ {
+ "ename": "info-buffer",
+ "commit": "6a7caa8c4fea7ef2211f01bc8340c660a6e6c5f3",
+ "sha256": "1si3sz34bmzcnqm4bc6nq7q2rmsyksh0610bn0r9frf12vakg28p",
+ "fetcher": "gitlab",
+ "repo": "llvilanova/info-buffer",
+ "unstable": {
+ "version": [
+ 20170112,
+ 1422
+ ],
+ "commit": "d35dad6e766c6e2ddb8dc6acb4ce5b6e10fbcaa7",
+ "sha256": "0czkp7cf7qmdm1jdn67gxyxz8b4qj2kby8if50d450xqwbx0da7x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "d35dad6e766c6e2ddb8dc6acb4ce5b6e10fbcaa7",
+ "sha256": "0czkp7cf7qmdm1jdn67gxyxz8b4qj2kby8if50d450xqwbx0da7x"
+ }
+ },
+ {
+ "ename": "info-colors",
+ "commit": "d671ae8dc27439eea427e1848fc11c96ec5aee64",
+ "sha256": "1mbabrfdy9xn7lpqivqm8prp83qmdv5r0acijwvxqd3a52aadc2x",
+ "fetcher": "github",
+ "repo": "ubolonton/info-colors",
+ "unstable": {
+ "version": [
+ 20200125,
+ 1447
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "47ee73cc19b1049eef32c9f3e264ea7ef2aaf8a5",
+ "sha256": "1zmiik1ba7xspbk2g8igr1rscxxzxpzjrzspxjcw9khw6z4iwr51"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "13dd9b6a7288e6bb692b210bcb9cd72016658dae",
+ "sha256": "1h2q19574sc1lrxm9k78668pwcg3z17bnbgykmah01zlmbs264sx"
+ }
+ },
+ {
+ "ename": "info-rename-buffer",
+ "commit": "4750abf33d23bce4ca33eb1afe5b972f14f3af39",
+ "sha256": "05ab9apr6zx2k3xqfbq1jjfql9l3hdsf5i4pj8ay0b9lb2x11dpm",
+ "fetcher": "github",
+ "repo": "oitofelix/info-rename-buffer",
+ "unstable": {
+ "version": [
+ 20200328,
+ 1450
+ ],
+ "commit": "87fb263b18717538fd04878e3358e1e720415db8",
+ "sha256": "07ylrbl9i2d09nspj481hkgcq9vs4ikvl86sfj7594zzdyy6b8qx"
+ }
+ },
+ {
+ "ename": "inform",
+ "commit": "fb678165f97deeebfab624a3bd74ce28836607fd",
+ "sha256": "1smgmzg8nf4lh2ywlzrzzqpmh66rxwbn7vrsvby8v6rx6bmyhfa1",
+ "fetcher": "github",
+ "repo": "dieter-wilhelm/inform",
+ "unstable": {
+ "version": [
+ 20200723,
+ 500
+ ],
+ "commit": "8ff0a19a9f40cfa8283da8ed73de94c35a327423",
+ "sha256": "1rg3v554zjx1mrw1wz2agfrr9317fzj1bqkn82m9r4ys91gx1qh4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "5e096549632b2691fe1f975394d07a31cf603fc6",
+ "sha256": "0bs0z957cs240cacl3bl72dp1sqcpd0j60yrv972w6p1j9v0f3rn"
+ }
+ },
+ {
+ "ename": "inform7",
+ "commit": "5d62f9e9e513103dbebc84bfcb0d18dcf7563211",
+ "sha256": "1h8bba0npnsjcyvmd40lbm54ib1rsa5c5df6lc7m53zg2h9fzcbd",
+ "fetcher": "github",
+ "repo": "GuiltyDolphin/inform7-mode",
+ "unstable": {
+ "version": [
+ 20200430,
+ 1539
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "a409bbc6f04264f7f00616a995fa6ecf59d33d0d",
+ "sha256": "1sai118i5ry58jjc3777kn2ca2nhaxszhl0va6gyy7j2cdpg8gpy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "a409bbc6f04264f7f00616a995fa6ecf59d33d0d",
+ "sha256": "1sai118i5ry58jjc3777kn2ca2nhaxszhl0va6gyy7j2cdpg8gpy"
+ }
+ },
+ {
+ "ename": "inherit-local",
+ "commit": "08b978724ff26b3ea7a134d307d888c80e2a92a9",
+ "sha256": "1v3q3s6qq64k1f4ck6rfgsy1arnf9cxg2kw6d1ahfrwr4ixsqm87",
+ "fetcher": "github",
+ "repo": "shlevy/inherit-local",
+ "unstable": {
+ "version": [
+ 20170409,
+ 1649
+ ],
+ "commit": "b1f4ff9c41f9d64e4adaf5adcc280b82f084cdc7",
+ "sha256": "1fargashyqn4ga420k3ikc1akf7mw3zcarpg24gh2591p4swa0ih"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "b1f4ff9c41f9d64e4adaf5adcc280b82f084cdc7",
+ "sha256": "1fargashyqn4ga420k3ikc1akf7mw3zcarpg24gh2591p4swa0ih"
+ }
+ },
+ {
+ "ename": "ini-mode",
+ "commit": "000cca577d000bafe7bf5711d0bfe7593fb6975a",
+ "sha256": "0f6fbmg4wmlzghcibfbcx3z124b2017rhsasi5smgx9i2vkydzrm",
+ "fetcher": "github",
+ "repo": "Lindydancer/ini-mode",
+ "unstable": {
+ "version": [
+ 20170424,
+ 909
+ ],
+ "commit": "2194cfa2fd13196a37350ec20b3f00dcf6162b7c",
+ "sha256": "0s3dcqywrbggrcn9j5nibhcl4xbnhdndz5sibcp26qswd18jyrdk"
+ }
+ },
+ {
+ "ename": "init-loader",
+ "commit": "e46e6ec79ff4c76fc85e13321e6dabd5797c5f45",
+ "sha256": "0rq7759abp0ml0l8dycvdl0j5wsxw9z5y9pyx68973a4ssbx2i0r",
+ "fetcher": "github",
+ "repo": "emacs-jp/init-loader",
+ "unstable": {
+ "version": [
+ 20200520,
+ 2345
+ ],
+ "commit": "44829fa70f5c4cba03d36db5fa2c969001325b91",
+ "sha256": "1863s0qvnh7hcy2f86d86zajkqldvnz71q16dd9b4wvgnnicwk8s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "128ee76adbf431f0b8c30a3a29cb20c9c5100cde",
+ "sha256": "031vb7ndz68x0119v4pyizz0ykd341ywcp5s7i4z35zx1vcqj8az"
+ }
+ },
+ {
+ "ename": "init-open-recentf",
+ "commit": "4db8b6eced50726c788d7343137f6b4558575abf",
+ "sha256": "0xlmfxhxb2car8vfx7krxmxb3d56x0r3zzkj8ds7yqvr65z85x2r",
+ "fetcher": "github",
+ "repo": "zonuexe/init-open-recentf.el",
+ "unstable": {
+ "version": [
+ 20200321,
+ 737
+ ],
+ "commit": "369304d6adb6875948c4534419c4f303ac23c4f6",
+ "sha256": "1i41xcjj0kdhn7m29jb5gq2j2cyxn424y4lwx6s3fjj1ckx808ii"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "369304d6adb6875948c4534419c4f303ac23c4f6",
+ "sha256": "1i41xcjj0kdhn7m29jb5gq2j2cyxn424y4lwx6s3fjj1ckx808ii"
+ }
+ },
+ {
+ "ename": "initsplit",
+ "commit": "5a908c8fad08cd4d7dbb586570d0f0b384bf9071",
+ "sha256": "0n9dk3x62vgxfn39jkmdg8wxsik0xqkprifgvqzyvn8xcx1blyyq",
+ "fetcher": "github",
+ "repo": "dabrahams/initsplit",
+ "unstable": {
+ "version": [
+ 20160919,
+ 1818
+ ],
+ "commit": "c941d436eb2b10b01c76a582c5a2b23fb30751aa",
+ "sha256": "0vz0pfm2m3v0zk65b4ikk6yfpk282nzbm99fbzj8w76yfg240dfn"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "950bdc568e3fd08e6106170953caf98ac582a431",
+ "sha256": "1rfw38a63bvzglqx7mb8wlnzjvlmkhkn35hn66snqqgvnmnvi54g"
+ }
+ },
+ {
+ "ename": "ink-mode",
+ "commit": "8e5ed03afe02f3a53150c6046b8d6bfc12c9eea0",
+ "sha256": "027k27w9yjzmf6rm9ax2njf9aq4j1y4fa4i5388lf1mf8za9sv2s",
+ "fetcher": "github",
+ "repo": "Kungsgeten/ink-mode",
+ "unstable": {
+ "version": [
+ 20200611,
+ 1807
+ ],
+ "commit": "f610a2e7a5a5b176bdc831c66e52f85dc0e7e450",
+ "sha256": "0bssmf9nsg58xavf55wz1y7akw90bacxqd2czhmj4fnmykqd7cnz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "f883fefb739d62e75a3f7247ea5c6ba8a0895c23",
+ "sha256": "1hr1n0xzjs84a2rgz4mfhhz3d2a7ibgn3wx4kg3qbjlwlwz17x0d"
+ }
+ },
+ {
+ "ename": "inkpot-theme",
+ "commit": "68b7cb0ffe90cd56e2ca6e91e33668be586a1da7",
+ "sha256": "1avgzjwppmmhdmljwpy75acylm3f74d3x0q94ld2n1yhi8xx40i9",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-inkpot-theme",
+ "unstable": {
+ "version": [
+ 20200616,
+ 434
+ ],
+ "commit": "0a5f50c3aa590404ae81cdb08eb869ffc04da625",
+ "sha256": "0hnhq51r0rrl2i3hiwzqzax6cwm3j480w1w2nn8hy61x5p37wn06"
+ }
+ },
+ {
+ "ename": "inline-crypt",
+ "commit": "b04fffe5e52f26e92930a112a64531228f94e340",
+ "sha256": "04mcyyqa9h6g6wrzphzqalpqxsndmzxpavlpdc24z4a2c5s3yz8n",
+ "fetcher": "github",
+ "repo": "Sodel-the-Vociferous/inline-crypt-el",
+ "unstable": {
+ "version": [
+ 20170824,
+ 900
+ ],
+ "commit": "281385b383f850fd2e895926b1cef804dd052633",
+ "sha256": "0hjmq8j7y4wnjgk6z92w4ci0ag9fm6rn63z9mi3krvdv154vz2n0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "commit": "497ce9dc29a8ccac0b6dd6854f5d120514350282",
+ "sha256": "0jipds844432a8m4d5gxbbkk2h1rsq9fg748g6bxy2q066kyzfz6"
+ }
+ },
+ {
+ "ename": "inline-docs",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1imjcx4qgrs5llindgmnvkb73fagnlxfg04s72kckgcy47c4352p",
+ "fetcher": "github",
+ "repo": "stardiviner/inline-docs.el",
+ "unstable": {
+ "version": [
+ 20170523,
+ 450
+ ],
+ "commit": "b57f1681be6147f999cdc12abff414a0442e8897",
+ "sha256": "0ji8qgscs4fxp2i29l3v8z9y6i2glga6bysbcsn855pqsn00xkcv"
+ }
+ },
+ {
+ "ename": "inlineR",
+ "commit": "c52a1ea0afa8e5f439b7ac987b79c49eb08fe95a",
+ "sha256": "0f6bh46ljz01bysm96dzd9iygfh6zgd4w6g8h3kb8lk07brm7227",
+ "fetcher": "github",
+ "repo": "emacsattic/inlineR",
+ "unstable": {
+ "version": [
+ 20191017,
+ 1920
+ ],
+ "commit": "bf6450a3540aa3538546d312324c41befd0a4e54",
+ "sha256": "05by3mzz8gw13c42m2z3cr13zng62mbany0hvixx3jmn1q4hj9r0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "29357186beca825e3d0451b700ec09b9ed65e37b",
+ "sha256": "15nasjknmzy57ilj1gaz3w5sj8b3ijcpgwcd6w2r9xhgcl86m40q"
+ }
+ },
+ {
+ "ename": "insert-esv",
+ "commit": "de7f7ac1b8e67da50a1bce7f23a0805f8b8dfc06",
+ "sha256": "02s0jikma4qp38pf46jw0l6mqlx9kkfl7ny9zxzr6w2jmi8nc9nr",
+ "fetcher": "github",
+ "repo": "sam030820/insert-esv",
+ "unstable": {
+ "version": [
+ 20200808,
+ 1832
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "cf23d1d7e230c0b9212f8eeceff398f86c991b07",
+ "sha256": "0jqz6krd8b606nqr4q169qcg7dbbwa86gi2rcxvnx5i3jhfhrmab"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "8a09629bfafa87f8cd75e92fee6655cfa8be67f2",
+ "sha256": "00w9k2r07nyzqrbqp9q77jgx1h976d1gmiq2nv6zxm36sqfvr0xl"
+ }
+ },
+ {
+ "ename": "insert-kaomoji",
+ "commit": "216fcef758036cf466fa5b52599394709eed48b3",
+ "sha256": "1ip61cigz6b6hsj8ahgb6fxf7yab24r0rjjl11i10ykq7sb49k00",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~zge/kaomoji",
+ "unstable": {
+ "version": [
+ 20200325,
+ 2248
+ ],
+ "commit": "d18423f78cc02ba866b1a1dfb0617476cd941c54",
+ "sha256": "0n6fjndwcp2qg8164420dlc3xsdzm6m0zwbvvwn5w03khbk788hr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "110186d2ebfae303b05d2d33a6939d30ce3ac995",
+ "sha256": "0cy2kj33lnb4d2bzjmgj216l1f63hsz4ssdq7hkb4d7jngb29g09"
+ }
+ },
+ {
+ "ename": "insert-shebang",
+ "commit": "c257f4f5011cd7d0b2a5ef3adf13f9871bf0be92",
+ "sha256": "0z88l1q925v9lwzr6nas9qjy0f57qxilg6smgpx9wj6lll3f7p5v",
+ "fetcher": "github",
+ "repo": "psachin/insert-shebang",
+ "unstable": {
+ "version": [
+ 20180403,
+ 1214
+ ],
+ "commit": "af5f95ff98e2432837f5aa848ba38dd626e82fce",
+ "sha256": "0rdh4bzwq60m641r41kbsgzpkx8hxl7vx82y1cf7zp8zk8la4pd8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 6
+ ],
+ "commit": "adfa473f07443b231914d277c20a3419b30399b6",
+ "sha256": "10zy3vg5fr30hhv0q3jldffhjacg1yrv5d9gfkdz55ry277l3xz1"
+ }
+ },
+ {
+ "ename": "insfactor",
+ "commit": "c9a76a6498c2a0b0d471d3df7ae3d510d027f08c",
+ "sha256": "0c6q1d864qc78sqk9iadjpd01xc7myipgnf89pqa2z75yprndvyn",
+ "fetcher": "github",
+ "repo": "duelinmarkers/insfactor.el",
+ "unstable": {
+ "version": [
+ 20141117,
+ 2
+ ],
+ "commit": "7ef5446cebb08a17d4106d2e6f3c053e49e1e829",
+ "sha256": "112s3c0ii8zjc6vlj2im2qd2pl3hb95pq4zibm86gjpw428wd8iy"
+ }
+ },
+ {
+ "ename": "instapaper",
+ "commit": "a187008942c14dc09f7952a3c5b2e320553cb5c9",
+ "sha256": "1lcrwf2ymlfkvn00djxdr0sd7cjbp2sjdszs3sfmsxffaqzmy9ap",
+ "fetcher": "git",
+ "url": "https://git.carcosa.net/jmcbray/emacs-instapaper.git",
+ "unstable": {
+ "version": [
+ 20110419,
+ 1355
+ ],
+ "commit": "f21531bcb935e7e9b9e8df83dd0e0838adbf9b1b",
+ "sha256": "1ckkdkwhhyc8nwz293m18i526817gldd8br193px0hwfaxqlxadl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 5
+ ],
+ "commit": "4714ed1b014615f8213e6f93637e4ec1d9d5a37a",
+ "sha256": "12giyb5mgq257jl76dxqv2irr3kx6sidbhjjaf9n9k2h42pip3p4"
+ }
+ },
+ {
+ "ename": "intel-hex-mode",
+ "commit": "f1bf82134671b1383f5f4d4a3c180081bea66814",
+ "sha256": "02ffbrkr3zajqhrxc3grmqm632ji4fmgnfabn42islpcfq12q3i4",
+ "fetcher": "github",
+ "repo": "mschuldt/intel-hex-mode",
+ "unstable": {
+ "version": [
+ 20180423,
+ 31
+ ],
+ "commit": "e83c94e1c31a8435a88b3ae395f2bc842ef83217",
+ "sha256": "0jpc6wh3agdh38wdjr1x880iiaj6698nr8dkgx114fsfj1la6f7v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "commit": "e83c94e1c31a8435a88b3ae395f2bc842ef83217",
+ "sha256": "0jpc6wh3agdh38wdjr1x880iiaj6698nr8dkgx114fsfj1la6f7v"
+ }
+ },
+ {
+ "ename": "intellij-theme",
+ "commit": "cfe86071b2e84929476a771da99341f4a73cfd06",
+ "sha256": "1g8cninmq840sl8fmhq2hcsmz7nccbjmprzcl8w1zdavfp86b97g",
+ "fetcher": "gitlab",
+ "repo": "fommil/emacs-intellij-theme",
+ "unstable": {
+ "version": [
+ 20171017,
+ 1415
+ ],
+ "commit": "1bbfff8e6742d18e9b77ed796f44da3b7bd10606",
+ "sha256": "0ml1gi2cn6h3xm5c78vxwv327r0rgimia1vqqi9jb09yb6lckbgj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "1bbfff8e6742d18e9b77ed796f44da3b7bd10606",
+ "sha256": "0ml1gi2cn6h3xm5c78vxwv327r0rgimia1vqqi9jb09yb6lckbgj"
+ }
+ },
+ {
+ "ename": "interaction-log",
+ "commit": "b72951c339c601350a7f10aee05a7fb94bac37ea",
+ "sha256": "1r9qbvgssc2zdwgwmmwv5kapvmg1y3px7268gkiakkfanw3kqk6j",
+ "fetcher": "github",
+ "repo": "michael-heerdegen/interaction-log.el",
+ "unstable": {
+ "version": [
+ 20160305,
+ 1301
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a49a06746d4df6bcfceec3c48dece065d635f9f9",
+ "sha256": "1vmaj14k5idx1ykkp1yl0b9qr4fimwagz7p6c00xi9klvjsx566y"
+ }
+ },
+ {
+ "ename": "interleave",
+ "commit": "6c43d4aaaf4fca17f2bc0ee90a21c51071886ae2",
+ "sha256": "18b3fpxn07y5abkcnaw9is9ihdhik7xjdj6kzl1pz958lk9f4hfy",
+ "fetcher": "github",
+ "repo": "rudolfochrist/interleave",
+ "unstable": {
+ "version": [
+ 20191129,
+ 958
+ ],
+ "commit": "383eb955bf0084a6e6ec03c9bd34511e20e0407d",
+ "sha256": "11bm00pw0bg8z6b5gyfmb2iss5libp6m4x0mc8agazabxzhmzyx9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "6b28363eac939227c6cdc8a73a1d3ea5b002442d",
+ "sha256": "1qs6j9cz152wfy54c5d1a558l0df6wxv3djlvfl2mx58wf0sk73h"
+ }
+ },
+ {
+ "ename": "intero",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1a25lsm1psjvn9az3vd0an46p9qwrrmn09r16dqnhsjcaiabinxi",
+ "fetcher": "github",
+ "repo": "chrisdone/intero",
+ "unstable": {
+ "version": [
+ 20200125,
+ 848
+ ],
+ "deps": [
+ "company",
+ "flycheck",
+ "haskell-mode"
+ ],
+ "commit": "fdb0550a2ddb5692d470336aa4a057717d572695",
+ "sha256": "0myjhj416cbvlfv2x9h624nygfis94jaw9gqf75sjv6y4inkzy73"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 40
+ ],
+ "deps": [
+ "company",
+ "flycheck",
+ "haskell-mode"
+ ],
+ "commit": "107640cc3a3ea12db24ae674ff7a820f6073f3d5",
+ "sha256": "0yr6g2f35rmym6nkdgm6wdczirc5b9f7sza2sad0mx02b81qmaci"
+ }
+ },
+ {
+ "ename": "interval-list",
+ "commit": "afee0fed80f4fa444116b12653c034d760f5f1fb",
+ "sha256": "0926z3lxkmpxalpq7hj355cjzbgpdiw7z4s8xdrpa1pi818d35zf",
+ "fetcher": "github",
+ "repo": "Fuco1/interval-list",
+ "unstable": {
+ "version": [
+ 20150327,
+ 1718
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "38af7ecf0a493ad8f487074938a2a115f3531177",
+ "sha256": "1zv6m24ryls9hvla3hf8wzp6r7fzbxa1lzr1mb0wz0s292l38wjz"
+ }
+ },
+ {
+ "ename": "interval-tree",
+ "commit": "ca0f4b62aee7ff7c4457da29fd25860a5c768319",
+ "sha256": "13zynac3h50x68f1ja72kqdrapjks2zmgqd4g7qwscq92mmh60i9",
+ "fetcher": "github",
+ "repo": "Fuco1/interval-tree",
+ "unstable": {
+ "version": [
+ 20130325,
+ 1407
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "301302f480617091cf3ab6989caac385d52543dc",
+ "sha256": "0fqnn9xhrc9hkaiziafjgg288l6m05416z9kz8l5845fnqsb7pb3"
+ }
+ },
+ {
+ "ename": "inverse-acme-theme",
+ "commit": "1c44dbc8d3ca29d8715af755b845af7236e95406",
+ "sha256": "03g6h8dpn42qnr593ryhj22lj1h2nx4rdr1knhkvxygfv3c4lgh5",
+ "fetcher": "github",
+ "repo": "dcjohnson/inverse-acme-theme",
+ "unstable": {
+ "version": [
+ 20170823,
+ 254
+ ],
+ "deps": [
+ "autothemer",
+ "cl-lib"
+ ],
+ "commit": "74d6f3e2f6534371509dd2d77006435156c276d6",
+ "sha256": "15fk60ky8kbj665yjylmgc4nn4qsk57fvarqzwv3fns64yfshkv3"
+ }
+ },
+ {
+ "ename": "io-mode",
+ "commit": "29ac993c86f992a452784c75c1511d15c4718c91",
+ "sha256": "1fpiml7lvbl4s2xw4wk2y10iifvfza24kd9j8qvi1bgd85qkx42q",
+ "fetcher": "github",
+ "repo": "superbobry/io-mode",
+ "unstable": {
+ "version": [
+ 20161004,
+ 756
+ ],
+ "commit": "fd65ae769093defcf554d6d637eba6e6dfc29f56",
+ "sha256": "1x3j4asbczfr9vrqd7bms57ngqzaik73sm2njcgjshf9c3js3aa9"
+ }
+ },
+ {
+ "ename": "io-mode-inf",
+ "commit": "df121fc9f71af1d060c83555ec611c422cbe8d0d",
+ "sha256": "0hwhvf1qwkmzzlzdda1flw6p1jjh9rzxsfwm2sc4795ac2xm6dhc",
+ "fetcher": "github",
+ "repo": "slackorama/io-emacs",
+ "unstable": {
+ "version": [
+ 20140128,
+ 1934
+ ],
+ "commit": "6dd2bac3fd87484bb7d97e135b06c29d70b444b6",
+ "sha256": "1ard88kc13c57y9zdkyr012w8rdrwahz8a3fb5v6hwqymg16m20s"
+ }
+ },
+ {
+ "ename": "ioccur",
+ "commit": "308c27227795560adf8c979ba1d046286549843d",
+ "sha256": "1a9iy6x4lkm4wgkcb0pv86c2kvpq8ymrc4ssp109r67kwqw7lrr6",
+ "fetcher": "github",
+ "repo": "thierryvolpiatto/ioccur",
+ "unstable": {
+ "version": [
+ 20200326,
+ 1341
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "59350b2066d61444f93c8a51b16353e746486e4c",
+ "sha256": "1055db76008a5nkb243ciq680fg4nn5yzkdv4x8sd1mq1hrs33qh"
+ }
+ },
+ {
+ "ename": "iodine-theme",
+ "commit": "6893ce6309f1e3b3457c99e84611044e653b827a",
+ "sha256": "05mnq0bgcla0pxsgywpvcdgd4sk2xr7bjlp87l0dx8j121vqripj",
+ "fetcher": "github",
+ "repo": "srdja/iodine-theme",
+ "unstable": {
+ "version": [
+ 20151031,
+ 1639
+ ],
+ "commit": "02fb780e1d8d8a6b9c709bfac399abe1665c6999",
+ "sha256": "14zfxa8fc7h4rkz1hyplwf4q2lga3l5dd7a2xq5kk0kvf2fs4mk3"
+ }
+ },
+ {
+ "ename": "ipcalc",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0hw5g30pnqwzvbhf6kggyj6wij5iw7d8jgmr88pyw63kxach8vkv",
+ "fetcher": "github",
+ "repo": "dotemacs/ipcalc.el",
+ "unstable": {
+ "version": [
+ 20200809,
+ 1444
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "58b2b6c90af93ae46c5445b33ee4d1ef4bac1efb",
+ "sha256": "0v6ahhixp57p94m0sagidvq95m45bf4lfwszjzsn7a2wcrvap7r9"
+ }
+ },
+ {
+ "ename": "iplayer",
+ "commit": "6e9a97667365f1c30f53a6aeeb7b909a78888eb1",
+ "sha256": "0wnxvdlnvlmspqsaqx0ldw8j03qjckkqzvx3cbpc2yfs55pm3p7r",
+ "fetcher": "github",
+ "repo": "csrhodes/iplayer-el",
+ "unstable": {
+ "version": [
+ 20161120,
+ 2120
+ ],
+ "commit": "b788fffa4b36bbd558047ffa6be51b1f0f462f23",
+ "sha256": "0x82mxbc6f5azzg7c4zrxz1q763k8i3y1kfb79xfspb2i64dgg5g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "48b664e36e1a8e37eeb3eee80b91ff7126ed449a",
+ "sha256": "043dnij48zdyg081sa7y64lm35z7zvrv8gcymv3l3a98r1yhy3v6"
+ }
+ },
+ {
+ "ename": "ipretty",
+ "commit": "f0a8eb0eefe88b4ea683a4743c0f8393506e014b",
+ "sha256": "0nlp7xmgqsipdq8xjld0xpw3q3qlxm31r2k52hxs32rx044y6c71",
+ "fetcher": "git",
+ "url": "https://framagit.org/steckerhalter/ipretty.git",
+ "unstable": {
+ "version": [
+ 20180606,
+ 522
+ ],
+ "commit": "042f5cc4e6f81d59115e8335c582bb5c571c2585",
+ "sha256": "0vk8k4zfqa0869fg1kzbzzgz65xg7six5m4jm8088pb2nvfn1lrr"
+ }
+ },
+ {
+ "ename": "ipython-shell-send",
+ "commit": "9d3513d38f94de4d86124b5d5a33be8d5f0bfa43",
+ "sha256": "07im2f3890yxpcy4qz1bihi68aslam7qir4vqf05bhqlgaqzamv8",
+ "fetcher": "github",
+ "repo": "jackkamm/ipython-shell-send-el",
+ "unstable": {
+ "version": [
+ 20190220,
+ 2246
+ ],
+ "commit": "0faed86faff02a361f23ce5fc923d0e9b09bb2da",
+ "sha256": "1nx92rmxgrxy9hfi7f2ny3q4zqrzy6jalr85lall7r74aifprrkv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "0faed86faff02a361f23ce5fc923d0e9b09bb2da",
+ "sha256": "1nx92rmxgrxy9hfi7f2ny3q4zqrzy6jalr85lall7r74aifprrkv"
+ }
+ },
+ {
+ "ename": "iqa",
+ "commit": "a9bd2e952d98f7ac2dc823581b07b65e951e9e45",
+ "sha256": "02yrkizk4ssip44s6r62finsrf45hxj9cpil1xrvh8g4jbsmfsw4",
+ "fetcher": "github",
+ "repo": "a13/iqa.el",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1137
+ ],
+ "commit": "c1077aca6553cb2011f21b178e10271a17fe4f58",
+ "sha256": "0rr8m477hma3aaqxzmsayms6qgpf3ff1vx5bgcvbz27ddri375hh"
+ }
+ },
+ {
+ "ename": "ir-black-theme",
+ "commit": "5e725582bc322d03c9dca2b22e8606444fd8753c",
+ "sha256": "1qpq9zbv63ywzk5mlr8x53g3rn37k0mdv6x1l1hcd90gka7vga9v",
+ "fetcher": "github",
+ "repo": "jmdeldin/ir-black-theme.el",
+ "unstable": {
+ "version": [
+ 20130303,
+ 755
+ ],
+ "commit": "36e930d107604b5763c80294a6f92aaa02e6c272",
+ "sha256": "1cy9xwhswj9vahg8zr16r2crm2mm3vczqs73gc580iidasb1q1i2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "b1ca1d0778e3e6228ff756e7fdaf5f5982000fa2",
+ "sha256": "036q933yw7pimnnq43ydaqqfccgf4iwvjhjmsavp7l6y1w16rvmy"
+ }
+ },
+ {
+ "ename": "iregister",
+ "commit": "a12a51873444b84765758e18c9cf24d85a200e44",
+ "sha256": "0iq1nlj5czi4nblrszfv3grkl1fni7blh8bhcfccidms8v9r3mdm",
+ "fetcher": "github",
+ "repo": "atykhonov/iregister.el",
+ "unstable": {
+ "version": [
+ 20150515,
+ 2107
+ ],
+ "commit": "6a48c66187289de5f300492be11c83e98410c018",
+ "sha256": "1ch610b3d0x3nxglp749305syliivamc108rgv9if4ihb67gp8b5"
+ }
+ },
+ {
+ "ename": "irony",
+ "commit": "d2b6a8d57b192325dcd30fddc9ff8dd1516ad680",
+ "sha256": "1xcxrdrs7imi31nxpszgpaywq4ivni75hrdl4zzrf103xslqpl8a",
+ "fetcher": "github",
+ "repo": "Sarcasm/irony-mode",
+ "unstable": {
+ "version": [
+ 20200130,
+ 849
+ ],
+ "deps": [
+ "cl-lib",
+ "json"
+ ],
+ "commit": "1e1aabaa686a08767ab33e5cd43ce8f0ebf8d020",
+ "sha256": "1v3q0k93sviv2nn6qsi8f0537w2g0g6c3wamaidlcb019a5rj4vn"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "json"
+ ],
+ "commit": "e630c497f973fa4d1f0fd0e0fd87fb9d18666986",
+ "sha256": "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"
+ }
+ },
+ {
+ "ename": "irony-eldoc",
+ "commit": "fc42459d5c1671bd478d781339f2572b3de2e7d0",
+ "sha256": "03m0h13jd37vfvn4mavaq3vbzx4x0lklbs0mbc29zaz8pwqlcwz6",
+ "fetcher": "github",
+ "repo": "ikirill/irony-eldoc",
+ "unstable": {
+ "version": [
+ 20200622,
+ 2214
+ ],
+ "deps": [
+ "cl-lib",
+ "irony"
+ ],
+ "commit": "73e79a89fad982a2ba072f2fcc1b4e41f0aa2978",
+ "sha256": "0nwwghsdv11bxqar4ppraxxmm6i076s7nmi9l2c53m708xn4p6pi"
+ }
+ },
+ {
+ "ename": "isearch-dabbrev",
+ "commit": "b9dfc7c1112bac8744910c58f77a98a901fd8065",
+ "sha256": "1hl7zl5vjcsk3z452874g4nfcnmna8m2242dc9cgpl5jddzwqa7x",
+ "fetcher": "github",
+ "repo": "Dewdrops/isearch-dabbrev",
+ "unstable": {
+ "version": [
+ 20141224,
+ 622
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1efe7abba4923015cbc2462395deaec5446a9cc8",
+ "sha256": "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"
+ }
+ },
+ {
+ "ename": "isearch-project",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1dcxbi1x2nbasiy03mp7af2lcmkmxpfblbdcsnm9srmmpdz9lwff",
+ "fetcher": "github",
+ "repo": "jcs-elpa/isearch-project",
+ "unstable": {
+ "version": [
+ 20200717,
+ 807
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "9113d9452a9a879dc0e503f35e8c1fb4d44d9b64",
+ "sha256": "0gvr758kbfxcvrcwkvf8msibwbfqfp44zl99s7ls0gi81pgzwryj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "9113d9452a9a879dc0e503f35e8c1fb4d44d9b64",
+ "sha256": "0gvr758kbfxcvrcwkvf8msibwbfqfp44zl99s7ls0gi81pgzwryj"
+ }
+ },
+ {
+ "ename": "isearch-symbol-at-point",
+ "commit": "5733de00a1800645674e83c5e21c80f2890c4e7c",
+ "sha256": "0j5fr7qdvpd5b096h5a83fz8sh9wybdnsgix6v94gv8lkzdsqkr8",
+ "fetcher": "github",
+ "repo": "re5et/isearch-symbol-at-point",
+ "unstable": {
+ "version": [
+ 20130728,
+ 2221
+ ],
+ "commit": "51a1029bec1ec414885f9edb7e5947603dffdab2",
+ "sha256": "09z49850c32x0rchxg203cxg504xi2b6cjgnd0i4axcs5fmq7gv9"
+ }
+ },
+ {
+ "ename": "isend-mode",
+ "commit": "8ef6e4dab78a4c333647a85ed07a81da8083ec0c",
+ "sha256": "0sk80a08ny9vqw94klqfgii297qm633000wlcldha76ip8viikdv",
+ "fetcher": "github",
+ "repo": "ffevotte/isend-mode.el",
+ "unstable": {
+ "version": [
+ 20190201,
+ 832
+ ],
+ "commit": "38ace354d579eb364d4f95b9ea16081c171ea604",
+ "sha256": "19k09bxlq5a8ba3xb68cajv66qad5vh12k391kq9wcj4gjlniyjv"
+ }
+ },
+ {
+ "ename": "isgd",
+ "commit": "d5ff75b269fd57c5822277b9ed850c69b626f1a5",
+ "sha256": "0yc9mkjzj3w64f48flnjvd193mk9gndrrqbxz3cvmvq3vgahhzyi",
+ "fetcher": "github",
+ "repo": "chmouel/isgd.el",
+ "unstable": {
+ "version": [
+ 20150414,
+ 936
+ ],
+ "commit": "764306dadd5a9213799081a48aba22f7c75cca9a",
+ "sha256": "09hx28lmldm7z3x22a0qx34id09fdp3z61pdr61flgny213q1ach"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "764306dadd5a9213799081a48aba22f7c75cca9a",
+ "sha256": "09hx28lmldm7z3x22a0qx34id09fdp3z61pdr61flgny213q1ach"
+ }
+ },
+ {
+ "ename": "isolate",
+ "commit": "c8091f8d72c24a103f6dcaadc18bbec745c1c3d3",
+ "sha256": "1ldyvw01nq2ynxaaqmw9ihk9kwfss9rqpaydn9f41bqj15xrypjc",
+ "fetcher": "github",
+ "repo": "casouri/isolate",
+ "unstable": {
+ "version": [
+ 20190808,
+ 731
+ ],
+ "commit": "e93cb652f150705347480a2ee13b63fa625b1edf",
+ "sha256": "0fa4z1mm62s1x4fd6d4pwl6zvksx1xiv6id9fy7rdbs0vznsjgqb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "700aa3c7945580c876d29c3c064282c33ebb365c",
+ "sha256": "0j96rzfabn6lgv9xxyndpq3d2nys5z1brrrd7bga786zzwlp78a9"
+ }
+ },
+ {
+ "ename": "isortify",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "0bqs84prlwk94x543mv22wjnz0s7gqbdi7ryvdc20s7vdr18fn82",
+ "fetcher": "github",
+ "repo": "pythonic-emacs/isortify",
+ "unstable": {
+ "version": [
+ 20190315,
+ 2004
+ ],
+ "deps": [
+ "pythonic"
+ ],
+ "commit": "ae7fb7163ce075209543f72953c9f431d103f6a3",
+ "sha256": "0gslib1r9d9dqd9r89dfg8npkybjw2bjdrbs0z2qcnfa82x4fq4z"
+ }
+ },
+ {
+ "ename": "iss-mode",
+ "commit": "ecc9f618b9f065f593b91c1c1221a550ab752bae",
+ "sha256": "1my4vi1x07hg0dva97i685lx6m6fcbfk16j1zy93zriyd7z5plkc",
+ "fetcher": "github",
+ "repo": "rasmus-toftdahl-olesen/iss-mode",
+ "unstable": {
+ "version": [
+ 20141001,
+ 1913
+ ],
+ "commit": "3b517aff31529bab33f8d7b562bd17aff0107fd1",
+ "sha256": "0992lzgar0kz9i1sk5vz17q9qzfgl8fkyxa1q0hmhgnpjf503cnj"
+ }
+ },
+ {
+ "ename": "itail",
+ "commit": "6b810bf1deeb79064144d8b684fab336686018ef",
+ "sha256": "0mcyly88a3c15hl3wll56agpdsyvd26r501h0v64lasfr4k634m7",
+ "fetcher": "github",
+ "repo": "re5et/itail",
+ "unstable": {
+ "version": [
+ 20171112,
+ 804
+ ],
+ "commit": "6e43c20da03be3b9c6ece93b7dc3495975ec1888",
+ "sha256": "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"
+ }
+ },
+ {
+ "ename": "itasca",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0j0lvs9x2j3z5yyhbgmymccswi40vv1gz3sl56bl857m1hlxzshz",
+ "fetcher": "github",
+ "repo": "jkfurtney/itasca-emacs",
+ "unstable": {
+ "version": [
+ 20170601,
+ 1622
+ ],
+ "commit": "3d15dd1b70d6db69b0f4758a3e28b8b506cc84ca",
+ "sha256": "0mfcl7ka7r5mx52xvf13i3799ddkdi9sq2q4p2rkgb96r37ia221"
+ }
+ },
+ {
+ "ename": "iter2",
+ "commit": "d94316660051ee0ba0c12e380e6203986440368f",
+ "sha256": "0kl3z2wwpvk2ddsb3798g41pv0xycsf9dclhv00snpzsr61d9v65",
+ "fetcher": "github",
+ "repo": "doublep/iter2",
+ "unstable": {
+ "version": [
+ 20200517,
+ 1623
+ ],
+ "commit": "987045585d60700b4b9e617313c1a73618a144c9",
+ "sha256": "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "987045585d60700b4b9e617313c1a73618a144c9",
+ "sha256": "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"
+ }
+ },
+ {
+ "ename": "iterator",
+ "commit": "66aa4c3b43083a0098ee3163005dcc36d7251146",
+ "sha256": "17q10fw6y0icsv6vv9n968bwmbjlihrpkkyw62d1kfxhs9yw659z",
+ "fetcher": "github",
+ "repo": "thierryvolpiatto/iterator",
+ "unstable": {
+ "version": [
+ 20170207,
+ 838
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9da54f9aed945b46866782cdf962c9e530419297",
+ "sha256": "0r50hdyr9s18p7ggiyv36g011jgg47bgszvjgcmpp23rz131mxyw"
+ }
+ },
+ {
+ "ename": "ivariants",
+ "commit": "ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38",
+ "sha256": "00fgcm62g4fw4306lw9ld2k7w0c358fcbkxn969k5p009g7pk5bw",
+ "fetcher": "github",
+ "repo": "kawabata/emacs-ivariants",
+ "unstable": {
+ "version": [
+ 20170823,
+ 224
+ ],
+ "deps": [
+ "ivs-edit"
+ ],
+ "commit": "ca0b74d32b5d2d77a45cc6ad6edc00be0ee85284",
+ "sha256": "16hygfx9gla6yhc3kaiy4m6g910m1hak3v86fnpf12kzvjjs9zfx"
+ }
+ },
+ {
+ "ename": "ivs-edit",
+ "commit": "ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38",
+ "sha256": "0gzhvzrfk17j2vwlg82f5ifk4dcfc1yv7barcij38ckran8cqmb2",
+ "fetcher": "github",
+ "repo": "kawabata/ivs-edit",
+ "unstable": {
+ "version": [
+ 20170818,
+ 1441
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "5db39c234aa7393b591168a4fd0a9a4cbbca347d",
+ "sha256": "1sdl83cf87zbv0ynvb6qlgbpm4d3dqhdn84jhhs5j247r5qzhmz6"
+ }
+ },
+ {
+ "ename": "ivy",
+ "commit": "de5b4f40470cdfb4d2b4b3078436a7457f5703af",
+ "sha256": "0lrf3xxxi3b78z80sg6jkaz07gzqrv242ajiiy0rvly6da17i06z",
+ "fetcher": "github",
+ "repo": "abo-abo/swiper",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1250
+ ],
+ "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+ "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13,
+ 0
+ ],
+ "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
+ "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+ }
+ },
+ {
+ "ename": "ivy-avy",
+ "commit": "d820ccd91bcd265539276baedb656ab63d4a9c75",
+ "sha256": "1zanwbf0jcbi0v07n2j058r814dh0qs2qxmwlqrv12j7d1w72kd4",
+ "fetcher": "github",
+ "repo": "abo-abo/swiper",
+ "unstable": {
+ "version": [
+ 20200615,
+ 938
+ ],
+ "deps": [
+ "avy",
+ "ivy"
+ ],
+ "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+ "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
+ }
+ },
+ {
+ "ename": "ivy-bibtex",
+ "commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3",
+ "sha256": "0ri0f8cfzyymx9jrw0bldwzx74bzdd5gc90yv16hv239g65scbvx",
+ "fetcher": "github",
+ "repo": "tmalsburg/helm-bibtex",
+ "unstable": {
+ "version": [
+ 20200429,
+ 1606
+ ],
+ "deps": [
+ "bibtex-completion",
+ "cl-lib",
+ "swiper"
+ ],
+ "commit": "8a0dd9841316793aacddea744d6b8ca4a7857a35",
+ "sha256": "1av058d7888kr3q15y1122r8jkarfw1s83gvkillj7kyzj3i53m5"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "biblio",
+ "cl-lib",
+ "dash",
+ "f",
+ "parsebib",
+ "s",
+ "swiper"
+ ],
+ "commit": "d6a98ac6f28d2a6a05e203115211c98333d40aca",
+ "sha256": "0arhy051945lxjqg77b275ny9nsv60cqj0qfpmvd8xkc07lqfn23"
+ }
+ },
+ {
+ "ename": "ivy-clipmenu",
+ "commit": "17561e8af89bcb4da3d29a1acc04b8ff508af65b",
+ "sha256": "1zn5ccbsr1vniyznj597k98dy752g2ilfp8sznh4w2sljwxd74gi",
+ "fetcher": "github",
+ "repo": "wpcarro/ivy-clipmenu.el",
+ "unstable": {
+ "version": [
+ 20200302,
+ 1419
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "ivy",
+ "s"
+ ],
+ "commit": "ef25acf3f058fe1ede3a29fae2e9cdac8b08cd17",
+ "sha256": "1yzvaf95pncfi1r3xj8h6393dfvx291q3ahdwpp7qn3jh71kjx6k"
+ }
+ },
+ {
+ "ename": "ivy-clojuredocs",
+ "commit": "ef20e3b6fa8d4586d6f17a4e9a6746390dbb2b50",
+ "sha256": "1p3fnj6zz2cxirn2dv54hnwabflxsj04vxjf0f7fbs931c7hrshx",
+ "fetcher": "github",
+ "repo": "wandersoncferreira/ivy-clojuredocs",
+ "unstable": {
+ "version": [
+ 20200714,
+ 1111
+ ],
+ "deps": [
+ "edn",
+ "ivy"
+ ],
+ "commit": "0ea57b70a144ecfa80fbd2ec383ebabedb524c37",
+ "sha256": "1hqs45573651jw248zcyczby4fwp4pdgil2n9rk4lvgb89531qlz"
+ }
+ },
+ {
+ "ename": "ivy-dired-history",
+ "commit": "ad37f6b04ff45fbffeadefc94db16baa27bcc2ac",
+ "sha256": "1vj073k5m0l8rx9iiisikzl053ad9mlhvbk30f5zmw9sw7b9blyl",
+ "fetcher": "github",
+ "repo": "jixiuf/ivy-dired-history",
+ "unstable": {
+ "version": [
+ 20170626,
+ 556
+ ],
+ "deps": [
+ "cl-lib",
+ "counsel",
+ "ivy"
+ ],
+ "commit": "c9c67ea1ee5e68443f0e6006ba162d6c8d868b69",
+ "sha256": "1lim9zi57w011df5zppb18yjkaxkgfy796pc6i01p4dl32x0rpfv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "counsel",
+ "ivy"
+ ],
+ "commit": "3604840f85e4ff2d7ecab6233e820cb2ec5c8733",
+ "sha256": "0slisbnfcdx8jv0p67ag6s4l0m0jmrwcpm5a2jm6sai9x67ayn4l"
+ }
+ },
+ {
+ "ename": "ivy-emms",
+ "commit": "12b434e4c78b3428ee144559cb57ea41df8fb4c5",
+ "sha256": "1kqjdw94f2mg5m0zcnah1xk59dp152dm4si2rd9c66jn79s2ai4a",
+ "fetcher": "github",
+ "repo": "franburstall/ivy-emms",
+ "unstable": {
+ "version": [
+ 20200629,
+ 801
+ ],
+ "deps": [
+ "emms",
+ "ivy"
+ ],
+ "commit": "6f547f9f3dcbf0d5b88595760b3505c7195dc96b",
+ "sha256": "0bqn0hqdrw8psc8r6xcx6dxrjy7llkfpm0fd1k6ra4ybncgaznfg"
+ }
+ },
+ {
+ "ename": "ivy-emoji",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "037r1j2s632a1v05gynlclh6slnhp6mxn55fyx02qw1507l5ap74",
+ "fetcher": "github",
+ "repo": "Sbozzolo/ivy-emoji",
+ "unstable": {
+ "version": [
+ 20200316,
+ 2351
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "a1b7d32048278afd9b06536a8af96f533639d146",
+ "sha256": "0h3051qq6xjc7gkl2a8if9b9ak6wnlc4gmh268s8jvi0nd8dfw2z"
+ }
+ },
+ {
+ "ename": "ivy-erlang-complete",
+ "commit": "ac1b9e350d3f066e4e56202ebb443134d5fc3669",
+ "sha256": "00fqjgrhvcn3ibpgiy4b0sr4x9p6ym5r1rvi4rdzsw2i3nxmgf3a",
+ "fetcher": "github",
+ "repo": "s-kostyaev/ivy-erlang-complete",
+ "unstable": {
+ "version": [
+ 20191112,
+ 1137
+ ],
+ "deps": [
+ "async",
+ "counsel",
+ "erlang",
+ "ivy"
+ ],
+ "commit": "c443dba0c466d36bef01a8985474f5da0a5a65fe",
+ "sha256": "0f0qr6h4y891lzlfi3k0a555qg0jw79fl9bfgv5fxi06m24q4683"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "async",
+ "counsel",
+ "erlang",
+ "ivy"
+ ],
+ "commit": "7d60ed111dbfd34ab6ec1b07c06e2d16a5380b9a",
+ "sha256": "0z34ljmwr0hmkaq5z85p87vljywpv3nnsvhp1zc8cw4hvqarcjqg"
+ }
+ },
+ {
+ "ename": "ivy-explorer",
+ "commit": "8b590a6e0d11fda3d93e4d92f847138f8968b332",
+ "sha256": "088ciy051b3kcd6anm66fnkg510c72hrfgdbgdf4mb9z4d9bk056",
+ "fetcher": "github",
+ "repo": "clemera/ivy-explorer",
+ "unstable": {
+ "version": [
+ 20190909,
+ 1921
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "a413966cfbcecacc082d99297fa1abde0c10d3f3",
+ "sha256": "1720g8i6jq56myv8m9pnr0ab7wagsflm0jgkg7cl3av7zc90zq8r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "14adb6164f1d1646f503c3e4bd9aa559805f93d7",
+ "sha256": "0ffajyl21vz4662738dgga140yrkkcfynhhnk42fzrn5z5zqlwp1"
+ }
+ },
+ {
+ "ename": "ivy-fuz",
+ "commit": "578c150cb8f61058f8003554d372944a990d7a7d",
+ "sha256": "1z7r4fw1kl4vnfd5n6d628xwqhlr1768yfpj55gg28bq5lfx725h",
+ "fetcher": "github",
+ "repo": "Silex/ivy-fuz.el",
+ "unstable": {
+ "version": [
+ 20191222,
+ 946
+ ],
+ "deps": [
+ "fuz",
+ "ivy"
+ ],
+ "commit": "f171ac73422a4bae1503d63d804e691482ed35b2",
+ "sha256": "0ir1ighdlkh7ff1n607rwqyw2m9x9gr1ss4abdx6walajs7q3dki"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "fuz",
+ "ivy"
+ ],
+ "commit": "f171ac73422a4bae1503d63d804e691482ed35b2",
+ "sha256": "0ir1ighdlkh7ff1n607rwqyw2m9x9gr1ss4abdx6walajs7q3dki"
+ }
+ },
+ {
+ "ename": "ivy-gitlab",
+ "commit": "35d4d4f22e4c567954287b2a1cabcb595497095a",
+ "sha256": "0gbwsmb6my0327f9j96s20mybnjaw9yaiwhs3sy3vav0qww91z1y",
+ "fetcher": "github",
+ "repo": "nlamirault/emacs-gitlab",
+ "unstable": {
+ "version": [
+ 20181228,
+ 826
+ ],
+ "deps": [
+ "dash",
+ "gitlab",
+ "ivy",
+ "s"
+ ],
+ "commit": "8c2324c02119500f094c2f92dfaba4c9977ce1ba",
+ "sha256": "056c4fb5sj2y4h94klx2g24n1g3qdi7ifzs8ksw5v6hcj9lrkb1n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "gitlab",
+ "ivy",
+ "s"
+ ],
+ "commit": "a1c1441ff5ffb290e695eb9ac05431e9385578f4",
+ "sha256": "0ywjrgafpl4cnrykx9yysazr7hkd2pxk67h065f8z3mid6cgh1wa"
+ }
+ },
+ {
+ "ename": "ivy-historian",
+ "commit": "fb79cbc9af6cd443b9de97817d24bcc9050d5940",
+ "sha256": "0yzq3rr51q5d64pfc7x5jszz77x6nwpbjj0g74x5ga3bsw3i67d9",
+ "fetcher": "github",
+ "repo": "PythonNut/historian.el",
+ "unstable": {
+ "version": [
+ 20190111,
+ 313
+ ],
+ "deps": [
+ "flx",
+ "historian",
+ "ivy"
+ ],
+ "commit": "ac1bea7d99dd6965c72fabeb72d5fdc38c5380a4",
+ "sha256": "13pray3iapy6vbd1y1y7fqcnjpsvgfz2z7j1a1awzd8ifp12g9cp"
+ }
+ },
+ {
+ "ename": "ivy-hydra",
+ "commit": "06c24112a5e17c423a4d92607356b25eb90a9a7b",
+ "sha256": "1xv8nfi6dzhx868h44ydq4f5jmsa7rbqfa7jk8g0z0ifv477hrvx",
+ "fetcher": "github",
+ "repo": "abo-abo/swiper",
+ "unstable": {
+ "version": [
+ 20200608,
+ 1010
+ ],
+ "deps": [
+ "hydra",
+ "ivy"
+ ],
+ "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+ "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13,
+ 0
+ ],
+ "deps": [
+ "hydra",
+ "ivy"
+ ],
+ "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
+ "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+ }
+ },
+ {
+ "ename": "ivy-lobsters",
+ "commit": "d9774fbf133ce8db3ce996b1a40c586309a2fec6",
+ "sha256": "1g8bwlh4nls21k16r1pmqmb633j19h3jnjbfl2vixyrh2na8ff1w",
+ "fetcher": "github",
+ "repo": "julienXX/ivy-lobsters",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1406
+ ],
+ "deps": [
+ "cl-lib",
+ "ivy"
+ ],
+ "commit": "3f7f90751d15ebcf91253ef3cda18c0aa7d856ff",
+ "sha256": "034ln7r1fgsgpxgmk4iv08pkjkxmdc0c0q44hqv2ryb1zkbwija1"
+ }
+ },
+ {
+ "ename": "ivy-mpdel",
+ "commit": "bb25443752e18e47afc63d5497cc5052c388a607",
+ "sha256": "1v9xiy4bs7r24li6fwi5dfqav8dfr3dy0xhj3wnzvcgwxp5ji56r",
+ "fetcher": "github",
+ "repo": "mpdel/ivy-mpdel",
+ "unstable": {
+ "version": [
+ 20190428,
+ 920
+ ],
+ "deps": [
+ "ivy",
+ "libmpdel",
+ "mpdel"
+ ],
+ "commit": "a42dcc943914c71975c115195d38c739f25e475c",
+ "sha256": "0zf007j3i9prlsqjaf0xw7ylaim463f867nfc63fpsr508xsn5rd"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "ivy",
+ "libmpdel",
+ "mpdel"
+ ],
+ "commit": "a42dcc943914c71975c115195d38c739f25e475c",
+ "sha256": "0zf007j3i9prlsqjaf0xw7ylaim463f867nfc63fpsr508xsn5rd"
+ }
+ },
+ {
+ "ename": "ivy-omni-org",
+ "commit": "4eaad7323462d6c7fd343ede0d2df8c67885e542",
+ "sha256": "1mxdglp0frplv75bik2fl2ybbl0yqfd5r70alcgx1zmba18kaj20",
+ "fetcher": "github",
+ "repo": "akirak/ivy-omni-org",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1050
+ ],
+ "deps": [
+ "dash",
+ "ivy"
+ ],
+ "commit": "a6b284f65b229d9b118b4316c2f6377de93400b1",
+ "sha256": "028c51z4glxxrni1vjdzs9l1475jmcjagpgwaryiqdwx6clia59x"
+ }
+ },
+ {
+ "ename": "ivy-pass",
+ "commit": "7bfef855e071442d2b9d1e0ce9b5706937bffc53",
+ "sha256": "1sb29q22fsjqfxqznf73xcqhzy132bjd45w7r27sfmf825vcysci",
+ "fetcher": "github",
+ "repo": "ecraven/ivy-pass",
+ "unstable": {
+ "version": [
+ 20170812,
+ 1955
+ ],
+ "deps": [
+ "ivy",
+ "password-store"
+ ],
+ "commit": "5b523de1151f2109fdd6a8114d0af12eef83d3c5",
+ "sha256": "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"
+ }
+ },
+ {
+ "ename": "ivy-phpunit",
+ "commit": "93822c5588f81683e3d43f690785b80c207d331d",
+ "sha256": "1spvcf41lvjdmiwp6058wrpp0hfg1cjld6b7zm28m2ys6mn35ycs",
+ "fetcher": "github",
+ "repo": "12pt/ivy-phpunit",
+ "unstable": {
+ "version": [
+ 20180219,
+ 915
+ ],
+ "deps": [
+ "ivy",
+ "phpunit"
+ ],
+ "commit": "ffedb0138d36564e8e36a28fd9bc71ea8944681f",
+ "sha256": "0kf1k3jqg2r20x985h6brg92sg7y47c5vkfjky8xp11gqyqw47bi"
+ }
+ },
+ {
+ "ename": "ivy-posframe",
+ "commit": "9e7c6f7ca439683abf11dcaa38672ac139c0da4f",
+ "sha256": "1sv4xvdvb1g8g5m4f1f159lxbxaz96drsmvhh0k43hp1dh3bhj3b",
+ "fetcher": "github",
+ "repo": "tumashu/ivy-posframe",
+ "unstable": {
+ "version": [
+ 20200528,
+ 553
+ ],
+ "deps": [
+ "ivy",
+ "posframe"
+ ],
+ "commit": "44749562a9e68bd43ccaa225b31311476fab1251",
+ "sha256": "12wj8v483jjnpjvcgkhlm0p971s06c58c3fd73pgnzzppf0fn7xd"
+ }
+ },
+ {
+ "ename": "ivy-prescient",
+ "commit": "a92495d09689932ab9f0b716078ceeeb9cc154e0",
+ "sha256": "017ibpbj390q5d051k3wn50774wvcixzbwikvi5ifzqkhgixqk9c",
+ "fetcher": "github",
+ "repo": "raxod502/prescient.el",
+ "unstable": {
+ "version": [
+ 20200716,
+ 1414
+ ],
+ "deps": [
+ "ivy",
+ "prescient"
+ ],
+ "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+ "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 0
+ ],
+ "deps": [
+ "ivy",
+ "prescient"
+ ],
+ "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+ "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+ }
+ },
+ {
+ "ename": "ivy-purpose",
+ "commit": "1fa2a37a1a6492eddf638216acec4b9d54d3498d",
+ "sha256": "0c5n7x3sa57wslwnldvc0i315xhyi1zndyhr07rzka1rhj8v1c4v",
+ "fetcher": "github",
+ "repo": "bmag/ivy-purpose",
+ "unstable": {
+ "version": [
+ 20160724,
+ 1003
+ ],
+ "deps": [
+ "ivy",
+ "window-purpose"
+ ],
+ "commit": "0495f2f3aed64d7e0028125e76a9a68f8fc4107e",
+ "sha256": "1hiw7mnrr0cnnp0a2mh837pzdaknadwv0sk82vya6blx0a7m691g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "ivy",
+ "window-purpose"
+ ],
+ "commit": "0495f2f3aed64d7e0028125e76a9a68f8fc4107e",
+ "sha256": "1hiw7mnrr0cnnp0a2mh837pzdaknadwv0sk82vya6blx0a7m691g"
+ }
+ },
+ {
+ "ename": "ivy-rich",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1il1lhxxg694j9w65qwzjm4p4l3q1h1hfndybj6z1cb72ijw27fr",
+ "fetcher": "github",
+ "repo": "Yevgnen/ivy-rich",
+ "unstable": {
+ "version": [
+ 20200601,
+ 104
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "10970130b41c6ef9570893cdab8dfbe720e2b1a9",
+ "sha256": "0zpkgj2q16hncafpbap32ypm3666j2vvcrwsn78mca9i82j7xg7l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 6
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "840e13314774a40b69f10f0a15ce1d6af4187b12",
+ "sha256": "1ra18v6lgz3m6asm6d5b92zn1x22yiz4cwxd9b54dnvwi11121m7"
+ }
+ },
+ {
+ "ename": "ivy-rtags",
+ "commit": "3dea16daf0d72188c8b4043534f0833fe9b04e07",
+ "sha256": "18f0jak643dd8lmx701wgk95miajabd8190ls35831slr28lqxsq",
+ "fetcher": "github",
+ "repo": "Andersbakken/rtags",
+ "unstable": {
+ "version": [
+ 20191222,
+ 920
+ ],
+ "deps": [
+ "ivy",
+ "rtags"
+ ],
+ "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+ "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 38
+ ],
+ "deps": [
+ "ivy",
+ "rtags"
+ ],
+ "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
+ "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+ }
+ },
+ {
+ "ename": "ivy-todo",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "06mn430zkisnqrmad81gn88pl7lz0m8rm1yvpngpakwwnhwm0q96",
+ "fetcher": "github",
+ "repo": "Kungsgeten/ivy-todo",
+ "unstable": {
+ "version": [
+ 20200323,
+ 2005
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "d74501cd334b7d709659946c5e02b21cfd5507de",
+ "sha256": "0j9cdzr5s7zi6qf4cax8bc2jrprgaz85mfvc9cx52ryd3yn8l6g0"
+ }
+ },
+ {
+ "ename": "ivy-xcdoc",
+ "commit": "d2fd855c098ca65293d84c3b526b0c39f7b07ade",
+ "sha256": "1my45325ys2m2l5y8pmi5jnbplqm16b1n7zll37163vv16zwnd53",
+ "fetcher": "github",
+ "repo": "hex2010/emacs-ivy-xcdoc",
+ "unstable": {
+ "version": [
+ 20160917,
+ 1055
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "5ea22af36c4c2737fb0bec53432c233482d8b314",
+ "sha256": "1m5ljx395yw70fx643pnf7pk709s9v5b77zvvv3j21d0cjnppqz5"
+ }
+ },
+ {
+ "ename": "ivy-xref",
+ "commit": "a4cd8724e8a4119b61950a97b88219bf56ce3945",
+ "sha256": "1p5a0x83b0bc7b654j1d207s7vifffgwmp26pya2mz0czd68ywy8",
+ "fetcher": "github",
+ "repo": "alexmurray/ivy-xref",
+ "unstable": {
+ "version": [
+ 20191126,
+ 401
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "3d4c35fe2b243d948d8fe02a1f0d76a249d63de9",
+ "sha256": "1c0k1in2hpfwfd7m5r8623d58kxsrfl6pwpgdrkk3077vdgbwiip"
+ }
+ },
+ {
+ "ename": "ivy-yasnippet",
+ "commit": "8c76857d716afab46f5efe46e353935921d5f217",
+ "sha256": "180q6hrsnkssbf9x9bj74dyy26kym4akbsjlj81x4193nnmc5w67",
+ "fetcher": "github",
+ "repo": "mkcms/ivy-yasnippet",
+ "unstable": {
+ "version": [
+ 20200704,
+ 700
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "ivy",
+ "yasnippet"
+ ],
+ "commit": "83402d91b4eba5307f71884a72df8e11cc6a994e",
+ "sha256": "07a4bk3hva41qzz8x4qyswa2f89psxhih89k0slhngw5d8iidx3i"
+ }
+ },
+ {
+ "ename": "ivy-ycmd",
+ "commit": "22e925d1b66f53d25eb1b3a2746dea82e8555783",
+ "sha256": "0vlf75qv9m84gx83rxz0acnlx5lspq92d94q82ba2p4cc6yjyvj3",
+ "fetcher": "github",
+ "repo": "abingham/emacs-ivy-ycmd",
+ "unstable": {
+ "version": [
+ 20180909,
+ 1225
+ ],
+ "deps": [
+ "dash",
+ "ivy",
+ "ycmd"
+ ],
+ "commit": "25bfee8f676e4ecbb645e4f30b47083410a00c58",
+ "sha256": "1ywrkx8ddncy4qhv5gh4qf1cpapyvny42i51p91j9ip7xmihy6lm"
+ }
+ },
+ {
+ "ename": "ivy-youtube",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1masw9qc33valx55klfhzx0bg1hfazmn5yd9wh12q2gjsz8nxyw4",
+ "fetcher": "github",
+ "repo": "squiter/ivy-youtube",
+ "unstable": {
+ "version": [
+ 20181126,
+ 1039
+ ],
+ "deps": [
+ "cl-lib",
+ "ivy",
+ "request"
+ ],
+ "commit": "849b6db7ef02b080a86c1b887488e2935c31059a",
+ "sha256": "0f90dq8qhmsnm2hvnvzyb20nq0vmgnqzqa693scq69dv5rdjgwyj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "ivy",
+ "request"
+ ],
+ "commit": "23e1089d4c4fc32db20df14ba10078aabf117e87",
+ "sha256": "0m70vxjj49kf8bzni2qchgzgx808z1fcfh02cflkhjcb77dkq8d6"
+ }
+ },
+ {
+ "ename": "ix",
+ "commit": "3a9d68fcf5bddbf07909b77682474dc592077051",
+ "sha256": "1fl76dk8vgw3mrh5iz99lrsllwya6ij9d1lj3szcrs4qnj0b5ql3",
+ "fetcher": "github",
+ "repo": "theanalyst/ix.el",
+ "unstable": {
+ "version": [
+ 20131027,
+ 1629
+ ],
+ "deps": [
+ "grapnel"
+ ],
+ "commit": "aea4c54a5cc5a6f26637353c16a3a0e70fc76963",
+ "sha256": "069alh9vs6is3hvbwxbwr9g8qq9md5c92wg5bfswi99yciqdvc4i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "deps": [
+ "grapnel"
+ ],
+ "commit": "498dac674f4f1910d39087b1457c5da5465a0614",
+ "sha256": "0rpxh1jv98dl9b5ldjkljk70z4hkl61kcmvy1lhpj3lxn8ysv87a"
+ }
+ },
+ {
+ "ename": "iy-go-to-char",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "10szn9y7gl8947p3f9w6p6vzjf1a9cjif9mbj3qdqx4vbsl9mqpz",
+ "fetcher": "github",
+ "repo": "doitian/iy-go-to-char",
+ "unstable": {
+ "version": [
+ 20141029,
+ 1546
+ ],
+ "commit": "04ab4f5f3a241cbbc9b8c178a22b412a62f632f9",
+ "sha256": "0bcm3y3qvsrk7gd23xfzz5bgcnm3h4l63w9hv8cr9n86sm8475m1"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 2,
+ 1
+ ],
+ "commit": "77b40d64eef9dad11eca59f4e3fbc6e849de7434",
+ "sha256": "1mb0k4lmbkbpn6qzzg8n14pybhd5zla77ppqac6a9kw89fj2qj4i"
+ }
+ },
+ {
+ "ename": "j-mode",
+ "commit": "410134ab2145adad3648b1024bfe4f6801df82c9",
+ "sha256": "0f9lsr9hjhdvmzx565ivlncfzb4iq4rjjn6a41053cjy50bl066i",
+ "fetcher": "github",
+ "repo": "zellio/j-mode",
+ "unstable": {
+ "version": [
+ 20171224,
+ 1856
+ ],
+ "commit": "e8725ac8af95498faabb2ca3ab3bd809a8f148e6",
+ "sha256": "0icrwny3cif0iwgyf9i25sj9i5gy056cn9ic2wwwbzqjqb4xg6dd"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "caa55dfaae01d1875380929826952c2b3ef8a653",
+ "sha256": "07kbicf760nw4qlb2lkf1ns8yzqy0r5jqqwqjbsnqxx4sm52hml9"
+ }
+ },
+ {
+ "ename": "jabber",
+ "commit": "d29cc2a26829e678467664d6b2f5c171dc9dbd25",
+ "sha256": "0vsmj33qh07amkdlp5i0ldspxsw8pp16lwcq97i1xk59glif0n2f",
+ "fetcher": "github",
+ "repo": "legoscia/emacs-jabber",
+ "unstable": {
+ "version": [
+ 20180927,
+ 2325
+ ],
+ "deps": [
+ "fsm",
+ "srv"
+ ],
+ "commit": "fff33826f42e040dad7ef64ea312d85215d3b0a1",
+ "sha256": "1fif38qhiaxskfmqin82n9334bzrkgd1h5ip1djcm571i670gj74"
+ }
+ },
+ {
+ "ename": "jabber-otr",
+ "commit": "9219f685c18c8e799cae3dc43cc1c740c0f67733",
+ "sha256": "114z5bwhkza03yvfa4nmicaih2jdq83lh6micxjimpddsc8fjgi0",
+ "fetcher": "github",
+ "repo": "legoscia/emacs-jabber-otr",
+ "unstable": {
+ "version": [
+ 20150918,
+ 1144
+ ],
+ "deps": [
+ "jabber"
+ ],
+ "commit": "2692b1530234e0ba9a0d6c1eaa1cbe8679f193c0",
+ "sha256": "0yv86nadp6dfzl05vhk8c1kahg2pcrhfmd3mnfjrngp7ksac5lyf"
+ }
+ },
+ {
+ "ename": "jack-connect",
+ "commit": "c0f5c5f8051f3046baebb08f41b0ca0bf0d73c85",
+ "sha256": "1ssl126wihaf8m2f6ms0l5ai6pz5wn348a09k6l0h3jfww032g1q",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/sbarbit/jack-connect",
+ "unstable": {
+ "version": [
+ 20200519,
+ 1027
+ ],
+ "commit": "fae8c5f9b383f7606f3883badfd1294e8affb0db",
+ "sha256": "0r6dihw5dar7w6h5xvif25fv9alwarb74mmaxq2ld8rbhv4il66c"
+ }
+ },
+ {
+ "ename": "jade-mode",
+ "commit": "877b5a3e612e1b1d6d51e60c66b0b79f231abdb2",
+ "sha256": "156j0d9wx6hrhph0nsjsi1jha4h65rcbrbff1j2yr8vdsszjrs94",
+ "fetcher": "github",
+ "repo": "brianc/jade-mode",
+ "unstable": {
+ "version": [
+ 20160525,
+ 1441
+ ],
+ "commit": "4dbde92542fc7ad61df38776980905a4721d642e",
+ "sha256": "0p6pfxbl98kkwa3lgx82h967w4p0wbd9s96gvs72d74ryan07ij1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "4e7a20db492719062f40b225ed730ed50be5db56",
+ "sha256": "0krbd1qa2408a97pqhl7fv0x8x1n2l3qq33zzj4w4vv0c55jk43n"
+ }
+ },
+ {
+ "ename": "jammer",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "19qvl428daa1xzkj3dldj5yvylq3w313bg42m4lqrmzhx3dgj8dd",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/jammer.git",
+ "unstable": {
+ "version": [
+ 20200506,
+ 1247
+ ],
+ "commit": "76e006dddd491aecccfcb06939db56f9f7daa56d",
+ "sha256": "18mz9yiz94xbvjlrpfxgfvv87s3rv3pv4b8y9c5yywr12zp6jbag"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "1ba232b71507b468c60dc53c2bc8888bef36c858",
+ "sha256": "0x0vz7m9kn7b2aiqvrdqx8qh84ynbpzy2asz2b18l47bcwa7r5bh"
+ }
+ },
+ {
+ "ename": "janet-mode",
+ "commit": "c94abb076bf1f3fd6654cc1857b7b3cfe5bf5e58",
+ "sha256": "1kr5ldrgqrl0hfpkf6x5a0kr0l4psykw771n5dx6ably6mnlpphh",
+ "fetcher": "github",
+ "repo": "ALSchwalm/janet-mode",
+ "unstable": {
+ "version": [
+ 20200509,
+ 1651
+ ],
+ "commit": "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7",
+ "sha256": "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"
+ }
+ },
+ {
+ "ename": "japanese-holidays",
+ "commit": "80088028a1322e99e5fc50bebe08fcb6d1a2a44d",
+ "sha256": "0pxpkikkn2ys0kgf3lbrdxv8iym50h5ik2xzza0qk7cw1v93jza9",
+ "fetcher": "github",
+ "repo": "emacs-jp/japanese-holidays",
+ "unstable": {
+ "version": [
+ 20190317,
+ 1220
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "45e70a6eaf4a555fadc58ab731d522a037a81997",
+ "sha256": "041rww8ngvjmgkiviqwq6wci8wgh4bs0wjjc8v8lqpwqhbzf65jy"
+ }
+ },
+ {
+ "ename": "jape-mode",
+ "commit": "b034024bd31c4be96c478a951b0ef63d8f89a1b7",
+ "sha256": "1gd685r86h0kr36msw81gfgwv7d35hihz6h0jkc6vd22wf6qc3ly",
+ "fetcher": "github",
+ "repo": "tanzoniteblack/jape-mode",
+ "unstable": {
+ "version": [
+ 20140903,
+ 1506
+ ],
+ "commit": "85b9182850707b5d107391f6caee5bd401507a7d",
+ "sha256": "0xmv7gw5xms6nhjcl51cw33yvjgw0c6bpnlyca3195x7g34sg1zj"
+ }
+ },
+ {
+ "ename": "jar-manifest-mode",
+ "commit": "ed68a9120d4f1e2895606938d1a117fb01abd1bc",
+ "sha256": "0kx358m3p23r8m7z45454i62ijmdlf4mljlbqc20jkihfanr6wqd",
+ "fetcher": "github",
+ "repo": "omajid/jar-manifest-mode",
+ "unstable": {
+ "version": [
+ 20160501,
+ 26
+ ],
+ "commit": "270dae14c481300f75ed96dad3a5ae42ca928a1d",
+ "sha256": "1p7w3hq2cyn1245q0zn8m7hpjs8nbp7kqfmd2gzi2k209czipy21"
+ }
+ },
+ {
+ "ename": "jasminejs-mode",
+ "commit": "8e58e8c102f6110f9a8bda47a4601197db47e743",
+ "sha256": "1a70j3aglrwmaw9g8m99sxad2vs53y4swxh97gqjsgx1rrx03g52",
+ "fetcher": "github",
+ "repo": "stoltene2/jasminejs-mode",
+ "unstable": {
+ "version": [
+ 20150527,
+ 5
+ ],
+ "commit": "9f8044bf81ab5b4841a30b0bd099916e1b7ff54a",
+ "sha256": "1zcrxijcwqfs6r1cd6w4jq8g3ly0a69nf0cbx93w5v86x2kjpz0l"
+ }
+ },
+ {
+ "ename": "jastadd-ast-mode",
+ "commit": "32d59dd9e796438f1752d36a30d4e062abbb6dd1",
+ "sha256": "1cwqxzmqx5wxaax12rq0hy0whpaivqncykym43p3an2sl9s6ngva",
+ "fetcher": "github",
+ "repo": "rudi/jastadd-ast-mode",
+ "unstable": {
+ "version": [
+ 20161219,
+ 926
+ ],
+ "commit": "a29fdb470cbf0a398164950a3b0d2217de48e0c0",
+ "sha256": "01fv0ixkshy7i6wzcgq6xvijvh3n402vyhmh3qzjwi9p0vxvdyxv"
+ }
+ },
+ {
+ "ename": "java-imports",
+ "commit": "5f6f4e4c14c422c2066f2200bb9b8f35e2ecc896",
+ "sha256": "1waz6skyrm1n8wpc0pwa652l11wz8qz1m89mqxk27k3lwyd84n98",
+ "fetcher": "github",
+ "repo": "dakrone/emacs-java-imports",
+ "unstable": {
+ "version": [
+ 20170913,
+ 1410
+ ],
+ "deps": [
+ "pcache",
+ "s"
+ ],
+ "commit": "e96ff44ed48b362ab6227b8b802b84d84f78bcaa",
+ "sha256": "0nryawj8v6gj6hnb81yf6966kjnydcz49zsg2k355gldryqf4v5p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "pcache",
+ "s"
+ ],
+ "commit": "275f354c245df741b45e88d085660722e81a12be",
+ "sha256": "1bngn6v6w60qb3zz7s3px7v3wk99a3hfvzrg9l06dz1q7xgyvsi1"
+ }
+ },
+ {
+ "ename": "java-snippets",
+ "commit": "ec561bb8ee3d6df0d493c20497dd8c5897bf1e5e",
+ "sha256": "0bsmp6sc3khdadkmwqy8khz8kzqijcsv70gimm2cs1kwnbyj6pfp",
+ "fetcher": "github",
+ "repo": "nekop/yasnippet-java-mode",
+ "unstable": {
+ "version": [
+ 20160627,
+ 252
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "6d0e2768823be27dbe07448f4cb244cd657a7136",
+ "sha256": "1mgpb7g28ppbrl6sbyyswz9brrx8b7xjxmv576ija2qlh3whv5gs"
+ }
+ },
+ {
+ "ename": "javadoc-lookup",
+ "commit": "3d7d5f55c7d90181cc4eff68bb472f772f070a93",
+ "sha256": "1fffs0iqkk9rg5vbxifvn09j4i2751p81bzcvy5fslr3r1r2nv79",
+ "fetcher": "github",
+ "repo": "skeeto/javadoc-lookup",
+ "unstable": {
+ "version": [
+ 20160214,
+ 31
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "507a2dd443d60b537b8f779c1847e2cd0ccd1382",
+ "sha256": "16gywcma1s8kslwznlxwlx0xj0gs5g31637kb74vfdplk48f04zj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "507a2dd443d60b537b8f779c1847e2cd0ccd1382",
+ "sha256": "16gywcma1s8kslwznlxwlx0xj0gs5g31637kb74vfdplk48f04zj"
+ }
+ },
+ {
+ "ename": "javap-mode",
+ "commit": "009ce356c410d980613f21fa7c9f1c97ee9af76f",
+ "sha256": "19p39l4nwgxm52yimy4j6l43845cpk8g5qdrldlwfxd7dvay09ay",
+ "fetcher": "github",
+ "repo": "hiredman/javap-mode",
+ "unstable": {
+ "version": [
+ 20120223,
+ 2208
+ ],
+ "commit": "864c1130e204b2072e1d19cd027b6fce8ebe6629",
+ "sha256": "070r4mg4v937n4h2bmzdbn3vsmmq7ijz69nankqs761jxv5gcwlg"
+ }
+ },
+ {
+ "ename": "jaword",
+ "commit": "00fe123ddc7fbcb9fd2b97e8a9fc8a8c5fabbf7f",
+ "sha256": "05pzh99zfl8n3p6lxdd9abr52m24hqcb105458i1cy0ra840bf4d",
+ "fetcher": "github",
+ "repo": "zk-phi/jaword",
+ "unstable": {
+ "version": [
+ 20200816,
+ 647
+ ],
+ "deps": [
+ "tinysegmenter"
+ ],
+ "commit": "45e350895fc55f087a2102fded5b306811089a7d",
+ "sha256": "02ncm22wldx8g3iibdw92gk4hdig0209f7bmhxrhgdv8xp544c2h"
+ }
+ },
+ {
+ "ename": "jazz-theme",
+ "commit": "da25345df9d8d567541ed6b0ec832310cde67115",
+ "sha256": "0ad8kvrmd3gyb8wfghcl4r3kwzplk5gxlw3p23wsbx6c2xq6xr7g",
+ "fetcher": "github",
+ "repo": "donderom/jazz-theme",
+ "unstable": {
+ "version": [
+ 20200417,
+ 2042
+ ],
+ "commit": "b6694f09e10aa7df14836aac2f6615c32aa572dd",
+ "sha256": "1mjzfr2iz72n3ds6d0sqhqd2a5kcfn8d2kji9hqmydmplg247apx"
+ }
+ },
+ {
+ "ename": "jbeans-theme",
+ "commit": "6dd4bd78795ec7509d8744fec1e80426ce0557ec",
+ "sha256": "0y7ccycfnpykgzr88968w7dl45qazf8b9zlf7ydw3ghkl4f6lbwl",
+ "fetcher": "github",
+ "repo": "synic/jbeans-emacs",
+ "unstable": {
+ "version": [
+ 20180309,
+ 1625
+ ],
+ "commit": "3caa95998d8492a2ca6c17971de499ca15609871",
+ "sha256": "0k8bd5j09753czl55dcwijs4j1vxir4zwcwlgsxli4b4f8sl2z8r"
+ }
+ },
+ {
+ "ename": "jdecomp",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1vgjmz7rxvgy9lprzr5b018lzqy3h0zg8913la1bzgwlm3mr68y5",
+ "fetcher": "github",
+ "repo": "xiongtx/jdecomp",
+ "unstable": {
+ "version": [
+ 20170224,
+ 2200
+ ],
+ "commit": "692866abc83deedce62be8d6040cf24dda7fb7a8",
+ "sha256": "00l6mc643na97jrb0k595kwmfg8wc7m5iqjd9l9vvf3dal6389b8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "1590b06f139f036c1041e1ce5c0acccaa24b31a7",
+ "sha256": "0sb9vzn6cycys31r98kxwgpn7v9aw5ck86nkskmn9hhhkrfsabii"
+ }
+ },
+ {
+ "ename": "jdee",
+ "commit": "a6d2c98f3bf2075e33d95c7befe205df802e798d",
+ "sha256": "15n76w0ygjmsa2bym59bkmbbh0kpqx6nacp4zz32hlg48kgz1dx4",
+ "fetcher": "github",
+ "repo": "jdee-emacs/jdee",
+ "unstable": {
+ "version": [
+ 20191102,
+ 1426
+ ],
+ "deps": [
+ "dash",
+ "flycheck",
+ "memoize",
+ "s"
+ ],
+ "commit": "b510a29f1fc1bea218a6230fb219922775687c78",
+ "sha256": "0c0jfi3gg85ccid7h9ll0a160lsjb11wxqncs4qnz75d3npmgsw9"
+ }
+ },
+ {
+ "ename": "jedi",
+ "commit": "bded1840a39fbf1e014c01276eb2f9c5a4fc218f",
+ "sha256": "1777060q25k9n2g6h1lm5lkki900pmjqkxq72mrk3j19jr4pk9m4",
+ "fetcher": "github",
+ "repo": "tkf/emacs-jedi",
+ "unstable": {
+ "version": [
+ 20191011,
+ 1750
+ ],
+ "deps": [
+ "auto-complete",
+ "jedi-core"
+ ],
+ "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
+ "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 8
+ ],
+ "deps": [
+ "auto-complete",
+ "jedi-core"
+ ],
+ "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
+ "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
+ }
+ },
+ {
+ "ename": "jedi-core",
+ "commit": "bded1840a39fbf1e014c01276eb2f9c5a4fc218f",
+ "sha256": "0pzi32zdb4g9n4kvpmkdflmqypa7nckmnjq60a3ngym4wlzbb32f",
+ "fetcher": "github",
+ "repo": "tkf/emacs-jedi",
+ "unstable": {
+ "version": [
+ 20191011,
+ 1750
+ ],
+ "deps": [
+ "cl-lib",
+ "epc",
+ "python-environment"
+ ],
+ "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
+ "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 8
+ ],
+ "deps": [
+ "cl-lib",
+ "epc",
+ "python-environment"
+ ],
+ "commit": "9d5f29116c4d42cae561a9d69e6fba2b61e2cf43",
+ "sha256": "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"
+ }
+ },
+ {
+ "ename": "jedi-direx",
+ "commit": "a058c3007e63b2b651689fd17c789f7d69348f83",
+ "sha256": "1y4n4c2imnm3f1q129bvbi4gzk0iazd8qq959gvq9j9fl1aziiz1",
+ "fetcher": "github",
+ "repo": "tkf/emacs-jedi-direx",
+ "unstable": {
+ "version": [
+ 20140310,
+ 936
+ ],
+ "deps": [
+ "direx",
+ "jedi"
+ ],
+ "commit": "7a2e677400717ed12b959cb5988e7b3fb1c12117",
+ "sha256": "1pgi5vnwz5agrpvy7nwg3gv2nfbbmimhk8dxkg81k6yf1iiqxcap"
+ }
+ },
+ {
+ "ename": "jeison",
+ "commit": "cd3a1dd8dc83c0fa8824036818a6a9b59adebb6c",
+ "sha256": "0day982ayqavwa91p3ng8a1wkkh49pzi3if4ddqm1xysldf5w9xg",
+ "fetcher": "github",
+ "repo": "SavchenkoValeriy/jeison",
+ "unstable": {
+ "version": [
+ 20190721,
+ 1651
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "66e276c1f2f08ca54d2cd60f2c9f974c662aae8b",
+ "sha256": "11k0g077893pd831vbkyiakmvkxzcwgr1g6inx10cscl0yvciq62"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "4b68ba9e001594f3e33d98cf89580d0aee02b258",
+ "sha256": "0ixr51wmq0w89430070bb05dmd9ip29f6bpry05hs0pc6qzh8wj9"
+ }
+ },
+ {
+ "ename": "jekyll-modes",
+ "commit": "6667529d56dc35c5c56e4b4a4d1f06b6172df677",
+ "sha256": "1305f1yg1mamyw3bkzrk5q3q58ihs8f5k9vjknsww5xvrzz3r1si",
+ "fetcher": "github",
+ "repo": "fred-o/jekyll-modes",
+ "unstable": {
+ "version": [
+ 20141117,
+ 1314
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "7cb10b50fd2883e3f7b10fdfd98f19f2f0b2381c",
+ "sha256": "0rx72rid7922mhw21j85kxmx0fhpkmkv9jvxmj9izy01xnjbk00c"
+ }
+ },
+ {
+ "ename": "jemdoc-mode",
+ "commit": "49a8c0f885df0b91d758b4d7c92bd67368da8a56",
+ "sha256": "1bl8a9fcilrqjzh92q7nvd16pxjiwmbnj157q2bx36y7bxm60acv",
+ "fetcher": "github",
+ "repo": "drdv/jemdoc-mode",
+ "unstable": {
+ "version": [
+ 20170704,
+ 2027
+ ],
+ "commit": "529b4d4681e1198b9892f340fdd6c3f1592a047a",
+ "sha256": "1f8nn8mv18q3x3k32i6kjis9f3g1ybdjcfaw8hywqwy6k8dr734m"
+ }
+ },
+ {
+ "ename": "jenkins",
+ "commit": "2ed2da33db5eaea1a37f86057da174a45cd37ea5",
+ "sha256": "0ji42r7p3f3hh643839xf74gb231vr7anycr2xhkga8qy2vwa53s",
+ "fetcher": "github",
+ "repo": "rmuslimov/jenkins.el",
+ "unstable": {
+ "version": [
+ 20200524,
+ 2016
+ ],
+ "deps": [
+ "dash",
+ "json"
+ ],
+ "commit": "bd06cdc57c0cb9217d773eeba06ecc998f10033b",
+ "sha256": "0g99bi3i27ay8xhz409k9ska9yy77j3k687l817k1fyhlyy5lpjk"
+ }
+ },
+ {
+ "ename": "jenkins-watch",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1mdmh62rq3b8p23xgaf4i0kzpgq3ldljdxsnk07wa8bp3p7jxvgs",
+ "fetcher": "github",
+ "repo": "ataylor284/jenkins-watch",
+ "unstable": {
+ "version": [
+ 20121004,
+ 2326
+ ],
+ "commit": "37b84dfbd98240a57ff798e1ff8bc7dba2913577",
+ "sha256": "0jayhv8j7b527dimhvcs0d7ax25x7v50dk0k6apisqc23psvkq66"
+ }
+ },
+ {
+ "ename": "jenkinsfile-mode",
+ "commit": "a579d11271a8f46a65cf557b74f84db36a7b8bb4",
+ "sha256": "1j70gp8w5f3nli5m08s9ysl3k7pys6n4bzdzmbq0r9yzl02i6m8r",
+ "fetcher": "github",
+ "repo": "john2x/jenkinsfile-mode",
+ "unstable": {
+ "version": [
+ 20200725,
+ 2325
+ ],
+ "deps": [
+ "groovy-mode"
+ ],
+ "commit": "00d259ff9b870d234540e00e1d7c83cccdb063b8",
+ "sha256": "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"
+ }
+ },
+ {
+ "ename": "jest",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1x9dqyrpri2giqzzlcg0nnq6wjfdfmy9fqqrq159qvw8rshvfzcz",
+ "fetcher": "github",
+ "repo": "Emiller88/emacs-jest",
+ "unstable": {
+ "version": [
+ 20200625,
+ 1611
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "dash-functional",
+ "js2-mode",
+ "magit-popup",
+ "projectile",
+ "s"
+ ],
+ "commit": "4c6ddd3304e199211f0fbdc8a5b83ccbfe1f7fcc",
+ "sha256": "1v940c6p77dhs3rf016qqzhaniifkfsspbkpknf7vdssxgk9g1a5"
+ }
+ },
+ {
+ "ename": "jest-test-mode",
+ "commit": "767499b7048cc0f1e47dff17f66f1e2fe8b023b5",
+ "sha256": "09vwidm49bw8kb4a9vax4rgbzk1ndg0fkdaj9k9sy973rapb213a",
+ "fetcher": "github",
+ "repo": "rymndhng/jest-test-mode",
+ "unstable": {
+ "version": [
+ 20200329,
+ 506
+ ],
+ "commit": "f04d08db36715d7509fd68448f74f917c6c1a382",
+ "sha256": "1pmzls19wpg60ql0b5l6rhml8hh8mzpbc0dgylzhps1jghi055s1"
+ }
+ },
+ {
+ "ename": "jetbrains",
+ "commit": "00dd4626e261d9831fc62d866d50b7257ee418c4",
+ "sha256": "0254dkzf2x5dj3j549xjash0lsadkn0bdcyjkjlrv8hqvdr1f1m7",
+ "fetcher": "github",
+ "repo": "emacs-php/jetbrains.el",
+ "unstable": {
+ "version": [
+ 20180301,
+ 502
+ ],
+ "deps": [
+ "cl-lib",
+ "f"
+ ],
+ "commit": "56f71a17d455581c10d48f6dbb31d9e2126227bf",
+ "sha256": "0v948k7xjm66px20ad331pskc7svpcrcffh3hbkjsksd4k0pggds"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "f"
+ ],
+ "commit": "38e136079f3f2ddbe0e8b7dec01cf6b515e897d8",
+ "sha256": "1ji64qip5raf0lbv7fv36rd4fwa33zn0xi7sa0zrgf0kcsr0qasb"
+ }
+ },
+ {
+ "ename": "jg-quicknav",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "1pxyv1nbnqb0s177kczy6b6q4l8d2r52xqhx2rdb0wxdmp6m5x9c",
+ "fetcher": "github",
+ "repo": "jeffgran/jg-quicknav",
+ "unstable": {
+ "version": [
+ 20170809,
+ 130
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "c8d53e774d63e68a944092c08a026b57da741038",
+ "sha256": "0rdrryfppgj5smrds5gyyhc4z8x36aq3gxdpckq80rbl4s729chy"
+ }
+ },
+ {
+ "ename": "jinja2-mode",
+ "commit": "b79196cf0dc0b436ff75eabea369a62f92825d9f",
+ "sha256": "0480fh719r4v7xdwyf4jlg1k36y54i5zrv7gxlhfm66pil75zafx",
+ "fetcher": "github",
+ "repo": "paradoxxxzero/jinja2-mode",
+ "unstable": {
+ "version": [
+ 20200718,
+ 730
+ ],
+ "commit": "ecd19a40b7832bb00f0a2244e3b0713d0bf3850d",
+ "sha256": "05z380d8ln53mx1gqa7awnv4wpqdhv7ggc91dds57681wzsqgz15"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "cfaa7bbe7bb290cc500440124ce89686f3e26f86",
+ "sha256": "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"
+ }
+ },
+ {
+ "ename": "jira-markup-mode",
+ "commit": "e7e0349bff91ed27ad14dfc12178719453a8df55",
+ "sha256": "0f3sw41b4wl0aajq0ap66942rb2015d9iks0ss016jgzashw7zsp",
+ "fetcher": "github",
+ "repo": "mnuessler/jira-markup-mode",
+ "unstable": {
+ "version": [
+ 20150601,
+ 2109
+ ],
+ "commit": "4fc534c47df26a2f402bf835ebe2ed89474a4062",
+ "sha256": "1ack7dmapva3wc2gm22prd5wd3cmq19sl4xl9f04a3nk2msr6ksx"
+ }
+ },
+ {
+ "ename": "jiralib2",
+ "commit": "11b76e144ba79e2b8424b5ed6cea860173efa7e0",
+ "sha256": "14npnf2mdx75i2r9b4n4xph43b9skx0wla0gq541qj6ffd5a7z46",
+ "fetcher": "github",
+ "repo": "nyyManni/jiralib2",
+ "unstable": {
+ "version": [
+ 20200520,
+ 2031
+ ],
+ "deps": [
+ "dash",
+ "request"
+ ],
+ "commit": "c21c4e759eff549dbda11099f2f680b78d7f5a01",
+ "sha256": "0yrcc9yfz9gxkhizy03bpysl1wcdbk0m6fj9hkqw3kbgnsk25h4p"
+ }
+ },
+ {
+ "ename": "jist",
+ "commit": "898bfa0b315240ef9335fde24ff0386a4c6c6595",
+ "sha256": "11m9li1016cfkm4931h69d7g1dc59lwjl83wy3yipswdg3zlw0ar",
+ "fetcher": "github",
+ "repo": "emacs-pe/jist.el",
+ "unstable": {
+ "version": [
+ 20161229,
+ 1721
+ ],
+ "deps": [
+ "dash",
+ "let-alist",
+ "magit",
+ "request",
+ "seq"
+ ],
+ "commit": "da0692452e312a99bb27d8708504b521798aca48",
+ "sha256": "13dic7bmj7a8vvjz47s1fnz8p5m22d2m2h2vlkmlq7322qwxxw6p"
+ }
+ },
+ {
+ "ename": "jknav",
+ "commit": "3673aebf53a7a3d54aee4e979b9dc7e37842f4db",
+ "sha256": "0c0a8plqrlsw8lhmyj9c1lfkj2b48cjkbw9pna8qcizvwgym9089",
+ "fetcher": "github",
+ "repo": "aculich/jknav.el",
+ "unstable": {
+ "version": [
+ 20121006,
+ 2025
+ ],
+ "commit": "861245715c728503dad6573278fdd75c271dbf8b",
+ "sha256": "1idby2rjkslw85593qd4zy6an9zz71yzwqc6rck57r54xyfs8mij"
+ }
+ },
+ {
+ "ename": "jonprl-mode",
+ "commit": "d26b6aea2b0567b971c4f013b58b598e9eb76af6",
+ "sha256": "0763ad65dmpl2l5lw91mlppfdvrjg6ym45brhi8sdwwri1xnyv9z",
+ "fetcher": "github",
+ "repo": "david-christiansen/jonprl-mode",
+ "unstable": {
+ "version": [
+ 20160819,
+ 59
+ ],
+ "deps": [
+ "cl-lib",
+ "yasnippet"
+ ],
+ "commit": "6059bb64891fae45827174e044d6a87ac07172d8",
+ "sha256": "0v4xiq3xf7c52rmyymw8a4ws85ij0xy7pr7625gf15359cs5chs9"
+ }
+ },
+ {
+ "ename": "journalctl-mode",
+ "commit": "38710d44fba3c886431d1acb7477ae4035cf00c1",
+ "sha256": "126gj6rh6j0j6lbygx15lg5qxfaz4bpspbzd1hv3h05nvnnykv3h",
+ "fetcher": "github",
+ "repo": "SebastianMeisel/journalctl-mode",
+ "unstable": {
+ "version": [
+ 20200607,
+ 754
+ ],
+ "commit": "e8e057f387266d1c11f8fb68023ceb9607404948",
+ "sha256": "1l9z0w8kb15vsfpwcl9rfhflmvy8illsssfqjxkcwl8d7pzfhm8n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "commit": "457e38af67427e92d6217abbb362ca9673b33ed5",
+ "sha256": "1lnjgpbvs3b7h1m1lnd4g3965pjn1sw4vyjd3f4106s10llmkd8x"
+ }
+ },
+ {
+ "ename": "jpop",
+ "commit": "2a52a3cf909d12201196b92685435f9fa338b7ba",
+ "sha256": "00chh1aqnkkkhdp44sapdjx37cbn92g42wapdq7kcl8v1v0xmnjr",
+ "fetcher": "github",
+ "repo": "domtronn/jpop.el",
+ "unstable": {
+ "version": [
+ 20170410,
+ 1250
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "7628b03260be96576b34459d45959ee77d8b2110",
+ "sha256": "1x7qha7xyn2j225h7axhskngc8icjhgm3f451iq3qysj22q8g4d6"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 2,
+ 3
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "f3eed65e54dc2daaa7678e6eb169d35c4a7d1e63",
+ "sha256": "17wiv1b8c56c2zi9b9mjm37kl7yc735nk3188wnmq3fqjgdpwpwg"
+ }
+ },
+ {
+ "ename": "jq-format",
+ "commit": "ce800af0c5dd7f1e4ab7ade92a863ce500c12fce",
+ "sha256": "1ljbpgcs1s1if9s5c10k12f23rad7172k7y3s38ipn7vl7wmarw0",
+ "fetcher": "github",
+ "repo": "wbolster/emacs-jq-format",
+ "unstable": {
+ "version": [
+ 20190428,
+ 1434
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "47e1c5adb89b37b4d53fe01302d8c675913c20e7",
+ "sha256": "1g9chp1b3lkrg46b39swrkvp5willi0ay3i177jdp6knbzhj4mq3"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "47e1c5adb89b37b4d53fe01302d8c675913c20e7",
+ "sha256": "1g9chp1b3lkrg46b39swrkvp5willi0ay3i177jdp6knbzhj4mq3"
+ }
+ },
+ {
+ "ename": "jq-mode",
+ "commit": "318705966e26e58f87b53c115c519db95874ac1c",
+ "sha256": "1xvh641pdkvbppb2nzwn1ljdk7sv6laq29kdv09kxaqd89vm0vin",
+ "fetcher": "github",
+ "repo": "ljos/jq-mode",
+ "unstable": {
+ "version": [
+ 20200604,
+ 833
+ ],
+ "commit": "42ad0a99f0114233e2cb317585cb9af494d18a2f",
+ "sha256": "1n4w45yv1k7979j42dahhp9356p9bmk6ldybqa0z65k9gz4abkxl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "3bda2d1085d5ac28fc6e7e8093ca7e74d3719f56",
+ "sha256": "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"
+ }
+ },
+ {
+ "ename": "jquery-doc",
+ "commit": "504d8cfac08f3fcd856610bc2caeb4d4178aeedf",
+ "sha256": "0pyg90izdrb9mvpbz9nx21mp8m3svqjnz1jr8i7wqgfjxsxdklxj",
+ "fetcher": "github",
+ "repo": "ananthakumaran/jquery-doc.el",
+ "unstable": {
+ "version": [
+ 20150812,
+ 758
+ ],
+ "commit": "24032284919b942ec27707d929bdd8bf48420062",
+ "sha256": "0gh2bgmsbi9lby89ssvl49kpz07jqrfnyg47g6b9xmf5rw42s1z9"
+ }
+ },
+ {
+ "ename": "js-auto-beautify",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0hpp6im24xy4g5l1n9kvpmpj26rnxxnf4snf7xgh5gxx6wsiicy1",
+ "fetcher": "github",
+ "repo": "Qquanwei/auto-beautify.el",
+ "unstable": {
+ "version": [
+ 20161031,
+ 509
+ ],
+ "deps": [
+ "web-beautify",
+ "web-mode"
+ ],
+ "commit": "180d15af7b5dfaab4ee1954cca2fdc797932f9de",
+ "sha256": "0xwkjq41v32dqc5gq8hcmcvdjg2y38xq6hkw5pja0kyvyk92c82d"
+ }
+ },
+ {
+ "ename": "js-auto-format-mode",
+ "commit": "2d3be16771b5b5fde639da3ee97890620354ee7a",
+ "sha256": "1gxf7xz1j3ga2pk5w8cgny7l8kid59zap2a97lhb50w1qczfqqzs",
+ "fetcher": "github",
+ "repo": "ybiquitous/js-auto-format-mode",
+ "unstable": {
+ "version": [
+ 20180807,
+ 1352
+ ],
+ "commit": "9d9460b17f59e4e7a4e5cc34576ba72b2ca56524",
+ "sha256": "0hil53mzvxz71l908wm6804migvm7hm0nwm8qpyy2dgnfzl996hg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "29d245b4d126a5fc5153a4d8f17396be4165b4a6",
+ "sha256": "1d0q59rk44jf87ppnn5bwr14p2vgcnfdr7pf6hdqkhb8gzr8bh7c"
+ }
+ },
+ {
+ "ename": "js-codemod",
+ "commit": "81670a2467fa846a3f0e6c81e870e8ae140dd54e",
+ "sha256": "1m5wbyx12sc5qwbrh948ikskck10p6j05ahrrvmmflvfb3q4vpcj",
+ "fetcher": "github",
+ "repo": "torgeir/js-codemod.el",
+ "unstable": {
+ "version": [
+ 20190921,
+ 941
+ ],
+ "commit": "056bdf3e5e0c807b8cf17edb5834179a90fb722b",
+ "sha256": "1s87jy1v7vjqpl09w2lafhliqhc5hm9061n7f2gfiw0hhv1xp6bw"
+ }
+ },
+ {
+ "ename": "js-comint",
+ "commit": "bc9d20b95e369e5a73c85a4a9385d3a8f9edd4ca",
+ "sha256": "0jvkjb0rmh87mf20v6rjapi2j6qv8klixy0y0kmh3shylkni3an1",
+ "fetcher": "github",
+ "repo": "redguardtoo/js-comint",
+ "unstable": {
+ "version": [
+ 20200117,
+ 615
+ ],
+ "commit": "0dedaf4753fbe8cdbab14aa85f05d7673cbee8b6",
+ "sha256": "09wfafrklkybfg44skn1lg2hvcj4gfdv908dq87w1r4wv6ibkvka"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "0dedaf4753fbe8cdbab14aa85f05d7673cbee8b6",
+ "sha256": "09wfafrklkybfg44skn1lg2hvcj4gfdv908dq87w1r4wv6ibkvka"
+ }
+ },
+ {
+ "ename": "js-doc",
+ "commit": "5621f60b3f580db652c347719d004d7168944caa",
+ "sha256": "0nafqgb4kf8jgrb7ijfcvigq8kf043ki89h61izda4hccm3c42pk",
+ "fetcher": "github",
+ "repo": "mooz/js-doc",
+ "unstable": {
+ "version": [
+ 20160715,
+ 434
+ ],
+ "commit": "f0606e89d5aa89146f96edb38cf69af0068a9d1e",
+ "sha256": "1ffayl6hca9zanbznh6rkql7fbr53id1lyrj2vllx8zakfac4dyv"
+ }
+ },
+ {
+ "ename": "js-format",
+ "commit": "0d6deaa93f7deaba9f5f36f1963522b6dc5c673a",
+ "sha256": "112zqb3q1gjlaa9zkmhx7vamh0g97dwp9j55215i1sx66lmp18iq",
+ "fetcher": "github",
+ "repo": "futurist/js-format.el",
+ "unstable": {
+ "version": [
+ 20170119,
+ 102
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "544bda9be72b74ec2d442543ba60cff727d96669",
+ "sha256": "18wr2z2w2fqgy51f5m5izrnywarxn6w4qs04lsgbwlsc6ahpwwpf"
+ }
+ },
+ {
+ "ename": "js-import",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0r653ls1a4kr7i7249afgfj7vz365gadfm8bc1vmqfabxn8mysd4",
+ "fetcher": "github",
+ "repo": "jakoblind/js-import",
+ "unstable": {
+ "version": [
+ 20190218,
+ 1319
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "projectile"
+ ],
+ "commit": "2ab3b120cc94ebf4bee2d959c8869440bc4c7484",
+ "sha256": "1fv8lpjanyn6chf502lz0j438hfxhqz1b0z2kxsd4jgy20ixchmg"
+ }
+ },
+ {
+ "ename": "js-react-redux-yasnippets",
+ "commit": "b5eef6590b2070ab46a5ab216cdcc6ab82174e47",
+ "sha256": "1mkcgpca4kzs31p0r5iwplwsm8jmf8w6h1v1a7qvpqan3gj7kidb",
+ "fetcher": "github",
+ "repo": "sooqua/js-react-redux-yasnippets",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1144
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "9f509043f01fa59bff4daf31b2e95d63f8deab4a",
+ "sha256": "00icd76y7sp3cby6n1mkxma4h6aqkrq6cqsnbqrpsgq99qqy30my"
+ }
+ },
+ {
+ "ename": "js2-closure",
+ "commit": "61bf3e70ae38a78184f0b373ff6f0db234f51cb2",
+ "sha256": "19732bf98lk2ah2ssgkr1ngxx7rz3nhsiw84lsfmydb0vvm4fpk7",
+ "fetcher": "github",
+ "repo": "jart/js2-closure",
+ "unstable": {
+ "version": [
+ 20170816,
+ 1918
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "f59db386d7d0693935d0bf52babcd2c203c06d04",
+ "sha256": "09zfmxi9m883lzsafnws06ifpq92b2i9q05pxk085vgkdpq35nss"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 1
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "74a75f001a8bc2b9c02b9e8b4557f7ee3c5f84fb",
+ "sha256": "1gapx656s4ngy8s8y1p56xxnclwf4qqg83l3jizknxky7yhayyl9"
+ }
+ },
+ {
+ "ename": "js2-highlight-vars",
+ "commit": "5f4a7c90be2e032277ae87b8de36d2e3f6146f09",
+ "sha256": "07bq393g2jy8ydvaqyqn6vdyfvyminvgi239yvwzg5g9a1xjc475",
+ "fetcher": "github",
+ "repo": "unhammer/js2-highlight-vars.el",
+ "unstable": {
+ "version": [
+ 20170418,
+ 1829
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "e3bb177e50f76b272e8073a94d4f46be6512a163",
+ "sha256": "0yy8sqkn6c7r377qr2id4z550vw1x70xjd4i7yg0g1rj7q1kg98l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "bf38d12cf65eebc8b81866fd03f6a0389bb2a9ed",
+ "sha256": "0r2szaxr3q0gvxqd9asn03q8jf3nclxv4mqdsjn96s98n45x388l"
+ }
+ },
+ {
+ "ename": "js2-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0f9cj3n55qnlifxwk1yp8n1kfd319jf7qysnkk28xpvglzw24yjv",
+ "fetcher": "github",
+ "repo": "mooz/js2-mode",
+ "unstable": {
+ "version": [
+ 20200725,
+ 112
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "40aab27581279d0fdbfeb9afeb85f39d401a927f",
+ "sha256": "0ysd0ji3vvk2zpjcg1wl7b2hva8471vq0ypib4h6spnpjdr43vzk"
+ },
+ "stable": {
+ "version": [
+ 20190219
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ed955e7f1608cfd2d2713129d65f5fd734842ae4",
+ "sha256": "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"
+ }
+ },
+ {
+ "ename": "js2-refactor",
+ "commit": "8935264dfea9bacc89fef312215624d1ad9fc437",
+ "sha256": "09dcfwpxxyw0ffgjjjaaxbsj0x2nwfrmxy1a05h8ba3r3jl4kl1r",
+ "fetcher": "github",
+ "repo": "magnars/js2-refactor.el",
+ "unstable": {
+ "version": [
+ 20190630,
+ 2108
+ ],
+ "deps": [
+ "dash",
+ "js2-mode",
+ "multiple-cursors",
+ "s",
+ "yasnippet"
+ ],
+ "commit": "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28",
+ "sha256": "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "js2-mode",
+ "multiple-cursors",
+ "s",
+ "yasnippet"
+ ],
+ "commit": "089c7800e3e7b0a89ee2392037ac07851bcee298",
+ "sha256": "1iwblf5i7k1i1ax9pjv7n8zv9q157krirdn0gwcib6dwza2i30jp"
+ }
+ },
+ {
+ "ename": "js2hl",
+ "commit": "7c7f441e411427ed570f0aa0b04e46d088debecc",
+ "sha256": "09jp7cy5jgcmhrpa2x48q39shpcgw1xm3g73aqmlhcw7wfn6q1b5",
+ "fetcher": "github",
+ "repo": "redguardtoo/js2hl",
+ "unstable": {
+ "version": [
+ 20200729,
+ 146
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "0255339dbb9fdfb009c94beefdc60e78baae11a7",
+ "sha256": "19vw96z28zgkkb93zq6ndslc20yg3qip44fqzvnsf8qr9wxxl3g1"
+ }
+ },
+ {
+ "ename": "js3-mode",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "0iqhqq9wkhpgw1n83x6f8qib0agc626cv0qah73v6497ra9ri8ni",
+ "fetcher": "github",
+ "repo": "tamzinblake/js3-mode",
+ "unstable": {
+ "version": [
+ 20160515,
+ 1550
+ ],
+ "commit": "229aeb374f1b1f3ee5c59b8ba3eebb6385c232cb",
+ "sha256": "0yd2lck1kq01pxk86jpxff5ih6fxx1a1wvl7v8b5ys7gi33fjqz2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "5ccda46ba39998a74bd724fdffb34634be5b6563",
+ "sha256": "17d0nf1kz7mgv5qz57q6khy4w5vrmsliqirggahk9s6nnsx1j56n"
+ }
+ },
+ {
+ "ename": "jscs",
+ "commit": "f59d039a199ff93d7280669511a752f12a74f0bd",
+ "sha256": "1yw251f6vpj2bikjw79arywprk8qnmmfcki99mvwnqhsqlv1a8iv",
+ "fetcher": "github",
+ "repo": "papaeye/emacs-jscs",
+ "unstable": {
+ "version": [
+ 20151015,
+ 1749
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9d39d0f2355e69a020bf76242504f3a33e013ccf",
+ "sha256": "1bqsv2drhcs8ia7nxss33f80p2mhcl4mr1nalphzw6s1f4mq2sgy"
+ }
+ },
+ {
+ "ename": "jsfmt",
+ "commit": "4ddc99843dec18a295dfc36e7b429f0e1ab7fb71",
+ "sha256": "1syy32sv2d57b3gja0ly65h36mfnyq6hzf5lnnl3r58yvbdzngqd",
+ "fetcher": "github",
+ "repo": "brettlangdon/jsfmt.el",
+ "unstable": {
+ "version": [
+ 20180920,
+ 1008
+ ],
+ "commit": "ca141a135c7700eaedef92561d334e1fb7dc28a1",
+ "sha256": "13b2y6q6hqgdf32vyph407jlgki8xf5kflqz8zi0hcrmb8wkrd5x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "c5d9742872509143db0250a77db705ef78f02cd0",
+ "sha256": "0pjmslxwmlb9cb3j5qfsyxq1lg1ywzw1p9dvj330c2m7nla1j70x"
+ }
+ },
+ {
+ "ename": "json-mode",
+ "commit": "03d0ff6c8d724cf39446fa27f52aa5cc1a3cefb6",
+ "sha256": "014j10wgxsqy6d6aksnkz2dr5cmpsi8c7v4a825si1vgb4622a70",
+ "fetcher": "github",
+ "repo": "joshwnj/json-mode",
+ "unstable": {
+ "version": [
+ 20190123,
+ 422
+ ],
+ "deps": [
+ "json-reformat",
+ "json-snatcher"
+ ],
+ "commit": "0e819e519ae17a2686e0881c4ca51fa873fa9b83",
+ "sha256": "0m4i6b5qmakdc0h8npsyajdp06jq03cb1c5rkj6x0khnjw9fv2fl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7,
+ 0
+ ],
+ "deps": [
+ "json-reformat",
+ "json-snatcher"
+ ],
+ "commit": "9ba01b868a6b138feeff82b9eb0abd331d29325f",
+ "sha256": "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"
+ }
+ },
+ {
+ "ename": "json-navigator",
+ "commit": "62d4d68bd473652b80988a68250e9190b886ad6e",
+ "sha256": "0yfl31cg0mkgsbpgx00m9h2cxnhsavcf7zlspb0qr4g2zq6ya1wx",
+ "fetcher": "github",
+ "repo": "DamienCassou/json-navigator",
+ "unstable": {
+ "version": [
+ 20191213,
+ 755
+ ],
+ "deps": [
+ "hierarchy"
+ ],
+ "commit": "afd902e0b5cde37fad4786515a695d17f1625286",
+ "sha256": "0gn19qn11n86rn9b6knp9fb5jx9m2q1khhm4vnh0vjck7jxi9sqr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "hierarchy"
+ ],
+ "commit": "f4cde60c4203fc70cc7ff22ed1d6579159ce2598",
+ "sha256": "0xrjbx6rkm8a6pmzhdph0r6l468hj827dvvq2hxhcm8v5gk6m690"
+ }
+ },
+ {
+ "ename": "json-process-client",
+ "commit": "a681f977631344190e2a35d9ac2cbb9a42402272",
+ "sha256": "0nf0lna15ymcn8wniz24ixxwr1qaznic9nym1q16ifwl72qryj79",
+ "fetcher": "git",
+ "url": "https://gitea.petton.fr/nico/json-process-client.git",
+ "unstable": {
+ "version": [
+ 20190827,
+ 1858
+ ],
+ "commit": "422606a7bf08d13646e3db4f6c2bddb69bd61dec",
+ "sha256": "16fyb0gwm4llwbmg12m4r9r8h540hcvhrsnlly6cry60h9p8dpc1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "1d4a1fe2ecc682890dfc75e40054c9697c3046f6",
+ "sha256": "1r1mcd9xqibr7np2gsq8gpl310l05h75y2pnldlqqsszkhivyixd"
+ }
+ },
+ {
+ "ename": "json-reformat",
+ "commit": "f8c7976237f327fdfa58eea26ac8679f40ef3163",
+ "sha256": "1m5p895w9qdgb8f67xykhzriribgmp20a1lvj64iap4aam6wp8na",
+ "fetcher": "github",
+ "repo": "gongo/json-reformat",
+ "unstable": {
+ "version": [
+ 20160212,
+ 853
+ ],
+ "commit": "8eb6668ed447988aea06467ba8f42e1f2178246f",
+ "sha256": "11y11yybhb8wfj8qcj4gw8rhhly7kjs7ylyxwsh7qnfgq6f771qh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "commit": "b9bd375ec1deb10d2ba09c409bdcf99c56d7a716",
+ "sha256": "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"
+ }
+ },
+ {
+ "ename": "json-rpc",
+ "commit": "82c6b97cdfe2970f028a00146b01e5734710291b",
+ "sha256": "1v1pfmm9g18p6kgn27q1m1bjgwbzvwfm0jbsxp8gdsssaygky71k",
+ "fetcher": "github",
+ "repo": "skeeto/elisp-json-rpc",
+ "unstable": {
+ "version": [
+ 20200417,
+ 1629
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "81a5a520072e20d18aeab2aac4d66c046b031e56",
+ "sha256": "13s18mjh6dpdxvva9yx4841rxvayxsvaj3vblxril6zm2wcqw2lm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "81a5a520072e20d18aeab2aac4d66c046b031e56",
+ "sha256": "13s18mjh6dpdxvva9yx4841rxvayxsvaj3vblxril6zm2wcqw2lm"
+ }
+ },
+ {
+ "ename": "json-rpc-server",
+ "commit": "c9b2ed94451c49997a0895cacdd177dc3534e4e3",
+ "sha256": "1cmpxg07n9x266q0j6d0ywlywrwkjxkn863npyh75mhixx361674",
+ "fetcher": "github",
+ "repo": "jcaw/json-rpc-server.el",
+ "unstable": {
+ "version": [
+ 20190714,
+ 1521
+ ],
+ "commit": "1623346b308dc8f593346dc947fdc4092d674834",
+ "sha256": "1kkn4xjn9i207x580902jfpcrhpkvpyzxk4jh1bclbryki9602zv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "1623346b308dc8f593346dc947fdc4092d674834",
+ "sha256": "1kkn4xjn9i207x580902jfpcrhpkvpyzxk4jh1bclbryki9602zv"
+ }
+ },
+ {
+ "ename": "json-snatcher",
+ "commit": "990de179e20c169aa02ffec42c89f18ce02239c8",
+ "sha256": "0f6j9g3c5fz3wlqa88706cbzinrs3dnfpgsr2d3h3117gic4iwp4",
+ "fetcher": "github",
+ "repo": "Sterlingg/json-snatcher",
+ "unstable": {
+ "version": [
+ 20150512,
+ 347
+ ],
+ "commit": "c4cecc0a5051bd364373aa499c47a1bb7a5ac51c",
+ "sha256": "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "c4cecc0a5051bd364373aa499c47a1bb7a5ac51c",
+ "sha256": "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"
+ }
+ },
+ {
+ "ename": "jsonl",
+ "commit": "7b74404824208b80bfd47478d105e1f17235b36b",
+ "sha256": "1gng6jm4wnb7m11lcpc2rb239raskcjlbya0myzfb8cfr2v6z6h6",
+ "fetcher": "github",
+ "repo": "ebpa/jsonl.el",
+ "unstable": {
+ "version": [
+ 20190623,
+ 509
+ ],
+ "commit": "3dd0b7bb2b4bce9f9de7367941f0cc78f82049c9",
+ "sha256": "0c69yldiyg8q7dhqdcchkz20l44ckpmg8nri2740jg9wkwkj4wiz"
+ }
+ },
+ {
+ "ename": "jsonnet-mode",
+ "commit": "ba17372732723f73e8eeb6e7c47abc0edeb20da4",
+ "sha256": "1aadys887szlc924qr645lby9f8vzvxkwhq6byhppk1b01h911ia",
+ "fetcher": "github",
+ "repo": "mgyucht/jsonnet-mode",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1558
+ ],
+ "commit": "c8422a617438c79ade98f8d9eeb2086dacb0378c",
+ "sha256": "1r2ic7gbngbwmjjcigphj8jamaff42s7bsn6xz7yfzrci0gm8jrd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "efe768fdcff25d746674fbbf229b9e1a7efea4f1",
+ "sha256": "1a52266y83z9i3sg7hhc8sw7rhjy5i9wdy2bv7s2fv00lnngaj29"
+ }
+ },
+ {
+ "ename": "jss",
+ "commit": "e3dc3607f512df378ba141327802820da4991a97",
+ "sha256": "050hskqcjz5kc8nni255vj3hc9m936w1rybvg5kqyz4p4lpzj00k",
+ "fetcher": "github",
+ "repo": "segv/jss",
+ "unstable": {
+ "version": [
+ 20130508,
+ 1423
+ ],
+ "deps": [
+ "js2-mode",
+ "websocket"
+ ],
+ "commit": "41749257aecf13c7bd6ed489b5ab3304d06e40bc",
+ "sha256": "07yd7sxb5f2mbm2nva7b2nwyxxkmsi2rdd5qig0bq1b2mf3g5l83"
+ }
+ },
+ {
+ "ename": "jst",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "1kxf8ckhsh0sgc4xqkkyh7ghk17farqqz35ibvmyrkl9s19ydj1q",
+ "fetcher": "github",
+ "repo": "zhangkaiyulw/jst-mode",
+ "unstable": {
+ "version": [
+ 20150604,
+ 1138
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "pcache",
+ "s"
+ ],
+ "commit": "2a3fd16c992f7790dc67134ef06a814c3d20579c",
+ "sha256": "16jgmabcqrjb3v9c6q711jqn9dna88bmzm4880mdry69ixwcydxy"
+ }
+ },
+ {
+ "ename": "jtags",
+ "commit": "caaa21f235c4864f6008fb454d0a970a2fd22a86",
+ "sha256": "1f3dw9fr31lcqmida14d9rsvy1r1b5d6ihqwdj9hbx5kv7d8jyj7",
+ "fetcher": "git",
+ "url": "https://git.code.sf.net/p/jtags/code",
+ "unstable": {
+ "version": [
+ 20160211,
+ 2029
+ ],
+ "commit": "b50daa48510f71e74ce0ec2eb85030896a79cf96",
+ "sha256": "03w5y9c1109kpsn6xnxdaz3maiwbvxywqshc1l5wngfc85jwiv8y"
+ }
+ },
+ {
+ "ename": "julia-mode",
+ "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
+ "sha256": "1f26j3nxspwrvnsk3kmam8rw4jwikwmi9a5zwsx9aa1rrasg58w3",
+ "fetcher": "github",
+ "repo": "JuliaEditorSupport/julia-emacs",
+ "unstable": {
+ "version": [
+ 20200717,
+ 1915
+ ],
+ "commit": "b5f5983d2b232c8bba4c5eff75cccdb787c19d98",
+ "sha256": "0pxaga920bab6n5byag6h0wql2akiybhsh9nlinfx708i9dzmvv6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "8bfc709716a257521cb386f20b8932e83db930a9",
+ "sha256": "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"
+ }
+ },
+ {
+ "ename": "julia-repl",
+ "commit": "9a2a494969a9caf2f4513b12504379c9685047dc",
+ "sha256": "1k8a54s7g64zasmmnywygr0ra3s3din5mkqb7b5van2l0d4hcmzn",
+ "fetcher": "github",
+ "repo": "tpapp/julia-repl",
+ "unstable": {
+ "version": [
+ 20200625,
+ 924
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "d073acb6339e99edf77833f82277afd9a076f16a",
+ "sha256": "1p2d92mcbdl8j22qz04iwdlpkbv2qn9p8ds8n2vpf4m9mgzjplzi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "b8155b8a1e23e1ad740fd7bd49b5d841b1365c7d",
+ "sha256": "0qdn70h6k03l3xmv4xmbvrs1lx632jihhmkvjxk5hp4nk5phh9rk"
+ }
+ },
+ {
+ "ename": "julia-shell",
+ "commit": "a812c6a8498949d8bd9828a95433c539da87c1c8",
+ "sha256": "0182irlvk6nn71zk4j8xjgcqp4bxi7a2dbj44frrssy6018cd410",
+ "fetcher": "github",
+ "repo": "dennisog/julia-shell-mode",
+ "unstable": {
+ "version": [
+ 20161125,
+ 1910
+ ],
+ "deps": [
+ "julia-mode"
+ ],
+ "commit": "583a0b2ca20461ab4356929fd0f2212c22341b69",
+ "sha256": "182r7x7w3xnx7c54izz3rlz0khcwh7v21m89qpq99f9dvcs6273k"
+ }
+ },
+ {
+ "ename": "julia-snail",
+ "commit": "5510bd5788fc1dab3049100f9a993d89fcd10601",
+ "sha256": "0bbz4r0xygx9hcddk5r64w9hycvxqvl7y6z53smlwns1pj7n9wvp",
+ "fetcher": "github",
+ "repo": "gcv/julia-snail",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1941
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "julia-mode",
+ "parsec",
+ "s",
+ "spinner",
+ "vterm"
+ ],
+ "commit": "44d06e18cf9ded6c05936ce10aca0a73f768f457",
+ "sha256": "0hpypirqc2hd1zga5qjcx2i7vp3h2vif76npd0j10hiimxal1kxz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0,
+ -1,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "julia-mode",
+ "parsec",
+ "s",
+ "spinner",
+ "vterm"
+ ],
+ "commit": "c9aff5ffe6df951dd5343f05d6e4170203a7032a",
+ "sha256": "065ix3jycsx3wvkq7a6060i93caxisdvgxgqb1l6rq15n4qln78y"
+ }
+ },
+ {
+ "ename": "jumblr",
+ "commit": "b47000c35a181c03263e85e8955eb4b4c9e69e4d",
+ "sha256": "1wnawz1m6x95iyzac453p55h7hlr5q0ry5437aqqx0bw7gdwg3dp",
+ "fetcher": "github",
+ "repo": "mkmcc/jumblr",
+ "unstable": {
+ "version": [
+ 20170727,
+ 2043
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "34533dfb9db8538c005f4eaffafeff7ed193729f",
+ "sha256": "0nn2m27c70nykin4iakrna0c61qd1hr09czrfmfpk06k70iifjky"
+ }
+ },
+ {
+ "ename": "jump",
+ "commit": "f0c791aebccc08b770b3969ce5d2e82cbe26f80e",
+ "sha256": "18g0fa9g8m9jscsm6pn7jwdq94l4aj0dfhrv2hqapq1q1x537364",
+ "fetcher": "github",
+ "repo": "eschulte/jump.el",
+ "unstable": {
+ "version": [
+ 20161127,
+ 128
+ ],
+ "deps": [
+ "cl-lib",
+ "findr",
+ "inflections"
+ ],
+ "commit": "e4f1372cf22e811faca52fc86bdd5d817498a4d8",
+ "sha256": "0354b64drvv8v5g13xy5nc1klwx4hldz1b5mf1frhna7h2dqz0j9"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 5
+ ],
+ "deps": [
+ "cl-lib",
+ "findr",
+ "inflections"
+ ],
+ "commit": "40a7ffdf734ffe7d1968909663146255d7ba69c8",
+ "sha256": "1ig1wdjg914p9ng1nir2fid4mb3xz2dbpmkdnfy1klq2zp0xw2s3"
+ }
+ },
+ {
+ "ename": "jump-char",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1r6d1vhm87zafi7rr7z8jwyz3yy7i7s4774n84jsql24j1rzzwd4",
+ "fetcher": "github",
+ "repo": "lewang/jump-char",
+ "unstable": {
+ "version": [
+ 20180601,
+ 1348
+ ],
+ "commit": "1e31a3c687f2b3c71bbfab881c6d75915534bb9e",
+ "sha256": "1nzln2l6sy67qz30107sgyhhfacy85im9vdlbv1hp4fzdmxxkx84"
+ }
+ },
+ {
+ "ename": "jump-to-line",
+ "commit": "4b6c700a28b65cbbad36a9bbaf88cc36c8191eb0",
+ "sha256": "09ifhsggl5mrb6l8nqnl38yph0v26v30y98ic8hl23i455hqkkdr",
+ "fetcher": "github",
+ "repo": "ongaeshi/jump-to-line",
+ "unstable": {
+ "version": [
+ 20130122,
+ 1653
+ ],
+ "commit": "01ef8c3529d85e6c59cc20840acbc4a8e8325bc8",
+ "sha256": "1s9plmg323m1p625xqnks0yqz0zlsjacdj7pv8f783r0d9jmfq3s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "01ef8c3529d85e6c59cc20840acbc4a8e8325bc8",
+ "sha256": "1s9plmg323m1p625xqnks0yqz0zlsjacdj7pv8f783r0d9jmfq3s"
+ }
+ },
+ {
+ "ename": "jump-tree",
+ "commit": "fe6b08848929c83e3cdea623b331176c0f20cbe9",
+ "sha256": "1gknpwd1vjpd1jqpi2axhyi6sg4clarr32rfrfz6hi6kmzr848mj",
+ "fetcher": "github",
+ "repo": "yangwen0228/jump-tree",
+ "unstable": {
+ "version": [
+ 20171014,
+ 1551
+ ],
+ "commit": "282267dc6305889e31d46b405b7ad4dfe5923b66",
+ "sha256": "0r6cwpks4aylndvq5lcny3799fag05zm36gd11043wca7sgr90fz"
+ }
+ },
+ {
+ "ename": "jumplist",
+ "commit": "b2b7c688b881615c5f0b00f3879b9469d380a4e6",
+ "sha256": "06xjg1q8b2fwfhfmdkb76bw2id8pgqc61fmwlgri5746jgdmd7nf",
+ "fetcher": "github",
+ "repo": "ganmacs/jumplist",
+ "unstable": {
+ "version": [
+ 20151120,
+ 345
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c482d137d95bc5e1bcd790cdbde25b7f729b2502",
+ "sha256": "0ykzvy8034mchq6ffyi7vqnwyrj6gnqqgn39ki81pv97qh8hh8yl"
+ }
+ },
+ {
+ "ename": "jupyter",
+ "commit": "a63a933e193a52e60950331ec982c5f5cdfaa5d9",
+ "sha256": "0p83mkvip1gn5ag2j6s68wzfgg2sf15iyxh7ylads3yw44h26wvi",
+ "fetcher": "github",
+ "repo": "dzop/emacs-jupyter",
+ "unstable": {
+ "version": [
+ 20200417,
+ 1907
+ ],
+ "deps": [
+ "cl-lib",
+ "simple-httpd",
+ "websocket",
+ "zmq"
+ ],
+ "commit": "360cae2c70ab28c7a7848c0c56473d984f0243e5",
+ "sha256": "1bn0jwpigpl5n45vpz73vv12g078151vyhkkhkwy5xqx627swxf9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "simple-httpd",
+ "websocket",
+ "zmq"
+ ],
+ "commit": "403c70c83cb3754c83da0932b0efaf5e72bdca9a",
+ "sha256": "1sr007wsl2y6wqpzkmv3inbpwhvgdcb2nmqzgfg7w1awapi2r13p"
+ }
+ },
+ {
+ "ename": "jvm-mode",
+ "commit": "7cdb7d7d7b955405eb6357277b5d049df8aa85ce",
+ "sha256": "1r283b4s0pzq4hgwcz5cnhlvdvq4gy0x51g3vp0762s8qx969a5w",
+ "fetcher": "github",
+ "repo": "martintrojer/jvm-mode.el",
+ "unstable": {
+ "version": [
+ 20150422,
+ 708
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "3355dbaf5b0185aadfbad24160399abb32c5bea0",
+ "sha256": "0k91cdjlpil8npc4d3zsgx2gk41crl7qgm9r85khcgxs59kmkniw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "16d84c8c80bb214367bae6ed30b08756521c27d6",
+ "sha256": "1785nsv61m51lpykai2wxrv6zmwbm5654v937fgw177p37054s83"
+ }
+ },
+ {
+ "ename": "k8s-mode",
+ "commit": "44085c3f730315a5fc2a9a003ffa16d5df9f9a52",
+ "sha256": "14m4s0l61a2h38pdq6iczva24cl3mqdkw99k1q0drisdrvy57f33",
+ "fetcher": "github",
+ "repo": "TxGVNN/emacs-k8s-mode",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1549
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "9364cdbbae00055c4efa1eeb80503e0b0a215743",
+ "sha256": "1ap8nwlv9ha5a03gc10sva12sc6qzq1vig8hibg1igbsc1qmfkad"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "9364cdbbae00055c4efa1eeb80503e0b0a215743",
+ "sha256": "1ap8nwlv9ha5a03gc10sva12sc6qzq1vig8hibg1igbsc1qmfkad"
+ }
+ },
+ {
+ "ename": "kaesar",
+ "commit": "201fac8639e59dc923ea31da1f84a99f83d51b47",
+ "sha256": "0zhi1dv1ay1azh7afq4x6bdg91clwpsr13nrzy7539yrn9sglj5l",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-kaesar",
+ "unstable": {
+ "version": [
+ 20160128,
+ 1008
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d087075cb1a46c2c85cd075220e09b2eaef9b86e",
+ "sha256": "1pl0514rj99b1j3y33x2bnhjbdbv9bfxgqn9498bf4ns8zayc6y9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4fa74851cd928f30e9f2ee1aa27ee6074ad253ea",
+ "sha256": "03l9w238a5kyfin3v1fy1q2pl0gvmb87j0v89g6nk114s7m4y3r8"
+ }
+ },
+ {
+ "ename": "kaesar-file",
+ "commit": "201fac8639e59dc923ea31da1f84a99f83d51b47",
+ "sha256": "0dcizg82maad98mbqqw5lamwz7n2lpai09jsrc66x3wy8k784alc",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-kaesar",
+ "unstable": {
+ "version": [
+ 20160128,
+ 1008
+ ],
+ "deps": [
+ "kaesar"
+ ],
+ "commit": "d087075cb1a46c2c85cd075220e09b2eaef9b86e",
+ "sha256": "1pl0514rj99b1j3y33x2bnhjbdbv9bfxgqn9498bf4ns8zayc6y9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 0
+ ],
+ "deps": [
+ "kaesar"
+ ],
+ "commit": "4fa74851cd928f30e9f2ee1aa27ee6074ad253ea",
+ "sha256": "03l9w238a5kyfin3v1fy1q2pl0gvmb87j0v89g6nk114s7m4y3r8"
+ }
+ },
+ {
+ "ename": "kaesar-mode",
+ "commit": "201fac8639e59dc923ea31da1f84a99f83d51b47",
+ "sha256": "0yqnlchbpmhsqc8j531n08vybwa32cy0v9sy4f9fgxa90rfqczry",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-kaesar",
+ "unstable": {
+ "version": [
+ 20160128,
+ 1008
+ ],
+ "deps": [
+ "cl-lib",
+ "kaesar"
+ ],
+ "commit": "d087075cb1a46c2c85cd075220e09b2eaef9b86e",
+ "sha256": "1pl0514rj99b1j3y33x2bnhjbdbv9bfxgqn9498bf4ns8zayc6y9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "kaesar"
+ ],
+ "commit": "4fa74851cd928f30e9f2ee1aa27ee6074ad253ea",
+ "sha256": "03l9w238a5kyfin3v1fy1q2pl0gvmb87j0v89g6nk114s7m4y3r8"
+ }
+ },
+ {
+ "ename": "kakapo-mode",
+ "commit": "a43f0f1f6a0773240a51d379ec786c20a9389e7b",
+ "sha256": "0a99cqflpzasl4wcmmf99aj8xgywkym37j7mvnsajrsk5wawdlss",
+ "fetcher": "github",
+ "repo": "listx/kakapo-mode",
+ "unstable": {
+ "version": [
+ 20171004,
+ 451
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "292e07203c676361a1d918deb5acf2123cd70eaf",
+ "sha256": "00rl5y7wra7kyp867ps2inx0vng9jrmym0sm4jhnk6pqj50c8i9y"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fe3d579867f7465cd3ad04f29b4b2b3b820edc01",
+ "sha256": "0b6af8hnrn0v4z1xpahjfpw5iga2bmgd3qwfn3is2rygsn5rkm40"
+ }
+ },
+ {
+ "ename": "kakoune",
+ "commit": "f7e554f20c378aabd9736fdd606e513d2cbf951f",
+ "sha256": "0ps904m3vb2v5jykc6mk9cb974imiac0pw6b7q1p9x5swk8h4jh5",
+ "fetcher": "github",
+ "repo": "jmorag/kakoune.el",
+ "unstable": {
+ "version": [
+ 20200621,
+ 1818
+ ],
+ "deps": [
+ "expand-region",
+ "multiple-cursors",
+ "ryo-modal"
+ ],
+ "commit": "ea8dde5dfe59c54d7729b141024976535b472573",
+ "sha256": "04ixj4cpw5iayxxwly5sr19lfnyss5cac0vsd0q1x3ys57y9v9im"
+ }
+ },
+ {
+ "ename": "kaleidoscope",
+ "commit": "148d47626879be1608f35827ef82a28274ff4de3",
+ "sha256": "0nfz207rzpnni7jyzvdvz5lr0zcpzy278a86821cmw8d5l81a3yp",
+ "fetcher": "github",
+ "repo": "algernon/kaleidoscope.el",
+ "unstable": {
+ "version": [
+ 20170808,
+ 817
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "52b5be3277f65cb5ca657973e9bd7f914b996356",
+ "sha256": "0g2n73habz844f64p1x66kxpvadv9zh34qmxhql34c3w2sm9mmwf"
+ }
+ },
+ {
+ "ename": "kaleidoscope-evil-state-flash",
+ "commit": "148d47626879be1608f35827ef82a28274ff4de3",
+ "sha256": "17a4nmdi6h0z4va3kiw4ivaywiisblz6cicypk9d3g9sl92drcvq",
+ "fetcher": "github",
+ "repo": "algernon/kaleidoscope.el",
+ "unstable": {
+ "version": [
+ 20170728,
+ 1020
+ ],
+ "deps": [
+ "evil",
+ "kaleidoscope",
+ "s"
+ ],
+ "commit": "52b5be3277f65cb5ca657973e9bd7f914b996356",
+ "sha256": "0g2n73habz844f64p1x66kxpvadv9zh34qmxhql34c3w2sm9mmwf"
+ }
+ },
+ {
+ "ename": "kanban",
+ "commit": "c5c918900ad97075d788b3de658cddbb0c94f5d0",
+ "sha256": "04sy524zz5y99pb1nvlvqf9qyk57mrlmjqbjy44crl34ypi8gik6",
+ "fetcher": "hg",
+ "url": "https://hg.sr.ht/~arnebab/kanban.el",
+ "unstable": {
+ "version": [
+ 20170418,
+ 810
+ ],
+ "commit": "dd11d722b20ae720f29b8aa93a3b1cad87650b33",
+ "sha256": "07g0spi9jf48vap76f9rgl61sg3jqy03qdxnmchzwlia8wvcsscb"
+ }
+ },
+ {
+ "ename": "kanji-mode",
+ "commit": "c9f1fb16f2f7f677d0817fd63633dd071ba2cf12",
+ "sha256": "0nnkv7lp7ks9qhkbhz15ixm53grc2q0xfspzykxi9c4b59kypcq5",
+ "fetcher": "github",
+ "repo": "wsgac/kanji-mode",
+ "unstable": {
+ "version": [
+ 20160826,
+ 1139
+ ],
+ "commit": "eda4f8666486689d36317db7dbda54fb73d3e3d2",
+ "sha256": "1m0s1kdgz1psiidpxcrzm8qmvmrmk5g2k8lz1lq357z482l4i7ll"
+ }
+ },
+ {
+ "ename": "kaocha-runner",
+ "commit": "7be32636579e00518b81644ba88e2ed9c1cf7346",
+ "sha256": "1j68vpbqsqyx54igqpihpzlmr4w38i52ms1aj41s4bgr953fmr43",
+ "fetcher": "github",
+ "repo": "magnars/kaocha-runner.el",
+ "unstable": {
+ "version": [
+ 20190904,
+ 1950
+ ],
+ "deps": [
+ "cider",
+ "parseedn",
+ "s"
+ ],
+ "commit": "1376d50f1fc91f9345351aeb4960b54bf83be59e",
+ "sha256": "06zp5kshcsxf91d4as0nw1ncxx1a8ii6npzvk485sjrghnldsccm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cider",
+ "parseedn",
+ "s"
+ ],
+ "commit": "c4ec9cdc817e5f4c3f8d6013e44ea2df8f3eb07f",
+ "sha256": "062c6j8l2vv2vc23z5iq4b50p92k6bni1rayhhd8j0h5bkiml4w3"
+ }
+ },
+ {
+ "ename": "kaolin-themes",
+ "commit": "043a4e3bd5301ef8f4df2cbda0b3f4111eb399e4",
+ "sha256": "1pd2v54d578f1wbwvqzplkdz1qvy8w8s6na511b0v5y9sksgm2xw",
+ "fetcher": "github",
+ "repo": "ogdenwebb/emacs-kaolin-themes",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1844
+ ],
+ "deps": [
+ "autothemer",
+ "cl-lib"
+ ],
+ "commit": "380bcb745c9bbf7328b7f190680a0e51231e3c3e",
+ "sha256": "1yw1c97ynjjr3md2shrhviiqycaggcmzhkb0i5y49b2w2mdvp1fa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 0
+ ],
+ "deps": [
+ "autothemer",
+ "cl-lib"
+ ],
+ "commit": "3e2c700aa1cf9f0ee17486ef9a7a68f77fb9946a",
+ "sha256": "07lydl1b8fz4g4q22ffrl6li9kc3zp9zq5rpqghzr9b8f56ddfqj"
+ }
+ },
+ {
+ "ename": "kaomoji",
+ "commit": "140c65cb3cdf6c197b085ccf8ba079e1efd15f38",
+ "sha256": "1p61pbqf2lnwr6ryxxc4jkd5bmlgknrc27lg89h3b4pw7k39cqy1",
+ "fetcher": "github",
+ "repo": "kuanyui/kaomoji.el",
+ "unstable": {
+ "version": [
+ 20171227,
+ 440
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "90a1490743b2a30762f5454c9d9309018eff83dd",
+ "sha256": "1jc796nyrck3k50x6jb1wsaawk396y4gk87gkwb8yd5qks7ci35q"
+ }
+ },
+ {
+ "ename": "kapacitor",
+ "commit": "db1f8cfcda2fa2b9be74a6cd9f95608e8b3f50bb",
+ "sha256": "108b3y71p7s3lcwbqxp7hy2l304yj4hxm2nq8iv7ljr8av1q7kn6",
+ "fetcher": "github",
+ "repo": "Manoj321/kapacitor-el",
+ "unstable": {
+ "version": [
+ 20190414,
+ 1908
+ ],
+ "deps": [
+ "magit",
+ "magit-popup"
+ ],
+ "commit": "e3300d8b4017a2f66b0d929cb85bcc7ee2612072",
+ "sha256": "05vrfii2n2g2q60dzgw23ck6gxxm3d7fsabi4z0g3k9gc6wrsl5l"
+ }
+ },
+ {
+ "ename": "karma",
+ "commit": "681e12556c3ab3e2a8376d5c7c33ee5a213de650",
+ "sha256": "19wl7js7wmw7jv2q3l4r5zl718lhy2a0jhl79k57ihwhxdc58fwc",
+ "fetcher": "github",
+ "repo": "tonini/karma.el",
+ "unstable": {
+ "version": [
+ 20160220,
+ 1245
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "31d3e7708246183d7ed0686be92bf23140af348c",
+ "sha256": "12v242kfcx849j8w95v2g7djh9xqbx8n033iaxyavfxnz0pp7zdl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "f4ee856e7f59649e9d9021c46f872f9b4f5b7e6e",
+ "sha256": "0avcg307r4navvgj3hjkggk4gr7mzs4mljhxh223r8g69l9bm6m8"
+ }
+ },
+ {
+ "ename": "kconfig-mode",
+ "commit": "c359713acdb396c16d39fb6013d46677b5afa245",
+ "sha256": "17dhx5hjqhk4bljmj0v2xy379a0l89h8454x53mv6m9qm3rsnrhd",
+ "fetcher": "github",
+ "repo": "delaanthonio/kconfig-mode",
+ "unstable": {
+ "version": [
+ 20200628,
+ 1721
+ ],
+ "commit": "d9fdf751646abe2b75b7bbeb46e7552e0f36f290",
+ "sha256": "0dhkggvni5k4rnj2m6lva99hj1925b4w24dh9nv3m9w0x7b49263"
+ }
+ },
+ {
+ "ename": "kdeconnect",
+ "commit": "c363866d30fb86ae636d30def8c3847711ada762",
+ "sha256": "1bcwpnwmm1l2jzc5znw8z6f5knysinidsbm12v4r1j8v6v80ydw6",
+ "fetcher": "github",
+ "repo": "carldotac/kdeconnect.el",
+ "unstable": {
+ "version": [
+ 20180126,
+ 2340
+ ],
+ "commit": "ca0cbf9a628ba7b519b43fa85e0d988ca26bf853",
+ "sha256": "07aqzfg2nn35bkikrmk1lszqkc6h8vn2551m22mwc19lmdx94p2i"
+ }
+ },
+ {
+ "ename": "keepass-mode",
+ "commit": "350528855b482abee717d9d0515279e41ea9265e",
+ "sha256": "0vgkx8iz7vzavdkpgfxpnn6pcsnrfhf0vgx2m17rqv3g8ryb38hs",
+ "fetcher": "github",
+ "repo": "ifosch/keepass-mode",
+ "unstable": {
+ "version": [
+ 20200216,
+ 723
+ ],
+ "commit": "09dcc1da15808b5b6c22bc5d0cb4e2ba5d425ef8",
+ "sha256": "0r3aczydp6435alirl9c2gbb1a92c9mv6ibk9h57ds30z9ia31jr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "ad073eaab4f96ca033df023736d195dc3b611897",
+ "sha256": "0kyzcws47ch3pkw9ijb4gjr7l933c3mrxc9bsy16ddkc8dvl7yng"
+ }
+ },
+ {
+ "ename": "keg",
+ "commit": "78d46bbc822f5df56aa83b986a4f283949533d5b",
+ "sha256": "1cmbpak0rn6xz0ccpn1629qp0wn7rpv40js4jr958a2z89448g3g",
+ "fetcher": "github",
+ "repo": "conao3/keg.el",
+ "unstable": {
+ "version": [
+ 20200726,
+ 228
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fea2f831d84d7642c35820bb63250487e46683e5",
+ "sha256": "062lnv7g9ixs6d0qzp6py9ajd2rbrk7l2yrz3dn5zz8lx06hbaga"
+ }
+ },
+ {
+ "ename": "keg-mode",
+ "commit": "bb72a113cefcc1e42a1fe9ea00404fbc6ee8d917",
+ "sha256": "13g43mfja6b84bkfzinr2f39viyrix5xf4xwg7kg66zpy12bshiv",
+ "fetcher": "github",
+ "repo": "conao3/keg.el",
+ "unstable": {
+ "version": [
+ 20200601,
+ 333
+ ],
+ "commit": "fea2f831d84d7642c35820bb63250487e46683e5",
+ "sha256": "062lnv7g9ixs6d0qzp6py9ajd2rbrk7l2yrz3dn5zz8lx06hbaga"
+ }
+ },
+ {
+ "ename": "kerl",
+ "commit": "166afdc776689b0da93576dbeaa71ff6dfb627db",
+ "sha256": "0f8n7cm5c432pwj28bcpv2jj5z3br3k164xj6nwfis3dvijwsgss",
+ "fetcher": "github",
+ "repo": "correl/kerl.el",
+ "unstable": {
+ "version": [
+ 20150424,
+ 2005
+ ],
+ "commit": "1732ee26213f021bf040919c45ad276aafcaae14",
+ "sha256": "1kkzs7nrcr74qn1m456vaj52a9j3ah4biakimz06hls415l56yk9"
+ }
+ },
+ {
+ "ename": "key-chord",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "1g0jqmnn575h5n4figxbc5xs76zl8b1cdqa6wbi3d1p2rn3g8scr",
+ "fetcher": "github",
+ "repo": "emacsorphanage/key-chord",
+ "unstable": {
+ "version": [
+ 20160227,
+ 1238
+ ],
+ "commit": "72443e9ff3c4f1c3ccaced3130236801efde3d83",
+ "sha256": "15jfpysyydcvqlvdannxg2s4bh4i9z6i950fad1qlq43jfmq7k55"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "commit": "8468998946367157830df19a1e92785d22a34178",
+ "sha256": "10ldhwp9a21r9g72hzaig1h5yh2zblny0r36nf5nz6gzikfcq0cd"
+ }
+ },
+ {
+ "ename": "key-combo",
+ "commit": "99b422ef5f7b9dda894207e3133791fb9963a092",
+ "sha256": "1v8saw92jphvjkyy7j9jx7cxzgisl4zpf4wjzdjfw3la5lz11waf",
+ "fetcher": "github",
+ "repo": "uk-ar/key-combo",
+ "unstable": {
+ "version": [
+ 20150324,
+ 1439
+ ],
+ "commit": "2fb5c65bc82d5bd2964e2b163822429ab45d90a1",
+ "sha256": "1d445784mar1jrmrlswwxh3w52l3aym8kx3k4lgqwqa1p0i0pjqz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "0bc0cf6466a4257047a21a6d01913e92e6862165",
+ "sha256": "14ijniyvcfmj4y77yhiplsclincng2r3jbdnmmdnwzliv65f7l6q"
+ }
+ },
+ {
+ "ename": "key-intercept",
+ "commit": "ad758d865bde8c97d27c0d57cabe1606f8b36974",
+ "sha256": "1z776jbpjks5bir6bd0748mlrmz05nf0jy9l4hlmwgyn72dcbx16",
+ "fetcher": "github",
+ "repo": "tarao/key-intercept-el",
+ "unstable": {
+ "version": [
+ 20140211,
+ 749
+ ],
+ "commit": "d9a60edb4ce893f2d3d94f242164fdcc62d43cf2",
+ "sha256": "143nfs8pgi5yy3mjq7nirffplk4vb8kik4q7zypynh2pddip30a4"
+ }
+ },
+ {
+ "ename": "key-leap",
+ "commit": "8b56e18063e6292bb2aca2acc7077b32f3d62262",
+ "sha256": "0z1fhpf8g0c4rh3bf8dfmdgyhj5w686kavjr214czaga0x7mwlwj",
+ "fetcher": "github",
+ "repo": "MartinRykfors/key-leap",
+ "unstable": {
+ "version": [
+ 20160831,
+ 1447
+ ],
+ "commit": "b3f6ef15c8a13870475d5af159fa24b30f97dea0",
+ "sha256": "1f2k7jpxfvjirxzjc5c4s4lpg1hdgw8k7lfchx362jqijny1ipfp"
+ }
+ },
+ {
+ "ename": "key-quiz",
+ "commit": "e87df606bf768e3a731234c444077a11601ecc4a",
+ "sha256": "0zcs4nm9jis60ghm0xi84yc945xm45n0q1xp8ic1ix48wf7jq7a0",
+ "fetcher": "github",
+ "repo": "federicotdn/key-quiz",
+ "unstable": {
+ "version": [
+ 20200226,
+ 2129
+ ],
+ "commit": "1ee67f3f8977d95785e021f7896685de1979137e",
+ "sha256": "0cv0naq2g8z52vgf1p4mb55ww30bp2kpj1jp5cjnql1hxsvbx0mm"
+ }
+ },
+ {
+ "ename": "key-seq",
+ "commit": "0d54ab1b6973a44362e50559dd91344d0b17f513",
+ "sha256": "166k6hl9vvsnnksvhrv5cbhv9bdiclnbfv7qf67q4c1an9xzqi74",
+ "fetcher": "github",
+ "repo": "vlevit/key-seq.el",
+ "unstable": {
+ "version": [
+ 20150907,
+ 756
+ ],
+ "deps": [
+ "key-chord"
+ ],
+ "commit": "e29b083a6427d061638749194fc249ef69ad2cc0",
+ "sha256": "05vpydcgiaya35b62cdjxna9y02vnwzzg6p8jh0dkr9k44h4iy3f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "key-chord"
+ ],
+ "commit": "e29b083a6427d061638749194fc249ef69ad2cc0",
+ "sha256": "05vpydcgiaya35b62cdjxna9y02vnwzzg6p8jh0dkr9k44h4iy3f"
+ }
+ },
+ {
+ "ename": "keycast",
+ "commit": "aaaf62c586818f2493667ad6ec8877234a58da53",
+ "sha256": "19qq5y1zjp3029kfq0c59xl9xnxqmdn2pd04sblznchcr9jdy5id",
+ "fetcher": "github",
+ "repo": "tarsius/keycast",
+ "unstable": {
+ "version": [
+ 20200612,
+ 2247
+ ],
+ "commit": "038475c178e90c7bad64d113db26d42cad60e149",
+ "sha256": "1926khkdak2d1wgrgrfzhsv9l5f0rrl1rws78c3zw8ikwl8k7wbl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 3
+ ],
+ "commit": "038475c178e90c7bad64d113db26d42cad60e149",
+ "sha256": "1926khkdak2d1wgrgrfzhsv9l5f0rrl1rws78c3zw8ikwl8k7wbl"
+ }
+ },
+ {
+ "ename": "keychain-environment",
+ "commit": "4382c9e7e8dee2cafea9ee49965d0952ca359dd5",
+ "sha256": "1w77cg00bwx68h0d6k6r1fzwdwz97q12ch2hmpzjnblqs0i4sv8v",
+ "fetcher": "github",
+ "repo": "tarsius/keychain-environment",
+ "unstable": {
+ "version": [
+ 20180318,
+ 2223
+ ],
+ "commit": "d3643196de6dc79ea77f9f4805028350fd76100b",
+ "sha256": "0wzs77nwal6apinc39d4arj3lralv2cb9aw9gkikk46fgk404hwj"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4,
+ 1
+ ],
+ "commit": "d3643196de6dc79ea77f9f4805028350fd76100b",
+ "sha256": "0wzs77nwal6apinc39d4arj3lralv2cb9aw9gkikk46fgk404hwj"
+ }
+ },
+ {
+ "ename": "keydef",
+ "commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
+ "sha256": "0yb2vgj7abyg8j7qmv74nsanv50lf350q1m58rjv8wm31yykg992",
+ "fetcher": "github",
+ "repo": "emacsorphanage/keydef",
+ "unstable": {
+ "version": [
+ 20090428,
+ 1931
+ ],
+ "commit": "dff2be9f58d12d8c6a490ad0c1b2b10b55528dc0",
+ "sha256": "0dkc51bmix4b8czs2wg6vz8vk32qlll1b9fjmx6xshrxm85cyhvv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 15
+ ],
+ "commit": "dff2be9f58d12d8c6a490ad0c1b2b10b55528dc0",
+ "sha256": "0dkc51bmix4b8czs2wg6vz8vk32qlll1b9fjmx6xshrxm85cyhvv"
+ }
+ },
+ {
+ "ename": "keyfreq",
+ "commit": "cd7157bad0f3039321b5b279a88e7e4fce895543",
+ "sha256": "1rw6hzmw7h5ngvndy7aa41pq911y2hr9kqc9w4gdd5v2p4ln1qh7",
+ "fetcher": "github",
+ "repo": "dacap/keyfreq",
+ "unstable": {
+ "version": [
+ 20160516,
+ 1416
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e5fe9d585ce882f1ba9afa5d894eaa82c79be4f4",
+ "sha256": "12m1jy8m8i39b809qbxx9g3r066jxhqwfyf5mqbd1lzlaw63b1i7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8
+ ],
+ "commit": "f3a96693e2e4c6893198a0223e3f3c648ae09cec",
+ "sha256": "1x87mbnzkggx5llh0i0s3sj1nfw7liwnlqc9csya517w4x5mhl8i"
+ }
+ },
+ {
+ "ename": "keymap-utils",
+ "commit": "c03acebf1462dea36c81d4b9ab41e2e5739be3c3",
+ "sha256": "0nbcwz4nls0pva79lbx91bpzkl38g98yavwkvg2rxbhn9vjbhzs9",
+ "fetcher": "github",
+ "repo": "tarsius/keymap-utils",
+ "unstable": {
+ "version": [
+ 20200413,
+ 1858
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "195e0ca5b1b9967faf94a3e5a634d8975b796705",
+ "sha256": "0ckv9mbqb1f2lp17sv3nxjwww4ph9v3bhlxwvchvkkdlbcg87i5n"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "195e0ca5b1b9967faf94a3e5a634d8975b796705",
+ "sha256": "0ckv9mbqb1f2lp17sv3nxjwww4ph9v3bhlxwvchvkkdlbcg87i5n"
+ }
+ },
+ {
+ "ename": "keypress-multi-event",
+ "commit": "fd02baaf1d49d55b066695d8fa9887c454bb1750",
+ "sha256": "07va7w6vgjf6jqrfzpsq8732b8aka07g29h661yh1xn4x6464hyp",
+ "fetcher": "github",
+ "repo": "Boruch-Baum/emacs-keypress-multi-event",
+ "unstable": {
+ "version": [
+ 20190109,
+ 530
+ ],
+ "commit": "9de65a27e10d8ae47aa6d28c02c3eb82ee8c0b2e",
+ "sha256": "1ybbayxfix63rwc8p5kl4wxxlk6vg53abw40fqrlkbc6qrr7nm5c"
+ }
+ },
+ {
+ "ename": "keypression",
+ "commit": "056a8881cd868634a1833172436528ea2503af12",
+ "sha256": "1ysfpxfhgy14v0jy02c4qyz28cx682cf2haxlnrpw2gxjh0a0702",
+ "fetcher": "github",
+ "repo": "chuntaro/emacs-keypression",
+ "unstable": {
+ "version": [
+ 20200819,
+ 534
+ ],
+ "commit": "9427241f3fa539e4b5ad7581a05eb7e49f2cf518",
+ "sha256": "0p2pag2hzxswsf5hzjfm0nf4wpp40lsmxf1x6n9vfwfrpfk5b9ar"
+ }
+ },
+ {
+ "ename": "keyset",
+ "commit": "7bad8a1f1b94fbfbde5d8035f7e22431e64a9eec",
+ "sha256": "1kfw0pfb6qm2ji1v0kb8xgz8q2yd2k9kxmaz5vxcdixdlax3xiqg",
+ "fetcher": "github",
+ "repo": "HKey/keyset",
+ "unstable": {
+ "version": [
+ 20150220,
+ 530
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "45ce83c4b56f064874256db37e697a63b2c69e65",
+ "sha256": "0fcz1qw3mw4m8albs1ybixrcz8yqgwip69fr99cd5bxfyr6zqj6d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "25658ef79d26971ce41d9df207dff58d38daa091",
+ "sha256": "0z6sgz8nywsd00zaayafwy5hfi7kzxfifjkfr5cn1l7wlypyksfv"
+ }
+ },
+ {
+ "ename": "keystore-mode",
+ "commit": "7870d808fc19096ed6ecde5e9297b28254466210",
+ "sha256": "1r1my7jgjv2zvkhdwd8ml6489x48gzanz4lvdiw5m2hymb53fdg6",
+ "fetcher": "github",
+ "repo": "peterpaul/keystore-mode",
+ "unstable": {
+ "version": [
+ 20190409,
+ 1946
+ ],
+ "deps": [
+ "origami",
+ "s",
+ "seq"
+ ],
+ "commit": "43bd5926348298d077c7221f37902c990df3f951",
+ "sha256": "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"
+ }
+ },
+ {
+ "ename": "keyswap",
+ "commit": "ed8303f5009604ae3d83769063d38749e37fc5d8",
+ "sha256": "0ck9w2jr4vdk3yjlcdzblsbgw5w5x1cxbx7h1am5vkr6fhxh2hdi",
+ "fetcher": "github",
+ "repo": "hardenedapple/keyswap.el",
+ "unstable": {
+ "version": [
+ 20160813,
+ 957
+ ],
+ "commit": "cd682a7c4a8d64d6bae6a005db5045232e5e7b95",
+ "sha256": "191i2b2xx6180sly0dd6b1z6npsrzjqhxrbak9wm6yblx7alsgn2"
+ }
+ },
+ {
+ "ename": "keyword-search",
+ "commit": "8ecdc51938f2300bf005e2d1b1819e0fa59e0bd7",
+ "sha256": "0wvci1v8pblfbdslfzpi46c149y8pi49kza9jf33jzhj357lp5qa",
+ "fetcher": "github",
+ "repo": "keyword-search/keyword-search",
+ "unstable": {
+ "version": [
+ 20180424,
+ 1102
+ ],
+ "commit": "f8475ecaddb8804a9be6bee47678207c86ac8dee",
+ "sha256": "1ymqnpm9his2bkchq23vwazprwyw0d2sdgza7zjxvs3q0f4nj0vx"
+ }
+ },
+ {
+ "ename": "kfg",
+ "commit": "2990f45632697ce23e7cd9db807d8ae2d3bf61d2",
+ "sha256": "0kj79wwj2ih2ba57y3hl2l9pwjpsqns5waa8vi5g7agmqva0mh5b",
+ "fetcher": "github",
+ "repo": "czipperz/kfg",
+ "unstable": {
+ "version": [
+ 20140909,
+ 538
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "d2c9dd26618fb2f7bf1e7b6eae193b1cceba3c97",
+ "sha256": "0xq835xzywks4b4kaz5i0pp759i23kibs5gkvvxasw0dncqh7j5c"
+ }
+ },
+ {
+ "ename": "khardel",
+ "commit": "d0dafe07d355f705b268b19460cf071ab878961f",
+ "sha256": "0h9dhlzjrci4q5p18fwwizs31f4gyz8d5jq011bvzcvz9q1q75sp",
+ "fetcher": "github",
+ "repo": "DamienCassou/khardel",
+ "unstable": {
+ "version": [
+ 20191124,
+ 1257
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "5ee835a4429c58dec3900e4fa3d7cc1e778c969b",
+ "sha256": "0k2q0m7g9bj4k5xc4cldhi7cfbb114g016abyzq3q3jaymja195z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "5ee835a4429c58dec3900e4fa3d7cc1e778c969b",
+ "sha256": "0k2q0m7g9bj4k5xc4cldhi7cfbb114g016abyzq3q3jaymja195z"
+ }
+ },
+ {
+ "ename": "kibit-helper",
+ "commit": "f7fee551ca9ed226f1285dffe87027e1e1047f65",
+ "sha256": "15viybjqksylvm5ash2kzsil0cpdka56wj1rryixa8y1bwlj8y4s",
+ "fetcher": "github",
+ "repo": "brunchboy/kibit-helper",
+ "unstable": {
+ "version": [
+ 20150508,
+ 1533
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "16bdfff785ee05d8e74a5780f6808506d990cef7",
+ "sha256": "0s2hb2lvfmcvm3n1fg4biaafc1p7j7w990d7w15gicaw6rr2j4nr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "ec5f154db3bb0c838e86f527353f08644cede926",
+ "sha256": "0ky167xh1hrmqsldybzjhyqjizgjzs1grn5mf8sm2j9qwcvjw2zv"
+ }
+ },
+ {
+ "ename": "kill-or-bury-alive",
+ "commit": "25016ed09b6333bd79b989a8f6b7b03cd92e08b3",
+ "sha256": "0mm0m8hpy5v98cap4f0s38dcviirm7s6ra4l94mknyvnx0f73lz8",
+ "fetcher": "github",
+ "repo": "mrkkrp/kill-or-bury-alive",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1340
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7db85a3f3004ff400e24105d1875f4e3a6eec7a6",
+ "sha256": "02nv6hzzr60gn24ra88smrwmkfjcb33c987dcgxqv7rzjpdjagnx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "51daf55565034b8cb6aa3ca2aa0a827e31751041",
+ "sha256": "1qbdxjni1brhsw6m4cvd2jjaf3y8v3fkbxxf0pvsb089mkpi7mpq"
+ }
+ },
+ {
+ "ename": "kill-ring-search",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1jggi6r5j2dr9y17v4cyskc0wydfdpqgp1pib5dr2kg6n6w0s5xl",
+ "fetcher": "github",
+ "repo": "nschum/kill-ring-search.el",
+ "unstable": {
+ "version": [
+ 20140422,
+ 1555
+ ],
+ "commit": "23535b4a01a1cb1574604e36c49614e84e85c883",
+ "sha256": "0yrc09k64rv5is4wvss938mkj2pkvbr98lr3ahsi7p0aqn7s444v"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "3a5bc1767f742c91aa788df79ecec836a0946edb",
+ "sha256": "0axvhikhg4fikiz4ifg0p4a5ygphbpjs0wd0gcbx29n0y54d1i93"
+ }
+ },
+ {
+ "ename": "killer",
+ "commit": "bd8c3ec8fa272273128134dea96c0c999a524549",
+ "sha256": "10z4vqwrpss7mk0gq8xdsbsl0qibpp7s1g0l8wlmrsgn6kjkr2ma",
+ "fetcher": "github",
+ "repo": "tarsius/killer",
+ "unstable": {
+ "version": [
+ 20190128,
+ 10
+ ],
+ "commit": "ace0547944933440384ceeb5876b1f68c082d540",
+ "sha256": "06nzxd9nc1d569354xj7w88i0y5l99pyag691aribsh771rxbfz4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "ace0547944933440384ceeb5876b1f68c082d540",
+ "sha256": "06nzxd9nc1d569354xj7w88i0y5l99pyag691aribsh771rxbfz4"
+ }
+ },
+ {
+ "ename": "kite",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "17bpk9ycx2xkwm3j1dxi5216lbzf5lgnscs8i4y0pkpicdn0wyr6",
+ "fetcher": "github",
+ "repo": "jscheid/kite",
+ "unstable": {
+ "version": [
+ 20130201,
+ 1938
+ ],
+ "deps": [
+ "json",
+ "websocket"
+ ],
+ "commit": "7ed74d1147a6ddd152d3da65dc30df3517d53144",
+ "sha256": "1cr4i66lws6yhyxmyx5jw6d5x7i75435mafkkych4nfa0mv4vicd"
+ }
+ },
+ {
+ "ename": "kite-mini",
+ "commit": "a9b76d0ee09efc6652d0541cf72c9623760dda66",
+ "sha256": "1g644406zm3db0fjyv704aa8dbd20v1apmysb3mmh2vldbch4iyh",
+ "fetcher": "github",
+ "repo": "tungd/kite-mini.el",
+ "unstable": {
+ "version": [
+ 20160508,
+ 1106
+ ],
+ "deps": [
+ "dash",
+ "websocket"
+ ],
+ "commit": "a68619dbc109c7989f3448426d8c1ee9e797c11f",
+ "sha256": "1qmg5mdf3zhmpa4kdvkh62y6if6mj4ag885dg7y6461dg2y6ymlh"
+ }
+ },
+ {
+ "ename": "kivy-mode",
+ "commit": "688e2a114073958c413e56e1d117d48db9d16fb8",
+ "sha256": "02l230rwivr7rbiqm4vg70458z35f9v9w3mdapcrqd5d07y5mvi1",
+ "fetcher": "github",
+ "repo": "kivy/kivy",
+ "unstable": {
+ "version": [
+ 20180702,
+ 2029
+ ],
+ "commit": "f34c43f235f35767ed04765a90d68b23807436ba",
+ "sha256": "06pgjd79kvkpznniw90hrsb7fvc0y3hhnxs6pyay869d50vbyw53"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0,
+ -1,
+ 3
+ ],
+ "commit": "20c14b2a2bac73288a4c2808843910364565f66a",
+ "sha256": "1mf3if96cvxc8sqy22h4j2aq320ngw6q2286psvpq9v1mhv0wna4"
+ }
+ },
+ {
+ "ename": "kiwix",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0x5ld557kxzx5s8ziy5axgvm1fxlq81l9gvinfgs8f257vjlki07",
+ "fetcher": "github",
+ "repo": "stardiviner/kiwix.el",
+ "unstable": {
+ "version": [
+ 20200714,
+ 1357
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "cb3e2531a55b896b9b41f38f97a597c26433da8e",
+ "sha256": "077bng1mwnd1m8ji4a44aqly94d07k09grwk0j52kgxlhvv3p3di"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c662f3dc5d924a4b64b7af4af28f15f27b7cea1e",
+ "sha256": "0i11sfnqvjqqb625cgfzibs6yszx891y4dy7fd6wzmdpclcyzr8z"
+ }
+ },
+ {
+ "ename": "kixtart-mode",
+ "commit": "672cfc166209b6c2ffcb0e549fd2416be7212a5a",
+ "sha256": "079bw4lgxbmk65rrfyy8givs8j5wsyhpcjjw915ifkg577gj87qp",
+ "fetcher": "github",
+ "repo": "ryrun/kixtart-mode",
+ "unstable": {
+ "version": [
+ 20150611,
+ 1604
+ ],
+ "commit": "1c2356797e7b766bbaaa2b341176a8b10499cd79",
+ "sha256": "1ld3ccg8q7hmjrj60rxvmmfy4dpm2lvlshjqdf9ifgjzp221g4vb"
+ }
+ },
+ {
+ "ename": "klere-theme",
+ "commit": "07a3e348d69738ae59fce3570a61b0cdc565fdb8",
+ "sha256": "1lgvk6q2853rpk15i91zf917r8wmrb7bnagp4x02fws49x83hqrs",
+ "fetcher": "github",
+ "repo": "WammKD/emacs-klere-theme",
+ "unstable": {
+ "version": [
+ 20180415,
+ 1823
+ ],
+ "commit": "c064f9e5c44173c239fce239a62c8d5e61827672",
+ "sha256": "1rfdk35k1cj1z5gnsckcy93mqgj1amqzb13b89k11bnzc2m6r7zl"
+ }
+ },
+ {
+ "ename": "know-your-http-well",
+ "commit": "2ab50ae6278022281b2b7297c086089e5e669c7a",
+ "sha256": "0k2x0ajxkivim8nfpli716y7f4ssrmvwi56r94y34x4j3ib3px3q",
+ "fetcher": "github",
+ "repo": "for-GET/know-your-http-well",
+ "unstable": {
+ "version": [
+ 20160208,
+ 2304
+ ],
+ "commit": "3cc5ab6d2764ab7aacb1b6e026abaccbeb6c37f2",
+ "sha256": "0hni9xvv0759nqwhngijiqkvpiz7alyd4ydf0mvi2vkmbxkci8n1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "c381a9735f3ea86ebc9667e35cdfeab0b67fefb7",
+ "sha256": "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"
+ }
+ },
+ {
+ "ename": "kodi-remote",
+ "commit": "08f06dd824e67250afafdecc25128ba794ca971f",
+ "sha256": "0f3n7b3plsw28xpz07lf5pv71b6s2xjhq2h23gpyg0r69v99chh5",
+ "fetcher": "github",
+ "repo": "spiderbit/kodi-remote.el",
+ "unstable": {
+ "version": [
+ 20190622,
+ 1325
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "json",
+ "let-alist",
+ "request"
+ ],
+ "commit": "f5e932036c16e2b61a63020e006fc601e38d181e",
+ "sha256": "1gck7lvqxcr9ikrzlpvcf4408cq6i4s8ijgb0kdsbkfzv0w86934"
+ }
+ },
+ {
+ "ename": "kolon-mode",
+ "commit": "b18f38d291303ff362e11ca711bb00bf411e2180",
+ "sha256": "0wcg8ph3mk4zcmzqpvl2w6rfgvrfvhmgwb14y8agh9b7v5d9xwj3",
+ "fetcher": "github",
+ "repo": "samvtran/kolon-mode",
+ "unstable": {
+ "version": [
+ 20140122,
+ 1134
+ ],
+ "commit": "5af0955e280ae991862189ebecd3937c5fc8fb9f",
+ "sha256": "0yr4yxwxgxp5pm9f8gaqlikxp26inv01inq0ya42dzam5yphkafw"
+ }
+ },
+ {
+ "ename": "kooten-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1zhrjli65pn5nshz8pqn5vbsndzk2h8mhbcldq9k0mc7ki2rrdlv",
+ "fetcher": "github",
+ "repo": "kootenpv/emacs-kooten-theme",
+ "unstable": {
+ "version": [
+ 20161023,
+ 905
+ ],
+ "commit": "d10197b4dd7af02cd14aeab2573c273a294798c3",
+ "sha256": "1vc97d3i7jh4fbpan7lfnmsm32c4gwgrg11j2vq7z3rwm42wkkyr"
+ }
+ },
+ {
+ "ename": "korean-holidays",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1yf0z9vpiwhlsnyb0fy9wf5rz6f2fzzign96zgj0zd5hwmznbmyr",
+ "fetcher": "github",
+ "repo": "tttuuu888/korean-holidays",
+ "unstable": {
+ "version": [
+ 20190102,
+ 1558
+ ],
+ "commit": "3f90ed86f46f8e5533f23baa40e2513ac497ca2b",
+ "sha256": "0y88b4mr73qcshr87750jkjzz1mc2wwra6ca3y8spv4qc6cadwls"
+ }
+ },
+ {
+ "ename": "kosmos-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0vj1z69hz0j7kxnzj13c4vck1qj5j1glr9lymk5ns2v8l56gakwb",
+ "fetcher": "github",
+ "repo": "habamax/kosmos-theme",
+ "unstable": {
+ "version": [
+ 20170502,
+ 1850
+ ],
+ "commit": "616456d2376a75dc31190ad65137d179fbad4336",
+ "sha256": "193zwgwfnj0lyk0msa16y0dfg7asp953p3jm56d9wdacggbcraj9"
+ }
+ },
+ {
+ "ename": "kotlin-mode",
+ "commit": "9f2560e913b215821221c96069a1385fe4e19c3e",
+ "sha256": "08jn8r4nhhlck0f7n5agibwh049rigdiy12lpmijbwk1zmcvsqws",
+ "fetcher": "github",
+ "repo": "Emacs-Kotlin-Mode-Maintainers/kotlin-mode",
+ "unstable": {
+ "version": [
+ 20191102,
+ 1510
+ ],
+ "commit": "8e6dd578f2b3d77ac33b6384d2bfe1b1f6799a1a",
+ "sha256": "12gwy76kz4qjw1qxma4q9pk9s2arzr5p95ni5vzizm2p4x4c5a8x"
+ }
+ },
+ {
+ "ename": "kpm-list",
+ "commit": "6b7065d016e2da49277b165edf565bef5819d483",
+ "sha256": "0022bhy1mzngjmjydyqnmlgnhww05v4dxsfav034r8nyyc7677z0",
+ "fetcher": "github",
+ "repo": "KMahoney/kpm-list",
+ "unstable": {
+ "version": [
+ 20170924,
+ 1352
+ ],
+ "commit": "e0f5112e5ce8ec1b603f4428fa51681c68bb28f5",
+ "sha256": "1achcr3v0d85narnxqpbfxy9qfk537kl83wiq5lyfy3lwqqf7dmp"
+ }
+ },
+ {
+ "ename": "kroman",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "0rcy3343pmlqzqzhmz2c3r0b44pn8fsyp39mvn9nmdnaxsn6q3k8",
+ "fetcher": "github",
+ "repo": "zhangkaiyulw/kroman-el",
+ "unstable": {
+ "version": [
+ 20150827,
+ 2340
+ ],
+ "commit": "90402b6ae40383e75d8ba97d66eee93eebf40f70",
+ "sha256": "11axxmhdpwgrcyjz200pf5bqzjw9wz4085r8p1n2vr5gx98374fr"
+ }
+ },
+ {
+ "ename": "ksp-cfg-mode",
+ "commit": "d49db5938fa4e3ab1176a955a4788b15c63d9e69",
+ "sha256": "0azcn4qvziacbw1qy33fwdaldw7xpzr672vzjsqhr0b2vg9m2ipi",
+ "fetcher": "github",
+ "repo": "lashtear/ksp-cfg-mode",
+ "unstable": {
+ "version": [
+ 20190414,
+ 2348
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "faec8bd8456c67276d065eb68c88a30efcef59ef",
+ "sha256": "192s6hz71i0d8bwxn2pdl9yggs2l5fd6jxlxmry8fpk04qg3lqrg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "faec8bd8456c67276d065eb68c88a30efcef59ef",
+ "sha256": "192s6hz71i0d8bwxn2pdl9yggs2l5fd6jxlxmry8fpk04qg3lqrg"
+ }
+ },
+ {
+ "ename": "kubectx-mode",
+ "commit": "e1a9badd46f8900a1d6355cb2c703788ed66e8fb",
+ "sha256": "0g73yf3kl1f1c40p1na29hli4q0ligy0dh0lxc21k9mj57dbnzyg",
+ "fetcher": "github",
+ "repo": "terjesannum/emacs-kubectx-mode",
+ "unstable": {
+ "version": [
+ 20200116,
+ 1918
+ ],
+ "commit": "f08687ae5403eb18bbeffc6dafdfde469bdb9a36",
+ "sha256": "1yml417gj8ds3fiy0vvrv9vxnjyis157hcmhyn491hb67bd6xl5j"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "f08687ae5403eb18bbeffc6dafdfde469bdb9a36",
+ "sha256": "1yml417gj8ds3fiy0vvrv9vxnjyis157hcmhyn491hb67bd6xl5j"
+ }
+ },
+ {
+ "ename": "kubel",
+ "commit": "6fe35f90b858d0b6710b4bae8a2b80f97f1b8228",
+ "sha256": "17xsy0kj2dskmr8mmrlvhkrylzgbfd0jqay9qa9avzlh24v85jcm",
+ "fetcher": "github",
+ "repo": "abrochard/kubel",
+ "unstable": {
+ "version": [
+ 20200812,
+ 2143
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "transient"
+ ],
+ "commit": "55099f130803b56eb1f7595ba34a313df4ec138a",
+ "sha256": "1sly3fgdrynazaab0nb7hbxs0vb42g0r00m7zr162kqw7n57gxaw"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "6fafe9c2b8edcb9df96965a315474c83a90b1809",
+ "sha256": "1q1wkwsx9dyjw1b6cxnz1w0xi8r75x7n6iq18v038ny2k110m6g9"
+ }
+ },
+ {
+ "ename": "kubel-evil",
+ "commit": "659b07e3acaa7f1738632b614098c0bdb7850969",
+ "sha256": "1rvzgkrw88m2im1gadpxz9galjzcnpfmqlim5020vy8lxi558zcj",
+ "fetcher": "github",
+ "repo": "abrochard/kubel",
+ "unstable": {
+ "version": [
+ 20200312,
+ 1349
+ ],
+ "deps": [
+ "evil",
+ "kubel"
+ ],
+ "commit": "55099f130803b56eb1f7595ba34a313df4ec138a",
+ "sha256": "1sly3fgdrynazaab0nb7hbxs0vb42g0r00m7zr162kqw7n57gxaw"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "deps": [
+ "evil",
+ "kubel"
+ ],
+ "commit": "6fafe9c2b8edcb9df96965a315474c83a90b1809",
+ "sha256": "1q1wkwsx9dyjw1b6cxnz1w0xi8r75x7n6iq18v038ny2k110m6g9"
+ }
+ },
+ {
+ "ename": "kubernetes",
+ "commit": "16850227ea48f6f38102b9cdf80e0758766a24d2",
+ "sha256": "06357a8y3rpvid03r9vhmjgq97hmiah5g8gff32dij9424vidil9",
+ "fetcher": "github",
+ "repo": "chrisbarrett/kubernetes-el",
+ "unstable": {
+ "version": [
+ 20200114,
+ 436
+ ],
+ "deps": [
+ "dash",
+ "magit",
+ "magit-popup"
+ ],
+ "commit": "cc33d8c7bb114c34809ee86020b9e635eff0017b",
+ "sha256": "11bi1z28rf2ldx20mqgq6yfkpc1af9kgvjzrz3w3dcf074jp89lb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "magit",
+ "magit-popup"
+ ],
+ "commit": "8ae9dc2340620c7d8efb2347723b25bde5a6fba0",
+ "sha256": "0di3vcq8c8j8avjlic7bhvbq4p27cvzyklm26wiq4rga88vjhyb0"
+ }
+ },
+ {
+ "ename": "kubernetes-evil",
+ "commit": "16850227ea48f6f38102b9cdf80e0758766a24d2",
+ "sha256": "12ygfs6g9aivf2ws3lxwjm5xnd2kidhli889icpygd5v7gnk9pg8",
+ "fetcher": "github",
+ "repo": "chrisbarrett/kubernetes-el",
+ "unstable": {
+ "version": [
+ 20191108,
+ 615
+ ],
+ "deps": [
+ "evil",
+ "kubernetes"
+ ],
+ "commit": "cc33d8c7bb114c34809ee86020b9e635eff0017b",
+ "sha256": "11bi1z28rf2ldx20mqgq6yfkpc1af9kgvjzrz3w3dcf074jp89lb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13,
+ 0
+ ],
+ "deps": [
+ "evil",
+ "kubernetes"
+ ],
+ "commit": "8ae9dc2340620c7d8efb2347723b25bde5a6fba0",
+ "sha256": "0di3vcq8c8j8avjlic7bhvbq4p27cvzyklm26wiq4rga88vjhyb0"
+ }
+ },
+ {
+ "ename": "kubernetes-helm",
+ "commit": "269c73e26b3d0cc51bbac8b63bb3782f7428ab40",
+ "sha256": "0rik7qz5m2hxylmdsjdnrlj52sm7c669milxxp5i1a1c44621xa6",
+ "fetcher": "github",
+ "repo": "abrochard/kubernetes-helm",
+ "unstable": {
+ "version": [
+ 20190201,
+ 320
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "bdf9280899b5efab6d55ffd96bad716c5f8e75bc",
+ "sha256": "05fsxknp2jpmchvz49hpvh8xvkwl70ksar6ccjqrp7nqcn7cvz2j"
+ }
+ },
+ {
+ "ename": "kubernetes-tramp",
+ "commit": "8ea4b15e64a9dc33b9977650488693cacadd1ab1",
+ "sha256": "15nlx3w2v0gky0zgbx7n0w1mdr6yaj4dh028ay2k19wg8wbsckjq",
+ "fetcher": "github",
+ "repo": "gruggiero/kubernetes-tramp",
+ "unstable": {
+ "version": [
+ 20181228,
+ 922
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8713571b66940f8f3f496b55baa23cdf1df7a869",
+ "sha256": "05xbpdgxglqw7s2chay32s5kmglpd446dg3vh02d1462lh474snf"
+ }
+ },
+ {
+ "ename": "kurecolor",
+ "commit": "58a5ebdbf82e83e6602161bca049d468887abe02",
+ "sha256": "0q0q0dfv376h7j3sgwxqwfpxy1qjbvb6i5clsxz9xp4ly89w4d4f",
+ "fetcher": "github",
+ "repo": "emacsfodder/kurecolor",
+ "unstable": {
+ "version": [
+ 20200113,
+ 2027
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "3fc84840cbbd75e646cafa2fd3a00004b55e37ec",
+ "sha256": "0y8wj8f2wzhg5vl4kjrqny3333616s4lcil085190yyb7mjakvn5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 6
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "a27153f6a01f38226920772dc4917b73166da5e6",
+ "sha256": "04av67q5841jli6rp39hav3a5gr2vcf3db4qsv553i23ffplb955"
+ }
+ },
+ {
+ "ename": "kv",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0c10r7mhg517p62lc87ccqypsjrm28xh3bgv4f01fnx569jqgzgp",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-kv",
+ "unstable": {
+ "version": [
+ 20140108,
+ 1534
+ ],
+ "commit": "721148475bce38a70e0b678ba8aa923652e8900e",
+ "sha256": "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"
+ }
+ },
+ {
+ "ename": "kwin",
+ "commit": "04e6d622a1f1cb765c33297a99f06ed513985498",
+ "sha256": "1pxnyj81py3ygadmyfrqndb0jkk6xlbf0rg3857hsy3ccblzm7ki",
+ "fetcher": "github",
+ "repo": "reactormonk/kwin-minor-mode",
+ "unstable": {
+ "version": [
+ 20150308,
+ 1812
+ ],
+ "commit": "d4f8f3593598b71ee596e0a87b2c1d6a912a9566",
+ "sha256": "0irbfgip493hyh45msnb7climgfwr8f05nvc97bzaqggnay88scy"
+ }
+ },
+ {
+ "ename": "lab-themes",
+ "commit": "c5817cb4cb3a573f93bacfb8ef340bef0e1c5df4",
+ "sha256": "10gvrrbqp6rxc9kwk8315pa1ldmja42vwr31xskjaq0l4fd28kx0",
+ "fetcher": "github",
+ "repo": "MetroWind/lab-theme",
+ "unstable": {
+ "version": [
+ 20200815,
+ 2104
+ ],
+ "commit": "9d7deb9635959d3a50ccb1082eb1207275f4b3e8",
+ "sha256": "0ifpg3vz84x87a1xsx0db79v14bfdnbaha6p4hcvaj67hi58qa81"
+ }
+ },
+ {
+ "ename": "labburn-theme",
+ "commit": "b1bfc9870fbe61f58f107b72fd7f16efba22c902",
+ "sha256": "09qqb62hfga88zka0pc27rc8i43cxi84cv1x8wj0vvzx6mvic1lm",
+ "fetcher": "github",
+ "repo": "ksjogo/labburn-theme",
+ "unstable": {
+ "version": [
+ 20200309,
+ 1556
+ ],
+ "commit": "d11537a2060df7e992217ede8f65d6c11de49458",
+ "sha256": "0aqdl3hq76r315h2h75lxgbyb7hw3hdg49n72frm1wx7hj372d0g"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "bfa1d9f1c7e107cb45754fe57e4e72a9be70e9d1",
+ "sha256": "1r221fwfigr6fk4p3xh00wgw9wxm2gpzvj17jf5pgd7cvyspchsy"
+ }
+ },
+ {
+ "ename": "laguna-theme",
+ "commit": "58566386032a017c26ab07c551e72fbe1c20117d",
+ "sha256": "15ip30ssvp4sqy70998dkkik099mblx4gdsclwh17yc0vi03cg11",
+ "fetcher": "github",
+ "repo": "HenryNewcomer/laguna-theme",
+ "unstable": {
+ "version": [
+ 20191229,
+ 19
+ ],
+ "commit": "0da19f68ba22a39c02d83063f5b4936401ce4d97",
+ "sha256": "1r8di1cmhcx2vfk3fsydx24spib1fi4wihnxa41favnkjzklz9jv"
+ }
+ },
+ {
+ "ename": "lambdapi-mode",
+ "commit": "86702d5ad9279f03bdae5facb0b546e133c1fedd",
+ "sha256": "0ha9k0wc5snb5j0bpzjj91b7kd9ppsk8wbcj454wdkx87x73npdd",
+ "fetcher": "github",
+ "repo": "Deducteam/lambdapi",
+ "unstable": {
+ "version": [
+ 20200706,
+ 1546
+ ],
+ "deps": [
+ "eglot",
+ "math-symbol-lists"
+ ],
+ "commit": "665cb18e484b8e41b0314fc442422b671cda2962",
+ "sha256": "0qsd30xnhzcvfdk0p2adzrbzl6hw4z5is0wwirzr79qx025zm4gf"
+ }
+ },
+ {
+ "ename": "lammps-mode",
+ "commit": "8f5471a8e17977c17ad84b12a77fe80f37eda25e",
+ "sha256": "06i48pxp9vq4z7hffna0cndr6iblapim169659pmhidbc4pp7bm4",
+ "fetcher": "github",
+ "repo": "HaoZeke/lammps-mode",
+ "unstable": {
+ "version": [
+ 20180801,
+ 1319
+ ],
+ "commit": "a5b68d7a59975770b56ee8f6e66fa4f703a72ffe",
+ "sha256": "1ma33bszv7d6am47n5r74ja4ks7n46m8xfkkr3vcqymlfhbdpq73"
+ }
+ },
+ {
+ "ename": "lang-refactor-perl",
+ "commit": "6bbbf89b71364720dd39e2cf902271108151b5ca",
+ "sha256": "02fv25d76rvxqzxs48j4lkrifdhqayyb1in05ryyz2pk9x5hbax9",
+ "fetcher": "github",
+ "repo": "jplindstrom/emacs-lang-refactor-perl",
+ "unstable": {
+ "version": [
+ 20131122,
+ 2127
+ ],
+ "commit": "691bd69639de6b7af357e3b7143563ececd9c497",
+ "sha256": "135k7inkvdz51j7al3nndaamrkyn989vlv1mxcp8lwx8cgq0rqfj"
+ }
+ },
+ {
+ "ename": "langdoc",
+ "commit": "defe78f12dbd7137bed7b1a309caa579e220f7dc",
+ "sha256": "19i6ys58wswl5ckf33swl6lsfzg4znx850br4icik15yrry65yj7",
+ "fetcher": "github",
+ "repo": "tom-tan/langdoc",
+ "unstable": {
+ "version": [
+ 20150218,
+ 645
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2c7223bacb116992d700ecb19a60df5c09c63424",
+ "sha256": "0svci7xs4iysv8ysf93g382arip0xpgi0fllw8xx2vrd70sz7lff"
+ }
+ },
+ {
+ "ename": "langtool",
+ "commit": "503845e79e67c921f1fde31447f3dd4da2b6f993",
+ "sha256": "1xq70jyhzg0qmvialy015crbdk9rdibhwpl36khab9hi2999wxyw",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-langtool",
+ "unstable": {
+ "version": [
+ 20200529,
+ 230
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8276eccc5587bc12fd205ee58a7a982f0a136e41",
+ "sha256": "1pkfazn6qy6n4rg1rvw7b79b7nsp7xqdadhpah4xjvqxd6apqasz"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0fe79567244ca719448c55a89082505596a2359a",
+ "sha256": "1pkfazn6qy6n4rg1rvw7b79b7nsp7xqdadhpah4xjvqxd6apqasz"
+ }
+ },
+ {
+ "ename": "language-detection",
+ "commit": "ed2b68d0a11e5db0e7f2f5cbb2eb93c298bcb765",
+ "sha256": "1c613dj6j05idqyjd6ix7llw04d0327aicac04cicrb006km3r51",
+ "fetcher": "github",
+ "repo": "andreasjansson/language-detection.el",
+ "unstable": {
+ "version": [
+ 20161123,
+ 1813
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "54a6ecf55304fba7d215ef38a4ec96daff2f35a4",
+ "sha256": "0p8kim8idh7hg9398kpgjawkxq9hb6fraxpamdkflg8gjk0h5ppa"
+ }
+ },
+ {
+ "ename": "language-id",
+ "commit": "d03af6375bc7ba4612c43dea805d7f392f046f87",
+ "sha256": "0p7hg005bmzy38sv2881fq1x2i7yjdhfjbki4y2av485c418rqz8",
+ "fetcher": "github",
+ "repo": "lassik/emacs-language-id",
+ "unstable": {
+ "version": [
+ 20200726,
+ 1813
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "aa541a4461a07add17374fd56aef6e2fd1a61c60",
+ "sha256": "0mxwch6692mb5d9l5hzbscrg61a3sxf2wjbn66q06b5a2r2wkqvn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "aa541a4461a07add17374fd56aef6e2fd1a61c60",
+ "sha256": "0mxwch6692mb5d9l5hzbscrg61a3sxf2wjbn66q06b5a2r2wkqvn"
+ }
+ },
+ {
+ "ename": "languagetool",
+ "commit": "ce91d4013963eacf1525809684e64ca52239fb73",
+ "sha256": "1cbhamz8yhfnyhzbn4j0kp9sbsycq1hi0j2kr3yhbf66fgi6x9f6",
+ "fetcher": "github",
+ "repo": "PillFall/Emacs-LanguageTool.el",
+ "unstable": {
+ "version": [
+ 20200507,
+ 610
+ ],
+ "commit": "e7faecf8a7eec8086aafc48a5c4f1908bb5c4300",
+ "sha256": "1nb5l1xpgz9z6xplb64a3nx8vis70r9dl0xxly5hddy67i49si54"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "e7faecf8a7eec8086aafc48a5c4f1908bb5c4300",
+ "sha256": "1nb5l1xpgz9z6xplb64a3nx8vis70r9dl0xxly5hddy67i49si54"
+ }
+ },
+ {
+ "ename": "lastfm",
+ "commit": "0b87a3465eece39cb2f73a90dedf97dd0dd970c2",
+ "sha256": "06gy4br99r8l9ak2ac7js9nyw4v5b94a8ja4pkik49l90qgss93m",
+ "fetcher": "github",
+ "repo": "mihaiolteanu/lastfm.el",
+ "unstable": {
+ "version": [
+ 20200701,
+ 715
+ ],
+ "deps": [
+ "anaphora",
+ "elquery",
+ "memoize",
+ "request",
+ "s"
+ ],
+ "commit": "cfa5e9b0b1f54884dc36ae5d8f35e3c6b841ef74",
+ "sha256": "1m1qf5f7kq7d720inkks6wwwn4hf40lrz4755gwnnn6d5zf0b1ix"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "anaphora",
+ "elquery",
+ "memoize",
+ "request",
+ "s"
+ ],
+ "commit": "96568f07324ba32804be9352016956694923f5f3",
+ "sha256": "04a563g6rby8374azpfjdagbgdylcg2glfx5wdx5agd98bs15j28"
+ }
+ },
+ {
+ "ename": "lastpass",
+ "commit": "46e5e8735baab7728bddce2693cea6bcee0e6360",
+ "sha256": "0x4c9c110nqv3v6kzcxdg9a9zcg7yn1hj6ffgrbsd8c3wbrdxrlj",
+ "fetcher": "github",
+ "repo": "storvik/emacs-lastpass",
+ "unstable": {
+ "version": [
+ 20200320,
+ 2117
+ ],
+ "deps": [
+ "cl-lib",
+ "seq"
+ ],
+ "commit": "ac472f844bd1e109c62479253cbc40bb5e50ed8f",
+ "sha256": "07bh7vkczzpmkbxxyyhn912b5rjm975a49y1bq08y4vd006zsq4x"
+ }
+ },
+ {
+ "ename": "latex-extra",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "1w98ngxymafigjpfalybhs12jcf4916wk4nlxflfjcx8ryd9wjcj",
+ "fetcher": "github",
+ "repo": "Malabarba/latex-extra",
+ "unstable": {
+ "version": [
+ 20170817,
+ 147
+ ],
+ "deps": [
+ "auctex",
+ "cl-lib"
+ ],
+ "commit": "82d99b8b0c2db20e5270749582e03bcc2443ffb5",
+ "sha256": "15m7zvdhg5z7d8alrw66p703wdp5r57lxrgq3zz7xc4hscwghlb1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 14
+ ],
+ "deps": [
+ "auctex",
+ "cl-lib"
+ ],
+ "commit": "82d99b8b0c2db20e5270749582e03bcc2443ffb5",
+ "sha256": "15m7zvdhg5z7d8alrw66p703wdp5r57lxrgq3zz7xc4hscwghlb1"
+ }
+ },
+ {
+ "ename": "latex-math-preview",
+ "commit": "9e413b7684e9199510b00035825aa861d670e072",
+ "sha256": "14bn0q5czrrkb1vjdkwx6f2x4zwjkxgrc0bcncv23l13qls1gkmr",
+ "fetcher": "gitlab",
+ "repo": "latex-math-preview/latex-math-preview",
+ "unstable": {
+ "version": [
+ 20190123,
+ 802
+ ],
+ "commit": "90fd86da2d9514882146a5db40cb916fc533cf55",
+ "sha256": "063vnjhnxm2z9shkdv1j8kwyf37syczfkzxzh5z7w7aidvx55jzj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 3
+ ],
+ "commit": "90fd86da2d9514882146a5db40cb916fc533cf55",
+ "sha256": "063vnjhnxm2z9shkdv1j8kwyf37syczfkzxzh5z7w7aidvx55jzj"
+ }
+ },
+ {
+ "ename": "latex-pretty-symbols",
+ "commit": "f96a50861bdb87133690d64af85e132cc504f13c",
+ "sha256": "1idxv83vvx29xavyzzm5vh5f3bb0yb1p6688csxaaikaj9fsa5gs",
+ "fetcher": "github",
+ "repo": "epa095/latex-pretty-symbols.el",
+ "unstable": {
+ "version": [
+ 20151112,
+ 1044
+ ],
+ "commit": "83d5888147bb734a94dfd4847a11e975a7d86ba8",
+ "sha256": "0h9hncf2ghfkd3i3342ajj1niykhfr0aais3j6sjg1vkm16xbr3b"
+ }
+ },
+ {
+ "ename": "latex-preview-pane",
+ "commit": "bb3227f2e35d701915a8d3479d20581dcbe3a778",
+ "sha256": "1id1l473azmc9hm5vq5wba8gad9np7sv38x94qd2zkf8b78pzkbw",
+ "fetcher": "github",
+ "repo": "jsinglet/latex-preview-pane",
+ "unstable": {
+ "version": [
+ 20181008,
+ 1822
+ ],
+ "commit": "5297668a89996b50b2b62f99cba01cc544dbed2e",
+ "sha256": "1m4f5p53275k8i9p0y105kkrp9nx1bwn6726my9s5dwnjhr5dnp2"
+ }
+ },
+ {
+ "ename": "latex-unicode-math-mode",
+ "commit": "9c021dfad8928c1a352e0ef5526eefa6c0a9cb37",
+ "sha256": "1p9gpp28vylibv1s95bzfgscznw146ybgk6f3qdbbnafrcrmifcr",
+ "fetcher": "github",
+ "repo": "Christoph-D/latex-unicode-math-mode",
+ "unstable": {
+ "version": [
+ 20170123,
+ 1816
+ ],
+ "commit": "eb4a5c9f9b00a58d2ca80f90782a851f4c8497b8",
+ "sha256": "1bsqaz14mb092cvq8fk4kkcgifhbpmnndlvvz8qhyfh8i5i92i8b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "commit": "3b82347291edcb32e4062b0048c367a3079b3e8c",
+ "sha256": "1xylfg8xpyb2m0qnysf58cl05ibbg4drhgq7msiiql2qrdzvpx9f"
+ }
+ },
+ {
+ "ename": "latexdiff",
+ "commit": "d164cf118a2c928c04e4d5cbfd47ac732e626fe0",
+ "sha256": "002frvk31q3plrqa6lldadchck51bch4n126y5l33fyfs0ipspfa",
+ "fetcher": "github",
+ "repo": "galaunay/latexdiff.el",
+ "unstable": {
+ "version": [
+ 20190827,
+ 1651
+ ],
+ "commit": "56d0b240867527d1b43d3ddec14059361929b971",
+ "sha256": "1gkhzladgh0dj5pvak822x6nq7f4h6382647flhv7c65fqszscbf"
+ }
+ },
+ {
+ "ename": "launch",
+ "commit": "8e46ed1761fa2e69f0dc2f58e422ea1de8a8cb49",
+ "sha256": "043gwz583pa1wv84fl634p1v86lcsldsw7qkjbm6y678q5mms0m6",
+ "fetcher": "github",
+ "repo": "sfllaw/emacs-launch",
+ "unstable": {
+ "version": [
+ 20130619,
+ 2204
+ ],
+ "commit": "e7c3b573fc05fe4d3d322389079909311542e799",
+ "sha256": "0ciycsqzyj6ld60c7sfqjq59ln3jvk3w9vy606kqzpcvj01ihmv1"
+ }
+ },
+ {
+ "ename": "launch-mode",
+ "commit": "876755fff14914b10a26d15f0c7ff32be7c51aa3",
+ "sha256": "1za0h16z84ls7da17qzqady0simzy5pk1mlw3mb0nhlg2cfmn060",
+ "fetcher": "github",
+ "repo": "iory/launch-mode",
+ "unstable": {
+ "version": [
+ 20170106,
+ 512
+ ],
+ "commit": "25ebd4ba77afcbe729901eb74923dbe9ae81c313",
+ "sha256": "1pjb4gwzkk6djzyfqqxf6y5xvrsh4bi5ijg60zrdlnhivggnfbvn"
+ }
+ },
+ {
+ "ename": "launchctl",
+ "commit": "66d0d8c6f7cb66e56328a9cfe9cdef6dffc3c1be",
+ "sha256": "07fq445cjpv4ndi7hnjmsrmskm2rlp6ghq0k3bcbjxl21smd9vs9",
+ "fetcher": "github",
+ "repo": "pekingduck/launchctl-el",
+ "unstable": {
+ "version": [
+ 20200531,
+ 1043
+ ],
+ "commit": "96886b7e64d15ffd3319c8b4b04310ccdc648576",
+ "sha256": "0mw1c14ysh186lbgmmyp01hszdgjm605diqfq6a17a7dd7fn549a"
+ }
+ },
+ {
+ "ename": "lavender-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "1x7mk3dpk44fkzll6xmh2dw270cgb3a9qs3h8bmiq2dw0wrcwcd1",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-lavender-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1313
+ ],
+ "commit": "ef5e959b95d7fb8152137bc186c4c24e986c1e3c",
+ "sha256": "0pbpns387fmalkakbdl2q7d2y720m7ai7mnydsinjwlkdrshvj4g"
+ }
+ },
+ {
+ "ename": "lavenderless-theme",
+ "commit": "f21ef334dd997fb96e0306cd56538279644765f8",
+ "sha256": "1lbk654d4y5fg4j71kqmfq3xx8dr9rib2zcv9njaip77zjzbbxid",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~lthms/colorless-themes.el",
+ "unstable": {
+ "version": [
+ 20200213,
+ 2057
+ ],
+ "deps": [
+ "colorless-themes"
+ ],
+ "commit": "736f7a105535901b4783d19534e7855920e25115",
+ "sha256": "1wi7wxiyk0g3k0l60hdmcyvvxr1kaapbkxvkknwd9qvdsji0ng73"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "colorless-themes"
+ ],
+ "commit": "8e539097185704444a5dd5545924de92c11ba767",
+ "sha256": "1p16vxai8dj1vy4ahflwij1ldx00jzrjcinpgpc7wgh6ka748v11"
+ }
+ },
+ {
+ "ename": "lcb-mode",
+ "commit": "fd1380a9ba363f62f297e3ab2995341258b51fd1",
+ "sha256": "184vd5ll0ms2lspzv8zz2zbairsr8i9p3gs28hrnnwm6mrpx4n18",
+ "fetcher": "github",
+ "repo": "peter-b/lcb-mode",
+ "unstable": {
+ "version": [
+ 20160816,
+ 540
+ ],
+ "commit": "be0768e9aa6f9b8e76f2230f4f7f4d152a766b9a",
+ "sha256": "0mgcqqhjadm8ckp6x37f9j4xcs61g73m9v8qr4zbw115yci2d0xk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "be0768e9aa6f9b8e76f2230f4f7f4d152a766b9a",
+ "sha256": "0mgcqqhjadm8ckp6x37f9j4xcs61g73m9v8qr4zbw115yci2d0xk"
+ }
+ },
+ {
+ "ename": "lcr",
+ "commit": "29374d3da932675b7b3e28ab8906690dad9c9cbe",
+ "sha256": "07syirjlrw8g95zk273953mnmg9x4bv8jpyvvzghhin4saiiiw3k",
+ "fetcher": "github",
+ "repo": "jyp/lcr",
+ "unstable": {
+ "version": [
+ 20180902,
+ 1919
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "c14f40692292d59156c7632dbdd2867c086aa75f",
+ "sha256": "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "c14f40692292d59156c7632dbdd2867c086aa75f",
+ "sha256": "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"
+ }
+ },
+ {
+ "ename": "leaf",
+ "commit": "24afe5b39979e2f17e104ae97d840645d2a5c2f1",
+ "sha256": "0h4v3fswbwa40hws8l29mmnka5wl9kyj6f01dnvadc725a34az38",
+ "fetcher": "github",
+ "repo": "conao3/leaf.el",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1226
+ ],
+ "commit": "7d2f13a103ff275f64086f4ad12308266d1fb48a",
+ "sha256": "1ggcbnpahxxjm4h21z9pl9164jwv7mhq4n6k5zagna863a9hlrbw"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 1,
+ 0
+ ],
+ "commit": "0841ab466a1542868b5448bb375ac9f0c33e2b3f",
+ "sha256": "0lpgkd2hhv98k7bi7zdplhlv0p3gbp4aq2cb0kyiwp2yxlnmkbzv"
+ }
+ },
+ {
+ "ename": "leaf-convert",
+ "commit": "db2fa6cdfe98aea41eeafb59527050edfa9ef6e5",
+ "sha256": "1hw6imdf8f7939r077zccv0sa23xfcmwpbhjyb49g4nhzs5grpnv",
+ "fetcher": "github",
+ "repo": "conao3/leaf-convert.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1306
+ ],
+ "deps": [
+ "leaf",
+ "leaf-keywords",
+ "ppp"
+ ],
+ "commit": "d716e0bc3be91a79c791e7a4cb8335132a69d195",
+ "sha256": "0a2rqylqzvvfs62rrqkigga9jaxs89b2l8sdzkfb30vwp0y3d0sb"
+ }
+ },
+ {
+ "ename": "leaf-keywords",
+ "commit": "dfe671ccd5a87ba4157f55e2a16a39dfaa10c027",
+ "sha256": "0i5hn1051hfbppbsv2m5p7h1rrn9pbvsps6vsk84ssqvhj7ryvyb",
+ "fetcher": "github",
+ "repo": "conao3/leaf-keywords.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1025
+ ],
+ "deps": [
+ "leaf"
+ ],
+ "commit": "c38d9d0d8cdb5a95df788af784e4eb989b674622",
+ "sha256": "19a1wrzikbzn2lswf5xwy8145a60mrj9ndj7cx29qrbr8fjcz431"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "9352716f153582cdf801a13e17dc04cfcd2bb951",
+ "sha256": "146h2n71f22gsqgh221ghx56qb9cq9qac3p77gxji535l2s9hbvk"
+ }
+ },
+ {
+ "ename": "leaf-manager",
+ "commit": "e1d80f4662a0f77360244fc4b34f2076db4fd478",
+ "sha256": "1pr5yljhif5ffm63g6w6544cy6m15kljbdvxs87ivnisblbl4s21",
+ "fetcher": "github",
+ "repo": "conao3/leaf-manager.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1004
+ ],
+ "deps": [
+ "leaf",
+ "leaf-convert",
+ "ppp"
+ ],
+ "commit": "baea372b3cfc7e1ad6d341d2f06e2932dcebf801",
+ "sha256": "031qgwc3pdxxqzkbdkaxd9lq4chngjba1s6q01wm98i5bdj4n4r0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "leaf",
+ "leaf-convert",
+ "ppp"
+ ],
+ "commit": "f2ae35e02ebe218daa3076a0e9d83b4feadfbb0a",
+ "sha256": "09ll1vs9y6qmcl3qxil52mjw5bf7x896wjsij4kf0y5wd2fhra61"
+ }
+ },
+ {
+ "ename": "leaf-tree",
+ "commit": "2e51160b1e5d277e66b9cff493b1f6b3c6f9ee28",
+ "sha256": "1xnqxwa978wbvx181v48zd37vckrj6p6wa7gas3fj648mwdjnii3",
+ "fetcher": "github",
+ "repo": "conao3/leaf-tree.el",
+ "unstable": {
+ "version": [
+ 20200412,
+ 2355
+ ],
+ "deps": [
+ "imenu-list"
+ ],
+ "commit": "22f6c116cf1465c28d4a35d8a4587a8b614be175",
+ "sha256": "1bgjhrpq6a239v8vfi6i9qcbyrg76mpy4yykkb5da8hlp23idwy7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "imenu-list"
+ ],
+ "commit": "22f6c116cf1465c28d4a35d8a4587a8b614be175",
+ "sha256": "1bgjhrpq6a239v8vfi6i9qcbyrg76mpy4yykkb5da8hlp23idwy7"
+ }
+ },
+ {
+ "ename": "lean-mode",
+ "commit": "42f4d6438c8aeb94ebc1782f2f5e2abd17f0ffde",
+ "sha256": "0rdraxsirkrzbinjwg4qam15iy3qiixqgwsckngzw8d9a4s9l6sj",
+ "fetcher": "github",
+ "repo": "leanprover/lean-mode",
+ "unstable": {
+ "version": [
+ 20200620,
+ 919
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "flycheck",
+ "s"
+ ],
+ "commit": "6b4377686128d5c2fb55d8fe61b92a9991d40fbd",
+ "sha256": "1zb3igic1i30mfbsx4k2sabhdpl58fsrl5c3fjvqrpn92ixi9vws"
+ }
+ },
+ {
+ "ename": "leanote",
+ "commit": "b00b806ae4562ca5a74f41c12ef35bfa597bcfa8",
+ "sha256": "1xnfv7bpkw3ir402962zbp856d56nas098nkf7bamnsnax6kkqw7",
+ "fetcher": "github",
+ "repo": "aborn/leanote-emacs",
+ "unstable": {
+ "version": [
+ 20161223,
+ 139
+ ],
+ "deps": [
+ "async",
+ "cl-lib",
+ "let-alist",
+ "pcache",
+ "request",
+ "s"
+ ],
+ "commit": "d499e7b59bb1f1a2fabc0e4c26fb101ed62ebc7b",
+ "sha256": "1lg4zml26q97bx9jrmjikhnm3d74b12q2li5h8gpxx9m35wc360c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "async",
+ "cl-lib",
+ "let-alist",
+ "pcache",
+ "request",
+ "s"
+ ],
+ "commit": "1bd49fdf13ef707bae7edaa724a1592aa7fb002f",
+ "sha256": "1k58rhk5p819cvfa6zg7j3ysvzhq6dc433fzhh1ff0gwga2vrqbz"
+ }
+ },
+ {
+ "ename": "learn-ocaml",
+ "commit": "6110b273c4f3bb8eddf1b79dbfa82f9c01600182",
+ "sha256": "17fah2109s9dzavmbsw5bgpjb4m9r2j9rgpf38av3bd89qba416z",
+ "fetcher": "github",
+ "repo": "pfitaxel/learn-ocaml.el",
+ "unstable": {
+ "version": [
+ 20200224,
+ 2229
+ ],
+ "commit": "86505672be0aabc9fa1048bc453ab2fc855b27e1",
+ "sha256": "00j6j2n0z616r9p78wp8hk62d9s2dpzlmflfm7ilrx40dnd4nlgj"
+ }
+ },
+ {
+ "ename": "ledger-import",
+ "commit": "4a1e2a9546b8b40f5f880197cb8166a6a715451f",
+ "sha256": "1lcibmjk2d49vsa89wri7bbf695mjq2ikddz3nlzb6ljywsnqzm4",
+ "fetcher": "github",
+ "repo": "DamienCassou/ledger-import",
+ "unstable": {
+ "version": [
+ 20200522,
+ 853
+ ],
+ "deps": [
+ "ledger-mode"
+ ],
+ "commit": "027a6caf173948feacd2f416a7995d82f82165e7",
+ "sha256": "08aqqhbrcgn72wjw4c9wq5pyxdswbhly2c2izmy316bjh3cqvbhf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "ledger-mode"
+ ],
+ "commit": "2c199fcc8671c2ec82e62cea7716289426b7407c",
+ "sha256": "0szi5k05qja28nx0rnl3amh3qf2f470sycdjgmpazgqh4zpkngsp"
+ }
+ },
+ {
+ "ename": "ledger-mode",
+ "commit": "1549048b6f57fbe9d1f7fcda74b78a7294327b7b",
+ "sha256": "10asbcb5syv3b75bngsab3c84dp2xmc0q7s29im6kf4mzv5zcfcf",
+ "fetcher": "github",
+ "repo": "ledger/ledger-mode",
+ "unstable": {
+ "version": [
+ 20200530,
+ 1710
+ ],
+ "commit": "805507fd6c14839be4efc7aee2017f9c03e36834",
+ "sha256": "1sil9kdkcb0r165qm8vpxll0ikfnm0cqjd3gmj8vi6k8n6awv9zv"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 0
+ ],
+ "commit": "964630f80e0e80dad83134a3660f56948390173a",
+ "sha256": "1r5rcyxd6d1rqwamzpvqdbkbdf1zbj75aaciqijrklnm59ps244y"
+ }
+ },
+ {
+ "ename": "leerzeichen",
+ "commit": "5de7033e75bc28de6e50b2146511cdaac4542ad6",
+ "sha256": "0h7zpskcgkswr110vckfdbxggz5b3g9grk1j1cbd98pmrpgfqrvp",
+ "fetcher": "github",
+ "repo": "fgeller/leerzeichen.el",
+ "unstable": {
+ "version": [
+ 20170422,
+ 1313
+ ],
+ "commit": "5acf9855ecb2b2cd5da4402bb48df149e7525cc5",
+ "sha256": "1bx4pv51a9x8f51pjrms8jkfrpa3glwkh308svz05gnyi2g0r8hw"
+ }
+ },
+ {
+ "ename": "leetcode",
+ "commit": "f1f35b9b63f3f04dfca7c5fe62d3530b47006d8f",
+ "sha256": "094klmrh2adj9fcpykswdbbxm714cfws1lqgz64b7gdf82m5nm8x",
+ "fetcher": "github",
+ "repo": "kaiwk/leetcode.el",
+ "unstable": {
+ "version": [
+ 20200730,
+ 1433
+ ],
+ "deps": [
+ "aio",
+ "dash",
+ "graphql",
+ "log4e",
+ "spinner"
+ ],
+ "commit": "153a3a6a9ffb64ffce37b3d203c13a85cc1884ab",
+ "sha256": "0600njpn3dvd8xrj21r5p69mc1r76ri1bjcxy2krp53dnsy3nvfb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 18
+ ],
+ "deps": [
+ "aio",
+ "dash",
+ "graphql",
+ "log4e",
+ "spinner"
+ ],
+ "commit": "ef59344158ae4b7842ca2531ec77c439ed6e6997",
+ "sha256": "0sxrzr34x43dcxw9l3ib982rz4327fpwnjmj3hi17bc5gk6zzfq2"
+ }
+ },
+ {
+ "ename": "legalese",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "18rkvfknaqwkmhsjpgrf2hknrb2zj61aw8rb4907gsbs9rciqpdd",
+ "fetcher": "github",
+ "repo": "jorgenschaefer/legalese",
+ "unstable": {
+ "version": [
+ 20200119,
+ 2248
+ ],
+ "commit": "e465471d2d5a62d35073d93e0f8d40387a82e302",
+ "sha256": "0xg4pyyyzd637i7shhq1frbva5rmy2j7y9cnf7zmms6a5qq4k1af"
+ }
+ },
+ {
+ "ename": "lemon-mode",
+ "commit": "6163d4cf36031349480039b82de8cdc75c2db169",
+ "sha256": "0jdf3556kmv55jh85ljqh2gdx0jl2b8zgvpz9a4kf53xifk3lqz5",
+ "fetcher": "github",
+ "repo": "mooz/lemon-mode",
+ "unstable": {
+ "version": [
+ 20130216,
+ 1304
+ ],
+ "commit": "155bfced6c9afc8072a0133d3d1baa54c6d67430",
+ "sha256": "0n6jrm5ilm5wzfrh7yjxn3sr5m10hwdm55b179ild32lh4795zj7"
+ }
+ },
+ {
+ "ename": "lenlen-theme",
+ "commit": "47d5b3c931cdbc2351e01d15e2b98c78081c9506",
+ "sha256": "1bddkcl9kzj3v071qpzmxzjwywqfj5j6cldz240qgp5mx685r0a9",
+ "fetcher": "github",
+ "repo": "zk-phi/lenlen-theme",
+ "unstable": {
+ "version": [
+ 20170329,
+ 245
+ ],
+ "deps": [
+ "color-theme-solarized"
+ ],
+ "commit": "b8a6412c81633b10fb98ba0930f55b25071c084a",
+ "sha256": "177fqqhd498v2h6wki6pgg982rp4jxhn4wrzajcqppjz4nidb1b7"
+ }
+ },
+ {
+ "ename": "lentic",
+ "commit": "cbb6f9cc3c1040b80fbf3f2df2ac2c3c8d18b6b1",
+ "sha256": "0y94y1qwj23kqp491b1fzqsrjak96k1dmmzmakbl7q8vc9bncl5m",
+ "fetcher": "github",
+ "repo": "phillord/lentic",
+ "unstable": {
+ "version": [
+ 20190102,
+ 2124
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "m-buffer",
+ "s"
+ ],
+ "commit": "e6d013bf570bb235817f6c8f0abdd31d3b456d53",
+ "sha256": "0ksmb5mvcpa699bw62fkhrx1i8adgrzsbc2fivfsimq54y25rdd7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 11
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "m-buffer",
+ "s"
+ ],
+ "commit": "8655ecd51e189bbdd6a4d8405dc3ea2e689c709a",
+ "sha256": "04h6vk7w25yp4kzkwqnsmc59bm0182qqkyk5nxm3a1lv1v1590lf"
+ }
+ },
+ {
+ "ename": "lentic-server",
+ "commit": "10b8cc0b4612d7d02be3a74c21b762cbf7613bd6",
+ "sha256": "1y9idhf9qcsw3dbdj7rwa7bdrn1q0m3bg3r2jzwdnvkq8aas1w56",
+ "fetcher": "github",
+ "repo": "phillord/lentic-server",
+ "unstable": {
+ "version": [
+ 20160717,
+ 2052
+ ],
+ "deps": [
+ "lentic",
+ "web-server"
+ ],
+ "commit": "8e809fafbb27a98f815b544d9d9ee15843eb6a36",
+ "sha256": "1wc1c6hqhbb5x4fi7lp30bsrfww9g12c41lphswy92qzlij4zbww"
+ }
+ },
+ {
+ "ename": "less-css-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "188iplnwwhawq3dby3388kimy0jh1k9r8v9nxz52hy9rhh9hykf8",
+ "fetcher": "github",
+ "repo": "purcell/less-css-mode",
+ "unstable": {
+ "version": [
+ 20161001,
+ 453
+ ],
+ "commit": "c7fa3d56d83206b28657f2e56439dc62280a2bf2",
+ "sha256": "0nz2vhkpmishlx4gga6lljyjrz7lmnwj3vmvml9jykhiqgvnaf70"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 21
+ ],
+ "commit": "59bf174c4e9f053ec2a7ef8c8a8198490390f6fb",
+ "sha256": "1rkjamdy2a80w439vb2hhr7vqjj47wi2azlr7yq2xdz9851xsx9f"
+ }
+ },
+ {
+ "ename": "letcheck",
+ "commit": "d6a0937f704e33bbb9ea8f101cd87c44e8050afb",
+ "sha256": "1sjwi1ldg6b1qvj9cvfwxq3qlkfas6pm8zasf43baljmnz38mxh2",
+ "fetcher": "github",
+ "repo": "Fuco1/letcheck",
+ "unstable": {
+ "version": [
+ 20160202,
+ 1948
+ ],
+ "commit": "edf188ca2f85349e971b83f164c6484264e79426",
+ "sha256": "06hggcbz98qhfbvp0fxn89j98d0mmki4wc4k8kfzp5fhg071chbi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "e85b185993a2eaeec6490709f4c131fde2edd672",
+ "sha256": "1l9qjmyb4a3f6i2iimpmjczbx890cd1p24n941s13sg67xfbm7hn"
+ }
+ },
+ {
+ "ename": "letterbox-mode",
+ "commit": "1512e20962ea354e4311c0a2696a22576a099ba9",
+ "sha256": "117dj5xzf6givwjyqsciz6axhlcj7xbx0zj91ximm81kb5fswgda",
+ "fetcher": "github",
+ "repo": "pacha64/letterbox-mode",
+ "unstable": {
+ "version": [
+ 20170702,
+ 125
+ ],
+ "commit": "88c67a51d67216d569a28e8423200883fde096dd",
+ "sha256": "1xzzfr525pn2mj7x6xnvccxhls79bfpi5mqhl9ivisnlgj1bvdjw"
+ }
+ },
+ {
+ "ename": "leuven-theme",
+ "commit": "b09451f4eb2be820e94d3fecbf4ec7cecd2cabdc",
+ "sha256": "0pm5majr9cmj6g4zr7vb55ypk9fmfbvxx78mgmgignknbasq9g9a",
+ "fetcher": "github",
+ "repo": "fniessen/emacs-leuven-theme",
+ "unstable": {
+ "version": [
+ 20200707,
+ 1143
+ ],
+ "commit": "a116202c82613c087440d2e8a6a504b08f1862ce",
+ "sha256": "1pqv4idkbqbxxvdfqxwf5rq2isl1jikba5nd0z8d7fr09wv48pv7"
+ }
+ },
+ {
+ "ename": "levenshtein",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "1vdbgzs7gfy89a1dzf6z5l3f5jmly1i8lb2fqi2d08qyl5rhb8bl",
+ "fetcher": "github",
+ "repo": "emacsorphanage/levenshtein",
+ "unstable": {
+ "version": [
+ 20090830,
+ 1040
+ ],
+ "commit": "070925197ebf6b704e6e00c4f2d2ec783f3df38c",
+ "sha256": "1w6rhp723kn1ns7r0gcblp5q8bvncicnjjsgdangbib1a4l2xw79"
+ }
+ },
+ {
+ "ename": "lexbind-mode",
+ "commit": "f3a493e642cc90bbe1c70a2d918793f0734464c9",
+ "sha256": "1hs9wg45mwp3fwi827rc4g0gjx4fk87zlibq3id9fcqic8q7nrnl",
+ "fetcher": "github",
+ "repo": "spacebat/lexbind-mode",
+ "unstable": {
+ "version": [
+ 20141027,
+ 1429
+ ],
+ "commit": "fa0a6848c1cfd3fbf45db43dc2deef16377d887d",
+ "sha256": "167ayfl1k8dnajw173hh67nbwbk4frmjc4fzc515q67m9d7m5932"
+ }
+ },
+ {
+ "ename": "lfe-mode",
+ "commit": "c44bdb00707c9ef90160e0a44f7148b480635132",
+ "sha256": "0smncyby53ipm8yqslz88sqjafk0x6r8d0qwk4wzk0pbgfyklhgs",
+ "fetcher": "github",
+ "repo": "rvirding/lfe",
+ "unstable": {
+ "version": [
+ 20170121,
+ 1254
+ ],
+ "commit": "9d15bc75a34052f7f2749bd38b3d0297ed60b29a",
+ "sha256": "07ysaihl24fiqz8n6hvdvaj53nyalk68dsn073zb8q88sdmzf33w"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "af14b1439097850ffa39935419ed83f5bcaa6d09",
+ "sha256": "0pgwi0h0d34353m39jin8dxw4yykgfcg90k6pc4qkjyrg40hh4l6"
+ }
+ },
+ {
+ "ename": "libbcel",
+ "commit": "31f4cbd89473f48ad6b4cc78028e8c51f1ee95a7",
+ "sha256": "03sfd2af54cm53hh8k3d0b9jy7cj4f1hgd93wqvqi7bbcz91krg2",
+ "fetcher": "github",
+ "repo": "DamienCassou/libbcel",
+ "unstable": {
+ "version": [
+ 20191203,
+ 654
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "df466d31544c53d8550f9c08e58b70adc559c48c",
+ "sha256": "1l8m47aklx98m89i9d3kj9dd521xkicipgbfnpiyjzqmaw1bh6zm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "d02a38898016bba314802b1f6a07317e52ea6c63",
+ "sha256": "1z5ydhv9qyk0g9b25n4m0xbvdy0j4y009iq8v2vy1m8c09lzp1v9"
+ }
+ },
+ {
+ "ename": "libelcouch",
+ "commit": "209d5c507cfe42b152c21a4534c3ba549186420f",
+ "sha256": "1zfjyfyjd59z0ns32v2b0r5g9ypjxrlmkx3djmxsmzd4an8ciq3p",
+ "fetcher": "github",
+ "repo": "DamienCassou/libelcouch",
+ "unstable": {
+ "version": [
+ 20190820,
+ 1632
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "29e369df4f96c7ad95bb33292de7a44122e0b4e7",
+ "sha256": "1xaa90dy1jq1yzcn9px931sgqsrsbwrc89lv0lss975jr827kfg2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 0
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "fd90ff7989632452434fc19a609805f7276821f3",
+ "sha256": "0rpipbcfvi8ysx8aykj9sd23gkzq3knn656g84lb9h1zdjvc4zf1"
+ }
+ },
+ {
+ "ename": "liberime",
+ "commit": "0ccac33c02762314d997156df4627c0c4a0279c6",
+ "sha256": "0i95vjn4rw7n4f83nrxjkmilzalgmjlmyhsvwfm4n1rqfqdwkl5h",
+ "fetcher": "github",
+ "repo": "merrickluo/liberime",
+ "unstable": {
+ "version": [
+ 20200804,
+ 147
+ ],
+ "commit": "2a6f1bca1aff64a9136368c4afa15c0ea1042893",
+ "sha256": "1nvpy2mclcyi75clcnic7ap5rihccvgf7yn10an4y50sas8g2jiv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "commit": "f13a98ddd7be658e742b0f42988b02db9d779e85",
+ "sha256": "09d9dx4jk8bgbdcn6dh9ar5rs33s2cwz08w211b3kgj41i115gl7"
+ }
+ },
+ {
+ "ename": "libgit",
+ "commit": "993a5abe3a9e8b160f0d68283eeca6af033abc79",
+ "sha256": "05yys8cjli2zhmhdh9w5qz287ibzplqabx5vyyjv9rpk6wgzkzik",
+ "fetcher": "github",
+ "repo": "magit/libegit2",
+ "unstable": {
+ "version": [
+ 20200515,
+ 1759
+ ],
+ "commit": "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a",
+ "sha256": "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"
+ }
+ },
+ {
+ "ename": "libmpdee",
+ "commit": "fc91db6f80463a1baea9759f9863b551ae21e180",
+ "sha256": "0z4d8y8jlsjw20b31akkaikh5xl0c05lj77d2i1xbgzam4iixma0",
+ "fetcher": "github",
+ "repo": "andyetitmoves/libmpdee",
+ "unstable": {
+ "version": [
+ 20160117,
+ 2301
+ ],
+ "commit": "a6ca3b7d6687f3ba60996b9b5044ad1d3b228290",
+ "sha256": "039awlam3nrgkxrarcapfyc2myvc77aw7whrkcsjjybzylpzv0pr"
+ }
+ },
+ {
+ "ename": "libmpdel",
+ "commit": "bb25443752e18e47afc63d5497cc5052c388a607",
+ "sha256": "0qi9g3czwzi9hhp7gjczpzjx9vgzz52xi91332l0sxcxmwbawjp1",
+ "fetcher": "github",
+ "repo": "mpdel/libmpdel",
+ "unstable": {
+ "version": [
+ 20200105,
+ 1537
+ ],
+ "commit": "95cb45ecea933e7befb2a5a6a6e7d15651c8746a",
+ "sha256": "0g0gsah4y12d2hrk2rsraxqjnd52fkikr0pgcrbrv2mcnqhs8c5m"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "commit": "a9d67cea595bfeff73cf6281fa735df98dee9a45",
+ "sha256": "1nzs6g2mg3jhfhhfcxjhd9sbvwzhmr6j6mc80ln2nr4gzjqgaa4k"
+ }
+ },
+ {
+ "ename": "lice",
+ "commit": "2508699ebfc846742940c5e4356b095b540e2405",
+ "sha256": "1hv2hz3153x0gk7f2js18dbx5pyprfdf2pfxb658fj16vxpp7y6x",
+ "fetcher": "github",
+ "repo": "buzztaiki/lice-el",
+ "unstable": {
+ "version": [
+ 20200607,
+ 103
+ ],
+ "commit": "482e58ab83fff86ed754b00be27b62a219597e7c",
+ "sha256": "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "69f2d87984f3f3d469db35e241fbbe979384cd03",
+ "sha256": "0hi8s20vw4a5i5n5jlm5dzgsl1qpfyqbpskqszjls1xrrf3dd4zl"
+ }
+ },
+ {
+ "ename": "light-soap-theme",
+ "commit": "053be1123bb934d80b4d6db0e7e39b59771be035",
+ "sha256": "09p4w51d5szhi81a6a3l0r4zd4ixkrkzxldr938bcmj0qmj62iyk",
+ "fetcher": "github",
+ "repo": "mswift42/light-soap-theme",
+ "unstable": {
+ "version": [
+ 20150607,
+ 1445
+ ],
+ "commit": "76a787bd40c6b567ae68ced7f5d9f9f10725e00d",
+ "sha256": "04dik8z2mg6qr4d3fkd26kg29b4c5crvbnc1lfsrzyrik7ipvsi8"
+ }
+ },
+ {
+ "ename": "line-reminder",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1s3ibn7c1j6m7wdkb0z37apgfc0g8vhhrqcnmldf19zi3k13bm0x",
+ "fetcher": "github",
+ "repo": "jcs-elpa/line-reminder",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1151
+ ],
+ "deps": [
+ "indicators"
+ ],
+ "commit": "4eafedb1f4f9b0fb9c6268ac6c72fea4b786233e",
+ "sha256": "1vygzd7gw9a4cwg554hdvpy4h6ywjk4gg6iffcgwxhvdwg2vmrvs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 3
+ ],
+ "deps": [
+ "indicators"
+ ],
+ "commit": "4eafedb1f4f9b0fb9c6268ac6c72fea4b786233e",
+ "sha256": "1vygzd7gw9a4cwg554hdvpy4h6ywjk4gg6iffcgwxhvdwg2vmrvs"
+ }
+ },
+ {
+ "ename": "line-up-words",
+ "commit": "28ac7764a19fee2e1e2a89d95569815f1940c5e4",
+ "sha256": "0agsrrkwwfmbiy4z3g4hkrpfr3nqgd5lwfn18qrdxynijd5rqs79",
+ "fetcher": "github",
+ "repo": "janestreet/line-up-words",
+ "unstable": {
+ "version": [
+ 20180219,
+ 1024
+ ],
+ "commit": "ffa07b82102945f18efb4430a6554835c450f6bf",
+ "sha256": "1zpqydk8s01f1qmk8aycn67pw48mll0rvrnrjd9q41p2aklhncms"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "54d2c51c1c3da7e06be47b829bf465bf467ab53f",
+ "sha256": "0qda9i5yjjf2x5cpg6nxkzqwa8fzzjxk0yyc4295kbawwd83vglr"
+ }
+ },
+ {
+ "ename": "lines-at-once",
+ "commit": "513d0f0c6976f685fc0df6b6bb0da3162f58f537",
+ "sha256": "1hiij6i47i9px82ll87dvx5pgp5jzz8qis7hdm8n6hd3c9rnabma",
+ "fetcher": "github",
+ "repo": "jiahaowork/lines-at-once.el",
+ "unstable": {
+ "version": [
+ 20180422,
+ 247
+ ],
+ "commit": "a018ba90549384d52ec58c2685fd14a0f65252be",
+ "sha256": "0bwc4d2gnfhaqzn455nzrvd9lys7z7ay2v1hxgwp99ndqq93ws6i"
+ }
+ },
+ {
+ "ename": "lingr",
+ "commit": "bf5d29710ab17b1a98f9b559344e4dd40a2b9c08",
+ "sha256": "1445bxiirsxl9kgm0j86xc9d0pbaa5f07c1i66pw2vl40bvhrjff",
+ "fetcher": "github",
+ "repo": "lugecy/lingr-el",
+ "unstable": {
+ "version": [
+ 20100807,
+ 1731
+ ],
+ "commit": "4215a8704492d3c860097cbe2649936c22c196df",
+ "sha256": "0rkx0hk3y79rwhjqs3wvgxhg1rj83mxbqkhhm3jfawp8c1av4f40"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "c9c20dd9b4967aa2f8873d6890d6797e6a498d23",
+ "sha256": "11sw43z5b0vypmhi0yysf2bxjy8fqpzl61y503jb7nhcfywmfkys"
+ }
+ },
+ {
+ "ename": "linguistic",
+ "commit": "aedc03a846b873edf2426c422abb8c75732158f8",
+ "sha256": "0yhyrr7yknvky6fb6js0lfxbl13i6a218kya7cpj2dpzdckcbhca",
+ "fetcher": "github",
+ "repo": "andcarnivorous/linguistic",
+ "unstable": {
+ "version": [
+ 20181129,
+ 2116
+ ],
+ "commit": "23e47e98cdb09ee61883669b6d8a11bf6449862c",
+ "sha256": "1bz2w43v1w5xlkbmhmb423nisyhja6qkgwhl68r5vjxqj1gxn2xj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "18e28a7e54efb140c17e16836bc5dac766c9522e",
+ "sha256": "12b9i3rdh16pq9q88bsg771y11rrbj9w74v2qr2bfymbp358qk17"
+ }
+ },
+ {
+ "ename": "link",
+ "commit": "5b08ed7b90e3283e177eff57cb02b12a093dc258",
+ "sha256": "17jpsg3f2954b740vyj37ikygrg5gmp0bjhbid8bh8vbz7xx9zy8",
+ "fetcher": "github",
+ "repo": "myrkr/dictionary-el",
+ "unstable": {
+ "version": [
+ 20191111,
+ 446
+ ],
+ "commit": "c9cad101100975e88873636bfd426b7a19304ebd",
+ "sha256": "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 11
+ ],
+ "commit": "c9cad101100975e88873636bfd426b7a19304ebd",
+ "sha256": "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"
+ }
+ },
+ {
+ "ename": "link-hint",
+ "commit": "d24b48fe0bc127ae6ac4084be8059aacb8445afd",
+ "sha256": "12fb2zm9jnh92fc2nzmzmwjlhi64rhakwbh9lsydx9svsvkgcs89",
+ "fetcher": "github",
+ "repo": "noctuid/link-hint.el",
+ "unstable": {
+ "version": [
+ 20200718,
+ 1737
+ ],
+ "deps": [
+ "avy",
+ "cl-lib"
+ ],
+ "commit": "be735e5b57dfad891a7394c116b584bf005fe3b4",
+ "sha256": "0vg0pmvyya3gncih6rj83zx6qjm5gh9qs4svxb8f3wd053ppnvk9"
+ }
+ },
+ {
+ "ename": "linkode",
+ "commit": "8c03a8d88fa65f1ebc0b335b27be896232e8277d",
+ "sha256": "0wp55j17zms6zn90win35g203jzc4hjsj27500sq6iihci9gyfjk",
+ "fetcher": "github",
+ "repo": "erickgnavar/linkode.el",
+ "unstable": {
+ "version": [
+ 20200607,
+ 2152
+ ],
+ "commit": "675e612e30b74764c57de4117d950ea803b15f74",
+ "sha256": "1iqgii1zdv1q2gcknszxfgs09gvylr2l1yvyp104jriyy8qlsakg"
+ }
+ },
+ {
+ "ename": "linphone",
+ "commit": "c0ea68b186c813faceb6fc663633cb81df666f0e",
+ "sha256": "0q7mw1npxq24szhwswc93qz5h6magcxw63ymba7hwhif6my65zx7",
+ "fetcher": "github",
+ "repo": "zabbal/emacs-linphone",
+ "unstable": {
+ "version": [
+ 20130524,
+ 1109
+ ],
+ "commit": "99af3db941b7f4e5272bb48bff96c1ce4ceac302",
+ "sha256": "01yv6239z90hvncwmm9g5nh4xvyxv2ig3h4hsmxdn4kacfxvc84n"
+ }
+ },
+ {
+ "ename": "linum-off",
+ "commit": "c3774ed0cf6fb8c6d08553dc709c7e76a745b2e0",
+ "sha256": "1yilsdsyxlzmh64dpzirzga9c7lhp1phps9cdgp2898zpnzaclay",
+ "fetcher": "github",
+ "repo": "mattfidler/linum-off",
+ "unstable": {
+ "version": [
+ 20160217,
+ 2137
+ ],
+ "commit": "116e66ac259b183e0763b85616888316ab196822",
+ "sha256": "1pvgp76n2qnm01l5f9mkb9yqwfxag9x23wwqbsna66rmvsag69w0"
+ }
+ },
+ {
+ "ename": "linum-relative",
+ "commit": "97ae01be4892a7c35aa0f82213433a2944041d87",
+ "sha256": "0s1lc3lppazv0481dxknm6qrxhvkv0r9hw8xmdrpjc282l91whkj",
+ "fetcher": "github",
+ "repo": "coldnew/linum-relative",
+ "unstable": {
+ "version": [
+ 20180124,
+ 1047
+ ],
+ "commit": "c74a6981b688a5e1e6b8e0809363963ff558ce4d",
+ "sha256": "0svxi1l3s4rg1k1apfw25gzi127rsks56b5yfg79a48b5rf1xmkh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "commit": "896df4b40c1e1eb59f55fcee48a1543f0ccd724e",
+ "sha256": "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"
+ }
+ },
+ {
+ "ename": "liquid-types",
+ "commit": "d5921fde4068ff1bb288f6f9e2fe03f4a7fdbbda",
+ "sha256": "1g7zyak69l4lcsq952j2jy692xxnill9nqb1xfa17yzp547cgvf2",
+ "fetcher": "github",
+ "repo": "ucsd-progsys/liquid-types.el",
+ "unstable": {
+ "version": [
+ 20151202,
+ 735
+ ],
+ "deps": [
+ "button-lock",
+ "dash",
+ "flycheck",
+ "flycheck-liquidhs",
+ "popup",
+ "pos-tip"
+ ],
+ "commit": "cc4bacbbf204ef9cf0756f78dfebee2c6ae14d7b",
+ "sha256": "06rnma2xj2vnbvy1bnls59cagk6qsf862bj1zp6xbmpr1a5l9m4z"
+ }
+ },
+ {
+ "ename": "liso-theme",
+ "commit": "27b849f3a41a5ae3d497cef02a95c92fd479b93b",
+ "sha256": "014a71dnhnr0dr36sl2h8ffp6il9nasij31ahqz0bjgn4r16s5gy",
+ "fetcher": "github",
+ "repo": "caisah/liso-theme",
+ "unstable": {
+ "version": [
+ 20160410,
+ 2029
+ ],
+ "commit": "844688245eb860d23043455e165ee24503454c81",
+ "sha256": "01ycjy3amzbplp3zf0x5fahsja92gyg2252xhzcyiazmhaz7gkrd"
+ }
+ },
+ {
+ "ename": "lisp-butt-mode",
+ "commit": "ec923a5f6018404171e6ffc3fb36a649e8defb1b",
+ "sha256": "0n6inbcjcpw5l95r3z63bdzld3bn3i5ywl2niqfhh9dfv2k1k5wc",
+ "fetcher": "gitlab",
+ "repo": "marcowahl/lisp-butt-mode",
+ "unstable": {
+ "version": [
+ 20200727,
+ 1441
+ ],
+ "commit": "1b178fec96cb200574a17cb26ac0742d9df571a9",
+ "sha256": "01hj2kzy1mrzqc806jvgvkiyf7mkjacg944l3dblblyl7zgx8plx"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 2
+ ],
+ "commit": "008d2093608ee8fac184a6682e4ccf7b461dcaa1",
+ "sha256": "1kxvwd9y9q5ax9509b3xy3qqjpamfxzljyvbm1fc89qy50pdjxyr"
+ }
+ },
+ {
+ "ename": "lisp-extra-font-lock",
+ "commit": "13e01d4faf9ecb4dde8b6eb4acdb0e48e3e5b6ea",
+ "sha256": "1xchqwhav9x7b02787ghka567fihdc14aamx92jg549c6d14qpwk",
+ "fetcher": "github",
+ "repo": "Lindydancer/lisp-extra-font-lock",
+ "unstable": {
+ "version": [
+ 20181008,
+ 1921
+ ],
+ "commit": "4605eccbe1a7fcbd3cacf5b71249435413b4db4f",
+ "sha256": "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"
+ }
+ },
+ {
+ "ename": "lisp-local",
+ "commit": "2ec3f57a05e1b2e28ce33700d8ea98758b0bb69d",
+ "sha256": "1kzg2v0x0xf99mwd88bblbjfm9js4f40pibq6297xc9i5wrp3bv4",
+ "fetcher": "github",
+ "repo": "lispunion/emacs-lisp-local",
+ "unstable": {
+ "version": [
+ 20200409,
+ 1330
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ff745a937f79df51cac0209b3cc3c35ce1d1fc61",
+ "sha256": "0ffwjv5fpzia772iavn9ily5m7l73pxf0amgqizzmbx12rx3kkhg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ff745a937f79df51cac0209b3cc3c35ce1d1fc61",
+ "sha256": "0ffwjv5fpzia772iavn9ily5m7l73pxf0amgqizzmbx12rx3kkhg"
+ }
+ },
+ {
+ "ename": "lispxmp",
+ "commit": "ad10a684b4b2f01bc65883374f36fef156ff55d2",
+ "sha256": "1a641v5cx4wy2v8a2swxzn1y9cz4g2bp4mn9q290n3ifpn5356dl",
+ "fetcher": "github",
+ "repo": "rubikitch/lispxmp",
+ "unstable": {
+ "version": [
+ 20170926,
+ 23
+ ],
+ "commit": "7ad077b4ee91ce8a42f84eeddb9fc7ea4eac7814",
+ "sha256": "1156jynii783v9sjj3a7s20ysa26mqaq22zk5nbia949hwbibx16"
+ }
+ },
+ {
+ "ename": "lispy",
+ "commit": "29a704fede83b02e19c2ad213485f0f651931753",
+ "sha256": "1c8gz46ab5f07dljv2chr0i5lini81wl3zx4zw8xjysb4a5dp05v",
+ "fetcher": "github",
+ "repo": "abo-abo/lispy",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1151
+ ],
+ "deps": [
+ "ace-window",
+ "counsel",
+ "hydra",
+ "iedit",
+ "zoutline"
+ ],
+ "commit": "0a9dcfdfbc20cadbb9cb29b224dc64b8efdd7b70",
+ "sha256": "13hzkh0rij40d58v6h232s784p40q1qv24n6bycd89lacn8xrcsr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 27,
+ 0
+ ],
+ "deps": [
+ "ace-window",
+ "hydra",
+ "iedit",
+ "swiper",
+ "zoutline"
+ ],
+ "commit": "9c41bc011ae570283cb286659f75d12d38d437ea",
+ "sha256": "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"
+ }
+ },
+ {
+ "ename": "lispyscript-mode",
+ "commit": "bf912fa20edc9cff12645381b303e37f2de14976",
+ "sha256": "02biai45l5xl2m9l1drphrlj6r01msmadhyg774ijdk1x4gm5nhr",
+ "fetcher": "github",
+ "repo": "krisajenkins/lispyscript-mode",
+ "unstable": {
+ "version": [
+ 20170720,
+ 1917
+ ],
+ "commit": "def632e3335b0c481fbcf5a17f18b0a8c58dd12f",
+ "sha256": "042nndsrv7kyq20v3lahrpr0x89xyayvhx59i0hx6pvkc9wgk5b6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 5
+ ],
+ "commit": "9a4200085e2a15725a58616d131a56f5edce214b",
+ "sha256": "0qyj04p63fdh3iasp5cna1z5fhibmfyl9lvwyh22ajzsfbr3nhnk"
+ }
+ },
+ {
+ "ename": "lispyville",
+ "commit": "b5d96d3603dc328467fcce29d3ac1b0a02833d51",
+ "sha256": "1pj41pd51x399gmy0j3qn9hr3ayw31pcg0h9pzbviqpnwmv2in6b",
+ "fetcher": "github",
+ "repo": "noctuid/lispyville",
+ "unstable": {
+ "version": [
+ 20200808,
+ 2240
+ ],
+ "deps": [
+ "cl-lib",
+ "evil",
+ "lispy"
+ ],
+ "commit": "0f13f26cd6aa71f9fd852186ad4a00c4294661cd",
+ "sha256": "0ah59s9c24addlx1rxgm11jihn7w45xrf0wrmrb7mbmqf3rj3izc"
+ }
+ },
+ {
+ "ename": "list-environment",
+ "commit": "696cd1647731eb1a22afb95f558c96a1b4aa5121",
+ "sha256": "1zdhrlp8vk8knjwh56pws6dyn003r6avjzvhghlkgnw9nfrdk57h",
+ "fetcher": "github",
+ "repo": "dgtized/list-environment.el",
+ "unstable": {
+ "version": [
+ 20151227,
+ 256
+ ],
+ "commit": "b7ca30b05905047be2e55199a6475f8d98ce318b",
+ "sha256": "1szbs16jlxfj71986dbg0d3j5raaxcwz0xq5ar352731r5mdcqw4"
+ }
+ },
+ {
+ "ename": "list-packages-ext",
+ "commit": "71c217d98c6967d979f57f89ca26200304b0fc37",
+ "sha256": "15m4888fm5xv697y7jspghg1ra49fyrny4y2x7h8ivcbslvpglvk",
+ "fetcher": "github",
+ "repo": "laynor/list-packages-ext",
+ "unstable": {
+ "version": [
+ 20151115,
+ 1716
+ ],
+ "deps": [
+ "ht",
+ "persistent-soft",
+ "s"
+ ],
+ "commit": "b4dd644e4369c9aa66f5bb8895ea49ebbfd0a27a",
+ "sha256": "02l7q5376ydz6a8i9x74bsx5bbxz8xkasmv1lzvf79d3jbg28l1s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "ht",
+ "persistent-soft",
+ "s"
+ ],
+ "commit": "344719b313c208c644490f8f1130e21405402f05",
+ "sha256": "197cqkiwxgamhfwbc8h492cmjll3fypkwzcphj26dfnr22v63kwq"
+ }
+ },
+ {
+ "ename": "list-unicode-display",
+ "commit": "0c8e2a974a56665b97d7622b0428994edadc88a0",
+ "sha256": "01x9i5k5vhjscmkx0l6r27w1cdp9n6xk1pdjf98z3y88dnsmyfha",
+ "fetcher": "github",
+ "repo": "purcell/list-unicode-display",
+ "unstable": {
+ "version": [
+ 20181121,
+ 2316
+ ],
+ "commit": "0ecc2402b258990e7a0cf7e60847712c69444070",
+ "sha256": "008xa52pibd1z3cqz1sh83wldwwj5f11l5pl4pb5hwj60fh383b8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "59770cf3572bd36c3e9ba044846dc420c0dca09b",
+ "sha256": "05nn4db8s8h4mn3fxhwsa111ayvlq1raf6bifh7jciyw7a2c3aww"
+ }
+ },
+ {
+ "ename": "list-utils",
+ "commit": "f9fcd716cbb9f5a4de82a49e57bcb20c483d05f6",
+ "sha256": "0bknprr4jb1d20i9lj2aa17vpg1kqwdyzzwmy1kfydnkpf5scnr3",
+ "fetcher": "github",
+ "repo": "rolandwalker/list-utils",
+ "unstable": {
+ "version": [
+ 20200502,
+ 1309
+ ],
+ "commit": "9bb2487c83ec46a0b6e6c4158af69334ac797b82",
+ "sha256": "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 6
+ ],
+ "commit": "9bb2487c83ec46a0b6e6c4158af69334ac797b82",
+ "sha256": "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"
+ }
+ },
+ {
+ "ename": "lit-mode",
+ "commit": "7a6a1c79c9bba7b17c150ea0663bc61936f15d83",
+ "sha256": "05rf7ki060nqnvircn0dkpdrg7xbh7phb8bqgsab89ycc7l9vv59",
+ "fetcher": "github",
+ "repo": "HectorAE/lit-mode",
+ "unstable": {
+ "version": [
+ 20141123,
+ 1736
+ ],
+ "commit": "c61c403afc8333a5649c5421ab1a6341dc1c7d92",
+ "sha256": "0mr0king5dj20vdycpszxnfs9ch808fhcz3q7svxfngj3d3671wd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "c61c403afc8333a5649c5421ab1a6341dc1c7d92",
+ "sha256": "0mr0king5dj20vdycpszxnfs9ch808fhcz3q7svxfngj3d3671wd"
+ }
+ },
+ {
+ "ename": "litable",
+ "commit": "74f2190b653907985e49a96ded986ab11b4946d7",
+ "sha256": "073yw3ivkl093xxppn5vqyh69jhfc97al505mnyn34fwdj5v8fji",
+ "fetcher": "github",
+ "repo": "Fuco1/litable",
+ "unstable": {
+ "version": [
+ 20200130,
+ 1329
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "02247ca284cbc79f3afb783d62ed092bfc5b8d83",
+ "sha256": "0c84fvc33ddicfi8blkcd6dv1lagjnlk9bwjj88zcvg48fnykqvr"
+ }
+ },
+ {
+ "ename": "litanize",
+ "commit": "772ac9f0328ce5d184c2e126f6dd79a161a6d6c4",
+ "sha256": "1z4l0sk8gbramq900qf14vay0n5v2wd88yswawqrnhkhmqwl3qxm",
+ "fetcher": "github",
+ "repo": "zzkt/litanizer",
+ "unstable": {
+ "version": [
+ 20200211,
+ 621
+ ],
+ "deps": [
+ "enlive",
+ "s"
+ ],
+ "commit": "ba73259e35b4649884ba56542d3a55f43bd3b80b",
+ "sha256": "0147dqzhphnhxrcjxnbjk258j7g7y0rpbw6q3xrd340j9fk1q60k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "enlive",
+ "s"
+ ],
+ "commit": "ce74f10540d6b335c4d0966cbabcf5099531280e",
+ "sha256": "1gzpvl7pgawikkhprja6p94ymsjbsbklqjgdvhzca835mx1g4aw4"
+ }
+ },
+ {
+ "ename": "litecoin-ticker",
+ "commit": "4976446a8ae40980d502186615902fc05c15ec7c",
+ "sha256": "14pjizgdckqhm31ihbz35j8g95jdpmf1rd4l5zz38fyx12zbcpx5",
+ "fetcher": "github",
+ "repo": "llcc/btcbox-ticker",
+ "unstable": {
+ "version": [
+ 20160612,
+ 11
+ ],
+ "deps": [
+ "json"
+ ],
+ "commit": "3d8047c736e4ee0b8638953f8cc63eaefad34106",
+ "sha256": "03iggfi3r5xjh9yhhpr1pgyayriycyybf8qnrhqkqcamh77kq21f"
+ }
+ },
+ {
+ "ename": "literal-string",
+ "commit": "6519bb53f409eeb0d557809b338849e473c193c4",
+ "sha256": "0ylv9dpw17w272f92vn5cldklyz1d8daihi1fsh5ylvxqpinyrkn",
+ "fetcher": "github",
+ "repo": "joodie/literal-string-mode",
+ "unstable": {
+ "version": [
+ 20191023,
+ 733
+ ],
+ "deps": [
+ "edit-indirect"
+ ],
+ "commit": "afffa86e626798ee9f9188ea3be2d5ee6ad17c39",
+ "sha256": "0nh14f3fv0b4i3rlx120s9a0s8gsaip0r15ki38446igl1macbq2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "edit-indirect"
+ ],
+ "commit": "afffa86e626798ee9f9188ea3be2d5ee6ad17c39",
+ "sha256": "0nh14f3fv0b4i3rlx120s9a0s8gsaip0r15ki38446igl1macbq2"
+ }
+ },
+ {
+ "ename": "literate-calc-mode",
+ "commit": "3b6b9d96bb894744f61d65ebd3a813b3c3493f42",
+ "sha256": "1ck61af2lg2rk0r8rlqjsh1am9xw71lk99i3sb71vi2ipd9dq9nb",
+ "fetcher": "github",
+ "repo": "sulami/literate-calc-mode.el",
+ "unstable": {
+ "version": [
+ 20200703,
+ 723
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "e855bd718fa7d0d70b8f43264e10664369dd3a37",
+ "sha256": "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01"
+ }
+ },
+ {
+ "ename": "literate-coffee-mode",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "00zd5i6wpn95sslz0gd7m1h1fw7w07swszfqwaphkbqfwckgll6m",
+ "fetcher": "github",
+ "repo": "emacsorphanage/literate-coffee-mode",
+ "unstable": {
+ "version": [
+ 20170211,
+ 1515
+ ],
+ "deps": [
+ "coffee-mode"
+ ],
+ "commit": "55ce0305495f4a38c8063c4bd63deb1e1252373d",
+ "sha256": "1gm89azjgsdg0c7z9yprpjbph211c5jnqv11pkf1i1r1wzx0wanj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "coffee-mode"
+ ],
+ "commit": "39fe3bfa1f68a7b8b91160875589219b214a2cd6",
+ "sha256": "1fh9wrw5irn0g3dy8gkk63csdcxgi3w2038mxx3sk6ki3r2bmhw8"
+ }
+ },
+ {
+ "ename": "literate-elisp",
+ "commit": "fd4c1c4da2a5571babda9a29a56b8972ad0687c0",
+ "sha256": "10vc3m54jp2wqjrmn9plq6lb5zfiy6jy0acpp09q3z325z0sql9j",
+ "fetcher": "github",
+ "repo": "jingtaozf/literate-elisp",
+ "unstable": {
+ "version": [
+ 20200708,
+ 803
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "722b7b3988336642167e0e0db12800a23410ab07",
+ "sha256": "19fckshqp1dxf7msjjk6cd506i0ydzqb1fqz879pfbbvhg6iclva"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2c91d49be2450650236638a8100d9373ccd59d70",
+ "sha256": "0i9468rh61l4xq918fgwk6li93lpm6zbn0lkpxr7pbvkgrl5xsr6"
+ }
+ },
+ {
+ "ename": "literate-starter-kit",
+ "commit": "812860589cd92759fd2ae02d27f287de88f26863",
+ "sha256": "1n2njf007fmrmsb8zrgxbz1cpxmr5nsp8w41yxa934iqc7qygkjy",
+ "fetcher": "github",
+ "repo": "eschulte/emacs24-starter-kit",
+ "unstable": {
+ "version": [
+ 20150730,
+ 1854
+ ],
+ "commit": "6dce1d01781966c14558aa553cfc85008c06e115",
+ "sha256": "1v37bii372w2g3pl09n5dcrk6y7glhpg8qiv17zsk9jy3ps2xm1b"
+ }
+ },
+ {
+ "ename": "live-code-talks",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1ji4lww71dqxnn5c9inix8xqcmgc76wbps0ylxhhgs44ki4hlyrm",
+ "fetcher": "github",
+ "repo": "david-christiansen/live-code-talks",
+ "unstable": {
+ "version": [
+ 20180907,
+ 1647
+ ],
+ "deps": [
+ "cl-lib",
+ "narrowed-page-navigation"
+ ],
+ "commit": "97f16a9ee4e6ff3e0f9291eaead772c66e3e12ae",
+ "sha256": "1clcm1yps38wdyj415hh7bl20fcpfin92hh5njsldqbvgcpndaqi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "narrowed-page-navigation"
+ ],
+ "commit": "3a2ecdb49b2651d87999d4cad56ba8f1004c7a99",
+ "sha256": "1cwydbhhbs5v9y2s872zxc5lflqmfrdvnc8xz0qars52d7lg4br5"
+ }
+ },
+ {
+ "ename": "live-preview",
+ "commit": "d4f928dd7c043fba36a48f0bb31693f0ec67d3ec",
+ "sha256": "17sayv5l3ihhs370c1qg6377rkph0ailkh1ara1xpj40ljjf158j",
+ "fetcher": "github",
+ "repo": "lassik/emacs-live-preview",
+ "unstable": {
+ "version": [
+ 20200730,
+ 1517
+ ],
+ "commit": "b099cd4d9d4b30d432ffd2ca76f8db1b4c13cd08",
+ "sha256": "1sgl9152f16wlafpd1d2sik044h3dplx0ins3b9kwkm0hxgncdfj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "448d6d2b0912a46acd7d9a9b186b53425b1a7626",
+ "sha256": "1by62z8pch148ar47453bybg7q9drja73rq3pwcn9jb0yb6gn1xl"
+ }
+ },
+ {
+ "ename": "live-py-mode",
+ "commit": "49697a8cf6258b80490789c277cceae4f57148af",
+ "sha256": "1abn2r81200nawyjrc8391sh64gf6j083n9p3h0yc7pl5z9w5zbx",
+ "fetcher": "github",
+ "repo": "donkirkby/live-py-plugin",
+ "unstable": {
+ "version": [
+ 20200709,
+ 422
+ ],
+ "commit": "fdc85e5f2ddc72934be704ac90d5436d379c3381",
+ "sha256": "1g74m9v5818v8wg2zsm4zb74lzw28zfvlpv98b2dkqzikpxgz362"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 2,
+ 0
+ ],
+ "commit": "de3ce16dbb054b6d1b14f3274935bbdccadd9790",
+ "sha256": "1vl6v8lsid4p82clvp62079jnxhmibza3p5hb1frdlsycyc9d1bv"
+ }
+ },
+ {
+ "ename": "lively",
+ "commit": "3e4b01286dbc84f01b43955b693ca08e675ffa07",
+ "sha256": "1q8cbl3sr3dpvzk57985giy4xmz4lvg94jcw7shbhz1v9q05dr5g",
+ "fetcher": "github",
+ "repo": "purcell/lively",
+ "unstable": {
+ "version": [
+ 20171005,
+ 754
+ ],
+ "commit": "348675828c6a81bfa1ac311ca465aad813542c1b",
+ "sha256": "1j8w63hhk1wcxcfqz0wimqijp7p1m8a2n947gwqv8nk1wm40aqg3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "6ec648fcde85e81393db1ed1364860f960179c92",
+ "sha256": "06sdaj2akwjg1a7yvmm3gsip66iaq9bhm3gr45szwg6z622q4gvf"
+ }
+ },
+ {
+ "ename": "livereload",
+ "commit": "330731804c442226fa2faaa3da408e9253a1c051",
+ "sha256": "1z0dbg82l6znz1b03v19a8fnq6b1smikpvaplpxlgny82xrs9als",
+ "fetcher": "github",
+ "repo": "joaotavora/emacs-livereload",
+ "unstable": {
+ "version": [
+ 20170629,
+ 650
+ ],
+ "deps": [
+ "websocket"
+ ],
+ "commit": "1e501d7e46dbd476c2c7cc9d20b5ac9d41fb1955",
+ "sha256": "1z1v2panxrqpam5ysnilx83y6b4dwxmxqhmbgjwfyd1bdmr4iya4"
+ }
+ },
+ {
+ "ename": "livescript-mode",
+ "commit": "1727cd154c841219b1dff1c8714cb09692e2730f",
+ "sha256": "1fdfhp39zr2mhy5rd6mwqv5fwd8xaypdqig7v3ksv77m5zq7cmmj",
+ "fetcher": "github",
+ "repo": "yhisamatsu/livescript-mode",
+ "unstable": {
+ "version": [
+ 20140613,
+ 421
+ ],
+ "commit": "90a918d9686e256e6d4d439cc20f24dad8d3b804",
+ "sha256": "0kqjz0i0zapyhh8z57cvc8ifiizngix3ca01mjnvyq3zxg1bqrsg"
+ }
+ },
+ {
+ "ename": "livid-mode",
+ "commit": "b14068485afbd888bf0d124aea089fe5fbd5038c",
+ "sha256": "0jy16m6injqznx4gmxzvhys480pclw9g07z4qll2dna37177ww9d",
+ "fetcher": "github",
+ "repo": "pandeiro/livid-mode",
+ "unstable": {
+ "version": [
+ 20131116,
+ 1344
+ ],
+ "deps": [
+ "s",
+ "skewer-mode"
+ ],
+ "commit": "dfe5212fa64738bc4138bfebf349fbc8bc237c26",
+ "sha256": "178ldzpk8a9m9abn8xlplxn5jgcca71dpkp82bs5g7bsccp3rx6p"
+ }
+ },
+ {
+ "ename": "lms",
+ "commit": "7d6c24152f88dad15ef9f304c0016a97ede71dab",
+ "sha256": "1nksla9i7b4nmnzppyw6fq5kzh8jyqjfxn45g60c4mi2mn3p95a1",
+ "fetcher": "hg",
+ "url": "https://hg.serna.eu/emacs/lms",
+ "unstable": {
+ "version": [
+ 20200616,
+ 1814
+ ],
+ "commit": "8090ba32866033c3ab580190cc79cac61463a180",
+ "sha256": "0l97i08k9qqr76xniac912id0hx5f56psf3v3l4mprs5k8myihj6"
+ }
+ },
+ {
+ "ename": "load-bash-alias",
+ "commit": "063fa99446bb54fadbbad1af90427462afe8bd8d",
+ "sha256": "1maq7wykhn3cvxl8fiws3d2d63zlkzgpd3d9jz3rhyi9rcjcjzak",
+ "fetcher": "github",
+ "repo": "daviderestivo/load-bash-alias",
+ "unstable": {
+ "version": [
+ 20200106,
+ 2015
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "999c613898085b37b9e16b60be1cbeaa9986d368",
+ "sha256": "1qhcx7c954q1liw3glhvbg5bph96j9bwf808g6l066n04xj5347i"
+ }
+ },
+ {
+ "ename": "load-env-vars",
+ "commit": "93835267005c49095a02fc1688b2b449f5acfb86",
+ "sha256": "0yc05qqhbva2zn2rrl4spp38jxblk4gh64q9fd7mgl7i50f2kk00",
+ "fetcher": "github",
+ "repo": "diasjorge/emacs-load-env-vars",
+ "unstable": {
+ "version": [
+ 20180511,
+ 2210
+ ],
+ "commit": "3808520efaf9492033f6e11a9bffd68eabf02a0f",
+ "sha256": "0yw1ihns914k8va5mhphch1zix09x22cpgrbw968mh8hviknyvzr"
+ }
+ },
+ {
+ "ename": "load-relative",
+ "commit": "f052f201f7c308325c27cc2423e85cf6b9b67b4e",
+ "sha256": "0j8ybbjzhzgjx47pqqdbsqi8n6pzqcf6zqc38x7cf1kkklgc87ay",
+ "fetcher": "github",
+ "repo": "rocky/emacs-load-relative",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1109
+ ],
+ "commit": "85b88d6fbf472381dfdaf0a762215b7e35ceee9b",
+ "sha256": "0jajdk2685d1jdw72hp4g0pq9xwbwbnls79nizkydamwhnj8sfcp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 1
+ ],
+ "commit": "5055bfd80644e306aef4e7a7e3e9e5d765b691a4",
+ "sha256": "1w2xvnihk607vnmlmqz7zsjksd3mscjx2igdadxsfz398bjwl0qd"
+ }
+ },
+ {
+ "ename": "load-theme-buffer-local",
+ "commit": "ca7bf43ef8893bf04e9658390e306ef69e80a156",
+ "sha256": "13829yrh36qac7gpxanizlk4n7av99ngvv06y6mmi5rq06a4hjx4",
+ "fetcher": "github",
+ "repo": "vic/color-theme-buffer-local",
+ "unstable": {
+ "version": [
+ 20120702,
+ 2036
+ ],
+ "commit": "e606dec66f16a06140b9aad625a4fd52bca4f936",
+ "sha256": "0c04fy3hc8wc0aabilqx9mcipmd41rmshqjxc3z8m1w0bm4288g1"
+ }
+ },
+ {
+ "ename": "loc-changes",
+ "commit": "a5ce68d573d19f26ecfd190f8e6cd1f384ca3e8a",
+ "sha256": "1akgij61b2ixpkchrriabwvx68cg4v5r5w9ncjrjh91hskjprfxh",
+ "fetcher": "github",
+ "repo": "rocky/emacs-loc-changes",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1111
+ ],
+ "commit": "0a55bcba684f78417e831eef2cc32da24a207f29",
+ "sha256": "1fywhx8jk25mxrv0i446r519x4vjdsgvm1rzwdd0mcnjbwpv90b4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "8447baff7cb4839ef8d1d747a14e5da85d0cee5b",
+ "sha256": "1089sbx20r30sis39vwy29fxhb2n3hh35rdv09lpzdxdq01s8wwp"
+ }
+ },
+ {
+ "ename": "loccur",
+ "commit": "72550b043794331e85bc4b124f6d8ab70d969eff",
+ "sha256": "06pv2i05yzjzal4q21krbnp9rp4bsainxcwvpc98020vsmms0z8h",
+ "fetcher": "github",
+ "repo": "fourier/loccur",
+ "unstable": {
+ "version": [
+ 20191022,
+ 1955
+ ],
+ "commit": "4934c0560d2f63e6314b4584211a0cc0a7e671c4",
+ "sha256": "03hwvx3h64jj9nylmzpv2241b5fi97anhjjpwc5sjmfsq1wbf432"
+ }
+ },
+ {
+ "ename": "lockfile-mode",
+ "commit": "12a383eb6c29acb007dae9dc777ace3ba84edac9",
+ "sha256": "13nr983xldja8m02a1rdnyqxc8g045hxjh6649wmqmqk4mk0m310",
+ "fetcher": "github",
+ "repo": "preetpalS/emacs-lockfile-mode",
+ "unstable": {
+ "version": [
+ 20170625,
+ 507
+ ],
+ "commit": "fcfef88460cb3cd67c4d83a1801d0326d282feac",
+ "sha256": "1dh41a8dj8h3lrhjajaz886vsimflshk6bc08w71rwvjyy2k8xil"
+ }
+ },
+ {
+ "ename": "lodgeit",
+ "commit": "c82e72535aefade20e23e38931ca573e3459401e",
+ "sha256": "1ax2w5yxscycjz90g4jdbhd64g9sipzxpfjs7gq3na77s5dcjzsq",
+ "fetcher": "github",
+ "repo": "ionrock/lodgeit-el",
+ "unstable": {
+ "version": [
+ 20190802,
+ 1308
+ ],
+ "commit": "442637194d48a7105b7747b8d98772f5899f9e21",
+ "sha256": "1lw9d6908si7rw5802vwpnfklpahqsabkl21nzg77a4pp3pgy80v"
+ }
+ },
+ {
+ "ename": "log4e",
+ "commit": "90d0e451c5a8eb25db95990b058964a9acea4b89",
+ "sha256": "1klj59dv8k4r0hily489dp12ra5hq1jnsdc0wcakh6zirmakhs34",
+ "fetcher": "github",
+ "repo": "aki2o/log4e",
+ "unstable": {
+ "version": [
+ 20200420,
+ 745
+ ],
+ "commit": "7df0c1ff4656f8f993b87064b1567618eadb5546",
+ "sha256": "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 3
+ ],
+ "commit": "7df0c1ff4656f8f993b87064b1567618eadb5546",
+ "sha256": "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"
+ }
+ },
+ {
+ "ename": "log4j-mode",
+ "commit": "caaa21f235c4864f6008fb454d0a970a2fd22a86",
+ "sha256": "0311jb47fjji8dqy98anr487f7vnvi85p4mn5ymqvxs5c6972gms",
+ "fetcher": "git",
+ "url": "https://git.code.sf.net/p/log4j-mode/code",
+ "unstable": {
+ "version": [
+ 20160108,
+ 1918
+ ],
+ "commit": "26171b1e723502055e085393b0ecdcb6db406010",
+ "sha256": "15x6368pk4bbvhbd6cqnazcxfdz0b3f70029x0884a5797janln5"
+ }
+ },
+ {
+ "ename": "logalimacs",
+ "commit": "ef9833a5ca4d455f1d33b9367860e2051d60662f",
+ "sha256": "0ai7a01bdi3a0amgi63pwgdp8wgcgx10an4nhc627wgb1cqxb7p6",
+ "fetcher": "github",
+ "repo": "logaling/logalimacs",
+ "unstable": {
+ "version": [
+ 20131021,
+ 1829
+ ],
+ "deps": [
+ "popup",
+ "popwin",
+ "stem"
+ ],
+ "commit": "8286e39502250fc6c3c6656a7f46a8eee8e9a713",
+ "sha256": "0lj3i9i3mg17xws13gzx8myc6d7djgsj47yx4kaq5hycgkni1p7q"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "cfd7aaa925934f876eee6e8c550cf6e7a239a2ac",
+ "sha256": "0g5vq9xy9lwczs77lr91c1srhhfmasnnnmjvgc55hbl6iwmbizbm"
+ }
+ },
+ {
+ "ename": "logito",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0xi7zbxpialsn4pknj8aqmkbiwwsbapwynrrjb8avhli2hd4s3fl",
+ "fetcher": "github",
+ "repo": "sigma/logito",
+ "unstable": {
+ "version": [
+ 20120225,
+ 2055
+ ],
+ "deps": [
+ "eieio"
+ ],
+ "commit": "824acb89d2cc18cb47281a4fbddd81ad244a2052",
+ "sha256": "0jpyd2f33pk984kg0q9hxdl4615jb7sxsggnb30mpz7a2ws479xr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "eieio"
+ ],
+ "commit": "824acb89d2cc18cb47281a4fbddd81ad244a2052",
+ "sha256": "0jpyd2f33pk984kg0q9hxdl4615jb7sxsggnb30mpz7a2ws479xr"
+ }
+ },
+ {
+ "ename": "lognav-mode",
+ "commit": "a5b0dadc609d13737d56657c17a945f10e840222",
+ "sha256": "1fg2j63f6yaf4011vla36p1p0pjixzisff4wj80vh634yqvwp4ys",
+ "fetcher": "hg",
+ "url": "https://hg.osdn.net/view/lognav-mode/lognav-mode",
+ "unstable": {
+ "version": [
+ 20191124,
+ 1011
+ ],
+ "commit": "7eb9cd2af5b47116fe475870b41dded55052c14c",
+ "sha256": "10f3im4x55ag6mhrrsjkylmaxm5s7dj7mwmppzm2yvs1nq0fxa79"
+ }
+ },
+ {
+ "ename": "logpad",
+ "commit": "c9747d42331eae20744f0bf4821e82a7832dbdc7",
+ "sha256": "0xmgbw9cv2gvhlfxjpwk41vg7ixrl1bw607h9ag5vga4s3sg5q8l",
+ "fetcher": "github",
+ "repo": "dertuxmalwieder/logpad.el",
+ "unstable": {
+ "version": [
+ 20190927,
+ 2043
+ ],
+ "commit": "ff80fd198b196c4db9ca88ae8cf858cae491e121",
+ "sha256": "0hc6lp6qmiq9qhn6lx7whfv2w1zz5g2j6azzd9vs695kcbqk5qm7"
+ }
+ },
+ {
+ "ename": "logstash-conf",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0djf2kl6jypxlfss4x8ij670v733vid1vbyg6yd96pc9781v3zrm",
+ "fetcher": "github",
+ "repo": "Wilfred/logstash-conf.el",
+ "unstable": {
+ "version": [
+ 20200725,
+ 1843
+ ],
+ "commit": "131565042f8f12b9b88bd477959246dd034fa7d6",
+ "sha256": "1cyrmhnc38piw8q6d8j8xwyk0vl0a00mzjhmswkwd76w06adr9md"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "652dddecf19f3e39a36055823e44fcffc5b44aeb",
+ "sha256": "0xdqfkcpv1677xfp54j2rwc9wjl3mfs9542jjcs0ym2063r6fzla"
+ }
+ },
+ {
+ "ename": "logview",
+ "commit": "1df3c11ed7738f32e6ae457647e62847701c8b19",
+ "sha256": "0gks3j5avx8k3427a36lv7gr95id3cylaamgn5qwbg14s54y0vsh",
+ "fetcher": "github",
+ "repo": "doublep/logview",
+ "unstable": {
+ "version": [
+ 20200331,
+ 2111
+ ],
+ "deps": [
+ "datetime",
+ "extmap"
+ ],
+ "commit": "c67298a215136617de60c9041904ee6a455dcd4f",
+ "sha256": "0bjgzh4z4bz4nr97cn9wd92brg7wik37c0vd3kfisdalxq2wrgn5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13,
+ 1
+ ],
+ "deps": [
+ "datetime",
+ "extmap"
+ ],
+ "commit": "c67298a215136617de60c9041904ee6a455dcd4f",
+ "sha256": "0bjgzh4z4bz4nr97cn9wd92brg7wik37c0vd3kfisdalxq2wrgn5"
+ }
+ },
+ {
+ "ename": "lol-data-dragon",
+ "commit": "c54747f74db0d3c270682c8994e3babdac9d36c4",
+ "sha256": "18aydjkv331gkbsyxgvrrlw37v2m2g65alz82287nwjswgns4pia",
+ "fetcher": "github",
+ "repo": "xuchunyang/lol-data-dragon.el",
+ "unstable": {
+ "version": [
+ 20200705,
+ 1822
+ ],
+ "commit": "0deec9867bd7ba96220ee2968a9b2a94fd474431",
+ "sha256": "136x1yqdzjh6a2vhyd73yhgg6kmwl00c5c14ny5davlghwd5g7aw"
+ }
+ },
+ {
+ "ename": "lolcat",
+ "commit": "38e720f524b23b5742764186a695d143f983e179",
+ "sha256": "044y0s1wiwjwfw58nhx5zvrli527nim3d81dix2h60d8qwx0566a",
+ "fetcher": "github",
+ "repo": "xuchunyang/lolcat.el",
+ "unstable": {
+ "version": [
+ 20190527,
+ 1145
+ ],
+ "commit": "4855e587a3b9681c077dac4b9f166dd860f439a4",
+ "sha256": "0nbrc3wjmmy70ggwmzagkh5j1my7x6y67fyqgddkdrbnw543gly0"
+ }
+ },
+ {
+ "ename": "lolcode-mode",
+ "commit": "572d31a0bd8627d8b5f6bab021c953a1fee31d2c",
+ "sha256": "0dxdqr3z5bw0vcfxhhhc1499vrfk1xqwxshr0kvlhdalpf59rqiw",
+ "fetcher": "github",
+ "repo": "bodil/lolcode-mode",
+ "unstable": {
+ "version": [
+ 20111002,
+ 847
+ ],
+ "commit": "1914f1ba87587ecf5f175eeb2144c28e9f039317",
+ "sha256": "0pyfgywmmnlz1arvdxwyw96gr6xcg2sp3bqjli8xfcl8i0nww4kb"
+ }
+ },
+ {
+ "ename": "look-dired",
+ "commit": "ef66b97b2e9034cb0c62dd1e37b2577ffef60834",
+ "sha256": "0dddx5nxr519wqdgrbglh0pqjl3alg4ddmank42g4llzycy61wsd",
+ "fetcher": "github",
+ "repo": "vapniks/look-dired",
+ "unstable": {
+ "version": [
+ 20160729,
+ 2323
+ ],
+ "deps": [
+ "look-mode"
+ ],
+ "commit": "9bfa4e5e6f3810705b6426c88493ea0bf6b15640",
+ "sha256": "1yagp35ylznrh3a5ahpzrrxi6ma69ppwqsab3cwss54bi4f02ihn"
+ }
+ },
+ {
+ "ename": "look-mode",
+ "commit": "bf3107730d959dc28b22760aca48bf8a7db35a23",
+ "sha256": "1b3s756k6r60p3bk5ldr0lawaqviwbvjw0db9r20982pcqgda8y9",
+ "fetcher": "github",
+ "repo": "petermao/look-mode",
+ "unstable": {
+ "version": [
+ 20190212,
+ 2346
+ ],
+ "commit": "d686e4cfafeac24e07e3efdb9763472f78d878f4",
+ "sha256": "1qh21z83qsvw1s9vhqcmwbvhd0q0lgj8hvpjb2rmn4kqkcvqbn2a"
+ }
+ },
+ {
+ "ename": "loop",
+ "commit": "ba481ca96469b3bd518e4fd8f24947338c8af014",
+ "sha256": "0pav16kinzljmzx84vfz63fvi39af4628vk1jw79jk0pyg9rjbar",
+ "fetcher": "github",
+ "repo": "Wilfred/loop.el",
+ "unstable": {
+ "version": [
+ 20160813,
+ 1407
+ ],
+ "commit": "e22807f83a0890dc8a904c51ee0742c34efccc6c",
+ "sha256": "1c89hsi0h783s96d322mvqwlf00ndm2qnrc165wpxrdbns38kbbv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "c3598bd3ad0677f66e061b3ba51a05d05275283e",
+ "sha256": "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"
+ }
+ },
+ {
+ "ename": "lorem-ipsum",
+ "commit": "0c09f9b82430992d119d9148314c758f067832cd",
+ "sha256": "0p62yifbrknjn8z0613wy2aaknj44liyrgbknhpa0qn0d4fcrp4h",
+ "fetcher": "github",
+ "repo": "jschaf/emacs-lorem-ipsum",
+ "unstable": {
+ "version": [
+ 20190819,
+ 2042
+ ],
+ "commit": "da75c155da327c7a7aedb80f5cfe409984787049",
+ "sha256": "04h97vnd758gsdfg30wkrhnh4hz7k63xbrw178dxfcwsylq32wi0"
+ }
+ },
+ {
+ "ename": "love-minor-mode",
+ "commit": "0f224c4c7519b3668b1270c957227e486896b7b6",
+ "sha256": "1skg039h2hn8dh47ww6n9l776s2yda8ariab4v9f56kb21bncr4m",
+ "fetcher": "github",
+ "repo": "ejmr/love-minor-mode",
+ "unstable": {
+ "version": [
+ 20170727,
+ 536
+ ],
+ "deps": [
+ "lua-mode"
+ ],
+ "commit": "3ca8f3405338f2d6f4fbcdd5e89342a46378543a",
+ "sha256": "1hwm7yxbwvb27pa35cgcxyjfjdjhk2a33i417q2akc7vppdbcmzh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "lua-mode"
+ ],
+ "commit": "3ca8f3405338f2d6f4fbcdd5e89342a46378543a",
+ "sha256": "1hwm7yxbwvb27pa35cgcxyjfjdjhk2a33i417q2akc7vppdbcmzh"
+ }
+ },
+ {
+ "ename": "lox-mode",
+ "commit": "8a4f385fd128097781b563ad91d4aa8301167f5e",
+ "sha256": "14mqn4r2jmz661gyvzm48s9qb98w75sjflmrgqg6sslaca98jrpi",
+ "fetcher": "github",
+ "repo": "timmyjose-projects/lox-mode",
+ "unstable": {
+ "version": [
+ 20200619,
+ 1700
+ ],
+ "commit": "b6935b3f5b131d2c1c7685cf6464274f7cd64943",
+ "sha256": "0yx6j44284zv1ldqk44xfgqbrkcraznr0xfpaxy7797bmn9bajnp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "083a2299e188a516d1e46ef2dd1cbb89db1aec49",
+ "sha256": "0wwx1vs7gw8f3p63ql5mf311iydxlzar7wzbvig14k785rfzq69c"
+ }
+ },
+ {
+ "ename": "lpy",
+ "commit": "e0e7941d9efc303b8cd5d3e7b29606316307fd8b",
+ "sha256": "1wna38yc3sxylg2qjwl424g8qcnaj0h6g0rnnmhzf1kfd8hkd7zx",
+ "fetcher": "github",
+ "repo": "abo-abo/lpy",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1159
+ ],
+ "deps": [
+ "lispy"
+ ],
+ "commit": "c6744639ee313ee6dd4bc1e14b651d944b2ee1fd",
+ "sha256": "1vypwkx3020wx95cg34zi03pgarbjdhxpchbfvsj6bkd5v4bq6mc"
+ }
+ },
+ {
+ "ename": "lsp-dart",
+ "commit": "acbba6bc6f1bb6e1153f1f75ca1dc025bb5a8993",
+ "sha256": "0q2x3i5yydnrplfgk8fcngdsxf1g1vz1jzkbwhiqf46wrv5vxwl3",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-dart",
+ "unstable": {
+ "version": [
+ 20200814,
+ 1405
+ ],
+ "deps": [
+ "dap-mode",
+ "dart-mode",
+ "dash",
+ "f",
+ "lsp-mode",
+ "lsp-treemacs",
+ "pkg-info"
+ ],
+ "commit": "437c548d411c9e166b7c658fd45294775235fd5f",
+ "sha256": "1pl7payda8i9cyca2j808inb8pmnyhh1sjc9f4qvxpbwd7b94vlr"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 14,
+ 6
+ ],
+ "deps": [
+ "dap-mode",
+ "dart-mode",
+ "dash",
+ "f",
+ "lsp-mode",
+ "lsp-treemacs",
+ "pkg-info"
+ ],
+ "commit": "437c548d411c9e166b7c658fd45294775235fd5f",
+ "sha256": "1pl7payda8i9cyca2j808inb8pmnyhh1sjc9f4qvxpbwd7b94vlr"
+ }
+ },
+ {
+ "ename": "lsp-docker",
+ "commit": "f592ec9b1d6a05e1e115d4b313be108c8e47ee67",
+ "sha256": "1xmkwhgkcsf52hngb811n2q7q4rav75wwjz7zin6x17vfv8hqifx",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-docker",
+ "unstable": {
+ "version": [
+ 20200222,
+ 505
+ ],
+ "deps": [
+ "dash",
+ "lsp-mode"
+ ],
+ "commit": "5053b697d1541afd436bc4a93f51b6afd8f2b79f",
+ "sha256": "0kxvzhrm8l99bmf3zjig7axkfm5mn0yl4l4yfxpvvfsb04iqj10k"
+ }
+ },
+ {
+ "ename": "lsp-elixir",
+ "commit": "c875a05e68d09ecf37f7e13149f2624c70164ea3",
+ "sha256": "0mimb67swcq2yis0s6w2bkk7sgqv7lyvz1hrh48h2q6qr3ywmq0n",
+ "fetcher": "github",
+ "repo": "elixir-lsp/lsp-elixir.el",
+ "unstable": {
+ "version": [
+ 20190105,
+ 2059
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "9fd091c092144a09c0df2d477257c1f4c37bb985",
+ "sha256": "0m5hxlx0cnx4rdcz5chxqp074z9h1wj1nvg8dzmilsnmg3kmsshx"
+ }
+ },
+ {
+ "ename": "lsp-focus",
+ "commit": "a71079ecb60d84bded984d856f52590f64adbd9b",
+ "sha256": "0w0kywrs3pcs4kgdwhh4r9c1hdjblbdfcn66iz0xhrv1qxpv0zqv",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-focus",
+ "unstable": {
+ "version": [
+ 20200809,
+ 1413
+ ],
+ "deps": [
+ "focus",
+ "lsp-mode"
+ ],
+ "commit": "c8270663c1fa8650cf0e248caa6a8e3d8f25d80d",
+ "sha256": "13d7s2pm7nqz06bj6qkibi50f69slqwz6dc0fik97glxnlqqqva5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "focus",
+ "lsp-mode"
+ ],
+ "commit": "30a19e9d616b341e41469b141e86ff825070cb67",
+ "sha256": "1xzyz59bgsjpvb32x60wk2n6x6pj5pk65sfd677h898rvlxnn1lz"
+ }
+ },
+ {
+ "ename": "lsp-haskell",
+ "commit": "1a7b69312e688211089a23b75910c05efb507e35",
+ "sha256": "0pdcxnfp8ng24bfk695wpx5wcdqnjrjsfpks0xicih3mcdm1x9l8",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-haskell",
+ "unstable": {
+ "version": [
+ 20200527,
+ 2014
+ ],
+ "deps": [
+ "haskell-mode",
+ "lsp-mode"
+ ],
+ "commit": "17d7d4c6615b5e6c7442828720730bfeda644af8",
+ "sha256": "1kkp63ppmi3p0p6qkfpkr8p5cx8qggmsj73dwphv90mdq0nrfsx8"
+ }
+ },
+ {
+ "ename": "lsp-intellij",
+ "commit": "9d72cbb85fe4e0c6bea9a704dc1545f88efa56d2",
+ "sha256": "0l2ffxqsdzvddypdl3w9rd7qxy2kzw2iwfkr2w7czglyfbnyyg2b",
+ "fetcher": "github",
+ "repo": "Ruin0x11/lsp-intellij",
+ "unstable": {
+ "version": [
+ 20180831,
+ 2051
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "cf30f0ac63bd0140e758840b8ab070e8313697b2",
+ "sha256": "0ghw2as9fbnfhrr1nbqk97jcl7yb451xpmfbksxh7mvjm3lhmyvz"
+ }
+ },
+ {
+ "ename": "lsp-ivy",
+ "commit": "51af5cfe26bdf1482fb707fbcc5e9ea49b99eb14",
+ "sha256": "0yw72n0gyzv60nx4ycn979yzqwxv4hqrbi39g5finxmwjjf4rha9",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-ivy",
+ "unstable": {
+ "version": [
+ 20200701,
+ 2043
+ ],
+ "deps": [
+ "dash",
+ "ivy",
+ "lsp-mode"
+ ],
+ "commit": "4cdb739fc2bc47f7d4dcad824f9240c70c4cb37d",
+ "sha256": "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "dash",
+ "ivy",
+ "lsp-mode"
+ ],
+ "commit": "4cdb739fc2bc47f7d4dcad824f9240c70c4cb37d",
+ "sha256": "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"
+ }
+ },
+ {
+ "ename": "lsp-java",
+ "commit": "c03cb07862c5f35487fb4fb3cc44623774724717",
+ "sha256": "0rrl9mh25w1avvyww840d3yh8nw0shirspxl2nxqwwdaymbkg2wr",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-java",
+ "unstable": {
+ "version": [
+ 20200804,
+ 1609
+ ],
+ "deps": [
+ "dap-mode",
+ "dash",
+ "dash-functional",
+ "f",
+ "ht",
+ "lsp-mode",
+ "markdown-mode",
+ "request",
+ "treemacs"
+ ],
+ "commit": "260016236fa0520b5b6ec7f51ca2086288524cba",
+ "sha256": "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "ht",
+ "lsp-mode",
+ "markdown-mode",
+ "request",
+ "treemacs"
+ ],
+ "commit": "811760ad89a29939c28f47d0925f58d9eeea9fa3",
+ "sha256": "1grcapmd9k0a128vhgpy2a5dh6iqmf8bdvz0hykl4v7d55vcm423"
+ }
+ },
+ {
+ "ename": "lsp-javacomp",
+ "commit": "6b8a1c034554579a7e271409fa72020cfe441f68",
+ "sha256": "1gp8dlcpik2lmpicccq2kya498pmw9m8vz9m1fbd725p7wk58fhi",
+ "fetcher": "github",
+ "repo": "tigersoldier/lsp-javacomp",
+ "unstable": {
+ "version": [
+ 20190124,
+ 1755
+ ],
+ "deps": [
+ "lsp-mode",
+ "s"
+ ],
+ "commit": "82aa4ad6ca03a74565c35e855b318b1887bcd89b",
+ "sha256": "0r0ig73hsa0gyx8s6hr1mbdgf9m1n2zh2v7yhq3405l4if08s5m6"
+ }
+ },
+ {
+ "ename": "lsp-jedi",
+ "commit": "65d0fa5e46e336e0e93db1bea062e79253861de4",
+ "sha256": "1hxw4nrjds9ir7f6j2zypazf208cc7v2621c11rdxkik8iykqikf",
+ "fetcher": "github",
+ "repo": "fredcamps/lsp-jedi",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1826
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "10c782261b20ad459f5d2785592c4f46f7088126",
+ "sha256": "0rip6fq5mwk2lsa0wwr573mx4myqvc8a7v4mqalmqxgwzcv9w7vb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "10c782261b20ad459f5d2785592c4f46f7088126",
+ "sha256": "0rip6fq5mwk2lsa0wwr573mx4myqvc8a7v4mqalmqxgwzcv9w7vb"
+ }
+ },
+ {
+ "ename": "lsp-julia",
+ "commit": "ca6a06ed4de499bcccce05163ea3d54e4dca9539",
+ "sha256": "1frjvq2x0xsf93kgpy6bp9mgzfpr7zhacskmm6x8kknb9vj18h4v",
+ "fetcher": "github",
+ "repo": "non-Jedi/lsp-julia",
+ "unstable": {
+ "version": [
+ 20200511,
+ 1444
+ ],
+ "deps": [
+ "julia-mode",
+ "lsp-mode"
+ ],
+ "commit": "b342e5f74f9b815d2a7db9fffee7b9c46850d293",
+ "sha256": "13haa9jvcq6wvj8g1bnqrrczg1j50lwk41pr4n7q0i7313r8f89v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "julia-mode",
+ "lsp-mode"
+ ],
+ "commit": "9f158a290168149fd301a1c1c2016600106ad5be",
+ "sha256": "077mrvxf8df4dppl3xqa7p3ksm3wcms64l306y7i5x878vyjgibv"
+ }
+ },
+ {
+ "ename": "lsp-latex",
+ "commit": "5e3c176af536155c8110006fd4bc63eeb2b2d12c",
+ "sha256": "01kn9faak6y1zfd1143yj453hl6rp1xykrg5rp196zf6brywj5a1",
+ "fetcher": "github",
+ "repo": "ROCKTAKEY/lsp-latex",
+ "unstable": {
+ "version": [
+ 20200718,
+ 928
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "a9a26a21bf16b9444021563d844719ace0c5c3b6",
+ "sha256": "1waysrxhihg099czr2hydsvipdm8kf1zxw725r84lv5363cijw0b"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "a1376d3f4d4467aaf7fc5750c437e3edc91d2116",
+ "sha256": "044jivz2w6xs2kyjasndy00c0j9f63qf66s5wmkjjxbyamd7viwi"
+ }
+ },
+ {
+ "ename": "lsp-metals",
+ "commit": "ee055cc258692a92f727633306adf7df31267479",
+ "sha256": "1nl9ay741y7qxvgdr6vywavr3aayh6z3a3bvmc4q5g5vsh3inwya",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-metals",
+ "unstable": {
+ "version": [
+ 20200727,
+ 1925
+ ],
+ "deps": [
+ "dap-mode",
+ "dash",
+ "dash-functional",
+ "f",
+ "ht",
+ "lsp-mode",
+ "lsp-treemacs",
+ "treemacs"
+ ],
+ "commit": "039aa72439e3c52cfef4bcde416ba49d88ac0991",
+ "sha256": "12b2f1d07rqnbj27whdkk74c3fkqp7qrsqmwnyv0ysc870w29sb0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dap-mode",
+ "dash",
+ "dash-functional",
+ "f",
+ "ht",
+ "lsp-mode",
+ "treemacs"
+ ],
+ "commit": "efefcc0e936ec463f0d19b6cae7c8336dcd186e4",
+ "sha256": "01396r17ipmp0s5k5njm8m4vqw0g1sj9rq6dpkxv7wbad1c4izmx"
+ }
+ },
+ {
+ "ename": "lsp-mode",
+ "commit": "1a7b69312e688211089a23b75910c05efb507e35",
+ "sha256": "0cklwllqxzsvs4wvvvsc1pqpmp9w99m8wimpby6v6wlijfg6y1m9",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-mode",
+ "unstable": {
+ "version": [
+ 20200819,
+ 1349
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "ht",
+ "lv",
+ "markdown-mode",
+ "spinner"
+ ],
+ "commit": "4145a70ce1d4bfb2463606ba34c5965080b080d9",
+ "sha256": "01nji47mh79ip67vagi8yb5dd9kscnvg4070zklnfyp9v0rfl73r"
+ },
+ "stable": {
+ "version": [
+ 7,
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "ht",
+ "lv",
+ "markdown-mode",
+ "spinner"
+ ],
+ "commit": "4db1151dbf1fe84769433d841e90803448b0b354",
+ "sha256": "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"
+ }
+ },
+ {
+ "ename": "lsp-mssql",
+ "commit": "abe823ce7ab99c2c45a74a36713064d441ee8165",
+ "sha256": "0imhby806kyp0nb5fk04kxy6w90n8s5j5ckf8pky8wvasl9anf4i",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-mssql",
+ "unstable": {
+ "version": [
+ 20191204,
+ 1150
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "ht",
+ "lsp-mode",
+ "lsp-treemacs"
+ ],
+ "commit": "b462cfa9b8071c624b905baf37a255d808ac6376",
+ "sha256": "1wig6hr5g0q0lg7zkqw1bfgagpx1ndpga75lnxaqpm0f0rgwdc33"
+ }
+ },
+ {
+ "ename": "lsp-origami",
+ "commit": "68b7cf8ce2eb256db9affb2126e895aa5ad1db15",
+ "sha256": "0pzccbglwwv73x3iyfidiwhwfs1dd9krvyjyqkbl5w734z3aaqqk",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-origami",
+ "unstable": {
+ "version": [
+ 20200809,
+ 1537
+ ],
+ "deps": [
+ "lsp-mode",
+ "origami"
+ ],
+ "commit": "110c40eafde81179ec7a78aab94b0b2059689374",
+ "sha256": "0z2z0idzpc8mql3mc0szb81j712ad54kpnxj28j6giid1a540bzd"
+ }
+ },
+ {
+ "ename": "lsp-p4",
+ "commit": "53f0da8b3d2903adeffdbc3d8df7d630bfd9ff71",
+ "sha256": "0cd3n17lqwz08zfkm9g5cr1cj2asznlbhxrym2a7b7shdmn3yx5f",
+ "fetcher": "github",
+ "repo": "dmakarov/p4ls",
+ "unstable": {
+ "version": [
+ 20190127,
+ 1049
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "54dd19d88cd561061ac3103dc452d6854e5899fa",
+ "sha256": "1kg8n215hg8x9gxi2sdjyk8whbir20p3fzc50za1iwhiq3gzx1fw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "9ebc597ba37e6f8fccbc08327cf57ca8ec793ffe",
+ "sha256": "0dd4n0c1rbqcy7hl6gb9nqjj7hfv4566d6ipdlnxjma0zjs84sjf"
+ }
+ },
+ {
+ "ename": "lsp-pascal",
+ "commit": "41e4088e4b0cd99aafac40c83188112a680a65f7",
+ "sha256": "08zvh9r1plnirdp8qb0p8xfq0y7qx7awq98gn8340f5zbwh9006q",
+ "fetcher": "github",
+ "repo": "arjanadriaanse/lsp-pascal",
+ "unstable": {
+ "version": [
+ 20200422,
+ 1610
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "b132bdf66748e4abe0d4140f6d061b1ccd56082a",
+ "sha256": "09v79p6wsp775ky1wy5fr0hwh5j33jvdvcarjs20zbdwnrs53am8"
+ }
+ },
+ {
+ "ename": "lsp-pyre",
+ "commit": "5b243c6ab0a441531e02dc8fdd88c023ba505d25",
+ "sha256": "1v8yx062cv5wmpg3lalah5cy8hvhslvyrd4f3185gmc0ynz71fpi",
+ "fetcher": "github",
+ "repo": "jra3/lsp-pyre",
+ "unstable": {
+ "version": [
+ 20190406,
+ 335
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "e177b8f5efd1a955b5753aeb5d1894e6d21be35a",
+ "sha256": "0g9vijpq7n38b7rvgbshh4s46m1387d7k2lcvy4md17sak5ivxrg"
+ }
+ },
+ {
+ "ename": "lsp-pyright",
+ "commit": "42a1aeef2b84b55e6e683066a3aed83331812476",
+ "sha256": "11dxq3419cq7lq2rnfka9kkkl4la627d0fki99djq6nrzddqf56p",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-pyright",
+ "unstable": {
+ "version": [
+ 20200810,
+ 354
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "lsp-mode"
+ ],
+ "commit": "9603dda12afaae9c82608c7d3762f98b24b8563f",
+ "sha256": "1xh0q356q7sy68m9syfbclabamdnw5y772inspn5y8640ig4rg21"
+ }
+ },
+ {
+ "ename": "lsp-python-ms",
+ "commit": "dd67aefa5a6df2d1388a7516e529e388615c8fe0",
+ "sha256": "1aifydzz7jv3bf9qfxj37isq40wirfgvd9h40cb5c9wq4v44j8ps",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-python-ms",
+ "unstable": {
+ "version": [
+ 20200811,
+ 1204
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "a884a9a4eb1a3acd3d70c776aec5e968bbdc1731",
+ "sha256": "02fws6ph1ikpx86709dswlag180m6b34nchqcsfcvx4zp7qg2wj2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "7a502e6c09456cbe8b5f6c64883c79f5ce08e5a9",
+ "sha256": "0rkxhm9lmvsalyzq96452cgpn5cqljw7b9d9xcxkkl2cwz1745f3"
+ }
+ },
+ {
+ "ename": "lsp-scala",
+ "commit": "fd494da0c0c2e2e58afc26d8e79aeeea41c6ee09",
+ "sha256": "1r8ha0q9gphcs6ihqswgvbhs9b6v6n1pvlqxwjnjwpdhsr5fsw1p",
+ "fetcher": "github",
+ "repo": "rossabaker/lsp-scala",
+ "unstable": {
+ "version": [
+ 20190604,
+ 1237
+ ],
+ "deps": [
+ "lsp-mode",
+ "sbt-mode"
+ ],
+ "commit": "06f189aa5cafe93cecbdaa234bccd900def7bc68",
+ "sha256": "05l563j1wz01rqwd4r639i88ln3bkn0m4swvj3hs11d70brlw981"
+ }
+ },
+ {
+ "ename": "lsp-sonarlint",
+ "commit": "ee843ab9cc6188b4f1b8f31ab4a4e69688fb36df",
+ "sha256": "19a189aaws5i6klzjbplh4wxq7z38399wpmkgcji5cc7anzrkzqn",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-sonarlint",
+ "unstable": {
+ "version": [
+ 20200702,
+ 2351
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "lsp-mode"
+ ],
+ "commit": "e0a27c07e886a147e2b8750471660af02e142086",
+ "sha256": "1kfgqdxynzpy98j1hc07zsygi0npw4xfm80jx3h30wyvxmgy7flp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "lsp-mode"
+ ],
+ "commit": "5f519612c6a10b189292083b04dcd652b64bc7d1",
+ "sha256": "04xs8n0lxx54hyj1y002ps52cxwb7s79k38q3dqzzbfax1nxwfw3"
+ }
+ },
+ {
+ "ename": "lsp-sourcekit",
+ "commit": "a1e15078916dc053ca2413a6afae51df22321e9e",
+ "sha256": "1n3lkpyk2mb8a5qc2h00d6dgbp4ws8pwzqljplnnm35sqg6an76k",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-sourcekit",
+ "unstable": {
+ "version": [
+ 20181216,
+ 1450
+ ],
+ "deps": [
+ "lsp-mode"
+ ],
+ "commit": "130f7a8f7a37869515953aa7715b3b969c3d7a0b",
+ "sha256": "0mz1wdxn31qngk98k924mwf4f5pb8v1y9jjl2sf4mrjw1wz2xsnb"
+ }
+ },
+ {
+ "ename": "lsp-treemacs",
+ "commit": "e1a78ef1dcec4ca9794002e6420108a7621efcfd",
+ "sha256": "0nq51n1h69mc4bn9pjimx12afba3k89cfsrbkcdmfypi433k1ga5",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-treemacs",
+ "unstable": {
+ "version": [
+ 20200815,
+ 1841
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "ht",
+ "lsp-mode",
+ "treemacs"
+ ],
+ "commit": "3f8ca910c8e8724f93d8268a91771a51427684ff",
+ "sha256": "0xnbw3j7n10wp6jbzrgrr0xfzilrlhrmmzs4d00y56g1fmqn3jja"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "ht",
+ "lsp-mode",
+ "treemacs"
+ ],
+ "commit": "08e256c45d2e95b510a98a8b88b0531e8785e519",
+ "sha256": "1z9cb7i546pbzvxii6lsj31jq8m70xrzscphl5z71vh93sydyhkb"
+ }
+ },
+ {
+ "ename": "lsp-ui",
+ "commit": "b7c78c9b07ede9949d14df74b188d4c1a3365196",
+ "sha256": "0fylav8b54g020z039zm1mx26d257715bfn9nnpw9i0b97539lqi",
+ "fetcher": "github",
+ "repo": "emacs-lsp/lsp-ui",
+ "unstable": {
+ "version": [
+ 20200816,
+ 841
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "lsp-mode",
+ "markdown-mode"
+ ],
+ "commit": "c39ae3713f95a2d86e11fd1f77e89a671d08d18a",
+ "sha256": "033ah4mz3pa6da3xdn6yk3lmkv6lanpj07b0icf30c6bp7rmk3il"
+ },
+ "stable": {
+ "version": [
+ 7,
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "lsp-mode",
+ "markdown-mode"
+ ],
+ "commit": "449f3a6b80a60d88c4ed300e69d64eb8e875f1c7",
+ "sha256": "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"
+ }
+ },
+ {
+ "ename": "lua-mode",
+ "commit": "5f3938b668cd3f362016dc7ba0acdaf39e96fb64",
+ "sha256": "12m9s7axj7cp2i1qqv3kqa3banvyxw3yd8y30r8fc2d0jcq75234",
+ "fetcher": "github",
+ "repo": "immerrr/lua-mode",
+ "unstable": {
+ "version": [
+ 20200508,
+ 1316
+ ],
+ "commit": "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c",
+ "sha256": "1bwyyp9fbvy0p4f3mmbqc0plxrcm0ag2r3zb74gb5k2vcxi2vdw4"
+ },
+ "stable": {
+ "version": [
+ 20151025
+ ],
+ "commit": "bdf121b2c05bc74d3d7961a91d7afeb6176e0f45",
+ "sha256": "1qawjd0nbj1c142van7r01pmq74vkzcvnn27jgn79wwhplp9gm99"
+ }
+ },
+ {
+ "ename": "luarocks",
+ "commit": "d5abd2b52a071ab206d40057dc85c891183204ea",
+ "sha256": "05srrk9gmv1vhq7m5bjhh2hl2siis04j15b31x0sgknxh3ybr33x",
+ "fetcher": "github",
+ "repo": "emacs-pe/luarocks.el",
+ "unstable": {
+ "version": [
+ 20170430,
+ 2305
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "cee27ba0716edf338077387969883226dd2b7484",
+ "sha256": "0rdsjmmi95agb859997qdhbk0dns2jyx2mlg8rync58wna70nmbn"
+ }
+ },
+ {
+ "ename": "lush-theme",
+ "commit": "8b29b2f36852e711ce3520d71e83921a1dcb9ccf",
+ "sha256": "03kqws8dzm0ay5k86f4v7g2g2ygwk4fzmz2vyzhzhbsj8hrniq9p",
+ "fetcher": "github",
+ "repo": "andre-richter/emacs-lush-theme",
+ "unstable": {
+ "version": [
+ 20180816,
+ 2200
+ ],
+ "commit": "645e1959143532df8f7ef90e1184e9556df18af7",
+ "sha256": "0j9gbr3chaxc16yysyaaa1n2cvlrdc1y063l1kxj0mf435d1l7py"
+ }
+ },
+ {
+ "ename": "lusty-explorer",
+ "commit": "efedaa3b1de5f6406c7dcd842eee42eefaf8ab50",
+ "sha256": "0xqanmmkyvzcg2g4zvascq5j004bqz7vmz1a19c25g9cs3rdh0ps",
+ "fetcher": "github",
+ "repo": "sjbach/lusty-emacs",
+ "unstable": {
+ "version": [
+ 20200602,
+ 228
+ ],
+ "commit": "a746514ccd8df71fc920ba8ad0aa8dca58702631",
+ "sha256": "0sjs3gn7mrmm60v0yi77fha9b6wdqfnydqz9f4dg2fvwj4a9w2rr"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 1
+ ],
+ "commit": "8ece9b1379a73e7dc0b6e682dd5a573f88a5cb32",
+ "sha256": "09zvn5fgjy27rmxziylvl83zdqmwa1jjndxmxhgsyh9mklisz32p"
+ }
+ },
+ {
+ "ename": "lv",
+ "commit": "5114349617617673d5055fe28cb8f8c86cf41f83",
+ "sha256": "1lkm40rwpj9hmckng9bz5g4jbx9g9i3wlqgl6rq0m6i14syr69v4",
+ "fetcher": "github",
+ "repo": "abo-abo/hydra",
+ "unstable": {
+ "version": [
+ 20200507,
+ 1518
+ ],
+ "commit": "112e689f75b59398d8eca79ac6562dca12b8a959",
+ "sha256": "0famsjgsgd61fm3l5m9mqg4szf8lcgcb57paxlg8rxnsmxmwga7d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 15,
+ 0
+ ],
+ "commit": "f27fce1b2f0a9162e159557bdeb2c0c94defb4d2",
+ "sha256": "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"
+ }
+ },
+ {
+ "ename": "lxc",
+ "commit": "7c16c08c388e3280f617d0768bc1cd75c5897768",
+ "sha256": "1rv1ybmbjx7n3cavx21nzmvckw63q3jmjsfdr2pcgavrr2ck6lka",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-lxc",
+ "unstable": {
+ "version": [
+ 20140410,
+ 2022
+ ],
+ "commit": "88bed56c954d1edd9ff5ce0ced2c02dcf9f71835",
+ "sha256": "090gk0il4yyypzjbh2qrjdaldwf90fi30impmh4zcfl73bic5q9q"
+ }
+ },
+ {
+ "ename": "lxc-tramp",
+ "commit": "2464020a5b3d89bddcd122cad81fed84ded9b117",
+ "sha256": "0rksh7k30kh3i23c98qinffz2zj6h1bshaw994hwy8qwgm38vx61",
+ "fetcher": "github",
+ "repo": "montag451/lxc-tramp",
+ "unstable": {
+ "version": [
+ 20200414,
+ 1445
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1585e55a5deb89e2f4e30a0ad9e0f121d1e0ebcb",
+ "sha256": "1zs4wcbxqx8275j2q1118ipqw7532cd6cdy2whw22ck4z5w47vfg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1585e55a5deb89e2f4e30a0ad9e0f121d1e0ebcb",
+ "sha256": "1zs4wcbxqx8275j2q1118ipqw7532cd6cdy2whw22ck4z5w47vfg"
+ }
+ },
+ {
+ "ename": "lxd-tramp",
+ "commit": "ef7778f5961eaaa356e5e383ef2323c5713e5bf2",
+ "sha256": "0i611z4pksrf4zf0h8wnradqbcad5f43dq8bg3dsik0jdcjlvg5p",
+ "fetcher": "github",
+ "repo": "onixie/lxd-tramp",
+ "unstable": {
+ "version": [
+ 20181023,
+ 7
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f335c76245f62b02cf67a9376eca6f3863c8a75a",
+ "sha256": "0byhafxcc4qw08b16fd00nkyqz1jmq7js0l5q4lda4xdpfgl1a65"
+ }
+ },
+ {
+ "ename": "lyrics",
+ "commit": "b04c8f3dfa9fc07cc0ff3df5c4069f864b6db92e",
+ "sha256": "0kj8v8cg4yqnz0v1nhq41jxjgd4ivqd6lsr1v5cqhg4m0r7f2nzc",
+ "fetcher": "github",
+ "repo": "emacs-pe/lyrics.el",
+ "unstable": {
+ "version": [
+ 20180812,
+ 1841
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "d0b920be634a5be81ad49418cfaada0f0a57d6cd",
+ "sha256": "0926avnlxi8qkr1faplk1aj4lji0ixa4lv81badi5zsmpyyrwmm7"
+ }
+ },
+ {
+ "ename": "m-buffer",
+ "commit": "c34d02682e87c9978a3583bd903dcac5da5b41d5",
+ "sha256": "17smq7wlidsls870hla5b94xq2pwk24b88jvrbbcqw6f5z3ypf94",
+ "fetcher": "github",
+ "repo": "phillord/m-buffer-el",
+ "unstable": {
+ "version": [
+ 20170407,
+ 2141
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "8681342aaffa187e5c54945ab91b812965a96d19",
+ "sha256": "040g7l0r4bxz4ynp4zxy80jsa6x2f48z8rylc41fqxiblasmh0af"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 15
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "6eb1d2535a82707a83733173bc400a0d8e520c80",
+ "sha256": "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"
+ }
+ },
+ {
+ "ename": "mac-pseudo-daemon",
+ "commit": "6104efc035bcf469d133ab9a2caf42c9d4482334",
+ "sha256": "12fwrcnwzsfms42rzv4wif5yzx3gnsz8yzdcgkpl37kkx85iy8v0",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/mac-pseudo-daemon",
+ "unstable": {
+ "version": [
+ 20200215,
+ 513
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "703ee41303dc251b7672b7cba5aeb6aa54a76c90",
+ "sha256": "0cplbz7mc2zrxfk8g349ahb7gzli2hn5kda9155nbk8dw74xmj7d"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "564b006835facc4a8df247d8a47ab1030d7e7beb",
+ "sha256": "1ilqxl1851rg9v6ixi924xhzykc3c34f4nq1x0vyyq5b9m2fpb27"
+ }
+ },
+ {
+ "ename": "maces-game",
+ "commit": "2c9f33b926ecec48a43ba4f0484c687a7349ce50",
+ "sha256": "0wz91dsa0w4xlkl5lbdr8k4pgkgalsqcy27sd0i8xswq3wwiy0ip",
+ "fetcher": "github",
+ "repo": "pawelbx/maces-game",
+ "unstable": {
+ "version": [
+ 20170903,
+ 1551
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "c0fb795f5642467ea528d2f04d904547e8a77ecd",
+ "sha256": "1sf1h5660fd3mfcca3h1fqk3xssgigkil26wz1kp1kvxfx9lm31m"
+ }
+ },
+ {
+ "ename": "macro-math",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "072ycszl4cjc9nvv4axsgyfzz9djpgh4y1xqfr1nxi41nsdfc9kn",
+ "fetcher": "github",
+ "repo": "nschum/macro-math.el",
+ "unstable": {
+ "version": [
+ 20130328,
+ 1604
+ ],
+ "commit": "216e59371e9ee39c34117ba79b9acd78bb415750",
+ "sha256": "119c77s3qp1vqc5m2yf7m4s81aphkhsvsnwqmpq6xl08r3592zxz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "105e03c80290d1b88984b2d265a149a13d722920",
+ "sha256": "0dgsl1x6r8m9vvff1ia0kmz21h0dji2jl5cqlpx1m947zh45dahj"
+ }
+ },
+ {
+ "ename": "macrostep",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1h1gag21x05a14j0wbg0lg502fq2hbqfhjlg05kysw9f870whfq2",
+ "fetcher": "github",
+ "repo": "joddie/macrostep",
+ "unstable": {
+ "version": [
+ 20161120,
+ 2106
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267",
+ "sha256": "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1e2593279f3722e31d8a8f07e297a5c546586cba",
+ "sha256": "0g9bnq4p3ffvva30hpll80dn3i41m51mcvw3qf787zg1nmc5a0j6"
+ }
+ },
+ {
+ "ename": "madhat2r-theme",
+ "commit": "44a382a388821908306c0b8350fba91218515e1b",
+ "sha256": "0y588skd6c2ykyp54d38ibwrqglnaanr15d45d51cvcvp9k7x508",
+ "fetcher": "github",
+ "repo": "madhat2r/madhat2r-theme",
+ "unstable": {
+ "version": [
+ 20170203,
+ 30
+ ],
+ "commit": "6b387f09de055cfcc15d74981cd4f32f8f9a7323",
+ "sha256": "1nnjdqqbarzv62ic3ddc2z9wmh93zjia4nvfjmji8213dngrrf88"
+ }
+ },
+ {
+ "ename": "mag-menu",
+ "commit": "00043412ffa4e434de9679204b9b3d2602e76ae0",
+ "sha256": "1r1yisjnqxl9llpf91rwqp4q47jc4qp32xnkl8wzsgr0r2qf5yk2",
+ "fetcher": "github",
+ "repo": "chumpage/mag-menu",
+ "unstable": {
+ "version": [
+ 20150505,
+ 1850
+ ],
+ "deps": [
+ "splitter"
+ ],
+ "commit": "9b9277021cd09fb1dba64b1d2a00705d20914bd6",
+ "sha256": "1flamyk7z3r723cczqra0f4yabc6kmgwjaw2bvs3kisppqmmz72g"
+ }
+ },
+ {
+ "ename": "magic-filetype",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "0f0j8fgh2gpkarz9308pns0d89wc2dchyim6hbixkdpqzg9gskc3",
+ "fetcher": "github",
+ "repo": "emacs-php/magic-filetype.el",
+ "unstable": {
+ "version": [
+ 20180219,
+ 1552
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "019494add5ff02dd36cb3f500142fc51125522cc",
+ "sha256": "1hw77d4wgqrms8rvkv3xd50v4y9qjvm7cpz5rkgmvizs34pjqy22"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "019494add5ff02dd36cb3f500142fc51125522cc",
+ "sha256": "1hw77d4wgqrms8rvkv3xd50v4y9qjvm7cpz5rkgmvizs34pjqy22"
+ }
+ },
+ {
+ "ename": "magic-latex-buffer",
+ "commit": "07e240ebe71d389d314c4a27bbcfe1f88b215c3b",
+ "sha256": "0xm4vk4aggyfw96cgya5cp97jzx5ha0xwpf2yfh7c3m8d9cca4y8",
+ "fetcher": "github",
+ "repo": "zk-phi/magic-latex-buffer",
+ "unstable": {
+ "version": [
+ 20200816,
+ 648
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8a6e33f79a930d2c1977409f1980afc4cc99b909",
+ "sha256": "1f052yx0fib6vv2kqr21fv1nlsxc1b0mlcxasppxr6kig1jbj2x9"
+ }
+ },
+ {
+ "ename": "magik-mode",
+ "commit": "291cce8e8e3475348b446ba38833eb1e37d4db65",
+ "sha256": "1d6n7mpwavrajcgai6j0y5khhgc4jaag1ig1xx8w04mr48xrjxqk",
+ "fetcher": "github",
+ "repo": "roadrunner1776/magik",
+ "unstable": {
+ "version": [
+ 20200304,
+ 1323
+ ],
+ "commit": "e54f934952cde3f96d6a131968295d993b3cf624",
+ "sha256": "1yivbgbcy5qvs55dn5lx08mbkmsd4mriymas9jgh7rn6hl14x8hj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "d280836c77fd263ee404273d7c21f47395a657f9",
+ "sha256": "0ibasyhqc6zgvzvkfyfvx7g6f18z4n7hy2lqjvyckh40cqpzpwj0"
+ }
+ },
+ {
+ "ename": "magit",
+ "commit": "15a5916ec8e9062e41b1dd7d4f5535a86c2170a3",
+ "sha256": "1bcv0yv5l51j3xyli9rq3zqjkf0b9w7yd0kykfmy1dp1hx39qf8r",
+ "fetcher": "github",
+ "repo": "magit/magit",
+ "unstable": {
+ "version": [
+ 20200816,
+ 955
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "git-commit",
+ "transient",
+ "with-editor"
+ ],
+ "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+ "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 90,
+ 1
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "ghub",
+ "git-commit",
+ "magit-popup",
+ "with-editor"
+ ],
+ "commit": "791901b2f1d26fa0a383147fe77948a9abc753da",
+ "sha256": "1kw94sdczswsyzn1zlk5s5aplpdv4qd7qcqc5zfxsmsfwm3jacl4"
+ }
+ },
+ {
+ "ename": "magit-annex",
+ "commit": "cec5af50ae7634cc566adfbfdf0f95c3e2951c0c",
+ "sha256": "1ri58s1ly416ksmb7mql6vnmx7hq59lmhi7qijknjarw7qs3bqys",
+ "fetcher": "github",
+ "repo": "magit/magit-annex",
+ "unstable": {
+ "version": [
+ 20200516,
+ 2028
+ ],
+ "deps": [
+ "cl-lib",
+ "magit"
+ ],
+ "commit": "c5ecb4b53ea2461e737ea00242ef1e69e35da398",
+ "sha256": "0f1psh03hsb57h3r66zfa0jmwkky12121lhvpynlgj330ryxl5bj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "magit"
+ ],
+ "commit": "21cb2927d672cc6bf631d8373a361b1766ccf004",
+ "sha256": "07r0d2i1hws63wfv1jys63r3lmrl4ywwi76gi7srwhzhqdr1af0n"
+ }
+ },
+ {
+ "ename": "magit-circleci",
+ "commit": "b633d8ce52f85517f87ed00a65398af50058286b",
+ "sha256": "05aq0bnai8swpwh53p3a8a52n81friksjflssl0k1w7f5ffq84ya",
+ "fetcher": "github",
+ "repo": "abrochard/magit-circleci",
+ "unstable": {
+ "version": [
+ 20191209,
+ 2113
+ ],
+ "deps": [
+ "dash",
+ "magit",
+ "transient"
+ ],
+ "commit": "3425ad5b16cb48d6802b7e9ed044b4cd7a99c785",
+ "sha256": "10iinizl99aivrf9zihykabb5lyg62kxbmydwaf7swzxf4dgxn2k"
+ }
+ },
+ {
+ "ename": "magit-delta",
+ "commit": "6e045d09ceec253bbd033b561ab077d897e9b6b2",
+ "sha256": "0r7g8p7g348cfz31q0mgxxa591n8clwpaack487ycc1nzsqbj726",
+ "fetcher": "github",
+ "repo": "dandavison/magit-delta",
+ "unstable": {
+ "version": [
+ 20200518,
+ 2205
+ ],
+ "deps": [
+ "magit",
+ "xterm-color"
+ ],
+ "commit": "d988abd99882c6b89f21f2746f721a4d7ece6ad4",
+ "sha256": "1dj2kw2wzxnms4z54pk7qngylvy903jwd84x3k5ys3wsydmk4bbf"
+ }
+ },
+ {
+ "ename": "magit-diff-flycheck",
+ "commit": "a5d28982425519157a6116c077fbc4be7cfa53be",
+ "sha256": "1gnjvhxy48ah84cglq6653wgb07g0gry0672334ad3cwc5b45kdk",
+ "fetcher": "github",
+ "repo": "ragone/magit-diff-flycheck",
+ "unstable": {
+ "version": [
+ 20190524,
+ 551
+ ],
+ "deps": [
+ "flycheck",
+ "magit",
+ "seq"
+ ],
+ "commit": "28acf74f59e385865746cccf4b1e4c4025ae9433",
+ "sha256": "178yby09swm3hlj300vkk3366wjwwf6zijlvphn6drsiw7dmccqm"
+ }
+ },
+ {
+ "ename": "magit-filenotify",
+ "commit": "ca5541d2ce3553e9ade2c1ec1c0d78103dfd0c4d",
+ "sha256": "1ihk5yi6psqkccpi2bq2h70kn7k874zl7wcinjaq21lirk4z7bvn",
+ "fetcher": "github",
+ "repo": "ruediger/magit-filenotify",
+ "unstable": {
+ "version": [
+ 20151116,
+ 2340
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "c0865b3c41af20b6cd89de23d3b0beb54c8401a4",
+ "sha256": "0nkxxhxkhy314jv1l3hza84vigl8q7fc8hjjvrx58gfgsfgifx6r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "575c4321f61fb8f25e4779f9ffd4514ac086ae96",
+ "sha256": "1vn6x53kpwv3zf2b5xjswyz6v853r8b9dg88qhwd2h480hrx6kal"
+ }
+ },
+ {
+ "ename": "magit-find-file",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1y66nsq1hbv1sb4n71gdxv7p1rz37vd9lkf7zl7avy0dchs499ik",
+ "fetcher": "github",
+ "repo": "bradwright/magit-find-file.el",
+ "unstable": {
+ "version": [
+ 20150702,
+ 830
+ ],
+ "deps": [
+ "dash",
+ "magit"
+ ],
+ "commit": "c3ea91bab37d10a814a829728ec972811f728d60",
+ "sha256": "1j3jsrp0qpaa2xd98d1g9z0zc4b93knwajrlnlsc7l6g0vlfsddb"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "magit"
+ ],
+ "commit": "035da838b1a19e7a5ee135b4ca8475f4e235b61e",
+ "sha256": "1jlww053s580d7rlvmr1dl79wxasa0hhh2jnwb1ra353d6h3a73w"
+ }
+ },
+ {
+ "ename": "magit-gerrit",
+ "commit": "f7cc000debed666ad6800e31c114eedb7384317c",
+ "sha256": "1iwvg10ly6dlf8llz9f8d4qfdbvd3s28wf48qgn1wjlxpka6zrd4",
+ "fetcher": "github",
+ "repo": "terranpro/magit-gerrit",
+ "unstable": {
+ "version": [
+ 20160226,
+ 930
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "ece6f369694aca17f3ac166ed2801b432acfe20d",
+ "sha256": "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "699c5c39c6dbdc8d730721eaf1491f982dd78142",
+ "sha256": "0ym24gjd6c04zry08abcb09zvjbgj8nc1j12q0r51fhzzadxcxbb"
+ }
+ },
+ {
+ "ename": "magit-gh-pulls",
+ "commit": "9b54fe4f51820c2f707e1f5d8a1128fff19a319c",
+ "sha256": "0qn9vjxi33pya9s8v3g95scmhwrn2yf5pjm7d24frq766wigjv8d",
+ "fetcher": "github",
+ "repo": "sigma/magit-gh-pulls",
+ "unstable": {
+ "version": [
+ 20191230,
+ 1944
+ ],
+ "deps": [
+ "gh",
+ "magit",
+ "pcache",
+ "s"
+ ],
+ "commit": "57f3a5158bbc7bfd169ee136fde351cce999e0ca",
+ "sha256": "1halhivvfklxscg1xxk461wgjlh3vl8g991ydj93450b6mw3azaq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 3
+ ],
+ "deps": [
+ "gh",
+ "magit",
+ "pcache",
+ "s"
+ ],
+ "commit": "d526f4c9ee1709c79f8a4630699ce1f25ae054e7",
+ "sha256": "11fd3c7wnqy08khj6za8spbsm3k1rqqih21lbax2iwvxl8jv4dv0"
+ }
+ },
+ {
+ "ename": "magit-gitflow",
+ "commit": "dfaeb33dec2c75d21733b6e51d063664c6544e4d",
+ "sha256": "0wsqq3xpqqfak4aqwsh5sxjb1m62z3z0ysgdmnrch3qsh480r8vf",
+ "fetcher": "github",
+ "repo": "jtatarik/magit-gitflow",
+ "unstable": {
+ "version": [
+ 20170929,
+ 824
+ ],
+ "deps": [
+ "magit",
+ "magit-popup"
+ ],
+ "commit": "cc41b561ec6eea947fe9a176349fb4f771ed865b",
+ "sha256": "0jz69wrrzvqadaphmjrr146nzvmphsbl7rmc3ccnpw1gw6gnz81f"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 3
+ ],
+ "deps": [
+ "magit",
+ "magit-popup"
+ ],
+ "commit": "cc41b561ec6eea947fe9a176349fb4f771ed865b",
+ "sha256": "0jz69wrrzvqadaphmjrr146nzvmphsbl7rmc3ccnpw1gw6gnz81f"
+ }
+ },
+ {
+ "ename": "magit-imerge",
+ "commit": "e78a5c27eedfc9b1d79e37e8d333c5d253f31a3c",
+ "sha256": "0rycmbsi2s7rjqfpcv794vhkybav7d8ikzdaxai36szxpg9pzhj4",
+ "fetcher": "github",
+ "repo": "magit/magit-imerge",
+ "unstable": {
+ "version": [
+ 20200516,
+ 2029
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "f4b88f0c127faa154f138907bf4e98b1baf12fb6",
+ "sha256": "10l0z0c0q6sbf3id5dajws30cxzjvi5rgx1hl8jf6nxr5zcmcmm1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "5b45efa65317886640c339d1c71d2b9e00e98b77",
+ "sha256": "02597aq00fq7b9284kq7s55ddrjb6xhh1l280gq3czi75658d3db"
+ }
+ },
+ {
+ "ename": "magit-lfs",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1xc32f2k3dwpqncnrr3xyr2963ywa0006z3c01nypxgs1xkfsbdx",
+ "fetcher": "github",
+ "repo": "Ailrun/magit-lfs",
+ "unstable": {
+ "version": [
+ 20190831,
+ 118
+ ],
+ "deps": [
+ "dash",
+ "magit"
+ ],
+ "commit": "75bf6d3310eae24889589a09e96a4a855e1a11c4",
+ "sha256": "0dy2p6wyp5xqx4jnh1sf3v47dv09k7vv3c9mhjapcr1jpbpqj87w"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "magit"
+ ],
+ "commit": "75bf6d3310eae24889589a09e96a4a855e1a11c4",
+ "sha256": "0dy2p6wyp5xqx4jnh1sf3v47dv09k7vv3c9mhjapcr1jpbpqj87w"
+ }
+ },
+ {
+ "ename": "magit-libgit",
+ "commit": "0580362be495894c61b99b7efb4cfa435cc0dd72",
+ "sha256": "0fi3w2f79qn3hf5rw5jp8128xbk5r0xwwwb56zcjn2na02dynfb1",
+ "fetcher": "github",
+ "repo": "magit/magit",
+ "unstable": {
+ "version": [
+ 20200102,
+ 2204
+ ],
+ "deps": [
+ "libgit",
+ "magit"
+ ],
+ "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+ "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
+ }
+ },
+ {
+ "ename": "magit-org-todos",
+ "commit": "84480cad490cab2f087a484ed7b9d3d3064bbd29",
+ "sha256": "0yywgzm2jzvsccm9h0a0s1q8fag9dfajnznwk6iqz5pywq5mxijr",
+ "fetcher": "github",
+ "repo": "danielma/magit-org-todos.el",
+ "unstable": {
+ "version": [
+ 20180709,
+ 1950
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "9ffa3efb098434d837cab4bacd1601fdfc6fe999",
+ "sha256": "0kxz5q8q5np4zm1ls4hx1h53vlnhj0mnmbq12p5nzk5zcxycbcpz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "0bfa36bbc50e62de0a3406031cb93e2f57dcdc55",
+ "sha256": "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"
+ }
+ },
+ {
+ "ename": "magit-p4",
+ "commit": "440d47ca465845eaa601ca8a6e4b15fc197e522b",
+ "sha256": "19p7h3a21jjr2h52ika14lyczdv6z36gl7hk1v17bffffac8q069",
+ "fetcher": "github",
+ "repo": "qoocku/magit-p4",
+ "unstable": {
+ "version": [
+ 20170414,
+ 1246
+ ],
+ "deps": [
+ "cl-lib",
+ "magit",
+ "magit-popup",
+ "p4"
+ ],
+ "commit": "cdc05f2d564409baac9ca15b1a2a0110a6ff12b7",
+ "sha256": "0s2zmfw449gyc8lf8cqwm47wnqy9g5nai72agvapam2h5613mx4i"
+ }
+ },
+ {
+ "ename": "magit-patch-changelog",
+ "commit": "caf023c2af4c09c04de7bc0338fc1d07da895ddd",
+ "sha256": "1lkgrnhiis0rwx14pcvhi5r775mgysb04srnvqfsihdn31bqjh6g",
+ "fetcher": "github",
+ "repo": "dickmao/magit-patch-changelog",
+ "unstable": {
+ "version": [
+ 20200217,
+ 1202
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "876c780bdb676b6ece64861704e199b94f33cf71",
+ "sha256": "0wkjh9s67vs90lysdx3gjyrax9mlbzfvs563pzr6ab3l4p5pgnsw"
+ }
+ },
+ {
+ "ename": "magit-popup",
+ "commit": "0263ca6aea7bf6eae26a637454affbda6bd106df",
+ "sha256": "1pv5slspcfmi10bnnw6acpijn7vkn2h9iqww3w641v41d3p37jmv",
+ "fetcher": "github",
+ "repo": "magit/magit-popup",
+ "unstable": {
+ "version": [
+ 20200719,
+ 1015
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "d8585fa39f88956963d877b921322530257ba9f5",
+ "sha256": "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 13,
+ 3
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "d8585fa39f88956963d877b921322530257ba9f5",
+ "sha256": "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"
+ }
+ },
+ {
+ "ename": "magit-rbr",
+ "commit": "10427817a1fc2fa8aaf11897719cbb851d9e4b15",
+ "sha256": "086vb7xrgyrazc3a7bpyhy219szvrvl59l8wlqakimx0mav7qipr",
+ "fetcher": "github",
+ "repo": "fanatoly/magit-rbr",
+ "unstable": {
+ "version": [
+ 20181009,
+ 2016
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "029203b3e48537205052a058e964f058cd802c3c",
+ "sha256": "1z48m0al8bb4ppic483jvika9q47c67g7fazk25431sr5rv9h4d2"
+ }
+ },
+ {
+ "ename": "magit-reviewboard",
+ "commit": "f3715fa1df69350205e4269b7090c46b343d8bf0",
+ "sha256": "1sxqij3370vn6ap52lf4hdlcxfj9mj17sb5r4kk5msjbw3bzdmzr",
+ "fetcher": "github",
+ "repo": "jtamagnan/magit-reviewboard",
+ "unstable": {
+ "version": [
+ 20200727,
+ 1748
+ ],
+ "deps": [
+ "magit",
+ "request",
+ "s"
+ ],
+ "commit": "aceedff88921f1dfef8a6b2fb18fe316fb7223a8",
+ "sha256": "0agk53san02n49jna6g2ndw4wbqkpr0kfd4ravbs9b4w6l3r30xb"
+ }
+ },
+ {
+ "ename": "magit-section",
+ "commit": "92cab05cc5ba4153be97648d6fcd95417871e9c7",
+ "sha256": "1v9g8y9r0lmp54hgaxgjqr3x86l7cz4wvrrjbpij7aai40ddqdp3",
+ "fetcher": "github",
+ "repo": "magit/magit",
+ "unstable": {
+ "version": [
+ 20200816,
+ 955
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+ "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 90,
+ 1
+ ],
+ "commit": "791901b2f1d26fa0a383147fe77948a9abc753da",
+ "sha256": "1kw94sdczswsyzn1zlk5s5aplpdv4qd7qcqc5zfxsmsfwm3jacl4"
+ }
+ },
+ {
+ "ename": "magit-stgit",
+ "commit": "72a38bbc5bba53dfb971f17213287caf0d190db0",
+ "sha256": "1spli6yq258zwx95y16s27hr7hlc2h0kc9mjnvjjl13y2l6shm0i",
+ "fetcher": "github",
+ "repo": "emacsorphanage/magit-stgit",
+ "unstable": {
+ "version": [
+ 20190313,
+ 1158
+ ],
+ "commit": "8294f34e4927798d9db883cafe946a9041b7e331",
+ "sha256": "16i67h0f2w6gaf34w6v50ahmb3358wqhgnijfmzyd6j19zw39d3d"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 0
+ ],
+ "commit": "8294f34e4927798d9db883cafe946a9041b7e331",
+ "sha256": "16i67h0f2w6gaf34w6v50ahmb3358wqhgnijfmzyd6j19zw39d3d"
+ }
+ },
+ {
+ "ename": "magit-svn",
+ "commit": "a1ff188d509aec104e9d21a640cf5bc3addedf00",
+ "sha256": "1dww5fc5phai3wk9lp85h6y08ai3vxgggsqj78a3mlcn2adwwc01",
+ "fetcher": "github",
+ "repo": "emacsorphanage/magit-svn",
+ "unstable": {
+ "version": [
+ 20190821,
+ 1455
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "2cff1a30a30f2b3963342a7d185ec13fc12279c3",
+ "sha256": "0c4bn9wjjwb0f6hzh7d6vz33lrf75kal62329drzmbh1sla2s3h3"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 1
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "c833903732a14478f5c4cfc561bae7c50671b36c",
+ "sha256": "01kcsc53q3mbhgjssjpby7ypnhqsr48rkl1xz3ahaypmlp929gl9"
+ }
+ },
+ {
+ "ename": "magit-tbdiff",
+ "commit": "ad97eea866c8732e3adc17551d37a6d1ae511e6c",
+ "sha256": "1wydmw4f1072k8frk8mi8aaky7dndinq8n7kn10q583bjlxgw80r",
+ "fetcher": "github",
+ "repo": "magit/magit-tbdiff",
+ "unstable": {
+ "version": [
+ 20200519,
+ 418
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "e52e8ab4906996c410f6c6db890b9bfe0951d4ce",
+ "sha256": "0mp466bnm63pas8z0p6b0684i3rakb6cs5xzkz8jv3z3x34ak12c"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "4273bfab1d2b620d68d890fbaaa78c56cf210059",
+ "sha256": "0d1cn0nshxnvgjvl9j7wsai75pvsxmrmkdj57xdpyggwxgcpl1m4"
+ }
+ },
+ {
+ "ename": "magit-todos",
+ "commit": "b4544ab55d2c8b8c3b7eb739b9fb90ebb246d68b",
+ "sha256": "0vqmbw0qj8a5wf4ig9hgc0v3l1agdkvgprzjv178hs00297br2s8",
+ "fetcher": "github",
+ "repo": "alphapapa/magit-todos",
+ "unstable": {
+ "version": [
+ 20200310,
+ 28
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "f",
+ "hl-todo",
+ "magit",
+ "pcre2el",
+ "s"
+ ],
+ "commit": "a0e5d1f3c7dfcb4f18c1b0d57f1746a4872df5c6",
+ "sha256": "0v11ngxwndaylmzqm5rrvch7hsfcm15xhih13ckm6kn2skqdzh40"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 2
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "f",
+ "hl-todo",
+ "magit",
+ "pcre2el",
+ "s"
+ ],
+ "commit": "65db450bdb766f12e5aa31ae1cecbc0716e07218",
+ "sha256": "0a4ghad93nmk4i0aq25c3g5lwxi7z327v0z10zi8yyja5daipsdp"
+ }
+ },
+ {
+ "ename": "magit-topgit",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "1194hdcphir4cmvzg9cxrjiyg70hr9zmml2rljih94vl7zrw7335",
+ "fetcher": "github",
+ "repo": "greenrd/magit-topgit",
+ "unstable": {
+ "version": [
+ 20160313,
+ 1954
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "11489ea798bc88d0ea5244bbf725285eedfefbef",
+ "sha256": "1y7ss475ibjx354m73jn5dxd98g33jcijx48b30p45rbm6ha3i8q"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 2
+ ],
+ "deps": [
+ "magit"
+ ],
+ "commit": "11489ea798bc88d0ea5244bbf725285eedfefbef",
+ "sha256": "1y7ss475ibjx354m73jn5dxd98g33jcijx48b30p45rbm6ha3i8q"
+ }
+ },
+ {
+ "ename": "magit-vcsh",
+ "commit": "9ee290ad797511ccc4ee2e1d3d773672796da3f9",
+ "sha256": "025ggdb40js7nmg0fqw3ncki4krswwyvl4q1m8250k09g5r57zij",
+ "fetcher": "gitlab",
+ "repo": "stepnem/magit-vcsh-el",
+ "unstable": {
+ "version": [
+ 20190817,
+ 2014
+ ],
+ "deps": [
+ "magit",
+ "vcsh"
+ ],
+ "commit": "fcff128cdbe3ef547dc64f2496cb6405b8ee21ca",
+ "sha256": "0x0dwl163qpws5d6h628if8iyzzxig9f7j1n7q6fxkbymx0js0vj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "magit",
+ "vcsh"
+ ],
+ "commit": "fcff128cdbe3ef547dc64f2496cb6405b8ee21ca",
+ "sha256": "0x0dwl163qpws5d6h628if8iyzzxig9f7j1n7q6fxkbymx0js0vj"
+ }
+ },
+ {
+ "ename": "magithub",
+ "commit": "e555b46f5de7591aa8e10a7cf67421e26a676db8",
+ "sha256": "11par5rncsa866gazdw98d4902rvyjnnwbiwpndlyh06ak0lryab",
+ "fetcher": "github",
+ "repo": "vermiculus/magithub",
+ "unstable": {
+ "version": [
+ 20190512,
+ 2316
+ ],
+ "deps": [
+ "ghub+",
+ "git-commit",
+ "magit",
+ "markdown-mode",
+ "s"
+ ],
+ "commit": "9fb9c653d0dad3da7ccff3ae321fa6e54c08f41b",
+ "sha256": "047dyiysdhf81qfcmmaxzixgxy35fjm9wyhwwv9630s5b83fh094"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 7
+ ],
+ "deps": [
+ "ghub+",
+ "git-commit",
+ "magit",
+ "markdown-mode",
+ "s"
+ ],
+ "commit": "81e75cbbbac820a3297e6b6a1e5dc6d9cfe091d0",
+ "sha256": "1iq8c939c0a6v8gq31vcjw6nxwnz4fpavcd6xf4h2rb6rkmxmhvl"
+ }
+ },
+ {
+ "ename": "magma-mode",
+ "commit": "0a82892371eb390d8a802919458c6c2baacd1597",
+ "sha256": "134zm9mg7p0qcqr0m7wsxnwqxr64s9z1njxmvjhsbxi3rhaivcsl",
+ "fetcher": "github",
+ "repo": "ThibautVerron/magma-mode",
+ "unstable": {
+ "version": [
+ 20200312,
+ 1306
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f"
+ ],
+ "commit": "0d810239be625b3f8a82f4e27ffd311fc2e1841e",
+ "sha256": "0ibr94vlpa6hnycgssbm5fip0zvrw8rx24mvmq36a4qgd6qi7g4j"
+ }
+ },
+ {
+ "ename": "magnatune",
+ "commit": "6dfd5ae62718a32f8c5af4048af06cb53961d7df",
+ "sha256": "0fmxlrq5ls6fpbk5fv67aan8gg1c61i1chfw5lhf496pwqzq901d",
+ "fetcher": "github",
+ "repo": "eikek/magnatune.el",
+ "unstable": {
+ "version": [
+ 20151030,
+ 1935
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "605b01505ba30589c77ebb4c96834b5072ccbdd4",
+ "sha256": "1hqz26zm4bdz5wavna4j9yia3ns4z19dnszl7k0lcpgbgmb0wh8y"
+ }
+ },
+ {
+ "ename": "majapahit-theme",
+ "commit": "c9b793878de4107bb646652d09d8799aef8b97e8",
+ "sha256": "04k2smrya27rrjlzvnl3a6llg8vj8x4mm9qyk4kwrmckhd6jd68s",
+ "fetcher": "gitlab",
+ "repo": "franksn/majapahit-theme",
+ "unstable": {
+ "version": [
+ 20160817,
+ 1848
+ ],
+ "commit": "77c96df7619666b2102d90d452eeadf04adc89a6",
+ "sha256": "0wnhfdk2zwxqfh8d74xmszqgibcgxiq825pq8381zg4nkz5cckfb"
+ }
+ },
+ {
+ "ename": "major-mode-hydra",
+ "commit": "865917fcc75c4118afc89b8bcc20ebdb6302f15d",
+ "sha256": "0654wnsw38sca97kvp8p3k1h6r91iqs873gcjaaxd7a96sisvafd",
+ "fetcher": "github",
+ "repo": "jerrypnz/major-mode-hydra.el",
+ "unstable": {
+ "version": [
+ 20191030,
+ 2354
+ ],
+ "deps": [
+ "dash",
+ "pretty-hydra"
+ ],
+ "commit": "20362323f66883c1336ffe70be24f91509addf54",
+ "sha256": "16krmj2lnk7j5ygdjw4hl020qqxg11bnc8sz15yr4fpy1p7hq5cz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "pretty-hydra"
+ ],
+ "commit": "bba876b86f0b80495004bf185b2b1f6083a1ff3a",
+ "sha256": "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"
+ }
+ },
+ {
+ "ename": "major-mode-icons",
+ "commit": "c8f551bec8bdc5dee4b31edea0c2f92b3c77ec56",
+ "sha256": "02p5h9q2j7z3wcmvkbqbbzzk3lyfdq43psppy9x9ypic9fij8j95",
+ "fetcher": "github",
+ "repo": "stardiviner/major-mode-icons",
+ "unstable": {
+ "version": [
+ 20200127,
+ 512
+ ],
+ "deps": [
+ "all-the-icons",
+ "powerline",
+ "xpm"
+ ],
+ "commit": "b36eae2e976bad3c431b082c64b1a724a2ba1fe6",
+ "sha256": "1jjmma9lx5g4qprmy71izgdp564lbdb0wsiysl1f6d8wipml78ys"
+ }
+ },
+ {
+ "ename": "make-color",
+ "commit": "bb765469c65589ae9d7dbc420a8edcf44c3be5d1",
+ "sha256": "0mrv8b67lpid5m8rfbhcik76bvnjlw4xmcrd2c2iinyl02y07r5k",
+ "fetcher": "github",
+ "repo": "alezost/make-color.el",
+ "unstable": {
+ "version": [
+ 20140625,
+ 1150
+ ],
+ "commit": "5ca1383ca9228bca82120b238bdc119f302b75c0",
+ "sha256": "1wmpy1d966zzxwar2ng825zlch5fwsslsi1706ss9v7zl7i9wggd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "b19cb40c0619e267f2948ed37aff67b712a6deed",
+ "sha256": "0fp5gbin1sgsdz39spk74vadkzig3ydwhpzx9vg7f231kk5f6wzx"
+ }
+ },
+ {
+ "ename": "make-it-so",
+ "commit": "aad592089ed2200e2f8c5191e8adeac1db4bce54",
+ "sha256": "0a8abz54mb60mfr0bl9ry8yawq99vx9hjl4fm2sivns58qjgfy73",
+ "fetcher": "github",
+ "repo": "abo-abo/make-it-so",
+ "unstable": {
+ "version": [
+ 20190625,
+ 1036
+ ],
+ "deps": [
+ "swiper"
+ ],
+ "commit": "b73dfb640588123c9eece230ad72b37604f5c126",
+ "sha256": "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"
+ }
+ },
+ {
+ "ename": "makefile-executor",
+ "commit": "08f8b4d680e4907dbd8ea46a75d98aa0e93c2bb9",
+ "sha256": "0889rq2a7ks2ynyq91xsa2kpzgd72kzbjxx0b34w8faknpj3b6hi",
+ "fetcher": "github",
+ "repo": "thiderman/makefile-executor.el",
+ "unstable": {
+ "version": [
+ 20180720,
+ 832
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "9a7d78f814a4b372d8f8179819cb1b37b83b1973",
+ "sha256": "1sw8zqxzrcxs4v211bmlxz5xfrpckrawnbhf1fiji0971cv3hx0r"
+ }
+ },
+ {
+ "ename": "makey",
+ "commit": "688e32e98758aa6fd31218e98608bd54a76c3e83",
+ "sha256": "06xgrlkqvg288yd4lyhx4vi80jlfarhblxk5m5zzs5as7n08cvk4",
+ "fetcher": "github",
+ "repo": "mickeynp/makey",
+ "unstable": {
+ "version": [
+ 20131231,
+ 1430
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a61781e69d3b451551e269446e1c5f624ab81137",
+ "sha256": "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a61781e69d3b451551e269446e1c5f624ab81137",
+ "sha256": "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"
+ }
+ },
+ {
+ "ename": "malinka",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1zmnlgy9k1s1s2wgkhlwfsnknmhggy0rx3l495a5x1kqsx6i0c9y",
+ "fetcher": "github",
+ "repo": "LefterisJP/malinka",
+ "unstable": {
+ "version": [
+ 20171202,
+ 1021
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f",
+ "projectile",
+ "rtags",
+ "s"
+ ],
+ "commit": "d4aa517c7a9022eae16c758c7efdb3a0403542d7",
+ "sha256": "1rnzvx1nc01sw9fklm36lyllqm6dizj64gnlqbs4nammx7z0spi1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f",
+ "projectile",
+ "rtags",
+ "s"
+ ],
+ "commit": "81cf7dd81fbf124ceda31ee963cce8c3616f28f1",
+ "sha256": "0hwxwwjzjxv2mmkxmalr2hp3x8apwcyvn2bz4d4yd4wrzcscay97"
+ }
+ },
+ {
+ "ename": "mallard-mode",
+ "commit": "19c5543664ca685a70e53baa1357842e83cbf8f7",
+ "sha256": "0y2ikjgy107kb85pz50vv7ywslqgbrrkcfsrd8gsk1jky4qn8izd",
+ "fetcher": "github",
+ "repo": "jhradilek/emacs-mallard-mode",
+ "unstable": {
+ "version": [
+ 20131204,
+ 425
+ ],
+ "commit": "c48170c1ace4959abcc5fb1df0d4cb149cff44c1",
+ "sha256": "18x3cssfn81k8hg4frj7dhzphg784321z51wbbvn3bjhq7s6j3a2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "152cd44d53c881457fe57c1aba77e8e2fca4d1b0",
+ "sha256": "1272fsjzsza9dxm8s64b7x2jzr3ks8wjpwvgcxha2dnsjzklcdcj"
+ }
+ },
+ {
+ "ename": "mallard-snippets",
+ "commit": "57a31a6ac93a864cb5212c925fdfb0961d36b24a",
+ "sha256": "0437qd7q9i32pmhxaz3vi2dnfpj4nddmzgnqpwsgl28slhjw2hv8",
+ "fetcher": "github",
+ "repo": "jhradilek/emacs-mallard-snippets",
+ "unstable": {
+ "version": [
+ 20131023,
+ 1851
+ ],
+ "deps": [
+ "mallard-mode",
+ "yasnippet"
+ ],
+ "commit": "70c5293f10722f2ace73bdf74d9a18f95b040edc",
+ "sha256": "0qk7i47nmyp4llwp6x0i1i5dk82ck26iyz1sjvvlihaw8a5akny2"
+ }
+ },
+ {
+ "ename": "malyon",
+ "commit": "54b3785cfcdb3b54307f60ee634a101e8bcd9989",
+ "sha256": "050kj4c1vp9f3fiskf8hld7w46092n4jipdga226x97igx575g3r",
+ "fetcher": "github",
+ "repo": "speedenator/malyon",
+ "unstable": {
+ "version": [
+ 20161208,
+ 2125
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0d9882650720b4a791556f5e2d917388965d6fc0",
+ "sha256": "0an1yvp0p624rxd8n5phiwvznw35ripqhlwzwyv2bw7lc1rscllr"
+ }
+ },
+ {
+ "ename": "man-commands",
+ "commit": "cefd80c8f65e1577ba36ea665b36c3a3d4032b4b",
+ "sha256": "1yl7y0k24gydldfs406v1n523q46m9x6in6pgljgjnjravc67wnq",
+ "fetcher": "github",
+ "repo": "nflath/man-commands",
+ "unstable": {
+ "version": [
+ 20151221,
+ 2221
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f4ba0c3790855d7544dff92d470d212f24de1d9d",
+ "sha256": "1lfq4hsq2n33l58ja5kzy6bwk9jxbcdsg6y8gqlk71lcslzqldrk"
+ }
+ },
+ {
+ "ename": "manage-minor-mode",
+ "commit": "7a4e84530b4607a277fc3b678fe7b34b1c5e3b4f",
+ "sha256": "1y5a4r92b8zb2kvmsg6s3drg4q4g35jqj8nmfx4z5rrnck1r31ym",
+ "fetcher": "github",
+ "repo": "emacsorphanage/manage-minor-mode",
+ "unstable": {
+ "version": [
+ 20200123,
+ 1406
+ ],
+ "commit": "0dfab46a728a21c91658ffcb14101b182cf1b403",
+ "sha256": "1c17r1vz6181plbhb5nh36q6r2rwkrxhy45xmk7rjghmdd765f2r"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "d07d269586233787b4bea4c40df43d6357a40f58",
+ "sha256": "074bm7kfvslfl06zjrp7h0plbx6aqagzppczgnpslqa41373b8jx"
+ }
+ },
+ {
+ "ename": "manage-minor-mode-table",
+ "commit": "5171175442458748f355bf2eba51dde77a6cd480",
+ "sha256": "1mbjsd8av94r9qkb6xwpvyhkgm35cpbqm7j1mi1msc3mz3mzx7mz",
+ "fetcher": "github",
+ "repo": "jcs-elpa/manage-minor-mode-table",
+ "unstable": {
+ "version": [
+ 20200717,
+ 809
+ ],
+ "deps": [
+ "manage-minor-mode"
+ ],
+ "commit": "d377094c4ff5e93321e12f53892113083148bdaf",
+ "sha256": "0dpljs8qmpvpb0y2cvcr71ashzrm2ypb8p6anay4sjmiphkb60p5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "manage-minor-mode"
+ ],
+ "commit": "d377094c4ff5e93321e12f53892113083148bdaf",
+ "sha256": "0dpljs8qmpvpb0y2cvcr71ashzrm2ypb8p6anay4sjmiphkb60p5"
+ }
+ },
+ {
+ "ename": "mandm-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0mvzn29ljd3az6axyqq88vkkf1vpcvslc1svlnbyrpdfinphd0mx",
+ "fetcher": "github",
+ "repo": "choppsv1/emacs-mandm-theme",
+ "unstable": {
+ "version": [
+ 20191112,
+ 1832
+ ],
+ "commit": "4e6ce4f222c1fa175d56e926628f37caa5f398ce",
+ "sha256": "05lb7izcwivjlyx6442hkskppr2158wg0b8g9k435xl083vxmpfw"
+ }
+ },
+ {
+ "ename": "mandoku",
+ "commit": "1aac4ae2c908de2c44624fb22a3f5ccf0b7a4912",
+ "sha256": "1pg7ir3y6yk92kfs5agbxapcxf7gy60m353rjv8g3kfkx5zyh3mv",
+ "fetcher": "github",
+ "repo": "mandoku/mandoku",
+ "unstable": {
+ "version": [
+ 20180403,
+ 1106
+ ],
+ "deps": [
+ "git",
+ "github-clone",
+ "magit",
+ "org"
+ ],
+ "commit": "d65dbaa329ecf931f4142be72862972ea6a24e63",
+ "sha256": "1iqwgzjy2vlrx0kdkjjfxxm097m17ay9r6966gyi8iiip99hjn50"
+ }
+ },
+ {
+ "ename": "mandoku-tls",
+ "commit": "c97d3f653057eab35c612109792884334be556fe",
+ "sha256": "0zny1l548rvjsbbzj47wysz6gk1sqxvpj215r3w84vw5dyrn78bz",
+ "fetcher": "github",
+ "repo": "mandoku/mandoku-tls",
+ "unstable": {
+ "version": [
+ 20171118,
+ 240
+ ],
+ "deps": [
+ "github-clone",
+ "helm",
+ "helm-charinfo",
+ "hydra",
+ "mandoku",
+ "org"
+ ],
+ "commit": "ffeebf5bd451ac1806ddfe1744fbbd036a56f902",
+ "sha256": "16399qifjj4hnfw4a62jwxfwnc7k8lmiy3bz8iwzlc91jjic7zdc"
+ }
+ },
+ {
+ "ename": "map-progress",
+ "commit": "5ed3335eaf0be7368059bcdb52c46f5e47c0c1a5",
+ "sha256": "0zc5vii72gbfwbb35w8m30c8r9zck971hwgcn1a4wjczgn4vkln7",
+ "fetcher": "github",
+ "repo": "tarsius/map-progress",
+ "unstable": {
+ "version": [
+ 20190128,
+ 16
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1fb916159cd054c233ce3c80d9d01adfae640297",
+ "sha256": "1hbk35l9aljp4jqg8cv67q6b2jbcx0g665j90fygxqibrf6r52a8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1fb916159cd054c233ce3c80d9d01adfae640297",
+ "sha256": "1hbk35l9aljp4jqg8cv67q6b2jbcx0g665j90fygxqibrf6r52a8"
+ }
+ },
+ {
+ "ename": "map-regexp",
+ "commit": "927314443ecc00d94e7125de669e82832c5a125c",
+ "sha256": "0yiif0033lhaqggywzfizfia3siggwcz7yv4z7przhnr04akdmbj",
+ "fetcher": "github",
+ "repo": "tarsius/map-regexp",
+ "unstable": {
+ "version": [
+ 20190128,
+ 18
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ae2d1c22f786ad987aef3e319925e80160a887a0",
+ "sha256": "1ybhizafdhzm7fg8s6gm13fbrz1vnrc7ifq8gvrrm89wl3qi5z7f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ae2d1c22f786ad987aef3e319925e80160a887a0",
+ "sha256": "1ybhizafdhzm7fg8s6gm13fbrz1vnrc7ifq8gvrrm89wl3qi5z7f"
+ }
+ },
+ {
+ "ename": "marcopolo",
+ "commit": "936a1cff601594575c5b550c5eb16e7dafc8a5ab",
+ "sha256": "1nbck1m7lhync7n474578d2g1zc72c841hi236xjbdd2lnxz3zz0",
+ "fetcher": "github",
+ "repo": "nlamirault/marcopolo",
+ "unstable": {
+ "version": [
+ 20160421,
+ 1004
+ ],
+ "deps": [
+ "dash",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "9193aabdf12223087b5ed58f1507d5d8a24a4381",
+ "sha256": "1yc0sgzh1qprhdrzjqc88d6g4xvw80fblcvjl6yn6kihv1ymz091"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "ce6ad40d7feab0568924e3bd9659b76e3eecd55e",
+ "sha256": "0y4b69r2l6kvh7g8f1y9v1pdall3n668ci24lp04lcms6rxcrsnh"
+ }
+ },
+ {
+ "ename": "mark-multiple",
+ "commit": "7efe1814aa552d44c3db2cd7304569f2aae66287",
+ "sha256": "179wd9g0smm76k92n7j2vgg8gz5wn9lczrns5ggq2yhbc77j0gn4",
+ "fetcher": "github",
+ "repo": "magnars/mark-multiple.el",
+ "unstable": {
+ "version": [
+ 20121118,
+ 1554
+ ],
+ "commit": "f6a53c7c5283d640ae718f4548b0fda78877a375",
+ "sha256": "1x3anvy3hlmydxyfzr1rhaiy502yi1yz3v54sg8wc1w7jrvwaj29"
+ }
+ },
+ {
+ "ename": "mark-thing-at",
+ "commit": "bf5429d251d45fb9eb6d3c677b695f5298b1fb91",
+ "sha256": "1hzahlfxyqs47k406grxsi0qfgcx76884scnnlj2xirszd6j5mpz",
+ "fetcher": "github",
+ "repo": "plandes/mark-thing-at",
+ "unstable": {
+ "version": [
+ 20200427,
+ 1453
+ ],
+ "deps": [
+ "choice-program"
+ ],
+ "commit": "a69696635616c10184a3289d459d8eb532f04f47",
+ "sha256": "0iiwa5cv43177irm4kj9jzfr1jzkw0gw0rmy9vnnbggfgmklzxrq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "choice-program"
+ ],
+ "commit": "a69696635616c10184a3289d459d8eb532f04f47",
+ "sha256": "0iiwa5cv43177irm4kj9jzfr1jzkw0gw0rmy9vnnbggfgmklzxrq"
+ }
+ },
+ {
+ "ename": "mark-tools",
+ "commit": "9ca36020392807aca9658d13481868d8b6c23d51",
+ "sha256": "1688y7lnzhwdva2ildjabzi10i87klfsgvs947i7gfgxl7jwhisq",
+ "fetcher": "github",
+ "repo": "stsquad/emacs-mark-tools",
+ "unstable": {
+ "version": [
+ 20130614,
+ 1025
+ ],
+ "commit": "a11b61effa90bd0abc876d12573674d36fc17f0c",
+ "sha256": "0k4zvbs09mkr8vdffv18s55rn9cyxldzav9vw04lm7v296k94ivz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "0e7ac2522ac84155cab341dc49f7f0b81067133c",
+ "sha256": "0fcyspz7n97n84d9203mxgn8ar4rn52qa49s3vayfrbkn038j5qw"
+ }
+ },
+ {
+ "ename": "markdown-changelog",
+ "commit": "1ca43b6cf089d7c75b1fb483d8356a3ca7fec5bd",
+ "sha256": "0cnp6yfhsixl9nl7l6aa9vrnz71ylf6z25hmk7f6w64f7nxsdmr8",
+ "fetcher": "github",
+ "repo": "plandes/markdown-changelog",
+ "unstable": {
+ "version": [
+ 20200120,
+ 2253
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "1a2c3a4c3e4196f2b5dbb145b01b4bc435a93a96",
+ "sha256": "0dw9bz1iq8v816n0z4v9zc6nsrx4qzl99q2pj04f37s7x9vgmc4x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "1a2c3a4c3e4196f2b5dbb145b01b4bc435a93a96",
+ "sha256": "0dw9bz1iq8v816n0z4v9zc6nsrx4qzl99q2pj04f37s7x9vgmc4x"
+ }
+ },
+ {
+ "ename": "markdown-mode",
+ "commit": "74610ec93d4478e835f8b3b446279efc0c71d644",
+ "sha256": "0gfb3hp87kpcrvxax3m5hsaclwwk1qmxc73cg26smzd1kjfwgz14",
+ "fetcher": "github",
+ "repo": "jrblevin/markdown-mode",
+ "unstable": {
+ "version": [
+ 20200815,
+ 203
+ ],
+ "commit": "ef2cb4d94af68908a4963afa492afba876725128",
+ "sha256": "0pi971jgil2wpfnrg7j7i9hh3a418nxf82jkammzry2ijv2q5kj5"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4
+ ],
+ "commit": "7b854c8e70b6d6edee12aec4194f4eb239586804",
+ "sha256": "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"
+ }
+ },
+ {
+ "ename": "markdown-mode+",
+ "commit": "ca7bf43ef8893bf04e9658390e306ef69e80a156",
+ "sha256": "1535kcj9nmcgmk2448jxc0jmnqy7f50cw2ngffjq5w8bfhgf7q00",
+ "fetcher": "github",
+ "repo": "milkypostman/markdown-mode-plus",
+ "unstable": {
+ "version": [
+ 20170320,
+ 2104
+ ],
+ "deps": [
+ "markdown-mode"
+ ],
+ "commit": "411d079f4430a33c34ec0bbcb1535fe1145a2509",
+ "sha256": "0427cxvykmz8kz1gnn27yc9c4z8djyy6m9qz6wbd4np1cgqlmly2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "markdown-mode"
+ ],
+ "commit": "f35e63284c5caed19b29501730e134018a78e441",
+ "sha256": "1adl36fj506kgfw40gpagzsd7aypfdvy60141raggd5844i6y96r"
+ }
+ },
+ {
+ "ename": "markdown-preview-eww",
+ "commit": "d9b3ad97a193c41068ca184b4835fa7a7a0ebc9c",
+ "sha256": "0j6924f84is41dspib68y5lnz1f8nm7pqyhv47alxra50cjrpxnx",
+ "fetcher": "github",
+ "repo": "niku/markdown-preview-eww",
+ "unstable": {
+ "version": [
+ 20160111,
+ 1502
+ ],
+ "commit": "5853f836425c877c8a956501f0adda137ef1d3b7",
+ "sha256": "1i5gr3j9dq41p2zl4bfyvzv6i5z7hgrxzrycmbdc3s7nja36k9z4"
+ }
+ },
+ {
+ "ename": "markdown-preview-mode",
+ "commit": "d3c5d222cf0d7eca6a4e3eb914907f8ca58e40f0",
+ "sha256": "1cam5wfxca91q3i1kl0qbdvnfy62hr5ksargi4430kgaz34bcbyn",
+ "fetcher": "github",
+ "repo": "ancane/markdown-preview-mode",
+ "unstable": {
+ "version": [
+ 20181213,
+ 1339
+ ],
+ "deps": [
+ "cl-lib",
+ "markdown-mode",
+ "web-server",
+ "websocket"
+ ],
+ "commit": "f98d9114ca87e3e8e5ce70e601d13061eda15415",
+ "sha256": "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "markdown-mode",
+ "web-server",
+ "websocket"
+ ],
+ "commit": "f98d9114ca87e3e8e5ce70e601d13061eda15415",
+ "sha256": "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"
+ }
+ },
+ {
+ "ename": "markdown-toc",
+ "commit": "4db1e90be8e34d5ad0c898be10dfa5cd95ccb921",
+ "sha256": "0slky735yzmbfi4ld264vw64b4a4nllhywp19ya0sljbsfycbihv",
+ "fetcher": "github",
+ "repo": "ardumont/markdown-toc",
+ "unstable": {
+ "version": [
+ 20200517,
+ 1233
+ ],
+ "deps": [
+ "dash",
+ "markdown-mode",
+ "s"
+ ],
+ "commit": "9565eeaa1d26bc0ab83eb65bd30470888f724044",
+ "sha256": "1l49hi4nwralx5kg4aqjj2b592y71ba4i91vmlzk5rrcjmdnc6b0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "dash",
+ "markdown-mode",
+ "s"
+ ],
+ "commit": "9565eeaa1d26bc0ab83eb65bd30470888f724044",
+ "sha256": "1l49hi4nwralx5kg4aqjj2b592y71ba4i91vmlzk5rrcjmdnc6b0"
+ }
+ },
+ {
+ "ename": "markdownfmt",
+ "commit": "16cee5fe003e3afc7daf6858ed83843b52e44901",
+ "sha256": "1wzsw90z988bm94cw4jw5gzjcicgiz4qgn1nsdm8nim9rp43bj17",
+ "fetcher": "github",
+ "repo": "nlamirault/emacs-markdownfmt",
+ "unstable": {
+ "version": [
+ 20160609,
+ 1241
+ ],
+ "commit": "187a74eb4fd9e8520ce08da42d1d292b9af7f2b7",
+ "sha256": "01rxl997rb7f71mbvygavsxaq2vr17f2nnpbg7i551lg82xrsbb4"
+ }
+ },
+ {
+ "ename": "markless",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1nd7np60h0k1p9pwp3dn8068584h7r7lhfl9j7yn2jrf2r51806h",
+ "fetcher": "github",
+ "repo": "Shirakumo/markless.el",
+ "unstable": {
+ "version": [
+ 20190306,
+ 1002
+ ],
+ "commit": "75fdef45df96978e9326ea4d9bf4e534a250c4c0",
+ "sha256": "0fxvpd4gij78d53czyzskfly3wljnad84vnjv6lv14pcz2w9z3y0"
+ }
+ },
+ {
+ "ename": "markup",
+ "commit": "a75c955ad6b2f68b8933329e545625d948f6f8f4",
+ "sha256": "0yw4b42nc2n7nanqvj596hwjf0p4qc7x6g2d9g5cwi7975iak8pf",
+ "fetcher": "github",
+ "repo": "leoc/markup.el",
+ "unstable": {
+ "version": [
+ 20170420,
+ 1129
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "876da2d3f23473475bb0fd0a1480ae11d2671291",
+ "sha256": "0rggadka5aqgrik3qky6s75s5yb5bfj6fcpxjz1iyrwi0fka0akd"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "876da2d3f23473475bb0fd0a1480ae11d2671291",
+ "sha256": "0rggadka5aqgrik3qky6s75s5yb5bfj6fcpxjz1iyrwi0fka0akd"
+ }
+ },
+ {
+ "ename": "markup-faces",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "06fawlv4ih2lsmk7x6h9p5rppl8vw2w3nvlss95kb8fj5fwf7mw9",
+ "fetcher": "github",
+ "repo": "sensorflo/markup-faces",
+ "unstable": {
+ "version": [
+ 20141110,
+ 817
+ ],
+ "commit": "98a807ed82473eb41c6a201ed7ef816d6bcd67b0",
+ "sha256": "1w6i1m7xdr9cijnmdj35cl99r12vl83qws0qlfhrgvisilshnr27"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "c43612633c6c161857a3bab5752ae192bb03f5f3",
+ "sha256": "0nk2rm14ccwrh1aaxzm80rllsz8g38h9w52m0pf3nnwh6sa757nk"
+ }
+ },
+ {
+ "ename": "marmalade-client",
+ "commit": "834d6d8444169e1e9b66c963a4c2e03ff658e154",
+ "sha256": "0llwqwwxrf7qdkpdb03ij0iinll0vc9qr557zyr3bn5zb4fad1sq",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-marmalade-upload",
+ "unstable": {
+ "version": [
+ 20141231,
+ 2007
+ ],
+ "deps": [
+ "gh",
+ "kv",
+ "web"
+ ],
+ "commit": "f315dea57e4fbebd9ee0668c0bafd4c45c7b754a",
+ "sha256": "017k109nfif5mzkj547py8pdnzlr4sxb74yqqsl944znflq67blr"
+ }
+ },
+ {
+ "ename": "marquee-header",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "0hkrxx2gfilqhpjn7b0p3vvy8n4rqng3ac49kz7v45abqz5k79c0",
+ "fetcher": "github",
+ "repo": "jcs-elpa/marquee-header",
+ "unstable": {
+ "version": [
+ 20200720,
+ 1034
+ ],
+ "commit": "d8e83b837bacdd45d274be42fe2d172fd1cbbba2",
+ "sha256": "1iy8vg2wlrzb01nc6sx21ijg62ak94k2x2w6gy56krp7frakacrv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 9
+ ],
+ "commit": "d8e83b837bacdd45d274be42fe2d172fd1cbbba2",
+ "sha256": "1iy8vg2wlrzb01nc6sx21ijg62ak94k2x2w6gy56krp7frakacrv"
+ }
+ },
+ {
+ "ename": "marshal",
+ "commit": "203f2061c5c7d4aefab3175de5e0538f12158ee3",
+ "sha256": "17ikd8f1k42f28d4v5dn83zb44bsx7g336db60q068w6z8d4jbgl",
+ "fetcher": "github",
+ "repo": "sigma/marshal.el",
+ "unstable": {
+ "version": [
+ 20180124,
+ 1239
+ ],
+ "deps": [
+ "eieio",
+ "ht",
+ "json"
+ ],
+ "commit": "f038689cbd5b3680b80b44edd0c7a63ca3038e26",
+ "sha256": "1n79im1r7h1ilvppn9alqwl96zhyxbm5hk7kbmqh022dggw0cx15"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 2
+ ],
+ "deps": [
+ "eieio",
+ "ht",
+ "json"
+ ],
+ "commit": "d714219aeb388ded88582c47940f2c6febae333c",
+ "sha256": "1mr5p2yiad1k15byrlk0a784kj7rvibpn4li5phk4rnm0zg1xy9s"
+ }
+ },
+ {
+ "ename": "maruo-macro-mode",
+ "commit": "d0c17243b6c62e179aefc25d5f2ca43e5f6c66c1",
+ "sha256": "1h7pclpqkkgi8z9yp5n79ffna809yf336bz6082l541xc06pmvcv",
+ "fetcher": "github",
+ "repo": "zonuexe/maruo-macro-mode.el",
+ "unstable": {
+ "version": [
+ 20160616,
+ 1349
+ ],
+ "commit": "8fc9a38ad051eafa8eb94038711acc52c5d1d8d5",
+ "sha256": "0r005yap50jf6b5jc7314ds17g1nn2irn1agidi74fbrwfbndxgm"
+ }
+ },
+ {
+ "ename": "masm-mode",
+ "commit": "3f1961f11a811045095db15d650eae7469d8670c",
+ "sha256": "0zlc8gc0xdqgzs1ywix236wh5nfnsmab9s9x1hpfpzkg6sjzv8wr",
+ "fetcher": "github",
+ "repo": "YiGeeker/masm-mode",
+ "unstable": {
+ "version": [
+ 20200308,
+ 1450
+ ],
+ "commit": "626b9255c2bb967a53d1d50be0b98a1bcae3250c",
+ "sha256": "1k6wcksddy0k02hrqfaifr61c09pg6kpcqpmfm9zkb444pdqjn17"
+ }
+ },
+ {
+ "ename": "mastodon",
+ "commit": "809d963b69b154325faaf61e54ca87b94c1c9a90",
+ "sha256": "1bsyf4j6zs9gin0k7p22yv5gaqd6m3vdc2fiagfbs7gxsmhb6p4i",
+ "fetcher": "github",
+ "repo": "jdenen/mastodon.el",
+ "unstable": {
+ "version": [
+ 20190305,
+ 344
+ ],
+ "commit": "5095797ef32b922d2a624fa6beb970b5e9cf5ca0",
+ "sha256": "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 0
+ ],
+ "commit": "5095797ef32b922d2a624fa6beb970b5e9cf5ca0",
+ "sha256": "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"
+ }
+ },
+ {
+ "ename": "material-theme",
+ "commit": "d31ababaa50061e767605c979a3f327a654e564b",
+ "sha256": "1d259avldc5fq121xrqv53h8s4f4bp6b89nz2rvjhygz7f8hargq",
+ "fetcher": "github",
+ "repo": "cpaulik/emacs-material-theme",
+ "unstable": {
+ "version": [
+ 20200620,
+ 943
+ ],
+ "commit": "2710e61ecee1bbec943538305c26af4fe4fca68a",
+ "sha256": "1qg59w216iv1yk594xjgazfqx5qhw3jgjqf32pcwwbkcnyj5f6zw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "2710e61ecee1bbec943538305c26af4fe4fca68a",
+ "sha256": "1qg59w216iv1yk594xjgazfqx5qhw3jgjqf32pcwwbkcnyj5f6zw"
+ }
+ },
+ {
+ "ename": "math-symbol-lists",
+ "commit": "fadff01600d57f5b9ea9c0c47ed109e058114998",
+ "sha256": "01j11k29acj0b1pcapmgi2d2s3p50bkms21i2qcj0cbqgz8h6s27",
+ "fetcher": "github",
+ "repo": "vspinu/math-symbol-lists",
+ "unstable": {
+ "version": [
+ 20200131,
+ 2333
+ ],
+ "commit": "1cf7e2885f3352f55852ee9eba26c7cb5a7cd74b",
+ "sha256": "0c2fs87vsxx00svzx09x90p8sc1zm4mj24ab0bvqf7ghpl5qgwa8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "590d9f09f8ad9aab747b97f077396a2035dcf50f",
+ "sha256": "1r2i600356k8g0l53s4b5xc24flpka664i8f23zbj4h7gk1g2787"
+ }
+ },
+ {
+ "ename": "math-symbols",
+ "commit": "d7b0799bddbbbecd12bc1589b56a6250acf76407",
+ "sha256": "0sx9cgyk56npjd6z78y9cldbvjl5ipl7k1nc1sylg1iggkbwxnqx",
+ "fetcher": "github",
+ "repo": "kawabata/math-symbols",
+ "unstable": {
+ "version": [
+ 20170818,
+ 1459
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "3f8b466f002e1b28ddbe9a6f236c9a1352adb17d",
+ "sha256": "0r63acgicb43p05gsiz98m7077sj72c1miz18fi8qbzi02p9qjr7"
+ }
+ },
+ {
+ "ename": "matlab-mode",
+ "commit": "08b700ce0068646b51cd856df98ca583e21da8a1",
+ "sha256": "1qxbcklmhwn4478chnf9n8hwc4qznjb7y8cj78a179hhws70l97j",
+ "fetcher": "git",
+ "url": "https://git.code.sf.net/p/matlab-emacs/src",
+ "unstable": {
+ "version": [
+ 20200213,
+ 930
+ ],
+ "commit": "e14d97df706049ea2e2d6e5b515fdbd08cd94dd3",
+ "sha256": "0zi873fpskv18k0xs9rgb2yfj49sga3yyq1b6xxc4ik0r45wi9cz"
+ }
+ },
+ {
+ "ename": "maude-mode",
+ "commit": "9c33b8bd62391767a63f57786750e38cbc262bda",
+ "sha256": "1w5v3r905xkwchkm2gzvzpswba5p2m7hqpyg9fzq2ldlr8kk7ah3",
+ "fetcher": "github",
+ "repo": "rudi/maude-mode",
+ "unstable": {
+ "version": [
+ 20200725,
+ 2035
+ ],
+ "commit": "008f372631a1efe15be033792cfb1686b1736aeb",
+ "sha256": "07a51iwlzj88b6jaxzz8p8r7l9kcbflw8l11h67sx5y0gv23a6vv"
+ }
+ },
+ {
+ "ename": "maven-test-mode",
+ "commit": "bdc7f677c53431542cb8d7c95666d021dead2b98",
+ "sha256": "1k9w51rh003p67yalzq1w8am40nnr2khyyb5y4bwxgpms8z391fm",
+ "fetcher": "github",
+ "repo": "rranelli/maven-test-mode",
+ "unstable": {
+ "version": [
+ 20141220,
+ 557
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "a19151861df2ad8ae4880a2e7c86ddf848cb569a",
+ "sha256": "1xn2yyr8mr90cynbxgv0h5v180pzf0ydnjr9spg34mrdicqlki6c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "f79409907375591283291eb96af4754b1ccc0e6f",
+ "sha256": "0x92b1qrhyrdh0z0xriyjc12h0wpk16x4yawj5i828ca6mz0qh5g"
+ }
+ },
+ {
+ "ename": "maxframe",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1lxj60qcvv8vakdq79k1brzv3ki74kajrx8620dzx76bnfkryxk8",
+ "fetcher": "github",
+ "repo": "rmm5t/maxframe.el",
+ "unstable": {
+ "version": [
+ 20170120,
+ 1705
+ ],
+ "commit": "f7048ce95443f2c06cb6b140814451e3a037103a",
+ "sha256": "0kjhfc2jlhq9qdwigx1iq8wpvzfr7jlv8jfqa2j2va8h0jp2jnp6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "4f1dbbe68048864037eae277b9280b90fd701ff1",
+ "sha256": "08gbkd8wln89j9yxp0zzd539hbwy1db31gca3vxxrpszixx8280y"
+ }
+ },
+ {
+ "ename": "mb-url",
+ "commit": "dd9a8ff6e094b061a7b9d790df1fd4086c5d0a9d",
+ "sha256": "1nf8ssan00qsn3d4dc6h6qzdwqzh977qb5d2m33kiwi6qb98988h",
+ "fetcher": "github",
+ "repo": "dochang/mb-url",
+ "unstable": {
+ "version": [
+ 20191006,
+ 1930
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7230902e1f844e0a1388f741e9ae6260cda3de69",
+ "sha256": "09qsc4dl9ngl11i92bfslpl1b1i5ksnpkvfp2hhxn3hwfpgfh64s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7230902e1f844e0a1388f741e9ae6260cda3de69",
+ "sha256": "09qsc4dl9ngl11i92bfslpl1b1i5ksnpkvfp2hhxn3hwfpgfh64s"
+ }
+ },
+ {
+ "ename": "mbe",
+ "commit": "0a8a16e485d608dbd59151d77e252048a49f9d25",
+ "sha256": "0h18mbcjy8nh4gl12kg2v8x6ps320yk7sbgq5alqnx2shp80kri3",
+ "fetcher": "github",
+ "repo": "ijp/mbe.el",
+ "unstable": {
+ "version": [
+ 20151126,
+ 1134
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bb10aa8f26bb7e9b1d5746934c94edb00402940c",
+ "sha256": "1zywygdgnp2zr8fxqhl0cbrgbl43931k936b9imhqi96p6622pb6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b022030d6e26198bb8a93a5b0bfe7aa891cd59ec",
+ "sha256": "00gwd2jf5ncgyay5w2jc2mhv18jf4ydnzpfkxaxw9zjbdxg4ym2i"
+ }
+ },
+ {
+ "ename": "mbo70s-theme",
+ "commit": "b8d0c1050b3319e136fe75903ae3612a52790189",
+ "sha256": "1abx2rw09xxp122ff7i9sry5djd4l6vn4lfzxs92rknjzkyc40pb",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-mbo70s-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1315
+ ],
+ "commit": "bed3db8965708ed4e9482b224a9b084765c052f2",
+ "sha256": "19hha9xwfqvdgsws69x0mcm93yfllp44hdl1xw9zlhj8f4ihizh5"
+ }
+ },
+ {
+ "ename": "mbsync",
+ "commit": "3ef6ffa53bb0ce2ba796555e39f59534fc134aa5",
+ "sha256": "1q5g76mspi24zwbs7h4m8bmkhab4drskha4d9b516w1f1cyg6hb6",
+ "fetcher": "github",
+ "repo": "dimitri/mbsync-el",
+ "unstable": {
+ "version": [
+ 20200128,
+ 1053
+ ],
+ "commit": "d3c81da81ce5b154c0d048047a47277338721a70",
+ "sha256": "10xxgvzjb7bl3lzgjkdsnnkd9wphkc2pm621agyjlayzcjnldz5p"
+ }
+ },
+ {
+ "ename": "mc-calc",
+ "commit": "a8cded39a6c14d34f618aba136d48e162a70c433",
+ "sha256": "1lphlavndz0m3pw2kcrbqkavvcgmzn2p3av0h60ghndz00psqbys",
+ "fetcher": "github",
+ "repo": "hatheroldev/mc-calc",
+ "unstable": {
+ "version": [
+ 20200420,
+ 1836
+ ],
+ "deps": [
+ "multiple-cursors"
+ ],
+ "commit": "74a046a5728919a4d1135ca62738326b0dde278c",
+ "sha256": "0498088pgbpywqdla8mzhpq4izzbdbqwq9cjzg0050y598pinpqq"
+ }
+ },
+ {
+ "ename": "mc-extras",
+ "commit": "12747bb8603ebc09ce0873f3317a99e34d818313",
+ "sha256": "0b110x6ygc95v5pb9lk1i731x5s6dagl5afzv37l1qchys36xrym",
+ "fetcher": "github",
+ "repo": "knu/mc-extras.el",
+ "unstable": {
+ "version": [
+ 20181109,
+ 1735
+ ],
+ "deps": [
+ "multiple-cursors"
+ ],
+ "commit": "053abc52181b8718559d7361a587bbb795faf164",
+ "sha256": "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 4
+ ],
+ "deps": [
+ "multiple-cursors"
+ ],
+ "commit": "f0ba639e9b18cc56e80ae45bbb2b694dbad9171a",
+ "sha256": "0d6ncj6zd0lfsdpffbh3l25ycjw5hn0rwi5znp5hpl06b1ycyk4s"
+ }
+ },
+ {
+ "ename": "md-readme",
+ "commit": "5408d7c12c189d2b5ab9fbb02276de334851e3c8",
+ "sha256": "1krq0f79jjrlihr2aqq87pxdqixv2zdjw4hm732sz79g996yxyw3",
+ "fetcher": "github",
+ "repo": "thomas11/md-readme",
+ "unstable": {
+ "version": [
+ 20191112,
+ 1943
+ ],
+ "commit": "ca99f44de11fab18d1f50d4b1722f2ceee3c814d",
+ "sha256": "1llwvcbwfj5mw100rx2hp8vcr7kawpl18nvy6vxl6brqw7ka0d2s"
+ }
+ },
+ {
+ "ename": "md4rd",
+ "commit": "48d4a3b3337e16e68631409d1de0ce67ae22b837",
+ "sha256": "0ayr5qw0cz7bd46djfhm8slr2kfgssi5bsnzqcasr8n4lyg9jvfc",
+ "fetcher": "github",
+ "repo": "ahungry/md4rd",
+ "unstable": {
+ "version": [
+ 20191113,
+ 2108
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "hierarchy",
+ "request",
+ "s",
+ "tree-mode"
+ ],
+ "commit": "ff7d95fc0fdf46a3cb6b3bbe52396dc4e474b8fd",
+ "sha256": "1p8g5pbczg1n1pfibxwpbg1qsyrqi131awxkvl98w8ynb9zi1fqs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "hierarchy",
+ "request",
+ "s",
+ "tree-mode"
+ ],
+ "commit": "443c8059af4925d11c93a1293663165c52472f08",
+ "sha256": "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"
+ }
+ },
+ {
+ "ename": "mediawiki",
+ "commit": "865e0ba1dbace58784181d214000d090478173bd",
+ "sha256": "17cbrzfdp6jbbf74mn2fi1cwv7d1hvdbw9j84p43jzscnaa5ikx6",
+ "fetcher": "github",
+ "repo": "hexmode/mediawiki-el",
+ "unstable": {
+ "version": [
+ 20200718,
+ 1529
+ ],
+ "commit": "932497604fd417964e4f04614e28d96f4eee028e",
+ "sha256": "1446vihy9cpg0hbvqjrp82ya1k889gpvgbsmw9bk7kyd983jhfar"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 1
+ ],
+ "commit": "5178a1a1dbe37a144d9c82622eb683bd3c61bef1",
+ "sha256": "1d05jw2sa19rgzskvavh21bfmbh07yza1drfbgypsvay3nkjfd2z"
+ }
+ },
+ {
+ "ename": "meghanada",
+ "commit": "4c75c69b2f00be9a93144f632738272c1e375785",
+ "sha256": "10f1fxma3lqcyv78i0p9mjpi79jfjd5lq5q60ylpxqp18nrql1s4",
+ "fetcher": "github",
+ "repo": "mopemope/meghanada-emacs",
+ "unstable": {
+ "version": [
+ 20200628,
+ 247
+ ],
+ "deps": [
+ "company",
+ "flycheck",
+ "yasnippet"
+ ],
+ "commit": "1e41f7f2c7a172e9699f3557c97c3f39a149bfc2",
+ "sha256": "1cplw3x94xc2yqvvimkjgppbb36mnj8n3gcx0k2gy7zwzdvzg4c6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 1
+ ],
+ "deps": [
+ "company",
+ "flycheck",
+ "yasnippet"
+ ],
+ "commit": "1e41f7f2c7a172e9699f3557c97c3f39a149bfc2",
+ "sha256": "1cplw3x94xc2yqvvimkjgppbb36mnj8n3gcx0k2gy7zwzdvzg4c6"
+ }
+ },
+ {
+ "ename": "melancholy-theme",
+ "commit": "8b8f708d1300d401697c099709718fcb70d5db1f",
+ "sha256": "1wihbv44234lwsgp5w4hmmi3pgxbcfjvs1nclv0yg600z9s8sn8w",
+ "fetcher": "github",
+ "repo": "techquila/melancholy-theme",
+ "unstable": {
+ "version": [
+ 20200305,
+ 133
+ ],
+ "commit": "ffed56cb756f8acba93ce7edc664c950d75927d9",
+ "sha256": "1wcvd68dm453rvhjm89vv2faljgyszwyc4g95q7ydvhk3h1gck2p"
+ }
+ },
+ {
+ "ename": "mellow-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "0kl1psykx7akxwabszk4amszh3zil8ia4bfbjjvr6h9phgx66pb0",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-mellow-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1317
+ ],
+ "commit": "2bdf18f05f5212b6f269d9a94afe2cf201766891",
+ "sha256": "0cj9lkqgiaq1s2k9ky93jgv5pfbmjznsd54r3iqkiy1zshpkir68"
+ }
+ },
+ {
+ "ename": "melpa-upstream-visit",
+ "commit": "c110538a1ae2419505ea8f144ef7de2d67cad568",
+ "sha256": "0j4afy9ipzr7pwkij8ab207mabd7srganlyyif9h1hvclj9svdmf",
+ "fetcher": "github",
+ "repo": "laynor/melpa-upstream-visit",
+ "unstable": {
+ "version": [
+ 20130720,
+ 1033
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "7310c74fdead3c0f86ad6eff76cf989e63f70f66",
+ "sha256": "12cp56ppmwpdgf5afx7hd2qb8d1qq8z27191fbbf5zqw8cq5zkpd"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "7310c74fdead3c0f86ad6eff76cf989e63f70f66",
+ "sha256": "12cp56ppmwpdgf5afx7hd2qb8d1qq8z27191fbbf5zqw8cq5zkpd"
+ }
+ },
+ {
+ "ename": "memento-mori",
+ "commit": "a2561f33ee4f19fe191b9ac2662ac931a5b91395",
+ "sha256": "0k7gird1v7vgjbbldpjkdvgs55v7kb8bpr2kkvawm3kswh1sw11v",
+ "fetcher": "github",
+ "repo": "lassik/emacs-memento-mori",
+ "unstable": {
+ "version": [
+ 20190628,
+ 2147
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b99c5ff526079fc5a1e1be097534855da176bc2b",
+ "sha256": "15l993g6ihx3m634y3wdzx0wl4546qdr1xr723qxcvxi0ph16kbx"
+ }
+ },
+ {
+ "ename": "memoize",
+ "commit": "6cc9be5bbcff04de5e6d3bb8c47d202fd350989b",
+ "sha256": "0mzz3hghnbkmxf9wgjqv3sbyxyqqzvvscazq9ybb0b41qrzm73s6",
+ "fetcher": "github",
+ "repo": "skeeto/emacs-memoize",
+ "unstable": {
+ "version": [
+ 20200103,
+ 2036
+ ],
+ "commit": "51b075935ca7070f62fae1d69fe0ff7d8fa56fdd",
+ "sha256": "102f34iw2vslimihf557vwn5599xcw1vf422vypdg3ilk6s8z2ax"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "636defefa9168f90bce6fc27431352ac7d01a890",
+ "sha256": "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"
+ }
+ },
+ {
+ "ename": "memolist",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0nvp38qbzcl6dcayjndw32d3r9h8vf2n29i678s1yr280ll8xw6w",
+ "fetcher": "github",
+ "repo": "mikanfactory/memolist.el",
+ "unstable": {
+ "version": [
+ 20150804,
+ 1721
+ ],
+ "deps": [
+ "ag",
+ "markdown-mode"
+ ],
+ "commit": "c437a32d3955f859d9bbcbadf0911bbe27d877ff",
+ "sha256": "0avpjmymjwqnaim96c637wb6ch3iyanwdvmn6x83iynvkpr2nm9l"
+ }
+ },
+ {
+ "ename": "mentor",
+ "commit": "083de4bd25b6b013a31b9d5ecdffad139a4ba91e",
+ "sha256": "0nkf7f90m2qf11l97zwvb114yrpbqk1xxr2bh2nvbx8m1c8nad9s",
+ "fetcher": "github",
+ "repo": "skangas/mentor",
+ "unstable": {
+ "version": [
+ 20190511,
+ 1638
+ ],
+ "deps": [
+ "async",
+ "cl-lib",
+ "seq",
+ "xml-rpc"
+ ],
+ "commit": "b5e441b7dc077d5532a3818b5441e52baefad839",
+ "sha256": "1xrhg1jwmzlcqdk2w92s7ghbma1pfzjc48akl3d2cixxz3ha2ca2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 4
+ ],
+ "deps": [
+ "async",
+ "cl-lib",
+ "seq",
+ "xml-rpc"
+ ],
+ "commit": "9415472470ff23ee9600d94123c51c455d63018d",
+ "sha256": "05gfprcrh9p06arsni58nf60inlf1zbd18i678r9xd4q0v35k491"
+ }
+ },
+ {
+ "ename": "meow",
+ "commit": "b5515ad6f1b8e8296fba5bd91d7adf5e1fc229b4",
+ "sha256": "1s9wqmxg1g8crhsvwn4fh3hkn7pyfj5x71fal9yl0fk6gx59n1p0",
+ "fetcher": "github",
+ "repo": "DogLooksGood/meow",
+ "unstable": {
+ "version": [
+ 20200727,
+ 851
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "c9296491e923a678ac9a42a2743f21ce1e0552c4",
+ "sha256": "00636in9cgcnij1sz6vj5y5vijdd13g5akwj1facf0v4lrlvacpn"
+ }
+ },
+ {
+ "ename": "merlin",
+ "commit": "9338298a79b7f2d654df90b0f553aeed1428de13",
+ "sha256": "0r4wc5ann6239bagj364yyzw4y3lcpkl5nnn0vmx4hgkwdg509fn",
+ "fetcher": "github",
+ "repo": "ocaml/merlin",
+ "unstable": {
+ "version": [
+ 20191025,
+ 851
+ ],
+ "commit": "3751cbfff75022c396c4ff4dc1729048f80daa4f",
+ "sha256": "0vbzbjajm0ww864cl7aaj70s3fkgg79cq8srdf5dmw1vwdrqq6ld"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 3,
+ 6
+ ],
+ "commit": "464df1a60775fd2bb70f4efff4f8603eaf834b74",
+ "sha256": "0yw3a8mhjsjh9359cvk7kr5ch6dhwvhv9zilk12fgyii9iw08mlz"
+ }
+ },
+ {
+ "ename": "merlin-eldoc",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "0bx383nxd97as0d362n1jn62k2rypxvxhcjasgwf0cr8vxr244fp",
+ "fetcher": "github",
+ "repo": "Khady/merlin-eldoc",
+ "unstable": {
+ "version": [
+ 20190830,
+ 517
+ ],
+ "deps": [
+ "merlin"
+ ],
+ "commit": "db7fab1eddfe34781b7e79694f8923b285698032",
+ "sha256": "1c13cgmi8z69b5imd9zlagfgrsdl3qv73n24wgc4ih99w1c7sc08"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "merlin"
+ ],
+ "commit": "bbb1a10f2131c09a7f7f844d4da98efd77f927ae",
+ "sha256": "11gggay8srycpckclqvcmad6ym3lx2sxgj670z89br91jdwmkr2f"
+ }
+ },
+ {
+ "ename": "mermaid-mode",
+ "commit": "8729575400003db47638b4c45c425608e15c333d",
+ "sha256": "1r9dv10p2bahygz1f151bp481289b184d80jbh575pdmlxkqd79f",
+ "fetcher": "github",
+ "repo": "abrochard/mermaid-mode",
+ "unstable": {
+ "version": [
+ 20200804,
+ 2107
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "795bcf830d9345474fad864602180408891b292d",
+ "sha256": "0qdpbayxar0vkan0m83k4jir8saqy47nq2240608l8h9bjv48hz2"
+ }
+ },
+ {
+ "ename": "meson-mode",
+ "commit": "4702a31ffd6b9c34f96d151f2611a1bfb25baa88",
+ "sha256": "16yg217ghx6pvlxha2swznkg12c2a9hhyi0hnsbqdj2ijcdzca80",
+ "fetcher": "github",
+ "repo": "wentasah/meson-mode",
+ "unstable": {
+ "version": [
+ 20200806,
+ 1325
+ ],
+ "commit": "b471b9282724d6f324dbd6fa25d083635fc4293a",
+ "sha256": "0y5a1sfk4h4szv4v6693i3ylrf3xiwf8khrahdaz0bx210h2qmpg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "d80ef159242402609a52c29949bd550c8442db53",
+ "sha256": "1720b3hpfqd989zrgcns51jbjrv4vzl9di9mccl55vkmkbqzfin0"
+ }
+ },
+ {
+ "ename": "message-attachment-reminder",
+ "commit": "7412f7428d16955968cd78de3bb3abcbbcd5c508",
+ "sha256": "0hwah27sw3myka86gywjjncp0i8lnqiagklxdh6z6z4hl9jk105r",
+ "fetcher": "github",
+ "repo": "alexmurray/message-attachment-reminder",
+ "unstable": {
+ "version": [
+ 20200428,
+ 124
+ ],
+ "commit": "ce506b27b15cc39a47c58ff795026eaea8632e2f",
+ "sha256": "0wpj3ich8wisq0jy304fngj0nkkvdqzfkfcx0s8ib6l04v29ypa5"
+ }
+ },
+ {
+ "ename": "messages-are-flowing",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0v74b7cjj87kncndxfpfs6dcc4jcl18wpbirffl7dw6mac2anw6m",
+ "fetcher": "github",
+ "repo": "legoscia/messages-are-flowing",
+ "unstable": {
+ "version": [
+ 20191029,
+ 954
+ ],
+ "commit": "d582a564a63b7b90764ffc5c618bc5300225d0ab",
+ "sha256": "0lgh8vi6ya7mnzc3ik8189kx6lqh4xfnsxpn7r52q7745x4d8zb1"
+ }
+ },
+ {
+ "ename": "meta-presenter",
+ "commit": "b73e9424515b3ddea220b786e91c57ee22bed87f",
+ "sha256": "0f70cfa91wavchlx8d9hdlgq90cmnylhbg2dbw603rzjkyvslp5d",
+ "fetcher": "github",
+ "repo": "myTerminal/meta-presenter",
+ "unstable": {
+ "version": [
+ 20190414,
+ 1720
+ ],
+ "commit": "704a2e0f2a3e6bb72578e00eccb772dfcf0670fc",
+ "sha256": "1hka4c87zdgqjawlmsfd7wi6rbc03qfp996ydrj84kz8saq7gf89"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "3d8c762a7dd7ac39032a3601bd6a717f206e670d",
+ "sha256": "0r9zzmglmkkmxcqh0pdlg279mpd524k2rwn56kyvj5i3i8zw9rpl"
+ }
+ },
+ {
+ "ename": "metalheart-theme",
+ "commit": "204dd67b24bf4f2305a14efb925c8fe004026694",
+ "sha256": "1xqql1mcwp52plm1gp6q4m9zij2w360y15lnjsz9xgjqvslr7gy5",
+ "fetcher": "github",
+ "repo": "mswift42/MetalHeart-Emacs",
+ "unstable": {
+ "version": [
+ 20160710,
+ 641
+ ],
+ "commit": "ec98ea2c11dc1213dae8cbe1fe0cee73ca138bb2",
+ "sha256": "0pc86qh74i6vr0ap2j2sn4nl2c0vv15m4m1myyjmggfxx2f27nnc"
+ }
+ },
+ {
+ "ename": "metamorph",
+ "commit": "741982c7ce83a77d0b43d196eeac6e949dc5fd81",
+ "sha256": "0mqzqwwzb4x2j6jh6acx5ni9z5k56586jv4n88d3fi4vry9k4mv3",
+ "fetcher": "github",
+ "repo": "AdamNiederer/metamorph",
+ "unstable": {
+ "version": [
+ 20180930,
+ 2028
+ ],
+ "commit": "d9dc7037b7eed7b3fe85ea50e91f332e3f831514",
+ "sha256": "1zprgjh1wyqbpy1qvng57r6jm10k6vffpb6znm47fm8xx1h0s8k4"
+ }
+ },
+ {
+ "ename": "metascript-mode",
+ "commit": "90c03167b5fb4f4edc8a76240b3668203261bc58",
+ "sha256": "1kgs4ki0s6bxx2ri6zxmsy2b2w56gnr9hjkr6302wcmp3qy7clwn",
+ "fetcher": "github",
+ "repo": "metascript/metascript-mode",
+ "unstable": {
+ "version": [
+ 20150709,
+ 57
+ ],
+ "commit": "edb361c7b0e5de231e5334a17b90652fb1df78f9",
+ "sha256": "1rascpmv17dksyn9y0llmjb8r4484x5ax54w6r83k1x7ha1iacx5"
+ }
+ },
+ {
+ "ename": "metaweblog",
+ "commit": "cc7fde8f9de0f0e2ccc0c766884ca2b41d0bb5ce",
+ "sha256": "051xgrb620dq55k37wp6b32mdpw7x5ldn6r370n92xqlr1zmryhh",
+ "fetcher": "github",
+ "repo": "org2blog/org2blog",
+ "unstable": {
+ "version": [
+ 20191018,
+ 242
+ ],
+ "commit": "a56346bf1517118b2a960eaadbf138ae1695ddd1",
+ "sha256": "09iycpdj6dkvz5axfx85bkrrf5128ws7clg1jn9yli06rjsw36ba"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 10
+ ],
+ "commit": "19aa8a17428d6ee42f54e464c26eeab17a6478ab",
+ "sha256": "198ahgxji0kh6ynygrrdvllj9fwcqrnma4sd8msj2aq18xij9glr"
+ }
+ },
+ {
+ "ename": "metrics-tracker",
+ "commit": "e0250d97fd363b90ff4b69757cac3370c37c4b8f",
+ "sha256": "1823irgkfpsjl550pkc9qc7j5qkx1gw1b3116b203g4nhzh20h6p",
+ "fetcher": "github",
+ "repo": "ianxm/emacs-tracker",
+ "unstable": {
+ "version": [
+ 20200602,
+ 1032
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "6283e1fc5ddb65323513eb77638181551bda967b",
+ "sha256": "12sw627rhvqldbg8cvgg4fim91h3r9qlki5ni1fi0y5sa9iqh20j"
+ }
+ },
+ {
+ "ename": "metronome",
+ "commit": "123d2788dc05d53862ebbf31476cfd3a43f2f348",
+ "sha256": "0arsx39lrbwp3a4krjn8pggqrqm250c8sk3c6z37q8d2g3sazp11",
+ "fetcher": "gitlab",
+ "repo": "jagrg/metronome",
+ "unstable": {
+ "version": [
+ 20200502,
+ 1748
+ ],
+ "commit": "18257ecdd7b3d816104e83a5f0f96e676cc9fbfc",
+ "sha256": "14qzb1i9l149nw4zhx8jlrrz7nvflc974zr5lbv7vv2zky0pya6w"
+ }
+ },
+ {
+ "ename": "mew",
+ "commit": "362dfc4d0fdb3e5cb39564160de62c3440ce182e",
+ "sha256": "0423xxn3cw6jmsd7vrw30hx9phga5chxzi6x7cvpswg1mhcyn9fk",
+ "fetcher": "github",
+ "repo": "kazu-yamamoto/Mew",
+ "unstable": {
+ "version": [
+ 20200316,
+ 221
+ ],
+ "commit": "5145145f87bfbe80fd91e82ded33033cf78ef54f",
+ "sha256": "0wdbgh3bady6xad0gnlg3irds5vdffl8d39raqayzgn17yb98pcf"
+ },
+ "stable": {
+ "version": [
+ 6,
+ 8
+ ],
+ "commit": "6a5d6bb11e5e1a239ee7db114a0e76b40e5a247e",
+ "sha256": "03sin2l8g8npz3j6019xv5r71j9gzmczb16cyvd5304kibwrwa0w"
+ }
+ },
+ {
+ "ename": "mexican-holidays",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "0an6kkr2vwkqc9219rgn74683h7f4cmd1g74lirn0qhqcfcb5yrc",
+ "fetcher": "github",
+ "repo": "sggutier/mexican-holidays",
+ "unstable": {
+ "version": [
+ 20200622,
+ 132
+ ],
+ "commit": "5b5dd6e71505e8938bac9e9733b30bd394631923",
+ "sha256": "04d4148nq3lmrpkxvzzkn88j30iv2l2466ps035x7v8hc83wxnjw"
+ }
+ },
+ {
+ "ename": "meyvn",
+ "commit": "b7ff8ac12f51e775228a7c916126830802038cf0",
+ "sha256": "1yq90c7s8kb0w25w49wjia84sjhbgjdvjxsl98cdhcf9h6adls6p",
+ "fetcher": "github",
+ "repo": "danielsz/meyvn-el",
+ "unstable": {
+ "version": [
+ 20200311,
+ 2209
+ ],
+ "deps": [
+ "cider",
+ "dash",
+ "parseedn",
+ "projectile",
+ "s"
+ ],
+ "commit": "5eb0423d4b7083cb330a73ef1cfd3e0dd8538567",
+ "sha256": "0vk2d59jvzhdm47w4kcn58njps444i0350lp5z7dnzhaag10dwc0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "3119214ff45db630789f9371f956d5ac06229b1d",
+ "sha256": "0mnvc3f56x4icrqmc4kx6bzc9vac40f020npimdgiylbmyxj97vn"
+ }
+ },
+ {
+ "ename": "mgmtconfig-mode",
+ "commit": "4cf3dd70ae73c2b049e201a3547bbeb9bb117983",
+ "sha256": "0bdjaqfk68av4lfc4cpacrl2mxvimplfkbadi9l6wb65vlqz6sil",
+ "fetcher": "github",
+ "repo": "purpleidea/mgmt",
+ "unstable": {
+ "version": [
+ 20200104,
+ 108
+ ],
+ "commit": "e9af8a2595e336542c9dfc656fe808ddc6937a59",
+ "sha256": "1s72qvg1jwqk27axiqb2wn7y1q3x0rf2mb20yc9kqva553fk5vzd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 21
+ ],
+ "commit": "6a7d904fae5014aabae8c91add220485108d485b",
+ "sha256": "0r0msrnbz9177cv1mlacsyd35k945nk2qaqm1f8ymgxa99zy124i"
+ }
+ },
+ {
+ "ename": "mhc",
+ "commit": "d8d3efa0fcd6cd4af94bc99b35614ef6402cbdba",
+ "sha256": "02ikn9hx0kcfc2xrx4f38zpkfi6vgz7chcxk6q5d0vcsp93b4lql",
+ "fetcher": "github",
+ "repo": "yoshinari-nomura/mhc",
+ "unstable": {
+ "version": [
+ 20190807,
+ 513
+ ],
+ "deps": [
+ "calfw"
+ ],
+ "commit": "f9f048de9fe85a90d376d828ce3dad2a96c62c40",
+ "sha256": "1m6w12y9dcz85xm7lc7dhc7vjhw0bhdm0b4rcp1fr2sn9wv7c4wz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 3
+ ],
+ "deps": [
+ "calfw"
+ ],
+ "commit": "37898db4902cd644a0d3e8d9d02426d54fb8984a",
+ "sha256": "0c9kshs17b8fn8la8hlzf05vf5pajf3ksx7bsjri3m78s6bd3h4z"
+ }
+ },
+ {
+ "ename": "mic-paren",
+ "commit": "6f0e54eac31fbbce9a778fb654f07e11aaaa46ca",
+ "sha256": "17j0b8jyr0zx6zds2dz5fzvarm2wh8l5hxds2s90kh5z0kk23r07",
+ "fetcher": "github",
+ "repo": "emacsattic/mic-paren",
+ "unstable": {
+ "version": [
+ 20170731,
+ 1907
+ ],
+ "commit": "d0410c7d805c9aaf51a1bcefaaef092bed5824c4",
+ "sha256": "0f24ibzgra94bwal8b0dpjxa11n42gkmanqswfnjhlvx052v9dxr"
+ }
+ },
+ {
+ "ename": "micgoline",
+ "commit": "2219768cf62b52bcbe73cec291eb74c3fedcc862",
+ "sha256": "0xixcy006my2s0wn0isiag0b4rm38kswa5m0xnhg5n30qjjfzf4i",
+ "fetcher": "github",
+ "repo": "yzprofile/micgoline",
+ "unstable": {
+ "version": [
+ 20160415,
+ 326
+ ],
+ "deps": [
+ "powerline"
+ ],
+ "commit": "837504263bb1711203b0f7efecd6b7b5f272fae0",
+ "sha256": "0r6l6iqn5z9wp4w58flnls7kk6300qlxyy04fw0np00nvwsy4qvp"
+ }
+ },
+ {
+ "ename": "midje-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "16g57mwkm3ypnyqniy1lj9nfn5wj7cyndb5fhl3fym773ywn6hip",
+ "fetcher": "github",
+ "repo": "dnaumov/midje-mode",
+ "unstable": {
+ "version": [
+ 20170809,
+ 403
+ ],
+ "deps": [
+ "cider",
+ "clojure-mode"
+ ],
+ "commit": "10ad5b6084cd03d5cd268b486a7c3c246d85535f",
+ "sha256": "0nag9ks7qbg40h9z954v42x8zi65wbgfhviwvxvb2bmbzv4m4pbs"
+ }
+ },
+ {
+ "ename": "migemo",
+ "commit": "2424b0328a0198a03359455abdb3024a8067c857",
+ "sha256": "0y49imdwygv5zd7cyh9ngda4gyb2mld2a4s7zh4yzlh7z5ha9qkr",
+ "fetcher": "github",
+ "repo": "emacs-jp/migemo",
+ "unstable": {
+ "version": [
+ 20190112,
+ 516
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f42832c8ac462ecbec9a16eb781194f876fba64a",
+ "sha256": "0yasamfvad4azyby8mqyr2laap3ppknwb7i9w84zw14qq7g7pq5w"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f42832c8ac462ecbec9a16eb781194f876fba64a",
+ "sha256": "0yasamfvad4azyby8mqyr2laap3ppknwb7i9w84zw14qq7g7pq5w"
+ }
+ },
+ {
+ "ename": "milkode",
+ "commit": "29fffbec2d3067c046c456602779af8c04bf898f",
+ "sha256": "07v6xgalx7vcw5sghckwvz584746cba05ql8flv8n556glm7hibh",
+ "fetcher": "github",
+ "repo": "ongaeshi/emacs-milkode",
+ "unstable": {
+ "version": [
+ 20140927,
+ 529
+ ],
+ "commit": "ba97e2aeefa1d9d0b3835bf08edd0de248b0c513",
+ "sha256": "1qg64mxsm2cswk52mlj7sx7k6gfnrsdwnf68i7cachri0i8aq4ap"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "ba97e2aeefa1d9d0b3835bf08edd0de248b0c513",
+ "sha256": "1qg64mxsm2cswk52mlj7sx7k6gfnrsdwnf68i7cachri0i8aq4ap"
+ }
+ },
+ {
+ "ename": "minesweeper",
+ "commit": "d3828ad7599d13728b5571b882344c3ada434b85",
+ "sha256": "061l7xh7vjg5krz5lskj2jvrnsv2qq4bwg0qkkysmy4zp9f3m5iq",
+ "fetcher": "hg",
+ "url": "https://hg.sr.ht/~zck/minesweeper",
+ "unstable": {
+ "version": [
+ 20200416,
+ 2342
+ ],
+ "commit": "d4248e3c9b3e9e7277cb9e6d081330611898f334",
+ "sha256": "0b648nsnwn461r2alg9v220v0c4djyvwn7xgwh8c8sb9pjwbmw90"
+ }
+ },
+ {
+ "ename": "mingus",
+ "commit": "6699927f1ded5c97f2ce1861f8e54a5453264cca",
+ "sha256": "0vw09qk56l792706vvp465f40shf678mcmdh7iw8wsjix4401bzi",
+ "fetcher": "github",
+ "repo": "pft/mingus",
+ "unstable": {
+ "version": [
+ 20190106,
+ 1443
+ ],
+ "deps": [
+ "libmpdee"
+ ],
+ "commit": "4223be618f57f10f18114a74393a71955b568884",
+ "sha256": "14i06i999wfpr0a0lvhnh6g4mm5xmawscjd9d7ibc055h94h3i2a"
+ }
+ },
+ {
+ "ename": "mini-frame",
+ "commit": "2a10ea61ac4a3c8fa800f4107f256fa3ac5907f2",
+ "sha256": "06zv8qmbvzqzinmb5zcd40a43kmmq7mby6dgacpq81cg5azyfkr7",
+ "fetcher": "github",
+ "repo": "muffinmad/emacs-mini-frame",
+ "unstable": {
+ "version": [
+ 20200430,
+ 721
+ ],
+ "commit": "78d9bbb272acc5f2927648cc706321f95e2955c9",
+ "sha256": "1d4zgrpy21j35dzcspbv4szbprxxv9mygwqfx0x2bs53z4abk1kg"
+ }
+ },
+ {
+ "ename": "mini-header-line",
+ "commit": "122db5436ff9061713c0d3d8f44c47494067843e",
+ "sha256": "1yg8i7gsmiv8zwl1wqvgrh2xl2hm5nn3q11rz4hpyxw26355i817",
+ "fetcher": "github",
+ "repo": "ksjogo/mini-header-line",
+ "unstable": {
+ "version": [
+ 20170621,
+ 1221
+ ],
+ "commit": "73b6724e0a26c4528d93768191c8aa59e6bce2e5",
+ "sha256": "187xynmpgkx498an246ywrqdhyyp2ag1l7yxnm0x0rbfgw67q5j1"
+ }
+ },
+ {
+ "ename": "mini-modeline",
+ "commit": "d8d20ab65df4c4a85a59a2a926ea14a262375490",
+ "sha256": "17zm255a85vmxc07h5cr6gcsb92gf8q5ma52z622ridbvzvfc5yc",
+ "fetcher": "github",
+ "repo": "kiennq/emacs-mini-modeline",
+ "unstable": {
+ "version": [
+ 20200801,
+ 1554
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "754a28efdf043e193922a897fc724ad9b9f2e8de",
+ "sha256": "1jx1baw6zskpnfdi02as59736jx4iy0q1n4x5n5ypvr7csrs1nz3"
+ },
+ "stable": {
+ "version": [
+ 20200408,
+ 729
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "b761e41479a2564e801ac6c427956203de3d62ca",
+ "sha256": "1ngggz4n35bklgya6ymc98w7y2annxcpdkikd5afd5jn8w7x2vxg"
+ }
+ },
+ {
+ "ename": "minibuf-isearch",
+ "commit": "ebfd2f3f6a2dbd251c321738a4efaacc2200164b",
+ "sha256": "0n36d152lc53zj9jy38b0c7hlww0z6hx94y3x2njy6cmh3p5g8nh",
+ "fetcher": "github",
+ "repo": "knagano/minibuf-isearch",
+ "unstable": {
+ "version": [
+ 20151226,
+ 1943
+ ],
+ "commit": "2846c6ac369ee623dad4cd3c8a7a6d9078965516",
+ "sha256": "1n4b039448826w2jcsv4r2iw3v2vlrsxw8dbci8wcfigmkbfc879"
+ }
+ },
+ {
+ "ename": "minibuffer-complete-cycle",
+ "commit": "afac2cf41fe57efa8d313fdbab0b0b795ec144e4",
+ "sha256": "0y1mxs6q9a8lzprrlb22qff6x5mvkw4gp2l6p2js2r0j9jzyffq2",
+ "fetcher": "github",
+ "repo": "knu/minibuffer-complete-cycle",
+ "unstable": {
+ "version": [
+ 20130813,
+ 1645
+ ],
+ "commit": "3df80135887d0169e02294a948711f6dfeca4a6f",
+ "sha256": "1zyb6c3xwdzk7dpn7xi0mvbcjdfxvzz1a0zlbs053pfar8iim5fk"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 25,
+ 20130814
+ ],
+ "commit": "3df80135887d0169e02294a948711f6dfeca4a6f",
+ "sha256": "1zyb6c3xwdzk7dpn7xi0mvbcjdfxvzz1a0zlbs053pfar8iim5fk"
+ }
+ },
+ {
+ "ename": "minibuffer-cua",
+ "commit": "f3b0f1f260b02c14da4d584b6af08b2fa3adf39c",
+ "sha256": "1ragvr73ykbvpgynnq3z0z4yzrlfhfqlwc1vbxclb8x2xmxq7pzw",
+ "fetcher": "github",
+ "repo": "knu/minibuffer-cua.el",
+ "unstable": {
+ "version": [
+ 20130906,
+ 1134
+ ],
+ "commit": "adc4979a64f8b36e05960e9afa0746dfa9e2e4c7",
+ "sha256": "011kg76zr4hfhi2gngnc7jlmp0l0nvhmlgyc0y9bir2jbjf4yyvz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "e8dcddc24d4f2e8d7987336fb58259e3cc78bbcb",
+ "sha256": "07nbn2pwlp33kr136xsm6lzddhjs538xkz0fbays89psblmy4kwj"
+ }
+ },
+ {
+ "ename": "miniedit",
+ "commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
+ "sha256": "10s407q7igdi2hsaaahbw8vckalrl7z3s6l9cflf51q16xh2ih87",
+ "fetcher": "github",
+ "repo": "emacsorphanage/miniedit",
+ "unstable": {
+ "version": [
+ 20100419,
+ 1745
+ ],
+ "commit": "e12bf659c3eb92dd8a4cb77642dc0865c54667a3",
+ "sha256": "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "e12bf659c3eb92dd8a4cb77642dc0865c54667a3",
+ "sha256": "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"
+ }
+ },
+ {
+ "ename": "minimal-session-saver",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "1ay7wvriga28bdmarpfwagqzmmk93ri9f3idhr6z6iivwggwyy2i",
+ "fetcher": "github",
+ "repo": "rolandwalker/minimal-session-saver",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "commit": "cf654ac549850746dc21091746e4bcc1aef7668e",
+ "sha256": "1sj5sq932w079y3vy55q5b6wybwrzz30y092iq1mpfg5xvl42sbm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 2
+ ],
+ "commit": "aaba48a8525e1310b221eeb96763304c22e9a4b4",
+ "sha256": "0kjhn48sf2ps3k5pv06gqmqc4hlk6di9ld3ssw6vwfh8313x1fc5"
+ }
+ },
+ {
+ "ename": "minimal-theme",
+ "commit": "6f26b8281f9bd05e3c8f2ef21838275711e622c9",
+ "sha256": "01dar95l7wjjqhbsknvsfbpvv41ka7iqd1fssckz18lgfqpb54bs",
+ "fetcher": "github",
+ "repo": "anler/minimal-theme",
+ "unstable": {
+ "version": [
+ 20190113,
+ 2132
+ ],
+ "commit": "221b43aad320d226863892dfe4d85465e8eb81ce",
+ "sha256": "1zsabgn5mi63ry8jg1li866jcix9mf588ypdfajk8747a6127qd0"
+ }
+ },
+ {
+ "ename": "minions",
+ "commit": "769a2167d7f6dfdbbfda058ddea036f80b97d230",
+ "sha256": "0ximlj93yp6646bh99r2vnayk15ky26sibrmrqqysfw1pzs4a940",
+ "fetcher": "github",
+ "repo": "tarsius/minions",
+ "unstable": {
+ "version": [
+ 20200522,
+ 1052
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "36d39bd25ae58d1359d17f99142520339bea5974",
+ "sha256": "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 4
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "36d39bd25ae58d1359d17f99142520339bea5974",
+ "sha256": "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"
+ }
+ },
+ {
+ "ename": "minitest",
+ "commit": "41b2e55c0fe48267dc4f55924c782c6f934d8ca4",
+ "sha256": "0x6nd4kkhiw8hh79r69861pf41j8p1y39kzf2rl61zlmyjz9zpmw",
+ "fetcher": "github",
+ "repo": "arthurnn/minitest-emacs",
+ "unstable": {
+ "version": [
+ 20200506,
+ 308
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "ddd152c990a528ad09a696bfad23afa4330ea4d7",
+ "sha256": "0mdbn8v6m4902krnagsp74r4501d4yfxc33i55l4l14gvjgx1239"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 2
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "97d7d1760b24e117ffd163531b0f57fd4321677b",
+ "sha256": "0d8kg68yy5x1y3ivj43vzcakb3gii6bh8jm40g4sah5f53bbrs16"
+ }
+ },
+ {
+ "ename": "minizinc-mode",
+ "commit": "fc86b4ba54fca6f1ebf1ae3557fe564e05c1e382",
+ "sha256": "1blb6mbyqvmdvwp477p1ggs3n6rzi9sdfvi0v1wfzmd7k749b10c",
+ "fetcher": "github",
+ "repo": "m00nlight/minizinc-mode",
+ "unstable": {
+ "version": [
+ 20180201,
+ 1450
+ ],
+ "commit": "2512521ba7f8e263a06db88df663fc6b3cca7e16",
+ "sha256": "1yrawvvn3ndzzrllh408v4a5n0y0n5p1jczdm9r8pbxqgyknbk1n"
+ }
+ },
+ {
+ "ename": "minor-mode-hack",
+ "commit": "ad10a684b4b2f01bc65883374f36fef156ff55d2",
+ "sha256": "07ga48xvbi641i053bykv9v4wxhka6jhhg76b1ll24rys02az526",
+ "fetcher": "github",
+ "repo": "rubikitch/minor-mode-hack",
+ "unstable": {
+ "version": [
+ 20170926,
+ 34
+ ],
+ "commit": "9688994e23ccb2de568225ef125b41c46e5667c3",
+ "sha256": "0f6kafr7zqgdlw914bxh2390a1bjz5zy3h30yrfpavz283ycvrrw"
+ }
+ },
+ {
+ "ename": "minsk-theme",
+ "commit": "2f78d25a094cfa5d5a6dad2f0c6d051138b8744b",
+ "sha256": "1sf93ycd6a1p4xf1bhgjbqd4y38v1b4qgf0mh6pag2xz93jr7lw5",
+ "fetcher": "github",
+ "repo": "jlpaca/minsk-theme",
+ "unstable": {
+ "version": [
+ 20200306,
+ 1220
+ ],
+ "commit": "e4dcdec3a4472a507d6b249ae2194dacaa885ecb",
+ "sha256": "03m4rnfdfsbs44cfqjy8j2z6nbxs2yzhzgizlpsvg64441hdkfa0"
+ }
+ },
+ {
+ "ename": "mip-mode",
+ "commit": "cbfefacda071c0f5ee698a4c345a2d6fea6a0d24",
+ "sha256": "0jr8lzs1qzp2ki7xmm5vrdc6vmzagy8zsil0217vyl89pdfmxnyr",
+ "fetcher": "gitlab",
+ "repo": "gaudecker/mip-mode",
+ "unstable": {
+ "version": [
+ 20151127,
+ 617
+ ],
+ "commit": "7c88c383b4c7ed0a4c1dc397735f365c1fcb461c",
+ "sha256": "12k9ii4090dn03xvgqisl4zl4qi33054zxyfkqzzpa9wv72h4knc"
+ }
+ },
+ {
+ "ename": "mips-mode",
+ "commit": "024a76b83efce47271bcb0ce3bde01b88349f391",
+ "sha256": "0gg18v80lbndi2yyr5nl37mz0zpamwv9ha4clajkf0bc0vplxkj7",
+ "fetcher": "github",
+ "repo": "hlissner/emacs-mips-mode",
+ "unstable": {
+ "version": [
+ 20180502,
+ 1457
+ ],
+ "commit": "75152fc78baa762af4f83602f6cb3c8b9bcebca3",
+ "sha256": "1bk1jfqwwrq3jr6zasyjaz16rjjqbihrn7kakgfk3szv6grvsd7p"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "e6c25201a3325b555e64388908d584f3f81d9e32",
+ "sha256": "0ai4ff6hinajvnp8r86s5pv0rrv8h68ncdz4k98kka1ws2f79zdf"
+ }
+ },
+ {
+ "ename": "mix",
+ "commit": "aaa1958ac6a0e59613e1b71e0eddbe4989d93e67",
+ "sha256": "1wflzfr7jgvd01il9zz96wasdyjxxi5nrzva9hlrkgqhp0h877sk",
+ "fetcher": "github",
+ "repo": "ayrat555/mix.el",
+ "unstable": {
+ "version": [
+ 20200419,
+ 820
+ ],
+ "commit": "37916fa5f7dfe448585fb83ea6253eb0f84df15f",
+ "sha256": "09pk4bakqz01ci06c79ywwb8ijdfgw3rxrz0wlaz4zmlbirkzma6"
+ }
+ },
+ {
+ "ename": "mixed-pitch",
+ "commit": "7d3c7af03e0bca3f834c32827cbcca29e29ef4db",
+ "sha256": "1gda4jl946qlbf8rqm0mk493kwy8yqldr21cr583l6b6gl1nb4qf",
+ "fetcher": "gitlab",
+ "repo": "jabranham/mixed-pitch",
+ "unstable": {
+ "version": [
+ 20200511,
+ 2052
+ ],
+ "commit": "1cad46fddf741ed7ec5fc477d70e079e908e9ce6",
+ "sha256": "062np4d7blbwjc1kciqcp6hngmwr8i540zsv5f8p2qki4804b8ng"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "734fbdf2d2c17beee151faf39bd10174a87eea5d",
+ "sha256": "1i0yd7akkyqhkd8g2g793n6syiy0mbnlq9apg7p1s4xycmwxx684"
+ }
+ },
+ {
+ "ename": "mkdown",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "034bwwgh0w1dwawdx2nwn4d6wj65i58aqlvi60kflijfn8l3inr3",
+ "fetcher": "github",
+ "repo": "ajtulloch/mkdown.el",
+ "unstable": {
+ "version": [
+ 20140517,
+ 1418
+ ],
+ "deps": [
+ "markdown-mode"
+ ],
+ "commit": "8e23de82719af6c5b53b52b3308a02b3a1fb872e",
+ "sha256": "1d08i2cfn1q446nyyji0hi9vlw7bzkpxhn6653jz2k77vd2y0wmk"
+ }
+ },
+ {
+ "ename": "mlso-theme",
+ "commit": "2e026e2511ead77022cf8ed9d45d0d5a5aa104b9",
+ "sha256": "1abv6zhz28x5yk0rjn19wjxwvdq0ps3j2sx45n0dlbqfrqgw86d1",
+ "fetcher": "github",
+ "repo": "Mulling/mlso-theme",
+ "unstable": {
+ "version": [
+ 20200513,
+ 1751
+ ],
+ "commit": "059c5773403b73a14a1b04d62d1d5b077a3f6e06",
+ "sha256": "1a00mybf269hlfzfhpcvlkkqgwck73hz5w1qsspg5w9w78qlymkn"
+ }
+ },
+ {
+ "ename": "mmm-jinja2",
+ "commit": "721b9a6f16fb8efd4d339ac7953cc07d7a234b53",
+ "sha256": "0zg4psrgikb8644x3vmsns0id71ni9fcpm591zn16b4j64llvgsi",
+ "fetcher": "github",
+ "repo": "glynnforrest/mmm-jinja2",
+ "unstable": {
+ "version": [
+ 20170313,
+ 1420
+ ],
+ "deps": [
+ "mmm-mode"
+ ],
+ "commit": "c8cb763174fa2fb61b9a0e5e0ff8cb0210f8492f",
+ "sha256": "0big2i3bg4cm14f68ncaiz2h6dk6zqiisrz4l0bv10q9kaa9q2sj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "mmm-mode"
+ ],
+ "commit": "c8cb763174fa2fb61b9a0e5e0ff8cb0210f8492f",
+ "sha256": "0big2i3bg4cm14f68ncaiz2h6dk6zqiisrz4l0bv10q9kaa9q2sj"
+ }
+ },
+ {
+ "ename": "mmm-mode",
+ "commit": "ddf7604d914273aef49e75ae1d45c2a9a4bbbedc",
+ "sha256": "10vkqaf4684cm5yds1xfinvgc3v7871fb203sfl9dbkcgnd5dcjw",
+ "fetcher": "github",
+ "repo": "purcell/mmm-mode",
+ "unstable": {
+ "version": [
+ 20200714,
+ 1714
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9ffe364f3a31c7a771fe3401b8924642609953e8",
+ "sha256": "1yr7nd6kmvy3mc5k6vvwaikzy9cvly4617l4s9zrfrbnldpsyjk7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 7
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ff0b214f27d5dddeb856acb4216e77a864dcc0b2",
+ "sha256": "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"
+ }
+ },
+ {
+ "ename": "mmt",
+ "commit": "d1137bb53ecd92b1a8537abcd2635602c5ab3277",
+ "sha256": "0hal3qcw6x9658xpdaw6q9l2rr2z107pvg5bdzshf67p1b3lf9dq",
+ "fetcher": "github",
+ "repo": "mrkkrp/mmt",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1347
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d7729563e656a3e8adef6bce60348861ba183c09",
+ "sha256": "05f218f0lncgx2bbipjz7db09rrka8fq0qf5qkvbgssagxyl7rav"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f7db836a10720ee50217012e7e2597ebcf624f90",
+ "sha256": "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"
+ }
+ },
+ {
+ "ename": "mo-git-blame",
+ "commit": "a784f931849ca836557390999b179ef9f6e775f3",
+ "sha256": "14ngwwgzrnnysq1k1k681b5i06ad8r3phhgpvn5alp2fj3il03l3",
+ "fetcher": "gitlab",
+ "repo": "mbunkus/mo-git-blame",
+ "unstable": {
+ "version": [
+ 20160129,
+ 1759
+ ],
+ "commit": "254a675eb794cdbbdef9fa2b4b7bb510b70089c0",
+ "sha256": "1dh92hzpicfvrlg6swrw4igwb771xbsmsf7hxp1a4iry4w8dk398"
+ }
+ },
+ {
+ "ename": "mo-vi-ment-mode",
+ "commit": "85487df36bab0a4d2ea034dbe01c8f095a7efddc",
+ "sha256": "1pg889mgpv0waccm135mlvag7q13gzfkzchv2532jngwrn6amqc7",
+ "fetcher": "github",
+ "repo": "AjayMT/mo-vi-ment",
+ "unstable": {
+ "version": [
+ 20181217,
+ 206
+ ],
+ "commit": "e8b525ffc5faa31d36ecc5496b40f0f5c3603c08",
+ "sha256": "16ic8yhjfk0ijlcw7a270p7953w750qza3xdbf4vygkiqqkxiv84"
+ }
+ },
+ {
+ "ename": "mobdebug-mode",
+ "commit": "25a48680d9f0d2b86ee64cc2415626a5283136a8",
+ "sha256": "19k0c7igqsqvib6hx0nssig4l5f959dlr4wijd1hp5h1hmcb5vv8",
+ "fetcher": "github",
+ "repo": "deftsp/mobdebug-mode",
+ "unstable": {
+ "version": [
+ 20140110,
+ 346
+ ],
+ "deps": [
+ "lua-mode"
+ ],
+ "commit": "e1d483bc4e341c762bc5c0a8c52306a8d01ea0da",
+ "sha256": "04hbd7mv29v3fv4ld0b3skrir0wp9dix2n5nbqp63fj6n5i4cyyz"
+ }
+ },
+ {
+ "ename": "mocha",
+ "commit": "39c26134ba95f277a4e9400e506433d96a695aa4",
+ "sha256": "0kjgrl5iy7cd3b9csgpjg3y0wp0q6c7c8cvf0mx8gdbsj7296kyx",
+ "fetcher": "github",
+ "repo": "scottaj/mocha.el",
+ "unstable": {
+ "version": [
+ 20200729,
+ 1130
+ ],
+ "deps": [
+ "f",
+ "js2-mode"
+ ],
+ "commit": "6a72fa20e7be6e55c09b1bc9887ee09c5df28e45",
+ "sha256": "0xp0xps5xvamp7jdxq6hkmyp63ww9ca7imf0nz35xivwwkk17ri6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "4ca9495d4b00b753f055152bd4256c07d7b208f4",
+ "sha256": "0yj9kc59c227727kh1zjxwrhijzd7rdhix7qqm4na1z6s4ycpxbm"
+ }
+ },
+ {
+ "ename": "mocha-snippets",
+ "commit": "93c472e3d7f318373342907ca7253253ef12dab8",
+ "sha256": "0dbsdk4jpzxv2sxx0nia9zhd0a0wmkz1qcqmbd15m1909ccdwxds",
+ "fetcher": "github",
+ "repo": "cowboyd/mocha-snippets.el",
+ "unstable": {
+ "version": [
+ 20190417,
+ 1931
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "361a3809f755577406e109b9e44d473dfa7c08e0",
+ "sha256": "0xcybq0cwd0c33bi1jf7h098a4anc4gkj3m1c97gc8mz9x4fjksy"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "361a3809f755577406e109b9e44d473dfa7c08e0",
+ "sha256": "0xcybq0cwd0c33bi1jf7h098a4anc4gkj3m1c97gc8mz9x4fjksy"
+ }
+ },
+ {
+ "ename": "mocker",
+ "commit": "16a4fe34a6f354d396c24ff13e15157510202259",
+ "sha256": "1g90jp1czrrzrmn7n4linby3q4fb4gcflzv2amjv0sdimw1ln1w3",
+ "fetcher": "github",
+ "repo": "sigma/mocker.el",
+ "unstable": {
+ "version": [
+ 20150917,
+ 154
+ ],
+ "deps": [
+ "eieio",
+ "el-x"
+ ],
+ "commit": "6a1d7c9189bd721debd1a60707526e43a733f537",
+ "sha256": "0i96fn5ji1z78in4nr316sgfp2mc8lmxijslw3k9q1v50j91bcya"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "eieio",
+ "el-x"
+ ],
+ "commit": "55b078b53ea49e48bd1821d96f0fb86f794fdc6c",
+ "sha256": "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"
+ }
+ },
+ {
+ "ename": "modalka",
+ "commit": "fa0a02da851a603b81e183f461da55bf4c71f0e9",
+ "sha256": "0bkjykvl6sw797h7j76dzn1viy598asly98gcl5wrq13n4w1md4c",
+ "fetcher": "github",
+ "repo": "mrkkrp/modalka",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1335
+ ],
+ "commit": "4b2b92b14ed0b64fb0a0fa80a374ec9f87fbfeb6",
+ "sha256": "18dbnicaqryq4xhv4d7hds61k85kj3bnpcqv7rippvlyrqm2r6wx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "commit": "1259afa084f58d143d133aac56a6c0c10bc460f2",
+ "sha256": "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"
+ }
+ },
+ {
+ "ename": "mode-icons",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "1dqcry27rz7afyvjg7345wysp6wmh8fpj32ysk5iw5i7v5scf6kf",
+ "fetcher": "github",
+ "repo": "ryuslash/mode-icons",
+ "unstable": {
+ "version": [
+ 20190627,
+ 2121
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f16969f053f43bf706257673d0800de438d4e33b",
+ "sha256": "0lvpvmc1fhhjg9rgh8gy6c0nqfn89v9cxy5pjpy0c8bdnwys2x7q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "37581ed911e4469f773ddfb7b40a85592d323b76",
+ "sha256": "1ykj68d4h92i4qv90zgwrf9jhy1n22l2h9k5f1zsn8hvz9mhj1av"
+ }
+ },
+ {
+ "ename": "mode-line-bell",
+ "commit": "26f19808655b0242a1e9e5e5d41f7f794542e243",
+ "sha256": "1ri771hb91b7hd203f8zp83h5hcndh8ccc1y8shhqmak6a6l04wk",
+ "fetcher": "github",
+ "repo": "purcell/mode-line-bell",
+ "unstable": {
+ "version": [
+ 20181029,
+ 516
+ ],
+ "commit": "26ac7d97abdeb762ceaeab6b892f3ed7e3412494",
+ "sha256": "0qbd4y10510q6r21zzxnr16ylrm7qh1qc7ll5wxab0yi03jaas3s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "4985ba42f5a19f46ddbf9b3622453a9694995ce5",
+ "sha256": "13n3di05lgqfm4f8krn3p36yika5znhymp5vr2d747x54hqmgh7y"
+ }
+ },
+ {
+ "ename": "mode-line-debug",
+ "commit": "b0080ab9ef1eca5dd19b3fd9af536d8aa17773a2",
+ "sha256": "0ppj14bm3rx3xgg4mfxa5zcm2r129jgmsx817wq3h7akjngcbfkd",
+ "fetcher": "github",
+ "repo": "tarsius/mode-line-debug",
+ "unstable": {
+ "version": [
+ 20180318,
+ 2225
+ ],
+ "commit": "a0fcc394b07d2414bd6f722da10f1c7567333f6b",
+ "sha256": "04vsb0lniy90bhnqb590dap9y4wac64xz0lc2rlfczic0nrqd1aa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 3
+ ],
+ "commit": "a0fcc394b07d2414bd6f722da10f1c7567333f6b",
+ "sha256": "04vsb0lniy90bhnqb590dap9y4wac64xz0lc2rlfczic0nrqd1aa"
+ }
+ },
+ {
+ "ename": "modern-cpp-font-lock",
+ "commit": "4bfc2386049adfe7a8e20da9b69fb73d6cb71387",
+ "sha256": "0h43icb5rqbkc5699kdy2mrjs5448phl18jch45ylp2wy2r8c2qj",
+ "fetcher": "github",
+ "repo": "ludwigpacifici/modern-cpp-font-lock",
+ "unstable": {
+ "version": [
+ 20200530,
+ 1010
+ ],
+ "commit": "865955d0035382a17a7f03add0d00d0bd812b103",
+ "sha256": "1x04jgc94gpdci24rahb1awvkjii1vdv7bdr9gyiksbry75dsxi1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "commit": "3e9c18b5a2ade485565f5191f12a724f1969dbb0",
+ "sha256": "0jg5yix4c18gvy5n4wsi7zg2sb7r0bw0xlmq0w15g3z63nhy69vc"
+ }
+ },
+ {
+ "ename": "modern-fringes",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0rkcpjhcw4nfsmsr83zng941cf1mpdparbmqn5ps3qwifiw19m5f",
+ "fetcher": "github",
+ "repo": "SpecialBomb/emacs-modern-fringes",
+ "unstable": {
+ "version": [
+ 20200321,
+ 1817
+ ],
+ "commit": "108daba8407dc8acf140157e7f49137c397a0af7",
+ "sha256": "15370yw3147fzx8ly1svk7xvm0l9fg2gbzd8sx9ls93nyml7c5k7"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 4
+ ],
+ "commit": "6884dd16e4d76dedd792f0c5fed48ca8a2f11222",
+ "sha256": "10h5557sppi41pgbbjsffc9n67h8ja28skhdlklc0n6zap71m87s"
+ }
+ },
+ {
+ "ename": "modtime-skip-mode",
+ "commit": "486a675ca4898f99133bc18202e123fb58af54c0",
+ "sha256": "1drafwf4kqp83jp47j2ddl2n4a92zf1589fnp6c72hmjqcxv3l28",
+ "fetcher": "github",
+ "repo": "jordonbiondo/modtime-skip-mode",
+ "unstable": {
+ "version": [
+ 20140128,
+ 2201
+ ],
+ "commit": "c0e49523aa26b2263a8693691ac775988015f592",
+ "sha256": "0ri841cwx2mx8ri50lhvifmxnysdc022421mlmklql0252kn775l"
+ }
+ },
+ {
+ "ename": "modus-operandi-theme",
+ "commit": "6f3291ebede304fe14240870372c0d396f43c0d9",
+ "sha256": "15rq4l14a7y6p8vhgbs017crfwyp7fq61n03xbfycq92mlx89kgx",
+ "fetcher": "gitlab",
+ "repo": "protesilaos/modus-themes",
+ "unstable": {
+ "version": [
+ 20200819,
+ 628
+ ],
+ "commit": "26a211835b6e62e4ad29b2feee75472e02046fa8",
+ "sha256": "12rqgyrnk6x2a7b635wg4c5ihyh9s8ig7s1431xqj91pdx7756kx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 11,
+ 0
+ ],
+ "commit": "c376b08059028737390f41fb82f64d748c42970c",
+ "sha256": "08alhr6d7shmm1fcvca0a0ipi9mvnaqp5klvqdb1d171h457fcv3"
+ }
+ },
+ {
+ "ename": "modus-vivendi-theme",
+ "commit": "74909ab53df89c5b720c89527b3b4c9aec8351b9",
+ "sha256": "16bs48amvwikp4ikv8fs9zrsyz942jdzlz9ddf3qv8c9vpc5x58q",
+ "fetcher": "gitlab",
+ "repo": "protesilaos/modus-themes",
+ "unstable": {
+ "version": [
+ 20200819,
+ 628
+ ],
+ "commit": "26a211835b6e62e4ad29b2feee75472e02046fa8",
+ "sha256": "12rqgyrnk6x2a7b635wg4c5ihyh9s8ig7s1431xqj91pdx7756kx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 11,
+ 0
+ ],
+ "commit": "c376b08059028737390f41fb82f64d748c42970c",
+ "sha256": "08alhr6d7shmm1fcvca0a0ipi9mvnaqp5klvqdb1d171h457fcv3"
+ }
+ },
+ {
+ "ename": "moe-theme",
+ "commit": "4efefd7edacf90620436ad4ef9ceb470618a8018",
+ "sha256": "1nqvj8spvffgjvqlf25rcm3dc6w1axb6qlwwsjhq401a6xhw67f6",
+ "fetcher": "github",
+ "repo": "kuanyui/moe-theme.el",
+ "unstable": {
+ "version": [
+ 20200216,
+ 1927
+ ],
+ "commit": "01d00a8d75b19f641b639ba23793cdd507c61f05",
+ "sha256": "14higsv6h0pka90gr25a3yxh95xn65l6qxb39mmdzkfdlnzsg664"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "b8f0206614ab40ffb75e50ce6c38675fb9c7cf2e",
+ "sha256": "0pn3a1rrj7ycxh91x3q008b6rmq7rbl8ir6diqzqfp6y465pn2w2"
+ }
+ },
+ {
+ "ename": "molecule",
+ "commit": "7421b67dc51abf13bb028e467bb4c83f857a342e",
+ "sha256": "0kdwmn4gb382igy979y7x2fdqcnfxlb4dvqvm6w7ghs564grzgj4",
+ "fetcher": "git",
+ "url": "https://git.daemons.it/drymer/molecule.el/",
+ "unstable": {
+ "version": [
+ 20180527,
+ 743
+ ],
+ "commit": "2ef72b81d9aa24ea782b71a061a3abdad6cae162",
+ "sha256": "0fn16jlpdfy35mz0n27bzdiwgvv8l9nfxf8j4pypgpqarnxzpsgc"
+ }
+ },
+ {
+ "ename": "molokai-theme",
+ "commit": "b1fdc89f0c52231f238096a1d42c2c330cb50d2c",
+ "sha256": "0srdh3yx7j6xs7rgpzmsyzz6ds00kq887rs2sfa0nvk0j0ga6baf",
+ "fetcher": "github",
+ "repo": "alloy-d/color-theme-molokai",
+ "unstable": {
+ "version": [
+ 20151016,
+ 1545
+ ],
+ "commit": "04a44f21184b6a26caae4f2c92db9019d883309c",
+ "sha256": "1hqa59pdrnwfykyl58lr8pfbh2f13sygvmrh707hbwc2aii0jjv2"
+ }
+ },
+ {
+ "ename": "mongo",
+ "commit": "7856a62fb86415c88aa72b574895328c93c10a09",
+ "sha256": "1xkhn8h6z60jah7v5gvkp4pfwdnmc2wcka4rcjaky51yv50zymad",
+ "fetcher": "github",
+ "repo": "emacsorphanage/mongo",
+ "unstable": {
+ "version": [
+ 20150315,
+ 1219
+ ],
+ "commit": "595529ddd70ecb9fab8b11daad2c3929941099d6",
+ "sha256": "0z8mcfhj425hb91fkj1pyg3apw1kf4mgy8lx6n1sc8zmib38py0x"
+ }
+ },
+ {
+ "ename": "monitor",
+ "commit": "b9df614e8e7b9dfdbd7eec552a2b13e0f5acfc22",
+ "sha256": "11n4nv6vkjw434yrwqjw20229m2sxqxxdp7sg99gzrd5gjyab643",
+ "fetcher": "github",
+ "repo": "GuiltyDolphin/monitor",
+ "unstable": {
+ "version": [
+ 20161018,
+ 1144
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "63f4643a0ee81616dbb692b8b03bae21df2283e2",
+ "sha256": "1hl7nzxvjwv9kknyjikkbxw1gbi5kx4hkkq7sw6jnj06192n93yg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "8c67c06f60a89b2583bae90afc91a7e7d73260fd",
+ "sha256": "1r2sns49f5fw4f122s165sa41nkrkq2qs20n98g2pfd1whflqfnb"
+ }
+ },
+ {
+ "ename": "monky",
+ "commit": "9b33d35e3004f3cc8a5c17aa1ee07dd21d2d46dc",
+ "sha256": "1m7hy3ijwgxqjk3vjvqkxqj8b5bqnd201bmf302k45n0dpjmhshz",
+ "fetcher": "github",
+ "repo": "ananthakumaran/monky",
+ "unstable": {
+ "version": [
+ 20190619,
+ 1637
+ ],
+ "commit": "9d379a2306a8b7cd9c4faba20490480acdc1d763",
+ "sha256": "0dvywqas1vx0f0qlly8259772zj64sygv3hnmm9yqzy4v725qbhp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "099f1af9d3f6f6143f5e98a9b844f965a011a120",
+ "sha256": "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"
+ }
+ },
+ {
+ "ename": "monochrome-theme",
+ "commit": "d00b78ead693e844e35c760fe2c39b8ed6cb0d81",
+ "sha256": "0cq2clliwcwnn1spz1w6y5qw1lgqznw212rcc4q6f1kslq0jyk5x",
+ "fetcher": "github",
+ "repo": "fxn/monochrome-theme.el",
+ "unstable": {
+ "version": [
+ 20140326,
+ 1050
+ ],
+ "commit": "bfca67fe7365310bc47ae9ca96c417caada54896",
+ "sha256": "0jvsss38rgry37dnshxbqxcj7qh1q6iyza58kix47h5wbnrpvszn"
+ }
+ },
+ {
+ "ename": "monokai-alt-theme",
+ "commit": "6ff05515c2f3bd80cb8d7de9afc8fd983e62ad91",
+ "sha256": "135bli9vhgl898526q6znjvck356bja1ylsfi95d9445jd136c4v",
+ "fetcher": "github",
+ "repo": "dawidof/emacs-monokai-theme",
+ "unstable": {
+ "version": [
+ 20170630,
+ 2048
+ ],
+ "commit": "f342b6afc31f929be0626eca2d696ee9fab78011",
+ "sha256": "1lgsqrwf21b0rh4x8nmj08a46ld7dkq4jhwxi1fi7a9xhmi2yd4i"
+ }
+ },
+ {
+ "ename": "monokai-pro-theme",
+ "commit": "0d5fbd76a40d84dd2d91a1022f59c15e6db6b90a",
+ "sha256": "05ya47cmry2fprssjx3adwij9zd218rcnikpw9hximwlklmzjvb3",
+ "fetcher": "github",
+ "repo": "belak/emacs-monokai-pro-theme",
+ "unstable": {
+ "version": [
+ 20200525,
+ 1430
+ ],
+ "commit": "d1bc669200bf5753cf1963e5e65269e0d60648d5",
+ "sha256": "0zqrn1pvlrgbf0yc34bycahvrl8sl67jmc0436yx3lgjwpkvhf0f"
+ }
+ },
+ {
+ "ename": "monokai-theme",
+ "commit": "2bc9ce95a02fc4bcf7bc7547849c1c15d6db5089",
+ "sha256": "13mv4vgsmdbf3v748lqi7b42hvr3yp86n97rb6792bcgd3kbdx7a",
+ "fetcher": "github",
+ "repo": "oneKelvinSmith/monokai-emacs",
+ "unstable": {
+ "version": [
+ 20200416,
+ 2001
+ ],
+ "commit": "4281fc13dadef98942c8d43024de024f2392fec5",
+ "sha256": "0049ny3m1mgn0b97m0clcmmh2xzn66flbsd8k45dn0qxm5wlaj3n"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 5,
+ 3
+ ],
+ "commit": "1143c072f5153ae1a69807e5e8af163069b947d2",
+ "sha256": "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"
+ }
+ },
+ {
+ "ename": "monotropic-theme",
+ "commit": "38222d109ece0030b0bfafb242aa100694b2bfcf",
+ "sha256": "129yqjh4gaab1kjijzkzbw50alzdiwmpv9cl3lsy04m8zk02shl8",
+ "fetcher": "github",
+ "repo": "caffo/monotropic-theme",
+ "unstable": {
+ "version": [
+ 20181015,
+ 1230
+ ],
+ "commit": "36df566aa8225e303f6c9d90c00740dd678a415e",
+ "sha256": "05n8s3719f6yrh4fi5xyzzlhpsgpbc60mmfmzycxlb4sinq9bfks"
+ }
+ },
+ {
+ "ename": "monroe",
+ "commit": "590e5e784c5a1c12a241d90c9a0794d2737a61ef",
+ "sha256": "04rhninxppvilk7s90g0wwa0g9vfcg7mk8mrb2m2c7cb9vj6wyig",
+ "fetcher": "github",
+ "repo": "sanel/monroe",
+ "unstable": {
+ "version": [
+ 20200703,
+ 1254
+ ],
+ "commit": "b540e13cf767055086c37b2878e551fd3eddf5c5",
+ "sha256": "0sfj0b7j3385la01d8vq1s8ynpl5vzwdx7vdpyhbi3hrh02xkcqh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "commit": "0b9b043f042145bf62969add7ec476ea51da7cbd",
+ "sha256": "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"
+ }
+ },
+ {
+ "ename": "mood-line",
+ "commit": "b10524f105943648ecf52f007f363b7b5534865e",
+ "sha256": "0wj8rdgsqsdd2ps3w7sj8a7yhhz0iczwgnalalzws42x8s9yn4j0",
+ "fetcher": "gitlab",
+ "repo": "jessieh/mood-line",
+ "unstable": {
+ "version": [
+ 20200722,
+ 2327
+ ],
+ "commit": "64cbd61c3d9ebf8eb7e1b6366279e32382405f90",
+ "sha256": "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 4
+ ],
+ "commit": "64cbd61c3d9ebf8eb7e1b6366279e32382405f90",
+ "sha256": "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"
+ }
+ },
+ {
+ "ename": "mood-one-theme",
+ "commit": "44fbe8c54e4052e6c38849a12425db8f7c04fcc1",
+ "sha256": "1ar3vsc0d838m2k54f4v8a4mc0g21qa9rmgr2wb763vb7vpcznmi",
+ "fetcher": "gitlab",
+ "repo": "jessieh/mood-one-theme",
+ "unstable": {
+ "version": [
+ 20200730,
+ 18
+ ],
+ "commit": "00e2d3797a271c0b3ecb0bab56dc705558015311",
+ "sha256": "0cq5y5fcx581vv8fzbxn5k71r95ss92yvddw4nk85h3710scclds"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 6
+ ],
+ "commit": "00e2d3797a271c0b3ecb0bab56dc705558015311",
+ "sha256": "0cq5y5fcx581vv8fzbxn5k71r95ss92yvddw4nk85h3710scclds"
+ }
+ },
+ {
+ "ename": "moody",
+ "commit": "63521fe6a1e540544a07231cc94144439e8caea7",
+ "sha256": "095241sjw330fb5lk48aa4zx8xbzk8s4ml22n6a8bzr99nkhn5jy",
+ "fetcher": "github",
+ "repo": "tarsius/moody",
+ "unstable": {
+ "version": [
+ 20200514,
+ 1946
+ ],
+ "commit": "f6bebfe6fe51b728ebd013b7084becad23cabad3",
+ "sha256": "0n8p864yj5m3n7f9qiq9hy24dwfvv0a0wchx2818rppff6vfq3hf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 4
+ ],
+ "commit": "f6bebfe6fe51b728ebd013b7084becad23cabad3",
+ "sha256": "0n8p864yj5m3n7f9qiq9hy24dwfvv0a0wchx2818rppff6vfq3hf"
+ }
+ },
+ {
+ "ename": "moom",
+ "commit": "c55081230ee02346ed02e0ab19ee2302e7b9ffa7",
+ "sha256": "11l4yc8fhxsrsjfksqj4cxr13jln0khhd2dn09i94n71dx7lybh1",
+ "fetcher": "github",
+ "repo": "takaxp/moom",
+ "unstable": {
+ "version": [
+ 20200725,
+ 126
+ ],
+ "commit": "d6dc1f42ccf0d53c8f5d5a327442ae52b2de7aed",
+ "sha256": "0s0liwc9sriv2ar6905n2vsdf9x8l85mwfyw05kr6vmxh9w08wbx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "commit": "1d8344cec018a417cb5845c0717c7400c281caa1",
+ "sha256": "0ig5j4dzb0vxx145yv4ly93hndc2hkbx6dfng2zy7agf124ygh37"
+ }
+ },
+ {
+ "ename": "moonscript",
+ "commit": "3046afee95277024830d7d372f2f1c84a0adcb00",
+ "sha256": "1fi4hg5gk5zpfkrk0hqghghkzbbi33v48piq2i085i4nc6m3imp0",
+ "fetcher": "github",
+ "repo": "k2052/moonscript-mode",
+ "unstable": {
+ "version": [
+ 20170831,
+ 2226
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "56f90471e2ced2b0a177aed4d8c2f854797e9cc7",
+ "sha256": "1v2phdpfngrb01x4qygpfgxdzpgvbprki2kbmpc83vlqxlmkvvjk"
+ }
+ },
+ {
+ "ename": "moonshot",
+ "commit": "a0d294051a792679d215dbb830a600fdf5090866",
+ "sha256": "12gj1df28s7c05vplsx88hcsxjr13hnh8sc7878pj11kabgihpf6",
+ "fetcher": "github",
+ "repo": "ageldama/moonshot",
+ "unstable": {
+ "version": [
+ 20200210,
+ 2356
+ ],
+ "deps": [
+ "cl-lib",
+ "counsel",
+ "f",
+ "levenshtein",
+ "projectile",
+ "realgud",
+ "s",
+ "seq"
+ ],
+ "commit": "83a9933cd4af234ae15fdc3a39e660d646b0c246",
+ "sha256": "0rljyk4pkjwwh9mrpjdzywc4lyf163glzqhjs3nlvfy2yz9j0863"
+ }
+ },
+ {
+ "ename": "morganey-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "18cbmx8lnypgxkisxa3lrh88v8l9k0q8fnai5ps8ngvfgz42rlqp",
+ "fetcher": "github",
+ "repo": "morganey-lang/morganey-mode",
+ "unstable": {
+ "version": [
+ 20170118,
+ 934
+ ],
+ "commit": "5cf3870432a2aeb69d373abe63b3be1f325f6d21",
+ "sha256": "04xv4v2n03axjlpm9pg3j4zjapqjb7is3anx6laa90zbw3z2iv9z"
+ }
+ },
+ {
+ "ename": "morlock",
+ "commit": "b6ef53bbc80edda12a90a8a9705fe14415972833",
+ "sha256": "0693jr1k8mzd7hwp52azkl62c1g1p5yinarjcmdksfyqblqq5jna",
+ "fetcher": "github",
+ "repo": "tarsius/morlock",
+ "unstable": {
+ "version": [
+ 20180318,
+ 2023
+ ],
+ "commit": "b883d48024ddfffebe2d0dd69f5ed54c617f8834",
+ "sha256": "0xns4f39x012n7piiv6kgb45n932wxs5fp4yyq44p1mnr0m8v4y8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "commit": "b883d48024ddfffebe2d0dd69f5ed54c617f8834",
+ "sha256": "0xns4f39x012n7piiv6kgb45n932wxs5fp4yyq44p1mnr0m8v4y8"
+ }
+ },
+ {
+ "ename": "mosey",
+ "commit": "76a9a43eea68db9f82c07677235c481a6f243aa2",
+ "sha256": "0zprzr5aqv77kmg1ki9w6fw1nc2ap6yqjl4ak05a1i9cq8g6nf3m",
+ "fetcher": "github",
+ "repo": "alphapapa/mosey.el",
+ "unstable": {
+ "version": [
+ 20180614,
+ 1649
+ ],
+ "commit": "2e3ac9d334fa2937ed5267193dfd25d8e1f14dc2",
+ "sha256": "1yxy6m5igvsy37vn93ijs0b479v50vsnsyp8zi548iy2ribr0qr5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "2e3ac9d334fa2937ed5267193dfd25d8e1f14dc2",
+ "sha256": "1yxy6m5igvsy37vn93ijs0b479v50vsnsyp8zi548iy2ribr0qr5"
+ }
+ },
+ {
+ "ename": "most-used-words",
+ "commit": "5c240664b29e0e455d3d2503381b9db1ed0ea20f",
+ "sha256": "1129wbn7myzqijzcs1bsy3fh6iizijfpkpa1mw6j9s618anj282p",
+ "fetcher": "git",
+ "url": "https://github.com/udyantw/most-used-words.git",
+ "unstable": {
+ "version": [
+ 20200808,
+ 931
+ ],
+ "commit": "f712879493660c3c3ee3793470b8f8939b79c2b0",
+ "sha256": "0aim8kzs95xjf6ldc4qy9xma1crxybmafs40sqaq35cbfszg0mf0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "90c09da92b30c6497e9141f0edfe7842440c4d53",
+ "sha256": "0bcqg5p7v6wi3g68c9qpv3rvi9lh6427dd0gmmnwvs1qysz28f1b"
+ }
+ },
+ {
+ "ename": "mote-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0ccsyl0wvf0nbsw57sxad7w0c0i5al5s5mjrjjq8bnfh4dyj2x0y",
+ "fetcher": "github",
+ "repo": "inkel/mote-mode",
+ "unstable": {
+ "version": [
+ 20160123,
+ 29
+ ],
+ "deps": [
+ "ruby-mode"
+ ],
+ "commit": "666c6641addbd3b337a7aa01fd2742ded2f41b83",
+ "sha256": "10mf96r75558scn71pri71aa8nhp6hmnb5rwjxlh5dlf80r5dfd7"
+ }
+ },
+ {
+ "ename": "motion-mode",
+ "commit": "c1e3a2091a73c7d725c929313290566f5ca19404",
+ "sha256": "1lfsc8ayiz2v3dfn8c0mmfch8vpzqyddxw8kscan2lzl2lcj50h0",
+ "fetcher": "github",
+ "repo": "ainame/motion-mode",
+ "unstable": {
+ "version": [
+ 20140920,
+ 156
+ ],
+ "deps": [
+ "flymake-cursor",
+ "flymake-easy"
+ ],
+ "commit": "4c94180e3ecea611a61240a0c0cd48f1032c4a55",
+ "sha256": "17570labnwdnwca2cg4ga0mrrm00n0h3wlxry823k5yn3k93rnj1"
+ }
+ },
+ {
+ "ename": "mouse-slider-mode",
+ "commit": "8fa747999bb928c3836400a43d8ab63939381673",
+ "sha256": "0aqxjm78k7i8c59w6mw9wsfw3rail1pg40ac1dbcjkm62fjbh5hy",
+ "fetcher": "github",
+ "repo": "skeeto/mouse-slider-mode",
+ "unstable": {
+ "version": [
+ 20161021,
+ 1914
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b3c19cd231edecce76787c5a9bbe5e4046d91f88",
+ "sha256": "1qkbrwicp3gaknnmfrajf1qdyhj5s0c09cx62869rp2721p8rqaw"
+ }
+ },
+ {
+ "ename": "move-dup",
+ "commit": "3ea1f7f015a366192492981ff75672fc363c6c18",
+ "sha256": "0b0lmiisl9yckblwf7619if88qsmbka3bl4qiaqam7fka7psxs7f",
+ "fetcher": "github",
+ "repo": "wyuenho/move-dup",
+ "unstable": {
+ "version": [
+ 20200819,
+ 940
+ ],
+ "commit": "c5a346d3058011b8152cceeb45858f9b4cef1b69",
+ "sha256": "1dfsfxy7v85qc2gl14gxhngnvkcdbq9gadnsabs1fq56qdgmq814"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "commit": "c5a346d3058011b8152cceeb45858f9b4cef1b69",
+ "sha256": "1dfsfxy7v85qc2gl14gxhngnvkcdbq9gadnsabs1fq56qdgmq814"
+ }
+ },
+ {
+ "ename": "move-text",
+ "commit": "82bfd0f41e42eed1d4c2361ec1d1685edebbac1b",
+ "sha256": "04bfrkanafmbrdyw06ciw9kiyn7h3kpikxk3clx2gc04jl67hzgy",
+ "fetcher": "github",
+ "repo": "emacsfodder/move-text",
+ "unstable": {
+ "version": [
+ 20170909,
+ 330
+ ],
+ "commit": "7cbc941a9150468609010a93c429117da2523903",
+ "sha256": "1irrcbqi1m6pcsjkbd3nqri158qhl0bcynciwwxdfqb45i67a1m9"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 8
+ ],
+ "commit": "bdaf3e3a0d33cd528cad1d10facbdf0635232e4d",
+ "sha256": "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"
+ }
+ },
+ {
+ "ename": "mowedline",
+ "commit": "86f7df6b8df3398ef476c0ed31722b03f16b2fec",
+ "sha256": "0c2hvvwa7s5iyz517jaskshdcq9zs15zr6xsvrcb3biahrh4bmfb",
+ "fetcher": "github",
+ "repo": "retroj/mowedline",
+ "unstable": {
+ "version": [
+ 20161122,
+ 235
+ ],
+ "commit": "6121b7d4aacd18f7b24da226e61dbae054e50a7c",
+ "sha256": "16j3y4hffnv2rg97p49hqz3x1icp7qkpcjxhalny5l4gysx9mfqg"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 3,
+ 0
+ ],
+ "commit": "c17501b48ded8261d815ab60bf14cddf7040be72",
+ "sha256": "1k3b018xq2qqq30v0ik13imy9c84241kyavj5ascxhywx956v18g"
+ }
+ },
+ {
+ "ename": "moz",
+ "commit": "6839c5e52364fb32f6d8a351e5c2f21fbd6669a1",
+ "sha256": "0ar2xgsi7csjj6fgiamrjwjc58j942dm32j3f3lz21yn2c4pnyxi",
+ "fetcher": "github",
+ "repo": "bard/mozrepl",
+ "unstable": {
+ "version": [
+ 20150805,
+ 1706
+ ],
+ "commit": "ab3e79914445039ceb62f7f2dc342358fec3492e",
+ "sha256": "1c7dsip5wmlf7x2hziwil5n3igvpnh17d7yg8lsg001y5sjl3mjv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "646208b67e6c9c56d188db1eba999846d518935f",
+ "sha256": "13bf5jn1kgqg59j5czlzvajq2fw1rz4h5jqfc7x8w1a067nymf2c"
+ }
+ },
+ {
+ "ename": "moz-controller",
+ "commit": "fcc20337594a76a547f696adece121ae592c6917",
+ "sha256": "18gca1csl9dfi9995mky8cbgi3xzf1if8pzdjiz5404gzcqk0rfd",
+ "fetcher": "github",
+ "repo": "RenWenshan/emacs-moz-controller",
+ "unstable": {
+ "version": [
+ 20151209,
+ 206
+ ],
+ "deps": [
+ "moz"
+ ],
+ "commit": "46f665c03574fa922de767fc29795e0db4a7c5c6",
+ "sha256": "0fssn33ld6xhjlwg1dbrjg8sa0pjmglq0dw792yrmvm4fj0zjph8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "moz"
+ ],
+ "commit": "42fd842039620de7fb122f7e4ffc1ab802ee97c5",
+ "sha256": "1w1i1clkjg9mj1g4i2y3xw3hyj8s7h9gr04qgyb9c1q8vh11z8d0"
+ }
+ },
+ {
+ "ename": "mozc",
+ "commit": "30fef77e1d7194ee3c3c1d4775c349a4a9f6af2c",
+ "sha256": "0nslh4xyqpvzdxcgrd1bzaqcdz77bghizh6n2w6wk46cflir8xba",
+ "fetcher": "github",
+ "repo": "google/mozc",
+ "unstable": {
+ "version": [
+ 20180101,
+ 800
+ ],
+ "commit": "afb03ddfe72dde4cf2409863a3bfea160f7a66d8",
+ "sha256": "0w2dy2j9x5nc7x3g95j17r3m60vbfyn5j617h7js9xryv33yzpgx"
+ }
+ },
+ {
+ "ename": "mozc-cand-posframe",
+ "commit": "2c952ffcf7c2c358500df86e3ddeb6a10a119725",
+ "sha256": "0spxc1z7glls47k6cpq14cpbx9h0svl9qn954x8f1c7kcdy4wz6p",
+ "fetcher": "github",
+ "repo": "akirak/mozc-posframe",
+ "unstable": {
+ "version": [
+ 20200208,
+ 750
+ ],
+ "deps": [
+ "mozc",
+ "posframe",
+ "s"
+ ],
+ "commit": "1d07d5055381008ccbb29b97315d140e09a7ee95",
+ "sha256": "1hwc66xj2js5srmshmba5q6adn638qgbslnxg9l15znfhq3qcy9w"
+ }
+ },
+ {
+ "ename": "mozc-im",
+ "commit": "4b651b7f1c15b44577b3c2b7493264ed802cf073",
+ "sha256": "1gqzmm712npj36qfi506zgl0ycd6k7l5m46c7zz2z2lb6jpssw10",
+ "fetcher": "github",
+ "repo": "d5884/mozc-im",
+ "unstable": {
+ "version": [
+ 20160412,
+ 22
+ ],
+ "deps": [
+ "mozc"
+ ],
+ "commit": "df614a1076c28a11551fb3e822868bae47e855a5",
+ "sha256": "0cpcldizgyr125j7lzkl8l6jw1hc3fb12cwgkpjrl6pjpr80vb15"
+ }
+ },
+ {
+ "ename": "mozc-popup",
+ "commit": "49bdcf035b9f885a689b9dc21817aecdcd09768b",
+ "sha256": "1n43lwflxzzyskxgzg19rg3hiqqkf5l7vfgaydryf4sk8480x687",
+ "fetcher": "github",
+ "repo": "d5884/mozc-popup",
+ "unstable": {
+ "version": [
+ 20150224,
+ 34
+ ],
+ "deps": [
+ "mozc",
+ "popup"
+ ],
+ "commit": "f0684b875a7427ec08f8df13939a486e5d5cf420",
+ "sha256": "1mbpkjc6sk7qqmgsmr5a5l2ycwnqp8bkwgikdavgs6hnal10bkmn"
+ }
+ },
+ {
+ "ename": "mozc-temp",
+ "commit": "e0c77275d759bf73df11fa151b4e737d7cb15adf",
+ "sha256": "0x1bsa1py0kn73hzbsb4ijl0bqng8nib191vgn6xq8f5cx55044d",
+ "fetcher": "github",
+ "repo": "HKey/mozc-temp",
+ "unstable": {
+ "version": [
+ 20160228,
+ 840
+ ],
+ "deps": [
+ "dash",
+ "mozc"
+ ],
+ "commit": "90a6eb1db8fa1283b944432cfb83739286b37f92",
+ "sha256": "03pqqzzca9z3a1nbrfdkvfczzi7nr3bn75x7m4mdww9z3wxxda2c"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "mozc"
+ ],
+ "commit": "7f5dd5fc8ceeca9b1822f7e056a4be67e2e74959",
+ "sha256": "1gdi2pz8450h11aknz3hbgjlx09w6c4l8d8sz0zv3pb1z8cqkgqv"
+ }
+ },
+ {
+ "ename": "mpages",
+ "commit": "b535c2862c4fad568324466883f23ba9f39e787f",
+ "sha256": "11scjjwwrpgaz6i4jq9y7m864nfak46vnbfb0w15625znz926jcs",
+ "fetcher": "github",
+ "repo": "slevin/mpages",
+ "unstable": {
+ "version": [
+ 20150710,
+ 1404
+ ],
+ "commit": "39a72a0931ab1cdbfdf0ab9f412dc12d43a3829f",
+ "sha256": "11c8pr3s77aq34ic32lnsialwh8bw3m78kj838xl2aab2pgrlny2"
+ }
+ },
+ {
+ "ename": "mpdel",
+ "commit": "bb25443752e18e47afc63d5497cc5052c388a607",
+ "sha256": "1py6zk16yl7pyql2qxzd770clzszw7c769hw70n963kns1qmpif8",
+ "fetcher": "github",
+ "repo": "mpdel/mpdel",
+ "unstable": {
+ "version": [
+ 20200221,
+ 1316
+ ],
+ "deps": [
+ "libmpdel",
+ "navigel"
+ ],
+ "commit": "29e7c46f83bab7aedfa0136c58e776faba6ad4ed",
+ "sha256": "1lz3i3ygdihr7r9rnb08fkcxrdg905wkb0s55pid57yhh4iva7fg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "libmpdel"
+ ],
+ "commit": "a2da2f2fe2357641909514da788f7c6cbe5801f4",
+ "sha256": "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"
+ }
+ },
+ {
+ "ename": "mpmc-queue",
+ "commit": "30511f1e5eaf45b5f43fbacdd6c7254cb39b1d2c",
+ "sha256": "08jcmhfl87nsg6zgv582yfs152bqihbcssh085gxxqn2x99li354",
+ "fetcher": "github",
+ "repo": "smizoe/mpmc-queue",
+ "unstable": {
+ "version": [
+ 20180303,
+ 2029
+ ],
+ "deps": [
+ "queue"
+ ],
+ "commit": "df07d6bef7468edb1d73ef73b8331b94d0e5d0ca",
+ "sha256": "17817l3afghg9z8jxkj61yg85plmr74ki3wf4hz685llx8fr69w0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "queue"
+ ],
+ "commit": "4775ddcb120528828ef1fcb7ee761524a0907a31",
+ "sha256": "0fbrx288vpd0vx2cph7kfclr7hhplqjgynr6csmkh8jaskv26p79"
+ }
+ },
+ {
+ "ename": "mpv",
+ "commit": "2392c1d1042ac6a42bbf9aa7e394c03e178829d0",
+ "sha256": "1vq308ac6jj1h8qa2b2sypisb38hbvwjimqndhpfir06fghkw94l",
+ "fetcher": "github",
+ "repo": "kljohann/mpv.el",
+ "unstable": {
+ "version": [
+ 20200315,
+ 2158
+ ],
+ "deps": [
+ "cl-lib",
+ "json",
+ "org"
+ ],
+ "commit": "2d40c4550558eb1bf35a69446777c4e9cae7a623",
+ "sha256": "0f9iq83dfj73gbx7zndvh32b102582lzv4xb8gvqjs26k5bywdxj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "json",
+ "names",
+ "org"
+ ],
+ "commit": "059135de3979e044f14503806047476d9be9f0e8",
+ "sha256": "1pjhch8vah0kf73fl2fk6khhrx1kflggd3zlxrf7w4fxr0qn8la3"
+ }
+ },
+ {
+ "ename": "mqr",
+ "commit": "0023747e8173fab8e88143ee95a31540a079c6bf",
+ "sha256": "1nw713sha29q1zgsxxfrkggkrk6q8vvk9sdi1s539r8h35bc3jx0",
+ "fetcher": "github",
+ "repo": "calancha/multi-replace",
+ "unstable": {
+ "version": [
+ 20180527,
+ 1204
+ ],
+ "commit": "4ade19d4620b8b61340290bf63fa56d5e493859f",
+ "sha256": "0pkxmv0rla9f2ly9fq3i3mrsa2q8rsrs4pk6w7wpi3v5fbj1jmd6"
+ }
+ },
+ {
+ "ename": "mqtt-mode",
+ "commit": "b85c84ff9523026620e5b3cf864bbc7b9f81d57a",
+ "sha256": "1zbnhd65c9wz9yr29j37c8z7vz3axpfwkzx0z8xjplp40mafpz1z",
+ "fetcher": "github",
+ "repo": "andrmuel/mqtt-mode",
+ "unstable": {
+ "version": [
+ 20180605,
+ 1731
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "36d1d4296d79e17b8f35e8e14f2708980eb502db",
+ "sha256": "1116xvwpavg7icm263s0clgxhw3qqm4aqiw4ky94w9a8ydazx51l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "613e70e9b9940e635e779994b5c83f86eb62c8e6",
+ "sha256": "1ci1w4yma6axiigz55b2ip0r7zy8v215532jc0rkb3wyn14nsrh7"
+ }
+ },
+ {
+ "ename": "msgpack",
+ "commit": "773cb12f9aef4ad45179cb7dd07275d886907836",
+ "sha256": "1vcbngsr0xpqy00g837p2awkin82s145ksh223c1msszwwwgdx5m",
+ "fetcher": "github",
+ "repo": "xuchunyang/msgpack.el",
+ "unstable": {
+ "version": [
+ 20200323,
+ 515
+ ],
+ "commit": "90e3086f259549b1667a3c5b9aa2d70aaeaa4d3d",
+ "sha256": "0g9a59x7xjf1p2swbi3v8bawdwkqliw3kcg70bca5dgg2jxgd4z6"
+ }
+ },
+ {
+ "ename": "msvc",
+ "commit": "69939b85353a23f374cab996ede879ab315a323b",
+ "sha256": "04gq2klana557qvsi3bv6416l0319jsqb6bdfs7y6729qd94hlq3",
+ "fetcher": "github",
+ "repo": "yaruopooner/msvc",
+ "unstable": {
+ "version": [
+ 20191211,
+ 540
+ ],
+ "deps": [
+ "ac-clang",
+ "cedet",
+ "cl-lib"
+ ],
+ "commit": "9fe50e5961fa63fc5cf7326370f441993e9d5cfc",
+ "sha256": "133pidan95qyn78gdhfxlyk8x5f28rm5rwb9wdw1gpjy4l72q22f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 2
+ ],
+ "deps": [
+ "ac-clang",
+ "cedet",
+ "cl-lib"
+ ],
+ "commit": "9fe50e5961fa63fc5cf7326370f441993e9d5cfc",
+ "sha256": "133pidan95qyn78gdhfxlyk8x5f28rm5rwb9wdw1gpjy4l72q22f"
+ }
+ },
+ {
+ "ename": "mtg-deck-mode",
+ "commit": "425fa66cffe7bfda71de4ff2b49e951456bdeae1",
+ "sha256": "07hszf33nawhp218f90qr4s713yyjdd7zzkq0s8q0fb6aai5iiih",
+ "fetcher": "github",
+ "repo": "mattiasb/mtg-deck-mode",
+ "unstable": {
+ "version": [
+ 20180613,
+ 2010
+ ],
+ "commit": "8265b8ed17fcd4406760c19aa6ee9c76068b1ab0",
+ "sha256": "04qdcqpkic2nhqy6nf15j3zp5hmrfzs2kndvmg5v4vjac2vfmzfb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "7774641630ef85999ab2f6d57eebddbc7c1e7244",
+ "sha256": "12ajrlgyj14jf66if7bdgj69jm72wzrmiclx7x8dpsz4zpj38m20"
+ }
+ },
+ {
+ "ename": "mu-cite",
+ "commit": "a80bc6e626f4bc6edfe6560833d12d31ecfd7a51",
+ "sha256": "0ap21sw4r2x774q2np6rhrxh2m2rf3f6ak3k71iar159chx32y6q",
+ "fetcher": "github",
+ "repo": "ksato9700/mu-cite",
+ "unstable": {
+ "version": [
+ 20190803,
+ 439
+ ],
+ "deps": [
+ "flim"
+ ],
+ "commit": "b2c83bbce4646d100b942f0f0de0877a8d47298c",
+ "sha256": "1kg4l88k4gwv7zczmbgxzpmifkbklf3yzlk849igs01z4jvh2bkc"
+ }
+ },
+ {
+ "ename": "mu2tex",
+ "commit": "e55964077f23a9d3ec4b53cb5add6d7166f385e0",
+ "sha256": "1h146xscvlkjgp4wqw11cb1z6gjr1s0ysamcz4ii5gfv82rrjgyc",
+ "fetcher": "github",
+ "repo": "cdominik/mu2tex",
+ "unstable": {
+ "version": [
+ 20200512,
+ 704
+ ],
+ "commit": "4b84cdac955cb36a8c44a2be48f3310252e3d3ad",
+ "sha256": "05rgx0nb028k1kmb9gbv4b0s20ksbjl0nksyrva2zpvd7xc1nyz9"
+ }
+ },
+ {
+ "ename": "mu4e-alert",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0b74ky51nx75vcrrbabr5cj2cx4yax5kgaq479hjp5yc5mq2q46r",
+ "fetcher": "github",
+ "repo": "iqbalansari/mu4e-alert",
+ "unstable": {
+ "version": [
+ 20190418,
+ 558
+ ],
+ "deps": [
+ "alert",
+ "ht",
+ "s"
+ ],
+ "commit": "91f0657c5b245a9de57aa38391221fb5d141d9bd",
+ "sha256": "0qr5ww2xj8dibglh175qcq4bdgzs8lylv28hkbijykjshr3pkzn9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "alert",
+ "ht",
+ "s"
+ ],
+ "commit": "3453e25ff6c07c1b768b2a79fdb9fc5c97100e76",
+ "sha256": "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"
+ }
+ },
+ {
+ "ename": "mu4e-conversation",
+ "commit": "7638aecc7a2cd4b1646c6e32fe83e18ef212bbaa",
+ "sha256": "16vhjaxjhshw7ch9ihk35r99549xlbmvybwjx0p9mzyqi30dn3s6",
+ "fetcher": "gitlab",
+ "repo": "ambrevar/mu4e-conversation",
+ "unstable": {
+ "version": [
+ 20190609,
+ 812
+ ],
+ "commit": "98110bb9c300fc9866dee8e0023355f9f79c9b96",
+ "sha256": "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"
+ }
+ },
+ {
+ "ename": "mu4e-jump-to-list",
+ "commit": "c1cf98dff029d494007fe25d29bd8bcfecc5b8e6",
+ "sha256": "0yl1vi62pjgklwa7ifvr35fciiqqc5zkrc0m4yxjiv0c0dn50b7n",
+ "fetcher": "gitlab",
+ "repo": "wavexx/mu4e-jump-to-list.el",
+ "unstable": {
+ "version": [
+ 20190419,
+ 1442
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "358bba003543b49ffa266e503e54aebd0ebe614b",
+ "sha256": "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"
+ }
+ },
+ {
+ "ename": "mu4e-maildirs-extension",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0bisxm0rph5q1p3zjr7vyyr0jqr3ihs6ihiwyfr8d3dvba1zhffc",
+ "fetcher": "github",
+ "repo": "agpchil/mu4e-maildirs-extension",
+ "unstable": {
+ "version": [
+ 20200508,
+ 712
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "4d2ece2226fa69a0e0bb23517a418145b92bd573",
+ "sha256": "1gyyj1fzc34qrlfbk86lrrrib46r7lrw7pdxwzrx8jz42rd38jma"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "commit": "8b384b0bbda46c473dea3ee7dc68c2b3f2548528",
+ "sha256": "1lyd8pcawn106zwlbq6gdq05i2zhry1qh9cdyjiw61nvgbbfi0yx"
+ }
+ },
+ {
+ "ename": "mu4e-overview",
+ "commit": "ec240f0f9bc43c5abca557607b0b89a24696744e",
+ "sha256": "076lpfj6zrg2ivgbslg9whm4mci278kg45a3km7iadilwipiaxsk",
+ "fetcher": "github",
+ "repo": "mkcms/mu4e-overview",
+ "unstable": {
+ "version": [
+ 20200817,
+ 2046
+ ],
+ "commit": "467a7dfda4e534783469a137545193ded8a66723",
+ "sha256": "08lwvgwfsxmvm5bnw0sl96dry57h4wcjsi2fr2mmfq190kdjrizy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "467a7dfda4e534783469a137545193ded8a66723",
+ "sha256": "08lwvgwfsxmvm5bnw0sl96dry57h4wcjsi2fr2mmfq190kdjrizy"
+ }
+ },
+ {
+ "ename": "mu4e-query-fragments",
+ "commit": "c1cf98dff029d494007fe25d29bd8bcfecc5b8e6",
+ "sha256": "1gckwfgw7jvr6dbikcmy07i07wjhlvq66swhac2laaj6w567vc7w",
+ "fetcher": "gitlab",
+ "repo": "wavexx/mu4e-query-fragments.el",
+ "unstable": {
+ "version": [
+ 20170923,
+ 1322
+ ],
+ "commit": "34ddad4e6785f575333efcc66153d892daa1c884",
+ "sha256": "0l5i3a88j9il2y0jq2sfzwi9q3czc1wi8n9nvgdysj5db5m4xsw6"
+ }
+ },
+ {
+ "ename": "muban",
+ "commit": "3576c6b7d79ce6d4df40ce83400fa2468f8fbcdf",
+ "sha256": "1njphxx6sgw952p7v2qkbjwa8sb2mwrxrzv35bzp0d4c84ny2sa0",
+ "fetcher": "github",
+ "repo": "jiahaowork/muban.el",
+ "unstable": {
+ "version": [
+ 20180415,
+ 1219
+ ],
+ "commit": "7078e439ee0433a8fbd1cb174464496f9a9d00fa",
+ "sha256": "1wpcv4wdk735w701d9bm9qqji98mmzg7l7qkq1jmjw1hbpqhnwl2"
+ }
+ },
+ {
+ "ename": "mugur",
+ "commit": "7f218af9e4a50c53d0cacdd3fbbfc514d2f98e8d",
+ "sha256": "05qn7b3jsprdcyc4p6h70qvaydgq3b71y2hb4jfqx19prcbcly7k",
+ "fetcher": "github",
+ "repo": "mihaiolteanu/mugur",
+ "unstable": {
+ "version": [
+ 20200602,
+ 642
+ ],
+ "deps": [
+ "anaphora",
+ "s"
+ ],
+ "commit": "5333d0ff56cb4d1448e4cdf48278abcbc32e96eb",
+ "sha256": "07xglyc05d42inlh4j3nvdyi55pa0cy013c5yk8rv94xs31pjd8k"
+ }
+ },
+ {
+ "ename": "multi",
+ "commit": "c9fea5cf529bcdf412af2926e55b8d77edc07eca",
+ "sha256": "1c240d1c1g8wb2ld944344zklnv86d9rycmya4z53b2ai10642ig",
+ "fetcher": "github",
+ "repo": "kurisuwhyte/emacs-multi",
+ "unstable": {
+ "version": [
+ 20131013,
+ 1544
+ ],
+ "commit": "0987ab71692717ed457cb3984de184db9185806d",
+ "sha256": "0f5hc6mgq0hg1wwnvqd4fp7ck58lcavvgqjggz9zlhrjgkmynjxx"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 1
+ ],
+ "commit": "884203b11fdac8374ec644cca975469aab263404",
+ "sha256": "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"
+ }
+ },
+ {
+ "ename": "multi-compile",
+ "commit": "b312434c6c8e23ded2b74bf8f144ad0b3170adae",
+ "sha256": "16fv0hpwcjw1771zlbgznph0fix9fbm6yqj2rcz1f9l26iih6apz",
+ "fetcher": "github",
+ "repo": "ReanGD/emacs-multi-compile",
+ "unstable": {
+ "version": [
+ 20200517,
+ 1747
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "e3772f7e68968f7fa2c97615115cd3fc0f701229",
+ "sha256": "0r1ahchfhyqjyc0q0xp5x0p34d6hg4ga3cga1l6dlaw1xjflrsq2"
+ }
+ },
+ {
+ "ename": "multi-line",
+ "commit": "0f8eee6798a0ba71d437a1cbf82e360a5b60eafb",
+ "sha256": "1aadmijnjr029s1qq4gk8xyl9m8xb5x5774b8i3jyfixyjqvhvwp",
+ "fetcher": "github",
+ "repo": "IvanMalison/multi-line",
+ "unstable": {
+ "version": [
+ 20170822,
+ 226
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s",
+ "shut-up"
+ ],
+ "commit": "d5ae863ced0adeb7032ada398005f27a6c669d79",
+ "sha256": "0hj2afqw36pxc091k4w4rk110y076lghnap51x3w53k9xfcfwhwa"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s",
+ "shut-up"
+ ],
+ "commit": "778c7510b7f066f53cf1f96a6ad1079fda5dc1f7",
+ "sha256": "0lr1i2a4fw40iz8qz2zqch63ci9pwvrri219phv22kn76jqn39mh"
+ }
+ },
+ {
+ "ename": "multi-project",
+ "commit": "a5b0dadc609d13737d56657c17a945f10e840222",
+ "sha256": "0zq2lwrllj4icksq6y7hz61ah39k60v1jc5qr16zvwyfqxhk8hpb",
+ "fetcher": "hg",
+ "url": "https://hg.osdn.net/view/multi-project/multi-project",
+ "unstable": {
+ "version": [
+ 20191117,
+ 1203
+ ],
+ "commit": "4045823d51f6330466b6ab83828b6c598ac817a0",
+ "sha256": "18z1mmmjq4xw238mw1417nlqv67qv07blz0lxhpl8m1wma4v96af"
+ }
+ },
+ {
+ "ename": "multi-run",
+ "commit": "e05ad99477bb97343232ded7083fddb810ae1781",
+ "sha256": "1iv4a49czdjl0slp8590f1ya0vm8g2ycnkwrdpqi3b55haaqp91h",
+ "fetcher": "github",
+ "repo": "sagarjha/multi-run",
+ "unstable": {
+ "version": [
+ 20190507,
+ 2349
+ ],
+ "deps": [
+ "window-layout"
+ ],
+ "commit": "c6256b0cc2876c29faf381d8324b31b911045a27",
+ "sha256": "07nd7lwrnz9j54hq33c8ii1pipd472qfsdifg6fid7kca0rychif"
+ },
+ "stable": {
+ "version": [
+ 1
+ ],
+ "deps": [
+ "window-layout"
+ ],
+ "commit": "87d9eed414999fd94685148d39e5308c099e65ca",
+ "sha256": "0m4wk6sf01b7bq5agmyfcm9kpmwmd90wbvh7fkhs61mrs86s2zw8"
+ }
+ },
+ {
+ "ename": "multi-term",
+ "commit": "7868b41da793d973baaaa3351739d3d61066cce4",
+ "sha256": "1wynpis5wzlqd76lp6qq6khxvl30d66w26nc6a2xjgg9fvmhzcas",
+ "fetcher": "github",
+ "repo": "manateelazycat/multi-term",
+ "unstable": {
+ "version": [
+ 20200514,
+ 428
+ ],
+ "commit": "017c77c550115936860e2ea71b88e585371475d5",
+ "sha256": "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "c9e67edb772f2d9f9da8d887dc746459cfbce244",
+ "sha256": "1bn6zx931vz2fa72ab999r33bxv8brn3cqmalvq25x7s4z3q1lyi"
+ }
+ },
+ {
+ "ename": "multi-vterm",
+ "commit": "c87a280364597340baee7711aa33302c0a349fa7",
+ "sha256": "1dn1m30qmhv4sl84gki8l46rrkabn3ka7nb075q25h1b8lhhijci",
+ "fetcher": "github",
+ "repo": "suonlight/multi-vterm",
+ "unstable": {
+ "version": [
+ 20200614,
+ 548
+ ],
+ "deps": [
+ "projectile",
+ "vterm"
+ ],
+ "commit": "723658c162d483acc07fccf2dd8ae5b8582616f7",
+ "sha256": "1wgsqrr6jxv8dwf89406m53w1xzsvq45hrcc72x12hxkc1hay2vk"
+ }
+ },
+ {
+ "ename": "multi-web-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0vi4yvahr10aqpcz4127c8pcqpr5srwc1yhgipnbnm86qnh34ql5",
+ "fetcher": "github",
+ "repo": "fgallina/multi-web-mode",
+ "unstable": {
+ "version": [
+ 20130824,
+ 354
+ ],
+ "commit": "ad1c8d1c870334052d244c7ae3636cb7b9357b7c",
+ "sha256": "0mc4kkgwnwfk27wwc21nw5ly7qcsl7y5bd8wf2y8r6pxhvwran4n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "0517b9e2b3052533ac0cb71eba7073ed309fce06",
+ "sha256": "1d9y3dw27pgzgv6wk575d5ign55xdqgbl3ycyq1z7sji1477lz6b"
+ }
+ },
+ {
+ "ename": "multicolumn",
+ "commit": "f37a999b0583a0ebc842c2f9fad8d08cb6c9dabf",
+ "sha256": "1ylnc3s4ixvnqn7g2p6nzz8x29ggqc703waci430f1rp1lsd3q09",
+ "fetcher": "github",
+ "repo": "Lindydancer/multicolumn",
+ "unstable": {
+ "version": [
+ 20150202,
+ 2251
+ ],
+ "commit": "c7a3afecd470859b2e60aa7c554d6e4d436df7fa",
+ "sha256": "1ispa0wxpkydm0cyj4scyyacfrbilrip5v8bsrcqfc6qs597z8rf"
+ }
+ },
+ {
+ "ename": "multifiles",
+ "commit": "8b528544841995045fb1f8344aaaa38946bb3915",
+ "sha256": "0m0pi2qjis9p6z9cd8hlxm1r88ynwmd2ks8wg65sffffwsdbg4kz",
+ "fetcher": "github",
+ "repo": "magnars/multifiles.el",
+ "unstable": {
+ "version": [
+ 20130615,
+ 2133
+ ],
+ "commit": "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897",
+ "sha256": "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"
+ }
+ },
+ {
+ "ename": "multiple-cursors",
+ "commit": "a5f015e6b88be2a5ded363bd882a558e94d1f391",
+ "sha256": "0mky5p9wpd3270wr5vfna8rkk2ff81wk7vicyxli39195m0qgg0x",
+ "fetcher": "github",
+ "repo": "magnars/multiple-cursors.el",
+ "unstable": {
+ "version": [
+ 20191210,
+ 1759
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b880554d04b8f61165afba7d4de19ac9e39bb7ab",
+ "sha256": "0dcw3rw9ahk8y51d9sbqj0f4jdxmykh4jlz4h71cvariqlxw9pq8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b3bd49c756cd959c0fb998d27eaf3d273570b05e",
+ "sha256": "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"
+ }
+ },
+ {
+ "ename": "multistate",
+ "commit": "c844d8250242ce3f6d9955bb236042bd31c9b360",
+ "sha256": "0gidbdr0hlyxvkq1r15w5xp5ssqv061cyk9sdqdry4942dy0zgvg",
+ "fetcher": "gitlab",
+ "repo": "matsievskiysv/multistate",
+ "unstable": {
+ "version": [
+ 20200514,
+ 2206
+ ],
+ "deps": [
+ "cl-lib",
+ "ht"
+ ],
+ "commit": "eadd0df2745bf10500a9ad4ee8f66f3cb470bef0",
+ "sha256": "081rangw4iqk1lcahk01skh518ljdp6g4ww7zydjr813x7jzv2kv"
+ }
+ },
+ {
+ "ename": "multitran",
+ "commit": "d665759fa6491b77103920a75c18a561f6800c1c",
+ "sha256": "0nxrzzlinl5310zfrb4z5j0553cmg11m9y2gaf990j61afaw8f32",
+ "fetcher": "github",
+ "repo": "zevlg/multitran.el",
+ "unstable": {
+ "version": [
+ 20200201,
+ 55
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "475e2a92795dbed1aa3b1c5eba2c6c779cac4508",
+ "sha256": "0nl4cm1nx7lmb2gd76jw8v0hqdfjjcwy0xskpi0brd8z6dp1m5n3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 10
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "258b1232af6680396b6c0912597ed52e583326f4",
+ "sha256": "08b9a0pb38swgvg2v97pm4g2zda0xagdgq42znwhkmhzjiskh2g1"
+ }
+ },
+ {
+ "ename": "mustache",
+ "commit": "d1bcf9599ca6d2c29333071a80f96808d4ab52e2",
+ "sha256": "1pjr00xx77mlfw1myxaz6i3y2gbivhbiq5hyjxxbjlfrkm1vxc8g",
+ "fetcher": "github",
+ "repo": "Wilfred/mustache.el",
+ "unstable": {
+ "version": [
+ 20200726,
+ 553
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "s"
+ ],
+ "commit": "4649a47340b63214c7b8f1dcc178806d96288839",
+ "sha256": "1vwngm8fvfmh6p7p54pf01gqsmcg7f86nbyg18qphny9zsss1zjl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 23
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "s"
+ ],
+ "commit": "b0ea352813592424164520a49e86c04600242752",
+ "sha256": "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"
+ }
+ },
+ {
+ "ename": "mustache-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1xmqh663r5i42a586xn0wzw6h1jkvhbnw5iwvjv96w452slhkr36",
+ "fetcher": "github",
+ "repo": "mustache/emacs",
+ "unstable": {
+ "version": [
+ 20141024,
+ 1432
+ ],
+ "commit": "bf9897eb287ca47ced65d7d4e07ea61ea0aec39f",
+ "sha256": "15gw4d0hp15rglsj8hzd290li4p0kadj2dsz0dgfcxld7hnimihk"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "bf9897eb287ca47ced65d7d4e07ea61ea0aec39f",
+ "sha256": "15gw4d0hp15rglsj8hzd290li4p0kadj2dsz0dgfcxld7hnimihk"
+ }
+ },
+ {
+ "ename": "mustang-theme",
+ "commit": "2ed3691edd1cba6abc0c30d2aab732e2ba51bf00",
+ "sha256": "0771l3x6109ki914nwpfz3fj7pbvpcg9vf485mrccq2wlxymr5dr",
+ "fetcher": "github",
+ "repo": "mswift42/mustang-theme",
+ "unstable": {
+ "version": [
+ 20170719,
+ 946
+ ],
+ "commit": "dda6d04803f1c9b196b620ef564e7768fee15de2",
+ "sha256": "0pg3iay0iinf361v4ay8kizdxs5rm23ir556cwwgz3m3gbs0mgsh"
+ }
+ },
+ {
+ "ename": "mustard-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "0izxhivhmv49dja4wy9n0ipd41xdzdza2ql7pfa7ny35ji5hskik",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-mustard-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1319
+ ],
+ "commit": "3b15d992c79590d7ea2503004e2a863b57e274b5",
+ "sha256": "01ak4ayk46jqawlbb9cqliiqhnn68cq27kryamibdpds8sq0ch83"
+ }
+ },
+ {
+ "ename": "mutant",
+ "commit": "0fc72d1f18eba7501a040d450a85d8dee4e3070f",
+ "sha256": "0m5l5r37zb0ig96757ldyl9hbb01lknzqf08ap6dsmdwr1zayvp1",
+ "fetcher": "github",
+ "repo": "p-lambert/mutant.el",
+ "unstable": {
+ "version": [
+ 20160124,
+ 1353
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "de9cdefe48c880128a8f62c6699d7416e9c8ced1",
+ "sha256": "0w9blrm3596hmip8jg2hlz9sl31ci89b90jglmg4ipldgrgj3ly6"
+ }
+ },
+ {
+ "ename": "mutt-mode",
+ "commit": "7d9da58f247dee4f06cbcf6ed532134bc474d309",
+ "sha256": "0k1r2lsh8s054aapyf7diki00sxf1wdm01cavlqxbvv3zg2gym8d",
+ "fetcher": "gitlab",
+ "repo": "flexw/mutt-mode",
+ "unstable": {
+ "version": [
+ 20191102,
+ 2330
+ ],
+ "commit": "1d495de49e6f536459b00d5396a2f5ce5ad4757b",
+ "sha256": "1nxsbvhh99kwbgaxzmraryayppfmci2grg591zj8yhdh6d3l1jmj"
+ }
+ },
+ {
+ "ename": "mvn",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0bpg9zpyfdyn9xvrbmq4gb10hd701mc49np8arlmnilphb3fdgzs",
+ "fetcher": "github",
+ "repo": "apg/mvn-el",
+ "unstable": {
+ "version": [
+ 20181002,
+ 1617
+ ],
+ "commit": "ffa40235b7dabb6c6c165f64f32a963cde8031f0",
+ "sha256": "0ximk0aan7jqn5x7fk4pj35bxhi6zaspvyxrmac9kxaiz8znwffr"
+ }
+ },
+ {
+ "ename": "mw-thesaurus",
+ "commit": "53e4a552b8a7527433b11c377e1257fabceb8049",
+ "sha256": "10v3a09sz31ndj0ldpz0c3s45s62gyvdw0iq0c0dkg4da2rvicww",
+ "fetcher": "github",
+ "repo": "agzam/mw-thesaurus.el",
+ "unstable": {
+ "version": [
+ 20190620,
+ 2330
+ ],
+ "deps": [
+ "dash",
+ "request"
+ ],
+ "commit": "8327bae11588bcad5d73dcfbeb5e8d10f623d6b6",
+ "sha256": "0snv5v4c5f0hnixrii16xp55w0faw3hirmaj19fnf76shnpg4kwy"
+ }
+ },
+ {
+ "ename": "mwim",
+ "commit": "b7e1aa2fa1294b27ed7b6c5bdd5844fa5c37df72",
+ "sha256": "0bsibwplvyv96y5i5svm2b0jwzs5a7jr2aara7v7xnpj0nqaxm8k",
+ "fetcher": "github",
+ "repo": "alezost/mwim.el",
+ "unstable": {
+ "version": [
+ 20181110,
+ 1900
+ ],
+ "commit": "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85",
+ "sha256": "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "462207227b98a6a4356d51419f5ad5ba9356e5cf",
+ "sha256": "06lw6064i82daasgm87gm58d142pypqc1q3cnx1cm35hyj4skd32"
+ }
+ },
+ {
+ "ename": "mxf-view",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "1a8hlp0r04p1cww3dmsqdxlm3ll522wjb0rnmj80d7mqizkbf52p",
+ "fetcher": "github",
+ "repo": "t-suwa/mxf-view",
+ "unstable": {
+ "version": [
+ 20180501,
+ 740
+ ],
+ "commit": "6ca3cc93d995fac5fc4d72275e1e984e9857ffcb",
+ "sha256": "0n0142kc7q4vy0n7winbvnc8zv4janlr2x4mi97f8v70drl4b18h"
+ }
+ },
+ {
+ "ename": "myanmar-input-methods",
+ "commit": "76093af2bba82159784994ec9e17a69cd22bf868",
+ "sha256": "1yg8zy2z18pbyr507ms2b162c0819rna1ilwyp6hb3iv2zjw45sd",
+ "fetcher": "github",
+ "repo": "yelinkyaw/emacs-myanmar-input-methods",
+ "unstable": {
+ "version": [
+ 20160106,
+ 1537
+ ],
+ "commit": "9d4e0d6358c61bde7a2274e430ef71683faea32e",
+ "sha256": "0cf0c9g9k2lk1ifi2dlw7c601sh1ycxf3fgl2hy5wliyd6l9rf86"
+ }
+ },
+ {
+ "ename": "mybigword",
+ "commit": "77cae5811b20615f356c520e200f771805642976",
+ "sha256": "1v7llcas9hzv2gwjvsxb0i29zcqizg7qgmzx3zyrkbww3ciwwfmp",
+ "fetcher": "github",
+ "repo": "redguardtoo/mybigword",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1059
+ ],
+ "commit": "182a972cc48c30ba73ebf5424cdf27601a77399f",
+ "sha256": "1k3bxxc3fyh5zimwvw1b0fis95x0q9kp0cxdgdy3y2iayavm203r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 9
+ ],
+ "commit": "182a972cc48c30ba73ebf5424cdf27601a77399f",
+ "sha256": "1k3bxxc3fyh5zimwvw1b0fis95x0q9kp0cxdgdy3y2iayavm203r"
+ }
+ },
+ {
+ "ename": "mykie",
+ "commit": "e10504a19e052c080be2ccc9b1b8fd2e73a852e0",
+ "sha256": "12ram39fp3m9ar6q184rsnpkxb14y0ajibng7ia2ck54ck7n36cj",
+ "fetcher": "github",
+ "repo": "yuutayamada/mykie-el",
+ "unstable": {
+ "version": [
+ 20150808,
+ 2205
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7676f0e883af1d1054e404e97691f3c13aba196f",
+ "sha256": "0a9a6hmv8vjmp6h9mnzin9vc0sncg79v5z72pasvbrplfxijzan0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ab8f7549f9018c26278d101af1b90997c9e5e0b3",
+ "sha256": "0550k0rfm0zai306642v689mcpsw9pbd5vs0il82cihwvrxjifc5"
+ }
+ },
+ {
+ "ename": "mynt-mode",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "0dbbz86k5c70aqi8czbpd4lxil10zfqs0lmknvrzmnv31r2mgxfr",
+ "fetcher": "github",
+ "repo": "cbrst/mynt-mode",
+ "unstable": {
+ "version": [
+ 20150512,
+ 2049
+ ],
+ "deps": [
+ "virtualenvwrapper"
+ ],
+ "commit": "23d4489167bfa899634548cb41ed32fdeb3600c9",
+ "sha256": "18ml0qz3iipm9w36zvwz77cbbrg885jgvzk6z4a33xcfp524xhma"
+ }
+ },
+ {
+ "ename": "myrddin-mode",
+ "commit": "224cd200f2f399f25865b6f5b9bf5ec8b957bf35",
+ "sha256": "1gz126gnwgrvkxd3n7xwqfzpk9lvcll3g8v4pa2w9hsz98crwwgl",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~jakob/myrddin-mode",
+ "unstable": {
+ "version": [
+ 20191225,
+ 2120
+ ],
+ "commit": "51c0a2cb9dfc9526cd47e71313f5a745c99cadcc",
+ "sha256": "17qaxdzygk59qdm3hpyhc70jxiijfyq2n39dy68cwzhyd13i8f2i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "b996da5e3bae842eacba4b3e429899bb841b077e",
+ "sha256": "0gylwdq81s89civrlwsg4zrvyjkjw37jdp1mvsihx8xpq38w4r65"
+ }
+ },
+ {
+ "ename": "mysql-to-org",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0jjdv6ywdn1618l36bw3xa3mdgg3rc8r0rdv9xdqx8mmg648a7gj",
+ "fetcher": "github",
+ "repo": "mallt/mysql-to-org-mode",
+ "unstable": {
+ "version": [
+ 20200602,
+ 2019
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "f3afc506f8b0d037238e49290de4b028c6ad9dd1",
+ "sha256": "19g21zvvamlhy1yrqhqbd1x3km6q2m650xsvl613rpcdqsk8l2ic"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "0f51b174a0ee6c9820baf9d79783923b270f3ffc",
+ "sha256": "1gxp1a26sna0p3xq6by8bk4yphhh32bvll0sdm2p3wkpdaci7hyz"
+ }
+ },
+ {
+ "ename": "myterminal-controls",
+ "commit": "4a82a45d9fcafea0795f832bce1bdd7bc83667e2",
+ "sha256": "0ipk5s2whf3l68q0dydm1j6rcb6jhk61hgjwxygdphifvih7c5y2",
+ "fetcher": "github",
+ "repo": "myTerminal/myterminal-controls",
+ "unstable": {
+ "version": [
+ 20190426,
+ 421
+ ],
+ "commit": "733cdd7ab4f172b6dca09720fc5ae7dbc248c822",
+ "sha256": "1z89d3dx77c4v1zz4ngn689ay6m2x04jznnbc6bdqsaanz9znwlz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "df144b269bc274162602e50c692be20ac9b90547",
+ "sha256": "02bd47rx2ykz5hhrf1szcqz7s9r5fxz7n3hnwlqap2r6xcv6cpvk"
+ }
+ },
+ {
+ "ename": "n4js",
+ "commit": "82157dfd975635c49ef75eae83e2bdf5fe4ae5c2",
+ "sha256": "0x7smxs91ffriyxx2df61fh1abpl39gqy4m62k77h7xb6fg7af6m",
+ "fetcher": "github",
+ "repo": "tmtxt/n4js.el",
+ "unstable": {
+ "version": [
+ 20150714,
+ 231
+ ],
+ "deps": [
+ "cypher-mode"
+ ],
+ "commit": "3991ed8975151d5e8d568e952362df810f7ffab7",
+ "sha256": "1pd6c0jc1zxx3i3nk4qdx7gdf1qn8sc9jgqd72pkkpzvdwv998cp"
+ }
+ },
+ {
+ "ename": "name-this-color",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "15x3dp135p45gv4qn4ll3pd6zqi4glcpv6fzvjxnx0dcval9z4d8",
+ "fetcher": "github",
+ "repo": "knl/name-this-color.el",
+ "unstable": {
+ "version": [
+ 20151014,
+ 2030
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "e37cd1291d5d68d4c8d6386eab9cb9d94fd3bcfa",
+ "sha256": "0amhw630hgc0j8wr8m6aav399ixi3vbwrck79hhlr3pmyh91vv7n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "e37cd1291d5d68d4c8d6386eab9cb9d94fd3bcfa",
+ "sha256": "0amhw630hgc0j8wr8m6aav399ixi3vbwrck79hhlr3pmyh91vv7n"
+ }
+ },
+ {
+ "ename": "named-timer",
+ "commit": "3e8248bab40fddc97fe48dbd103bc2aa51eb287f",
+ "sha256": "1k2gkm193fh02vsj8h9kn0y1azispcz1b3ywwmb3cbif51l956g3",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/emacs-named-timer",
+ "unstable": {
+ "version": [
+ 20181120,
+ 2224
+ ],
+ "commit": "670b81e3eddef2e7353a4eedc9553a85306445db",
+ "sha256": "1inbizxlfgndwxsn8cwnpf4vm42rby7pkjqxyzl7ldq4qln7q8v1"
+ }
+ },
+ {
+ "ename": "nameframe",
+ "commit": "bd314150b3f8ce529a2ae39a71e03bebedfdc6b9",
+ "sha256": "0iq8cfii39ha8sxn9w7kyfvys8kwyax8g4l0pkl05q0a0s95padp",
+ "fetcher": "github",
+ "repo": "john2x/nameframe",
+ "unstable": {
+ "version": [
+ 20171107,
+ 56
+ ],
+ "commit": "aafb8c5c5fbe0510e2f5d5b6b6b5dd0b73abe5d8",
+ "sha256": "1ivklkz3j722wg038bh3hmycp9j64zjrig49vl42mkj6d3ggwilg"
+ }
+ },
+ {
+ "ename": "nameframe-perspective",
+ "commit": "2543af5579d37a3eb52e6fea41da315f5590331e",
+ "sha256": "0wgr90m2pazc514slgdl1lin4mr3xxizasc82k7qinvdvdja515x",
+ "fetcher": "github",
+ "repo": "john2x/nameframe",
+ "unstable": {
+ "version": [
+ 20170406,
+ 119
+ ],
+ "deps": [
+ "nameframe",
+ "perspective"
+ ],
+ "commit": "aafb8c5c5fbe0510e2f5d5b6b6b5dd0b73abe5d8",
+ "sha256": "1ivklkz3j722wg038bh3hmycp9j64zjrig49vl42mkj6d3ggwilg"
+ }
+ },
+ {
+ "ename": "nameframe-projectile",
+ "commit": "bc17af8ff1694120d12a0cdbfccec78834810acd",
+ "sha256": "11z64wy8mnnrjmgfs2sjbv3mh136aki8r5f89myx861nfx18hc3k",
+ "fetcher": "github",
+ "repo": "john2x/nameframe",
+ "unstable": {
+ "version": [
+ 20160928,
+ 403
+ ],
+ "deps": [
+ "nameframe",
+ "projectile"
+ ],
+ "commit": "aafb8c5c5fbe0510e2f5d5b6b6b5dd0b73abe5d8",
+ "sha256": "1ivklkz3j722wg038bh3hmycp9j64zjrig49vl42mkj6d3ggwilg"
+ }
+ },
+ {
+ "ename": "nameless",
+ "commit": "8e4ee4dae5f32a8d445dc0cc2455c1f7075c9b3d",
+ "sha256": "14agx54h2vqfb0656n12z761ywyxsdskd6xa1ccar70l9vwj85vq",
+ "fetcher": "github",
+ "repo": "Malabarba/Nameless",
+ "unstable": {
+ "version": [
+ 20190429,
+ 1202
+ ],
+ "commit": "a3a1ce3ec0c5724bcbfe553d831bd4f6b3fe863a",
+ "sha256": "0pxfn81bc8smik0qksfjbrdjkzy0cbjzbc3ik47zl2i9blmx5krv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "commit": "ab1a5c589378334eafca105af1a17f73b9065423",
+ "sha256": "107q1rximjnag9r9vgwh0iv687i3rsscbdnjc46f8l16j6vi4n7d"
+ }
+ },
+ {
+ "ename": "names",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "1q784606jlakw1z6sx2g2x8hz8c8arywrm2r626wj0v105v510vg",
+ "fetcher": "github",
+ "repo": "Malabarba/names",
+ "unstable": {
+ "version": [
+ 20180321,
+ 1155
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d8baba5360e5253938a25d3e005455b6d2d86971",
+ "sha256": "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"
+ },
+ "stable": {
+ "version": [
+ 20151201,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "00862c57ae6363ba86d1e5ce138929a1b6d5c7e6",
+ "sha256": "0m82g27gwf9mvicivmcilqghz5b24ijmnw0jf0wl2skfbbg0sydh"
+ }
+ },
+ {
+ "ename": "namespaces",
+ "commit": "de404e9ad3d1e27af24e868e84218d872d5fc795",
+ "sha256": "02pb7762khxpah4q6xg8r7dmlv1kwyzinffi7pcaps6ycj29q2fr",
+ "fetcher": "github",
+ "repo": "chrisbarrett/elisp-namespaces",
+ "unstable": {
+ "version": [
+ 20130326,
+ 2250
+ ],
+ "commit": "3d02525d9b9a5ae6e7be3adefd880121436e6270",
+ "sha256": "157hhb253m6a9l5wy6x8w5ar3x0qz1326l7a0npxif6pma0dd140"
+ }
+ },
+ {
+ "ename": "nand2tetris",
+ "commit": "90421372b3f60b59762279ac805c61a984606d11",
+ "sha256": "1zg9xx7mj8334m2v2zqqfkr5vkj4dzqbj8y13qk6xhzb7qkppyqd",
+ "fetcher": "github",
+ "repo": "CestDiego/nand2tetris.el",
+ "unstable": {
+ "version": [
+ 20171201,
+ 1813
+ ],
+ "commit": "33acee34d24b1c6a87db833b7d23449cf858f64f",
+ "sha256": "0sfa674g1qm280s0pc3n6qiiphj5i9ibknckx5capkrkxb5cwpkw"
+ }
+ },
+ {
+ "ename": "nand2tetris-assembler",
+ "commit": "90421372b3f60b59762279ac805c61a984606d11",
+ "sha256": "1761kgrflipxba8894cnx90ks7f3ba4nj6ci515zzxcx9s45mfyy",
+ "fetcher": "github",
+ "repo": "CestDiego/nand2tetris.el",
+ "unstable": {
+ "version": [
+ 20171201,
+ 1813
+ ],
+ "deps": [
+ "nand2tetris"
+ ],
+ "commit": "33acee34d24b1c6a87db833b7d23449cf858f64f",
+ "sha256": "0sfa674g1qm280s0pc3n6qiiphj5i9ibknckx5capkrkxb5cwpkw"
+ }
+ },
+ {
+ "ename": "nanowrimo",
+ "commit": "2790c00a79df237cf853a00f094fdeca9e532a9a",
+ "sha256": "0c4wzhhk1779r0lgc6bhfp0qafmp3ggdvg1205m8a7k0kklq58bg",
+ "fetcher": "gitlab",
+ "repo": "gvol/nanowrimo.el",
+ "unstable": {
+ "version": [
+ 20151105,
+ 228
+ ],
+ "commit": "b1d41458926ccb39cefbb1bb74aefe4f02fd349f",
+ "sha256": "1nzkamy53kl1g4y1jm7j5zgpkdsyg5ykp8zp1f0bg5mhy8mmf75w"
+ }
+ },
+ {
+ "ename": "naquadah-theme",
+ "commit": "671afe0ff3889ae8c4b2d7b8617a3a25c16f3f0f",
+ "sha256": "1aml1f2lgn530i86218nrc1pk3zw5n3qd2gw4gylwi7g75i0cqn1",
+ "fetcher": "github",
+ "repo": "jd/naquadah-theme",
+ "unstable": {
+ "version": [
+ 20190225,
+ 1427
+ ],
+ "commit": "430c3b7bd51922cb616b3f60301f4e2604816ed8",
+ "sha256": "0z2dn05xgbdfw6rwgsq31rm5dr098dk411qk83fbx2bkdxxfr60w"
+ }
+ },
+ {
+ "ename": "narrow-reindent",
+ "commit": "73c7f01a009dc7ac1b9da8ce41859695a97b7878",
+ "sha256": "0fybal70kk62zlra63x4jb72694m0mzv4cx746prx9anvq1ss2i0",
+ "fetcher": "github",
+ "repo": "emallson/narrow-reindent.el",
+ "unstable": {
+ "version": [
+ 20150722,
+ 1906
+ ],
+ "commit": "87466aac4dbeb79597124dd077bf5c704872fd3d",
+ "sha256": "10yn215xb4s6kshk108y75im1xbdp0vwc9kah5bbaflp9234i0zh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "87466aac4dbeb79597124dd077bf5c704872fd3d",
+ "sha256": "10yn215xb4s6kshk108y75im1xbdp0vwc9kah5bbaflp9234i0zh"
+ }
+ },
+ {
+ "ename": "narrowed-page-navigation",
+ "commit": "e37e993fec280428f094b6c8ec418fe5ba8c6d49",
+ "sha256": "1yrmih60dd69qnin505jlmfidm2svzpdrz46286r7nm6pk7s4pb7",
+ "fetcher": "github",
+ "repo": "david-christiansen/narrowed-page-navigation",
+ "unstable": {
+ "version": [
+ 20150109,
+ 519
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b215adbac4873f56fbab65772062f0f5be8058a1",
+ "sha256": "0ydxj6dc10knambma2hpimqrhfz216nbj96w1dcwgjixs4cd4nax"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b215adbac4873f56fbab65772062f0f5be8058a1",
+ "sha256": "0ydxj6dc10knambma2hpimqrhfz216nbj96w1dcwgjixs4cd4nax"
+ }
+ },
+ {
+ "ename": "nash-mode",
+ "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+ "sha256": "1rkqcf8whk6g8ic0vlahf9m0kphd83515cr4yqv21qg2yx8irf2w",
+ "fetcher": "github",
+ "repo": "i4ki/nash-mode.el",
+ "unstable": {
+ "version": [
+ 20160830,
+ 1212
+ ],
+ "commit": "2cd96535eb7d669a94306183e95ee37333872c1a",
+ "sha256": "0wdkl56pgm6qlgqjs4kqjglnxzjsfjd0y4fiffhxc893gm0psrpg"
+ }
+ },
+ {
+ "ename": "nasm-mode",
+ "commit": "a1a832b3bd7c2f2d3cee8bcfb5421d22acf5523e",
+ "sha256": "1626yf9mmqlsw8w01vzqsyb5ipa56259d4kl6w871k7rvhxwff17",
+ "fetcher": "github",
+ "repo": "skeeto/nasm-mode",
+ "unstable": {
+ "version": [
+ 20190410,
+ 342
+ ],
+ "commit": "65ca6546fc395711fac5b3b4299e76c2303d43a8",
+ "sha256": "00rv6m004hcsn71hv3p3rxmrpwajdy02qpi2ymhxx2w3r49ba562"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "d990ed94d902b74a5c834fb567e03307607cee45",
+ "sha256": "1dyc50a1zskx9fqxl2iy2x74f3bkb2ccz908v0aj13rqfqqnns9j"
+ }
+ },
+ {
+ "ename": "native-complete",
+ "commit": "abc5469b4400ed05192dcfd6c00504768f05292e",
+ "sha256": "0y1zqmd34jswfw5fi3j6n0d9dhpvl14x3h5nfl6wmxj2g8vv4gns",
+ "fetcher": "github",
+ "repo": "CeleritasCelery/emacs-native-shell-complete",
+ "unstable": {
+ "version": [
+ 20200814,
+ 2301
+ ],
+ "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
+ "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
+ }
+ },
+ {
+ "ename": "nav",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "0ly1fk4ak1p8gkz3qmmxyslcjgicnfm8bpqqgndvwcznp8pvpjml",
+ "fetcher": "github",
+ "repo": "ijt/emacs-nav",
+ "unstable": {
+ "version": [
+ 20120507,
+ 707
+ ],
+ "commit": "c5eb234c063f435dbdcd1f8bdc46cfc68c973ebe",
+ "sha256": "0kfqpji6z3ra8sc951vmm1bzyhkws7vb5q6djvl45wlf1wrgkc4p"
+ }
+ },
+ {
+ "ename": "nav-flash",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "0936kr0s6zxxmjwaqm7ywdw2im4dxai1xb7j6xa2gp7c70qvvsx3",
+ "fetcher": "github",
+ "repo": "rolandwalker/nav-flash",
+ "unstable": {
+ "version": [
+ 20191204,
+ 1427
+ ],
+ "commit": "dbb91216637e0a1e8bfd59aa883c75d45db70daf",
+ "sha256": "0f8dsxgk1a994clwkii9hv2ibvkf38kbvgd4sp3w1sf4vy12z5n5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "9054a0f9b51da9e5207672efc029ba265ba28f34",
+ "sha256": "119hy8rs83f17d6zizdaxn2ck3sylxbyz7adszbznjc8zrbaw0ic"
+ }
+ },
+ {
+ "ename": "navi-mode",
+ "commit": "8edf78a0ecd2ff8e6e066b80751a31e11a068c3f",
+ "sha256": "0pc52iq8lng2g0vpnrhdfxmibc1dx9ksmrjg0303as1yv41fnc69",
+ "fetcher": "github",
+ "repo": "alphapapa/navi",
+ "unstable": {
+ "version": [
+ 20190720,
+ 2003
+ ],
+ "deps": [
+ "outorg",
+ "outshine"
+ ],
+ "commit": "7eb7cf0c4a6ee537ec462f5ec90f00d12e3ca9c2",
+ "sha256": "0ajmbsdz825v5fidnp30yv1jwl415vc67hlm05a65f92bhs6m3zq"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "5c979b3b3873b0e67751a1321a9e271d066f2022",
+ "sha256": "15jh1lsgqfnpbmrikm8kdh5bj60yb96f2as2anppjjsgl6w96glh"
+ }
+ },
+ {
+ "ename": "navi2ch",
+ "commit": "36bea1eca58de15d6106cbd293d941d12ee3d21c",
+ "sha256": "13xwvyy27dz1abjkkazm3s1p6cw32l2klr1bnln02w0azkbdy7x3",
+ "fetcher": "github",
+ "repo": "naota/navi2ch",
+ "unstable": {
+ "version": [
+ 20200130,
+ 36
+ ],
+ "commit": "7811dba052f679bd920a1f648d621a6fecace10f",
+ "sha256": "0glr8cfxpp23j8sr0147x1ba7f6i8vzn2c15kgfs94y5h2d4jv3l"
+ }
+ },
+ {
+ "ename": "navigel",
+ "commit": "af52934237a069f70b8be136576562ba45c04ffc",
+ "sha256": "0ns2f1p943d2mfai6fdl87swcwh0sgmv0m3wz1kf73zh6vi4i277",
+ "fetcher": "github",
+ "repo": "DamienCassou/navigel",
+ "unstable": {
+ "version": [
+ 20200202,
+ 1214
+ ],
+ "deps": [
+ "tablist"
+ ],
+ "commit": "0a2d624d6b49f8363badc5ba8699b7028ef85632",
+ "sha256": "1lf46qsa6xb9rpb0s96vcvwv6n9v08iqp332pyhli0937afij454"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "deps": [
+ "tablist"
+ ],
+ "commit": "2695f1df2260398930319095cf6b6a49ba98d6a5",
+ "sha256": "0v9f7wb6yghds3hjj8x5di6gfa8n5kjwhav7la1ca2zwgs2c1a9p"
+ }
+ },
+ {
+ "ename": "navorski",
+ "commit": "9246cef94029d2da2211345c076ed55deb91e8fa",
+ "sha256": "0dnzpsm0ya8rbcik5wp378hc9k7gjb3gwmkqqj889c38q5cdwsx7",
+ "fetcher": "github",
+ "repo": "roman/navorski.el",
+ "unstable": {
+ "version": [
+ 20141203,
+ 1824
+ ],
+ "deps": [
+ "dash",
+ "multi-term",
+ "s"
+ ],
+ "commit": "698c1c62da70164aebe9a7a5d034778fbc30ea5b",
+ "sha256": "0g7rmvfm0ldv0d2x7f8k761mgmi47siyspfi1ns40ijhkpc15x8l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 7
+ ],
+ "deps": [
+ "dash",
+ "multi-term",
+ "s"
+ ],
+ "commit": "4546d4e4dfbec20ee8c423c045408a3388a9eab9",
+ "sha256": "09cb07f98aclgq8jf5419305zydkk1hz4nvzrwqz7syrlpvx8xi5"
+ }
+ },
+ {
+ "ename": "naysayer-theme",
+ "commit": "bc3ed48e21b13998b77dd0f28ea02a6224abd367",
+ "sha256": "1mlbhq2x1676cgsrl2l4kd9r7im9cjzk9lww02p7p1pdfp8k01qf",
+ "fetcher": "github",
+ "repo": "nickav/naysayer-theme.el",
+ "unstable": {
+ "version": [
+ 20200405,
+ 123
+ ],
+ "commit": "9d0bef898f31368cd30e063d53d443dee29683b0",
+ "sha256": "1jbp8p58bjc0wxs548niv02q9889blnwwfs64h5sm96nzhyzrkn0"
+ }
+ },
+ {
+ "ename": "ncl-mode",
+ "commit": "2eea3936b8a3a7546450d1d7399e0f86d855fefd",
+ "sha256": "1niy0w24q6q6j7s0l9fcaqai7zz2gg1qlk2s9sxb8j79jc41y47k",
+ "fetcher": "github",
+ "repo": "yyr/ncl-mode",
+ "unstable": {
+ "version": [
+ 20180129,
+ 703
+ ],
+ "commit": "602292712a9e6b7e7c25155978999e77d06b7338",
+ "sha256": "0sv44hn2ylick7ywpcbij8h2vxdj06zridjdmcfgpv5d090dbl9n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 99,
+ 2
+ ],
+ "commit": "164e504e25cec1812fbae5c3dae164d9f6018ece",
+ "sha256": "1m3llm87qgd7sr6ci22nd835vdg0qprs5m9lqcx74k689jl89cni"
+ }
+ },
+ {
+ "ename": "nclip",
+ "commit": "f03f254afbe561e0a6dd6c287dcc137da05376cd",
+ "sha256": "016jp1rqrf1baxlxbi3476m88a0l3r405dh6pmly519wm2k8pipw",
+ "fetcher": "github",
+ "repo": "maio/nclip.el",
+ "unstable": {
+ "version": [
+ 20130617,
+ 2015
+ ],
+ "commit": "af88e38b1f04be02bf2e57affc662dbd0f828e67",
+ "sha256": "178gjv7kq97p9i4naxql7xabvmchw5x8idkpyjqqky3b24v5wkis"
+ }
+ },
+ {
+ "ename": "neato-graph-bar",
+ "commit": "49c5bd4e1506a28ada9856e5f70e520890123d16",
+ "sha256": "1p4jmla75ny443cv7djk3nvl3ikchllnsivxx9yds14ynk4jxhgb",
+ "fetcher": "gitlab",
+ "repo": "RobertCochran/neato-graph-bar",
+ "unstable": {
+ "version": [
+ 20181130,
+ 1649
+ ],
+ "commit": "a7ae35afd67911e8924f36e646bce0d3e3c1bbe6",
+ "sha256": "0sx2m2j00xhcb8l7fw595zsn9wjhcj4xb163rjqd3d1wjrk6fpn8"
+ }
+ },
+ {
+ "ename": "nemerle",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1rbalq3s2inwz9cf6bfmnxgqd9ylba3crflfjs6b4mnp33z4swny",
+ "fetcher": "github",
+ "repo": "rsdn/nemerle",
+ "unstable": {
+ "version": [
+ 20161029,
+ 2023
+ ],
+ "commit": "db4bc9078f1b6238da32df1519c1957e74b6834a",
+ "sha256": "07axi57f4q7rvsk3w15jrbql20fwmxn2rk07cc9ahqkzys66jfv1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "556270ce8b97668a65e9ec20a05f78c3dffeac60",
+ "sha256": "19xxg4ya6vndk2ljdnl284zs8qf9dkq4ghr7pmsclp9n7zh46v48"
+ }
+ },
+ {
+ "ename": "neon-mode",
+ "commit": "c6b2a4898bf21413c4d9e6714af129bbb0a23e1a",
+ "sha256": "0kgyc0rkxvvks5ykizfv82f2cx7ck17sk63plj7bld6khlcgv0y6",
+ "fetcher": "github",
+ "repo": "Fuco1/neon-mode",
+ "unstable": {
+ "version": [
+ 20180406,
+ 1156
+ ],
+ "commit": "99d15e46beaf1e7d71e39a00cce810df1f33229d",
+ "sha256": "07vsi07m5q070fvkqhz32qa2y7dgnyi1kggairimbiwbn98bh642"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "commit": "99d15e46beaf1e7d71e39a00cce810df1f33229d",
+ "sha256": "07vsi07m5q070fvkqhz32qa2y7dgnyi1kggairimbiwbn98bh642"
+ }
+ },
+ {
+ "ename": "neotree",
+ "commit": "9caf2e12762d334563496d2c75fae6c74cfe5c1c",
+ "sha256": "05smm1xsn866lsrak0inn2qw6dvzy24lz6h7rvinlhk5w27xva06",
+ "fetcher": "github",
+ "repo": "jaypei/emacs-neotree",
+ "unstable": {
+ "version": [
+ 20200324,
+ 1946
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "98fe21334affaffe2334bf7c987edaf1980d2d0b",
+ "sha256": "1m4d5l48k1frbkspk6wlzhbjn133bj7spp5chlgv8p4p9rpnc2zr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5e1271655170f4cdc6849258e383c548a4e6e3d0",
+ "sha256": "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"
+ }
+ },
+ {
+ "ename": "nerdtab",
+ "commit": "59bc273db1d34997ea5d51cc6adc33ec785bc7f3",
+ "sha256": "0q7dyqxq058195pgb1pjy27gcrr96096xcvvrapkarym7jsa2wy3",
+ "fetcher": "github",
+ "repo": "casouri/nerdtab",
+ "unstable": {
+ "version": [
+ 20180811,
+ 339
+ ],
+ "commit": "74ccc14d7956712e477a34b4a733284e8b3832a6",
+ "sha256": "1cpdarxw9pida7pg7lgq4p4lnq2l3ny2y96j0ckxx7r04p24q611"
+ }
+ },
+ {
+ "ename": "netease-music",
+ "commit": "ca3d4a8f8d9080e26a8fe2c38c0001d5cfc3c88c",
+ "sha256": "1vb81f1l45v6rny91rcqvnhzqh5ybdr0r39yrcaih8zhvamk685z",
+ "fetcher": "github",
+ "repo": "nicehiro/netease-music",
+ "unstable": {
+ "version": [
+ 20190708,
+ 215
+ ],
+ "deps": [
+ "names"
+ ],
+ "commit": "39a7d7a15f63435d9efaf469ea7c971069c07acb",
+ "sha256": "01wkd8ifsa5l6jh4xdmj40xfx0hyxv4c0a8s6z5ynmqvmbxvbw5n"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "f3bba59664e1c4c4ed47f16fa786151272d99a70",
+ "sha256": "1a6r7cmxvg83fa285drli2nac9a56kyd2pn4y1vfcg7jiy6czhiw"
+ }
+ },
+ {
+ "ename": "netherlands-holidays",
+ "commit": "abdbce47cb5c623696b5d6fcb3bef2d995d90195",
+ "sha256": "181linsbg5wrx1z7zbj3in2d3d4zd2v7drspkj0b6l0c5yfxwayf",
+ "fetcher": "github",
+ "repo": "abo-abo/netherlands-holidays",
+ "unstable": {
+ "version": [
+ 20150202,
+ 1617
+ ],
+ "commit": "26236178cdd650df9958bf5a086e184096559f00",
+ "sha256": "1kkflj2qnrn6kzh1l6bjl5n5507qilb22pqj3h0f2m6hfyn0sw5z"
+ }
+ },
+ {
+ "ename": "netrunner",
+ "commit": "a8b1d8c31383b6ec3788ad6c9adf0117190484c9",
+ "sha256": "1lk5acbv1fw7q9jwpk0l5hqb9wnscg2kj3qn6b4pwn9ggf8axkpv",
+ "fetcher": "github",
+ "repo": "Kungsgeten/netrunner",
+ "unstable": {
+ "version": [
+ 20160910,
+ 2332
+ ],
+ "deps": [
+ "company",
+ "helm",
+ "popup"
+ ],
+ "commit": "c64672992175c8c1073c0f56c2e471839db71a0f",
+ "sha256": "1jj8qsq4xa93h3srskhw1l6igzf9jhwl8hfa73zvqr8dhqhp149k"
+ }
+ },
+ {
+ "ename": "network-watch",
+ "commit": "e129679b3e2074af3e3de1b2ccce53a2fa5e9f65",
+ "sha256": "0y3vjrh9vlfg44c01ylkszisliwfy5zb8c5z3qrmf3yj4q096f42",
+ "fetcher": "github",
+ "repo": "jamiguet/network-watch",
+ "unstable": {
+ "version": [
+ 20171123,
+ 1146
+ ],
+ "commit": "958dd0d419e4f9402648a86b754091ba346e01b8",
+ "sha256": "1xqp7aghc8xd1733azl27mjf57qvm0036qbkqmaks2ip8s8c6arj"
+ }
+ },
+ {
+ "ename": "neuron-mode",
+ "commit": "6e4b79bc01b9ff2b00a4d0c80614f738a9e76dd6",
+ "sha256": "15ddpc64432013vn43amx0shnhr32cx1vkvn95chmddlkhx7ln16",
+ "fetcher": "github",
+ "repo": "felko/neuron-mode",
+ "unstable": {
+ "version": [
+ 20200806,
+ 833
+ ],
+ "deps": [
+ "company",
+ "f",
+ "markdown-mode",
+ "s"
+ ],
+ "commit": "18d230ce6b126fe7193db9c20ac93811ccfe779d",
+ "sha256": "18s7phs285jc4whd54x3dvbajqil7yff18xirbvf9pjlzivqwfk5"
+ }
+ },
+ {
+ "ename": "never-comment",
+ "commit": "ef3f8e712c10d63fea009951d7916fe376267cbe",
+ "sha256": "0sn8y57895bfpgiynnj4m9b3x3dbb9v5fwkcwmf9jr39dbf98v6s",
+ "fetcher": "github",
+ "repo": "To1ne/never-comment",
+ "unstable": {
+ "version": [
+ 20140104,
+ 2207
+ ],
+ "commit": "74ded8f1e7f23240f5f6032d0451fb0a51733bc4",
+ "sha256": "0p00mmid04pfsna4ify3cy0b9lx431q1r5h772hihsg4f1rs2ppy"
+ }
+ },
+ {
+ "ename": "newlisp-mode",
+ "commit": "e5c79c56bddfeb498d28f2575184434fbb93465d",
+ "sha256": "0i2d2gyzzvpr5qm2cqzbn9my21lfb66315hg9fj86ac5pkc25zrd",
+ "fetcher": "github",
+ "repo": "kosh04/newlisp-mode",
+ "unstable": {
+ "version": [
+ 20160226,
+ 1545
+ ],
+ "commit": "ac23be40c81a360988ab803d365f1510733f6db4",
+ "sha256": "1zzsfyqwj1k4zh30gl491ipavr9pp9djwjq3zz2q3xh7jys68w8r"
+ }
+ },
+ {
+ "ename": "nexus",
+ "commit": "80d3665e9a31aa3098df456dbeb07043054e42f5",
+ "sha256": "1mdphgsqg6n4hryr53rk42z58vfv0g5wkar5ipanr4h4iclkf5vd",
+ "fetcher": "github",
+ "repo": "juergenhoetzel/emacs-nexus",
+ "unstable": {
+ "version": [
+ 20140114,
+ 1305
+ ],
+ "commit": "c46f499951b90839aa8683779fe43d8f01672a60",
+ "sha256": "1xnx6v49i6abzbhq4fl4bp9d0pp9gby40splpcj211xsb8yiry27"
+ }
+ },
+ {
+ "ename": "ng2-mode",
+ "commit": "a856ecd8aca2d9232bb20fa7019de9e1dbbb19f4",
+ "sha256": "0sr4yh5nkgqb1qciq9mzzhr64350bi2wjm6z9d616nkjw72saz1r",
+ "fetcher": "github",
+ "repo": "AdamNiederer/ng2-mode",
+ "unstable": {
+ "version": [
+ 20200703,
+ 1610
+ ],
+ "deps": [
+ "typescript-mode"
+ ],
+ "commit": "d9feee65d882723b955483d2b8af01e49df21652",
+ "sha256": "0i0xad3h6rnkrbglmv10vv0zs3nf8kda19n176h6v4zy5bazgrqi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "typescript-mode"
+ ],
+ "commit": "57e6e4e388624853bc3b79bf5b17d2663ce26fa5",
+ "sha256": "08dm8clw3xm0c3xcbl3q4dm9n7cxhpldnwxjaxs1glc5l21qdg4q"
+ }
+ },
+ {
+ "ename": "nginx-mode",
+ "commit": "a6da3640b72496e2b32e6ed21aa39df87af9f7f3",
+ "sha256": "07k17m64zhv6gik8v4n73d8l1k6fsp4qp8cl94r384ny0187y65c",
+ "fetcher": "github",
+ "repo": "ajc/nginx-mode",
+ "unstable": {
+ "version": [
+ 20170612,
+ 437
+ ],
+ "commit": "a2bab83c2eb233d57d76b236e7c141c2ccc97005",
+ "sha256": "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 9
+ ],
+ "commit": "a2bab83c2eb233d57d76b236e7c141c2ccc97005",
+ "sha256": "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"
+ }
+ },
+ {
+ "ename": "niceify-info",
+ "commit": "0b2a923da7363d904eb848eb335736974e05dba1",
+ "sha256": "1s9c8yxbab9zl5jx38alwa2hpp4zj5cb9a5gfm3x09jf3iw768bl",
+ "fetcher": "github",
+ "repo": "aaron-em/niceify-info.el",
+ "unstable": {
+ "version": [
+ 20160416,
+ 1244
+ ],
+ "commit": "38df5062bc3b99d1074cab3e788b5ed66732111c",
+ "sha256": "0hgrf628ris94pmvmgibkq6zmwrqkv9q70c5a2gsbdpqmfikj8m1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "66b45916f1994e16ee023d29fa7cf8fec48078f1",
+ "sha256": "0dzcaa88l7yjc7fhyhkvbzs7bmhi6bb6rx41wsnnidlnpzbgdrk7"
+ }
+ },
+ {
+ "ename": "niconama",
+ "commit": "ad8e7189e9c4c5d86cef268f45be0dda2d702805",
+ "sha256": "1v4cvcxrl254jhfl1q5ld0gn4598fcvv0pfhilh2jy76w5acqx81",
+ "fetcher": "github",
+ "repo": "NOBUTOKA/niconama.el",
+ "unstable": {
+ "version": [
+ 20170910,
+ 1501
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "96e7553e50e6bf7b58aac50f52c9b0b8edb41c56",
+ "sha256": "1gihjzwl6309vgav5z7jzi8jb7is8vx8lr23kb6h373gwws4bi10"
+ }
+ },
+ {
+ "ename": "night-owl-theme",
+ "commit": "77fe194a0e58bdb9789c85f3c50895eb886b4016",
+ "sha256": "121jc59ry60h1ml1vxx4a6l4a6jcxk7fc4wz32fqv5pr03rzgs7h",
+ "fetcher": "github",
+ "repo": "aaronjensen/night-owl-emacs",
+ "unstable": {
+ "version": [
+ 20200622,
+ 1943
+ ],
+ "commit": "4b9b5cb4fead9c5f145ba399d172c7e6bf577121",
+ "sha256": "0hkjy8qnpjwqc6c8zczb68s7kg5cx8wq9067rvwx4hraxv1bjqmm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "3d1b6b319173c2f0aaf42a294ab01fba473f11c4",
+ "sha256": "157zdnpy18ca9biv5bxv3qvg62sh3qmpp2lv9q8sgasg0wvb9vpk"
+ }
+ },
+ {
+ "ename": "nikola",
+ "commit": "8ef4f7c2f1c48edd7b4a6fdcda51908d216c631c",
+ "sha256": "1d0a80y910klayb9jf0ahn5lj9l6xdhwcp2in3ridmqislavrcnv",
+ "fetcher": "git",
+ "url": "https://git.daemons.it/drymer/nikola.el/",
+ "unstable": {
+ "version": [
+ 20170703,
+ 2021
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "964715ac30943c9d6976999cad208dc60d09def0",
+ "sha256": "0b0bpw9r2xi1avzq76pl58bbk1shb57d3bmzd9d53d07gj5c9399"
+ }
+ },
+ {
+ "ename": "nim-mode",
+ "commit": "dc2ccb5f24b9d55c77eaa7952a9e6a2e0ed7be24",
+ "sha256": "1kzn3kkkj7jzs7fqhvib196sl3vp7kbhb4icqzmvvmv366lkaib6",
+ "fetcher": "github",
+ "repo": "nim-lang/nim-mode",
+ "unstable": {
+ "version": [
+ 20191219,
+ 847
+ ],
+ "deps": [
+ "commenter",
+ "epc",
+ "flycheck-nimsuggest",
+ "let-alist"
+ ],
+ "commit": "16a245e4974d21a6e9e7163e7fbfb50a0bd89f99",
+ "sha256": "0fil6x2wshrini0q2zdi96hrvqgx5l4ljnirgqcr7q7lmjdijpci"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "commenter",
+ "epc",
+ "flycheck",
+ "let-alist"
+ ],
+ "commit": "86abed21b9b718ac65cc167f208e0bd5b92c79ed",
+ "sha256": "0h1paf9z6xvkay97ns74w2w9plwi46md5f2kik4jvjy74p57gxal"
+ }
+ },
+ {
+ "ename": "nimbus-theme",
+ "commit": "fc0e6b456b76e2379c64a86ad844362c58146dc6",
+ "sha256": "1hy4rc1v5wg7n6nazdq09gadirb0qvn887mmdavwjnnac45xyi18",
+ "fetcher": "github",
+ "repo": "m-cat/nimbus-theme",
+ "unstable": {
+ "version": [
+ 20200812,
+ 915
+ ],
+ "commit": "1a828c1fa0574503014afe8dda3229fb76a4bf64",
+ "sha256": "1qapsq7mxayjjr7y376p9vb7k871rwjgmyvmv756xg98lf7vm3fb"
+ }
+ },
+ {
+ "ename": "ninja-mode",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "1v6wy9qllbxl37fp9h47000lwp557qss6fdjb3a1f20msg8f70av",
+ "fetcher": "github",
+ "repo": "ninja-build/ninja",
+ "unstable": {
+ "version": [
+ 20181024,
+ 1439
+ ],
+ "commit": "9ddd3c917793bb97eb19d571429cdedf07501c03",
+ "sha256": "0lrj3k5ng748faarz63rspnd4sh38qvkxxcgbmk81h4cqvv529fy"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 10,
+ 1
+ ],
+ "commit": "a1f879b29c9aafe6a2bc0ba885701f8f4f19f772",
+ "sha256": "1bmv7zfqwp48ga6vnqvy0gzkclv40xgq19q4ihl58r6cn4swccn3"
+ }
+ },
+ {
+ "ename": "nix-buffer",
+ "commit": "08b978724ff26b3ea7a134d307d888c80e2a92a9",
+ "sha256": "1fjkf88345v9l2v2mk8a057mw0p0rckf6rjf00y5464dyhh58vcd",
+ "fetcher": "github",
+ "repo": "shlevy/nix-buffer",
+ "unstable": {
+ "version": [
+ 20180212,
+ 1518
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "db57cda36e7477bdc7ef5a136357b971b1d4d099",
+ "sha256": "0b01b4l9c70sad5r5py5hvg7s6k6idwwp0pv3rn8rj0fq5wlyixj"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 1
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "db57cda36e7477bdc7ef5a136357b971b1d4d099",
+ "sha256": "0b01b4l9c70sad5r5py5hvg7s6k6idwwp0pv3rn8rj0fq5wlyixj"
+ }
+ },
+ {
+ "ename": "nix-env-install",
+ "commit": "47dbcb798012e53a7e02277428006db50781d009",
+ "sha256": "0srbdq93d6apmn4wbcgaz3fil82n44wvcslxmjc95warwz859xmd",
+ "fetcher": "github",
+ "repo": "akirak/nix-env-install",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1305
+ ],
+ "commit": "79c34bc117ba1cebeb67fab32c364951d2ec37a0",
+ "sha256": "12f16pfki1jwnw1ghdsqcrb11039njffl9hz3aa7sflwr95g2pbb"
+ }
+ },
+ {
+ "ename": "nix-haskell-mode",
+ "commit": "aeb879e2e8b017d3e1ccdc8d19f17d09b2ad5f1b",
+ "sha256": "1rygqmq01p27gbda6hgnzisng7xqf63x462a3x31ym67ivxsyqz3",
+ "fetcher": "github",
+ "repo": "matthewbauer/nix-haskell-mode",
+ "unstable": {
+ "version": [
+ 20190615,
+ 135
+ ],
+ "deps": [
+ "haskell-mode",
+ "nix-mode"
+ ],
+ "commit": "68efbcbf949a706ecca6409506968ed2ef928a20",
+ "sha256": "1zv3sj3pgc2chv3880nyixvdmpw9sm4h153xw7gm26v2yhhkfdnn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "flycheck",
+ "haskell-mode",
+ "nix-mode"
+ ],
+ "commit": "1622924f0f6668f9b42f135323087ba94b1bf252",
+ "sha256": "09x4b939y0w4irnkvpxhn1jkzy4id9vhfkl5b9f14jjdny2d6l3a"
+ }
+ },
+ {
+ "ename": "nix-mode",
+ "commit": "e1870d786dbfac3b14386c8030e06f2d13ab9da6",
+ "sha256": "10f3ly4860lkxzykw4fbvhn3i0c2hgj77jfjbhlk2c1jz9x4yyy5",
+ "fetcher": "github",
+ "repo": "NixOS/nix-mode",
+ "unstable": {
+ "version": [
+ 20200811,
+ 1947
+ ],
+ "commit": "0cf1ea1e0ed330b59f47056d927797e625ba8f53",
+ "sha256": "0wsiyvv23jcazh7jrbkg3d0qs1y5i88ahsdi3pp2s8q9h3lyhwnb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 4
+ ],
+ "commit": "e4e604ae3ac91748c4e7d51a591cb9ee60961b7c",
+ "sha256": "19f36kl00pxm2a18hn4cdsdvxlfsdx1pnnm6s6zxd8nw6y8ynvn0"
+ }
+ },
+ {
+ "ename": "nix-sandbox",
+ "commit": "66be755a6566e8c0cfb5aafa50de29b434023c7a",
+ "sha256": "13zr0jbc6if2wvyiplay2gkd5548imfm38x1qy1dw6m2vhbzwp0k",
+ "fetcher": "github",
+ "repo": "travisbhartwell/nix-emacs",
+ "unstable": {
+ "version": [
+ 20191126,
+ 759
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
+ "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+ }
+ },
+ {
+ "ename": "nix-update",
+ "commit": "c59e828d4cad3d75344b34b9666349250e53b6ea",
+ "sha256": "0if83pvjvr0347301j553bsxrrxniyykq20457cdkzlvva52c0b3",
+ "fetcher": "github",
+ "repo": "jwiegley/nix-update-el",
+ "unstable": {
+ "version": [
+ 20190124,
+ 1935
+ ],
+ "commit": "fc6c39c2da3fcfa62f4796816c084a6389c8b6e7",
+ "sha256": "01cpl4w49m5dfkx7l8g1q183s341iz6vkjv2q4fbx93avd7msjgi"
+ }
+ },
+ {
+ "ename": "nixos-options",
+ "commit": "6846c7d86e70a9dd8300b89b61435aa7e146be96",
+ "sha256": "1m3jipidk10zj68rzjbacgjlal31jf80gqjxlgj4qs8lm671gxmm",
+ "fetcher": "github",
+ "repo": "travisbhartwell/nix-emacs",
+ "unstable": {
+ "version": [
+ 20160209,
+ 1841
+ ],
+ "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
+ "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "json"
+ ],
+ "commit": "5fc8fa29bea9dd8e9c822af92f9bc6ddc223635f",
+ "sha256": "1lm7rkgf7q5g4ji6v1masfbhxdpwni8d77dapsy5k9p73cr2aqld"
+ }
+ },
+ {
+ "ename": "nixpkgs-fmt",
+ "commit": "36f9451ad54c787f9e94bfda0e71de99da94be34",
+ "sha256": "1j9k4r25iylmrg0hbjb8jamrci3jxyrpx2baawmcyhqgxiz3lcz8",
+ "fetcher": "github",
+ "repo": "purcell/emacs-nixpkgs-fmt",
+ "unstable": {
+ "version": [
+ 20200327,
+ 2302
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "213251f82a69edc033766ec96948e83aeb428cd2",
+ "sha256": "1hx13p9rs33j2ajbg0dp6a371hr0dcxbcyzr5xlvkg6gf746lmg8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "83e03d6f20bdf79c1c448c15734367b1a7cc6b02",
+ "sha256": "0hw0m4a637w1fm47snywn0mxz09qa5diy4hqngbqf7gxfj6hmfnz"
+ }
+ },
+ {
+ "ename": "nlinum-hl",
+ "commit": "b13a886535a5c33fe389a6b616988b7377249625",
+ "sha256": "17lcp1ira7yhch9npg9sf3npwg06yh9zyhg0lnb22xg09lbndj0x",
+ "fetcher": "github",
+ "repo": "hlissner/emacs-nlinum-hl",
+ "unstable": {
+ "version": [
+ 20190301,
+ 2117
+ ],
+ "deps": [
+ "cl-lib",
+ "nlinum"
+ ],
+ "commit": "dc6b365a58e06c7d637a76a31c71a40b20da8b56",
+ "sha256": "1fvvyc77iggil9mzy8hd4vx8xw96bkfx6pmlb9ami428qp8r45g7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 6
+ ],
+ "deps": [
+ "cl-lib",
+ "nlinum"
+ ],
+ "commit": "dc6b365a58e06c7d637a76a31c71a40b20da8b56",
+ "sha256": "1fvvyc77iggil9mzy8hd4vx8xw96bkfx6pmlb9ami428qp8r45g7"
+ }
+ },
+ {
+ "ename": "nlinum-relative",
+ "commit": "eb418a464b112f9bb1bbd050e9602b60c0fcce1c",
+ "sha256": "15ifh5bfsarkifx6m7d5rhx6hqlnm231plkf623885kar7i85ia4",
+ "fetcher": "github",
+ "repo": "CodeFalling/nlinum-relative",
+ "unstable": {
+ "version": [
+ 20160526,
+ 708
+ ],
+ "deps": [
+ "nlinum"
+ ],
+ "commit": "5b9950c97ba79a6f0683e38b13da23f39e01031c",
+ "sha256": "0h00ghr5sipayfxz7ykzy7bg1p1vkbwxl5xch3x0h8j2cp1dqc3d"
+ }
+ },
+ {
+ "ename": "nm",
+ "commit": "cdad6565e83dd79db538d3b6a45e932864246da2",
+ "sha256": "004rjbrkc7jalbd8ih170sy97w2g16k3whqrqwywh09pzrzb05kw",
+ "fetcher": "github",
+ "repo": "tjim/nevermore",
+ "unstable": {
+ "version": [
+ 20151110,
+ 1910
+ ],
+ "deps": [
+ "company",
+ "notmuch",
+ "peg"
+ ],
+ "commit": "5a3f29174b3a4b2b2e7a700a862f3b16a942687e",
+ "sha256": "1skbjmyikzyiic470sngskggs05r35m8vzm69wbmrjapczginnak"
+ }
+ },
+ {
+ "ename": "nndiscourse",
+ "commit": "1d6a236cd3ff51f2d4cfca114b2791c8ac7411e8",
+ "sha256": "03kfb8c7knnd1n5sxxpldmscbwi5lrnsyh6w2ji4pvaq5xhmrlxb",
+ "fetcher": "github",
+ "repo": "dickmao/nndiscourse",
+ "unstable": {
+ "version": [
+ 20200524,
+ 1649
+ ],
+ "deps": [
+ "anaphora",
+ "dash",
+ "dash-functional",
+ "json-rpc",
+ "rbenv"
+ ],
+ "commit": "e8d99d132d649e179f7cc81b80d873436b4e8ce1",
+ "sha256": "03iqbb3svidczzci0l8b19zk8yx9xdslf9y0hpn2y8fzhf4gszrp"
+ }
+ },
+ {
+ "ename": "nnhackernews",
+ "commit": "40fec106c676f8207ec9c4553c3ec16c626b098c",
+ "sha256": "0nqbfzyb61a80900hg2sqimjvr765a3f94v07by55d1smifzwnff",
+ "fetcher": "github",
+ "repo": "dickmao/nnhackernews",
+ "unstable": {
+ "version": [
+ 20200730,
+ 1052
+ ],
+ "deps": [
+ "anaphora",
+ "dash",
+ "dash-functional",
+ "request"
+ ],
+ "commit": "ad20d17f196a1b99c683ad2ffc39a9b4b2fada58",
+ "sha256": "1b5jnprpvlsn7cnxj6pab8kr0kdzm8xqrzhsga6dlaww6max26xp"
+ }
+ },
+ {
+ "ename": "nnir-est",
+ "commit": "ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38",
+ "sha256": "04ih47pipph8sl84nv6ka4xlpd8vhnpwhs5cchgk5k1zv3l5scxv",
+ "fetcher": "github",
+ "repo": "kawabata/nnir-est",
+ "unstable": {
+ "version": [
+ 20180710,
+ 2103
+ ],
+ "commit": "6d0d5c8e33f4e4ccbc22350324c0990d2676fb5a",
+ "sha256": "1xmv2mddhvcvnyndpyv42gl8zn5dx7lvd03pl43bjp38srn4aj6g"
+ }
+ },
+ {
+ "ename": "nnreddit",
+ "commit": "4581c76fee699eb9f41eb0f00e4ccd4a008b8399",
+ "sha256": "0pfb57pwdyhsrmgzbf83xrq10xjhm6sk6xyz8rd15gjqka2mc8c2",
+ "fetcher": "github",
+ "repo": "dickmao/nnreddit",
+ "unstable": {
+ "version": [
+ 20200524,
+ 1647
+ ],
+ "deps": [
+ "anaphora",
+ "dash",
+ "json-rpc",
+ "request",
+ "virtualenvwrapper"
+ ],
+ "commit": "4f41473221ea3312085c9f562db59d8f22bf8910",
+ "sha256": "0b42z866igmh8lvykcmac19zb6irdyvaag5dnaa54w2xc9ms52hj"
+ }
+ },
+ {
+ "ename": "no-emoji",
+ "commit": "af6b04c1f95468254f2cf361964df9fd25d23586",
+ "sha256": "1lr6bzjxwn3yzw0mq36h2k2h8bqb1ngin42swhv022yx6a022zn2",
+ "fetcher": "github",
+ "repo": "ecraven/no-emoji",
+ "unstable": {
+ "version": [
+ 20180515,
+ 1837
+ ],
+ "commit": "ebceeab50dbfe4d60235180a57633745dbc18c77",
+ "sha256": "19wni50073dwspppx0xlryagg2fgg0jiz5kqf1b1wmaq8xn5b8r9"
+ }
+ },
+ {
+ "ename": "no-littering",
+ "commit": "57a2fb9524df3fdfdc54c403112e12bd70888b23",
+ "sha256": "15w784ir48v8biiaar8ip19s9y3wn5831m815kcw02mgzy3bfjmh",
+ "fetcher": "github",
+ "repo": "emacscollective/no-littering",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1831
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "85629e5979f2159ab8cc77814dd4cb219e6ba69c",
+ "sha256": "0ii19sbmsl35y1glj2mz309aila8954rmpah7y7mr2b34ami6hdw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "aaa3c36b25e07017595b54e91e190f69f0de0487",
+ "sha256": "0v642qbd65w5jq44zsl4vy525vjmhr948p1jmpq4mpvhfgmxx88c"
+ }
+ },
+ {
+ "ename": "no-spam",
+ "commit": "77315d545c4df63a1e7f9c90e80a36746da4d986",
+ "sha256": "1rg9c53izvpsyrvn0lpfkmw4lbz5vhh501zjljz65d01pf8zmkkl",
+ "fetcher": "github",
+ "repo": "mamapanda/no-spam",
+ "unstable": {
+ "version": [
+ 20190724,
+ 1854
+ ],
+ "commit": "860860e4a0d59bd15c8e092dc42f5f7f769a428e",
+ "sha256": "00xrbgh0pw6apm51lyvwdlc8rlkb2i713cclibaqffi18qz5z6kf"
+ }
+ },
+ {
+ "ename": "noaa",
+ "commit": "1272203f85375e50d951451bd5fd3baffd57bbfa",
+ "sha256": "11hzpmgapmf6dc5imvj5jvzcy7hfddyz74lqmrq8128i72q1sj0v",
+ "fetcher": "github",
+ "repo": "thomp/noaa",
+ "unstable": {
+ "version": [
+ 20190202,
+ 1634
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "request"
+ ],
+ "commit": "ebc6a4a1cc56c01d2bb882e4a40934a6a1f4e9ca",
+ "sha256": "04zhhz8v6bx627g1vhvd0s8bl5g3d6a1mfgf7pb13627npsvbrdx"
+ }
+ },
+ {
+ "ename": "noccur",
+ "commit": "41f15b8298390310e95cbe137ea1516c0be10b94",
+ "sha256": "0a8l50v09bgap7rsls808k9wyjpjbcxaffsvz7hh9rw9s7m5fz5g",
+ "fetcher": "github",
+ "repo": "NicolasPetton/noccur.el",
+ "unstable": {
+ "version": [
+ 20191015,
+ 719
+ ],
+ "commit": "fa91647a305e89561d3dbe53da002fff49abe0bb",
+ "sha256": "0slyy7qadc06cij7lgk7d36ym54dyh9a7vjdc38ysr1nh8g7agvm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "6cc02ce07178a61ae38a849f80472c01969272bc",
+ "sha256": "0wk86gm0by9c8mfbvydz5va07qd30n6wx067inqfa7wjffaq0xr7"
+ }
+ },
+ {
+ "ename": "nocomments-mode",
+ "commit": "d88074771b581d21f48b707f93949f7224a28633",
+ "sha256": "1qhalhs29fb3kv5ckk8ny9fbqn2c4r4lwnc566j3bb1caqf2j7g0",
+ "fetcher": "github",
+ "repo": "Lindydancer/nocomments-mode",
+ "unstable": {
+ "version": [
+ 20170213,
+ 2037
+ ],
+ "commit": "5a41a20cc44dfe4a9ea584354ed6dbc15dd92f46",
+ "sha256": "0jwwnypa0lx812p3dqqn9c05g27qavnvr23pzphydx9i15nz80g0"
+ }
+ },
+ {
+ "ename": "noctilux-theme",
+ "commit": "c0a18df34c105da8c5710643cd8027402bb07c95",
+ "sha256": "15ymyv3rq0n31d8h0ry0l4w4r5a8as0q63ajm9wb6yrxxjl1imfp",
+ "fetcher": "github",
+ "repo": "sjrmanning/noctilux-theme",
+ "unstable": {
+ "version": [
+ 20161113,
+ 1442
+ ],
+ "commit": "a3265a1be7f4d73f44acce6d968ca6f7add1f2ca",
+ "sha256": "12xx0v8d97kjvlkj0ii78vxxvzgmcfc4hzv4yvxymg50rsy0zzqi"
+ }
+ },
+ {
+ "ename": "node-resolver",
+ "commit": "60537705dc922bd50220d378a2992cf36464eb0c",
+ "sha256": "1ng4rgm8f745fajqnbjhi2rshvn6icwdpbh5dzpzhim1w9kb3bhh",
+ "fetcher": "github",
+ "repo": "meandavejustice/node-resolver.el",
+ "unstable": {
+ "version": [
+ 20140930,
+ 1723
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ef9d0486907a746a80b02ffc6208a09c168a9f7c",
+ "sha256": "1cgmq00ackabwcl4h0n2bb8y08wz0ir5rzca2q3sk4asly6d02m7"
+ }
+ },
+ {
+ "ename": "nodejs-repl",
+ "commit": "14f22f97416111fcb02e299ff2b20c44fb75f049",
+ "sha256": "0rvhhrsw87kfrwdhm8glq6b3nr0v90ivm7fcc0da4yc2jmcyk907",
+ "fetcher": "github",
+ "repo": "abicky/nodejs-repl.el",
+ "unstable": {
+ "version": [
+ 20200802,
+ 1310
+ ],
+ "commit": "3b841055cad00f442e4a9159b1056f59411b6646",
+ "sha256": "0371lz9378x3vjj2kqir89sjy0l5d5j6ha5yz1381nkh15dcww15"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "commit": "f5ce3d5b7b4e0d06f6e9d4930d9ecc417633586b",
+ "sha256": "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx"
+ }
+ },
+ {
+ "ename": "nodemcu-mode",
+ "commit": "a414f8b30954a50d74e4ae42abcf436cfca8d2b4",
+ "sha256": "0xx5dys8vifgaf3hb4q762xhhn1jybc4xwajqj98iban4nrakb3a",
+ "fetcher": "github",
+ "repo": "andrmuel/nodemcu-mode",
+ "unstable": {
+ "version": [
+ 20180501,
+ 2225
+ ],
+ "commit": "8effd9f3df40b6b92a2f05e4d54750b624afc4a7",
+ "sha256": "1s19sshsm4cdx8kj5prmsq8ryz4843xcqmdayvlfl99jxsp9j4pm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "8effd9f3df40b6b92a2f05e4d54750b624afc4a7",
+ "sha256": "1s19sshsm4cdx8kj5prmsq8ryz4843xcqmdayvlfl99jxsp9j4pm"
+ }
+ },
+ {
+ "ename": "noflet",
+ "commit": "df33a7230e0e4a67ce75e5cce6a436e2a0d205e8",
+ "sha256": "0vzamqb52n330mi6rydrd4ls8nbwh5s42fc2gs5y15zakp6mvhr3",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-noflet",
+ "unstable": {
+ "version": [
+ 20141102,
+ 1454
+ ],
+ "commit": "7ae84dc3257637af7334101456dafe1759c6b68a",
+ "sha256": "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"
+ }
+ },
+ {
+ "ename": "nofrils-acme-theme",
+ "commit": "c59ddaa5e41d3c25c446b1ed1905d7f88b448e0a",
+ "sha256": "01xqsn8whczv34lfa9vbm5rpvrvsrlpav8pzng10jvax1a9wdp3a",
+ "fetcher": "gitlab",
+ "repo": "esessoms/nofrils-theme",
+ "unstable": {
+ "version": [
+ 20180620,
+ 1248
+ ],
+ "commit": "98ad7bfaff1d85b33dc162645670285b067c6f92",
+ "sha256": "0f8s7mhcs1ym4an8d4dabfvhin30xs2d0c5gv875hsgz8p3asgxs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "7825f88cb881a84eaa5cd1689772819a18eb2943",
+ "sha256": "009did3i3i8yi0virq606l02w1mw0gdyiqablqg7m368gx0gfvh5"
+ }
+ },
+ {
+ "ename": "nord-theme",
+ "commit": "31cb60069825abe3998c8b43bc9177b39a7f3659",
+ "sha256": "0p4fqg4i2ayimd8kxsqnb1xkapzhhxf7szxi1skva4dcym3z67cc",
+ "fetcher": "github",
+ "repo": "arcticicestudio/nord-emacs",
+ "unstable": {
+ "version": [
+ 20200620,
+ 1122
+ ],
+ "commit": "4f5b64605709d5803285953026137e905756c35f",
+ "sha256": "032lgin0pn07ysshsdfdfqd5ck1fhrwdfz64sxwwc4gxlg5p4p98"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "0f5295f99005a200191ce7b660e56cd0510cf710",
+ "sha256": "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"
+ }
+ },
+ {
+ "ename": "nordless-theme",
+ "commit": "d16babc1f37d62cb8e9e983dfd92dabb83c8b9b3",
+ "sha256": "0nf9pkyrv0qvbpmp2kqdqmli6cg0bvn9q815p9pdpvacmjsnfpvj",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~lthms/colorless-themes.el",
+ "unstable": {
+ "version": [
+ 20200213,
+ 2057
+ ],
+ "deps": [
+ "colorless-themes"
+ ],
+ "commit": "736f7a105535901b4783d19534e7855920e25115",
+ "sha256": "1wi7wxiyk0g3k0l60hdmcyvvxr1kaapbkxvkknwd9qvdsji0ng73"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "colorless-themes"
+ ],
+ "commit": "8e539097185704444a5dd5545924de92c11ba767",
+ "sha256": "1p16vxai8dj1vy4ahflwij1ldx00jzrjcinpgpc7wgh6ka748v11"
+ }
+ },
+ {
+ "ename": "northcode-theme",
+ "commit": "25dcd4dd8189ad0fbf6c31874daa618bf1957863",
+ "sha256": "0x4dryx174kcjzm11z9q5qqlzr1c9zr0p32zwgbvgypgnvjy6i4g",
+ "fetcher": "github",
+ "repo": "Northcode/northcode-theme.el",
+ "unstable": {
+ "version": [
+ 20180423,
+ 1649
+ ],
+ "commit": "4d3750461ba25ec45321318b5f1af4e8fdf16147",
+ "sha256": "1yin5i38jdp47k6b7mc0jkv9ihl8nk5rpqin4qmwbhb871zxn7ma"
+ }
+ },
+ {
+ "ename": "nothing-theme",
+ "commit": "8f69a676e9adfb45f8fbd4467e86a4cb0fbf6ae8",
+ "sha256": "0w93f50sb9swgn1lwnk8pdwwa5kpizmaaz13lvbk1qhq2xipr7yp",
+ "fetcher": "github",
+ "repo": "jaredgorski/nothing.el",
+ "unstable": {
+ "version": [
+ 20200504,
+ 402
+ ],
+ "commit": "d2514bb9707f66dda0d60f40f465e79914c50946",
+ "sha256": "1gy3zis9swkriynaq4xc8mc3xiihak0hi718pckbkxwjmnrfyvc0"
+ }
+ },
+ {
+ "ename": "notmuch",
+ "commit": "d05fbde3aabfec4efdd19a33fd2b1297905acb5a",
+ "sha256": "0pznpl0aqybdg4b2qypq6k4jac64sssqhgz6rvk9g2nkqhkds1x7",
+ "fetcher": "git",
+ "url": "https://git.notmuchmail.org/git/notmuch",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1342
+ ],
+ "commit": "8776faf6d5118e8152ecfacf94accf35ccebf1d2",
+ "sha256": "0r4f12m2xbwzl0fhqcz2vv7dcr0psnhy8ahhv6b5gsdfdfd2w4w3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 31,
+ -1,
+ 1
+ ],
+ "commit": "75ec89dfb4c254ba0b88ddb479e6ede6bfb7d0c7",
+ "sha256": "1pc4nkbhxmx1qlamnjzd1arzr3sgp0m95vn1jmmfivgddy3xh8b0"
+ }
+ },
+ {
+ "ename": "notmuch-bookmarks",
+ "commit": "dda2f16bfd15bebae67b51f04c068ffd032a42fb",
+ "sha256": "0ckl2hspjmk8gr2szh6xg1kv9vsnc2s0jjqymqvckpsl2g4n82p9",
+ "fetcher": "github",
+ "repo": "publicimageltd/notmuch-bookmarks",
+ "unstable": {
+ "version": [
+ 20200322,
+ 1925
+ ],
+ "deps": [
+ "notmuch",
+ "seq"
+ ],
+ "commit": "ec8edfdbd1ac475530591d73a570ded5c18ed86a",
+ "sha256": "01bhxvjsmgxvh08r80lzlyj0wk1izx5bq22w6zsdzvxiclgrzk16"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "c0071310f01dd5296600bdc4d6135667d38ef0de",
+ "sha256": "0zg53b77g4s05dj3a7n3vxdvfwya6pzc0v86kqk0443m2y96vfwc"
+ }
+ },
+ {
+ "ename": "notmuch-labeler",
+ "commit": "2e9940e66bbf70ec868dbdaaeaa1fbd4f076a2e1",
+ "sha256": "1c0cbkk5k8ps01xl63a0xa2adkqaj0znw8qs8ca4ai8v1420bpl0",
+ "fetcher": "github",
+ "repo": "DamienCassou/notmuch-labeler",
+ "unstable": {
+ "version": [
+ 20131230,
+ 1719
+ ],
+ "deps": [
+ "notmuch"
+ ],
+ "commit": "d65d1129555d368243df4770ecc1e7ccb88efc58",
+ "sha256": "1ss87vlp7625lnn2iah3rc1xfxcbpx4kmiww9n16jx073fs2rj18"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "notmuch"
+ ],
+ "commit": "d65d1129555d368243df4770ecc1e7ccb88efc58",
+ "sha256": "1ss87vlp7625lnn2iah3rc1xfxcbpx4kmiww9n16jx073fs2rj18"
+ }
+ },
+ {
+ "ename": "nov",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "1w4il2jbn0x6v11y3rnz5w5vs0d0hhlqqzzxdpkpmrq9ycbq58hw",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/nov.el.git",
+ "unstable": {
+ "version": [
+ 20200813,
+ 821
+ ],
+ "deps": [
+ "dash",
+ "esxml"
+ ],
+ "commit": "6cfd80124038504038bcb5d4cf2e8b037c36841a",
+ "sha256": "1zr8q9kl3i1900vp08c52ywx2lpwp4iyqs8vm3kb8a7dsc4hpggf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "esxml"
+ ],
+ "commit": "3d32aac0f895c8605e254c8b7f246537816744f5",
+ "sha256": "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"
+ }
+ },
+ {
+ "ename": "nova-theme",
+ "commit": "16457166c17fb1cc074a34c61e52ebc285c0eacc",
+ "sha256": "1d2271qd5z48x71pxjg4lngsc5ddw5iqh496p04f63sm08cgaky4",
+ "fetcher": "github",
+ "repo": "muirmanders/emacs-nova-theme",
+ "unstable": {
+ "version": [
+ 20200213,
+ 102
+ ],
+ "commit": "4553fabbcd340f3f2fa59dbfb6f3f32ecb016e6f",
+ "sha256": "0y0f7f03hikd5j20fc40g0hrp7aiwzna9rfwpxzlj10n8ijmygq9"
+ }
+ },
+ {
+ "ename": "noxml-fold",
+ "commit": "13d2af88b292293cb5ab50819c63acfe936630c8",
+ "sha256": "11dninxxwhflf2qrmvwmrryspd9j6m95kdlmyx59ykqvw8j0siqc",
+ "fetcher": "github",
+ "repo": "paddymcall/noXML-fold",
+ "unstable": {
+ "version": [
+ 20170823,
+ 1357
+ ],
+ "commit": "46c7f6a008672213238a9f8d7a416ce80916aa62",
+ "sha256": "0axr7n4wdrd009lz6sg4y9ggf4f5svgrsclwhs0hyn2ld34rvrax"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "56fbc44b25cee9f8719edb3c7f8b1c4327dc1051",
+ "sha256": "00h6nwbx2l0rp2i7n0328w6ckp4gkspqk3q91ciixb4lkhh20cz2"
+ }
+ },
+ {
+ "ename": "npm",
+ "commit": "012ca672c63711197c98eded098b1d1a9a24fd51",
+ "sha256": "0zi4c5a8cn03i6jdranak586s580bw772vazslxa3zs1y3xripir",
+ "fetcher": "github",
+ "repo": "shaneikennedy/npm.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1850
+ ],
+ "deps": [
+ "jest",
+ "transient"
+ ],
+ "commit": "26d5cf79dfd1a2a74a66c44de129483d26354345",
+ "sha256": "0akjjb5xqpzg784qi6hbjfjm335mixqszzrxwz69ggl50iy9s6rk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "transient"
+ ],
+ "commit": "a699cba6a8798af709b2576f2df54abd7eb1701b",
+ "sha256": "1w9a9pjpp3lchl4k8y1zhdpdnmd090s8vp7vbfb89xawp1gavhxg"
+ }
+ },
+ {
+ "ename": "npm-mode",
+ "commit": "22dd6b2f8a94f56a61f4b70bd7e44b1bcf96eb18",
+ "sha256": "1aym4jfr6im6hdc5d7995q6myhgig286fk9hpaxdf418h1s17rqr",
+ "fetcher": "github",
+ "repo": "mojochao/npm-mode",
+ "unstable": {
+ "version": [
+ 20190616,
+ 2025
+ ],
+ "commit": "3ee7c0bad5b7a041d4739ef3aaa06a3dc764e5eb",
+ "sha256": "06axwqxdj3damn93l6asn6mnzqrfndc10s7wp1z3nbv9j5yjm35x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "commit": "84b35211cba4f2d5f03b8dc2b60ae4b03d90bf8a",
+ "sha256": "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"
+ }
+ },
+ {
+ "ename": "nrepl-eval-sexp-fu",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1mz7a6aa4x23khlfqhhn9ycs3yxg44h5cckg4v4rc6lbif1jzzf8",
+ "fetcher": "github",
+ "repo": "samaaron/nrepl-eval-sexp-fu",
+ "unstable": {
+ "version": [
+ 20140311,
+ 1041
+ ],
+ "deps": [
+ "highlight",
+ "smartparens",
+ "thingatpt"
+ ],
+ "commit": "3a24b7d4bca13e87c987a4ddd212da914ff59191",
+ "sha256": "1nwj1ax2qmmlab4lik0b7japhqd424d0rb995dfv89p99gp8vmvc"
+ }
+ },
+ {
+ "ename": "nrepl-sync",
+ "commit": "2059ab6f2a3adc5af4f0876546e344e806e22ee5",
+ "sha256": "01b504b4d8rrhlf3sfq3kk9i222fch6jd5jbm02kqw20fgv6q3jd",
+ "fetcher": "github",
+ "repo": "phillord/lein-sync",
+ "unstable": {
+ "version": [
+ 20140807,
+ 1554
+ ],
+ "deps": [
+ "cider"
+ ],
+ "commit": "bab53a2361526d63a24cda176d07a1247bf5b399",
+ "sha256": "1129r3rzmfbl8nxjz71xnlyaszhhldawj467zbl36brdadp014n1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cider"
+ ],
+ "commit": "471a08df87687a3eab61b3b8bf25a2e0962b5d5b",
+ "sha256": "1l07nrlfd5qj8jnqacjba7mb6prapg8d8h3881l3kb66sn02ahgy"
+ }
+ },
+ {
+ "ename": "ns-auto-titlebar",
+ "commit": "d22ebb5ef16df0c56d6031cb1c7f312dca514482",
+ "sha256": "1wk4y2jwl65z18cv57m8zkcg31wp9by74z2zvccxzl7mwlhy7kqg",
+ "fetcher": "github",
+ "repo": "purcell/ns-auto-titlebar",
+ "unstable": {
+ "version": [
+ 20181022,
+ 2154
+ ],
+ "commit": "60273e764bf8d95abc40dd2fdc23af87ea9ee33b",
+ "sha256": "0cr0y0mflqr434223rfwlzzp2zdaddqymsrysbsrbv3qhh157sk3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "b16092e8058af63ad2bc222f166b0aa3cb66bf9d",
+ "sha256": "0m1ih8ca4702zrkhl3zdvwbci96wyjlxhpfx95w372k25rca87dq"
+ }
+ },
+ {
+ "ename": "nsis-mode",
+ "commit": "e9b169a80c7afdeb0c6e17cd289114b5d3d97266",
+ "sha256": "0pc047ryw906sz5mv0awvl67kh20prsgx6fbh0j1qm0cali2792l",
+ "fetcher": "github",
+ "repo": "mattfidler/nsis-mode",
+ "unstable": {
+ "version": [
+ 20190615,
+ 1827
+ ],
+ "commit": "0a2e6ece2fe682dced4d31688b38bb472a877cdf",
+ "sha256": "0i1h452iqa5g0c0783dynnli3fldinasb9xl24x1i36nlq9dxkd4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 44
+ ],
+ "commit": "f1bf701c37680553c8f51462e0829d0dd6c53187",
+ "sha256": "0c4qfbb345yna5c30czq8nhcx283z1fnpp6h16p7vjqs6y37czsl"
+ }
+ },
+ {
+ "ename": "nswbuff",
+ "commit": "c0f7e952f3fbec691df51d19224f701e6530f16e",
+ "sha256": "1fq2dp9jlhfl9rqw6ldh0xnm0hx9ama2wf87s51qgqxxdn9ngk8x",
+ "fetcher": "github",
+ "repo": "joostkremers/nswbuff",
+ "unstable": {
+ "version": [
+ 20200312,
+ 2050
+ ],
+ "commit": "a601855cc96e303e38051d0d1af3402721dbb969",
+ "sha256": "0xbh5max7wbsw3iaa5ai9l5brky3mykyzn77a4w5r1m1f4a67y97"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "a601855cc96e303e38051d0d1af3402721dbb969",
+ "sha256": "0xbh5max7wbsw3iaa5ai9l5brky3mykyzn77a4w5r1m1f4a67y97"
+ }
+ },
+ {
+ "ename": "nu-mode",
+ "commit": "230d5f8fdd965a24b8ff3cc94acf378d04815fca",
+ "sha256": "0nzv3p62k8yyyww6idlxyi94q4d07nis7ydypar8d01jfqlrybkn",
+ "fetcher": "github",
+ "repo": "pyluyten/emacs-nu",
+ "unstable": {
+ "version": [
+ 20190404,
+ 2032
+ ],
+ "deps": [
+ "ace-window",
+ "avy",
+ "lv",
+ "transpose-frame",
+ "undo-tree",
+ "which-key"
+ ],
+ "commit": "d5fb4d26d1b0bb383ea2827cc5af5dfb2a269d2b",
+ "sha256": "0nd7ypin9kl784iqffznld6kknghdjywqnjw5nwinfgkwhcrjpdd"
+ }
+ },
+ {
+ "ename": "nubox",
+ "commit": "725948568b8a067762b63475bc400f089f478a36",
+ "sha256": "0snzfsd765i363ykdhqkn65lqy97c79d20lalszrwcl2snm96n1f",
+ "fetcher": "github",
+ "repo": "martijnat/nubox",
+ "unstable": {
+ "version": [
+ 20170619,
+ 910
+ ],
+ "commit": "1ccb8035ae42727ba6bdd5c1106fbceddeeed370",
+ "sha256": "02yh99rcgxdq6jn4xs8782nl6bjccmal8j78qslvpkrzrrxjajx6"
+ }
+ },
+ {
+ "ename": "number",
+ "commit": "49d56b297ab729695249143dd65d3c67543cfcc6",
+ "sha256": "1nwcdv5ibirxx3sqadh6mnpj40ni3wna7wnjh343mx38dk2dzncf",
+ "fetcher": "github",
+ "repo": "chrisdone/number",
+ "unstable": {
+ "version": [
+ 20170901,
+ 1312
+ ],
+ "commit": "bbc278d34dbcca83e70e3be855ec98b23debfb99",
+ "sha256": "0a1r352zs58mdwkq58561qxrz3m5rwk3xqcaaqhkxc0h9jqs4a9r"
+ }
+ },
+ {
+ "ename": "number-lock",
+ "commit": "3c107adabe2e4c5b35ebb6b21db076cdea0e9c24",
+ "sha256": "13xqn4bcjm01zl0rgbwzad58x35230lm2qiipbyqkh2ma0a9pqn4",
+ "fetcher": "github",
+ "repo": "Liu233w/number-lock.el",
+ "unstable": {
+ "version": [
+ 20160830,
+ 200
+ ],
+ "commit": "74417b1238953bf485961a0dd7d20f5c36ae25ea",
+ "sha256": "0xmd4q2k0psd53cg71vsyc54iiq0wp9bs00ch68561lrnbjg043w"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "846e86e2b3b07410f69e70d3ba7afb072b5585da",
+ "sha256": "12gza7lxpwrp191gi9gm61wpvgwsrda52zva9bz3ncqfp7w0y32i"
+ }
+ },
+ {
+ "ename": "numbers",
+ "commit": "5c77353d3a2b0d360bb28e528ef2707227081c72",
+ "sha256": "02cx19fi34yvc0icajnwrmb8lr2g8y08kis08v9xxalfxz06kb3h",
+ "fetcher": "github",
+ "repo": "davep/numbers.el",
+ "unstable": {
+ "version": [
+ 20170802,
+ 1134
+ ],
+ "commit": "dd02508b788a13b7d4dbcc4923fa23134b783ab3",
+ "sha256": "0bgha85j5f9lpk1h3siiw28v5sy6z52n7d7xi3m301r9hdlccc39"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "commit": "74be68b94143f042ce461b2a69202f515acaf20c",
+ "sha256": "0b4bgc4hkndia8zg4d23l1w78iwzj1l46ifrhz5z1p97qldalb0x"
+ }
+ },
+ {
+ "ename": "nummm-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1gdq00f3x0rxxj917x9381v2x7cl9yabj7559zr5vj1clwza8jn4",
+ "fetcher": "github",
+ "repo": "agpchil/nummm-mode",
+ "unstable": {
+ "version": [
+ 20131117,
+ 1014
+ ],
+ "commit": "81951e12032274543c5f7a585b29bd93961e94e4",
+ "sha256": "1i0yymsx8kin28bkrgwkk9ngsmjh0gh5j4hb0k03bq4fy799f2xx"
+ }
+ },
+ {
+ "ename": "nv-delete-back",
+ "commit": "7542fa39060b507a6f455225367e45e89d3e2f92",
+ "sha256": "13izzym4alda05k7ra67lyjx6dx23fjqz2dqk7mrzhik9x552hsr",
+ "fetcher": "gitlab",
+ "repo": "nivaca/nv-delete-back",
+ "unstable": {
+ "version": [
+ 20170224,
+ 1249
+ ],
+ "commit": "b17cb826f14c18c2875d112574edb5e4f46f5296",
+ "sha256": "1g030806d2l238sr173ypdkkq0g8kf8qdp7a1ls5d3rw0bng4ds1"
+ }
+ },
+ {
+ "ename": "nvm",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0md1ybc2r2fxykwk21acjhdzy2kw326bdwa1d15c6f48lknzvg4w",
+ "fetcher": "github",
+ "repo": "rejeep/nvm.el",
+ "unstable": {
+ "version": [
+ 20200501,
+ 1414
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "s"
+ ],
+ "commit": "fc925b9afe738264cb15d5135c7426f999aeda47",
+ "sha256": "1mb3i7d470ggky6g9ib1jf04yfkfn9m8jd70mb18rac2ik3sy03q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "s"
+ ],
+ "commit": "e93e5216e311c665c593ac68c5456d624120ea42",
+ "sha256": "11fa9g05gsh2yjvhy1xjc6hkby5z98mb2bmbshdp89fvlsdksv3i"
+ }
+ },
+ {
+ "ename": "nyan-mode",
+ "commit": "4d8c3000df5f2ee2493a54dee6f9b65008add753",
+ "sha256": "1z2wnsbjllqa533g1ab5cgbv3d9hjix7fsd7z9c45nqh5cmadmyv",
+ "fetcher": "github",
+ "repo": "TeMPOraL/nyan-mode",
+ "unstable": {
+ "version": [
+ 20200526,
+ 1054
+ ],
+ "commit": "06e67ab2c490756d3eeed4a68aba7c33e508a5d5",
+ "sha256": "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 3
+ ],
+ "commit": "06e67ab2c490756d3eeed4a68aba7c33e508a5d5",
+ "sha256": "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx"
+ }
+ },
+ {
+ "ename": "nyx-theme",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "11629h7jfnq2sahwiiqx01qpv3xb0iqvcqm5k9w1zhg01jhjfmw2",
+ "fetcher": "github",
+ "repo": "guidoschmidt/emacs-nyx-theme",
+ "unstable": {
+ "version": [
+ 20170910,
+ 1307
+ ],
+ "commit": "afe2b8c3b5421b4c292d182dcf77079b278e93d8",
+ "sha256": "1qamw4x3yrygy8qkicy6smxksnsfkkp76hlnivswh7dm3fr23v6m"
+ }
+ },
+ {
+ "ename": "nz-holidays",
+ "commit": "4dfbe628247fc73d9a0963b7e9b92b07854817c9",
+ "sha256": "0h6dnwpinm3bxir1l69ggf483gjfglpi46z3ffiac3yl3h00j5m6",
+ "fetcher": "github",
+ "repo": "techquila/nz-holidays",
+ "unstable": {
+ "version": [
+ 20190415,
+ 703
+ ],
+ "commit": "afc875cf40789fa45a4a811685b0a7c4f239392f",
+ "sha256": "1bk00pv7ylbrmf42papp6z2bhnp5fbnd4wy3gdzd18j7f2g0196v"
+ }
+ },
+ {
+ "ename": "o-blog",
+ "commit": "d5f24e70260f46445b119817bc1326f29b367c4b",
+ "sha256": "08grkyvg27wd5232q3y8p0v7higfq7bmsdzmvhja96v6qy2xsbja",
+ "fetcher": "github",
+ "repo": "renard/o-blog",
+ "unstable": {
+ "version": [
+ 20151202,
+ 2339
+ ],
+ "commit": "e466c59478feddc8126c43c1b98550474af484c0",
+ "sha256": "0xs6787a4v7djgd2zz2v1pk14x27mg2ganz30j9f0gdiai7da6ch"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "5db9594c6e3439c000b183551d7975c2e29131f4",
+ "sha256": "0r12023yy8j96bp8z2ml6ffyr2c9rcd5abkh6vqnkwsdxkzx6wrs"
+ }
+ },
+ {
+ "ename": "oauth",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0vgxvscb9cr07g3lzpi269kamgzhpac6dir1rlr4qd2wdv0nifl9",
+ "fetcher": "github",
+ "repo": "psanford/emacs-oauth",
+ "unstable": {
+ "version": [
+ 20130128,
+ 151
+ ],
+ "commit": "ee4744ad76a1560281b0c4944575a3bd598c6458",
+ "sha256": "058dyk1c3iw0ip8n8rfpskvqiriqilpclkzc18x73msp5svrh3lj"
+ }
+ },
+ {
+ "ename": "ob-ammonite",
+ "commit": "508358506a6994baf120be2acba86762f5727c6c",
+ "sha256": "0wr7p3sfn9m8vz87lzas943zcm8vkzgfki9pbs3rh3fxvdc197lb",
+ "fetcher": "github",
+ "repo": "zwild/ob-ammonite",
+ "unstable": {
+ "version": [
+ 20190813,
+ 59
+ ],
+ "deps": [
+ "ammonite-term-repl",
+ "s",
+ "xterm-color"
+ ],
+ "commit": "39937dff395e70aff76a4224fa49cf2ec6c57cca",
+ "sha256": "0aibvrhwj2swv9ixl6hx4b2yicbpi095mvs0fib7i1nhlg0zciqd"
+ }
+ },
+ {
+ "ename": "ob-applescript",
+ "commit": "23b075774be913539c3f057dcb7f24fbc05c37a4",
+ "sha256": "1gk8cgscj9wbl5k8ahh1a61p271xpk5vk2w64a8y3njnwrwxm9jc",
+ "fetcher": "github",
+ "repo": "stig/ob-applescript.el",
+ "unstable": {
+ "version": [
+ 20190709,
+ 1607
+ ],
+ "commit": "2b07b77b75bd02f2102f62e6d52ffdd0f921439a",
+ "sha256": "0ya3ab4qcpm95bw50srf0p0673lzyvwyp0ccqy3akmqz9apsd4rs"
+ }
+ },
+ {
+ "ename": "ob-async",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0k7kv71nnibp53lav774c61w9pzhq8qvch9rvpyyrwbyd67ninl8",
+ "fetcher": "github",
+ "repo": "astahlman/ob-async",
+ "unstable": {
+ "version": [
+ 20190916,
+ 1537
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "org"
+ ],
+ "commit": "80a30b96a007d419ece12c976a81804ede340311",
+ "sha256": "0jhgzmqds73yc49hc4yarp1a25pci9qmsvnpcxd7kv5saha40hnn"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "org"
+ ],
+ "commit": "5984d6172c179528adf9aeba414598604dfb5c9a",
+ "sha256": "10x4hxrjm4pr6vg42a961h9ilqzyd0l0fv7fsbq9clxi439f1nd6"
+ }
+ },
+ {
+ "ename": "ob-axiom",
+ "commit": "8b4c6b03c5ff78ce327dcf66b175e266bbc53dbf",
+ "sha256": "17qh4hsr3aw4d0p81px3qcbax6dv2zjhyn5n9pxqwcp2skm5vff5",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/pdo/axiom-environment",
+ "unstable": {
+ "version": [
+ 20190623,
+ 2052
+ ],
+ "deps": [
+ "axiom-environment"
+ ],
+ "commit": "25932da0dc40c6877463cbf019b14ab05a6b0164",
+ "sha256": "1xbps0k4x982gh1a0pscpx4kayjjyykvm5pyj516wwkya7bac4a6"
+ }
+ },
+ {
+ "ename": "ob-blockdiag",
+ "commit": "261b77a3fd07644d1c250b16857de70cc1bbf478",
+ "sha256": "1lmawbgrlp6qd7p664jcl98y1xd2yqw9np6j52bh9i6s3cz6628g",
+ "fetcher": "github",
+ "repo": "corpix/ob-blockdiag.el",
+ "unstable": {
+ "version": [
+ 20190720,
+ 1858
+ ],
+ "commit": "272fafcf3bc37f9de41b11beb6a33e0dbf0a1909",
+ "sha256": "0gi7vnh5fchbjb7hp7yi08z2vqkmhjrg64ssir358qxqambxvrxb"
+ },
+ "stable": {
+ "version": [
+ 20170728,
+ 113
+ ],
+ "commit": "634fcf64a4ae735afe7001d865b03f5d71e23046",
+ "sha256": "0xr3bv4wxz13b1grfyl2qnrszzab3n9735za837nf4lxh527ksaj"
+ }
+ },
+ {
+ "ename": "ob-browser",
+ "commit": "c51529213c15d42a7a7b76771f07dd73c036a51f",
+ "sha256": "1yqbzmmazamgf8fi8ipq14ffm8h1pp5d2lkflbxjsagdq61hirxm",
+ "fetcher": "github",
+ "repo": "krisajenkins/ob-browser",
+ "unstable": {
+ "version": [
+ 20170720,
+ 1918
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "a347d9df1c87b7eb660be8723982c7ad2563631a",
+ "sha256": "0q2amf2kh2gkn65132q9nvn87pws5mmnr3wm1ajk23c01kcjf29c"
+ }
+ },
+ {
+ "ename": "ob-cfengine3",
+ "commit": "d068233c438e76cbcc6e9a97cbec9b2550a18ed6",
+ "sha256": "1pp3mykc5k629qlqixpl2900m1j604xpp6agrngwagsvf7qkhnvl",
+ "fetcher": "github",
+ "repo": "nickanderson/ob-cfengine3",
+ "unstable": {
+ "version": [
+ 20191011,
+ 1721
+ ],
+ "commit": "195ba4694a0ec18d3fb89342e8e0988b382a5b1a",
+ "sha256": "0a18fv141s35vh1mza2d6q5japrfjg5g6l7gp6qq4k4im3gmaf86"
+ }
+ },
+ {
+ "ename": "ob-clojurescript",
+ "commit": "0c9ccc0d2d034944cb9688d5e184fa5df95f6b31",
+ "sha256": "0h4qjz65k8m1ms7adrm5ypmjcjxx1nws1jmda88c4jjwjyz40jjf",
+ "fetcher": "gitlab",
+ "repo": "statonjr/ob-clojurescript",
+ "unstable": {
+ "version": [
+ 20180406,
+ 1828
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "17ee1558aa94c7b0246fd03f684884122806cfe7",
+ "sha256": "1an4m7mpr345xw4fanyf2vznxm1dxbv35987caq1wq9039mzfaxr"
+ }
+ },
+ {
+ "ename": "ob-coffee",
+ "commit": "e23d7f1d021b07053acb57e2668ece0eaed0f817",
+ "sha256": "16k8r9rqz4mayxl85pjdfsrz43k2hwcf8k7aff8wnic0ldzp6ivf",
+ "fetcher": "github",
+ "repo": "zweifisch/ob-coffee",
+ "unstable": {
+ "version": [
+ 20170725,
+ 1424
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "7f0b330273e8af7777de87a75fe52a89798e4548",
+ "sha256": "1w3fw3ka46d7vcsdq03l0wlviwsk52asfjiy9zfk4qabhpqwj9mz"
+ }
+ },
+ {
+ "ename": "ob-coffeescript",
+ "commit": "ba1a808c77653bac1948d6c44bd1db09301ffeff",
+ "sha256": "05q1wnabw52kd3fpcpinpxs9z6xmi4n1p19jbcz0bgjpnw05s27p",
+ "fetcher": "github",
+ "repo": "brantou/ob-coffeescript",
+ "unstable": {
+ "version": [
+ 20180126,
+ 719
+ ],
+ "commit": "5a5bb04aea9c2a6eab5b05f90f5c7cb6de7b4261",
+ "sha256": "0yy20w1127xmz0mx2swbr294vg0jh8g0ibj5bpdf55xwdnv6im2l"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "b70f3d822c707cb02333fcb739ba4874614cad2a",
+ "sha256": "0284v3km41427q7dr0wmvf3zhbsgzj0j2r9zny0g3n85qvyk0rgd"
+ }
+ },
+ {
+ "ename": "ob-crystal",
+ "commit": "b9a7d43199a83ab6f672aaa69ef4e158c868f180",
+ "sha256": "11mk2spwlddbrvcimhzw43b6d3gxzmi8br58bily1x4qkvl6zy4n",
+ "fetcher": "github",
+ "repo": "brantou/ob-crystal",
+ "unstable": {
+ "version": [
+ 20180126,
+ 718
+ ],
+ "commit": "d84c1adee4b269cdba06a97caedb8071561a09af",
+ "sha256": "1fny4fj4407lcp4k3379gbixk3wd171snw49p1kny2mvxrliz22h"
+ }
+ },
+ {
+ "ename": "ob-cypher",
+ "commit": "dc05c833f64e7974cf5a2ad60a053a04267251cb",
+ "sha256": "1ygmx0rjvxjl8hifkkwrkk9gpsmdsk6ndb6pg7y78p8hfp5jpyq3",
+ "fetcher": "github",
+ "repo": "zweifisch/ob-cypher",
+ "unstable": {
+ "version": [
+ 20200521,
+ 936
+ ],
+ "deps": [
+ "cypher-mode",
+ "dash",
+ "dash-functional",
+ "s"
+ ],
+ "commit": "da9f97339474a48d759fc128cee610c0bc9ae6c0",
+ "sha256": "0r4dsbrdxhyyh708pm8fqn423v21xk7a940nbajw9y07n28y5hgk"
+ }
+ },
+ {
+ "ename": "ob-dao",
+ "commit": "6284c73f1d0797fa2ed4d9a11d3198076cc5fff9",
+ "sha256": "0nj1qyac0lj5ljrqfqi9g2z0d7z5yihajkvjhlx5kg9zs3lgs5rs",
+ "fetcher": "github",
+ "repo": "xuchunyang/ob-dao",
+ "unstable": {
+ "version": [
+ 20170816,
+ 1558
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "fa92f62a63c684d689f57e790e5dd614c5bba270",
+ "sha256": "18i2qwxcn5p1hj32svl54n0dv2j551n3nmgb4h8gbvs39rl49qkq"
+ }
+ },
+ {
+ "ename": "ob-dart",
+ "commit": "bb3219b9623587365f56e9eeb4bd97f3dc449a11",
+ "sha256": "1lqi4pazkjcxvmm2bdpd9vcakmdclkamb69xwxdl44p68wsq2gn8",
+ "fetcher": "github",
+ "repo": "mzimmerm/ob-dart",
+ "unstable": {
+ "version": [
+ 20170106,
+ 1624
+ ],
+ "commit": "04d63b922a5469506560ca0c00678e57131e0269",
+ "sha256": "1r0r0dqsr44kcbj2w96rbx8alvkkfzc98ac35zb4ncy1bf71jhfb"
+ }
+ },
+ {
+ "ename": "ob-diagrams",
+ "commit": "fbb31def39fef108ecf7be105a901abfa6845f76",
+ "sha256": "1r1p9l61az1jb5m4k2dwnkp9j8xlcb588gq4mcg796vnbdscfcy2",
+ "fetcher": "github",
+ "repo": "bergey/org-babel-diagrams",
+ "unstable": {
+ "version": [
+ 20160407,
+ 1237
+ ],
+ "commit": "ed6649616325ca5b2d2109f74aded8bcb8aa5186",
+ "sha256": "0kx95lvkvg6h6lhs9knlp8rwi05y8y0i8w8vs7mwm378syls0qk0"
+ }
+ },
+ {
+ "ename": "ob-elixir",
+ "commit": "287e4758f6f1df0152d68577abd91478c4a3f4ab",
+ "sha256": "1l5b9hww2vmqnjlsd6lbjpz9walck82ngang1amfnk4xn6d0gdhi",
+ "fetcher": "github",
+ "repo": "zweifisch/ob-elixir",
+ "unstable": {
+ "version": [
+ 20170725,
+ 1419
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "8990a8178b2f7bd93504a9ab136622aab6e82e32",
+ "sha256": "19awvfbjsnd5la14ad8cfd20pdwwlf3d2wxmz7kz6x6rf48x38za"
+ }
+ },
+ {
+ "ename": "ob-elm",
+ "commit": "9109c178f49c300b8a5247b94ecdab265d32f4ce",
+ "sha256": "166yxninqiwv3vjn59ir23isnqhjjzvw8dcswnbwgcb4f4ixs12q",
+ "fetcher": "github",
+ "repo": "BonfaceKilz/ob-elm",
+ "unstable": {
+ "version": [
+ 20200528,
+ 1857
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "d3a9fbc2f56416894c9aed65ea9a20cc1d98f15d",
+ "sha256": "1wdlr0cbsb2drdmcn2bnivjkj1f2v52l6yizwsnjgi4xq3w6k56h"
+ }
+ },
+ {
+ "ename": "ob-elvish",
+ "commit": "90e979025f56061bc960f630945b09320a3dd28e",
+ "sha256": "1rpn3dabwgray1w55jib4ixr3l1afz9j7nyn0ha2r602hs02x1ya",
+ "fetcher": "github",
+ "repo": "zzamboni/ob-elvish",
+ "unstable": {
+ "version": [
+ 20180427,
+ 1900
+ ],
+ "commit": "369181ceae1190bf971c71aebf9fc6133bd98c39",
+ "sha256": "170bw9qryhzjzmyi84qc1jkzy1y7i8sjz6vmvyfc264ia4j51m9w"
+ }
+ },
+ {
+ "ename": "ob-fsharp",
+ "commit": "89bc8c5fe6db0573109e82b3d1350d33d6d8aff5",
+ "sha256": "1b9052lvr03vyizkjz3qsa8cw3pjml4kb3yy13jwh09jz5q87qbf",
+ "fetcher": "github",
+ "repo": "juergenhoetzel/ob-fsharp",
+ "unstable": {
+ "version": [
+ 20170618,
+ 1429
+ ],
+ "deps": [
+ "fsharp-mode"
+ ],
+ "commit": "0b2fdd9bb4f38af8b5cf4914627af52f5b43d9f7",
+ "sha256": "1z1m2dqnvyyv9ff289p8x1hajnz9n0mmfkrkyl1zvipaqd9mgljw"
+ }
+ },
+ {
+ "ename": "ob-go",
+ "commit": "3afb687d6d3d1e52336ca9a7343278a9f37c3d54",
+ "sha256": "09d8jrzijf8gr08615rdmf366zgip43dxvyihy0yzhk7j0p3iahj",
+ "fetcher": "github",
+ "repo": "pope/ob-go",
+ "unstable": {
+ "version": [
+ 20190201,
+ 2040
+ ],
+ "commit": "2067ed55f4c1d33a43cb3f6948609d240a8915f5",
+ "sha256": "069w9dymiv97cvlpzabf193nyw174r38lz5j11x23x956ladvpbw"
+ }
+ },
+ {
+ "ename": "ob-graphql",
+ "commit": "3d4572f599ac5794d8a5c310f1d1e138a11a45a8",
+ "sha256": "1rgwfyq5f602b60hza9xnszxdjqms90gkvrw9hjmivyp2swwy5vy",
+ "fetcher": "github",
+ "repo": "jdormit/ob-graphql",
+ "unstable": {
+ "version": [
+ 20200108,
+ 2228
+ ],
+ "deps": [
+ "graphql-mode",
+ "request"
+ ],
+ "commit": "ced37c6761d69e1ff206ff0ebd633f0e4fd2ac54",
+ "sha256": "0575w89sr97dv4ccygbhj4k7rpk2934q9f0p3q0hxf8a5wikf493"
+ }
+ },
+ {
+ "ename": "ob-html-chrome",
+ "commit": "ac4380b5ea63c5296e517fccafa4d6a69dc73d0d",
+ "sha256": "1z3bi5i9n6dqvarl32syb6y36px3pf0pppqxn02rrx1rwvg81iql",
+ "fetcher": "github",
+ "repo": "nikclayton/ob-html-chrome",
+ "unstable": {
+ "version": [
+ 20181219,
+ 1042
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "7af6e4a24ed0aaf67751bdf752c7ca0ba02bb8d4",
+ "sha256": "0h33y11921ajw60b4hqpg0nvdvx3w3cia90wf53c5zg2bckcrfjh"
+ }
+ },
+ {
+ "ename": "ob-http",
+ "commit": "950b02f76a04f453992b8720032e8c4cec9a039a",
+ "sha256": "0b7ghz9pqbyn3b52cpmnwa2wnd4svj23p6gc48ybwzwiid42wiss",
+ "fetcher": "github",
+ "repo": "zweifisch/ob-http",
+ "unstable": {
+ "version": [
+ 20180707,
+ 1448
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "b1428ea2a63bcb510e7382a1bf5fe82b19c104a7",
+ "sha256": "11fx9c94xxhl09nj9z5b5v6sm0xwkqawgjnnm7bg56vvj495n6h7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "20393dd8130d21a3f06d8514da14c5ffdd88ae44",
+ "sha256": "0xa7rgsb0d1d96h5bb0n0sy1hgmd2fg6r6g2aqp1c29ld4hpi7r7"
+ }
+ },
+ {
+ "ename": "ob-hy",
+ "commit": "12a7a7dba169010a3a047f961010236a203c16c2",
+ "sha256": "18a8fpda0f28wxmjprhd9dmz7bpk1j3iayl20lqffrcal6m4f1h7",
+ "fetcher": "github",
+ "repo": "brantou/ob-hy",
+ "unstable": {
+ "version": [
+ 20180702,
+ 540
+ ],
+ "commit": "a42ecaf440adc03e279afe43ee5ef6093ddd542a",
+ "sha256": "0kv92r6j0dcqcg1s0g4iq1xvanscg6crwniysbrq6ifvmc4lvfdj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "a42ecaf440adc03e279afe43ee5ef6093ddd542a",
+ "sha256": "0kv92r6j0dcqcg1s0g4iq1xvanscg6crwniysbrq6ifvmc4lvfdj"
+ }
+ },
+ {
+ "ename": "ob-ipython",
+ "commit": "557c36e86844c211f2d2ee097ce51ee9db92ea8b",
+ "sha256": "06llf365k8m81ljmlajqvxlh84qg6h0flp3m6gb0zx71xilvw186",
+ "fetcher": "github",
+ "repo": "gregsexton/ob-ipython",
+ "unstable": {
+ "version": [
+ 20180224,
+ 953
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "s"
+ ],
+ "commit": "7147455230841744fb5b95dcbe03320313a77124",
+ "sha256": "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"
+ }
+ },
+ {
+ "ename": "ob-kotlin",
+ "commit": "7aa74d349eb55aafddfc4327b6160ae2da80d689",
+ "sha256": "19g4s9dnipg9aa360mp0affmnslm6h7byg595rnaz6rz25a3qdpx",
+ "fetcher": "github",
+ "repo": "zweifisch/ob-kotlin",
+ "unstable": {
+ "version": [
+ 20180823,
+ 1321
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "96e420cbd2e9ea8a77043e5dcaebdfc6da17492a",
+ "sha256": "0ganip7077rsi681kdsrmvpjhinhgsrla34mll0daiqid7flnk4g"
+ }
+ },
+ {
+ "ename": "ob-latex-as-png",
+ "commit": "5a9c900e82ff9e9726ce9cad98d8067752a53fdf",
+ "sha256": "0r355k7h5nq91dir1rvmq0hbrx6pr9kan6qblls6fzi1r0f4d1ph",
+ "fetcher": "github",
+ "repo": "alhassy/ob-latex-as-png",
+ "unstable": {
+ "version": [
+ 20200629,
+ 1013
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "d21d436814e9605cf2a942b709f957695298dc70",
+ "sha256": "0zmckisi9q9kv25jh0jn0ab9xbh2b7d4mzyyi1sdgnkg0ayzvvhb"
+ }
+ },
+ {
+ "ename": "ob-lfe",
+ "commit": "d595d3b93e6b25ece1cdffc9d1502e8a868eb538",
+ "sha256": "11cpaxk9wb27b9zhyns75dqpds4gh3cbjcvia4p2bnvmbm8lz4y8",
+ "fetcher": "github",
+ "repo": "zweifisch/ob-lfe",
+ "unstable": {
+ "version": [
+ 20170725,
+ 1420
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "f7780f58e650b4d29dfd834c662b1d354b620a8e",
+ "sha256": "1ricvb2wxsmsd4jr0301pk30mswx41msy07fjgwhsq8dimxzmngp"
+ }
+ },
+ {
+ "ename": "ob-mermaid",
+ "commit": "4df483806a4caaeb99fdac42f83bfe648d2e4165",
+ "sha256": "0fp57m80ksnb6zs1gndwsqhrphkv9lfysq0h7h8g3parizh2idzs",
+ "fetcher": "github",
+ "repo": "arnm/ob-mermaid",
+ "unstable": {
+ "version": [
+ 20200320,
+ 1504
+ ],
+ "commit": "cca09b64eff689d8bb15a77de9d4c7fe9845a1f9",
+ "sha256": "1wwmf14df2rnxlfs8bwb9p4q1a1plschbq2g9vqflphj6kv213m4"
+ }
+ },
+ {
+ "ename": "ob-ml-marklogic",
+ "commit": "edce412552d4798450493e0a3dbe768f38f77cc7",
+ "sha256": "1y5cgba7gzlmhdrs0k7clgrxixdl4najj5271x1m023jch7bz7xl",
+ "fetcher": "github",
+ "repo": "ndw/ob-ml-marklogic",
+ "unstable": {
+ "version": [
+ 20190312,
+ 1314
+ ],
+ "commit": "d5660ad14f29e17cd26ae92eeb585b24030e9570",
+ "sha256": "1aqllsn965km3796q92w3a3z92hkpm5i0l6p4fm3va9xq7j79cyc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "d5660ad14f29e17cd26ae92eeb585b24030e9570",
+ "sha256": "1aqllsn965km3796q92w3a3z92hkpm5i0l6p4fm3va9xq7j79cyc"
+ }
+ },
+ {
+ "ename": "ob-mongo",
+ "commit": "e020ea3ef89a3787d498c2f698c82c5073c9ee32",
+ "sha256": "1cgmqsl5dzi8xy3sh5xsfkczl555fpd4q6kgsh9xkn74sz227907",
+ "fetcher": "github",
+ "repo": "krisajenkins/ob-mongo",
+ "unstable": {
+ "version": [
+ 20170720,
+ 1919
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "371bf19c7c10eab2f86424f8db8ab685997eb5aa",
+ "sha256": "02k4gvh1nqhn0h36h77vvms7xwwak8rdddibbidsrwwspbr4qr1s"
+ }
+ },
+ {
+ "ename": "ob-napkin",
+ "commit": "675b76ed3aa7b3bea74ff7103f004589b6cc6b74",
+ "sha256": "1v6s28ahc8xzd4hdl9v4cnigg21978rj6z7xnryv35nzm6kdxn15",
+ "fetcher": "github",
+ "repo": "pinetr2e/ob-napkin",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1245
+ ],
+ "commit": "7af5e8af08da8455c489909afbd9528a61f570e7",
+ "sha256": "1rmfxbnl2y6yx1869sm5203k7hch481wh5dq6lik5bj00cf3knc6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 1
+ ],
+ "commit": "7af5e8af08da8455c489909afbd9528a61f570e7",
+ "sha256": "1rmfxbnl2y6yx1869sm5203k7hch481wh5dq6lik5bj00cf3knc6"
+ }
+ },
+ {
+ "ename": "ob-nim",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "0j8mk12d29jyhhj4dlc0jykqmqy8g0yrbv7f2sqig83wj531bwza",
+ "fetcher": "github",
+ "repo": "Lompik/ob-nim",
+ "unstable": {
+ "version": [
+ 20170809,
+ 1830
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bf1642cb93f0a898804dc13fd9408d2964403bd2",
+ "sha256": "1xgi863wn1pvlsajmldd706k1dk7d7pa6b9nbgsh34kzchvhd75s"
+ }
+ },
+ {
+ "ename": "ob-prolog",
+ "commit": "fb87868cd74325f0a4a38c5542c264501000951d",
+ "sha256": "0ki8yd20yk5xwn0zpk06zjxzgrsf8paydif9n98svb9s2l9wrh1s",
+ "fetcher": "github",
+ "repo": "ljos/ob-prolog",
+ "unstable": {
+ "version": [
+ 20190410,
+ 2130
+ ],
+ "commit": "331899cfe345c934026c70b78352d320f7d8e239",
+ "sha256": "1k34cl2whc32ysd7anvz8ii66ljfrmkvx3cgb6i42jcx74kavlfr"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "commit": "efa86bb70fd1907806f3e43705aff54d35582442",
+ "sha256": "0g25nn2h7djgc9rp59spx9096jdypsizd0vfzwj96cpq90lkysjx"
+ }
+ },
+ {
+ "ename": "ob-restclient",
+ "commit": "28c1d3af3f8b2f598b80b03b64de5d15cbb3f13d",
+ "sha256": "0nv2wsqmpschym6ch8fr4a79hlnpz31jc8y2flsygaqj0annjkfk",
+ "fetcher": "github",
+ "repo": "alf/ob-restclient.el",
+ "unstable": {
+ "version": [
+ 20200316,
+ 759
+ ],
+ "deps": [
+ "restclient"
+ ],
+ "commit": "f7449b2068498fe9d8ab9589e0a638148861533f",
+ "sha256": "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"
+ }
+ },
+ {
+ "ename": "ob-rust",
+ "commit": "843affc2fd481647c5377bf9a96b636b39718034",
+ "sha256": "1syzwh399wcwqhg1f3fvl12978dr574wji7cknqvll3hyh0zwd65",
+ "fetcher": "github",
+ "repo": "micanzhang/ob-rust",
+ "unstable": {
+ "version": [
+ 20180911,
+ 1535
+ ],
+ "commit": "6a82587598cd097e9642be916243c31f1231b24a",
+ "sha256": "041mvlwnkxa93fjbln0yc6pgykh6k7fwg1nigr6njgaxlfnssmlm"
+ }
+ },
+ {
+ "ename": "ob-sagemath",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1xb8s4xm9wzfpdlhj5rym2lh4naz3h13v4sjqh71zxw6hy82gba3",
+ "fetcher": "github",
+ "repo": "sagemath/ob-sagemath",
+ "unstable": {
+ "version": [
+ 20191106,
+ 828
+ ],
+ "deps": [
+ "s",
+ "sage-shell-mode"
+ ],
+ "commit": "79645bce0c25a650bae61e550434bed836995dce",
+ "sha256": "134d3pz38g2ki4war1jxp5440yq5smfkdjnknz5r29p49sch0zvx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "s",
+ "sage-shell-mode"
+ ],
+ "commit": "450d510a5eb1fd644d0037e9f02271ca33639fb0",
+ "sha256": "00i7jszlfh67xzvqnp137aaia68rkk4ri5v0fs32ym10pcj8l4dp"
+ }
+ },
+ {
+ "ename": "ob-sml",
+ "commit": "d1b0fbe1198fa624771c2f61249db502de57942a",
+ "sha256": "04qvzhwjr8ipvq3znnhn0wbl4pbb1rwxi90iidavzk3phbkpaskn",
+ "fetcher": "github",
+ "repo": "swannodette/ob-sml",
+ "unstable": {
+ "version": [
+ 20130829,
+ 1843
+ ],
+ "deps": [
+ "sml-mode"
+ ],
+ "commit": "958165c92b6cff6cada5c85c8ae5887806b8451b",
+ "sha256": "0gymna48igcixrapjmg842pnlsshhw8zplxwyyn0x2yrma9fjyyg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "sml-mode"
+ ],
+ "commit": "5dc966acbe65e9e158bfa90018035bf52d4dafd4",
+ "sha256": "1xx6hyq3gk4bavcx6i9bhipbn4mn5rv2ga9lryq09qgq2l9znclk"
+ }
+ },
+ {
+ "ename": "ob-sql-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "143agagkmwqwdqc0mbdsqp6v02y12q437v4x6dlh81yihif56rdk",
+ "fetcher": "github",
+ "repo": "nikclayton/ob-sql-mode",
+ "unstable": {
+ "version": [
+ 20190421,
+ 1539
+ ],
+ "commit": "b31a016585324ad91f1742ff6205bcb76f3ece6e",
+ "sha256": "1k2cfxaq38wv8s2x1c52v0bw55c12n399614l0dx1aqy2wh1afgi"
+ }
+ },
+ {
+ "ename": "ob-svgbob",
+ "commit": "77b7095d93730bfa193245df358fa50bef4faea6",
+ "sha256": "0746f70yswgqcx8awc7lfkh6r5982frlwirdij2pjb9ivw3a82h9",
+ "fetcher": "github",
+ "repo": "mgxm/ob-svgbob",
+ "unstable": {
+ "version": [
+ 20190911,
+ 300
+ ],
+ "commit": "5747f96fb4fdb8711546b3313df9412177eb3c1a",
+ "sha256": "1h60mzxp1wzd1kjkgligi04nb06mpkhij8imkva188inr0hzqlvm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "9a930b1ed93e5ce1818029b2ec9e7662c098dbf4",
+ "sha256": "18c35xpllwv1zflinkh3ki00vclp4nk52sanfl2vppq6a6hyda8a"
+ }
+ },
+ {
+ "ename": "ob-swift",
+ "commit": "b401383966398d3223032c59baa920ce594e5fef",
+ "sha256": "19mcjfmijbajldm3jz8ij1x2p7d164mbq2ln6yb6iihxmdqnn2q4",
+ "fetcher": "github",
+ "repo": "zweifisch/ob-swift",
+ "unstable": {
+ "version": [
+ 20170921,
+ 1325
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "ed478ddbbe41ce5373efde06b4dd0c3663c9055f",
+ "sha256": "1vwg10d33mwb32bpdbpghfihy3ryiqbc4yydpb5hfv3v5k83vs0x"
+ }
+ },
+ {
+ "ename": "ob-tmux",
+ "commit": "a3f47fbfe745972e690e8028f893bb38ba30978d",
+ "sha256": "12c0m2xxd75lbc98h7cwprmdn823mh2ii59pxr6fgnq7araqkz20",
+ "fetcher": "github",
+ "repo": "ahendriksen/ob-tmux",
+ "unstable": {
+ "version": [
+ 20190708,
+ 1202
+ ],
+ "deps": [
+ "s",
+ "seq"
+ ],
+ "commit": "3687ed7b874bdfe14617f5d14492887cb0836a85",
+ "sha256": "057gnjgn6g7qpf8hpidp302s2bv5lkijx6b35knvg266czda6fra"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "s",
+ "seq"
+ ],
+ "commit": "8886f31291e979b41215f3eb97670732efffea34",
+ "sha256": "0j77n1lawkx94hyv89xsvmrbqhd8x19ycrvxrwhc0mzlxh7rxjcy"
+ }
+ },
+ {
+ "ename": "ob-translate",
+ "commit": "4d89e4006afc51bd44e23f87a1d1ef1140489ab3",
+ "sha256": "1hi0rxbyxvk9sbk2fy3kqw7l4lgri921vya1mn4i1q2i1979r2gz",
+ "fetcher": "github",
+ "repo": "krisajenkins/ob-translate",
+ "unstable": {
+ "version": [
+ 20170720,
+ 1919
+ ],
+ "deps": [
+ "google-translate",
+ "org"
+ ],
+ "commit": "9d9054a51bafd5a29a8135964069b4fa3a80b169",
+ "sha256": "143dq3wp3h1zzk8ihj8yjw9ydqnf48q7y8yxxa0ly7f2v1li84bc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "google-translate",
+ "org"
+ ],
+ "commit": "6b39cc1a94a1071107a4391684b1bffb5b9826f3",
+ "sha256": "10hm20dzhkxk61ass3bd5gdn1bs2l60y3zjnpkxinzn7m6aaniia"
+ }
+ },
+ {
+ "ename": "ob-typescript",
+ "commit": "11733cd33add89b541dcc1f90a732833861b10d9",
+ "sha256": "1wpy928ndvc076jzi14f6k5fsw8had0pz7f1yjdqql4icszhqa0p",
+ "fetcher": "github",
+ "repo": "lurdan/ob-typescript",
+ "unstable": {
+ "version": [
+ 20190910,
+ 946
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "0b2766b9d136cd6d81f4c15f1ad4b28542f484b9",
+ "sha256": "0crz6k41bva53x3qhvvzzdlml4v18f43fja8nkrlgwpn103d0x9h"
+ }
+ },
+ {
+ "ename": "ob-uart",
+ "commit": "5334f1a48b8ea6b7a660db27910769093c76113d",
+ "sha256": "1dkbyk8da0zw784dgwi8njnz304s54341dyfzvlb0lhcn41dmkz7",
+ "fetcher": "github",
+ "repo": "andrmuel/ob-uart",
+ "unstable": {
+ "version": [
+ 20170521,
+ 858
+ ],
+ "commit": "90daeac90a9e75c20cdcf71234c67b812110c50e",
+ "sha256": "1syxxq411izmyfrhlywasax7n5c3yjy487mvfdjzjg8csmmk0m9v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "90daeac90a9e75c20cdcf71234c67b812110c50e",
+ "sha256": "1syxxq411izmyfrhlywasax7n5c3yjy487mvfdjzjg8csmmk0m9v"
+ }
+ },
+ {
+ "ename": "oberon",
+ "commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
+ "sha256": "1wna7ld670r6ljdg5yx0ga0grbq1ma8q92gkari0d5czr7s9lggv",
+ "fetcher": "github",
+ "repo": "emacsorphanage/oberon",
+ "unstable": {
+ "version": [
+ 20120715,
+ 909
+ ],
+ "commit": "fb57d18ce13835a8a69b6bafecdd9193ca9a59a3",
+ "sha256": "16462cgq91jg7i97h440zss5vw2qkxgdy7gm148ns4djr2fchnf6"
+ }
+ },
+ {
+ "ename": "obfusurl",
+ "commit": "201fe11682cb06b26775a52c81b6a1258b74b4d0",
+ "sha256": "0xx2zsjbkd17iy7xzqc66f9xgc97f9js3nz656yhmmxakjk2krra",
+ "fetcher": "github",
+ "repo": "davep/obfusurl.el",
+ "unstable": {
+ "version": [
+ 20170809,
+ 1524
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7a5a41905000ce2ec1fd72509a5567e5fd9f47e5",
+ "sha256": "0jbrxlpx0cxg8jzqrssk3y3ab7v62ymi6ys24542a8vpk522vqxk"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7a5a41905000ce2ec1fd72509a5567e5fd9f47e5",
+ "sha256": "0jbrxlpx0cxg8jzqrssk3y3ab7v62ymi6ys24542a8vpk522vqxk"
+ }
+ },
+ {
+ "ename": "objc-font-lock",
+ "commit": "f6f93d328e137d2ca069328932b60c3bf60b0a4e",
+ "sha256": "0njslpgdcph3p3gamrbd6pc04szks07yv4ij3p1l7p5dc2p06rs6",
+ "fetcher": "github",
+ "repo": "Lindydancer/objc-font-lock",
+ "unstable": {
+ "version": [
+ 20141021,
+ 1822
+ ],
+ "commit": "34b457d577f97ca94b8792d025f9a909c7610612",
+ "sha256": "138c1nm579vr37dqprqsakfkhs2awm3klzyyd6bv9rhkrysrpbqk"
+ }
+ },
+ {
+ "ename": "objed",
+ "commit": "4abc6d927a2bf238d23256adcc9f09a751c90374",
+ "sha256": "0iqvwa664fzklajqgnss7igjh7jr9v9i8dp9acm42g8ingp9zf7b",
+ "fetcher": "github",
+ "repo": "clemera/objed",
+ "unstable": {
+ "version": [
+ 20200815,
+ 1504
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "dea5a64a4da32e8947fe5b45de569e293aaa8a96",
+ "sha256": "1jmr14bfs489g0czpmn987gpmmdqx72blkzcnd8sn1sfyk5n18ng"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4798b5b9fd531562ac17d6148e86cd8cdc1bc985",
+ "sha256": "16ans9pmzfjqdz0gi92yaah0vv6g4vmjbq3g1jqhcykin6ba8lpg"
+ }
+ },
+ {
+ "ename": "obsidian-theme",
+ "commit": "e90227252eb69d3eac81f5a6bd5e3a582d33f335",
+ "sha256": "17ckshimdma6fqiis4kxczxkbrsfpm2a0b41m5f3qz3qlhcw2xgr",
+ "fetcher": "github",
+ "repo": "mswift42/obsidian-theme",
+ "unstable": {
+ "version": [
+ 20170719,
+ 948
+ ],
+ "commit": "f45efb2ebe9942466c1db6abbe2d0e6847b785ea",
+ "sha256": "1d36mdq8b1q1x84a2nb93bwnzlpdldiafh7q7qfjjm9dsgbij73b"
+ }
+ },
+ {
+ "ename": "occidental-theme",
+ "commit": "736fd0b7865cc800800fa6467019a365ddf1c412",
+ "sha256": "1ra5p8k96wvb04v69xm87jl4jlgi57v4jw2xxzkwbwxbydncnv0b",
+ "fetcher": "github",
+ "repo": "olcai/occidental-theme",
+ "unstable": {
+ "version": [
+ 20130312,
+ 1958
+ ],
+ "commit": "fd2db7256d4f78c43d99c3cddb1c39106d479816",
+ "sha256": "0pnliw02crqw8hbg088klz54z6s1ih8q2lcn9mq5f12xi752hxm8"
+ }
+ },
+ {
+ "ename": "occur-context-resize",
+ "commit": "a2425d82b365784b17ab56af5f77c6095664c784",
+ "sha256": "0sp5v4rwqgqdj26gdkrmjvkmbp4g6jq4lrn2c3zm8s2gq0s3l6ri",
+ "fetcher": "github",
+ "repo": "dgtized/occur-context-resize.el",
+ "unstable": {
+ "version": [
+ 20170904,
+ 2309
+ ],
+ "commit": "cdee5a631ceed9337579d4090e0acf8140747f80",
+ "sha256": "0h7ypw45h5rcbwx4c4mn2ps9hp84dpjp3iay2nc9zaavv05n7ysa"
+ }
+ },
+ {
+ "ename": "occur-x",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "04nydxp4syd0chfnfrz8v1vkx2qasfh86b98qv8719cily1jw76p",
+ "fetcher": "github",
+ "repo": "juan-leon/occur-x",
+ "unstable": {
+ "version": [
+ 20130610,
+ 1343
+ ],
+ "commit": "352f5fab207d8a1d3dd048073ff127a83e97c82b",
+ "sha256": "1zj0xhvl5qx42injv0av4lyzd3jsjls1m368dqd2qnswhfw8wfn6"
+ }
+ },
+ {
+ "ename": "oceanic-theme",
+ "commit": "b9d85588df4e2057ef1c822ff177572054ed979b",
+ "sha256": "1i69dy9hfqwfyiykvnqzkqim0lv1p5z5fjsdk84068si4b029gzv",
+ "fetcher": "github",
+ "repo": "terry3/oceanic-theme",
+ "unstable": {
+ "version": [
+ 20161015,
+ 819
+ ],
+ "commit": "a92ee9b470843c923e6cdcafdd65106ff994d04d",
+ "sha256": "1bj4l88546gmlfmwyg1zsqfz9g2l87hsa9jlrf8s4c907di736ir"
+ }
+ },
+ {
+ "ename": "ocodo-svg-modelines",
+ "commit": "5b9651865f4f8009c9b31fa1e5561de97a5ad8de",
+ "sha256": "0fa88ns70wsr9i9gf4zx3fvmn1a32mrjsda105n0cx6c965kfmay",
+ "fetcher": "github",
+ "repo": "ocodo/ocodo-svg-modelines",
+ "unstable": {
+ "version": [
+ 20150516,
+ 1419
+ ],
+ "deps": [
+ "svg-mode-line-themes"
+ ],
+ "commit": "c7b0789a177219f117c4de5659ecfa8622958c40",
+ "sha256": "155gmls6cz3zf4lcj89kzb96y7k0glx0f659jg5z0skgxq79hf48"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "svg-mode-line-themes"
+ ],
+ "commit": "a6c5b9a7536c7a8fa3bd9d9dafdebc8d99903018",
+ "sha256": "05ay599nc6jdw2fjss4izz1ynv2wc4svff932n8j9hvrhygipb2w"
+ }
+ },
+ {
+ "ename": "ocp-indent",
+ "commit": "e1af061328b15360ed25a232cc6b8fbce4a7b098",
+ "sha256": "0wc4z9dsnnyr24n3vg1npvc3rm53av8bpbvrl8kldxxdiwgnbkjw",
+ "fetcher": "github",
+ "repo": "OCamlPro/ocp-indent",
+ "unstable": {
+ "version": [
+ 20190726,
+ 1452
+ ],
+ "commit": "9e26c0a2699b7076cebc04ece59fb354eb84c11c",
+ "sha256": "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 2
+ ],
+ "commit": "9e26c0a2699b7076cebc04ece59fb354eb84c11c",
+ "sha256": "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"
+ }
+ },
+ {
+ "ename": "octicons",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0p66i8i2ksqld3bd0iq7f7ssskj1hp42s170q74crh3ilapjnkpq",
+ "fetcher": "github",
+ "repo": "emacsorphanage/octicons",
+ "unstable": {
+ "version": [
+ 20151101,
+ 340
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a61e561966ffd8faa3b48ce5b3a4eec10c59708b",
+ "sha256": "0w98ii2ny57al94a4h927xx1hn99df5if543v2gh36zqdlwc7xci"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "77bb1a49045f89b3eaf9bcffeefbb9e1abaee556",
+ "sha256": "19fg6r7aiirfsbp2h1a824476sn1ln4nz8kvpdzkzvyf1hzx68gw"
+ }
+ },
+ {
+ "ename": "octo-mode",
+ "commit": "899ec190515d33f706e5279c8e3628514f733a12",
+ "sha256": "1xvpykdrkmxlk302kbqycasrq89f72xvhqlm14qrcd2lqnwhbi07",
+ "fetcher": "github",
+ "repo": "cryon/octo-mode",
+ "unstable": {
+ "version": [
+ 20161008,
+ 1229
+ ],
+ "commit": "bd4db7e5e3275b24c74e6a23c11d04f54e9feca5",
+ "sha256": "1blr664h8bq8bs1wr82nhhb9y7ggrlxp6x203i5bv542zm4a5rba"
+ }
+ },
+ {
+ "ename": "octopress",
+ "commit": "7205d3d43797755077f19f57f531b4b39e77bae3",
+ "sha256": "0zsir6chjvn5i1irmf5aj6mmb401c553r5wykq796sz7jnjhrjg0",
+ "fetcher": "github",
+ "repo": "aaronbieber/octopress.el",
+ "unstable": {
+ "version": [
+ 20190123,
+ 107
+ ],
+ "commit": "f2c92d5420f14fc9167c7de1873836510e652de2",
+ "sha256": "0s5sv685h350zky46fr95bs1w814g8ksjndxwmgarldklxilsyji"
+ }
+ },
+ {
+ "ename": "oer-reveal",
+ "commit": "7c4e4d7c68548415413d4ad972b2c804e7d867f8",
+ "sha256": "04rwyhq500c8wcgfhg2xmb246az9sc6s2y45ichxhvvhvqgxjib3",
+ "fetcher": "gitlab",
+ "repo": "oer/oer-reveal",
+ "unstable": {
+ "version": [
+ 20200813,
+ 1540
+ ],
+ "deps": [
+ "org-re-reveal"
+ ],
+ "commit": "165eaf9d151c589226f7a4e0edc3a3100c0a9efb",
+ "sha256": "06740c4qdpdrim5wj88gw973lbh59h6sx4kzrpl37cqjvdsawbzv"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 2,
+ 1
+ ],
+ "deps": [
+ "org-re-reveal"
+ ],
+ "commit": "7a99fa342eae234069344893b5bc851280ff2dc9",
+ "sha256": "1fsp6li73dk2272lgj4kxapd1sqw2pqj42rlcbl5hhh35hva714h"
+ }
+ },
+ {
+ "ename": "offlineimap",
+ "commit": "671afe0ff3889ae8c4b2d7b8617a3a25c16f3f0f",
+ "sha256": "0nza7lrz7cn06njcblwh9hy3050j8ja4awbxx7jzv6nazjg7201b",
+ "fetcher": "github",
+ "repo": "jd/offlineimap.el",
+ "unstable": {
+ "version": [
+ 20150916,
+ 1158
+ ],
+ "commit": "cc3e067e6237a1eb7b21c575a41683b1febb47f1",
+ "sha256": "1bjrgj8klg7ly63vx90jpaih9virn02bhqi16p6z0mw36q1q7ysq"
+ },
+ "stable": {
+ "version": [
+ 1
+ ],
+ "commit": "646482203aacdf847d57d0a96263fddcfc33fb61",
+ "sha256": "0az4llfgva4wvpljyc5s2m7ggfnj06ssp32x8bncr5fzksha3r7b"
+ }
+ },
+ {
+ "ename": "oj",
+ "commit": "f271f03feaa578e3e8ad9b02e0ca3ac99142fd60",
+ "sha256": "0qzyl7h8rdwyy1d6xralzcxgrc4nwx1hq30n5daa0cy3l5yix5xz",
+ "fetcher": "github",
+ "repo": "conao3/oj.el",
+ "unstable": {
+ "version": [
+ 20200811,
+ 517
+ ],
+ "deps": [
+ "quickrun"
+ ],
+ "commit": "2dd65324ac9833e07eaed5fb04acebafc6d5cbd2",
+ "sha256": "00lxjl1i6kcvj9lym2m59xb5hrx2gcdpvsvq972d8iczp2jmcfxr"
+ }
+ },
+ {
+ "ename": "olc",
+ "commit": "1e21abd021d72c491ed1503146c51761e18c56c4",
+ "sha256": "0kcqwnhhy5wa0r61yqg9gly9jd6b1846q2w43fmhzk3l4nzky32r",
+ "fetcher": "git",
+ "url": "https://gitlab.liu.se/davby02/olc.git",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1221
+ ],
+ "commit": "d2dc62dbc3cf6460cc12bd96857a988bc80ac37e",
+ "sha256": "176w03pybs5rg87cj94s0dy365pxp981mlkbh3zv3d34kpmrzh10"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 1
+ ],
+ "commit": "d2dc62dbc3cf6460cc12bd96857a988bc80ac37e",
+ "sha256": "176w03pybs5rg87cj94s0dy365pxp981mlkbh3zv3d34kpmrzh10"
+ }
+ },
+ {
+ "ename": "old-norse-input",
+ "commit": "84780a6ebd1b2294b86ae8c6df5bd6521cf4e85a",
+ "sha256": "1g00h6ykf61ckr6f3r17j72w3h04p5q65aa3rhr5llk3jk1wv331",
+ "fetcher": "github",
+ "repo": "david-christiansen/emacs-old-norse-input",
+ "unstable": {
+ "version": [
+ 20170816,
+ 1842
+ ],
+ "commit": "c2e21ee72c3768e9152aff6baf12a19cde1d0c53",
+ "sha256": "0zybr1v91884p4ncrpr962pr02qsns6hf7kc4c5gyad8sg4pbvxh"
+ }
+ },
+ {
+ "ename": "oldlace-theme",
+ "commit": "b6b11187b012744771380dfabab607cf7e073c45",
+ "sha256": "1pxiqqh5x4wsayqgwplzvsbalbj44zvby7x0pijdvwcnsh74znj8",
+ "fetcher": "github",
+ "repo": "mswift42/oldlace-theme",
+ "unstable": {
+ "version": [
+ 20150705,
+ 1300
+ ],
+ "commit": "5c6f437203b0783b36a7aff4a578de4a0c8c4ee6",
+ "sha256": "0y9fxrsxp1158fyjp4f69r7g2s7b6nbxlsmsb8clwqc8pmmg2z82"
+ }
+ },
+ {
+ "ename": "olivetti",
+ "commit": "10292536096e698f37e6ad81a4d5b6204beeb7cb",
+ "sha256": "0fkvw2y8r4ww2ar9505xls44j0rcrxc884p5srf1q47011v69mhd",
+ "fetcher": "github",
+ "repo": "rnkn/olivetti",
+ "unstable": {
+ "version": [
+ 20200702,
+ 601
+ ],
+ "commit": "0bc5e98b8456493084d1bd3df35e92a12c5da3b2",
+ "sha256": "121dzm051jivskssfvxs5kxkviqivf1j0fr3q8rkfqii7rxdw84r"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 11,
+ 1
+ ],
+ "commit": "57ca8e70bc9ee975f0e2a60bfc4121064dadd2e0",
+ "sha256": "0rghxjdzyfykd4qc2zkavvbyf9xc899k1b8hbk890f1y3vakqvqz"
+ }
+ },
+ {
+ "ename": "om-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0bnlnxmzch9j39l8sf85npi89xlnkcnkmy4fihmwhrm86mnmayrb",
+ "fetcher": "github",
+ "repo": "danielsz/om-mode",
+ "unstable": {
+ "version": [
+ 20140915,
+ 2110
+ ],
+ "commit": "cdc0c2912321f8438b0f3449ba8aca50ec150bba",
+ "sha256": "03szb2i2xk3nq578cz1drsddsbld03ryvykdfzmfvwcmlpaknvzb"
+ }
+ },
+ {
+ "ename": "omni-kill",
+ "commit": "c24df34d2fa5d908223379e909148423ba327ae2",
+ "sha256": "03kydl16rd9mnc1rnan2byqa6f70891fhcj16wkavl2r68rfj75k",
+ "fetcher": "github",
+ "repo": "AdrieanKhisbe/omni-kill.el",
+ "unstable": {
+ "version": [
+ 20171016,
+ 2140
+ ],
+ "commit": "904549c8fd6ac3cf22b5d7111ca8944e179cffea",
+ "sha256": "1mlnh5pdqdv1qb8jvi0wvkgbpy74zq807gmp04bp6cpxdns9j63f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "commit": "904549c8fd6ac3cf22b5d7111ca8944e179cffea",
+ "sha256": "1mlnh5pdqdv1qb8jvi0wvkgbpy74zq807gmp04bp6cpxdns9j63f"
+ }
+ },
+ {
+ "ename": "omni-log",
+ "commit": "47bb19bb7b4713c3fd82c1035a2fe66588c069e3",
+ "sha256": "0c29243zq8r89ax4rxlmb8imag12icnldcb0q0xsnhjccw8lyw1r",
+ "fetcher": "github",
+ "repo": "AdrieanKhisbe/omni-log.el",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2229
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "s"
+ ],
+ "commit": "0a240660ccdd0b6588b4e3c322743b5ab1161338",
+ "sha256": "0xbrwj7zsqx91p28l3dknlhr3y5cj6lah6h5x1s9l9kmfz850dcp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "s"
+ ],
+ "commit": "0a240660ccdd0b6588b4e3c322743b5ab1161338",
+ "sha256": "0xbrwj7zsqx91p28l3dknlhr3y5cj6lah6h5x1s9l9kmfz850dcp"
+ }
+ },
+ {
+ "ename": "omni-quotes",
+ "commit": "3402524f79381c99fdeb81a6a5a9241c918811be",
+ "sha256": "0dqki0ibabs9cpcjvnh8lc2114x46i1xmnyjc6qqblfxa3ggdygs",
+ "fetcher": "github",
+ "repo": "AdrieanKhisbe/omni-quotes.el",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2341
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "ht",
+ "omni-log",
+ "s"
+ ],
+ "commit": "cfc7b7f01628a5d57384820d1096de4541e67cdf",
+ "sha256": "1bv45gdyzycapi9q69h3339308qxwgjzj5rgr3f927vl4xm18kfb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "ht",
+ "omni-log",
+ "s"
+ ],
+ "commit": "cfc7b7f01628a5d57384820d1096de4541e67cdf",
+ "sha256": "1bv45gdyzycapi9q69h3339308qxwgjzj5rgr3f927vl4xm18kfb"
+ }
+ },
+ {
+ "ename": "omni-scratch",
+ "commit": "6ba3e128a7fe4476d82266506b18ba9984c37944",
+ "sha256": "190dkqcw8xywzrq8a99w4rqi0y1h2aj23s84g2ln1sf7jaf6d6n9",
+ "fetcher": "github",
+ "repo": "AdrieanKhisbe/omni-scratch.el",
+ "unstable": {
+ "version": [
+ 20171009,
+ 2151
+ ],
+ "commit": "9eee3161e5cb6df58618548a2173f4da7d194814",
+ "sha256": "1cppy9p5k8737jjgjlmfqqfdx048kpjn5cx7iw0dxal180y3i39g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "commit": "636374c59c7d33c2f72c97ad8ba9fb4854f2324d",
+ "sha256": "0w62bk2m0gs4b605s691z4iap9baz1z6c8z4v9vb05917qlsx5xb"
+ }
+ },
+ {
+ "ename": "omni-tags",
+ "commit": "c77e57f41484c08cae9f47c4379d1752ccf43ce2",
+ "sha256": "133ww1jf14jbw02ssbx2a46mp52j18a2wwzb6x77azb0akmf1lzl",
+ "fetcher": "github",
+ "repo": "AdrieanKhisbe/omni-tags.el",
+ "unstable": {
+ "version": [
+ 20170426,
+ 2109
+ ],
+ "deps": [
+ "cl-lib",
+ "pcre2el"
+ ],
+ "commit": "8f0f6c302fab900b7681e5c039f90850cbbabd33",
+ "sha256": "0cqj4h4bdhmb0r6f2xx9g6cs3599m4j3snkrvsgddaq8c6mg47w0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "pcre2el"
+ ],
+ "commit": "a7078bfbc9a6256efd0e57530df9fd7808bc2185",
+ "sha256": "0c34rci5793hd674x2srhqvnj46llrbkrw1xpzf73s4ib5zhh7xi"
+ }
+ },
+ {
+ "ename": "omnibox",
+ "commit": "bf274ff47f167edd214e667249356de281522802",
+ "sha256": "05jc9hhr3gnjfyjpdx79ij9b5qwfrsmdf8h2s5ldxbw82q8a0z02",
+ "fetcher": "github",
+ "repo": "sebastiencs/omnibox",
+ "unstable": {
+ "version": [
+ 20180423,
+ 49
+ ],
+ "deps": [
+ "dash",
+ "frame-local"
+ ],
+ "commit": "8ee75c71c20c438ebc43ba24ef6f543633d118f3",
+ "sha256": "19d7djf942dagxsz0c0lnfra4fk09qm6grkc0nihpsw4afjbj01a"
+ }
+ },
+ {
+ "ename": "omnisharp",
+ "commit": "e327c483be04de32638b420c5b4e043d12a2cd01",
+ "sha256": "0gh0wwdpdx2cjf95pcagj52inf7mrmiq7x8p0x5c7lvl4pfzhh87",
+ "fetcher": "github",
+ "repo": "OmniSharp/omnisharp-emacs",
+ "unstable": {
+ "version": [
+ 20191015,
+ 635
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "csharp-mode",
+ "dash",
+ "f",
+ "flycheck",
+ "popup",
+ "s"
+ ],
+ "commit": "e658a18a762438c3e1737612737b05d02a21ca2a",
+ "sha256": "1m4xqcn586f0gn305kig502480zlnvmrv98nmdkn36fbwgg96hla"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 2
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "csharp-mode",
+ "dash",
+ "f",
+ "flycheck",
+ "popup",
+ "s",
+ "shut-up"
+ ],
+ "commit": "588b8482685adedbc56933cb13c58d9cc6a82456",
+ "sha256": "1iqwxc19jvcb2gsm2aq59zblg1qjmbxgb2yl3h3aybqp968j3i00"
+ }
+ },
+ {
+ "ename": "omtose-phellack-theme",
+ "commit": "478b1e07ed9010408c12598640ec8d154f9eb18d",
+ "sha256": "0aj0sw611w13xryn762ws63dfalczxixa5rv3skglmfy9axg3v3b",
+ "fetcher": "github",
+ "repo": "franksn/omtose-phellack-theme",
+ "unstable": {
+ "version": [
+ 20161111,
+ 2120
+ ],
+ "commit": "66f99633e199e65bd28641626435e8e59246529a",
+ "sha256": "0imf2pcf93srm473nvaksw5pw5i4caqxb6aqfbq6xww8gdbqfazy"
+ }
+ },
+ {
+ "ename": "on-parens",
+ "commit": "2ea1eb5eb5a40e95ba06b0a4ac89ad8843c9cc2c",
+ "sha256": "19kyzpkgfl0ipbcgnl8fbfbapnfdxr8w9i7prfkm6rjp6amxyqab",
+ "fetcher": "github",
+ "repo": "willghatch/emacs-on-parens",
+ "unstable": {
+ "version": [
+ 20180202,
+ 2241
+ ],
+ "deps": [
+ "dash",
+ "evil",
+ "smartparens"
+ ],
+ "commit": "7a41bc02bcffd265f8a69ed4b4e0df3c3009aaa4",
+ "sha256": "0pkc05plbjqfxrw54amlm6pzg9gcsz0nvqzprplr6rhh7ss419zn"
+ }
+ },
+ {
+ "ename": "on-screen",
+ "commit": "628f43fdfdb41174800fb8171e71134c27730f6f",
+ "sha256": "104jisc2bckzrajxlvj1cfx1drnjj7jhqjblvm89ry32xdnjxmqb",
+ "fetcher": "github",
+ "repo": "michael-heerdegen/on-screen.el",
+ "unstable": {
+ "version": [
+ 20160302,
+ 950
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "206468aa4de299ad26c2db12b757f5ad7290912f",
+ "sha256": "1rrby3mbh24qd43nsb3ymcrjxh1cz6iasf1gv0a8fmivmb4f7dyz"
+ }
+ },
+ {
+ "ename": "one-themes",
+ "commit": "504fb2fa2fe17eb008f7e9b8f7fb394f4a3ebd28",
+ "sha256": "11c6py5vani2cv4qjvizlzz9xvr5v57qxy1chcxy2lq3jlz1q5w0",
+ "fetcher": "github",
+ "repo": "balajisivaraman/emacs-one-themes",
+ "unstable": {
+ "version": [
+ 20200720,
+ 1444
+ ],
+ "commit": "0e77d31f9fc0cd55f3d92ec0db79513d616b2efd",
+ "sha256": "0dc2xkgnl5x542332cnlilbzy9ps060gjx0hkg8pfhismvavr4mi"
+ }
+ },
+ {
+ "ename": "one-time-pad-encrypt",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0xl74vxq9dzl84b6wsw8flykxcsxggpd4s47a2ph3irr64mbbgq5",
+ "fetcher": "github",
+ "repo": "garvinguan/emacs-one-time-pad",
+ "unstable": {
+ "version": [
+ 20160329,
+ 1513
+ ],
+ "commit": "87cc1f124024ce3d277299ca0ac703f182937d9f",
+ "sha256": "0g2hvpnmgyy1k393prv97nqwlqc58nqf71hkrmaijw0cyy9q03nz"
+ }
+ },
+ {
+ "ename": "opam",
+ "commit": "29dc2ef3801a1cd7cf8edd2eae68b03bf00e96a0",
+ "sha256": "0hd08sb645jxz72m4g0jaggxa6l1dgimzgvd3mvvadihj6xkr2p3",
+ "fetcher": "github",
+ "repo": "emacsorphanage/opam",
+ "unstable": {
+ "version": [
+ 20150719,
+ 1220
+ ],
+ "commit": "4d589de5765728f56af7078fae328b6792de8600",
+ "sha256": "1yqrp9icci5snp1485wb6y8mr2hjp9006ahch58lvmnq98bn7j45"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "83fb2850d29ec792754e0af18b015e089aad2695",
+ "sha256": "119pk7gg4fw5bdvir8077ra603b5nbqvd7ph9cqrwxa056jzvry8"
+ }
+ },
+ {
+ "ename": "open-in-msvs",
+ "commit": "09a462fac31a7ceda4ee84a8550ff1db6d11140f",
+ "sha256": "0cng0brxjdriyhwsbn85pfrgqg56chzk24lvkx91rzgz15fbpnv5",
+ "fetcher": "github",
+ "repo": "evgeny-panasyuk/open-in-msvs.el",
+ "unstable": {
+ "version": [
+ 20170123,
+ 2228
+ ],
+ "commit": "e0d071c83188ad5db8f3297d6ce784b4ed554a04",
+ "sha256": "0aiccdcll5zjy11fandd9bvld8p8srmhrh3waqc33yp4x8pjkjpd"
+ }
+ },
+ {
+ "ename": "open-junk-file",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "0r1v9m8a5blv70fzq5miv5i57jx0bm1p0jxh0lwklam0m99znmcj",
+ "fetcher": "github",
+ "repo": "rubikitch/open-junk-file",
+ "unstable": {
+ "version": [
+ 20161210,
+ 1114
+ ],
+ "commit": "558bec7372b0fed4c4cb6074ab906535fae615bd",
+ "sha256": "0kcgkxn5v9bsbkcvpjxjqhj1w3c29bfb33bmiw32gzbfphmrvhh1"
+ }
+ },
+ {
+ "ename": "opencc",
+ "commit": "71bc5476b3670a9f5c3d3682c2e7852fc6c5fe60",
+ "sha256": "1dd62x0h3imil4g3psndxykp45jf83fm4afxcvvyayj45z099f4r",
+ "fetcher": "github",
+ "repo": "xuchunyang/emacs-opencc",
+ "unstable": {
+ "version": [
+ 20170722,
+ 816
+ ],
+ "commit": "8c539f72669ba9a99d8b5198db5ea930897ad1b9",
+ "sha256": "140s88z0rsiylm8g1mzgc50ai38x79j004advin6lil5zcggxq3i"
+ }
+ },
+ {
+ "ename": "opencl-mode",
+ "commit": "d97575fdae88d55b55686aa6814f858813cad171",
+ "sha256": "1g351wiaycwmg1bnf4s2mdnc3lb2ml5l54g19184xqssfqlx7y79",
+ "fetcher": "github",
+ "repo": "salmanebah/opencl-mode",
+ "unstable": {
+ "version": [
+ 20190615,
+ 1957
+ ],
+ "commit": "55cb49c8243e6420961d719faced035bc547c1ef",
+ "sha256": "0rsf49dj0q5i14b3nfhld9da7d9cx01l8gxf35ya7nw4fw07aan1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "14109a4bb56105a9c052ae49ad4c638b4cc210b2",
+ "sha256": "0n64l1jrrk60g192nn0240qcv2p9r138mi9gb38qq5k65wffbc21"
+ }
+ },
+ {
+ "ename": "opener",
+ "commit": "c5a448f1936f46176bc2462eb03955a0c19efb9e",
+ "sha256": "0fhny4m7x19wnlnr19s4rkl04dkx95yppd51jzrkr96xiznw97s7",
+ "fetcher": "github",
+ "repo": "0robustus1/opener.el",
+ "unstable": {
+ "version": [
+ 20161207,
+ 1810
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "c384f67278046fdcd220275fdd212ab85672cbeb",
+ "sha256": "0gci909a2rbx5i8dyzyrcddwdic7nvpk6y6djvn521yaag4sq87h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "c384f67278046fdcd220275fdd212ab85672cbeb",
+ "sha256": "0gci909a2rbx5i8dyzyrcddwdic7nvpk6y6djvn521yaag4sq87h"
+ }
+ },
+ {
+ "ename": "opensource",
+ "commit": "ec4255a403e912a14a7013ea96f554d3588dfc30",
+ "sha256": "17gi20s2vi7m75qqaff907x1g8ja5ny90klldpqmj258m2j6a6my",
+ "fetcher": "github",
+ "repo": "OpenSourceOrg/el-opensourceorg",
+ "unstable": {
+ "version": [
+ 20160926,
+ 1616
+ ],
+ "deps": [
+ "dash",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "4c15049079878fcd386cca5dba20b99296a1de84",
+ "sha256": "1avci3avwhrw040wwjgcv1hayk893y8iwln10vsjyb5rd78y9gsi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "27d06be45c852e84e47c33cbd0f4c344fd9a0370",
+ "sha256": "1rjf78vki4xp8y856v95877093p3zgfc9mx92npscsi1g93dxn80"
+ }
+ },
+ {
+ "ename": "openstack-cgit-browse-file",
+ "commit": "bd7035e1ea63d7d8378f8bfda6a5402a5b6bb9e4",
+ "sha256": "05dl28a4npnnzzipypfcqb21sdww715lwji2xnsabx3fb1h1w5jl",
+ "fetcher": "github",
+ "repo": "chmouel/openstack-cgit-browse-file",
+ "unstable": {
+ "version": [
+ 20130819,
+ 927
+ ],
+ "commit": "244219288b9aef41155044697bb114b7af83ab8f",
+ "sha256": "0086pfk4pq6xmknk7a42fihcjgzkcplqqc1rk9fhwmn9j7djbq70"
+ }
+ },
+ {
+ "ename": "openwith",
+ "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203",
+ "sha256": "0swza74ndw0vkr7q513wp12c2yasla7aaqv0z98mzr0ssx12jld8",
+ "fetcher": "github",
+ "repo": "jpkotta/openwith",
+ "unstable": {
+ "version": [
+ 20120531,
+ 2136
+ ],
+ "commit": "1dc89670822966fab6e656f6519fdd7f01e8301a",
+ "sha256": "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"
+ }
+ },
+ {
+ "ename": "operate-on-number",
+ "commit": "aec74eff8ca3d5e381d7a6d61c73f1a0716f1c60",
+ "sha256": "1rw3fqbzfizgcbz3yaf99rr2546msna4z7dyfa8dbi8h7yzl4fhk",
+ "fetcher": "github",
+ "repo": "knu/operate-on-number.el",
+ "unstable": {
+ "version": [
+ 20150707,
+ 623
+ ],
+ "commit": "ceb3be565a29326c1098244fac0c50606723a56e",
+ "sha256": "0iw3c8sn702ziki59mvd5gxm484i7f0bwsy8fz95y08s9gknjjf9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "6a17272e2b6e23260edb1b5eeb01905a1f37e0a6",
+ "sha256": "12q09kdcgv6hl1hmgarl73j4g9gi4h7sj865655mdja0ns9n1pdb"
+ }
+ },
+ {
+ "ename": "orca",
+ "commit": "f4d9cf89c58a9b36b7c2a42de2aecb3b60001908",
+ "sha256": "012ndbrgm58r09snhvi476rw0lq4m913y0slc0cxb688p9wgz5w3",
+ "fetcher": "github",
+ "repo": "abo-abo/orca",
+ "unstable": {
+ "version": [
+ 20200122,
+ 1511
+ ],
+ "commit": "654f185861ed4fedfe1394db48a83639a0be57f6",
+ "sha256": "1dwps9zv1jnc7m75j5cdla14pnv2vnivm5bq0zcvqfsvilvd38ds"
+ }
+ },
+ {
+ "ename": "orderless",
+ "commit": "3f1f2c378e63c5ce8a8d37735f914ce0663a76d3",
+ "sha256": "102jfzq2zskaa8jcb4mmmndcdc8221qp0hqlgvwirnzkxms9ij4a",
+ "fetcher": "github",
+ "repo": "oantolin/orderless",
+ "unstable": {
+ "version": [
+ 20200614,
+ 1920
+ ],
+ "commit": "1f1e0380e2a8cd4fc29b8cc2e00cb01b56d86fbc",
+ "sha256": "15an4y0xdaih86p33zmb6r7qx5n0cs54flcnnq50jakkxlg9s8xh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "c6432b086f9c8ccb50b3656ba5895750f2a15541",
+ "sha256": "032lfwflkpaxbcxl4jf438vapswsdagipjczcn30sc4dfdh3p42c"
+ }
+ },
+ {
+ "ename": "ordinal",
+ "commit": "ea3dd6fe4cacc229dd1371cb66dd1cfd07321bf4",
+ "sha256": "19s27mv7kqcg9qxa844al7q1hk0qbiqh93g1n54r3b6s980dlgcv",
+ "fetcher": "github",
+ "repo": "zonuexe/ordinal.el",
+ "unstable": {
+ "version": [
+ 20190104,
+ 1421
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "75af95abbac3e30c4dd804411cb3e867c741a747",
+ "sha256": "04zhw4a3l8a8sz4w5l04hjr63hdrq9icjcc2mn893rixrw1i7l9m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "75af95abbac3e30c4dd804411cb3e867c741a747",
+ "sha256": "04zhw4a3l8a8sz4w5l04hjr63hdrq9icjcc2mn893rixrw1i7l9m"
+ }
+ },
+ {
+ "ename": "org-ac",
+ "commit": "adf598f8dae69ff286ae78d353a2a5d4363b4480",
+ "sha256": "059jr3v3558cgw626zbqfwmwwv5f4637ai26h7b6psqh0x9sf3mr",
+ "fetcher": "github",
+ "repo": "aki2o/org-ac",
+ "unstable": {
+ "version": [
+ 20170401,
+ 1307
+ ],
+ "deps": [
+ "auto-complete-pcmp",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "41e3ef8e4039619d0370c23c66730b3b2e9e32ed",
+ "sha256": "1l3fn8vjdqq7rrn1b7l2i238bhjni13mg9v25dydin0sfb697abk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "auto-complete-pcmp",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "9cbbda79e2fe964ded3f39cf7a2e74f1be3d6b9a",
+ "sha256": "1xckin2d6s40kgr2293g72ipc57f8gp6y63303kmqcv3qm8q13ca"
+ }
+ },
+ {
+ "ename": "org-agenda-property",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "0zsjzjw52asl609q7a2s4jcsm478p4cxzhnd3azyr9ypxydjf6qk",
+ "fetcher": "github",
+ "repo": "Malabarba/org-agenda-property",
+ "unstable": {
+ "version": [
+ 20140626,
+ 2116
+ ],
+ "commit": "3b469f3e93de0036547f3631cd0366d53f7584c8",
+ "sha256": "15xgkm5p30qfghyhkjivh5n4770794qf4pza462vb0xl5v6kffbm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 1
+ ],
+ "commit": "2ff628a14a3e758863bbd88fba4db9f77fd2c3a8",
+ "sha256": "0gkxxzdk8bd1yi5x9217pkq9d01ccq8znxc7h8qcw0p1336rigfc"
+ }
+ },
+ {
+ "ename": "org-alert",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "01bb0s22wa14lyr9wi58cvk4b03xqq268y3dvxbrhymw1ld97zk2",
+ "fetcher": "github",
+ "repo": "spegoraro/org-alert",
+ "unstable": {
+ "version": [
+ 20180524,
+ 133
+ ],
+ "deps": [
+ "alert",
+ "dash",
+ "s"
+ ],
+ "commit": "f87bff4acbd839acb4d2245b56b2c3d21f950911",
+ "sha256": "05xhp1ggpcgd48vcrxf9l43aasxfjw1ypgzpq3gp7031x83m9rr6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "alert",
+ "dash",
+ "s"
+ ],
+ "commit": "685c18aa5ce994360c7f9e8bbf49590c412187ac",
+ "sha256": "0gkv2sfl9nb64qqh5xhgq68r9kfmsny3vpcmnzk2mqjcb9nh657s"
+ }
+ },
+ {
+ "ename": "org-analyzer",
+ "commit": "1e264f0cbd4ce919d28ae7b2fa00752dc83491fc",
+ "sha256": "18390jllqx2md5y5fjprx90nx11i0h1mdqx2q8jzv7napw957b1d",
+ "fetcher": "github",
+ "repo": "rksm/clj-org-analyzer",
+ "unstable": {
+ "version": [
+ 20191001,
+ 1717
+ ],
+ "commit": "19da62aa4dcf1090be8f574f6f2d4c7e116163a8",
+ "sha256": "1zfc93z6w5zvbqiypqvbnyv8ims1wgpcp61z1s152d0nq2y4pf50"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 4
+ ],
+ "commit": "19da62aa4dcf1090be8f574f6f2d4c7e116163a8",
+ "sha256": "1zfc93z6w5zvbqiypqvbnyv8ims1wgpcp61z1s152d0nq2y4pf50"
+ }
+ },
+ {
+ "ename": "org-attach-screenshot",
+ "commit": "f545cd8d1da39e7fbd61020e178de30053ba774b",
+ "sha256": "0108kahyd499q87wzvirv5d6p7jrb7ckz8r96pwqzgflj3njbnmn",
+ "fetcher": "github",
+ "repo": "dfeich/org-screenshot",
+ "unstable": {
+ "version": [
+ 20180420,
+ 525
+ ],
+ "commit": "6b1edbd2384191122a30788ac72f2233c2df0294",
+ "sha256": "0vyxpc28b9b0cn02a9p48q6iy61qw7gj7gzk37ijdmzg8dzy6hxv"
+ }
+ },
+ {
+ "ename": "org-autolist",
+ "commit": "ca8e2cdb282674b20881bf6b4fc49af42a5d09a7",
+ "sha256": "1jvspxhxlvd7h1srk9dbk1v5dykmf8jsjaqicpll7ial6i0qgikj",
+ "fetcher": "github",
+ "repo": "calvinwyoung/org-autolist",
+ "unstable": {
+ "version": [
+ 20170924,
+ 1901
+ ],
+ "commit": "c82d1e83e982b5f0c106b8800e5b0cfd5f73fdc1",
+ "sha256": "0ykiafbdjb2iy0s1gr6l51gddjbk08iwj4v13hgm8b675bl0cw56"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 14
+ ],
+ "commit": "c82d1e83e982b5f0c106b8800e5b0cfd5f73fdc1",
+ "sha256": "0ykiafbdjb2iy0s1gr6l51gddjbk08iwj4v13hgm8b675bl0cw56"
+ }
+ },
+ {
+ "ename": "org-babel-eval-in-repl",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0brqp0w9s28ibws4idlm1rw09lsfa98l5wbpwm64rvlixhs6zlnx",
+ "fetcher": "github",
+ "repo": "diadochos/org-babel-eval-in-repl",
+ "unstable": {
+ "version": [
+ 20200723,
+ 838
+ ],
+ "deps": [
+ "ess",
+ "eval-in-repl",
+ "matlab-mode"
+ ],
+ "commit": "85136ac7397fcdf0a4700a860de44d7912bb6b4c",
+ "sha256": "0pkp1w8ivgbr7jy90fymws2k9bambayrfq9rcad9qfzl76i412z9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5
+ ],
+ "deps": [
+ "ess",
+ "eval-in-repl",
+ "matlab-mode"
+ ],
+ "commit": "929d160685db57c4f0aedf26b52f9d7a918a40dd",
+ "sha256": "0dk2kqwf7pg18iny02rz146jjjlfqn1vd9ay1sxq7vgsv6c1cs80"
+ }
+ },
+ {
+ "ename": "org-beautify-theme",
+ "commit": "f55f1ee9890f720e058401a052e14c7411252967",
+ "sha256": "0rrlyn61xh3szw8aihxpbmg809xx5ac66xqzj895dn1raz129h2w",
+ "fetcher": "github",
+ "repo": "jonnay/org-beautify-theme",
+ "unstable": {
+ "version": [
+ 20170908,
+ 2218
+ ],
+ "commit": "df6a1114fda313e1689363e196c8284fbe2a2738",
+ "sha256": "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "commit": "7b7a7cbd4f25f77e8bd81783f517b2b182220fd9",
+ "sha256": "0nqw4apv642vqbjjqbi960zim9lkbnaszrlasf25c9fnzdg1m134"
+ }
+ },
+ {
+ "ename": "org-board",
+ "commit": "d8063ee17586d9b1e7415f7b924239826b81ab08",
+ "sha256": "00jsrxc8f85cvrh7364n7337frdj12yknlfp28fhdgk2ph6d7bp4",
+ "fetcher": "github",
+ "repo": "scallywag/org-board",
+ "unstable": {
+ "version": [
+ 20200619,
+ 1016
+ ],
+ "commit": "1393bd46d11a81328ed4fb8471831415a3efe224",
+ "sha256": "1kryrg988c3sbxyp1sdgc6xdv2iz6kiflpzn2rw4z3l4grzab53b"
+ },
+ "stable": {
+ "version": [
+ 1018
+ ],
+ "commit": "405bfd630f1b31bd77158bc8e79aab86812cba65",
+ "sha256": "066shdqp0bca2xlds1m0c5ml3yxqfyzsyyy7sy72ybv41n5b11x3"
+ }
+ },
+ {
+ "ename": "org-bookmark-heading",
+ "commit": "eaadbd149399c6e3c48ac5cbeedeb29a3f5791f1",
+ "sha256": "1q92rg9d945ypcpb7kig2r0cr7nb7avsylaa7nxjib25advx80n9",
+ "fetcher": "github",
+ "repo": "alphapapa/org-bookmark-heading",
+ "unstable": {
+ "version": [
+ 20200103,
+ 514
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "38a2813f72ff65f3ae91e2ebb23e0bbb42a8d1df",
+ "sha256": "09rfp0zf68gnhiwh61wc10kgqk75ypkbk0hawrw1rhida1bi2wb1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "70b014e09977371a8c9bad03085c116693062b19",
+ "sha256": "0j765rb2yfwnc0ri53jb8d6lxj6knpmy495bk3sd63492kdrxf93"
+ }
+ },
+ {
+ "ename": "org-books",
+ "commit": "2362892068bffb99a37e77201924ec12676a5017",
+ "sha256": "1mp0n1x5ka2x2rc6pd4nn54cr8b3qxl7fq8dsyng7bm300gizpf2",
+ "fetcher": "github",
+ "repo": "lepisma/org-books",
+ "unstable": {
+ "version": [
+ 20200522,
+ 1800
+ ],
+ "deps": [
+ "dash",
+ "enlive",
+ "helm",
+ "helm-org",
+ "s"
+ ],
+ "commit": "49617901d087f532d7cae1aa23637671fd153d20",
+ "sha256": "09nq7na9r39pl6aljrf5vpkfih92ms7s081nxdrhxcscaysk08kb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 19
+ ],
+ "deps": [
+ "dash",
+ "enlive",
+ "helm",
+ "helm-org",
+ "s"
+ ],
+ "commit": "4b93bb1e20e2e66b9e64819b21ca75f36c389370",
+ "sha256": "1ksvdl8liqv74am1r7brn8slkwgbc83jv7l92qk9md7s1krcb6y0"
+ }
+ },
+ {
+ "ename": "org-brain",
+ "commit": "47480fbae06e4110d50bc89db7df05fa80afc7d3",
+ "sha256": "0c05c6lbr740nnjp9p34padrbrc3q1x2pgylkyhsxadm4mfsvj0c",
+ "fetcher": "github",
+ "repo": "Kungsgeten/org-brain",
+ "unstable": {
+ "version": [
+ 20200625,
+ 2050
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "671db0e08b91c7d2637d765a7afca8b2561275c8",
+ "sha256": "17i0lnp9xyzbky0xh1qi6q7jpnpz950j2zxwv2hg007zziqd21ks"
+ }
+ },
+ {
+ "ename": "org-bullets",
+ "commit": "aa0e1ebac172a73bfed7d55cb4d9eb52178dcbdc",
+ "sha256": "0jcqgp23wgzdmw7il8phwiqdndwyjc7lcc27mk8rfip4ngp3wiyn",
+ "fetcher": "github",
+ "repo": "integral-dw/org-bullets",
+ "unstable": {
+ "version": [
+ 20200317,
+ 1740
+ ],
+ "commit": "767f55feb58b840a5a04eabfc3fbbf0d257c4792",
+ "sha256": "01ll5b39wpx9qpqybndy58wkq97n512rg7j87482l1ry1s5b02d5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "commit": "b70ac2ec805bcb626a6e39ea696354577c681b36",
+ "sha256": "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"
+ }
+ },
+ {
+ "ename": "org-caldav",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1wzb5garpxg8p7zaqp6z5q0l2x8n9m7fjg5xy3vg9878njnqr9kc",
+ "fetcher": "github",
+ "repo": "dengste/org-caldav",
+ "unstable": {
+ "version": [
+ 20200510,
+ 2030
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "8569941a0a5a9393ba51afc8923fd7b77b73fa7a",
+ "sha256": "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"
+ }
+ },
+ {
+ "ename": "org-capture-pop-frame",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "1k0njip25527nkn8w11yl7dbk3zv9p9lhx0a9xx293havjxygvyi",
+ "fetcher": "github",
+ "repo": "tumashu/org-capture-pop-frame",
+ "unstable": {
+ "version": [
+ 20160518,
+ 1008
+ ],
+ "commit": "b16fd712de62cf0d1f9befd03be6ab5983cb3301",
+ "sha256": "01ffkk79wz2qkh9h9cjl59j34wvbiqzzxbbc9a06lh2rc946wgis"
+ }
+ },
+ {
+ "ename": "org-category-capture",
+ "commit": "6760daac1ef9d9d7ba07e2fc9668873020f901f1",
+ "sha256": "0l5n71h9lc8q9k0sb5ghzwb81lah4l1ykc06shfl9zw5lqqvahav",
+ "fetcher": "github",
+ "repo": "IvanMalison/org-projectile",
+ "unstable": {
+ "version": [
+ 20200329,
+ 313
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "96a57a43555e24e5e0d81e79f0fbb47001c41bac",
+ "sha256": "05h9scvnd9ggfwbbl1m124k6sdn5kp9mv2695cril2m4dkr1kyqz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "48f621b595e748c5e03431f237facf258ffc9443",
+ "sha256": "00n2msmwcjjiibrhrvpawzgz6qcjjfy9qnii1iaass0038g4bd89"
+ }
+ },
+ {
+ "ename": "org-chef",
+ "commit": "23b9e64887a290fca7c7ab2718f627f8d728575f",
+ "sha256": "1xzbdrv5z31lxnzzgbp50l10lzlvx6j7kc7ssg76fma49wfpnra5",
+ "fetcher": "github",
+ "repo": "Chobbes/org-chef",
+ "unstable": {
+ "version": [
+ 20200729,
+ 2021
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "5b461ed7d458cdcbff0af5013fbdbe88cbfb13a4",
+ "sha256": "171ybf5n6a6ab3ycghc2z016qxbgqyj13kkcdsfqy0691wx7dcqb"
+ }
+ },
+ {
+ "ename": "org-cliplink",
+ "commit": "7ddb13c59441fdf4eb1ba3816e147279dea7d429",
+ "sha256": "19l3k9w9csgvdr7n824bzg7jja0f28dmz6caldxh43vankpmlg3p",
+ "fetcher": "github",
+ "repo": "rexim/org-cliplink",
+ "unstable": {
+ "version": [
+ 20190608,
+ 2134
+ ],
+ "commit": "82402cae7e118d67de7328417fd018a18f95fac2",
+ "sha256": "0cx0bmpsniazpl420cck9pgvmyfznrvl5bgrjnfyvkmqgpz9nyzv"
+ }
+ },
+ {
+ "ename": "org-clock-convenience",
+ "commit": "a80ed929181cdd28886ca598a0c387a31d239b2e",
+ "sha256": "1zis0fp7q253qfxypm7a69zb3w8jb4cbrbj2rk34d1jisvnn4irw",
+ "fetcher": "github",
+ "repo": "dfeich/org-clock-convenience",
+ "unstable": {
+ "version": [
+ 20200705,
+ 1527
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "efc9773a8dedf834cf4a78fb6f5f8fffe55ef8eb",
+ "sha256": "0xnzw4p0wvahkfnxpj2ysz9nylzndp4pvy90vlf0l0d2ff5dymbh"
+ }
+ },
+ {
+ "ename": "org-clock-csv",
+ "commit": "e023cb898699f76f6c3d9ffe8162aacfc6a8c34f",
+ "sha256": "02spjrzdf1kmvyvqkzg7nnmq9kqv75zwxn5ifqmg0f7a1gw28f0l",
+ "fetcher": "github",
+ "repo": "atheriel/org-clock-csv",
+ "unstable": {
+ "version": [
+ 20200714,
+ 2109
+ ],
+ "deps": [
+ "org",
+ "s"
+ ],
+ "commit": "499b961f26e1f9a9898bf0b1725b49d783893639",
+ "sha256": "08li6il9rhbm62pcb15cd40b6vjqjlywk07jcs9m85q589v6q2yg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "org",
+ "s"
+ ],
+ "commit": "e2fbaa1ad1a1be40fceecde603a600b292b76acc",
+ "sha256": "1fpjga40v2wlkvq4ap75hd844m47gm55dkraznqz078k5f8fx8kk"
+ }
+ },
+ {
+ "ename": "org-clock-split",
+ "commit": "dc8517485e39093a3be387213f766d1df7d50061",
+ "sha256": "1ihqp4ilz4a3qs2lrc3j0lqkjh782510m2nbzba89pasgl4c4jhw",
+ "fetcher": "github",
+ "repo": "justintaft/org-clock-split",
+ "unstable": {
+ "version": [
+ 20200331,
+ 526
+ ],
+ "commit": "39e1d2912a7a7223e2356a5fc4dff03507ae084d",
+ "sha256": "0yvpmv0v56rsn43ffmwfhw8jjvfklw703qpmkx6d6paljjgy9k8l"
+ }
+ },
+ {
+ "ename": "org-clock-today",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1x9hplz9w2kpa239rz6y02hsl4fgzxlkwr9hhwjy12x1f88x0k73",
+ "fetcher": "github",
+ "repo": "mallt/org-clock-today-mode",
+ "unstable": {
+ "version": [
+ 20191204,
+ 1558
+ ],
+ "commit": "e326a45b60e0fd4ca057f1d1dc3e99a516a5aa2f",
+ "sha256": "08x1907kh6gxnji34gc3r6vya4idd7b79xqxyn8ibn9zswicyy2p"
+ }
+ },
+ {
+ "ename": "org-commentary",
+ "commit": "3e0a40d9ea5849b9c22378a84ac8122e4eb2737d",
+ "sha256": "0ym1rq2zhyhc6hkk40wsa9jni2h1z5dkaisldqzg8ggl7iv3v4fx",
+ "fetcher": "github",
+ "repo": "smaximov/org-commentary",
+ "unstable": {
+ "version": [
+ 20160802,
+ 637
+ ],
+ "deps": [
+ "dash",
+ "org"
+ ],
+ "commit": "821ccb994811359c42f4e3d459e0e88849d42b75",
+ "sha256": "0ixhyn8s7l2caq0qpv9zlq9fzm3z8b81755c3yffnk5camnij6py"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "org"
+ ],
+ "commit": "2eeeb0f506e30ef82263e67279d837a79cbde021",
+ "sha256": "02an98pc52yfxsxmz1kib692yx93rqdi1q3lpvblzyd3hhd51rlr"
+ }
+ },
+ {
+ "ename": "org-context",
+ "commit": "f33b6157eb172719a56c3e86233708b1e545e451",
+ "sha256": "19y8aln7wix9p506ajvfkl641147c5mdmjm98jnq68cx2r4wp6zz",
+ "fetcher": "github",
+ "repo": "thisirs/org-context",
+ "unstable": {
+ "version": [
+ 20200615,
+ 1554
+ ],
+ "commit": "8ef429124c13b1a68f7672cb6e6cb9c8b9d9db93",
+ "sha256": "178hpp3ylafmr2n3ydcqwqjxa8avlb8g1n3swzndc3jjk0gy6vck"
+ }
+ },
+ {
+ "ename": "org-cua-dwim",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0ib3m41b4lh0p0xxhsmfv42qs00xm2cfwwl2cgfdjjp1s57p19xy",
+ "fetcher": "github",
+ "repo": "mattfidler/org-cua-dwim.el",
+ "unstable": {
+ "version": [
+ 20120203,
+ 534
+ ],
+ "commit": "a55d6c7009fc0b22f1110c07de629acc955c85e4",
+ "sha256": "0nrfvmqb70phnq0k4wbdj6z666wq6xvabg4pgv8qn62rbrw4yyhm"
+ }
+ },
+ {
+ "ename": "org-d20",
+ "commit": "98bf91038196dfb59c491c9ed96c6b6a0cb311a9",
+ "sha256": "158n900ifb1mfckd0gjmb9gpzibh8a2x56flbn2r035gcdbb7wc5",
+ "fetcher": "git",
+ "url": "https://git.spwhitton.name/org-d20",
+ "unstable": {
+ "version": [
+ 20200416,
+ 2010
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "seq"
+ ],
+ "commit": "7ede5726d640c4f81146585f6eb907f51a0f6a19",
+ "sha256": "1p4irzcsq2sxmvpyrkrqs9ylp153mzwr31hvsnfh1f2nlghpicfk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "seq"
+ ],
+ "commit": "e0fb2c04a55c55cbf59a85a0b2e23ef18370ca61",
+ "sha256": "1q5s2gj1968z23qf7ds2ychvvnzmlayh1v16krf0lf3zj7a3k20s"
+ }
+ },
+ {
+ "ename": "org-dashboard",
+ "commit": "11ce0ba772672d9cbae5713ebaf3798eec5fdb3c",
+ "sha256": "1hvhhbmyx12wsf2n1hd0hg5cy05zyspd82xxcdh04g4s9r3ikqj5",
+ "fetcher": "github",
+ "repo": "bard/org-dashboard",
+ "unstable": {
+ "version": [
+ 20171223,
+ 1924
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "02c0699771d199075a286e4502340ca6e7c9e831",
+ "sha256": "0zi23xgv5fq827dljhzp6m2v7ggr3pdw3fpgq8515gs9q4f12v1r"
+ }
+ },
+ {
+ "ename": "org-doing",
+ "commit": "8377b69021bda729b9e96e59a5d7ce2c120838c5",
+ "sha256": "1hbdyvfqybbgzmcllys6bqip799j79j6h4b28pp6mnlyfqi64msp",
+ "fetcher": "github",
+ "repo": "emacsattic/org-doing",
+ "unstable": {
+ "version": [
+ 20200510,
+ 1732
+ ],
+ "commit": "df916bb13577f4de9d58332453cb8bf51eac37ba",
+ "sha256": "014xz7yjw97i1dzyg487r2v9rf3jk9jwc5acgg1fj5kc2n1m299m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "e099514cfc162f8fe3d383456a7964743b0455d5",
+ "sha256": "1hvnrw0y3chlfv6zxsczmm8zybrnakn3x13ykv2zblw96am9kd2s"
+ }
+ },
+ {
+ "ename": "org-dotemacs",
+ "commit": "4c1847184312c8c95e7e81e5b3b73e5621cc2509",
+ "sha256": "1vc391fdkdqd4g0piq66zhrlgqx5s2ijv7qd1rc3a235sjb9i2n4",
+ "fetcher": "github",
+ "repo": "vapniks/org-dotemacs",
+ "unstable": {
+ "version": [
+ 20190903,
+ 2024
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "ee59739c2d59151fe7d7d3034e87c7691120a5be",
+ "sha256": "17xrjhfjahryawrmkd2p0yi7pfxfvgdfhh4n18jdmfkrr6gllavg"
+ }
+ },
+ {
+ "ename": "org-download",
+ "commit": "edab283bc9ca736499207518b4c9f5e71e822bd9",
+ "sha256": "19yjx0qqpmrdwagp3d6lwwv7dcb745m9ccq3m29sin74f5p4svsi",
+ "fetcher": "github",
+ "repo": "abo-abo/org-download",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1117
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "67b3c744f94cf0bf50f7052ce428e95af5a6ff3f",
+ "sha256": "0f94drnfkyd1vpdhkr463zv952lk1v895dwrzk1251j8fb9vdf9m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "a57beffd0f09b218a9487d1750960878c1d5b12c",
+ "sha256": "1disqqfwjl366kv6xgc28w7zbc4xl9a0jmdj7w27mb00sxzfk3vb"
+ }
+ },
+ {
+ "ename": "org-dp",
+ "commit": "7f337375082da316ed07b8ce9c775b484b8cdbf6",
+ "sha256": "0fnrzpgw8l0g862j20yy4mw1wfcm2i04r6dxi4yd7yay8bw2i4yq",
+ "fetcher": "github",
+ "repo": "tj64/org-dp",
+ "unstable": {
+ "version": [
+ 20180311,
+ 923
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e720f1c155a795a5b65a04790ad195c413449716",
+ "sha256": "1d9fzgmg1hhr0nvas799filymhm6k6acm970gl444x4428fq03l7"
+ },
+ "stable": {
+ "version": [
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d740c2065120f71762c48877da1a31dea881e98e",
+ "sha256": "0cxccxz17pj67wgmyxr74n381mknqgqkyav3jkxs4ghg59g5nygl"
+ }
+ },
+ {
+ "ename": "org-drill",
+ "commit": "c26e11c52c8bb5c88df348cc15df6e0386bf8e1b",
+ "sha256": "16r8v2blqf0s1j6csp0mw0radm6bjkbdw18lr7zwx8ja1sjl48ws",
+ "fetcher": "gitlab",
+ "repo": "phillord/org-drill",
+ "unstable": {
+ "version": [
+ 20200412,
+ 1812
+ ],
+ "deps": [
+ "org",
+ "persist",
+ "seq"
+ ],
+ "commit": "35c1ce349949cc213f3076799211210f49431850",
+ "sha256": "06hc98z4sml7jrwm5zvbsw5x6q5jpa335almzkh6h85g1p8syfsn"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 7,
+ 0
+ ],
+ "deps": [
+ "org",
+ "persist",
+ "seq"
+ ],
+ "commit": "4c114489e682e514e79701045d541ab6f3dc3fb4",
+ "sha256": "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"
+ }
+ },
+ {
+ "ename": "org-drill-table",
+ "commit": "3347da186765877826b224e1f5d1b585ebd3692c",
+ "sha256": "1gb5b4hj4xr8nv8bxfar145i38zcic6c34gk98wpshvwzvb43r69",
+ "fetcher": "github",
+ "repo": "chrisbarrett/org-drill-table",
+ "unstable": {
+ "version": [
+ 20180115,
+ 1009
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "org",
+ "s"
+ ],
+ "commit": "2729aaa42c1e2720d9bf7bcc125e92dcf48b7f7d",
+ "sha256": "0rqjzn3n42jcnwa5vg2731vxrnj6vy2bacfxmg0hlh3rkhhn0r53"
+ }
+ },
+ {
+ "ename": "org-dropbox",
+ "commit": "cd613fbe42c41b125a25dfa0206666446dc5fa40",
+ "sha256": "0qfvdz13ncqn7qaz03lwabzsnk62z6wqzlxlvdqv5xyllcy9m6ln",
+ "fetcher": "github",
+ "repo": "heikkil/org-dropbox",
+ "unstable": {
+ "version": [
+ 20150114,
+ 509
+ ],
+ "deps": [
+ "dash",
+ "names"
+ ],
+ "commit": "75dab6d6f0438a7a8a18ccf3a5d55f50bf531f6e",
+ "sha256": "0jjdsng7fm4wbhvd9naqzdfsmkvj1sf1d9rikprg1pd58azv6idx"
+ }
+ },
+ {
+ "ename": "org-easy-img-insert",
+ "commit": "512db70609fc451972405acb4b186a9b3c6944fa",
+ "sha256": "0gpb9f66gn8dbhwrlw7z2a5rpphbh1fv845wz8yy4v7nv2j3sf54",
+ "fetcher": "github",
+ "repo": "tashrifsanil/org-easy-img-insert",
+ "unstable": {
+ "version": [
+ 20160915,
+ 2008
+ ],
+ "commit": "9f8aaa7f68ff1f0d8d7b1e9b618abb15002f971e",
+ "sha256": "1p0hzfzlcdmd8d01a4xqg27n7qcnv7a03n8wiicv0dnicx179952"
+ }
+ },
+ {
+ "ename": "org-edit-latex",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0nkiz4682qgk5dy4if3gij98738482ys8zwm8yx834za38xxbwry",
+ "fetcher": "github",
+ "repo": "et2010/org-edit-latex",
+ "unstable": {
+ "version": [
+ 20170908,
+ 1522
+ ],
+ "deps": [
+ "auctex"
+ ],
+ "commit": "1f228310ef2f3f2959a527f6d99e42ce977384c8",
+ "sha256": "1zfimgnmn7nqaq8aglyly55k5dr548467masr2g4x3m0z1by1z6b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 3
+ ],
+ "deps": [
+ "auctex"
+ ],
+ "commit": "39cbc9a99acb030f537c7269ab93958187321871",
+ "sha256": "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"
+ }
+ },
+ {
+ "ename": "org-ehtml",
+ "commit": "7f68028b3f4d2455da6d657e90abcab6181db284",
+ "sha256": "0n82fbd7aircqg2c9m138qfv8csrv0amhya3xlwswdkqn51vn3gw",
+ "fetcher": "github",
+ "repo": "eschulte/org-ehtml",
+ "unstable": {
+ "version": [
+ 20150506,
+ 2358
+ ],
+ "deps": [
+ "web-server"
+ ],
+ "commit": "9df85de1a0fe1e7b2d6c000777c1a0c0217f92d0",
+ "sha256": "0kqvwqmwnwg2h7r38fpjg6qlkcj9v8011df8nmsgs1w1mfdvnjsq"
+ }
+ },
+ {
+ "ename": "org-elisp-help",
+ "commit": "b0a9bf5046a4c3be8a83004d506bd258a6f7ff15",
+ "sha256": "0a4wvz52hkcw5nrml3h1yp8w97vg5jw22wnpfbb827zh7iwb259h",
+ "fetcher": "github",
+ "repo": "tarsius/org-elisp-help",
+ "unstable": {
+ "version": [
+ 20161122,
+ 55
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "3e33ab1a2933dd7f2782ef91d667a37f12d633ab",
+ "sha256": "088pbafz1x4z7qi70cjbrvfrcdrjp4zy0yl115klbidshqhxycmj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "3e33ab1a2933dd7f2782ef91d667a37f12d633ab",
+ "sha256": "088pbafz1x4z7qi70cjbrvfrcdrjp4zy0yl115klbidshqhxycmj"
+ }
+ },
+ {
+ "ename": "org-emms",
+ "commit": "4fa5c221790acca40316510fd495951f418c8e15",
+ "sha256": "0g7d2y1dgy2hgiwaxz9crxf3nv8aqzxhyf2jmnmhphdv2s9ipvjw",
+ "fetcher": "gitlab",
+ "repo": "jagrg/org-emms",
+ "unstable": {
+ "version": [
+ 20181010,
+ 1114
+ ],
+ "commit": "07a8917f3d628c32e5de1dbd118ac08203772533",
+ "sha256": "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"
+ }
+ },
+ {
+ "ename": "org-evil",
+ "commit": "17a4772d409aa5dbda5fb84d86c237fd2653c70b",
+ "sha256": "0wvd201k9b9ghg39rwbah6rw8b7hyyd27vvqjynjwbk3v8rp5zyn",
+ "fetcher": "github",
+ "repo": "GuiltyDolphin/org-evil",
+ "unstable": {
+ "version": [
+ 20180620,
+ 1517
+ ],
+ "deps": [
+ "dash",
+ "evil",
+ "monitor",
+ "org"
+ ],
+ "commit": "3b4620edc606412ef75c0b5aa637af22486eb126",
+ "sha256": "0aqya9l9s55h5wd728iz15f53p5xajrfk8pn9gjxnw0i8m4d09sd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "evil",
+ "monitor",
+ "org"
+ ],
+ "commit": "3b4620edc606412ef75c0b5aa637af22486eb126",
+ "sha256": "0aqya9l9s55h5wd728iz15f53p5xajrfk8pn9gjxnw0i8m4d09sd"
+ }
+ },
+ {
+ "ename": "org-fancy-priorities",
+ "commit": "712902ae1cf967ceb2052266ed3244e92998f8a7",
+ "sha256": "13rljgi5fbzlc16cxqj49yg47a5qpyxzj0lswhdyhgzncp1fyq7p",
+ "fetcher": "github",
+ "repo": "harrybournis/org-fancy-priorities",
+ "unstable": {
+ "version": [
+ 20180328,
+ 2331
+ ],
+ "commit": "819bb993b71e7253cefef7047306ab4e0f9d0a86",
+ "sha256": "13cyzlx0415i953prq6ch7r5iy23c1pz116bdxi5yqags4igh4wv"
+ }
+ },
+ {
+ "ename": "org-fragtog",
+ "commit": "b1136eb881139e51588b6110b9f13544b469259a",
+ "sha256": "09zb72l6hsvwi5kgmrihjlagdqbcr6nwj9a4c32hp9xm14rpd75h",
+ "fetcher": "github",
+ "repo": "io12/org-fragtog",
+ "unstable": {
+ "version": [
+ 20200703,
+ 229
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "92119e3ae7c9a0ae2b5c9d9e4801b5fdc4804ad7",
+ "sha256": "0hyhwbfhb7gj3wjv0722gmz637pd3l0k0gnk4z100v3crnk9rfs6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "92119e3ae7c9a0ae2b5c9d9e4801b5fdc4804ad7",
+ "sha256": "0hyhwbfhb7gj3wjv0722gmz637pd3l0k0gnk4z100v3crnk9rfs6"
+ }
+ },
+ {
+ "ename": "org-gcal",
+ "commit": "d97c701819ea8deaa8a9664db1f391200ee52c4f",
+ "sha256": "014h67ba0cwi4i1llngypscyvyrm74ljh067i3iapx5a18q7xw5v",
+ "fetcher": "github",
+ "repo": "kidd/org-gcal.el",
+ "unstable": {
+ "version": [
+ 20200809,
+ 2137
+ ],
+ "deps": [
+ "alert",
+ "persist",
+ "request",
+ "request-deferred"
+ ],
+ "commit": "2cad2d8c175975dea42903cd4e3fd8bec423c01a",
+ "sha256": "013h09gdd7zlcrrvwf2i2ipyazvsjg2hwcfracb9bbv4r5bc0syf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "alert",
+ "cl-lib",
+ "org",
+ "request-deferred"
+ ],
+ "commit": "badd3629e6243563c30ff1dd0452b7601f6cc036",
+ "sha256": "1pxfcyf447h18220izi8qlnwdr8rlwn5kds8gr5i1v90s6hpa498"
+ }
+ },
+ {
+ "ename": "org-generate",
+ "commit": "7bbcd2fe177abe7d823dd5576cce6ba50054e51a",
+ "sha256": "18hlqlzvlgs2gnabsawjxbp9gn6w3b9fgkzg4sp3plxaqayhayas",
+ "fetcher": "github",
+ "repo": "conao3/org-generate.el",
+ "unstable": {
+ "version": [
+ 20200815,
+ 736
+ ],
+ "deps": [
+ "mustache",
+ "org"
+ ],
+ "commit": "98825efb73c4537f05f653ce40e639a220d2ee5d",
+ "sha256": "0p4xc4rznkq0vp0bbm1k69bfbmlp46lap12q75wdpkdrn5k4sr2p"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "mustache",
+ "org"
+ ],
+ "commit": "0c25f12cd25d835428dece427f26df53f1d60ce3",
+ "sha256": "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"
+ }
+ },
+ {
+ "ename": "org-gnome",
+ "commit": "4f7ebd2d2312954d098fe4afd07c3d02b4df475d",
+ "sha256": "0c37gfs6xs0jbvg6ypd4z5ip1khm26wr5lxgmv1dzcc383ynzg0v",
+ "fetcher": "github",
+ "repo": "NicolasPetton/org-gnome.el",
+ "unstable": {
+ "version": [
+ 20150614,
+ 1457
+ ],
+ "deps": [
+ "alert",
+ "gnome-calendar",
+ "telepathy"
+ ],
+ "commit": "122e14cf6f8104150a65246a9a7c10e1d7939862",
+ "sha256": "0jd5zwykc6fkkaj8qhg7wgmrjn47054x242b5s03w8ylyczqbcg3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "alert",
+ "gnome-calendar",
+ "telepathy"
+ ],
+ "commit": "1012d47886cfd30eed25b73d9f18e475e0155f88",
+ "sha256": "0b57ik05iax2h3nrj96kysbk4hxmxlaabd0n6lv1xsayrlli3sj1"
+ }
+ },
+ {
+ "ename": "org-grep",
+ "commit": "5ed0682fb9130a62e628d4e64747bb9c70456681",
+ "sha256": "0kpgizy0zxnlmyh0prwdll62ri2c1l4sb0yrkl7yw17cr4gxmkkz",
+ "fetcher": "github",
+ "repo": "emacsorphanage/org-grep",
+ "unstable": {
+ "version": [
+ 20151202,
+ 1229
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5bdd04c0f53b8a3d656f36ea17bba3df7f0cb684",
+ "sha256": "10jwqzs431mnwz717qdmcn0v8raklw41sbxbnkb36yrgznk8c09c"
+ }
+ },
+ {
+ "ename": "org-gtd",
+ "commit": "26f2af3e31a2ddbf8600cb9a625d138c924d8a53",
+ "sha256": "1k264yb9n544zzf8ivzm16vqrklghrhiqs6jfwyx85675088vp6m",
+ "fetcher": "github",
+ "repo": "trevoke/org-gtd.el",
+ "unstable": {
+ "version": [
+ 20200809,
+ 2319
+ ],
+ "deps": [
+ "f",
+ "org",
+ "org-agenda-property",
+ "org-edna"
+ ],
+ "commit": "6837b4b192c850ae45b042a78b79f4e7cca2d56e",
+ "sha256": "1m3na0xswmndhjmgpqh1m5pj9cy5jp3vjmga74x2igrhk40ba8ly"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "f",
+ "org",
+ "org-agenda-property",
+ "org-edna"
+ ],
+ "commit": "ee10b8cb70d27d01280de8f282d9602f3497b8ab",
+ "sha256": "0j555cfi312j0kkpba91np3vwly26y7hyyyaxr2lcg84jd17frjg"
+ }
+ },
+ {
+ "ename": "org-id-cleanup",
+ "commit": "2d59dfe413397ba07a74b7d344e9f9a73c0e3db0",
+ "sha256": "1jv4ffjd61p3p8qkki798yzky96k53hbnph4xfz77xkc8i2d6rxf",
+ "fetcher": "github",
+ "repo": "marcIhm/org-id-cleanup",
+ "unstable": {
+ "version": [
+ 20200523,
+ 735
+ ],
+ "deps": [
+ "dash",
+ "org"
+ ],
+ "commit": "e79540b64e0ee5ef11adfeb932a9b04beb905680",
+ "sha256": "0qn85515lzhqhn49byf0vpyhbgfwyibf21f7xl2j7cj306x1f79c"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 8
+ ],
+ "deps": [
+ "dash",
+ "org"
+ ],
+ "commit": "05d57840893d9ae8146ed41d29d1f0571c05ded8",
+ "sha256": "1rsw4zgvxp77ncq4z98hcy6qsg6j72glx1y69rwfblg87lz3mj6d"
+ }
+ },
+ {
+ "ename": "org-if",
+ "commit": "09df84b60c46678ad40d8dabc08fcfe518f5ad79",
+ "sha256": "0h0jdyawz2j4mp33w85z8q77l37qid8palvw5n4z379qa0wr5h96",
+ "fetcher": "gitlab",
+ "repo": "elzair/org-if",
+ "unstable": {
+ "version": [
+ 20150920,
+ 1513
+ ],
+ "commit": "fab602cc1bbee7a4e99c0083e129219d3f9ed2e8",
+ "sha256": "1iyqv34b7q2k73srshcnpvfzcadq47w4rzkqp6m1d3ajk8x2vypq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "fab602cc1bbee7a4e99c0083e129219d3f9ed2e8",
+ "sha256": "1iyqv34b7q2k73srshcnpvfzcadq47w4rzkqp6m1d3ajk8x2vypq"
+ }
+ },
+ {
+ "ename": "org-index",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "092q92hwvknwm3v2shp8dm59qdamfivx9z9v23msysy7x2mhg98f",
+ "fetcher": "github",
+ "repo": "marcIhm/org-index",
+ "unstable": {
+ "version": [
+ 20200516,
+ 1343
+ ],
+ "deps": [
+ "dash",
+ "org"
+ ],
+ "commit": "f868df4aa4f49484cf818627251b7c7282d8d20e",
+ "sha256": "14mr03sjjkxix0sphnp7flr6f9z20g5x7ifv3hl2nvmh4794cf6n"
+ },
+ "stable": {
+ "version": [
+ 6,
+ 2,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "org"
+ ],
+ "commit": "f868df4aa4f49484cf818627251b7c7282d8d20e",
+ "sha256": "14mr03sjjkxix0sphnp7flr6f9z20g5x7ifv3hl2nvmh4794cf6n"
+ }
+ },
+ {
+ "ename": "org-iv",
+ "commit": "e7db0c34f0f6fb9c3b9e581a74304cc9a26ed342",
+ "sha256": "1akhabp6mdw1h7zms6ahlfvwizl07fwsizwxpdzi4viggfccsfwx",
+ "fetcher": "github",
+ "repo": "kuangdash/org-iv",
+ "unstable": {
+ "version": [
+ 20171001,
+ 1022
+ ],
+ "deps": [
+ "cl-lib",
+ "impatient-mode",
+ "org"
+ ],
+ "commit": "7f2bb1b32647655fd9d6684f6f09dcc66b61b0cd",
+ "sha256": "0s3fi8sk7jm5vr0fz20fbygm4alhpirv0j20jfi1pab14yhhf34h"
+ }
+ },
+ {
+ "ename": "org-jira",
+ "commit": "e0a2fae6eecb6b4b36fe97ad99691e2c5456586f",
+ "sha256": "1sbypbz00ki222zpm47yplyprx7h2q076b3l07qfilk0sr8kf4ql",
+ "fetcher": "github",
+ "repo": "ahungry/org-jira",
+ "unstable": {
+ "version": [
+ 20200714,
+ 41
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "request"
+ ],
+ "commit": "5c90dce918fcb873754bff375e988b17dcc69701",
+ "sha256": "1d38szx1vq4k1pfdisr3czwaasfw7jkwa2vswfcrnk3d65akkgzk"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "request",
+ "s"
+ ],
+ "commit": "3a6c9fd6886f9dbd11b055fb3bf54513fa278940",
+ "sha256": "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"
+ }
+ },
+ {
+ "ename": "org-journal",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1npzqxn1ssigq7k1nrxz3xymxaazby0ddgxq6lgw2a1zjmjm4h2b",
+ "fetcher": "github",
+ "repo": "bastibe/org-journal",
+ "unstable": {
+ "version": [
+ 20200815,
+ 1335
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "a2728e25b854af21cea8e8d313714c993eb1c848",
+ "sha256": "1rvlrn0jlw6a3p48zg50vw4nll2cffk9nkng0qvh8ws0a161w2j1"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "f7bfc592ec11e9e5d0b0bfa377961167b68bba72",
+ "sha256": "1imrfvzc52l976598df2243s4jdwicznnxs3q91m5vrjsk23zfp2"
+ }
+ },
+ {
+ "ename": "org-journal-list",
+ "commit": "7c0186e507b6b309a35abb076988da740cee8f84",
+ "sha256": "1aw6pf747n3z00xg8viakckm0bb6m9hnrkxphhhsfvqqgwfpzkb9",
+ "fetcher": "github",
+ "repo": "huytd/org-journal-list",
+ "unstable": {
+ "version": [
+ 20190221,
+ 2052
+ ],
+ "commit": "2b26d00181bb49bff64b31ad020490acd1b6ae02",
+ "sha256": "0bcj9b7c4pyyvxlgnysl5lhs9ndp60xwizd85zrkd2mh2m8sbq9v"
+ }
+ },
+ {
+ "ename": "org-kanban",
+ "commit": "a9f3a10c126fa43a6fa60ee7f8e50c7a9661dbc1",
+ "sha256": "1flgqa2pwzw6b2zm3j09i9bvz1i8k03mbwj6l75yrk29lh4njq41",
+ "fetcher": "github",
+ "repo": "gizmomogwai/org-kanban",
+ "unstable": {
+ "version": [
+ 20200729,
+ 2120
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s"
+ ],
+ "commit": "70b4c9823b32ae299f3da521966b6c5abacf73e2",
+ "sha256": "159g13m1zpc1b2ggs9iw2l51pj0h433y1x00bgznhc9fvamysasd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s"
+ ],
+ "commit": "fbb27c3983ad735a333c766815642a6615cea2ed",
+ "sha256": "0xclk323hq4lszqmvba4v8785v57bxfxln5n1hy0vaf0f45hfkjw"
+ }
+ },
+ {
+ "ename": "org-kindle",
+ "commit": "29d08205620d51d4d76e3a4a6124884b5a6b9db7",
+ "sha256": "17sxvyh3z5pn2353iz2v6xjxp98yxwd4n7wkqsa9nwihsw5mmrrw",
+ "fetcher": "github",
+ "repo": "stardiviner/org-kindle",
+ "unstable": {
+ "version": [
+ 20190315,
+ 439
+ ],
+ "deps": [
+ "cl-lib",
+ "seq"
+ ],
+ "commit": "612a2894bbbff8a6cf54709d591fee86005755de",
+ "sha256": "1h3pbjiy5v8lp3p6dry4jk3pvdp7hpkc517d3w9ldhz6nmaiccgg"
+ }
+ },
+ {
+ "ename": "org-link-travis",
+ "commit": "52c7f9539630e5ac7748fe36fd27c3486649ab74",
+ "sha256": "0hj4x7cw7a3ry8xislkz9bnavy77z4cpmnvns02yi3gnib53mlfs",
+ "fetcher": "github",
+ "repo": "aki2o/org-link-travis",
+ "unstable": {
+ "version": [
+ 20140405,
+ 2327
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "596615ad8373d9090bd4138da683524f0ad0bda5",
+ "sha256": "1797pd264zn19zk93nifyw6pwk2a7wrpfir373qclk601yv2g5h8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "596615ad8373d9090bd4138da683524f0ad0bda5",
+ "sha256": "1797pd264zn19zk93nifyw6pwk2a7wrpfir373qclk601yv2g5h8"
+ }
+ },
+ {
+ "ename": "org-linkotron",
+ "commit": "6105d5302a5fdec261f30168f811fa1e277bcb21",
+ "sha256": "10smvy4h178cqrn0d6kj86mqjnj23np1a2z9q8hp0n1dxyisjfhg",
+ "fetcher": "gitlab",
+ "repo": "perweij/org-linkotron",
+ "unstable": {
+ "version": [
+ 20200112,
+ 2235
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "d0adc5247b205bc73d2f1a83d4a512d2be541eb5",
+ "sha256": "1w80kwh17b4svw0md7is8ajc732cbkknychsqcp1ia42qxqq4y8r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 3
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "d0adc5247b205bc73d2f1a83d4a512d2be541eb5",
+ "sha256": "1w80kwh17b4svw0md7is8ajc732cbkknychsqcp1ia42qxqq4y8r"
+ }
+ },
+ {
+ "ename": "org-listcruncher",
+ "commit": "5bed5078a3e56a825be61d158ca8321763b92f7c",
+ "sha256": "05vi7a03gj1waaqcjnkgpij4r45r2087xg7kgfs6ki8zhsyws23q",
+ "fetcher": "github",
+ "repo": "dfeich/org-listcruncher",
+ "unstable": {
+ "version": [
+ 20180815,
+ 603
+ ],
+ "deps": [
+ "cl-lib",
+ "seq"
+ ],
+ "commit": "65c09c5deba065752eb88875c54dc26abcdfaffb",
+ "sha256": "11chlfvil0wbvzaplzdymn4ajz85956hcs8bh3zds6ij806mqa4y"
+ }
+ },
+ {
+ "ename": "org-lookup-dnd",
+ "commit": "77a8cd0ff954ab87fa57cc6544146b5937779a3b",
+ "sha256": "06g2w75nyk354fpg8b8w1v4xzsiwx3sglwxk3azrn2g4sdlammmz",
+ "fetcher": "gitlab",
+ "repo": "maltelau/org-lookup-dnd",
+ "unstable": {
+ "version": [
+ 20190622,
+ 2224
+ ],
+ "deps": [
+ "org-pdfview"
+ ],
+ "commit": "bba86a9b9979bd79e9bfaf4a7b472682b9435490",
+ "sha256": "1ndd1iw207jnv0mib2r6mxldba4c4nna69wdvj8mzynn6ldxg5bk"
+ }
+ },
+ {
+ "ename": "org-make-toc",
+ "commit": "df87749128bcfd27ca93a65084a2e88cd9ed5c3f",
+ "sha256": "0xaw3d1axvln4pr7p0jnqf0j6fd1g6cra1gykvf6y12zx02xkchh",
+ "fetcher": "github",
+ "repo": "alphapapa/org-make-toc",
+ "unstable": {
+ "version": [
+ 20200409,
+ 1436
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s"
+ ],
+ "commit": "26fbd6a7e1e7f8e473fe3a5f74faec715c3a05aa",
+ "sha256": "08gkzl0cbgkyg31sxafqmq6v1hjgr2q62vnvncrdnhs3ly54inf8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s"
+ ],
+ "commit": "43d4a2490a048b01ca5a6f44c5b4f24a458dfc95",
+ "sha256": "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"
+ }
+ },
+ {
+ "ename": "org-mime",
+ "commit": "521678fa13884dae69c2b4b7a2af718b2eea4b28",
+ "sha256": "14154pajl2bbawdd8iqfwgc67pcjp2lxl6f92c62nwq12wkcnny6",
+ "fetcher": "github",
+ "repo": "org-mime/org-mime",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1100
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9bb6351b25c62835c7881fc64096028eb8ef83ef",
+ "sha256": "1h9dv1rw42c4yhdxp2cnxpyv49aklxgljhbw1adl4p7sp4zgrqbd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "484bf3b0b8af461805b9e30d175510c031bcfbc3",
+ "sha256": "1shp3xfjifvwcj67mvfiv0dwpwyz846s6xa5zs269fwbvdvmx65q"
+ }
+ },
+ {
+ "ename": "org-mind-map",
+ "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+ "sha256": "0qgh74dzvpkij8xzdgwyd70wnfmjhjbmvqyw0zgkabw7s059yysk",
+ "fetcher": "github",
+ "repo": "the-humanities/org-mind-map",
+ "unstable": {
+ "version": [
+ 20180826,
+ 2340
+ ],
+ "deps": [
+ "dash",
+ "org"
+ ],
+ "commit": "95347b2f9291f5c5eb6ebac8e726c03634c61de3",
+ "sha256": "0mkmh1ascxhfgbqdzcr6d60k4ldnh3l8dylw4m7wglz15hm3ixbm"
+ }
+ },
+ {
+ "ename": "org-ml",
+ "commit": "95cc2843698e2341697a223a463c4d51348aec5e",
+ "sha256": "013rlpq5in8mq02pnlpsl0mbgflv6bwx2cr18j0jcyd4sd1r1srz",
+ "fetcher": "github",
+ "repo": "ndwarshuis/org-ml",
+ "unstable": {
+ "version": [
+ 20200806,
+ 2244
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "e3df332fac6dea0810db0286ef154e917c971c49",
+ "sha256": "1pdl13hmvyznvk1k1096pid628rmhfif09bhryla7xjqkczpv25g"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "c36f8a7f6b15dddcfa9e270a86d48a5e5f2beea3",
+ "sha256": "0vv8rk1mn7vhwz5riadg1fdjx5nmvm8h578yb9b85a100nq7av2w"
+ }
+ },
+ {
+ "ename": "org-mobile-sync",
+ "commit": "f0a8eb0eefe88b4ea683a4743c0f8393506e014b",
+ "sha256": "152mswykbz3m9w1grpsvb6wi9rg1vf3clnrl8qy6v911c0hy1s9c",
+ "fetcher": "git",
+ "url": "https://framagit.org/steckerhalter/org-mobile-sync.git",
+ "unstable": {
+ "version": [
+ 20180606,
+ 524
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "06764b943a528827df1e2acc6bc7806cc2c1351f",
+ "sha256": "0qdgs965ppihsz2ihyykdinr4n7nbb89d384z7kn985b17263lvn"
+ }
+ },
+ {
+ "ename": "org-mru-clock",
+ "commit": "b36bf1c1faa4d7e38254416a293e56af96214136",
+ "sha256": "1arww5x6vdyyn1bwxry91w88phbr9l6nk8xxrw40iqmmbhggahgm",
+ "fetcher": "github",
+ "repo": "unhammer/org-mru-clock",
+ "unstable": {
+ "version": [
+ 20200128,
+ 1208
+ ],
+ "commit": "4fb77d9bb876e368e596d18324115cef6c1c71f3",
+ "sha256": "02js518d8h2qp8dxmw479gw61bdj3019j183hz6x1nn49ljx000k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "commit": "50bf0ec93b3c60eaed7272149bd317bba69a5b6f",
+ "sha256": "1ydq2y1zibh9mzfpw598nsci6aw4nsnsjc7wv8xjma7pwkzz8wfd"
+ }
+ },
+ {
+ "ename": "org-msg",
+ "commit": "6aec5f72baa870fe57df0fd366696329651a221f",
+ "sha256": "0pznyvjks4ga204nv9v1rn7y7ixki437gknp2h854kpf6pdlb2jy",
+ "fetcher": "github",
+ "repo": "jeremy-compostella/org-msg",
+ "unstable": {
+ "version": [
+ 20200722,
+ 2238
+ ],
+ "deps": [
+ "htmlize"
+ ],
+ "commit": "2db6725c4a4f4342a9c61895b7c3c82795b01fee",
+ "sha256": "0ijll4fbm0231zig9ia3bpm2padjyj9w0c89nv5aqpilx2fk84v8"
+ }
+ },
+ {
+ "ename": "org-multi-wiki",
+ "commit": "8138002578ef14e30561cac159e9a66406a4201a",
+ "sha256": "0wbybr9vf4hcwyi9rab8sm1xwxqmy7mbjv1jmm78j51kjh0cpgkj",
+ "fetcher": "github",
+ "repo": "akirak/org-multi-wiki",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1055
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "org-ql",
+ "s"
+ ],
+ "commit": "2541e1b0798a1c9d4b4b8778e6c97a579ac3fa14",
+ "sha256": "1mcpbq1qylkxpd6nzq04jrji6p1xll5a30dc7dpxpcjrkgvbzf39"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "org-ql",
+ "s"
+ ],
+ "commit": "80791ea872939df0578dc3a2992a2f7fd5618971",
+ "sha256": "0avg5xwnb3c9ylj9dqdcqmh8kykl98jsr6cl3rrivkj7l47i1rl0"
+ }
+ },
+ {
+ "ename": "org-multiple-keymap",
+ "commit": "c52a1ea0afa8e5f439b7ac987b79c49eb08fe95a",
+ "sha256": "104vcwawrzl99nfj3afq1mh83yirhscwfa1xw7z84ikrf6m0xir7",
+ "fetcher": "github",
+ "repo": "emacsattic/org-multiple-keymap",
+ "unstable": {
+ "version": [
+ 20191017,
+ 1920
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "4eb8aa0aada012b2346cc7f0c55e07783141a2c3",
+ "sha256": "0ivgvwrakgr527lylz9si1z3ip3n7bx02pj1acw8ab8swp1cxmy3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "20eb3be6be9f0abbad9f0d007e40cb00c8109201",
+ "sha256": "0yxfhzygiki8sha1dddac4g72r51yi4jnga2scmk51f9jgwqbihp"
+ }
+ },
+ {
+ "ename": "org-notebook",
+ "commit": "04149b1f158e857ea824fe120372ac52a000adcf",
+ "sha256": "045xqmrik1s83chl7l7fnlav2p76xrfj21kacpjj215saz1f8nld",
+ "fetcher": "github",
+ "repo": "Rahi374/org-notebook",
+ "unstable": {
+ "version": [
+ 20170322,
+ 452
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "86042d866bf441e2c9bb51f995e5994141b78517",
+ "sha256": "0znxn6zzc9645m3wmkryf4xwjskf7gwylrg6z2kmr1wpjlpfwb01"
+ }
+ },
+ {
+ "ename": "org-noter",
+ "commit": "4a2bc0d95dc2744277d6acbba1f7483b4c14d75c",
+ "sha256": "0vsc2b1yz9lw0zv1vnm722pl35kxpwhcdi7h6mijhnw8vv7rhixf",
+ "fetcher": "github",
+ "repo": "weirdNox/org-noter",
+ "unstable": {
+ "version": [
+ 20191020,
+ 1212
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "9ead81d42dd4dd5074782d239b2efddf9b8b7b3d",
+ "sha256": "1ysz8v2yakchs4va5niaf5rnydwrmz721hbaa2l63wjw0nsmi7l3"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "32900872c82195e757ec6249a329490a0ca2199e",
+ "sha256": "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"
+ }
+ },
+ {
+ "ename": "org-noter-pdftools",
+ "commit": "caa6bf82ea660f8e1d68e45cc99c6f6427cf1327",
+ "sha256": "0k11njy2l8pxwpmxspy6qwvp1041p99xp9ha6pjxp3m3f7rik32h",
+ "fetcher": "github",
+ "repo": "fuxialexander/org-pdftools",
+ "unstable": {
+ "version": [
+ 20200418,
+ 929
+ ],
+ "deps": [
+ "org",
+ "org-noter",
+ "org-pdftools",
+ "pdf-tools"
+ ],
+ "commit": "8cc15bb8014ed1f047eecc0abd8bf447f86c0505",
+ "sha256": "173118fplpz575dcbncrjjpid2ni0acsi9130r210vl6hal7yz08"
+ }
+ },
+ {
+ "ename": "org-octopress",
+ "commit": "fba6c3c645ba903f636814b5a2bb1baca0b5283b",
+ "sha256": "0r6ms9j4xxsrik4206g7gz4wz41wr4ylpal6yfqs4hhz88yhxrhw",
+ "fetcher": "github",
+ "repo": "yoshinari-nomura/org-octopress",
+ "unstable": {
+ "version": [
+ 20170821,
+ 415
+ ],
+ "deps": [
+ "ctable",
+ "org",
+ "orglue"
+ ],
+ "commit": "38598ef98d04076a8eb78d549907ddfde8d3a652",
+ "sha256": "0bmj5wkwidj1v3b8ipligr0nkfdaxm82717nz8fqidz967q4xbk6"
+ }
+ },
+ {
+ "ename": "org-onenote",
+ "commit": "7705ee9a8733733664b6214bf4eec15d640c6895",
+ "sha256": "0qgmizzryb6747yd80d3nic3546f4h8vjd6c30jr99vv2ildjsfk",
+ "fetcher": "github",
+ "repo": "ifree/org-onenote",
+ "unstable": {
+ "version": [
+ 20171008,
+ 500
+ ],
+ "deps": [
+ "oauth2",
+ "org",
+ "request"
+ ],
+ "commit": "5ce5cf4edb143180e0b185ac26826d39ae5bc929",
+ "sha256": "1jlnnb04ichcl155lklvjw91l8j1dvg77bv1815chak226aq4xqj"
+ }
+ },
+ {
+ "ename": "org-outline-numbering",
+ "commit": "6dbd71c2176c1160e8418631d69f4bcba75845fd",
+ "sha256": "131cpvfsiv92bbicq5n7dlr6k643sk7xw31xs0lwmw4pxq44m8sg",
+ "fetcher": "gitlab",
+ "repo": "andersjohansson/org-outline-numbering",
+ "unstable": {
+ "version": [
+ 20180705,
+ 1501
+ ],
+ "deps": [
+ "cl-lib",
+ "org",
+ "ov"
+ ],
+ "commit": "22014917dd7e751c46fa13e1e836c2d0265ce82f",
+ "sha256": "0gjvd7xd9kl06cgdyya2qbl7r4a9y4zfq1ci0109w5axs3zjin1m"
+ }
+ },
+ {
+ "ename": "org-outlook",
+ "commit": "804a4b6802d2cf53e5415d956f0b4772853f4c69",
+ "sha256": "0cn8h6yy67jr5h1yxsfqmr8q7ii4f99pgghfp821m01pj55qyjx9",
+ "fetcher": "github",
+ "repo": "mattfidler/org-outlook.el",
+ "unstable": {
+ "version": [
+ 20160705,
+ 1338
+ ],
+ "commit": "ec32d8d9d8ffd17e6de4de0b52fc3f5ad9b4cc0d",
+ "sha256": "1la7g9qzn8wbfzc2zd6gddi1zl145b35311l66sjyffidmhgfw8d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 11
+ ],
+ "commit": "070c37d017ccb71d94c3c69c99632fa6570ec2cc",
+ "sha256": "15fy6xpz6mk4j3nkrhiqal2dp77rhxmk8a7xiw037xr1jgq9sd9a"
+ }
+ },
+ {
+ "ename": "org-page",
+ "commit": "97287dd40d3ebd80c9804589e93626faad88fb91",
+ "sha256": "0680fbcq0vv1w4kyk99crrcx5rhm8qpz7bgaab2gxndw1za7nxfm",
+ "fetcher": "github",
+ "repo": "sillykelvin/org-page",
+ "unstable": {
+ "version": [
+ 20170807,
+ 224
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "git",
+ "ht",
+ "htmlize",
+ "mustache",
+ "org",
+ "simple-httpd"
+ ],
+ "commit": "d0e55416174a60d3305e97ca193b333f4cccba4f",
+ "sha256": "0l1jkap8wjprsaglys5hy5ijhaxfv8bzry9axqcfg6xr0bmbyhm7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 41
+ ],
+ "deps": [
+ "ht",
+ "htmlize",
+ "mustache",
+ "org"
+ ],
+ "commit": "09febf89d8dcb226aeedf8164169b31937b64439",
+ "sha256": "0zc20m63a1iz9aziid5jsvcbl86k9dg9js4k3almchh55az4a0i3"
+ }
+ },
+ {
+ "ename": "org-parser",
+ "commit": "d3828ad7599d13728b5571b882344c3ada434b85",
+ "sha256": "1galc2w2n2qnwxknym4wid1ldinf8fyf8vvh4ihnckcbh081nrhb",
+ "fetcher": "hg",
+ "url": "https://hg.sr.ht/~zck/org-parser",
+ "unstable": {
+ "version": [
+ 20200417,
+ 301
+ ],
+ "deps": [
+ "dash",
+ "ht"
+ ],
+ "commit": "fd4cb7035ff649378cc968b1ec2c386b5c565706",
+ "sha256": "1hnd4zhhwrd6gr1skvc64a3z9k3nmhwgcyy1cp2jfyhk0iwsrqfm"
+ }
+ },
+ {
+ "ename": "org-password-manager",
+ "commit": "fba84d698f7d16ffc0dc16618efcd1cdc0b39d79",
+ "sha256": "0wxvl6ypgn6ky1z3dh33ya3rh73znkh5f8qhqwfmwp7hy2mbl4la",
+ "fetcher": "git",
+ "url": "https://github.com/leafac/org-password-manager",
+ "unstable": {
+ "version": [
+ 20180227,
+ 1810
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s"
+ ],
+ "commit": "4b30a36e71182553a02e4dd415369290d98ec03a",
+ "sha256": "1a6i3g032c5xzsnaf7rprn22kk68y1ay3w21p3q52p3lvlzhnfis"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "org",
+ "s"
+ ],
+ "commit": "d3a33ddfe583180bdb76cfb8bbd772e0078b24a3",
+ "sha256": "0pqmnhd3qdg06agj6h8v8lm4m5q8px0qmd7a1bfn6i5g2bq9zrck"
+ }
+ },
+ {
+ "ename": "org-pdftools",
+ "commit": "d52346a042a72b76729d259c7f12f45d38ac27cd",
+ "sha256": "1pgfx0zgdp9kg8mxqxm5qac7vnd0j1ghfwq04rvqi9r1d51zpynl",
+ "fetcher": "github",
+ "repo": "fuxialexander/org-pdftools",
+ "unstable": {
+ "version": [
+ 20200422,
+ 1350
+ ],
+ "deps": [
+ "org",
+ "org-noter",
+ "pdf-tools"
+ ],
+ "commit": "8cc15bb8014ed1f047eecc0abd8bf447f86c0505",
+ "sha256": "173118fplpz575dcbncrjjpid2ni0acsi9130r210vl6hal7yz08"
+ }
+ },
+ {
+ "ename": "org-picklink",
+ "commit": "c6c44a3e5a1c5e4acdf76c4d6f2f4b695aa6938e",
+ "sha256": "0gr4psgps9775hh0pvcyq3x2irrzkzpm5ghcnc9ddp5hn41yv57m",
+ "fetcher": "github",
+ "repo": "tumashu/org-picklink",
+ "unstable": {
+ "version": [
+ 20191203,
+ 59
+ ],
+ "commit": "f79040ed988bdeec63b098b187e00f2b80d3d570",
+ "sha256": "0a0dzg8w617sn079mshihfv5sm74xphab81kmvi1dqcc5iyi15kh"
+ }
+ },
+ {
+ "ename": "org-pivotal",
+ "commit": "c1257d38bbd3a9944135b000e962f30ab28f5464",
+ "sha256": "1gv4968akh2wx92d7q1i1mpl9ndygkq8ssdwg6cf19wp8mk18088",
+ "fetcher": "github",
+ "repo": "org-pivotal/org-pivotal",
+ "unstable": {
+ "version": [
+ 20200607,
+ 1505
+ ],
+ "deps": [
+ "a",
+ "dash",
+ "dash-functional",
+ "request"
+ ],
+ "commit": "125e70f9a682751e4ed7c3a350b2794af9600f47",
+ "sha256": "1w91wb6l3vsri015awig1kfs986zf49466x4ni0m24hcg00n2m7n"
+ }
+ },
+ {
+ "ename": "org-pomodoro",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "0pcf8a57fgf6f2pwlnrxc3kwm96lc2ji934y4ck8cm5rwwh05lk7",
+ "fetcher": "github",
+ "repo": "marcinkoziej/org-pomodoro",
+ "unstable": {
+ "version": [
+ 20190530,
+ 1445
+ ],
+ "deps": [
+ "alert",
+ "cl-lib"
+ ],
+ "commit": "aa07c11318f91219336197e62c47bc7a3d090479",
+ "sha256": "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "deps": [
+ "alert",
+ "cl-lib"
+ ],
+ "commit": "a6d867865f1a033fb5a09cca6643045d7ebac49c",
+ "sha256": "0r5shgikm34d66i2hblyknbblpg92lb2zc9x4bcb28xkh7m9d0xv"
+ }
+ },
+ {
+ "ename": "org-present",
+ "commit": "aba18f15fbaab115456e6afc9433074558a379f5",
+ "sha256": "09h0cjqjwhqychyrdv1hmiyak677vgf1b94392sdsq3ns70zyjk7",
+ "fetcher": "github",
+ "repo": "rlister/org-present",
+ "unstable": {
+ "version": [
+ 20200204,
+ 1647
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "9709ca2d04a59959354222ac4d3f8b750785739a",
+ "sha256": "08f8gh2zg4gr4d5ajlcnlj2lsp8nywni4mhw4w4nfa4dwyq7mxgv"
+ }
+ },
+ {
+ "ename": "org-present-remote",
+ "commit": "66b092084565634cac8dd07b7b1694d0ddb236ba",
+ "sha256": "06xxxa8hxfxx47bs6wxi8nbgqc8nm82c3h0yv1ddlm35qfscggks",
+ "fetcher": "gitlab",
+ "repo": "duncan-bayne/org-present-remote",
+ "unstable": {
+ "version": [
+ 20191206,
+ 533
+ ],
+ "deps": [
+ "elnode",
+ "org-present"
+ ],
+ "commit": "ba7e07af3bd1142e310e868893b919286758a007",
+ "sha256": "1vzipij1wy3g1lh13igbmf16p16llgnm90ydjrr6mlb35d141i20"
+ }
+ },
+ {
+ "ename": "org-pretty-tags",
+ "commit": "9ad60399420764d4ef5d6acddae9241205937e78",
+ "sha256": "19cxfjl6c0yhsc7kfjd6imckcvzdsaws3yd1s3nazhnkm3kan3h4",
+ "fetcher": "gitlab",
+ "repo": "marcowahl/org-pretty-tags",
+ "unstable": {
+ "version": [
+ 20200303,
+ 2201
+ ],
+ "commit": "40fd72f3e701e31813f383fb429d30bb88cee769",
+ "sha256": "0d80cbkdq1d8cqc5nv732gzw4k6m2dpjjix3ycfyf27m4wkbwhmc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "commit": "549fa6969660dcf0cf9bca5b7341d0cb48ec3b77",
+ "sha256": "12s74if74vw8q5awgrk0d1244ysfgb9kw3dxhypsccsbf413jmii"
+ }
+ },
+ {
+ "ename": "org-preview-html",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1dnr046mk5ngmic2yqcmrnn7pzrrx3sg22rk2pc3vgdxs8bhvhf9",
+ "fetcher": "github",
+ "repo": "lujun9972/org-preview-html",
+ "unstable": {
+ "version": [
+ 20180625,
+ 619
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "8ba7ecd7ac624f33b3e2395f477bbff4f1ec4efe",
+ "sha256": "1h46v0ckhfzv3fixcfxk7pkmh56c5lana8kpwiknm447q1wmlbx4"
+ }
+ },
+ {
+ "ename": "org-projectile",
+ "commit": "9d7a7ab98f364d3d5e93f83f0cb3d80a95f28689",
+ "sha256": "0xdkd5pkyi6yfqi4przgp5mpklyxfxv0cww285zdlh00rzl935cw",
+ "fetcher": "github",
+ "repo": "IvanMalison/org-projectile",
+ "unstable": {
+ "version": [
+ 20190130,
+ 1439
+ ],
+ "deps": [
+ "dash",
+ "org-category-capture",
+ "projectile",
+ "s"
+ ],
+ "commit": "96a57a43555e24e5e0d81e79f0fbb47001c41bac",
+ "sha256": "05h9scvnd9ggfwbbl1m124k6sdn5kp9mv2695cril2m4dkr1kyqz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "org-category-capture",
+ "projectile",
+ "s"
+ ],
+ "commit": "48f621b595e748c5e03431f237facf258ffc9443",
+ "sha256": "00n2msmwcjjiibrhrvpawzgz6qcjjfy9qnii1iaass0038g4bd89"
+ }
+ },
+ {
+ "ename": "org-projectile-helm",
+ "commit": "6760daac1ef9d9d7ba07e2fc9668873020f901f1",
+ "sha256": "0x79j5yr9wsgzjf1dpp7d4xiji8hgyhr79vb973an5z2r02vnaf4",
+ "fetcher": "github",
+ "repo": "IvanMalison/org-projectile",
+ "unstable": {
+ "version": [
+ 20180601,
+ 1822
+ ],
+ "deps": [
+ "helm",
+ "org-projectile"
+ ],
+ "commit": "96a57a43555e24e5e0d81e79f0fbb47001c41bac",
+ "sha256": "05h9scvnd9ggfwbbl1m124k6sdn5kp9mv2695cril2m4dkr1kyqz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "helm",
+ "org-projectile"
+ ],
+ "commit": "48f621b595e748c5e03431f237facf258ffc9443",
+ "sha256": "00n2msmwcjjiibrhrvpawzgz6qcjjfy9qnii1iaass0038g4bd89"
+ }
+ },
+ {
+ "ename": "org-protocol-jekyll",
+ "commit": "6d1ee7c75da91fcf303ea89d148a05ac1e58e23e",
+ "sha256": "18wg489n2d1sx9jk00ki6p2rxkqz67kqwnmy2kb1ga1rmb6x9wfs",
+ "fetcher": "github",
+ "repo": "vonavi/org-protocol-jekyll",
+ "unstable": {
+ "version": [
+ 20170328,
+ 1639
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "dec064a42d6dfe81dfde7ba59ece5ca103ac6334",
+ "sha256": "1pgc0lfbz6q2x8b5qkk766i5qylql4p0ng732rcqr7rzg6j31gm7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "c1ac46793eb9bf22b1a601e841947428be5c9766",
+ "sha256": "1cxjzj955rvp0ijbp7ifpmkxdhimz8hqjw5c9gv6zwjqb5iih9ry"
+ }
+ },
+ {
+ "ename": "org-ql",
+ "commit": "4de0a516e002ad0f7475d35258dc4e2d4350696a",
+ "sha256": "19mb7yjffi6m4xa70w3dz4kcg8j3vvwkxmvhiid75sslb8jsss3w",
+ "fetcher": "github",
+ "repo": "alphapapa/org-ql",
+ "unstable": {
+ "version": [
+ 20200713,
+ 309
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "map",
+ "org",
+ "org-super-agenda",
+ "ov",
+ "peg",
+ "s",
+ "transient",
+ "ts"
+ ],
+ "commit": "6633dbb276d51767c3f401d0f68ef99e7b9364b6",
+ "sha256": "0rqhdf9g6n14v1ixwnb3d6jl85zxlarg28fz0jpzzikj4spiy772"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 6
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "f",
+ "org",
+ "org-super-agenda",
+ "ov",
+ "peg",
+ "s",
+ "ts"
+ ],
+ "commit": "00800556907408ee11a23de3a4982061d08d3b85",
+ "sha256": "08xax4fp9rzi8iimkyw2gvp2rd0lgb2f83qrhhnhnc1kgpkdl6y1"
+ }
+ },
+ {
+ "ename": "org-radiobutton",
+ "commit": "105043d8cfcb62ed89ddf9870f615519e6f415e7",
+ "sha256": "16ly42iyfh7d34yz4bvdpj3zrlwkw3kmh82gwr25a05mlsdc1d93",
+ "fetcher": "github",
+ "repo": "Fuco1/org-radiobutton",
+ "unstable": {
+ "version": [
+ 20180612,
+ 1028
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "4182aafbe5ae1bdfb0b07efa435bdba8bbd7199d",
+ "sha256": "0jm5ijs4pjzvlzpqk3k9qqcvaza2lmz2c0fcxf1g357v643bmaj4"
+ }
+ },
+ {
+ "ename": "org-random-todo",
+ "commit": "80fad6244ea3e5bdf7f448c9f62374fae45bae78",
+ "sha256": "0yflppdbkfn2phd21zkjdlidzasfm846mzniay83v3akz0qx31lr",
+ "fetcher": "github",
+ "repo": "unhammer/org-random-todo",
+ "unstable": {
+ "version": [
+ 20190214,
+ 2057
+ ],
+ "deps": [
+ "alert"
+ ],
+ "commit": "a019c7186ec60c8c7c3657914cdce029811cf4e0",
+ "sha256": "0jyd7cbri0bmi0qzwm7d4fxdfa1224bg6izd63pqqg1x7s67x99z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 3
+ ],
+ "deps": [
+ "alert"
+ ],
+ "commit": "09228e55f1cc702053d305fdea2b094b548e6dbe",
+ "sha256": "0msgsbz39zc9zqgy1s5kmgcqggamnxr98j6bghyqpkxc96zyvp73"
+ }
+ },
+ {
+ "ename": "org-randomnote",
+ "commit": "d92cb392b23701948176ba12516df5ae6608e950",
+ "sha256": "06i42ig7icap1i1mqzv5cqwhnmsrzpjmjbjjn49nv26ljr3mjw0b",
+ "fetcher": "github",
+ "repo": "mwfogleman/org-randomnote",
+ "unstable": {
+ "version": [
+ 20200110,
+ 1407
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "org"
+ ],
+ "commit": "ea8cf4385970637efffff8f79e14576ba6d7ad13",
+ "sha256": "0q6xfwf35dy13hif3qrkqyhlwpmpcfsaw3lfwgv0dhi0g7h5bpry"
+ }
+ },
+ {
+ "ename": "org-re-reveal",
+ "commit": "c3e6c90a6b9004fbf0fbc08556f8effbcde8b468",
+ "sha256": "05p8iml0fapi4yf7ky45kf7m0ksz917lxg7c4pdd9hjkjmz29xn9",
+ "fetcher": "gitlab",
+ "repo": "oer/org-re-reveal",
+ "unstable": {
+ "version": [
+ 20200813,
+ 1104
+ ],
+ "deps": [
+ "htmlize",
+ "org"
+ ],
+ "commit": "7fe39d5d03ccc75d2811445d25cbbb473b53de76",
+ "sha256": "1cmvqr97vx22lw510z0k2nsy5xfgnz2lvchmx5sdxrqz54pz1wfq"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 0
+ ],
+ "deps": [
+ "htmlize",
+ "org"
+ ],
+ "commit": "7fe39d5d03ccc75d2811445d25cbbb473b53de76",
+ "sha256": "1cmvqr97vx22lw510z0k2nsy5xfgnz2lvchmx5sdxrqz54pz1wfq"
+ }
+ },
+ {
+ "ename": "org-re-reveal-ref",
+ "commit": "391ef29288507aa2b0ad5d568419b66e5a883b2f",
+ "sha256": "0dd5b4g8ih98ma25jwlvdwgfadc75qcxr9zm74x5r6pr87amcb7n",
+ "fetcher": "gitlab",
+ "repo": "oer/org-re-reveal-ref",
+ "unstable": {
+ "version": [
+ 20200624,
+ 615
+ ],
+ "deps": [
+ "org-re-reveal",
+ "org-ref"
+ ],
+ "commit": "d60e7b000e863c60485f866f14f552506317f5b4",
+ "sha256": "03p3fhrllrx42dzx4v2lc4w6bpw5wxgncd8mivg3lqhkm8sb5qwj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "org-re-reveal",
+ "org-ref"
+ ],
+ "commit": "abcd622e4edaa5e4480bcd1e7e4953f67c90e036",
+ "sha256": "08ia6gn0x0yydl28dhghifyxz0mrn0asllqg4s449gaz729cxqkd"
+ }
+ },
+ {
+ "ename": "org-recent-headings",
+ "commit": "668b79c179cbdb77c4049e7c620433255f63d808",
+ "sha256": "0b51pyxdk8fdbksx7h1c88sw1liwng8wkjfb1q7w7lglw6f8sjsa",
+ "fetcher": "github",
+ "repo": "alphapapa/org-recent-headings",
+ "unstable": {
+ "version": [
+ 20200228,
+ 215
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "frecency",
+ "org",
+ "s"
+ ],
+ "commit": "bb9c96bea63a0ce8c0d18e8b8b4b24085d4c9d89",
+ "sha256": "15fa794drfz9vh9jms4ivayys3kf50nry8x06i8v76kn716klv49"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "frecency",
+ "org"
+ ],
+ "commit": "01633b51ac3958b41cc6c79e6d3714047a91c1e9",
+ "sha256": "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"
+ }
+ },
+ {
+ "ename": "org-recur",
+ "commit": "cbdf8c9a3c7c289ce13542a12769a7f3d7f53d72",
+ "sha256": "0qlpwia2dg4l00jahc3si0mi27gv6zlvkbdx0rq37dh61dabgkiq",
+ "fetcher": "github",
+ "repo": "m-cat/org-recur",
+ "unstable": {
+ "version": [
+ 20191216,
+ 2353
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "ae20a538b2b4dcec139089bb44f1e4abc5b04f72",
+ "sha256": "1x0gpq7n8crn48nfj2hmbfxd4yj5implgh5mvfnr0k1d89r6gwcn"
+ }
+ },
+ {
+ "ename": "org-redmine",
+ "commit": "017a9dd8029d083ca0c1307f2b83be187c7615e5",
+ "sha256": "0y2pm18nnyzm9wjc0j15v46nf3xi7a0wvspfzi360qv08i54skqv",
+ "fetcher": "github",
+ "repo": "gongo/org-redmine",
+ "unstable": {
+ "version": [
+ 20160711,
+ 1114
+ ],
+ "commit": "e77d013bc3784947c46a5c53f03cd7d3c68552fc",
+ "sha256": "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"
+ }
+ },
+ {
+ "ename": "org-ref",
+ "commit": "550e4dcef2f74fbd96474561c1cb6c4fd80091fe",
+ "sha256": "087isxf3z8cgmmniaxr3lpq9jg3sriw88dwp4f0ky286hlvgzw08",
+ "fetcher": "github",
+ "repo": "jkitchin/org-ref",
+ "unstable": {
+ "version": [
+ 20200814,
+ 1307
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "helm",
+ "helm-bibtex",
+ "htmlize",
+ "hydra",
+ "ivy",
+ "key-chord",
+ "pdf-tools",
+ "s"
+ ],
+ "commit": "831fe96c242bf178f0c55b93fd076dfb549f7791",
+ "sha256": "18r9n6vln65czjvk46r5lbr7d2rd2dpcqrzhs37jffz9qj93cpcc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "helm",
+ "helm-bibtex",
+ "hydra",
+ "ivy",
+ "key-chord",
+ "pdf-tools",
+ "s"
+ ],
+ "commit": "db6c52f41faba686a378a8c57356a563f5cef496",
+ "sha256": "0kx6w3zz5gmlmr9bx1mdq1k8ykkbnll6m91z90p6f2xm96j627j6"
+ }
+ },
+ {
+ "ename": "org-repo-todo",
+ "commit": "d17b602004628e17dae0f46f2b33be0afb05f729",
+ "sha256": "0l5ns1hs3i4dhrpmvzl34zc9zysgjkfa7j8apbda59n9jdvml5v1",
+ "fetcher": "github",
+ "repo": "waymondo/org-repo-todo",
+ "unstable": {
+ "version": [
+ 20171228,
+ 119
+ ],
+ "commit": "f73ebd91399c5760ad52c6ad9033de1066042003",
+ "sha256": "0c74zwmac8x1y8jimdx473v0falpky2kfig8pnaxavz415gb315q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "cba6145c6821fd2bbd96a1c9ef2346c281b76ad2",
+ "sha256": "0b57qy87sa8qcki16rgh16ldziay57yd7f98cpinaq0adcrqywy0"
+ }
+ },
+ {
+ "ename": "org-reverse-datetree",
+ "commit": "a08612af18bb620955f7b5450eba3f44cdb60673",
+ "sha256": "0fiwba8hh9617d1zqvxxz2l8p2iq56lkv5c16q7prc69m0s5zhjb",
+ "fetcher": "github",
+ "repo": "akirak/org-reverse-datetree",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1340
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "e0b04fe953de43bec51dd867d5fe12498099f2b4",
+ "sha256": "0r5vkx5la5dvw8vbrmmbxfffxjmhjmzdfbwy6c31lr60p55m5m7d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "cfb14dc77768ea901fe5a49662ae10ae3ccc7bde",
+ "sha256": "05qjj4zfm84s7lmlnq2nndmh76cpnhh62rybdiz2fjsj1ns0zjln"
+ }
+ },
+ {
+ "ename": "org-review",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1v7p7pmrjjyj0my9xw55gsn9vvr9aq5x53x13nmspvqg47z6bd98",
+ "fetcher": "github",
+ "repo": "brabalan/org-review",
+ "unstable": {
+ "version": [
+ 20160907,
+ 537
+ ],
+ "commit": "058e75b7f28d2ad2390290fe17a63d98ef5ab763",
+ "sha256": "1j917zblg5ncls9lbvpzhqal55mx27d3kpvhzvjw2h7x47ji6iym"
+ }
+ },
+ {
+ "ename": "org-rich-yank",
+ "commit": "1261823d88459b6ac42d6c55c157a326173663df",
+ "sha256": "1v0sc90g5sl6b9ylxbk2y8s3pvxkf4v7k2rkzpgpbp4nrq0miy4y",
+ "fetcher": "github",
+ "repo": "unhammer/org-rich-yank",
+ "unstable": {
+ "version": [
+ 20181120,
+ 1354
+ ],
+ "commit": "d2f350c5296cf05d6c84b02762ba44f09a02b4e3",
+ "sha256": "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "d2f350c5296cf05d6c84b02762ba44f09a02b4e3",
+ "sha256": "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"
+ }
+ },
+ {
+ "ename": "org-roam",
+ "commit": "6358b4fe160432cee80e6c15eac26764a92aac8a",
+ "sha256": "16xab5rz98bavk3vjmb5bxl4r5kpynnw40m0ahy1kl6cax51kx0y",
+ "fetcher": "github",
+ "repo": "org-roam/org-roam",
+ "unstable": {
+ "version": [
+ 20200818,
+ 816
+ ],
+ "deps": [
+ "dash",
+ "emacsql",
+ "emacsql-sqlite3",
+ "f",
+ "org",
+ "s"
+ ],
+ "commit": "c33867e6bc282ff0a69d4ef4a020db82604039bb",
+ "sha256": "0nklci9ixnkawa0ryffcnxvj7hm4vhklsv7whdynhr9w6aw6f7kq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "emacsql",
+ "emacsql-sqlite3",
+ "f",
+ "org",
+ "s"
+ ],
+ "commit": "89e9121f26cf03bb7820d257cd9d9106916cd1e9",
+ "sha256": "10s7mcyshgj6yva4k1j086xm61k9zck3r586f1maar5b2z6hwvsa"
+ }
+ },
+ {
+ "ename": "org-roam-bibtex",
+ "commit": "2931aad53fbe448c20ec1aec49ab64e4b50a8f43",
+ "sha256": "1s3v0r86x2azmhmvmkk3hc726lcx81igchqyjqry8aibmy79pfnn",
+ "fetcher": "github",
+ "repo": "org-roam/org-roam-bibtex",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1209
+ ],
+ "deps": [
+ "bibtex-completion",
+ "org-roam"
+ ],
+ "commit": "a92d9e6f523f449314e72911ba300192a42fc4dc",
+ "sha256": "1np029bspw14lcv8qzzgfyqimjz697wx2isasad06qbnhqbyc84m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "bibtex-completion",
+ "org-roam"
+ ],
+ "commit": "ed148cee7d09538664fd22fc6bdf72adbe225617",
+ "sha256": "0a7jhpmjkb4d66zakgajs5anr4nrhs94l60x62s5qdxh5dn0m7gh"
+ }
+ },
+ {
+ "ename": "org-roam-server",
+ "commit": "40932819ae514a015f998a687d3cf651b30a79a1",
+ "sha256": "1bizzzmi1bx996n9g9rmkvpm229ipmpdacmh2jd3pvn8kx6252bm",
+ "fetcher": "github",
+ "repo": "org-roam/org-roam-server",
+ "unstable": {
+ "version": [
+ 20200816,
+ 819
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "org-roam",
+ "s",
+ "simple-httpd"
+ ],
+ "commit": "5ea3d1403bd68af49ac0593a8cdff7514595d025",
+ "sha256": "0ajsid9p5znxqz7bq39jbf779s46ymmxwpfki4yxpa9308pwjwgc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 4
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "org-roam",
+ "s",
+ "simple-httpd"
+ ],
+ "commit": "fe0364ef63928337f442c1d987d17cfe9619df2d",
+ "sha256": "0a5b625i7gv467xm8p92nvrh2wzgmldm8gzcbrc15al1gvnwpbqm"
+ }
+ },
+ {
+ "ename": "org-rtm",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1hdcwmiv2qivdr2g78xz9fl38wn45vj0bn55dbsdj3qx7k7wgfx6",
+ "fetcher": "github",
+ "repo": "pmiddend/org-rtm",
+ "unstable": {
+ "version": [
+ 20160214,
+ 1236
+ ],
+ "deps": [
+ "rtm"
+ ],
+ "commit": "adc42ad1fbe92ab447ccc9553780f4456f2508d2",
+ "sha256": "1hn8y9933x5x6lxpijcqx97p3hln69ahabqdsl2bmzda3mxm4bn2"
+ }
+ },
+ {
+ "ename": "org-runbook",
+ "commit": "1ddf4d4e4bd22cc85150c8cbf635ace1f54d64fc",
+ "sha256": "0dih8kv6fhqbfmw2x8ndl6gygssl3g0jr5qkbgbf4wkl5xjls3cg",
+ "fetcher": "github",
+ "repo": "tyler-dodge/org-runbook",
+ "unstable": {
+ "version": [
+ 20200523,
+ 2004
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "ht",
+ "mustache",
+ "s",
+ "seq"
+ ],
+ "commit": "27dafe2a470d54a2c664164b5f9cbd2a1e5d921e",
+ "sha256": "1bl8f7azkr2657izhcwxy8w8jz7qs2wkk843q2bzzdzixqadlabs"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "ht",
+ "mustache",
+ "s",
+ "seq"
+ ],
+ "commit": "27dafe2a470d54a2c664164b5f9cbd2a1e5d921e",
+ "sha256": "1bl8f7azkr2657izhcwxy8w8jz7qs2wkk843q2bzzdzixqadlabs"
+ }
+ },
+ {
+ "ename": "org-scrum",
+ "commit": "8315b6834d76180fd050b0d5cc2239d604fe2f3b",
+ "sha256": "1bvxcj5675kh7zf839qb0hdy6jlllpqm7ngb5ixx1klax7l8n7pr",
+ "fetcher": "github",
+ "repo": "ianxm/emacs-scrum",
+ "unstable": {
+ "version": [
+ 20200131,
+ 1129
+ ],
+ "deps": [
+ "cl-lib",
+ "org",
+ "seq"
+ ],
+ "commit": "8b5cd196bb37cebd1aa5b02ed189ad7dadd92078",
+ "sha256": "1bb9njb8wqw5vm1kl63jqql2q5fmms2v6rhvfywr75iiirakxqzz"
+ }
+ },
+ {
+ "ename": "org-seek",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "04ay4abm03kn15cn45ldrzh2rw6gr6ia3qrj7hn5crd75ppwvln7",
+ "fetcher": "github",
+ "repo": "stardiviner/org-seek.el",
+ "unstable": {
+ "version": [
+ 20161217,
+ 502
+ ],
+ "deps": [
+ "ag"
+ ],
+ "commit": "1f51e6634e3b9a6a29d335d0d14370a6ffef2265",
+ "sha256": "0aq3af6fd16lm9iirzya6hmc8g48kfp8pc4dx51mgb5d6jjiizkv"
+ }
+ },
+ {
+ "ename": "org-shoplist",
+ "commit": "49b2c70cc503df5c2981a560b7b5e3262ba7c2e1",
+ "sha256": "0x94hic4w6xmycrr7p72il5hv3r92dbzhpp4mm4vd0jypjm5r32q",
+ "fetcher": "github",
+ "repo": "lordnik22/org-shoplist",
+ "unstable": {
+ "version": [
+ 20200603,
+ 1515
+ ],
+ "commit": "e1e465ef815500140940c3a247d508b8f7dd09c5",
+ "sha256": "03a39q495ivxn0bc9wsdl61d2qlxs2w618d5f3lkny9567wcrxgx"
+ }
+ },
+ {
+ "ename": "org-sidebar",
+ "commit": "fa65cb74eabe0c46094c64f1384e31b31a6a58e5",
+ "sha256": "0grzh47b6nnk1y7xqd1dfy2cyq688g589wfd5dp78g0wfqbmdl5c",
+ "fetcher": "github",
+ "repo": "alphapapa/org-sidebar",
+ "unstable": {
+ "version": [
+ 20200501,
+ 1215
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "org",
+ "org-ql",
+ "org-super-agenda",
+ "s"
+ ],
+ "commit": "6dfa3a2312e8dacc942980e4ab10f1faea922a49",
+ "sha256": "0byr4h9dcgv667sn110011lkcnrr327qg7wv7f87hm1gyl613cgp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "org",
+ "org-ql",
+ "org-super-agenda",
+ "s"
+ ],
+ "commit": "4d8f6fce5ffce8c9b495742998d0ae64bdc5959d",
+ "sha256": "0i7dib49yfx48df371rqq16y0yxnc6n331wka532w10ava11g5s3"
+ }
+ },
+ {
+ "ename": "org-snooze",
+ "commit": "fd04816fb53fe01fa9924ec928c1dd41f2219d6a",
+ "sha256": "00iwjj249vzqnfvbmlzrjig1sfhzbpv9kcpz95i3ir1w1qhw5119",
+ "fetcher": "github",
+ "repo": "xueeinstein/org-snooze.el",
+ "unstable": {
+ "version": [
+ 20181229,
+ 1424
+ ],
+ "commit": "8799adc14a20f3489063d279ff69312de3180bf9",
+ "sha256": "0ni5vm6b8c09ybn9rg3smdsxq1mxyqvndi00wn718my7939g82kb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "6d30b0dcdfe9538e4400e49046291b7d07274164",
+ "sha256": "0qxk6gldgcc0fbraa0l85nk4rpvn5b5nbgzkh1p8d2bkjcxjcm4g"
+ }
+ },
+ {
+ "ename": "org-special-block-extras",
+ "commit": "c6cb3b3bf575f125f892b10fc3518f3ad1663d03",
+ "sha256": "041l129iabm078p9bfdcwx5aax9fa3kbn852h1qbq8jgsks36jv8",
+ "fetcher": "github",
+ "repo": "alhassy/org-special-block-extras",
+ "unstable": {
+ "version": [
+ 20200502,
+ 2057
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "org",
+ "s"
+ ],
+ "commit": "38c3a0a2c2f9b99e0426334c7c6a9320cc6e39a5",
+ "sha256": "1rp9hyn9bshp4wjqgr8rpgjabyp86f3905ghpf5nnc4w4dfgq9vk"
+ },
+ "stable": {
+ "version": [
+ 1
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "org",
+ "s"
+ ],
+ "commit": "d1054754d0701296bc0cde1fb022619b1f38dfde",
+ "sha256": "1fy1sgj3jg7l6fjl00dxb7npf7x8ldcbs81cs8w4b4ciklp30mzr"
+ }
+ },
+ {
+ "ename": "org-sql",
+ "commit": "012573a35a302e9bb6f127cf28ac04f93796400e",
+ "sha256": "15alnx74pmr6jc2yx2c1dbpk0fbdzil8bffj7cfj7ywj2xadmzpg",
+ "fetcher": "github",
+ "repo": "ndwarshuis/org-sql",
+ "unstable": {
+ "version": [
+ 20200217,
+ 2130
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "9543ad58bc471abf09705d2615c50c1ead90c660",
+ "sha256": "18i4zhk955q13qvascvr8ag6pv2i9s14xfwl2061zjqarx89sxa1"
+ }
+ },
+ {
+ "ename": "org-starter",
+ "commit": "6deeab4833e76d3dadff056626a98dbbb80d1345",
+ "sha256": "02biskn1m397jpwa3i0wsh6z7zdq3hvjqf6ggy9ngjz9pgpahy18",
+ "fetcher": "github",
+ "repo": "akirak/org-starter",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1341
+ ],
+ "deps": [
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "dc69138a42745aac79dec9e8de1b6aacde3a4511",
+ "sha256": "0vshlr6kzri4c86yd54g3xccgj6q0vbi920858lg5ij3si4a2z2x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 8
+ ],
+ "deps": [
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "64ed31f7c012f37219f306a4b232de2767c1911e",
+ "sha256": "04zdh6rw07zy6mf69hy754vp8p7kp56ny56dcnsns8ay7dd581zj"
+ }
+ },
+ {
+ "ename": "org-starter-swiper",
+ "commit": "068f494ff402884d9242bb8ced804e38c8c39172",
+ "sha256": "0mzxb77s0k36ql8k8zd9xwv3fbixaqd34br2qx1ix2gfkzc0cq7a",
+ "fetcher": "github",
+ "repo": "akirak/org-starter",
+ "unstable": {
+ "version": [
+ 20190929,
+ 646
+ ],
+ "deps": [
+ "org-starter",
+ "swiper"
+ ],
+ "commit": "dc69138a42745aac79dec9e8de1b6aacde3a4511",
+ "sha256": "0vshlr6kzri4c86yd54g3xccgj6q0vbi920858lg5ij3si4a2z2x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 8
+ ],
+ "deps": [
+ "org-starter",
+ "swiper"
+ ],
+ "commit": "64ed31f7c012f37219f306a4b232de2767c1911e",
+ "sha256": "04zdh6rw07zy6mf69hy754vp8p7kp56ny56dcnsns8ay7dd581zj"
+ }
+ },
+ {
+ "ename": "org-static-blog",
+ "commit": "e0768d41a3de625c04ac8644ef2e05f17ee99908",
+ "sha256": "07vh2k7cj0cs1yzfmrrz9p03x5mbfh0bigbl93s72h1wf7i05rkw",
+ "fetcher": "github",
+ "repo": "bastibe/org-static-blog",
+ "unstable": {
+ "version": [
+ 20200720,
+ 715
+ ],
+ "commit": "58019b6dd1ae1323b72d491e65bf9636a9278dd6",
+ "sha256": "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "commit": "58019b6dd1ae1323b72d491e65bf9636a9278dd6",
+ "sha256": "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"
+ }
+ },
+ {
+ "ename": "org-sticky-header",
+ "commit": "bc9a600bd156eb766ba5ce37e16f3e8253f37ee8",
+ "sha256": "0ign3vjckmxp7n3625wb53qlch07c3s4l67jsvk38dhhcsg1rhnj",
+ "fetcher": "github",
+ "repo": "alphapapa/org-sticky-header",
+ "unstable": {
+ "version": [
+ 20191117,
+ 549
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "1053ebdeb3bd14fc8d4538643532efb86d18b73c",
+ "sha256": "171j10ngngra45sxmlkzrcmhhqf2b6yjqq0r5gl16zcbgggg936a"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "2847035ec559a46bd7b555f220f819c88371d538",
+ "sha256": "0g6hdg11jzzpw7h0f6p795l5aj6pag2nhhfbx90cg28j61d28vwh"
+ }
+ },
+ {
+ "ename": "org-super-agenda",
+ "commit": "fd27b2df7594a867529de4b84c8107f82dabe2e9",
+ "sha256": "1h3kqvpjq2w0n8qiqwb8wcpdy2g4ac7j6kin0943g7p5gm5yf0ra",
+ "fetcher": "github",
+ "repo": "alphapapa/org-super-agenda",
+ "unstable": {
+ "version": [
+ 20200310,
+ 1337
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "org",
+ "s",
+ "ts"
+ ],
+ "commit": "dd0d104c269fab9ebe5af7009bc1dd2a3a8f3c12",
+ "sha256": "0kx9sikk7c3j0zp3a31kj8zv2kjxqjhhl25n7c7nslf2fp5w2d8b"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "org",
+ "s"
+ ],
+ "commit": "9bb6326e269b97673e023ba71fe05cc36bfbb235",
+ "sha256": "1ghwap34y4gvwssqv3sfqa8wn9jh6pawc7xnkhm1qxmvs53gxbg6"
+ }
+ },
+ {
+ "ename": "org-superstar",
+ "commit": "1e49a3cc1006f271ce53f03717b0484a4fd89957",
+ "sha256": "0rbmrdc7ghcwk5y4jkgf7axwknck85l4xl03kwbkmnac0w98zzlj",
+ "fetcher": "github",
+ "repo": "integral-dw/org-superstar-mode",
+ "unstable": {
+ "version": [
+ 20200818,
+ 2257
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "94f35c20f8b84a63defa145e3e6ae735fa33dd5d",
+ "sha256": "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "94f35c20f8b84a63defa145e3e6ae735fa33dd5d",
+ "sha256": "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"
+ }
+ },
+ {
+ "ename": "org-sync",
+ "commit": "923ddbaf1a158caac5e666a396a8dc66969d204a",
+ "sha256": "0n8fz2d1vg9r8dszgasbnb6pgaxr2i8mqrp953prf1nhmfpjpxad",
+ "fetcher": "github",
+ "repo": "arbox/org-sync",
+ "unstable": {
+ "version": [
+ 20181204,
+ 23
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "e34a385fa9e658c8341a0a6e6bc3472d4d536bb8",
+ "sha256": "1xk0wqr66wjh00wgbr4f0q02zchmzdgpz2inz316zfjm4cik8y5c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "8c65dceaa2f3d436f83ed591916f22556a6e7f91",
+ "sha256": "0zx9gpvm5gy9k45lbhaks9s935id727lszsh40gmpdp5zxf3rjk1"
+ }
+ },
+ {
+ "ename": "org-sync-snippets",
+ "commit": "96aff3f39adfa0c68aca8ff8d3b11fbfd889327e",
+ "sha256": "0kv15zqva2cgx7jscp02x9gx20b5ckf525h546hyca86vfaakfbp",
+ "fetcher": "github",
+ "repo": "abrochard/org-sync-snippets",
+ "unstable": {
+ "version": [
+ 20190318,
+ 1744
+ ],
+ "deps": [
+ "f",
+ "org"
+ ],
+ "commit": "50cefe5a37196ed1af3d330d6871c3b37fa90d41",
+ "sha256": "13d1adymxn3b579syyaszgg98h3kh3hwn97pdfzghfli1cd9fb9y"
+ }
+ },
+ {
+ "ename": "org-table-comment",
+ "commit": "2c1f08c41969bc8a7104fb914564b4f6cab667e2",
+ "sha256": "1d40vl8aa1x27z4gwnkzxgrqp7vd3ln2pc445ijjxp1wr8bjxvdz",
+ "fetcher": "github",
+ "repo": "mattfidler/org-table-comment.el",
+ "unstable": {
+ "version": [
+ 20120209,
+ 1851
+ ],
+ "commit": "33b9966c33ecbc3e27cca67c2f2cdea04364d74e",
+ "sha256": "1qx3kd02sxs9k7adlvdlbmyhkc5kr7ni5lw4gxjw3nphnc536bkb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "33b9966c33ecbc3e27cca67c2f2cdea04364d74e",
+ "sha256": "1qx3kd02sxs9k7adlvdlbmyhkc5kr7ni5lw4gxjw3nphnc536bkb"
+ }
+ },
+ {
+ "ename": "org-table-sticky-header",
+ "commit": "5dd0e18bf4c3f3263eff8aff6d7c743a554243b5",
+ "sha256": "1rk41279rcsdma39zpr1ka5p47gh1d0969wahd0jbm5xlmx5gz2m",
+ "fetcher": "github",
+ "repo": "cute-jumper/org-table-sticky-header",
+ "unstable": {
+ "version": [
+ 20190924,
+ 506
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "b65442857128ab04724aaa301e60aa874a31a798",
+ "sha256": "1rnv7n444gidn2kqfbzc1wypj253nmlhn50x14pd8rdg4s3srpar"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "4dba2dc9a3ed63f58aa946aeec84a52d46ca4043",
+ "sha256": "0az4lzd9qk4cx7jjfj36r2fvlkwyrhn3xqhha5d1pydglnhd9amy"
+ }
+ },
+ {
+ "ename": "org-tanglesync",
+ "commit": "9282e48b725e835fe8dfb226dacbea40257584c1",
+ "sha256": "1vyvy5l7bb8v7c190rzi7r1nz7vlq4yj2bskhcw35h6df3zy3j2y",
+ "fetcher": "github",
+ "repo": "mtekman/org-tanglesync.el",
+ "unstable": {
+ "version": [
+ 20200127,
+ 1616
+ ],
+ "commit": "af83a73ae542d5cb3c9d433cbf2ce1d4f4259117",
+ "sha256": "11rfn0byy0k0321w7fjgpa785ik1nrk1j6d0y4j0j4a8gys5hjr5"
+ }
+ },
+ {
+ "ename": "org-taskforecast",
+ "commit": "757def05a6104d8aab2dde9977762bdaef63241a",
+ "sha256": "1xbck5kdbfzjw55amjfxsjscmdj7yl3fyrfzgqpdicdih0fas7kz",
+ "fetcher": "github",
+ "repo": "HKey/org-taskforecast",
+ "unstable": {
+ "version": [
+ 20200817,
+ 748
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "org-ql",
+ "s",
+ "transient"
+ ],
+ "commit": "fc160ce255a98da36c59da4d49a628dd7f742087",
+ "sha256": "063myyg4p2qwbvhb8kcgnz15xp48rv8zhcb86kxh51bm92ifwgb0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "org-ql",
+ "s"
+ ],
+ "commit": "036da7c14e0defb85917293f00a5fa9ac0977da4",
+ "sha256": "0lz6c1hq35qw44fllzsrzv9p4r4sjikciyzvi6nyf0fw189b0c4h"
+ }
+ },
+ {
+ "ename": "org-tfl",
+ "commit": "d9e97f2fee577c7e3fb42e4ca9d4f422c8907faf",
+ "sha256": "1rqmmw0222vbxfn5wxq9ni2j813x92lpv99jjszqjvgnf2rkhjhf",
+ "fetcher": "github",
+ "repo": "storax/org-tfl",
+ "unstable": {
+ "version": [
+ 20170923,
+ 1218
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "f0d7d39106a1de5457f5160cddd98ab892b61066",
+ "sha256": "1rwdibiq0w4nzccmvdkpwnmfga70y35lfg2xlkqxd02x7bfl7j3m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "f0d7d39106a1de5457f5160cddd98ab892b61066",
+ "sha256": "1rwdibiq0w4nzccmvdkpwnmfga70y35lfg2xlkqxd02x7bfl7j3m"
+ }
+ },
+ {
+ "ename": "org-themis",
+ "commit": "60e0efe4f201ed96e90c437e3e7205e0344d4676",
+ "sha256": "08rajz5y7h88fh94s2ad0f66va4vi31k9hwdv8p212bs276rp7ln",
+ "fetcher": "github",
+ "repo": "zellio/org-themis",
+ "unstable": {
+ "version": [
+ 20160122,
+ 404
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "78aadbbe22b1993be5c4accd0d3f91a4e85c9a3c",
+ "sha256": "1apd5yyr12skagma7xpzrh22rhplmhhv0pma4zf5b0i6nkxy06j2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4b4bf1fa1e853664bf006dda8afe2db00e522aaa",
+ "sha256": "12fksqi9flf84h1lbmbcjnqxa7dairp50wvlwfhbp1hbb8l9z63a"
+ }
+ },
+ {
+ "ename": "org-time-budgets",
+ "commit": "776b58b433ab7dde5870300d288c3e6734fc32c0",
+ "sha256": "0r8km586n6xdnjha7xnzlh03nw1dp066hydaz8kxfmhvygl9cpah",
+ "fetcher": "github",
+ "repo": "leoc/org-time-budgets",
+ "unstable": {
+ "version": [
+ 20200715,
+ 1016
+ ],
+ "deps": [
+ "alert",
+ "cl-lib"
+ ],
+ "commit": "1d6bfc323013bbf725167842d9e097fad805de03",
+ "sha256": "0cny7ck4acj8s2l6hzp48mvz0v0yk7q91mmzxn8vgrggsb02qm5k"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "alert",
+ "cl-lib"
+ ],
+ "commit": "f2a8fe3d9d6104f3dd61fabbb385a596363b360b",
+ "sha256": "09iw2jffb2qrx5r07zd1j8sk5wafamjkc2khqyfwc5kx6xyp1f46"
+ }
+ },
+ {
+ "ename": "org-timeline",
+ "commit": "298bd714f6cefd83d594b0eea731a01fb2faf1ad",
+ "sha256": "0zlhjzjc7jwqh6wcys17hraz76n2hnjwffis02x71maclrf2cfdd",
+ "fetcher": "github",
+ "repo": "Fuco1/org-timeline",
+ "unstable": {
+ "version": [
+ 20190612,
+ 1759
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "f628519a12ce3d534b9aa5043b0273880cf29790",
+ "sha256": "16qjbw5l39j3kc4lfpm18ba81w9bhy9cdd3fii1n7dwyx76av73i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "aed995c1db6c8bfd9db0a75a978f5e261aab38e5",
+ "sha256": "1jz44lag1j4rawqjpcgb9zrs88vfi7vjgdh756hs2ln7i1cnvgh5"
+ }
+ },
+ {
+ "ename": "org-toodledo",
+ "commit": "4956fb6c5f1076a02f07d0f953e846fee39bfaa6",
+ "sha256": "0c7qr0jsc4iyrwkc22xp9nmk6984v7q1k0rvpd62m07lb5gvbiq3",
+ "fetcher": "github",
+ "repo": "myuhe/org-toodledo",
+ "unstable": {
+ "version": [
+ 20150301,
+ 1113
+ ],
+ "deps": [
+ "cl-lib",
+ "request-deferred"
+ ],
+ "commit": "2c91a92bd07ae4a546771b018a6faa0e06399968",
+ "sha256": "014337wimvzy0rxh2p2c647ly215zcyhgym2hcljkdriv15cafna"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "commit": "5473c1a2762371b198862aa8fd83fd3ec57485a4",
+ "sha256": "0qqa62fsmra6v4061kpki8wbhfcwkgnb2gzxwvnaqlcmhivksg6v"
+ }
+ },
+ {
+ "ename": "org-tracktable",
+ "commit": "57263d996e321f842d0741898370390146606c63",
+ "sha256": "0mngf9q2ffxq32cgng0xl30661mj15wmr9y4hr3xddj626kxrp00",
+ "fetcher": "github",
+ "repo": "tty-tourist/org-tracktable",
+ "unstable": {
+ "version": [
+ 20161118,
+ 1329
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8e0e60a582a034bd66d5efb72d513140b7d4d90a",
+ "sha256": "1aq7qv5jyc2x2a4iphnzmmsvak6dbi7nwdcf3m8nly8w75vrl5lj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8e0e60a582a034bd66d5efb72d513140b7d4d90a",
+ "sha256": "1aq7qv5jyc2x2a4iphnzmmsvak6dbi7nwdcf3m8nly8w75vrl5lj"
+ }
+ },
+ {
+ "ename": "org-transform-tree-table",
+ "commit": "afca0e652a993848610606866609edbf2f5f76ae",
+ "sha256": "0n68cw769nk90ms6w1w6cc1nxjwn1navkz56mf11bsiqvsk3km7r",
+ "fetcher": "github",
+ "repo": "jplindstrom/emacs-org-transform-tree-table",
+ "unstable": {
+ "version": [
+ 20200413,
+ 1959
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "d84e7fb87bf2d5fc2be252500de0cddf20facf4f",
+ "sha256": "16zi7rg3hdfspifr46gbvpnr1rr144a777whr1w3gp6m46xmgzhs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "0a9bf07f01bc5fc3b349aff64e83999a8de83b52",
+ "sha256": "1h15fr16kgbyrxambmk4hsmha6hx4c4yqkccb82g3wlvzmnqj5x3"
+ }
+ },
+ {
+ "ename": "org-tree-slide",
+ "commit": "6160c259bc4bbcf3b98c220222430f798ee6463f",
+ "sha256": "0v857zplv0wdbg4li667v2p5pn5zcf9fgbqcwa75x8babilkl6jn",
+ "fetcher": "github",
+ "repo": "takaxp/org-tree-slide",
+ "unstable": {
+ "version": [
+ 20200611,
+ 1143
+ ],
+ "commit": "7126a4365072a32898f169ead8fb59265dabc605",
+ "sha256": "0lbqq3kzh8pd991c3s76parsl49ci5sclfq3sx0aqbcla0qzvh3y"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8,
+ 4
+ ],
+ "commit": "dccd80418a4444df5e8301695ff0d0dfe86a3c21",
+ "sha256": "0aacxxwhwjzby0f9r4q0lra5lqcrw5snnm1yc63jrs6c0ifakk45"
+ }
+ },
+ {
+ "ename": "org-treescope",
+ "commit": "f824498a74dcf0b8130baf474841b240adfa07a7",
+ "sha256": "13j7xz9i11kga1s0yvdv3k54076llna8vnnp0v8ri5pgbdrmc20w",
+ "fetcher": "github",
+ "repo": "mtekman/org-treescope.el",
+ "unstable": {
+ "version": [
+ 20200503,
+ 1609
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "org-ql"
+ ],
+ "commit": "905029a9e2ce6ed325bb8e10f59dc589c181d148",
+ "sha256": "11xbm6161rd5kv2bffqw678a7bymclvhpmm1qjxsvmi8bhfk1ls0"
+ }
+ },
+ {
+ "ename": "org-treeusage",
+ "commit": "8868893e4109db9b348a62bc012c89648384994e",
+ "sha256": "1vxal0a4k348sqpivvahjlchk7w5a02dkqvxpqgjs1rlbs7vfv90",
+ "fetcher": "github",
+ "repo": "mtekman/org-treeusage.el",
+ "unstable": {
+ "version": [
+ 20200418,
+ 1904
+ ],
+ "deps": [
+ "dash",
+ "org"
+ ],
+ "commit": "fe4323bc500e2d949848c75e8f59340971b35562",
+ "sha256": "0v9zd2lnzvdxz3wqvw0j3bzd7228x6k8dyr7pzmimkl4l26cybqm"
+ }
+ },
+ {
+ "ename": "org-trello",
+ "commit": "188ed8dc1ce2704838f7a2883c41243598150a46",
+ "sha256": "14lq8nn1x6qb3jx518zaaz5582m4npd593w056igqhahkfm0qp8i",
+ "fetcher": "github",
+ "repo": "org-trello/org-trello",
+ "unstable": {
+ "version": [
+ 20200508,
+ 1705
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "deferred",
+ "request-deferred",
+ "s"
+ ],
+ "commit": "56c519a00c6e3c8f6923cd0460342089d58c41c9",
+ "sha256": "09028167pi9pzgcb8fpvqgvzviq1fxvgby5lb99wvyy94vjxwnk2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "deferred",
+ "request-deferred",
+ "s"
+ ],
+ "commit": "4ddc257fe24e97c01e12b247568581ff255f0e8d",
+ "sha256": "18y5zdjc7zh4jlwz6k1nl13i721rknqm0vp4mxfnmq0sc5a0qva0"
+ }
+ },
+ {
+ "ename": "org-variable-pitch",
+ "commit": "9632b7e98772b584d6420f8d0f9652d67118e05e",
+ "sha256": "1xci5zq1bpwnm3adlcsxzpskxywzalb1n3n14lvf787f77ib602c",
+ "fetcher": "github",
+ "repo": "cadadr/elisp",
+ "unstable": {
+ "version": [
+ 20191207,
+ 2022
+ ],
+ "commit": "61a14d1a8c17930caca5c5daf893cedc9c23c5f3",
+ "sha256": "0acq8d8vlx3hd405wmi5w36gg88bz1c1crmlxbd2whgi8kyf506z"
+ }
+ },
+ {
+ "ename": "org-vcard",
+ "commit": "df860814a09c376c9a6a2c5e7f528bbae29810b2",
+ "sha256": "0l6azshvzl1wws582njqr3qx4h73gwrdqwa3jcic1qbs9hg2l4yl",
+ "fetcher": "github",
+ "repo": "flexibeast/org-vcard",
+ "unstable": {
+ "version": [
+ 20200720,
+ 638
+ ],
+ "commit": "1ae97371b207dabfecaf6b4f7118abafe6cc5e2b",
+ "sha256": "0k9slz20gxcdpvpz8kgvvwff6cif74wybpqgg9x03wqqqda3f37v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "a6ab82ab28fa78f7c985d3ea9c9fafdd17f7ea8b",
+ "sha256": "14l3xqahqmnfl3sskqcr33xpcsic8dm9cr9wmbv5la3xv14n10k7"
+ }
+ },
+ {
+ "ename": "org-wc",
+ "commit": "852e0a5cee285cc9b5e2cd9e18061fc0fe91d5a6",
+ "sha256": "1yk2py4bzm2yr8vw6rbgl2hfpd21hf4fga0d5q6y779631klp6wl",
+ "fetcher": "github",
+ "repo": "tesujimath/org-wc",
+ "unstable": {
+ "version": [
+ 20200731,
+ 2244
+ ],
+ "commit": "dbbf794e4ec6c4080d945f43338185e34a4a582d",
+ "sha256": "0j58591jnj182hps1zc9an692hhnxinlpbw762l7xdc0sa5pjrgb"
+ }
+ },
+ {
+ "ename": "org-web-tools",
+ "commit": "f082bfb480649d21f586b7eb331c19d57e7a84cf",
+ "sha256": "19zpspap85fjqg5a20ps34rcigb0ws986pj6dzd7xik8s6ia29s7",
+ "fetcher": "github",
+ "repo": "alphapapa/org-web-tools",
+ "unstable": {
+ "version": [
+ 20191217,
+ 1459
+ ],
+ "deps": [
+ "dash",
+ "esxml",
+ "org",
+ "request",
+ "s"
+ ],
+ "commit": "ebc7888f4f4cad26ec1298edd7bf606a5ea2d564",
+ "sha256": "09ihqas9rx7c6146zmb3p0q395gxkfscxixlmz4v05smrhka1xz8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "esxml",
+ "org",
+ "request",
+ "s"
+ ],
+ "commit": "ca87319cd42eaa2eb02213e81dec19b7bd2918f7",
+ "sha256": "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"
+ }
+ },
+ {
+ "ename": "org-wild-notifier",
+ "commit": "114552a24f73f13b253e3db4885039b680f6ef33",
+ "sha256": "1lmpa614jnkpmfg3m1d2wjn9w0zig3gwd02n3dyjn23n71fiyhkp",
+ "fetcher": "github",
+ "repo": "akhramov/org-wild-notifier.el",
+ "unstable": {
+ "version": [
+ 20200328,
+ 1153
+ ],
+ "deps": [
+ "alert",
+ "async",
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "4011d7f557da3ae5eee73c56ae514b963fb4d1c1",
+ "sha256": "0mr5qmrnz0mr6w7ib8bcdlqwhzwnxfbnd47zyg9i6lmh20p8qrns"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "alert",
+ "async",
+ "dash",
+ "dash-functional"
+ ],
+ "commit": "4011d7f557da3ae5eee73c56ae514b963fb4d1c1",
+ "sha256": "0mr5qmrnz0mr6w7ib8bcdlqwhzwnxfbnd47zyg9i6lmh20p8qrns"
+ }
+ },
+ {
+ "ename": "org-working-set",
+ "commit": "8df6c37b8d5b7f4a296e57ad1fd758cb99aff718",
+ "sha256": "0dkwgci0s6znc25hcvj3a3djarwmwdjyx2lgfrf6sgbqd5l30s8l",
+ "fetcher": "github",
+ "repo": "marcIhm/org-working-set",
+ "unstable": {
+ "version": [
+ 20200819,
+ 708
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s"
+ ],
+ "commit": "d6f2d1ebcfe0b6ccb3a799f04ba6842ca86c9115",
+ "sha256": "1lkf497qpydvw5f7vi0v7yr43j9v03hys16qz6nsqkbizr54b5jh"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 4
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "s"
+ ],
+ "commit": "d6f2d1ebcfe0b6ccb3a799f04ba6842ca86c9115",
+ "sha256": "1lkf497qpydvw5f7vi0v7yr43j9v03hys16qz6nsqkbizr54b5jh"
+ }
+ },
+ {
+ "ename": "org-wunderlist",
+ "commit": "c52a1ea0afa8e5f439b7ac987b79c49eb08fe95a",
+ "sha256": "08lxxdm740cnzkzar1hqrapwjh087nsgm0kzi9fxlq405gc0sza9",
+ "fetcher": "github",
+ "repo": "emacsattic/org-wunderlist",
+ "unstable": {
+ "version": [
+ 20191017,
+ 1917
+ ],
+ "deps": [
+ "alert",
+ "cl-lib",
+ "org",
+ "request-deferred",
+ "s"
+ ],
+ "commit": "1a084bb49be4b5a1066db9cd9b7da2f8efab293f",
+ "sha256": "05kd8d0687dlmy8a4qvxa3bdcsvxd10hxkl5i4654w88pg07qm8g"
+ }
+ },
+ {
+ "ename": "org2blog",
+ "commit": "08b47bf72bff18efb3281509fd9f1688d8bb0349",
+ "sha256": "1snrsqpiacmkajmiw12kpglxkrs5ngma7l7r246q0lvf1h4jzbsa",
+ "fetcher": "github",
+ "repo": "org2blog/org2blog",
+ "unstable": {
+ "version": [
+ 20200814,
+ 543
+ ],
+ "deps": [
+ "htmlize",
+ "hydra",
+ "metaweblog",
+ "xml-rpc"
+ ],
+ "commit": "a56346bf1517118b2a960eaadbf138ae1695ddd1",
+ "sha256": "09iycpdj6dkvz5axfx85bkrrf5128ws7clg1jn9yli06rjsw36ba"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 10
+ ],
+ "deps": [
+ "htmlize",
+ "hydra",
+ "metaweblog",
+ "xml-rpc"
+ ],
+ "commit": "19aa8a17428d6ee42f54e464c26eeab17a6478ab",
+ "sha256": "198ahgxji0kh6ynygrrdvllj9fwcqrnma4sd8msj2aq18xij9glr"
+ }
+ },
+ {
+ "ename": "org2ctex",
+ "commit": "8f77fe537ca8ee2ddb6e3efe71f3b3c560c52c7d",
+ "sha256": "0049zf3ls7vbbcz1hdwai57ih9gppk2j0gzwijzwkb23ccwaf64a",
+ "fetcher": "github",
+ "repo": "tumashu/org2ctex",
+ "unstable": {
+ "version": [
+ 20200331,
+ 550
+ ],
+ "commit": "2e40aa5e78b0562516f46f689e7b74cdf451cc2a",
+ "sha256": "06ip9663xvygpr484r09v7c55nn0pxmr30455iqpmxi32dwx974g"
+ }
+ },
+ {
+ "ename": "org2elcomment",
+ "commit": "8af13650de8b4a814832638d4182bf8ce576244c",
+ "sha256": "0jv8sskw55rzxw578l6nm4arsycrw1si80ds7gr8i0x352fdydyp",
+ "fetcher": "github",
+ "repo": "cute-jumper/org2elcomment",
+ "unstable": {
+ "version": [
+ 20170324,
+ 945
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "c88a75d9587c484ead18f7adf08592b09c1cceb0",
+ "sha256": "19r7rxnd2cl0vc8bbf86mh5b779pl5z917657ymlc74bqq140m3x"
+ }
+ },
+ {
+ "ename": "org2issue",
+ "commit": "ad1759854c3bd302aa353dea92cf462e981aff2f",
+ "sha256": "1qd5l9ga26smgp1gkc8r9ja2n974kq1jf2z876s5v0489ipa59bz",
+ "fetcher": "github",
+ "repo": "lujun9972/org2issue",
+ "unstable": {
+ "version": [
+ 20190531,
+ 941
+ ],
+ "deps": [
+ "gh",
+ "org",
+ "ox-gfm",
+ "s"
+ ],
+ "commit": "910b98c858762fd14b11d261626c5e979dde0833",
+ "sha256": "0xgrrbkfqkhj15n7mbmh61g8i535ykhxh5y71054p3kikgnrh290"
+ }
+ },
+ {
+ "ename": "org2jekyll",
+ "commit": "48a1e5bd5e338bd3593f004f95b6fbb12595bfb7",
+ "sha256": "1j9d6xf5nsakifxwd4zmjc29lbj46ffn3z109k2y2yhz7q3r9hzv",
+ "fetcher": "github",
+ "repo": "ardumont/org2jekyll",
+ "unstable": {
+ "version": [
+ 20200622,
+ 1519
+ ],
+ "deps": [
+ "dash-functional",
+ "s"
+ ],
+ "commit": "571249c977e0340edb3ef3af45b7841b62ec8065",
+ "sha256": "1hjqawygbmvdlvzi908b2l4k7ca3g0dg32mpk7vld8xwi49hb1kp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 7
+ ],
+ "deps": [
+ "dash-functional",
+ "s"
+ ],
+ "commit": "c05ba707190cfab20938afd1b5d4966511ca63b7",
+ "sha256": "03ddrc40qab285i7sj438kicaxxmixkk0b6d8512cn44f42zczyq"
+ }
+ },
+ {
+ "ename": "org2web",
+ "commit": "2864959163442165b9b1cd5471dc2649508decde",
+ "sha256": "0lcqf0pgkd7jilasw1485fy45k269jxvyl7hl7qrcs94s6fy2vaf",
+ "fetcher": "github",
+ "repo": "tumashu/org2web",
+ "unstable": {
+ "version": [
+ 20171005,
+ 2317
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "el2org",
+ "ht",
+ "htmlize",
+ "mustache",
+ "org",
+ "simple-httpd"
+ ],
+ "commit": "5243b399927a4c474bb3b8d1c8a00799df1f27d7",
+ "sha256": "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "el2org",
+ "ht",
+ "htmlize",
+ "mustache",
+ "org",
+ "simple-httpd"
+ ],
+ "commit": "5243b399927a4c474bb3b8d1c8a00799df1f27d7",
+ "sha256": "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"
+ }
+ },
+ {
+ "ename": "organic-green-theme",
+ "commit": "9383ef5f0372724b34f4bb9173ef8ccbb773e19e",
+ "sha256": "1fdj3dpcdqx0db5q8dlxag6pr2qn4yiz1hmg3c7dkmh51n85ssw2",
+ "fetcher": "github",
+ "repo": "kostafey/organic-green-theme",
+ "unstable": {
+ "version": [
+ 20200717,
+ 1937
+ ],
+ "commit": "01fe614086e31e166d2a2f1d6b34e301f060458e",
+ "sha256": "1hsidgcyqsbm96gh0nfrdpnm4vq1sw8777d0zslsczr1fp51il6d"
+ }
+ },
+ {
+ "ename": "organize-imports-java",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "0j4fpbzmi0mq2f493hwl94b3xmkhdcjscvbgv4dz31rw10bl4q7h",
+ "fetcher": "github",
+ "repo": "jcs-elpa/organize-imports-java",
+ "unstable": {
+ "version": [
+ 20200717,
+ 757
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "c431b338d34c94345217b2b904d9c6f331d4015c",
+ "sha256": "1dqvx49lcfi5472aq17nd7y7v7d2ljxcmy5zhks2mfbhhzgdp8n6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "c431b338d34c94345217b2b904d9c6f331d4015c",
+ "sha256": "1dqvx49lcfi5472aq17nd7y7v7d2ljxcmy5zhks2mfbhhzgdp8n6"
+ }
+ },
+ {
+ "ename": "orgbox",
+ "commit": "b1948eca5a18f35b61b9a0baf532753fd105ba3a",
+ "sha256": "12wfqlpjh9nr7zgqs4h8kmfsk825n68qcbn8z2fw2mpshg3nj7l8",
+ "fetcher": "github",
+ "repo": "yasuhito/orgbox",
+ "unstable": {
+ "version": [
+ 20180827,
+ 218
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "3982f56efd67ec016389cad82ce5a44f619b36a9",
+ "sha256": "1vr00ql7izfxswrnbyzq0avlhqy3p0jyw16gnjhczqhg09iln6rw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "ecaf5a064431cf92922338c974df8fce1a8f1734",
+ "sha256": "02mxp17p7bj4xamg0m6zk832hmpqcgzc7bjbjcnvbvrawhc255hy"
+ }
+ },
+ {
+ "ename": "orgit",
+ "commit": "73b5f7c44c90540e4cbdc003d9881f0ac22cc7bc",
+ "sha256": "0askccb3h98v8gmylwxaph3gbyv5b1sp4slws76aqz1kq9x0jy7w",
+ "fetcher": "github",
+ "repo": "magit/orgit",
+ "unstable": {
+ "version": [
+ 20200714,
+ 1943
+ ],
+ "deps": [
+ "magit",
+ "org"
+ ],
+ "commit": "ac9b1a42863a864fde9d225890ef5464bffdc646",
+ "sha256": "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 3
+ ],
+ "deps": [
+ "magit",
+ "org"
+ ],
+ "commit": "ac9b1a42863a864fde9d225890ef5464bffdc646",
+ "sha256": "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"
+ }
+ },
+ {
+ "ename": "orgit-forge",
+ "commit": "d180f7bb9d937d574726326b788f3721266e31a8",
+ "sha256": "1v1a8cz2r84f9y1arzlhpff2fkqyx598pd1lqf81fr6l6l2y9j5n",
+ "fetcher": "github",
+ "repo": "magit/orgit-forge",
+ "unstable": {
+ "version": [
+ 20200621,
+ 2144
+ ],
+ "deps": [
+ "forge",
+ "magit",
+ "org",
+ "orgit"
+ ],
+ "commit": "63a19d1df1434e583aac1329ba4dcfa2ee59d7c1",
+ "sha256": "1vd7wnas53z0985if22sv0wpww2dp0g8b0z9hwlzdhlcrsjay5fz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "forge",
+ "magit",
+ "org",
+ "orgit"
+ ],
+ "commit": "63a19d1df1434e583aac1329ba4dcfa2ee59d7c1",
+ "sha256": "1vd7wnas53z0985if22sv0wpww2dp0g8b0z9hwlzdhlcrsjay5fz"
+ }
+ },
+ {
+ "ename": "orglink",
+ "commit": "be9b8e97cda6af91d54d402887f225e3a0caf055",
+ "sha256": "0ldrvvqs3hlazj0dch162gsbnbxcg6fgrxid8p7w9gj19vbcl52b",
+ "fetcher": "github",
+ "repo": "tarsius/orglink",
+ "unstable": {
+ "version": [
+ 20200719,
+ 917
+ ],
+ "deps": [
+ "org",
+ "seq"
+ ],
+ "commit": "2f1939488204f67d2a427f224b45596361b402b1",
+ "sha256": "0ipy1p2cr5i0465hchqazmgn9jrgwzbyrb3prfgkl7z2m1gd7fcg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 6
+ ],
+ "deps": [
+ "org",
+ "seq"
+ ],
+ "commit": "2f1939488204f67d2a427f224b45596361b402b1",
+ "sha256": "0ipy1p2cr5i0465hchqazmgn9jrgwzbyrb3prfgkl7z2m1gd7fcg"
+ }
+ },
+ {
+ "ename": "orglue",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1kj62y3cf3as2d5s207s6kg5alm09jmw0aag1z6lblrjlzbi1p2j",
+ "fetcher": "github",
+ "repo": "yoshinari-nomura/orglue",
+ "unstable": {
+ "version": [
+ 20200411,
+ 311
+ ],
+ "deps": [
+ "epic",
+ "org"
+ ],
+ "commit": "9d5a8e24be9acb8c55bb4d6aa8b98e30e2677401",
+ "sha256": "1n2l9acc54sbpbv5d1h2ib9cn7nbidmkvhhlwihqzpvvh7bhjfj7"
+ }
+ },
+ {
+ "ename": "orgnav",
+ "commit": "a41436df126d7ef2c0a8b56d90afb942fe47dc59",
+ "sha256": "0z04n5rzv5c0lvn658nrfj6rg3a31n369h5rjgi5bap06qm427ix",
+ "fetcher": "github",
+ "repo": "facetframer/orgnav",
+ "unstable": {
+ "version": [
+ 20170608,
+ 1713
+ ],
+ "deps": [
+ "dash",
+ "helm",
+ "s"
+ ],
+ "commit": "9e2cac9c1a67af5f0080e60022e821bf7b70312d",
+ "sha256": "0764dg3dcsdy4i6syv9aqqmr47civn9dl3638g4lsqdikghw7lvv"
+ }
+ },
+ {
+ "ename": "orgtbl-aggregate",
+ "commit": "bf64b53c9d49718a8ffc39b14c90539b36840280",
+ "sha256": "0gnyjwn6jshs8bzdssm2xppg2s9p2x3rrhp523q39aydskc6ggc9",
+ "fetcher": "github",
+ "repo": "tbanel/orgaggregate",
+ "unstable": {
+ "version": [
+ 20200708,
+ 2131
+ ],
+ "commit": "99c6bc8c9b72dc9ce886a09540ed24ec83bcc056",
+ "sha256": "03q02cxz76wnx20rhwqiysxnskzs7caw428ij3jj4nsmjkhxdfv0"
+ }
+ },
+ {
+ "ename": "orgtbl-ascii-plot",
+ "commit": "21b02596ac4b48e592ebe966475b164866bb9d6e",
+ "sha256": "1ssjbdprbn34nsfx1xjc382l2195rbh8mybpn31d4kcjx6fqf78h",
+ "fetcher": "github",
+ "repo": "tbanel/orgtblasciiplot",
+ "unstable": {
+ "version": [
+ 20200411,
+ 711
+ ],
+ "commit": "59618630205fc8c0fcc74fb34c4581d9712a5181",
+ "sha256": "1qx6la70cdxr556d2kna4ra76kdliaqkwm97jahd20nhs2izvpl1"
+ }
+ },
+ {
+ "ename": "orgtbl-join",
+ "commit": "e43ae8aaa54113f53b51aea3fb2656d608d1032c",
+ "sha256": "1kq2h0lb521z8q2xb9bsi37xzzdsa0hw4mm3qkzidi5j9fi3apf1",
+ "fetcher": "github",
+ "repo": "tbanel/orgtbljoin",
+ "unstable": {
+ "version": [
+ 20200708,
+ 2127
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1aa352a09a2c543352fceb32a505c44e080efcb3",
+ "sha256": "0aczwlssnhn1xpgk3s7l2smrxmhb8af6gg9xjdsfysss4ybbcgy6"
+ }
+ },
+ {
+ "ename": "orgtbl-show-header",
+ "commit": "9c5ea906b1d642405ca532d89dbb32cf79f53582",
+ "sha256": "1xgqjg3lmcczdblxaka47cc1ad8p8jhyb2nqwq0qnbqw46fqjp3k",
+ "fetcher": "github",
+ "repo": "DamienCassou/orgtbl-show-header",
+ "unstable": {
+ "version": [
+ 20141023,
+ 837
+ ],
+ "commit": "112d54a44682f065318ed0c9c89a8f5b8907342a",
+ "sha256": "1s2bgsm4s33w5275qghw1axdpmz6bbyhki53jr2giyk4f90822gi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "f0f48ccc0f96d4aa2a676ff609d9dddd71748e6f",
+ "sha256": "0zfiq9d5jqzpmscngb1s2jgfiqmbi4dyw0fqa59v2g84gxjg793x"
+ }
+ },
+ {
+ "ename": "origami",
+ "commit": "b816be227dfc7330292a50346c4bb37394d3e998",
+ "sha256": "0rkb55zcvsgxzp190vrnbzdfbcjd8zi6vhbhwpqxi0qmyq6a08pr",
+ "fetcher": "github",
+ "repo": "gregsexton/origami.el",
+ "unstable": {
+ "version": [
+ 20200331,
+ 1019
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "e558710a975e8511b9386edc81cd6bdd0a5bda74",
+ "sha256": "0ycjbsn03cjzx6adabcvi1j7f92yhx3xjzj3xc68m1hw9r2f2gzf"
+ }
+ },
+ {
+ "ename": "origami-predef",
+ "commit": "0cda4d6554f8c99928973a0bf718766b7135ffeb",
+ "sha256": "1wr0fs0a2p43yr9fsbdm52z767rbj4j1w3m25w299zf71h263pc9",
+ "fetcher": "github",
+ "repo": "alvarogonzalezsotillo/origami-predef",
+ "unstable": {
+ "version": [
+ 20200615,
+ 1044
+ ],
+ "deps": [
+ "origami"
+ ],
+ "commit": "edcba971ba52a14f69a436ad47888827d7927982",
+ "sha256": "1r3dbnjwmg7y1zsimvqw3bi4168ikwdd5fqkjqd6gm905w32hwc0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "origami"
+ ],
+ "commit": "edcba971ba52a14f69a436ad47888827d7927982",
+ "sha256": "1r3dbnjwmg7y1zsimvqw3bi4168ikwdd5fqkjqd6gm905w32hwc0"
+ }
+ },
+ {
+ "ename": "ormolu",
+ "commit": "ab315f96d9b8d01ffc3b4748d01c70861daf8c1a",
+ "sha256": "0d6pgmp1iy3yylvx9bbdia5p0c7m59m8hca55lkxb7g6ck2c628y",
+ "fetcher": "github",
+ "repo": "vyorkin/ormolu.el",
+ "unstable": {
+ "version": [
+ 20200313,
+ 1631
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "3141f9b65f8a68b4cbd6df4e08c64d98ce3aa3c9",
+ "sha256": "1j7q9rmcn6fkhbcvfh8w4y9dir2y0hhhqmjpsafs8m4zm1rvffbn"
+ }
+ },
+ {
+ "ename": "osa",
+ "commit": "df18def95ae792387da2e21f1050cfc25af772fb",
+ "sha256": "1knzkwvdq9wwy2x7kgl1nf0p564247l2y82ms77r0j5vfqhsfd9s",
+ "fetcher": "github",
+ "repo": "atomontage/osa",
+ "unstable": {
+ "version": [
+ 20200522,
+ 2103
+ ],
+ "commit": "615ca9eef4131a23d9971691fa0d0f20fe59d01b",
+ "sha256": "1p651fqivyfyqjs6zz9p4n19r9d23xiswhyjz7r93llmsqs702qi"
+ }
+ },
+ {
+ "ename": "osa-chrome",
+ "commit": "b9c83566892095706033869da370a12e8eccc590",
+ "sha256": "1spihfihcd5iblsl1xp19ayk65mn9ik32jlqn2pg15jwhyfmvyfs",
+ "fetcher": "github",
+ "repo": "atomontage/osa-chrome",
+ "unstable": {
+ "version": [
+ 20200627,
+ 1344
+ ],
+ "deps": [
+ "osa"
+ ],
+ "commit": "07894b9cb40171702b4c89b75542af1f1ac1403c",
+ "sha256": "0brhn6qlminzamwl90ynaik03xvaw3rlkdccdyxfpckjd5npa9wr"
+ }
+ },
+ {
+ "ename": "osx-browse",
+ "commit": "081aa3e1d50c2c9e5a9b9ce0716258a93279f605",
+ "sha256": "06rfzq2hxhzg6jh2zs28r7ffxwlq40nz954j13ly8403c7rmbrfm",
+ "fetcher": "github",
+ "repo": "rolandwalker/osx-browse",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "deps": [
+ "browse-url-dwim",
+ "string-utils"
+ ],
+ "commit": "44ded7cc3a7ee426c1c3257fae534c121f7e752e",
+ "sha256": "1iybrhp607a5rb3ynlaf8w2x9wdgdbril702z44dgcg3wxih2zy1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 8
+ ],
+ "deps": [
+ "browse-url-dwim",
+ "string-utils"
+ ],
+ "commit": "6186a6020e143e90d557c8d062c44fcdba0516c7",
+ "sha256": "0g1xhh88a65vcq6rlh7ii16pra4pv519ajcws0h93ldbbjiy7p0m"
+ }
+ },
+ {
+ "ename": "osx-clipboard",
+ "commit": "71b85cd2b2122a2742f919d10bfcb054b681e61e",
+ "sha256": "0gjgr451v6rlyarz96v6h8kfbvkk7npvhgvkgwdi0bjighrhlv4f",
+ "fetcher": "github",
+ "repo": "joddie/osx-clipboard-mode",
+ "unstable": {
+ "version": [
+ 20141012,
+ 717
+ ],
+ "commit": "e46dd31327a3f92f77b013b4c9b1e5fdd0e5c73d",
+ "sha256": "1ykn48src7qhx9cmpjkaqsz7h36p75kkq1h9wlcpv5fhaky2d4n4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "e46dd31327a3f92f77b013b4c9b1e5fdd0e5c73d",
+ "sha256": "1ykn48src7qhx9cmpjkaqsz7h36p75kkq1h9wlcpv5fhaky2d4n4"
+ }
+ },
+ {
+ "ename": "osx-dictionary",
+ "commit": "ae4467ad646d663f0266f39a76f9764004903424",
+ "sha256": "13033fxc5vjd1f7mm6znmprcp3mwxbvblb2d25shr8d4imqqhv82",
+ "fetcher": "github",
+ "repo": "xuchunyang/osx-dictionary.el",
+ "unstable": {
+ "version": [
+ 20191206,
+ 519
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1b79ff64c72485cb078db9ab7ee3256b11a99f4b",
+ "sha256": "1lnjpsb09w48ibjvabqkxqh997mv61zpvqhx3d35q4lw5sirgjxg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0e5e5f1b0077a62673855889d529dd4f0cc8f665",
+ "sha256": "1zpr50q7i4wg1x7vsj69rh1b8xvk9r0591y4fvvs3a2l1llca2mq"
+ }
+ },
+ {
+ "ename": "osx-lib",
+ "commit": "b42ae666e3511752f5138927e7bf7965bd9f7ee5",
+ "sha256": "12wvki8jhzqsanxv5yqzjmfx6ifwz9ab9zh6r8nss86bk8864ix4",
+ "fetcher": "github",
+ "repo": "raghavgautam/osx-lib",
+ "unstable": {
+ "version": [
+ 20191121,
+ 1440
+ ],
+ "commit": "01cba80ccc20412759f87b8f7531580bb04ec9c1",
+ "sha256": "0izkifcxk6cp9y4xcmpkhpd2vv1rqapxxa74ks12a55sflyxx36f"
+ }
+ },
+ {
+ "ename": "osx-location",
+ "commit": "8673dafb02a8d70c278bfd2c063f40992defe3a3",
+ "sha256": "1p12mmrw70p3b04zlprkdxdfnb7m3vkm6gci3fwhr5zyfvwxvn0c",
+ "fetcher": "github",
+ "repo": "purcell/osx-location",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2209
+ ],
+ "commit": "18fcc306caa575c5afdeaf091aa1a9b003daa52a",
+ "sha256": "0n59mf0qx78d4qb071qgbvd50vzkn3xffwgxjwjv90193h99qdnj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "110aee945b53ea550e4debe69bf3c077d940ec8c",
+ "sha256": "1csnxpsfnv9lv07kgvc60qx5c33sshmnz60p3qjz7ym7rnjy9b5x"
+ }
+ },
+ {
+ "ename": "osx-org-clock-menubar",
+ "commit": "cade09308a6b8c998800f2ad2592ad6ea79f65ca",
+ "sha256": "1y5qxslxl0d93f387nyj8zngz5nh1p4rzdfx0lnbvya6shfaxaf6",
+ "fetcher": "github",
+ "repo": "jordonbiondo/osx-org-clock-menubar",
+ "unstable": {
+ "version": [
+ 20150205,
+ 2111
+ ],
+ "commit": "9964d2a97cc2fb6570dc4116da44f73bd8eb7cb3",
+ "sha256": "1rgykby1ysbapq53lnk9yy04r9q4qirnzs2abgvz7g2qjq5fyzag"
+ }
+ },
+ {
+ "ename": "osx-plist",
+ "commit": "3f536906e3272e1b377d1a192accbc80927e788f",
+ "sha256": "02m8sam2wi4lfwf1hm5xwal7n50nqvb1bv8k0sikh90yq56zympv",
+ "fetcher": "github",
+ "repo": "gonewest818/osx-plist",
+ "unstable": {
+ "version": [
+ 20200212,
+ 1724
+ ],
+ "commit": "7e717532c78a97eb77b79e2985cea0b201117ff8",
+ "sha256": "129874d3g5c1dim6gmx1fllx22rfjg4zdvgdmfpm37l1n8hyzccn"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "commit": "bbed74d334e8a4141c8f6ed07c8e42ee7979c35c",
+ "sha256": "0d4qb7by8b069mk98wd9n9qn9ibbc6gqchxvws8r8y1sqjv1ssv8"
+ }
+ },
+ {
+ "ename": "osx-pseudo-daemon",
+ "commit": "6104efc035bcf469d133ab9a2caf42c9d4482334",
+ "sha256": "1sch7bb8hl96fji2ayw2ah5cjgsga08wj44vddjxskyway8ykf0z",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/mac-pseudo-daemon",
+ "unstable": {
+ "version": [
+ 20200215,
+ 513
+ ],
+ "commit": "703ee41303dc251b7672b7cba5aeb6aa54a76c90",
+ "sha256": "0cplbz7mc2zrxfk8g349ahb7gzli2hn5kda9155nbk8dw74xmj7d"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2
+ ],
+ "commit": "564b006835facc4a8df247d8a47ab1030d7e7beb",
+ "sha256": "1ilqxl1851rg9v6ixi924xhzykc3c34f4nq1x0vyyq5b9m2fpb27"
+ }
+ },
+ {
+ "ename": "osx-trash",
+ "commit": "29dc2ef3801a1cd7cf8edd2eae68b03bf00e96a0",
+ "sha256": "05saq6w66n55m0wihwia6v2dd08xvblaw1zsbpf40l901flh9mrf",
+ "fetcher": "github",
+ "repo": "emacsorphanage/osx-trash",
+ "unstable": {
+ "version": [
+ 20160520,
+ 1300
+ ],
+ "commit": "0f1dc052d0a750b8c75f14530a4897f5d4324b4e",
+ "sha256": "0f4md49175iyrgzv4pijf7qbxyddcm2yscrrlh91pg410la7fysk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "529619b84d21e18a38ec5255eb40f6b8ede38b2a",
+ "sha256": "1n44wdffkw14si9kb7bpkp6d9cjwjrvksfh22y9549dhs1vav6qq"
+ }
+ },
+ {
+ "ename": "otama",
+ "commit": "53b1eaef5c8b408eb8fff838af1e0249c4fe9444",
+ "sha256": "04ffyscldb2sn2n26ixrnc07ybvl7iclv2hi1kmhr5hdgxwpyjq9",
+ "fetcher": "github",
+ "repo": "yoshinari-nomura/otama",
+ "unstable": {
+ "version": [
+ 20160404,
+ 1032
+ ],
+ "commit": "c114fd8006762f891bc120a7c0ea213872e7ab31",
+ "sha256": "1jzyfvc25ls0l4kpxg6857ccynl1pzgxfif7bppz2nfmf99z4534"
+ }
+ },
+ {
+ "ename": "other-emacs-eval",
+ "commit": "75b6391726b0d5069e036930c2c5fa177c4e3422",
+ "sha256": "07sr5bb6x9w450cvfg32darg6jlwg11n7c1qhhk0ijcrnlsm09n7",
+ "fetcher": "github",
+ "repo": "xuchunyang/other-emacs-eval",
+ "unstable": {
+ "version": [
+ 20180408,
+ 1348
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "8ace5acafef65daabf0c6619eff60733d7f5d792",
+ "sha256": "1pry1xw2p01b18ks5n0xs895qqqci7v2nrwjiil2vr3m1ys92ymc"
+ }
+ },
+ {
+ "ename": "outline-magic",
+ "commit": "a98ad2ef680eef541ee82e8a65ed73e524df98a1",
+ "sha256": "085yayzph3y7fh6pd5sdjdkhdcvwfzcyqd6y3xlbz7wni5ac6b5f",
+ "fetcher": "github",
+ "repo": "tj64/outline-magic",
+ "unstable": {
+ "version": [
+ 20180619,
+ 1819
+ ],
+ "commit": "2a5f07417b696cf7541d435c43bafcc64817636b",
+ "sha256": "1iyslhk2zvhn4ip27apkjzkqw56lfakp2jzwz106jm45f3kllpc8"
+ }
+ },
+ {
+ "ename": "outline-minor-faces",
+ "commit": "f252e45e8bd6e8af1267755d108f378a974ddaf1",
+ "sha256": "1728imdqmmfqw5f67w8xsailn2b09y4xgdr769pd6kx8z6lsi8zb",
+ "fetcher": "github",
+ "repo": "tarsius/outline-minor-faces",
+ "unstable": {
+ "version": [
+ 20200720,
+ 1954
+ ],
+ "commit": "cb9c529bb992c6f60b054caf4e993b03c7b3ba9e",
+ "sha256": "1s76zfzpwhcql2c4kr5maxc53vznqw6p7hx9n8nihxjgz2rywcas"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "cb9c529bb992c6f60b054caf4e993b03c7b3ba9e",
+ "sha256": "1s76zfzpwhcql2c4kr5maxc53vznqw6p7hx9n8nihxjgz2rywcas"
+ }
+ },
+ {
+ "ename": "outline-toc",
+ "commit": "64b07ee55e87c4a1125ce18a8ae0a44661380ffe",
+ "sha256": "13hy9ahla68qcbfbm7b5d0yy774qfc3byb6pn9c66k2wg4xh6pxb",
+ "fetcher": "github",
+ "repo": "abingham/outline-toc.el",
+ "unstable": {
+ "version": [
+ 20200401,
+ 1208
+ ],
+ "commit": "81d373633b40628cc3a6b6fb534fd7730076bcdb",
+ "sha256": "1ad6bxa5x95n6i1197p13qy5fgzn1pslwbzqsf4rfy9bvr49g6q3"
+ }
+ },
+ {
+ "ename": "outlined-elisp-mode",
+ "commit": "ae918c301e1c0ae39574ae76d70059718724293b",
+ "sha256": "165sivmv5h4nvh08ampq95x6b0bkzxgrdjbxjxlq6rv00vaidn7v",
+ "fetcher": "github",
+ "repo": "zk-phi/outlined-elisp-mode",
+ "unstable": {
+ "version": [
+ 20131108,
+ 1127
+ ],
+ "commit": "c16cb02b540448919ad148f2be6a41523ee5489c",
+ "sha256": "0d9hfr4kb6rkhwacdn70bkfchgam26gj92zfyaqw77a2sgwcmwwv"
+ }
+ },
+ {
+ "ename": "outlook",
+ "commit": "c5ce3e6800213b117578a1022f25407f2ec1604f",
+ "sha256": "0yq9zl7dr8kkm4rps5np4dwvjfhzsxq9wd1af7zwcmms4l3qry6k",
+ "fetcher": "github",
+ "repo": "asavonic/outlook.el",
+ "unstable": {
+ "version": [
+ 20180428,
+ 1430
+ ],
+ "commit": "359683aff91b38bd1398a6ed4058a06f09a02d65",
+ "sha256": "1kdqwyghrrmwcqkjjr2wq4ig1gsv7mr8fy2y6ddy4zmygblqi6si"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "5847c6f13b106cb54529080e9050be5b8b5be867",
+ "sha256": "13wlfklk342gv5fmzpnz69mc07vm8x6xmh7li1w7f13ci3v4s045"
+ }
+ },
+ {
+ "ename": "outorg",
+ "commit": "8edf78a0ecd2ff8e6e066b80751a31e11a068c3f",
+ "sha256": "10jh64d1nalfig69nnsib46915jinv37lvmxa0aj91zymq2szdm9",
+ "fetcher": "github",
+ "repo": "alphapapa/outorg",
+ "unstable": {
+ "version": [
+ 20190720,
+ 2002
+ ],
+ "commit": "ef0f86f4b893b30be8bcf8b43a5ec357a6c70f07",
+ "sha256": "1dpqr339n2pjc2fdd7sjzy6lyxaxx8yq507rjwn7vk8k1bdwri83"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "e946cda497bae53fca6fa1579910237e216170bf",
+ "sha256": "1v9kx5xr7xcr6i664h2g6j8824yjsjdn5pvgmawvxrrplbjmiqnp"
+ }
+ },
+ {
+ "ename": "outrespace",
+ "commit": "2659a78181b8fe98ca4a80c75ec8c9b6dff44bb5",
+ "sha256": "13xasp9vjb3n0smdhrh9pq1yhhrg3p6z14fmlvf6xqip52rx89hl",
+ "fetcher": "github",
+ "repo": "articuluxe/outrespace",
+ "unstable": {
+ "version": [
+ 20190724,
+ 1553
+ ],
+ "commit": "d8c1619ec81fd3f4e728212a3526cd13bc2b0147",
+ "sha256": "0rcr85slklpaqhx5j8agd8yz6lg66qisniqlbz6zm4vvszqh0r4a"
+ }
+ },
+ {
+ "ename": "outshine",
+ "commit": "8edf78a0ecd2ff8e6e066b80751a31e11a068c3f",
+ "sha256": "1qqmvs17hq5s047nqplg4sa09xg5ck6zwqyg91xmbh71bx80v28v",
+ "fetcher": "github",
+ "repo": "alphapapa/outshine",
+ "unstable": {
+ "version": [
+ 20191112,
+ 1414
+ ],
+ "deps": [
+ "cl-lib",
+ "outorg"
+ ],
+ "commit": "9334b555aaf1426a9e405a57b80809a1615627b3",
+ "sha256": "11r6advraz5rkrxr25mj0wpfgzxcvn5gzppsc7ma51zqfmijg7dk"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "outorg"
+ ],
+ "commit": "3edf0c61e94d36d174120c8080a98023e30a58a2",
+ "sha256": "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"
+ }
+ },
+ {
+ "ename": "ov",
+ "commit": "7a4e84530b4607a277fc3b678fe7b34b1c5e3b4f",
+ "sha256": "0brwf4xng72ybdjz253r3bld5crbi76y341rnhz4l9jg26k2b3hx",
+ "fetcher": "github",
+ "repo": "emacsorphanage/ov",
+ "unstable": {
+ "version": [
+ 20200326,
+ 1042
+ ],
+ "commit": "c5b9aa4e1b00d702eb2caedd61c69a22a5fa1fab",
+ "sha256": "1g3r4jsgvf713jazw0j5mcsbrw9shix9qrc683jm7dccwwrv5pcy"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 6
+ ],
+ "commit": "4e1c254d74bc1773c92f1613c3865cdcb4bc7095",
+ "sha256": "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"
+ }
+ },
+ {
+ "ename": "overcast-theme",
+ "commit": "d86691c61fc880954a05502a6474cc2fa0d0a43b",
+ "sha256": "1v8hdnvc4pfmadkvdm6b8z0cy20pminvhjdlr13q5m9immr88a4r",
+ "fetcher": "github",
+ "repo": "myTerminal/overcast-theme",
+ "unstable": {
+ "version": [
+ 20200425,
+ 1601
+ ],
+ "commit": "e02b835a08919ead079d7221d513348ac02ba92e",
+ "sha256": "0fy8739fbhmixgjxgd1j5v2rjkwhsqac5kczx3mdjlfd2w55k3h7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "commit": "769078cb4a6ea87a31fcea0218c06e1ec689b97c",
+ "sha256": "044g4y8ykh41b3ybxsgsrqvnkq8i1q8q8livh64b2qqrrjzq6mxg"
+ }
+ },
+ {
+ "ename": "overseer",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0zbh0j21h6wsqnqvnzai6y6rpccdciksb7g64qw7fx0cpg5x2ms8",
+ "fetcher": "github",
+ "repo": "tonini/overseer.el",
+ "unstable": {
+ "version": [
+ 20180226,
+ 619
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "pkg-info"
+ ],
+ "commit": "02d49f582e80e36b4334c9187801c5ecfb027789",
+ "sha256": "0q4ai7ividy8xv09s342y49s97ismhfdfsjk70zif60fp0ajfzfn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "pkg-info"
+ ],
+ "commit": "cf532a4e373e3da2077ccbaa48d4bfacd14661ba",
+ "sha256": "0jz8p6bwpfncxwi6ssmi6ngx8sjjica565i6ln0gsr5i11zfb7nx"
+ }
+ },
+ {
+ "ename": "ovpn-mode",
+ "commit": "16430ce0597c18925d7fdf83acfca996e8ad6457",
+ "sha256": "1p0gk3yiq7srpjcqhy0h2402m9ijb3nl9yz2lhnxvc41n9fj65gd",
+ "fetcher": "github",
+ "repo": "anticomputer/ovpn-mode",
+ "unstable": {
+ "version": [
+ 20200509,
+ 236
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3fb9b09506f06cfc7678a93b5401f49d2bf538bc",
+ "sha256": "099pa85v3jqrfk3frkj03xbxcli8gfimaz17dn3a8p6wjcrn3w6v"
+ }
+ },
+ {
+ "ename": "owcmd",
+ "commit": "13e6df2397380eba31ecbf4a7c1214dedaf9cfad",
+ "sha256": "0lg6mk5bmfkiifzxz4ijr10nibr5zcbfxzy9cvg6bnzxns6nhgq5",
+ "fetcher": "github",
+ "repo": "fishyfriend/owcmd",
+ "unstable": {
+ "version": [
+ 20200517,
+ 2039
+ ],
+ "commit": "05fb8f8f81838b5888fdec8b3947096dd2222e61",
+ "sha256": "0y9ldprxhp6nq8m5bxmhw4iq4n78wvdx2jmr5w9wbd0znvi4cbfz"
+ }
+ },
+ {
+ "ename": "owdriver",
+ "commit": "f3f9c1bb19345c6027a945e7f265632da1a391cb",
+ "sha256": "0j8z7ynan0zj581x50gsi9lljkbi6bwmzpfyha3i6q8ch5qkdxfd",
+ "fetcher": "github",
+ "repo": "aki2o/owdriver",
+ "unstable": {
+ "version": [
+ 20200410,
+ 1901
+ ],
+ "deps": [
+ "log4e",
+ "smartrep",
+ "yaxception"
+ ],
+ "commit": "3c52a7b11c8275fdb2e4cf98f68f2a48ad09a3ae",
+ "sha256": "1lxvcbpzpzs3vkgg4pif3k89ddmj5mamk2q18wc3gx0czs6v301d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "log4e",
+ "smartrep",
+ "yaxception"
+ ],
+ "commit": "3c52a7b11c8275fdb2e4cf98f68f2a48ad09a3ae",
+ "sha256": "1lxvcbpzpzs3vkgg4pif3k89ddmj5mamk2q18wc3gx0czs6v301d"
+ }
+ },
+ {
+ "ename": "ox-asciidoc",
+ "commit": "3b268064f09ae5c3d15064b7d197c7af767fb278",
+ "sha256": "07b549dqyh1gk226d7zbls1mw6q4mas7kbfwkansmyykax0r2zyr",
+ "fetcher": "github",
+ "repo": "yashi/org-asciidoc",
+ "unstable": {
+ "version": [
+ 20181230,
+ 620
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "e931362e641f97d17dc738d22bb461e54045786d",
+ "sha256": "045kci7xvlp0kg8gmplnybc7ydv66hkl88dxgd113ac7ipf9zir7"
+ }
+ },
+ {
+ "ename": "ox-bibtex-chinese",
+ "commit": "6c09c708c4372451502923cd3cb756f4f98ba97b",
+ "sha256": "0f3xigrkhc86vv23f76fdd4rjsspsd2ck5c65biq2ds247f4gm61",
+ "fetcher": "github",
+ "repo": "tumashu/ox-bibtex-chinese",
+ "unstable": {
+ "version": [
+ 20170723,
+ 309
+ ],
+ "commit": "2ad2364399229144110db7ef6365ad0461d6a38c",
+ "sha256": "06lp56na1fv87296hhaxgb6gfnzln39p4v245gfxhk0k27589vxj"
+ }
+ },
+ {
+ "ename": "ox-clip",
+ "commit": "6d9ae1e58a1f214a9b88627a2d3254ce7de50740",
+ "sha256": "1sm0ivd8rypnl0z901anjsnbfjwhxqcaagqav82ybdb1z6x1qicv",
+ "fetcher": "github",
+ "repo": "jkitchin/ox-clip",
+ "unstable": {
+ "version": [
+ 20191122,
+ 237
+ ],
+ "deps": [
+ "htmlize",
+ "org"
+ ],
+ "commit": "f5eac28734ea33d0b7a3dbe10b777907a91cf9f9",
+ "sha256": "05ndpkqr4kh2942ygjsa1w53056d60qvl0gmp30dxmzc57v0wb2x"
+ }
+ },
+ {
+ "ename": "ox-epub",
+ "commit": "c3ac31dfef00e83fa6b716ea006f35afb5dc6cd5",
+ "sha256": "15q6vsmgv76c0qfdxa3prqvgmr6n7k4rd4bpi05574ibi23y0ynh",
+ "fetcher": "github",
+ "repo": "ofosos/ox-epub",
+ "unstable": {
+ "version": [
+ 20181101,
+ 1854
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "c9629ef4b4bc40d51afefd8c0bb2c683931e6409",
+ "sha256": "0z1a447v4fy5x6ib8lm4w8m9n2nx41ksbdsjz2xm8iy70is13yd2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "3d958203e169cbfb2204c43cb4c5543befec0b9d",
+ "sha256": "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"
+ }
+ },
+ {
+ "ename": "ox-gfm",
+ "commit": "10e90430f29ce213fe57c507f06371ea0b29b66b",
+ "sha256": "065ngmzfd3g2h8n903hc4d363hz4z5rrdgizh2xpz03kf3plca6q",
+ "fetcher": "github",
+ "repo": "larstvei/ox-gfm",
+ "unstable": {
+ "version": [
+ 20170628,
+ 2102
+ ],
+ "commit": "99f93011b069e02b37c9660b8fcb45dab086a07f",
+ "sha256": "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "99f93011b069e02b37c9660b8fcb45dab086a07f",
+ "sha256": "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8"
+ }
+ },
+ {
+ "ename": "ox-haunt",
+ "commit": "94b0a0a20d25dbe10333bb167d81f036b9fd03e0",
+ "sha256": "00fbljwkinx50b57srziw51k16kbzq2k0xylgjxg9ayy3hqqn5j1",
+ "fetcher": "git",
+ "url": "https://git.sr.ht/~jakob/ox-haunt",
+ "unstable": {
+ "version": [
+ 20200202,
+ 229
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "f3c8fda6fee78f45a259e5d218a519dfd11c00c7",
+ "sha256": "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "f3c8fda6fee78f45a259e5d218a519dfd11c00c7",
+ "sha256": "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"
+ }
+ },
+ {
+ "ename": "ox-html5slide",
+ "commit": "a7a7fd72c9bbb5d90e0e096b791971f2b64b8463",
+ "sha256": "0nqk6chg0ky98ap2higa74786prj7dbwx2a3l67m0llmdajw76qn",
+ "fetcher": "github",
+ "repo": "coldnew/org-html5slide",
+ "unstable": {
+ "version": [
+ 20131228,
+ 606
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "4703dfbd9d79161509def673d2c1e118d722a58f",
+ "sha256": "19h3w3fcas60jv02v7hxjmh05804sb7bif70jssq3qwisj0j09xm"
+ }
+ },
+ {
+ "ename": "ox-hugo",
+ "commit": "1e1240bb7b5bb8773f804b987901566a20e3e8a9",
+ "sha256": "1niarxj2y4a14lrv2nqcc36msw7k61h8fbjpcdrfbaw3n0kchd40",
+ "fetcher": "github",
+ "repo": "kaushalmodi/ox-hugo",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1939
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "75b849e9561c4a6022babf6eaf0e037310ded7c1",
+ "sha256": "1xsxljf99h2pyvpp9gvma6g42q1n2xmhnwvpmciwj5rajw5xqc5v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "9751d34e1133b89a533a978c085b0715f85db648",
+ "sha256": "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"
+ }
+ },
+ {
+ "ename": "ox-impress-js",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1n7g5ykn95565z7kp83pqvm4y8r4p1jmwh0g7pl3kbw48y1521vc",
+ "fetcher": "github",
+ "repo": "nullpofy/org-impress-js.el",
+ "unstable": {
+ "version": [
+ 20150412,
+ 1716
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "91c6d2af6af308ade352a03355c4fb551b238c6b",
+ "sha256": "1kf2si2lyy0xc971bx5zd2j9mnz1smc9s8l0dwc6iksh2v9q8cy9"
+ }
+ },
+ {
+ "ename": "ox-ioslide",
+ "commit": "b960abca4d642c47e640300876eefee1851e6b86",
+ "sha256": "0z0qnvpw64wxbgz8203rphswlh9hd2i11pz2mlay8l3bzz4gx4vc",
+ "fetcher": "github",
+ "repo": "coldnew/org-ioslide",
+ "unstable": {
+ "version": [
+ 20161015,
+ 1338
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "makey",
+ "org"
+ ],
+ "commit": "6555680be5364c8ddd2bf446865cb1a82adb6b9e",
+ "sha256": "05d1bykgj454g0vq2k2sd36pd9hmcwr9a8033dagkqc625h7wj4h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "org"
+ ],
+ "commit": "e81f7a6dab512da7eaa8c2c50c673538b97db267",
+ "sha256": "047fcvpvwzaqisw4q3p6hxgjyqsi2n9nms1qx9w4znvxrnjq8jz3"
+ }
+ },
+ {
+ "ename": "ox-jekyll-md",
+ "commit": "4e7ddae7938158d9da24bee861a88d4875235269",
+ "sha256": "0lfnrikrismcd2zyfb0sf3pwwx12cyki7kzs2mjlswq3sap8w544",
+ "fetcher": "github",
+ "repo": "gonsie/ox-jekyll-md",
+ "unstable": {
+ "version": [
+ 20180831,
+ 1732
+ ],
+ "commit": "ff7b81733354c2b427293e531bb51647fa84fc88",
+ "sha256": "1fb08c1f9rky0akv9y2brbd38d7s36wcc7z9yvvk343p1kxfipid"
+ }
+ },
+ {
+ "ename": "ox-jira",
+ "commit": "e8a77d9c903acd6d7fdcb53f63384144e85589c9",
+ "sha256": "088ks14d7slgs2qsqp1kkxvqzzhdkwphdvpg27ix686dz1krxxib",
+ "fetcher": "github",
+ "repo": "stig/ox-jira.el",
+ "unstable": {
+ "version": [
+ 20200616,
+ 2310
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "e9a47ef51862f11a5c006cf9e8c5f4ec5517aced",
+ "sha256": "1ws3myl2z6vv3idq28m8q97zlrmsfg5z3i8y3adsbm56ga9jqvdj"
+ }
+ },
+ {
+ "ename": "ox-json",
+ "commit": "c648b95620bc7194e18f37fc7bb526e5578d883a",
+ "sha256": "0v0hn0fd6jx2009na1y18bnah7qvmng9riidng0kglkx208a04ay",
+ "fetcher": "github",
+ "repo": "jlumpe/ox-json",
+ "unstable": {
+ "version": [
+ 20191225,
+ 750
+ ],
+ "deps": [
+ "org",
+ "s"
+ ],
+ "commit": "8ce0fae6e8b596b93e05dd512be13973cb3cfa54",
+ "sha256": "1fwwvp4jvdx8namdy0nb68c2jj3nfw7adwp7vk2c2b5cp6fc6cl7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "org",
+ "s"
+ ],
+ "commit": "aba3face2786d53380ee29459c04d16c999e72ac",
+ "sha256": "1y1l7in0fxlyrbd6fz4ixydc6kihfx42n7yh5glpjxahhbzqg9b3"
+ }
+ },
+ {
+ "ename": "ox-latex-subfigure",
+ "commit": "cf83b7597bd6a23b82b88b0927424c9aeb49a03d",
+ "sha256": "19nglrlg4q350vgi13x6yg97nrgav5d51z7jrqg8vim7mbafq7fg",
+ "fetcher": "github",
+ "repo": "linktohack/ox-latex-subfigure",
+ "unstable": {
+ "version": [
+ 20200326,
+ 919
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "be0a0dde62fde8cdf8d72b6968344906aa8c6f54",
+ "sha256": "1afikv50ii4xk9pkg4m6dx246bjnwka37lccif8i5r48hfy5w4bq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "b7445849ae1f16b4b28f7a080301a0a61edf1c83",
+ "sha256": "15wxyzsfp4gilnravs2h4h8vwk0rf8ylzsxzdzlqx0i62wbb79l9"
+ }
+ },
+ {
+ "ename": "ox-leanpub",
+ "commit": "20e1ea346ac6d912e3fbb597b7c65c98a6785132",
+ "sha256": "10nz3dy7dmy8p70fsglbc0gdfhhvr286wby5yccjfaacjkg77ifj",
+ "fetcher": "gitlab",
+ "repo": "zzamboni/ox-leanpub",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1116
+ ],
+ "deps": [
+ "org",
+ "ox-gfm"
+ ],
+ "commit": "8c8d026aa3a31cb6dcd2530ac5902e551b161343",
+ "sha256": "0i88bzcczvhsylcbk7nwx19gn6ydiw8vrgwl2p5njm10vngrjlny"
+ }
+ },
+ {
+ "ename": "ox-mdx-deck",
+ "commit": "13d1a86dfe682f65daf529f9f62dd494fd860be9",
+ "sha256": "1k41sbqcfrj485ps11f6xdb1kxp7kh22k0zhn9vrjb5mxwdilfyl",
+ "fetcher": "github",
+ "repo": "WolfeCub/ox-mdx-deck",
+ "unstable": {
+ "version": [
+ 20181115,
+ 1847
+ ],
+ "deps": [
+ "ox-hugo"
+ ],
+ "commit": "2e46ac76f7ac279c371474cbbf39634bbe40f4c7",
+ "sha256": "1vhfyfdc83js33sm498fm3wmn80wmqnvn5dkabhdbk5gd9a9zdis"
+ }
+ },
+ {
+ "ename": "ox-mediawiki",
+ "commit": "24244d146306ce965df382c8958c7574c74313f2",
+ "sha256": "0lijj2n4saw0xd3jaghbvx9v6a4ldl5gd8wy7s7hfcm30wb75cdb",
+ "fetcher": "github",
+ "repo": "tomalexander/orgmode-mediawiki",
+ "unstable": {
+ "version": [
+ 20180105,
+ 2154
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "a9327150293e370e500ba55bddfe5fc435c6bf9b",
+ "sha256": "0dsq86hli24imdkgsf45asx23kriw9di3d0cf5z8axfpkcbkn770"
+ }
+ },
+ {
+ "ename": "ox-minutes",
+ "commit": "162d0dacbb7252508147edb52fe33b1927a6bd69",
+ "sha256": "13rwcp0k9h7l5g8xw2s2r1xhsmkibhfqyq6hlicvddv232g724sj",
+ "fetcher": "github",
+ "repo": "kaushalmodi/ox-minutes",
+ "unstable": {
+ "version": [
+ 20180202,
+ 1734
+ ],
+ "commit": "27c29f3fdb9181322ae56f8bace8d95e621230e5",
+ "sha256": "10rw12gmg3d6fvkqijmjnk5bdpigvm8fy34435mwg7raw0gmlq75"
+ }
+ },
+ {
+ "ename": "ox-nikola",
+ "commit": "4e3fa1b0728ad3058376800ec5e2e9e3847c1d2f",
+ "sha256": "13k5wggz8bhnfgpsc09jnisk7xdb226d6imp7v6vmd1ax9m2xb0w",
+ "fetcher": "github",
+ "repo": "msnoigrs/ox-nikola",
+ "unstable": {
+ "version": [
+ 20151114,
+ 1116
+ ],
+ "deps": [
+ "org",
+ "ox-rst"
+ ],
+ "commit": "5bcbc1a38f6619f62294194f13ca0cd4ca14dd48",
+ "sha256": "0cc14p6c3d4djfmrkac0abb2jq128vlmayv2a8cyvnyjffyvjbk7"
+ }
+ },
+ {
+ "ename": "ox-pandoc",
+ "commit": "ca17de8cdd53bb32a9d3faaeb38f19f92b18ee38",
+ "sha256": "0wy6yvwd4vyq6xalkrshnfjjxlh1p24y52z49894nz5fl63b74xc",
+ "fetcher": "github",
+ "repo": "kawabata/ox-pandoc",
+ "unstable": {
+ "version": [
+ 20180510,
+ 1338
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "ht",
+ "org"
+ ],
+ "commit": "aa37dc7e94213d4ebedb85c384c1ba35007da18e",
+ "sha256": "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 150707
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "org"
+ ],
+ "commit": "035f1d60a0139349232c382cfd23a96902b7003d",
+ "sha256": "0h49pfl97vl796sm7r62rpv3slj0z5krm4zrqkgz0q6zlyrjay29"
+ }
+ },
+ {
+ "ename": "ox-pukiwiki",
+ "commit": "cd4043336e54c6ae3976068a1af5cfe58713e408",
+ "sha256": "10sfbri5hv5hyx9jc1bzlk4qmzfmpfgfy8wkjkpv7lv2x0axqd8a",
+ "fetcher": "github",
+ "repo": "yashi/org-pukiwiki",
+ "unstable": {
+ "version": [
+ 20150124,
+ 1716
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "bdbde2c294f5d3de11f08a3fe19f01175d2e011a",
+ "sha256": "0adj6gm39qw4ivb7csfh21qqqipcnw1sgm1xdqvrk86kbs9k1b2g"
+ }
+ },
+ {
+ "ename": "ox-qmd",
+ "commit": "e71826e8a8c30b0eb535cce7a379740011b79534",
+ "sha256": "1i2kdpp6prgphc1l42nz7q6vdfsbcn2vvlf10s7dfhhr8jzcyyy7",
+ "fetcher": "github",
+ "repo": "0x60df/ox-qmd",
+ "unstable": {
+ "version": [
+ 20200813,
+ 408
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "8c3d8ce2a21044fc85e5e4e06be0220900d7ba4f",
+ "sha256": "1j6zmjy3s2l2wj500q9i75xd3hf8wlh04ycmmad45swrkgp70f2s"
+ }
+ },
+ {
+ "ename": "ox-reveal",
+ "commit": "8c2f267bb13a2fe5e1af49fd70d831a07d83b7d5",
+ "sha256": "1lsq9xx95nhz1914wx7781fajfs84m27iwv980hqq29lyn2lzbl6",
+ "fetcher": "github",
+ "repo": "yjwen/org-reveal",
+ "unstable": {
+ "version": [
+ 20200802,
+ 710
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "553e1a9d678e74c2646e4c19bd9f6c08d8a00486",
+ "sha256": "18khlffdmg88pd50vwg00vz143ysqhkdkvva9h4bkw618inz70wq"
+ }
+ },
+ {
+ "ename": "ox-rfc",
+ "commit": "d3f49159d6a379bf435e2af8920176fd84693a60",
+ "sha256": "0vqh923223rmhy39p4lwmdv6azba7cddkc1zi5pp3zpcijmhxzk4",
+ "fetcher": "github",
+ "repo": "choppsv1/org-rfc-export",
+ "unstable": {
+ "version": [
+ 20190926,
+ 851
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "b86c9e6f21d99ea657b4f2224f816300485ed73f",
+ "sha256": "1lg4bs0dr4srcgqxv9qi6v53aqq9i8inc1q024ndag4bis2x1q01"
+ }
+ },
+ {
+ "ename": "ox-rst",
+ "commit": "85770d6e235217e98dda9d8b9f027a4ba3ebba96",
+ "sha256": "0447q0gvasii57rp391la9prz0w228jnzgi59s785vzswdryww0n",
+ "fetcher": "github",
+ "repo": "msnoigrs/ox-rst",
+ "unstable": {
+ "version": [
+ 20200815,
+ 1511
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "99fa790da55b57a3f2e9aa187493ba434a64250e",
+ "sha256": "0dxadzbha2fvg42jh4ng8hjb582mv7avlzmpxlzf32qxf6x8r638"
+ }
+ },
+ {
+ "ename": "ox-slack",
+ "commit": "55fda67a19f8799f00c8304a14ab88dde236aa48",
+ "sha256": "0ggw64lx93crfzm1sfwqhsfhaprkbyrjay88nyn43frf7c5l4a63",
+ "fetcher": "github",
+ "repo": "titaniumbones/ox-slack",
+ "unstable": {
+ "version": [
+ 20200108,
+ 1546
+ ],
+ "deps": [
+ "org",
+ "ox-gfm"
+ ],
+ "commit": "89cedb9da6ea08b78bc1fe77d6a39aa078172c1e",
+ "sha256": "0a97la3hwkb792a26c6byavwzg8gca6s0ccajd7pi9p430ys1i9y"
+ }
+ },
+ {
+ "ename": "ox-slimhtml",
+ "commit": "6fae8e3c4abd37a651d4cbdb337a74f1a7c7366a",
+ "sha256": "16jrw8n26iy69ibr29bp3pqp4lm66alihks37qipd2g5grqqfdnd",
+ "fetcher": "github",
+ "repo": "balddotcat/ox-slimhtml",
+ "unstable": {
+ "version": [
+ 20200302,
+ 728
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6f774398d189430593c93e503bf0f3cd0e8bcc25",
+ "sha256": "12axvwqadv0qlvnzrvbi85p94c10r5w6f3gixck0cbz7p8qz678r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 5
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a764ef64235845e4f5cfd73244d6cf1e7fee903b",
+ "sha256": "14h0kks7i2k53fwbsqb4giafacm58inppqpr5mbj904cy146g29f"
+ }
+ },
+ {
+ "ename": "ox-spectacle",
+ "commit": "f441e1b3ee30065f8a68c9b0b45d9db0cac8a289",
+ "sha256": "1nf4765dihlcjbifhb9dinqin27ivqj2s8wzh1hj4vc3n8mdx5pr",
+ "fetcher": "github",
+ "repo": "lorniu/ox-spectacle",
+ "unstable": {
+ "version": [
+ 20181211,
+ 953
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "9d3ec9a6326289074d8620e97d65e3105307ff51",
+ "sha256": "1gm8wwpsq10cfppzl104g3x2g9bha1209p2n8mj9azv71b9mszqx"
+ }
+ },
+ {
+ "ename": "ox-textile",
+ "commit": "02a68a7a99ecce8f1afa03e72ff1f636edaf5868",
+ "sha256": "01kri7vh16xhy8x5qd6s5z08xr0q964rk6xrligdb3i6x78wfvi4",
+ "fetcher": "github",
+ "repo": "yashi/org-textile",
+ "unstable": {
+ "version": [
+ 20180502,
+ 947
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "b179abaa6616604c6efe32cb509e62ad46e7374e",
+ "sha256": "1hwrnnrhrdp5cjn81wipzi5j8zr82kpwlvr6hna2cj2zr3r7a6m8"
+ }
+ },
+ {
+ "ename": "ox-tiddly",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1rpbnz152af588r8kafqpg9aq3ngwjfkrsjqk6w90l5rh280yi39",
+ "fetcher": "github",
+ "repo": "dfeich/org8-wikiexporters",
+ "unstable": {
+ "version": [
+ 20180626,
+ 2052
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "99d0c25d56dbf75ce894a84e776ba4459208dbc2",
+ "sha256": "1812sp7z4241da1mfg4wxm1wcax59cqyy2n0xfd67a1mphihsniz"
+ }
+ },
+ {
+ "ename": "ox-trac",
+ "commit": "4b73753ef9229d0fdfbe237acc63126f1786a494",
+ "sha256": "0f8b3i83vzxzfa91p4ahlqz6njql18xy5nk265sjxpy9zr898rsa",
+ "fetcher": "github",
+ "repo": "JalapenoGremlin/ox-trac",
+ "unstable": {
+ "version": [
+ 20171026,
+ 1823
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "03cc31efb1aa06991918f1071e250a9d58f96cfb",
+ "sha256": "0knrmq0sc8s9c6j0967jmrp2hq8jcwg281qqk89y8j9rpbmhbaj6"
+ }
+ },
+ {
+ "ename": "ox-tufte",
+ "commit": "0e1592b788ef7218cfb4b3da8599b6cd23eef357",
+ "sha256": "15b7aml9nl1kh8gbc086nb155f5mzlh8dmq41zi9frn6gskzjnfk",
+ "fetcher": "github",
+ "repo": "dakrone/ox-tufte",
+ "unstable": {
+ "version": [
+ 20160926,
+ 1607
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "49d7ea78fde063b407ce6fa57739f90c83500682",
+ "sha256": "1hb5s8m8r5nbz2kii1g975m3p4lnfkwraxhd71zhfvagf13wfkxd"
+ }
+ },
+ {
+ "ename": "ox-twbs",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "050rv270jlkc1v7wp47cv9cwr9pz3n840dd4jxxhfs6s47b9ln73",
+ "fetcher": "github",
+ "repo": "marsmining/ox-twbs",
+ "unstable": {
+ "version": [
+ 20200628,
+ 1949
+ ],
+ "commit": "e8a27dc78b7be494d9918f26db7a3bbb6b45020b",
+ "sha256": "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 4
+ ],
+ "commit": "e8a27dc78b7be494d9918f26db7a3bbb6b45020b",
+ "sha256": "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"
+ }
+ },
+ {
+ "ename": "ox-twiki",
+ "commit": "084da2cc725cc23b02657e7adb14ec31532ad25a",
+ "sha256": "1p1k0yg5fxcjgwpq2ix9ckh2kn69m7d5rnz76h14hw9p72cb54r0",
+ "fetcher": "github",
+ "repo": "dfeich/org8-wikiexporters",
+ "unstable": {
+ "version": [
+ 20170803,
+ 2039
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "99d0c25d56dbf75ce894a84e776ba4459208dbc2",
+ "sha256": "1812sp7z4241da1mfg4wxm1wcax59cqyy2n0xfd67a1mphihsniz"
+ }
+ },
+ {
+ "ename": "ox-wk",
+ "commit": "0947993df2d9bee493c2c25760f1ac5bcc1136ac",
+ "sha256": "0rb4xkkqb65ly01lb1gl3gyz4yj9hzv4ydbdzsbvmpj0hrdw5nv3",
+ "fetcher": "github",
+ "repo": "w-vi/ox-wk.el",
+ "unstable": {
+ "version": [
+ 20191231,
+ 2058
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "d34d1b72e4e940745a377bfa745dfb618900a09e",
+ "sha256": "05813w4adafm596x1rikvc7xqk10xwfihdpdq1zr2zyqcpdabqza"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "d34d1b72e4e940745a377bfa745dfb618900a09e",
+ "sha256": "05813w4adafm596x1rikvc7xqk10xwfihdpdq1zr2zyqcpdabqza"
+ }
+ },
+ {
+ "ename": "p4",
+ "commit": "a7e2fa7af647e0dbf5ade5c32d1984b133156b6f",
+ "sha256": "0215li17gn35wmvd84gnp4hkwa2jd81wz4frb1cba2b5j33rlprc",
+ "fetcher": "github",
+ "repo": "gareth-rees/p4.el",
+ "unstable": {
+ "version": [
+ 20150721,
+ 1937
+ ],
+ "commit": "eff047caa75dbe4965defca9d1212454cdb755d5",
+ "sha256": "12jsnfppif4l548wymvakx0f2zlm63xs6kfrb49hicmk668cq4ra"
+ }
+ },
+ {
+ "ename": "pabbrev",
+ "commit": "c032b0d126e0196b4526ee04f5103582610681ea",
+ "sha256": "1mbfa40pbzbi00sp155zm43sj6nw221mcayc2rk3ppin9ps95hx3",
+ "fetcher": "github",
+ "repo": "phillord/pabbrev",
+ "unstable": {
+ "version": [
+ 20160320,
+ 2101
+ ],
+ "commit": "56400d5d256b42ffe45c229ea9827f026b650cf5",
+ "sha256": "09bn19ydyz1hncmvyyh87gczp3lmlczpm352p0107z1gw6xmpjil"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 1
+ ],
+ "commit": "127a8b10cf352b0491fefd2f4178ba78ee587564",
+ "sha256": "073qpa223ja673p63mhvy4l6yyv3k7z05ifwvn7bmq4b5fq42hw6"
+ }
+ },
+ {
+ "ename": "pacfiles-mode",
+ "commit": "bec20443188d9218235c4b31840544a7b1e0690d",
+ "sha256": "08yc3w7zvckg8s1g707hvbbkvi2k52jrk2iwlj0sk22ih3q3yaa9",
+ "fetcher": "github",
+ "repo": "UndeadKernel/pacfiles-mode",
+ "unstable": {
+ "version": [
+ 20200418,
+ 1806
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "222ae3f540cddee306067c83451cfece1112c09e",
+ "sha256": "1ps6blv2jhm4i2gr1fbsr1lii9cpr99prhwnxvhxxxy08c9b6mrx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "180eea7ba33dc4fa5c116b01649c4e9ba3f43276",
+ "sha256": "07ki2dz459nv4jshmgk2gq1b8c0x3iqy3nf9rwv0w3b3qm70gn3f"
+ }
+ },
+ {
+ "ename": "pack",
+ "commit": "96f55c1f15ca24134da378a1ea31f7bb31c84ea9",
+ "sha256": "0lwdhfrpqwpqqg3yhcyj11jv2mm8k9k54qdxlhdi8sxj1fdxmanw",
+ "fetcher": "github",
+ "repo": "10sr/pack-el",
+ "unstable": {
+ "version": [
+ 20191017,
+ 456
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "85cd856fdc00a2365e88b50373b99f1b3d2227be",
+ "sha256": "0v95ni44scn42mm6mwrdi1vbi1n2h4bw961apm7bp6ilamwpbif8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "85cd856fdc00a2365e88b50373b99f1b3d2227be",
+ "sha256": "0v95ni44scn42mm6mwrdi1vbi1n2h4bw961apm7bp6ilamwpbif8"
+ }
+ },
+ {
+ "ename": "package+",
+ "commit": "49cfbbc4535aa7e175aa819d67b8aa52a6f94384",
+ "sha256": "1mbsxr4llz8ny7n7w3lykld9yvbaywlfqnvr9l0aiv9rvmdv03bn",
+ "fetcher": "github",
+ "repo": "zenspider/package",
+ "unstable": {
+ "version": [
+ 20190702,
+ 253
+ ],
+ "commit": "3d108ff6af00d2fe978787217a13660af057cafc",
+ "sha256": "1ssrm6qafy0a49lpnqfs9va56m0mympavwr8rv5fyzrj97vqiabp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "4a9618a44ec4f26a14e0136cd9d3c4855fceb25b",
+ "sha256": "1xv0ra130qg0ksgqi4npspnv0ckq77k7f5kcibavj030h578kj97"
+ }
+ },
+ {
+ "ename": "package-build",
+ "commit": "948fb86b710aafe6bc71f95554655dfdfcab0cca",
+ "sha256": "0kr82j9rbvmapsph0jdxy24p0b8mcnj01sg1myywf428nf30cgbh",
+ "fetcher": "github",
+ "repo": "melpa/package-build",
+ "unstable": {
+ "version": [
+ 20200601,
+ 1939
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4cb0f98a21729f9ef0189f095384555c9d2b6fe4",
+ "sha256": "0ij6p7i5x0fs0yn8zxcx7gf9ldanflh7mj7mblr8snpgbzx3jwnz"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bc06686806d676658b5e962497770e47025c17f1",
+ "sha256": "1lm5mgvjhpxqfw5gcv99h4mwbq728b6f2hj5vjh1j67kdwy7ws8k"
+ }
+ },
+ {
+ "ename": "package-filter",
+ "commit": "89312eaf69f3d7ac46647255c847fcb45415e78d",
+ "sha256": "0am73zch2fy1hfjwzk8kg0j3lgbcz3hzxjrdf0j0a9w0myp0mmjm",
+ "fetcher": "github",
+ "repo": "milkypostman/package-filter",
+ "unstable": {
+ "version": [
+ 20161122,
+ 719
+ ],
+ "commit": "bc73b41aea1d65ca44ef1593ca13126df9bbb39e",
+ "sha256": "0fq31zcz5j0n29p3zmx2k2w0xvay24zs34mbq8nb0y0jr7ycm184"
+ }
+ },
+ {
+ "ename": "package-lint",
+ "commit": "e35516a9733d9ba39f7df441346d2624bc6dd5e7",
+ "sha256": "0yy39gywsw48isfgq9k7c5ibgfkaxiig0jbgmmd9s5a0rmrydiwf",
+ "fetcher": "github",
+ "repo": "purcell/package-lint",
+ "unstable": {
+ "version": [
+ 20200816,
+ 24
+ ],
+ "deps": [
+ "cl-lib",
+ "let-alist"
+ ],
+ "commit": "c4b16a90196d6d83d6ba668923c1ce725e13a5d6",
+ "sha256": "0kz8snjl0802ypxzag2n7552f6ssmj0hxx4lkal4v421pr2cqka6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13
+ ],
+ "deps": [
+ "cl-lib",
+ "let-alist"
+ ],
+ "commit": "9e28a5cd08e94db0ba4fb8847fa970c98316facc",
+ "sha256": "03pim9ijqmjqyv0qlkap5jw47iv9qsw1d7s2p9vrqjnpf4jxcq70"
+ }
+ },
+ {
+ "ename": "package-lint-flymake",
+ "commit": "dbfb0250a58b2e31c32ff1496ed66a3c5439bd67",
+ "sha256": "076v3xvbxym7dwwl95j8kynj9kj2xw3gzq6qv6qkm0xls7df4yjz",
+ "fetcher": "github",
+ "repo": "purcell/package-lint",
+ "unstable": {
+ "version": [
+ 20191116,
+ 45
+ ],
+ "deps": [
+ "package-lint"
+ ],
+ "commit": "c4b16a90196d6d83d6ba668923c1ce725e13a5d6",
+ "sha256": "0kz8snjl0802ypxzag2n7552f6ssmj0hxx4lkal4v421pr2cqka6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13
+ ],
+ "deps": [
+ "package-lint"
+ ],
+ "commit": "9e28a5cd08e94db0ba4fb8847fa970c98316facc",
+ "sha256": "03pim9ijqmjqyv0qlkap5jw47iv9qsw1d7s2p9vrqjnpf4jxcq70"
+ }
+ },
+ {
+ "ename": "package-safe-delete",
+ "commit": "61b961211276bd95655b6a0967eda5037a3d240b",
+ "sha256": "12ss5yjhnyxsif4vlbgxamn5jfa0wxkkphffxnv6drhvmpq226jw",
+ "fetcher": "github",
+ "repo": "Fanael/package-safe-delete",
+ "unstable": {
+ "version": [
+ 20150116,
+ 1607
+ ],
+ "deps": [
+ "epl"
+ ],
+ "commit": "138171e4fc03c0ef05a8260cbb5cd2e114c1c194",
+ "sha256": "1pdv6d6bm5jmpgjqf9ycvzasxz1205zdi0zjrmkr33c03azwz7rd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 7
+ ],
+ "deps": [
+ "epl"
+ ],
+ "commit": "138171e4fc03c0ef05a8260cbb5cd2e114c1c194",
+ "sha256": "1pdv6d6bm5jmpgjqf9ycvzasxz1205zdi0zjrmkr33c03azwz7rd"
+ }
+ },
+ {
+ "ename": "package-utils",
+ "commit": "a1bb884a0299408daa716eba42cb39f79622766c",
+ "sha256": "02hgh7wg68ysfhw5hckrpshzv4vm1vnm395d34x6vpgl4ccx7v9r",
+ "fetcher": "github",
+ "repo": "Silex/package-utils",
+ "unstable": {
+ "version": [
+ 20180514,
+ 1415
+ ],
+ "deps": [
+ "restart-emacs"
+ ],
+ "commit": "5621b95c56b55499f0463fd8b29501da25d861bd",
+ "sha256": "1mhsf0l0253d9b7n3c68mw5kwnsk7wf217y7m2fiybh51bdgjfnd"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "restart-emacs"
+ ],
+ "commit": "5621b95c56b55499f0463fd8b29501da25d861bd",
+ "sha256": "1mhsf0l0253d9b7n3c68mw5kwnsk7wf217y7m2fiybh51bdgjfnd"
+ }
+ },
+ {
+ "ename": "packed",
+ "commit": "57a2fb9524df3fdfdc54c403112e12bd70888b23",
+ "sha256": "103z6fas2fkvlhvwbv1rl6jcij5pfsv5vlqqsb4dkq1b0s7k11jd",
+ "fetcher": "github",
+ "repo": "emacscollective/packed",
+ "unstable": {
+ "version": [
+ 20180318,
+ 1729
+ ],
+ "commit": "c41c3dfda86ae33832ffc146923e2a4675cbacfa",
+ "sha256": "1272xmb3l8ddfijqzci3x0kxwibqb0sbkci4rbcv9ba9hpxp4d1v"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "commit": "c41c3dfda86ae33832ffc146923e2a4675cbacfa",
+ "sha256": "1272xmb3l8ddfijqzci3x0kxwibqb0sbkci4rbcv9ba9hpxp4d1v"
+ }
+ },
+ {
+ "ename": "pacmacs",
+ "commit": "52ce427e046267655dd9f836e57176d59f23e601",
+ "sha256": "0w0r6z365jrglpbifb94w6c22wqi9x93qgkss9pn820hrndqbqxy",
+ "fetcher": "github",
+ "repo": "codingteam/pacmacs.el",
+ "unstable": {
+ "version": [
+ 20160131,
+ 832
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "dash-functional",
+ "f"
+ ],
+ "commit": "d813e9c62c2540fe619234824fc60e128c786442",
+ "sha256": "0zx72qbqy2n1r6mjylw67zb6nnchp2b49vsdyl0k5bdaq2xyqv6i"
+ }
+ },
+ {
+ "ename": "pact-mode",
+ "commit": "b8e11b488c937ac9290f2e6acde92a87024a9012",
+ "sha256": "1awmczhz4cl2vxrn0h1wqkrhy1n9p4j3ayksvgifr4cfhqlsxk6v",
+ "fetcher": "github",
+ "repo": "kadena-io/pact-mode",
+ "unstable": {
+ "version": [
+ 20191117,
+ 2337
+ ],
+ "commit": "220bf985cb31d60f47042d5f424de8b9a589e544",
+ "sha256": "0cz87z2y54lqvsl2xhpjmndccj7051f2v9qpqrjr3qdwmfr6azsw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "commit": "5df7032cf9b61ae5aff36ac7d2a23b2ab0e00904",
+ "sha256": "0hdg5b3mnld8pcfiawn51dc65dfws6gr7j4fvjc2gnhypy36l8xl"
+ }
+ },
+ {
+ "ename": "paganini-theme",
+ "commit": "d6fbb609b411df4fe6f66a7afe27eda7d297f140",
+ "sha256": "1kypkf52hjlfj75pcmjf2a60m6iwj0y1dspjwqynzz3l48i6ippm",
+ "fetcher": "github",
+ "repo": "onurtemizkan/paganini",
+ "unstable": {
+ "version": [
+ 20180815,
+ 1921
+ ],
+ "commit": "255c5a2a8abee9c5935465ec42b9c3604c178c3c",
+ "sha256": "0qhmj8dyy722ds8cmwghhxknwwis1w64wix2hdmzs21c5pa5hgkw"
+ }
+ },
+ {
+ "ename": "page-break-lines",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0i5kx191wnq9763jyqxbyh33hvdaqbd98a1rhgqd97zhvg0hslz1",
+ "fetcher": "github",
+ "repo": "purcell/page-break-lines",
+ "unstable": {
+ "version": [
+ 20200305,
+ 244
+ ],
+ "commit": "f8c4cd7fc67638ae4113551dcffdf87fcd252d9b",
+ "sha256": "1jh7mdry3ysgl9dvrrbx7b9f5dh4bm6gccibpcdnm9pgpfj2bm29"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 11
+ ],
+ "commit": "67b5928a7f14568baf2716b5741e13659a86b9ea",
+ "sha256": "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"
+ }
+ },
+ {
+ "ename": "pager",
+ "commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
+ "sha256": "0s5zwimkbsivbwlyd7g8dpnjyzqcfc5plg53ij4sljiipgjh5brl",
+ "fetcher": "github",
+ "repo": "emacsorphanage/pager",
+ "unstable": {
+ "version": [
+ 20151202,
+ 120
+ ],
+ "commit": "5c791ed23f1136e04040d6f4bc9b4ca5b6dc919f",
+ "sha256": "198zlh7zrql1185b9qjim44a09kbbgs9zyahak9nhv1gxqn7mrdf"
+ }
+ },
+ {
+ "ename": "pager-default-keybindings",
+ "commit": "87faee8c9820dd47feccdfbce7fd57dbe2800405",
+ "sha256": "0vqb3s1fxkl1fxxspq89344s55sfcplz26z0pbh347l1681h3pci",
+ "fetcher": "github",
+ "repo": "nflath/pager-default-keybindings",
+ "unstable": {
+ "version": [
+ 20130719,
+ 2057
+ ],
+ "deps": [
+ "pager"
+ ],
+ "commit": "dbbd49c2ac5906d1dabf9e9c832bfebc1ab405b3",
+ "sha256": "11msqs8v9wn8sj45dw1fl0ldi3sw33v0xclynbxgmawyabfq3bqm"
+ }
+ },
+ {
+ "ename": "palimpsest",
+ "commit": "14f6d011a0314637a2f4c1b00efa4912e67b7fa4",
+ "sha256": "18kklfdlcg982pdrslh0xqa42h28f91bdm7q2zn890d6dcivp6bk",
+ "fetcher": "github",
+ "repo": "danielsz/Palimpsest",
+ "unstable": {
+ "version": [
+ 20200804,
+ 2308
+ ],
+ "commit": "f474b3ad706373d9953abdc401d683a2a023d28e",
+ "sha256": "0wzxl1zcbm3svspjpjzvx92is1k9sz7g0a99r8q066j2364la0zh"
+ }
+ },
+ {
+ "ename": "pallet",
+ "commit": "bf977287e9bd668efbd972c9937906384ee832c6",
+ "sha256": "0q50cdwnn2w1n5h4bappncjjyi5yaixxannwgy23fngdrz1mxwd7",
+ "fetcher": "github",
+ "repo": "rdallasgray/pallet",
+ "unstable": {
+ "version": [
+ 20150512,
+ 702
+ ],
+ "deps": [
+ "cask",
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "b8d0df1883224a371ac0a3bc9b9c1c4dc61e6ac0",
+ "sha256": "0j87yq8rycklk8df4rlwx0bp2n94pyhaz4yv8vacbqrzchpa1bb0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 2
+ ],
+ "deps": [
+ "cask",
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "0e1ae11e1ebfe644cbf832df62ac2dbf6ecd0501",
+ "sha256": "03mlg6dmpjw8fq2s3c4gpqj20kjhzldz3m51bf6s0mxq9bclx2xw"
+ }
+ },
+ {
+ "ename": "pamparam",
+ "commit": "03de45e491e970cc5733950a825b98545b5ac24b",
+ "sha256": "01n35a3fnwbb7w2qpk8b5f9wwmr6d5jcjzcv6gnc1768a43p9yzf",
+ "fetcher": "github",
+ "repo": "abo-abo/pamparam",
+ "unstable": {
+ "version": [
+ 20200410,
+ 1155
+ ],
+ "deps": [
+ "hydra",
+ "lispy",
+ "worf"
+ ],
+ "commit": "f9d83bbf5eb883bce6873dd6fd97484b6805215c",
+ "sha256": "0av69k6psrpmyadm2r0frwdbqyvpa4flzkrmi88w0vx3g0cxiv2k"
+ }
+ },
+ {
+ "ename": "panda",
+ "commit": "69800de45dda180450ed9d47a24181b659d9d1ae",
+ "sha256": "04app7ni9q04v7pi1ppi5qgx5klcpawflmbsj58y33gz29di1zjk",
+ "fetcher": "github",
+ "repo": "sebasmonia/panda",
+ "unstable": {
+ "version": [
+ 20200715,
+ 338
+ ],
+ "commit": "6508ac3228975c39d10a1caa70b9ce34ff3ed21d",
+ "sha256": "019nigy5yh1qrzw0agp2kgjfpfm503fgkj07c9m2xqs9hww781x1"
+ }
+ },
+ {
+ "ename": "panda-theme",
+ "commit": "a90ca1275ceab8e1ea4fdfa9049fbd24a5fd0bf5",
+ "sha256": "1q3zp331hz8l54p8ym9jrs4f36aj15r8aka6bqqnalnk237xqxl7",
+ "fetcher": "github",
+ "repo": "jamiecollinson/emacs-panda-theme",
+ "unstable": {
+ "version": [
+ 20181128,
+ 1738
+ ],
+ "commit": "60aa47c7a930377807da0d601351ad91e8ca446a",
+ "sha256": "169khnipnxv0y412wc2r5nsh9d9zwpdyip0l9ayyzb19zdjl1l47"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "ae24179e7a8a9667b169f00dbd891257530c1d22",
+ "sha256": "05vv4idl9h59jd089hpd09xcy1ix30bq0c4fif2b66170aychvii"
+ }
+ },
+ {
+ "ename": "pandoc",
+ "commit": "d6c21ff09d67fad2658e0de08bc2edb7588c504a",
+ "sha256": "0x81anxam7agr2v2zqgc331zs5s5zxcw54kzpanndda23n51h5cc",
+ "fetcher": "github",
+ "repo": "zonuexe/pandoc.el",
+ "unstable": {
+ "version": [
+ 20161128,
+ 1157
+ ],
+ "commit": "198d262d09e30448f1672338b0b5a81cf75e1eaa",
+ "sha256": "0njc6xlwa8hihyqrk0hs12sb6rs7jma2wpjfr8xsj9p8jld4y359"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "0f59533bbd8494fea3172551efb6ec49f61ba285",
+ "sha256": "0xqd64k8liaywsf65apj5xmf7ip6sikjmpc4740nld8iywhq8gf4"
+ }
+ },
+ {
+ "ename": "pandoc-mode",
+ "commit": "4e39cd8e8b4f61c04fa967def6a653bb22f45f5b",
+ "sha256": "0qvc6cf87h1jqf590kd68jfg25snxaxayfds634wj4z6gp70l781",
+ "fetcher": "github",
+ "repo": "joostkremers/pandoc-mode",
+ "unstable": {
+ "version": [
+ 20200303,
+ 2322
+ ],
+ "deps": [
+ "dash",
+ "hydra"
+ ],
+ "commit": "befd7be704d6dbe3dba69da761fc62e0609c9366",
+ "sha256": "0c621viqjss1ynzgcb81afck9rl1lwadzq68vas4gb2zjb5dd06h"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 27,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "hydra"
+ ],
+ "commit": "7b9a19d8777a21431a819281a14201bfdf1dfdc1",
+ "sha256": "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"
+ }
+ },
+ {
+ "ename": "pangu-spacing",
+ "commit": "c0b00eda1d20ff2cbffe3ac606e5fd60d915a5d6",
+ "sha256": "082qh26vlk7kifz1800lyai17yvngwjygrfrsh1dsd8dxhk6l9j8",
+ "fetcher": "github",
+ "repo": "coldnew/pangu-spacing",
+ "unstable": {
+ "version": [
+ 20190823,
+ 401
+ ],
+ "commit": "f92898949ba3bf991fd229416f3bbb54e9c6c223",
+ "sha256": "0c8ad30313598mggjiq4szz1alc6kcswh7i8447kdci241rlyqrf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "034b4ef8a1b29bf7bfed6a916380941506ed26ed",
+ "sha256": "0gmdzagyg0p7q1gyj2a3aqp2g4asljpib3n67nikr0v99c2mki5y"
+ }
+ },
+ {
+ "ename": "paper-theme",
+ "commit": "a7ea18a56370348715dec91f75adc162c800dd10",
+ "sha256": "1ph6c6g907cnxzl74byc754119qia8rs8y7wvaj8i6q3fz2658zr",
+ "fetcher": "github",
+ "repo": "cadadr/elisp",
+ "unstable": {
+ "version": [
+ 20200510,
+ 5
+ ],
+ "commit": "61a14d1a8c17930caca5c5daf893cedc9c23c5f3",
+ "sha256": "0acq8d8vlx3hd405wmi5w36gg88bz1c1crmlxbd2whgi8kyf506z"
+ }
+ },
+ {
+ "ename": "paperless",
+ "commit": "500be17952ffb6b8d1e524b5b3d316878202fabc",
+ "sha256": "182arnx2fz0dww6bvg6m70a1picqd3czmzwv92x0rb4ghwrnq2dq",
+ "fetcher": "github",
+ "repo": "atgreen/paperless",
+ "unstable": {
+ "version": [
+ 20180224,
+ 1245
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "s"
+ ],
+ "commit": "b3b6c05da393f6b1292a3d5937bc4499baabd0b6",
+ "sha256": "1b2gm823qd6bllgp9qg2vgskzg4rpdvh8bgic8708hkq6lwpdv70"
+ }
+ },
+ {
+ "ename": "paradox",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "1xq14nfvprsq18464qr4mhphq7cl1f570lji5n8z6j9vpfm9a4p2",
+ "fetcher": "github",
+ "repo": "Malabarba/paradox",
+ "unstable": {
+ "version": [
+ 20191011,
+ 1111
+ ],
+ "deps": [
+ "hydra",
+ "let-alist",
+ "seq",
+ "spinner"
+ ],
+ "commit": "339fe3518d1d102b2295670340e75caf4f01a29a",
+ "sha256": "05hwwdhx980jm1y495r8qng029wm02m45mm7w4wxyjhh6385rbzf"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 5,
+ 4
+ ],
+ "deps": [
+ "hydra",
+ "let-alist",
+ "seq",
+ "spinner"
+ ],
+ "commit": "d24fe4a329a939ffa1983886d77a6937e05149e4",
+ "sha256": "1v78nmqyx60ki64wql7faq6ihv2qbk72sb19cy6hnypi546d81yp"
+ }
+ },
+ {
+ "ename": "parchment-theme",
+ "commit": "f2302f512053b22e5abbd6a654cf94e4d5c7f5ca",
+ "sha256": "1dkl1f0zmnkw8xd89m5kd42rk4pg6a6wnm52g4p1b4yqqq27h6zm",
+ "fetcher": "github",
+ "repo": "ajgrf/parchment",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1259
+ ],
+ "deps": [
+ "autothemer"
+ ],
+ "commit": "271ab4b7d023d730e3d684a1505cc77e2d0cc14a",
+ "sha256": "138n4fs33cv2ly89cvs7lkh372kghldhw8pw18zsi39qfvggw6wm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "b4dabed7939f8cf052c858ba29e295eee3f0ca13",
+ "sha256": "0361621f0xg786dvcw6xrfm9qkjr19cs8dkxgj8b5nq9isxyknh5"
+ }
+ },
+ {
+ "ename": "paredit",
+ "commit": "caaa21f235c4864f6008fb454d0a970a2fd22a86",
+ "sha256": "01qh8kfb5hyfi0jfl1kq3inkyzr0rf3wncmzgxlkfdc8zlq4v653",
+ "fetcher": "git",
+ "url": "https://mumble.net/~campbell/git/paredit.git",
+ "unstable": {
+ "version": [
+ 20191121,
+ 2328
+ ],
+ "commit": "8330a41e8188fe18d3fa805bb9aa529f015318e8",
+ "sha256": "10zm5nfs8sx1cmjifjcy6xj3285hx1936xc3kbf6ndzpcqgb9yd5"
+ },
+ "stable": {
+ "version": [
+ 24
+ ],
+ "commit": "82bb75ceb2ddc272d6618d94874b7fc13181a409",
+ "sha256": "13wzz5fahbz5svc4ql3ajzzpd1fv0ynwpa5widklbcp5yqncv1vm"
+ }
+ },
+ {
+ "ename": "paredit-everywhere",
+ "commit": "593890222d074c6a308eb1b809077c6861e1af30",
+ "sha256": "0gbkwk8mrbjr2l8pz3q4y6j8q4m12zmzl31c88ngs1k5d86wav36",
+ "fetcher": "github",
+ "repo": "purcell/paredit-everywhere",
+ "unstable": {
+ "version": [
+ 20180506,
+ 849
+ ],
+ "deps": [
+ "paredit"
+ ],
+ "commit": "f04c522e6b088a11255a95cb1e6a08198b4d6537",
+ "sha256": "1jp6wk4zkfcma4akchbdh8wg5fi0i74m4cgnqnmvbyzwkbj6sf0q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "paredit"
+ ],
+ "commit": "72b7cd5dcdc02233a32e9f1a6c2d21dc30532170",
+ "sha256": "0jbjwjl92pf0kih3p2x20ms2kpyzzam8fir661nimpmk802ahgkj"
+ }
+ },
+ {
+ "ename": "paredit-menu",
+ "commit": "8a6379588b373fca2769b8761de4ba13545c082c",
+ "sha256": "05jp4cc548x5f07k096dgizhivdpaajxq38hin831sm0p9cibm4p",
+ "fetcher": "github",
+ "repo": "phillord/paredit-menu",
+ "unstable": {
+ "version": [
+ 20160128,
+ 1733
+ ],
+ "deps": [
+ "paredit"
+ ],
+ "commit": "cc0ae85bd819f9ebfa4f2a419ab3b2d70e39c9c8",
+ "sha256": "15xkanrwxh3qqay3vkfqvhzs88g7nnfv9bqk509qflyhqnvc9sxr"
+ }
+ },
+ {
+ "ename": "paren-completer",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1k71nmsf155b4pvzcsymsc1bn42h9apypapkvc1kxyr6zm29zcr4",
+ "fetcher": "github",
+ "repo": "MatthewBregg/paren-completer",
+ "unstable": {
+ "version": [
+ 20160501,
+ 1052
+ ],
+ "commit": "74183a8e13fa1266271bdcbcb4bfb29a4f915f0a",
+ "sha256": "1il0gbyjnlxhk04z3lgxmvlmlhgc94rmxdf8nl5sk3gblqmr8v3b"
+ }
+ },
+ {
+ "ename": "paren-face",
+ "commit": "d398398d1d5838dc4985a06515ee668f0f566aab",
+ "sha256": "0dmzk66m3rd8x0rb925pyrfpc2qsvayks4kmhpb2ccdrx68pg8gf",
+ "fetcher": "github",
+ "repo": "tarsius/paren-face",
+ "unstable": {
+ "version": [
+ 20200103,
+ 1238
+ ],
+ "commit": "eb4a51b8ef455e0914108105e7c0008d675457cc",
+ "sha256": "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 6
+ ],
+ "commit": "eb4a51b8ef455e0914108105e7c0008d675457cc",
+ "sha256": "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"
+ }
+ },
+ {
+ "ename": "parent-mode",
+ "commit": "9736d8f6c3065c46b8c4e0056e9d592d3ec973e9",
+ "sha256": "1ndn6m6aasmk9yrml9xqj8141100nw7qi1bhnlsss3v8b6njwwig",
+ "fetcher": "github",
+ "repo": "Fanael/parent-mode",
+ "unstable": {
+ "version": [
+ 20150824,
+ 2300
+ ],
+ "commit": "db692cf08deff2f0e973e6e86e26662b44813d1b",
+ "sha256": "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3
+ ],
+ "commit": "db692cf08deff2f0e973e6e86e26662b44813d1b",
+ "sha256": "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"
+ }
+ },
+ {
+ "ename": "parinfer",
+ "commit": "470ab2b5cceef23692523b4668b15a0775a0a5ba",
+ "sha256": "05w4w7j6xyj19dm63073amd4n7fw4zm3qnn4x02fk2011iw8fq7i",
+ "fetcher": "github",
+ "repo": "DogLooksGood/parinfer-mode",
+ "unstable": {
+ "version": [
+ 20180904,
+ 844
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "eaad857ae4351f72a561ee3dec8943713510003f",
+ "sha256": "1yjq2ddqmsl9jfy4qggwk5f8602ybvsx5qd544whm2b5xm0c5z9y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 10
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "5b3b247d68eeaf7404598cbcbf2158e07f16e65d",
+ "sha256": "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"
+ }
+ },
+ {
+ "ename": "parinfer-rust-mode",
+ "commit": "b35f28995db0c21ecaadd5504a10aa2ee5ac2070",
+ "sha256": "06003hh19k1087s8lvsbl04as2yph1zw9qr844s4rbyi838d4pc1",
+ "fetcher": "github",
+ "repo": "justinbarclay/parinfer-rust-mode",
+ "unstable": {
+ "version": [
+ 20200802,
+ 2026
+ ],
+ "commit": "9e2e91cf1697582a396a5365f24d74634acfc744",
+ "sha256": "1ii73zlpdvi5fxp6ajyn8h7xvxgc5iz58zr5g4vk0flm1vw6v5kn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 1
+ ],
+ "commit": "9e2e91cf1697582a396a5365f24d74634acfc744",
+ "sha256": "1ii73zlpdvi5fxp6ajyn8h7xvxgc5iz58zr5g4vk0flm1vw6v5kn"
+ }
+ },
+ {
+ "ename": "parrot",
+ "commit": "b1b393ffb9b7691e8fc99bee5fc676463038a68d",
+ "sha256": "0m67b80vc3qivcxs4w6fpzdg6h9d8s75251rlhnbc0xp7271zgnk",
+ "fetcher": "github",
+ "repo": "dp12/parrot",
+ "unstable": {
+ "version": [
+ 20191015,
+ 2127
+ ],
+ "commit": "29265d118267e524453aaa9121c4eae213a63164",
+ "sha256": "04mpwsn16i00rbjyd3959kjyw1qn9xw9d9as6syhsfq5mzhwksni"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "13757524f1c708b866f4aaab5a9fb3599a1c4f56",
+ "sha256": "02anyi6mhw457pwsna3ycn1yxsavsmp6p96ffpwg1s7qidc44a4s"
+ }
+ },
+ {
+ "ename": "parse-csv",
+ "commit": "010a182f7424928036231774c2fe17b857e3ca40",
+ "sha256": "0khpfxbarw0plx8kka357d8wl1vvdih5797xlld9adc0g3cng0zz",
+ "fetcher": "github",
+ "repo": "mrc/el-csv",
+ "unstable": {
+ "version": [
+ 20160512,
+ 1723
+ ],
+ "commit": "96bef1ffbc89ea12d13311c9fa239c5c3e864890",
+ "sha256": "06xg6f74697zmn042wg259qlik2l21k4al08a06xz4gv9a83nsx6"
+ }
+ },
+ {
+ "ename": "parse-it",
+ "commit": "3f163ca64c2533603410f320c7e9b9b1c2635458",
+ "sha256": "076b981jdhgv7kqdj6xnckp3x25wfymy0il9fffrpyfs7hrcdzgf",
+ "fetcher": "github",
+ "repo": "jcs-elpa/parse-it",
+ "unstable": {
+ "version": [
+ 20200720,
+ 1047
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "abf2b7528ea2ec5c45f99664a6ab9509ccd954f3",
+ "sha256": "1v4a07gnaccqnl1r0r8yhw6ka6f8nh0p8j0lr562ik6cbfljf04a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 8
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "abf2b7528ea2ec5c45f99664a6ab9509ccd954f3",
+ "sha256": "1v4a07gnaccqnl1r0r8yhw6ka6f8nh0p8j0lr562ik6cbfljf04a"
+ }
+ },
+ {
+ "ename": "parsebib",
+ "commit": "c39633957475dcd6a033760ba20a957716cce59c",
+ "sha256": "07br2x68scsxykdk2ajc4mfqhdb7vjkcfgz3vnpy91sirxzgfjdd",
+ "fetcher": "github",
+ "repo": "joostkremers/parsebib",
+ "unstable": {
+ "version": [
+ 20200513,
+ 2352
+ ],
+ "commit": "3497b6068d78ae15ba1eaf94e4315d18e9ae6b00",
+ "sha256": "0vf9qrkc4dna2f9l0ry1qhfxy7yw1dlilgh38dlp42kqdyp5qny8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 3
+ ],
+ "commit": "683c970a6fb51591bc88ee80e295fedee876e044",
+ "sha256": "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"
+ }
+ },
+ {
+ "ename": "parsec",
+ "commit": "248aaf5ff9c98cd3e439d0a26611cdefe6b6c32a",
+ "sha256": "1p3364sv5r868xjj1411xqj4acxqmbzcdl900sd03585ql5wbypj",
+ "fetcher": "github",
+ "repo": "cute-jumper/parsec.el",
+ "unstable": {
+ "version": [
+ 20180730,
+ 16
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26",
+ "sha256": "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8f0c266d8b9b0ee5fcf9b80c518644b2849ff3b3",
+ "sha256": "1zwdh3dwqvw9z79mxgf9kf1l2c0pb32sknhrs7ppca613nk9c58j"
+ }
+ },
+ {
+ "ename": "parseclj",
+ "commit": "e2a977779a7ee49f57b849b14e581210a7f47d61",
+ "sha256": "077qigx0qyjyvm3437ffnv05rmnpqxvpxf69yyfdgnay1xclv172",
+ "fetcher": "github",
+ "repo": "clojure-emacs/parseclj",
+ "unstable": {
+ "version": [
+ 20190531,
+ 711
+ ],
+ "deps": [
+ "a"
+ ],
+ "commit": "b34d3e13a249d4b92f1a008cdc1df20a92f866c5",
+ "sha256": "1bnlqkmpqpnmmsyhx49mryhkrkaq6v68x7a4kg2pn19ycf9xz6ds"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "a"
+ ],
+ "commit": "93a0f43529598984835f88e64b62fa68bebda89b",
+ "sha256": "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"
+ }
+ },
+ {
+ "ename": "parseedn",
+ "commit": "462a022a83186b8c70e888cc8df42601777504dd",
+ "sha256": "0lb0qkvsga90ysa3a1pn8ydf108lsq2azxzzm7xvxbgk0d1xzhjp",
+ "fetcher": "github",
+ "repo": "clojure-emacs/parseedn",
+ "unstable": {
+ "version": [
+ 20200419,
+ 1124
+ ],
+ "deps": [
+ "a",
+ "parseclj"
+ ],
+ "commit": "92bf875962e62f8c6370b56991d546f122536c6b",
+ "sha256": "0xli6cf0fzydnd683v3hk5kfsbxwh83s916fd64j8ak0wzjnlsfr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "a",
+ "parseclj"
+ ],
+ "commit": "ddf824bc1df1585867cb7f27f2dd8ca8df760569",
+ "sha256": "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"
+ }
+ },
+ {
+ "ename": "pasp-mode",
+ "commit": "f3c1bbfc6b3a60f8bb4f0ee77ec4108e9d3f458b",
+ "sha256": "0aix8siyd5yhgxq94k1sl64a9q2xlfrz6cj9y5mcqhb6qjgmrnva",
+ "fetcher": "github",
+ "repo": "santifa/pasp-mode",
+ "unstable": {
+ "version": [
+ 20180404,
+ 1700
+ ],
+ "commit": "59385eb0e8ebcfc8c11dd811fb145d4b0fa3cc92",
+ "sha256": "1ar4vws3izzmir7m870mccci620ns3c5j26dcmwaxavhgw45wcmf"
+ }
+ },
+ {
+ "ename": "pass",
+ "commit": "428c2d53db69bed8938ec3486dfcf7fc048cd4e8",
+ "sha256": "1vvyvnqf6k7wm0p45scwi6ny86slkrcbr36lnxdlkf96cqyrqzfr",
+ "fetcher": "github",
+ "repo": "NicolasPetton/pass",
+ "unstable": {
+ "version": [
+ 20190830,
+ 2017
+ ],
+ "deps": [
+ "f",
+ "password-store",
+ "password-store-otp"
+ ],
+ "commit": "919d8e3826d556433ab67d4ee21a509d209d1baa",
+ "sha256": "03cf7d51p7d5a9nmlzp1k0n68j4n0di0nmpmcx3vlfd62lk3rs2p"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "deps": [
+ "f",
+ "password-store",
+ "password-store-otp"
+ ],
+ "commit": "35e3f86e96878520e690513cdbc1b2753b173e72",
+ "sha256": "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"
+ }
+ },
+ {
+ "ename": "passmm",
+ "commit": "8ae2a1e10375f9cd55d19502c9740b2737eba209",
+ "sha256": "0p6qps9ww7s6w5x7p6ha26xj540pk4bjkr629lcicrvnfr5jsg4b",
+ "fetcher": "github",
+ "repo": "pjones/passmm",
+ "unstable": {
+ "version": [
+ 20181130,
+ 1612
+ ],
+ "deps": [
+ "password-store"
+ ],
+ "commit": "b25a92048c788a8477cc5ffe14c0c4a4df19d79a",
+ "sha256": "1jg2rs010fmw10ld0bfl6x7af3v9yqfy9ga5ixmam3qpilc8c4fw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "password-store"
+ ],
+ "commit": "b25a92048c788a8477cc5ffe14c0c4a4df19d79a",
+ "sha256": "1jg2rs010fmw10ld0bfl6x7af3v9yqfy9ga5ixmam3qpilc8c4fw"
+ }
+ },
+ {
+ "ename": "password-generator",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1ziiz4x4slfadlm7fjpmwvq4a9fi3ird74b6v5na499ylqnzrl59",
+ "fetcher": "github",
+ "repo": "zargener/emacs-password-genarator",
+ "unstable": {
+ "version": [
+ 20150222,
+ 2040
+ ],
+ "commit": "904cdb591a04305ba882ce19e1d117f5fa60f7d3",
+ "sha256": "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"
+ }
+ },
+ {
+ "ename": "password-mode",
+ "commit": "28dafa392a378e7de2c6992fe17b33f6379dc6b8",
+ "sha256": "1rxh6jg99qxagc6i2xgvswvw93h4ma7j8lhjr4ln44vbgyhzph11",
+ "fetcher": "github",
+ "repo": "juergenhoetzel/password-mode",
+ "unstable": {
+ "version": [
+ 20170412,
+ 629
+ ],
+ "commit": "ed764a4ec1011526457c71b7c37fa9a659a866ab",
+ "sha256": "102zydbkr2zrr7w0j11n7pivnsdmq3c6lykf3qc84jifp7j58pgr"
+ }
+ },
+ {
+ "ename": "password-store",
+ "commit": "207f8ec84572176749d328cb2bbc4e87c36f202c",
+ "sha256": "03r8j14l12yc42b51fzvn1jh8j85nyl1rg6c80r0a7ihwkj27jv6",
+ "fetcher": "github",
+ "repo": "zx2c4/password-store",
+ "unstable": {
+ "version": [
+ 20200328,
+ 1214
+ ],
+ "deps": [
+ "auth-source-pass",
+ "s",
+ "with-editor"
+ ],
+ "commit": "06f499994071bb6131244218b25d637103afe1d5",
+ "sha256": "05w0jkl7m55h30szvgknbwg7xayilk4bh3nf70hrsy3czisxmccx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7,
+ 3
+ ],
+ "deps": [
+ "f",
+ "s",
+ "with-editor"
+ ],
+ "commit": "74fdfb5022f317ad48d449e29543710bdad1afda",
+ "sha256": "0nixbsyckkp1qjszgac74m00vj10vc3vyw2wic1zgc2rx795k228"
+ }
+ },
+ {
+ "ename": "password-store-otp",
+ "commit": "fc89d02554a6ff150ad42634879073892f3e88be",
+ "sha256": "0m3n4gjf6hmcs2kg80h1whzbl74zsj79ihliyqfcdfc4v31m32sg",
+ "fetcher": "github",
+ "repo": "volrath/password-store-otp.el",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1748
+ ],
+ "deps": [
+ "password-store",
+ "s"
+ ],
+ "commit": "04998c8578a060ab4a4e8f46f2ee0aafad4ab4d5",
+ "sha256": "1c9lvxi0yf0x3ywciv58zkn9ss6n41305g5rp4l32a33sq51s567"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "deps": [
+ "password-store",
+ "s"
+ ],
+ "commit": "a39a64a91de36e87b852339635bd3c5fb0e32441",
+ "sha256": "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"
+ }
+ },
+ {
+ "ename": "password-vault",
+ "commit": "71ad3fa96afa18b5002faf9272732c7d09826493",
+ "sha256": "17i556xwq6yaxv9v18l1abcpbaz6hygsa4vf4b68fc98vcy7396a",
+ "fetcher": "github",
+ "repo": "PuercoPop/password-vault",
+ "unstable": {
+ "version": [
+ 20160126,
+ 1820
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "dc56e6c2f5da66f1ab63736cecf08fb2c6c2b30f",
+ "sha256": "0921xwg3d3345hiqz4c1iyqwvfyg8rv0wggcnig7xh9qivspag4c"
+ }
+ },
+ {
+ "ename": "paste-of-code",
+ "commit": "b29a5101bb6fc01b8b6e1b798ce6f73bc6d34944",
+ "sha256": "0wjcchpp1689arfz6s7gfq4bxn0svz6qj5azvjwwsyzais1bicdi",
+ "fetcher": "github",
+ "repo": "spebern/paste-of-code.el",
+ "unstable": {
+ "version": [
+ 20170709,
+ 2355
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "92d258e8ec98598d847ecab82903f9224c7c2050",
+ "sha256": "1bf2d0i726psjwnqdp0w4h0qk7fnwcbwf1a66q7p8vczavqygfan"
+ }
+ },
+ {
+ "ename": "pastebin",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "0ff01vzslgdmsj1jp1m2lvnan6immd4l7vz466g1glb5nkb7qfcr",
+ "fetcher": "github",
+ "repo": "nicferrier/elpastebin",
+ "unstable": {
+ "version": [
+ 20101125,
+ 2002
+ ],
+ "commit": "8e9a829298ce0f747ab80758aa26caeb2af6cb30",
+ "sha256": "1hjzpza8zmzb83sacmqcnh9a52m4x5d8xbwvcqvld1ajglv4y124"
+ }
+ },
+ {
+ "ename": "pastehub",
+ "commit": "bb8645a9880c586ef2ad16f3a4e61ba76176c224",
+ "sha256": "1slvqn5ay6gkbi0ai1gy1wmc02h4g3n6srrh4fqn72y7b9nv5i0v",
+ "fetcher": "github",
+ "repo": "kiyoka/pastehub",
+ "unstable": {
+ "version": [
+ 20140615,
+ 620
+ ],
+ "commit": "37b045c67659c078f1517d0fbd5282dab58dca23",
+ "sha256": "0m6qjsq6qfwwszm95lj8c58l75vbmx9r5hm9bfywyympfgy0fa1n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 2
+ ],
+ "commit": "37b045c67659c078f1517d0fbd5282dab58dca23",
+ "sha256": "0m6qjsq6qfwwszm95lj8c58l75vbmx9r5hm9bfywyympfgy0fa1n"
+ }
+ },
+ {
+ "ename": "pastelmac-theme",
+ "commit": "a7151773de39fe570e3e9b351daad89db9dd267f",
+ "sha256": "168zzqhp2dbfcnknwfqxk68rgmibfw71ksghvi6h2j2c1m08l23f",
+ "fetcher": "github",
+ "repo": "bmastenbrook/pastelmac-theme-el",
+ "unstable": {
+ "version": [
+ 20151031,
+ 236
+ ],
+ "commit": "bead21741e3f46f6506e8aef4469d4240a819389",
+ "sha256": "1v5mpjb8kavbqhvg4rizwg8cypgmi6ngdiy8qp9pimmkb56y42ly"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "bead21741e3f46f6506e8aef4469d4240a819389",
+ "sha256": "1v5mpjb8kavbqhvg4rizwg8cypgmi6ngdiy8qp9pimmkb56y42ly"
+ }
+ },
+ {
+ "ename": "pastery",
+ "commit": "6058218450071db0af9a5b8ce8ec09a735c4ab66",
+ "sha256": "006qawjc86spbbs2pxvhg9w94rcsxap577cndqwaiw1k0cc8vkhp",
+ "fetcher": "github",
+ "repo": "diasbruno/pastery.el",
+ "unstable": {
+ "version": [
+ 20171114,
+ 349
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "4493be98b743b4d062cb4e00760125e394a55022",
+ "sha256": "0bmm18d84lrkclg4md46k1ma03w7a97s10hrvjcm9yj8xbrjqqsc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "4493be98b743b4d062cb4e00760125e394a55022",
+ "sha256": "0bmm18d84lrkclg4md46k1ma03w7a97s10hrvjcm9yj8xbrjqqsc"
+ }
+ },
+ {
+ "ename": "path-headerline-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0yw2i3cp20v8nd2wj1rs1qad8abghzzasf2sjyla90q06wlna98w",
+ "fetcher": "github",
+ "repo": "7696122/path-headerline-mode",
+ "unstable": {
+ "version": [
+ 20140423,
+ 1332
+ ],
+ "commit": "b5b2725c6a8b1cb592fc242b7dbbd54b4dff2e69",
+ "sha256": "1ffnkw8djs8kvfjd1crnaqram1vl4w3g1zhsqp74ds0mccsd6830"
+ }
+ },
+ {
+ "ename": "path-helper",
+ "commit": "a70b1a41e45d215be27d392429dcd4f82904295f",
+ "sha256": "0fff3l88jgflqpxlcfxfyp2prc2ichajvm7c8i19qhvw70sbasny",
+ "fetcher": "github",
+ "repo": "arouanet/path-helper",
+ "unstable": {
+ "version": [
+ 20181208,
+ 2229
+ ],
+ "commit": "34538affb3f341b3c56a875bb094ddb2b859a8ef",
+ "sha256": "0qzsalbxksb44f0x7fndl2qyp1yf575qs56skfzmpnpa82dck88g"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "34538affb3f341b3c56a875bb094ddb2b859a8ef",
+ "sha256": "0qzsalbxksb44f0x7fndl2qyp1yf575qs56skfzmpnpa82dck88g"
+ }
+ },
+ {
+ "ename": "pathify",
+ "commit": "459460c977b9cf033e22937899ad380e01efcf11",
+ "sha256": "1z970xnzbhmfikj1rkfx24jvwc7f1xxw6hk7kmahxvphjxrvgc2f",
+ "fetcher": "github",
+ "repo": "alezost/pathify.el",
+ "unstable": {
+ "version": [
+ 20160423,
+ 846
+ ],
+ "commit": "401b184c743694a60b3bc4273fc43de05cd5ac4b",
+ "sha256": "0wsq11qffw1lx9x79law7jrz0sxm6km83gh891ic9ak2y6j5shxf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "335332a900717ae01bde5ccb8f3dc97a5350f123",
+ "sha256": "1brdyrp2sz1pszdfr6f4w94qxk5lrd6kphc1xa5pywfns14c9386"
+ }
+ },
+ {
+ "ename": "paxedit",
+ "commit": "106b272c2f0741d21d31a0ddfa4f521c575559c1",
+ "sha256": "06ymilr0zrwfpyzql7dcpg48lhkx73f2jlaw3caxgsjaz7x3n4ic",
+ "fetcher": "github",
+ "repo": "promethial/paxedit",
+ "unstable": {
+ "version": [
+ 20160730,
+ 1727
+ ],
+ "deps": [
+ "cl-lib",
+ "paredit"
+ ],
+ "commit": "09f3d5aeb108937a801e77ef413e29eaa4ecc4be",
+ "sha256": "1yd5wh8fsxh3v2fgpxm2cd7h9xz9zfj2d8g4bh4gzqjwrmn5rlgl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 8
+ ],
+ "deps": [
+ "cl-lib",
+ "paredit"
+ ],
+ "commit": "644eb7036a475fbcba4de5d46d6940b1e8ef33cd",
+ "sha256": "0jmhr658cczblag8knr8j77q58yj268rkhh5dmga66l0sb30wb21"
+ }
+ },
+ {
+ "ename": "pbcopy",
+ "commit": "2bbde7950ad5b3b801ca6a2a27c0f5294c8b7746",
+ "sha256": "1989pkhaha6s2rmgyswnzps92x9hhzymjz4ng4a5jda1b9snp60q",
+ "fetcher": "github",
+ "repo": "emacsfodder/pbcopy.el",
+ "unstable": {
+ "version": [
+ 20150225,
+ 459
+ ],
+ "commit": "338f7245746b5de1bb96c5cc2b32bfd9b5d83272",
+ "sha256": "138w0dlp3msjmr2x09kfcnxwhdldbz9xjfy7l6lig1x9ima0z5w6"
+ }
+ },
+ {
+ "ename": "pc-bufsw",
+ "commit": "5f2bbd34d673935846c286e73a1e2efaa00ab01a",
+ "sha256": "01d7735ininlsjkql7dy57irgwgk4k9br8bl18wq51vgkg90i5k5",
+ "fetcher": "github",
+ "repo": "ibukanov/pc-bufsw",
+ "unstable": {
+ "version": [
+ 20191014,
+ 848
+ ],
+ "commit": "a7c7bba4b7d511eceaaa8fee34d598296402555b",
+ "sha256": "0n6ijz86j88jq7w38yfamrqkjx8s1zbw1c0sa3dhpkv1jg87avb1"
+ }
+ },
+ {
+ "ename": "pcache",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0wwx20x6gzlli3hh4zd9pfv2cmqfm38xbl9p4vsgy08q1rm5agva",
+ "fetcher": "github",
+ "repo": "sigma/pcache",
+ "unstable": {
+ "version": [
+ 20170105,
+ 2214
+ ],
+ "deps": [
+ "eieio"
+ ],
+ "commit": "1f31433ad0b37a2e68d60ee043a8188ef1ce3176",
+ "sha256": "1bk6rg9qaaasbng6m6mdkjbwdm68zkr7mfwj18l34ivlz0f05sxw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "deps": [
+ "eieio"
+ ],
+ "commit": "025ef2411fa1bf82a9ac61dfdb7bd4cedaf2d740",
+ "sha256": "1jkdyacpcvbsm1g2rjpnk6hfr01r3j5ibgh09441scz41v6xk248"
+ }
+ },
+ {
+ "ename": "pcap-mode",
+ "commit": "44f4cb526556a4b58b7e67314002e73413a59a76",
+ "sha256": "1p6lnr7yr8i3yp63xc8r1hnx8a4v0mz1s7q89zxx7aprk7i9kpv6",
+ "fetcher": "github",
+ "repo": "orgcandman/pcap-mode",
+ "unstable": {
+ "version": [
+ 20161025,
+ 1448
+ ],
+ "commit": "52780669af0ade136f84d73f21b4dbb7ab655416",
+ "sha256": "1v218cjs0qy3ac0rbzm22y1x388nxnf0pslh9jrvlymkn227pjs8"
+ }
+ },
+ {
+ "ename": "pcmpl-args",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "10mgci1rk6sr7wk46mnp5l37v3qxdc6yy5zfvy9mzwzh3va1pw31",
+ "fetcher": "github",
+ "repo": "JonWaltman/pcmpl-args.el",
+ "unstable": {
+ "version": [
+ 20190223,
+ 1613
+ ],
+ "commit": "0b8a05fc6e370fa9c466250659619f8d6b53d446",
+ "sha256": "1zhjpgnd8n95fv2z5d9360cx2vhw88yqz7gyc0qc563p6l3xmffg"
+ }
+ },
+ {
+ "ename": "pcmpl-git",
+ "commit": "6a51c16bed8d0a2fecad0ae9580d58cd44cc8930",
+ "sha256": "12y9pg1g4i1ghnjvgfdpa6p84h4bcqrr23y9bazwl9n6aj20cmxk",
+ "fetcher": "github",
+ "repo": "leoliu/pcmpl-git-el",
+ "unstable": {
+ "version": [
+ 20170121,
+ 59
+ ],
+ "commit": "9472ac70baeda025ef7becd1cf141d72aec93f32",
+ "sha256": "17y3rdp7fgyg4i9hwyzgpv1d19i5c6rqdf1gm5bdm2csk12vfg9n"
+ }
+ },
+ {
+ "ename": "pcmpl-homebrew",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "100a64d8qvxdz1lk42pidj48iqsycyyw92jjqcrn8rnqw1rnb3s7",
+ "fetcher": "github",
+ "repo": "zwild/pcmpl-homebrew",
+ "unstable": {
+ "version": [
+ 20190213,
+ 318
+ ],
+ "commit": "39f2e8faf4d866410a625bbcf88f2504940c8982",
+ "sha256": "0p5iynpg9c7zw7717m2mj1lmzcawc8sz4r2di3f8jc8qkng3avns"
+ }
+ },
+ {
+ "ename": "pcmpl-pip",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "1vl21i3aqdk2qr2r64sqg8jbslj3vxblwmbpzv732sl9gafsl990",
+ "fetcher": "github",
+ "repo": "zwild/pcmpl-pip",
+ "unstable": {
+ "version": [
+ 20181229,
+ 1420
+ ],
+ "deps": [
+ "f",
+ "s",
+ "seq"
+ ],
+ "commit": "bc79228674ad5c1bc458c90dd8839790fb0a09e8",
+ "sha256": "017fwacc3vqvvxx4mn0a1glcsxccjyfai0rymyf3yfy4rgd7w0p4"
+ }
+ },
+ {
+ "ename": "pcomplete-extension",
+ "commit": "6cb8a938418f84a5b0ede92e84a516f38e4b1011",
+ "sha256": "0m0c9ir44p21rj93fkisvpvi08936717ljmzsr4qdf69b3i54cwc",
+ "fetcher": "github",
+ "repo": "thierryvolpiatto/pcomplete-extension",
+ "unstable": {
+ "version": [
+ 20190928,
+ 519
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bc5eb204fee659e0980056009409b44bc7655716",
+ "sha256": "06dsfjbwx1iq0f2xism288vh4cgn804hbvi3gv3zknnzcmh6nlxi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "839740c90de857e18db2f578d6660951522faab5",
+ "sha256": "0h0p4c08z0dqxmg55fzch1d2f38rywfk1j0an2f4sc94lj7ckbm6"
+ }
+ },
+ {
+ "ename": "pcre2el",
+ "commit": "f04a25e467cc4c7d9a263330a7a1a53d67c6eb9b",
+ "sha256": "1l72hv9843qk5p8gi9ibr15wczm804j3ws2v1x7nx4dr7pc5c7l3",
+ "fetcher": "github",
+ "repo": "joddie/pcre2el",
+ "unstable": {
+ "version": [
+ 20161120,
+ 2103
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d",
+ "sha256": "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "166a10472002010692dbc35f323ffb8110a294c5",
+ "sha256": "1dpfhrxbaqpgjzac3m9hclbzlnrxq9b8bx6za53aqvml72yzxc6i"
+ }
+ },
+ {
+ "ename": "pcsv",
+ "commit": "80ffaf99b2a4566a3f9d0309cd7b63f563f3826e",
+ "sha256": "1zphndkbva59g1fd319a240yvq8fjk315b1fyrb8zvmqpgk9n0dl",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-pcsv",
+ "unstable": {
+ "version": [
+ 20150220,
+ 1131
+ ],
+ "commit": "798e0933f8d0818beb17aebf3b1056bbf74e03d0",
+ "sha256": "0aaprjczjf3al5vcypw1fsnz5a0xnnlhmvy0lc83i9aqbsa2y8af"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 6
+ ],
+ "commit": "91599aaba70a8e8593fa2f36165af82cbd35e41e",
+ "sha256": "03k3xhrim4s3yvbnl8g8ci5g7chlffycdw7d6a1pz3077mxf1f1z"
+ }
+ },
+ {
+ "ename": "pdb-capf",
+ "commit": "f0b7e12b9f49dc4ed1cc5a6893accc882896f334",
+ "sha256": "0656a2s8r8dg11in8r5xx984lcxd5g5l3x6vnha50s0c4nx93x3y",
+ "fetcher": "github",
+ "repo": "muffinmad/emacs-pdb-capf",
+ "unstable": {
+ "version": [
+ 20200419,
+ 1237
+ ],
+ "commit": "2f4099aa1330f87df4e9cd526de057ee9b71de6c",
+ "sha256": "0fdzhsz3784lf50mdabz9h2b6992cab2nnn4xv7rx2a8hsyyq1mq"
+ }
+ },
+ {
+ "ename": "pdb-mode",
+ "commit": "6aee132aa24322fe1ac88ae17ee6e77ae1ec8d11",
+ "sha256": "1ihkxd15kx5m5xb9yxwz8wqbmyk9iaskry9szzdz1j4gjlczb6hy",
+ "fetcher": "github",
+ "repo": "sixpi/pdb-mode",
+ "unstable": {
+ "version": [
+ 20150128,
+ 1751
+ ],
+ "commit": "855fb18ebb73b5df30c8d7677c2bcd0f361b138a",
+ "sha256": "1xkkyz7y08jr71rzdacb9v7gk95qsxlsshkdsxq8jp70irq51099"
+ }
+ },
+ {
+ "ename": "pdf-tools",
+ "commit": "8e3d53913f4e8a618e125fa9c1efb3787fbf002d",
+ "sha256": "1hnc8cci00mw78h7d7gs8smzrgihqz871sdc9hfvamb7iglmdlxw",
+ "fetcher": "github",
+ "repo": "politza/pdf-tools",
+ "unstable": {
+ "version": [
+ 20200512,
+ 1524
+ ],
+ "deps": [
+ "let-alist",
+ "tablist"
+ ],
+ "commit": "c510442ab89c8a9e9881230eeb364f4663f59e76",
+ "sha256": "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 90
+ ],
+ "deps": [
+ "let-alist",
+ "tablist"
+ ],
+ "commit": "af1a5949c2dae59ffcbcf21cc4299fa2fc57ce72",
+ "sha256": "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"
+ }
+ },
+ {
+ "ename": "pdf-view-restore",
+ "commit": "66f0d3e9c7eea64f23191a3f7ac05158e3ae68bc",
+ "sha256": "1n3l7iyv5w937n0ihng8mzkaz09ngwclg5fv2s576d36b6jwm2k8",
+ "fetcher": "github",
+ "repo": "007kevin/pdf-view-restore",
+ "unstable": {
+ "version": [
+ 20190904,
+ 1708
+ ],
+ "deps": [
+ "pdf-tools"
+ ],
+ "commit": "5a1947c01a3edecc9e0fe7629041a2f53e0610c9",
+ "sha256": "1b9zzvfsprf7x0v7l4dabdh5qdfhl7mm30vvqah8l10jvlf2wlc7"
+ }
+ },
+ {
+ "ename": "pdfgrep",
+ "commit": "55b0c24f883fe589d1159ce3845cf250a0f47feb",
+ "sha256": "0q511l57xv1s6z496jrlz6j2nf0fync0dlbm4r800p49lbh4abl3",
+ "fetcher": "github",
+ "repo": "jeremy-compostella/pdfgrep",
+ "unstable": {
+ "version": [
+ 20200306,
+ 209
+ ],
+ "commit": "1576fc98754d3bdaa40573a037a80f1973110756",
+ "sha256": "1c3p3vdhy6wibxwpc76bvvm0583zmjmxs9pa453z3msbq33kc7j8"
+ }
+ },
+ {
+ "ename": "peacock-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "0jpdq090r37d07bm52yx3x9y3gsip6fyxxq1ax1k5k0r0js45kq9",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-peacock-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1320
+ ],
+ "commit": "9e46fbfb562b6e26c6e3d6d618b044b3694da4c8",
+ "sha256": "0w4dzdsv2cdldss5jwmdbjb5a62k5j1szwdim4gv8ldifhj7fy22"
+ }
+ },
+ {
+ "ename": "peek-mode",
+ "commit": "08384964d8c1f5f60c84c044d26a79105973ab21",
+ "sha256": "07wcnh3jmp2gi9xhd3d8i2n0pr2g9kav497nnz94i85awhzf8fi4",
+ "fetcher": "github",
+ "repo": "erikriverson/peek-mode",
+ "unstable": {
+ "version": [
+ 20130620,
+ 1946
+ ],
+ "deps": [
+ "elnode"
+ ],
+ "commit": "55a7dd011375330c7d57322257a5167516702c71",
+ "sha256": "11nv6pll0zj9dkgzlzgav39a6x3sfi7kvfhwm96fa3iy4v8bixrb"
+ }
+ },
+ {
+ "ename": "peep-dired",
+ "commit": "e8e06a916ac18053e34821673d1cf7936b15c2ac",
+ "sha256": "16k5y3h2ip96k071vhx83avg4r4nplnd973b1271vvxbx2bly735",
+ "fetcher": "github",
+ "repo": "asok/peep-dired",
+ "unstable": {
+ "version": [
+ 20160321,
+ 2237
+ ],
+ "commit": "1d410a4e48db07a942e54d3b83a85c7a7ec0aab3",
+ "sha256": "1b7csqypqkalkzq6vrbq5ry1gdk0qnhnk43rlj514mph0s1nywdd"
+ }
+ },
+ {
+ "ename": "pelican-mode",
+ "commit": "aede5994c2e76c7fd860661c1e3252fb741f9228",
+ "sha256": "0z6w5j3qwb58pndqbmpsvy1l77w9jv90bss9qq9hicil8nlk4pvi",
+ "fetcher": "git",
+ "url": "https://git.korewanetadesu.com/pelican-mode.git",
+ "unstable": {
+ "version": [
+ 20190124,
+ 2336
+ ],
+ "commit": "65d7caf5d926599a5007eb7bc279215908aa5252",
+ "sha256": "1mmvsf1g2ym76ipgs7nl2fshw0rg1qij495rixga13qbkwb02hpl"
+ },
+ "stable": {
+ "version": [
+ 20170808
+ ],
+ "commit": "8b13c30c4ec38dd535eadf26e463f8616d5c089c",
+ "sha256": "0rghcyp09ga95ag0pjbk4hdxxlsnr93dr6706z0xvfgmninbn5aw"
+ }
+ },
+ {
+ "ename": "pepita",
+ "commit": "e9a393b11eaa29dbd0bf966fa0ab290b08ac7f39",
+ "sha256": "0xyy137hl8g74grhj8ipij4c80xrga1afjvzz5hf8hpx4zqbljpx",
+ "fetcher": "github",
+ "repo": "sebasmonia/pepita",
+ "unstable": {
+ "version": [
+ 20200228,
+ 2257
+ ],
+ "deps": [
+ "csv"
+ ],
+ "commit": "263d6d940d7e4203bbecda46dbaa89b7af1db54f",
+ "sha256": "1jw27asnfd48mx3mi9qiihvj2hgzpmk53xdq87ajq9nsx8m6x110"
+ }
+ },
+ {
+ "ename": "per-buffer-theme",
+ "commit": "2a2a6c0bf1cad99ed82db7b90b8b7ab79827ac17",
+ "sha256": "06vykjgf4rxh832z74jxkhi4jxlh60hnh8zjvdyr9nbh1dy35bjn",
+ "fetcher": "hg",
+ "url": "https://hg.serna.eu/emacs/per-buffer-theme",
+ "unstable": {
+ "version": [
+ 20200527,
+ 1256
+ ],
+ "commit": "f29b5c57198ebfedbf142f95129190c6c00b4822",
+ "sha256": "0b39m8zmy4yfj3z93q3gqqqhhmyb10kd76fl7347pm6xgq4sl1g0"
+ }
+ },
+ {
+ "ename": "perfect-margin",
+ "commit": "8b8cd6a81d46da6beff2754f69b1d74ff9cc1d49",
+ "sha256": "0bn9bjz1bbl07z3wzhjplp0n5zla3yqc8phr3maap6mch3q0jc1y",
+ "fetcher": "github",
+ "repo": "mpwang/perfect-margin",
+ "unstable": {
+ "version": [
+ 20190722,
+ 126
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "94b055c743b1859098870c8aca3e915bd6e67d9d",
+ "sha256": "02k379nig43j85wfm327pw6sh61kxrs1gwz0vgcbx9san4dp83bk"
+ }
+ },
+ {
+ "ename": "perlbrew",
+ "commit": "24bd9c2cd848f5003a244a7127e8fc5ef46bdca4",
+ "sha256": "1qadwkcic2qckqy8hgrnj08ajhxayknhpyxkc6ir15vfqjk5crr8",
+ "fetcher": "github",
+ "repo": "kentaro/perlbrew.el",
+ "unstable": {
+ "version": [
+ 20161109,
+ 709
+ ],
+ "commit": "3a3406c3307c92aa30f9400d430925c434a3b6f0",
+ "sha256": "0kxz8ljc7w69ywp0bb15010sgrr13i1p05hcvhfr9c35l0n62r6p"
+ }
+ },
+ {
+ "ename": "persistent-overlays",
+ "commit": "d3673c87c5ca883b4f713efeae912c3ad991c667",
+ "sha256": "136acbxqykvsw8a5il1zgpxr7llxmc3347847vf0jnmbzb1b472a",
+ "fetcher": "github",
+ "repo": "mneilly/Emacs-Persistent-Overlays",
+ "unstable": {
+ "version": [
+ 20161128,
+ 700
+ ],
+ "commit": "f563c8b966edc78c9d806661c4eb80e4781c4eab",
+ "sha256": "0csllpkpjf4csw3zfaw8k05jg078najfmjz6pz1jcl6b4sxjdfqa"
+ }
+ },
+ {
+ "ename": "persistent-scratch",
+ "commit": "f1e32702bfa15490b692d5db59e22d2c07b292d1",
+ "sha256": "0iai65lsg3zxj07hdb9201w3rwrvdb3wffr6k2jdl8hzg5idghn1",
+ "fetcher": "github",
+ "repo": "Fanael/persistent-scratch",
+ "unstable": {
+ "version": [
+ 20190922,
+ 1046
+ ],
+ "commit": "fd690e138459e0b490f1fda469811a9cbcb34df7",
+ "sha256": "1nig9ja42sm3nkbi9wrsm86akrq0m85jfc65k9rmym13vrdpflvq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 4
+ ],
+ "commit": "fd690e138459e0b490f1fda469811a9cbcb34df7",
+ "sha256": "1nig9ja42sm3nkbi9wrsm86akrq0m85jfc65k9rmym13vrdpflvq"
+ }
+ },
+ {
+ "ename": "persistent-soft",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "0a4xiwpgyyynjf69s8p183mqd3z53absv544ggvhb2gkpm6jravc",
+ "fetcher": "github",
+ "repo": "rolandwalker/persistent-soft",
+ "unstable": {
+ "version": [
+ 20150223,
+ 1853
+ ],
+ "deps": [
+ "list-utils",
+ "pcache"
+ ],
+ "commit": "a1e0ddf2a12a6f18cab565dee250f070384cbe02",
+ "sha256": "14p20br8vzxs39d4hswzrrkgwql5nnmn5j17cpbabzjvck42rixc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 10
+ ],
+ "deps": [
+ "list-utils",
+ "pcache"
+ ],
+ "commit": "a1e0ddf2a12a6f18cab565dee250f070384cbe02",
+ "sha256": "14p20br8vzxs39d4hswzrrkgwql5nnmn5j17cpbabzjvck42rixc"
+ }
+ },
+ {
+ "ename": "persp-fr",
+ "commit": "8e09213dddf003a1275eafb767431a507ecf7639",
+ "sha256": "0p4379yr1b32l8ghq1axyb8qhp28gnq5qxxvbk3mdzgbwwj8y4b2",
+ "fetcher": "github",
+ "repo": "rocher/persp-fr",
+ "unstable": {
+ "version": [
+ 20191108,
+ 754
+ ],
+ "deps": [
+ "dash",
+ "persp-mode"
+ ],
+ "commit": "1adbb6a9f9a4db580a9b7ed8b4091738e01345e6",
+ "sha256": "0f9ljpmq8b97n6wa8bwn4f2v7imvfxc2pjqk6xjkmwbfpihrns10"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "dash",
+ "persp-mode"
+ ],
+ "commit": "1adbb6a9f9a4db580a9b7ed8b4091738e01345e6",
+ "sha256": "0f9ljpmq8b97n6wa8bwn4f2v7imvfxc2pjqk6xjkmwbfpihrns10"
+ }
+ },
+ {
+ "ename": "persp-mode",
+ "commit": "caad63d14f770f07d09b6174b7b40c5ab06a1083",
+ "sha256": "1bgni7y5xsn4a21494npr90w3320snfzw1hvql30xrr57pw3765w",
+ "fetcher": "github",
+ "repo": "Bad-ptr/persp-mode.el",
+ "unstable": {
+ "version": [
+ 20200617,
+ 2154
+ ],
+ "commit": "14325c11f7a347717d7c3780f29b24a38c68fbfc",
+ "sha256": "1kb5v7pl2vhx6zdwf9kip38qjk8nkd9xpgdy74q8p3c56ap9lg6g"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 9,
+ 8
+ ],
+ "commit": "391a7dc248c9c04b7ad424c696bdff578e14dd2c",
+ "sha256": "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"
+ }
+ },
+ {
+ "ename": "persp-mode-projectile-bridge",
+ "commit": "2c049b0067b70577511114dc8abac0a00a9e0588",
+ "sha256": "169mpikixa33ljmh2n9sm186yibrik3f5p8m1hcisnzdsc3wgxmp",
+ "fetcher": "github",
+ "repo": "Bad-ptr/persp-mode-projectile-bridge.el",
+ "unstable": {
+ "version": [
+ 20170315,
+ 1120
+ ],
+ "deps": [
+ "cl-lib",
+ "persp-mode",
+ "projectile"
+ ],
+ "commit": "f6453cd7b8b4352c06e771706f2c5b7e2cdff1ce",
+ "sha256": "1gyfn2fhx3bqzr9m1r4b8nyak8pmpcgj7yz2bagnjs21vfngr18c"
+ }
+ },
+ {
+ "ename": "persp-projectile",
+ "commit": "8bc4e3a5af7ba86d277c73a1966a91c87d3d855a",
+ "sha256": "10l2kqjyigg98qbbpf3qf4d5bm63kkk4vp7ip8fibgj1p9gqmnxm",
+ "fetcher": "github",
+ "repo": "bbatsov/persp-projectile",
+ "unstable": {
+ "version": [
+ 20180616,
+ 1944
+ ],
+ "deps": [
+ "cl-lib",
+ "perspective",
+ "projectile"
+ ],
+ "commit": "533808b3e4f8f95a1e3ed9c55d9aa720277ebd5f",
+ "sha256": "17i1srw1k771i3a5wlydbyasyd9z39ryf48mxfs0dsbx1zjbj0pg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "perspective",
+ "projectile"
+ ],
+ "commit": "7686633acf44402fa90429759cca6a155e4df2b9",
+ "sha256": "0rqyzsmg32sdr4k9i2lf3jfyr9bskkl7gfb5ndl16iip9py7403z"
+ }
+ },
+ {
+ "ename": "perspective",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "021ax1c2ys82dcjs5jl7b4nb83n6gax2imnpm030rcbihjl1lzm7",
+ "fetcher": "github",
+ "repo": "nex3/perspective-el",
+ "unstable": {
+ "version": [
+ 20200814,
+ 554
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "74e811ccbada09dd9a3d90b983e78d146542121b",
+ "sha256": "1xfcm69nd6f9chwlqfz5vd8nnyl5mwharxjrn1m515568dqrk62x"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 10
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "74e811ccbada09dd9a3d90b983e78d146542121b",
+ "sha256": "1xfcm69nd6f9chwlqfz5vd8nnyl5mwharxjrn1m515568dqrk62x"
+ }
+ },
+ {
+ "ename": "perspeen",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0kwmllas9vnppsfaviy58d0nk4hmlqp566mfr4l53x46sybv1y04",
+ "fetcher": "github",
+ "repo": "seudut/perspeen",
+ "unstable": {
+ "version": [
+ 20171203,
+ 1021
+ ],
+ "deps": [
+ "powerline"
+ ],
+ "commit": "edb70c530bda50ff3d1756e32a703d5fef5e5480",
+ "sha256": "12h0kj96s4h8z4kqalp7hccnlnqn5lrax3df75gz16pskx2dwxqr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "30ee14339cf8fe2e59e5384085afee3f8eb58dda",
+ "sha256": "0mi7ipx0zg0vrm9da24i4j0300xj0dm3jjg35f466pm3a7xafrsg"
+ }
+ },
+ {
+ "ename": "pest-mode",
+ "commit": "d3145c38d53aa94c6ae33f2bc0cb804e246a8558",
+ "sha256": "0d89s1lqif6mdbm1fh6h1m4414sxa382rjyw3qqsm5iz2b5vf14p",
+ "fetcher": "github",
+ "repo": "ksqsf/pest-mode",
+ "unstable": {
+ "version": [
+ 20200321,
+ 504
+ ],
+ "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+ "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+ "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+ }
+ },
+ {
+ "ename": "pfuture",
+ "commit": "5fb70c9f56a58b5c7a2e8b69b191aa2fc7c9bcc8",
+ "sha256": "15fr9wkpv8v1p22wz7hsyihq7f807ck105c2crfs8y7capfvs53s",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/pfuture",
+ "unstable": {
+ "version": [
+ 20200425,
+ 1357
+ ],
+ "commit": "d7926de3ba0105a36cfd00811fd6278aea903eef",
+ "sha256": "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9
+ ],
+ "commit": "d7926de3ba0105a36cfd00811fd6278aea903eef",
+ "sha256": "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf"
+ }
+ },
+ {
+ "ename": "pg",
+ "commit": "5c4d1bb21948da2b283a3a9d89d9e3aed11afa13",
+ "sha256": "0n0187ndvwza1nis9a12h584qdqkwqfzhdw21kz5d1i6c43g7gji",
+ "fetcher": "github",
+ "repo": "cbbrowne/pg.el",
+ "unstable": {
+ "version": [
+ 20130731,
+ 2142
+ ],
+ "commit": "4f6516ec3946d95dcef49abb6703cc89ecb5183d",
+ "sha256": "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"
+ }
+ },
+ {
+ "ename": "pgdevenv",
+ "commit": "73ae474fc4792b2c322a0d2b5fd5b7cfe8c2fd05",
+ "sha256": "0za35sdwwav81wpk4jjqh56icaswwxxyg3bqqp0qiz24llb5ln1w",
+ "fetcher": "github",
+ "repo": "dimitri/pgdevenv-el",
+ "unstable": {
+ "version": [
+ 20150105,
+ 2236
+ ],
+ "commit": "7f1d5bc734750aca98cf67a9491cdbd5615fd132",
+ "sha256": "0c9d4c24ic67y07y74bv5b7vc56b6l0lbh2fbzm870r1dl5zbzcj"
+ }
+ },
+ {
+ "ename": "ph",
+ "commit": "f62ca074ca2df780ab32aac50b2b828ee6a9934c",
+ "sha256": "0azx4cpfdn01yrqyn0q1gg9z7w0h0rn7zl39v3dx6yidd76ysh0l",
+ "fetcher": "github",
+ "repo": "gromnitsky/ph",
+ "unstable": {
+ "version": [
+ 20161029,
+ 1522
+ ],
+ "commit": "ed80dad9211583ed0db633448b3624c99b7fac23",
+ "sha256": "1pgz64zv9a0r16i958x53g7wnk0q7ngcd6z1maf7lxhlp57v015d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "ed45c371642e313810b56c45af08fdfbd71a7dfe",
+ "sha256": "1qxsc5wyk8l9gkgmqy3mzwxdhji1ljqw9s1jfxkax7fyv4d1v31p"
+ }
+ },
+ {
+ "ename": "phabricator",
+ "commit": "829010a578f34f0f2dfb36a0de01547c2950bb65",
+ "sha256": "07988f2xyp76xjs25b3rdblhmijs2piriz4p0q92jw69bdvkl14c",
+ "fetcher": "github",
+ "repo": "ajtulloch/phabricator.el",
+ "unstable": {
+ "version": [
+ 20160510,
+ 1425
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "projectile",
+ "s"
+ ],
+ "commit": "d09d6f059aea92d3b11c68664a5e80c901182ab8",
+ "sha256": "0cmfb5ns335nq27iw94qxvrldpwjga0hw40da9kpdcfg0in4ya0c"
+ }
+ },
+ {
+ "ename": "phan",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "17ar6nxy0plx5li49kgf4f0h99wwmnnp5kwmpf34jg9ygyhaglvb",
+ "fetcher": "github",
+ "repo": "emacs-php/phan.el",
+ "unstable": {
+ "version": [
+ 20200805,
+ 356
+ ],
+ "deps": [
+ "composer",
+ "f"
+ ],
+ "commit": "b7d523630bb072c4dbcfa9995dc734b25b72a69f",
+ "sha256": "0xif2hmlfcnhf716964zmzzldxsyhmpp2y40i9l1cxlcliszwscv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "composer",
+ "f"
+ ],
+ "commit": "6b077b3421a0b2c0b98a6906b8ab0d14d9d7bf50",
+ "sha256": "1af4pam149dgxqzwqkjklxxqq2n8fg3l1b9w6bmaw24lx1pdxcyv"
+ }
+ },
+ {
+ "ename": "phi-autopair",
+ "commit": "f26b586c0126699f3de65bf38dfbf9c4c0149c15",
+ "sha256": "1ya1bvh28qgz1zg9kdh2lzbsf0w0lx4xr42mdrjwaz3bbfa9asg4",
+ "fetcher": "github",
+ "repo": "zk-phi/phi-autopair",
+ "unstable": {
+ "version": [
+ 20200816,
+ 535
+ ],
+ "deps": [
+ "paredit"
+ ],
+ "commit": "3e78793f9c480adf79b12d441fae5571e97b9e5f",
+ "sha256": "003dnixrnn7qcm25dbibc4rc8yrqsj9jci9rxp9l7ci6ya1bi0i2"
+ }
+ },
+ {
+ "ename": "phi-grep",
+ "commit": "992655fa4bd209abdf1149572e95f853e595125e",
+ "sha256": "1y5lq6lq9qdydbypb1pjnxryh94a295nnqqh2x27whiwdiysirjj",
+ "fetcher": "github",
+ "repo": "zk-phi/phi-grep",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1027
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d9dbf69dcf0e06944dcfb89375b09d0d2b0ef4ee",
+ "sha256": "1lgixvg5668kb1y8a2xxm1nlbppj5a8sswjrcxasqnxmrif6lkls"
+ }
+ },
+ {
+ "ename": "phi-rectangle",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "111fqqa7h5cajq92sbiqhavm25l5bcapxhfh38y7irq4mv08xifw",
+ "fetcher": "github",
+ "repo": "zk-phi/phi-rectangle",
+ "unstable": {
+ "version": [
+ 20200816,
+ 650
+ ],
+ "commit": "4ea8b40a614c1cc9087b9c0bd924a2d9d6cc0a83",
+ "sha256": "1ajjdpx4xbgig11380lyy10gqfmp23k5zwb77pwdl1rhapsdpjp8"
+ }
+ },
+ {
+ "ename": "phi-search",
+ "commit": "2f0274300c33f19ca6f868e1d570ffee513dbdf7",
+ "sha256": "0nj06ixl76dd80zg83q4bi8k224mcwb612mr4gd1xppj5k8xl03g",
+ "fetcher": "github",
+ "repo": "zk-phi/phi-search",
+ "unstable": {
+ "version": [
+ 20200510,
+ 905
+ ],
+ "commit": "f567f048b3892062c5528b42d4f6af4b313721a3",
+ "sha256": "15yc5nlfx2z48n8p7pb6qzgbzfpnapb83w5xx6z8lq0mywf3k5jj"
+ },
+ "stable": {
+ "version": [
+ 20160630
+ ],
+ "commit": "40b86bfe9ae15377fbee842b1de3d93c2eb7dd69",
+ "sha256": "10kyq3lkhmbmj1hl9awzc0w8073dn9mbjd5skh660ljg5mmi6x62"
+ }
+ },
+ {
+ "ename": "phi-search-dired",
+ "commit": "57c6dd518648f23927c5e6424210c157ed3cfd95",
+ "sha256": "1gf3vs3vrp5kbq4ixnj7adazmnqixi63qswgc2512p10gf7inf8p",
+ "fetcher": "github",
+ "repo": "zk-phi/phi-search-dired",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1542
+ ],
+ "deps": [
+ "phi-search"
+ ],
+ "commit": "f014a9fb0b6a94af2df0e22f91ef79ce6996afd7",
+ "sha256": "0ivb7d33qajccvs1sz4fc3h031qkqmz8w93k6di47qyfzd4vrvjm"
+ }
+ },
+ {
+ "ename": "phi-search-mc",
+ "commit": "83cf3fa3736eb2583dcf6bca16b9acb89e3408a3",
+ "sha256": "07hd80rbyzr5n3yd7hv1j51nl6pvcxmln20g6xvw8gh5yfl9k0m8",
+ "fetcher": "github",
+ "repo": "knu/phi-search-mc.el",
+ "unstable": {
+ "version": [
+ 20160324,
+ 1503
+ ],
+ "deps": [
+ "multiple-cursors",
+ "phi-search"
+ ],
+ "commit": "7aa671910f766437089aec26c3aa7814222d1356",
+ "sha256": "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 1
+ ],
+ "deps": [
+ "multiple-cursors",
+ "phi-search"
+ ],
+ "commit": "4c6d2d39feb502febb81fc98b7b5854d88150c69",
+ "sha256": "0r6cl1ng41s6wsy5syjlkaip0mp8h491diipdc1psbhnpk4vabsv"
+ }
+ },
+ {
+ "ename": "phi-search-migemo",
+ "commit": "b78e07146a4e954e050349a1798ac46ecba10bab",
+ "sha256": "0qk73s09sasm438w29j5z2bmlb60p1mgbv2ch43rgq8c6kjzg6h6",
+ "fetcher": "github",
+ "repo": "zk-phi/phi-search-migemo",
+ "unstable": {
+ "version": [
+ 20170618,
+ 921
+ ],
+ "deps": [
+ "migemo",
+ "phi-search"
+ ],
+ "commit": "308909ebfc8003d16673f97ca9eb26a667b72969",
+ "sha256": "07pi72jnd6k5xj9ypmxa0pbb03r07safpgf8vlp1m0xda5ixl0wf"
+ }
+ },
+ {
+ "ename": "phoenix-dark-mono-theme",
+ "commit": "87e3b036fbcc96b047bbb141345a7b51f19d6951",
+ "sha256": "15in299j170n0wxmkg3cx1zzx1n7r1ifraqqzfqhcnk8i8lmc939",
+ "fetcher": "github",
+ "repo": "j0ni/phoenix-dark-mono",
+ "unstable": {
+ "version": [
+ 20170729,
+ 1406
+ ],
+ "commit": "a54f515d162148bcb38676980bc2316adb3d7b8b",
+ "sha256": "1zr334qsjrajd2vrrlc1rfm4b4kdw15jfh5d102vj5bp7z7ajhb4"
+ }
+ },
+ {
+ "ename": "phoenix-dark-pink-theme",
+ "commit": "87e3b036fbcc96b047bbb141345a7b51f19d6951",
+ "sha256": "0bz6iw73d85bi12qqx6fdw3paqknrxvn0asbwjmgdcrlqrfczjlr",
+ "fetcher": "github",
+ "repo": "j0ni/phoenix-dark-pink",
+ "unstable": {
+ "version": [
+ 20190821,
+ 48
+ ],
+ "commit": "ddd98a45775be105984ec598384e68df3d3e8046",
+ "sha256": "02fhna45wq3wja51yrwm0xysdvyck1r0a3dx41i5sh89504gl6a9"
+ }
+ },
+ {
+ "ename": "php-auto-yasnippets",
+ "commit": "28b2d8802f98e339ff01ecf9733b71b6c631123e",
+ "sha256": "047i51ks2nn7ydrx2hjx9qvsh3lxnyxp8a6c3h3nb1acy84f5bd1",
+ "fetcher": "github",
+ "repo": "emacs-php/php-auto-yasnippets",
+ "unstable": {
+ "version": [
+ 20170331,
+ 114
+ ],
+ "deps": [
+ "php-mode",
+ "yasnippet"
+ ],
+ "commit": "03e1f0899c081813901ac15c2f7a675a37cca9f5",
+ "sha256": "0d7y6njsd1s2r5df2k8wvvwgxpwwyaqkhdd2b3p1php8rrbj3mg8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 1
+ ],
+ "deps": [
+ "php-mode",
+ "yasnippet"
+ ],
+ "commit": "1950d83cbcc5c5d62cd3bc432e1595870fe8cabf",
+ "sha256": "0zs11811kx6x1zgc1icd8gw420saa7z6zshpzmrddnbznya4qql6"
+ }
+ },
+ {
+ "ename": "php-boris",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0kklwk8b98czsg567vgzzdfnv76yn1id3ah2q2qqdhaky1yzw7ak",
+ "fetcher": "github",
+ "repo": "tomterl/php-boris",
+ "unstable": {
+ "version": [
+ 20130527,
+ 821
+ ],
+ "commit": "f2faebf610c917f7091f7ec0cd97645629c4f819",
+ "sha256": "07lcibr55pk3sab9bbq2r4phadl5p28n63wkq5rkhkkjc7s9rayc"
+ }
+ },
+ {
+ "ename": "php-boris-minor-mode",
+ "commit": "f0a8eb0eefe88b4ea683a4743c0f8393506e014b",
+ "sha256": "06nzdvzjp6ywq0jf0v0cmcv77wj1vyas2r10kmxd45rzw12hqjd9",
+ "fetcher": "git",
+ "url": "https://framagit.org/steckerhalter/php-boris-minor-mode.git",
+ "unstable": {
+ "version": [
+ 20140209,
+ 1835
+ ],
+ "deps": [
+ "highlight",
+ "php-boris"
+ ],
+ "commit": "c70e176dd6545f2d42ca3427e87b469635616d8a",
+ "sha256": "1wk7vq80v97psxfg0pwy4mc6kdc61gm6h1vgl9p71ii6g6zvzcqg"
+ }
+ },
+ {
+ "ename": "php-cs-fixer",
+ "commit": "a3631c4b81c1784995ae9e74d832e301d79214e2",
+ "sha256": "1xvz6v1fwngi2rizrx5sf0wrs4cy8rb13467r26k8hb7z8h1rqmf",
+ "fetcher": "github",
+ "repo": "OVYA/php-cs-fixer",
+ "unstable": {
+ "version": [
+ 20200312,
+ 1309
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "95eace9bc0ace128d5166e303c76df2b778c4ddb",
+ "sha256": "1pl6zw1m8n3ir48h58gaq2f474w9j20a6gk4r0cq5vgvzxx25f0h"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "95eace9bc0ace128d5166e303c76df2b778c4ddb",
+ "sha256": "1pl6zw1m8n3ir48h58gaq2f474w9j20a6gk4r0cq5vgvzxx25f0h"
+ }
+ },
+ {
+ "ename": "php-eldoc",
+ "commit": "7af452f42847a947e87edd6aa559f807d08920c1",
+ "sha256": "1q5fkl8crqrgxik2mxbkqv10qnqhqrazd66rgfw797s3jcchv58j",
+ "fetcher": "github",
+ "repo": "sabof/php-eldoc",
+ "unstable": {
+ "version": [
+ 20140202,
+ 1941
+ ],
+ "commit": "df05064146b884d9081e10657e32dc480f070cfe",
+ "sha256": "0hm6myvf91f4d2yfc7fs2xky9m8hfnimx1gkfzmn9f5pcc2l2p0i"
+ }
+ },
+ {
+ "ename": "php-mode",
+ "commit": "5593a586ce7579fd3a136e2416b89721157f98e1",
+ "sha256": "1xa9dmjinm6qm4cbzqanw5njmif71sg3jxnvgvi17jj9j3125d9f",
+ "fetcher": "github",
+ "repo": "emacs-php/php-mode",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1129
+ ],
+ "commit": "f4c7c6995dadcdc6da5fefadfd362f8418b2eec1",
+ "sha256": "0vg8xzpm4lbahlldgfsc63wfans3wx0nfkm2x2k3qkgp9r7wbh38"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 23,
+ 0
+ ],
+ "commit": "08c6e0f6719fafa60cf76f741d83524fd84163d6",
+ "sha256": "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"
+ }
+ },
+ {
+ "ename": "php-quickhelp",
+ "commit": "955f58195517df08f69dd4c85cba31c94c88d345",
+ "sha256": "0w9r3h5pqbsg88ki3zny6mznmz39w5cq21lzzg2521a4hddi8g44",
+ "fetcher": "github",
+ "repo": "vpxyz/php-quickhelp",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1944
+ ],
+ "commit": "f1d79fbed01b667495f64438687f1fbd6bf486c6",
+ "sha256": "0lnjd0ris288ia6i2wvw30yg57fmh5xgq1dln243s57yvm1wccfd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 4
+ ],
+ "commit": "325668a47127bee77f094ed2b09171b8656c7429",
+ "sha256": "16cm754r1cg1rb6blfqcja41klr4hy90gkhg6p9p79qgxjrnbbbd"
+ }
+ },
+ {
+ "ename": "php-refactor-mode",
+ "commit": "ad4a9bb43e131e2eb0d8b09b13245bc268c524a5",
+ "sha256": "0gj0nv6ii7pya0hcxs8haz5pahj0sa12c2ls53c3j85in645zb3s",
+ "fetcher": "github",
+ "repo": "keelerm84/php-refactor-mode.el",
+ "unstable": {
+ "version": [
+ 20171124,
+ 635
+ ],
+ "commit": "7a794b0618df2882b1bd586fdd698dba0bc5130d",
+ "sha256": "12kjyzmicay7y37znk0znpn81lszmnydq5fkl5pk57bxblwwiivg"
+ }
+ },
+ {
+ "ename": "php-runtime",
+ "commit": "615c9ac208d8c20082a8ac83e49e93d99e2cbc89",
+ "sha256": "0dvnwajrjsgyqzglzpkx9vwx3f55mrag6dsbdjqc9vvpvxhmgfwb",
+ "fetcher": "github",
+ "repo": "emacs-php/php-runtime.el",
+ "unstable": {
+ "version": [
+ 20181212,
+ 1825
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "s"
+ ],
+ "commit": "017e0e70f07d6b25e37d5c5f4d271a914b677631",
+ "sha256": "1c74xd6p3hfanpd4920agvnar9rjbyvz33kwrzw9vywzrs68ncvh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "s"
+ ],
+ "commit": "017e0e70f07d6b25e37d5c5f4d271a914b677631",
+ "sha256": "1c74xd6p3hfanpd4920agvnar9rjbyvz33kwrzw9vywzrs68ncvh"
+ }
+ },
+ {
+ "ename": "php-scratch",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0sl9cccp4xjsidiyjf3sca8wlch3zd23zyac21xys11xm3rjxh9r",
+ "fetcher": "github",
+ "repo": "mallt/php-scratch",
+ "unstable": {
+ "version": [
+ 20161103,
+ 2217
+ ],
+ "deps": [
+ "php-mode",
+ "s"
+ ],
+ "commit": "3aa66d1d53b84b779374edff7a7e6b5f2cd7575d",
+ "sha256": "0iyb4y0wrd1yqm56p37riw6nwvrlcgxj1x0nhw8304p8hv76mzdi"
+ }
+ },
+ {
+ "ename": "phpactor",
+ "commit": "d67b98ecd541c227c011615f67d7a0890f5e1af3",
+ "sha256": "0w2iszi74y3s6rcn6p2ic545cg319y4jpy83npbh5m98y8jma84m",
+ "fetcher": "github",
+ "repo": "emacs-php/phpactor.el",
+ "unstable": {
+ "version": [
+ 20200618,
+ 1845
+ ],
+ "deps": [
+ "async",
+ "composer",
+ "f",
+ "php-runtime"
+ ],
+ "commit": "62d2372ea55c0c5fb4e77076988472ebb5d85f24",
+ "sha256": "1sfrdap157zc7lk9vwsy91p813ip8dmazgfjwh7jwzyvcj7dsimc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "f"
+ ],
+ "commit": "61e4eab638168b7034eef0f11e35a89223fa7687",
+ "sha256": "0dsa1mygb96nlz5gppf0sny3lxaacvmvnkg84c0cs6x223s6zfx8"
+ }
+ },
+ {
+ "ename": "phpcbf",
+ "commit": "77ef54e3fb2715a081786dc54f99ae74def5c77c",
+ "sha256": "1hf88ys4grffpqgavrbc72dn3m7crafgid2ygzx9c5j55syh8mfv",
+ "fetcher": "github",
+ "repo": "nishimaki10/emacs-phpcbf",
+ "unstable": {
+ "version": [
+ 20181228,
+ 423
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "fb0bc6073a57126cf1a8404723aa0a715dd761aa",
+ "sha256": "0k2wl137nippcfx3g35kfprz2fiv8rbbi7dcpxciwnbqmn6ry7rf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 2
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "b556b548ceb061b002389d6165d2cc63d8bddb5d",
+ "sha256": "09rinyx0621d7613xmbyvrrlav6d4ia332wkgg0m9dn265g3h56z"
+ }
+ },
+ {
+ "ename": "phpstan",
+ "commit": "43808f57146a395b92ed498803fa948a33e5f3c2",
+ "sha256": "1nx9d4mhxhvbgrxawkpkw03b75bg1xpli1x83g2bhs8ar8lypjik",
+ "fetcher": "github",
+ "repo": "emacs-php/phpstan.el",
+ "unstable": {
+ "version": [
+ 20200807,
+ 1101
+ ],
+ "deps": [
+ "php-mode"
+ ],
+ "commit": "e675cf0881408e10b76f2e70c6158237cb94671e",
+ "sha256": "11qd0mpcvc56hghwv60a57d5pap19s7yvlvi6827wnrq35cyzh7f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "php-mode"
+ ],
+ "commit": "bf9e82a63f2ccb12af02c9e79a83e7989eeb7cb1",
+ "sha256": "15kv5xv6lcfgf048wr2zsnpvrplbxypy3wq56zvrzbq18hwprqg1"
+ }
+ },
+ {
+ "ename": "phpt-mode",
+ "commit": "59a0e7aabf45c98b1ecf9db49f6420a6e051733b",
+ "sha256": "1isq3l6qhya5vafmcqbda7r0irdmgvmlmdg98n7h8yck5imi78yf",
+ "fetcher": "github",
+ "repo": "emacs-php/phpt-mode",
+ "unstable": {
+ "version": [
+ 20190512,
+ 1809
+ ],
+ "deps": [
+ "php-mode",
+ "polymode"
+ ],
+ "commit": "deb386f1a81003074c476f15e1975d445ff6df01",
+ "sha256": "0wv1q44f5hmpsrjvjb5y8c1gnjkazdghmgbzw6l30i3j3z36fy60"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "php-mode",
+ "polymode"
+ ],
+ "commit": "310579e5db57c344460f74239bd1a8fc0d6ddf33",
+ "sha256": "1zgnnzad0sr5qh665i3shcf18y121di8za99girkzgzjcv309r35"
+ }
+ },
+ {
+ "ename": "phpunit",
+ "commit": "0670b42c0c998daa7bf01080757976ac3589ec06",
+ "sha256": "0nj8ss1yjkcqnbnn4jgbp0403ljjk2xhipzikdrl3dbxlf14i4f8",
+ "fetcher": "github",
+ "repo": "nlamirault/phpunit.el",
+ "unstable": {
+ "version": [
+ 20180829,
+ 1438
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "pkg-info",
+ "s"
+ ],
+ "commit": "fe6bc91c3bd8b329c6d26ad883a025f06b5121ee",
+ "sha256": "1silbfmv85r73pbc7f5cm4znc6644ngihfnhibk1fgp9j0rf7ahc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 17,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "f",
+ "pkg-info",
+ "s"
+ ],
+ "commit": "4212307bbcfd8accd2abfa7e4ab55a6751a0b11b",
+ "sha256": "1silbfmv85r73pbc7f5cm4znc6644ngihfnhibk1fgp9j0rf7ahc"
+ }
+ },
+ {
+ "ename": "pianobar",
+ "commit": "b5659b4c7be20572aabe75caba866301393db012",
+ "sha256": "16vsf2cig9qjbh9s58zb5byjmyghxbsxpzpm5hyyrv251jap1jjn",
+ "fetcher": "github",
+ "repo": "agrif/pianobar.el",
+ "unstable": {
+ "version": [
+ 20180417,
+ 104
+ ],
+ "commit": "3154c4cb7401017fd441fcd6a7a0b669a4406882",
+ "sha256": "0dy51pi85i8ag47zmnhppllsbmxd0bp704azffddkg36pjh4inxk"
+ }
+ },
+ {
+ "ename": "pickle",
+ "commit": "4cb71882f074d3fef1f5a7b504dafcb6adff8ed4",
+ "sha256": "0fryzmrs6bn6r590qp08jyzx9g6jakf1pahxhcfglsv9k3jbfp13",
+ "fetcher": "github",
+ "repo": "ahungry/pickle-mode",
+ "unstable": {
+ "version": [
+ 20190923,
+ 354
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3a0a717f2a24827667f34bc53830a3b81cd57460",
+ "sha256": "1r12r21882bq22w6cawf28ndf70nz2nd0f2wagdfr5a9ir9wchfy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3a0a717f2a24827667f34bc53830a3b81cd57460",
+ "sha256": "1r12r21882bq22w6cawf28ndf70nz2nd0f2wagdfr5a9ir9wchfy"
+ }
+ },
+ {
+ "ename": "picpocket",
+ "commit": "e88dc89311d4bfe82dc15f22b84c4b76abb3fd69",
+ "sha256": "0p2mrjcd8ig0h7dk0zvyfma4nnfk2ic6gp2dwfqyqq6irb010f45",
+ "fetcher": "github",
+ "repo": "johanclaesson/picpocket",
+ "unstable": {
+ "version": [
+ 20180914,
+ 1819
+ ],
+ "commit": "6fd88b8711c4370662c0f9c462170187d092a046",
+ "sha256": "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"
+ }
+ },
+ {
+ "ename": "pig-mode",
+ "commit": "a0d7c07d28e2f229b281201a781ebaceed6465ed",
+ "sha256": "0gmvc4rrqkn0cx8fk1sxk6phfbpf8dcba3k6i24k3idcx8rxsw3x",
+ "fetcher": "github",
+ "repo": "motus/pig-mode",
+ "unstable": {
+ "version": [
+ 20180520,
+ 1400
+ ],
+ "commit": "4c6c6e1b1bb719d8adc6c47cc24665f6fe558959",
+ "sha256": "1vwnybyrzk8nw2cs27yrsipxb6hmx7cs5d60yf00h0wiv3l6v3rr"
+ }
+ },
+ {
+ "ename": "pig-snippets",
+ "commit": "a0d7c07d28e2f229b281201a781ebaceed6465ed",
+ "sha256": "1sqi0a2dsqgmabkrncxiyrhibyryyy25d11b15ybhlngd05wqbx2",
+ "fetcher": "github",
+ "repo": "motus/pig-mode",
+ "unstable": {
+ "version": [
+ 20130913,
+ 624
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "4c6c6e1b1bb719d8adc6c47cc24665f6fe558959",
+ "sha256": "1vwnybyrzk8nw2cs27yrsipxb6hmx7cs5d60yf00h0wiv3l6v3rr"
+ }
+ },
+ {
+ "ename": "pillar",
+ "commit": "bff55f1182f3bd0bc8a8773921f703168d87de21",
+ "sha256": "1lklky3shyvm1iygp621hbldpx37m0a9vd5l6mxs4y60ksj6z0js",
+ "fetcher": "github",
+ "repo": "pillar-markup/pillar-mode",
+ "unstable": {
+ "version": [
+ 20141112,
+ 1811
+ ],
+ "deps": [
+ "makey"
+ ],
+ "commit": "13a7f676544cc66005ccd8e6fc1c25e4ccd6f909",
+ "sha256": "19i8hgzr7kdj4skf0cnv6vlsklq9qcyxcv3p33k9vgq7y4f9mah8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "makey"
+ ],
+ "commit": "13a7f676544cc66005ccd8e6fc1c25e4ccd6f909",
+ "sha256": "19i8hgzr7kdj4skf0cnv6vlsklq9qcyxcv3p33k9vgq7y4f9mah8"
+ }
+ },
+ {
+ "ename": "pinboard",
+ "commit": "17af21be67f2c879b3ad109e529ca633fcdb4ff5",
+ "sha256": "19icd7xg7fwka3n2c9x4697dkji4mqivjc0gygic5bwh83dhbdav",
+ "fetcher": "github",
+ "repo": "davep/pinboard.el",
+ "unstable": {
+ "version": [
+ 20200630,
+ 1544
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d426f9d2ebec5f907c8a89d6b38ccbcb13750d4f",
+ "sha256": "0jganb5ws2qlzyncyhaw1hldqbpxm44ddzzy17hmriy8n5701fyv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7c57f20667ead2bb27ab1d0a03307c28ea728bd9",
+ "sha256": "0d9z1hr2082sbg4dlmarksh598xd92w7c09xmdjyn1yqm39gsljw"
+ }
+ },
+ {
+ "ename": "pinboard-api",
+ "commit": "7a13787abe600b6f6355a475af573efa0064bf6f",
+ "sha256": "0yzvgnpkj2fhl01id36nc5pj8vyb05bllraiz3lwwcc66y98h9n0",
+ "fetcher": "github",
+ "repo": "danieroux/pinboard-api-el",
+ "unstable": {
+ "version": [
+ 20140324,
+ 1148
+ ],
+ "commit": "b7b5214d0c35178f8dca08cf22d6ef3c21f0fce4",
+ "sha256": "0wy9c37g6m5khchlp8qvfnjgkwq4r38659adcm5prvzjgzqhlfja"
+ }
+ },
+ {
+ "ename": "pinboard-popular",
+ "commit": "094f63e451622571aac832b14221a0d5a96de9c5",
+ "sha256": "0d9ng4mclnb9yfzh8wzz03fbhfxayns0dg31bdixkwvy2vk00rkf",
+ "fetcher": "github",
+ "repo": "asimpson/pinboard-popular",
+ "unstable": {
+ "version": [
+ 20180511,
+ 1726
+ ],
+ "deps": [
+ "loop"
+ ],
+ "commit": "c0bc76cd35f8ecf34723c64a702b82eec2751318",
+ "sha256": "1msvb5r6ixd886plpbss62q2nwrrsb6271bi922vlhr817lhsain"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "loop"
+ ],
+ "commit": "df6f5928f1e5a614fb770f6f4b9aefe0bf4d1c25",
+ "sha256": "1x3qaqj81w1wblkd4rd1b7nggmgnf6jahh3zh2p6nlr200fg52lq"
+ }
+ },
+ {
+ "ename": "pine-script-mode",
+ "commit": "287b781147fe41089fa8c76570bc30539e43e5bc",
+ "sha256": "0ihijbcx7m4vhxr1fnfkwjdk6ka1mqzxb8z164yh8yn73qs0saiq",
+ "fetcher": "github",
+ "repo": "EricCrosson/pine-script-mode",
+ "unstable": {
+ "version": [
+ 20181110,
+ 151
+ ],
+ "commit": "f7892d373e30df0b2e8d2191e4ddb2064a92dd3c",
+ "sha256": "1zxmc2l41h28rl058lrfr8c26hjzqmp37ii8r29mpsm03hsw30fh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "f7892d373e30df0b2e8d2191e4ddb2064a92dd3c",
+ "sha256": "1zxmc2l41h28rl058lrfr8c26hjzqmp37ii8r29mpsm03hsw30fh"
+ }
+ },
+ {
+ "ename": "pinot",
+ "commit": "f75cd89811b4bb668c1e7a93246b93fbcf5d9c47",
+ "sha256": "1kjzq02pddnkia637xz2mnjjyglyh6qzragnf7nnxbw9ayiim58i",
+ "fetcher": "github",
+ "repo": "tkf/emacs-pinot-search",
+ "unstable": {
+ "version": [
+ 20140211,
+ 2026
+ ],
+ "commit": "67fda555a155b22bb2ce44ba618b4bd6fc5f144a",
+ "sha256": "1wc31r5fpcia4n4vbpg7vv3rzrnjzh18yygi3kp4wvl2wzx2azqh"
+ }
+ },
+ {
+ "ename": "pinyin",
+ "commit": "b16f0f7f86021bb0bece6c90878b0dba1657107f",
+ "sha256": "1afgz62zpar6d65q4h12s7ijhhl2r2vlrnk79vsjrl560jh7hgfm",
+ "fetcher": "github",
+ "repo": "xuchunyang/pinyin.el",
+ "unstable": {
+ "version": [
+ 20180620,
+ 1241
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a325e790e9dd7c5028c4c8d110b08e9d78227382",
+ "sha256": "0f715zsg6j9y22w55gjv7wk90660zzpv4bilc2mi69dv534d9qv9"
+ }
+ },
+ {
+ "ename": "pinyin-search",
+ "commit": "03da6f02778f7fae77a00cdc420cfbafead6dec4",
+ "sha256": "1si693nmmxgg0kp5mxvj5nq946kfc5cv3wfsl4znbqzps8qb2b7z",
+ "fetcher": "github",
+ "repo": "xuchunyang/pinyin-search.el",
+ "unstable": {
+ "version": [
+ 20160515,
+ 358
+ ],
+ "deps": [
+ "pinyinlib"
+ ],
+ "commit": "2e877a76851009d41bde66eb33182a03a7f04262",
+ "sha256": "0bp4raxqv34jyg3yvdcsh9lav28x376gngm9nn8vjgmq9wggzf3i"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "5895cccfa6b43263ee243c5642cc16dd9a69fb4e",
+ "sha256": "12jhdkgfck2a6d5jj65l9d98dm34gsyi0ya4h21dbbvz35zivz70"
+ }
+ },
+ {
+ "ename": "pinyinlib",
+ "commit": "f4aa27985dcfaf24f1863667b89e13df4710546f",
+ "sha256": "0kv67qa3825fw64qimkph2b65pilrsx5730y4c7f7c1f8giz5vxr",
+ "fetcher": "github",
+ "repo": "cute-jumper/pinyinlib.el",
+ "unstable": {
+ "version": [
+ 20170827,
+ 2142
+ ],
+ "commit": "45f05d3dbb4fe957f7ab332ca6f94675848b6aa3",
+ "sha256": "0pmgb4y06dbffs4442aa92vn8ydwl45zqwzxzwhk6md1318fppvd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "39943d226c2a42a9013421a0b4b6d5d3696bf234",
+ "sha256": "1nwj4c3y0kdlkf3jqd2dnibaiazrq6qcj533xk2qw4wmx072yij0"
+ }
+ },
+ {
+ "ename": "pip-requirements",
+ "commit": "5eaf6987f92070ccc33d3e28c6bb2b96f72ba1aa",
+ "sha256": "1wsjfyqga7pzp8gsm5x53qrkn40srairbjpifyrqbi2fpzmwhrnz",
+ "fetcher": "github",
+ "repo": "Wilfred/pip-requirements.el",
+ "unstable": {
+ "version": [
+ 20181027,
+ 1629
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "216cd1690f80cc965d4ae47b8753fc185f778ff6",
+ "sha256": "0da3q0n5nn0l96kk49kanw5knx3jmga439zbmiii76na16bg5y3i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "93e0595f037e3a95c1c1cd6f00f7e052a9a25912",
+ "sha256": "016r7y5nfnx6iws3hq4xnyrcv00y6zmd453psxhivi896wb8szfq"
+ }
+ },
+ {
+ "ename": "pipenv",
+ "commit": "d46738976f5dfaf899ee778b1ba6dcee455fd271",
+ "sha256": "110ddg6yjglp49rgn1ck41rl97q92nm6zx86mxjmcqq35cxmc6g1",
+ "fetcher": "github",
+ "repo": "pwalsh/pipenv.el",
+ "unstable": {
+ "version": [
+ 20190919,
+ 2147
+ ],
+ "deps": [
+ "f",
+ "pyvenv",
+ "s"
+ ],
+ "commit": "b730bb509e8b60af9f5ab1f1e6c3458d1d95d789",
+ "sha256": "0f2lihzzw9v91adx9v89crbsph4zjj0qrlb3a8fikbhd6jy8xpb8"
+ }
+ },
+ {
+ "ename": "pippel",
+ "commit": "6d1796688ed0d6957557d960ca28e450f9bcb6cf",
+ "sha256": "1li4h0dff1n7njy2lk3d50ndrlw84fphmdg16j0srkbgy7xz90yn",
+ "fetcher": "github",
+ "repo": "brotzeit/pippel",
+ "unstable": {
+ "version": [
+ 20180710,
+ 856
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "21a5200e8e5ccaa1911abb4ebf090b76ca839756",
+ "sha256": "1amqjm6kn1xda058kdwq3xgk7raz6y9iw0mzrac78sgf57qaczyb"
+ }
+ },
+ {
+ "ename": "pixie-mode",
+ "commit": "a57300bfdae57c9996db0411d56a5fc7b35778c3",
+ "sha256": "16z15yh78837k548xk5widdmy6fv03vym6q54i40knmgf5cllsl8",
+ "fetcher": "github",
+ "repo": "johnwalker/pixie-mode",
+ "unstable": {
+ "version": [
+ 20180626,
+ 541
+ ],
+ "deps": [
+ "clojure-mode",
+ "inf-clojure"
+ ],
+ "commit": "a40c2632cfbe948852a5cdcfd44e6a65db11834d",
+ "sha256": "11c5gv88chh7sg2i0rzisbad0mkq1zc7dyi5md8hdi5gqm68704g"
+ }
+ },
+ {
+ "ename": "pixiv-novel-mode",
+ "commit": "92092c1c13c37520f98b952d40745aa062f062c1",
+ "sha256": "0f1rxvf9nrw984122i6dzsgik9axfjv6yscmg203s065n9lz17px",
+ "fetcher": "github",
+ "repo": "zonuexe/pixiv-novel-mode.el",
+ "unstable": {
+ "version": [
+ 20160220,
+ 1421
+ ],
+ "commit": "0d1ca524d92b91f20a7105402a773bc21779b434",
+ "sha256": "18rvnvm097ca4yc1nfswdv7dfqg36insnif5kfj19aa60m9qxl09"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "4dd9caf749190fab8f0b33862b3894b635de46c5",
+ "sha256": "1wg8pcwd70ixn2bxh01934zl12ry4pgx3l9dccpbjdi40gira00d"
+ }
+ },
+ {
+ "ename": "pkg-info",
+ "commit": "29dc2ef3801a1cd7cf8edd2eae68b03bf00e96a0",
+ "sha256": "1pg26fnni5yi4agqmy1lf1k0wkrcjz1d845d8xryai6bf8fiwf0c",
+ "fetcher": "github",
+ "repo": "emacsorphanage/pkg-info",
+ "unstable": {
+ "version": [
+ 20150517,
+ 1143
+ ],
+ "deps": [
+ "epl"
+ ],
+ "commit": "76ba7415480687d05a4353b27fea2ae02b8d9d61",
+ "sha256": "150xhsv695cchs5jc2hwk9gjgs0k8wkm966crvxxs6xvj5fg69xq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "epl"
+ ],
+ "commit": "f9bb471ee95d1c5fe9adc6b0e98db2ddff3ddc0e",
+ "sha256": "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"
+ }
+ },
+ {
+ "ename": "pkgbuild-mode",
+ "commit": "ca7bf43ef8893bf04e9658390e306ef69e80a156",
+ "sha256": "1lp7frjahcpr4xnzxz77qj5hbpxbxm2g28apkixrnc1xjha66v3x",
+ "fetcher": "github",
+ "repo": "juergenhoetzel/pkgbuild-mode",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1742
+ ],
+ "commit": "887c01cb06420501c7780fb01a8a76bdb0864cca",
+ "sha256": "17v71sd1i7wyvjzz0nir7p28cskzgws4dcpm83ch1khhljh3r7kl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 14
+ ],
+ "commit": "6bb7cb3b0599ac0ae3c1d8d5014aefc1ecff7965",
+ "sha256": "0a8qb1ldk6bjs7fpxgxrf90md7q46fhl71gmay8yafdkh6hn0kqr"
+ }
+ },
+ {
+ "ename": "plain-org-wiki",
+ "commit": "6b515386c3969b8d79e14b506bc0d9e1ec3097c4",
+ "sha256": "0m0mm0ki92561axm89mwc6vcx9rwdb7ai9hlvgnhf40k94s97lz6",
+ "fetcher": "github",
+ "repo": "abo-abo/plain-org-wiki",
+ "unstable": {
+ "version": [
+ 20200617,
+ 828
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "5e32e7e6216e24d515624008fa0898077403aa7f",
+ "sha256": "0d3nhvkzzharjv54w3rinqcpwhqb61flgvvcngfdxkrgs1yazaqk"
+ }
+ },
+ {
+ "ename": "plain-theme",
+ "commit": "d4bd77883375b229e344384e42c3603ca096891c",
+ "sha256": "0igncivhnzzirglmz451czx69cwshjkigqvqddj0a77b1cwszfw8",
+ "fetcher": "github",
+ "repo": "yegortimoshenko/plain-theme",
+ "unstable": {
+ "version": [
+ 20171124,
+ 410
+ ],
+ "commit": "48b37b9b19d8f1e0accbf930f30b5346cf7959fe",
+ "sha256": "0pi4sjp0aq279m449lw4rbppdivzkazd07bh9jqrmyrw9wib3hbl"
+ },
+ "stable": {
+ "version": [
+ 8
+ ],
+ "commit": "2609a811335d58cfb73a65d6307c156fe09037d3",
+ "sha256": "0g5vl4xigdm2pn2mnkwgj1kxdjr66w7ynr77bchy3ij6qvzdzkqd"
+ }
+ },
+ {
+ "ename": "plan9-theme",
+ "commit": "cdc4c2bafaa09e38edd485a9091db689fbda2fe6",
+ "sha256": "0bvr877mc79s1shr82b33ipspz09jzc3809c6pkbw0jqpfid44cc",
+ "fetcher": "github",
+ "repo": "john2x/plan9-theme.el",
+ "unstable": {
+ "version": [
+ 20180804,
+ 1441
+ ],
+ "commit": "c2da2fcb241e9800d931a1ff19ecd9fd84d30382",
+ "sha256": "0rjxbk9fljnjmg00vdqcyynzg591cgknyy2d92xsxsyg4d28dvwi"
+ }
+ },
+ {
+ "ename": "planet-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1hr5m08qn51r9804jd0k95ryz3frzkk1dp6wpybil6bf67a2l5lr",
+ "fetcher": "github",
+ "repo": "cmack/emacs-planet-theme",
+ "unstable": {
+ "version": [
+ 20161031,
+ 217
+ ],
+ "commit": "b0a310ff36565fe22224c407cf59569986698a32",
+ "sha256": "1xdj59skmldq5dnarirhwq4qycipas86nbyqwl8zsv0bh20nl1rs"
+ }
+ },
+ {
+ "ename": "plantuml-mode",
+ "commit": "38e74bb9923044323f34473a5b13867fe39bed25",
+ "sha256": "03srbg34512vxcqn95q4r7h2aqbqq0sd5c9ffnbx2a75vsblqc6h",
+ "fetcher": "github",
+ "repo": "skuro/plantuml-mode",
+ "unstable": {
+ "version": [
+ 20191102,
+ 2056
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "ea45a13707abd2a70df183f1aec6447197fc9ccc",
+ "sha256": "0rbmn2964w9kms6ql25dzpnyygj693123xs7gxasylgw5jall9wx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "5889166b6cfe94a37532ea27fc8de13be2ebfd02",
+ "sha256": "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"
+ }
+ },
+ {
+ "ename": "plaster",
+ "commit": "7e363cffa021e649c052f38cedb7cc01dbe9e24a",
+ "sha256": "0vfixc0f5n4flsmdf1iqlbx03yv28w3nqm1ycz2fx6p5jvhkvfqk",
+ "fetcher": "github",
+ "repo": "Shirakumo/plaster",
+ "unstable": {
+ "version": [
+ 20180127,
+ 2050
+ ],
+ "commit": "f82f845ede3b48ca11934171b30effb523ba9fcf",
+ "sha256": "0y9n4z388vbpyarpqgfyybfiin1hbw25b4m72ahxmpc4zq7ilqwl"
+ }
+ },
+ {
+ "ename": "platformio-mode",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1v1pp3365wj19a5wmsxyyy5n548z3lmcbm2pwl914wip3ca7546f",
+ "fetcher": "github",
+ "repo": "ZachMassia/PlatformIO-Mode",
+ "unstable": {
+ "version": [
+ 20161210,
+ 1339
+ ],
+ "deps": [
+ "projectile"
+ ],
+ "commit": "1466aed132a77f48fcb31938d64abb1a1e58ec42",
+ "sha256": "1lfkp7df8as9gspynkyhz4dbm95kbngyba1ymg6ql67adyv79v1i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "projectile"
+ ],
+ "commit": "470a80c1d764a6e1680a2b41ca5a847869a07a27",
+ "sha256": "1nznbkl06cdq4pyqmvkp9jynsjibn0fd6ai4mggz6ggcwzcixbf0"
+ }
+ },
+ {
+ "ename": "play-crystal",
+ "commit": "92715977136afa731e85e894542dc88b664b3304",
+ "sha256": "1jqf36b1mhyf4j7fs386g6isy09q7k8zwdc4rb34mhjg1a56gcnf",
+ "fetcher": "github",
+ "repo": "veelenga/play-crystal.el",
+ "unstable": {
+ "version": [
+ 20180114,
+ 1024
+ ],
+ "deps": [
+ "dash",
+ "request"
+ ],
+ "commit": "0b4810a9025213bd11dbcbfd38b3ca928829e0a5",
+ "sha256": "15gqr11paz5qmx43qb0f95wc87nn2snr7my22b0n6jwbk5djf402"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "request"
+ ],
+ "commit": "86b54346e7c832c14f8e5654a462f6490a6b11d7",
+ "sha256": "0kvkr24f8r21pahm2lsvbr9bg53770wxwpdfmmjljs2zmgxf2c40"
+ }
+ },
+ {
+ "ename": "play-routes-mode",
+ "commit": "740cef8687232eb0e2186e8df956c2d4f39575cf",
+ "sha256": "17phqil2zf5rfvhs5v743dh4lix4v2azbf33z9n97ahs7j66y2gz",
+ "fetcher": "github",
+ "repo": "brocode/play-routes-mode",
+ "unstable": {
+ "version": [
+ 20170426,
+ 733
+ ],
+ "commit": "22d7b87e0eaf0330f2b2283872f8dc08a3258771",
+ "sha256": "0j61adh2lsh2zgz1v9i2jzh56ngnrpvsblipvc472k5dxa5qdxin"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "d7eb682cd474d90b3a3d005290cd6d4fe9f94cae",
+ "sha256": "0slfaclbhjm5paw8l7rr3y9xxjyhkizp9lwyvlgpkd38n4pgj2bx"
+ }
+ },
+ {
+ "ename": "playerctl",
+ "commit": "6db0d82c2eef7c5bef5f9f2c15969da4c404b62d",
+ "sha256": "1pix3hcsg6ymzajiixwcq4v3clvadpkl0rhplkhachv6wmci327x",
+ "fetcher": "github",
+ "repo": "thomasluquet/playerctl.el",
+ "unstable": {
+ "version": [
+ 20180301,
+ 1354
+ ],
+ "commit": "3eee541423c2e5eb9f23a26fa9aa88c9c5a19ad1",
+ "sha256": "16qvn1mss5j8vpf1qpq4lwl4hwng64caw3c3shixsncfmgw25z6f"
+ }
+ },
+ {
+ "ename": "playground",
+ "commit": "f062a74fe1746129879ad19c1735621f58509d33",
+ "sha256": "1xjmxkl8h4l87fvv1sr478r6mkmy9gkzw2fxmzqn5fcsahzkyg4d",
+ "fetcher": "github",
+ "repo": "akirak/emacs-playground",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1336
+ ],
+ "commit": "77d2faab0bc3f6e1f2c65c66644c52167304610d",
+ "sha256": "1xl6fp246wk764jkyr7km7lgqfdyvbjxr9ri20dzaadfvwqyfzg5"
+ }
+ },
+ {
+ "ename": "playonline",
+ "commit": "27d8ea9dac3637eed39a68308194b30c1672a8ca",
+ "sha256": "10shq955cz664r0j0yjfrnnbvzjpcyq638lm6hwkiia5xbvsdz88",
+ "fetcher": "github",
+ "repo": "twlz0ne/playonline.el",
+ "unstable": {
+ "version": [
+ 20200317,
+ 642
+ ],
+ "deps": [
+ "dash",
+ "request"
+ ],
+ "commit": "c75da1fdc1dfbd5d9aa274dc4e90ff631ea08e70",
+ "sha256": "0vkgzqdcxp4mlkz9z8p4307lbvjz51wpqhzpmyw4gwl079xc6gkq"
+ }
+ },
+ {
+ "ename": "plenv",
+ "commit": "a0819979b9567ac5fab9ed6821eba8fe7ee6a299",
+ "sha256": "0dw9fy5wd9wm76ag6yyw3f9jnlj7rcdcxgdjm30h514qfi9hxbw4",
+ "fetcher": "github",
+ "repo": "karupanerura/plenv.el",
+ "unstable": {
+ "version": [
+ 20130707,
+ 616
+ ],
+ "commit": "ee937d0f3a1a7ba2d035f45be896d3ed8fefaee2",
+ "sha256": "11cbpgjsnw8fiqf1s12hbm9qxgjcw6y2zxx7wz4wg7idmi7m0b7g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 32
+ ],
+ "commit": "ee937d0f3a1a7ba2d035f45be896d3ed8fefaee2",
+ "sha256": "11cbpgjsnw8fiqf1s12hbm9qxgjcw6y2zxx7wz4wg7idmi7m0b7g"
+ }
+ },
+ {
+ "ename": "plim-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1nrqw5dvb3j5x3wkpsjbpv1d2s367icq9j4h1xv1cahfsn8nn4m9",
+ "fetcher": "github",
+ "repo": "dongweiming/plim-mode",
+ "unstable": {
+ "version": [
+ 20140813,
+ 13
+ ],
+ "commit": "92e39190286f172567ceb02c80e1df3b81abfa2d",
+ "sha256": "07hspp4bkb3f5dm0l1arm0w1m04cq4glg81x4a9kf7bl601wzki2"
+ }
+ },
+ {
+ "ename": "plisp-mode",
+ "commit": "33b151c3aba268977b105965c816716d8b35ad6d",
+ "sha256": "157v6h0rss9q1nshq0s59nn8q4xm7lq8c83ljgc8g9cql5b632i6",
+ "fetcher": "github",
+ "repo": "flexibeast/plisp-mode",
+ "unstable": {
+ "version": [
+ 20200427,
+ 405
+ ],
+ "commit": "59e682d77569b04e9fc80af9c4b05e4a997dbcec",
+ "sha256": "10v9j7sv5q9ywq8bdj2g1j262ggsy3hwqybn6rnrcim5v1f7a51r"
+ }
+ },
+ {
+ "ename": "plsense",
+ "commit": "fb1025f146514e9c142cd96cac9f2989d6d1a8c5",
+ "sha256": "1ka06r4ashhjkfyzql9mfvs3gj7n684h4gaycj29w4nfqrhcw9va",
+ "fetcher": "github",
+ "repo": "aki2o/emacs-plsense",
+ "unstable": {
+ "version": [
+ 20151104,
+ 1445
+ ],
+ "deps": [
+ "auto-complete",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "d50f9dccc98f42bdb42f1d1c8142246e03879218",
+ "sha256": "1r2yxa7gqr0z9fwhx38siwjpg73a93rdmnhr4h6nm6lr32vviyxm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 7
+ ],
+ "deps": [
+ "auto-complete",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "f6fb22607a5252b2556d2e7fa14f1bcab5d9747a",
+ "sha256": "0f00dv5jwbhs99j4jc6lvr5n0mv1y80yg7zpp6yrmhww6829l5rg"
+ }
+ },
+ {
+ "ename": "plsense-direx",
+ "commit": "65fb1d8b4ed12f097958842d1b00dcdf3660b184",
+ "sha256": "0qd4b7gkmn5ydadhp70995rap3643s1aa8gfi5izgllzhg0i864j",
+ "fetcher": "github",
+ "repo": "aki2o/plsense-direx",
+ "unstable": {
+ "version": [
+ 20140520,
+ 2008
+ ],
+ "deps": [
+ "direx",
+ "log4e",
+ "plsense",
+ "yaxception"
+ ],
+ "commit": "8a2f465264c74e04524cc789cdad0190ace43f6c",
+ "sha256": "0s34nbqqy6aqi113xj452pbmqp43046wfbfbbfv1xwhybgq0c1j1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "direx",
+ "log4e",
+ "plsense",
+ "yaxception"
+ ],
+ "commit": "8a2f465264c74e04524cc789cdad0190ace43f6c",
+ "sha256": "0s34nbqqy6aqi113xj452pbmqp43046wfbfbbfv1xwhybgq0c1j1"
+ }
+ },
+ {
+ "ename": "plur",
+ "commit": "38f6f53fcd1186efd5e6752166da4e23b712cdb1",
+ "sha256": "0nf1dc7xf2zp316rssnz8sv374akcr54hp0rb219qvgyck9bdqiv",
+ "fetcher": "github",
+ "repo": "xuchunyang/plur",
+ "unstable": {
+ "version": [
+ 20160504,
+ 924
+ ],
+ "commit": "5bdd3b9a2f0624414bd596e798644713cd1545f0",
+ "sha256": "0qlxj19hj96l4lw81xh5r14ppf6kp63clikk060s9yw00q7gnl6a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "5bdd3b9a2f0624414bd596e798644713cd1545f0",
+ "sha256": "0qlxj19hj96l4lw81xh5r14ppf6kp63clikk060s9yw00q7gnl6a"
+ }
+ },
+ {
+ "ename": "pmdm",
+ "commit": "279923aac9f668cd295709d5060e7a984be0c5a8",
+ "sha256": "1a6mvb3dcxkzk9acchi0xbgd3ki092l4c18qls6pgahwsj7wsk9v",
+ "fetcher": "hg",
+ "url": "https://hg.serna.eu/emacs/pmdm",
+ "unstable": {
+ "version": [
+ 20191101,
+ 2346
+ ],
+ "commit": "1f30adce8a23da94b3c2460b7248d5910592d8af",
+ "sha256": "0nwrzf7lvimay83k1s4nxz86d1a82v55j23vp2915c307gkwrl8z"
+ }
+ },
+ {
+ "ename": "pnpm-mode",
+ "commit": "c12d8b34a72c2ac8b29109492e203e45619116a6",
+ "sha256": "0vwsvadl6z31mzskjaykffv68vb8k4nffccdkb71vmrrbnpii6k5",
+ "fetcher": "github",
+ "repo": "rajasegar/pnpm-mode",
+ "unstable": {
+ "version": [
+ 20200527,
+ 557
+ ],
+ "commit": "391207e6505948b0d0cb57b802ee4885e3292c21",
+ "sha256": "0pgh9fnghj5f6vfkfb2l4jgf5j4lmidnfs949q0xik3b3hz4j4h3"
+ }
+ },
+ {
+ "ename": "po-mode",
+ "commit": "38e855cde9264bff67016d23e7e5e00f113c55bf",
+ "sha256": "1w06i709bb04pziygdn7y47gcci7gybg0p7ncdsm07d0w7q14v2z",
+ "fetcher": "github",
+ "repo": "emacsmirror/po-mode",
+ "unstable": {
+ "version": [
+ 20200610,
+ 1743
+ ],
+ "commit": "3114e245c2ee6208e9b506f3e65e631e1b236019",
+ "sha256": "1f84fziibcc1bjhcmmzvbsvsw2lwabsb70vl4x2jpqsraygzhw0b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 21
+ ],
+ "commit": "25eb1bdca30ed25d2e5d51b9feeb28a3faff51ec",
+ "sha256": "00ff5njs4aghkhipw5pmha4mj1a5s35g1cxihhbqpn9gr7kmbg02"
+ }
+ },
+ {
+ "ename": "pocket-api",
+ "commit": "04e3be76aef4d1b6d5bb3eda533b5deffcc8a5bc",
+ "sha256": "1f5j491wbqgbx6zlb0zdajca5il0628vr9a38y0n3x0h69wm0cx5",
+ "fetcher": "github",
+ "repo": "lujun9972/pocket-api.el",
+ "unstable": {
+ "version": [
+ 20180403,
+ 109
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "3eb9430b9db90bc02e736e433eb86389f7655189",
+ "sha256": "0k6a9zzdi02g677cc699llk04i06yb7ddnlnmxndap5jszfyqwfi"
+ }
+ },
+ {
+ "ename": "pocket-lib",
+ "commit": "71f17ce28f4fc8c2c100848be8aec15526ef8697",
+ "sha256": "0v619blifmvm36dr773wjf35fjji4dj3pyck9nkz0m8zmpz0fg78",
+ "fetcher": "github",
+ "repo": "alphapapa/pocket-lib.el",
+ "unstable": {
+ "version": [
+ 20190720,
+ 1957
+ ],
+ "deps": [
+ "dash",
+ "kv",
+ "request",
+ "s"
+ ],
+ "commit": "f794e3e619e1f6cad25bbfd5fe019a7e62820bf4",
+ "sha256": "0iv03wjwmz0di8n5bndmq5r18r1pq999v1scyay0jm1cxlksqafg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "kv",
+ "request",
+ "s"
+ ],
+ "commit": "ef3bcf452129b74e7b82265f6c08f9569fd19515",
+ "sha256": "0r2y6idzwkvaclsnaskdlzk9afvxnm9kkyy8y38cfwany3kbmyzj"
+ }
+ },
+ {
+ "ename": "pocket-mode",
+ "commit": "6aa3d04058bfc0bc1da3393d17429d517275e97c",
+ "sha256": "04zxll5yg021m13vr54w2pnrmqb87ykdbpa8nx2wn9myg2rywh0v",
+ "fetcher": "github",
+ "repo": "lujun9972/pocket-mode",
+ "unstable": {
+ "version": [
+ 20171201,
+ 1315
+ ],
+ "deps": [
+ "pocket-api"
+ ],
+ "commit": "229de7d35b7e5605797591c46aa8200d7efc363c",
+ "sha256": "0j3axac4lp7p00a7mf7frryqg1y3jwqaw0s475gz606642vg9l45"
+ }
+ },
+ {
+ "ename": "pocket-reader",
+ "commit": "835a7bf2f72987183e9d15ada7ae747fb5715c11",
+ "sha256": "0gcgmz4mhjgvqbh2gmv8v09sy80cnfccjym455m0fbl31b8dczhf",
+ "fetcher": "github",
+ "repo": "alphapapa/pocket-reader.el",
+ "unstable": {
+ "version": [
+ 20181219,
+ 930
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "kv",
+ "org-web-tools",
+ "ov",
+ "pocket-lib",
+ "rainbow-identifiers",
+ "s"
+ ],
+ "commit": "86c51c65d97819e11b3df403beea424f30125d30",
+ "sha256": "16dj1853qgd4farqb7wdpyyp1a4mxkasyb0j489h7saz9xn9q8xc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "kv",
+ "org-web-tools",
+ "ov",
+ "pocket-lib",
+ "rainbow-identifiers",
+ "s"
+ ],
+ "commit": "a7f080ec3e9522f942166de61b24a375b8f1c2bb",
+ "sha256": "0l7dln7qcrgzm73vk7jp8wr2kibg18973xmdzyyc162hdnlbrpb0"
+ }
+ },
+ {
+ "ename": "podcaster",
+ "commit": "2649dc294f40d00f3bf1b1cf09879c2ef0d3e43b",
+ "sha256": "1kzac0mhg8dk2vfk29ns36jl8vwg6ghbdb3n6kqfzci5ygn96yib",
+ "fetcher": "github",
+ "repo": "lujun9972/podcaster",
+ "unstable": {
+ "version": [
+ 20200607,
+ 1054
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7a21173da0c57e6aa41dbdc33383047386b35eb5",
+ "sha256": "1b2bhwipsyyydrqdxjsipzy170xdkfamd4mw5pwzjcgdjqz9wvxa"
+ }
+ },
+ {
+ "ename": "poe-lootfilter-mode",
+ "commit": "006f39eaf8a87822fe8becab1da2822ff6fc2beb",
+ "sha256": "0iw3a2lf0mnv3lamphy458nfyjjm1yvln1syfad49av3karca05z",
+ "fetcher": "github",
+ "repo": "jdodds/poe-lootfilter-mode",
+ "unstable": {
+ "version": [
+ 20190330,
+ 1117
+ ],
+ "commit": "5ef06684cb2b17b090ee1f303c2b789fa71bc106",
+ "sha256": "1lxfbsixvr0rjcck4h4v000yb0iscvk9fwyw322y2cv2hvgwvkdw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "5ef06684cb2b17b090ee1f303c2b789fa71bc106",
+ "sha256": "1lxfbsixvr0rjcck4h4v000yb0iscvk9fwyw322y2cv2hvgwvkdw"
+ }
+ },
+ {
+ "ename": "poet-client",
+ "commit": "a0b003773edaa728ed49f0de2ca64a00cb60d13a",
+ "sha256": "11yj57915ly8j2byp5c395lip73iv1chrzxdlxilhnll1brvmaw0",
+ "fetcher": "github",
+ "repo": "wailo/emacs-poet",
+ "unstable": {
+ "version": [
+ 20190124,
+ 654
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "32382057b3e4b8a02ec5ac3190dbe4b93d058741",
+ "sha256": "1p8x7g3hg6yw51c67kznvldrvwnp67l9b6drnmck8glwx0nxb6zr"
+ }
+ },
+ {
+ "ename": "poet-theme",
+ "commit": "40bbe29dee56f7989d8e87c03f4842e2b191acc3",
+ "sha256": "0pllyp4spj30g6ihzc91hzvnrvcg2zb49adj8wcmbzvq3hxnvls1",
+ "fetcher": "github",
+ "repo": "kunalb/poet",
+ "unstable": {
+ "version": [
+ 20200606,
+ 2343
+ ],
+ "commit": "16eb694f0755c04c4db98614d0eca1199fddad70",
+ "sha256": "0zm8jbviddyj7jnyssh77jx43jghbpjwr77n9s3cjp3bmadwkrv5"
+ }
+ },
+ {
+ "ename": "poetry",
+ "commit": "bdba6f313525b5cbc842a11cb63ea8dc1b9e72f9",
+ "sha256": "06ani15z1c07i9dxkkxlmwx9gd8if7fybpy1xmkg829l3sl5bz1j",
+ "fetcher": "github",
+ "repo": "galaunay/poetry.el",
+ "unstable": {
+ "version": [
+ 20200805,
+ 1259
+ ],
+ "deps": [
+ "pyvenv",
+ "transient"
+ ],
+ "commit": "22a76cdcba180b4689a6b45c97669e3c76cd36ed",
+ "sha256": "099sxca06zxfvlvmsgjicira4r4csqv2m4l0d7icji57qahbp5h2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl",
+ "transient",
+ "xterm-color"
+ ],
+ "commit": "6fb34742a66421c6104e02d65e8d391fc4494ab5",
+ "sha256": "0hdicdskf928s7qdlzxq25ibfmwi8llmyhy1bj2py56wr2qv3cfy"
+ }
+ },
+ {
+ "ename": "point-pos",
+ "commit": "23a1e835155fba51f595c10c46487a4c269f43ff",
+ "sha256": "1zv6hx8i8jwq52j4la1ff0ar0bpbs2pb4gcsh9hypghba11gnync",
+ "fetcher": "github",
+ "repo": "alezost/point-pos.el",
+ "unstable": {
+ "version": [
+ 20170421,
+ 1632
+ ],
+ "commit": "442bccb40791832cbc2d6f5c8f53be745aea2b73",
+ "sha256": "1p56h8ipgrd5433pc641xccdnsni51l58ll0hv2rp9aqjg9nlgcr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "4cd0f8c8d1296c5c64f708b6a5835e8520c51b68",
+ "sha256": "1l3mlz51wp729rm6wf72x2fk1fla2n2s1qh8h8z58inipdi2qydp"
+ }
+ },
+ {
+ "ename": "point-stack",
+ "commit": "bb3c9e6b3c583f098f75462b4d48cd137a1bcb76",
+ "sha256": "0201gka1izqgxyivan60jbg9x1mmsw5dscxacasg97ffsciwbfr9",
+ "fetcher": "github",
+ "repo": "dgutov/point-stack",
+ "unstable": {
+ "version": [
+ 20200427,
+ 107
+ ],
+ "commit": "cddcea2c91038710c245819b3cda2dd739726134",
+ "sha256": "1qjf13zmh0gf90knd73b6fyn3bhwjzn4k1w1xpa1ngnh6v233da9"
+ }
+ },
+ {
+ "ename": "pointback",
+ "commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
+ "sha256": "198q511hixvzc13b3ih89xs9g47rdvbiixn5baqakpmpx3a12hz4",
+ "fetcher": "github",
+ "repo": "emacsorphanage/pointback",
+ "unstable": {
+ "version": [
+ 20100210,
+ 1552
+ ],
+ "commit": "e3a02c1784d81b5a1d2477338d049af581ed19f8",
+ "sha256": "016cjy5pnnqccjqb0njqc9jq6kf6p165nlki83b8c0sj75yxghav"
+ }
+ },
+ {
+ "ename": "poke-line",
+ "commit": "e608228443b10d1cd883ed8044b624480647ed17",
+ "sha256": "1j94pzhp1wsaa4nipbfx3bdapvf38h6g352dxakw38jimqyp6cvw",
+ "fetcher": "github",
+ "repo": "RyanMillerC/poke-line",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1403
+ ],
+ "commit": "fe876cd6e8fdf3a68037285eda4ac2eaf977eae4",
+ "sha256": "04dpfg22nqmqrw3rzpyh62kb17iqdadmimrnrvy9cnyd8mla0k5z"
+ }
+ },
+ {
+ "ename": "pollen-mode",
+ "commit": "97bda0616abe3bb632fc4231e5317d9472dfd14f",
+ "sha256": "1kskvdh6rczlki724h5xym8s4iychqzm0i82qdj87x1cg1kx9i85",
+ "fetcher": "github",
+ "repo": "lijunsong/pollen-mode",
+ "unstable": {
+ "version": [
+ 20191223,
+ 1920
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d0a33591498013886c2c4676e204cd684954e82a",
+ "sha256": "0lg65hzdjwbc3dav79f3jm7251yyq8ghcbccvkb32vwz281xhjnh"
+ }
+ },
+ {
+ "ename": "poly-R",
+ "commit": "3058351c4500fdcbe7f40b4c96ac8d6de9bbeb1d",
+ "sha256": "1v2was6pdynwm22b4n2hkwyrr0c0iir9kp1wz4hjab8haqxz68ii",
+ "fetcher": "github",
+ "repo": "polymode/poly-R",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1315
+ ],
+ "deps": [
+ "poly-markdown",
+ "poly-noweb",
+ "polymode"
+ ],
+ "commit": "51ffeb6ec45dd44eafa4d22ad2d6150cc4b248fc",
+ "sha256": "0a4wx73jkngw5nbq1fa4jfhba6bsmyn6vnsf887x3xhb5v3ykhsg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "poly-markdown",
+ "poly-noweb",
+ "polymode"
+ ],
+ "commit": "51ffeb6ec45dd44eafa4d22ad2d6150cc4b248fc",
+ "sha256": "0a4wx73jkngw5nbq1fa4jfhba6bsmyn6vnsf887x3xhb5v3ykhsg"
+ }
+ },
+ {
+ "ename": "poly-ansible",
+ "commit": "6d8beef5daa1804f68c30138cb03b5085a282c34",
+ "sha256": "158z3nbqgrh71myyp4l263lw1gn4iiwxv8pl7fdlyp80hz5zs60y",
+ "fetcher": "gitlab",
+ "repo": "mavit/poly-ansible",
+ "unstable": {
+ "version": [
+ 20181222,
+ 1517
+ ],
+ "deps": [
+ "ansible",
+ "ansible-doc",
+ "jinja2-mode",
+ "polymode",
+ "yaml-mode"
+ ],
+ "commit": "2cb970a0e27b41ae85bc51d24ef36fa2c7b34bbc",
+ "sha256": "04vf6zgcra47j3phxbb43q5sa5ldavnbiwwdlw1xipg44991j6md"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "ansible-doc",
+ "jinja2-mode",
+ "polymode",
+ "yaml-mode"
+ ],
+ "commit": "01c9ec1d8a933fa0b2711940d29331d58c27d2a7",
+ "sha256": "02ff0df8bn5cwvnpc2862wsii2xvjh0waymgiybm8j829x1awjp9"
+ }
+ },
+ {
+ "ename": "poly-erb",
+ "commit": "3058351c4500fdcbe7f40b4c96ac8d6de9bbeb1d",
+ "sha256": "01c1z2jll497k1y8835pp54n121y0gkyz1pdxcdjjqv7ia8jwfyy",
+ "fetcher": "github",
+ "repo": "polymode/poly-erb",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1314
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "56c744b8d87d8cbe0aba2696d4e8525afc4aa0e8",
+ "sha256": "118x9qrays54n6ksnln51ps5c298zs8ih7k49mn6aq6lpvwy5wjr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "56c744b8d87d8cbe0aba2696d4e8525afc4aa0e8",
+ "sha256": "118x9qrays54n6ksnln51ps5c298zs8ih7k49mn6aq6lpvwy5wjr"
+ }
+ },
+ {
+ "ename": "poly-markdown",
+ "commit": "3058351c4500fdcbe7f40b4c96ac8d6de9bbeb1d",
+ "sha256": "0pxai5x2vz6j742s3bpcy82dxja6441fsgclhz1hbv2ykazbm141",
+ "fetcher": "github",
+ "repo": "polymode/poly-markdown",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1315
+ ],
+ "deps": [
+ "markdown-mode",
+ "polymode"
+ ],
+ "commit": "1536cf0c32f71d5cd05c90f7905905e38006e95d",
+ "sha256": "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "markdown-mode",
+ "polymode"
+ ],
+ "commit": "1536cf0c32f71d5cd05c90f7905905e38006e95d",
+ "sha256": "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"
+ }
+ },
+ {
+ "ename": "poly-noweb",
+ "commit": "3058351c4500fdcbe7f40b4c96ac8d6de9bbeb1d",
+ "sha256": "1692js29wdjpxvcbcaxysbsq6pxdqr38frqf88ksldlz35cmy62b",
+ "fetcher": "github",
+ "repo": "polymode/poly-noweb",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1315
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "3b0cd36ca9a707e8a09337a3468fa85d81fc461c",
+ "sha256": "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "3b0cd36ca9a707e8a09337a3468fa85d81fc461c",
+ "sha256": "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p"
+ }
+ },
+ {
+ "ename": "poly-org",
+ "commit": "3058351c4500fdcbe7f40b4c96ac8d6de9bbeb1d",
+ "sha256": "1xrhdjmz3p5d3sgbfpmf6wksa1cpxqhy1wg17b5x8ah4w4yhpdca",
+ "fetcher": "github",
+ "repo": "polymode/poly-org",
+ "unstable": {
+ "version": [
+ 20200817,
+ 756
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "0793ee5c3565718606c514c3f299c0aa5bb71272",
+ "sha256": "011nacpyxc969qyvbzwhz0hr3bcbkjiwlaqa27sb4hffnl4p1py9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "8f4d11489532be98a291258ca27405aa528fc126",
+ "sha256": "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"
+ }
+ },
+ {
+ "ename": "poly-rst",
+ "commit": "d3fb89f58903245a8df75060ddd695a05cedb322",
+ "sha256": "08sdnjb5zvlynyxkmajn1j9gnjdjj81ycid9ziydvrb7hb88x2m4",
+ "fetcher": "github",
+ "repo": "polymode/poly-rst",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1315
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "8530f56fbdce01bcf4004839ff54e4156282c2b5",
+ "sha256": "088wzagwxpf2j67wb1i6agqfa944sahh2fm8my2m50spbbd9ymhl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "8530f56fbdce01bcf4004839ff54e4156282c2b5",
+ "sha256": "088wzagwxpf2j67wb1i6agqfa944sahh2fm8my2m50spbbd9ymhl"
+ }
+ },
+ {
+ "ename": "poly-ruby",
+ "commit": "68213703359324d09553a2164f1f6ecca7c16854",
+ "sha256": "0d8s6bl5ynx0r5cwvfkd52rksiq5kdyrgbxds56r8ls6cfkwqngg",
+ "fetcher": "github",
+ "repo": "knu/poly-ruby.el",
+ "unstable": {
+ "version": [
+ 20180905,
+ 929
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "794ebb926ace23e9c1398da934701951432dcea2",
+ "sha256": "1ffm81hg1gah7hb9x556hda5g4j3gk4c986q9gaacvfizqak3gyy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "polymode"
+ ],
+ "commit": "794ebb926ace23e9c1398da934701951432dcea2",
+ "sha256": "1ffm81hg1gah7hb9x556hda5g4j3gk4c986q9gaacvfizqak3gyy"
+ }
+ },
+ {
+ "ename": "poly-slim",
+ "commit": "3058351c4500fdcbe7f40b4c96ac8d6de9bbeb1d",
+ "sha256": "15nh0d8y79rwc24akxfpf346jypadfgjjn6vlgaj6xjnj7wsp7ax",
+ "fetcher": "github",
+ "repo": "polymode/poly-slim",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1316
+ ],
+ "deps": [
+ "polymode",
+ "slim-mode"
+ ],
+ "commit": "9e9b5164c68955974fd5f5d220aec5af9b5ba3ae",
+ "sha256": "1742wlx07khra7xfbd6f8d3i030w87mncnyx6kf6im10khf8qwmb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "polymode",
+ "slim-mode"
+ ],
+ "commit": "9e9b5164c68955974fd5f5d220aec5af9b5ba3ae",
+ "sha256": "1742wlx07khra7xfbd6f8d3i030w87mncnyx6kf6im10khf8qwmb"
+ }
+ },
+ {
+ "ename": "poly-wdl",
+ "commit": "43e48725f64cb660e2d210a1b39ae9e68e5c5087",
+ "sha256": "0fj9rxh67aczzd4pyh56r0974b60ixmrb2cbwjmndj55agyw39xb",
+ "fetcher": "github",
+ "repo": "jmonlong/poly-wdl",
+ "unstable": {
+ "version": [
+ 20190712,
+ 529
+ ],
+ "deps": [
+ "polymode",
+ "wdl-mode"
+ ],
+ "commit": "963faa828d15d49cee5a63f619c3c30e162c2d0f",
+ "sha256": "0bihvkkq4v7wadwbsrgi7a0zmhqn2lp76pnq7vwwsvs1rm36pbvy"
+ }
+ },
+ {
+ "ename": "polymode",
+ "commit": "3058351c4500fdcbe7f40b4c96ac8d6de9bbeb1d",
+ "sha256": "15i9masklpy4iwskc7dzqjhb430ggn0496z4wb1zjj0b9xx4wj66",
+ "fetcher": "github",
+ "repo": "polymode/polymode",
+ "unstable": {
+ "version": [
+ 20200606,
+ 1106
+ ],
+ "commit": "3284ff10017d280ba82f27dc20fe5223b0df709c",
+ "sha256": "0756c0fi5msqdsks95bcs0ghhk90b340y4zrkijhaz4b2cnm07h4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "commit": "44265e35161d77f6eaa09388ea2256b89bd5dcc8",
+ "sha256": "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"
+ }
+ },
+ {
+ "ename": "pomidor",
+ "commit": "4e0d4f313081594df23f357c40feb456847d8bd0",
+ "sha256": "0pdzipyza98dhnz6am8lrmz8fh3p1c21v2mhs56fb9lwyvcgv8fi",
+ "fetcher": "github",
+ "repo": "TatriX/pomidor",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1402
+ ],
+ "commit": "60da23c97c30e08254a914dca411b2e3fd639c99",
+ "sha256": "19a5155gxz97yqhfxp48d6lnhh0qqai4pd5rg1xy79mq0hxy31p7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "commit": "bf3ca99c24a84befe9ed76b9636ec9adb37ab844",
+ "sha256": "1qsgx1vh0xsk1wwpyx8lpnpa4879bzf0gil28v94sncbri2c6f7w"
+ }
+ },
+ {
+ "ename": "pomodoro",
+ "commit": "0b5c2c50eb87952d01c1b338b7d3e4b3a4546555",
+ "sha256": "075sbypas8xlhsw8wg3mgi3fn5yf7xb3klyjgyy8wfkgdz0269f8",
+ "fetcher": "github",
+ "repo": "baudtack/pomodoro.el",
+ "unstable": {
+ "version": [
+ 20190201,
+ 2152
+ ],
+ "commit": "6cd665ceeaca1f70954aa4caef6f085179f94c69",
+ "sha256": "08z2nja3bhjgg6k7bb0cr8v02y8gaxkmxmfcvvgiixw3kfrnkpwn"
+ }
+ },
+ {
+ "ename": "pony-mode",
+ "commit": "a1fd64317610fb6ef5b14e8bf15e727680d5ff09",
+ "sha256": "1hgiryhpxv30bjlgv9pywzqn2ypimwzdhx03znqvn56zrwn1frnl",
+ "fetcher": "github",
+ "repo": "davidmiller/pony-mode",
+ "unstable": {
+ "version": [
+ 20170807,
+ 1522
+ ],
+ "commit": "760684d30b6c234d1b88c9a4673a808f36f7f341",
+ "sha256": "1y4gxn25i2nszdhqq8jxf9h65mqfgcwbypx5p4wkan5i1v2i3yr1"
+ }
+ },
+ {
+ "ename": "pony-snippets",
+ "commit": "0ef333f9ea8ec691b65e7fbd286fb7f1ddbe5381",
+ "sha256": "0yl2jzc8yyvs93xh802gcnm8j2zharih3hnsiv1syr0g5ycgkd41",
+ "fetcher": "github",
+ "repo": "ponylang/pony-snippets",
+ "unstable": {
+ "version": [
+ 20200418,
+ 354
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "115a0d5066f89554bee9cb1045bcda5a18ebd441",
+ "sha256": "1g11w52bf724zwwsvrcylk3ndjci2cnbzing77c91psz6d7zjkvw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "56018b23a11563c6766ed706024b22aa5a4556b4",
+ "sha256": "0xjvxfkrl6wl31s7rvbv9zczn6d6i9vf20waqlr3c2ff3zy55ygy"
+ }
+ },
+ {
+ "ename": "ponylang-mode",
+ "commit": "0ef333f9ea8ec691b65e7fbd286fb7f1ddbe5381",
+ "sha256": "06av5plxg7ry1dvmq87d8ja6slxfakrfadayz7gdkgni6z76ghs3",
+ "fetcher": "github",
+ "repo": "ponylang/ponylang-mode",
+ "unstable": {
+ "version": [
+ 20200724,
+ 137
+ ],
+ "deps": [
+ "company-ctags",
+ "dash",
+ "fill-column-indicator",
+ "hl-todo",
+ "hydra",
+ "rainbow-delimiters",
+ "yafolding",
+ "yasnippet"
+ ],
+ "commit": "136cc4f7ab4f2ab549633392a72d55051c8b31ac",
+ "sha256": "0pjjccd145bla2gshs648kwhlw9r4n449g318nw81v2nn10z6qwl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 3
+ ],
+ "deps": [
+ "company-ctags",
+ "dash",
+ "fill-column-indicator",
+ "hl-todo",
+ "hydra",
+ "rainbow-delimiters",
+ "yafolding",
+ "yasnippet"
+ ],
+ "commit": "0b876e6a2d602f94cc118e6b76f5f79d18244325",
+ "sha256": "00xn2mhnf5qvn4v6yncmfa9ijrb33zl49mlc7pqn8pzr8nhbxzvc"
+ }
+ },
+ {
+ "ename": "pophint",
+ "commit": "0055c2887acbbd8a2803bf3f81ac2cc444cc805a",
+ "sha256": "1chq2j79hg095jxw5z3pz4qicqrccw0gj4sxrin0a55hnprzzp72",
+ "fetcher": "github",
+ "repo": "aki2o/emacs-pophint",
+ "unstable": {
+ "version": [
+ 20200420,
+ 1429
+ ],
+ "deps": [
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "5e13da4578ae7ba00e6f7bae31eb546d713cc19d",
+ "sha256": "01bwfswzzrjxrjaqysaqnav7h3swwyigxw7nj0cgrm3w8cp1y2a8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "deps": [
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "5e13da4578ae7ba00e6f7bae31eb546d713cc19d",
+ "sha256": "01bwfswzzrjxrjaqysaqnav7h3swwyigxw7nj0cgrm3w8cp1y2a8"
+ }
+ },
+ {
+ "ename": "poporg",
+ "commit": "63502ec265a66d3f72ef93a2f6e7c2e517ff98a3",
+ "sha256": "08s42689kd78h2fmw230ja5dd3c3b4lx5mzadncwq0lj91y86kd8",
+ "fetcher": "github",
+ "repo": "QBobWatson/poporg",
+ "unstable": {
+ "version": [
+ 20170403,
+ 751
+ ],
+ "commit": "2c58d68c81ecca4140bf179f19ed153ec804b65a",
+ "sha256": "1ymqhy0sqd54z154s3cm6q1m4xnr9wkx9dl5f93845k11ay3kvln"
+ }
+ },
+ {
+ "ename": "popup",
+ "commit": "083fb071191bccd6feb3fb84569373a597440fb1",
+ "sha256": "151g00h9rkid76qf6c53n8bncsfaikmhj8fqcb3r3a6mbngcd5k2",
+ "fetcher": "github",
+ "repo": "auto-complete/popup-el",
+ "unstable": {
+ "version": [
+ 20200610,
+ 317
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9d104d4bbbcb37bbc9d9ce762e74d41174683f86",
+ "sha256": "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 8
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9d104d4bbbcb37bbc9d9ce762e74d41174683f86",
+ "sha256": "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"
+ }
+ },
+ {
+ "ename": "popup-complete",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1mw892nr3dfhsjiqyyf3znd7vji4kxly295bbq74vszza2i0b87i",
+ "fetcher": "github",
+ "repo": "emacsorphanage/popup-complete",
+ "unstable": {
+ "version": [
+ 20141109,
+ 308
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "caa655a6d8472e9a4bfa1311126d90d7d1b07fca",
+ "sha256": "1q9zajv6g7mi6k98kzq3498nhmdkp1z9d2b8vgzbk7745d39gm9b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "e362d4a005b36646ffbaa6be604e9e31bc406ca9",
+ "sha256": "084hb3zn1aiabbyxgaalszb2qjf9z64z960ks5fvz8nh7n6y7ny4"
+ }
+ },
+ {
+ "ename": "popup-edit-menu",
+ "commit": "e824ae5bd9214f8de210059f8145f13a4e62e8a1",
+ "sha256": "1mqni09l1xfxv4g64hskpsla41r5d2xfbw81ncbszwqzlln6k5bf",
+ "fetcher": "github",
+ "repo": "debugfan/popup-edit-menu",
+ "unstable": {
+ "version": [
+ 20170404,
+ 1425
+ ],
+ "commit": "925600a6e29183841199e866cf55e566a6a1b002",
+ "sha256": "1dd0ss7cjdjs3c7vkq8p874408iysih80brc8vlfh1f43cnc5v92"
+ }
+ },
+ {
+ "ename": "popup-imenu",
+ "commit": "5ca5d65d6a9c7ef3fa2684271fe087dc132d3a61",
+ "sha256": "0lxwfaa9vhdn55dj3idp8c3fg1g26qsqq46y5bimfd0s89bjbaxn",
+ "fetcher": "github",
+ "repo": "ancane/popup-imenu",
+ "unstable": {
+ "version": [
+ 20170326,
+ 1040
+ ],
+ "deps": [
+ "dash",
+ "flx-ido",
+ "popup"
+ ],
+ "commit": "c5e2e69adbd3a630e4cb750965a1aee8c10c1f09",
+ "sha256": "0vn0jli0ya7xnapifkgzynbnh3rpnzb82j5k9bla2j4miqfc6cg8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "dash",
+ "flx-ido",
+ "popup"
+ ],
+ "commit": "c5e2e69adbd3a630e4cb750965a1aee8c10c1f09",
+ "sha256": "0vn0jli0ya7xnapifkgzynbnh3rpnzb82j5k9bla2j4miqfc6cg8"
+ }
+ },
+ {
+ "ename": "popup-kill-ring",
+ "commit": "0b745b067e5d68467b89e0dbade7a9a76de2946c",
+ "sha256": "1jfw669xi2983jj3hiw5lyhc0rc0318qrmqx03f7m4ylg70dgxip",
+ "fetcher": "github",
+ "repo": "waymondo/popup-kill-ring",
+ "unstable": {
+ "version": [
+ 20131020,
+ 1854
+ ],
+ "deps": [
+ "popup",
+ "pos-tip"
+ ],
+ "commit": "5773dfadc104a906c088a3ec62e8cdd3e01e57fa",
+ "sha256": "1zdwlmk3vr0mq0dxrnkqjncalnbmvpxc0lma2sv3a4czl8yv0inn"
+ }
+ },
+ {
+ "ename": "popup-switcher",
+ "commit": "ef7d1897c4c4a6f4b4527279e6dad976219d7b78",
+ "sha256": "1888xiqhrn7fcpjnr3smchmmqwfayfbbyvdkdb79c6drzjcvidp1",
+ "fetcher": "github",
+ "repo": "kostafey/popup-switcher",
+ "unstable": {
+ "version": [
+ 20200701,
+ 2034
+ ],
+ "deps": [
+ "cl-lib",
+ "popup"
+ ],
+ "commit": "68bbe23f7ceaca889529be95762925ac29515545",
+ "sha256": "18nfrhmdjsgmrpr82qqmxj3rdv85ml2pkssrkrljzzgaxavx5ind"
+ }
+ },
+ {
+ "ename": "popwin",
+ "commit": "7856a62fb86415c88aa72b574895328c93c10a09",
+ "sha256": "0zkaaj80ymssscj8iknndc3p6ydg1l32s2l63kqiy9kc46r2r5fz",
+ "fetcher": "github",
+ "repo": "emacsorphanage/popwin",
+ "unstable": {
+ "version": [
+ 20200122,
+ 1440
+ ],
+ "commit": "d69dca5c9ec4b08f5268ff2d6b5097618d4082d7",
+ "sha256": "1w2dmzmy8k4drdhjzkryk6nbkl56aizvyawwn3dyc2gr0vg8lbb4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "4052b6e51bc6cc80cfc86007d2cadbbc4bbd55b5",
+ "sha256": "0kdlpjrf1xqyqyzfdymbin34jgs06l465p2ggpj4bb4zaypw2hr5"
+ }
+ },
+ {
+ "ename": "portage-navi",
+ "commit": "0a467702b3ac3c8bdc723262e6919f67fd71d524",
+ "sha256": "1wjkh8xj5120v9fz1nrpkd6x4f22ni8h2lfkd82df7kjz6bzdfwg",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-portage-navi",
+ "unstable": {
+ "version": [
+ 20141208,
+ 1355
+ ],
+ "deps": [
+ "concurrent",
+ "ctable"
+ ],
+ "commit": "8016c3e99fe6cef101d479a3d69185796b22ca2f",
+ "sha256": "1pm4x74pw67m2izr9dir201dn5g9icgk6h2j8rqvasgx8v8krv3i"
+ }
+ },
+ {
+ "ename": "porthole",
+ "commit": "ba1c1a010faa762d371da6a896c6e236ef031302",
+ "sha256": "0kllq52jrmqrjsz0shi4aviz19m6pci216i5fassgf71ra8v15s7",
+ "fetcher": "github",
+ "repo": "jcaw/porthole",
+ "unstable": {
+ "version": [
+ 20200404,
+ 1454
+ ],
+ "deps": [
+ "f",
+ "json-rpc-server",
+ "web-server"
+ ],
+ "commit": "9e68b419acf9245208f8094e10041b7f04511473",
+ "sha256": "0kaf00924jg50l2zdhyf1lxsh44nfp4zbc23wxbir45xdx9rzl3z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "f",
+ "json-rpc-server",
+ "web-server"
+ ],
+ "commit": "9e68b419acf9245208f8094e10041b7f04511473",
+ "sha256": "0kaf00924jg50l2zdhyf1lxsh44nfp4zbc23wxbir45xdx9rzl3z"
+ }
+ },
+ {
+ "ename": "pos-tip",
+ "commit": "306e9978d2a071548cc9d8c531a1ce6c6c6b99aa",
+ "sha256": "13qjz112qlrnq34lr70087gshzq8m44knfl6694hfprzjgix84vh",
+ "fetcher": "github",
+ "repo": "pitkali/pos-tip",
+ "unstable": {
+ "version": [
+ 20191227,
+ 1356
+ ],
+ "commit": "179cc126b363f72ca12fab1e0dc462ce0ee79742",
+ "sha256": "1rz6lqmhs7l49cwwqs7gl2i49l3gvziz1gs556jzsic7jzf9xk1j"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 6
+ ],
+ "commit": "1b81694d1dc29253db0e855b82563f84a32b38d4",
+ "sha256": "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"
+ }
+ },
+ {
+ "ename": "posframe",
+ "commit": "fa3488f2ede1201faf4a147313456ed90271f050",
+ "sha256": "02chwkc7gn7fxaaxsz9msmrhrd62bji5hhb71kdm019x8d84z06w",
+ "fetcher": "github",
+ "repo": "tumashu/posframe",
+ "unstable": {
+ "version": [
+ 20200818,
+ 606
+ ],
+ "commit": "7b92a54e588889a74d36d51167e067676db7be8a",
+ "sha256": "1638qw6m588a1dh8gfic1n2mzacm7rzs99ds8qwdfqs3ids857nj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 0
+ ],
+ "commit": "7b92a54e588889a74d36d51167e067676db7be8a",
+ "sha256": "1638qw6m588a1dh8gfic1n2mzacm7rzs99ds8qwdfqs3ids857nj"
+ }
+ },
+ {
+ "ename": "posix-manual",
+ "commit": "5322048b88381fa4ec49fcd14bb749144d29585c",
+ "sha256": "1bmjy3gxr4k6yy18rj7pc8b7ziw2ynfily7siqcb59r9rygx6m9l",
+ "fetcher": "github",
+ "repo": "lassik/emacs-posix-manual",
+ "unstable": {
+ "version": [
+ 20200301,
+ 1103
+ ],
+ "commit": "ebaacd7266ae7a66605317f57b9f42e9cfb2ce1e",
+ "sha256": "0kdcpd59jd1gasqk5gx4ggbyp492b53dy6n3nkv9j2rj8618yzs6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "ebaacd7266ae7a66605317f57b9f42e9cfb2ce1e",
+ "sha256": "0kdcpd59jd1gasqk5gx4ggbyp492b53dy6n3nkv9j2rj8618yzs6"
+ }
+ },
+ {
+ "ename": "postcss-sorting",
+ "commit": "9fae97430f211786f615f7450936f823e2a04ec4",
+ "sha256": "0730b2wddal15yi4k6wzhv9xv1k40iwrn3mivg9bkxabh3mgrl10",
+ "fetcher": "github",
+ "repo": "P233/postcss-sorting.el",
+ "unstable": {
+ "version": [
+ 20180211,
+ 956
+ ],
+ "commit": "deb0c935d2904c11a965758a9aee5a0e905f21fc",
+ "sha256": "03kng7i09px5vizvmmrar7rj3bk27y43bi8hlzxax0ja27k0c66c"
+ }
+ },
+ {
+ "ename": "pov-mode",
+ "commit": "89d6b4a3d7a5f3cc93e9d13d4c174b5d7de7bad1",
+ "sha256": "1xzdmlfi5ixdh08v0ca80zkh9n3gfn4ql5pnl3jh745wbj9azxp9",
+ "fetcher": "github",
+ "repo": "melmothx/pov-mode",
+ "unstable": {
+ "version": [
+ 20161115,
+ 743
+ ],
+ "commit": "9fc1db3aab7c27155674dd1a87ec62606035d074",
+ "sha256": "1399fxivy15y2k4vp7vqqgsi8l1mzxc8aa2mf2x1hksgiyq60acp"
+ }
+ },
+ {
+ "ename": "pow",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "13f3pk52f9lkkl3zi6448j9b39kn6ny9vmnlsvhwa6s0vaz8f220",
+ "fetcher": "github",
+ "repo": "yukihr/emacs-pow",
+ "unstable": {
+ "version": [
+ 20140420,
+ 806
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ea83986b8ca8e27cb996290d6463b111ec0966ce",
+ "sha256": "112s6qb80sn44b1cxggqfci89wymxvvwkwl7nknfnr2dzd58lzzy"
+ }
+ },
+ {
+ "ename": "powerline",
+ "commit": "f805053cd4dd9ed53ee0df17ad69429bc62325bb",
+ "sha256": "0gsffr6ilmckrzifsmhwd42vr85vs42pc26f1205pbxb7ma34dhx",
+ "fetcher": "github",
+ "repo": "milkypostman/powerline",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1321
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e15e77ab2e589bd73f9e90498747d77d042789ea",
+ "sha256": "1sw9aicv9xbcg0fz6584hfycwibzxx2jxlav0kf83d3wg3lprgps"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d3dcfc57a36111d8e0b037d90c6ffce85ce071b2",
+ "sha256": "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"
+ }
+ },
+ {
+ "ename": "powerline-evil",
+ "commit": "c1a92c8b5b92269773d314aa6cec4f0057291a68",
+ "sha256": "1x5hvnjdrpn3c8z6m7xfk30qd5y58p3jcyqr48qx91d0109gk342",
+ "fetcher": "github",
+ "repo": "johnson-christopher/powerline-evil",
+ "unstable": {
+ "version": [
+ 20190603,
+ 340
+ ],
+ "deps": [
+ "evil",
+ "powerline"
+ ],
+ "commit": "b77e2cf571e9990734f2b30d826f3a362b559fd1",
+ "sha256": "1hs9jvl5lmfwr9k6qcnxjhd61zsmzq53ania1w5616gqa4qnjzhn"
+ }
+ },
+ {
+ "ename": "powershell",
+ "commit": "7002c50f2734675134791916aa9d8b82b4582fcb",
+ "sha256": "162k8y9k2n48whaq93sqk86zy3p9qvsfxgyfv9n1nvk4l5wn70wk",
+ "fetcher": "github",
+ "repo": "jschaf/powershell.el",
+ "unstable": {
+ "version": [
+ 20190421,
+ 2038
+ ],
+ "commit": "87826777bd3ebd53740be99b4546bfc11ccc625d",
+ "sha256": "038pcb7hv05yja9fvrmps6vh096a5rrdmyx9l8nisxqnsqf97ghv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "7316f44d0b528552f5a0692f778e5f0efd964299",
+ "sha256": "010b151wblgxlfpy590yanbl2r8qhpbqgi02v0pyir340frm9ngn"
+ }
+ },
+ {
+ "ename": "powerthesaurus",
+ "commit": "04a7e6d2292e933e0318296107774e1248888f3c",
+ "sha256": "011kl3n1hfmz844w198gvh5anjyqj0m4pvryahslc0r1zavik7ni",
+ "fetcher": "github",
+ "repo": "SavchenkoValeriy/emacs-powerthesaurus",
+ "unstable": {
+ "version": [
+ 20200720,
+ 1546
+ ],
+ "deps": [
+ "jeison",
+ "request",
+ "s"
+ ],
+ "commit": "93036d3b111925ebc34f747ff846cb0b8669b92e",
+ "sha256": "0l45n12b8jny7g4bfdn3sc7lp9kyxd7pyisr0r9svr9sls7cybv4"
+ }
+ },
+ {
+ "ename": "ppd-sr-speedbar",
+ "commit": "f930f54048d06f6a97824b66fbb74649eed40b54",
+ "sha256": "1m2918hqvb9c6rgb5szs95ds99gdjdxggcbdfqzmbb5sz2936av8",
+ "fetcher": "github",
+ "repo": "rdallasgray/ppd-sr-speedbar",
+ "unstable": {
+ "version": [
+ 20151108,
+ 1224
+ ],
+ "deps": [
+ "project-persist-drawer",
+ "sr-speedbar"
+ ],
+ "commit": "d88d7f63f695824c435dd996405454d1e46d2aa3",
+ "sha256": "08ff4l6vlyzqpy6cv9wc714h3ia8cwy5gc3qk5zml1yijv8xvb75"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "deps": [
+ "project-persist-drawer",
+ "sr-speedbar"
+ ],
+ "commit": "19d3e924407f40a6bb38c8fe427a159af755adce",
+ "sha256": "0pv671j8g09pn61kkfb3pa9axfa9zd2jdrkgr81rm2gqb2vh1hsq"
+ }
+ },
+ {
+ "ename": "ppp",
+ "commit": "1442ec5baf60f85e9603cb2a70745914174d5c9a",
+ "sha256": "0x71y998a81w79bambwds58wgzywa3qjvm4brkfjqfd1n7cfzsz4",
+ "fetcher": "github",
+ "repo": "conao3/ppp.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 844
+ ],
+ "deps": [
+ "leaf"
+ ],
+ "commit": "86dad69c3a7dae770f6b99285647dff2aad81930",
+ "sha256": "01c82h5j7yggsbhbrlbcwl562mpd79c0i878129r4ivvhka3nha3"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "6aabd694bcc66775c6a4328fa653a83e39791252",
+ "sha256": "043wsaibkz82ckxdw4r25nfb8pql3ba9jcyd3vg92lvjdzblm05l"
+ }
+ },
+ {
+ "ename": "prassee-theme",
+ "commit": "15425b576045af1c508912e2091daf475b80b429",
+ "sha256": "1j0817hxxri6mq9pplgwf5jp2dagk6hay7g1a1lgz4qgkf5jnshs",
+ "fetcher": "github",
+ "repo": "prassee/prassee-emacs-theme",
+ "unstable": {
+ "version": [
+ 20180709,
+ 1004
+ ],
+ "commit": "81126f69cdbaab836c00ae7a49aaf89d4229fde1",
+ "sha256": "18yqsl8jsi3zxfcigvm6fjcx84hzb8b3j7ihiyzqmdhmvma3i08y"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "9850c806d39acffdef8e91e1a31b54a7620cbae3",
+ "sha256": "1agghimrmh4kh71y51l6lzampjl15ac6jxrrhdviw95c3rxfll4x"
+ }
+ },
+ {
+ "ename": "preproc-font-lock",
+ "commit": "582692267795c91bb7f2ec3bffc2b9c2be9f2a32",
+ "sha256": "1ra0lgjv6713zym2h8pblf2ryf0f658l1khbxbwnxl023gkyj9v4",
+ "fetcher": "github",
+ "repo": "Lindydancer/preproc-font-lock",
+ "unstable": {
+ "version": [
+ 20151107,
+ 2018
+ ],
+ "commit": "565fda9f5fdeb0598986174a07e9fb09f7604397",
+ "sha256": "0yrfd9qaz16nqcvjyjm9qci526qgkv6k51q5752h3iyqkxnss1pd"
+ }
+ },
+ {
+ "ename": "prescient",
+ "commit": "ec02349e31531c347e4a43fbde56ae4386898cc6",
+ "sha256": "04js3hblavfrc6kqp942x5yjdl3ndazf3n64p83423ldsmhbip6s",
+ "fetcher": "github",
+ "repo": "raxod502/prescient.el",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1400
+ ],
+ "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+ "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 0
+ ],
+ "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+ "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+ }
+ },
+ {
+ "ename": "preseed-generic-mode",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "14vbx6y7h4vqc5kkgj4mbr9zj6gqf6ib3hh2917m203s8y87lsfl",
+ "fetcher": "github",
+ "repo": "suntong/preseed-generic-mode",
+ "unstable": {
+ "version": [
+ 20180210,
+ 500
+ ],
+ "commit": "3aa8806c4a659064baa01751400c53fbaf847f66",
+ "sha256": "02yb5xkgwqxpwghhjmxf2gx0faifi04w2jd8cvfsiwzwqmqyhmv7"
+ }
+ },
+ {
+ "ename": "presentation",
+ "commit": "747afd0339215528bf104f778a13edacbac510b7",
+ "sha256": "0zdpfvg6kbvi6b4lb7vbdjrkgk0j1q6gzyd0s2b0603fnyy4sqdg",
+ "fetcher": "github",
+ "repo": "zonuexe/emacs-presentation-mode",
+ "unstable": {
+ "version": [
+ 20180427,
+ 224
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f53f67aeab97e8eea6d1f12df5f7ce3b1b03b879",
+ "sha256": "0hv8z5wqfg8xkx590jm4c0fjhdxy8312bvbm16ifz2vflvl6gjb2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e9e402d05a8b6d9e1e7fe853503c92fea4cf65cb",
+ "sha256": "10pvjdnb48fk663232qvh4gapk2yiz4iawpffzjrbs3amxh50bi7"
+ }
+ },
+ {
+ "ename": "prettier",
+ "commit": "e9992d6d5ed3bd677976262d8a887e5c0a4f4914",
+ "sha256": "07zhjbb40jl6xkfdzavqg33z17z8s4nyrv3qjh8c0m3si8abh6zb",
+ "fetcher": "github",
+ "repo": "jscheid/prettier.el",
+ "unstable": {
+ "version": [
+ 20200714,
+ 859
+ ],
+ "deps": [
+ "iter2",
+ "nvm"
+ ],
+ "commit": "000244b82ca9e2118376f6a44506bac8ab225677",
+ "sha256": "1mrxjvx16ixcyqvqvc8lmvh3jdkcriq9djhiak0pg8y6nbrj4dqa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "iter2",
+ "nvm"
+ ],
+ "commit": "d5ccedc7a8ed84aff292bce688c73648dc8f567f",
+ "sha256": "1rk2hwpxvnc1hadvdg86jnzz4nh5kmkwp18iwvsbkgmx47cnyni3"
+ }
+ },
+ {
+ "ename": "prettier-js",
+ "commit": "968ac7bb98b385f8542dc150486982c0ded73187",
+ "sha256": "0mf66sdsdbhf76pwkjkfjsnh26g4j3zb4y1qrbxc9jcvymccb3yq",
+ "fetcher": "github",
+ "repo": "prettier/prettier-emacs",
+ "unstable": {
+ "version": [
+ 20180109,
+ 726
+ ],
+ "commit": "e9b73e81d3e1642aec682195f127a42dfb0b5774",
+ "sha256": "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"
+ }
+ },
+ {
+ "ename": "prettify-greek",
+ "commit": "23c8f10205187babb17e3abc3dc40eb1938e6640",
+ "sha256": "1izl6r6i3zbhd7r7lz2k42yyz6qcng11wfmb7lx4883dj00flsl7",
+ "fetcher": "gitlab",
+ "repo": "fommil/emacs-prettify-greek",
+ "unstable": {
+ "version": [
+ 20160603,
+ 908
+ ],
+ "commit": "698d07a6ffe85f6fb53f3bfec4f49380c25cfd90",
+ "sha256": "0g2bxa7mwfkc8navbi2w28rd4f4zqphxi13kwmd2p83g3wavd99v"
+ }
+ },
+ {
+ "ename": "pretty-hydra",
+ "commit": "865917fcc75c4118afc89b8bcc20ebdb6302f15d",
+ "sha256": "0gp4cbffpa17svs7fzxighyly7c8brsn3avv3hqvd590kkz3fkri",
+ "fetcher": "github",
+ "repo": "jerrypnz/major-mode-hydra.el",
+ "unstable": {
+ "version": [
+ 20190930,
+ 2106
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "hydra",
+ "s"
+ ],
+ "commit": "20362323f66883c1336ffe70be24f91509addf54",
+ "sha256": "16krmj2lnk7j5ygdjw4hl020qqxg11bnc8sz15yr4fpy1p7hq5cz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "hydra",
+ "s"
+ ],
+ "commit": "bba876b86f0b80495004bf185b2b1f6083a1ff3a",
+ "sha256": "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"
+ }
+ },
+ {
+ "ename": "pretty-mode",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "0zm6azbl70qmq2ybi576wfs3mx0ny54mf97b94ac501miv4fv0mq",
+ "fetcher": "github",
+ "repo": "pretty-mode/pretty-mode",
+ "unstable": {
+ "version": [
+ 20190615,
+ 2045
+ ],
+ "commit": "5154355e90fdd70d3647257280a89eeb725ef084",
+ "sha256": "0fq3v2ld7mk8nw81vgq2jgpk8wkddk74il3gs1p0zxkly0p155i3"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 3
+ ],
+ "commit": "4ba8fceb7dd733361ed975d80ac2caa3612fa78b",
+ "sha256": "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"
+ }
+ },
+ {
+ "ename": "pretty-sha-path",
+ "commit": "6520d692662aaf92023623273597d966ca3cba9d",
+ "sha256": "0qqsg383391dnsk46xm8plq7xmdmnis3iv7h7dmchpzd99bkm9lq",
+ "fetcher": "github",
+ "repo": "alezost/pretty-sha-path.el",
+ "unstable": {
+ "version": [
+ 20141105,
+ 1826
+ ],
+ "commit": "a2b43dd9de423a38d67cda2e3bd9412f7d363257",
+ "sha256": "1n0594msgy53ia58gjfkm3z3cnmq52wrq5992fm28s4jgazbgdfd"
+ }
+ },
+ {
+ "ename": "pretty-symbols",
+ "commit": "ed01ef6333e4558877b0e357ff8bf601fb88b757",
+ "sha256": "0d1ad2x4md0n3fad3s2355wm8hl311qdhih1gkdqwdaj4i1d6gvb",
+ "fetcher": "github",
+ "repo": "drothlis/pretty-symbols",
+ "unstable": {
+ "version": [
+ 20140814,
+ 959
+ ],
+ "commit": "582cbe51ecfe1cc0a5b185bc06113c8a661e3956",
+ "sha256": "1f00l9f6an1mh8yhf629mw0p37m4jcpl8giz47xbdyw1k6bqn830"
+ }
+ },
+ {
+ "ename": "prism",
+ "commit": "c8ee14b9d67a9703c25b508b324ad7dabaa4352d",
+ "sha256": "1prvvpwa10i260hcj59xfj1vynjv7gykxinqas2xhw6lq6lwrbjk",
+ "fetcher": "github",
+ "repo": "alphapapa/prism.el",
+ "unstable": {
+ "version": [
+ 20200407,
+ 1148
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "b618f2cea2dbf7c13d8b4fec1760c346eb9ab036",
+ "sha256": "1fn6514ii2z1xbjzmp0h1mhxl1yaqqk4n6zgswhxdywni34cb6hs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "b618f2cea2dbf7c13d8b4fec1760c346eb9ab036",
+ "sha256": "1fn6514ii2z1xbjzmp0h1mhxl1yaqqk4n6zgswhxdywni34cb6hs"
+ }
+ },
+ {
+ "ename": "private",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "1mvma2xgjy9vkh468x80xlri6qfr7d494la1j6r1clkjsn5kg7hr",
+ "fetcher": "github",
+ "repo": "zhangkaiyulw/private",
+ "unstable": {
+ "version": [
+ 20150122,
+ 157
+ ],
+ "deps": [
+ "aes"
+ ],
+ "commit": "9266d01c095895cc3ee9de95bc20511e88353755",
+ "sha256": "0zng64f5vwnpkf9fk59yv1ndc646q608a6awr1y9qk0mhzbfzhqm"
+ }
+ },
+ {
+ "ename": "private-diary",
+ "commit": "ef39950941c522e64ea991c9eeecfb5f6f18f6a2",
+ "sha256": "0dgnf375c00nlkp66kbkzsf469063l03b9miiplbhd63zshlv1i1",
+ "fetcher": "github",
+ "repo": "cacology/private-diary",
+ "unstable": {
+ "version": [
+ 20151216,
+ 1657
+ ],
+ "commit": "0c86fb6150ad8ed14f94def3504f5a68f4147283",
+ "sha256": "1pxr5a9ik09k0f58lawhxiv179n5j8q24zhrs9vjk93yskl1ydwn"
+ }
+ },
+ {
+ "ename": "proc-net",
+ "commit": "4a518f37260084fa7e9221e9189aedc09a951f6d",
+ "sha256": "0562x2s3kk9vlaavak4lya1nlmn4mwlzlc7nw1l3687q023z4hmv",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-proc-net",
+ "unstable": {
+ "version": [
+ 20130322,
+ 12
+ ],
+ "commit": "10861112a1f3994c8e6374d6c5bb5d734cfeaf73",
+ "sha256": "0nly5h0d6w8dc08ifb2fiqcn4cqcn9crkh2wn0jzlz4zd2x75qrb"
+ }
+ },
+ {
+ "ename": "proced-narrow",
+ "commit": "7e1bb8de59729a6690f8423b5531380c8293bf0b",
+ "sha256": "1sqxp9jdhh8iy9pvgz0s9jm6p93ib12gn2gpkasxbx93b1jkdlbc",
+ "fetcher": "github",
+ "repo": "travisjeffery/proced-narrow",
+ "unstable": {
+ "version": [
+ 20190911,
+ 1818
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "0e2a4dfb072eb0369d0020b429e820ae620d325e",
+ "sha256": "0d1qq5606prls7mzy0iri41j2c14l4axz6kq629r4wjdqwshxkli"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 5
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "df5cce50b3d1219b23d28e23cbf68e0c7807a15c",
+ "sha256": "00b2g7prijad6q2zw0vhwq1xb49kcc8ym116zfj5r8wxz9cmpzpr"
+ }
+ },
+ {
+ "ename": "processing-mode",
+ "commit": "ba59561e8a2f259fde170a79844af5e1ef5ed34f",
+ "sha256": "184yg9z14ighz9djg53ji5dgnb98dnxkkwx55m8f0f879x31i89m",
+ "fetcher": "github",
+ "repo": "ptrv/processing2-emacs",
+ "unstable": {
+ "version": [
+ 20171022,
+ 2302
+ ],
+ "commit": "448aba82970c98322629eaf2746e73be6c30c98e",
+ "sha256": "1fv74k37yyrh6jzasgqj88lrbq152gs9gpbjpxn7fz424c38gq2q"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "228bc56369675787d60f637223b50ce3a1afebbd",
+ "sha256": "08ljf39jfmfpdk36nws2dnwpm7y8252zsdprsc85hr1h1ig5xy15"
+ }
+ },
+ {
+ "ename": "processing-snippets",
+ "commit": "ba59561e8a2f259fde170a79844af5e1ef5ed34f",
+ "sha256": "09vkm9asmjz1in0f63s7bf4amifspsqf5w9pxiy5y0qvmn28fr2r",
+ "fetcher": "github",
+ "repo": "ptrv/processing2-emacs",
+ "unstable": {
+ "version": [
+ 20140426,
+ 1428
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "448aba82970c98322629eaf2746e73be6c30c98e",
+ "sha256": "1fv74k37yyrh6jzasgqj88lrbq152gs9gpbjpxn7fz424c38gq2q"
+ }
+ },
+ {
+ "ename": "prodigy",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0lfxb80jqjnzssjs6l511jcsmhkpzb5rh5czrb16dkqcz0cl5b2p",
+ "fetcher": "github",
+ "repo": "rejeep/prodigy.el",
+ "unstable": {
+ "version": [
+ 20191212,
+ 1242
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "6ae71f27b09b172f03fb55b9eeef001206baacd3",
+ "sha256": "16w1xidfbqlbdxq45ff6am9j1hzlxz3pwqvimwk4432prrvnf8zg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "3bacca898db9b3493883c95f923a87eb1ce807eb",
+ "sha256": "1whnk1902f8q03clm9xlfl47gkpsywf3mx0ykp70c1q496ab39qj"
+ }
+ },
+ {
+ "ename": "professional-theme",
+ "commit": "bb79514b2afada80da82762890242de5ad88d8de",
+ "sha256": "1l8nisn2c124cpylyahr76hfpdim2125zrns2897p466l5wcxcx5",
+ "fetcher": "github",
+ "repo": "juanjux/emacs-professional-theme",
+ "unstable": {
+ "version": [
+ 20150315,
+ 1100
+ ],
+ "commit": "0927d1474049a193f9f366bde5eb1887b9ba20ed",
+ "sha256": "0hx7rxa3smdippcpj4j63k0r5l4wflllb0vpnwwknc9j93r7042b"
+ }
+ },
+ {
+ "ename": "prog-fill",
+ "commit": "90d680ed481688c9899adb28fbd9a22a17fa8943",
+ "sha256": "0wnqzkzhaywcyw93z86pngpycsrd1mi79psmck6qbhms1aia79p3",
+ "fetcher": "github",
+ "repo": "ahungry/prog-fill",
+ "unstable": {
+ "version": [
+ 20180607,
+ 132
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3fbf7da6dd826e95c9077d659566ee29814a31d8",
+ "sha256": "167is1hbv3nsskz26g9q3zdndqsw9d3rwhbasj0r7a3wabpr8j4r"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3fbf7da6dd826e95c9077d659566ee29814a31d8",
+ "sha256": "167is1hbv3nsskz26g9q3zdndqsw9d3rwhbasj0r7a3wabpr8j4r"
+ }
+ },
+ {
+ "ename": "prognth",
+ "commit": "db6d52b92317aa5ad5024131b62edb5f91f50033",
+ "sha256": "0hr5a3s0ij4hvn424v885z7pcs62yqm9mamw5b096hgjxgjf6ylm",
+ "fetcher": "github",
+ "repo": "Fuco1/prognth",
+ "unstable": {
+ "version": [
+ 20130920,
+ 1759
+ ],
+ "commit": "2f1ca4d34b1fd581163e1df122c85418137e8e62",
+ "sha256": "1szxsbk470fg3jp70r20va9hnnf4jj0mb7kxdkn6rd7ky6w34lwm"
+ }
+ },
+ {
+ "ename": "programmer-dvorak",
+ "commit": "89b0f4b5838aa3d4572ca91fe60cf28664368cb6",
+ "sha256": "1w8r35hkl6qy9a89l0m74x9q2vcc4h2hvmi3r2hqcy2ypkn5l5bv",
+ "fetcher": "github",
+ "repo": "yangchenyun/programmer-dvorak",
+ "unstable": {
+ "version": [
+ 20150427,
+ 137
+ ],
+ "commit": "3288a8f058eca4cab390a564babbbcb17cfa0350",
+ "sha256": "1yklm43d0ppyf4simhqab6m892z4mmxs2145lzw6kpizixavcv00"
+ }
+ },
+ {
+ "ename": "project-abbrev",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "18nrcds02swr0s15gvvpc2fbjj9rq6ky3dz8qp51g7nfaprk2279",
+ "fetcher": "github",
+ "repo": "jcs-elpa/project-abbrev",
+ "unstable": {
+ "version": [
+ 20200724,
+ 901
+ ],
+ "commit": "7b5749eae33eda576da3293dc386794c1248bb48",
+ "sha256": "0fvfp5hy93ggqspbnishzp0x0j1652ayismb8bpzkf6vra8vjrdw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "commit": "7b5749eae33eda576da3293dc386794c1248bb48",
+ "sha256": "0fvfp5hy93ggqspbnishzp0x0j1652ayismb8bpzkf6vra8vjrdw"
+ }
+ },
+ {
+ "ename": "project-explorer",
+ "commit": "c2e5d686b8a18c7a17965ff6c5af8f5817b7ab31",
+ "sha256": "076lzmyi1n7yrgdgyh9qinq271qk6k64x0msbzarihr3p4psrn8m",
+ "fetcher": "github",
+ "repo": "sabof/project-explorer",
+ "unstable": {
+ "version": [
+ 20150504,
+ 14
+ ],
+ "deps": [
+ "cl-lib",
+ "es-lib",
+ "es-windows"
+ ],
+ "commit": "589a09008706f5f4ef91393dc4306eede0d15ca9",
+ "sha256": "04l4m3kxbwvyw9xy6cwakrdxxdswrrs7sya8zn6m738aawbr1mcd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 14,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "es-lib",
+ "es-windows"
+ ],
+ "commit": "7c2cc86a81f679dda355110f916366b64893a5d4",
+ "sha256": "1hv8ifrpwn434sm41vkgbwni21ma5kfybkwasi6zp0f2b5i9ziw7"
+ }
+ },
+ {
+ "ename": "project-persist",
+ "commit": "bd81d1f8a30ed951ed94b9a4db13a2f7735ea878",
+ "sha256": "0csjwj0qaw0hz2qrj8kxgxlixh2hi3aqib98vm19sr3f1b8qab24",
+ "fetcher": "github",
+ "repo": "rdallasgray/project-persist",
+ "unstable": {
+ "version": [
+ 20180906,
+ 1302
+ ],
+ "commit": "26d9435bef44da2a1b0892eba822f9f487b98eec",
+ "sha256": "0ja2pnbw11a2gwywfyfbdpk8rkm8imy04wkshpnlh0nwn7lf0clm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "26d9435bef44da2a1b0892eba822f9f487b98eec",
+ "sha256": "0ja2pnbw11a2gwywfyfbdpk8rkm8imy04wkshpnlh0nwn7lf0clm"
+ }
+ },
+ {
+ "ename": "project-persist-drawer",
+ "commit": "23084af52d2243016eee73a5ee0cd3e945eec71d",
+ "sha256": "1jv2y2hcqakyvfibclzm7g4diw0bvsv3a8fa43yf19wb64jm8hdb",
+ "fetcher": "github",
+ "repo": "rdallasgray/project-persist-drawer",
+ "unstable": {
+ "version": [
+ 20151108,
+ 1222
+ ],
+ "deps": [
+ "project-persist"
+ ],
+ "commit": "35bbe132a4fab6a0fec15ce6c0fd2fe6a4aa9626",
+ "sha256": "1nq320ph8fs9a197ji4mnw2xa24dld0r1nka476yvkg4azmcc9x8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "project-persist"
+ ],
+ "commit": "35bbe132a4fab6a0fec15ce6c0fd2fe6a4aa9626",
+ "sha256": "1nq320ph8fs9a197ji4mnw2xa24dld0r1nka476yvkg4azmcc9x8"
+ }
+ },
+ {
+ "ename": "project-root",
+ "commit": "bcf69e7e859145cb908e79abf4a2f51050e52ace",
+ "sha256": "0mhc7l6px5q2x13h6nmf4ixsghjlzbxjm2liscwn6485yg4bsmja",
+ "fetcher": "github",
+ "repo": "piranha/project-root",
+ "unstable": {
+ "version": [
+ 20110206,
+ 2030
+ ],
+ "commit": "a49b1be864357683d9489074148b6d667f4ed23b",
+ "sha256": "0nw02f5lmbqdfnw93d3383sdxx1d31szk23zvjlrmmdwv2124281"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "commit": "fc1d024a497755c1abfa3eaffde1b18bd3c54865",
+ "sha256": "1z0sqdwa8caick2179bj03qbhjmvh2l5gv1ny6aya979vjgsk0g8"
+ }
+ },
+ {
+ "ename": "project-shells",
+ "commit": "becf54de5ae9582d7c76382dff16d40b04b1a464",
+ "sha256": "0mhifxcpgsfwrhbs7axg6ja4klgzzy9pc0nqa7w3qg45xgi9s4m8",
+ "fetcher": "github",
+ "repo": "hying-caritas/project-shells",
+ "unstable": {
+ "version": [
+ 20191123,
+ 914
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "5aea9ee0de93f2568afb3f18bb7b43a9715a9a2d",
+ "sha256": "0zh0hwvh5hdn9gpyhqv14l46pbsids83ps86asikd9in7sl2abgn"
+ }
+ },
+ {
+ "ename": "projectile",
+ "commit": "ca7bf43ef8893bf04e9658390e306ef69e80a156",
+ "sha256": "1kf8hql59nwiy13q0p6p6rf5agjvah43f0sflflfqsrxbihshvdn",
+ "fetcher": "github",
+ "repo": "bbatsov/projectile",
+ "unstable": {
+ "version": [
+ 20200819,
+ 531
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "46d2010c6a6cccfc4be72317f10ea99fd041ab54",
+ "sha256": "1xd4ag6sypqhfn85vnr8609cl9nip0l5j77226p6apv6yhdippqx"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 0
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "dc0e7a5ba46f92bd224a5e89f0af2ace0ed05ade",
+ "sha256": "1kf34p2jwcjcqniia8bx3kn14ybwcq81x7gcm1vkd9cj7x0mx96n"
+ }
+ },
+ {
+ "ename": "projectile-codesearch",
+ "commit": "6b1b1d3e356c6b9bffdcf98848918efe2fdfa8c7",
+ "sha256": "1457dhmpgrq1qafr3v4ccw26ix10m60c5vlrpyqsfz8vh8lv0bb8",
+ "fetcher": "github",
+ "repo": "abingham/emacs-codesearch",
+ "unstable": {
+ "version": [
+ 20180508,
+ 1522
+ ],
+ "deps": [
+ "codesearch",
+ "projectile"
+ ],
+ "commit": "f6eb96f034a925444412cfa03e45e0ccbbafe3f2",
+ "sha256": "1xdkm1f04z1h3ivd6zm8hckf3n3fbi5rwybg4dwi5mim6w84i7j9"
+ }
+ },
+ {
+ "ename": "projectile-direnv",
+ "commit": "602485c251bc573e855dfd33e4e94052afbab93f",
+ "sha256": "1s5dapdcblcbcqyv8df26v8wxl8bhrs9ybl5h5qbzz49gigd8nqh",
+ "fetcher": "github",
+ "repo": "christianromney/projectile-direnv",
+ "unstable": {
+ "version": [
+ 20160306,
+ 138
+ ],
+ "deps": [
+ "dash",
+ "projectile",
+ "s"
+ ],
+ "commit": "d5d29e5228f840b7a25358a2fd50353ef2dc9b16",
+ "sha256": "1bq47a6lckgin93cqy5wj277rlrw2cgfywgmbdpxvmbhygpg5hqr"
+ }
+ },
+ {
+ "ename": "projectile-git-autofetch",
+ "commit": "7fdfdeb69fd78fc1bb2c62392f860a8c434f1762",
+ "sha256": "0m0raddsw5yvjrw2v6bdaswffmva8y9hxksdgf9axpvrd3rzlk9n",
+ "fetcher": "github",
+ "repo": "andrmuel/projectile-git-autofetch",
+ "unstable": {
+ "version": [
+ 20191013,
+ 1806
+ ],
+ "deps": [
+ "alert",
+ "projectile"
+ ],
+ "commit": "4a3eba7658a52c6e955d5f7085cd3fd62b53b9c6",
+ "sha256": "01jsj0pv9qqbkdmbykvk4ic40hc1nhaiaqvx17hi7p89hq3nzffr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "alert",
+ "projectile"
+ ],
+ "commit": "4a3eba7658a52c6e955d5f7085cd3fd62b53b9c6",
+ "sha256": "01jsj0pv9qqbkdmbykvk4ic40hc1nhaiaqvx17hi7p89hq3nzffr"
+ }
+ },
+ {
+ "ename": "projectile-rails",
+ "commit": "b16532bb8d08f7385bca4b83ab4e030d7b453524",
+ "sha256": "0fgvignqdqh0ma91z9385782l89mvwfn77rp1gmy8cbkwi3b7fkq",
+ "fetcher": "github",
+ "repo": "asok/projectile-rails",
+ "unstable": {
+ "version": [
+ 20200417,
+ 1711
+ ],
+ "deps": [
+ "f",
+ "inf-ruby",
+ "inflections",
+ "projectile",
+ "rake"
+ ],
+ "commit": "11980b2bcb99208888856a9b8666ff329b6f0142",
+ "sha256": "0crb08byq1i9wcjmcl645wc03p1jadm4f9nd138rii69nzancwfl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 20,
+ 0
+ ],
+ "deps": [
+ "f",
+ "inf-ruby",
+ "inflections",
+ "projectile",
+ "rake"
+ ],
+ "commit": "228f6316f2da229bc82fbbcf52323da951a17871",
+ "sha256": "1l9l0hza6p1l750i7lvys6gnrdy2j0dmlg6nbb6zr2cq6jbf1lkd"
+ }
+ },
+ {
+ "ename": "projectile-ripgrep",
+ "commit": "195f340855b403128645b59c8adce1b45e90cd18",
+ "sha256": "1iczizyayql40wcljvpc1mvfvn9r28b1dkrkcmdxif732gd01jjg",
+ "fetcher": "github",
+ "repo": "nlamirault/ripgrep.el",
+ "unstable": {
+ "version": [
+ 20180914,
+ 1500
+ ],
+ "deps": [
+ "projectile",
+ "ripgrep"
+ ],
+ "commit": "40e871dcc4519a70981e9f28acea304692a60978",
+ "sha256": "0snn12iibz5frsx6yk6c31hb8knvsd568ghw9jjka5vxdjzap7p9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "deps": [
+ "projectile",
+ "ripgrep"
+ ],
+ "commit": "73595f1364f2117db49e1e4a49290bd6d430e345",
+ "sha256": "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj"
+ }
+ },
+ {
+ "ename": "projectile-sift",
+ "commit": "a730e1331b0486c4bd2d309b85d2f8810489eb47",
+ "sha256": "1wbgpwq9yy3v7hqidaczrvvsw5ajj7m3n4gsy3b169xv5h673a0i",
+ "fetcher": "github",
+ "repo": "nlamirault/sift.el",
+ "unstable": {
+ "version": [
+ 20160107,
+ 1015
+ ],
+ "deps": [
+ "projectile",
+ "sift"
+ ],
+ "commit": "cdddba2d183146c340915003f1b5d09d13712c22",
+ "sha256": "0ln87nhq2vhsb0ywn7rp0b3hzms5z7l6cv6dng08yly12r2957if"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "projectile",
+ "sift"
+ ],
+ "commit": "8c3f3d14a351a2394027d72ee0599aa73b9f0d13",
+ "sha256": "1ma6djvhvjai07v1g9a36lfa3nw8zsy6x5vliwcdnkf44gs287ra"
+ }
+ },
+ {
+ "ename": "projectile-speedbar",
+ "commit": "eda8cb5a175258404c347ffa30fca002504467a0",
+ "sha256": "0dli4gzsiycivh8dwa00lfpbimyg42qygfachzrhi8qy5413pwlp",
+ "fetcher": "github",
+ "repo": "anshulverma/projectile-speedbar",
+ "unstable": {
+ "version": [
+ 20190807,
+ 2010
+ ],
+ "deps": [
+ "projectile",
+ "sr-speedbar"
+ ],
+ "commit": "93320e467ee78772065e599a5dba94889a77db22",
+ "sha256": "1byk8ylm6c922jsaa8lg8wk17qjnhh7p26lp2h0nbl7qdz928ss8"
+ }
+ },
+ {
+ "ename": "projectile-trailblazer",
+ "commit": "f9c6f2f92ff99e7a3241003dc396f978f3916c8a",
+ "sha256": "18cijb5c1ym5kn2g2apbijbfd3aqhrraki8vv9bk8rvi7wmm6qj4",
+ "fetcher": "github",
+ "repo": "micdahl/projectile-trailblazer",
+ "unstable": {
+ "version": [
+ 20170928,
+ 1624
+ ],
+ "deps": [
+ "f",
+ "inf-ruby",
+ "inflections",
+ "projectile",
+ "rake"
+ ],
+ "commit": "a37a4f7b7f727d98e4c74c0256e059e84263553d",
+ "sha256": "1njs2aps4mlbnnfjkfwrb8vy8lg6lyxzxkxpscv91la7yf3wpc3g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "f",
+ "inf-ruby",
+ "inflections",
+ "projectile",
+ "rake"
+ ],
+ "commit": "79299498d74876f2ac3fe8075716b39a5bdd04cd",
+ "sha256": "1lkj9jdr3g7nl80fxvic6g5cn7vbkyxys7m3kcmd6xa9mq7nvci4"
+ }
+ },
+ {
+ "ename": "projectile-variable",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "15qc5n91nxyfvb100iyihfmrdr57qgw6098yv3nfqgw3zx1qchdw",
+ "fetcher": "github",
+ "repo": "emacs-php/projectile-variable",
+ "unstable": {
+ "version": [
+ 20170208,
+ 1718
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8d348ac70bdd6dc320c13a12941b32b38140e264",
+ "sha256": "0l38nldx6lwjb7mxixykiyj10xwb35249dxfg0k2wkmb2vy1fkxs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "8d348ac70bdd6dc320c13a12941b32b38140e264",
+ "sha256": "0l38nldx6lwjb7mxixykiyj10xwb35249dxfg0k2wkmb2vy1fkxs"
+ }
+ },
+ {
+ "ename": "projector",
+ "commit": "420ffea4549f59677a16c1ee89c77b866487e302",
+ "sha256": "0hrinplk607wcc2ibn05pl8ghikv9f3zvymncp6nz95jw9brdapf",
+ "fetcher": "github",
+ "repo": "waymondo/projector.el",
+ "unstable": {
+ "version": [
+ 20190703,
+ 1418
+ ],
+ "deps": [
+ "alert",
+ "cl-lib",
+ "projectile"
+ ],
+ "commit": "bad51a81fbcae9aabe47dafc2499ba27cd7308be",
+ "sha256": "0xiwn58wqm15kvbx0pi2zmh8gc1f06zncxki03bwry4nfpqxr2d0"
+ }
+ },
+ {
+ "ename": "projekt",
+ "commit": "e2a854ed4fef114861bcc7814cd064c16d3c074c",
+ "sha256": "1bhb24701flihl54w8xrj6yxhynpq4dk0fp5ciac7k28n4930lw8",
+ "fetcher": "github",
+ "repo": "tekai/projekt",
+ "unstable": {
+ "version": [
+ 20150324,
+ 848
+ ],
+ "commit": "a65e554e5d8b0def08c5d06f3fe34fec40bebd83",
+ "sha256": "0hvvlh24157qjxz82sbg22d4cbrf95xyx202cybp0n1vyxsmjcmw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "107232c191375b59d065354470d0af83062e2a4c",
+ "sha256": "1rw55w2fpb3rw7j136kclkhppz21f7d7di4cvlv7zj5zpdl5zz88"
+ }
+ },
+ {
+ "ename": "projmake-mode",
+ "commit": "df23138073d2416fa6522beca86b7a62eb4d42e3",
+ "sha256": "192gvmhcz1anl80hpmcjwwd08dljyrap9sk6qj0y85mcnaafm882",
+ "fetcher": "github",
+ "repo": "ericbmerritt/projmake-mode",
+ "unstable": {
+ "version": [
+ 20161031,
+ 1715
+ ],
+ "deps": [
+ "dash",
+ "indicators"
+ ],
+ "commit": "a897701f7e8f8cc11459ed44eb0e454db2a460c1",
+ "sha256": "0las0xl4af6sn5pbllq16abw2hj1kswwpkyi6lf31sbwr5wnq4qb"
+ }
+ },
+ {
+ "ename": "promise",
+ "commit": "3eaf5ac668008759677b9cc6f11406abd573012a",
+ "sha256": "1y1v3ikcmh9yp5fdwagcjg755bgkyqk714lb6s1hb2606m3ia03s",
+ "fetcher": "github",
+ "repo": "chuntaro/emacs-promise",
+ "unstable": {
+ "version": [
+ 20200727,
+ 900
+ ],
+ "commit": "d7b59805e7a8da1f5edea9313b6e2d0f1115fec0",
+ "sha256": "08f30fwwh86mnymbjxr9gswkgvsfdxa1mqajsmsbkk5nvmz1jx0n"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "53e1dfe9a8bd613fdfa31944e5259dcdd3a29e12",
+ "sha256": "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"
+ }
+ },
+ {
+ "ename": "prompt-text",
+ "commit": "17d2bc3e53865fe8c98aabb6ef0ad1d10fcb1061",
+ "sha256": "1b9sj9kzx5ydq2zsfmkwsx78pzg0vsvrn92397js6b2cm24vrwwc",
+ "fetcher": "github",
+ "repo": "10sr/prompt-text-el",
+ "unstable": {
+ "version": [
+ 20190408,
+ 310
+ ],
+ "commit": "0a75ecd5058c9a006e02d1ecd3f1c84194881abd",
+ "sha256": "0y95awjmw9sasjac7s5b6zm42206szqvhr9xkg8zj0frrhnqsx8l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "bb9265ebfada42d0e3c67c809665e1e5d980691e",
+ "sha256": "1hq8426i8rpb3qzkd5akv3i08pa4jsp9lwsskn38bfgp71pwild2"
+ }
+ },
+ {
+ "ename": "prompts",
+ "commit": "2395402e72d9b0f7ce2ca5fcb4497919f90a8fe2",
+ "sha256": "1fz5sbc45jiq64y89lm8nj6lsanq3lzyjzahxzrgqvr7655pphzm",
+ "fetcher": "github",
+ "repo": "GuiltyDolphin/prompts.el",
+ "unstable": {
+ "version": [
+ 20160916,
+ 1041
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "1cd5e732ff2a86b47836eb7252e5b59cd4b6ab26",
+ "sha256": "10y8x54p64zs1jlq4nf1kixpb42078n2gdf9s62b1siyb1vhl581"
+ }
+ },
+ {
+ "ename": "pronto",
+ "commit": "b0de92782a7305aee5a803607f9db0fe8b8e988e",
+ "sha256": "0vkas9h45i029wx04wsvm72dlhhq46vdx9y20c2rkq4n9ny94hr3",
+ "fetcher": "github",
+ "repo": "julianrubisch/pronto.el",
+ "unstable": {
+ "version": [
+ 20200218,
+ 1633
+ ],
+ "commit": "c2a2ec718c08de1fd2e681970456786cf4eac8fe",
+ "sha256": "1xgkl263iyrdin6mdlmvswr411qyciskasa2jbqi84ffiw83313m"
+ }
+ },
+ {
+ "ename": "proof-general",
+ "commit": "135c8f2a04739145b500b8742a697907e398d270",
+ "sha256": "10zif9ax4d3m8sa9y2xqz7g24xa2r3m2x5l0zqa06wm4afq29p87",
+ "fetcher": "github",
+ "repo": "ProofGeneral/PG",
+ "unstable": {
+ "version": [
+ 20200623,
+ 1748
+ ],
+ "commit": "03e427a8f19485e12b2f95387ed3e0bff7cc944c",
+ "sha256": "0ykxb4xdsxv2mja620kf61k2l18scs0jdsfsg1kzs2qf4ddjscyn"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 4
+ ],
+ "commit": "771cab48b2f9ea2ae3fa8f944d0e36a805bf9f3b",
+ "sha256": "0bdfk91wf71z80mdfnl8hpinripndcjgdkz854zil6521r84nqk8"
+ }
+ },
+ {
+ "ename": "prop-menu",
+ "commit": "3d3a013cc9c489987fe689c8d73bbaa3445bdeb3",
+ "sha256": "0dhy52fxxpa058mhhx0slw3sly3dlxm9vkax6fd1sap6f6v00p5i",
+ "fetcher": "github",
+ "repo": "david-christiansen/prop-menu-el",
+ "unstable": {
+ "version": [
+ 20150728,
+ 1118
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "50b102c1c0935fd3e0c465feed7f27d66b21cdf3",
+ "sha256": "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "50b102c1c0935fd3e0c465feed7f27d66b21cdf3",
+ "sha256": "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"
+ }
+ },
+ {
+ "ename": "propfont-mixed",
+ "commit": "3ccb401b60cb1128ba50a5afecd97feca6d00d7a",
+ "sha256": "19k0ydpkiviznsngwcqwn4k30r6j8w34pchgpjlsfwq1bndaai9y",
+ "fetcher": "github",
+ "repo": "ikirill/propfont-mixed",
+ "unstable": {
+ "version": [
+ 20150113,
+ 2211
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0b461ef4754a469610dba71874a34b6da42176bf",
+ "sha256": "0lch20njy248w7bnvgs7jz0zqasskf5dakmykxwpb48llm6kx95v"
+ }
+ },
+ {
+ "ename": "proportional",
+ "commit": "9e0a7f061df4cce44e5fe98f6e1c31bec4a7338f",
+ "sha256": "022lhbslzd67wyah8r0gl73vzxgjjwia08l3ssdd08jj3p56m3wx",
+ "fetcher": "github",
+ "repo": "ksjogo/proportional",
+ "unstable": {
+ "version": [
+ 20200309,
+ 1556
+ ],
+ "commit": "0e4537af7ba2bc9dbb449c38350bce012b382f51",
+ "sha256": "0k4kwmyja5nb6rmbbq71vzxw7nnxr0w8f9vzws14an28niwr4s8p"
+ }
+ },
+ {
+ "ename": "prosjekt",
+ "commit": "6d359ec827573dd8c871c4f23df5d1737f1830e7",
+ "sha256": "1fn7ii1bq7bjkz27hihclpvx0aabgwy3kv47r9qibjl2jin97rck",
+ "fetcher": "github",
+ "repo": "abingham/prosjekt",
+ "unstable": {
+ "version": [
+ 20151127,
+ 1416
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "a864a8be5842223043702395f311e3350c28e9db",
+ "sha256": "1m8zvrv5aws7b0dffk8y6b5mncdk2c4k90mx69jys10fs0gc5hb3"
+ }
+ },
+ {
+ "ename": "protobuf-mode",
+ "commit": "b4e7f5f641251e17add561991d3bcf1fde23467b",
+ "sha256": "1hh0w93fg6mfwsbb9wvp335ry8kflj50k8hybchpjcn6f4x39xsj",
+ "fetcher": "github",
+ "repo": "google/protobuf",
+ "unstable": {
+ "version": [
+ 20200619,
+ 1742
+ ],
+ "commit": "214c77e1b76e63e512bd675d1c300c80438642b6",
+ "sha256": "1fxf5gydjcfc9gdwv6yfcwv85ww5glqbzlfv9hcnkddwlz6schxa"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 0,
+ -1,
+ 2
+ ],
+ "commit": "6c61c1e63b9be3c36db6bed19032dfc0d63aadda",
+ "sha256": "1910pnpy0mfzqga4mv52ybjfbxrbdflgb6nsh2vbpbpsv4jl58dq"
+ }
+ },
+ {
+ "ename": "protocols",
+ "commit": "9c9a75671a00e9196d00b08911232aac87fd8c83",
+ "sha256": "1wg3qh8a1ms82lkzz4i1bk787147a8agcj8rszj1zfvwg0ckqq1a",
+ "fetcher": "github",
+ "repo": "davep/protocols.el",
+ "unstable": {
+ "version": [
+ 20170802,
+ 1132
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d0f7c4acb05465f1a0d4be54363bbd2802647e77",
+ "sha256": "1xg3pwsnzn795bz299x273ral2jrz2v3p9r6gjm4dcx5pm3348mj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f5549f5d873a683af45a0e19c732524d5b964026",
+ "sha256": "0v9is6r307814gvrnch2d3mvikd7j8lnmsqb2c3gj6gvfj4p9y7r"
+ }
+ },
+ {
+ "ename": "proxy-mode",
+ "commit": "25224d3bcdb625314e931d5acc22f60c7192a84b",
+ "sha256": "0ldjfmxn8k8bzvdrlsfpijsmgn754aza54by5d59k7a1xn6d37mp",
+ "fetcher": "github",
+ "repo": "stardiviner/proxy-mode",
+ "unstable": {
+ "version": [
+ 20200131,
+ 816
+ ],
+ "commit": "e9b2a4bb032aaf13b006b74eec309a9bf2249cf0",
+ "sha256": "1wmj3ahjj1g7sx36fda6fhicvmxkm8qm64zqdk3qqj808jik1pry"
+ }
+ },
+ {
+ "ename": "psalm",
+ "commit": "148d9b28e683a6602bb18eecaaf3cbc8dede65b1",
+ "sha256": "0j54gj76xz7hkbbsb3dahxy1yf3y7kfg1ls060cskd6sdds412zq",
+ "fetcher": "github",
+ "repo": "emacs-php/psalm.el",
+ "unstable": {
+ "version": [
+ 20200510,
+ 1157
+ ],
+ "deps": [
+ "php-mode"
+ ],
+ "commit": "b2a1e8a9524b0004e62996c70da5536f86e56182",
+ "sha256": "0r0qz5bdznzdj7zxq6a6fz7fwn2c978bq57yywj3fcy8f5vh8jcf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "php-mode"
+ ],
+ "commit": "aaa77b4ceb61d41a520baa0b84b9b236c99c4156",
+ "sha256": "1fnr8sbx74c4mdz91y6b4m0n6njjb0qa01r4i9975q197vwzni48"
+ }
+ },
+ {
+ "ename": "psc-ide",
+ "commit": "9eb5ff1de1d207317df052ecbd65dbe0f8766f5d",
+ "sha256": "0gvq4cmmnbh4afzhmpqmizlvyr2fmd88jwdcac3w4b25fvhzr8hp",
+ "fetcher": "github",
+ "repo": "purescript-emacs/psc-ide-emacs",
+ "unstable": {
+ "version": [
+ 20200702,
+ 1540
+ ],
+ "deps": [
+ "company",
+ "dash",
+ "dash-functional",
+ "flycheck",
+ "let-alist",
+ "s",
+ "seq"
+ ],
+ "commit": "663f4e2cf9cbafdd4b9a60c34346596e2a40c87c",
+ "sha256": "06zgi5inlg244qhabsp4a24kda83i6rdpxf78qb7ygpxwdj4hf44"
+ }
+ },
+ {
+ "ename": "psci",
+ "commit": "3451719ce5096383db082917716a5ed8346fc186",
+ "sha256": "1iwkr58b910vrwwxyk00psy74vp201vmm3b0cm4k5fh3glr31vp9",
+ "fetcher": "github",
+ "repo": "purescript-emacs/emacs-psci",
+ "unstable": {
+ "version": [
+ 20191025,
+ 830
+ ],
+ "deps": [
+ "dash",
+ "purescript-mode"
+ ],
+ "commit": "95fb5d14033add8fe9c8c6b4379758beb88af1d0",
+ "sha256": "05lpdlpc652sl1kk0wx1bzdzyyyrvllcyfqyksplwaxgzjxy95mp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "deps": [
+ "dash",
+ "deferred",
+ "f",
+ "purescript-mode",
+ "s"
+ ],
+ "commit": "8c2d5a0ba604ec593f83f632b2830a87f41f84d4",
+ "sha256": "0wgxrwl7dpy084sc76wiwpixycb171g7xwc66m5gnlrv79qyac73"
+ }
+ },
+ {
+ "ename": "psession",
+ "commit": "669342d2b3e6cb622f196571d776a98ec8f3b1d3",
+ "sha256": "18va6kvpia5an74vkzccs72z02vg4vq9mjzr5ih7xbcqxna7yv3a",
+ "fetcher": "github",
+ "repo": "thierryvolpiatto/psession",
+ "unstable": {
+ "version": [
+ 20200714,
+ 555
+ ],
+ "deps": [
+ "async",
+ "cl-lib"
+ ],
+ "commit": "d2b8f8d8c6acd2f86f3a7774a7079f40b1b75f8e",
+ "sha256": "1pks2xvnampp74d1m7rrq6801bdhcmdsx9gbrcvr8ljxxlzbka1w"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5
+ ],
+ "deps": [
+ "async",
+ "cl-lib"
+ ],
+ "commit": "702d20897c0839568201bc6921d5f0f80b8778c0",
+ "sha256": "0ynd69fyjpgs6rs3kkznpx19kmdmd25wb46bj9zq61gj138b6p33"
+ }
+ },
+ {
+ "ename": "psysh",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "00rzfw8nlbcmfbjnzbfl08136dhgvrrn9g1s9l623xgpbcay63sg",
+ "fetcher": "github",
+ "repo": "emacs-php/psysh.el",
+ "unstable": {
+ "version": [
+ 20190709,
+ 106
+ ],
+ "deps": [
+ "f",
+ "php-runtime",
+ "s"
+ ],
+ "commit": "21250984ad8137aa3440ac12e52475ef03f19fcb",
+ "sha256": "1r0aiwdmj0y96faqvbz39wgxw91i9bj6rnwlj3a277pzlhzmyyxl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "4709a57cdcf7103c4a606be89849ea3ead2d38a5",
+ "sha256": "1apf6mnqp9bg5dfykgvsn02z0xpyx6k34sd2pvicicig7w09kzvb"
+ }
+ },
+ {
+ "ename": "pt",
+ "commit": "34c51783af154f203489f5f7df7012ca61932caa",
+ "sha256": "0zmz1hcr4ajc2ydvpdxhy1dlhp7hvlkv6y6w1b79ffvq6acdd5mj",
+ "fetcher": "github",
+ "repo": "bling/pt.el",
+ "unstable": {
+ "version": [
+ 20161226,
+ 1959
+ ],
+ "commit": "6d99b2aaded3ece3db19a20f4b8f1d4abe382622",
+ "sha256": "1vi97hgwrf7n8vsbkvvhn398m20755jnbbbz4kxgqfmcgpimc8nc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "a539dc11ecb2d69760ff50f76c96f49895ce1e1e",
+ "sha256": "1p0k770h96iw8bxm8ssi0a91m050s615q036870lrlsz35mzc5kw"
+ }
+ },
+ {
+ "ename": "pubmed",
+ "commit": "ee84560c15e7389e902fb4a4c548c08be231de82",
+ "sha256": "048kh442dnzgwz4wml2a5griav8zyrfzn5b43n9ky84pm7lgcxp3",
+ "fetcher": "gitlab",
+ "repo": "fvdbeek/emacs-pubmed",
+ "unstable": {
+ "version": [
+ 20200618,
+ 2203
+ ],
+ "deps": [
+ "deferred",
+ "esxml",
+ "s",
+ "unidecode"
+ ],
+ "commit": "88aeb71ed4354af0b58354636ee6a9485887213d",
+ "sha256": "154lkpipi5wgcwx4j9w6h3zysciw7hblf03an2irr9xgdhs7xs7q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "deferred",
+ "esxml",
+ "s",
+ "unidecode"
+ ],
+ "commit": "d781870e2f57e40110e07768289ab81d8554f122",
+ "sha256": "17d2v7q6sfafk8j1ish053xsmihi4f1hbk53fkkmhwan6sw9c4sc"
+ }
+ },
+ {
+ "ename": "pug-mode",
+ "commit": "b3710aac9f3df3a23238af1f969c462b3692f260",
+ "sha256": "1njhr95y2rx7inpl9phxxz580844p2iadqlga1kj7xzvjz698x85",
+ "fetcher": "github",
+ "repo": "hlissner/emacs-pug-mode",
+ "unstable": {
+ "version": [
+ 20180513,
+ 2126
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "685fd3414d89736bf232f5d1a6bed9e0353b98fe",
+ "sha256": "06qy9bgizc68k57avrbcl2qd2kyb8s17gr6rvxdbjknk6i55dgp4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 7
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "96718f802dad3acd5a3f770b1452b81e39f77d92",
+ "sha256": "1jqj3qfc4686v09am869ls1k3jwy397646cql4a8dg7crjdpf023"
+ }
+ },
+ {
+ "ename": "pulseaudio-control",
+ "commit": "7964f226e12c3a27ff856e28f4b030ebf304aea2",
+ "sha256": "1vdhg85lbdx7sj1xg2vhhfmhrrp5q2x560agnsb0gxi2akp6z9r0",
+ "fetcher": "github",
+ "repo": "flexibeast/pulseaudio-control",
+ "unstable": {
+ "version": [
+ 20200406,
+ 752
+ ],
+ "commit": "a931533140547510decdc368f39b2d2b97ca725f",
+ "sha256": "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76"
+ }
+ },
+ {
+ "ename": "punctuality-logger",
+ "commit": "76ac7178ee5381e08ae881f3fc6061106eeb1c1d",
+ "sha256": "0q9s74hkfqvcx67xpq9rlvh38nyjnz230bll6ks7y5yzxvl4qhcm",
+ "fetcher": "gitlab",
+ "repo": "elzair/punctuality-logger",
+ "unstable": {
+ "version": [
+ 20141120,
+ 2031
+ ],
+ "commit": "e09e5dd37bc92289fa2f7dc44aed51a7b5e04bb0",
+ "sha256": "1bkkgs2agy00wivilljkj3a9fsb2ba935icjmhbk46zjc6yf3y6q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8
+ ],
+ "commit": "708cae8e67dbae293c7c4be0ca5e49d76fac6714",
+ "sha256": "1v48i37iqrrwbyy3bscicfq66vbbml4sg0f0n950bnk0qagjx8py"
+ }
+ },
+ {
+ "ename": "pungi",
+ "commit": "d504c6028c029268d380c0eac25b1c4886aa6e98",
+ "sha256": "1v9fsd764z5wdcips63z53rcipdz7bha4q6s4pnn114jn3a93ls1",
+ "fetcher": "github",
+ "repo": "mgrbyte/pungi",
+ "unstable": {
+ "version": [
+ 20150222,
+ 1246
+ ],
+ "deps": [
+ "jedi",
+ "pyvenv"
+ ],
+ "commit": "a2d4d439ea371be0b064a12248288903b8a521a0",
+ "sha256": "1viw95y6fha782n1jw7snr7xc00iyf94r4whsm1a2q11vm2d1h21"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "jedi",
+ "pyvenv"
+ ],
+ "commit": "41c9f8b7795e083bfd63ba0d06c789c250998723",
+ "sha256": "012lv7hrwlhvins81vw3yjkhdwbpi6g1dx55i101qyrpzv5ifngm"
+ }
+ },
+ {
+ "ename": "punpun-theme",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "10mgyrxz2habhaqyg1g4c5kn13q425j0xpkkdlg10cdfvxfl9d1s",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/punpun-theme.git",
+ "unstable": {
+ "version": [
+ 20200506,
+ 1241
+ ],
+ "commit": "c1fa9f403b100aceac4c2dcb053111b2de701f16",
+ "sha256": "0y52kgqrnzrsybm2cwdrarjm1y92hambcr4a8nky28bkp5v73a86"
+ }
+ },
+ {
+ "ename": "puppet-mode",
+ "commit": "1de94f0ab39ab18dfd0b050e337f502d894fb3ad",
+ "sha256": "1qn71j6fkwnrsq1s6fhfcxhic3rbspg5cy9n7jv451ji7ywyhakf",
+ "fetcher": "github",
+ "repo": "voxpupuli/puppet-mode",
+ "unstable": {
+ "version": [
+ 20200505,
+ 344
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "0e2e32a3b1644edd8010bd3d44e83def683348b3",
+ "sha256": "082r71wn5klihv8npc8qsvsyw4jyib5mqpnqr029kv7cvlcyfghk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "73ea35bc7a3ad663c5b73f65cb6377eb0ae11d6f",
+ "sha256": "0c5q8qmbligzjsn05di4wh6ggpd3944j4yqb78vzd441b8ssq70i"
+ }
+ },
+ {
+ "ename": "purescript-mode",
+ "commit": "55462ed7e9bf353f26c5315015436b2a1b37f9bc",
+ "sha256": "1g30xbv3xvv52r873465a2lp6fnws9q8dz277697qm0mgxkpimbp",
+ "fetcher": "github",
+ "repo": "purescript-emacs/purescript-mode",
+ "unstable": {
+ "version": [
+ 20200708,
+ 827
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "154ad16b61fb9dec83a6c863ffaf92638278f00f",
+ "sha256": "14046nryg870s366j6hxqpwza0y057hxaiq3kwlnpf1avlzdwhib"
+ }
+ },
+ {
+ "ename": "purp-theme",
+ "commit": "9e731ed27d812d822ebb1dbd639441ce59c4ecf7",
+ "sha256": "1ni8nnyfg4g49fw5m4pxa8fr147pyyvqa5gmydggv5r1xmldgsli",
+ "fetcher": "github",
+ "repo": "gnuvince/purp",
+ "unstable": {
+ "version": [
+ 20190629,
+ 1829
+ ],
+ "commit": "f821a7c30452d970ccb0ee08b68d56603860e31d",
+ "sha256": "170k5xkbqr0dbwcwhy75k88qjlnkw6l2ipaqlbr1hdnw17vp2qy9"
+ }
+ },
+ {
+ "ename": "purple-haze-theme",
+ "commit": "6f26b8281f9bd05e3c8f2ef21838275711e622c9",
+ "sha256": "1rvfpm3zkhdv3ikc8pqqngf9pi0niwyi52pg8dq8i056nwc5bk9z",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-purple-haze-theme",
+ "unstable": {
+ "version": [
+ 20141015,
+ 229
+ ],
+ "commit": "3e245cbef7cd09e6b3ee124963e372a04e9a6485",
+ "sha256": "15myw5rkbnnpgzpiipm5xl4cyzymv8hh66x9al4aalb5nf52dckc"
+ }
+ },
+ {
+ "ename": "purty-mode",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0gbbwl5kg74jf1i1zsr40zg3gw43qmz1l87k0r578v1xvyqmhm1i",
+ "fetcher": "github",
+ "repo": "jcatw/purty-mode",
+ "unstable": {
+ "version": [
+ 20131004,
+ 2259
+ ],
+ "commit": "8eef77317a3bab07ade212353a50fbd3f20f365a",
+ "sha256": "0qm2xv762cz196aqs445crqrmsks8hpwzpaykzn0chlvdk0m5cv1"
+ }
+ },
+ {
+ "ename": "pushbullet",
+ "commit": "a2649d60dd1ed3b3171ff1448b89967c5f7759a0",
+ "sha256": "1swzl25rcw7anl7q099qh14yhnwlbn3m20ib9kis0l1rv59kkarl",
+ "fetcher": "github",
+ "repo": "theanalyst/revolver",
+ "unstable": {
+ "version": [
+ 20140809,
+ 1232
+ ],
+ "deps": [
+ "grapnel",
+ "json"
+ ],
+ "commit": "73c59a0f1dc04875b3e5a2c8afbc26c32128e445",
+ "sha256": "03ivg3ddhy5zh410wgwxa17m98wywqhk62jgijhjd00b6l8i4aym"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 2
+ ],
+ "deps": [
+ "grapnel",
+ "json"
+ ],
+ "commit": "73c59a0f1dc04875b3e5a2c8afbc26c32128e445",
+ "sha256": "03ivg3ddhy5zh410wgwxa17m98wywqhk62jgijhjd00b6l8i4aym"
+ }
+ },
+ {
+ "ename": "pushover",
+ "commit": "e9553cd029bc0733c89d2c790cb173d9668a9eba",
+ "sha256": "0im5bf2r69s2jb6scm8xdk63y1xi5zm4kg9ghfixlvyvipfli4kl",
+ "fetcher": "git",
+ "url": "https://git.flintfam.org/swf-projects/emacs-pushover.git",
+ "unstable": {
+ "version": [
+ 20170818,
+ 2103
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bbe3ac8df3c532a72da4552615af960b8a577588",
+ "sha256": "187bisngi37n66ik2dq7rg4hy4nlxl9pifqgqq08kf9238y8hd11"
+ }
+ },
+ {
+ "ename": "px",
+ "commit": "326fc9b057a5016248ac36ca166e9a38f13babf6",
+ "sha256": "0xjmz18m2dslh6yq5z32r43zq3svfxn8mhrfbmihglyv2mkwxw44",
+ "fetcher": "github",
+ "repo": "aaptel/preview-latex",
+ "unstable": {
+ "version": [
+ 20170317,
+ 2330
+ ],
+ "commit": "0c52f7933eab3ca1642ab0df151db9950430c9e2",
+ "sha256": "0f741a2gpc2mdl85ivbiskga620b6ci2x0dwjs7m8c1vk6xrxbpi"
+ }
+ },
+ {
+ "ename": "py-autopep8",
+ "commit": "c400e0f3cfe70821e621fe85d239b4f6596d5171",
+ "sha256": "1argjdmh0x9c90zkb6cr4z3zkpgjp2mkpsw0dr4v6gg83jcggfpp",
+ "fetcher": "github",
+ "repo": "paetzke/py-autopep8.el",
+ "unstable": {
+ "version": [
+ 20160925,
+ 1052
+ ],
+ "commit": "68e12d8788c91c7ec53a68acf1d23adb2ffa4788",
+ "sha256": "16fmym6hvi2lx0mmbrrhld1vzki5iqfqx2m0xa9021gjjzb33lw6"
+ },
+ "stable": {
+ "version": [
+ 2016,
+ 1
+ ],
+ "commit": "68e12d8788c91c7ec53a68acf1d23adb2ffa4788",
+ "sha256": "16fmym6hvi2lx0mmbrrhld1vzki5iqfqx2m0xa9021gjjzb33lw6"
+ }
+ },
+ {
+ "ename": "py-gnitset",
+ "commit": "d00b78ead693e844e35c760fe2c39b8ed6cb0d81",
+ "sha256": "0f6ivq4ignb4gfxw2q8qvigvv3fbvvyr87x25wcaz6yipg1lr18r",
+ "fetcher": "github",
+ "repo": "quodlibetor/py-gnitset",
+ "unstable": {
+ "version": [
+ 20170821,
+ 1732
+ ],
+ "commit": "1e993cc29cbc31e06fe1e335dec198e21972fa55",
+ "sha256": "1hslq2bdk95cgza9qbskxf942ckhjb4bqi6nrhbmlnm9agmjqm59"
+ }
+ },
+ {
+ "ename": "py-import-check",
+ "commit": "abe81fe96790ceebcf0951595644ea6a82613890",
+ "sha256": "1261dki0q44sw9h0g1305i2fj1dg9xgwzry50jbn2idcrqg4xf7k",
+ "fetcher": "github",
+ "repo": "psibi/emacs-py-import-check",
+ "unstable": {
+ "version": [
+ 20130802,
+ 1111
+ ],
+ "commit": "9787f87745a4234cd9bed711860b707902bc8ae4",
+ "sha256": "1416hbc64gwn9c8g9lxfx58w60ysi0x8rbps6mfxalavdhbs20sv"
+ }
+ },
+ {
+ "ename": "py-isort",
+ "commit": "44377d11da07b49c8dc6887c948cc5ddfc065bd2",
+ "sha256": "0k5gn3bjn5pv6dn6p0m9xghn0sx3m29bj3pfrmyh6gd5ic0l00yb",
+ "fetcher": "github",
+ "repo": "paetzke/py-isort.el",
+ "unstable": {
+ "version": [
+ 20160925,
+ 1018
+ ],
+ "commit": "e67306f459c47c53a65604e4eea88a3914596560",
+ "sha256": "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"
+ },
+ "stable": {
+ "version": [
+ 2016,
+ 1
+ ],
+ "commit": "e67306f459c47c53a65604e4eea88a3914596560",
+ "sha256": "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"
+ }
+ },
+ {
+ "ename": "py-smart-operator",
+ "commit": "a7491a1825b7aaa5f76aafadb8f04721ab1b1cfe",
+ "sha256": "1n0bdr9z2s1ikhmfz642k94gjzb88anwlb61mh27ay8wqdgm74c4",
+ "fetcher": "github",
+ "repo": "rmuslimov/py-smart-operator",
+ "unstable": {
+ "version": [
+ 20170531,
+ 1209
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "0c8a66faca4b35158d0b5885472cb75286039167",
+ "sha256": "09pmkp24s7nwh6p4pzsjp1z65ksi9n3n2xv7d3igpa86l8qgcm2d"
+ }
+ },
+ {
+ "ename": "py-test",
+ "commit": "84690ba6b033027772c20bf20432427b32d3231a",
+ "sha256": "1mbwbzg606winf5af7qkg6a1hg79lc7k2miq4d3mwih496l5sinb",
+ "fetcher": "github",
+ "repo": "Bogdanp/py-test.el",
+ "unstable": {
+ "version": [
+ 20151117,
+ 622
+ ],
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "3b2a0bdaacb54df6f2bee8317423e5c0d159d5cf",
+ "sha256": "1s39407z3rxz10r5sshv2vj7s23ylkhg59ixasgnpjk82gl4igpf"
+ }
+ },
+ {
+ "ename": "py-yapf",
+ "commit": "3306c6906d4b21868b9407de27fbebdaed3d00d5",
+ "sha256": "1381x0ffpllxwgkr2d8xxbv1nd4k475m1aff8l5qijw7d1fqga2f",
+ "fetcher": "github",
+ "repo": "paetzke/py-yapf.el",
+ "unstable": {
+ "version": [
+ 20160925,
+ 1122
+ ],
+ "commit": "a878304202ad827a1f3de3dce1badd9ca8731146",
+ "sha256": "1mmzqdigxx46my0h9497l25cjydy3vykg6slxkch4dzvhhlbap48"
+ },
+ "stable": {
+ "version": [
+ 2016,
+ 1
+ ],
+ "commit": "a878304202ad827a1f3de3dce1badd9ca8731146",
+ "sha256": "1mmzqdigxx46my0h9497l25cjydy3vykg6slxkch4dzvhhlbap48"
+ }
+ },
+ {
+ "ename": "pycarddavel",
+ "commit": "9b3d2cd943f26dcff322efb16d55dd3bd71dea07",
+ "sha256": "12k2mnzkd8yv17csfhclsnd479vcabawmac23yw6dsw7ic53jf1a",
+ "fetcher": "github",
+ "repo": "DamienCassou/pycarddavel",
+ "unstable": {
+ "version": [
+ 20150831,
+ 1216
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "a6d81ee4eb8309cd82f6082aeca68c5a015702a3",
+ "sha256": "09glwrb9q65qdm4yd0mbi5hwdy2434zm8699ywhs6hqpjacadlmi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "6ead921066fa0156f20155b7126e5875ce11c328",
+ "sha256": "0qg1kjzsv2mcvlsivqy8ys3djbs5yala37r9h2zcxdicl88q0l11"
+ }
+ },
+ {
+ "ename": "pycoverage",
+ "commit": "eb0310bbe8427abdcba2b30414ec26475b0b7440",
+ "sha256": "1jaanmpnawk0r6zfzx18crqml7lv412l2l0iabp345xvfvsh8h1m",
+ "fetcher": "github",
+ "repo": "mattharrison/pycoverage.el",
+ "unstable": {
+ "version": [
+ 20200513,
+ 2047
+ ],
+ "commit": "3c69ed312121368f1b24cc04d54a29ce4ed4f743",
+ "sha256": "0vcg8sq8pbzary19xxdariz3kws93qd2agzssl9znw38sayj71wz"
+ }
+ },
+ {
+ "ename": "pydoc",
+ "commit": "5c4988a66040ddf659492bdb0ae2b9617c342c69",
+ "sha256": "0sf52cb80yiridsl1pffdr3wpbgxrn2l8vnq03l70djckild477n",
+ "fetcher": "github",
+ "repo": "statmobile/pydoc",
+ "unstable": {
+ "version": [
+ 20200107,
+ 54
+ ],
+ "commit": "1dfbab7800827adadb649d6e02c31dd9cd65f0d3",
+ "sha256": "1lpc9picbrnqyyh2sy365dvfkxf2phh8s8j4bhizvkd2gallr6vr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "5392248e33d83ef05d3b2809b0c6b207786b2644",
+ "sha256": "1m0jb5pk1a1ww5jx2y5nz21by4dh7nlnhdn6bigz53ra449rrxii"
+ }
+ },
+ {
+ "ename": "pyenv-mode",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "05rfppn75130m5zpg5yz9bz1r7wap05jmd9v08fbqjipv98ckpz3",
+ "fetcher": "github",
+ "repo": "pythonic-emacs/pyenv-mode",
+ "unstable": {
+ "version": [
+ 20200518,
+ 1521
+ ],
+ "deps": [
+ "pythonic"
+ ],
+ "commit": "d191037fe62ed8d4fee5888845da3e2c386d8e89",
+ "sha256": "0dipwjdkx4887g61gn22wga4pvvkwv6rx7izq73l8b6x1mc17c0h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "pythonic"
+ ],
+ "commit": "b96c15fa1b83cad855e472eda06319ad35e34513",
+ "sha256": "1y3q1k195wp2kgp00a1y34i20zm80wdv2kxigh6gbn2r6qzkqrar"
+ }
+ },
+ {
+ "ename": "pyenv-mode-auto",
+ "commit": "f3fcb707356bd16fd0b573c176023534cd69d0d7",
+ "sha256": "1l7h4fas1vshkh4skxzpw7v2a11s1hwnb20n6a81yh701pbikqnd",
+ "fetcher": "github",
+ "repo": "ssbb/pyenv-mode-auto",
+ "unstable": {
+ "version": [
+ 20180620,
+ 1252
+ ],
+ "deps": [
+ "f",
+ "pyenv-mode",
+ "s"
+ ],
+ "commit": "347b94cd5ad22e33cc41be661c102d4548767858",
+ "sha256": "1gz7145jnjcky1751pqrlhh3pq02ybsmz49ngx4ip2589nry7iyv"
+ }
+ },
+ {
+ "ename": "pygen",
+ "commit": "e761724e52de6fa4d92950751953645dd439d340",
+ "sha256": "1ivg7a1ghg0bvz3idz7dzy5yb0ln3b2j7dfizg2g0fi4iwvc4czz",
+ "fetcher": "github",
+ "repo": "JackCrawley/pygen",
+ "unstable": {
+ "version": [
+ 20161121,
+ 506
+ ],
+ "deps": [
+ "dash",
+ "elpy",
+ "python-mode"
+ ],
+ "commit": "9019ff44ba49d7295b1476530feab91fdadb084b",
+ "sha256": "01gmggjv36jc8660xfpfy70cydabhymd17q3z16cjqvsxapbj7nf"
+ }
+ },
+ {
+ "ename": "pyim",
+ "commit": "151a0af91a58e27f724854d85d5dd9668229fe8d",
+ "sha256": "1ly4xhfr3irlrwvv20j3kyz98g7barridi9n8jppc0brh2dlv98j",
+ "fetcher": "github",
+ "repo": "tumashu/pyim",
+ "unstable": {
+ "version": [
+ 20200510,
+ 704
+ ],
+ "deps": [
+ "async",
+ "popup",
+ "pyim-basedict",
+ "xr"
+ ],
+ "commit": "e54153f462dd8cd8e9bb379e0483a2849ec94f42",
+ "sha256": "0zsw25q1nqkqc3vgi95064v9wph1ynhiqi8gvc3fqq3k8i2jgy4v"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9
+ ],
+ "deps": [
+ "async",
+ "popup",
+ "pyim-basedict",
+ "xr"
+ ],
+ "commit": "8fe9897f57e410a7637692d98c40876cb3bd6c2d",
+ "sha256": "1n9syy39rnma0giz2g1dhdfjj4nn5bls2qzswy48snfl5z5mfm5j"
+ }
+ },
+ {
+ "ename": "pyim-basedict",
+ "commit": "151a0af91a58e27f724854d85d5dd9668229fe8d",
+ "sha256": "1y8cmccli3im5bvws2h582z7k4nj6p8brgypl8h09y3na6yjy2z9",
+ "fetcher": "github",
+ "repo": "tumashu/pyim-basedict",
+ "unstable": {
+ "version": [
+ 20190719,
+ 1252
+ ],
+ "commit": "d499104189a9462cb80f8efd9713e4064dc7093d",
+ "sha256": "0k1afdknyham46z6fv001rnlsxzl50183fz9skw3y0wxxv2v04r4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "commit": "f71d0ffd9d2421f2b51cd0ccb89fd9eb43c09585",
+ "sha256": "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"
+ }
+ },
+ {
+ "ename": "pyim-cangjie5dict",
+ "commit": "9a15a17a5aa78aed72958b2a1bde53f0c0ab5be7",
+ "sha256": "1l2k8kfnfciacp1zps8j1g6ijzv1k3g9198079l8c8xlw789irlv",
+ "fetcher": "github",
+ "repo": "HesperusArcher/pyim-cangjie5dict",
+ "unstable": {
+ "version": [
+ 20170730,
+ 246
+ ],
+ "deps": [
+ "pyim"
+ ],
+ "commit": "c8618590780b818db1a67a29bc47c5d25903517a",
+ "sha256": "0p49h2kn8wy3b51zahzyc1cy24h3b44cg5yjpmv4w23dhsr4zlz8"
+ }
+ },
+ {
+ "ename": "pyim-wbdict",
+ "commit": "ab1cb8bc623d1f12f78fa42ce8b16514e5b07c51",
+ "sha256": "1s0i9xcnpy8kxqhsv7rqxabv5vnxsciyng398mn32mknib03315i",
+ "fetcher": "github",
+ "repo": "tumashu/pyim-wbdict",
+ "unstable": {
+ "version": [
+ 20200331,
+ 542
+ ],
+ "deps": [
+ "pyim"
+ ],
+ "commit": "daa223e2603a5ef3e6c8e33575d8f4e4604a8d3c",
+ "sha256": "0inl29fa2l5grn6z2wszj43bv17yf7n9x8l77zk2xp8q3gkswd86"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "pyim"
+ ],
+ "commit": "114489ed97e825ae11a8d09da6e873820cf23106",
+ "sha256": "187wx418pj4h8p8baf4943v9dsb6mfbn0n19r8xiil1z2cmm4ygc"
+ }
+ },
+ {
+ "ename": "pyimport",
+ "commit": "71bc39b06cee37814960ef31c6a2056261b802fb",
+ "sha256": "1qwigplawknykw1kbm5babyyknzn43ddhbdpahvzh4wy3kycn6n8",
+ "fetcher": "github",
+ "repo": "Wilfred/pyimport",
+ "unstable": {
+ "version": [
+ 20180308,
+ 1752
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "shut-up"
+ ],
+ "commit": "a6f63cf7ed93f0c0f7c207e6595813966f8852b9",
+ "sha256": "1q5gqhvh4zq5dy8vns694warcz48j1hdnxg16sjck4gsi9xivbvs"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "2c05712748f6b6624b15d524323f6391612683f4",
+ "sha256": "0p9fsbb7c1kr8916vlk1ngq7xmm158a47v6ja5j5n57b505ssy8q"
+ }
+ },
+ {
+ "ename": "pyimpsort",
+ "commit": "b38908bc1b759b14173ffb49ddeb040a9892cc0d",
+ "sha256": "105i63d05hlpwb4n5mn71jjgnav95s8n6xy0gb2smq9ljvxbbgl0",
+ "fetcher": "github",
+ "repo": "emacsorphanage/pyimpsort",
+ "unstable": {
+ "version": [
+ 20160130,
+ 453
+ ],
+ "commit": "d5c61d70896b642646dfd3c809c06174ae086c1a",
+ "sha256": "05qx1p19dw3nr264shihfn33k579hd0wf4cxki5cqrxi7xzpjgrc"
+ }
+ },
+ {
+ "ename": "pylint",
+ "commit": "a073c91d6f4d31b82f6bfee785044c4e3ae96d3f",
+ "sha256": "1138a8dn9y4ypbphs1zfvr8gr4vdjcy0adsl4xfbgsls4kcdwpxx",
+ "fetcher": "github",
+ "repo": "PyCQA/pylint",
+ "unstable": {
+ "version": [
+ 20200503,
+ 1624
+ ],
+ "commit": "52fd8e17c6aedbc68f58f1169363d6cc216f405b",
+ "sha256": "0nvgv67gq80hriaasck4zrr3v7qqrw6apxhnyixyavabdvvrawqz"
+ }
+ },
+ {
+ "ename": "pynt",
+ "commit": "fdb297084188a957a46dcd036e65d9d893044bea",
+ "sha256": "07c0zc68r3pskn3bac3a8x5nrsykl90a1h22865g3i5vil76vvg3",
+ "fetcher": "github",
+ "repo": "ebanner/pynt",
+ "unstable": {
+ "version": [
+ 20180710,
+ 726
+ ],
+ "deps": [
+ "deferred",
+ "ein",
+ "epc"
+ ],
+ "commit": "86cf9ce78d34f92bfd0764c9cbb75427ebd429e6",
+ "sha256": "14x6blikgg5ndc9955hdziy3h9gjr27gpzmhbi4pgjvs8gffhf31"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "deferred",
+ "ein",
+ "epc",
+ "helm"
+ ],
+ "commit": "bc750cd244141005ea3b7bb87f75c6f6c5a5778f",
+ "sha256": "0mj8lkc40iv8d6afl4dba7gsbi0mgnx9ivanvczq6pxp5d4kgfsn"
+ }
+ },
+ {
+ "ename": "pyramid",
+ "commit": "f786a47c2a6243c693163680146606c71502d0be",
+ "sha256": "149p9k6wjlgamm3vrkkcdj4fqhdfsskv1jqflp1bccfkgqpi5096",
+ "fetcher": "github",
+ "repo": "dakra/pyramid.el",
+ "unstable": {
+ "version": [
+ 20181212,
+ 1204
+ ],
+ "deps": [
+ "pythonic",
+ "tablist"
+ ],
+ "commit": "f0687b8aee3e685b55e2c66b16211e02ac5f9d94",
+ "sha256": "18kqqdk7yifcjmn11jgsqxvzr6izcgify1d8gm504sxw2qqc3q0i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "pythonic",
+ "tablist"
+ ],
+ "commit": "59d7ec03dcb1968160ac1dfe3c979cc83fe0fe4b",
+ "sha256": "132l0sf08hwq5wa6yffm8n60a51303zf4ivnfz57vyja70qdbp8b"
+ }
+ },
+ {
+ "ename": "pytest",
+ "commit": "33a854a27adbaf57d344340199f90d52747b8450",
+ "sha256": "0ssib65wa20h8r6156f392l481vns5fcax6w70hcawmn84nficdh",
+ "fetcher": "github",
+ "repo": "ionrock/pytest-el",
+ "unstable": {
+ "version": [
+ 20200330,
+ 41
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "6934047242db79b1c53e9fe3e0734cc9719ed1c4",
+ "sha256": "1gh5sqmhw7hl67m7nqgd4wwns7a10j0sfmabm97k1cmmbwdj0vca"
+ }
+ },
+ {
+ "ename": "pytest-pdb-break",
+ "commit": "4ed7d5d5e81818dad55edda73fbeca8c5021b932",
+ "sha256": "0dxn53y9zjlip0bjynjql984wrf39pmg5fsx1qgsrj1bw78xqw26",
+ "fetcher": "github",
+ "repo": "poppyschmo/pytest-pdb-break",
+ "unstable": {
+ "version": [
+ 20200804,
+ 848
+ ],
+ "commit": "05d227493b7b96f3556cba22f215cb85f9282020",
+ "sha256": "0dsvi5scrhk6mypz8wggvy9zlnkbm2fmb5a24jprqh3bihg077xl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 10
+ ],
+ "commit": "05d227493b7b96f3556cba22f215cb85f9282020",
+ "sha256": "0dsvi5scrhk6mypz8wggvy9zlnkbm2fmb5a24jprqh3bihg077xl"
+ }
+ },
+ {
+ "ename": "python-black",
+ "commit": "9e485ee04b19dda5d2165021da5018c3658a6cd7",
+ "sha256": "0jpr4zj8q4wfzfslr7v4a6975iz9jzd4ccmnci0ycbkbmrhy3mzj",
+ "fetcher": "github",
+ "repo": "wbolster/emacs-python-black",
+ "unstable": {
+ "version": [
+ 20200324,
+ 930
+ ],
+ "deps": [
+ "dash",
+ "reformatter"
+ ],
+ "commit": "a11ca73f6dfcdc125d27ff184496d66bdbd71326",
+ "sha256": "1jv2fwlf7q8l5npqcpr05xzqmfqlx6xmjn0zphh9rx6dd2dpdma9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "reformatter"
+ ],
+ "commit": "706d317f0874d7c5b5a3d844698bcfb8b1fe253e",
+ "sha256": "0fjnd85nlkck156dj6cahk8chhgkbgl2kwywqzi8bl4yj700m4dk"
+ }
+ },
+ {
+ "ename": "python-cell",
+ "commit": "0549866c5e96f673ec9dec298e7ff9d5779d443b",
+ "sha256": "07i3vyci52jvslq28djwkgx1r157wvxd99rvqlxnmmsl5yj4k1jf",
+ "fetcher": "github",
+ "repo": "thisch/python-cell.el",
+ "unstable": {
+ "version": [
+ 20200314,
+ 1147
+ ],
+ "commit": "4f0778b05bfb936861449bcb998ed620cd9b31ad",
+ "sha256": "0fjqy8wkxm8m94xfvvj12fpx8ybaln8x4ss9b0iaz9y9jvfwzg21"
+ }
+ },
+ {
+ "ename": "python-django",
+ "commit": "29b2cd21e7b504222aed92ec062402f3e2a818fc",
+ "sha256": "02whx8g8r02mzng7d7bnbkz5n7gyzp5hcnmvd6a3lq106c0h7w9k",
+ "fetcher": "github",
+ "repo": "fgallina/python-django.el",
+ "unstable": {
+ "version": [
+ 20150822,
+ 404
+ ],
+ "commit": "fc54ad74f0309670359b939f64d0f1fff68aeac4",
+ "sha256": "1qckn5bi1ib54hgqbym5qqwzvbv70ria1w3c2x543xlr0l7zga6h"
+ }
+ },
+ {
+ "ename": "python-docstring",
+ "commit": "e159e59ba0b60326cca0e1ea68fac4b85d54cd24",
+ "sha256": "1vi30y71vflsbprp5j4phbp7x1j24vxn9d6sifaddari0g0zxpfw",
+ "fetcher": "github",
+ "repo": "glyph/python-docstring-mode",
+ "unstable": {
+ "version": [
+ 20190716,
+ 921
+ ],
+ "commit": "ec253711f2bdcb3848046bb68f6405a7bf9eb0fb",
+ "sha256": "0m27h2ycjz212r012wh4wsahidclmb74gk9g3v6ym9a2120bk0dh"
+ }
+ },
+ {
+ "ename": "python-environment",
+ "commit": "283155ad56cd8eda416c83a9b7f8d43d4d1570c2",
+ "sha256": "1pq16rddw76ic5d02j5bswl9qcydi47hqmhs7r06jk46vsfzxpl7",
+ "fetcher": "github",
+ "repo": "tkf/emacs-python-environment",
+ "unstable": {
+ "version": [
+ 20150310,
+ 853
+ ],
+ "deps": [
+ "deferred"
+ ],
+ "commit": "401006584e32864a10c69d29f14414828909362e",
+ "sha256": "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "deferred"
+ ],
+ "commit": "401006584e32864a10c69d29f14414828909362e",
+ "sha256": "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"
+ }
+ },
+ {
+ "ename": "python-info",
+ "commit": "2a30746451ec5ffab250e160c1d5bd29b8dc6b54",
+ "sha256": "0kvpz1r2si94rs1iajn1ffmx7a5bgyjnzri36ajdgd5gcgh41dhy",
+ "fetcher": "github",
+ "repo": "Wilfred/python-info",
+ "unstable": {
+ "version": [
+ 20151228,
+ 1852
+ ],
+ "commit": "306f15441b54b25757cdfd3b327b84024ea21ed7",
+ "sha256": "0zk6014dzfrb3y3nhs890x082xf044w0a8nmy6rlrj375lvhfn99"
+ }
+ },
+ {
+ "ename": "python-mode",
+ "commit": "82861e1ab114451af5e1106d53195afd3605448a",
+ "sha256": "1m7c6c97xpr5mrbyzhcl2cy7ykdz5yjj90mrakd4lknnsbcq205k",
+ "fetcher": "gitlab",
+ "repo": "python-mode-devs/python-mode",
+ "unstable": {
+ "version": [
+ 20200608,
+ 737
+ ],
+ "commit": "6658e5d768db0c0d8dbc6fdedff3a85b65327061",
+ "sha256": "1mf6bbx4brwzafxwrv37x14b286vlza9knswhcccvcb3aplvll6h"
+ },
+ "stable": {
+ "version": [
+ 6,
+ 2,
+ 3
+ ],
+ "commit": "a0a534639bc6142c2c2f44bd7ca5878ad5f79518",
+ "sha256": "0sj2hfjwpcdg9djsgl3y5aa3gnvl4s87477x6a9d14m11db3p7ml"
+ }
+ },
+ {
+ "ename": "python-pytest",
+ "commit": "d95442748827911e082a55f4fd7c348a3757e274",
+ "sha256": "0n97akqq7dss7rsww311ljh9w1hyc4j64wjmpxjlc9lg5aqwjbh4",
+ "fetcher": "github",
+ "repo": "wbolster/emacs-python-pytest",
+ "unstable": {
+ "version": [
+ 20200812,
+ 737
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "projectile",
+ "s",
+ "transient"
+ ],
+ "commit": "fc056faf2757c42641ed94d36a090e56eb13572f",
+ "sha256": "00dwbh549ygnrp98s883v45f5pbb34f2j5qwvw92camhp6daw38y"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "projectile",
+ "s",
+ "transient"
+ ],
+ "commit": "10ad9afc840ac2d9d5616abf4bd92ab8fee2ce48",
+ "sha256": "1lc5qlsznzw8hdcdwjwn8fcgfmqjvb1wplsr2gaxwvm8rbw22g1l"
+ }
+ },
+ {
+ "ename": "python-switch-quotes",
+ "commit": "d99fbd3d0c486bf89c9c0937e2ebf378be39293f",
+ "sha256": "1wc27q9ac8p7c5mfk3kznbmdd5ds4ray0csgba79n19g152y5jjc",
+ "fetcher": "github",
+ "repo": "werehuman/python-switch-quotes",
+ "unstable": {
+ "version": [
+ 20161228,
+ 809
+ ],
+ "commit": "93f1e9b40e061a6cea480139e8b1362b6404abd0",
+ "sha256": "1x04hnf3m8cgqp0i566q4n7kh59cayzfxka3g07kv0h543xbys4n"
+ }
+ },
+ {
+ "ename": "python-test",
+ "commit": "0ea68b3aa9c057e81a3e90a359a38ac16cb26c2f",
+ "sha256": "16grx9xzl48dcwflfmv64wigyxlw495a6q01b1ynkqj5sjdl3fkn",
+ "fetcher": "github",
+ "repo": "emacs-pe/python-test.el",
+ "unstable": {
+ "version": [
+ 20181018,
+ 29
+ ],
+ "commit": "f899975b133539e19ba822e4b0bfd1a28572967e",
+ "sha256": "0ww0qf9hsd8j31dc0p3fmsiqsir3mqbd4pwv4i29qidmbgrk3cv0"
+ }
+ },
+ {
+ "ename": "python-x",
+ "commit": "c1cf98dff029d494007fe25d29bd8bcfecc5b8e6",
+ "sha256": "03px1z27yhvc9084h9j2p0khvhkwmfxdskf0ndvz79ywp6nl7mb6",
+ "fetcher": "gitlab",
+ "repo": "wavexx/python-x.el",
+ "unstable": {
+ "version": [
+ 20190611,
+ 1303
+ ],
+ "deps": [
+ "cl-lib",
+ "folding",
+ "python"
+ ],
+ "commit": "b1f8eaccee210d7c0580dba6dc9bd361fcf3765d",
+ "sha256": "0vyipfsppissa87pdnbksamdby0yl2q8nzawqivv6smn33jp6vsn"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "folding",
+ "python"
+ ],
+ "commit": "e606469aafec2e6beda8c589540b88a5a6f6f33f",
+ "sha256": "00i7cc4r7275l22k3708xi4hqw2j44yivdb1madzrpf314v3kabr"
+ }
+ },
+ {
+ "ename": "pythonic",
+ "commit": "c756ccbae044bc23131060355532261aa9a12409",
+ "sha256": "12yaxpir17bccj5zwd9lsm8dzd7qlflm8kcf8m1c0pxzgpsk0i5p",
+ "fetcher": "github",
+ "repo": "pythonic-emacs/pythonic",
+ "unstable": {
+ "version": [
+ 20200806,
+ 434
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "51233ec7ec9fbafd13e2b0479c7b2ee0930ccca5",
+ "sha256": "1v4n6wx0qff2ndlxy11acm21jq5yflk28axs6jc6yh7mdj44js9x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "c59a158942634d3c07e506b2376d96e8d5d1466f",
+ "sha256": "0219s900kdpi3cxllvmwm8hb2lwqzikplq578f7pyxhzljjh2lma"
+ }
+ },
+ {
+ "ename": "pyvenv",
+ "commit": "e37236b89b9705ba7a9d134b1fb2c3c003953a9b",
+ "sha256": "0gai9idss1wvryxyqk3pv854mc2xg9hd0r55r2blql8n5rd2yv8v",
+ "fetcher": "github",
+ "repo": "jorgenschaefer/pyvenv",
+ "unstable": {
+ "version": [
+ 20191202,
+ 1039
+ ],
+ "commit": "861998b6d157ae73b829f02a5a6c8a9118310831",
+ "sha256": "0w7w95cjhpvy28mcvmv21ajspngkyrx3yjx3293bmclv699lfbwc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 21
+ ],
+ "commit": "103d2f158ef2a760741682e18741e44107c68f3f",
+ "sha256": "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"
+ }
+ },
+ {
+ "ename": "q-mode",
+ "commit": "fff65433eff01d6239809df4c047f0e4349cc4a9",
+ "sha256": "1vv3hynd6k050nxln83l703ymzyh1kl69cdy4yabdvmkqw4gbshz",
+ "fetcher": "github",
+ "repo": "psaris/q-mode",
+ "unstable": {
+ "version": [
+ 20181216,
+ 1747
+ ],
+ "commit": "7a13fb68a0ad3d843c8cdc188cf0adb9723f42f7",
+ "sha256": "0di229ma7jr9jcck36qjrzilkbp428kkx53qs6c9xw9jhv6yklbz"
+ }
+ },
+ {
+ "ename": "ql",
+ "commit": "475bd8fd66c6d5b5c7e74aa2c4e094d313cc8303",
+ "sha256": "0wxjblqacs5nx2hyh7r6rlv1yngbhn6phn5rni4dw2dms98zj34z",
+ "fetcher": "github",
+ "repo": "ieure/ql-el",
+ "unstable": {
+ "version": [
+ 20180418,
+ 2020
+ ],
+ "commit": "d976414ba6aa576ad524b5ee5bfa620efd072258",
+ "sha256": "138h4ndnzpphsmi4b8yw53mxc3rnqrj1c3jp8njx5pkmiqkp1q00"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "d976414ba6aa576ad524b5ee5bfa620efd072258",
+ "sha256": "138h4ndnzpphsmi4b8yw53mxc3rnqrj1c3jp8njx5pkmiqkp1q00"
+ }
+ },
+ {
+ "ename": "qml-mode",
+ "commit": "f3abc88ddbb6b8ecafa45e75ceba9a1294ad88d4",
+ "sha256": "123mlibviplzra558x87da4zx0kpbhsgfigjjgjgp3mdg897084n",
+ "fetcher": "github",
+ "repo": "coldnew/qml-mode",
+ "unstable": {
+ "version": [
+ 20161016,
+ 31
+ ],
+ "commit": "6c5f33ba88ae010bf201a80ee8095e20a724558c",
+ "sha256": "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "6c5f33ba88ae010bf201a80ee8095e20a724558c",
+ "sha256": "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"
+ }
+ },
+ {
+ "ename": "qt-pro-mode",
+ "commit": "e9af710be77ccde8ffa5f22168d2c8a06b73dd6a",
+ "sha256": "1k3ph9bqvvg6i6n623qrwdpsffs8w9rv9nihmlggb4w30dwqc9nf",
+ "fetcher": "github",
+ "repo": "EricCrosson/qt-pro-mode",
+ "unstable": {
+ "version": [
+ 20170604,
+ 1841
+ ],
+ "commit": "7a2da323de834294b413cbbb3c92f42f54913643",
+ "sha256": "07054hzl7gd0wfibcqvij2wx9zji330gsryn53qad9gyalvlavpa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "f4accdeba5d49b79f85f0f24f74ac25e8326d487",
+ "sha256": "1xprnq3y74hfm931a80wcj35faafzqc59j3vavx95wzv4z4yfgdm"
+ }
+ },
+ {
+ "ename": "qtcreator-theme",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "01w4qxh9d8mkw7k0pawy0hvcdvvrkkhcnszpy5hixi5j6h7l24m0",
+ "fetcher": "github",
+ "repo": "LesleyLai/emacs-qtcreator-theme",
+ "unstable": {
+ "version": [
+ 20200203,
+ 1436
+ ],
+ "commit": "c56d792d5ab01743e1350e0a7a8a89bb3d2e0c4f",
+ "sha256": "1h7l094h5ccn24c8qp7aqcc4yn1gx8hlkgvsamh1zn8qpsx9bipy"
+ }
+ },
+ {
+ "ename": "quack",
+ "commit": "aa58bf19d4b65ec785677a36709794ae5aebded4",
+ "sha256": "18f3py9vr08589g9kvbcn2nvpd074rx45ni9k66cwl3hjb3hdkg5",
+ "fetcher": "github",
+ "repo": "emacsmirror/quack",
+ "unstable": {
+ "version": [
+ 20181106,
+ 1301
+ ],
+ "commit": "2146805ce2b5a9b155d73929986f11e713787e26",
+ "sha256": "005wkji4wjqqilgmqy81rjqr8zx4gl39mari2ahvr9mfps2ypmjz"
+ }
+ },
+ {
+ "ename": "quasi-monochrome-theme",
+ "commit": "a9c8498e4bcca19c4c24b2fd0db035c3da477e2a",
+ "sha256": "0h5pqrklyga40jg8qc47lwmf8khn0vcs5jx2sdycl2ipy0ikmfs0",
+ "fetcher": "github",
+ "repo": "lbolla/emacs-quasi-monochrome",
+ "unstable": {
+ "version": [
+ 20200415,
+ 705
+ ],
+ "commit": "b38d71860fdea945e10e8a766ac9dfa1410ade67",
+ "sha256": "0jcwfmamvpd22r5sbicbf9442b22lvldfrqldysm4l9yyxs11jy3"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "68060dbbc0bbfe4924387392874186c5a29bb434",
+ "sha256": "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"
+ }
+ },
+ {
+ "ename": "quelpa",
+ "commit": "c599f1254808a9d9bab87c35769052d5df2a01bf",
+ "sha256": "1g53fcy837hpyn9lnmmri0h4c5va61vszhblz4caadqq265hknvs",
+ "fetcher": "github",
+ "repo": "quelpa/quelpa",
+ "unstable": {
+ "version": [
+ 20200617,
+ 2205
+ ],
+ "commit": "f1fc228f217be692eaae2d53f51966ce922d6a32",
+ "sha256": "03h30qcixq54q212381cf7mahi2k9q4590vm44pqy9widpigmxz7"
+ }
+ },
+ {
+ "ename": "quelpa-use-package",
+ "commit": "c599f1254808a9d9bab87c35769052d5df2a01bf",
+ "sha256": "0p09w419kldgl913hgqfzyv2pck27vqq2i1xsx7g29biwgnp9hl9",
+ "fetcher": "github",
+ "repo": "quelpa/quelpa-use-package",
+ "unstable": {
+ "version": [
+ 20200307,
+ 805
+ ],
+ "deps": [
+ "quelpa",
+ "use-package"
+ ],
+ "commit": "00ce667293c7cd5dc79d4b6077785fcc57455775",
+ "sha256": "1xxvfd0ijcz01nsd143xgzsp815x3qpsrk6dmw6j1w3gbr2iqh9z"
+ }
+ },
+ {
+ "ename": "quick-buffer-switch",
+ "commit": "30f167afc241f3ec24c092f2f06dbabd4dd11bcc",
+ "sha256": "1fsnha3x3pgq582libb3dmxb93aagv1avnc0rigpfd7hv6bagj40",
+ "fetcher": "github",
+ "repo": "renard/quick-buffer-switch",
+ "unstable": {
+ "version": [
+ 20200727,
+ 720
+ ],
+ "commit": "ceb5222599b861f9d1133b1509516fcf07a3cd67",
+ "sha256": "09dfw42d5834z8x1c1mri7g61r91i1crr3h6r118nmszhbx9b7iy"
+ }
+ },
+ {
+ "ename": "quick-peek",
+ "commit": "68f59a3048ec6196b138b6584a22ce70baa38284",
+ "sha256": "0ivg6v9c535bw2bv636wmkd4sy037j55054bfm31wvvxk99bndwq",
+ "fetcher": "github",
+ "repo": "cpitclaudel/quick-peek",
+ "unstable": {
+ "version": [
+ 20200130,
+ 2059
+ ],
+ "commit": "03a276086795faad46a142454fc3e28cab058b70",
+ "sha256": "1kzsphzc9n80v6vf00dr2id9qkm78wqa6sb2ncnasgga6qj358ql"
+ }
+ },
+ {
+ "ename": "quick-preview",
+ "commit": "c52a1ea0afa8e5f439b7ac987b79c49eb08fe95a",
+ "sha256": "10k69yiil8i7xvhylrr4rwzqidm3ljm1rdlr6k2r3i9mkiv9pcif",
+ "fetcher": "github",
+ "repo": "emacsattic/quick-preview",
+ "unstable": {
+ "version": [
+ 20191017,
+ 1920
+ ],
+ "commit": "a312ab5539b9a362da9d305e4da814e17c5721c9",
+ "sha256": "07qipy0r0v8y5rm2g1kqqqy81635wbclzvjgq8y9sziwchww2v20"
+ }
+ },
+ {
+ "ename": "quick-shell-keybind",
+ "commit": "e9bf4d78da24d88476545f97b2af0527dde73600",
+ "sha256": "1f66wk2m0yykcbq6qbalgscpq8s53qshyyqdnimlmdi0g0glif1b",
+ "fetcher": "github",
+ "repo": "eyeinsky/quick-shell-keybind",
+ "unstable": {
+ "version": [
+ 20171023,
+ 613
+ ],
+ "commit": "5f4541a5a5554d108bf16b5fd1713e962161ca1b",
+ "sha256": "19hqywwf80q6ay886xmcjjpr4pghkw78hzdg0mrpkpkqn2vj06gk"
+ }
+ },
+ {
+ "ename": "quickref",
+ "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
+ "sha256": "0jahi84ra9g7h0cvz3c02zkbkknrzgv48zq32n72lkxl958swqn1",
+ "fetcher": "github",
+ "repo": "pd/quickref.el",
+ "unstable": {
+ "version": [
+ 20170817,
+ 1232
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "f368c8b8219bb90498c5ab84e26f00eedaa234cf",
+ "sha256": "0nalnfb816qk1dfxjk9j8r5lvzv2k4jf747xdjbj2mcvv07g2jd2"
+ }
+ },
+ {
+ "ename": "quickrun",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "02wxja6l1xq7gini17ana8qy4kvpfzri0gn2dypjnj2nfh1vvk9i",
+ "fetcher": "github",
+ "repo": "emacsorphanage/quickrun",
+ "unstable": {
+ "version": [
+ 20200603,
+ 1902
+ ],
+ "commit": "ce7383c53215077f7e1d258d389cf8731309fbe9",
+ "sha256": "0dscg35hrywn8qr02q46y0cdclyscz6qxa0dqphkx3bv9xvzmqjl"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 0
+ ],
+ "commit": "072ec7be93f31e9dd265fb834cd709d0c0d4a8bb",
+ "sha256": "1zx8hpm5wa9ad675py8676071pip6831d4jy2dqyrlxpfvi6q47l"
+ }
+ },
+ {
+ "ename": "quiet",
+ "commit": "443425d9e4412a1e3e8117f97c255c8420223542",
+ "sha256": "1jq65jpx0rlkc0dzy55gs37ybpjzvcv06ahwiw1lk2n92g4pi96a",
+ "fetcher": "github",
+ "repo": "zzkt/quiet",
+ "unstable": {
+ "version": [
+ 20200211,
+ 721
+ ],
+ "commit": "f8a4ef0be086f97e7fb631df7060f29cc4025b98",
+ "sha256": "01nbxgi1v6kqmcnzfdxxc0cqsswi8h12l98ngdiq6b62mv7cfcrs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "aa3a6e039dbc9437e7dd178a6596d43cf19293eb",
+ "sha256": "0rl3l7wwdfn8bm1a1lajqsxp62xdqn9xihglv8a1ggq3wi40fw61"
+ }
+ },
+ {
+ "ename": "quilt",
+ "commit": "28ad2d71574c1995287371cfd73648871b9271f0",
+ "sha256": "0fgni5khjbxy28i2vdwhcvs0z0yx43ll0c4s8br4w7q9s0nlcvmv",
+ "fetcher": "github",
+ "repo": "jstranik/emacs-quilt",
+ "unstable": {
+ "version": [
+ 20190828,
+ 506
+ ],
+ "commit": "b56a1f1acc46cdf8655710e4c8f24f5f31f22c6a",
+ "sha256": "1fk1cj0bwb4hrfcy868ll4jf3mq9ni0m8srf01dljh436aj2pc7h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "commit": "b56a1f1acc46cdf8655710e4c8f24f5f31f22c6a",
+ "sha256": "1fk1cj0bwb4hrfcy868ll4jf3mq9ni0m8srf01dljh436aj2pc7h"
+ }
+ },
+ {
+ "ename": "quiz",
+ "commit": "23d547c0d69d8f5d1e9983e3669a63dffaede2b3",
+ "sha256": "0pcjfhk109ifi834jw8lndwhpfcv764wym1dhiqhp5qd2vf431kg",
+ "fetcher": "github",
+ "repo": "davep/quiz.el",
+ "unstable": {
+ "version": [
+ 20190525,
+ 1206
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "570bf53926d89282cdb9653bd5aa8fe968f92bbd",
+ "sha256": "1f752fsrk7z8q2dd40r46hzhhf1kyj0vid9g0vv5dkkzmabms59q"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "570bf53926d89282cdb9653bd5aa8fe968f92bbd",
+ "sha256": "1f752fsrk7z8q2dd40r46hzhhf1kyj0vid9g0vv5dkkzmabms59q"
+ }
+ },
+ {
+ "ename": "r-autoyas",
+ "commit": "3a095d3a687055c6ac43a4338826542d14a25127",
+ "sha256": "18zifadsgbwnga205jvpx61wa2dvjxmxs5v7cjqhny45a524nbv4",
+ "fetcher": "github",
+ "repo": "mattfidler/r-autoyas.el",
+ "unstable": {
+ "version": [
+ 20140101,
+ 1510
+ ],
+ "deps": [
+ "ess",
+ "yasnippet"
+ ],
+ "commit": "b4020ee7f5f895e0065b8b26da8a49c51432d530",
+ "sha256": "0dhljmdlg4p832w9s7rp8vznkpjkwpg8k9hj95cn2h76c0afwz3j"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 28
+ ],
+ "commit": "563254f01ce530ca4c9be1f23395e3fd7d520ff9",
+ "sha256": "02bddznlqys37fnhdpp2g9xa9m7kfgrj1vl0hc5kr42hggk9wwmg"
+ }
+ },
+ {
+ "ename": "racer",
+ "commit": "97b97037c19655a3ddffee9a86359961f26c155c",
+ "sha256": "1091y5pisbf73i6zg5d7yny2d5yckkjg0z6fpjpmz5qjs3xcm9wi",
+ "fetcher": "github",
+ "repo": "racer-rust/emacs-racer",
+ "unstable": {
+ "version": [
+ 20191001,
+ 2344
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "pos-tip",
+ "rust-mode",
+ "s"
+ ],
+ "commit": "a0bdf778f01e8c4b8a92591447257422ac0b455b",
+ "sha256": "1dzp2l6lcdrcss5xp32yvil4c1din09awnxg0f71fls6kh2g2fcq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "rust-mode",
+ "s"
+ ],
+ "commit": "8ad54e7674e49735390d63e3aea828a4d4bcddd0",
+ "sha256": "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"
+ }
+ },
+ {
+ "ename": "racket-mode",
+ "commit": "9af8dea03aba378f21c6109faf48278b4d2bf59f",
+ "sha256": "0cmlz314w5227br0vns5d7jhpspv1byzalgzv8f9v2qjyvk6jvsn",
+ "fetcher": "github",
+ "repo": "greghendershott/racket-mode",
+ "unstable": {
+ "version": [
+ 20200810,
+ 1513
+ ],
+ "deps": [
+ "faceup",
+ "pos-tip"
+ ],
+ "commit": "c55fd70c5e9a371f262486f7d5d8837481388b95",
+ "sha256": "13ngnm22h5rzmm9pvgbw9nidv8jkkcsckbypi2mn1k8j8wfjypx0"
+ }
+ },
+ {
+ "ename": "rails-log-mode",
+ "commit": "7ebbf4364759c8e38d550e66fd0ce193f4214e15",
+ "sha256": "0h7gfg0c5pwfh18qzg1mx7an9p958ygdfqb54s85mbkv8x3rh1a0",
+ "fetcher": "github",
+ "repo": "ananthakumaran/rails-log-mode",
+ "unstable": {
+ "version": [
+ 20140408,
+ 425
+ ],
+ "commit": "ff440003ad7d47cb0ac3300f2a632f4cfd36a446",
+ "sha256": "1fh8wsb0pa2isr1kgh3v9zmmxq1nlmqwqk4z34dw5wpaiyihmk84"
+ }
+ },
+ {
+ "ename": "railscasts-reloaded-theme",
+ "commit": "9817851bd06cbae30fb8f429401f1bbc0dc7be09",
+ "sha256": "1iy30mnm3s7p7qigrm3lvv7xjgwvinwg6yg0hry2aifwn88cnwmz",
+ "fetcher": "github",
+ "repo": "thegeorgeous/railscasts-reloaded-theme",
+ "unstable": {
+ "version": [
+ 20190308,
+ 759
+ ],
+ "commit": "c6a1cf13a164f22b026b0959527c3b98c2b1aa49",
+ "sha256": "00clkjrp2nfchhznilxjb56bcdv1an50cawnz6747ck22x0ycbfn"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "commit": "ae77bc04fe5a948f418ec8693f6ff2c9ea757c50",
+ "sha256": "1vn9cw343w9vvxhzqi85vyqnj6kxcv99qvva4xjvy1sf65i24wy4"
+ }
+ },
+ {
+ "ename": "railscasts-theme",
+ "commit": "a0366a9844f6c28dfc3d5ba26201865921981574",
+ "sha256": "1z5m8ccx2k18gbzqvg0051mp2myy2qncf4xvv47k80f83pk2hw6r",
+ "fetcher": "github",
+ "repo": "mikenichols/railscasts-theme",
+ "unstable": {
+ "version": [
+ 20150219,
+ 1525
+ ],
+ "commit": "1340c3f6c2717761cab95617cf8dcbd962b1095b",
+ "sha256": "021x1l5kzsbm0qj5a3bngxa7ickm4lbwsdz81a2ks9pi1ivmw205"
+ }
+ },
+ {
+ "ename": "rainbow-blocks",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1zf1z1hnp8q0s9za7nnpq83isbpmz26l8hxafz0h0b5dz1w2vlvs",
+ "fetcher": "github",
+ "repo": "istib/rainbow-blocks",
+ "unstable": {
+ "version": [
+ 20171025,
+ 1438
+ ],
+ "commit": "dd435d7bb34ff6f162a5f315df308b90b7e9f842",
+ "sha256": "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "8335993563aadd4290c5fa09dd7a6a81691b0690",
+ "sha256": "02x5ciyafqwak06yk813kl8p92hq03wjsk1882q8axr9q231100c"
+ }
+ },
+ {
+ "ename": "rainbow-delimiters",
+ "commit": "d2cf11dbff76f0e3581b865f48bb44a307aa7f23",
+ "sha256": "132nslbnszvbgkl0819z811yar3lms1hp5na4ybi9gkmnb7bg4rg",
+ "fetcher": "github",
+ "repo": "Fanael/rainbow-delimiters",
+ "unstable": {
+ "version": [
+ 20191018,
+ 1233
+ ],
+ "commit": "5125f4e47604ad36c3eb4706310fcafac729ca8c",
+ "sha256": "1jh1gv69cjlrjkmjrkhgc7jffyxlkq9nci5ag4z1alskfp6favir"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 4
+ ],
+ "commit": "455bcee19c92bf85db0ba7e926f0b5a176b69865",
+ "sha256": "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"
+ }
+ },
+ {
+ "ename": "rainbow-fart",
+ "commit": "cdcc8091357c42f5edbc1a13886253130f104242",
+ "sha256": "0zi1r8bgzd3g1dvginlp5nywyjk3lh495j6j3girgjqhsblnhfrx",
+ "fetcher": "github",
+ "repo": "stardiviner/emacs-rainbow-fart",
+ "unstable": {
+ "version": [
+ 20200718,
+ 437
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "16759a0aa1b39c43cdedcf6a6c9a5dc3c3895fd2",
+ "sha256": "14dh7bd40jc6vl6933575jivgmm3h6frphmwxspijb7c8pj1wfmv"
+ }
+ },
+ {
+ "ename": "rainbow-identifiers",
+ "commit": "975aadd9fe1faf9ad617ba6200ca77185b87e7c0",
+ "sha256": "0lw790ymrgpyh0sxwmzinl2ik5vl5vggbg14cd0cx5yagkw5y3mp",
+ "fetcher": "github",
+ "repo": "Fanael/rainbow-identifiers",
+ "unstable": {
+ "version": [
+ 20141102,
+ 1526
+ ],
+ "commit": "19fbfded1baa98d12335f26f6d7b20e5ae44ce2e",
+ "sha256": "05i0jpmxzsj2lsj48cafn3v93z37l7k5kaza2ik3yirdpjdibyrh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "commit": "19fbfded1baa98d12335f26f6d7b20e5ae44ce2e",
+ "sha256": "05i0jpmxzsj2lsj48cafn3v93z37l7k5kaza2ik3yirdpjdibyrh"
+ }
+ },
+ {
+ "ename": "rake",
+ "commit": "bf0f84698dda02a5b84a244ee29a23a6faa9de68",
+ "sha256": "0cw47g6cjnkh3z4hbwwq1f8f5vrvs84spn06k53bx898brqdh8ns",
+ "fetcher": "github",
+ "repo": "asok/rake",
+ "unstable": {
+ "version": [
+ 20180212,
+ 1008
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f"
+ ],
+ "commit": "9c204334b03b4e899fadae6e59c20cf105404128",
+ "sha256": "09k2fqkmqr6g19rvqr5x2kpj1cn3wkncxg50hz02vmsrbgmzmnja"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f"
+ ],
+ "commit": "e680f1a8f2591af7c80cad188340601b101b5ddc",
+ "sha256": "1dk2clsnmjy3bfv6laxf8sslvdajjbwpk83ss8v9xm55dcxjvd7n"
+ }
+ },
+ {
+ "ename": "raku-mode",
+ "commit": "e9831cc66d9a9e6b6441e6a75d54ce57146571fd",
+ "sha256": "08c9mgvmcnhn2q1ldqsaabj623b9kxd7blgfjabbwrl7bqkqpwzp",
+ "fetcher": "github",
+ "repo": "Raku/raku-mode",
+ "unstable": {
+ "version": [
+ 20200524,
+ 1625
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "e0639c89a3a29e9196e298951da6c3a79fb944e8",
+ "sha256": "02zn1sm86srwdzdkhw53ll0h41a9hwh6c8lan72530zysjrm4x1i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "pkg-info"
+ ],
+ "commit": "e0639c89a3a29e9196e298951da6c3a79fb944e8",
+ "sha256": "02zn1sm86srwdzdkhw53ll0h41a9hwh6c8lan72530zysjrm4x1i"
+ }
+ },
+ {
+ "ename": "rally-mode",
+ "commit": "0914825c6d5ad26d2a8035fc33ad98df42df3c53",
+ "sha256": "1vzsh5855bzln3p3235yccl2azpndpc4rh95zrx6p1k62h2kv0y1",
+ "fetcher": "github",
+ "repo": "seanleblanc/rally-mode",
+ "unstable": {
+ "version": [
+ 20161114,
+ 354
+ ],
+ "deps": [
+ "popwin"
+ ],
+ "commit": "0f5e09a6abe2de7613f174b4f54863df93343134",
+ "sha256": "1vrsv8ph1v853ii0i3q889xlwxnjdqz4bs3ipi502rjx6g7y5gdz"
+ }
+ },
+ {
+ "ename": "rand-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0c2xs99jgrhk6f1s6pls8pigg6qwcr4imnwdlngwzr0jz8jhqvxa",
+ "fetcher": "github",
+ "repo": "gopar/rand-theme",
+ "unstable": {
+ "version": [
+ 20151219,
+ 2335
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "65a00e5c5150f857aa96803b68f50bc8da0215b7",
+ "sha256": "0fmajgqf9j21qn7h35sky5di8cnma432g0ki9d5m41byxp9y1bdl"
+ }
+ },
+ {
+ "ename": "random-splash-image",
+ "commit": "2bfbfe83143299b86f867c4d7faf6a0d7a070e1e",
+ "sha256": "1j454jy4ia2wrgi3fxzjfdqi3z8x13hq8kh62lnb84whs7a1nhik",
+ "fetcher": "github",
+ "repo": "kakakaya/random-splash-image",
+ "unstable": {
+ "version": [
+ 20151003,
+ 130
+ ],
+ "commit": "53a39ebfd8ac6be066a652a508a717870f94218a",
+ "sha256": "1mky9xhghzz34sswqm2v3jhfc25fdrjx4hh4a1hs4h45g1v58lm9"
+ }
+ },
+ {
+ "ename": "ranger",
+ "commit": "0207e754f424823fb48e9c065c3ed9112a0c445b",
+ "sha256": "14g4r4iaz0nzfsklslrswsik670pvfd0605xfjghvpngn2a8ych4",
+ "fetcher": "github",
+ "repo": "ralesi/ranger.el",
+ "unstable": {
+ "version": [
+ 20200607,
+ 2002
+ ],
+ "commit": "d7c18370981c9e585bc0fb78f7e55033457ca643",
+ "sha256": "0xfg38ginrd0sdn194gpapi67q6i81csddgsf0rqmwihazpgs060"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 8,
+ 5
+ ],
+ "commit": "584e4ae8cce1c54a44b40dd4c77fbb2f06d73ecb",
+ "sha256": "01rphv92g1r0cw5bwkbrh02s0na7fjrddxx1dckk2y7qr97s7l8j"
+ }
+ },
+ {
+ "ename": "rase",
+ "commit": "334419debe065c34665bb0207574d1d4dfb9e8ae",
+ "sha256": "1g7v2z7l4csl5by64hc3zg4kgrkvv81iq30mfqq4nvy1jc0xa6j0",
+ "fetcher": "github",
+ "repo": "m00natic/rase",
+ "unstable": {
+ "version": [
+ 20120928,
+ 2045
+ ],
+ "commit": "59b5f7e8102570b65040e8d55781c7ea28de7338",
+ "sha256": "1i16361klpdsxphcjdpxqswab3ing69j1wb9nygws7ghil85h0bx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "59b5f7e8102570b65040e8d55781c7ea28de7338",
+ "sha256": "1i16361klpdsxphcjdpxqswab3ing69j1wb9nygws7ghil85h0bx"
+ }
+ },
+ {
+ "ename": "rats",
+ "commit": "a62cbae1b2d9af2322bb6a27949de8c8bfddc2b7",
+ "sha256": "0jhwiq9yzwpyqhk3c32vqx8nryingzh58psxbzjl3812b7xdqphr",
+ "fetcher": "github",
+ "repo": "ane/rats.el",
+ "unstable": {
+ "version": [
+ 20170818,
+ 1013
+ ],
+ "deps": [
+ "cl-lib",
+ "go-mode",
+ "s"
+ ],
+ "commit": "a6d55aebcc54f669c6c6ffedf84364c4097903cc",
+ "sha256": "0cskw05jb7wckhfs2qs9pn5icxa93ay2mw2i1brsmdd0igz34lg3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "go-mode",
+ "s"
+ ],
+ "commit": "8ad4023a4b9b00c1224b10b0060f6dc60b4814a4",
+ "sha256": "0rwgwz1x9w447y8mxy9hrx1rzi3ac9dwk2y5yg1p08z5b7dy6vcz"
+ }
+ },
+ {
+ "ename": "rbenv",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1skh1v8dgwl1f9m3pmy2s3rnzp8n3cydi3579fgjv4mzi81k3d5q",
+ "fetcher": "github",
+ "repo": "senny/rbenv.el",
+ "unstable": {
+ "version": [
+ 20141120,
+ 749
+ ],
+ "commit": "2ea1a5bdc1266caef1dd77700f2c8f42429b03f1",
+ "sha256": "0yd0rs6fnc6lsfi7pivw5sivh698055r8ifj9vrxb82dcx2y6v2h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "a613ee1941efa48ef5321bad39ac1ed8ad1540b8",
+ "sha256": "09c6v4lnv6vm2cckbdpx2fdi9xkz9l68qvhx35vaawxhrkgvypzp"
+ }
+ },
+ {
+ "ename": "rbt",
+ "commit": "ca7241985be1e8a26a454b8136a537040b7ae801",
+ "sha256": "1mrb6v8zybvhh242vvq0kdvg6cvws7gabfhcydrw5g2njhyqkygm",
+ "fetcher": "github",
+ "repo": "joeheyming/rbt.el",
+ "unstable": {
+ "version": [
+ 20170202,
+ 2302
+ ],
+ "deps": [
+ "magit",
+ "popup"
+ ],
+ "commit": "32bfba9062a014e375451cf4203c29535b5efc1e",
+ "sha256": "0jzhyf42m9gqcnsz9gxc9wk8bbb9a7fj78swwyj0wqn9jm8jxbra"
+ }
+ },
+ {
+ "ename": "rbtagger",
+ "commit": "2365f30d641474e121d64729e5f57641bbb44d17",
+ "sha256": "03f34vb6rks67mgxn0yk2imfsn9fsshi2j3fv4zilb4dav778n4y",
+ "fetcher": "github",
+ "repo": "thiagoa/rbtagger",
+ "unstable": {
+ "version": [
+ 20200714,
+ 1658
+ ],
+ "commit": "b3333b9dc9ffdaf5dfb2ea6ef2dd0f74e2f0f03f",
+ "sha256": "04zccf9bis259c13nzljfjajjgkrhhbb3b2v6q6q12c30ikj5b09"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "commit": "b3333b9dc9ffdaf5dfb2ea6ef2dd0f74e2f0f03f",
+ "sha256": "04zccf9bis259c13nzljfjajjgkrhhbb3b2v6q6q12c30ikj5b09"
+ }
+ },
+ {
+ "ename": "rc-mode",
+ "commit": "d8062b2e5b2744a6e614b389cca7e7f21b582f6f",
+ "sha256": "0p77mckw8jyxcwspj1ffm8mz0k01ddm67hh9j8rw812wddwnj7qf",
+ "fetcher": "github",
+ "repo": "mrhmouse/rc-mode.el",
+ "unstable": {
+ "version": [
+ 20160913,
+ 1918
+ ],
+ "commit": "fe2e0570bf9c19a292e16b18fd4b0a256df5d93f",
+ "sha256": "0skjg3l3ss8nlrpnpjjflmf7wjib4jfarkmx4438nc6vm6553fmn"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 13
+ ],
+ "commit": "fe2e0570bf9c19a292e16b18fd4b0a256df5d93f",
+ "sha256": "0skjg3l3ss8nlrpnpjjflmf7wjib4jfarkmx4438nc6vm6553fmn"
+ }
+ },
+ {
+ "ename": "rcirc-alert",
+ "commit": "735aa2256660efffdaf6ecbd61a3e2818a48327f",
+ "sha256": "0lyd3gz1sflp93xb7xbvk1gh69w468ync1p144avyh2pybl40q4a",
+ "fetcher": "github",
+ "repo": "csantosb/rcirc-alert",
+ "unstable": {
+ "version": [
+ 20141127,
+ 1047
+ ],
+ "commit": "0adf8ff9c47023fec578f678424be62b0f49057f",
+ "sha256": "0xdyrp0zs2v2glpfwlajmj97wygwi0y492zbp6rp3caa5bj3j4z2"
+ }
+ },
+ {
+ "ename": "rcirc-alertify",
+ "commit": "d1559b0e19e571c83c25ac7104e269ebc42d8f14",
+ "sha256": "13448bykmy0jqcajhn2gjiar3m8cingyr8394vxybp2m1zvv0pws",
+ "fetcher": "github",
+ "repo": "fgallina/rcirc-alertify",
+ "unstable": {
+ "version": [
+ 20140407,
+ 119
+ ],
+ "deps": [
+ "alert"
+ ],
+ "commit": "ea5cafc55893f375eccbe013d12dbaa94bf6e259",
+ "sha256": "1mpk5rzsil298q3ppv5v9jrn274v71jffyz0jihrksh1wbjzwhlx"
+ }
+ },
+ {
+ "ename": "rcirc-groups",
+ "commit": "35b9c9e877c686df0ac9f96855d733a240063829",
+ "sha256": "1iws3f8vkwrflcj6ni8nmf1wcw1jrlnssm76kzzhag77ry3iswgx",
+ "fetcher": "github",
+ "repo": "dimitri/rcirc-groups",
+ "unstable": {
+ "version": [
+ 20170731,
+ 2101
+ ],
+ "commit": "b68ece9d219b909244d4e3c0d8bf6a746d6fead7",
+ "sha256": "196x3qg22rhh917diml1q0hszqrqwg0klzp96q1c7c744mlq82fx"
+ }
+ },
+ {
+ "ename": "rcirc-notify",
+ "commit": "009e2db47c9fe730fff1dc807e52c86b3ab26446",
+ "sha256": "0mwhzkbzhpq4jws05p7qp0kbay8kcblb9xikznm0i8drpdyc617v",
+ "fetcher": "github",
+ "repo": "nicferrier/rcirc-notify",
+ "unstable": {
+ "version": [
+ 20150219,
+ 2204
+ ],
+ "commit": "841a7b5a6cdb0c11a812df924d2c6a7d364fd455",
+ "sha256": "1k4knsrca626pikgaalqbqwy7im4wz1vrmzzhdrdb4lhdz6sq3q3"
+ }
+ },
+ {
+ "ename": "rcirc-styles",
+ "commit": "10771a996c8a9dc1eb211cddff53db7b2b01e00b",
+ "sha256": "01dxhnzsnljig769dk9axdi970b3lw2s6p1z3ljf29qlb5j4548r",
+ "fetcher": "github",
+ "repo": "aaron-em/rcirc-styles.el",
+ "unstable": {
+ "version": [
+ 20160207,
+ 250
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f313bf6a7470bed314b27c7a40558cb787d7bc67",
+ "sha256": "1kwn33rxaqik5jls66c2indvswhwmxdmd60n7a1h9siqm5qhy9d6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f313bf6a7470bed314b27c7a40558cb787d7bc67",
+ "sha256": "1kwn33rxaqik5jls66c2indvswhwmxdmd60n7a1h9siqm5qhy9d6"
+ }
+ },
+ {
+ "ename": "rdf-prefix",
+ "commit": "a5f083bd629697038ea6391c7a4eeedc909a5231",
+ "sha256": "1vxgn5f2kws17ndfdv1vj5p9ks3rp6sikzpc258j07bhsfpjz5qm",
+ "fetcher": "github",
+ "repo": "simenheg/rdf-prefix",
+ "unstable": {
+ "version": [
+ 20200216,
+ 914
+ ],
+ "commit": "825af2c584fbad9e67c2c08e29040776fa647fe0",
+ "sha256": "0ky81w36dn6c69x4v4b46j8ixqqws9dc8adi4q19149xkiijx1kl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 12
+ ],
+ "commit": "825af2c584fbad9e67c2c08e29040776fa647fe0",
+ "sha256": "0ky81w36dn6c69x4v4b46j8ixqqws9dc8adi4q19149xkiijx1kl"
+ }
+ },
+ {
+ "ename": "rdp",
+ "commit": "e2dd8ef80d344c9801f7d0a26b0e3ea33a53bf89",
+ "sha256": "0lj3idwv4fxz8pi8mnxkbhwhzaa1gs6ib4nzly3fc6yiix9ampkz",
+ "fetcher": "github",
+ "repo": "skeeto/rdp",
+ "unstable": {
+ "version": [
+ 20120929,
+ 154
+ ],
+ "commit": "b620192afada04aec33b38cc130fef0765f41ca9",
+ "sha256": "08l96bhghmnckar4i6afj9csqglasmpmby1r7j38ic9bp37z2yqd"
+ }
+ },
+ {
+ "ename": "rdxmk",
+ "commit": "db54339795e0519f154328e54d47a7a0c80afc71",
+ "sha256": "14iavsgqp28y2ykgly8x69sny34r32dl4bpb47m921vk5n4y6zky",
+ "fetcher": "github",
+ "repo": "jsalzbergedu/rdxmk",
+ "unstable": {
+ "version": [
+ 20170630,
+ 134
+ ],
+ "commit": "e78749fb29738365ffa4d863ffabeb969ebb0bcf",
+ "sha256": "0gwlqjk84ih89c2ckx0rrw07jgwd32wfwj4mibchdrn0ai891md0"
+ }
+ },
+ {
+ "ename": "react-snippets",
+ "commit": "3720192fdfa45f9b83259ab39356f469c5ac85b4",
+ "sha256": "0chs0h41nb2fdz02hdsaynz7ma8fg66a8m1q1np0464skrsdaj73",
+ "fetcher": "github",
+ "repo": "johnmastro/react-snippets.el",
+ "unstable": {
+ "version": [
+ 20181002,
+ 1046
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "87ccb640d265fe799583ab55605b84d113223694",
+ "sha256": "0zs78mn37ngy86blmp2xfy7jr5p0s6r0qq6z3z924amrhy5bwdqc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "bfc4b68b81374a6a080240592641091a7e8a6d61",
+ "sha256": "1wna4v8l3j0ppjv4nj72lhp0yh6vbka6bvl1paqqfvay300kiqjb"
+ }
+ },
+ {
+ "ename": "read-aloud",
+ "commit": "20452bf3112276a7e1c880bfab259150fc70b47a",
+ "sha256": "01fd87k50x71w8qypbi7llgyc1xnmyxifxh4ni9pgbx2ryn72lzv",
+ "fetcher": "github",
+ "repo": "gromnitsky/read-aloud.el",
+ "unstable": {
+ "version": [
+ 20160923,
+ 500
+ ],
+ "commit": "c662366226abfb07204ab442b4f853ed85438d8a",
+ "sha256": "0wmfjbk3s45wj8j6xwfdldxwkrxsfcby2a242r2p88y3f8pp30i1"
+ }
+ },
+ {
+ "ename": "readline-complete",
+ "commit": "0cf3b56dae7669b34df9d2abe2d78164cbf064c9",
+ "sha256": "1qymk5ypv6ljk8x49z4jcifz7c2dqcg5181f4hqh67g1byvj2277",
+ "fetcher": "github",
+ "repo": "monsanto/readline-complete.el",
+ "unstable": {
+ "version": [
+ 20150708,
+ 1437
+ ],
+ "commit": "30c020c37b2741160cc37e656e13c85d826a0ebf",
+ "sha256": "1j5b5xapflwzh8a297gva0l12ralwa9vl5z3bb75c9ksjkhi4nm6"
+ }
+ },
+ {
+ "ename": "real-auto-save",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1li0b2d93ffxjq4jdyzyvjdy5h7q5xllys0w4748d2bhr8q35p3w",
+ "fetcher": "github",
+ "repo": "ChillarAnand/real-auto-save",
+ "unstable": {
+ "version": [
+ 20200505,
+ 1537
+ ],
+ "commit": "481a2d1460ab5a9b6df3721dda76ad515923bfd1",
+ "sha256": "1f1sqbqc0ckp7850ahvy0syky7lplwhb05r3cw4fdmz2xbywwg52"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "879144ca7e9bfa09a4fb57d5fe92a80250311f1e",
+ "sha256": "1ka5q2q18hgh7wl5yn04489121bq4nx369rz8nb7dr5l14cas0xm"
+ }
+ },
+ {
+ "ename": "realgud",
+ "commit": "fd34d2accd92d1473b743e2eee1309d329209cd0",
+ "sha256": "063bqpq05l29cvapp4xnvgbdx6l4p0ax83hhz4dv4cqbh1mi68b0",
+ "fetcher": "github",
+ "repo": "realgud/realgud",
+ "unstable": {
+ "version": [
+ 20200809,
+ 2221
+ ],
+ "deps": [
+ "load-relative",
+ "loc-changes",
+ "test-simple"
+ ],
+ "commit": "332d13673074bee252ae7819b0898ee7c7895d2e",
+ "sha256": "0cnnhxgyrjvr75pin7kis5qzd54hh0qscbnvvm8jflmljzca77lz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 1
+ ],
+ "deps": [
+ "load-relative",
+ "loc-changes",
+ "test-simple"
+ ],
+ "commit": "53938f04d5252677484e5c48513e1c138aafc756",
+ "sha256": "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"
+ }
+ },
+ {
+ "ename": "realgud-byebug",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "1akv9raa6yb5h4lsvz7mxlnd9l7adg2rpgw7ski6036n6facn18a",
+ "fetcher": "github",
+ "repo": "realgud/realgud-byebug",
+ "unstable": {
+ "version": [
+ 20190520,
+ 1140
+ ],
+ "deps": [
+ "cl-lib",
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "f8f20b92c6b13f75cc9797921c0e28d3def48b1c",
+ "sha256": "1f6g5ajimha2n45dykc2vrpdd25ylwrn98fijj3i9m8n0f7jyjrn"
+ }
+ },
+ {
+ "ename": "realgud-ipdb",
+ "commit": "c8182de5fceca3fc517a21abdb8d6e9c860e041b",
+ "sha256": "134b1n2fci0z85cyvqjq3i5wb3pm110src87la6kq2pin1nrdkcm",
+ "fetcher": "github",
+ "repo": "realgud/realgud-ipdb",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1116
+ ],
+ "deps": [
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "f18f907aa4ddd3e59dc19ca296d4ee2dc5e436b0",
+ "sha256": "196zy8xmqkm6nc7074gsy4ymm6h4ikbd01f41karys7dwib3gg5i"
+ }
+ },
+ {
+ "ename": "realgud-jdb",
+ "commit": "4f03a731e4fbf2099b1ba0902ef514fd8c930d30",
+ "sha256": "02vlzv8lvm4vcw5c3ajn8lb499jdsrlg92kwib1hjwb2smjkb6ba",
+ "fetcher": "github",
+ "repo": "realgud/realgud-jdb",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1120
+ ],
+ "deps": [
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "1c183b2f8aae0de60942ea01444b896bf182c66a",
+ "sha256": "1i80llf9bncd5hkrk0wj3xswd36q1rkv5gaqgfqq4r1f8dkrhrz1"
+ }
+ },
+ {
+ "ename": "realgud-lldb",
+ "commit": "e7e40b575cc22fa7b4773cf617862495e93565e4",
+ "sha256": "1l43h14a42cpgjcmbhk9vkk87z4ap9rdz7jrz8id666qxbza5xzg",
+ "fetcher": "github",
+ "repo": "realgud/realgud-lldb",
+ "unstable": {
+ "version": [
+ 20190912,
+ 1335
+ ],
+ "deps": [
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "47cb0178fdde50a9d9151ab45806b41007cd758a",
+ "sha256": "11vaiq7c4iaypsgs4x4sdfycjailba36qh0pwgdprmiyf8swy8hq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "f2f77d6ddfa42430ead400eaf81c605c3a04dead",
+ "sha256": "0n8nagjhgyg2l0qymx4rjzigxnhhks86s8flpndsfyhzh98b8qbm"
+ }
+ },
+ {
+ "ename": "realgud-node-debug",
+ "commit": "50a3644b62f61622169c1aa109db80b1f53d3d8a",
+ "sha256": "0mw2sl9g8j08v40g5x2ai52i5ljvbxvcq37jwaz7vwdkafpnfyis",
+ "fetcher": "github",
+ "repo": "realgud/realgud-node-debug",
+ "unstable": {
+ "version": [
+ 20190525,
+ 1634
+ ],
+ "deps": [
+ "cl-lib",
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "72e786359ce9dace1796b0d81a00e9340e9c90ad",
+ "sha256": "1zn465bikzv1aizjjcnzsx105pdwwarqmd1fij82rhrspc8p8zis"
+ }
+ },
+ {
+ "ename": "realgud-node-inspect",
+ "commit": "88388c61c0402534ccf9751b3cec318b62d72655",
+ "sha256": "1mfhvhww0w7mksfmgfjd2s8wa10k7q2sqm6s55nm71jyx5h48k07",
+ "fetcher": "github",
+ "repo": "realgud/realgud-node-inspect",
+ "unstable": {
+ "version": [
+ 20190523,
+ 1251
+ ],
+ "deps": [
+ "cl-lib",
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "c3ed48cf3bc2b28f9fd23bcf60ea13a3cf019fc8",
+ "sha256": "00ywz4kp90wkfi1ncn9zj6vjw9igiv34gvx6fqfi8ha3q5xljzps"
+ }
+ },
+ {
+ "ename": "realgud-old-debuggers",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "14kig9yxss9nfc0cc54ph80pbdrmh1mdazypiwxbnj2nk1dk3qsv",
+ "fetcher": "github",
+ "repo": "realgud/realgud-old-debuggers",
+ "unstable": {
+ "version": [
+ 20190520,
+ 1150
+ ],
+ "deps": [
+ "cl-lib",
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "0fad38283e885c452160232e01adf3f6ae51983b",
+ "sha256": "01x819j80yc5ybwaz5xglibv88r2aah5gqxwi1q9azd6f70zanvi"
+ }
+ },
+ {
+ "ename": "realgud-pry",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "1f8qap30r26gg33i76474zk6fs3r9qjf7jrxpm4xwpbjraggqy3z",
+ "fetcher": "github",
+ "repo": "realgud/realgud-pry",
+ "unstable": {
+ "version": [
+ 20200620,
+ 1006
+ ],
+ "deps": [
+ "cl-lib",
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "7b502b9e802b8594c90da329b9716bcfd2c981b1",
+ "sha256": "1rwqzpcdapfdlf6hvypi16w6z13r1fhv91arbr34jzfzbsnk7sb1"
+ }
+ },
+ {
+ "ename": "realgud-rdb2",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "16pk034g26xnbsz0w9z8p76jiaraz8lvbf5hf0mmg1f5f4xlinz7",
+ "fetcher": "github",
+ "repo": "realgud/realgud-ruby-debugger2",
+ "unstable": {
+ "version": [
+ 20190520,
+ 1146
+ ],
+ "deps": [
+ "cl-lib",
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "3594aa74f7afda3c3251bb2af7fe0e8ec6d621ae",
+ "sha256": "1nalr0yd1wvqdf81nidxmh9fr3ncqdjb706p6832fsmbpk7r9haw"
+ }
+ },
+ {
+ "ename": "realgud-trepan-ni",
+ "commit": "2464e03d11cd660c3c9c760e16b90911151cf184",
+ "sha256": "1p7sn1swmdyyzaaa5xza70md4pl2p15swyh7y3fbmpp35nabv9zi",
+ "fetcher": "github",
+ "repo": "realgud/realgud-trepan-ni",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1118
+ ],
+ "deps": [
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "6e38cf838c7b47b5f1353d00901b939ffa36d707",
+ "sha256": "0qwzvaarl2vr6ca0kd9k195f5nbnkdjsrwrkhxggjqsk7v1hq6x2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "load-relative",
+ "realgud"
+ ],
+ "commit": "ce008862ea33de0a9e6c06099b9ddff8f620f2e4",
+ "sha256": "14sd9d0jzr0iiy4hzssabp08wifbnb4hh6xs5b2v8ch348kcwpwv"
+ }
+ },
+ {
+ "ename": "reaper",
+ "commit": "034737d27ad4305b526210e82fe320db4f72a84c",
+ "sha256": "0yr1nb550903g0i2x7arw155v0x5vi4hbdniddwaxa4v9712gphj",
+ "fetcher": "github",
+ "repo": "xendk/reaper",
+ "unstable": {
+ "version": [
+ 20200420,
+ 1703
+ ],
+ "commit": "c594d2fb9a027f360e98539a1debf5db639846b7",
+ "sha256": "0md3aqzy8rgvpafh6f8f2dwwrc43q317bk7p1whghfvji52aindv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "1c58c96380b8dc31002bbc87100c3faecfa01f1b",
+ "sha256": "08yfwxpqsr0qvy8bhj650n2yd2dxs2miciszngbnplrkkvdy0v7g"
+ }
+ },
+ {
+ "ename": "reason-mode",
+ "commit": "f9f1a18c13601f3a4fd7b1bbfe7d5da07746e492",
+ "sha256": "07sirgj8bs9yv7pbx1lahwslvjd2aadkzkz7lsyw6xflj5fxpggr",
+ "fetcher": "github",
+ "repo": "reasonml-editor/reason-mode",
+ "unstable": {
+ "version": [
+ 20190710,
+ 1037
+ ],
+ "commit": "7cf6fbf4e8e86ebb76d118b2703e20b968e030d4",
+ "sha256": "0b8p7lh0ifrw9rqvv15q3ib206d1wfv3xafpqwc70zzwaxswvk06"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "6b53815a0405be1f364a082d22fe5c900409a01a",
+ "sha256": "1433bgakbfyf5d5vq69rwj4zg1h0xwjy9qsryvd9r1ssax2hzi7r"
+ }
+ },
+ {
+ "ename": "reazon",
+ "commit": "77020b6ea36a4115bdddbc9599fe4f4193ecc29d",
+ "sha256": "1lymdc1lnwr7s8s15mnjcavxdyqncy2rkfdj571lf1a37y52jcj1",
+ "fetcher": "github",
+ "repo": "nickdrozd/reazon",
+ "unstable": {
+ "version": [
+ 20180921,
+ 1437
+ ],
+ "commit": "020be6467a83957adcbdcb192b61f2c76a94079b",
+ "sha256": "18la2g0srybr10vm1dajgbxi67j1l0cs08mr696hxb6m558yxdv5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "020be6467a83957adcbdcb192b61f2c76a94079b",
+ "sha256": "18la2g0srybr10vm1dajgbxi67j1l0cs08mr696hxb6m558yxdv5"
+ }
+ },
+ {
+ "ename": "rebecca-theme",
+ "commit": "19f40f30113c7dabd76a2d0e52898e6d6be69a35",
+ "sha256": "1m72jqyqx18i1vpj07v3vkbi0di9dks5sz46wb2h0f23xqyx00md",
+ "fetcher": "github",
+ "repo": "vic/rebecca-theme",
+ "unstable": {
+ "version": [
+ 20180324,
+ 821
+ ],
+ "commit": "9ac0c71c2858b76dc5499f62c7c7fb7f9e8f16bc",
+ "sha256": "0a0qf118gj2fag3j57zmli47939rn1jayvs2fwa4l280ipfvp2m7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 1
+ ],
+ "commit": "239115183e0a354ccd5c2cb299893b558fbde05c",
+ "sha256": "0n6xf9s39frnyvchk40zzxbkn0hyga5ridkxbf50n7hr5j19yrmb"
+ }
+ },
+ {
+ "ename": "rebox2",
+ "commit": "fc9132290886694bd551681e32af26e9f4ebae57",
+ "sha256": "06ra50afjqac9ck1s9gaxy0sqxcb612wzd28s4q4imicqpgfxzjw",
+ "fetcher": "github",
+ "repo": "lewang/rebox2",
+ "unstable": {
+ "version": [
+ 20121113,
+ 1300
+ ],
+ "commit": "00634eca420cc48657b81e40e599ff8548083985",
+ "sha256": "1xh9nxqfg9abcl41ni69rnwjfgyfr0pbl55dzyxsbh6sb36r3h8z"
+ }
+ },
+ {
+ "ename": "recentf-ext",
+ "commit": "ad10a684b4b2f01bc65883374f36fef156ff55d2",
+ "sha256": "122kns45l75cdwxbfjznks3kvm5jc89ik714ij2qx14qyik0xmni",
+ "fetcher": "github",
+ "repo": "rubikitch/recentf-ext",
+ "unstable": {
+ "version": [
+ 20170926,
+ 35
+ ],
+ "commit": "450de5f8544ed6414e88d4924d7daa5caa55b7fe",
+ "sha256": "1jylpqgngbl594a1qvd305m9lda48cib4dsasimdqxp20d4c56iy"
+ }
+ },
+ {
+ "ename": "recentf-remove-sudo-tramp-prefix",
+ "commit": "0bf1761715ee4917ba0823adbda03859d5b8131a",
+ "sha256": "01kdpx7kqd39a5hjym5plcj5d8szzghigq9mq186mggayg8q44cr",
+ "fetcher": "github",
+ "repo": "ncaq/recentf-remove-sudo-tramp-prefix",
+ "unstable": {
+ "version": [
+ 20180205,
+ 556
+ ],
+ "commit": "84bbac534cb114d8d11b86790435b65d36e99e68",
+ "sha256": "0lnnh28qax4qk9n9sng7sgb0w0mnjc8abnch3bd0ba9g5x28z8bx"
+ }
+ },
+ {
+ "ename": "recently",
+ "commit": "bb8d1628e1787cba10fc612f3351e4085e9a3153",
+ "sha256": "1928v1897l1n42zrzqfwkq6nckf9y822qcwy99294rq0b4z83kxs",
+ "fetcher": "github",
+ "repo": "10sr/recently-el",
+ "unstable": {
+ "version": [
+ 20200120,
+ 1432
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fa8b52fe891a0adaabe0456f6f5a56a2600a831f",
+ "sha256": "0y0msmfwsrbsd59jhj9dh3vz49f2g0ykyp34c2i8l8vz5vkac3lp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3a331936ba33875d0f2fa47abe056aadbc59150e",
+ "sha256": "0hdsv3whr2iqk6xirmfcjpbqjnckzqj54n5q04gh2z01bjxv3d7k"
+ }
+ },
+ {
+ "ename": "recompile-on-save",
+ "commit": "77805a854da76b105bd7589fd0960b1ef8868b8b",
+ "sha256": "0bg2p7pk4jlpqc7lg48mxd6zkwnx15r0r7lmsxgx9dv1ilfwrmgn",
+ "fetcher": "github",
+ "repo": "maio/recompile-on-save.el",
+ "unstable": {
+ "version": [
+ 20151126,
+ 1446
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "92e11446869d878803d4f3dec5d2101380c12bb2",
+ "sha256": "0wk28blnfks987iby0p3qpd4nxnz6sqn4fx8g59gyddjhav51lri"
+ }
+ },
+ {
+ "ename": "recover-buffers",
+ "commit": "43b33cfb794c35de78fde6eabb71ffe01049d23d",
+ "sha256": "0g40d7440hzlc9b45v63ng0anvmgip4dhbd9wcm2sn8qjfr4w11b",
+ "fetcher": "github",
+ "repo": "tripleee/recover-buffers",
+ "unstable": {
+ "version": [
+ 20171009,
+ 437
+ ],
+ "commit": "81a5cb53099955ebc2a411a44cba5a394ee3f2d1",
+ "sha256": "07dfdvz5rn5l13xdycd7h75zaq0pw2afb9n1yiq01fqk6gvrhc5b"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "a1db7f084977697081da3497628e3514e032b966",
+ "sha256": "114ssmby614xjs7mrpbbsdd4gj5ra6klfh8h6z8iij8xn3kii83q"
+ }
+ },
+ {
+ "ename": "rect+",
+ "commit": "c8c1cd81f0e764a7cfc2f3f96574898ff414beb4",
+ "sha256": "0vk0jwpl6yp2md9nh0ghp2qn883a8lr3cq8c9mgq0g552dwdiv5m",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-rectplus",
+ "unstable": {
+ "version": [
+ 20150621,
+ 44
+ ],
+ "commit": "299b742faa0bc4448e0d5fe9cb98ab1eb93b8dcc",
+ "sha256": "1vpsihrl03hkd6n6b7mrjccm0a023qf3154a8rw4chihikxw27pj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 10
+ ],
+ "commit": "299b742faa0bc4448e0d5fe9cb98ab1eb93b8dcc",
+ "sha256": "1vpsihrl03hkd6n6b7mrjccm0a023qf3154a8rw4chihikxw27pj"
+ }
+ },
+ {
+ "ename": "rectangle-utils",
+ "commit": "1852b75c82822e97c39b7c7caeb2a32246171be4",
+ "sha256": "1w5z2gykydsfp30ahqjihpvq04c5v0cfslbrrg429hycys8apws7",
+ "fetcher": "github",
+ "repo": "thierryvolpiatto/rectangle-utils",
+ "unstable": {
+ "version": [
+ 20190411,
+ 1757
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "46f7e73340fee40c1ab9a4e766a08ae3fce83ebe",
+ "sha256": "0dcga10lg2bl1p259s78jib7pd03v183hima8aksfr0c84s438yq"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6fe38fdd48ef5305a908b94a043a966ac3f2053a",
+ "sha256": "08n3ah40gfgkbriwj2z3y0751vpvgz86qjdn6dxs4mghjrwr2545"
+ }
+ },
+ {
+ "ename": "recursive-narrow",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "15pzwxzyc3dl81v27gk7a4866cxbhzpmmcmfi9n4vrrxmf61h905",
+ "fetcher": "github",
+ "repo": "nflath/recursive-narrow",
+ "unstable": {
+ "version": [
+ 20190306,
+ 1521
+ ],
+ "commit": "5e3e2067d5a148d7e64e64e0355d3b6860e4c259",
+ "sha256": "1dxghz1fb2l7y7qphqk0kk732vazlk1n1fl6dlqhqhccj450h2qa"
+ }
+ },
+ {
+ "ename": "redis",
+ "commit": "10fbb970956ee19d812c17900f3c01c5fee0c3f2",
+ "sha256": "1awnilb8bk0izp6yw0187ybh9slf1hc51014xvvmj90darxby79a",
+ "fetcher": "github",
+ "repo": "emacs-pe/redis.el",
+ "unstable": {
+ "version": [
+ 20150531,
+ 1948
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2c33f3397bc14e7a8192867b55920492d4eead8c",
+ "sha256": "1rjpf23a8rggjmmxvm1997d3xz03kz84xams486b9ky0n2v02d57"
+ }
+ },
+ {
+ "ename": "redpen-paragraph",
+ "commit": "7e6b187bfc14f3affbe2d8d1cb854abe69deb15b",
+ "sha256": "0jr707ik6fhznq0q421l986w85ah0n9b4is91zrgbk1v6miqrhca",
+ "fetcher": "github",
+ "repo": "karronoli/redpen-paragraph.el",
+ "unstable": {
+ "version": [
+ 20160625,
+ 1050
+ ],
+ "deps": [
+ "cl-lib",
+ "json"
+ ],
+ "commit": "0062f326106ce8be3c9b7d3fa0e88ed2c7bbfa5e",
+ "sha256": "1y35p2q3xrvn37kligfmkjagkz4b7pl61y2c2g504kjs45v4mqd2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 42
+ ],
+ "deps": [
+ "cl-lib",
+ "json"
+ ],
+ "commit": "f9569bc8e2993dea0f83cba5738a35ce32f82424",
+ "sha256": "087dq9h8i8cjwm8x2s33xrwnnxjpjcmddy2624z00s1ip0dh5ham"
+ }
+ },
+ {
+ "ename": "redprl",
+ "commit": "06e7371d703ffdc5b6ea555f2ed289e57e71e377",
+ "sha256": "1zinzs3vzf2alsnxf5k71i7lp90fm26wv4y20ci52n0hnh5nz861",
+ "fetcher": "github",
+ "repo": "RedPRL/sml-redprl",
+ "unstable": {
+ "version": [
+ 20180418,
+ 1434
+ ],
+ "commit": "c72190de76f7ed1cfbe1d2046c96e99ac5022b0c",
+ "sha256": "0rbzwkdai9bpcnldrib90p02p36qfgnwk18iz2pcz32xs73frx82"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "d06d39486348a74981b2c4c4c2ed3af95b01d5ca",
+ "sha256": "0k3f7pa332d0fs1js8hi7zszcirir1943bhkgwfxzsqx17m26x3n"
+ }
+ },
+ {
+ "ename": "redshank",
+ "commit": "2677a5cf74ebace6510517f47eaa43b35f736683",
+ "sha256": "0p18rkn09qb4ssr6jix13kqc3jld407qr2z2k8z78i3xy4bfzr5f",
+ "fetcher": "github",
+ "repo": "emacsattic/redshank",
+ "unstable": {
+ "version": [
+ 20180730,
+ 407
+ ],
+ "deps": [
+ "paredit"
+ ],
+ "commit": "d059c5841044aa163664f8bf87c1d981bf0a04fe",
+ "sha256": "1545z1dd85zg8sg2r5r5gdnmgxbxwjvl5xklx5nvpd0gbxlwbpqk"
+ }
+ },
+ {
+ "ename": "redtick",
+ "commit": "3187bd436541e2a5c2b28de67c62f5d5165af737",
+ "sha256": "1a9rviz0hg6vlh2jc04g6vslyf9n89xglcz9cb79vf10hhr6igrb",
+ "fetcher": "github",
+ "repo": "ferfebles/redtick",
+ "unstable": {
+ "version": [
+ 20180424,
+ 2136
+ ],
+ "commit": "94b4cd43ac20c64dcac96edac2c1a3b9fcc59bb9",
+ "sha256": "1nqbhpxp79zvcxyr5c90b64lrrw5zh6blh91lwssy73zizkh2lcg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "14e3a07c229d1f660ca5129d6e8a52a8c68db94d",
+ "sha256": "0q4a4iznk6xk680xnvly69j8w1dac79qxlycwrfki6msnkagyn9p"
+ }
+ },
+ {
+ "ename": "redtt",
+ "commit": "8db65908885f753bf65849b89ebabe0c4df664f9",
+ "sha256": "0gnqik2p2rb8c1mp3vrz1xf7z89xfcx5pi4lqsdnwjhxjh2534zk",
+ "fetcher": "github",
+ "repo": "RedPRL/redtt",
+ "unstable": {
+ "version": [
+ 20181121,
+ 21
+ ],
+ "commit": "50689559ff970e33013b8cf8a3bbc8be18ec4e09",
+ "sha256": "0v1xc27hfa223bganb7gksv6cc2v95bdfms7riv75sf30v3vh59s"
+ }
+ },
+ {
+ "ename": "refine",
+ "commit": "b111879ea0685cda88c758b270304d9e913c1391",
+ "sha256": "1sk6rsd92pix7k8snnqm3hsimjzaihzjgac0g5h3a2zm9dabf4py",
+ "fetcher": "github",
+ "repo": "Wilfred/refine",
+ "unstable": {
+ "version": [
+ 20200507,
+ 731
+ ],
+ "deps": [
+ "dash",
+ "list-utils",
+ "loop",
+ "s"
+ ],
+ "commit": "d72fa50910b86217a35bb1b7e56adea206052021",
+ "sha256": "02cb30ycwyqhdw54s3abb4xsdyqlpi6i8xi7rkl85avvgy2gif8y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "dash",
+ "list-utils",
+ "loop",
+ "s"
+ ],
+ "commit": "9760e56ab849a4827e6c9425fdef6f5a7784c967",
+ "sha256": "1b4n0mfplh6vj87p3124c2fw24fj0vm9jvcaxrvccfq3sida4sf3"
+ }
+ },
+ {
+ "ename": "reformatter",
+ "commit": "58de8cf8864867f7b3969f3a048a4844837078b4",
+ "sha256": "0z4wa0bmhz55c54vx7qxkl9x7ix20mmgygv91sqll68l10g63l0c",
+ "fetcher": "github",
+ "repo": "purcell/reformatter.el",
+ "unstable": {
+ "version": [
+ 20200814,
+ 435
+ ],
+ "commit": "45c0add95025f53ca644a6c8b9afa05b2da3c474",
+ "sha256": "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "e8f70b20caf6672353a2b0ee3161d4791c412696",
+ "sha256": "19mji7frfvj925nx2m2cdvsx0lf69dzdl5wbdppyra9717rsspbq"
+ }
+ },
+ {
+ "ename": "regex-dsl",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0c9mxsvmx6mgpq838qnjjr7ra4hafikv7hq4nfab7zw9mxrcr2f9",
+ "fetcher": "github",
+ "repo": "alk/elisp-regex-dsl",
+ "unstable": {
+ "version": [
+ 20100124,
+ 1028
+ ],
+ "commit": "ac89ab8b7691a165ef3007cb84417125cfc0632e",
+ "sha256": "1d34jd7is979vfgdy56zkd1m15ng3waiabfpak6dv6ak3cdh5fgx"
+ }
+ },
+ {
+ "ename": "regex-tool",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1s4clmy5r7w6aj2bh2vf2fmbcwnainzidj28mf3kc34x3qhybngq",
+ "fetcher": "github",
+ "repo": "jwiegley/regex-tool",
+ "unstable": {
+ "version": [
+ 20170104,
+ 1918
+ ],
+ "commit": "0b4a0111143c88ef94bec56624cb2e00c1a054e6",
+ "sha256": "03qm8s7nqsj0pjnnb0p84gk7hvad4bywn3rhr3ibzj6hxqvppbqj"
+ }
+ },
+ {
+ "ename": "region-bindings-mode",
+ "commit": "faba50ed3e8c22991bcb8968880f79fad1748705",
+ "sha256": "141q4x6rilidpnsm9s78qks9i1v6ng0ydhbzqi39xcaccfyyjb69",
+ "fetcher": "github",
+ "repo": "fgallina/region-bindings-mode",
+ "unstable": {
+ "version": [
+ 20140407,
+ 2214
+ ],
+ "commit": "3fa5dbdbd7c000bebff6d9d14a4be326ec24b6fc",
+ "sha256": "02kfi3c6ydnr7xw611ck66kfjyl5w86dr9vfjv3wjl6ad9jya4zy"
+ }
+ },
+ {
+ "ename": "region-convert",
+ "commit": "f6963fc11d697b95ebbdaf7fe27c91a6229d08b6",
+ "sha256": "16i1b83jms7djkyb3n0crfxgpz05m68f4nrlvzxjj7fb56mvf9j7",
+ "fetcher": "github",
+ "repo": "zonuexe/region-convert.el",
+ "unstable": {
+ "version": [
+ 20181221,
+ 528
+ ],
+ "commit": "a50a0828a989fc1788a32946249a3758793156b3",
+ "sha256": "07hbqc7ilhyhqa7hw8fxh76ma9qkr4djlc6gbz06c1hknbi1gxs9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "173c86b4b3fc187d54bcd85b4d7df27a5ee24965",
+ "sha256": "1paljjwr6sfl835m24vj2j4x3zdh3whwayj6dvyfarbhhcwbwphj"
+ }
+ },
+ {
+ "ename": "region-occurrences-highlighter",
+ "commit": "86c5c83a25fd632b41567c6ea4bc49cf0cfd8aa6",
+ "sha256": "1v0iwlkpdmmqi7qllaih6f5pjfjwqwlpyjdjlddvw4rsg6v5gh42",
+ "fetcher": "github",
+ "repo": "alvarogonzalezsotillo/region-occurrences-highlighter",
+ "unstable": {
+ "version": [
+ 20200815,
+ 1555
+ ],
+ "commit": "07e2201db7a88b246a63e868e711749e1465d3d6",
+ "sha256": "0y9746pqinp0nir2afm181drs2qa63jpb834s3s7pzd2mvjrw0rc"
+ }
+ },
+ {
+ "ename": "region-state",
+ "commit": "716e82eb4ca0845f59a743556b37be8a1ecb29af",
+ "sha256": "1iq2x1w8lqjjiwjja7r3qki6drvydnk171k9fj9g6rk7wslknz8x",
+ "fetcher": "github",
+ "repo": "xuchunyang/region-state.el",
+ "unstable": {
+ "version": [
+ 20181205,
+ 1746
+ ],
+ "commit": "8c636b655eef45e0015684699737d31e15450000",
+ "sha256": "0dlamw4zbg3km7h5zk91f593qsk99q7ppvzsws00bc2rnnaplz5l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "549c5f19e828f9dba3de611b40eba31ae96b0d1c",
+ "sha256": "16hnc0p72fkyqmwci2k2721dvmw8n1nld6qawiz3ghqz932w1kld"
+ }
+ },
+ {
+ "ename": "register-channel",
+ "commit": "ad44618ac36e96d04f5c44c77637ea6229e61b4c",
+ "sha256": "037i2fgxxsfb85vd6xk17wyh7ny6fqfixvb0a18lf8m1hib1gyhr",
+ "fetcher": "github",
+ "repo": "YangZhao11/register-channel",
+ "unstable": {
+ "version": [
+ 20180926,
+ 2349
+ ],
+ "commit": "9272923757402d177a0b2deab1d9c3c74601c48e",
+ "sha256": "0k9qgrbzbxx4sjffnr02qx5wm71i3m61w7mh2j4hq9jf8k6nbkq4"
+ }
+ },
+ {
+ "ename": "register-quicknav",
+ "commit": "fed1473b565f42f7849c7676d0c9739a39562c95",
+ "sha256": "1487mkyz2h5929580racxr4nbc343klns9bcm7m5jn4hsx5aiq6m",
+ "fetcher": "git",
+ "url": "https://schlomp.space/tastytea/register-quicknav.git",
+ "unstable": {
+ "version": [
+ 20200524,
+ 2006
+ ],
+ "commit": "c15ea92b0946c28b3f14986d42b15b0b534aa6a2",
+ "sha256": "03xm5rxhafzngdqnpl884d0zy9qkpx57zbcnh0psalmvswd4d4fh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 3
+ ],
+ "commit": "e30883a7085ad1f4e1113dc84f5f2222ac4bcd37",
+ "sha256": "18mskl1w5n2cksjds27d1gcrwb065vp9n6hnw9402j3n6z0w8srv"
+ }
+ },
+ {
+ "ename": "rego-mode",
+ "commit": "fbc0b93675f6baab6ab023b596e65658c9e2a534",
+ "sha256": "0qdmn6kh4bh514qh0ii881c03p3hcdp1qlmdwpp5nlzxlkxbgp07",
+ "fetcher": "github",
+ "repo": "psibi/rego-mode",
+ "unstable": {
+ "version": [
+ 20200413,
+ 450
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "439a4d5e130e67e9e8c34e813fa1dc6631e7a8d5",
+ "sha256": "0lzlhmz0c4jv65phksh6aya93rlh8rqcffbvz1llcyj8i2gr7hqj"
+ }
+ },
+ {
+ "ename": "related",
+ "commit": "555932a7b9cf11b50a61c2a9dd2636fd6844fac8",
+ "sha256": "08cfr5qbm1h5j4v3vf3kjjwb9nxsrk74lx9gi1icdhqw631h3yxf",
+ "fetcher": "github",
+ "repo": "julien-montmartin/related",
+ "unstable": {
+ "version": [
+ 20190327,
+ 1024
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "546c7e811b290470288b617f2c27106bd83ccd33",
+ "sha256": "0kn07wgnz5bkkq66qfq16rvw9l7zgh0hzrsa705j1zbd6vc3wygs"
+ }
+ },
+ {
+ "ename": "remark-mode",
+ "commit": "083f2070eb27d66f09552bf42a346f41a9b9b4b5",
+ "sha256": "1ccgii79h05bjl16nz7rgvkf35s9y18vp7l6mx6chciwjz6l78kn",
+ "fetcher": "github",
+ "repo": "torgeir/remark-mode.el",
+ "unstable": {
+ "version": [
+ 20191103,
+ 1825
+ ],
+ "deps": [
+ "markdown-mode"
+ ],
+ "commit": "e80a1b78304045dec3eceffb6c8cbaf2b6c7b57a",
+ "sha256": "1l06hh728p9gnlliz1nq9qg641gyxfzb7mlz8x88bmvb0wyzyr8r"
+ }
+ },
+ {
+ "ename": "remember-last-theme",
+ "commit": "26edcdddaf8dc8c9a18d6b007e0d49d04fe4ccca",
+ "sha256": "0pw36f9mchkl1qhaii39zd0vwrydjlijzanv706ai2bl8r7l0ppy",
+ "fetcher": "github",
+ "repo": "anler/remember-last-theme",
+ "unstable": {
+ "version": [
+ 20170619,
+ 2133
+ ],
+ "commit": "0973f1aa6b96355fa376fffe8b45733b6e963c51",
+ "sha256": "11kcqpw1wrhghbw2dx3pqndmq9a1rbqir3k71ggaj1x2y2arzvm7"
+ }
+ },
+ {
+ "ename": "remind-bindings",
+ "commit": "b55af46fa0ca3b32bcafcb8601ce1a3e660502ba",
+ "sha256": "0s6pqg9pgi1qjss90ip2ryn4604lij3z4acpg6pqhf99y4yjrchv",
+ "fetcher": "github",
+ "repo": "mtekman/remind-bindings.el",
+ "unstable": {
+ "version": [
+ 20200301,
+ 2213
+ ],
+ "deps": [
+ "map",
+ "omni-quotes",
+ "popwin"
+ ],
+ "commit": "730b6d7b30e397f8f11a6d3d5c269df21a33c450",
+ "sha256": "16fk0xnp5awsq45i0wpdkzy6hwccayvwwiag9kar8kmb6nqs2y17"
+ }
+ },
+ {
+ "ename": "renpy",
+ "commit": "68635e3c52d12c234200680fd393a0b8748d2993",
+ "sha256": "18lnp1920c88j6fvjsrrymqh23amna9qyllh68mf7kssbsh5w2zq",
+ "fetcher": "github",
+ "repo": "Reagankm/renpy-mode",
+ "unstable": {
+ "version": [
+ 20200607,
+ 135
+ ],
+ "commit": "f2f95a72a8c842f229f80999132e8ea8ee73f6fc",
+ "sha256": "1jka61j6zrc0yzjcplnyg1kp1d45ikwnkmayjg41v9w0pfrzzim3"
+ }
+ },
+ {
+ "ename": "repeatable-motion",
+ "commit": "0dd56ebaea098715b9c201f07e6196c38977f8e3",
+ "sha256": "12z4z8apd8ksf6dfvqm54l71mx68j0yg4hrjypa9p77fpcd6p0zw",
+ "fetcher": "github",
+ "repo": "willghatch/emacs-repeatable-motion",
+ "unstable": {
+ "version": [
+ 20170620,
+ 1848
+ ],
+ "commit": "f29effdc4121c2dc7e3fec9b3a62debce29cda9d",
+ "sha256": "11s7r5g0djj0yc8ll7jfw5v3m9kyvaiscndnfnvvjw5lwgfyh0v3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "e664b0a4a3e39c4085378a28b5136b349a0afb22",
+ "sha256": "007lqahjbig6yygqik6fgbq114784z6l40a3vrc4qs9361zqizck"
+ }
+ },
+ {
+ "ename": "repeater",
+ "commit": "10e6c57937b7540f1fbf920765a63292784433ed",
+ "sha256": "07fq3d6w5ns5ryv4vd23iww2bz34f62syzbg8y643kdd0kp1m772",
+ "fetcher": "github",
+ "repo": "xuchunyang/repeater",
+ "unstable": {
+ "version": [
+ 20180418,
+ 1212
+ ],
+ "commit": "854b874542b186b2408cbc58ad0591fe8eb70b6c",
+ "sha256": "0cx6b8l9ssf56fz8xjsmbyhy8mdcj8l0rvsdx37qk86xq4nlz74p"
+ }
+ },
+ {
+ "ename": "repl-toggle",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "16k9fk1nl2llk9qli52kiirlx9rlz8yhjh3cy6v5y2b3k0y1cf0b",
+ "fetcher": "github",
+ "repo": "tomterl/repl-toggle",
+ "unstable": {
+ "version": [
+ 20190430,
+ 713
+ ],
+ "deps": [
+ "fullframe"
+ ],
+ "commit": "f066782c10226d31ea8c1cc386cfa7fa3a4e3aa7",
+ "sha256": "14kap395xd3d5n7ini5cyif2ygz0db8bv0py5ipwlac2zcwgmfwl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "fullframe"
+ ],
+ "commit": "a36caac7649fbffbe30f7b06541c9efd723563fc",
+ "sha256": "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"
+ }
+ },
+ {
+ "ename": "replace-from-region",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "1p77sajghqkjd7k83nma4qpz682la3zg716jdsnpcwcw0qk9ybcb",
+ "fetcher": "github",
+ "repo": "rubikitch/replace-from-region",
+ "unstable": {
+ "version": [
+ 20170227,
+ 2316
+ ],
+ "commit": "dc9318b9b2822da7b00ecc34d1dc965c8f96c9bb",
+ "sha256": "05l0wn1gqw2sbl65s1m7afmg3b1ps2qgqqrjkl9r2i26p95kqlq3"
+ }
+ },
+ {
+ "ename": "replace-pairs",
+ "commit": "2c578f574bc13edf45330a2836c02dece163688d",
+ "sha256": "0l9674rba25wh6fskvfwkhv99lwlszb177hsfzx39s6b4hshvlsb",
+ "fetcher": "github",
+ "repo": "davidshepherd7/replace-pairs",
+ "unstable": {
+ "version": [
+ 20160207,
+ 1251
+ ],
+ "commit": "acfb254dddffcee4250092fab9394ef2b42ffbc0",
+ "sha256": "0k7sngs124bk22hcxg1vx0w5p603v0rdh1bs2sbm1gfgvawfdia6"
+ }
+ },
+ {
+ "ename": "replace-symbol",
+ "commit": "377b6ff2b785f6d87adf1e23a5b0ce02881fc5c9",
+ "sha256": "07ljmw6aw9hsqffhwmiq2pvhry27acg6f4vgxgi91vjr8jj3r4ng",
+ "fetcher": "github",
+ "repo": "bmastenbrook/replace-symbol-el",
+ "unstable": {
+ "version": [
+ 20160518,
+ 12
+ ],
+ "commit": "baf949e528aee1881f455f9c84e67718bedcb3f6",
+ "sha256": "178y1cmpdb2r72igx8j4l7pyhs1idw56j6hg5h8r9a2p99lkgjjc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "baf949e528aee1881f455f9c84e67718bedcb3f6",
+ "sha256": "178y1cmpdb2r72igx8j4l7pyhs1idw56j6hg5h8r9a2p99lkgjjc"
+ }
+ },
+ {
+ "ename": "replace-with-inflections",
+ "commit": "7892eb506b8f4260bde4be2805bf3b2d594ab640",
+ "sha256": "1pqpin5ipm3g74zjh1kh6s1gh0aan6202p0y2q00d4ywbz9kn5s0",
+ "fetcher": "github",
+ "repo": "knu/replace-with-inflections.el",
+ "unstable": {
+ "version": [
+ 20180831,
+ 635
+ ],
+ "deps": [
+ "cl-lib",
+ "inflections",
+ "string-inflection"
+ ],
+ "commit": "d9201e047856492f282da65459b28aba25998dbb",
+ "sha256": "09yvn489z33hww7mi1flh344faxrpbkzqhm0i6xb2rridcj7acqh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "inflections",
+ "string-inflection"
+ ],
+ "commit": "d9201e047856492f282da65459b28aba25998dbb",
+ "sha256": "09yvn489z33hww7mi1flh344faxrpbkzqhm0i6xb2rridcj7acqh"
+ }
+ },
+ {
+ "ename": "repo",
+ "commit": "1729d4ea9498549fff3594b971fcde5f81592f84",
+ "sha256": "0z4lcswh0c6xnsxlv33bsxh0nh26ydzfl8sv8xabdp5a2gk6bhpb",
+ "fetcher": "github",
+ "repo": "canatella/repo-el",
+ "unstable": {
+ "version": [
+ 20191201,
+ 38
+ ],
+ "commit": "7b3ce731f1209d74113cb65a2d6aa6f54ce8ed27",
+ "sha256": "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "7b3ce731f1209d74113cb65a2d6aa6f54ce8ed27",
+ "sha256": "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"
+ }
+ },
+ {
+ "ename": "req-package",
+ "commit": "aa5bc1909f807ec03ad441d78013ba8626cd410a",
+ "sha256": "1zjhc6f9qcb3j72k1llp6vym25lxnvq1jgqgmnrjxxwc4fhxx595",
+ "fetcher": "gitlab",
+ "repo": "edvorg/req-package",
+ "unstable": {
+ "version": [
+ 20180122,
+ 500
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "log4e",
+ "use-package"
+ ],
+ "commit": "0c0ac7451149dac6bfda2adfe959d1df1c273de6",
+ "sha256": "0sx3kw1gpliifbc0gh2z1lvig68v3gwqjbj0izgn77js8kqxad84"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "ht",
+ "log4e",
+ "use-package"
+ ],
+ "commit": "0c0ac7451149dac6bfda2adfe959d1df1c273de6",
+ "sha256": "0sx3kw1gpliifbc0gh2z1lvig68v3gwqjbj0izgn77js8kqxad84"
+ }
+ },
+ {
+ "ename": "request",
+ "commit": "8d113615dde757a60ce91e156f0714a1394c4bfc",
+ "sha256": "0h4jqg98px9dqqvjp08vi2z1lhmk0ca59lnrcl96bi7gkkj3jiji",
+ "fetcher": "github",
+ "repo": "tkf/emacs-request",
+ "unstable": {
+ "version": [
+ 20200517,
+ 1305
+ ],
+ "commit": "d02d1347ffdf138cffd380cbeac62ac8732036ef",
+ "sha256": "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "commit": "22efefeaa394f6deef957818f5c5332061c88d1c",
+ "sha256": "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"
+ }
+ },
+ {
+ "ename": "request-deferred",
+ "commit": "8d113615dde757a60ce91e156f0714a1394c4bfc",
+ "sha256": "1dcxqnzmvddk61dzmfx8vjbzd8m44lscr3pjdp3r7211zhwfk40n",
+ "fetcher": "github",
+ "repo": "tkf/emacs-request",
+ "unstable": {
+ "version": [
+ 20181129,
+ 317
+ ],
+ "deps": [
+ "deferred",
+ "request"
+ ],
+ "commit": "d02d1347ffdf138cffd380cbeac62ac8732036ef",
+ "sha256": "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "deferred",
+ "request"
+ ],
+ "commit": "22efefeaa394f6deef957818f5c5332061c88d1c",
+ "sha256": "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"
+ }
+ },
+ {
+ "ename": "requirejs",
+ "commit": "a6a710c0d5ab34c52498c4154deebb779052aa01",
+ "sha256": "09z6r9wcag3gj075wq215zcslyknl1izap595rn48xvizxi06c6k",
+ "fetcher": "github",
+ "repo": "joeheyming/requirejs-emacs",
+ "unstable": {
+ "version": [
+ 20151204,
+ 719
+ ],
+ "deps": [
+ "cl-lib",
+ "js2-mode",
+ "popup",
+ "s",
+ "yasnippet"
+ ],
+ "commit": "4ea2a5fcbc76e4cbb6a7461e6f05f019b75865b1",
+ "sha256": "1bfj2zjn3x41jal6c136wnwkgmag27bmrwbfwdylafc7qqk6dflv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "js2-mode",
+ "popup",
+ "s"
+ ],
+ "commit": "7d73453653b6b97cca59fcde8d529b5a228fbc01",
+ "sha256": "1b832r7779rmr6rhzj7klc0l5xzwc4rids87g2hczpb5dhqnchca"
+ }
+ },
+ {
+ "ename": "requirejs-mode",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "00bl5dz56f77hl9wy3xvjhq81641mv9jbskcd8mcgcz9ycj9g5k2",
+ "fetcher": "github",
+ "repo": "moricard/requirejs-mode",
+ "unstable": {
+ "version": [
+ 20130215,
+ 2104
+ ],
+ "commit": "bbb0c09f8eb2d6a33c17319be8137f68bb16bc92",
+ "sha256": "02wva5q8mvc0a5kms2wm1gyaag2x3zd6fkkpl4218nrbb0mbficv"
+ }
+ },
+ {
+ "ename": "resize-window",
+ "commit": "601a8d8f9046db6c4d50af983a11fa2501304028",
+ "sha256": "0h1hlj50hc97wxqpnmvg6w3qhdd9nbnb8r8v39ylv87zqjcmlp8l",
+ "fetcher": "github",
+ "repo": "dpsutton/resize-window",
+ "unstable": {
+ "version": [
+ 20180918,
+ 538
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "72018aa4d2401b60120588199d4cedd0dc1fbcfb",
+ "sha256": "1icjmnfxpc5zgnd4hwwwp0008iy1qv6igr5kyv5s062xd6rcs8a1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "dcbbd30f4f4435070a66a22c5a169b752ca9f904",
+ "sha256": "0x2kkf7bdj9s3993kdz74igi80rqma0w3hi7aggf0zwllqdcnzvk"
+ }
+ },
+ {
+ "ename": "restart-emacs",
+ "commit": "b9faeb6d910d686cbcafe7d12e0bcf62a85689bd",
+ "sha256": "03aabz7fmy99nwimvjn7qz6pvc94i470hfgiwmjz3348cw02k0n6",
+ "fetcher": "github",
+ "repo": "iqbalansari/restart-emacs",
+ "unstable": {
+ "version": [
+ 20180601,
+ 1031
+ ],
+ "commit": "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9",
+ "sha256": "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "e9292fe88d8be7d0ecf9f4f30ed98ffbc6bd689b",
+ "sha256": "0y4ga1lj2x2f0r535ivs09m2l0q76iz72w42wknhsw9lmdsyl5nz"
+ }
+ },
+ {
+ "ename": "restclient",
+ "commit": "59303304fe1f724596245556dd90f6afffba425d",
+ "sha256": "0wzp8i89a4hwm7qyxvdk10frknbqcni0isnp8k63nhq7c30s7md4",
+ "fetcher": "github",
+ "repo": "pashky/restclient.el",
+ "unstable": {
+ "version": [
+ 20200502,
+ 831
+ ],
+ "commit": "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3",
+ "sha256": "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"
+ }
+ },
+ {
+ "ename": "restclient-helm",
+ "commit": "59303304fe1f724596245556dd90f6afffba425d",
+ "sha256": "0cpf02ippfr9w6kiw3kng8smabv256ff388322hhn8a8icyjl24j",
+ "fetcher": "github",
+ "repo": "pashky/restclient.el",
+ "unstable": {
+ "version": [
+ 20170314,
+ 1554
+ ],
+ "deps": [
+ "helm",
+ "restclient"
+ ],
+ "commit": "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3",
+ "sha256": "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"
+ }
+ },
+ {
+ "ename": "restclient-test",
+ "commit": "82e3078fc1f96d276fd288c3d7b91df5df4717a6",
+ "sha256": "0g26z5p9fq7fm6bgrwaszya5xmhsgzcn1p7zqr83w74fbw6bcl39",
+ "fetcher": "github",
+ "repo": "simenheg/restclient-test.el",
+ "unstable": {
+ "version": [
+ 20180106,
+ 2046
+ ],
+ "deps": [
+ "restclient"
+ ],
+ "commit": "4518561bc9661fedacb6fb352e9677207f45c418",
+ "sha256": "0hbilpn77w0vykga9p4dkwaygipyna7mwn24y2kwfcahcr39pqjb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "restclient"
+ ],
+ "commit": "a21e41b905b423e762eeb4da3a236c8b1aea8c49",
+ "sha256": "1lan49723rpzg1q7w8x3iggazwl4zirq5l8nhpb8m5hmg21a4kih"
+ }
+ },
+ {
+ "ename": "retrie",
+ "commit": "12ed1c6d8e2aa4f73b793f9e16e8e13985fae944",
+ "sha256": "1y0zknhc2wkq6kpmz2bylwqla1xd7n7l3650zj2bi8g84ly777af",
+ "fetcher": "github",
+ "repo": "Ailrun/emacs-retrie",
+ "unstable": {
+ "version": [
+ 20200519,
+ 551
+ ],
+ "commit": "976d6f01a3e214917f16b82e750d825cb9bfcc59",
+ "sha256": "08rwhkx2chphrfqd6l2bjr1w4rn394q8w5iy93cdprl5y56axvp6"
+ }
+ },
+ {
+ "ename": "reveal-in-folder",
+ "commit": "26682a1fb2d885168ca922521df7f3d8fbfe43a8",
+ "sha256": "0nhrsmilimffpjnv9hn8a49wckdi1lywjlb2fpxpqdi8zl0bgkzs",
+ "fetcher": "github",
+ "repo": "jcs-elpa/reveal-in-folder",
+ "unstable": {
+ "version": [
+ 20200618,
+ 1211
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "cc4f56c8870136aafcdc5afc010e9a73a9bfd707",
+ "sha256": "09byr8lh1agar1mmxs82sg8ica1p9wrjjahpx3k3adfmgq2glzcr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "cc4f56c8870136aafcdc5afc010e9a73a9bfd707",
+ "sha256": "09byr8lh1agar1mmxs82sg8ica1p9wrjjahpx3k3adfmgq2glzcr"
+ }
+ },
+ {
+ "ename": "reveal-in-osx-finder",
+ "commit": "2bf40285279b761b0efd6bc8542ae9aad4b329e1",
+ "sha256": "00jgrmh5s3vlpj1jjf8l3c3h4hjk5x781m95sidw6chimizvfmfc",
+ "fetcher": "github",
+ "repo": "kaz-yos/reveal-in-osx-finder",
+ "unstable": {
+ "version": [
+ 20150802,
+ 1657
+ ],
+ "commit": "5710e5936e47139a610ec9a06899f72e77ddc7bc",
+ "sha256": "1q13cgpz4wzhnqv84ablawy3y2wgdwy46sp7454mmfx9m77jzb2v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 3
+ ],
+ "commit": "5710e5936e47139a610ec9a06899f72e77ddc7bc",
+ "sha256": "1q13cgpz4wzhnqv84ablawy3y2wgdwy46sp7454mmfx9m77jzb2v"
+ }
+ },
+ {
+ "ename": "reverse-im",
+ "commit": "f282ebbed8ad01b63b0e708ab273db51bf65fdbb",
+ "sha256": "0c0dxxpa2s6gvhi14zfb0rnb4i7jaqw627a7ngm5fzyh0r9himcf",
+ "fetcher": "github",
+ "repo": "a13/reverse-im.el",
+ "unstable": {
+ "version": [
+ 20200520,
+ 853
+ ],
+ "commit": "90add9a1f8c4a3c78029d38087ff4d22fe5372d3",
+ "sha256": "05k2zp2hldzq5h6nl8gx79dd8lvfn507ad4x3naichdqgn2013nn"
+ }
+ },
+ {
+ "ename": "reverse-theme",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "133wl2k0niy9ih0bjn7qx51fykqjj392ibkp1bvmy5dbl09x4gic",
+ "fetcher": "github",
+ "repo": "emacsorphanage/reverse-theme",
+ "unstable": {
+ "version": [
+ 20141205,
+ 145
+ ],
+ "commit": "8319d0d5342890a3530ffa4daafdb7c35feda1ca",
+ "sha256": "002ywhjms8ybk7cma2p2i11z3fz6kb0w8mlafysm911rvcq2hg5f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "3105c950bcb51c662c79b59ca102ef662c2b0be0",
+ "sha256": "15xnz4fi22wsximimwmirlz11v4ksfj8nilyjfw6acd92yrhzg6h"
+ }
+ },
+ {
+ "ename": "review-mode",
+ "commit": "f2f9e2667389577d0703874ca69ebe4800ae3e01",
+ "sha256": "0wapicggkngpdzi0yxc0b24s526fs819rc2d6miv6ix3gnw11n0n",
+ "fetcher": "github",
+ "repo": "kmuto/review-el",
+ "unstable": {
+ "version": [
+ 20200710,
+ 155
+ ],
+ "commit": "343e7155f8238a7a53ef1f753319b8e2f9e8e8b9",
+ "sha256": "13wgrj5qbg2pv6d9yxkbsrrllvd40m4p7911g23wcwnnx211p943"
+ }
+ },
+ {
+ "ename": "reykjavik-theme",
+ "commit": "10bf153e2b84050304ba2532f5eb41c7a4e7632f",
+ "sha256": "1f0q2gfzkmpd374jryrd1lgg8xj6rwdq181jhppj3rfjizgw4l35",
+ "fetcher": "github",
+ "repo": "mswift42/reykjavik-theme",
+ "unstable": {
+ "version": [
+ 20180823,
+ 1544
+ ],
+ "commit": "2cd0043ae6d046f812a95bb26398ea23141beccc",
+ "sha256": "0rk0fw5b1lz7if779h3bngc86iix8v9k8bz3zw8icwfwmjsgg1fh"
+ }
+ },
+ {
+ "ename": "rfc-mode",
+ "commit": "3a61d769cf7c61619a594337fe8a12ccc6a6fd6e",
+ "sha256": "0z7krcfdyr8hblz8dc7apqlpn6sj2zwrjw4wh86js8vf7fiv8svy",
+ "fetcher": "github",
+ "repo": "galdor/rfc-mode",
+ "unstable": {
+ "version": [
+ 20200719,
+ 1241
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "02546beecf4c495940885e7b7b911d84b12646ef",
+ "sha256": "1v52vbs2zbqv62wcgcrqgjcwcdq0w6hdb14nma4yhqldnqi57875"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 0
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "02546beecf4c495940885e7b7b911d84b12646ef",
+ "sha256": "1v52vbs2zbqv62wcgcrqgjcwcdq0w6hdb14nma4yhqldnqi57875"
+ }
+ },
+ {
+ "ename": "rg",
+ "commit": "9ce1f721867383a841957370946f283f996fa76f",
+ "sha256": "0i78qvqdznh1z3b0mnzihv07j8b9r86dc1lsa1qlzacv6a2i9sbm",
+ "fetcher": "github",
+ "repo": "dajva/rg.el",
+ "unstable": {
+ "version": [
+ 20200703,
+ 1250
+ ],
+ "deps": [
+ "s",
+ "transient",
+ "wgrep"
+ ],
+ "commit": "853c1acaf999500d867180b9e71938366c8e1a7c",
+ "sha256": "0lp32mjmbzjbsvzia2zd29yv0i75mqvp1w7c0jcwvyyl6gqbg3k1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "s",
+ "wgrep"
+ ],
+ "commit": "3f07304b8a7ee70ac91f3b66e76dc1d621a96bff",
+ "sha256": "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"
+ }
+ },
+ {
+ "ename": "rhtml-mode",
+ "commit": "f9e14e9d8df9c2ce13e290a5f3d3bf9b247037f4",
+ "sha256": "038j5jkcckmhlq3vz4h07s5y2scljh1fdn9r614hiyxwgk48lc35",
+ "fetcher": "github",
+ "repo": "eschulte/rhtml",
+ "unstable": {
+ "version": [
+ 20130422,
+ 1311
+ ],
+ "commit": "a6d71b38a3db867ccf82999c99805db1a3a33c33",
+ "sha256": "1qlpv5lzj4yfyjgdykhm6q9izg6g0z5pf5nmynj42vsx7v8bhy1x"
+ }
+ },
+ {
+ "ename": "rib-mode",
+ "commit": "c38c18f3eb75d559752fcd9956464fef890be728",
+ "sha256": "0qgbzrwbbgg4mzjb7yw85qs83b6hpldazip1cigywr46w7f81587",
+ "fetcher": "github",
+ "repo": "blezek/rib-mode",
+ "unstable": {
+ "version": [
+ 20170726,
+ 1448
+ ],
+ "commit": "97470158784c3c212e22e2c20b8471ee65ba59af",
+ "sha256": "0hln0hympmxmsci82ivc2rw289j1bmgdxns96m1ng1bl668bwag7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "commit": "4172e902fd66f235184c0eb6db7fd4a73dbd0866",
+ "sha256": "0s9dyqv4yh0zxngay951g98g07029h51m4r2fc7ib2arw6srfram"
+ }
+ },
+ {
+ "ename": "rich-minority",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "11xd76w5k3b3q5bxqjb55vi6dsal9drvyc1nh7z83awm59hvgczc",
+ "fetcher": "github",
+ "repo": "Malabarba/rich-minority",
+ "unstable": {
+ "version": [
+ 20190419,
+ 1136
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a03e693f6f9232cf75363aaaf1cb041f21675c19",
+ "sha256": "0nr5lazllp5qphllnmwrwiywkc5zd3a51ciwb8k0h8zw5axhp0v7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d33d2e357c8eb0b38624dbc51e8b953b08b0cc98",
+ "sha256": "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"
+ }
+ },
+ {
+ "ename": "right-click-context",
+ "commit": "f6963fc11d697b95ebbdaf7fe27c91a6229d08b6",
+ "sha256": "189nkxkc7lr2fm5qgmylmz6xv6mpphslj4fgpmr8ynnx9z3nxms2",
+ "fetcher": "github",
+ "repo": "zonuexe/right-click-context",
+ "unstable": {
+ "version": [
+ 20190528,
+ 1832
+ ],
+ "deps": [
+ "cl-lib",
+ "ordinal",
+ "popup"
+ ],
+ "commit": "4b1a2cd2b3eaea2393d3696a36da8f42e386c23d",
+ "sha256": "1y0sa1k8pc8g6mzsqv3n34v2ziyvlr6l74409kh8673lp5r7cx1f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "popup"
+ ],
+ "commit": "db92245cc494c295afa7c23ef1e1d9f76c20a27e",
+ "sha256": "109l1qj3k87iz3g89j9xf5gdrflr63lagp1qz7cz1p1ji4lycb4k"
+ }
+ },
+ {
+ "ename": "rigid-tabs",
+ "commit": "c1cf98dff029d494007fe25d29bd8bcfecc5b8e6",
+ "sha256": "0623hhhykrxq702871s5p4vddkvx7jpj6hg5q0c9jkbvflz9n9y8",
+ "fetcher": "gitlab",
+ "repo": "wavexx/rigid-tabs.el",
+ "unstable": {
+ "version": [
+ 20170903,
+ 1559
+ ],
+ "commit": "eba84ceaba2e57e76ad2dfbb7a7154238a25d956",
+ "sha256": "18rba101m9vmjl4mf3x0k7wvbgn6qmay9la745vzpr3lx1f4nn98"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "c7c6b726806df7e8cb25a41b213a207850c91cb7",
+ "sha256": "0p044wg9d4i6f5x7bdshmisgwvw424y16lixac93q6v5bh3xmab5"
+ }
+ },
+ {
+ "ename": "rime",
+ "commit": "0144879cf0dfe4f0447c5da7cd061f7aac91d4fe",
+ "sha256": "1m9jp307czp4mx4xpfnj9bhq7w5xg656dx9l9ih603cbz24salq4",
+ "fetcher": "github",
+ "repo": "DogLooksGood/emacs-rime",
+ "unstable": {
+ "version": [
+ 20200816,
+ 827
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "popup",
+ "posframe"
+ ],
+ "commit": "aab21695f1dee0db3ddf0f0c834b94aecec7057c",
+ "sha256": "0rzghfnrdyrqijw76f4vvsn3hsninwp3qyvr1p7r0ddz21xz04np"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "popup",
+ "posframe"
+ ],
+ "commit": "2a0b116d56bf54456eb5d6e8e80a7a6cf6944863",
+ "sha256": "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"
+ }
+ },
+ {
+ "ename": "rimero-theme",
+ "commit": "c6d07b0c021001195e6e0951c890566a5a784ce1",
+ "sha256": "0jbknrp9hc8s956cy2gqffxnx0fgnhmjqp2i4vyp0ywh45wrls5r",
+ "fetcher": "github",
+ "repo": "yveszoundi/emacs-rimero-theme",
+ "unstable": {
+ "version": [
+ 20180901,
+ 1348
+ ],
+ "commit": "a2e706c2b34f749019979a133f08a2d94a1104b3",
+ "sha256": "1kcvvaizggzi7s3dlh611bkirdf6y89kzddc273drdks705s01wh"
+ }
+ },
+ {
+ "ename": "rinari",
+ "commit": "4b243a909faa71e14ee7ca4f307df8e8136e5d7c",
+ "sha256": "0qknicg3vzl7zbkwsdvp10hrvlng6mbi8hgslx4ir522dflrf9p0",
+ "fetcher": "github",
+ "repo": "eschulte/rinari",
+ "unstable": {
+ "version": [
+ 20150709,
+ 640
+ ],
+ "deps": [
+ "inf-ruby",
+ "jump",
+ "ruby-compilation",
+ "ruby-mode"
+ ],
+ "commit": "134438af8fbdfa9c8077267c768d273a9792b484",
+ "sha256": "0ndrqj7qsf9rky4v928803ib66p37vyhxgyc42vshx86q73v4cyg"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 11
+ ],
+ "deps": [
+ "inf-ruby",
+ "jump",
+ "ruby-compilation",
+ "ruby-mode"
+ ],
+ "commit": "e2ed2fa55ac3435a86b1cf6a4f2d29aebc309135",
+ "sha256": "1wqhqv2fc5h10igv1php51bayx0s7qw4m9gzx9by80dab8lwa0vk"
+ }
+ },
+ {
+ "ename": "rings",
+ "commit": "113118947e33ab0c8004dbe9b188eba2ea282356",
+ "sha256": "1ncsb4jip07hbrf1l4j9yzn3l0kb63ylhzzsb4bb2yx6as4a66k7",
+ "fetcher": "github",
+ "repo": "konr/rings",
+ "unstable": {
+ "version": [
+ 20160531,
+ 2027
+ ],
+ "commit": "3590b222eb80652cbd27866f066bd3571d86edfc",
+ "sha256": "01mfiyq4cr2qdmvaxid8a094p20w97n2nsiy9vyng77vcmv36sd5"
+ }
+ },
+ {
+ "ename": "ripgrep",
+ "commit": "e8d789818876e959a1a59690f1dd7d4efa6d608b",
+ "sha256": "1j9c3mhcyhs4xf44z6fnlvmb81pps25bp43gdqvp0954i068mgah",
+ "fetcher": "github",
+ "repo": "nlamirault/ripgrep.el",
+ "unstable": {
+ "version": [
+ 20190215,
+ 841
+ ],
+ "commit": "40e871dcc4519a70981e9f28acea304692a60978",
+ "sha256": "0snn12iibz5frsx6yk6c31hb8knvsd568ghw9jjka5vxdjzap7p9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "commit": "73595f1364f2117db49e1e4a49290bd6d430e345",
+ "sha256": "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj"
+ }
+ },
+ {
+ "ename": "riscv-mode",
+ "commit": "0853b4b678be7d1906a2f7946bfa1072590faf72",
+ "sha256": "0496b7xwshmk3gv6s5hggbm9qd60a05racj3xcsxwqzak359lk2b",
+ "fetcher": "github",
+ "repo": "AdamNiederer/riscv-mode",
+ "unstable": {
+ "version": [
+ 20170804,
+ 1521
+ ],
+ "commit": "99febf97d1fa9441e8dada94fe30c2aa439c9749",
+ "sha256": "119p926ypz525xdh82m2d1saky1qh5va224fxyqisfbwfrc17arh"
+ }
+ },
+ {
+ "ename": "rivet-mode",
+ "commit": "ab197ee315e5e67ce56d81374e3589ee894000bd",
+ "sha256": "0491r8qq5i7al972jjqch5wb1mj83fms6axvxq2zykw5xcdrgs8d",
+ "fetcher": "gitlab",
+ "repo": "thornjad/rivet-mode",
+ "unstable": {
+ "version": [
+ 20200514,
+ 1617
+ ],
+ "deps": [
+ "web-mode"
+ ],
+ "commit": "9f2e6c4f777dbe306b715ab42663a6fc82a7e431",
+ "sha256": "09rsyq28caz4mrwm32i1f8wdzz35grigp7dilzxxqg0y4fpsf81f"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 2
+ ],
+ "deps": [
+ "web-mode"
+ ],
+ "commit": "b40bc13761e0b14b4ba67a0c600d69fd129c8746",
+ "sha256": "1g7xz8yygpbcqn0fjnad8kim75q6yqlvsab596my115w9p9l23y6"
+ }
+ },
+ {
+ "ename": "rjsx-mode",
+ "commit": "b83be7efdef2457e1320fe3dec46484fbd20263c",
+ "sha256": "0w3ij8k8058pfw443chm1kn30ia0f5rfbg03w9ddw86xb3wa2q0b",
+ "fetcher": "github",
+ "repo": "felipeochoa/rjsx-mode",
+ "unstable": {
+ "version": [
+ 20200120,
+ 1446
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "0061587a06cdc2579a8d0e90863498d96bf982d8",
+ "sha256": "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "0061587a06cdc2579a8d0e90863498d96bf982d8",
+ "sha256": "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"
+ }
+ },
+ {
+ "ename": "rmsbolt",
+ "commit": "798e7978f3ee32b3667956da8dc2dc7f005b6996",
+ "sha256": "0mgzc4q9mmnqjafp2i9qp0plc7qnh4kmkgjs1c7frk9x07navscf",
+ "fetcher": "gitlab",
+ "repo": "jgkamat/rmsbolt",
+ "unstable": {
+ "version": [
+ 20191218,
+ 257
+ ],
+ "commit": "2bc1afe528b70b8aad4243a3b2b72bcf09a599e1",
+ "sha256": "0pg2q275qd83i8c1g0f1xlwvbqd40xm3gw2ahl80blyllsvz04j9"
+ }
+ },
+ {
+ "ename": "robe",
+ "commit": "673f920d02fe761bc080b73db7d37dbf5b6d86d8",
+ "sha256": "19py2lwi7maya90kh1mgwqb16j72f7gm05dwla6xrzq1aks18wrk",
+ "fetcher": "github",
+ "repo": "dgutov/robe",
+ "unstable": {
+ "version": [
+ 20200628,
+ 1225
+ ],
+ "deps": [
+ "inf-ruby"
+ ],
+ "commit": "082da38797d247f9c64568ad712a345e041d5c84",
+ "sha256": "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 3
+ ],
+ "deps": [
+ "inf-ruby"
+ ],
+ "commit": "082da38797d247f9c64568ad712a345e041d5c84",
+ "sha256": "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"
+ }
+ },
+ {
+ "ename": "robots-txt-mode",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "00hxz4mygcxg7d8m2i4cm0bl82v3hw8wb4m8vv7g7fqkjp32c9qc",
+ "fetcher": "github",
+ "repo": "emacs-php/robots-txt-mode",
+ "unstable": {
+ "version": [
+ 20190812,
+ 1858
+ ],
+ "commit": "8bf67285a25a6756607354d184e36583f2847e7d",
+ "sha256": "07255pn80w4742sz2h9vbmfxxd8ps2kcn73p7m2bgy02kgbzw42b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 9
+ ],
+ "commit": "8bf67285a25a6756607354d184e36583f2847e7d",
+ "sha256": "07255pn80w4742sz2h9vbmfxxd8ps2kcn73p7m2bgy02kgbzw42b"
+ }
+ },
+ {
+ "ename": "roguel-ike",
+ "commit": "2db1979e039e466268ca7c264988792d3046e19a",
+ "sha256": "1a7sa6nhgi0s4gjh55bhk5cg6q6s7564fk008ibmrm05gfq9wlg8",
+ "fetcher": "github",
+ "repo": "stevenremot/roguel-ike",
+ "unstable": {
+ "version": [
+ 20160120,
+ 302
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "706dcb0687e8016d7d776f9d9e5ace9fdbbca43c",
+ "sha256": "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "706dcb0687e8016d7d776f9d9e5ace9fdbbca43c",
+ "sha256": "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"
+ }
+ },
+ {
+ "ename": "rope-read-mode",
+ "commit": "7bf40e9d550fba9ded11b99032d78c69af21a6f3",
+ "sha256": "1xbbf3slgil19p34k5wsnvq60y64wkz40153sh8y1gxlssmy55fy",
+ "fetcher": "gitlab",
+ "repo": "marcowahl/rope-read-mode",
+ "unstable": {
+ "version": [
+ 20191215,
+ 1240
+ ],
+ "commit": "d1246557e2c9c685b0ee4ec0e58237431b846096",
+ "sha256": "11yd10b6pxg92ybn4lv3n7h7b7xa4xsvsmpz42hbqdarm50hxsdn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 4
+ ],
+ "commit": "71e475ab35555e0a1eca26d73acf1ced911e422e",
+ "sha256": "0x3mmf4gq4d0cqfqbkrrpwhayvmplacck0zc9nlzcn35y17jzpcz"
+ }
+ },
+ {
+ "ename": "ros",
+ "commit": "7df44ae0ba89a2c4089a39b212784a6a359f1521",
+ "sha256": "1frlg1zn9ip2s3ija20rkmf880smk01jz6jclqkygx6kd4fsbi9m",
+ "fetcher": "github",
+ "repo": "DerBeutlin/ros.el",
+ "unstable": {
+ "version": [
+ 20200109,
+ 1940
+ ],
+ "commit": "0babdd3bbc038ee7436db0cc869df35752456268",
+ "sha256": "1f0bxbm1rgvf68q6qbsf63mzr44541aapk4237rs7pkxk81nnrrl"
+ }
+ },
+ {
+ "ename": "rotate",
+ "commit": "7d92e66cad586d4dc6b1de12d1b41b818b5232c2",
+ "sha256": "11a0svvfq29cb4630jq0hz19xk9jfhfjnssm7vg0dnlzpxqi3vif",
+ "fetcher": "github",
+ "repo": "daichirata/emacs-rotate",
+ "unstable": {
+ "version": [
+ 20160909,
+ 836
+ ],
+ "commit": "091b5ac4fc310773253efb317e3dbe8e46959ba6",
+ "sha256": "0msjn7ays71mcw6qmdk0mpjp1rvd7fwz917vmvlcd7cpmvkyfbds"
+ }
+ },
+ {
+ "ename": "roy-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1r49c1v0xjkrpxmq0k2l2nrx95n06b7hbpmr1n7nkil2bxdq275i",
+ "fetcher": "github",
+ "repo": "folone/roy-mode",
+ "unstable": {
+ "version": [
+ 20121208,
+ 1158
+ ],
+ "commit": "0416f561edbc6b4a29fced8be84d2527a9613d65",
+ "sha256": "04jbnm9is2cis75h40znqzjvyjq27ncr2vfank6zglzi4fhxsl0r"
+ }
+ },
+ {
+ "ename": "rpm-spec-mode",
+ "commit": "bb7e188fffda3d4e42690511775e5e32a11e1b34",
+ "sha256": "1ygk0pdhq1hvgzd173h79lxb04b9lmvq4hi70qf9244bqbm0m182",
+ "fetcher": "github",
+ "repo": "stigbjorlykke/rpm-spec-mode",
+ "unstable": {
+ "version": [
+ 20160710,
+ 1136
+ ],
+ "commit": "c1c38050c48ea330c7cea632b8785d66daeefb2b",
+ "sha256": "0427kcvf2ljhzwxskn3jzk0ncrl3f9zcz2sm83d9pmhh5jax2gch"
+ }
+ },
+ {
+ "ename": "rpn-calc",
+ "commit": "47d5b3c931cdbc2351e01d15e2b98c78081c9506",
+ "sha256": "04dj2r4035k0c3x6iyjydshzmq381d60pmscp2hg5m7sp7bqn5xs",
+ "fetcher": "github",
+ "repo": "zk-phi/rpn-calc",
+ "unstable": {
+ "version": [
+ 20200816,
+ 545
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "1554be19acc2644898a2175fa277d1159327c8dc",
+ "sha256": "1b4v9x8f9ykz2dqiv7p7c2f6kbl374i2723idmnvm2c9bc0hbpyv"
+ }
+ },
+ {
+ "ename": "rsense",
+ "commit": "e2149ce3baef9ac01d5b2e8b1a933a3e1206015f",
+ "sha256": "1901xqlpc8fg4sl9j58jn40i2djs8s0cdcqcrzrq02lvk8ssfdf5",
+ "fetcher": "github",
+ "repo": "m2ym/rsense",
+ "unstable": {
+ "version": [
+ 20100511,
+ 405
+ ],
+ "commit": "8b5ee58318747ca1dde84ee41d48c4f50175cf35",
+ "sha256": "0xkr1qn8fm3kv5c11janq5acp1q02abvxc463zijvm2qk735yl4d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "e4297052ef32d06237e8bd1534a0caf70a34ad28",
+ "sha256": "0mfkq8n28lal4lqwp6v0ilz8wrwgg61sbm0jggznwisjqqy3lzrh"
+ }
+ },
+ {
+ "ename": "rspec-mode",
+ "commit": "cd83e61b10da20198de990aa081b47d3b0b44d43",
+ "sha256": "0nyib9rx9w9cbsgkcjx9n8fp77xkzxg923z0rdm3f9kc7njcn0zx",
+ "fetcher": "github",
+ "repo": "pezra/rspec-mode",
+ "unstable": {
+ "version": [
+ 20200615,
+ 1443
+ ],
+ "deps": [
+ "cl-lib",
+ "ruby-mode"
+ ],
+ "commit": "f1029cad2a8d9fd096e9a0f1ae9e7d7e2c8bd1ec",
+ "sha256": "02818knhbnqqnfmlhzr2ak0i6cv6pmbxw2icns2lg8vfr430c286"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 11
+ ],
+ "deps": [
+ "cl-lib",
+ "ruby-mode"
+ ],
+ "commit": "e289e52ec4b3aa1caf35957d721e5568eca2a3bb",
+ "sha256": "0hrn5n7aaymwimk511kjij44vqaxbmhly1gwmlmsrnbvvma7f2mp"
+ }
+ },
+ {
+ "ename": "rtags",
+ "commit": "3dea16daf0d72188c8b4043534f0833fe9b04e07",
+ "sha256": "0s5m4zjvnc1k4gkkizbs4ysvzzbfh45717pksg9bnyzwx5lcw5yd",
+ "fetcher": "github",
+ "repo": "Andersbakken/rtags",
+ "unstable": {
+ "version": [
+ 20200810,
+ 2326
+ ],
+ "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+ "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 38
+ ],
+ "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
+ "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+ }
+ },
+ {
+ "ename": "rtags-xref",
+ "commit": "4e6c219d38a3f3495470fbeeade3f771439e0df0",
+ "sha256": "15f3dcq2r4zhb1agd48k91a2d81ny4697hhyw8g6iq8y7m7nrrxx",
+ "fetcher": "github",
+ "repo": "Andersbakken/rtags",
+ "unstable": {
+ "version": [
+ 20200310,
+ 1909
+ ],
+ "deps": [
+ "rtags"
+ ],
+ "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+ "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 38
+ ],
+ "deps": [
+ "rtags"
+ ],
+ "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
+ "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+ }
+ },
+ {
+ "ename": "rtm",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1bwbaps76pawz73fs7nzkvbii9d57zmfdccpm18dwn6phaqxbhyc",
+ "fetcher": "github",
+ "repo": "pmiddend/emacs-rtm",
+ "unstable": {
+ "version": [
+ 20180329,
+ 1508
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3e3d09387cb84801343ecca8fb02e82f213e7bbe",
+ "sha256": "0cc07lhh27i1ra4alrwb6w322ddi6hw0498nkzf388arhn10h3wv"
+ }
+ },
+ {
+ "ename": "rubik",
+ "commit": "00946ed21b0f05b753c792863f6bcc99c26c32a3",
+ "sha256": "07bbh5vjw3jdxf06lxqm45y8ijcai391mf97xw5c29z33vhqs267",
+ "fetcher": "github",
+ "repo": "Kurvivor19/rubik-mode",
+ "unstable": {
+ "version": [
+ 20180222,
+ 2014
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c8dab1726463dbc9042a0b00186e4a8df02eb868",
+ "sha256": "13razzmk70h5sd69ms0a3ljr285zcad0wnrqkfxbgi5rnppqlkh1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "calc",
+ "cl-lib"
+ ],
+ "commit": "7ec955639865ca8e99a941843e19b12be5015a47",
+ "sha256": "0fdjg6gpg45m5myq517vkprmvh50xw10dqa8vwr9hfz2z8dy18ja"
+ }
+ },
+ {
+ "ename": "rubocop",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "07ma4fv015wzpj5j4rdb0ckwwmhkxs3k5vy33qxgwghqmn6xby6x",
+ "fetcher": "github",
+ "repo": "rubocop-hq/rubocop-emacs",
+ "unstable": {
+ "version": [
+ 20190326,
+ 1424
+ ],
+ "commit": "03bf15558a6eb65e4f74000cab29412efd46660e",
+ "sha256": "0bl1l2qbpdknn93wr95a49gdnpl3pwpjj3rka3s44hvihny9p8q0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "980bedb455e3551d35a212fae515c054888907c1",
+ "sha256": "152ara2p59imry2ymfnk5mycbc07rblcmfmqjgm5fijb2x94xv8p"
+ }
+ },
+ {
+ "ename": "rubocopfmt",
+ "commit": "ac01edffceea771d8fe41326e28dd9881f1661ab",
+ "sha256": "06ficv1r3axzi7q659pk1m3gbpf44nd2ir2ikmi8mr8rq44sqps0",
+ "fetcher": "github",
+ "repo": "jimeh/rubocopfmt.el",
+ "unstable": {
+ "version": [
+ 20200713,
+ 1144
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b84810105940aa5e0bde20c9a89359c95c9b6917",
+ "sha256": "1w922wl7zab61v6z09rh3xpjnfi97c802ijvv4g92nqds6fhnym1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b84810105940aa5e0bde20c9a89359c95c9b6917",
+ "sha256": "1w922wl7zab61v6z09rh3xpjnfi97c802ijvv4g92nqds6fhnym1"
+ }
+ },
+ {
+ "ename": "ruby-compilation",
+ "commit": "ca7bf43ef8893bf04e9658390e306ef69e80a156",
+ "sha256": "1x1vpkjpx95sfcjhkx4cafypj0nkbd1i0mzxx3lmcrsmg8iv0rjc",
+ "fetcher": "github",
+ "repo": "eschulte/rinari",
+ "unstable": {
+ "version": [
+ 20150709,
+ 640
+ ],
+ "deps": [
+ "inf-ruby"
+ ],
+ "commit": "134438af8fbdfa9c8077267c768d273a9792b484",
+ "sha256": "0ndrqj7qsf9rky4v928803ib66p37vyhxgyc42vshx86q73v4cyg"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 11
+ ],
+ "deps": [
+ "inf-ruby"
+ ],
+ "commit": "e2ed2fa55ac3435a86b1cf6a4f2d29aebc309135",
+ "sha256": "1wqhqv2fc5h10igv1php51bayx0s7qw4m9gzx9by80dab8lwa0vk"
+ }
+ },
+ {
+ "ename": "ruby-electric",
+ "commit": "ccae5ba7c1088837f2dd6cb0992f49ea2dc5bcdf",
+ "sha256": "1fj5vb4n7jiq93z0yakr39vyfd0f5yhf4p4aw4bdm9cx5dmpr8g6",
+ "fetcher": "github",
+ "repo": "ruby/elisp-ruby-electric",
+ "unstable": {
+ "version": [
+ 20200328,
+ 1528
+ ],
+ "commit": "f2323cd9b5df3b34aa9810ba8109502824925d23",
+ "sha256": "1p0l0fsn0jcgb4raimyc4d1wpfksrfhn0rkwdazadvm6s8baydf7"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 3
+ ],
+ "commit": "f2323cd9b5df3b34aa9810ba8109502824925d23",
+ "sha256": "1p0l0fsn0jcgb4raimyc4d1wpfksrfhn0rkwdazadvm6s8baydf7"
+ }
+ },
+ {
+ "ename": "ruby-end",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1cnmdlkhm8xsifbjs6ymvi92gdnxiaghb04h10qg41phj6v7m9mg",
+ "fetcher": "github",
+ "repo": "rejeep/ruby-end.el",
+ "unstable": {
+ "version": [
+ 20141215,
+ 1223
+ ],
+ "commit": "a136f75abb6d5577ce40d61dfeb778c2e9bb09c0",
+ "sha256": "1f530gaiy010qln51g83m1llazhyfi8ws0lvsb982fhi4dh1xfk5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "commit": "648b81af136a581bcef387744d93c011d9cdf54b",
+ "sha256": "1cpz9vkp57nk682c5xm20g7bfj5g2aq5ahpk4nhgx7pvd3xvr1ds"
+ }
+ },
+ {
+ "ename": "ruby-extra-highlight",
+ "commit": "73488b0aea4eb470a1f235fece0753797bfd7e35",
+ "sha256": "0dybf39yv0yzy8bsz9k5s64033id6hq4v268m11la4bp5fbv5r37",
+ "fetcher": "github",
+ "repo": "Lindydancer/ruby-extra-highlight",
+ "unstable": {
+ "version": [
+ 20171106,
+ 1933
+ ],
+ "commit": "83942d18eae361998d24c1c523b308eea821f048",
+ "sha256": "18mq0ap7f0b22cdp2wdj0y2fqsahm2ngf7fvdy0mkkfs3818awlp"
+ }
+ },
+ {
+ "ename": "ruby-factory",
+ "commit": "3ce422ccc34eb325ce432284e44af48607251da2",
+ "sha256": "0v8009pad0l41zh9r1wzcx1h6vpzhr5rgpq6rb002prxz2lcbd37",
+ "fetcher": "github",
+ "repo": "sshaw/ruby-factory-mode",
+ "unstable": {
+ "version": [
+ 20160102,
+ 721
+ ],
+ "deps": [
+ "inflections"
+ ],
+ "commit": "2bb7ccc2fccb5257376a989aa395bc7b9eb1d55d",
+ "sha256": "15b2rs6m4d511qqkc2gc8k15mbqzrgv6s3hpypajl8nvqa79xnyd"
+ }
+ },
+ {
+ "ename": "ruby-hash-syntax",
+ "commit": "c7d21a43a4bf267507bdc746ec9d0fd82049c0af",
+ "sha256": "0bvwyagfh7mn457iibrpv1ay75089gp8pg608gbm24m0ix82xvb5",
+ "fetcher": "github",
+ "repo": "purcell/ruby-hash-syntax",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2214
+ ],
+ "commit": "d64036278dcfb4fa0603e6697142e02c2876f634",
+ "sha256": "02s494r9iy47jd74cd0z1dz1igh8rw2jbyybahy9pivmcn7fnqkr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "commit": "89fc364a837d7a78ecce34380f09c073a83e30e0",
+ "sha256": "1nwf3681fa6lfqr14n9wihckpi220hvamv1ppzmrhn4k49vxljy8"
+ }
+ },
+ {
+ "ename": "ruby-interpolation",
+ "commit": "ca7bf43ef8893bf04e9658390e306ef69e80a156",
+ "sha256": "07idndxw8vgfrk5zfmjjhmixza35mqxwjhsrbjrq5yy72i5ivznp",
+ "fetcher": "github",
+ "repo": "leoc/ruby-interpolation.el",
+ "unstable": {
+ "version": [
+ 20131112,
+ 1652
+ ],
+ "commit": "1978e337601222cedf00e117bf4b5cac15d1f203",
+ "sha256": "1r2f5jxi6wnkmr1ssvqgshi97gjvxvf3qqc0njg1s33cy39wpqq5"
+ }
+ },
+ {
+ "ename": "ruby-refactor",
+ "commit": "8d223ef5b9e51265c510f1cf7888b621e47bfdcf",
+ "sha256": "0nwinnnhy72h1ihjlnjl8k8z3yf4nl2z7hfv085gwiacr6nn2rby",
+ "fetcher": "github",
+ "repo": "ajvargo/ruby-refactor",
+ "unstable": {
+ "version": [
+ 20160214,
+ 1650
+ ],
+ "deps": [
+ "ruby-mode"
+ ],
+ "commit": "e6b7125878a08518bffec6942df0c606f748e9ee",
+ "sha256": "13008ih4hwa80bn2dbgj551knbvgpriz5sb241rkf7mifmlfzgsi"
+ }
+ },
+ {
+ "ename": "ruby-test-mode",
+ "commit": "f781a76a519afc0222cdf7255822a23e33745deb",
+ "sha256": "08x9pskxz1hvvqablx5mdp1g54n28kpmd10qwrasq2zjbdjghj48",
+ "fetcher": "github",
+ "repo": "ruby-test-mode/ruby-test-mode",
+ "unstable": {
+ "version": [
+ 20200521,
+ 907
+ ],
+ "deps": [
+ "pcre2el",
+ "ruby-mode"
+ ],
+ "commit": "5bb6b7b7ba0a4c91ba2e029853215e76e5df7772",
+ "sha256": "19sacch06cxj1803m8ac246cl9sp1wsxbp7zgrhmw1gdpsnpxac8"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "7d3c04b60721665af93ffb4abc2a7b3191926431",
+ "sha256": "008zj9rg2cmh0xd7g6kgx6snm5sspxs4jmfa8hd43wx5y9pmlb8f"
+ }
+ },
+ {
+ "ename": "ruby-tools",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0zpk55rkrqyangyyljxzf0n1icgqnpdzycwack5rji556h5grvjy",
+ "fetcher": "github",
+ "repo": "rejeep/ruby-tools.el",
+ "unstable": {
+ "version": [
+ 20151209,
+ 1615
+ ],
+ "commit": "6b97066b58a4f82eb2ecea6434a0a7e981aa4c18",
+ "sha256": "0jd9acycpbdd90hallrl0k5055rypp502qv4c6i286p7f9is4kvq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "6e7fb376085bfa7010ecd3dfad63adacc6e2b4ac",
+ "sha256": "1zvhq9l717rjgkm7bxz5gqkmh5i49cshwzlimb3h78kpjw3hxl2k"
+ }
+ },
+ {
+ "ename": "rufo",
+ "commit": "123b89e06a44ef45150ca7243afc41302dfb6c6e",
+ "sha256": "0pxsifcxic3q54rqj0jbj20hq7f2s4icl57lligf9g0w23qzj239",
+ "fetcher": "github",
+ "repo": "danielma/rufo.el",
+ "unstable": {
+ "version": [
+ 20170718,
+ 1416
+ ],
+ "commit": "020b02ed6e9ab49e79d2ddf63e4ee2684c1728f4",
+ "sha256": "0nkjs6012dxayf2y8d7sw11czgb7lhyhcbcbmdbicnygf7wbm67h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "4e7413fafd0320f30190ae9835ab021cf7a9ebdc",
+ "sha256": "10gwr479q4kd6ndp9r2nzj7rzap21q3f0l3icrviah9l5xzdx2x0"
+ }
+ },
+ {
+ "ename": "rum-mode",
+ "commit": "0c9f8ce2dee376f1f34e89e9642c472a148fca77",
+ "sha256": "1838w8rk5pgp1hn7a0m83mfw9jin4qv5mkyl68hl3gj7g9lhn7sd",
+ "fetcher": "github",
+ "repo": "rumlang/rum-mode",
+ "unstable": {
+ "version": [
+ 20180127,
+ 22
+ ],
+ "commit": "b69a3866e0299cae8c9c805d644e69b2c17b64de",
+ "sha256": "13sm2v7al9658n17dka6dclzsprccrm3zycx6nwsgl99i14cnn99"
+ }
+ },
+ {
+ "ename": "run-stuff",
+ "commit": "68b7cb0ffe90cd56e2ca6e91e33668be586a1da7",
+ "sha256": "038brammgivaq2423sx0iy6n7d7lyx3r939a0b85ix8zvkcbinia",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-run-stuff",
+ "unstable": {
+ "version": [
+ 20200106,
+ 443
+ ],
+ "commit": "d9f7fde3d33446481655d18ca5423c03a23c2e41",
+ "sha256": "1g0n3cji2yj35hkcq3p4wnw3iv99k2hagidg6z7qpfavxasyxyn9"
+ }
+ },
+ {
+ "ename": "runner",
+ "commit": "f3a4e051ab45b8036b91aa0c50bd3f93cd85e9d0",
+ "sha256": "09apmk22swj05z77ziij31jj6b3g221qv3mw3mymffzxn5ap2rbx",
+ "fetcher": "github",
+ "repo": "thamer/runner",
+ "unstable": {
+ "version": [
+ 20160524,
+ 743
+ ],
+ "commit": "a211d57ddc600410d07a8b534920ba905b093d87",
+ "sha256": "1ddf5jydpc43wgvw4a669wifij71b4r8zfazcqfdpyfh1j4m591b"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8
+ ],
+ "commit": "a211d57ddc600410d07a8b534920ba905b093d87",
+ "sha256": "1ddf5jydpc43wgvw4a669wifij71b4r8zfazcqfdpyfh1j4m591b"
+ }
+ },
+ {
+ "ename": "runtests",
+ "commit": "95c49160919d310256501d7c71102f8367aae5aa",
+ "sha256": "0m9rqjb5c0yqr2wv5dsdiba21knr63b5pxsqgbkbybi15zgxcicb",
+ "fetcher": "github",
+ "repo": "sunesimonsen/emacs-runtests",
+ "unstable": {
+ "version": [
+ 20150807,
+ 831
+ ],
+ "commit": "ed90249f24cc48290018df48b9b9b7172440be3e",
+ "sha256": "18w6gkpxp0g7rzvnrk8vvr267y768dfik447ssq8jpz3jlr5jnq6"
+ }
+ },
+ {
+ "ename": "russian-holidays",
+ "commit": "d4830900e371e7036225ea434c52204f4d2481a7",
+ "sha256": "0lawjwz296grbvb4a1mm1j754q7mpcanyfln1gqxr339kqx2aqd8",
+ "fetcher": "github",
+ "repo": "grafov/russian-holidays",
+ "unstable": {
+ "version": [
+ 20170109,
+ 2140
+ ],
+ "commit": "b285a30f29d85c48e3ea4eb93972d34a090c167b",
+ "sha256": "1mz842gvrscklg2w2r2q2wbj92qr31h895k700j3axqx6k30ni0h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "b285a30f29d85c48e3ea4eb93972d34a090c167b",
+ "sha256": "1mz842gvrscklg2w2r2q2wbj92qr31h895k700j3axqx6k30ni0h"
+ }
+ },
+ {
+ "ename": "rust-auto-use",
+ "commit": "a9584d883934e36400ec1924755df34149ad2f9f",
+ "sha256": "0jdg8xgxry0h9nbb9m446gpw54rymw3152n84lvsg5bv51861114",
+ "fetcher": "github",
+ "repo": "vmalloc/rust-auto-use.el",
+ "unstable": {
+ "version": [
+ 20200608,
+ 1359
+ ],
+ "commit": "d5205f7b9b9eae0f7d0893f87d3391464719f9c0",
+ "sha256": "01jhb4bjb4dc4m4nw6n16dc4cc7x9z7j2vri0s1y16v1bm4cv26g"
+ }
+ },
+ {
+ "ename": "rust-mode",
+ "commit": "8f6e5d990d699d571dccbdeb13327b33389bb113",
+ "sha256": "1i1mw1v99nyikscg2s1m216b0h8svbzmf5kjvjgk9zjiba4cbqzc",
+ "fetcher": "github",
+ "repo": "rust-lang/rust-mode",
+ "unstable": {
+ "version": [
+ 20200709,
+ 723
+ ],
+ "commit": "ca7d99c6fd90fc1e636aa9d4020a2f077786a0c3",
+ "sha256": "1m24g08q7w76aq0gnb2pdp0jbadi19fw4jmbgmx47180glz082qh"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "00177f542976601d7f114fed82caaa3daad7b177",
+ "sha256": "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"
+ }
+ },
+ {
+ "ename": "rust-playground",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0ml0zr9vz2vjd9wr0v706w4v4qqfzpa56rdzfak2kb5llx53j89v",
+ "fetcher": "github",
+ "repo": "grafov/rust-playground",
+ "unstable": {
+ "version": [
+ 20200116,
+ 1043
+ ],
+ "commit": "5a117781dcb66065bea7830dd73618008fc34949",
+ "sha256": "1vmas5mg32lsyiki753a7hy597f54k1rx9sjiahw63jpgg785zys"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "092c8b11d62dea23953a004744833092bac85fe1",
+ "sha256": "0n2c1pjbvy46ic0k84jd3ffwwb5hibjqc1wv7knzkldi5agigfsh"
+ }
+ },
+ {
+ "ename": "rustic",
+ "commit": "716c14a2ed8f5817c09c1ff530a4980c17b44bb3",
+ "sha256": "13bwrdqmm6xb34k8r72c0r3b9aym5dwsalp63bkfh9k9kq9hic0n",
+ "fetcher": "github",
+ "repo": "brotzeit/rustic",
+ "unstable": {
+ "version": [
+ 20200724,
+ 1517
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "ht",
+ "let-alist",
+ "markdown-mode",
+ "projectile",
+ "s",
+ "seq",
+ "spinner",
+ "xterm-color"
+ ],
+ "commit": "75b99201bb4e7a0bd990c006896ad7897f284ca2",
+ "sha256": "1ddma5fi2yaxg2c2hvigfz4hbp218l71ixcnnkzp8ilqr8m2jvjj"
+ }
+ },
+ {
+ "ename": "rvm",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "08i7cmav2cz73jp88ww0ay2yjhk9dj8146836q4sij1bl1slbaf8",
+ "fetcher": "github",
+ "repo": "senny/rvm.el",
+ "unstable": {
+ "version": [
+ 20150402,
+ 1442
+ ],
+ "commit": "081d5173158054c6d0780b9462c74c5697eac1fc",
+ "sha256": "1s950jmhrwjmzrr3qv3636sn2rhxfvaqlrl36h8700pq3791l1fs"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "commit": "8e45a9bad8e317ff195f384dab14d3402497dc79",
+ "sha256": "0iblk0vagjcg3c8q9hlpwk7426ms7aq0s80izgvascfmyqycv6qm"
+ }
+ },
+ {
+ "ename": "ryo-modal",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "06pm6grsdcldi1khbjfjp7lpi6f6x3pa5ikspp0xdwijnmi0xrrf",
+ "fetcher": "github",
+ "repo": "Kungsgeten/ryo-modal",
+ "unstable": {
+ "version": [
+ 20200515,
+ 1703
+ ],
+ "commit": "5d988e8b3a5d3d6f2f58d97031d2f500ef55473b",
+ "sha256": "0p7f02h5vsf4500gf4nl95myvh7pha47rdllscgs3b9jcx1kgyz2"
+ }
+ },
+ {
+ "ename": "s",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0dars9212z0yv97mj4615h23vd22vy8b6cw2n433z9jhif3aybqa",
+ "fetcher": "github",
+ "repo": "magnars/s.el",
+ "unstable": {
+ "version": [
+ 20180406,
+ 808
+ ],
+ "commit": "43ba8b563bee3426cead0e6d4ddc09398e1a349d",
+ "sha256": "0bqdlcg5pah9a50dww8n5n0lzc8bzmpc230fdkinw8zrxph13p12"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 12,
+ 0
+ ],
+ "commit": "12f116d58ac03706496bd682c6449b452681874e",
+ "sha256": "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"
+ }
+ },
+ {
+ "ename": "s-buffer",
+ "commit": "f1bf91527219e7afc8e113134a958f3adb862a5a",
+ "sha256": "07kivgzv24psjq1240gwj9wkndq4bhvjh38x552k90m9v6jz8l6m",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-s-buffer",
+ "unstable": {
+ "version": [
+ 20130605,
+ 2124
+ ],
+ "deps": [
+ "noflet",
+ "s"
+ ],
+ "commit": "f95d234282377f00a2c3a9846681080cb95bb1df",
+ "sha256": "06ng960fj2ivnwb0hrn0qic5x8hb0sswjzph01zmwhbfnwykhr85"
+ }
+ },
+ {
+ "ename": "s12cpuv2-mode",
+ "commit": "6c1b9bbdc4deb17636270c7f2be0b43b647c695a",
+ "sha256": "0mrcf5s7vmkyrsdka7qd2vfcmdy8hzf6a6g14la88rxrv4chv29s",
+ "fetcher": "github",
+ "repo": "AdamNiederer/s12cpuv2-mode",
+ "unstable": {
+ "version": [
+ 20171013,
+ 2051
+ ],
+ "commit": "b17d4cf848dec1e20e66458e5c7ff77a2c051a8c",
+ "sha256": "1fc132gv48xwrxiw139kc9f5wkhjgsgqdfm6b7v97xj5025zg6hr"
+ }
+ },
+ {
+ "ename": "s3ed",
+ "commit": "32ba78167bd6908b49f340f6da48643ac38f25f2",
+ "sha256": "08scv3aqnidz28rad5npz7b4pz9dx05rs72qkp3ybkk2vhqf2qwa",
+ "fetcher": "github",
+ "repo": "mattusifer/s3ed",
+ "unstable": {
+ "version": [
+ 20200720,
+ 1313
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "3e3b962d3848e6cc8ce9dc491b2e29e915a5c351",
+ "sha256": "0v8c3zwnfy40clbq6lb03z33n5pj36sz5jpprmgppms3w2ba6fw8"
+ }
+ },
+ {
+ "ename": "sackspace",
+ "commit": "073e92e05c4bd6197a5ad24f470b21a97f5bb7b8",
+ "sha256": "1m10iw83k6m7v7sg2dxzdy83zxq6svk8h9fh4ankyn3baqrdxg5z",
+ "fetcher": "github",
+ "repo": "cofi/sackspace.el",
+ "unstable": {
+ "version": [
+ 20130719,
+ 956
+ ],
+ "commit": "fd0480eaaf6d3d11fd30ac5feb2da2f4f7572708",
+ "sha256": "06gqqbkn85l2p05whmr4wkg9axqyzb7r7sgm3r8wfshm99kgpxvl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 2
+ ],
+ "commit": "fd0480eaaf6d3d11fd30ac5feb2da2f4f7572708",
+ "sha256": "06gqqbkn85l2p05whmr4wkg9axqyzb7r7sgm3r8wfshm99kgpxvl"
+ }
+ },
+ {
+ "ename": "sage-shell-mode",
+ "commit": "eb875c50c2f97919fd0027869c5d9970e1eaf373",
+ "sha256": "0ivqiigmp9cf88j4xapzanjpbx692r70wb4i25mnppqsi3jlwxdv",
+ "fetcher": "github",
+ "repo": "sagemath/sage-shell-mode",
+ "unstable": {
+ "version": [
+ 20200524,
+ 958
+ ],
+ "deps": [
+ "cl-lib",
+ "deferred",
+ "let-alist"
+ ],
+ "commit": "855fb4ece47cea2c72295ce2158e0915829835b5",
+ "sha256": "12s289g5xc1b7szyp0zhxdxh6rzhlhkzwiwg14hf020c41mz27am"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "deferred",
+ "let-alist"
+ ],
+ "commit": "e8bc089e8dfd76f688160e2ac77aee985afeade7",
+ "sha256": "166plwg9ggivr3im0yfxw8k6m9ral37jzznnb06kb6g0zycb4aps"
+ }
+ },
+ {
+ "ename": "sailfish-scratchbox",
+ "commit": "e76261e7dffcb607839440843b085709c2c90b26",
+ "sha256": "1s0glsi4fm6is7fv9vy1h14frq8a4bgahkc8w08vqfnpiin2r567",
+ "fetcher": "github",
+ "repo": "vityafx/sailfish-scratchbox.el",
+ "unstable": {
+ "version": [
+ 20171202,
+ 1332
+ ],
+ "commit": "65c6b04abadd2cdeb4cc2dc2a8b96b06e0f27ed8",
+ "sha256": "18c6l36sdc3any2fccm49wiyrda97pnd07jdir22wfl5wba7xnj8"
+ }
+ },
+ {
+ "ename": "salesforce-utils",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0b70w92zghid6n0ba28dh5r3pckr8jsd1743qyi8vj04ih1dns5i",
+ "fetcher": "github",
+ "repo": "grimnebulin/emacs-salesforce",
+ "unstable": {
+ "version": [
+ 20160814,
+ 154
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "73328baf0fb94ac0d0de645a8f6d42e5ae27f773",
+ "sha256": "1zsznz9pn9dj672jii6wcvs47yqyxv3dsm5qy1dax1d6gvvbf4zq"
+ }
+ },
+ {
+ "ename": "salt-mode",
+ "commit": "9dcf1a93a06fc42581521c88cfd988b03bedc000",
+ "sha256": "1n7i9d6qpjsdcgbzmbf63y4c7ggxh5wsim8fd0casnrq9bl7ssym",
+ "fetcher": "github",
+ "repo": "glynnforrest/salt-mode",
+ "unstable": {
+ "version": [
+ 20200210,
+ 1200
+ ],
+ "deps": [
+ "mmm-jinja2",
+ "mmm-mode",
+ "yaml-mode"
+ ],
+ "commit": "c46b24e7fdf4a46df5507dc9c533bbc0064a46fa",
+ "sha256": "07qnn8svgd0ishajx5dr91mk4nx9fm9phxsv00cjapvpd4f26xn6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "mmm-jinja2",
+ "mmm-mode",
+ "yaml-mode"
+ ],
+ "commit": "6a1fedb4da7181b00f1bebfc88c87dd2f0c58766",
+ "sha256": "1vygzx7i3cxghji4517sa2v9w5yl84mjpfixf000mf897xpk7288"
+ }
+ },
+ {
+ "ename": "sane-term",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "08b8zlr8qzxfrpg9lqiyam3sb8a8rzak79ra4r6ljjppyj4zmwi7",
+ "fetcher": "github",
+ "repo": "adamrt/sane-term",
+ "unstable": {
+ "version": [
+ 20181130,
+ 101
+ ],
+ "commit": "46352169bd6d2a86ca9c2052cd05ecd16fc7657b",
+ "sha256": "1k0b1w9a3b89ricji92nq4cqbh1l2fm7ly1bdl8pvf59drp7cpd4"
+ }
+ },
+ {
+ "ename": "sass-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1byjk5zpzjlyiwkp780c4kh7s9l56y686sxji89wc59d19rp8800",
+ "fetcher": "github",
+ "repo": "nex3/sass-mode",
+ "unstable": {
+ "version": [
+ 20190502,
+ 53
+ ],
+ "deps": [
+ "cl-lib",
+ "haml-mode"
+ ],
+ "commit": "247a0d4b509f10b28e4687cd8763492bca03599b",
+ "sha256": "1nhk12lhvkwdk8s8fx33p6rssi0gcfx2zkanq23rz6k28v5zi5yp"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 18
+ ],
+ "deps": [
+ "haml-mode"
+ ],
+ "commit": "26a66e331b507fb420e3bb7d0a6a8fbb04294343",
+ "sha256": "0lxrq3mzabkwj5bv0mgd7fnx3dsx8vxd5kjgb79rjfra0m7pfgln"
+ }
+ },
+ {
+ "ename": "sauron",
+ "commit": "9d30dcc4715422133e1bb00ad7a8e25b060387e4",
+ "sha256": "01fk1xfh7r16fb1xg5ibbs7gci9dja49msdlf7964hiq7pnnhxgb",
+ "fetcher": "github",
+ "repo": "djcb/sauron",
+ "unstable": {
+ "version": [
+ 20200516,
+ 1406
+ ],
+ "commit": "d2e06866d1045fa16015d135b8964d9caacc2985",
+ "sha256": "04z3hn46m6xy3jpfd00c7x24h27dgv5zcysci3lxzmmq9k4iqsg3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10
+ ],
+ "commit": "a9877f0efa9418c41d25002b58d1c2f8c69ec975",
+ "sha256": "1mcag7qad1npjn096byakb8pmmi2g64nlf2vcc12irzmwia85fml"
+ }
+ },
+ {
+ "ename": "save-load-path",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "1cl9kkv996m2irm9i5n7f020zqzvrsv9dyscc16ca9jsn16msww2",
+ "fetcher": "github",
+ "repo": "rubikitch/save-load-path",
+ "unstable": {
+ "version": [
+ 20140206,
+ 1214
+ ],
+ "commit": "6cb763a37e2b8af505bff2bcd11fd49c9ea04d66",
+ "sha256": "0rxcg60lxaabdx9gjj17sfxnr09694viphlhhk355dcc4v5ngbdm"
+ }
+ },
+ {
+ "ename": "save-visited-files",
+ "commit": "3f5979e2c2dbfc4e8e3b4d2881cf860c26f63db5",
+ "sha256": "1pmjz27dlp5yrihgsy8q1bwbhkkj3sn7d79ccvljvzxg5jn1grkd",
+ "fetcher": "github",
+ "repo": "nflath/save-visited-files",
+ "unstable": {
+ "version": [
+ 20200212,
+ 414
+ ],
+ "commit": "8203a05a322324ec17b14437c8dfb38efdb53241",
+ "sha256": "1zc7f5l7i60fpi8vw41xhpnhz5jpiqkk7fdkd2k6lnmv7jnnilfc"
+ }
+ },
+ {
+ "ename": "savekill",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "14hfqia7d2v1dn1wdwsphrrkq9hc57721irms9s9vinign0pqx7h",
+ "fetcher": "github",
+ "repo": "rubikitch/savekill",
+ "unstable": {
+ "version": [
+ 20140418,
+ 229
+ ],
+ "commit": "67fc94e3d8fe8ce3ca16f90518f6a46479b63e34",
+ "sha256": "0h8bl28p5xrs9daapcjkslm066a4hqlb764i5nz1db0lwrvr0csm"
+ }
+ },
+ {
+ "ename": "saveplace-pdf-view",
+ "commit": "94efcb8e99185753d73c7436c18a086c441c0d7f",
+ "sha256": "1z43sb8fyg8zhlcmpn2vbivjnzljka64q146v5v81k990pjvk3z1",
+ "fetcher": "github",
+ "repo": "nicolaisingh/saveplace-pdf-view",
+ "unstable": {
+ "version": [
+ 20200719,
+ 113
+ ],
+ "deps": [
+ "pdf-tools"
+ ],
+ "commit": "bbbc466fff060b372a9d2b30e48ec6bbb7d03095",
+ "sha256": "13dxd06dicv50rl1kk6c5971iaj7x3imkqs5q2ndm0daqzrp0lva"
+ }
+ },
+ {
+ "ename": "say-what-im-doing",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "0wi7318q7mms4wjbzhnsw298bjh7g957dnra0bvg87vv48pz3yfp",
+ "fetcher": "github",
+ "repo": "Benaiah/say-what-im-doing",
+ "unstable": {
+ "version": [
+ 20160706,
+ 1931
+ ],
+ "commit": "5b2ce6783b02805bcac1107a149bfba3852cd9d5",
+ "sha256": "0wy4hrc44ajl88krp6qy40szl2kl2wc3xjz3y4n250d1v81k25xi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "4acc16360a29646040b51db158ba7fdeb711449d",
+ "sha256": "1gkzgcnh5ib4j5206mx8gbwj5ykay19vqlfg9070m2r09d1a55qf"
+ }
+ },
+ {
+ "ename": "sayid",
+ "commit": "9a15a17a5aa78aed72958b2a1bde53f0c0ab5be7",
+ "sha256": "065mxb2la3dq2zqyb8dfksb18fpqym04nnax5rrp19izcw488qsm",
+ "fetcher": "github",
+ "repo": "clojure-emacs/sayid",
+ "unstable": {
+ "version": [
+ 20190919,
+ 654
+ ],
+ "deps": [
+ "cider"
+ ],
+ "commit": "cbc3546fb6b1374080f1646ac3a6532a5723b7eb",
+ "sha256": "06aysbwr4lr9cd8mbfdpkiz8458hwl5qg41nq1wnl5dx0gvw3fgn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 18
+ ],
+ "deps": [
+ "cider"
+ ],
+ "commit": "5412d0e129337f0f97a5501521f86dd7deee5804",
+ "sha256": "1immns40clz78frsd4dc5ck5n90ac5pfid40bw3phxwr4prhmgf6"
+ }
+ },
+ {
+ "ename": "sbt-mode",
+ "commit": "824a7ac85d5c2b8f1c7643bff4eb5931a4680309",
+ "sha256": "1i0056y27bcjpqrqgjhl14qk53r3ny8zzadsgyw2jqf5jvg561bc",
+ "fetcher": "github",
+ "repo": "hvesalai/emacs-sbt-mode",
+ "unstable": {
+ "version": [
+ 20200521,
+ 632
+ ],
+ "commit": "4358ed862a1b1ec18ac9699afb4862146669eb79",
+ "sha256": "1qm5ziilapfpafqch3pl5iijfj1kwccl2r7g4xl5a2pqnc480sjl"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "commit": "e658af140547cbef495c33535c7f694a501d318c",
+ "sha256": "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"
+ }
+ },
+ {
+ "ename": "scad-mode",
+ "commit": "2d27782b9ac8474fbd4f51535351207c9c84984c",
+ "sha256": "04b4y9jks8sslgmkx54fds8fba9xv54z0cfab52dy99v1301ms3k",
+ "fetcher": "github",
+ "repo": "openscad/openscad",
+ "unstable": {
+ "version": [
+ 20200628,
+ 2256
+ ],
+ "commit": "0c9a36b82c7129a0fdce20ce99e15ecdffd3b437",
+ "sha256": "0qsvi7d3bcsai99dvbdfm8n6qafvwj51r4g4ph5jch2f1yb8m995"
+ }
+ },
+ {
+ "ename": "scad-preview",
+ "commit": "18a043064223906510adbb837f1be329252dbd50",
+ "sha256": "0wcd2r60ibbc2mzpq8fvyfc1fy172rf9kzdj51p4jyl51r76i86z",
+ "fetcher": "github",
+ "repo": "zk-phi/scad-preview",
+ "unstable": {
+ "version": [
+ 20200816,
+ 549
+ ],
+ "deps": [
+ "scad-mode"
+ ],
+ "commit": "75fe00a9aaf875ac97930bdb334aef9e479e41d5",
+ "sha256": "0vdb9ib76fjdvm3f13v3kh7x04izq993crrzsqp0vs5nilbkrs8c"
+ }
+ },
+ {
+ "ename": "scala-mode",
+ "commit": "eb0b5735e9d930502ea7346e29d350ba8068440c",
+ "sha256": "1wnl3ily5qsff36z6fkk86m58w591yc3m2nka22vslafj8m8gwl8",
+ "fetcher": "github",
+ "repo": "hvesalai/emacs-scala-mode",
+ "unstable": {
+ "version": [
+ 20200524,
+ 1304
+ ],
+ "commit": "1d08e885b1489313666c7f15a3962432a4f757ee",
+ "sha256": "06g6szxb9a4ih90mcryv9r1h6nqbpk3x4icd1i6nh2ky1sj6s37q"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "46bb948345f165ebffe6ff3116e36a3b8a3f219d",
+ "sha256": "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"
+ }
+ },
+ {
+ "ename": "scalariform",
+ "commit": "1912f795e5842be534160e3879bfb96f3440e163",
+ "sha256": "096y63j91910hqsy6qvz16c9lzyi7ni3r7h039z5zw2v97aggh9i",
+ "fetcher": "github",
+ "repo": "zwild/scalariform",
+ "unstable": {
+ "version": [
+ 20190114,
+ 215
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "478a15ccb4f825aba73262bccd3e61ce7017f64b",
+ "sha256": "1c76jnj35bkcq2rhdq6d57b7vf6rvn8rpzpx49ywkxz4cx36svv6"
+ }
+ },
+ {
+ "ename": "scf-mode",
+ "commit": "376be7f8903dbea69643600ae14e934ee5e2a11b",
+ "sha256": "0acbrw94q6cr9b29mz1wcbwi1g90pbm7ly2xbaqb2g8081r5rgg0",
+ "fetcher": "github",
+ "repo": "lewang/scf-mode",
+ "unstable": {
+ "version": [
+ 20151122,
+ 248
+ ],
+ "commit": "dbfcdcd89034f208d65e181af58e0d73ad09f8b2",
+ "sha256": "0m7hanpc2skmsz783m0212xd10y31gkj5n6w8gx9s989l1y4i1b8"
+ }
+ },
+ {
+ "ename": "scheme-complete",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "1mp9gssd2fx3ra2bjd7w311hwmflhybr5x574qb12603gjkgrp1h",
+ "fetcher": "github",
+ "repo": "ashinn/scheme-complete",
+ "unstable": {
+ "version": [
+ 20181029,
+ 1255
+ ],
+ "commit": "b86ee41d48664839181498313f4f3dc2fef17d6f",
+ "sha256": "1by7ky8za6idam4m4xgmf0f5ss0cacd7wv53glhmjb4nslxhgl7d"
+ }
+ },
+ {
+ "ename": "schrute",
+ "commit": "505fc4d26049d4e2973a54b24117ccaf4f2fb7e7",
+ "sha256": "1sr49wr3738sqfzix7v9rj6bvv7q2a46qdkimn9z7rnsjys9i7zy",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/shackra/dwight-k.-schrute",
+ "unstable": {
+ "version": [
+ 20170521,
+ 1840
+ ],
+ "commit": "59faa6c4232ae183cea93237301acad8c0763997",
+ "sha256": "1w5l1vf4cn4psrxgnq5n6j3zw644s70inpa17vsvng3sk5r8crcb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "commit": "08ab6565fa94f3a8016163fe6f7be1932af1156b",
+ "sha256": "0l1k6wjjr569lk5k8ydwq13041kn889g20qbzf79qj1ws96rim4m"
+ }
+ },
+ {
+ "ename": "scihub",
+ "commit": "93a89f2c198c29fa1b62839f51610eb881d1d0ed",
+ "sha256": "12m2yiwr1hkzwjykm400x549yzkrkqmypfip5xsarawnb87g9czy",
+ "fetcher": "github",
+ "repo": "emacs-pe/scihub.el",
+ "unstable": {
+ "version": [
+ 20200604,
+ 920
+ ],
+ "commit": "5a4666ca99de6a90108b4606b4c57270c03002ce",
+ "sha256": "1njvf7712ryfd83xk27b6d2nx653j57x3ckn7xba7an4i0g7gk4a"
+ }
+ },
+ {
+ "ename": "scion",
+ "commit": "faf180d15c3847fc6f832866338494dd99b6654d",
+ "sha256": "17qmc7fpvbamqkzyk8jspp2i0nw93iya4iwddvas7vdpjy7mk81d",
+ "fetcher": "github",
+ "repo": "nominolo/scion",
+ "unstable": {
+ "version": [
+ 20130315,
+ 1255
+ ],
+ "commit": "99b4589175665687181a932cd836850205625f71",
+ "sha256": "0ark720g0nrdqri5bjdpss6kn6k3hz3w3zdvy334wws05mkb17y4"
+ }
+ },
+ {
+ "ename": "sclang-extensions",
+ "commit": "f2095549944ca28d6a2d6a90d5ab3ba9c27997a8",
+ "sha256": "00nirxawsngvlx7bmf5hqg2wk0l1v5pi09r6phzd0q8gyq3kmbbn",
+ "fetcher": "github",
+ "repo": "chrisbarrett/sclang-extensions",
+ "unstable": {
+ "version": [
+ 20160509,
+ 338
+ ],
+ "deps": [
+ "auto-complete",
+ "dash",
+ "s"
+ ],
+ "commit": "e9cc79732f16fdb582129303110c163dcc0d6da0",
+ "sha256": "164dn5615bxvya4n58lly9r739va1xzm00wyfg4shcwgnwm3byqb"
+ }
+ },
+ {
+ "ename": "sclang-snippets",
+ "commit": "680e5757e074c16efd31084a7dc5dcea339597f5",
+ "sha256": "0q1bh316v737a0hm9afijk1spvg144cgrf45jm0bpd60zhiv7bb2",
+ "fetcher": "github",
+ "repo": "ptrv/sclang-snippets",
+ "unstable": {
+ "version": [
+ 20130513,
+ 751
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "c840a416b96f83bdd70491e3d1fbe2f1ae8b3f58",
+ "sha256": "0vbcghgapwdf3jgjnjdla17dhf5mkmwapz4a8fmlr7sw1wqvj857"
+ }
+ },
+ {
+ "ename": "scpaste",
+ "commit": "9007fb32097bc63731c3615dae9342fcef2558a2",
+ "sha256": "02dqmx6v3jxdn5yz1z74624sc6sz2bm4qjyi78w9akhp2jplwlk1",
+ "fetcher": "github",
+ "repo": "technomancy/scpaste",
+ "unstable": {
+ "version": [
+ 20200717,
+ 2007
+ ],
+ "deps": [
+ "htmlize"
+ ],
+ "commit": "2aa1513fa0a402f03b993c0a6929daf39820b02b",
+ "sha256": "1cvkqb5v0v790nmhg4wi6kv6mbzfkfcgvn2xh9bmny37dcv0i2gk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 5
+ ],
+ "deps": [
+ "htmlize"
+ ],
+ "commit": "cca8f4ee5402bbf9a4bbb24e81372067cb21bba4",
+ "sha256": "13s8hp16wxd9fb8gf05dn0xr692kkgiqg7v49fgr00gas4xgpfpm"
+ }
+ },
+ {
+ "ename": "scratch",
+ "commit": "b46813f928eadfa08a1d4bf94ceeb96dbc2a7c72",
+ "sha256": "1an30pr64fz13s6lghlcb36b7hn3961vv0yipfp9s140ccygdvh7",
+ "fetcher": "github",
+ "repo": "ieure/scratch-el",
+ "unstable": {
+ "version": [
+ 20190314,
+ 614
+ ],
+ "commit": "4813d82b39a451f2a6d5b730cd7ec49a9bdabcca",
+ "sha256": "0yiwq2gc4gdgfhaagpawhb7yrzc4fsnyb10w5d0q4whv64cj8555"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "4813d82b39a451f2a6d5b730cd7ec49a9bdabcca",
+ "sha256": "0yiwq2gc4gdgfhaagpawhb7yrzc4fsnyb10w5d0q4whv64cj8555"
+ }
+ },
+ {
+ "ename": "scratch-comment",
+ "commit": "9578c2878a7a5f89fd495531e03a8658696fc360",
+ "sha256": "06zn1czv7bw8akbgp61pxi1k4kd2r06d7nxvr14j3cpb3v7fs7kz",
+ "fetcher": "github",
+ "repo": "conao3/scratch-comment.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1025
+ ],
+ "commit": "cf3e967b4def1308b6ef1cfeedd2cf15ee6e226c",
+ "sha256": "0wq1vf391h53ys3292ap7f4nvk4i7wz3cqfbb18bwzz7iga922qd"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "d62665ecbeb05d1f92761af185736609278ffba2",
+ "sha256": "1bnzijfp6jkhl59y18qxnj39f06jzs39xgvj5aj7vlab5zrassmg"
+ }
+ },
+ {
+ "ename": "scratch-ext",
+ "commit": "a142d336a57d075dfd5caf44fa1c1254b83ac728",
+ "sha256": "031wxz10k1q4bi5hywhcw1vzi41d5pv5hc09x8jk9s5nzyssvc0y",
+ "fetcher": "github",
+ "repo": "kyanagi/scratch-ext-el",
+ "unstable": {
+ "version": [
+ 20140104,
+ 516
+ ],
+ "commit": "388c53cddd0466b451264894667ed64a6947ad67",
+ "sha256": "0ng0by647r49mia7vmjqc97gwlwgs8kmaz0lw2y54jdz8m0bbngp"
+ }
+ },
+ {
+ "ename": "scratch-log",
+ "commit": "bec9692973db8853f9d329aebc0cc9e81bb34003",
+ "sha256": "1yp3p0dzhmqrd0krqii3x79k4zc3p59148cijhk6my4n1xqnhs69",
+ "fetcher": "github",
+ "repo": "mori-dev/scratch-log",
+ "unstable": {
+ "version": [
+ 20141115,
+ 743
+ ],
+ "commit": "1168f7f16d36ca0f4ddf2bb98881f8db62cc5dc0",
+ "sha256": "030mcq0cmamizvra8jh2x76f71g5apiavwb10c28j62rl0r5bisk"
+ }
+ },
+ {
+ "ename": "scratch-message",
+ "commit": "24c5ff6b643de9fb79334eff57b702281b20bc10",
+ "sha256": "1dl9d4gvicwnb662ir9azywjmmm7xv4d0sz42z7mmwy8hl9hi91b",
+ "fetcher": "github",
+ "repo": "thisirs/scratch-message",
+ "unstable": {
+ "version": [
+ 20170107,
+ 1336
+ ],
+ "commit": "3ecc7f5e3b8a597ebd1492fd426d3720a7f34302",
+ "sha256": "1kb664r3gbhv2ja8jyyzfw22db99ini8qbgzcy9xsl56lha4x4xi"
+ }
+ },
+ {
+ "ename": "scratch-palette",
+ "commit": "b737bd93008e10ff446b347f405541a6f4127716",
+ "sha256": "0m6hc2amwnnii4y189kkridhapl9jipkmadvrmwvspgy3lxhlafs",
+ "fetcher": "github",
+ "repo": "zk-phi/scratch-palette",
+ "unstable": {
+ "version": [
+ 20200816,
+ 551
+ ],
+ "deps": [
+ "popwin"
+ ],
+ "commit": "c39cacb11992383887fa096ace85510baed94aef",
+ "sha256": "1va9c97cvdqf6404kixvgk0qwrlnc1lrz6khpkdp2w7w1brhf2f7"
+ }
+ },
+ {
+ "ename": "scratch-pop",
+ "commit": "420fb3408b64f1a3e42316262016728c483bf0c1",
+ "sha256": "0s7g1fbnc5hgz8gqmp1lynj5g7vvxisj7scxx5wil9qpn2zyggq1",
+ "fetcher": "github",
+ "repo": "zk-phi/scratch-pop",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1820
+ ],
+ "deps": [
+ "popwin"
+ ],
+ "commit": "b1bdd0f8a345737069194ab8727f164f5d8560b4",
+ "sha256": "03x0kb0cf4yzjxl9nqwl3sg9nl75l9n8k4ain0yw0h2vpi2g0wf3"
+ }
+ },
+ {
+ "ename": "scratches",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "116bjy1m35h83r2c354i2xk1br87nmvd99kbzax0wgkkkcjff8c4",
+ "fetcher": "github",
+ "repo": "zhangkaiyulw/scratches",
+ "unstable": {
+ "version": [
+ 20151006,
+ 416
+ ],
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "9441afe6396ca38f08029123fab5d87429cbf315",
+ "sha256": "10hmy0p4pkrzvvyisk4rjc6hqqyk2sir1rszqgmkhrdywl010vlc"
+ }
+ },
+ {
+ "ename": "scribble-mode",
+ "commit": "6469c2b389d757003da69da727905228eb564d50",
+ "sha256": "0idagikxhr86h2k6fb45zdzg73wpmpiszx0gi6d8jx7s1xqd6s50",
+ "fetcher": "github",
+ "repo": "emacs-pe/scribble-mode",
+ "unstable": {
+ "version": [
+ 20190912,
+ 200
+ ],
+ "commit": "5c3ea3cc9bbad585476eee41ea76dc056c2012bb",
+ "sha256": "0p7mch1z289hjxmdb4w04sdixkqqvjmrrw92yd6akr551yj0jbhx"
+ }
+ },
+ {
+ "ename": "scroll-on-drag",
+ "commit": "0cc172bb1b4194b66827bf5be0b6658fb330a11a",
+ "sha256": "1i4i19qkin19h2xc1r6a66rsll1rfbbvf2nsm75f9vvvrdi4sjyf",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-scroll-on-drag",
+ "unstable": {
+ "version": [
+ 20200411,
+ 1050
+ ],
+ "commit": "42d96a60a207cd73e7a58111358deb05f084c59e",
+ "sha256": "00l2n5kx5p18qdlfh2y355w34yp2fy401canrglz6dq1f7615lnz"
+ }
+ },
+ {
+ "ename": "scrollkeeper",
+ "commit": "d9ad5b16ff61c1f8ba1e030ee0988aa51a437022",
+ "sha256": "16wqlyxznall4kmd8l68q4d11qyilj8vsji36h7llprxa2m9pg12",
+ "fetcher": "github",
+ "repo": "alphapapa/scrollkeeper.el",
+ "unstable": {
+ "version": [
+ 20190109,
+ 629
+ ],
+ "commit": "3c4ac6b6b44686d31c260ee0b19daaee59bdccd6",
+ "sha256": "18pp4k12g5dyma362461gdp4ds5d3lx9gky2ishsq39949pkz7qz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "3c4ac6b6b44686d31c260ee0b19daaee59bdccd6",
+ "sha256": "18pp4k12g5dyma362461gdp4ds5d3lx9gky2ishsq39949pkz7qz"
+ }
+ },
+ {
+ "ename": "scrooge",
+ "commit": "7e3623181fa771dc94a7026eb58ac81fe9d9fc68",
+ "sha256": "1gisyfzawrgg55jbwrbnri314f6zd38di19iwy0b2dim8in4sjpg",
+ "fetcher": "github",
+ "repo": "cosmicexplorer/emacs-scrooge",
+ "unstable": {
+ "version": [
+ 20180630,
+ 1022
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "thrift"
+ ],
+ "commit": "0a8c58e9e6708abe4ef7e415bc1e0472318bb1b0",
+ "sha256": "1my5yz9ppr7d90ad94mkqzkp20c8bym6mdi7jwab2yisbzykmwzc"
+ }
+ },
+ {
+ "ename": "scss-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1g27xnp6bjaicxjlb9m0njc6fg962j3hlvvzmxvmyk7gsdgcgpkv",
+ "fetcher": "github",
+ "repo": "antonj/scss-mode",
+ "unstable": {
+ "version": [
+ 20180123,
+ 1708
+ ],
+ "commit": "cf58dbec5394280503eb5502938f3b5445d1b53d",
+ "sha256": "0raja19l0igwr0pn0ghr1pj1d8i9k3m3764ma4r8nwzxcj9qw4ja"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "d663069667d9b158d56e863b80dd4cc02984e49f",
+ "sha256": "0zpjf9cp8g4rgnwgmhlpwnanf9lzqm3rm1mkihf0gk5qzxvwsdh9"
+ }
+ },
+ {
+ "ename": "sdcv",
+ "commit": "173e233b2dacaaf54d92f3bcc06e54d068520dd4",
+ "sha256": "1bj3b17sjd9fha686g6w191l4p8a1p8sb9br65xf54n6nd9bmv7a",
+ "fetcher": "github",
+ "repo": "stardiviner/sdcv.el",
+ "unstable": {
+ "version": [
+ 20190610,
+ 732
+ ],
+ "deps": [
+ "cl-lib",
+ "popup",
+ "pos-tip",
+ "showtip"
+ ],
+ "commit": "943ae3e90cc9a0a88a37cc710acd7424fd4defc4",
+ "sha256": "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"
+ }
+ },
+ {
+ "ename": "sdlang-mode",
+ "commit": "691af79137015f15a3d383439e534e255ba4b36d",
+ "sha256": "1z6n374z55dr2c6xdwgvmpznd5gk9y23k136zmy29b68j2kswj6l",
+ "fetcher": "github",
+ "repo": "CyberShadow/sdlang-mode",
+ "unstable": {
+ "version": [
+ 20161201,
+ 711
+ ],
+ "commit": "d42a6eedefeb44919fbacf58d302b6df18f05bbc",
+ "sha256": "0r6sm7b15scmjcpdcqvm55hdsvyw5d2g7mrfhsx2hs8sqz64gkwc"
+ }
+ },
+ {
+ "ename": "search-web",
+ "commit": "1f1a3697649ccf69c8eb177c31ec4246b98f503b",
+ "sha256": "0qqx9l8dn1as4gqpq80jfacn6lz0132m91pjzxv0fx6al2iz0m36",
+ "fetcher": "github",
+ "repo": "tomoya/search-web.el",
+ "unstable": {
+ "version": [
+ 20150312,
+ 1103
+ ],
+ "commit": "c4ae86ac1acfc572b81f3d78764bd9a54034c331",
+ "sha256": "08yc67a4ji7z8s0zh500wiscziqsxi92i1d33fjla2mcr8sxxn0i"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "c4ae86ac1acfc572b81f3d78764bd9a54034c331",
+ "sha256": "08yc67a4ji7z8s0zh500wiscziqsxi92i1d33fjla2mcr8sxxn0i"
+ }
+ },
+ {
+ "ename": "searchq",
+ "commit": "9738c1be0511540bfd8f324334518c72c9c38c94",
+ "sha256": "0flsc07v887pm62mslrv7zqnhl62l6348nkm77mizm1592q3kjgr",
+ "fetcher": "github",
+ "repo": "boyw165/searchq",
+ "unstable": {
+ "version": [
+ 20150829,
+ 1211
+ ],
+ "commit": "dd510d55ad66a82c6ef022cfe7c4a73ad5365f82",
+ "sha256": "0zs08vxmjb3y4dnfq6djnrhmkgyhhwd5zylrjisrd4y7f089fyh4"
+ }
+ },
+ {
+ "ename": "secretaria",
+ "commit": "3eeddbcf95315da40d021a6913ccf344849c4284",
+ "sha256": "04pcibzdljcfiha4yh10van8gsjrzn6bdkvkm2ahfcwrmscfn3hf",
+ "fetcher": "gitlab",
+ "repo": "shackra/secretaria",
+ "unstable": {
+ "version": [
+ 20191128,
+ 250
+ ],
+ "deps": [
+ "alert",
+ "f",
+ "org",
+ "s"
+ ],
+ "commit": "03986130a2ada1fa952d45e83536729f20230fcf",
+ "sha256": "10ikd6ksz5adpldyx9h8s3qnwc488rqixzwnd0rjjwqigmllj9lb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 9
+ ],
+ "deps": [
+ "alert",
+ "f",
+ "s"
+ ],
+ "commit": "91c56311b48a26aa6ef5a113b0a828e174059b0a",
+ "sha256": "1iyq8m75gzyx2ww919i4zl63gajsaczgwax214a1jgf8x91j590k"
+ }
+ },
+ {
+ "ename": "see-mode",
+ "commit": "6ee64e846c471926194fcecc4824a06effc0aa5b",
+ "sha256": "1124x11vxci9mvx3zn56v5h9dhmy7bzd5pilqdgzp3hzjmyydnfi",
+ "fetcher": "github",
+ "repo": "marcelino-m/see-mode",
+ "unstable": {
+ "version": [
+ 20180511,
+ 41
+ ],
+ "deps": [
+ "language-detection"
+ ],
+ "commit": "b6e72ea90105b03816c334be9e43bb41dcc79abf",
+ "sha256": "1lh8dg02h64s7b18b4yn0jwxd3cid6agqiv17252r3lbgp743n68"
+ }
+ },
+ {
+ "ename": "seeing-is-believing",
+ "commit": "14bb6de5c051a68284ee1a7e25ecb2c7c19ffd3b",
+ "sha256": "05aja5xycb3kpmxyi234l50h98f5m1fil6ll4f2xkpxwv31ba5rb",
+ "fetcher": "github",
+ "repo": "jcinnamond/seeing-is-believing",
+ "unstable": {
+ "version": [
+ 20170214,
+ 1320
+ ],
+ "commit": "fbbe246c0fda87bb26227bb826eebadb418a220f",
+ "sha256": "1h1b48s2iirswdlvfz41jbflm4x09ksc2lycrc1awzlwd6r8hdhg"
+ }
+ },
+ {
+ "ename": "seethru",
+ "commit": "7945732d9789143b386603dd7c96ef14ba68ddaf",
+ "sha256": "1lcwslkki9s15xr2dmh2iic4ax8ia0j20hjnjmkv612wv04b806v",
+ "fetcher": "github",
+ "repo": "Benaiah/seethru",
+ "unstable": {
+ "version": [
+ 20150218,
+ 1829
+ ],
+ "deps": [
+ "shadchen"
+ ],
+ "commit": "d87e231f99313bea75b1e69e48c0f32968c82060",
+ "sha256": "0qd462qbqdx53xh3ddf76chiljxf6s43r28v2ix85gsig7nm5pgr"
+ }
+ },
+ {
+ "ename": "sekka",
+ "commit": "350bbb5761b5ba69aeb4acf6d7cdf2256dba95a6",
+ "sha256": "1jj4ly9p7m3xvb31nfn171lbpm9y70y8cbf8p24w0fhv665dx0cp",
+ "fetcher": "github",
+ "repo": "kiyoka/sekka",
+ "unstable": {
+ "version": [
+ 20170803,
+ 1247
+ ],
+ "deps": [
+ "cl-lib",
+ "concurrent",
+ "popup"
+ ],
+ "commit": "61840b57d9ae32bf8e297b175942590a1319c7e7",
+ "sha256": "05vj12l88s29wnkpvgzlbypv9hkmy1hqgv9hvav6v4kmdykl5w1b"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "concurrent",
+ "popup"
+ ],
+ "commit": "d1fd5d47aacba723631d5d374169a45ff2051c41",
+ "sha256": "035rx863cj3hs1lhayff0810cpp6kv8nwc1c0y54gvdk1bb333x0"
+ }
+ },
+ {
+ "ename": "select-themes",
+ "commit": "e4e7d01da10a1a1f7fe563031af5d3f9694cea33",
+ "sha256": "18ydv7240vcqppg1i7n8sy18hy0lhpxz17947kxs7mvj4rl4wd84",
+ "fetcher": "github",
+ "repo": "jasonm23/emacs-select-themes",
+ "unstable": {
+ "version": [
+ 20160221,
+ 106
+ ],
+ "commit": "236f54287519a3ea6dd7b3992d053e4f4ff5d0fe",
+ "sha256": "1c9yv1kjcd0jrzgw99q9p4kzj980f261mjcsggbcw806wb0iw1xn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "commit": "236f54287519a3ea6dd7b3992d053e4f4ff5d0fe",
+ "sha256": "1c9yv1kjcd0jrzgw99q9p4kzj980f261mjcsggbcw806wb0iw1xn"
+ }
+ },
+ {
+ "ename": "selected",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1zk9jvsiw30zqh68xjx2zcc71php68ryiwqmws52ghqiaifj50gf",
+ "fetcher": "github",
+ "repo": "Kungsgeten/selected.el",
+ "unstable": {
+ "version": [
+ 20200528,
+ 606
+ ],
+ "commit": "3043fd2609f7e71d809763ae6e8dd4b6c904e63d",
+ "sha256": "11cr55g7rrr4gqb9r2znmff0bp112l7a96d26mznfdprzj7pdzvd"
+ }
+ },
+ {
+ "ename": "selectric-mode",
+ "commit": "08922071b9854142eab726302e75f1db2d326ec5",
+ "sha256": "1k4l0lr68rqyi37wvqp1cnfci6jfkz0gvrd1hwbgx04cjgmz56n4",
+ "fetcher": "github",
+ "repo": "rbanffy/selectric-mode",
+ "unstable": {
+ "version": [
+ 20200209,
+ 2107
+ ],
+ "commit": "bb9e66678f34e9bc23624ff6292cf5e7857e8e5f",
+ "sha256": "1kkxm8ysjcx0vs6lic0lcncr2kcmjmh2n5y8j9303lhzzhh73psg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 2
+ ],
+ "commit": "bb9e66678f34e9bc23624ff6292cf5e7857e8e5f",
+ "sha256": "1kkxm8ysjcx0vs6lic0lcncr2kcmjmh2n5y8j9303lhzzhh73psg"
+ }
+ },
+ {
+ "ename": "selectrum",
+ "commit": "4273a6e55cf797d1fab1825618aab7e9b6c01886",
+ "sha256": "012jmgr7w6x0gy8ygpzyyk23adyzmr7cknz2w51zjapcilkf6ghv",
+ "fetcher": "github",
+ "repo": "raxod502/selectrum",
+ "unstable": {
+ "version": [
+ 20200817,
+ 1459
+ ],
+ "commit": "5448e7cbaeb8d58c5dfd474cd0e03d6db60ac532",
+ "sha256": "09xfi0gfk9jmjmz941cfzwrv15jlzqxzwlq4m0qb29g1r4kv62ng"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "51b75f4b287b13beff86810eb3a060747ac191e9",
+ "sha256": "08wm4ybidn8g7sy5a009lnsm0f1p7a3jfzpzxnzylvnyrmyhi3y4"
+ }
+ },
+ {
+ "ename": "selectrum-prescient",
+ "commit": "5724ebca5ab5a1c3087cc13ae0693548666ed62b",
+ "sha256": "1zr83pq39i56v5bx78cp5cg2lrwz01975ng4h1ziv6nrh9p7vvr0",
+ "fetcher": "github",
+ "repo": "raxod502/prescient.el",
+ "unstable": {
+ "version": [
+ 20200716,
+ 1414
+ ],
+ "deps": [
+ "prescient",
+ "selectrum"
+ ],
+ "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+ "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 0
+ ],
+ "deps": [
+ "prescient",
+ "selectrum"
+ ],
+ "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+ "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+ }
+ },
+ {
+ "ename": "semaphore",
+ "commit": "1cffd8c7720e5a262b8635a5fd1ca36766f4c824",
+ "sha256": "0g49ld0j962k66a96z6r6hw1p13r5bxs0wddpr9iciqgjra1jcl7",
+ "fetcher": "github",
+ "repo": "webnf/semaphore.el",
+ "unstable": {
+ "version": [
+ 20190607,
+ 1949
+ ],
+ "commit": "a069b69018b96d284ce7553cd63350a88ea3679c",
+ "sha256": "0dkqj2xcpqdwi4j99pbif8dypk0mlaxgn7aaw51kw98b52ng93gv"
+ }
+ },
+ {
+ "ename": "semaphore-promise",
+ "commit": "1cffd8c7720e5a262b8635a5fd1ca36766f4c824",
+ "sha256": "0dfwjl6z6k2qrflm19k2y4i69zps3h83an9r8l3lync2kjmgxfrs",
+ "fetcher": "github",
+ "repo": "webnf/semaphore.el",
+ "unstable": {
+ "version": [
+ 20190607,
+ 2115
+ ],
+ "deps": [
+ "promise",
+ "semaphore"
+ ],
+ "commit": "a069b69018b96d284ce7553cd63350a88ea3679c",
+ "sha256": "0dkqj2xcpqdwi4j99pbif8dypk0mlaxgn7aaw51kw98b52ng93gv"
+ }
+ },
+ {
+ "ename": "semi",
+ "commit": "e78849c2d1df187b7f0ef4c34985a341e640ad3e",
+ "sha256": "01wk3lgln5lac65hp6v83d292bdk7544z23xa1v6a756nhybwv25",
+ "fetcher": "github",
+ "repo": "wanderlust/semi",
+ "unstable": {
+ "version": [
+ 20200818,
+ 1252
+ ],
+ "deps": [
+ "flim"
+ ],
+ "commit": "10897f024fd9282c73385d24514cc4b57fe193db",
+ "sha256": "14d4j17l0ngg6fp00mf2zgyz6989cx9n5n3za7ifcfr8gjbbn7gp"
+ }
+ },
+ {
+ "ename": "seml-mode",
+ "commit": "01f8b8d877ba3164bf20f7f0e56ea564b88f493e",
+ "sha256": "0fmfnglxm57mhynzdsgs14qaxsw3nf83qbz3adknv63qymbfhgbw",
+ "fetcher": "github",
+ "repo": "conao3/seml-mode.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1027
+ ],
+ "deps": [
+ "htmlize",
+ "impatient-mode",
+ "web-mode"
+ ],
+ "commit": "7a9a8305f7b54ee59e4c29b33ef5fd4058ba4219",
+ "sha256": "0sm6kd0r7wjsvynfkhq33d6rz431j784jlbxjpag60g5avxha9s9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 0
+ ],
+ "deps": [
+ "htmlize",
+ "simple-httpd",
+ "web-mode"
+ ],
+ "commit": "1f8bda7e5a4a36212f968b462cfc31ce53c6db85",
+ "sha256": "1hc0rwlgapbqf9965n3nsyvd4chdga5av7ya82wjzxn1mx4bhifa"
+ }
+ },
+ {
+ "ename": "sendto",
+ "commit": "31f7c2f97dd186cb77dc8a106baf5e087792c6ab",
+ "sha256": "00ifasqpmggr4bhdyymzr215840y0ayfnfp0mh7wj99mr6f3zfq0",
+ "fetcher": "github",
+ "repo": "lujun9972/sendto.el",
+ "unstable": {
+ "version": [
+ 20160425,
+ 1250
+ ],
+ "commit": "076b81d7a53f75b0a59b0ef3448f35570567054c",
+ "sha256": "13qqprxz87cv3sjlq5hj0jp0qcfm3djfgasga8cc84ykrcc47p9f"
+ }
+ },
+ {
+ "ename": "sensitive",
+ "commit": "5e5468ce136fabe59e1434f8a7f265f41c5e64c1",
+ "sha256": "0v988k0x3mdp7ank2ihghphh8sanvv96s4sg6pnszg5hczak1vr3",
+ "fetcher": "github",
+ "repo": "timvisher/sensitive.el",
+ "unstable": {
+ "version": [
+ 20170818,
+ 1251
+ ],
+ "deps": [
+ "sequences"
+ ],
+ "commit": "69dd6125a41d8b55f4b6ba61daa4d1aa1f716fa8",
+ "sha256": "0nj71ds4frfi16hsfswmp89rfxkvvdvhdlsqizzi9cbvr49s0l1f"
+ }
+ },
+ {
+ "ename": "sentence-navigation",
+ "commit": "3d097cf9b6c9c1606505d3988a2afdd7b066abc8",
+ "sha256": "1p3ch1ab06v038h130fsxpbq45d1yadl67i2ih4l4fh3xah5997m",
+ "fetcher": "github",
+ "repo": "noctuid/emacs-sentence-navigation",
+ "unstable": {
+ "version": [
+ 20180408,
+ 1619
+ ],
+ "deps": [
+ "ample-regexps",
+ "cl-lib"
+ ],
+ "commit": "7c5d2edeaed01196aec25031782e89adeaa089f0",
+ "sha256": "15za4fg7c8fsih86wz1npyx6gdmw0xhizklfsyfh84416dsmgswp"
+ }
+ },
+ {
+ "ename": "seoul256-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1nvhnyfvmpqg0a54nq73lhz3h9g94zkbix13bbzv9bp1lg8v6w1x",
+ "fetcher": "github",
+ "repo": "anandpiyer/seoul256-emacs",
+ "unstable": {
+ "version": [
+ 20180505,
+ 757
+ ],
+ "commit": "d28a9de73a5ffb1a1c9492db75a5c1efe5e9815f",
+ "sha256": "0jn3a7m8ld07280mc7nkyahagwhvhrcshrpsb8k1ycdwd1r3zqw5"
+ }
+ },
+ {
+ "ename": "separedit",
+ "commit": "297ba98f4bc011948c34aad30ae28b7adc611938",
+ "sha256": "00p4crbzr5fkcj8lhpfd9w44ynpmhd9fay9yrwgz0yh87lll6nqx",
+ "fetcher": "github",
+ "repo": "twlz0ne/separedit.el",
+ "unstable": {
+ "version": [
+ 20200702,
+ 634
+ ],
+ "deps": [
+ "dash",
+ "edit-indirect"
+ ],
+ "commit": "fa752df206f8f6e64f27e2a6d998ddd58e3c444b",
+ "sha256": "1c0k5cg2si4i0hwdi7lbh058rq6vmry8ncddgq5dxbih14wpbys4"
+ }
+ },
+ {
+ "ename": "sequences",
+ "commit": "4cf716df68fb2d6a41fe75fac0b41e356bddcf30",
+ "sha256": "12wnkywkmxfk2sx40h90k53d5qmc8hiky5vhlyf0ws3n39zvhplh",
+ "fetcher": "github",
+ "repo": "timvisher/sequences.el",
+ "unstable": {
+ "version": [
+ 20170818,
+ 1252
+ ],
+ "commit": "564ebbd93b0beea4e75acfbf824350e90b5d5738",
+ "sha256": "0ym2bl9dpsglz35is0iwxfw5w7zs9398bkln8lgv28nr6kw0ym4s"
+ }
+ },
+ {
+ "ename": "sequential-command",
+ "commit": "ad10a684b4b2f01bc65883374f36fef156ff55d2",
+ "sha256": "0qhrpwcgn89sqdj8yhgax0qk81ycdanlgwx25cxy8wnxkqqcvh9m",
+ "fetcher": "github",
+ "repo": "rubikitch/sequential-command",
+ "unstable": {
+ "version": [
+ 20170926,
+ 40
+ ],
+ "commit": "a48cbcbe273b33edd3ae56e68f44b4100fa3a48a",
+ "sha256": "1f05amz22klvs2yqyw7n5bmivgdn5zc7vkv5x6bgc9b5k977lggj"
+ }
+ },
+ {
+ "ename": "servant",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0h8xsg37cvc5r8vkclf7d3gbf6gh4k5pmbiyhwpkbrxwjyl1sl21",
+ "fetcher": "github",
+ "repo": "cask/servant",
+ "unstable": {
+ "version": [
+ 20140216,
+ 1219
+ ],
+ "deps": [
+ "ansi",
+ "commander",
+ "dash",
+ "epl",
+ "f",
+ "s",
+ "shut-up",
+ "web-server"
+ ],
+ "commit": "4d2aa8250b54b28e6e7ee4cd5ebd98a33db2c134",
+ "sha256": "15lx6qvmq3vp84ys8dzbx1nzxcnzlq41whawc2yhrnd1dbq4mv2d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "ansi",
+ "commander",
+ "dash",
+ "epl",
+ "f",
+ "s",
+ "shut-up",
+ "web-server"
+ ],
+ "commit": "4d2aa8250b54b28e6e7ee4cd5ebd98a33db2c134",
+ "sha256": "15lx6qvmq3vp84ys8dzbx1nzxcnzlq41whawc2yhrnd1dbq4mv2d"
+ }
+ },
+ {
+ "ename": "serverspec",
+ "commit": "5a4f4757d8886d178a85d4bc8ac9399a99d8c4d4",
+ "sha256": "001d57yd0wmz4d7qmhnanac8g29wls0sqw194003hrgirakg82id",
+ "fetcher": "github",
+ "repo": "k1LoW/emacs-serverspec",
+ "unstable": {
+ "version": [
+ 20150623,
+ 1155
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "helm",
+ "s"
+ ],
+ "commit": "b6dfe82af9869438de5e5d860ced196641f372c0",
+ "sha256": "1h58q41wixjlapia1ggf83jxcllq7492k55mc0fq7hbx3hw1q1y2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 7
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "helm",
+ "s"
+ ],
+ "commit": "b6dfe82af9869438de5e5d860ced196641f372c0",
+ "sha256": "1h58q41wixjlapia1ggf83jxcllq7492k55mc0fq7hbx3hw1q1y2"
+ }
+ },
+ {
+ "ename": "services",
+ "commit": "beb91b4397f6e35a1d5c73a127d8cd7fc9201935",
+ "sha256": "02lgmpbw52ps6z4p9gwzvh9iaxisq5mb0n9aml9ajxac1473vpcd",
+ "fetcher": "github",
+ "repo": "davep/services.el",
+ "unstable": {
+ "version": [
+ 20170802,
+ 1130
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "04c7986041a33dfa0b0ae57c7d6fbd600548c596",
+ "sha256": "0ycfkskkdlmc0l75z5a8f66wq5mvb24c4kz19a6kqs8rwm2ygz35"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "514e4095e8964c4d0f38c4f3ad6c692e86d12faa",
+ "sha256": "1k6w2ghi1iczh65bbln5ryxwnxmkkjm3p0p54s155q9sjidiqlwb"
+ }
+ },
+ {
+ "ename": "sesman",
+ "commit": "31110e9bd82ad9c817e6cb597fa9c26c4cdc93ed",
+ "sha256": "106jcdsp7rhkr4bbyprcld5fxcnimfcyx0cwcpzhd0b4vh3v3qvg",
+ "fetcher": "github",
+ "repo": "vspinu/sesman",
+ "unstable": {
+ "version": [
+ 20190909,
+ 1754
+ ],
+ "commit": "edee869c209c016e5f0c5cbb8abb9f3ccd2d1e05",
+ "sha256": "16d4kkfmrzc4d0smk9m759mv11bvicixrvwh1za7c6avscg9lym2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 4
+ ],
+ "commit": "3df33018f1c42f09db21cebe39a25b389fe35f02",
+ "sha256": "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"
+ }
+ },
+ {
+ "ename": "session",
+ "commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
+ "sha256": "0fghxbnf1d5iyrx1q8xd0lbw9nvkdgg2v2f89j6apnawisrsbhwx",
+ "fetcher": "github",
+ "repo": "emacsorphanage/session",
+ "unstable": {
+ "version": [
+ 20120511,
+ 0
+ ],
+ "commit": "19ea0806873daac3539a4b956e15655e99e3dd6c",
+ "sha256": "0sp952abz7dkq8b8kkzzmnwnkq5w15zsx5dr3h8lzxb92lnank9v"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 1
+ ],
+ "commit": "19ea0806873daac3539a4b956e15655e99e3dd6c",
+ "sha256": "0sp952abz7dkq8b8kkzzmnwnkq5w15zsx5dr3h8lzxb92lnank9v"
+ }
+ },
+ {
+ "ename": "seti-theme",
+ "commit": "088924b78575359996cf30745497b287cfb11f37",
+ "sha256": "1mwkx3hynabwr0a2rm1bh91h7xf38a11h1fb6ys8s3mnr68csd9z",
+ "fetcher": "github",
+ "repo": "caisah/seti-theme",
+ "unstable": {
+ "version": [
+ 20190201,
+ 1848
+ ],
+ "commit": "9d76db0b91d4f574dd96ac80fad41da35bffa109",
+ "sha256": "14fqkkvjbq2gj737k3yz3s0dkya33fi0dj4wds99zyzss2xp37f8"
+ }
+ },
+ {
+ "ename": "sexp-diff",
+ "commit": "d29e4d21bf808a74bef27ee00d500ec1f816be74",
+ "sha256": "0cr35b7k6a5japm14bjgnw93g1kqggzwlqwwr0mhg73klnn6qyn8",
+ "fetcher": "github",
+ "repo": "xuchunyang/sexp-diff.el",
+ "unstable": {
+ "version": [
+ 20200314,
+ 2018
+ ],
+ "commit": "7e8c988bea2af209e17b70fa51316ade55529acb",
+ "sha256": "1daz6jss2346a2p30fhc66m230sj7vyxm7jw6zqz5n8h9lqxpjyk"
+ }
+ },
+ {
+ "ename": "sexp-move",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0sdm3kr4594fy9hk8yljj2iwa40bgs8nqpwwl2a60r060spz54z9",
+ "fetcher": "gitlab",
+ "repo": "elzair/sexp-move",
+ "unstable": {
+ "version": [
+ 20150915,
+ 1730
+ ],
+ "commit": "117f7a91ab7c25e438413753e916570122011ce7",
+ "sha256": "11h5z2gmwq07c4gqzj2c9apksvqk3k8kpbb9kg78bbif2xfajr3m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 6
+ ],
+ "commit": "117f7a91ab7c25e438413753e916570122011ce7",
+ "sha256": "11h5z2gmwq07c4gqzj2c9apksvqk3k8kpbb9kg78bbif2xfajr3m"
+ }
+ },
+ {
+ "ename": "sexy-monochrome-theme",
+ "commit": "dfd5ae9a93e036d11899c7adffdf6b63c2b21381",
+ "sha256": "0rlx4029zxrnzzqspn8zrp3q6w0n46q24qk7za46hvxdsmgdpxbq",
+ "fetcher": "github",
+ "repo": "voloyev/sexy-monochrome-theme",
+ "unstable": {
+ "version": [
+ 20200115,
+ 2146
+ ],
+ "commit": "f3ad07d60c966ef34cb11026eaba053e114bb8f1",
+ "sha256": "1lq7csb5dgpy9hd6dw1ds5klmp88zqyk9x97hg1llzic6rkkfjrr"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1
+ ],
+ "commit": "f64714a176d9212c9fa82355dd8ec89587ce13f0",
+ "sha256": "17ahrdyk2v7vz13b4934xn8xjza4b7bfrkq8n42frq3pc8mgwqfd"
+ }
+ },
+ {
+ "ename": "sfz-mode",
+ "commit": "6e61f77045deaf0dd6a344911b73cf5b1a779a52",
+ "sha256": "1x7873xvqwj1nwp18pj50bp2s9djqbqzp37fr2hjx2rygfvpxzmg",
+ "fetcher": "github",
+ "repo": "sfztools/emacs-sfz-mode",
+ "unstable": {
+ "version": [
+ 20200716,
+ 1023
+ ],
+ "commit": "aaf31d1b68817251affed7da719dfcb2acd4b51a",
+ "sha256": "1b9qi5vhqp2c2bmkyvmjj4nrb3n42g4w71p2phxssiwmyq80m28f"
+ }
+ },
+ {
+ "ename": "shackle",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "0fjkp5vawxc1q1pmvzchiqwxq8rdaq463sa5ks0r7x7cxwnp8zx6",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/shackle.git",
+ "unstable": {
+ "version": [
+ 20200529,
+ 1839
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "171c3f437d853f34782b201d86ef765665b755e2",
+ "sha256": "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "171c3f437d853f34782b201d86ef765665b755e2",
+ "sha256": "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"
+ }
+ },
+ {
+ "ename": "shadchen",
+ "commit": "8a2a36fbfcf457eab05c1ff31cb9c2f68686094e",
+ "sha256": "1r1mfmv4cdlc8kzjiqz81kpqdrwbnyciwdgg6n5x0yi4apwpvnl4",
+ "fetcher": "github",
+ "repo": "VincentToups/shadchen-el",
+ "unstable": {
+ "version": [
+ 20141102,
+ 1839
+ ],
+ "commit": "35f2b9c304eec990c16efbd557198289dc7cbb1f",
+ "sha256": "0phivbhjdw76gzrx35rp0zybqfb0fdy2hjllf72qf1r0r5gxahl8"
+ }
+ },
+ {
+ "ename": "shader-mode",
+ "commit": "4396f3c10a38f91d5f98684efbeb02812e479209",
+ "sha256": "12y84fa1wc82js53rpadaysmbshhqf6wb97889qkksx19n3xmb9g",
+ "fetcher": "github",
+ "repo": "midnightSuyama/shader-mode",
+ "unstable": {
+ "version": [
+ 20180518,
+ 1157
+ ],
+ "commit": "d7dc8d0d6fe8914e8b6d5cf2081ad61e6952359c",
+ "sha256": "13scj6w3vsdcgmq7zak3pflqpq295wgzsng72rcafgkkr7r12rar"
+ }
+ },
+ {
+ "ename": "shadowenv",
+ "commit": "b2651055ab67448f90a93cf594342b8212202b82",
+ "sha256": "1qxnbvpnvk3666hwfrh4pnfgb2mrfha6hiri8zfdspdh8g535ygq",
+ "fetcher": "github",
+ "repo": "Shopify/shadowenv.el",
+ "unstable": {
+ "version": [
+ 20190903,
+ 1907
+ ],
+ "commit": "5f24c90bb8e7333ee4315619672dc2ec69d198be",
+ "sha256": "0msrhh41nyvyy17skd5y5lzdz7a6lxnlqnflgz4xf2qpnc390kd6"
+ }
+ },
+ {
+ "ename": "shakespeare-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1sg8n4ifpi36zmf6b6s0swq7k3r038cmj8kxjm7hpgxq6f9qnk9x",
+ "fetcher": "github",
+ "repo": "CodyReichert/shakespeare-mode",
+ "unstable": {
+ "version": [
+ 20180704,
+ 2138
+ ],
+ "commit": "c442eeea9d585e1b1fbb8813e33d47feec348a57",
+ "sha256": "1ba9xy5jwn8ni8fi2k144j669jp95k2qf9ip77r16rsiy7divl0y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "c442eeea9d585e1b1fbb8813e33d47feec348a57",
+ "sha256": "1ba9xy5jwn8ni8fi2k144j669jp95k2qf9ip77r16rsiy7divl0y"
+ }
+ },
+ {
+ "ename": "shampoo",
+ "commit": "19f145113a0698466e706a6a4c55d63cec512706",
+ "sha256": "01ssgw4cnnx8d86g3r1d5hqcib4qyhmpqvcvx47xs7zh0jscps61",
+ "fetcher": "github",
+ "repo": "dmatveev/shampoo-emacs",
+ "unstable": {
+ "version": [
+ 20131230,
+ 1019
+ ],
+ "commit": "bc193c39636c30182159c5c91c37a9a4cb50fedf",
+ "sha256": "15a8gs4lrqxn0jyfw16rc6vm7z1i10pzzlnp30x6nly9a7xra47x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "9bf488ad4025beef6eef63d2d5b72bc1c9b9e142",
+ "sha256": "11g9lsgakq8nf689k49p9l536ffi62g3bh11mh9ix1l058xamqw2"
+ }
+ },
+ {
+ "ename": "share2computer",
+ "commit": "47647167cc7b9d7ad0a2fc4785849f69dc07d6cb",
+ "sha256": "067xc1awknx9iqwd4lfj1gkni6aszzfr1179avzzfn1ggp7yzkmq",
+ "fetcher": "github",
+ "repo": "tumashu/share2computer",
+ "unstable": {
+ "version": [
+ 20200316,
+ 31
+ ],
+ "commit": "15da47625a800e3310b8dc714bd4e41e32966d6a",
+ "sha256": "04h8vhg0fxabjlqgfqsvxkgsmkcp5qmcinxg46xib386r7rzrx4g"
+ }
+ },
+ {
+ "ename": "shell-command",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "01nviashfr64wm78zi3vrqrqdqgsamp76d9kasxv0b7fqmfx7yjk",
+ "fetcher": "github",
+ "repo": "emacsorphanage/shell-command",
+ "unstable": {
+ "version": [
+ 20090830,
+ 1040
+ ],
+ "commit": "7e22125f746ce9ffbe9b0282d62f4b4bbbe672bd",
+ "sha256": "1my2i26a03z8xyyacsnl5wdylnbhhvazn23bpy639d3l4x4l7jzw"
+ }
+ },
+ {
+ "ename": "shell-current-directory",
+ "commit": "edcb78c3491a5999b39a40087b7f991c2b737e30",
+ "sha256": "0bj2gs96ivm5x8l7gwvfckyalr1amh4cb1v2dbl323zmrqddhgkd",
+ "fetcher": "github",
+ "repo": "metaperl/shell-current-directory",
+ "unstable": {
+ "version": [
+ 20140101,
+ 2354
+ ],
+ "commit": "bf843771bf9a4aa05e054ade799eb8862f3be89a",
+ "sha256": "1w42j5cdddr0riz1xjq3wiz5i9f71i9jdzd1l92ir0mlj05wjyic"
+ }
+ },
+ {
+ "ename": "shell-here",
+ "commit": "88df6e04614547a59aefbeae88c301f3b8394039",
+ "sha256": "0csi70v89bqdpbsizji6c5z0jmkx4x4vk1zfclkpap4dalmxxcsh",
+ "fetcher": "github",
+ "repo": "ieure/shell-here",
+ "unstable": {
+ "version": [
+ 20191011,
+ 1959
+ ],
+ "commit": "88b80deb1337a97b403b20fc467fa2d579b3bfd5",
+ "sha256": "1x9zcxsc6cnh0h051377asbqhcx3mzcarrnj9zmyg6fcszgas5v1"
+ }
+ },
+ {
+ "ename": "shell-history",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "1cmk8rymnj7dscxjq0p23jgwc16yvzw1804ya5wsg95v239gz1hy",
+ "fetcher": "github",
+ "repo": "emacsorphanage/shell-history",
+ "unstable": {
+ "version": [
+ 20100505,
+ 839
+ ],
+ "commit": "ee371a81f2d2bf5a308344078329ca1e9b5ed38c",
+ "sha256": "0jyz31j5a07shcf2ym5gnn16xk5r3s84ls8kxk5myvxi3wkpgdd4"
+ }
+ },
+ {
+ "ename": "shell-pop",
+ "commit": "44150bddc9b276ab9fb2ab6a92a11383a3ed03b0",
+ "sha256": "02s17ln0hbi9gy3di8fksp3mqc7d8ahhf5vwyz4vrc1bg77glxw8",
+ "fetcher": "github",
+ "repo": "kyagi/shell-pop-el",
+ "unstable": {
+ "version": [
+ 20200315,
+ 1139
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4b4394037940a890a313d715d203d9ead2d156a6",
+ "sha256": "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 64
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4a3a9d093ad1add792bba764c601aa28de302b34",
+ "sha256": "1ybvg048jvijcg9jjfrbllf59pswmp0fd5zwq5x6nwg5wmggplzd"
+ }
+ },
+ {
+ "ename": "shell-split-string",
+ "commit": "84e20f4d02c69f8caf39cd20a581be3b9fa79931",
+ "sha256": "1yj1h7za4ylxh2nikj7s1qqlilpsk05x9571a2fymfyznm3iq77m",
+ "fetcher": "github",
+ "repo": "10sr/shell-split-string-el",
+ "unstable": {
+ "version": [
+ 20151224,
+ 1008
+ ],
+ "commit": "19f6f999c33cc66a4c91bacdcc3697c25d97bf5a",
+ "sha256": "16srngml5xmpaxb0wzhx91jil0r0dmn673bwai3lzxrkmjnl748l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "6d01c9249853fe1f8fd925ee80f97232d4e3e5eb",
+ "sha256": "0mcxp74sk9bn36gbhhimgns07iqa4dgbq2pvpqy41igqwb84w306"
+ }
+ },
+ {
+ "ename": "shell-switcher",
+ "commit": "a16194f6ddc05350b9875f4e0a3a0383c79e650e",
+ "sha256": "07g9naiv2jk9jxwjywrbb05dy0pbfdx6g8pkra38rn3vqrjzvhyx",
+ "fetcher": "github",
+ "repo": "DamienCassou/shell-switcher",
+ "unstable": {
+ "version": [
+ 20161029,
+ 552
+ ],
+ "commit": "28a7f753dd7addd2933510526f52620cb5a22048",
+ "sha256": "1x7rrf56hjasciim8rj29vfngwis4pr3mhclvxd4sbmhz9y66wm0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "2c5575ae859a82041a4bacd1793b844bfc24c34f",
+ "sha256": "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"
+ }
+ },
+ {
+ "ename": "shell-toggle",
+ "commit": "95873d90886d2db5cc1d83d4bcb8dd5c2e65bc3e",
+ "sha256": "1ai0ks7smr8b221j9hmsikswpxqraa9b13fpwv4wwagavnlah446",
+ "fetcher": "github",
+ "repo": "knu/shell-toggle.el",
+ "unstable": {
+ "version": [
+ 20150226,
+ 1411
+ ],
+ "commit": "0d01bd9a780fdb7fe6609c552523f4498649a3b9",
+ "sha256": "0ssaccdacabpja9nqzhr8x8ggfwmlian7y4p0fa6gvr7qsvjpgr9"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 1
+ ],
+ "commit": "9820b0ad6f22c700759555aae8a454a7dc5a46b3",
+ "sha256": "0wvaa5nrbblayjvzjyj6cd942ywg7xz5d8fqaffxcvwlcdihvm7q"
+ }
+ },
+ {
+ "ename": "shelldoc",
+ "commit": "551623175e55629be6cfe44a595f25f09bd889e8",
+ "sha256": "1xlp03aaidp7dp8349v8drzhl4lcngvxgdrwwn9cahfqlrvvbbbx",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-shelldoc",
+ "unstable": {
+ "version": [
+ 20200513,
+ 1206
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "fa69f67b6229fad3f31d936955ca8d1982009b77",
+ "sha256": "0ma5j74vkwax9ha945dcgbmf3r4gajj4nvl63pbfyvxvy6svn84r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "1d40c73969347586906ca1dde2adb50afcd73b1b",
+ "sha256": "1nli26llyfkj1cz2dwn18c5pz1pnpz3866hapfibvdmwrg4z6cax"
+ }
+ },
+ {
+ "ename": "shelltest-mode",
+ "commit": "af6dcd4fc0663a255bd85b247bbdf57d425efdb7",
+ "sha256": "1inb0vq34fbwkr0jg4dv2lljag8djggi8kyssrzhfawri50m81nh",
+ "fetcher": "github",
+ "repo": "rtrn/shelltest-mode",
+ "unstable": {
+ "version": [
+ 20180501,
+ 141
+ ],
+ "commit": "5fea8c9394380e822971a171905b6b5ab9be812d",
+ "sha256": "1np65a92n4y9i0nr8wymzn6md9xqmi9qyggya7sz0q4nzsh45wqg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "fead97c7ff1b39715ec033a793de41176f1788f5",
+ "sha256": "0mn7bwvj1yv75a2531jp929j6ypckdfqdg6b5ig0kkbcrrwb7kxs"
+ }
+ },
+ {
+ "ename": "shen-elisp",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "045nawzyqaxd3g5f56fxfy680pl18x67w0wi28nrq4l4681w9xyq",
+ "fetcher": "github",
+ "repo": "deech/shen-elisp",
+ "unstable": {
+ "version": [
+ 20180915,
+ 2028
+ ],
+ "commit": "73b74c8d6e3a2ea34b667d177d9f130765bfe501",
+ "sha256": "1ym048cmkghx373fb7n5m6r73q5nfa62m10mqr4nzhsizgyzdbrn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "ffe17dee05f75539cf5e4c59395e4c7400ececaa",
+ "sha256": "10dq3qj1q8i6f604zws97xrvjxwrdcjj3ygh6xpna00cvf40llc2"
+ }
+ },
+ {
+ "ename": "shfmt",
+ "commit": "a20dde08de1a7cd70739a791e1ae321e8f152685",
+ "sha256": "1k4rr658473vd6xad2z40dl7f26sb1zv9nc1938cg61pqi10bjan",
+ "fetcher": "github",
+ "repo": "purcell/emacs-shfmt",
+ "unstable": {
+ "version": [
+ 20200421,
+ 103
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "465dc1fcaeed778b504d3d349a30e611368dcc00",
+ "sha256": "1gzky5xs63y7xl7j2hs81aja8qq6c5l3vk07hh050flw4yfxyi23"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "cd94266badc71c1e981e904e10f28c6a80237a2f",
+ "sha256": "09w50l938phcpxvbg4ahyxl43k995ywavwac364nmcnvmip021qy"
+ }
+ },
+ {
+ "ename": "shift-number",
+ "commit": "b06be6b25078ddfabc1ef1145c817552f679c41c",
+ "sha256": "1sbzkmd336d0dcdpk29pzk2b5bhlahrn083x62l6m150n2xzxn4p",
+ "fetcher": "github",
+ "repo": "alezost/shift-number.el",
+ "unstable": {
+ "version": [
+ 20170301,
+ 1459
+ ],
+ "commit": "cd099a5582fc996b800ac7607f6c38a004ce9740",
+ "sha256": "131by7z6303m81kjhy8rnfvwyzfbxglc19xb90jdks4vgczqkcah"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "ba3c1f2e6b01bf14aa1433c2a49098af1c025f7c",
+ "sha256": "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"
+ }
+ },
+ {
+ "ename": "shift-text",
+ "commit": "2ad2ea105b895cb958ce0ab2bf2fad2b40d41b2f",
+ "sha256": "1v9zk7ycc8k1qk1cfs2y1knygl686msmlilqy5a7mh0w0z9f3a2i",
+ "fetcher": "github",
+ "repo": "sabof/shift-text",
+ "unstable": {
+ "version": [
+ 20130831,
+ 1655
+ ],
+ "deps": [
+ "cl-lib",
+ "es-lib"
+ ],
+ "commit": "1be9cbf994000022172ceb746fe1d597f57ea8ba",
+ "sha256": "13zsws8gq9a8nfk4yzlvfsvqjh9zbnanmw68rcna93yc5nc634nr"
+ }
+ },
+ {
+ "ename": "shimbun",
+ "commit": "c5a423647410357f0e63afba5b52bbe880fce969",
+ "sha256": "04d9kkj4fididhq220c1vjmlzmaqnii95c1ca86kzjbm2bqakkcd",
+ "fetcher": "github",
+ "repo": "emacs-w3m/emacs-w3m",
+ "unstable": {
+ "version": [
+ 20200813,
+ 37
+ ],
+ "commit": "7dcbab77334c5adf8309c7a93512c9f95a2c64e4",
+ "sha256": "0in8ir99b33d83nfxsnpj2dgyv4f558yrid77bp7f9k0qpgpj4zk"
+ }
+ },
+ {
+ "ename": "shm",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0z9qwwqf63wmizzby3yanqa31050f9jp6zrfhx7grf8a9aj89m89",
+ "fetcher": "github",
+ "repo": "projectional-haskell/structured-haskell-mode",
+ "unstable": {
+ "version": [
+ 20180327,
+ 57
+ ],
+ "commit": "7f9df73f45d107017c18ce4835bbc190dfe6782e",
+ "sha256": "1jcc30048j369jgsbbmkb63whs4wb37bq21jrm3r6ry22izndsqa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 20
+ ],
+ "commit": "8abc5cd73e59ea85bef906e14e87dc388c4f350f",
+ "sha256": "1vf766ja8f4xp1f5pmwgz6a85km0nxvc5dn571lwidfrrdbr9rkk"
+ }
+ },
+ {
+ "ename": "shoulda",
+ "commit": "41497a876c80d81d9562ea4b2cc2a83dba98ae8a",
+ "sha256": "0lmlhx34nwvn636y2wvw3sprhhh6q3mdg7dzgpjj7ybibvhp1lzk",
+ "fetcher": "github",
+ "repo": "marcwebbie/shoulda.el",
+ "unstable": {
+ "version": [
+ 20140616,
+ 1833
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fbe8eb8efc6cfcca1713283a290882cfcdc8725e",
+ "sha256": "19p47a4hwl6h2w5ay09hjhl4kf7cydwqp8s2iyrx2i0k58az8i8i"
+ }
+ },
+ {
+ "ename": "show-css",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0sq15l58macy2affdgbimnchn491fnrqr3bbgn30k3l3xkvkmc7k",
+ "fetcher": "github",
+ "repo": "8cylinder/showcss-mode",
+ "unstable": {
+ "version": [
+ 20160210,
+ 1408
+ ],
+ "deps": [
+ "doom",
+ "s"
+ ],
+ "commit": "771daeddd4df7a7c10f66419a837145649bab63b",
+ "sha256": "11kzjm12hbcdzrshq20r20l29k3555np1sva7afqrhgvd239fdq1"
+ }
+ },
+ {
+ "ename": "show-eol",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "1lk397a0b2nwdd9v1vk0kpfd0d0slflsvy4h0ycyvcnbc53byni4",
+ "fetcher": "github",
+ "repo": "jcs-elpa/show-eol",
+ "unstable": {
+ "version": [
+ 20200723,
+ 706
+ ],
+ "commit": "9fe95a4b1cda218082eb1d977190cc66c7a6b4ea",
+ "sha256": "1nzid34cwgyqih46glw3r5hkav1px5wf8w2skbac1f3vvjfm6qk7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "commit": "9fe95a4b1cda218082eb1d977190cc66c7a6b4ea",
+ "sha256": "1nzid34cwgyqih46glw3r5hkav1px5wf8w2skbac1f3vvjfm6qk7"
+ }
+ },
+ {
+ "ename": "showtip",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "1d5ckka2z0ffwyk9g3h91n3waijj2v7n8kvdks35gcr2yl3yk780",
+ "fetcher": "github",
+ "repo": "emacsorphanage/showtip",
+ "unstable": {
+ "version": [
+ 20090830,
+ 1040
+ ],
+ "commit": "930da302809a4257e8d69425455b29e1cc91949b",
+ "sha256": "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "930da302809a4257e8d69425455b29e1cc91949b",
+ "sha256": "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"
+ }
+ },
+ {
+ "ename": "shpec-mode",
+ "commit": "dd1bfe85b430c3bbb5a7baf11bb9699dad417f60",
+ "sha256": "155hc1nym3fsvflps8d3ixaqw1cafqp97zcaywdppp47n7vj8zjl",
+ "fetcher": "github",
+ "repo": "shpec/shpec-mode",
+ "unstable": {
+ "version": [
+ 20150530,
+ 922
+ ],
+ "commit": "146adc8281d0f115df39a3a3f982ac59ab61b754",
+ "sha256": "1mizhbwvnsxxjz6m94qziibvhghhp8v8db3wxrq3z9gsaqqkcndn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "76bccd63e3b70233a6c9ca0798dd03550952cc76",
+ "sha256": "09454mcjd8n1090pjc5mk1dc6bn3bgh60ddpnv9hkajkzpcjxx4h"
+ }
+ },
+ {
+ "ename": "shr-tag-pre-highlight",
+ "commit": "7be3c139bee02e8bd9a9830026cbfdd17629ac4d",
+ "sha256": "1v8fqx8bd5504r2mflq6x8xs3k0py3bgsnadz3bjs68yhaxacj3v",
+ "fetcher": "github",
+ "repo": "xuchunyang/shr-tag-pre-highlight.el",
+ "unstable": {
+ "version": [
+ 20200626,
+ 1047
+ ],
+ "deps": [
+ "language-detection"
+ ],
+ "commit": "931c447bc0d6c134ddc9657c664eeee33afbc54d",
+ "sha256": "09gcprqhl1ds4k407rlsjqr9y56a9wvjkli70wrf2l7w3dcm4qq0"
+ },
+ "stable": {
+ "version": [
+ 2
+ ],
+ "deps": [
+ "language-detection"
+ ],
+ "commit": "63eb0b2a4c1caf1004bac8e002ff8b7477871e36",
+ "sha256": "14b398k7rd0c2ymvg8wyq65fhggkm0camgvqr7j6ia2y0kairxba"
+ }
+ },
+ {
+ "ename": "shrface",
+ "commit": "6a8dfd3ebe0cf52e1c02d2487891876963a4fda2",
+ "sha256": "00v6ll2jiadmmfq59w6nk7lkq9ka3kcqf6mw1r8wiw84qb2sz56c",
+ "fetcher": "github",
+ "repo": "chenyanming/shrface",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1032
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "9470de04daf0d917d0501432cea78cd6f5cefec4",
+ "sha256": "00qi4dg0684all2aw9dljzd3hp01vk3hsfqpf2pvri8l31a9dls5"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 6
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "c82447df5b7fb87fa17e53919dc2da81c7dddec6",
+ "sha256": "1nncamyrn5c88lq973w1a28qg15gsdad51ifl1mhqprzkpw7jsjq"
+ }
+ },
+ {
+ "ename": "shrink-path",
+ "commit": "86b0d105e8a57d5f0bcde779441dc80b85e170ea",
+ "sha256": "0fq13c6g7qbq6f2ry9dzdyg1f6p41wimkjcdaj177rnilz77alzb",
+ "fetcher": "gitlab",
+ "repo": "bennya/shrink-path.el",
+ "unstable": {
+ "version": [
+ 20190208,
+ 1335
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "c14882c8599aec79a6e8ef2d06454254bb3e1e41",
+ "sha256": "1xnby24gpxij1z03wvx89s459jw0f8bwhgi80xvdq8gxhbbz2w7a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "s"
+ ],
+ "commit": "9b8cfb59a2dcee8b39b680ab9adad5ecb1f53c0b",
+ "sha256": "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"
+ }
+ },
+ {
+ "ename": "shrink-whitespace",
+ "commit": "a403093706d57887111e0d012e85273addaf0d35",
+ "sha256": "12i6xlcgk27bsdfnlcdjww8vxbx1yilaqa0pkh5n0hxb66zi6x15",
+ "fetcher": "gitlab",
+ "repo": "jcpetkovich/shrink-whitespace.el",
+ "unstable": {
+ "version": [
+ 20181003,
+ 321
+ ],
+ "commit": "0407b89c142bd17e65edb666f35e2c6755bd0867",
+ "sha256": "1qxdi2jm3zl5f55c6irsbnxrmqw039pcm99jafn7hg5z5zc3xhbx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "commit": "0407b89c142bd17e65edb666f35e2c6755bd0867",
+ "sha256": "1qxdi2jm3zl5f55c6irsbnxrmqw039pcm99jafn7hg5z5zc3xhbx"
+ }
+ },
+ {
+ "ename": "shroud",
+ "commit": "261a5b2c77288cf38bc309504215fb23c719f09b",
+ "sha256": "03226c2v76zdscxlbhq32wp5wgpg385phqnxcsibn1apk2rb4s4m",
+ "fetcher": "git",
+ "url": "https://git.savannah.nongnu.org/git/emacs-shroud.git",
+ "unstable": {
+ "version": [
+ 20200124,
+ 1833
+ ],
+ "deps": [
+ "bui",
+ "dash",
+ "dash-functional",
+ "epg",
+ "s"
+ ],
+ "commit": "bf8a854ecd440c525b870f9439f6785700af80d3",
+ "sha256": "1rfmykbv2jipkb8by9jsx51gdh62spilffj3c49h3rfcllqnbv2g"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 105
+ ],
+ "deps": [
+ "bui",
+ "dash",
+ "dash-functional",
+ "epg",
+ "s"
+ ],
+ "commit": "f758d497f87afd847126d2e69b2f7ba10a5bbbfa",
+ "sha256": "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"
+ }
+ },
+ {
+ "ename": "shut-up",
+ "commit": "297d3d88a1dad694d5903072adb679f2194ce444",
+ "sha256": "1bcqrnnafnimfcg1s7vrgq4cb4rxi5sgpd92jj7xywvkalr3kh26",
+ "fetcher": "github",
+ "repo": "cask/shut-up",
+ "unstable": {
+ "version": [
+ 20180628,
+ 1830
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "081d6b01e3ba0e60326558e545c4019219e046ce",
+ "sha256": "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "dccd8f7d6af2dde96718f557b37bc25adc61dd12",
+ "sha256": "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"
+ }
+ },
+ {
+ "ename": "shx",
+ "commit": "7a2ff78ae3c4289ebf9e06cdfd8f8082c395a16f",
+ "sha256": "0h5ldglx4y85lm0pfilasnch2k82mlr7rb20qvarzwd41hb1az1k",
+ "fetcher": "github",
+ "repo": "riscy/shx-for-emacs",
+ "unstable": {
+ "version": [
+ 20200410,
+ 639
+ ],
+ "commit": "5308d6891276b0aa2b0fd865f6c6f8c1a80ecb54",
+ "sha256": "01sz7iqny2r1zfipkria6r5w48rlbrp3ranqqyywvsxhwwr3apmp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "commit": "e5b4bae0a1a9bb8a762da40397a04efdd0b2b397",
+ "sha256": "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73"
+ }
+ },
+ {
+ "ename": "sibilant-mode",
+ "commit": "de12c8a37d6d42103f437e6bd974a94924242e8f",
+ "sha256": "0jd6dsk93nvwi5yia3623hfc4v6zz4s2n8m1wx9bw8x6kv3h3qbq",
+ "fetcher": "github",
+ "repo": "jbr/sibilant-mode",
+ "unstable": {
+ "version": [
+ 20151119,
+ 2145
+ ],
+ "commit": "bc1b5d8cd597918bafc9b2880ee49024740e54ab",
+ "sha256": "0cjqh6qbbmgxd6zgqnikw6bh8wpjydydkkqs5wcmblpi5awqmnb6"
+ }
+ },
+ {
+ "ename": "sicp",
+ "commit": "1363d7b6e95375ac63f07eed2b3947f4f81bc9ba",
+ "sha256": "1q7pbhjk8qgwvj27ianrdbmj98pwf3xv10gmpchh7bypmbyir4wz",
+ "fetcher": "github",
+ "repo": "webframp/sicp-info",
+ "unstable": {
+ "version": [
+ 20200512,
+ 1137
+ ],
+ "commit": "4002d83083d520c6b5ede2df36cc2cee885d450a",
+ "sha256": "0c9lknrhwhi4v3qnnzmy0k24d8pr3d3mpxi9xzcxq97f5w1x4fsk"
+ }
+ },
+ {
+ "ename": "side-notes",
+ "commit": "67d23bdaefb563d88b206a9ed822316f3d5be9a2",
+ "sha256": "07hrrplgvp3fvl10fsmxifnim8wz34w7fhzzzkxpdj1zlwls6h83",
+ "fetcher": "github",
+ "repo": "rnkn/side-notes",
+ "unstable": {
+ "version": [
+ 20200617,
+ 1445
+ ],
+ "commit": "27c964334b8e30fa88e4278ae58dc3d00df34f1f",
+ "sha256": "1xl2ykdscrwpxm02ypnf68mkxf9dkp64cj465b69s874x10bxfc3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "commit": "27c964334b8e30fa88e4278ae58dc3d00df34f1f",
+ "sha256": "1xl2ykdscrwpxm02ypnf68mkxf9dkp64cj465b69s874x10bxfc3"
+ }
+ },
+ {
+ "ename": "sift",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1kr5rxza5li3zrkfvs91y7dxmn213z0zf836rkwkmwg2b9rmqxvj",
+ "fetcher": "github",
+ "repo": "nlamirault/sift.el",
+ "unstable": {
+ "version": [
+ 20200421,
+ 1423
+ ],
+ "commit": "cdddba2d183146c340915003f1b5d09d13712c22",
+ "sha256": "0ln87nhq2vhsb0ywn7rp0b3hzms5z7l6cv6dng08yly12r2957if"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "8c3f3d14a351a2394027d72ee0599aa73b9f0d13",
+ "sha256": "1ma6djvhvjai07v1g9a36lfa3nw8zsy6x5vliwcdnkf44gs287ra"
+ }
+ },
+ {
+ "ename": "signal",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1g8sbszh7cnhpfaql8jn22bsdjdyjdnjb00xr43krr6smc1dr2xq",
+ "fetcher": "github",
+ "repo": "mola-T/signal",
+ "unstable": {
+ "version": [
+ 20160816,
+ 1438
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "aa58327e2297df921d72a0370468b48663efd438",
+ "sha256": "1gzfdk3ks56h8q4xk69aaxkhkg9jhs55iqdicyvq7x9wmjn6b7xw"
+ }
+ },
+ {
+ "ename": "silkworm-theme",
+ "commit": "9451d247693c3e991f79315868c73808c0a664d4",
+ "sha256": "1zbrjqmhf80qs3i910sixirrv42rxkqdrg2z03gnz1g885gpcn13",
+ "fetcher": "github",
+ "repo": "mswift42/silkworm-theme",
+ "unstable": {
+ "version": [
+ 20191005,
+ 1903
+ ],
+ "commit": "6cb44e3bfb095588aa3bdf8d0d45b583521f9e2c",
+ "sha256": "0w5h1gl8npmwmpvhhwchrknd977w4l3vvd2lib7qphinj117fhzv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "7951b53e5caf9daf6a5a15a57ae3a668cb78bd7b",
+ "sha256": "1q21886qsam8y3s60zlfh48w0jl67q14qg9pzda7j2jcbj1q6r91"
+ }
+ },
+ {
+ "ename": "simp",
+ "commit": "45ff5b788e12218f8e2df7e53444796ca4b929fc",
+ "sha256": "0x4lssjkj3fk9fw603f0sggvcj25iw0zbzsm5c949lhl4a3wvc9c",
+ "fetcher": "github",
+ "repo": "re5et/simp",
+ "unstable": {
+ "version": [
+ 20180607,
+ 254
+ ],
+ "commit": "d4d4b8547055347828bedccbeffdb4fd2d5a5d34",
+ "sha256": "1a60vk46haibzrm6zgssdw085wpssmmqc66bipvkq6xnp2cvchkc"
+ }
+ },
+ {
+ "ename": "simple-bookmarks",
+ "commit": "a60dd50c388a75ce21a5aec9acf938835d7afdbc",
+ "sha256": "0jn5wzm9y4054mr9czd3224s5kbrqpcpcfmj6fi62yhy3p1ys9rb",
+ "fetcher": "github",
+ "repo": "jtkDvlp/simple-bookmarks",
+ "unstable": {
+ "version": [
+ 20190204,
+ 1426
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "54e8d771bcdb0eb235b31c0aa9642171369500e5",
+ "sha256": "0i4yw341b7iml2j8mxclixsrdqlvixfxpabaxp4jh70aq2zfw1cf"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 9
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "54e8d771bcdb0eb235b31c0aa9642171369500e5",
+ "sha256": "0i4yw341b7iml2j8mxclixsrdqlvixfxpabaxp4jh70aq2zfw1cf"
+ }
+ },
+ {
+ "ename": "simple-call-tree",
+ "commit": "316a5ffcb3080abd623bbe3065077809e6cbfb74",
+ "sha256": "1cbv4frsrwd8d3rg8r4sylwnc1hl3hgh595qwbpx0zd3dp5na2yl",
+ "fetcher": "github",
+ "repo": "vapniks/simple-call-tree",
+ "unstable": {
+ "version": [
+ 20180224,
+ 2056
+ ],
+ "deps": [
+ "anaphora"
+ ],
+ "commit": "20059eb5549408def76aeb03d0d20839903dedef",
+ "sha256": "0gvhn2r7h6jz7a3i3a8gwlmghv1xfzj0sdib25kz645iylazji4h"
+ }
+ },
+ {
+ "ename": "simple-httpd",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1g9m8dx62pql6dqz490pifcli96i5pv6sar18w4lwrfgpfisfz8c",
+ "fetcher": "github",
+ "repo": "skeeto/emacs-web-server",
+ "unstable": {
+ "version": [
+ 20191103,
+ 1446
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "22ce66ea43e0eadb9ec1d691a35d9695fc29cee6",
+ "sha256": "1ghwfrnml8qmfm981xrrqga2ayw36pqv9s2zqaqzl6szzpwnkz8i"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a5eb49a6567e33586fba15dd649d63ca6e964314",
+ "sha256": "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"
+ }
+ },
+ {
+ "ename": "simple-modeline",
+ "commit": "054a7c164fae0c76ad2b3c6891d37a03f3e08823",
+ "sha256": "0c2wvwxwaa62r4vrw9g1lcgr8cv57mlfpsszynkn00cb7fhlhdmk",
+ "fetcher": "github",
+ "repo": "gexplorer/simple-modeline",
+ "unstable": {
+ "version": [
+ 20200427,
+ 717
+ ],
+ "commit": "08197f4c37aa28c8305f0b0316619421e42a8b75",
+ "sha256": "1wqqaknii7nkvm8nfjr2wzwjwr4w60a2x044y1kgk6zfkfb106lh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "e7e39660dadcef88e7e877ad1f24625873e90e51",
+ "sha256": "0s8979jd3x6yarq4ifn5wgn08s8z2kblzaagh4zywkhaj1i7mb4m"
+ }
+ },
+ {
+ "ename": "simple-mpc",
+ "commit": "62d762308c1ec0c1d8f7b4755b7deb285cbac018",
+ "sha256": "05x2xyys5mf6k7ndh0l6ykyiygaznb4f8bx3npbhvihrsz9ilf8r",
+ "fetcher": "github",
+ "repo": "jorenvo/simple-mpc",
+ "unstable": {
+ "version": [
+ 20200523,
+ 1804
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "ce731fa390b7e4edfc461a9cfb4443c1aab4b011",
+ "sha256": "14fb52r5fzdcqqbh5kkajaz43iqq8g64g0rsswwwv6g1j23y93k3"
+ }
+ },
+ {
+ "ename": "simple-paren",
+ "commit": "5e8886feb4a034fddd40d7381508b09db79f608f",
+ "sha256": "0bmw8pkh9864gymy36r3w5yw08pq894gb1n80wfqls4a78zyvkm3",
+ "fetcher": "github",
+ "repo": "andreas-roehler/simple-paren",
+ "unstable": {
+ "version": [
+ 20200120,
+ 2036
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2a4ba8f99f39abf17976db8118e32b80eff0798b",
+ "sha256": "0897i5ggdivi2knblcbkyv9lpnwgdlr8ql9brd09bkdsbzhsqb6y"
+ }
+ },
+ {
+ "ename": "simple-rtm",
+ "commit": "a784f931849ca836557390999b179ef9f6e775f3",
+ "sha256": "0v5f0vr8sh62yvb7znx00wgybb83dfnkvgl8afyk3ry8n9xkhf5b",
+ "fetcher": "gitlab",
+ "repo": "mbunkus/simple-rtm",
+ "unstable": {
+ "version": [
+ 20160222,
+ 1534
+ ],
+ "deps": [
+ "dash",
+ "rtm"
+ ],
+ "commit": "8c7cd96cf66ef112be5c363e3378e304f8f83999",
+ "sha256": "1kkhnsxr8zrb21k4ckyg69nsndwy4zdkvfw2drk4v1vnbgx8144f"
+ }
+ },
+ {
+ "ename": "simple-screen",
+ "commit": "02db9a649002ed9dec03661a518f74f3c7a176d9",
+ "sha256": "16zvsmqn882w320h26hjjz5lcyl9y0x4amkf2zfps77xxmkmi5n0",
+ "fetcher": "github",
+ "repo": "wachikun/simple-screen",
+ "unstable": {
+ "version": [
+ 20161009,
+ 920
+ ],
+ "commit": "596e3a451d9af24730ab31a8fe15c91a4264d09d",
+ "sha256": "0mqlwrkipgf977s0gx57fv5xrqli67hixprvra6q64isapr86yh1"
+ }
+ },
+ {
+ "ename": "simpleclip",
+ "commit": "7c921e27d6aafc1b82d37f6beb8407840034377a",
+ "sha256": "07qkfwlg8vw5kb097qbsv082hxir047q2bcvc8scbak2dr6pl12s",
+ "fetcher": "github",
+ "repo": "rolandwalker/simpleclip",
+ "unstable": {
+ "version": [
+ 20200210,
+ 1406
+ ],
+ "commit": "970159c788d38877f55f6fe93fe590642d45fb47",
+ "sha256": "0divawrww9py1r3yd7v0574lhf186f1d227gsmmal5m9zzi7pk7k"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 10
+ ],
+ "commit": "d327abe0522b9b9a26e005eae5ffa4c34ea2ba0a",
+ "sha256": "1xkv34ibp3zv1b4y2q0i8x7c6vqrqf8r5jzj30nzz4lm5ipvd98r"
+ }
+ },
+ {
+ "ename": "simplenote",
+ "commit": "8c1c3189da03541e3bee44847ac5d02c2a56ef98",
+ "sha256": "0rnvm3q2spfj15kx2c8ic1p8hxg7rwiqgf3x2zg34j1xxayn3h2j",
+ "fetcher": "github",
+ "repo": "dotemacs/simplenote.el",
+ "unstable": {
+ "version": [
+ 20141118,
+ 1440
+ ],
+ "commit": "e836fcdb5a6497a9ffd6bceddd19b4bc52189078",
+ "sha256": "0xq4vy3ggdjiycd3aa62k94kd43zcpm8bfdgi8grwkb1lpvwq9i9"
+ }
+ },
+ {
+ "ename": "simplenote2",
+ "commit": "1ac16abd2ce075a8bed4b7b52aed71cb12b38518",
+ "sha256": "1qdzbwhzmsga65wmrd0mb3rbs71nlyqqb6f4v7kvfxzyis50cswm",
+ "fetcher": "github",
+ "repo": "alpha22jp/simplenote2.el",
+ "unstable": {
+ "version": [
+ 20190321,
+ 933
+ ],
+ "deps": [
+ "request-deferred",
+ "unicode-escape",
+ "uuidgen"
+ ],
+ "commit": "760ffecda63bd218876b623f46d332e3ef079be6",
+ "sha256": "1swb6xvdw6dql6wdj8y5kaaicwrafiz5jwnfl5h1viw08b98q8dv"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "deps": [
+ "request-deferred"
+ ],
+ "commit": "070aa311b0a08b530394c53d0c52c6438efbc20c",
+ "sha256": "0zx49kd3wrqx6f52nk8rzqx3ay3qbcygibcidw6w7drvxnxjgd04"
+ }
+ },
+ {
+ "ename": "simplezen",
+ "commit": "eddd3de86e14f56b59fa6f9a08fc89288e0bdbc1",
+ "sha256": "13f2anhfsxmx1vdd209gxkhpywsi3nn6pazhc6bkswmn27yiig7j",
+ "fetcher": "github",
+ "repo": "magnars/simplezen.el",
+ "unstable": {
+ "version": [
+ 20130421,
+ 1000
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "119fdf2c6890a0c56045ae72cf4fce0071a81481",
+ "sha256": "0108q2b5h73rjxg9k2kmc8z6la9kgqdnz9z1x7rn61v3vbxlzqvn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "c0ddaefbb38fcc1c9775434f734f89227d246a30",
+ "sha256": "1p1771qm3jndnf4rdhb1bri5cjiksvxizagi7vfb7mjmsmx18w61"
+ }
+ },
+ {
+ "ename": "sis",
+ "commit": "bea2374d589869dde682db96c35c530a051de3a9",
+ "sha256": "0zkfpmnnj30l36mcv90x90vs31x8q2rrs2ixy5w8lc96vn1dgavf",
+ "fetcher": "github",
+ "repo": "laishulu/emacs-smart-input-source",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1533
+ ],
+ "deps": [
+ "terminal-focus-reporting"
+ ],
+ "commit": "2568d04908af2d529f5ce0e71f0da541ff53e2a8",
+ "sha256": "0kmfhq6rypcc00ylmhf0m9nd51r6kzqfp6hcd22riynq51fb2cyh"
+ }
+ },
+ {
+ "ename": "skeletor",
+ "commit": "1e63aefc869900c2af6f958dc138f9c72c63e2b8",
+ "sha256": "1vfvg5l12dzksr24dxwc6ngawsqzpxjs97drw48qav9dy1vyl10v",
+ "fetcher": "github",
+ "repo": "chrisbarrett/skeletor.el",
+ "unstable": {
+ "version": [
+ 20191129,
+ 841
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f",
+ "let-alist",
+ "s"
+ ],
+ "commit": "eb21383a9c9e7cf7ae2bbb85cb6d4f42aa3cb37f",
+ "sha256": "1vq4g8kpq9q4zyybw4k4hgvn13avxz653gdfrx4x5wvfqcr91mbx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "f",
+ "let-alist",
+ "s"
+ ],
+ "commit": "d986806559628623b591542143707de8d76347d0",
+ "sha256": "101xn4glqi7b5vhdqqahj2ib4pm30pzq8sad7zagxw9csihcri3q"
+ }
+ },
+ {
+ "ename": "skewer-less",
+ "commit": "fb63f7417f39bd718972f54e57360708eb48b977",
+ "sha256": "0fhv5cnp5bgw3krfmb0jl18kw2hzx2p81falj57lg3p8rn23dryl",
+ "fetcher": "github",
+ "repo": "purcell/skewer-less",
+ "unstable": {
+ "version": [
+ 20160828,
+ 2021
+ ],
+ "deps": [
+ "skewer-mode"
+ ],
+ "commit": "8ce9d030e18133319181d5dabe3e905c8ca5fd6b",
+ "sha256": "1hkk9si9z9zd2x2cv2gs0z423prlwlhq847irypz2dm1bnm5dzrx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "skewer-mode"
+ ],
+ "commit": "593001930f1d68c85233f34c5f6fb04173fc98d6",
+ "sha256": "0g5sapd76pjnfhxlw149zj0fpn6l3pz3l8qlcn2c237vm8vn6qv3"
+ }
+ },
+ {
+ "ename": "skewer-mode",
+ "commit": "10fba4f7935c78c4fc5eee7dbb161173dea884ba",
+ "sha256": "1zp4myi9f7pw6zkgc0xg12585iihn7khcsf20pvqyc0vn4ajdwqm",
+ "fetcher": "github",
+ "repo": "skeeto/skewer-mode",
+ "unstable": {
+ "version": [
+ 20200304,
+ 1142
+ ],
+ "deps": [
+ "js2-mode",
+ "simple-httpd"
+ ],
+ "commit": "e5bed351939c92a1f788f78398583c2f83f1bb3c",
+ "sha256": "07fv33arh77kdfglg6yv28gvryh0z7ddxylhdyr5plvvglpbwi88"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 0
+ ],
+ "deps": [
+ "js2-mode",
+ "simple-httpd"
+ ],
+ "commit": "a10955db9ef95b0243ee31bcd30a6fb07ce5302b",
+ "sha256": "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"
+ }
+ },
+ {
+ "ename": "skewer-reload-stylesheets",
+ "commit": "aeaa2c89b995f1ab0b0f96493db0cda44cc851ee",
+ "sha256": "1hcz8q7rs5g7gbj6w72g8prry4niqjmyxvvc0ala83qw76x4cm7k",
+ "fetcher": "github",
+ "repo": "NateEag/skewer-reload-stylesheets",
+ "unstable": {
+ "version": [
+ 20160725,
+ 1220
+ ],
+ "deps": [
+ "skewer-mode"
+ ],
+ "commit": "b9cc5635230ac3c0603a6da690c6e632d0a7490a",
+ "sha256": "0c8dpbl0z45w1brllcysibmpbnk8yqjgi3iywmqnhrycb7lrda4g"
+ }
+ },
+ {
+ "ename": "skype",
+ "commit": "d3448698a35c9d5d25639f62024f89cac03d5830",
+ "sha256": "06p5s5agajbm9vg9xxpzv817xmjw2kmcahiw4iypn5yzwhv1aykl",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-skype",
+ "unstable": {
+ "version": [
+ 20160711,
+ 824
+ ],
+ "commit": "8e3b33e620ed355522aa36434ff41e3ced080629",
+ "sha256": "078gjgknsrm1n2f0diian9l056kqh1fj2w0y6ildsvzjipygdz1y"
+ }
+ },
+ {
+ "ename": "sl",
+ "commit": "7188a93d33e38f360930b5090c6ef872116f8a7c",
+ "sha256": "0h90ajikr6kclsy73vs9f50jg8z3d6kqbpanm9ryh2pw3sd4rnii",
+ "fetcher": "github",
+ "repo": "xuchunyang/sl.el",
+ "unstable": {
+ "version": [
+ 20161217,
+ 1404
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fceb2ae12a3065b2a265b921baca0891c5ea54dc",
+ "sha256": "0cfldhhmgbr55fvhq85hrksf9n8m27rd1p28lbib0bpghgnax0v7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "51d92f820f3e93776fff6cdb9690458816888bdc",
+ "sha256": "1faklr7jz1s6hs1xrzhvddlibhbjbqwxsb8iz6i5c8dg9sj3hw45"
+ }
+ },
+ {
+ "ename": "slack",
+ "commit": "f0258cc41de809b67811a5dde3d475c429df0695",
+ "sha256": "0mybjx08yskk9vi06ayiknl5ddyd8h0mnr8c0a3zr61p1x4s6anp",
+ "fetcher": "github",
+ "repo": "yuya373/emacs-slack",
+ "unstable": {
+ "version": [
+ 20200725,
+ 1052
+ ],
+ "deps": [
+ "alert",
+ "circe",
+ "emojify",
+ "oauth2",
+ "request",
+ "websocket"
+ ],
+ "commit": "7570e82604b59b65e9ef31c5325bef45769ae027",
+ "sha256": "1i7fb4icj9h4lkcsfqqqhsi59msmslckcgxaa5aag4v3cdy93prg"
+ }
+ },
+ {
+ "ename": "slideview",
+ "commit": "b250f977f44a08346ee9715b416c9706375227a1",
+ "sha256": "0zr08yrnrz49zds1651ysmgjqgbnhfdcqbg90sbsb086iw89rxl1",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-slideview",
+ "unstable": {
+ "version": [
+ 20150324,
+ 2240
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b6d170bda139aedf81b47dc55cbd1a3af512fb4c",
+ "sha256": "11p1pghx55a4gcn45cadw7c594134b21cdim723k2h99z14f89az"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "commit": "ec2340e7b0e74201206d14e3eaef1e77149f122d",
+ "sha256": "0rk12am1dq52khwkwrmg70zarhni2avj4sy44jqckb4x7sv7djfk"
+ }
+ },
+ {
+ "ename": "slim-mode",
+ "commit": "6a3b59bdbc53d7c0b4c4d6434689f7aab2546678",
+ "sha256": "1hip0r22irr9sah3b65ky71ic508bhqvj9hj95a81qvy1zi9rcac",
+ "fetcher": "github",
+ "repo": "slim-template/emacs-slim",
+ "unstable": {
+ "version": [
+ 20170728,
+ 1348
+ ],
+ "commit": "3636d18ab1c8b316eea71c4732eb44743e2ded87",
+ "sha256": "1sqylm6ipmlh9249mmwfb16b4pv94cvzdwvi3zakdpz713phyjw5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "fe8abb644b7b9cc0ed1e76d9ca8d6c01edccbdb8",
+ "sha256": "1cl8amk1kc7a953l1khjms04j40mfkpnbsjz3qa123msgachrsg7"
+ }
+ },
+ {
+ "ename": "slime",
+ "commit": "47609a81b81330820f6ddf717400dc7fa06aaabf",
+ "sha256": "1ds8iprxr04wdhnnw4129v5l3w3k5rjp5ax156ppqr5i7wxx1zac",
+ "fetcher": "github",
+ "repo": "slime/slime",
+ "unstable": {
+ "version": [
+ 20200810,
+ 224
+ ],
+ "deps": [
+ "cl-lib",
+ "macrostep"
+ ],
+ "commit": "fb12bac676ab51b75be19197e21ab4674479d627",
+ "sha256": "1lqd6mk87kmmyb83qf4h0i5wpq3mnqwzl9gdcjildy7afsp3f1fk"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 26
+ ],
+ "deps": [
+ "cl-lib",
+ "macrostep"
+ ],
+ "commit": "fb12bac676ab51b75be19197e21ab4674479d627",
+ "sha256": "1lqd6mk87kmmyb83qf4h0i5wpq3mnqwzl9gdcjildy7afsp3f1fk"
+ }
+ },
+ {
+ "ename": "slime-company",
+ "commit": "abe5036c6de996a723bc800e0f031314e1188660",
+ "sha256": "195s5fi2dl3h2jyy4d45q22jac35sciz81n13b4lgw94mkxx4rq2",
+ "fetcher": "github",
+ "repo": "anwyn/slime-company",
+ "unstable": {
+ "version": [
+ 20200424,
+ 1045
+ ],
+ "deps": [
+ "company",
+ "slime"
+ ],
+ "commit": "cec203c45ebd678b05341d1cdbe420ad07a1b8e0",
+ "sha256": "0dwj6kv8laivhisd9jrzdn1lxynqqxmimvyz3z0zz6qf0ijsl0wm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "deps": [
+ "company",
+ "slime"
+ ],
+ "commit": "cec203c45ebd678b05341d1cdbe420ad07a1b8e0",
+ "sha256": "0dwj6kv8laivhisd9jrzdn1lxynqqxmimvyz3z0zz6qf0ijsl0wm"
+ }
+ },
+ {
+ "ename": "slime-docker",
+ "commit": "15ec3f7208287161571c8fc3b29369ceabb44e5f",
+ "sha256": "13zkkrpww51ndsblpyz2msiwrjnaz6yrk61jbzrwp0r7a2v0djsa",
+ "fetcher": "github",
+ "repo": "daewok/slime-docker",
+ "unstable": {
+ "version": [
+ 20190430,
+ 157
+ ],
+ "deps": [
+ "cl-lib",
+ "docker-tramp",
+ "slime"
+ ],
+ "commit": "151cec4a11965cdc00d231900a50f2c9f455fce2",
+ "sha256": "1sp6qi2i1cl41ga9y6fwf7q855y0b59fcbxdiggdhigwd5zslzcv"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "deps": [
+ "cl-lib",
+ "docker-tramp",
+ "slime"
+ ],
+ "commit": "1ba41c2d86540a84b47466b0b6957f8063f23aa8",
+ "sha256": "168s5xsf7l6s8x5hcmzmk5j9d8a3wpr4s3dlm697dg2n1717gl2z"
+ }
+ },
+ {
+ "ename": "slime-repl-ansi-color",
+ "commit": "07fd791e2674ce3c773e2c213e045d6c7d12d848",
+ "sha256": "187xs5gfwjpkg31zhrrivjkp0j8wrr2xbjszr1hayzx5c8d7yz39",
+ "fetcher": "gitlab",
+ "repo": "augfab/slime-repl-ansi-color",
+ "unstable": {
+ "version": [
+ 20200712,
+ 1226
+ ],
+ "deps": [
+ "slime"
+ ],
+ "commit": "e38c7958d9657e41c426b4e96938b3f604238795",
+ "sha256": "0rbg6ndi59ycw54s2c21a3c2cr0wlymrpp4qr33yxv1ik00n5n5p"
+ }
+ },
+ {
+ "ename": "slime-theme",
+ "commit": "641d1959bd31598fcdacd39a3d1bb077dcccfa5c",
+ "sha256": "1b709cplxip48a6qjdnzcn5qcgsy0jq1m05d7vc8p5ywgr1f9a00",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-slime-theme",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1322
+ ],
+ "commit": "8e5880ac69e0b6a079103001cc3a90bdb688998f",
+ "sha256": "0g90ypwyvpdzilvhj0rgfrp78a5gflply3rix2wx8rncw569qb6g"
+ }
+ },
+ {
+ "ename": "slime-volleyball",
+ "commit": "853f47f469e372bdbae40f3cea60d9598e966fab",
+ "sha256": "1dzvj8z3l5l9ixjl3nc3c7zzi23zc2300r7jzw2l3bvg64cfbdg7",
+ "fetcher": "github",
+ "repo": "fitzsim/slime-volleyball",
+ "unstable": {
+ "version": [
+ 20190701,
+ 1624
+ ],
+ "commit": "6c135ad18897c3566d4dadfe847061532600ba2e",
+ "sha256": "1k46a9apxk95hd98rip84f728sjq52qbv286sixy3l59k8vls53q"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "159b5c0f40b109e3854e94b89ec5383854c46ae3",
+ "sha256": "00v4mh04affd8kkw4rn51djpyga2rb8f63mgy86napglqnkz40r3"
+ }
+ },
+ {
+ "ename": "slirm",
+ "commit": "6407db0f265c49fdddaa6e8f85f295e2b90a077b",
+ "sha256": "061xjj3vjdkkvd979fhp7bc12g5zkxqxywvcz3z9dlkgdks41ld7",
+ "fetcher": "github",
+ "repo": "fbie/slirm",
+ "unstable": {
+ "version": [
+ 20160201,
+ 1425
+ ],
+ "commit": "9adfbe1fc67580e7d0d90f7e927a25d63a797464",
+ "sha256": "0srj0zcvzr0sjcs37zz11xz8w0yv94m69av9ny7mx8ssf4qp0pxa"
+ }
+ },
+ {
+ "ename": "slovak-holidays",
+ "commit": "d5c6b2208ef209dfe57c2c137a88ce08a4eae475",
+ "sha256": "1dcw8pa3r9b7n7dc8fgzijz7ywwxb3nlfg7n0by8dnvpjq2c30bg",
+ "fetcher": "github",
+ "repo": "Fuco1/slovak-holidays",
+ "unstable": {
+ "version": [
+ 20150418,
+ 855
+ ],
+ "commit": "effb16dfcd14797bf7448f5113085479db339c02",
+ "sha256": "1y1gay1h91c0690gly4qibx1my0l1zpb6s3x58lks8m21jdwfw28"
+ }
+ },
+ {
+ "ename": "slow-keys",
+ "commit": "5d16756967dd9077399b92cde2ddd7784739b693",
+ "sha256": "03p0qx8a3g8mapjhdf9pjp3n0ng2pxmizpqn87wk8mbc8cmlwk2w",
+ "fetcher": "github",
+ "repo": "manuel-uberti/slow-keys",
+ "unstable": {
+ "version": [
+ 20180831,
+ 459
+ ],
+ "commit": "b93ad77f9fc1d14e080d7d64864fc9cb222248b6",
+ "sha256": "1s4yk6w9fqf6hmimjcq8r7b54v7f2hz3isihiaidj3sv5zclhflw"
+ }
+ },
+ {
+ "ename": "slstats",
+ "commit": "fe7c8c241cc6920bbedb6711db63ea28ed633327",
+ "sha256": "0z5y2fmb3v16g5gf87c9gll04wbjp3d1cf7gm5cxi4w3y1kw4r7q",
+ "fetcher": "github",
+ "repo": "davep/slstats.el",
+ "unstable": {
+ "version": [
+ 20170823,
+ 849
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e9696066abf3f2b7b818a57c062530dfd9377033",
+ "sha256": "1mjzr6lqcyx3clp3bxq77k2rpkaglnq407xdk05xkaqissirpc83"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 10
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e9696066abf3f2b7b818a57c062530dfd9377033",
+ "sha256": "1mjzr6lqcyx3clp3bxq77k2rpkaglnq407xdk05xkaqissirpc83"
+ }
+ },
+ {
+ "ename": "sly",
+ "commit": "4a916e44049cf8c5616c7394389ef91e2a2b3e21",
+ "sha256": "1pylaiy016yiyvd27m38wymw1k3bq7sfsd2d23idrgybc8miqqp6",
+ "fetcher": "github",
+ "repo": "joaotavora/sly",
+ "unstable": {
+ "version": [
+ 20200816,
+ 928
+ ],
+ "commit": "155cb0655e037477b592f8bde9c80022427293e5",
+ "sha256": "0g0ncqb7x3g3gafxm5j0v893cvnskq4idb5442f0v8d3y9pr0lyi"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 22
+ ],
+ "commit": "8d9fdf34fe542ec280ee042ee7bdea16e512d3c0",
+ "sha256": "0zsliqfd92ivg2y2w1z6scn6i3w658x8bi1wd0rvf6mddc74lvj6"
+ }
+ },
+ {
+ "ename": "sly-asdf",
+ "commit": "09e59410bebffb8ab7e3236ee97f692665833f31",
+ "sha256": "1fn1gm439x1axmslgcxinj8lx2vh7jq2qjbxpyjgv5lj9wia0bzi",
+ "fetcher": "github",
+ "repo": "mmgeorge/sly-asdf",
+ "unstable": {
+ "version": [
+ 20200306,
+ 433
+ ],
+ "deps": [
+ "popup",
+ "sly"
+ ],
+ "commit": "32ce14994e8faee9321605cec36d156b02996c46",
+ "sha256": "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "sly"
+ ],
+ "commit": "c387ba34a75b172e8a75747220c416462ae9de31",
+ "sha256": "1cr6p11vsplb6afh2avwb585q606npp692gb5vqs377nni5vx7km"
+ }
+ },
+ {
+ "ename": "sly-hello-world",
+ "commit": "4150455d424326667390f72f6edd22b274d9fa01",
+ "sha256": "0mry5r0qc2w9k31kifqfc9slmh8mp2pz44qb36f41i3znckf7xy4",
+ "fetcher": "github",
+ "repo": "joaotavora/sly-hello-world",
+ "unstable": {
+ "version": [
+ 20200225,
+ 1755
+ ],
+ "deps": [
+ "sly"
+ ],
+ "commit": "d25acc1220a3ce066bd9908251c2f0f88b1781e9",
+ "sha256": "0par51rbspk2gqfqag24rynzdvv4npdifdy7bjz9n0b0p2ly39kc"
+ }
+ },
+ {
+ "ename": "sly-macrostep",
+ "commit": "4150455d424326667390f72f6edd22b274d9fa01",
+ "sha256": "0gg9r5np2008593n1igq5chda1a3x1iblj0r4mqnnxa0r1hdsw3j",
+ "fetcher": "github",
+ "repo": "joaotavora/sly-macrostep",
+ "unstable": {
+ "version": [
+ 20191211,
+ 1630
+ ],
+ "deps": [
+ "macrostep",
+ "sly"
+ ],
+ "commit": "5113e4e926cd752b1d0bcc1508b3ebad5def5fad",
+ "sha256": "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"
+ }
+ },
+ {
+ "ename": "sly-named-readtables",
+ "commit": "4150455d424326667390f72f6edd22b274d9fa01",
+ "sha256": "0wy0z9m8632qlcxb4pw3csc52yaq7dj7gdf3pbg0wb67f32ihihz",
+ "fetcher": "github",
+ "repo": "joaotavora/sly-named-readtables",
+ "unstable": {
+ "version": [
+ 20191013,
+ 2138
+ ],
+ "deps": [
+ "sly"
+ ],
+ "commit": "a5a42674ccffa97ccd5e4e9742beaf3ea719931f",
+ "sha256": "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"
+ }
+ },
+ {
+ "ename": "sly-quicklisp",
+ "commit": "4150455d424326667390f72f6edd22b274d9fa01",
+ "sha256": "0j0qkvs2v563dz2rd70dfmd0qpdwicymx59zv3gn57z5a8m14866",
+ "fetcher": "github",
+ "repo": "joaotavora/sly-quicklisp",
+ "unstable": {
+ "version": [
+ 20200707,
+ 1635
+ ],
+ "deps": [
+ "sly"
+ ],
+ "commit": "4707b62803d7a29f172e9c5ff993b91187a9aaf3",
+ "sha256": "1i4fqgd42khl85d4fifgfz2z6njpb8bxdry4chmgl8wfhh0mydza"
+ }
+ },
+ {
+ "ename": "sly-repl-ansi-color",
+ "commit": "981e01f562c40e02cb6d56dc1347e922fbad9c18",
+ "sha256": "0wz24kfjl6rp4qss0iq2ilav0mkg2spy2ziikypy7v0iqbssmssi",
+ "fetcher": "github",
+ "repo": "PuercoPop/sly-repl-ansi-color",
+ "unstable": {
+ "version": [
+ 20171020,
+ 1516
+ ],
+ "deps": [
+ "cl-lib",
+ "sly"
+ ],
+ "commit": "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048",
+ "sha256": "0fgcn6bwgz8yyjza07kfi86siargvpq4kp4j20hs6b67ckxjxx0x"
+ }
+ },
+ {
+ "ename": "smart-backspace",
+ "commit": "88cd95cd623fb00d1bc6800c1dd3c665a0cce349",
+ "sha256": "152xdxzrr91qiyq25ghvjlbpc627cw4s120axmz2p2d48pinwir9",
+ "fetcher": "github",
+ "repo": "itome/smart-backspace",
+ "unstable": {
+ "version": [
+ 20171014,
+ 526
+ ],
+ "commit": "a10ec44ff325ec8c4c98b1a6e44e89e60a9aa4ac",
+ "sha256": "0p19qikalmvs9y1lws08mxvh2k8s219mpm3nyi9aqq62ryyfwf1n"
+ }
+ },
+ {
+ "ename": "smart-comment",
+ "commit": "798c3b42e568bea63edc0c1d3ce2c2d913e3440e",
+ "sha256": "0lbrasdrkyj7zybz0f3xick8p0bvci5bhb2kg6pqzz9pw2iaxw12",
+ "fetcher": "github",
+ "repo": "paldepind/smart-comment",
+ "unstable": {
+ "version": [
+ 20160322,
+ 1839
+ ],
+ "commit": "17ddbd83205818763e6d68aa7a1aa9aaf414cbd4",
+ "sha256": "0r181rdnymr96kj74c73212n6157cfiq1d6hk2lfc54yl6h76zf4"
+ }
+ },
+ {
+ "ename": "smart-compile",
+ "commit": "93562afd7b62d7535b8010179ba6ac7e8e6280d0",
+ "sha256": "1w3vyb6wz786ydrywkjmazyvgfl0qxamn0fgnqpn17d2c5jr9c4g",
+ "fetcher": "github",
+ "repo": "zenitani/elisp",
+ "unstable": {
+ "version": [
+ 20200727,
+ 1249
+ ],
+ "commit": "1f14c86af7ca5813ddc0b6dfcf2edd4a81371644",
+ "sha256": "0z1mmbgsx2lxrlyg59kz39khbir5k3cwb83mpz49ixfmy54byx5n"
+ }
+ },
+ {
+ "ename": "smart-cursor-color",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "19ah55514ashkm4f49nlbnrpwxpwlfn6x3fbi4dv0x2b8v1828ss",
+ "fetcher": "github",
+ "repo": "7696122/smart-cursor-color",
+ "unstable": {
+ "version": [
+ 20141124,
+ 1719
+ ],
+ "commit": "1d190f49ca77734b55ac58f1b6276e42ada967b0",
+ "sha256": "1xbd42q60pmg0hw4bn2fndjwgrfgj6ggm757fyp8m08jqh0zkarn"
+ }
+ },
+ {
+ "ename": "smart-dash",
+ "commit": "59d3ab87741a9290fce17307256e085b91dd1d8a",
+ "sha256": "1rs5xxmn2qdpwla55rq4ar1kani2acil3sq47gx15y3v0rsrxxkx",
+ "fetcher": "github",
+ "repo": "malsyned/smart-dash",
+ "unstable": {
+ "version": [
+ 20200104,
+ 1620
+ ],
+ "commit": "9db5c6bb4a51457281588523a2725939a31d3f26",
+ "sha256": "10xp7nf42v9rz9as3gspjcm3rjy075xza3yqbcppdk1zm59xxljr"
+ }
+ },
+ {
+ "ename": "smart-forward",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "032yc45c19fl886jmi5q04r6q47xz5rphb040wjvpd4fnb06hr8c",
+ "fetcher": "github",
+ "repo": "magnars/smart-forward.el",
+ "unstable": {
+ "version": [
+ 20140430,
+ 713
+ ],
+ "deps": [
+ "expand-region"
+ ],
+ "commit": "7b6dbfdbd4b646376a567c70e1a161545431b72b",
+ "sha256": "19l47xqzjhhm9j3izik0imssip5ygg3lnflb9ixsz1js571aaxha"
+ }
+ },
+ {
+ "ename": "smart-hungry-delete",
+ "commit": "abbf52a856b95ab88cde1fdeeebebb81f7c61fa9",
+ "sha256": "03hw5p055dbayw5z43c1ippf2lnjgs77l7q969ng3fffqkazjq9b",
+ "fetcher": "github",
+ "repo": "hrehfeld/emacs-smart-hungry-delete",
+ "unstable": {
+ "version": [
+ 20170412,
+ 1343
+ ],
+ "commit": "7c1d56a92481594e14d40b5fdf6c48657a0108a0",
+ "sha256": "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"
+ }
+ },
+ {
+ "ename": "smart-indent-rigidly",
+ "commit": "3083f497180d2f7d93bb9a4b98af6ae1bcbe57b9",
+ "sha256": "12qggg1m28mlvkdn52dig8bwv58pvipkvn1mlc4r7w569arar44x",
+ "fetcher": "github",
+ "repo": "re5et/smart-indent-rigidly",
+ "unstable": {
+ "version": [
+ 20141206,
+ 15
+ ],
+ "commit": "323d1fe4d0b81e598249aad01bc44adb180ece0e",
+ "sha256": "0q5hxg265ad9gpclv2kzikg6jvbf3zzb1mrykxn0n7mnvdfdlhsi"
+ }
+ },
+ {
+ "ename": "smart-jump",
+ "commit": "52f29e14e61b28cd1637ca5d6bd878d91a71251f",
+ "sha256": "14c7p6xqasd0fgn70zj1jlpwjxldzqx44bcdqdk6nmjihw0rk632",
+ "fetcher": "github",
+ "repo": "jojojames/smart-jump",
+ "unstable": {
+ "version": [
+ 20190925,
+ 1518
+ ],
+ "deps": [
+ "dumb-jump"
+ ],
+ "commit": "07800ddd508cf620e6360e4a1f5bb25f8eab3ab1",
+ "sha256": "0g6s5v2mpdd06i8yih8c8qj3bz1j1bdnki1937mn5ca163gjlrr9"
+ }
+ },
+ {
+ "ename": "smart-mark",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "0kx34983qqxkx2afql1daj155294dkbinw861lhx537614fq7wmn",
+ "fetcher": "github",
+ "repo": "zhangkaiyulw/smart-mark",
+ "unstable": {
+ "version": [
+ 20150912,
+ 210
+ ],
+ "commit": "04b522a23e3aae8381c6a976fc978532fcb2e7d0",
+ "sha256": "0sqvm7iwdjk057fwid4kz6wj71igiqhdarj59s17pzy6xz34afhg"
+ }
+ },
+ {
+ "ename": "smart-mode-line",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "0qmhzlkc6mfqyaw4jaw6195b8sw0wg9pfjcijb4p0mlywf5mh5q6",
+ "fetcher": "github",
+ "repo": "Malabarba/smart-mode-line",
+ "unstable": {
+ "version": [
+ 20190527,
+ 1156
+ ],
+ "deps": [
+ "rich-minority"
+ ],
+ "commit": "999be065b195f2eddb4e1b629f99038d832d44b7",
+ "sha256": "0jyvyn7pkqvyyv1rga3i10f4cwfbb0miacbib8lsrrhayrnal186"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 13
+ ],
+ "deps": [
+ "rich-minority"
+ ],
+ "commit": "9a6d821e0c78361ab35c6e403fc582b76558a1a7",
+ "sha256": "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"
+ }
+ },
+ {
+ "ename": "smart-mode-line-atom-one-dark-theme",
+ "commit": "0a6f3addec8d8fa957bfbc81071d3a434e843cf0",
+ "sha256": "02hasm2vjvw3r9xkdnn2ddsval8vvhvx15dsac0jp3cc1y1qkm27",
+ "fetcher": "github",
+ "repo": "daviderestivo/smart-mode-line-atom-one-dark-theme",
+ "unstable": {
+ "version": [
+ 20200106,
+ 2016
+ ],
+ "deps": [
+ "smart-mode-line"
+ ],
+ "commit": "e281b52b164a477fcdb6a468976e8a1bdde1ca26",
+ "sha256": "0m4c63anrmbbdaf0chiagzgkcgbi30bhkjx3v7c4i9nk98yz9zkw"
+ }
+ },
+ {
+ "ename": "smart-mode-line-powerline-theme",
+ "commit": "60072b183151e519d141ec559b4902d20c87904c",
+ "sha256": "0hv3mx39m3l35xhz351zp98321ilr6qq9wzwn1f0ziiv814khcn4",
+ "fetcher": "github",
+ "repo": "Malabarba/smart-mode-line",
+ "unstable": {
+ "version": [
+ 20160706,
+ 38
+ ],
+ "deps": [
+ "powerline",
+ "smart-mode-line"
+ ],
+ "commit": "999be065b195f2eddb4e1b629f99038d832d44b7",
+ "sha256": "0jyvyn7pkqvyyv1rga3i10f4cwfbb0miacbib8lsrrhayrnal186"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 13
+ ],
+ "deps": [
+ "powerline",
+ "smart-mode-line"
+ ],
+ "commit": "9a6d821e0c78361ab35c6e403fc582b76558a1a7",
+ "sha256": "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"
+ }
+ },
+ {
+ "ename": "smart-newline",
+ "commit": "3f729926f82d6b61f07f5c8a5e19d46afdcad568",
+ "sha256": "1kyk865vkgh05vzlggs3ii81v86fcbcxybfkv5rkyl3fyqpkza1w",
+ "fetcher": "github",
+ "repo": "ainame/smart-newline.el",
+ "unstable": {
+ "version": [
+ 20131208,
+ 340
+ ],
+ "commit": "0553a9e4be7188352de1a28f2eddfd28e7436f94",
+ "sha256": "0w0v3gzfg3cphz701g30sf7l92v3npsd7028pjp5g7rgv3pwkgsd"
+ }
+ },
+ {
+ "ename": "smart-region",
+ "commit": "cf011493ee3ebc38290ee0349c8475b0588ac928",
+ "sha256": "1bcvxf62bfi5lmhprma9rh670kka9p9ygbkgmv6dg6ajjfsplgwc",
+ "fetcher": "github",
+ "repo": "uk-ar/smart-region",
+ "unstable": {
+ "version": [
+ 20150903,
+ 1403
+ ],
+ "deps": [
+ "cl-lib",
+ "expand-region",
+ "multiple-cursors"
+ ],
+ "commit": "5a8017fd8e8dc3483865951c4942cab3f96f69f6",
+ "sha256": "0h559cdyln5f4ignx1r86ryi7wizys0gj03dj7lfzaxr7wkd0jaf"
+ }
+ },
+ {
+ "ename": "smart-semicolon",
+ "commit": "fe339b95636b02ceb157294055d2f5f4c4b0b8cf",
+ "sha256": "1vq6l3vc615w0p640wy226z5i7dky666sgzczkngv07kag0iwqp0",
+ "fetcher": "github",
+ "repo": "iquiw/smart-semicolon",
+ "unstable": {
+ "version": [
+ 20171008,
+ 133
+ ],
+ "commit": "bcea2aa37befa40abf8b24a2d2314904e6df43b3",
+ "sha256": "0c58ncxwf8wakql2pfiawkl3rlfxsf2zy937nvahf9ygiic8bl3y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "c11096679dbed3875c37413337ee490ee7951b63",
+ "sha256": "1v6z3a1f6nxc62n7595qnji39ywdsz7xy5bkl2218v3y7gkbc518"
+ }
+ },
+ {
+ "ename": "smart-shift",
+ "commit": "79726ff0fbfa24a44d303cc9719f5962638b47e0",
+ "sha256": "0azahlflnh6sk081k5dcqal6nmwkjnj4dq8pv8ckwf8684zp23d3",
+ "fetcher": "github",
+ "repo": "hbin/smart-shift",
+ "unstable": {
+ "version": [
+ 20150203,
+ 725
+ ],
+ "commit": "a26ab2b240137e62ec4bce1698ed9c5f7b6d13ae",
+ "sha256": "0azhfffm1bkgjx4i3p9f6x2gmw8kc3fafzqj4vxxdibhn0nizqk8"
+ }
+ },
+ {
+ "ename": "smart-tab",
+ "commit": "ef37935f5f8ed12323374179a0673b5a4af57cdb",
+ "sha256": "1dm67sc1vylpf73m723hfjfqmm2yxrdckrgp6a3nq2586hkkid4l",
+ "fetcher": "git",
+ "url": "https://git.genehack.net/genehack/smart-tab.git",
+ "unstable": {
+ "version": [
+ 20200416,
+ 2228
+ ],
+ "commit": "67bf4f93f8afca61a3dc4f6c7a34b0b8ca9ede21",
+ "sha256": "1ws49lbafch1rb6g0j9k5h30c9shk3vvqhbjkf4qvhaqii94lgml"
+ }
+ },
+ {
+ "ename": "smart-tabs-mode",
+ "commit": "d712f0fb9538945713faf773772bb359fe6f509f",
+ "sha256": "1fmbi0ypzhsizzb1vm92hfaq23swiyiqvg0pmibavzqyc9lczhhl",
+ "fetcher": "github",
+ "repo": "jcsalomon/smarttabs",
+ "unstable": {
+ "version": [
+ 20160629,
+ 1452
+ ],
+ "commit": "9cc2594b82b03e7d68645a4878f9359f8b8c34c5",
+ "sha256": "0bjl3j047jh674vyfmh9izwak2yic8f7aqv832hn1inhnavsl3xx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "8b196d596b331f03fba0efdb4e31d2fd0752c4a7",
+ "sha256": "1kfihh4s8578cwqyzn5kp3iib7f9vvg6rfc3klqzgads187ryd4z"
+ }
+ },
+ {
+ "ename": "smart-window",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0w24v7v0477yl5zchyk6713yqp8lyfz600myvv4dp3kgppxpgd3f",
+ "fetcher": "github",
+ "repo": "dryman/smart-window.el",
+ "unstable": {
+ "version": [
+ 20160717,
+ 130
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5996461b7cbc5ab4509ac48537916eb29a8e4c16",
+ "sha256": "0p1cqpdsp2vdx85i22shyzfhz22zwf1k1dxkqcmlgh3y7f4qq8ir"
+ }
+ },
+ {
+ "ename": "smartparens",
+ "commit": "bd98f85461ef7134502d4f2aa8ce1bc764f3bda3",
+ "sha256": "025nfrfw0992024i219jzm4phwf29smc5hib45s6h1s67942mqh6",
+ "fetcher": "github",
+ "repo": "Fuco1/smartparens",
+ "unstable": {
+ "version": [
+ 20200324,
+ 2147
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "555626a43f9bb1985aa9a0eb675f2b88b29702c8",
+ "sha256": "0hfywwhzv2dphi7gacp1sdyk47cmajzx5sqrcwxkn7mlwx876nsx"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 11,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "4873352b5d0a1c5142658122de1b6950b8fe7e4d",
+ "sha256": "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"
+ }
+ },
+ {
+ "ename": "smartrep",
+ "commit": "81cb649dc49767c21f79668d6bee950567b05aa0",
+ "sha256": "1ypls52d51lcqhz737rqg73c6jwl6q8b3bwb29z51swyamf37rbn",
+ "fetcher": "github",
+ "repo": "myuhe/smartrep.el",
+ "unstable": {
+ "version": [
+ 20150509,
+ 230
+ ],
+ "commit": "f0ff5a6d7b8603603598ae3045c98b011e58d86e",
+ "sha256": "1sjwqi8w83qxihqmcm7z0vwmrz1az0y266qgj2nwfv39bri6y4i6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "0b73bf3d1a3c795671bfee0a36cecfaa54729446",
+ "sha256": "0j5lg9gryl8vbzw8d3r2fl0c9wxa0c193mcvdfidd25b98wccc3f"
+ }
+ },
+ {
+ "ename": "smartscan",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1q0lqms16g7avln1pbxzb49z3w96kv1r7lbh61ijlnz3jips098w",
+ "fetcher": "github",
+ "repo": "mickeynp/smart-scan",
+ "unstable": {
+ "version": [
+ 20170211,
+ 2033
+ ],
+ "commit": "234e077145710a174c20742de792b97ed2f965f6",
+ "sha256": "1nzkgfr1w30yi88h4kwgiwq4lcd0fpm1cd50gy0csjcpbnyq6ykf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "13c9fd6c0e38831f78dec55051e6b4a643963176",
+ "sha256": "1sd7dh9114mvr4xnp43xx4b7qmwkaj1a1fv7pwc28fhiy89d2md4"
+ }
+ },
+ {
+ "ename": "smarty-mode",
+ "commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
+ "sha256": "06cyr2330asy2dlx81g3h9gq0yhd4pbnmzfvmla7amh4pfnjg14v",
+ "fetcher": "github",
+ "repo": "emacsorphanage/smarty-mode",
+ "unstable": {
+ "version": [
+ 20100703,
+ 1158
+ ],
+ "commit": "3dfdfe1571f5e9ef55a29c51e5a80046d4cb7568",
+ "sha256": "1vl3nx0y2skb8sibqxvmc3wrmmd6z88hknbry348d0ik3cbr0ijx"
+ }
+ },
+ {
+ "ename": "smbc",
+ "commit": "05b4f16cd8028edc758ada842432df11c8276fd3",
+ "sha256": "0aviqa8mk8dxxnddfskq9jgz3knqhf0frj7gq7nk6ckxkrxrgqn4",
+ "fetcher": "github",
+ "repo": "sakshamsharma/emacs-smbc",
+ "unstable": {
+ "version": [
+ 20171229,
+ 1808
+ ],
+ "commit": "10538e3d575ba6ef3c94d555af2744b42dfd36c7",
+ "sha256": "0b2fndvp9kzlr65b0gr0z5hmapa4y96a6zvc2nrlijffkgyk05nn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "c377b806118d82140197d9cb1095548477e00497",
+ "sha256": "16cj6jsy1psmcjshxb46i44sf1zb9s4mfiagl5cr22njy01ajq1h"
+ }
+ },
+ {
+ "ename": "smblog",
+ "commit": "6469537a11972509fa2bfb10eb3f8816cc98efed",
+ "sha256": "1byalkpc1bcb6p4j4g1cwc4q2i7irxjcphb0hqh1b2k1zixrw5rr",
+ "fetcher": "github",
+ "repo": "aaptel/smblog-mode",
+ "unstable": {
+ "version": [
+ 20200424,
+ 938
+ ],
+ "commit": "fc949cff7051b31f0dbc7169774144533a27b92f",
+ "sha256": "07ks6d3gs264wv15lxa88pfi6i851h1wd9cacxs81wc7ijqc5sia"
+ }
+ },
+ {
+ "ename": "smeargle",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "04z1prwdd1h91jyf9fnggqp657830657kvbch7m2f2pgmn3czvvs",
+ "fetcher": "github",
+ "repo": "emacsorphanage/smeargle",
+ "unstable": {
+ "version": [
+ 20200323,
+ 533
+ ],
+ "commit": "a0e9bc2ea694aa2940102e1f4cfd8db8be437931",
+ "sha256": "05n6vgxw91cxk5ri4mmsxc62jcad0yhjjnn16gk1qhjxjqvrlcis"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "0665b1ff5109731898bc4a0ca6d939933b804777",
+ "sha256": "0p0kxmjdr02l9injlyyrnnzqdbb7mirz1xx79c3lw1rgpalf0jnf"
+ }
+ },
+ {
+ "ename": "smex",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1rwyi7gdzswafkwpfqd6zkxka1mrf4xz17kld95d2ram6cxl6zda",
+ "fetcher": "github",
+ "repo": "nonsequitur/smex",
+ "unstable": {
+ "version": [
+ 20151212,
+ 2209
+ ],
+ "commit": "55aaebe3d793c2c990b39a302eb26c184281c42c",
+ "sha256": "0xrbkpc3w7yadpjih169cpp75gilsnx4y9akgci5vfcggv4ffm26"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0
+ ],
+ "commit": "97b4a4d82a4449e3f1a3fa8a93387d6eb0ef9c26",
+ "sha256": "1hcjh577xz3inx28r8wb4g2b1424ccw8pffvgdmpf80xp1llldj5"
+ }
+ },
+ {
+ "ename": "smiles-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0wf02aj9bhl2m861342f5jfkx3xws1ggcyszfp9jphlykw6r0v9k",
+ "fetcher": "github",
+ "repo": "stardiviner/smiles-mode",
+ "unstable": {
+ "version": [
+ 20160717,
+ 1120
+ ],
+ "commit": "fbb381758adcb000a0c304be1b797f985f00e2de",
+ "sha256": "07lzr1p58v95a4n6zad8y0dpj7chbxlcmb6s144pvcxx8kjwd4dr"
+ }
+ },
+ {
+ "ename": "sml-modeline",
+ "commit": "4728fce21f03c95bcc2b562648e99c537fb09cd8",
+ "sha256": "00kz03ixkfnm4id8dd8aij2rhakzd4arzd790jdac1y3yyd5pp3y",
+ "fetcher": "github",
+ "repo": "emacsorphanage/sml-modeline",
+ "unstable": {
+ "version": [
+ 20170614,
+ 2111
+ ],
+ "commit": "d2f9f70174c4cf68c67eb3bb8088235735e34d9a",
+ "sha256": "18k2k213vgawxskp9m57r8qarg3pnza6nvbpyi6l03jnmf2kcw2b"
+ }
+ },
+ {
+ "ename": "smmry",
+ "commit": "ba2d4be4dd4d6c378eabd833f05a944afa21817b",
+ "sha256": "05ikcvyr74jy3digd0ad443h5kf11w29hgnmb71bclm3mfslh5wn",
+ "fetcher": "github",
+ "repo": "microamp/smmry.el",
+ "unstable": {
+ "version": [
+ 20161024,
+ 901
+ ],
+ "commit": "986a1b0aec8ab1ef17dbfb7886f47e5558cf738a",
+ "sha256": "1gq2066js1kf035217z0n6w0bf0dsyskykf56xycci5s1i7xv2vz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "b7ee765337fa627a6c59eb4f2a91df5d280ac6df",
+ "sha256": "0hzs8xi7n3bsqwm3nlm3vk8p2p33ydwxpwk9wp3325g03jl921in"
+ }
+ },
+ {
+ "ename": "smog",
+ "commit": "cc829fc6353e5cd78222eb2c7194eb3b796d2cc9",
+ "sha256": "0qq7ib8gv006jddhzrdfm702bgwgsk3rdd64v67xi5a39csrsfpw",
+ "fetcher": "github",
+ "repo": "zzkt/smog",
+ "unstable": {
+ "version": [
+ 20200211,
+ 528
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "531957d7356f623b026aa45923e536421f682c1a",
+ "sha256": "0rb8vjnkn9pp0lrmmvsfslmw7xya4n18s82vs98545phwc4bjga5"
+ }
+ },
+ {
+ "ename": "smooth-scroll",
+ "commit": "4ad6411f76281232848c870e8f4f5bb78e6cf328",
+ "sha256": "1b0mjpd4dqgk7ij37145ry2jqbn1msf8rrvymn7zyckbccg83zsf",
+ "fetcher": "github",
+ "repo": "k-talo/smooth-scroll.el",
+ "unstable": {
+ "version": [
+ 20130322,
+ 414
+ ],
+ "commit": "02320f28abb5cae28b3a18f6b9ce93129bdbfc45",
+ "sha256": "1kkg7qhb2lmwr4siiazqny9w2z9nk799lzl5i159lfivlxcgixmk"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "02320f28abb5cae28b3a18f6b9ce93129bdbfc45",
+ "sha256": "1kkg7qhb2lmwr4siiazqny9w2z9nk799lzl5i159lfivlxcgixmk"
+ }
+ },
+ {
+ "ename": "smooth-scrolling",
+ "commit": "e156f146649a51f6ee636aef95214944a8079a27",
+ "sha256": "0zy2xsmr05l2narslfgril36d7qfb55f52qm2ki6fy1r18lfiyc6",
+ "fetcher": "github",
+ "repo": "aspiers/smooth-scrolling",
+ "unstable": {
+ "version": [
+ 20161002,
+ 1949
+ ],
+ "commit": "2462c13640aa4c75ab3ddad443fedc29acf68f84",
+ "sha256": "1h15gjq781i6fsz32qlh51knawdr8hcqvshsz6cszp752cibdcdg"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "commit": "6a1420be510decde0a5eabc56cff229ae554417e",
+ "sha256": "1dkqix0iyjyiqf34h3p8faqcpffc0pwkxqqn80ys9jvj4f27kkrg"
+ }
+ },
+ {
+ "ename": "smotitah",
+ "commit": "326c213450fc515573b963e794584b7b5ac995fa",
+ "sha256": "1m5qjl3r96riljp48il8k4rb6rwys1xf1pl93d4qjhprwvz57mv2",
+ "fetcher": "github",
+ "repo": "laynor/smotitah",
+ "unstable": {
+ "version": [
+ 20150218,
+ 1030
+ ],
+ "commit": "f9ab562128a5460549d016913533778e8c94bcf3",
+ "sha256": "1a097f1x9l0m4dizvnb742svlqsm6hlif73rk7qjar081sk1gjxx"
+ }
+ },
+ {
+ "ename": "smtpmail-multi",
+ "commit": "835315ec2781ac90785824630510b9eae80c115a",
+ "sha256": "0nc3k8ly4nx7fm3b2apga3p4svz5c9sldnlk86pz2lzra5h3b4ss",
+ "fetcher": "github",
+ "repo": "vapniks/smtpmail-multi",
+ "unstable": {
+ "version": [
+ 20160218,
+ 2349
+ ],
+ "commit": "83fa9d7a02e000be95cb282c8b48446646896ea1",
+ "sha256": "1x0dn9hd8b0mxdfw0nrsgj4bz4ljf7i9af566iv5fqym1c4wxkhf"
+ }
+ },
+ {
+ "ename": "smyx-theme",
+ "commit": "40a1aeabb75438252ebea0332fe1deaf028c956d",
+ "sha256": "1r85yxr864df5akqknl3hsrmzikr4085bqr6ijrbdj27nz00vl61",
+ "fetcher": "github",
+ "repo": "tacit7/smyx",
+ "unstable": {
+ "version": [
+ 20141127,
+ 828
+ ],
+ "commit": "6263f6b401bbabaed388c8efcfc0be2e58c51401",
+ "sha256": "1z2sdnf11wh5hz1rkrbg7fs4ha3zrbj9qnvfzq9005y89d7cs95x"
+ }
+ },
+ {
+ "ename": "snakemake-mode",
+ "commit": "c3a5b51fee1c9e6ce7e21555faa355d118d34b8d",
+ "sha256": "1xxd3dms5vgvpn18a70wjprka5xvri2pj9cw8qz09s640f5jf3r4",
+ "fetcher": "github",
+ "repo": "kyleam/snakemake-mode",
+ "unstable": {
+ "version": [
+ 20200720,
+ 349
+ ],
+ "deps": [
+ "cl-lib",
+ "magit-popup"
+ ],
+ "commit": "44b88fc2aff7c970c2699de2d8615d81092342f6",
+ "sha256": "0538bfjaj19s5fa94x3s0np4jj7cw2wc77yngxk809h8bb82s7ba"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "magit-popup"
+ ],
+ "commit": "701f970bfb48d2f7abb241b9f69127ff5b667c76",
+ "sha256": "0di8wqwj0l2vx29kkpy2h1yxrxgcq51y2lss5lmqp6kmw3avkvi2"
+ }
+ },
+ {
+ "ename": "snapshot-timemachine",
+ "commit": "69376b802f0687227a78838877d89163b2893c5b",
+ "sha256": "0pvh1ilzv0ambc5cridyhjcxs58wq92bxjkisqv42yar3h3z6f8p",
+ "fetcher": "github",
+ "repo": "mrBliss/snapshot-timemachine",
+ "unstable": {
+ "version": [
+ 20161221,
+ 929
+ ],
+ "commit": "99efcebab309b11ed512a8dc62555d3834df5efb",
+ "sha256": "18qibcyqxjwpvphmpghppb8ky1xcch1dd4pz91qj5f4h42684ips"
+ }
+ },
+ {
+ "ename": "snapshot-timemachine-rsnapshot",
+ "commit": "94358fb8d1486491903c331d9e90ba5198117aa8",
+ "sha256": "0fxijd94p961ab0p4ddmhja4bfrif2d87v32g4c41amc1klyf25r",
+ "fetcher": "github",
+ "repo": "NicolasPetton/snapshot-timemachine-rsnapshot",
+ "unstable": {
+ "version": [
+ 20170324,
+ 1213
+ ],
+ "deps": [
+ "seq",
+ "snapshot-timemachine"
+ ],
+ "commit": "72b0b700d80f1a0442e62bbbb6a0c8c59182f97f",
+ "sha256": "1bdy7p0bjfdlv6l6yih6fvvi7xpldal4rj8l2ajpc6sgby24h8bb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "seq",
+ "snapshot-timemachine"
+ ],
+ "commit": "72b0b700d80f1a0442e62bbbb6a0c8c59182f97f",
+ "sha256": "1bdy7p0bjfdlv6l6yih6fvvi7xpldal4rj8l2ajpc6sgby24h8bb"
+ }
+ },
+ {
+ "ename": "snazzy-theme",
+ "commit": "18c89a612418e0f49b7e6ae29a678d2fc1ffaf3d",
+ "sha256": "0srmhwhqrp1s01p1znhjzs254l3r2i6c91v7cnlwlvrls1sbh32k",
+ "fetcher": "github",
+ "repo": "weijiangan/emacs-snazzy",
+ "unstable": {
+ "version": [
+ 20170823,
+ 1832
+ ],
+ "deps": [
+ "base16-theme"
+ ],
+ "commit": "57a1763b49b4a776084c16bc70c219246fa5b412",
+ "sha256": "1y2l8b72jzcyarilj4j4q3rwcg0wkn2r3m01k0g2kg73zsffvhss"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "base16-theme"
+ ],
+ "commit": "578d7ebc4ed91c0a630b652c4b6fdd54d9ae16cd",
+ "sha256": "0gykymah4ap7zgjr7fkir21avcdhgy6n88nwxl1iynim3vkq441v"
+ }
+ },
+ {
+ "ename": "snippet",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1yld7y1hsrqs0f0iq7zfwknil5zqv65npm67nh548hbyy3rhgd68",
+ "fetcher": "github",
+ "repo": "pkazmier/snippet.el",
+ "unstable": {
+ "version": [
+ 20130210,
+ 2315
+ ],
+ "commit": "11d00dd803874b93836f2010b08bd2c97b0f3c63",
+ "sha256": "1nyrfbjrg74wrqlh8229rf7ym07k2a0wscjm0kbg3sam9ryc546y"
+ }
+ },
+ {
+ "ename": "snoopy",
+ "commit": "4a882cd92964ac195a09469006c9a44dc202f000",
+ "sha256": "1wa8jykqyj6rxqfhwbiyli6yh8s7n0pqv7fc9sfaymarda93zbgi",
+ "fetcher": "github",
+ "repo": "anmonteiro/snoopy-mode",
+ "unstable": {
+ "version": [
+ 20171008,
+ 2004
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ec4123bdebfe0bb7bf4feaac2dc02b59caffe386",
+ "sha256": "01l44lshw0zvykay9886s1vqryanagkd4ciw3ramchn0baqz11vl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ec4123bdebfe0bb7bf4feaac2dc02b59caffe386",
+ "sha256": "01l44lshw0zvykay9886s1vqryanagkd4ciw3ramchn0baqz11vl"
+ }
+ },
+ {
+ "ename": "soar-mode",
+ "commit": "818113ef6f93cc86fd30441d508012e5baa71893",
+ "sha256": "0jm4vllbppzs2vvkky96hwdv581142dxdfssrp6wsd56j38nr9sd",
+ "fetcher": "github",
+ "repo": "adeschamps/soar-mode",
+ "unstable": {
+ "version": [
+ 20190503,
+ 1843
+ ],
+ "commit": "13b6fca62ea6574d230516fddf359a61f6558ecd",
+ "sha256": "1y1z4lyv1b56sfimfpxzix5zww97hbci8a9q4cphx65hwkgbfa0d"
+ }
+ },
+ {
+ "ename": "socyl",
+ "commit": "774b3006f5b6b781594257f1d9819068becbbcc1",
+ "sha256": "00b7x247cyjh4gci101fq1j6708vbcz1g9ls3845w863wjf6m5sz",
+ "fetcher": "github",
+ "repo": "nlamirault/socyl",
+ "unstable": {
+ "version": [
+ 20170212,
+ 642
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "pkg-info",
+ "s"
+ ],
+ "commit": "1ef2da42f66f3ab31a34131e51648f352416f0ba",
+ "sha256": "0jks5dkxhhgh4gbli90p71s8354iywlwj2lq6n5fyqxbdxzk412d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "pkg-info",
+ "s"
+ ],
+ "commit": "fcc0deda5b6c39d25e48e7da2a0ae73295193ea8",
+ "sha256": "1a8qd9hcmp4xl6hyvlq116nr9cn392bmrrda8vqkvjpd8rm8i776"
+ }
+ },
+ {
+ "ename": "soft-charcoal-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1j9yd4kfh7ih5ipmwvxh9qqq6wxv6qk8a9vb5jiyk90dn8a2d7g5",
+ "fetcher": "github",
+ "repo": "mswift42/soft-charcoal-theme",
+ "unstable": {
+ "version": [
+ 20140420,
+ 1643
+ ],
+ "commit": "5607ab977fae6638e78b1495e02da8955c9ba19f",
+ "sha256": "07056pnjgsgw06c67776qp7jci96iqbzlprbavzz2l1j8ywz8cwm"
+ }
+ },
+ {
+ "ename": "soft-morning-theme",
+ "commit": "26f26cb5cd4ed288a042d37039da83b38b9923d0",
+ "sha256": "0lzg478ax6idzh6m5sf2ds4gbv096y0c0gn15dai19f58bs63xzr",
+ "fetcher": "github",
+ "repo": "mswift42/soft-morning-theme",
+ "unstable": {
+ "version": [
+ 20150918,
+ 2041
+ ],
+ "commit": "c0f9c70c97ef2be2a093cf839c4bfe27740a111c",
+ "sha256": "06q82v1hndvznsqg0r6jrxvgxhycg9m65kay4db4yy0gmc66v2xf"
+ }
+ },
+ {
+ "ename": "soft-stone-theme",
+ "commit": "e87cea74119e8239662607072a44e5314eeae7ea",
+ "sha256": "05jjw9z6hqln9yj8ya2xrmjnylp7psfdj9206n30m3lwnlwx399v",
+ "fetcher": "github",
+ "repo": "mswift42/soft-stone-theme",
+ "unstable": {
+ "version": [
+ 20140614,
+ 835
+ ],
+ "commit": "fb475514cfb02cf30ce358a61c48e46614344d48",
+ "sha256": "030mf8b0sf9mmzwhg85zh0ccvcg768kckwvbm0yzg7vmq1x46hjl"
+ }
+ },
+ {
+ "ename": "solaire-mode",
+ "commit": "52c69070eef3003eb53e1436c538779c74670ce6",
+ "sha256": "0pvgip12xl16rwz4wqmqjd8nhh3a299aknfsghazmxigamlmlsl5",
+ "fetcher": "github",
+ "repo": "hlissner/emacs-solaire-mode",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1552
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "cd63b675140232f399e7733d7ce95a0b931b1058",
+ "sha256": "0c7l1q7xyzvxqlk7vawfrx7gmzsmycjy2lib12wmgvfh83bgc3bh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "4ac324ccb0b751be80ce64449553462eafab4f32",
+ "sha256": "1klyzqrlsgx8q89zx1kn5z6wnpv1dmvbglldpv1y74hxhzi6ryps"
+ }
+ },
+ {
+ "ename": "solarized-theme",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "15d8k32sj8i11806byvf7r57rivz391ljr0zb4dx8n8vjjkyja12",
+ "fetcher": "github",
+ "repo": "bbatsov/solarized-emacs",
+ "unstable": {
+ "version": [
+ 20200717,
+ 1054
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "63eb59a7ef32abc6780883e27df69a6e42a8a6e4",
+ "sha256": "1hqqmji6vh468w73xi3fvkyzznr27f83czz0pcxzb00q62cbdqf4"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "55cd77b61b6968048c61e13358ba487d217f24c0",
+ "sha256": "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"
+ }
+ },
+ {
+ "ename": "solidity-flycheck",
+ "commit": "e561d869f4e32bad5d1a8678f67e591ff586d6de",
+ "sha256": "1lx64y77q33a2lrg5sj5h56gicw1lk8qmxmva5bgc4zxxd8qwz6f",
+ "fetcher": "github",
+ "repo": "ethereum/emacs-solidity",
+ "unstable": {
+ "version": [
+ 20200113,
+ 1721
+ ],
+ "deps": [
+ "flycheck",
+ "solidity-mode"
+ ],
+ "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
+ "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 10
+ ],
+ "deps": [
+ "flycheck",
+ "solidity-mode"
+ ],
+ "commit": "93412f211fad7dfc3b02aa226856fc52b6a15c22",
+ "sha256": "06zqs7p22h1jkm3zs1i16wvch6rnzzb3m8d5r9r51clzpasf6zy8"
+ }
+ },
+ {
+ "ename": "solidity-mode",
+ "commit": "02d3fdae111b14a87aaa7a1b3f44e545c5e3d2ac",
+ "sha256": "15vz3ayl1p3dn2cavm68rqv901c1b7dxm2j8iazwzj3q15ln8xvn",
+ "fetcher": "github",
+ "repo": "ethereum/emacs-solidity",
+ "unstable": {
+ "version": [
+ 20200529,
+ 1924
+ ],
+ "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
+ "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 10
+ ],
+ "commit": "93412f211fad7dfc3b02aa226856fc52b6a15c22",
+ "sha256": "06zqs7p22h1jkm3zs1i16wvch6rnzzb3m8d5r9r51clzpasf6zy8"
+ }
+ },
+ {
+ "ename": "somafm",
+ "commit": "6003d09cefb7da19baa39b6c4a96d265844abbce",
+ "sha256": "1p3ngn8rfbwvgfnpx4x6g5wspicxh9mmvlsrbax6a7whx0y1bg4f",
+ "fetcher": "github",
+ "repo": "artenator/somafm.el",
+ "unstable": {
+ "version": [
+ 20200224,
+ 48
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "request"
+ ],
+ "commit": "9fdb75e150e78170b3ca7863a8a0638c6ecc0fc0",
+ "sha256": "0qvr4cga8k4bn0jbfp626cjkxgvqkac902v7hxakj7l47arxcd5z"
+ }
+ },
+ {
+ "ename": "sonic-pi",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0j6n1qgdrma6vvi6f7xiy66qwsl8710pca4ga9i7srhxv0r47x68",
+ "fetcher": "github",
+ "repo": "repl-electric/sonic-pi.el",
+ "unstable": {
+ "version": [
+ 20171205,
+ 1205
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "highlight",
+ "osc"
+ ],
+ "commit": "3cf101b3b299735ed91658c7791ea4f04164e076",
+ "sha256": "1x2w7qcx9xcvagb47hlc5vsf5aj5mr0mzvnazyd7ajjilbzn48yr"
+ }
+ },
+ {
+ "ename": "soothe-theme",
+ "commit": "6f26b8281f9bd05e3c8f2ef21838275711e622c9",
+ "sha256": "124akv3a4q4vrmprdcjmq7rq6x73mz4wqxvnlczglh9vjl39ndbk",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-soothe-theme",
+ "unstable": {
+ "version": [
+ 20141027,
+ 1441
+ ],
+ "commit": "0786fe70c6c1b4ddcfb932fdc6862b9611cfc09b",
+ "sha256": "10gh1hvxq9gm29r6qzlnva7vjidd7n4kih4z2ihyvbvy9za20xqw"
+ }
+ },
+ {
+ "ename": "sorcery-theme",
+ "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+ "sha256": "18g4lkn98cjz5y4c2csziykq9ixafgixsxki04hfk9k1d9idixz3",
+ "fetcher": "github",
+ "repo": "mtreca/emacs-theme-sorcery",
+ "unstable": {
+ "version": [
+ 20200413,
+ 2242
+ ],
+ "deps": [
+ "autothemer"
+ ],
+ "commit": "fb041d0d8d4ae2840ddcfb1bd56fefe687da8c52",
+ "sha256": "1j54m18xsn44m5xshmk2pfxn795svjn0zv77qwfxn1d2p5j0r6ni"
+ }
+ },
+ {
+ "ename": "soria-theme",
+ "commit": "9196110908f0d2130f7963499a94853b5192ac8c",
+ "sha256": "1fmys72s4n334m60ywpmbxjbvjwp7qn14pasmnlkv3l1bw6jygsm",
+ "fetcher": "github",
+ "repo": "mssola/soria",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1402
+ ],
+ "commit": "d5274cc4a8e19ed0f1393a09192def951d025a11",
+ "sha256": "1zdcwccndgmn83xmlxqlx6azd03g7dxd2ldc3dj6yxbjasfx00x5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 3
+ ],
+ "commit": "d5274cc4a8e19ed0f1393a09192def951d025a11",
+ "sha256": "1zdcwccndgmn83xmlxqlx6azd03g7dxd2ldc3dj6yxbjasfx00x5"
+ }
+ },
+ {
+ "ename": "sort-words",
+ "commit": "0a4bd566392d7cebe8a891d787439512e8d34cf9",
+ "sha256": "1hvbq09byjdbqzbyashw3y1h65wins44jnqcdic7vqzd1p1mzwka",
+ "fetcher": "github",
+ "repo": "dotemacs/sort-words.el",
+ "unstable": {
+ "version": [
+ 20160929,
+ 1335
+ ],
+ "commit": "7b6e108f80237363faf7ec28b2c58dec270b8601",
+ "sha256": "18cwii9h2planb9bgrih4hkz2cqinbl8wq5sal4b8kwnaq07bbw7"
+ }
+ },
+ {
+ "ename": "sos",
+ "commit": "e8acf595ef51c928b4b41a9fea171fbfd40c080d",
+ "sha256": "1sny4wa2746fi9p18js0y9fm2f9ix7yblqyqa36ibkfj4b50hvxi",
+ "fetcher": "github",
+ "repo": "emacsattic/sos",
+ "unstable": {
+ "version": [
+ 20200510,
+ 1734
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "6c25beae9f6db8fc7a037112ad5d4be9f5f36986",
+ "sha256": "1ia90sanqbigpag63w953kvfd1gyaakcvh65fsd79pcx4k38p4ly"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "c3906ca6872f460c0bdd276410519308626313f1",
+ "sha256": "0b5w3vdr8llg3hqd22gnc6b6y089lq6vfk0ajkws6gfldz2gg2v1"
+ }
+ },
+ {
+ "ename": "sotclojure",
+ "commit": "3a2ccef8af91eada4449d9cd4bda6bd28272722e",
+ "sha256": "12byqjzg0pffqyq958265qq8yxxmf3iyy4m7zib492qcj8ccy090",
+ "fetcher": "github",
+ "repo": "Malabarba/speed-of-thought-clojure",
+ "unstable": {
+ "version": [
+ 20170922,
+ 8
+ ],
+ "deps": [
+ "cider",
+ "clojure-mode",
+ "sotlisp"
+ ],
+ "commit": "a480c887b53cb007b7b099c5ffcab89b9e59d7bc",
+ "sha256": "1gf5fsrjigzxabd9k47lb98y3wdjwpw02x9ldnjzrgxfjfbxgqm0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 1
+ ],
+ "deps": [
+ "cider",
+ "clojure-mode",
+ "sotlisp"
+ ],
+ "commit": "ceac82aa691e8d98946471be6aaff9c9a4603c32",
+ "sha256": "1a6riq7ksk5m76dsgc75d8b992nyr50l48l8cpms9064m6b0r9jv"
+ }
+ },
+ {
+ "ename": "sotlisp",
+ "commit": "1e6aed365c42987d64d0cd9a8a6178339b1b39e8",
+ "sha256": "0zjnn6hhwy6cjvc5rhvhxcq5pmrhcyil14a48fcgwvg4lv7fbljk",
+ "fetcher": "github",
+ "repo": "Malabarba/speed-of-thought-lisp",
+ "unstable": {
+ "version": [
+ 20190211,
+ 2026
+ ],
+ "commit": "ed2356a325c7a4a88ec1bd31381c8666e8997e97",
+ "sha256": "1r7skjxiaqdkrhjrxh1sgzikip9sdr8apphgawvq4x6lir8g8jfz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 2
+ ],
+ "commit": "fffe8d0b42b143a2e7df0470d9049fa57b6ecac5",
+ "sha256": "0j5zwb1ypqps30126w2684lmjh8ia4qxg8inlajcbv8i3pbai7k6"
+ }
+ },
+ {
+ "ename": "sound-wav",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1sb3345x6rbbxr71x12fj6bzzvj6nin712777rxk59riam4nknd6",
+ "fetcher": "github",
+ "repo": "emacsorphanage/sound-wav",
+ "unstable": {
+ "version": [
+ 20200323,
+ 728
+ ],
+ "deps": [
+ "cl-lib",
+ "deferred"
+ ],
+ "commit": "8a18f8a62f4fdde80dfa069986aa959091a42472",
+ "sha256": "18iahla8m9b6bdn63x2yrvr3rzyw5ybipf44q9avyy6s1pqsby2a"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "deferred"
+ ],
+ "commit": "2a8c8a9bd797dfbf4a0aa1c023a464b803227ff8",
+ "sha256": "1ba1r359cb1dms24ajn0xfrqn8c9y08m6m7dwgxpylyyjwh1096y"
+ }
+ },
+ {
+ "ename": "soundcloud",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "06cbr1h03k5ixam6lsr82lx3nh2kkp0416mlig0zfkd4b8a9mf8c",
+ "fetcher": "github",
+ "repo": "thieman/soundcloud.el",
+ "unstable": {
+ "version": [
+ 20150502,
+ 326
+ ],
+ "deps": [
+ "deferred",
+ "emms",
+ "json",
+ "request",
+ "request-deferred",
+ "string-utils"
+ ],
+ "commit": "f998d4276ea90258909c698f6a5a51fccb667c08",
+ "sha256": "1m8wcm6y80gq5rrm4brd3f20kmk54s6ph26j4lz4cmilxk6gj56v"
+ }
+ },
+ {
+ "ename": "soundklaus",
+ "commit": "811d0f1d195a0c6533fd412f0e444100e0685f90",
+ "sha256": "0b63sbgwp99ff94dxrqqp2p99j268fjkkzx0g42g726hv80d4fxb",
+ "fetcher": "github",
+ "repo": "r0man/soundklaus.el",
+ "unstable": {
+ "version": [
+ 20191220,
+ 2112
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "emms",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "15ce6e7f24a45e4f202d83cca9fa3bfdd94ca592",
+ "sha256": "03c86qxdya306p6150f3vwhlh51q5vsbgqzgcdxhm72raf32gs59"
+ }
+ },
+ {
+ "ename": "sourcekit",
+ "commit": "45969cd5cd936ea61fbef4722843b0b0092d7b72",
+ "sha256": "1lvk3m86awlinivpg89h6zvrwrdqa5ljdp563k3i4h9384w82pks",
+ "fetcher": "github",
+ "repo": "nathankot/company-sourcekit",
+ "unstable": {
+ "version": [
+ 20180101,
+ 834
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "request"
+ ],
+ "commit": "abf9bc5a0102eb666d3aa6d6bf22f6efcc852781",
+ "sha256": "1g8a4fgy2c5nqk8gysbnzn5jvfw6ynmfhc6j3hkrbswgf9188v5n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "request"
+ ],
+ "commit": "8ba62ac25bf533b7f148f333bcb5c1db799f749b",
+ "sha256": "01dh0wdaydiai4v13r8g05rpiwqr5qqi34wif8vbk2mrr25wc7i9"
+ }
+ },
+ {
+ "ename": "sourcemap",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "1yxjvv3vg14in492hzb3czjfwrg2qp60h4mpxxpx18cjgx8mkybr",
+ "fetcher": "github",
+ "repo": "emacsorphanage/sourcemap",
+ "unstable": {
+ "version": [
+ 20200315,
+ 1037
+ ],
+ "commit": "bb2a56b2feb62b0c77d7f03ef2acd94f91be6b3f",
+ "sha256": "1qr5syl2wm7z1gkgafdhch6n7fg3qc09k8dhv983kq4vg5kp36ml"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "64c89d296186f48d9135fb8aad501de19f64bceb",
+ "sha256": "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"
+ }
+ },
+ {
+ "ename": "sourcerer-theme",
+ "commit": "8532e062b1830d8cf4e7f72518131a1f32762b37",
+ "sha256": "0xikcln8sz3cic5a77cdvq2aazy1csf1qfxgmcavpqz54ps14j1z",
+ "fetcher": "github",
+ "repo": "gilbertw1/sourcerer-emacs",
+ "unstable": {
+ "version": [
+ 20161014,
+ 1625
+ ],
+ "commit": "c7f8e665d53bb48fb72f95f706710d53d24bd407",
+ "sha256": "06bxsbjyrn4grp9i17p90cs4x50cmw62k6a2c6gapkw8f1xbv7xv"
+ }
+ },
+ {
+ "ename": "sourcetrail",
+ "commit": "9713bd8030657c8e867409a6aa8173219809173a",
+ "sha256": "0qa3iw82dbfc1b45505s39m99r0m2473312prws6hch0qhjyji7h",
+ "fetcher": "github",
+ "repo": "CoatiSoftware/emacs-sourcetrail",
+ "unstable": {
+ "version": [
+ 20170410,
+ 2137
+ ],
+ "commit": "b8d5557aa565ae979622312576db20515f65f977",
+ "sha256": "1aqkkbf0xw4kqsy1jjn4xhs5vk2vcsqzs7f4p2sf1plnzsqxflw8"
+ }
+ },
+ {
+ "ename": "space-theming",
+ "commit": "5529fcf16b877b01ee0aff710ebfb0ad5da8dba1",
+ "sha256": "0khjdmqv1q2pdas0xjfqs68xjg2nqms6g21bplg54ynsqcp7asv9",
+ "fetcher": "github",
+ "repo": "p3r7/space-theming",
+ "unstable": {
+ "version": [
+ 20200502,
+ 1032
+ ],
+ "commit": "31dca6954df643255175f7df68a86892aa3c71a7",
+ "sha256": "1bc6bsilsv1p3i39n14vnsrk9bz738n7fw16jv72qv74xkvqkyr0"
+ }
+ },
+ {
+ "ename": "spacebar",
+ "commit": "e4d1808eabdb9081441e01526efe81782ae0122f",
+ "sha256": "0kpmgirg3s57qkzrlbicz2jwgwlyg9jlxy6kxkqxixf1h0z5wy7n",
+ "fetcher": "github",
+ "repo": "matthias-margush/spacebar",
+ "unstable": {
+ "version": [
+ 20190719,
+ 334
+ ],
+ "deps": [
+ "eyebrowse"
+ ],
+ "commit": "2b2cd0e786877273103f048e62a06b0027deca2d",
+ "sha256": "08jfqvm8xfw0mhgfns6q2ysfwqr6g6iz8vc4g4svdbsimmfhf6ka"
+ }
+ },
+ {
+ "ename": "spacegray-theme",
+ "commit": "fada130a1e2927d98526f4629cc1101d93e787c5",
+ "sha256": "0khiddpsywpv9qvynpfdmybd80lbrhm68j3py6ranxlv7p79j9dx",
+ "fetcher": "github",
+ "repo": "bruce/emacs-spacegray-theme",
+ "unstable": {
+ "version": [
+ 20150719,
+ 1931
+ ],
+ "commit": "9826265c2bceb2ebc1c5e16a45021da0253ace97",
+ "sha256": "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"
+ }
+ },
+ {
+ "ename": "spaceline",
+ "commit": "46e4c876aeeb0bb0d0e81dcbb8363a5db9c3ff61",
+ "sha256": "0jpcj0i8ckdylrisx9b4l9kam6kkjzhhv1s7mwwi4b744rx942iw",
+ "fetcher": "github",
+ "repo": "TheBB/spaceline",
+ "unstable": {
+ "version": [
+ 20191230,
+ 1221
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "powerline",
+ "s"
+ ],
+ "commit": "1b26af2c1a701481ac5d90928fe0200e389756c3",
+ "sha256": "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "powerline",
+ "s"
+ ],
+ "commit": "2d1a7bfb5bdaf24958f50b4bf93182847916af85",
+ "sha256": "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"
+ }
+ },
+ {
+ "ename": "spaceline-all-the-icons",
+ "commit": "d039e057c1d441592da8f54e6d524b395b030375",
+ "sha256": "1h6clkr2f29k2vw0jcrmnfbjpphaxm7s3zai6pn6qag32bgm3jq6",
+ "fetcher": "github",
+ "repo": "domtronn/spaceline-all-the-icons.el",
+ "unstable": {
+ "version": [
+ 20190325,
+ 1602
+ ],
+ "deps": [
+ "all-the-icons",
+ "memoize",
+ "spaceline"
+ ],
+ "commit": "5afd48c10f1bd42d9b9648c5e64596b72f3e9042",
+ "sha256": "1chv6lv216qa88fm2wil45x19dzahcclr9p5vizcziq180dnmass"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "deps": [
+ "all-the-icons",
+ "memoize",
+ "spaceline"
+ ],
+ "commit": "7eafe2d7a81f8d10e03498bdcc3bec0ea50f905d",
+ "sha256": "186v71d8n1iy73drayyf57pyzlz973q74mazkyvb8w3fj8bb3llm"
+ }
+ },
+ {
+ "ename": "spacemacs-theme",
+ "commit": "6c8ac39214856c1598beca0bd609e011b562346f",
+ "sha256": "0riiim6qb6x9g5hz0k3qgdymgikynlb9l07mrbfmybkv4919p992",
+ "fetcher": "github",
+ "repo": "nashamri/spacemacs-theme",
+ "unstable": {
+ "version": [
+ 20200808,
+ 1859
+ ],
+ "commit": "462ef2ac16ab8c51de21d5f3d2b1b6122b314391",
+ "sha256": "1qhvf0xf58cm4x8wij1l6301q1y6jp8j7i61g8lizlb24f7fla9l"
+ }
+ },
+ {
+ "ename": "spaces",
+ "commit": "fa5d57074f73cf11607f2f1610f92a0c77367f2a",
+ "sha256": "152x7fzjnjjdk9d9h0hbixdp3haqn5vdx3bq1nfqfrkvzychyr06",
+ "fetcher": "github",
+ "repo": "chumpage/chumpy-windows",
+ "unstable": {
+ "version": [
+ 20170809,
+ 2208
+ ],
+ "commit": "6bdb51e9a346907d60a9625f6180bddd06be6674",
+ "sha256": "1wkyvfqmf24c8kb162pwi6wcm88bzf0x9mxljzkx0s8bq9aliny6"
+ }
+ },
+ {
+ "ename": "spark",
+ "commit": "f4d1529ab86de7c033579b1a1d0084899c16f454",
+ "sha256": "0dv7ixv9gw6xxhw5zm4gmv2ll4lja8hmn2pdizlqxaizpm245rkn",
+ "fetcher": "github",
+ "repo": "alvinfrancis/spark",
+ "unstable": {
+ "version": [
+ 20160415,
+ 201
+ ],
+ "commit": "0bf148c3ede3b31d56fd75f347cdd0b0eae60025",
+ "sha256": "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"
+ }
+ },
+ {
+ "ename": "sparkline",
+ "commit": "7278ca31ee3c035c8ec754af152127776f04792e",
+ "sha256": "081jzaxjb32nydvr1kmyafxqxi610n0yf8lwz9vldm84famf3g7y",
+ "fetcher": "github",
+ "repo": "woudshoo/sparkline",
+ "unstable": {
+ "version": [
+ 20150101,
+ 1319
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a2b5d817d272d6363b67ed8f8cc75499a19fa8d2",
+ "sha256": "1fqd3ycywxxmln2kzqwflc69xmqlvi9gwvmf7frn0rfv73w09cvp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e44498cf1a58fb165991198fe5104d51c92ea904",
+ "sha256": "1gmmmkzxxlpz2ml6qk24vndlrbyl55r5cba76jn342zrxvb357ny"
+ }
+ },
+ {
+ "ename": "sparql-mode",
+ "commit": "c3d729130a41903bb01465d0f01c34fbc508b56e",
+ "sha256": "1xicrfmgxpb31lz30qj450w8v7dl4ipjp7b2wz54s4kn88nsfj7d",
+ "fetcher": "github",
+ "repo": "ljos/sparql-mode",
+ "unstable": {
+ "version": [
+ 20200429,
+ 1719
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "62f198256453265af48bef3a0207e80143fbff1e",
+ "sha256": "0a49678yaq2vc04w4xp0i9lpb7bdf1fwhjkg0xnzssvnjcnk368k"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2837b97244111515c61fb3823c1479bc126a458b",
+ "sha256": "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"
+ }
+ },
+ {
+ "ename": "speech-tagger",
+ "commit": "db80aa5d95846ee02a9d762aa68325ab5e37dcf7",
+ "sha256": "0sqil949ny9qjxq7kpb4zmjd7770r0qvq4sz80agw6a27mqnaajc",
+ "fetcher": "github",
+ "repo": "cosmicexplorer/speech-tagger",
+ "unstable": {
+ "version": [
+ 20170728,
+ 1829
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "61955b40d4e8b09e66a3e8033e82893f81657c06",
+ "sha256": "07rgs1f9z2ayphv04jdjk9v1s2s47qvksf64z6qn1zss2alc0y0v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 0
+ ],
+ "commit": "e6595bd0eea93ede1534c536c1746c9cf763b73c",
+ "sha256": "1k6c7450v0ln6l9b8z1hib2s2b4rmjbskynvwwyilgdnvginfhi3"
+ }
+ },
+ {
+ "ename": "speechd-el",
+ "commit": "96669a664122c2fb69acd4cad2d7bf75d3e8272d",
+ "sha256": "0p8zih9s2x6l2xcfjbzriyhsicaiwxz54iq9h3c8szlzq708mayc",
+ "fetcher": "github",
+ "repo": "brailcom/speechd-el",
+ "unstable": {
+ "version": [
+ 20200706,
+ 1236
+ ],
+ "commit": "058f91b4d1b0350221218656202ea80cd6827d65",
+ "sha256": "0c9k68mnwm7hhd9mj6f3p8k83kmd67rgzcr27791mnjfkhipynvb"
+ }
+ },
+ {
+ "ename": "speed-type",
+ "commit": "d6c33b5bd15875baea0fd2f24ee8ec9414a6f7aa",
+ "sha256": "0lsbi3b6v7fiwpvydgwcqx3y5i7bysfjammly22qpz3kcjmlvi06",
+ "fetcher": "github",
+ "repo": "parkouss/speed-type",
+ "unstable": {
+ "version": [
+ 20191204,
+ 1107
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5ef695f7159aa1f20c7c9e55f0c39bcdacce8d21",
+ "sha256": "17xh7f1ps6bfs55a08d0jjma2hs117fv4j90w4xif0n2h49m4pjp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5ef695f7159aa1f20c7c9e55f0c39bcdacce8d21",
+ "sha256": "17xh7f1ps6bfs55a08d0jjma2hs117fv4j90w4xif0n2h49m4pjp"
+ }
+ },
+ {
+ "ename": "speedbar-git-respect",
+ "commit": "f468cf6a61479f15d02368ed8c3f6c94214d72db",
+ "sha256": "15py09mjkjci00578nlvniw3inr4jdr8sashkv5li5kzl6b30gwk",
+ "fetcher": "github",
+ "repo": "ukari/speedbar-git-respect",
+ "unstable": {
+ "version": [
+ 20191121,
+ 2120
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "4703650c20cb77f08833747529b55be13d450bae",
+ "sha256": "0qb2azx3blm8iz0y5f8p5zxkbmx6pjzxwpfzg64qi3741xijv8lw"
+ }
+ },
+ {
+ "ename": "speeddating",
+ "commit": "01e23a3e2a2495e86aba60302dbd06f3b25768b4",
+ "sha256": "0b5lcb1inkcx94grib5ssv1qkbzxqryzm115qizlgfs04k8cwz09",
+ "fetcher": "github",
+ "repo": "xuchunyang/emacs-speeddating",
+ "unstable": {
+ "version": [
+ 20180319,
+ 723
+ ],
+ "commit": "df69db0560f19636a66a74f3d88c793bbb18b21e",
+ "sha256": "0mhzjia900irv0ndiw6w2vzin1gvyaf48pghi16r562ci4lr963w"
+ }
+ },
+ {
+ "ename": "spell-fu",
+ "commit": "abaa6522f18ca1f47788ebb3281fbfcdade2b7c7",
+ "sha256": "0c2yi5lz2ww7mm9ih3m374w65n73z4knhnbrvdyzd7ja3xb3l17n",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-spell-fu",
+ "unstable": {
+ "version": [
+ 20200623,
+ 307
+ ],
+ "commit": "e94d01cdc822e02968971cde09276047a5d55772",
+ "sha256": "0fph3l2cpis9k09d6yhl8rv9yb727ayqq6qw6pbmxmn687xmxx9q"
+ }
+ },
+ {
+ "ename": "sphinx-doc",
+ "commit": "a3b80d346ad4fb415970beddb5f02ae795fbf1b4",
+ "sha256": "00h3wx2p5hzbw6sggggdrzv4jrn1wc051iqql5y2m1hsh772ic5z",
+ "fetcher": "github",
+ "repo": "naiquevin/sphinx-doc.el",
+ "unstable": {
+ "version": [
+ 20160116,
+ 1117
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "f39da2e6cae55d5d7c7ce887e69755b7529bcd67",
+ "sha256": "1wif9wf8hwxk0q09cdnrmyas7zjg8l5b8jd6sjxd40ypn6dmz2ch"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "b3459ecb9e6d3fffdee3cb7342563a56a32ce666",
+ "sha256": "1q6v0xfdxm57lyj4zxyqv6n5ik5w9drk7yf9w8spb5r22jg0dg8c"
+ }
+ },
+ {
+ "ename": "sphinx-frontend",
+ "commit": "4cf72e71f159b9eaaa0834682d5dd4eb258616cf",
+ "sha256": "0hdn6zjnhzyka0lzdxqfzbj3lrj767ij406zha9zw8ibbkk7cmag",
+ "fetcher": "github",
+ "repo": "kostafey/sphinx-frontend",
+ "unstable": {
+ "version": [
+ 20161025,
+ 758
+ ],
+ "commit": "0cbb03361c245382d3e679dded30c4fc1713c252",
+ "sha256": "1ksjgd995pcb4lvwip08i8ay0xpin8dcam3hcgnbjjqjg9hja1cf"
+ }
+ },
+ {
+ "ename": "sphinx-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0f5xkaqsmxc4bfz80njlc395dcw2dbvmzx6h9fw31mylshzbmrys",
+ "fetcher": "github",
+ "repo": "Fuco1/sphinx-mode",
+ "unstable": {
+ "version": [
+ 20180620,
+ 915
+ ],
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "b5ac514e213459dcc57184086f10b5b6be3cecd8",
+ "sha256": "06r50n159g18fi03xyxzkv7zr6cvs29ly1yyrmyjl9m6dn97m9mc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "3d6e3059350593dc077f06f54c33869b9e28f7bc",
+ "sha256": "0l3a8swmf3sm54ayk2ahh1i5j1hf0hd822dfmx50kgwi4wpv48sp"
+ }
+ },
+ {
+ "ename": "spice-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1my6dbdnf4scshjf299d4n7vsdq3cxhq9kmqvirs45y3qjm7pgpg",
+ "fetcher": "github",
+ "repo": "stardiviner/spice-mode",
+ "unstable": {
+ "version": [
+ 20190608,
+ 1033
+ ],
+ "commit": "e5e0644f03f9696f56dd69e2b6979da7f30ed600",
+ "sha256": "01905cdplj9icbxzr7sqb62x5qchzgvs8qjf5s4qga4x3vjh1dc4"
+ }
+ },
+ {
+ "ename": "spiral",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "074ymaksb3dgrsrdsi6xdlvigki5l2v66r8204xv50yc88z7l8qr",
+ "fetcher": "github",
+ "repo": "Unrepl/spiral",
+ "unstable": {
+ "version": [
+ 20180223,
+ 1140
+ ],
+ "deps": [
+ "a",
+ "avy",
+ "clojure-mode",
+ "highlight",
+ "treepy"
+ ],
+ "commit": "907b9792467139a942ba7b07ca0276b90770baf9",
+ "sha256": "1rggzzvya26abbzd8bc2kpv59kzgm75wqv1vwqnj9c8im1jvs1na"
+ }
+ },
+ {
+ "ename": "splitjoin",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0g2i1q1npwrczgzp5321lpljff2ykmq932lzj6pdwnn6cyqixzzb",
+ "fetcher": "github",
+ "repo": "emacsorphanage/splitjoin",
+ "unstable": {
+ "version": [
+ 20150505,
+ 1432
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e2945ee269e6e90f0243d6f2a33e067bb0a2873c",
+ "sha256": "1qdy9nc2h7mwxh7zg2p1x7yg96hxkwxqimjp6zb1119jx0s8grjc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0eb91e7beec915065cd6c00ceaca180a64d85cda",
+ "sha256": "17qsmjsbk8aq3azjxid6h9fzz77bils74scp21sqn8vdnijx8991"
+ }
+ },
+ {
+ "ename": "splitter",
+ "commit": "129f0d20616226c449bdaf672c43a06e8f281869",
+ "sha256": "02vdhvipzwnh6mlj25lirzxkc0shfzqfs1p4gn3smkxqx6g7mdb2",
+ "fetcher": "github",
+ "repo": "chumpage/chumpy-windows",
+ "unstable": {
+ "version": [
+ 20170809,
+ 2208
+ ],
+ "commit": "6bdb51e9a346907d60a9625f6180bddd06be6674",
+ "sha256": "1wkyvfqmf24c8kb162pwi6wcm88bzf0x9mxljzkx0s8bq9aliny6"
+ }
+ },
+ {
+ "ename": "spotify",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "07y6d3cz3nziasza3znysvcnx3kw156ab78kw5y0pdll45nw210x",
+ "fetcher": "github",
+ "repo": "remvee/spotify-el",
+ "unstable": {
+ "version": [
+ 20200615,
+ 1418
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7e28ef0b4519c6a46fce6a89c0ff1ed775eda71a",
+ "sha256": "0mi8g6ryjg7czrr6fchwq9459ijd5c9wsvj3s9j0l0w4jcyxrvrd"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "29577cf1188161f98b8358c149aaf47b2c137902",
+ "sha256": "0h6yhfvvyd9sd5d37d3ng3z56zfb546vl95qjq16kcvxq00hdn1v"
+ }
+ },
+ {
+ "ename": "spotlight",
+ "commit": "26e0eba715c869c5bd295afb8971d490e80f6e2b",
+ "sha256": "0mmr1spr21pi8sfy95dsgqcxn8qfsphdkfjm5w5q97lh7496z65p",
+ "fetcher": "github",
+ "repo": "benmaughan/spotlight.el",
+ "unstable": {
+ "version": [
+ 20200109,
+ 2137
+ ],
+ "deps": [
+ "counsel",
+ "swiper"
+ ],
+ "commit": "ea71f4fd380c51e50c47bb25855af4f40e4d8da0",
+ "sha256": "1dda4gwxyhnr73ckjr70yjah9dmddvyfcwlrbb6d6bidb70ib0dj"
+ }
+ },
+ {
+ "ename": "spray",
+ "commit": "e4f5053aa4e1af3f636febe9c3ce8c6ae20c090d",
+ "sha256": "1h8lngcqa343mlc091zs419frgsla65khfj93lv9fil3xbgrm7m9",
+ "fetcher": "gitlab",
+ "repo": "iankelling/spray",
+ "unstable": {
+ "version": [
+ 20160304,
+ 2220
+ ],
+ "commit": "00638bc916227f2f961013543d10e85a43a32e29",
+ "sha256": "1avbfr32dvff26kgvd5vgan99nb5c6al9kv5xbmy2rcls17py7r2"
+ }
+ },
+ {
+ "ename": "springboard",
+ "commit": "138b8a589725ead2fc1de9ea76c55e3eb2473872",
+ "sha256": "17rmsidsbb4p08vr07mfn25m17wnpadcwr4nxvp79glp5a0wyyib",
+ "fetcher": "github",
+ "repo": "jwiegley/springboard",
+ "unstable": {
+ "version": [
+ 20170106,
+ 755
+ ],
+ "deps": [
+ "helm"
+ ],
+ "commit": "687d1e5898a880878995dc9bffe93b4598366203",
+ "sha256": "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"
+ }
+ },
+ {
+ "ename": "sprintly-mode",
+ "commit": "8730956d3f00e030e06ef54c3f2aecc10bb40f9d",
+ "sha256": "15i3rrv27ccpn12wwj9raaxpj7nlnrrj3lsp8vdfwph6ydvnfza4",
+ "fetcher": "github",
+ "repo": "sprintly/sprintly-mode",
+ "unstable": {
+ "version": [
+ 20121006,
+ 534
+ ],
+ "deps": [
+ "furl"
+ ],
+ "commit": "6695892bae5860b5268bf3ae62be990ee9b63c11",
+ "sha256": "06rk07h92s5sljprs41y3q31q64cprx9kgs56c2j6v4c8cmsq5h6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "furl"
+ ],
+ "commit": "6695892bae5860b5268bf3ae62be990ee9b63c11",
+ "sha256": "06rk07h92s5sljprs41y3q31q64cprx9kgs56c2j6v4c8cmsq5h6"
+ }
+ },
+ {
+ "ename": "sproto-mode",
+ "commit": "ac2b4207c4eaa3a048e245242489462a69b4af67",
+ "sha256": "19l6si3sx2i542r5lyr9axby9hblx76m77f17vnsjf32n3r0qgma",
+ "fetcher": "github",
+ "repo": "m2q1n9/sproto-mode",
+ "unstable": {
+ "version": [
+ 20151115,
+ 1805
+ ],
+ "commit": "0583a88273204dccd884b7edaa3590cefd31e7f7",
+ "sha256": "11igl9n2zwwar1xg651g5v0r0w6xl0grm8xns9wg80351ijrci7x"
+ }
+ },
+ {
+ "ename": "sprunge",
+ "commit": "f7b9f8cc2f2f8f8e1cf80b3e76c89b9f12cacf95",
+ "sha256": "199vfl6i881aks8fi9d9w4w7mnc7n443h79p3s4srcpmbyfg6g3w",
+ "fetcher": "github",
+ "repo": "tomjakubowski/sprunge.el",
+ "unstable": {
+ "version": [
+ 20160301,
+ 243
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "0fd386b8b29c4175022a04ad70ea5643185b6726",
+ "sha256": "03wjzk1ljclfjgqzkg6m7v8saaajgavyd0xskd8fg8rdkx13ki0l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "0fd386b8b29c4175022a04ad70ea5643185b6726",
+ "sha256": "03wjzk1ljclfjgqzkg6m7v8saaajgavyd0xskd8fg8rdkx13ki0l"
+ }
+ },
+ {
+ "ename": "spu",
+ "commit": "8f2ef1e83c924d5411b47a931432f129db95ff2c",
+ "sha256": "0g7j0rz6ga6x6akiijp4vg5iymvqx5d08d60cz6dccq120fi95v8",
+ "fetcher": "github",
+ "repo": "mola-T/SPU",
+ "unstable": {
+ "version": [
+ 20161214,
+ 324
+ ],
+ "deps": [
+ "signal",
+ "timp"
+ ],
+ "commit": "41eec86b595816e3852e8ad1a8e07e51a27fd065",
+ "sha256": "1j77h761vf74y9sfjpidgaznail95hsg9akjs55sz1xiyy7hkgyw"
+ }
+ },
+ {
+ "ename": "sql-clickhouse",
+ "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
+ "sha256": "1sxh22dl0px81z85dj9r97nj8pnc6g9ah06q1bgf3bii7yl6qdy8",
+ "fetcher": "github",
+ "repo": "rschwarz/sql-clickhouse",
+ "unstable": {
+ "version": [
+ 20191209,
+ 1443
+ ],
+ "commit": "8403a4a5d332dbb6459b7fbce6ea95c36d390a5b",
+ "sha256": "0c039m67jc2xq9pmn0xmqr07nzdssc4vbk51ng0272kcs9mbslrf"
+ }
+ },
+ {
+ "ename": "sql-impala",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1mh36ycqgr07r0hknkr6vb4k0r5b2h8bqd7m5faz9p56qbisgvvh",
+ "fetcher": "github",
+ "repo": "jterk/sql-impala",
+ "unstable": {
+ "version": [
+ 20181218,
+ 410
+ ],
+ "commit": "466e7c0c789ec3e5e8a276c8f6754f91bb584c3e",
+ "sha256": "02psgbm06wivdm2cmjnj2vy05lnljxn44hj2arw2fr7x2qwn9r35"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "466e7c0c789ec3e5e8a276c8f6754f91bb584c3e",
+ "sha256": "02psgbm06wivdm2cmjnj2vy05lnljxn44hj2arw2fr7x2qwn9r35"
+ }
+ },
+ {
+ "ename": "sql-presto",
+ "commit": "a21349775e018822a06bca3c3c338879548e286f",
+ "sha256": "1rjfgvwgl63xn047vmsmj1s31wvrd24v6ibf9nri6qmffhv9i9zb",
+ "fetcher": "github",
+ "repo": "kat-co/sql-prestodb",
+ "unstable": {
+ "version": [
+ 20190113,
+ 1742
+ ],
+ "commit": "bcda455e300a1af75c7bb805882329bc844703b2",
+ "sha256": "00whmsylr802fx87yqbr06rbymyln7kq7750pcz26xm1jgja7cax"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 4
+ ],
+ "commit": "bcda455e300a1af75c7bb805882329bc844703b2",
+ "sha256": "00whmsylr802fx87yqbr06rbymyln7kq7750pcz26xm1jgja7cax"
+ }
+ },
+ {
+ "ename": "sql-sqlline",
+ "commit": "0fd21ac42207156f7300f4ab6ac082c801740daf",
+ "sha256": "1b5jkdajif0yc558nv29y8vimnj6bq52z2m91qj6mplcbgpdrnn6",
+ "fetcher": "gitlab",
+ "repo": "matteo.redaelli/sql-sqlline",
+ "unstable": {
+ "version": [
+ 20191028,
+ 939
+ ],
+ "commit": "990c79b7ebbf8ecb1e1161c9a942973efd8e2833",
+ "sha256": "0jl13ymbb0yxvkqipw821wq797izzj5j72vzdc5d30dwdd2wxm83"
+ }
+ },
+ {
+ "ename": "sqlformat",
+ "commit": "6bdaa1ccae12f2ea779ac6989607d8027feac2c9",
+ "sha256": "07lf2gx629429b41qr04gl98gplb538gb5hw7idzrmi3higrmv8m",
+ "fetcher": "github",
+ "repo": "purcell/sqlformat",
+ "unstable": {
+ "version": [
+ 20200327,
+ 2329
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "9e6351dc97a6f58f221d6e1baa7bab292309c437",
+ "sha256": "1r49c8ick1vk7zl4h0472z0p6j3d5b839al3s687acgqdymb24kk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "b70b05bf469a27c1a2940eeaa1a5c8cc93d805fd",
+ "sha256": "14n2yjmi4ls8rmpvvw6d7cz5f6dcg7laaljxnhwbagfd5j4sdfrm"
+ }
+ },
+ {
+ "ename": "sqlite",
+ "commit": "949556b57cea0fbbfc98b95d894de95257dfe1e5",
+ "sha256": "1c5dprdl8q09yd0kvpkm19z60m9rhkilj5zmj938wlj5bmdlydv8",
+ "fetcher": "gitlab",
+ "repo": "cnngimenez/sqlite.el",
+ "unstable": {
+ "version": [
+ 20180708,
+ 1711
+ ],
+ "commit": "dad42b8bbca4994be1871343dd18fd6528ee5797",
+ "sha256": "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"
+ }
+ },
+ {
+ "ename": "sqlite3",
+ "commit": "75bbc8a92954bd12b4c9d206a804c34c97b19e3d",
+ "sha256": "1c7j8hzz8xs1nrn931apyj7nhwr3dnfbsrimb6fpdfmms8095y7w",
+ "fetcher": "github",
+ "repo": "pekingduck/emacs-sqlite3-api",
+ "unstable": {
+ "version": [
+ 20200710,
+ 1432
+ ],
+ "commit": "e5b14b03183cde855059084eba425428ec4618c1",
+ "sha256": "1r7hs23xa2yhr0rbgdhxid8gg4fwhrk2wjrk1scrp37aj2szwpjm"
+ }
+ },
+ {
+ "ename": "sqlup-mode",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0ngs58iri3fwv5ny707kvb6xjq98x19pzak8c9nq4qnpw3nkr83b",
+ "fetcher": "github",
+ "repo": "Trevoke/sqlup-mode.el",
+ "unstable": {
+ "version": [
+ 20170610,
+ 1537
+ ],
+ "commit": "3f9df9c88d6a7f9b1ae907e401cad8d3d7d63bbf",
+ "sha256": "1crah9h86m5sdc7panj98ws9cv2as6kh9syal8m1p7rhimgvdx1v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 0
+ ],
+ "commit": "04970977b4abb4d44301651618bbf1cdb0b263dd",
+ "sha256": "14s66xrabj269z7f94iynsla96bka7zac011psrbcfyy4m8mlamz"
+ }
+ },
+ {
+ "ename": "sr-speedbar",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "1v90jbqdw39yrfcsnyqas8c5g09rcf1db65q2m2rw7rik8cgb052",
+ "fetcher": "github",
+ "repo": "emacsorphanage/sr-speedbar",
+ "unstable": {
+ "version": [
+ 20161025,
+ 831
+ ],
+ "commit": "77a83fb50f763a465c021eca7343243f465b4a47",
+ "sha256": "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"
+ },
+ "stable": {
+ "version": [
+ 20140914,
+ 2339
+ ],
+ "commit": "4f816528a32eb421197a768d6dcf3a05de83f642",
+ "sha256": "1x9wizd0fzcmpf8ff7c3rcfxk64diy9jmzzvxa7d5a3k8vvpdhg3"
+ }
+ },
+ {
+ "ename": "srcery-theme",
+ "commit": "2654fc05f55c7fab7d550b7db1d187edc9ff0f42",
+ "sha256": "1bnvf9v7g2mpx8519lh73fphhr4cqd33qlw22qyxnqiz5cz93lsp",
+ "fetcher": "github",
+ "repo": "srcery-colors/srcery-emacs",
+ "unstable": {
+ "version": [
+ 20200813,
+ 1430
+ ],
+ "commit": "a3a4df9875ea6ae21cfb483dfd7b5c92278fb1c3",
+ "sha256": "1lc8796r5vy4n9nz9q10qy4brzd7c7i7dsjmvci6c9f7blqnz1la"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "96e2f46b7068b84702809163f4d9d379d22f0395",
+ "sha256": "12dg8bficlxc1nb30lz507lq3ywpvjj6f289hc754vslx6w6by0a"
+ }
+ },
+ {
+ "ename": "srefactor",
+ "commit": "e23115ab231ab108678608f2ad0a864f896cd0f2",
+ "sha256": "01cd40jm4h00c5q2ix7cskp7klbkcd3n5763y5lqfv59bjxwdqd2",
+ "fetcher": "github",
+ "repo": "tuhdo/semantic-refactor",
+ "unstable": {
+ "version": [
+ 20180703,
+ 1810
+ ],
+ "commit": "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5",
+ "sha256": "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "ecd40713f736b243285c07f4cfd77113794d4f9f",
+ "sha256": "0wx8l8gkh8rbf2g149f35gpnmkk45s9x4r844aqw5by4zkvix4rc"
+ }
+ },
+ {
+ "ename": "srfi",
+ "commit": "ff844713373e376a637625494321c8e8f197b48e",
+ "sha256": "1ik6gbcv79l1za7vr2llph1kb2ll8snq11szdxd0r8lnls7l33xf",
+ "fetcher": "github",
+ "repo": "srfi-explorations/emacs-srfi",
+ "unstable": {
+ "version": [
+ 20200817,
+ 549
+ ],
+ "commit": "1588f720ecd7f69a7972d5c9e113975af045c813",
+ "sha256": "136zx2sr0n4lb396vpz5nq60zjc3cav4kpx8r5h3nzgnmamqz61b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "98b8b1f9edd4ce6a05eeef49bed0d1966bd7c528",
+ "sha256": "1il0z6lb2jz495gdp6g7wc0n9a4z8z8ndhrrl71rnws53fah0lm3"
+ }
+ },
+ {
+ "ename": "srv",
+ "commit": "6b0b7f22631e7749da484ced9192d8ae5e1be941",
+ "sha256": "0xrgbi63vg0msxkcmcnvijkxa9y0s7613liqac7fs9514yvkbwin",
+ "fetcher": "github",
+ "repo": "legoscia/srv.el",
+ "unstable": {
+ "version": [
+ 20180715,
+ 1959
+ ],
+ "commit": "714387d5a5cf34d8d8cd96bdb1f9cb8ded823ff7",
+ "sha256": "1a8pqhdi7m3lis5ad2f74s1sy8zpxlwvfsvd80lw746235x2v06z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "714387d5a5cf34d8d8cd96bdb1f9cb8ded823ff7",
+ "sha256": "1a8pqhdi7m3lis5ad2f74s1sy8zpxlwvfsvd80lw746235x2v06z"
+ }
+ },
+ {
+ "ename": "ssass-mode",
+ "commit": "3137f98aaa871a52f477b63d9c3b7b63f7271344",
+ "sha256": "07aym4a7l70f1lb6yvwxkhsykrwbf0lcpwlwgcn5n44kavvdbzxm",
+ "fetcher": "github",
+ "repo": "AdamNiederer/ssass-mode",
+ "unstable": {
+ "version": [
+ 20200211,
+ 132
+ ],
+ "commit": "96f557887ad97a0066a60c54f92b7234b8407016",
+ "sha256": "0kfk1dp8mgirbsrcg3klxi005gryqrr3jn2ss9m6vsxldjg69svb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "5f36a169a1ad497f1d7a465be386ffb5e1f80bcf",
+ "sha256": "1n1q26p52i6c6i8svkr0bn91hliqm540y1fcz3jci8w2ws0s5x11"
+ }
+ },
+ {
+ "ename": "ssh",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1wlzagcg2fxqcbpd3z02wsil2n224kzmhcd54df80jypgq5fa6k3",
+ "fetcher": "github",
+ "repo": "ieure/ssh-el",
+ "unstable": {
+ "version": [
+ 20120904,
+ 2042
+ ],
+ "commit": "812e27409d01c38d74906a1816640506d6e7e3ef",
+ "sha256": "1ffwfgi450f95y1j1zp3k9lfwb6h26jzy88ng2bk4x92n53mhpww"
+ }
+ },
+ {
+ "ename": "ssh-agency",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "1b25fl1kk4mwsd25pg9s0lazlpmaa6s9wnfgvlqk8k65d7p7idzz",
+ "fetcher": "github",
+ "repo": "magit/ssh-agency",
+ "unstable": {
+ "version": [
+ 20200329,
+ 1558
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "a5377e4317365a3d5442e06d5c255d4a7c7618db",
+ "sha256": "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "a5377e4317365a3d5442e06d5c255d4a7c7618db",
+ "sha256": "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"
+ }
+ },
+ {
+ "ename": "ssh-config-mode",
+ "commit": "750b16ee631b4c2014f2ebf767609bab4b8ee421",
+ "sha256": "1jlaf1bipmf51552jyp2ax6n4gwg38n2348kyxlwd7d8vwsibbpq",
+ "fetcher": "github",
+ "repo": "jhgorrell/ssh-config-mode-el",
+ "unstable": {
+ "version": [
+ 20200503,
+ 2042
+ ],
+ "commit": "8fda737131fef2e55c4965a938cf907acbf03372",
+ "sha256": "1cjcav28a6bw8h8axx5ms2cacdqcjv6imb4pj4r4zx08jd4nljdk"
+ }
+ },
+ {
+ "ename": "ssh-deploy",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1ys3cc5fz8y4rsiq3daqgcpa14ssv1q4cw0pqbfscql6mps0mjdm",
+ "fetcher": "github",
+ "repo": "cjohansson/emacs-ssh-deploy",
+ "unstable": {
+ "version": [
+ 20200306,
+ 1012
+ ],
+ "commit": "1bb2f821d4a78d483c147759348a29531486cdc4",
+ "sha256": "1d79lgl7082fkawl08qlykc7x75whdikk899fv5shbbrwp7hq3l3"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1
+ ],
+ "commit": "20a87ab053b1d56fdb102b75b1c90658df756505",
+ "sha256": "1m0fav34wvak4k3ki92z5nvsyw6jdxnmhn5xzjiialgz9c3936v8"
+ }
+ },
+ {
+ "ename": "ssh-tunnels",
+ "commit": "b093a3a9a836bae8ce37a21188c64e9a878066e8",
+ "sha256": "0zlf22wg9adkhycsasv6bfim2h0cknsvihyi1q2l2l4pjdp9ypqj",
+ "fetcher": "github",
+ "repo": "death/ssh-tunnels",
+ "unstable": {
+ "version": [
+ 20190622,
+ 931
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d32e2072f50bcbde787196abb5862735837dc8be",
+ "sha256": "1i0wmdv0pglsz1pbhfjrpr1q6sxh1q74s41vnjxk5r2q8p1fh69n"
+ }
+ },
+ {
+ "ename": "stack-mode",
+ "commit": "1328a676140e4b8d01af126c4043bcfa8d1b2a8c",
+ "sha256": "0s0m2lj40php7bc2i3fy9ikd5rmx4v7zbxfkp9vadmlc5s7w25gf",
+ "fetcher": "github",
+ "repo": "commercialhaskell/stack-ide",
+ "unstable": {
+ "version": [
+ 20150923,
+ 1523
+ ],
+ "deps": [
+ "cl-lib",
+ "flycheck",
+ "haskell-mode"
+ ],
+ "commit": "f3481e239dde9817152ec00e32bfc3ebf5aaf2cb",
+ "sha256": "1f2dxlc3dsf9ay417h1l43fxjkrb0a4gg96zd3asx9v2alpzgcim"
+ }
+ },
+ {
+ "ename": "stan-mode",
+ "commit": "0d31e038cd133936085994641f9af2bb7d15ba36",
+ "sha256": "1pvdh1pgjcbvkw2qh1mpazfrmcjhwv95a1s4flbn4zijmb2zigdf",
+ "fetcher": "github",
+ "repo": "stan-dev/stan-mode",
+ "unstable": {
+ "version": [
+ 20200221,
+ 2025
+ ],
+ "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+ "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
+ },
+ "stable": {
+ "version": [
+ 10,
+ 1,
+ 0
+ ],
+ "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
+ "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+ }
+ },
+ {
+ "ename": "stan-snippets",
+ "commit": "57f9fe7c4735d4106ad2a0f27331c3e3fe8833c0",
+ "sha256": "1ar2abnlav1sy9622387ps5gr7fls0mx2msczvan4wrc1nnfvwdx",
+ "fetcher": "github",
+ "repo": "stan-dev/stan-mode",
+ "unstable": {
+ "version": [
+ 20200221,
+ 2025
+ ],
+ "deps": [
+ "stan-mode",
+ "yasnippet"
+ ],
+ "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+ "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
+ },
+ "stable": {
+ "version": [
+ 10,
+ 1,
+ 0
+ ],
+ "deps": [
+ "stan-mode",
+ "yasnippet"
+ ],
+ "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
+ "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+ }
+ },
+ {
+ "ename": "standard-dirs",
+ "commit": "3af817370f249a7e7a04b06ccc850b24c0f4b5bb",
+ "sha256": "0jcwav3dhvdxkxsc1nrwswrljam06llyspd9nk70pfpafis9smzl",
+ "fetcher": "github",
+ "repo": "lafrenierejm/standard-dirs.el",
+ "unstable": {
+ "version": [
+ 20200621,
+ 1603
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "e37b7e1c714c7798cd8e3a6569e4d71b96718a60",
+ "sha256": "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "deps": [
+ "f",
+ "s"
+ ],
+ "commit": "e37b7e1c714c7798cd8e3a6569e4d71b96718a60",
+ "sha256": "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"
+ }
+ },
+ {
+ "ename": "standoff-mode",
+ "commit": "98858a45f72c28eec552b119a66479ea99b60f93",
+ "sha256": "127bzpm1cz103f1pb860yqrh7mr0rdaivrm9p6ssd01kchl9nskp",
+ "fetcher": "github",
+ "repo": "lueck/standoff-mode",
+ "unstable": {
+ "version": [
+ 20171115,
+ 1731
+ ],
+ "commit": "cf84b14066d63694d931395c6026fd0245d8a62b",
+ "sha256": "0dbcaz3faw8knx91yjsrb988sn2d9k0i5byhs1bi1ww36y6hmgs6"
+ }
+ },
+ {
+ "ename": "start-menu",
+ "commit": "88d965f6789d3f5ba3856cbf10edbc46e37b12ae",
+ "sha256": "1k1lc9i9vcl2am9afq0ksrxwsy6kppl4i0v10h0w2fq5z374rdkv",
+ "fetcher": "github",
+ "repo": "lujun9972/el-start-menu",
+ "unstable": {
+ "version": [
+ 20160426,
+ 1225
+ ],
+ "deps": [
+ "cl-lib",
+ "config-parser"
+ ],
+ "commit": "f7d33fed7ad2dc61156f1c1cff9e1805366fbd69",
+ "sha256": "1w3l8ahal9hjisny382bcw9w1nh2swpb1jzf2djww5h0i4r2h36c"
+ }
+ },
+ {
+ "ename": "stash",
+ "commit": "d3837ac3f1ac82e08a5ad7193766074a4d1bfa3d",
+ "sha256": "116k40ispv7sq3jskwc1lvmhmk3jjz4j967r732s07f5h11vk1z9",
+ "fetcher": "github",
+ "repo": "vermiculus/stash.el",
+ "unstable": {
+ "version": [
+ 20151117,
+ 1427
+ ],
+ "commit": "c2e494d20c752b80ebbdffbf66687b3cdfc425ad",
+ "sha256": "0cl2y72iagmv87kg72a46a3kap2xigwnrbk2hjgvsbxv2ng5f9cr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "commit": "638ae8a4f6d33af54fe77d57c2c0eb1800dd2e19",
+ "sha256": "0igqifws73cayvjnhhrsqpy14sr27avymfhaqzrpj76m2fsh6fj4"
+ }
+ },
+ {
+ "ename": "state",
+ "commit": "82e955112089569c775e11888d9811119f84a4f8",
+ "sha256": "19y3n8wnbpgbpz4jxy2p7hjqxykg09arjp7s5v22yz7il3gn48l2",
+ "fetcher": "github",
+ "repo": "thisirs/state",
+ "unstable": {
+ "version": [
+ 20200727,
+ 1227
+ ],
+ "commit": "8cd9210f17c1b134274a7352b996839aed9a7d8c",
+ "sha256": "04h8n2wy9qr4bskq9znhadcf02wk4ydhyaaq44yvh55hzmn6gm25"
+ }
+ },
+ {
+ "ename": "status",
+ "commit": "dca8976de7060fcfc37a1623280869e0cef7b0a2",
+ "sha256": "0a9lqa7a5nki5711bjrmx214kah5ndqpwh3i240gdd08mcm07ps3",
+ "fetcher": "github",
+ "repo": "tromey/emacs-status",
+ "unstable": {
+ "version": [
+ 20151230,
+ 1408
+ ],
+ "commit": "b62c74bf272566f82a68622f29fb9edafea0f241",
+ "sha256": "0jpxmzfvg4k5q3h3gn6lrg891wjzlcps2kkij1jbdjk4jkgq386i"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "b62c74bf272566f82a68622f29fb9edafea0f241",
+ "sha256": "0jpxmzfvg4k5q3h3gn6lrg891wjzlcps2kkij1jbdjk4jkgq386i"
+ }
+ },
+ {
+ "ename": "steam",
+ "commit": "25a45eb6297168cd0ce4c4db5574362addad5c69",
+ "sha256": "10k408spgbxi266jk8x57zwav989is16nvwg41dknz91l76v63gw",
+ "fetcher": "github",
+ "repo": "Kungsgeten/steam.el",
+ "unstable": {
+ "version": [
+ 20190916,
+ 627
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f32951f4e0a4bc92813d0121d9df0257101b8992",
+ "sha256": "1fl4875992xxv0amcqj7b516f35k19h8fd7pij0by5b808k5ls6x"
+ }
+ },
+ {
+ "ename": "stem",
+ "commit": "8d9c38d0d4dac86848ad0fec0aeeced009c5eac7",
+ "sha256": "1625nbi2bmb7vzjz0s7y1cy7dp8lp83dayiib3nr2bfkv76fwkcq",
+ "fetcher": "github",
+ "repo": "yuutayamada/stem",
+ "unstable": {
+ "version": [
+ 20131102,
+ 1109
+ ],
+ "commit": "d74e6611d6ba5025e0276a2cc7c8a90f46bfa9ac",
+ "sha256": "1xc4v8a35c2vpfhza15j4f89x7vyg9bbgm7xnprij7814k8iy7p0"
+ }
+ },
+ {
+ "ename": "stem-english",
+ "commit": "5c8e97e70e7a86b9f5e55bdd2db492994e8abdd5",
+ "sha256": "15d13palwdwrki9p804cdls08ph7sxxzd44nl4bhfm3dxic4sw7x",
+ "fetcher": "github",
+ "repo": "kawabata/stem-english",
+ "unstable": {
+ "version": [
+ 20180109,
+ 358
+ ],
+ "commit": "c9fc4c6ed6bf82382e479dae80912f4ae17d31f4",
+ "sha256": "1bkmgjfp7xir6d0yf782xkjvf595blrqhr3hack26jg5zl8qsrya"
+ }
+ },
+ {
+ "ename": "stgit",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0iv2fiv8i2h4pqbsvy10avijvlk2waprmn0z4jq4hcyvarwzxvp1",
+ "fetcher": "github",
+ "repo": "stacked-git/stgit",
+ "unstable": {
+ "version": [
+ 20200606,
+ 1308
+ ],
+ "commit": "333e9e434cec9aa2f887083cdf2cefcaa316f438",
+ "sha256": "1q058qav0al8mb6f3f3jc4mnzlvhlis9dllchw3flw3gx57qcrx5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 23
+ ],
+ "commit": "e6dd7eff206a6515aefced2ad701beaf625d7b7d",
+ "sha256": "157vdhdjzxsf7077916ibn0jbsxw9d71m8mwm4kn0i0ip7sj9xdg"
+ }
+ },
+ {
+ "ename": "sticky",
+ "commit": "ad10a684b4b2f01bc65883374f36fef156ff55d2",
+ "sha256": "0g98qagqchwq9j5nvdz315wak8fvdw1l972cfh0fr4yyg7gxi6xr",
+ "fetcher": "github",
+ "repo": "rubikitch/sticky",
+ "unstable": {
+ "version": [
+ 20170926,
+ 36
+ ],
+ "commit": "fec4e1af38f17f5cd80eca361d8e8ef8772db366",
+ "sha256": "126zs059snzpg83q9mrb51y0pqawwrj9smr3y7rza4q4qkdp1nk0"
+ }
+ },
+ {
+ "ename": "stickyfunc-enhance",
+ "commit": "e24454febf90ec18a587b2c187a2bd2101e1b7b5",
+ "sha256": "13dh19c3bljs83l847syqlg07g33hz6sapg6j4s4xv4skix8zfks",
+ "fetcher": "github",
+ "repo": "tuhdo/semantic-stickyfunc-enhance",
+ "unstable": {
+ "version": [
+ 20150429,
+ 1814
+ ],
+ "commit": "13bdba51fcd83ccbc3267959d23afc94d458dcb0",
+ "sha256": "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"
+ }
+ },
+ {
+ "ename": "stock-ticker",
+ "commit": "75e654f7b3f785bdfead3c594fdc09730c5d33b9",
+ "sha256": "1slcjk2avybr4v9s7gglizmaxbb3yqg6s6gdbg12m3vvj3b72lfi",
+ "fetcher": "github",
+ "repo": "hagleitn/stock-ticker",
+ "unstable": {
+ "version": [
+ 20150204,
+ 1052
+ ],
+ "deps": [
+ "request",
+ "s"
+ ],
+ "commit": "f2e564142c9de84232839a5b01979cf95b04d6a9",
+ "sha256": "191sg32z1iagyxmbn49i1lpfihld9g9741cw2kj830s4vag4kinx"
+ }
+ },
+ {
+ "ename": "stock-tracker",
+ "commit": "5e959303b4c0a07c821252a913b578f70b5f41ad",
+ "sha256": "1gc4z980rp9s0nvbrbp792ckyw12ahfsk3a3whf12vb3anmmgd7b",
+ "fetcher": "github",
+ "repo": "beacoder/stock-tracker",
+ "unstable": {
+ "version": [
+ 20200228,
+ 542
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "32ae436a4cad49fea5038cc3e8eb638a3a83dd6c",
+ "sha256": "0dmjvgkhd445azs6vrj8lzcfmnm3h4prajr0c416s2ircrzpgnd9"
+ }
+ },
+ {
+ "ename": "strace-mode",
+ "commit": "9b2003bee9992d9e79124d95d30b573c8a6bdbfe",
+ "sha256": "16v350nqdxmmk1r4z25bssm436xcm4cvnaxm7f3wxwvmg9z0gx8d",
+ "fetcher": "github",
+ "repo": "pkmoore/strace-mode",
+ "unstable": {
+ "version": [
+ 20171116,
+ 2039
+ ],
+ "commit": "2901baa968d5180ab985ac40ca22cc20914d01f5",
+ "sha256": "1jd930nc2g562n4cqq1ppl2d8dq7bxkr3fh9f0gjms7bcm106kz9"
+ }
+ },
+ {
+ "ename": "strie",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1ngvpbws7laqxk6mm023r5295msap12h8bh9zrsbr05yxfzhlx83",
+ "fetcher": "github",
+ "repo": "jcatw/strie.el",
+ "unstable": {
+ "version": [
+ 20160211,
+ 2222
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "eb7efb0cccc127c414f6a64db11454869d9c10a8",
+ "sha256": "1kcbkf0wbmqy9slxfqg7wsyw5n2rsaz832ibrxszb642j0l8s7pr"
+ }
+ },
+ {
+ "ename": "string-edit",
+ "commit": "20fd24f22ef734fe064c66692bf3e18eb896f1ac",
+ "sha256": "1l1hqsfyi6pp4x4g1rk4s7x9zjc03wfmhy16izia8nkjhzz88fi8",
+ "fetcher": "github",
+ "repo": "magnars/string-edit.el",
+ "unstable": {
+ "version": [
+ 20160411,
+ 656
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "c44b65b4c5e9f52be9c14d88ca2f402a18d9e1dd",
+ "sha256": "1xm7bb3cp99ahr5jrwi0p0258qcvlbddy98wmbq00kk5pihqbzsg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "9f9c9cd659156fd2217be814eb4e91da48d44647",
+ "sha256": "15gdcpbba3h84s7xnpk69nav6bixdixnirdh5n1rly010q0m5s5x"
+ }
+ },
+ {
+ "ename": "string-inflection",
+ "commit": "5c2e2b6dba8686236c2595475cfddac5fd700e60",
+ "sha256": "1vrjcg1fa5adw16s4v9dq0fid0gfazxk15z9cawz0kmnpyzz3fg2",
+ "fetcher": "github",
+ "repo": "akicho8/string-inflection",
+ "unstable": {
+ "version": [
+ 20200517,
+ 115
+ ],
+ "commit": "1937db7513db570606ea8798916180b7dd75d3b1",
+ "sha256": "06n968iqh6w8grmk8w67g6la9cxpp8ww5mi9s3zgdjhfcs5g8xdl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 11
+ ],
+ "commit": "1937db7513db570606ea8798916180b7dd75d3b1",
+ "sha256": "06n968iqh6w8grmk8w67g6la9cxpp8ww5mi9s3zgdjhfcs5g8xdl"
+ }
+ },
+ {
+ "ename": "string-utils",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "1vsvxc06fd3wardldb83i5hjfibvmiqnxvcgdns7i5i8qlsrsx4v",
+ "fetcher": "github",
+ "repo": "rolandwalker/string-utils",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "deps": [
+ "list-utils"
+ ],
+ "commit": "c2232d691617973ecf12a970c6008a161c21da14",
+ "sha256": "1frdspm1qgksa8cpx5gkj50xk9mgz8202pgp11lqir6l3yjcj3wq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "list-utils"
+ ],
+ "commit": "3ae530143899f533a9ef5e1f26f28b577ebe72ee",
+ "sha256": "03azfs6z0jg66ppalijcxl973vdbhj4c3g84sm5dm8xv6rnxrv2s"
+ }
+ },
+ {
+ "ename": "stripe-buffer",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1kjib1kf9xqdirryr16wlvc95701hq8s4h8hz4dqzg3wzyb8287b",
+ "fetcher": "github",
+ "repo": "sabof/stripe-buffer",
+ "unstable": {
+ "version": [
+ 20141208,
+ 1508
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c252080f55cb78c951b19ebab9687f6d00237baf",
+ "sha256": "0dxajh72wdcwdb9ydbcm19fmp0p1drmh1niq4r69jnbn8sah0zax"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 5
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d9f009b92cf16fe2c40cd92b8f842a3872e6c190",
+ "sha256": "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"
+ }
+ },
+ {
+ "ename": "stripes",
+ "commit": "f4c7beb05435a70293806b729b6f35c2fc2e8ca4",
+ "sha256": "0pwkqqyhg6gkpj8qh84ylsvq6wjykkkmmil4igw7mn80gy15zd09",
+ "fetcher": "gitlab",
+ "repo": "stepnem/stripes-el",
+ "unstable": {
+ "version": [
+ 20200330,
+ 2022
+ ],
+ "commit": "7b1d501f44b697a0514ef6759fd126d65867f18d",
+ "sha256": "0mx7l751jiijrjnbn3y6awasjy2c7k4ndgjq5c455vzxrlcbwr25"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 1,
+ 1
+ ],
+ "commit": "7b1d501f44b697a0514ef6759fd126d65867f18d",
+ "sha256": "0mx7l751jiijrjnbn3y6awasjy2c7k4ndgjq5c455vzxrlcbwr25"
+ }
+ },
+ {
+ "ename": "stumpwm-mode",
+ "commit": "caaa21f235c4864f6008fb454d0a970a2fd22a86",
+ "sha256": "11yk7xmmccgv7hin5qd1ibcsm1za01xfwsxa25q7vqwk6svnb0sf",
+ "fetcher": "git",
+ "url": "https://git.savannah.nongnu.org/git/stumpwm.git",
+ "unstable": {
+ "version": [
+ 20140131,
+ 216
+ ],
+ "commit": "61a7cf27e49e0779a53c018b2342f5f1c5cc70b4",
+ "sha256": "03is0690p7aw77c30j4r2b5gi5rv5f70wvpixy5qhcchlaxhaw82"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 8
+ ],
+ "commit": "4d0603e52b5bab993b3be63e3654c74f641e677d",
+ "sha256": "0pn3xjz433b0djcys25a8fv775yqmj3qgg0hyghgxjpzsh6k2a4f"
+ }
+ },
+ {
+ "ename": "stupid-indent-mode",
+ "commit": "68cd648bde8028a39849f7beae8deae78bfb877b",
+ "sha256": "12y8qxxs04qzy09m734qg0857g4612qdswx2bh9jk7dp886fpd7p",
+ "fetcher": "git",
+ "url": "https://gist.github.com/5487564.git",
+ "unstable": {
+ "version": [
+ 20170525,
+ 1117
+ ],
+ "commit": "3295e7de5e2cfddc3bf0e462e852bf58972f5d70",
+ "sha256": "00js2jkzvmvh1gbraijknv48y86pqyk9zv264a5n3l4sw5q6kcvk"
+ }
+ },
+ {
+ "ename": "stylefmt",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "14ap3xklmxyqz61p7z3fwgxbwjqrcbijcmvsmhfbm102x1spgbhz",
+ "fetcher": "github",
+ "repo": "KeenS/stylefmt.el",
+ "unstable": {
+ "version": [
+ 20161025,
+ 824
+ ],
+ "commit": "7a38f26bf8ff947215f34f0a064c7ca80575ccbc",
+ "sha256": "0cx9llbmfjhaxb60mj483ihl78xb30ldvhd1hdldmc9d473xbvmz"
+ }
+ },
+ {
+ "ename": "stylus-mode",
+ "commit": "877b5a3e612e1b1d6d51e60c66b0b79f231abdb2",
+ "sha256": "152k74q6qn2xa38v2zyd5y7ya5n26nvai5v7z5fmq7jrcndp27r5",
+ "fetcher": "github",
+ "repo": "brianc/jade-mode",
+ "unstable": {
+ "version": [
+ 20150313,
+ 1512
+ ],
+ "deps": [
+ "sws-mode"
+ ],
+ "commit": "4dbde92542fc7ad61df38776980905a4721d642e",
+ "sha256": "0p6pfxbl98kkwa3lgx82h967w4p0wbd9s96gvs72d74ryan07ij1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "sws-mode"
+ ],
+ "commit": "4e7a20db492719062f40b225ed730ed50be5db56",
+ "sha256": "0krbd1qa2408a97pqhl7fv0x8x1n2l3qq33zzj4w4vv0c55jk43n"
+ }
+ },
+ {
+ "ename": "subatomic-theme",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0qh311h8vc3c7f2dv6gqq3kw1pxv6a7h4xbyqlas5ybkk2vzq12r",
+ "fetcher": "github",
+ "repo": "cryon/subatomic-theme",
+ "unstable": {
+ "version": [
+ 20190607,
+ 1022
+ ],
+ "commit": "a13cdac97a6d0488b13bc36d4c2f4d4102ff6a31",
+ "sha256": "1l7yvplvjfcv1d1ij0inijm47nx42d3r00w43xjqnyhk9rrvazh1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 8,
+ 1
+ ],
+ "commit": "6a4086af748b1ecb27f6ba2aa2614988db16d594",
+ "sha256": "1j63rzxnrzzqizh7fpd99dcgsy5hd7w4d2lpwl5armmixlycl5m8"
+ }
+ },
+ {
+ "ename": "subatomic256-theme",
+ "commit": "06a6bdf12623847600d87a624c224b233fdf3536",
+ "sha256": "1whjlkpkkirpnvvjryhlpzwphr1syz5zfyg4pb66i0db03hxwwcy",
+ "fetcher": "github",
+ "repo": "d11wtq/subatomic256",
+ "unstable": {
+ "version": [
+ 20130621,
+ 210
+ ],
+ "commit": "326177d6f99cd2b1d30df695e67ee3bc441cd96f",
+ "sha256": "1w7mimyqc25phlww20l49wlafnxp6c7dwibvphg3vwl61g0llpq8"
+ }
+ },
+ {
+ "ename": "subemacs",
+ "commit": "18714a6b5ca4dcc51fa509fee1dc9afb0595c707",
+ "sha256": "0sqh80jhh3v37l5af7w6k9lqvj39bd91pn6a9rwdlfk389hp90zm",
+ "fetcher": "github",
+ "repo": "kbauer/subemacs",
+ "unstable": {
+ "version": [
+ 20170401,
+ 934
+ ],
+ "commit": "18d53939fec8968c08dfc5aff7240ca07efb1aac",
+ "sha256": "1k2lg7cxr98rq77sk0ypzlr3cyl20ld20jz8y21fdaa6ci8kdvdb"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "24f0896f1995a3ea42a58b0452d250dcc6802944",
+ "sha256": "189547d0g9ax0nr221bkdchlfcj60dsy8lgbbrvq3n3xrmlvl362"
+ }
+ },
+ {
+ "ename": "sublime-themes",
+ "commit": "648d250c7d341b31581c839f77c1084ac29d3163",
+ "sha256": "1nahcfcy831c7w3c69i2na0r8jsdgprffgfdvh4c41cnk4rkgdqj",
+ "fetcher": "github",
+ "repo": "owainlewis/emacs-color-themes",
+ "unstable": {
+ "version": [
+ 20170606,
+ 1844
+ ],
+ "commit": "60ee40af82eb55b79d5ed4026f1911326311603f",
+ "sha256": "17fcqvavgyl9cmv1hwcid2bw513vhawlsmac1w2adiz567594i6h"
+ }
+ },
+ {
+ "ename": "sublimity",
+ "commit": "c1e78cd1e5366a9b6d04237e9bf6a7e73424be52",
+ "sha256": "1xwggaalad65cxcfvmy30f141bxhpzc3fgvwziwbzi8fygbdv4nw",
+ "fetcher": "github",
+ "repo": "zk-phi/sublimity",
+ "unstable": {
+ "version": [
+ 20200816,
+ 854
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "133ac118eaa51cce81978ed78abba6aa8d427577",
+ "sha256": "0sqjdrzsp7pf1wj14vcr322n8fydjzzii4msdvlhj0xr3xhl0469"
+ },
+ "stable": {
+ "version": [
+ 20160629
+ ],
+ "commit": "ee9c9fbb92b8fc0c191e5e8640477e251b602bf9",
+ "sha256": "1kpq7kpmhgq3vjd62rr4qsc824qcyjxm50m49r7invgnmgd78h4x"
+ }
+ },
+ {
+ "ename": "sudden-death",
+ "commit": "3f20f389a2d7ddf49ca64d945b41584a7c120faf",
+ "sha256": "1wrhb3d27j07i64hvjggyajm752w4mhrhq09lfvyhz6ykp1ly3fh",
+ "fetcher": "github",
+ "repo": "yewton/sudden-death.el",
+ "unstable": {
+ "version": [
+ 20180217,
+ 23
+ ],
+ "commit": "791a63d3f4df192e71f4232a9a4c5588f4b43dfb",
+ "sha256": "0z3adwd6ymapkdniny3ax2i3wzxp11g6in4bghbcr9bfdxcsf7ps"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "commit": "791a63d3f4df192e71f4232a9a4c5588f4b43dfb",
+ "sha256": "0z3adwd6ymapkdniny3ax2i3wzxp11g6in4bghbcr9bfdxcsf7ps"
+ }
+ },
+ {
+ "ename": "sudo-edit",
+ "commit": "3b08d4bbdb23b988db5ed7cb5a2a925b7c2e242e",
+ "sha256": "10vz7q8m0l2dyhiy9r9nj17qlwyv032glshzljzhm1n20w8y1fq4",
+ "fetcher": "github",
+ "repo": "nflath/sudo-edit",
+ "unstable": {
+ "version": [
+ 20200625,
+ 142
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0e2c32b5e5242d30f8780cbe8e1b1649476cac4d",
+ "sha256": "1z26i4hzi2mksl4nr8szzlnrnyv96fg7jjddbm5dp5dlmh2pndk1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bcb12aaa0da0c56d851cfa2f1b3ea4afdd2a755b",
+ "sha256": "1k6sx8k304dw9dlidnxcln9ip9cj3b6i196z98g9n0kcd1js9f99"
+ }
+ },
+ {
+ "ename": "sudo-ext",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "1zlnz68kzdrc7p90qmzs7fsr9ry4rl259xpyv55jh5icry290z4x",
+ "fetcher": "github",
+ "repo": "rubikitch/sudo-ext",
+ "unstable": {
+ "version": [
+ 20170126,
+ 1214
+ ],
+ "commit": "9d4580f304121ce7b8104bd4bd3b64e4dfa3c9b3",
+ "sha256": "1m9srlxavqg6yxmz6rz61saz1lj5hh029314dic8kh6g3bqdnh2w"
+ }
+ },
+ {
+ "ename": "sudoku",
+ "commit": "f9861d5d4cf18466b17ac8e53f3874df5312d3f3",
+ "sha256": "14nbidjnsm9lwknmqgfr721b484z5156j723kr1wbfv70j8h9kys",
+ "fetcher": "github",
+ "repo": "zevlg/sudoku.el",
+ "unstable": {
+ "version": [
+ 20191015,
+ 1315
+ ],
+ "commit": "b1924fd244a5fa284de9d67b66fbd69164b37318",
+ "sha256": "19i3rrz4qnc9i845j0bbmps69372rry7gadcyj06gvq2hf9dy3nh"
+ }
+ },
+ {
+ "ename": "suggest",
+ "commit": "b9fd27e812549587dc2ec26bb58974177ff263ff",
+ "sha256": "12vvakqqzmmqq5yynpd4wf4lnb0yvcnz065kni996sy7rv7rh83q",
+ "fetcher": "github",
+ "repo": "Wilfred/suggest.el",
+ "unstable": {
+ "version": [
+ 20180916,
+ 1859
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "loop",
+ "s",
+ "spinner"
+ ],
+ "commit": "83a2679baf661ee834e9e75921fd546243a6d919",
+ "sha256": "11jqglwqi5q14rk44z02dffk6cqmhjgdda0y63095g8n1ll71jsb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7
+ ],
+ "deps": [
+ "dash",
+ "f",
+ "loop",
+ "s",
+ "spinner"
+ ],
+ "commit": "31ab6c956d17176affbbe9ca53c416920180ddbd",
+ "sha256": "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"
+ }
+ },
+ {
+ "ename": "suggestion-box",
+ "commit": "5b59be8dc0a1850d3e245957fd170e1d01f4e284",
+ "sha256": "17yai0fh7rfjbp3wz5x5r4src8lxn6qrhf7brp2gjr6cgdv40iac",
+ "fetcher": "github",
+ "repo": "yuutayamada/suggestion-box-el",
+ "unstable": {
+ "version": [
+ 20170830,
+ 807
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "50af0776c8caf3c79c4d37fd51cbf304ea34b68e",
+ "sha256": "01lx20kzay5504xcq6m6yhvayyd7wpzaa1r6i67xqjnr25lqyajw"
+ }
+ },
+ {
+ "ename": "sunburn-theme",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "07nz7vr0yzf5746d8khlzl6ghaj44yfp0ar9ylbpdpfj7rdx17sa",
+ "fetcher": "github",
+ "repo": "mvarela/Sunburn-Theme",
+ "unstable": {
+ "version": [
+ 20180602,
+ 1929
+ ],
+ "commit": "ddb01b6f1f4f823398f7f8e08900c2b4a7811d3b",
+ "sha256": "18qfcrr4xlwwhhaq7dwh31bbl84a53akgrw2c6lynnyyi4vk2wpq"
+ }
+ },
+ {
+ "ename": "sunny-day-theme",
+ "commit": "11642803ccc5c8dde839508c91dea2728b2b78de",
+ "sha256": "1wsfnmmbzzyggzip66vr38yyzy27blxp91wx97bafj7jpg5cyhzw",
+ "fetcher": "github",
+ "repo": "mswift42/sunny-day-theme",
+ "unstable": {
+ "version": [
+ 20140413,
+ 2125
+ ],
+ "commit": "420e0a6eb33fcc9b75c2c9e88ab60a975d782a00",
+ "sha256": "0mhyhkjjwszwl5wzkys9pgvgx9sps9r46k1s1hpzzf4s3vi015mc"
+ }
+ },
+ {
+ "ename": "sunshine",
+ "commit": "4a0ff9a4ef4bbe8de722a4f77f4a56a851497ff1",
+ "sha256": "1lxiqw7k8cpq0v6p5whgxgzqrbx3sd9174r0d4qlkrpn6rcp44vv",
+ "fetcher": "github",
+ "repo": "aaronbieber/sunshine.el",
+ "unstable": {
+ "version": [
+ 20200306,
+ 1711
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "88256223539edcfe57017778a997a474c9c022f6",
+ "sha256": "01kgf0w9lqprkgi0ag5zmgd9s07yj51vdfj7jbz8sws60996x8xx"
+ }
+ },
+ {
+ "ename": "suomalainen-kalenteri",
+ "commit": "181adf1b16253481674663fd28b195172231b7da",
+ "sha256": "1wzijbgcr3jc47ccr7nrdkqha16s6gw0xiccnmdczi48cvnvvlkh",
+ "fetcher": "github",
+ "repo": "tlikonen/suomalainen-kalenteri",
+ "unstable": {
+ "version": [
+ 20190310,
+ 910
+ ],
+ "commit": "c8c03fe9bae57d4e15c287aef4f98911a3529240",
+ "sha256": "1n4nz309rr1cpx1c5aighakpcmrbzzg2xprh5hi4kln0rngggycp"
+ },
+ "stable": {
+ "version": [
+ 2017,
+ 8,
+ 1
+ ],
+ "commit": "c702e33cb6e13cb28bd761844e95be112a3c04f3",
+ "sha256": "13avc3ba6vhysmhrcxfpkamggfpal479gn7k9n7509dpwp06dv8h"
+ }
+ },
+ {
+ "ename": "super-save",
+ "commit": "9730b65787b26d3909952cf246a01bd349e5fbab",
+ "sha256": "0ikfw7n2rvm3xcgnj1si92ly8w75x26071ki551ims7a8sawh52p",
+ "fetcher": "github",
+ "repo": "bbatsov/super-save",
+ "unstable": {
+ "version": [
+ 20190806,
+ 915
+ ],
+ "commit": "279aa8e0103d6bd367619b7f57f9d60d7a3c5cfd",
+ "sha256": "14x3w6czyrw48bw7cfkdyv51jksf67nznv9wyp0hb4hrjdxaq1aq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "2a905b8bdfc93bee16e2d62a61c6211bbe009331",
+ "sha256": "066fyg4r4pksyandpd7s53hagpvm2rw90q5ks4jlpgy7x00hw09l"
+ }
+ },
+ {
+ "ename": "supergenpass",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0ldy6j6l6rf72w0hl195rdnrabml2a5k91200s186k0r5aja4b95",
+ "fetcher": "github",
+ "repo": "ober/sgpass",
+ "unstable": {
+ "version": [
+ 20130329,
+ 548
+ ],
+ "commit": "549072ef7b5b82913cadd4758e8a0a9926f0a04a",
+ "sha256": "0m02snzka243adhwwgriml133n4312lhdia3wdqjcq8y2mlp3331"
+ }
+ },
+ {
+ "ename": "suscolors-theme",
+ "commit": "6f26b8281f9bd05e3c8f2ef21838275711e622c9",
+ "sha256": "0j8yfl3yglp9kfdpbmfj3jw7npc6nlqw48cchiczh4biry204lbw",
+ "fetcher": "github",
+ "repo": "TheSuspiciousWombat/SusColors-emacs",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1009
+ ],
+ "commit": "b4a979ee23e26e255b9a63525b0a28e810fab9ae",
+ "sha256": "0ddbksza42kywn7j78kidg6f1la9qajk3g6baf4758dibclkr5qd"
+ }
+ },
+ {
+ "ename": "sv-kalender-namnsdagar",
+ "commit": "f9327ea6ae9f4eaeeb6c0fb40bad77e403b4f55c",
+ "sha256": "1l89y6bjkw8px89qaw1ldfp6qmbm5nq09i6pr32n0k553670v4sr",
+ "fetcher": "github",
+ "repo": "matsl/sv-kalender-namnsdagar",
+ "unstable": {
+ "version": [
+ 20190421,
+ 1521
+ ],
+ "commit": "fff970f49c77abfc69e37817f25a939818420971",
+ "sha256": "0c6xjw1wh94llwh8qkf3bfzx05ksk0lsdrqdfqn3qkjnf3bkbbh2"
+ }
+ },
+ {
+ "ename": "svelte-mode",
+ "commit": "fc6a992830520750d2e4a9596668ba3d0eefaa11",
+ "sha256": "0mc9bc8p3a6lkqag72f48xprlrnj077h9mnglq4znxrslm91jr0h",
+ "fetcher": "github",
+ "repo": "leafOfTree/svelte-mode",
+ "unstable": {
+ "version": [
+ 20200816,
+ 354
+ ],
+ "commit": "5db0451429d4bf68f5dd131837faa6eb601a631d",
+ "sha256": "1ffr9yzxr1z8xmvl0lf7nfp9gjp79zps556d3kni45dbnkdi0z1h"
+ }
+ },
+ {
+ "ename": "svg-mode-line-themes",
+ "commit": "2ca54d78b5e87c3bb582b178e4892af2bf447d1e",
+ "sha256": "12lnszcb9bl32n9wir7vf8xiyyv7njw4xg21aj9x4dasmidyx506",
+ "fetcher": "github",
+ "repo": "sabof/svg-mode-line-themes",
+ "unstable": {
+ "version": [
+ 20150425,
+ 2006
+ ],
+ "deps": [
+ "xmlgen"
+ ],
+ "commit": "80a0e01839cafbd66899202e7764c33231974259",
+ "sha256": "14h40s0arc2i898r9yysn256z6l8jkrnmqvrdg7p7658c0klz5ic"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "xmlgen"
+ ],
+ "commit": "80a0e01839cafbd66899202e7764c33231974259",
+ "sha256": "14h40s0arc2i898r9yysn256z6l8jkrnmqvrdg7p7658c0klz5ic"
+ }
+ },
+ {
+ "ename": "svnwrapper",
+ "commit": "cb43431d7a7276cdf1ea741b2b218bc46c2722f9",
+ "sha256": "06nb7dql7fbaa9khhpxdl8jj6zmypi24bak52sfsa0js77v51pf2",
+ "fetcher": "github",
+ "repo": "Lindydancer/svnwrapper",
+ "unstable": {
+ "version": [
+ 20180414,
+ 1843
+ ],
+ "deps": [
+ "e2ansi"
+ ],
+ "commit": "de5069f5784e5d9e87a0af0159ba5f28a3716583",
+ "sha256": "08sg55cmjbk06622mzhv74f5b5dvbay7gb729zsckczxwrp1cayp"
+ }
+ },
+ {
+ "ename": "swagger-to-org",
+ "commit": "4d5a7f017593e73ea48c0e535ecf3809536bcde5",
+ "sha256": "1m40f5njxcxmc2snaz2q43b4scwgp51y761kq6klixjvafi0pv86",
+ "fetcher": "github",
+ "repo": "ahungry/swagger-to-org",
+ "unstable": {
+ "version": [
+ 20160611,
+ 56
+ ],
+ "deps": [
+ "cl-lib",
+ "json"
+ ],
+ "commit": "181357c71ea24bede263f5706d8781ad65e16877",
+ "sha256": "0x1mxxvlhhs34j869cy68gy5pgmvpfliyl9vlrlwm3z8apbip9gp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "json"
+ ],
+ "commit": "181357c71ea24bede263f5706d8781ad65e16877",
+ "sha256": "0x1mxxvlhhs34j869cy68gy5pgmvpfliyl9vlrlwm3z8apbip9gp"
+ }
+ },
+ {
+ "ename": "swap-buffers",
+ "commit": "2a0172aaebdf4e0b6f6dd3093482e3cf3eb796d4",
+ "sha256": "0ih5dhnqy3c9nlfz9m2zwy4q4jaam09ykbdqhsxx2hnwjk7p35bw",
+ "fetcher": "github",
+ "repo": "ekazakov/swap-buffers",
+ "unstable": {
+ "version": [
+ 20150506,
+ 2139
+ ],
+ "commit": "46ab31359b70d935add6c6e9533443116dc51103",
+ "sha256": "1kn70570r6x0h1xfs1vr8as27pjfanyhml140yms60gdjb4ssf9r"
+ }
+ },
+ {
+ "ename": "swap-regions",
+ "commit": "6805c7710618ed1178ffd3488295d4d6b33e8ebe",
+ "sha256": "0gl4vr7wjh5gjskrwbqypaqyfigpgh379bm4l2gvbsbhahsmbj67",
+ "fetcher": "github",
+ "repo": "xuchunyang/swap-regions.el",
+ "unstable": {
+ "version": [
+ 20180915,
+ 1346
+ ],
+ "commit": "f4fd9880cf690e003fcde88dcf2b46adbbbb03cd",
+ "sha256": "1d45yanqk4w0idqwkrwig1dl22wr820k11r3gynv7an643k4wngp"
+ }
+ },
+ {
+ "ename": "sweet-theme",
+ "commit": "a149448c38504bdf6f782a10cb1440da9102990f",
+ "sha256": "1ca56disxyr30anvpqahh33s062y35w003yxi1rhdrknka2cnl5q",
+ "fetcher": "github",
+ "repo": "2bruh4me/sweet-theme",
+ "unstable": {
+ "version": [
+ 20200708,
+ 1202
+ ],
+ "commit": "78f741806ecebe01224bf54d09ad80e306652508",
+ "sha256": "1yqz15l6xa1vkll4gaa3jpr30vq3yjgbgadjilsmz5p8mblawhyx"
+ }
+ },
+ {
+ "ename": "sweetgreen",
+ "commit": "63812707948e6dcc00e00ebc3c423469593e80fd",
+ "sha256": "1v75wk0gq5fkz8i1r8pl4gqnxbv1d80isyn48w2hxj2fmdn2xhpy",
+ "fetcher": "github",
+ "repo": "CestDiego/sweetgreen.el",
+ "unstable": {
+ "version": [
+ 20180605,
+ 335
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "helm",
+ "request"
+ ],
+ "commit": "e933fe466b5ef0e976967e203f88bd7a012469d1",
+ "sha256": "1pd13v3xma78xa0smxql4i2iax72kxqh7iwp3k16jwzrklmsdiyr"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "helm",
+ "request"
+ ],
+ "commit": "e40d2821ff941695e50a9b003a8c96d32c19bfdc",
+ "sha256": "1gw09x5d4yqlmknjsrhgygp9bch315cnmyqp3679i3hza0l7fds6"
+ }
+ },
+ {
+ "ename": "swift-helpful",
+ "commit": "052fb5b561bee1dd71c2c227c75c4f6db4261f68",
+ "sha256": "0rrhi14asrswzg4pn38vyqrc0bh83bs4jfvdj3sbd7jd1zizgj09",
+ "fetcher": "github",
+ "repo": "danielmartin/swift-helpful",
+ "unstable": {
+ "version": [
+ 20200701,
+ 2005
+ ],
+ "deps": [
+ "dash",
+ "lsp-mode",
+ "swift-mode"
+ ],
+ "commit": "2c8c9cda5ed9d9e96bb3a39c6d0905a15dd9e2e6",
+ "sha256": "1kq4jxhig6bg4cifggy06a6ydksg68nr2gbnxn589znacxbs0iy9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "lsp-mode",
+ "swift-mode"
+ ],
+ "commit": "661e6fe419948419da4abf916b193b331b80a3be",
+ "sha256": "08w9h12y54aj2q6k48p9fglacppb5mlqh18h43n45hd7rcph3j93"
+ }
+ },
+ {
+ "ename": "swift-mode",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "103nix9k2agxgfpwyhsracixl4xvzqlgidd25r1fpj679hr42bg8",
+ "fetcher": "github",
+ "repo": "swift-emacs/swift-mode",
+ "unstable": {
+ "version": [
+ 20200606,
+ 730
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "d266fbd300a1bf1592e1462ead4be093b8b68f98",
+ "sha256": "0l3i74acv1msmbfkn99mz9g73kd7j1a7j0b082vcxw6kr69476yc"
+ },
+ "stable": {
+ "version": [
+ 8,
+ 0,
+ 2
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "2ab9ea1784a12a482ed9e3fb284b7a7658f40fff",
+ "sha256": "0wml7f8k3gqlxm0yg744271mqh087prlsfmbiv7fvkrcs55q0592"
+ }
+ },
+ {
+ "ename": "swift-playground-mode",
+ "commit": "9a516f729d6d85f26ec0309db702a16d0ba46c1c",
+ "sha256": "1nqr0ccll7nznh3ahvb699slz5ikjhci3m09j2qm5mxm2pii07kg",
+ "fetcher": "gitlab",
+ "repo": "michael.sanders/swift-playground-mode",
+ "unstable": {
+ "version": [
+ 20190730,
+ 1707
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "111cde906508824ee11d774b908df867142a8aec",
+ "sha256": "1fr3fkxpkd5dk35fx656cx3h62zi74mnlvixb0vqpkn1qm2iwm55"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "111cde906508824ee11d774b908df867142a8aec",
+ "sha256": "1fr3fkxpkd5dk35fx656cx3h62zi74mnlvixb0vqpkn1qm2iwm55"
+ }
+ },
+ {
+ "ename": "swift3-mode",
+ "commit": "0ca9071199230d3c4c1b2e3a501736df87095fd3",
+ "sha256": "14vm05p8ix09v73dkmf03i56yib8yk6h2r1zc9m4ym80fki4f520",
+ "fetcher": "github",
+ "repo": "taku0/swift3-mode",
+ "unstable": {
+ "version": [
+ 20160918,
+ 1250
+ ],
+ "commit": "4e51265c6905e17d8910e35b0b37cf51e20ecdfe",
+ "sha256": "0wqwjzr3z9gzsjiyyr0ds4c5zvgifb9hbjadb7vkbbpzdy6qd9s1"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 1
+ ],
+ "commit": "ea34d46bf9a4293e75ffdac9500d34989316d9e9",
+ "sha256": "1hwc3fxv87hmw0a0mgl8khfzf1p7yp2izkc02z8f1vbkaibmmawp"
+ }
+ },
+ {
+ "ename": "swiper",
+ "commit": "e64cad81615ef3ec34fab1f438b0c55134833c97",
+ "sha256": "0qaia5pgsjsmrfmcdj72jmj39zq82wg4i5l2mb2z6jlf1jpbk6y9",
+ "fetcher": "github",
+ "repo": "abo-abo/swiper",
+ "unstable": {
+ "version": [
+ 20200503,
+ 1102
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+ "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 13,
+ 0
+ ],
+ "deps": [
+ "ivy"
+ ],
+ "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
+ "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+ }
+ },
+ {
+ "ename": "swiper-helm",
+ "commit": "674c709490e13267e09417e08953ff76bfbaddb7",
+ "sha256": "011ln6vny7z5vw67cpzldxf5n6sk2hjdkllyf7v6sf4m62ws93ph",
+ "fetcher": "github",
+ "repo": "abo-abo/swiper-helm",
+ "unstable": {
+ "version": [
+ 20180131,
+ 1744
+ ],
+ "deps": [
+ "helm",
+ "swiper"
+ ],
+ "commit": "93fb6db87bc6a5967898b5fd3286954cc72a0008",
+ "sha256": "05n4h20lfyg1kis5rig72ajbz680ml5fmsy6l1w4g9jx2xybpll2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "helm",
+ "swiper"
+ ],
+ "commit": "93fb6db87bc6a5967898b5fd3286954cc72a0008",
+ "sha256": "05n4h20lfyg1kis5rig72ajbz680ml5fmsy6l1w4g9jx2xybpll2"
+ }
+ },
+ {
+ "ename": "swiss-holidays",
+ "commit": "2260acd32c74352c5b1c5622c527676a81223640",
+ "sha256": "1d91fnvm2sikfmy0s1gffzgn19088ggkkf992zbms7gy7njbgysf",
+ "fetcher": "github",
+ "repo": "egli/swiss-holidays",
+ "unstable": {
+ "version": [
+ 20200526,
+ 822
+ ],
+ "commit": "0995c9685033a09466f5b2dceb7316362bde997a",
+ "sha256": "098s55jsmr6na5qf8s5a3iws6zb47rbq7mk4garbxar9vyfi3bw7"
+ }
+ },
+ {
+ "ename": "switch-buffer-functions",
+ "commit": "d37ebd28f4a2f770958bd9a2669cce86cc76cbe7",
+ "sha256": "1b93p8q07zncqq3nw829gddc615rwaan1ds5vgfhdb1l7bh9f37l",
+ "fetcher": "github",
+ "repo": "10sr/switch-buffer-functions-el",
+ "unstable": {
+ "version": [
+ 20200127,
+ 409
+ ],
+ "commit": "95a846baa93bac4c3b3c028b9d53507f1042b23a",
+ "sha256": "0ykdggzgdlb3dcg1qm388290h612kf5l224kwiv5jvvp8wqzb47l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "e1bccfff2d123b6218efab16c486215cedb9a108",
+ "sha256": "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"
+ }
+ },
+ {
+ "ename": "switch-window",
+ "commit": "7d2204e3b53ade1e400e143ac219f3c7ab63a1e9",
+ "sha256": "02f0zjvlzms66w1ryhk1cbr4rqwklzvgcjfiicj0lcnqqx61m2k2",
+ "fetcher": "github",
+ "repo": "dimitri/switch-window",
+ "unstable": {
+ "version": [
+ 20200502,
+ 511
+ ],
+ "commit": "8710f6304d843365fb59b6efe7e1f729d14e557c",
+ "sha256": "1v8qx519dwhpwg9ba08nl3kp329n3p1dbjj7iiiwmn22580nrkqh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 2
+ ],
+ "commit": "204f9fc1a39868a2d16ab9370a142c8c9c7a0943",
+ "sha256": "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"
+ }
+ },
+ {
+ "ename": "swoop",
+ "commit": "7a4e84530b4607a277fc3b678fe7b34b1c5e3b4f",
+ "sha256": "1hbldd9cqh3vfa3h7idf0rjjnib7ih44l1p4hzc8p36q5fqbh0xp",
+ "fetcher": "github",
+ "repo": "emacsorphanage/swoop",
+ "unstable": {
+ "version": [
+ 20200618,
+ 905
+ ],
+ "deps": [
+ "async",
+ "ht",
+ "pcre2el"
+ ],
+ "commit": "0c737a961970a2e61735545320367bafaa8dfc49",
+ "sha256": "1kjzc7543b7l0rcq9iiwf8sq39akzw5spsv51yl4wmwgnmyj2n1c"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "async",
+ "ht",
+ "pcre2el"
+ ],
+ "commit": "de2d29eb45edab802cf8b275aa1c25a24050122e",
+ "sha256": "1caq17f7s4pdy6jzyxfh5zwqmwkwkbfpgcnj5f09qgmwanjygjya"
+ }
+ },
+ {
+ "ename": "sws-mode",
+ "commit": "877b5a3e612e1b1d6d51e60c66b0b79f231abdb2",
+ "sha256": "0b12dsad0piih1qygjj0n7rni0pl8cizbzwqm9h1dr8imy53ak4i",
+ "fetcher": "github",
+ "repo": "brianc/jade-mode",
+ "unstable": {
+ "version": [
+ 20150317,
+ 1945
+ ],
+ "commit": "4dbde92542fc7ad61df38776980905a4721d642e",
+ "sha256": "0p6pfxbl98kkwa3lgx82h967w4p0wbd9s96gvs72d74ryan07ij1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "4e7a20db492719062f40b225ed730ed50be5db56",
+ "sha256": "0krbd1qa2408a97pqhl7fv0x8x1n2l3qq33zzj4w4vv0c55jk43n"
+ }
+ },
+ {
+ "ename": "sx",
+ "commit": "f16958a09820233fbe2abe403561fd9a012d0046",
+ "sha256": "1ml1rkhhk3hkd16ij2zwng591rxs2yppsfq9gwd4ppk02if4v517",
+ "fetcher": "github",
+ "repo": "vermiculus/sx.el",
+ "unstable": {
+ "version": [
+ 20191229,
+ 1746
+ ],
+ "deps": [
+ "cl-lib",
+ "json",
+ "let-alist",
+ "markdown-mode"
+ ],
+ "commit": "e9d1093c97507a6d7b4f4710ef65200dae725e5f",
+ "sha256": "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "json",
+ "let-alist",
+ "markdown-mode"
+ ],
+ "commit": "4892f45746fb217d059f4fa074a237c5bac7dd6c",
+ "sha256": "02f63k8rzb3bcch6vj6w5c5ncccqg83siqnc8hyi0lhy1bfx240p"
+ }
+ },
+ {
+ "ename": "sxiv",
+ "commit": "1b3da730053c1f45e67fefb2e9bfce222cc38628",
+ "sha256": "0jj0bzw365227anvg9zqy78zdfczfvqlac47kjdyziqmj958yhh8",
+ "fetcher": "gitlab",
+ "repo": "contrapunctus/sxiv.el",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1431
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "9eb6a121bfdf64433cd8ac7985d2c82b590b5abb",
+ "sha256": "0fjzzynlmqxxrr4520rh7ds0gip6l8cbmrgp7ghrgm07830arpcj"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 3
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "9eb6a121bfdf64433cd8ac7985d2c82b590b5abb",
+ "sha256": "0fjzzynlmqxxrr4520rh7ds0gip6l8cbmrgp7ghrgm07830arpcj"
+ }
+ },
+ {
+ "ename": "symbol-navigation-hydra",
+ "commit": "ed20cf413c32e924506a4c4aa7129d1185b63d46",
+ "sha256": "1aw8ssjqsqnihri3qp8c3q6dv52mc3rnq2mgyncrbghq1yajh8ml",
+ "fetcher": "github",
+ "repo": "bgwines/symbol-navigation-hydra",
+ "unstable": {
+ "version": [
+ 20200811,
+ 655
+ ],
+ "deps": [
+ "auto-highlight-symbol",
+ "hydra",
+ "multiple-cursors"
+ ],
+ "commit": "20a63121695452e39f1a3c9bfea1e313359c5f1e",
+ "sha256": "08fs5wr9p2rbwlydx2xmwqmvzr6q05fg4dji6wdf40dn3pb5w78g"
+ }
+ },
+ {
+ "ename": "symbol-overlay",
+ "commit": "c2a468ebe1a3e5a35ef40c59a62befbf8960bd7b",
+ "sha256": "1al60x2mnjsv99jd10v5sd56zz185wsddiq7128phf1l35bkibis",
+ "fetcher": "github",
+ "repo": "wolray/symbol-overlay",
+ "unstable": {
+ "version": [
+ 20200809,
+ 2023
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "f2734ce633c2b498d3ea70042a3ae9f93f9f046a",
+ "sha256": "1n1a2jldshfyyyxc3msr16fzczjlpglzdy7ab4qpyyz6ghklaqys"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 1
+ ],
+ "commit": "d1464042783e252f5cac1fcac82fee16fc3534db",
+ "sha256": "0d5ir4f3xmz3kr0w93zw45ha4hzz4rvldiza3q9fmqm7m1w2c995"
+ }
+ },
+ {
+ "ename": "symbolword-mode",
+ "commit": "be2018e0206c3f39c1b67e83000b030d70a72ceb",
+ "sha256": "1fs1irnmlbrn76b4gdsy0v65nz8av85iqm0b7g9nm2rm8azcr050",
+ "fetcher": "github",
+ "repo": "ncaq/symbolword-mode",
+ "unstable": {
+ "version": [
+ 20180401,
+ 1427
+ ],
+ "deps": [
+ "f"
+ ],
+ "commit": "cd344b6c2cb6a8fcf061af2c85441644a4e7a006",
+ "sha256": "193lq58mhkq0rrinkaxiyhkk60qf7q0gx03na2968zcrahrd8w75"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "273dece5b04f7abc4c35048b2f64f04b33774b87",
+ "sha256": "0gpm0zy1kwqxkakvfdgh1lylp99msyamwvi19c53g9jl01m9avyd"
+ }
+ },
+ {
+ "ename": "symex",
+ "commit": "bbe4ff01aa8c06093cd0e4ad0cce253c3fb52816",
+ "sha256": "0nx03kl4bwdbidhvb7zba9gr6pc2gplh6zbnlxjb3zsvdm4injh1",
+ "fetcher": "github",
+ "repo": "countvajhula/symex.el",
+ "unstable": {
+ "version": [
+ 20200526,
+ 211
+ ],
+ "deps": [
+ "cider",
+ "cl-lib",
+ "dash-functional",
+ "evil",
+ "evil-cleverparens",
+ "evil-surround",
+ "geiser",
+ "hydra",
+ "lispy",
+ "paredit",
+ "racket-mode",
+ "slime",
+ "smartparens"
+ ],
+ "commit": "b35e3622601ca5b27bb8e1b7ab301cc6dd674a62",
+ "sha256": "118s8xxas5nmj181p7mf9lsal7jl0pkph3gs1gyr0x6c5y93b1ci"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 0
+ ],
+ "deps": [
+ "cider",
+ "cl-lib",
+ "dash-functional",
+ "evil",
+ "evil-cleverparens",
+ "evil-surround",
+ "geiser",
+ "hydra",
+ "lispy",
+ "paredit",
+ "racket-mode",
+ "slime",
+ "smartparens"
+ ],
+ "commit": "8209d63d88b596e5e4ed66c56085c978f33acda5",
+ "sha256": "0l0pb9d5q84wv4jiappm3wi800dslv9ciq9rla0mrv4xb2lhf3pp"
+ }
+ },
+ {
+ "ename": "symon",
+ "commit": "3f4bbc6b3d7b2e2a9fbe7ff7f1d47cda9c859cc0",
+ "sha256": "11llnvngyc3xz8nd6nj86ism0hhs8p54wkscvs4yycbakbyn61lz",
+ "fetcher": "github",
+ "repo": "zk-phi/symon",
+ "unstable": {
+ "version": [
+ 20170224,
+ 833
+ ],
+ "commit": "8dd8b6df49b03cd7d31b85aedbe9dd08fb922335",
+ "sha256": "1bbblz9qzc84h08010y48mjyciavl6lnxk2m19mwbc6b5y58vwpg"
+ },
+ "stable": {
+ "version": [
+ 20160630
+ ],
+ "commit": "7beeedd70dc37f5904c781fb697c8df056196ee9",
+ "sha256": "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"
+ }
+ },
+ {
+ "ename": "symon-lingr",
+ "commit": "936e9a83ed73d3b6090e5c401076b6cff5d9732d",
+ "sha256": "0kyhmw25cn10b4jv2yx7bvp8zkwcswiidpk4amyaisw25820gkv1",
+ "fetcher": "github",
+ "repo": "zk-phi/symon-lingr",
+ "unstable": {
+ "version": [
+ 20150719,
+ 1342
+ ],
+ "deps": [
+ "cl-lib",
+ "symon"
+ ],
+ "commit": "056d1a473e36992ff5881e5ce6fdc331cead975f",
+ "sha256": "030bglxnvrkf1f9grbhd8n11j4c6sxpabpjdr1ryx522v01fvx8j"
+ }
+ },
+ {
+ "ename": "sync-recentf",
+ "commit": "9858ea35f2a3faacab56b6ccba5672956560456b",
+ "sha256": "17aji2vcw6zfd823anzwj8pcgyxamxr87bnni085jvlz0vx6gh9c",
+ "fetcher": "github",
+ "repo": "ffevotte/sync-recentf",
+ "unstable": {
+ "version": [
+ 20160326,
+ 2001
+ ],
+ "commit": "0052561d5c5b5c2684faedc3eead776aec06c3ed",
+ "sha256": "006siydqxqds0qqds0zxn821dk4pw14wyymyp03n594wgqzw7m8q"
+ }
+ },
+ {
+ "ename": "synonymous",
+ "commit": "ecf2c44c63e9f41f1733849bdef0d0c301485580",
+ "sha256": "0vawa9qwvv6z1i7vzhkjdl1l9r1yham48yn5y8w8g1xyhxxp6rs5",
+ "fetcher": "github",
+ "repo": "toroidal-code/synonymous.el",
+ "unstable": {
+ "version": [
+ 20180325,
+ 1817
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "2cb9a674d84fddf3f1b00c9d6b13a853576acb87",
+ "sha256": "1l0skavpj96x5gdrx9l8dqj4mrb7zcilv3jj335ak11p2i4ckcq2"
+ }
+ },
+ {
+ "ename": "synosaurus",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "06a48ajpickf4qr1bc14skfr8khnjjph7c35b7ajfy8jw2zwavpn",
+ "fetcher": "github",
+ "repo": "hpdeifel/synosaurus",
+ "unstable": {
+ "version": [
+ 20191125,
+ 552
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "14d34fc92a77c3a916b4d58400424c44ae99cd81",
+ "sha256": "1z6ij6yydjym1ds2vshnkaakng0qgix4r7kzndh8jwrisvb5vml3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "14d34fc92a77c3a916b4d58400424c44ae99cd81",
+ "sha256": "1z6ij6yydjym1ds2vshnkaakng0qgix4r7kzndh8jwrisvb5vml3"
+ }
+ },
+ {
+ "ename": "synquid",
+ "commit": "6ccd9f265d90a5f6a95942938532f556b223e4da",
+ "sha256": "10kmd9g3qbfnyfl2bdf2s70f5sd3pyzalq18dpgq5ijkwqi019k7",
+ "fetcher": "github",
+ "repo": "cpitclaudel/synquid-emacs",
+ "unstable": {
+ "version": [
+ 20160930,
+ 1550
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "28701ce1a15437202f53ab93a14bcba1de83fd2c",
+ "sha256": "0c0pi5w8xvir9gnbjp80g1c4i3rhid65zwh4i4vkyivkh2s29f6i"
+ }
+ },
+ {
+ "ename": "syntactic-close",
+ "commit": "f2c15c0c8ee37a1de042a974c6daddbfa7f33f1d",
+ "sha256": "19lrzxxyzdj1nrzdgzandjz3b8b4pw7akbv86yf0mdf023d9as1f",
+ "fetcher": "github",
+ "repo": "emacs-berlin/syntactic-close",
+ "unstable": {
+ "version": [
+ 20200408,
+ 1148
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c21ffdf6a2f8c2a83d3efc729852cd2b09fe03a6",
+ "sha256": "1m6y7njkn5vibgnr3pnh6nci75j2ksr93ajp01jwpxxxc0wmipa8"
+ }
+ },
+ {
+ "ename": "syntactic-sugar",
+ "commit": "b32b9b3b3e820e498d7531a1f82da36e5e8f4e74",
+ "sha256": "12b2vpvz5h4wzxrk8jrbgc8v0w6bzzvxcyfs083fi1791qq1rw7r",
+ "fetcher": "github",
+ "repo": "rolandwalker/syntactic-sugar",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "commit": "7ddc4502c831abe1c4ad4c7d1ca628a2c9e13968",
+ "sha256": "0zi11540wwcl93xcgd2yf6b72zv01zkaqbf1jfbksg82k9038m2d"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 4
+ ],
+ "commit": "06d943c6ad9507603bb6ab6d37be2d359d0763a9",
+ "sha256": "1pn69f4w48jdj3wd1myj6qq2mhvygmlzbq2dws2qkjlp3kbwa6da"
+ }
+ },
+ {
+ "ename": "syntax-subword",
+ "commit": "caca0b2bc2aaac563074cbb4ea4296fce749e203",
+ "sha256": "1nfbpckxfy95m7bnj08bnpf8zyxc0dyap5hq1plxl3lxb3c4fvr4",
+ "fetcher": "github",
+ "repo": "jpkotta/syntax-subword",
+ "unstable": {
+ "version": [
+ 20160519,
+ 1905
+ ],
+ "commit": "ad0db0fcb464652a1d3408f525dee9293ce2b70c",
+ "sha256": "1wcgr6scvwwfmhhjbpq3riq0gmp4g08ffbl91fpgp72j8zrc1c6x"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "01b27feac37eb60cf73ff80374004d9e847e637d",
+ "sha256": "12jk28jbkq1pcpgsbknk8xzzghjh2dhwb54kag2hynldn4qgfkrz"
+ }
+ },
+ {
+ "ename": "sysctl",
+ "commit": "72ab5a8c1bc5901477b888a1abf8835a5af7cb41",
+ "sha256": "09h3z6mnsck82m8jhbgllx71wg1kmr5v57354xa2db6nfppp09rj",
+ "fetcher": "github",
+ "repo": "dantecatalfamo/sysctl.el",
+ "unstable": {
+ "version": [
+ 20200615,
+ 1824
+ ],
+ "commit": "d8c2e18de1d7a3b2999a4d5054c0bbf30cb10fed",
+ "sha256": "0jvw5r4z9lq36yv58slpc8fw9ljzrppdsg9j7cs34m0wnhyid4a4"
+ }
+ },
+ {
+ "ename": "syslog-mode",
+ "commit": "44b28cc63352e4398a94338d885371226d1e81aa",
+ "sha256": "15kh2v8jsw04vyh2lmh1ndpxli3cwp6yq66hl8mwb1i3g429az19",
+ "fetcher": "github",
+ "repo": "vapniks/syslog-mode",
+ "unstable": {
+ "version": [
+ 20190913,
+ 2040
+ ],
+ "deps": [
+ "hide-lines",
+ "ov"
+ ],
+ "commit": "18f441bf57dd70cdd48a71f1f4566ab35facdb35",
+ "sha256": "1xl6immya0i5xjpls3vqdqj9rr5jxp5srny8l9j4qxf8kp75byqa"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3
+ ],
+ "deps": [
+ "hide-lines",
+ "ov"
+ ],
+ "commit": "18f441bf57dd70cdd48a71f1f4566ab35facdb35",
+ "sha256": "1xl6immya0i5xjpls3vqdqj9rr5jxp5srny8l9j4qxf8kp75byqa"
+ }
+ },
+ {
+ "ename": "system-packages",
+ "commit": "7d3c7af03e0bca3f834c32827cbcca29e29ef4db",
+ "sha256": "13nk3m8gw9kqjllk7hgkmpxsx9y5h03f0l7zydg388wc7cxsiy3l",
+ "fetcher": "gitlab",
+ "repo": "jabranham/system-packages",
+ "unstable": {
+ "version": [
+ 20200426,
+ 1714
+ ],
+ "commit": "92c58d98bc7282df9fd6f24436a105f5f518cde9",
+ "sha256": "01hj46zgs7a1as0r0x451ag2fb40pp3gyzycvj0gm328grn6vpmk"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 11
+ ],
+ "commit": "3ad6d52072f0bd043dced40ba7bd422fd9c00a7b",
+ "sha256": "0pxkyys2lgn16rhf4mzqlh27vs9aw6g083z2vr2agr7bmbavd2fp"
+ }
+ },
+ {
+ "ename": "system-specific-settings",
+ "commit": "3f52c584d7435c836ba3c95c598306ba0f5c06da",
+ "sha256": "1ydmxi8aw2lf78wv4m39yswbqkmcadqg0wmzg9s8b5h9bxxwvppp",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/emacs-system-specific-settings",
+ "unstable": {
+ "version": [
+ 20140818,
+ 1457
+ ],
+ "commit": "0050d85b2175095aa5ecf580a2fe43c069b0eef3",
+ "sha256": "1hixilnnybv2v3p1wpn7a0ybwah17grawszs3jycsjgzahpgckv7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "0050d85b2175095aa5ecf580a2fe43c069b0eef3",
+ "sha256": "1hixilnnybv2v3p1wpn7a0ybwah17grawszs3jycsjgzahpgckv7"
+ }
+ },
+ {
+ "ename": "systemd",
+ "commit": "ca810e512c357d1d0130aeeb9b46b38c595e3351",
+ "sha256": "1ykvm8mfi3fjvrkfcy9qn0sr9mhwm9x1svrmrd0gyqk418clk5i3",
+ "fetcher": "github",
+ "repo": "holomorph/systemd-mode",
+ "unstable": {
+ "version": [
+ 20191219,
+ 2304
+ ],
+ "commit": "51c148e09a129ddf33d95276aa0e89d4ef6f8dd2",
+ "sha256": "0mikrj91qip5f0sj62c4gamvw7h6wc0yz8cfyzj9h3gxrllkp87k"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "1e7567a9973bf80cab0d7e0355656a84bee7ca96",
+ "sha256": "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"
+ }
+ },
+ {
+ "ename": "systemtap-mode",
+ "commit": "b1df01b4cccfb234971933d24de21a2b5648fd8c",
+ "sha256": "1l2jx6mvph0q2pdlhq7p4vwfw72rfl8k1rwi504bbkr5n5xwhhhz",
+ "fetcher": "github",
+ "repo": "ruediger/systemtap-mode",
+ "unstable": {
+ "version": [
+ 20151122,
+ 1940
+ ],
+ "commit": "1a968c2b1f3a054bebf91ac49739d3a81ce050a9",
+ "sha256": "0343ss3y9i40y3i9rr7p7bb4k9dj950zyvdv44q1abw2xrfd2xwd"
+ }
+ },
+ {
+ "ename": "ta",
+ "commit": "847693b5952e99597bd77223e1058536d1beeb5c",
+ "sha256": "0kn2k4n0xfwsrniaqb36v3rxj2pf2sai3bmjksbn1g2kf5g156ll",
+ "fetcher": "github",
+ "repo": "kuanyui/ta.el",
+ "unstable": {
+ "version": [
+ 20160619,
+ 1645
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "668ad41e71f374f8c32c8d0532f3d8485b355d35",
+ "sha256": "1lk7hpdp6c74sdwkg2azfvj4qmbl1ghmhms3r0j4296dj8bl5k63"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9226afbe7abbefb825844ef3ba4ca15f1934cfc2",
+ "sha256": "09nndx83ws5v2i9x0dzk6l1a0lq29ffzh3y05n0n64nf5j0a7zvk"
+ }
+ },
+ {
+ "ename": "tab-group",
+ "commit": "ad758d865bde8c97d27c0d57cabe1606f8b36974",
+ "sha256": "1i5lxpf3wmqnqj9mzgcn4gp1gjxp737awrzl1dml5wnarbbj4fs9",
+ "fetcher": "github",
+ "repo": "tarao/tab-group-el",
+ "unstable": {
+ "version": [
+ 20140306,
+ 1450
+ ],
+ "commit": "5a290ec2608e4100fb188fd60ecb77affcc3465b",
+ "sha256": "0lfvgbgvsm61kv5mcjnhnfjcnr7fy1015y0hndkf9xvdlw4hahr4"
+ }
+ },
+ {
+ "ename": "tab-jump-out",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "1p2hkj0d9hbiwbf746l3rad8a5x6hk97b0ajl6q6cwbmy2qm3cca",
+ "fetcher": "github",
+ "repo": "zhangkaiyulw/tab-jump-out",
+ "unstable": {
+ "version": [
+ 20151006,
+ 130
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "1c3fec1826d2891177ea78e4e7cce1dc67e83e51",
+ "sha256": "0h7sfbca1nzcjylwl7zp25yj6wxnlx8g8a50zc6sg6jg4rggi2fm"
+ }
+ },
+ {
+ "ename": "tabbar",
+ "commit": "806420d75561cbeffbc1b387345a56c21cc20179",
+ "sha256": "1y376nz1xmchwns4fz8dixbb7hbqh4mln78zvsh7y32il98wzvx9",
+ "fetcher": "github",
+ "repo": "dholm/tabbar",
+ "unstable": {
+ "version": [
+ 20180726,
+ 1735
+ ],
+ "commit": "82bbda31cbe8ef367dd6501c3aa14b7f2c835910",
+ "sha256": "01sw76wp8bvh21h30pkc3kjr98c8m6qid6misk1y7hkyld0bzxay"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2
+ ],
+ "commit": "82bbda31cbe8ef367dd6501c3aa14b7f2c835910",
+ "sha256": "01sw76wp8bvh21h30pkc3kjr98c8m6qid6misk1y7hkyld0bzxay"
+ }
+ },
+ {
+ "ename": "tabbar-ruler",
+ "commit": "1d69d1ef8dbab8394be01153cf9ebe8e49bf9912",
+ "sha256": "10dwjj6r74g9rzdd650wa1wxhqc0q6dmff4j0qbbhmjsxvsr3y0d",
+ "fetcher": "github",
+ "repo": "mattfidler/tabbar-ruler.el",
+ "unstable": {
+ "version": [
+ 20160802,
+ 307
+ ],
+ "deps": [
+ "cl-lib",
+ "mode-icons",
+ "powerline",
+ "tabbar"
+ ],
+ "commit": "535568189aa12a3eff7f977d2783e57b6a65ab6a",
+ "sha256": "1csj6qhwihdf4kfahcqhm163isiwac08w4nqid1hnca184bfk6xm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 45
+ ],
+ "deps": [
+ "tabbar"
+ ],
+ "commit": "7df2e4814018e84ef9261d04a2ade8168a44e3d7",
+ "sha256": "1xd67s92gyr49v73j7r7cbhsc40bkw8aqh21whgbypdgzpyc7azc"
+ }
+ },
+ {
+ "ename": "tablist",
+ "commit": "5fc0c6c02d609fb22710560337bd577f4b1e0c8f",
+ "sha256": "0c10g86xjhzpmc2sqjmzcmi393qskyw6d9bydqzjk3ffjzklm45p",
+ "fetcher": "github",
+ "repo": "politza/tablist",
+ "unstable": {
+ "version": [
+ 20200427,
+ 2205
+ ],
+ "commit": "faab7a035ef2258cc4ea2182f67e3aedab7e2af9",
+ "sha256": "1nqp7v5jd6zibpnx0w720xj2if71z1sgly9mmlnbcryg15p7c4gz"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "f6b495d09494784163c3e6ba75b771b71fe226a8",
+ "sha256": "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"
+ }
+ },
+ {
+ "ename": "tabula-rasa",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "041yl5727ba0b2ircmfmm693gg7vimrijd80k8w8j13xcrq5i1i3",
+ "fetcher": "github",
+ "repo": "IdoMagal/Tabula-Rasa",
+ "unstable": {
+ "version": [
+ 20141216,
+ 547
+ ],
+ "commit": "e85fff9de18dc31bc6a7aca726e34a95cc5459f5",
+ "sha256": "1dbjfq9a7a5s9c18nrp4kcda64jkg5cp8na31kxw0hjcn98dgqa8"
+ }
+ },
+ {
+ "ename": "tagedit",
+ "commit": "8968e2cd0bd49d54a5479b2467bd4f0a97d7a969",
+ "sha256": "0vfkbrxmrw4fwdz324s734zxdxm2nj3df6i8m6lgb9pizqyp2g6z",
+ "fetcher": "github",
+ "repo": "magnars/tagedit",
+ "unstable": {
+ "version": [
+ 20161121,
+ 855
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "b3a70101a0dcf85498c92b7fcfa7fdbac869746c",
+ "sha256": "0xq9i3axlq9wgsr27nbhi5k9hxr1wahygkb73xkvxlgmvkmikcrw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "3fcf54b824b75c5ad68f5438d5638103049a389f",
+ "sha256": "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"
+ }
+ },
+ {
+ "ename": "take-off",
+ "commit": "3d129ad161d8538c9db022bbd4e90eacda998cf4",
+ "sha256": "05vlajmirbp62rpbdwa2bimpzyl9xc331gg0lhn2rkivc0hma2ar",
+ "fetcher": "github",
+ "repo": "tburette/take-off",
+ "unstable": {
+ "version": [
+ 20140531,
+ 917
+ ],
+ "deps": [
+ "web-server"
+ ],
+ "commit": "aa9ea45566fc74febbb6ee9c409ecc4b59246215",
+ "sha256": "13zwlb5805cpv0pbr7fj5b4crlg7lb0ibslvcpszm0cz6rlifcvf"
+ }
+ },
+ {
+ "ename": "tango-2-theme",
+ "commit": "ab432b0eac0bcf0d40c5b3c8a78475bc0fea47d2",
+ "sha256": "1a9qmz99h99gpd0sxqb71c08wr8pm3bzsg3p4cvf3vcirvav9lq6",
+ "fetcher": "git",
+ "url": "https://gist.github.com/2024464.git",
+ "unstable": {
+ "version": [
+ 20120312,
+ 2025
+ ],
+ "commit": "64e44c98e41ebbe3b827d54280e3b9615787daaa",
+ "sha256": "1lqkazis9pfcfdsb2lar4l1n4pd085v60xmnlkdrdllwamqachkk"
+ }
+ },
+ {
+ "ename": "tango-plus-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1p1b48fvmk7a8m3bnddkx2pp7kz5agac0v1ii2r6iqapdqsl22ng",
+ "fetcher": "github",
+ "repo": "tmalsburg/tango-plus-theme",
+ "unstable": {
+ "version": [
+ 20200423,
+ 804
+ ],
+ "commit": "1e9484bb392bb0aad2be159505c502320f8d0a5c",
+ "sha256": "1819s9c0nm4pkgcpxqnr20075krq30qn6hpg4zl54cnrxbfbiq9f"
+ }
+ },
+ {
+ "ename": "tangotango-theme",
+ "commit": "ebfcfa3ba4ca77443667a9478d59214810cd8cc2",
+ "sha256": "05cnvyqmh5h5mqys7qs7d9knzxzmi2x0j1avp77x5l5njzzv59s2",
+ "fetcher": "github",
+ "repo": "juba/color-theme-tangotango",
+ "unstable": {
+ "version": [
+ 20170924,
+ 1509
+ ],
+ "commit": "e2f2ea9c35f06dfc43a29c91c14cf0cdb19f2144",
+ "sha256": "01gvsvha8z7pyr8c33gh3xmz47lh6b8g0nwf1gzdiw1gd0sfhs4z"
+ }
+ },
+ {
+ "ename": "tao-theme",
+ "commit": "94b70f11655944080507744fd06464607727ecef",
+ "sha256": "0gl6zzk5ha6vl2xxf5fcnv1k42cw4axdjdcirr1c4r8jwdq3nl3a",
+ "fetcher": "github",
+ "repo": "11111000000/tao-theme-emacs",
+ "unstable": {
+ "version": [
+ 20200325,
+ 344
+ ],
+ "commit": "34917843cde086943816d8a48977658c663a784e",
+ "sha256": "1ks4pnwp5fg2vswr93hrli2shfd7rrf3nwqwr1qwmqxhq1600f3x"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 1
+ ],
+ "commit": "af142b423536b47bce67afda5108dbf3a9317521",
+ "sha256": "1fs4rhb4g7s7x3cvqv9d2x5f3079z2hkmp5lns7qfziszkc9fxia"
+ }
+ },
+ {
+ "ename": "taskpaper-mode",
+ "commit": "f969b1cd58dfd22041a8a2b116db0f48e321e546",
+ "sha256": "0gayhzakiwlrkysmh24499pyzdfy3rmf8d68vamih7igxpl57gim",
+ "fetcher": "github",
+ "repo": "saf-dmitry/taskpaper-mode",
+ "unstable": {
+ "version": [
+ 20200701,
+ 1436
+ ],
+ "commit": "5ded73ae13d58ab0bbd52ac7556ff29e114a96d6",
+ "sha256": "00bvjrbcqalwlw1lc883p8l7szb9qniqp120pwd6hgyvgpr7h3s1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "169dab1eb632e5ac5e34608be2df4e9854368180",
+ "sha256": "0mwd9i6mm0h18z7fiqla95bx6c0zb8x4f6380842hgzi9zrnghxi"
+ }
+ },
+ {
+ "ename": "taskrunner",
+ "commit": "f0e0354a4da2e675406068d158c7e532cd5ed083",
+ "sha256": "0dyqqlafzxn0irmqwfh9rjysn1vm0wxlapg3pzgqps1w4mkkvwc5",
+ "fetcher": "github",
+ "repo": "emacs-taskrunner/emacs-taskrunner",
+ "unstable": {
+ "version": [
+ 20190916,
+ 1608
+ ],
+ "deps": [
+ "async",
+ "projectile"
+ ],
+ "commit": "716323aff410b4d864d137c9ebe4bbb5b8587f5e",
+ "sha256": "03llmj09jg5cba927qbzkhld83k24yd1i95nfiq7q754a4y4iksn"
+ }
+ },
+ {
+ "ename": "tawny-mode",
+ "commit": "ea9a114ff739f7d6f5d4c3167f5635ddf79bf60c",
+ "sha256": "1xaw1six1n6rw1283fdyl15xcf6m7ngvq6gqlz0xzpf232c4b0kr",
+ "fetcher": "github",
+ "repo": "phillord/tawny-owl",
+ "unstable": {
+ "version": [
+ 20191108,
+ 1346
+ ],
+ "deps": [
+ "cider"
+ ],
+ "commit": "8dfb4f92db2d8598ba809636a82d210c378b4845",
+ "sha256": "1sdi1rr9xq7spps5hagzs8irfljxmbd5y3hh4jiyvn54cwicg3g8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 3
+ ],
+ "deps": [
+ "cider"
+ ],
+ "commit": "ce85fd9bcd008031a605ea8913577f452b49e352",
+ "sha256": "06dm6gdh10jbmyjr0y96s06qi3k12phq522pviis68qm7v2ryr47"
+ }
+ },
+ {
+ "ename": "tblui",
+ "commit": "f4dd6e9dcc73c57f93371ba16b15f2d98d805dae",
+ "sha256": "1m0zhk5zyialklnil5az974yz6g1zksw02453cxc0xpn5pf0a3xa",
+ "fetcher": "github",
+ "repo": "Yuki-Inoue/tblui.el",
+ "unstable": {
+ "version": [
+ 20161007,
+ 1912
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "magit-popup",
+ "tablist"
+ ],
+ "commit": "bb29323bb3e27093d50cb42db3a9329a096b6e4d",
+ "sha256": "1pja9v4h3abqc2iydm7wwjxrg7ni1pn94yb4azrgjq5qc0fsgn7a"
+ }
+ },
+ {
+ "ename": "tbx2org",
+ "commit": "d616cbf4ad7e49807afd2f7acf0a0fd2f2a0bac4",
+ "sha256": "1yvkw65la4w12c4w6l9ai73lzng170wv4b8gry99m2bakw3wr8m8",
+ "fetcher": "github",
+ "repo": "istib/tbx2org",
+ "unstable": {
+ "version": [
+ 20140224,
+ 1559
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "s"
+ ],
+ "commit": "08e9816ba6066f56936050b58d07ceb2187ae6f7",
+ "sha256": "1jp80qywcphql1ngd4fr24lqdfwrw0bw6q9hgq5vmzgjwfxwxwd4"
+ }
+ },
+ {
+ "ename": "tc",
+ "commit": "9fddfc79ed2c614c33e90ba80f300912fdab88a3",
+ "sha256": "05lnsaizlh4wqjkp0wqcm1756r9ia46as8zf01k8qsi0mm452g6q",
+ "fetcher": "github",
+ "repo": "kanchoku/tc",
+ "unstable": {
+ "version": [
+ 20181109,
+ 428
+ ],
+ "commit": "cb3403fb134dc62d8a48253027891785849cff31",
+ "sha256": "14q01mar66x3bv0ghfws0pv3qrpg9szgzb99ql3qfhbnkw0m859d"
+ }
+ },
+ {
+ "ename": "tco",
+ "commit": "ca33f97f0394585c8ccb31cab0ee776d1655907c",
+ "sha256": "0hfrzwjlgynk3mydrpmic9mckak37r22fdglrfas6zdihgrg152f",
+ "fetcher": "github",
+ "repo": "Wilfred/tco.el",
+ "unstable": {
+ "version": [
+ 20191129,
+ 2040
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "d82478d56568f60b3a82fd010b3ca0bab2ef5dc9",
+ "sha256": "0lh04mpa1yb3mwasvnnbdzffcig7ndlk13d96a0lavqn49a10fa3"
+ }
+ },
+ {
+ "ename": "tea-time",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0qypwf0pgsixq6c5avbwp81i3ayy9dd2fngzdvq14pax913q8pg1",
+ "fetcher": "github",
+ "repo": "konzeptual/tea-time",
+ "unstable": {
+ "version": [
+ 20120331,
+ 820
+ ],
+ "commit": "1f6cf0bdd27c5eb3508989c5095427781f858eca",
+ "sha256": "0b4cwkwkc4i8lc4j30xc9d6xskm3gqrc2dij60ya75h92aj0lj40"
+ }
+ },
+ {
+ "ename": "teacode-expand",
+ "commit": "8b23b0f701627ed18886f29ffd33ef7fb1f82e04",
+ "sha256": "1hkh7mzzwrk7a8ihss7kyncw9mkwr4iw06gv5y6kg806qc4f1nn3",
+ "fetcher": "github",
+ "repo": "raguay/TeaCode-Expand",
+ "unstable": {
+ "version": [
+ 20181231,
+ 640
+ ],
+ "commit": "3aae07c71249de616d42fed7fa2585c4fa6f25c6",
+ "sha256": "0l3mhn8m96d9mxs9kkp6clj5qzns5dw9w628kf9ibwbbc5fq01aa"
+ }
+ },
+ {
+ "ename": "teco",
+ "commit": "f8c7a2d741bd0061f5edc30fd000a82cdd3b66e4",
+ "sha256": "0ahixvxvjbm7xngsqfjdb6lfg43bki9vays2yw2psmyw7c34zp3s",
+ "fetcher": "github",
+ "repo": "mtk/teco",
+ "unstable": {
+ "version": [
+ 20200707,
+ 2309
+ ],
+ "commit": "61caf8f419659a0567a269f290c90427a215d77b",
+ "sha256": "0jfrlpmcr8msj39fhm0sc11sxw46w0dk24zidsdp12lwgcnli44m"
+ }
+ },
+ {
+ "ename": "telega",
+ "commit": "e067f03ebe9dd8c90ceaa5a7983483087c74107f",
+ "sha256": "0n1n1fciwh7jbakdjkx36aq6k0is0c694j3n5dicwvfp7spca7p8",
+ "fetcher": "github",
+ "repo": "zevlg/telega.el",
+ "unstable": {
+ "version": [
+ 20200814,
+ 1652
+ ],
+ "deps": [
+ "rainbow-identifiers",
+ "visual-fill-column"
+ ],
+ "commit": "9594ebcb0f605e5b01bc4ec6d1bd1b6470002bc0",
+ "sha256": "0hm6yvr4ygkcycw850sd4lcwmrr49s88nhan08hal0xylzazlq24"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 28
+ ],
+ "deps": [
+ "rainbow-identifiers",
+ "visual-fill-column"
+ ],
+ "commit": "e53996777570a5bed84d21f6c8defd4f51c8e255",
+ "sha256": "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"
+ }
+ },
+ {
+ "ename": "telepathy",
+ "commit": "485ef1745f07f29c45bf0d489eeb4fcdfda80b33",
+ "sha256": "0c3d6vk7d6vqzjndlym2kk7d2zm0b15ac4142ir03p6f19rqq9pr",
+ "fetcher": "github",
+ "repo": "NicolasPetton/telepathy.el",
+ "unstable": {
+ "version": [
+ 20131209,
+ 1258
+ ],
+ "commit": "211d785b02a29ddc254422fdcc3db45262582f8c",
+ "sha256": "16kr1p4lzi1ysd5r2dh0mxk60zsm5fvwa9345nfyrgdic340yscc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "211d785b02a29ddc254422fdcc3db45262582f8c",
+ "sha256": "16kr1p4lzi1ysd5r2dh0mxk60zsm5fvwa9345nfyrgdic340yscc"
+ }
+ },
+ {
+ "ename": "telephone-line",
+ "commit": "9c998b70365fb0a210c3b9639db84034c7d45097",
+ "sha256": "0dyh9h1yk9y0217b6rxsm7m372n910vpfgw5w23lkkrwa8x8qpx3",
+ "fetcher": "github",
+ "repo": "dbordak/telephone-line",
+ "unstable": {
+ "version": [
+ 20200516,
+ 2102
+ ],
+ "deps": [
+ "cl-generic",
+ "cl-lib",
+ "seq"
+ ],
+ "commit": "110c578ccf6c0421cfd9eec7aa3e960b6fd49fb4",
+ "sha256": "157df4h9hr5mmwp0q5w0rdv7ndrjk3014r5xwwblszvx33s70gbk"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "cl-generic",
+ "cl-lib",
+ "seq"
+ ],
+ "commit": "a83dcda21b0f6e10e51c3cded7da9a5d2ead5f34",
+ "sha256": "1cg34l6jq75mcqnb3p93z0kv1arvnswm8nkk39fmryand2yygnl9"
+ }
+ },
+ {
+ "ename": "template-overlays",
+ "commit": "8856e67aae1f623714bc2a61a7b4773ed1fb2934",
+ "sha256": "0vmadkgzp4i0mh64la67k1anvmlmd4i7iibdlr9ly8z7i3cdsxqn",
+ "fetcher": "github",
+ "repo": "mmontone/template-overlays",
+ "unstable": {
+ "version": [
+ 20180706,
+ 1132
+ ],
+ "deps": [
+ "ov"
+ ],
+ "commit": "d32db58c044b2aca3720879003f55b1d57208b07",
+ "sha256": "1hfm0miqzym4fbj33hzh5iszp0i51imr1z54396vd81zjch9sxss"
+ }
+ },
+ {
+ "ename": "templatel",
+ "commit": "0e43ad23f7b58ddb82bc08066d8b48e04708b5ba",
+ "sha256": "10sx3kd22z4qa1g60c3fzxpc55xlddmb4iqqdbiqkn6bqzdzrslq",
+ "fetcher": "github",
+ "repo": "clarete/templatel",
+ "unstable": {
+ "version": [
+ 20200818,
+ 241
+ ],
+ "commit": "796021c2964a5bfbba7abf7f339f970bbedc3aab",
+ "sha256": "1yv85ik2slaibnajsfns1icliw0qyqw871jxdklav918lic9fia0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "commit": "6785b487aaa6bbab3cffcf74e9f596c0058c1b18",
+ "sha256": "1qdjbbr6mq2ib8aan5hb47vdj2s50yxfidmjyfyyms28qpi3524g"
+ }
+ },
+ {
+ "ename": "temporary-persistent",
+ "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
+ "sha256": "0afjcad97pzbrjs1v80l6c98vi5asgaxcn2rq95gz1ld7nn0a9zh",
+ "fetcher": "github",
+ "repo": "kostafey/temporary-persistent",
+ "unstable": {
+ "version": [
+ 20200201,
+ 1719
+ ],
+ "deps": [
+ "dash",
+ "names",
+ "s"
+ ],
+ "commit": "0080879b0257d350aeba1c4d6901613d7dc534de",
+ "sha256": "1np9xh6gqynp96rby2shh4w40r14vsvpvwaibq0c1wr1ydwggm9i"
+ }
+ },
+ {
+ "ename": "ten-hundred-mode",
+ "commit": "4a0534044ff9ce0740414bf5dc3b104bbdbdacce",
+ "sha256": "17v38h33ka70ynq72mvma2chvlnm1k2amyvk62c65iv67rwilky3",
+ "fetcher": "github",
+ "repo": "aaron-em/ten-hundred-mode.el",
+ "unstable": {
+ "version": [
+ 20161028,
+ 2236
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bdcfda49b1819e82d61fe90947e50bb948cf7933",
+ "sha256": "11nsh6dkd3i489lrqpd9xhr4c0ai51364rlrd6slm54720by9jql"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bdcfda49b1819e82d61fe90947e50bb948cf7933",
+ "sha256": "11nsh6dkd3i489lrqpd9xhr4c0ai51364rlrd6slm54720by9jql"
+ }
+ },
+ {
+ "ename": "term+",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "12lvfspqmyrapmbz3x997vf160927d325y50kxdx3s6p81r7n2n8",
+ "fetcher": "github",
+ "repo": "tarao/term-plus-el",
+ "unstable": {
+ "version": [
+ 20170509,
+ 17
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c3c9239b339c127231860de43abfa08c44c0201a",
+ "sha256": "1mpv9vvvl1sh35vsa5415rvdv57mmbfix8s435q676zvhz3nl8yx"
+ }
+ },
+ {
+ "ename": "term+key-intercept",
+ "commit": "ad758d865bde8c97d27c0d57cabe1606f8b36974",
+ "sha256": "1564a86950xdwsrwinrs118bjsfmbv8gicq0c2dfr827v5b6zrlb",
+ "fetcher": "github",
+ "repo": "tarao/term-plus-ki-el",
+ "unstable": {
+ "version": [
+ 20140211,
+ 750
+ ],
+ "deps": [
+ "key-intercept",
+ "term+"
+ ],
+ "commit": "fd0771fd66b8c7a909aaac972194485c79ba48c4",
+ "sha256": "1dql2w8xkdw52zlrc2p9x391zn8wv4dj8a6293p4s08if7gg260w"
+ }
+ },
+ {
+ "ename": "term+mux",
+ "commit": "ad758d865bde8c97d27c0d57cabe1606f8b36974",
+ "sha256": "129kzjpi5nzagqkjfikx9i7k6489dy7d3pd7ggn59p4cnh3r2rhh",
+ "fetcher": "github",
+ "repo": "tarao/term-plus-mux-el",
+ "unstable": {
+ "version": [
+ 20140211,
+ 749
+ ],
+ "deps": [
+ "tab-group",
+ "term+"
+ ],
+ "commit": "81b60e80cf008472bfd7fad9233af2ef722c208a",
+ "sha256": "12gfvcf7hl29xhg231cx76q04ll7cvfpvhkb0qs3qn1sqb50fs2q"
+ }
+ },
+ {
+ "ename": "term-alert",
+ "commit": "0d77aee0b1b2eb7834436bdfa339f95cb97da140",
+ "sha256": "02qvfhklysfk1fd4ibdngf4crp9k5ab11zgg90hi1sp429a53f3m",
+ "fetcher": "github",
+ "repo": "CallumCameron/term-alert",
+ "unstable": {
+ "version": [
+ 20161119,
+ 945
+ ],
+ "deps": [
+ "alert",
+ "f",
+ "term-cmd"
+ ],
+ "commit": "1166c39cc3fb1cb7808eb8955b7f9f6094a306cd",
+ "sha256": "1hbyiwqv9waynf8gm3c717mph0p9mfi2x1wfpvdzzr25r0fz8xr0"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "alert",
+ "f",
+ "term-cmd"
+ ],
+ "commit": "47af9e6fe483ef0d393098c145f499362a33292a",
+ "sha256": "1nv8ma8x9xkgsl95z7yysy8q1lb3xr0pd8a5sb01nlx8ks3clad4"
+ }
+ },
+ {
+ "ename": "term-cmd",
+ "commit": "e08ea89cf193414cce5073fc9c312f2b382bc842",
+ "sha256": "0pbz9fy9rjfpzspwq78ggf1wcvjslwvj8fvc05w4g56ydza0gqi4",
+ "fetcher": "github",
+ "repo": "CallumCameron/term-cmd",
+ "unstable": {
+ "version": [
+ 20160517,
+ 1045
+ ],
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "552aa58965aab9b78e46934462bafe54c0396ffb",
+ "sha256": "0l5xk8npc23c716fjckd65xq83hjwnvpyxixc9brxfz4ybngzwhy"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "f"
+ ],
+ "commit": "6c9cbc659b70241d2ed1601eea34aeeca0646dac",
+ "sha256": "08qiipjsqc9dfbha6r2yijjbrg2s4i2mkn6zn5616086550v3kpj"
+ }
+ },
+ {
+ "ename": "term-manager",
+ "commit": "0b2f7d8c8fcbb535432f8e70729d69a572e49a1a",
+ "sha256": "0ab388ki7vr1wpz81bvbl2fskq9zz5bicdf5gqfg01qzv5l75iza",
+ "fetcher": "github",
+ "repo": "IvanMalison/term-manager",
+ "unstable": {
+ "version": [
+ 20190610,
+ 2032
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "eea7894350a4f31e1df0c666d3fb0bac822d34d2",
+ "sha256": "1rkivl5dy25haip62ybb10fd0gda9aacg9nafj6rkpa7n6mwkkqm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "0bca2e7e3b6e906ec67696bc0be952988ca7f733",
+ "sha256": "0ybmszjb2lrgqp3zixpxy0lp2l9axw3mz2d4n2kmajh8ckbr576v"
+ }
+ },
+ {
+ "ename": "term-projectile",
+ "commit": "5260876280148fae28a459f07932cebb059b560e",
+ "sha256": "1mzyzjxkdfvf1kq9m3c1f6y6xzj1qq53rixawmnzmil5cmznvwag",
+ "fetcher": "github",
+ "repo": "IvanMalison/term-manager",
+ "unstable": {
+ "version": [
+ 20190307,
+ 400
+ ],
+ "deps": [
+ "projectile",
+ "term-manager"
+ ],
+ "commit": "eea7894350a4f31e1df0c666d3fb0bac822d34d2",
+ "sha256": "1rkivl5dy25haip62ybb10fd0gda9aacg9nafj6rkpa7n6mwkkqm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "projectile",
+ "term-manager"
+ ],
+ "commit": "0bca2e7e3b6e906ec67696bc0be952988ca7f733",
+ "sha256": "0ybmszjb2lrgqp3zixpxy0lp2l9axw3mz2d4n2kmajh8ckbr576v"
+ }
+ },
+ {
+ "ename": "term-run",
+ "commit": "7cad6343104bfe5724e068660af79a6249010164",
+ "sha256": "1bx3s68rgr9slsw9k01gfg7sxd4z7sarg4pi2ivril7108mhg2cs",
+ "fetcher": "github",
+ "repo": "10sr/term-run-el",
+ "unstable": {
+ "version": [
+ 20200128,
+ 702
+ ],
+ "commit": "0fd135d55fcf864598b1fb8dd880833a1a322910",
+ "sha256": "1x1qdm5ahd5bxb4xi2i7ha5zqcxa5n0yskiqcz2hdbwpsdiirmlc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 5
+ ],
+ "commit": "54650dbbabb13cb2a6c0670ff6b24b29717a6a8b",
+ "sha256": "149pl3zxg5kriydk5h6j95jyly6i23w4w4g4a99s4zi6ljiny6c6"
+ }
+ },
+ {
+ "ename": "termbright-theme",
+ "commit": "a7151773de39fe570e3e9b351daad89db9dd267f",
+ "sha256": "14q88qdbnyzxr8sr8i5glj674sb4150b9y6nag0dqrxs629is6xj",
+ "fetcher": "github",
+ "repo": "bmastenbrook/termbright-theme-el",
+ "unstable": {
+ "version": [
+ 20151031,
+ 235
+ ],
+ "commit": "bec6ab14336c0611e85f45486276004f16d20607",
+ "sha256": "0gfsqpza8phvma5y3ck0n6p197x1i33w39m3c7jmja4ml121n73d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "bec6ab14336c0611e85f45486276004f16d20607",
+ "sha256": "0gfsqpza8phvma5y3ck0n6p197x1i33w39m3c7jmja4ml121n73d"
+ }
+ },
+ {
+ "ename": "terminal-focus-reporting",
+ "commit": "19e7149a0a2db7df7f890a2c1ad22266e97694d7",
+ "sha256": "0iwq0rabq0sdn4apa5ibfp912j76w7hzg3q5lbxp7fspfwwynvg2",
+ "fetcher": "github",
+ "repo": "veelenga/terminal-focus-reporting.el",
+ "unstable": {
+ "version": [
+ 20180830,
+ 719
+ ],
+ "commit": "8b84bf18f4c5f1b59a11692eb706f13c3598d9a5",
+ "sha256": "0bbcl0mq62f22n2aipgzx93164x81bgybfd0x7gvsfva76qs8pc4"
+ }
+ },
+ {
+ "ename": "terminal-here",
+ "commit": "f8df6f7e23476eb52e7fdfbf9de277d3b44db978",
+ "sha256": "1w64r3y88lspxxcqcqfwhakk8p9vl7q3z610dykfbqwqx61a6adj",
+ "fetcher": "github",
+ "repo": "davidshepherd7/terminal-here",
+ "unstable": {
+ "version": [
+ 20200617,
+ 714
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d8b95302abe6e4a8a91a4526441a1c5d51b886a6",
+ "sha256": "0b05arm8b95dkzj6m2kx7wb37z00y0bdsj3z34sjny75srph3c0c"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "e176d1675dc5c41b6aebd05122fb2efc44b6cff0",
+ "sha256": "0dj3z8czvziszb20sizgf1yriv4im811rcfadm7ga9zs2al56kqy"
+ }
+ },
+ {
+ "ename": "terminal-toggle",
+ "commit": "673974fe768f88a7c67c929bb6b9b27fc028d4e2",
+ "sha256": "0l1gklcgas2g0kx5q59dzhv20pki5hxv4h3rsbrwbpq5rxkxymbx",
+ "fetcher": "github",
+ "repo": "mtekman/terminal-toggle.el",
+ "unstable": {
+ "version": [
+ 20190226,
+ 1510
+ ],
+ "deps": [
+ "popwin"
+ ],
+ "commit": "f824d634aef3600cb7a8e2ddf9e8444c6607c160",
+ "sha256": "150xvmr5vsydg0197m1k62mwy2810mzh1iwqj9yl9fg47fbzbg0i"
+ }
+ },
+ {
+ "ename": "tern",
+ "commit": "eaecd67af24050c72c5df73c3a12e717f95d5059",
+ "sha256": "1am97ssslkyijpvgk4nldi67ws48g1kpj6gisqzajrrlw5q93wvd",
+ "fetcher": "github",
+ "repo": "ternjs/tern",
+ "unstable": {
+ "version": [
+ 20181108,
+ 722
+ ],
+ "deps": [
+ "cl-lib",
+ "json"
+ ],
+ "commit": "ef50c6f0269a6fd9ce742d0a87647d60a0ef850f",
+ "sha256": "1c3zamvcambi9l91vilc0sbyzn21jj89n9j02simza4ffyn9xix9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 24,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "json"
+ ],
+ "commit": "0d19800db70a6348c627a69f444b91d21ad89629",
+ "sha256": "0ydrxxc3lgs8mpg577iw5sfxgyqfbdkrghwxmv8sxf6sawvhx8zv"
+ }
+ },
+ {
+ "ename": "tern-auto-complete",
+ "commit": "eaecd67af24050c72c5df73c3a12e717f95d5059",
+ "sha256": "1i99b4awph50ygcqsnppm1h48hbf8cpq1ppd4swakrwgmcy2mn26",
+ "fetcher": "github",
+ "repo": "ternjs/tern",
+ "unstable": {
+ "version": [
+ 20170521,
+ 1935
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "tern"
+ ],
+ "commit": "ef50c6f0269a6fd9ce742d0a87647d60a0ef850f",
+ "sha256": "1c3zamvcambi9l91vilc0sbyzn21jj89n9j02simza4ffyn9xix9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 24,
+ 3
+ ],
+ "deps": [
+ "auto-complete",
+ "cl-lib",
+ "tern"
+ ],
+ "commit": "0d19800db70a6348c627a69f444b91d21ad89629",
+ "sha256": "0ydrxxc3lgs8mpg577iw5sfxgyqfbdkrghwxmv8sxf6sawvhx8zv"
+ }
+ },
+ {
+ "ename": "tern-context-coloring",
+ "commit": "db2119d2c2d167d771ee02c2735b435d59991b93",
+ "sha256": "0wkb7gn2ma6mz495bgphcjs5p0c6a869zk4a8mnm0spq41xbw4gi",
+ "fetcher": "github",
+ "repo": "jacksonrayhamilton/tern-context-coloring",
+ "unstable": {
+ "version": [
+ 20161218,
+ 747
+ ],
+ "deps": [
+ "context-coloring",
+ "tern"
+ ],
+ "commit": "3a8e979d6cc83aabcb3dda3f5f31a6422532efba",
+ "sha256": "1rq5aqmsd7jqvwypafad9gmfcwjqjah00j7cws46k5f0dirjaa1y"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "context-coloring",
+ "tern"
+ ],
+ "commit": "3a8e979d6cc83aabcb3dda3f5f31a6422532efba",
+ "sha256": "1rq5aqmsd7jqvwypafad9gmfcwjqjah00j7cws46k5f0dirjaa1y"
+ }
+ },
+ {
+ "ename": "terraform-doc",
+ "commit": "81ba99e4734f231294800cc2b0a27fba2eb396e0",
+ "sha256": "0n62yicjsjikgbw5fckjxzgx5vfzn4ydi7jizm27ycpwxbw59ifl",
+ "fetcher": "github",
+ "repo": "TxGVNN/terraform-doc",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1545
+ ],
+ "commit": "d609290021ea7f2d10caadffc9131663838f8ad4",
+ "sha256": "1gvydmi37d7jxibn7nfg1rhb6phfn3kgrlmq250g7321g15j1q3v"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "commit": "d609290021ea7f2d10caadffc9131663838f8ad4",
+ "sha256": "1gvydmi37d7jxibn7nfg1rhb6phfn3kgrlmq250g7321g15j1q3v"
+ }
+ },
+ {
+ "ename": "terraform-mode",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "14bhn86d7xv4nvqdr65pm0nwmzawbnxyxyig5i4k8ax20xh59d67",
+ "fetcher": "github",
+ "repo": "emacsorphanage/terraform-mode",
+ "unstable": {
+ "version": [
+ 20170112,
+ 517
+ ],
+ "deps": [
+ "hcl-mode"
+ ],
+ "commit": "2967e7bdc05d15617e121052f6e43c61439b9070",
+ "sha256": "0f8p3ns0xw1p64jm22q4pf0ajmb5vp2ppl4qvgxvyna6cvcmw4k5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "deps": [
+ "hcl-mode"
+ ],
+ "commit": "6286aa42132a7fcad49271d63be33deeeb8d4efc",
+ "sha256": "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"
+ }
+ },
+ {
+ "ename": "test-c",
+ "commit": "ef915dc2d3bc09ef79eb8edde02101c89733c0b2",
+ "sha256": "1gy5dxkd4fpzzm2sq9g7bmi1ylwvsgh6hlvjmc1c064wjkha9j9z",
+ "fetcher": "github",
+ "repo": "aaptel/test-c",
+ "unstable": {
+ "version": [
+ 20180423,
+ 1720
+ ],
+ "commit": "761a576f62c7021ba941f178f153c51289df1553",
+ "sha256": "04dxgg4jz8cnw19wxybjwd36z8i9j6an15k9pz3zh3v7m72qzw7c"
+ }
+ },
+ {
+ "ename": "test-case-mode",
+ "commit": "d2e0bf342713cbdf30cf98d0bbc7476b0abeb7f5",
+ "sha256": "1iba97yvbi5vr7gvc58gq2ah6jg2s7apc9ssq7mdzki823n8z2qi",
+ "fetcher": "github",
+ "repo": "ieure/test-case-mode",
+ "unstable": {
+ "version": [
+ 20130525,
+ 1434
+ ],
+ "deps": [
+ "fringe-helper"
+ ],
+ "commit": "6074df10ebc97ddfcc228c71c73db179e672dac3",
+ "sha256": "1r3fmb8cshgh9pppdvydfcrzlmb9cgz4m04rgv69c5xv8clwcmbr"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "fringe-helper"
+ ],
+ "commit": "26e397c0f930b7eb0be413ef7dd257b1da052bec",
+ "sha256": "108csr1d7w0105rb6brzgbksb9wmq1p573vxbq0miv5k894j447f"
+ }
+ },
+ {
+ "ename": "test-kitchen",
+ "commit": "420d18c76f593338fb28807fcbe3b884be5b1634",
+ "sha256": "1bl3yvj56dq147yplrcwphcxiwvmx5n97y4qpkm9imiv8cnjm1g0",
+ "fetcher": "github",
+ "repo": "jjasghar/test-kitchen-el",
+ "unstable": {
+ "version": [
+ 20171129,
+ 2035
+ ],
+ "commit": "0fc0ca4808425f03fbeb8125246043723e2a179a",
+ "sha256": "1pip15ysya8nsk1xgz6k6gcjm6g60922r0im2anq4j2gjzdja79k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "ddbcb964ac4700973eaf30ae366f086e3319e51f",
+ "sha256": "004rd6jkaklsbgka9mf2zi5qzxsl2shwl1kw0vgb963xkmk9zaz8"
+ }
+ },
+ {
+ "ename": "test-simple",
+ "commit": "a4b76e053faee299f5b770a0e41aa615bf5fbf10",
+ "sha256": "1l6y77fqd0l0mh2my23psi66v5ya6pbr2hgvcbsaqjnpmfm90w3g",
+ "fetcher": "github",
+ "repo": "rocky/emacs-test-simple",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1121
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ce6de04636e8d19ec84a475c03c0142b20a63de0",
+ "sha256": "1knpzibhwm8f604fklq35d2w5rlx26fq3fzzybdm2xb65mifqnar"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "75eea25bae04d8e5e3e835a2770f02f0ff4602c4",
+ "sha256": "08g7fan1y3wi4w7cdij14awadqss6prqg3k7qzf0wrnbm13dzhmk"
+ }
+ },
+ {
+ "ename": "tex-smart-umlauts",
+ "commit": "be27e728327016b819535ef8cae10020e5a07c2e",
+ "sha256": "1bygl7fjm83j8lhkipczjs812837x9p3pqn8waykfbb7v05s81fr",
+ "fetcher": "github",
+ "repo": "emacsmirror/tex-smart-umlauts",
+ "unstable": {
+ "version": [
+ 20190316,
+ 2215
+ ],
+ "commit": "f15ed781b1fb38bf3e46c481dd602c3999920b99",
+ "sha256": "11ky141a33vm961jpj1spz9wxb4mfgw8drqxg2a6yk2rinkf0wcl"
+ }
+ },
+ {
+ "ename": "texfrag",
+ "commit": "756649bbe2dc6233c66c3d128a8096be12231078",
+ "sha256": "195vdpwqzypz35v8hc7ai9xpv1flrik60lgrk5m7xypnlp7mpr2x",
+ "fetcher": "github",
+ "repo": "TobiasZawada/texfrag",
+ "unstable": {
+ "version": [
+ 20200716,
+ 1331
+ ],
+ "deps": [
+ "auctex"
+ ],
+ "commit": "a5f59e0c5f43578f139a2943bd08e5b3140f4c2b",
+ "sha256": "11xissn0xpfx2xxcm5qj2smkxa5frcswvhpfv6m34j12z0nww7pw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "auctex"
+ ],
+ "commit": "270a8a4b5dadddc5b226d9a9c6c7868ea6bfe86f",
+ "sha256": "18ahbksxg1i3gvsayx2mhkjd1p75c60x5f8d9a3abm4h50gs5mvf"
+ }
+ },
+ {
+ "ename": "textile-mode",
+ "commit": "3ebe5e52bc9bb8875ca390b34ac32eb47f4e1252",
+ "sha256": "0c1l7ml9b1zipk5fhmhirrh070h0qwwiagdk84i04yvdmmcjw2nf",
+ "fetcher": "github",
+ "repo": "juba/textile-mode",
+ "unstable": {
+ "version": [
+ 20170304,
+ 1716
+ ],
+ "commit": "c37aaab809503df008209390e31e19abf4e23630",
+ "sha256": "16543im5iymc5hfcix1lglbvpq4v0441vb7sk58nbnffqba83yzy"
+ }
+ },
+ {
+ "ename": "textmate",
+ "commit": "ad3923ac8948de75a159e916ecc22005a17458ad",
+ "sha256": "119w944pwarpqzcr9vys17svy1rkfs9hiln8903q9ff4lnjkpf1v",
+ "fetcher": "github",
+ "repo": "defunkt/textmate.el",
+ "unstable": {
+ "version": [
+ 20110816,
+ 2146
+ ],
+ "commit": "350918b070148f0ace6d9d3cd4ebcaf15c1a8781",
+ "sha256": "1b7xxz1i84azmbz8rqpxdn18avmnqlj87hfrpbngbf6pj5h9jqjh"
+ },
+ "stable": {
+ "version": [
+ 1
+ ],
+ "commit": "484845493a3c9b570799aea5195a5435a5a01b76",
+ "sha256": "1a0fzn66gv421by0x6wj3z6bvzv274a9p8c2aaax0dskncl5lgk1"
+ }
+ },
+ {
+ "ename": "textmate-to-yas",
+ "commit": "487c461bf658d50135428d72fbfbb2573a00eb7d",
+ "sha256": "04agz4a41h0givfdw88qjd3c7pd418qyigsij4la5f37j5rh338l",
+ "fetcher": "github",
+ "repo": "mattfidler/textmate-to-yas.el",
+ "unstable": {
+ "version": [
+ 20160409,
+ 1708
+ ],
+ "commit": "be3a768b7ac4c2e24b9d4aa6e9ac1d916cdc5a73",
+ "sha256": "1bz5ys36wd00clq9w3ahqpras368aj2b9d4bl32qc6dyp8jfknmz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 21
+ ],
+ "commit": "8805e5159329e1b74629b7b584373fc446f57d31",
+ "sha256": "0fjapb7naysf34g4ac5gsa90b2s2ss7qgpyd9mfv3mdqrsp2dyw7"
+ }
+ },
+ {
+ "ename": "textx-mode",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0004z2ym3rmbqr42ysziqja7y5fl2fnmhbsqclk0mvr247gmb4vf",
+ "fetcher": "github",
+ "repo": "textX/textx-mode",
+ "unstable": {
+ "version": [
+ 20170516,
+ 911
+ ],
+ "commit": "72f9f0c5855b382024f0da8f56833c22a70a5cb3",
+ "sha256": "1lr9v7dk0pnmpvdvs4m5d9yvxlii0xzr8b3akknm25gvbw1y1q8k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "72f9f0c5855b382024f0da8f56833c22a70a5cb3",
+ "sha256": "1lr9v7dk0pnmpvdvs4m5d9yvxlii0xzr8b3akknm25gvbw1y1q8k"
+ }
+ },
+ {
+ "ename": "tf2-conf-mode",
+ "commit": "c43c53dca64cf0c7d59ffd0b17e9fe60f4aa90d3",
+ "sha256": "09kvb3ya1dx5pc146a6r9386fg9n9nfpcxm5mmhmyf75h9c6a25g",
+ "fetcher": "github",
+ "repo": "wynro/emacs-tf2-conf-mode",
+ "unstable": {
+ "version": [
+ 20161209,
+ 1620
+ ],
+ "commit": "536950f64c071ffd8495fb2c7ac7c63a11e25f93",
+ "sha256": "0vga7kgzp9wiiji1w47llbb3gp9qgwk8v0f6s8b6jng2gmdg25bk"
+ }
+ },
+ {
+ "ename": "tfsmacs",
+ "commit": "b449d004bdb498c2a1d155671070e0745c7d7598",
+ "sha256": "0j9rkcjxvgkcdnw2lxgk6bwid3q460n0hjxsj4nklv13s5b1hlyk",
+ "fetcher": "github",
+ "repo": "sebasmonia/tfsmacs",
+ "unstable": {
+ "version": [
+ 20180911,
+ 2114
+ ],
+ "deps": [
+ "tablist"
+ ],
+ "commit": "3c20cb76ccd7951eda0b5f076cd79e42f71e7220",
+ "sha256": "0pwx1cxc1d2hx823520b5a942nhl5w8alnhlq4kwi869wwzkmxfw"
+ }
+ },
+ {
+ "ename": "theme-changer",
+ "commit": "d08b24a2aec1012751054c68f7d55bac1bd1fd11",
+ "sha256": "1qbmsghkl5gs728q0gaalc7p8q7nzv3l045jc0jdxxnb7na3gc5w",
+ "fetcher": "github",
+ "repo": "hadronzoo/theme-changer",
+ "unstable": {
+ "version": [
+ 20171221,
+ 1927
+ ],
+ "commit": "61945695a30d678e6a5d47cbe7c8aff59a8c30ea",
+ "sha256": "14xc36jfgj8896pklrkpg394fgikir051rh9vm70v132n6i9j0cn"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "commit": "d3d9c9f62a138958262ac5dd61837df427268611",
+ "sha256": "09vf3qs949n4iqzd14iq2kgvypwdwdv8ii8l5jcqfppgspd8m8yd"
+ }
+ },
+ {
+ "ename": "theme-looper",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "018bixcbzri3zsasy1pp2qfvgd679ylpi9gq26qv9iwlfhlrpwgf",
+ "fetcher": "github",
+ "repo": "myTerminal/theme-looper",
+ "unstable": {
+ "version": [
+ 20200410,
+ 1757
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "eece1cef4483c02402f845d6158b35f6578447c3",
+ "sha256": "17slczwsd0av87fq44q9y1w6nvzvjfr2qn1majz5nqxfn55i6x9x"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 6,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0e314ad21193441a26ce1839737e7a054e6a1a1b",
+ "sha256": "1v4rv2w8jdjzikwfjxsxqrbfwh6nm88v9x74pdhc3mq36qwl487g"
+ }
+ },
+ {
+ "ename": "theme-magic",
+ "commit": "321c8ea8e095aa55d12f8dfb07001b9398adcbc5",
+ "sha256": "01vkwdfbhh7ifk1ziqmz257mjgn3ijmcva42ay4ih1n6268lr7k5",
+ "fetcher": "github",
+ "repo": "jcaw/theme-magic",
+ "unstable": {
+ "version": [
+ 20190711,
+ 2034
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "844c4311bd26ebafd4b6a1d72ddcc65d87f074e3",
+ "sha256": "10gkg7jh1s1484gm66a87zr7x8vmv00s7gfd0w2pj47nqf98g8hz"
+ }
+ },
+ {
+ "ename": "therapy",
+ "commit": "34e1bfdc684aaa7ebfbaa0ed60f8322c3de8a40d",
+ "sha256": "0y040ghb0y6aq0nchqr09vapz6h6112rkwxkqsx0v7xmqrqfjvhh",
+ "fetcher": "github",
+ "repo": "abingham/therapy",
+ "unstable": {
+ "version": [
+ 20151113,
+ 1953
+ ],
+ "commit": "775a92bb7b6b0fcc5b38c0b5198a9d0a1bef788a",
+ "sha256": "12kz4alyf3y2i7lkvi26hcxy55v0blsrxv5srx9fv5jhxkdz1vq1"
+ }
+ },
+ {
+ "ename": "thingopt",
+ "commit": "7856a62fb86415c88aa72b574895328c93c10a09",
+ "sha256": "1a91rvpgbil0cvp90zhj7rv9dqi48j2xr10ycyn52ps3ixhlcyl3",
+ "fetcher": "github",
+ "repo": "emacsorphanage/thingopt",
+ "unstable": {
+ "version": [
+ 20160520,
+ 2318
+ ],
+ "commit": "5679815852652479f3b3c9f3a98affc927384b2c",
+ "sha256": "12zpn0sy2yg37jjjx12h3kln56241b3z09bn5zavmjfdwnr9jd0a"
+ }
+ },
+ {
+ "ename": "thinks",
+ "commit": "439957cabf379651dc243219a83c3c96bae6f8cf",
+ "sha256": "11vj9mjfzmqwdmkq97aqns3fh8hkgx9scnki6c2iag5lj0av2vcq",
+ "fetcher": "github",
+ "repo": "davep/thinks.el",
+ "unstable": {
+ "version": [
+ 20170802,
+ 1128
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "c02f236abc8c2025d9f01460b09b89ebdc96e28d",
+ "sha256": "0g4ls668kyqnh4xkvz1s1z9j6n0a1gkgrzgl98hys7hny6zrk7aa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 12
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "7bdc418ff946d0cc9ea4cc73d38b3c71ffaa838d",
+ "sha256": "0wf3nikpnn0yivlmp6plyaiydm56mp3f91lljb1kay64nqgnfq65"
+ }
+ },
+ {
+ "ename": "thread-dump",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0dzr86jyf2j49gq40q6qd6lppa57n65n94xzpdjjbs182hxzavp2",
+ "fetcher": "github",
+ "repo": "nd/thread-dump.el",
+ "unstable": {
+ "version": [
+ 20170816,
+ 1850
+ ],
+ "commit": "204c9600242756d4b514bb5ff6293e052bf4b49d",
+ "sha256": "11qx194gwizqg7p2mqy7mdfii85bdayabxfd388dmrm916i4w47n"
+ }
+ },
+ {
+ "ename": "threes",
+ "commit": "bff7d9ffbca45629f310743aff776b762c8507cc",
+ "sha256": "03zwcaibdj88a6whccc5ysqsnfwi76yhsgjsfp3lxjcmlkwqzjbs",
+ "fetcher": "github",
+ "repo": "xuchunyang/threes.el",
+ "unstable": {
+ "version": [
+ 20160820,
+ 1242
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "6981acb30b856c77cba6aba63fefbf102cbdfbb2",
+ "sha256": "1a7zqq6kmqxgzbsg8yczlvipzv65n10c8j26mc507p4m47nlikgv"
+ }
+ },
+ {
+ "ename": "thrift",
+ "commit": "0dca078c0c467bc44290a922ad5627d6a34194f8",
+ "sha256": "13isxx16h7rg8q5a68qmgrf3rknhfrx1qh6fb5njlznfwhrqry3y",
+ "fetcher": "github",
+ "repo": "facebook/fbthrift",
+ "unstable": {
+ "version": [
+ 20200212,
+ 1903
+ ],
+ "commit": "32b109977cbde37bf719c2955ff7dd1e657a6c70",
+ "sha256": "0ww3k4yd5bk40r3v1a96mgzhaayqgb0v2kjvxzn10wcybqxf1zqb"
+ },
+ "stable": {
+ "version": [
+ 2020,
+ 8,
+ 17,
+ 0
+ ],
+ "commit": "b733bf19c3c68c0aa6d5e0bb7db4321fe13b47a2",
+ "sha256": "11kpja52drs4xsja6gyg37rq1681pfgv71cc3lksh2dn6jrn8nbq"
+ }
+ },
+ {
+ "ename": "thumb-through",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "1544xw9lar199idk135z4d6i3n9w0v7g2bq7fnz0rjjw10kxvpcx",
+ "fetcher": "github",
+ "repo": "apg/thumb-through",
+ "unstable": {
+ "version": [
+ 20120119,
+ 534
+ ],
+ "commit": "08d8fb720f93c6172653e035191a8fa9c3305e63",
+ "sha256": "0nypcryqwwsdawqxi7hgsv6fp28zqslj9phw7zscqqxzc3svaywn"
+ }
+ },
+ {
+ "ename": "tickscript-mode",
+ "commit": "c60ee1839f728c5041bde1fe4fa62c4d41c746ef",
+ "sha256": "0wnck6j377idx7h7csmfdhp6napv3zs4sd24lknfclafhslllp54",
+ "fetcher": "github",
+ "repo": "msherry/tickscript-mode",
+ "unstable": {
+ "version": [
+ 20171219,
+ 203
+ ],
+ "commit": "f0579f38ff14954df5002ce30ae6d4a2c978d461",
+ "sha256": "0b3rbsd978ch0hiv45sqg9g4zsxhjn557j5f72vjql8cx1h5d8s4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "commit": "6e7564593d7735acc9f3fa670ec6512991cb73a1",
+ "sha256": "173zk9nzjds0rkypmaq8xv5qianivgk16jpzgk0msdsn9kjbd8s9"
+ }
+ },
+ {
+ "ename": "tidal",
+ "commit": "16a26659a16199b5bb066be6e5c4a40419bda018",
+ "sha256": "0im0qbavpykacrwww3y0mlbhf5yfx8afcyvsq5pmjjp0aw245w6a",
+ "fetcher": "github",
+ "repo": "tidalcycles/Tidal",
+ "unstable": {
+ "version": [
+ 20200523,
+ 833
+ ],
+ "deps": [
+ "haskell-mode"
+ ],
+ "commit": "137192a2ef6c4f457ddba38a0397570266333854",
+ "sha256": "1wwmgzlqih3j8slggmi79xiy811qzlrwjqpd7y37lj508w96qppi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 1
+ ],
+ "deps": [
+ "haskell-mode"
+ ],
+ "commit": "7377b6c8ddc23d197018af203456063864df1457",
+ "sha256": "0vj55135h0mw093b9rlnq8hka9sj4kmhnv8xj46z2kcqj0qcq7q8"
+ }
+ },
+ {
+ "ename": "tide",
+ "commit": "a21e063011ebbb03ac70bdcf0a379f9e383bdfab",
+ "sha256": "1z2xr25s23sz6nrzzw2xg1l2j8jvjhxi53qh7nvxmmq6n6jjpwg1",
+ "fetcher": "github",
+ "repo": "ananthakumaran/tide",
+ "unstable": {
+ "version": [
+ 20200811,
+ 2114
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "flycheck",
+ "s",
+ "typescript-mode"
+ ],
+ "commit": "f0b6dac4829c3daecf02bf445a5b41b4c68f2911",
+ "sha256": "0533kxxl68vsx99b5nwdhy885nl2ad8wc6my38kardmklshjpvj1"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 7,
+ 4
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "flycheck",
+ "s",
+ "typescript-mode"
+ ],
+ "commit": "1878a097fc41ee81c40c155022c8feaaf8bfaa6d",
+ "sha256": "0ipri5jxx73vrra6dikbv0y2ws96wfi7bjh2v6pshiw3b1x2isav"
+ }
+ },
+ {
+ "ename": "tikz",
+ "commit": "fe4080be1b98c4016360113741a9bb6b3764e872",
+ "sha256": "07wbl8aih7p9gzjnljymryrrakq9ffwzd2l73h08hjvrr8ff92m9",
+ "fetcher": "github",
+ "repo": "emiliotorres/tikz",
+ "unstable": {
+ "version": [
+ 20200728,
+ 913
+ ],
+ "commit": "f1495516657da6dc2296ffb6c38a3bb4acf118ad",
+ "sha256": "0w9xff7y6zhb28b1cfbbam9gy7dp11i96yb4rn4lj8h2yry89293"
+ }
+ },
+ {
+ "ename": "tile",
+ "commit": "424cfd28378ef328721bb0dc3651808e64c01306",
+ "sha256": "1795048ilpg6y9pn0jj0js5446hwxhwm6qmk50hds0hpcb396vbv",
+ "fetcher": "github",
+ "repo": "IvanMalison/tile",
+ "unstable": {
+ "version": [
+ 20161225,
+ 357
+ ],
+ "deps": [
+ "dash",
+ "s",
+ "stream"
+ ],
+ "commit": "22660f21f6e95de5aba55cd5d293d4841e9a4661",
+ "sha256": "1qxhrm852j93sqi1lznlrjn7s0vscsixm48g46ja70gl320chyzm"
+ }
+ },
+ {
+ "ename": "time-ext",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "133vd63p8258wam4fvblhfg37w2zqy4a5c5c5nafwx0cy90sngwz",
+ "fetcher": "github",
+ "repo": "rubikitch/time-ext",
+ "unstable": {
+ "version": [
+ 20170126,
+ 1215
+ ],
+ "commit": "d128becf660fe3f30178eb1b05cd266741f4784a",
+ "sha256": "0ynxmik33hh0znmznrf7lkmsh5xggbrvbdhiqa61r0b7gs3jk5fd"
+ }
+ },
+ {
+ "ename": "timecop",
+ "commit": "eb13cb0dba1696cc51132cd1ff723fa17f892a7c",
+ "sha256": "1hnmxcc2hjx9a4jyavx2v9hxmqacmmg1xj86rxqx3ms32hgigji5",
+ "fetcher": "github",
+ "repo": "emacs-php/emacs-datetime",
+ "unstable": {
+ "version": [
+ 20160520,
+ 1052
+ ],
+ "deps": [
+ "cl-lib",
+ "datetime-format"
+ ],
+ "commit": "e6427538b547cbe02e1bd6ed4b765c73620bdae8",
+ "sha256": "1573z8wq5m8qzbzmnsz2fmbwrj9c0ava0jjfchzmwm2b3jyvqh5r"
+ }
+ },
+ {
+ "ename": "timer-revert",
+ "commit": "991e68c59d1fbaef06ba2583f07499ecad05586d",
+ "sha256": "0lvm2irfx9rb5psm1lf53fv2jjx745n1c172xmyqip5xwgmf6msy",
+ "fetcher": "github",
+ "repo": "yyr/timer-revert",
+ "unstable": {
+ "version": [
+ 20150122,
+ 2032
+ ],
+ "commit": "615c91dec8b440d2b9b7c725dd733d7432564e45",
+ "sha256": "1hidvbd1xzz9m0fc55wac1mpv4dpcf8qnw1myh3646bfvivj9c2q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "31ad8d94b85807cd9f63fcba0c90c3e9a9515fa2",
+ "sha256": "1vq5yp6pyjam2csz22mcp353a4d5r7f9m6bsjizfmgr2ld7bwhx7"
+ }
+ },
+ {
+ "ename": "timesheet",
+ "commit": "40009ef2f6845c83242ca5d0a8c9c2c1e4ef8a9d",
+ "sha256": "1gy6bf4wqvp8cw2wjnrr9ijnzwav3p7j46m7qrn6l0517shwl506",
+ "fetcher": "github",
+ "repo": "tmarble/timesheet.el",
+ "unstable": {
+ "version": [
+ 20191024,
+ 151
+ ],
+ "deps": [
+ "auctex",
+ "org",
+ "s"
+ ],
+ "commit": "5098dc87d3d4f289b6c1b6532070dacbfe6de9fd",
+ "sha256": "0wqxlb4a7fzf14629zw021216qyzz56xwr8hfh2fy6kj90m9br4c"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "deps": [
+ "auctex",
+ "org",
+ "s"
+ ],
+ "commit": "67ca6a9f6733052066b438301fb2dd81b8b3f6eb",
+ "sha256": "0rmh8lik27pmq95858jbjzgvf6rsfdnpynwcagj1fgkval5kzdbs"
+ }
+ },
+ {
+ "ename": "timonier",
+ "commit": "a31b0c177fd83bdeb1842a6ec3095de143bb4eae",
+ "sha256": "0vb83kv2dkca2bq876icxs8iivv9qgkzmzrsxfpnvbv752b220b0",
+ "fetcher": "github",
+ "repo": "nlamirault/timonier",
+ "unstable": {
+ "version": [
+ 20170411,
+ 800
+ ],
+ "deps": [
+ "all-the-icons",
+ "dash",
+ "f",
+ "hydra",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "0a150ea87bf695b43cf1740dfd7e553e0ae7601c",
+ "sha256": "18yls8zc8d5nhx8j3l5av5xvmxmjrrmbzzab59kc6zib0isgxlcz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "all-the-icons",
+ "dash",
+ "hydra",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "33ca5887a1d1b63349177237e9edfb73546511a5",
+ "sha256": "0z6s26kc50rbmgkkbxzpasphi8hcwhixmi8ksqzrclayccjjj7ar"
+ }
+ },
+ {
+ "ename": "timp",
+ "commit": "27896aeb813215a43aec07a5ddf0ab2176df38fb",
+ "sha256": "1vh2wsgd8bclkbzn59zqbzzfzs0xx6x82004l7vnma8z97swvhgs",
+ "fetcher": "github",
+ "repo": "mola-T/timp",
+ "unstable": {
+ "version": [
+ 20160618,
+ 803
+ ],
+ "deps": [
+ "cl-lib",
+ "fifo-class",
+ "signal"
+ ],
+ "commit": "66b21934b1eb8ee428c06dd64b3562ad44776a35",
+ "sha256": "1jbmc356cqmjann2wdjnikyb0l136lpjka6bjim0rjhipdnw2acn"
+ }
+ },
+ {
+ "ename": "tinkerer",
+ "commit": "8a28e1dfe987287bac7c45f83ae6e754bc13e345",
+ "sha256": "0qh6pzjn98jlpxcm9zf25ga0y3d3v53275a9zgswyhz33mafd7pd",
+ "fetcher": "github",
+ "repo": "yyr/tinkerer.el",
+ "unstable": {
+ "version": [
+ 20170906,
+ 1224
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "e34135555f3748b578c7f8706dfd0c888fb87581",
+ "sha256": "0lzrarqh965ysd7w0z5rbisl45j11fbibyxmgivgy9parvhg59hk"
+ }
+ },
+ {
+ "ename": "tiny",
+ "commit": "d3029dab001fff5d12e8a2bace6ddbf897842c26",
+ "sha256": "183qczyb6c8zmdgmsjsj4hddmvnzzq4c7syslm861xcyxia94icy",
+ "fetcher": "github",
+ "repo": "abo-abo/tiny",
+ "unstable": {
+ "version": [
+ 20190722,
+ 1212
+ ],
+ "commit": "fd8a6b0b0c564d8242259e20e557ee6041f40908",
+ "sha256": "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"
+ }
+ },
+ {
+ "ename": "tiny-menu",
+ "commit": "82700c97ca40130e7508c151f60220d3f23bf23c",
+ "sha256": "1nngf6vsqfr9fx82mj8dl8zw0fpwf4kr74sflxxk7qxj4aw1jirk",
+ "fetcher": "github",
+ "repo": "aaronbieber/tiny-menu.el",
+ "unstable": {
+ "version": [
+ 20161213,
+ 1235
+ ],
+ "commit": "05563b94537b6eb22aeddedef2a6e59e3f88d073",
+ "sha256": "0k0djq60mwhjiwy9dpy9m9bs507b9p19pdl3g2s8sd9i2fk53rfy"
+ }
+ },
+ {
+ "ename": "tinypng",
+ "commit": "c5b8b571d4c5766b392e58c6bc16924720856587",
+ "sha256": "04w19wzzpq3pzvv5d2pkijnn329ksqvcly4s9prp3gm7nqwi1r26",
+ "fetcher": "github",
+ "repo": "xuchunyang/tinypng.el",
+ "unstable": {
+ "version": [
+ 20200306,
+ 911
+ ],
+ "commit": "f7632e073ce13ef5ce30ae5584cb482a8bb9ffff",
+ "sha256": "1ywhj03j64pp2qmsp2g08xr7pq2qx3i0iwly2hl89hig87va0dpl"
+ }
+ },
+ {
+ "ename": "tinysegmenter",
+ "commit": "4f189290799f84282ff7cdecbb12a2a7cdfd1043",
+ "sha256": "005yy2f8vghvwdcwakz5sr9n1gzk6cfyglm6d8b74y90d8fng0r6",
+ "fetcher": "github",
+ "repo": "myuhe/tinysegmenter.el",
+ "unstable": {
+ "version": [
+ 20141124,
+ 1013
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "872134704bd25c13a4c59552433da4c6881b5230",
+ "sha256": "1n8cn6mr26hgmsm2mkbj5gs6dv61d0pap8ija4g0n1vsibfhzd8j"
+ }
+ },
+ {
+ "ename": "tj3-mode",
+ "commit": "dcf0f535a543bf36df9fb2e59c7fb9dfc00820f7",
+ "sha256": "06mhg0jc80cymplbri6axyzv18ayxppqz3vggywq9g2ba1vqj41h",
+ "fetcher": "github",
+ "repo": "csrhodes/tj3-mode",
+ "unstable": {
+ "version": [
+ 20180519,
+ 1228
+ ],
+ "commit": "1d98eb23f1606392f34ef1b80517cfc940fb9950",
+ "sha256": "1gzi8pvdgj4s9c54m2a8hicvg8dzac6253kyd2h71bljm4ilwl0f"
+ }
+ },
+ {
+ "ename": "tldr",
+ "commit": "45af2c5d1a36fcbf739812594c5cc878bf319a26",
+ "sha256": "1f1xsmkbf4j1c876qqr9h8fgx3zxjgdfzvzf6capxlx2svhxzvc9",
+ "fetcher": "github",
+ "repo": "kuanyui/tldr.el",
+ "unstable": {
+ "version": [
+ 20200330,
+ 1025
+ ],
+ "deps": [
+ "request"
+ ],
+ "commit": "269bda7001613c0b70c0662d2a74d200765c1dcb",
+ "sha256": "0z8hkp15sdb0x0g67v6xa8ds28awz4i2vcbryj5zfpl15d0fiqc2"
+ }
+ },
+ {
+ "ename": "tmmofl",
+ "commit": "8d29def44ae42dc4b60c1d254a57572bd09faf51",
+ "sha256": "1idflc5ky8hwdkps1rihdqy3i6cmhrh83sxz3kgf2kqjh365yr8b",
+ "fetcher": "github",
+ "repo": "phillord/tmmofl",
+ "unstable": {
+ "version": [
+ 20121025,
+ 1101
+ ],
+ "commit": "532aa6978e994e2b069ffe37aaf9a0011a07dadc",
+ "sha256": "1ypbv9jbdnwv3xjsfzq8i3nmqdvziynv2rqsd6fm2r1xw0q06xd6"
+ }
+ },
+ {
+ "ename": "tmux-pane",
+ "commit": "8bc165e115a2c457e44ac2762cf6a9f07f1b99c4",
+ "sha256": "0mv5y367i1wmk5kp8ms09xhrwvb4cwa08p39qy6mkakdhiby5m9q",
+ "fetcher": "github",
+ "repo": "laishulu/emacs-tmux-pane",
+ "unstable": {
+ "version": [
+ 20200730,
+ 520
+ ],
+ "deps": [
+ "names",
+ "s"
+ ],
+ "commit": "923524efe8e6e5e0d269de6bb253b45e02d9a663",
+ "sha256": "0bhck6vrb48zxfh5id637mq57k7jv4f2ax0lrhyvr0nw8m0ndqmx"
+ }
+ },
+ {
+ "ename": "toc-org",
+ "commit": "1305d88eca984a66039444da1ea64f29f1950206",
+ "sha256": "06mx2b0zjck82vp3i4bwbqlrzn05i2rkf8080cn34nkizi59wlbs",
+ "fetcher": "github",
+ "repo": "snosov1/toc-org",
+ "unstable": {
+ "version": [
+ 20190902,
+ 1055
+ ],
+ "commit": "5deaec41ed0e5c51715737d7f74c5ae1b3c00387",
+ "sha256": "041fpryiz9584m0sl31jz6bs86621mr7lk6pyhiml46n60iccfzp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "4315afd2a408c0d432ba3d8d040c2326c222fdbf",
+ "sha256": "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"
+ }
+ },
+ {
+ "ename": "todoist",
+ "commit": "b9a75eb89bfeb0b7362bf6d2ffaf6b4750984b3a",
+ "sha256": "0fspvqr0m36mxbrnkql1gl8hwlv8qxd48f632zqzylj0vsygaxhf",
+ "fetcher": "github",
+ "repo": "abrochard/emacs-todoist",
+ "unstable": {
+ "version": [
+ 20200517,
+ 1825
+ ],
+ "deps": [
+ "dash",
+ "org",
+ "transient"
+ ],
+ "commit": "b3f003603111b7e31b94c354cf4c83c8208c01c3",
+ "sha256": "0srk3chc45fl6zjwymzqwmxm22w9pcjxg7968c7fkvbqr21wk6p7"
+ }
+ },
+ {
+ "ename": "todotxt",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1ravnkj6y2p027yhba2lan10079xzd2q7l8gyb8n6bwq14jif127",
+ "fetcher": "github",
+ "repo": "rpdillon/todotxt.el",
+ "unstable": {
+ "version": [
+ 20200530,
+ 2337
+ ],
+ "commit": "b51f7fa1357d2cbc1b72b10d15f8c6f009ce5a46",
+ "sha256": "1asf33na834mc4ppvfyjxa70v4r80dnq641si5kd86gjfzjjjfmi"
+ }
+ },
+ {
+ "ename": "todotxt-mode",
+ "commit": "cdc1926c5de86749caba1ad2d1e75225a31a8558",
+ "sha256": "1bs4air13ifx3xkhcfi80z29alsd63r436gnyvjyxlph2ip37v7k",
+ "fetcher": "github",
+ "repo": "avillafiorita/todotxt-mode",
+ "unstable": {
+ "version": [
+ 20200228,
+ 952
+ ],
+ "commit": "8b616ce1cf3e18a60757450a0acf22996abb9b79",
+ "sha256": "1frvksra8s004xknlizs5gz5rhy9xbis5r353pzsybmn1bxa40wk"
+ }
+ },
+ {
+ "ename": "togetherly",
+ "commit": "05da36e2d57a57255423a24a34742cbac2f6c9a5",
+ "sha256": "01ks160dfmgh05lx0lmyg020hba8nw49mj51dp1afcsmx4dkis2f",
+ "fetcher": "github",
+ "repo": "zk-phi/togetherly",
+ "unstable": {
+ "version": [
+ 20170426,
+ 616
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a6491bd5dd84f2aded0cd112ff06ae76ff78dfeb",
+ "sha256": "05x6ppfkpklxf1098acs6gpd3zm9k05vhywa7n01y2g6nhp697pw"
+ }
+ },
+ {
+ "ename": "toggle",
+ "commit": "bd02426ce7ab46361363c7a6c56b1575642003e0",
+ "sha256": "08lk8h2dk5s8k93j5vmxdlgg453pif8wbcx2w3xkjlh43dw1vdfq",
+ "fetcher": "github",
+ "repo": "zenspider/elisp",
+ "unstable": {
+ "version": [
+ 20180316,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "fc9ec563430e3beaefc00b26da179f4b4ca9855b",
+ "sha256": "1m4v56yy73gvycsvpc36h7yh6yhn3fgp90rk5m248hz89gjf9kxv"
+ }
+ },
+ {
+ "ename": "toggle-quotes",
+ "commit": "0f6e83e3184d336891f76c4740f64646d58ea980",
+ "sha256": "16w453v4g7ww93bydim62p785x7w4vssp9l5liy0h3ppfmgvmxhp",
+ "fetcher": "github",
+ "repo": "toctan/toggle-quotes.el",
+ "unstable": {
+ "version": [
+ 20140710,
+ 926
+ ],
+ "commit": "33abc221d6887f0518337851318065cd86c34b03",
+ "sha256": "1w1lmqgzn9bp59h9y9plv80y53k6qhjgfmnnlqyyqfl45z3si7kg"
+ }
+ },
+ {
+ "ename": "toggle-test",
+ "commit": "8ea51a54b745d9978c5177182cd8501912aa2d01",
+ "sha256": "0n8m325jcjhz8g75ysb9whsd12gpxw8598y5065j7c7gxjzv45l1",
+ "fetcher": "github",
+ "repo": "rags/toggle-test",
+ "unstable": {
+ "version": [
+ 20140723,
+ 537
+ ],
+ "commit": "e969321f274903d705995a7d0345a257576ec5ff",
+ "sha256": "0sgaslqxj806byidh06h5pqmqz8jzjfz9ky8jvkif3cq3a479jby"
+ }
+ },
+ {
+ "ename": "toggle-window",
+ "commit": "5505f778052353abce10f9ceef56ce95f5a5b662",
+ "sha256": "1z080jywqj99xiwbvfclr6gjkc6spr3dqjb9kq1g4971vx4w8n9g",
+ "fetcher": "github",
+ "repo": "deadghost/toggle-window",
+ "unstable": {
+ "version": [
+ 20141207,
+ 1548
+ ],
+ "commit": "e82c60e543933880402ede11e9423e48a17dde53",
+ "sha256": "0f86aij1glmvgpbhmfpi441zy0r37zblb0q3ycgq0dp92x8yny5r"
+ }
+ },
+ {
+ "ename": "tomatinho",
+ "commit": "3fe20de5b2b5e5abe5be7468cea7c87f5b26b237",
+ "sha256": "1ad3kr73v75vjrc09mdvb7a3ws834k5y5xha3v0ldah38cl1pmjz",
+ "fetcher": "github",
+ "repo": "konr/tomatinho",
+ "unstable": {
+ "version": [
+ 20180621,
+ 1748
+ ],
+ "commit": "b53354b9b9f496c0388d6a573b06b7d6fc53d0bd",
+ "sha256": "0vf2b1c9raa723iy2gfdmxjv4q0ivixy1vbs1x5q09cibca8kp4x"
+ }
+ },
+ {
+ "ename": "toml",
+ "commit": "bab369a63ca0e7fcfacfcb9ac3847ac4e631b28c",
+ "sha256": "0kqv6zkywa7kqh8kg1dzcgkbi91lwx335przdakndm1lfai38i9b",
+ "fetcher": "github",
+ "repo": "gongo/emacs-toml",
+ "unstable": {
+ "version": [
+ 20130903,
+ 1255
+ ],
+ "commit": "9633a6872928e737a2335aae1065768b23d8c3b3",
+ "sha256": "1b3bkla6i5nvanifxchph6ab6ldrskdf240hy4d27dkmmnr3pban"
+ }
+ },
+ {
+ "ename": "toml-mode",
+ "commit": "f8157d7d11f1e1848f0ba384249b4b8c6354830b",
+ "sha256": "0yghf2ixl3dkcaxnkr4qzxfa9k1rrac7w5qpw1jx2bvic0cfs40l",
+ "fetcher": "github",
+ "repo": "dryman/toml-mode.el",
+ "unstable": {
+ "version": [
+ 20161107,
+ 1800
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06",
+ "sha256": "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"
+ }
+ },
+ {
+ "ename": "tommyh-theme",
+ "commit": "da9b40184e1559c33edd5e6dac6447013710cb79",
+ "sha256": "0nb9r407h08yxxdihxqx0c645bcz6qywbh2l654s3zfzdsqi1aj4",
+ "fetcher": "github",
+ "repo": "wglass/tommyh-theme",
+ "unstable": {
+ "version": [
+ 20131004,
+ 2330
+ ],
+ "commit": "46d1c69ee0a1ca7c67b569b891a2f28fed89e7d5",
+ "sha256": "0pwbd5gzmpr6js20438870w605671930291070nhmhswvxfcdvay"
+ }
+ },
+ {
+ "ename": "tongbu",
+ "commit": "e97578be9aa9bdadc6bdf6c7105242ca9d23bf80",
+ "sha256": "1gnjvb4w0mgr0swpqqk3hmscypv9bdg9q2ixkp2sv19d45gd4pvb",
+ "fetcher": "github",
+ "repo": "xuchunyang/tongbu.el",
+ "unstable": {
+ "version": [
+ 20200414,
+ 507
+ ],
+ "deps": [
+ "web-server"
+ ],
+ "commit": "6f6e5c5446f0c5735357ab520b249ab97295653e",
+ "sha256": "05pg1qddsl0m4r73smrxpcvyiwa18d9jl6i8nfanlydwmmjqblb9"
+ }
+ },
+ {
+ "ename": "tornado-template-mode",
+ "commit": "f329baae028fd17618824128f312a49aa0a0807e",
+ "sha256": "1sdv9rlhnabydws2sppsjcgqr0lg6bjapv753ksq5aaq21qsps0h",
+ "fetcher": "github",
+ "repo": "paradoxxxzero/tornado-template-mode",
+ "unstable": {
+ "version": [
+ 20141128,
+ 1008
+ ],
+ "commit": "667c0663dbbd279b6c345446b9f2bc50eb52b747",
+ "sha256": "0wv49gn1daylnjmnallpqsqy7630ynrp45agpiwi6kwyyqk1kdvv"
+ }
+ },
+ {
+ "ename": "torus",
+ "commit": "efc3b538861084cc13ff067a9258e55dc006b70d",
+ "sha256": "0zjidnc7nwbxs90spp373hx92vksd72vz4avmi4dbmhi89rdfhh0",
+ "fetcher": "github",
+ "repo": "chimay/torus",
+ "unstable": {
+ "version": [
+ 20190325,
+ 753
+ ],
+ "commit": "b309da8c2eaee573a2e2572f25a08ce5da9e9990",
+ "sha256": "0d6y2m4lh244542svzm856n014l7hjkffp5m0arwsvywqspq9vb9"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2
+ ],
+ "deps": [
+ "duo"
+ ],
+ "commit": "2fa2c92bf2c66d87ddcd519277e469f67c6615a9",
+ "sha256": "1i5n2f6jdr9p5mdq0g5j0kf19b3kirj00n36qc6nww3kzldwc4c1"
+ }
+ },
+ {
+ "ename": "total-lines",
+ "commit": "1b6455dd89167a854477a00284f64737905b54d8",
+ "sha256": "0zpli7gsb56fc3pzb3b2bs7dzr9glkixbzgl4p2kc249vz3jqajh",
+ "fetcher": "github",
+ "repo": "hinrik/total-lines",
+ "unstable": {
+ "version": [
+ 20171227,
+ 1239
+ ],
+ "commit": "473fa74a5416697ecd938866518bcad423f8fda6",
+ "sha256": "17jac25hwnklqzqpnrxjsq9s08c9rql9phcv8cq97cc36iwgw8gp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "58a9fb0ffca63e3dfb3b27c7d91b4630e422903b",
+ "sha256": "0ajbqrkg3v0yn8mj7dsv12w9zzcwjkabd776fabxamhcj6zbvza3"
+ }
+ },
+ {
+ "ename": "totd",
+ "commit": "9dc1e001585e1743047108ace180dfd7664ab8f1",
+ "sha256": "1bp07xl9yh9x6bi6cn8wz11x90jhv1rhxaig540iydjn5b0ny9m0",
+ "fetcher": "gitlab",
+ "repo": "egh/emacs-totd",
+ "unstable": {
+ "version": [
+ 20150519,
+ 1440
+ ],
+ "deps": [
+ "cl-lib",
+ "s"
+ ],
+ "commit": "ca47b618ea8290776cdb5b0f1c2c335691f69660",
+ "sha256": "188cdgic25wrb4jdgdcj070a0pxsh3m0rd9d2r6i1s1n1nalrs6g"
+ }
+ },
+ {
+ "ename": "tox",
+ "commit": "08a7433e16f2a9a2c04168600a9c99bc21c68ddf",
+ "sha256": "1z81x8fs5q6r19hpqphsilk8wdwwnfr8w78x5x298x74s9mcsywl",
+ "fetcher": "github",
+ "repo": "chmouel/tox.el",
+ "unstable": {
+ "version": [
+ 20160810,
+ 1555
+ ],
+ "commit": "7655eb254038d5e34433e8a9d66b3ffc9c72e40c",
+ "sha256": "1212b7s00kw9hk5gc2jx88hqd825rvkz1ss7phnxkrz833l062ki"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 0
+ ],
+ "commit": "7655eb254038d5e34433e8a9d66b3ffc9c72e40c",
+ "sha256": "1212b7s00kw9hk5gc2jx88hqd825rvkz1ss7phnxkrz833l062ki"
+ }
+ },
+ {
+ "ename": "toxi-theme",
+ "commit": "2e57d7abe1e43101558b27b0995f54f74a620b33",
+ "sha256": "1dyr8mp5p6j4c949dbzi4fqy86ay84yr3822ab8qx25hck1kdrhj",
+ "fetcher": "github",
+ "repo": "postspectacular/toxi-theme",
+ "unstable": {
+ "version": [
+ 20160424,
+ 2126
+ ],
+ "commit": "90c8828b91025adf5adc96011a35d25682991b8a",
+ "sha256": "1pnsky541m8kzcv81w98jkv0hgajh04hxqlmgddc1y0wbvi849j0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "9e572c6e149249b96f64722cf6f86c3aaf5f2ede",
+ "sha256": "0fn8ivq9i48w26c09963chc5v8gnvz0nxgqzzvkk4b7qki1rav2j"
+ }
+ },
+ {
+ "ename": "tql-mode",
+ "commit": "6a7c3dec5d970a4e819c0166a4b9846d74484b08",
+ "sha256": "0nrycix119vail6vk1kgqsli4l4cw8x49grc368n53w0xwngh0ns",
+ "fetcher": "github",
+ "repo": "tiros-dev/tql-mode",
+ "unstable": {
+ "version": [
+ 20170724,
+ 254
+ ],
+ "commit": "488add79eb3fc8ec02aedaa997fe1ed9e5c3e638",
+ "sha256": "09vkqr5n66w1q5f7m1vgiv0555v23wg6j46ri52lnnslsxpxhlyv"
+ }
+ },
+ {
+ "ename": "traad",
+ "commit": "2b3eb31c077fcaff94b74b757c1ce17650333943",
+ "sha256": "08gxh5c01xfbbj9g4992jah494rw3d3bbs8j79r3mpqxllkp2znf",
+ "fetcher": "github",
+ "repo": "abingham/emacs-traad",
+ "unstable": {
+ "version": [
+ 20180730,
+ 48
+ ],
+ "deps": [
+ "bind-map",
+ "dash",
+ "deferred",
+ "f",
+ "popup",
+ "request",
+ "request-deferred",
+ "virtualenvwrapper"
+ ],
+ "commit": "98e23363b7e8a590a2f55976123a8c3da75c87a5",
+ "sha256": "121p80vsa3xff1anwy876gvlpm0jdbfm5vaxszds73wrv6gih8m3"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "deferred",
+ "popup",
+ "request",
+ "request-deferred",
+ "virtualenvwrapper"
+ ],
+ "commit": "1f05cb4e5e96a90d2fb2bbc93093084327c40cf2",
+ "sha256": "14qg8aczcdf51w618zdzx3d48y9n4skjrg72yhgcm9a9lrs5v8y1"
+ }
+ },
+ {
+ "ename": "tracking",
+ "commit": "a2b295656d53fddc76cacc86b239e5648e49e3a4",
+ "sha256": "096h5bl7jcwz5hpbm2139bf8a784hijfy40vzf42y1c9794al46z",
+ "fetcher": "github",
+ "repo": "jorgenschaefer/circe",
+ "unstable": {
+ "version": [
+ 20171210,
+ 2102
+ ],
+ "commit": "89aac22259e5d09ae1183e0df163338fe491e9e7",
+ "sha256": "16hfahyhl1vv3r0amyvc514sw6x9x56b319lkp7bwcy8mxicc3cy"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 11
+ ],
+ "commit": "6ccd4b494cbae9d28091217654f052eaea321007",
+ "sha256": "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"
+ }
+ },
+ {
+ "ename": "tracwiki-mode",
+ "commit": "2e1e7315ee0e8d90df046e16948398f6f78aa3b2",
+ "sha256": "1k983f0lj42rxr5szpq9l9harykfn8jr13y3y6fav86zzd1fb8j0",
+ "fetcher": "github",
+ "repo": "merickson/tracwiki-mode",
+ "unstable": {
+ "version": [
+ 20150119,
+ 1621
+ ],
+ "deps": [
+ "xml-rpc"
+ ],
+ "commit": "6a620444d59b438f42383b48cd4c19c03105dba6",
+ "sha256": "1m25l1lyff4h0h4vjrcsziwbf8svqg2llvvgl8i2b4jbh7k7pk5f"
+ }
+ },
+ {
+ "ename": "tramp-auto-auth",
+ "commit": "0c8a8841cc7d7634f47610aeecc4a63b20f459f9",
+ "sha256": "033110y1kdkqm21pkzp9izp9ic7239km3xc8wifw4vs22js341jj",
+ "fetcher": "github",
+ "repo": "oitofelix/tramp-auto-auth",
+ "unstable": {
+ "version": [
+ 20191027,
+ 1419
+ ],
+ "deps": [
+ "tramp"
+ ],
+ "commit": "f15a12dfab651aff60f4a9d70f868030a12344ac",
+ "sha256": "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"
+ }
+ },
+ {
+ "ename": "tramp-hdfs",
+ "commit": "4c185553314a2a9fe18907fd9251077777b33538",
+ "sha256": "1l7s2z8yk3cbnffig9fds75jkjlkng76qglx5ankzva61dz1kf2b",
+ "fetcher": "github",
+ "repo": "raghavgautam/tramp-hdfs",
+ "unstable": {
+ "version": [
+ 20170821,
+ 1320
+ ],
+ "commit": "f8406f77bf83b66306ced693a5e4aaf606f46762",
+ "sha256": "15zr1fcmjk4mzjvmfbbkz5v9ryfgcjk0ag6rwxk8rp6wzwxcxvvl"
+ }
+ },
+ {
+ "ename": "tramp-term",
+ "commit": "5c84660c641f0bdf3cca8ad2a0f8f6e5d18b59c3",
+ "sha256": "1vbdwj8q66j6h5ijqzxhyaqf8wf9rbs03x8ppfijxl5qd2bhc1dy",
+ "fetcher": "github",
+ "repo": "randymorris/tramp-term.el",
+ "unstable": {
+ "version": [
+ 20190628,
+ 1207
+ ],
+ "commit": "fdc3d5a29ca9549db462cd66d8f5d97026a1200f",
+ "sha256": "1xznm3q2d4xffynqb1bkpcif8jr6mpkrir4hc7gmi4q987j2lpdr"
+ }
+ },
+ {
+ "ename": "transfer-sh",
+ "commit": "55dc23a82be3e85b46cfdee18697b1b096573924",
+ "sha256": "1pzsjibqbzkvfb4c5i271yb5jjadsclb383jfhi6jikpnm3vkf5g",
+ "fetcher": "gitlab",
+ "repo": "tuedachu/transfer-sh.el",
+ "unstable": {
+ "version": [
+ 20200601,
+ 1708
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "0621a66d00ec91a209a542c10b158095088bd44d",
+ "sha256": "1dnh8ws788if32wqnhzqjm38zjhpm9l3sq74245djnn1mx5bm56m"
+ }
+ },
+ {
+ "ename": "transient",
+ "commit": "ee7bfefdf4423d63706a6dcf128886ca6b514e6b",
+ "sha256": "04xkdspn475dlch5fcw21phhdhshxlbyznjbi0l7qk8snm130qpv",
+ "fetcher": "github",
+ "repo": "magit/transient",
+ "unstable": {
+ "version": [
+ 20200819,
+ 1133
+ ],
+ "commit": "f5d81ef0ed24be935f3c0192b746a1738d903d37",
+ "sha256": "0kyrf0nh9l9x1jwfca1921qc0w2ii1xp4ya4mv2jmanm3apbihb9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "a269614c69ad8b2703e6e5093d0017d6afad6cca",
+ "sha256": "0w50sh55c04gacx2pp19rvi0fwj9h19c9gzd8dpa82zjiidfxckr"
+ }
+ },
+ {
+ "ename": "transient-dwim",
+ "commit": "0ad7091aa6129c09e457c71274a42344acd6b823",
+ "sha256": "1q32if4i913vjbcpcdrfznjiih4c30ipnadn84zkr72wn5ndzlpq",
+ "fetcher": "github",
+ "repo": "conao3/transient-dwim.el",
+ "unstable": {
+ "version": [
+ 20200812,
+ 1033
+ ],
+ "deps": [
+ "transient"
+ ],
+ "commit": "de03d875dd89b1d838be67b0c44d9786adf96717",
+ "sha256": "0gb4k3758bv25vdw30rq0vbs94vdyss0xsiyaxnmvpfnj0v9k2cq"
+ }
+ },
+ {
+ "ename": "transmission",
+ "commit": "9ed7e414687c0bd82b140a1bd8044084d094d18f",
+ "sha256": "0w0hlr4y4xpcrpvclqqqasggkgrwnzrdib51mhkh3f3mqyiw8gs9",
+ "fetcher": "github",
+ "repo": "holomorph/transmission",
+ "unstable": {
+ "version": [
+ 20200620,
+ 402
+ ],
+ "deps": [
+ "let-alist"
+ ],
+ "commit": "7ed254437c1f95ce7f59e87e90d6ec5e4d91c01d",
+ "sha256": "15qim9dfir08hkqf0ynwf1953cq60726rkjyc32l8hkpjlgw23ar"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 12,
+ 1
+ ],
+ "deps": [
+ "let-alist"
+ ],
+ "commit": "03a36853f141387654b7cb9217c7417db096a083",
+ "sha256": "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"
+ }
+ },
+ {
+ "ename": "transpose-frame",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "1ksdc4d9k05452hcq4xx0j5nfl9n01z8abbca6j7j66bdf3m4l1b",
+ "fetcher": "github",
+ "repo": "emacsorphanage/transpose-frame",
+ "unstable": {
+ "version": [
+ 20200307,
+ 2119
+ ],
+ "commit": "12e523d70ff78cc8868097b56120848befab5dbc",
+ "sha256": "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "12e523d70ff78cc8868097b56120848befab5dbc",
+ "sha256": "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v"
+ }
+ },
+ {
+ "ename": "transpose-mark",
+ "commit": "e997b356b009b3d2ab467fe49b79d728a8cfe24b",
+ "sha256": "1q1icp1szm1bxz9ywwyrfbsm1wmx0h4cvzywrh9q0fj1fq387qvv",
+ "fetcher": "github",
+ "repo": "kwrooijen/transpose-mark",
+ "unstable": {
+ "version": [
+ 20150405,
+ 716
+ ],
+ "commit": "667327602004794de97214cf336ac61650ef75b7",
+ "sha256": "03wc50vn1kmrgnzzhs06pwpap2p2rx84wwzxw0hawsg1f1l35m2x"
+ }
+ },
+ {
+ "ename": "transwin",
+ "commit": "4b6dc821c99edd8ee6faa5289b0ecbdbb28f5f08",
+ "sha256": "0vrzf3xhwincsl4gg0fghczvwzicci0gjsvpfpjzcqz3m7ab6frb",
+ "fetcher": "github",
+ "repo": "jcs-elpa/transwin",
+ "unstable": {
+ "version": [
+ 20200704,
+ 356
+ ],
+ "commit": "df814cb578b0a4c01ed68f1da262df17d2a0a694",
+ "sha256": "0kfq7br70cn9jpjnc7lxgimqcw9cpp4yf95dkjalbk5l8w8gzlm2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "df814cb578b0a4c01ed68f1da262df17d2a0a694",
+ "sha256": "0kfq7br70cn9jpjnc7lxgimqcw9cpp4yf95dkjalbk5l8w8gzlm2"
+ }
+ },
+ {
+ "ename": "trashed",
+ "commit": "0a0609353c8ef01ca5da44b6239e1d4756da3a92",
+ "sha256": "0vpfga0kp2r9p0b91fm5y1nf15j8c3r4aqf4wsl12yqgy0v08s6f",
+ "fetcher": "github",
+ "repo": "shingo256/trashed",
+ "unstable": {
+ "version": [
+ 20200523,
+ 231
+ ],
+ "commit": "23e782f78d9adf6b5479a01bfac90b2cfbf729fe",
+ "sha256": "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 2
+ ],
+ "commit": "23e782f78d9adf6b5479a01bfac90b2cfbf729fe",
+ "sha256": "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"
+ }
+ },
+ {
+ "ename": "travis",
+ "commit": "c064a0dc7922cbe4cff2ae65665c4f10e6dbff27",
+ "sha256": "1km496cq1vni9gy2d3z4c9524q62750ywz745rjz4r7178ip9mix",
+ "fetcher": "github",
+ "repo": "nlamirault/emacs-travis",
+ "unstable": {
+ "version": [
+ 20150825,
+ 1138
+ ],
+ "deps": [
+ "dash",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "754ef07c17fed17ab03664ad11e2b0b2ef5e78ed",
+ "sha256": "1ciwf40ghlm4w9g4ynbc3d1a93gf6f3imm3m8z9kqfa7cnlsypb6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "pkg-info",
+ "request",
+ "s"
+ ],
+ "commit": "c8769d3db10ed4604969049e3bd276afa0a0138e",
+ "sha256": "1jd7xsvs4m55fscp62a9lk59ip4sgifv4kazl55b7543nz1i31bz"
+ }
+ },
+ {
+ "ename": "tree-mode",
+ "commit": "84f836338818946a6bb31d35d6ae959571128ed5",
+ "sha256": "1b15xgh96j4qas1kh4ghczcn7hb1ri86wnjgn9wz2d6bw3c6077b",
+ "fetcher": "github",
+ "repo": "emacsorphanage/tree-mode",
+ "unstable": {
+ "version": [
+ 20151104,
+ 1331
+ ],
+ "commit": "b06078826d5875d74b0e7b7ac47b0d0917610534",
+ "sha256": "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"
+ }
+ },
+ {
+ "ename": "treefactor",
+ "commit": "e3e956cbbaed3af8beeb927a730cb553df1fac21",
+ "sha256": "1jfsiv2adj0p2b118qmfzxljz523q1xcjq9x60h1a4xymm3kqb0y",
+ "fetcher": "github",
+ "repo": "cyberthal/treefactor",
+ "unstable": {
+ "version": [
+ 20200516,
+ 1631
+ ],
+ "deps": [
+ "avy",
+ "dash",
+ "f",
+ "org"
+ ],
+ "commit": "75357757022a4399ab772ff0d92065bd114dabe9",
+ "sha256": "0ks7ilc01j1jli1p1lqmqwcr3bfzn5p6vhxybc9wn2sk2sqn2kv8"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 2,
+ 2
+ ],
+ "deps": [
+ "avy",
+ "dash",
+ "f",
+ "org"
+ ],
+ "commit": "75357757022a4399ab772ff0d92065bd114dabe9",
+ "sha256": "0ks7ilc01j1jli1p1lqmqwcr3bfzn5p6vhxybc9wn2sk2sqn2kv8"
+ }
+ },
+ {
+ "ename": "treemacs",
+ "commit": "8fec46a8717fb5b0eedfba39b4b6001cce1c7145",
+ "sha256": "1vmqqq830ffqyp0jj9am60b88whvabzimpg12gp6wk86h41qpbqq",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/treemacs",
+ "unstable": {
+ "version": [
+ 20200816,
+ 939
+ ],
+ "deps": [
+ "ace-window",
+ "cl-lib",
+ "dash",
+ "f",
+ "ht",
+ "hydra",
+ "pfuture",
+ "s"
+ ],
+ "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+ "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8
+ ],
+ "deps": [
+ "ace-window",
+ "cl-lib",
+ "dash",
+ "f",
+ "ht",
+ "hydra",
+ "pfuture",
+ "s"
+ ],
+ "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
+ "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ }
+ },
+ {
+ "ename": "treemacs-all-the-icons",
+ "commit": "7e6c70295787573cbe4dcf761cc8147eee1b9e04",
+ "sha256": "0zkvpkfjs4lf2a6g5qlg0pr9alqmr8rvy02qh8pgqgismaz8c5s1",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/treemacs",
+ "unstable": {
+ "version": [
+ 20200801,
+ 920
+ ],
+ "deps": [
+ "all-the-icons",
+ "treemacs"
+ ],
+ "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+ "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
+ }
+ },
+ {
+ "ename": "treemacs-evil",
+ "commit": "37cca017cf529a0553ba73bcb824a945ec8b1137",
+ "sha256": "144klr1gqqzfqy7fx9lzngc2vljy6mnz7awk0z5f8vfclczkihw2",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/treemacs",
+ "unstable": {
+ "version": [
+ 20200716,
+ 2041
+ ],
+ "deps": [
+ "evil",
+ "treemacs"
+ ],
+ "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+ "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8
+ ],
+ "deps": [
+ "evil",
+ "treemacs"
+ ],
+ "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
+ "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ }
+ },
+ {
+ "ename": "treemacs-icons-dired",
+ "commit": "37cca017cf529a0553ba73bcb824a945ec8b1137",
+ "sha256": "075897b11aaj9h59gbcldz2wd5557h86pq28qkijbgay4i3piv9v",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/treemacs",
+ "unstable": {
+ "version": [
+ 20200530,
+ 2129
+ ],
+ "deps": [
+ "treemacs"
+ ],
+ "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+ "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8
+ ],
+ "deps": [
+ "cl-lib",
+ "treemacs"
+ ],
+ "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
+ "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ }
+ },
+ {
+ "ename": "treemacs-magit",
+ "commit": "1719c6bfc346e63f58221ea2c6e625b98f4ea368",
+ "sha256": "10c32rf76w26hhg1pyjlwj94adpjz1kic4hzapbckvcyzcwz6fql",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/treemacs",
+ "unstable": {
+ "version": [
+ 20200421,
+ 1426
+ ],
+ "deps": [
+ "magit",
+ "pfuture",
+ "treemacs"
+ ],
+ "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+ "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8
+ ],
+ "deps": [
+ "magit",
+ "pfuture",
+ "treemacs"
+ ],
+ "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
+ "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ }
+ },
+ {
+ "ename": "treemacs-persp",
+ "commit": "82679a4f04733556adb66bd31e2a56f2923b301c",
+ "sha256": "1r48rxhzx1qq9lfdp5plqgny8yh43f0qjwp0gr499g405ja2zyas",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/treemacs",
+ "unstable": {
+ "version": [
+ 20200530,
+ 2129
+ ],
+ "deps": [
+ "dash",
+ "persp-mode",
+ "treemacs"
+ ],
+ "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+ "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8
+ ],
+ "deps": [
+ "dash",
+ "persp-mode",
+ "treemacs"
+ ],
+ "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
+ "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ }
+ },
+ {
+ "ename": "treemacs-projectile",
+ "commit": "37cca017cf529a0553ba73bcb824a945ec8b1137",
+ "sha256": "1lldvpasvgsd5xvnlafddqp47w7rdvf3vqfhr26rxn99kj5s9xzp",
+ "fetcher": "github",
+ "repo": "Alexander-Miller/treemacs",
+ "unstable": {
+ "version": [
+ 20200530,
+ 2129
+ ],
+ "deps": [
+ "projectile",
+ "treemacs"
+ ],
+ "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+ "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8
+ ],
+ "deps": [
+ "projectile",
+ "treemacs"
+ ],
+ "commit": "16b0819c6f27f45fe0495a29eeff5f01bd765b04",
+ "sha256": "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"
+ }
+ },
+ {
+ "ename": "treepy",
+ "commit": "63c94a703841f8c11948200d86d98145bc62162c",
+ "sha256": "0jfah4vywi1b6c86h7vh8fspmklhs790qzkl51i9p7yckfggwp72",
+ "fetcher": "github",
+ "repo": "volrath/treepy.el",
+ "unstable": {
+ "version": [
+ 20191108,
+ 2217
+ ],
+ "commit": "3ac940e97f3d03e48ca9d7fcd74916a9b01c72f3",
+ "sha256": "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "3ac940e97f3d03e48ca9d7fcd74916a9b01c72f3",
+ "sha256": "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"
+ }
+ },
+ {
+ "ename": "trident-mode",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0l81hs7bp46jlk41b9fk1lkvlp17fqc5hcz8k8kkal7rh7ari1fd",
+ "fetcher": "github",
+ "repo": "johnmastro/trident-mode.el",
+ "unstable": {
+ "version": [
+ 20190410,
+ 2036
+ ],
+ "deps": [
+ "dash",
+ "skewer-mode",
+ "slime"
+ ],
+ "commit": "109a1bc10bd0c4b47679a6ca5c4cd27c7c8d4ccb",
+ "sha256": "0blbxjaddzhkvzlys46yrzszywmyjkmfhwks52v4laya76rgxm45"
+ }
+ },
+ {
+ "ename": "trinary",
+ "commit": "48fff02dde8a678e151f2765ea7c3a383912c68b",
+ "sha256": "1k2jpay1wx2m54fpja9mrhqyk15ikml8xf15irh8yrxb3hah8f8k",
+ "fetcher": "github",
+ "repo": "emacs-elsa/trinary-logic",
+ "unstable": {
+ "version": [
+ 20180904,
+ 2313
+ ],
+ "commit": "886232c6d7e92a8e9fe573eef46754ebe321f90d",
+ "sha256": "10h6p2dwl2k2p35pi3n8y85qh5y0zrr9nhfr4sviwzj1nbqdrvdr"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "dc10294af106ff3b110c372841eef0a8ec4c29c7",
+ "sha256": "0a1437hkcx2ba3jvvrn7f0x0gca36wagnhbq4ll2mlkmvdkac6is"
+ }
+ },
+ {
+ "ename": "tron-legacy-theme",
+ "commit": "975e93e060f50a1fd00a6ba1566a9386271bdfd6",
+ "sha256": "08cfhnkb62121h6dksw9c0d38vxm38dfbfww7c8kj491is0w63f4",
+ "fetcher": "github",
+ "repo": "ianpan870102/tron-legacy-emacs-theme",
+ "unstable": {
+ "version": [
+ 20200601,
+ 533
+ ],
+ "commit": "af17842821400a6fd466bb2769d13606e98550c0",
+ "sha256": "19pabaiza0lrvqa8yi0p83rffm9g44n6789m395iayfcxq49lylq"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 5,
+ 0
+ ],
+ "commit": "cdc052b044448654109bfb7d9b3d8bbfcf49042d",
+ "sha256": "0q1i2q6pkld8rz938yj9g68a55041d9vnps05nn4v1l8rx1x8jif"
+ }
+ },
+ {
+ "ename": "trr",
+ "commit": "56fa3c0b65e4e300f01804df7779ba6f1cb18cec",
+ "sha256": "068vqsyx8riqzfrmjk8wr81f68r2y2b6ymc2vvl6vka9rprvsfwr",
+ "fetcher": "github",
+ "repo": "kawabata/emacs-trr",
+ "unstable": {
+ "version": [
+ 20191019,
+ 1403
+ ],
+ "commit": "f841173e11213ac6916b2d3394b28fb202543871",
+ "sha256": "1s1rh1kz0r8cnsbjjsd61lz7wzf8kzhvbqimhglryckzjsn9jfmf"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 0
+ ],
+ "commit": "7500ae0a05a3e26888949208afcd0185cc1b1404",
+ "sha256": "0x1knf2jqkd1sdswv1w902jnlppih2yw6z028268nizl0c9q92yn"
+ }
+ },
+ {
+ "ename": "truthy",
+ "commit": "f7a7e319dbe17e2b31353e7d7cab51d557d86e9d",
+ "sha256": "1a56zmqars9fd03bkqzwpvgblq5fvq19n4jw04c4hpga92sq8wqg",
+ "fetcher": "github",
+ "repo": "rolandwalker/truthy",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "deps": [
+ "list-utils"
+ ],
+ "commit": "8ed8d07772aa8457554547eb17e264b5df2b4a69",
+ "sha256": "1mm6rrprsmx4hc622qmllm7c81yhwbqmdr0n6020krq92zmilmlm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 8
+ ],
+ "deps": [
+ "list-utils"
+ ],
+ "commit": "276a7e6b13606d28e4f2e423bb1ea30904c5def3",
+ "sha256": "18na22fhwqz80qinmnpsvp6ghc9irva1scixi6s4q6plmgr4m397"
+ }
+ },
+ {
+ "ename": "try",
+ "commit": "13c0ed40ad02fa0893cbf4dd9617dccb624f064b",
+ "sha256": "0dv0i77agva215bf1gj1x1k7f7g3pvccyyd7vslapf9z8brccn7n",
+ "fetcher": "github",
+ "repo": "larstvei/Try",
+ "unstable": {
+ "version": [
+ 20181204,
+ 236
+ ],
+ "commit": "8831ded1784df43a2bd56c25ad3d0650cdb9df1d",
+ "sha256": "0y26ybdsljph49w2834wssxgdx8ij7b6v4gp8jpgnbx118gr4jsz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "commit": "271b0a362cadf44d0694628b9e213f54516ef913",
+ "sha256": "1fvpi02c6awyrwg2yqjapvcv4132qvmvd9bkbwpjmndxpicsann3"
+ }
+ },
+ {
+ "ename": "ts",
+ "commit": "d8b0b0b20e2812a0ced3d38c07b466b3d200699d",
+ "sha256": "1pk2x9hjr57ph51w91zss46q8xrca34mgr6n5pbii5w8j1rgyd60",
+ "fetcher": "github",
+ "repo": "alphapapa/ts.el",
+ "unstable": {
+ "version": [
+ 20191010,
+ 210
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "df48734ef046547c1aa0de0f4c07d11964ef1f7f",
+ "sha256": "0hi0dfcwrr0vxp26v3f6radpmmwxbiz3px3br0cydfi6axikw9xl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "540f6a5adab5d881cc5f50835c0a3fe70e74b992",
+ "sha256": "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"
+ }
+ },
+ {
+ "ename": "ts-comint",
+ "commit": "4a1c08c22704ac689235b8d5cc36cc437ba7356a",
+ "sha256": "0cmh8ww6myiaz42867d0dqfi64lxrbna1lcwl6x6rmdgf15k6c1m",
+ "fetcher": "github",
+ "repo": "emacs-typescript/ts-comint",
+ "unstable": {
+ "version": [
+ 20181219,
+ 719
+ ],
+ "commit": "786b88fffc553e122868a1c4883f14136a040df6",
+ "sha256": "1103gb66db91rnqvs1adqzdsgjh14apb171zghd1dzswhjgiff8q"
+ }
+ },
+ {
+ "ename": "tss",
+ "commit": "d52e20f5ca38ed399d19f18f778b8601baf78460",
+ "sha256": "0d16x5r2xfy6mrwy0mqzpr9b3inqmyyxgawrxlfh83j1xb903dhm",
+ "fetcher": "github",
+ "repo": "aki2o/emacs-tss",
+ "unstable": {
+ "version": [
+ 20150913,
+ 1408
+ ],
+ "deps": [
+ "auto-complete",
+ "json-mode",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "81ac6351a2ae258fd0ebf916dae9bd5a179fefd0",
+ "sha256": "1bk5v9dffs65qsay0dp336s2ly065nd0cg572zz058ikwxd44zd3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "auto-complete",
+ "json-mode",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "1f302deea3d74462c71a9c62031f48b753e8915f",
+ "sha256": "1ma3k9bbw427cj1n2gjajbqii482jhs2lgjggz9clpc21bn5wqfb"
+ }
+ },
+ {
+ "ename": "tt-mode",
+ "commit": "62959f554db7aa24b2565baded19766b01e61f62",
+ "sha256": "02dzyycn5znbibbz50b243bh1kcccp8xwknjqwljk00gpf196vzf",
+ "fetcher": "github",
+ "repo": "davorg/tt-mode",
+ "unstable": {
+ "version": [
+ 20130804,
+ 1110
+ ],
+ "commit": "85ed3832e7eef391f7879d9990d59c7a3493c15e",
+ "sha256": "1gvqxk67cf779szyg907815i4m9jzrpmn5cnsmnwd62k3r3z4nxm"
+ }
+ },
+ {
+ "ename": "ttl-mode",
+ "commit": "f91dc8c20b7b8a06cc2ee25b6f376aac3a6ad2c8",
+ "sha256": "07jryy2dws2q0v3184fzijx68gz65rv83csfwr5llm9ic6xmw5ky",
+ "error": "Not in archive",
+ "fetcher": "github",
+ "repo": "nxg/ttl-mode"
+ },
+ {
+ "ename": "tuareg",
+ "commit": "01fb6435a1dfeebdf4e7fa3f4f5928bc75526809",
+ "sha256": "0wx723dmjlpm86xdabl9n8p22zbbxpapyfn6ifz0b0pvhh49ip7q",
+ "fetcher": "github",
+ "repo": "ocaml/tuareg",
+ "unstable": {
+ "version": [
+ 20200518,
+ 1820
+ ],
+ "deps": [
+ "caml"
+ ],
+ "commit": "ccde45bbc292123ec20617f1af7f7e19f7481545",
+ "sha256": "1yxv4bnqarilnpg5j7wywall8170hwvm0q4xx06yqjgcn8pq1lac"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 2,
+ 0
+ ],
+ "deps": [
+ "caml"
+ ],
+ "commit": "5796f08757a6d172d628834a40ba6379f318edf5",
+ "sha256": "06zxnn85fk5087iq0zxc5l5n9fz8r0367wylmynbfhc9711vccy6"
+ }
+ },
+ {
+ "ename": "tumble",
+ "commit": "579a441d153c4c7d9f8172be94983a632d6fab8f",
+ "sha256": "1c9ybq0mb2a0pw15fmm13vfwcnr2h9fb1xsm5nrff1cg7913pgv9",
+ "fetcher": "github",
+ "repo": "febuiles/tumble",
+ "unstable": {
+ "version": [
+ 20160112,
+ 729
+ ],
+ "deps": [
+ "cl-lib",
+ "http-post-simple"
+ ],
+ "commit": "e8fd7643cccf2b6ea4170f0c5f1f87d007e7fa00",
+ "sha256": "1xdkgvr1pnlg3nrjmma4ra80ysr8xbslvczg7cq1x1mqw6gn9xq5"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5
+ ],
+ "commit": "a1db6dac5720b9f468a79e0efce04f77c0a458e3",
+ "sha256": "0ihjjw5wxz5ybl3600k937pszw3442cijs4gbqqip9vhd5y9m8gy"
+ }
+ },
+ {
+ "ename": "tumblesocks",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "005w7vfzi4qpm59pxhq9nhp8hlwh4m1i7zj6l4knizcwm5xrm4ab",
+ "fetcher": "github",
+ "repo": "gcr/tumblesocks",
+ "unstable": {
+ "version": [
+ 20191014,
+ 356
+ ],
+ "deps": [
+ "htmlize",
+ "markdown-mode",
+ "oauth"
+ ],
+ "commit": "0e4c3847e31a59d405b9927107a23dde9531d744",
+ "sha256": "1gns60yj1ylm87456gzwr0gy0kivp5bd290rg6d8xbc86jdcls19"
+ }
+ },
+ {
+ "ename": "turing-machine",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "0q9a31m5wnz9j9l4i8czdl7z12nrcdjw72w8sqvf94ri2g5dbpkq",
+ "fetcher": "github",
+ "repo": "dieggsy/turing-machine",
+ "unstable": {
+ "version": [
+ 20180222,
+ 438
+ ],
+ "commit": "fa60b76a5bac1f54b7a1b3dc55aae7602c7e385b",
+ "sha256": "0k1r0zkcr44kiki8cvdqwx09xpvpz7nkbq9w6i4gqy5h78zy5k79"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "ad1dccc9c445f9e4465e1c67cbbfea9583153047",
+ "sha256": "0qaz4r5ahg2fxsfyxilb8c9956i5ra9vg80l82slm8vrnsinzll6"
+ }
+ },
+ {
+ "ename": "turkish",
+ "commit": "12cdbdf404fa859a48d1bb69f058321d7595d2a2",
+ "sha256": "0pdapxjbpj3lg3hxvwjn9v51jqaiz7a8053z2bmk4485vzs34532",
+ "fetcher": "github",
+ "repo": "emres/turkish-mode",
+ "unstable": {
+ "version": [
+ 20170910,
+ 1511
+ ],
+ "commit": "9831a316c176bb21a1b91226323ea4133163e00c",
+ "sha256": "0nrxi845gd24d5vymbmxz696jwld4rn6nw2dz1gzmdaks7bbv87m"
+ }
+ },
+ {
+ "ename": "turnip",
+ "commit": "73c341fec986ed965a46954b898f92a4725fdee6",
+ "sha256": "1vfqv71j47fn53klz3jl8r8hscywd01kkl4w96a308sac3lhbrps",
+ "fetcher": "github",
+ "repo": "kljohann/turnip.el",
+ "unstable": {
+ "version": [
+ 20150309,
+ 629
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "2fd32562fc6fc1cda6d91aa939cfb29f9b16e9de",
+ "sha256": "0khl4q22x6vdn87xdqqg5f535d4dqpnfbhk6qhlh187p1w7qaiq4"
+ }
+ },
+ {
+ "ename": "twig-mode",
+ "commit": "400c75bf336b8d610f0a2c1732cc78beb502e1f3",
+ "sha256": "1m3xjgmkqg8aj536wcg2f2hf4y6whscbsh7z7448hl4b5qjwii4n",
+ "fetcher": "github",
+ "repo": "moljac024/twig-mode",
+ "unstable": {
+ "version": [
+ 20130220,
+ 1850
+ ],
+ "commit": "2849f273a4855d3314a9c0cc84134f5b28ad5ea6",
+ "sha256": "0wvmih2y3hy7casxx2y1w8csmzfnfgbb5ivpggr94sc86p6bg8sa"
+ }
+ },
+ {
+ "ename": "twilight-anti-bright-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1wfj570l5k0ygqi9dwjskc78rpnxw6080bkw1zd1a8kl3fa28n2k",
+ "fetcher": "github",
+ "repo": "jimeh/twilight-anti-bright-theme",
+ "unstable": {
+ "version": [
+ 20160622,
+ 848
+ ],
+ "commit": "523b95fcdbf4a6a6483af314ad05354a3d80f23f",
+ "sha256": "0g6qqfgbg507r8lgq99zj2b5n3r9m23hpx19m36c3i55mh94dl2h"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "commit": "16d4ff2606789b506f0d2f53d12f02d5b1b64f9b",
+ "sha256": "0glw5lns7hwp8jznnfm6dyjw454sv2n84gy07ma7s1q3yczhq5bc"
+ }
+ },
+ {
+ "ename": "twilight-bright-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "039mg147cvb0pk59q3c1bpx7562bajgrs74xymylr89hvrxivxqh",
+ "fetcher": "github",
+ "repo": "jimeh/twilight-bright-theme.el",
+ "unstable": {
+ "version": [
+ 20130605,
+ 843
+ ],
+ "commit": "322157cb2f3bf7920ecd209dafc31bc1c7959f49",
+ "sha256": "1awqc4rvg8693myynb1d4y4dfdaxkd5blnixxs3mdv81l07zyn8c"
+ }
+ },
+ {
+ "ename": "twilight-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0g9bbb6m7q8x4zcw5gfmg7ljsfdmjh0335sq53b0lva0h3ra6kzx",
+ "fetcher": "github",
+ "repo": "developernotes/twilight-theme",
+ "unstable": {
+ "version": [
+ 20120412,
+ 1303
+ ],
+ "commit": "77c4741cb3dcf16e53d06d6c2ffdc660c40afb5b",
+ "sha256": "0d7vd1h0rwwgrh7f9kmdgy2ni0p20da9c8ylwlg33nsb26345wfs"
+ }
+ },
+ {
+ "ename": "twittering-mode",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0v9ijxw5jazh2hc0qab48y71za2l9ryff0mpkxhr3f79irlqy0a1",
+ "fetcher": "github",
+ "repo": "hayamiz/twittering-mode",
+ "unstable": {
+ "version": [
+ 20181121,
+ 1402
+ ],
+ "commit": "114891e8fdb4f06b1326a6cf795e49c205cf9e29",
+ "sha256": "1w1p5pg3ambixhc5l7490wf5qasw3xv9qg6f0xhfsnqk44fp70ia"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "commit": "27e7f3aab238bd0788fd3b471c645c3ceceb0f13",
+ "sha256": "193v98i84xybm3n0f30jin5q10i87vbcnbdhl4zqi7jij9p5v98z"
+ }
+ },
+ {
+ "ename": "typescript-mode",
+ "commit": "94455323364d5a6b00e2786d577134eb350826b4",
+ "sha256": "1abnik2dq0zfnp8pk8x6zy962qww78xadm87xyiwz17559g88d82",
+ "fetcher": "github",
+ "repo": "emacs-typescript/typescript.el",
+ "unstable": {
+ "version": [
+ 20200817,
+ 817
+ ],
+ "commit": "42a60e5c881082db2ec2c541a5c154308c4863e6",
+ "sha256": "14hn0v5gcbzj6y2xs30qyh8wba4l073x5281xd7xs05f9yv7dv5j"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "7a5c74d88e3c5513cc4431a837003736f905a75e",
+ "sha256": "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"
+ }
+ },
+ {
+ "ename": "typing",
+ "commit": "e6e75695594ce17b618ad8786c8a04e283f68b11",
+ "sha256": "0k2lplqzq3323nn7rybcs377sr87kbww8ci99rrka3yyb5bh1fa1",
+ "fetcher": "github",
+ "repo": "kensanata/typing",
+ "unstable": {
+ "version": [
+ 20180830,
+ 2203
+ ],
+ "commit": "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa",
+ "sha256": "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"
+ }
+ },
+ {
+ "ename": "typing-game",
+ "commit": "e6ced22932f0462c77d121a631c494c01a0a4eaa",
+ "sha256": "0k85j9bcqp0gbzdh44q5a9wlkv5mc0g0m42ziq1bzmp6993wkmy2",
+ "fetcher": "github",
+ "repo": "lujun9972/el-typing-game",
+ "unstable": {
+ "version": [
+ 20160426,
+ 1220
+ ],
+ "commit": "616435a5270274f4c7b698697674dbb2039049a4",
+ "sha256": "0dkrnn9fzqv793wvd3nc7dbslayj37q5na1w1g63g32z2s8aq09j"
+ }
+ },
+ {
+ "ename": "typit",
+ "commit": "d17d019155e19c156f123dcd702f18cfba488701",
+ "sha256": "05m7ymcq6fgbhh93ninrf3qi7csdnf2ahhf01mkm8gxxyaqq6m4n",
+ "fetcher": "github",
+ "repo": "mrkkrp/typit",
+ "unstable": {
+ "version": [
+ 20200217,
+ 2059
+ ],
+ "deps": [
+ "f",
+ "mmt"
+ ],
+ "commit": "f567867a0a519e17ad3552837b48d3d45fb73aa5",
+ "sha256": "0a5xds0mhfnq6kyc13s385vf4x4cqqpk2jiw1in7qg382fl8w2p0"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "f",
+ "mmt"
+ ],
+ "commit": "a4e3147dedac5535bdc8b06aca00f34f14f26e35",
+ "sha256": "0hbnwrhxj9wwjvxsk372ffgjqfkb3ljxhgi5h7wps2r15dxfvf3w"
+ }
+ },
+ {
+ "ename": "typo",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1p8is1n525lmzq588hj6vazmhl9wi6rairnfx1g1p6g6ijdycd4h",
+ "fetcher": "github",
+ "repo": "jorgenschaefer/typoel",
+ "unstable": {
+ "version": [
+ 20200706,
+ 1714
+ ],
+ "commit": "173ebe4fc7ac38f344b16e6eaf41f79e38f20d57",
+ "sha256": "09835zlfzxby5lpz9njl705nqc2n2h2f7a4vpcyx89f5rb9qhy68"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "e72171e4eb0b9ec80b9dabc3198d137d9fb4f972",
+ "sha256": "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"
+ }
+ },
+ {
+ "ename": "typo-suggest",
+ "commit": "d2dc0688a0e8371b5d74e16b6e73bc91d6a835ea",
+ "sha256": "0hp55apmm5z0zjz81ll746m9733rp7z0ylrl49a1vxzfpwx2fw47",
+ "fetcher": "github",
+ "repo": "kadircancetin/typo-suggest",
+ "unstable": {
+ "version": [
+ 20200801,
+ 1000
+ ],
+ "deps": [
+ "company",
+ "helm"
+ ],
+ "commit": "ac48f2e59daee15983a5fd13009f751e0d928ab1",
+ "sha256": "0kjyjav2bwrr2kwvdm3dx7mi966ji49n9hcw9dxx458bl72giwqf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "deps": [
+ "company",
+ "helm"
+ ],
+ "commit": "ac48f2e59daee15983a5fd13009f751e0d928ab1",
+ "sha256": "0kjyjav2bwrr2kwvdm3dx7mi966ji49n9hcw9dxx458bl72giwqf"
+ }
+ },
+ {
+ "ename": "typoscript-mode",
+ "commit": "701de09cb97cbfa49a3a81aaeb9577817566efa2",
+ "sha256": "18i2wwbn8vj5dbgxp2ds29n12v8ldvxjd1zb6h1g9lfh8iyrnjmx",
+ "fetcher": "github",
+ "repo": "ksjogo/typoscript-mode",
+ "unstable": {
+ "version": [
+ 20170126,
+ 912
+ ],
+ "deps": [
+ "use-package"
+ ],
+ "commit": "44e7567e921573c4f33c537b827f71fb1f565c32",
+ "sha256": "0i7l9s3lhxnld32mqyrvasiv1hilhwnp2fwvpdv2cx9r902q6kc8"
+ }
+ },
+ {
+ "ename": "ubuntu-theme",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "160z59aaxb2v6c24nki6bn7pjm9r4jl1mgxs4h4sivzxkaw811s2",
+ "fetcher": "github",
+ "repo": "rocher/ubuntu-theme",
+ "unstable": {
+ "version": [
+ 20150805,
+ 1506
+ ],
+ "commit": "88b0eefc75d4cbcde103057e1c5968d4c3052f69",
+ "sha256": "1v8d1pc0vjc7wz0prr5w5vp2qb19f3gcyl6jx5130plajbvv23rc"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 2
+ ],
+ "commit": "41f09ca6c203da93bdadb2077556efd48e3b5d5a",
+ "sha256": "0k41hwb6jgv3hngfrphlyhmfhvy4k05mvn0brm64xk7lj56y8q2c"
+ }
+ },
+ {
+ "ename": "ucs-utils",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "111fwg2cqqzpa79rcqxidppb12c8g12zszppph2ydfvkgkryb6z2",
+ "fetcher": "github",
+ "repo": "rolandwalker/ucs-utils",
+ "unstable": {
+ "version": [
+ 20150826,
+ 1414
+ ],
+ "deps": [
+ "list-utils",
+ "pcache",
+ "persistent-soft"
+ ],
+ "commit": "cbfd42f822bf5717934fa2d92060e6e24a813433",
+ "sha256": "0qw9vwl1p0pjw1xmshxar1a8kn6gmin5rdvvnnly8b5z9hpkjf3m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 4
+ ],
+ "deps": [
+ "list-utils",
+ "pcache",
+ "persistent-soft"
+ ],
+ "commit": "cbfd42f822bf5717934fa2d92060e6e24a813433",
+ "sha256": "0qw9vwl1p0pjw1xmshxar1a8kn6gmin5rdvvnnly8b5z9hpkjf3m"
+ }
+ },
+ {
+ "ename": "udev-mode",
+ "commit": "38ea66665abd85da45aa005ba0fc03891fbbee63",
+ "sha256": "1gwp1hays9afl09vqv5zyq9s8k5w28jwc7aya0j7h6fbw3hrxnfn",
+ "fetcher": "github",
+ "repo": "benley/emacs-udev-mode",
+ "unstable": {
+ "version": [
+ 20200702,
+ 1536
+ ],
+ "commit": "5ca236980662141518603672ebdbdf863756da5a",
+ "sha256": "15nspdkjwbvxbqxlhmpsbhdf1zij9zd2z2xxhkmvdyjy89w0hyzp"
+ }
+ },
+ {
+ "ename": "uimage",
+ "commit": "346cb25abdfdd539d121a9f34bce75b2fc5a16be",
+ "sha256": "0i6qpk6v4pmpk3zswygdy0dd7rxy8kl7qn8a1xanpi4aqg7wlbmd",
+ "fetcher": "github",
+ "repo": "lujun9972/uimage",
+ "unstable": {
+ "version": [
+ 20160901,
+ 1221
+ ],
+ "commit": "9893d09160ef7e8c0ecdcd74fca99ffeb5f9d70d",
+ "sha256": "1ri50nab778kpq49m54ra75z8dphagp9sz92is0636j4qy3sbih1"
+ }
+ },
+ {
+ "ename": "ujelly-theme",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0b7zgmpsdn5p3jx4kif7phxz8pb85snmmfr3yz98xf6p7h6w60gw",
+ "fetcher": "github",
+ "repo": "marktran/color-theme-ujelly",
+ "unstable": {
+ "version": [
+ 20180214,
+ 1624
+ ],
+ "commit": "bf724ce7806a738d2043544061e5f9bbfc56e674",
+ "sha256": "0pz26q5qfq4wiqcpfkq26f19q5gyiv8q71sq4k77hkss5a5b5fqg"
+ }
+ },
+ {
+ "ename": "ukrainian-holidays",
+ "commit": "8a8b5ec722600bcd5bf5fcc2b20262597a9e8c40",
+ "sha256": "0kbfj2l1rcv74c88nabkwkcl7k9pkim835l24q61zv3i6wf9sykf",
+ "fetcher": "github",
+ "repo": "abo-abo/ukrainian-holidays",
+ "unstable": {
+ "version": [
+ 20130720,
+ 1349
+ ],
+ "commit": "e52b0c92843e9f4d0415a7ba3b8559785497d23d",
+ "sha256": "033v4ck979lhkpwblci5clacfc1xnkq03p5d1m566wff8dp5flwz"
+ }
+ },
+ {
+ "ename": "uml-mode",
+ "commit": "d2dbf909ca733aef6a3da6c48165aa3d2e9dc186",
+ "sha256": "0arkq5cymlvnga5fgzjfy5a6i6zpr0g6m66ycmxa04h6qkd73m9i",
+ "fetcher": "github",
+ "repo": "ianxm/emacs-uml",
+ "unstable": {
+ "version": [
+ 20200129,
+ 1147
+ ],
+ "deps": [
+ "seq"
+ ],
+ "commit": "4c37ac1c4424b2313cd8f16ba48a98a4cc214200",
+ "sha256": "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"
+ }
+ },
+ {
+ "ename": "uncrustify-mode",
+ "commit": "5327aa1a1143c2257e9454663ff140f2371d07e3",
+ "sha256": "0amdxdfc8i99zjrw4iqmxzb47h0airs60fwmc32bc8b0ds66c3kd",
+ "fetcher": "github",
+ "repo": "koko1000ban/emacs-uncrustify-mode",
+ "unstable": {
+ "version": [
+ 20130707,
+ 1359
+ ],
+ "commit": "73893d000361e95784911e5ec268ad0ab2a1473c",
+ "sha256": "0366h4jfi0c7yda9wcrz4zxgf2qqdd08b8z2dr8c1rkvkdd67iam"
+ }
+ },
+ {
+ "ename": "undercover",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "09wfgskilv001mlvkiyw6yichkxd1wpz4j70r5mlzqgv7xfy7p1l",
+ "fetcher": "github",
+ "repo": "undercover-el/undercover.el",
+ "unstable": {
+ "version": [
+ 20191122,
+ 2126
+ ],
+ "deps": [
+ "dash",
+ "shut-up"
+ ],
+ "commit": "9f4fbd04cd25c61397a7058bf2bad33c7b669aa4",
+ "sha256": "13cn2cxspaqa9filclk66963by7khaci4lyrxgmjpdz04rijkh1q"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "shut-up"
+ ],
+ "commit": "86f856c799aacfd48d2eb42d1a6afda0e6e49845",
+ "sha256": "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"
+ }
+ },
+ {
+ "ename": "underline-with-char",
+ "commit": "811872acb9bc1ca588315ad74d6ad39f0dddfc8f",
+ "sha256": "1vz2b8wbgp3slczdgshxhm9li1jl8h2lhyr4vq61rh870h5lziy0",
+ "fetcher": "gitlab",
+ "repo": "marcowahl/underline-with-char",
+ "unstable": {
+ "version": [
+ 20191128,
+ 2309
+ ],
+ "commit": "36577e72aa4fbfa7f1abad01842359209f543751",
+ "sha256": "14ybav1f82m2gsxkciwlc0pm01ihqqaqq6arnjqvgxdnw0z6qniq"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 0,
+ 0
+ ],
+ "commit": "c2f4870aff70efe70a8d1b089e56d3a2d6d048b9",
+ "sha256": "0i6jfr4l7mr8gpavmfblr5d41ck8aqzaf4iv1qk5fyzsb6yi0nla"
+ }
+ },
+ {
+ "ename": "undersea-theme",
+ "commit": "0ee426fc0dcf1d8a4519ea9f953a8e20f1505f05",
+ "sha256": "1f2lkm4nv0sah2674wkfd50qx3mjg57618kcjvwam1q6qz2k1q41",
+ "fetcher": "github",
+ "repo": "jcs-elpa/undersea-theme",
+ "unstable": {
+ "version": [
+ 20200719,
+ 618
+ ],
+ "commit": "d4edb2cc110f1679ebc82cb52a4242cbc74636db",
+ "sha256": "0agn2j0qd516kxqx1bh6ajpandi8vz7zas966nw88yhv8m8hlzb2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "commit": "952d0c14258b0fd2d2e4642c6576708dac35c2f8",
+ "sha256": "005m1qzhqg25ymmh17mmp3g8ism5k8mz430ri689g26zzw4m76mh"
+ }
+ },
+ {
+ "ename": "underwater-theme",
+ "commit": "e7dccc77d082181629b8f0c45404ac5d8bd97590",
+ "sha256": "0ab2bcqfdi9ml3z9d511pbfwcbp8hkkd36xxp61k36gkyi3acvlr",
+ "fetcher": "github",
+ "repo": "jmdeldin/underwater-theme.el",
+ "unstable": {
+ "version": [
+ 20131118,
+ 2
+ ],
+ "commit": "4eb9ef014f580adc135d91d1cd68d37a310640b6",
+ "sha256": "1ypxpv5vw2ls757iwrq3zld6k0s29q3kg3spcsl5ks4aqpnkxpva"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "commit": "1fbd4ecd4538256c6c46f9638f883072c73ac927",
+ "sha256": "1g1ldyz42q3i2xlgvhd4s93cvkh0fm8m3l344zjcw8rvqaisyphj"
+ }
+ },
+ {
+ "ename": "undo-fu",
+ "commit": "0ca16994315f7d5dee9fff76db036e084162dc52",
+ "sha256": "1b0616zlblsd5405sfh02lxjyq6gl3s9m8vsxbqi6fryr4y750s9",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-undo-fu",
+ "unstable": {
+ "version": [
+ 20200701,
+ 1435
+ ],
+ "commit": "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca",
+ "sha256": "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"
+ }
+ },
+ {
+ "ename": "undo-fu-session",
+ "commit": "f39d9dc5e57554b42eca54ad5399a53947c2c25f",
+ "sha256": "0k9qxs3igzf7zcg1vd4v9npfiah512w9j2scnm333brmx4jfgvb7",
+ "fetcher": "gitlab",
+ "repo": "ideasman42/emacs-undo-fu-session",
+ "unstable": {
+ "version": [
+ 20200517,
+ 949
+ ],
+ "commit": "e2043f8350970e1a9ef06a94956a733826cdf32b",
+ "sha256": "14qlrdal1z64cqqssa34cw1yzsppslgwwy23060sxgjz2vvwwwfb"
+ }
+ },
+ {
+ "ename": "undo-propose",
+ "commit": "308eec15ebfd301b34f0d9f019250c9089c4d6e2",
+ "sha256": "0r0xswj9n24ghw44l1m1izapjqrfvcw8qn3qp61s2ly0i7la185j",
+ "fetcher": "github",
+ "repo": "jackkamm/undo-propose-el",
+ "unstable": {
+ "version": [
+ 20200204,
+ 1612
+ ],
+ "commit": "20409358ad321fb937152cf93a50a4a775e405d6",
+ "sha256": "0mc6qldsjh8671kayl6wxmmcb8q0wjcg09qr7ppmsmwzsd9ydn0n"
+ }
+ },
+ {
+ "ename": "undohist",
+ "commit": "7856a62fb86415c88aa72b574895328c93c10a09",
+ "sha256": "0nsf4y5zbyhw965rdshky03n999pz71f4sy1nrp0y99ld1z2mk49",
+ "fetcher": "github",
+ "repo": "emacsorphanage/undohist",
+ "unstable": {
+ "version": [
+ 20200120,
+ 1328
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6c905772e6aa9969fd9ca500d2fe93e114130fe6",
+ "sha256": "0hmx2b20nrxg2lb8vplgrzdh8chgxwlbmjvbq5scddggd302sd56"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6c905772e6aa9969fd9ca500d2fe93e114130fe6",
+ "sha256": "0hmx2b20nrxg2lb8vplgrzdh8chgxwlbmjvbq5scddggd302sd56"
+ }
+ },
+ {
+ "ename": "unfill",
+ "commit": "2ade389a20419b3e29a613409ac73a16b7c5bddb",
+ "sha256": "0b21dk45vbz4vqdbdx0n6wx30rm38w1jjqbsxfj7b96p3i5shwqv",
+ "fetcher": "github",
+ "repo": "purcell/unfill",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2218
+ ],
+ "commit": "6a3f9e929489ebac5aa26862363410144d84409e",
+ "sha256": "0jdk2r6jlynswjz047zz2v3dyfq94inf1zbsriq1b8fmia018gah"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "88186dce0de69e8f4aeaf2bfdc77d62210f19cd8",
+ "sha256": "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"
+ }
+ },
+ {
+ "ename": "unicode-emoticons",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0sp4sb2yw9msyqxgp4q5z9pzfvqwhizd1sx8w63g1vis6n2h254r",
+ "fetcher": "github",
+ "repo": "hagleitn/unicode-emoticons",
+ "unstable": {
+ "version": [
+ 20150204,
+ 1108
+ ],
+ "commit": "fb18631f342b0243cf77cf59ed2067c47aae5233",
+ "sha256": "015gjf8chd6h9azhyarmskk41cm0cmg981jif7q81hakl9av6rhh"
+ }
+ },
+ {
+ "ename": "unicode-enbox",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "1phb2qq3pg6z6bl96kl9yfq4jxhgardjpaa4lhgqbxymmqdm7gzv",
+ "fetcher": "github",
+ "repo": "rolandwalker/unicode-enbox",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "deps": [
+ "list-utils",
+ "pcache",
+ "persistent-soft",
+ "string-utils",
+ "ucs-utils"
+ ],
+ "commit": "77074fac1994a4236f111d6a1d0cf79ea3fca151",
+ "sha256": "0936dqxyp72if9wvn2dcci670yp1gqrmpnll9xq00skp85yq9zs5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "pcache",
+ "persistent-soft",
+ "string-utils",
+ "ucs-utils"
+ ],
+ "commit": "ff313f6778bb96481c0ee3291b07a7db46f21ff5",
+ "sha256": "0n06dvf6r7qblz8vz38qc37xrn29wa1c0jyzis1qw9zzf6hmmzj7"
+ }
+ },
+ {
+ "ename": "unicode-escape",
+ "commit": "b2ae00434b80357dc62cd0177dbd714b25fb3ac7",
+ "sha256": "0gcwkv7qbdnvak10jfzj9irb7nkfqsfxv2n5fi8vvrk90j1a2i2k",
+ "fetcher": "github",
+ "repo": "kosh04/unicode-escape.el",
+ "unstable": {
+ "version": [
+ 20160614,
+ 1234
+ ],
+ "deps": [
+ "dash",
+ "names"
+ ],
+ "commit": "fc69ec780d9e54c364a9252bd0cf1d2507f3fab7",
+ "sha256": "1bqknk6y7r0dqhmwhq3ac56cqf0albp18h222klnijv4bazjfcjw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "names"
+ ],
+ "commit": "b9cee7af45be62119b97033dc639bd1b5ed858f3",
+ "sha256": "09dgxb1z9kdbs8wri9sl5daygp1bgqcng40vyfv5y0ic50w08ksf"
+ }
+ },
+ {
+ "ename": "unicode-fonts",
+ "commit": "83459421dd2eb3d60ec668c3d5bb38d99ee64aff",
+ "sha256": "0plipwb30qqay8691qzqdyg6smpbs9dsxxi49psb8sq0xnxl84q3",
+ "fetcher": "github",
+ "repo": "rolandwalker/unicode-fonts",
+ "unstable": {
+ "version": [
+ 20200803,
+ 1335
+ ],
+ "deps": [
+ "font-utils",
+ "list-utils",
+ "pcache",
+ "persistent-soft",
+ "ucs-utils"
+ ],
+ "commit": "e3942fe40b418bfb2dc4e73633e09195437fef01",
+ "sha256": "1vyldpmbi92yqzj0v7wbxma86f3cla0jhxbmq8jzl94pqy6q98jc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 10
+ ],
+ "deps": [
+ "font-utils",
+ "list-utils",
+ "pcache",
+ "persistent-soft",
+ "ucs-utils"
+ ],
+ "commit": "7b88ae84e589f6c8b9386b2fb5a02ff4ccb91169",
+ "sha256": "07wzcfj92jiadgd6nj5rmxky2aiaxs89j7zywp877xdp4vv0v512"
+ }
+ },
+ {
+ "ename": "unicode-math-input",
+ "commit": "e0d39bc129500e55b99c11b3d27e042619777414",
+ "sha256": "1hra3vf6nzh99piagbxsmp0sizvki2jl7qkfmlwd5nwmicw0ykrq",
+ "fetcher": "github",
+ "repo": "astoff/unicode-math-input.el",
+ "unstable": {
+ "version": [
+ 20190813,
+ 1436
+ ],
+ "commit": "ba45edbfb8fa453e29c4c6c73af60f06637951d6",
+ "sha256": "1sil8lnvpdwk0g30mbqymp6ib325q28a8zn3n9y6j39ngphpkffl"
+ }
+ },
+ {
+ "ename": "unicode-progress-reporter",
+ "commit": "83459421dd2eb3d60ec668c3d5bb38d99ee64aff",
+ "sha256": "03z7p27470fqy3gd356l9cpp44a35sfrxz94dxmx388rzlygk7y7",
+ "fetcher": "github",
+ "repo": "rolandwalker/unicode-progress-reporter",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "deps": [
+ "list-utils",
+ "pcache",
+ "persistent-soft",
+ "ucs-utils"
+ ],
+ "commit": "5e66724fd7d15743213b082474d798117b194494",
+ "sha256": "16jgm70ldsngxldiagjkw3ragypalpiidnf82g5hss9ciybkd3j4"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 4
+ ],
+ "deps": [
+ "pcache",
+ "persistent-soft",
+ "ucs-utils"
+ ],
+ "commit": "f4705332412b12fc72ca868b77c78465561bda75",
+ "sha256": "0qy1hla7vf674ynqdzsaw2cnk92nhpcimww5q94rc0a95pzw64wd"
+ }
+ },
+ {
+ "ename": "unicode-troll-stopper",
+ "commit": "b463925a98b7dde78d85693c7681fd2346d90895",
+ "sha256": "0a10lq0xsfyp052iw4xjbhsdkbyg25x2gk68gys4k7p6l92la0k5",
+ "fetcher": "github",
+ "repo": "camsaul/emacs-unicode-troll-stopper",
+ "unstable": {
+ "version": [
+ 20190209,
+ 411
+ ],
+ "commit": "5e8be35a7bf6382384a701663f7438ee27e4b67c",
+ "sha256": "0xjh017kjhj93j72r5hdpiabv76szlmpivlfyhg9vzysdmix45qv"
+ }
+ },
+ {
+ "ename": "unicode-whitespace",
+ "commit": "f9892a826f3ac335d12bd1a07202334e28a44f40",
+ "sha256": "1b3jgha8va42b89pdp41sab2w9wllp7dicqg4lxl67bg6wn147wy",
+ "fetcher": "github",
+ "repo": "rolandwalker/unicode-whitespace",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "deps": [
+ "list-utils",
+ "pcache",
+ "persistent-soft",
+ "ucs-utils"
+ ],
+ "commit": "a18c6b38d78b94f2eb1dcc4cb4fa91b6a17efabe",
+ "sha256": "1ayb15nd5vqr0xaghrnp55kqw7bblrjipmfrag6bqpn7jk9bvbdz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 4
+ ],
+ "deps": [
+ "pcache",
+ "persistent-soft",
+ "ucs-utils"
+ ],
+ "commit": "6d29f25d46b3344c74ce289fc80b3d4fc17ed6db",
+ "sha256": "0q7cbl89yg3fjxaxsqsksxhw7ibdslbb004z5y1m579n7zgcrljy"
+ }
+ },
+ {
+ "ename": "unidecode",
+ "commit": "f9ba8e425e37e80a2236832c3f12568546d4c7c9",
+ "sha256": "0vhghnyj8a5mcqq5rzajrm1izzfry77pd1wxhmra5yp9ribw2sv5",
+ "fetcher": "github",
+ "repo": "sindikat/unidecode",
+ "unstable": {
+ "version": [
+ 20180312,
+ 1926
+ ],
+ "commit": "5502ada9287b4012eabb879f12f5b0a9df52c5b7",
+ "sha256": "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"
+ }
+ },
+ {
+ "ename": "unifdef",
+ "commit": "805d7ed87c68f45aa878a19816c21c1122501c01",
+ "sha256": "0d0k7h7bsgfmbnx697jc87mdhjqiw8wg6r8k4ay8cxfp2bxqnwkg",
+ "fetcher": "github",
+ "repo": "Lindydancer/unifdef",
+ "unstable": {
+ "version": [
+ 20200517,
+ 514
+ ],
+ "commit": "7a4b76f664c4375e3d98e8af0a29270752c13701",
+ "sha256": "0xx954cyvzndj7fy6k203nlnhaxi6d0pn3xrvy287dh9ydklng0m"
+ }
+ },
+ {
+ "ename": "unify-opening",
+ "commit": "0a2faab13744262ef4d12750f70b300b3afd2835",
+ "sha256": "1gpmklbdbmv8va8d3yr94r1ydkcyvdzcgxv56rp0bxwbcgmk0as8",
+ "fetcher": "github",
+ "repo": "DamienCassou/unify-opening",
+ "unstable": {
+ "version": [
+ 20171122,
+ 2012
+ ],
+ "commit": "502469ddba6d8d52159f53976265f7d956b6b17c",
+ "sha256": "0mni9vnbs50wvgnwfjwgzlwfff38h3wbrpr20nv84dmfh8ac0v61"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "commit": "502469ddba6d8d52159f53976265f7d956b6b17c",
+ "sha256": "0mni9vnbs50wvgnwfjwgzlwfff38h3wbrpr20nv84dmfh8ac0v61"
+ }
+ },
+ {
+ "ename": "unipoint",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0fm7anwcmga9adyfwlri7x014rpvfl1r6nccyi6lrpx126wy008s",
+ "fetcher": "github",
+ "repo": "apg/unipoint",
+ "unstable": {
+ "version": [
+ 20140113,
+ 2224
+ ],
+ "commit": "5da04aebac35a5c9e1d8704f2231808d42f4b36a",
+ "sha256": "1wl9rzys1zr2c41h5i57y6hxsavix1b26f453l2izmb6r0b1dvh0"
+ }
+ },
+ {
+ "ename": "unison",
+ "commit": "ee7ee1a68486f822c1627fb0bf066c4ae8bc0776",
+ "sha256": "03v10r6d4r6z66s9q7mg1iyxh53f3l6q7dij7pfbf32migqjgpir",
+ "fetcher": "github",
+ "repo": "unhammer/unison.el",
+ "unstable": {
+ "version": [
+ 20160704,
+ 740
+ ],
+ "commit": "a78a04c0d1398d00f75a1bd4799622a65bcb0f28",
+ "sha256": "1jn23wlhpka5pv0caipxi8bg3cc6wj1fg09abibhydy4p3mb3bi5"
+ }
+ },
+ {
+ "ename": "unison-mode",
+ "commit": "bd5b5c16e504ee8e511bbc65acbc0ff65f99eaf4",
+ "sha256": "03kyr1h5pm51vn4bykj13rm4ybln266rpnxh65y2ygw8f8md88gl",
+ "fetcher": "github",
+ "repo": "impaktor/unison-mode",
+ "unstable": {
+ "version": [
+ 20160513,
+ 1501
+ ],
+ "commit": "0bd6a65c0d12f87fcf7bdff15fe54444959b93bf",
+ "sha256": "1snbvhvx2csw1f314dbdwny8yvfq834plpkzx0vl4k3wddmr3a66"
+ }
+ },
+ {
+ "ename": "unisonlang-mode",
+ "commit": "5811216040e25a78c8eef9f9d90176173229eb4e",
+ "sha256": "0pckg82iawswaljp6yk9vd6piwjsfky3zzdf3gyj1b2phhr9zz3x",
+ "fetcher": "github",
+ "repo": "dariooddenino/unison-mode-emacs",
+ "unstable": {
+ "version": [
+ 20200803,
+ 808
+ ],
+ "commit": "2b794adbe0b2a4edd40f350173a32b80bd2c5896",
+ "sha256": "0zy3la6n51kgybjxibcsj13m6381p6klsq98h1sym8mxm2k2s78y"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "f793430068ade1b0a2d744aaa45f569c9dec9085",
+ "sha256": "129xk966kkhwn0ym80739r23kwds09qjiavd01ddnb3pfhbjfbrk"
+ }
+ },
+ {
+ "ename": "universal-emotions-emoticons",
+ "commit": "57f913112c98db2248cf69e44deb69fd09cee042",
+ "sha256": "1aj3k3yrvasn3zmfwz5si046hlyhnjdmxh7i8li6rc0v0qwl7p86",
+ "fetcher": "github",
+ "repo": "grettke/universal-emotions-emoticons",
+ "unstable": {
+ "version": [
+ 20180729,
+ 1941
+ ],
+ "commit": "9cedd09ee65cb9fa71f27b0ab46a8353bdc00902",
+ "sha256": "17blqfnf384l2hd2igrw5p0zblw6bxz69vvzli22nr84kpkh5jx4"
+ }
+ },
+ {
+ "ename": "unkillable-scratch",
+ "commit": "822ac5610f333e41b676a29ef45a6f8bfea3162e",
+ "sha256": "0ghbpa9pf7k6vd2mjxkpqg2qfl4sd40ir6mrk1rxr1rv8s0afkf7",
+ "fetcher": "github",
+ "repo": "EricCrosson/unkillable-scratch",
+ "unstable": {
+ "version": [
+ 20190309,
+ 17
+ ],
+ "commit": "b24c2a760529833f230c14cb02ff6e7ec92288ab",
+ "sha256": "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "dac9dbed946a26829e6227ac15c0fa1d07ccd05f",
+ "sha256": "0fgipv93x47cvyww07cqx8xa95jz36y6fy5rmaq40jnnmdkgq862"
+ }
+ },
+ {
+ "ename": "unobtrusive-magit-theme",
+ "commit": "6dd57561738c2dc3ed6dc03f57d2487ce949f035",
+ "sha256": "05djixlq49dn1m64xs8b6w4kg650wrr8rs2pb72p1kfvp2a53g7w",
+ "fetcher": "github",
+ "repo": "tee3/unobtrusive-magit-theme",
+ "unstable": {
+ "version": [
+ 20200411,
+ 1349
+ ],
+ "commit": "aede357009655d19d4468320b2b61b0f26a47593",
+ "sha256": "1af8c7q3vxj23l2ah5waj9hn5pfp66834b4akm76jc5wqf0sr9j1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "commit": "aede357009655d19d4468320b2b61b0f26a47593",
+ "sha256": "1af8c7q3vxj23l2ah5waj9hn5pfp66834b4akm76jc5wqf0sr9j1"
+ }
+ },
+ {
+ "ename": "untitled-new-buffer",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0fqnwas6917338a896yi6y1fnp2yhpmkpk001wrw7fmybfqzw05y",
+ "fetcher": "github",
+ "repo": "emacs-jp/untitled-new-buffer.el",
+ "unstable": {
+ "version": [
+ 20161212,
+ 1508
+ ],
+ "deps": [
+ "magic-filetype"
+ ],
+ "commit": "4eabc6937b0e83062ffce9de0d42110224063a6c",
+ "sha256": "139gysva6hpsk006bcbm1689pzaj18smxs2ar5pv0yvkh60wjvlr"
+ }
+ },
+ {
+ "ename": "upbo",
+ "commit": "e5232078b065dcca04388ccc76aa01a6159395d5",
+ "sha256": "15rqz9z49363anrhli08vk155wp21hq3j7xsvd98lkq9ip6aglns",
+ "fetcher": "github",
+ "repo": "shiren/upbo",
+ "unstable": {
+ "version": [
+ 20180422,
+ 822
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "1e4b1e7f44f242a6cdcce0c157d07efe667b7bef",
+ "sha256": "16ic97lpw1d9bqcc0fvzv2n62xb5rlpi92cha3jpy7flbp8ys143"
+ }
+ },
+ {
+ "ename": "uptimes",
+ "commit": "72099e35ce3e34ec6afc6a3f87a4da07ec91499a",
+ "sha256": "0r8s5c2hdcb1ly7rnhzar4qzf1c9d49gd914ndnc3mg9yb9gyy5h",
+ "fetcher": "github",
+ "repo": "davep/uptimes.el",
+ "unstable": {
+ "version": [
+ 20191121,
+ 1030
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "29ae6585eeed5a00719b2e52f5ae1082087c1778",
+ "sha256": "0njpgw4is5lbv499jpc9c987yfvr6srhcmvg6wl631kpv0h8q9a9"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 8
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "29ae6585eeed5a00719b2e52f5ae1082087c1778",
+ "sha256": "0njpgw4is5lbv499jpc9c987yfvr6srhcmvg6wl631kpv0h8q9a9"
+ }
+ },
+ {
+ "ename": "url-shortener",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "08zsirsndhr8xny2vkzznkvjs0b6490lzd915ws6crdwxp6mx5si",
+ "fetcher": "github",
+ "repo": "yuyang0/url-shortener",
+ "unstable": {
+ "version": [
+ 20170805,
+ 242
+ ],
+ "commit": "06db8270213b9e352d6c335b0663059a1353d05e",
+ "sha256": "1ndcajgvfl46zw2iwgghvcldsy9p778pifkhlanivc6azajhpjhh"
+ }
+ },
+ {
+ "ename": "urlenc",
+ "commit": "5c36c416a13328ab762041dd62407b7b0696de93",
+ "sha256": "0n6shh95m11162zsnf62zy1ljswdjznjilxx2dbqyqdrn7qr2dgh",
+ "fetcher": "github",
+ "repo": "buzztaiki/urlenc-el",
+ "unstable": {
+ "version": [
+ 20140116,
+ 1456
+ ],
+ "commit": "835a6dcb783bbe84714bae87a3464aa0b128bfac",
+ "sha256": "0xwr0v4f64d7hi5ldig4r5yjn8h3f8by49g5820187lsp7ng2nw4"
+ }
+ },
+ {
+ "ename": "urscript-mode",
+ "commit": "b4ae680b51a85749ed254215bbd4a35909961049",
+ "sha256": "1jjmpg9r7vwa8284chx9yc1ifn36m7ml1ks4ls8hnsxachbv7wlh",
+ "fetcher": "github",
+ "repo": "guidoschmidt/urscript-mode",
+ "unstable": {
+ "version": [
+ 20190219,
+ 1604
+ ],
+ "commit": "b341f96b129ead8fb74d680cb4f546985bf110a9",
+ "sha256": "0qhncqsvsrpgc47ixsp436imfm0l6pd1kbpjjk426wrnzaszrpkc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "b341f96b129ead8fb74d680cb4f546985bf110a9",
+ "sha256": "0qhncqsvsrpgc47ixsp436imfm0l6pd1kbpjjk426wrnzaszrpkc"
+ }
+ },
+ {
+ "ename": "usage-memo",
+ "commit": "ad10a684b4b2f01bc65883374f36fef156ff55d2",
+ "sha256": "0fv96xd6gk12nv98zccwncr00qms0pmrp0cv7iipbz54s20g0745",
+ "fetcher": "github",
+ "repo": "rubikitch/usage-memo",
+ "unstable": {
+ "version": [
+ 20170926,
+ 37
+ ],
+ "commit": "88e15a9942a3e0a6e36e9c3e51e3edb746067b1a",
+ "sha256": "1aalrgyk8pwsc07qmczqhgccjli6mcckkbgpass3kvrkcfxdl2zk"
+ }
+ },
+ {
+ "ename": "use-package",
+ "commit": "51a19a251c879a566d4ae451d94fcb35e38a478b",
+ "sha256": "0d0zpgxhj6crsdi9sfy30fn3is036apm1kz8fhjg1yzdapf1jdyp",
+ "fetcher": "github",
+ "repo": "jwiegley/use-package",
+ "unstable": {
+ "version": [
+ 20200721,
+ 2156
+ ],
+ "deps": [
+ "bind-key"
+ ],
+ "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+ "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4
+ ],
+ "deps": [
+ "bind-key"
+ ],
+ "commit": "39a8b8812c2c9f6f0b299e6a04e504ef393694ce",
+ "sha256": "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"
+ }
+ },
+ {
+ "ename": "use-package-chords",
+ "commit": "6240afa625290187785e4b7535ee7b0d7aad8969",
+ "sha256": "1217l0gpxcp8532p0d3g1xd2015qpx2g5xm0kwsbxdmffqqdaar3",
+ "fetcher": "github",
+ "repo": "jwiegley/use-package",
+ "unstable": {
+ "version": [
+ 20181024,
+ 2322
+ ],
+ "deps": [
+ "bind-chord",
+ "bind-key",
+ "key-chord",
+ "use-package"
+ ],
+ "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+ "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4
+ ],
+ "deps": [
+ "bind-chord",
+ "bind-key",
+ "key-chord",
+ "use-package"
+ ],
+ "commit": "39a8b8812c2c9f6f0b299e6a04e504ef393694ce",
+ "sha256": "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"
+ }
+ },
+ {
+ "ename": "use-package-el-get",
+ "commit": "aca60522257353fbfd9d032f8c3cae7914d6bd36",
+ "sha256": "143vydssjxmkcgs661hz6nhg310r8qypn2a4vyxy5sb31wqcclzg",
+ "fetcher": "gitlab",
+ "repo": "edvorg/use-package-el-get",
+ "unstable": {
+ "version": [
+ 20180131,
+ 505
+ ],
+ "deps": [
+ "use-package"
+ ],
+ "commit": "cba87c4e9a3a66b7c10962e3aefdf11c83d737bc",
+ "sha256": "1k1dwydqfgx2yvbipahwzk8kyj7v5ih6hkra8ladbn67x013f9rq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "use-package"
+ ],
+ "commit": "f33c448ed43ecb003b60ff601ee7ef9b08cff947",
+ "sha256": "1wzn3h8k7aydj3hxxws64b0v4cr3b77cf7z128xh3v6xz2w62m4z"
+ }
+ },
+ {
+ "ename": "use-package-ensure-system-package",
+ "commit": "6240afa625290187785e4b7535ee7b0d7aad8969",
+ "sha256": "1cl61nwgsz5dh3v9rdiww8mq2k1sbx27gr6izb4ij4pnzjp7aaj6",
+ "fetcher": "github",
+ "repo": "jwiegley/use-package",
+ "unstable": {
+ "version": [
+ 20180913,
+ 1501
+ ],
+ "deps": [
+ "system-packages",
+ "use-package"
+ ],
+ "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+ "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4
+ ],
+ "deps": [
+ "system-packages",
+ "use-package"
+ ],
+ "commit": "39a8b8812c2c9f6f0b299e6a04e504ef393694ce",
+ "sha256": "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"
+ }
+ },
+ {
+ "ename": "use-package-hydra",
+ "commit": "28589bb76442601930a4591e200c8e1db119caf6",
+ "sha256": "0q2qfav2y1p6vxfvdblqlpjmj0z7z8w843jpry9g07d8kc4959f6",
+ "fetcher": "gitlab",
+ "repo": "to1ne/use-package-hydra",
+ "unstable": {
+ "version": [
+ 20181228,
+ 745
+ ],
+ "deps": [
+ "use-package"
+ ],
+ "commit": "8cd55a1128fbdf6327bb38a199d206225896d146",
+ "sha256": "19dja25illcvwpx8j1kigw8dzby41bm57prx1bhaxkmsakxyl863"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "use-package"
+ ],
+ "commit": "8cd55a1128fbdf6327bb38a199d206225896d146",
+ "sha256": "19dja25illcvwpx8j1kigw8dzby41bm57prx1bhaxkmsakxyl863"
+ }
+ },
+ {
+ "ename": "use-ttf",
+ "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
+ "sha256": "18ry06d6llq86k5awd23jj0qb68k459dc2i5hqrmpjykqzq6bvya",
+ "fetcher": "github",
+ "repo": "jcs-elpa/use-ttf",
+ "unstable": {
+ "version": [
+ 20200720,
+ 957
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "e09f7d08b462984da6bf53b523b4fcd6826a6a5d",
+ "sha256": "1vli40rz0c27y3sl7b3rzmssgzrmawg0hdd5fvf8x8mjl9d61sia"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "e09f7d08b462984da6bf53b523b4fcd6826a6a5d",
+ "sha256": "1vli40rz0c27y3sl7b3rzmssgzrmawg0hdd5fvf8x8mjl9d61sia"
+ }
+ },
+ {
+ "ename": "utop",
+ "commit": "30489fe52b4031184e54f994770aa3291257bc9d",
+ "sha256": "0lv16kl29gc9hdcpn04l85pf7x93vkl41s4mgqp678cllzyr0cq7",
+ "fetcher": "github",
+ "repo": "diml/utop",
+ "unstable": {
+ "version": [
+ 20190715,
+ 1836
+ ],
+ "commit": "7bc5117d3449fc19f5c706a6decfdb2a30984507",
+ "sha256": "0fg1amarrwyfq76mv0w5z78qxs1x9vsvmzf7qzvnwh92n7lv6snb"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 6,
+ 0
+ ],
+ "commit": "df2447a63de2fea0f56d8c63d35b0bf39e11c0f2",
+ "sha256": "1g0s46p8c5kbv1kxvvj838g8hghqbkykv94q6zwy0d7q8ai1kqrq"
+ }
+ },
+ {
+ "ename": "uuid",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0d69z9686gnd1bb17wa44v1rbbgccacn4kicwf9niwwp05nccfw6",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-uuid",
+ "unstable": {
+ "version": [
+ 20120910,
+ 851
+ ],
+ "commit": "1519bfeb0e31602b840bc8dd35d7c7e732c159fe",
+ "sha256": "0r74gw8gcbrr62rvj4anz0c3n6kwi1xpb42d3pkzlh4igblhi5zj"
+ }
+ },
+ {
+ "ename": "uuidgen",
+ "commit": "8bdeb5848d0b160a74e834ed918e83653d7342bf",
+ "sha256": "1qaz7hg0wsdkl0jb7v7vrkjs554i2zgpxl8xq2f8q7m4bs2m5k48",
+ "fetcher": "github",
+ "repo": "kanru/uuidgen-el",
+ "unstable": {
+ "version": [
+ 20200816,
+ 1308
+ ],
+ "commit": "b50e6fef2de4199a8f207b46588c2cb3890ddd85",
+ "sha256": "08m74kj7h70kna3pifk3sgsy7mck11p32vi48h9wzqnafyq3n55d"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "f096f35a6e1f27d2bc9e9093cd61dd97bc33f502",
+ "sha256": "1nzf7cllyvx7kwdzpf0nl3g5a8mn6qgifa60aw68h0sx9a80xp01"
+ }
+ },
+ {
+ "ename": "v-mode",
+ "commit": "247cab604cf0ef6078f5b0f5887526bcbbcefb70",
+ "sha256": "0jky9y06fqj06m4mg95h8k3h5fihf9j9qj4w3n836qg5lnb4ywga",
+ "fetcher": "github",
+ "repo": "damon-kwok/v-mode",
+ "unstable": {
+ "version": [
+ 20200812,
+ 956
+ ],
+ "deps": [
+ "dash",
+ "hydra"
+ ],
+ "commit": "15a73b304e624d9b07fd8f23670569678d6cd9c3",
+ "sha256": "1arbd9wwaqlhc1hl4hgpfjn4ncyrirjmpq8sgnhffgw7vkzl99pv"
+ }
+ },
+ {
+ "ename": "v2ex-mode",
+ "commit": "b27b7d777415aa350c8c30822e239b9a4c02e77d",
+ "sha256": "04frd6jbnf9g7ak2fdbik9iji7b0903cpbg1hx7rai1853af7gh1",
+ "fetcher": "github",
+ "repo": "aborn/v2ex-mode",
+ "unstable": {
+ "version": [
+ 20160720,
+ 345
+ ],
+ "deps": [
+ "cl-lib",
+ "let-alist",
+ "request"
+ ],
+ "commit": "b7d19bb594b43ea3824a6f215dd1e5d1d4c0e8ad",
+ "sha256": "0hhj5xfm7mp3ajrbj9ai5p2d9akaqkj89rmqmg1vpyfp3x2f4h2k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "let-alist",
+ "request"
+ ],
+ "commit": "7a59ac3be2b08d873ec271ec7a3d5ace309c1407",
+ "sha256": "0f4y0s0zhqlb3n56yqp2w1krhrar5l4axl7dfn595hmwhhgxvvra"
+ }
+ },
+ {
+ "ename": "vagrant",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0g6sqzsx3lixcn09fkxhhcfp45qnqgf1ms0l7nkzyljavb7151cf",
+ "fetcher": "github",
+ "repo": "ottbot/vagrant.el",
+ "unstable": {
+ "version": [
+ 20170301,
+ 2206
+ ],
+ "commit": "636ce2f9af32ea199170335a9cf1201b64873440",
+ "sha256": "06zws69z327p00jw3zaf67niji2d4j339xmhbsrwbcr4w65dmz94"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 1
+ ],
+ "commit": "ef3022d290ee26597e21b17ab87acbd8d4f1071f",
+ "sha256": "1661fwfx2gpxjriy3ngi9raz8c2kkk3rgg51irdi591jr2zqmw6s"
+ }
+ },
+ {
+ "ename": "vagrant-tramp",
+ "commit": "baea9f16e245aec3f62e55471358c7208f61372d",
+ "sha256": "0ij7k27zj22sl7inx141l4dg0ymywnvyabjvaqzc0xjdj0cky5c5",
+ "fetcher": "github",
+ "repo": "dougm/vagrant-tramp",
+ "unstable": {
+ "version": [
+ 20200118,
+ 2324
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "f67925928dd844b74e4002f433e6f0ebd3aae357",
+ "sha256": "1s022vcjzm78v1j7z29pda3lk9x93fvks4qw5v9kh2yzsrxdq4h8"
+ }
+ },
+ {
+ "ename": "vala-mode",
+ "commit": "cea26fa67a524b7c14be2952cfbd4f657431415f",
+ "sha256": "164dhlsiflhpdymk3q5x0bv8gpbwfp34lnkhm2x90kdakfzqf91p",
+ "fetcher": "github",
+ "repo": "emacsorphanage/vala-mode",
+ "unstable": {
+ "version": [
+ 20150324,
+ 2225
+ ],
+ "commit": "fb2871a4492d75d03d72e60474919ab89adb267b",
+ "sha256": "10vs4d8csww781j1ps3f6dczy5zzza36z7a8zqk40fg4x57ikw44"
+ }
+ },
+ {
+ "ename": "vala-snippets",
+ "commit": "70f130c5751f47c1ead5f8915680e817e0239a2a",
+ "sha256": "14hmmic0px3z38dm2dg0kis6cz1p3p1hj7xaqnqjmv02dkx2mmcy",
+ "fetcher": "github",
+ "repo": "gopar/vala-snippets",
+ "unstable": {
+ "version": [
+ 20150429,
+ 352
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "671439501060449bd100b9fffd524a86064fbfbb",
+ "sha256": "0iscaz8lm4fk6w13f68ysqk8ppng2wj9fkkkq1rfqz77ws66f8nq"
+ }
+ },
+ {
+ "ename": "vale-mode",
+ "commit": "9c8cec6c01c031e6583106e7230e8162d0a77d9a",
+ "sha256": "0rhq14zlhswczzprzh3vc3cnan3d6q1d4ri3rjw4ggmvb63wr2kw",
+ "fetcher": "github",
+ "repo": "jaybosamiya/vale-mode.el",
+ "unstable": {
+ "version": [
+ 20190725,
+ 125
+ ],
+ "commit": "48bbc4b4ee5bf0b1b73e52705c0fbc112b255cd0",
+ "sha256": "1p0b7jh572wfz7cmzfbd70pr7i59xbbi15jw6rvzgnr558v3fmlg"
+ }
+ },
+ {
+ "ename": "vbasense",
+ "commit": "8e7dd1e985d55149f48e4f93a31fb28ec01a4add",
+ "sha256": "1440q2bi4arpl5lbqh7zscg7v3884clqx54p2fdfcfkz47ky4z9n",
+ "fetcher": "github",
+ "repo": "aki2o/emacs-vbasense",
+ "unstable": {
+ "version": [
+ 20140221,
+ 2353
+ ],
+ "deps": [
+ "auto-complete",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "8c61a492d7c15218ae1a96e2aebfe6f78bfff6db",
+ "sha256": "19j5q2f6pybvjq3ryjcyihzlw348hqyjhfcy3qflry6w786dqcgn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "auto-complete",
+ "log4e",
+ "yaxception"
+ ],
+ "commit": "8c61a492d7c15218ae1a96e2aebfe6f78bfff6db",
+ "sha256": "19j5q2f6pybvjq3ryjcyihzlw348hqyjhfcy3qflry6w786dqcgn"
+ }
+ },
+ {
+ "ename": "vc-auto-commit",
+ "commit": "770ab1e99fe63789726fc6c8c5d7e9a0287bc5fa",
+ "sha256": "1xpp7vbld3jgcr249m5h7il919kfg7d5ap3zs64i27axzdhv26zk",
+ "fetcher": "github",
+ "repo": "thisirs/vc-auto-commit",
+ "unstable": {
+ "version": [
+ 20170107,
+ 1333
+ ],
+ "commit": "446f664f4ec835532f4f18ba18b5fb731f6030aa",
+ "sha256": "18jjl656ps75p7n3hf16mcjrgiagnjvb8m8dl4i261cbnq98qmav"
+ }
+ },
+ {
+ "ename": "vc-check-status",
+ "commit": "0387e08dd7ed69b291e896d85bd975c4f5dcbd09",
+ "sha256": "1kwnxa0ndfj8b211xy5d47sxkwmsay0kk8q7azfm5ag5dkg56zgi",
+ "fetcher": "github",
+ "repo": "thisirs/vc-check-status",
+ "unstable": {
+ "version": [
+ 20170107,
+ 1334
+ ],
+ "commit": "37734beb16bfd8633ea328059bf9a47eed826d5c",
+ "sha256": "0mspksr2i6hkb7bhs38ydmn0d2mn7g1hjva60paq86kl7k76f7ra"
+ }
+ },
+ {
+ "ename": "vc-darcs",
+ "commit": "54f89c50ae45365e86bdadcf67b2411c0f4c5603",
+ "sha256": "1xskl9wjxkbdpi0fm769ymbvya70vssi944x5252w2d3layibm6m",
+ "fetcher": "github",
+ "repo": "velkyel/vc-darcs",
+ "unstable": {
+ "version": [
+ 20170905,
+ 320
+ ],
+ "commit": "390fb1ebdda1ffac45b9be02626dde3b6d95ac11",
+ "sha256": "1fcqkavc7hlbhswx5nnaqhash42cjsbr72ijznx5cplr582g3mfq"
+ }
+ },
+ {
+ "ename": "vc-fossil",
+ "commit": "31c5ee4b625b90c1af66d7d11a25af8e1aa307b1",
+ "sha256": "11ps2wrkjrjm1d984mf80wwj1hzskw5qrn0nv7md21lp75kxsvxb",
+ "fetcher": "github",
+ "repo": "venks1/emacs-fossil",
+ "unstable": {
+ "version": [
+ 20180215,
+ 1635
+ ],
+ "commit": "7c5af95181213db38f81f5f9586f3334301a3ea0",
+ "sha256": "1c18ywvs0l5w7ip2igksjy48awzas8mph7plpvp1v8c67a3a3m2m"
+ }
+ },
+ {
+ "ename": "vc-hgcmd",
+ "commit": "111142342ab81dcaa88a831ba620be499a334c3f",
+ "sha256": "11p8r94s72x47nkxlarxwy33im167jpjas8b9i8dkrz2iggwn5xk",
+ "fetcher": "github",
+ "repo": "muffinmad/emacs-vc-hgcmd",
+ "unstable": {
+ "version": [
+ 20200615,
+ 1823
+ ],
+ "commit": "5c735b3e3897b7ba52b5ac4e6a2f43ca283fd52d",
+ "sha256": "050xk0rs7k79ymchqdkdmgpg3s22wpbdnzl3pz2wsghihkskz6q1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 12
+ ],
+ "commit": "5c735b3e3897b7ba52b5ac4e6a2f43ca283fd52d",
+ "sha256": "050xk0rs7k79ymchqdkdmgpg3s22wpbdnzl3pz2wsghihkskz6q1"
+ }
+ },
+ {
+ "ename": "vc-msg",
+ "commit": "59ad4e80b49c78decd7b5794565313f65550384e",
+ "sha256": "16pgx8pg3djhkmhf1fihgjk7c6nb2nsqj58888bwg7385mlwc7g9",
+ "fetcher": "github",
+ "repo": "redguardtoo/vc-msg",
+ "unstable": {
+ "version": [
+ 20191128,
+ 1010
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "93794111daa95b809e46e6d961ad5f68eb8f78ed",
+ "sha256": "11xci11lbw06syz3y6zhrbh7984mj523i5fphrmdqh76iivkphwh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 3
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "76951fccc2cf66916af2ae006dfa758583e2415d",
+ "sha256": "0zmpc2w02ynm6ck01q5l9kv5flbl5zkgxhxyplqddh37ml31pka0"
+ }
+ },
+ {
+ "ename": "vc-osc",
+ "commit": "70a1fa5fdfdfa9ec5607524be62eb44fe82e91b0",
+ "sha256": "0rp33945xk5d986brganqnn55psmlkj6glbimxakhgv9a1r85sxz",
+ "fetcher": "github",
+ "repo": "aspiers/vc-osc",
+ "unstable": {
+ "version": [
+ 20190402,
+ 2349
+ ],
+ "commit": "bf5a515ed85f7d7cdfe66ed5bf4ef7554f8561e5",
+ "sha256": "1jk09vspns327j9mfy32dd71n3nfynn17h2njc4sczrgd4yzc2wd"
+ }
+ },
+ {
+ "ename": "vcomp",
+ "commit": "561442ea9f75ebe8444db1a0c40f7756fcbca482",
+ "sha256": "02cj2nlyxvgvl2rjfgacljvcsnfm9crmmkhcm2pznj9xw10y8pq0",
+ "fetcher": "github",
+ "repo": "tarsius/vcomp",
+ "unstable": {
+ "version": [
+ 20190128,
+ 20
+ ],
+ "commit": "f839b3b3257a564b19d7f9557dc8bcbbe0b95842",
+ "sha256": "1xd42bdi6x89gc9xjrwvzzdaanv9vwlbbjwp25bs1nsd53k5nvak"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "f839b3b3257a564b19d7f9557dc8bcbbe0b95842",
+ "sha256": "1xd42bdi6x89gc9xjrwvzzdaanv9vwlbbjwp25bs1nsd53k5nvak"
+ }
+ },
+ {
+ "ename": "vcsh",
+ "commit": "a5f56f914d7cc11f45be0474897998accb0fec2e",
+ "sha256": "0cclih5yfgal3bi3n2na4sc4xw1rqalml3nknhgypxrlx4j784pb",
+ "fetcher": "gitlab",
+ "repo": "stepnem/vcsh-el",
+ "unstable": {
+ "version": [
+ 20200226,
+ 1339
+ ],
+ "commit": "7e376436b8f450a5571e19246136ccf77bbdd4f1",
+ "sha256": "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 4
+ ],
+ "commit": "7e376436b8f450a5571e19246136ccf77bbdd4f1",
+ "sha256": "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"
+ }
+ },
+ {
+ "ename": "vdf-mode",
+ "commit": "203d755a2c083ecdb75a41ce6d6030315651b16c",
+ "sha256": "1ja7c0sn25r9fqxlp0c2c74qrblvxrb9akh0gf6f7x2hiqa0mygk",
+ "fetcher": "github",
+ "repo": "plapadoo/vdf-mode",
+ "unstable": {
+ "version": [
+ 20200713,
+ 1838
+ ],
+ "commit": "8fbf6157440345879a0543bcab233e790a7b60ee",
+ "sha256": "1m237py9jcxkm6z3wgsxzhikc3lidd28gfflcmr0wm588sdx48sl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "commit": "f474047a35a2779e4ebaf9166f3d54f359cf9f3c",
+ "sha256": "0r3kb89zsxac98q8g4w0gyji83qnyxlqwcvmd7b9aa8sx8ry1asz"
+ }
+ },
+ {
+ "ename": "vdiff",
+ "commit": "e90f19c8fa4b0d267d269b76f117995e812e899c",
+ "sha256": "11gw0l63fssbiyhngqb7ykrp7m1vy55wlf27ybhh2dkwh1cpkr4l",
+ "fetcher": "github",
+ "repo": "justbur/emacs-vdiff",
+ "unstable": {
+ "version": [
+ 20200214,
+ 1845
+ ],
+ "deps": [
+ "hydra"
+ ],
+ "commit": "c0541ae9c2cb878be9ab3935da058a72155a14fc",
+ "sha256": "0jqkr92y5xrwlj2aa8nm2s153nbzsy9xf04c2rixizg7xzz5jky8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "hydra"
+ ],
+ "commit": "f55acdbfcbb14e463d0850cfd041614c7002669e",
+ "sha256": "0dlhisvnlzkzlilg456lxi0m5wh4a8681n142684hmk8vaw3wx2k"
+ }
+ },
+ {
+ "ename": "vdiff-magit",
+ "commit": "2159275fabde8ec8b297f6635546b1314d519b8b",
+ "sha256": "1vjc1r5xfdg9bmscgppx1fps1w5bd0zpp6ab5z5dxlg2zx2vdldw",
+ "fetcher": "github",
+ "repo": "justbur/emacs-vdiff-magit",
+ "unstable": {
+ "version": [
+ 20190304,
+ 1707
+ ],
+ "deps": [
+ "magit",
+ "transient",
+ "vdiff"
+ ],
+ "commit": "b100d126c69e5c26a61ae05aa1778bcc4302b597",
+ "sha256": "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "deps": [
+ "magit",
+ "vdiff"
+ ],
+ "commit": "7e841dc7225300dd4d5560faad04e5c44cd8b267",
+ "sha256": "0800lnclv0kdkk2njddhsydsbifrwgg6w09mm4js7mqci1mr3gia"
+ }
+ },
+ {
+ "ename": "vdirel",
+ "commit": "72b5ea3f4444c3de73d986a28e1d12bf47c40246",
+ "sha256": "11cc7bw7x5h3bwnlsjyhw6k5fh2fk7wffarrcny562v4cmr013cj",
+ "fetcher": "github",
+ "repo": "DamienCassou/vdirel",
+ "unstable": {
+ "version": [
+ 20190430,
+ 624
+ ],
+ "deps": [
+ "helm",
+ "org-vcard",
+ "seq"
+ ],
+ "commit": "a9ef32a70a1f14416e3dc5fee478ce138cc011d3",
+ "sha256": "1r60gp3h7cj34wc5kjvpxzidb01gyqsd04ykmhk7asv91m598vs3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "helm",
+ "org-vcard",
+ "seq"
+ ],
+ "commit": "4232676e93ca5ace8e51f6605bec223c3205beea",
+ "sha256": "0jdjg50f6my9952frl6asi8zk0i8b4hva26wm7pi8zk423pydr30"
+ }
+ },
+ {
+ "ename": "vdm-comint",
+ "commit": "077f586e59fe3b6085e1f19b3c18b218de5d4046",
+ "sha256": "1r7jg7dkzfs4n230n0jk23w0ncqsiwkslf2gmjfzfqg8qklr9bhs",
+ "fetcher": "github",
+ "repo": "peterwvj/vdm-mode",
+ "unstable": {
+ "version": [
+ 20181127,
+ 2023
+ ],
+ "deps": [
+ "vdm-mode"
+ ],
+ "commit": "89e7db6ee1a89b8c1f7ce36ce6800c32b5c4ba2d",
+ "sha256": "1vfqkfw39yg7379s6b28n8nyswv1jq7caljfbnyrndsag6z4j50k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "vdm-mode"
+ ],
+ "commit": "e131edb0d35de28bd47d6128dd70d9a6fc46e0fa",
+ "sha256": "090a0imk7dr6vqq4lf806pvajqc499x2gmi0k7rgc1696rbyzhb5"
+ }
+ },
+ {
+ "ename": "vdm-mode",
+ "commit": "70a6c89d41235f7e8463a47400004a32b2979a5a",
+ "sha256": "1h72731vcsjqsbii1wbzpa114x09aqbkbnz5fg9fnjq9rybz6rn7",
+ "fetcher": "github",
+ "repo": "peterwvj/vdm-mode",
+ "unstable": {
+ "version": [
+ 20190328,
+ 1408
+ ],
+ "commit": "89e7db6ee1a89b8c1f7ce36ce6800c32b5c4ba2d",
+ "sha256": "1vfqkfw39yg7379s6b28n8nyswv1jq7caljfbnyrndsag6z4j50k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "commit": "e131edb0d35de28bd47d6128dd70d9a6fc46e0fa",
+ "sha256": "090a0imk7dr6vqq4lf806pvajqc499x2gmi0k7rgc1696rbyzhb5"
+ }
+ },
+ {
+ "ename": "vdm-snippets",
+ "commit": "f246b9dcf7915a845b9e2cd44cc1a0833b412c8f",
+ "sha256": "1js1hjs2r9bbqm50bl389y87xn68f30xrh2z6nd5kz2hdgkm6lhj",
+ "fetcher": "github",
+ "repo": "peterwvj/vdm-mode",
+ "unstable": {
+ "version": [
+ 20190313,
+ 1122
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "89e7db6ee1a89b8c1f7ce36ce6800c32b5c4ba2d",
+ "sha256": "1vfqkfw39yg7379s6b28n8nyswv1jq7caljfbnyrndsag6z4j50k"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 4
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "e131edb0d35de28bd47d6128dd70d9a6fc46e0fa",
+ "sha256": "090a0imk7dr6vqq4lf806pvajqc499x2gmi0k7rgc1696rbyzhb5"
+ }
+ },
+ {
+ "ename": "vector-utils",
+ "commit": "081aa3e1d50c2c9e5a9b9ce0716258a93279f605",
+ "sha256": "07armr23pq5pd47lqhir6a59r86c84zikbc51d8vfcaw8y71yr5n",
+ "fetcher": "github",
+ "repo": "rolandwalker/vector-utils",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "commit": "c38ca1c6a23b2b51a6ac36c2c64e50e21cbe9d21",
+ "sha256": "1wa03gb98x650q798aqshm43kh6gfxaz1rlyrmvka5dxgf48whmf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "2bd63c8ade1a2b6f8aac403c5f25adda2215a685",
+ "sha256": "0lzq31zqnk32vfp3kicnvgfr3nkv8amjzxmk9nrz1kwgmq7gvkjk"
+ }
+ },
+ {
+ "ename": "vega-view",
+ "commit": "3b97f1a40c63c1d819eb235e9c36e5dfe20015c1",
+ "sha256": "1j4hwd2amhmbqhx3kmc8y8c7hmrzvvnjklyxp9c6mgxg08qsy2qk",
+ "fetcher": "github",
+ "repo": "applied-science/emacs-vega-view",
+ "unstable": {
+ "version": [
+ 20200520,
+ 1202
+ ],
+ "deps": [
+ "cider",
+ "parseedn"
+ ],
+ "commit": "b0160c883f53ce069c0b4498880474c158ac7245",
+ "sha256": "1msc6s90a048lk4i8gqkhgnm1k52k40m62q9n1s0dwgmq1yj3zyl"
+ }
+ },
+ {
+ "ename": "verb",
+ "commit": "3802b91f39ef7800afd49589d398182cb191b756",
+ "sha256": "12hskj4d7w43a8mjqqa535p02w778hi7lsxm47mh1xjiimibad3p",
+ "fetcher": "github",
+ "repo": "federicotdn/verb",
+ "unstable": {
+ "version": [
+ 20200801,
+ 2217
+ ],
+ "commit": "f8755213c8fadea92b7a2313fb38c0ee37b8a2cc",
+ "sha256": "0f59rw78hfc7hkgd9ja2hzyb6gaf400aa6375zcl3zxh2ljnvbvb"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 12,
+ 0
+ ],
+ "commit": "08ddce1306ad1b8707300fee33848b7a48897fd3",
+ "sha256": "1azwmqhlasir5fhy2r3yd861xvk6lxrzq60svvyjss3kdlqp1irj"
+ }
+ },
+ {
+ "ename": "veri-kompass",
+ "commit": "18c3a69bec780e3e7456b310db6f0eec2a35c753",
+ "sha256": "103x4003qj0z9ki6xz4hymamyhipzfxz94x4gszk3k2qnvkjkxnj",
+ "fetcher": "gitlab",
+ "repo": "koral/veri-kompass",
+ "unstable": {
+ "version": [
+ 20200213,
+ 934
+ ],
+ "deps": [
+ "cl-lib",
+ "org"
+ ],
+ "commit": "271903cdf92db05898ee7cffb65641f30fa08280",
+ "sha256": "0ag2975bwj6l6wzd03min8dj5cy1429fzm3z2p2807i4j7fd7bkr"
+ }
+ },
+ {
+ "ename": "verify-url",
+ "commit": "2070f7b1901c83e59468f6498bd5f79077ccb79d",
+ "sha256": "1gd83rb1q0kywchd0345p5axqj1sv4f5kadympx5pbp4n5p1dqb2",
+ "fetcher": "github",
+ "repo": "lujun9972/verify-url",
+ "unstable": {
+ "version": [
+ 20160426,
+ 1228
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d6f3623cda8cd526a2d198619b137059cb1ba1ab",
+ "sha256": "1y6vjw5qzaxr37spg5d4nxffmhiipzsrd7mvh8bs3jcfrsg3080n"
+ }
+ },
+ {
+ "ename": "verona-mode",
+ "commit": "342867cf256c6e6c242387b6d8c439a7a90f17dc",
+ "sha256": "1w94hs8mkd6qfklgm7hxb8j7ykvif25czpha0yq7ghbfc0vb3595",
+ "fetcher": "github",
+ "repo": "damon-kwok/verona-mode",
+ "unstable": {
+ "version": [
+ 20200812,
+ 807
+ ],
+ "deps": [
+ "dash",
+ "hydra"
+ ],
+ "commit": "3519f83e68af163a6b01753ad7bb4cecf26c24b2",
+ "sha256": "1ck3x1w0nyn31s3fdks6wms5ic5n56jcxg49r56j3dwnifpk87mm"
+ }
+ },
+ {
+ "ename": "versuri",
+ "commit": "056daa8d5563dd6ffb9c93630f9b357f73c1e58a",
+ "sha256": "0nidgn9gdrrvqzbfjwvhs9bycbj3l9jbcablnbs2yxf903zlgn9b",
+ "fetcher": "github",
+ "repo": "mihaiolteanu/versuri",
+ "unstable": {
+ "version": [
+ 20200316,
+ 852
+ ],
+ "deps": [
+ "anaphora",
+ "dash",
+ "esqlite",
+ "esxml",
+ "ivy",
+ "request",
+ "s"
+ ],
+ "commit": "41e20583d1080beeeda0e36d1b2e6d74b9c57920",
+ "sha256": "0fgc1rai9gp6lwl0rxr9400vi420py0c0b8nv9wzl12ph80yhwj7"
+ }
+ },
+ {
+ "ename": "vertica",
+ "commit": "f98a06b794ef0936db953f63679a63232295a849",
+ "sha256": "1ljjk6zrbr2k0s0iaqd9iq3j45cavijcx0rqdidliswnfllav4ng",
+ "fetcher": "github",
+ "repo": "r0man/vertica-el",
+ "unstable": {
+ "version": [
+ 20131217,
+ 1511
+ ],
+ "deps": [
+ "sql"
+ ],
+ "commit": "3c9647b425c5c13c30bf0cba483646af18196588",
+ "sha256": "1mp71axs3vdrdwlhgywfldvnr6a1g2qbxiywmpfmcv59n5n58p1j"
+ }
+ },
+ {
+ "ename": "vertica-snippets",
+ "commit": "d3c8cb5c0fdbb6820a08091d8936dd53a3c43c56",
+ "sha256": "0044qcf6dyxp2h14ij6w19zs7ikx9xalfrz6jqbl8sy35wcihmhn",
+ "fetcher": "github",
+ "repo": "baron42bba/vertica-snippets",
+ "unstable": {
+ "version": [
+ 20200423,
+ 1200
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "6ced718d9120878878700592fab430a8542b748f",
+ "sha256": "1x04wrf3h6f4wsh4n2cl3n4byj9pxni918ri49hqxzm8h8hivigc"
+ }
+ },
+ {
+ "ename": "vertigo",
+ "commit": "f1957e7fa03b6b8eb2f3250bd814d707bce3cfa3",
+ "sha256": "0x0wy1z601sk1x96bl2xx18qm4avd77iybq1a3ss8x8ykwqlgf83",
+ "fetcher": "github",
+ "repo": "noctuid/vertigo.el",
+ "unstable": {
+ "version": [
+ 20180829,
+ 2230
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "6303d17270ea92290a6960890bca515274f1682b",
+ "sha256": "0570x63l1j75issnq23hrhhpisv2jm18fn5mspsvbs4xy2hy4h8i"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "ebfa068d9e2fc39ba6d1744618c4e31dad6f629b",
+ "sha256": "1yk7qqg8i3970kpfk34wvi0gh16qf0b0sfnf18g3s21dd4gk5a6g"
+ }
+ },
+ {
+ "ename": "vhdl-capf",
+ "commit": "6192f5777bc8be6ddc5523f92ab641ed3af1a504",
+ "sha256": "06dkw5ra9wnscpgrnx851vyfgr5797xd60qdimsr2v1bqd8si9km",
+ "fetcher": "github",
+ "repo": "sh-ow/vhdl-capf",
+ "unstable": {
+ "version": [
+ 20160221,
+ 1734
+ ],
+ "commit": "290abe217050f33532bc9ccb04f894123402f414",
+ "sha256": "185a7962h94122q783ih7s8r28xifm0bcrqvkd0g4p64mijlbh3d"
+ }
+ },
+ {
+ "ename": "vhdl-tools",
+ "commit": "b1a3336bff4d677b3bc7fbb8ef230ffc7b78e268",
+ "sha256": "0xdq9sicwpv3qzy833fqhvi4yllqmqgd4p9lbgq7dn1g8qz2gakn",
+ "fetcher": "gitlab",
+ "repo": "emacs-elisp/vhdl-tools",
+ "unstable": {
+ "version": [
+ 20200330,
+ 1819
+ ],
+ "deps": [
+ "ggtags",
+ "helm-rg",
+ "outshine"
+ ],
+ "commit": "b5d1eec90bb43ba10178219245afbddb6601e85b",
+ "sha256": "1qfjwsxi3w2gdl258jbk5d3z645gs6zccxx2iah54zbgql17pgj9"
+ },
+ "stable": {
+ "version": [
+ 6,
+ 2
+ ],
+ "deps": [
+ "ggtags",
+ "helm-rg",
+ "outshine"
+ ],
+ "commit": "5202db4c6a511a90a950a723293d11d55ec05264",
+ "sha256": "1ygx8g9cxyyhhpcqan1ca4g741s3dd141bcmp6jjqbjfn2gqraz6"
+ }
+ },
+ {
+ "ename": "vi-tilde-fringe",
+ "commit": "8b3359d57148f8205f8a863a21d92fe4912f31cc",
+ "sha256": "0jhwv46gjwjbs1ai65nm6k15y0q4yl9m5mawgp3n4f45dh02cawp",
+ "fetcher": "github",
+ "repo": "syl20bnr/vi-tilde-fringe",
+ "unstable": {
+ "version": [
+ 20141028,
+ 242
+ ],
+ "commit": "f1597a8d54535bb1d84b442577b2024e6f910308",
+ "sha256": "0wdm8k49zl6i6wnh7vjkswdh5m9lix56jv37xvc90inipwgs402z"
+ }
+ },
+ {
+ "ename": "viewer",
+ "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
+ "sha256": "10rw3b8akd2fl8gsqf1m24zi6q4n0z68lvvv1vx9c9b7ghqcqxw1",
+ "fetcher": "github",
+ "repo": "rubikitch/viewer",
+ "unstable": {
+ "version": [
+ 20170107,
+ 202
+ ],
+ "commit": "6c8db025bf4021428f7f2c3ef9d74fb13f5d267a",
+ "sha256": "1sj4a9zwfv94m0ac503gan6hf9sl2658khab1fnj8szcq7hrdvq1"
+ }
+ },
+ {
+ "ename": "viking-mode",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "12z9807ya0gsgx7h3zdvpx7jksjjrglz3qqyz65wj71sibjfry4m",
+ "fetcher": "github",
+ "repo": "TLINDEN/viking-mode",
+ "unstable": {
+ "version": [
+ 20160705,
+ 2027
+ ],
+ "commit": "c76aa265d13ad91d6890d242e142d05e31f0340b",
+ "sha256": "1944p3kbskzj4d9w9prbi7z59lrn087v3gphbhwjplz6mvwbl8g6"
+ }
+ },
+ {
+ "ename": "vim-empty-lines-mode",
+ "commit": "e93a8dcd2ff159203288e71da6b8f28eab0d2006",
+ "sha256": "17bl1g4ais73ws596mha0l8dgckfqhx9k2v9m9k0gw7kg7dcjhnb",
+ "fetcher": "github",
+ "repo": "jmickelin/vim-empty-lines-mode",
+ "unstable": {
+ "version": [
+ 20150111,
+ 426
+ ],
+ "commit": "d4a5034ca8ea0c962ad6e92c86c0fa2a74d2964b",
+ "sha256": "11qh6fpf6269j9syf06v5wnkgi65wnn7dbyjwb6yz72rvq7ihhcz"
+ }
+ },
+ {
+ "ename": "vim-region",
+ "commit": "23249b485ca8e66a21f858712f46aa76b8554f28",
+ "sha256": "1dcnx799lpjsdnnjxqzgskkfj2nx7f4kwf0xjhbg35ny4nyn81dx",
+ "fetcher": "github",
+ "repo": "ongaeshi/emacs-vim-region",
+ "unstable": {
+ "version": [
+ 20140329,
+ 1624
+ ],
+ "deps": [
+ "expand-region"
+ ],
+ "commit": "7c4a99ce3678fee40c83ab88e8ad075d2a935fdf",
+ "sha256": "13g2hin100c8h5bd7hzhyqzj02ab9c35giyv963l7y044v7sbwig"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 0
+ ],
+ "deps": [
+ "expand-region"
+ ],
+ "commit": "e5359cc584a0cfa9270a76866a5eff7d3f44eb3d",
+ "sha256": "1750gx65ymibam8ahx5blfv5jc26f3mzbklk1jrmfwpsalyghdd9"
+ }
+ },
+ {
+ "ename": "vimgolf",
+ "commit": "1de0a1cdc8fd33601ecca982fa9aa66f4400843b",
+ "sha256": "15xq5vm82hy4pjw04m7xcqav7azsb3c65lp8cfxa29z7xg81w62f",
+ "fetcher": "github",
+ "repo": "timvisher/vimgolf.el",
+ "unstable": {
+ "version": [
+ 20200205,
+ 1420
+ ],
+ "commit": "f565447ed294898588a19438d56c116555d8c628",
+ "sha256": "0vyxqs575xfvk9vdwwx5vd9fmcjj1hl2139yw31902dd9lrf55ag"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10,
+ 3
+ ],
+ "commit": "78e91f810a1b49d68ef19565e1c6513c84855e1e",
+ "sha256": "1picdbrkpd694aqmsjcs1v7fh6s6l8bb6j89bicss9gxn65p6bs8"
+ }
+ },
+ {
+ "ename": "vimish-fold",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "1ld9sab9r82wr74rscxcmsmd07jgkmkysbcn5aswzyrf1gn62gr9",
+ "fetcher": "github",
+ "repo": "seregaxvm/vimish-fold",
+ "unstable": {
+ "version": [
+ 20200524,
+ 1729
+ ],
+ "deps": [
+ "cl-lib",
+ "f"
+ ],
+ "commit": "9d12e39f01da517565666e09a2e32e01aed24a90",
+ "sha256": "0xdk95hiamnim0bn1w5g0lccb9wc0sxbczrb95q3ndaw3cxxjaa2"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "deps": [
+ "cl-lib",
+ "f"
+ ],
+ "commit": "e631352fbf910f692807afe38a2b6a7882a403a8",
+ "sha256": "152w1wqxj7yzm3d12lknzz1aix4h8cb571sjns3m1s7azsr3vfbq"
+ }
+ },
+ {
+ "ename": "vimrc-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "05zmr624qwsj9wqsmjlhjvjl1fc1qxz4vvbb3ljr5fbpxdjrbnpn",
+ "fetcher": "github",
+ "repo": "mcandre/vimrc-mode",
+ "unstable": {
+ "version": [
+ 20181116,
+ 1919
+ ],
+ "commit": "13bc150a870d5d4a95f1111e4740e2b22813c30e",
+ "sha256": "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"
+ }
+ },
+ {
+ "ename": "virtual-auto-fill",
+ "commit": "a77a66240098fe2e6a4a8097ca9d0f85f3c2b9af",
+ "sha256": "14832wgn6kl122v3lddcnshgl6rk80cpm6xmmxcqcimhiybb9vcx",
+ "fetcher": "github",
+ "repo": "luisgerhorst/virtual-auto-fill",
+ "unstable": {
+ "version": [
+ 20200217,
+ 2333
+ ],
+ "deps": [
+ "adaptive-wrap",
+ "visual-fill-column"
+ ],
+ "commit": "291f6178a5423f01f2f69d6bc48603d4f605b61a",
+ "sha256": "15kg23xkcc060y8a5f9657gk3bvkax23myhajaa0b2i1qcd6p43i"
+ }
+ },
+ {
+ "ename": "virtualenv",
+ "commit": "923e4fcf29423ad55b13132d53759bc436466ef9",
+ "sha256": "1djqzzlbwsp9xyjqjbjwdck73wzikbpq19irzamybk90nc98wirl",
+ "fetcher": "github",
+ "repo": "aculich/virtualenv.el",
+ "unstable": {
+ "version": [
+ 20140220,
+ 2301
+ ],
+ "commit": "276c0f4d6493b402dc4d22ecdf17b2b072e911b3",
+ "sha256": "0rd7hyv66278dj32yva5q9z1749y84c6fwl2iqrns512j1l4kl8q"
+ }
+ },
+ {
+ "ename": "virtualenvwrapper",
+ "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
+ "sha256": "0rn5vwncx8z69xp8hspr06nzkf28l9flchpb2936c2nalmhx6m8i",
+ "fetcher": "github",
+ "repo": "porterjamesj/virtualenvwrapper.el",
+ "unstable": {
+ "version": [
+ 20190223,
+ 1919
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "107e7e0bf923f44d217712772cd58b414d0065cb",
+ "sha256": "1qqfcif4by8psc4kp9wnna7pm321a7d0xjkwznq2fwc5cqgbp0vz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "f753e5ad91c2ff5d11bec424aa8cec141efa6925",
+ "sha256": "062pbnplb3w9h64qsj71d9fvgicp1x63n05mgvgymjh2rnx7py0d"
+ }
+ },
+ {
+ "ename": "visible-mark",
+ "commit": "76ac7178ee5381e08ae881f3fc6061106eeb1c1d",
+ "sha256": "1rp0gnz28m1drwb1hhsf0mwxzdppdi88hscf788qw8cw65gckv80",
+ "fetcher": "gitlab",
+ "repo": "iankelling/visible-mark",
+ "unstable": {
+ "version": [
+ 20150624,
+ 450
+ ],
+ "commit": "a584db9bc88953b23a9648b3e14ade90767207f8",
+ "sha256": "1rsi9irv9i03627cmfaqz03f9cvpm7555ga8n2gs622lzp6bb3jf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "c1852e13b6b61982738b56977a452ec9026faf1b",
+ "sha256": "15zdbvv6c114mv6hdq375l7ax70sss06p9d7m86hgssc3kiv9vsv"
+ }
+ },
+ {
+ "ename": "visual-ascii-mode",
+ "commit": "21df748a3f383d62c921e184e2a4c9ae4118ca98",
+ "sha256": "1h0143h39dq61afswlzlgpknk0gv574x91ar6klqmnaf1snab59g",
+ "fetcher": "github",
+ "repo": "Dewdrops/visual-ascii-mode",
+ "unstable": {
+ "version": [
+ 20150129,
+ 1046
+ ],
+ "commit": "99285a099a17472ddd9f1b4f74e9d092dd8c5947",
+ "sha256": "1cv8mf3l92a9p8qmkfiphk3r81f2ihg2gyw2r4jbbd5ppwbxkl0n"
+ }
+ },
+ {
+ "ename": "visual-fill-column",
+ "commit": "c7628c805840c4687686d0b9dc5007342864721e",
+ "sha256": "19y0pwaybjal2rc7migdbnafpi4dfbxvrzgfqr8dlvd9q68v08y5",
+ "fetcher": "github",
+ "repo": "joostkremers/visual-fill-column",
+ "unstable": {
+ "version": [
+ 20200428,
+ 816
+ ],
+ "commit": "64d38bc1c00953be05c193c01332a633be67aac2",
+ "sha256": "1gkl2bg0ax16d3b17n7s3j5ng261jxfl6q3bi5bff03jph900x1p"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 11
+ ],
+ "commit": "57c2a72d46900117ea92e0a01b97e19481800503",
+ "sha256": "086zfx4lh168rg50ndg8qzdh8vzc6sgfii7qzcn4mg4wa74hnp9y"
+ }
+ },
+ {
+ "ename": "visual-regexp",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "16bdqq2j7pnjq3j6qa4rhxzidqdhyg80c7nazd93smis8rcv5d0z",
+ "fetcher": "github",
+ "repo": "benma/visual-regexp.el",
+ "unstable": {
+ "version": [
+ 20190414,
+ 814
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3e3ed81a3cbadef1f1f4cb16f9112a58641d70ca",
+ "sha256": "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3e3ed81a3cbadef1f1f4cb16f9112a58641d70ca",
+ "sha256": "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"
+ }
+ },
+ {
+ "ename": "visual-regexp-steroids",
+ "commit": "7f105ebce741956b7becc86e4bdfcafecf59af74",
+ "sha256": "1xkrzyyll8wmb67m75lfm9k8qcm068km8r1k8hcsadpkd01bx1lr",
+ "fetcher": "github",
+ "repo": "benma/visual-regexp-steroids.el",
+ "unstable": {
+ "version": [
+ 20170222,
+ 253
+ ],
+ "deps": [
+ "visual-regexp"
+ ],
+ "commit": "a6420b25ec0fbba43bf57875827092e1196d8a9e",
+ "sha256": "1isqa4ck6pm4ykcrkr0g1qj8664jkpcsrq0f8dlb0sksns2dqkwj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "visual-regexp"
+ ],
+ "commit": "a6420b25ec0fbba43bf57875827092e1196d8a9e",
+ "sha256": "1isqa4ck6pm4ykcrkr0g1qj8664jkpcsrq0f8dlb0sksns2dqkwj"
+ }
+ },
+ {
+ "ename": "vlc",
+ "commit": "bcb69969893a3f70fe9e7e3b2a836df3ba212fb8",
+ "sha256": "1pf3ry205pl4369hbpvcc1xlicf16ws4dc018mk6c1m4fi9qc3lk",
+ "fetcher": "github",
+ "repo": "xuchunyang/vlc.el",
+ "unstable": {
+ "version": [
+ 20200328,
+ 1143
+ ],
+ "commit": "932840f874e7510ee86e796bb5dc20d44514e31a",
+ "sha256": "0vqsdvaqi8ih98ic9hdwwwwcs4v0yjz3nrwwwkwh2a99l9a59j5g"
+ }
+ },
+ {
+ "ename": "vlf",
+ "commit": "9116b11eb513dd9e1dc9542d274dd60f183b24c4",
+ "sha256": "1ipkv5kmda0l39xwbf7ns9p0mx3kb781mxsm9vmbkhr5x577s2j8",
+ "fetcher": "github",
+ "repo": "m00natic/vlfi",
+ "unstable": {
+ "version": [
+ 20191126,
+ 2250
+ ],
+ "commit": "cc02f2533782d6b9b628cec7e2dcf25b2d05a27c",
+ "sha256": "00wqq9x3p4iwgsga3wvlr8c7iifvh3b0j41sahccdx6hqh4a0pzp"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7,
+ 1
+ ],
+ "commit": "a01e9ed416cd81ccddebebbf05d4ca80060b07dc",
+ "sha256": "0ziz08ylhkqwj2rp6h1z1yi309f6791b9r91nvr255l2331481pm"
+ }
+ },
+ {
+ "ename": "vmd-mode",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1xjyl2xh3vig2rzjqm1a4h2ridygbanmal78s4yc32hacy0lfyrx",
+ "fetcher": "github",
+ "repo": "blak3mill3r/vmd-mode",
+ "unstable": {
+ "version": [
+ 20200727,
+ 701
+ ],
+ "commit": "31655a41caf006c3dd64d6e57f6c4488098f8bce",
+ "sha256": "1pnx977pm305kr0zakwy1wkdfpk09rilwx8rmai4459lyz0sa8j9"
+ }
+ },
+ {
+ "ename": "voca-builder",
+ "commit": "42a930e024ce525b2890ccd5a1eb4844859faafd",
+ "sha256": "0mbw87mpbb8rw7xzhmg6yjla2c80x9820kw4q00x00ny5rbhm76y",
+ "fetcher": "github",
+ "repo": "yitang/voca-builder",
+ "unstable": {
+ "version": [
+ 20161101,
+ 1645
+ ],
+ "deps": [
+ "popup"
+ ],
+ "commit": "51573beec8cd8308477b0faf453aad93e17f57c5",
+ "sha256": "1gd7zqmyn389dfyx1yll1bw5f8kjib87k33s9hxsbx0db8vas9q6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "224402532da28e45edd398fda61ecbddb97d22d3",
+ "sha256": "0q1rwqjwqcnsr57s531pwlm464q8wx5vvdm5rj2xy9b3yi6phis1"
+ }
+ },
+ {
+ "ename": "volatile-highlights",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "1r6in919aqdziv6bgzp4k7jqa87bd287pacq615sd5m1nzva1a4d",
+ "fetcher": "github",
+ "repo": "k-talo/volatile-highlights.el",
+ "unstable": {
+ "version": [
+ 20160612,
+ 155
+ ],
+ "commit": "9a20091f0ce7fc0a6b3e641a6a46d5f3ac4d8392",
+ "sha256": "1dsa6769lphyyv7yg92vkkpk395w52q4m7hdn8xy7s6lh5c6a955"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 11
+ ],
+ "commit": "fb2abc2d4d4051a9a6b7c8de2fe7564161f01f24",
+ "sha256": "1v0chqj5jir4685jd8ahw86g9zdmi6xd05wmzhyw20rbk924fcqf"
+ }
+ },
+ {
+ "ename": "volume",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "1gm2zaf6qwbdhayaj153882qm21cl4qdyjkdnqrlssb2mcgf017w",
+ "fetcher": "github",
+ "repo": "dbrock/volume.el",
+ "unstable": {
+ "version": [
+ 20200523,
+ 1246
+ ],
+ "commit": "bd0ca8430098164740f111ac2bd2582d7f628b79",
+ "sha256": "0v8x9d0qq8gjlf6ydri580wix6hisf6x9pywg5px6cqj53r8g6rc"
+ }
+ },
+ {
+ "ename": "vs-dark-theme",
+ "commit": "60b9b00d18334f2d7b737e3cc6b3c733e1b163e4",
+ "sha256": "0didkb2zd9ac7h1ccwi9y1q5mcqpwxyws7nsk5g8rhrkygdf9lds",
+ "fetcher": "github",
+ "repo": "jcs-elpa/vs-dark-theme",
+ "unstable": {
+ "version": [
+ 20191209,
+ 1600
+ ],
+ "commit": "aea1ca9932df2c19a19e47f7971b7bc6b821181f",
+ "sha256": "0nk0vsxww46rrm1ijfpq58bn3zai7qmj2iqg1k8g14w7fc2si8mi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "c3c6b0be8bd525079b341490afc8875941b8af79",
+ "sha256": "0w4gygxdfbb7gp92f59p9qvw725l70sy2baf4h6rifrf92af55f2"
+ }
+ },
+ {
+ "ename": "vs-light-theme",
+ "commit": "c997456be95ece85fdef87905e9e14fe308fd827",
+ "sha256": "02w5zyxf34r1lvk56s3xbkzpvinbwsyv1h685hg9vhn0yy0a23ns",
+ "fetcher": "github",
+ "repo": "jcs-elpa/vs-light-theme",
+ "unstable": {
+ "version": [
+ 20191209,
+ 1600
+ ],
+ "commit": "5c11a73bfc5f3873490ed0ba88eed44e4707e455",
+ "sha256": "1ifwm4dwmv4f97p1byv3l5k26gyb97zp60wjhrzrdj2g49fg716g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "8b34cbe6294ad02676970bd72c9efbcc09981f3f",
+ "sha256": "0sw8k737ra2qhakxyf83lz41a5sv0dzw5xssnvyiyrarh73n5pp0"
+ }
+ },
+ {
+ "ename": "vscdark-theme",
+ "commit": "8f3accf76fcd91e1507b9e8ac8577d3af5ae0b88",
+ "sha256": "13d3g6bjnry7964pnphl0i205vn9gvl7glydzj5wv82s7yav752w",
+ "fetcher": "github",
+ "repo": "abelikoff/vscdark-theme",
+ "unstable": {
+ "version": [
+ 20191212,
+ 107
+ ],
+ "commit": "8eba74059e8a9db974e4056ee024e52fe54da485",
+ "sha256": "01p5ys23m4zk5hniri55bcn8j7v6pd6ryi41qx20w29mramwzxl9"
+ }
+ },
+ {
+ "ename": "vscode-dark-plus-theme",
+ "commit": "0e7e489ea5cee3b1d2b6b5295cf95f3e1d9d6c60",
+ "sha256": "001xhi87dsh75sd0vg26v4w78rf1p8bhj1zhn3w7j255817xvcgd",
+ "fetcher": "github",
+ "repo": "ianpan870102/vscode-dark-plus-emacs-theme",
+ "unstable": {
+ "version": [
+ 20200818,
+ 341
+ ],
+ "commit": "a33ef7fd5d9249bbb59fcb822c032e28bb3bf792",
+ "sha256": "0wm54jy09hsg3vbw4qc5k4nzznsn3mqcn0al8mwh2522q6kb6l8j"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5,
+ 0
+ ],
+ "commit": "c64d5f7088f1295df0bd8f1dc87a532e00647fbe",
+ "sha256": "09a6plb2dqayj4m456ldh43a654jbkg8zjiky7bkj5m0kpdc5426"
+ }
+ },
+ {
+ "ename": "vscode-icon",
+ "commit": "90a07c96a9223a9ad477cbea895ba522523c5be4",
+ "sha256": "0rhsqzgxl7hs52kniyi8yn4f953g7dgx49j4lzf2yr33ydxiw9d3",
+ "fetcher": "github",
+ "repo": "jojojames/vscode-icon-emacs",
+ "unstable": {
+ "version": [
+ 20191102,
+ 2010
+ ],
+ "commit": "4304e9f0a47406048129dc62171f08b67325a2ed",
+ "sha256": "0dpmw1kg9ivrn92vis7bxs8nlb1ixk72fhd4s4f5c21k0j4s12rd"
+ }
+ },
+ {
+ "ename": "vterm",
+ "commit": "91a71615c0a32565e455ac81d9bc90443aa8caf9",
+ "sha256": "0nn15pz2ys4bmpyks190x22f8s2fcr793f95h0c2m67cfjmnd478",
+ "fetcher": "github",
+ "repo": "akermu/emacs-libvterm",
+ "unstable": {
+ "version": [
+ 20200813,
+ 1748
+ ],
+ "commit": "797357bf65952337627f2d0c594c2fef600aafae",
+ "sha256": "0lqlx97kb1mpw17lmrx2xa407ixn3wl2cv9rdwrvlrlvg8kcpjmn"
+ }
+ },
+ {
+ "ename": "vterm-toggle",
+ "commit": "aecfc82727d408eb3120f76ace1ed7207ff5e5f1",
+ "sha256": "1ajg631d41j8jgdjh90z27yfk2783zacfd0531bqd5j73ijcdbb3",
+ "fetcher": "github",
+ "repo": "jixiuf/vterm-toggle",
+ "unstable": {
+ "version": [
+ 20200614,
+ 1452
+ ],
+ "deps": [
+ "projectile",
+ "vterm"
+ ],
+ "commit": "7f762d216fc7311bac4182f650e0207574c29357",
+ "sha256": "0nz3qcd2jmjfky0xn62fkhnxchf9nap3li5blis0jgi6igj47ykq"
+ }
+ },
+ {
+ "ename": "vue-html-mode",
+ "commit": "48588b163ab76204b9054340071e758045480e19",
+ "sha256": "1f4pjfp4298jkvhacxygddg557hhyivgnm5x3yhjipfv6fjkgl2s",
+ "fetcher": "github",
+ "repo": "AdamNiederer/vue-html-mode",
+ "unstable": {
+ "version": [
+ 20180428,
+ 2035
+ ],
+ "commit": "1514939804bad558584feeb6298b38d22eadf64e",
+ "sha256": "0xfdm66b6wp7h233hm83bihchmiqqq51aw2zshb8aa4qnskgs677"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "361a9fa117f044c3072dc5a7344ff7be31725849",
+ "sha256": "1z1pphxli8fcahw9fhmxls1v9nyd34pz51jwwa6g468zvdmcjb77"
+ }
+ },
+ {
+ "ename": "vue-mode",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "0npzn7pycqfdakv4plkigq8aw1bqhz3y03y3ypx21q5a186ds0g5",
+ "fetcher": "github",
+ "repo": "AdamNiederer/vue-mode",
+ "unstable": {
+ "version": [
+ 20190415,
+ 231
+ ],
+ "deps": [
+ "edit-indirect",
+ "mmm-mode",
+ "ssass-mode",
+ "vue-html-mode"
+ ],
+ "commit": "031edd1f97db6e7d8d6c295c0e6d58dd128b9e71",
+ "sha256": "047l5nxw86dvls8an65mmqcy673n37pyli7s0d52yi07jk0lw1yx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "edit-indirect",
+ "mmm-mode",
+ "ssass-mode",
+ "vue-html-mode"
+ ],
+ "commit": "48ff04657613f39848d0e66e9dd367aa2dc19e89",
+ "sha256": "014vx8jkscj1c614v78dqlqlg7n0zc3c2db3dqvxvaz417i5mxq0"
+ }
+ },
+ {
+ "ename": "vuiet",
+ "commit": "4f63056cf2f637fcb3426851501eeff5e6f40bb3",
+ "sha256": "0hf99rgzhi66in3lr0pl3g8g56l00zcvz1qgclfsbw1yb9ig626y",
+ "fetcher": "github",
+ "repo": "mihaiolteanu/vuiet",
+ "unstable": {
+ "version": [
+ 20200616,
+ 1136
+ ],
+ "deps": [
+ "bind-key",
+ "lastfm",
+ "mpv",
+ "s",
+ "versuri"
+ ],
+ "commit": "3dab1ea2253d5bc2974a1a064d2b1af3bd6b24f6",
+ "sha256": "1q1rcnsda1392kqh944hdj30d79300ycl46ck1bzx4szx3m3p801"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "deps": [
+ "bind-key",
+ "lastfm",
+ "mpv",
+ "s",
+ "versuri"
+ ],
+ "commit": "4e15dacd6445d490fefc47070f8e5b98db5e0dc6",
+ "sha256": "18qcw9mh57jrd6qrgcma82q28d1dab2dy6v8pi08kadcy4w95y10"
+ }
+ },
+ {
+ "ename": "vyper-mode",
+ "commit": "492d42d60bc188a567c5e438b838a275a124c699",
+ "sha256": "0mf1w4mw0ijmd9zxip1df85cp15fbvv9j5dqjmb8lfm4m43wpd96",
+ "fetcher": "github",
+ "repo": "ralexstokes/vyper-mode",
+ "unstable": {
+ "version": [
+ 20180707,
+ 1935
+ ],
+ "commit": "323dfddfc38f0b11697e9ebaf04d1b53297e54e5",
+ "sha256": "1vxqgc9c1lj61ipaw05xfby3nl7wn3kp5ga6kpr17v0jlm0667s5"
+ }
+ },
+ {
+ "ename": "w32-browser",
+ "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
+ "sha256": "16sp0gn4yv7iaa55i2kvfsqw3610gr3x31l9lqa14r9xmfhda1rn",
+ "fetcher": "github",
+ "repo": "emacsorphanage/w32-browser",
+ "unstable": {
+ "version": [
+ 20170101,
+ 1954
+ ],
+ "commit": "e5c60eafd8f8d3546a0fa295ad5af2414d36b4e6",
+ "sha256": "18hcr9l5id2xdin20wrg9sdmwfad7qk78iryyg24ci9lvl53m02x"
+ },
+ "stable": {
+ "version": [
+ 235
+ ],
+ "commit": "a8126b60bf18193e8e4ec6f699b5694b6f71a062",
+ "sha256": "13wjvzsas7in8f09sc2qj17dz25wizg1l0r2krgp1zymy92p8f97"
+ }
+ },
+ {
+ "ename": "w3m",
+ "commit": "85c53c48caab0845101c487e4fee7e2cda15f706",
+ "sha256": "1fnib1y79g50jz9wll63j0xf2awgkrlk6hwx0w6nzg0xsbfbkdvk",
+ "fetcher": "github",
+ "repo": "emacs-w3m/emacs-w3m",
+ "unstable": {
+ "version": [
+ 20200818,
+ 141
+ ],
+ "commit": "7dcbab77334c5adf8309c7a93512c9f95a2c64e4",
+ "sha256": "0in8ir99b33d83nfxsnpj2dgyv4f558yrid77bp7f9k0qpgpj4zk"
+ }
+ },
+ {
+ "ename": "wacspace",
+ "commit": "58e5ff4c5853c5350d0534894ddb358daa83cee9",
+ "sha256": "1xy0mprvyi37zmgj1yrlh5ni08j47lpag1jm3a76cgghgmlfjxrl",
+ "fetcher": "github",
+ "repo": "shosti/wacspace.el",
+ "unstable": {
+ "version": [
+ 20180311,
+ 2350
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "54d19aab6fd2bc5945b7ffc58104e695064927e2",
+ "sha256": "1nfx1qsl2gxjqbbc5xsr8f3xz2qyb4wnz3634k3hglb1jpa78j3n"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "b951995c204ff23699d2bda515a96221147a725d",
+ "sha256": "0jl3n79wmbxnrbf83qjq0v5pzhvv67i9r5sp2zj8nc86hh7dvjsd"
+ }
+ },
+ {
+ "ename": "waf-mode",
+ "commit": "44c1aa152ba47113a91878df78d9b56eead98744",
+ "sha256": "16rplrs599a67dcxcdc33zb9bqivv4a2mvrshvyip1lp75f36r5h",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/dvalchuk/waf-mode",
+ "unstable": {
+ "version": [
+ 20170403,
+ 1940
+ ],
+ "commit": "20c75eabd1d54fbce8e0dbef785c9fb68577ee4f",
+ "sha256": "09jqxbkkprsrcj7gj9hi8ll7d17425lyjmdmqf12ffqv5pz6aq87"
+ }
+ },
+ {
+ "ename": "waher-theme",
+ "commit": "c734ba401d7d9255e0934c31ca5269866af035db",
+ "sha256": "091kipkb6z6x9ic4chprim9rvnmx4yj4419ijmvpn70w69aspnb5",
+ "fetcher": "github",
+ "repo": "emacsfodder/emacs-waher-theme",
+ "unstable": {
+ "version": [
+ 20141115,
+ 1230
+ ],
+ "commit": "60d31519fcfd8e797723d47961b255ae2f2e2c0a",
+ "sha256": "0w59ix8cbbcyhh882c8vkrbh84i8d03h9w7dchr3qy233b8wcxlc"
+ }
+ },
+ {
+ "ename": "wakatime-mode",
+ "commit": "a46036a0e53afbebacafd3bc9545c99af79ccfcc",
+ "sha256": "1rhy2bwkqlha4bj3zmb0iassiglch7yb2kbas0bbpl3d0hdki2i8",
+ "fetcher": "github",
+ "repo": "wakatime/wakatime-mode",
+ "unstable": {
+ "version": [
+ 20200730,
+ 240
+ ],
+ "commit": "7626678315918bdbb81ede68149f20a7d97a928f",
+ "sha256": "0dlhj32mkylji1d55pc593d3gn8babcs6s4c0c5sfm6jfz14m9j0"
+ }
+ },
+ {
+ "ename": "wakib-keys",
+ "commit": "b8ef5ae0dcb92e1cf019be3d53ab9b47d89f45bd",
+ "sha256": "1cgd15zwl15k2bxy3by17pphh6x1z8lanwkfjy4qyp5sxkjvw1cl",
+ "fetcher": "github",
+ "repo": "darkstego/wakib-keys",
+ "unstable": {
+ "version": [
+ 20200430,
+ 2155
+ ],
+ "commit": "d958150c053dae57445be37cda1c2b50efcbaac3",
+ "sha256": "0fbh10yjva3bfpl76ddsnspzlpmbxj1azr3p4n2z0az75xx24wsa"
+ }
+ },
+ {
+ "ename": "walkclj",
+ "commit": "44472b35938fe70d4cb3d15397495fe321fcd464",
+ "sha256": "0m971dlazildhgj8jqg4x679i6s6p80mbpri7l24ynxk45wix22m",
+ "fetcher": "github",
+ "repo": "plexus/walkclj",
+ "unstable": {
+ "version": [
+ 20180718,
+ 900
+ ],
+ "deps": [
+ "parseclj",
+ "treepy"
+ ],
+ "commit": "2e54fa813b11d1a87c890cdf117f30165a193024",
+ "sha256": "0bgvniw3ibcjsmzwrndg6pxwbpnpnxsb8ijs2gxg5kbm1hqqly32"
+ }
+ },
+ {
+ "ename": "walkman",
+ "commit": "603a2bf865eb16505504cf20ab1ecfd619cce6dc",
+ "sha256": "1hr5c95pv30l18f0kv0sgn5h46x8989lg4n0kg7bd1kb7k6hc8n1",
+ "fetcher": "github",
+ "repo": "abrochard/walkman",
+ "unstable": {
+ "version": [
+ 20200418,
+ 1554
+ ],
+ "deps": [
+ "org",
+ "transient"
+ ],
+ "commit": "07a7710084c328dc238626f8b6e7d019380502de",
+ "sha256": "13g8wgcv3qydx6vhznx1iypmlrzl3cm02prrkqp70gjvgblk06nm"
+ }
+ },
+ {
+ "ename": "wallpaper",
+ "commit": "764c5b8438197d6f24113e7b3a696b8327a8d6d9",
+ "sha256": "18wpj5qzac0msp9mi8511kpw6157k7dj9zvzh1y6rhd7a5nd0clg",
+ "fetcher": "github",
+ "repo": "farlado/emacs-wallpaper",
+ "unstable": {
+ "version": [
+ 20200408,
+ 1353
+ ],
+ "commit": "9fb5be9c2f7279f7ef2860eefd416359b9026ba3",
+ "sha256": "18vm8g4iwf2a9l40bg7cvpdziv10mv24x61z86xwjmnqbr7sxd8q"
+ }
+ },
+ {
+ "ename": "wand",
+ "commit": "38be840bbb32094b753ec169b717a70817006655",
+ "sha256": "052zq5dp800hynd9fb6c645kjb9rp3bpkz41ifazjnx4h4864r0l",
+ "fetcher": "github",
+ "repo": "cmpitg/wand",
+ "unstable": {
+ "version": [
+ 20200302,
+ 1536
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "731b5ca33269fe563239bff16da6c41489432b80",
+ "sha256": "0r5mbslwf3x0mrndz65w4pp88xii019zg5p6x214zxpr87s75zdp"
+ }
+ },
+ {
+ "ename": "wandbox",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0myyln82nx462bj79acvqxwvmblxild4vbygcrzw5chcwy6crvlz",
+ "fetcher": "github",
+ "repo": "kosh04/emacs-wandbox",
+ "unstable": {
+ "version": [
+ 20170603,
+ 1231
+ ],
+ "deps": [
+ "request",
+ "s"
+ ],
+ "commit": "e002fe41f2cd9b4ce2b1dc80b83301176e9117f1",
+ "sha256": "0fnbj3k21lisgs94pf8z13cdymmclgpn994xq3xly4gq6l8k0an5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 4
+ ],
+ "deps": [
+ "request",
+ "s"
+ ],
+ "commit": "e002fe41f2cd9b4ce2b1dc80b83301176e9117f1",
+ "sha256": "0fnbj3k21lisgs94pf8z13cdymmclgpn994xq3xly4gq6l8k0an5"
+ }
+ },
+ {
+ "ename": "wanderlust",
+ "commit": "426172b72026d1adeb1bf3fcc6b0407875047333",
+ "sha256": "0lq7fvqc0isv49lcm7ql6prc3hpcj5cx4kf8f4gcnfv5k8159cq9",
+ "fetcher": "github",
+ "repo": "wanderlust/wanderlust",
+ "unstable": {
+ "version": [
+ 20200124,
+ 858
+ ],
+ "deps": [
+ "semi"
+ ],
+ "commit": "7af0d582cd48a37469e0606ea35887740d78c8b5",
+ "sha256": "08gr4q5i4z1bs5qbfxmf9imjin1v1qvsk7x37qvr84p16kdr9vxn"
+ }
+ },
+ {
+ "ename": "warm-night-theme",
+ "commit": "312e3298d51b8ed72028df34dbd7620cdd03d8dd",
+ "sha256": "1nrjkrr64rry6fjya22b0lcs0f8a2ijvr87192z311y9mw5rvb29",
+ "fetcher": "github",
+ "repo": "mswift42/warm-night-theme",
+ "unstable": {
+ "version": [
+ 20161101,
+ 1428
+ ],
+ "commit": "020f084d23409b5035150508ba6e57c2509edd64",
+ "sha256": "1jmjyx06p0cvqi1vlg5px2g965q9pgi3j61msxjf5skzw53vlc88"
+ }
+ },
+ {
+ "ename": "watch-buffer",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "05f58kg05kfl4srwwjaf7w9jml50yx6bn4x8m1npswp882dsjyh9",
+ "fetcher": "github",
+ "repo": "mjsteger/watch-buffer",
+ "unstable": {
+ "version": [
+ 20120331,
+ 2044
+ ],
+ "commit": "761fd7252e6d7bf5148283c2a7ee935f087d9427",
+ "sha256": "0i84ndnxma8s07kf5ixqyhv5f89mzc4iymgazj5inmxhvbc7s7r2"
+ }
+ },
+ {
+ "ename": "wavefront-obj-mode",
+ "commit": "d48e4fdc6c7079a1ca70c1e879473a98c11bbe6c",
+ "sha256": "0qqismh6g2fvi45q2q52lq0n9nrh95wgamlsy5j4rx4syfgzxbrk",
+ "fetcher": "github",
+ "repo": "abend/wavefront-obj-mode",
+ "unstable": {
+ "version": [
+ 20170808,
+ 1716
+ ],
+ "commit": "34027915de6496460d8e68b5991dd24d47d54859",
+ "sha256": "0yj4wb5sdsbh3gp0sh2ajrrn6s8vg492809g4gxkxp30jhr6xc9q"
+ }
+ },
+ {
+ "ename": "wc-goal-mode",
+ "commit": "6f003b6d6bc91e6f9e510de8f5f5f9189d1c7334",
+ "sha256": "0l3gh96njjldp7n13jn1zjrp17h7ivjak102j6wwspgg6v2h5419",
+ "fetcher": "github",
+ "repo": "bnbeckwith/wc-goal-mode",
+ "unstable": {
+ "version": [
+ 20140829,
+ 1359
+ ],
+ "commit": "bf21ab9c5a449bcc20dd207a4915dcec218d2699",
+ "sha256": "0p7j4hvcxfyjf0na9s3xv29dvmwq82s56lincfasd0ydcpz4fbwc"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1
+ ],
+ "commit": "a8aa227b1a692dd6399855add84b5e37f6c5d9cb",
+ "sha256": "0mnfk2ys8axjh696cq5msr5cdr91icl1i3mi0dd2y00lvh6sbm7w"
+ }
+ },
+ {
+ "ename": "wc-mode",
+ "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
+ "sha256": "191dmxfpqnj7d43cr0fhdmj5ldfs7w9zg5pb2lv9wvlfl7asdid6",
+ "fetcher": "github",
+ "repo": "bnbeckwith/wc-mode",
+ "unstable": {
+ "version": [
+ 20200108,
+ 1841
+ ],
+ "commit": "79107d1130e8be3e1db4619373b98045b4fd9033",
+ "sha256": "01icd63mb2hg1bgbmkq3jm8kc3ic8whfy2awcgx53zqkmyz87qxc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "commit": "79107d1130e8be3e1db4619373b98045b4fd9033",
+ "sha256": "01icd63mb2hg1bgbmkq3jm8kc3ic8whfy2awcgx53zqkmyz87qxc"
+ }
+ },
+ {
+ "ename": "wcheck-mode",
+ "commit": "5d10b59f568fdedf248c2e8eaa06c4a74032ca56",
+ "sha256": "0cmdvhgax6r5svn3wkwll4j271qj70g8182c58riwnkhiajxmn3k",
+ "fetcher": "github",
+ "repo": "tlikonen/wcheck-mode",
+ "unstable": {
+ "version": [
+ 20190626,
+ 1839
+ ],
+ "commit": "271198bca70c05b4591c836d3c670b72cdfabe9c",
+ "sha256": "19wypzzqfy0xbcbf4gz2c1c1mapp6s68rk0crv71vvjq6dmbq5yz"
+ },
+ "stable": {
+ "version": [
+ 2019,
+ 6,
+ 17
+ ],
+ "commit": "c50e1f565802816a67852213dc31532290704412",
+ "sha256": "18ri9y23fd736d49sa1027k4lh0saw0zyiwds50jk6j9w4rvlzy9"
+ }
+ },
+ {
+ "ename": "wdl-mode",
+ "commit": "8cf1f20913d765ae36ecc2c9a69470ff51124e56",
+ "sha256": "1zhrs0cdsr8mxh9zn8cy6inzxcygk0lgsyw1d190253v1kk6072i",
+ "fetcher": "github",
+ "repo": "zhanxw/wdl-mode",
+ "unstable": {
+ "version": [
+ 20180831,
+ 1946
+ ],
+ "commit": "cef86e5afc136ae5ad9324cd6e6d6f860b889bcf",
+ "sha256": "0j7sv3dcpq2fvcip9834v6k8q1d8bpnbxnvz1g691lmc58z1a86a"
+ }
+ },
+ {
+ "ename": "weak-ref",
+ "commit": "ef1a6048d197a4feebb8d4ebb6dbfd600bce100e",
+ "sha256": "08c887xkj18j9s92pqlik7x6984y2fi4q7xlqa6wrbmjgl27cl1z",
+ "fetcher": "github",
+ "repo": "skeeto/elisp-weak-ref",
+ "unstable": {
+ "version": [
+ 20200217,
+ 2200
+ ],
+ "commit": "24e8c37da6465e65ce9f866267bd3fa53c8899c6",
+ "sha256": "0jh3l64sagvm3jdhxk8wwfddckwgk66w1cfn7cchklz0wss82cs2"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "434e7d7cc84d0813bd06606a04c08fc96cd9eec8",
+ "sha256": "1rri4q600vs3fhvvyds6jshjranfvb1zzn6zwy44q5g914ghhnfw"
+ }
+ },
+ {
+ "ename": "weather-metno",
+ "commit": "75beac314565b9becb701ddd9bc85660e268c3ae",
+ "sha256": "0h7p4l8y75h27pgk45f0mk3gjd43jk8q97gjf85a9b0afd63d3f6",
+ "fetcher": "github",
+ "repo": "ruediger/weather-metno-el",
+ "unstable": {
+ "version": [
+ 20150901,
+ 107
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "bfc7137095e0ee71aad70ac46f2af677f3c051b6",
+ "sha256": "05gfc67724b0mwg8kvk3dsazx3dld50b9xjq8h1nc6jvdz3zxb9z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b59680c1ab908b32513954034ba894dfb8564dd8",
+ "sha256": "0qx92jqzsimjk92pql2h8pzhq66mqijwqgjqwp7rmq5b6k0nvx1z"
+ }
+ },
+ {
+ "ename": "web",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "141idn49b7x7llz249zbg2yq8snjxpmlpchsd3n1axlrbmx6pfpz",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-web",
+ "unstable": {
+ "version": [
+ 20141231,
+ 2001
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "483188dac4bc6b409b985c9dae45f3324a425efd",
+ "sha256": "03xcadplw1hg5hxw6bfrhw5xkkxk3i4105f114c6m3d2525jq4y5"
+ }
+ },
+ {
+ "ename": "web-beautify",
+ "commit": "0d528d3e20b1656dff40860cac0e0fa9dc1a3e87",
+ "sha256": "06ky2svhca8hjgmvxrg3h6ya7prl72q1r88x967yc6b0qq3r7g0f",
+ "fetcher": "github",
+ "repo": "yasuyk/web-beautify",
+ "unstable": {
+ "version": [
+ 20161115,
+ 2247
+ ],
+ "commit": "e1b45321d8c11b404b12c8e55afe55eaa7c84ee9",
+ "sha256": "03b5pj58m00lkazyvvasa4qndrkh2kjzv2y7qhxljfg5mngyg3zg"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 2
+ ],
+ "commit": "aa95055224c24f38736716809fec487cd817c38d",
+ "sha256": "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"
+ }
+ },
+ {
+ "ename": "web-completion-data",
+ "commit": "604f155a3ce7e5375dcf8b9c149c5af403ef48bd",
+ "sha256": "1zzdmhyn6bjaidk808s4pdk25a5rn4287949ps5vbpyniaf6gny9",
+ "fetcher": "github",
+ "repo": "osv/web-completion-data",
+ "unstable": {
+ "version": [
+ 20160318,
+ 848
+ ],
+ "commit": "c272c94e8a71b779c29653a532f619acad433a4f",
+ "sha256": "19nzjgvd2i5745283ck3k2vylrr6lnk9h3ggzwrwdhyd3m9433vm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "c272c94e8a71b779c29653a532f619acad433a4f",
+ "sha256": "19nzjgvd2i5745283ck3k2vylrr6lnk9h3ggzwrwdhyd3m9433vm"
+ }
+ },
+ {
+ "ename": "web-mode",
+ "commit": "6f0565555eaa356141422c5175d6cca4e9eb5c00",
+ "sha256": "1vyhyc5nf4yj2m63inpwmcqvlsihaqw8nn8xvfdg44nhl6vjz97i",
+ "fetcher": "github",
+ "repo": "fxbois/web-mode",
+ "unstable": {
+ "version": [
+ 20200612,
+ 1038
+ ],
+ "commit": "60ffd878c4371644bd964f00fea38054645e3e47",
+ "sha256": "0la14k422jqcny1bxgvv8yidanl3pv5kkdfbiwq8skxsd6m2xfq5"
+ },
+ "stable": {
+ "version": [
+ 17
+ ],
+ "commit": "d115f8dc3052e5779938d782d9cdaa4533ef20ff",
+ "sha256": "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"
+ }
+ },
+ {
+ "ename": "web-mode-edit-element",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1kcycsjjv1bzfn93aq3cdh5d913izrr8cdxmknbyriyipsqryh3l",
+ "fetcher": "github",
+ "repo": "jtkDvlp/web-mode-edit-element",
+ "unstable": {
+ "version": [
+ 20190531,
+ 852
+ ],
+ "deps": [
+ "web-mode"
+ ],
+ "commit": "ad5d7e4dc2420bdd00ce65d9adffbd38a5904afa",
+ "sha256": "143xh6xc7qd88hjjmcs9fd2zlgxl0hhgx5fplhbi9zxd2ihhz0dg"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3
+ ],
+ "deps": [
+ "web-mode"
+ ],
+ "commit": "ad5d7e4dc2420bdd00ce65d9adffbd38a5904afa",
+ "sha256": "143xh6xc7qd88hjjmcs9fd2zlgxl0hhgx5fplhbi9zxd2ihhz0dg"
+ }
+ },
+ {
+ "ename": "web-narrow-mode",
+ "commit": "a910da9e0566344d4b195423b5f270cb2bdcc1e5",
+ "sha256": "09k3xp4l235wrffl7a4026wpikxhp10fh3182dlp4pa4wr2vzipi",
+ "fetcher": "github",
+ "repo": "Qquanwei/web-narrow-mode",
+ "unstable": {
+ "version": [
+ 20170407,
+ 210
+ ],
+ "deps": [
+ "web-mode"
+ ],
+ "commit": "73bdcb7d0701abe65dab4fc295d944885e05ae33",
+ "sha256": "1wg54vyfbacmyh8lyd5fgh88lfby17v24l98jjgxscaqgms86bch"
+ }
+ },
+ {
+ "ename": "web-search",
+ "commit": "503ef2042cc14dbe53e7121b8d0b5ccbdf6c882b",
+ "sha256": "08iflbp6rmsxsy2lahsdjj9ki70ixqhsas0vxzawz5pi5vk2x9gj",
+ "fetcher": "github",
+ "repo": "xuchunyang/web-search.el",
+ "unstable": {
+ "version": [
+ 20190620,
+ 602
+ ],
+ "commit": "a22cbdc663a1895d5a5b69de91e1e3b9eb64b92f",
+ "sha256": "0nbfgv99c0kmc9imnbqjhamxfdjaj00lhdxjxmrwkvzaiplsa5ra"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "commit": "a22cbdc663a1895d5a5b69de91e1e3b9eb64b92f",
+ "sha256": "0nbfgv99c0kmc9imnbqjhamxfdjaj00lhdxjxmrwkvzaiplsa5ra"
+ }
+ },
+ {
+ "ename": "web-server",
+ "commit": "70e724b4e6c76d0299d5ea8d2211f48c1c611afe",
+ "sha256": "1f0iyvwq1kq3zfxx2v596cmah7jfk2a04g2rjllbgxxnzwms29z3",
+ "fetcher": "github",
+ "repo": "eschulte/emacs-web-server",
+ "unstable": {
+ "version": [
+ 20200330,
+ 1407
+ ],
+ "commit": "9edf4b5e3c6cea1738acf08241919e00437ec530",
+ "sha256": "1cf2g67q064pnji0hbg0x5ziqmxwim127sd4q849cifxj7a4rqaw"
+ }
+ },
+ {
+ "ename": "webkit-color-picker",
+ "commit": "af9d2e39385c6833eff6b7c7e5a039238563c00f",
+ "sha256": "1i9244zghabyavxhz86d22fn40qspzdn2sjql8pl3mm8ks7a49a3",
+ "fetcher": "github",
+ "repo": "osener/emacs-webkit-color-picker",
+ "unstable": {
+ "version": [
+ 20180325,
+ 736
+ ],
+ "deps": [
+ "posframe"
+ ],
+ "commit": "765cac80144cad4bc0bf59025ea0199f0486f737",
+ "sha256": "0a6nirdn1l7cymjycbns38ja9an1z4l5lwjk5h428aly3pmkvdqj"
+ }
+ },
+ {
+ "ename": "weblogger",
+ "commit": "e8ccb10a5d1f4db3b20f96dee3c14ee64f4674e2",
+ "sha256": "0k0l715lnqb0a4hlkfjkyhr8i1jaml8z2xzhal7ryhjgvf8xinvs",
+ "fetcher": "github",
+ "repo": "hexmode/weblogger-el",
+ "unstable": {
+ "version": [
+ 20110926,
+ 1618
+ ],
+ "deps": [
+ "xml-rpc"
+ ],
+ "commit": "b3dd4aead9d3a87e6d85e7fef4f4f3bd40d87b53",
+ "sha256": "03dkabszk6ya3vaps1ap16psk5bbar8zd5ipn1lmyzsbd3hwm8mj"
+ }
+ },
+ {
+ "ename": "webpaste",
+ "commit": "13847d91c1780783e516943adee8a3530c757e17",
+ "sha256": "1pqqapslb5wxfrf1ykrj5jxcl43pix17lawgdqrqkv5fyxbhmfpm",
+ "fetcher": "github",
+ "repo": "etu/webpaste.el",
+ "unstable": {
+ "version": [
+ 20200503,
+ 1919
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "5e963e8ef17e937745b8f3b64f29690290c7a5c0",
+ "sha256": "1i9scalpinp87wnapgpdw51p1q0y9wjf6nv4jbskzn7irvlkhhzx"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "5e963e8ef17e937745b8f3b64f29690290c7a5c0",
+ "sha256": "1i9scalpinp87wnapgpdw51p1q0y9wjf6nv4jbskzn7irvlkhhzx"
+ }
+ },
+ {
+ "ename": "websocket",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "1v8jlpahp30lihz7mdznwl6pyrbsdbqznli2wb5gfblnlxil04lg",
+ "fetcher": "github",
+ "repo": "ahyatt/emacs-websocket",
+ "unstable": {
+ "version": [
+ 20200419,
+ 2124
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5aaf9d12068f98fb4efa772a3e5f4bb350b79a99",
+ "sha256": "13qwvjid9d67kk4ggvc2hvm6j4wy1jassd02krp8as91h5hr0y36"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 12
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "491a60b8bb8a6c3bd081c70354ab82040b0a7db3",
+ "sha256": "0g0vy2yc118mcka9f26950gdmb780zpxck9y6nli602vj32dw1g2"
+ }
+ },
+ {
+ "ename": "wedge-ws",
+ "commit": "42fb11fe717b5fe73f4a6fa4e199ef4c58a85eb2",
+ "sha256": "07i2dr807np4fwq3ryxlw11vbc1sik1iv7x5740q258jyc9zfgll",
+ "fetcher": "github",
+ "repo": "aes/wedge-ws",
+ "unstable": {
+ "version": [
+ 20140714,
+ 2149
+ ],
+ "commit": "4669115f02d9c6fee067cc5369bb38c0f9db88b2",
+ "sha256": "19hgb5knqqc4rb8yl8s604xql8ar6m9r4d379cfakn15jvwqnl98"
+ }
+ },
+ {
+ "ename": "weechat",
+ "commit": "e38255a31a4ca31541c97a506a55f82e2670abe6",
+ "sha256": "0sxrms5024bi4irv8x8s8j1zcyd62cpqm0zv4dgpm65wnpc7xc46",
+ "fetcher": "github",
+ "repo": "the-kenny/weechat.el",
+ "unstable": {
+ "version": [
+ 20190520,
+ 1551
+ ],
+ "deps": [
+ "cl-lib",
+ "s",
+ "tracking"
+ ],
+ "commit": "d9a13306ea8be27367f92e9202d116a88fa1f441",
+ "sha256": "1z9lav09jsmhshlk0xnbp21y9apzhd9zv08h88sdg942v0fn2fid"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "s",
+ "tracking"
+ ],
+ "commit": "8cbda2738149b070c09288df550781b6c604beb2",
+ "sha256": "1i930jaxpva9s6y3fj3nny46b70g4mqdjl54mcv2rzj95bp4f908"
+ }
+ },
+ {
+ "ename": "weechat-alert",
+ "commit": "7a69ad48eabb166f66e6eb5c5cdc75aefc8b989f",
+ "sha256": "026hkddvd4a6wy7s8s0lklw8b99fpjawdgi7amvpcrn79ylwbf22",
+ "fetcher": "github",
+ "repo": "Kungi/weechat-alert",
+ "unstable": {
+ "version": [
+ 20160416,
+ 1248
+ ],
+ "deps": [
+ "alert",
+ "cl-lib",
+ "weechat"
+ ],
+ "commit": "a8fd557c8f335322f132c1c6c08b6741d6394e2e",
+ "sha256": "1hkhim2jfdywx6ks4qfcizycp5qsx4ms6929kbgmzzb8i7j380x6"
+ }
+ },
+ {
+ "ename": "weibo",
+ "commit": "21f4c1b34f86331ecbcdbdc39858a191232902f2",
+ "sha256": "1ndgfqqb0gvy8p2fisi57s9bsa2nrnv80smg78m89i4cwagbz6yd",
+ "fetcher": "github",
+ "repo": "austin-----/weibo.emacs",
+ "unstable": {
+ "version": [
+ 20150307,
+ 2242
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "a8abb50b7602fe15fe2bc6400ac29780e956b390",
+ "sha256": "0hc5iyjpcik996ns84akrl28scndmn0gd1zfdf1nnqq6n2m5zvgh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "a8af467e5660a35342029c2796de99cd551454b2",
+ "sha256": "14vmgfz45wmpjfhfx3pfjn3bak8qvj1zk1w4xc5w1cfl6vnij6hv"
+ }
+ },
+ {
+ "ename": "weyland-yutani-theme",
+ "commit": "87fd30180367eaf64fe145d78e50febdfd79772b",
+ "sha256": "184vc3r34j2pv0a2a2bldbzpvv8d39c20znv6l9fmnqmr48fzvnq",
+ "fetcher": "github",
+ "repo": "jstaursky/weyland-yutani-theme",
+ "unstable": {
+ "version": [
+ 20200818,
+ 2225
+ ],
+ "commit": "d17297aee3a15b326e813d6c12831b587f6267fd",
+ "sha256": "0brixf1j1hdmj0wvd3qzlmr844fvd61nxgc5adczpy0qivc1c1c9"
+ }
+ },
+ {
+ "ename": "wgrep",
+ "commit": "9648e3df896fcd97b3757a727108bc78261973cc",
+ "sha256": "09xs420lvbsmz5z28rf6f1iwa0ixkk0w24qbj6zhl9hidh4mv9y4",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-wgrep",
+ "unstable": {
+ "version": [
+ 20200217,
+ 1030
+ ],
+ "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+ "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 2
+ ],
+ "commit": "fcd8c22748024342af15d54f3e7ab5596cf5c4bd",
+ "sha256": "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"
+ }
+ },
+ {
+ "ename": "wgrep-ack",
+ "commit": "9648e3df896fcd97b3757a727108bc78261973cc",
+ "sha256": "03l1a681cwnn06m77xg0a547892gy8mh415v9rg3h6lkxwcld8wh",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-wgrep",
+ "unstable": {
+ "version": [
+ 20200128,
+ 109
+ ],
+ "deps": [
+ "wgrep"
+ ],
+ "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+ "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 2
+ ],
+ "deps": [
+ "wgrep"
+ ],
+ "commit": "fcd8c22748024342af15d54f3e7ab5596cf5c4bd",
+ "sha256": "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"
+ }
+ },
+ {
+ "ename": "wgrep-ag",
+ "commit": "2c50b704343c4cac5e2a62a67e284ba6d8e15f8a",
+ "sha256": "1b2mj06kws29ha7g16l5d1s3p3nwyw8rprbpaiijdk9nxqcm0a8a",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-wgrep",
+ "unstable": {
+ "version": [
+ 20200217,
+ 1028
+ ],
+ "deps": [
+ "wgrep"
+ ],
+ "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+ "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 2
+ ],
+ "deps": [
+ "wgrep"
+ ],
+ "commit": "fcd8c22748024342af15d54f3e7ab5596cf5c4bd",
+ "sha256": "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"
+ }
+ },
+ {
+ "ename": "wgrep-helm",
+ "commit": "9648e3df896fcd97b3757a727108bc78261973cc",
+ "sha256": "1hh7isc9xifkrdfw88jw0z0xmfazrbcis6d355bcaxlnjy6fzm8b",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-wgrep",
+ "unstable": {
+ "version": [
+ 20200128,
+ 109
+ ],
+ "deps": [
+ "wgrep"
+ ],
+ "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+ "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 2
+ ],
+ "deps": [
+ "wgrep"
+ ],
+ "commit": "fcd8c22748024342af15d54f3e7ab5596cf5c4bd",
+ "sha256": "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"
+ }
+ },
+ {
+ "ename": "wgrep-pt",
+ "commit": "c39faef3b9c2e1867cd48341d9878b714dbed4eb",
+ "sha256": "1gphdf85spsywj3s3ypb7dwrqh0zd70n2vrbgjqkbnfbwqjp9qbg",
+ "fetcher": "github",
+ "repo": "mhayashi1120/Emacs-wgrep",
+ "unstable": {
+ "version": [
+ 20200128,
+ 109
+ ],
+ "deps": [
+ "wgrep"
+ ],
+ "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+ "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 3,
+ 2
+ ],
+ "deps": [
+ "wgrep"
+ ],
+ "commit": "fcd8c22748024342af15d54f3e7ab5596cf5c4bd",
+ "sha256": "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"
+ }
+ },
+ {
+ "ename": "what-the-commit",
+ "commit": "6d22725c2fce506c659bd33aabca182be0048905",
+ "sha256": "0nnyb6hq6r21wf1x3q41ab48b3dmcz5lyli771a59dk1gs8qpgak",
+ "fetcher": "github",
+ "repo": "danielbarbarito/what-the-commit.el",
+ "unstable": {
+ "version": [
+ 20150901,
+ 1316
+ ],
+ "commit": "868c80a1b8614bcbd2225cd0290142c72f2a7956",
+ "sha256": "04w62davpqqqvympkr52bg54c2i45p09q9bs70p9ff5jvc6i3g76"
+ }
+ },
+ {
+ "ename": "which-key",
+ "commit": "315865a3df97c0694f648633d44b8b34df1ac76d",
+ "sha256": "0vqbhfzcv9m58w41zdhpiymhgl38n15c6d7ffd99narxlkckcj59",
+ "fetcher": "github",
+ "repo": "justbur/emacs-which-key",
+ "unstable": {
+ "version": [
+ 20200817,
+ 2358
+ ],
+ "commit": "e48e190a75a0c176e1deac218b891e77792d6921",
+ "sha256": "1wr5lqjc5si0s0rn266jxfwln93l7aw79885w66gbjcynfy8rji3"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 4,
+ 0
+ ],
+ "commit": "1e3640e48c31f8062f018b5fc84acad696a0ea2a",
+ "sha256": "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"
+ }
+ },
+ {
+ "ename": "which-key-posframe",
+ "commit": "56ab10dc99ea4f5b207f9874124aff414d859a17",
+ "sha256": "1vpdni3ascz2zw6k1xrnw2vqnq8p30mc7d8v81qdbjb58q27l8ll",
+ "fetcher": "github",
+ "repo": "yanghaoxie/which-key-posframe",
+ "unstable": {
+ "version": [
+ 20190427,
+ 1103
+ ],
+ "deps": [
+ "posframe",
+ "which-key"
+ ],
+ "commit": "e7f28608c7fc9507e407c6b840dff09062df533a",
+ "sha256": "0954llm57gfy3lvq8s32mqdswbv20na0v28gi61kw7023f1wg7ri"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "posframe",
+ "which-key"
+ ],
+ "commit": "75e73e187da78d823a5dc01c21e09e808e4fb938",
+ "sha256": "1ay6qnil7xmml95yiax191fs85mpjkpr0r9314zlf0mf7ip9hvpy"
+ }
+ },
+ {
+ "ename": "whitaker",
+ "commit": "4b5d717e2eaf35ce33b26be049a39f2f75a7de72",
+ "sha256": "17fnvb3jh6fi4wddn5qnp6i6ndidg8jf9ac69q9j032c2msr07nj",
+ "fetcher": "github",
+ "repo": "Fuco1/whitaker",
+ "unstable": {
+ "version": [
+ 20150814,
+ 1122
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "eaf26ea647b729ca705b73ea70312d5ffdf89448",
+ "sha256": "1y75cylvqgn54h8yqahz4wi1qj5yhbs66i7x23jmbmah3q0rycab"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "28172edce0f727f0f7f17d8ba71d5510d877bb45",
+ "sha256": "01fwhrfi92pcrwc4yn03pflc9wj07mhzj0a0i5amar4f9bj6m5b4"
+ }
+ },
+ {
+ "ename": "white-sand-theme",
+ "commit": "b124575c4a4f783b6726d0526b83e67b4ad65cc9",
+ "sha256": "19qsiic6yf7g60ygjmw7kg1i28nqpm3zja8cmdh33ny2bbkwxsz5",
+ "fetcher": "github",
+ "repo": "mswift42/white-sand-theme",
+ "unstable": {
+ "version": [
+ 20151117,
+ 1648
+ ],
+ "commit": "97621edd69267dd143760d94393db2c2558c9ea4",
+ "sha256": "0sh92g5vd518f80klvljqkjpw4ji909439dpc3sfaccf5jiwn9xn"
+ }
+ },
+ {
+ "ename": "white-theme",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "04l5hjhd465w9clrqc4dr8bx8hj4i9dx4nfr9hympgv101bpgy4x",
+ "fetcher": "github",
+ "repo": "anler/white-theme.el",
+ "unstable": {
+ "version": [
+ 20160917,
+ 1743
+ ],
+ "commit": "e9e6d5b9d43da6eb15e86f5fbc8b1ba83abe8c78",
+ "sha256": "1yqfq1gzkrw79myvj16nfi30ynfyz8yrpbzjcj8nhsc5rfrrmym2"
+ }
+ },
+ {
+ "ename": "whitespace-cleanup-mode",
+ "commit": "b461cfe450d7ce6bd0c14be3460cacffc1a32e6f",
+ "sha256": "1fhdjrxxyfx4xsgfjqq9p7vhj98wmqf2r00mv8k27vdaxwsnm5p3",
+ "fetcher": "github",
+ "repo": "purcell/whitespace-cleanup-mode",
+ "unstable": {
+ "version": [
+ 20200304,
+ 2227
+ ],
+ "commit": "c344cfd78df23980ee48fb85fbc16989b7d4cffe",
+ "sha256": "1jwz89j6v8mmdim8knnwjz2ip0cwn5lq6x8nz78xns1ba5fg293b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10
+ ],
+ "commit": "e1e250aa6f5b1a526778c7a501cdec98ba29c0a4",
+ "sha256": "0xmwhybb8x6wwfr55ym5xg4dhy1aqx1abxy9qskn7h3zf1z4pgg2"
+ }
+ },
+ {
+ "ename": "whizzml-mode",
+ "commit": "11f26b15c326c3b8541bac510579b32493916042",
+ "sha256": "0gas9xfpz5v9fbhjxhd4msihwz9w4a05l5icsaclxvh06f92wcyk",
+ "fetcher": "github",
+ "repo": "whizzml/whizzml-mode",
+ "unstable": {
+ "version": [
+ 20191216,
+ 1743
+ ],
+ "commit": "65fa17f8c1dc50dcb90277b64019c2846a317293",
+ "sha256": "0swlmzfrxpv3slssmpad3hgxfxlmi8jp3422mvcsg9xbdslg2qb5"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 35,
+ 1
+ ],
+ "commit": "65fa17f8c1dc50dcb90277b64019c2846a317293",
+ "sha256": "0swlmzfrxpv3slssmpad3hgxfxlmi8jp3422mvcsg9xbdslg2qb5"
+ }
+ },
+ {
+ "ename": "whois",
+ "commit": "719895d3db6daae5df00d4823a62fcc0f7bf2d9d",
+ "sha256": "061jbk97ma21id0vpkvxdslfvs2x0wqw8c32mwhdcqjqjc74k9km",
+ "fetcher": "github",
+ "repo": "lassik/emacs-whois",
+ "unstable": {
+ "version": [
+ 20200715,
+ 1715
+ ],
+ "commit": "11d01c483ab3ba78b6ea1e195bda65b5e35f2d4c",
+ "sha256": "14w1cchij7i8a9m9z71dsz76aphidmvp8lbai4gaxxi4qiyvkcn3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "7cc7e2734ec823bed6eb923387b3b33a1cde0c86",
+ "sha256": "0d8q8as85fjn2v65i25xv9bzg03mlk4jhxrbqrcg5ywjiv5i2ljg"
+ }
+ },
+ {
+ "ename": "whole-line-or-region",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0zz9i1jxayw2p6ggfxjvhb1mc3ly9iy4jvk23ycndz9lnnzkch0y",
+ "fetcher": "github",
+ "repo": "purcell/whole-line-or-region",
+ "unstable": {
+ "version": [
+ 20200305,
+ 221
+ ],
+ "commit": "9791ae59f8bd8b9375d2dede92de8eba5f0d89fb",
+ "sha256": "0fk2nhcjkwrni8np8788z9aanrj1hxchg37a1j1z9ds42f0ghj6h"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "0d11174ba5e1145167000aa8f65c273a3d0db6b3",
+ "sha256": "1zw4aabadhsn81i3bwdl4717fq6a0njypavw2riyzbz465axd60i"
+ }
+ },
+ {
+ "ename": "wide-column",
+ "commit": "8d29def44ae42dc4b60c1d254a57572bd09faf51",
+ "sha256": "1kyyvq9fgaypvhiy9vbvr99xsac5vhylkbjsxn5fhylyc5n867sb",
+ "fetcher": "github",
+ "repo": "phillord/wide-column",
+ "unstable": {
+ "version": [
+ 20170925,
+ 1613
+ ],
+ "commit": "ce9ef4675485a7bea381077866368ef875226b10",
+ "sha256": "0qh8hy4jl59bfg4323a8h4q4a78gn4hsglfk2h23hqssbv4mhsp2"
+ }
+ },
+ {
+ "ename": "widget-mvc",
+ "commit": "76d3c38e205076a22628f490d8e8ddd80d091eab",
+ "sha256": "0njzvdlxb7z480r6dvmksgivhz7rvnil517aj86qx0jbc5mr3l2f",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-widget-mvc",
+ "unstable": {
+ "version": [
+ 20150102,
+ 406
+ ],
+ "commit": "ff5a85880df7b87f9f480fe3c28438a0712b7b87",
+ "sha256": "1s0srhklmkmj3lfs8vr1dqi3s48z7fwx9mxqxckk5njld317hqg7"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 2
+ ],
+ "commit": "2576e6f0c35d8dedfa9c2cd6ea4fb4c14cb72b63",
+ "sha256": "0fqv63m8z5m5ghh4j8ccdnmgcdkvi4jqpg9z7lp17g4p9pq3xfjf"
+ }
+ },
+ {
+ "ename": "widgetjs",
+ "commit": "78d7a15152f45a193384741fa00d0649c4bba91e",
+ "sha256": "0y5h1ag2m7w47l4nx4d18yz3fvd411rm1h5w7zz4xh67bnx4zyy1",
+ "fetcher": "github",
+ "repo": "foretagsplatsen/emacs-js",
+ "unstable": {
+ "version": [
+ 20160719,
+ 1504
+ ],
+ "deps": [
+ "js2-mode",
+ "js2-refactor",
+ "makey",
+ "s"
+ ],
+ "commit": "a0d8456b9f71fcb40a28ec9235132df506aa6ecc",
+ "sha256": "1bndpdzscb917sp32khmifk7vdkj4psh7c8rf4j5s5zs7033qwka"
+ }
+ },
+ {
+ "ename": "wiki-nav",
+ "commit": "baa49e7d2d5c07ebf77e7941c240b88fcfd0fc8b",
+ "sha256": "19mabz0y3fcqsm68ijwwbbqylxgp71anc0a31zgc1blha9jivvwy",
+ "fetcher": "github",
+ "repo": "rolandwalker/button-lock",
+ "unstable": {
+ "version": [
+ 20200309,
+ 1323
+ ],
+ "deps": [
+ "button-lock",
+ "nav-flash"
+ ],
+ "commit": "9afe0f4d05910b0cccc94cb6d4d880119f3b0528",
+ "sha256": "1d893isxvchrqxw6iaknbv8l31rgalfc4hmppf0l87gxp5y9hxa2"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 2
+ ],
+ "deps": [
+ "button-lock",
+ "nav-flash"
+ ],
+ "commit": "cd0bf4a3c2f224d851e6ed8a54a6e80c129b225f",
+ "sha256": "1kqcc1d56jz107bswlzvdng6ny6qwp93yck2i2j921msn62qvbb2"
+ }
+ },
+ {
+ "ename": "wiki-summary",
+ "commit": "31877f182ab82fd5bb73ec4ddd8526a032d9edf9",
+ "sha256": "1hiyi3w6rvins8hfxd96bgpihxarmv192q96sadqcwshcqi14zmw",
+ "fetcher": "github",
+ "repo": "jozefg/wiki-summary.el",
+ "unstable": {
+ "version": [
+ 20181010,
+ 1824
+ ],
+ "commit": "fa41ab6e50b3b80e54148af9d4bac18fd0405000",
+ "sha256": "0qcnqwiylkkb7132bzra49k7jg8kq13jif8096vpg4xzpcq5lpj2"
+ }
+ },
+ {
+ "ename": "wilt",
+ "commit": "eea4f2ca8b4f9ea93cc02151fdda6cfee5b68b70",
+ "sha256": "0nw6zr06zq60j72qfjmbqrxyz022fnisb0bsh6xmlnd1k1kqlrz6",
+ "fetcher": "github",
+ "repo": "sixty-north/emacs-wilt",
+ "unstable": {
+ "version": [
+ 20180220,
+ 854
+ ],
+ "deps": [
+ "dash",
+ "s"
+ ],
+ "commit": "04dbe37fa35d0b24c791421785d2c97a8cbfe2cc",
+ "sha256": "197kqp22pyy1in2rq063mahvrf00vrfvgnfkqp0zy7hpkhiiqvim"
+ }
+ },
+ {
+ "ename": "win-switch",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "1s6inp5kf763rngn58r02fd7n7z3dd55j6hb7s9dgvc856d5z3my",
+ "fetcher": "github",
+ "repo": "genovese/win-switch",
+ "unstable": {
+ "version": [
+ 20161009,
+ 1627
+ ],
+ "commit": "954eb5e4c5737f0c06368c42a7f1c3dd374d782f",
+ "sha256": "1xpx4sc1g1w8w0yc39k2dys83m8skrpvi745bfrzdl47jngrf54h"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 4
+ ],
+ "commit": "954eb5e4c5737f0c06368c42a7f1c3dd374d782f",
+ "sha256": "1xpx4sc1g1w8w0yc39k2dys83m8skrpvi745bfrzdl47jngrf54h"
+ }
+ },
+ {
+ "ename": "windata",
+ "commit": "84f836338818946a6bb31d35d6ae959571128ed5",
+ "sha256": "1mah2vy46pxwjd6c6ac14d2qfcixs2yrgwmzmisnfgsvprdlxryb",
+ "fetcher": "github",
+ "repo": "emacsorphanage/windata",
+ "unstable": {
+ "version": [
+ 20090830,
+ 1040
+ ],
+ "commit": "a723fc446ceaec23d5f29ecc8245d94c99d91625",
+ "sha256": "0y8yw5hazsir5kjskrh4mr63mmz87dc7yy5ddmlwpmn03wanqpha"
+ }
+ },
+ {
+ "ename": "window-end-visible",
+ "commit": "c9db386ab3910940addae6e925b2ac17e64e0f87",
+ "sha256": "1p78n7yysj18404cdc6vahfrzwn5pixyfnja8ch48rj4fm4jbxwq",
+ "fetcher": "github",
+ "repo": "rolandwalker/window-end-visible",
+ "unstable": {
+ "version": [
+ 20140508,
+ 2041
+ ],
+ "commit": "525500fb2ebc08f3f9ea493972e5f2e1d79f89ef",
+ "sha256": "0g69r64gyz4p3k6n8l0i1837mszycbrp23acnp0iy0y3mg67x3pn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "commit": "bdc3d182e5f76e75f1b8cc49357194b36e48b67c",
+ "sha256": "049bwa5g0z1b9nrsc1vc4511aqcq9fvl16xg493wj651g6q9qigb"
+ }
+ },
+ {
+ "ename": "window-jump",
+ "commit": "d44fc32e12f00bbaa799b4054e9ff0fc0d3bfbfb",
+ "sha256": "1gmqb7j5fb3q3krgx7arrln5nvyg9vcpph6wlxj6py679wfa3lwr",
+ "fetcher": "github",
+ "repo": "chumpage/chumpy-windows",
+ "unstable": {
+ "version": [
+ 20170809,
+ 2208
+ ],
+ "commit": "6bdb51e9a346907d60a9625f6180bddd06be6674",
+ "sha256": "1wkyvfqmf24c8kb162pwi6wcm88bzf0x9mxljzkx0s8bq9aliny6"
+ }
+ },
+ {
+ "ename": "window-layout",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "061mvxcj4mg2pmkln7nn6gyscs08aid4cfc6xck0x5gzr1snr639",
+ "fetcher": "github",
+ "repo": "kiwanami/emacs-window-layout",
+ "unstable": {
+ "version": [
+ 20170215,
+ 33
+ ],
+ "commit": "cd2e4f967b610c2bbef53182829e47250d027056",
+ "sha256": "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "commit": "cd2e4f967b610c2bbef53182829e47250d027056",
+ "sha256": "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"
+ }
+ },
+ {
+ "ename": "window-number",
+ "commit": "74523af6e22ebae2f5fe7c4da4e8af8fac5fa074",
+ "sha256": "1ivd701h6q48i263fxxi44haacaz8cjg562ry8dxd10rbhhsjsq0",
+ "fetcher": "github",
+ "repo": "nikolas/window-number",
+ "unstable": {
+ "version": [
+ 20170801,
+ 151
+ ],
+ "commit": "d41722de646ffeb3f70d26e4a86a5a1ba5c6be87",
+ "sha256": "1ifs7zp8c5m9da5dz0y4cq7pgqgdkz63v00ib07xdycnfjp4w17i"
+ }
+ },
+ {
+ "ename": "window-numbering",
+ "commit": "ce1dc80f69894736b276885e4ec3ce571a8612c9",
+ "sha256": "0x3n0ni16q69lfpyjz61spqghmhvc3cwa4aj80ihii3pk80f769x",
+ "fetcher": "github",
+ "repo": "nschum/window-numbering.el",
+ "unstable": {
+ "version": [
+ 20160809,
+ 1810
+ ],
+ "commit": "10809b3993a97c7b544240bf5d7ce9b1110a1b89",
+ "sha256": "1nlgzrjg5k7wyaka8ziqyv683vsc0f2lw5kr5xajcqlamwbzs7vi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 2
+ ],
+ "commit": "653afce73854d629c2b9d63dad73126032d6a24c",
+ "sha256": "1rz2a1l3apavsknlfy0faaivqgpj4x9jz3hbysbg9pydpcwqgf64"
+ }
+ },
+ {
+ "ename": "window-purpose",
+ "commit": "5813120ab674f6db7d0a486433d8faa6cfec1727",
+ "sha256": "1y70jrba3gf9fyf2qdihfshbsblzb88yv9fkcswdzrpq5kmgwp84",
+ "fetcher": "github",
+ "repo": "bmag/emacs-purpose",
+ "unstable": {
+ "version": [
+ 20190628,
+ 1827
+ ],
+ "deps": [
+ "imenu-list",
+ "let-alist"
+ ],
+ "commit": "f6421966761ad911fe8861aba2b110c5dd60d1ea",
+ "sha256": "1p0y5gnrw7q65py2wjdf1hrdpiw5c2zbgvfbfmb13257jq5mga38"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 7
+ ],
+ "deps": [
+ "imenu-list",
+ "let-alist"
+ ],
+ "commit": "a302340e183d20baa4445858d321f43449298829",
+ "sha256": "1dpy8hkjn87wbdkzyabhay4jx4dgc0ab2flyf0rjq1qaazk393sc"
+ }
+ },
+ {
+ "ename": "winds",
+ "commit": "43a07dc1e9af8f832330131764147907826e06e5",
+ "sha256": "1a5kw44pyilgaydyp87his41b2hw0xijp6sggl7bd60jwgspa0wy",
+ "fetcher": "github",
+ "repo": "Javyre/winds.el",
+ "unstable": {
+ "version": [
+ 20200501,
+ 419
+ ],
+ "commit": "720a0cedfdc20940f4c740e74fa0e16983cb0367",
+ "sha256": "00s0c2ilmypygqlrfa0ajig25h5jijxwwzpcfxgwbjf71wn5g9mg"
+ }
+ },
+ {
+ "ename": "windsize",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1fzqf86d7pimnc87xdgvpv4hnv7j6ngmk1sjvazj6726xygswkyv",
+ "fetcher": "github",
+ "repo": "grammati/windsize",
+ "unstable": {
+ "version": [
+ 20181029,
+ 2257
+ ],
+ "commit": "62c2846bbe95b0a73e996c75e4a644d05f57aaaa",
+ "sha256": "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "014b0836f9ffe45fa7e0ccc84576fbef74815a59",
+ "sha256": "1f4v0xd341qs4kfnjqhgf8j26valvg6pz4rwcz0zj0s23niy2yil"
+ }
+ },
+ {
+ "ename": "windswap",
+ "commit": "442a7394fd31e641b778ef0b218a5ef158377db0",
+ "sha256": "0yxh8zlqg2gv08gfima2vgcqwadqkli1qz6q11xvy5a0d3n8drxr",
+ "fetcher": "github",
+ "repo": "purcell/windswap",
+ "unstable": {
+ "version": [
+ 20200722,
+ 411
+ ],
+ "commit": "1a334f6543e0a30c55ea1e6071e9732d948f9e4b",
+ "sha256": "0q36rqy1ss1hayf698zla2m6ff57gigkji5slaffjhnijhsj3c67"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "33d59d371843d5a72a4327e318382ff27ee15674",
+ "sha256": "13hbpi6rr7vgyy1cbxaz947ixbrbp8x2dy6dw2l02c5hl4p65miw"
+ }
+ },
+ {
+ "ename": "windwow",
+ "commit": "12aba18872021ce0affa96c46a17353c7d073ca2",
+ "sha256": "0cbkp98pwzj484akdbidvdz4kqxv6ix6paimpxnag6fffciq245h",
+ "fetcher": "github",
+ "repo": "vijumathew/windwow",
+ "unstable": {
+ "version": [
+ 20170816,
+ 148
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "77bad26f651744b68d31b389389147014d250f23",
+ "sha256": "0vbmmf8wm76k389g5ncs0grwlpwp3glpwvhdi5dfxaqcp2phaaad"
+ }
+ },
+ {
+ "ename": "winnow",
+ "commit": "58891c2057ec834f999e3bf82af15e0617a4d4cf",
+ "sha256": "07kwjdmvzgvg7gc53dv10jfi212m0pimzrhiga38lrqrnrw631m0",
+ "fetcher": "github",
+ "repo": "dgtized/winnow.el",
+ "unstable": {
+ "version": [
+ 20170903,
+ 1206
+ ],
+ "commit": "18cb6b94338f3b7b4f2cd0331dad22f82dd9e0d3",
+ "sha256": "1wp00zxxcibvl6vjwmvhkgcbi76dyb2g8c30wy4kp7876cpc8hgv"
+ }
+ },
+ {
+ "ename": "winpoint",
+ "commit": "665e24e490618c7caeae4a9d17d1f614dc0a2617",
+ "sha256": "10ji7xd9ipmy6c2qxljqdxgqf5sb8h7lwz43mr6ixbn7v1b7pp6w",
+ "fetcher": "github",
+ "repo": "jorgenschaefer/winpoint",
+ "unstable": {
+ "version": [
+ 20131023,
+ 1713
+ ],
+ "commit": "e6050093c076308184566fa1d1012423d6934773",
+ "sha256": "1qrbvidnmgg7jyasb28bc0z1x4a4ayzq5jmv38dsx0qs080s85wy"
+ }
+ },
+ {
+ "ename": "winring",
+ "commit": "2476a28c33502f908b7161c5a9c63c86b8d7b57d",
+ "sha256": "1mgr5z4h7mf677xx8md3pqd31k17qs62z9iamfih206fcwgh24k4",
+ "fetcher": "gitlab",
+ "repo": "warsaw/winring",
+ "unstable": {
+ "version": [
+ 20180530,
+ 18
+ ],
+ "commit": "f2d072bd446b73e93b127523f19ea82b99b9267f",
+ "sha256": "1j0g52panhx91hqw5glnlv5vnnpnjyx49xc8xif8mjf0m27723fv"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 1
+ ],
+ "commit": "f2d072bd446b73e93b127523f19ea82b99b9267f",
+ "sha256": "1j0g52panhx91hqw5glnlv5vnnpnjyx49xc8xif8mjf0m27723fv"
+ }
+ },
+ {
+ "ename": "winum",
+ "commit": "c1caa7a54a910a44322fdee300e8cce6ddcde071",
+ "sha256": "0yyvjmvqif6glh9ri6049nxcmgib9mxdhy6816kjhsaqr570f9pw",
+ "fetcher": "github",
+ "repo": "deb0ch/emacs-winum",
+ "unstable": {
+ "version": [
+ 20190911,
+ 1607
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "c5455e866e8a5f7eab6a7263e2057aff5f1118b9",
+ "sha256": "0lj4cp7ml7cjhkd66f6ivcl6sbfs2my8ajjlynzl3pm5qansfw5i"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "dash"
+ ],
+ "commit": "efcb14fd306afbc738666e6b2e5a8a1bb5904392",
+ "sha256": "0v1qmw3svydk7dlqbcymy1g1bygkfpb2h4b97zdp12xvd8mww9ny"
+ }
+ },
+ {
+ "ename": "wispjs-mode",
+ "commit": "a628330ee8deeab2bd5c2d4b61b33f119c4549d8",
+ "sha256": "0qzm0dcvjndasnbqpkdc56f1qv66gxv8dfgfcwq5l1bp5wyx813p",
+ "fetcher": "github",
+ "repo": "krisajenkins/wispjs-mode",
+ "unstable": {
+ "version": [
+ 20170720,
+ 1919
+ ],
+ "deps": [
+ "clojure-mode"
+ ],
+ "commit": "60f9f5fd9d1556e2d008939f67eb1b1d0f325fa8",
+ "sha256": "1hhd8ixb2wr06vrd1kw0cd5jh08zm86h2clbvzv9wmqpawwxfm5f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "deps": [
+ "clojure-mode"
+ ],
+ "commit": "be094c3c3223c07b26b5d8bb8fa7aa6866369b3f",
+ "sha256": "188h1sy4mxzrkwi3zgiw108c5f71rkj5agdkf9yy9v8c1bkawm4x"
+ }
+ },
+ {
+ "ename": "with-editor",
+ "commit": "8c52c840dc35f3fd17ec660e113ddbb53aa99076",
+ "sha256": "1wsl1vwvywlc32r5pcc9jqd0pbzq1sn4fppxk3vwl0s5h40v8rnb",
+ "fetcher": "github",
+ "repo": "magit/with-editor",
+ "unstable": {
+ "version": [
+ 20200720,
+ 2014
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "efafd482c21b90decbb0b682ed3159c86014d4f3",
+ "sha256": "1z3214zjf3dassb31k14gq4nbr3q8g5x87ydfah28hm4j08v0wb3"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 9,
+ 4
+ ],
+ "deps": [
+ "async"
+ ],
+ "commit": "efafd482c21b90decbb0b682ed3159c86014d4f3",
+ "sha256": "1z3214zjf3dassb31k14gq4nbr3q8g5x87ydfah28hm4j08v0wb3"
+ }
+ },
+ {
+ "ename": "with-emacs",
+ "commit": "0a32fe5253ae3ac5571444b06320b20d3deff5e4",
+ "sha256": "0k453yyn4jajxhflpmy77f3sd5dc7vc55v5isyvkf1kxsbxvc7pf",
+ "fetcher": "github",
+ "repo": "twlz0ne/with-emacs.el",
+ "unstable": {
+ "version": [
+ 20200210,
+ 1543
+ ],
+ "commit": "9f99bec56f87e53deb9f33b364eda77677a17eb9",
+ "sha256": "0ay860skpnbv6a8xid0hhz9vx33ks2vkdicvpm3a4qngp932jvnp"
+ }
+ },
+ {
+ "ename": "with-namespace",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "1199k1xvvv7ald6ywrh2sfpw2v42ckpcsw6mcj617bg3b5m7770i",
+ "fetcher": "github",
+ "repo": "Wilfred/with-namespace.el",
+ "unstable": {
+ "version": [
+ 20130407,
+ 1822
+ ],
+ "deps": [
+ "dash",
+ "loop"
+ ],
+ "commit": "8ac52da3a09cf46087720e30cf730d00f140cde6",
+ "sha256": "1c7g8f3jr7bb0xxprammfg433gd63in5iiiaq8rjmc94h6hdcys3"
+ }
+ },
+ {
+ "ename": "with-proxy",
+ "commit": "295a85f94a804b72475b81b324a6120569b8134a",
+ "sha256": "18453b3687iywd62vnh47yig998l6c8vbc9py1rba1m6a9q01vq0",
+ "fetcher": "github",
+ "repo": "twlz0ne/with-proxy.el",
+ "unstable": {
+ "version": [
+ 20200510,
+ 414
+ ],
+ "commit": "93b1ed2f3060f305009fa71f4fb5bb10173a10e3",
+ "sha256": "15cwpg1s563pw44f8vr96w31hbpix9jd3736hd5546a79ymq5vz3"
+ }
+ },
+ {
+ "ename": "with-shell-interpreter",
+ "commit": "dc61e8f90dbae7184228b16de447ce1ede630a1c",
+ "sha256": "0qjr7j3jv20ja94ma0rk4rr0fx6vazqp25sgc806xl034ax669y9",
+ "fetcher": "github",
+ "repo": "p3r7/with-shell-interpreter",
+ "unstable": {
+ "version": [
+ 20200527,
+ 828
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "f8a01beda6260bd2eff3f9fe154ddc16da7b6504",
+ "sha256": "1xwmg85211s6fvc9agb8ib06klbk6cn890gpjq33bns6ldjsq41s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "eb2b629c885ca002b7225e20d03231835910d6be",
+ "sha256": "0b6z516lwcl08gnhlw99z9sdw15qxk3kanicpp0l0hcbmzann46k"
+ }
+ },
+ {
+ "ename": "with-simulated-input",
+ "commit": "e4ddf16e19f5018106a423327ddc7e7499cf9248",
+ "sha256": "0113la76nbp18vaffsd7w7wcw5k2sqwgnjq1gslf4khdfqghrkwk",
+ "fetcher": "github",
+ "repo": "DarwinAwardWinner/with-simulated-input",
+ "unstable": {
+ "version": [
+ 20200509,
+ 2010
+ ],
+ "commit": "0d5e910f19657ab376f72e5848be50d13d3b8e50",
+ "sha256": "1ksm11k8gxkjn9byacy08xrz91gvzyf7fjnxv7j5ffpsccbh0wg3"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 4
+ ],
+ "deps": [
+ "s",
+ "seq"
+ ],
+ "commit": "3d881793521c5618cdb0968a85879e0e49da7fca",
+ "sha256": "12d3mhvzj74qwc4rdcb236jbqnf5lam8pk78j92kwbwjk1jaz2cf"
+ }
+ },
+ {
+ "ename": "with-venv",
+ "commit": "555a2e49f18fbae59913459466babf8d55bd2151",
+ "sha256": "090jird410wn2w9pwr2d9pjw5xghcdxc4l578zay2akygg3c6blm",
+ "fetcher": "github",
+ "repo": "10sr/with-venv-el",
+ "unstable": {
+ "version": [
+ 20200125,
+ 1620
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "51ba19ac75a2796d494587b3b20ce51d4eb178a5",
+ "sha256": "1nbw88727spdgivrafjnlzbda81nnd1xprqdgmy6h2xfvki23zzb"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d12341b93420f4acd7a277ed0cd4a54767bc5bd6",
+ "sha256": "0knv2ybf4sbn31zyg9ms44mxvmvg7b51krq320g8fpcpa1bq28s6"
+ }
+ },
+ {
+ "ename": "wn-mode",
+ "commit": "6213c01e6954985daff8cd1a5a3ef004431f0477",
+ "sha256": "1qy1pkfdnm4pska4cnff9cx2c812ilymajhpmsfc9jdbvhzwrwg3",
+ "fetcher": "github",
+ "repo": "luismbo/wn-mode",
+ "unstable": {
+ "version": [
+ 20151110,
+ 552
+ ],
+ "commit": "f05c3151523e529af5a0a3fa8c948b61fb369f6e",
+ "sha256": "12rfpkyjkhikjh0mihhp5h5pzbm4br68nwf8k1ja9djl77vfzv36"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 4
+ ],
+ "commit": "6e7029b0d5773a79914a289937be068784931cad",
+ "sha256": "0nmzh6dynbm8vglp4pqz81s2z68jbnasvamvi1x1iawf8g9zfyix"
+ }
+ },
+ {
+ "ename": "wolfram",
+ "commit": "785b5b1ec73e6376f2f2bb405707a1078398fa3a",
+ "sha256": "02xp1916v9rydh0586jkx71v256qdg63f87s3m0agc2znnrni9h4",
+ "fetcher": "github",
+ "repo": "hsjunnesson/wolfram.el",
+ "unstable": {
+ "version": [
+ 20190805,
+ 1007
+ ],
+ "commit": "a172712d5045834f5434cca2843a7c3506805db8",
+ "sha256": "10z04y8p72rqs2b2bgf1xfq99iidgbwg3ipxwkhwcaq32027h36z"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "commit": "a172712d5045834f5434cca2843a7c3506805db8",
+ "sha256": "10z04y8p72rqs2b2bgf1xfq99iidgbwg3ipxwkhwcaq32027h36z"
+ }
+ },
+ {
+ "ename": "wolfram-mode",
+ "commit": "40ded2302e413e233d867caa4776c54a778b8b99",
+ "sha256": "0rc39vvpyhpn0m52i4hs23j6avqfddmrkhjqg339apfq7z35fpli",
+ "fetcher": "github",
+ "repo": "kawabata/wolfram-mode",
+ "unstable": {
+ "version": [
+ 20180307,
+ 13
+ ],
+ "commit": "be680190cac6ccf579dbce107deaae495928d1b3",
+ "sha256": "1cvdw28gvhbr9l65xkv8ld12rb0pcf53jd55gns2b0abz1lg1jc4"
+ }
+ },
+ {
+ "ename": "wonderland",
+ "commit": "ed02d5e4cba10023ebc7c26f90ba8d1e8ee32a08",
+ "sha256": "1b4p49mbzqffm2b2y8sbbi56vnkxap2jscsmla9l6l8brybqjppi",
+ "fetcher": "github",
+ "repo": "kurisuwhyte/emacs-wonderland",
+ "unstable": {
+ "version": [
+ 20130913,
+ 119
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "multi"
+ ],
+ "commit": "89d274ad694b0e748efdac23ccd60b7d8b73d7c6",
+ "sha256": "0hacc8ha5w44cgwkipa3nwh1q5gdrcxhjkmw2gnvb1l01crgnack"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 1
+ ],
+ "deps": [
+ "dash",
+ "dash-functional",
+ "multi"
+ ],
+ "commit": "28cf6b37000c395ece9519db53147fb826a42bc4",
+ "sha256": "018r35dz8z03wcrx9s28pjisayy21549i232mp6wy9mxkrkxbzpc"
+ }
+ },
+ {
+ "ename": "wordgen",
+ "commit": "5cfdc64a9aa79575dad8057c4cd747d2cdd460aa",
+ "sha256": "0vlrplm3pmpwwa8p8j6lck97b875gzzm7vxxc8l9l18vs237cz1m",
+ "fetcher": "github",
+ "repo": "Fanael/wordgen.el",
+ "unstable": {
+ "version": [
+ 20170803,
+ 1820
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "aacad928ae99a953e034a831dfd0ebdf7d52ac1d",
+ "sha256": "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 4
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "aacad928ae99a953e034a831dfd0ebdf7d52ac1d",
+ "sha256": "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"
+ }
+ },
+ {
+ "ename": "wordnut",
+ "commit": "321c5e171eb4da85980968ac3c8ef4300101c0b1",
+ "sha256": "1gqmjb2f9izra0x9ds1jyk7h204qsll6viwkvdnmxczyyc0wx44n",
+ "fetcher": "github",
+ "repo": "gromnitsky/wordnut",
+ "unstable": {
+ "version": [
+ 20180313,
+ 443
+ ],
+ "commit": "feac531404041855312c1a046bde7ea18c674915",
+ "sha256": "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"
+ }
+ },
+ {
+ "ename": "wordsmith-mode",
+ "commit": "3b5fda506e5b388cd6824d433b89032ed46858dc",
+ "sha256": "0s6b6dfqn31jdcgs2mlmvwgpr5a4zs4xi8m002ly11c6sn035xb1",
+ "fetcher": "github",
+ "repo": "istib/wordsmith-mode",
+ "unstable": {
+ "version": [
+ 20171025,
+ 1430
+ ],
+ "commit": "589a97412138145bea70e0450eeddeb7f138d538",
+ "sha256": "1zm4grysjpynibldvic75awhcmmnjmlkkvslw8bvirmi58qwvwzj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "41b10f2fe3589da9812395cb417c3dcf906f0969",
+ "sha256": "0s3mjmfjiidn3spklndw0dvcwbb9x034xyphp60aad8vjaflbchs"
+ }
+ },
+ {
+ "ename": "worf",
+ "commit": "f00f8765e35c21dd1a4b5c01c239ed4d15170ab7",
+ "sha256": "1fkb2ddl684dijsb0cqgmfbg1nz4xv43rb7g5rah05rchy5sgkpi",
+ "fetcher": "github",
+ "repo": "abo-abo/worf",
+ "unstable": {
+ "version": [
+ 20200121,
+ 1629
+ ],
+ "deps": [
+ "ace-link",
+ "hydra",
+ "swiper",
+ "zoutline"
+ ],
+ "commit": "bdc8240ff4188c7403a020eb58dc10eea104b7df",
+ "sha256": "1lkix09lwnjsycaacwdn7gyqnm0n2frcp1p0l3hfhayz3p18dy5p"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "ace-link",
+ "hydra",
+ "swiper"
+ ],
+ "commit": "f36755447b588b739b2bf6ab0fb5eb5f4d8db3df",
+ "sha256": "0l2n3vwk251ba06xdrs9z0bp4ligfdjd259a84ap2z3sqdfa98x4"
+ }
+ },
+ {
+ "ename": "workgroups",
+ "commit": "585d3f522920b41845294af50b1da99dff256f8d",
+ "sha256": "1v01yr3lk6l0qn80i3r8fq3di0a8bmqjyhwx19hcgiap57xl80h8",
+ "fetcher": "github",
+ "repo": "tlh/workgroups.el",
+ "unstable": {
+ "version": [
+ 20110726,
+ 1641
+ ],
+ "commit": "9572b3492ee09054dc329f64ed846c962b395e39",
+ "sha256": "0q32z54qafj8ap3ybx82i3fm1msmzwvpxgmkaglzhi8nccgzbn2n"
+ }
+ },
+ {
+ "ename": "workgroups2",
+ "commit": "4f9cfb740cce05a6805d9a047e4c1380305da4df",
+ "sha256": "0vhj6mb3iflli0l3rjlvlbxz5yk6z3ii5r71gx0m4vp4lhxncy3v",
+ "fetcher": "github",
+ "repo": "pashinin/workgroups2",
+ "unstable": {
+ "version": [
+ 20200729,
+ 852
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "737306531f6834227eee2f63b197a23401003d23",
+ "sha256": "0f16a4zz5havxbadiv4h6msa30c1yfdkfk56gic5wapz4i26z3x7"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "737306531f6834227eee2f63b197a23401003d23",
+ "sha256": "0f16a4zz5havxbadiv4h6msa30c1yfdkfk56gic5wapz4i26z3x7"
+ }
+ },
+ {
+ "ename": "world-time-mode",
+ "commit": "f1429650400baf2b1523b5556eaf6a2178d515d4",
+ "sha256": "10gdlz4l9iqw1zdlk5i3knysn36iqxdh3xabjq8kq04jkl7i36dl",
+ "fetcher": "github",
+ "repo": "nicferrier/emacs-world-time-mode",
+ "unstable": {
+ "version": [
+ 20140627,
+ 807
+ ],
+ "commit": "ce7a3b45c87eb24cfe61eee453175d64f741d7cc",
+ "sha256": "0i00xm4rynbp2v3gm6h46ajgj8h8nxnsjh6db1659b0hbpnah0ji"
+ }
+ },
+ {
+ "ename": "wotd",
+ "commit": "7a52690a9bae634825bdfb5b6b17e5faccb93e13",
+ "sha256": "145knl4n35kpqqzqkz1vd18d619nw011d93f8qp5h82xm92p3sb5",
+ "fetcher": "github",
+ "repo": "cute-jumper/emacs-word-of-the-day",
+ "unstable": {
+ "version": [
+ 20170328,
+ 1948
+ ],
+ "deps": [
+ "org"
+ ],
+ "commit": "d2937a3d91e014f8028a1f33d21c18cc0b065a64",
+ "sha256": "0nwq5ymj9kx1fx3kfc789nkd80gwzljwmk7xxzzsrdrv47gm047m"
+ }
+ },
+ {
+ "ename": "wrap-region",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "058518smxj3j3mr6ljzh7c9x5g23d24104p58sl9nhpw0cq9k28i",
+ "fetcher": "github",
+ "repo": "rejeep/wrap-region.el",
+ "unstable": {
+ "version": [
+ 20140117,
+ 720
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "fbae9b0f106187af19823f1a6260b5c68b7252e6",
+ "sha256": "1k5q925igdv5lnpbmy0c2f0j3rj7yh4l6bxbd61g9lcnyl0j3ym9"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 7,
+ 3
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "5a910ad23ebb0649e644bf62ad042587341da5da",
+ "sha256": "03hjwm51sngkh7jjiwnqhflllqq6i99ib47rm2ja9ii0qyhj1qa0"
+ }
+ },
+ {
+ "ename": "writefreely",
+ "commit": "55ea1ad03ce5b5178435b8042be383065795ee71",
+ "sha256": "1lvar4kmzq3x7nmidklcryqscb5xzvkzbyn59a8ns0bml5sfrqyj",
+ "fetcher": "github",
+ "repo": "dangom/writefreely.el",
+ "unstable": {
+ "version": [
+ 20190628,
+ 1606
+ ],
+ "deps": [
+ "org",
+ "ox-gfm",
+ "request"
+ ],
+ "commit": "83a487e48e0d8342c372deb74d04c0b43474268c",
+ "sha256": "1qslhhb0zbg542xsa3rw4xh8wsz9k7nm61c62rhbasd4s39159yc"
+ }
+ },
+ {
+ "ename": "writegood-mode",
+ "commit": "75c5a4304999fc3f5a02235a1c2c904238d2ce4f",
+ "sha256": "1lxammisaj04g5vr5lwms64ywf39w8knrq72x4i94wwzwx5ywi1d",
+ "fetcher": "github",
+ "repo": "bnbeckwith/writegood-mode",
+ "unstable": {
+ "version": [
+ 20180525,
+ 1343
+ ],
+ "commit": "b71757ec337e226909fb0422f0224e31acc71733",
+ "sha256": "038gliy6l931r02bf2dbhmp188sgk1rq46ngg9nhf5q5rkf3pi8p"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0,
+ 3
+ ],
+ "commit": "b71757ec337e226909fb0422f0224e31acc71733",
+ "sha256": "038gliy6l931r02bf2dbhmp188sgk1rq46ngg9nhf5q5rkf3pi8p"
+ }
+ },
+ {
+ "ename": "writeroom-mode",
+ "commit": "4e39cd8e8b4f61c04fa967def6a653bb22f45f5b",
+ "sha256": "1kpsrp3agw8bg3qbf5rf5k1a7ww30q5xsa8z5ywxajsaywjzx1bk",
+ "fetcher": "github",
+ "repo": "joostkremers/writeroom-mode",
+ "unstable": {
+ "version": [
+ 20200519,
+ 37
+ ],
+ "deps": [
+ "visual-fill-column"
+ ],
+ "commit": "8a226a31a12a9203067094774ba6fd6175793e70",
+ "sha256": "1wb8lkza1a6yfgpwqlc78iq7b5hamss9lak2alwmp9j9aiwys1n0"
+ },
+ "stable": {
+ "version": [
+ 3,
+ 10
+ ],
+ "deps": [
+ "visual-fill-column"
+ ],
+ "commit": "6552c056b85fd26a3ac509100d9d5c5c3c19515a",
+ "sha256": "0la4q2dm123l4rdfh0ry03b99ihvh324y7iw12az909198bcx335"
+ }
+ },
+ {
+ "ename": "ws-butler",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1k5nhj37r51i0czrlafra53wir73p0nbq83jjccqmw4p4xk6axl3",
+ "fetcher": "github",
+ "repo": "lewang/ws-butler",
+ "unstable": {
+ "version": [
+ 20170111,
+ 2334
+ ],
+ "commit": "52321b99be69aa1b661da7743c4421a30d8b6bcb",
+ "sha256": "1b6hxhwhzs6xq12w0jmvvjw0bx4czw71xzj3qizq9gx0q4n7a0qf"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "commit": "323b651dd70ee40a25accc940b8f80c3a3185205",
+ "sha256": "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"
+ }
+ },
+ {
+ "ename": "wsd-mode",
+ "commit": "04867a574773e8794335a2664d4f5e8b243f3ec9",
+ "sha256": "07vclmnj18wx9wlrcnsl99f9jlk3sb9g6pcdv8x1smk84gccpakc",
+ "fetcher": "github",
+ "repo": "josteink/wsd-mode",
+ "unstable": {
+ "version": [
+ 20191031,
+ 1211
+ ],
+ "commit": "b87dee6d2d21fc868a3fae35bbd3f08910ad57e0",
+ "sha256": "1phxq59nsxw6zx1v097j9iqm54am9pln2wzcszsxj2ipjskiz7xn"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5,
+ 0
+ ],
+ "commit": "b5e8ea0daeaa52f2ea6349e09902bd3216e96258",
+ "sha256": "1ibvcc54y2w72d3yvcczvzywribiwmkhlb1b08g4pyb1arclw393"
+ }
+ },
+ {
+ "ename": "wttrin",
+ "commit": "1b2b6876562f1fadd4af1ea9b279ac4dc1b21660",
+ "sha256": "0msp8lja9nz6khz3dkasv8hnhkaayqxd7m58kma03hpkcjxnaxil",
+ "fetcher": "github",
+ "repo": "bcbcarl/emacs-wttrin",
+ "unstable": {
+ "version": [
+ 20170614,
+ 1206
+ ],
+ "deps": [
+ "xterm-color"
+ ],
+ "commit": "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc",
+ "sha256": "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "xterm-color"
+ ],
+ "commit": "d595240d92788791da2218d12efd6a77eee06217",
+ "sha256": "0mbc3ndggv2rbmfcfhw8bsx3qw6jy684hxz5dqa88lfb6vs5knzc"
+ }
+ },
+ {
+ "ename": "wucuo",
+ "commit": "819cacef2c31d750829980f3f6c3bfb72f36bbdd",
+ "sha256": "084fcv4dkflpka9vmxmxqdl0cgmjjh9wc6axr65j1ffmqd933y4a",
+ "fetcher": "github",
+ "repo": "redguardtoo/wucuo",
+ "unstable": {
+ "version": [
+ 20200710,
+ 932
+ ],
+ "commit": "54143769dbea06d34792687eadbc6c7a1cd89ea2",
+ "sha256": "1a6jy8vixc6ls6cjwxjy3ifmiw8xw3c0kfichgd1b6v20xqdvhh3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 6
+ ],
+ "commit": "54143769dbea06d34792687eadbc6c7a1cd89ea2",
+ "sha256": "1a6jy8vixc6ls6cjwxjy3ifmiw8xw3c0kfichgd1b6v20xqdvhh3"
+ }
+ },
+ {
+ "ename": "wwtime",
+ "commit": "28f034fbabe9de76e2e4ae44be8c8240b08f0535",
+ "sha256": "0n37k23lkjgaj9wxnr41yk3mwvy62mc9im5l86czqmw5gy4l63ic",
+ "fetcher": "github",
+ "repo": "ndw/wwtime",
+ "unstable": {
+ "version": [
+ 20151122,
+ 1610
+ ],
+ "commit": "d04d8fa814b5d3644efaeb28f25520ada69acbbd",
+ "sha256": "0ba193ilqmp7l35hhzfym4kvbnj9h57m8mwsxdj6rdj2cwrifx8r"
+ }
+ },
+ {
+ "ename": "www-synonyms",
+ "commit": "2fe69ac09c3e24af9c4e24308e57d7c3c3425096",
+ "sha256": "0rp5p26hd67k4dsb40hj7jv24i9wncaay88dmiqla48843j4ymgh",
+ "fetcher": "github",
+ "repo": "spebern/www-synonyms",
+ "unstable": {
+ "version": [
+ 20170128,
+ 2251
+ ],
+ "deps": [
+ "cl-lib",
+ "request"
+ ],
+ "commit": "7e37ea35064ff31c9945f0198a653647d408c936",
+ "sha256": "0l4fvq5zdzqvlwxqgqbfx9x0aimvk4x3la9yz9gw3vvj1rwf340i"
+ }
+ },
+ {
+ "ename": "x-path-walker",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1k72c0i17k31p404nkzqkw25cpcfk66bmd0vjzwg34cnwcgfhnjg",
+ "fetcher": "github",
+ "repo": "Lompik/x-path-walker",
+ "unstable": {
+ "version": [
+ 20160922,
+ 1835
+ ],
+ "deps": [
+ "helm-core"
+ ],
+ "commit": "3b01dbd7a039c6c84fdf8c8ee53ba72090ee950a",
+ "sha256": "1gb3lnl3gvckbakc4fy22fcvif3xdfkdaw334xmp33phjb8gjqvj"
+ }
+ },
+ {
+ "ename": "x509-mode",
+ "commit": "27145423eb4e68e006ef96868a35b99d119a3099",
+ "sha256": "15k3pxj3a2vaf64cl2xrzzlvzbqzqc29qyfd8brhq6yc69snr0vj",
+ "fetcher": "github",
+ "repo": "jobbflykt/x509-mode",
+ "unstable": {
+ "version": [
+ 20180921,
+ 803
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9eb24c8721dcad9888b70213d06d770bc2386db7",
+ "sha256": "1gr099bn4qn2b5jasbs4r04pf6wqsnpf2632vzvshzm9nkz4qnhg"
+ }
+ },
+ {
+ "ename": "x86-lookup",
+ "commit": "27757b9b5673f5581e678e8cad719138db654415",
+ "sha256": "1clv1npvdkzsy0a08xrb880yflwzl4d5cc2c5xrs7b837mqpj8hd",
+ "fetcher": "github",
+ "repo": "skeeto/x86-lookup",
+ "unstable": {
+ "version": [
+ 20180528,
+ 1635
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "609b2ba70dc5a246ac9b4b5f89eb5ef4331519bf",
+ "sha256": "19zgq7mcc3wx847xc911fibvphbsws99m2l3k54xdjp8mb5qfdzm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "609b2ba70dc5a246ac9b4b5f89eb5ef4331519bf",
+ "sha256": "19zgq7mcc3wx847xc911fibvphbsws99m2l3k54xdjp8mb5qfdzm"
+ }
+ },
+ {
+ "ename": "xah-css-mode",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "1kkwfyf94v3ni3d4szy28v49p6f3hy8ww9mlris2vvgc726wy6hr",
+ "fetcher": "github",
+ "repo": "xahlee/xah-css-mode",
+ "unstable": {
+ "version": [
+ 20200627,
+ 1652
+ ],
+ "commit": "98e550db52865d6de141d5bbb85f8b4e68b56b39",
+ "sha256": "0km4b9praqpkv4n6sixmxjfvisp5640zyd1x85q43vkxrm39p7ah"
+ }
+ },
+ {
+ "ename": "xah-elisp-mode",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "0cl07hw1hd3hj7wrzkh20m8vcs7mqsajxjmnlbnk2yg927yyijij",
+ "fetcher": "github",
+ "repo": "xahlee/xah-elisp-mode",
+ "unstable": {
+ "version": [
+ 20200719,
+ 1648
+ ],
+ "commit": "a051862622c56b7cad2057a95d8201ab38b50752",
+ "sha256": "00kan9rb133mf11qq0grdkph6ghv0hgwvdx3b21890mad20zmk1w"
+ }
+ },
+ {
+ "ename": "xah-find",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "1d3x9yhm7my3yhvgqnjxr2v28g5w1h4ri40sy6dqcx09bjf3jhyq",
+ "fetcher": "github",
+ "repo": "xahlee/xah-find",
+ "unstable": {
+ "version": [
+ 20190314,
+ 2039
+ ],
+ "commit": "a39f1ff9a7cf56e92b56c6f179741569b9172a48",
+ "sha256": "16d2dh08dxdm06ik3sfx00filxqpy646vv1qh5kb36zs8ydzjg3z"
+ }
+ },
+ {
+ "ename": "xah-fly-keys",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "0bzfz8q7yd1jai0pgngxwjp82nsfx5ivn24cb20vc5r8hhzj17cs",
+ "fetcher": "github",
+ "repo": "xahlee/xah-fly-keys",
+ "unstable": {
+ "version": [
+ 20200707,
+ 1310
+ ],
+ "commit": "8c9c4df25e1406b093a32c87da19803337e4e09c",
+ "sha256": "10d1xvyd2mbvhmlf1x5snqn4d22xg0p53nq601s8b4f1gws6zs59"
+ }
+ },
+ {
+ "ename": "xah-get-thing",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "0m61bmfgqy19h4ivw655mqj547ga8hrpaswcp48hx00hx8mqzcvg",
+ "fetcher": "github",
+ "repo": "xahlee/xah-get-thing-or-selection",
+ "unstable": {
+ "version": [
+ 20170821,
+ 1053
+ ],
+ "commit": "e3ef069ea9fea3a092689d45c94c6211b51d0ea4",
+ "sha256": "0z9pflz99p2i7czccpzvw7bkbshfycpb6js9n8a12yhc1ndbz6z0"
+ }
+ },
+ {
+ "ename": "xah-lookup",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "0z0h1myw6wmybyd0z2lw4l59vgm6q6kh492q77kf3s0fssc0facc",
+ "fetcher": "github",
+ "repo": "xahlee/lookup-word-on-internet",
+ "unstable": {
+ "version": [
+ 20200420,
+ 1528
+ ],
+ "commit": "c97a43dc0cebbfc519d0cce5b547dcc5e22b2085",
+ "sha256": "1qkazkisgw5c9xzxqm6xzm124r1v4d4dcyazvw66nz5j2zl1i5qd"
+ }
+ },
+ {
+ "ename": "xah-math-input",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "1afikjk46sjf97fb5fc8h63h7b9af010wxhsbpnmabsb4j72rx5a",
+ "fetcher": "github",
+ "repo": "xahlee/xah-math-input",
+ "unstable": {
+ "version": [
+ 20200217,
+ 740
+ ],
+ "commit": "c1e72c4578a134e9aa3ec9ef425038d8c16fba94",
+ "sha256": "0laq440vk8mnjbdjz0h4n18qh72n83hxqmwjm124ykzclzjcdknh"
+ }
+ },
+ {
+ "ename": "xah-reformat-code",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "1sj407nbh4x586hvsq4ycr0ahhxin0wgfwdj0551cz8793wvjpzp",
+ "fetcher": "github",
+ "repo": "xahlee/xah-reformat-code",
+ "unstable": {
+ "version": [
+ 20170821,
+ 1111
+ ],
+ "commit": "7fec8b28e46b8cc2813fac5149e3bbb56c0aa6b1",
+ "sha256": "0mz47laig0p7fwwiv66x60f5jg0kh8zvjd1vg3nnn3xvk37lv2cw"
+ }
+ },
+ {
+ "ename": "xah-replace-pairs",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "0r4aq9davh3ypzcjixr3aw9g659dhiblwbmcyhm8iqhkavcpqr1x",
+ "fetcher": "github",
+ "repo": "xahlee/xah-replace-pairs",
+ "unstable": {
+ "version": [
+ 20180508,
+ 249
+ ],
+ "commit": "4d845cfbce32d45befd7c454e3476c3ce40d2b43",
+ "sha256": "1mkglrc8mbsjag3pc9zrmqa9x3n009hza1p1jvn3n97wjpc1qxlk"
+ }
+ },
+ {
+ "ename": "xahk-mode",
+ "commit": "05eed39bae37cc8359d2cc678052cbbcc946e379",
+ "sha256": "1bs12z7lnqlhm44hq0l98d0ka1bjgvm2yv97yivaj9akd53znca9",
+ "fetcher": "github",
+ "repo": "xahlee/xahk-mode.el",
+ "unstable": {
+ "version": [
+ 20170821,
+ 1107
+ ],
+ "commit": "02012b20603c00e3b2ef32159a690ed1e05d12c3",
+ "sha256": "09nakcfczb95vd48f8z77igmi1kbcblmgpzfzm9i7df4jcfkkh3c"
+ }
+ },
+ {
+ "ename": "xbm-life",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "02jhcz71ldb6gar3jw13w6m6prz6hv6gccacgmp40bg6cglf3czf",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/xbm-life.git",
+ "unstable": {
+ "version": [
+ 20200506,
+ 1217
+ ],
+ "commit": "311ef62438c4ab057c054fcdda4dbfa5980759b5",
+ "sha256": "1h8s5wiib9hb9bgqr3r5abpib9m61aa2pwiy3isjs5fkacvvxi9l"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "commit": "bde2b3730a02d237f7d95a8e3f3722f23f2d9201",
+ "sha256": "154xnfcmil9xjjmq4cyrfpir4ga4mgcmmbd7dja1m7rpk1734xk6"
+ }
+ },
+ {
+ "ename": "xcode-mode",
+ "commit": "845c731bed7dbe9c41c09e47e219299f17d0d489",
+ "sha256": "1d8r2bc7fiwma1lcrzd9gxhdpvyf2pc6kplx7nyr40ghsb9jlpiw",
+ "fetcher": "github",
+ "repo": "nicklanasa/xcode-mode",
+ "unstable": {
+ "version": [
+ 20160907,
+ 1208
+ ],
+ "deps": [
+ "dash",
+ "multiple-cursors",
+ "s"
+ ],
+ "commit": "2ae4f512d6c601ea39d5ab785c2b5288eac24b59",
+ "sha256": "0pi85ylxvjj63cmibgvi493d4ybcp2blhlwgrwzn2hjz31jldh0y"
+ }
+ },
+ {
+ "ename": "xcode-project",
+ "commit": "49b866ebf7e707bc74525f83dd5038e6e860fcef",
+ "sha256": "0igp30f6ypmp4l8zmdfpa5bza4avm7mq2gj8v7b3ii655v91n6vi",
+ "fetcher": "github",
+ "repo": "nhojb/xcode-project",
+ "unstable": {
+ "version": [
+ 20200810,
+ 2010
+ ],
+ "commit": "11743f0a2212c840a108e1b905b1f20afcff8156",
+ "sha256": "1vj1xshdsff5xrgmp6c46q2ipglq4wy25mq51rnhv57f0r1wq62n"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "f5548a26a1afc0b0d873556c25f6d8b6b9c2aa8c",
+ "sha256": "0xb1cvjaw7zjnw6c5aq315vvlc3cncris62jis44jb8s5r8gxcrv"
+ }
+ },
+ {
+ "ename": "xcscope",
+ "commit": "068c7846e70b91ce7e88330937fc64a60281802a",
+ "sha256": "06xh29cm5v3b5xwj32y0i0h0kvvy995840db4hvab2wn9jw68m8w",
+ "fetcher": "github",
+ "repo": "dkogan/xcscope.el",
+ "unstable": {
+ "version": [
+ 20190723,
+ 629
+ ],
+ "commit": "f3e2c84bd92f5a78182cc8d81f5358979a6c241c",
+ "sha256": "0w2bxrnidladpzrd82z3w3gvjhajs71k5vjk2y03r09i9fwn2ykc"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 5
+ ],
+ "commit": "f3e2c84bd92f5a78182cc8d81f5358979a6c241c",
+ "sha256": "0w2bxrnidladpzrd82z3w3gvjhajs71k5vjk2y03r09i9fwn2ykc"
+ }
+ },
+ {
+ "ename": "xenops",
+ "commit": "605c8ca551d54c79246310bcee678cdd854548b0",
+ "sha256": "0l9pwjbdyfs2mkp2n9xg16pv02y063l92302fmi0h8rwra81xrvv",
+ "fetcher": "github",
+ "repo": "dandavison/xenops",
+ "unstable": {
+ "version": [
+ 20200730,
+ 1646
+ ],
+ "deps": [
+ "aio",
+ "auctex",
+ "avy",
+ "dash",
+ "dash-functional",
+ "f",
+ "s"
+ ],
+ "commit": "78cbe16b74480ac6304865c9c3cfad36b5d49d1d",
+ "sha256": "1rpcckp60pw1blkxs7wlp60pvpr847b6g2rcd6p0hpf5sx9wirgv"
+ }
+ },
+ {
+ "ename": "xkcd",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0gy2952zg1rq5gl10x7iwbchz5jibfcvikd3chifqbmil80wh6b5",
+ "fetcher": "github",
+ "repo": "vibhavp/emacs-xkcd",
+ "unstable": {
+ "version": [
+ 20160419,
+ 1130
+ ],
+ "deps": [
+ "json"
+ ],
+ "commit": "66e928706fd660cfdab204c98a347b49c4267bdf",
+ "sha256": "0znhjwlpgg05g39b16ddgw3a71a93fn2dicfsxjkziffn2a95m0s"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "json"
+ ],
+ "commit": "2c538d41a9728939cc5e8292faa78ed50997877d",
+ "sha256": "0p9p3w8i5w1pzh3y3yxz0rg5gywfq4m5anbiyrdn84vdd42jij4x"
+ }
+ },
+ {
+ "ename": "xml+",
+ "commit": "244388d158efda6fe8c1362a65b89b352c444422",
+ "sha256": "0xgqyfdn6kkp89zj4h54r009a44sbff0nrhh582zw5rlklypwdz1",
+ "fetcher": "github",
+ "repo": "bddean/xml-plus",
+ "unstable": {
+ "version": [
+ 20170727,
+ 2351
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "232fa863c08fc159b21dd58c39ea45dce3334895",
+ "sha256": "0b7v59dya346ds1wad0avrqhjimx5n9r3pcgqafagzf34hdcv3jy"
+ }
+ },
+ {
+ "ename": "xml-format",
+ "commit": "5e4df4dc715884132a7c409e041b303eeb727f18",
+ "sha256": "1xk3236m497n345i95l1k0xpyb7v8h3mar36j7yjjwxavjrh8ygg",
+ "fetcher": "github",
+ "repo": "wbolster/emacs-xml-format",
+ "unstable": {
+ "version": [
+ 20191011,
+ 1148
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "2861c4e33e18b077112efa072316b031bca4236c",
+ "sha256": "1g0v5ir6nwpamnwvq509d1s1s60n0s5p2lvqqm0n0rk9r753cqkh"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "deps": [
+ "reformatter"
+ ],
+ "commit": "2861c4e33e18b077112efa072316b031bca4236c",
+ "sha256": "1g0v5ir6nwpamnwvq509d1s1s60n0s5p2lvqqm0n0rk9r753cqkh"
+ }
+ },
+ {
+ "ename": "xml-quotes",
+ "commit": "ab315d783765730aceab43b4fd8c4872a1f1cc05",
+ "sha256": "1lmafa695xkhd90k6yiv8a57ch1jx33l1zpm39z0kj546mn6y8aq",
+ "fetcher": "github",
+ "repo": "ndw/xml-quotes",
+ "unstable": {
+ "version": [
+ 20200301,
+ 1222
+ ],
+ "commit": "8fc21e43b45f9a50b24642412f05afcc3a316a1f",
+ "sha256": "1czz6zgbnvwf3bn6k5iczs02rjx6frjnc0d78gcxhvsnbsvv60iw"
+ }
+ },
+ {
+ "ename": "xml-rpc",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "08nx1a6v7b53zl1wgcypankdwqdgqcljwmzgrrd00ibi59nbfi4l",
+ "fetcher": "github",
+ "repo": "xml-rpc-el/xml-rpc-el",
+ "unstable": {
+ "version": [
+ 20181002,
+ 1353
+ ],
+ "commit": "8f624f8b964e9145acb504e4457c9510e87dd93c",
+ "sha256": "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6,
+ 13
+ ],
+ "commit": "8f624f8b964e9145acb504e4457c9510e87dd93c",
+ "sha256": "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"
+ }
+ },
+ {
+ "ename": "xmlgen",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "0c77la6kl02qkapfzbjmhac60f8p837kwg8bp0686ylxh5s31zsh",
+ "fetcher": "github",
+ "repo": "philjackson/xmlgen",
+ "unstable": {
+ "version": [
+ 20170411,
+ 1317
+ ],
+ "commit": "dba66681f0c5e621a9e70e8afb34903c9ffe93c4",
+ "sha256": "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 5
+ ],
+ "commit": "dba66681f0c5e621a9e70e8afb34903c9ffe93c4",
+ "sha256": "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"
+ }
+ },
+ {
+ "ename": "xmlunicode",
+ "commit": "b636126a389a337a3685f9d0dcbca9bf8e784f20",
+ "sha256": "1ylpvx2p5l863r9qv9jdsm9rbv989c8xn0zpjl8zkcfxqxix4h4p",
+ "fetcher": "github",
+ "repo": "ndw/xmlunicode",
+ "unstable": {
+ "version": [
+ 20200812,
+ 747
+ ],
+ "commit": "8ae84ded4341aaa303903b4da142ef3ea456391e",
+ "sha256": "0ki8i41jkkzk791dg5wvpl6nfa4py2bfcs6lf3wmw8y768vx6mbg"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 22
+ ],
+ "commit": "852bcbd0bd014f62c41ac78648e4f6664209b40b",
+ "sha256": "03b18jhfpbhkaq5fj30k6drwpcpvrb6gf1l43ja1mnqyrilvni2x"
+ }
+ },
+ {
+ "ename": "xo",
+ "commit": "fd8cec754da662e4873186c23c1ba13c52cccbba",
+ "sha256": "0kpbnxh8sa2dk8anrvgc7d39qap13pyjxh154gpm8xdb9zhfwl25",
+ "fetcher": "github",
+ "repo": "j-em/xo-emacs",
+ "unstable": {
+ "version": [
+ 20160403,
+ 646
+ ],
+ "commit": "72fcd867cfa332fdb82f732925cf8977e690af78",
+ "sha256": "0761amc73mbgaydp3iyfzgyjxp77yk440s24h69hvk87c5vn1cz3"
+ }
+ },
+ {
+ "ename": "xonsh-mode",
+ "commit": "f408aee5da4eadd8f4550893336f6decf00c9281",
+ "sha256": "15bb2zz9rb7bn0wrwhpi46f9knfr8hbjl9drks6xma3ln7nvrn9v",
+ "fetcher": "github",
+ "repo": "seanfarley/xonsh-mode",
+ "unstable": {
+ "version": [
+ 20191214,
+ 114
+ ],
+ "commit": "01819823822b6ebe01c02af548276cb2deb343f4",
+ "sha256": "043ijxkab06zlag9hsd0xdw5bxqi6n8sd10zr62f7drwchmw9ln0"
+ }
+ },
+ {
+ "ename": "xquery-mode",
+ "commit": "e8ea1c9e26963f290d912df21b81afd689543658",
+ "sha256": "13xrvygk7wdby6599q6yxw8cm45qqki8szrm49fc3b6pr6vzpidg",
+ "fetcher": "github",
+ "repo": "xquery-mode/xquery-mode",
+ "unstable": {
+ "version": [
+ 20170214,
+ 1119
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "1b655ccf83d02a7bd473d2cf02359ed60bdf7369",
+ "sha256": "1iprgfjrbx3fmqhkgjxdxnlzz2s6h895q270lhjrhkwgpphgna2c"
+ }
+ },
+ {
+ "ename": "xquery-tool",
+ "commit": "cc71e5ea4a0ecb006f62617f5b6caadc9b3c77b2",
+ "sha256": "069injmvv9zzcbqbms94qx5wjj740jnik6sf3b4xjhln7z1yskp0",
+ "fetcher": "github",
+ "repo": "paddymcall/xquery-tool.el",
+ "unstable": {
+ "version": [
+ 20190523,
+ 1119
+ ],
+ "commit": "7f0859cc722607240689e57e14de8e0719052016",
+ "sha256": "03vip403ifz9r4xkpiyi4mvb2plrn1f8906msdas84y13alhwnhq"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 11
+ ],
+ "commit": "7f0859cc722607240689e57e14de8e0719052016",
+ "sha256": "03vip403ifz9r4xkpiyi4mvb2plrn1f8906msdas84y13alhwnhq"
+ }
+ },
+ {
+ "ename": "xref-js2",
+ "commit": "b5dab444ead98210b4ab3a6f9a61d013aed6d5b7",
+ "sha256": "1mfyszdi1wx2lqd9fyqm0ra227dcsjs8asc1dw2li0alwh7n4xs3",
+ "fetcher": "github",
+ "repo": "NicolasPetton/xref-js2",
+ "unstable": {
+ "version": [
+ 20190915,
+ 2032
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "6f1ed5dae0c2485416196a51f2fa92f32e4b8262",
+ "sha256": "0pbnhliq3zivijksdhdqd7m3ndc3z7kw2g21zwihq28faps96ikj"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "deps": [
+ "js2-mode"
+ ],
+ "commit": "d48253bf1999815329a294d09f0b1b744a6272ae",
+ "sha256": "0kg1vdyjd0n48cb8bvjqskzd79s3bgdcpzn80gm2y78m280kakn8"
+ }
+ },
+ {
+ "ename": "xresources-theme",
+ "commit": "35763febad20f29320d459394f810668db6c3353",
+ "sha256": "1vsbvg9w5g6y2qlb8ssn12ax31r7fbslfi9vcgvmjydcr8r1z0zs",
+ "fetcher": "github",
+ "repo": "cqql/xresources-theme",
+ "unstable": {
+ "version": [
+ 20190108,
+ 1851
+ ],
+ "commit": "5239acb51aa2dfa89a207e57012108d8fcf60562",
+ "sha256": "13pls0f85n5rpbrbqcmrmcznv9hxiaglrnwpzivrli33cba92fpm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "5239acb51aa2dfa89a207e57012108d8fcf60562",
+ "sha256": "13pls0f85n5rpbrbqcmrmcznv9hxiaglrnwpzivrli33cba92fpm"
+ }
+ },
+ {
+ "ename": "xterm-color",
+ "commit": "b34a42f1bf5641871da8ce2b688325023262b643",
+ "sha256": "0bvzi1mkxgm4vbq2va1sr0k9h3fdmppq79hkvbizc2xgk72sazpj",
+ "fetcher": "github",
+ "repo": "atomontage/xterm-color",
+ "unstable": {
+ "version": [
+ 20200605,
+ 2017
+ ],
+ "commit": "b9b1f84fb10fff5261702e38bf15b3ae75a4b6bb",
+ "sha256": "0mb5a1g7sby3v4gaqgg9w3lr5albd99mj3kd2bgga7h7kbcjfp5a"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 0
+ ],
+ "commit": "137dfecedfdf6aff69b0f9b1c299aa0ae868fca0",
+ "sha256": "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"
+ }
+ },
+ {
+ "ename": "xterm-keybinder",
+ "commit": "656f8e27b4e6055a634249f134a4fc0667fa0e95",
+ "sha256": "1n0zp1mc7x7z0671lf7p9r4qxic90bkf5q3zwz4vinpiw2qh88lz",
+ "fetcher": "github",
+ "repo": "yuutayamada/xterm-keybinder-el",
+ "unstable": {
+ "version": [
+ 20160523,
+ 56
+ ],
+ "deps": [
+ "cl-lib",
+ "let-alist"
+ ],
+ "commit": "b29c4f700b0fa0c9f627f6725b36462b8fab06d6",
+ "sha256": "0ya7c73acwp29glwjd1hf19h8jij2afwmwq7a3h91qx5zdn09wvh"
+ }
+ },
+ {
+ "ename": "xtest",
+ "commit": "378fe14c66072ecb899a074c56f95077dfc9667e",
+ "sha256": "1vbs4sb4frzg8d3l96ip9cc6lc86nbj50vpdfqazvxmdfd1sg4i7",
+ "fetcher": "github",
+ "repo": "promethial/xtest",
+ "unstable": {
+ "version": [
+ 20141214,
+ 1706
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2c2bdf32667506dd9ddf6eb311832add616bdf1c",
+ "sha256": "09mn8s7gzzxgs7kskld8l68zjrcgnvml3fqj69wrfq7b1g62hhxy"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "b227414d714e7baddef79bd306a43024b9a34d45",
+ "sha256": "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"
+ }
+ },
+ {
+ "ename": "xwidgete",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1v1dfykkb6nwjwz2623i6x1rl53z4457l6fpa4nv4krdqq79gl5d",
+ "fetcher": "github",
+ "repo": "tuhdo/xwidgete",
+ "unstable": {
+ "version": [
+ 20171118,
+ 2116
+ ],
+ "commit": "e4e8410fe32176df85b46234717824519443fb04",
+ "sha256": "04j4xwcdxlnrwxs89605zmwxszbi2j0z67v80651pshgnhj5p19i"
+ }
+ },
+ {
+ "ename": "xwidgets-reuse",
+ "commit": "dada661402d2f3c9c4bcea8c41ebd926f8b26748",
+ "sha256": "08v2377h2f8yjav7icv0372d1h1wbjqsqnb57x0rwbivxwlb0ijy",
+ "fetcher": "github",
+ "repo": "lordpretzel/xwidgets-reuse",
+ "unstable": {
+ "version": [
+ 20200817,
+ 147
+ ],
+ "commit": "5d56472dda53e43e0a11edcd373b44c0dbab47ce",
+ "sha256": "1b85x1yhgip4g3kv1sdwf3zmi91w6m5xbmm6zzl84w67wqfmnqlz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2
+ ],
+ "commit": "3f95d81bfce1b3c52f9dcf2890cd2559a5287a33",
+ "sha256": "1i6g4n2pnp3r0pyn4p6xryh0x44lyvazy8kc1bfrzwzf6py9wmq0"
+ }
+ },
+ {
+ "ename": "xwwp",
+ "commit": "83c34ae5023410cc31f93255275d6465b6152a10",
+ "sha256": "07r62haa1ks2xvfh4zkqadpsjdhk6kbafk1fmvcim3m13ma6gch1",
+ "fetcher": "github",
+ "repo": "canatella/xwwp",
+ "unstable": {
+ "version": [
+ 20200413,
+ 757
+ ],
+ "commit": "dcf6f9430dd9745e5f2705c0f42e013fab961c0e",
+ "sha256": "1aks12zbfcq4m4s1baxcdg2xjn2y9f4dw19576yp35hg2cb550v6"
+ }
+ },
+ {
+ "ename": "xwwp-follow-link-helm",
+ "commit": "83c34ae5023410cc31f93255275d6465b6152a10",
+ "sha256": "0dcbhc4zy4n03fi6pz3k9hlnpk7ys6xx1v6c4rwcjzy5ly80alwq",
+ "fetcher": "github",
+ "repo": "canatella/xwwp",
+ "unstable": {
+ "version": [
+ 20200331,
+ 800
+ ],
+ "deps": [
+ "xwwp"
+ ],
+ "commit": "dcf6f9430dd9745e5f2705c0f42e013fab961c0e",
+ "sha256": "1aks12zbfcq4m4s1baxcdg2xjn2y9f4dw19576yp35hg2cb550v6"
+ }
+ },
+ {
+ "ename": "xwwp-follow-link-ivy",
+ "commit": "83c34ae5023410cc31f93255275d6465b6152a10",
+ "sha256": "0i5wqj4170iqznghy02dc2g5l5cs76hjhk88dcwwpbss1mabj8ig",
+ "fetcher": "github",
+ "repo": "canatella/xwwp",
+ "unstable": {
+ "version": [
+ 20200331,
+ 800
+ ],
+ "deps": [
+ "xwwp"
+ ],
+ "commit": "dcf6f9430dd9745e5f2705c0f42e013fab961c0e",
+ "sha256": "1aks12zbfcq4m4s1baxcdg2xjn2y9f4dw19576yp35hg2cb550v6"
+ }
+ },
+ {
+ "ename": "yabin",
+ "commit": "cc44b28e32ff9b35f60744a175c2d1e3036db8bc",
+ "sha256": "1kmpm2rbb43c9cgp44qwd24d90mj48k3gyiir3vb6zf6k3syrc17",
+ "fetcher": "github",
+ "repo": "d5884/yabin",
+ "unstable": {
+ "version": [
+ 20140206,
+ 351
+ ],
+ "commit": "db8c404507560ef9147fcce2b94cd706fbfa03b5",
+ "sha256": "0f6pvwzhncycw8gnjy24h6q1qglfgvdjfs5dzqx9s43j3yg63lzm"
+ }
+ },
+ {
+ "ename": "yafolding",
+ "commit": "aca84b24c4d95b330b233851af35e7c8a8e6615c",
+ "sha256": "0xlcxhmgm8nmv14yr2ffvmf5g7fs6rnq9yc1zpcar8x3d11s0ql2",
+ "fetcher": "github",
+ "repo": "emacsorphanage/yafolding",
+ "unstable": {
+ "version": [
+ 20200119,
+ 1353
+ ],
+ "commit": "4c1888ae45f9241516519ae0ae3a899f2efa05ba",
+ "sha256": "1bb763lx5cs5z06irjllip8z9c61brjsamfcjajibi24wcajkprx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4,
+ 1
+ ],
+ "commit": "4c1888ae45f9241516519ae0ae3a899f2efa05ba",
+ "sha256": "1bb763lx5cs5z06irjllip8z9c61brjsamfcjajibi24wcajkprx"
+ }
+ },
+ {
+ "ename": "yagist",
+ "commit": "97ea1250ffbf159d7870710b9348ef26616dbedb",
+ "sha256": "1mz86fq0pb4w54c66vd19m2492mkrzq2qi6ssnn2xwmn8vv02wdd",
+ "fetcher": "github",
+ "repo": "mhayashi1120/yagist.el",
+ "unstable": {
+ "version": [
+ 20160418,
+ 508
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "dcdbd84f348414815d02f3da8a6ee0ac271632d4",
+ "sha256": "0lgy9b893mq4harxh80n0n2zia00s2c6ga8p654q563idrskgz17"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 12
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "97723a34750ccab5439eb9f6a2f67e4e0e234167",
+ "sha256": "0l9b888wv72j4hhkcfzsh09iqjxp2qjbjcjcfmvfhxf7il11pv8h"
+ }
+ },
+ {
+ "ename": "yahtzee",
+ "commit": "200169fdabce0ae3a2ecb6f4f3255c15ec3ed094",
+ "sha256": "1fnywiami9mszagmms27dmak6chcichdi7q70x5c6aimc4jb98jk",
+ "fetcher": "github",
+ "repo": "drdv/yahtzee",
+ "unstable": {
+ "version": [
+ 20200511,
+ 2005
+ ],
+ "commit": "63b9b698fbb547603c3f66932c6d3e3bb217c443",
+ "sha256": "0v0lp2n0xdxfiasr3lcydj9q4krfvzqi568iyngq6zxlryc75wi0"
+ }
+ },
+ {
+ "ename": "yalinum",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0jzsvkcvy2mkfmri4bzgrlgw2y0z3hxz44md83s5zmw09mshkahf",
+ "fetcher": "github",
+ "repo": "tm8st/emacs-yalinum",
+ "unstable": {
+ "version": [
+ 20130217,
+ 1043
+ ],
+ "commit": "d3e0cbe3f4f5ca311e3298e684901d6fea3ad973",
+ "sha256": "12dd4ahg9f1493982d49g7sxx0n6ss4xcfhxwzyaqxckwzfranp0"
+ }
+ },
+ {
+ "ename": "yaml-imenu",
+ "commit": "71e7c2df9e34093ad2634d5a56133fa30126fb5c",
+ "sha256": "03r7020gyr96m1z7p947nb7z8szzlkqv21g1hm10sqa8qp7k0qli",
+ "fetcher": "github",
+ "repo": "knu/yaml-imenu.el",
+ "unstable": {
+ "version": [
+ 20181001,
+ 627
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "78a383098807014d9e7f2941196d8271677158cd",
+ "sha256": "1f85m0h19wjb0xrwkxrh7vrpphm8l5nkrv82zsl097dqw3ijj3f1"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 1
+ ],
+ "deps": [
+ "yaml-mode"
+ ],
+ "commit": "78a383098807014d9e7f2941196d8271677158cd",
+ "sha256": "1f85m0h19wjb0xrwkxrh7vrpphm8l5nkrv82zsl097dqw3ijj3f1"
+ }
+ },
+ {
+ "ename": "yaml-mode",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0afp83xcr8h153cayyaszwkgpap0iyk351dlykmv6bv9d2m774mc",
+ "fetcher": "github",
+ "repo": "yoshiki/yaml-mode",
+ "unstable": {
+ "version": [
+ 20200725,
+ 1836
+ ],
+ "commit": "68fecb5f0dec712a10c8655df6881392a4613617",
+ "sha256": "11lasdsray1cy01m4yiklin2apgfk2bac93m2ii88vjlv6b6vv04"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 14
+ ],
+ "commit": "5b4a0db384f996554454b5642e4531c502421de8",
+ "sha256": "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"
+ }
+ },
+ {
+ "ename": "yaml-tomato",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1asy4nf759lcgksah2g7jvzwwlq9lxfkiji460csk5ycsv8aa99s",
+ "fetcher": "github",
+ "repo": "RadekMolenda/yaml-tomato",
+ "unstable": {
+ "version": [
+ 20151123,
+ 753
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "f9df1c9bdfcec629b03031b2d2032f9dc533cb14",
+ "sha256": "1xgqqgg4q3hrhiap8gmr8iifdr1mg4dl0j236b6alhrgmykbhimy"
+ }
+ },
+ {
+ "ename": "yandex-weather",
+ "commit": "5221cee4c89dde5cebd9cddb3b4e4c5814b898d7",
+ "sha256": "11hspadm520cjlv1wk2bdpzg7hg2g0chbh26qijj9jgvca26x0md",
+ "fetcher": "github",
+ "repo": "abstractionlayer/yandex-weather.el",
+ "unstable": {
+ "version": [
+ 20160311,
+ 2037
+ ],
+ "commit": "6f823fd9e04ff9efb2aa65f333079e9f7e6e5b28",
+ "sha256": "0pw44klm8ldsdjphybzkknv8yh23xhzwg76w3d9cqs79jkd0rw8w"
+ }
+ },
+ {
+ "ename": "yang-mode",
+ "commit": "bb42ab9b5f118baaf6766c478046552b686981a1",
+ "sha256": "0rl90xbcf3383ls95g1dixh2dr02kc4g60d324cqbb4h59wffp40",
+ "fetcher": "github",
+ "repo": "mbj4668/yang-mode",
+ "unstable": {
+ "version": [
+ 20190507,
+ 724
+ ],
+ "commit": "4b4ab4d4a79d37d6c31c6ea7cccbc425e0b1eded",
+ "sha256": "0sqp8vwlymwl2dp6bh1gf8725j1fd9sqj4qfgva09rmkq8fdivfm"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 9,
+ 9
+ ],
+ "commit": "4b4ab4d4a79d37d6c31c6ea7cccbc425e0b1eded",
+ "sha256": "0sqp8vwlymwl2dp6bh1gf8725j1fd9sqj4qfgva09rmkq8fdivfm"
+ }
+ },
+ {
+ "ename": "yankpad",
+ "commit": "e64746d10f9e0158621a7c4dc41dc2eca6ad573c",
+ "sha256": "1w5r9zk33cjgsmk45znfg32ym06nyqj5q3knr59jmn1fafx7a3z4",
+ "fetcher": "github",
+ "repo": "Kungsgeten/yankpad",
+ "unstable": {
+ "version": [
+ 20200409,
+ 1747
+ ],
+ "commit": "acfccf3633d7fd3b91d717fda4ae98e8e3345a06",
+ "sha256": "0xprfvgfcjdl20j1hxjk3f4gy7m3v0x9p0vyl2ygxmjj7ibgi7kw"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 6
+ ],
+ "commit": "d2ea6920a2444f1ce6f53947640446b8e16f84b7",
+ "sha256": "1lw2d25rwszk35bi3gm3bg0cb30b8c2bf3p32b89shnsmwylw52m"
+ }
+ },
+ {
+ "ename": "yapfify",
+ "commit": "060c32d8e9fdc56fe702d265a935d74d76082f86",
+ "sha256": "0scl8lk1c5i7jp1qj5gg8zf3zyi8lkb57ijkmvcs4czzlyv3y9bm",
+ "fetcher": "github",
+ "repo": "JorisE/yapfify",
+ "unstable": {
+ "version": [
+ 20200406,
+ 830
+ ],
+ "commit": "3df4e8ce65f55fd69479b3417525ce83a2b00b45",
+ "sha256": "13q84a4q5bv56r9dhi84jqbkx7dc1bvi42s01ahh8vmdvg4h39d3"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 6
+ ],
+ "commit": "9e63a9135bd8dbfbee55819837a3aa0d119c5e6f",
+ "sha256": "1bf09hah2g8x0jbrdh4fm1v01qjymiv38yvv8a5qmfpv5k93lcrc"
+ }
+ },
+ {
+ "ename": "yara-mode",
+ "commit": "ef22d2dad1bae62721710bbff4b7228204d7c425",
+ "sha256": "12j25nbfg65bkil4wv6f27sszlj3jm6h0zczr0v26xr5syppis17",
+ "fetcher": "github",
+ "repo": "binjo/yara-mode",
+ "unstable": {
+ "version": [
+ 20190423,
+ 710
+ ],
+ "commit": "cd8093b1bc4fc260462f5284b157008fefa84880",
+ "sha256": "04pl0kbx5g8wz00x7bhpi9w29wmxdmy5dhdq3j4rk3nys5njxr8v"
+ }
+ },
+ {
+ "ename": "yard-mode",
+ "commit": "afad2677f901b8d27922389afb1d235d5c8edc39",
+ "sha256": "0jmlcba8qapjwaaliz9gzs99if3wglkhmlpjzcdy3icx18sw8kzx",
+ "fetcher": "github",
+ "repo": "pd/yard-mode.el",
+ "unstable": {
+ "version": [
+ 20170817,
+ 1237
+ ],
+ "commit": "ba74a47463b0320ae152bd42a7dd7aeecd7b5748",
+ "sha256": "0zry3p66bvrk32icnd6kkk8y5rrr8crnqjp6wlp889c8c7wm00n1"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "commit": "78792f6a6fbff4f1bc955f494fdb11378e7f8095",
+ "sha256": "096ay60hrd14b459cyxxcf9g7i1ivsxg6yhc0q162px6kl1x0m2y"
+ }
+ },
+ {
+ "ename": "yari",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "0sch9x899mzwdacg55w5j583k2r4vn71ish7gqpghd7cj13ii66h",
+ "fetcher": "github",
+ "repo": "hron/yari.el",
+ "unstable": {
+ "version": [
+ 20151128,
+ 739
+ ],
+ "commit": "a2cb9656ee5dfe1fc2ee3854f3079a1c8e85dbe9",
+ "sha256": "0w9a6j0ndpfwaz1g974vv5jqgbzxw26l19kq51j3ah73063cavpf"
+ }
+ },
+ {
+ "ename": "yarn-mode",
+ "commit": "860fa2a8fdb22be374fa64a5277af3ab484a047a",
+ "sha256": "08a3lrz670jsf531mn1hwhh7fg5dby6i749cscd6d4dyvkzpz5dg",
+ "fetcher": "github",
+ "repo": "anachronic/yarn-mode",
+ "unstable": {
+ "version": [
+ 20200208,
+ 2332
+ ],
+ "commit": "8239d4dc7d8a52fa1e3fa81bd32c904a359fcfc1",
+ "sha256": "0pf98jkz8k4gyc650wwfhww6gli847hmxb8lrnmw50yb88dqa38f"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0
+ ],
+ "commit": "99891000efe31214b065fa9446cd5e68c5c42ed8",
+ "sha256": "0cg06ba9yfgjzprq78cvhvvl06av0p2vhnmynddzbpgjgjnwskfy"
+ }
+ },
+ {
+ "ename": "yascroll",
+ "commit": "7856a62fb86415c88aa72b574895328c93c10a09",
+ "sha256": "1hdh8xfmgj0w3vrl3nr3i6j8b9qf8ndnfa1bvwainzdbxpfwiz1v",
+ "fetcher": "github",
+ "repo": "emacsorphanage/yascroll",
+ "unstable": {
+ "version": [
+ 20200701,
+ 336
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9e828920d1931da66a473a66019922b9c3b729f5",
+ "sha256": "0cixj0swz322p7dghghbrasziygbzmn2ikcfiyrjar6bzh1mha9b"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 9
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "9e828920d1931da66a473a66019922b9c3b729f5",
+ "sha256": "0cixj0swz322p7dghghbrasziygbzmn2ikcfiyrjar6bzh1mha9b"
+ }
+ },
+ {
+ "ename": "yasnippet",
+ "commit": "5d1927dc3351d3522de1baccdc4ce200ba52bd6e",
+ "sha256": "1r37vz5b8nj6hr6c2ki9fdbrs3kkb4zwimh8r4ixm10kdkk5jqds",
+ "fetcher": "github",
+ "repo": "joaotavora/yasnippet",
+ "unstable": {
+ "version": [
+ 20200604,
+ 246
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6",
+ "sha256": "1cp1sgmfc8pgcy24l77aam833710mjp2y3m8l8c90677wxqr44vl"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 14,
+ 0
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "3bf9a3b1af37174a004798b7195826af0123fa6a",
+ "sha256": "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"
+ }
+ },
+ {
+ "ename": "yasnippet-lean",
+ "commit": "e1cdcf88a7ff90570d8b09901de8b8b8a153c52e",
+ "sha256": "0mhlg6ya4b232hgq5wh5w9h0ww35qi9br4501sc379zqwflvqcm7",
+ "fetcher": "github",
+ "repo": "leanprover-community/yasnippet-lean",
+ "unstable": {
+ "version": [
+ 20200526,
+ 326
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "e0933f55d59da5425d0604bdcdbbf3cb85967563",
+ "sha256": "0h64h47qdv3c20g9hlys2xb4w2jby7pdfhaza52y48wayz6vhpnx"
+ }
+ },
+ {
+ "ename": "yasnippet-snippets",
+ "commit": "42490bbdac871bce302fbc9a0488ff7de354627e",
+ "sha256": "0daawvlw78ya38bbi95swjq8qk5jf5shsyv164m81y2gd8i5c183",
+ "fetcher": "github",
+ "repo": "AndreaCrotti/yasnippet-snippets",
+ "unstable": {
+ "version": [
+ 20200802,
+ 1658
+ ],
+ "deps": [
+ "s",
+ "yasnippet"
+ ],
+ "commit": "b83c0f2f3bd068aa93c8f4c0c07f0b0a137d9cda",
+ "sha256": "0j1955y6gc3ddv783pd9kx834vvicpdsj49smkkpk4rj4s7pfxkz"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 23
+ ],
+ "deps": [
+ "s",
+ "yasnippet"
+ ],
+ "commit": "e5ebfcdb38eb79a6d6705107d07f7bab2e2b5c38",
+ "sha256": "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"
+ }
+ },
+ {
+ "ename": "yatemplate",
+ "commit": "67a9079253ebd9ab3b34e16eea0443812fb1a8ee",
+ "sha256": "05gd9sxdiqpw2p1kdagwgxd94wiw1fmmcsp9v4p74i9sqmf6qn6q",
+ "fetcher": "github",
+ "repo": "mineo/yatemplate",
+ "unstable": {
+ "version": [
+ 20200625,
+ 1336
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "23865adaee824db44acec8a4366ce2f29dd2e978",
+ "sha256": "0ri0kw70yy6mm17drpw5sifscaan3f32fj3xapa0hbz5jxrs9cr9"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 0
+ ],
+ "deps": [
+ "yasnippet"
+ ],
+ "commit": "bfee45cfc179d6b7fbc3ff06c9f79b76dc7fbf58",
+ "sha256": "0h2fc9vjwb94n3nklq35s3dy9i4ihrqffp2556cmsaq7gzlipb81"
+ }
+ },
+ {
+ "ename": "yatex",
+ "commit": "9854c39fc1889891fe460d0d5ac9224de3f6c635",
+ "sha256": "1qbqdsqf5s61hyyzx84csnby242n5sdcmcw55pa8r16j8kyzgrc0",
+ "fetcher": "hg",
+ "url": "https://www.yatex.org/hgrepos/yatex",
+ "unstable": {
+ "version": [
+ 20200208,
+ 931
+ ],
+ "commit": "f4c2dca86202c2da5b4f0f6ec97c49dd1cb01e6c",
+ "sha256": "1dh4i2dj2cfg693bvwdi4frmi2892h4q25xdacdm63c7fmn3ap6l"
+ }
+ },
+ {
+ "ename": "yaxception",
+ "commit": "1da5261081fc66910d935b81e52391c071e52379",
+ "sha256": "18n2kjbgfhkhcwigxmv8dk72jp57vsqqd20lc26v5amx6mrhgh58",
+ "fetcher": "github",
+ "repo": "aki2o/yaxception",
+ "unstable": {
+ "version": [
+ 20150105,
+ 1452
+ ],
+ "commit": "4e94cf3e0b9b5631b0e90eb4b7de597ee7185875",
+ "sha256": "0nqyn1b01v1qxv7rcf46qypca61lmpm8d7kqv63jazw3n05qdnj8"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3,
+ 3
+ ],
+ "commit": "4e94cf3e0b9b5631b0e90eb4b7de597ee7185875",
+ "sha256": "0nqyn1b01v1qxv7rcf46qypca61lmpm8d7kqv63jazw3n05qdnj8"
+ }
+ },
+ {
+ "ename": "ycm",
+ "commit": "44e168f757cb51249db2deb9f781eff99cf6fb7c",
+ "sha256": "16ahgvi85ddjlrjxld14zm2vvam0m89mwskizjd5clcz0snk51sc",
+ "fetcher": "github",
+ "repo": "neuromage/ycm.el",
+ "unstable": {
+ "version": [
+ 20150822,
+ 1836
+ ],
+ "commit": "4da8a14abcd0f4fa3235042ade2e12b5068c0601",
+ "sha256": "0znchya89zzk30mwl4qfm0q9sfa5m3jspapb892ydj0mck5n4nyj"
+ }
+ },
+ {
+ "ename": "ycmd",
+ "commit": "4b25378540c64d0214797348579671bf2b8cc696",
+ "sha256": "10jqr6xz2fnrd1ihips9jmbcd28zha432h4pxjpswz3ivwjqhxna",
+ "fetcher": "github",
+ "repo": "abingham/emacs-ycmd",
+ "unstable": {
+ "version": [
+ 20190416,
+ 807
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "deferred",
+ "let-alist",
+ "pkg-info",
+ "request",
+ "request-deferred",
+ "s"
+ ],
+ "commit": "bc81b992f79100c98f56b7b83caf64cb8ea60477",
+ "sha256": "0kwm5q2sv2xrsmnr0gc2fimp6b2cvwh5mhqsmcc3lgs32m4j1kwv"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 2
+ ],
+ "deps": [
+ "cl-lib",
+ "dash",
+ "deferred",
+ "let-alist",
+ "pkg-info",
+ "request",
+ "request-deferred",
+ "s"
+ ],
+ "commit": "d042a673b4d717c3ca9d641f120bfe16c994c740",
+ "sha256": "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0"
+ }
+ },
+ {
+ "ename": "ydk-mode",
+ "commit": "865b9ee86ca28fc1cedc0a432a292400184711ae",
+ "sha256": "1z9digf39d7dd736svp0cy6773l3nklzc263q23gwfcg0jswbdyg",
+ "fetcher": "github",
+ "repo": "jacksonrayhamilton/ydk-mode",
+ "unstable": {
+ "version": [
+ 20170113,
+ 921
+ ],
+ "commit": "f3f125b29408e0b0a34fec27dcb7c02c5dbfd04e",
+ "sha256": "0ndmbswrv8vyw18zhbmjr11400l546zqaj7dzfvwb5rhdv2d0abi"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 0,
+ 0
+ ],
+ "commit": "f3f125b29408e0b0a34fec27dcb7c02c5dbfd04e",
+ "sha256": "0ndmbswrv8vyw18zhbmjr11400l546zqaj7dzfvwb5rhdv2d0abi"
+ }
+ },
+ {
+ "ename": "yequake",
+ "commit": "194968f221b2f60042a3684e1ca3e1c18adbde8e",
+ "sha256": "1ps5r6k2903w9qbr3aszw3l3mgcg2zlnxlzbak99314if5k6aiak",
+ "fetcher": "github",
+ "repo": "alphapapa/yequake",
+ "unstable": {
+ "version": [
+ 20200219,
+ 2323
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "d18166e597414350117d0b82a29e509fc53c636d",
+ "sha256": "074wijjphnpch7bl3455apfkdv35b0iw4l4lzwj0jcxyfszviq9f"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "d18166e597414350117d0b82a29e509fc53c636d",
+ "sha256": "074wijjphnpch7bl3455apfkdv35b0iw4l4lzwj0jcxyfszviq9f"
+ }
+ },
+ {
+ "ename": "yesql-ghosts",
+ "commit": "3c652657be0f9b9dcb236e01c3abd2fd717190d7",
+ "sha256": "1hxzbnfd15f0ifdqjbw9nhxd0z46x705v2bc0xl71nav78fgpswf",
+ "fetcher": "github",
+ "repo": "magnars/yesql-ghosts",
+ "unstable": {
+ "version": [
+ 20150220,
+ 1237
+ ],
+ "deps": [
+ "cider",
+ "dash",
+ "s"
+ ],
+ "commit": "8f1faf0137b85a5072d13e1240a463d9a35ce2bb",
+ "sha256": "1fyvvkx6pa41bcr9cyh4yclwdzc5bs742s9fxr6wb4a5scq3hg9m"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "cider",
+ "dash",
+ "s"
+ ],
+ "commit": "bd834e97f263f9f981758c1462bc6297a83ca852",
+ "sha256": "0yvz7lmid4jcikb9jmc7h2lcry3fdyy809k25nyasj2bk41xqqsd"
+ }
+ },
+ {
+ "ename": "yesterbox",
+ "commit": "21f684c47e5778c9d46c9f28dae1113197717b78",
+ "sha256": "1ah4l8zz565jgr52d9n29iv93z7qwmlz9pdjw3l51qhqf79lkf1w",
+ "fetcher": "github",
+ "repo": "sje30/yesterbox",
+ "unstable": {
+ "version": [
+ 20200327,
+ 52
+ ],
+ "commit": "10591342f1759e25756f5865371a53c132d8b0a0",
+ "sha256": "0cd77m4zyqs74iz56l4h0k7ccxnxhis0247j4f5mf94s51fn1x7p"
+ }
+ },
+ {
+ "ename": "ynab",
+ "commit": "20a365e48ed200afadae01c096d1ea669e9c1938",
+ "sha256": "0in7blx21kv01vbwkrmvcl4n07vm4wmxkbv3l78s9xrri66i3nvf",
+ "fetcher": "github",
+ "repo": "janders223/ynab.el",
+ "unstable": {
+ "version": [
+ 20200607,
+ 2008
+ ],
+ "deps": [
+ "cl-lib",
+ "ts"
+ ],
+ "commit": "2c6beb4d2c4996017f6b3c62c26db52a61e5c479",
+ "sha256": "07bb1hlya07p6s6ymjl3vfv99xln3vrp78h4sda5va52vj1935rs"
+ }
+ },
+ {
+ "ename": "yoficator",
+ "commit": "a3422f4918992343fcace1a3024be59a5d2ed8e5",
+ "sha256": "0v8hv2bqa9bl6cmfz8l9v72a6z1c2b3i1hjgbj38w9hdjvb2qad6",
+ "fetcher": "gitlab",
+ "repo": "alx.k/yoficator",
+ "unstable": {
+ "version": [
+ 20190509,
+ 1620
+ ],
+ "commit": "fa914f9648515bca54b5e558ca57d2b65fa57491",
+ "sha256": "0mgkwjprcj47zn8kd3ppqnbnmnn00cvnbs0r0h5951966vshh13f"
+ }
+ },
+ {
+ "ename": "yoshi-theme",
+ "commit": "6e9a549e31c4097ee24b4bff12ec5d20d3beac68",
+ "sha256": "1kzdjs3rzg9rxrjgsk0wk75rwvbip6ixg1apcxv2c1a6biqqf2hv",
+ "fetcher": "github",
+ "repo": "ryuslash/yoshi-theme",
+ "unstable": {
+ "version": [
+ 20200422,
+ 208
+ ],
+ "commit": "caa83e4475885a2c9a126630f0feec1ce2eb0c4e",
+ "sha256": "0sga52lz54c2v08j6m9v3ddv7rlpdcgi9lkxn1cvajm5h60b20r8"
+ },
+ "stable": {
+ "version": [
+ 6,
+ 2,
+ 0
+ ],
+ "commit": "70365870ff823b954aa85972217d8f116c45d939",
+ "sha256": "1myrvw0brl6cn3gljbplgxj3mr3mzicfymg7sir8hrk4d5g498yn"
+ }
+ },
+ {
+ "ename": "youdao-dictionary",
+ "commit": "712bdf83f71c2105754f9b549a889ffc5b7ba565",
+ "sha256": "1qfk7s18br9jask1bpida0cjxks098qpz0ssmw8misi3bjax0fym",
+ "fetcher": "github",
+ "repo": "xuchunyang/youdao-dictionary.el",
+ "unstable": {
+ "version": [
+ 20200722,
+ 1705
+ ],
+ "deps": [
+ "chinese-word-at-point",
+ "names",
+ "popup",
+ "pos-tip"
+ ],
+ "commit": "8a4815a43565b9bfd257246e4895b8bfafb9d573",
+ "sha256": "0h8hgq76ja3fjrn8vsndkzvns4ar13qsydcrqjsj77jqw9kx9a43"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 4
+ ],
+ "deps": [
+ "chinese-word-at-point",
+ "names",
+ "popup"
+ ],
+ "commit": "a6e44e4fb93cc1b9f1067f10cf854b0bfc3fe732",
+ "sha256": "1m4zri7kiw70062w2sp4fdqmmx2vmjisamjwmjdg6669dzvnpawq"
+ }
+ },
+ {
+ "ename": "ytdl",
+ "commit": "3531012169cb78d00cdf89fa54a7aff684200083",
+ "sha256": "0s2ngslz6l4mkib09inv5r4g122jsnyiyh9ijjb27y3pr48cj23d",
+ "fetcher": "gitlab",
+ "repo": "tuedachu/ytdl",
+ "unstable": {
+ "version": [
+ 20200727,
+ 1824
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "transient"
+ ],
+ "commit": "2d617ed1cc0be35158411f897e4156c20ff6565f",
+ "sha256": "1fhbg0l6xrayqssl1xqjdgymdggpsvig73pwl4k9pjifaria2fbm"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3,
+ 4
+ ],
+ "deps": [
+ "async",
+ "dash",
+ "transient"
+ ],
+ "commit": "2d617ed1cc0be35158411f897e4156c20ff6565f",
+ "sha256": "1fhbg0l6xrayqssl1xqjdgymdggpsvig73pwl4k9pjifaria2fbm"
+ }
+ },
+ {
+ "ename": "ytel",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "0xafyxqps4dp44b4jmm69fa5d24df3fkyim7wa9ddgxkcqfl3mpx",
+ "fetcher": "github",
+ "repo": "gRastello/ytel",
+ "unstable": {
+ "version": [
+ 20200725,
+ 1056
+ ],
+ "commit": "d80c7964ec66589d5580fc13773e94f1834ab76f",
+ "sha256": "124pvj39lcv3dfz2m42qyydyab0xk6c5da54ffhrqbg8vri34w9w"
+ }
+ },
+ {
+ "ename": "z3-mode",
+ "commit": "e056fb14b46b97ff31b1db3b8bd31e395a54cd87",
+ "sha256": "183lzhgjj480ca2939za3rlnsbfn24mgi501n66h5wim950v7vgd",
+ "fetcher": "github",
+ "repo": "zv/z3-mode",
+ "unstable": {
+ "version": [
+ 20151120,
+ 2255
+ ],
+ "deps": [
+ "flycheck"
+ ],
+ "commit": "163dc01d59e9880b4dc188d4e1ad84d6c0c852e1",
+ "sha256": "1k7m3xk5ksbr2s3ypz5yqafz9sfav1m0qk2jz1xyi3fdaw2j0w2z"
+ }
+ },
+ {
+ "ename": "zeal-at-point",
+ "commit": "4bcb472b6b18b75acd9c68e1fc7ecce4c2a40d8f",
+ "sha256": "1cz53plk5bax5azm13y7xz530qcfh0scm0cgrkrgwja2wwlxirnw",
+ "fetcher": "github",
+ "repo": "jinzhu/zeal-at-point",
+ "unstable": {
+ "version": [
+ 20180131,
+ 2354
+ ],
+ "commit": "0fc3263f44e95acd3e9d91057677621ce4d297ee",
+ "sha256": "0aq9w9pjyzdgf63hwffhph6k43vv3cxmffklrjkjj3hqv796k8yd"
+ }
+ },
+ {
+ "ename": "zel",
+ "commit": "25b445a1dea5e8f1042bed6b5372471c25129fd8",
+ "sha256": "0fwc1fghsw2rg4fv10kgc9d6rhbq20xa9diqcvp1f1cqs12rfhpd",
+ "fetcher": "github",
+ "repo": "rudolfochrist/zel",
+ "unstable": {
+ "version": [
+ 20171014,
+ 832
+ ],
+ "deps": [
+ "frecency"
+ ],
+ "commit": "9dae2d212224d1deae1f62561fa8e4d689fd09f2",
+ "sha256": "1518wp3zjfdvzz5r22cjgn735c4yxr345qzj40b5agww4dsxmwmp"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 2
+ ],
+ "deps": [
+ "frecency"
+ ],
+ "commit": "1d938ac01a42e7a985a3f92f5e97bc09e057676e",
+ "sha256": "1hk84x4aqcfd3jggk9san1v4kr58v2zhikbv9sh3dcii6x5w2nv0"
+ }
+ },
+ {
+ "ename": "zen-and-art-theme",
+ "commit": "692cfa0e9edbc1b7114e2ae2f36bef34b20ad17c",
+ "sha256": "0b2lflji955z90xl9iz2y1vm04yljghbw4948gh5vv5p7mwibgf2",
+ "fetcher": "github",
+ "repo": "developernotes/zen-and-art-theme",
+ "unstable": {
+ "version": [
+ 20120622,
+ 1437
+ ],
+ "commit": "a7226cbce0bca2501d69a620cb2aeabfc396c232",
+ "sha256": "0dnaxhsw549k54j0mgydm7qbl4pizgipfyzc15f9afsxa107rpnl"
+ }
+ },
+ {
+ "ename": "zen-mode",
+ "commit": "42911a6fe084d88ed12fb87e0e03f7a6f176ec6c",
+ "sha256": "1fr6bp60jbv7dkhkwqk83d8g139rsfk95ljyjch5xvhl1bj0jmwg",
+ "fetcher": "github",
+ "repo": "zenlang/zen-mode",
+ "unstable": {
+ "version": [
+ 20200609,
+ 822
+ ],
+ "commit": "c1b1806358f3cce6c04b30699987d82dc7d42559",
+ "sha256": "1ikny9lxvg8whcl2x0gmr31fdv93vwf53niqr11cx93bfsvs4a9z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 8,
+ 20200609
+ ],
+ "commit": "c1b1806358f3cce6c04b30699987d82dc7d42559",
+ "sha256": "1ikny9lxvg8whcl2x0gmr31fdv93vwf53niqr11cx93bfsvs4a9z"
+ }
+ },
+ {
+ "ename": "zenburn-theme",
+ "commit": "091dcc3775ec2137cb61d66df4e72aca4900897a",
+ "sha256": "1kb371j9aissj0vy07jw4ydfn554blc8b2rbi0x1dvfksr2rhsn9",
+ "fetcher": "github",
+ "repo": "bbatsov/zenburn-emacs",
+ "unstable": {
+ "version": [
+ 20200701,
+ 1333
+ ],
+ "commit": "c09dbd9a36bbc0062b90be182f2b4cac64128cee",
+ "sha256": "0lr73kghsi1f5awhgsbvh4snkbdkkpjn5bwf6s6ypbybmjf6kjxd"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 6
+ ],
+ "commit": "4c75edfe7862c903b2584266284ed951004f5b62",
+ "sha256": "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"
+ }
+ },
+ {
+ "ename": "zencoding-mode",
+ "commit": "e7f2ebb9d860aa4f0797cdaadaa35fb3f5c4460b",
+ "sha256": "1fclad1dyngyg9ncfkcqfxybvy8482i2bd409cgxi9y4h1wc7ws7",
+ "fetcher": "github",
+ "repo": "rooney/zencoding",
+ "unstable": {
+ "version": [
+ 20140213,
+ 822
+ ],
+ "commit": "58e42af182c98cb9941d27cd042d227fbf4e146c",
+ "sha256": "1y3wj15kfbgskl29glmba6lzq43rcm141p4i5s180aqcw7ydp5vr"
+ }
+ },
+ {
+ "ename": "zenity-color-picker",
+ "commit": "8b4c6b03c5ff78ce327dcf66b175e266bbc53dbf",
+ "sha256": "0rim1mbhlb2lj302c58rs5l7bd168nxg1jpir6cbpf8rp0k35ldb",
+ "fetcher": "git",
+ "url": "https://bitbucket.org/Soft/zenity-color-picker.el",
+ "unstable": {
+ "version": [
+ 20160302,
+ 1154
+ ],
+ "commit": "4f4f46676a461ebc881487fb70c8c181e323db5e",
+ "sha256": "14i2k52qz77dv04w39fyp9hfq983fwa3803anqragk608xgwpf4s"
+ }
+ },
+ {
+ "ename": "zeno-theme",
+ "commit": "9703a222f51dc283e9462cceb5afeb009f7401dc",
+ "sha256": "0bqv1gdqlh7i48ckpgss6h9mmc9hpkqlb94aam0kkq2ga125gmwc",
+ "fetcher": "github",
+ "repo": "jbharat/zeno-theme",
+ "unstable": {
+ "version": [
+ 20181027,
+ 118
+ ],
+ "commit": "0914c4a5b1b9499e7f1ca5699b1c3ea2f4be3f1a",
+ "sha256": "1zl1ks7n35i9mn5w7ac3j15820fbgpbcmmysv25crvi4g9z94mqj"
+ }
+ },
+ {
+ "ename": "zephir-mode",
+ "commit": "fac9fb89cbe5c3eea987fadf23db20c214eab4d9",
+ "sha256": "133m47a54hdsczzmk3wg7f47q314qnw824lkh8zqx0nw68063i79",
+ "fetcher": "github",
+ "repo": "zephir-lang/zephir-mode",
+ "unstable": {
+ "version": [
+ 20200417,
+ 830
+ ],
+ "deps": [
+ "cl-lib",
+ "pkg-info"
+ ],
+ "commit": "4e9618b77dff67c1c7b6fff78605a62311db88b8",
+ "sha256": "0chh35h479jm0zcjxqyd9v1gzs2adicvyihdls87g8minmwvl19r"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6,
+ 0
+ ],
+ "deps": [
+ "cl-lib",
+ "pkg-info"
+ ],
+ "commit": "9adc5cf07a9117d25eaab41867ddde914c6d2f5a",
+ "sha256": "0g2vfscikz8qa0danvcickcjnz99yjm9jgk3sci094gmgwka3j2y"
+ }
+ },
+ {
+ "ename": "zero-input",
+ "commit": "5dad98623a72d61e1421abbe859e5f8764381751",
+ "sha256": "1av9qd2ggngrb23z3v9rwxnr8calmybis96ja7xfs5z8gnky5bhz",
+ "fetcher": "git",
+ "url": "https://gitlab.emacsos.com/sylecn/zero-el",
+ "unstable": {
+ "version": [
+ 20200405,
+ 1220
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "729da9f4b99acb744ee6974ed7f3d4e252fd19da",
+ "sha256": "1bcka4gzcb5r2y5g7a06l05n6ixvs7lm37w4ghvvq12ci2ypzp04"
+ },
+ "stable": {
+ "version": [
+ 2,
+ 8,
+ 0
+ ],
+ "deps": [
+ "s"
+ ],
+ "commit": "729da9f4b99acb744ee6974ed7f3d4e252fd19da",
+ "sha256": "1bcka4gzcb5r2y5g7a06l05n6ixvs7lm37w4ghvvq12ci2ypzp04"
+ }
+ },
+ {
+ "ename": "zerodark-theme",
+ "commit": "d00b78ead693e844e35c760fe2c39b8ed6cb0d81",
+ "sha256": "1nqzswmnq6h0av4rivqm237h7ghp7asa2nvls7nz4ma467p9qhp9",
+ "fetcher": "github",
+ "repo": "NicolasPetton/zerodark-theme",
+ "unstable": {
+ "version": [
+ 20190528,
+ 923
+ ],
+ "deps": [
+ "all-the-icons"
+ ],
+ "commit": "df22536a244293591575e56970bf83814faa7c14",
+ "sha256": "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"
+ },
+ "stable": {
+ "version": [
+ 4,
+ 6
+ ],
+ "deps": [
+ "all-the-icons"
+ ],
+ "commit": "df22536a244293591575e56970bf83814faa7c14",
+ "sha256": "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"
+ }
+ },
+ {
+ "ename": "zetteldeft",
+ "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+ "sha256": "05l2ljip5n9pcpcc1qm4m6ii86xs3dk94an1cigiw5is4qi8rhpl",
+ "fetcher": "github",
+ "repo": "EFLS/zetteldeft",
+ "unstable": {
+ "version": [
+ 20200812,
+ 2159
+ ],
+ "deps": [
+ "ace-window",
+ "deft"
+ ],
+ "commit": "2c4ddbf3e30e2f3ae6e877e08fd824b325fa7a62",
+ "sha256": "029fh32d2vilxlqs5jl3wc907ykxdkv36jjfzappyghd1qkp0iyi"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 3
+ ],
+ "deps": [
+ "deft"
+ ],
+ "commit": "271ea573b0a4f265d16108db2ec7c928f3e9aa31",
+ "sha256": "0y709x03har1sm30vbja3k3vw4p1nfck5zii7cigl4vg0scpcri6"
+ }
+ },
+ {
+ "ename": "zetz-mode",
+ "commit": "ad2add185cf31a92ca1fcd3a9efcbcdb0aa9e583",
+ "sha256": "0k30c0f2h96vvb8yacpg710gi64swwslm1gljpzcwxni5kdpqkzm",
+ "fetcher": "github",
+ "repo": "damon-kwok/zetz-mode",
+ "unstable": {
+ "version": [
+ 20200812,
+ 957
+ ],
+ "deps": [
+ "dash",
+ "hydra"
+ ],
+ "commit": "3bd2cdb4f6c6e8400d58fa1001d0513e39ce38bb",
+ "sha256": "0v1aa0hr607afxd03p44m1abx2c8a5k91i047q7nv8sv0cd65ack"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 0
+ ],
+ "deps": [
+ "dash",
+ "hydra"
+ ],
+ "commit": "03a566b213e52da540818559f1b7bbb8400abb88",
+ "sha256": "1lv1psprhn2fr5knnapa11dc8dz5zh699s8k3ldkgm6a6adkms7n"
+ }
+ },
+ {
+ "ename": "zig-mode",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "1kg1x0l65nqqpzn5np41ya9khr1yqcg5ki7z3jw0g4wxdbz7lrbx",
+ "fetcher": "github",
+ "repo": "ziglang/zig-mode",
+ "unstable": {
+ "version": [
+ 20200713,
+ 407
+ ],
+ "commit": "d88580913586b8749ed0ac3ae228e825a68f9412",
+ "sha256": "0r3cn6yxs013080il91x9b6fyx84bx3vzv7vkyr8npc2cz46klxs"
+ }
+ },
+ {
+ "ename": "zim-wiki-mode",
+ "commit": "a10d6b0fb4d5b87d7dea1bbc4e4e0495aa51627c",
+ "sha256": "188g8jf5004amq10gm7p9w1m1ff67l8sxlp1m38wpkivhkgfxzcb",
+ "fetcher": "github",
+ "repo": "WillForan/zim-wiki-mode",
+ "unstable": {
+ "version": [
+ 20200316,
+ 1223
+ ],
+ "deps": [
+ "dokuwiki-mode",
+ "helm-ag",
+ "helm-projectile",
+ "link-hint",
+ "pretty-hydra"
+ ],
+ "commit": "410fa67d5947b8801b03a58fcb2bd414cb5294f7",
+ "sha256": "14dmda7ahnflv0db9yzssz7bidz3zsdnxxwnby0y48vcjv94nnl5"
+ }
+ },
+ {
+ "ename": "zimports",
+ "commit": "c19dd3c0cb18bb429a0aaf834555869b98fda349",
+ "sha256": "19rhl9v4k0nxy8lsc1imjar2ib0g6slma5crzxjbminjjqnp5c3s",
+ "fetcher": "github",
+ "repo": "schmir/zimports.el",
+ "unstable": {
+ "version": [
+ 20200606,
+ 1700
+ ],
+ "deps": [
+ "projectile"
+ ],
+ "commit": "a96e9b993c9aaccf1fd07c8fddfc247c4e07618c",
+ "sha256": "1bzfdwyc4aybvnh20q7ypghpi3zrhhs0v8488lksjl26j23mhrwk"
+ }
+ },
+ {
+ "ename": "zlc",
+ "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
+ "sha256": "0qw0qf14l09mcnw7h0ccbw17psfpra76qfawkc10zpdb5a2167d0",
+ "fetcher": "github",
+ "repo": "mooz/emacs-zlc",
+ "unstable": {
+ "version": [
+ 20151011,
+ 157
+ ],
+ "commit": "4dd2ba267ecdeac845a7cbb3147294ee7daa25f4",
+ "sha256": "1gb51bqdf87yibs1zngk6q090p05293cpwlwbwzhnih9sl6wkq8x"
+ }
+ },
+ {
+ "ename": "zmq",
+ "commit": "72f4dcc2723de826bf1af7235ac6d9119a243c63",
+ "sha256": "14bbh00a58xgxyxl8zjxl57rf6351fnwsnk4cvvy341fvf86dklc",
+ "fetcher": "github",
+ "repo": "dzop/emacs-zmq",
+ "unstable": {
+ "version": [
+ 20200305,
+ 2345
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "2aed40aee51d19cbca83d1f1edc23a5f1522dd8d",
+ "sha256": "1viz4sw4vmnjhhqw68wp8a4ks1751s2dk09gx2gyl8gy5vw2fcg6"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 10,
+ 10
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "6120251d86bc85138305c1bf02b1000dc435fdb5",
+ "sha256": "0ngxm5mm0kqgvn8977ryrngamx0khzlw86d8vz5s0jhm2kgwnqp8"
+ }
+ },
+ {
+ "ename": "znc",
+ "commit": "855ea20024b606314f8590129259747cac0bcc97",
+ "sha256": "1017dlzbpb3ww0zb370bgsdrzr4kcc72ddby9j63d95chz2jg0hb",
+ "fetcher": "github",
+ "repo": "sshirokov/ZNC.el",
+ "unstable": {
+ "version": [
+ 20160627,
+ 2032
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "ce468d185e4a949c45fdd7586313144bc69d4fe5",
+ "sha256": "0jh11lbzsndsz9i143av7510417nzwy4j3mmpq7cjixfbmnxdq06"
+ }
+ },
+ {
+ "ename": "zombie",
+ "commit": "0da12385908c0e2ecd087ea7572fedf0a2dcf03f",
+ "sha256": "0ji3nsxwbxmmygd6plpbc1lkw6i5zw4y6x3r5n2ah3ds4vjr7cnv",
+ "fetcher": "github",
+ "repo": "zk-phi/zombie",
+ "unstable": {
+ "version": [
+ 20141222,
+ 1616
+ ],
+ "commit": "ff8cd1b4cdbb4b0b9b8fd1ec8f6fb93eba249345",
+ "sha256": "1gm3ly6czbw4vrxcslm50jy6nxf2qsl656cjwbyhw251wppn75cg"
+ }
+ },
+ {
+ "ename": "zombie-trellys-mode",
+ "commit": "e66db80ab82a69542688cd57c9e0ec10e6616c87",
+ "sha256": "19xzvppw7f35s82hm0y7sga8dyjjyy0dxy6vji4hxdpjziz7lggv",
+ "fetcher": "github",
+ "repo": "david-christiansen/zombie-trellys-mode",
+ "unstable": {
+ "version": [
+ 20150304,
+ 1448
+ ],
+ "deps": [
+ "cl-lib",
+ "haskell-mode"
+ ],
+ "commit": "7f0c45fdda3a44c3b6d1762d116abb1421b8fba2",
+ "sha256": "04m53hzk5n9vxh0gxi8jzpdhsdjlxnvz7hmsisr3bs99v603ha01"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 1
+ ],
+ "deps": [
+ "cl-lib",
+ "haskell-mode"
+ ],
+ "commit": "9e99d444a387dd1634cab62ef802683f5bf5d907",
+ "sha256": "1ksjd3askc3k1l0b3nia5mzkxa74bidh2x0xlrj4qs4im5445vnz"
+ }
+ },
+ {
+ "ename": "zone-nyan",
+ "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+ "sha256": "12k55m9fxkvx57n99dynpdsx391z8pzd6cjm4bqarf88bhv7f72p",
+ "fetcher": "git",
+ "url": "https://depp.brause.cc/zone-nyan.git",
+ "unstable": {
+ "version": [
+ 20200506,
+ 1207
+ ],
+ "deps": [
+ "esxml"
+ ],
+ "commit": "48625814f42c39521405d08009e1d44108d880ac",
+ "sha256": "1ii7w9y357l2467733wy7nnpikpdacjfj9bp2a54nq8h60gfr661"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 2
+ ],
+ "deps": [
+ "esxml"
+ ],
+ "commit": "e36875d83ad3dce14f23864688959fa0d98ba410",
+ "sha256": "1lrgirfvcvbir7csshkhhwj99jj1x5aprhw7xfiicv7nan9m6gjy"
+ }
+ },
+ {
+ "ename": "zone-rainbow",
+ "commit": "c8f678d32c8cd1bcc8ec042e7e68ca3a5259da65",
+ "sha256": "0l51fmhvx9vsxbs62cbjgqphb691397f651nqin7cj3dfvchzh4j",
+ "fetcher": "github",
+ "repo": "kawabata/zone-rainbow",
+ "unstable": {
+ "version": [
+ 20160120,
+ 1334
+ ],
+ "commit": "2ba4f1a87c69c4712124ebf12c1f3ea171e1af36",
+ "sha256": "0w550l9im3mhxhja1b7cr9phdcbvx5lprw551lj0d1lv7qvjasz0"
+ }
+ },
+ {
+ "ename": "zone-select",
+ "commit": "ecad1475d9a04ddd84f86ed950f742f68bcf71f8",
+ "sha256": "05kc211invmy4ajwf71vgr2b7bdgn99c4a26m95gcjqgy3sh5xzz",
+ "fetcher": "github",
+ "repo": "kawabata/zone-select",
+ "unstable": {
+ "version": [
+ 20160118,
+ 1419
+ ],
+ "deps": [
+ "dash"
+ ],
+ "commit": "bf30da12f1625fe6563448fccf3c506acad10af7",
+ "sha256": "17mrzf85ym0x5ih4l6sjdjlcmviabf8c8rpvpkd90gp9qxd8pyx1"
+ }
+ },
+ {
+ "ename": "zone-sl",
+ "commit": "11c976519e0cb320e48f40f4d735e557b3dfc1b9",
+ "sha256": "04rwd6vj3abk3bzhq3swxwcq5da2n9cldrcmvnqgjr975np4cgs3",
+ "fetcher": "github",
+ "repo": "kawabata/zone-sl",
+ "unstable": {
+ "version": [
+ 20160201,
+ 1210
+ ],
+ "commit": "7ec22e3661c6348382f9fc39a9d0063dbd2352ff",
+ "sha256": "0m1q45pza61j0fp8cxkgmds5fyjrk0nqpwhg8m91610m3pvyc3ap"
+ }
+ },
+ {
+ "ename": "zoom",
+ "commit": "3fe094c99756ad29eda9bc51f31bb70c4ddc4131",
+ "sha256": "09bk0nnfj72an2b3rravd6qp21gdgcm1m55qnf2r8rzbgqymq5ls",
+ "fetcher": "github",
+ "repo": "cyrus-and/zoom",
+ "unstable": {
+ "version": [
+ 20200708,
+ 1105
+ ],
+ "commit": "a373e7eed59ad93315e5ae88c816ca70404d2d34",
+ "sha256": "0dmpin0rlwib659s3g7qp48qmma50amj7zdk281b4j0bl6p3zkyc"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 3
+ ],
+ "commit": "85694c9baa99bcf247528a6743383a3a1e5323fe",
+ "sha256": "1xckqfkrx95b2bfdczz90y0b23bghlqkp2k5ml59ai2drb96l17h"
+ }
+ },
+ {
+ "ename": "zoom-window",
+ "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
+ "sha256": "0h4rr6h79g6sh8caa0l0fxssbd02v2llapqmikz72vpsghqg7y57",
+ "fetcher": "github",
+ "repo": "emacsorphanage/zoom-window",
+ "unstable": {
+ "version": [
+ 20200323,
+ 720
+ ],
+ "commit": "ab14a365f3e496b07f5efc20992f9094ec166f06",
+ "sha256": "0ah0gfzp0c90vrqmsfd6crl3i6bjqgb78hnpcvvg53gk5i19i4aw"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 6
+ ],
+ "commit": "ab14a365f3e496b07f5efc20992f9094ec166f06",
+ "sha256": "0ah0gfzp0c90vrqmsfd6crl3i6bjqgb78hnpcvvg53gk5i19i4aw"
+ }
+ },
+ {
+ "ename": "zop-to-char",
+ "commit": "b0a9277f1a5f1aef8886e739c73dea91d3f81dc5",
+ "sha256": "0jnspvqqvnaplld083j7cqqxw122qazh88ab7hymci36m3ka9hga",
+ "fetcher": "github",
+ "repo": "thierryvolpiatto/zop-to-char",
+ "unstable": {
+ "version": [
+ 20160212,
+ 1554
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "00152aa666354b27e56e20565f186b363afa0dce",
+ "sha256": "1s4adi9hyhxn7ynx195mgg10h817hxdmlzlp09633bj0llr1mjn3"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 1
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "816ea90337db0545a2f0a5079f4d7b3a2822af7d",
+ "sha256": "14waf3g7b92k3qd5088w4pn0wcspxjfkbswlzf7nnkjliw1yh0kf"
+ }
+ },
+ {
+ "ename": "zotelo",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0y6s5ma7633h5pf9zj7vkazidlf211va7nk47ppb1q0iyfkyln36",
+ "fetcher": "github",
+ "repo": "vspinu/zotelo",
+ "unstable": {
+ "version": [
+ 20160602,
+ 949
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "d9dc089b9adfcc70a63f2a84269a12eb7cb4c748",
+ "sha256": "1gff44nwiqhqhppwmsn38njkph4g9bw669p95m8p2avb7x7kiybl"
+ },
+ "stable": {
+ "version": [
+ 1,
+ 3
+ ],
+ "commit": "56eaaa76f80bd15710e68af4a1e585394af987d3",
+ "sha256": "0qwdbzfi8mddmchdd9ab9ms1ynlc8dx08i6g2mf3za1sbcivdqsr"
+ }
+ },
+ {
+ "ename": "zotxt",
+ "commit": "b633453e77a719f6b6b6564e66c1c1260db38aa6",
+ "sha256": "18jla05g2k8zfrmp7q9kpr1mpw6smxzdyn8nfghm306wvv9ff8y5",
+ "fetcher": "gitlab",
+ "repo": "egh/zotxt-emacs",
+ "unstable": {
+ "version": [
+ 20200120,
+ 1950
+ ],
+ "deps": [
+ "deferred",
+ "request"
+ ],
+ "commit": "2e7ce60fa4b0311c646a509c140fd1c94c08fa79",
+ "sha256": "0ww0bg3bbrynnfhkkr7vdsrjc3341ngkzf83nn934zl0aphg87wb"
+ },
+ "stable": {
+ "version": [
+ 5,
+ 0,
+ 5
+ ],
+ "deps": [
+ "deferred",
+ "request"
+ ],
+ "commit": "98323098c37a444de49cfef44f1506e9386e8c5f",
+ "sha256": "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"
+ }
+ },
+ {
+ "ename": "zoutline",
+ "commit": "4a26341f491145938aee9b531cd861200bfa2f6d",
+ "sha256": "1yyww84b58ymbx0w1gkgd0csr0cwlghdmnxk0jbzwc45g9g42k1m",
+ "fetcher": "github",
+ "repo": "abo-abo/zoutline",
+ "unstable": {
+ "version": [
+ 20190520,
+ 1819
+ ],
+ "commit": "63756846f8540b6faf89d885438186e4fe1c7d8a",
+ "sha256": "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 2,
+ 0
+ ],
+ "commit": "63756846f8540b6faf89d885438186e4fe1c7d8a",
+ "sha256": "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"
+ }
+ },
+ {
+ "ename": "zpl-mode",
+ "commit": "0bf11cd6ceb2633f968134d80f37d32f91c48227",
+ "sha256": "0wqhwzanvc1gpnykfqzi02p9zx0c1n6gnavg5dv1mlmc8x0hr67s",
+ "fetcher": "github",
+ "repo": "ax487/zpl-mode",
+ "unstable": {
+ "version": [
+ 20180906,
+ 1059
+ ],
+ "commit": "35e7e23c6baf31b5e65dd7405c8ab9b13c70637e",
+ "sha256": "147d7ylpk77zcsjim0my6cbyms28yd7mfaigmzm009jc1bn4r7f5"
+ }
+ },
+ {
+ "ename": "zpresent",
+ "commit": "d3828ad7599d13728b5571b882344c3ada434b85",
+ "sha256": "0i1qrb9qplmx9kx1286xypjyy48r9y3cvnlhi06r583adfr02wab",
+ "fetcher": "hg",
+ "url": "https://hg.sr.ht/~zck/zpresent",
+ "unstable": {
+ "version": [
+ 20200417,
+ 309
+ ],
+ "deps": [
+ "dash",
+ "org-parser",
+ "request"
+ ],
+ "commit": "406967322b7692492a5942d901335d626cace4d0",
+ "sha256": "1nn6dvzcayh6nv6xn3siv09iixc5c3gy9c8y1fdwzq81yny9l2fr"
+ }
+ },
+ {
+ "ename": "zprint-mode",
+ "commit": "188d40daec1ff86dcfa807a91eb77a1281de3951",
+ "sha256": "1dwf941plwxib96n4g95pm51hhhaq643djn1hps8s7yyrzz77czz",
+ "fetcher": "github",
+ "repo": "pesterhazy/zprint-mode.el",
+ "unstable": {
+ "version": [
+ 20200731,
+ 1238
+ ],
+ "commit": "b9b72b4918156f2f44aa544be9e19ea391937c2a",
+ "sha256": "1jvk8g8qc83y6pmklk403mikl6q3s6gls60fyw07p8f3kvhgfxzi"
+ }
+ },
+ {
+ "ename": "ztree",
+ "commit": "f151e057c05407748991f23c021e94c178b87248",
+ "sha256": "1fk5xz8qq3azc66f954x5qvym94xnv4fg6wy83ihdfwycsas7j20",
+ "fetcher": "github",
+ "repo": "fourier/ztree",
+ "unstable": {
+ "version": [
+ 20191108,
+ 2234
+ ],
+ "deps": [
+ "cl-lib"
+ ],
+ "commit": "0a5b25f364490a58ef7371534a39c75d11f54132",
+ "sha256": "0a0p9srdkc79isw99al3vba50vc435654wix07r9jcgdh856zbsr"
+ }
+ },
+ {
+ "ename": "zweilight-theme",
+ "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
+ "sha256": "1j8skn9hz1zkpdg7q0njv5b50cbvrixjjmkp43p58gx98q02p0kq",
+ "fetcher": "github",
+ "repo": "philiparvidsson/Zweilight-Theme-for-Emacs",
+ "unstable": {
+ "version": [
+ 20170113,
+ 605
+ ],
+ "commit": "7f45ab9e23164d65538edb2beb9692ecdc24c31e",
+ "sha256": "142ixk47a1x6xz8ibavzq7jxppjc2qvfwbly4sdyiwfpznbi4l3a"
+ }
+ },
+ {
+ "ename": "zygospore",
+ "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
+ "sha256": "0n9qs6fymdjly0i4rmx87y8gapfn5sqivsivcffi42vcb5f17kxj",
+ "fetcher": "github",
+ "repo": "LouisKottmann/zygospore.el",
+ "unstable": {
+ "version": [
+ 20140703,
+ 852
+ ],
+ "commit": "1af5ee663f5a7aa08d96a77cacff834dcdf55ea8",
+ "sha256": "0v73fgb0gf81vlihiicy32v6x86rr2hv0bxlpw7d3pk4ng1a0l3z"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 0,
+ 3
+ ],
+ "commit": "1af5ee663f5a7aa08d96a77cacff834dcdf55ea8",
+ "sha256": "0v73fgb0gf81vlihiicy32v6x86rr2hv0bxlpw7d3pk4ng1a0l3z"
+ }
+ },
+ {
+ "ename": "zzz-to-char",
+ "commit": "7063cbc1f1501ce81552d7ef1d42d1309f547c42",
+ "sha256": "16vwp0krshmn5x3ry1j512g4kydx39znjqzri4j7wgg49bz1n7vh",
+ "fetcher": "github",
+ "repo": "mrkkrp/zzz-to-char",
+ "unstable": {
+ "version": [
+ 20190713,
+ 1344
+ ],
+ "deps": [
+ "avy",
+ "cl-lib"
+ ],
+ "commit": "b0a50b8cb6925c3184405f81be9ef9be9da69f09",
+ "sha256": "003rg7x1vfv946j1m6yalzsgr88wvm3443pqf9yqwnzl2a3djq0g"
+ },
+ "stable": {
+ "version": [
+ 0,
+ 1,
+ 3
+ ],
+ "deps": [
+ "avy",
+ "cl-lib"
+ ],
+ "commit": "e571da33a0dde629314847338eedec84b40e9c32",
+ "sha256": "03i5bdq7d8la9kbvykgi7aa7v3c35nibgcd4pam99l47pm599ili"
+ }
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
new file mode 100644
index 000000000000..4320a88457a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation {
+ name = "rect-mark-1.4";
+
+ src = fetchurl {
+ url = "http://emacswiki.org/emacs/download/rect-mark.el";
+ sha256 = "0pyyg53z9irh5jdfvh2qp4pm8qrml9r7lh42wfmdw6c7f56qryh8";
+ };
+
+ phases = [ "buildPhase" "installPhase"];
+
+ buildInputs = [ emacs ];
+
+ buildPhase = ''
+ cp $src rect-mark.el
+ emacs --batch -f batch-byte-compile rect-mark.el
+ '';
+
+ installPhase = ''
+ install -d $out/share/emacs/site-lisp
+ install rect-mark.el* $out/share/emacs/site-lisp
+ '';
+
+ meta = {
+ description = "Mark a rectangle of text with highlighting";
+ homepage = "http://emacswiki.org/emacs/RectangleMark";
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix
new file mode 100644
index 000000000000..e4b739af0517
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation {
+ name = "session-management-for-emacs-2.2a";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/emacs-session/session-2.2a.tar.gz";
+ sha256 = "37dfba7420b5164eab90dafa9e8bf9a2c8f76505fe2fefa14a64e81fa76d0144";
+ };
+
+ buildInputs = [emacs];
+
+ installPhase = ''
+ mkdir -p "$out/share/emacs/site-lisp"
+ cp lisp/*.el "$out/share/emacs/site-lisp/"
+ '';
+
+ meta = {
+ /* installation: add to your ~/.emacs
+ (require 'session)
+ (add-hook 'after-init-hook 'session-initialize)
+ */
+ description = "Small session management for emacs";
+ homepage = "http://emacs-session.sourceforge.net/";
+ license = "GPL";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
new file mode 100644
index 000000000000..7e611d68a0a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchgit, emacs}:
+
+stdenv.mkDerivation {
+ name = "sunrise-commander-6r435";
+
+ src = fetchgit {
+ url = "https://github.com/escherdragon/sunrise-commander.git";
+ rev = "7a44ca7abd9fe79f87934c78d00dc2a91419a4f1";
+ sha256 = "2909beccc9daaa79e70876ac6547088c2459b624c364dda1886fe4d7adc7708b";
+ };
+
+ buildInputs = [ emacs ];
+
+ buildPhase = ''
+ emacs -L . --batch -f batch-byte-compile *.el
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/emacs/site-lisp
+ install *.el* $out/share/emacs/site-lisp
+ '';
+
+ meta = {
+ description = "Two-pane file manager for Emacs based on Dired and inspired by MC";
+ homepage = "http://www.emacswiki.org/emacs/Sunrise_Commander";
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix
new file mode 100644
index 000000000000..211be0a90897
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, trivialBuild }:
+
+trivialBuild {
+ pname = "sv-kalender";
+ version = "1.9";
+
+ src = fetchurl {
+ url = "http://bigwalter.net/daniel/elisp/sv-kalender.el";
+ sha256 = "0kilp0nyhj67qscy13s0g07kygz2qwmddklhan020sk7z7jv3lpi";
+ postFetch = ''
+ echo "(provide 'sv-kalender)" >> $out
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ description = "Swedish calendar for Emacs";
+ homepage = "http://bigwalter.net/daniel/elisp/sv-kalender.el";
+ platforms = platforms.all;
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.rycee ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix
new file mode 100644
index 000000000000..b87390d4609f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, emacs, texinfo }:
+
+stdenv.mkDerivation rec {
+ name = "tramp-2.4.2";
+ src = fetchurl {
+ url = "mirror://gnu/tramp/${name}.tar.gz";
+ sha256 = "082nwvi99y0bvpl1yhn4yjc8a613jh1pdck253lxn062lkcxxw61";
+ };
+ buildInputs = [ emacs texinfo ];
+ meta = {
+ description = "Transparently access remote files from Emacs. Newer versions than built-in.";
+ homepage = "https://www.gnu.org/software/tramp";
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-elpa b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-elpa
new file mode 100755
index 000000000000..ba2964b2ead0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-elpa
@@ -0,0 +1,4 @@
+#! /usr/bin/env nix-shell
+#! nix-shell --show-trace ./emacs2nix.nix -i bash
+
+exec elpa-packages.sh --names $EMACS2NIX/names.nix -o elpa-generated.nix
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-from-overlay b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-from-overlay
new file mode 100755
index 000000000000..fc5657e44196
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-from-overlay
@@ -0,0 +1,19 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p curl nix
+set -euxo pipefail
+
+# This script piggybacks on the automatic code generation done by the nix-community emacs overlay
+# You can use this to avoid running lengthy code generation jobs locally
+
+curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/elpa/elpa-generated.nix
+nix-instantiate ../../../.. -A emacsPackagesNg.elpaPackages --show-trace
+git diff --exit-code elpa-generated.nix > /dev/null || git commit -m "emacsPackages.elpa-packages: $(date --iso)" -- elpa-generated.nix
+
+curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/org/org-generated.nix
+nix-instantiate ../../../.. -A emacsPackagesNg.orgPackages --show-trace
+git diff --exit-code org-generated.nix > /dev/null || git commit -m "emacsPackages.org-packages: $(date --iso)" -- org-generated.nix
+
+curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/melpa/recipes-archive-melpa.json
+env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackages.melpaStablePackages
+env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackages.melpaPackages
+git diff --exit-code recipes-archive-melpa.json > /dev/null || git commit -m "emacsPackages.melpa-packages: $(date --iso)" -- recipes-archive-melpa.json
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa
new file mode 100755
index 000000000000..5c636416a5e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa
@@ -0,0 +1,6 @@
+#! /usr/bin/env nix-shell
+#! nix-shell --show-trace ./updater-emacs.nix -i bash
+
+SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P )"
+
+exec emacs --fg-daemon=updater --quick -l $SCRIPT_DIR/update-melpa.el -f run-updater "$@"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa.el b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa.el
new file mode 100644
index 000000000000..b315777620ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa.el
@@ -0,0 +1,434 @@
+;; -*- lexical-binding: t -*-
+
+;; This is the updater for recipes-archive-melpa.json
+
+(require 'promise)
+(require 'semaphore-promise)
+(require 'url)
+(require 'json)
+(require 'cl)
+(require 'subr-x)
+(require 'seq)
+
+;; # Lib
+
+(defun alist-set (key value alist)
+ (cons
+ (cons key value)
+ (assq-delete-all
+ key alist)))
+
+(defun alist-update (key f alist)
+ (let ((value (alist-get key alist)))
+ (cons
+ (cons key (funcall f value))
+ (assq-delete-all
+ key alist))))
+
+
+(defun process-promise (semaphore program &rest args)
+ "Generate an asynchronous process and
+return Promise to resolve in that process."
+ (promise-then
+ (semaphore-promise-gated
+ semaphore
+ (lambda (resolve reject)
+ (funcall resolve (apply #'promise:make-process program args))))
+ #'car))
+
+(defun mangle-name (s)
+ (if (string-match "^[a-zA-Z].*" s)
+ s
+ (concat "_" s)))
+
+;; ## Shell promise + env
+
+(defun as-string (o)
+ (with-output-to-string (princ o)))
+
+(defun assocenv (env &rest namevals)
+ (let ((process-environment (copy-sequence env)))
+ (mapc (lambda (e)
+ (setenv (as-string (car e))
+ (cadr e)))
+ (seq-partition namevals 2))
+ process-environment))
+
+(defun shell-promise (semaphore env script)
+ (semaphore-promise-gated
+ semaphore
+ (lambda (resolve reject)
+ (let ((process-environment env))
+ (funcall resolve (promise:make-shell-command script))))))
+
+;; # Updater
+
+;; ## Previous Archive Reader
+
+(defun previous-commit (index ename variant)
+ (when-let (pdesc (and index (gethash ename index)))
+ (when-let (desc (and pdesc (gethash variant pdesc)))
+ (gethash 'commit desc))))
+
+(defun previous-sha256 (index ename variant)
+ (when-let (pdesc (and index (gethash ename index)))
+ (when-let (desc (and pdesc (gethash variant pdesc)))
+ (gethash 'sha256 desc))))
+
+(defun parse-previous-archive (filename)
+ (let ((idx (make-hash-table :test 'equal)))
+ (loop for desc in
+ (let ((json-object-type 'hash-table)
+ (json-array-type 'list)
+ (json-key-type 'symbol))
+ (json-read-file filename))
+ do (puthash (gethash 'ename desc)
+ desc idx))
+ idx))
+
+;; ## Prefetcher
+
+;; (defun latest-git-revision (url)
+;; (process-promise "git" "ls-remote" url))
+
+(defun prefetch (semaphore fetcher repo commit)
+ (promise-then
+ (apply 'process-promise
+ semaphore
+ (pcase fetcher
+ ("github" (list "nix-prefetch-url"
+ "--unpack" (concat "https://github.com/" repo "/archive/" commit ".tar.gz")))
+ ("gitlab" (list "nix-prefetch-url"
+ "--unpack" (concat "https://gitlab.com/" repo "/repository/archive.tar.gz?ref=" commit)))
+ ("bitbucket" (list "nix-prefetch-hg"
+ (concat "https://bitbucket.com/" repo) commit))
+ ("hg" (list "nix-prefetch-hg"
+ repo commit))
+ ("git" (list "nix-prefetch-git"
+ "--fetch-submodules"
+ "--url" repo
+ "--rev" commit))
+ (_ (throw 'unknown-fetcher fetcher))))
+ (lambda (res)
+ (pcase fetcher
+ ("git" (alist-get 'sha256 (json-read-from-string res)))
+ (_ (car (split-string res)))))))
+
+(defun source-sha (semaphore ename eprops aprops previous variant)
+ (let* ((fetcher (alist-get 'fetcher eprops))
+ (url (alist-get 'url eprops))
+ (repo (alist-get 'repo eprops))
+ (commit (gethash 'commit aprops))
+ (prev-commit (previous-commit previous ename variant))
+ (prev-sha256 (previous-sha256 previous ename variant)))
+ (if (and commit prev-sha256
+ (equal prev-commit commit))
+ (progn
+ (message "INFO: %s: re-using %s %s" ename prev-commit prev-sha256)
+ (promise-resolve `((sha256 . ,prev-sha256))))
+ (if (and commit (or repo url))
+ (promise-then
+ (prefetch semaphore fetcher (or repo url) commit)
+ (lambda (sha256)
+ (message "INFO: %s: prefetched repository %s %s" ename commit sha256)
+ `((sha256 . ,sha256)))
+ (lambda (err)
+ (message "ERROR: %s: during prefetch %s" ename err)
+ (promise-resolve
+ `((error . ,err)))))
+ (progn
+ (message "ERROR: %s: no commit information" ename)
+ (promise-resolve
+ `((error . "No commit information"))))))))
+
+(defun source-info (recipe archive source-sha)
+ (let* ((esym (car recipe))
+ (ename (symbol-name esym))
+ (eprops (cdr recipe))
+ (aentry (gethash esym archive))
+ (version (and aentry (gethash 'ver aentry)))
+ (deps (when-let (deps (gethash 'deps aentry))
+ (remove 'emacs (hash-table-keys deps))))
+ (aprops (and aentry (gethash 'props aentry)))
+ (commit (gethash 'commit aprops)))
+ (append `((version . ,version))
+ (when (< 0 (length deps))
+ `((deps . ,(sort deps 'string<))))
+ `((commit . ,commit))
+ source-sha)))
+
+(defun recipe-info (recipe-index ename)
+ (if-let (desc (gethash ename recipe-index))
+ (destructuring-bind (rcp-commit . rcp-sha256) desc
+ `((commit . ,rcp-commit)
+ (sha256 . ,rcp-sha256)))
+ `((error . "No recipe info"))))
+
+(defun start-fetch (semaphore recipe-index-promise recipes unstable-archive stable-archive previous)
+ (promise-all
+ (mapcar (lambda (entry)
+ (let* ((esym (car entry))
+ (ename (symbol-name esym))
+ (eprops (cdr entry))
+ (fetcher (alist-get 'fetcher eprops))
+ (url (alist-get 'url eprops))
+ (repo (alist-get 'repo eprops))
+
+ (unstable-aentry (gethash esym unstable-archive))
+ (unstable-aprops (and unstable-aentry (gethash 'props unstable-aentry)))
+ (unstable-commit (and unstable-aprops (gethash 'commit unstable-aprops)))
+
+ (stable-aentry (gethash esym stable-archive))
+ (stable-aprops (and stable-aentry (gethash 'props stable-aentry)))
+ (stable-commit (and stable-aprops (gethash 'commit stable-aprops)))
+
+ (unstable-shap (if unstable-aprops
+ (source-sha semaphore ename eprops unstable-aprops previous 'unstable)
+ (promise-resolve nil)))
+ (stable-shap (if (equal unstable-commit stable-commit)
+ unstable-shap
+ (if stable-aprops
+ (source-sha semaphore ename eprops stable-aprops previous 'stable)
+ (promise-resolve nil)))))
+
+ (promise-then
+ (promise-all (list recipe-index-promise unstable-shap stable-shap))
+ (lambda (res)
+ (seq-let [recipe-index unstable-sha stable-sha] res
+ (append `((ename . ,ename))
+ (if-let (desc (gethash ename recipe-index))
+ (destructuring-bind (rcp-commit . rcp-sha256) desc
+ (append `((commit . ,rcp-commit)
+ (sha256 . ,rcp-sha256))
+ (when (not unstable-aprops)
+ (message "ERROR: %s: not in archive" ename)
+ `((error . "Not in archive")))))
+ `((error . "No recipe info")))
+ `((fetcher . ,fetcher))
+ (if (or (equal "github" fetcher)
+ (equal "bitbucket" fetcher)
+ (equal "gitlab" fetcher))
+ `((repo . ,repo))
+ `((url . ,url)))
+ (when unstable-aprops `((unstable . ,(source-info entry unstable-archive unstable-sha))))
+ (when stable-aprops `((stable . ,(source-info entry stable-archive stable-sha))))))))))
+ recipes)))
+
+;; ## Emitter
+
+(defun emit-json (prefetch-semaphore recipe-index-promise recipes archive stable-archive previous)
+ (promise-then
+ (start-fetch
+ prefetch-semaphore
+ recipe-index-promise
+ (sort recipes (lambda (a b)
+ (string-lessp
+ (symbol-name (car a))
+ (symbol-name (car b)))))
+ archive stable-archive
+ previous)
+ (lambda (descriptors)
+ (message "Finished downloading %d descriptors" (length descriptors))
+ (let ((buf (generate-new-buffer "*recipes-archive*")))
+ (with-current-buffer buf
+ ;; (switch-to-buffer buf)
+ ;; (json-mode)
+ (insert
+ (let ((json-encoding-pretty-print t)
+ (json-encoding-default-indentation " "))
+ (json-encode descriptors)))
+ buf)))))
+
+;; ## Recipe indexer
+
+(defun http-get (url parser)
+ (promise-new
+ (lambda (resolve reject)
+ (url-retrieve
+ url (lambda (status)
+ (funcall resolve (condition-case err
+ (progn
+ (goto-char (point-min))
+ (search-forward "\n\n")
+ (message (buffer-substring (point-min) (point)))
+ (delete-region (point-min) (point))
+ (funcall parser))
+ (funcall reject err))))))))
+
+(defun json-read-buffer (buffer)
+ (with-current-buffer buffer
+ (save-excursion
+ (mark-whole-buffer)
+ (json-read))))
+
+(defun error-count (recipes-archive)
+ (length
+ (seq-filter
+ (lambda (desc)
+ (alist-get 'error desc))
+ recipes-archive)))
+
+;; (error-count (json-read-buffer "recipes-archive-melpa.json"))
+
+(defun latest-recipe-commit (semaphore repo base-rev recipe)
+ (shell-promise
+ semaphore (assocenv process-environment
+ "GIT_DIR" repo
+ "BASE_REV" base-rev
+ "RECIPE" recipe)
+ "exec git log --first-parent -n1 --pretty=format:%H $BASE_REV -- recipes/$RECIPE"))
+
+(defun latest-recipe-sha256 (semaphore repo base-rev recipe)
+ (promise-then
+ (shell-promise
+ semaphore (assocenv process-environment
+ "GIT_DIR" repo
+ "BASE_REV" base-rev
+ "RECIPE" recipe)
+ "exec nix-hash --flat --type sha256 --base32 <(
+ git cat-file blob $(
+ git ls-tree $BASE_REV recipes/$RECIPE | cut -f1 | cut -d' ' -f3
+ )
+ )")
+ (lambda (res)
+ (car
+ (split-string res)))))
+
+(defun index-recipe-commits (semaphore repo base-rev recipes)
+ (promise-then
+ (promise-all
+ (mapcar (lambda (recipe)
+ (promise-then
+ (latest-recipe-commit semaphore repo base-rev recipe)
+ (let ((sha256p (latest-recipe-sha256 semaphore repo base-rev recipe)))
+ (lambda (commit)
+ (promise-then sha256p
+ (lambda (sha256)
+ (message "Indexed Recipe %s %s %s" recipe commit sha256)
+ (cons recipe (cons commit sha256))))))))
+ recipes))
+ (lambda (rcp-commits)
+ (let ((idx (make-hash-table :test 'equal)))
+ (mapc (lambda (rcpc)
+ (puthash (car rcpc) (cdr rcpc) idx))
+ rcp-commits)
+ idx))))
+
+(defun with-melpa-checkout (resolve)
+ (let ((tmpdir (make-temp-file "melpa-" t)))
+ (promise-finally
+ (promise-then
+ (shell-promise
+ (semaphore-create 1 "dummy")
+ (assocenv process-environment "MELPA_DIR" tmpdir)
+ "cd $MELPA_DIR
+ (git init --bare
+ git remote add origin https://github.com/melpa/melpa.git
+ git fetch origin) 1>&2
+ echo -n $MELPA_DIR")
+ (lambda (dir)
+ (message "Created melpa checkout %s" dir)
+ (funcall resolve dir)))
+ (lambda ()
+ (delete-directory tmpdir t)
+ (message "Deleted melpa checkout %s" tmpdir)))))
+
+(defun list-recipes (repo base-rev)
+ (promise-then
+ (shell-promise nil (assocenv process-environment
+ "GIT_DIR" repo
+ "BASE_REV" base-rev)
+ "git ls-tree --name-only $BASE_REV recipes/")
+ (lambda (s)
+ (mapcar (lambda (n)
+ (substring n 8))
+ (split-string s)))))
+
+;; ## Main runner
+
+(defvar recipe-indexp)
+(defvar archivep)
+
+(defun run-updater ()
+ (message "Turning off logging to *Message* buffer")
+ (setq message-log-max nil)
+ (setenv "GIT_ASKPASS")
+ (setenv "SSH_ASKPASS")
+ (setq process-adaptive-read-buffering nil)
+
+ ;; Indexer and Prefetcher run in parallel
+
+ ;; Recipe Indexer
+ (setq recipe-indexp
+ (with-melpa-checkout
+ (lambda (repo)
+ (promise-then
+ (promise-then
+ (list-recipes repo "origin/master")
+ (lambda (recipe-names)
+ (promise:make-thread #'index-recipe-commits
+ ;; The indexer runs on a local git repository,
+ ;; so it is CPU bound.
+ ;; Adjust for core count + 2
+ (semaphore-create 6 "local-indexer")
+ repo "origin/master"
+ ;; (seq-take recipe-names 20)
+ recipe-names)))
+ (lambda (res)
+ (message "Indexed Recipes: %d" (hash-table-count res))
+ (defvar recipe-index res)
+ res)
+ (lambda (err)
+ (message "ERROR: %s" err))))))
+
+ ;; Prefetcher + Emitter
+ (setq archivep
+ (promise-then
+ (promise-then (promise-all
+ (list (http-get "https://melpa.org/recipes.json"
+ (lambda ()
+ (let ((json-object-type 'alist)
+ (json-array-type 'list)
+ (json-key-type 'symbol))
+ (json-read))))
+ (http-get "https://melpa.org/archive.json"
+ (lambda ()
+ (let ((json-object-type 'hash-table)
+ (json-array-type 'list)
+ (json-key-type 'symbol))
+ (json-read))))
+ (http-get "https://stable.melpa.org/archive.json"
+ (lambda ()
+ (let ((json-object-type 'hash-table)
+ (json-array-type 'list)
+ (json-key-type 'symbol))
+ (json-read))))))
+ (lambda (resolved)
+ (message "Finished download")
+ (seq-let [recipes-content archive-content stable-archive-content] resolved
+ ;; The prefetcher is network bound, so 64 seems a good estimate
+ ;; for parallel network connections
+ (promise:make-thread #'emit-json (semaphore-create 64 "prefetch-pool")
+ recipe-indexp
+ recipes-content
+ archive-content
+ stable-archive-content
+ (parse-previous-archive "recipes-archive-melpa.json")))))
+ (lambda (buf)
+ (with-current-buffer buf
+ (write-file "recipes-archive-melpa.json")))
+ (lambda (err)
+ (message "ERROR: %s" err))))
+
+ ;; Shutdown routine
+ (make-thread
+ (lambda ()
+ (promise-finally archivep
+ (lambda ()
+ ;; (message "Joining threads %s" (all-threads))
+ ;; (mapc (lambda (thr)
+ ;; (when (not (eq thr (current-thread)))
+ ;; (thread-join thr)))
+ ;; (all-threads))
+
+ (kill-emacs 0))))))
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-org b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-org
new file mode 100755
index 000000000000..2119a1672287
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/update-org
@@ -0,0 +1,4 @@
+#! /usr/bin/env nix-shell
+#! nix-shell --show-trace ./emacs2nix.nix -i bash
+
+exec org-packages.sh --names $EMACS2NIX/names.nix -o org-generated.nix
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/updater-emacs.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/updater-emacs.nix
new file mode 100644
index 000000000000..b5de993eaa76
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/updater-emacs.nix
@@ -0,0 +1,40 @@
+let
+ pkgs = import ../../../.. {};
+
+ emacsEnv = (pkgs.emacsPackagesFor pkgs.emacs).emacsWithPackages (epkgs: let
+
+ promise = epkgs.trivialBuild {
+ pname = "promise";
+ version = "1";
+ src = pkgs.fetchFromGitHub {
+ owner = "bendlas";
+ repo = "emacs-promise";
+ rev = "4da97087c5babbd8429b5ce62a8323b9b03c6022";
+ sha256 = "0yin7kj69g4zxs30pvk47cnfygxlaw7jc7chr3b36lz51yqczjsy";
+ };
+ };
+
+ semaphore = epkgs.trivialBuild {
+ pname = "semaphore";
+ version = "1";
+ packageRequires = [ promise ];
+ src = pkgs.fetchFromGitHub {
+ owner = "webnf";
+ repo = "semaphore.el";
+ rev = "93802cb093073bc6a6ccd797328dafffcef248e0";
+ sha256 = "09pfyp27m35sv340xarhld7xx2vv5fs5xj4418709iw6l6hpk853";
+ };
+ };
+
+ in [ promise semaphore ]);
+
+in pkgs.mkShell {
+ buildInputs = [
+ pkgs.git
+ pkgs.nix
+ pkgs.bash
+ pkgs.nix-prefetch-git
+ pkgs.nix-prefetch-hg
+ emacsEnv
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix
new file mode 100644
index 000000000000..c771f5423a95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation {
+ name = "zeitgeist-20120221";
+
+ dontUnpack = true;
+
+ src = fetchurl {
+ url = "https://raw.githubusercontent.com/alexmurray/dotfiles/master/.emacs.d/vendor/zeitgeist.el";
+ sha256 = "0fssx3lp8ar3b1ichbagir7z17habv367l7zz719ipycr24rf1nw";
+ };
+
+ buildInputs = [ emacs ];
+
+ installPhase = ''
+ mkdir -p $out/share/emacs/site-lisp
+ cp $src $out/share/emacs/site-lisp/zeitgeist.el
+ '';
+
+ meta = {
+ description = "Integreate Emacs with Zeitgeist";
+ homepage = "http://zeitgeist-project.com/";
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/26.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/26.nix
new file mode 100644
index 000000000000..a151006a995d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/26.nix
@@ -0,0 +1,8 @@
+import ./generic.nix (rec {
+ version = "26.3";
+ sha256 = "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d";
+ patches = [
+ ./clean-env-26.patch
+ ./tramp-detect-wrapped-gvfsd-26.patch
+ ];
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/27.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/27.nix
new file mode 100644
index 000000000000..1037c0cd91dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/27.nix
@@ -0,0 +1,8 @@
+import ./generic.nix (rec {
+ version = "27.1";
+ sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
+ patches = [
+ ./clean-env.patch
+ ./tramp-detect-wrapped-gvfsd.patch
+ ];
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/at-fdcwd.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/at-fdcwd.patch
new file mode 100644
index 000000000000..2d8099b73736
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/at-fdcwd.patch
@@ -0,0 +1,15 @@
+diff --git a/lib/careadlinkat.h b/lib/careadlinkat.h
+index 84ede3e..8e8f42e 100644
+--- a/lib/careadlinkat.h
++++ b/lib/careadlinkat.h
+@@ -23,6 +23,10 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+
++#ifndef AT_FDCWD
++#define AT_FDCWD -2
++#endif
++
+ struct allocator;
+
+ /* Assuming the current directory is FD, get the symbolic link value
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch
new file mode 100644
index 000000000000..88befda899a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch
@@ -0,0 +1,15 @@
+Dump temacs in an empty environment to prevent -dev paths from ending
+up in the dumped image.
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -535,7 +535,7 @@ ifeq ($(CANNOT_DUMP),yes)
+ ln -f temacs$(EXEEXT) $@
+ else
+ unset EMACS_HEAP_EXEC; \
+- LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
++ env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
+ ifneq ($(PAXCTL_dumped),)
+ $(PAXCTL_dumped) $@
+ endif
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch
new file mode 100644
index 000000000000..2ffe8b777a00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch
@@ -0,0 +1,16 @@
+Dump temacs in an empty environment to prevent -dev paths from ending
+up in the dumped image.
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index fd05a45df5..13f529c253 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -570,7 +570,7 @@ emacs$(EXEEXT): temacs$(EXEEXT) \
+ lisp.mk $(etc)/DOC $(lisp) \
+ $(lispsource)/international/charprop.el ${charsets}
+ ifeq ($(DUMPING),unexec)
+- LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
++ env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
+ ifneq ($(PAXCTL_dumped),)
+ $(PAXCTL_dumped) emacs$(EXEEXT)
+ endif
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/generic.nix
new file mode 100644
index 000000000000..0e09b0c20ee0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/generic.nix
@@ -0,0 +1,199 @@
+{
+ version
+ , sha256
+ , versionModifier ? ""
+ , pname ? "emacs"
+ , name ? "emacs-${version}${versionModifier}"
+ , patches ? [ ]
+}:
+{ stdenv, lib, fetchurl, fetchpatch, ncurses, xlibsWrapper, libXaw, libXpm
+, Xaw3d, libXcursor, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
+, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
+, alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
+, jansson, harfbuzz
+, libgccjit, targetPlatform, makeWrapper # native-comp params
+, systemd ? null
+, withX ? !stdenv.isDarwin
+, withNS ? stdenv.isDarwin
+, withGTK2 ? false, gtk2-x11 ? null
+, withGTK3 ? true, gtk3-x11 ? null, gsettings-desktop-schemas ? null
+, withXwidgets ? false, webkitgtk ? null, wrapGAppsHook ? null, glib-networking ? null
+, withCsrc ? true
+, srcRepo ? false, autoreconfHook ? null, texinfo ? null
+, siteStart ? ./site-start.el
+, nativeComp ? false
+, withImageMagick ? lib.versionOlder version "27" && (withX || withNS)
+, toolkit ? (
+ if withGTK2 then "gtk2"
+ else if withGTK3 then "gtk3"
+ else "lucid")
+}:
+
+assert (libXft != null) -> libpng != null; # probably a bug
+assert stdenv.isDarwin -> libXaw != null; # fails to link otherwise
+assert withNS -> !withX;
+assert withNS -> stdenv.isDarwin;
+assert (withGTK2 && !withNS) -> withX;
+assert (withGTK3 && !withNS) -> withX;
+assert withGTK2 -> !withGTK3 && gtk2-x11 != null;
+assert withGTK3 -> !withGTK2 && gtk3-x11 != null;
+assert withXwidgets -> withGTK3 && webkitgtk != null;
+
+
+let
+
+in stdenv.mkDerivation {
+ inherit pname version patches;
+
+ src = fetchurl {
+ url = "mirror://gnu/emacs/${name}.tar.xz";
+ inherit sha256;
+ };
+
+ enableParallelBuilding = true;
+
+ postPatch = lib.concatStringsSep "\n" [
+ (lib.optionalString srcRepo ''
+ rm -fr .git
+ '')
+
+ ''
+ substituteInPlace lisp/international/mule-cmds.el \
+ --replace /usr/share/locale ${gettext}/share/locale
+
+ for makefile_in in $(find . -name Makefile.in -print); do
+ substituteInPlace $makefile_in --replace /bin/pwd pwd
+ done
+ ''
+
+ # Make native compilation work both inside and outside of nix build
+ (lib.optionalString nativeComp (let
+ backendPath = (lib.concatStringsSep " "
+ (builtins.map (x: ''\"-B${x}\"'') [
+ # Paths necessary so the JIT compiler finds its libraries:
+ "${lib.getLib libgccjit}/lib"
+ "${lib.getLib libgccjit}/lib/gcc"
+ "${lib.getLib stdenv.cc.libc}/lib"
+
+ # Executable paths necessary for compilation (ld, as):
+ "${lib.getBin stdenv.cc.cc}/bin"
+ "${lib.getBin stdenv.cc.bintools}/bin"
+ "${lib.getBin stdenv.cc.bintools.bintools}/bin"
+ ]));
+ in ''
+ substituteInPlace lisp/emacs-lisp/comp.el --replace \
+ "(defcustom comp-native-driver-options nil" \
+ "(defcustom comp-native-driver-options '(${backendPath})"
+ ''))
+ ""
+ ];
+
+ CFLAGS = "-DMAC_OS_X_VERSION_MAX_ALLOWED=101200";
+
+ LIBRARY_PATH = if nativeComp then "${lib.getLib stdenv.cc.libc}/lib" else "";
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ]
+ ++ lib.optionals srcRepo [ autoreconfHook texinfo ]
+ ++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook;
+
+ buildInputs =
+ [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext jansson harfbuzz.dev ]
+ ++ lib.optionals stdenv.isLinux [ dbus libselinux systemd ]
+ ++ lib.optionals withX
+ [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff libXft
+ gconf cairo ]
+ ++ lib.optionals (withX || withNS) [ librsvg ]
+ ++ lib.optionals withImageMagick [ imagemagick ]
+ ++ lib.optionals (stdenv.isLinux && withX) [ m17n_lib libotf ]
+ ++ lib.optional (withX && withGTK2) gtk2-x11
+ ++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ]
+ ++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ]
+ ++ lib.optionals withNS [ AppKit GSS ImageIO ]
+ ++ lib.optionals nativeComp [ libgccjit ]
+ ;
+
+ hardeningDisable = [ "format" ];
+
+ configureFlags = [
+ "--disable-build-details" # for a (more) reproducible build
+ "--with-modules"
+ ] ++
+ (lib.optional stdenv.isDarwin
+ (lib.withFeature withNS "ns")) ++
+ (if withNS
+ then [ "--disable-ns-self-contained" ]
+ else if withX
+ then [ "--with-x-toolkit=${toolkit}" "--with-xft" "--with-cairo" ]
+ else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
+ "--with-gif=no" "--with-tiff=no" ])
+ ++ lib.optional withXwidgets "--with-xwidgets"
+ ++ lib.optional nativeComp "--with-nativecomp"
+ ++ lib.optional withImageMagick "--with-imagemagick"
+ ;
+
+ installTargets = [ "tags" "install" ];
+
+ postInstall = ''
+ mkdir -p $out/share/emacs/site-lisp
+ cp ${siteStart} $out/share/emacs/site-lisp/site-start.el
+
+ $out/bin/emacs --batch -f batch-byte-compile $out/share/emacs/site-lisp/site-start.el
+
+ siteVersionDir=`ls $out/share/emacs | grep -v site-lisp | head -n 1`
+
+ rm -rf $out/var
+ rm -rf $siteVersionDir
+ '' + lib.optionalString withCsrc ''
+ for srcdir in src lisp lwlib ; do
+ dstdir=$out/share/emacs/$siteVersionDir/$srcdir
+ mkdir -p $dstdir
+ find $srcdir -name "*.[chm]" -exec cp {} $dstdir \;
+ cp $srcdir/TAGS $dstdir
+ echo '((nil . ((tags-file-name . "TAGS"))))' > $dstdir/.dir-locals.el
+ done
+ '' + lib.optionalString withNS ''
+ mkdir -p $out/Applications
+ mv nextstep/Emacs.app $out/Applications
+ '' + lib.optionalString (nativeComp && withNS) ''
+ ln -snf $out/lib/emacs/*/native-lisp $out/Applications/Emacs.app/Contents/native-lisp
+ '';
+
+ postFixup = lib.concatStringsSep "\n" [
+
+ (lib.optionalString (stdenv.isLinux && withX && toolkit == "lucid") ''
+ patchelf --set-rpath \
+ "$(patchelf --print-rpath "$out/bin/emacs"):${lib.makeLibraryPath [ libXcursor ]}" \
+ "$out/bin/emacs"
+ patchelf --add-needed "libXcursor.so.1" "$out/bin/emacs"
+ '')
+ ];
+
+ passthru = {
+ inherit nativeComp;
+ };
+
+ meta = with stdenv.lib; {
+ description = "The extensible, customizable GNU text editor";
+ homepage = "https://www.gnu.org/software/emacs/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ lovek323 peti jwiegley adisbladis ];
+ platforms = platforms.all;
+
+ longDescription = ''
+ GNU Emacs is an extensible, customizable text editor—and more. At its
+ core is an interpreter for Emacs Lisp, a dialect of the Lisp
+ programming language with extensions to support text editing.
+
+ The features of GNU Emacs include: content-sensitive editing modes,
+ including syntax coloring, for a wide variety of file types including
+ plain text, source code, and HTML; complete built-in documentation,
+ including a tutorial for new users; full Unicode support for nearly all
+ human languages and their scripts; highly customizable, using Emacs
+ Lisp code or a graphical interface; a large number of extensions that
+ add other functionality, including a project planner, mail and news
+ reader, debugger interface, calendar, and more. Many of these
+ extensions are distributed with GNU Emacs; others are available
+ separately.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix
new file mode 100644
index 000000000000..f991fe7ea666
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix
@@ -0,0 +1,120 @@
+{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls, gettext, autoconf, automake, jansson
+, AppKit, Carbon, Cocoa, IOKit, OSAKit, Quartz, QuartzCore, WebKit
+, ImageCaptureCore, GSS, ImageIO # These may be optional
+}:
+
+stdenv.mkDerivation rec {
+ pname = "emacs";
+ version = "27.1";
+
+ emacsName = "emacs-${version}";
+ macportVersion = "8.0";
+ name = "emacs-mac-${version}-${macportVersion}";
+
+ src = fetchurl {
+ url = "mirror://gnu/emacs/${emacsName}.tar.xz";
+ sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
+ };
+
+ macportSrc = fetchurl {
+ url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${emacsName}-mac-${macportVersion}.tar.gz";
+ sha256 = "0rjk82k9qp1g701pfd4f0q2myzvsnp9q8xzphlxwi5yzwbs91kjq";
+ };
+
+ hiresSrc = fetchurl {
+ url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-hires-icons-3.0.tar.gz";
+ sha256 = "0f2wzdw2a3ac581322b2y79rlj3c9f33ddrq9allj97r1si6v5xk";
+ };
+
+ patches = [ ./clean-env.patch ];
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig autoconf automake ];
+
+ buildInputs = [ ncurses libxml2 gnutls texinfo gettext jansson
+ AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
+ ImageCaptureCore GSS ImageIO # may be optional
+ ];
+
+ postUnpack = ''
+ mv $sourceRoot $name
+ tar xzf $macportSrc -C $name --strip-components=1
+ mv $name $sourceRoot
+
+ # extract retina image resources
+ tar xzfv $hiresSrc --strip 1 -C $sourceRoot
+ '';
+
+ postPatch = ''
+ patch -p1 < patch-mac
+ substituteInPlace lisp/international/mule-cmds.el \
+ --replace /usr/share/locale ${gettext}/share/locale
+
+ # use newer emacs icon
+ cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources/Emacs.icns
+
+ # Fix sandbox impurities.
+ substituteInPlace Makefile.in --replace '/bin/pwd' 'pwd'
+ substituteInPlace lib-src/Makefile.in --replace '/bin/pwd' 'pwd'
+ '';
+
+ configureFlags = [
+ "LDFLAGS=-L${ncurses.out}/lib"
+ "--with-xml2=yes"
+ "--with-gnutls=yes"
+ "--with-mac"
+ "--with-modules"
+ "--enable-mac-app=$$out/Applications"
+ ];
+
+ CFLAGS = "-O3";
+ LDFLAGS = "-O3 -L${ncurses.out}/lib";
+
+ postInstall = ''
+ mkdir -p $out/share/emacs/site-lisp/
+ cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
+ '';
+
+ # fails with:
+
+ # Ran 3870 tests, 3759 results as expected, 6 unexpected, 105 skipped
+ # 5 files contained unexpected results:
+ # lisp/url/url-handlers-test.log
+ # lisp/simple-tests.log
+ # lisp/files-x-tests.log
+ # lisp/cedet/srecode-utest-template.log
+ # lisp/net/tramp-tests.log
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "The extensible, customizable text editor";
+ homepage = "https://www.gnu.org/software/emacs/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ jwiegley matthewbauer ];
+ platforms = platforms.darwin;
+
+ longDescription = ''
+ GNU Emacs is an extensible, customizable text editor—and more. At its
+ core is an interpreter for Emacs Lisp, a dialect of the Lisp
+ programming language with extensions to support text editing.
+
+ The features of GNU Emacs include: content-sensitive editing modes,
+ including syntax coloring, for a wide variety of file types including
+ plain text, source code, and HTML; complete built-in documentation,
+ including a tutorial for new users; full Unicode support for nearly all
+ human languages and their scripts; highly customizable, using Emacs
+ Lisp code or a graphical interface; a large number of extensions that
+ add other functionality, including a project planner, mail and news
+ reader, debugger interface, calendar, and more. Many of these
+ extensions are distributed with GNU Emacs; others are available
+ separately.
+
+ This is the "Mac port" addition to GNU Emacs 26. This provides a native
+ GUI support for Mac OS X 10.6 - 10.12. Note that Emacs 23 and later
+ already contain the official GUI support via the NS (Cocoa) port for
+ Mac OS X 10.4 and later. So if it is good enough for you, then you
+ don't need to try this.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/site-start.el b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/site-start.el
new file mode 100644
index 000000000000..2f02d6d1a86d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/site-start.el
@@ -0,0 +1,57 @@
+;; -*- lexical-binding: t; -*-
+(defun nix--profile-paths ()
+ "Return a list of all paths in NIX_PROFILES.
+The list is ordered from more-specific (the user profile) to the
+least specific (the system profile)"
+ (reverse (split-string (or (getenv "NIX_PROFILES") ""))))
+
+;;; Extend `load-path' to search for elisp files in subdirectories of
+;;; all folders in `NIX_PROFILES'. Also search for one level of
+;;; subdirectories in these directories to handle multi-file libraries
+;;; like `mu4e'.'
+(require 'seq)
+(let* ((subdirectory-sites (lambda (site-lisp)
+ (when (file-exists-p site-lisp)
+ (seq-filter (lambda (f) (file-directory-p (file-truename f)))
+ ;; Returns all files in `site-lisp', excluding `.' and `..'
+ (directory-files site-lisp 'full "^\\([^.]\\|\\.[^.]\\|\\.\\..\\)")))))
+ (paths (apply #'append
+ (mapcar (lambda (profile-dir)
+ (let ((site-lisp (concat profile-dir "/share/emacs/site-lisp/")))
+ (cons site-lisp (funcall subdirectory-sites site-lisp))))
+ (nix--profile-paths)))))
+ (setq load-path (append paths load-path)))
+
+
+;;; Make `woman' find the man pages
+(defvar woman-manpath)
+(eval-after-load 'woman
+ '(setq woman-manpath
+ (append (mapcar (lambda (x) (concat x "/share/man/"))
+ (nix--profile-paths))
+ woman-manpath)))
+
+;;; Make tramp work for remote NixOS machines
+(defvar tramp-remote-path)
+(eval-after-load 'tramp-sh
+ ;; TODO: We should also add the other `NIX_PROFILES' to this path.
+ ;; However, these are user-specific, so we would need to discover
+ ;; them dynamically after connecting via `tramp'
+ '(add-to-list 'tramp-remote-path "/run/current-system/sw/bin"))
+
+;;; C source directory
+;;;
+;;; Computes the location of the C source directory from the path of
+;;; the current file:
+;;; from: /nix/store/<hash>-emacs-<version>/share/emacs/site-lisp/site-start.el
+;;; to: /nix/store/<hash>-emacs-<version>/share/emacs/<version>/src/
+(defvar find-function-C-source-directory)
+(let ((emacs
+ (file-name-directory ; .../emacs/
+ (directory-file-name ; .../emacs/site-lisp
+ (file-name-directory load-file-name)))) ; .../emacs/site-lisp/
+ (version
+ (file-name-as-directory
+ emacs-version))
+ (src (file-name-as-directory "src")))
+ (setq find-function-C-source-directory (concat emacs version src)))
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
new file mode 100644
index 000000000000..5d16194fd202
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
@@ -0,0 +1,14 @@
+diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
+index f370abba31..f2806263a9 100644
+--- a/lisp/net/tramp-gvfs.el
++++ b/lisp/net/tramp-gvfs.el
+@@ -164,7 +164,8 @@ tramp-gvfs-enabled
+ (and (featurep 'dbusbind)
+ (tramp-compat-funcall 'dbus-get-unique-name :system)
+ (tramp-compat-funcall 'dbus-get-unique-name :session)
+- (or (tramp-compat-process-running-p "gvfs-fuse-daemon")
++ (or (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
++ (tramp-compat-process-running-p "gvfs-fuse-daemon")
+ (tramp-compat-process-running-p "gvfsd-fuse"))))
+ "Non-nil when GVFS is available.")
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
new file mode 100644
index 000000000000..5af6fcaba8c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
@@ -0,0 +1,12 @@
+diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
+index 34a234c..b5a471c 100644
+--- a/lisp/net/tramp-gvfs.el
++++ b/lisp/net/tramp-gvfs.el
+@@ -122,6 +122,7 @@
+ (tramp-compat-funcall 'dbus-get-unique-name :system)
+ (tramp-compat-funcall 'dbus-get-unique-name :session)
+ (or (tramp-compat-process-running-p "gvfs-fuse-daemon")
++ (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
+ (tramp-compat-process-running-p "gvfsd-fuse"))))
+ "Non-nil when GVFS is available.")
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/featherpad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/featherpad/default.nix
new file mode 100644
index 000000000000..8343472fa70a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/featherpad/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, mkDerivation, pkgconfig, qmake, qttools, qtbase, qtsvg, qtx11extras, fetchFromGitHub }:
+mkDerivation rec {
+ pname = "featherpad";
+ version = "0.10.0";
+
+ src = fetchFromGitHub {
+ owner = "tsujan";
+ repo = "FeatherPad";
+ rev = "V${version}";
+ sha256 = "1wrbs6kni9s3x39cckm9kzpglryxn5vyarilvh9pafbzpc6rc57p";
+ };
+
+ nativeBuildInputs = [ qmake pkgconfig qttools ];
+ buildInputs = [ qtbase qtsvg qtx11extras ];
+
+ meta = with stdenv.lib; {
+ description = "Lightweight Qt5 Plain-Text Editor for Linux";
+ homepage = "https://github.com/tsujan/FeatherPad";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.flosse ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/flpsed/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/flpsed/default.nix
new file mode 100644
index 000000000000..3d6aac7e18e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/flpsed/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, fltk13, ghostscript }:
+
+stdenv.mkDerivation rec {
+ pname = "flpsed";
+ version = "0.7.3";
+
+ src = fetchurl {
+ url = "http://www.flpsed.org/${pname}-${version}.tar.gz";
+ sha256 = "0vngqxanykicabhfdznisv82k5ypkxwg0s93ms9ribvhpm8vf2xp";
+ };
+
+ buildInputs = [ fltk13 ];
+
+ postPatch = ''
+ # replace the execvp call to ghostscript
+ sed -e '/exec_gs/ {n; s|"gs"|"${stdenv.lib.getBin ghostscript}/bin/gs"|}' \
+ -i src/GsWidget.cxx
+ '';
+
+ meta = with stdenv.lib; {
+ description = "WYSIWYG PostScript annotator";
+ homepage = "https://flpsed.org/flpsed.html";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/focuswriter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/focuswriter/default.nix
new file mode 100644
index 000000000000..c30cfcb1fb9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/focuswriter/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, qmake, qttools, hunspell, qtbase, qtmultimedia, mkDerivation }:
+
+mkDerivation rec {
+ pname = "focuswriter";
+ version = "1.7.6";
+
+ src = fetchurl {
+ url = "https://gottcode.org/focuswriter/focuswriter-${version}-src.tar.bz2";
+ sha256 = "0h85f6cs9zbxv118mjfxqfv41j19zkx2xq36mpnlmrlzkjj7dx9l";
+ };
+
+ nativeBuildInputs = [ pkgconfig qmake qttools ];
+ buildInputs = [ hunspell qtbase qtmultimedia ];
+
+ enableParallelBuilding = true;
+
+ qmakeFlags = [ "PREFIX=/" ];
+ installFlags = [ "INSTALL_ROOT=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Simple, distraction-free writing environment";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ madjar ];
+ platforms = platforms.linux;
+ homepage = "https://gottcode.org/focuswriter/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/fte/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/fte/default.nix
new file mode 100644
index 000000000000..f19a264c06a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/fte/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, unzip, perl, libX11, libXpm, gpm, ncurses, slang }:
+
+stdenv.mkDerivation rec {
+ name = "fte-0.50.02";
+
+ buildInputs = [ unzip perl libX11 libXpm gpm ncurses slang ];
+
+ ftesrc = fetchurl {
+ url = "mirror://sourceforge/fte/fte-20110708-src.zip";
+ sha256 = "17j9akr19w19myglw5mljjw2g3i2cwxiqrjaln82h3rz5ma1qcfn";
+ };
+ ftecommon = fetchurl {
+ url = "mirror://sourceforge/fte/fte-20110708-common.zip";
+ sha256 = "1xva4kh0674sj2b9rhf2amlr37yxmsvjkgyj89gpcn0rndw1ahaq";
+ };
+ src = [ ftesrc ftecommon ];
+
+ buildFlags = [ "PREFIX=$(out)" ];
+
+ installFlags = [ "PREFIX=$(out)" "INSTALL_NONROOT=1" ];
+
+ meta = with stdenv.lib; {
+ description = "A free text editor for developers";
+ homepage = "http://fte.sourceforge.net/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.volth ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/geany/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/geany/default.nix
new file mode 100644
index 000000000000..124d4ee0417a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/geany/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, fetchurl
+, gtk3
+, which
+, pkgconfig
+, intltool
+, file
+, libintl
+, hicolor-icon-theme
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "geany";
+ version = "1.37.1";
+
+ outputs = [ "out" "dev" "doc" "man" ];
+
+ src = fetchurl {
+ url = "https://download.geany.org/${pname}-${version}.tar.bz2";
+ sha256 = "060sachn33xpx3a609f09y97qq5ky17gvv686zbvrn618ij7bi8q";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ libintl
+ which
+ file
+ hicolor-icon-theme
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ ];
+
+ doCheck = true;
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Small and lightweight IDE";
+ longDescription = ''
+ Geany is a small and lightweight Integrated Development Environment.
+ It was developed to provide a small and fast IDE, which has only a few dependencies from other packages.
+ Another goal was to be as independent as possible from a special Desktop Environment like KDE or GNOME.
+ Geany only requires the GTK runtime libraries.
+ Some basic features of Geany:
+ - Syntax highlighting
+ - Code folding
+ - Symbol name auto-completion
+ - Construct completion/snippets
+ - Auto-closing of XML and HTML tags
+ - Call tips
+ - Many supported filetypes including C, Java, PHP, HTML, Python, Perl, Pascal (full list)
+ - Symbol lists
+ - Code navigation
+ - Build system to compile and execute your code
+ - Simple project management
+ - Plugin interface
+ '';
+ homepage = "https://www.geany.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ frlan ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/geany/with-vte.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/geany/with-vte.nix
new file mode 100644
index 000000000000..ece5c95f05ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/geany/with-vte.nix
@@ -0,0 +1,24 @@
+{ symlinkJoin
+, makeWrapper
+, geany
+, lndir
+, vte
+}:
+
+symlinkJoin {
+ name = "geany-with-vte-${geany.version}";
+
+ # TODO: add geany-plugins
+ paths = with geany; [ out doc man ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ # need to replace the directory since it is a symlink
+ rm -r $out/bin; mkdir $out/bin
+ makeWrapper ${geany}/bin/geany $out/bin/geany \
+ --prefix LD_LIBRARY_PATH : ${vte}/lib
+ '';
+
+ inherit (geany.meta);
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
new file mode 100644
index 000000000000..8c1b95a1d26e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, pkgconfig, qttools, qtwebengine, hunspell }:
+
+mkDerivation rec {
+ pname = "ghostwriter";
+ version = "1.8.1";
+
+ src = fetchFromGitHub {
+ owner = "wereturtle";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0jc6szfh5sdnafhwsr1xv7cn1fznniq58bix41hb9wlbkvq7wzi6";
+ };
+
+ nativeBuildInputs = [ qmake pkgconfig qttools ];
+
+ buildInputs = [ qtwebengine hunspell ];
+
+ meta = with stdenv.lib; {
+ description = "A cross-platform, aesthetic, distraction-free Markdown editor";
+ homepage = src.meta.homepage;
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ dotlambda ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/glow/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/glow/default.nix
new file mode 100644
index 000000000000..d941c85e2c6f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/glow/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "glow";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "charmbracelet";
+ repo = "glow";
+ rev = "v${version}";
+ sha256 = "1jf9d8zwhvg9pc5g29lwz2r0lc59h1smwb5mjswxlvljpgbj7jwh";
+ };
+
+ vendorSha256 = "1p50qr7hbc8vyifa23z7xr43b4fpmwdzg7hqs503c124kpbpk45z";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=" "-X=main.Version=${version}" ];
+
+ meta = with lib; {
+ description = "Render markdown on the CLI, with pizzazz!";
+ homepage = "https://github.com/charmbracelet/glow";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Br1ght0ne penguwin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
new file mode 100644
index 000000000000..6704702837a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
@@ -0,0 +1,158 @@
+{ stdenv
+, ctags
+, appstream-glib
+, desktop-file-utils
+, docbook_xsl
+, docbook_xml_dtd_43
+, fetchurl
+, flatpak
+, gnome3
+, libgit2-glib
+, gobject-introspection
+, glade
+, gspell
+, gtk-doc
+, gtk3
+, gtksourceview4
+, json-glib
+, jsonrpc-glib
+, libdazzle
+, libpeas
+, libportal
+, libxml2
+, meson
+, ninja
+, ostree
+, pcre
+, pcre2
+, pkgconfig
+, python3
+, sysprof
+, template-glib
+, vala
+, vte
+, webkitgtk
+, wrapGAppsHook
+, dbus
+, xvfb_run
+, glib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-builder";
+ version = "3.38.1";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "06wcyfrwcjyj2vcqyw0z3sy1r4qxpcdpwqq1qmpsaphpz8acycjn";
+ };
+
+ nativeBuildInputs = [
+ appstream-glib
+ desktop-file-utils
+ docbook_xsl
+ docbook_xml_dtd_43
+ gobject-introspection
+ gtk-doc
+ meson
+ ninja
+ pkgconfig
+ python3
+ python3.pkgs.wrapPython
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ ctags
+ flatpak
+ gnome3.devhelp
+ glade
+ libgit2-glib
+ libpeas
+ libportal
+ vte
+ gspell
+ gtk3
+ gtksourceview4
+ json-glib
+ jsonrpc-glib
+ libdazzle
+ libxml2
+ ostree
+ pcre
+ pcre2
+ python3
+ sysprof
+ template-glib
+ vala
+ webkitgtk
+ ];
+
+ checkInputs = [
+ dbus
+ xvfb_run
+ ];
+
+ outputs = [ "out" "devdoc" ];
+
+ prePatch = ''
+ patchShebangs build-aux/meson/post_install.py
+ '';
+
+ mesonFlags = [
+ "-Dpython_libprefix=${python3.libPrefix}"
+ "-Ddocs=true"
+
+ # Making the build system correctly detect clang header and library paths
+ # is difficult. Somebody should look into fixing this.
+ "-Dplugin_clang=false"
+
+ # Do not try to check if appstream images exist
+ "-Dnetwork_tests=false"
+ ];
+
+ # Some tests fail due to being unable to find the Vte typelib, and I don't
+ # understand why. Somebody should look into fixing this.
+ doCheck = true;
+
+ checkPhase = ''
+ export NO_AT_BRIDGE=1
+ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+ meson test --print-errorlogs
+ '';
+
+ pythonPath = with python3.pkgs; requiredPythonModules [ pygobject3 ];
+
+ preFixup = ''
+ buildPythonPath "$out $pythonPath"
+ gappsWrapperArgs+=(
+ --prefix PYTHONPATH : "$program_PYTHONPATH"
+ )
+
+ # Ensure that all plugins get their interpreter paths fixed up.
+ find $out/lib -name \*.py -type f -print0 | while read -d "" f; do
+ chmod a+x "$f"
+ done
+ '';
+
+ passthru.updateScript = gnome3.updateScript { packageName = pname; };
+
+ meta = with stdenv.lib; {
+ description = "An IDE for writing GNOME-based software";
+ longDescription = ''
+ Global search, auto-completion, source code map, documentation
+ reference, and other features expected in an IDE, but with a focus
+ on streamlining GNOME-based development projects.
+
+ This package does not pull in the dependencies needed for every
+ plugin. If you find that a plugin you wish to use doesn't work, we
+ currently recommend running gnome-builder inside a nix-shell with
+ appropriate dependencies loaded.
+ '';
+ homepage = "https://wiki.gnome.org/Apps/Builder";
+ license = licenses.gpl3Plus;
+ maintainers = teams.gnome.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix
new file mode 100644
index 000000000000..ffdeb21de7f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, wrapGAppsHook, gsettings-desktop-schemas, gspell, gtksourceview4, libgee
+, tepl, amtk, gnome3, glib, pkgconfig, intltool, itstool, libxml2 }:
+let
+ version = "3.38.0";
+ pname = "gnome-latex";
+in stdenv.mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0xqd49pgi82dygqnxj08i1v22b0vwwhx3zvdinhrx4jny339yam8";
+ };
+
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+ configureFlags = ["--disable-dconf-migration"];
+
+ nativeBuildInputs = [
+ pkgconfig
+ wrapGAppsHook
+ itstool
+ intltool
+ ];
+
+ buildInputs = [
+ amtk
+ gnome3.adwaita-icon-theme
+ glib
+ gsettings-desktop-schemas
+ gspell
+ gtksourceview4
+ libgee
+ libxml2
+ tepl
+ ];
+
+ doCheck = true;
+
+ passthru.updateScript = gnome3.updateScript { packageName = pname; };
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/Apps/GNOME-LaTeX";
+ description = "A LaTeX editor for the GNOME desktop";
+ maintainers = [ maintainers.manveru ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/gobby/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/gobby/default.nix
new file mode 100644
index 000000000000..e3d039e42232
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/gobby/default.nix
@@ -0,0 +1,28 @@
+{ avahiSupport ? false # build support for Avahi in libinfinity
+, stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, wrapGAppsHook, yelp-tools
+, gtkmm3, gsasl, gtksourceview3, libxmlxx, libinfinity, intltool, itstool, gnome3 }:
+
+let
+ libinf = libinfinity.override { gtkWidgets = true; inherit avahiSupport; };
+in stdenv.mkDerivation {
+ name = "gobby-unstable-2018-04-03";
+ src = fetchFromGitHub {
+ owner = "gobby";
+ repo = "gobby";
+ rev = "ea4df27c9b6b885434797b0071ce198b23f9f63b";
+ sha256 = "0q7lq64yn16lxvj4jphs8y9194h0xppj8k7y9x8b276krraak2az";
+ };
+
+ nativeBuildInputs = [ autoconf automake pkgconfig intltool itstool yelp-tools wrapGAppsHook ];
+ buildInputs = [ gtkmm3 gsasl gtksourceview3 libxmlxx libinf ];
+
+ preConfigure = "./autogen.sh";
+
+ meta = with stdenv.lib; {
+ homepage = "http://gobby.0x539.de/";
+ description = "A GTK-based collaborative editor supporting multiple documents in one session and a multi-user chat";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ maintainers.phreedom ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/gophernotes/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
new file mode 100644
index 000000000000..e48ee4dd13c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+ pname = "gophernotes";
+ version = "0.7.1";
+
+ src = fetchFromGitHub {
+ owner = "gopherdata";
+ repo = "gophernotes";
+ rev = "v${version}";
+ sha256 = "0hs92bdrsjqafdkhg2fk3z16h307i32mvbm9f6bb80bgsciysh27";
+ };
+
+ vendorSha256 = "1ylqf1sx0h2kixnq9f3prn3sha43q3ybd5ay57yy5z79qr8zqvxs";
+
+ meta = with lib; {
+ description = "Go kernel for Jupyter notebooks";
+ homepage = "https://github.com/gopherdata/gophernotes";
+ license = licenses.mit;
+ maintainers = [ maintainers.costrouc ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/greenfoot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/greenfoot/default.nix
new file mode 100644
index 000000000000..8205d52b43a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/greenfoot/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, makeWrapper, jdk }:
+
+stdenv.mkDerivation rec {
+ pname = "greenfoot";
+ version = "3.6.1";
+ src = fetchurl {
+ # We use the deb here. First instinct might be to go for the "generic" JAR
+ # download, but that is actually a graphical installer that is much harder
+ # to unpack than the deb.
+ url = "https://www.greenfoot.org/download/files/Greenfoot-linux-${builtins.replaceStrings ["."] [""] version}.deb";
+ sha256 = "112h6plpclj8kbv093m4pcczljhpd8d47d7a2am1yfgbyckx6hf0";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ unpackPhase = ''
+ ar xf $src
+ tar xf data.tar.xz
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r usr/* $out
+ rm -r $out/share/greenfoot/jdk
+ rm -r $out/share/greenfoot/javafx
+
+ makeWrapper ${jdk}/bin/java $out/bin/greenfoot \
+ --add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp \"$out/share/greenfoot/bluej.jar\" bluej.Boot -greenfoot=true -bluej.compiler.showunchecked=false -greenfoot.scenarios=$out/share/doc/Greenfoot/scenarios -greenfoot.url.javadoc=file://$out/share/doc/Greenfoot/API"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple integrated development environment for Java";
+ homepage = "https://www.greenfoot.org/";
+ license = licenses.gpl2ClasspathPlus;
+ maintainers = [ maintainers.charvp ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/hecate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/hecate/default.nix
new file mode 100644
index 000000000000..de57fb092157
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/hecate/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ version = "0.0.1";
+ pname = "hecate";
+
+ src = fetchFromGitHub {
+ owner = "evanmiller";
+ repo = "hecate";
+ rev = "v${version}";
+ sha256 = "0ymirsd06z3qa9wi59k696mg8f4mhscw8gc5c5zkd0n3n8s0k0z8";
+ };
+
+ goPackagePath = "hecate";
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "terminal hex editor";
+ longDescription = "The Hex Editor From Hell!";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ ramkromberg ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/hecate/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/hecate/deps.nix
new file mode 100644
index 000000000000..c9d94934a444
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/hecate/deps.nix
@@ -0,0 +1,29 @@
+[
+ {
+ goPackagePath = "github.com/nsf/termbox-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/nsf/termbox-go";
+ rev = "b6acae516ace002cb8105a89024544a1480655a5";
+ sha256 = "0zf95qdd5bif9rw03hqk87x7d905p373bvsj0bl4gi16spqjbdil";
+ };
+ }
+ {
+ goPackagePath = "github.com/edsrzf/mmap-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/edsrzf/mmap-go";
+ rev = "935e0e8a636ca4ba70b713f3e38a19e1b77739e8";
+ sha256 = "11a63wrjwfnchjhwqjp6yd5j0370ysppjgv31l5bmvvwps7whq9d";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "737072b4e32b7a5018b4a7125da8d12de90e8045";
+ sha256 = "09ni8bmj6p2b774bdh6mfcxl03bh5sqk860z03xpb6hv6yfxqkjm";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/heme/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/heme/default.nix
new file mode 100644
index 000000000000..7d1830c842b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/heme/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "heme";
+ version = "0.4.2";
+ src = fetchurl {
+ url = "mirror://sourceforge/project/heme/heme/heme-${version}/heme-${version}.tar.gz";
+ sha256 = "0wsrnj5mrlazgqs4252k30aw8m86qw0z9dmrsli9zdxl7j4cg99v";
+ };
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace "/usr/local" "$out" \
+ --replace "CFLAGS = " "CFLAGS = -I${ncurses.dev}/include " \
+ --replace "LDFLAGS = " "LDFLAGS = -L${ncurses.out}/lib " \
+ --replace "-lcurses" "-lncurses"
+ '';
+ buildInputs = [ ncurses ];
+ preBuild = ''
+ mkdir -p $out/bin
+ mkdir -p $out/man/man1
+ '';
+ meta = with lib; {
+ description = "Portable and fast console hex editor for unix operating systems";
+ homepage = "http://heme.sourceforge.net/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/hexcurse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/hexcurse/default.nix
new file mode 100644
index 000000000000..a1b90b83d589
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/hexcurse/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "hexcurse";
+ version = "1.60.0";
+
+ src = fetchFromGitHub {
+ owner = "LonnyGomes";
+ repo = "hexcurse";
+ rev = "v${version}";
+ sha256 = "17ckkxfzbqvvfdnh10if4aqdcq98q3vl6dn1v6f4lhr4ifnyjdlk";
+ };
+ buildInputs = [ ncurses ];
+ NIX_CFLAGS_COMPILE = [ "-Wno-error=stringop-overflow" "-Wno-error=stringop-truncation" ];
+ patches = [
+ # gcc7 compat
+ (fetchpatch {
+ url = "https://github.com/LonnyGomes/hexcurse/commit/d808cb7067d1df067f8b707fabbfaf9f8931484c.patch";
+ sha256 = "0h8345blmc401c6bivf0imn4cwii67264yrzxg821r46wrnfvyi2";
+ })
+ # gcc7 compat
+ (fetchpatch {
+ url = "https://github.com/LonnyGomes/hexcurse/commit/716b5d58ac859cc240b8ccb9cbd79ace3e0593c1.patch";
+ sha256 = "0v6gbp6pjpmnzswlf6d97aywiy015g3kcmfrrkspsbb7lh1y3nix";
+ })
+ ];
+
+ meta = with lib; {
+ description = "ncurses-based console hexeditor written in C";
+ homepage = "https://github.com/LonnyGomes/hexcurse";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/hexdino/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/hexdino/default.nix
new file mode 100644
index 000000000000..9722854b9804
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/hexdino/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, rustPlatform, ncurses }:
+
+rustPlatform.buildRustPackage {
+ pname = "hexdino";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "Luz";
+ repo = "hexdino";
+ rev = "de5b5d7042129f57e0ab36416a06476126bce389";
+ sha256 = "11mz07735gxqfamjcjjmxya6swlvr1p77sgd377zjcmd6z54gwyf";
+ };
+
+ cargoSha256 = "06ghcd4j751mdkzwb88nqwk8la4zdb137y0iqrkpykkfx0as43x3";
+
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "A hex editor with vim like keybindings written in Rust";
+ homepage = "https://github.com/Luz/hexdino";
+ license = licenses.mit;
+ maintainers = [ maintainers.luz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/hexedit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/hexedit/default.nix
new file mode 100644
index 000000000000..916dd4a15948
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/hexedit/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "hexedit";
+ version = "1.2.13";
+
+ src = fetchurl {
+ url = "http://rigaux.org/${pname}-${version}.src.tgz";
+ sha256 = "1mwdp1ikk64cqmagnrrps5jkn3li3n47maiqh2qc1xbp1ains4ka";
+ };
+
+ buildInputs = [ ncurses ];
+
+ meta = {
+ description = "View and edit files in hexadecimal or in ASCII";
+ homepage = "http://prigaux.chez.com/hexedit.html";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/howl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/howl/default.nix
new file mode 100644
index 000000000000..975016d55417
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/howl/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk3, librsvg }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "howl";
+ version = "0.6";
+
+ # Use the release tarball containing pre-downloaded dependencies sources
+ src = fetchurl {
+ url = "https://github.com/howl-editor/howl/releases/download/${version}/howl-${version}.tgz";
+ sha256 = "1qc58l3rkr37cj6vhf8c7bnwbz93nscyraz7jxqwjq6k4gj0cjw3";
+ };
+
+ sourceRoot = "./howl-${version}/src";
+
+ # The Makefile uses "/usr/local" if not explicitly overridden
+ installFlags = [ "PREFIX=$(out)" ];
+
+ nativeBuildInputs = [ makeWrapper pkgconfig ];
+ buildInputs = [ gtk3 librsvg ];
+ enableParallelBuilding = true;
+
+ # Required for the program to properly load its SVG assets
+ postInstall = ''
+ wrapProgram $out/bin/howl \
+ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
+ '';
+
+ meta = {
+ homepage = "https://howl.io/";
+ description = "A general purpose, fast and lightweight editor with a keyboard-centric minimalistic user interface";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pacien ];
+
+ # LuaJIT and Howl builds fail for x86_64-darwin and aarch64-linux respectively
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/ht/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/ht/default.nix
new file mode 100644
index 000000000000..096b69a5e82a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/ht/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "ht";
+ version = "2.1.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/hte/ht-source/ht-${version}.tar.bz2";
+ sha256 = "0w2xnw3z9ws9qrdpb80q55h6ynhh3aziixcfn45x91bzrbifix9i";
+ };
+
+ buildInputs = [
+ ncurses
+ ];
+
+ hardeningDisable = [ "format" ];
+
+ patches = [ ./gcc7.patch ];
+
+ meta = with lib; {
+ description = "File editor/viewer/analyzer for executables";
+ homepage = "http://hte.sourceforge.net";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/ht/gcc7.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/ht/gcc7.patch
new file mode 100644
index 000000000000..a90deaac698d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/ht/gcc7.patch
@@ -0,0 +1,11 @@
+--- ht-2.1.0.org/htapp.cc 2014-09-14 16:55:26.000000000 +0100
++++ ht-2.1.0/htapp.cc 2018-03-10 12:48:07.158533800 +0000
+@@ -3023,7 +3023,7 @@
+ {
+ uint a = 2;
+ uint b = u/a;
+- while (abs(a - b) > 1) {
++ while (abs((int)(a - b)) > 1) {
+ a = (a+b)/2;
+ b = u/a;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jedit/build.xml.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/jedit/build.xml.patch
new file mode 100644
index 000000000000..2f630f18ab76
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jedit/build.xml.patch
@@ -0,0 +1,257 @@
+--- a/build.xml 2015-02-04 08:47:37.000000000 +0100
++++ b/build.xml 2015-02-17 14:06:42.455283148 +0100
+@@ -43,16 +43,6 @@
+ <property name="textAreaPackage"
+ location="../textarea"/>
+
+- <!-- Ivy Properties -->
+- <property name="config.ivy.version"
+- value="2.2.0"/>
+- <property name="ivy.jar.dir"
+- location="${lib.dir}/ivy"/>
+- <property name="ivy.jar.filename"
+- value="ivy-${config.ivy.version}.jar"/>
+- <property name="ivy.jar.file"
+- location="${ivy.jar.dir}/${ivy.jar.filename}"/>
+-
+ <!-- Miscellaneous -->
+ <property name="jar.filename"
+ value="${ant.project.name}.jar"/>
+@@ -90,51 +80,8 @@
+ value="true"/>
+ </target>
+
+- <target name="check-ivy"
+- depends="init">
+- <available property="ivy.jar.present"
+- file="${ivy.jar.file}"
+- type="file"/>
+- </target>
+-
+- <target name="download-ivy"
+- depends="init,check-ivy"
+- unless="ivy.jar.present">
+- <mkdir dir="${ivy.jar.dir}"/>
+- <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${config.ivy.version}/ivy-${config.ivy.version}.jar"
+- dest="${ivy.jar.file}"
+- usetimestamp="true"/>
+- </target>
+-
+- <target name="init-ivy"
+- depends="init,download-ivy"
+- unless="ivy.done">
+- <property name="ivy.retrieve.pattern"
+- value="${lib.dir}/[conf]/[artifact](-[classifier]).[ext]"/>
+- <taskdef resource="org/apache/ivy/ant/antlib.xml"
+- classpath="${ivy.jar.file}"
+- loaderref="ivy.loader"
+- uri="antlib:org.apache.ivy.ant"/>
+- <ivy:settings file="ivysettings.xml"/>
+- </target>
+-
+- <target name="retrieve"
+- description="retrieve the dependencies"
+- depends="init,init-ivy"
+- unless="ivy.done">
+- <ivy:retrieve sync="true"/>
+- <ivy:retrieve pattern="${lib.dir}/ivy/[artifact]-[revision].[ext]"
+- organisation="org.apache.ivy"
+- module="ivy"
+- revision="${config.ivy.version}"
+- conf="default"
+- inline="true"/>
+- <property name="ivy.done"
+- value="true"/>
+- </target>
+-
+ <target name="setup"
+- depends="init,retrieve">
++ depends="init">
+ <taskdef resource="net/sf/antcontrib/antlib.xml"
+ uri="antlib:net.sf.antcontrib">
+ <classpath>
+@@ -239,37 +186,6 @@
+ </javac>
+ </target>
+
+- <target name="compile-test"
+- depends="init,retrieve,compile">
+- <mkdir dir="${classes.dir}/test"/>
+- <depend srcDir="${basedir}/test"
+- destDir="${classes.dir}/test"
+- cache="${classes.dir}"/>
+- <dependset>
+- <srcfilelist files="build.xml"/>
+- <srcfilelist files="ivy.xml"/>
+- <targetfileset dir="${classes.dir}/test"/>
+- </dependset>
+- <javac srcdir="test"
+- destdir="${classes.dir}/test"
+- debug="true"
+- debuglevel="${config.build.debuglevel}"
+- nowarn="${config.build.nowarn}"
+- deprecation="${config.build.deprecation}"
+- source="${target.java.version}"
+- target="${target.java.version}"
+- compiler="modern"
+- encoding="UTF-8"
+- includeAntRuntime="false">
+- <classpath id="classpath.test">
+- <fileset dir="${lib.dir}/test"
+- includes="*.jar"/>
+- <pathelement location="${classes.dir}/core"/>
+- </classpath>
+- <compilerarg line="${config.build.compilerarg}"/>
+- </javac>
+- </target>
+-
+ <target name="prepare-textArea"
+ depends="init">
+ <delete includeemptydirs="true"
+@@ -423,33 +339,8 @@
+ </javac>
+ </target>
+
+- <target name="test"
+- depends="init,retrieve,compile,compile-test"
+- description="run unit tests"
+- unless="skip.tests">
+- <delete dir="${build.dir}/test/raw-reports"/>
+- <mkdir dir="${build.dir}/test/raw-reports"/>
+- <junit printsummary="true"
+- failureproperty="tests.failed"
+- enabletestlistenerevents="true">
+- <classpath refid="classpath.test"/>
+- <classpath location="${classes.dir}/test"/>
+- <formatter type="xml"/>
+- <batchtest todir="${build.dir}/test/raw-reports">
+- <fileset dir="test"/>
+- </batchtest>
+- </junit>
+- <mkdir dir="${build.dir}/test/merged-reports"/>
+- <junitreport todir="${build.dir}/test/merged-reports">
+- <fileset dir="${build.dir}/test/raw-reports"/>
+- <report todir="${build.dir}/test/reports"/>
+- </junitreport>
+- <fail message="Unit test(s) failed! See reports at ${build.dir}/test/reports/index.html"
+- if="tests.failed"/>
+- </target>
+-
+ <target name="build"
+- depends="init,retrieve,setup,compile"
++ depends="init,setup,compile"
+ description="build the jEdit JAR-file with full debug-information">
+ <mkdir dir="${jar.location}"/>
+ <jar destfile="${jar.location}/${jar.filename}"
+@@ -504,11 +395,10 @@
+ </copy>
+ </contrib:then>
+ </contrib:if>
+- <antcall target="test" />
+ </target>
+
+ <target name="build-exe-launcher"
+- depends="init,retrieve,setup,filter-package-files"
++ depends="init,setup,filter-package-files"
+ description="build the EXE launcher">
+ <contrib:if>
+ <os family="windows"/>
+@@ -622,7 +512,7 @@
+ </target>
+
+ <target name="unpack-docbook-xsl"
+- depends="init,retrieve">
++ depends="init">
+ <unzip src="${lib.dir}/docbook/docbook-xsl-resources.zip"
+ dest="${build.dir}/docbook-xsl/"/>
+ </target>
+@@ -668,7 +558,7 @@
+ </presetdef>
+
+ <target name="generate-doc-faq"
+- depends="init,retrieve,setup,unpack-docbook-xsl">
++ depends="init,setup,unpack-docbook-xsl">
+ <dependset.html>
+ <srcfileset dir="doc/FAQ"/>
+ <targetfileset dir="${jar.location}/doc/FAQ"/>
+@@ -692,7 +582,7 @@
+ </target>
+
+ <target name="generate-doc-news"
+- depends="init,retrieve,setup,unpack-docbook-xsl">
++ depends="init,setup,unpack-docbook-xsl">
+ <dependset.html>
+ <srcfileset dir="doc/whatsnew"/>
+ <targetfileset dir="${jar.location}/doc/whatsnew"/>
+@@ -716,7 +606,7 @@
+ </target>
+
+ <target name="generate-doc-users-guide"
+- depends="init,retrieve,setup,unpack-docbook-xsl">
++ depends="init,setup,unpack-docbook-xsl">
+ <dependset.html>
+ <srcfileset dir="doc/users-guide"/>
+ <targetfileset dir="${jar.location}/doc/users-guide"/>
+@@ -851,7 +741,7 @@
+ </target>
+
+ <target name="generate-pdf-users-guide"
+- depends="init,retrieve,setup,unpack-docbook-xsl">
++ depends="init,setup,unpack-docbook-xsl">
+ <fail message="Please set the property &quot;paper.type&quot;"
+ unless="paper.type"/>
+ <contrib:switch value="${paper.type}">
+@@ -1154,7 +1044,7 @@
+ </target>
+
+ <target name="compile-jarbundler"
+- depends="init,retrieve">
++ depends="init">
+ <mkdir dir="${classes.dir}/jarbundler"/>
+ <depend srcDir="${basedir}"
+ destDir="${classes.dir}/jarbundler"
+@@ -1180,7 +1070,7 @@
+ </target>
+
+ <target name="dist-mac-finish"
+- depends="init,retrieve,setup"
++ depends="init,setup"
+ description="finish building the Mac OS X disk image (DMG-file) on Mac OS X">
+ <fail message="The disk image (DMG-file) for easy distribution on Mac OS X can only be built on Mac OS X currently">
+ <condition>
+@@ -1295,7 +1185,7 @@
+ </target>
+
+ <target name="dist-mac"
+- depends="init,retrieve,setup,prepare-dist-files"
++ depends="init,setup,prepare-dist-files"
+ description="build the Mac OS X disk image (DMG-file)">
+ <antcall target="compile-jarbundler">
+ <param name="config.build.debuglevel"
+@@ -1411,7 +1301,7 @@
+ </target>
+
+ <target name="prepare-dist-files"
+- depends="init,retrieve,setup">
++ depends="init,setup">
+ <antcall target="build">
+ <param name="config.build.debuglevel"
+ value="lines,source"/>
+@@ -1592,7 +1482,7 @@
+ </target>
+
+ <target name="dist-deb"
+- depends="init,retrieve,setup,prepare-dist-files"
++ depends="init,setup,prepare-dist-files"
+ description="build the DEB Package">
+ <antcall target="compile-ar">
+ <param name="config.build.debuglevel"
+@@ -1838,7 +1728,7 @@
+ </target>
+
+ <target name="dist-sign-deb-Release"
+- depends="init,retrieve,setup"
++ depends="init,setup"
+ description="sign the DEB Release file">
+ <contrib:if>
+ <not>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jedit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/jedit/default.nix
new file mode 100644
index 000000000000..18fe236983ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jedit/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, ant, jdk, commonsBsf, commonsLogging, bsh }:
+
+let
+ version = "5.2.0";
+ bcpg = fetchurl {
+ url = "mirror://maven/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar";
+ sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d";
+ };
+ jsr305 = fetchurl {
+ url = "mirror://maven/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar";
+ sha256 = "0s74pv8qjc42c7q8nbc0c3b1hgx0bmk3b8vbk1z80p4bbgx56zqy";
+ };
+in
+
+stdenv.mkDerivation {
+ pname = "jedit";
+ inherit version;
+ src = fetchurl {
+ url = "mirror://sourceforge/jedit/jedit${version}source.tar.bz2";
+ sha256 = "03wmbh90rl5lsc35d7jwcp9j5qyyzq1nccxf4fal8bmnx8n4si0x";
+ };
+
+ buildInputs = [ ant jdk commonsBsf commonsLogging ];
+
+ # This patch removes from the build process:
+ # - the automatic download of dependencies (see configurePhase);
+ # - the tests
+ patches = [ ./build.xml.patch ];
+
+ configurePhase = ''
+ mkdir -p lib/ant-contrib/ lib/scripting lib/compile lib/default-plugins
+ cp ${ant}/lib/ant/lib/ant-contrib-*.jar lib/ant-contrib/
+ cp ${bsh} ${bcpg} lib/scripting/
+ cp ${jsr305} lib/compile/
+ '';
+
+ buildPhase = "ant build";
+
+ installPhase = ''
+ mkdir -p $out/share/jEdit
+ cp -r build/jedit.jar doc icons keymaps macros modes startup $out/share/jEdit
+
+ sed -i "s|Icon=.*|Icon=$out/share/jEdit/icons/jedit-icon48.png|g" package-files/linux/deb/jedit.desktop
+ mkdir -p $out/share/applications
+ mv package-files/linux/deb/jedit.desktop $out/share/applications/jedit.desktop
+
+ # specify the correct JAVA_HOME
+ sed -i '1a JAVA_HOME=${jdk}' package-files/linux/jedit
+ sed -i "s|/usr/share/jEdit/@jar.filename@|$out/share/jEdit/jedit.jar|g" package-files/linux/jedit
+ mkdir -p $out/bin
+ cp package-files/linux/jedit $out/bin/jedit
+ chmod +x $out/bin/jedit
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Mature programmer's text editor (Java based)";
+ homepage = "http://www.jedit.org";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/common.nix
new file mode 100644
index 000000000000..07776bebe425
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/common.nix
@@ -0,0 +1,82 @@
+{ stdenv, lib, makeDesktopItem, makeWrapper, patchelf
+, coreutils, gnugrep, which, git, unzip, libsecret, libnotify
+}:
+
+{ name, product, version, src, wmClass, jdk, meta }:
+
+with stdenv.lib;
+
+let loName = toLower product;
+ hiName = toUpper product;
+ execName = concatStringsSep "-" (init (splitString "-" name));
+in
+
+with stdenv; lib.makeOverridable mkDerivation rec {
+ inherit name src meta;
+ desktopItem = makeDesktopItem {
+ name = execName;
+ exec = execName;
+ comment = lib.replaceChars ["\n"] [" "] meta.longDescription;
+ desktopName = product;
+ genericName = meta.description;
+ categories = "Development;";
+ icon = execName;
+ extraEntries = ''
+ StartupWMClass=${wmClass}
+ '';
+ };
+
+ nativeBuildInputs = [ makeWrapper patchelf unzip ];
+
+ patchPhase = lib.optionalString (!stdenv.isDarwin) ''
+ get_file_size() {
+ local fname="$1"
+ echo $(ls -l $fname | cut -d ' ' -f5)
+ }
+
+ munge_size_hack() {
+ local fname="$1"
+ local size="$2"
+ strip $fname
+ truncate --size=$size $fname
+ }
+
+ interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
+ if [ "${stdenv.hostPlatform.system}" == "x86_64-linux" ]; then
+ target_size=$(get_file_size bin/fsnotifier64)
+ patchelf --set-interpreter "$interpreter" bin/fsnotifier64
+ munge_size_hack bin/fsnotifier64 $target_size
+ else
+ target_size=$(get_file_size bin/fsnotifier)
+ patchelf --set-interpreter "$interpreter" bin/fsnotifier
+ munge_size_hack bin/fsnotifier $target_size
+ fi
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{bin,$name,share/pixmaps,libexec/${name}}
+ cp -a . $out/$name
+ ln -s $out/$name/bin/${loName}.png $out/share/pixmaps/${execName}.png
+ mv bin/fsnotifier* $out/libexec/${name}/.
+
+ jdk=${jdk.home}
+ item=${desktopItem}
+
+ makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \
+ --prefix PATH : "$out/libexec/${name}:${lib.optionalString (stdenv.isDarwin) "${jdk}/jdk/Contents/Home/bin:"}${stdenv.lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
+ # Some internals want libstdc++.so.6
+ stdenv.cc.cc.lib libsecret
+ libnotify
+ ]}" \
+ --set JDK_HOME "$jdk" \
+ --set ${hiName}_JDK "$jdk" \
+ --set ANDROID_JAVA_HOME "$jdk" \
+ --set JAVA_HOME "$jdk"
+
+ ln -s "$item/share/applications" $out/share
+ '';
+
+} // stdenv.lib.optionalAttrs (!(meta.license.free or true)) {
+ preferLocalBuild = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
new file mode 100644
index 000000000000..78e6ad30b711
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
@@ -0,0 +1,425 @@
+{ lib, stdenv, callPackage, fetchurl
+, python
+, jdk, cmake, libxml2, zlib, python3, ncurses5
+, dotnet-sdk_3
+}:
+
+with stdenv.lib;
+
+let
+ mkJetBrainsProduct = callPackage ./common.nix { };
+ # Sorted alphabetically
+
+ buildClion = { name, version, src, license, description, wmClass, ... }:
+ lib.overrideDerivation (mkJetBrainsProduct {
+ inherit name version src wmClass jdk;
+ product = "CLion";
+ meta = with stdenv.lib; {
+ homepage = "https://www.jetbrains.com/clion/";
+ inherit description license;
+ longDescription = ''
+ Enhancing productivity for every C and C++
+ developer on Linux, macOS and Windows.
+ '';
+ maintainers = with maintainers; [ edwtjo mic92 ];
+ platforms = platforms.linux;
+ };
+ }) (attrs: {
+ postFixup = (attrs.postFixup or "") + optionalString (stdenv.isLinux) ''
+ (
+ cd $out/clion-${version}
+ # bundled cmake does not find libc
+ rm -rf bin/cmake/linux
+ ln -s ${cmake} bin/cmake/linux
+
+ lldbLibPath=$out/clion-${version}/bin/lldb/linux/lib
+ interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
+ ln -s ${ncurses5.out}/lib/libtinfo.so.5 $lldbLibPath/libtinfo.so.5
+
+ patchelf --set-interpreter $interp \
+ --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib ]}:$lldbLibPath" \
+ bin/lldb/linux/bin/lldb-server
+
+ for i in LLDBFrontend lldb lldb-argdumper; do
+ patchelf --set-interpreter $interp \
+ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \
+ "bin/lldb/linux/bin/$i"
+ done
+
+ patchelf \
+ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \
+ bin/lldb/linux/lib/python3.*/lib-dynload/zlib.cpython-*m-x86_64-linux-gnu.so
+
+ patchelf \
+ --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib python3 ]}:$lldbLibPath" \
+ bin/lldb/linux/lib/liblldb.so
+
+ gdbLibPath=$out/clion-${version}/bin/gdb/linux/lib
+ patchelf \
+ --set-rpath "$gdbLibPath" \
+ bin/gdb/linux/lib/python3.*/lib-dynload/zlib.cpython-*m-x86_64-linux-gnu.so
+ patchelf --set-interpreter $interp \
+ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}:$gdbLibPath" \
+ bin/gdb/linux/bin/gdb
+ patchelf --set-interpreter $interp \
+ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$gdbLibPath" \
+ bin/gdb/linux/bin/gdbserver
+
+ patchelf --set-interpreter $interp \
+ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}" \
+ bin/clang/linux/clangd
+ patchelf --set-interpreter $interp \
+ --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}" \
+ bin/clang/linux/clang-tidy
+
+ wrapProgram $out/bin/clion \
+ --set CL_JDK "${jdk}"
+ )
+ '';
+ });
+
+ buildDataGrip = { name, version, src, license, description, wmClass, ... }:
+ (mkJetBrainsProduct {
+ inherit name version src wmClass jdk;
+ product = "DataGrip";
+ meta = with stdenv.lib; {
+ homepage = "https://www.jetbrains.com/datagrip/";
+ inherit description license;
+ longDescription = ''
+ DataGrip is a new IDE from JetBrains built for database admins.
+ It allows you to quickly migrate and refactor relational databases,
+ construct efficient, statically checked SQL queries and much more.
+ '';
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
+ };
+ });
+
+ buildGoland = { name, version, src, license, description, wmClass, ... }:
+ lib.overrideDerivation (mkJetBrainsProduct {
+ inherit name version src wmClass jdk;
+ product = "Goland";
+ meta = with stdenv.lib; {
+ homepage = "https://www.jetbrains.com/go/";
+ inherit description license;
+ longDescription = ''
+ Goland is the codename for a new commercial IDE by JetBrains
+ aimed at providing an ergonomic environment for Go development.
+ The new IDE extends the IntelliJ platform with the coding assistance
+ and tool integrations specific for the Go language
+ '';
+ maintainers = [ maintainers.miltador ];
+ platforms = platforms.linux;
+ };
+ }) (attrs: {
+ postFixup = (attrs.postFixup or "") + ''
+ interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
+ patchelf --set-interpreter $interp $out/goland*/plugins/go/lib/dlv/linux/dlv
+
+ chmod +x $out/goland*/plugins/go/lib/dlv/linux/dlv
+ '';
+ });
+
+ buildIdea = { name, version, src, license, description, wmClass, ... }:
+ (mkJetBrainsProduct {
+ inherit name version src wmClass jdk;
+ product = "IDEA";
+ meta = with stdenv.lib; {
+ homepage = "https://www.jetbrains.com/idea/";
+ inherit description license;
+ longDescription = ''
+ IDE for Java SE, Groovy & Scala development Powerful
+ environment for building Google Android apps Integration
+ with JUnit, TestNG, popular SCMs, Ant & Maven. Also known
+ as IntelliJ.
+ '';
+ maintainers = with maintainers; [ edwtjo ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+ });
+
+ buildMps = { name, version, src, license, description, wmClass, ... }:
+ (mkJetBrainsProduct rec {
+ inherit name version src wmClass jdk;
+ product = "MPS";
+ meta = with stdenv.lib; {
+ homepage = https://www.jetbrains.com/mps/;
+ inherit license description;
+ longDescription = ''
+ A metaprogramming system which uses projectional editing
+ which allows users to overcome the limits of language
+ parsers, and build DSL editors, such as ones with tables and
+ diagrams.
+ '';
+ maintainers = with maintainers; [ rasendubi ];
+ platforms = platforms.linux;
+ };
+ });
+
+ buildPhpStorm = { name, version, src, license, description, wmClass, ... }:
+ (mkJetBrainsProduct {
+ inherit name version src wmClass jdk;
+ product = "PhpStorm";
+ meta = with stdenv.lib; {
+ homepage = "https://www.jetbrains.com/phpstorm/";
+ inherit description license;
+ longDescription = ''
+ PhpStorm provides an editor for PHP, HTML and JavaScript
+ with on-the-fly code analysis, error prevention and
+ automated refactorings for PHP and JavaScript code.
+ '';
+ maintainers = with maintainers; [ schristo ma27 ];
+ platforms = platforms.linux;
+ };
+ });
+
+ buildPycharm = { name, version, src, license, description, wmClass, ... }:
+ (mkJetBrainsProduct {
+ inherit name version src wmClass jdk;
+ product = "PyCharm";
+ meta = with stdenv.lib; {
+ homepage = "https://www.jetbrains.com/pycharm/";
+ inherit description license;
+ longDescription = ''
+ Python IDE with complete set of tools for productive
+ development with Python programming language. In addition, the
+ IDE provides high-class capabilities for professional Web
+ development with Django framework and Google App Engine. It
+ has powerful coding assistance, navigation, a lot of
+ refactoring features, tight integration with various Version
+ Control Systems, Unit testing, powerful all-singing
+ all-dancing Debugger and entire customization. PyCharm is
+ developer driven IDE. It was developed with the aim of
+ providing you almost everything you need for your comfortable
+ and productive development!
+ '';
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
+ };
+ }).override {
+ propagatedUserEnvPkgs = [ python ];
+ };
+
+ buildRider = { name, version, src, license, description, wmClass, ... }:
+ lib.overrideDerivation (mkJetBrainsProduct {
+ inherit name version src wmClass jdk;
+ product = "Rider";
+ meta = with stdenv.lib; {
+ homepage = "https://www.jetbrains.com/rider/";
+ inherit description license;
+ longDescription = ''
+ JetBrains Rider is a new .NET IDE based on the IntelliJ
+ platform and ReSharper. Rider supports .NET Core,
+ .NET Framework and Mono based projects. This lets you
+ develop a wide array of applications including .NET desktop
+ apps, services and libraries, Unity games, ASP.NET and
+ ASP.NET Core web applications.
+ '';
+ maintainers = [ maintainers.miltador ];
+ platforms = platforms.linux;
+ };
+ }) (attrs: {
+ patchPhase = lib.optionalString (!stdenv.isDarwin) (attrs.patchPhase + ''
+ rm -rf lib/ReSharperHost/linux-x64/dotnet
+ mkdir -p lib/ReSharperHost/linux-x64/dotnet/
+ ln -s ${dotnet-sdk_3}/bin/dotnet lib/ReSharperHost/linux-x64/dotnet/dotnet
+ '');
+ });
+
+ buildRubyMine = { name, version, src, license, description, wmClass, ... }:
+ (mkJetBrainsProduct {
+ inherit name version src wmClass jdk;
+ product = "RubyMine";
+ meta = with stdenv.lib; {
+ homepage = "https://www.jetbrains.com/ruby/";
+ inherit description license;
+ longDescription = description;
+ maintainers = with maintainers; [ edwtjo ];
+ platforms = platforms.linux;
+ };
+ });
+
+ buildWebStorm = { name, version, src, license, description, wmClass, ... }:
+ lib.overrideDerivation (mkJetBrainsProduct {
+ inherit name version src wmClass jdk;
+ product = "WebStorm";
+ meta = with stdenv.lib; {
+ homepage = "https://www.jetbrains.com/webstorm/";
+ inherit description license;
+ longDescription = ''
+ WebStorm provides an editor for HTML, JavaScript (incl. Node.js),
+ and CSS with on-the-fly code analysis, error prevention and
+ automated refactorings for JavaScript code.
+ '';
+ maintainers = with maintainers; [ abaldeau ];
+ platforms = platforms.linux;
+ };
+ }) (attrs: {
+ patchPhase = (attrs.patchPhase or "") + optionalString (stdenv.isLinux) ''
+ # Webstorm tries to use bundled jre if available.
+ # Lets prevent this for the moment
+ rm -r jbr
+ '';
+ });
+in
+
+{
+ # Sorted alphabetically
+
+ clion = buildClion rec {
+ name = "clion-${version}";
+ version = "2020.2.5"; /* updated by script */
+ description = "C/C++ IDE. New. Intelligent. Cross-platform";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
+ sha256 = "0j7gxh8wqshn2i1f22bl9099sx8a4092qwkp4fwny4649rbkfyrz"; /* updated by script */
+ };
+ wmClass = "jetbrains-clion";
+ update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
+ };
+
+ datagrip = buildDataGrip rec {
+ name = "datagrip-${version}";
+ version = "2020.3"; /* updated by script */
+ description = "Your Swiss Army Knife for Databases and SQL";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
+ sha256 = "1j0mlsiqh80mspi2x9mi0h5hxhg5gw6395hyl9w33q8dxm95mx2d"; /* updated by script */
+ };
+ wmClass = "jetbrains-datagrip";
+ update-channel = "DataGrip RELEASE";
+ };
+
+ goland = buildGoland rec {
+ name = "goland-${version}";
+ version = "2020.2.3"; /* updated by script */
+ description = "Up and Coming Go IDE";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/go/${name}.tar.gz";
+ sha256 = "18mzlqibgc6lzwhbmyrni56464qhzla9mss27d45hv0mbv087jn0"; /* updated by script */
+ };
+ wmClass = "jetbrains-goland";
+ update-channel = "GoLand RELEASE";
+ };
+
+ idea-community = buildIdea rec {
+ name = "idea-community-${version}";
+ version = "2020.3"; /* updated by script */
+ description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
+ license = stdenv.lib.licenses.asl20;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
+ sha256 = "0x1nsjw1m03iq7sd9i2qqlyribrzgi8yh6k5hnb630kvrxr8pxy6"; /* updated by script */
+ };
+ wmClass = "jetbrains-idea-ce";
+ update-channel = "IntelliJ IDEA RELEASE";
+ };
+
+ idea-ultimate = buildIdea rec {
+ name = "idea-ultimate-${version}";
+ version = "2020.3"; /* updated by script */
+ description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
+ sha256 = "1l6bvfgzp27113rjy1y3jvp09cqx8gpnbgpwp83vsph7x0dhx8a3"; /* updated by script */
+ };
+ wmClass = "jetbrains-idea";
+ update-channel = "IntelliJ IDEA RELEASE";
+ };
+
+ mps = buildMps rec {
+ name = "mps-${version}";
+ version = "2020.2.3"; /* updated by script */
+ description = "Create your own domain-specific language";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/mps/2020.2/MPS-${version}.tar.gz";
+ sha256 = "1wd3d8pc155m54y5p2056p0x93v2nv9457i7la53ibbs7rj1j7kw"; /* updated by script */
+ };
+ wmClass = "jetbrains-mps";
+ update-channel = "MPS RELEASE";
+ };
+
+ phpstorm = buildPhpStorm rec {
+ name = "phpstorm-${version}";
+ version = "2020.2.4"; /* updated by script */
+ description = "Professional IDE for Web and PHP developers";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
+ sha256 = "111dr1a6695msh13cd484yk671jnh2ps6q1k2dl0kmryk9dqnvhd"; /* updated by script */
+ };
+ wmClass = "jetbrains-phpstorm";
+ update-channel = "PhpStorm RELEASE";
+ };
+
+ pycharm-community = buildPycharm rec {
+ name = "pycharm-community-${version}";
+ version = "2020.2.5"; /* updated by script */
+ description = "PyCharm Community Edition";
+ license = stdenv.lib.licenses.asl20;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/python/${name}.tar.gz";
+ sha256 = "0jkc26y3v94jj8q7dxq1py59is2whh45b890iac5adg6x670z3s6"; /* updated by script */
+ };
+ wmClass = "jetbrains-pycharm-ce";
+ update-channel = "PyCharm RELEASE";
+ };
+
+ pycharm-professional = buildPycharm rec {
+ name = "pycharm-professional-${version}";
+ version = "2020.2.5"; /* updated by script */
+ description = "PyCharm Professional Edition";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/python/${name}.tar.gz";
+ sha256 = "04imfgr45gvicjjgqzdcdmbnbiszjma3s40k2pgqs5nn6wbrw3dd"; /* updated by script */
+ };
+ wmClass = "jetbrains-pycharm";
+ update-channel = "PyCharm RELEASE";
+ };
+
+ rider = buildRider rec {
+ name = "rider-${version}";
+ version = "2020.2.4"; /* updated by script */
+ description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
+ sha256 = "1anl48ifv5ayqn876dqckxc1b5fw1271pvamzf1vvk501wv6dpaf"; /* updated by script */
+ };
+ wmClass = "jetbrains-rider";
+ update-channel = "Rider RELEASE";
+ };
+
+ ruby-mine = buildRubyMine rec {
+ name = "ruby-mine-${version}";
+ version = "2020.3"; /* updated by script */
+ description = "The Most Intelligent Ruby and Rails IDE";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
+ sha256 = "0ij6j9bxfqzj8gnrhhdgai22s1n5swd4waxd5zjvmv7q9j9cb2l5"; /* updated by script */
+ };
+ wmClass = "jetbrains-rubymine";
+ update-channel = "RubyMine RELEASE";
+ };
+
+ webstorm = buildWebStorm rec {
+ name = "webstorm-${version}";
+ version = "2020.3"; /* updated by script */
+ description = "Professional IDE for Web and JavaScript development";
+ license = stdenv.lib.licenses.unfree;
+ src = fetchurl {
+ url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
+ sha256 = "0sk7slwfr9jasid09hxw81sik5srn35vif3pbzpybig3yszbv6ld"; /* updated by script */
+ };
+ wmClass = "jetbrains-webstorm";
+ update-channel = "WebStorm RELEASE";
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/update.pl b/infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/update.pl
new file mode 100755
index 000000000000..b4a96228db40
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jetbrains/update.pl
@@ -0,0 +1,92 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i perl -p perl perlPackages.LWPProtocolhttps perlPackages.FileSlurp
+
+use strict;
+use List::Util qw(reduce);
+use File::Slurp;
+use LWP::Simple;
+
+sub semantic_less {
+ my ($a, $b) = @_;
+ $a =~ s/\b(\d+)\b/sprintf("%010s", $1)/eg;
+ $b =~ s/\b(\d+)\b/sprintf("%010s", $1)/eg;
+ return $a lt $b;
+}
+
+sub get_latest_versions {
+ my @channels = get("http://www.jetbrains.com/updates/updates.xml") =~ /(<channel .+?<\/channel>)/gs;
+ my %h = {};
+ for my $ch (@channels) {
+ my ($id) = $ch =~ /^<channel id="[^"]+" name="([^"]+)"/;
+ my @builds = $ch =~ /(<build .+?<\/build>)/gs;
+ my $latest_build = reduce {
+ my ($aversion) = $a =~ /^<build [^>]*version="([^"]+)"/; die "no version in $a" unless $aversion;
+ my ($bversion) = $b =~ /^<build [^>]*version="([^"]+)"/; die "no version in $b" unless $bversion;
+ semantic_less($aversion, $bversion) ? $b : $a;
+ } @builds;
+ next unless $latest_build;
+
+ # version as in download url
+ my ($version) = $latest_build =~ /^<build [^>]*version="([^"]+)"/;
+ my ($fullNumber) = $latest_build =~ /^<build [^>]*fullNumber="([^"]+)"/;
+ my $latest_version_full1 = "$version-$fullNumber";
+ $latest_version_full1 =~ s/\s*EAP//;
+
+ my ($latest_version) = $latest_build =~ /^<build [^>]*version="([^"]+)"/;
+ ($latest_version) = $latest_build =~ /^<build [^>]*fullNumber="([^"]+)"/ if $latest_version =~ / /;
+
+ $h{$id} = $latest_version;
+ $h{"full1_" . $id} = $latest_version_full1;
+ }
+ return %h;
+}
+
+my %latest_versions = get_latest_versions();
+# for my $ch (sort keys %latest_versions) {
+# print("$ch $latest_versions{$ch}\n");
+# }
+
+sub update_nix_block {
+ my ($block) = @_;
+ my ($channel) = $block =~ /update-channel\s*=\s*"([^"]+)"/;
+ if ($channel) {
+ if ($latest_versions{$channel}) {
+ my ($version) = $block =~ /version\s*=\s*"([^"]+)"/;
+ die "no version in $block" unless $version;
+ if ($version eq $latest_versions{$channel}) {
+ print("$channel is up to date at $version\n");
+ } else {
+ print("updating $channel: $version -> $latest_versions{$channel}\n");
+ my ($url) = $block =~ /url\s*=\s*"([^"]+)"/;
+ # try to interpret some nix
+ my ($name) = $block =~ /name\s*=\s*"([^"]+)"/;
+ $name =~ s/\$\{version\}/$latest_versions{$channel}/;
+ $url =~ s/\$\{name\}/$name/;
+ $url =~ s/\$\{version\}/$latest_versions{$channel}/;
+ die "$url still has some interpolation" if $url =~ /\$/;
+ my ($sha256) = get("$url.sha256") =~ /^([0-9a-f]{64})/;
+ my $version_string = $latest_versions{$channel};
+ unless ( $sha256 ) {
+ my $full_version = $latest_versions{"full1_" . $channel};
+ $url =~ s/$version_string/$full_version/;
+ ($sha256) = get("$url.sha256") =~ /^([0-9a-f]{64})/;
+ $version_string = $full_version;
+ }
+ die "invalid sha256 in $url.sha256" unless $sha256;
+ my ($sha256Base32) = readpipe("nix-hash --type sha256 --to-base32 $sha256");
+ chomp $sha256Base32;
+ print "Jetbrains published SHA256: $sha256\n";
+ print "Conversion into base32 yields: $sha256Base32\n";
+ $block =~ s#version\s*=\s*"([^"]+)".+$#version = "$version_string"; /* updated by script */#m;
+ $block =~ s#sha256\s*=\s*"([^"]+)".+$#sha256 = "$sha256Base32"; /* updated by script */#m;
+ }
+ } else {
+ warn "unknown update-channel $channel";
+ }
+ }
+ return $block;
+}
+
+my $nix = read_file 'default.nix';
+$nix =~ s/(= build\w+ rec \{.+?\n \};\n)/update_nix_block($1)/gse;
+write_file 'default.nix', $nix;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/joe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/joe/default.nix
new file mode 100644
index 000000000000..bb227512387d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/joe/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl } :
+
+stdenv.mkDerivation rec {
+ version = "4.6";
+ pname = "joe";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/joe-editor/${pname}-${version}.tar.gz";
+ sha256 = "1pmr598xxxm9j9dl93kq4dv36zyw0q2dh6d7x07hf134y9hhlnj9";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A full featured terminal-based screen editor";
+ homepage = "https://joe-editor.sourceforge.io";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jucipp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/jucipp/default.nix
new file mode 100644
index 000000000000..53549986ed24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jucipp/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchgit, dconf, gtksourceview3, at-spi2-core, gtksourceviewmm,
+ boost, epoxy, cmake, aspell, llvmPackages, libgit2, pkgconfig, pcre,
+ libXdmcp, libxkbcommon, libpthreadstubs, wrapGAppsHook, aspellDicts, gtkmm3,
+ coreutils, glibc, dbus, openssl, libxml2, gnumake, ctags }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "juicipp";
+ version = "1.2.3";
+
+ meta = {
+ homepage = "https://github.com/cppit/jucipp";
+ description = "A lightweight, platform independent C++-IDE with support for C++11, C++14, and experimental C++17 features depending on libclang version";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ xnwdd ];
+ };
+
+ src = fetchgit {
+ url = "https://github.com/cppit/jucipp.git";
+ rev = "refs/tags/v${version}";
+ deepClone = true;
+ sha256 = "0xp6ijnrggskjrvscp204bmdpz48l5a8nxr9abp17wni6akb5wiq";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+ buildInputs = [
+ dbus
+ openssl
+ libxml2
+ gtksourceview3
+ at-spi2-core
+ pcre
+ epoxy
+ boost
+ libXdmcp
+ cmake
+ aspell
+ libgit2
+ libxkbcommon
+ gtkmm3
+ libpthreadstubs
+ gtksourceviewmm
+ llvmPackages.clang.cc
+ llvmPackages.lldb
+ dconf
+ ];
+
+
+ lintIncludes = let
+ p = "arguments.emplace_back(\"-I";
+ e = "\");";
+ v = stdenv.lib.getVersion llvmPackages.clang;
+ in
+ p+llvmPackages.libcxx+"/include/c++/v1"+e
+ +p+llvmPackages.clang-unwrapped+"/lib/clang/"+v+"/include/"+e
+ +p+glibc.dev+"/include"+e;
+
+ preConfigure = ''
+ sed -i 's|liblldb LIBLLDB_LIBRARIES|liblldb LIBNOTHING|g' CMakeLists.txt
+ sed -i 's|> arguments;|> arguments; ${lintIncludes}|g' src/source_clang.cc
+ '';
+ cmakeFlags = [ "-DLIBLLDB_LIBRARIES=${stdenv.lib.makeLibraryPath [ llvmPackages.lldb ]}/liblldb.so" ];
+ postInstall = ''
+ mv $out/bin/juci $out/bin/.juci
+ makeWrapper "$out/bin/.juci" "$out/bin/juci" \
+ --set PATH "${stdenv.lib.makeBinPath [ ctags coreutils llvmPackages.clang.cc cmake gnumake llvmPackages.clang.bintools llvmPackages.clang ]}" \
+ --set NO_AT_BRIDGE 1 \
+ --set ASPELL_CONF "dict-dir ${aspellDicts.en}/lib/aspell"
+ '';
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jupp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupp/default.nix
new file mode 100644
index 000000000000..79db7b8a558a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupp/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, ncurses, gpm }:
+
+stdenv.mkDerivation rec {
+
+ pname = "jupp";
+ version = "39";
+ srcName = "joe-3.1${pname}${version}";
+
+ src = fetchurl {
+ urls = [
+ "https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz"
+ "https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ];
+ sha256 = "14gys92dy3kq9ikigry7q2x4w5v2z76d97vp212bddrxiqy5np8d";
+ };
+
+ preConfigure = "chmod +x ./configure";
+
+ buildInputs = [ ncurses gpm ];
+
+ configureFlags = [
+ "--enable-curses"
+ "--enable-termcap"
+ "--enable-termidx"
+ "--enable-getpwnam"
+ "--enable-largefile"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A portable fork of Joe's editor";
+ longDescription = ''
+ This is the portable version of JOE's Own Editor, which is currently
+ developed at sourceforge, licenced under the GNU General Public License,
+ Version 1, using autoconf/automake. This version has been enhanced by
+ several functions intended for programmers or other professional users,
+ and has a lot of bugs fixed. It is based upon an older version of joe
+ because these behave better overall.
+ '';
+ homepage = "http://www.mirbsd.org/jupp.htm";
+ license = licenses.gpl1;
+ maintainers = with maintainers; [ AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile
new file mode 100644
index 000000000000..c3f096edcad1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile
@@ -0,0 +1,6 @@
+source 'https://rubygems.org'
+gem 'sensu'
+gem 'iruby'
+gem 'cztop'
+gem 'ffi-rzmq'
+gem 'rbczmq'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock
new file mode 100644
index 000000000000..89f60a6dbdce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock
@@ -0,0 +1,119 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.6.0)
+ public_suffix (>= 2.0.2, < 4.0)
+ amq-protocol (2.0.1)
+ amqp (1.6.0)
+ amq-protocol (>= 2.0.1)
+ eventmachine
+ bond (0.5.1)
+ childprocess (0.5.8)
+ ffi (~> 1.0, >= 1.0.11)
+ cookiejar (0.3.3)
+ czmq-ffi-gen (0.15.0)
+ ffi (~> 1.9.10)
+ cztop (0.13.1)
+ czmq-ffi-gen (~> 0.15.0)
+ data_uri (0.1.0)
+ em-http-request (1.1.5)
+ addressable (>= 2.3.4)
+ cookiejar (!= 0.3.1)
+ em-socksify (>= 0.3)
+ eventmachine (>= 1.0.3)
+ http_parser.rb (>= 0.6.0)
+ em-http-server (0.1.8)
+ eventmachine
+ em-socksify (0.3.2)
+ eventmachine (>= 1.0.0.beta.4)
+ em-worker (0.0.2)
+ eventmachine
+ eventmachine (1.2.7)
+ ffi (1.9.21)
+ ffi-rzmq (2.0.7)
+ ffi-rzmq-core (>= 1.0.7)
+ ffi-rzmq-core (1.0.7)
+ ffi
+ http_parser.rb (0.6.0)
+ iruby (0.3)
+ bond (~> 0.5)
+ data_uri (~> 0.1)
+ mimemagic (~> 0.3)
+ multi_json (~> 1.11)
+ mimemagic (0.3.3)
+ multi_json (1.13.1)
+ oj (2.18.1)
+ parse-cron (0.1.4)
+ public_suffix (3.0.3)
+ rbczmq (1.7.9)
+ sensu (1.6.2)
+ em-http-request (= 1.1.5)
+ em-http-server (= 0.1.8)
+ eventmachine (= 1.2.7)
+ parse-cron (= 0.1.4)
+ sensu-extension (= 1.5.2)
+ sensu-extensions (= 1.10.0)
+ sensu-json (= 2.1.1)
+ sensu-logger (= 1.2.2)
+ sensu-redis (= 2.4.0)
+ sensu-settings (= 10.14.0)
+ sensu-spawn (= 2.5.0)
+ sensu-transport (= 8.2.0)
+ sensu-extension (1.5.2)
+ eventmachine
+ sensu-extensions (1.10.0)
+ sensu-extension
+ sensu-extensions-check-dependencies (= 1.1.0)
+ sensu-extensions-debug (= 1.0.0)
+ sensu-extensions-json (= 1.0.0)
+ sensu-extensions-occurrences (= 1.2.0)
+ sensu-extensions-only-check-output (= 1.0.0)
+ sensu-extensions-ruby-hash (= 1.0.0)
+ sensu-json (>= 1.1.0)
+ sensu-logger
+ sensu-settings
+ sensu-extensions-check-dependencies (1.1.0)
+ sensu-extension
+ sensu-extensions-debug (1.0.0)
+ sensu-extension
+ sensu-extensions-json (1.0.0)
+ sensu-extension
+ sensu-extensions-occurrences (1.2.0)
+ sensu-extension
+ sensu-extensions-only-check-output (1.0.0)
+ sensu-extension
+ sensu-extensions-ruby-hash (1.0.0)
+ sensu-extension
+ sensu-json (2.1.1)
+ oj (= 2.18.1)
+ sensu-logger (1.2.2)
+ eventmachine
+ sensu-json
+ sensu-redis (2.4.0)
+ eventmachine
+ sensu-settings (10.14.0)
+ parse-cron
+ sensu-json (>= 1.1.0)
+ sensu-spawn (2.5.0)
+ childprocess (= 0.5.8)
+ em-worker (= 0.0.2)
+ eventmachine
+ ffi (= 1.9.21)
+ sensu-transport (8.2.0)
+ amq-protocol (= 2.0.1)
+ amqp (= 1.6.0)
+ eventmachine
+ sensu-redis (>= 1.0.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ cztop
+ ffi-rzmq
+ iruby
+ rbczmq
+ sensu
+
+BUNDLED WITH
+ 1.17.2
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/default.nix
new file mode 100644
index 000000000000..260a614fe5c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/default.nix
@@ -0,0 +1,17 @@
+{ lib
+, bundlerApp
+}:
+
+bundlerApp {
+ pname = "iruby";
+ gemdir = ./.;
+ exes = [ "iruby" ];
+
+ meta = with lib; {
+ description = "Ruby kernel for Jupyter";
+ homepage = "https://github.com/SciRuby/iruby";
+ license = licenses.mit;
+ maintainers = [ maintainers.costrouc ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix
new file mode 100644
index 000000000000..1ba77a058ea2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix
@@ -0,0 +1,429 @@
+{
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ amq-protocol = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rpn9vgh7y037aqhhp04smihzr73vp5i5g6xlqlha10wy3q0wp7x";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ amqp = {
+ dependencies = ["amq-protocol" "eventmachine"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kbrqnpjgj9v0722p3n5rw589l4g26ry8mcghwc5yr20ggkpdaz9";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ bond = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r19ifc4skyl2gxnifrxa5jvbbay9fb2in79ppgv02b6n4bhsw90";
+ type = "gem";
+ };
+ version = "0.5.1";
+ };
+ childprocess = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lv7axi1fhascm9njxh3lx1rbrnsm8wgvib0g7j26v4h1fcphqg0";
+ type = "gem";
+ };
+ version = "0.5.8";
+ };
+ cookiejar = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q0kmbks9l3hl0wdq744hzy97ssq9dvlzywyqv9k9y1p3qc9va2a";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ czmq-ffi-gen = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ngsd1yxiayd50v402vwhmq7ma9ang6pcba5kqiwq7smpdvfmbmp";
+ type = "gem";
+ };
+ version = "0.15.0";
+ };
+ cztop = {
+ dependencies = ["czmq-ffi-gen"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12xcz7g42dbp2ryhcwdm2ykj7bmwfhjhla296hy18g7a09zlfnz7";
+ type = "gem";
+ };
+ version = "0.13.1";
+ };
+ data_uri = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fzkxgdxrlbfl4537y3n9mjxbm28kir639gcw3x47ffchwsgdcky";
+ type = "gem";
+ };
+ version = "0.1.0";
+ };
+ em-http-request = {
+ dependencies = ["addressable" "cookiejar" "em-socksify" "eventmachine" "http_parser.rb"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13rxmbi0fv91n4sg300v3i9iiwd0jxv0i6xd0sp81dx3jlx7kasx";
+ type = "gem";
+ };
+ version = "1.1.5";
+ };
+ em-http-server = {
+ dependencies = ["eventmachine"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y8l4gymy9dzjjchjav90ck6has2i2zdjihlhcyrg3jgq6kjzyq5";
+ type = "gem";
+ };
+ version = "0.1.8";
+ };
+ em-socksify = {
+ dependencies = ["eventmachine"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rk43ywaanfrd8180d98287xv2pxyl7llj291cwy87g1s735d5nk";
+ type = "gem";
+ };
+ version = "0.3.2";
+ };
+ em-worker = {
+ dependencies = ["eventmachine"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z4jx9z2q5hxvdvik4yp0ahwfk69qsmdnyp72ln22p3qlkq2z5wk";
+ type = "gem";
+ };
+ version = "0.0.2";
+ };
+ eventmachine = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c2dl10pi6a30kcvx2s6p2v1wb4kbm48iv38kmz2ff600nirhpb8";
+ type = "gem";
+ };
+ version = "1.9.21";
+ };
+ ffi-rzmq = {
+ dependencies = ["ffi-rzmq-core"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14a5kxfnf8l3ngyk8hgmk30z07aj1324ll8i48z67ps6pz2kpsrg";
+ type = "gem";
+ };
+ version = "2.0.7";
+ };
+ ffi-rzmq-core = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0amkbvljpjfnv0jpdmz71p1i3mqbhyrnhamjn566w0c01xd64hb5";
+ type = "gem";
+ };
+ version = "1.0.7";
+ };
+ "http_parser.rb" = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ iruby = {
+ dependencies = ["bond" "data_uri" "mimemagic" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wdf2c0x8y6cya0n3y0p3p7b1sxkb2fdavdn2k58rf4rs37s7rzn";
+ type = "gem";
+ };
+ version = "0.3";
+ };
+ mimemagic = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ oj = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "147whmq8h2n04chskl3v4a132xhz5i6kk6vhnz83jwng4vihin5f";
+ type = "gem";
+ };
+ version = "2.18.1";
+ };
+ parse-cron = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02fj9i21brm88nb91ikxwxbwv9y7mb7jsz6yydh82rifwq7357hg";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+ type = "gem";
+ };
+ version = "3.0.3";
+ };
+ rbczmq = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bqr44m2nb61smza6y5cahp09hk16lsn0z3wpq9g5zpr9nhp50fx";
+ type = "gem";
+ };
+ version = "1.7.9";
+ };
+ sensu = {
+ dependencies = ["em-http-request" "em-http-server" "eventmachine" "parse-cron" "sensu-extension" "sensu-extensions" "sensu-json" "sensu-logger" "sensu-redis" "sensu-settings" "sensu-spawn" "sensu-transport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rxv6yj63nkxlzmmqk6qpfpcvrbar9s4sd4kgfb5zsv9bw7236cr";
+ type = "gem";
+ };
+ version = "1.6.2";
+ };
+ sensu-extension = {
+ dependencies = ["eventmachine"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bpizp4n01rv72cryjjlrbfxxj3csish3mkxjzdy4inpi5j5h1dw";
+ type = "gem";
+ };
+ version = "1.5.2";
+ };
+ sensu-extensions = {
+ dependencies = ["sensu-extension" "sensu-extensions-check-dependencies" "sensu-extensions-debug" "sensu-extensions-json" "sensu-extensions-occurrences" "sensu-extensions-only-check-output" "sensu-extensions-ruby-hash" "sensu-json" "sensu-logger" "sensu-settings"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04v221qjv8qy3jci40i66p63ig5vrrh0dpgmf1l8229x5m7bxrsg";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ sensu-extensions-check-dependencies = {
+ dependencies = ["sensu-extension"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hc4kz7k983f6fk27ikg5drvxm4a85qf1k07hqssfyk3k75jyj1r";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ sensu-extensions-debug = {
+ dependencies = ["sensu-extension"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11abdgn2kkkbvxq4692yg6a27qnxz4349gfiq7d35biy7vrw34lp";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ sensu-extensions-json = {
+ dependencies = ["sensu-extension"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wnbn9sycdqdh9m0fhszaqkv0jijs3fkdbvcv8kdspx6irbv3m6g";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ sensu-extensions-occurrences = {
+ dependencies = ["sensu-extension"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lx5wsbblfs0rvkxfg09bsz0g2mwmckrhga7idnarsnm8m565v1v";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ sensu-extensions-only-check-output = {
+ dependencies = ["sensu-extension"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ds2i8wd4ji9ifig2zzr4jpxinvk5dm7j10pvaqy4snykxa3rqh3";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ sensu-extensions-ruby-hash = {
+ dependencies = ["sensu-extension"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xyrj3gbmslbivcd5qcmyclgapn7qf7f5jwfvfpw53bxzib0h7s3";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ sensu-json = {
+ dependencies = ["oj"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08zlxg5j3bhs72cc7wcllp026jbif0xiw6ib1cgawndlpsfl9fgx";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ sensu-logger = {
+ dependencies = ["eventmachine" "sensu-json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jpw4kz36ilaknrzb3rbkhpbgv93w2d668z2cv395dq30d4d3iwm";
+ type = "gem";
+ };
+ version = "1.2.2";
+ };
+ sensu-redis = {
+ dependencies = ["eventmachine"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0widfmmj1h9ca2kk14wy1sqmlkq40linp89a73s3ghngnzri0xyk";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ sensu-settings = {
+ dependencies = ["parse-cron" "sensu-json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "152n4hazv2l4vbzrgd316rpj135jmz042fyh6k2yv2kw0x29pi0f";
+ type = "gem";
+ };
+ version = "10.14.0";
+ };
+ sensu-spawn = {
+ dependencies = ["childprocess" "em-worker" "eventmachine" "ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17yc8ivjpjbvig9r7yl6991d6ma0kcq75fbpz6i856ljvcr3lmd5";
+ type = "gem";
+ };
+ version = "2.5.0";
+ };
+ sensu-transport = {
+ dependencies = ["amq-protocol" "amqp" "eventmachine" "sensu-redis"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x6vyfmg1jm1srf7xa5aka73by7qwcmry2rx8kq8phwa4g0v4mzr";
+ type = "gem";
+ };
+ version = "8.2.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter/default.nix
new file mode 100644
index 000000000000..2bca120c1deb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter/default.nix
@@ -0,0 +1,18 @@
+# Jupyter notebook with the given kernel definitions
+
+{ python3
+, jupyter-kernel
+, definitions ? jupyter-kernel.default
+}:
+
+let
+
+ jupyterPath = (jupyter-kernel.create { inherit definitions; });
+
+in
+
+with python3.pkgs; toPythonModule (
+ notebook.overridePythonAttrs(oldAttrs: {
+ makeWrapperArgs = ["--set JUPYTER_PATH ${jupyterPath}"];
+ })
+)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix
new file mode 100644
index 000000000000..fba884f5a2fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix
@@ -0,0 +1,74 @@
+{ lib, stdenv, python3}:
+
+let
+
+ default = {
+ python3 = let
+ env = (python3.withPackages (ps: with ps; [ ipykernel ]));
+ in {
+ displayName = "Python 3";
+ argv = [
+ env.interpreter
+ "-m"
+ "ipykernel_launcher"
+ "-f"
+ "{connection_file}"
+ ];
+ language = "python";
+ logo32 = "${env.sitePackages}/ipykernel/resources/logo-32x32.png";
+ logo64 = "${env.sitePackages}/ipykernel/resources/logo-64x64.png";
+ };
+ };
+
+in
+{
+ inherit default;
+
+ # Definitions is an attribute set.
+
+ create = { definitions ? default }: with lib; stdenv.mkDerivation {
+
+ name = "jupyter-kernels";
+
+ src = "/dev/null";
+
+ unpackCmd = "mkdir jupyter_kernels";
+
+ installPhase = ''
+ mkdir kernels
+
+ ${concatStringsSep "\n" (mapAttrsToList (kernelName: unfilteredKernel:
+ let
+ allowedKernelKeys = ["argv" "displayName" "language" "interruptMode" "env" "metadata" "logo32" "logo64"];
+ kernel = filterAttrs (n: v: (any (x: x == n) allowedKernelKeys)) unfilteredKernel;
+ config = builtins.toJSON (
+ kernel
+ // {display_name = if (kernel.displayName != "") then kernel.displayName else kernelName;}
+ // (optionalAttrs (kernel ? interruptMode) { interrupt_mode = kernel.interruptMode; })
+ );
+ logo32 =
+ if (kernel.logo32 != null)
+ then "ln -s ${kernel.logo32} 'kernels/${kernelName}/logo-32x32.png';"
+ else "";
+ logo64 =
+ if (kernel.logo64 != null)
+ then "ln -s ${kernel.logo64} 'kernels/${kernelName}/logo-64x64.png';"
+ else "";
+ in ''
+ mkdir 'kernels/${kernelName}';
+ echo '${config}' > 'kernels/${kernelName}/kernel.json';
+ ${logo32}
+ ${logo64}
+ '') definitions)}
+
+ mkdir $out
+ cp -r kernels $out
+ '';
+
+ meta = {
+ description = "Wrapper to create jupyter notebook kernel definitions";
+ homepage = "https://jupyter.org/";
+ maintainers = with maintainers; [ aborsu ];
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/default.nix
new file mode 100644
index 000000000000..f1f811066597
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, ncurses, asciidoc, docbook_xsl, libxslt, pkgconfig }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "kakoune-unwrapped";
+ version = "2020.09.01";
+ src = fetchFromGitHub {
+ repo = "kakoune";
+ owner = "mawww";
+ rev = "v${version}";
+ sha256 = "091qzk0qs7hql0q51hix99srgma35mhdnjfd5ncfba1bmc1h8x5i";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
+ makeFlags = [ "debug=no" ];
+
+ postPatch = ''
+ export PREFIX=$out
+ cd src
+ sed -ie 's#--no-xmllint#--no-xmllint --xsltproc-opts="--nonet"#g' Makefile
+ '';
+
+ preConfigure = ''
+ export version="v${version}"
+ '';
+
+ doInstallCheckPhase = true;
+ installCheckPhase = ''
+ $out/bin/kak -ui json -E "kill 0"
+ '';
+
+ postInstall = ''
+ # make share/kak/autoload a directory, so we can use symlinkJoin with plugins
+ cd "$out/share/kak"
+ autoload_target=$(readlink autoload)
+ rm autoload
+ mkdir autoload
+ ln -s --relative "$autoload_target" autoload
+ '';
+
+ meta = {
+ homepage = "http://kakoune.org/";
+ description = "A vim inspired text editor";
+ license = licenses.publicDomain;
+ maintainers = with maintainers; [ vrthra ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix
new file mode 100644
index 000000000000..6a2ef200e6e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitLab }:
+
+stdenv.mkDerivation {
+ name = "case.kak";
+ version = "unstable-2020-04-06";
+
+ src = fetchFromGitLab {
+ owner = "FlyingWombat";
+ repo = "case.kak";
+ rev = "6f1511820aa3abfa118e0f856118adc8113e2185";
+ sha256 = "002njrlwgakqgp74wivbppr9qyn57dn4n5bxkr6k6nglk9qndwdp";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/kak/autoload/plugins
+ cp -r rc/case.kak $out/share/kak/autoload/plugins
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Case convention conversion for Kakoune";
+ homepage = "https://gitlab.com/FlyingWombat/case.kak";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ eraserhd ];
+ platform = platforms.all;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix
new file mode 100644
index 000000000000..168c1d06b31e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -0,0 +1,16 @@
+{ pkgs, parinfer-rust, rep }:
+
+{
+ inherit parinfer-rust rep;
+
+ case-kak = pkgs.callPackage ./case.kak.nix { };
+ kak-ansi = pkgs.callPackage ./kak-ansi.nix { };
+ kak-auto-pairs = pkgs.callPackage ./kak-auto-pairs.nix { };
+ kak-buffers = pkgs.callPackage ./kak-buffers.nix { };
+ kak-fzf = pkgs.callPackage ./kak-fzf.nix { };
+ kak-plumb = pkgs.callPackage ./kak-plumb.nix { };
+ kak-powerline = pkgs.callPackage ./kak-powerline.nix { };
+ kak-prelude = pkgs.callPackage ./kak-prelude.nix { };
+ kak-vertical-selection = pkgs.callPackage ./kak-vertical-selection.nix { };
+ openscad-kak = pkgs.callPackage ./openscad.kak.nix { };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
new file mode 100644
index 000000000000..408cba45fbe6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ name = "kak-ansi";
+ version = "0.2.1";
+
+ src = fetchFromGitHub {
+ owner = "eraserhd";
+ repo = "kak-ansi";
+ rev = "v${version}";
+ sha256 = "0ddjih8hfyf6s4g7y46p1355kklaw1ydzzh61141i0r45wyb2d0d";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/kak/autoload/plugins/
+ cp kak-ansi-filter $out/bin/
+ # Hard-code path of filter and don't try to build when Kakoune boots
+ sed '
+ /^declare-option.* ansi_filter /i\
+declare-option -hidden str ansi_filter %{'"$out"'/bin/kak-ansi-filter}
+ /^declare-option.* ansi_filter /,/^}/d
+ ' rc/ansi.kak >$out/share/kak/autoload/plugins/ansi.kak
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Kakoune support for rendering ANSI code";
+ homepage = "https://github.com/eraserhd/kak-ansi";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ eraserhd ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
new file mode 100644
index 000000000000..4b67f7609769
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+ name = "kak-auto-pairs";
+ version = "2020-07-14";
+ src = fetchFromGitHub {
+ owner = "alexherbo2";
+ repo = "auto-pairs.kak";
+ rev = "5b4b3b723c34c8b7f40cee60868204974349bf9f";
+ sha256 = "1wgrv03f1lkzflbbaz8n23glij5rvfxf8pcqysd668mbx1hcrk9i";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/kak/autoload/plugins
+ cp -r rc $out/share/kak/autoload/plugins/auto-pairs
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Kakoune extension to enable automatic closing of pairs";
+ homepage = "https://github.com/alexherbo2/auto-pairs.kak";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ nrdxp ];
+ platform = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
new file mode 100644
index 000000000000..eaf20aeadf8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+ name = "kak-buffers";
+ version = "2019-04-03";
+ src = fetchFromGitHub {
+ owner = "Delapouite";
+ repo = "kakoune-buffers";
+ rev = "3b35b23ac2be661a37c085d34dd04d066450f757";
+ sha256 = "0f3g0v1sjinii3ig9753jjj35v2km4h9bcfw9xgzwz8b10d75bax";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/kak/autoload/plugins
+ cp -r buffers.kak $out/share/kak/autoload/plugins
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Ease navigation between opened buffers in Kakoune";
+ homepage = "https://github.com/Delapouite/kakoune-buffers";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nrdxp ];
+ platform = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
new file mode 100644
index 000000000000..657f4a19bbfc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, fzf }:
+
+assert stdenv.lib.asserts.assertOneOf "fzf" fzf.pname [ "fzf" "skim" ];
+
+stdenv.mkDerivation {
+ name = "kak-fzf";
+ version = "2020-05-24";
+ src = fetchFromGitHub {
+ owner = "andreyorst";
+ repo = "fzf.kak";
+ rev = "b2aeb26473962ab0bf3b51ba5c81c50c1d8253d3";
+ sha256 = "0bg845i814xh4y688p2zx726rsg0pd6nb4a7qv2fckmk639f4wzc";
+ };
+
+ configurePhase = ''
+ if [[ -x "${fzf}/bin/fzf" ]]; then
+ fzfImpl='${fzf}/bin/fzf'
+ else
+ fzfImpl='${fzf}/bin/sk'
+ fi
+
+ substituteInPlace rc/fzf.kak \
+ --replace \'fzf\' \'"$fzfImpl"\'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/kak/autoload/plugins
+ cp -r rc $out/share/kak/autoload/plugins/fzf
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Kakoune plugin that brings integration with fzf";
+ homepage = "https://github.com/andreyorst/fzf.kak";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nrdxp ];
+ platform = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
new file mode 100644
index 000000000000..7abef9305310
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, kakoune-unwrapped, plan9port, ... }:
+
+stdenv.mkDerivation rec {
+ pname = "kak-plumb";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "eraserhd";
+ repo = "kak-plumb";
+ rev = "v${version}";
+ sha256 = "1rz6pr786slnf1a78m3sj09axr4d2lb5rg7sfa4mfg1zcjh06ps6";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/kak/autoload/plugins/
+ substitute rc/plumb.kak $out/share/kak/autoload/plugins/plumb.kak \
+ --replace '9 plumb' '${plan9port}/bin/9 plumb'
+ substitute edit-client $out/bin/edit-client \
+ --replace '9 9p' '${plan9port}/bin/9 9p' \
+ --replace 'kak -p' '${kakoune-unwrapped}/bin/kak -p'
+ chmod +x $out/bin/edit-client
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Kakoune integration with the Plan 9 plumber";
+ homepage = "https://github.com/eraserhd/kak-plumb";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ eraserhd ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
new file mode 100644
index 000000000000..d328e47f7e1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
@@ -0,0 +1,29 @@
+{ stdenv, git, fetchFromGitHub }:
+stdenv.mkDerivation {
+ name = "kak-powerline";
+ version = "2019-07-23";
+ src = fetchFromGitHub {
+ owner = "andreyorst";
+ repo = "powerline.kak";
+ rev = "82b01eb6c97c7380b7da253db1fd484a5de13ea4";
+ sha256 = "1480wp2jc7c84z1wqmpf09lzny6kbnbhiiym2ffaddxrd4ns9i6z";
+ };
+
+ configurePhase = ''
+ substituteInPlace rc/modules/git.kak \
+ --replace \'git\' \'${git}/bin/git\'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/kak/autoload/plugins
+ cp -r rc $out/share/kak/autoload/plugins/powerline
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Kakoune modeline, but with passion";
+ homepage = "https://github.com/andreyorst/powerline.kak";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nrdxp ];
+ platform = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
new file mode 100644
index 000000000000..8fd5fba7d7ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+ name = "kak-prelude";
+ version = "2020-03-15";
+
+ src = fetchFromGitHub {
+ owner = "alexherbo2";
+ repo = "prelude.kak";
+ rev = "05b2642b1e014bd46423f9d738cc38a624947b63";
+ sha256 = "180p8hq8z7mznzd9w9ma5as3ijs7zbzcj96prcpswqg263a0b329";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/kak/autoload/plugins
+ cp -r rc $out/share/kak/autoload/plugins/prelude
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Prelude of shell blocks for Kakoune.";
+ homepage = "https://github.com/alexherbo2/prelude.kak";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ buffet ];
+ platform = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
new file mode 100644
index 000000000000..7658ba0f7ada
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+ name = "kak-vertical-selection";
+ version = "2019-04-11";
+ src = fetchFromGitHub {
+ owner = "occivink";
+ repo = "kakoune-vertical-selection";
+ rev = "c420f8b867ce47375fac303886e31623669a42b7";
+ sha256 = "13jdyd2j45wvgqvxdzw9zww14ly93bqjb6700zzxj7mkbiff6wsb";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/kak/autoload/plugins
+ cp -r vertical-selection.kak $out/share/kak/autoload/plugins
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Select up and down lines that match the same pattern in Kakoune";
+ homepage = "https://github.com/occivink/kakoune-vertical-selection";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ nrdxp ];
+ platform = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix
new file mode 100644
index 000000000000..21c8b7a60cca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "openscad.kak";
+ version = "unstable-2019-11-08";
+
+ src = fetchFromGitHub {
+ owner = "mayjs";
+ repo = "openscad.kak";
+ rev = "d9143d5e7834e3356b49720664d5647cab9db7cc";
+ sha256 = "0j4dqhrn56z77hdalfdxagwz8h6nwr8s9i4w0bs2644k72lsm2ix";
+ };
+
+ installPhase = ''
+ install -Dm644 rc/openscad.kak -t $out/share/kak/autoload/plugins/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Syntax highlighting for OpenSCAD files";
+ homepage = "https://github.com/mayjs/openscad.kak";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ eraserhd ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix
new file mode 100644
index 000000000000..7ac56d9cb1e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix
@@ -0,0 +1,31 @@
+{ symlinkJoin, makeWrapper, kakoune, plugins ? [], configure ? {} }:
+
+let
+ # "plugins" is the preferred way, but some configurations may be
+ # using "configure.plugins", so accept both
+ requestedPlugins = plugins ++ (configure.plugins or []);
+
+in
+ symlinkJoin {
+ name = "kakoune-${kakoune.version}";
+
+ buildInputs = [ makeWrapper ];
+
+ paths = [ kakoune ] ++ requestedPlugins;
+
+ postBuild = ''
+ # location of kak binary is used to find ../share/kak/autoload,
+ # unless explicitly overriden with KAKOUNE_RUNTIME
+ rm "$out/bin/kak"
+ makeWrapper "${kakoune}/bin/kak" "$out/bin/kak" --set KAKOUNE_RUNTIME "$out/share/kak"
+
+ # currently kakoune ignores doc files if they are symlinks, so workaround by
+ # copying doc files over, so they become regular files...
+ mkdir "$out/DELETE_ME"
+ mv "$out/share/kak/doc" "$out/DELETE_ME"
+ cp -r --dereference "$out/DELETE_ME/doc" "$out/share/kak"
+ rm -Rf "$out/DELETE_ME"
+ '';
+
+ meta = kakoune.meta // { priority = (kakoune.meta.priority or 0) - 1; };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix
new file mode 100644
index 000000000000..524835402f4e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, fetchurl, cmake, extra-cmake-modules, threadweaver, ktexteditor, kdevelop-unwrapped, kdevelop-pg-qt }:
+
+stdenv.mkDerivation rec {
+ pname = "kdev-php";
+ version = "5.6.0";
+
+ src = fetchurl {
+ url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
+ sha256 = "1j5m9mhjzp2r4wdwnnnckms8ic536s6y0iyry2zdndbsy215hqlz";
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules ];
+ buildInputs = [ kdevelop-pg-qt threadweaver ktexteditor kdevelop-unwrapped ];
+
+ meta = with lib; {
+ maintainers = [ maintainers.aanderse ];
+ platforms = platforms.linux;
+ description = "PHP support for KDevelop";
+ homepage = "https://www.kdevelop.org";
+ license = [ licenses.gpl2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-python.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-python.nix
new file mode 100644
index 000000000000..9af12b386a0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-python.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchurl, cmake, extra-cmake-modules, threadweaver, ktexteditor, kdevelop-unwrapped, python }:
+
+stdenv.mkDerivation rec {
+ pname = "kdev-python";
+ version = "5.6.0";
+
+ src = fetchurl {
+ url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
+ sha256 = "1bm6jk7gkl4vi579x99mja4znrzzp15zk66ss600dn8aq11jrxv2";
+ };
+
+ cmakeFlags = [
+ "-DPYTHON_EXECUTABLE=${python}/bin/python"
+ ];
+
+ nativeBuildInputs = [ cmake extra-cmake-modules ];
+ buildInputs = [ threadweaver ktexteditor kdevelop-unwrapped ];
+
+ meta = with lib; {
+ maintainers = [ maintainers.aanderse ];
+ platforms = platforms.linux;
+ description = "Python support for KDevelop";
+ homepage = "https://www.kdevelop.org";
+ license = [ licenses.gpl2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
new file mode 100644
index 000000000000..ad83bd43af2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, cmake, pkgconfig, extra-cmake-modules, qtbase }:
+
+let
+ pname = "kdevelop-pg-qt";
+ version = "2.2.1";
+
+in
+stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+ sha256 = "0ay6m6j6zgrbcm48f14bass83bk4w5qnx76xihc05p69i9w32ff1";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig extra-cmake-modules ];
+
+ buildInputs = [ qtbase ];
+
+ meta = with stdenv.lib; {
+ maintainers = [ maintainers.ambrop72 ];
+ platforms = platforms.linux;
+ description = "Parser-generator from KDevplatform";
+ longDescription = ''
+ KDevelop-PG-Qt is the parser-generator from KDevplatform.
+ It is used for some KDevelop-languagesupport-plugins (Ruby, PHP, CSS...).
+ '';
+ homepage = "https://www.kdevelop.org";
+ license = with stdenv.lib.licenses; [ lgpl2Plus ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix
new file mode 100644
index 000000000000..d8f41664e665
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix
@@ -0,0 +1,73 @@
+
+{ mkDerivation, lib, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules
+, qtquickcontrols, qtwebkit, qttools, kde-cli-tools, qtbase
+, kconfig, kdeclarative, kdoctools, kiconthemes, ki18n, kitemmodels, kitemviews
+, kjobwidgets, kcmutils, kio, knewstuff, knotifyconfig, kparts, ktexteditor
+, threadweaver, kxmlgui, kwindowsystem, grantlee, kcrash, karchive, kguiaddons
+, plasma-framework, krunner, kdevelop-pg-qt, shared-mime-info, libkomparediff2
+, libksysguard, konsole, llvmPackages, makeWrapper, kpurpose, boost
+}:
+
+mkDerivation rec {
+ pname = "kdevelop";
+ version = "5.6.0";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
+ sha256 = "0cpmavxz5fi0f1rjinvn6id1nplvjwg00l0n36s0ybygqkacgb9q";
+ };
+
+ nativeBuildInputs = [
+ cmake gettext pkgconfig extra-cmake-modules makeWrapper
+ ];
+
+ buildInputs = [
+ kdevelop-pg-qt
+ llvmPackages.llvm llvmPackages.clang-unwrapped
+ ];
+
+ propagatedBuildInputs = [
+ qtquickcontrols qtwebkit boost libkomparediff2
+ kconfig kdeclarative kdoctools kiconthemes ki18n kitemmodels kitemviews
+ kjobwidgets kcmutils kio knewstuff knotifyconfig kparts ktexteditor
+ threadweaver kxmlgui kwindowsystem grantlee plasma-framework krunner
+ shared-mime-info libksysguard konsole kcrash karchive kguiaddons kpurpose
+ ];
+
+ # https://cgit.kde.org/kdevelop.git/commit/?id=716372ae2e8dff9c51e94d33443536786e4bd85b
+ # required as nixos seems to be unable to find CLANG_BUILTIN_DIR
+ cmakeFlags = [
+ "-DCLANG_BUILTIN_DIR=${llvmPackages.clang-unwrapped}/lib/clang/${lib.getVersion llvmPackages.clang}/include"
+ ];
+
+ dontWrapQtApps = true;
+
+ postInstall = ''
+ # The kdevelop! script (shell environment) needs qdbus and kioclient5 in PATH.
+ wrapProgram "$out/bin/kdevelop!" \
+ --prefix PATH ":" "${lib.makeBinPath [ qttools kde-cli-tools ]}"
+
+ wrapQtApp "$out/bin/kdevelop"
+
+ # Fix the (now wrapped) kdevelop! to find things in right places:
+ # - Fixup the one use where KDEV_BASEDIR is assumed to contain kdevelop.
+ kdev_fixup_sed+=";s|\\\$KDEV_BASEDIR/kdevelop|$out/bin/kdevelop|"
+ sed -E -i "$kdev_fixup_sed" "$out/bin/.kdevelop!-wrapped"
+ '';
+
+ meta = with lib; {
+ maintainers = [ maintainers.ambrop72 ];
+ platforms = platforms.linux;
+ description = "KDE official IDE";
+ longDescription =
+ ''
+ A free, opensource IDE (Integrated Development Environment)
+ for MS Windows, Mac OsX, Linux, Solaris and FreeBSD. It is a
+ feature-full, plugin extendable IDE for C/C++ and other
+ programing languages. It is based on KDevPlatform, KDE and Qt
+ libraries and is under development since 1998.
+ '';
+ homepage = "https://www.kdevelop.org";
+ license = with licenses; [ gpl2Plus lgpl2Plus ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/wrapper.nix
new file mode 100644
index 000000000000..86d3de9eb39a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kdevelop5/wrapper.nix
@@ -0,0 +1,7 @@
+{ symlinkJoin, kdevelop-unwrapped, plugins ? null }:
+
+symlinkJoin {
+ name = "kdevelop-with-plugins";
+
+ paths = [ kdevelop-unwrapped ] ++ (if plugins != null then plugins else []);
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kibi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kibi/default.nix
new file mode 100644
index 000000000000..7945dedc52e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kibi/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "kibi";
+ version = "0.2.1";
+
+ cargoSha256 = "1cbiidq0w5f9ynb09b6828p7p7y5xhpgz47n2jsl8mp96ydhy5lv";
+
+ src = fetchFromGitHub {
+ owner = "ilai-deutel";
+ repo = "kibi";
+ rev = "v${version}";
+ sha256 = "1x5bvvq33380k2qhs1bwz3f9zl5q1sl7iic47pxfkzv24bpjnypb";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A text editor in ≤1024 lines of code, written in Rust";
+ homepage = "https://github.com/ilai-deutel/kibi";
+ license = licenses.mit;
+ maintainers = with maintainers; [ robertodr ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kile/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kile/default.nix
new file mode 100644
index 000000000000..6819c4337f4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kile/default.nix
@@ -0,0 +1,67 @@
+{ mkDerivation
+, lib
+, fetchurl
+, extra-cmake-modules
+, kdoctools
+, wrapGAppsHook
+, qtscript
+, kconfig
+, kcrash
+, kdbusaddons
+, kdelibs4support
+, kguiaddons
+, kiconthemes
+, kinit
+, khtml
+, konsole
+, kparts
+, ktexteditor
+, kwindowsystem
+, okular
+, poppler
+}:
+
+mkDerivation rec {
+ name = "kile-2.9.93";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/kile/${name}.tar.bz2";
+ sha256 = "BEmSEv/LJPs6aCkUmnyuTGrV15WYXwgIANbfcviMXfA=";
+ };
+
+ nativeBuildInputs = [
+ extra-cmake-modules
+ wrapGAppsHook
+ kdoctools
+ ];
+
+ buildInputs = [
+ kconfig
+ kcrash
+ kdbusaddons
+ kdelibs4support
+ kguiaddons
+ kiconthemes
+ kinit
+ khtml
+ kparts
+ ktexteditor
+ kwindowsystem
+ okular
+ poppler
+ qtscript
+ ];
+ dontWrapGApps = true;
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ propagatedUserEnvPkgs = [ konsole ];
+
+ meta = {
+ description = "User-friendly TeX/LaTeX authoring tool for the KDE desktop environment";
+ homepage = "https://www.kde.org/applications/office/kile/";
+ maintainers = with lib.maintainers; [ fridh ];
+ license = lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/kodestudio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
new file mode 100644
index 000000000000..71fa2bcd41b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
@@ -0,0 +1,134 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
+, # Patchelf dependencies:
+ alsaLib, atomEnv, boehmgc, flac, libogg, libvorbis, libXScrnSaver, libGLU, libGL
+, openssl, xorg, zlib
+}:
+
+let
+
+ version = "17.1";
+
+ sha256 = if stdenv.hostPlatform.system == "x86_64-linux" then "1kddisnvlk48jip6k59mw3wlkrl7rkck2lxpaghn0gfx02cvms5f"
+ else if stdenv.hostPlatform.system == "i686-cygwin" then "1izp42afrlh4yd322ax9w85ki388gnkqfqbw8dwnn4k3j7r5487z"
+ else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+ urlBase = "https://github.com/Kode/KodeStudio/releases/download/v${version}/KodeStudio-";
+
+ urlStr = if stdenv.hostPlatform.system == "x86_64-linux" then urlBase + "linux64.tar.gz"
+ else if stdenv.hostPlatform.system == "i686-cygwin" then urlBase + "win32.zip"
+ else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+in
+
+ stdenv.mkDerivation {
+ pname = "kodestudio";
+ inherit version;
+
+ src = fetchurl {
+ url = urlStr;
+ inherit sha256;
+ };
+
+ buildInputs = [ makeWrapper libXScrnSaver ];
+
+ desktopItem = makeDesktopItem {
+ name = "kodestudio";
+ exec = "kodestudio";
+ icon = "kodestudio";
+ comment = "Kode Studio is an IDE for Kha based on Visual Studio Code";
+ desktopName = "Kode Studio";
+ genericName = "Text Editor";
+ categories = "GNOME;GTK;Utility;TextEditor;Development;";
+ };
+
+ sourceRoot = ".";
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r ./* $out
+ '';
+
+ postFixup = lib.optionalString (stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux") ''
+ # Patch Binaries
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$out:${atomEnv.libPath}" \
+ $out/kodestudio
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ".:${stdenv.cc.libc}/lib:${xorg.libXinerama}/lib:${xorg.libX11}/lib:${alsaLib}/lib:${libGL}/lib:${libGLU}/lib:${openssl.out}/lib" \
+ $out/resources/app/extensions/krom/Krom/linux/Krom
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ".:${stdenv.cc.libc}/lib" \
+ $out/resources/app/extensions/kha/Kha/Kore/Tools/krafix/krafix-linux64
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ".:${stdenv.cc.libc}/lib" \
+ $out/resources/app/extensions/kha/Kha/Kore/Tools/kraffiti/kraffiti-linux64
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" \
+ $out/resources/app/extensions/kha/Kha/Tools/kravur/kravur-linux64
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ".:${stdenv.cc.libc}/lib:${zlib}/lib" \
+ $out/resources/app/extensions/kha/Kha/Tools/haxe/haxe-linux64
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ".:${stdenv.cc.libc}/lib:${libvorbis}/lib:${libogg}/lib:${flac.out}/lib" \
+ $out/resources/app/extensions/kha/Kha/Tools/oggenc/oggenc-linux64
+
+ # Patch Shared Objects
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/libnode.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib" $out/libffmpeg.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libv8_libplatform.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libicuuc.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libv8_libbase.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libv8.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libicui18n.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${boehmgc}/lib" $out/resources/app/extensions/kha/Kha/Backends/Kore/khacpp/project/libs/nekoapi/bin/RPi/libneko.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${boehmgc}/lib" $out/resources/app/extensions/kha/Kha/Backends/Kore/khacpp/project/libs/nekoapi/bin/Linux64/libneko.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${boehmgc}/lib" $out/resources/app/extensions/kha/Kha/Backends/Kore/khacpp/project/libs/nekoapi/bin/Linux/libneko.so
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/pty.js/build/Release/pty.node
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/gc-signals/build/Release/gcsignals.node
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/gc-signals/build/Release/obj.target/gcsignals.node
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/oniguruma/build/Release/onig_scanner.node
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/oniguruma/build/Release/obj.target/onig_scanner.node
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib:${xorg.libX11}/lib" $out/resources/app/node_modules/native-keymap/build/Release/keymapping.node
+ patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib:${xorg.libX11}/lib" $out/resources/app/node_modules/native-keymap/build/Release/obj.target/keymapping.node
+
+ # Rewrite VSCODE_PATH inside bin/kodestudio to $out
+ substituteInPlace $out/bin/kodestudio --replace "/usr/share/kodestudio" $out
+
+ # Patch library calls that expects nix store files to be mode 644:
+ # A stat is made on srcFile (in the nix store), and its mode used
+ # for destFile, but it expects the mode to be read write, whereas
+ # all regular files in the nix store are made read only.
+ # (33188 is 100644 octal, the required mode)
+ substituteInPlace $out/resources/app/extensions/kha/Kha/Tools/khamake/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js --replace "stat.mode" "33188"
+ substituteInPlace $out/resources/app/extensions/kha/Kha/Kore/Tools/koremake/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js --replace "stat.mode" "33188"
+
+ # Wrap preload libXss
+ wrapProgram $out/bin/kodestudio \
+ --prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ An IDE for Kha based on Visual Studio Code
+ '';
+ longDescription = ''
+ Kode Studio is an IDE for Kha based on Visual Studio Code.
+
+ Kha and Kore are multimedia frameworks for Haxe and C++ respectively
+ (with JavaScript coming soon). Using Kha or Kore you can access all
+ hardware at the lowest possible level in a completely portable way.
+ '';
+ homepage = "http://kode.tech/";
+ downloadPage = "https://github.com/Kode/KodeStudio/releases";
+ license = licenses.mit;
+ maintainers = [ maintainers.patternspandemic ];
+ platforms = [ "x86_64-linux" "i686-cygwin" ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/leafpad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/leafpad/default.nix
new file mode 100644
index 000000000000..94fa0be01737
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/leafpad/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gtk2 }:
+
+stdenv.mkDerivation rec {
+ version = "0.8.18.1";
+ pname = "leafpad";
+ src = fetchurl {
+ url = "https://download.savannah.gnu.org/releases/leafpad/${pname}-${version}.tar.gz";
+ sha256 = "0b0az2wvqgvam7w0ns1j8xp2llslm1rx6h7zcsy06a7j0yp257cm";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ intltool gtk2 ];
+
+ hardeningDisable = [ "format" ];
+
+ configureFlags = [
+ "--enable-chooser"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A notepad clone for GTK 2.0";
+ homepage = "http://tarot.freeshell.org/leafpad";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.flosse ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/leo-editor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
new file mode 100644
index 000000000000..e583671bcb40
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
@@ -0,0 +1,67 @@
+{ lib, mkDerivation, python3, fetchFromGitHub, makeWrapper, wrapQtAppsHook, makeDesktopItem }:
+
+mkDerivation rec {
+ pname = "leo-editor";
+ version = "6.2.1";
+
+ src = fetchFromGitHub {
+ owner = "leo-editor";
+ repo = "leo-editor";
+ rev = version;
+ sha256 = "1s9jvxwzsl32clp78g92nq9p2byf08libr5widl1jnkv1cpkbvh9";
+ };
+
+ dontBuild = true;
+
+ nativeBuildInputs = [ wrapQtAppsHook makeWrapper python3 ];
+ propagatedBuildInputs = with python3.pkgs; [ pyqt5 docutils ];
+
+ desktopItem = makeDesktopItem {
+ name = "leo-editor";
+ exec = "leo %U";
+ icon = "leoapp32";
+ type = "Application";
+ comment = meta.description;
+ desktopName = "Leo";
+ genericName = "Text Editor";
+ categories = lib.concatStringsSep ";" [
+ "Application" "Development" "IDE"
+ ];
+ startupNotify = "false";
+ mimeType = lib.concatStringsSep ";" [
+ "text/plain" "text/asp" "text/x-c" "text/x-script.elisp" "text/x-fortran"
+ "text/html" "application/inf" "text/x-java-source" "application/x-javascript"
+ "application/javascript" "text/ecmascript" "application/x-ksh" "text/x-script.ksh"
+ "application/x-tex" "text/x-script.rexx" "text/x-pascal" "text/x-script.perl"
+ "application/postscript" "text/x-script.scheme" "text/x-script.guile" "text/sgml"
+ "text/x-sgml" "application/x-bsh" "application/x-sh" "application/x-shar"
+ "text/x-script.sh" "application/x-tcl" "text/x-script.tcl" "application/x-texinfo"
+ "application/xml" "text/xml" "text/x-asm"
+ ];
+ };
+
+ installPhase = ''
+ mkdir -p "$out/share/icons/hicolor/32x32/apps"
+ cp leo/Icons/leoapp32.png "$out/share/icons/hicolor/32x32/apps"
+
+ mkdir -p "$out/share/applications"
+ cp $desktopItem/share/applications/* $out/share/applications
+
+ mkdir -p $out/share/leo-editor
+ mv * $out/share/leo-editor
+
+ makeWrapper ${python3.interpreter} $out/bin/leo \
+ --set PYTHONPATH "$PYTHONPATH:$out/share/leo-editor" \
+ --add-flags "-O $out/share/leo-editor/launchLeo.py"
+
+ wrapQtApp $out/bin/leo
+ '';
+
+ meta = with lib; {
+ homepage = "http://leoeditor.com";
+ description = "A powerful folding editor";
+ longDescription = "Leo is a PIM, IDE and outliner that accelerates the work flow of programmers, authors and web designers.";
+ license = licenses.mit;
+ maintainers = with maintainers; [ leonardoce ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/lighttable/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/lighttable/default.nix
new file mode 100644
index 000000000000..abf55b42c551
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/lighttable/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib, fetchurl, zlib, glib, alsaLib, makeDesktopItem
+, dbus, gtk2, atk, pango, freetype, fontconfig, libgnome-keyring3, gdk-pixbuf
+, cairo, cups, expat, libgpgerror, nspr, gnome2, nss, xorg, systemd, libnotify
+}:
+
+let
+ libPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3 nss
+ fontconfig gdk-pixbuf cairo cups expat libgpgerror alsaLib nspr gnome2.GConf
+ xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
+ xorg.libXcomposite xorg.libXi xorg.libXfixes libnotify xorg.libXrandr
+ xorg.libXcursor
+ ];
+ desktopItem = makeDesktopItem {
+ name = "LightTable";
+ exec = "light";
+ comment = "LightTable";
+ desktopName = "LightTable";
+ genericName = "the next generation code editor";
+ };
+in
+
+stdenv.mkDerivation rec {
+ pname = "lighttable";
+ version = "0.8.1";
+
+ src =
+ fetchurl {
+ name = "LightTableLinux64.tar.gz";
+ url = "https://github.com/LightTable/LightTable/releases/download/${version}/${pname}-${version}-linux.tar.gz";
+ sha256 = "06fj725xfhf3fwrf7dya7ijmxq3v76kfmd4lr2067a92zhlwr5pv";
+ };
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ tar xf ${src}
+ mkdir -p $out/{bin,share/LightTable}
+ mv ./${pname}-${version}-linux/* $out/share/LightTable
+
+ patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${libPath}:${libPath}/lib64:$out/share/LightTable \
+ $out/share/LightTable/LightTable
+
+ mv $out/share/LightTable/light $out/bin/light
+
+ ln -sf ${lib.getLib systemd}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
+ substituteInPlace $out/bin/light \
+ --replace "/usr/lib/x86_64-linux-gnu" "${lib.getLib systemd}/lib" \
+ --replace "/lib/x86_64-linux-gnu" "$out/share/LightTable" \
+ --replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable"
+
+ mkdir -p "$out"/share/applications
+ cp "${desktopItem}/share/applications/LightTable.desktop" "$out"/share/applications/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The next generation code editor";
+ homepage = "http://www.lighttable.com/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.matejc ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/lite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/lite/default.nix
new file mode 100644
index 000000000000..2f4397234984
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/lite/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, fetchFromGitHub
+, SDL2
+, lua52Packages
+, pkg-config
+, makeWrapper
+} :
+
+stdenv.mkDerivation rec {
+ pname = "lite";
+ version = "1.11";
+
+ src = fetchFromGitHub {
+ owner = "rxi";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0wxqfb4ly8g7w5qph76xys95b55ackkags8jgd1nasmiyi8gcd5a";
+ };
+
+ nativeBuildInputs = [ makeWrapper pkg-config ];
+
+ buildInputs = [ SDL2 lua52Packages.lua ];
+
+ postPatch = ''
+ # use system Lua 5.2
+ rm -rf src/lib/lua52
+ substituteInPlace src/api/api.h \
+ --replace '"lib/lua52/lua.h"' '<lua.h>' \
+ --replace '"lib/lua52/lauxlib.h"' '<lauxlib.h>' \
+ --replace '"lib/lua52/lualib.h"' '<lualib.h>'
+ '';
+
+ buildPhase = ''
+ # extracted and adapted from build.sh
+ CC=$NIX_CC/bin/cc
+ CFLAGS="-Wall -O3 -g -std=gnu11 -Isrc -DLUA_USE_POPEN $(pkg-config --cflags lua sdl2)"
+ LDFLAGS="$(pkg-config --libs lua sdl2)"
+ for f in $(find src -name "*.c"); do
+ $CC -c $CFLAGS $f -o "''${f//\//_}.o"
+ done
+ $CC *.o $LDFLAGS -o lite
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib/${pname}
+ cp -a lite $out/lib/${pname}
+ cp -a data $out/lib/${pname}
+ makeWrapper $out/lib/${pname}/lite $out/bin/lite
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A lightweight text editor written in Lua";
+ homepage = "https://github.com/rxi/lite";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Br1ght0ne ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/manuskript/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/manuskript/default.nix
new file mode 100644
index 000000000000..deeb9b36c719
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/manuskript/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, zlib, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "manuskript";
+ version = "0.11.0";
+
+ format = "other";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "olivierkes";
+ rev = version;
+ sha256 = "1l6l9k6k69yv8xqpll0zv9cwdqqg4zvxy90l6sx5nv2yywh5crla";
+ };
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+
+ propagatedBuildInputs = [
+ python3Packages.pyqt5
+ python3Packages.lxml
+ zlib
+ ];
+
+ patchPhase = ''
+ substituteInPlace manuskript/ui/welcome.py \
+ --replace sample-projects $out/share/${pname}/sample-projects
+ '';
+
+ buildPhase = '''';
+
+ installPhase = ''
+ mkdir -p $out/share/${pname}
+ cp -av bin/ i18n/ libs/ manuskript/ resources/ icons/ $out
+ cp -r sample-projects/ $out/share/${pname}
+ '';
+
+ postFixup = ''
+ wrapQtApp $out/bin/manuskript
+ '';
+
+ doCheck = false;
+
+ meta = {
+ description = "A open-source tool for writers";
+ homepage = "http://www.theologeek.ch/manuskript";
+ longDescription = ''
+ Manuskript is a tool for those writer who like to organize and
+ plan everything before writing. The snowflake method can help you
+ grow your idea into a book, by leading you step by step and asking
+ you questions to go deeper. While writing, keep track of notes
+ about every characters, plot, event, place in your story.
+
+ Develop complex characters and keep track of all useful infos.
+ Create intricate plots, linked to your characters, and use them to
+ outline your story. Organize your ideas about the world your
+ characters live in.
+ '';
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.steveej ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/marker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/marker/default.nix
new file mode 100644
index 000000000000..19ffdbd2c2c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/marker/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+, gtk3
+, gtksourceview
+, gtkspell3
+, webkitgtk
+, pandoc
+}:
+
+stdenv.mkDerivation rec {
+ pname = "marker";
+ version = "2020.04.04";
+
+ src = fetchFromGitHub {
+ owner = "fabiocolacio";
+ repo = "Marker";
+ rev = version;
+ fetchSubmodules = true;
+ sha256 = "1iy7izyprf050bix8am1krqivgyxnhx3jm775v8f80cgbqxy7m5r";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ gtksourceview
+ gtkspell3
+ webkitgtk
+ pandoc
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://fabiocolacio.github.io/Marker/";
+ description = "Markdown editor for the Linux desktop";
+ maintainers = with maintainers; [ trepetti ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ changelog = "https://github.com/fabiocolacio/Marker/releases/tag/${version}";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/mg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/mg/default.nix
new file mode 100644
index 000000000000..ef6943001b9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/mg/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pkgconfig, ncurses, buildPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "mg";
+ version = "6.7";
+
+ src = fetchFromGitHub {
+ owner = "ibara";
+ repo = "mg";
+ rev = "mg-6.7";
+ sha256 = "15adwibq6xrfxbrxzk765g9250iyfn4wbcxd7kcsabiwn6apm0ai";
+ };
+
+ enableParallelBuilding = true;
+
+ makeFlags = [ "PKG_CONFIG=${buildPackages.pkgconfig}/bin/${buildPackages.pkgconfig.targetPrefix}pkg-config" ];
+
+ installPhase = ''
+ install -m 555 -Dt $out/bin mg
+ install -m 444 -Dt $out/share/man/man1 mg.1
+ '';
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "Micro GNU/emacs, a portable version of the mg maintained by the OpenBSD team";
+ homepage = "https://man.openbsd.org/OpenBSD-current/man1/mg.1";
+ license = licenses.publicDomain;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/micro/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/micro/default.nix
new file mode 100644
index 000000000000..f3506b0cb985
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/micro/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "micro";
+ version = "2.0.8";
+
+ src = fetchFromGitHub {
+ owner = "zyedidia";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1b51fvc9hrjfl8acr3yybp66xfll7d43412qwi76wxwarn06gkci";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ subPackages = [ "cmd/micro" ];
+
+ vendorSha256 = "19iqvl63g9y6gkzfmv87rrgj4c4y6ngh467ss94rzrhaybj2b2d8";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/zyedidia/micro/v2/internal/util.Version=${version} -X github.com/zyedidia/micro/v2/internal/util.CommitHash=${src.rev}" ];
+
+ postInstall = ''
+ installManPage assets/packaging/micro.1
+ install -Dt $out/share/applications assets/packaging/micro.desktop
+ '';
+
+ meta = with lib; {
+ homepage = "https://micro-editor.github.io";
+ description = "Modern and intuitive terminal-based text editor";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/mindforger/build.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/mindforger/build.patch
new file mode 100644
index 000000000000..e2745cbce2d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/mindforger/build.patch
@@ -0,0 +1,91 @@
+diff --git a/app/app.pro b/app/app.pro
+index 4d47065..a39a320 100644
+--- a/app/app.pro
++++ b/app/app.pro
+@@ -18,6 +18,8 @@
+ TARGET = mindforger
+ TEMPLATE = app
+
++include(../config.pri)
++
+ QT += widgets
+
+ mfner {
+@@ -297,7 +299,7 @@ RESOURCES += \
+ # See http://doc.qt.io/qt-5/qmake-advanced-usage.html
+
+ binfile.files += mindforger
+-binfile.path = /usr/bin/
++binfile.path = $$PREFIX/bin/
+ INSTALLS += binfile
+
+ # ########################################
+diff --git a/config.pri b/config.pri
+new file mode 100644
+index 0000000..ce05df1
+--- /dev/null
++++ b/config.pri
+@@ -0,0 +1,3 @@
++isEmpty(PREFIX) {
++ PREFIX = /usr
++}
+diff --git a/deps/discount/discount.pro b/deps/discount/discount.pro
+index a8dfe35..ec16468 100644
+--- a/deps/discount/discount.pro
++++ b/deps/discount/discount.pro
+@@ -5,6 +5,8 @@
+ # Webpage: http://www.pell.portland.or.us/~orc/Code/discount/
+ #
+
++include(../../config.pri)
++
+ QT -= core gui
+
+ TARGET = discount
+@@ -46,7 +48,7 @@ unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/lib
+ } else {
+- target.path = /usr/lib
++ target.path = $$PREFIX/lib
+ }
+ INSTALLS += target
+ }
+diff --git a/mindforger.pro b/mindforger.pro
+index ae627f2..0953856 100644
+--- a/mindforger.pro
++++ b/mindforger.pro
+@@ -32,6 +32,8 @@ TEMPLATE = subdirs
+
+ SUBDIRS = deps lib app
+
++include(config.pri)
++
+ # build dependencies
+ lib.depends = deps
+ app.depends = lib
+@@ -44,20 +46,20 @@ app.depends = lib
+ #IMPORTANT: binfile MUST be specified in app/app.pro (project next to/that builds binary)
+
+ docfiles.files += doc/*
+-docfiles.path = /usr/share/doc/mindforger/
++docfiles.path = $$PREFIX/share/doc/mindforger/
+ INSTALLS += docfiles
+
+ manfiles.files += man/*
+-manfiles.path = /usr/share/man/man1/
++manfiles.path = $$PREFIX/share/man/man1/
+ INSTALLS += manfiles
+
+ iconfiles.files += app/resources/icons/*
+-iconfiles.path = /usr/share/icons/mindforger/
++iconfiles.path = $$PREFIX/share/icons/mindforger/
+ INSTALLS += iconfiles
+
+ # experiment w/ file
+ shortcutfiles.files += app/resources/gnome-shell/mindforger.desktop
+-shortcutfiles.path = /usr/share/applications/
++shortcutfiles.path = $$PREFIX/share/applications/
+ INSTALLS += shortcutfiles
+
+ # eof
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/mindforger/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/mindforger/default.nix
new file mode 100644
index 000000000000..82aa38c14499
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/mindforger/default.nix
@@ -0,0 +1,45 @@
+{ mkDerivation, stdenv, fetchurl, qmake, qtbase, qtwebkit }:
+
+mkDerivation rec {
+ pname = "mindforger";
+ version = "1.48.2";
+
+ src = fetchurl {
+ url = "https://github.com/dvorka/mindforger/releases/download/1.48.0/mindforger_${version}.tgz";
+ sha256 = "1wlrl8hpjcpnq098l3n2d1gbhbjylaj4z366zvssqvmafr72iyw4";
+ };
+
+ nativeBuildInputs = [ qmake ] ;
+ buildInputs = [ qtbase qtwebkit ] ;
+
+ doCheck = true;
+
+ enableParallelBuilding = true ;
+
+ patches = [ ./build.patch ] ;
+
+ postPatch = ''
+ substituteInPlace deps/discount/version.c.in --subst-var-by TABSTOP 4
+ substituteInPlace app/resources/gnome-shell/mindforger.desktop --replace /usr "$out"
+ '';
+
+ preConfigure = ''
+ export AC_PATH="$PATH"
+ pushd deps/discount
+ ./configure.sh
+ popd
+ '';
+
+ qmakeFlags = [ "-r mindforger.pro" "CONFIG+=mfnoccache" ] ;
+
+ meta = with stdenv.lib; {
+ description = "Thinking Notebook & Markdown IDE";
+ longDescription = ''
+ MindForger is actually more than an editor or IDE - it's human
+ mind inspired personal knowledge management tool
+ '';
+ homepage = "https://www.mindforger.com";
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/mle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/mle/default.nix
new file mode 100644
index 000000000000..692b82dc6887
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/mle/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, termbox, pcre, uthash, lua5_3 }:
+
+stdenv.mkDerivation rec {
+ pname = "mle";
+ version = "1.4.3";
+
+ src = fetchFromGitHub {
+ owner = "adsr";
+ repo = "mle";
+ rev = "v${version}";
+ sha256 = "16dbwfdd6sqqn7jfaxd5wdy8y9ghbihnz6bgn3xhqcww8rj1sia1";
+ };
+
+ # Fix location of Lua 5.3 header and library
+ postPatch = ''
+ substituteInPlace Makefile --replace "-llua5.3" "-llua";
+ substituteInPlace mle.h --replace "<lua5.3/" "<";
+ patchShebangs tests/*
+ '';
+
+ buildInputs = [ termbox pcre uthash lua5_3 ];
+
+ doCheck = true;
+
+ installFlags = [ "prefix=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ description = "Small, flexible terminal-based text editor";
+ homepage = "https://github.com/adsr/mle";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ adsr ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/moe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/moe/default.nix
new file mode 100644
index 000000000000..060abda33d0d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/moe/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl
+, lzip, ncurses
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+ pname = "moe";
+ version = "1.10";
+
+ src = fetchurl {
+ url = "mirror://gnu/moe/${pname}-${version}.tar.lz";
+ sha256 = "0fymywdiy9xqppcmvgs7mf7d3gfrky3jp5jkxs2l3v93asml9zcc";
+ };
+
+ prePatch = ''
+ substituteInPlace window_vector.cc --replace \
+ "insert( 0U, 1," \
+ "insert( 0U, 1U,"
+ '';
+
+ nativeBuildInputs = [ lzip ];
+ buildInputs = [ ncurses ];
+
+ meta = {
+ description = "A small, 8-bit clean editor";
+ longDescription = ''
+ GNU moe is a powerful, 8-bit clean, console text editor for ISO-8859 and
+ ASCII character encodings. It has a modeless, user-friendly interface,
+ online help, multiple windows, unlimited undo/redo capability, unlimited
+ line length, unlimited buffers, global search/replace (on all buffers at
+ once), block operations, automatic indentation, word wrapping, file name
+ completion, directory browser, duplicate removal from prompt histories,
+ delimiter matching, text conversion from/to UTF-8, romanization, etc.
+ '';
+ homepage = "https://www.gnu.org/software/moe/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = platforms.unix;
+ };
+}
+# TODO: a configurable, global moerc file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/monodevelop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/monodevelop/default.nix
new file mode 100644
index 000000000000..3a21eec07f42
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/monodevelop/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl
+, autoconf, automake, pkgconfig, shared-mime-info, intltool
+, glib, mono, gtk-sharp-2_0, gnome2, gnome-sharp, unzip
+, dotnetPackages
+}:
+
+stdenv.mkDerivation rec {
+ version = "5.9.4.5";
+ revision = "8010a90f6e246b32364e3fb46ef2c9d1be9c9a2b";
+ pname = "monodevelop";
+
+ src = fetchurl {
+ url = "https://download.mono-project.com/sources/monodevelop/${pname}-${version}.tar.bz2";
+ sha256 = "0bim4bfv3zwijafl9g0cx3159zq43dlcv74mnyrda41j4p52w5ji";
+ };
+
+ nunit2510 = fetchurl {
+ url = "https://launchpad.net/nunitv2/2.5/2.5.10/+download/NUnit-2.5.10.11092.zip";
+ sha256 = "0k5h5bz1p2v3d0w0hpkpbpvdkcszgp8sr9ik498r1bs72w5qlwnc";
+ };
+
+ postPatch = ''
+ # From https://bugzilla.xamarin.com/show_bug.cgi?id=23696#c19
+
+ # cecil needs NUnit 2.5.10 - this is also missing from the tar
+ unzip -j ${nunit2510} -d external/cecil/Test/libs/nunit-2.5.10 NUnit-2.5.10.11092/bin/net-2.0/framework/\*
+
+ # the tar doesn't include the nuget binary, so grab it from github and copy it
+ # into the right place
+ cp -vfR "$(dirname $(pkg-config NuGet.Core --variable=Libraries))"/* external/nuget-binary/
+ '';
+
+ # Revert this commit which broke the ability to use pkg-config to locate dlls
+ patchFlags = [ "-p2" ];
+ patches = [ ./git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ autoconf automake shared-mime-info intltool
+ mono gtk-sharp-2_0 gnome-sharp unzip
+ dotnetPackages.NUnit
+ dotnetPackages.NUnitRunners
+ dotnetPackages.Nuget
+ ];
+
+ preConfigure = "patchShebangs ./configure";
+
+ preBuild = ''
+ cat > ./buildinfo <<EOF
+ Release ID: ${version}
+ Git revision: ${revision}
+ Build date: 1970-01-01 00:00:01
+ EOF
+ '';
+
+ postInstall = ''
+ for prog in monodevelop mdtool; do
+ patch -p 0 $out/bin/$prog <<EOF
+ 2a3,5
+ > export MONO_GAC_PREFIX=${gnome-sharp}:${gtk-sharp-2_0}:\$MONO_GAC_PREFIX
+ > export PATH=${mono}/bin:\$PATH
+ > export LD_LIBRARY_PATH=${stdenv.lib.makeLibraryPath [ glib gnome2.libgnomeui gnome2.gnome_vfs gnome-sharp gtk-sharp-2_0 gtk-sharp-2_0.gtk ]}:\$LD_LIBRARY_PATH
+ >
+ EOF
+ done
+
+ # Without this, you get a missing DLL error any time you install an addin..
+ ln -sv `pkg-config nunit.core --variable=Libraries` $out/lib/monodevelop/AddIns/NUnit
+ ln -sv `pkg-config nunit.core.interfaces --variable=Libraries` $out/lib/monodevelop/AddIns/NUnit
+ ln -sv `pkg-config nunit.framework --variable=Libraries` $out/lib/monodevelop/AddIns/NUnit
+ ln -sv `pkg-config nunit.util --variable=Libraries` $out/lib/monodevelop/AddIns/NUnit
+ '';
+
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ obadz ];
+ broken = true; # 2018-09-21, build has failed since 2018-03-08
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch
new file mode 100644
index 000000000000..969aad33ec0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch
@@ -0,0 +1,57 @@
+diff --git a/main/src/addins/AspNet/MonoDevelop.AspNet.csproj b/main/src/addins/AspNet/MonoDevelop.AspNet.csproj
+index 02d3a01..c6daaad 100644
+--- a/main/src/addins/AspNet/MonoDevelop.AspNet.csproj
++++ b/main/src/addins/AspNet/MonoDevelop.AspNet.csproj
+@@ -452,34 +452,6 @@
+ <None Include="Templates\Projects\WebApplication.xpt.xml">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
+- <None Include="..\..\..\packages\Microsoft.AspNet.Mvc.5.2.2\lib\net45\System.Web.Mvc.dll">
+- <Link>System.Web.Mvc.dll</Link>
+- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+- </None>
+- <None Include="..\..\..\packages\Microsoft.AspNet.Razor.3.2.2\lib\net45\System.Web.Razor.dll">
+- <Link>System.Web.Razor.dll</Link>
+- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+- </None>
+- <None Include="..\..\..\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.Helpers.dll">
+- <Link>System.Web.Helpers.dll</Link>
+- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+- </None>
+- <None Include="..\..\..\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.WebPages.Deployment.dll">
+- <Link>System.Web.WebPages.Deployment.dll</Link>
+- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+- </None>
+- <None Include="..\..\..\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.WebPages.dll">
+- <Link>System.Web.WebPages.dll</Link>
+- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+- </None>
+- <None Include="..\..\..\packages\Microsoft.AspNet.WebPages.3.2.2\lib\net45\System.Web.WebPages.Razor.dll">
+- <Link>System.Web.WebPages.Razor.dll</Link>
+- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+- </None>
+- <None Include="..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll">
+- <Link>Microsoft.Web.Infrastructure.dll</Link>
+- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+- </None>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <ItemGroup>
+diff --git a/main/src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml b/main/src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml
+index eab7c32..4a75311 100644
+--- a/main/src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml
++++ b/main/src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml
+@@ -1,13 +1,6 @@
+ <ExtensionModel>
+
+ <Runtime>
+- <Import assembly = "System.Web.Helpers.dll" />
+- <Import assembly = "System.Web.Mvc.dll" />
+- <Import assembly = "System.Web.Razor.dll" />
+- <Import assembly = "System.Web.WebPages.Deployment.dll" />
+- <Import assembly = "System.Web.WebPages.dll" />
+- <Import assembly = "System.Web.WebPages.Razor.dll" />
+-
+ <Import file = "Html/Schemas/xhtml1-strict.xsd" />
+ <Import file = "Html/Schemas/xhtml1-transitional.xsd" />
+ <Import file = "Html/Schemas/xhtml1-frameset.xsd" />
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
new file mode 100644
index 000000000000..08841eb58100
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, swt, jdk, makeWrapper, alsaLib, jack2, fluidsynth, libpulseaudio }:
+
+let metadata = assert stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux";
+ if stdenv.hostPlatform.system == "i686-linux" then
+ { arch = "x86"; sha256 = "27675c358db237df74d20e8676000c25a87b9de0bb0a6d1c325e8d6db807d296"; }
+ else
+ { arch = "x86_64"; sha256 = "298555a249adb3ad72f3aef72a124e30bfa01cd069c7b5d152a738140e7903a2"; };
+in stdenv.mkDerivation rec {
+ version = "1.5.2";
+ pname = "tuxguitar";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/tuxguitar/${pname}-${version}-linux-${metadata.arch}.tar.gz";
+ sha256 = metadata.sha256;
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -r dist lib share $out/
+ cp tuxguitar.sh $out/bin/tuxguitar
+
+ ln -s $out/dist $out/bin/dist
+ ln -s $out/lib $out/bin/lib
+ ln -s $out/share $out/bin/share
+
+ wrapProgram $out/bin/tuxguitar \
+ --set JAVA "${jdk}/bin/java" \
+ --prefix LD_LIBRARY_PATH : "$out/lib/:${stdenv.lib.makeLibraryPath [ swt alsaLib jack2 fluidsynth libpulseaudio ]}" \
+ --prefix CLASSPATH : "${swt}/jars/swt.jar:$out/lib/tuxguitar.jar:$out/lib/itext.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A multitrack guitar tablature editor";
+ longDescription = ''
+ TuxGuitar is a multitrack guitar tablature editor and player written
+ in Java-SWT. It can open GuitarPro, PowerTab and TablEdit files.
+ '';
+ homepage = "http://www.tuxguitar.com.ar/";
+ license = licenses.lgpl2;
+ maintainers = [ maintainers.ardumont ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/nano/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/nano/default.nix
new file mode 100644
index 000000000000..bd8ad4b3d20d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/nano/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, fetchFromGitHub, ncurses, texinfo, writeScript
+, common-updater-scripts, git, nix, nixfmt, coreutils, gnused, nixosTests
+, gettext ? null, enableNls ? true, enableTiny ? false }:
+
+assert enableNls -> (gettext != null);
+
+with stdenv.lib;
+
+let
+ nixSyntaxHighlight = fetchFromGitHub {
+ owner = "seitz";
+ repo = "nanonix";
+ rev = "bf8d898efaa10dce3f7972ff765b58c353b4b4ab";
+ sha256 = "0773s5iz8aw9npgyasb0r2ybp6gvy2s9sq51az8w7h52bzn5blnn";
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "nano";
+ version = "5.4";
+
+ src = fetchurl {
+ url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
+ sha256 = "1sc6xl9935k9s9clkv83hapijka4qknfnj6f15c3b1i2n84396gy";
+ };
+
+ nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
+ buildInputs = [ ncurses ];
+
+ outputs = [ "out" "info" ];
+
+ configureFlags = [
+ "--sysconfdir=/etc"
+ (stdenv.lib.enableFeature enableNls "nls")
+ (stdenv.lib.enableFeature enableTiny "tiny")
+ ];
+
+ postInstall = ''
+ cp ${nixSyntaxHighlight}/nix.nanorc $out/share/nano/
+ '';
+
+ enableParallelBuilding = true;
+
+ passthru = {
+ tests = { inherit (nixosTests) nano; };
+
+ updateScript = writeScript "update.sh" ''
+ #!${stdenv.shell}
+ set -o errexit
+ PATH=${
+ stdenv.lib.makeBinPath [
+ common-updater-scripts
+ git
+ nixfmt
+ nix
+ coreutils
+ gnused
+ ]
+ }
+
+ oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
+ latestTag="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags git://git.savannah.gnu.org/nano.git '*' | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^v||g')"
+
+ if [ ! "$oldVersion" = "$latestTag" ]; then
+ update-source-version ${pname} "$latestTag" --version-key=version --print-changes
+ nixpkgs="$(git rev-parse --show-toplevel)"
+ default_nix="$nixpkgs/pkgs/applications/editors/nano/default.nix"
+ nixfmt "$default_nix"
+ else
+ echo "${pname} is already up-to-date"
+ fi
+ '';
+ };
+
+ meta = {
+ homepage = "https://www.nano-editor.org/";
+ description = "A small, user-friendly console text editor";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ joachifm nequissimus ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix
new file mode 100644
index 000000000000..54442fc21f43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, writeScript, nixosTests, common-updater-scripts
+, coreutils, git, gnused, nix, nixfmt }:
+
+let
+ owner = "scopatz";
+ repo = "nanorc";
+in stdenv.mkDerivation rec {
+ pname = "nanorc";
+ version = "2020-10-10";
+
+ src = fetchFromGitHub {
+ inherit owner repo;
+ rev = builtins.replaceStrings [ "-" ] [ "." ] version;
+ sha256 = "3B2nNFYkwYHCX6pQz/hMO/rnVqlCiw1BSNmGmJ6KCqE=";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/share
+
+ install *.nanorc $out/share/
+ '';
+
+ passthru.updateScript = writeScript "update.sh" ''
+ #!${stdenv.shell}
+ set -o errexit
+ PATH=${
+ stdenv.lib.makeBinPath [
+ common-updater-scripts
+ coreutils
+ git
+ gnused
+ nix
+ nixfmt
+ ]
+ }
+ oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"' | sed 's|\\.|-|g')"
+ latestTag="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags git@github.com:${owner}/${repo} '*.*.*' | tail --lines=1 | cut --delimiter='/' --fields=3)"
+ if [ "$oldVersion" != "$latestTag" ]; then
+ nixpkgs="$(git rev-parse --show-toplevel)"
+ default_nix="$nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix"
+ newTag=$(echo $latestTag | sed 's|\.|-|g')
+ update-source-version ${pname} "$newTag" --version-key=version --print-changes
+ nixfmt "$default_nix"
+ else
+ echo "${pname} is already up-to-date"
+ fi
+ '';
+
+ meta = {
+ description = "Improved Nano Syntax Highlighting Files";
+ homepage = "https://github.com/scopatz/nanorc";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ nequissimus ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/ne/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/ne/default.nix
new file mode 100644
index 000000000000..4faf1e28b1cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/ne/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, ncurses, texinfo, texlive, perl, ghostscript }:
+
+stdenv.mkDerivation rec {
+ pname = "ne";
+ version = "3.3.0";
+
+ src = fetchFromGitHub {
+ owner = "vigna";
+ repo = pname;
+ rev = version;
+ sha256 = "01aglnsfljlvx0wvyvpjfn4y88jf450a06qnj9a8lgdqv1hdkq1a";
+ };
+
+ postPatch = ''
+ substituteInPlace makefile --replace "./version.pl" "perl version.pl"
+ substituteInPlace src/makefile --replace "-lcurses" "-lncurses"
+ '';
+
+ nativeBuildInputs = [ texlive.combined.scheme-medium texinfo perl ghostscript ];
+ buildInputs = [ ncurses ];
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ description = "The nice editor";
+ homepage = "http://ne.di.unimi.it/";
+ longDescription = ''
+ ne is a free (GPL'd) text editor based on the POSIX standard that runs
+ (we hope) on almost any UN*X machine. ne is easy to use for the beginner,
+ but powerful and fully configurable for the wizard, and most sparing in its
+ resource usage. See the manual for some highlights of ne's features.
+ '';
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/nedit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/nedit/default.nix
new file mode 100644
index 000000000000..e1d1fa3070a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/nedit/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, xlibsWrapper, motif, libXpm }:
+
+stdenv.mkDerivation rec {
+ pname = "nedit";
+ version = "5.7";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/nedit/nedit-source/${pname}-${version}-src.tar.gz";
+ sha256 = "0ym1zhjx9976rf2z5nr7dj4mjkxcicimhs686snjhdcpzxwsrndd";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ nativeBuildInputs = [ xlibsWrapper ];
+ buildInputs = [ motif libXpm ];
+
+ # the linux config works fine on darwin too!
+ buildFlags = stdenv.lib.optional (stdenv.isLinux || stdenv.isDarwin) "linux";
+
+ NIX_CFLAGS_COMPILE="-DBUILD_UNTESTED_NEDIT -L${motif}/lib";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -p source/nedit source/nc $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/projects/nedit";
+ description = "A fast, compact Motif/X11 plain text editor";
+ platforms = with platforms; linux ++ darwin;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/default.nix
new file mode 100644
index 000000000000..b546aae790a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/default.nix
@@ -0,0 +1,141 @@
+{ stdenv, fetchFromGitHub, cmake, gettext, msgpack, libtermkey, libiconv
+, libuv, lua, ncurses, pkgconfig
+, unibilium, xsel, gperf
+, libvterm-neovim
+, glibcLocales ? null, procps ? null
+
+# now defaults to false because some tests can be flaky (clipboard etc)
+, doCheck ? false
+, nodejs ? null, fish ? null, python ? null
+}:
+
+with stdenv.lib;
+
+let
+ neovimLuaEnv = lua.withPackages(ps:
+ (with ps; [ lpeg luabitop mpack ]
+ ++ optionals doCheck [
+ nvim-client luv coxpcall busted luafilesystem penlight inspect
+ ]
+ ));
+
+ pyEnv = python.withPackages(ps: [ ps.pynvim ps.msgpack ]);
+
+ # FIXME: this is verry messy and strange.
+ # see https://github.com/NixOS/nixpkgs/pull/80528
+ luv = lua.pkgs.luv;
+ luvpath = with builtins ; if stdenv.isDarwin
+ then "${luv.libluv}/lib/lua/${lua.luaversion}/libluv.${head (match "([0-9.]+).*" luv.version)}.dylib"
+ else "${luv}/lib/lua/${lua.luaversion}/luv.so";
+
+in
+ stdenv.mkDerivation rec {
+ pname = "neovim-unwrapped";
+ version = "0.4.4";
+
+ src = fetchFromGitHub {
+ owner = "neovim";
+ repo = "neovim";
+ rev = "v${version}";
+ sha256 = "11zyj6jvkwas3n6w1ckj3pk6jf81z1g7ngg4smmwm7c27y2a6f2m";
+ };
+
+ patches = [
+ # introduce a system-wide rplugin.vim in addition to the user one
+ # necessary so that nix can handle `UpdateRemotePlugins` for the plugins
+ # it installs. See https://github.com/neovim/neovim/issues/9413.
+ ./system_rplugin_manifest.patch
+ ];
+
+ dontFixCmake = true;
+ enableParallelBuilding = true;
+
+ buildInputs = [
+ gperf
+ libtermkey
+ libuv
+ libvterm-neovim
+ luv.libluv
+ msgpack
+ ncurses
+ neovimLuaEnv
+ unibilium
+ ] ++ optional stdenv.isDarwin libiconv
+ ++ optionals doCheck [ glibcLocales procps ]
+ ;
+
+ inherit doCheck;
+
+ # to be exhaustive, one could run
+ # make oldtests too
+ checkPhase = ''
+ make functionaltest
+ '';
+
+ nativeBuildInputs = [
+ cmake
+ gettext
+ pkgconfig
+ ];
+
+ # extra programs test via `make functionaltest`
+ checkInputs = [
+ fish
+ nodejs
+ pyEnv # for src/clint.py
+ ];
+
+
+ # nvim --version output retains compilation flags and references to build tools
+ postPatch = ''
+ substituteInPlace src/nvim/version.c --replace NVIM_VERSION_CFLAGS "";
+ '';
+ # check that the above patching actually works
+ disallowedReferences = [ stdenv.cc ];
+
+ cmakeFlags = [
+ "-DGPERF_PRG=${gperf}/bin/gperf"
+ "-DLUA_PRG=${neovimLuaEnv.interpreter}"
+ "-DLIBLUV_LIBRARY=${luvpath}"
+ ]
+ ++ optional doCheck "-DBUSTED_PRG=${neovimLuaEnv}/bin/busted"
+ ++ optional (!lua.pkgs.isLuaJIT) "-DPREFER_LUA=ON"
+ ;
+
+ # triggers on buffer overflow bug while running tests
+ hardeningDisable = [ "fortify" ];
+
+ preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace src/nvim/CMakeLists.txt --replace " util" ""
+ '';
+
+ postInstall = stdenv.lib.optionalString stdenv.isLinux ''
+ sed -i -e "s|'xsel|'${xsel}/bin/xsel|g" $out/share/nvim/runtime/autoload/provider/clipboard.vim
+ '';
+
+ # export PATH=$PWD/build/bin:${PATH}
+ shellHook=''
+ export VIMRUNTIME=$PWD/runtime
+ '';
+
+ meta = {
+ description = "Vim text editor fork focused on extensibility and agility";
+ longDescription = ''
+ Neovim is a project that seeks to aggressively refactor Vim in order to:
+ - Simplify maintenance and encourage contributions
+ - Split the work between multiple developers
+ - Enable the implementation of new/modern user interfaces without any
+ modifications to the core source
+ - Improve extensibility with a new plugin architecture
+ '';
+ homepage = "https://www.neovim.io";
+ # "Contributions committed before b17d96 by authors who did not sign the
+ # Contributor License Agreement (CLA) remain under the Vim license.
+ # Contributions committed after b17d96 are licensed under Apache 2.0 unless
+ # those contributions were copied from Vim (identified in the commit logs
+ # by the vim-patch token). See LICENSE for details."
+ license = with licenses; [ asl20 vim ];
+ maintainers = with maintainers; [ manveru rvolosatovs ma27 ];
+ platforms = platforms.unix;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
new file mode 100644
index 000000000000..e6166dd14b19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, rustPlatform, fetchFromGitHub, gtk, webkitgtk }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "gnvim-unwrapped";
+ version = "0.1.6";
+
+ src = fetchFromGitHub {
+ owner = "vhakulinen";
+ repo = "gnvim";
+ rev = "v${version}";
+ sha256 = "1cc3yk04v9icdjr5cn58mqc3ba1wqmlzhf9ly7biy9m8yk30w9y0";
+ };
+
+ cargoSha256 = "1fyn8nsabzrfl9ykf2gk2p8if0yjp6k0ybrmp0pw67pbwaxpb9ym";
+
+ buildInputs = [ gtk webkitgtk ];
+
+ # The default build script tries to get the version through Git, so we
+ # replace it
+ prePatch = ''
+ cat << EOF > build.rs
+ use std::env;
+ use std::fs::File;
+ use std::io::Write;
+ use std::path::Path;
+
+ fn main() {
+ let out_dir = env::var("OUT_DIR").unwrap();
+ let dest_path = Path::new(&out_dir).join("gnvim_version.rs");
+ let mut f = File::create(&dest_path).unwrap();
+ f.write_all(b"const VERSION: &str = \"${version}\";").unwrap();
+ }
+ EOF
+ '';
+
+ buildPhase = ''
+ make build
+ '';
+
+ installPhase = ''
+ make install PREFIX="${placeholder "out"}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GUI for neovim, without any web bloat";
+ homepage = "https://github.com/vhakulinen/gnvim";
+ license = licenses.mit;
+ maintainers = with maintainers; [ minijackson ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/gnvim/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/gnvim/wrapper.nix
new file mode 100644
index 000000000000..bb9930b6c718
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/gnvim/wrapper.nix
@@ -0,0 +1,39 @@
+{ stdenv, gnvim-unwrapped, neovim, makeWrapper }:
+
+stdenv.mkDerivation {
+ pname = "gnvim";
+ version = gnvim-unwrapped.version;
+ buildCommand = if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ cp -r ${gnvim-unwrapped}/bin/gnvim.app $out/Applications
+
+ chmod -R a+w "$out/Applications/gnvim.app/Contents/MacOS"
+ wrapProgram "$out/Applications/gnvim.app/Contents/MacOS/gnvim" \
+ --prefix PATH : "${neovim}/bin" \
+ --set GNVIM_RUNTIME_PATH "${gnvim-unwrapped}/share/gnvim/runtime"
+ '' else ''
+ makeWrapper '${gnvim-unwrapped}/bin/gnvim' "$out/bin/gnvim" \
+ --prefix PATH : "${neovim}/bin" \
+ --set GNVIM_RUNTIME_PATH "${gnvim-unwrapped}/share/gnvim/runtime"
+
+ mkdir -p "$out/share"
+ ln -s '${gnvim-unwrapped}/share/icons' "$out/share/icons"
+
+ # copy and fix .desktop file
+ cp -r '${gnvim-unwrapped}/share/applications' "$out/share/applications"
+ # Sed needs a writable directory to do inplace modifications
+ chmod u+rw "$out/share/applications"
+ sed -e "s|Exec=.\\+gnvim\\>|Exec=gnvim|" -i $out/share/applications/*.desktop
+ '';
+
+ preferLocalBuild = true;
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ passthru.unwrapped = gnvim-unwrapped;
+
+ inherit (gnvim-unwrapped) meta;
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix
new file mode 100644
index 000000000000..06beff03f904
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+with stdenv.lib;
+
+pythonPackages.buildPythonApplication rec {
+ pname = "neovim-remote";
+ version = "2.4.0";
+ disabled = !pythonPackages.isPy3k;
+
+ src = fetchFromGitHub {
+ owner = "mhinz";
+ repo = "neovim-remote";
+ rev = "v${version}";
+ sha256 = "0jlw0qksak4bdzddpsj74pm2f2bgpj3cwrlspdjjy0j9qzg0mpl9";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [
+ pynvim
+ psutil
+ setuptools
+ ];
+
+ meta = {
+ description = "A tool that helps controlling nvim processes from a terminal";
+ homepage = "https://github.com/mhinz/neovim-remote/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ edanaher ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/qt.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/qt.nix
new file mode 100644
index 000000000000..323f08c23f87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/qt.nix
@@ -0,0 +1,81 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
+, msgpack, neovim, pythonPackages, qtbase }:
+
+let
+ unwrapped = mkDerivation rec {
+ pname = "neovim-qt-unwrapped";
+ version = "0.2.16.1";
+
+ src = fetchFromGitHub {
+ owner = "equalsraf";
+ repo = "neovim-qt";
+ rev = "v${version}";
+ sha256 = "0x5brrim3f21bzdmh6wyrhrislwpx1248wbx56csvic6v78hzqny";
+ };
+
+ cmakeFlags = [
+ "-DUSE_SYSTEM_MSGPACK=1"
+ "-DENABLE_TESTS=0" # tests fail because xcb platform plugin is not found
+ ];
+
+ buildInputs = [
+ neovim.unwrapped # only used to generate help tags at build time
+ qtbase
+ ] ++ (with pythonPackages; [
+ jinja2 python msgpack
+ ]);
+
+ nativeBuildInputs = [ cmake doxygen ];
+
+ enableParallelBuilding = true;
+
+ preCheck = ''
+ # The GUI tests require a running X server, disable them
+ sed -i ../test/CMakeLists.txt \
+ -e '/^add_xtest_gui/d'
+ '';
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Neovim client library and GUI, in Qt5";
+ homepage = "https://github.com/equalsraf/neovim-qt";
+ license = licenses.isc;
+ maintainers = with maintainers; [ peterhoeg ];
+ inherit (neovim.meta) platforms;
+ inherit version;
+ };
+ };
+in
+ stdenv.mkDerivation {
+ pname = "neovim-qt";
+ version = unwrapped.version;
+ buildCommand = if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ cp -r ${unwrapped}/bin/nvim-qt.app $out/Applications
+
+ chmod -R a+w "$out/Applications/nvim-qt.app/Contents/MacOS"
+ wrapProgram "$out/Applications/nvim-qt.app/Contents/MacOS/nvim-qt" \
+ --prefix PATH : "${neovim}/bin"
+ '' else ''
+ makeWrapper '${unwrapped}/bin/nvim-qt' "$out/bin/nvim-qt" \
+ --prefix PATH : "${neovim}/bin"
+
+ # link .desktop file
+ mkdir -p "$out/share/pixmaps"
+ ln -s '${unwrapped}/share/applications' "$out/share/applications"
+ ln -s '${unwrapped}/share/pixmaps/nvim-qt.png' "$out/share/pixmaps/nvim-qt.png"
+ '';
+
+ preferLocalBuild = true;
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ passthru = {
+ inherit unwrapped;
+ };
+
+ inherit (unwrapped) meta;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile
new file mode 100644
index 000000000000..eebecf2906fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'neovim'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
new file mode 100644
index 000000000000..d0827bf2a7ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
@@ -0,0 +1,17 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ msgpack (1.2.6)
+ multi_json (1.13.1)
+ neovim (0.8.0)
+ msgpack (~> 1.1)
+ multi_json (~> 1.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ neovim
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
new file mode 100644
index 000000000000..28a53cc590f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
@@ -0,0 +1,27 @@
+{
+ msgpack = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0031gd2mjyba6jb7m97sqa149zjkr0vzn2s2gpb3m9nb67gqkm13";
+ type = "gem";
+ };
+ version = "1.2.6";
+ };
+ multi_json = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ neovim = {
+ dependencies = ["msgpack" "multi_json"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07scrdfk7pyn5jgx5m2yajdqpbdv42833vbw568qqag6xp99j3yk";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/system_rplugin_manifest.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/system_rplugin_manifest.patch
new file mode 100644
index 000000000000..f634d3ec056a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/system_rplugin_manifest.patch
@@ -0,0 +1,29 @@
+diff --git a/runtime/autoload/remote/host.vim b/runtime/autoload/remote/host.vim
+index 6266b312b..965fabf1e 100644
+--- a/runtime/autoload/remote/host.vim
++++ b/runtime/autoload/remote/host.vim
+@@ -71,7 +71,8 @@ function! remote#host#RegisterPlugin(host, path, specs) abort
+
+ for plugin in plugins
+ if plugin.path == a:path
+- throw 'Plugin "'.a:path.'" is already registered'
++ " plugin already registered
++ return
+ endif
+ endfor
+
+diff --git a/runtime/plugin/rplugin.vim b/runtime/plugin/rplugin.vim
+index 122d8d47f..83fbf8b57 100644
+--- a/runtime/plugin/rplugin.vim
++++ b/runtime/plugin/rplugin.vim
+@@ -54,6 +54,10 @@ function! s:GetManifest() abort
+ endfunction
+
+ function! s:LoadRemotePlugins() abort
++ if exists('$NVIM_SYSTEM_RPLUGIN_MANIFEST')
++ let g:system_remote_plugins = fnamemodify($NVIM_SYSTEM_RPLUGIN_MANIFEST, ':p')
++ execute 'source' fnameescape(g:system_remote_plugins)
++ endif
+ let g:loaded_remote_plugins = s:GetManifest()
+ if filereadable(g:loaded_remote_plugins)
+ execute 'source' fnameescape(g:loaded_remote_plugins)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/utils.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/utils.nix
new file mode 100644
index 000000000000..d992ccd3f6a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/utils.nix
@@ -0,0 +1,160 @@
+{ lib
+, vimUtils
+, nodejs
+, neovim-unwrapped
+, bundlerEnv
+, ruby
+, pythonPackages
+, python3Packages
+, writeText
+, wrapNeovimUnstable
+}:
+let
+ # returns everything needed for the caller to wrap its own neovim:
+ # - the generated content of the future init.vim
+ # - the arguments to wrap neovim with
+ # The caller is responsible for writing the init.vim and adding it to the wrapped
+ # arguments (["-u" writeText "init.vim" GENERATEDRC)]).
+ # This makes it possible to write the config anywhere: on a per-project basis
+ # .nvimrc or in $XDG_CONFIG_HOME/nvim/init.vim to avoid sideeffects.
+ # Indeed, note that wrapping with `-u init.vim` has sideeffects like .nvimrc wont be loaded
+ # anymore, $MYVIMRC wont be set etc
+ makeNeovimConfig =
+ {
+ withPython2 ? false
+ /* the function you would have passed to python.withPackages */
+ , extraPython2Packages ? (_: [ ])
+ , withPython3 ? true
+ /* the function you would have passed to python3.withPackages */
+ , extraPython3Packages ? (_: [ ])
+ , withNodeJs ? false
+ , withRuby ? true
+
+ # same values as in vimUtils.vimrcContent
+ , configure ? { }
+
+ # for forward compability, when adding new environments, haskell etc.
+ , ...
+ }@args:
+ let
+ rubyEnv = bundlerEnv {
+ name = "neovim-ruby-env";
+ gemdir = ./ruby_provider;
+ postBuild = ''
+ ln -sf ${ruby}/bin/* $out/bin
+ '';
+ };
+
+ requiredPlugins = vimUtils.requiredPlugins configure;
+ getDeps = attrname: map (plugin: plugin.${attrname} or (_: [ ]));
+
+ pluginPython2Packages = getDeps "pythonDependencies" requiredPlugins;
+ python2Env = pythonPackages.python.withPackages (ps:
+ [ ps.pynvim ]
+ ++ (extraPython2Packages ps)
+ ++ (lib.concatMap (f: f ps) pluginPython2Packages));
+
+ pluginPython3Packages = getDeps "python3Dependencies" requiredPlugins;
+ python3Env = python3Packages.python.withPackages (ps:
+ [ ps.pynvim ]
+ ++ (extraPython3Packages ps)
+ ++ (lib.concatMap (f: f ps) pluginPython3Packages));
+
+
+ # Mapping a boolean argument to a key that tells us whether to add or not to
+ # add to nvim's 'embedded rc' this:
+ # let g:<key>_host_prog=$out/bin/nvim-<key>
+ # Or this:
+ # let g:loaded_${prog}_provider=1
+ # While the latter tells nvim that this provider is not available
+ hostprog_check_table = {
+ node = withNodeJs;
+ python = withPython2;
+ python3 = withPython3;
+ ruby = withRuby;
+ };
+ ## Here we calculate all of the arguments to the 1st call of `makeWrapper`
+ # We start with the executable itself NOTE we call this variable "initial"
+ # because if configure != {} we need to call makeWrapper twice, in order to
+ # avoid double wrapping, see comment near finalMakeWrapperArgs
+ makeWrapperArgs =
+ let
+ binPath = lib.makeBinPath (lib.optionals withRuby [ rubyEnv ] ++ lib.optionals withNodeJs [ nodejs ]);
+
+ flags = lib.concatLists (lib.mapAttrsToList (
+ prog: withProg: [
+ "--cmd" (genProviderSettings prog withProg)
+ ]
+ )
+ hostprog_check_table);
+ in
+ [
+ "--argv0" "$0" "--add-flags" (lib.escapeShellArgs flags)
+ ] ++ lib.optionals withRuby [
+ "--set" "GEM_HOME" "${rubyEnv}/${rubyEnv.ruby.gemPath}"
+ ] ++ lib.optionals (binPath != "") [
+ "--suffix" "PATH" ":" binPath
+ ];
+
+ manifestRc = vimUtils.vimrcContent (configure // { customRC = ""; });
+ neovimRcContent = vimUtils.vimrcContent configure;
+ in
+ args // {
+ wrapperArgs = makeWrapperArgs;
+ inherit neovimRcContent;
+ inherit manifestRc;
+ inherit python2Env;
+ inherit python3Env;
+ inherit withNodeJs;
+ } // lib.optionalAttrs withRuby {
+ inherit rubyEnv;
+ };
+
+ genProviderSettings = prog: withProg:
+ if withProg then
+ "let g:${prog}_host_prog='${placeholder "out"}/bin/nvim-${prog}'"
+ else
+ "let g:loaded_${prog}_provider=1"
+ ;
+
+ # to keep backwards compatibility
+ legacyWrapper = neovim: {
+ extraMakeWrapperArgs ? ""
+ , withPython ? true
+ /* the function you would have passed to python.withPackages */
+ , extraPythonPackages ? (_: [])
+ /* the function you would have passed to python.withPackages */
+ , withPython3 ? true, extraPython3Packages ? (_: [])
+ , withNodeJs ? false
+ , withRuby ? true
+ , vimAlias ? false
+ , viAlias ? false
+ , configure ? {}
+ }:
+ let
+ /* for compatibility with passing extraPythonPackages as a list; added 2018-07-11 */
+ compatFun = funOrList: (if builtins.isList funOrList then
+ (_: lib.warn "passing a list as extraPythonPackages to the neovim wrapper is deprecated, pass a function as to python.withPackages instead" funOrList)
+ else funOrList);
+
+ res = makeNeovimConfig {
+ withPython2 = withPython;
+ extraPythonPackages = compatFun extraPythonPackages;
+ inherit withPython3;
+ extraPython3Packages = compatFun extraPython3Packages;
+ inherit withNodeJs withRuby viAlias vimAlias;
+ inherit configure;
+ };
+ in
+ wrapNeovimUnstable neovim (res // {
+ wrapperArgs = lib.escapeShellArgs (
+ res.wrapperArgs ++ lib.optionals (configure != {}) [
+ "--add-flags" "-u ${writeText "init.vim" res.neovimRcContent}"
+ ]) + " " + extraMakeWrapperArgs
+ ;
+ });
+in
+{
+ inherit makeNeovimConfig;
+ inherit legacyWrapper;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
new file mode 100644
index 000000000000..111e84e63437
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
@@ -0,0 +1,120 @@
+{ stdenv, symlinkJoin, lib, makeWrapper
+, vimUtils
+, writeText
+, bundlerEnv, ruby
+, nodejs
+, nodePackages
+, pythonPackages
+, python3Packages
+}:
+with stdenv.lib;
+
+neovim:
+
+let
+ wrapper = {
+ # should contain all args but the binary
+ wrapperArgs ? ""
+ , manifestRc ? null
+ , withPython2 ? true, python2Env ? null
+ , withPython3 ? true, python3Env ? null
+ , withNodeJs ? false
+ , rubyEnv ? null
+ , vimAlias ? false
+ , viAlias ? false
+ , ...
+ }:
+ let
+
+ # If configure != {}, we can't generate the rplugin.vim file with e.g
+ # NVIM_SYSTEM_RPLUGIN_MANIFEST *and* NVIM_RPLUGIN_MANIFEST env vars set in
+ # the wrapper. That's why only when configure != {} (tested both here and
+ # when postBuild is evaluated), we call makeWrapper once to generate a
+ # wrapper with most arguments we need, excluding those that cause problems to
+ # generate rplugin.vim, but still required for the final wrapper.
+ finalMakeWrapperArgs =
+ [ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim" ] ++
+ [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" ];
+ in
+ symlinkJoin {
+ name = "neovim-${stdenv.lib.getVersion neovim}";
+ # Remove the symlinks created by symlinkJoin which we need to perform
+ # extra actions upon
+ postBuild = lib.optionalString stdenv.isLinux ''
+ rm $out/share/applications/nvim.desktop
+ substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
+ --replace 'Name=Neovim' 'Name=WrappedNeovim'
+ ''
+ + optionalString withPython2 ''
+ makeWrapper ${python2Env}/bin/python $out/bin/nvim-python --unset PYTHONPATH
+ ''
+ + optionalString withPython3 ''
+ makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH
+ ''
+ + optionalString (rubyEnv != null) ''
+ ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
+ ''
+ + optionalString withNodeJs ''
+ ln -s ${nodePackages.neovim}/bin/neovim-node-host $out/bin/nvim-node
+ ''
+ + optionalString vimAlias ''
+ ln -s $out/bin/nvim $out/bin/vim
+ ''
+ + optionalString viAlias ''
+ ln -s $out/bin/nvim $out/bin/vi
+ ''
+ + optionalString (manifestRc != null) (let
+ manifestWrapperArgs =
+ [ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim-wrapper" ];
+ in ''
+ echo "Generating remote plugin manifest"
+ export NVIM_RPLUGIN_MANIFEST=$out/rplugin.vim
+ makeWrapper ${lib.escapeShellArgs manifestWrapperArgs} ${wrapperArgs}
+
+ # Some plugins assume that the home directory is accessible for
+ # initializing caches, temporary files, etc. Even if the plugin isn't
+ # actively used, it may throw an error as soon as Neovim is launched
+ # (e.g., inside an autoload script), causing manifest generation to
+ # fail. Therefore, let's create a fake home directory before generating
+ # the manifest, just to satisfy the needs of these plugins.
+ #
+ # See https://github.com/Yggdroot/LeaderF/blob/v1.21/autoload/lfMru.vim#L10
+ # for an example of this behavior.
+ export HOME="$(mktemp -d)"
+ # Launch neovim with a vimrc file containing only the generated plugin
+ # code. Pass various flags to disable temp file generation
+ # (swap/viminfo) and redirect errors to stderr.
+ # Only display the log on error since it will contain a few normally
+ # irrelevant messages.
+ if ! $out/bin/nvim-wrapper \
+ -u ${writeText "manifest.vim" manifestRc} \
+ -i NONE -n \
+ -E -V1rplugins.log -s \
+ +UpdateRemotePlugins +quit! > outfile 2>&1; then
+ cat outfile
+ echo -e "\nGenerating rplugin.vim failed!"
+ exit 1
+ fi
+ rm "${placeholder "out"}/bin/nvim-wrapper"
+ '')
+ + ''
+ rm $out/bin/nvim
+ makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgs}
+ '';
+
+ paths = [ neovim ];
+
+ preferLocalBuild = true;
+
+ buildInputs = [makeWrapper];
+ passthru = { unwrapped = neovim; };
+
+ meta = neovim.meta // {
+ # To prevent builds on hydra
+ hydraPlatforms = [];
+ # prefer wrapper over the package
+ priority = (neovim.meta.priority or 0) - 1;
+ };
+ };
+in
+ lib.makeOverridable wrapper
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/netbeans/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/netbeans/default.nix
new file mode 100644
index 000000000000..718b1b8dcb61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/netbeans/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem, which, unzip, libicns, imagemagick
+, jdk, perl, python
+}:
+
+let
+ version = "12.1";
+ desktopItem = makeDesktopItem {
+ name = "netbeans";
+ exec = "netbeans";
+ comment = "Integrated Development Environment";
+ desktopName = "Apache NetBeans IDE";
+ genericName = "Integrated Development Environment";
+ categories = "Development;";
+ icon = "netbeans";
+ };
+in
+stdenv.mkDerivation {
+ pname = "netbeans";
+ inherit version;
+ src = fetchurl {
+ url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
+ sha512 = "ad4bb5b191c784ed144b0b4831a8b95e0707c362917833c279d3f6fad11d7b3fb1f004f30121a941b694fc2ce323974b15072aa31cb5449111bc5d33d0d77103";
+ };
+
+ buildCommand = ''
+ # Unpack and perform some path patching.
+ unzip $src
+ patchShebangs .
+
+ # Copy to installation directory and create a wrapper capable of starting
+ # it.
+ mkdir -pv $out/bin
+ cp -a netbeans $out
+ makeWrapper $out/netbeans/bin/netbeans $out/bin/netbeans \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ jdk which ]} \
+ --prefix JAVA_HOME : ${jdk.home} \
+ --add-flags "--jdkhome ${jdk.home}"
+
+ # Extract pngs from the Apple icon image and create
+ # the missing ones from the 1024x1024 image.
+ icns2png --extract $out/netbeans/nb/netbeans.icns
+ for size in 16 24 32 48 64 128 256 512 1024; do
+ mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
+ if [ -e netbeans_"$size"x"$size"x32.png ]
+ then
+ mv netbeans_"$size"x"$size"x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/netbeans.png
+ else
+ convert -resize "$size"x"$size" netbeans_1024x1024x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/netbeans.png
+ fi
+ done;
+
+ # Create desktop item, so we can pick it from the KDE/GNOME menu
+ mkdir -pv $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications
+ '';
+
+ buildInputs = [ makeWrapper perl python unzip libicns imagemagick ];
+
+ meta = {
+ description = "An integrated development environment for Java, C, C++ and PHP";
+ homepage = "https://netbeans.apache.org/";
+ license = stdenv.lib.licenses.asl20;
+ maintainers = with stdenv.lib.maintainers; [ sander rszibele asbachb ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/notepadqq/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/notepadqq/default.nix
new file mode 100644
index 000000000000..cd4fe34ef33b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/notepadqq/default.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, lib, fetchFromGitHub, pkgconfig, which, qtbase, qtsvg, qttools, qtwebkit }:
+
+mkDerivation rec {
+ pname = "notepadqq";
+ version = "1.4.8";
+
+ src = fetchFromGitHub {
+ owner = "notepadqq";
+ repo = "notepadqq";
+ rev = "v${version}";
+ sha256 = "0lbv4s7ng31dkznzbkmp2cvkqglmfj6lv4mbg3r410fif2nrva7k";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig which qttools
+ ];
+
+ buildInputs = [
+ qtbase qtsvg qtwebkit
+ ];
+
+ preConfigure = ''
+ export LRELEASE="lrelease"
+ '';
+
+ dontWrapQtApps = true;
+
+ preFixup = ''
+ wrapQtApp $out/bin/notepadqq
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ homepage = "https://notepadqq.com/";
+ description = "Notepad++-like editor for the Linux desktop";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.rszibele ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/nvi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/nvi/default.nix
new file mode 100644
index 000000000000..ed08954f8ba0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/nvi/default.nix
@@ -0,0 +1,56 @@
+{ fetchurl, stdenv, ncurses }:
+
+stdenv.mkDerivation {
+ name = "nvi-1.79";
+
+ src = fetchurl {
+ urls =
+ [ "ftp://ftp.eenet.ee/pub/cpan/src/misc/nvi-1.79.tar.gz"
+ "ftp://ftp.saintjoe.edu/pub/CPAN/src/misc/nvi-1.79.tar.gz"
+ "ftp://ftp.free.fr/.mirrors1/ftp.netbsd.org/packages/distfiles/nvi-1.79.tar.gz"
+ ];
+ sha256 = "0cvf56rbylz7ksny6g2256sjg8yrsxrmbpk82r64rhi53sm8fnvm";
+ };
+
+ buildInputs = [ ncurses ];
+
+ # nvi tries to write to a usual tmp directory (/var/tmp),
+ # so we will force it to use /tmp.
+ patchPhase = ''
+ sed -i build/configure \
+ -e s@vi_cv_path_preserve=no@vi_cv_path_preserve=/tmp/vi.recover@ \
+ -e s@/var/tmp@@ \
+ -e s@-lcurses@-lncurses@
+ '';
+
+ configurePhase = ''
+ mkdir mybuild
+ cd mybuild
+ ../build/configure --prefix=$out --disable-curses
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/vi/catalog
+ for a in dutch english french german ru_SU.KOI8-R spanish swedish; do
+ cp ../catalog/$a $out/share/vi/catalog
+ done
+ cp nvi $out/bin/nvi
+ ln -s $out/bin/nvi $out/bin/vi
+ ln -s $out/bin/nvi $out/bin/ex
+ ln -s $out/bin/nvi $out/bin/view
+
+ mkdir -p $out/share/man/man1
+ cp ../docs/USD.doc/vi.man/vi.1 $out/share/man/man1/nvi.1
+ ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/vi
+ ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/ex
+ ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/view
+ ln -s $out/bin/{,vi-}nvi # create a symlink so that all vi(m) users will find it
+ '';
+
+ meta = {
+ homepage = "http://www.bostic.com/vi/";
+ description = "The Berkeley Vi Editor";
+ license = stdenv.lib.licenses.free;
+ broken = true; # since 2020-02-08
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/nvpy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/nvpy/default.nix
new file mode 100644
index 000000000000..dcf42b55c5c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/nvpy/default.nix
@@ -0,0 +1,37 @@
+{ pkgs, fetchurl, python2Packages }:
+
+let
+ pythonPackages = python2Packages;
+in pythonPackages.buildPythonApplication rec {
+ version = "0.9.7";
+ pname = "nvpy";
+
+ src = fetchurl {
+ url = "https://github.com/cpbotha/nvpy/archive/v${version}.tar.gz";
+ sha256 = "1rd3vlaqkg16iz6qcw6rkbq0jmyvc0843wa3brnvn1nz0kla243f";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [
+ markdown
+ tkinter
+ docutils
+ ];
+
+ # No tests
+ doCheck = false;
+
+ postInstall = ''
+ install -dm755 "$out/share/licenses/nvpy/"
+ install -m644 LICENSE.txt "$out/share/licenses/nvpy/LICENSE"
+
+ install -dm755 "$out/share/doc/nvpy/"
+ install -m644 README.rst "$out/share/doc/nvpy/README"
+ '';
+
+ meta = with pkgs.lib; {
+ description = "A simplenote-syncing note-taking tool inspired by Notational Velocity";
+ homepage = "https://github.com/cpbotha/nvpy";
+ platforms = platforms.linux;
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/okteta/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/okteta/default.nix
new file mode 100644
index 000000000000..382fcd44257e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/okteta/default.nix
@@ -0,0 +1,35 @@
+{ mkDerivation, stdenv, fetchurl, extra-cmake-modules, kdoctools, qtscript, kconfig
+, kinit, karchive, kcrash, kcmutils, kconfigwidgets, knewstuff, kparts
+, qca-qt5, shared-mime-info }:
+
+mkDerivation rec {
+ pname = "okteta";
+ version = "0.26.4";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/okteta/${version}/src/${pname}-${version}.tar.xz";
+ sha256 = "00qgzm5mqx0j8f0fznhnw76l9pjyw3lxirvy8ssq59nqqjbb08pg";
+ };
+
+ nativeBuildInputs = [ qtscript extra-cmake-modules kdoctools ];
+ buildInputs = [ shared-mime-info ];
+
+ propagatedBuildInputs = [
+ kconfig
+ kinit
+ kcmutils
+ kconfigwidgets
+ knewstuff
+ kparts
+ qca-qt5
+ karchive
+ kcrash
+ ];
+
+ meta = with stdenv.lib; {
+ license = licenses.gpl2;
+ description = "A hex editor";
+ maintainers = with maintainers; [ peterhoeg bkchr ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix
new file mode 100644
index 000000000000..7ad2a3247df2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix
@@ -0,0 +1,177 @@
+{ buildFHSUserEnv, makeDesktopItem, writeScript, stdenv, lib, requireFile, unstick,
+ supportedDevices ? [ "Arria II" "Cyclone V" "Cyclone IV" "Cyclone 10 LP" "MAX II/V" "MAX 10 FPGA" ] }:
+
+let
+ deviceIds = {
+ "Arria II" = "arria_lite";
+ "Cyclone V" = "cyclonev";
+ "Cyclone IV" = "cyclone";
+ "Cyclone 10 LP" = "cyclone10lp";
+ "MAX II/V" = "max";
+ "MAX 10 FPGA" = "max10";
+ };
+
+ supportedDeviceIds =
+ assert lib.assertMsg (lib.all (name: lib.hasAttr name deviceIds) supportedDevices)
+ "Supported devices are: ${lib.concatStringsSep ", " (lib.attrNames deviceIds)}";
+ lib.listToAttrs (map (name: {
+ inherit name;
+ value = deviceIds.${name};
+ }) supportedDevices);
+
+ unsupportedDeviceIds = lib.filterAttrs (name: value:
+ !(lib.hasAttr name supportedDeviceIds)
+ ) deviceIds;
+
+ quartus = stdenv.mkDerivation rec {
+ version = "20.1.0.711";
+ pname = "quartus-prime-lite-unwrapped";
+
+ src = let
+ require = {name, sha256}: requireFile {
+ inherit name sha256;
+ url = "${meta.homepage}/${lib.versions.majorMinor version}/?edition=lite&platform=linux";
+ };
+
+ hashes = {
+ "arria_lite" = "09g2knq23h3vj0s5y7hsdnqbbkr3pnv53dzpqcw2lq9mb5zfs9r0";
+ "cyclonev" = "05hrpysasyfb7xhxg68spdffxyvxcx0iagibd5jz643b7n6aalpa";
+ "cyclone" = "1x3rnwsvzrb5kwdz35sbcabxmcvj8xxpnjlpcjwfc69ybiyr6sgz";
+ "cyclone10lp" = "1x6d4hm697mjgzaxixrw5va8anr6ihhx96x2524r6axpwqf6wcja";
+ "max" = "060b7v0xh86kkjyiix7akfkzhx2kl1b3q117kp7xibnz6yrzwmy3";
+ "max10" = "05840l9pmqa4i1b3ajfaxkqz1hppls556vbq16a42acz2qs2g578";
+ };
+
+ devicePackages = map (id: {
+ name = "${id}-${version}.qdz";
+ sha256 = lib.getAttr id hashes;
+ }) (lib.attrValues supportedDeviceIds);
+ in map require ([{
+ name = "QuartusLiteSetup-${version}-linux.run";
+ sha256 = "07ssrv8p8kacal6xd80n4h7l5xz13aw1m1gfqqaxig0ivsj971z5";
+ } {
+ name = "ModelSimSetup-${version}-linux.run";
+ sha256 = "0smxasrmr1c8k6hy378knskpjmz4cgpgb35v5jclns0kx68y3c42";
+ }] ++ devicePackages);
+
+ nativeBuildInputs = [ unstick ];
+
+ buildCommand = let
+ installers = lib.sublist 0 2 src;
+ components = lib.sublist 2 ((lib.length src) - 2) src;
+ copyInstaller = installer: ''
+ # `$(cat $NIX_CC/nix-support/dynamic-linker) $src[0]` often segfaults, so cp + patchelf
+ cp ${installer} $TEMP/${installer.name}
+ chmod u+w,+x $TEMP/${installer.name}
+ patchelf --interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $TEMP/${installer.name}
+ '';
+ copyComponent = component: "cp ${component} $TEMP/${component.name}";
+ # leaves enabled: quartus, modelsim_ase, devinfo
+ disabledComponents = [
+ "quartus_help"
+ "quartus_update"
+ # not modelsim_ase
+ "modelsim_ae"
+ ] ++ (lib.attrValues unsupportedDeviceIds);
+ in ''
+ ${lib.concatMapStringsSep "\n" copyInstaller installers}
+ ${lib.concatMapStringsSep "\n" copyComponent components}
+
+ unstick $TEMP/${(builtins.head installers).name} \
+ --disable-components ${lib.concatStringsSep "," disabledComponents} \
+ --mode unattended --installdir $out --accept_eula 1
+
+ rm -r $out/uninstall $out/logs
+ '';
+
+ meta = {
+ homepage = "https://fpgasoftware.intel.com";
+ description = "FPGA design and simulation software";
+ license = lib.licenses.unfree;
+ platforms = lib.platforms.linux;
+ maintainers = with lib.maintainers; [ kwohlfahrt ];
+ };
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "quartus-prime-lite";
+ exec = "quartus";
+ icon = "quartus";
+ desktopName = "Quartus";
+ genericName = "Quartus Prime";
+ categories = "Development;";
+ };
+
+# I think modelsim_ase/linux/vlm checksums itself, so use FHSUserEnv instead of `patchelf`
+in buildFHSUserEnv rec {
+ name = "quartus-prime-lite"; # wrapped
+
+ targetPkgs = pkgs: with pkgs; [
+ # quartus requirements
+ glib
+ xorg.libICE
+ xorg.libSM
+ zlib
+ # qsys requirements
+ xorg.libXtst
+ xorg.libXi
+ ];
+ multiPkgs = pkgs: with pkgs; let
+ # This seems ugly - can we override `libpng = libpng12` for all `pkgs`?
+ freetype = pkgs.freetype.override { libpng = libpng12; };
+ fontconfig = pkgs.fontconfig.override { inherit freetype; };
+ libXft = pkgs.xorg.libXft.override { inherit freetype fontconfig; };
+ in [
+ # modelsim requirements
+ libxml2
+ ncurses5
+ unixODBC
+ libXft
+ # common requirements
+ freetype
+ fontconfig
+ xorg.libX11
+ xorg.libXext
+ xorg.libXrender
+ ];
+
+ passthru = {
+ unwrapped = quartus;
+ };
+
+ extraInstallCommands = let
+ quartusExecutables = (map (c: "quartus/bin/quartus_${c}") [
+ "asm" "cdb" "cpf" "drc" "eda" "fit" "jbcc" "jli" "map" "pgm" "pow"
+ "sh" "si" "sim" "sta" "stp" "tan"
+ ]) ++ [ "quartus/bin/quartus" ];
+
+ qsysExecutables = map (c: "quartus/sopc_builder/bin/qsys-${c}") [
+ "generate" "edit" "script"
+ ];
+ # Should we install all executables ?
+ modelsimExecutables = map (c: "modelsim_ase/bin/${c}") [
+ "vsim" "vlog" "vlib"
+ ];
+ in ''
+ mkdir -p $out/share/applications $out/share/icons/128x128
+ ln -s ${desktopItem}/share/applications/* $out/share/applications
+ ln -s ${quartus}/licenses/images/dc_quartus_panel_logo.png $out/share/icons/128x128/quartus.png
+
+ mkdir -p $out/quartus/bin $out/quartus/sopc_builder/bin $out/modelsim_ase/bin
+ WRAPPER=$out/bin/${name}
+ EXECUTABLES="${lib.concatStringsSep " " (quartusExecutables ++ qsysExecutables ++ modelsimExecutables)}"
+ for executable in $EXECUTABLES; do
+ echo "#!${stdenv.shell}" >> $out/$executable
+ echo "$WRAPPER ${quartus}/$executable \$@" >> $out/$executable
+ done
+
+ cd $out
+ chmod +x $EXECUTABLES
+ # link into $out/bin so executables become available on $PATH
+ ln --symbolic --relative --target-directory ./bin $EXECUTABLES
+ '';
+
+ runScript = writeScript "${name}-wrapper" ''
+ exec $@
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/quilter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/quilter/default.nix
new file mode 100644
index 000000000000..b69d20850ad2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/quilter/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, nix-update-script, pkgconfig, meson, ninja, python3, vala
+, gtk3, desktop-file-utils, gtksourceview, webkitgtk, gtkspell3, pantheon
+, libgee, discount, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "quilter";
+ version = "2.5.1";
+
+ src = fetchFromGitHub {
+ owner = "lainsce";
+ repo = pname;
+ rev = version;
+ sha256 = "0ya1iwzfzvrci083zyrjj6ac4ys25j90slpk8yydw9n99kb750rk";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ discount
+ gtk3
+ gtksourceview
+ gtkspell3
+ libgee
+ pantheon.elementary-icon-theme
+ pantheon.granite
+ webkitgtk
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Focus on your writing - designed for elementary OS";
+ homepage = "https://github.com/lainsce/quilter";
+ license = licenses.gpl2Plus;
+ maintainers = pantheon.maintainers;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/qxmledit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/qxmledit/default.nix
new file mode 100644
index 000000000000..cb658e8fcdac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/qxmledit/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub,
+ qmake, qtbase, qtxmlpatterns, qtsvg, qtscxml, qtquick1, libGLU }:
+
+stdenv.mkDerivation rec {
+ name = "qxmledit-${version}" ;
+ version = "0.9.15" ;
+ src = fetchFromGitHub ( stdenv.lib.importJSON ./qxmledit.json ) ;
+ nativeBuildInputs = [ qmake ] ;
+ buildInputs = [ qtbase qtxmlpatterns qtsvg qtscxml qtquick1 libGLU ] ;
+ qmakeFlags = [ "CONFIG+=release" ] ;
+ outputs = [ "out" "doc" ] ;
+
+ preConfigure = ''
+ export QXMLEDIT_INST_DATA_DIR="$out/share/data"
+ export QXMLEDIT_INST_TRANSLATIONS_DIR="$out/share/i18n"
+ export QXMLEDIT_INST_INCLUDE_DIR="$out/include"
+ export QXMLEDIT_INST_DIR="$out/bin"
+ export QXMLEDIT_INST_LIB_DIR="$out/lib"
+ export QXMLEDIT_INST_DOC_DIR="$doc"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple XML editor based on qt libraries" ;
+ homepage = "https://sourceforge.net/projects/qxmledit";
+ license = licenses.lgpl2;
+ platforms = platforms.all;
+ } ;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/qxmledit/qxmledit.json b/infra/libkookie/nixpkgs/pkgs/applications/editors/qxmledit/qxmledit.json
new file mode 100644
index 000000000000..88d2e3c4c2b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/qxmledit/qxmledit.json
@@ -0,0 +1,6 @@
+{
+ "owner": "lbellonda",
+ "repo": "qxmledit",
+ "rev": "6136dca50ceb3b4447c91a7a18dcf84785ea11d1",
+ "sha256": "1wcnphalwf0a5gz9r44jgk8wcv1w2qipbwjkbzkra2kxanxns834"
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/qxw/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/qxw/default.nix
new file mode 100644
index 000000000000..aed69e4f568b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/qxw/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkg-config, gtk2, pcre }:
+
+stdenv.mkDerivation rec {
+ pname = "qxw";
+ version = "20200708";
+
+ src = fetchurl {
+ url = "https://www.quinapalus.com/qxw-${version}.tar.gz";
+ sha256 = "1si3ila7137c7x4mp3jv1q1mh3jp0p4khir1yz1rwy0mp3znwv7d";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ gtk2 pcre ];
+
+ makeFlags = [ "DESTDIR=$(out)" ];
+
+ patchPhase = ''
+ sed -i 's/ `dpkg-buildflags[^`]*`//g;
+ /mkdir -p/d;
+ s/cp -a/install -D/;
+ s,/usr/games,/bin,' Makefile
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A program to help create and publish crosswords";
+ homepage = "https://www.quinapalus.com/qxw.html";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.tckmn ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/rednotebook/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/rednotebook/default.nix
new file mode 100644
index 000000000000..a6e69cf869e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/rednotebook/default.nix
@@ -0,0 +1,43 @@
+{ lib, buildPythonApplication, fetchFromGitHub
+, gdk-pixbuf, glib, gobject-introspection, gtk3, gtksourceview, pango, webkitgtk
+, pygobject3, pyyaml
+}:
+
+buildPythonApplication rec {
+ pname = "rednotebook";
+ version = "2.20";
+
+ src = fetchFromGitHub {
+ owner = "jendrikseipp";
+ repo = "rednotebook";
+ rev = "v${version}";
+ sha256 = "1n0zwrzrjh6sg8vmb95mgscsqrylhgm51zsirblqmpvs392jxrk3";
+ };
+
+ # We have not packaged tests.
+ doCheck = false;
+
+ nativeBuildInputs = [ gobject-introspection ];
+
+ propagatedBuildInputs = [
+ gdk-pixbuf glib gtk3 gtksourceview pango webkitgtk
+ pygobject3 pyyaml
+ ];
+
+ makeWrapperArgs = [
+ "--set GI_TYPELIB_PATH $GI_TYPELIB_PATH"
+ "--prefix XDG_DATA_DIRS : $out/share"
+ "--suffix XDG_DATA_DIRS : $XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+ ];
+
+ # Until gobject-introspection in nativeBuildInputs is supported.
+ # https://github.com/NixOS/nixpkgs/issues/56943#issuecomment-472568643
+ strictDeps = false;
+
+ meta = with lib; {
+ homepage = "https://rednotebook.sourceforge.io/";
+ description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ orivej tstrobel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/retext/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/retext/default.nix
new file mode 100644
index 000000000000..c32e83157561
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/retext/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, python3, fetchFromGitHub, wrapQtAppsHook, buildEnv, aspellDicts
+# Use `lib.collect lib.isDerivation aspellDicts;` to make all dictionaries
+# available.
+, enchantAspellDicts ? with aspellDicts; [ en en-computers en-science ]
+}:
+
+let
+ version = "7.0.4";
+ python = let
+ packageOverrides = self: super: {
+ markdown = super.markdown.overridePythonAttrs(old: {
+ src = super.fetchPypi {
+ version = "3.0.1";
+ pname = "Markdown";
+ sha256 = "d02e0f9b04c500cde6637c11ad7c72671f359b87b9fe924b2383649d8841db7c";
+ };
+ });
+
+ chardet = super.chardet.overridePythonAttrs(old: {
+ src = super.fetchPypi {
+ version = "2.3.0";
+ pname = "chardet";
+ sha256 = "e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa";
+ };
+ patches = [];
+ });
+ };
+ in python3.override { inherit packageOverrides; };
+ pythonEnv = python.withPackages (ps: with ps; [
+ pyqt5 docutils pyenchant Markups markdown pygments chardet
+ ]);
+in python.pkgs.buildPythonApplication {
+ inherit version;
+ pname = "retext";
+
+ src = fetchFromGitHub {
+ owner = "retext-project";
+ repo = "retext";
+ rev = version;
+ sha256 = "1zcapywspc9v5zf5cxqkcy019np9n41gmryqixj66zsvd544c6si";
+ };
+
+ doCheck = false;
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+ propagatedBuildInputs = [ pythonEnv ];
+
+ postInstall = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ makeWrapperArgs+=(
+ "--set" "ASPELL_CONF" "dict-dir ${buildEnv {
+ name = "aspell-all-dicts";
+ paths = map (path: "${path}/lib/aspell") enchantAspellDicts;
+ }}"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/retext-project/retext/";
+ description = "Simple but powerful editor for Markdown and reStructuredText";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ klntsky ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch
new file mode 100644
index 000000000000..402abdd85636
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch
@@ -0,0 +1,25 @@
+diff --git i/src/cpp/core/libclang/LibClang.cpp w/src/cpp/core/libclang/LibClang.cpp
+index ec12a3a1ff..8c81b633ae 100644
+--- i/src/cpp/core/libclang/LibClang.cpp
++++ w/src/cpp/core/libclang/LibClang.cpp
+@@ -54,7 +54,7 @@ std::vector<std::string> defaultCompileArgs(LibraryVersion version)
+
+ // we need to add in the associated libclang headers as
+ // they are not discovered / used by default during compilation
+- FilePath llvmPath = s_libraryPath.parent().parent();
++ FilePath llvmPath("@clang@");
+ boost::format fmt("%1%/lib/clang/%2%/include");
+ fmt % llvmPath.absolutePath() % version.asString();
+ std::string includePath = fmt.str();
+@@ -77,10 +77,7 @@ std::vector<std::string> systemClangVersions()
+ #elif defined(__unix__)
+ // default set of versions
+ clangVersions = {
+- "/usr/lib/libclang.so",
+- "/usr/lib/llvm/libclang.so",
+- "/usr/lib64/libclang.so",
+- "/usr/lib64/llvm/libclang.so",
++ "@libclang.so@"
+ };
+
+ // iterate through the set of available 'llvm' directories
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/default.nix
new file mode 100644
index 000000000000..3fe845a067b3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/default.nix
@@ -0,0 +1,143 @@
+{ lib, mkDerivation, fetchurl, fetchpatch, fetchFromGitHub, makeDesktopItem, cmake, boost, zlib
+, openssl, R, qtbase, qtxmlpatterns, qtsensors, qtwebengine, qtwebchannel
+, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
+, llvmPackages
+}:
+
+with lib;
+let
+ verMajor = "1";
+ verMinor = "2";
+ verPatch = "5042";
+ version = "${verMajor}.${verMinor}.${verPatch}";
+ ginVer = "2.1.2";
+ gwtVer = "2.8.1";
+in
+mkDerivation rec {
+ pname = "RStudio";
+ inherit version;
+
+ nativeBuildInputs = [ cmake unzip ant jdk makeWrapper pandoc ];
+
+ buildInputs = [ boost zlib openssl R qtbase qtxmlpatterns qtsensors
+ qtwebengine qtwebchannel libuuid ];
+
+ src = fetchFromGitHub {
+ owner = "rstudio";
+ repo = "rstudio";
+ rev = "v${version}";
+ sha256 = "1n67fa357v51j3z1ma8v2ydfsx3y8n10k2svmfcf4mdzsi8w0kc5";
+ };
+
+ # Hack RStudio to only use the input R and provided libclang.
+ patches = [ ./r-location.patch ./clang-location.patch
+ (fetchpatch {
+ # Fetch a patch to ensure Rstudio compiles against R
+ # 4.0.0, should be removed next 1.2.X Rstudio update
+ # or possibly 1.3.X
+ url = "https://github.com/rstudio/rstudio/commit/3fb2397c2f208bb8ace0bbaf269481ccb96b5b20.patch";
+ sha256 = "0qpgjy6aash0fc0xbns42cwpj3nsw49nkbzwyq8az01xwg81g0f3";
+ })
+ ];
+ postPatch = ''
+ substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}
+ substituteInPlace src/cpp/core/libclang/LibClang.cpp \
+ --replace '@clang@' ${llvmPackages.clang.cc} \
+ --replace '@libclang.so@' ${llvmPackages.clang.cc.lib}/lib/libclang.so
+ '';
+
+ ginSrc = fetchurl {
+ url = "https://s3.amazonaws.com/rstudio-buildtools/gin-${ginVer}.zip";
+ sha256 = "16jzmljravpz6p2rxa87k5f7ir8vs7ya75lnfybfajzmci0p13mr";
+ };
+
+ gwtSrc = fetchurl {
+ url = "https://s3.amazonaws.com/rstudio-buildtools/gwt-${gwtVer}.zip";
+ sha256 = "19x000m3jwnkqgi6ic81lkzyjvvxcfacw2j0vcfcaknvvagzhyhb";
+ };
+
+ hunspellDictionaries = filter isDerivation (unique (attrValues hunspellDicts));
+ # These dicts contain identically-named dict files, so we only keep the
+ # -large versions in case of clashes
+ largeDicts = filter (d: hasInfix "-large-wordlist" d) hunspellDictionaries;
+ otherDicts = filter (d: !(hasAttr "dictFileName" d &&
+ elem d.dictFileName (map (d: d.dictFileName) largeDicts))) hunspellDictionaries;
+ dictionaries = largeDicts ++ otherDicts;
+
+ mathJaxSrc = fetchurl {
+ url = "https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip";
+ sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
+ };
+
+ rsconnectSrc = fetchFromGitHub {
+ owner = "rstudio";
+ repo = "rsconnect";
+ rev = "984745d8";
+ sha256 = "037z0y32k1gdda192y5qn5hi7wp8wyap44mkjlklrgcqkmlcylb9";
+ };
+
+ preConfigure =
+ ''
+ export RSTUDIO_VERSION_MAJOR=${verMajor}
+ export RSTUDIO_VERSION_MINOR=${verMinor}
+ export RSTUDIO_VERSION_PATCH=${verPatch}
+
+ GWT_LIB_DIR=src/gwt/lib
+
+ mkdir -p $GWT_LIB_DIR/gin/${ginVer}
+ unzip ${ginSrc} -d $GWT_LIB_DIR/gin/${ginVer}
+
+ unzip ${gwtSrc}
+ mkdir -p $GWT_LIB_DIR/gwt
+ mv gwt-${gwtVer} $GWT_LIB_DIR/gwt/${gwtVer}
+
+ mkdir dependencies/common/dictionaries
+ for dict in ${builtins.concatStringsSep " " dictionaries}; do
+ for i in "$dict/share/hunspell/"*; do
+ ln -sv $i dependencies/common/dictionaries/
+ done
+ done
+
+ unzip ${mathJaxSrc} -d dependencies/common/mathjax-26
+
+ mkdir -p dependencies/common/pandoc
+ cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
+
+ cp -r ${rsconnectSrc} dependencies/common/rsconnect
+ pushd dependencies/common
+ ${R}/bin/R CMD build -d --no-build-vignettes rsconnect
+ popd
+ '';
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" "-DQT_QMAKE_EXECUTABLE=$NIX_QT5_TMP/bin/qmake" ];
+
+ desktopItem = makeDesktopItem {
+ name = "${pname}-${version}";
+ exec = "rstudio %F";
+ icon = "rstudio";
+ desktopName = "RStudio";
+ genericName = "IDE";
+ comment = meta.description;
+ categories = "Development;";
+ mimeType = "text/x-r-source;text/x-r;text/x-R;text/x-r-doc;text/x-r-sweave;text/x-r-markdown;text/x-r-html;text/x-r-presentation;application/x-r-data;application/x-r-project;text/x-r-history;text/x-r-profile;text/x-tex;text/x-markdown;text/html;text/css;text/javascript;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;";
+ };
+
+ qtWrapperArgs = [ ''--suffix PATH : ${gnumake}/bin'' ];
+
+ postInstall = ''
+ mkdir $out/share
+ cp -r ${desktopItem}/share/applications $out/share
+ mkdir $out/share/icons
+ ln $out/rstudio.png $out/share/icons
+ '';
+
+ meta = with lib;
+ { description = "Set of integrated tools for the R language";
+ homepage = "https://www.rstudio.com/";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ ehmry changlinli ciil ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/r-location.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/r-location.patch
new file mode 100644
index 000000000000..24cb6a246977
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/rstudio/r-location.patch
@@ -0,0 +1,25 @@
+diff -ur rstudio-1.1.216-old/src/cpp/core/CMakeLists.txt rstudio-1.1.216-new/src/cpp/core/CMakeLists.txt
+--- rstudio-1.1.216-old/src/cpp/core/r_util/REnvironmentPosix.cpp 2017-04-30 03:37:26.669418665 -0400
++++ rstudio-1.1.216-new/src/cpp/core/r_util/REnvironmentPosix.cpp 2017-04-30 03:36:33.590726185 -0400
+@@ -87,10 +87,7 @@
+ {
+ // define potential paths
+ std::vector<std::string> rScriptPaths;
+- rScriptPaths.push_back("/usr/bin/R");
+- rScriptPaths.push_back("/usr/local/bin/R");
+- rScriptPaths.push_back("/opt/local/bin/R");
+- rScriptPaths.push_back("/Library/Frameworks/R.framework/Resources/bin/R");
++ rScriptPaths.push_back("@R@/bin/R");
+ return scanForRScript(rScriptPaths, pErrMsg);
+ }
+
+@@ -226,8 +223,7 @@
+ // scan in standard locations as a fallback
+ std::string scanErrMsg;
+ std::vector<std::string> rScriptPaths;
+- rScriptPaths.push_back("/usr/local/bin/R");
+- rScriptPaths.push_back("/usr/bin/R");
++ rScriptPaths.push_back("@R@/bin/R");
+ FilePath scriptPath = scanForRScript(rScriptPaths, &scanErrMsg);
+ if (scriptPath.empty())
+ {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/scite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/scite/default.nix
new file mode 100644
index 000000000000..4e92856fee24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/scite/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, gtk2 }:
+
+stdenv.mkDerivation {
+ pname = "scite";
+ version = "4.0.5";
+
+ src = fetchurl {
+ url = "https://www.scintilla.org/scite405.tgz";
+ sha256 = "0h16wk2986nkkhhdv5g4lxlcn02qwyja24x1r6vf02r1hf46b9q2";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 ];
+ sourceRoot = "scintilla/gtk";
+
+ buildPhase = ''
+ make
+ cd ../../scite/gtk
+ make prefix=$out/
+ '';
+
+ installPhase = ''
+ make install prefix=$out/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.scintilla.org/SciTE.html";
+ description = "SCIntilla based Text Editor";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.rszibele ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/setzer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/setzer/default.nix
new file mode 100644
index 000000000000..46dc413971d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/setzer/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, python3
+, fetchFromGitHub
+, meson
+, ninja
+, gettext
+, appstream
+, appstream-glib
+, wrapGAppsHook
+, gobject-introspection
+, gtksourceview4
+, gspell
+, poppler_gi
+, webkitgtk
+, librsvg
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "setzer";
+ version = "0.3.2";
+
+ src = fetchFromGitHub {
+ owner = "cvfosammmm";
+ repo = "Setzer";
+ rev = "v${version}";
+ sha256 = "1c7jrq20m53y2k8lmh37zldgc3bndldxipx4xq0lz3qq2fv1gg07";
+ };
+
+ format = "other";
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ gettext
+ appstream # for appstreamcli
+ appstream-glib
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gobject-introspection
+ gtksourceview4
+ gspell
+ poppler_gi
+ webkitgtk
+ librsvg
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pygobject3
+ pyxdg
+ ];
+
+ meta = with lib; {
+ description = "LaTeX editor written in Python with Gtk";
+ homepage = src.meta.homepage;
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dotlambda ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/sigil/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/sigil/default.nix
new file mode 100644
index 000000000000..18437f5ff49e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/sigil/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, makeWrapper
+, boost, xercesc, hunspell, zlib, pcre16
+, qtbase, qttools, qtwebengine, qtxmlpatterns
+, python3Packages
+}:
+
+mkDerivation rec {
+ pname = "sigil";
+ version = "1.4.3";
+
+ src = fetchFromGitHub {
+ repo = "Sigil";
+ owner = "Sigil-Ebook";
+ rev = version;
+ sha256 = "1hk8kmhvkwfimbxzhwbnb8qdpf4n36cdzl9wfvi574i9pps36hnz";
+ };
+
+ pythonPath = with python3Packages; [ lxml ];
+
+ nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+
+ buildInputs = [
+ boost xercesc qtbase qttools qtwebengine qtxmlpatterns
+ python3Packages.lxml
+ ];
+
+ prePatch = ''
+ sed -i '/^QTLIB_DIR=/ d' src/Resource_Files/bash/sigil-sh_install
+ '';
+
+ dontWrapQtApps = true;
+
+ preFixup = ''
+ wrapProgram "$out/bin/sigil" \
+ --prefix PYTHONPATH : $PYTHONPATH \
+ ''${qtWrapperArgs[@]}
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Free, open source, multi-platform ebook (ePub) editor";
+ homepage = "https://github.com/Sigil-Ebook/Sigil/";
+ license = licenses.gpl3;
+ # currently unmaintained
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/standardnotes/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
new file mode 100644
index 000000000000..18d9338f9093
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, appimageTools, autoPatchelfHook, desktop-file-utils
+ , fetchurl, runtimeShell }:
+
+let
+ version = "3.3.3";
+ pname = "standardnotes";
+ name = "${pname}-${version}";
+
+ plat = {
+ i386-linux = "-i386";
+ x86_64-linux = "";
+ }.${stdenv.hostPlatform.system};
+
+ sha256 = {
+ i386-linux = "2ccdf23588b09d645811e562d4fd7e02ac0e367bf2b34e373d8470d48544036d";
+ x86_64-linux = "6366d0a37cbf2cf51008a666e40bada763dd1539173de01e093bcbe4146a6bd8";
+ }.${stdenv.hostPlatform.system};
+
+ src = fetchurl {
+ url = "https://github.com/standardnotes/desktop/releases/download/v${version}/standard-notes-${version}${plat}.AppImage";
+ inherit sha256;
+ };
+
+ appimageContents = appimageTools.extract {
+ inherit name src;
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook desktop-file-utils ];
+
+in appimageTools.wrapType2 rec {
+ inherit name src;
+
+ extraInstallCommands = ''
+ # directory in /nix/store so readonly
+ cp -r ${appimageContents}/* $out
+ cd $out
+ chmod -R +w $out
+ mv $out/bin/${name} $out/bin/${pname}
+
+ # fixup and install desktop file
+ ${desktop-file-utils}/bin/desktop-file-install --dir $out/share/applications \
+ --set-key Exec --set-value ${pname} standard-notes.desktop
+
+ rm usr/lib/* AppRun standard-notes.desktop .so*
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple and private notes app";
+ longDescription = ''
+ Standard Notes is a private notes app that features unmatched simplicity,
+ end-to-end encryption, powerful extensions, and open-source applications.
+ '';
+ homepage = "https://standardnotes.org";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ mgregoire ];
+ platforms = [ "i386-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
new file mode 100644
index 000000000000..b10008d0c499
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
@@ -0,0 +1,65 @@
+{ fetchurl, stdenv, glib, xorg, cairo, gtk2, makeDesktopItem }:
+let
+ libPath = stdenv.lib.makeLibraryPath [glib xorg.libX11 gtk2 cairo];
+in
+
+stdenv.mkDerivation rec {
+ name = "sublimetext-2.0.2";
+ src =
+ if stdenv.hostPlatform.system == "i686-linux" then
+ fetchurl {
+ name = "sublimetext-2.0.2.tar.bz2";
+ url = [
+ "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
+ "https://download.sublimetext.com/Sublime%20Text%202.0.2.tar.bz2"
+ ];
+ sha256 = "026g5mppk28lzzzn9ibykcqkrd5msfmg0sc0z8w8jd7v3h28wcq7";
+ }
+ else
+ fetchurl {
+ name = "sublimetext-2.0.2.tar.bz2";
+ url = [
+ "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
+ "https://download.sublimetext.com/Sublime%20Text%202.0.2%20x64.tar.bz2"
+ ];
+ sha256 = "115b71nbv9mv8cz6bkjwpbdf2ywnjc1zy2d3080f6ck4sqqfvfh1";
+ };
+ buildCommand = ''
+ tar xvf ${src}
+ mkdir -p $out/bin
+ mv Sublime* $out/sublime
+ ln -s $out/sublime/sublime_text $out/bin/sublime
+ ln -s $out/sublime/sublime_text $out/bin/sublime2
+
+ echo ${libPath}
+ patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \
+ $out/sublime/sublime_text
+
+ mkdir -p $out/share/icons
+
+ for x in $(ls $out/sublime/Icon); do
+ mkdir -p $out/share/icons/hicolor/$x/apps
+ cp -v $out/sublime/Icon/$x/* $out/share/icons/hicolor/$x/apps
+ done
+
+ ln -sv "${desktopItem}/share/applications" $out/share
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "sublime2";
+ exec = "sublime2 %F";
+ comment = meta.description;
+ desktopName = "Sublime Text";
+ genericName = "Text Editor";
+ categories = "TextEditor;Development;";
+ icon = "sublime_text";
+ };
+
+ meta = {
+ description = "Sophisticated text editor for code, markup and prose";
+ license = stdenv.lib.licenses.unfree;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/3/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/3/common.nix
new file mode 100644
index 000000000000..22c23280d17d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/3/common.nix
@@ -0,0 +1,158 @@
+{ buildVersion, x32sha256, x64sha256, dev ? false }:
+
+{ fetchurl, stdenv, xorg, glib, glibcLocales, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
+, pkexecPath ? "/run/wrappers/bin/pkexec"
+, writeScript, common-updater-scripts, curl, gnugrep
+, openssl, bzip2, bash, unzip, zip
+}:
+
+let
+ pname = "sublimetext3";
+ packageAttribute = "sublime3${stdenv.lib.optionalString dev "-dev"}";
+ binaries = [ "sublime_text" "plugin_host" "crash_reporter" ];
+ primaryBinary = "sublime_text";
+ primaryBinaryAliases = [ "subl" "sublime" "sublime3" ];
+ downloadUrl = "https://download.sublimetext.com/sublime_text_3_build_${buildVersion}_${arch}.tar.bz2";
+ versionUrl = "https://download.sublimetext.com/latest/${if dev then "dev" else "stable"}";
+ versionFile = builtins.toString ./packages.nix;
+ archSha256 =
+ if stdenv.hostPlatform.system == "i686-linux" then
+ x32sha256
+ else
+ x64sha256;
+ arch =
+ if stdenv.hostPlatform.system == "i686-linux" then
+ "x32"
+ else
+ "x64";
+
+ libPath = stdenv.lib.makeLibraryPath [ xorg.libX11 glib gtk3 cairo pango ];
+ redirects = [ "/usr/bin/pkexec=${pkexecPath}" ];
+in let
+ binaryPackage = stdenv.mkDerivation {
+ pname = "${pname}-bin";
+ version = buildVersion;
+
+ src = fetchurl {
+ url = downloadUrl;
+ sha256 = archSha256;
+ };
+
+ dontStrip = true;
+ dontPatchELF = true;
+ buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH
+ nativeBuildInputs = [ zip unzip makeWrapper wrapGAppsHook ];
+
+ # make exec.py in Default.sublime-package use own bash with an LD_PRELOAD instead of "/bin/bash"
+ patchPhase = ''
+ runHook prePatch
+
+ mkdir Default.sublime-package-fix
+ ( cd Default.sublime-package-fix
+ unzip -q ../Packages/Default.sublime-package
+ substituteInPlace "exec.py" --replace \
+ "[\"/bin/bash\"" \
+ "[\"$out/sublime_bash\""
+ zip -q ../Packages/Default.sublime-package **/*
+ )
+ rm -r Default.sublime-package-fix
+
+ runHook postPatch
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ for binary in ${ builtins.concatStringsSep " " binaries }; do
+ patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \
+ $binary
+ done
+
+ # Rewrite pkexec argument. Note that we cannot delete bytes in binary.
+ sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' ${primaryBinary}
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out
+ cp -r * $out/
+
+ # We can't just call /usr/bin/env bash because a relocation error occurs
+ # when trying to run a build from within Sublime Text
+ ln -s ${bash}/bin/bash $out/sublime_bash
+
+ runHook postInstall
+ '';
+
+ dontWrapGApps = true; # non-standard location, need to wrap the executables manually
+
+ postFixup = ''
+ wrapProgram $out/sublime_bash \
+ --set LD_PRELOAD "${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1"
+
+ wrapProgram $out/${primaryBinary} \
+ --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+ --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \
+ --set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \
+ "''${gappsWrapperArgs[@]}"
+
+ # Without this, plugin_host crashes, even though it has the rpath
+ wrapProgram $out/plugin_host --prefix LD_PRELOAD : ${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1:${openssl.out}/lib/libssl.so:${bzip2.out}/lib/libbz2.so
+ '';
+ };
+in stdenv.mkDerivation (rec {
+ inherit pname;
+ version = buildVersion;
+
+ phases = [ "installPhase" ];
+
+ ${primaryBinary} = binaryPackage;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}"
+ '' + builtins.concatStringsSep "" (map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases) + ''
+ mkdir -p "$out/share/applications"
+ substitute "''$${primaryBinary}/${primaryBinary}.desktop" "$out/share/applications/${primaryBinary}.desktop" --replace "/opt/${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}"
+ for directory in ''$${primaryBinary}/Icon/*; do
+ size=$(basename $directory)
+ mkdir -p "$out/share/icons/hicolor/$size/apps"
+ ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps
+ done
+ '';
+
+ passthru.updateScript = writeScript "${pname}-update-script" ''
+ #!${stdenv.shell}
+ set -o errexit
+ PATH=${stdenv.lib.makeBinPath [ common-updater-scripts curl gnugrep ]}
+
+ latestVersion=$(curl -s ${versionUrl})
+
+ if [[ "${buildVersion}" = "$latestVersion" ]]; then
+ echo "The new version same as the old version."
+ exit 0
+ fi
+
+ for platform in ${stdenv.lib.concatStringsSep " " meta.platforms}; do
+ # The script will not perform an update when the version attribute is up to date from previous platform run
+ # We need to clear it before each run
+ update-source-version ${packageAttribute}.${primaryBinary} 0 0000000000000000000000000000000000000000000000000000000000000000 --file=${versionFile} --version-key=buildVersion --system=$platform
+ update-source-version ${packageAttribute}.${primaryBinary} $latestVersion --file=${versionFile} --version-key=buildVersion --system=$platform
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Sophisticated text editor for code, markup and prose";
+ homepage = "https://www.sublimetext.com/";
+ maintainers = with maintainers; [ jtojnar wmertens demin-dmitriy zimbatm ];
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix
new file mode 100644
index 000000000000..d72966e04401
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix
@@ -0,0 +1,19 @@
+{ callPackage }:
+
+let
+ common = opts: callPackage (import ./common.nix opts);
+in
+ {
+ sublime3-dev = common {
+ buildVersion = "3210";
+ dev = true;
+ x32sha256 = "1ngr4c8h2mafy96mi8dd3g8mg5r9ha1cpcd8p3gz7jwpbypvkkbv";
+ x64sha256 = "0j65a4ylgga1qzc74wf3k5craghahma8hwqg3zs1rgzz601nl693";
+ } {};
+
+ sublime3 = common {
+ buildVersion = "3211";
+ x32sha256 = "0w9hba1nl2hv1mri418n7v0m321b6wqphb1knll23ldv5fb0j1j8";
+ x64sha256 = "1vkldmimyjhbgplcd6r27gvk64rr7cparfd44hy6qdyzwsjqqg0b";
+ } {};
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
new file mode 100644
index 000000000000..dc18bd694c69
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, mono, gtk-sharp-2_0, pkgconfig, makeWrapper, gnome2, gtk2 }:
+stdenv.mkDerivation {
+ version = "git-2014-08-20";
+ pname = "supertux-editor";
+
+ src = fetchFromGitHub {
+ owner = "SuperTux";
+ repo = "supertux-editor";
+ rev = "0c666e8ccc7daf9e9720fe79abd63f8fa979c5e5";
+ sha256 = "08y5haclgxvcii3hpdvn1ah8qd0f3n8xgxxs8zryj02b8n7cz3vx";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [mono gtk-sharp-2_0 makeWrapper gnome2.libglade gtk2 ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib/supertux-editor
+ cp *.{dll,dll.config,exe} $out/lib/supertux-editor
+ makeWrapper "${mono}/bin/mono" $out/bin/supertux-editor \
+ --add-flags "$out/lib/supertux-editor/supertux-editor.exe" \
+ --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \
+ --suffix LD_LIBRARY_PATH : $(echo $NIX_LDFLAGS | sed 's/ -L/:/g;s/ -rpath /:/g;s/-rpath //')
+
+ makeWrapper "${mono}/bin/mono" $out/bin/supertux-editor-debug \
+ --add-flags "--debug $out/lib/supertux-editor/supertux-editor.exe" \
+ --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \
+ --suffix LD_LIBRARY_PATH : $(echo $NIX_LDFLAGS | sed 's/ -L/:/g;s/ -rpath /:/g;s/-rpath //')
+ '';
+
+ # Always needed on Mono, otherwise nothing runs
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ description = "Level editor for SuperTux";
+ homepage = "https://github.com/SuperTux/supertux-editor";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ mathnerd314 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/tecoc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/tecoc/default.nix
new file mode 100644
index 000000000000..3df13260d51f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/tecoc/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchFromGitHub
+, ncurses }:
+
+stdenv.mkDerivation rec {
+
+ pname = "tecoc-git";
+ version = "20150606";
+
+ src = fetchFromGitHub {
+ owner = "blakemcbride";
+ repo = "TECOC";
+ rev = "d7dffdeb1dfb812e579d6d3b518545b23e1b50cb";
+ sha256 = "11zfa73dlx71c0hmjz5n3wqcvk6082rpb4sss877nfiayisc0njj";
+ };
+
+ buildInputs = [ ncurses ];
+
+ makefile = if stdenv.hostPlatform.isDarwin
+ then "makefile.osx"
+ else if stdenv.hostPlatform.isFreeBSD
+ then "makefile.bsd"
+ else if stdenv.hostPlatform.isOpenBSD
+ then "makefile.bsd"
+ else if stdenv.hostPlatform.isWindows
+ then "makefile.win"
+ else "makefile.linux"; # I think Linux is a safe default...
+
+ makeFlags = [ "CC=${stdenv.cc}/bin/cc" "-C src/" ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/doc/${pname}-${version} $out/lib/teco/macros
+ cp src/tecoc $out/bin
+ cp src/aaout.txt doc/* $out/share/doc/${pname}-${version}
+ cp lib/* lib2/* $out/lib/teco/macros
+ (cd $out/bin
+ ln -s tecoc Make
+ ln -s tecoc mung
+ ln -s tecoc teco
+ ln -s tecoc Inspect )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A clone of the good old TECO editor";
+ longDescription = ''
+ For those who don't know: TECO is the acronym of Tape Editor and COrrector
+ (because it was a paper tape edition tool in its debut days). Now the
+ acronym follows after Text Editor and Corrector, or Text Editor
+ Character-Oriented.
+
+ TECO is a character-oriented text editor, originally developed by Dan
+ Murphy at MIT circa 1962. It is also a Turing-complete imperative
+ interpreted programming language for text manipulation, done via
+ user-loaded sets of macros. In fact, the venerable Emacs was born as a set
+ of Editor MACroS for TECO.
+
+ TECOC is a portable C implementation of TECO-11.
+ '';
+ homepage = "https://github.com/blakemcbride/TECOC";
+ license = { url = "https://github.com/blakemcbride/TECOC/tree/master/doc/readme-1st.txt"; };
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/common.nix
new file mode 100644
index 000000000000..9479295e7471
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/common.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchurl, tex, extraFonts, chineseFonts, japaneseFonts, koreanFonts }:
+rec {
+ extraFontsSrc = fetchurl {
+ url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-extra-fonts-1.0-noarch.tar.gz";
+ sha256 = "0hylgjmd95y9yahbblmawkkw0i71vb145xxv2xqrmff81301n6k7";
+ };
+
+ fullFontsSrc = fetchurl {
+ url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-windows-fonts-1.0-noarch.tar.gz";
+ sha256 = "1yxzjpqpm7kvx0ly5jmfpzlfhsh41b0ibn1v84qv6xy73r2vis2f";
+ };
+
+ chineseFontsSrc = fetchurl {
+ url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-chinese-fonts.tar.gz";
+ sha256 = "0yprqjsx5mfsaxr525mcm3xqwcadzxp14njm38ir1325baada2fp";
+ };
+
+ japaneseFontsSrc = fetchurl {
+ url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-japanese-fonts.tar.gz";
+ sha256 = "1dn6zvsa7gk59d61xicwpbapab3rm6kz48rp5w1bhmihxixw21jn";
+ };
+
+ koreanFontsSrc = fetchurl {
+ url = "ftp://ftp.texmacs.org/pub/TeXmacs/fonts/TeXmacs-korean-fonts.tar.gz";
+ sha256 = "07axg57mqm3jbnm4lawx0h3r2h56xv9acwzjppryfklw4c27f5hh";
+ };
+
+ postPatch = (if tex == null then ''
+ gunzip < ${fullFontsSrc} | (cd TeXmacs && tar xvf -)
+ '' else if extraFonts then ''
+ gunzip < ${extraFontsSrc} | (cd TeXmacs && tar xvf -)
+ '' else "") +
+ (if chineseFonts then ''
+ gunzip < ${chineseFontsSrc} | (cd TeXmacs && tar xvf -)
+ '' else "") +
+ (if japaneseFonts then ''
+ gunzip < ${japaneseFontsSrc} | (cd TeXmacs && tar xvf -)
+ '' else "") +
+ (if koreanFonts then ''
+ gunzip < ${koreanFontsSrc} | (cd TeXmacs && tar xvf -)
+ '' else "");
+
+
+ meta = {
+ description = "WYSIWYW editing platform with special features for scientists";
+ longDescription =
+ '' GNU TeXmacs is a free wysiwyw (what you see is what you want)
+ editing platform with special features for scientists. The software
+ aims to provide a unified and user friendly framework for editing
+ structured documents with different types of content (text,
+ graphics, mathematics, interactive content, etc.). The rendering
+ engine uses high-quality typesetting algorithms so as to produce
+ professionally looking documents, which can either be printed out or
+ presented from a laptop.
+
+ The software includes a text editor with support for mathematical
+ formulas, a small technical picture editor and a tool for making
+ presentations from a laptop. Moreover, TeXmacs can be used as an
+ interface for many external systems for computer algebra, numerical
+ analysis, statistics, etc. New presentation styles can be written
+ by the user and new features can be added to the editor using the
+ Scheme extension language. A native spreadsheet and tools for
+ collaborative authoring are planned for later.
+ '';
+ homepage = "http://texmacs.org/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/darwin.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/darwin.nix
new file mode 100644
index 000000000000..a5117f3a6786
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/darwin.nix
@@ -0,0 +1,60 @@
+{ stdenv, callPackage, fetchurl,
+ guile_1_8, qt4, zlib, freetype, CoreFoundation, Cocoa, gettext, libiconv, ghostscript,
+ tex ? null,
+ aspell ? null,
+ netpbm ? null,
+ imagemagick ? null,
+ extraFonts ? false,
+ chineseFonts ? false,
+ japaneseFonts ? false,
+ koreanFonts ? false }:
+let
+ version = "1.99.4";
+ common = callPackage ./common.nix {
+ inherit tex extraFonts chineseFonts japaneseFonts koreanFonts;
+ };
+in
+stdenv.mkDerivation {
+ pname = "TeXmacs";
+ inherit version;
+
+ src= fetchurl {
+ url = "http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
+ sha256 = "1z8sj0xd1ncbl7ipzfsib6lmc7ahgvmiw61ln5zxm2l88jf7qc1a";
+ };
+
+ patches = [ ./darwin.patch ];
+
+ buildInputs = [ guile_1_8.dev qt4 freetype CoreFoundation Cocoa gettext libiconv ghostscript ];
+
+ GUILE_CPPFLAGS="-D_THREAD_SAFE -I${guile_1_8.dev}/include -I${guile_1_8.dev}/include/guile ";
+
+ NIX_LDFLAGS="${zlib}/lib/libz.dylib";
+
+ buildPhase = ''
+ substituteInPlace Makefile \
+ --replace 'find -d $(MACOS_PACKAGE_TEXMACS)' 'find $(MACOS_PACKAGE_TEXMACS) -depth' \
+ --replace '$(MACOS_PACKAGE_SRC)/bundle-libs.sh' 'true'
+ make MACOS_BUNDLE
+ '';
+
+ installPhase = ''
+ mkdir -p $out/Applications
+ cp -R ../distr/TeXmacs-${version}.app $out/Applications
+ '';
+
+ inherit (common) postPatch;
+
+ postInstall = "wrapProgram $out/Applications/TeXmacs-${version}/Contents/MacOS/TeXmacs --suffix PATH : " +
+ "${ghostscript}/bin:" +
+ (if aspell == null then "" else "${aspell}/bin:") +
+ (if tex == null then "" else "${tex}/bin:") +
+ (if netpbm == null then "" else "${stdenv.lib.getBin netpbm}/bin:") +
+ (if imagemagick == null then "" else "${imagemagick}/bin:");
+
+ enableParallelBuilding = true;
+
+ meta = common.meta // {
+ platforms = stdenv.lib.platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/darwin.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/darwin.patch
new file mode 100644
index 000000000000..2cb33fbbef30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/darwin.patch
@@ -0,0 +1,29 @@
+--- a/configure
++++ b/configure
+@@ -7461,7 +7461,7 @@ $as_echo "final adjustments for cygwin host" >&6; }
+ CONFIG_QTPIPES="yes"
+ CONFIG_CXXFLAGS="-I${prefix}/include"
+ CONFIG_BSHARED=""
+- CONFIG_BFLAGS="-framework Cocoa -framework IOKit"
++ CONFIG_BFLAGS="-framework Cocoa -framework IOKit -framework CoreFoundation"
+ CONFIG_BPATH=""
+ CONFIG_SO="dylib"
+ CONFIG_LIB_PATH="DYLD_LIBRARY_PATH"
+@@ -8281,6 +8281,7 @@ _ASEOF
+ if $QMAKE ${additional_qmake_flags} ; then :; else
+ as_fn_error $? "Calling $QMAKE failed." "$LINENO" 5
+ fi
++ echo "QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10" >> $pro_file
+ # Try to compile a simple Qt app.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a simple Qt app" >&5
+ $as_echo_n "checking whether we can build a simple Qt app... " >&6; }
+--- a/src/Plugins/Unix/unix_sys_utils.cpp
++++ b/src/Plugins/Unix/unix_sys_utils.cpp
+@@ -17,6 +17,7 @@
+ #include <spawn.h>
+ #include <unistd.h>
+ #include <sys/wait.h>
++#include <pthread.h>
+
+ // for thread safe strings
+ #include <string>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/default.nix
new file mode 100644
index 000000000000..9c37d00c9ee1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmacs/default.nix
@@ -0,0 +1,71 @@
+{ lib, mkDerivation, callPackage, fetchFromGitHub,
+ guile_1_8, qtbase, xmodmap, which, freetype,
+ libjpeg,
+ sqlite,
+ tex ? null,
+ aspell ? null,
+ git ? null,
+ python3 ? null,
+ cmake,
+ pkgconfig,
+ ghostscriptX ? null,
+ extraFonts ? false,
+ chineseFonts ? false,
+ japaneseFonts ? false,
+ koreanFonts ? false }:
+
+let
+ pname = "TeXmacs";
+ version = "1.99.15";
+ common = callPackage ./common.nix {
+ inherit tex extraFonts chineseFonts japaneseFonts koreanFonts;
+ };
+in
+mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "texmacs";
+ repo = "texmacs";
+ rev = "v${version}";
+ sha256 = "04585hdh98fvyhj4wsxf69xal2wvfa6lg76gad8pr6ww9abi5105";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [
+ guile_1_8
+ qtbase
+ ghostscriptX
+ freetype
+ libjpeg
+ sqlite
+ git
+ python3
+ ];
+ NIX_LDFLAGS = "-lz";
+
+ qtWrapperArgs = [
+ "--suffix" "PATH" ":" (lib.makeBinPath [
+ xmodmap
+ which
+ ghostscriptX
+ aspell
+ tex
+ git
+ python3
+ ])
+ ];
+
+ postFixup = ''
+ wrapQtApp $out/bin/texmacs
+ '';
+
+ inherit (common) postPatch;
+
+ meta = common.meta // {
+ maintainers = [ lib.maintainers.roconnor ];
+ platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/texmaker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmaker/default.nix
new file mode 100644
index 000000000000..0b78ff54c358
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/texmaker/default.nix
@@ -0,0 +1,36 @@
+{ lib, mkDerivation, fetchurl, qtbase, qtscript, qmake, zlib, pkgconfig, poppler }:
+
+mkDerivation rec {
+ pname = "texmaker";
+ version = "5.0.4";
+
+ src = fetchurl {
+ url = "http://www.xm1math.net/texmaker/${pname}-${version}.tar.bz2";
+ sha256 = "1qnh5g8zkjpjmw2l8spcynpfgs3wpcfcla5ms2kkgvkbdlzspqqx";
+ };
+
+ buildInputs = [ qtbase qtscript poppler zlib ];
+ nativeBuildInputs = [ pkgconfig poppler qmake ];
+ NIX_CFLAGS_COMPILE="-I${poppler.dev}/include/poppler";
+
+ qmakeFlags = [
+ "DESKTOPDIR=${placeholder "out"}/share/applications"
+ "ICONDIR=${placeholder "out"}/share/pixmaps"
+ "METAINFODIR=${placeholder "out"}/share/metainfo"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "TeX and LaTeX editor";
+ longDescription=''
+ This editor is a full fledged IDE for TeX and
+ LaTeX editing with completion, structure viewer, preview,
+ spell checking and support of any compilation chain.
+ '';
+ homepage = "http://www.xm1math.net/texmaker/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cfouche markuskowa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/texstudio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/texstudio/default.nix
new file mode 100644
index 000000000000..7f92c4d492cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/texstudio/default.nix
@@ -0,0 +1,32 @@
+{ lib, mkDerivation, fetchFromGitHub, qmake, qtbase, qtscript, qtsvg,
+ wrapQtAppsHook, poppler, zlib, pkgconfig }:
+
+mkDerivation rec {
+ pname = "texstudio";
+ version = "3.0.1";
+
+ src = fetchFromGitHub {
+ owner = "${pname}-org";
+ repo = pname;
+ rev = version;
+ sha256 = "18ad85y4hrsvp7gs50dfg08cz40vbakb9hs8gw4cvi7r17vds5ar";
+ };
+
+ nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
+ buildInputs = [ qtbase qtscript qtsvg poppler zlib ];
+
+ qmakeFlags = [ "NO_APPDATA=True" ];
+
+ meta = with lib; {
+ description = "TeX and LaTeX editor";
+ longDescription=''
+ Fork of TeXMaker, this editor is a full fledged IDE for
+ LaTeX editing with completion, structure viewer, preview,
+ spell checking and support of any compilation chain.
+ '';
+ homepage = "http://texstudio.sourceforge.net";
+ license = licenses.gpl2Plus;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ ajs124 cfouche ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/10/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/10/default.nix
new file mode 100644
index 000000000000..0456d013bbbe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/10/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchhg, fetchurl, gtk2, glib, pkgconfig, unzip, ncurses, zip }:
+
+stdenv.mkDerivation rec {
+ version = "10.8";
+ pname = "textadept";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ gtk2 ncurses glib unzip zip
+ ];
+
+ src = fetchhg {
+ url = "http://foicica.com/hg/textadept";
+ rev = "textadept_${version}";
+ sha256 = "sha256-dEZSx2tuHTWYhk9q5iGlrWTAvDvKaM8HaHwXcFcv33s=";
+ };
+
+ preConfigure =
+ lib.concatStringsSep "\n" (lib.mapAttrsToList (name: params:
+ "ln -s ${fetchurl params} $PWD/src/${name}"
+ ) (import ./deps.nix)) + ''
+
+ cd src
+ make deps
+ '';
+
+ postBuild = ''
+ make curses
+ '';
+
+ preInstall = ''
+ mkdir -p $out/share/applications
+ mkdir -p $out/share/pixmaps
+ '';
+
+ postInstall = ''
+ make curses install PREFIX=$out MAKECMDGOALS=curses
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out) WGET=true PIXMAPS_DIR=$(out)/share/pixmaps"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An extensible text editor based on Scintilla with Lua scripting";
+ homepage = "http://foicica.com/textadept";
+ license = licenses.mit;
+ maintainers = with maintainers; [ raskin mirrexagon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/10/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/10/deps.nix
new file mode 100644
index 000000000000..3ab778dddb2a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/10/deps.nix
@@ -0,0 +1,42 @@
+{
+ "99fa62b828ee.zip" = {
+ url = "http://foicica.com/hg/scintilla/archive/99fa62b828ee.zip";
+ sha256 = "sha256-QO4iGhx72CfB1/0Pp/Qab92qm98VZn/EkrHZGndoHVc=";
+ };
+ "lua-5.3.5.tar.gz" = {
+ url = "http://www.lua.org/ftp/lua-5.3.5.tar.gz";
+ sha256 = "1b2qn2rv96nmbm6zab4l877bd4zq7wpwm8drwjiy2ih4jqzysbhc";
+ };
+ "lpeg-1.0.2.tar.gz" = {
+ url = "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.0.2.tar.gz";
+ sha256 = "sha256-SNZldgUbbHg4j6rQm3BJMJMmRYj80PJY3aqxzdShX/4=";
+ };
+ "v1_7_0_2.zip" = {
+ url = "https://github.com/keplerproject/luafilesystem/archive/v1_7_0_2.zip";
+ sha256 = "sha256-kXSriR8dOStCpYeyr7c3+VZez4qGDS5aK/9FeFj1hHg=";
+ };
+ "db67f8a489e8.zip" = {
+ url = "http://foicica.com/hg/gtdialog/archive/db67f8a489e8.zip";
+ sha256 = "sha256-UIvjbDrg3jyz7t2tm4y1zzH/TG6Kqaz3LE5y2U6OHuM=";
+ };
+ "cdk-5.0-20150928.tgz" = {
+ url = "http://invisible-mirror.net/archives/cdk/cdk-5.0-20150928.tgz";
+ sha256 = "0j74l874y33i26y5kjg3pf1vswyjif8k93pqhi0iqykpbxfsg382";
+ };
+ "libtermkey-0.20.tar.gz" = {
+ url = "http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.20.tar.gz";
+ sha256 = "1xfj6lchhfljmbcl6dz8dpakppyy13nbl4ykxiv5x4dr9b4qf3bc";
+ };
+ "pdcurs36.zip" = {
+ url = "http://prdownloads.sourceforge.net/pdcurses/pdcurs36.zip";
+ sha256 = "0y91zpygrxms7d1l5ksrz42bkvq8jd2xqlj5j7wgyxcl58chcw9b";
+ };
+ "bombay.zip" = {
+ url = "http://foicica.com/hg/bombay/archive/b25520cc76bb.zip";
+ sha256 = "07spq7jmkfyq20gv67yffara3ln3ns2xi0k02m2mxdms3xm1q36h";
+ };
+ "cloc-1.60.pl" = {
+ url = "http://prdownloads.sourceforge.net/cloc/cloc-1.60.pl";
+ sha256 = "0p504bi19va3dh274v7lb7giqrydwa5yyry60f7jpz84y6z71a2a";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/11/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/11/default.nix
new file mode 100644
index 000000000000..487f1b3767f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/11/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchhg, fetchFromGitHub, fetchurl, gtk2, glib, pkgconfig, unzip, ncurses, zip }:
+
+stdenv.mkDerivation rec {
+ version = "11.0_beta";
+ pname = "textadept11";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ gtk2 ncurses glib unzip zip
+ ];
+
+ src = fetchFromGitHub {
+ name = "textadept11";
+ owner = "orbitalquark";
+ repo = "textadept";
+ rev = "8da5f6b4a13f14b9dd3cb9dc23ad4f7bf41e91c1";
+ sha256 = "0v11v3x8g6v696m3l1bm52zy2g9xzz7hlmn912sn30nhcag3raxs";
+ };
+
+ preConfigure =
+ lib.concatStringsSep "\n" (lib.mapAttrsToList (name: params:
+ "ln -s ${fetchurl params} $PWD/src/${name}"
+ ) (import ./deps.nix)) + ''
+
+ cd src
+ make deps
+ '';
+
+ postBuild = ''
+ make curses
+ '';
+
+ preInstall = ''
+ mkdir -p $out/share/applications
+ mkdir -p $out/share/pixmaps
+ '';
+
+ postInstall = ''
+ make curses install PREFIX=$out MAKECMDGOALS=curses
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out) WGET=true PIXMAPS_DIR=$(out)/share/pixmaps"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An extensible text editor based on Scintilla with Lua scripting. Version 11_beta";
+ homepage = "http://foicica.com/textadept";
+ license = licenses.mit;
+ maintainers = with maintainers; [ raskin mirrexagon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/11/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/11/deps.nix
new file mode 100644
index 000000000000..2ab72574bbd0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/textadept/11/deps.nix
@@ -0,0 +1,50 @@
+{
+ "scintilla445.tgz" = {
+ url = "https://www.scintilla.org/scintilla445.tgz";
+ sha256 = "1v1kyxj7rv5rxadbg8gl8wh1jafpy7zj0wr6dcyxq9209dl6h8ag";
+ };
+ "9e2ffa159299899c9345aea15c17ba1941953871.zip" = {
+ url = "https://github.com/orbitalquark/scinterm/archive/9e2ffa159299899c9345aea15c17ba1941953871.zip";
+ sha256 = "12h7prgp689w45p4scxd8vvsyw8fkv27g6gvgis55xr44daa6122";
+ };
+ "scintillua_4.4.5-1.zip" = {
+ url = "https://github.com/orbitalquark/scintillua/archive/scintillua_4.4.5-1.zip";
+ sha256 = "095wpbid2kvr5xgkhd5bd4sd7ljgk6gd9palrjkmdcwfgsf1lp04";
+ };
+ "lua-5.3.5.tar.gz" = {
+ url = "http://www.lua.org/ftp/lua-5.3.5.tar.gz";
+ sha256 = "1b2qn2rv96nmbm6zab4l877bd4zq7wpwm8drwjiy2ih4jqzysbhc";
+ };
+ "lpeg-1.0.2.tar.gz" = {
+ url = "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.0.2.tar.gz";
+ sha256 = "1zjzl7acvcdavmcg5l7wi12jd4rh95q9pl5aiww7hv0v0mv6bmj8";
+ };
+ "v1_7_0_2.zip" = {
+ url = "https://github.com/keplerproject/luafilesystem/archive/v1_7_0_2.zip";
+ sha256 = "0y44ymc7higz5dd2w3c6ib7mwmpr6yvszcl7lm12nf8x3y4snx4i";
+ };
+ "64587546482a1a6324706d75c80b77d2f87118a4.zip" = {
+ url = "https://github.com/orbitalquark/gtdialog/archive/64587546482a1a6324706d75c80b77d2f87118a4.zip";
+ sha256 = "10mglbnn8r1cakqn9h285pwfnh7kfa98v7j8qh83c24n66blyfh9";
+ };
+ "cdk-5.0-20150928.tgz" = {
+ url = "http://invisible-mirror.net/archives/cdk/cdk-5.0-20150928.tgz";
+ sha256 = "0j74l874y33i26y5kjg3pf1vswyjif8k93pqhi0iqykpbxfsg382";
+ };
+ "libtermkey-0.20.tar.gz" = {
+ url = "http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.20.tar.gz";
+ sha256 = "1xfj6lchhfljmbcl6dz8dpakppyy13nbl4ykxiv5x4dr9b4qf3bc";
+ };
+ "pdcurs39.zip" = {
+ url = "https://github.com/wmcbrine/PDCurses/archive/3.9.zip";
+ sha256 = "0ydsa15d6fgk15zcavbxsi4vj3knlr2495dc5v4f5xzvv2qwlb2w";
+ };
+ "bombay.zip" = {
+ url = "http://foicica.com/hg/bombay/archive/b25520cc76bb.zip";
+ sha256 = "07spq7jmkfyq20gv67yffara3ln3ns2xi0k02m2mxdms3xm1q36h";
+ };
+ "cloc-1.60.pl" = {
+ url = "http://prdownloads.sourceforge.net/cloc/cloc-1.60.pl";
+ sha256 = "0p504bi19va3dh274v7lb7giqrydwa5yyry60f7jpz84y6z71a2a";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/texworks/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/texworks/default.nix
new file mode 100644
index 000000000000..d0347bcb37c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/texworks/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
+, qtscript, poppler, hunspell
+, withLua ? true, lua
+, withPython ? true, python3 }:
+
+mkDerivation rec {
+ pname = "texworks";
+ version = "0.6.5";
+
+ src = fetchFromGitHub {
+ owner = "TeXworks";
+ repo = "texworks";
+ rev = "release-${version}";
+ sha256 = "1lw1p4iyzxypvjhnav11g6rwf6gx7kyzwy2iprvv8zzpqcdkjp2z";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+ buildInputs = [ qtscript poppler hunspell ]
+ ++ lib.optional withLua lua
+ ++ lib.optional withPython python3;
+
+ cmakeFlags = lib.optional withLua "-DWITH_LUA=ON"
+ ++ lib.optional withPython "-DWITH_PYTHON=ON";
+
+ meta = with lib; {
+ description = "Simple TeX front-end program inspired by TeXShop";
+ homepage = "http://www.tug.org/texworks/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ dotlambda ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/thonny/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/thonny/default.nix
new file mode 100644
index 000000000000..c3710cf5b22b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/thonny/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, python3 }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+ pname = "thonny";
+ version = "3.3.0";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1k1iy01az65w463j6id7iyrbinjbjd220i100mrnxyn569dxmf34";
+ };
+
+ propagatedBuildInputs = with python3.pkgs; [
+ jedi
+ pyserial
+ tkinter
+ docutils
+ pylint
+ mypy
+ pyperclip
+ asttokens
+ send2trash
+ ];
+
+ preInstall = ''
+ export HOME=$(mktemp -d)
+ '';
+
+ preFixup = ''
+ wrapProgram "$out/bin/thonny" \
+ --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath ${python3.pkgs.jedi})
+ '';
+
+ # Tests need a DISPLAY
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Python IDE for beginners";
+ longDescription = ''
+ Thonny is a Python IDE for beginners. It supports different ways
+ of stepping through the code, step-by-step expression
+ evaluation, detailed visualization of the call stack and a mode
+ for explaining the concepts of references and heap.
+ '';
+ homepage = "https://www.thonny.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ leenaars ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/tiled/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/tiled/default.nix
new file mode 100644
index 000000000000..10c0ed9ea79b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/tiled/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake
+, python, qtbase, qttools }:
+
+mkDerivation rec {
+ pname = "tiled";
+ version = "1.4.3";
+
+ src = fetchFromGitHub {
+ owner = "bjorn";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0n8p7bp5pqq72c65av3v7wbazwphh78pw27nqvpiyp9y8k5w4pg0";
+ };
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ buildInputs = [ python qtbase qttools ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Free, easy to use and flexible tile map editor";
+ homepage = "https://www.mapeditor.org/";
+ license = with licenses; [
+ bsd2 # libtiled and tmxviewer
+ gpl2Plus # all the rest
+ ];
+ maintainers = with maintainers; [ dywedir ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/tweak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/tweak/default.nix
new file mode 100644
index 000000000000..3dc7d04ede38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/tweak/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "tweak";
+ version = "3.02";
+
+ src = fetchurl {
+ url = "https://www.chiark.greenend.org.uk/~sgtatham/tweak/${pname}-${version}.tar.gz";
+ sha256 = "06js54pr5hwpwyxj77zs5s40n5aqvaw48dkj7rid2d47pyqijk2v";
+ };
+
+ buildInputs = [ ncurses ];
+ preBuild = "substituteInPlace Makefile --replace '$(DESTDIR)/usr/local' $out";
+
+ meta = with stdenv.lib; {
+ description = "An efficient hex editor";
+ homepage = "http://www.chiark.greenend.org.uk/~sgtatham/tweak";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/typora/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/typora/default.nix
new file mode 100644
index 000000000000..3c55cffdcf12
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/typora/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, lib
+, fetchurl
+, makeWrapper
+, electron_9
+, dpkg
+, gtk3
+, glib
+, gsettings-desktop-schemas
+, wrapGAppsHook
+, withPandoc ? false
+, pandoc
+}:
+
+let
+ electron = electron_9;
+in
+stdenv.mkDerivation rec {
+ pname = "typora";
+ version = "0.9.95";
+
+ src = fetchurl {
+ url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
+ sha256 = "0kgzk7z707vlbjrvykrnw2h6wscmc3h5hxycyz1z1j2cz26fns4p";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gsettings-desktop-schemas
+ gtk3
+ ];
+
+ # The deb contains setuid permission on `chrome-sandbox`, which will actually not get installed.
+ unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
+
+ dontWrapGApps = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/share
+ {
+ cd usr
+ mv share/typora/resources/app $out/share/typora
+ mv share/{applications,icons,doc} $out/share/
+ }
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ makeWrapper ${electron}/bin/electron $out/bin/typora \
+ --add-flags $out/share/typora \
+ "''${gappsWrapperArgs[@]}" \
+ ${lib.optionalString withPandoc ''--prefix PATH : "${lib.makeBinPath [ pandoc ]}"''} \
+ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
+ '';
+
+ meta = with lib; {
+ description = "A minimal Markdown reading & writing app";
+ homepage = "https://typora.io";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ jensbin ];
+ platforms = [ "x86_64-linux"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vbindiff/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vbindiff/default.nix
new file mode 100644
index 000000000000..110b7caaf81a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vbindiff/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "vbindiff";
+ version = "3.0_beta5";
+
+ buildInputs = [ ncurses ];
+
+ src = fetchurl {
+ url = "https://www.cjmweb.net/vbindiff/${pname}-${version}.tar.gz";
+ sha256 = "1f1kj4jki08bnrwpzi663mjfkrx4wnfpzdfwd2qgijlkx5ysjkgh";
+ };
+
+ meta = {
+ description = "A terminal visual binary diff viewer";
+ homepage = "https://www.cjmweb.net/vbindiff/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/cflags-prune.diff b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/cflags-prune.diff
new file mode 100644
index 000000000000..6bec4fec09ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/cflags-prune.diff
@@ -0,0 +1,15 @@
+diff --git a/src/Makefile b/src/Makefile
+index 864f54b..fd85f76 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -2806,8 +2806,8 @@ auto/pathdef.c: Makefile auto/config.mk
+ -@echo '#include "vim.h"' >> $@
+ -@echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' | $(QUOTESED) >> $@
+ -@echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' | $(QUOTESED) >> $@
+- -@echo 'char_u *all_cflags = (char_u *)"$(CC) -c -I$(srcdir) $(ALL_CFLAGS)";' | $(QUOTESED) >> $@
+- -@echo 'char_u *all_lflags = (char_u *)"$(CC) $(ALL_LIB_DIRS) $(LDFLAGS) -o $(VIMTARGET) $(ALL_LIBS) ";' | $(QUOTESED) >> $@
++ -@echo 'char_u *all_cflags = (char_u *)"see nix-store --read-log $(out)";' | $(QUOTESED) >> $@
++ -@echo 'char_u *all_lflags = (char_u *)"see nix-store --read-log $(out)";' | $(QUOTESED) >> $@
+ -@echo 'char_u *compiled_user = (char_u *)"' | tr -d $(NL) >> $@
+ -@if test -n "$(COMPILEDBY)"; then \
+ echo "$(COMPILEDBY)" | tr -d $(NL) >> $@; \
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/common.nix
new file mode 100644
index 000000000000..4ae7600f4a1d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/common.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub }:
+rec {
+ version = "8.2.1522";
+
+ src = fetchFromGitHub {
+ owner = "vim";
+ repo = "vim";
+ rev = "v${version}";
+ sha256 = "0dah3392cq06pagik5y7kcq61mslqvfsh7vqldv3kvhr5ilqb8qy";
+ };
+
+ enableParallelBuilding = true;
+
+ hardeningDisable = [ "fortify" ];
+
+ postPatch =
+ # Use man from $PATH; escape sequences are still problematic.
+ ''
+ substituteInPlace runtime/ftplugin/man.vim \
+ --replace "/usr/bin/man " "man "
+ '';
+
+ meta = with lib; {
+ description = "The most popular clone of the VI editor";
+ homepage = "http://www.vim.org";
+ license = licenses.vim;
+ maintainers = with maintainers; [ lovek323 equirosa ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/configurable.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/configurable.nix
new file mode 100644
index 000000000000..aa8120470d14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/configurable.nix
@@ -0,0 +1,190 @@
+{ source ? "default", callPackage, stdenv, ncurses, pkgconfig, gettext
+, writeText, config, glib, gtk2-x11, gtk3-x11, lua, python3, perl, tcl, ruby
+, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
+, libICE
+, vimPlugins
+, makeWrapper
+, wrapGAppsHook
+, runtimeShell
+
+# apple frameworks
+, CoreServices, CoreData, Cocoa, Foundation, libobjc
+
+, features ? "huge" # One of tiny, small, normal, big or huge
+, wrapPythonDrv ? false
+, guiSupport ? config.vim.gui or (if stdenv.isDarwin then "gtk2" else "gtk3")
+, luaSupport ? config.vim.lua or true
+, perlSupport ? config.vim.perl or false # Perl interpreter
+, pythonSupport ? config.vim.python or true # Python interpreter
+, rubySupport ? config.vim.ruby or true # Ruby interpreter
+, nlsSupport ? config.vim.nls or false # Enable NLS (gettext())
+, tclSupport ? config.vim.tcl or false # Include Tcl interpreter
+, multibyteSupport ? config.vim.multibyte or false # Enable multibyte editing support
+, cscopeSupport ? config.vim.cscope or true # Enable cscope interface
+, netbeansSupport ? config.netbeans or true # Enable NetBeans integration support.
+, ximSupport ? config.vim.xim or true # less than 15KB, needed for deadkeys
+, darwinSupport ? config.vim.darwin or false # Enable Darwin support
+, ftNixSupport ? config.vim.ftNix or true # Add .nix filetype detection and minimal syntax highlighting support
+, ...
+}:
+
+
+let
+ nixosRuntimepath = writeText "nixos-vimrc" ''
+ set nocompatible
+ syntax on
+
+ function! NixosPluginPath()
+ let seen = {}
+ for p in reverse(split($NIX_PROFILES))
+ for d in split(glob(p . '/share/vim-plugins/*'))
+ let pluginname = substitute(d, ".*/", "", "")
+ if !has_key(seen, pluginname)
+ exec 'set runtimepath^='.d
+ let after = d."/after"
+ if isdirectory(after)
+ exec 'set runtimepath^='.after
+ endif
+ let seen[pluginname] = 1
+ endif
+ endfor
+ endfor
+ endfunction
+
+ execute NixosPluginPath()
+
+ if filereadable("/etc/vimrc")
+ source /etc/vimrc
+ elseif filereadable("/etc/vim/vimrc")
+ source /etc/vim/vimrc
+ endif
+ '';
+
+ common = callPackage ./common.nix {};
+
+in stdenv.mkDerivation rec {
+
+ pname = "vim_configurable";
+
+ inherit (common) version postPatch hardeningDisable enableParallelBuilding meta;
+
+ src = builtins.getAttr source {
+ default = common.src; # latest release
+ };
+
+ patches = [ ./cflags-prune.diff ] ++ stdenv.lib.optional ftNixSupport ./ft-nix-support.patch;
+
+ configureFlags = [
+ "--enable-gui=${guiSupport}"
+ "--with-features=${features}"
+ "--disable-xsmp" # XSMP session management
+ "--disable-xsmp_interact" # XSMP interaction
+ "--disable-workshop" # Sun Visual Workshop support
+ "--disable-sniff" # Sniff interface
+ "--disable-hangulinput" # Hangul input support
+ "--disable-fontset" # X fontset output support
+ "--disable-acl" # ACL support
+ "--disable-gpm" # GPM (Linux mouse daemon)
+ "--disable-mzschemeinterp"
+ "--disable-gtk_check"
+ "--disable-gtk2_check"
+ "--disable-gnome_check"
+ "--disable-motif_check"
+ "--disable-athena_check"
+ "--disable-nextaf_check"
+ "--disable-carbon_check"
+ "--disable-gtktest"
+ ]
+ ++ stdenv.lib.optional stdenv.isDarwin
+ (if darwinSupport then "--enable-darwin" else "--disable-darwin")
+ ++ stdenv.lib.optionals luaSupport [
+ "--with-lua-prefix=${lua}"
+ "--enable-luainterp"
+ ] ++ stdenv.lib.optional lua.pkgs.isLuaJIT [
+ "--with-luajit"
+ ]
+ ++ stdenv.lib.optionals pythonSupport [
+ "--enable-python3interp=yes"
+ "--with-python3-config-dir=${python3}/lib"
+ # Disables Python 2
+ "--disable-pythoninterp"
+ ]
+ ++ stdenv.lib.optional nlsSupport "--enable-nls"
+ ++ stdenv.lib.optional perlSupport "--enable-perlinterp"
+ ++ stdenv.lib.optional rubySupport "--enable-rubyinterp"
+ ++ stdenv.lib.optional tclSupport "--enable-tclinterp"
+ ++ stdenv.lib.optional multibyteSupport "--enable-multibyte"
+ ++ stdenv.lib.optional cscopeSupport "--enable-cscope"
+ ++ stdenv.lib.optional netbeansSupport "--enable-netbeans"
+ ++ stdenv.lib.optional ximSupport "--enable-xim";
+
+ nativeBuildInputs = [
+ pkgconfig
+ ]
+ ++ stdenv.lib.optional wrapPythonDrv makeWrapper
+ ++ stdenv.lib.optional nlsSupport gettext
+ ++ stdenv.lib.optional perlSupport perl
+ ++ stdenv.lib.optional (guiSupport == "gtk3") wrapGAppsHook
+ ;
+
+ buildInputs = [ ncurses libX11 libXext libSM libXpm libXt libXaw libXau
+ libXmu glib libICE ]
+ ++ stdenv.lib.optional (guiSupport == "gtk2") gtk2-x11
+ ++ stdenv.lib.optional (guiSupport == "gtk3") gtk3-x11
+ ++ stdenv.lib.optionals darwinSupport [ CoreServices CoreData Cocoa Foundation libobjc ]
+ ++ stdenv.lib.optional luaSupport lua
+ ++ stdenv.lib.optional pythonSupport python3
+ ++ stdenv.lib.optional tclSupport tcl
+ ++ stdenv.lib.optional rubySupport ruby;
+
+ preConfigure = ''
+ '' + stdenv.lib.optionalString ftNixSupport ''
+ cp ${vimPlugins.vim-nix.src}/ftplugin/nix.vim runtime/ftplugin/nix.vim
+ cp ${vimPlugins.vim-nix.src}/indent/nix.vim runtime/indent/nix.vim
+ cp ${vimPlugins.vim-nix.src}/syntax/nix.vim runtime/syntax/nix.vim
+ '';
+
+ preInstall = ''
+ mkdir -p $out/share/applications $out/share/icons/{hicolor,locolor}/{16x16,32x32,48x48}/apps
+ '';
+
+ postInstall = ''
+ ln -s $out/bin/vim $out/bin/vi
+ '' + stdenv.lib.optionalString stdenv.isLinux ''
+ patchelf --set-rpath \
+ "$(patchelf --print-rpath $out/bin/vim):${stdenv.lib.makeLibraryPath buildInputs}" \
+ "$out"/bin/vim
+ if [[ -e "$out"/bin/gvim ]]; then
+ patchelf --set-rpath \
+ "$(patchelf --print-rpath $out/bin/vim):${stdenv.lib.makeLibraryPath buildInputs}" \
+ "$out"/bin/gvim
+ fi
+
+ ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
+ '' + stdenv.lib.optionalString wrapPythonDrv ''
+ wrapProgram "$out/bin/vim" --prefix PATH : "${python3}/bin"
+ '' + stdenv.lib.optionalString (guiSupport == "gtk3") ''
+
+ rewrap () {
+ rm -f "$out/bin/$1"
+ echo -e '#!${runtimeShell}\n"'"$out/bin/vim"'" '"$2"' "$@"' > "$out/bin/$1"
+ chmod a+x "$out/bin/$1"
+ }
+
+ rewrap ex -e
+ rewrap view -R
+ rewrap gvim -g
+ rewrap gex -eg
+ rewrap gview -Rg
+ rewrap rvim -Z
+ rewrap rview -RZ
+ rewrap rgvim -gZ
+ rewrap rgview -RgZ
+ rewrap evim -y
+ rewrap eview -yR
+ rewrap vimdiff -d
+ rewrap gvimdiff -gd
+ '';
+
+ dontStrip = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/default.nix
new file mode 100644
index 000000000000..95d2076153cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, callPackage, ncurses, gettext, pkgconfig
+# default vimrc
+, vimrc ? fetchurl {
+ name = "default-vimrc";
+ url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/archlinux.vim?id=68f6d131750aa778807119e03eed70286a17b1cb";
+ sha256 = "18ifhv5q9prd175q3vxbqf6qyvkk6bc7d2lhqdk0q78i68kv9y0c";
+ }
+# apple frameworks
+, Carbon, Cocoa
+}:
+
+let
+ common = callPackage ./common.nix {};
+in
+stdenv.mkDerivation {
+ pname = "vim";
+
+ inherit (common) version src postPatch hardeningDisable enableParallelBuilding meta;
+
+ nativeBuildInputs = [ gettext pkgconfig ];
+ buildInputs = [ ncurses ]
+ ++ stdenv.lib.optionals stdenv.hostPlatform.isDarwin [ Carbon Cocoa ];
+
+ configureFlags = [
+ "--enable-multibyte"
+ "--enable-nls"
+ ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "vim_cv_toupper_broken=no"
+ "--with-tlib=ncurses"
+ "vim_cv_terminfo=yes"
+ "vim_cv_tgetent=zero" # it does on native anyway
+ "vim_cv_tty_group=tty"
+ "vim_cv_tty_mode=0660"
+ "vim_cv_getcwd_broken=no"
+ "vim_cv_stat_ignores_slash=yes"
+ "ac_cv_sizeof_int=4"
+ "vim_cv_memmove_handles_overlap=yes"
+ "vim_cv_memmove_handles_overlap=yes"
+ ];
+
+ postInstall = ''
+ ln -s $out/bin/vim $out/bin/vi
+ mkdir -p $out/share/vim
+ cp "${vimrc}" $out/share/vim/vimrc
+ '';
+
+ __impureHostDeps = [ "/dev/ptmx" ];
+
+ # To fix the trouble in vim73, that it cannot cross-build with this patch
+ # to bypass a configure script check that cannot be done cross-building.
+ # http://groups.google.com/group/vim_dev/browse_thread/thread/66c02efd1523554b?pli=1
+ # patchPhase = ''
+ # sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
+ # '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/ft-nix-support.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/ft-nix-support.patch
new file mode 100644
index 000000000000..274d855731fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/ft-nix-support.patch
@@ -0,0 +1,20 @@
+diff --git a/runtime/filetype.vim b/runtime/filetype.vim
+index a8e6261..2b008fc 100644
+--- a/runtime/filetype.vim
++++ b/runtime/filetype.vim
+@@ -2258,6 +2258,9 @@ au BufNewFile,BufRead *.zsql call s:SQL()
+ " Z80 assembler asz80
+ au BufNewFile,BufRead *.z8a setf z8a
+
++" Nix
++au BufNewFile,BufRead *.nix setf nix
++
+ augroup END
+
+
+@@ -2440,3 +2443,5 @@ endfunc
+ " Restore 'cpoptions'
+ let &cpo = s:cpo_save
+ unlet s:cpo_save
++
++
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim-configurable.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim-configurable.nix
new file mode 100644
index 000000000000..087a375c50cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim-configurable.nix
@@ -0,0 +1,67 @@
+{ stdenv, callPackage, vimUtils, buildEnv, makeWrapper }:
+
+let
+ macvim = callPackage ./macvim.nix { inherit stdenv; };
+
+ makeCustomizable = macvim: macvim // {
+ # configure expects the same args as vimUtils.vimrcFile.
+ # This is the same as the value given to neovim.override { configure = … }
+ # or the value of vim_configurable.customize { vimrcConfig = … }
+ #
+ # Note: Like neovim and vim_configurable, configuring macvim disables the
+ # sourcing of the user's vimrc. Use `customRC = "source $HOME/.vim/vimrc"`
+ # if you want to preserve that behavior.
+ configure = let
+ inherit (stdenv) lib;
+ doConfig = config: let
+ vimrcConfig = config // {
+ # always source the bundled system vimrc
+ beforePlugins = ''
+ source $VIM/vimrc
+ ${config.beforePlugins or ""}
+ '';
+ };
+ in buildEnv {
+ name = macvim.name;
+ paths = [ macvim ];
+ pathsToLink = [
+ "/"
+ "/bin"
+ "/Applications/MacVim.app/Contents/MacOS"
+ "/Applications/MacVim.app/Contents/bin"
+ ];
+ buildInputs = [ makeWrapper ];
+ # We need to do surgery on the resulting app. We can't just make a wrapper for vim because this
+ # is a GUI app. We need to copy the actual GUI executable image as AppKit uses the loaded image's
+ # path to locate the bundle. We can use symlinks for other executables and resources though.
+ postBuild = ''
+ # Replace the Contents/MacOS/MacVim symlink with the original file
+ target=$(readlink $out/Applications/MacVim.app/Contents/MacOS/MacVim)
+ rm $out/Applications/MacVim.app/Contents/MacOS/MacVim
+ cp -a -t $out/Applications/MacVim.app/Contents/MacOS "$target"
+
+ # Wrap the Vim binary for our vimrc
+ wrapProgram $out/Applications/MacVim.app/Contents/MacOS/Vim \
+ --add-flags "-u ${vimUtils.vimrcFile vimrcConfig}"
+
+ # Replace each symlink in bin/ with the original. Most of them point at other symlinks
+ # and we need those original symlinks to point into our new app bundle.
+ for prefix in bin Applications/MacVim.app/Contents/bin; do
+ for link in $out/$prefix/*; do
+ target=$(readlink "$link")
+ # don't copy binaries like vimtutor, but we do need mvim
+ [ -L "$target" ] || [ "$(basename "$target")" = mvim ] || continue;
+ rm "$link"
+ cp -a -t $out/$prefix "$target"
+ done
+ done
+ '';
+ meta = macvim.meta;
+ };
+ in lib.makeOverridable (lib.setFunctionArgs doConfig (lib.functionArgs vimUtils.vimrcFile));
+
+ override = f: makeCustomizable (macvim.override f);
+ overrideAttrs = f: makeCustomizable (macvim.overrideAttrs f);
+ };
+in
+ makeCustomizable macvim
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim.nix
new file mode 100644
index 000000000000..d2cc14c30c48
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim.nix
@@ -0,0 +1,186 @@
+{ stdenv, fetchFromGitHub, runCommand, ncurses, gettext
+, pkgconfig, cscope, ruby, tcl, perl, luajit
+, darwin
+
+, usePython27 ? false
+, python27 ? null, python37 ? null
+}:
+
+let
+ python = if usePython27
+ then { pkg = python27; name = "python"; }
+ else { pkg = python37; name = "python3"; };
+in
+assert python.pkg != null;
+
+let
+ # Building requires a few system tools to be in PATH.
+ # Some of these we could patch into the relevant source files (such as xcodebuild and
+ # qlmanage) but some are used by Xcode itself and we have no choice but to put them in PATH.
+ # Symlinking them in this way is better than just putting all of /usr/bin in there.
+ buildSymlinks = runCommand "macvim-build-symlinks" {} ''
+ mkdir -p $out/bin
+ ln -s /usr/bin/xcrun /usr/bin/xcodebuild /usr/bin/tiffutil /usr/bin/qlmanage $out/bin
+ '';
+in
+
+stdenv.mkDerivation {
+ pname = "macvim";
+
+ version = "8.2.1719";
+
+ src = fetchFromGitHub {
+ owner = "macvim-dev";
+ repo = "macvim";
+ rev = "snapshot-166";
+ sha256 = "1p51q59l1dl5lnf1ms960lm8zfg39p8xq0pdjw6wdyypjj3r8v3v";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig buildSymlinks ];
+ buildInputs = [
+ gettext ncurses cscope luajit ruby tcl perl python.pkg
+ ];
+
+ patches = [ ./macvim.patch ];
+
+ configureFlags = [
+ "--enable-cscope"
+ "--enable-fail-if-missing"
+ "--with-features=huge"
+ "--enable-gui=macvim"
+ "--enable-multibyte"
+ "--enable-nls"
+ "--enable-luainterp=dynamic"
+ "--enable-${python.name}interp=dynamic"
+ "--enable-perlinterp=dynamic"
+ "--enable-rubyinterp=dynamic"
+ "--enable-tclinterp=yes"
+ "--without-local-dir"
+ "--with-luajit"
+ "--with-lua-prefix=${luajit}"
+ "--with-${python.name}-command=${python.pkg}/bin/${python.name}"
+ "--with-ruby-command=${ruby}/bin/ruby"
+ "--with-tclsh=${tcl}/bin/tclsh"
+ "--with-tlib=ncurses"
+ "--with-compiledby=Nix"
+ "--disable-sparkle"
+ ];
+
+ # Remove references to Sparkle.framework from the project.
+ # It's unused (we disabled it with --disable-sparkle) and this avoids
+ # copying the unnecessary several-megabyte framework into the result.
+ postPatch = ''
+ echo "Patching file src/MacVim/MacVim.xcodeproj/project.pbxproj"
+ sed -e '/Sparkle\.framework/d' -i src/MacVim/MacVim.xcodeproj/project.pbxproj
+ '';
+
+ # This is unfortunate, but we need to use the same compiler as Xcode,
+ # but Xcode doesn't provide a way to configure the compiler.
+ preConfigure = ''
+ CC=/usr/bin/clang
+
+ DEV_DIR=$(/usr/bin/xcode-select -print-path)/Platforms/MacOSX.platform/Developer
+ configureFlagsArray+=(
+ --with-developer-dir="$DEV_DIR"
+ LDFLAGS="-L${ncurses}/lib"
+ CPPFLAGS="-isystem ${ncurses.dev}/include"
+ CFLAGS="-Wno-error=implicit-function-declaration"
+ )
+ ''
+ # For some reason having LD defined causes PSMTabBarControl to fail at link-time as it
+ # passes arguments to ld that it meant for clang.
+ + ''
+ unset LD
+ ''
+ # When building with nix-daemon, we need to pass -derivedDataPath or else it tries to use
+ # a folder rooted in /var/empty and fails. Unfortunately we can't just pass -derivedDataPath
+ # by itself as this flag requires the use of -scheme or -xctestrun (not sure why), but MacVim
+ # by default just runs `xcodebuild -project src/MacVim/MacVim.xcodeproj`, relying on the default
+ # behavior to build the first target in the project. Experimentally, there seems to be a scheme
+ # called MacVim, so we'll explicitly select that. We also need to specify the configuration too
+ # as the scheme seems to have the wrong default.
+ + ''
+ configureFlagsArray+=(
+ XCODEFLAGS="-scheme MacVim -derivedDataPath $NIX_BUILD_TOP/derivedData"
+ --with-xcodecfg="Release"
+ )
+ ''
+ ;
+
+ # Because we're building with system clang, this means we're building against Xcode's SDK and
+ # linking against system libraries. The configure script is picking up Nix Libsystem (via ruby)
+ # so we need to patch that out or we'll get linker issues. The MacVim binary built by Xcode links
+ # against the system anyway so it doesn't really matter that the Vim binary will too. If we
+ # decide that matters, we can always patch it back to the Nix libsystem post-build.
+ # It also picks up libiconv, libunwind, and objc4 from Nix. These seem relatively harmless but
+ # let's strip them out too.
+ #
+ # Note: If we do add a post-build install_name_tool patch, we need to add the
+ # "LDFLAGS=-headerpad_max_install_names" flag to configureFlags and either patch it into the
+ # Xcode project or pass it as a flag to xcodebuild as well.
+ postConfigure = ''
+ substituteInPlace src/auto/config.mk \
+ --replace "PERL_CFLAGS =" "PERL_CFLAGS = -I${darwin.libutil}/include" \
+ --replace " -L${stdenv.cc.libc}/lib" "" \
+ --replace " -L${darwin.libobjc}/lib" "" \
+ --replace " -L${darwin.libunwind}/lib" "" \
+ --replace " -L${darwin.libiconv}/lib" ""
+
+ # All the libraries we stripped have -osx- in their name as of this time.
+ # Assert now that this pattern no longer appears in config.mk.
+ ( # scope variable
+ while IFS="" read -r line; do
+ if [[ "$line" == LDFLAGS*-osx-* ]]; then
+ echo "WARNING: src/auto/config.mk contains reference to Nix osx library" >&2
+ fi
+ done <src/auto/config.mk
+ )
+
+ substituteInPlace src/MacVim/vimrc --subst-var-by CSCOPE ${cscope}/bin/cscope
+ '';
+
+ postInstall = ''
+ mkdir -p $out/Applications
+ cp -r src/MacVim/build/Release/MacVim.app $out/Applications
+ rm -rf $out/MacVim.app
+
+ rm $out/bin/*
+
+ cp src/vimtutor $out/bin
+ for prog in mvim ex vi vim vimdiff view rvim rvimdiff rview; do
+ ln -s $out/Applications/MacVim.app/Contents/bin/mvim $out/bin/$prog
+ done
+
+ # Fix rpaths
+ exe="$out/Applications/MacVim.app/Contents/MacOS/Vim"
+ libperl=$(dirname $(find ${perl} -name "libperl.dylib"))
+ install_name_tool -add_rpath ${luajit}/lib $exe
+ install_name_tool -add_rpath ${tcl}/lib $exe
+ install_name_tool -add_rpath ${python.pkg}/lib $exe
+ install_name_tool -add_rpath $libperl $exe
+ install_name_tool -add_rpath ${ruby}/lib $exe
+
+ # Remove manpages from tools we aren't providing
+ find $out/share/man \( -name eVim.1 -or -name xxd.1 \) -delete
+ '';
+
+ # We rely on the user's Xcode install to build. It may be located in an arbitrary place, and
+ # it's not clear what system-level components it may require, so for now we'll just allow full
+ # filesystem access. This way the package still can't access the network.
+ 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 stdenv.lib; {
+ description = "Vim - the text editor - for macOS";
+ homepage = "https://github.com/macvim-dev/macvim";
+ license = licenses.vim;
+ maintainers = with maintainers; [ cstrahan lilyball ];
+ platforms = platforms.darwin;
+ hydraPlatforms = []; # hydra can't build this as long as we rely on Xcode and sandboxProfile
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim.patch
new file mode 100644
index 000000000000..49354aa9a8d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/macvim.patch
@@ -0,0 +1,204 @@
+diff --git a/src/MacVim/vimrc b/src/MacVim/vimrc
+index af43549..dfb10fe 100644
+--- a/src/MacVim/vimrc
++++ b/src/MacVim/vimrc
+@@ -14,35 +14,5 @@ set backspace+=indent,eol,start
+ " translated to English).
+ set langmenu=none
+
+-" Python2
+-" MacVim is configured by default to use the pre-installed System python2
+-" version. However, following code tries to find a Homebrew, MacPorts or
+-" an installation from python.org:
+-if exists("&pythondll") && exists("&pythonhome")
+- if filereadable("/usr/local/Frameworks/Python.framework/Versions/2.7/Python")
+- " Homebrew python 2.7
+- set pythondll=/usr/local/Frameworks/Python.framework/Versions/2.7/Python
+- elseif filereadable("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python")
+- " MacPorts python 2.7
+- set pythondll=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python
+- elseif filereadable("/Library/Frameworks/Python.framework/Versions/2.7/Python")
+- " https://www.python.org/downloads/mac-osx/
+- set pythondll=/Library/Frameworks/Python.framework/Versions/2.7/Python
+- endif
+-endif
+-
+-" Python3
+-" MacVim is configured by default to use Homebrew python3 version
+-" If this cannot be found, following code tries to find a MacPorts
+-" or an installation from python.org:
+-if exists("&pythonthreedll") && exists("&pythonthreehome") &&
+- \ !filereadable(&pythonthreedll)
+- if filereadable("/opt/local/Library/Frameworks/Python.framework/Versions/3.8/Python")
+- " MacPorts python 3.8
+- set pythonthreedll=/opt/local/Library/Frameworks/Python.framework/Versions/3.8/Python
+- elseif filereadable("/Library/Frameworks/Python.framework/Versions/3.8/Python")
+- " https://www.python.org/downloads/mac-osx/
+- set pythonthreedll=/Library/Frameworks/Python.framework/Versions/3.8/Python
+- endif
+-endif
+-
++" Default cscopeprg to the Nix-installed path
++set cscopeprg=@CSCOPE@
+diff --git a/src/Makefile b/src/Makefile
+index fd2d5e1..37a6d6a 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -1397,7 +1397,7 @@ MACVIMGUI_SRC = gui.c gui_beval.c MacVim/gui_macvim.m MacVim/MMBackend.m \
+ MacVim/MacVim.m
+ MACVIMGUI_OBJ = objects/gui.o objects/gui_beval.o \
+ objects/gui_macvim.o objects/MMBackend.o objects/MacVim.o
+-MACVIMGUI_DEFS = -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
++MACVIMGUI_DEFS = -DMACOS_X_DARWIN -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
+ MACVIMGUI_IPATH =
+ MACVIMGUI_LIBS_DIR =
+ MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon
+diff --git a/src/auto/configure b/src/auto/configure
+index 06257a5..68437df 100755
+--- a/src/auto/configure
++++ b/src/auto/configure
+@@ -5872,10 +5872,7 @@ $as_echo "not found" >&6; }
+
+ for path in "${vi_cv_path_mzscheme_pfx}/lib" "${SCHEME_LIB}"; do
+ if test "X$path" != "X"; then
+- if test "x$MACOS_X" = "xyes"; then
+- MZSCHEME_LIBS="-framework Racket"
+- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+- elif test -f "${path}/libmzscheme3m.a"; then
++ if test -f "${path}/libmzscheme3m.a"; then
+ MZSCHEME_LIBS="${path}/libmzscheme3m.a"
+ MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+ elif test -f "${path}/libracket3m.a"; then
+@@ -6260,23 +6257,6 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; }
+ fi
+
+ if test "x$MACOS_X" = "xyes"; then
+- dir=/System/Library/Perl
+- darwindir=$dir/darwin
+- if test -d $darwindir; then
+- PERL=/usr/bin/perl
+- else
+- dir=/System/Library/Perl/5.8.1
+- darwindir=$dir/darwin-thread-multi-2level
+- if test -d $darwindir; then
+- PERL=/usr/bin/perl
+- fi
+- fi
+- if test -n "$PERL"; then
+- PERL_DIR="$dir"
+- PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
+- PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
+- PERL_LIBS="-L$darwindir/CORE -lperl"
+- fi
+ PERL_LIBS=`echo "$PERL_LIBS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
+ PERL_CFLAGS=`echo "$PERL_CFLAGS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
+ fi
+@@ -6499,13 +6479,7 @@ __:
+ eof
+ eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ rm -f -- "${tmp_mkf}"
+- if test "x$MACOS_X" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
+- "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
+- vi_cv_path_python_plibs="-framework Python"
+- if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
+- vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python"
+- fi
+- else
++
+ vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
+ if test -n "${python_LINKFORSHARED}" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
+ python_link_symbol=`echo ${python_LINKFORSHARED} | sed 's/\([^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*\)[ \t].*/\1/'`
+@@ -6520,7 +6494,6 @@ eof
+ fi
+ vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_BASEMODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
+ vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
+- fi
+
+ fi
+
+@@ -6599,13 +6572,6 @@ rm -f core conftest.err conftest.$ac_objext \
+ $as_echo "no" >&6; }
+ fi
+
+- if test -n "$MACSDK"; then
+- PYTHON_CFLAGS=
+- PYTHON_LIBS=-framework Python
+- PYTHON_CONFDIR=
+- PYTHON_GETPATH_CFLAGS=
+- fi
+-
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compile and link flags for Python are sane" >&5
+ $as_echo_n "checking if compile and link flags for Python are sane... " >&6; }
+ cflags_save=$CFLAGS
+@@ -7499,11 +7465,7 @@ $as_echo "$tclver - OK" >&6; };
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of Tcl include" >&5
+ $as_echo_n "checking for location of Tcl include... " >&6; }
+- if test "x$MACOS_X" != "xyes"; then
+ tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
+- else
+- tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /System/Library/Frameworks/Tcl.framework/Headers `xcrun --show-sdk-path`/System/Library/Frameworks/Tcl.framework/Versions/Current/Headers"
+- fi
+ TCL_INC=
+ for try in $tclinc; do
+ if test -f "$try/tcl.h"; then
+@@ -7521,13 +7483,8 @@ $as_echo "<not found>" >&6; }
+ if test -z "$SKIP_TCL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of tclConfig.sh script" >&5
+ $as_echo_n "checking for location of tclConfig.sh script... " >&6; }
+- if test "x$MACOS_X" != "xyes"; then
+ tclcnf=`echo $tclinc | sed s/include/lib/g`
+ tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
+- else
+- tclcnf=`echo $tclinc | sed s/include/lib/g`
+- tclcnf="$tclcnf /System/Library/Frameworks/Tcl.framework `xcrun --show-sdk-path`/System/Library/Frameworks/Tcl.framework"
+- fi
+ for try in $tclcnf; do
+ if test -f "$try/tclConfig.sh"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $try/tclConfig.sh" >&5
+@@ -7717,10 +7674,6 @@ $as_echo "$rubyhdrdir" >&6; }
+ if test -f "$rubylibdir/$librubya"; then
+ librubyarg="$librubyarg"
+ RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+- elif test "$vi_cv_path_ruby" = "/usr/bin/ruby" -a -d "/System/Library/Frameworks/Ruby.framework"; then
+- RUBY_LIBS="-framework Ruby"
+- RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
+- librubyarg=
+ fi
+
+ if test "X$librubyarg" != "X"; then
+diff --git a/src/vim.h b/src/vim.h
+index bbc01ee..5a93591 100644
+--- a/src/vim.h
++++ b/src/vim.h
+@@ -244,17 +244,6 @@
+ # define SUN_SYSTEM
+ #endif
+
+-// If we're compiling in C++ (currently only KVim), the system
+-// headers must have the correct prototypes or nothing will build.
+-// Conversely, our prototypes might clash due to throw() specifiers and
+-// cause compilation failures even though the headers are correct. For
+-// a concrete example, gcc-3.2 enforces exception specifications, and
+-// glibc-2.2.5 has them in their system headers.
+-#if !defined(__cplusplus) && defined(UNIX) \
+- && !defined(MACOS_X) // MACOS_X doesn't yet support osdef.h
+-# include "auto/osdef.h" // bring missing declarations in
+-#endif
+-
+ #ifdef AMIGA
+ # include "os_amiga.h"
+ #endif
+diff --git a/src/vimtutor b/src/vimtutor
+index 1e8769b..47078b0 100755
+--- a/src/vimtutor
++++ b/src/vimtutor
+@@ -16,7 +16,7 @@ seq="vim vim81 vim80 vim8 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
+ if test "$1" = "-g"; then
+ # Try to use the GUI version of Vim if possible, it will fall back
+ # on Vim if Gvim is not installed.
+- seq="gvim gvim81 gvim80 gvim8 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
++ seq="mvim gvim gvim81 gvim80 gvim8 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
+ shift
+ fi
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/vimacs.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/vimacs.nix
new file mode 100644
index 000000000000..d067b4181213
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vim/vimacs.nix
@@ -0,0 +1,34 @@
+{ stdenv, config, vim_configurable, macvim, vimPlugins
+, useMacvim ? stdenv.isDarwin && (config.vimacs.macvim or true)
+, vimacsExtraArgs ? "" }:
+
+stdenv.mkDerivation rec {
+ pname = "vimacs";
+ version = vimPackage.version;
+ vimPackage = if useMacvim then macvim else vim_configurable;
+
+ buildInputs = [ vimPackage vimPlugins.vimacs ];
+
+ buildCommand = ''
+ mkdir -p "$out"/bin
+ cp "${vimPlugins.vimacs}"/share/vim-plugins/vimacs/bin/vim $out/bin/vimacs
+ substituteInPlace "$out"/bin/vimacs \
+ --replace '-vim}' '-@bin@/bin/vim}' \
+ --replace '-gvim}' '-@bin@/bin/vim -g}' \
+ --replace '--cmd "let g:VM_Enabled = 1"' \
+ '--cmd "let g:VM_Enabled = 1" --cmd "set rtp^=@rtp@" ${vimacsExtraArgs}' \
+ --replace @rtp@ ${vimPlugins.vimacs.rtp} \
+ --replace @bin@ ${vimPackage}
+ for prog in vm gvm gvimacs vmdiff vimacsdiff
+ do
+ ln -s "$out"/bin/vimacs $out/bin/$prog
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Vim-Improved eMACS: Emacs emulation for Vim";
+ homepage = "http://algorithm.com.au/code/vimacs";
+ license = licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ millerjason ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vis/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vis/default.nix
new file mode 100644
index 000000000000..5191b916b6c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vis/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchFromGitHub, pkgconfig, makeWrapper, makeDesktopItem
+, ncurses, libtermkey, lpeg, lua
+, acl ? null, libselinux ? null
+}:
+
+stdenv.mkDerivation rec {
+ pname = "vis";
+ version = "0.6";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ sha256 = "1zjm89cn3rfq8fxpwp66khy53s6vqlmw6q103qyyvix8ydzxdmsh";
+ repo = "vis";
+ owner = "martanne";
+ };
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+ buildInputs = [
+ ncurses
+ libtermkey
+ lua
+ lpeg
+ ] ++ stdenv.lib.optionals stdenv.isLinux [
+ acl
+ libselinux
+ ];
+
+ postPatch = ''
+ patchShebangs ./configure
+ '';
+
+ LUA_CPATH="${lpeg}/lib/lua/${lua.luaversion}/?.so;";
+ LUA_PATH="${lpeg}/share/lua/${lua.luaversion}/?.lua";
+
+ postInstall = ''
+ mkdir -p "$out/share/applications"
+ cp $desktopItem/share/applications/* $out/share/applications
+ echo wrapping $out/bin/vis with runtime environment
+ wrapProgram $out/bin/vis \
+ --prefix LUA_CPATH ';' "${lpeg}/lib/lua/${lua.luaversion}/?.so" \
+ --prefix LUA_PATH ';' "${lpeg}/share/lua/${lua.luaversion}/?.lua" \
+ --prefix VIS_PATH : "\$HOME/.config:$out/share/vis"
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "vis";
+ exec = "vis %U";
+ type = "Application";
+ icon = "accessories-text-editor";
+ comment = meta.description;
+ desktopName = "vis";
+ genericName = "Text editor";
+ categories = stdenv.lib.concatStringsSep ";" [
+ "Application" "Development" "IDE"
+ ];
+ mimeType = stdenv.lib.concatStringsSep ";" [
+ "text/plain" "application/octet-stream"
+ ];
+ startupNotify = "false";
+ terminal = "true";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A vim like editor";
+ homepage = "https://github.com/martanne/vis";
+ license = licenses.isc;
+ maintainers = with maintainers; [ vrthra ramkromberg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/viw/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/viw/default.nix
new file mode 100644
index 000000000000..4025bf252b30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/viw/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "viw";
+ version = "unstable-20171029";
+
+ src = fetchFromGitHub {
+ owner = "lpan";
+ repo = pname;
+ rev = "2cf317f6d82a6fa58f284074400297b6dc0f44c2";
+ sha256 = "0bnkh57v01zay6ggk0rbddaf75i48h8z06xsv33wfbjldclaljp1";
+ };
+
+ buildInputs = [ ncurses ];
+
+ makeFlags = [ "CC=cc" ];
+ checkFlags = [ "test-command" "test-buffer" "test-state" ];
+
+ installPhase = ''
+ install -Dm 755 -t $out/bin viw
+ install -Dm 644 -t $out/share/doc/${pname} README.md
+ '';
+
+ meta = with stdenv.lib; {
+ description = "VI Worsened, a fun and light clone of VI";
+ homepage = "https://github.com/lpan/viw";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/generic.nix
new file mode 100644
index 000000000000..eea34cacfc04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/generic.nix
@@ -0,0 +1,96 @@
+{ stdenv, lib, makeDesktopItem
+, unzip, libsecret, libXScrnSaver, wrapGAppsHook
+, gtk2, atomEnv, at-spi2-atk, autoPatchelfHook
+, systemd, fontconfig, libdbusmenu
+
+# Attributes inherit from specific versions
+, version, src, meta, sourceRoot
+, executableName, longName, shortName, pname
+}:
+
+let
+ inherit (stdenv.hostPlatform) system;
+in
+ stdenv.mkDerivation {
+
+ inherit pname version src sourceRoot;
+
+ passthru = {
+ inherit executableName;
+ };
+
+ desktopItem = makeDesktopItem {
+ name = executableName;
+ desktopName = longName;
+ comment = "Code Editing. Redefined.";
+ genericName = "Text Editor";
+ exec = "${executableName} %F";
+ icon = "code";
+ startupNotify = "true";
+ categories = "Utility;TextEditor;Development;IDE;";
+ mimeType = "text/plain;inode/directory;";
+ extraEntries = ''
+ StartupWMClass=${shortName}
+ Actions=new-empty-window;
+ Keywords=vscode;
+
+ [Desktop Action new-empty-window]
+ Name=New Empty Window
+ Exec=${executableName} --new-window %F
+ Icon=code
+ '';
+ };
+
+ urlHandlerDesktopItem = makeDesktopItem {
+ name = executableName + "-url-handler";
+ desktopName = longName + " - URL Handler";
+ comment = "Code Editing. Redefined.";
+ genericName = "Text Editor";
+ exec = executableName + " --open-url %U";
+ icon = "code";
+ startupNotify = "true";
+ categories = "Utility;TextEditor;Development;IDE;";
+ mimeType = "x-scheme-handler/vscode;";
+ extraEntries = ''
+ NoDisplay=true
+ Keywords=vscode;
+ '';
+ };
+
+ buildInputs = (if stdenv.isDarwin
+ then [ unzip ]
+ else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
+ ++ [ libsecret libXScrnSaver ];
+
+ runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];
+
+ nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ installPhase =
+ if system == "x86_64-darwin" then ''
+ mkdir -p "$out/Applications/${longName}.app" $out/bin
+ cp -r ./* "$out/Applications/${longName}.app"
+ ln -s "$out/Applications/${longName}.app/Contents/Resources/app/bin/code" $out/bin/${executableName}
+ '' else ''
+ mkdir -p $out/lib/vscode $out/bin
+ cp -r ./* $out/lib/vscode
+
+ ln -s $out/lib/vscode/bin/${executableName} $out/bin
+
+ mkdir -p $out/share/applications
+ ln -s $desktopItem/share/applications/${executableName}.desktop $out/share/applications/${executableName}.desktop
+ ln -s $urlHandlerDesktopItem/share/applications/${executableName}-url-handler.desktop $out/share/applications/${executableName}-url-handler.desktop
+
+ mkdir -p $out/share/pixmaps
+ cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
+
+ # Override the previously determined VSCODE_PATH with the one we know to be correct
+ sed -i "/ELECTRON=/iVSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName}
+ grep -q "VSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName} # check if sed succeeded
+ '';
+
+ inherit meta;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/update-vscode.sh b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/update-vscode.sh
new file mode 100755
index 000000000000..4974eb7e4367
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/update-vscode.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnugrep gnused gawk
+
+# Update script for the vscode versions and hashes.
+# Usually doesn't need to be called by hand,
+# but is called by a bot: https://github.com/samuela/nixpkgs-upkeep/actions
+# Call it by hand if the bot fails to automatically update the versions.
+
+set -eou pipefail
+
+ROOT="$(dirname "$(readlink -f "$0")")"
+if [ ! -f "$ROOT/vscode.nix" ]; then
+ echo "ERROR: cannot find vscode.nix in $ROOT"
+ exit 1
+fi
+
+# VSCode
+
+VSCODE_VER=$(curl -s -L "https://code.visualstudio.com/Download" | grep "is now available" | awk -F'</span>' '{print $1}' | awk -F'>' '{print $NF}')
+VSCODE_VER=$(curl -s -L "https://code.visualstudio.com/updates/v${VSCODE_VER/./_}" | grep "Downloads:" | awk -F'code.visualstudio.com/' '{print $2}' | awk -F'/' '{print $1}')
+sed -i "s/version = \".*\"/version = \"${VSCODE_VER}\"/" "$ROOT/vscode.nix"
+
+VSCODE_LINUX_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-x64/stable"
+VSCODE_LINUX_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_URL})
+sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODE_LINUX_SHA256}\"/" "$ROOT/vscode.nix"
+
+VSCODE_DARWIN_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/darwin/stable"
+VSCODE_DARWIN_SHA256=$(nix-prefetch-url ${VSCODE_DARWIN_URL})
+sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODE_DARWIN_SHA256}\"/" "$ROOT/vscode.nix"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/update-vscodium.sh b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/update-vscodium.sh
new file mode 100755
index 000000000000..0ddab6063cad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/update-vscodium.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnugrep gnused gawk
+
+# Update script for the vscode versions and hashes.
+# Usually doesn't need to be called by hand,
+# but is called by a bot: https://github.com/samuela/nixpkgs-upkeep/actions
+# Call it by hand if the bot fails to automatically update the versions.
+
+set -eou pipefail
+
+ROOT="$(dirname "$(readlink -f "$0")")"
+if [ ! -f "$ROOT/vscodium.nix" ]; then
+ echo "ERROR: cannot find vscodium.nix in $ROOT"
+ exit 1
+fi
+
+# VSCodium
+
+VSCODIUM_VER=$(curl -Ls -w %{url_effective} -o /dev/null https://github.com/VSCodium/vscodium/releases/latest | awk -F'/' '{print $NF}')
+sed -i "s/version = \".*\"/version = \"${VSCODIUM_VER}\"/" "$ROOT/vscodium.nix"
+
+VSCODIUM_LINUX_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-linux-x64-${VSCODIUM_VER}.tar.gz"
+VSCODIUM_LINUX_SHA256=$(nix-prefetch-url ${VSCODIUM_LINUX_URL})
+sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODIUM_LINUX_SHA256}\"/" "$ROOT/vscodium.nix"
+
+VSCODIUM_DARWIN_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-darwin-${VSCODIUM_VER}.zip"
+VSCODIUM_DARWIN_SHA256=$(nix-prefetch-url ${VSCODIUM_DARWIN_URL})
+sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODIUM_DARWIN_SHA256}\"/" "$ROOT/vscodium.nix"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/vscode.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
new file mode 100644
index 000000000000..70f621177105
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
@@ -0,0 +1,57 @@
+{ stdenv, lib, callPackage, fetchurl, isInsiders ? false }:
+
+let
+ inherit (stdenv.hostPlatform) system;
+
+ plat = {
+ x86_64-linux = "linux-x64";
+ x86_64-darwin = "darwin";
+ }.${system};
+
+ archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
+
+ sha256 = {
+ x86_64-linux = "0yv6584y4idkl9vvmpxj5ix5brshm1vadiwf7ima84snm0fipb0n";
+ x86_64-darwin = "0igndxkwkxyjc9rkf9hbj8903hvfv7ab41q0s3gw8w5qh4b8s48x";
+ }.${system};
+in
+ callPackage ./generic.nix rec {
+ # The update script doesn't correctly change the hash for darwin, so please:
+ # nixpkgs-update: no auto update
+
+ # Please backport all compatible updates to the stable release.
+ # This is important for the extension ecosystem.
+ version = "1.51.1";
+ pname = "vscode";
+
+ executableName = "code" + lib.optionalString isInsiders "-insiders";
+ longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
+ shortName = "Code" + lib.optionalString isInsiders " - Insiders";
+
+ src = fetchurl {
+ name = "VSCode_${version}_${plat}.${archive_fmt}";
+ url = "https://vscode-update.azurewebsites.net/${version}/${plat}/stable";
+ inherit sha256;
+ };
+
+ sourceRoot = "";
+
+ meta = with stdenv.lib; {
+ description = ''
+ Open source source code editor developed by Microsoft for Windows,
+ Linux and macOS
+ '';
+ longDescription = ''
+ Open source source code editor developed by Microsoft for Windows,
+ Linux and macOS. It includes support for debugging, embedded Git
+ control, syntax highlighting, intelligent code completion, snippets,
+ and code refactoring. It is also customizable, so users can change the
+ editor's theme, keyboard shortcuts, and preferences
+ '';
+ homepage = "https://code.visualstudio.com/";
+ downloadPage = "https://code.visualstudio.com/Updates";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ eadwu synthetica ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
new file mode 100644
index 000000000000..b8ca7e3f262e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
@@ -0,0 +1,60 @@
+{ stdenv, callPackage, fetchurl }:
+
+let
+ inherit (stdenv.hostPlatform) system;
+
+ plat = {
+ x86_64-linux = "linux-x64";
+ x86_64-darwin = "darwin";
+ }.${system};
+
+ archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
+
+ sha256 = {
+ x86_64-linux = "0hn4pqmabz3qf3bbqnn1fz7fcgzdkp2lwr2yzgmx8hhh3cff8bnb";
+ x86_64-darwin = "1x3wx0d99ihyya0n89qclc3jlhh0m72hs8hj7l0h3z6zmh6q2vzv";
+ }.${system};
+
+ sourceRoot = {
+ x86_64-linux = ".";
+ x86_64-darwin = "";
+ }.${system};
+in
+ callPackage ./generic.nix rec {
+ inherit sourceRoot;
+ # The update script doesn't correctly change the hash for darwin, so please:
+ # nixpkgs-update: no auto update
+
+ # Please backport all compatible updates to the stable release.
+ # This is important for the extension ecosystem.
+ version = "1.51.1";
+ pname = "vscodium";
+
+ executableName = "codium";
+ longName = "VSCodium";
+ shortName = "vscodium";
+
+ src = fetchurl {
+ url = "https://github.com/VSCodium/vscodium/releases/download/${version}/VSCodium-${plat}-${version}.${archive_fmt}";
+ inherit sha256;
+ };
+
+ meta = with stdenv.lib; {
+ description = ''
+ Open source source code editor developed by Microsoft for Windows,
+ Linux and macOS (VS Code without MS branding/telemetry/licensing)
+ '';
+ longDescription = ''
+ Open source source code editor developed by Microsoft for Windows,
+ Linux and macOS. It includes support for debugging, embedded Git
+ control, syntax highlighting, intelligent code completion, snippets,
+ and code refactoring. It is also customizable, so users can change the
+ editor's theme, keyboard shortcuts, and preferences
+ '';
+ homepage = "https://github.com/VSCodium/vscodium";
+ downloadPage = "https://github.com/VSCodium/vscodium/releases";
+ license = licenses.mit;
+ maintainers = with maintainers; [ synthetica turion ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix
new file mode 100644
index 000000000000..c30b52782ef3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix
@@ -0,0 +1,75 @@
+{ lib, runCommand, buildEnv, vscode, makeWrapper
+, vscodeExtensions ? [] }:
+
+/*
+ `vscodeExtensions`
+ : A set of vscode extensions to be installed alongside the editor. Here's a an
+ example:
+
+ ~~~
+ vscode-with-extensions.override {
+
+ # When the extension is already available in the default extensions set.
+ vscodeExtensions = with vscode-extensions; [
+ bbenoist.Nix
+ ]
+
+ # Concise version from the vscode market place when not available in the default set.
+ ++ vscode-utils.extensionsFromVscodeMarketplace [
+ {
+ name = "code-runner";
+ publisher = "formulahendry";
+ version = "0.6.33";
+ sha256 = "166ia73vrcl5c9hm4q1a73qdn56m0jc7flfsk5p5q41na9f10lb0";
+ }
+ ];
+ }
+ ~~~
+
+ This expression should fetch
+ - the *nix* vscode extension from whatever source defined in the
+ default nixpkgs extensions set `vscodeExtensions`.
+
+ - the *code-runner* vscode extension from the marketplace using the
+ following url:
+
+ ~~~
+ https://bbenoist.gallery.vsassets.io/_apis/public/gallery/publisher/bbenoist/extension/nix/1.0.1/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage
+ ~~~
+
+ The original `code` executable will be wrapped so that it uses the set of pre-installed / unpacked
+ extensions as its `--extensions-dir`.
+*/
+
+let
+
+ inherit (vscode) executableName;
+ wrappedPkgVersion = lib.getVersion vscode;
+ wrappedPkgName = lib.removeSuffix "-${wrappedPkgVersion}" vscode.name;
+
+ combinedExtensionsDrv = buildEnv {
+ name = "vscode-extensions";
+ paths = vscodeExtensions;
+ };
+
+in
+
+# When no extensions are requested, we simply redirect to the original
+# non-wrapped vscode executable.
+runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}" {
+ buildInputs = [ vscode makeWrapper ];
+ dontPatchELF = true;
+ dontStrip = true;
+ meta = vscode.meta;
+} ''
+ mkdir -p "$out/bin"
+ mkdir -p "$out/share/applications"
+ mkdir -p "$out/share/pixmaps"
+
+ ln -sT "${vscode}/share/pixmaps/code.png" "$out/share/pixmaps/code.png"
+ ln -sT "${vscode}/share/applications/${executableName}.desktop" "$out/share/applications/${executableName}.desktop"
+ ln -sT "${vscode}/share/applications/${executableName}-url-handler.desktop" "$out/share/applications/${executableName}-url-handler.desktop"
+ makeWrapper "${vscode}/bin/${executableName}" "$out/bin/${executableName}" ${lib.optionalString (vscodeExtensions != []) ''
+ --add-flags "--extensions-dir ${combinedExtensionsDrv}/share/vscode/extensions"
+ ''}
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/wily/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/wily/default.nix
new file mode 100644
index 000000000000..ac741599bdab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/wily/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, libX11, libXt } :
+
+stdenv.mkDerivation rec {
+ version = "0.13.42";
+ pname = "wily";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/wily/${pname}-${version}.tar.gz";
+ sha256 = "1jy4czk39sh365b0mjpj4d5wmymj98x163vmwzyx3j183jqrhm2z";
+ };
+
+ buildInputs = [ libX11 libXt ];
+
+ configureFlags = [ "--prefix=$(out)" ];
+
+ preInstall = ''
+ mkdir -p $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An emulation of ACME";
+ homepage = "http://wily.sourceforge.net";
+ license = licenses.artistic1;
+ maintainers = [ maintainers.vrthra ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/wxhexeditor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/wxhexeditor/default.nix
new file mode 100644
index 000000000000..9b0fd592a6a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/wxhexeditor/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, fetchpatch, wxGTK, autoconf, automake, libtool, python, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "wxHexEditor";
+ version = "0.24";
+
+ src = fetchFromGitHub {
+ repo = "wxHexEditor";
+ owner = "EUA";
+ rev = "v${version}";
+ sha256 = "08xnhaif8syv1fa0k6lc3jm7yg2k50b02lyds8w0jyzh4xi5crqj";
+ };
+
+ buildInputs = [ wxGTK autoconf automake libtool python gettext ];
+
+ preConfigure = "patchShebangs .";
+
+ prePatch = ''
+ substituteInPlace Makefile --replace "/usr" "$out"
+ substituteInPlace Makefile --replace "mhash; ./configure" "mhash; ./configure --prefix=$out"
+ '';
+
+ patches = [
+ # https://github.com/EUA/wxHexEditor/issues/90
+ (fetchpatch {
+ url = "https://github.com/EUA/wxHexEditor/commit/d0fa3ddc3e9dc9b05f90b650991ef134f74eed01.patch";
+ sha256 = "1wcb70hrnhq72frj89prcqylpqs74xrfz3kdfdkq84p5qfz9svyj";
+ })
+ ./missing-semicolon.patch
+ ];
+
+ makeFlags = [ "OPTFLAGS=-fopenmp" ];
+
+ meta = {
+ description = "Hex Editor / Disk Editor for Huge Files or Devices";
+ longDescription = ''
+ This is not an ordinary hex editor, but could work as low level disk editor too.
+ If you have problems with your HDD or partition, you can recover your data from HDD or
+ from partition via editing sectors in raw hex.
+ You can edit your partition tables or you could recover files from File System by hand
+ with help of wxHexEditor.
+ Or you might want to analyze your big binary files, partitions, devices... If you need
+ a good reverse engineer tool like a good hex editor, you welcome.
+ wxHexEditor could edit HDD/SDD disk devices or partitions in raw up to exabyte sizes.
+ '';
+ homepage = "http://www.wxhexeditor.org/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/wxhexeditor/missing-semicolon.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/wxhexeditor/missing-semicolon.patch
new file mode 100644
index 000000000000..75722c9c7c55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/wxhexeditor/missing-semicolon.patch
@@ -0,0 +1,35 @@
+diff --git a/src/HexDialogs.cpp b/src/HexDialogs.cpp
+index 091a6f9..12e6a78 100644
+--- a/src/HexDialogs.cpp
++++ b/src/HexDialogs.cpp
+@@ -420,7 +420,7 @@ void FindDialog::OnChar( wxKeyEvent& event ){
+ }
+
+ void FindDialog::EventHandler( wxCommandEvent& event ){
+- WX_CLEAR_ARRAY(parent->HighlightArray )
++ WX_CLEAR_ARRAY(parent->HighlightArray );
+ parent->HighlightArray.Shrink();
+
+ if( event.GetId() == btnFind->GetId())
+diff --git a/src/HexEditorCtrl/HexEditorCtrl.cpp b/src/HexEditorCtrl/HexEditorCtrl.cpp
+index 7a3b0e2..f12097f 100644
+--- a/src/HexEditorCtrl/HexEditorCtrl.cpp
++++ b/src/HexEditorCtrl/HexEditorCtrl.cpp
+@@ -64,9 +64,9 @@ HexEditorCtrl::~HexEditorCtrl( void ){
+ Dynamic_Disconnector();
+ Clear();
+
+- WX_CLEAR_ARRAY(MainTagArray)
+- WX_CLEAR_ARRAY(HighlightArray)
+- WX_CLEAR_ARRAY(CompareArray)
++ WX_CLEAR_ARRAY(MainTagArray);
++ WX_CLEAR_ARRAY(HighlightArray);
++ WX_CLEAR_ARRAY(CompareArray);
+
+ MainTagArray.Shrink();
+ HighlightArray.Shrink();
+@@ -1224,4 +1224,3 @@ void wxHugeScrollBar::OnOffsetScroll( wxScrollEvent& event ){
+ #endif
+ event.Skip();
+ }
+-
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/xmlcopyeditor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/xmlcopyeditor/default.nix
new file mode 100644
index 000000000000..f3270fccdfe7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/xmlcopyeditor/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, aspell, boost, expat, intltool, libxml2, libxslt, pcre, wxGTK, xercesc }:
+
+stdenv.mkDerivation rec {
+ pname = "xmlcopyeditor";
+ version = "1.2.1.3";
+
+ src = fetchurl {
+ name = "${pname}-${version}.tar.gz";
+ url = "mirror://sourceforge/xml-copy-editor/${pname}-${version}.tar.gz";
+ sha256 = "0bwxn89600jbrkvlwyawgc0c0qqxpl453mbgcb9qbbxl8984ns4v";
+ };
+
+ patches = [ ./xmlcopyeditor.patch ];
+ CPLUS_INCLUDE_PATH = "${libxml2.dev}/include/libxml2";
+
+ nativeBuildInputs = [ intltool ];
+ buildInputs = [ aspell boost expat libxml2 libxslt pcre wxGTK xercesc ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A fast, free, validating XML editor";
+ homepage = "http://xml-copy-editor.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ candeira ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/xmlcopyeditor/xmlcopyeditor.patch b/infra/libkookie/nixpkgs/pkgs/applications/editors/xmlcopyeditor/xmlcopyeditor.patch
new file mode 100644
index 000000000000..253b9ce49ba8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/xmlcopyeditor/xmlcopyeditor.patch
@@ -0,0 +1,36 @@
+From 626c385ba141c6abcff01bef4451fcad062d232c Mon Sep 17 00:00:00 2001
+From: Javier Candeira <javier@candeira.com>
+Date: Sat, 7 Apr 2018 20:21:45 +1000
+Subject: [PATCH] nixpckgs patches
+
+---
+ src/Makefile.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index e75918f..e04703b 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -283,8 +283,8 @@ top_srcdir = @top_srcdir@
+ # these are the headers for your project
+ noinst_HEADERS = $(srcdir)/*.h
+ xmlcopyeditordir = ${prefix}/share/xmlcopyeditor
+-pixmapdir = /usr/share/pixmaps
+-applicationsdir = /usr/share/applications
++pixmapdir = ${prefix}/share/pixmaps
++applicationsdir = ${prefix}/share/applications
+
+ # the application source, library search path, and link libraries
+ xmlcopyeditor_SOURCES = aboutdialog.cpp associatedialog.cpp binaryfile.cpp \
+@@ -357,7 +357,7 @@ EXTRA_DIST = \
+ $(srcdir)/xmlcopyeditor.rc \
+ $(srcdir)/xmlschemaparser.cpp
+
+-AM_CPPFLAGS = -I/usr/include/libxml2 $(ENCHANT_CFLAGS) $(GTK_CFLAGS)
++AM_CPPFLAGS = -I$(CPLUS_INCLUDE_PATH) $(ENCHANT_CFLAGS) $(GTK_CFLAGS)
+ all: all-am
+
+ .SUFFIXES:
+--
+2.16.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix
new file mode 100644
index 000000000000..e7cfe6284e35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, fetchurl
+, lib
+, unzip
+, makeWrapper
+, openjdk11
+, makeDesktopItem
+, icoutils
+, config
+, acceptLicense ? config.xxe-pe.acceptLicense or false
+}:
+
+let
+ pkg_path = "$out/lib/xxe";
+
+ desktopItem = makeDesktopItem {
+ name = "XMLmind XML Editor Personal Edition";
+ exec = "xxe";
+ icon = "xxe";
+ desktopName = "xxe";
+ genericName = "XML Editor";
+ categories = "Development;IDE;TextEditor;Java";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "xxe-pe";
+ version = "9.4.0";
+
+ src =
+ assert !acceptLicense -> throw ''
+ You must accept the XMLmind XML Editor Personal Edition License at
+ https://www.xmlmind.com/xmleditor/license_xxe_perso.html
+ by setting nixpkgs config option `xxe-pe.acceptLicense = true;`
+ or by using `xxe-pe.override { acceptLicense = true; }` package.
+ '';
+ fetchurl {
+ url = "https://www.xmlmind.com/xmleditor/_download/xxe-perso-${builtins.replaceStrings [ "." ] [ "_" ] version}.zip";
+ sha256 = "FKPdf9cOpgm/WG2i8bFnR6MmEifpiq5ykw2zHA8HnT8=";
+ };
+
+ nativeBuildInputs = [
+ unzip
+ makeWrapper
+ icoutils
+ ];
+
+ dontStrip = true;
+
+ installPhase = ''
+ mkdir -p "${pkg_path}"
+ mkdir -p "${pkg_path}" "$out/share/applications"
+ cp -a * "${pkg_path}"
+ ln -s ${desktopItem}/share/applications/* $out/share/applications
+
+ icotool -x "${pkg_path}/bin/icon/xxe.ico"
+ ls
+ for f in xxe_*.png; do
+ res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -d"x" -f1-2)
+ mkdir -pv "$out/share/icons/hicolor/$res/apps"
+ mv "$f" "$out/share/icons/hicolor/$res/apps/xxe.png"
+ done;
+ '';
+
+ postFixup = ''
+ mkdir -p "$out/bin"
+ makeWrapper "${pkg_path}/bin/xxe" "$out/bin/xxe" \
+ --prefix PATH : ${lib.makeBinPath [ openjdk11 ]}
+ '';
+
+ meta = with lib; {
+ description = "Strictly validating, near WYSIWYG, XML editor with DocBook support";
+ homepage = "https://www.xmlmind.com/xmleditor/";
+ license = licenses.unfree;
+ maintainers = [ maintainers.jtojnar ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/yi/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/yi/wrapper.nix
new file mode 100644
index 000000000000..243690bc2632
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/yi/wrapper.nix
@@ -0,0 +1,33 @@
+# To use this for hacking of your Yi config file, drop into a shell
+# with env attribute.
+{ stdenv, makeWrapper
+, haskellPackages
+, extraPackages ? (s: [])
+}:
+let
+ yiEnv = haskellPackages.ghcWithPackages
+ (self: [ self.yi ] ++ extraPackages self);
+in
+stdenv.mkDerivation {
+ pname = "yi-custom";
+ version = "0.0.0.1";
+ dontUnpack = true;
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ mkdir -p $out/bin
+ makeWrapper ${haskellPackages.yi}/bin/yi $out/bin/yi \
+ --set NIX_GHC ${yiEnv}/bin/ghc
+ '';
+
+ # For hacking purposes
+ passthru.env = yiEnv;
+
+ meta = with stdenv.lib; {
+ description = "Allows Yi to find libraries and the compiler easily";
+ # This wrapper and wrapper only is under PD
+ license = licenses.publicDomain;
+ maintainers = with maintainers; [ ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/zile/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/zile/default.nix
new file mode 100644
index 000000000000..c7c57a9e3ef8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/zile/default.nix
@@ -0,0 +1,56 @@
+{ fetchurl, stdenv, pkgconfig, ncurses, boehmgc, perl, help2man }:
+
+stdenv.mkDerivation rec {
+ name = "zile-2.4.14";
+
+ src = fetchurl {
+ url = "mirror://gnu/zile/${name}.tar.gz";
+ sha256 = "0x3byaddms8l3g7igx6njycqsq98wgapysdb5c7lhcnajlkp8y3s";
+ };
+
+ buildInputs = [ ncurses boehmgc ];
+ nativeBuildInputs = [ perl pkgconfig ]
+ # `help2man' wants to run Zile, which won't work when the
+ # newly-produced binary can't be run at build-time.
+ ++ stdenv.lib.optional
+ (stdenv.hostPlatform == stdenv.buildPlatform)
+ help2man;
+
+ # Tests can't be run because most of them rely on the ability to
+ # fiddle with the terminal.
+ doCheck = false;
+
+ # XXX: Work around cross-compilation-unfriendly `gl_FUNC_FSTATAT' macro.
+ gl_cv_func_fstatat_zero_flag="yes";
+
+ meta = with stdenv.lib; {
+ description = "Lightweight Emacs clone";
+
+ longDescription = ''
+ GNU Zile, which is a lightweight Emacs clone. Zile is short
+ for Zile Is Lossy Emacs. Zile has been written to be as
+ similar as possible to Emacs; every Emacs user should feel at
+ home.
+
+ Zile has all of Emacs's basic editing features: it is 8-bit
+ clean (though it currently lacks Unicode support), and the
+ number of editing buffers and windows is only limited by
+ available memory and screen space respectively. Registers,
+ minibuffer completion and auto fill are available. Function
+ and variable names are identical with Emacs's (except those
+ containing the word "emacs", which instead contain the word
+ "zile"!).
+
+ However, all of this is packed into a program which typically
+ compiles to about 130Kb.
+ '';
+
+ homepage = "https://www.gnu.org/software/zile/";
+
+ license = licenses.gpl3Plus;
+
+ maintainers = with maintainers; [ pSub ];
+
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/dcw.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/dcw.nix
new file mode 100644
index 000000000000..58390e892903
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/dcw.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "dcw-gmt";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "ftp://ftp.soest.hawaii.edu/gmt/dcw-gmt-${version}.tar.gz";
+ sha256 = "8d47402abcd7f54a0f711365cd022e4eaea7da324edac83611ca035ea443aad3";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/dcw-gmt
+ cp -rv ./* $out/share/dcw-gmt
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.soest.hawaii.edu/pwessel/dcw/";
+ description = "Vector basemap of the world, for use with GMT";
+ longDescription = ''
+ DCW-GMT is an enhancement to the original 1:1,000,000 scale vector basemap
+ of the world, available from the Princeton University Digital Map and
+ Geospatial Information Center. It contains more state boundaries (the
+ largest 8 countries are now represented) than the original data
+ source. Information about DCW can be found on Wikipedia
+ (https://en.wikipedia.org/wiki/Digital_Chart_of_the_World). This data is
+ for use by GMT, the Generic Mapping Tools.
+ '';
+ license = licenses.lgpl3Plus;
+ maintainers = with maintainers; [ tviti ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/default.nix
new file mode 100644
index 000000000000..f045ec067fee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, cmake, curl, Accelerate, CoreGraphics, CoreVideo
+, fftwSinglePrec, netcdf, pcre, gdal, blas, lapack, glibc, ghostscript, dcw-gmt
+, gshhg-gmt }:
+
+/* The onus is on the user to also install:
+ - ffmpeg for webm or mp4 output
+ - graphicsmagick for gif output
+*/
+
+stdenv.mkDerivation rec {
+ pname = "gmt";
+ version = "6.1.1";
+ src = fetchurl {
+ url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz";
+ sha256 = "04mdxxcild56jhg9ax522xh78v1wl1x8iqv2f6wv32x9b2lgy1lp";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ curl gdal netcdf pcre dcw-gmt gshhg-gmt ]
+ ++ (if stdenv.isDarwin then [
+ Accelerate
+ CoreGraphics
+ CoreVideo
+ ] else [
+ glibc
+ fftwSinglePrec
+ blas
+ lapack
+ ]);
+
+ propagatedBuildInputs = [ ghostscript ];
+
+ cmakeFlags = [
+ "-DGMT_DOCDIR=share/doc/gmt"
+ "-DGMT_MANDIR=share/man"
+ "-DGMT_LIBDIR=lib"
+ "-DCOPY_GSHHG:BOOL=FALSE"
+ "-DGSHHG_ROOT=${gshhg-gmt.out}/share/gshhg-gmt"
+ "-DCOPY_DCW:BOOL=FALSE"
+ "-DDCW_ROOT=${dcw-gmt.out}/share/dcw-gmt"
+ "-DGDAL_ROOT=${gdal.out}"
+ "-DNETCDF_ROOT=${netcdf.out}"
+ "-DPCRE_ROOT=${pcre.out}"
+ "-DGMT_INSTALL_TRADITIONAL_FOLDERNAMES:BOOL=FALSE"
+ "-DGMT_ENABLE_OPENMP:BOOL=TRUE"
+ "-DGMT_INSTALL_MODULE_LINKS:BOOL=FALSE"
+ "-DLICENSE_RESTRICTED=LGPL" # "GPL" and "no" also valid
+ ] ++ (with stdenv;
+ lib.optional (!isDarwin) [
+ "-DFFTW3_ROOT=${fftwSinglePrec.dev}"
+ "-DLAPACK_LIBRARY=${lapack}/lib/liblapack.so"
+ "-DBLAS_LIBRARY=${blas}/lib/libblas.so"
+ ]);
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.generic-mapping-tools.org";
+ description = "Tools for manipulating geographic and cartesian data sets";
+ longDescription = ''
+ GMT is an open-source collection of command-line tools for manipulating
+ geographic and Cartesian data sets (including filtering, trend fitting,
+ gridding, projecting, etc.) and producing high-quality illustrations
+ ranging from simple x–y plots via contour maps to artificially illuminated
+ surfaces and 3D perspective views. It supports many map projections and
+ transformations and includes supporting data such as coastlines, rivers,
+ and political boundaries and optionally country polygons.
+ '';
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ license = licenses.lgpl3Plus;
+ maintainers = with maintainers; [ tviti ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/gshhg.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/gshhg.nix
new file mode 100644
index 000000000000..0f22f87c89b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/gmt/gshhg.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "gshhg-gmt";
+ version = "2.3.7";
+ src = fetchurl {
+ url = "ftp://ftp.soest.hawaii.edu/gmt/gshhg-gmt-${version}.tar.gz";
+ sha256 = "9bb1a956fca0718c083bef842e625797535a00ce81f175df08b042c2a92cfe7f";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/gshhg-gmt
+ cp -rv ./* $out/share/gshhg-gmt
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.soest.hawaii.edu/pwessel/gshhg/";
+ description = "High-resolution shoreline data set, for use with GMT";
+ longDescription = ''
+ GSHHG is a high-resolution shoreline data set amalgamated from two
+ databases: Global Self-consistent Hierarchical High-resolution Shorelines
+ (GSHHS) and CIA World Data Bank II (WDBII). GSHHG contains vector
+ descriptions at five different resolutions of land outlines, lakes,
+ rivers, and political boundaries. This data is for use by GMT, the Generic
+ Mapping Tools.
+ '';
+ license = licenses.lgpl3Plus;
+ maintainers = with maintainers; [ tviti ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/grass/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/grass/default.nix
new file mode 100644
index 000000000000..c1b7841dc58a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/grass/default.nix
@@ -0,0 +1,110 @@
+{ stdenv, fetchFromGitHub, flex, bison, pkgconfig, zlib, libtiff, libpng, fftw
+, cairo, readline, ffmpeg_3, makeWrapper, wxGTK30, netcdf, blas
+, proj, gdal, geos, sqlite, postgresql, libmysqlclient, python2Packages, libLAS, proj-datumgrid
+}:
+
+let inherit (stdenv) lib; in
+
+stdenv.mkDerivation rec {
+ name = "grass";
+ version = "7.6.1";
+
+ src = with stdenv.lib; fetchFromGitHub {
+ owner = "OSGeo";
+ repo = "grass";
+ rev = "${name}_${replaceStrings ["."] ["_"] version}";
+ sha256 = "1amjk9rz7vw5ha7nyl5j2bfwj5if9w62nlwx5qbp1x7spldimlll";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo proj
+ readline ffmpeg_3 makeWrapper wxGTK30 netcdf geos postgresql libmysqlclient blas
+ libLAS proj-datumgrid ]
+ ++ (with python2Packages; [ python dateutil wxPython30 numpy ]);
+
+ # On Darwin the installer tries to symlink the help files into a system
+ # directory
+ patches = [ ./no_symbolic_links.patch ];
+
+ # Correct mysql_config query
+ patchPhase = ''
+ substituteInPlace configure --replace "--libmysqld-libs" "--libs"
+ '';
+
+ configureFlags = [
+ "--with-proj-share=${proj}/share/proj"
+ "--with-proj-includes=${proj.dev}/include"
+ "--with-proj-lib=${proj}/lib"
+ "--without-opengl"
+ "--with-readline"
+ "--with-wxwidgets"
+ "--with-netcdf"
+ "--with-geos"
+ "--with-postgres"
+ "--with-postgres-libs=${postgresql.lib}/lib/"
+ # it complains about missing libmysqld but doesn't really seem to need it
+ "--with-mysql"
+ "--with-mysql-includes=${lib.getDev libmysqlclient}/include/mysql"
+ "--with-mysql-libs=${libmysqlclient}/lib/mysql"
+ "--with-blas"
+ "--with-liblas=${libLAS}/bin/liblas-config"
+ ];
+
+ # Otherwise a very confusing "Can't load GDAL library" error
+ makeFlags = stdenv.lib.optional stdenv.isDarwin "GDAL_DYNAMIC=";
+
+ /* Ensures that the python script run at build time are actually executable;
+ * otherwise, patchShebangs ignores them. */
+ postConfigure = ''
+ chmod +x scripts/d.out.file/d.out.file.py \
+ scripts/d.to.rast/d.to.rast.py \
+ scripts/d.what.rast/d.what.rast.py \
+ scripts/d.what.vect/d.what.vect.py \
+ scripts/g.extension/g.extension.py \
+ scripts/g.extension.all/g.extension.all.py \
+ scripts/r.drain/r.drain.py \
+ scripts/r.pack/r.pack.py \
+ scripts/r.tileset/r.tileset.py \
+ scripts/r.unpack/r.unpack.py \
+ scripts/v.clip/v.clip.py \
+ scripts/v.rast.stats/v.rast.stats.py \
+ scripts/v.to.lines/v.to.lines.py \
+ scripts/v.what.strds/v.what.strds.py \
+ scripts/v.unpack/v.unpack.py \
+ scripts/wxpyimgview/*.py \
+ gui/wxpython/animation/g.gui.animation.py \
+ gui/wxpython/datacatalog/g.gui.datacatalog.py \
+ gui/wxpython/rlisetup/g.gui.rlisetup.py \
+ gui/wxpython/vdigit/g.gui.vdigit.py \
+ temporal/t.rast.accumulate/t.rast.accumulate.py \
+ temporal/t.rast.accdetect/t.rast.accdetect.py \
+ temporal/t.rast.algebra/t.rast.algebra.py \
+ temporal/t.rast3d.algebra/t.rast3d.algebra.py \
+ temporal/t.vect.algebra/t.vect.algebra.py \
+ temporal/t.select/t.select.py
+ for d in gui lib scripts temporal tools; do
+ patchShebangs $d
+ done
+ '';
+
+ NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1";
+
+ postInstall = ''
+ wrapProgram $out/bin/grass76 \
+ --set PYTHONPATH $PYTHONPATH \
+ --set GRASS_PYTHON ${python2Packages.python}/bin/${python2Packages.python.executable} \
+ --suffix LD_LIBRARY_PATH ':' '${gdal}/lib'
+ ln -s $out/grass*/lib $out/lib
+ ln -s $out/grass*/include $out/include
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "https://grass.osgeo.org/";
+ description = "GIS software suite used for geospatial data management and analysis, image processing, graphics and maps production, spatial modeling, and visualization";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.all;
+ maintainers = with stdenv.lib.maintainers; [mpickering];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/grass/no_symbolic_links.patch b/infra/libkookie/nixpkgs/pkgs/applications/gis/grass/no_symbolic_links.patch
new file mode 100644
index 000000000000..ef09b97b7037
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/grass/no_symbolic_links.patch
@@ -0,0 +1,37 @@
+diff --git a/include/Make/Install.make b/include/Make/Install.make
+index 0aba138..8ba74bc 100644
+--- a/include/Make/Install.make
++++ b/include/Make/Install.make
+@@ -116,11 +116,6 @@ real-install: | $(INST_DIR) $(UNIX_BIN)
+ -$(INSTALL) config.status $(INST_DIR)/config.status
+ -$(CHMOD) -R a+rX $(INST_DIR) 2>/dev/null
+
+-ifneq ($(findstring darwin,$(ARCH)),)
+- @# enable OSX Help Viewer
+- @/bin/ln -sfh "$(INST_DIR)/docs/html" /Library/Documentation/Help/GRASS-$(GRASS_VERSION_MAJOR).$(GRASS_VERSION_MINOR)
+-endif
+-
+ $(INST_DIR) $(UNIX_BIN):
+ $(MAKE_DIR_CMD) $@
+
+diff --git a/macosx/app/build_html_user_index.sh b/macosx/app/build_html_user_index.sh
+index 04e63eb..c9d9c2c 100755
+--- a/macosx/app/build_html_user_index.sh
++++ b/macosx/app/build_html_user_index.sh
+@@ -140,7 +140,6 @@ else
+ # echo "<tr><td valign=\"top\"><a href=\"$HTMLDIRG/$i\">$BASENAME</a></td> <td>$SHORTDESC</td></tr>" >> $FULLINDEX
+ # make them local to user to simplify page links
+ echo "<tr><td valign=\"top\"><a href=\"global_$i\">$BASENAME</a></td> <td>$SHORTDESC</td></tr>" >> $FULLINDEX
+- ln -sf "$HTMLDIRG/$i" global_$i
+ done
+ done
+ fi
+@@ -183,8 +182,3 @@ echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
+ </html>" > $i.html
+ done
+
+-# add Help Viewer links in user docs folder
+-
+-mkdir -p $HOME/Library/Documentation/Help/
+-ln -sfh ../../GRASS/$GRASS_MMVER/Modules/docs/html $HOME/Library/Documentation/Help/GRASS-$GRASS_MMVER-addon
+-ln -sfh $GISBASE/docs/html $HOME/Library/Documentation/Help/GRASS-$GRASS_MMVER
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
new file mode 100644
index 000000000000..45c38b3e5732
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -0,0 +1,88 @@
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, substituteAll
+, gdal
+, cmake
+, ninja
+, proj
+, clipper
+, zlib
+, qttools
+, qtlocation
+, qtsensors
+, qttranslations
+, doxygen
+, cups
+, qtimageformats
+}:
+
+mkDerivation rec {
+ pname = "OpenOrienteering-Mapper";
+ version = "0.9.4";
+
+ buildInputs = [
+ gdal
+ qtlocation
+ qtimageformats
+ qtsensors
+ clipper
+ zlib
+ proj
+ cups
+ ];
+
+ nativeBuildInputs = [ cmake doxygen ninja qttools ];
+
+ src = fetchFromGitHub {
+ owner = "OpenOrienteering";
+ repo = "mapper";
+ rev = "v${version}";
+ sha256 = "13k9dirqm74lknhr8w121zr1hjd9gm1y73cj4rrj98rx44dzmk7b";
+ };
+
+ patches = (substituteAll {
+ # See https://github.com/NixOS/nixpkgs/issues/86054
+ src = ./fix-qttranslations-path.diff;
+ inherit qttranslations;
+ });
+
+ cmakeFlags = [
+ # Building the manual and bundling licenses fails
+ # See https://github.com/NixOS/nixpkgs/issues/85306
+ "-DLICENSING_PROVIDER:BOOL=OFF"
+ "-DMapper_MANUAL_QTHELP:BOOL=OFF"
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ # FindGDAL is broken and always finds /Library/Framework unless this is
+ # specified
+ "-DGDAL_INCLUDE_DIR=${gdal}/include"
+ "-DGDAL_CONFIG=${gdal}/bin/gdal-config"
+ "-DGDAL_LIBRARY=${gdal}/lib/libgdal.dylib"
+ # Don't bundle libraries
+ "-DMapper_PACKAGE_PROJ=0"
+ "-DMapper_PACKAGE_QT=0"
+ "-DMapper_PACKAGE_ASSISTANT=0"
+ "-DMapper_PACKAGE_GDAL=0"
+ ];
+
+ postInstall = with stdenv; lib.optionalString isDarwin ''
+ mkdir -p $out/Applications
+ mv $out/Mapper.app $out/Applications
+ # Fixes "This application failed to start because it could not find or load the Qt
+ # platform plugin "cocoa"."
+ wrapQtApp $out/Applications/Mapper.app/Contents/MacOS/Mapper
+ mkdir -p $out/bin
+ ln -s $out/Applications/Mapper.app/Contents/MacOS/Mapper $out/bin/mapper
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ OpenOrienteering Mapper is an orienteering mapmaking program
+ and provides a free alternative to the existing proprietary solution.
+ '';
+ homepage = "https://www.openorienteering.org/apps/mapper/";
+ license = licenses.gpl3;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ mpickering sikmir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff b/infra/libkookie/nixpkgs/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff
new file mode 100644
index 000000000000..06c465a8fb33
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff
@@ -0,0 +1,13 @@
+diff --git i/src/util/translation_util.cpp w/src/util/translation_util.cpp
+index da03d216..c1f12751 100644
+--- i/src/util/translation_util.cpp
++++ w/src/util/translation_util.cpp
+@@ -103,7 +103,7 @@ TranslationUtil::TranslationUtil(const QString& code, QString translation_file)
+ }
+
+ QString translation_name = QLatin1String("qt_") + language.code;
+- if (!qt_translator.load(translation_name, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
++ if (!qt_translator.load(translation_name, QLatin1String("@qttranslations@/translations")))
+ load(qt_translator, translation_name);
+
+ load(app_translator, translation_file);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/qgis/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/qgis/default.nix
new file mode 100644
index 000000000000..f272fd04dd0d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/qgis/default.nix
@@ -0,0 +1,27 @@
+{ lib, makeWrapper, symlinkJoin
+, qgis-unwrapped, extraPythonPackages ? (ps: [ ])
+}:
+with lib;
+symlinkJoin rec {
+ inherit (qgis-unwrapped) version;
+ name = "qgis-${version}";
+
+ paths = [ qgis-unwrapped ];
+
+ nativeBuildInputs = [ makeWrapper qgis-unwrapped.python3Packages.wrapPython ];
+
+ # extend to add to the python environment of QGIS without rebuilding QGIS application.
+ pythonInputs = qgis-unwrapped.pythonBuildInputs ++ (extraPythonPackages qgis-unwrapped.python3Packages);
+
+ postBuild = ''
+ # unpackPhase
+
+ buildPythonPath "$pythonInputs"
+
+ wrapProgram $out/bin/qgis \
+ --prefix PATH : $program_PATH \
+ --set PYTHONPATH $program_PYTHONPATH
+ '';
+
+ meta = qgis-unwrapped.meta;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
new file mode 100644
index 000000000000..54d3d5987597
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
@@ -0,0 +1,60 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, ninja, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
+, qwt, fcgi, python3Packages, libspatialindex, libspatialite, postgresql
+, txt2tags, openssl, libzip, hdf5, netcdf, exiv2
+, qtbase, qtwebkit, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport, qtxmlpatterns
+, withGrass ? true, grass
+}:
+with lib;
+let
+ pythonBuildInputs = with python3Packages;
+ [ qscintilla-qt5 gdal jinja2 numpy psycopg2
+ chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
+in mkDerivation rec {
+ version = "3.10.11";
+ pname = "qgis";
+ name = "${pname}-unwrapped-${version}";
+
+ src = fetchFromGitHub {
+ owner = "qgis";
+ repo = "QGIS";
+ rev = "final-${lib.replaceStrings ["."] ["_"] version}";
+ sha256 = "157hwi9sgnsf0csbfg4x3c7vh0zgf1hnqgn04lhg9xa1n8jjbv2q";
+ };
+
+ passthru = {
+ inherit pythonBuildInputs;
+ inherit python3Packages;
+ };
+
+ buildInputs = [ openssl proj geos xlibsWrapper sqlite gsl qwt exiv2
+ fcgi libspatialindex libspatialite postgresql txt2tags libzip hdf5 netcdf
+ qtbase qtwebkit qtsensors qca-qt5 qtkeychain qscintilla qtserialport qtxmlpatterns] ++
+ (lib.optional withGrass grass) ++ pythonBuildInputs;
+
+ nativeBuildInputs = [ cmake flex bison ninja ];
+
+ # Force this pyqt_sip_dir variable to point to the sip dir in PyQt5
+ #
+ # TODO: Correct PyQt5 to provide the expected directory and fix
+ # build to use PYQT5_SIP_DIR consistently.
+ postPatch = ''
+ substituteInPlace cmake/FindPyQt5.py \
+ --replace 'sip_dir = cfg.default_sip_dir' 'sip_dir = "${python3Packages.pyqt5}/share/sip/PyQt5"'
+ '';
+
+ cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF"
+ "-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/share/sip/PyQt5"
+ "-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/share/sip/PyQt5" ] ++
+ lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";
+
+ meta = {
+ description = "A Free and Open Source Geographic Information System";
+ homepage = "http://www.qgis.org";
+ license = lib.licenses.gpl2Plus;
+ platforms = with lib.platforms; linux;
+ maintainers = with lib.maintainers; [ lsix ];
+ # Our 3.10 LTS cannot use a newer Qt (5.15) version because it requires qtwebkit
+ # and our qtwebkit fails to build with 5.15. 01bcfd3579219d60e5d07df309a000f96b2b658b
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/qmapshack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/qmapshack/default.nix
new file mode 100644
index 000000000000..bc7d888e2c15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/qmapshack/default.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake
+, qtscript, qtwebengine, gdal, proj, routino, quazip }:
+
+mkDerivation rec {
+ pname = "qmapshack";
+ version = "1.15.1";
+
+ src = fetchFromGitHub {
+ owner = "Maproom";
+ repo = pname;
+ rev = "V_${version}";
+ sha256 = "1q8qczp9bgk3dzdswb1x64fcn3xg339s0yx31nablb518hcb8jkr";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ qtscript qtwebengine gdal proj routino quazip ];
+
+ cmakeFlags = [
+ "-DROUTINO_XML_PATH=${routino}/share/routino"
+ "-DQUAZIP_INCLUDE_DIR=${quazip}/include/quazip5"
+ "-DLIBQUAZIP_LIBRARY=${quazip}/lib/libquazip.so"
+ ];
+
+ patches = [
+ "${src}/FindPROJ4.patch"
+ "${src}/FindQuaZip5.patch"
+ ];
+
+ qtWrapperArgs = [
+ "--suffix PATH : ${lib.makeBinPath [ gdal routino ]}"
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/Maproom/qmapshack";
+ description = "Consumer grade GIS software";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dotlambda sikmir ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/saga/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/saga/default.nix
new file mode 100644
index 000000000000..50df22c186c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/saga/default.nix
@@ -0,0 +1,92 @@
+{ stdenv
+, mkDerivation
+, lib
+, fetchurl
+# native
+, autoreconfHook
+, pkg-config
+# not native
+, gdal
+, wxGTK31-gtk3
+, proj
+, dxflib
+, curl
+, libiodbc
+, lzma
+, libharu
+, opencv
+, vigra
+, postgresql
+, Cocoa
+, unixODBC
+, poppler
+, hdf4
+, hdf5
+, netcdf
+, sqlite
+, qhull
+, giflib
+, libsvm
+, fftw
+}:
+
+mkDerivation rec {
+ pname = "saga";
+ version = "7.8.1";
+
+ src = fetchurl {
+ url = "https://sourceforge.net/projects/saga-gis/files/SAGA%20-%20${lib.versions.major version}/SAGA%20-%20${version}/saga-${version}.tar.gz";
+ sha256 = "qwjuimeoadwf254bwJ7h2vSKaELkcaJdFrGj1WtvnbM=";
+ };
+
+ nativeBuildInputs = [
+ # Upstream's gnerated ./configure is not reliable
+ autoreconfHook
+ pkg-config
+ ];
+ configureFlags = [
+ "--with-system-svm"
+ # hdf is no detected otherwise
+ "HDF5_LIBS=-l${hdf5}/lib"
+ "HDF5_CFLAGS=-I${hdf5.dev}/include"
+ ];
+ buildInputs = [
+ curl
+ dxflib
+ fftw
+ libsvm
+ hdf5
+ gdal
+ wxGTK31-gtk3
+ proj
+ libharu
+ opencv
+ vigra
+ postgresql
+ libiodbc
+ lzma
+ qhull
+ giflib
+ ]
+ # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
+ # for why the have additional buildInputs on darwin
+ ++ lib.optionals stdenv.isDarwin [
+ Cocoa
+ unixODBC
+ poppler
+ netcdf
+ sqlite
+ ];
+
+ enableParallelBuilding = true;
+
+ CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing";
+
+ meta = with lib; {
+ description = "System for Automated Geoscientific Analyses";
+ homepage = "http://www.saga-gis.org";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ michelk mpickering ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
new file mode 100644
index 000000000000..61c2bbc542cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+rustPlatform.buildRustPackage rec {
+ pname = "whitebox_tools";
+ version = "1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "jblindsay";
+ repo = "whitebox-tools";
+ rev = version;
+ sha256 = "0s5byn8qyi1bm59j9vhwqaygw5cxipc7wbd3flh7n24nx0s8pr8c";
+ };
+
+ buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+ cargoSha256 = "09rz8f1xyc64qjbj6pgw8jxr2a7chghmdc6sfkbv7hdvx6vg4wvk";
+
+ meta = with stdenv.lib; {
+ description = "An advanced geospatial data analysis platform";
+ homepage = "https://jblindsay.github.io/ghrg/WhiteboxTools/index.html";
+ license = licenses.mit;
+ maintainers = [ maintainers.mpickering ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/gis/zombietrackergps/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/gis/zombietrackergps/default.nix
new file mode 100644
index 000000000000..51740b5ad609
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/gis/zombietrackergps/default.nix
@@ -0,0 +1,56 @@
+{ mkDerivation
+, lib
+, fetchFromGitLab
+, qmake
+, qtcharts
+, qtsvg
+, marble
+, qtwebengine
+, ldutils
+}:
+
+mkDerivation rec {
+ pname = "zombietrackergps";
+ version = "1.03";
+
+ src = fetchFromGitLab {
+ owner = "ldutils-projects";
+ repo = pname;
+ rev = "v_${version}";
+ sha256 = "1rmdy6kijmcxamm4mqmz8638xqisijlnpv8mimgxywpf90h9rrwq";
+ };
+
+ buildInputs = [
+ ldutils
+ qtcharts
+ qtsvg
+ marble.dev
+ qtwebengine
+ ];
+
+ nativeBuildInputs = [
+ qmake
+ ];
+
+ prePatch = ''
+ sed -ie "s,INCLUDEPATH += /usr/include/libldutils,INCLUDEPATH += ${ldutils}," ZombieTrackerGPS.pro
+ '';
+
+ preConfigure = ''
+ export LANG=en_US.UTF-8
+ export INSTALL_ROOT=$out
+ '';
+
+ postConfigure = ''
+ substituteInPlace Makefile --replace '$(INSTALL_ROOT)' ""
+ '';
+
+ meta = with lib; {
+ description = "GPS track manager for Qt using KDE Marble maps";
+ homepage = "https://www.zombietrackergps.net/ztgps/";
+ changelog = "https://www.zombietrackergps.net/ztgps/history.html";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ sohalt ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
new file mode 100644
index 000000000000..a1e39cfebe0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -0,0 +1,89 @@
+{ lib, stdenv, fetchFromGitHub, pkgconfig, libtool
+, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
+, lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp, libheif
+, ApplicationServices
+}:
+
+let
+ arch =
+ if stdenv.hostPlatform.system == "i686-linux" then "i686"
+ else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
+ else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
+ else if stdenv.hostPlatform.system == "aarch64-linux" then "aarch64"
+ else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
+ else throw "ImageMagick is not supported on this platform.";
+
+ cfg = {
+ version = "7.0.10-35";
+ sha256 = "0hcqvn3n3ip2fia48d1nb1m4r5ir00vbaa62xqni30kglh3n2sfh";
+ patches = [];
+ };
+in
+
+stdenv.mkDerivation {
+ pname = "imagemagick";
+ inherit (cfg) version;
+
+ src = fetchFromGitHub {
+ owner = "ImageMagick";
+ repo = "ImageMagick";
+ rev = cfg.version;
+ inherit (cfg) sha256;
+ };
+
+ patches = cfg.patches;
+
+ outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
+ outputMan = "out"; # it's tiny
+
+ enableParallelBuilding = true;
+
+ configureFlags =
+ [ "--with-frozenpaths" ]
+ ++ [ "--with-gcc-arch=${arch}" ]
+ ++ lib.optional (librsvg != null) "--with-rsvg"
+ ++ lib.optionals (ghostscript != null)
+ [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
+ "--with-gslib"
+ ]
+ ++ lib.optionals stdenv.hostPlatform.isMinGW
+ [ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM
+ ;
+
+ nativeBuildInputs = [ pkgconfig libtool ];
+
+ buildInputs =
+ [ zlib fontconfig freetype ghostscript
+ libpng libtiff libxml2 libheif djvulibre
+ ]
+ ++ lib.optionals (!stdenv.hostPlatform.isMinGW)
+ [ openexr librsvg openjpeg ]
+ ++ lib.optional stdenv.isDarwin ApplicationServices;
+
+ propagatedBuildInputs =
+ [ bzip2 freetype libjpeg lcms2 ]
+ ++ lib.optionals (!stdenv.hostPlatform.isMinGW)
+ [ libX11 libXext libXt libwebp ]
+ ;
+
+ postInstall = ''
+ (cd "$dev/include" && ln -s ImageMagick* ImageMagick)
+ moveToOutput "bin/*-config" "$dev"
+ moveToOutput "lib/ImageMagick-*/config-Q16HDRI" "$dev" # includes configure params
+ for file in "$dev"/bin/*-config; do
+ substituteInPlace "$file" --replace pkg-config \
+ "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config'"
+ done
+ '' + lib.optionalString (ghostscript != null) ''
+ for la in $out/lib/*.la; do
+ sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.imagemagick.org/";
+ description = "A software suite to create, edit, compose, or convert bitmap images";
+ platforms = platforms.linux ++ platforms.darwin;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix
new file mode 100644
index 000000000000..0222efff6429
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix
@@ -0,0 +1,105 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, pkgconfig, libtool
+, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
+, lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp, fftw, libheif, libde265
+, ApplicationServices
+}:
+
+let
+ arch =
+ if stdenv.hostPlatform.system == "i686-linux" then "i686"
+ else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
+ else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
+ else if stdenv.hostPlatform.system == "aarch64-linux" then "aarch64"
+ else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
+ else throw "ImageMagick is not supported on this platform.";
+
+ cfg = {
+ version = "6.9.11-29";
+ sha256 = "0adjdpi91ya0g3v7y503n95833m25aibkim5swg5lnwjrba407hg";
+ patches = [];
+ }
+ # Freeze version on mingw so we don't need to port the patch too often.
+ # FIXME: This version has multiple security vulnerabilities
+ // lib.optionalAttrs (stdenv.hostPlatform.isMinGW) {
+ version = "6.9.2-0";
+ sha256 = "17ir8bw1j7g7srqmsz3rx780sgnc21zfn0kwyj78iazrywldx8h7";
+ patches = [(fetchpatch {
+ name = "mingw-build.patch";
+ url = "https://raw.githubusercontent.com/Alexpux/MINGW-packages/"
+ + "01ca03b2a4ef/mingw-w64-imagemagick/002-build-fixes.patch";
+ sha256 = "1pypszlcx2sf7wfi4p37w1y58ck2r8cd5b2wrrwr9rh87p7fy1c0";
+ })];
+ };
+in
+
+stdenv.mkDerivation {
+ pname = "imagemagick";
+ inherit (cfg) version;
+
+ src = fetchFromGitHub {
+ owner = "ImageMagick";
+ repo = "ImageMagick6";
+ rev = cfg.version;
+ inherit (cfg) sha256;
+ };
+
+ patches = cfg.patches;
+
+ outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
+ outputMan = "out"; # it's tiny
+
+ enableParallelBuilding = true;
+
+ configureFlags =
+ [ "--with-frozenpaths" ]
+ ++ [ "--with-gcc-arch=${arch}" ]
+ ++ lib.optional (librsvg != null) "--with-rsvg"
+ ++ lib.optionals (ghostscript != null)
+ [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
+ "--with-gslib"
+ ]
+ ++ lib.optionals (stdenv.hostPlatform.isMinGW)
+ [ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM
+ ;
+
+ nativeBuildInputs = [ pkgconfig libtool ];
+
+ buildInputs =
+ [ zlib fontconfig freetype ghostscript
+ libpng libtiff libxml2 libheif libde265 djvulibre
+ ]
+ ++ lib.optionals (!stdenv.hostPlatform.isMinGW)
+ [ openexr librsvg openjpeg ]
+ ++ lib.optional stdenv.isDarwin ApplicationServices;
+
+ propagatedBuildInputs =
+ [ bzip2 freetype libjpeg lcms2 fftw ]
+ ++ lib.optionals (!stdenv.hostPlatform.isMinGW)
+ [ libX11 libXext libXt libwebp ]
+ ;
+
+ doCheck = false; # fails 6 out of 76 tests
+
+ postInstall = ''
+ (cd "$dev/include" && ln -s ImageMagick* ImageMagick)
+ moveToOutput "bin/*-config" "$dev"
+ moveToOutput "lib/ImageMagick-*/config-Q16" "$dev" # includes configure params
+ for file in "$dev"/bin/*-config; do
+ substituteInPlace "$file" --replace "${pkgconfig}/bin/pkg-config -config" \
+ ${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config
+ substituteInPlace "$file" --replace ${pkgconfig}/bin/pkg-config \
+ "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config'"
+ done
+ '' + lib.optionalString (ghostscript != null) ''
+ for la in $out/lib/*.la; do
+ sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.imagemagick.org/";
+ description = "A software suite to create, edit, compose, or convert bitmap images";
+ platforms = platforms.linux ++ platforms.darwin;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix
new file mode 100644
index 000000000000..c5f1bf868018
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix
@@ -0,0 +1,53 @@
+{ config, stdenv, fetchFromGitHub, pkgconfig, libconfig
+, gtkmm2, glibmm, libxml2, libsecret, curl, libzip
+, librsvg, gst_all_1, autoreconfHook, makeWrapper
+, useUnrar ? config.ahoviewer.useUnrar or false, unrar
+}:
+
+assert useUnrar -> unrar != null;
+
+stdenv.mkDerivation rec {
+ pname = "ahoviewer";
+ version = "1.6.5";
+
+ src = fetchFromGitHub {
+ owner = "ahodesuka";
+ repo = "ahoviewer";
+ rev = version;
+ sha256 = "1avdl4qcpznvf3s2id5qi1vnzy4wgh6vxpnrz777a1s4iydxpcd8";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig makeWrapper ];
+ buildInputs = [
+ glibmm libconfig gtkmm2 glibmm libxml2
+ libsecret curl libzip librsvg
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-base
+ ] ++ stdenv.lib.optional useUnrar unrar;
+
+ NIX_LDFLAGS = "-lpthread";
+
+ postPatch = ''patchShebangs version.sh'';
+
+ postInstall = ''
+ wrapProgram $out/bin/ahoviewer \
+ --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
+ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ahodesuka/ahoviewer";
+ description = "A GTK2 image viewer, manga reader, and booru browser";
+ maintainers = with maintainers; [ skrzyp xzfc ];
+ license = licenses.mit;
+ # Unintentionally not working on Darwin:
+ # https://github.com/ahodesuka/ahoviewer/issues/62
+ platforms = platforms.linux;
+ };
+}
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/akira/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/akira/default.nix
new file mode 100644
index 000000000000..4d0cc46bb596
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/akira/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, appstream-glib
+, desktop-file-utils
+, meson
+, ninja
+, pantheon
+, pkgconfig
+, python3
+, vala
+, vala-lint
+, wrapGAppsHook
+, cairo
+, glib
+, goocanvas2
+, gtk3
+, gtksourceview3
+, json-glib
+, libarchive
+, libgee
+, libxml2 }:
+
+stdenv.mkDerivation rec {
+ pname = "akira";
+ version = "0.0.13";
+
+ src = fetchFromGitHub {
+ owner = "akiraux";
+ repo = "Akira";
+ rev = "v${version}";
+ sha256 = "1i20q78jagy8xky68nmd0n7mqvh88r98kp626rnlgyzvlc3c22cm";
+ };
+
+ nativeBuildInputs = [
+ appstream-glib
+ desktop-file-utils
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ vala-lint
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ cairo
+ glib
+ goocanvas2
+ pantheon.granite
+ gtk3
+ gtksourceview3
+ json-glib
+ libarchive
+ libgee
+ libxml2
+ ];
+
+ mesonFlags = [ "-Dprofile=default" ];
+
+ postPatch = ''
+ chmod +x build-aux/meson/post_install.py
+ patchShebangs build-aux/meson/post_install.py
+ '';
+
+ meta = with lib; {
+ description = "Native Linux Design application built in Vala and GTK";
+ homepage = "https://github.com/akiraux/Akira";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ Br1ght0ne neonfuz ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/alchemy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/alchemy/default.nix
new file mode 100644
index 000000000000..6fc84e088dd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/alchemy/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, jre, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ pname = "alchemy";
+ version = "008";
+
+ enableParallelBuilding = true;
+
+ src = fetchurl {
+ url = "http://al.chemy.org/files/Alchemy-${version}.tar.gz";
+ sha256 = "0449bvdccgx1jqnws1bckzs4nv2d230523qs0jx015gi81s1q7li";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share
+ cp -a . $out/share/alchemy
+ cat >> $out/bin/alchemy << EOF
+ #!${runtimeShell}
+ cd $out/share/alchemy
+ ${jre}/bin/java -jar Alchemy.jar "$@"
+ EOF
+ chmod +x $out/bin/alchemy
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Drawing application";
+ longDescription = ''
+ Alchemy is an open drawing project aimed at exploring how we can sketch,
+ draw, and create on computers in new ways. Alchemy isn’t software for
+ creating finished artwork, but rather a sketching environment that
+ focuses on the absolute initial stage of the creation process.
+ Experimental in nature, Alchemy lets you brainstorm visually to explore
+ an expanded range of ideas and possibilities in a serendipitous way.
+ '';
+ homepage = "http://al.chemy.org/";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.marcweber ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/animbar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/animbar/default.nix
new file mode 100644
index 000000000000..771145d54b65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/animbar/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchurl, cmake, qt4, file }:
+
+stdenv.mkDerivation rec {
+ pname = "animbar";
+ version = "1.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
+ sha256 = "0836nwcpyfdrapyj3hbg3wh149ihc26pc78h01adpc7c0r7d9pr9";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ qt4 file ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/pixmaps
+ cp src/animbar $out/bin
+ cp ../icon/* $out/share/pixmaps
+ '';
+
+ meta = with lib; {
+ description = "Create your own animation on paper and transparancy";
+ longDescription = ''
+ Animbar lets you easily create your own animation on paper and
+ transparancy. From a set of input images two output images are
+ computed, that are printed one on paper and one on
+ transparency. By moving the transparency over the paper you
+ create a fascinating animation effect. This kind of animation
+ technique is hundreds of years old and known under several
+ names: picket fence animation, barrier grid animation, Moiré
+ animation, to name a few.
+ '';
+ homepage = "http://animbar.mnim.org";
+ maintainers = with maintainers; [ leenaars ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/antimony/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/antimony/default.nix
new file mode 100644
index 000000000000..363f3b8c84d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/antimony/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, libpng, python3
+, libGLU, libGL, qtbase, wrapQtAppsHook, ncurses
+, cmake, flex, lemon
+}:
+
+let
+ gitRev = "8fb4b0929ce84cf375bfb83a9d522ccd80681eaf";
+ gitBranch = "develop";
+ gitTag = "0.9.3";
+in
+ stdenv.mkDerivation {
+ pname = "antimony";
+ version = "2020-03-28";
+
+ src = fetchFromGitHub {
+ owner = "mkeeter";
+ repo = "antimony";
+ rev = gitRev;
+ sha256 = "1s0zmq5jmhmb1wcsyaxfmii448g6x8b41mzvb1awlljj85qj0k2s";
+ };
+
+ patches = [ ./paths-fix.patch ];
+
+ postPatch = ''
+ sed -i "s,/usr/local,$out,g" \
+ app/CMakeLists.txt app/app/app.cpp app/app/main.cpp
+ sed -i "s,python3,${python3.executable}," CMakeLists.txt
+ '';
+
+ buildInputs = [
+ libpng python3 python3.pkgs.boost
+ libGLU libGL qtbase ncurses
+ ];
+
+ nativeBuildInputs = [ cmake flex lemon wrapQtAppsHook ];
+
+ cmakeFlags= [
+ "-DGITREV=${gitRev}"
+ "-DGITTAG=${gitTag}"
+ "-DGITBRANCH=${gitBranch}"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A computer-aided design (CAD) tool from a parallel universe";
+ homepage = "https://github.com/mkeeter/antimony";
+ license = licenses.mit;
+ maintainers = with maintainers; [ rnhmjoj ];
+ platforms = platforms.linux;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/antimony/paths-fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/antimony/paths-fix.patch
new file mode 100644
index 000000000000..9235dd6cdce1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/antimony/paths-fix.patch
@@ -0,0 +1,21 @@
+diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
+index ddc5c9b..d80728a 100644
+--- a/app/CMakeLists.txt
++++ b/app/CMakeLists.txt
+@@ -158,16 +158,6 @@ target_link_libraries(${ANTIMONY_APP}
+
+ ################################################################################
+
+-execute_process(COMMAND git log --pretty=format:'%h' -n 1
+- OUTPUT_VARIABLE GITREV)
+-execute_process(COMMAND bash -c "git diff --quiet --exit-code || echo +"
+- OUTPUT_VARIABLE GITDIFF)
+-execute_process(COMMAND git describe --exact-match --tags
+- OUTPUT_VARIABLE GITTAG
+- ERROR_QUIET)
+-execute_process(COMMAND git rev-parse --abbrev-ref HEAD
+- OUTPUT_VARIABLE GITBRANCH)
+-
+ add_definitions(-D'GITREV="${GITREV}${GITDIFF}"'
+ -D'GITTAG="${GITTAG}"'
+ -D'GITBRANCH="${GITBRANCH}"')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/apitrace/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/apitrace/default.nix
new file mode 100644
index 000000000000..e6865d2d8f07
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/apitrace/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchFromGitHub, cmake, libX11, procps, python2, libdwarf, qtbase, qtwebkit, wrapQtAppsHook, libglvnd }:
+
+stdenv.mkDerivation rec {
+ pname = "apitrace";
+ version = "7.1-572-g${builtins.substring 0 8 src.rev}";
+
+ src = fetchFromGitHub {
+ sha256 = "11bwb0l8cr1bf9bj1s6cbmi77d5fy4qrphj9cgmcd8jpa862anp5";
+ rev = "26966134f15d28f6b4a9a0a560017b3ba36d60bf";
+ repo = "apitrace";
+ owner = "apitrace";
+ };
+
+ # LD_PRELOAD wrappers need to be statically linked to work against all kinds
+ # of games -- so it's fine to use e.g. bundled snappy.
+ buildInputs = [ libX11 procps python2 libdwarf qtbase qtwebkit ];
+
+ nativeBuildInputs = [ cmake wrapQtAppsHook ];
+
+ # Don't automatically wrap all binaries, I prefer to explicitly only wrap
+ # `qapitrace`.
+ dontWrapQtApps = true;
+
+ postFixup = ''
+
+ # Since https://github.com/NixOS/nixpkgs/pull/60985, we add `/run-opengl-driver[-32]`
+ # to the `RUNPATH` of dispatcher libraries `dlopen()` ing OpenGL drivers.
+ # `RUNPATH` doesn't propagate throughout the whole application, but only
+ # from the module performing the `dlopen()`.
+ #
+ # Apitrace wraps programs by running them with `LD_PRELOAD` pointing to `.so`
+ # files in $out/lib/apitrace/wrappers.
+ #
+ # Theses wrappers effectively wrap the `dlopen()` calls from `libglvnd`
+ # and other dispatcher libraries, and run `dlopen()` by themselves.
+ #
+ # As `RUNPATH` doesn't propagate through the whole library, and they're now the
+ # library doing the real `dlopen()`, they also need to have
+ # `/run-opengl-driver[-32]` added to their `RUNPATH`.
+ #
+ # To stay simple, we add paths for 32 and 64 bits unconditionally.
+ # This doesn't have an impact on closure size, and if the 32 bit drivers
+ # are not available, that folder is ignored.
+ for i in $out/lib/apitrace/wrappers/*.so
+ do
+ echo "Patching OpenGL driver path for $i"
+ patchelf --set-rpath "/run/opengl-driver/lib:/run/opengl-driver-32/lib:$(patchelf --print-rpath $i)" $i
+ done
+
+ # Theses open the OpenGL driver at runtime, but it is not listed as NEEDED libraries. They need
+ # a reference to libglvnd.
+ for i in $out/bin/eglretrace $out/bin/glretrace
+ do
+ echo "Patching RPath for $i"
+ patchelf --set-rpath "${stdenv.lib.makeLibraryPath [libglvnd]}:$(patchelf --print-rpath $i)" $i
+ done
+
+ wrapQtApp $out/bin/qapitrace
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://apitrace.github.io";
+ description = "Tools to trace OpenGL, OpenGL ES, Direct3D, and DirectDraw APIs";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/apngasm/2.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/apngasm/2.nix
new file mode 100644
index 000000000000..166bc135c193
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/apngasm/2.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip, libpng, zlib, zopfli }:
+
+stdenv.mkDerivation rec {
+ pname = "apngasm";
+ version = "2.91";
+
+ src = fetchzip {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}-src.zip";
+ stripRoot = false;
+ sha256 = "0qhljqql159xkn1l83vz0q8wvzr7rjz4jnhiy0zn36pgvacg0zn1";
+ };
+
+ buildInputs = [ libpng zlib zopfli ];
+
+ postPatch = ''
+ rm -rf libpng zlib zopfli
+ '';
+
+ NIX_CFLAGS_LINK = "-lzopfli";
+
+ installPhase = ''
+ install -Dt $out/bin apngasm
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Create highly optimized Animated PNG files from PNG/TGA images";
+ homepage = "http://apngasm.sourceforge.net/";
+ license = licenses.zlib;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/apngasm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/apngasm/default.nix
new file mode 100644
index 000000000000..8d50696efcbd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/apngasm/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, boost, libpng, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "apngasm";
+ version = "3.1.9";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "d50bfb0cf14c376f4cfb94eb91c61d795a76b715"; # not tagged, but in debian/changelog
+ sha256 = "0pk0r8x1950pm6j3d5wgryvy3ldm7a9gl59jmnwnjmg1sf9mzf97";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ boost libpng zlib ];
+
+ meta = with stdenv.lib; {
+ description = "Create an APNG from multiple PNG files";
+ homepage = "https://github.com/apngasm/apngasm";
+ license = licenses.zlib;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix
new file mode 100644
index 000000000000..14af98ebc48b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, cmake, libpng, libtiff, libjpeg, panotools, libxml2 }:
+
+stdenv.mkDerivation {
+ name = "autopano-sift-C-2.5.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/hugin/autopano-sift-C-2.5.1.tar.gz";
+ sha256 = "0dqk8ff82gmy4v5ns5nr9gpzkc1p7c2y8c8fkid102r47wsjk44s";
+ };
+
+ buildInputs = [ cmake libpng libtiff libjpeg panotools libxml2 ];
+
+ patches = [
+ (fetchurl {
+ url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/autopano-sift-C/files/autopano-sift-C-2.5.1-lm.patch";
+ sha256 = "1bfcr5sps0ip9gl4jprji5jgf9wkczz6d2clsjjlbsy8r3ixi3lv";
+ })
+ ];
+
+ meta = {
+ homepage = "http://hugin.sourceforge.net/";
+ description = "Implementation in C of the autopano-sift algorithm for automatically stitching panoramas";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix
new file mode 100644
index 000000000000..0f53965786b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix
@@ -0,0 +1,10 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ name = "autofig-0.1";
+
+ src = fetchurl {
+ url = "http://autotrace.sourceforge.net/tools/autofig.tar.gz";
+ sha256 = "11cs9hdbgcl3aamcs3149i8kvyyldmnjf6yq81kbcf8fdmfk2zdq";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/autotrace/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/autotrace/default.nix
new file mode 100644
index 000000000000..cd7937f8a549
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/autotrace/default.nix
@@ -0,0 +1,125 @@
+{ stdenv, fetchurl, callPackage, libpng12, imagemagick
+, autoreconfHook, glib, pstoedit, pkgconfig, gettext, gd, darwin
+, runtimeShell }:
+
+# TODO: Figure out why the resultant binary is somehow linked against
+# libpng16.so.16 rather than libpng12.
+
+stdenv.mkDerivation rec {
+ pname = "autotrace";
+ version = "0.31.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/autotrace/AutoTrace/0.31.1/${pname}-${version}.tar.gz";
+ sha256 = "1xmgja5fv48mdbsa51inf7ksz36nqd6bsaybrk5xgprm6cy946js";
+ };
+
+ # The below commented out part is for an identically-named project
+ # on GitHub which appears to derive somehow from the Sourceforge
+ # version, but I have no idea what the lineage is of this project.
+ # It will build, but it segfaults when I attempt to run -centerline.
+ # Someone may need this for some reason, so I've left it here.
+ #
+ #src = fetchFromGitHub {
+ # owner = "autotrace";
+ # repo = "autotrace";
+ # rev = "b3ac8818d86943102cb4f13734e0b527c42dc45a";
+ # sha256 = "0z5h2mvxwckk2msi361zk1nc9fdcvxyimyc2hlyqd6h8k3p7zdi4";
+ #};
+ #postConfigure = ''
+ # sed -i -e "s/at_string/gchar */g" *.c
+ # sed -i -e "s/at_address/gpointer/g" *.c
+ # sed -i -e "s/at_bitmap_type/struct _at_bitmap/g" *.c
+ # sed -i -e "s/AT_BITMAP_BITS(bitmap)/AT_BITMAP_BITS(\&bitmap)/g" input-magick.c
+ #'';
+
+ autofig = callPackage ./autofig.nix {};
+ nativeBuildInputs = [ autoreconfHook glib autofig pkgconfig gettext ];
+ buildInputs = [ libpng12 imagemagick pstoedit ]
+ ++ stdenv.lib.optionals stdenv.isDarwin
+ (with darwin.apple_sdk.frameworks; [ gd ApplicationServices ]);
+
+ postUnpack = ''
+ pushd $sourceRoot
+ autofig autotrace-config.af
+ popd
+ '';
+
+ # This complains about various m4 files, but it appears to not be an
+ # actual error.
+ preConfigure = ''
+ glib-gettextize --copy --force
+ # pstoedit-config no longer exists, it was replaced with pkg-config
+ mkdir wrappers
+ cat >wrappers/pstoedit-config <<'EOF'
+ #!${runtimeShell}
+ # replace --version with --modversion for pkg-config
+ args=''${@/--version/--modversion}
+ exec pkg-config pstoedit "''${args[@]}"
+ EOF
+ chmod +x wrappers/pstoedit-config
+ export PATH="$PATH:$PWD/wrappers"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://autotrace.sourceforge.net/";
+ description = "Utility for converting bitmap into vector graphics";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ hodapp ];
+ license = licenses.gpl2;
+ knownVulnerabilities = [
+ "CVE-2013-1953"
+ "CVE-2016-7392"
+ "CVE-2017-9151"
+ "CVE-2017-9152"
+ "CVE-2017-9153"
+ "CVE-2017-9154"
+ "CVE-2017-9155"
+ "CVE-2017-9156"
+ "CVE-2017-9157"
+ "CVE-2017-9158"
+ "CVE-2017-9159"
+ "CVE-2017-9160"
+ "CVE-2017-9161"
+ "CVE-2017-9162"
+ "CVE-2017-9163"
+ "CVE-2017-9164"
+ "CVE-2017-9165"
+ "CVE-2017-9166"
+ "CVE-2017-9167"
+ "CVE-2017-9168"
+ "CVE-2017-9169"
+ "CVE-2017-9170"
+ "CVE-2017-9171"
+ "CVE-2017-9172"
+ "CVE-2017-9173"
+ "CVE-2017-9174"
+ "CVE-2017-9175"
+ "CVE-2017-9176"
+ "CVE-2017-9177"
+ "CVE-2017-9178"
+ "CVE-2017-9179"
+ "CVE-2017-9180"
+ "CVE-2017-9181"
+ "CVE-2017-9182"
+ "CVE-2017-9183"
+ "CVE-2017-9184"
+ "CVE-2017-9185"
+ "CVE-2017-9186"
+ "CVE-2017-9187"
+ "CVE-2017-9188"
+ "CVE-2017-9189"
+ "CVE-2017-9190"
+ "CVE-2017-9191"
+ "CVE-2017-9192"
+ "CVE-2017-9193"
+ "CVE-2017-9194"
+ "CVE-2017-9195"
+ "CVE-2017-9196"
+ "CVE-2017-9197"
+ "CVE-2017-9198"
+ "CVE-2017-9199"
+ "CVE-2017-9200"
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/avocode/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/avocode/default.nix
new file mode 100644
index 000000000000..6d4fa501710d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/avocode/default.nix
@@ -0,0 +1,102 @@
+{ stdenv, makeDesktopItem, fetchurl, unzip
+, gdk-pixbuf, glib, gtk3, atk, at-spi2-atk, pango, cairo, freetype, fontconfig, dbus, nss, nspr, alsaLib, cups, expat, udev, gnome3
+, xorg, mozjpeg, makeWrapper, wrapGAppsHook, libuuid, at-spi2-core
+}:
+
+stdenv.mkDerivation rec {
+ pname = "avocode";
+ version = "4.10.4";
+
+ src = fetchurl {
+ url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
+ sha256 = "06xf5y2mljk3pd74ap9n90bhhidbzpg5c6wws361ygd4f3x86c46";
+ };
+
+ libPath = stdenv.lib.makeLibraryPath (with xorg; [
+ stdenv.cc.cc.lib
+ at-spi2-core.out
+ gdk-pixbuf
+ glib
+ gtk3
+ atk
+ at-spi2-atk
+ pango
+ cairo
+ freetype
+ fontconfig
+ dbus
+ nss
+ nspr
+ alsaLib
+ cups
+ expat
+ udev
+ libX11
+ libxcb
+ libXi
+ libXcursor
+ libXdamage
+ libXrandr
+ libXcomposite
+ libXext
+ libXfixes
+ libXrender
+ libXtst
+ libXScrnSaver
+ libuuid
+ ]);
+
+ desktopItem = makeDesktopItem {
+ name = "Avocode";
+ exec = "avocode";
+ icon = "avocode";
+ desktopName = "Avocode";
+ genericName = "Design Inspector";
+ categories = "Development;";
+ comment = "The bridge between designers and developers";
+ };
+
+ nativeBuildInputs = [makeWrapper wrapGAppsHook];
+ buildInputs = [ unzip gtk3 gnome3.adwaita-icon-theme ];
+
+ # src is producing multiple folder on unzip so we must
+ # override unpackCmd to extract it into newly created folder
+ unpackCmd = ''
+ mkdir out
+ unzip $curSrc -d out
+ '';
+
+ installPhase = ''
+ substituteInPlace avocode.desktop.in \
+ --replace /path/to/avocode-dir/Avocode $out/bin/avocode \
+ --replace /path/to/avocode-dir/avocode.png avocode
+
+ mkdir -p share/applications share/pixmaps
+ mv avocode.desktop.in share/applications/avocode.desktop
+ mv avocode.png share/pixmaps/
+
+ rm resources/cjpeg
+ cp -av . $out
+
+ mkdir $out/bin
+ ln -s $out/avocode $out/bin/avocode
+ ln -s ${mozjpeg}/bin/cjpeg $out/resources/cjpeg
+ '';
+
+ postFixup = ''
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/avocode
+ for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
+ patchelf --set-rpath ${libPath}:$out/ $file || true
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://avocode.com/";
+ description = "The bridge between designers and developers";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ megheaiulian ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix
new file mode 100644
index 000000000000..4d79f10a9e10
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix
@@ -0,0 +1,63 @@
+{ mkDerivation, lib, fetchgit, qtbase, qmake, qtscript, flex, bison, qtdeclarative }:
+
+
+let
+ version = "5.1";
+
+ src = fetchgit {
+ url = "https://github.com/kmkolasinski/AwesomeBump.git";
+ rev = "Winx32v${version}";
+ sha256 = "1c8b9jki0v8kzkvsvyv7q1w3s7j40br6ph15hh2xi0a1mpwckq56";
+ fetchSubmodules = true;
+ };
+
+ qtnproperty = mkDerivation {
+ name = "qtnproperty";
+ inherit src;
+ sourceRoot = "AwesomeBump/Sources/utils/QtnProperty";
+ patches = [ ./qtnproperty-parallel-building.patch ];
+ buildInputs = [ qtscript qtbase qtdeclarative ];
+ nativeBuildInputs = [ qmake flex bison ];
+ postInstall = ''
+ install -D bin-linux/QtnPEG $out/bin/QtnPEG
+ '';
+ };
+in mkDerivation {
+ pname = "awesomebump";
+ inherit version;
+
+ inherit src;
+
+ buildInputs = [ qtbase qtscript qtdeclarative ];
+
+ nativeBuildInputs = [ qmake ];
+
+ preBuild = ''
+ ln -sf ${qtnproperty}/bin/QtnPEG Sources/utils/QtnProperty/bin-linux/QtnPEG
+ '';
+
+ dontWrapQtApps = true;
+ postInstall = ''
+ d=$out/libexec/AwesomeBump
+
+ mkdir -p $d
+ cp -vr workdir/`cat workdir/current`/bin/AwesomeBump $d/
+ cp -prd Bin/Configs Bin/Core $d/
+
+ # AwesomeBump expects to find Core and Configs in its current directory.
+ makeQtWrapper $d/AwesomeBump $out/bin/AwesomeBump \
+ --run "cd $d"
+ '';
+
+ # $ cd Sources; qmake; make ../workdir/linux-g++-dgb-gl4/obj/glwidget.o
+ # fatal error: properties/ImageProperties.peg.h: No such file or directory
+ enableParallelBuilding = false;
+
+ meta = {
+ homepage = "https://github.com/kmkolasinski/AwesomeBump";
+ description = "A program to generate normal, height, specular or ambient occlusion textures from a single image";
+ license = lib.licenses.gpl3Plus;
+ maintainers = [ lib.maintainers.eelco ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/awesomebump/qtnproperty-parallel-building.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/awesomebump/qtnproperty-parallel-building.patch
new file mode 100644
index 000000000000..b3f8e68dd1ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/awesomebump/qtnproperty-parallel-building.patch
@@ -0,0 +1,9 @@
+--- a/PEG/Flex.pri
++++ b/PEG/Flex.pri
+@@ -1,5 +1,6 @@
+ flex.name = Flex ${QMAKE_FILE_IN}
+ flex.input = FLEX_SOURCES
++flex.depends = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.parser.cpp
+ flex.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.lexer.cpp
+
+ win32:flex.commands = win_flex --wincompat -o ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.lexer.cpp ${QMAKE_FILE_IN}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/azpainter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/azpainter/default.nix
new file mode 100644
index 000000000000..c2e7ce6f35d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/azpainter/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub
+, libX11, libXext, libXi
+, freetype, fontconfig
+, libpng, libjpeg
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "azpainter";
+ version = "2.1.6";
+
+ src = fetchFromGitHub {
+ owner = "Symbian9";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0i5g67s4ysnvbaxmi7dhan0hfcfk8an14xykkafl47pqfx33npva";
+ };
+
+ buildInputs = [
+ libX11 libXext libXi
+ freetype fontconfig
+ libpng libjpeg
+ zlib
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Full color painting software for illustration drawing";
+ homepage = "https://osdn.net/projects/azpainter";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dtzWill ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/batik/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/batik/default.nix
new file mode 100644
index 000000000000..52a2589b409c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/batik/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ pname = "batik";
+ version = "1.13";
+
+ src = fetchurl {
+ url = "mirror://apache/xmlgraphics/batik/binaries/batik-bin-${version}.tar.gz";
+ sha256 = "16sq90nbs6psgm3xz30sbs6r5dnpd3qzsvr1xvnp4yipwjcmhmkw";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Java based toolkit for handling SVG";
+ homepage = "https://xmlgraphics.apache.org/batik";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ };
+
+ installPhase = ''
+ mkdir $out
+ cp -r * $out/
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/c3d/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/c3d/default.nix
new file mode 100644
index 000000000000..425ede037593
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/c3d/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, itk4, Cocoa }:
+
+stdenv.mkDerivation rec {
+ pname = "c3d";
+ version = "unstable-2020-10-05";
+
+ src = fetchFromGitHub {
+ owner = "pyushkevich";
+ repo = pname;
+ rev = "0a87e3972ea403babbe2d05ec6d50855e7c06465";
+ sha256 = "0wsmkifqrcfy13fnwvinmnq1m0lkqmpyg7bgbwnb37mbrlbq06wf";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ itk4 ]
+ ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pyushkevich/c3d";
+ description = "Medical imaging processing tool";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.gpl3;
+ broken = stdenv.isAarch64;
+ # /build/git-3453f61/itkextras/OneDimensionalInPlaceAccumulateFilter.txx:311:10: fatal error: xmmintrin.h: No such file or directory
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
new file mode 100644
index 000000000000..26fabc364ba3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
@@ -0,0 +1,82 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, dxflib
+, eigen
+, flann
+, gdal
+, LASzip
+, libLAS
+, pdal
+, qtbase
+, qtsvg
+, qttools
+, tbb
+, xercesc
+}:
+
+mkDerivation rec {
+ pname = "cloudcompare";
+ version = "2.11.2";
+
+ src = fetchFromGitHub {
+ owner = "CloudCompare";
+ repo = "CloudCompare";
+ rev = "v${version}";
+ sha256 = "0sb2h08iaf6zrf54sg6ql6wm63q5vq0kpd3gffdm26z8w6j6wv3s";
+ # As of writing includes (https://github.com/CloudCompare/CloudCompare/blob/a1c589c006fc325e8b560c77340809b9c7e7247a/.gitmodules):
+ # * libE57Format
+ # * PoissonRecon
+ # In a future version it will also contain
+ # * CCCoreLib
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ cmake
+ eigen # header-only
+ ];
+
+ buildInputs = [
+ dxflib
+ flann
+ gdal
+ LASzip
+ libLAS
+ pdal
+ qtbase
+ qtsvg
+ qttools
+ tbb
+ xercesc
+ ];
+
+ cmakeFlags = [
+ # TODO: This will become -DCCCORELIB_USE_TBB=ON in a future version, see
+ # https://github.com/CloudCompare/CloudCompare/commit/f5a0c9fd788da26450f3fa488b2cf0e4a08d255f
+ "-DCOMPILE_CC_CORE_LIB_WITH_TBB=ON"
+ "-DOPTION_USE_DXF_LIB=ON"
+ "-DOPTION_USE_GDAL=ON"
+ "-DOPTION_USE_SHAPE_LIB=ON"
+
+ "-DPLUGIN_GL_QEDL=ON"
+ "-DPLUGIN_GL_QSSAO=ON"
+ "-DPLUGIN_IO_QADDITIONAL=ON"
+ "-DPLUGIN_IO_QCORE=ON"
+ "-DPLUGIN_IO_QCSV_MATRIX=ON"
+ "-DPLUGIN_IO_QE57=ON"
+ "-DPLUGIN_IO_QFBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
+ "-DPLUGIN_IO_QPDAL=ON" # required for .las/.laz support
+ "-DPLUGIN_IO_QPHOTOSCAN=ON"
+ "-DPLUGIN_IO_QRDB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
+ ];
+
+ meta = with lib; {
+ description = "3D point cloud and mesh processing software";
+ homepage = "https://cloudcompare.org";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ nh2 ];
+ platforms = with platforms; linux; # only tested here; might work on others
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/comical/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/comical/default.nix
new file mode 100644
index 000000000000..800709de054a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/comical/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, wxGTK, util-linux, zlib }:
+
+stdenv.mkDerivation rec {
+ name = "comical-0.8";
+ src = fetchurl {
+ url = "mirror://sourceforge/comical/${name}.tar.gz";
+ sha256 = "0b6527cc06b25a937041f1eb248d0fd881cf055362097036b939817f785ab85e";
+ };
+ buildInputs = [ wxGTK util-linux zlib ];
+ preBuild="makeFlags=\"prefix=$out\"";
+
+ patches = [ ./wxgtk-2.8.patch ];
+
+ preInstall = "mkdir -pv $out/bin";
+
+ meta = {
+ description = "Viewer of CBR and CBZ files, often used to store scanned comics";
+ homepage = "http://comical.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/comical/wxgtk-2.8.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/comical/wxgtk-2.8.patch
new file mode 100644
index 000000000000..db7626074a0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/comical/wxgtk-2.8.patch
@@ -0,0 +1,36 @@
+diff --git a/Makefile b/Makefile
+index a648e72..181c47f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,5 +1,5 @@
+ CC = `wx-config --cxx`
+-LDFLAGS = `wx-config --libs` -Lunrar -lunrar -Lunzip -lminiunzip
++LDFLAGS = `wx-config --libs` -Lunrar -lunrar -Lunzip -lminiunzip -lz
+ INSTALL = install
+ INSTALL_PROGRAM = $(INSTALL)
+ prefix = /usr/local
+diff --git a/src/ComicalApp.cpp b/src/ComicalApp.cpp
+index 0c004cd..667e75e 100644
+--- a/src/ComicalApp.cpp
++++ b/src/ComicalApp.cpp
+@@ -28,6 +28,7 @@
+ #include "ComicalApp.h"
+ #include "ComicalFrame.h"
+ #include <wx/log.h>
++#include <wx/icon.h>
+
+ #if !defined(__WXMAC__) && !defined(__WXCOCOA__) && !defined(__WXMSW__) && !defined(__WXPM__)
+ #include "../Comical Icons/comical.xpm"
+diff --git a/unzip/unzip.h b/unzip/unzip.h
+index b247937..5bb6a69 100644
+--- a/unzip/unzip.h
++++ b/unzip/unzip.h
+@@ -50,7 +50,7 @@ extern "C" {
+ #endif
+
+ #ifndef _ZLIB_H
+-#include "zlib.h"
++#include <zlib.h>
+ #endif
+
+ #ifndef _ZLIBIOAPI_H
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/cq-editor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/cq-editor/default.nix
new file mode 100644
index 000000000000..cf94f4fa32d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/cq-editor/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, mkDerivationWith
+, python3Packages
+, fetchFromGitHub
+, wrapQtAppsHook
+}:
+
+mkDerivationWith python3Packages.buildPythonApplication rec {
+ pname = "cq-editor";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "CadQuery";
+ repo = "CQ-editor";
+ rev = version;
+ sha256 = "1970izjaa60r5cg9i35rzz9lk5c5d8q1vw1rh2skvfbf63z1hnzv";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ cadquery
+ Logbook
+ pyqt5
+ pyparsing
+ pyqtgraph
+ spyder_3
+ pathpy
+ qtconsole
+ requests
+ ];
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+
+ checkInputs = with python3Packages; [
+ pytest
+ pytest-xvfb
+ pytest-mock
+ pytestcov
+ pytest-repeat
+ pytest-qt
+ ];
+
+ checkPhase = ''
+ pytest --no-xvfb
+ '';
+
+ # requires X server
+ doCheck = false;
+
+ meta = with lib; {
+ description = "CadQuery GUI editor based on PyQT";
+ homepage = "https://github.com/CadQuery/CQ-editor";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ costrouc marcus7070 ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/darktable/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/darktable/default.nix
new file mode 100644
index 000000000000..71c2de08a569
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/darktable/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, libsoup, graphicsmagick, json-glib, wrapGAppsHook
+, cairo, cmake, ninja, curl, perl, llvm, desktop-file-utils, exiv2, glib
+, ilmbase, gtk3, intltool, lcms2, lensfun, libX11, libexif, libgphoto2, libjpeg
+, libpng, librsvg, libtiff, openexr, osm-gps-map, pkgconfig, sqlite, libxslt
+, openjpeg, lua, pugixml, colord, colord-gtk, libwebp, libsecret, gnome3
+, ocl-icd, pcre, gtk-mac-integration, isocodes, llvmPackages
+}:
+
+stdenv.mkDerivation rec {
+ version = "3.2.1";
+ pname = "darktable";
+
+ src = fetchurl {
+ url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
+ sha256 = "035rvqmw386hm0jpi14lf4dnpr5rjkalzjkyprqh42nwi3m86dkf";
+ };
+
+ nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ];
+
+ buildInputs = [
+ cairo curl exiv2 glib gtk3 ilmbase lcms2 lensfun libexif
+ libgphoto2 libjpeg libpng librsvg libtiff openexr sqlite libxslt
+ libsoup graphicsmagick json-glib openjpeg lua pugixml
+ libwebp libsecret gnome3.adwaita-icon-theme osm-gps-map pcre isocodes
+ ] ++ stdenv.lib.optionals stdenv.isLinux [
+ colord colord-gtk libX11 ocl-icd
+ ] ++ stdenv.lib.optional stdenv.isDarwin gtk-mac-integration
+ ++ stdenv.lib.optional stdenv.cc.isClang llvmPackages.openmp;
+
+ cmakeFlags = [
+ "-DBUILD_USERMANUAL=False"
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ "-DUSE_COLORD=OFF"
+ "-DUSE_KWALLET=OFF"
+ ];
+
+
+ # darktable changed its rpath handling in commit
+ # 83c70b876af6484506901e6b381304ae0d073d3c and as a result the
+ # binaries can't find libdarktable.so, so change LD_LIBRARY_PATH in
+ # the wrappers:
+ preFixup = let
+ libPathEnvVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
+ libPathPrefix = "$out/lib/darktable" + stdenv.lib.optionalString stdenv.isLinux ":${ocl-icd}/lib";
+ in ''
+ for f in $out/share/darktable/kernels/*.cl; do
+ sed -r "s|#include \"(.*)\"|#include \"$out/share/darktable/kernels/\1\"|g" -i "$f"
+ done
+
+ gappsWrapperArgs+=(
+ --prefix ${libPathEnvVar} ":" "${libPathPrefix}"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Virtual lighttable and darkroom for photographers";
+ homepage = "https://www.darktable.org";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ goibhniu flosse mrVanDalo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/deskew/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/deskew/default.nix
new file mode 100644
index 000000000000..6af6d93477a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/deskew/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, libtiff, fpc }:
+
+stdenv.mkDerivation rec {
+
+ pname = "deskew";
+ version = "1.25";
+
+ src = fetchFromGitHub {
+ owner = "galfar";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0zjjj66qhgqkmfxl3q7p78dv4xl4ci918pgl4d5259pqdj1bfgc8";
+ };
+
+ nativeBuildInputs = [ fpc ];
+ buildInputs = [ libtiff ];
+
+ buildPhase = ''
+ rm -r Bin # Remove pre-compiled binary
+ mkdir Bin
+ chmod +x compile.sh
+ ./compile.sh
+ '';
+
+ installPhase = ''
+ install -Dt $out/bin Bin/*
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A command line tool for deskewing scanned text documents";
+ homepage = "https://bitbucket.org/galfar/app-deskew/overview";
+ license = licenses.mit;
+ maintainers = with maintainers; [ryantm];
+ platforms = platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/dia/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/dia/default.nix
new file mode 100644
index 000000000000..6ec54201fbfa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/dia/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchgit, autoconf, automake, libtool, gtk2, pkgconfig, perlPackages,
+libxml2, gettext, python, libxml2Python, docbook5, docbook_xsl,
+libxslt, intltool, libart_lgpl, withGNOME ? false, libgnomeui,
+gtk-mac-integration-gtk2 }:
+
+stdenv.mkDerivation {
+ pname = "dia";
+ version = "0.97.3.20170622";
+
+ src = fetchgit {
+ url = "https://gitlab.gnome.org/GNOME/dia.git";
+ rev = "b86085dfe2b048a2d37d587adf8ceba6fb8bc43c";
+ sha256 = "1fyxfrzdcs6blxhkw3bcgkksaf3byrsj4cbyrqgb4869k3ynap96";
+ };
+
+ buildInputs =
+ [ gtk2 libxml2 gettext python libxml2Python docbook5
+ libxslt docbook_xsl libart_lgpl ]
+ ++ stdenv.lib.optional withGNOME libgnomeui
+ ++ stdenv.lib.optional stdenv.isDarwin gtk-mac-integration-gtk2;
+
+ nativeBuildInputs = [ autoconf automake libtool pkgconfig intltool ]
+ ++ (with perlPackages; [ perl XMLParser ]);
+
+ preConfigure = ''
+ NOCONFIGURE=1 ./autogen.sh # autoreconfHook is not enough
+ '';
+ configureFlags = stdenv.lib.optional withGNOME "--enable-gnome";
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "Gnome Diagram drawing software";
+ homepage = "http://live.gnome.org/Dia";
+ maintainers = with maintainers; [ raskin ];
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/digikam/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/digikam/default.nix
new file mode 100644
index 000000000000..1e4b397db231
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/digikam/default.nix
@@ -0,0 +1,138 @@
+{ mkDerivation, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
+
+# For `digitaglinktree`
+, perl, sqlite
+
+, qtbase
+, qtxmlpatterns
+, qtsvg
+, qtwebengine
+
+, akonadi-contacts
+, kcalendarcore
+, kconfigwidgets
+, kcoreaddons
+, kdoctools
+, kfilemetadata
+, knotifications
+, knotifyconfig
+, ktextwidgets
+, kwidgetsaddons
+, kxmlgui
+
+, bison
+, boost
+, eigen
+, exiv2
+, ffmpeg
+, flex
+, graphviz
+, imagemagick
+, lcms2
+, lensfun
+, libgphoto2
+, libkipi
+, libksane
+, liblqr1
+, libqtav
+, libusb1
+, marble
+, libGL
+, libGLU
+, opencv
+, pcre
+, threadweaver
+, x265
+
+# For panorama and focus stacking
+, enblend-enfuse
+, hugin
+, gnumake
+
+, breeze-icons
+, oxygen
+}:
+
+mkDerivation rec {
+ pname = "digikam";
+ version = "7.1.0";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+ sha256 = "1gmblnsm0aida3yynyddm6jdh59hx3w177hrhfar616z793ch0xi";
+ };
+
+ nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
+
+ buildInputs = [
+ bison
+ boost
+ eigen
+ exiv2
+ ffmpeg
+ flex
+ graphviz
+ imagemagick
+ lcms2
+ lensfun
+ libgphoto2
+ libkipi
+ libksane
+ liblqr1
+ libqtav
+ libusb1
+ libGL
+ libGLU
+ opencv
+ pcre
+ x265
+
+ qtbase
+ qtxmlpatterns
+ qtsvg
+ qtwebengine
+
+ akonadi-contacts
+ kcalendarcore
+ kconfigwidgets
+ kcoreaddons
+ kfilemetadata
+ knotifications
+ knotifyconfig
+ ktextwidgets
+ kwidgetsaddons
+ kxmlgui
+
+ breeze-icons
+ marble
+ oxygen
+ threadweaver
+ ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [
+ "-DENABLE_MYSQLSUPPORT=1"
+ "-DENABLE_INTERNALMYSQL=1"
+ "-DENABLE_MEDIAPLAYER=1"
+ "-DENABLE_QWEBENGINE=on"
+ ];
+
+ dontWrapGApps = true;
+
+ preFixup = ''
+ qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ qtWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
+ qtWrapperArgs+=(--suffix DK_PLUGIN_PATH : ${placeholder "out"}/${qtbase.qtPluginPrefix}/${pname})
+ substituteInPlace $out/bin/digitaglinktree \
+ --replace "/usr/bin/perl" "${perl}/bin/perl" \
+ --replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
+ '';
+
+ meta = with lib; {
+ description = "Photo Management Program";
+ license = licenses.gpl2;
+ homepage = "https://www.digikam.org";
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/displaycal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/displaycal/default.nix
new file mode 100644
index 000000000000..5b324a5974d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/displaycal/default.nix
@@ -0,0 +1,72 @@
+{ python2
+, stdenv
+, fetchurl
+, pkgconfig
+, libXext
+, libXxf86vm
+, libX11
+, libXrandr
+, libXinerama
+, libXScrnSaver
+, argyllcms
+ }:
+
+let
+ inherit (python2.pkgs) buildPythonApplication wxPython numpy dbus-python;
+in buildPythonApplication rec {
+ pname = "displaycal";
+ version = "3.8.9.3";
+
+ enableParallelBuilding = true;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/dispcalgui/release/${version}/DisplayCAL-${version}.tar.gz";
+ sha256 = "1sivi4q7sqsrc95qg5gh37bsm2761md4mpl89hflzwk6kyyxyd3w";
+ };
+
+ propagatedBuildInputs = [
+ libXext
+ libXxf86vm
+ libX11
+ libXrandr
+ libXinerama
+ libXScrnSaver
+ argyllcms
+ wxPython
+ numpy
+ dbus-python
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ preConfigure = ''
+ mkdir dist
+ cp {misc,dist}/net.displaycal.DisplayCAL.appdata.xml
+ touch dist/copyright
+ mkdir -p $out
+ ln -s $out/share/DisplayCAL $out/Resources
+ '';
+
+ # no idea why it looks there - symlink .json lang (everything)
+ postInstall = ''
+ for x in $out/share/DisplayCAL/*; do
+ ln -s $x $out/lib/python2.7/site-packages/DisplayCAL
+ done
+
+ for prog in "$out/bin/"*; do
+ wrapProgram "$prog" \
+ --prefix PYTHONPATH : "$PYTHONPATH" \
+ --prefix PATH : ${argyllcms}/bin
+ done
+ '';
+
+ meta = {
+ description = "Display Calibration and Characterization powered by Argyll CMS";
+ homepage = "https://displaycal.net/";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [stdenv.lib.maintainers.marcweber];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/djview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/djview/default.nix
new file mode 100644
index 000000000000..4d09f2ad5fe0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/djview/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, mkDerivation
+, fetchurl
+, pkgconfig
+, djvulibre
+, qtbase
+, qttools
+, xorg
+, libtiff
+, darwin
+}:
+
+mkDerivation rec {
+ pname = "djview";
+ version = "4.10.6";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
+ sha256 = "08bwv8ppdzhryfcnifgzgdilb12jcnivl4ig6hd44f12d76z6il4";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ qttools
+ ];
+
+ buildInputs = [
+ djvulibre
+ qtbase
+ xorg.libXt
+ libtiff
+ ] ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AGL;
+
+ configureFlags = [
+ "--disable-silent-rules"
+ "--disable-dependency-tracking"
+ "--with-x"
+ "--with-tiff"
+ # NOTE: 2019-09-19: experimental "--enable-npdjvu" fails
+ ] ++ stdenv.lib.optional stdenv.isDarwin "--enable-mac";
+
+ passthru = {
+ mozillaPlugin = "/lib/mozilla/plugins";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A portable DjVu viewer (Qt5) and browser (nsdejavu) plugin";
+ homepage = "http://djvu.sourceforge.net/djview4.html";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ Anton-Latukha ];
+ longDescription = ''
+ The portable DjVu viewer (Qt5) and browser (nsdejavu) plugin.
+
+ Djview highlights:
+ - entirely based on the public DjVulibre api.
+ - entirely written in portable Qt5.
+ - works natively under Unix/X11, MS Windows, and macOS X.
+ - continuous scrolling of pages
+ - side-by-side display of pages
+ - ability to specify a url to the djview command
+ - all plugin and cgi options available from the command line
+ - all silly annotations implemented
+ - display thumbnails as a grid
+ - display outlines
+ - page names supported (see djvused command set-page-title)
+ - metadata dialog (see djvused command set-meta)
+ - implemented as reusable Qt widgets
+
+ nsdejavu: browser plugin for DjVu. It internally uses djview.
+ Has CGI-style arguments to configure the view of document (see man).
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/dosage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/dosage/default.nix
new file mode 100644
index 000000000000..b491c3e3ead0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/dosage/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "dosage";
+ version = "2018.04.08";
+ PBR_VERSION = version;
+
+ src = fetchFromGitHub {
+ owner = "webcomics";
+ repo = "dosage";
+ rev = "b2fdc13feb65b93762928f7e99bac7b1b7b31591";
+ sha256 = "1p6vllqaf9s6crj47xqp97hkglch1kd4y8y4lxvzx3g2shhhk9hh";
+ };
+ checkInputs = with python3Packages; [ pytest responses ];
+ propagatedBuildInputs = with python3Packages; [ colorama lxml requests pbr setuptools ];
+
+ disabled = python3Packages.pythonOlder "3.3";
+
+ checkPhase = ''
+ py.test tests/
+ '';
+
+ meta = {
+ description = "A comic strip downloader and archiver";
+ homepage = "https://dosage.rocks/";
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/drawing/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/drawing/default.nix
new file mode 100644
index 000000000000..fb68276b168c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/drawing/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, fetchFromGitHub
+, meson
+, ninja
+, pkgconfig
+, python3
+, gtk3
+, appstream-glib
+, desktop-file-utils
+, gobject-introspection
+, wrapGAppsHook
+, glib
+, gdk-pixbuf
+, pango
+, gettext
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "drawing";
+ version = "0.4.13";
+
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "maoschanz";
+ repo = pname;
+ rev = version;
+ sha256 = "0mj2nmfrckv89srgkn16fnbrb35f5a655ak8bb3rd9na3hd5bq53";
+ };
+
+ nativeBuildInputs = [
+ appstream-glib
+ desktop-file-utils
+ gobject-introspection
+ meson
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ glib
+ gettext
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ gdk-pixbuf
+ pango
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pycairo
+ pygobject3
+ ];
+
+ postPatch = ''
+ chmod +x build-aux/meson/postinstall.py # patchShebangs requires executable file
+ patchShebangs build-aux/meson/postinstall.py
+ '';
+
+ strictDeps = false;
+
+ meta = with lib; {
+ description = "A free basic image editor, similar to Microsoft Paint, but aiming at the GNOME desktop";
+ homepage = "https://maoschanz.github.io/drawing/";
+ maintainers = with maintainers; [ mothsart ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/drawio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/drawio/default.nix
new file mode 100644
index 000000000000..892d81753e65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/drawio/default.nix
@@ -0,0 +1,95 @@
+{ stdenv, lib, fetchurl, rpmextract, autoPatchelfHook, wrapGAppsHook
+
+# Dynamic libraries
+, alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, dbus, cups, expat
+, gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor
+, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst
+, libxcb, libuuid, nspr, nss, pango
+
+, systemd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "drawio";
+ version = "13.9.9";
+
+ src = fetchurl {
+ url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
+ hash = "sha256-+rNbLHpkFnvM7gDFbZ9AItPIA2IVTmscz+gTXF8riIY=";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ rpmextract
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ alsaLib
+ atk
+ at-spi2-atk
+ at-spi2-core
+ cairo
+ cups
+ dbus
+ expat
+ gdk-pixbuf
+ glib
+ gtk3
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXtst
+ libxcb
+ libuuid
+ nspr
+ nss
+ pango
+ systemd
+ ];
+
+ runtimeDependencies = [
+ (lib.getLib systemd)
+ ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = "rpmextract ${src}";
+
+ installPhase = ''
+ mkdir -p $out/share
+ cp -r opt/draw.io $out/share/
+
+ # Application icon
+ mkdir -p $out/share/icons/hicolor
+ cp -r usr/share/icons/hicolor/* $out/share/icons/hicolor/
+
+ # XDG desktop item
+ cp -r usr/share/applications $out/share/applications
+
+ # Symlink wrapper
+ mkdir -p $out/bin
+ ln -s $out/share/draw.io/drawio $out/bin/drawio
+
+ # Update binary path
+ substituteInPlace $out/share/applications/drawio.desktop \
+ --replace /opt/draw.io/drawio $out/bin/drawio
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A desktop application for creating diagrams";
+ homepage = "https://about.draw.io/";
+ license = licenses.asl20;
+ changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
+ maintainers = with maintainers; [ danieldk ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/drawpile/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
new file mode 100644
index 000000000000..cf37512ad9f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
@@ -0,0 +1,117 @@
+{ stdenv
+, lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, extra-cmake-modules
+
+# common deps
+, karchive
+
+# client deps
+, qtbase
+, qtkeychain
+, qtmultimedia
+, qtsvg
+, qttools
+, libsecret
+
+# optional client deps
+, giflib
+, kdnssd
+, libvpx
+, miniupnpc
+, qtx11extras # kis
+
+# optional server deps
+, libmicrohttpd
+, libsodium
+, withSystemd ? stdenv.isLinux
+, systemd ? null
+
+# options
+, buildClient ? true
+, buildServer ? true
+, buildServerGui ? true # if false builds a headless server
+, buildExtraTools ? false
+, enableKisTablet ? false # enable improved graphics tablet support
+}:
+
+with lib;
+
+let
+ clientDeps = [
+ qtbase
+ qtkeychain
+ qtmultimedia
+ qtsvg
+ qttools
+ libsecret
+ # optional:
+ giflib # gif animation export support
+ kdnssd # local server discovery with Zeroconf
+ libvpx # WebM video export
+ miniupnpc # automatic port forwarding
+ ];
+
+ serverDeps = [
+ # optional:
+ libmicrohttpd # HTTP admin api
+ libsodium # ext-auth support
+ ] ++ optional withSystemd systemd;
+
+ kisDeps = [
+ qtx11extras
+ ];
+
+ boolToFlag = bool:
+ if bool then "ON" else "OFF";
+
+in mkDerivation rec {
+ pname = "drawpile";
+ version = "2.1.17";
+
+ src = fetchFromGitHub {
+ owner = "drawpile";
+ repo = "drawpile";
+ rev = version;
+ sha256 = "sha256-AFFY+FcY9ExAur13OoWR9285RZtBe6jnRIrwi5raiCM=";
+ };
+
+ patches = [
+ # fix for libmicrohttpd 0.9.71
+ (fetchpatch {
+ url = "https://github.com/drawpile/Drawpile/commit/ed1a75deb113da2d1df91a28f557509c4897130e.diff";
+ sha256 = "sha256-54wabH5F3Hf+6vv9rpCwCRdhjSaUFtuF/mE1/U+CpOA=";
+ name = "mhdfix.patch"; })
+ ];
+
+ nativeBuildInputs = [ extra-cmake-modules ];
+
+ buildInputs = [
+ karchive
+ ]
+ ++ optionals buildClient clientDeps
+ ++ optionals buildServer serverDeps
+ ++ optionals enableKisTablet kisDeps;
+
+ cmakeFlags = [
+ "-Wno-dev"
+ "-DINITSYS=systemd"
+ "-DCLIENT=${boolToFlag buildClient}"
+ "-DSERVER=${boolToFlag buildServer}"
+ "-DSERVERGUI=${boolToFlag buildServerGui}"
+ "-DTOOLS=${boolToFlag buildExtraTools}"
+ "-DKIS_TABLET=${boolToFlag enableKisTablet}"
+ ];
+
+ meta = {
+ description = "A collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously";
+ homepage = "https://drawpile.net/";
+ downloadPage = "https://drawpile.net/download/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/epeg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/epeg/default.nix
new file mode 100644
index 000000000000..bdbdf04bcd50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/epeg/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libtool, autoconf, automake
+, libjpeg, libexif
+}:
+
+stdenv.mkDerivation rec {
+ pname = "epeg";
+ version = "0.9.2";
+
+ src = fetchFromGitHub {
+ owner = "mattes";
+ repo = "epeg";
+ rev = "v${version}";
+ sha256 = "14bjl9v6zzac4df25gm3bkw3n0mza5iazazsi65gg3m6661x6c5g";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig libtool autoconf automake ];
+
+ propagatedBuildInputs = [ libjpeg libexif ];
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mattes/epeg";
+ description = "Insanely fast JPEG/ JPG thumbnail scaling";
+ platforms = platforms.linux ++ platforms.darwin;
+ license = {
+ url = "https://github.com/mattes/epeg#license";
+ };
+ maintainers = with maintainers; [ nh2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
new file mode 100644
index 000000000000..1f6a52aa0b0c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
@@ -0,0 +1,59 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, makeDesktopItem
+, qmake
+, qtbase
+, libpng
+, giflib
+, impy
+}:
+
+let
+ desktopItem = makeDesktopItem {
+ name = "EvilPixie";
+ desktopName = "EvilPixie";
+ exec = "evilpixie %F";
+ icon = "evilpixie";
+ genericName = "Image Editor";
+ categories = "Graphics;2DGraphics;RasterGraphics;";
+ mimeType = "image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/x-pcx;image/x-targa;image/x-tga;";
+ };
+
+in mkDerivation rec {
+ pname = "evilpixie";
+ version = "0.2";
+
+ src = fetchFromGitHub {
+ owner = "bcampbell";
+ repo = "evilpixie";
+ rev = "v${version}";
+ sha256 = "1yg4ic3kcxqmr7k5bbvrv5iavlnhpdx6510z5wha9k9k5q9c4dvh";
+ };
+
+ nativeBuildInputs = [
+ qmake
+ ];
+
+ buildInputs = [
+ qtbase
+ libpng
+ giflib
+ impy
+ ];
+
+ postInstall = ''
+ ln -s ${desktopItem}/share/applications $out/share
+ install -Dm 444 icon_128x128.png $out/share/icons/hicolor/128x128/apps/evilpixie.png
+ '';
+
+ meta = with lib; {
+ description = "Pixel-oriented paint program, modelled on Deluxe Paint";
+ homepage = "http://evilpixie.scumways.com/";
+ downloadPage = "https://github.com/bcampbell/evilpixie/releases";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix
new file mode 100644
index 000000000000..7841e9d571b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, fltk, openexr, libGLU, libGL, ctl }:
+
+stdenv.mkDerivation {
+ name ="openexr_viewers-2.2.1";
+
+ src = fetchurl {
+ url = "mirror://savannah/openexr/openexr_viewers-2.2.1.tar.gz";
+ sha256 = "1ixx2wbjp4rvsf7h3bkja010gl1ihjrcjzy7h20jnn47ikg12vj8";
+ };
+
+ configurePhase = ''
+ ./configure --prefix=$out --with-fltk-config=${fltk}/bin/fltk-config
+ '';
+
+ buildPhase = ''
+ make LDFLAGS="`fltk-config --ldflags` -lGL -lfltk_gl"
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openexr fltk libGLU libGL ctl ];
+
+ meta = {
+ description = "Application for viewing OpenEXR images on a display at various exposure settings";
+ homepage = "http://openexr.com";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/exrtools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/exrtools/default.nix
new file mode 100644
index 000000000000..39c23eb4fe8c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/exrtools/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, openexr, libpng12, libjpeg }:
+
+stdenv.mkDerivation rec {
+ pname = "exrtools";
+ version = "0.4";
+
+ src = fetchurl {
+ url = "http://scanline.ca/exrtools/${pname}-${version}.tar.gz";
+ sha256 = "0jpkskqs1yjiighab4s91jy0c0qxcscwadfn94xy2mm2bx2qwp4z";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ stdenv openexr libpng12 libjpeg ];
+
+ meta = with stdenv.lib; {
+ description = "Collection of utilities for manipulating OpenEXR images";
+ homepage = "http://scanline.ca/exrtools";
+ platforms = platforms.linux;
+ license = licenses.mit;
+ maintainers = [ maintainers.juliendehos ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/f3d/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/f3d/default.nix
new file mode 100644
index 000000000000..c81ba1240173
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/f3d/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitLab, cmake, vtk_9, libX11, libGL, Cocoa, OpenGL }:
+
+stdenv.mkDerivation rec {
+ pname = "f3d";
+ version = "1.0.1";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.kitware.com";
+ owner = "f3d";
+ repo = "f3d";
+ rev = "v${version}";
+ sha256 = "0a6r0jspkhl735f6zmnhby1g4dlmjqd5izgsp5yfdcdhqj4j63mg";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ vtk_9 ]
+ ++ stdenv.lib.optionals stdenv.isLinux [ libGL libX11 ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa OpenGL ];
+
+ meta = with stdenv.lib; {
+ description = "Fast and minimalist 3D viewer using VTK";
+ homepage = "https://kitware.github.io/F3D";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/fbida/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fbida/default.nix
new file mode 100644
index 000000000000..7f0167f98342
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fbida/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, libjpeg, libexif, libungif, libtiff, libpng, libwebp, libdrm
+, pkgconfig, freetype, fontconfig, which, imagemagick, curl, sane-backends, libXpm
+, epoxy, poppler, mesa, lirc }:
+
+stdenv.mkDerivation rec {
+ name = "fbida-2.14";
+
+ src = fetchurl {
+ url = "http://dl.bytesex.org/releases/fbida/${name}.tar.gz";
+ sha256 = "0f242mix20rgsqz1llibhsz4r2pbvx6k32rmky0zjvnbaqaw1dwm";
+ };
+
+ nativeBuildInputs = [ pkgconfig which ];
+ buildInputs = [
+ libexif libjpeg libpng libungif freetype fontconfig libtiff libwebp
+ imagemagick curl sane-backends libdrm libXpm epoxy poppler lirc
+ mesa
+ ];
+
+ makeFlags = [ "prefix=$(out)" "verbose=yes" "STRIP=" "JPEG_VER=62" ];
+
+ patchPhase = ''
+ sed -e 's@ cpp\>@ gcc -E -@' -i GNUmakefile
+ sed -e 's@$(HAVE_LINUX_FB_H)@yes@' -i GNUmakefile
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Image viewing and manipulation programs including fbi, fbgs, ida, exiftran and thumbnail.cgi";
+ homepage = "https://www.kraxel.org/blog/linux/fbida/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/feh/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/feh/default.nix
new file mode 100644
index 000000000000..0c7f3e8fe107
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/feh/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, makeWrapper
+, xorg, imlib2, libjpeg, libpng
+, curl, libexif, jpegexiforient, perlPackages
+, enableAutoreload ? !stdenv.hostPlatform.isDarwin }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "feh";
+ version = "3.6";
+
+ src = fetchurl {
+ url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2";
+ sha256 = "1n6gbyzlc3kx2cq9wfz7azn7mrjmcc9pq436k1n4mrh0lik5sxw7";
+ };
+
+ outputs = [ "out" "man" "doc" ];
+
+ nativeBuildInputs = [ makeWrapper xorg.libXt ];
+
+ buildInputs = [ xorg.libX11 xorg.libXinerama imlib2 libjpeg libpng curl libexif ];
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}" "exif=1"
+ ] ++ optional stdenv.isDarwin "verscmp=0"
+ ++ optional enableAutoreload "inotify=1";
+
+ installTargets = [ "install" ];
+ postInstall = ''
+ wrapProgram "$out/bin/feh" --prefix PATH : "${makeBinPath [ libjpeg jpegexiforient ]}" \
+ --add-flags '--theme=feh'
+ '';
+
+ checkInputs = [ perlPackages.perl perlPackages.TestCommand ];
+ preCheck = ''
+ export PERL5LIB="${perlPackages.TestCommand}/${perlPackages.perl.libPrefix}"
+ '';
+ postCheck = ''
+ unset PERL5LIB
+ '';
+
+ doCheck = true;
+
+ meta = {
+ description = "A light-weight image viewer";
+ homepage = "https://feh.finalrewind.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ viric willibutz globin ma27 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/fig2dev/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fig2dev/default.nix
new file mode 100644
index 000000000000..cd7db3d29c50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fig2dev/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, ghostscript, libpng } :
+
+let
+ version = "3.2.7b";
+
+in stdenv.mkDerivation {
+ pname = "fig2dev";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mcj/fig2dev-${version}.tar.xz";
+ sha256 = "1ck8gnqgg13xkxq4hrdy706i4xdgrlckx6bi6wxm1g514121pp27";
+ };
+
+ buildInputs = [ libpng ];
+
+ GSEXE="${ghostscript}/bin/gs";
+
+ meta = with stdenv.lib; {
+ description = "Tool to convert Xfig files to other formats";
+ homepage = "http://mcj.sourceforge.net/";
+ license = licenses.xfig;
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/fluxus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
new file mode 100644
index 000000000000..f560ad45c574
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
@@ -0,0 +1,96 @@
+{ stdenv
+, fetchFromGitLab
+, alsaLib
+, bzip2
+, fftw
+, freeglut
+, freetype
+, glew
+, libjack2
+, libGL
+, libGLU
+, libjpeg
+, liblo
+, libpng
+, libsndfile
+, libtiff
+, ode
+, openal
+, openssl
+, racket
+, sconsPackages
+, zlib
+}:
+let
+ libs = [
+ alsaLib
+ bzip2
+ fftw
+ freeglut
+ freetype
+ glew
+ libjack2
+ libGL
+ libGLU
+ libjpeg
+ liblo
+ libpng
+ libsndfile
+ libtiff
+ ode
+ openal
+ openssl
+ zlib
+ ];
+in
+stdenv.mkDerivation rec {
+ pname = "fluxus";
+ version = "0.19";
+ src = fetchFromGitLab {
+ owner = "nebogeo";
+ repo = "fluxus";
+ rev = "ba9aee218dd4a9cfab914ad78bdb6d59e9a37400";
+ sha256 = "0mwghpgq4n1khwlmgscirhmcdhi6x00c08q4idi2zcqz961bbs28";
+ };
+
+ buildInputs = [
+ alsaLib
+ fftw
+ freeglut.dev
+ freetype
+ glew
+ libjack2
+ libjpeg.dev
+ liblo
+ libsndfile.dev
+ libtiff.dev
+ ode
+ openal
+ openssl.dev
+ racket
+ ];
+ nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
+
+ patches = [ ./fix-build.patch ];
+ sconsFlags = [
+ "RacketPrefix=${racket}"
+ "RacketInclude=${racket}/include/racket"
+ "RacketLib=${racket}/lib/racket"
+ "LIBPATH=${stdenv.lib.makeLibraryPath libs}"
+ "DESTDIR=build"
+ ];
+ configurePhase = ''
+ sconsFlags+=" Prefix=$out"
+ '';
+ installPhase = ''
+ mkdir -p $out
+ cp -r build$out/* $out/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Livecoding environment for 3D graphics, sound, and games";
+ license = licenses.gpl2;
+ homepage = "http://www.pawfal.org/fluxus/";
+ maintainers = [ maintainers.brainrape ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/fluxus/fix-build.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fluxus/fix-build.patch
new file mode 100644
index 000000000000..7810dd59e357
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fluxus/fix-build.patch
@@ -0,0 +1,16 @@
+diff --git a/SConstruct b/SConstruct
+index 32cb644..0b3a208 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -225,6 +225,11 @@ if env['PLATFORM'] == 'posix':
+ ["asound", "alsa/asoundlib.h"],
+ ["openal", "AL/al.h"]]
+
++env.Append(ENV={'PATH': ' ' + os.environ['PATH'], })
++env.Append(LIBPATH=ARGUMENTS.get('LIBPATH', '').split(':'))
++env.Append(CCFLAGS=' ' + os.environ.get('NIX_CFLAGS_COMPILE',''))
++env.Append(CCFLAGS=' -DNULL=0')
++
+ ################################################################################
+ # Make sure we have these libraries availible
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/fondo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fondo/default.nix
new file mode 100644
index 000000000000..a4d925da3dee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fondo/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, pantheon
+, vala
+, pkgconfig
+, meson
+, ninja
+, python3
+, glib
+, gsettings-desktop-schemas
+, gtk3
+, libgee
+, json-glib
+, glib-networking
+, libsoup
+, libunity
+, desktop-file-utils
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "fondo";
+ version = "1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "calo001";
+ repo = pname;
+ rev = version;
+ sha256 = "0cdcn4qmdryk2x327f1z3pq8pg4cb0q1jr779gh8s6nqajyk8nqm";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ glib-networking
+ gsettings-desktop-schemas
+ gtk3
+ json-glib
+ libgee
+ libsoup
+ libunity
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+
+ meta = with stdenv.lib; {
+ description = "Find the most beautiful wallpapers for your desktop";
+ homepage = "https://github.com/calo001/fondo";
+ license = licenses.agpl3Plus;
+ maintainers = with maintainers; [ worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix
new file mode 100644
index 000000000000..3c67b11844d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix
@@ -0,0 +1,32 @@
+{ lib, mkDerivation, fetchpatch, fetchFromGitHub, cmake, qttools, qtwebkit }:
+
+mkDerivation rec {
+ pname = "fontmatrix";
+ version = "0.6.0-qt5";
+
+ src = fetchFromGitHub {
+ owner = "fcoiffie";
+ repo = "fontmatrix";
+ rev = "1ff8382d8c85c18d9962918f461341ff4fe21993";
+ sha256 = "0yx1gbsjj9ddq1kiqplif1w5x5saw250zbmhmd4phqmaqzr60w0h";
+ };
+
+ # Add missing QAction include
+ patches = [ (fetchpatch {
+ url = "https://github.com/fcoiffie/fontmatrix/commit/dc6de8c414ae21516b72daead79c8db88309b102.patch";
+ sha256 = "092860fdyf5gq67jqfxnlgwzjgpizi6j0njjv3m62aiznrhig7c8";
+ })];
+
+ buildInputs = [ qttools qtwebkit ];
+
+ nativeBuildInputs = [ cmake ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = with lib; {
+ description = "Fontmatrix is a free/libre font explorer for Linux, Windows and Mac";
+ homepage = "https://github.com/fontmatrix/fontmatrix";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/freecad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/freecad/default.nix
new file mode 100644
index 000000000000..3a5d36dfac19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/freecad/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
+xercesc, ode, eigen, qtbase, qttools, qtwebengine, qtxmlpatterns, wrapQtAppsHook,
+opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
+gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }:
+
+assert mpi != null;
+
+let
+ pythonPackages = python3Packages;
+in mkDerivation rec {
+ pname = "freecad-unstable";
+ version = "2020-10-17";
+
+ src = fetchFromGitHub {
+ owner = "FreeCAD";
+ repo = "FreeCAD";
+ rev = "f3bdaaa55a6c03b297924c40819d23e4603fa55b";
+ sha256 = "1q1iy4i9k65v8z7h8a6r4bf5ycn124jp26xwp0xwbar4gnkx2jiq";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ pkgconfig
+ pythonPackages.pyside2-tools
+ wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ cmake coin3d xercesc ode eigen opencascade-occt gts
+ zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
+ libGLU libXmu qtbase qttools qtwebengine qtxmlpatterns
+ ] ++ (with pythonPackages; [
+ matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
+ GitPython # for addon manager
+ ]);
+
+ cmakeFlags = [
+ "-DBUILD_QT5=ON"
+ "-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
+ "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
+ ("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include"
+ + ";${pythonPackages.pyside2}/include/PySide2/QtCore"
+ + ";${pythonPackages.pyside2}/include/PySide2/QtWidgets"
+ + ";${pythonPackages.pyside2}/include/PySide2/QtGui"
+ )
+ "-DPYSIDE_LIBRARY=PySide2::pyside2"
+ ];
+
+ # This should work on both x86_64, and i686 linux
+ preBuild = ''
+ export NIX_LDFLAGS="-L${gfortran.cc}/lib64 -L${gfortran.cc}/lib $NIX_LDFLAGS";
+ '';
+
+ # Their main() removes PYTHONPATH=, and we rely on it.
+ preConfigure = ''
+ sed '/putenv("PYTHONPATH/d' -i src/Main/MainGui.cpp
+
+ qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
+ '';
+
+ qtWrapperArgs = [
+ "--set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1"
+ ];
+
+ postFixup = ''
+ mv $out/share/doc $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
+ homepage = "https://www.freecadweb.org/";
+ license = licenses.lgpl2Plus;
+ maintainers = with maintainers; [ viric gebner ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/freepv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/freepv/default.nix
new file mode 100644
index 000000000000..11d203746e1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/freepv/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, libjpeg, libGLU, libGL, freeglut, zlib, cmake, libX11, libxml2, libpng,
+ libXxf86vm }:
+
+stdenv.mkDerivation {
+ name = "freepv-0.3.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/freepv/freepv-0.3.0.tar.gz";
+ sha256 = "1w19abqjn64w47m35alg7bcdl1p97nf11zn64cp4p0dydihmhv56";
+ };
+
+ buildInputs = [ libjpeg libGLU libGL freeglut zlib cmake libX11 libxml2 libpng
+ libXxf86vm ];
+
+ postPatch = ''
+ sed -i -e '/GECKO/d' CMakeLists.txt
+ sed -i -e '/mozilla/d' src/CMakeLists.txt
+ sed -i -e '1i \
+ #include <cstdio>' src/libfreepv/OpenGLRenderer.cpp
+ sed -i -e '1i \
+ #include <cstring>' src/libfreepv/Image.cpp
+ substituteInPlace src/libfreepv/Action.h \
+ --replace NULL nullptr
+ substituteInPlace src/libfreepv/pngReader.cpp \
+ --replace png_set_gray_1_2_4_to_8 png_set_expand_gray_1_2_4_to_8
+ '';
+
+ NIX_CFLAGS_COMPILE = "-fpermissive -Wno-narrowing";
+
+ meta = {
+ description = "Open source panorama viewer using GL";
+ homepage = "http://freepv.sourceforge.net/";
+ license = [ stdenv.lib.licenses.lgpl21 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/fstl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fstl/default.nix
new file mode 100644
index 000000000000..c96ea765d43f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/fstl/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, mkDerivation, qtbase, mesa_glu }:
+
+mkDerivation rec {
+ pname = "fstl";
+ version = "0.9.4";
+
+ buildInputs = [qtbase mesa_glu];
+
+ prePatch = ''
+ sed -i "s|/usr/bin|$out/bin|g" qt/fstl.pro
+ '';
+
+ preBuild = ''
+ qmake qt/fstl.pro
+ '';
+
+ postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+ mkdir -p $out/Applications
+ mv fstl.app $out/Applications
+ '';
+
+ src = fetchFromGitHub {
+ owner = "mkeeter";
+ repo = "fstl";
+ rev = "v" + version;
+ sha256 = "028hzdv11hgvcpc36q5scf4nw1256qswh37xhfn5a0iv7wycmnif";
+ };
+
+ meta = with stdenv.lib; {
+ description = "The fastest STL file viewer";
+ homepage = "https://github.com/mkeeter/fstl";
+ license = licenses.mit;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ tweber ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor2/default.nix
new file mode 100644
index 000000000000..f585a0c5d29c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor2/default.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchurl, gtk2, perlPackages, pkgconfig } :
+
+let version = "0.4"; in
+stdenv.mkDerivation {
+ pname = "gcolor2";
+ inherit version;
+ arch = if stdenv.hostPlatform.system == "x86_64-linux" then "amd64" else "386";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/gcolor2/gcolor2/${version}/gcolor2-${version}.tar.bz2";
+ sha256 = "1siv54vwx9dbfcflklvf7pkp5lk6h3nn63flg6jzifz9wp0c84q6";
+ };
+
+ preConfigure = ''
+ sed -i 's/\[:space:\]/[&]/g' configure
+ '';
+
+ # from https://github.com/PhantomX/slackbuilds/tree/master/gcolor2/patches
+ patches = if stdenv.hostPlatform.system == "x86_64-linux" then
+ [ ./gcolor2-amd64.patch ] else
+ [ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 ]
+ ++ (with perlPackages; [ perl XMLParser ]);
+
+ meta = {
+ description = "Simple GTK 2 color selector";
+ homepage = "http://gcolor2.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ notthemessiah ];
+ platforms = with stdenv.lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch
new file mode 100644
index 000000000000..cd06a8315f98
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch
@@ -0,0 +1,46 @@
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN gcolor2-0.4.orig/src/callbacks.c gcolor2-0.4/src/callbacks.c
+--- gcolor2-0.4.orig/src/callbacks.c 2005-07-12 14:06:12.000000000 -0400
++++ gcolor2-0.4/src/callbacks.c 2007-02-17 19:19:38.000000000 -0500
+@@ -4,6 +4,9 @@
+
+ #include <gtk/gtk.h>
+ #include <stdio.h>
++#include <string.h>
++#include <glib.h>
++#include <glib/gprintf.h>
+
+ #include "callbacks.h"
+ #include "interface.h"
+@@ -172,6 +175,9 @@ void on_copy_color_to_clipboard_activate
+ gtk_clipboard_set_text (cb, hex, strlen (hex));
+ }
+
++void add_rgb_file (gchar *filename, gchar *type);
++gchar* get_system_file (void);
++
+ void on_show_system_colors_activate (GtkMenuItem *menuitem, gpointer user_data)
+ {
+ if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)))
+@@ -266,6 +272,8 @@ void on_save_button_clicked (GtkButton *
+ gtk_widget_destroy (savedialog);
+ }
+
++void add_list_color (gchar *spec, gchar *name, gchar *type, gboolean is_new_color);
++
+ void add_color_to_treeview ()
+ {
+ GtkTreeView *treeview;
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN gcolor2-0.4.orig/src/main.c gcolor2-0.4/src/main.c
+--- gcolor2-0.4.orig/src/main.c 2005-07-11 10:55:49.000000000 -0400
++++ gcolor2-0.4/src/main.c 2007-02-17 19:18:23.000000000 -0500
+@@ -4,6 +4,10 @@
+
+ #include <gtk/gtk.h>
+ #include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <glib.h>
++#include <glib/gprintf.h>
+
+ #include "interface.h"
+ #include "support.h"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
new file mode 100644
index 000000000000..2962825e49b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, gettext
+, pkg-config
+, libxml2
+, gtk3
+, libportal
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gcolor3";
+ version = "2.4.0";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "World";
+ repo = "gcolor3";
+ rev = "v${version}";
+ sha256 = "rHIAjk2m3Lkz11obgNZaapa1Zr2GDH7XzgzuAJmq+MU=";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ gettext
+ pkg-config
+ libxml2 # xml-stripblanks preprocessing of GResource
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ libportal
+ ];
+
+ postPatch = ''
+ chmod +x meson_install.sh # patchShebangs requires executable file
+ patchShebangs meson_install.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple color chooser written in GTK3";
+ homepage = "https://gitlab.gnome.org/World/gcolor3";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/geeqie/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
new file mode 100644
index 000000000000..629abb3321d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, pkgconfig, autoconf, automake, gettext, intltool
+, gtk3, lcms2, exiv2, libchamplain, clutter-gtk, ffmpegthumbnailer, fbida
+, wrapGAppsHook, fetchpatch
+}:
+
+stdenv.mkDerivation rec {
+ pname = "geeqie";
+ version = "1.5.1";
+
+ src = fetchurl {
+ url = "http://geeqie.org/${pname}-${version}.tar.xz";
+ sha256 = "02m1vqaasin249xx792cdj11xyag8lnanwzxd108y7y34g9xam28";
+ };
+
+ patches = [
+ # Do not build the changelog as this requires markdown.
+ (fetchpatch {
+ name = "geeqie-1.4-goodbye-changelog.patch";
+ url = "https://src.fedoraproject.org/rpms/geeqie/raw/132fb04a1a5e74ddb333d2474f7edb9a39dc8d27/f/geeqie-1.4-goodbye-changelog.patch";
+ sha256 = "00a35dds44kjjdqsbbfk0x9y82jspvsbpm2makcm1ivzlhjjgszn";
+ })
+ ];
+
+ preConfigure = "./autogen.sh";
+
+ nativeBuildInputs = [ pkgconfig autoconf automake gettext intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3 lcms2 exiv2 libchamplain clutter-gtk ffmpegthumbnailer fbida
+ ];
+
+ postInstall = ''
+ # Allow geeqie to find exiv2 and exiftran, necessary to
+ # losslessly rotate JPEG images.
+ sed -i $out/lib/geeqie/geeqie-rotate \
+ -e '1 a export PATH=${stdenv.lib.makeBinPath [ exiv2 fbida ]}:$PATH'
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Lightweight GTK based image viewer";
+
+ longDescription =
+ ''
+ Geeqie is a lightweight GTK based image viewer for Unix like
+ operating systems. It features: EXIF, IPTC and XMP metadata
+ browsing and editing interoperability; easy integration with other
+ software; geeqie works on files and directories, there is no need to
+ import images; fast preview for many raw image formats; tools for
+ image comparison, sorting and managing photo collection. Geeqie was
+ initially based on GQview.
+ '';
+
+ license = licenses.gpl2Plus;
+
+ homepage = "http://geeqie.sourceforge.net";
+
+ maintainers = with maintainers; [ jfrankenau pSub markus1189 ];
+ platforms = platforms.gnu ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/default.nix
new file mode 100644
index 000000000000..4ba7cb8eb036
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/default.nix
@@ -0,0 +1,182 @@
+{ stdenv
+, lib
+, fetchurl
+, substituteAll
+, autoreconfHook
+, pkgconfig
+, intltool
+, babl
+, gegl
+, gtk2
+, glib
+, gdk-pixbuf
+, isocodes
+, pango
+, cairo
+, freetype
+, fontconfig
+, lcms
+, libpng
+, libjpeg
+, poppler
+, poppler_data
+, libtiff
+, libmng
+, librsvg
+, libwmf
+, zlib
+, libzip
+, ghostscript
+, aalib
+, shared-mime-info
+, python2
+, libexif
+, gettext
+, makeWrapper
+, xorg
+, glib-networking
+, libmypaint
+, gexiv2
+, harfbuzz
+, mypaint-brushes1
+, libwebp
+, libheif
+, libgudev
+, openexr
+, AppKit
+, Cocoa
+, gtk-mac-integration-gtk2
+}:
+
+let
+ python = python2.withPackages (pp: [ pp.pygtk ]);
+in stdenv.mkDerivation rec {
+ pname = "gimp";
+ version = "2.10.22";
+
+ outputs = [ "out" "dev" ];
+
+ src = fetchurl {
+ url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+ sha256 = "1fqqyshakvdarf1jipk2n33ibqr23ni22z3d8srq13bpydblpf1d";
+ };
+
+ patches = [
+ # to remove compiler from the runtime closure, reference was retained via
+ # gimp --version --verbose output
+ (substituteAll {
+ src = ./remove-cc-reference.patch;
+ cc_version = stdenv.cc.cc.name;
+ })
+
+ # Use absolute paths instead of relying on PATH
+ # to make sure plug-ins are loaded by the correct interpreter.
+ ./hardcode-plugin-interpreters.patch
+ ];
+
+ nativeBuildInputs = [
+ autoreconfHook # hardcode-plugin-interpreters.patch changes Makefile.am
+ pkgconfig
+ intltool
+ gettext
+ makeWrapper
+ ];
+
+ buildInputs = [
+ babl
+ gegl
+ gtk2
+ glib
+ gdk-pixbuf
+ pango
+ cairo
+ gexiv2
+ harfbuzz
+ isocodes
+ freetype
+ fontconfig
+ lcms
+ libpng
+ libjpeg
+ poppler
+ poppler_data
+ libtiff
+ openexr
+ libmng
+ librsvg
+ libwmf
+ zlib
+ libzip
+ ghostscript
+ aalib
+ shared-mime-info
+ libwebp
+ libheif
+ python
+ libexif
+ xorg.libXpm
+ glib-networking
+ libmypaint
+ mypaint-brushes1
+ ] ++ lib.optionals stdenv.isDarwin [
+ AppKit
+ Cocoa
+ gtk-mac-integration-gtk2
+ ] ++ lib.optionals stdenv.isLinux [
+ libgudev
+ ];
+
+ # needed by gimp-2.0.pc
+ propagatedBuildInputs = [
+ gegl
+ ];
+
+ configureFlags = [
+ "--without-webkit" # old version is required
+ "--disable-check-update"
+ "--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
+ "--with-icc-directory=/run/current-system/sw/share/color/icc"
+ # fix libdir in pc files (${exec_prefix} needs to be passed verbatim)
+ "--libdir=\${exec_prefix}/lib"
+ ];
+
+ enableParallelBuilding = true;
+
+ # on Darwin,
+ # test-eevl.c:64:36: error: initializer element is not a compile-time constant
+ doCheck = !stdenv.isDarwin;
+
+ # Check if librsvg was built with --disable-pixbuf-loader.
+ PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = "${librsvg}/${gdk-pixbuf.moduleDir}";
+
+ preConfigure = ''
+ # The check runs before glib-networking is registered
+ export GIO_EXTRA_MODULES="${glib-networking}/lib/gio/modules:$GIO_EXTRA_MODULES"
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/gimp-${lib.versions.majorMinor version} \
+ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
+ '';
+
+ passthru = rec {
+ # The declarations for `gimp-with-plugins` wrapper,
+ # used for determining plug-in installation paths
+ majorVersion = "${lib.versions.major version}.0";
+ targetLibDir = "lib/gimp/${majorVersion}";
+ targetDataDir = "share/gimp/${majorVersion}";
+ targetPluginDir = "${targetLibDir}/plug-ins";
+ targetScriptDir = "${targetDataDir}/scripts";
+
+ # probably its a good idea to use the same gtk in plugins ?
+ gtk = gtk2;
+ };
+
+ meta = with lib; {
+ description = "The GNU Image Manipulation Program";
+ homepage = "https://www.gimp.org/";
+ maintainers = with maintainers; [ jtojnar ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch
new file mode 100644
index 000000000000..1528404c31d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch
@@ -0,0 +1,11 @@
+--- a/plug-ins/pygimp/Makefile.am
++++ b/plug-ins/pygimp/Makefile.am
+@@ -157,7 +157,7 @@ install-interp-file:
+ echo 'python=$(PYBIN_PATH)' > '$(DESTDIR)$(pyinterpfile)'
+ echo 'python2=$(PYBIN_PATH)' >> '$(DESTDIR)$(pyinterpfile)'
+ echo '/usr/bin/python=$(PYBIN_PATH)' >> '$(DESTDIR)$(pyinterpfile)'
+- echo ":Python:E::py::`basename $(PYTHON)`:" >> '$(DESTDIR)$(pyinterpfile)'
++ echo ":Python:E::py::$(PYTHON):" >> '$(DESTDIR)$(pyinterpfile)'
+
+ install-data-local: install-env-file install-interp-file
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
new file mode 100644
index 000000000000..84f5abfce063
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -0,0 +1,219 @@
+# Use `gimp-with-plugins` package for GIMP with all plug-ins.
+# If you just want a subset of plug-ins, you can specify them explicitly:
+# `gimp-with-plugins.override { plugins = with gimpPlugins; [ gap ]; }`.
+
+{ config, lib, pkgs }:
+
+let
+ inherit (pkgs) stdenv fetchurl pkg-config intltool glib fetchFromGitHub;
+in
+
+lib.makeScope pkgs.newScope (self:
+
+let
+ # Use GIMP from the scope.
+ inherit (self) gimp;
+
+ pluginDerivation = attrs: let
+ name = attrs.name or "${attrs.pname}-${attrs.version}";
+ in stdenv.mkDerivation ({
+ prePhases = "extraLib";
+ extraLib = ''
+ installScripts(){
+ mkdir -p $out/${gimp.targetScriptDir}/${name};
+ for p in "$@"; do cp "$p" -r $out/${gimp.targetScriptDir}/${name}; done
+ }
+ installPlugins(){
+ mkdir -p $out/${gimp.targetPluginDir}/${name};
+ for p in "$@"; do cp "$p" -r $out/${gimp.targetPluginDir}/${name}; done
+ }
+ '';
+
+ # Override installation paths.
+ PKG_CONFIG_GIMP_2_0_GIMPLIBDIR = "${placeholder "out"}/${gimp.targetLibDir}";
+ PKG_CONFIG_GIMP_2_0_GIMPDATADIR = "${placeholder "out"}/${gimp.targetDataDir}";
+ }
+ // attrs
+ // {
+ name = "gimp-plugin-${name}";
+ buildInputs = [
+ gimp
+ gimp.gtk
+ glib
+ ] ++ (attrs.buildInputs or []);
+
+ nativeBuildInputs = [
+ pkg-config
+ intltool
+ ] ++ (attrs.nativeBuildInputs or []);
+ }
+ );
+
+ scriptDerivation = {src, ...}@attrs : pluginDerivation ({
+ phases = [ "extraLib" "installPhase" ];
+ installPhase = "installScripts ${src}";
+ } // attrs);
+in
+{
+ # Allow overriding GIMP package in the scope.
+ inherit (pkgs) gimp;
+
+ gap = pluginDerivation {
+ /* menu:
+ Video
+ */
+ name = "gap-2.6.0";
+ src = fetchurl {
+ url = "https://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2";
+ sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql";
+ };
+ NIX_LDFLAGS = "-lm";
+ hardeningDisable = [ "format" ];
+ meta = with stdenv.lib; {
+ description = "The GIMP Animation Package";
+ homepage = "https://www.gimp.org";
+ # The main code is given in GPLv3, but it has ffmpeg in it, and I think ffmpeg license
+ # falls inside "free".
+ license = with licenses; [ gpl3 free ];
+ };
+ };
+
+ fourier = pluginDerivation rec {
+ /* menu:
+ Filters/Generic/FFT Forward
+ Filters/Generic/FFT Inverse
+ */
+ name = "fourier-0.4.3";
+ buildInputs = with pkgs; [ fftw ];
+
+ src = fetchurl {
+ url = "https://www.lprp.fr/files/old-web/soft/gimp/${name}.tar.gz";
+ sha256 = "0mf7f8vaqs2madx832x3kcxw3hv3w3wampvzvaps1mkf2kvrjbsn";
+ };
+
+ installPhase = "installPlugins fourier";
+
+ meta = with stdenv.lib; {
+ description = "GIMP plug-in to do the fourier transform";
+ homepage = "https://people.via.ecp.fr/~remi/soft/gimp/gimp_plugin_en.php3#fourier";
+ license = with licenses; [ gpl3Plus ];
+ };
+ };
+
+ resynthesizer = pluginDerivation rec {
+ /* menu:
+ Edit/Fill with pattern seamless...
+ Filters/Enhance/Heal selection...
+ Filters/Enhance/Heal transparency...
+ Filters/Enhance/Sharpen by synthesis...
+ Filters/Enhance/Uncrop...
+ Filters/Map/Style...
+ Filters/Render/Texture...
+ */
+ pname = "resynthesizer";
+ version = "2.0.3";
+ buildInputs = with pkgs; [ fftw ];
+ nativeBuildInputs = with pkgs; [ autoreconfHook ];
+ makeFlags = [ "GIMP_LIBDIR=${placeholder "out"}/${gimp.targetLibDir}" ];
+ src = fetchFromGitHub {
+ owner = "bootchk";
+ repo = "resynthesizer";
+ rev = "v${version}";
+ sha256 = "1jwc8bhhm21xhrgw56nzbma6fwg59gc8anlmyns7jdiw83y0zx3j";
+ };
+ };
+
+ texturize = pluginDerivation {
+ name = "texturize-2.2.2017-07-28";
+ src = fetchFromGitHub {
+ owner = "lmanul";
+ repo = "gimp-texturize";
+ rev = "de4367f71e40fe6d82387eaee68611a80a87e0e1";
+ sha256 = "1zzvbczly7k456c0y6s92a1i8ph4ywmbvdl8i4rcc29l4qd2z8fw";
+ };
+ installPhase = "installPlugins src/texturize";
+ meta.broken = true; # https://github.com/lmanul/gimp-texturize/issues/1
+ };
+
+ waveletSharpen = pluginDerivation {
+ /* menu:
+ Filters/Enhance/Wavelet sharpen
+ */
+ name = "wavelet-sharpen-0.1.2";
+ NIX_LDFLAGS = "-lm";
+ src = fetchurl {
+ url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz";
+ sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw";
+ };
+ installPhase = "installPlugins src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix?
+ };
+
+ lqrPlugin = pluginDerivation rec {
+ /* menu:
+ Layer/Liquid Rescale
+ */
+ pname = "lqr-plugin";
+ version = "0.7.2";
+ buildInputs = with pkgs; [ liblqr1 ];
+ src = fetchFromGitHub {
+ owner = "carlobaldassi";
+ repo = "gimp-lqr-plugin";
+ rev = "v${version}";
+ sha256 = "81ajdZ2zQi/THxnBlSeT36tVTEzrS1YqLGpHMhFTKAo=";
+ };
+ };
+
+ gmic = pkgs.gmic-qt.override {
+ variant = "gimp";
+ };
+
+ ufraw = pkgs.ufraw.gimpPlugin;
+
+ gimplensfun = pluginDerivation rec {
+ version = "unstable-2018-10-21";
+ name = "gimplensfun-${version}";
+
+ src = fetchFromGitHub {
+ owner = "seebk";
+ repo = "GIMP-Lensfun";
+ rev = "1c5a5c1534b5faf098b7441f8840d22835592f17";
+ sha256 = "1jj3n7spkjc63aipwdqsvq9gi07w13bb1v8iqzvxwzld2kxa3c8w";
+ };
+
+ buildInputs = with pkgs; [ lensfun gexiv2 ];
+
+ installPhase = "
+ installPlugins gimp-lensfun
+ ";
+
+ meta = {
+ description = "GIMP plugin to correct lens distortion using the lensfun library and database";
+
+ homepage = "http://lensfun.sebastiankraft.net/";
+
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+ };
+ };
+
+ /* =============== simple script files ==================== */
+
+ # also have a look at enblend-enfuse in all-packages.nix
+ exposureBlend = scriptDerivation {
+ name = "exposure-blend";
+ src = fetchurl {
+ url = "http://tir.astro.utoledo.edu/jdsmith/code/eb/exposure-blend.scm";
+ sha256 = "1b6c9wzpklqras4wwsyw3y3jp6fjmhnnskqiwm5sabs8djknfxla";
+ };
+ meta.broken = true;
+ };
+
+ lightning = scriptDerivation {
+ name = "Lightning";
+ src = fetchurl {
+ url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/Lightning.scm";
+ sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49";
+ };
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/plugins/patches/focusblur-glib.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/plugins/patches/focusblur-glib.patch
new file mode 100644
index 000000000000..b1079ab36604
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/plugins/patches/focusblur-glib.patch
@@ -0,0 +1,200 @@
+ls diff --git focusblur-3.2.6/src/aaa.h focusblur-3.2.6/src/aaa.h
+index 4a6d90b..c74cab2 100644
+--- focusblur-3.2.6/src/aaa.h
++++ focusblur-3.2.6/src/aaa.h
+@@ -19,8 +19,7 @@
+ #ifndef __AAA_H__
+ #define __AAA_H__
+
+-#include <glib/gmacros.h>
+-#include <glib/gtypes.h>
++#include <glib.h>
+
+
+ G_BEGIN_DECLS
+diff --git focusblur-3.2.6/src/brush.h focusblur-3.2.6/src/brush.h
+index 685b253..8778fec 100644
+--- focusblur-3.2.6/src/brush.h
++++ focusblur-3.2.6/src/brush.h
+@@ -22,7 +22,7 @@
+ #ifndef __FOCUSBLUR_BRUSH_H__
+ #define __FOCUSBLUR_BRUSH_H__
+
+-#include <glib/gtypes.h>
++#include <glib.h>
+ #include "focusblurtypes.h"
+
+ G_BEGIN_DECLS
+diff --git focusblur-3.2.6/src/depthmap.h focusblur-3.2.6/src/depthmap.h
+index 78f5e99..baee540 100644
+--- focusblur-3.2.6/src/depthmap.h
++++ focusblur-3.2.6/src/depthmap.h
+@@ -22,7 +22,7 @@
+ #ifndef __FOCUSBLUR_DEPTHMAP_H__
+ #define __FOCUSBLUR_DEPTHMAP_H__
+
+-#include <glib/gtypes.h>
++#include <glib.h>
+
+ #include "focusblurtypes.h"
+ #include "focusblurenums.h"
+diff --git focusblur-3.2.6/src/diffusion.h focusblur-3.2.6/src/diffusion.h
+index 07ffe4b..3c1e4b9 100644
+--- focusblur-3.2.6/src/diffusion.h
++++ focusblur-3.2.6/src/diffusion.h
+@@ -23,7 +23,7 @@
+ #define __FOCUSBLUR_DIFFUSION_H__
+
+
+-#include <glib/gtypes.h>
++#include <glib.h>
+
+ #include "focusblur.h"
+ #include "focusblurtypes.h"
+diff --git focusblur-3.2.6/src/fftblur.h focusblur-3.2.6/src/fftblur.h
+index 124bcba..cd809fa 100644
+--- focusblur-3.2.6/src/fftblur.h
++++ focusblur-3.2.6/src/fftblur.h
+@@ -23,8 +23,7 @@
+ #define __FOCUSBLUR_FFTBLUR_H__
+
+
+-#include <glib/gmacros.h>
+-#include <glib/gtypes.h>
++#include <glib.h>
+ #include <libgimpwidgets/gimpwidgetstypes.h>
+
+ #include "focusblurparam.h"
+diff --git focusblur-3.2.6/src/fftblurbuffer.h focusblur-3.2.6/src/fftblurbuffer.h
+index b34d682..42e6380 100644
+--- focusblur-3.2.6/src/fftblurbuffer.h
++++ focusblur-3.2.6/src/fftblurbuffer.h
+@@ -28,8 +28,7 @@
+ #endif
+ #include <fftw3.h>
+
+-#include <glib/gmacros.h>
+-#include <glib/gtypes.h>
++#include <glib.h>
+ #include <gtk/gtkstyle.h>
+ #include <libgimp/gimptypes.h>
+ #include <libgimpwidgets/gimpwidgetstypes.h>
+diff --git focusblur-3.2.6/src/fftblurproc.h focusblur-3.2.6/src/fftblurproc.h
+index 495572d..10a34f4 100644
+--- focusblur-3.2.6/src/fftblurproc.h
++++ focusblur-3.2.6/src/fftblurproc.h
+@@ -23,8 +23,7 @@
+ #define __FOCUSBLUR_FFTBLUR_PROC_H__
+
+
+-#include <glib/gmacros.h>
+-#include <glib/gtypes.h>
++#include <glib.h>
+
+ #include "focusblurtypes.h"
+
+diff --git focusblur-3.2.6/src/focusblur.h focusblur-3.2.6/src/focusblur.h
+index 54ca40a..d7e13a6 100644
+--- focusblur-3.2.6/src/focusblur.h
++++ focusblur-3.2.6/src/focusblur.h
+@@ -22,7 +22,7 @@
+ #ifndef __FOCUSBLUR_H__
+ #define __FOCUSBLUR_H__
+
+-#include <glib/gmacros.h>
++#include <glib.h>
+
+ G_BEGIN_DECLS
+
+diff --git focusblur-3.2.6/src/focusblurparam.h focusblur-3.2.6/src/focusblurparam.h
+index 64c887b..32865b4 100644
+--- focusblur-3.2.6/src/focusblurparam.h
++++ focusblur-3.2.6/src/focusblurparam.h
+@@ -22,8 +22,7 @@
+ #ifndef __FOCUSBLUR_PARAM_H__
+ #define __FOCUSBLUR_PARAM_H__
+
+-#include <glib/gmacros.h>
+-#include <glib/gtypes.h>
++#include <glib.h>
+ #include <gtk/gtkstyle.h>
+ #include <libgimp/gimptypes.h>
+
+diff --git focusblur-3.2.6/src/focusblurstock.h focusblur-3.2.6/src/focusblurstock.h
+index 15f3603..cfc0567 100644
+--- focusblur-3.2.6/src/focusblurstock.h
++++ focusblur-3.2.6/src/focusblurstock.h
+@@ -22,7 +22,7 @@
+ #ifndef __FOCUSBLUR_STOCK_H__
+ #define __FOCUSBLUR_STOCK_H__
+
+-#include <glib/gtypes.h>
++#include <glib.h>
+
+ G_BEGIN_DECLS
+
+diff --git focusblur-3.2.6/src/focusblurtypes.h focusblur-3.2.6/src/focusblurtypes.h
+index 0954c60..1531c84 100644
+--- focusblur-3.2.6/src/focusblurtypes.h
++++ focusblur-3.2.6/src/focusblurtypes.h
+@@ -22,7 +22,7 @@
+ #ifndef __FOCUSBLUR_TYPES_H__
+ #define __FOCUSBLUR_TYPES_H__
+
+-#include <glib/gmacros.h>
++#include <glib.h>
+
+
+ G_BEGIN_DECLS
+diff --git focusblur-3.2.6/src/interface.h focusblur-3.2.6/src/interface.h
+index 6defd27..e819c60 100644
+--- focusblur-3.2.6/src/interface.h
++++ focusblur-3.2.6/src/interface.h
+@@ -22,7 +22,7 @@
+ #ifndef __FOCUSBLUR_INTERFACE_H__
+ #define __FOCUSBLUR_INTERFACE_H__
+
+-#include <glib/gtypes.h>
++#include <glib.h>
+
+ #include "focusblurtypes.h"
+
+diff --git focusblur-3.2.6/src/render.h focusblur-3.2.6/src/render.h
+index febbd24..a501f1e 100644
+--- focusblur-3.2.6/src/render.h
++++ focusblur-3.2.6/src/render.h
+@@ -24,7 +24,7 @@
+
+ #include "config.h"
+
+-#include <glib/gtypes.h>
++#include <glib.h>
+ //#include <libgimp/gimp.h>
+ #include <libgimp/gimpui.h>
+
+diff --git focusblur-3.2.6/src/shine.h focusblur-3.2.6/src/shine.h
+index c5a3621..86b4c09 100644
+--- focusblur-3.2.6/src/shine.h
++++ focusblur-3.2.6/src/shine.h
+@@ -22,7 +22,7 @@
+ #ifndef __FOCUSBLUR_SHINE_H__
+ #define __FOCUSBLUR_SHINE_H__
+
+-#include <glib/gtypes.h>
++#include <glib.h>
+ #include <libgimp/gimptypes.h>
+
+ #include "focusblurtypes.h"
+diff --git focusblur-3.2.6/src/source.h focusblur-3.2.6/src/source.h
+index 50d34ca..8eec35c 100644
+--- focusblur-3.2.6/src/source.h
++++ focusblur-3.2.6/src/source.h
+@@ -24,7 +24,7 @@
+
+ #include "config.h"
+
+-#include <glib/gtypes.h>
++#include <glib.h>
+ #include <libgimp/gimptypes.h>
+
+ #include "focusblurtypes.h"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/remove-cc-reference.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/remove-cc-reference.patch
new file mode 100644
index 000000000000..20c350bdaea1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/remove-cc-reference.patch
@@ -0,0 +1,13 @@
+diff --git a/app/gimp-version.c b/app/gimp-version.c
+index 3d1894a036..48bb670b64 100644
+--- a/app/gimp-version.c
++++ b/app/gimp-version.c
+@@ -230,7 +230,7 @@ gimp_version (gboolean be_verbose,
+ GIMP_BUILD_ID,
+ gimp_version_get_revision (),
+ GIMP_BUILD_PLATFORM_FAMILY,
+- CC_VERSION,
++ "@cc_version@",
+ lib_versions);
+ g_free (lib_versions);
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
new file mode 100644
index 000000000000..7e8ce913f022
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, symlinkJoin, gimp, makeWrapper, gimpPlugins, gnome3, plugins ? null}:
+
+let
+allPlugins = lib.filter (pkg: lib.isDerivation pkg && !pkg.meta.broken or false) (lib.attrValues gimpPlugins);
+selectedPlugins = lib.filter (pkg: pkg != gimpPlugins.gimp) (if plugins == null then allPlugins else plugins);
+extraArgs = map (x: x.wrapArgs or "") selectedPlugins;
+versionBranch = stdenv.lib.versions.majorMinor gimp.version;
+
+in symlinkJoin {
+ name = "gimp-with-plugins-${gimp.version}";
+
+ paths = [ gimp ] ++ selectedPlugins;
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ for each in gimp-${versionBranch} gimp-console-${versionBranch}; do
+ wrapProgram $out/bin/$each \
+ --set GIMP2_PLUGINDIR "$out/lib/gimp/2.0" \
+ --set GIMP2_DATADIR "$out/share/gimp/2.0" \
+ --prefix GTK_PATH : "${gnome3.gnome-themes-extra}/lib/gtk-2.0" \
+ ${toString extraArgs}
+ done
+ set +x
+ for each in gimp gimp-console; do
+ ln -sf "$each-${versionBranch}" $out/bin/$each
+ done
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/glabels/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/glabels/default.nix
new file mode 100644
index 000000000000..be487fcb8a6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/glabels/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, barcode, gnome3, autoreconfHook
+, gtk3, gtk-doc, libxml2, librsvg , libtool, libe-book, gsettings-desktop-schemas
+, intltool, itstool, makeWrapper, pkgconfig, yelp-tools
+}:
+
+stdenv.mkDerivation rec {
+ pname = "glabels";
+ version = "3.4.1";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig makeWrapper intltool ];
+ buildInputs = [
+ barcode gtk3 gtk-doc yelp-tools
+ gnome3.gnome-common gsettings-desktop-schemas
+ itstool libxml2 librsvg libe-book libtool
+ ];
+
+ preFixup = ''
+ wrapProgram "$out/bin/glabels-3" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+ '';
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ versionPolicy = "none";
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Create labels and business cards";
+ homepage = "https://glabels.org/";
+ license = with licenses; [ gpl3Plus lgpl3Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.nico202 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
new file mode 100644
index 000000000000..0d4b06c8c6d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
@@ -0,0 +1,141 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, at-spi2-core
+, babl
+, dbus
+, desktop-file-utils
+, dleyna-renderer
+, gdk-pixbuf
+, gegl
+, geocode-glib
+, gettext
+, gexiv2
+, gfbgraph
+, glib
+, gnome-online-accounts
+, gnome3
+, gobject-introspection
+, grilo
+, grilo-plugins
+, gsettings-desktop-schemas
+, gtk3
+, itstool
+, libdazzle
+, libgdata
+, libxml2
+, meson
+, ninja
+, nixosTests
+, pkgconfig
+, python3
+, tracker
+, tracker-miners
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-photos";
+ version = "3.38.0";
+
+ outputs = [ "out" "installedTests" ];
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1i64w69kk3sdf9vn7npnwrhy8qjwn0vizq200x3pgmbrfm3kjzv6";
+ };
+
+ patches = [
+ ./installed-tests-path.patch
+
+ # Port to Tracker 3
+ # https://gitlab.gnome.org/GNOME/gnome-photos/-/merge_requests/135
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/f39a85bb1a82093f4ba615494ff7e95609674fc2.patch";
+ sha256 = "M5r5WuB1JpUBVN3KxNvpMiPWj0pIpT+ImQMOiGtUgT4=";
+ })
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/3d847ff80d429cadf0bc59aa50caa37bf27c0201.patch";
+ sha256 = "zGjSL1qpWVJ/5Ifgh2CbhFSBR/WDAra8F+YUOemyxyU=";
+ })
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/2eb923726147b05c936dee64b205d833525db1df.patch";
+ sha256 = "vCA6NXHzmNf2GoLqzWwIyziC6puJgJ0QTLeKWsAEFAE=";
+ })
+ ];
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ gettext
+ gobject-introspection # for setup hook
+ glib # for setup hook
+ itstool
+ libxml2
+ meson
+ ninja
+ pkgconfig
+ (python3.withPackages (pkgs: with pkgs; [
+ dogtail
+ pygobject3
+ pyatspi
+ ]))
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ babl
+ dbus
+ dleyna-renderer
+ gdk-pixbuf
+ gegl
+ geocode-glib
+ gexiv2
+ gfbgraph
+ glib
+ gnome-online-accounts
+ gnome3.adwaita-icon-theme
+ grilo
+ grilo-plugins
+ gsettings-desktop-schemas
+ gtk3
+ libdazzle
+ libgdata
+ tracker
+ tracker-miners # For 'org.freedesktop.Tracker.Miner.Files' GSettings schema
+
+ at-spi2-core # for tests
+ ];
+
+ mesonFlags = [
+ "-Dinstalled_tests=true"
+ "-Dinstalled_test_prefix=${placeholder "installedTests"}"
+ ];
+
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ patchShebangs tests/basic.py
+ '';
+
+ postFixup = ''
+ wrapGApp "${placeholder "installedTests"}/libexec/installed-tests/gnome-photos/basic.py"
+ '';
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+
+ tests = {
+ installed-tests = nixosTests.installed-tests.gnome-photos;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Access, organize and share your photos";
+ homepage = "https://wiki.gnome.org/Apps/Photos";
+ license = licenses.gpl3Plus;
+ maintainers = teams.gnome.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch
new file mode 100644
index 000000000000..218108328dd8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch
@@ -0,0 +1,23 @@
+diff --git a/meson.build b/meson.build
+index dee932dc..f8851913 100644
+--- a/meson.build
++++ b/meson.build
+@@ -16,8 +16,8 @@
+ photos_docdir = join_paths(photos_datadir, 'doc', meson.project_name())
+ photos_libdir = join_paths(photos_prefix, get_option('libdir'), meson.project_name())
+
+-photos_installed_test_metadir = join_paths(photos_datadir, 'installed-tests', meson.project_name())
+-photos_installed_test_execdir = join_paths(photos_libexecdir, 'installed-tests', meson.project_name())
++photos_installed_test_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', meson.project_name())
++photos_installed_test_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', meson.project_name())
+
+ photos_namespace = 'org.gnome.Photos'
+
+diff --git a/meson_options.txt b/meson_options.txt
+index f34b5cc0..8e09970b 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,2 +1,3 @@
+ option('dogtail', type: 'boolean', value: true, description: 'test using dogtail')
+ option('installed_tests', type: 'boolean', value: false, description: 'Enable installation of some test cases')
++option('installed_test_prefix', type: 'string', value: '', description: 'Prefix for installed tests')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix
new file mode 100644
index 000000000000..c36d576cc8e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchurl, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnuclad";
+ version = "0.2.4";
+
+ src = fetchurl {
+ url = "https://launchpad.net/gnuclad/trunk/${lib.versions.majorMinor version}/+download/${pname}-${version}.tar.gz";
+ sha256 = "0ka2kscpjff7gflsargv3r9fdaxhkf3nym9mfaln3pnq6q7fwdki";
+ };
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=catch-value";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://launchpad.net/gnuclad";
+ description = "gnuclad tries to help the environment by creating trees. Its primary use will be generating cladogram trees for the GNU/Linux distro timeline project";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ mog ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gocr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gocr/default.nix
new file mode 100644
index 000000000000..7c586374ec51
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gocr/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, tk }:
+
+stdenv.mkDerivation rec {
+ name = "gocr-0.52";
+
+ src = fetchurl {
+ url = "https://www-e.uni-magdeburg.de/jschulen/ocr/${name}.tar.gz";
+ sha256 = "11l6gds1lrm8lwrrsxnm5fjlwz8q1xbh896cprrl4psz21in946z";
+ };
+
+ buildFlags = [ "all" "libs" ];
+ installFlags = [ "libdir=/lib/" ]; # Specify libdir so Makefile will also install library.
+
+ preInstall = "mkdir -p $out/lib";
+
+ postInstall = ''
+ for i in pgm2asc.h gocr.h; do
+ install -D -m644 src/$i $out/include/gocr/$i
+ done
+ '';
+
+ preFixup = ''
+ sed -i -e 's|exec wish|exec ${tk}/bin/wish|' $out/bin/gocr.tcl
+ '';
+
+ meta = {
+ homepage = "http://jocr.sourceforge.net/";
+ description = "GPL Optical Character Recognition";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/goxel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/goxel/default.nix
new file mode 100644
index 000000000000..40d0f4a3db8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/goxel/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, scons, pkgconfig, wrapGAppsHook
+, glfw3, gtk3, libpng12 }:
+
+stdenv.mkDerivation rec {
+ pname = "goxel";
+ version = "0.10.6";
+
+ src = fetchFromGitHub {
+ owner = "guillaumechereau";
+ repo = "goxel";
+ rev = "v${version}";
+ sha256 = "1wmxy5wfk1xrqgz0y0zcr4vkddylqc70cv4vzk117x6whjnldsm3";
+ };
+
+ patches = [ ./disable-imgui_ini.patch ];
+
+ nativeBuildInputs = [ scons pkgconfig wrapGAppsHook ];
+ buildInputs = [ glfw3 gtk3 libpng12 ];
+ NIX_LDFLAGS = "-lpthread";
+
+ buildPhase = ''
+ make release
+ '';
+
+ installPhase = ''
+ install -D ./goxel $out/bin/goxel
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Open Source 3D voxel editor";
+ homepage = "https://guillaumechereau.github.io/goxel/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ tilpner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/goxel/disable-imgui_ini.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/goxel/disable-imgui_ini.patch
new file mode 100644
index 000000000000..9427d45487d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/goxel/disable-imgui_ini.patch
@@ -0,0 +1,13 @@
+diff --git a/src/gui.cpp b/src/gui.cpp
+index 9b7236c..a8a11b2 100644
+--- a/src/gui.cpp
++++ b/src/gui.cpp
+@@ -314,6 +314,8 @@ static void init_ImGui(const inputs_t *inputs)
+ ImGuiIO& io = ImGui::GetIO();
+ io.DeltaTime = 1.0f/60.0f;
+
++ io.IniFilename = NULL;
++
+ io.KeyMap[ImGuiKey_Tab] = KEY_TAB;
+ io.KeyMap[ImGuiKey_LeftArrow] = KEY_LEFT;
+ io.KeyMap[ImGuiKey_RightArrow] = KEY_RIGHT;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gpicview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gpicview/default.nix
new file mode 100644
index 000000000000..9e3ab37c3223
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gpicview/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gtk2, fetchpatch }:
+
+stdenv.mkDerivation {
+ name = "gpicview-0.2.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/lxde/gpicview-0.2.4.tar.gz";
+ sha256 = "1svcy1c8bgk0pl12yhyv16h2fl52x5vzzcv57z6qdcv5czgvgglr";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/nonas/debian-clang/master/buildlogs/gpicview/gpicview-0.2.4/debian/patches/clang_FTBFS_Wreturn-type.patch";
+ sha256 = "02dm966bplnv10knpdx7rlpjipk884156ggd9ij05zhza0jl8xcs";
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A simple and fast image viewer for X";
+ homepage = "http://lxde.sourceforge.net/gpicview/";
+ repositories.git = "git://lxde.git.sourceforge.net/gitroot/lxde/gpicview";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ lovek323 ];
+ platforms = platforms.unix;
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ intltool gtk2 ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gqview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gqview/default.nix
new file mode 100644
index 000000000000..965ac5db6821
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gqview/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, pkgconfig, gtk2, libpng}:
+
+assert pkgconfig != null && gtk2 != null && libpng != null;
+# Note that we cannot just copy gtk's png attribute, since gtk might
+# not be linked against png.
+# !!! assert libpng == gtk2.libpng;
+
+stdenv.mkDerivation {
+ name = "gqview-2.1.5";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gqview/gqview-2.1.5.tar.gz";
+ sha256 = "0ilm5s7ps9kg4f5hzgjhg0xhn6zg0v9i7jnd67zrx9h7wsaa9zhj";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 libpng];
+
+ hardeningDisable = [ "format" ];
+
+ NIX_LDFLAGS = "-lm";
+
+ meta = with stdenv.lib; {
+ description = "A fast image viewer";
+ homepage = "http://gqview.sourceforge.net";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/grafx2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/grafx2/default.nix
new file mode 100644
index 000000000000..2a2a6a675989
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/grafx2/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, SDL, SDL_image, SDL_ttf, zlib, libpng, pkgconfig, lua5 }:
+
+stdenv.mkDerivation rec {
+
+ version = "2.4.2035";
+ pname = "grafx2";
+
+ src = fetchurl {
+ url = "https://grafx2.googlecode.com/files/${pname}-${version}-src.tgz";
+ sha256 = "0svsy6rqmdj11b400c242i2ixihyz0hds0dgicqz6g6dcgmcl62q";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ SDL SDL_image SDL_ttf libpng zlib lua5 ];
+
+ preBuild = "cd src";
+
+ preInstall = '' mkdir -p "$out" '';
+
+ installPhase = ''make install prefix="$out"'';
+
+ meta = {
+ description = "Bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance";
+ homepage = "http://pulkomandy.tk/projects/GrafX2";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = [ stdenv.lib.maintainers.zoomulator ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/compat.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/compat.nix
new file mode 100644
index 000000000000..9517aa78ee46
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/compat.nix
@@ -0,0 +1,37 @@
+{ stdenv, graphicsmagick }:
+
+stdenv.mkDerivation {
+ pname = "graphicsmagick-imagemagick-compat";
+ inherit (graphicsmagick) version;
+
+ dontUnpack = true;
+ buildPhase = "true";
+
+ utils = [
+ "composite"
+ "conjure"
+ "convert"
+ "identify"
+ "mogrify"
+ "montage"
+ "animate"
+ "display"
+ "import"
+ ];
+
+ # TODO: symlink libraries?
+ installPhase = ''
+ mkdir -p "$out"/bin
+ mkdir -p "$out"/share/man/man1
+ for util in ''${utils[@]}; do
+ ln -s ${graphicsmagick}/bin/gm "$out/bin/$util"
+ ln -s ${graphicsmagick}/share/man/man1/gm.1.gz "$out/share/man/man1/$util.1.gz"
+ done
+ '';
+
+ meta = {
+ description = "ImageMagick interface for GraphicsMagick";
+ license = stdenv.lib.licenses.free;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
new file mode 100644
index 000000000000..b8b21e71c930
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, bzip2, freetype, graphviz, ghostscript
+, libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz, libX11
+, libwebp, quantumdepth ? 8, fixDarwinDylibNames }:
+
+stdenv.mkDerivation rec {
+ pname = "graphicsmagick";
+ version = "1.3.35";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
+ sha256 = "0l024l4hawm9s3jqrgi2j0lxgm61dqh8sgkj1017ma7y11hqv2hq";
+ };
+
+ patches = [
+ ./disable-popen.patch
+ ];
+
+ configureFlags = [
+ "--enable-shared"
+ "--with-quantum-depth=${toString quantumdepth}"
+ "--with-gslib=yes"
+ ];
+
+ buildInputs =
+ [ bzip2 freetype ghostscript graphviz libjpeg libpng libtiff libX11 libxml2
+ zlib libtool libwebp
+ ];
+
+ nativeBuildInputs = [ xz ]
+ ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+
+ postInstall = ''
+ sed -i 's/-ltiff.*'\'/\'/ $out/bin/*
+ '';
+
+ meta = {
+ homepage = "http://www.graphicsmagick.org";
+ description = "Swiss army knife of image processing";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/disable-popen.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/disable-popen.patch
new file mode 100644
index 000000000000..2cdb1f7e90f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/graphicsmagick/disable-popen.patch
@@ -0,0 +1,12 @@
+http://permalink.gmane.org/gmane.comp.security.oss.general/19669
+
+--- a/magick/blob.c Sat Nov 07 14:49:16 2015 -0600
++++ b/magick/blob.c Sun May 29 14:12:57 2016 -0500
+@@ -68,6 +68,7 @@
+ */
+ #define DefaultBlobQuantum 65541
+
++#undef HAVE_POPEN
+
+ /*
+ Enum declarations.
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
new file mode 100644
index 000000000000..5125df7b7dae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -0,0 +1,109 @@
+{ stdenv, fetchurl, perlPackages, wrapGAppsHook,
+ # libs
+ librsvg, sane-backends, sane-frontends,
+ # runtime dependencies
+ imagemagick, libtiff, djvulibre, poppler_utils, ghostscript, unpaper, pdftk,
+ # test dependencies
+ xvfb_run, liberation_ttf, file, tesseract }:
+
+with stdenv.lib;
+
+perlPackages.buildPerlPackage rec {
+ pname = "gscan2pdf";
+ version = "2.9.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
+ sha256 = "1ls6n1a8vjgwkb40drpc3rapjligaf9fp218539fnwvhv26div69";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+
+ buildInputs =
+ [ librsvg sane-backends sane-frontends ] ++
+ (with perlPackages; [
+ Gtk3
+ Gtk3SimpleList
+ Cairo
+ CairoGObject
+ Glib
+ GlibObjectIntrospection
+ GooCanvas2
+ LocaleCodes
+ LocaleGettext
+ PDFAPI2
+ ImageSane
+ SetIntSpan
+ PerlMagick
+ ConfigGeneral
+ ListMoreUtils
+ HTMLParser
+ ProcProcessTable
+ LogLog4perl
+ TryTiny
+ DataUUID
+ DateCalc
+ IOString
+ FilesysDf
+ SubOverride
+ ]);
+
+ postPatch = let
+ fontSubstitute = "${liberation_ttf}/share/fonts/truetype/LiberationSans-Regular.ttf";
+ in ''
+ # Required for the program to properly load its SVG assets
+ substituteInPlace bin/gscan2pdf \
+ --replace "/usr/share" "$out/share"
+
+ # Substitute the non-free Helvetica font in the tests
+ sed -i 's|-pointsize|-font ${fontSubstitute} -pointsize|g' t/*.t
+ '';
+
+ postInstall = ''
+ # Remove impurity
+ find $out -type f -name "*.pod" -delete
+
+ # Add runtime dependencies
+ wrapProgram "$out/bin/gscan2pdf" \
+ --prefix PATH : "${sane-backends}/bin" \
+ --prefix PATH : "${imagemagick}/bin" \
+ --prefix PATH : "${libtiff}/bin" \
+ --prefix PATH : "${djvulibre}/bin" \
+ --prefix PATH : "${poppler_utils}/bin" \
+ --prefix PATH : "${ghostscript}/bin" \
+ --prefix PATH : "${unpaper}/bin" \
+ --prefix PATH : "${pdftk}/bin"
+ '';
+
+ enableParallelBuilding = true;
+
+ installTargets = [ "install" ];
+
+ outputs = [ "out" "man" ];
+
+ checkInputs = [
+ imagemagick
+ libtiff
+ djvulibre
+ poppler_utils
+ ghostscript
+ unpaper
+ pdftk
+
+ xvfb_run
+ file
+ tesseract # tests are expecting tesseract 3.x precisely
+ ];
+
+ checkPhase = ''
+ xvfb-run -s '-screen 0 800x600x24' \
+ make test
+ '';
+
+ meta = {
+ description = "A GUI to produce PDFs or DjVus from scanned documents";
+ homepage = "http://gscan2pdf.sourceforge.net/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ pacien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/gthumb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
new file mode 100644
index 000000000000..7dbe03d9f281
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
@@ -0,0 +1,111 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, gnome3
+, pkgconfig
+, meson
+, ninja
+, exiv2
+, libjpeg
+, libtiff
+, gst_all_1
+, libraw
+, libsoup
+, libsecret
+, glib
+, gtk3
+, gsettings-desktop-schemas
+, libchamplain
+, librsvg
+, libwebp
+, json-glib
+, webkitgtk
+, lcms2
+, bison
+, flex
+, clutter-gtk
+, wrapGAppsHook
+, shared-mime-info
+, python3
+, desktop-file-utils
+, itstool
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gthumb";
+ version = "3.10.1";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0gm7q6n9lnjsdqpx5b0cqjayhzwnplqb6p5pshzhbfp2zqd2g9ss";
+ };
+
+ nativeBuildInputs = [
+ bison
+ desktop-file-utils
+ flex
+ itstool
+ meson
+ ninja
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ clutter-gtk
+ exiv2
+ glib
+ gnome3.adwaita-icon-theme
+ gsettings-desktop-schemas
+ gst_all_1.gst-plugins-base
+ (gst_all_1.gst-plugins-good.override { gtkSupport = true; })
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-bad
+ gst_all_1.gst-plugins-ugly
+ gtk3
+ json-glib
+ lcms2
+ libchamplain
+ libjpeg
+ libraw
+ librsvg
+ libsecret
+ libsoup
+ libtiff
+ libwebp
+ webkitgtk
+ ];
+
+ mesonFlags = [
+ "-Dlibchamplain=true"
+ ];
+
+ postPatch = ''
+ chmod +x gthumb/make-gthumb-h.py
+
+ patchShebangs data/gschemas/make-enums.py \
+ gthumb/make-gthumb-h.py \
+ po/make-potfiles-in.py \
+ postinstall.py \
+ gthumb/make-authors-tab.py
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
+ '';
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/Apps/Gthumb";
+ description = "Image browser and viewer for GNOME";
+ platforms = platforms.linux;
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.mimame ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/guetzli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/guetzli/default.nix
new file mode 100644
index 000000000000..ccddf907e94c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/guetzli/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, libpng, fetchFromGitHub, pkgconfig }:
+let
+ version = "1.0.1";
+in
+stdenv.mkDerivation {
+ pname = "guetzli";
+ inherit version;
+ src = fetchFromGitHub {
+ owner = "google";
+ repo = "guetzli";
+ rev = "v${version}";
+ sha256 = "1wy9wfvyradp0aigfv8yijvj0dgb5kpq2yf2xki15f605jc1r5dm";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libpng ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ install bin/Release/guetzli $out/bin/
+ '';
+
+ meta = {
+ description = "Perceptual JPEG encoder";
+ longDescription = "Guetzli is a JPEG encoder that aims for excellent compression density at high visual quality.";
+ homepage = "https://github.com/google/guetzli";
+ license = stdenv.lib.licenses.asl20;
+ platforms = stdenv.lib.platforms.x86_64;
+ maintainers = [ stdenv.lib.maintainers.seppeljordan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/hugin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/hugin/default.nix
new file mode 100644
index 000000000000..7314ff893b00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/hugin/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, cmake, fetchurl, gnumake, makeWrapper, pkgconfig, fetchpatch
+, autopanosiftc, boost, cairo, enblend-enfuse, exiv2, fftw, flann, gettext
+, glew, ilmbase, lcms2, lensfun, libjpeg, libpng, libtiff, libX11, libXi
+, libXmu, libGLU, libGL, openexr, panotools, perlPackages, sqlite, vigra, wxGTK, zlib
+}:
+
+stdenv.mkDerivation rec {
+ name = "hugin-2019.0.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/hugin/${name}.tar.bz2";
+ sha256 = "1l925qslp98gg7yzmgps10h6dq0nb60wbfk345anlxsv0g2ifizr";
+ };
+
+ patches = [
+ # Fixes build with exiv2 0.27.1
+ (fetchpatch {
+ url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/hugin-exiv2-0.27.1.patch?h=packages/hugin";
+ sha256 = "1yxvlpvrhyrfd2w6kwx1w3mncsvlzdhp0w7xchy8q6kc2kd5nf7r";
+ })
+ ];
+
+ buildInputs = [
+ boost cairo exiv2 fftw flann gettext glew ilmbase lcms2 lensfun libjpeg
+ libpng libtiff libX11 libXi libXmu libGLU libGL openexr panotools sqlite vigra
+ wxGTK zlib
+ ];
+
+ nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
+
+ # disable installation of the python scripting interface
+ cmakeFlags = [ "-DBUILD_HSI:BOOl=OFF" ];
+
+ enableParallelBuilding = true;
+
+ NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
+
+ postInstall = ''
+ for p in $out/bin/*; do
+ wrapProgram "$p" \
+ --suffix PATH : ${autopanosiftc}/bin \
+ --suffix PATH : ${enblend-enfuse}/bin \
+ --suffix PATH : ${gnumake}/bin \
+ --suffix PATH : ${perlPackages.ImageExifTool}/bin
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://hugin.sourceforge.net/";
+ description = "Toolkit for stitching photographs and assembling panoramas, together with an easy to use graphical front end";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ hrdinka ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/hydrus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
new file mode 100644
index 000000000000..8e9998dde393
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
@@ -0,0 +1,112 @@
+{ stdenv
+, fetchFromGitHub
+, lzma
+, qt5
+, wrapQtAppsHook
+, miniupnpc_2
+, swftools
+, pythonPackages
+}:
+
+pythonPackages.buildPythonPackage {
+ pname = "hydrus";
+ version = "420";
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "hydrusnetwork";
+ repo = "hydrus";
+ rev = "067c4862a0ed8dd9264b464c69975b520139809f";
+ sha256 = "12x0rv2yxsczdaxvpb5ggf4jwzjd1vd7ml0r61s4342zwvjrhji9";
+ };
+
+ nativeBuildInputs = [
+ wrapQtAppsHook
+ ];
+
+ propagatedBuildInputs = with pythonPackages; [
+ beautifulsoup4
+ html5lib
+ lxml
+ numpy
+ opencv4
+ pillow
+ psutil
+ pyopenssl
+ pyyaml
+ requests
+ send2trash
+ service-identity
+ twisted
+ lz4
+ lzma
+ pysocks
+ matplotlib
+ qtpy
+ pyside2
+ ];
+
+ checkInputs = with pythonPackages; [ nose httmock ];
+
+ # most tests are failing, presumably because we are not using test.py
+ checkPhase = ''
+ nosetests $src/hydrus/test \
+ -e TestClientAPI \
+ -e TestClientConstants \
+ -e TestClientDaemons \
+ -e TestClientData \
+ -e TestClientDB \
+ -e TestClientDBDuplicates \
+ -e TestClientDBTags \
+ -e TestClientImageHandling \
+ -e TestClientImportOptions \
+ -e TestClientListBoxes \
+ -e TestClientMigration \
+ -e TestClientNetworking \
+ -e TestClientTags \
+ -e TestClientThreading \
+ -e TestDialogs \
+ -e TestFunctions \
+ -e TestHydrusNATPunch \
+ -e TestHydrusSerialisable \
+ -e TestHydrusServer \
+ -e TestHydrusSessions \
+ -e TestServer \
+ '';
+
+ extraOutputsToLink = [ "doc" ];
+
+ postPatch = ''
+ sed 's;os\.path\.join(\sHC\.BIN_DIR,.*;"${miniupnpc_2}/bin/upnpc";' \
+ -i ./hydrus/core/HydrusNATPunch.py
+
+ sed 's;os\.path\.join(\sHC\.BIN_DIR,.*;"${swftools}/bin/swfrender";' \
+ -i ./hydrus/core/HydrusFlashHandling.py
+ '';
+
+ #doCheck = true;
+
+ installPhase = ''
+ # Move the hydrus module and related directories
+ mkdir -p $out/${pythonPackages.python.sitePackages}
+ mv {hydrus,static} $out/${pythonPackages.python.sitePackages}
+ mv help $out/doc/
+
+ # install the hydrus binaries
+ mkdir -p $out/bin
+ install -m0755 server.py $out/bin/hydrus-server
+ install -m0755 client.py $out/bin/hydrus-client
+ '';
+
+ dontWrapQtApps = true;
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Danbooru-like image tagging and searching system for the desktop";
+ license = licenses.wtfpl;
+ homepage = "https://hydrusnetwork.github.io/hydrus/";
+ maintainers = [ maintainers.evanjs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/ideogram/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ideogram/default.nix
new file mode 100644
index 000000000000..9ae7ae2cb8ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ideogram/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, fetchpatch
+, vala
+, pkgconfig
+, python3
+, glib
+, gtk3
+, meson
+, ninja
+, libgee
+, pantheon
+, desktop-file-utils
+, xorg
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ideogram";
+ version = "1.3.3";
+
+ src = fetchFromGitHub {
+ owner = "cassidyjames";
+ repo = pname;
+ rev = version;
+ sha256 = "1zkr7x022khn5g3sq2dkxzy1hiiz66vl81s3i5sb9qr88znh79p1";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ libgee
+ pantheon.granite
+ xorg.libX11
+ xorg.libXtst
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Insert emoji anywhere, even in non-native apps - designed for elementary OS";
+ homepage = "https://github.com/cassidyjames/ideogram";
+ license = licenses.gpl2Plus;
+ maintainers = pantheon.maintainers;
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/Gemfile
new file mode 100644
index 000000000000..d6a0f13a4c1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'image_optim'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/Gemfile.lock
new file mode 100644
index 000000000000..3ffadb5acbe3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/Gemfile.lock
@@ -0,0 +1,23 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ exifr (1.3.6)
+ fspath (3.1.0)
+ image_optim (0.26.3)
+ exifr (~> 1.2, >= 1.2.2)
+ fspath (~> 3.0)
+ image_size (>= 1.5, < 3)
+ in_threads (~> 1.3)
+ progress (~> 3.0, >= 3.0.1)
+ image_size (2.0.0)
+ in_threads (1.5.1)
+ progress (3.5.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ image_optim
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/default.nix
new file mode 100644
index 000000000000..ba437eab4122
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/default.nix
@@ -0,0 +1,66 @@
+{ lib, bundlerApp, bundlerUpdateScript, makeWrapper,
+ withPngcrush ? true, pngcrush ? null,
+ withPngout ? true, pngout ? null,
+ withAdvpng ? true, advancecomp ? null,
+ withOptipng ? true, optipng ? null,
+ withPngquant ? true, pngquant ? null,
+ withJhead ? true, jhead ? null,
+ withJpegoptim ? true, jpegoptim ? null,
+ withJpegrecompress ? true, jpeg-archive ? null,
+ withJpegtran ? true, libjpeg ? null,
+ withGifsicle ? true, gifsicle ? null,
+ withSvgo ? true, svgo ? null
+}:
+
+assert withPngcrush -> pngcrush != null;
+assert withPngout -> pngout != null;
+assert withAdvpng -> advancecomp != null;
+assert withOptipng -> optipng != null;
+assert withPngquant -> pngquant != null;
+assert withJhead -> jhead != null;
+assert withJpegoptim -> jpegoptim != null;
+assert withJpegrecompress -> jpeg-archive != null;
+assert withJpegtran -> libjpeg != null;
+assert withGifsicle -> gifsicle != null;
+assert withSvgo -> svgo != null;
+
+with lib;
+
+let
+ optionalDepsPath = []
+ ++ optional withPngcrush pngcrush
+ ++ optional withPngout pngout
+ ++ optional withAdvpng advancecomp
+ ++ optional withOptipng optipng
+ ++ optional withPngquant pngquant
+ ++ optional withJhead jhead
+ ++ optional withJpegoptim jpegoptim
+ ++ optional withJpegrecompress jpeg-archive
+ ++ optional withJpegtran libjpeg
+ ++ optional withGifsicle gifsicle
+ ++ optional withSvgo svgo;
+in
+
+bundlerApp {
+ pname = "image_optim";
+ gemdir = ./.;
+
+ exes = [ "image_optim" ];
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/image_optim \
+ --prefix PATH : ${makeBinPath optionalDepsPath}
+ '';
+
+ passthru.updateScript = bundlerUpdateScript "image_optim";
+
+ meta = with lib; {
+ description = "Command line tool and ruby interface to optimize (lossless compress, optionally lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)";
+ homepage = "https://github.com/toy/image_optim";
+ license = licenses.mit;
+ maintainers = with maintainers; [ srghma nicknovitski ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/gemset.nix
new file mode 100644
index 000000000000..6c9ec2de7457
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/image_optim/gemset.nix
@@ -0,0 +1,51 @@
+{
+ exifr = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q2abhiyvgfv23i0izbskjxcqaxiw9bfg6s57qgn4li4yxqpwpfg";
+ type = "gem";
+ };
+ version = "1.3.6";
+ };
+ fspath = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vjn9sy4hklr2d5wxmj5x1ry31dfq3sjp779wyprb3nbbdmra1sc";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ image_optim = {
+ dependencies = ["exifr" "fspath" "image_size" "in_threads" "progress"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "082w9qcyy9j6m6s2pknfdcik7l2qch4j48axs13m06l4s1hz0dmg";
+ type = "gem";
+ };
+ version = "0.26.3";
+ };
+ image_size = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bcn7nc6qix3w4sf7xd557lnsgjniqa7qvz7nnznx70m8qfbc7ig";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ in_threads = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14hqm59sgqi91ag187zwpgwi58xckjkk58m031ghkp0csl8l9mkx";
+ type = "gem";
+ };
+ version = "1.5.1";
+ };
+ progress = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yrzq4v5sp7cg4nbgqh11k3d1czcllfz98dcdrxrsjxwq5ziiw0p";
+ type = "gem";
+ };
+ version = "3.5.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/imagej/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imagej/default.nix
new file mode 100644
index 000000000000..d47369f5094a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imagej/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, jre, unzip, makeWrapper }:
+
+# Note:
+# - User config dir is hard coded by upstream to $HOME/.imagej on linux systems
+# and to $HOME/Library/Preferences on macOS.
+# (The current trend appears to be to use $HOME/.config/imagej
+# on linux systems, but we here do not attempt to fix it.)
+
+let
+ imagej150 = stdenv.mkDerivation {
+ pname = "imagej";
+ version = "150";
+
+ src = fetchurl {
+ url = "https://wsr.imagej.net/distros/cross-platform/ij150.zip";
+ sha256 = "97aba6fc5eb908f5160243aebcdc4965726693cb1353d9c0d71b8f5dd832cb7b";
+ };
+ buildInputs = [ unzip makeWrapper ];
+ inherit jre;
+
+ # JAR files that are intended to be used by other packages
+ # should go to $out/share/java.
+ # (Some uses ij.jar as a library not as a standalone program.)
+ installPhase = ''
+ mkdir -p $out/share/java
+ # Read permisssion suffices for the jar and others.
+ # Simple cp shall clear suid bits, if any.
+ cp ij.jar $out/share/java
+ cp -dR luts macros plugins $out/share
+ mkdir $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/imagej \
+ --add-flags "-jar $out/share/java/ij.jar -ijpath $out/share"
+ '';
+ meta = with stdenv.lib; {
+ homepage = "https://imagej.nih.gov/ij/";
+ description = "Image processing and analysis in Java";
+ longDescription = ''
+ ImageJ is a public domain Java image processing program
+ inspired by NIH Image for the Macintosh.
+ It runs on any computer with a Java 1.4 or later virtual machine.
+ '';
+ license = licenses.publicDomain;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ yuriaisaka ];
+ };
+ };
+in
+ imagej150
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix
new file mode 100644
index 000000000000..22a35b3a4cc3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix
@@ -0,0 +1,94 @@
+{ stdenv
+, cmake
+, fetchFromGitHub
+, wrapQtAppsHook
+, qtmultimedia
+, qttools
+, qtscript
+, qtdeclarative
+, qtbase
+, autogen
+, automake
+, makeWrapper
+, catch2
+, nodejs
+, libpulseaudio
+, openssl
+, rsync
+, typescript
+}:
+stdenv.mkDerivation rec {
+ pname = "imgbrd-grabber";
+
+ version = "7.3.2";
+ src = fetchFromGitHub {
+ owner = "Bionus";
+ repo = "imgbrd-grabber";
+ rev = "v${version}";
+ sha256 = "053rwvcr88fcba0447a6r115cgnqsm9rl066z8d5jacqnhdij58k";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [
+ openssl
+ makeWrapper
+ libpulseaudio
+ typescript
+ ];
+
+ nativeBuildInputs = [
+ qtmultimedia
+ qtbase
+ qtdeclarative
+ qttools
+ nodejs
+ cmake
+ wrapQtAppsHook
+ ];
+
+ extraOutputsToLink = [ "doc" ];
+
+ postPatch = ''
+ # the package.sh script provides some install helpers
+ # using this might make it easier to maintain/less likely for the
+ # install phase to fail across version bumps
+ patchShebangs ./scripts/package.sh
+
+ # ensure the script uses the rsync package from nixpkgs
+ substituteInPlace ../scripts/package.sh --replace "rsync" "${rsync}/bin/rsync"
+
+
+ # the npm build step only runs typescript
+ # run this step directly so it doesn't try and fail to download the unnecessary node_modules, etc.
+ substituteInPlace ./sites/CMakeLists.txt --replace "npm install" "npm run build"
+
+ # remove the vendored catch2
+ rm -rf tests/src/vendor/catch
+
+ # link the catch2 sources from nixpkgs
+ ln -sf ${catch2.src} tests/src/vendor/catch
+ '';
+
+ postInstall = ''
+ # move the binaries to the share/Grabber folder so
+ # some relative links can be resolved (e.g. settings.ini)
+ mv $out/bin/* $out/share/Grabber/
+
+ cd ../..
+ # run the package.sh with $out/share/Grabber as the $APP_DIR
+ sh ./scripts/package.sh $out/share/Grabber
+
+ # add symlinks for the binaries to $out/bin
+ ln -s $out/share/Grabber/Grabber $out/bin/Grabber
+ ln -s $out/share/Grabber/Grabber-cli $out/bin/Grabber-cli
+ '';
+
+ sourceRoot = "source/src";
+
+ meta = with stdenv.lib; {
+ description = "Very customizable imageboard/booru downloader with powerful filenaming features";
+ license = licenses.asl20;
+ homepage = "https://bionus.github.io/imgbrd-grabber/";
+ maintainers = [ maintainers.evanjs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/imgcat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imgcat/default.nix
new file mode 100644
index 000000000000..5943632930c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imgcat/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "imgcat";
+ version = "2.3.1";
+
+ nativeBuildInputs = [ autoconf automake libtool ];
+ buildInputs = [ ncurses ];
+
+ preConfigure = ''
+ ${autoconf}/bin/autoconf
+ sed -i -e "s|-ltermcap|-L ${ncurses}/lib -lncurses|" Makefile
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ src = fetchFromGitHub {
+ owner = "eddieantonio";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0frz40rjwi73nx2dlqvmnn56zwr29bmnngfb11hhwr7v58yfajdi";
+ };
+
+ NIX_CFLAGS_COMPILE = "-Wno-error";
+
+ meta = with stdenv.lib; {
+ description = "It's like cat, but for images";
+ homepage = "https://github.com/eddieantonio/imgcat";
+ license = licenses.isc;
+ maintainers = with maintainers; [ jwiegley ];
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/imgp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imgp/default.nix
new file mode 100644
index 000000000000..1f6e20f465a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imgp/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchFromGitHub, buildPythonApplication, pillow, imgp }:
+
+buildPythonApplication rec {
+ pname = "imgp";
+ version = "2.8";
+
+ src = fetchFromGitHub {
+ owner = "jarun";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1miabaxd5pwxn0va4drzj1d4ppxvyqsrrd4xw1j6qr52yci0lms8";
+ };
+
+ propagatedBuildInputs = [ pillow ];
+
+ installFlags = [
+ "DESTDIR=$(out)"
+ "PREFIX="
+ ];
+
+ postInstall = ''
+ install -Dm555 auto-completion/bash/imgp-completion.bash $out/share/bash-completion/completions/imgp.bash
+ install -Dm555 auto-completion/fish/imgp.fish -t $out/share/fish/vendor_completions.d
+ install -Dm555 auto-completion/zsh/_imgp -t $out/share/zsh/site-functions
+ '';
+
+ checkPhase = ''
+ $out/bin/imgp --help
+ '';
+
+ meta = with lib; {
+ description = "High-performance CLI batch image resizer & rotator";
+ homepage = "https://github.com/jarun/imgp";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sikmir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix
new file mode 100644
index 000000000000..06549468efe9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libX11, libXinerama, imlib2 }:
+
+stdenv.mkDerivation {
+ pname = "imlibsetroot";
+ version = "1.2";
+ src = fetchurl {
+ url = "https://robotmonkeys.net/wp-content/uploads/2010/03/imlibsetroot-12.tar.gz";
+ sha256 = "8c1b3b7c861e4d865883ec13a96b8e4ab22464a87d4e6c67255b17a88e3cfd1c";
+ };
+
+ buildInputs = [ libX11 imlib2 libXinerama ];
+ buildPhase = ''
+ gcc -g imlibsetroot.c -o imlibsetroot \
+ `imlib2-config --cflags` `imlib2-config --libs` \
+ -I/include/X11/extensions -lXinerama -lX11
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ install -m 755 imlibsetroot $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Xinerama Aware Background Changer";
+ homepage = "http://robotmonkeys.net/2010/03/30/imlibsetroot/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ dwarfmaster ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/imv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imv/default.nix
new file mode 100644
index 000000000000..faf748730583
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/imv/default.nix
@@ -0,0 +1,70 @@
+{ asciidoc
+, cmocka
+, docbook_xsl
+, fetchFromGitHub
+, fontconfig
+, freeimage
+, icu
+, libGLU
+, libheif
+, libjpeg_turbo
+, libpng
+, librsvg
+, libtiff
+, libxkbcommon
+, libxslt
+, netsurf
+, pango
+, pkgconfig
+, stdenv
+, wayland
+}:
+
+stdenv.mkDerivation rec {
+ pname = "imv";
+ version = "4.1.0";
+
+ src = fetchFromGitHub {
+ owner = "eXeC64";
+ repo = "imv";
+ rev = "v${version}";
+ sha256 = "0gk8g178i961nn3bls75a8qpv6wvfvav6hd9lxca1skaikd33zdx";
+ };
+
+ nativeBuildInputs = [ asciidoc cmocka docbook_xsl libxslt ];
+
+ buildInputs = [
+ freeimage
+ icu
+ libGLU
+ libjpeg_turbo
+ librsvg
+ libxkbcommon
+ netsurf.libnsgif
+ pango
+ pkgconfig
+ wayland
+ ];
+
+ installFlags = [ "PREFIX=$(out)" "CONFIGPREFIX=$(out)/etc" ];
+
+ makeFlags = [ "BACKEND_LIBJPEG=yes" "BACKEND_LIBNSGIF=yes" ];
+
+ postFixup = ''
+ # The `bin/imv` script assumes imv-wayland or imv-x11 in PATH,
+ # so we have to fix those to the binaries we installed into the /nix/store
+
+ sed -i "s|\bimv-wayland\b|$out/bin/imv-wayland|" $out/bin/imv
+ sed -i "s|\bimv-x11\b|$out/bin/imv-x11|" $out/bin/imv
+ '';
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "A command line image viewer for tiling window managers";
+ homepage = "https://github.com/eXeC64/imv";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ rnhmjoj markus1189 ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
new file mode 100644
index 000000000000..810b19ba90a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
@@ -0,0 +1,151 @@
+{ stdenv
+, boehmgc
+, boost
+, cairo
+, cmake
+, double-conversion
+, fetchurl
+, gettext
+, gdl
+, glib
+, glib-networking
+, glibmm
+, gsl
+, gtk-mac-integration
+, gtkmm3
+, gtkspell3
+, gdk-pixbuf
+, imagemagick
+, lcms
+, libcdr
+, libexif
+, libpng
+, librevenge
+, librsvg
+, libsigcxx
+, libsoup
+, libvisio
+, libwpg
+, libXft
+, libxml2
+, libxslt
+, ninja
+, perlPackages
+, pkg-config
+, poppler
+, popt
+, potrace
+, python3
+, substituteAll
+, wrapGAppsHook
+, zlib
+}:
+let
+ python3Env = python3.withPackages
+ (ps: with ps; [
+ numpy
+ lxml
+ scour
+ ]);
+in
+stdenv.mkDerivation rec {
+ pname = "inkscape";
+ version = "1.0.1";
+
+ src = fetchurl {
+ url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.xz";
+ sha256 = "1hjp5nnyx2m3miji6q4lcb6zgbi498v641dc7apkqqvayknrb4ng";
+ };
+
+ # Inkscape hits the ARGMAX when linking on macOS. It appears to be
+ # CMake’s ARGMAX check doesn’t offer enough padding for NIX_LDFLAGS.
+ # Setting strictDeps it avoids duplicating some dependencies so it
+ # will leave us under ARGMAX.
+ strictDeps = true;
+
+ patches = [
+ (substituteAll {
+ src = ./fix-python-paths.patch;
+ # Python is used at run-time to execute scripts,
+ # e.g., those from the "Effects" menu.
+ python3 = "${python3Env}/bin/python";
+ })
+ ];
+
+ postPatch = ''
+ patchShebangs share/extensions
+ patchShebangs share/templates
+ patchShebangs man/fix-roff-punct
+ '';
+
+ nativeBuildInputs = [
+ pkg-config
+ cmake
+ ninja
+ python3Env
+ glib # for setup hook
+ gdk-pixbuf # for setup hook
+ wrapGAppsHook
+ ] ++ (with perlPackages; [
+ perl
+ XMLParser
+ ]);
+
+ buildInputs = [
+ boehmgc
+ boost
+ double-conversion
+ gdl
+ gettext
+ glib
+ glib-networking
+ glibmm
+ gsl
+ gtkmm3
+ imagemagick
+ lcms
+ libcdr
+ libexif
+ libpng
+ librevenge
+ librsvg # for loading icons
+ libsigcxx
+ libsoup
+ libvisio
+ libwpg
+ libXft
+ libxml2
+ libxslt
+ perlPackages.perl
+ poppler
+ popt
+ potrace
+ python3Env
+ zlib
+ ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
+ gtkspell3
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ cairo
+ gtk-mac-integration
+ ];
+
+ # Make sure PyXML modules can be found at run-time.
+ postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+ install_name_tool -change $out/lib/libinkscape_base.dylib $out/lib/inkscape/libinkscape_base.dylib $out/bin/inkscape
+ install_name_tool -change $out/lib/libinkscape_base.dylib $out/lib/inkscape/libinkscape_base.dylib $out/bin/inkview
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Vector graphics editor";
+ homepage = "https://www.inkscape.org";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.jtojnar ];
+ platforms = platforms.all;
+ longDescription = ''
+ Inkscape is a feature-rich vector graphics editor that edits
+ files in the W3C SVG (Scalable Vector Graphics) file format.
+
+ If you want to import .eps files install ps2edit.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix
new file mode 100644
index 000000000000..013d3bec3527
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, runCommand
+, inkcut
+}:
+
+{
+ hexmap = stdenv.mkDerivation {
+ name = "hexmap";
+ version = "2020-06-06";
+
+ src = fetchFromGitHub {
+ owner = "lifelike";
+ repo = "hexmapextension";
+ rev = "11401e23889318bdefb72df6980393050299d8cc";
+ sha256 = "1a4jhva624mbljj2k43wzi6hrxacjz4626jfk9y2fg4r4sga22mm";
+ };
+
+ preferLocalBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p "$out/share/inkscape/extensions"
+ cp -p *.inx *.py "$out/share/inkscape/extensions/"
+ find "$out/share/inkscape/extensions/" -name "*.py" -exec chmod +x {} \;
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "This is an extension for creating hex grids in Inkscape. It can also be used to make brick patterns of staggered rectangles";
+ homepage = "https://github.com/lifelike/hexmapextension";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.raboof ];
+ platforms = platforms.all;
+ };
+ };
+ inkcut = (runCommand "inkcut-inkscape-plugin" {} ''
+ mkdir -p $out/share/inkscape/extensions
+ cp ${inkcut}/share/inkscape/extensions/* $out/share/inkscape/extensions
+ '');
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch
new file mode 100644
index 000000000000..9428ade88630
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch
@@ -0,0 +1,15 @@
+--- a/src/extension/implementation/script.cpp
++++ b/src/extension/implementation/script.cpp
+@@ -77,10 +77,10 @@ const std::map<std::string, Script::inte
+ { "python", {"python-interpreter", {"pythonw" }}},
+ #elif defined __APPLE__
+ { "perl", {"perl-interpreter", {"perl" }}},
+- { "python", {"python-interpreter", {"python3" }}},
++ { "python", {"python-interpreter", {"@python3@" }}},
+ #else
+ { "perl", {"perl-interpreter", {"perl" }}},
+- { "python", {"python-interpreter", {"python3", "python" }}},
++ { "python", {"python-interpreter", {"@python3@" }}},
+ #endif
+ { "python2", {"python2-interpreter", {"python2", "python" }}},
+ { "ruby", {"ruby-interpreter", {"ruby" }}},
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix
new file mode 100644
index 000000000000..cca7b1fc3a54
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix
@@ -0,0 +1,21 @@
+{ lib
+, inkscape
+, symlinkJoin
+, makeWrapper
+, inkscapeExtensions ? []
+}:
+
+symlinkJoin {
+ name = "inkscape-with-extensions-${lib.getVersion inkscape}";
+
+ paths = [ inkscape ] ++ inkscapeExtensions;
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ rm -f $out/bin/inkscape
+ makeWrapper "${inkscape}/bin/inkscape" "$out/bin/inkscape" --set INKSCAPE_DATADIR "$out/share"
+ '';
+
+ inherit (inkscape) meta;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/ipe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ipe/default.nix
new file mode 100644
index 000000000000..6a2a8dbc18fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ipe/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, zlib, freetype, cairo, lua5, texlive, ghostscript
+, libjpeg, libpng, qtbase, mkDerivation
+}:
+
+mkDerivation rec {
+ name = "ipe-7.2.13";
+
+ src = fetchurl {
+ url = "https://dl.bintray.com/otfried/generic/ipe/7.2/${name}-src.tar.gz";
+ sha256 = "1a6a88r7j5z01z6k1z72a8g3n6lxdjjxxkdrzrfdd6df2gbs6g5g";
+ };
+
+ sourceRoot = "${name}/src";
+
+ IPEPREFIX=placeholder "out";
+ URWFONTDIR="${texlive}/texmf-dist/fonts/type1/urw/";
+ LUA_PACKAGE = "lua";
+
+ buildInputs = [
+ libjpeg libpng zlib qtbase freetype cairo lua5 texlive ghostscript
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ qtWrapperArgs = [ ''--prefix PATH : ${texlive}/bin'' ];
+
+ enableParallelBuilding = true;
+
+ #TODO: make .desktop entry
+
+ meta = {
+ description = "An editor for drawing figures";
+ homepage = "http://ipe.otfried.org";
+ license = stdenv.lib.licenses.gpl3Plus;
+ longDescription = ''
+ Ipe is an extensible drawing editor for creating figures in PDF and Postscript format.
+ It supports making small figures for inclusion into LaTeX-documents
+ as well as presentations in PDF.
+ '';
+ maintainers = [ stdenv.lib.maintainers.ttuegel ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpeg-archive/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpeg-archive/default.nix
new file mode 100644
index 000000000000..8beaf43c089c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpeg-archive/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, mozjpeg, makeWrapper, coreutils, parallel, findutils }:
+
+stdenv.mkDerivation {
+ pname = "jpeg-archive";
+ version = "2.2.0"; # can be found here https://github.com/danielgtaylor/jpeg-archive/blob/master/src/util.c#L15
+
+ # update with
+ # nix-prefetch-git https://github.com/danielgtaylor/jpeg-archive
+ src = fetchFromGitHub {
+ owner = "danielgtaylor";
+ repo = "jpeg-archive";
+ rev = "8da4bf76b6c3c0e11e4941294bfc1857c119419b";
+ sha256 = "1639y9qp2ls80fzimwmwds792q8rq5p6c14c0r4jswx4yp6dcs33";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ mozjpeg ];
+
+ prePatch = ''
+ # allow override LIBJPEG
+ substituteInPlace Makefile --replace 'LIBJPEG =' 'LIBJPEG ?='
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "MOZJPEG_PREFIX=${mozjpeg}"
+ "LIBJPEG=${mozjpeg}/lib/libjpeg.so"
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/jpeg-archive \
+ --set PATH "$out/bin:${coreutils}/bin:${parallel}/bin:${findutils}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Utilities for archiving photos for saving to long term storage or serving over the web";
+ homepage = "https://github.com/danielgtaylor/jpeg-archive";
+ license = licenses.mit;
+ maintainers = [ maintainers.srghma ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpeginfo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpeginfo/default.nix
new file mode 100644
index 000000000000..e15aedd77e1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpeginfo/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, libjpeg }:
+
+stdenv.mkDerivation rec {
+ pname = "jpeginfo";
+ version = "1.6.1";
+
+ src = fetchurl {
+ url = "https://www.kokkonen.net/tjko/src/${pname}-${version}.tar.gz";
+ sha256 = "0lvn3pnylyj56158d3ix9w1gas1s29klribw9bz1xym03p7k37k2";
+ };
+
+ buildInputs = [ libjpeg ];
+
+ meta = with stdenv.lib; {
+ description = "Prints information and tests integrity of JPEG/JFIF files";
+ homepage = "https://www.kokkonen.net/tjko/projects.html";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.bjornfor ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpegoptim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpegoptim/default.nix
new file mode 100644
index 000000000000..265ce82b8ac3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpegoptim/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, libjpeg }:
+
+stdenv.mkDerivation rec {
+ version = "1.4.6";
+ pname = "jpegoptim";
+
+ src = fetchurl {
+ url = "https://www.kokkonen.net/tjko/src/${pname}-${version}.tar.gz";
+ sha256 = "1dss7907fclfl8zsw0bl4qcw0hhz6fqgi3867w0jyfm3q9jfpcc8";
+ };
+
+ # There are no checks, it seems.
+ doCheck = false;
+
+ buildInputs = [ libjpeg ];
+
+ meta = with stdenv.lib; {
+ description = "Optimize JPEG files";
+ homepage = "https://www.kokkonen.net/tjko/projects.html";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.aristid ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpegrescan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpegrescan/default.nix
new file mode 100644
index 000000000000..5fe35edabdf6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/jpegrescan/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, makeWrapper, libjpeg_turbo, perl, perlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "jpegrescan";
+ date = "2016-06-01";
+ name = "${pname}-${date}";
+
+ src = fetchFromGitHub {
+ owner = "kud";
+ repo = pname;
+ rev = "e5e39cd972b48ccfb2cba4da6855c511385c05f9";
+ sha256 = "0jbx1vzkzif6yjx1fnsm7fjsmq166sh7mn22lf01ll7s245nmpdp";
+ };
+
+ patchPhase = ''
+ patchShebangs jpegrescan
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/jpegrescan
+ mv README.md $out/share/jpegrescan/
+ mkdir $out/bin
+ mv jpegrescan $out/bin
+ chmod +x $out/bin/jpegrescan
+
+ wrapProgram $out/bin/jpegrescan --prefix PERL5LIB : $PERL5LIB
+ '';
+
+ propagatedBuildInputs = [ perlPackages.FileSlurp ];
+
+ buildInputs = [
+ perl libjpeg_turbo makeWrapper
+ ];
+
+ meta = with stdenv.lib; {
+ description = "losslessly shrink any JPEG file";
+ homepage = "https://github.com/kud/jpegrescan";
+ license = licenses.publicDomain;
+ maintainers = [ maintainers.ramkromberg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/k3d/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/k3d/default.nix
new file mode 100644
index 000000000000..c74f35e4334a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/k3d/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, fetchpatch, ftgl, glew, asciidoc
+, cmake, ninja, libGLU, libGL, zlib, python, expat, libxml2, libsigcxx, libuuid, freetype
+, libpng, boost, doxygen, cairomm, pkgconfig, libjpeg, libtiff
+, gettext, intltool, perl, gtkmm2, glibmm, gtkglext, libXmu }:
+
+stdenv.mkDerivation rec {
+ version = "0.8.0.6";
+ pname = "k3d";
+ src = fetchFromGitHub {
+ owner = "K-3D";
+ repo = "k3d";
+ rev = "${pname}-${version}";
+ sha256 = "0vdjjg6h8mxm2n8mvkkg2mvd27jn2xx90hnmx23cbd35mpz9p4aa";
+ };
+
+ patches = [
+ (fetchpatch { /* glibmm 2.50 fix */
+ url = "https://github.com/K-3D/k3d/commit/c65889d0652490d88a573e47de7a9324bf27bff2.patch";
+ sha256 = "162icv1hicr2dirkb9ijacvg9bhz5j30yfwg7b45ijavk8rns62j";
+ })
+ ];
+
+ cmakeFlags = [
+ "-DK3D_BUILD_DOCS=false"
+ "-DK3D_BUILD_GUIDE=false"
+ ];
+
+ preConfigure = ''
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/build/lib"
+ '';
+
+ nativeBuildInputs = [ cmake ninja gettext intltool doxygen pkgconfig perl asciidoc ];
+
+ buildInputs = [
+ libGLU libGL zlib python expat libxml2 libsigcxx libuuid freetype libpng
+ boost cairomm libjpeg libtiff
+ ftgl glew gtkmm2 glibmm gtkglext libXmu
+ ];
+
+ #doCheck = false;
+
+ NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations";
+
+ meta = with stdenv.lib; {
+ description = "A 3D editor with support for procedural editing";
+ homepage = "http://www.k-3d.org/";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.raskin ];
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/kcc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/kcc/default.nix
new file mode 100644
index 000000000000..da3589189725
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/kcc/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, mkDerivationWith
+, python3Packages
+, p7zip
+, archiveSupport ? true
+}:
+
+mkDerivationWith python3Packages.buildPythonApplication rec {
+ pname = "kcc";
+ version = "5.5.1";
+
+ src = python3Packages.fetchPypi {
+ inherit version;
+ pname = "KindleComicConverter";
+ sha256 = "5dbee5dc5ee06a07316ae5ebaf21ffa1970094dbae5985ad735e2807ef112644";
+ };
+
+ propagatedBuildInputs = with python3Packages ; [
+ pillow
+ pyqt5
+ psutil
+ python-slugify
+ raven
+ ];
+
+ qtWrapperArgs = lib.optional archiveSupport [ "--prefix" "PATH" ":" "${ lib.makeBinPath [ p7zip ] }" ];
+
+ postFixup = ''
+ wrapProgram $out/bin/kcc "''${qtWrapperArgs[@]}"
+ '';
+
+ meta = with lib; {
+ description = "Python app to convert comic/manga files or folders to EPUB, Panel View MOBI or E-Ink optimized CBZ";
+ homepage = "https://kcc.iosphe.re";
+ license = licenses.isc;
+ maintainers = with maintainers; [ dawidsowa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix
new file mode 100644
index 000000000000..9b96b30c62b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, mkDerivation, fetchurl, cmake, extra-cmake-modules, pkgconfig, wrapGAppsHook
+, kconfig, kinit, kdoctools, kio, kparts, kwidgetsaddons
+, qtbase, qtsvg
+, boost, graphviz
+}:
+
+mkDerivation rec {
+ pname = "kgraphviewer";
+ version = "2.4.3";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/kgraphviewer/${version}/${pname}-${version}.tar.xz";
+ sha256 = "1h6pgg89gvxl8gw7wmkabyqqrzad5pxyv5lsmn1fl4ir8lcc5q2l";
+ };
+
+ buildInputs = [
+ qtbase qtsvg
+ boost graphviz
+ ];
+
+ nativeBuildInputs = [
+ cmake extra-cmake-modules pkgconfig wrapGAppsHook
+ kdoctools
+ ];
+
+ propagatedBuildInputs = [
+ kconfig kinit kio kparts kwidgetsaddons
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A Graphviz dot graph viewer for KDE";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ lethalman ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/kodelife/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/kodelife/default.nix
new file mode 100644
index 000000000000..e5aac9b8823d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/kodelife/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchzip
+, alsaLib
+, glib
+, gst_all_1
+, libGLU, libGL
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+ pname = "kodelife";
+ version = "0.9.0.129";
+
+ suffix = {
+ aarch64-linux = "linux-arm64";
+ armv7l-linux = "linux-armhf";
+ x86_64-darwin = "macos";
+ x86_64-linux = "linux-x86_64";
+ }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+ src = fetchzip {
+ url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.zip";
+ sha256 = {
+ aarch64-linux = "0z2fqlf156348ha3zhv16kvqdx68fbwbzch2gzjm9x1na9n5k1ra";
+ armv7l-linux = "1ppwgrmgl1j2ws9mhrscvvkamd69a6xw7x35df6d30cyj97r0mzy";
+ x86_64-darwin = "0f8vn6m3xzsiyxm2ka5wkbp63wvzrix6g1xrbpvcm3v2llmychkl";
+ x86_64-linux = "035c1nlw0nim057sz3axpkcgkafqbm6gpr8hwr097vlrqll6w3dv";
+ }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+ };
+
+ dontConfigure = true;
+ dontBuild = true;
+ dontStrip = true;
+ dontPatchELF = true;
+ preferLocalBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv KodeLife $out/bin
+ '';
+
+ preFixup = let
+ libPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc.lib
+ alsaLib
+ glib
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ libGLU libGL
+ xorg.libX11
+ ];
+ in stdenv.lib.optionalString (!stdenv.isDarwin) ''
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libPath}" \
+ $out/bin/KodeLife
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://hexler.net/products/kodelife";
+ description = "Real-time GPU shader editor";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ prusnak ];
+ platforms = [ "aarch64-linux" "armv7l-linux" "x86_64-darwin" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/krita/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/krita/default.nix
new file mode 100644
index 000000000000..9bb78d199968
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/krita/default.nix
@@ -0,0 +1,56 @@
+{ mkDerivation, lib, stdenv, makeWrapper, fetchurl, cmake, extra-cmake-modules
+, karchive, kconfig, kwidgetsaddons, kcompletion, kcoreaddons
+, kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem
+, kio, kcrash
+, boost, libraw, fftw, eigen, exiv2, libheif, lcms2, gsl, openexr, giflib
+, openjpeg, opencolorio, vc, poppler, curl, ilmbase
+, qtmultimedia, qtx11extras, quazip
+, python3Packages
+}:
+
+mkDerivation rec {
+ pname = "krita";
+ version = "4.4.1";
+
+ src = fetchurl {
+ url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+ sha256 = "1bmmfvmawnlihbqkksdrwxfkaip4nfsi97w83fmvkyxl4jk715vr";
+ };
+
+ # *somtimes* fails with can't find ui_manager.h, also see https://github.com/NixOS/nixpkgs/issues/35359
+ enableParallelBuilding = false;
+
+ nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip makeWrapper ];
+
+ buildInputs = [
+ karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons
+ ki18n kitemmodels kitemviews kwindowsystem kio kcrash
+ boost libraw fftw eigen exiv2 lcms2 gsl openexr libheif giflib
+ openjpeg opencolorio poppler curl ilmbase
+ qtmultimedia qtx11extras quazip
+ python3Packages.pyqt5
+ ] ++ lib.optional (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) vc;
+
+ NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ]
+ ++ lib.optional stdenv.cc.isGNU "-Wno-deprecated-copy";
+
+ cmakeFlags = [
+ "-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/share/sip/PyQt5"
+ "-DPYQT_SIP_DIR_OVERRIDE=${python3Packages.pyqt5}/share/sip/PyQt5"
+ "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
+ ];
+
+ postInstall = ''
+ for i in $out/bin/*; do
+ wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
+ done
+ '';
+
+ meta = with lib; {
+ description = "A free and open source painting application";
+ homepage = "https://krita.org/";
+ maintainers = with maintainers; [ abbradar ];
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/krop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/krop/default.nix
new file mode 100644
index 000000000000..ee4906769770
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/krop/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, python3Packages, libsForQt5, ghostscript, qt5}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "krop";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "arminstraub";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ygzc7vlwszqmsd3v1dsqp1dpsn6inx7g8gck63alvf88dbn8m3s";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ pyqt5
+ pypdf2
+ poppler-qt5
+ ghostscript
+ ];
+ buildInputs = [
+ libsForQt5.poppler
+ ];
+
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+ makeWrapperArgs = [
+ "\${qtWrapperArgs[@]}"
+ ];
+
+ postInstall = ''
+ install -m666 -Dt $out/share/applications krop.desktop
+ '';
+
+ # Disable checks because of interference with older Qt versions // xcb
+ doCheck = false;
+
+ meta = {
+ homepage = "http://arminstraub.com/software/krop";
+ description = "Graphical tool to crop the pages of PDF files";
+ longDescription = ''
+ Krop is a tool that allows you to optimise your PDF files, and remove
+ sections of the page you do not want. A unique feature of krop, at least to my
+ knowledge, is its ability to automatically split pages into subpages to fit the
+ limited screensize of devices such as eReaders. This is particularly useful, if
+ your eReader does not support convenient scrolling. Krop also has a command line
+ interface.
+ '';
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [ leenaars ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/ktikz/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
new file mode 100644
index 000000000000..f817a3321606
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, fetchpatch
+, pkgconfig, wrapQtAppsHook
+, poppler, gnuplot
+, qmake, qtbase, qttools
+}:
+
+# This package only builds ktikz without KDE integration because KDE4 is
+# deprecated and upstream does not (yet ?) support KDE5.
+# See historical versions of this file for building ktikz with KDE4.
+
+stdenv.mkDerivation rec {
+ version = "0.12";
+ pname = "qtikz";
+
+ meta = with stdenv.lib; {
+ description = "Editor for the TikZ language";
+ homepage = "https://github.com/fhackenberger/ktikz";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.layus ];
+ longDescription = ''
+ You will also need a working *tex installation in your PATH, containing at least `preview` and `pgf`.
+ '';
+ };
+
+ src = fetchFromGitHub {
+ owner = "fhackenberger";
+ repo = "ktikz";
+ rev = version;
+ sha256 = "1s83x8r2yi64wc6ah2iz09dj3qahy0fkxx6cfgpkavjw9x0j0582";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/fhackenberger/ktikz/commit/972685a406517bb85eb561f2c8e26f029eacd7db.patch";
+ sha256 = "13z40rcd4m4n088v7z2ns17lnpn0z3rzp31lsamic3qdcwjwa5k8";
+ })
+ ];
+
+ nativeBuildInputs = [ pkgconfig qttools qmake wrapQtAppsHook ];
+ QT_PLUGIN_PATH = "${qtbase}/${qtbase.qtPluginPrefix}";
+
+ buildInputs = [ qtbase poppler ];
+ enableParallelBuilding = true;
+
+ qmakeFlags = [
+ "DESKTOP_INSTALL_DIR=${placeholder "out"}/share/applications"
+ "MIME_INSTALL_DIR=${placeholder "out"}/share/mime/packages"
+ # qcollectiongenerator does no more exist in `qt5.qttools`.
+ # It was merged with qhelpgenerator at some point.
+ "QCOLLECTIONGENERATORCOMMAND=qhelpgenerator"
+ ];
+
+ qtWrapperArgs = [ ''--prefix PATH : "${gnuplot}/bin"'' ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
new file mode 100644
index 000000000000..e53c36b59cd9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub, lazarus, fpc, pango, cairo, glib
+, atk, gtk2, libX11, gdk-pixbuf, busybox, python3, makeWrapper }:
+
+with stdenv;
+
+let
+ bgrabitmap = fetchFromGitHub {
+ owner = "bgrabitmap";
+ repo = "bgrabitmap";
+ rev = "v11.2.5";
+ sha256 = "0w5pdihsxn039kalkf4cx23j69hz5r09qmhd358h2n74irv1r3x1";
+ };
+ bgracontrols = fetchFromGitHub {
+ owner = "bgrabitmap";
+ repo = "bgracontrols";
+ rev = "v7.0";
+ sha256 = "0qz3cscrc9jvhrix1hbmzhdxv6mxk0mz9azr46canflsydda8fjy";
+ };
+in stdenv.mkDerivation rec {
+ pname = "lazpaint";
+ version = "7.1.5";
+
+ src = fetchFromGitHub {
+ owner = "bgrabitmap";
+ repo = "lazpaint";
+ rev = "v${version}";
+ sha256 = "0bpk3rlqzbxvgrxmrzs0hcrgwhsqnpjqv1kdd9cp09knimmksvy5";
+ };
+
+ nativeBuildInputs = [ lazarus fpc makeWrapper ];
+
+ buildInputs = [ pango cairo glib atk gtk2 libX11 gdk-pixbuf ];
+
+ NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
+
+ buildPhase = ''
+ cp -r --no-preserve=mode ${bgrabitmap} bgrabitmap
+ cp -r --no-preserve=mode ${bgracontrols} bgracontrols
+
+ lazbuild --lazarusdir=${lazarus}/share/lazarus \
+ --build-mode=Release \
+ bgrabitmap/bgrabitmap/bgrabitmappack.lpk \
+ bgracontrols/bgracontrols.lpk \
+ lazpaintcontrols/lazpaintcontrols.lpk \
+ lazpaint/lazpaint.lpi
+ '';
+
+ installPhase = ''
+ # Reuse existing install script
+ cd lazpaint/release/debian
+ substituteInPlace makedeb.sh --replace "rm -rf" "ls"
+ patchShebangs ./makedeb.sh
+ PATH=$PATH:${busybox}/bin ./makedeb.sh
+ cp -r staging/usr $out
+
+ # Python is needed for scripts
+ makeWrapper $out/share/lazpaint/lazpaint $out/bin/lazpaint \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ python3 ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Image editor like PaintBrush or Paint.Net";
+ homepage = "https://sourceforge.net/projects/lazpaint/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ gnidorah ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/leocad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/leocad/default.nix
new file mode 100644
index 000000000000..5e950eeac04b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/leocad/default.nix
@@ -0,0 +1,31 @@
+/*
+To use aditional parts libraries
+set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
+*/
+
+{ stdenv, fetchFromGitHub, qt4, qmake4Hook, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "leocad";
+ version = "19.07.1";
+
+ src = fetchFromGitHub {
+ owner = "leozide";
+ repo = "leocad";
+ rev = "v${version}";
+ sha256 = "02kv1m18g6s4dady9jv4sjivfkrp192bmdw2a3d9lzlp60zks0p2";
+ };
+
+ nativeBuildInputs = [ qmake4Hook ];
+ buildInputs = [ qt4 zlib ];
+ postPatch = ''
+ export qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "CAD program for creating virtual LEGO models";
+ homepage = "https://www.leocad.org/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/lightburn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
new file mode 100644
index 000000000000..9d2c6c4dd59f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, patchelf, fetchurl, p7zip
+, nss, nspr, libusb1
+, qtbase, qtmultimedia, qtserialport
+, autoPatchelfHook, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "lightburn";
+ version = "0.9.19";
+
+ nativeBuildInputs = [
+ p7zip
+ autoPatchelfHook
+ wrapQtAppsHook
+ ];
+
+ src = fetchurl {
+ url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
+ sha256 = "0j3ydivd666fphmgi3ar48xabgi2dcky7p2fyfl7ghxjplflqs9q";
+ };
+
+ buildInputs = [
+ nss nspr libusb1
+ qtbase qtmultimedia qtserialport
+ ];
+
+ # We nuke the vendored Qt5 libraries that LightBurn ships and instead use our
+ # own.
+ unpackPhase = ''
+ 7z x $src
+ rm -rf LightBurn/lib LightBurn/plugins
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share $out/bin
+ cp -ar LightBurn $out/share/LightBurn
+ ln -s $out/share/LightBurn/LightBurn $out/bin
+
+ wrapQtApp $out/bin/LightBurn
+ '';
+
+ meta = {
+ description = "Layout, editing, and control software for your laser cutter";
+ homepage = "https://lightburnsoftware.com/";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ q3k ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/luminance-hdr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/luminance-hdr/default.nix
new file mode 100644
index 000000000000..811a907746d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/luminance-hdr/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, mkDerivation, cmake, fetchFromGitHub, pkgconfig
+, boost, exiv2, fftwFloat, gsl
+, ilmbase, lcms2, libraw, libtiff, openexr
+, qtbase, qtdeclarative, qttools, qtwebengine, eigen
+}:
+
+mkDerivation rec {
+ pname = "luminance-hdr";
+ version = "2.6.0";
+
+ src = fetchFromGitHub {
+ owner = "LuminanceHDR";
+ repo = "LuminanceHDR";
+ rev = "v.${version}";
+ sha256 = "1izmgjjp8mgyxv57sjjr05z7g7059ykb5wchlcn4wrnnb6aslnvn";
+ };
+
+ NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
+
+ buildInputs = [
+ qtbase qtdeclarative qttools qtwebengine eigen
+ boost exiv2 fftwFloat gsl ilmbase lcms2 libraw libtiff openexr
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://qtpfsgui.sourceforge.net/";
+ description = "A complete open source solution for HDR photography";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.hrdinka ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
new file mode 100644
index 000000000000..384ddac5b4c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, libpng
+, gsl
+, libsndfile
+, lzo
+, qmake
+, qttools
+, qtbase
+, qtmultimedia
+, withOpenCL ? true
+, opencl-clhpp ? null
+, ocl-icd ? null
+}:
+
+assert withOpenCL -> opencl-clhpp != null;
+assert withOpenCL -> ocl-icd != null;
+
+mkDerivation rec {
+ pname = "mandelbulber";
+ version = "2.23";
+
+ src = fetchFromGitHub {
+ owner = "buddhi1980";
+ repo = "mandelbulber2";
+ rev = version;
+ sha256 = "08izphj7jyk3wsq3qbzaf2fplys80vr39wliqc1i4c5cr90nrq1l";
+ };
+
+ nativeBuildInputs = [
+ qmake
+ qttools
+ ];
+ buildInputs = [
+ qtbase
+ qtmultimedia
+ libpng
+ gsl
+ libsndfile
+ lzo
+ ] ++ lib.optionals withOpenCL [
+ opencl-clhpp
+ ocl-icd
+ ];
+
+ sourceRoot = "${src.name}/mandelbulber2";
+
+ qmakeFlags = [
+ "SHARED_PATH=${placeholder ''out''}"
+ (if withOpenCL
+ then "qmake/mandelbulber-opencl.pro"
+ else "qmake/mandelbulber.pro")
+ ];
+
+ meta = with lib; {
+ description = "A 3D fractal rendering engine";
+ longDescription = "Mandelbulber creatively generates three-dimensional fractals. Explore trigonometric, hyper-complex, Mandelbox, IFS, and many other 3D fractals.";
+ homepage = "https://mandelbulber.com";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ kovirobi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
new file mode 100644
index 000000000000..c9110cbea0b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
@@ -0,0 +1,99 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, python3
+, wrapGAppsHook
+, gobject-introspection
+, gtk3
+, gdk-pixbuf
+# Recommended Dependencies:
+, unrarSupport ? false
+, unrar
+, p7zip
+, lhasa
+, mupdf
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "mcomix3";
+ version = "unstable-2020-11-23";
+
+ # fetch from github because no official release on pypi/github and no build system
+ src = fetchFromGitHub {
+ repo = "${pname}";
+ owner = "multiSnow";
+ rev = "cdcb27533dc7ee2ebf7b0a8ab5ba10e61c0b8ff8";
+ sha256 = "0q9xgl60ryf7qmy5vgzgfry4rvw5j9rb4d1ilxmpjmvm7dd3fm2k";
+ };
+
+ buildInputs = [ gobject-introspection gtk3 gdk-pixbuf ];
+ nativeBuildInputs = [ wrapGAppsHook ];
+ propagatedBuildInputs = (with python3.pkgs; [ pillow pygobject3 pycairo ]);
+
+ format = "other";
+
+ # Correct wrapper behavior, see https://github.com/NixOS/nixpkgs/issues/56943
+ # until https://github.com/NixOS/nixpkgs/pull/102613
+ strictDeps = false;
+
+ preInstall = ''
+ libdir=$out/lib/${python3.libPrefix}/site-packages
+ mkdir -p $out/share/{icons/hicolor,man/man1,applications,metainfo,thumbnailers}
+ mkdir -p $out/bin $libdir
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ ${python3.executable} installer.py --srcdir=mcomix --target=$libdir
+ mv $libdir/mcomix/mcomixstarter.py $out/bin/${pname}
+ mv $libdir/mcomix/comicthumb.py $out/bin/comicthumb
+ mv $libdir/mcomix/mcomix/* $libdir/mcomix
+
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ rmdir $libdir/mcomix/mcomix
+ cp man/* $out/share/man/man1/
+ cp -r mime/icons/* $out/share/icons/hicolor/
+ cp mime/*.desktop $out/share/applications/
+ cp mime/*.appdata.xml $out/share/metainfo/
+ cp mime/*.thumbnailer $out/share/thumbnailers/
+ for folder in $out/share/icons/hicolor/*; do
+ mkdir $folder/{apps,mimetypes}
+ mv $folder/*.png $folder/mimetypes
+ cp $folder/mimetypes/application-x-cbt.png $folder/mimetypes/application-x-cbr.png
+ cp $folder/mimetypes/application-x-cbt.png $folder/mimetypes/application-x-cbz.png
+ done
+ '';
+
+ # to prevent double wrapping
+ dontWrapGApps = true;
+ preFixup = ''
+ makeWrapperArgs+=(
+ "''${gappsWrapperArgs[@]}"
+ "--prefix" "PATH" ":" "${lib.makeBinPath ([ p7zip lhasa mupdf ] ++ lib.optional (unrarSupport) unrar)}"
+ )
+ '';
+
+ # real pytests seem to be broken upstream
+ checkPhase = ''
+ $out/bin/comicthumb --help > /dev/null
+ $out/bin/${pname} --help > /dev/null
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Comic book reader and image viewer; python3 fork of mcomix";
+ longDescription = ''
+ User-friendly, customizable image viewer, specifically designed to handle
+ comic books and manga supporting a variety of container formats
+ (including CBR, CBZ, CB7, CBT, LHA and PDF)
+ '';
+ homepage = "https://github.com/multiSnow/mcomix3";
+ changelog = "https://github.com/multiSnow/mcomix3/blob/gtk3/ChangeLog";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ confus ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/meh/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/meh/default.nix
new file mode 100644
index 000000000000..0b2e5bc37774
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/meh/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libX11, libXext, libjpeg, libpng, giflib }:
+
+stdenv.mkDerivation {
+ name = "meh-unstable-2015-04-11";
+
+ src = fetchFromGitHub {
+ owner = "jhawthorn";
+ repo = "meh";
+ rev = "4ab1c75f97cb70543db388b3ed99bcfb7e94c758";
+ sha256 = "1j1n3m9hjhz4faryai97jq7cr6a322cqrd878gpkm9nrikap3bkk";
+ };
+
+ installPhase = ''
+ make PREFIX=$out install
+ '';
+
+ outputs = [ "out" "man" ];
+
+ buildInputs = [ libXext libX11 libjpeg libpng giflib ];
+
+ meta = {
+ description = "A minimal image viewer using raw XLib";
+ homepage = "https://www.johnhawthorn.com/meh/";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/meme/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/meme/default.nix
new file mode 100644
index 000000000000..8cbc776132e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/meme/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildGoPackage
+, unstableGitUpdater
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "meme";
+ version = "unstable-2017-09-10";
+
+ owner = "nomad-software";
+ repo = "meme";
+ goPackagePath = "github.com/${owner}/${repo}";
+
+ src = fetchFromGitHub {
+ inherit owner repo;
+ rev = "a6521f2eecb0aac22937b0013747ed9cb40b81ea";
+ sha256 = "1gbsv1d58ck6mj89q31s5b0ppw51ab76yqgz39jgwqnkidvzdfly";
+ };
+
+ passthru.updateScript = unstableGitUpdater { };
+
+ meta = with stdenv.lib; {
+ description = "A command line utility for creating image macro style memes";
+ homepage = "https://github.com/nomad-software/meme";
+ license = licenses.mit;
+ maintainers = [ maintainers.fgaz ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/meshlab/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
new file mode 100644
index 000000000000..50962d54eb23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
@@ -0,0 +1,96 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, fetchpatch
+, libGLU
+, qtbase
+, qtscript
+, qtxmlpatterns
+, lib3ds
+, bzip2
+, muparser
+, eigen
+, glew
+, gmp
+, levmar
+, qhull
+, cmake
+}:
+
+mkDerivation rec {
+ pname = "meshlab";
+ version = "2020.07";
+
+ src = fetchFromGitHub {
+ owner = "cnr-isti-vclab";
+ repo = "meshlab";
+ rev = "Meshlab-${version}";
+ sha256 = "0vj849b57zk3k6lx35zzcjhr9gdy4hxqnnkb8chwy7hw262cm3ri";
+ fetchSubmodules = true; # for vcglib
+ };
+
+ buildInputs = [
+ libGLU
+ qtbase
+ qtscript
+ qtxmlpatterns
+ lib3ds
+ bzip2
+ muparser
+ eigen
+ glew
+ gmp
+ levmar
+ qhull
+ ];
+
+ nativeBuildInputs = [ cmake ];
+
+ patches = [
+ # Make cmake use the system qhull. The next meshlab will not need this patch because it is already in master.
+ (fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/cnr-isti-vclab/meshlab/pull/747.patch";
+ sha256 = "0wx9f6zn458xz3lsqcgvsbwh1pgi3g0lah93nlbsb0sagng7n565";
+ })
+ ];
+
+ preConfigure = ''
+ substituteAll ${./meshlab.desktop} install/linux/resources/meshlab.desktop
+ cd src
+ '';
+
+ cmakeFlags = [
+ "-DALLOW_BUNDLED_EIGEN=OFF"
+ "-DALLOW_BUNDLED_GLEW=OFF"
+ "-DALLOW_BUNDLED_LIB3DS=OFF"
+ "-DALLOW_BUNDLED_MUPARSER=OFF"
+ "-DALLOW_BUNDLED_QHULL=OFF"
+ # disable when available in nixpkgs
+ "-DALLOW_BUNDLED_OPENCTM=ON"
+ "-DALLOW_BUNDLED_SSYNTH=ON"
+ # some plugins are disabled unless these are on
+ "-DALLOW_BUNDLED_NEWUOA=ON"
+ "-DALLOW_BUNDLED_LEVMAR=ON"
+ ];
+
+ postFixup = ''
+ patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlab-wrapped
+ patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlabserver-wrapped
+ '';
+
+ # Meshlab is not format-security clean; without disabling hardening, we get:
+ # src/common/GLLogStream.h:61:37: error: format not a string literal and no format arguments [-Werror=format-security]
+ # 61 | int chars_written = snprintf(buf, buf_size, f, std::forward<Ts>(ts)...);
+ # |
+ hardeningDisable = [ "format" ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "A system for processing and editing 3D triangular meshes";
+ homepage = "https://www.meshlab.net/";
+ license = lib.licenses.gpl3;
+ maintainers = with lib.maintainers; [ viric ];
+ platforms = with lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/meshlab/meshlab.desktop b/infra/libkookie/nixpkgs/pkgs/applications/graphics/meshlab/meshlab.desktop
new file mode 100644
index 000000000000..aa8de186440d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/meshlab/meshlab.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Name=MeshLab
+Version=@version@
+Name[en_GB]=MeshLab
+GenericName=Mesh processing
+GenericName[en_GB]=Mesh processing
+Comment=View and process meshes
+Type=Application
+Exec=@out@/bin/meshlab %U
+TryExec=@out@/bin/meshlab
+Icon=@out@/share/icons/hicolor/meshlab.png
+Terminal=false
+MimeType=model/mesh;application/x-3ds;image/x-3ds;model/x-ply;application/sla;model/x-quad-object;model/x-geomview-off;application/x-cyclone-ptx;application/x-vmi;application/x-bre;model/vnd.collada+xml;model/openctm;application/x-expe-binary;application/x-expe-ascii;application/x-xyz;application/x-gts;chemical/x-pdb;application/x-tri;application/x-asc;model/x3d+xml;model/x3d+vrml;model/vrml;model/u3d;model/idtf;
+Categories=Graphics;3DGraphics;Viewer;Qt;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix
new file mode 100644
index 000000000000..2af79659cedb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, libtiff, gettext }:
+
+stdenv.mkDerivation {
+ name = "minidjvu-0.8";
+ src = fetchurl {
+ url = "mirror://sourceforge/minidjvu/minidjvu-0.8.tar.gz";
+ sha256 = "0jmpvy4g68k6xgplj9zsl6brg6vi81mx3nx2x9hfbr1f4zh95j79";
+ };
+
+ patchPhase = ''
+ sed -i s,/usr/bin/gzip,gzip, Makefile.in
+ '';
+
+ buildInputs = [ libtiff gettext];
+
+ preInstall = ''
+ mkdir -p $out/lib
+ '';
+
+ meta = {
+ homepage = "http://djvu.sourceforge.net/djview4.html";
+ description = "Black-and-white djvu page encoder and decoder that use interpage information";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.viric ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/mozjpeg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mozjpeg/default.nix
new file mode 100644
index 000000000000..e17664a018ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mozjpeg/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libpng, nasm }:
+
+stdenv.mkDerivation rec {
+ version = "3.3.1";
+ pname = "mozjpeg";
+
+ src = fetchFromGitHub {
+ owner = "mozilla";
+ repo = "mozjpeg";
+ rev = "v${version}";
+ sha256 = "1na68860asn8b82ny5ilwbhh4nyl9gvx2yxmm4wr2v1v95v51fky";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libpng nasm ];
+
+ meta = {
+ description = "Mozilla JPEG Encoder Project";
+ longDescription = ''
+ This project's goal is to reduce the size of JPEG files without reducing quality or compatibility with the
+ vast majority of the world's deployed decoders.
+
+ The idea is to reduce transfer times for JPEGs on the Web, thus reducing page load times.
+ '';
+ homepage = "https://github.com/mozilla/mozjpeg";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = [ stdenv.lib.maintainers.aristid ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/mtpaint/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mtpaint/default.nix
new file mode 100644
index 000000000000..91278c9881fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mtpaint/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig
+, freetype, giflib, gtk2, lcms2, libjpeg, libpng, libtiff, openjpeg, gifsicle
+}:
+
+stdenv.mkDerivation rec {
+ p_name = "mtPaint";
+ ver_maj = "3.49";
+ ver_min = "12";
+ name = "${p_name}-${ver_maj}.${ver_min}";
+
+ src = fetchFromGitHub {
+ owner = "wjaguar";
+ repo = p_name;
+ rev = "6aed1b0441f99055fc7d475942f8bd5cb23c41f8";
+ sha256 = "0bvf623g0n2ifijcxv1nw0z3wbs2vhhdky4n04ywsbjlykm44nd1";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ freetype giflib gtk2 lcms2 libjpeg libpng libtiff openjpeg gifsicle
+ ];
+
+ meta = {
+ description = "A simple GTK painting program";
+ longDescription = ''
+ mtPaint is a simple GTK painting program designed for
+ creating icons and pixel based artwork. It can edit indexed palette
+ or 24 bit RGB images and offers basic painting and palette manipulation
+ tools. It also has several other more powerful features such as channels,
+ layers and animation.
+ Due to its simplicity and lack of dependencies it runs well on
+ GNU/Linux, Windows and older PC hardware.
+ '';
+ homepage = "http://mtpaint.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.vklquevs ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/mypaint/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mypaint/default.nix
new file mode 100644
index 000000000000..7267e8401600
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/mypaint/default.nix
@@ -0,0 +1,100 @@
+{ stdenv
+, fetchFromGitHub
+, gtk3
+, gettext
+, json_c
+, lcms2
+, libpng
+, librsvg
+, gobject-introspection
+, libmypaint
+, hicolor-icon-theme
+, mypaint-brushes
+, gdk-pixbuf
+, pkgconfig
+, python3
+, swig
+, wrapGAppsHook
+}:
+
+let
+ inherit (python3.pkgs) pycairo pygobject3 numpy buildPythonApplication;
+in buildPythonApplication rec {
+ pname = "mypaint";
+ version = "2.0.1";
+
+ src = fetchFromGitHub {
+ owner = "mypaint";
+ repo = "mypaint";
+ rev = "v${version}";
+ sha256 = "rVKcxzWZRLcuxK8xRyRgvitXAh4uOEyqHswLeTdA2Mk=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ gettext
+ pkgconfig
+ swig
+ wrapGAppsHook
+ gobject-introspection # for setup hook
+ hicolor-icon-theme # fór setup hook
+ ];
+
+ buildInputs = [
+ gtk3
+ gdk-pixbuf
+ libmypaint
+ mypaint-brushes
+ json_c
+ lcms2
+ libpng
+ librsvg
+ pycairo
+ pygobject3
+
+ # Mypaint checks for a presence of this theme scaffold and crashes when not present.
+ hicolor-icon-theme
+ ];
+
+ propagatedBuildInputs = [
+ numpy
+ pycairo
+ pygobject3
+ ];
+
+ checkInputs = [
+ gtk3
+ ];
+
+ buildPhase = ''
+ runHook preBuild
+
+ ${python3.interpreter} setup.py build
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ ${python3.interpreter} setup.py managed_install --prefix=$out
+
+ runHook postInstall
+ '';
+
+ checkPhase = ''
+ runHook preCheck
+
+ HOME=$TEMPDIR ${python3.interpreter} setup.py test
+
+ runHook postCheck
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A graphics application for digital painters";
+ homepage = "http://mypaint.org/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ goibhniu jtojnar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/nomacs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
new file mode 100644
index 000000000000..d23c02dbbdff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkgconfig
+
+, qtbase
+, qttools
+, qtsvg
+
+, exiv2
+, opencv4
+, libraw
+, libtiff
+, quazip
+}:
+
+mkDerivation rec {
+ pname = "nomacs";
+ version = "3.17.2206";
+
+ src = fetchFromGitHub {
+ owner = "nomacs";
+ repo = "nomacs";
+ rev = version;
+ sha256 = "1bq7bv4p7w67172y893lvpk90d6fgdpnylynbj2kn8m2hs6khya4";
+ };
+
+ enableParallelBuilding = true;
+
+ setSourceRoot = ''
+ sourceRoot=$(echo */ImageLounge)
+ '';
+
+ nativeBuildInputs = [cmake
+ pkgconfig];
+
+ buildInputs = [qtbase
+ qttools
+ qtsvg
+ exiv2
+ opencv4
+ libraw
+ libtiff
+ quazip];
+
+ cmakeFlags = ["-DENABLE_OPENCV=ON"
+ "-DENABLE_RAW=ON"
+ "-DENABLE_TIFF=ON"
+ "-DENABLE_QUAZIP=ON"
+ "-DENABLE_TRANSLATIONS=ON"
+ "-DUSE_SYSTEM_QUAZIP=ON"];
+
+ meta = with stdenv.lib; {
+ homepage = "https://nomacs.org";
+ description = "Qt-based image viewer";
+ maintainers = with stdenv.lib.maintainers; [ mindavi ];
+ license = licenses.gpl3Plus;
+ repositories.git = "https://github.com/nomacs/nomacs.git";
+ inherit (qtbase.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/ocrad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ocrad/default.nix
new file mode 100644
index 000000000000..80f592681110
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ocrad/default.nix
@@ -0,0 +1,36 @@
+{ fetchurl, stdenv, lzip, texinfo }:
+
+stdenv.mkDerivation rec {
+ pname = "ocrad";
+ version = "0.27";
+
+ src = fetchurl {
+ url = "mirror://gnu/ocrad/${pname}-${version}.tar.lz";
+ sha256 = "0divffvcaim89g4pvqs8kslbcxi475bcl3b4ynphf284k9zfdgx9";
+ };
+
+ nativeBuildInputs = [ lzip /* unpack */ ];
+ buildInputs = [ texinfo ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Optical character recognition (OCR) program & library";
+ longDescription =
+ '' GNU Ocrad is an OCR (Optical Character Recognition) program based on
+ a feature extraction method. It reads images in pbm (bitmap), pgm
+ (greyscale) or ppm (color) formats and produces text in byte (8-bit)
+ or UTF-8 formats.
+
+ Also includes a layout analyser able to separate the columns or
+ blocks of text normally found on printed pages.
+
+ Ocrad can be used as a stand-alone console application, or as a
+ backend to other programs.
+ '';
+
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix
new file mode 100644
index 000000000000..0378c4db13b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, mkDerivation, dpkg, fetchurl, qtbase }:
+
+let
+ # To obtain the version you will need to run the following command:
+ #
+ # dpkg-deb -I ${odafileconverter.src} | grep Version
+ version = "21.7.0.0";
+ rpath = "$ORIGIN:${lib.makeLibraryPath [ stdenv.cc.cc qtbase ]}";
+
+in mkDerivation {
+ pname = "oda-file-converter";
+ inherit version;
+ nativeBuildInputs = [ dpkg ];
+
+ src = fetchurl {
+ # NB: this URL is not stable (i.e. the underlying file and the corresponding version will change over time)
+ url = "https://download.opendesign.com/guestfiles/ODAFileConverter/ODAFileConverter_QT5_lnxX64_7.2dll.deb";
+ sha256 = "0sa21nnwzqb6g7gl0z43smqgcd9h3xipj3cq2cl7ybfh3cvcxfi9";
+ };
+
+ unpackPhase = ''
+ dpkg -x $src oda_unpacked
+ sourceRoot=$PWD/oda_unpacked
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib
+ cp -vr $sourceRoot/usr/bin/ODAFileConverter_${version} $out/libexec
+ cp -vr $sourceRoot/usr/share $out/share
+ '';
+
+ dontWrapQtApps = true;
+ fixupPhase = ''
+ echo "setting interpreter"
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/libexec/ODAFileConverter
+ patchelf --set-rpath '${rpath}' $out/libexec/ODAFileConverter
+ wrapQtApp $out/libexec/ODAFileConverter
+ mv $out/libexec/ODAFileConverter $out/bin
+
+ find $out/libexec -type f -executable | while read file; do
+ echo "patching $file"
+ patchelf --set-rpath '${rpath}' $file
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "For converting between different versions of .dwg and .dxf";
+ homepage = "https://www.opendesign.com/guestfiles/oda_file_converter";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ nagisa ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix
new file mode 100644
index 000000000000..89d49a151457
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, boost
+, cmake
+, ilmbase
+, libjpeg
+, libpng
+, libtiff
+, opencolorio
+, openexr
+, robin-map
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+ pname = "openimageio";
+ version = "2.1.9.0";
+
+ src = fetchFromGitHub {
+ owner = "OpenImageIO";
+ repo = "oiio";
+ rev = "Release-${version}";
+ sha256 = "1bbxx3bcc5jlb90ffxbk29gb8227097rdr8vg97vj9axw2mjd5si";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/OpenImageIO/oiio/pull/2441/commits/e9bdd69596103edf41b659ad8ab0ca4ce002f6f5.patch";
+ sha256 = "0x1wmjf1jrm19d1izhs1cs3y1if9al1zx48lahkfswyjag3r5dn0";
+ })
+ ];
+
+ outputs = [ "bin" "out" "dev" "doc" ];
+
+ nativeBuildInputs = [
+ cmake
+ unzip
+ ];
+
+ buildInputs = [
+ boost
+ ilmbase
+ libjpeg
+ libpng
+ libtiff
+ opencolorio
+ openexr
+ robin-map
+ ];
+
+ cmakeFlags = [
+ "-DUSE_PYTHON=OFF"
+ "-DUSE_QT=OFF"
+ # GNUInstallDirs
+ "-DCMAKE_INSTALL_LIBDIR=lib" # needs relative path for pkgconfig
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.openimageio.org";
+ description = "A library and tools for reading and writing images";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ goibhniu jtojnar ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/openimageio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
new file mode 100644
index 000000000000..1f2861e7109c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, boost, cmake, ilmbase, libjpeg, libpng, libtiff
+, opencolorio, openexr, unzip
+}:
+
+stdenv.mkDerivation rec {
+ pname = "openimageio";
+ version = "1.8.17";
+
+ src = fetchFromGitHub {
+ owner = "OpenImageIO";
+ repo = "oiio";
+ rev = "Release-${version}";
+ sha256 = "0zq34szprgkrrayg5sl3whrsx2l6lr8nw4hdrnwv2qhn70jbi2w2";
+ };
+
+ outputs = [ "bin" "out" "dev" "doc" ];
+
+ nativeBuildInputs = [ cmake unzip ];
+ buildInputs = [
+ boost ilmbase libjpeg libpng
+ libtiff opencolorio openexr
+ ];
+
+ cmakeFlags = [
+ "-DUSE_PYTHON=OFF"
+ ];
+
+ makeFlags = [
+ "ILMBASE_HOME=${ilmbase.dev}"
+ "OPENEXR_HOME=${openexr.dev}"
+ "USE_PYTHON=0"
+ "INSTALLDIR=${placeholder "out"}"
+ "dist_dir="
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.openimageio.org";
+ description = "A library and tools for reading and writing images";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/openscad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/openscad/default.nix
new file mode 100644
index 000000000000..8ff4d6f27e03
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/openscad/default.nix
@@ -0,0 +1,87 @@
+{ stdenv
+, fetchFromGitHub
+, qtbase
+, qtmultimedia
+, qscintilla
+, bison
+, flex
+, eigen
+, boost
+, libGLU, libGL
+, glew
+, opencsg
+, cgal
+, mpfr
+, gmp
+, glib
+, pkgconfig
+, harfbuzz
+, gettext
+, freetype
+, fontconfig
+, double-conversion
+, lib3mf
+, libzip
+, mkDerivation
+, qtmacextras
+, qmake
+}:
+
+mkDerivation rec {
+ pname = "openscad";
+ version = "2019.05";
+
+ src = fetchFromGitHub {
+ owner = "openscad";
+ repo = "openscad";
+ rev = "${pname}-${version}";
+ sha256 = "1qz384jqgk75zxk7sqd22ma9pyd94kh4h6a207ldx7p9rny6vc5l";
+ };
+
+ nativeBuildInputs = [ bison flex pkgconfig gettext qmake ];
+
+ buildInputs = [
+ eigen boost glew opencsg cgal mpfr gmp glib
+ harfbuzz lib3mf libzip double-conversion freetype fontconfig
+ qtbase qtmultimedia qscintilla
+ ] ++ stdenv.lib.optionals stdenv.isLinux [ libGLU libGL ]
+ ++ stdenv.lib.optional stdenv.isDarwin qtmacextras
+ ;
+
+ qmakeFlags = [ "VERSION=${version}" ];
+
+ # src/lexer.l:36:10: fatal error: parser.hxx: No such file or directory
+ enableParallelBuilding = false; # true by default due to qmake
+
+ postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+ mkdir $out/Applications
+ mv $out/bin/*.app $out/Applications
+ rmdir $out/bin || true
+
+ wrapQtApp "$out"/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD
+
+ mv --target-directory=$out/Applications/OpenSCAD.app/Contents/Resources \
+ $out/share/openscad/{examples,color-schemes,locale,libraries,fonts}
+
+ rmdir $out/share/openscad
+ '';
+
+ meta = {
+ description = "3D parametric model compiler";
+ longDescription = ''
+ OpenSCAD is a software for creating solid 3D CAD objects. It is free
+ software and available for Linux/UNIX, MS Windows and macOS.
+
+ Unlike most free software for creating 3D models (such as the famous
+ application Blender) it does not focus on the artistic aspects of 3D
+ modelling but instead on the CAD aspects. Thus it might be the
+ application you are looking for when you are planning to create 3D models of
+ machine parts but pretty sure is not what you are looking for when you are more
+ interested in creating computer-animated movies.
+ '';
+ homepage = "http://openscad.org/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ bjornfor raskin gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
new file mode 100644
index 000000000000..68830699699e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
@@ -0,0 +1,51 @@
+{ boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
+, libpng, libtiff, libusb1, lz4, lzma, lzo, openblas, pkgconfig, qtbase
+, qtmultimedia, qtscript, stdenv, superlu, wrapQtAppsHook, }:
+let source = import ./source.nix { inherit fetchFromGitHub; };
+in stdenv.mkDerivation rec {
+ inherit (source) src;
+
+ pname = "opentoonz";
+ version = source.versions.opentoonz;
+
+ nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
+
+ buildInputs = [
+ boost
+ freeglut
+ freetype
+ glew
+ libjpeg
+ libmypaint
+ libpng
+ libtiff
+ libusb1
+ lz4
+ lzma
+ lzo
+ openblas
+ qtbase
+ qtmultimedia
+ qtscript
+ superlu
+ ];
+
+ postUnpack = "sourceRoot=$sourceRoot/toonz";
+
+ cmakeDir = "../sources";
+ cmakeFlags = [
+ "-DTIFF_INCLUDE_DIR=${libtiff.dev}/include"
+ "-DTIFF_LIBRARY=${libtiff.out}/lib/libtiff.so"
+ ];
+
+ postInstall = ''
+ sed -i '/cp -r .*stuff/a\ chmod -R u+w $HOME/.config/OpenToonz/stuff' $out/bin/opentoonz
+ '';
+
+ meta = {
+ description = "Full-featured 2D animation creation software";
+ homepage = "https://opentoonz.github.io/";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = with stdenv.lib.maintainers; [ chkno ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix
new file mode 100644
index 000000000000..6663c47553e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix
@@ -0,0 +1,21 @@
+# Per https://github.com/opentoonz/opentoonz/blob/master/doc/how_to_build_linux.md ,
+# opentoonz requires its own modified version of libtiff. We still build it as
+# a separate package
+# 1. For visibility for tools like vulnix, and
+# 2. To avoid a diamond-dependency problem with qt linking the normal libtiff
+# and opentoonz linking qt and this modified libtiff, we build a qt against
+# this modified libtiff as well.
+
+{ fetchFromGitHub, libtiff }:
+let source = import ./source.nix { inherit fetchFromGitHub; };
+in libtiff.overrideAttrs (old: {
+ inherit (source) src;
+ version = source.versions.libtiff + "-opentoonz";
+ postUnpack = (old.postUnpack or "") + ''
+ sourceRoot="$sourceRoot/thirdparty/tiff-${source.versions.libtiff}"
+ '';
+ # opentoonz uses internal libtiff headers
+ postInstall = (old.postInstall or "") + ''
+ cp libtiff/{tif_config,tif_dir,tiffiop}.h $dev/include
+ '';
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix
new file mode 100644
index 000000000000..7378d2f5f965
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix
@@ -0,0 +1,16 @@
+# opentoonz's source archive contains both opentoonz's source and a modified
+# version of libtiff that opentoonz requires.
+
+{ fetchFromGitHub, }: rec {
+ versions = {
+ opentoonz = "1.4.0";
+ libtiff = "4.0.3";
+ };
+
+ src = fetchFromGitHub {
+ owner = "opentoonz";
+ repo = "opentoonz";
+ rev = "v${versions.opentoonz}";
+ sha256 = "0vgclx2yydsm5i2smff3fj8m750nhf35wfhva37kywgws01s189b";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/panotools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/panotools/default.nix
new file mode 100644
index 000000000000..c03bdd8331be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/panotools/default.nix
@@ -0,0 +1,23 @@
+{ fetchurl, stdenv, libjpeg, libpng, libtiff, perl }:
+
+stdenv.mkDerivation rec {
+ name = "libpano13-2.9.19";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/panotools/${name}.tar.gz";
+ sha256 = "1a4m3plmfcrrplqs9zfzhc5apibn10m5sajpizm1sd3q74w5fwq3";
+ };
+
+ buildInputs = [ perl libjpeg libpng libtiff ];
+
+ # one of the tests succeeds on my machine but fails on Hydra (no idea why)
+ #doCheck = true;
+
+ meta = {
+ homepage = "http://panotools.sourceforge.net/";
+ description = "Free software suite for authoring and displaying virtual reality panoramas";
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # arbitrary choice
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/paraview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/paraview/default.nix
new file mode 100644
index 000000000000..b201f9dbf0da
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/paraview/default.nix
@@ -0,0 +1,88 @@
+{ boost, cmake, fetchFromGitHub, ffmpeg, qtbase, qtx11extras,
+ qttools, qtxmlpatterns, qtsvg, gdal, gfortran, libXt, makeWrapper,
+ mkDerivation, ninja, openmpi, python3, stdenv, tbb, libGLU, libGL }:
+
+mkDerivation rec {
+ pname = "paraview";
+ version = "5.8.0";
+
+ src = fetchFromGitHub {
+ owner = "Kitware";
+ repo = "ParaView";
+ rev = "v${version}";
+ sha256 = "1mka6wwg9mbkqi3phs29mvxq6qbc44sspbm4awwamqhilh4grhrj";
+ fetchSubmodules = true;
+ };
+
+ # Avoid error: format not a string literal and
+ # no format arguments [-Werror=format-security]
+ preConfigure = ''
+ substituteInPlace VTK/Common/Core/vtkLogger.h \
+ --replace 'vtkLogScopeF(verbosity_name, __func__)' 'vtkLogScopeF(verbosity_name, "%s", __func__)'
+
+ substituteInPlace VTK/Common/Core/vtkLogger.h \
+ --replace 'vtkVLogScopeF(level, __func__)' 'vtkVLogScopeF(level, "%s", __func__)'
+ '';
+
+ # Find the Qt platform plugin "minimal"
+ patchPhase = ''
+ export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix}
+ '';
+
+ # During build, binaries are called that rely on freshly built
+ # libraries. These reside in build/lib, and are not found by
+ # default.
+ preBuild = ''
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib:$PWD/VTK/ThirdParty/vtkm/vtk-m/lib
+ '';
+
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DPARAVIEW_ENABLE_FFMPEG=ON"
+ "-DPARAVIEW_ENABLE_GDAL=ON"
+ "-DPARAVIEW_ENABLE_MOTIONFX=ON"
+ "-DPARAVIEW_ENABLE_VISITBRIDGE=ON"
+ "-DPARAVIEW_ENABLE_XDMF3=ON"
+ "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
+ "-DPARAVIEW_USE_MPI=ON"
+ "-DPARAVIEW_USE_PYTHON=ON"
+ "-DVTK_SMP_IMPLEMENTATION_TYPE=TBB"
+ "-DVTKm_ENABLE_MPI=ON"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ "-DCMAKE_INSTALL_INCLUDEDIR=include"
+ "-DCMAKE_INSTALL_BINDIR=bin"
+ "-DOpenGL_GL_PREFERENCE=GLVND"
+ "-GNinja"
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ makeWrapper
+ ninja
+ gfortran
+ ];
+
+ buildInputs = [
+ libGLU libGL
+ libXt
+ openmpi
+ (python3.withPackages (ps: with ps; [ numpy matplotlib mpi4py ]))
+ tbb
+ boost
+ ffmpeg
+ gdal
+ qtbase
+ qtx11extras
+ qttools
+ qtxmlpatterns
+ qtsvg
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.paraview.org/";
+ description = "3D Data analysis and visualization application";
+ license = licenses.free;
+ maintainers = with maintainers; [ guibert ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/pbrt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pbrt/default.nix
new file mode 100644
index 000000000000..fa3034cb3b07
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pbrt/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchFromGitHub, flex, bison, cmake, git, zlib}:
+
+stdenv.mkDerivation {
+
+ version = "2018-08-15";
+ pname = "pbrt-v3";
+
+ src = fetchFromGitHub {
+ rev = "86b5821308088deea70b207bc8c22219d0103d65";
+ owner = "mmp";
+ repo = "pbrt-v3";
+ sha256 = "0f7ivsczba6zfk5f0bba1js6dcwf6w6jrkiby147qp1sx5k35cv8";
+ fetchSubmodules = true;
+ };
+
+ patches = [
+ # https://github.com/mmp/pbrt-v3/issues/196
+ ./openexr-cmake-3.12.patch
+ ];
+
+ buildInputs = [ git flex bison cmake zlib ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://pbrt.org";
+ description = "The renderer described in the third edition of the book 'Physically Based Rendering: From Theory To Implementation'";
+ platforms = platforms.linux ;
+ license = licenses.bsd2;
+ maintainers = [ maintainers.juliendehos ];
+ priority = 10;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/pbrt/openexr-cmake-3.12.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pbrt/openexr-cmake-3.12.patch
new file mode 100644
index 000000000000..2993922a1ecf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pbrt/openexr-cmake-3.12.patch
@@ -0,0 +1,26 @@
+diff -ur a/src/ext/openexr/CMakeLists.txt b/src/ext/openexr/CMakeLists.txt
+--- a/src/ext/openexr/CMakeLists.txt 1970-01-01 09:00:01.000000000 +0900
++++ b/src/ext/openexr/CMakeLists.txt 2018-08-31 21:44:56.490714484 +0900
+@@ -26,22 +26,4 @@
+ ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/config
+ )
+
+-add_custom_target(CopyIlmBaseLibs
+- COMMAND ${CMAKE_COMMAND} -E copy_directory
+- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Half/$<CONFIGURATION>
+- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
+- COMMAND ${CMAKE_COMMAND} -E copy_directory
+- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/IlmThread/$<CONFIGURATION>
+- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
+- COMMAND ${CMAKE_COMMAND} -E copy_directory
+- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Iex/$<CONFIGURATION>
+- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
+- COMMAND ${CMAKE_COMMAND} -E copy_directory
+- ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Imath/$<CONFIGURATION>
+- ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>
+-)
+-add_dependencies(CopyIlmBaseLibs Iex Imath IlmThread Half)
+-
+ add_subdirectory(OpenEXR OpenEXR)
+-add_dependencies(b44ExpLogTable CopyIlmBaseLibs)
+-add_dependencies(dwaLookups CopyIlmBaseLibs)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
new file mode 100644
index 000000000000..3f91fae0beb7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "pdfcpu";
+ version = "0.3.7";
+
+ src = fetchFromGitHub {
+ owner = "pdfcpu";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "13b1ncpx189ca0h70j5cdp0jwlj95kasysryz1l6g13cwn9n6mii";
+ };
+
+ vendorSha256 = "11w9i1829hk1qb9w24dyxv1bi49358a274g60x11fp5x5cw7bqa7";
+
+ # No tests
+ doCheck = false;
+
+ subPackages = [ "cmd/pdfcpu" ];
+
+ meta = with stdenv.lib; {
+ description = "A PDF processor written in Go";
+ homepage = "https://pdfcpu.io";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ doronbehar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/pencil/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pencil/default.nix
new file mode 100644
index 000000000000..19e8121ac08d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pencil/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchurl, lib, makeWrapper, wrapGAppsHook,
+ # build dependencies
+ alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig,
+ freetype, gdk-pixbuf, glib, glibc, gtk3, libuuid, nspr, nss, pango,
+ xorg, systemd
+}:
+let
+
+ deps = [
+ alsaLib
+ atk
+ at-spi2-atk
+ at-spi2-core
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ glibc
+ gtk3
+ libuuid
+ nspr
+ nss
+ pango
+ xorg.libX11
+ xorg.libxcb
+ xorg.libXScrnSaver
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXtst
+ stdenv.cc.cc.lib
+ stdenv.cc.cc
+ ];
+
+in stdenv.mkDerivation rec {
+ version = "3.1.0";
+ pname = "pencil";
+
+ src = fetchurl {
+ url = "http://pencil.evolus.vn/dl/V${version}.ga/pencil_${version}.ga_amd64.deb";
+ sha256 = "01ae54b1a1351b909eb2366c6ec00816e1deba370e58f35601cf7368f10aaba3";
+ };
+
+ sourceRoot = ".";
+
+ unpackCmd = ''
+ ar p "$src" data.tar.gz | tar xz
+ '';
+
+ dontBuild = true;
+
+ nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+
+ buildInputs = deps;
+
+ installPhase = ''
+ mkdir -p $out/bin $out/opt $out/share/applications
+ cp -R usr/share $out/
+ cp -R opt/pencil*/ $out/opt/pencil
+ cp $out/opt/pencil/pencil.desktop $out/share/applications/
+
+ # fix the path in the desktop file
+ substituteInPlace \
+ $out/share/applications/pencil.desktop \
+ --replace /opt/ $out/opt/
+
+ # symlink the binary to bin/
+ ln -s $out/opt/pencil/pencil $out/bin/pencil
+ '';
+
+
+ preFixup = let
+ packages = deps;
+ libPathNative = lib.makeLibraryPath packages;
+ libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
+ libPath = "${libPathNative}:${libPath64}";
+ in ''
+ # patch executable
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libPath}:$out/opt/pencil" \
+ $out/opt/pencil/pencil
+
+ # fix missing libudev
+ ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/opt/pencil/libudev.so.1
+ wrapProgram $out/opt/pencil/pencil \
+ --prefix LD_LIBRARY_PATH : $out/opt/pencil
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GUI prototyping/mockup tool";
+ homepage = "https://pencil.evolus.vn/";
+ license = licenses.gpl2; # Commercial license is also available
+ maintainers = with maintainers; [ bjornfor prikhi mrVanDalo ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/photivo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photivo/default.nix
new file mode 100644
index 000000000000..09b5bd378397
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photivo/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchhg, fetchpatch, cmake, qt4, fftw, graphicsmagick_q16,
+ lcms2, lensfun, pkgconfig, libjpeg, exiv2, liblqr1 }:
+
+stdenv.mkDerivation {
+ name = "photivo-2014-01-25";
+
+ src = fetchhg {
+ url = "http://code.google.com/p/photivo/";
+ rev = "d687864489da";
+ sha256 = "0f6y18k7db2ci6xn664zcwm1g1k04sdv7gg1yd5jk41bndjb7z8h";
+ };
+
+ patches = [
+ # Patch fixing build with lensfun >= 0.3, taken from
+ # https://www.linuxquestions.org/questions/slackware-14/photivo-4175530230/#post5296578
+ (fetchpatch {
+ url = "https://www.linuxquestions.org/questions/attachment.php?attachmentid=17287&d=1420577220";
+ name = "lensfun-0.3.patch";
+ sha256 = "0ys45x4r4bjjlx0zpd5d56rgjz7k8gxili4r4k8zx3zfka4a3zwv";
+ })
+ ./gcc6.patch
+ ];
+
+ postPatch = '' # kinda icky
+ sed -e '/("@INSTALL@")/d' \
+ -e s,@INSTALL@,$out/share/photivo, \
+ -i Sources/ptSettings.cpp
+ sed '1i#include <math.h>' -i Sources/filters/ptFilter_StdCurve.cpp
+ '';
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [ qt4 fftw graphicsmagick_q16 lcms2 lensfun libjpeg exiv2 liblqr1 ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ broken = true; # exiv2 0.27.1 FTBFS
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/photivo/gcc6.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photivo/gcc6.patch
new file mode 100644
index 000000000000..e2eb795fc8e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photivo/gcc6.patch
@@ -0,0 +1,13 @@
+diff --git c/Sources/ptImage.cpp i/Sources/ptImage.cpp
+index 9c95093..623c157 100755
+--- c/Sources/ptImage.cpp
++++ i/Sources/ptImage.cpp
+@@ -5291,7 +5291,7 @@ ptImage* ptImage::Box(const uint16_t MaxRadius, float* Mask) {
+ NewRow = NewRow < 0? -NewRow : NewRow > Height1? Height1_2-NewRow : NewRow ;
+ NewRow *= m_Width;
+ for(j = -IntRadius; j <= IntRadius; j++) {
+- if (Dist[abs(i)][abs(j)] < Radius) {
++ if (Dist[int16_t(abs(i))][int16_t(abs(j))] < Radius) {
+ NewCol = Col+j;
+ NewCol = NewCol < 0? -NewCol : NewCol > Width1? Width1_2-NewCol : NewCol ;
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflare/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
new file mode 100644
index 000000000000..f619d79c0f55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, stdenv, graphicsmagick, fetchFromGitHub, qmake, qtbase, qttools
+}:
+
+mkDerivation rec {
+ pname = "photoflare";
+ version = "1.6.6";
+
+ src = fetchFromGitHub {
+ owner = "PhotoFlare";
+ repo = "photoflare";
+ rev = "v${version}";
+ sha256 = "07lrlxagv1bljj607s8m0zsbzx9jrvi18bnxahnm7r4i5car5x2d";
+ };
+
+ nativeBuildInputs = [ qmake qttools ];
+ buildInputs = [ qtbase graphicsmagick ];
+
+ qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ NIX_CFLAGS_COMPILE = "-I${graphicsmagick}/include/GraphicsMagick";
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface";
+ homepage = "https://photoflare.io";
+ maintainers = [ maintainers.omgbebebe ];
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflow/CMakeLists.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflow/CMakeLists.patch
new file mode 100644
index 000000000000..7d3d62b41b42
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflow/CMakeLists.patch
@@ -0,0 +1,13 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9b48beea..078ba20d 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -603,7 +603,7 @@ ENDIF(APPLE)
+ #
+ # photoflow executable
+ #
+-add_executable(photoflow main.cc ${RESOURCE_OBJECT})
++add_executable(photoflow main.cc version.cc ${RESOURCE_OBJECT})
+ IF(APPLE)
+ set_target_properties(photoflow PROPERTIES LINK_FLAGS " -framework ApplicationServices ")
+ ENDIF(APPLE)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflow/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflow/default.nix
new file mode 100644
index 000000000000..cb8ef65b2e9e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoflow/default.nix
@@ -0,0 +1,90 @@
+{ automake
+, cmake
+, exiv2
+, expat
+, fetchFromGitHub
+, fftw
+, fftwFloat
+, gettext
+, glib
+, gobject-introspection
+, gtkmm2
+, lcms2
+, lensfun
+, libexif
+, libiptcdata
+, libjpeg
+, libraw
+, libtiff
+, libxml2
+, ninja
+, openexr
+, pcre
+, pkgconfig
+, pugixml
+, stdenv
+, swig
+, vips
+}:
+
+stdenv.mkDerivation rec {
+ pname = "photoflow";
+ version = "2020-08-28";
+
+ src = fetchFromGitHub {
+ owner = "aferrero2707";
+ repo = pname;
+ rev = "8472024fb91175791e0eb23c434c5b58ecd250eb";
+ sha256 = "1bq4733hbh15nwpixpyhqfn3bwkg38amdj2xc0my0pii8l9ln793";
+ };
+
+ patches = [ ./CMakeLists.patch ];
+
+ nativeBuildInputs = [
+ automake
+ cmake
+ gettext
+ glib
+ gobject-introspection
+ libxml2
+ ninja
+ pkgconfig
+ swig
+ ];
+
+ buildInputs = [
+ exiv2
+ expat
+ fftw
+ fftwFloat
+ gtkmm2 # Could be build with gtk3 but proper UI theme is missing and therefore not very usable with gtk3
+ # See: https://discuss.pixls.us/t/help-needed-for-gtk3-theme/5803
+ lcms2
+ lensfun
+ libexif
+ libiptcdata
+ libjpeg
+ libraw
+ libtiff
+ openexr
+ pcre
+ pugixml
+ vips
+ ];
+
+ cmakeFlags = [
+ "-DBUNDLED_EXIV2=OFF"
+ "-DBUNDLED_LENSFUN=OFF"
+ "-DBUNDLED_GEXIV2=OFF"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A fully non-destructive photo retouching program providing a complete RAW image editing workflow";
+ homepage = "https://aferrero2707.github.io/PhotoFlow/";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.MtP ];
+ platforms = platforms.linux;
+ # sse3 is not supported on aarch64
+ badPlatforms = [ "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoqt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoqt/default.nix
new file mode 100644
index 000000000000..71c63bc82aa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/photoqt/default.nix
@@ -0,0 +1,48 @@
+{ mkDerivation, stdenv, fetchurl, cmake, exiv2, graphicsmagick, libraw, fetchpatch
+, qtbase, qtdeclarative, qtmultimedia, qtquickcontrols, qttools, qtgraphicaleffects
+, extra-cmake-modules, poppler, kimageformats, libarchive, libdevil
+}:
+
+mkDerivation rec {
+ pname = "photoqt";
+ version = "1.7.1";
+
+ src = fetchurl {
+ url = "https://${pname}.org/pkgs/${pname}-${version}.tar.gz";
+ sha256 = "1qvxdh3cbjcywqx0da2qp8z092660qyzv5yknqbps2zr12qqb103";
+ };
+
+ patches = [
+ # Fixes build with exiv2 0.27.1
+ (fetchpatch {
+ url = "https://gitlab.com/luspi/photoqt/commit/c6fd41478e818f3a651d40f96cab3d790e1c09a4.patch";
+ sha256 = "1j2pdr7hm3js7lswhb4qkf9sj9viclhjqz50qxpyd7pqrl1gf2va";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake extra-cmake-modules qttools ];
+
+ buildInputs = [
+ qtbase qtquickcontrols exiv2 graphicsmagick poppler
+ qtmultimedia qtdeclarative libraw qtgraphicaleffects
+ kimageformats libarchive
+ ];
+
+ cmakeFlags = [
+ "-DFREEIMAGE=OFF"
+ "-DDEVIL=OFF"
+ ];
+
+ preConfigure = ''
+ export MAGICK_LOCATION="${graphicsmagick}/include/GraphicsMagick"
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "https://photoqt.org/";
+ description = "Simple, yet powerful and good looking image viewer";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/phototonic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/phototonic/default.nix
new file mode 100644
index 000000000000..7020bf6c83e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/phototonic/default.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, stdenv, fetchFromGitHub, qtbase, qmake, exiv2 }:
+
+mkDerivation rec {
+ pname = "phototonic";
+ version = "2.1";
+
+ src = fetchFromGitHub {
+ repo = "phototonic";
+ owner = "oferkv";
+ rev = "v${version}";
+ sha256 = "0csidmxl1sfmn6gq81vn9f9jckb4swz3sgngnwqa4f75lr6604h7";
+ };
+
+ buildInputs = [ qtbase exiv2 ];
+ nativeBuildInputs = [ qmake ];
+
+ preConfigure = ''
+ sed -i 's;/usr;$$PREFIX/;g' phototonic.pro
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An image viewer and organizer";
+ homepage = "https://sourceforge.net/projects/phototonic/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix
new file mode 100644
index 000000000000..e34d5a87a478
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, pygobject3
+, pycairo
+, glib
+, gtk3
+, gobject-introspection
+, wrapGAppsHook
+, python
+}:
+
+buildPythonPackage rec {
+ pname = "pick-colour-picker";
+ version = "unstable-2019-10-11"; # "1.5.0-3ec940"
+
+ src = fetchFromGitHub {
+ owner = "stuartlangridge";
+ repo = "ColourPicker";
+ rev = "3ec9406d787ce373f6db0d520ed38a921edb9473";
+ sha256 = "04l8ch9297nhkgcmyhsbg0il424c8vy0isns1c7aypn0zp0dc4zd";
+ };
+
+ nativeBuildInputs = [
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ pythonPath = [
+ pygobject3
+ pycairo
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ ];
+
+ # https://github.com/NixOS/nixpkgs/issues/56943
+ # this must be false, otherwise the gobject-introspection hook doesn't run
+ strictDeps = false;
+
+ preDistPhases = [ "fixupIconPath" ];
+
+ fixupIconPath = ''
+ pickLoc="$out/${python.sitePackages}/pick"
+ shareLoc=$(echo "$out/${python.sitePackages}/nix/store/"*)
+ mv "$shareLoc/share" "$out/share"
+
+ sed "s|os.environ.get('SNAP'), \"usr\"|'$out'|g" -i "$pickLoc/__main__.py"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://kryogenix.org/code/pick/";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ description = "A colour picker that remembers where you picked colours from";
+ maintainers = [ maintainers.mkg20001 ];
+
+ longDescription = ''
+ Pick lets you pick colours from anywhere on your screen. Choose the colour you want and Pick remembers it, names it, and shows you a screenshot so you can remember where you got it from.
+
+ Zoom all the way in to pixels to pick just the right one. Show your colours in your choice of format: rgba() or hex, CSS or Gdk or Qt, whichever you prefer. Copy to the clipboard ready for pasting into code or graphics apps.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/pinta/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pinta/default.nix
new file mode 100644
index 000000000000..b534763b2456
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pinta/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, fetchFromGitHub, buildDotnetPackage, dotnetPackages, gtksharp,
+ gettext }:
+
+let
+ mono-addins = dotnetPackages.MonoAddins;
+in
+buildDotnetPackage rec {
+ name = "pinta-1.6";
+
+ baseName = "Pinta";
+ version = "1.6";
+ outputFiles = [ "bin/*" ];
+ buildInputs = [ gtksharp mono-addins gettext ];
+ xBuildFiles = [ "Pinta.sln" ];
+
+ src = fetchFromGitHub {
+ owner = "PintaProject";
+ repo = "Pinta";
+ rev = version;
+ sha256 = "0vgswy981c7ys4q7js5k85sky7bz8v32wsfq3br4j41vg92pw97d";
+ };
+
+ # Remove version information from nodes <Reference Include="... Version=... ">
+ postPatch = with stdenv.lib; let
+ csprojFiles = [
+ "Pinta/Pinta.csproj"
+ "Pinta.Core/Pinta.Core.csproj"
+ "Pinta.Effects/Pinta.Effects.csproj"
+ "Pinta.Gui.Widgets/Pinta.Gui.Widgets.csproj"
+ "Pinta.Resources/Pinta.Resources.csproj"
+ "Pinta.Tools/Pinta.Tools.csproj"
+ ];
+ versionedNames = [
+ "Mono\\.Addins"
+ "Mono\\.Posix"
+ "Mono\\.Addins\\.Gui"
+ "Mono\\.Addins\\.Setup"
+ ];
+
+ stripVersion = name: file: let
+ match = ''<Reference Include="${name}([ ,][^"]*)?"'';
+ replace = ''<Reference Include="${name}"'';
+ in "sed -i -re 's/${match}/${replace}/g' ${file}\n";
+
+ # Map all possible pairs of two lists
+ map2 = f: listA: listB: concatMap (a: map (f a) listB) listA;
+ concatMap2Strings = f: listA: listB: concatStrings (map2 f listA listB);
+ in
+ concatMap2Strings stripVersion versionedNames csprojFiles
+ + ''
+ # For some reason there is no Microsoft.Common.tasks file
+ # in ''${mono}/lib/mono/3.5 .
+ substituteInPlace Pinta.Install.proj \
+ --replace 'ToolsVersion="3.5"' 'ToolsVersion="4.0"' \
+ --replace "/usr/local" "$out"
+ '';
+
+ makeWrapperArgs = [
+ ''--prefix MONO_GAC_PREFIX : ${gtksharp}''
+ ''--prefix LD_LIBRARY_PATH : ${gtksharp}/lib''
+ ''--prefix LD_LIBRARY_PATH : ${gtksharp.gtk.out}/lib''
+ ];
+
+ postInstall = ''
+ # Do automake's job manually
+ substitute xdg/pinta.desktop.in xdg/pinta.desktop \
+ --replace _Name Name \
+ --replace _Comment Comment \
+ --replace _GenericName GenericName \
+ --replace _X-GNOME-FullName X-GNOME-FullName
+
+ xbuild /target:CompileTranslations Pinta.Install.proj
+ xbuild /target:Install Pinta.Install.proj
+ '';
+
+ meta = {
+ homepage = "https://www.pinta-project.com/";
+ description = "Drawing/editing program modeled after Paint.NET";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/potrace/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/potrace/default.nix
new file mode 100644
index 000000000000..dd8e84349fad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/potrace/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "potrace";
+ version = "1.16";
+
+ src = fetchurl {
+ url = "http://potrace.sourceforge.net/download/${version}/potrace-${version}.tar.gz";
+ sha256 = "1k3sxgjqq0jnpk9xxys05q32sl5hbf1lbk1gmfxcrmpdgnhli0my";
+ };
+
+ configureFlags = [ "--with-libpotrace" ];
+
+ buildInputs = [ zlib ];
+
+ enableParallelBuilding = true;
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://potrace.sourceforge.net/";
+ description = "A tool for tracing a bitmap, which means, transforming a bitmap into a smooth, scalable image";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.pSub ];
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/pqiv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
new file mode 100644
index 000000000000..96efc091ef2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkgconfig
+, ffmpeg_3, gtk3, imagemagick, libarchive, libspectre, libwebp, poppler
+}:
+
+stdenv.mkDerivation (rec {
+ pname = "pqiv";
+ version = "2.12";
+
+ src = fetchFromGitHub {
+ owner = "phillipberndt";
+ repo = "pqiv";
+ rev = version;
+ sha256 = "18nvrqmlifh4m8nfs0d19sb9d1l3a95xc89qxqdr881jcxdsgflw";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ ffmpeg_3 gtk3 imagemagick libarchive libspectre libwebp poppler ];
+
+ prePatch = "patchShebangs .";
+
+ meta = with stdenv.lib; {
+ description = "Powerful image viewer with minimal UI";
+ homepage = "http://www.pberndt.com/Programme/Linux/pqiv";
+ license = licenses.gpl3;
+ maintainers = [];
+ platforms = platforms.linux;
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/processing/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/processing/default.nix
new file mode 100644
index 000000000000..de5ae4fcbfd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/processing/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, fetchurl, xmlstarlet, makeWrapper, ant, jdk, rsync, javaPackages, libXxf86vm, gsettings-desktop-schemas }:
+
+stdenv.mkDerivation rec {
+ pname = "processing";
+ version = "3.5.4";
+
+ src = fetchFromGitHub {
+ owner = "processing";
+ repo = "processing";
+ rev = "processing-0270-${version}";
+ sha256 = "0cvv8jda9y8qnfcsziasyv3w7h3w22q78ihr23cm4an63ghxci58";
+ };
+
+ nativeBuildInputs = [ ant rsync makeWrapper ];
+ buildInputs = [ jdk ];
+
+ buildPhase = ''
+ # use compiled jogl to avoid patchelf'ing .so files inside jars
+ rm core/library/*.jar
+ cp ${javaPackages.jogl_2_3_2}/share/java/*.jar core/library/
+
+ # do not download a file during build
+ ${xmlstarlet}/bin/xmlstarlet ed --inplace -P -d '//get[@src="http://download.processing.org/reference.zip"]' build/build.xml
+ install -D -m0444 ${fetchurl {
+ # Use archive.org link for reproducibility until the following issue is fixed:
+ # https://github.com/processing/processing/issues/5711
+ url = "https://web.archive.org/web/20200406132357/https://download.processing.org/reference.zip";
+ sha256 = "093hc7kc9wfxqgf5dzfmfp68pbsy8x647cj0a25vgjm1swi61zbi";
+ }
+ } ./java/reference.zip
+
+ # suppress "Not fond of this Java VM" message box
+ substituteInPlace app/src/processing/app/platform/LinuxPlatform.java \
+ --replace 'Messages.showWarning' 'if (false) Messages.showWarning'
+
+ ( cd build
+ substituteInPlace build.xml --replace "jre-download," "" # do not download jre1.8.0_144
+ mkdir -p linux/jre1.8.0_144 # fake dir to avoid error
+ ant build )
+ '';
+
+ installPhase = ''
+ mkdir $out
+ cp -dpR build/linux/work $out/${pname}
+
+ rmdir $out/${pname}/java
+ ln -s ${jdk} $out/${pname}/java
+
+ makeWrapper $out/${pname}/processing $out/bin/processing \
+ --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name} \
+ --prefix _JAVA_OPTIONS " " -Dawt.useSystemAAFontSettings=lcd \
+ --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib
+ makeWrapper $out/${pname}/processing-java $out/bin/processing-java \
+ --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name} \
+ --prefix _JAVA_OPTIONS " " -Dawt.useSystemAAFontSettings=lcd \
+ --prefix LD_LIBRARY_PATH : ${libXxf86vm}/lib
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A language and IDE for electronic arts";
+ homepage = "https://processing.org";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix
new file mode 100644
index 000000000000..f9dc494b4b35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix
@@ -0,0 +1,43 @@
+{ mkDerivation, stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools, qtx11extras, poppler }:
+
+mkDerivation rec {
+ pname = "qcomicbook";
+ version = "0.9.1";
+
+ src = fetchFromGitHub {
+ owner = "stolowski";
+ repo = "QComicBook";
+ rev = version;
+ sha256 = "1b769lp6gfwds4jb2g7ymhdm9c06zg57zpyz3zpdb40w07zfsjzv";
+ };
+
+ nativeBuildInputs = [
+ cmake pkgconfig
+ ];
+
+ buildInputs = [
+ qtbase qttools qtx11extras poppler
+ ];
+
+ postInstall = ''
+ substituteInPlace $out/share/applications/*.desktop \
+ --replace "Exec=qcomicbook" "Exec=$out/bin/qcomicbook"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/stolowski/QComicBook";
+ description = "Comic book reader in Qt5";
+ license = licenses.gpl2;
+
+ longDescription = ''
+ QComicBook is a viewer for PDF files and comic book archives containing
+ jpeg/png/xpm/gif/bmp images, which aims at convenience and simplicity.
+ Features include: automatic unpacking of archive files, full-screen mode, continuous
+ scrolling mode, double-pages viewing, manga mode, thumbnails view, page scaling,
+ mouse or keyboard navigation etc.
+ '';
+
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ greydot ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qimgv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qimgv/default.nix
new file mode 100644
index 000000000000..2b24a34fbc25
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qimgv/default.nix
@@ -0,0 +1,60 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, fetchpatch
+
+, cmake
+, pkgconfig
+
+, exiv2
+, mpv
+, opencv4
+, qtbase
+, qtimageformats
+, qtsvg
+}:
+
+mkDerivation rec {
+ pname = "qimgv";
+ version = "0.9.1";
+
+ src = fetchFromGitHub {
+ owner = "easymodo";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0b2hddps969gjim2r9a22zaxmnzp600av2zz6icq66ksfrx1rpac";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ ];
+
+ buildInputs = [
+ exiv2
+ mpv
+ opencv4
+ qtbase
+ qtimageformats
+ qtsvg
+ ];
+
+ postPatch = ''
+ sed -i "s@/usr/bin/mpv@${mpv}/bin/mpv@" \
+ qimgv/settings.cpp
+ '';
+
+ # Wrap the library path so it can see `libqimgv_player_mpv.so`, which is used
+ # to play video files within qimgv itself.
+ qtWrapperArgs = [
+ "--prefix LD_LIBRARY_PATH : ${placeholder "out"}/lib"
+ ];
+
+ meta = with lib; {
+ description = "A Qt5 image viewer with optional video support";
+ homepage = "https://github.com/easymodo/qimgv";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cole-h ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qimgv/qt5-12-compat.diff b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qimgv/qt5-12-compat.diff
new file mode 100644
index 000000000000..da64759e22d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qimgv/qt5-12-compat.diff
@@ -0,0 +1,13 @@
+diff --git a/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp b/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp
+index 96ec9d3..6d95d08 100644
+--- a/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp
++++ b/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp
+@@ -21,7 +21,7 @@ void LinuxWorker::setDescriptor(int desc) {
+
+ void LinuxWorker::run() {
+ emit started();
+- isRunning.storeRelaxed(true);
++ isRunning.store(true);
+
+ if (fd == -1) {
+ qDebug() << TAG << "File descriptor isn't set! Stopping";
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qiv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qiv/default.nix
new file mode 100644
index 000000000000..d3dd917d7b7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qiv/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, gtk2, imlib2, file, lcms2, libexif } :
+
+stdenv.mkDerivation (rec {
+ version = "2.3.2";
+ pname = "qiv";
+
+ src = fetchurl {
+ url = "https://spiegl.de/qiv/download/${pname}-${version}.tgz";
+ sha256 = "1mc0f2nnas4q0d7zc9r6g4z93i32xlx0p9hl4fn5zkyml24a1q28";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 imlib2 file lcms2 libexif ];
+
+ preBuild=''
+ substituteInPlace Makefile --replace /usr/local "$out"
+ substituteInPlace Makefile --replace /man/ /share/man/
+ substituteInPlace Makefile --replace /share/share/ /share/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Quick image viewer";
+ homepage = "http://spiegl.de/qiv/";
+ inherit version;
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qiv/default.upstream b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qiv/default.upstream
new file mode 100644
index 000000000000..e6c7ef2408e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qiv/default.upstream
@@ -0,0 +1,3 @@
+url http://spiegl.de/qiv/download/
+version_link '[.]tgz$'
+do_overwrite() { do_overwrite_just_version; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qosmic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qosmic/default.nix
new file mode 100644
index 000000000000..96823441b6e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qosmic/default.nix
@@ -0,0 +1,70 @@
+{ mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, qmake
+, wrapQtAppsHook
+, qtbase
+, pkg-config
+, lua
+, flam3
+, libxml2
+, libpng
+, libjpeg
+, lib
+}:
+
+mkDerivation rec {
+ pname = "qosmic";
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "bitsed";
+ repo = "qosmic";
+ rev = "v${version}";
+ sha256 = "13nw1mkdib14430r21mj352v62vi546vf184vyhxm7yjjygyra1w";
+ };
+
+ patches = [
+ # Allow overriding PREFIX (to install to $out,
+ # written while creating this derivation)
+ # https://github.com/bitsed/qosmic/pull/39
+ (fetchpatch {
+ name = "allow-overriding-PREFIX.patch";
+ url = "https://github.com/bitsed/qosmic/commit/77fb3a577b0710efae2a1d9ed97c26ae16f3a5ba.patch";
+ sha256 = "0v9hj9s78cb6bg8ca0wjkbr3c7ml1n51n8h4a70zpzzgzz7rli5b";
+ })
+ # Fix QButtonGroup include errors with Qt 5.11:
+ # Will be part of the next post-1.6.0 release
+ (fetchpatch {
+ name = "fix-class-QButtonGroup-include-errors-with-Qt-5.11.patch";
+ url = "https://github.com/bitsed/qosmic/commit/3f6e1ea8d384a124dbc2d568171a4da798480752.patch";
+ sha256 = "0bp6b759plkqs32nvfpkfvf3qqzc9716k3ycwnjvwabbvpg1xwbl";
+ })
+ ];
+
+ nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
+
+ buildInputs = [
+ qtbase
+ lua
+ flam3
+ libxml2
+ libpng
+ libjpeg
+ ];
+
+ qmakeFlags = [
+ # Use pkg-config to correctly locate library paths
+ "-config" "link_pkgconfig"
+ ];
+
+ meta = with lib; {
+ description = "A cosmic recursive flame fractal editor";
+ homepage = "https://github.com/bitsed/qosmic";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.raboof ];
+ # It might be possible to make it work on OSX,
+ # but this has not been tested.
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix
new file mode 100644
index 000000000000..1653ea927206
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, dos2unix, which, qt, Carbon }:
+
+stdenv.mkDerivation rec {
+ name = "qscreenshot-1.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/qscreenshot/${name}-src.tar.gz";
+ sha256 = "1spj5fg2l8p5bk81xsv6hqn1kcrdiy54w19jsfb7g5i94vcb1pcx";
+ };
+
+ buildInputs = [ dos2unix which qt ]
+ ++ stdenv.lib.optional stdenv.isDarwin Carbon;
+
+ # Remove carriage returns that cause /bin/sh to abort
+ preConfigure = ''
+ dos2unix configure
+ sed -i "s|lrelease-qt4|lrelease|" src/src.pro
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple creation and editing of screenshots";
+ homepage = "https://sourceforge.net/projects/qscreenshot/";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qvge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qvge/default.nix
new file mode 100644
index 000000000000..d8080e6fbb44
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qvge/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, substituteAll
+, qmake
+, qtx11extras
+, graphviz
+}:
+
+mkDerivation rec {
+ pname = "qvge";
+ version = "0.6.1";
+
+ src = fetchFromGitHub {
+ owner = "ArsMasiuk";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0j4ih03nl6iihhnxrfldkarg9hvxb62lpr58xspn417d3gj6xjll";
+ };
+
+ prePatch = "cd src";
+
+ patches = (substituteAll {
+ src = ./set-graphviz-path.patch;
+ inherit graphviz;
+ });
+
+ nativeBuildInputs = [ qmake ];
+
+ buildInputs = [ qtx11extras ];
+
+ meta = with lib; {
+ description = "Qt Visual Graph Editor";
+ homepage = "https://github.com/ArsMasiuk/qvge";
+ license = licenses.mit;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qvge/set-graphviz-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qvge/set-graphviz-path.patch
new file mode 100644
index 000000000000..d18eb81c5d04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qvge/set-graphviz-path.patch
@@ -0,0 +1,13 @@
+diff --git i/commonui/CNodeEditorUIController.cpp w/commonui/CNodeEditorUIController.cpp
+index 7dacd48..64983e4 100644
+--- i/commonui/CNodeEditorUIController.cpp
++++ w/commonui/CNodeEditorUIController.cpp
+@@ -123,7 +123,7 @@ CNodeEditorUIController::CNodeEditorUIController(CMainWindow *parent) :
+ QString pathToGraphviz = QCoreApplication::applicationDirPath() + "/../tools/graphviz";
+ m_optionsData.graphvizPath = QFileInfo(pathToGraphviz).absoluteFilePath();
+ #else
+- m_optionsData.graphvizPath = "";
++ m_optionsData.graphvizPath = "@graphviz@/bin";
+ #endif
+ m_gvController->setPathToGraphviz(m_optionsData.graphvizPath);
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/qview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qview/default.nix
new file mode 100644
index 000000000000..001616ab41dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/qview/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, lib, fetchFromGitHub, qmake, qtbase }:
+
+mkDerivation rec {
+ pname = "qview";
+ version = "4.0";
+
+ src = fetchFromGitHub {
+ owner = "jurplel";
+ repo = "qView";
+ rev = version;
+ sha256 = "15n9cq7w3ckinnx38hvncxrbkv4qm4k51sal41q4y0pkvhmafhnr";
+ };
+
+ nativeBuildInputs = [ qmake ];
+
+ buildInputs = [
+ qtbase
+ ];
+
+ patchPhase = ''
+ sed "s|/usr/|$out/|g" -i qView.pro
+ '';
+
+ meta = with lib; {
+ description = "Practical and minimal image viewer";
+ homepage = "https://interversehq.com/qview/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ acowley ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/rapcad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/rapcad/default.nix
new file mode 100644
index 000000000000..7e9547c1067c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/rapcad/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, fetchurl, cgal, boost, gmp, mpfr, flex, bison, dxflib, readline
+, qtbase, qmake, libGLU
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.9.8";
+ pname = "rapcad";
+
+ src = fetchFromGitHub {
+ owner = "gilesbathgate";
+ repo = "rapcad";
+ rev = "v${version}";
+ sha256 = "0a0sqf6h227zalh0jrz6jpm8iwji7q3i31plqk76i4qm9vsgrhir";
+ };
+
+ patches = [
+ (fetchurl {
+ url = "https://github.com/GilesBathgate/RapCAD/commit/278a8d6c7b8fe08f867002528bbab4a6319a7bb6.patch";
+ sha256 = "1vvkyf0wg79zdzs5zlggfrr1lrp1x75dglzl0mspnycwldsdwznj";
+ name = "disable-QVector-qHash.patch";
+ })
+ ];
+
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [ qtbase cgal boost gmp mpfr flex bison dxflib readline libGLU ];
+
+ meta = with stdenv.lib; {
+ license = licenses.gpl3;
+ maintainers = [ maintainers.raskin ];
+ platforms = platforms.linux;
+ description = ''Constructive solid geometry package'';
+ broken = true; # 2018-04-11
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
new file mode 100644
index 000000000000..aa6db0accdba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, mkDerivationWith, fetchurl, python3Packages
+, file, intltool, gobject-introspection, libgudev
+, udisks, gexiv2, gst_all_1, libnotify
+, exiftool, gdk-pixbuf, libmediainfo, vmtouch
+}:
+
+mkDerivationWith python3Packages.buildPythonApplication rec {
+ pname = "rapid-photo-downloader";
+ version = "0.9.18";
+
+ src = fetchurl {
+ url = "https://launchpad.net/rapid/pyqt/${version}/+download/${pname}-${version}.tar.gz";
+ sha256 = "15p7sssg6vmqbm5xnc4j5dr89d7gl7y5qyq44a240yl5aqkjnybw";
+ };
+
+ # Disable version check and fix install tests
+ postPatch = ''
+ substituteInPlace raphodo/constants.py \
+ --replace "disable_version_check = False" "disable_version_check = True"
+ substituteInPlace raphodo/rescan.py \
+ --replace "from preferences" "from raphodo.preferences"
+ '';
+
+ nativeBuildInputs = [
+ file
+ intltool
+ ];
+
+ # Package has no generally usable unit tests.
+ # The included doctests expect specific, hardcoded hardware to be present.
+ doCheck = false;
+
+ # NOTE: Without gobject-introspection in buildInputs, launching fails with
+ # "Namespace [Notify / GExiv2 / GUdev] not available"
+ buildInputs = [
+ gdk-pixbuf
+ gexiv2
+ gobject-introspection
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ gst_all_1.gstreamer
+ gst_all_1.gstreamer.dev
+ libgudev
+ libnotify
+ udisks
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pyqt5
+ pygobject3
+ gphoto2
+ pyzmq
+ tornado
+ psutil
+ pyxdg
+ arrow
+ dateutil
+ easygui
+ colour
+ pymediainfo
+ sortedcontainers
+ rawkit
+ requests
+ colorlog
+ pyprind
+ tenacity
+ ];
+
+ preFixup = ''
+ makeWrapperArgs+=(
+ --set GI_TYPELIB_PATH "$GI_TYPELIB_PATH"
+ --set PYTHONPATH "$PYTHONPATH"
+ --prefix PATH : "${stdenv.lib.makeBinPath [ exiftool vmtouch ]}"
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libmediainfo ]}"
+ --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+ "''${qtWrapperArgs[@]}"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Photo and video importer for cameras, phones, and memory cards";
+ homepage = "https://www.damonlynch.net/rapid/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/rawtherapee/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/rawtherapee/default.nix
new file mode 100644
index 000000000000..4371bc5838ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/rawtherapee/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, pixman, libpthreadstubs, gtkmm3, libXau
+, libXdmcp, lcms2, libiptcdata, libcanberra-gtk3, fftw, expat, pcre, libsigcxx, wrapGAppsHook
+, lensfun, librsvg
+}:
+
+stdenv.mkDerivation rec {
+ version = "5.8";
+ pname = "rawtherapee";
+
+ src = fetchFromGitHub {
+ owner = "Beep6581";
+ repo = "RawTherapee";
+ rev = version;
+ sha256 = "0d644s4grfia6f3k6y0byd5pwajr12kai2kc280yxi8v3w1b12ik";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ];
+
+ buildInputs = [
+ pixman libpthreadstubs gtkmm3 libXau libXdmcp
+ lcms2 libiptcdata libcanberra-gtk3 fftw expat pcre libsigcxx lensfun librsvg
+ ];
+
+ cmakeFlags = [
+ "-DPROC_TARGET_NUMBER=2"
+ "-DCACHE_NAME_SUFFIX=\"\""
+ ];
+
+ CMAKE_CXX_FLAGS = "-std=c++11 -Wno-deprecated-declarations -Wno-unused-result";
+
+ postUnpack = ''
+ echo "set(HG_VERSION $version)" > $sourceRoot/ReleaseInfo.cmake
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "RAW converter and digital photo processing software";
+ homepage = "http://www.rawtherapee.com/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [ jcumming mahe ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
new file mode 100644
index 000000000000..c1255c016f4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, mkDerivation
+, qtbase, qtx11extras, qtsvg, makeWrapper
+, vulkan-loader, libglvnd, xorg, python3, python3Packages
+, bison, pcre, automake, autoconf, addOpenGLRunpath
+}:
+let
+ custom_swig = fetchFromGitHub {
+ owner = "baldurk";
+ repo = "swig";
+ rev = "renderdoc-modified-7";
+ sha256 = "15r2m5kcs0id64pa2fsw58qll3jyh71jzc04wy20pgsh2326zis6";
+ };
+ pythonPackages = python3Packages;
+in
+mkDerivation rec {
+ version = "1.11";
+ pname = "renderdoc";
+
+ src = fetchFromGitHub {
+ owner = "baldurk";
+ repo = "renderdoc";
+ rev = "v${version}";
+ sha256 = "01r4fq03fpyhwvn47wx3dw29vcadcd0qml00h36q38cq3pi9x42j";
+ };
+
+ buildInputs = [
+ qtbase qtsvg xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader python3
+ ]; # ++ (with pythonPackages; [pyside2 pyside2-tools shiboken2]);
+ # TODO: figure out how to make cmake recognise pyside2
+
+ nativeBuildInputs = [ cmake makeWrapper pkgconfig bison pcre automake autoconf addOpenGLRunpath ];
+
+ postUnpack = ''
+ cp -r ${custom_swig} swig
+ chmod -R +w swig
+ patchShebangs swig/autogen.sh
+ '';
+
+ cmakeFlags = [
+ "-DBUILD_VERSION_HASH=${src.rev}"
+ "-DBUILD_VERSION_DIST_NAME=NixOS"
+ "-DBUILD_VERSION_DIST_VER=${version}"
+ "-DBUILD_VERSION_DIST_CONTACT=https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/graphics/renderdoc"
+ "-DBUILD_VERSION_STABLE=ON"
+ ];
+
+ # TODO: define these in the above array via placeholders, once those are widely supported
+ preConfigure = ''
+ cmakeFlags+=" -DVULKAN_LAYER_FOLDER=$out/share/vulkan/implicit_layer.d/"
+ cmakeFlags+=" -DRENDERDOC_SWIG_PACKAGE=$PWD/../swig"
+ '';
+
+ dontWrapQtApps = true;
+ preFixup = ''
+ wrapQtApp $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : "$out/lib:${vulkan-loader}/lib:${libglvnd}/lib"
+ wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : "$out/lib:${vulkan-loader}/lib:${libglvnd}/lib"
+ '';
+
+ # The only documentation for this so far is in pkgs/build-support/add-opengl-runpath/setup-hook.sh
+ postFixup = ''
+ addOpenGLRunpath $out/lib/librenderdoc.so
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A single-frame graphics debugger";
+ homepage = "https://renderdoc.org/";
+ license = licenses.mit;
+ longDescription = ''
+ RenderDoc is a free MIT licensed stand-alone graphics debugger that
+ allows quick and easy single-frame capture and detailed introspection
+ of any application using Vulkan, D3D11, OpenGL or D3D12 across
+ Windows 7 - 10, Linux or Android.
+ '';
+ maintainers = [maintainers.jansol];
+ platforms = ["i686-linux" "x86_64-linux"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/runwayml/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/runwayml/default.nix
new file mode 100644
index 000000000000..9366276ebf84
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/runwayml/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchurl
+, appimageTools
+, symlinkJoin
+}:
+
+let
+ pname = "runwayml";
+ version = "0.14.3";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://runway-releases.s3.amazonaws.com/Runway-${version}.AppImage";
+ sha256 = "1bx8j39wd2z6f32hdvmk9z77bivnizzdhn296kin2nnqgq6v6y93";
+ };
+
+ binary = appimageTools.wrapType2 {
+ name = pname;
+ inherit src;
+ };
+ # we only use this to extract the icon and desktop file
+ appimage-contents = appimageTools.extractType2 {
+ inherit name src;
+ };
+
+in
+ symlinkJoin {
+ inherit name;
+ paths = [ binary ];
+
+ postBuild = ''
+ mkdir -p $out/share/pixmaps/ $out/share/applications
+ cp ${appimage-contents}/usr/share/icons/hicolor/1024x1024/apps/runway.png $out/share/pixmaps/runway.png
+ sed 's:Exec=AppRun:Exec=runwayml:' ${appimage-contents}/runway.desktop > $out/share/applications/runway.desktop
+ '';
+
+ meta = with lib; {
+ description = "Machine learning for creators";
+ homepage = "https://runwayml.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ prusnak ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/rx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/rx/default.nix
new file mode 100644
index 000000000000..9350d7c5cd78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/rx/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, rustPlatform, fetchFromGitHub, makeWrapper
+, cmake, pkg-config
+, xorg ? null
+, libGL ? null }:
+
+with stdenv.lib;
+
+rustPlatform.buildRustPackage rec {
+ pname = "rx";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "cloudhead";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1pln65pqy39ijrld11d06klwzfhhzmrgdaxijpx9q7w9z66zmqb8";
+ };
+
+ cargoSha256 = "143a5x61s7ywk0ljqd10jkfvs6lrhlibkm2a9lw41wq13mgzb78j";
+
+ nativeBuildInputs = [ cmake pkg-config makeWrapper ];
+
+ buildInputs = optionals stdenv.isLinux
+ (with xorg; [
+ # glfw-sys dependencies:
+ libX11 libXrandr libXinerama libXcursor libXi libXext
+ ]);
+
+ # FIXME: GLFW (X11) requires DISPLAY env variable for all tests
+ doCheck = false;
+
+ postInstall = optional stdenv.isLinux ''
+ mkdir -p $out/share/applications
+ cp $src/rx.desktop $out/share/applications
+ wrapProgram $out/bin/rx --prefix LD_LIBRARY_PATH : ${libGL}/lib
+ '';
+
+ meta = {
+ description = "Modern and extensible pixel editor implemented in Rust";
+ homepage = "https://rx.cloudhead.io/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ minijackson Br1ght0ne ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
new file mode 100644
index 000000000000..3cce81ef8af0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, avahi, libsoup, libjpeg, libpng, gnutls
+, sane-backends, meson, ninja }:
+stdenv.mkDerivation rec {
+ pname = "sane-airscan";
+ version = "0.99.16";
+
+ nativeBuildInputs = [ meson ninja pkg-config ];
+ buildInputs = [ avahi libsoup libjpeg libpng gnutls sane-backends ];
+
+ src = fetchFromGitHub {
+ owner = "alexpevzner";
+ repo = pname;
+ rev = version;
+ sha256 = "00lgcdbpns0shwlpkvrpfm4z05s7v5q3al4kcw6ii7xnkzmv1721";
+ };
+
+ meta = with lib; {
+ homepage = "https://github.com/alexpevzner/sane-airscan";
+ description = "Scanner Access Now Easy - Apple AirScan (eSCL) driver";
+ longDescription = ''
+ sane-airscan: Linux support of Apple AirScan (eSCL) compatible document scanners.
+ '';
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ zaninime ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/default.nix
new file mode 100644
index 000000000000..2ada41ac98a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/default.nix
@@ -0,0 +1,94 @@
+{ stdenv, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb-compat-0_1 }:
+
+let
+ myPatchElf = file: with stdenv.lib; ''
+ patchelf --set-interpreter \
+ ${stdenv.glibc}/lib/ld-linux${optionalString stdenv.is64bit "-x86-64"}.so.2 \
+ ${file}
+ '';
+
+ udevRules = callPackage ./udev_rules_type1.nix {};
+
+in stdenv.mkDerivation rec {
+ name = "brscan4-0.4.8-1";
+ src =
+ if stdenv.hostPlatform.system == "i686-linux" then
+ fetchurl {
+ url = "http://download.brother.com/welcome/dlf006646/${name}.i386.deb";
+ sha256 = "15hrf1gpm36lniqi6yf47dvdqjinm644xb752c6rcv8n06wb79ag";
+ }
+ else if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "https://download.brother.com/welcome/dlf006645/${name}.amd64.deb";
+ sha256 = "0pyprjl0capg403yp6pp07gd6msx9kn7bzjcdswdbn28fyxrk5l4";
+ }
+ else throw "${name} is not supported on ${stdenv.hostPlatform.system} (only i686-linux and x86_64 linux are supported)";
+
+ unpackPhase = ''
+ ar x $src
+ tar xfvz data.tar.gz
+ '';
+
+ nativeBuildInputs = [ makeWrapper patchelf coreutils udevRules ];
+ buildInputs = [ libusb-compat-0_1 ];
+ dontBuild = true;
+
+ patchPhase = ''
+ ${myPatchElf "opt/brother/scanner/brscan4/brsaneconfig4"}
+
+ RPATH=${libusb-compat-0_1.out}/lib
+ for a in usr/lib64/sane/*.so*; do
+ if ! test -L $a; then
+ patchelf --set-rpath $RPATH $a
+ fi
+ done
+ '';
+
+ installPhase = with stdenv.lib; ''
+ PATH_TO_BRSCAN4="opt/brother/scanner/brscan4"
+ mkdir -p $out/$PATH_TO_BRSCAN4
+ cp -rp $PATH_TO_BRSCAN4/* $out/$PATH_TO_BRSCAN4
+ mkdir -p $out/lib/sane
+ cp -rp usr/lib${optionalString stdenv.is64bit "64"}/sane/* $out/lib/sane
+
+ # Symbolic links were absolute. Fix them so that they point to $out.
+ pushd "$out/lib/sane" > /dev/null
+ for a in *.so*; do
+ if test -L $a; then
+ fixedTargetFileName="$(basename $(readlink $a))"
+ unlink "$a"
+ ln -s -T "$fixedTargetFileName" "$a"
+ fi
+ done
+ popd > /dev/null
+
+ # Generate an LD_PRELOAD wrapper to redirect execvp(), open() and open64()
+ # calls to `/opt/brother/scanner/brscan4`.
+ preload=$out/libexec/brother/scanner/brscan4/libpreload.so
+ mkdir -p $(dirname $preload)
+ gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
+
+ makeWrapper \
+ "$out/$PATH_TO_BRSCAN4/brsaneconfig4" \
+ "$out/bin/brsaneconfig4" \
+ --set LD_PRELOAD $preload
+
+ mkdir -p $out/etc/sane.d
+ echo "brother4" > $out/etc/sane.d/dll.conf
+
+ mkdir -p $out/etc/udev/rules.d
+ cp -p ${udevRules}/etc/udev/rules.d/*.rules \
+ $out/etc/udev/rules.d
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ meta = {
+ description = "Brother brscan4 sane backend driver";
+ homepage = "http://www.brother.com";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ jraygauthier ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/preload.c b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/preload.c
new file mode 100644
index 000000000000..016162770934
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/preload.c
@@ -0,0 +1,170 @@
+/* Brgen4 search for configuration under `/etc/opt/brother/scanner/brscan4`. This
+ LD_PRELOAD library intercepts execvp(), open and open64 calls to redirect them to
+ the corresponding location in $out. Also support specifying an alternate
+ file name for `brsanenetdevice4.cfg` which otherwise is invariable
+ created at `/etc/opt/brother/scanner/brscan4`*/
+
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <string.h>
+#include <dirent.h>
+
+char origDir [] = "/etc/opt/brother/scanner/brscan4";
+char realDir [] = OUT "/opt/brother/scanner/brscan4";
+
+char devCfgFileNameEnvVar [] = "BRSANENETDEVICE4_CFG_FILENAME";
+char devCfgFileName [] = "/etc/opt/brother/scanner/brscan4//brsanenetdevice4.cfg";
+
+const char * rewrite(const char * path, char * buf)
+{
+ if (strncmp(path, devCfgFileName, sizeof(devCfgFileName)) == 0) {
+
+ const char* newCfgFileName = getenv(devCfgFileNameEnvVar);
+ if (!newCfgFileName) return path;
+
+ if (snprintf(buf, PATH_MAX, "%s", newCfgFileName) >= PATH_MAX)
+ abort();
+ return buf;
+ }
+
+ if (strncmp(path, origDir, sizeof(origDir) - 1) != 0) return path;
+ if (snprintf(buf, PATH_MAX, "%s%s", realDir, path + sizeof(origDir) - 1) >= PATH_MAX)
+ abort();
+ return buf;
+}
+
+const char* findAndReplaceFirstOccurence(const char* inStr, const char* subStr,
+ const char* replaceStr,
+ char* buf, unsigned maxBuf)
+{
+ const char* foundStr = strstr(inStr, subStr);
+ if (!foundStr)
+ return inStr;
+
+ const unsigned inStrLen = strlen(inStr);
+ const unsigned subStrLen = strlen(subStr);
+ const unsigned replaceStrLen = strlen(replaceStr);
+
+ const unsigned precedingStrLen = foundStr - inStr;
+ if (precedingStrLen + 1 > maxBuf)
+ return NULL;
+
+ const unsigned followingStrPos = precedingStrLen + subStrLen;
+ const unsigned followingStrLen = inStrLen - followingStrPos;
+
+ strncpy(buf, inStr, precedingStrLen);
+ unsigned outLength = precedingStrLen;
+
+ if (outLength + replaceStrLen + 1 > maxBuf)
+ return NULL;
+
+ strncpy(buf + outLength, replaceStr, replaceStrLen);
+ outLength += replaceStrLen;
+
+ if (outLength + followingStrLen + 1 > maxBuf)
+ return NULL;
+
+ strncpy(buf + outLength, inStr + followingStrPos, followingStrLen);
+ outLength += followingStrLen;
+
+ buf[outLength] = '\0';
+
+ return buf;
+}
+
+const char* rewriteSystemCall(const char* command, char* buf, unsigned maxBuf)
+{
+
+ const char* foundStr = strstr(command, devCfgFileName);
+ if (!foundStr)
+ return command;
+
+ const char* replaceStr = getenv(devCfgFileNameEnvVar);
+ if (!replaceStr) return command;
+
+ const char* result =
+ findAndReplaceFirstOccurence(command, devCfgFileName, replaceStr, buf, maxBuf);
+
+ if (!result)
+ abort();
+
+ return result;
+}
+
+int execvp(const char * path, char * const argv[])
+{
+ int (*_execvp) (const char *, char * const argv[]) = dlsym(RTLD_NEXT, "execvp");
+ char buf[PATH_MAX];
+ return _execvp(rewrite(path, buf), argv);
+}
+
+
+int open(const char *path, int flags, ...)
+{
+ char buf[PATH_MAX];
+ int (*_open) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open");
+ mode_t mode = 0;
+ if (flags & O_CREAT) {
+ va_list ap;
+ va_start(ap, flags);
+ mode = va_arg(ap, mode_t);
+ va_end(ap);
+ }
+ return _open(rewrite(path, buf), flags, mode);
+}
+
+int open64(const char *path, int flags, ...)
+{
+ char buf[PATH_MAX];
+ int (*_open64) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open64");
+ mode_t mode = 0;
+ if (flags & O_CREAT) {
+ va_list ap;
+ va_start(ap, flags);
+ mode = va_arg(ap, mode_t);
+ va_end(ap);
+ }
+ return _open64(rewrite(path, buf), flags, mode);
+}
+
+FILE* fopen(const char* path, const char* mode)
+{
+ char buf[PATH_MAX];
+ FILE* (*_fopen) (const char*, const char*) = dlsym(RTLD_NEXT, "fopen");
+
+ return _fopen(rewrite(path, buf), mode);
+}
+
+FILE *fopen64(const char *path, const char *mode)
+{
+ char buf[PATH_MAX];
+ FILE* (*_fopen64) (const char*, const char*) = dlsym(RTLD_NEXT, "fopen64");
+
+ return _fopen64(rewrite(path, buf), mode);
+}
+
+DIR* opendir(const char* path)
+{
+ char buf[PATH_MAX];
+ DIR* (*_opendir) (const char*) = dlsym(RTLD_NEXT, "opendir");
+
+ return _opendir(rewrite(path, buf));
+}
+
+#define SYSTEM_CMD_MAX 512
+
+int system(const char *command)
+{
+ char buf[SYSTEM_CMD_MAX];
+ int (*_system) (const char*) = dlsym(RTLD_NEXT, "system");
+
+ const char* newCommand = rewriteSystemCall(command, buf, SYSTEM_CMD_MAX);
+ return _system(newCommand);
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix
new file mode 100644
index 000000000000..682e401c069b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, libsaneUDevRuleNumber ? "49"}:
+
+stdenv.mkDerivation rec {
+ name = "brother-udev-rule-type1-1.0.0-1";
+
+ src = fetchurl {
+ url = "http://download.brother.com/welcome/dlf006654/${name}.all.deb";
+ sha256 = "0i0x5jw135pli4jl9mgnr5n2rrdvml57nw84yq2999r4frza53xi";
+ };
+
+ dontBuild = true;
+
+ unpackPhase = ''
+ ar x $src
+ tar xfvz data.tar.gz
+ '';
+
+ /*
+ Fix the following error:
+
+ ~~~
+ invalid rule 49-brother-libsane-type1.rules
+ unknown key 'SYSFS{idVendor}'
+ ~~~
+
+ Apparently the udev rules syntax has change and the SYSFS key has to
+ be changed to ATTR.
+
+ See:
+
+ - <http://ubuntuforums.org/showthread.php?t=1496878>
+ - <http://www.planet-libre.org/index.php?post_id=10937>
+ */
+ patchPhase = ''
+ sed -i -e s/SYSFS/ATTR/g opt/brother/scanner/udev-rules/type1/*.rules
+ '';
+
+ installPhase = ''
+ mkdir -p $out/etc/udev/rules.d
+ cp opt/brother/scanner/udev-rules/type1/NN-brother-mfp-type1.rules \
+ $out/etc/udev/rules.d/${libsaneUDevRuleNumber}-brother-libsane-type1.rules
+ chmod 644 $out/etc/udev/rules.d/${libsaneUDevRuleNumber}-brother-libsane-type1.rules
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ meta = {
+ description = "Brother type1 scanners udev rules";
+ homepage = "http://www.brother.com";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ jraygauthier ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
new file mode 100644
index 000000000000..ad2681d25fe5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
@@ -0,0 +1,10 @@
+{ callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+ version = "1.0.30";
+
+ src = fetchurl {
+ url = "https://gitlab.com/sane-project/backends/uploads/c3dd60c9e054b5dee1e7b01a7edc98b0/sane-backends-${version}.tar.gz";
+ sha256 = "18vryaycps3zpjzxh0wjgg8nv2f4pdvcfxxmdfj28qbzqjlrcp9z";
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/dsseries/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/dsseries/default.nix
new file mode 100644
index 000000000000..37ac02987061
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/dsseries/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, rpmextract }:
+
+stdenv.mkDerivation rec {
+ pname = "libsane-dsseries";
+ version = "1.0.5-1";
+
+ src = fetchurl {
+ url = "https://download.brother.com/welcome/dlf100974/${pname}-${version}.x86_64.rpm";
+ sha256 = "1wfdbfbf51cc7njzikdg48kwpnpc0pg5s6p0s0y3z0q7y59x2wbq";
+ };
+
+ nativeBuildInputs = [ rpmextract ];
+
+ unpackCmd = ''
+ mkdir ${pname}-${version} && pushd ${pname}-${version}
+ rpmextract $curSrc
+ popd
+ '';
+
+ patchPhase = ''
+ substituteInPlace etc/udev/rules.d/50-Brother_DSScanner.rules \
+ --replace 'GROUP="users"' 'GROUP="scanner", ENV{libsane_matched}="yes"'
+
+ mkdir -p etc/sane.d/dll.d
+ echo "dsseries" > etc/sane.d/dll.d/dsseries.conf
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+ cp -dr etc $out
+ cp -dr usr/lib64 $out/lib
+ '';
+
+ preFixup = ''
+ for f in `find $out/lib/sane/ -type f`; do
+ # Make it possible to find libstdc++.so.6
+ patchelf --set-rpath ${stdenv.cc.cc.lib}/lib:$out/lib/sane $f
+
+ # Horrible kludge: The driver hardcodes /usr/lib/sane/ as a dlopen path.
+ # We can directly modify the binary to force a relative lookup instead.
+ # The new path is NULL-padded to the same length as the original path.
+ sed -i "s|/usr/lib/sane/%s|%s\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|g" $f
+ done
+ '';
+
+ meta = {
+ description = "Brother DSSeries SANE backend driver";
+ homepage = "http://www.brother.com";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ callahad ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix
new file mode 100644
index 000000000000..d3e8b417017d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix
@@ -0,0 +1,95 @@
+{ stdenv
+, gettext, pkgconfig
+, avahi, libgphoto2, libieee1284, libjpeg, libpng, libtiff, libusb1, libv4l, net-snmp
+
+# List of { src name backend } attibute sets - see installFirmware below:
+, extraFirmware ? []
+
+# For backwards compatibility with older setups; use extraFirmware instead:
+, gt68xxFirmware ? null, snapscanFirmware ? null
+
+# Passed from versioned package (e.g. default.nix, git.nix):
+, version, src, ...
+}:
+
+stdenv.mkDerivation {
+ inherit src version;
+
+ name = "sane-backends-${version}";
+
+ outputs = [ "out" "doc" "man" ];
+
+ nativeBuildInputs = [
+ gettext
+ pkgconfig
+ ];
+
+ buildInputs = [
+ avahi
+ libgphoto2
+ libieee1284
+ libjpeg
+ libpng
+ libtiff
+ libusb1
+ libv4l
+ net-snmp
+ ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = []
+ ++ stdenv.lib.optional (avahi != null) "--enable-avahi"
+ ++ stdenv.lib.optional (libusb1 != null) "--with-usb"
+ ;
+
+ postInstall = let
+
+ compatFirmware = extraFirmware
+ ++ stdenv.lib.optional (gt68xxFirmware != null) {
+ src = gt68xxFirmware.fw;
+ inherit (gt68xxFirmware) name;
+ backend = "gt68xx";
+ }
+ ++ stdenv.lib.optional (snapscanFirmware != null) {
+ src = snapscanFirmware;
+ name = "your-firmwarefile.bin";
+ backend = "snapscan";
+ };
+
+ installFirmware = f: ''
+ mkdir -p $out/share/sane/${f.backend}
+ ln -sv ${f.src} $out/share/sane/${f.backend}/${f.name}
+ '';
+
+ in ''
+ mkdir -p $out/etc/udev/rules.d/
+ ./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules || \
+ cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules
+ # the created 49-libsane references /bin/sh
+ substituteInPlace $out/etc/udev/rules.d/49-libsane.rules \
+ --replace "RUN+=\"/bin/sh" "RUN+=\"${stdenv.shell}"
+
+ substituteInPlace $out/lib/libsane.la \
+ --replace "-ljpeg" "-L${libjpeg.out}/lib -ljpeg"
+
+ # net.conf conflicts with the file generated by the nixos module
+ rm -f $out/etc/sane.d/net.conf
+ '' + stdenv.lib.concatStrings (builtins.map installFirmware compatFirmware);
+
+ meta = with stdenv.lib; {
+ description = "SANE (Scanner Access Now Easy) backends";
+ longDescription = ''
+ Collection of open-source SANE backends (device drivers).
+ SANE is a universal scanner interface providing standardized access to
+ any raster image scanner hardware: flatbed scanners, hand-held scanners,
+ video- and still-cameras, frame-grabbers, etc. For a list of supported
+ scanners, see http://www.sane-project.org/sane-backends.html.
+ '';
+ homepage = "http://www.sane-project.org/";
+ license = licenses.gpl2Plus;
+
+ maintainers = with maintainers; [ peti ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/git.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/git.nix
new file mode 100644
index 000000000000..2edd739068d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/backends/git.nix
@@ -0,0 +1,10 @@
+{ callPackage, fetchgit, ... } @ args:
+
+callPackage ./generic.nix (args // {
+ version = "2017-12-01";
+ src = fetchgit {
+ sha256 = "0qf7d7268kdxnb723c03m6icxhbgx0vw8gqvck2q1w5b948dy9g8";
+ rev = "e895ee55bec8a3320a0e972b32c05d35b47fe226";
+ url = "https://gitlab.com/sane-project/backends.git";
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/config.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/config.nix
new file mode 100644
index 000000000000..2ef1e26f5ac6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/config.nix
@@ -0,0 +1,46 @@
+{ stdenv }:
+
+{ paths }:
+
+with stdenv.lib;
+let installSanePath = path: ''
+ if [ -e "${path}/lib/sane" ]; then
+ find "${path}/lib/sane" -maxdepth 1 -not -type d | while read backend; do
+ symlink "$backend" "$out/lib/sane/$(basename "$backend")"
+ done
+ fi
+
+ if [ -e "${path}/etc/sane.d" ]; then
+ find "${path}/etc/sane.d" -maxdepth 1 -not -type d | while read conf; do
+ name="$(basename $conf)"
+ if [ "$name" = "dll.conf" ] || [ "$name" = "saned.conf" ] || [ "$name" = "net.conf" ]; then
+ cat "$conf" >> "$out/etc/sane.d/$name"
+ else
+ symlink "$conf" "$out/etc/sane.d/$name"
+ fi
+ done
+ fi
+
+ if [ -e "${path}/etc/sane.d/dll.d" ]; then
+ find "${path}/etc/sane.d/dll.d" -maxdepth 1 -not -type d | while read conf; do
+ symlink "$conf" "$out/etc/sane.d/dll.d/$(basename $conf)"
+ done
+ fi
+ '';
+in
+stdenv.mkDerivation {
+ name = "sane-config";
+ phases = "installPhase";
+
+ installPhase = ''
+ function symlink () {
+ local target=$1 linkname=$2
+ if [ -e "$linkname" ]; then
+ echo "warning: conflict for $linkname. Overriding $(readlink $linkname) with $target."
+ fi
+ ln -sfn "$target" "$linkname"
+ }
+
+ mkdir -p $out/etc/sane.d $out/etc/sane.d/dll.d $out/lib/sane
+ '' + concatMapStrings installSanePath paths;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/frontends.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/frontends.nix
new file mode 100644
index 000000000000..885dff311b8f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/frontends.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, sane-backends, libX11, gtk2, pkgconfig, libusb-compat-0_1 ? null }:
+
+stdenv.mkDerivation rec {
+ pname = "sane-frontends";
+ version = "1.0.14";
+
+ src = fetchurl {
+ url = "https://alioth-archive.debian.org/releases/sane/${pname}/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1ad4zr7rcxpda8yzvfkq1rfjgx9nl6lan5a628wvpdbh3fn9v0z7";
+ };
+
+ preConfigure = ''
+ sed -e '/SANE_CAP_ALWAYS_SETTABLE/d' -i src/gtkglue.c
+ '';
+
+ buildInputs = [ sane-backends libX11 gtk2 ]
+ ++ stdenv.lib.optional (libusb-compat-0_1 != null) libusb-compat-0_1;
+ nativeBuildInputs = [ pkgconfig ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Scanner Access Now Easy";
+ homepage = "http://www.sane-project.org/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ peti ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/xsane.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/xsane.nix
new file mode 100644
index 000000000000..04d19dee8a8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sane/xsane.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, sane-backends, sane-frontends, libX11, gtk2, pkgconfig, libpng
+, libusb-compat-0_1 ? null
+, gimpSupport ? false, gimp ? null
+}:
+
+assert gimpSupport -> gimp != null;
+
+stdenv.mkDerivation rec {
+ name = "xsane-0.999";
+
+ src = fetchurl {
+ url = "http://www.xsane.org/download/${name}.tar.gz";
+ sha256 = "0jrb918sfb9jw3vmrz0z7np4q55hgsqqffpixs0ir5nwcwzd50jp";
+ };
+
+ preConfigure = ''
+ sed -e '/SANE_CAP_ALWAYS_SETTABLE/d' -i src/xsane-back-gtk.c
+ chmod a+rX -R .
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [libpng sane-backends sane-frontends libX11 gtk2 ]
+ ++ (if libusb-compat-0_1 != null then [libusb-compat-0_1] else [])
+ ++ stdenv.lib.optional gimpSupport gimp;
+
+ meta = {
+ homepage = "http://www.sane-project.org/";
+ description = "Graphical scanning frontend for sane";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [peti];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix
new file mode 100644
index 000000000000..e4598193469b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, mkDerivation
+, cmake, libjpeg, libpng, libtiff, boost
+, qtbase, qttools }:
+
+mkDerivation rec {
+ pname = "scantailor-advanced";
+ version = "1.0.16";
+
+ src = fetchFromGitHub {
+ owner = "4lex4";
+ repo = "scantailor-advanced";
+ rev = "v${version}";
+ sha256 = "0lc9lzbpiy5hgimyhl4s4q67pb9gacpy985gl6iy8pl79zxhmcyp";
+ };
+
+ nativeBuildInputs = [ cmake qttools ];
+ buildInputs = [ libjpeg libpng libtiff boost qtbase ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/4lex4/scantailor-advanced";
+ description = "Interactive post-processing tool for scanned pages";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ jfrankenau ];
+ platforms = with platforms; gnu ++ linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/scantailor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/scantailor/default.nix
new file mode 100644
index 000000000000..bc54f3aa627a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/scantailor/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, qt4, cmake, libjpeg, libtiff, boost }:
+
+stdenv.mkDerivation {
+ name = "scantailor-0.9.12.1";
+
+ src = fetchurl {
+ url = "https://github.com/scantailor/scantailor/archive/RELEASE_0_9_12_1.tar.gz";
+ sha256 = "1pjx3a6hs16az6rki59bchy3biy7jndjx8r125q01aq7lbf5npgg";
+ };
+
+ buildInputs = [ qt4 cmake libjpeg libtiff boost ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "http://scantailor.org/";
+ description = "Interactive post-processing tool for scanned pages";
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ maintainers = [ stdenv.lib.maintainers.viric ];
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/screencloud/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/screencloud/default.nix
new file mode 100644
index 000000000000..11e37c4bf649
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/screencloud/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchFromGitHub, cmake, qt4, quazip, qt-mobility, qxt, pythonPackages }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "screencloud";
+ version = "1.2.0";
+
+ # API Keys. According to the author of the AUR package, these are only used
+ # for tracking usage.
+ consumerKey = "23e747012c68601f27ab69c6de129ed70552d55b6";
+ consumerSecret = "4701cb00c1bd357bbcae7c3d713dd216";
+
+ src = fetchFromGitHub {
+ owner = "olav-st";
+ repo = "screencloud";
+ rev = "v${version}";
+ sha256 = "1s0dxa1sa37nvna5nfqdsp294810favj68qb7ghl78qna7zw0cim";
+ };
+
+ buildInputs = [ cmake qt4 quazip qt-mobility qxt pythonPackages.python pythonPackages.pycrypto ];
+
+ patchPhase = ''
+ # Required to make the configure script work. Normally, screencloud's
+ # CMakeLists file sets the install prefix to /opt by force. This is stupid
+ # and breaks nix, so we force it to install where we want. Please don't
+ # write CMakeLists files like this, as things like this are why we can't
+ # have nice things.
+ substituteInPlace "CMakeLists.txt" --replace "set(CMAKE_INSTALL_PREFIX \"/opt\")" ""
+ '';
+
+ enableParallelBuilding = true;
+
+ # We need to append /opt to our CMAKE_INSTALL_PREFIX, so we tell the Nix not
+ # to add the argument for us.
+ dontAddPrefix = true;
+
+ cmakeFlags = [
+ "-DQXT_QXTCORE_INCLUDE_DIR=${qxt}/include/QxtCore"
+ "-DQXT_QXTCORE_LIB_RELEASE=${qxt}/lib/libQxtCore.so"
+ "-DQXT_QXTGUI_INCLUDE_DIR=${qxt}/include/QxtGui"
+ "-DQXT_QXTGUI_LIB_RELEASE=${qxt}/lib/libQxtGui.so"
+ "-DCONSUMER_KEY_SCREENCLOUD=${consumerKey}"
+ "-DCONSUMER_SECRET_SCREENCLOUD=${consumerSecret}"
+ ];
+
+ setSourceRoot = ''
+ sourceRoot=$(echo */screencloud)
+ '';
+
+ preConfigure = ''
+ # This needs to be set in preConfigure instead of cmakeFlags in order to
+ # access the $prefix environment variable.
+ export cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix/opt $cmakeFlags"
+ '';
+
+ # There are a number of issues with screencloud's installation. We need to add
+ # pycrypto to the PYTHONPATH so that the SFTP plugin will work properly; and
+ # we need to move the libPythonQt library into a folder where it can actually
+ # be found.
+ postInstall = ''
+ patchShebangs $prefix/opt/screencloud/screencloud.sh
+ substituteInPlace "$prefix/opt/screencloud/screencloud.sh" --replace "/opt" "$prefix/opt"
+ sed -i "2 i\export PYTHONPATH=$(toPythonPath ${pythonPackages.pycrypto}):\$PYTHONPATH" "$prefix/opt/screencloud/screencloud.sh"
+ mkdir $prefix/bin
+ mkdir $prefix/lib
+ ln -s $prefix/opt/screencloud/screencloud.sh $prefix/bin/screencloud
+ ln -s $prefix/opt/screencloud/libPythonQt.so $prefix/lib/libPythonQt.so
+ '';
+
+ meta = {
+ homepage = "https://screencloud.net/";
+ description = "Client for Screencloud, an easy to use screenshot sharing tool";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ forkk ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/shotwell/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
new file mode 100644
index 000000000000..c041d2dde8cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
@@ -0,0 +1,110 @@
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, gtk3
+, libexif
+, libgphoto2
+, libwebp
+, libsoup
+, libxml2
+, vala
+, sqlite
+, webkitgtk
+, pkgconfig
+, gnome3
+, gst_all_1
+, libgudev
+, libraw
+, glib
+, glib-networking
+, json-glib
+, gcr
+, libgee
+, gexiv2
+, librest
+, gettext
+, desktop-file-utils
+, gdk-pixbuf
+, librsvg
+, wrapGAppsHook
+, gobject-introspection
+, itstool
+, libgdata
+, libchamplain
+, gsettings-desktop-schemas
+, python3
+}:
+
+# for dependencies see https://wiki.gnome.org/Apps/Shotwell/BuildingAndInstalling
+
+stdenv.mkDerivation rec {
+ pname = "shotwell";
+ version = "0.31.2";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0ywzr6vgcz8yy60v0jp55na9lgqi4dbh2vakfphkcml1gpah0r2l";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ vala
+ pkgconfig
+ itstool
+ gettext
+ desktop-file-utils
+ python3
+ wrapGAppsHook
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ gtk3
+ libexif
+ libgphoto2
+ libwebp
+ libsoup
+ libxml2
+ sqlite
+ webkitgtk
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ libgee
+ libgudev
+ gexiv2
+ gsettings-desktop-schemas
+ libraw
+ json-glib
+ glib
+ glib-networking
+ gdk-pixbuf
+ librsvg
+ librest
+ gcr
+ gnome3.adwaita-icon-theme
+ libgdata
+ libchamplain
+ ];
+
+ postPatch = ''
+ chmod +x build-aux/meson/postinstall.py # patchShebangs requires executable file
+ patchShebangs build-aux/meson/postinstall.py
+ '';
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ versionPolicy = "none";
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Popular photo organizer for the GNOME desktop";
+ homepage = "https://wiki.gnome.org/Apps/Shotwell";
+ license = licenses.lgpl21Plus;
+ maintainers = with maintainers; [domenkozar];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/shutter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/shutter/default.nix
new file mode 100644
index 000000000000..cddc99eebe29
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/shutter/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, perlPackages, makeWrapper, imagemagick, gdk-pixbuf, librsvg
+, hicolor-icon-theme, procps
+}:
+
+let
+ perlModules = with perlPackages;
+ [ Gnome2 Gnome2Canvas Gtk2 Glib Pango Gnome2VFS Gnome2Wnck Gtk2ImageView
+ Gtk2Unique FileBaseDir FileWhich FileCopyRecursive XMLSimple NetDBus XMLTwig
+ XMLParser HTTPMessage ProcSimple SortNaturally LocaleGettext
+ ProcProcessTable URI ImageExifTool Gtk2AppIndicator LWP JSON
+ PerlMagick WWWMechanize HTTPDate HTMLForm HTMLParser HTMLTagset JSONMaybeXS
+ commonsense HTTPCookies NetOAuth PathClass GooCanvas X11Protocol Cairo
+ EncodeLocale TryTiny TypesSerialiser LWPMediaTypes
+ ];
+in
+stdenv.mkDerivation {
+ name = "shutter-0.94.3";
+
+ src = fetchurl {
+ url = "https://launchpad.net/shutter/0.9x/0.94.3/+download/shutter-0.94.3.tar.gz";
+ sha256 = "01wv5k6zqfqa2rss461lpdpjxpfk4awzfdc6j2qk6bh4g4zgmgl5";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ perlPackages.perl procps gdk-pixbuf librsvg ] ++ perlModules;
+
+ installPhase = ''
+ mkdir -p "$out"
+ cp -a . "$out"
+ (cd "$out" && mv CHANGES README COPYING "$out/share/doc/shutter")
+
+ wrapProgram $out/bin/shutter \
+ --set PERL5LIB "${perlPackages.makePerlPath perlModules}" \
+ --prefix PATH : "${imagemagick.out}/bin" \
+ --suffix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
+ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Screenshot and annotation tool";
+ homepage = "https://shutter-project.org/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
new file mode 100644
index 000000000000..0df161cd4731
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, cmake, qt4, fftw }:
+
+let
+ rev = "9895036d26";
+in
+stdenv.mkDerivation rec {
+ name = "smartdeblur-git-${rev}";
+
+ src = fetchurl {
+ url = "https://github.com/Y-Vladimir/SmartDeblur/tarball/${rev}";
+ name = "${name}.tar.gz";
+ sha256 = "126x9x1zhqdarjz9in0p1qhmqg3jwz7frizadjvx723g2ppi33s4";
+ };
+
+ preConfigure = ''
+ cd src
+ '';
+
+ enableParallelBuilding = true;
+
+ buildInputs = [ cmake qt4 fftw ];
+
+ cmakeFlags = [ "-DUSE_SYSTEM_FFTW=ON" ];
+
+ meta = {
+ homepage = "https://github.com/Y-Vladimir/SmartDeblur";
+ description = "Tool for restoring blurry and defocused images";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/solvespace/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/solvespace/default.nix
new file mode 100644
index 000000000000..bd084b4287dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/solvespace/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchgit, cmake, pkgconfig, zlib, libpng, cairo, freetype
+, json_c, fontconfig, gtkmm3, pangomm, glew, libGLU, xorg, pcre
+, wrapGAppsHook
+}:
+stdenv.mkDerivation rec {
+ name = "solvespace-2.3-20190501";
+ rev = "e7b75f19c34c923780db776592b47152650d8f22";
+ src = fetchgit {
+ url = "https://github.com/solvespace/solvespace";
+ inherit rev;
+ sha256 = "07k4mbzxf0dmzwdhjx5nc09y7rn1schkaypsw9kz0l7ppylprpp2";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ pkgconfig cmake wrapGAppsHook
+ ];
+ buildInputs = [
+ zlib libpng cairo freetype
+ json_c fontconfig gtkmm3 pangomm glew libGLU
+ xorg.libpthreadstubs xorg.libXdmcp pcre
+ ];
+ enableParallelBuilding = true;
+
+ preConfigure = ''
+ patch CMakeLists.txt <<EOF
+ @@ -20,9 +20,9 @@
+ # NOTE TO PACKAGERS: The embedded git commit hash is critical for rapid bug triage when the builds
+ # can come from a variety of sources. If you are mirroring the sources or otherwise build when
+ # the .git directory is not present, please comment the following line:
+ -include(GetGitCommitHash)
+ +# include(GetGitCommitHash)
+ # and instead uncomment the following, adding the complete git hash of the checkout you are using:
+ -# set(GIT_COMMIT_HASH 0000000000000000000000000000000000000000)
+ +set(GIT_COMMIT_HASH $rev)
+ EOF
+ '';
+
+ postInstall = ''
+ substituteInPlace $out/share/applications/solvespace.desktop \
+ --replace /usr/bin/ $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A parametric 3d CAD program";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.edef ];
+ platforms = platforms.linux;
+ homepage = "http://solvespace.com";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/swingsane/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/swingsane/default.nix
new file mode 100644
index 000000000000..ffc19653dade
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/swingsane/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, makeDesktopItem, unzip, jre, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ pname = "swingsane";
+ version = "0.2";
+
+ src = fetchurl {
+ sha256 = "15pgqgyw46yd2i367ax9940pfyvinyw2m8apmwhrn0ix5nywa7ni";
+ url = "mirror://sourceforge/swingsane/swingsane-${version}-bin.zip";
+ };
+
+ nativeBuildInputs = [ unzip ];
+
+ phases = [ "unpackPhase" "installPhase" ];
+
+ installPhase = let
+
+ execWrapper = ''
+ #!${runtimeShell}
+ exec ${jre}/bin/java -jar $out/share/java/swingsane/swingsane-${version}.jar "$@"
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "swingsane";
+ exec = "swingsane";
+ icon = "swingsane";
+ desktopName = "SwingSane";
+ genericName = "Scan from local or remote SANE servers";
+ comment = meta.description;
+ categories = "Office;";
+ };
+
+ in ''
+ install -v -m 755 -d $out/share/java/swingsane/
+ install -v -m 644 *.jar $out/share/java/swingsane/
+
+ echo "${execWrapper}" > swingsane
+ install -v -D -m 755 swingsane $out/bin/swingsane
+
+ unzip -j swingsane-${version}.jar "com/swingsane/images/*.png"
+ install -v -D -m 644 swingsane_512x512.png $out/share/pixmaps/swingsane.png
+
+ cp -v -r ${desktopItem}/share/applications $out/share
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Java GUI for SANE scanner servers (saned)";
+ longDescription = ''
+ SwingSane is a powerful, cross platform, open source Java front-end for
+ using both local and remote Scanner Access Now Easy (SANE) servers.
+ The most powerful feature is its ability to query back-ends for scanner
+ specific options which can be set by the user as a scanner profile.
+ It also has support for authentication, mutlicast DNS discovery,
+ simultaneous scan jobs, image transformation jobs (deskew, binarize,
+ crop, etc), PDF and PNG output.
+ '';
+ homepage = "http://swingsane.com/";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/sxiv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sxiv/default.nix
new file mode 100644
index 000000000000..4cf0ae555789
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/sxiv/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, libXft, imlib2, giflib, libexif, conf ? null }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "sxiv";
+ version = "26";
+
+ src = fetchFromGitHub {
+ owner = "muennich";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0xaawlfdy7b277m38mgg4423kd7p1ffn0dq4hciqs6ivbb3q9c4f";
+ };
+
+ configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf);
+ preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+ buildInputs = [ libXft imlib2 giflib libexif ];
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ postInstall = ''
+ install -Dt $out/share/applications sxiv.desktop
+ '';
+
+ meta = {
+ description = "Simple X Image Viewer";
+ homepage = "https://github.com/muennich/sxiv";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix
new file mode 100644
index 000000000000..e2ffd1602585
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix
@@ -0,0 +1,127 @@
+{ stdenv, fetchFromGitHub, boost, cairo, gettext, glibmm, gtk3, gtkmm3
+, libjack2, libsigcxx, libxmlxx, makeWrapper, mlt-qt5, pango, pkgconfig
+, imagemagick, intltool, autoreconfHook, which, gnome3
+}:
+
+let
+ version = "1.0.2";
+
+ ETL = stdenv.mkDerivation {
+ name = "ETL-0.04.19";
+
+ src = fetchFromGitHub {
+ repo = "synfig";
+ owner = "synfig";
+ rev = version;
+ sha256 = "09ldkvzczqvb1yvlibd62y56dkyprxlr0w3rk38rcs7jnrhj2cqc";
+ };
+
+ postUnpack = "sourceRoot=\${sourceRoot}/ETL/";
+
+ nativeBuildInputs = [ autoreconfHook ];
+ };
+
+ synfig = stdenv.mkDerivation {
+ pname = "synfig";
+ inherit version;
+
+ src = fetchFromGitHub {
+ repo = "synfig";
+ owner = "synfig";
+ rev = version;
+ sha256 = "09ldkvzczqvb1yvlibd62y56dkyprxlr0w3rk38rcs7jnrhj2cqc";
+ };
+
+ postUnpack = "sourceRoot=\${sourceRoot}/synfig-core/";
+
+ configureFlags = [
+ "--with-boost=${boost.dev}"
+ "--with-boost-libdir=${boost.out}/lib"
+ ];
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook gettext ];
+ buildInputs = [
+ ETL boost cairo glibmm mlt-qt5 libsigcxx libxmlxx pango
+ ];
+
+ meta.broken = true;
+ };
+in
+stdenv.mkDerivation {
+ pname = "synfigstudio";
+ inherit version;
+
+ src = fetchFromGitHub {
+ repo = "synfig";
+ owner = "synfig";
+ rev = version;
+ sha256 = "09ldkvzczqvb1yvlibd62y56dkyprxlr0w3rk38rcs7jnrhj2cqc";
+ };
+
+ postUnpack = "sourceRoot=\${sourceRoot}/synfig-studio/";
+
+ postPatch = ''
+ for i in \
+ brushlib/brushlib.hpp \
+ gui/canvasview.cpp \
+ gui/compview.cpp \
+ gui/docks/dock_canvasspecific.cpp \
+ gui/docks/dock_children.cpp \
+ gui/docks/dock_curves.cpp \
+ gui/docks/dock_history.cpp \
+ gui/docks/dock_keyframes.cpp \
+ gui/docks/dock_layergroups.cpp \
+ gui/docks/dock_layers.cpp \
+ gui/docks/dock_metadata.cpp \
+ gui/docks/dock_params.cpp \
+ gui/docks/dock_timetrack.cpp \
+ gui/docks/dock_toolbox.cpp \
+ gui/docks/dockable.cpp \
+ gui/docks/dockdialog.cpp \
+ gui/docks/dockmanager.h \
+ gui/duck.h \
+ gui/duckmatic.cpp \
+ gui/duckmatic.h \
+ gui/instance.cpp \
+ gui/instance.h \
+ gui/states/state_stroke.h \
+ gui/states/state_zoom.cpp \
+ gui/widgets/widget_curves.cpp \
+ gui/workarea.cpp \
+ gui/workarearenderer/workarearenderer.h \
+ synfigapp/action_system.h \
+ synfigapp/canvasinterface.h \
+ synfigapp/instance.h \
+ synfigapp/main.h \
+ synfigapp/uimanager.h
+ do
+ substituteInPlace src/"$i" --replace '#include <sigc++/object.h>' '#include <sigc++/sigc++.h>'
+ substituteInPlace src/"$i" --replace '#include <sigc++/hide.h>' '#include <sigc++/adaptors/hide.h>'
+ substituteInPlace src/"$i" --replace '#include <sigc++/retype.h>' '#include <sigc++/adaptors/retype.h>'
+ done
+ '';
+
+ preConfigure = "./bootstrap.sh";
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook gettext ];
+ buildInputs = [
+ ETL boost cairo glibmm gtk3 gtkmm3 imagemagick intltool
+ libjack2 libsigcxx libxmlxx makeWrapper mlt-qt5
+ synfig which gnome3.adwaita-icon-theme
+ ];
+
+ postInstall = ''
+ wrapProgram "$out/bin/synfigstudio" \
+ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A 2D animation program";
+ homepage = "http://www.synfig.org";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/default.nix
new file mode 100644
index 000000000000..840c87de216b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/default.nix
@@ -0,0 +1,18 @@
+{ callPackage, lowPrio }:
+
+let
+ base3 = callPackage ./tesseract3.nix {};
+ base4 = callPackage ./tesseract4.nix {};
+ languages = callPackage ./languages.nix {};
+in
+{
+ tesseract3 = callPackage ./wrapper.nix {
+ tesseractBase = base3;
+ languages = languages.v3;
+ };
+
+ tesseract4 = lowPrio (callPackage ./wrapper.nix {
+ tesseractBase = base4;
+ languages = languages.v4;
+ });
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/fetch-language-hashes b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/fetch-language-hashes
new file mode 100755
index 000000000000..c431f1d97c26
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/fetch-language-hashes
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+
+# Usage:
+# ./fetch-language-hashes <tessdataRev> [<language code>…]
+#
+# Fetches all languages if no language codes are given.
+#
+# Example:
+# ./fetch-language-hashes 4.0.0 eng spa
+#
+# Output:
+# eng = "0iy0...";
+# spa = "15kw...";
+
+set -e
+
+(( $# >= 1 )) || exit 1
+tessdataRev=$1
+shift
+
+if (( $# > 0 )); then
+ langCodes="$@"
+else
+ repoPage=$(curl -fs https://github.com/tesseract-ocr/tessdata/tree/$tessdataRev || {
+ >&2 echo "Invalid tessdataRev: $tessdataRev"
+ exit 1
+ })
+ langCodes=$(echo $(echo "$repoPage" | grep -ohP "(?<=/)[^/]+?(?=\.traineddata)" | sort))
+fi
+
+for lang in $langCodes; do
+ url=https://github.com/tesseract-ocr/tessdata/raw/$tessdataRev/$lang.traineddata
+ hash=$(nix-prefetch-url $url 2>/dev/null)
+ echo "$lang = \"$hash\";"
+done
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/languages.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/languages.nix
new file mode 100644
index 000000000000..08512a5cdd9d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/languages.nix
@@ -0,0 +1,289 @@
+{ stdenv, lib, fetchurl, fetchFromGitHub }:
+
+rec {
+ makeLanguages = { tessdataRev, tessdata ? null, all ? null, languages ? {} }:
+ let
+ tessdataSrc = fetchFromGitHub {
+ owner = "tesseract-ocr";
+ repo = "tessdata";
+ rev = tessdataRev;
+ sha256 = tessdata;
+ };
+
+ languageFile = lang: sha256: fetchurl {
+ url = "https://github.com/tesseract-ocr/tessdata/raw/${tessdataRev}/${lang}.traineddata";
+ inherit sha256;
+ };
+ in
+ {
+ # Use a simple fixed-output derivation for all languages to increase nix eval performance
+ all = stdenv.mkDerivation {
+ name = "all";
+ buildCommand = ''
+ mkdir $out
+ cd ${tessdataSrc}
+ cp *.traineddata $out
+ '';
+ outputHashMode = "recursive";
+ outputHashAlgo = "sha256";
+ outputHash = all;
+ };
+ } // (lib.mapAttrs languageFile languages);
+
+ v3 = makeLanguages {
+ tessdataRev = "3cf1e2df1fe1d1da29295c9ef0983796c7958b7d";
+ tessdata = "1v4b63v5nzcxr2y3635r19l7lj5smjmc9vfk0wmxlryxncb4vpg7";
+ all = "0yj6h9n6h0kzzcqsn3z87vsi8pa60szp0yiayb0znd0v9my0dqhn";
+
+ # Run `./fetch-language-hashes <tessdataRev>` to generate these hashes
+ languages = {
+ afr = "15dsnzy4i9ai26ilm73gkfj4ck039raa88i6w443c4b1fnay2akf";
+ amh = "1wbcsdq3svxga3j1alk61xs72a9fhsfsyjxhp3cwxfaqfhrzg7h4";
+ ara = "0nk495gki6jbbnwcl2ybsx4nd02d6qykcjncq0d2g8pbgapqmj91";
+ asm = "0c3wq15yphq7x74s2sn3f90k6z1cf5j7ic62z0dynidrv99bddfh";
+ aze = "0pz073hxqkx1a1cshlgg5k11lj73s52sdxa7k3020drc314lhaxw";
+ aze_cyrl = "0djbfgx28ykcjsn2p0766qrmj256g7vhc7valc3ivsva8b906lxq";
+ bel = "04zqy8vik0fcakq6apfp8wjhkkhlg0yn9kmag1lk7s8fy9ax3ws2";
+ ben = "0q7812kn5xjm47hcgdcg911lhbgqr7hbvqckfxxm8qw0yjx2cy0m";
+ bod = "0rwq7539zzfs8xs0bf1535z1cwkm0yk1ni25f5gjav7nm6qpiaan";
+ bos = "1qr04dj7lx347gxpin5nfprbggmxq2mwx8kf3pcc3vb5x3pa57g4";
+ bul = "0cyyqgi3i4y9bfzwls0lwljzgd0r8ayfqb4bbvdh4qmbni9x42ya";
+ cat = "0kgw8f5pdw9lfbn6cfp5n1s0j8pj3418yx6rsbagzcf1gr36gbr9";
+ ceb = "1g1n4np4vhar7wfwx2km5k6kldb600rrl7npfbf75229rar068f1";
+ ces = "0zxkkyhpd74i6321nv86pkjb0k7p9cp6m174rbn42nl7jz6qxib0";
+ chi_sim = "0k250xr0gk9yh22yqxd0zpxdsrqfzs164kdv5n9rxx1g996yffij";
+ chi_tra = "03nxqpd546p0gwfj6pqzbdbv5zjpdddzlpa10xn4nvmks1mmckbp";
+ chr = "1k1sg3hap0kd5aa36ysvmhp7r3fynxf0f7lzz814h6p3g250zclb";
+ cym = "0d6wbf9cmrrzf66mhcckwdfy3xh2i38r0by9nk6isw9rl7bf7j07";
+ dan = "1s1yj56rpzmif3ir3qs4iab744cgpflk7y8812z2665bh61illpr";
+ dan_frak = "1bxi53ymib5g0139vfd2pflh7nl5925vqznq3sfgaqx7gdx630vi";
+ deu = "0fna7fqk1a8ivd7q2k38vx37qm3vbn183zh4z5zfqb4pgqmb8znb";
+ deu_frak = "1y4krkvarg7jxhcq49fgybg4phbn58y9c0z2bm8mnp28jkih1cnb";
+ dzo = "1fcz0imi7zxi99762pxfcm5iz2jcbqj3s742magka4ihrxnz07xm";
+ ell = "0r0f71jy4y29bg055qvvy93wchi3lh08zz0k9c8l7466b03yvq5v";
+ eng = "0vghah8kqcv0n5fnjb88w6siz156ysrc41fckw3f2y8c3sgmqlf0";
+ enm = "10y61xv3w1ypgqz5rgb22y5hh1i4zx03cwiqw21ifqvg4xdrln46";
+ epo = "1y5lh55mbcx33cm7qlf1dcah8ffycxmlcpzjzx9r6ij14fdd4964";
+ equ = "1nqrd0a9jqqh6byy8snfhad1hisrc92dcx44wsy7v4nf40j3mx1s";
+ est = "12ll8lq1hjcsq9hh93020w78r7f1rcxcwlvrjqw8j5p3k9jg5a4g";
+ eus = "034s9mp7lw1a4yvf2cmbbj2fbqbaq6xnjqh30yn0wq0c0jck96nw";
+ fas = "0m61p4byc0kzf75cdn6g18s8hcg9r8ifs34wr85lbsb65kil4ijx";
+ fin = "1wac333k0lcd5jwprzg99b10bq8sdc96b9d6275kg9imyqjwcc7q";
+ fra = "1ax7i0nw1lwkz4sbrvn4z0lcrcai77ymdpla7qk7yij6s4xb5bw6";
+ frk = "16nmr71p93724vk1x5mq4r8vxpwnm448p6dwqv8scg8asch1cidp";
+ frm = "00yz3hz7wcralq8wbx1ap4c6b37ac6vnz5bgmxmgdx0kqzibiddn";
+ gle = "1n8z8kmn5m628rlzgz5v0iw6h46aalflq5asa1wj5rygx1y2azpa";
+ glg = "0fdniayplc3iwmlmvhblarh1gm97dp8rqhhkb8b0clwfd9cj342z";
+ grc = "04r2193qcxqyab5998xn8bf7197wiccmjm7iakij8d0c7l61dnxb";
+ guj = "0dp8mlxmf0x9wb8dg0c508sdwz03icq94z8ji8jhwgdqgv8hw1al";
+ hat = "0793mmlxbb09c8103jhdvlczz647nyn4ykkgd3gwgavncmjh72v8";
+ heb = "16za9ff1i3ya6hz75l9v3v7j4039kscxxw21g3i2w5p9zn52hyag";
+ hin = "1vnn5wpc724kgib8jbx0kpnnp4al60ivqir72gnbyh6cpnflb6bf";
+ hrv = "15rqd6xiv2bdmalb5s6rxvw0yk6w9agn9fli3bvi703q6vpj2yn3";
+ hun = "19zzwdxwi3h3vdsgr271i1m87gfpdirk6b1ljw2j8qmfilp4sw56";
+ iku = "1v1yvc1194qycjgb4ihh5hpj6472nlbp66dii183514g2dh9x0db";
+ ind = "120d4b41wvsgcd1sgy2mp78i9hvi7w03a63078dz1yds0yqdwf1p";
+ isl = "003ngk8dfv6dglkq8pmi6jsglrfkc65js5ywh3vvkg7qfqf6qsxz";
+ ita = "1lxklk3zc3x3k8yfpp6ygyv7fndgs57dfasc97rh8782ds16wkjs";
+ ita_old = "188gby1y51pa1ycyc8y17d16hs5w27yl5ch7xzni98bdjkwbkl1z";
+ jav = "1fjyjznjchls5ifbnx2b9xagisgxvgj9lsf39rr9d87sbzdbbwbp";
+ jpn = "1wmayj8wh3pfwznjhalad2qzv38mhrzw2sxl71mycvzvpdy9ag1w";
+ kan = "0hak4953whw9vd9dzl0hq076kzb19kk45kmfxk03af4k6gb206vg";
+ kat = "16k0057cvvdc6snm5svhdv3cr7cw71g74yy8215njjbsi838imi3";
+ kat_old = "02gl755d38plyvzwfjqxvjgfqkbjs9rvzx33qfhm2zvmgbwrfrfh";
+ kaz = "0hc36w7zz5waycsk220v0r83sg991gd5f5r937mvz44viql80sgm";
+ khm = "1gb2nv5qdq5fz9w9xq4fj68p46b62sd1m986ra5qbnskxqizr12s";
+ kir = "1b1ing6qqi8qqfh4xpk76rp4gxp69wdjdl5m777ayx3v02d7nhh3";
+ kor = "1rldj6f8h1nn5wpx57b0ci7p0fnivnwzgaf0d3576xls26z2wcgv";
+ kur = "1cp2pfd6g662gvxi7ywkxfbfq1lwbis888bf1gg8ynzy342mx1ic";
+ lao = "03bdaxakmxpbbr9vsnbzzfksvm6js0l5i0ijwl71piqyxqjj1gxf";
+ lat = "1q7v7drnwpna9k2l79jbdlxiv1j617rqzjc9d48h3lfrma5z97sj";
+ lav = "0fxzyvw7n67rmw2irvlghkf1bii4w47200zv26p0v3a9dwvhc7sg";
+ lit = "0f00ggjjqrl94kwwjmjqwajyfprsml0br8vhn2gvn11gaxvm52hm";
+ mal = "1i83plhin3m6sq8p92vzlyng5z59gvvqypyh7rnmvdmm9rranx8a";
+ mar = "0ay7q53yl3709crvn5l9c9jx7hw6m5d3x2crmvnvczsh83ayfdik";
+ mkd = "1q1wadcr4j1dzssyyqz43qmizc6vfqkbivr6xi2p7p4h9rl11x73";
+ mlt = "1qp4v6habak1l7xrw322wglvjjndrfp4j7bj8d4npwbzk1sh4s0h";
+ msa = "048p6mkx9zr40s9s5vbi0gnizhvqwn0g8i1hf1l8db7igbax5xyj";
+ mya = "17nyr5bd42kzvid3421n3mwckd49vzrjhjahd8rnfsmbsy1x382l";
+ nep = "154375r32sdmvcnp1ckvgbp3wxvb2xiiypb8bxbsvrabrz4wzjqc";
+ nld = "1clwbky71zkz55zd3f8r9hj8fhpnbkply80p1js4fvs7x12r715x";
+ nor = "1ynvrz6s0vmlq1xkjd8k2w6bx8770x6v29qgx83d4nl17ngjd459";
+ ori = "0dsakc8gnwhs6z5kxc2wdkbn31gkkiqk5vriw0swghychp164aac";
+ osd = "1zq0dfliavglmix7zzrqdxz1w01rm1f1x1352bqn8xf4zivdbxcw";
+ pan = "1fwdpwkydfmr6drwgkqzn89z12r2rdm02a75vvdxhxg2a9yiwmbv";
+ pol = "155z870ygzws476kp7qpzi8jcjcv3jb5px8rbzhnag1fklqr48hx";
+ por = "1814cff2rffpzlg4hyyrjzpf5ps2i95rmpa4c8ikblbvrlcv97q8";
+ pus = "1iz5nn1zfvn1l9gb1jriwx991d2hwwc7x4k1nvzjlwpzscplx25b";
+ ron = "11lr80zhvnnngvwwk01z1d3prfpbh3qbwpl1nl5fp7h09d6n3wzl";
+ rus = "1d6a8lg4bmd3np16jds1py3qpkaq4ahnhwghd5r0159y0jpxq00q";
+ san = "169f4ajgwn99yfdfrlwfvdgvv1abal7fpdp31sknvq8l7w2sak3g";
+ sin = "1411g18r6f6j6f4n0sn7ajgs4gkplb892s6ak0hi9nyyxwv3r1gm";
+ slk = "0bxfbrg1nf6px0xzkh6ihdi71fmr1rxxs99qb191k7pm16x2lpds";
+ slk_frak = "0zyqnn1y5cyx1y7wzgw743k4584ljl0rhvk2q1ni6jnjx9ciwzqy";
+ slv = "1kjn9m9hbwp0m0p2v8c3skpzr6f8x42hz8x48zl22550a7hq8n1h";
+ spa = "1npgl8ylvfm60hd4214z8a3lriy1hckhijschrbjpzmwdfcqafgj";
+ spa_old = "0w4ivkv8flyn7bjlyjcrcrdnslkvrrfs7l33mvird1jhhkyqd8sx";
+ sqi = "15wzvh6qm3yx7yf0k5j7g1imsaqxvq7r2xh6a0xgmkqbyypbbkdf";
+ srp = "05blqriv30x02c80ds3x7zhw0y21nc6lkqlv5jwgwnjgw4yfpgrm";
+ srp_latn = "0ss8s3q60aq8sd2a3sbnzvp13qqarxnjw4hij8hd9ab5gsjw0nwr";
+ swa = "1pwwhx7ldq21cv06cchws8gvwsmkwn5sjcy9z3nk3nbp9qjsf44f";
+ swe = "0l10iyn2cr7ibgk0akmpg8725mpwpydawgv3s77izsw7y6xhfr1a";
+ syr = "08bxil13wyp5h4hvbxjcys7ypgqgg46rrp653m7gyv5q94ycjgb0";
+ tam = "1g155kyba2wjfgzgy48g6yd2csinwbfjdi5r7vw0wm3dh1z39dvz";
+ tel = "0fydrcb54b6mmqazb337x4s36i2a64sb4xm7y7g3nqqmk9afsipv";
+ tgk = "0f6j37friywj7y132fv0jm6aj4sx8f0b7brspj3pbjqqpi4v5ws0";
+ tgl = "0f1r0gicif57qhyw8xaa1sqgny720q3z5cpd5srrn9i6fihaz577";
+ tha = "1y2hw55jfpidk95y8qbsiczgg2r2khabac97s1y3gl0v93a44jna";
+ tir = "1y7iryhjr83ca4yh5jjz7qlnrx4kbrp0a0p650whjvk2gnv8m98h";
+ tur = "0xqnq99b2jb4v74bj95py6wmg14dm31zp5s3l48dmcv6zdgcxg2w";
+ uig = "1sdddr15zlb33kd1d7hzi5lfd15bfhqn105d7x6snfpqp7vq4bxv";
+ ukr = "0cdwjnfnnmzz7jdn49l96vqgaimclfxcxaw09cm63f5my382r2rg";
+ urd = "10xcn1zs2lfswp5yai0ckyg7js587qhr5cf7qib3i35qjbw7nc18";
+ uzb = "1jkkd5j6vsx5jv5gwprbfwg1vwh714prm8j446wzvp74brmk949l";
+ uzb_cyrl = "1kdia38rgm2qd3ly80a412jyagxxryr09h1nz2d0iw71bmfn4855";
+ vie = "1ja18jxxaw282y4jljxpjf1gj15il61vc2ykpfy22vn88wvydxff";
+ yid = "1jddd0g8mm5v00z5kb8rbpfs7ppzgq9kzm1xlhhvv960yfdbi6fd";
+ };
+ };
+
+ v4 = makeLanguages {
+ tessdataRev = "4.0.0";
+ tessdata = "1chw1ya5zf8aaj2ixr9x013x7vwwwjjmx6f2ag0d6i14lypygy28";
+ all = "0dqgkp369rcvq72yhgnzj1pj8yrv7kqzc7y6sqs7nzcq7l5qazlg";
+
+ # Run `./fetch-language-hashes <tessdataRev>` to generate these hashes
+ languages = {
+ afr = "1a9f8pnrspfmcq9gpjnxn2kkhjlsmh912bnpx671fjizxpmiri2y";
+ amh = "0m1vdyxjx57kmf2qra0p31k509y1cqn4pyckzw00i5n3wx11d2j0";
+ ara = "0nswl6n0s94g900j5k1gwzp7m140c0yd9a2fdb2lzhdvg1krf190";
+ asm = "025d9vrjcrwyd6cc6hrw1x8xqhicgrb9wpvhhmlw71ql04dadslf";
+ aze = "01shcs78a6xn3my8p3y42x1c9f5hzfn83w2n2nwpffbgz4y2nsgf";
+ aze_cyrl = "1sbd89i5r7rnkjh2in8j0plrxnfiill9jl8pr68iw77ghih6q1vg";
+ bel = "0dhyymsxcyzwal8474q7ag3m2akv0b92hkdz7rka5z1cxry1cn8c";
+ ben = "0a7q9414k3frn37x2qcglz722ysg2iivj6kqaaa0ik7z14ibc8v0";
+ bod = "0rh7x54nlh6ir6ldccj8hi7g8hwlp13r3fkljw8gndvhwmgfkkar";
+ bos = "1szym4n605hlx12a9vpz4jjs76jscajh22rgkqwbv4qdsl0gi3nd";
+ bre = "070f4c84iznblsw4jkwpzh9dss8nfb678160szm5r8dlv2yinrrk";
+ bul = "03bg2yw79lg8rl43y9288313jrfh0h69vl4s4cmlgbmnbx8pvxwj";
+ cat = "19xs691aj8yy2ff07c3gzm07zicd5ha0gmcjxjh9pknqf2gfy7qv";
+ ceb = "1896vn41hqc4anm6hjvrnn022i0p8pmhwsp5rv9w2cvr6738l79r";
+ ces = "0fh2g47msfr91285rnccxcmcshihm126sqy496s4vrr0vk8ix1nf";
+ chi_sim = "0qxkvbpm5l7gzsshnn72wfx473pprf5nmw8hd4i4x2qxnfddh1gw";
+ chi_sim_vert = "1f75pzvxbda82vxa2zb1z9b9f13sh81kzaw45vg5118ncsklj8w7";
+ chi_tra = "056vjws1fir1v5iv44pzykkxs5q1dbb2j8blhj47i53w1zf6g42m";
+ chi_tra_vert = "10c9cdycg1a5kwlgg60sh8yp07w2fl4whinpxfhlzrzs56allql4";
+ chr = "19qq8a6c27973djsc4xpcklis92r58x21fg4mz5azdyka5i1n46l";
+ cos = "0z9kx1hw8h5n00pcahxla808wya50wrkk8cz7x676pd93ibyrlyx";
+ cym = "13pk9cpf43xxqbz3blfz2av2yd1ma6ds6jbdiqw8anhhj7l9ch2d";
+ dan = "1jirmahxvyyswhhyzhinvcqaycz7m3ixchqrj3lgfcdi3anvabr2";
+ dan_frak = "17wcgdqxmbzn7qchnx5gsa05aj4wmhbwk43w173bl3wr6h5ylmh0";
+ deu = "194rqsg4nlycca9bg2fqf15xgcl110rxp182l7dbjfjhar4knsw9";
+ deu_frak = "12hhhp32f15c7fw2jp05mwim9ps14kmamhh6vmalvm7r2033vbm7";
+ div = "09mm9r5hxhsc4qpyg10ym9mc2kdpawx8zk0aiv1xpgd35rzpyz41";
+ dzo = "1zk7crgcazgqy5zmslp6iw4jws07nja31qdxx0rpzhn3c0bjgw1b";
+ ell = "1hhym18a9411953j47xjk47jx9ij9xi2qwlx05c93zl41528nsqg";
+ eng = "0iy07z182lwhqfa0q288ha691scpsry330aynaizn68wcmywk86s";
+ enm = "1dhr1qvil38bil43wk5ci645sbm3my2y9y7qlcbnwz2p4pflayvm";
+ epo = "1jig4db7050vww32vxsqyig3j1b0vgz9ipxbsw0jpkjia84k44n9";
+ equ = "02qwg6s1z7pynwm0p6dvpwi04ivfkr1s7qgssbla1dx7v0ih6rlg";
+ est = "1jxygahy6by7fbirbmjmd68k6560q1a3h5mvpzdx15h5fw0q58gl";
+ eus = "0cai7nm7si8680avrrls8bf9ski980rvsj560fh9y6n9rz7mh9mp";
+ fao = "1n3434jf18bzakbylzyg3jaw2ad4h376g56dsql32bgh2yvyww8a";
+ fas = "17wjkfka9725rz32clgqgk9msmbz4axs59vz30jmhhxyrkliafqb";
+ fil = "0p713k8g27df9z384ns111xqxii5kq20m8brflsmd3yckw1mibhz";
+ fin = "1wc3y9nnm7rb2c2c5fkj7cv7jb27jlkb2bh0g8kaz57h6imfmb2g";
+ fra = "04qrfvi6irlaahh1pgn5azyfhbhavm12yyybza8603alf8firh7a";
+ frk = "05cqmxxxjqdl5hjyzi6dpmixnjpd6f3jr6741yapdmnxvkzxkiyp";
+ frm = "0a86yy6hd0lvlbzvnzjmyapzc0rn7mnkdadqycd65bw1b714cvy2";
+ fry = "0i84r8g9hlkr9nlhypl4lq6ncrhbcpskqkdcijgk88c2fdknh57h";
+ gla = "17idyhb505waz9dnb8dsk54faw7y0xvvb12yw71k0skq3i90akar";
+ gle = "1q87h5zzcva54pg364d3hl6q9hdlydlyj1qmq8n5k7hqk11msxmk";
+ glg = "01xssz1rhpy3a0sm4i43nba61wc2srz6wv327vdw1kg8ijm0s0g4";
+ grc = "00x0s3smx4wg5h12y2b9al0j2jk1y3f0yy2x6f2qf7ps831drgyl";
+ guj = "028v4fgn0zi2044vk6j2rlqklc9i0kj22s52vhifmx1g02kz9154";
+ hat = "1bca516pr2cnyjlwycc7pr6gfmdjb8565hp06pw9nwpr20ry0hss";
+ heb = "1qfkffjh29b21frs0mv6llsrchixl5kjkpj1if7fq816g9mym9kx";
+ hin = "1rkfam5c6qil2590lfffzndhq3bncdgf4ij0cyjcglgyljgx0xnc";
+ hrv = "0da7b6mk0rwc9zlbqkycwjpddp3qpy07l643i00ia5a1zq35fmgp";
+ hun = "0w2s4mn9p74zqzmp9hh2017zgsh5v43k4lid4pv29f4b0y5gj9xi";
+ hye = "0ifzm875wlbjh4vkpmj1n6f14m8i174413l6pc6i44y4p5fpgxrf";
+ iku = "19arnv82xbxhbcy8pf9fv1sl5zc5707mk34nh7w46dlz86qkidmn";
+ ind = "1d421hizwni4m6sr4f3nqqpr1g744hzn0krk130m7x8mhzgamba5";
+ isl = "1hjjw8k2r9qa990ziq5wxr36kyf16mnmrqfmq5vbcjprka9h08pq";
+ ita = "1qyrvlf7pjxzyb29sc7aq3gq61bww14sijka44scxggfw7134l3r";
+ ita_old = "1pf8461jbj0vpyry0b54crmkf2bk9mh4klxvmj09jvf0aq2vm9s6";
+ jav = "18vvbyimj0y462amjmwvqa6h9n8l122j9v0w3hfp63hlxpfprm0m";
+ jpn = "16hma9w32vdh41ihymp894jza72b0d235hwriv18r78j5n86nhbg";
+ jpn_vert = "0yca09l9sbpfjgb2slnpb9q7qd7vz3a1wb6bkln30d3nl0d9r1rn";
+ kan = "0lcmx37rjfxkbhhbrld1ndmkwkm9w9b3pzxhas0cv5dqsx2f84jd";
+ kat = "1b164bgwa7bbvw4177h8fxfh0fbh4bycfl9pkaa184dpjpaiqpia";
+ kat_old = "1mgff7sh93hdp3wh0ckikdggrdgf0syp75s39pickpbkp9ic41ai";
+ kaz = "0h37y0kb5lwsp5zpl7bvxg3ryqldl5hxfnardliwgyqgnag951vi";
+ khm = "0m7x1fynr18sid2kjjw8xa9ika0a0fc6a6hvc7ihizi47893hdfb";
+ kir = "09kxwqpqf6kxjii07qlqsiii83zk12rszp88xnzzjp8rjsnk78s3";
+ kor = "0nsr43fwrp9876ia1fc0zcviv2n8hw16n0wfh158vhygwglvy84m";
+ kor_vert = "1wmvdznmikk9fq7wdffvn22scxmcl26vjh26jhicqwxpc7kg4bh8";
+ kur = "0gbsf3ny3n5mgb30v54bz3crgnimdpg19jn633pbpzryzg3xhd25";
+ kur_ara = "1sbj0cczhi9q119fbzpi0m6zr9kjp3k76bv9w8szkv1wc5y4fng6";
+ lao = "1gvxlg8bw3a4c9izg3c2a2yl7q6rsy7z9y64axdw9a04pz2ndbl5";
+ lat = "0b7an3q3xrf9c55bhiqqh7l45ga88l0kwvkp1akmlr98piach3vr";
+ lav = "0fqsmy47cygamddxyjfrdgkfa9bvmrvf4csvppnkdvfzy6iiv0c2";
+ lit = "0wjgbkwc3bf5khdqali7ylnhhs4xvpx19m3zx2y9s27v2wjbb6kv";
+ ltz = "02zdxbniiqfl87fzsiaaqgldqfsv15z5hja1xhxnqpl0nds7shfc";
+ mal = "0a41ifz8i6lj2ywxjkwvymxzxahkz2cjv4apbrawdj1h42bn7frd";
+ mar = "00swhlh9bckvmlxanfmlw5j4n9qqhggl84bsq0827bmijsqwnl44";
+ mkd = "1bqfiwxlzfpz4fs4z5ci2wbv01qhrcayk1inmk3dxq7dsywx1ajg";
+ mlt = "1rmmga2aw88hr7q7cfr5cvhnsgnf1mi069d5k7z66zp4vzbl4zyz";
+ mon = "1jksvcavn9plsmjdmhg40mwq5rlvrd1b9gvghdjg7zkf6qqqynlh";
+ mri = "0jlfawx20s5clsnk82ndy3v2zidh4cfh4acrh8nindk21xmiwh5i";
+ msa = "0m7zs8anaa3l4z5f3xvbhs4syp41dp4all2yfpi1plyr0hy784an";
+ mya = "0hljm5haadlr4k5rhw4mvhkygcnrr709rvl7amz7av3nskmi8mb1";
+ nep = "1dhy0m2h6xfgwibf92iwxsn926dmrhfvkg9rafkdaqcr4pq6w563";
+ nld = "0bspf5bv1s7qzm6k4aqbpq91zvk4kxxhx5zv08w91xfsa1zpdxmi";
+ nor = "08majhc9m0fjvac50yq52ia2af9kscclimwkv403klnj4kgf8ndq";
+ oci = "1mzrw9gsdjrd1xj3zv7l5gzgjq5jrygxf8cfkz20d9lls0wj1xdv";
+ ori = "1sh42mjzb1hv6l6lljp3wifjmz7wrv818f9f16m8qjikwqxm0s78";
+ osd = "03mvfk1q1xp1klpf4bwna903rnp51bkqr3gl5hvxybvrc3l2m7z1";
+ pan = "0165kr94p6x5yxzs4p8sfppvg9cywp65ps0xaym5rqz9iashz32h";
+ pol = "0g0b71ms6ddgykmkna4mlavgzgmh9vj6s62fi8l4ja93nfpr37hp";
+ por = "132jbhzmcsq8skanm15bw2niyx9xpbrqr411wn7w9r5i3cvnlv01";
+ pus = "0iiglnkn478al11avigsav625pn7ifscycnxpj6fg8835vjww3xr";
+ que = "01vkmfi9idjwskv5pllmrxpil0v5h7f7rzv5viclxrzkmbvrz9b5";
+ ron = "0ag6vs0cn3sryavs1mfrallgdgi4h28114g7m61rhlhq0z484g0m";
+ rus = "1hippm3w5d73sh50r136x0xff2p6x128ry2x4fywf6xdpv1f46v8";
+ san = "1qlpqkr5c5wqcf1bvlipy72advqnvd4wm61vghmrj2sda8mx87sx";
+ sin = "097d2s4ma0zsq0ab5qs1ylgl9l5phw91fnpsvb7vjmz2mw3ic964";
+ slk = "0c97pp5iffhdzyma605x8q3rx1qq9pq2h6cai1kppaj92rz3ji9k";
+ slk_frak = "16ivsam1g18zlpw6pgidvzwb7h8rvw1s10nigs6yfwir8hjxsgki";
+ slv = "0644jlm55p0dg4zchgrashmbv36zb4x649ckmf2jkbss8bzx7wsf";
+ snd = "1i2mfi4414l3v9nznjy7959y2jcr8ymvf6w8zpyrw6nad4d1aak7";
+ spa = "15kwvr7cpcnlxm1ja1yyc022dmsd04gmk7h1p0df12aicsscn3qb";
+ spa_old = "1jq80c4mi3rmwnfhb3mbaaq0ci101mgbibkji9ala4l5dkcwjra3";
+ sqi = "19cvvixhz9906p4c9i2grpr386rbp5alp4fp14xm9nd81bmq4701";
+ srp = "1jd25n13h6vxsa3gzbj6q6mdh02rjl4qrd1bffr5psp33asqvw0l";
+ srp_latn = "1k7577mn3z0bm5ma9d8l14sn5wpvw50hq1nxwbc36yn3a5b3mhiz";
+ sun = "0lvlaw3jfvr7b5v09669kq8mm19jdsk9g5h09jsa2gr6fvsq11pa";
+ swa = "0qy9qc5pa1dzzqrh1z40gk845z1r4d2smywnzydknbb3n240lhz0";
+ swe = "1y56r7bgzw0pqkdylbah07r1f0v03sblkggiql8x5200rhaxvqi4";
+ syr = "1vfj5fsiv170jghryrxwyz0i9mdsaki1kglxrklkb2caal9kwy38";
+ tam = "0rhhdbnp0a2hpg00vpc0xyxcl2w36i1kn63mrvwx1f9q7m3y1fmf";
+ tat = "0a74rp8pyp4yivv2xcy2m8xgwch8scr3wmk1fzniwzf43fsrqp76";
+ tel = "0gcq8hxhxvilyh7x7kiikq07hllqysc8sfyr88gvpj4xi092h2bx";
+ tgk = "1458gk0k6gk49n8lr6fj7l7cwkhxn0lrhybzq10zl1ly7yzjhf67";
+ tgl = "12yscwckdy3l21mvsrj1021gxw2isjrg369r08rsf7lh96wn4wkn";
+ tha = "01f0j7gsc5slxaaql1gqbhk4wlwaxc29dlmfxwjzikxc46gjl0w8";
+ tir = "1q6w48b1jchv55713pq20inzjjdymh32fw8wxfaj1qi7bjqfb9fk";
+ ton = "06g60ga8rys8jaimqrvd4svh40qs1nz4bszdnf2hdv05ibryibdq";
+ tur = "0g9g1wvibp61qbriy8ys948yfkl88xk9g8f93bnq8w8dx029b6s8";
+ uig = "09sajx21lw3a3ph62dyqr10pjaq2mij10sdhkhvvjiydk34dn548";
+ ukr = "14q8ls8gkrg7c9pc6qzm6yf5ady3i3303vs1hz4d2idcl6yry334";
+ urd = "15vszhqraxqdcng1069p6i4xq3ck3904q207nkbap6dfpcpjig40";
+ uzb = "03hyw0vavmjirqs4wkd5r85g91w2avsyl14z624fhm3gc66pqg7n";
+ uzb_cyrl = "1433lrrp2lfgb1k0a4sc20b35b2jcl8f1z92vm2936y7w04xpaq7";
+ vie = "02k40d3wji74d1jgvkr3zrn9gpzlmp0lqhrrdmc48r2sgvnrnk8n";
+ yid = "0xnbvi04xv1qapqg72wa3bjwbw51pkdnyncjpjp37vn6dzh04l0z";
+ yor = "07w3aci52ng6i6nyp97q5zb2dqlj08w6im90y1h691qah1x44zlv";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/tesseract3.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/tesseract3.nix
new file mode 100644
index 000000000000..dc9d4ac2d595
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/tesseract3.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, leptonica, libpng, libtiff, icu, pango, opencl-headers }:
+
+stdenv.mkDerivation rec {
+ pname = "tesseract";
+ version = "3.05.00";
+
+ src = fetchFromGitHub {
+ owner = "tesseract-ocr";
+ repo = "tesseract";
+ rev = version;
+ sha256 = "11wrpcfl118wxsv2c3w2scznwb48c4547qml42s2bpdz079g8y30";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ leptonica libpng libtiff icu pango opencl-headers ];
+
+ LIBLEPT_HEADERSDIR = "${leptonica}/include";
+
+ meta = {
+ description = "OCR engine";
+ homepage = "https://github.com/tesseract-ocr/tesseract";
+ license = stdenv.lib.licenses.asl20;
+ maintainers = with stdenv.lib.maintainers; [ viric earvstedt ];
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix
new file mode 100644
index 000000000000..d7c3cacc1f96
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, autoconf-archive, pkgconfig
+, leptonica, libpng, libtiff, icu, pango, opencl-headers }:
+
+stdenv.mkDerivation rec {
+ pname = "tesseract";
+ version = "4.1.1";
+
+ src = fetchFromGitHub {
+ owner = "tesseract-ocr";
+ repo = "tesseract";
+ rev = version;
+ sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook autoconf-archive ];
+ buildInputs = [ leptonica libpng libtiff icu pango opencl-headers ];
+
+ meta = {
+ description = "OCR engine";
+ homepage = "https://github.com/tesseract-ocr/tesseract";
+ license = stdenv.lib.licenses.asl20;
+ maintainers = with stdenv.lib.maintainers; [ viric earvstedt ];
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix
new file mode 100644
index 000000000000..365d68a9ee76
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix
@@ -0,0 +1,58 @@
+{ stdenv, makeWrapper, tesseractBase, languages
+
+# A list of languages like [ "eng" "spa" … ] or `null` for all available languages
+, enableLanguages ? null
+
+# A list of files or a directory containing files
+, tessdata ? (if enableLanguages == null then languages.all
+ else map (lang: languages.${lang}) enableLanguages)
+
+# This argument is obsolete
+, enableLanguagesHash ? null
+}:
+
+let
+ passthru = { inherit tesseractBase languages tessdata; };
+
+ tesseractWithData = tesseractBase.overrideAttrs (_: {
+ inherit tesseractBase tessdata;
+
+ buildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ makeWrapper {$tesseractBase,$out}/bin/tesseract --set-default TESSDATA_PREFIX $out/share/tessdata
+
+ # Recursively link include, share
+ cp -rs --no-preserve=mode $tesseractBase/{include,share} $out
+
+ cp -r --no-preserve=mode $tesseractBase/lib $out
+ # Fixup the store paths in lib so that the tessdata from this derivation is used.
+ if (( ''${#tesseractBase} != ''${#out} )); then
+ echo "Can't replace store paths due to differing lengths"
+ exit 1
+ fi
+ find $out/lib -type f -exec sed -i "s|$tesseractBase|$out|g" {} \;
+
+ if [[ -d "$tessdata" ]]; then
+ ln -s $tessdata/* $out/share/tessdata
+ else
+ for lang in $tessdata; do
+ ln -s $lang $out/share/tessdata/''${lang#/nix/store*-}
+ done
+ fi
+
+ if [[ ! -e $out/share/tessdata/eng.traineddata ]]; then
+ # This is a bug in Tesseract's internal tessdata discovery mechanism
+ echo "eng.traineddata must be present in tessdata for Tesseract to work"
+ exit 1
+ fi
+ '';
+ });
+
+ tesseract = (if enableLanguages == [] then tesseractBase else tesseractWithData) // passthru;
+in
+ if enableLanguagesHash == null then
+ tesseract
+ else
+ stdenv.lib.warn "Argument `enableLanguagesHash` is obsolete and can be removed."
+ tesseract
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/tev/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tev/default.nix
new file mode 100644
index 000000000000..2f47ebab66e4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/tev/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchFromGitHub
+, cmake, wrapGAppsHook
+, libX11, libzip, glfw, libpng, xorg, gnome3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tev";
+ version = "1.16";
+
+ src = fetchFromGitHub {
+ owner = "Tom94";
+ repo = pname;
+ rev = "v${version}";
+ fetchSubmodules = true;
+ sha256 = "0fn5j9klzrjvz3bq8p9yp9nqikn2fr7bp98c1sxwpwwaadkqy9xf";
+ };
+
+ nativeBuildInputs = [ cmake wrapGAppsHook ];
+ buildInputs = [ libX11 libzip glfw libpng ]
+ ++ (with xorg; [ libXrandr libXinerama libXcursor libXi libXxf86vm ]);
+
+ dontWrapGApps = true; # We also need zenity (see below)
+
+ postPatch = ''
+ substituteInPlace CMakeLists.txt \
+ --replace "/usr/" "''${out}/"
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/tev \
+ "''${gappsWrapperArgs[@]}" \
+ --prefix PATH ":" "${gnome3.zenity}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A high dynamic range (HDR) image comparison tool";
+ longDescription = ''
+ A high dynamic range (HDR) image comparison tool for graphics people. tev
+ allows viewing images through various tonemapping operators and inspecting
+ the values of individual pixels. Often, it is important to find exact
+ differences between pairs of images. For this purpose, tev allows rapidly
+ switching between opened images and visualizing various error metrics (L1,
+ L2, and relative versions thereof). To avoid clutter, opened images and
+ their layers can be filtered by keywords.
+ While the predominantly supported file format is OpenEXR certain other
+ types of images can also be loaded.
+ '';
+ inherit (src.meta) homepage;
+ changelog = "https://github.com/Tom94/tev/releases/tag/v${version}";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix
new file mode 100644
index 000000000000..ac382bb63278
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, makeWrapper, perl, perlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "timelapse-deflicker";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "cyberang3l";
+ repo = "timelapse-deflicker";
+ rev = "v${version}";
+ sha256 = "0bbfnrdycrpyz7rqrql5ib9qszny7z5xpqp65c1mxqd2876gv960";
+ };
+
+ installPhase = ''
+ install -m755 -D timelapse-deflicker.pl $out/bin/timelapse-deflicker
+ wrapProgram $out/bin/timelapse-deflicker --set PERL5LIB $PERL5LIB
+ '';
+
+ buildInputs = with perlPackages; [
+ makeWrapper perl
+ PerlMagick TermProgressBar ImageExifTool
+ FileType ClassMethodMaker
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Simple script to deflicker images taken for timelapses";
+ homepage = "https://github.com/cyberang3l/timelapse-deflicker";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ valeriangalliat ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/ufraw/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ufraw/default.nix
new file mode 100644
index 000000000000..e1a0cfa95204
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/ufraw/default.nix
@@ -0,0 +1,88 @@
+{ stdenv
+, fetchFromGitHub
+
+, autoconf
+, automake
+, autoreconfHook
+, bzip2
+, cfitsio
+, exiv2
+, gettext
+, gimp ? null
+, gtk2
+, gtkimageview
+, lcms2
+, lensfun
+, libjpeg
+, libtiff
+, perl
+, pkgconfig
+, zlib
+
+, withGimpPlugin ? true
+}:
+
+assert withGimpPlugin -> gimp != null;
+
+stdenv.mkDerivation {
+ pname = "ufraw";
+ version = "unstable-2019-06-12";
+
+ # The original ufraw repo is unmaintained and broken;
+ # this is a fork that collects patches
+ src = fetchFromGitHub {
+ owner = "sergiomb2";
+ repo = "ufraw";
+ rev = "c65b4237dcb430fb274e4778afaf5df9a18e04e6";
+ sha256 = "02icn67bsinvgliy62qa6v7gmwgp2sh15jvm8iiz3c7g1h74f0b7";
+ };
+
+ outputs = [ "out" ] ++ stdenv.lib.optional withGimpPlugin "gimpPlugin";
+
+ nativeBuildInputs = [ autoconf automake autoreconfHook gettext perl pkgconfig ];
+
+ buildInputs = [
+ bzip2
+ cfitsio
+ exiv2
+ gtk2
+ gtkimageview
+ lcms2
+ lensfun
+ libjpeg
+ libtiff
+ zlib
+ ] ++ stdenv.lib.optional withGimpPlugin gimp;
+
+ configureFlags = [
+ "--enable-contrast"
+ "--enable-dst-correction"
+ ] ++ stdenv.lib.optional withGimpPlugin "--with-gimp";
+
+ postInstall = stdenv.lib.optionalString withGimpPlugin ''
+ moveToOutput "lib/gimp" "$gimpPlugin"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sergiomb2/ufraw";
+
+ broken = true; # https://github.com/NixOS/nixpkgs/issues/97946
+
+ description = "Utility to read and manipulate raw images from digital cameras";
+
+ longDescription =
+ '' The Unidentified Flying Raw (UFRaw) is a utility to read and
+ manipulate raw images from digital cameras. It can be used on its
+ own or as a Gimp plug-in. It reads raw images using Dave Coffin's
+ raw conversion utility - DCRaw. UFRaw supports color management
+ workflow based on Little CMS, allowing the user to apply ICC color
+ profiles. For Nikon users UFRaw has the advantage that it can read
+ the camera's tone curves.
+ '';
+
+ license = licenses.gpl2Plus;
+
+ maintainers = with maintainers; [ gloaming ];
+ platforms = with platforms; all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
new file mode 100644
index 000000000000..8043f153083f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
@@ -0,0 +1,115 @@
+{ stdenv, fetchurl
+
+# Build-time dependencies
+, makeWrapper
+, file
+
+# Runtime dependencies
+, fontconfig
+, freetype
+, libX11
+, libXext
+, libXinerama
+, libXrandr
+, libXrender
+, libGL
+, openal}:
+
+let
+ version = "1.0";
+
+ arch = if stdenv.hostPlatform.system == "x86_64-linux" then
+ "x64"
+ else if stdenv.hostPlatform.system == "i686-linux" then
+ "x86"
+ else
+ throw "Unsupported platform ${stdenv.hostPlatform.system}";
+
+in
+ stdenv.mkDerivation rec {
+ pname = "unigine-valley";
+ inherit version;
+
+ src = fetchurl {
+ url = "http://assets.unigine.com/d/Unigine_Valley-${version}.run";
+ sha256 = "5f0c8bd2431118551182babbf5f1c20fb14e7a40789697240dcaf546443660f4";
+ };
+
+ sourceRoot = "Unigine_Valley-${version}";
+ instPath = "lib/unigine/valley";
+
+ buildInputs = [file makeWrapper];
+
+ libPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc # libstdc++.so.6
+ fontconfig
+ freetype
+ libX11
+ libXext
+ libXinerama
+ libXrandr
+ libXrender
+ libGL
+ openal
+ ];
+
+ unpackPhase = ''
+ runHook preUnpack
+
+ cp $src extractor.run
+ chmod +x extractor.run
+ ./extractor.run --target $sourceRoot
+
+ runHook postUnpack
+ '';
+
+ patchPhase = ''
+ runHook prePatch
+
+ # Patch ELF files.
+ elfs=$(find bin -type f | xargs file | grep ELF | cut -d ':' -f 1)
+ for elf in $elfs; do
+ patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $elf || true
+ done
+
+ runHook postPatch
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ instdir=$out/${instPath}
+
+ # Install executables and libraries
+ mkdir -p $instdir/bin
+ install -m 0755 bin/browser_${arch} $instdir/bin
+ install -m 0755 bin/libApp{Stereo,Surround,Wall}_${arch}.so $instdir/bin
+ install -m 0755 bin/libGPUMonitor_${arch}.so $instdir/bin
+ install -m 0755 bin/libQt{Core,Gui,Network,WebKit,Xml}Unigine_${arch}.so.4 $instdir/bin
+ install -m 0755 bin/libUnigine_${arch}.so $instdir/bin
+ install -m 0755 bin/valley_${arch} $instdir/bin
+ install -m 0755 valley $instdir
+
+ # Install other files
+ cp -R data documentation $instdir
+
+ # Install and wrap executable
+ mkdir -p $out/bin
+ install -m 0755 valley $out/bin/valley
+ wrapProgram $out/bin/valley \
+ --run "cd $instdir" \
+ --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$instdir/bin:$libPath
+
+ runHook postInstall
+ '';
+
+ stripDebugList = ["${instPath}/bin"];
+
+ meta = {
+ description = "The Unigine Valley GPU benchmarking tool";
+ homepage = "https://unigine.com/products/benchmarks/valley/";
+ license = stdenv.lib.licenses.unfree; # see also: $out/$instPath/documentation/License.pdf
+ maintainers = [ stdenv.lib.maintainers.kierdavis ];
+ platforms = ["x86_64-linux" "i686-linux"];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/viewnior/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
new file mode 100644
index 000000000000..1addb2d7bd56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, desktop-file-utils, gtk2, libpng, exiv2, lcms
+, intltool, gettext, shared-mime-info, glib, gdk-pixbuf, perl}:
+
+stdenv.mkDerivation rec {
+ pname = "viewnior";
+ version = "1.7";
+
+ src = fetchFromGitHub {
+ owner = "hellosiyan";
+ repo = "Viewnior";
+ rev = "${pname}-${version}";
+ sha256 = "0y4hk3vq8psba5k615w18qj0kbdfp5w0lm98nv5apy6hmcpwfyig";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ desktop-file-utils
+ intltool
+ gettext
+ ];
+
+ buildInputs = [
+ gtk2
+ libpng
+ exiv2
+ lcms
+ shared-mime-info
+ glib
+ gdk-pixbuf
+ perl
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Fast and simple image viewer";
+ longDescription =
+ '' Viewnior is insipred by big projects like Eye of Gnome, because of it's
+ usability and richness,and by GPicView, because of it's lightweight design and
+ minimal interface. So here comes Viewnior - small and light, with no compromise
+ with the quality of it's functions. The program is made with better integration
+ in mind (follows Gnome HIG2).
+ '';
+ license = licenses.gpl3;
+ homepage = "http://siyanpanayotov.com/project/viewnior/";
+ maintainers = with maintainers; [ smironov artturin ];
+ platforms = platforms.gnu ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/vimiv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/vimiv/default.nix
new file mode 100644
index 000000000000..b5e9d0b8cf2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/vimiv/default.nix
@@ -0,0 +1,73 @@
+{ lib, python3Packages, fetchFromGitHub, imagemagick, librsvg, gtk3, jhead
+, gnome3
+
+# Test requirements
+, dbus, xvfb_run, xdotool
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "vimiv";
+ version = "0.7.3";
+
+ src = fetchFromGitHub {
+ owner = "karlch";
+ repo = "vimiv";
+ rev = "v${version}";
+ sha256 = "18dn81n8hcrqhrqfida34qz7a0ar9rz2rrmzsvyp54zc6nyvv1cn";
+ };
+
+ testimages = fetchFromGitHub {
+ owner = "karlch";
+ repo = "vimiv";
+ rev = "6f4d1372b27f2065c56eafdb521d230d9bb8f4e2";
+ sha256 = "0a3aybzpms0381dz9japhm4c7j5klhmw91prcac6zaww6x34nmxb";
+ };
+
+ postPatch = ''
+ patchShebangs scripts/install_icons.sh
+ sed -i -e 's,/usr,,g' -e '/setup\.py/d' Makefile scripts/install_icons.sh
+
+ sed -i \
+ -e 's,/etc/vimiv/\(vimivrc\|keys\.conf\),'"$out"'&,g' \
+ man/* vimiv/parser.py
+
+ sed -i \
+ -e 's!"mogrify"!"${imagemagick}/bin/mogrify"!g' \
+ -e '/cmd *=/s!"jhead"!"${jhead}/bin/jhead"!g' \
+ vimiv/imageactions.py
+ '';
+
+ checkInputs = [ python3Packages.nose dbus.daemon xvfb_run xdotool ];
+ buildInputs = [ gnome3.adwaita-icon-theme librsvg ];
+ propagatedBuildInputs = with python3Packages; [ pillow pygobject3 gtk3 ];
+
+ makeWrapperArgs = [
+ "--prefix GI_TYPELIB_PATH : \"$GI_TYPELIB_PATH\""
+ "--suffix XDG_DATA_DIRS : \"$XDG_ICON_DIRS:$out/share\""
+ "--set GDK_PIXBUF_MODULE_FILE \"$GDK_PIXBUF_MODULE_FILE\""
+ ];
+
+ postCheck = ''
+ # Some tests assume that the directory only contains one vimiv directory
+ rm -rf vimiv.egg-info vimiv.desktop
+
+ # Re-use the wrapper args from the main program
+ makeWrapper "$SHELL" run-tests $makeWrapperArgs
+
+ cp -Rd --no-preserve=mode "$testimages/testimages" vimiv/testimages
+ HOME="$(mktemp -d)" PATH="$out/bin:$PATH" \
+ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+ ./run-tests -c 'python tests/main_test.py && nosetests -vx'
+ '';
+
+ postInstall = "make DESTDIR=\"$out\" install";
+
+ meta = {
+ homepage = "https://github.com/karlch/vimiv";
+ description = "An image viewer with Vim-like keybindings";
+ license = lib.licenses.mit;
+ platforms = lib.platforms.linux;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/wings/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/wings/default.nix
new file mode 100644
index 000000000000..19c30f3ecc4d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/wings/default.nix
@@ -0,0 +1,45 @@
+{ fetchurl, stdenv, erlang, cl, libGL, libGLU, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ name = "wings-2.2.4";
+ src = fetchurl {
+ url = "mirror://sourceforge/wings/${name}.tar.bz2";
+ sha256 = "1xcmifs4vq2810pqqvsjsm8z3lz24ys4c05xkh82nyppip2s89a3";
+ };
+
+ ERL_LIBS = "${cl}/lib/erlang/lib";
+
+ patchPhase = ''
+ sed -i 's,-Werror ,,' e3d/Makefile
+ sed -i 's,../../wings/,../,' icons/Makefile
+ find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/src/,../../src/,' {} \;
+ find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/e3d/,../../e3d/,' {} \;
+ find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/intl_tools/,../../intl_tools/,' {} \;
+ find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/src/,../src/,' {} \;
+ find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/e3d/,../e3d/,' {} \;
+ find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/intl_tools/,../intl_tools/,' {} \;
+ '';
+
+ buildInputs = [ erlang cl libGL libGLU ];
+
+ # I did not test the *cl* part. I added the -pa just by imitation.
+ installPhase = ''
+ mkdir -p $out/bin $out/lib/${name}/ebin
+ cp ebin/* $out/lib/${name}/ebin
+ cp -R textures shaders plugins $out/lib/$name
+ cat << EOF > $out/bin/wings
+ #!${runtimeShell}
+ ${erlang}/bin/erl \
+ -pa $out/lib/${name}/ebin -run wings_start start_halt "$@"
+ EOF
+ chmod +x $out/bin/wings
+ '';
+
+ meta = {
+ homepage = "http://www.wings3d.com/";
+ description = "Subdivision modeler inspired by Nendo and Mirai from Izware";
+ license = stdenv.lib.licenses.tcltk;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
new file mode 100644
index 000000000000..3c2ad8f4fab0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
@@ -0,0 +1,61 @@
+{ mkDerivation, stdenv, lib, qtbase, qtsvg, libglvnd, libX11, libXi, fetchurl, makeDesktopItem }:
+let
+ desktopItem = makeDesktopItem {
+ name = "Write";
+ exec = "Write";
+ comment = "A word processor for handwriting";
+ icon = "write_stylus";
+ desktopName = "Write";
+ genericName = "Write";
+ categories = "Office;Graphics";
+ };
+in
+mkDerivation rec {
+ pname = "write_stylus";
+ version = "300";
+
+ src = fetchurl {
+ url = "http://www.styluslabs.com/write/write${version}.tar.gz";
+ sha256 = "0h1wf3af7jzp3f3l8mlnshi83d7a4v4y8nfqfai4lmskyicqlz7c";
+ };
+
+ sourceRoot = ".";
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -R Write $out/
+ # symlink the binary to bin/
+ ln -s $out/Write/Write $out/bin/Write
+
+ # Create desktop item
+ mkdir -p $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications/
+ mkdir -p $out/share/icons
+ ln -s $out/Write/Write144x144.png $out/share/icons/write_stylus.png
+ '';
+ preFixup = let
+ libPath = lib.makeLibraryPath [
+ qtbase # libQt5PrintSupport.so.5
+ qtsvg # libQt5Svg.so.5
+ stdenv.cc.cc.lib # libstdc++.so.6
+ libglvnd # libGL.so.1
+ libX11 # libX11.so.6
+ libXi # libXi.so.6
+ ];
+ in ''
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libPath}" \
+ $out/Write/Write
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.styluslabs.com/";
+ description = "Write is a word processor for handwriting";
+ platforms = platforms.linux;
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with maintainers; [ oyren ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/xaos/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xaos/default.nix
new file mode 100644
index 000000000000..767f3aa920bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xaos/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, aalib, gsl, libpng, libX11, xorgproto, libXext
+, libXt, zlib, gettext, intltool, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "xaos";
+ version = "3.6";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xaos/${pname}-${version}.tar.gz";
+ sha256 = "15cd1cx1dyygw6g2nhjqq3bsfdj8sj8m4va9n75i0f3ryww3x7wq";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ buildInputs = [
+ aalib gsl libpng libX11 xorgproto libXext
+ libXt zlib gettext intltool perl
+ ];
+
+ preConfigure = ''
+ sed -e s@/usr/@"$out/"@g -i configure $(find . -name 'Makefile*')
+ mkdir -p $out/share/locale
+ '';
+
+ meta = {
+ homepage = "http://xaos.sourceforge.net/";
+ description = "Fractal viewer";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/xfig/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xfig/default.nix
new file mode 100644
index 000000000000..fe5a13703329
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xfig/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, xlibsWrapper, makeWrapper, libXpm
+, libXmu, libXi, libXp, Xaw3d, fig2dev
+}:
+
+let
+ version = "3.2.7a";
+
+in stdenv.mkDerivation {
+ pname = "xfig";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mcj/xfig-${version}.tar.xz";
+ sha256 = "096zgp0bqnxhgxbrv2jjylrjz3pr4da0xxznlk2z7ffxr5pri2fa";
+ };
+
+ postPatch = ''
+ sed -i 's:"fig2dev":"${fig2dev}/bin/fig2dev":' src/main.c
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/X11/app-defaults
+ cp app-defaults/* $out/share/X11/app-defaults
+
+ wrapProgram $out/bin/xfig \
+ --set XAPPLRESDIR $out/share/X11/app-defaults
+ '';
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [ xlibsWrapper libXpm libXmu libXi libXp Xaw3d ];
+
+ meta = with stdenv.lib; {
+ description = "An interactive drawing tool for X11";
+ longDescription = ''
+ Note that you need to have the <literal>netpbm</literal> tools
+ in your path to export bitmaps.
+ '';
+ inherit (fig2dev.meta) license homepage platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/xfractint/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xfractint/default.nix
new file mode 100644
index 000000000000..08ef0cd7b584
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xfractint/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, libX11, libXft}:
+stdenv.mkDerivation rec {
+ pname = "xfractint";
+ version = "20.04p16";
+ # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
+ src = fetchurl {
+ url = "https://www.fractint.net/ftp/current/linux/xfractint-${version}.tar.gz";
+ sha256 = "1ba77jifxv8jql044mdydh4p4ms4w5vw3qrqmcfzlvqfxk7h2m2f";
+ };
+
+ buildInputs = [libX11 libXft];
+
+ configurePhase = ''
+ sed -e 's@/usr/bin/@@' -i Makefile
+ '';
+
+ makeFlags = ["PREFIX=$(out)"];
+
+ meta = {
+ inherit version;
+ description = "";
+ # Code cannot be used in commercial programs
+ # Looks like the definition hinges on the price, not license
+ license = stdenv.lib.licenses.unfree;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ homepage = "https://www.fractint.net/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/xlife/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xlife/default.nix
new file mode 100644
index 000000000000..cc7013739985
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xlife/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchsvn, xorg }:
+
+stdenv.mkDerivation {
+ pname = "xlife";
+ version = "6.7.5";
+
+ src = fetchsvn {
+ url = "https://svn.code.sf.net/p/xlife-cal/xlife/trunk";
+ rev = "365";
+ sha256 = "1gadlcp32s179kd7ypxr8cymd6s060p6z4c2vnx94i8bmiw3nn8h";
+ };
+
+ nativeBuildInputs = with xorg; [ imake gccmakedep ];
+ buildInputs = [ xorg.libX11 ];
+
+ hardeningDisable = [ "format" ];
+ installPhase = ''
+ install -Dm755 xlife -t $out/bin
+ install -Dm755 lifeconv -t $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://litwr2.atspace.eu/xlife.php";
+ description = "Conway's Game of Life and other cellular automata, for X";
+ license = licenses.hpndSellVariant;
+ maintainers = with maintainers; [ djanatyn ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/xournal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xournal/default.nix
new file mode 100644
index 000000000000..8a5d9c3597b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xournal/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchurl, makeDesktopItem
+, ghostscript, atk, gtk2, glib, fontconfig, freetype
+, libgnomecanvas, libgnomeprint, libgnomeprintui
+, pango, libX11, xorgproto, zlib, poppler
+, autoconf, automake, libtool, pkgconfig}:
+
+let
+ isGdkQuartzBackend = (gtk2.gdktarget == "quartz");
+in
+
+stdenv.mkDerivation rec {
+ version = "0.4.8.2016";
+ name = "xournal-" + version;
+ src = fetchurl {
+ url = "mirror://sourceforge/xournal/${name}.tar.gz";
+ sha256 = "09i88v3wacmx7f96dmq0l3afpyv95lh6jrx16xzm0jd1szdrhn5j";
+ };
+
+ buildInputs = [
+ ghostscript atk gtk2 glib fontconfig freetype
+ libgnomecanvas
+ pango libX11 xorgproto zlib poppler
+ ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
+ libgnomeprint libgnomeprintui
+ ];
+
+ nativeBuildInputs = [ autoconf automake libtool pkgconfig ];
+
+ NIX_LDFLAGS = "-lz"
+ + stdenv.lib.optionalString (!isGdkQuartzBackend) " -lX11";
+
+ desktopItem = makeDesktopItem {
+ name = name;
+ exec = "xournal";
+ icon = "xournal";
+ desktopName = "Xournal";
+ comment = meta.description;
+ categories = "Office;Graphics;";
+ mimeType = "application/pdf;application/x-xoj";
+ genericName = "PDF Editor";
+ };
+
+ postInstall=''
+ mkdir --parents $out/share/mime/packages
+ cat << EOF > $out/share/mime/packages/xournal.xml
+ <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+ <mime-type type="application/x-xoj">
+ <comment>Xournal Document</comment>
+ <glob pattern="*.xoj"/>
+ </mime-type>
+ </mime-info>
+ EOF
+ cp --recursive ${desktopItem}/share/applications $out/share
+ mkdir --parents $out/share/icons
+ cp $out/share/xournal/pixmaps/xournal.png $out/share/icons
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://xournal.sourceforge.net/";
+ description = "Note-taking application (supposes stylus)";
+ maintainers = [ maintainers.guibert ];
+ license = licenses.gpl2;
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix
new file mode 100644
index 000000000000..da453b426786
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchFromGitHub
+
+, cmake
+, gettext
+, wrapGAppsHook
+, pkgconfig
+
+, glib
+, gsettings-desktop-schemas
+, gtk3
+, libsndfile
+, libxml2
+, libzip
+, pcre
+, poppler
+, portaudio
+, zlib
+# plugins
+, withLua ? true, lua
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xournalpp";
+ version = "1.0.19";
+
+ src = fetchFromGitHub {
+ owner = "xournalpp";
+ repo = pname;
+ rev = version;
+ sha256 = "05nx4cmrka6hwdn7r91yy4h46qpa9k7iy9dkgaq3hrkh9z3fxlkq";
+ };
+
+ nativeBuildInputs = [ cmake gettext pkgconfig wrapGAppsHook ];
+ buildInputs =
+ [ glib
+ gsettings-desktop-schemas
+ gtk3
+ libsndfile
+ libxml2
+ libzip
+ pcre
+ poppler
+ portaudio
+ zlib
+ ]
+ ++ stdenv.lib.optional withLua lua;
+
+ buildFlags = "translations";
+
+ hardeningDisable = [ "format" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Xournal++ is a handwriting Notetaking software with PDF annotation support";
+ homepage = "https://xournalpp.github.io/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ andrew-d sikmir ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/xzgv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xzgv/default.nix
new file mode 100644
index 000000000000..67f43faf99a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/xzgv/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, gtk2, libexif, pkgconfig, texinfo }:
+
+stdenv.mkDerivation rec {
+ pname = "xzgv";
+ version = "0.9.2";
+ src = fetchurl {
+ url = "mirror://sourceforge/xzgv/xzgv-${version}.tar.gz";
+ sha256 = "17l1xr9v07ggwga3vn0z1i4lnwjrr20rr8z1kjbw71aaijxl18i5";
+ };
+ nativeBuildInputs = [ pkgconfig texinfo ];
+ buildInputs = [ gtk2 libexif ];
+ postPatch = ''
+ substituteInPlace config.mk \
+ --replace /usr/local $out
+ substituteInPlace Makefile \
+ --replace "all: src man" "all: src man info"
+ '';
+ preInstall = ''
+ mkdir -p $out/share/{app-install/desktop,applications,info,pixmaps}
+ '';
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/projects/xzgv/";
+ description = "Picture viewer for X with a thumbnail-based selector";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.womfoo ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/yacreader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/yacreader/default.nix
new file mode 100644
index 000000000000..2d253d4462af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/yacreader/default.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, lib, fetchFromGitHub, qmake, poppler, pkgconfig, libunarr
+, libGLU, qtdeclarative, qtgraphicaleffects, qtmultimedia, qtquickcontrols
+, qtscript
+}:
+
+mkDerivation rec {
+ pname = "yacreader";
+ version = "9.7.1";
+
+ src = fetchFromGitHub {
+ owner = "YACReader";
+ repo = pname;
+ rev = version;
+ sha256 = "17kzh69sxpyk4n7c2gkbsvr9y4j14azdy1qxzghsbwp7ij4iw9kv";
+ };
+
+ nativeBuildInputs = [ qmake pkgconfig ];
+ buildInputs = [ poppler libunarr libGLU qtmultimedia qtscript ];
+ propagatedBuildInputs = [ qtquickcontrols qtgraphicaleffects qtdeclarative ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "A comic reader for cross-platform reading and managing your digital comic collection";
+ homepage = "http://www.yacreader.com";
+ license = lib.licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/yed/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/yed/default.nix
new file mode 100644
index 000000000000..d7c83704dca4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/yed/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchzip, makeWrapper, unzip, jre, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "yEd";
+ version = "3.20.1";
+
+ src = fetchzip {
+ url = "https://www.yworks.com/resources/yed/demo/${pname}-${version}.zip";
+ sha256 = "0sd73s700f3gqq5zq1psrqjg6ff2gv49f8vd37v6bv65vdxqxryq";
+ };
+
+ nativeBuildInputs = [ makeWrapper unzip wrapGAppsHook ];
+ # For wrapGAppsHook setup hook
+ buildInputs = [ (jre.gtk3 or null) ];
+
+ dontConfigure = true;
+ dontBuild = true;
+ dontInstall = true;
+
+ preFixup = ''
+ mkdir -p $out/yed
+ cp -r * $out/yed
+ mkdir -p $out/bin
+
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ makeWrapper ${jre}/bin/java $out/bin/yed \
+ ''${makeWrapperArgs[@]} \
+ --add-flags "-jar $out/yed/yed.jar --"
+ '';
+ dontWrapGApps = true;
+
+ meta = with stdenv.lib; {
+ license = licenses.unfree;
+ homepage = "https://www.yworks.com/products/yed";
+ description = "A powerful desktop application that can be used to quickly and effectively generate high-quality diagrams";
+ platforms = jre.meta.platforms;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/yeetgif/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/yeetgif/default.nix
new file mode 100644
index 000000000000..84bcdee5b76e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/yeetgif/default.nix
@@ -0,0 +1,22 @@
+{ buildGoPackage, fetchFromGitHub, lib }:
+
+buildGoPackage rec {
+ pname = "yeetgif";
+ version = "1.23.6";
+
+ goPackagePath = "github.com/sgreben/yeetgif";
+
+ src = fetchFromGitHub {
+ owner = "sgreben";
+ repo = pname;
+ rev = version;
+ sha256 = "05z1ylsra60bb4cvr383g9im94zsph1dgicqbv5p73qgs634ckk7";
+ };
+
+ meta = with lib; {
+ description = "gif effects CLI. single binary, no dependencies. linux, osx, windows. #1 workplace productivity booster. #yeetgif #eggplant #golang";
+ homepage = "https://github.com/sgreben/yeetgif";
+ license = with licenses; [ mit asl20 cc-by-nc-sa-40 ];
+ maintainers = with maintainers; [ ajs124 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix
new file mode 100644
index 000000000000..db07b9e1db4e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, jre, unzip, runtimeShell }:
+stdenv.mkDerivation rec {
+ version = "0.9.0";
+ pname = "zgrviewer";
+ src = fetchurl {
+ url = "mirror://sourceforge/zvtm/${pname}/${version}/${pname}-${version}.zip";
+ sha256 = "1yg2rck81sqqrgfi5kn6c1bz42dr7d0zqpcsdjhicssi1y159f23";
+ };
+ buildInputs = [jre unzip];
+ buildPhase = "";
+ installPhase = ''
+ mkdir -p "$out"/{bin,share/java/zvtm/plugins,share/doc/zvtm}
+
+ cp overview.html *.license.* "$out/share/doc/zvtm"
+
+ cp -r target/* "$out/share/java/zvtm/"
+
+ echo '#!${runtimeShell}' > "$out/bin/zgrviewer"
+ echo "${jre}/lib/openjdk/jre/bin/java -jar '$out/share/java/zvtm/zgrviewer-${version}.jar' \"\$@\"" >> "$out/bin/zgrviewer"
+ chmod a+x "$out/bin/zgrviewer"
+ '';
+ meta = {
+ # Quicker to unpack locally than load Hydra
+ hydraPlatforms = [];
+ maintainers = with stdenv.lib.maintainers; [raskin];
+ license = stdenv.lib.licenses.lgpl21Plus;
+ description = "GraphViz graph viewer/navigator";
+ platforms = with stdenv.lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/zgv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/graphics/zgv/default.nix
new file mode 100644
index 000000000000..6cc59a7e60bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/zgv/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, fetchpatch, pkgconfig, SDL, SDL_image, libjpeg, libpng, libtiff }:
+
+stdenv.mkDerivation rec {
+ pname = "zgv";
+ version = "5.9";
+ src = fetchurl {
+ url = "https://www.svgalib.org/rus/zgv/${pname}-${version}.tar.gz";
+ sha256 = "1fk4i9x0cpnpn3llam0zy2pkmhlr2hy3iaxhxg07v9sizd4dircj";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ SDL SDL_image libjpeg libpng libtiff ];
+
+ hardeningDisable = [ "format" ];
+
+ makeFlags = [
+ "BACKEND=SDL"
+ ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://foss.aueb.gr/mirrors/linux/gentoo/media-gfx/zgv/files/zgv-5.9-libpng15.patch";
+ sha256 = "1blw9n04c28bnwcmcn64si4f5zpg42s8yn345js88fyzi9zm19xw";
+ })
+ ./switch.patch
+ ];
+
+ patchFlags = [ "-p0" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp src/zgv $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.svgalib.org/rus/zgv/";
+ description = "Picture viewer with a thumbnail-based selector";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.vrthra ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/graphics/zgv/switch.patch b/infra/libkookie/nixpkgs/pkgs/applications/graphics/zgv/switch.patch
new file mode 100644
index 000000000000..0b5ad092d72d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/graphics/zgv/switch.patch
@@ -0,0 +1,14 @@
+GCC complains
+
+diff -ur src/zgv_io.c src/zgv_io.c
+--- src/zgv_io.c 2005-01-20 15:07:46.000000000 -0800
++++ src/zgv_io.c 2016-06-29 10:19:40.169897611 -0700
+@@ -645,7 +645,7 @@
+ case SDLK_INSERT: return(RK_INSERT);
+ case SDLK_DELETE: return(RK_DELETE);
+ case SDLK_RETURN: return(RK_ENTER);
+- default:
++ default: ;
+ /* stop complaints */
+ }
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-calendar.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-calendar.nix
new file mode 100644
index 000000000000..121e93d3f5c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-calendar.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-contacts, kcalendarcore, kcalutils, kcontacts,
+ kidentitymanagement, kio, kmailtransport,
+}:
+
+mkDerivation {
+ name = "akonadi-calendar";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [
+ akonadi akonadi-contacts kcalendarcore kcalutils kcontacts kidentitymanagement
+ kio kmailtransport
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix
new file mode 100644
index 000000000000..b09058b60be9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix
@@ -0,0 +1,25 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules,
+ qtwebengine,
+ grantlee,
+ kdbusaddons, ki18n, kiconthemes, kio, kitemmodels, ktextwidgets, prison,
+ akonadi, akonadi-mime, kcontacts, kmime,
+}:
+
+mkDerivation {
+ name = "akonadi-contacts";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ qtwebengine
+ grantlee
+ kdbusaddons ki18n kiconthemes kio kitemmodels ktextwidgets prison
+ akonadi-mime kcontacts kmime
+ ];
+ propagatedBuildInputs = [ akonadi ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix
new file mode 100644
index 000000000000..cc1acbc6dd05
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, karchive, kcontacts, kcrash, kidentitymanagement, kio,
+ kmailtransport, kwallet, mailcommon, mailimporter, messagelib
+}:
+
+mkDerivation {
+ name = "akonadi-import-wizard";
+ meta = {
+ license = with lib.licenses; [ gpl2Plus lgpl21Plus fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi karchive kcontacts kcrash kidentitymanagement kio
+ kmailtransport kwallet mailcommon mailimporter messagelib
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-mime.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-mime.nix
new file mode 100644
index 000000000000..0ed958b4e770
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-mime.nix
@@ -0,0 +1,16 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, shared-mime-info,
+ akonadi, kdbusaddons, ki18n, kio, kitemmodels, kmime
+}:
+
+mkDerivation {
+ name = "akonadi-mime";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
+ buildInputs = [ akonadi kdbusaddons ki18n kio kitemmodels kmime ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-notes.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-notes.nix
new file mode 100644
index 000000000000..72c4d799239c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-notes.nix
@@ -0,0 +1,18 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, kcompletion, ki18n, kitemmodels, kmime, kxmlgui
+}:
+
+mkDerivation {
+ name = "akonadi-notes";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi kcompletion ki18n kitemmodels kmime kxmlgui
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-search.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-search.nix
new file mode 100644
index 000000000000..23ee6b1b9cc4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi-search.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-mime, kcalendarcore, kcmutils, kcontacts, kcoreaddons, kmime,
+ krunner, qtbase, xapian
+}:
+
+mkDerivation {
+ name = "akonadi-search";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kcmutils krunner xapian ];
+ propagatedBuildInputs = [
+ akonadi akonadi-mime kcalendarcore kcontacts kcoreaddons kmime qtbase
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
new file mode 100644
index 000000000000..58390cba226b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
@@ -0,0 +1,190 @@
+From 90969b9b36400d47b1afe761fb8468c1acb8a04a Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:41:19 -0500
+Subject: [PATCH 1/3] akonadi paths
+
+---
+ src/akonadicontrol/agentmanager.cpp | 4 ++--
+ src/akonadicontrol/agentprocessinstance.cpp | 2 +-
+ src/server/storage/dbconfigmysql.cpp | 26 ++++-----------------
+ src/server/storage/dbconfigpostgresql.cpp | 19 +++------------
+ 4 files changed, 11 insertions(+), 40 deletions(-)
+
+diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
+index 23b4a1f..c13b658 100644
+--- a/src/akonadicontrol/agentmanager.cpp
++++ b/src/akonadicontrol/agentmanager.cpp
+@@ -61,7 +61,7 @@ public:
+ []() {
+ QCoreApplication::instance()->exit(255);
+ });
+- start(QStringLiteral("akonadiserver"), args, RestartOnCrash);
++ start(QLatin1String(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash);
+ }
+
+ ~StorageProcessControl() override
+@@ -84,7 +84,7 @@ public:
+ []() {
+ qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
+ });
+- start(QStringLiteral("akonadi_agent_server"), args, RestartOnCrash);
++ start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash);
+ }
+
+ ~AgentServerProcessControl() override
+diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
+index 4e58f7e..e8bb532 100644
+--- a/src/akonadicontrol/agentprocessinstance.cpp
++++ b/src/akonadicontrol/agentprocessinstance.cpp
+@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
+ } else {
+ Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
+ const QStringList arguments = QStringList() << executable << identifier();
+- const QString agentLauncherExec = Akonadi::StandardDirs::findExecutable(QStringLiteral("akonadi_agent_launcher"));
++ const QString agentLauncherExec = QLatin1String(NIX_OUT "/bin/akonadi_agent_launcher");
+ mController->start(agentLauncherExec, arguments);
+ }
+ return true;
+diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
+index cac40f5..527649b 100644
+--- a/src/server/storage/dbconfigmysql.cpp
++++ b/src/server/storage/dbconfigmysql.cpp
+@@ -83,7 +83,6 @@ bool DbConfigMysql::init(QSettings &settings)
+ // determine default settings depending on the driver
+ QString defaultHostName;
+ QString defaultOptions;
+- QString defaultServerPath;
+ QString defaultCleanShutdownCommand;
+
+ #ifndef Q_OS_WIN
+@@ -92,16 +91,7 @@ bool DbConfigMysql::init(QSettings &settings)
+ #endif
+
+ const bool defaultInternalServer = true;
+-#ifdef MYSQLD_EXECUTABLE
+- if (QFile::exists(QStringLiteral(MYSQLD_EXECUTABLE))) {
+- defaultServerPath = QStringLiteral(MYSQLD_EXECUTABLE);
+- }
+-#endif
+- if (defaultServerPath.isEmpty()) {
+- defaultServerPath = findExecutable(QStringLiteral("mysqld"));
+- }
+-
+- const QString mysqladminPath = findExecutable(QStringLiteral("mysqladmin"));
++ const QString mysqladminPath = QLatin1String(NIXPKGS_MYSQL_MYSQLADMIN);
+ if (!mysqladminPath.isEmpty()) {
+ #ifndef Q_OS_WIN
+ defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/%4 shutdown")
+@@ -111,10 +101,10 @@ bool DbConfigMysql::init(QSettings &settings)
+ #endif
+ }
+
+- mMysqlInstallDbPath = findExecutable(QStringLiteral("mysql_install_db"));
++ mMysqlInstallDbPath = QLatin1String(NIXPKGS_MYSQL_MYSQL_INSTALL_DB);
+ qCDebug(AKONADISERVER_LOG) << "Found mysql_install_db: " << mMysqlInstallDbPath;
+
+- mMysqlCheckPath = findExecutable(QStringLiteral("mysqlcheck"));
++ mMysqlCheckPath = QLatin1String(NIXPKGS_MYSQL_MYSQLCHECK);
+ qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
+
+ mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
+@@ -131,7 +121,7 @@ bool DbConfigMysql::init(QSettings &settings)
+ mUserName = settings.value(QStringLiteral("User")).toString();
+ mPassword = settings.value(QStringLiteral("Password")).toString();
+ mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
+- mMysqldPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString();
++ mMysqldPath = QLatin1String(NIXPKGS_MYSQL_MYSQLD);
+ mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
+ settings.endGroup();
+
+@@ -141,9 +131,6 @@ bool DbConfigMysql::init(QSettings &settings)
+ // intentionally not namespaced as we are the only one in this db instance when using internal mode
+ mDatabaseName = QStringLiteral("akonadi");
+ }
+- if (mInternalServer && (mMysqldPath.isEmpty() || !QFile::exists(mMysqldPath))) {
+- mMysqldPath = defaultServerPath;
+- }
+
+ qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
+
+@@ -152,9 +139,6 @@ bool DbConfigMysql::init(QSettings &settings)
+ settings.setValue(QStringLiteral("Name"), mDatabaseName);
+ settings.setValue(QStringLiteral("Host"), mHostName);
+ settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+- if (!mMysqldPath.isEmpty()) {
+- settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
+- }
+ settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+ settings.endGroup();
+ settings.sync();
+@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer()
+ #endif
+
+ // generate config file
+- const QString globalConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-global.conf"));
++ const QString globalConfig = QLatin1String(NIX_OUT "/etc/xdg/akonadi/mysql-global.conf");
+ const QString localConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
+ const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
+ if (globalConfig.isEmpty()) {
+diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
+index 09cdbd5..1c8996b 100644
+--- a/src/server/storage/dbconfigpostgresql.cpp
++++ b/src/server/storage/dbconfigpostgresql.cpp
+@@ -141,9 +141,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
+ // determine default settings depending on the driver
+ QString defaultHostName;
+ QString defaultOptions;
+- QString defaultServerPath;
+ QString defaultInitDbPath;
+- QString defaultPgUpgradePath;
+ QString defaultPgData;
+
+ #ifndef Q_WS_WIN // We assume that PostgreSQL is running as service on Windows
+@@ -154,12 +152,8 @@ bool DbConfigPostgresql::init(QSettings &settings)
+
+ mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
+ if (mInternalServer) {
+- const auto paths = postgresSearchPaths(QStringLiteral("/usr/lib/postgresql"));
+-
+- defaultServerPath = QStandardPaths::findExecutable(QStringLiteral("pg_ctl"), paths);
+- defaultInitDbPath = QStandardPaths::findExecutable(QStringLiteral("initdb"), paths);
++ defaultInitDbPath = QLatin1String(NIXPKGS_POSTGRES_INITDB);
+ defaultHostName = Utils::preferredSocketDirectory(StandardDirs::saveDir("data", QStringLiteral("db_misc")));
+- defaultPgUpgradePath = QStandardPaths::findExecutable(QStringLiteral("pg_upgrade"), paths);
+ defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
+ }
+
+@@ -178,20 +172,14 @@ bool DbConfigPostgresql::init(QSettings &settings)
+ mUserName = settings.value(QStringLiteral("User")).toString();
+ mPassword = settings.value(QStringLiteral("Password")).toString();
+ mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
+- mServerPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString();
+- if (mInternalServer && mServerPath.isEmpty()) {
+- mServerPath = defaultServerPath;
+- }
++ mServerPath = QLatin1String(NIXPKGS_POSTGRES_PG_CTL);
+ qCDebug(AKONADISERVER_LOG) << "Found pg_ctl:" << mServerPath;
+ mInitDbPath = settings.value(QStringLiteral("InitDbPath"), defaultInitDbPath).toString();
+ if (mInternalServer && mInitDbPath.isEmpty()) {
+ mInitDbPath = defaultInitDbPath;
+ }
+ qCDebug(AKONADISERVER_LOG) << "Found initdb:" << mServerPath;
+- mPgUpgradePath = settings.value(QStringLiteral("UpgradePath"), defaultPgUpgradePath).toString();
+- if (mInternalServer && mPgUpgradePath.isEmpty()) {
+- mPgUpgradePath = defaultPgUpgradePath;
+- }
++ mPgUpgradePath = QLatin1String(NIXPKGS_POSTGRES_PG_UPGRADE);
+ qCDebug(AKONADISERVER_LOG) << "Found pg_upgrade:" << mPgUpgradePath;
+ mPgData = settings.value(QStringLiteral("PgData"), defaultPgData).toString();
+ if (mPgData.isEmpty()) {
+@@ -207,7 +195,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
+ settings.setValue(QStringLiteral("Port"), mHostPort);
+ }
+ settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+- settings.setValue(QStringLiteral("ServerPath"), mServerPath);
+ settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
+ settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+ settings.endGroup();
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
new file mode 100644
index 000000000000..ac9b3146e179
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
@@ -0,0 +1,26 @@
+From b8c6a2a017321649db8fec553a644b8da2300514 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:41:35 -0500
+Subject: [PATCH 2/3] akonadi timestamps
+
+---
+ src/server/storage/dbconfigmysql.cpp | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
+index 527649b..08c3dd4 100644
+--- a/src/server/storage/dbconfigmysql.cpp
++++ b/src/server/storage/dbconfigmysql.cpp
+@@ -235,8 +235,7 @@ bool DbConfigMysql::startInternalServer()
+ bool confUpdate = false;
+ QFile actualFile(actualConfig);
+ // update conf only if either global (or local) is newer than actual
+- if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) ||
+- (QFileInfo(localConfig).lastModified() > QFileInfo(actualFile).lastModified())) {
++ if (true) {
+ QFile globalFile(globalConfig);
+ QFile localFile(localConfig);
+ if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
new file mode 100644
index 000000000000..1a0bc000c804
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
@@ -0,0 +1,51 @@
+From 7afe018382cf68b477b35f87b666424d62d19ef4 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:41:55 -0500
+Subject: [PATCH 3/3] akonadi revert make relocatable
+
+---
+ CMakeLists.txt | 3 ---
+ KF5AkonadiConfig.cmake.in | 6 +++---
+ 2 files changed, 3 insertions(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d927471..83a74c0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -330,9 +330,6 @@ configure_package_config_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake"
+ INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
+- PATH_VARS AKONADI_DBUS_INTERFACES_INSTALL_DIR
+- AKONADI_INCLUDE_DIR
+- KF5Akonadi_DATA_DIR
+ )
+
+ install(FILES
+diff --git a/KF5AkonadiConfig.cmake.in b/KF5AkonadiConfig.cmake.in
+index 421e1df..e3abf27 100644
+--- a/KF5AkonadiConfig.cmake.in
++++ b/KF5AkonadiConfig.cmake.in
+@@ -24,8 +24,8 @@ if(BUILD_TESTING)
+ find_dependency(Qt5Test "@QT_REQUIRED_VERSION@")
+ endif()
+
+-set_and_check(AKONADI_DBUS_INTERFACES_DIR "@PACKAGE_AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
+-set_and_check(AKONADI_INCLUDE_DIR "@PACKAGE_AKONADI_INCLUDE_DIR@")
++set_and_check(AKONADI_DBUS_INTERFACES_DIR "@AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
++set_and_check(AKONADI_INCLUDE_DIR "@AKONADI_INCLUDE_DIR@")
+
+ find_dependency(Boost "@Boost_MINIMUM_VERSION@")
+
+@@ -33,7 +33,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiTargets.cmake)
+ include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiMacros.cmake)
+
+ # The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed
+-set(KF5Akonadi_DATA_DIR "@PACKAGE_KF5Akonadi_DATA_DIR@")
++set(KF5Akonadi_DATA_DIR "@KF5Akonadi_DATA_DIR@")
+
+ ####################################################################################
+ # CMAKE_AUTOMOC
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/default.nix
new file mode 100644
index 000000000000..6ffe1e2de8aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadi/default.nix
@@ -0,0 +1,39 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, shared-mime-info, qtbase,
+ boost, kcompletion, kconfigwidgets, kcrash, kdbusaddons, kdesignerplugin,
+ ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
+}:
+
+mkDerivation {
+ name = "akonadi";
+ meta = {
+ license = [ lib.licenses.lgpl21 ];
+ maintainers = kdepimTeam;
+ broken = lib.versionOlder qtbase.version "5.13";
+ };
+ patches = [
+ ./0001-akonadi-paths.patch
+ ./0002-akonadi-timestamps.patch
+ ./0003-akonadi-revert-make-relocatable.patch
+ ];
+ nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
+ buildInputs = [
+ kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin ki18n
+ kiconthemes kio kwindowsystem qttools
+ ];
+ propagatedBuildInputs = [ boost kitemmodels ];
+ outputs = [ "out" "dev" ];
+ CXXFLAGS = [
+ ''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.getBin mysql}/bin/mysqld\"''
+ ''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.getBin mysql}/bin/mysqladmin\"''
+ ''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.getBin mysql}/bin/mysql_install_db\"''
+ ''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.getBin mysql}/bin/mysqlcheck\"''
+ ''-DNIXPKGS_POSTGRES_PG_CTL=\"\"''
+ ''-DNIXPKGS_POSTGRES_PG_UPGRADE=\"\"''
+ ''-DNIXPKGS_POSTGRES_INITDB=\"\"''
+ ];
+ preConfigure = ''
+ NIX_CFLAGS_COMPILE+=" -DNIX_OUT=\"$out\""
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadiconsole.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadiconsole.nix
new file mode 100644
index 000000000000..a02400847bb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akonadiconsole.nix
@@ -0,0 +1,21 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-contacts, calendarsupport, kcalendarcore, kcompletion,
+ kconfigwidgets, kcontacts, kdbusaddons, kitemmodels, kpimtextedit, libkdepim,
+ ktextwidgets, kxmlgui, messagelib, qtbase, akonadi-search, xapian
+}:
+
+mkDerivation {
+ name = "akonadiconsole";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-contacts calendarsupport kcalendarcore kcompletion kconfigwidgets
+ kcontacts kdbusaddons kitemmodels kpimtextedit ktextwidgets kxmlgui
+ messagelib qtbase libkdepim akonadi-search xapian
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/akregator.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/akregator.nix
new file mode 100644
index 000000000000..98d53bc80838
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/akregator.nix
@@ -0,0 +1,30 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ qtwebengine,
+ grantlee,
+ kcmutils, kcrash, kiconthemes, knotifyconfig, kparts, ktexteditor,
+ kwindowsystem,
+ akonadi, akonadi-mime, grantleetheme, kontactinterface, libkdepim, libkleo,
+ messagelib, syndication
+}:
+
+mkDerivation {
+ name = "akregator";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ qtwebengine
+
+ grantlee
+
+ kcmutils kcrash kiconthemes knotifyconfig kparts ktexteditor kwindowsystem
+
+ akonadi akonadi-mime grantleetheme kontactinterface libkdepim libkleo
+ messagelib syndication
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ark/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/ark/default.nix
new file mode 100644
index 000000000000..76cc423f5460
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ark/default.nix
@@ -0,0 +1,40 @@
+{
+ mkDerivation, lib, config,
+
+ extra-cmake-modules, kdoctools,
+
+ breeze-icons, karchive, kconfig, kcrash, kdbusaddons, ki18n,
+ kiconthemes, kitemmodels, khtml, kio, kparts, kpty, kservice, kwidgetsaddons,
+
+ libarchive, libzip,
+
+ # Archive tools
+ p7zip, lrzip,
+
+ # Unfree tools
+ unfreeEnableUnrar ? false, unrar,
+}:
+
+let
+ extraTools = [ p7zip lrzip ] ++ lib.optional unfreeEnableUnrar unrar;
+in
+
+mkDerivation {
+ name = "ark";
+ meta = {
+ description = "Graphical file compression/decompression utility";
+ license = with lib.licenses;
+ [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree;
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+
+ outputs = [ "out" "dev" ];
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ libarchive libzip ] ++ extraTools;
+ propagatedBuildInputs = [
+ breeze-icons karchive kconfig kcrash kdbusaddons khtml ki18n kiconthemes kio
+ kitemmodels kparts kpty kservice kwidgetsaddons
+ ];
+
+ qtWrapperArgs = [ "--prefix" "PATH" ":" (lib.makeBinPath extraTools) ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/baloo-widgets.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/baloo-widgets.nix
new file mode 100644
index 000000000000..3479b6600fc9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/baloo-widgets.nix
@@ -0,0 +1,18 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ baloo, kconfig, kdelibs4support, kfilemetadata, ki18n, kio, kservice
+}:
+
+mkDerivation {
+ name = "baloo-widgets";
+ meta = {
+ license = [ lib.licenses.lgpl21 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [
+ baloo kconfig kdelibs4support kfilemetadata ki18n kio kservice
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/bomber.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/bomber.nix
new file mode 100644
index 000000000000..f42a6a01871b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/bomber.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+ name = "bomber";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.bomber";
+ description = "A single player arcade game";
+ longDescription = ''
+ Bomber is a single player arcade game. The player is invading various
+ cities in a plane that is decreasing in height.
+
+ The goal of the game is to destroy all the buildings and advance to the next level.
+ Each level gets a bit harder by increasing the speed of the plane and the height of the buildings.
+ '';
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdeclarative
+ knewstuff
+ libkdegames
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/bovo.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/bovo.nix
new file mode 100644
index 000000000000..4bd3113a051f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/bovo.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+ name = "bovo";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.bovo";
+ description = "Five in a row application";
+ longDescription = ''
+ Bovo is a Gomoku (from Japanese 五目並べ - lit. "five points") like game for two players,
+ where the opponents alternate in placing their respective pictogram on the game board.
+ (Also known as: Connect Five, Five in a row, X and O, Naughts and Crosses)
+ '';
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdeclarative
+ knewstuff
+ libkdegames
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/calendarsupport.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/calendarsupport.nix
new file mode 100644
index 000000000000..1537bd25d55e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/calendarsupport.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils, kdepim-apps-libs,
+ kholidays, kidentitymanagement, kmime, pimcommon, qttools,
+}:
+
+mkDerivation {
+ name = "calendarsupport";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-mime akonadi-notes kcalutils kdepim-apps-libs kholidays pimcommon qttools
+ ];
+ propagatedBuildInputs = [ akonadi-calendar kidentitymanagement kmime ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/default.nix
new file mode 100644
index 000000000000..315a5b358855
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/default.nix
@@ -0,0 +1,214 @@
+/*
+
+# New packages
+
+READ THIS FIRST
+
+This module is for official packages in the KDE Applications Bundle. All
+available packages are listed in `./srcs.nix`, although some are not yet
+packaged in Nixpkgs (see below).
+
+IF YOUR PACKAGE IS NOT LISTED IN `./srcs.nix`, IT DOES NOT GO HERE.
+
+Many of the packages released upstream are not yet built in Nixpkgs due to lack
+of demand. To add a Nixpkgs build for an upstream package, copy one of the
+existing packages here and modify it as necessary. A simple example package that
+still shows most of the available features is in `./gwenview.nix`.
+
+# Updates
+
+1. Update the URL in `./fetch.sh`.
+2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/kde`
+ from the top of the Nixpkgs tree.
+3. Use `nox-review wip` to check that everything builds.
+4. Commit the changes and open a pull request.
+
+*/
+
+{
+ lib, libsForQt5, fetchurl,
+}:
+
+let
+ mirror = "mirror://kde";
+ srcs = import ./srcs.nix { inherit fetchurl mirror; };
+
+ mkDerivation = args:
+ let
+ inherit (args) name;
+ sname = args.sname or name;
+ inherit (srcs.${sname}) src version;
+ mkDerivation =
+ libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {};
+ in
+ mkDerivation (args // {
+ name = "${name}-${version}";
+ inherit src;
+
+ outputs = args.outputs or [ "out" ];
+
+ meta = {
+ platforms = lib.platforms.linux;
+ homepage = "http://www.kde.org";
+ } // (args.meta or {});
+ });
+
+ packages = self: with self;
+ let
+ callPackage = self.newScope {
+ inherit mkDerivation;
+
+ # Team of maintainers assigned to the KDE PIM suite
+ kdepimTeam = with lib.maintainers; [ ttuegel vandenoever nyanloutre ];
+ };
+ in {
+ akonadi = callPackage ./akonadi {};
+ akonadi-calendar = callPackage ./akonadi-calendar.nix {};
+ akonadi-contacts = callPackage ./akonadi-contacts.nix {};
+ akonadi-import-wizard = callPackage ./akonadi-import-wizard.nix {};
+ akonadi-mime = callPackage ./akonadi-mime.nix {};
+ akonadi-notes = callPackage ./akonadi-notes.nix {};
+ akonadi-search = callPackage ./akonadi-search.nix {};
+ akonadiconsole = callPackage ./akonadiconsole.nix {};
+ akregator = callPackage ./akregator.nix {};
+ ark = callPackage ./ark {};
+ baloo-widgets = callPackage ./baloo-widgets.nix {};
+ bovo = callPackage ./bovo.nix {};
+ bomber = callPackage ./bomber.nix {};
+ calendarsupport = callPackage ./calendarsupport.nix {};
+ dolphin = callPackage ./dolphin.nix {};
+ dolphin-plugins = callPackage ./dolphin-plugins.nix {};
+ dragon = callPackage ./dragon.nix {};
+ elisa = callPackage ./elisa.nix {};
+ eventviews = callPackage ./eventviews.nix {};
+ ffmpegthumbs = callPackage ./ffmpegthumbs.nix { };
+ filelight = callPackage ./filelight.nix {};
+ granatier = callPackage ./granatier.nix {};
+ grantleetheme = callPackage ./grantleetheme {};
+ gwenview = callPackage ./gwenview.nix {};
+ incidenceeditor = callPackage ./incidenceeditor.nix {};
+ k3b = callPackage ./k3b.nix {};
+ kaddressbook = callPackage ./kaddressbook.nix {};
+ kalarm = callPackage ./kalarm.nix {};
+ kalarmcal = callPackage ./kalarmcal.nix {};
+ kalzium = callPackage ./kalzium.nix {};
+ kapman = callPackage ./kapman.nix {};
+ kapptemplate = callPackage ./kapptemplate.nix { };
+ kate = callPackage ./kate.nix {};
+ katomic = callPackage ./katomic.nix {};
+ kblackbox = callPackage ./kblackbox.nix {};
+ kblocks = callPackage ./kblocks.nix {};
+ kbounce = callPackage ./kbounce.nix {};
+ kbreakout = callPackage ./kbreakout.nix {};
+ kcachegrind = callPackage ./kcachegrind.nix {};
+ kcalc = callPackage ./kcalc.nix {};
+ kcalutils = callPackage ./kcalutils.nix {};
+ kcharselect = callPackage ./kcharselect.nix {};
+ kcolorchooser = callPackage ./kcolorchooser.nix {};
+ kdebugsettings = callPackage ./kdebugsettings.nix {};
+ kdeconnect-kde = callPackage ./kdeconnect-kde.nix {};
+ kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {};
+ kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {};
+ kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix {};
+ kdenlive = callPackage ./kdenlive.nix {};
+ kdepim-runtime = callPackage ./kdepim-runtime {};
+ kdepim-addons = callPackage ./kdepim-addons.nix {};
+ kdepim-apps-libs = callPackage ./kdepim-apps-libs {};
+ kdf = callPackage ./kdf.nix {};
+ kdialog = callPackage ./kdialog.nix {};
+ kdiamond = callPackage ./kdiamond.nix {};
+ keditbookmarks = callPackage ./keditbookmarks.nix {};
+ kfind = callPackage ./kfind.nix {};
+ kfloppy = callPackage ./kfloppy.nix {};
+ kgeography = callPackage ./kgeography.nix {};
+ kget = callPackage ./kget.nix {};
+ kgpg = callPackage ./kgpg.nix {};
+ khelpcenter = callPackage ./khelpcenter.nix {};
+ kidentitymanagement = callPackage ./kidentitymanagement.nix {};
+ kig = callPackage ./kig.nix {};
+ kigo = callPackage ./kigo.nix {};
+ killbots = callPackage ./killbots.nix {};
+ kimap = callPackage ./kimap.nix {};
+ kipi-plugins = callPackage ./kipi-plugins.nix {};
+ kitinerary = callPackage ./kitinerary.nix {};
+ kio-extras = callPackage ./kio-extras.nix {};
+ kldap = callPackage ./kldap.nix {};
+ kleopatra = callPackage ./kleopatra.nix {};
+ klettres = callPackage ./klettres.nix {};
+ klines = callPackage ./klines.nix {};
+ kmag = callPackage ./kmag.nix {};
+ kmahjongg = callPackage ./kmahjongg.nix {};
+ kmail = callPackage ./kmail.nix {};
+ kmail-account-wizard = callPackage ./kmail-account-wizard.nix {};
+ kmailtransport = callPackage ./kmailtransport.nix {};
+ kmbox = callPackage ./kmbox.nix {};
+ kmime = callPackage ./kmime.nix {};
+ kmines = callPackage ./kmines.nix {};
+ kmix = callPackage ./kmix.nix {};
+ kmplot = callPackage ./kmplot.nix {};
+ knavalbattle = callPackage ./knavalbattle.nix {};
+ knetwalk = callPackage ./knetwalk.nix {};
+ knights = callPackage ./knights.nix {};
+ knotes = callPackage ./knotes.nix {};
+ kolf = callPackage ./kolf.nix {};
+ kollision = callPackage ./kollision.nix {};
+ kolourpaint = callPackage ./kolourpaint.nix {};
+ kompare = callPackage ./kompare.nix {};
+ konsole = callPackage ./konsole.nix {};
+ kontact = callPackage ./kontact.nix {};
+ kontactinterface = callPackage ./kontactinterface.nix {};
+ konquest = callPackage ./konquest.nix {};
+ konqueror = callPackage ./konqueror.nix {};
+ korganizer = callPackage ./korganizer.nix {};
+ kpat = callPackage ./kpat.nix {};
+ kpimtextedit = callPackage ./kpimtextedit.nix {};
+ ksmtp = callPackage ./ksmtp {};
+ ksquares = callPackage ./ksquares.nix {};
+ kqtquickcharts = callPackage ./kqtquickcharts.nix {};
+ kpkpass = callPackage ./kpkpass.nix {};
+ kreversi = callPackage ./kreversi.nix {};
+ krdc = callPackage ./krdc.nix {};
+ krfb = callPackage ./krfb.nix {};
+ kruler = callPackage ./kruler.nix {};
+ kshisen = callPackage ./kshisen.nix {};
+ kspaceduel = callPackage ./kspaceduel.nix {};
+ ksudoku = callPackage ./ksudoku.nix {};
+ ksystemlog = callPackage ./ksystemlog.nix {};
+ kteatime = callPackage ./kteatime.nix {};
+ ktimer = callPackage ./ktimer.nix {};
+ ktnef = callPackage ./ktnef.nix {};
+ ktouch = callPackage ./ktouch.nix {};
+ kturtle = callPackage ./kturtle.nix {};
+ kwalletmanager = callPackage ./kwalletmanager.nix {};
+ kwave = callPackage ./kwave.nix {};
+ libgravatar = callPackage ./libgravatar.nix {};
+ libkcddb = callPackage ./libkcddb.nix {};
+ libkdcraw = callPackage ./libkdcraw.nix {};
+ libkdegames = callPackage ./libkdegames.nix {};
+ libkdepim = callPackage ./libkdepim.nix {};
+ libkexiv2 = callPackage ./libkexiv2.nix {};
+ libkgapi = callPackage ./libkgapi.nix {};
+ libkipi = callPackage ./libkipi.nix {};
+ libkleo = callPackage ./libkleo.nix {};
+ libkmahjongg = callPackage ./libkmahjongg.nix {};
+ libkomparediff2 = callPackage ./libkomparediff2.nix {};
+ libksane = callPackage ./libksane.nix {};
+ libksieve = callPackage ./libksieve.nix {};
+ mailcommon = callPackage ./mailcommon.nix {};
+ mailimporter = callPackage ./mailimporter.nix {};
+ marble = callPackage ./marble.nix {};
+ mbox-importer = callPackage ./mbox-importer.nix {};
+ messagelib = callPackage ./messagelib.nix {};
+ minuet = callPackage ./minuet.nix {};
+ okular = callPackage ./okular.nix {};
+ picmi = callPackage ./picmi.nix {};
+ pimcommon = callPackage ./pimcommon.nix {};
+ pim-data-exporter = callPackage ./pim-data-exporter.nix {};
+ pim-sieve-editor = callPackage ./pim-sieve-editor.nix {};
+ print-manager = callPackage ./print-manager.nix {};
+ rocs = callPackage ./rocs.nix {};
+ spectacle = callPackage ./spectacle.nix {};
+ yakuake = callPackage ./yakuake.nix {};
+ };
+
+in lib.makeScope libsForQt5.newScope packages
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix
new file mode 100644
index 000000000000..5580952f40a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix
@@ -0,0 +1,18 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ dolphin, kdelibs4support, ki18n, kio, kxmlgui
+}:
+
+mkDerivation {
+ name = "dolphin-plugins";
+ meta = {
+ license = [ lib.licenses.gpl2 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [
+ dolphin kdelibs4support ki18n kio kxmlgui
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/dolphin.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/dolphin.nix
new file mode 100644
index 000000000000..76d4e989e8c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/dolphin.nix
@@ -0,0 +1,31 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ baloo, baloo-widgets, kactivities, kbookmarks, kcmutils,
+ kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
+ kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
+ kparts, ktexteditor, kwindowsystem, phonon, solid,
+ wayland, qtwayland
+}:
+
+mkDerivation {
+ name = "dolphin";
+ meta = {
+ license = with lib.licenses; [ gpl2 fdl12 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedUserEnvPkgs = [ baloo ];
+ propagatedBuildInputs = [
+ baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
+ kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
+ kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
+ phonon solid
+ wayland qtwayland
+ ];
+ outputs = [ "out" "dev" ];
+ # We need the RPATH for linking, because the `libkdeinit5_dolphin.so` links
+ # private against its dependencies and without the correct RPATH, these
+ # dependencies are not found.
+ cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/dragon.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/dragon.nix
new file mode 100644
index 000000000000..9dd55ec4b9c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/dragon.nix
@@ -0,0 +1,25 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ baloo, baloo-widgets, kactivities, kbookmarks, kcmutils,
+ kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
+ kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
+ kparts, ktexteditor, kwindowsystem, phonon, solid, phonon-backend-gstreamer
+}:
+
+mkDerivation {
+ name = "dragon";
+ meta = {
+ license = with lib.licenses; [ gpl2 fdl12 ];
+ description = "A simple media player for KDE";
+ maintainers = [ lib.maintainers.jonathanreeve ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [
+ baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
+ kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
+ kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
+ phonon solid phonon-backend-gstreamer
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/elisa.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/elisa.nix
new file mode 100644
index 000000000000..9a51aa786fac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/elisa.nix
@@ -0,0 +1,48 @@
+{ mkDerivation
+, fetchFromGitHub
+, lib
+, extra-cmake-modules
+, kdoctools
+, qtbase
+, qtmultimedia
+, qtquickcontrols2
+, qtwebsockets
+, kconfig
+, kcmutils
+, kcrash
+, kdeclarative
+, kfilemetadata
+, kinit
+, kirigami2
+, baloo
+, libvlc
+}:
+
+mkDerivation rec {
+ name = "elisa";
+
+ buildInputs = [ libvlc ];
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+
+ propagatedBuildInputs = [
+ baloo
+ kcmutils
+ kconfig
+ kcrash
+ kdeclarative
+ kfilemetadata
+ kinit
+ kirigami2
+ qtmultimedia
+ qtquickcontrols2
+ qtwebsockets
+ ];
+
+ meta = with lib; {
+ description = "A simple media player for KDE";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ broken = lib.versionOlder qtbase.version "5.14";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/eventviews.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/eventviews.nix
new file mode 100644
index 000000000000..495491f6d3c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/eventviews.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, calendarsupport, kcalutils,
+ kdiagram, libkdepim, qtbase, qttools, kholidays
+}:
+
+mkDerivation {
+ name = "eventviews";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi calendarsupport kcalutils kdiagram
+ libkdepim qtbase qttools kholidays
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/fetch.sh b/infra/libkookie/nixpkgs/pkgs/applications/kde/fetch.sh
new file mode 100644
index 000000000000..dc023c57a7e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/fetch.sh
@@ -0,0 +1 @@
+WGET_ARGS=(http://download.kde.org/stable/release-service/20.08.2/src)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ffmpeg-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/kde/ffmpeg-path.patch
new file mode 100644
index 000000000000..a0cef882f596
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ffmpeg-path.patch
@@ -0,0 +1,25 @@
+diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg
+index 5edad5ae7..d35347a40 100644
+--- a/src/kdenlivesettings.kcfg
++++ b/src/kdenlivesettings.kcfg
+@@ -403,17 +403,17 @@
+
+ <entry name="ffmpegpath" type="Path">
+ <label>FFmpeg / Libav binary path.</label>
+- <default></default>
++ <default>@ffmpeg@/bin/ffmpeg</default>
+ </entry>
+
+ <entry name="ffplaypath" type="Path">
+ <label>FFplay / avplay binary path.</label>
+- <default></default>
++ <default>@ffmpeg@/bin/ffplay</default>
+ </entry>
+
+ <entry name="ffprobepath" type="Path">
+ <label>FFprobe / avprobe binary path.</label>
+- <default></default>
++ <default>@ffmpeg@/bin/ffprobe</default>
+ </entry>
+
+ <entry name="mltthreads" type="Int">
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix
new file mode 100644
index 000000000000..225efba3768a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix
@@ -0,0 +1,15 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules,
+ ffmpeg_3, kio
+}:
+
+mkDerivation {
+ name = "ffmpegthumbs";
+ meta = {
+ license = with lib.licenses; [ gpl2 bsd3 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ ffmpeg_3 kio ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/filelight.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/filelight.nix
new file mode 100644
index 000000000000..a3be5be7f0a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/filelight.nix
@@ -0,0 +1,18 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kio, kparts, kxmlgui, qtscript, solid
+}:
+
+mkDerivation {
+ name = "filelight";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ fridh vcunat ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [
+ kio kparts kxmlgui qtscript solid
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/granatier.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/granatier.nix
new file mode 100644
index 000000000000..c02fa0fef2e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/granatier.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+ name = "granatier";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.granatier";
+ description = "Clone of the classic Bomberman game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdeclarative
+ knewstuff
+ libkdegames
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix
new file mode 100644
index 000000000000..6204919a3285
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix
@@ -0,0 +1,19 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ grantlee, ki18n, kiconthemes, knewstuff, kservice, kxmlgui, qtbase,
+}:
+
+mkDerivation {
+ name = "grantleetheme";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ output = [ "out" "dev" ];
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ grantlee ki18n kiconthemes knewstuff kservice kxmlgui qtbase
+ ];
+ propagatedBuildInputs = [ grantlee kiconthemes knewstuff ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/gwenview.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/gwenview.nix
new file mode 100644
index 000000000000..3d03d1dea3e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/gwenview.nix
@@ -0,0 +1,21 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ exiv2, lcms2,
+ baloo, kactivities, kdelibs4support, kio, kipi-plugins, libkdcraw, libkipi,
+ phonon, qtimageformats, qtsvg, qtx11extras, kinit
+}:
+
+mkDerivation {
+ name = "gwenview";
+ meta = {
+ license = with lib.licenses; [ gpl2 fdl12 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ baloo exiv2 kactivities kdelibs4support kio libkdcraw lcms2 libkipi phonon
+ qtimageformats qtsvg qtx11extras
+ ];
+ propagatedUserEnvPkgs = [ kipi-plugins libkipi (lib.getBin kinit) ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/incidenceeditor.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/incidenceeditor.nix
new file mode 100644
index 000000000000..30955d1c2743
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/incidenceeditor.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-mime, calendarsupport, eventviews, kdepim-apps-libs,
+ kdiagram, kldap, kmime, pimcommon, qtbase
+}:
+
+mkDerivation {
+ name = "incidenceeditor";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-mime calendarsupport eventviews kdepim-apps-libs kdiagram
+ kldap kmime pimcommon qtbase
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/k3b.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/k3b.nix
new file mode 100644
index 000000000000..35d55787ec78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/k3b.nix
@@ -0,0 +1,45 @@
+{ mkDerivation, lib
+, extra-cmake-modules, kdoctools, makeWrapper, shared-mime-info
+, libkcddb, karchive, kcmutils, kfilemetadata, knewstuff, knotifyconfig, solid, kxmlgui
+, flac, lame, libmad, libmpcdec, libvorbis
+, libsamplerate, libsndfile, taglib
+, cdparanoia, cdrdao, cdrtools, dvdplusrwtools, libburn, libdvdcss, libdvdread, vcdimager
+, ffmpeg_3, libmusicbrainz3, normalize, sox, transcode, kinit
+}:
+
+mkDerivation {
+ name = "k3b";
+ meta = with lib; {
+ license = with licenses; [ gpl2Plus ];
+ maintainers = with maintainers; [ sander phreedom ];
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+ buildInputs = [
+ # kde
+ libkcddb karchive kcmutils kfilemetadata knewstuff knotifyconfig solid kxmlgui
+ # formats
+ flac lame libmad libmpcdec libvorbis
+ # sound utilities
+ libsamplerate libsndfile taglib
+ # cd/dvd
+ cdparanoia libdvdcss libdvdread
+ # others
+ ffmpeg_3 libmusicbrainz3 shared-mime-info
+ ];
+ propagatedUserEnvPkgs = [ (lib.getBin kinit) ];
+ postFixup =
+ let
+ binPath = lib.makeBinPath [
+ cdrdao cdrtools dvdplusrwtools libburn normalize sox transcode
+ vcdimager flac
+ ];
+ libraryPath = lib.makeLibraryPath [
+ cdparanoia
+ ];
+ in ''
+ wrapProgram "$out/bin/k3b" \
+ --prefix PATH : "${binPath}" \
+ --prefix LD_LIBRARY_PATH : ${libraryPath}
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kaddressbook.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kaddressbook.nix
new file mode 100644
index 000000000000..b4b0450e78bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kaddressbook.nix
@@ -0,0 +1,22 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-search, grantlee, grantleetheme, kcmutils, kcompletion,
+ kcrash, kdbusaddons, kdepim-apps-libs, ki18n, kontactinterface, kparts,
+ kpimtextedit, kxmlgui, libkdepim, libkleo, mailcommon, pimcommon, prison,
+ qgpgme, qtbase,
+}:
+
+mkDerivation {
+ name = "kaddressbook";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-search grantlee grantleetheme kcmutils kcompletion kcrash
+ kdbusaddons kdepim-apps-libs ki18n kontactinterface kparts kpimtextedit
+ kxmlgui libkdepim libkleo mailcommon pimcommon prison qgpgme qtbase
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kalarm.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kalarm.nix
new file mode 100644
index 000000000000..a1dec1179cc6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kalarm.nix
@@ -0,0 +1,37 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules,
+
+ kauth, kcodecs, kcompletion, kconfig, kconfigwidgets, kdbusaddons, kdoctools,
+ kguiaddons, ki18n, kiconthemes, kjobwidgets, kcmutils, kdelibs4support, kio,
+ knotifications, kservice, kwidgetsaddons, kwindowsystem, kxmlgui, phonon,
+
+ kimap, akonadi, akonadi-contacts, akonadi-mime, kalarmcal, kcalendarcore, kcalutils,
+ kholidays, kidentitymanagement, libkdepim, mailcommon, kmailtransport, kmime,
+ pimcommon, kpimtextedit, kdepim-apps-libs, messagelib,
+
+ qtx11extras,
+
+ kdepim-runtime
+}:
+
+mkDerivation {
+ name = "kalarm";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = [ lib.maintainers.rittelle ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kauth kcodecs kcompletion kconfig kconfigwidgets kdbusaddons kdoctools
+ kguiaddons ki18n kiconthemes kjobwidgets kcmutils kdelibs4support kio
+ knotifications kservice kwidgetsaddons kwindowsystem kxmlgui phonon
+
+ kimap akonadi akonadi-contacts akonadi-mime kalarmcal kcalendarcore kcalutils
+ kholidays kidentitymanagement libkdepim mailcommon kmailtransport kmime
+ pimcommon kpimtextedit kdepim-apps-libs messagelib
+
+ qtx11extras
+ ];
+ propagatedUserEnvPkgs = [ kdepim-runtime ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kalarmcal.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kalarmcal.nix
new file mode 100644
index 000000000000..356c1e4812d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kalarmcal.nix
@@ -0,0 +1,19 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, kcalendarcore, kdelibs4support, kholidays, kidentitymanagement,
+ kpimtextedit, kcalutils
+}:
+
+mkDerivation {
+ name = "kalarmcal";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [
+ akonadi kcalendarcore kdelibs4support kholidays kidentitymanagement kpimtextedit kcalutils
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kalzium.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kalzium.nix
new file mode 100644
index 000000000000..cf579caa9cc8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kalzium.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, openbabel, avogadro, qtscript, kparts, kplotting, kunitconversion }:
+
+mkDerivation {
+ name = "kalzium";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/utilities/org.kde.kalzium";
+ description = "Program that shows you the Periodic Table of Elements";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ qtscript
+ #avogadro
+ kdoctools
+ ki18n
+ kio
+ openbabel
+ kparts
+ kplotting
+ kunitconversion
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kapman.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kapman.nix
new file mode 100644
index 000000000000..5f4cc40138c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kapman.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+ name = "kapman";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kapman";
+ description = "Clone of the well known game Pac-Man";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kapptemplate.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kapptemplate.nix
new file mode 100644
index 000000000000..a5e211318a26
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kapptemplate.nix
@@ -0,0 +1,24 @@
+{ lib
+, mkDerivation
+, fetchurl
+, cmake
+, extra-cmake-modules
+, qtbase
+, kactivities
+}:
+mkDerivation {
+
+ name = "kapptemplate";
+
+ nativeBuildInputs = [ extra-cmake-modules cmake ];
+
+ buildInputs = [ kactivities qtbase ];
+
+ meta = with lib; {
+ description = "KDE App Code Template Generator";
+ license = licenses.gpl2;
+ homepage = "https://kde.org/applications/en/development/org.kde.kapptemplate";
+ maintainers = [ maintainers.shamilton ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kate.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kate.nix
new file mode 100644
index 000000000000..e0d0273efde1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kate.nix
@@ -0,0 +1,36 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kactivities, kconfig, kcrash, kdbusaddons, kguiaddons, kiconthemes, ki18n,
+ kinit, kio, kitemmodels, kjobwidgets, knewstuff, knotifications, konsole,
+ kparts, ktexteditor, kwindowsystem, kwallet, kxmlgui, libgit2,
+ plasma-framework, qtscript, threadweaver
+}:
+
+mkDerivation {
+ name = "kate";
+ meta = {
+ license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+
+ # InitialPreference values are too high and end up making kate &
+ # kwrite defaults for anything considered text/plain. Resetting to
+ # 1, which is the default.
+ postPatch = ''
+ substituteInPlace kate/data/org.kde.kate.desktop \
+ --replace InitialPreference=9 InitialPreference=1
+ substituteInPlace kwrite/data/org.kde.kwrite.desktop \
+ --replace InitialPreference=8 InitialPreference=1
+ '';
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ libgit2
+ kactivities ki18n kio ktexteditor kwindowsystem plasma-framework
+ qtscript kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts
+ kxmlgui kdbusaddons kwallet kitemmodels knotifications threadweaver
+ knewstuff
+ ];
+ propagatedUserEnvPkgs = [ konsole ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/katomic.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/katomic.nix
new file mode 100644
index 000000000000..2690cfc05897
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/katomic.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, knewstuff }:
+
+mkDerivation {
+ name = "katomic";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.katomic";
+ description = "Fun educational game built around molecular geometry";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ knewstuff
+ libkdegames
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kblackbox.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kblackbox.nix
new file mode 100644
index 000000000000..ce0d8e36b91b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kblackbox.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+ name = "kblackbox";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kblackbox";
+ description = "Game of hide and seek played on a grid of boxes";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kblocks.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kblocks.nix
new file mode 100644
index 000000000000..a11a6e257440
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kblocks.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+ name = "kblocks";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kblocks";
+ description = "Classic falling blocks game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kbounce.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kbounce.nix
new file mode 100644
index 000000000000..b67e3ce02173
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kbounce.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, libkdegames, kconfig, kcrash, kio, ki18n }:
+
+mkDerivation {
+ name = "kbounce";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kbounce";
+ description = "Single player arcade game with the elements of puzzle";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kconfig
+ kcrash
+ kio
+ ki18n
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kbreakout.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kbreakout.nix
new file mode 100644
index 000000000000..fbcddd46ca85
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kbreakout.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib
+, extra-cmake-modules
+, cmake
+, kdbusaddons
+, ki18n
+, kconfigwidgets
+, kcrash
+, kxmlgui
+, libkdegames
+}:
+
+mkDerivation {
+ name = "kbreakout";
+ meta.license = with lib.licenses; [ lgpl21 gpl3 ];
+ outputs = [ "out" "dev" ];
+ nativeBuildInputs = [
+ cmake extra-cmake-modules
+ ];
+ propagatedBuildInputs = [
+ kdbusaddons ki18n kconfigwidgets kcrash kxmlgui libkdegames
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kcachegrind.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcachegrind.nix
new file mode 100644
index 000000000000..16fc6c517774
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcachegrind.nix
@@ -0,0 +1,16 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ karchive, ki18n, kio, perl, python, php, qttools
+ , kdbusaddons
+}:
+
+mkDerivation {
+ name = "kcachegrind";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ orivej ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ karchive ki18n kio perl python php qttools kdbusaddons ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kcalc.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcalc.nix
new file mode 100644
index 000000000000..4e2a308b17f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcalc.nix
@@ -0,0 +1,19 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ gmp, kconfig, kconfigwidgets, kcrash, kguiaddons, ki18n, kinit,
+ knotifications, kxmlgui, mpfr,
+}:
+
+mkDerivation {
+ name = "kcalc";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = [ lib.maintainers.fridh ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ gmp kconfig kconfigwidgets kcrash kguiaddons ki18n kinit knotifications
+ kxmlgui mpfr
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kcalutils.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcalutils.nix
new file mode 100644
index 000000000000..2e389ec4ac7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcalutils.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ grantlee, kcalendarcore, kconfig, kontactinterface, kcoreaddons, kdelibs4support,
+ kidentitymanagement, kpimtextedit,
+}:
+
+mkDerivation {
+ name = "kcalutils";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ grantlee kcalendarcore kconfig kontactinterface kcoreaddons kdelibs4support
+ kidentitymanagement kpimtextedit
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kcharselect.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcharselect.nix
new file mode 100644
index 000000000000..4af712b1d5a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcharselect.nix
@@ -0,0 +1,19 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kbookmarks, kconfig, kconfigwidgets, kcrash, kcoreaddons, ki18n, kwidgetsaddons, kxmlgui
+}:
+
+mkDerivation {
+ name = "kcharselect";
+ meta = {
+ license = lib.licenses.gpl2Plus;
+ maintainers = [ lib.maintainers.schmittlauch ];
+ description = "A tool to select special characters from all installed fonts and copy them into the clipboard";
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kbookmarks kconfig kconfigwidgets kcoreaddons kcrash ki18n kwidgetsaddons kxmlgui
+ ];
+ enableParallelBuilding = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kcolorchooser.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcolorchooser.nix
new file mode 100644
index 000000000000..45b32fbe832c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kcolorchooser.nix
@@ -0,0 +1,15 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules,
+ ki18n, kwidgetsaddons, kxmlgui
+}:
+
+mkDerivation {
+ name = "kcolorchooser";
+ meta = {
+ license = with lib.licenses; [ mit ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ ki18n kwidgetsaddons kxmlgui ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdebugsettings.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
new file mode 100644
index 000000000000..a58e1b25a2ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ gettext,
+ kcoreaddons, kconfig, kdbusaddons, kwidgetsaddons, kitemviews, kcompletion,
+ python
+}:
+
+mkDerivation {
+ name = "kdebugsettings";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = [ lib.maintainers.rittelle ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ gettext kcoreaddons kconfig kdbusaddons kwidgetsaddons kitemviews kcompletion python
+ ];
+ propagatedUserEnvPkgs = [ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdeconnect-kde.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdeconnect-kde.nix
new file mode 100644
index 000000000000..83e54d1fa80c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdeconnect-kde.nix
@@ -0,0 +1,72 @@
+{ mkDerivation
+, extra-cmake-modules
+, fetchpatch
+, kcmutils
+, kconfigwidgets
+, kdbusaddons
+, kdoctools
+, ki18n
+, kiconthemes
+, kio
+, kirigami2
+, knotifications
+, kpeople
+, kpeoplevcard
+, kwayland
+, lib
+, libXtst
+, libfakekey
+, makeWrapper
+, pulseaudio-qt
+, qca-qt5
+, qtgraphicaleffects
+, qtmultimedia
+, qtx11extras
+, sshfs
+}:
+
+mkDerivation {
+ name = "kdeconnect-kde";
+
+ patches = [
+ # https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/328
+ (fetchpatch {
+ url = "https://invent.kde.org/network/kdeconnect-kde/-/commit/6101ef3ad07d865958d58a3d2736f5536f1c5719.diff";
+ sha256 = "17mr7k13226vzcgxlmfs6q2mdc5j7vwp4iri9apmh6xlf6r591ac";
+ })
+ ];
+
+ buildInputs = [
+ kcmutils
+ kconfigwidgets
+ kdbusaddons
+ ki18n
+ kiconthemes
+ kio
+ kirigami2
+ knotifications
+ kpeople
+ kpeoplevcard
+ kwayland
+ libXtst
+ libfakekey
+ pulseaudio-qt
+ qca-qt5
+ qtgraphicaleffects
+ qtmultimedia
+ qtx11extras
+ ];
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+
+ qtWrapperArgs = [
+ "--prefix PATH : ${lib.makeBinPath [ sshfs ]}"
+ ];
+
+ meta = with lib; {
+ description = "KDE Connect provides several features to integrate your phone and your computer";
+ homepage = "https://community.kde.org/KDEConnect";
+ license = with licenses; [ gpl2 ];
+ maintainers = with maintainers; [ fridh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdegraphics-mobipocket.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdegraphics-mobipocket.nix
new file mode 100644
index 000000000000..e5f5b88ec440
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdegraphics-mobipocket.nix
@@ -0,0 +1,16 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules,
+ kio
+}:
+
+mkDerivation {
+ name = "kdegraphics-mobipocket";
+ meta = {
+ license = [ lib.licenses.gpl2Plus ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kio ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix
new file mode 100644
index 000000000000..2e7887582f95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix
@@ -0,0 +1,14 @@
+{
+ mkDerivation, lib, fetchpatch,
+ extra-cmake-modules, karchive, kio, libkexiv2, libkdcraw
+}:
+
+mkDerivation {
+ name = "kdegraphics-thumbnailers";
+ meta = {
+ license = [ lib.licenses.lgpl21 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ karchive kio libkexiv2 libkdcraw ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix
new file mode 100644
index 000000000000..d251eb74f274
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix
@@ -0,0 +1,15 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kcoreaddons, ki18n, kio, kwidgetsaddons, samba
+}:
+
+mkDerivation {
+ name = "kdenetwork-filesharing";
+ meta = {
+ license = [ lib.licenses.gpl2 lib.licenses.lgpl21 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kcoreaddons ki18n kio kwidgetsaddons samba ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdenlive.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdenlive.nix
new file mode 100644
index 000000000000..b2abee579396
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdenlive.nix
@@ -0,0 +1,104 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, breeze-icons
+, breeze-qt5
+, kdoctools
+, kconfig
+, kcrash
+, kguiaddons
+, kiconthemes
+, ki18n
+, kinit
+, kdbusaddons
+, knotifications
+, knewstuff
+, karchive
+, knotifyconfig
+, kplotting
+, ktextwidgets
+, mlt
+, shared-mime-info
+, libv4l
+, kfilemetadata
+, ffmpeg-full
+, frei0r
+, phonon-backend-gstreamer
+, qtdeclarative
+, qtmultimedia
+, qtquickcontrols2
+, qtscript
+, rttr
+, kpurpose
+, kdeclarative
+, wrapGAppsHook
+}:
+
+mkDerivation {
+ name = "kdenlive";
+ nativeBuildInputs = [
+ extra-cmake-modules
+ kdoctools
+ ];
+ buildInputs = [
+ breeze-icons
+ breeze-qt5
+ kconfig
+ kcrash
+ kdbusaddons
+ kfilemetadata
+ kguiaddons
+ ki18n
+ kiconthemes
+ kinit
+ knotifications
+ knewstuff
+ karchive
+ knotifyconfig
+ kplotting
+ ktextwidgets
+ mlt
+ phonon-backend-gstreamer
+ qtdeclarative
+ qtmultimedia
+ qtquickcontrols2
+ qtscript
+ shared-mime-info
+ libv4l
+ ffmpeg-full
+ frei0r
+ rttr
+ kpurpose
+ kdeclarative
+ wrapGAppsHook
+ ];
+ # Both MLT and FFMpeg paths must be set or Kdenlive will complain that it
+ # doesn't find them. See:
+ # https://github.com/NixOS/nixpkgs/issues/83885
+ patches = [ ./mlt-path.patch ./ffmpeg-path.patch ];
+ inherit mlt;
+ ffmpeg = ffmpeg-full;
+ postPatch =
+ # Module Qt5::Concurrent must be included in `find_package` before it is used.
+ ''
+ sed -i CMakeLists.txt -e '/find_package(Qt5 REQUIRED/ s|)| Concurrent)|'
+ substituteAllInPlace src/kdenlivesettings.kcfg
+ '';
+
+ dontWrapGApps = true;
+
+ # Frei0r path needs to be set too or Kdenlive will complain. See:
+ # https://github.com/NixOS/nixpkgs/issues/83885
+ # https://github.com/NixOS/nixpkgs/issues/29614#issuecomment-488849325
+ qtWrapperArgs = [
+ "--set FREI0R_PATH ${frei0r}/lib/frei0r-1"
+ ];
+
+ preFixup = ''
+ qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ meta = {
+ license = with lib.licenses; [ gpl2Plus ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-addons.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-addons.nix
new file mode 100644
index 000000000000..e47aae89e603
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-addons.nix
@@ -0,0 +1,25 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, shared-mime-info,
+ akonadi-import-wizard, akonadi-notes, calendarsupport, eventviews,
+ incidenceeditor, kcalendarcore, kcalutils, kconfig, kdbusaddons, kdeclarative,
+ kdepim-apps-libs, kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
+ libksieve, mailcommon, mailimporter, messagelib, poppler, prison, kpkpass,
+ kitinerary, kontactinterface
+}:
+
+mkDerivation {
+ name = "kdepim-addons";
+ meta = {
+ license = with lib.licenses; [ gpl2Plus lgpl21Plus ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
+ buildInputs = [
+ akonadi-import-wizard akonadi-notes calendarsupport eventviews
+ incidenceeditor kcalendarcore kcalutils kconfig kdbusaddons kdeclarative
+ kdepim-apps-libs kholidays ki18n kmime ktexteditor ktnef libgravatar
+ libksieve mailcommon mailimporter messagelib poppler prison kpkpass
+ kitinerary kontactinterface
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix
new file mode 100644
index 000000000000..57c02ea4e84c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-contacts, grantlee, grantleetheme, kconfig, kconfigwidgets,
+ kcontacts, ki18n, kiconthemes, kio, libkleo, pimcommon, prison,
+}:
+
+mkDerivation {
+ name = "kdepim-apps-libs";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-contacts grantlee grantleetheme kconfig kconfigwidgets
+ kcontacts ki18n kiconthemes kio libkleo pimcommon prison
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix
new file mode 100644
index 000000000000..e0a5d43e654f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix
@@ -0,0 +1,24 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ shared-mime-info,
+ akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes,
+ kalarmcal, kcalutils, kcontacts, kdav, kdelibs4support, kidentitymanagement,
+ kimap, kldap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
+ pimcommon, qtwebengine, libkgapi, qca-qt5, qtnetworkauth, qtspeech, qtxmlpatterns,
+}:
+
+mkDerivation {
+ name = "kdepim-runtime";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools shared-mime-info ];
+ buildInputs = [
+ akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes
+ kalarmcal kcalutils kcontacts kdav kdelibs4support kidentitymanagement kimap
+ kldap kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine
+ pimcommon libkgapi qca-qt5 qtnetworkauth qtspeech qtxmlpatterns
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdf.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdf.nix
new file mode 100644
index 000000000000..eef94fd5eb24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdf.nix
@@ -0,0 +1,15 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kcmutils, ki18n, kiconthemes, kio, knotifications, kxmlgui,
+}:
+
+mkDerivation {
+ name = "kdf";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = [ lib.maintainers.peterhoeg ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kcmutils ki18n kiconthemes kio knotifications kxmlgui ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdialog.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdialog.nix
new file mode 100644
index 000000000000..df301af0cbac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdialog.nix
@@ -0,0 +1,18 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kinit, kguiaddons, kwindowsystem
+}:
+
+mkDerivation {
+ name = "kdialog";
+
+ meta = {
+ license = with lib.licenses; [ gpl2 fdl12 ];
+ maintainers = with lib.maintainers; [ peterhoeg ];
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+
+ propagatedBuildInputs = [ kinit kguiaddons kwindowsystem ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kdiamond.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdiamond.nix
new file mode 100644
index 000000000000..6c124f9450ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kdiamond.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, kconfig, knotifyconfig }:
+
+mkDerivation {
+ name = "kdiamond";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kdiamond";
+ description = "A single player puzzle game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ knotifyconfig
+ kconfig
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/keditbookmarks.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/keditbookmarks.nix
new file mode 100644
index 000000000000..efe247df7376
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/keditbookmarks.nix
@@ -0,0 +1,17 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kio, kparts, kwindowsystem
+}:
+
+mkDerivation {
+ name = "keditbookmarks";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kio kparts kwindowsystem ];
+ meta = with lib; {
+ homepage = "http://www.kde.org";
+ license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kfind.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kfind.nix
new file mode 100644
index 000000000000..10932b38032c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kfind.nix
@@ -0,0 +1,17 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ karchive, kcoreaddons, kfilemetadata, ktextwidgets, kwidgetsaddons, kio
+}:
+
+mkDerivation {
+ name = "kfind";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = [ lib.maintainers.iblech ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ karchive kcoreaddons kfilemetadata ktextwidgets kwidgetsaddons kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kfloppy.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kfloppy.nix
new file mode 100644
index 000000000000..a8747047f42f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kfloppy.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, kcompletion, kxmlgui }:
+
+mkDerivation {
+ name = "kfloppy";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/utilities/org.kde.kfloppy";
+ description = "Utility to format 3.5\" and 5.25\" floppy disks";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdoctools
+ kcompletion
+ kxmlgui
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kgeography.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kgeography.nix
new file mode 100644
index 000000000000..c96c198cca9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kgeography.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, lib
+, cmake, extra-cmake-modules, qtbase
+, kconfigwidgets, kxmlgui, kcrash, kdoctools
+, kitemviews
+}:
+
+mkDerivation {
+ name = "kgeography";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = [ lib.maintainers.globin ];
+ };
+ nativeBuildInputs = [ cmake extra-cmake-modules ];
+ buildInputs = [ qtbase kconfigwidgets kxmlgui kcrash kdoctools kitemviews ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kget.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kget.nix
new file mode 100644
index 000000000000..6a50f1d08d1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kget.nix
@@ -0,0 +1,22 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kdelibs4support, libgcrypt, libktorrent, qca-qt5, qgpgme,
+ kcmutils, kcompletion, kcoreaddons, knotifyconfig, kparts, kwallet, kwidgetsaddons, kwindowsystem, kxmlgui
+}:
+
+mkDerivation {
+ name = "kget";
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+
+ buildInputs = [
+ kdelibs4support libgcrypt libktorrent qca-qt5 qgpgme
+ kcmutils kcompletion kcoreaddons knotifyconfig kparts kwallet kwidgetsaddons kwindowsystem kxmlgui
+ ];
+
+ meta = with lib; {
+ license = with licenses; [ gpl2 ];
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kgpg.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kgpg.nix
new file mode 100644
index 000000000000..944cff47e0d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kgpg.nix
@@ -0,0 +1,24 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools, ki18n, makeWrapper,
+ akonadi-contacts, gnupg, karchive, kcodecs, kcontacts, kcoreaddons,
+ kcrash, kdbusaddons, kiconthemes, kjobwidgets, kio, knotifications, kservice,
+ ktextwidgets, kxmlgui, kwidgetsaddons, kwindowsystem, qgpgme,
+}:
+
+mkDerivation {
+ name = "kgpg";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+ buildInputs = [
+ akonadi-contacts gnupg karchive kcodecs kcontacts kcoreaddons kcrash
+ kdbusaddons ki18n kiconthemes kjobwidgets kio knotifications kservice
+ ktextwidgets kxmlgui kwidgetsaddons kwindowsystem qgpgme
+ ];
+ postFixup = ''
+ wrapProgram "$out/bin/kgpg" --prefix PATH : "${lib.makeBinPath [ gnupg ]}"
+ '';
+ meta = {
+ license = [ lib.licenses.gpl2 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/khelpcenter.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/khelpcenter.nix
new file mode 100644
index 000000000000..69b629bbeb90
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/khelpcenter.nix
@@ -0,0 +1,15 @@
+{
+ mkDerivation,
+ extra-cmake-modules, kdoctools,
+ grantlee, kcmutils, kconfig, kcoreaddons, kdbusaddons, kdelibs4support, ki18n,
+ kinit, khtml, kservice, xapian
+}:
+
+mkDerivation {
+ name = "khelpcenter";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ grantlee kcmutils kconfig kcoreaddons kdbusaddons kdelibs4support khtml
+ ki18n kinit kservice xapian
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kidentitymanagement.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kidentitymanagement.nix
new file mode 100644
index 000000000000..92fcc2387797
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kidentitymanagement.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ kcompletion, kcoreaddons, kemoticons, kiconthemes, kio, kpimtextedit,
+ ktextwidgets, kxmlgui
+}:
+
+mkDerivation {
+ name = "kidentitymanagement";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kcompletion kemoticons kiconthemes kio ktextwidgets kxmlgui
+ ];
+ propagatedBuildInputs = [ kcoreaddons kpimtextedit ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kig.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kig.nix
new file mode 100644
index 000000000000..7b8589077952
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kig.nix
@@ -0,0 +1,19 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ boost, karchive, kcrash, kiconthemes, kparts, ktexteditor, qtsvg,
+ qtxmlpatterns,
+}:
+
+mkDerivation {
+ name = "kig";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ raskin ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ boost karchive kcrash kiconthemes kparts ktexteditor qtsvg qtxmlpatterns
+ ];
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kigo.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kigo.nix
new file mode 100644
index 000000000000..6585f943f2a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kigo.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, knewstuff }:
+
+mkDerivation {
+ name = "kigo";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kigo";
+ description = "An open-source implementation of the popular Go game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ knewstuff
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/killbots.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/killbots.nix
new file mode 100644
index 000000000000..ec9b6de82c90
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/killbots.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+ name = "killbots";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.killbots";
+ description = "A game where you avoid robots";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kimap.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kimap.nix
new file mode 100644
index 000000000000..9e42c5710583
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kimap.nix
@@ -0,0 +1,17 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ cyrus_sasl, kcoreaddons, ki18n, kio, kmime
+}:
+
+mkDerivation {
+ name = "kimap";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ ki18n kio ];
+ propagatedBuildInputs = [ cyrus_sasl kcoreaddons kmime ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kio-extras.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kio-extras.nix
new file mode 100644
index 000000000000..a803ba72982d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kio-extras.nix
@@ -0,0 +1,23 @@
+{
+ mkDerivation, lib, extra-cmake-modules, kdoctools, shared-mime-info,
+ exiv2, kactivities, karchive, kbookmarks, kconfig, kconfigwidgets,
+ kcoreaddons, kdbusaddons, kdsoap, kguiaddons, kdnssd, kiconthemes, ki18n, kio,
+ khtml, kdelibs4support, kpty, syntax-highlighting, libmtp, libssh, openexr,
+ ilmbase, openslp, phonon, qtsvg, samba, solid, gperf
+}:
+
+mkDerivation {
+ name = "kio-extras";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools shared-mime-info ];
+ buildInputs = [
+ exiv2 kactivities karchive kbookmarks kconfig kconfigwidgets kcoreaddons
+ kdbusaddons kdsoap kguiaddons kdnssd kiconthemes ki18n kio khtml
+ kdelibs4support kpty syntax-highlighting libmtp libssh openexr openslp
+ phonon qtsvg samba solid gperf
+ ];
+ CXXFLAGS = [ "-I${ilmbase.dev}/include/OpenEXR" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kipi-plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kipi-plugins.nix
new file mode 100644
index 000000000000..180d066a87cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kipi-plugins.nix
@@ -0,0 +1,23 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules,
+ karchive, kconfig, ki18n, kiconthemes, kio, kservice, kwindowsystem, kxmlgui,
+ libkipi, qtbase, qtsvg, qtxmlpatterns
+}:
+
+mkDerivation {
+ name = "kipi-plugins";
+
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ karchive kconfig ki18n kiconthemes kio kservice kwindowsystem kxmlgui libkipi
+ qtbase qtsvg qtxmlpatterns
+ ];
+
+ meta = {
+ description = "Plugins for KDE-based image applications";
+ license = lib.licenses.gpl2;
+ homepage = "https://cgit.kde.org/kipi-plugins.git";
+ maintainers = with lib.maintainers; [ ttuegel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kitinerary.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kitinerary.nix
new file mode 100644
index 000000000000..303ea6162ba4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kitinerary.nix
@@ -0,0 +1,23 @@
+{
+ mkDerivation, lib, extra-cmake-modules
+, qtbase, qtdeclarative, ki18n, kmime, kpkpass
+, poppler, kcontacts, kcalendarcore
+, shared-mime-info
+}:
+
+mkDerivation {
+ name = "kitinerary";
+ meta = {
+ license = with lib.licenses; [ lgpl21 ];
+ maintainers = [ lib.maintainers.bkchr ];
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ shared-mime-info # for update-mime-database
+ ];
+ buildInputs = [
+ qtbase qtdeclarative ki18n kmime kpkpass poppler
+ kcontacts kcalendarcore
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kldap.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kldap.nix
new file mode 100644
index 000000000000..14a8aea5e67a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kldap.nix
@@ -0,0 +1,17 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ cyrus_sasl, ki18n, kio, kmbox, openldap
+}:
+
+mkDerivation {
+ name = "kldap";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ ki18n kio kmbox ];
+ propagatedBuildInputs = [ cyrus_sasl openldap ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kleopatra.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kleopatra.nix
new file mode 100644
index 000000000000..c15c6eb78d69
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kleopatra.nix
@@ -0,0 +1,19 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ boost, gpgme, kcmutils, kdbusaddons, kiconthemes, kitemmodels, kmime,
+ knotifications, kwindowsystem, kxmlgui, libkleo, kcrash
+}:
+
+mkDerivation {
+ name = "kleopatra";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ boost gpgme kcmutils kdbusaddons kiconthemes kitemmodels kmime
+ knotifications kwindowsystem kxmlgui libkleo kcrash
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/klettres.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/klettres.nix
new file mode 100644
index 000000000000..aaddceb7bd6d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/klettres.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, phonon, knewstuff }:
+
+mkDerivation {
+ name = "klettres";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/utilities/org.kde.klettres";
+ description = "An application specially designed to help the user to learn an alphabet";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ phonon
+ knewstuff
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/klines.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/klines.nix
new file mode 100644
index 000000000000..7fadf409bd3d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/klines.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+ name = "klines";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.klines";
+ description = "A simple but highly addictive one player game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmag.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmag.nix
new file mode 100644
index 000000000000..fdac690cf22f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmag.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio }:
+
+mkDerivation {
+ name = "kmag";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/utilities/org.kde.kmag";
+ description = "A small Linux utility to magnify a part of the screen";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmahjongg.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmahjongg.nix
new file mode 100644
index 000000000000..93588b241e11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmahjongg.nix
@@ -0,0 +1,19 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, kdoctools
+, kdeclarative
+, knewstuff
+, libkdegames
+, libkmahjongg
+}:
+
+mkDerivation {
+ name = "kmahjongg";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kdeclarative libkmahjongg knewstuff libkdegames ];
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmail-account-wizard.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmail-account-wizard.nix
new file mode 100644
index 000000000000..f380315cce90
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmail-account-wizard.nix
@@ -0,0 +1,21 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools, shared-mime-info,
+ akonadi, kcmutils, kcrash, kdbusaddons, kidentitymanagement, kldap,
+ kmailtransport, knewstuff, knotifications, knotifyconfig, kparts, kross, ktexteditor,
+ kwallet, libkdepim, libkleo, pimcommon, qttools,
+}:
+
+mkDerivation {
+ name = "kmail-account-wizard";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools shared-mime-info ];
+ buildInputs = [
+ akonadi kcmutils kcrash kdbusaddons kidentitymanagement kldap kmailtransport
+ knewstuff knotifications knotifyconfig kparts kross ktexteditor kwallet libkdepim
+ libkleo pimcommon qttools
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmail.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmail.nix
new file mode 100644
index 000000000000..d225eba82234
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmail.nix
@@ -0,0 +1,30 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi-search, kbookmarks, kcalutils, kcmutils, kcompletion, kconfig,
+ kconfigwidgets, kcoreaddons, kdelibs4support, kdepim-apps-libs, libkdepim,
+ kdepim-runtime, kguiaddons, ki18n, kiconthemes, kinit, kio, kldap,
+ kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
+ kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
+ kwidgetsaddons, kwindowsystem, kxmlgui, libgravatar, libksieve, mailcommon,
+ messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi, kdepim-addons
+}:
+
+mkDerivation {
+ name = "kmail";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi-search kbookmarks kcalutils kcmutils kcompletion kconfig
+ kconfigwidgets kcoreaddons kdelibs4support kdepim-apps-libs kguiaddons ki18n
+ kiconthemes kinit kio kldap kmail-account-wizard kmailtransport libkdepim
+ knotifications knotifyconfig kontactinterface kparts kpty kservice
+ ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
+ libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine
+ kdepim-addons
+ ];
+ propagatedUserEnvPkgs = [ kdepim-runtime kwallet akonadi ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmailtransport.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmailtransport.nix
new file mode 100644
index 000000000000..d5832db570cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmailtransport.nix
@@ -0,0 +1,19 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-mime, cyrus_sasl, kcmutils,
+ ki18n, kio, kmime, kwallet, ksmtp, libkgapi,
+ kcalendarcore, kcontacts
+}:
+
+mkDerivation {
+ name = "kmailtransport";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ akonadi kcmutils ki18n kio ksmtp libkgapi kcalendarcore kcontacts ];
+ propagatedBuildInputs = [ akonadi-mime cyrus_sasl kmime kwallet ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmbox.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmbox.nix
new file mode 100644
index 000000000000..c1348edf3f6f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmbox.nix
@@ -0,0 +1,16 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ kmime, qtbase, kcodecs
+}:
+
+mkDerivation {
+ name = "kmbox";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kmime qtbase kcodecs ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmime.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmime.nix
new file mode 100644
index 000000000000..4523a69fc1be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmime.nix
@@ -0,0 +1,16 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, ki18n,
+ kcodecs, qtbase,
+}:
+
+mkDerivation {
+ name = "kmime";
+ meta = {
+ license = [ lib.licenses.lgpl21 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kcodecs ki18n qtbase ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmines.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmines.nix
new file mode 100644
index 000000000000..edf3114244b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmines.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, libkdegames, kconfig, kcrash, kdoctools, ki18n, kio }:
+
+mkDerivation {
+ name = "kmines";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kmines";
+ description = "A classic Minesweeper game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kconfig
+ kcrash
+ kio
+ kdoctools
+ ki18n
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmix.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmix.nix
new file mode 100644
index 000000000000..8010c57d9278
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmix.nix
@@ -0,0 +1,20 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kglobalaccel, kxmlgui, kcoreaddons, kdelibs4support,
+ plasma-framework, libpulseaudio, alsaLib, libcanberra_kde
+}:
+
+mkDerivation {
+ name = "kmix";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = [ lib.maintainers.rongcuid ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ alsaLib kglobalaccel kxmlgui kcoreaddons kdelibs4support
+ libcanberra_kde libpulseaudio plasma-framework
+ ];
+ cmakeFlags = [ "-DKMIX_KF5_BUILD=1" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kmplot.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmplot.nix
new file mode 100644
index 000000000000..c0c00f213400
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kmplot.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools
+, kcrash, kguiaddons, ki18n, kparts, kwidgetsaddons, kdbusaddons
+}:
+
+mkDerivation {
+ name = "kmplot";
+ meta = {
+ license = with lib.licenses; [ gpl2Plus fdl12 ];
+ maintainers = [ lib.maintainers.orivej ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kcrash kguiaddons ki18n kparts kwidgetsaddons kdbusaddons
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/knavalbattle.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/knavalbattle.nix
new file mode 100644
index 000000000000..669f9961a497
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/knavalbattle.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, kdnssd }:
+
+mkDerivation {
+ name = "knavalbattle";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.knavalbattle";
+ description = "Naval Battle is a ship sinking game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kdoctools
+ ki18n
+ kio
+ kdnssd
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/knetwalk.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/knetwalk.nix
new file mode 100644
index 000000000000..f34bb84f0a06
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/knetwalk.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+ name = "knetwalk";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.knetwalk";
+ description = "A single player logic game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/knights.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/knights.nix
new file mode 100644
index 000000000000..8b71493ff186
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/knights.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, kplotting, plasma-framework, libkdegames }:
+
+mkDerivation {
+ name = "knights";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.knights";
+ description = "A chess game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ plasma-framework
+ kplotting
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/knotes.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/knotes.nix
new file mode 100644
index 000000000000..2dc2f48c1497
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/knotes.nix
@@ -0,0 +1,29 @@
+{
+ mkDerivation,
+ extra-cmake-modules, kdoctools,
+ kcompletion, kconfig, kconfigwidgets, kcoreaddons, kcrash,
+ kdbusaddons, kdnssd, kglobalaccel, kiconthemes, kitemmodels,
+ kitemviews, kcmutils, knewstuff, knotifications, knotifyconfig,
+ kparts, ktextwidgets, kwidgetsaddons, kwindowsystem,
+ kdelibs4support,
+ grantlee, grantleetheme, qtx11extras,
+ akonadi, akonadi-notes, akonadi-search, kcalutils,
+ kontactinterface, libkdepim, kmime, pimcommon, kpimtextedit,
+ kcalendarcore
+}:
+
+mkDerivation {
+ name = "knotes";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kcompletion kconfig kconfigwidgets kcoreaddons kcrash
+ kdbusaddons kdnssd kglobalaccel kiconthemes kitemmodels kitemviews
+ kcmutils knewstuff knotifications knotifyconfig kparts ktextwidgets
+ kwidgetsaddons kwindowsystem kdelibs4support
+ grantlee grantleetheme qtx11extras
+ akonadi akonadi-notes kcalutils kontactinterface
+ libkdepim kmime pimcommon kpimtextedit
+ akonadi-search
+ kcalendarcore
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kolf.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kolf.nix
new file mode 100644
index 000000000000..f9fa31b665b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kolf.nix
@@ -0,0 +1,16 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, kdoctools
+, libkdegames, kconfig, kio, ktextwidgets
+}:
+
+mkDerivation {
+ name = "kolf";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ libkdegames kio ktextwidgets ];
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kollision.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kollision.nix
new file mode 100644
index 000000000000..6cb9995459a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kollision.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+ name = "kollision";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kollision";
+ description = "A casual game";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kolourpaint.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kolourpaint.nix
new file mode 100644
index 000000000000..4501324a8717
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kolourpaint.nix
@@ -0,0 +1,17 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, kdoctools
+, kdelibs4support
+, libkexiv2
+}:
+
+mkDerivation {
+ name = "kolourpaint";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kdelibs4support libkexiv2 ];
+ meta = {
+ maintainers = [ lib.maintainers.fridh ];
+ license = with lib.licenses; [ gpl2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kompare.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kompare.nix
new file mode 100644
index 000000000000..bbaad3a02f83
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kompare.nix
@@ -0,0 +1,15 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kiconthemes, kparts, ktexteditor, kwidgetsaddons, libkomparediff2
+}:
+
+mkDerivation {
+ name = "kompare";
+ meta = { license = with lib.licenses; [ gpl2 ]; };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kiconthemes kparts ktexteditor kwidgetsaddons libkomparediff2
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/konqueror.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/konqueror.nix
new file mode 100644
index 000000000000..62ed3db063ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/konqueror.nix
@@ -0,0 +1,28 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules, kdoctools
+, kdelibs4support, kcmutils, khtml, kdesu
+, qtwebkit, qtwebengine, qtx11extras, qtscript, qtwayland
+}:
+
+mkDerivation {
+ name = "konqueror";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kdelibs4support kcmutils khtml kdesu
+ qtwebkit qtwebengine qtx11extras qtscript qtwayland
+ ];
+
+ # InitialPreference values are too high and any text/html ends up
+ # opening konqueror, even if firefox or chromium are also available.
+ # Resetting to 1, which is the default.
+ postPatch = ''
+ substituteInPlace kfmclient_html.desktop \
+ --replace InitialPreference=9 InitialPreference=1
+ '';
+
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/konquest.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/konquest.nix
new file mode 100644
index 000000000000..cfef018de6cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/konquest.nix
@@ -0,0 +1,18 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, kdoctools
+, kdelibs4support
+, libkdegames
+, qtquickcontrols
+}:
+
+mkDerivation {
+ name = "konquest";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kdelibs4support libkdegames qtquickcontrols ];
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ lheckemann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/konsole.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/konsole.nix
new file mode 100644
index 000000000000..ed26dc08bb6c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/konsole.nix
@@ -0,0 +1,24 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kguiaddons,
+ ki18n, kiconthemes, kinit, kdelibs4support, kio, knotifications,
+ knotifyconfig, kparts, kpty, kservice, ktextwidgets, kwidgetsaddons,
+ kwindowsystem, kxmlgui, qtscript, knewstuff
+}:
+
+mkDerivation {
+ name = "konsole";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = with lib.maintainers; [ ttuegel turion ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kbookmarks kcompletion kconfig kconfigwidgets kcoreaddons kdelibs4support
+ kguiaddons ki18n kiconthemes kinit kio knotifications knotifyconfig kparts kpty
+ kservice ktextwidgets kwidgetsaddons kwindowsystem kxmlgui qtscript knewstuff
+ ];
+
+ propagatedUserEnvPkgs = [ (lib.getBin kinit) ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kontact.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kontact.nix
new file mode 100644
index 000000000000..eb28458392ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kontact.nix
@@ -0,0 +1,23 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ qtwebengine,
+ kcmutils, kcrash, kdbusaddons, kparts, kwindowsystem,
+ akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit,
+ mailcommon, libkdepim, pimcommon
+}:
+
+mkDerivation {
+ name = "kontact";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ qtwebengine
+ kcmutils kcrash kdbusaddons kparts kwindowsystem
+ akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit
+ mailcommon libkdepim pimcommon
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kontactinterface.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kontactinterface.nix
new file mode 100644
index 000000000000..f2df628f3018
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kontactinterface.nix
@@ -0,0 +1,17 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ kiconthemes, kparts, kwindowsystem, kxmlgui
+}:
+
+mkDerivation {
+ name = "kontactinterface";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kiconthemes kparts kwindowsystem kxmlgui
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/korganizer.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/korganizer.nix
new file mode 100644
index 000000000000..2f37a1bac0fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/korganizer.nix
@@ -0,0 +1,29 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ qtbase, qttools,
+ phonon,
+ knewstuff,
+ akonadi-calendar, akonadi-contacts, akonadi-notes, akonadi-search,
+ calendarsupport, eventviews, incidenceeditor, kcalutils, kdepim-apps-libs,
+ kholidays, kidentitymanagement, kldap, kmailtransport, kontactinterface,
+ kpimtextedit, pimcommon,
+}:
+
+mkDerivation {
+ name = "korganizer";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [
+ qtbase qttools
+ phonon
+ knewstuff
+ akonadi-calendar akonadi-contacts akonadi-notes akonadi-search
+ calendarsupport eventviews incidenceeditor kcalutils kdepim-apps-libs
+ kholidays kidentitymanagement kldap kmailtransport kontactinterface
+ kpimtextedit pimcommon
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kpat.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kpat.nix
new file mode 100644
index 000000000000..9ee573532378
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kpat.nix
@@ -0,0 +1,25 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, knewstuff
+, shared-mime-info
+, libkdegames
+, freecell-solver
+}:
+
+mkDerivation {
+ name = "kpat";
+ nativeBuildInputs = [
+ extra-cmake-modules
+ shared-mime-info
+ ];
+ buildInputs = [
+ knewstuff
+ libkdegames
+ freecell-solver
+ ];
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = with lib.maintainers; [ rnhmjoj ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kpimtextedit.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kpimtextedit.nix
new file mode 100644
index 000000000000..4ede854d5460
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kpimtextedit.nix
@@ -0,0 +1,22 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ grantlee, kcodecs, kconfigwidgets, kemoticons, ki18n, kiconthemes, kio,
+ kdesignerplugin, ktextwidgets, sonnet, syntax-highlighting, qttools,
+ qtspeech
+}:
+
+mkDerivation {
+ name = "kpimtextedit";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ grantlee kcodecs kconfigwidgets kemoticons ki18n kiconthemes kio kdesignerplugin
+ sonnet syntax-highlighting qttools qtspeech
+ ];
+ propagatedBuildInputs = [ ktextwidgets ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kpkpass.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kpkpass.nix
new file mode 100644
index 000000000000..15dfe7f2e49e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kpkpass.nix
@@ -0,0 +1,16 @@
+{
+ mkDerivation, lib, extra-cmake-modules
+, qtbase, karchive, shared-mime-info
+}:
+
+mkDerivation {
+ name = "kpkpass";
+ meta = {
+ license = with lib.licenses; [ lgpl21 ];
+ maintainers = [ lib.maintainers.bkchr ];
+ broken = lib.versionOlder qtbase.version "5.13";
+ };
+ nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
+ buildInputs = [ qtbase karchive ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kqtquickcharts.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kqtquickcharts.nix
new file mode 100644
index 000000000000..2b3dc5313d9a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kqtquickcharts.nix
@@ -0,0 +1,15 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules,
+ qtbase, qtdeclarative,
+}:
+
+mkDerivation {
+ name = "kqtquickcharts";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ propagatedBuildInputs = [ qtbase qtdeclarative ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/krdc.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/krdc.nix
new file mode 100644
index 000000000000..2b0a1a5c5141
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/krdc.nix
@@ -0,0 +1,25 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools, makeWrapper,
+ kcmutils, kcompletion, kconfig, kdnssd, knotifyconfig, kwallet, kwidgetsaddons,
+ kwindowsystem, libvncserver, freerdp
+}:
+
+mkDerivation {
+ name = "krdc";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+ buildInputs = [
+ kcmutils kcompletion kconfig kdnssd knotifyconfig kwallet kwidgetsaddons
+ kwindowsystem freerdp libvncserver
+ ];
+ postFixup = ''
+ wrapProgram $out/bin/krdc \
+ --prefix PATH : ${lib.makeBinPath [ freerdp ]}
+ '';
+ meta = with lib; {
+ homepage = "http://www.kde.org";
+ license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kreversi.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kreversi.nix
new file mode 100644
index 000000000000..9f4be46738be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kreversi.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, lib, extra-cmake-modules, libkdegames, kdeclarative }:
+
+mkDerivation {
+ name = "kreversi";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kreversi";
+ description = "A simple one player strategy game played against the computer";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdeclarative
+ libkdegames
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/krfb.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/krfb.nix
new file mode 100644
index 000000000000..d2b96bf6100e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/krfb.nix
@@ -0,0 +1,16 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ kdelibs4support, kdnssd, libvncserver, libXtst, libXdamage, qtx11extras
+}:
+
+mkDerivation {
+ name = "krfb";
+ meta = {
+ license = with lib.licenses; [ gpl2 fdl12 ];
+ maintainers = with lib.maintainers; [ jerith666 ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ libvncserver libXtst libXdamage qtx11extras ];
+ propagatedBuildInputs = [ kdelibs4support kdnssd ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kruler.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kruler.nix
new file mode 100644
index 000000000000..2018245cfcb2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kruler.nix
@@ -0,0 +1,17 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ knotifications, kwindowsystem, kxmlgui, qtx11extras
+}:
+
+mkDerivation {
+ name = "kruler";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = [ lib.maintainers.vandenoever ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kwindowsystem knotifications kxmlgui qtx11extras
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kshisen.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kshisen.nix
new file mode 100644
index 000000000000..5be17bb8ee08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kshisen.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, libkmahjongg }:
+
+mkDerivation {
+ name = "kshisen";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.kshisen";
+ description = "A solitaire-like game played using the standard set of Mahjong tiles";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ libkdegames
+ libkmahjongg
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ksmtp/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksmtp/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch
new file mode 100644
index 000000000000..74e83761eb7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksmtp/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch
@@ -0,0 +1,25 @@
+From 749769232e7387ec8c8f2d3da845d8a6ae7d5977 Mon Sep 17 00:00:00 2001
+From: gnidorah <gnidorah@users.noreply.github.com>
+Date: Fri, 22 Dec 2017 19:32:47 +0300
+Subject: [PATCH] Use KDE_INSTALL_TARGETS_DEFAULT_ARGS when installing targets
+
+---
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 83c2bcb..5f6d47c 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -51,7 +51,7 @@ ecm_generate_headers(KSMTP_CamelCase_HEADERS
+ REQUIRED_HEADERS KSMTP_HEADERS
+ )
+
+-install(TARGETS KPimSMTP EXPORT KPimSMTPTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
++install(TARGETS KPimSMTP EXPORT KPimSMTPTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
+
+ install(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/ksmtp_export.h
+--
+2.15.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ksmtp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksmtp/default.nix
new file mode 100644
index 000000000000..6a5f51a17bfe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksmtp/default.nix
@@ -0,0 +1,17 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ kcoreaddons, kio, kmime, cyrus_sasl
+}:
+
+mkDerivation {
+ name = "ksmtp";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kcoreaddons kio kmime ];
+ propagatedBuildInputs = [ cyrus_sasl ];
+ patches = [ ./0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kspaceduel.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kspaceduel.nix
new file mode 100644
index 000000000000..b18a3e7cf8f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kspaceduel.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib
+, extra-cmake-modules
+, cmake
+, kdbusaddons
+, ki18n
+, kconfigwidgets
+, kcrash
+, kxmlgui
+, libkdegames
+}:
+
+mkDerivation {
+ name = "kspaceduel";
+ meta.license = with lib.licenses; [ lgpl21 gpl3 ];
+ outputs = [ "out" "dev" ];
+ nativeBuildInputs = [
+ cmake extra-cmake-modules
+ ];
+ propagatedBuildInputs = [
+ kdbusaddons ki18n kconfigwidgets kcrash kxmlgui libkdegames
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ksquares.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksquares.nix
new file mode 100644
index 000000000000..12d989befe19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksquares.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, libkdegames, kconfig, kcrash, kxmlgui }:
+
+mkDerivation {
+ name = "ksquares";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/games/org.kde.ksquares";
+ description = "A game of Dots and Boxes";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdoctools
+ libkdegames
+ kconfig
+ kcrash
+ kxmlgui
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ksudoku.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksudoku.nix
new file mode 100644
index 000000000000..678c21d5870e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksudoku.nix
@@ -0,0 +1,18 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, libGLU
+, kdoctools
+, kdeclarative
+, libkdegames
+}:
+
+mkDerivation {
+ name = "ksudoku";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ libGLU kdeclarative libkdegames ];
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ksystemlog.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksystemlog.nix
new file mode 100644
index 000000000000..bec92d55966d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ksystemlog.nix
@@ -0,0 +1,17 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, gettext, kdoctools,
+ karchive, kconfig, kio
+}:
+
+mkDerivation {
+ name = "ksystemlog";
+
+ nativeBuildInputs = [ extra-cmake-modules gettext kdoctools ];
+ propagatedBuildInputs = [ karchive kconfig kio ];
+
+ meta = with lib; {
+ license = with licenses; [ gpl2 ];
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kteatime.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kteatime.nix
new file mode 100644
index 000000000000..812a13aa118b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kteatime.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kconfig, kcrash, kiconthemes, knotifyconfig }:
+
+mkDerivation {
+ name = "kteatime";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/utilities/org.kde.kteatime";
+ description = "A handy timer for steeping tea";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdoctools
+ ki18n
+ kconfig
+ kcrash
+ kiconthemes
+ knotifyconfig
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ktimer.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/ktimer.nix
new file mode 100644
index 000000000000..bdb8f2c687b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ktimer.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio }:
+
+mkDerivation {
+ name = "ktimer";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/utilities/org.kde.ktimer";
+ description = "A little tool to execute programs after some time";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdoctools
+ ki18n
+ kio
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ktnef.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/ktnef.nix
new file mode 100644
index 000000000000..61f8672e47d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ktnef.nix
@@ -0,0 +1,18 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ kcalendarcore, kcalutils, kcontacts, kdelibs4support
+}:
+
+mkDerivation {
+ name = "ktnef";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [
+ kcalendarcore kcalutils kcontacts kdelibs4support
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/ktouch.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/ktouch.nix
new file mode 100644
index 000000000000..7e300ea7157e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/ktouch.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, lib
+, extra-cmake-modules, kdoctools
+, kconfig, kconfigwidgets, kcoreaddons, kdeclarative, ki18n
+, kitemviews, kcmutils, kio, knewstuff, ktexteditor, kwidgetsaddons
+, kwindowsystem, kxmlgui, qtscript, qtdeclarative, kqtquickcharts
+, qtx11extras, qtgraphicaleffects, qtxmlpatterns, qtquickcontrols2
+, xorg
+}:
+
+
+ mkDerivation {
+ name = "ktouch";
+ meta = {
+ license = lib.licenses.gpl2;
+ maintainers = [ lib.maintainers.schmittlauch ];
+ description = "A touch typing tutor from the KDE software collection";
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools qtdeclarative ];
+ buildInputs = [
+ kconfig kconfigwidgets kcoreaddons kdeclarative ki18n
+ kitemviews kcmutils kio knewstuff ktexteditor kwidgetsaddons
+ kwindowsystem kxmlgui qtscript qtdeclarative kqtquickcharts
+ qtx11extras qtgraphicaleffects qtxmlpatterns qtquickcontrols2
+ xorg.libxkbfile xorg.libxcb
+ ];
+
+ enableParallelBuilding = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kturtle.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kturtle.nix
new file mode 100644
index 000000000000..c495b16fef79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kturtle.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, knewstuff }:
+
+mkDerivation {
+ name = "kturtle";
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/utilities/org.kde.kturtle";
+ description = "An educational programming environment for learning how to program";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdoctools
+ ki18n
+ kio
+ knewstuff
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kwalletmanager.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kwalletmanager.nix
new file mode 100644
index 000000000000..e39e7e5157d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kwalletmanager.nix
@@ -0,0 +1,26 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, kdoctools
+, kauth
+, kcmutils
+, kconfigwidgets
+, kcoreaddons
+, kdbusaddons
+, kdelibs4support
+, kwallet
+, kxmlgui
+}:
+
+mkDerivation {
+ name = "kwalletmanager";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ fridh ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kauth kcmutils kconfigwidgets kcoreaddons kdbusaddons kdelibs4support
+ kwallet kxmlgui
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/kwave.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/kwave.nix
new file mode 100644
index 000000000000..1a831c7c8dd8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/kwave.nix
@@ -0,0 +1,40 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, qtmultimedia, kcompletion, kconfig
+, kcrash, kiconthemes, kio, audiofile, libsamplerate, alsaLib, libpulseaudio, flac, id3lib
+, libogg, libmad, libopus, libvorbis, fftw, librsvg, qtbase }:
+
+mkDerivation {
+ name = "kwave";
+
+ meta = with lib; {
+ homepage = "https://kde.org/applications/en/multimedia/org.kde.kwave";
+ description = "A simple media player";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ broken = lib.versionOlder qtbase.version "5.14";
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ alsaLib
+ audiofile
+ kcrash
+ kdoctools
+ qtmultimedia
+ kcompletion
+ kconfig
+ kiconthemes
+ kio
+ libpulseaudio
+ libsamplerate
+ flac
+ fftw
+ id3lib
+ libogg
+ libmad
+ libopus
+ libvorbis
+ librsvg
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libgravatar.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libgravatar.nix
new file mode 100644
index 000000000000..69a1b9e99cbb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libgravatar.nix
@@ -0,0 +1,18 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ kconfig, kio, ktextwidgets, kwidgetsaddons, pimcommon
+}:
+
+mkDerivation {
+ name = "libgravatar";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [
+ kconfig kio ktextwidgets kwidgetsaddons pimcommon
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkcddb.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkcddb.nix
new file mode 100644
index 000000000000..3fd486056542
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkcddb.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, lib, extra-cmake-modules, qtbase, kdoctools
+, kcodecs, ki18n, kio, kwidgetsaddons
+, libmusicbrainz5 }:
+
+mkDerivation {
+ name = "libkcddb";
+ meta = with lib; {
+ license = with licenses; [ gpl2 lgpl21 bsd3 ];
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ qtbase ];
+ propagatedBuildInputs = [
+ kcodecs ki18n kio kwidgetsaddons
+ libmusicbrainz5
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkdcraw.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkdcraw.nix
new file mode 100644
index 000000000000..70e3cb0e1956
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkdcraw.nix
@@ -0,0 +1,13 @@
+{ mkDerivation, lib, extra-cmake-modules, libraw, qtbase }:
+
+mkDerivation {
+ name = "libkdcraw";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ qtbase ];
+ propagatedBuildInputs = [ libraw ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkdegames.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkdegames.nix
new file mode 100644
index 000000000000..494b193b8326
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkdegames.nix
@@ -0,0 +1,26 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, kdoctools
+, kdelibs4support
+, qtdeclarative
+, kdeclarative
+, kdnssd
+, knewstuff
+, openal
+, libsndfile
+, qtquickcontrols
+}:
+
+mkDerivation {
+ name = "libkdegames";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kdelibs4support qtdeclarative kdeclarative kdnssd knewstuff openal libsndfile
+ qtquickcontrols
+ ];
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ lheckemann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkdepim.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkdepim.nix
new file mode 100644
index 000000000000..92716e40a34f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkdepim.nix
@@ -0,0 +1,21 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-contacts, akonadi-search, kcmutils, kcodecs, kcompletion,
+ kconfigwidgets, kcontacts, ki18n, kiconthemes, kio, kitemviews, kjobwidgets,
+ kldap, kwallet,
+}:
+
+mkDerivation {
+ name = "libkdepim";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-contacts akonadi-search kcmutils kcodecs kcompletion
+ kconfigwidgets kcontacts ki18n kiconthemes kio kitemviews kjobwidgets kldap
+ kwallet
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkexiv2.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkexiv2.nix
new file mode 100644
index 000000000000..8c8d244d6f6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkexiv2.nix
@@ -0,0 +1,13 @@
+{ mkDerivation, lib, exiv2, extra-cmake-modules, qtbase }:
+
+mkDerivation {
+ name = "libkexiv2";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ qtbase ];
+ propagatedBuildInputs = [ exiv2 ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkgapi.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkgapi.nix
new file mode 100644
index 000000000000..9d2d41c41d7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkgapi.nix
@@ -0,0 +1,16 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ qtwebengine, kio, kcalendarcore, kcontacts,
+ cyrus_sasl
+}:
+
+mkDerivation {
+ name = "libkgapi";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ qtwebengine kio kcalendarcore kcontacts cyrus_sasl ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkipi.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkipi.nix
new file mode 100644
index 000000000000..c70d8407fc74
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkipi.nix
@@ -0,0 +1,12 @@
+{ mkDerivation, lib, extra-cmake-modules, kconfig, ki18n, kservice, kxmlgui }:
+
+mkDerivation {
+ name = "libkipi";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kconfig ki18n kservice kxmlgui ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkleo.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkleo.nix
new file mode 100644
index 000000000000..0958a0e605f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkleo.nix
@@ -0,0 +1,21 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ boost, qgpgme, kcodecs, kcompletion, kconfig, kcoreaddons, ki18n, kitemmodels,
+ kpimtextedit, kwidgetsaddons, kwindowsystem
+}:
+
+mkDerivation {
+ name = "libkleo";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ boost kcodecs kcompletion kconfig kcoreaddons ki18n kitemmodels
+ kpimtextedit kwidgetsaddons kwindowsystem
+ ];
+ propagatedBuildInputs = [ qgpgme ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkmahjongg.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkmahjongg.nix
new file mode 100644
index 000000000000..295b97842686
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkmahjongg.nix
@@ -0,0 +1,18 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ kcompletion, kconfig, kconfigwidgets, kcoreaddons, ki18n,
+ kwidgetsaddons
+}:
+
+mkDerivation {
+ name = "libkmahjongg";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kcompletion kconfig kconfigwidgets kcoreaddons ki18n
+ kwidgetsaddons ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libkomparediff2.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkomparediff2.nix
new file mode 100644
index 000000000000..cae2aec5668d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libkomparediff2.nix
@@ -0,0 +1,7 @@
+{ mkDerivation, extra-cmake-modules, ki18n, kxmlgui, kcodecs, kio }:
+
+mkDerivation {
+ name = "libkomparediff2";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ propagatedBuildInputs = [ kcodecs ki18n kxmlgui kio ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libksane.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libksane.nix
new file mode 100644
index 000000000000..f92f21de7fb8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libksane.nix
@@ -0,0 +1,16 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, qtbase,
+ ki18n, ktextwidgets, kwallet, kwidgetsaddons,
+ sane-backends
+}:
+
+mkDerivation {
+ name = "libksane";
+ meta = with lib; {
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pshendry ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ qtbase ki18n ktextwidgets kwallet kwidgetsaddons sane-backends ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/libksieve.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/libksieve.nix
new file mode 100644
index 000000000000..dd33f759c313
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/libksieve.nix
@@ -0,0 +1,23 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, karchive, kcompletion, kiconthemes, kidentitymanagement, kio,
+ kmailtransport, knewstuff, kwindowsystem, kxmlgui, libkdepim, pimcommon,
+ qtwebengine, syntax-highlighting,
+}:
+
+mkDerivation {
+ name = "libksieve";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ outputs = [ "out" "dev" ];
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi karchive kcompletion kiconthemes kidentitymanagement kio
+ kmailtransport knewstuff kwindowsystem kxmlgui libkdepim pimcommon
+ qtwebengine
+ ];
+ propagatedBuildInputs = [ syntax-highlighting ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/mailcommon.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/mailcommon.nix
new file mode 100644
index 000000000000..44edea8f55e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/mailcommon.nix
@@ -0,0 +1,22 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-mime, karchive, kcodecs, kcompletion, kconfigwidgets,
+ kdbusaddons, kdesignerplugin, kiconthemes, kio, kitemmodels, kldap,
+ kmailtransport, kwindowsystem, mailimporter, messagelib, phonon, libkdepim
+}:
+
+mkDerivation {
+ name = "mailcommon";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-mime karchive kcodecs kcompletion kconfigwidgets kdbusaddons
+ kdesignerplugin kiconthemes kio kitemmodels kldap kmailtransport
+ kwindowsystem mailimporter messagelib phonon libkdepim
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/mailimporter.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/mailimporter.nix
new file mode 100644
index 000000000000..5de58658777a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/mailimporter.nix
@@ -0,0 +1,19 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-mime, karchive, kcompletion, kconfig, kcoreaddons, ki18n,
+ kmime, kxmlgui, libkdepim, pimcommon
+}:
+
+mkDerivation {
+ name = "mailimporter";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-mime karchive kcompletion kconfig kcoreaddons ki18n kmime
+ kxmlgui libkdepim pimcommon
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/marble.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/marble.nix
new file mode 100644
index 000000000000..f690e453361b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/marble.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib
+, extra-cmake-modules, kdoctools
+, qtscript, qtsvg, qtquickcontrols, qtwebengine
+, krunner, shared-mime-info, kparts, knewstuff
+, gpsd, perl
+}:
+
+mkDerivation {
+ name = "marble";
+ meta.license = with lib.licenses; [ lgpl21 gpl3 ];
+ outputs = [ "out" "dev" ];
+ nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
+ propagatedBuildInputs = [
+ qtscript qtsvg qtquickcontrols qtwebengine shared-mime-info krunner kparts
+ knewstuff gpsd
+ ];
+ preConfigure = ''
+ cmakeFlags+=" -DINCLUDE_INSTALL_DIR=''${!outputDev}/include"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/mbox-importer.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/mbox-importer.nix
new file mode 100644
index 000000000000..0704003353ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/mbox-importer.nix
@@ -0,0 +1,17 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-search, kconfig, kservice, kio, mailcommon, mailimporter, messagelib
+}:
+
+mkDerivation {
+ name = "mbox-importer";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-search kconfig kservice kio mailcommon mailimporter messagelib
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/messagelib.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/messagelib.nix
new file mode 100644
index 000000000000..e31e61d35ca3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/messagelib.nix
@@ -0,0 +1,29 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-mime, akonadi-notes, akonadi-search, gpgme, grantlee,
+ grantleetheme, karchive, kcodecs, kconfig, kconfigwidgets, kcontacts,
+ kdepim-apps-libs, kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap,
+ kmailtransport, kmbox, kmime, kwindowsystem, libgravatar, libkdepim, libkleo,
+ pimcommon, qca-qt5, qtwebengine, syntax-highlighting
+}:
+
+mkDerivation {
+ name = "messagelib";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi-notes akonadi-search gpgme grantlee grantleetheme karchive kcodecs
+ kconfig kconfigwidgets kdepim-apps-libs kiconthemes kio kjobwidgets kldap
+ kmailtransport kmbox kmime kwindowsystem libgravatar libkdepim qca-qt5
+ syntax-highlighting
+ ];
+ propagatedBuildInputs = [
+ akonadi akonadi-mime kcontacts kidentitymanagement kmime libkleo pimcommon
+ qtwebengine
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/minuet.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/minuet.nix
new file mode 100644
index 000000000000..2c0f0a5092d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/minuet.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, qtbase
+, lib, extra-cmake-modules, gettext, python
+, drumstick, fluidsynth
+, kcoreaddons, kcrash, kdoctools
+, qtquickcontrols2, qtsvg, qttools, qtdeclarative
+}:
+
+mkDerivation {
+ name = "minuet";
+ meta = with lib; {
+ license = with licenses; [ lgpl21 gpl3 ];
+ maintainers = with maintainers; [ peterhoeg HaoZeke ];
+ broken = lib.versionOlder qtbase.version "5.14";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python qtdeclarative ];
+
+ propagatedBuildInputs = [
+ drumstick fluidsynth
+ kcoreaddons kcrash
+ qtquickcontrols2 qtsvg qttools
+ ];
+
+ enableParallelBuilding = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/mlt-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/kde/mlt-path.patch
new file mode 100644
index 000000000000..9bfb66c1a839
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/mlt-path.patch
@@ -0,0 +1,22 @@
+diff -ruN old/src/kdenlivesettings.kcfg new/src/kdenlivesettings.kcfg
+--- old/src/kdenlivesettings.kcfg 2019-09-10 23:20:27.555392353 -0400
++++ new/src/kdenlivesettings.kcfg 2019-09-10 23:25:47.533964155 -0400
+@@ -378,14 +378,14 @@
+ </group>
+
+ <group name="env">
+- <entry name="mltpath" type="Path">
++ <entry name="mltpath" type="Path" hidden="true">
+ <label>Mlt framework install path.</label>
+- <default></default>
++ <default>@mlt@/share/mlt/profiles</default>
+ </entry>
+
+- <entry name="rendererpath" type="Path">
++ <entry name="rendererpath" type="Path" hidden="true">
+ <label>Mlt melt renderer install path.</label>
+- <default></default>
++ <default>@mlt@/bin/melt</default>
+ </entry>
+
+ <entry name="ffmpegpath" type="Path">
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/okular.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/okular.nix
new file mode 100644
index 000000000000..288b2ceb807f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/okular.nix
@@ -0,0 +1,36 @@
+{
+ stdenv, mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ breeze-icons, chmlib ? null, discount, djvulibre, ebook_tools, kactivities,
+ karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
+ kdbusaddons, kdegraphics-mobipocket, kiconthemes, kjs, khtml, kio, kparts,
+ kpty, kpurpose, kwallet, kwindowsystem, libkexiv2, libspectre, libzip, phonon, poppler,
+ qca-qt5, qtdeclarative, qtsvg, threadweaver, kcrash
+}:
+
+mkDerivation {
+ name = "okular";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ breeze-icons discount djvulibre ebook_tools kactivities karchive kbookmarks
+ kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
+ kdegraphics-mobipocket kiconthemes kjs khtml kio kparts kpty kpurpose kwallet
+ kwindowsystem libkexiv2 libspectre libzip phonon poppler qca-qt5
+ qtdeclarative qtsvg threadweaver kcrash
+ ] ++ lib.optional (!stdenv.isAarch64) chmlib;
+
+ # InitialPreference values are too high and end up making okular
+ # default for anything considered text/plain. Resetting to 1, which
+ # is the default.
+ postPatch = ''
+ substituteInPlace generators/txt/okularApplication_txt.desktop \
+ --replace InitialPreference=3 InitialPreference=1
+ '';
+
+ meta = with lib; {
+ homepage = "http://www.kde.org";
+ license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
+ maintainers = with maintainers; [ ttuegel turion ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/picmi.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/picmi.nix
new file mode 100644
index 000000000000..dd09e8f9cd80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/picmi.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+ name = "picmi";
+ meta = with lib; {
+ description = "Nonogram game";
+ longDescription = ''The goal is to reveal the hidden pattern in the board by coloring or
+ leaving blank the cells in a grid according to numbers given at the side of the grid.
+ '';
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ kdeclarative
+ knewstuff
+ libkdegames
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/pim-data-exporter.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/pim-data-exporter.nix
new file mode 100644
index 000000000000..82cdf19df948
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/pim-data-exporter.nix
@@ -0,0 +1,23 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-notes, kcalendarcore, kcmutils, kcrash, kdbusaddons,
+ kidentitymanagement, kldap, kmailtransport, knewstuff, knotifications,
+ knotifyconfig, kparts, kross, ktexteditor, kwallet, libkdepim, libkleo,
+ pimcommon, qttools, karchive, mailcommon, messagelib
+}:
+
+mkDerivation {
+ name = "pim-data-exporter";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi akonadi-notes kcalendarcore kcmutils kcrash kdbusaddons
+ kidentitymanagement kldap kmailtransport knewstuff knotifications
+ knotifyconfig kparts kross ktexteditor kwallet libkdepim libkleo pimcommon
+ qttools karchive mailcommon messagelib
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix
new file mode 100644
index 000000000000..c83df2e0e498
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix
@@ -0,0 +1,19 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ kdbusaddons, kcrash, kbookmarks, kiconthemes, kio, kpimtextedit,
+ kmailtransport, pimcommon, libksieve
+}:
+
+mkDerivation {
+ name = "pim-sieve-editor";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kdbusaddons kcrash kbookmarks kiconthemes kio kpimtextedit kmailtransport
+ pimcommon libksieve
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/pimcommon.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/pimcommon.nix
new file mode 100644
index 000000000000..2e74f528aeb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/pimcommon.nix
@@ -0,0 +1,26 @@
+{
+ mkDerivation, lib, kdepimTeam,
+ extra-cmake-modules, kdoctools,
+ akonadi, akonadi-contacts, akonadi-mime, akonadi-search, grantlee, karchive, kcmutils, kcodecs,
+ kcompletion, kconfig, kconfigwidgets, kcontacts, kdbusaddons,
+ kiconthemes, kimap, kio, kitemmodels, kjobwidgets, kldap, knewstuff, kpimtextedit,
+ kpurpose, kwallet, kwindowsystem, libkdepim, qtwebengine
+}:
+
+mkDerivation {
+ name = "pimcommon";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = kdepimTeam;
+ };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ akonadi-mime grantlee karchive kcmutils kcodecs kcompletion kconfigwidgets
+ kdbusaddons kiconthemes kio kitemmodels kjobwidgets knewstuff kldap kpimtextedit
+ kpurpose kwallet kwindowsystem libkdepim qtwebengine
+ ];
+ propagatedBuildInputs = [
+ akonadi akonadi-contacts akonadi-search kconfig kcontacts kimap
+ ];
+ outputs = [ "out" "dev" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/print-manager.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/print-manager.nix
new file mode 100644
index 000000000000..f0501ffadee4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/print-manager.nix
@@ -0,0 +1,26 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules,
+ cups, ki18n,
+ kconfig, kconfigwidgets, kdbusaddons, kiconthemes, kcmutils, kio,
+ knotifications, kwidgetsaddons, kwindowsystem, kitemviews, plasma-framework,
+ qtdeclarative
+}:
+
+mkDerivation {
+ name = "print-manager";
+ meta = {
+ license = [ lib.licenses.gpl2 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ cups ki18n ];
+ propagatedBuildInputs = [
+ kconfig kconfigwidgets kdbusaddons kiconthemes kcmutils knotifications
+ kwidgetsaddons kitemviews kio kwindowsystem plasma-framework qtdeclarative
+ ];
+ outputs = [ "out" "dev" ];
+ # Fix build with cups deprecations etc.
+ # See: https://github.com/NixOS/nixpkgs/issues/73334
+ NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations -Wno-error=format-security";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/rocs.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/rocs.nix
new file mode 100644
index 000000000000..feae7ca81dec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/rocs.nix
@@ -0,0 +1,25 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, boost,
+ qtbase, qtscript, qtquickcontrols, qtwebkit, qtxmlpatterns, grantlee,
+ kdoctools, karchive, kxmlgui, kcrash, kdeclarative, ktexteditor, kguiaddons
+}:
+
+mkDerivation {
+ name = "rocs";
+
+ meta = with lib; {
+ homepage = "https://edu.kde.org/rocs/";
+ description = "A graph theory IDE.";
+ license = with licenses; [ gpl2 lgpl21 fdl12 ];
+ platforms = lib.platforms.linux;
+ maintainers = with maintainers; [ knairda ];
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ boost
+ qtbase qtscript qtquickcontrols qtwebkit qtxmlpatterns grantlee
+ kxmlgui kcrash kdeclarative karchive ktexteditor kguiaddons
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/spectacle.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/spectacle.nix
new file mode 100644
index 000000000000..b980ea21df2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/spectacle.nix
@@ -0,0 +1,24 @@
+{
+ mkDerivation, lib,
+ extra-cmake-modules, kdoctools,
+ ki18n, xcb-util-cursor,
+ kconfig, kcoreaddons, kdbusaddons, kdeclarative, kio, kipi-plugins,
+ knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi,
+ qtx11extras, knewstuff, kwayland, qttools
+}:
+
+mkDerivation {
+ name = "spectacle";
+ meta = with lib; { maintainers = with maintainers; [ ttuegel ]; };
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications
+ kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi qtx11extras xcb-util-cursor
+ knewstuff kwayland
+ ];
+ postPatch = ''
+ substituteInPlace desktop/org.kde.spectacle.desktop.cmake \
+ --replace "Exec=@QtBinariesDir@/qdbus" "Exec=${lib.getBin qttools}/bin/qdbus"
+ '';
+ propagatedUserEnvPkgs = [ kipi-plugins libkipi ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/srcs.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/srcs.nix
new file mode 100644
index 000000000000..6966c07ec0af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/srcs.nix
@@ -0,0 +1,1734 @@
+# DO NOT EDIT! This file is generated automatically.
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/kde
+{ fetchurl, mirror }:
+
+{
+ akonadi = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akonadi-20.08.2.tar.xz";
+ sha256 = "d3a4b3b3f543734ad5428ca0e573b8dbf9e05f42d51e1aab39b5b5266c16be7d";
+ name = "akonadi-20.08.2.tar.xz";
+ };
+ };
+ akonadi-calendar = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akonadi-calendar-20.08.2.tar.xz";
+ sha256 = "20173d00dc764f6a1e8e0b433d96b982ceadcb17e9bd067caf2967fd5440eb51";
+ name = "akonadi-calendar-20.08.2.tar.xz";
+ };
+ };
+ akonadi-calendar-tools = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akonadi-calendar-tools-20.08.2.tar.xz";
+ sha256 = "2069cc3a12f0da3f10181c13d19b1048d8f2e0c0f4a4e14309a7e6f08aa74ab9";
+ name = "akonadi-calendar-tools-20.08.2.tar.xz";
+ };
+ };
+ akonadiconsole = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akonadiconsole-20.08.2.tar.xz";
+ sha256 = "dc03a1986b6e7af0d26af927009d567da1e1835cc2bb5cc1b5732ffca3ecde9d";
+ name = "akonadiconsole-20.08.2.tar.xz";
+ };
+ };
+ akonadi-contacts = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akonadi-contacts-20.08.2.tar.xz";
+ sha256 = "e4a2696e0e0cf69926d34f160a4581131a1da8244355787564b75dec06db1b30";
+ name = "akonadi-contacts-20.08.2.tar.xz";
+ };
+ };
+ akonadi-import-wizard = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akonadi-import-wizard-20.08.2.tar.xz";
+ sha256 = "639d72ae3d32f681ddb046a87d625871b485785602cf35b817e89004def4dc5e";
+ name = "akonadi-import-wizard-20.08.2.tar.xz";
+ };
+ };
+ akonadi-mime = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akonadi-mime-20.08.2.tar.xz";
+ sha256 = "5699a1d44a9812c9530bc61af5822ff34a573b168d72230cd8261c05065c06e3";
+ name = "akonadi-mime-20.08.2.tar.xz";
+ };
+ };
+ akonadi-notes = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akonadi-notes-20.08.2.tar.xz";
+ sha256 = "4897ca92d6b68f75254e1c419438275a94fa678c9f062dcd91c0267129886ca7";
+ name = "akonadi-notes-20.08.2.tar.xz";
+ };
+ };
+ akonadi-search = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akonadi-search-20.08.2.tar.xz";
+ sha256 = "618400950fa44f0c578ab51c3b311a47e0b2df47203f754e50bcc363201a9fc7";
+ name = "akonadi-search-20.08.2.tar.xz";
+ };
+ };
+ akregator = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/akregator-20.08.2.tar.xz";
+ sha256 = "4de4bd31dede5c09e0eb9e14d1da1d1979409eb1e28df5f95963086d4a49edc9";
+ name = "akregator-20.08.2.tar.xz";
+ };
+ };
+ analitza = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/analitza-20.08.2.tar.xz";
+ sha256 = "2fad01bf48199e3671559ec9a619f0d590af331922899c793f96fc90860ec487";
+ name = "analitza-20.08.2.tar.xz";
+ };
+ };
+ ark = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ark-20.08.2.tar.xz";
+ sha256 = "ec061ac07687b5a3541af293e3bc2aa7bedcfe0ef38ba6e57e2704068a726ffc";
+ name = "ark-20.08.2.tar.xz";
+ };
+ };
+ artikulate = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/artikulate-20.08.2.tar.xz";
+ sha256 = "66545d85e25aa67816deea4b2b89b485181458a5bc117dad9588671d8b48b41c";
+ name = "artikulate-20.08.2.tar.xz";
+ };
+ };
+ audiocd-kio = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/audiocd-kio-20.08.2.tar.xz";
+ sha256 = "5f38c549fe8c3a4659ac8291c223327b765834e7668bc15a96047e20cdb11f01";
+ name = "audiocd-kio-20.08.2.tar.xz";
+ };
+ };
+ baloo-widgets = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/baloo-widgets-20.08.2.tar.xz";
+ sha256 = "e1d14b8dba911ebc1cee76dbcd44fa200418ba959d86ce567093b5fc3b700a07";
+ name = "baloo-widgets-20.08.2.tar.xz";
+ };
+ };
+ blinken = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/blinken-20.08.2.tar.xz";
+ sha256 = "c6e74033ab8ece83618c5cda0ab3cf327514b8e2e6b0e9daf484ce88f671a65e";
+ name = "blinken-20.08.2.tar.xz";
+ };
+ };
+ bomber = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/bomber-20.08.2.tar.xz";
+ sha256 = "27c226b31bcdbbda0c9e304e428ca7451614c397a038e830f8052c381dae7215";
+ name = "bomber-20.08.2.tar.xz";
+ };
+ };
+ bovo = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/bovo-20.08.2.tar.xz";
+ sha256 = "936cab24a13900765f0c5a5afb6f155cb5a05bdb067f86b77e33af5f0e4c37d2";
+ name = "bovo-20.08.2.tar.xz";
+ };
+ };
+ calendarsupport = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/calendarsupport-20.08.2.tar.xz";
+ sha256 = "83bcdd36689f762363a95b688b9377a3335b4fd58ad1d5efad36ad2b0cf7cc10";
+ name = "calendarsupport-20.08.2.tar.xz";
+ };
+ };
+ cantor = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/cantor-20.08.2.tar.xz";
+ sha256 = "aca92b6e40a9e05282eae2b55f7cc6bf88612ffa9b3dde1a239648be8e5bdc59";
+ name = "cantor-20.08.2.tar.xz";
+ };
+ };
+ cervisia = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/cervisia-20.08.2.tar.xz";
+ sha256 = "b3444ecd1078b92fad9b00297496dd3d92366a9c0bb56cfa138f28cc15db1389";
+ name = "cervisia-20.08.2.tar.xz";
+ };
+ };
+ dolphin = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/dolphin-20.08.2.tar.xz";
+ sha256 = "bd13574610fc2108b9b04249cff70ca99958fe57a42fbf260ed16e5e377071bc";
+ name = "dolphin-20.08.2.tar.xz";
+ };
+ };
+ dolphin-plugins = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/dolphin-plugins-20.08.2.tar.xz";
+ sha256 = "7eabeb295ae2932958992bf7273afcb8164fbe90a2574064983fb2ecbc57eeaf";
+ name = "dolphin-plugins-20.08.2.tar.xz";
+ };
+ };
+ dragon = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/dragon-20.08.2.tar.xz";
+ sha256 = "cf7cce288fdeb12a0c86739741c6b901859e9b36d8fc9e7478c46f53cc74dd6c";
+ name = "dragon-20.08.2.tar.xz";
+ };
+ };
+ elisa = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/elisa-20.08.2.tar.xz";
+ sha256 = "6c04377dfd5e82b2b67b3a43cc3ffd3b206f24ab75c3fe18298ec80876dcc268";
+ name = "elisa-20.08.2.tar.xz";
+ };
+ };
+ eventviews = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/eventviews-20.08.2.tar.xz";
+ sha256 = "ecac9ac6e6a6ed835b28048d8bfc09bac9a1e7a57c5dd0eba6f4360301b32af9";
+ name = "eventviews-20.08.2.tar.xz";
+ };
+ };
+ ffmpegthumbs = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ffmpegthumbs-20.08.2.tar.xz";
+ sha256 = "af5b3de86487d3ddccda34c5165a34427ef97fe1090108781eb38babc101740f";
+ name = "ffmpegthumbs-20.08.2.tar.xz";
+ };
+ };
+ filelight = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/filelight-20.08.2.tar.xz";
+ sha256 = "65f5f90d56d3449722647286324f8aae54754ec2a46c9aaa2e3bad92bae3433e";
+ name = "filelight-20.08.2.tar.xz";
+ };
+ };
+ granatier = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/granatier-20.08.2.tar.xz";
+ sha256 = "bb79b84b485bb194bf4edaa833e7705ec9fc0275301c70df78498b872de9ee57";
+ name = "granatier-20.08.2.tar.xz";
+ };
+ };
+ grantlee-editor = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/grantlee-editor-20.08.2.tar.xz";
+ sha256 = "353b2c58d169e8b3c91367a7ce8939ede39c289036e3617da019ae1045a81c7b";
+ name = "grantlee-editor-20.08.2.tar.xz";
+ };
+ };
+ grantleetheme = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/grantleetheme-20.08.2.tar.xz";
+ sha256 = "8cb4d2f698cf7f44bf70322669809f07900021f215175c8db120abc0f2debf62";
+ name = "grantleetheme-20.08.2.tar.xz";
+ };
+ };
+ gwenview = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/gwenview-20.08.2.tar.xz";
+ sha256 = "580df49eb6852db4b1229f0326372dc7da7a08140d552da59a62ece08b03cc9d";
+ name = "gwenview-20.08.2.tar.xz";
+ };
+ };
+ incidenceeditor = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/incidenceeditor-20.08.2.tar.xz";
+ sha256 = "e9c24390b5951ef9f504a4dc432fea52ed7487288c424f073446e6c07e70c69a";
+ name = "incidenceeditor-20.08.2.tar.xz";
+ };
+ };
+ juk = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/juk-20.08.2.tar.xz";
+ sha256 = "b19f59ad8c80c4c335469fbddde6db92112e286b1699964eab39a3d826c7ec60";
+ name = "juk-20.08.2.tar.xz";
+ };
+ };
+ k3b = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/k3b-20.08.2.tar.xz";
+ sha256 = "6370be558e93fed4605b7870b1d7ea324713c5a52370eab9c05d85fc3b76acd5";
+ name = "k3b-20.08.2.tar.xz";
+ };
+ };
+ kaccounts-integration = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kaccounts-integration-20.08.2.tar.xz";
+ sha256 = "6678ee7d394b69a37e6a220a6cba3804f999997da5803da4bab1d8f329ff30fe";
+ name = "kaccounts-integration-20.08.2.tar.xz";
+ };
+ };
+ kaccounts-providers = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kaccounts-providers-20.08.2.tar.xz";
+ sha256 = "c719d7840ab118ff591e75e12869afc3118e5cdeb5c0415eba5b1f6993664c90";
+ name = "kaccounts-providers-20.08.2.tar.xz";
+ };
+ };
+ kaddressbook = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kaddressbook-20.08.2.tar.xz";
+ sha256 = "8d2e5849dd8878806e8566ce43c139633c37f027f677603600c8acc0d0d41198";
+ name = "kaddressbook-20.08.2.tar.xz";
+ };
+ };
+ kajongg = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kajongg-20.08.2.tar.xz";
+ sha256 = "1eb534ac6d1d3ca14b73bd6e5b626b988acafc30b168f54d48a493adc715ecde";
+ name = "kajongg-20.08.2.tar.xz";
+ };
+ };
+ kalarm = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kalarm-20.08.2.tar.xz";
+ sha256 = "e783c041ac4b162cf5254e37e53854835eda6c61ef3ae2358466000a8650a4da";
+ name = "kalarm-20.08.2.tar.xz";
+ };
+ };
+ kalarmcal = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kalarmcal-20.08.2.tar.xz";
+ sha256 = "0398a37f412eb03b5cbf2488ce7e0c38a069f1806bda4ea9bfce4fc67311a9a6";
+ name = "kalarmcal-20.08.2.tar.xz";
+ };
+ };
+ kalgebra = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kalgebra-20.08.2.tar.xz";
+ sha256 = "c934dc8d92917e31c17efa5b64dbec4795439a5f26762e2f214b49028bfe264d";
+ name = "kalgebra-20.08.2.tar.xz";
+ };
+ };
+ kalzium = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kalzium-20.08.2.tar.xz";
+ sha256 = "474f74cbb478d3f5f69b5785711ed969ac15d5e92aee5308c6118a9d12611016";
+ name = "kalzium-20.08.2.tar.xz";
+ };
+ };
+ kamera = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kamera-20.08.2.tar.xz";
+ sha256 = "ba28cab34267ce203b4b70f4a2c2b6a75849aec83dd2d73f6903894c5c125fdf";
+ name = "kamera-20.08.2.tar.xz";
+ };
+ };
+ kamoso = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kamoso-20.08.2.tar.xz";
+ sha256 = "e7d0af2781ff077261886a1683aff1d518a17f9b6d83f84fa95a7633a00f1516";
+ name = "kamoso-20.08.2.tar.xz";
+ };
+ };
+ kanagram = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kanagram-20.08.2.tar.xz";
+ sha256 = "3f3f961aa847f26ac875104e82b8e7e73bbc049f20460117f849df91ba9b42e2";
+ name = "kanagram-20.08.2.tar.xz";
+ };
+ };
+ kapman = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kapman-20.08.2.tar.xz";
+ sha256 = "932bd697f2ca0e44af6be983dae3e13df9435642b91f0e1ebba7fd50291c2cbd";
+ name = "kapman-20.08.2.tar.xz";
+ };
+ };
+ kapptemplate = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kapptemplate-20.08.2.tar.xz";
+ sha256 = "3bda6d9f6127e19357f071ca6f9f05890c35a6aaf86e54bce39381f0045b6b0c";
+ name = "kapptemplate-20.08.2.tar.xz";
+ };
+ };
+ kate = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kate-20.08.2.tar.xz";
+ sha256 = "718e8230edfa16f93f54380c4e214a0f25f8a398fe74ad23f12b7dcffae419d0";
+ name = "kate-20.08.2.tar.xz";
+ };
+ };
+ katomic = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/katomic-20.08.2.tar.xz";
+ sha256 = "bb94e81cb1122b57d2601f701bc51ff8fa27ac07a5de34e5c49928d50d46ed85";
+ name = "katomic-20.08.2.tar.xz";
+ };
+ };
+ kbackup = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kbackup-20.08.2.tar.xz";
+ sha256 = "bb97dd10a64c42ae80c9c87442d3a06d3c18f4f5997bd3b6d1460dec655b3e0a";
+ name = "kbackup-20.08.2.tar.xz";
+ };
+ };
+ kblackbox = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kblackbox-20.08.2.tar.xz";
+ sha256 = "714a8749a49d1a7938b74372138ae3e5bafef50de61207e63a6d2c60b6bfded2";
+ name = "kblackbox-20.08.2.tar.xz";
+ };
+ };
+ kblocks = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kblocks-20.08.2.tar.xz";
+ sha256 = "c82f8b6e722308a236d0057028d644ebf8105c9c902d799bc2fb3e1c1ff7c188";
+ name = "kblocks-20.08.2.tar.xz";
+ };
+ };
+ kbounce = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kbounce-20.08.2.tar.xz";
+ sha256 = "371fbaf7c1faeacf1c74441ec1a58f1ced862f741e67123d2eb105f1d4f9b8e2";
+ name = "kbounce-20.08.2.tar.xz";
+ };
+ };
+ kbreakout = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kbreakout-20.08.2.tar.xz";
+ sha256 = "b58b9dd26eff3960bc664076ddf4d0c81c7dfd5380be1d058b86de2d3f55d2ef";
+ name = "kbreakout-20.08.2.tar.xz";
+ };
+ };
+ kbruch = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kbruch-20.08.2.tar.xz";
+ sha256 = "54c5997a8d6405439448dd929bf16017c9e5db052b30c9bf144c656c6d8b9e0b";
+ name = "kbruch-20.08.2.tar.xz";
+ };
+ };
+ kcachegrind = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kcachegrind-20.08.2.tar.xz";
+ sha256 = "e6b84a323a21ae7975ccc07154bcdc6eef1bc92818b800cfc5d546ada7f0387c";
+ name = "kcachegrind-20.08.2.tar.xz";
+ };
+ };
+ kcalc = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kcalc-20.08.2.tar.xz";
+ sha256 = "76b6c8e44c789090c0155f79878df8f27c96d2df4273443b0f05a42ec81902cf";
+ name = "kcalc-20.08.2.tar.xz";
+ };
+ };
+ kcalutils = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kcalutils-20.08.2.tar.xz";
+ sha256 = "fccae5166b627f654412344d0090000ecd270af54b0cedb8648e35af26369cae";
+ name = "kcalutils-20.08.2.tar.xz";
+ };
+ };
+ kcharselect = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kcharselect-20.08.2.tar.xz";
+ sha256 = "9438e723469b6bf0d87b23965c6d925800ff35b2cc2214a7eeb5fb41009489e0";
+ name = "kcharselect-20.08.2.tar.xz";
+ };
+ };
+ kcolorchooser = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kcolorchooser-20.08.2.tar.xz";
+ sha256 = "f314c31932704e7136b5fff89efe95e84e4215f3902089f9d838411f0fbc0c72";
+ name = "kcolorchooser-20.08.2.tar.xz";
+ };
+ };
+ kcron = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kcron-20.08.2.tar.xz";
+ sha256 = "ce72bb7c48606b0611cfe46a545224cca131d34a4b678c86d9ac473071833f83";
+ name = "kcron-20.08.2.tar.xz";
+ };
+ };
+ kdebugsettings = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdebugsettings-20.08.2.tar.xz";
+ sha256 = "78502b1a52f9f81ff848e5b210b37a3a74da7c0032de2513f23c1d25cf801283";
+ name = "kdebugsettings-20.08.2.tar.xz";
+ };
+ };
+ kdeconnect-kde = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdeconnect-kde-20.08.2.tar.xz";
+ sha256 = "6d43e38620987de1ddcfdfa7d4e6e31ff383b806139ba02e69a99c3ddfb4ee67";
+ name = "kdeconnect-kde-20.08.2.tar.xz";
+ };
+ };
+ kde-dev-scripts = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kde-dev-scripts-20.08.2.tar.xz";
+ sha256 = "ff1a819991903b09bef3637b579d215e087310e39b98a1a6928e15f193aec056";
+ name = "kde-dev-scripts-20.08.2.tar.xz";
+ };
+ };
+ kde-dev-utils = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kde-dev-utils-20.08.2.tar.xz";
+ sha256 = "21a4a11e102cbbd9fed955720966d7be2f7a615f57c9bf1dfc94ce973d25ffc3";
+ name = "kde-dev-utils-20.08.2.tar.xz";
+ };
+ };
+ kdeedu-data = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdeedu-data-20.08.2.tar.xz";
+ sha256 = "9030c39b92a7500254e8303ce246d2535cd66a203bb96b2670defd5288294ad1";
+ name = "kdeedu-data-20.08.2.tar.xz";
+ };
+ };
+ kdegraphics-mobipocket = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdegraphics-mobipocket-20.08.2.tar.xz";
+ sha256 = "8972079756633abe8cbfaa39cdff9d56f89958861e6e418738311bcdc52771a5";
+ name = "kdegraphics-mobipocket-20.08.2.tar.xz";
+ };
+ };
+ kdegraphics-thumbnailers = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdegraphics-thumbnailers-20.08.2.tar.xz";
+ sha256 = "977cf6c40ba00a8a391a951aab80c55d9615927a1ef4a7bb5eea2f6a83373532";
+ name = "kdegraphics-thumbnailers-20.08.2.tar.xz";
+ };
+ };
+ kdenetwork-filesharing = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdenetwork-filesharing-20.08.2.tar.xz";
+ sha256 = "f909ee8433baf906b6c23af4747d83ae3e151e213585abe01282213012228b3a";
+ name = "kdenetwork-filesharing-20.08.2.tar.xz";
+ };
+ };
+ kdenlive = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdenlive-20.08.2.tar.xz";
+ sha256 = "535df45a148f0f94271e045ef0c93575fded83da7a2b727aeaf90e61e1d7c418";
+ name = "kdenlive-20.08.2.tar.xz";
+ };
+ };
+ kdepim-addons = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdepim-addons-20.08.2.tar.xz";
+ sha256 = "f7ab0d9ee2b9351959199f8903c447c6cb82fd58d642b7039cd2b8e324038b01";
+ name = "kdepim-addons-20.08.2.tar.xz";
+ };
+ };
+ kdepim-apps-libs = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdepim-apps-libs-20.08.2.tar.xz";
+ sha256 = "8c3ebdf7072d3a5a6ea2921697b28aa27e51ba43db152ea83a07b4b13c282434";
+ name = "kdepim-apps-libs-20.08.2.tar.xz";
+ };
+ };
+ kdepim-runtime = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdepim-runtime-20.08.2.tar.xz";
+ sha256 = "3b475dfd394d5c09991eb4e1f0ddb3e2aa1f586ed75aa7961b159ef712d80132";
+ name = "kdepim-runtime-20.08.2.tar.xz";
+ };
+ };
+ kdesdk-kioslaves = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdesdk-kioslaves-20.08.2.tar.xz";
+ sha256 = "5e79532675d717d906f6b43eea1cac20fe1513bcf497696251c00fe74e2f0f58";
+ name = "kdesdk-kioslaves-20.08.2.tar.xz";
+ };
+ };
+ kdesdk-thumbnailers = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdesdk-thumbnailers-20.08.2.tar.xz";
+ sha256 = "0b6809e2469d7057b6d674d5950fd4f6243a1d3d185452212522880c714c1c63";
+ name = "kdesdk-thumbnailers-20.08.2.tar.xz";
+ };
+ };
+ kdf = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdf-20.08.2.tar.xz";
+ sha256 = "b33c043c18ae7b80b40e73c0a34759540724fa81815a6afa1e91e3ad44aec27e";
+ name = "kdf-20.08.2.tar.xz";
+ };
+ };
+ kdialog = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdialog-20.08.2.tar.xz";
+ sha256 = "1bb808c2d01680e2396f282b798d9e22d2c1722f992c672eaf7451bf83a5d459";
+ name = "kdialog-20.08.2.tar.xz";
+ };
+ };
+ kdiamond = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kdiamond-20.08.2.tar.xz";
+ sha256 = "7bfc2b24d86c663bff719156ba20cd36017f1df647ee6769b5101aa6ab3e3e21";
+ name = "kdiamond-20.08.2.tar.xz";
+ };
+ };
+ keditbookmarks = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/keditbookmarks-20.08.2.tar.xz";
+ sha256 = "87d72e78c907e7829a642364f3a49dd0f0dea0c76e7a5c524a67f957dca94b9b";
+ name = "keditbookmarks-20.08.2.tar.xz";
+ };
+ };
+ kfind = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kfind-20.08.2.tar.xz";
+ sha256 = "2381bbe7793a666fa9463aead1246dc4244409f68375f6d75e1423be15b42d74";
+ name = "kfind-20.08.2.tar.xz";
+ };
+ };
+ kfloppy = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kfloppy-20.08.2.tar.xz";
+ sha256 = "7f624d03dc3dc5099ac1479148800043195fa6c0e3bb6d7efcb452a76e99e191";
+ name = "kfloppy-20.08.2.tar.xz";
+ };
+ };
+ kfourinline = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kfourinline-20.08.2.tar.xz";
+ sha256 = "aed2ecdb40b2e3d5452b183a1817216373d32a0aab4eff02f6c823a6f8d801eb";
+ name = "kfourinline-20.08.2.tar.xz";
+ };
+ };
+ kgeography = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kgeography-20.08.2.tar.xz";
+ sha256 = "82c4798f3184c77d0be63aeb5e86c84240c9cb0aa0e66ff57f92c0b5c3748f19";
+ name = "kgeography-20.08.2.tar.xz";
+ };
+ };
+ kget = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kget-20.08.2.tar.xz";
+ sha256 = "42993095d6325e921b6ed36f4b0a2153ffd5d68cfa3e6d3ced2db09e2a6aabb8";
+ name = "kget-20.08.2.tar.xz";
+ };
+ };
+ kgoldrunner = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kgoldrunner-20.08.2.tar.xz";
+ sha256 = "4bbcfcf5cf810e0b1f78e1a88d222631c07401187fb327deaa5ab6658483d351";
+ name = "kgoldrunner-20.08.2.tar.xz";
+ };
+ };
+ kgpg = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kgpg-20.08.2.tar.xz";
+ sha256 = "fc4ec5c38c3bdb02a399f0eb1e75da356a523ada369d5410c2f4e7f5f14a508f";
+ name = "kgpg-20.08.2.tar.xz";
+ };
+ };
+ khangman = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/khangman-20.08.2.tar.xz";
+ sha256 = "7ff30ecbab7c9e8f44b7e8c3887ec78a918c919ce902005aeb7fb969ac995b28";
+ name = "khangman-20.08.2.tar.xz";
+ };
+ };
+ khelpcenter = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/khelpcenter-20.08.2.tar.xz";
+ sha256 = "36051a4352a05dd9b74b4e325c0e16e30d6bd8b48d6c3d13980b39a77aab4e2d";
+ name = "khelpcenter-20.08.2.tar.xz";
+ };
+ };
+ kidentitymanagement = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kidentitymanagement-20.08.2.tar.xz";
+ sha256 = "17a1fd47d91289519cafb12c0d917b4775496ada447cb6f4ba56dc42446152ec";
+ name = "kidentitymanagement-20.08.2.tar.xz";
+ };
+ };
+ kig = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kig-20.08.2.tar.xz";
+ sha256 = "401832d384e47ea6daf310f7e823ae6b8a55bc117b7570bd4bf36261d01587f5";
+ name = "kig-20.08.2.tar.xz";
+ };
+ };
+ kigo = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kigo-20.08.2.tar.xz";
+ sha256 = "b9e6edd2e35e57edb3d89bb76f1d7e4a9e7f8fb64644b58012543a367834aa60";
+ name = "kigo-20.08.2.tar.xz";
+ };
+ };
+ killbots = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/killbots-20.08.2.tar.xz";
+ sha256 = "332ebd24be6ea62c8621aeaa5b200d6ebf03ae0198a06693b36b2c80cac89d95";
+ name = "killbots-20.08.2.tar.xz";
+ };
+ };
+ kimagemapeditor = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kimagemapeditor-20.08.2.tar.xz";
+ sha256 = "fd8272978a7c3a1d95b20a5ec57ccf00d740a8d6eb483f0a204d03669215309c";
+ name = "kimagemapeditor-20.08.2.tar.xz";
+ };
+ };
+ kimap = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kimap-20.08.2.tar.xz";
+ sha256 = "bda4f4b4e94481b70cec270655c0fd2888da51106d80c0388ae5c0dc5d36e092";
+ name = "kimap-20.08.2.tar.xz";
+ };
+ };
+ kio-extras = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kio-extras-20.08.2.tar.xz";
+ sha256 = "9d4b9cb5a4002ad2127c5c5c4d25ff95d53de32ea08348e8dc40fe83d950076e";
+ name = "kio-extras-20.08.2.tar.xz";
+ };
+ };
+ kio-gdrive = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kio-gdrive-20.08.2.tar.xz";
+ sha256 = "71047e9f8e5ad9317cc3dbf1de2d121f322b5d968d3685351ef0d2aabe2f46ca";
+ name = "kio-gdrive-20.08.2.tar.xz";
+ };
+ };
+ kipi-plugins = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kipi-plugins-20.08.2.tar.xz";
+ sha256 = "89de8f75dd01e2130c1e651bd04717ce4d35768202ae3e825c93c75c8312e583";
+ name = "kipi-plugins-20.08.2.tar.xz";
+ };
+ };
+ kirigami-gallery = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kirigami-gallery-20.08.2.tar.xz";
+ sha256 = "0b4a5cec32bdfaef42b790f1d249d227c9daf56e0f3c1e302d33ccaa485c28e5";
+ name = "kirigami-gallery-20.08.2.tar.xz";
+ };
+ };
+ kiriki = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kiriki-20.08.2.tar.xz";
+ sha256 = "42081e39c045bd830c6a79938a83690ea5641aa9e5437645234441da2d29b053";
+ name = "kiriki-20.08.2.tar.xz";
+ };
+ };
+ kiten = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kiten-20.08.2.tar.xz";
+ sha256 = "a7285d5880611da2202d0e3f8f2bf860f275932d3da54ff7aecc793225f7ad7d";
+ name = "kiten-20.08.2.tar.xz";
+ };
+ };
+ kitinerary = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kitinerary-20.08.2.tar.xz";
+ sha256 = "69d8b5f64774860e5098c1dbfb06d274da4379c04383c4f0f0e412481c48fa27";
+ name = "kitinerary-20.08.2.tar.xz";
+ };
+ };
+ kjumpingcube = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kjumpingcube-20.08.2.tar.xz";
+ sha256 = "0edba227e24b8aeda4e75bc6c25ad25b50ac624b5319a64ce20d6c3f7691a48a";
+ name = "kjumpingcube-20.08.2.tar.xz";
+ };
+ };
+ kldap = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kldap-20.08.2.tar.xz";
+ sha256 = "dfc8bd59d837766e741b33cf8486256b7bd5ffc33ff2aab240d47b4766ec8489";
+ name = "kldap-20.08.2.tar.xz";
+ };
+ };
+ kleopatra = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kleopatra-20.08.2.tar.xz";
+ sha256 = "70ffa2d1549b6b4674a9cd92052174002d81fb236cfbf872187c6e3616191ba2";
+ name = "kleopatra-20.08.2.tar.xz";
+ };
+ };
+ klettres = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/klettres-20.08.2.tar.xz";
+ sha256 = "9cef7dea479d27644e4812157d4cf3993dc3ee84b847377a17cec305a03a3156";
+ name = "klettres-20.08.2.tar.xz";
+ };
+ };
+ klickety = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/klickety-20.08.2.tar.xz";
+ sha256 = "90665c5aeda52f55af8dcf3936e557ba431d9e48c6be361eaeb82117b6213a33";
+ name = "klickety-20.08.2.tar.xz";
+ };
+ };
+ klines = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/klines-20.08.2.tar.xz";
+ sha256 = "8e8b897cdc3c31fada1dd2635da211def507f47c8062c6458f559283ae470edb";
+ name = "klines-20.08.2.tar.xz";
+ };
+ };
+ kmag = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmag-20.08.2.tar.xz";
+ sha256 = "8e933e8ebbf0ab956e2a251312e3d4e027848dc2f2b4e8a7c7250b8fdf10ca05";
+ name = "kmag-20.08.2.tar.xz";
+ };
+ };
+ kmahjongg = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmahjongg-20.08.2.tar.xz";
+ sha256 = "98e34794560a062bd22950acc583b77a6f8d1d28aceb863604f5a6c98c6cc80d";
+ name = "kmahjongg-20.08.2.tar.xz";
+ };
+ };
+ kmail = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmail-20.08.2.tar.xz";
+ sha256 = "ff179b89836236174cd587ce4ea2a4320e58345d45582cb157186cfbb01e58f2";
+ name = "kmail-20.08.2.tar.xz";
+ };
+ };
+ kmail-account-wizard = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmail-account-wizard-20.08.2.tar.xz";
+ sha256 = "7cdb9b60b1a646f0c5c0d0e7dfbe357a9f66bb305afbccbb4b421ee6f6941df8";
+ name = "kmail-account-wizard-20.08.2.tar.xz";
+ };
+ };
+ kmailtransport = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmailtransport-20.08.2.tar.xz";
+ sha256 = "8b12836b1ca0243819680cba73c809c491c5e7a8d1ea9d9dc23e7338aed69a0c";
+ name = "kmailtransport-20.08.2.tar.xz";
+ };
+ };
+ kmbox = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmbox-20.08.2.tar.xz";
+ sha256 = "4fa1ad98368130dcdc8ad71dba3084c489130b1e8fc4a2b119ffc6f56595ba73";
+ name = "kmbox-20.08.2.tar.xz";
+ };
+ };
+ kmime = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmime-20.08.2.tar.xz";
+ sha256 = "9f23e2814e62ae6c4a67fd3223315ef875776f9d098b4d11c7d06a726a725435";
+ name = "kmime-20.08.2.tar.xz";
+ };
+ };
+ kmines = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmines-20.08.2.tar.xz";
+ sha256 = "6b07a812497a665505b6b1e3a84ac0818f1a5e5757146cdbceec55e94bb41753";
+ name = "kmines-20.08.2.tar.xz";
+ };
+ };
+ kmix = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmix-20.08.2.tar.xz";
+ sha256 = "73453f02a72384382fd7449215189e22b5e1600e9ef0c9cc910f3fddd09beb85";
+ name = "kmix-20.08.2.tar.xz";
+ };
+ };
+ kmousetool = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmousetool-20.08.2.tar.xz";
+ sha256 = "c1f70c172dc2ad7d937db5e6355522082f924ba45e7aac1bbb1c04e230f1d406";
+ name = "kmousetool-20.08.2.tar.xz";
+ };
+ };
+ kmouth = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmouth-20.08.2.tar.xz";
+ sha256 = "d206afecdbe5f063dfbf805956f475e95c7b0fd548fd5f1b4fd7376ea6747e96";
+ name = "kmouth-20.08.2.tar.xz";
+ };
+ };
+ kmplot = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kmplot-20.08.2.tar.xz";
+ sha256 = "c3bc34a2d1bf4620745009b49b6541a16ac64eb3d1e6cf1ba936b14aa5d02e2b";
+ name = "kmplot-20.08.2.tar.xz";
+ };
+ };
+ knavalbattle = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/knavalbattle-20.08.2.tar.xz";
+ sha256 = "2cd91ee61193810eee62e47f38f590e81b03287083f31564e0ebfd893d339ac9";
+ name = "knavalbattle-20.08.2.tar.xz";
+ };
+ };
+ knetwalk = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/knetwalk-20.08.2.tar.xz";
+ sha256 = "4a97f4b1af463e5e50698e8ac089cf6933fb66f25dd9b0fae3f1b1a51cbca3c0";
+ name = "knetwalk-20.08.2.tar.xz";
+ };
+ };
+ knights = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/knights-20.08.2.tar.xz";
+ sha256 = "b62dda6e8b5bb85cc814f7244e39806e38c266be1bf3090eb6de59c8141fc1d4";
+ name = "knights-20.08.2.tar.xz";
+ };
+ };
+ knotes = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/knotes-20.08.2.tar.xz";
+ sha256 = "1e61f2c8b5fe9075f07be16543e3a7310bf533b6c2446f162f7196b41e3e6ecb";
+ name = "knotes-20.08.2.tar.xz";
+ };
+ };
+ kolf = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kolf-20.08.2.tar.xz";
+ sha256 = "834c1c6cdc62e650c7b0d36db26387cc4ebe2bb4b2e8fa06c0bf461e3a1e8c64";
+ name = "kolf-20.08.2.tar.xz";
+ };
+ };
+ kollision = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kollision-20.08.2.tar.xz";
+ sha256 = "9b6829f49d9baa89596ef8649996724db72c3c8eb793b9b6afc80dc0d07c0421";
+ name = "kollision-20.08.2.tar.xz";
+ };
+ };
+ kolourpaint = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kolourpaint-20.08.2.tar.xz";
+ sha256 = "fbcd875a4a407d9b1e5a637d4947bacfb50f39e10af3327f30fdbb953528aae0";
+ name = "kolourpaint-20.08.2.tar.xz";
+ };
+ };
+ kompare = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kompare-20.08.2.tar.xz";
+ sha256 = "4e52cb2c9e35e90fe77bfb23bd10c1931c56b11e3fec06c215730d60c47e8550";
+ name = "kompare-20.08.2.tar.xz";
+ };
+ };
+ konqueror = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/konqueror-20.08.2.tar.xz";
+ sha256 = "f0622aa67ad0028e28bd6129688aab8946fb49492f0b335f6624ab7d4ef239d7";
+ name = "konqueror-20.08.2.tar.xz";
+ };
+ };
+ konquest = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/konquest-20.08.2.tar.xz";
+ sha256 = "cf97a6961b15b39f5bcdf541e52c137f1d67d0fa5ee259922b4e762edc4491eb";
+ name = "konquest-20.08.2.tar.xz";
+ };
+ };
+ konsole = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/konsole-20.08.2.tar.xz";
+ sha256 = "af08ac7666f1ba7c407205f32aaaf015329621247502e80d8df4abe103148951";
+ name = "konsole-20.08.2.tar.xz";
+ };
+ };
+ kontact = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kontact-20.08.2.tar.xz";
+ sha256 = "232d9880df74ce0c7697f08b53ef9512ac9c11c3b04142ba7ba4b95091cb5396";
+ name = "kontact-20.08.2.tar.xz";
+ };
+ };
+ kontactinterface = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kontactinterface-20.08.2.tar.xz";
+ sha256 = "72d53dbea9db0b1f5654e13c18b4da3d256c6b9d08dfe4581cdf73e3552d2a07";
+ name = "kontactinterface-20.08.2.tar.xz";
+ };
+ };
+ kopete = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kopete-20.08.2.tar.xz";
+ sha256 = "05f5d6236d4c96b9ce7ba5f24f4e06d7263a78cac27368a7e6b3e5075d42fbb1";
+ name = "kopete-20.08.2.tar.xz";
+ };
+ };
+ korganizer = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/korganizer-20.08.2.tar.xz";
+ sha256 = "4f719ec12c52fc313997a187439dc6888fd030a4a1b2357db000abc0a19527b2";
+ name = "korganizer-20.08.2.tar.xz";
+ };
+ };
+ kpat = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kpat-20.08.2.tar.xz";
+ sha256 = "e4aaed4e876212a926a05d252dab9d01f240d829e383c6072e168a4f78e6d446";
+ name = "kpat-20.08.2.tar.xz";
+ };
+ };
+ kpimtextedit = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kpimtextedit-20.08.2.tar.xz";
+ sha256 = "2dfbcdd53669c812234346b4d31b61af9c510bb4cb0b9912decea8d3c4d406a6";
+ name = "kpimtextedit-20.08.2.tar.xz";
+ };
+ };
+ kpkpass = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kpkpass-20.08.2.tar.xz";
+ sha256 = "ed699c75128ef299f06d699c80c69ac9529fa044db6f18a39d54a5e70d85108c";
+ name = "kpkpass-20.08.2.tar.xz";
+ };
+ };
+ kqtquickcharts = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kqtquickcharts-20.08.2.tar.xz";
+ sha256 = "2ba593a65c143cb56a3030f7ee0cced2df7c7e9431cebf1ae93be51c68b4c3b4";
+ name = "kqtquickcharts-20.08.2.tar.xz";
+ };
+ };
+ krdc = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/krdc-20.08.2.tar.xz";
+ sha256 = "52ddd68bdb1b356be341cf3bc5405cb965f4e4f3da8bf4b28bfb62c7db21ac5f";
+ name = "krdc-20.08.2.tar.xz";
+ };
+ };
+ kreversi = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kreversi-20.08.2.tar.xz";
+ sha256 = "22824dca9c8f07145a6fd9b7386867d8a8efff0fda6752f377230381a1cc71c2";
+ name = "kreversi-20.08.2.tar.xz";
+ };
+ };
+ krfb = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/krfb-20.08.2.tar.xz";
+ sha256 = "5e90fb4f3bcf2c48b15ec33634d61464323ab5ce1c156a499f089d862dd041d4";
+ name = "krfb-20.08.2.tar.xz";
+ };
+ };
+ kross-interpreters = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kross-interpreters-20.08.2.tar.xz";
+ sha256 = "82da0302d2d292e86fa924c8bd1d4effb21f763c42c57affaddeff4777c43951";
+ name = "kross-interpreters-20.08.2.tar.xz";
+ };
+ };
+ kruler = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kruler-20.08.2.tar.xz";
+ sha256 = "ede45d9cdf1b514fb20ed3a97877689ec75904438b94735706eb638ba01ca778";
+ name = "kruler-20.08.2.tar.xz";
+ };
+ };
+ kshisen = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kshisen-20.08.2.tar.xz";
+ sha256 = "d11030b101a409324661adf664d4298f34cc320abff80dba72d112cc3ae2d25d";
+ name = "kshisen-20.08.2.tar.xz";
+ };
+ };
+ ksirk = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ksirk-20.08.2.tar.xz";
+ sha256 = "b7766f0976b3cc112d4c599d91c07d321829c9b1e8ef34d3d21ec4964026854a";
+ name = "ksirk-20.08.2.tar.xz";
+ };
+ };
+ ksmtp = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ksmtp-20.08.2.tar.xz";
+ sha256 = "5f51e0c025b192719709ae763feeac94df893007b62b5a69b7b95ae9f2fdd8ee";
+ name = "ksmtp-20.08.2.tar.xz";
+ };
+ };
+ ksnakeduel = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ksnakeduel-20.08.2.tar.xz";
+ sha256 = "b6f0f51f8fad795cd134f9426b1f1ba8ccceb72e304e8ba55e60af471ad282cc";
+ name = "ksnakeduel-20.08.2.tar.xz";
+ };
+ };
+ kspaceduel = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kspaceduel-20.08.2.tar.xz";
+ sha256 = "62b9526c031662c049aa90b06ed3e5e2ce8ae774f271e1f29430f23c1f6cd787";
+ name = "kspaceduel-20.08.2.tar.xz";
+ };
+ };
+ ksquares = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ksquares-20.08.2.tar.xz";
+ sha256 = "e1f9fdfa9a4a8348a65e66d48b7389784a1db6c8799cea453d6da3a2a57aca59";
+ name = "ksquares-20.08.2.tar.xz";
+ };
+ };
+ ksudoku = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ksudoku-20.08.2.tar.xz";
+ sha256 = "6fed393f734eb27d6c36ad7516bf29ff648d319f08d9f8bdc17a8030842d8e33";
+ name = "ksudoku-20.08.2.tar.xz";
+ };
+ };
+ ksystemlog = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ksystemlog-20.08.2.tar.xz";
+ sha256 = "63c6a520b63f148de2e3996250a2fef22e1a3ce18e744a699ae21de96a2c4e53";
+ name = "ksystemlog-20.08.2.tar.xz";
+ };
+ };
+ kteatime = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kteatime-20.08.2.tar.xz";
+ sha256 = "d8e69fdb124e8689c72e4b9fe39226cc49b1ca990478fbb68e02b37f0cd861ac";
+ name = "kteatime-20.08.2.tar.xz";
+ };
+ };
+ ktimer = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktimer-20.08.2.tar.xz";
+ sha256 = "69293b7296643c6543d0646d14f9c75479f29f129924258957a407b77539a4c2";
+ name = "ktimer-20.08.2.tar.xz";
+ };
+ };
+ ktnef = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktnef-20.08.2.tar.xz";
+ sha256 = "ab73736e386c2b52a14fb56f1184479ed1c83c0571e9e8518d2b94b1dcd2e47d";
+ name = "ktnef-20.08.2.tar.xz";
+ };
+ };
+ ktouch = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktouch-20.08.2.tar.xz";
+ sha256 = "1b073a92343c9a2c772cfaac4e9fa7b6e85750586e3a57da413e33cdba34b5f4";
+ name = "ktouch-20.08.2.tar.xz";
+ };
+ };
+ ktp-accounts-kcm = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-accounts-kcm-20.08.2.tar.xz";
+ sha256 = "df709ee612ff4c71a43197762b8a9d296b5a43f6e0afe4d9c8d0bd88eef81465";
+ name = "ktp-accounts-kcm-20.08.2.tar.xz";
+ };
+ };
+ ktp-approver = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-approver-20.08.2.tar.xz";
+ sha256 = "054db02db679d0a4600632700cdd57cae539159a0a8f01f479ea337d33d8a6bd";
+ name = "ktp-approver-20.08.2.tar.xz";
+ };
+ };
+ ktp-auth-handler = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-auth-handler-20.08.2.tar.xz";
+ sha256 = "a61557efa800d42fd8ed14efdb09d43310212976d737a4fd5272f502bacbc371";
+ name = "ktp-auth-handler-20.08.2.tar.xz";
+ };
+ };
+ ktp-call-ui = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-call-ui-20.08.2.tar.xz";
+ sha256 = "ecd38d8b9f24cf620b8c9c1935328af3142199c6aa87e69c734e43096e492ac5";
+ name = "ktp-call-ui-20.08.2.tar.xz";
+ };
+ };
+ ktp-common-internals = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-common-internals-20.08.2.tar.xz";
+ sha256 = "807fcd6f9c415a0799057435f997e143e9584a94577f9afaa7fcc6a4197e7cb0";
+ name = "ktp-common-internals-20.08.2.tar.xz";
+ };
+ };
+ ktp-contact-list = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-contact-list-20.08.2.tar.xz";
+ sha256 = "214d73532dc855a8a4b68730adf5cbd046aae89f2ee2ad5d9a4c25b4eff6acb0";
+ name = "ktp-contact-list-20.08.2.tar.xz";
+ };
+ };
+ ktp-contact-runner = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-contact-runner-20.08.2.tar.xz";
+ sha256 = "8e40e4ab7ce2c1c382b109a15f88f5e1c7d147c76ed36ca05ef6d9f3f58d3d45";
+ name = "ktp-contact-runner-20.08.2.tar.xz";
+ };
+ };
+ ktp-desktop-applets = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-desktop-applets-20.08.2.tar.xz";
+ sha256 = "b0884360be80f89dee3852b023055220e3cdab2f422cc3812eda31169fba6298";
+ name = "ktp-desktop-applets-20.08.2.tar.xz";
+ };
+ };
+ ktp-filetransfer-handler = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-filetransfer-handler-20.08.2.tar.xz";
+ sha256 = "c2ec5fd2a5746dd8ce1371c503c51feee206d8dfe7ca8cdaa71b8e925636a97c";
+ name = "ktp-filetransfer-handler-20.08.2.tar.xz";
+ };
+ };
+ ktp-kded-module = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-kded-module-20.08.2.tar.xz";
+ sha256 = "307285b2d4e04c244691a6f2a285aec8ada26e0b01eb1fdbf2bc1da57b05828a";
+ name = "ktp-kded-module-20.08.2.tar.xz";
+ };
+ };
+ ktp-send-file = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-send-file-20.08.2.tar.xz";
+ sha256 = "6c3fb09112d439ce2f0db3acdbc766e8a914d4dc7cbb6ab709922f8e95f2f0e1";
+ name = "ktp-send-file-20.08.2.tar.xz";
+ };
+ };
+ ktp-text-ui = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktp-text-ui-20.08.2.tar.xz";
+ sha256 = "0f10612e08bc1ee04fb0a538337d760d7b79b5dac37bb58275998d16dbb5415c";
+ name = "ktp-text-ui-20.08.2.tar.xz";
+ };
+ };
+ ktuberling = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/ktuberling-20.08.2.tar.xz";
+ sha256 = "f9e4a0de3b92d015f8e7b862badf4bbf11b3ce2727aa607384a009247e7b7fad";
+ name = "ktuberling-20.08.2.tar.xz";
+ };
+ };
+ kturtle = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kturtle-20.08.2.tar.xz";
+ sha256 = "ca9bf47b2ec34744492f218c922b10d613b19fbbd2c75b6ddba157eef21337c7";
+ name = "kturtle-20.08.2.tar.xz";
+ };
+ };
+ kubrick = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kubrick-20.08.2.tar.xz";
+ sha256 = "02fed26a7246feffd668fbda939893295557c0571da64fdf195db93474653224";
+ name = "kubrick-20.08.2.tar.xz";
+ };
+ };
+ kwalletmanager = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kwalletmanager-20.08.2.tar.xz";
+ sha256 = "7950e250c5351a9b8e3b36165fa2003baa044bb2d3553a32360000a322bddad8";
+ name = "kwalletmanager-20.08.2.tar.xz";
+ };
+ };
+ kwave = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kwave-20.08.2.tar.xz";
+ sha256 = "6e15a67022ef96f07b9825139cc7aaacbc6f60729570c31ce6cb25184602b434";
+ name = "kwave-20.08.2.tar.xz";
+ };
+ };
+ kwordquiz = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/kwordquiz-20.08.2.tar.xz";
+ sha256 = "57aa012f3aad128579f067668db1344306e2e23d6a89b47d413d6eee0da0e238";
+ name = "kwordquiz-20.08.2.tar.xz";
+ };
+ };
+ libgravatar = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libgravatar-20.08.2.tar.xz";
+ sha256 = "4c0a2eb073ef42a26813b93bd76aaa9e26a040a966329e6e3cf371d7de1e55f7";
+ name = "libgravatar-20.08.2.tar.xz";
+ };
+ };
+ libkcddb = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkcddb-20.08.2.tar.xz";
+ sha256 = "545cf54ac454845c524ba7cd7ec289ac952fa1ce2bbae01411ba71c66a5ed08a";
+ name = "libkcddb-20.08.2.tar.xz";
+ };
+ };
+ libkcompactdisc = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkcompactdisc-20.08.2.tar.xz";
+ sha256 = "37534f67af69775d6f786917920d2810a5d20f28df57e1a17aee9a7b30bbe302";
+ name = "libkcompactdisc-20.08.2.tar.xz";
+ };
+ };
+ libkdcraw = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkdcraw-20.08.2.tar.xz";
+ sha256 = "6fbf1a5ca5a439fabb01648cde4b57e1f3de2372b7f3b56ccae03f653490f1b2";
+ name = "libkdcraw-20.08.2.tar.xz";
+ };
+ };
+ libkdegames = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkdegames-20.08.2.tar.xz";
+ sha256 = "d9f0ab87dc4671a55ad8d2b7d3a54cbc444201c11ebae436e0107fe7067fb983";
+ name = "libkdegames-20.08.2.tar.xz";
+ };
+ };
+ libkdepim = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkdepim-20.08.2.tar.xz";
+ sha256 = "3558c9af95c22bb4ce0ceeec483fada9e8e9f27de4ac34ffe44a4eb3b6d21101";
+ name = "libkdepim-20.08.2.tar.xz";
+ };
+ };
+ libkeduvocdocument = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkeduvocdocument-20.08.2.tar.xz";
+ sha256 = "ef8e0b359e3cf1b3303da3795add1ced405d230f51895abe10d5a7989be03923";
+ name = "libkeduvocdocument-20.08.2.tar.xz";
+ };
+ };
+ libkexiv2 = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkexiv2-20.08.2.tar.xz";
+ sha256 = "793c4d11bb1b60beca7b25a2427650b3f358364c55be022dfd4a7ccfd889578d";
+ name = "libkexiv2-20.08.2.tar.xz";
+ };
+ };
+ libkgapi = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkgapi-20.08.2.tar.xz";
+ sha256 = "f3fb015e8b8ac92c138e8a59e8e8b9333500e0ea314180cc1ad14e31248312df";
+ name = "libkgapi-20.08.2.tar.xz";
+ };
+ };
+ libkgeomap = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkgeomap-20.08.2.tar.xz";
+ sha256 = "7149095aa0df4e3a184bb2a6fb8322e27e3a34eb3bc40cf370a09b21fb2a6ea0";
+ name = "libkgeomap-20.08.2.tar.xz";
+ };
+ };
+ libkipi = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkipi-20.08.2.tar.xz";
+ sha256 = "87ffa30b23779313a94953afe57d1b19515c3a2f311a2dea6449c9d96b09e5b1";
+ name = "libkipi-20.08.2.tar.xz";
+ };
+ };
+ libkleo = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkleo-20.08.2.tar.xz";
+ sha256 = "34537b35e22cef85650ae6f9bf197518bb5a59e9614d6d86ba86f085fddd97c4";
+ name = "libkleo-20.08.2.tar.xz";
+ };
+ };
+ libkmahjongg = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkmahjongg-20.08.2.tar.xz";
+ sha256 = "032ac6d9e96cd9156f5153c01f881d0e442fda9de90398df320846095ba2c40a";
+ name = "libkmahjongg-20.08.2.tar.xz";
+ };
+ };
+ libkomparediff2 = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libkomparediff2-20.08.2.tar.xz";
+ sha256 = "91b0b72d5c4e2ddd863636cca299660bfbb5b7a55773cbc51000fe9c1ca91a98";
+ name = "libkomparediff2-20.08.2.tar.xz";
+ };
+ };
+ libksane = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libksane-20.08.2.tar.xz";
+ sha256 = "21bb577d78e020281dfc6c993ab7fe286d648e72c851e45463a32969fbb35aa6";
+ name = "libksane-20.08.2.tar.xz";
+ };
+ };
+ libksieve = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/libksieve-20.08.2.tar.xz";
+ sha256 = "589e4dc27d1d91d8c16879fa99aab45f3847a74e3e9357e3e037503e5515ee2e";
+ name = "libksieve-20.08.2.tar.xz";
+ };
+ };
+ lokalize = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/lokalize-20.08.2.tar.xz";
+ sha256 = "c11616bc02763fb1f3b1abf0b2ba70d0c6c550435c94ff25c5096f9a90375e23";
+ name = "lokalize-20.08.2.tar.xz";
+ };
+ };
+ lskat = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/lskat-20.08.2.tar.xz";
+ sha256 = "78f152f7af46345f65c3800f9c591fb204e917595c1f803c9c15148ef39c42b8";
+ name = "lskat-20.08.2.tar.xz";
+ };
+ };
+ mailcommon = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/mailcommon-20.08.2.tar.xz";
+ sha256 = "a4170ab9ff7680fb26c61474f42d5424716f4e91c1a5e9275cc1222491c9564d";
+ name = "mailcommon-20.08.2.tar.xz";
+ };
+ };
+ mailimporter = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/mailimporter-20.08.2.tar.xz";
+ sha256 = "a255b60378c1cf77e517919d072cb44bd8c25e8ed8f07429763bb7915b3cc711";
+ name = "mailimporter-20.08.2.tar.xz";
+ };
+ };
+ marble = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/marble-20.08.2.tar.xz";
+ sha256 = "f44ac10de33dc31ce1cb99635131fe2c7bf3f60f09204b2061f81042a725475c";
+ name = "marble-20.08.2.tar.xz";
+ };
+ };
+ mbox-importer = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/mbox-importer-20.08.2.tar.xz";
+ sha256 = "3b3bee33683c534974255616f3b2f3baebf85363b2c24bbee9cc195ddf35ca9a";
+ name = "mbox-importer-20.08.2.tar.xz";
+ };
+ };
+ messagelib = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/messagelib-20.08.2.tar.xz";
+ sha256 = "5cf3a3f2b6473e60a7c2af10aa4eb1cfba25a4786132ee87b657b0dafb9f5028";
+ name = "messagelib-20.08.2.tar.xz";
+ };
+ };
+ minuet = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/minuet-20.08.2.tar.xz";
+ sha256 = "24383168e2a0b7b319ecb37e2b1f3b039ad790a7e0f49385657f049565f1ef84";
+ name = "minuet-20.08.2.tar.xz";
+ };
+ };
+ okular = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/okular-20.08.2.tar.xz";
+ sha256 = "6f1885ed8050a55bb2cbf05089b452f555852e003ec7fe89fe472c0dbc92e65b";
+ name = "okular-20.08.2.tar.xz";
+ };
+ };
+ palapeli = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/palapeli-20.08.2.tar.xz";
+ sha256 = "a31b0db2f3e77eac8f527d26f8ed0400fe5bcdb3a3970b925f14886bd1bcd63e";
+ name = "palapeli-20.08.2.tar.xz";
+ };
+ };
+ parley = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/parley-20.08.2.tar.xz";
+ sha256 = "cf2f00925730d8baec66d422f058e4b3e979678e79c57898ceffd8650720bda6";
+ name = "parley-20.08.2.tar.xz";
+ };
+ };
+ picmi = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/picmi-20.08.2.tar.xz";
+ sha256 = "35f2bf3d8375618f97aee01c8f2421521b2cd5c11d7b14fc9a376026d74c82a5";
+ name = "picmi-20.08.2.tar.xz";
+ };
+ };
+ pimcommon = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/pimcommon-20.08.2.tar.xz";
+ sha256 = "cba9e66153d36debe3f046363af7ff40a4ba263f33bfe20c7ec10b5bf9183deb";
+ name = "pimcommon-20.08.2.tar.xz";
+ };
+ };
+ pim-data-exporter = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/pim-data-exporter-20.08.2.tar.xz";
+ sha256 = "54b09a3f763004c805cc0dce8ab2e665116b7ef29419f22ad413aa250dcb4ac0";
+ name = "pim-data-exporter-20.08.2.tar.xz";
+ };
+ };
+ pim-sieve-editor = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/pim-sieve-editor-20.08.2.tar.xz";
+ sha256 = "e8c590a0fddc5292172115b11fb75c5f847347079100617dbf321875642d7098";
+ name = "pim-sieve-editor-20.08.2.tar.xz";
+ };
+ };
+ poxml = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/poxml-20.08.2.tar.xz";
+ sha256 = "67d260349489e92ebce20253f9a3ccde5bb75eb13eb4d1a08a86c18c82e4a2a9";
+ name = "poxml-20.08.2.tar.xz";
+ };
+ };
+ print-manager = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/print-manager-20.08.2.tar.xz";
+ sha256 = "de21f8c428198b906f4ae438d6ced8d707b12c15578409c2aa2f7b2f73feb990";
+ name = "print-manager-20.08.2.tar.xz";
+ };
+ };
+ rocs = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/rocs-20.08.2.tar.xz";
+ sha256 = "2d8efd62b89dd36033bb3d818c82fee67e6efa2d2bb98dda0d4eab13baaee485";
+ name = "rocs-20.08.2.tar.xz";
+ };
+ };
+ signon-kwallet-extension = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/signon-kwallet-extension-20.08.2.tar.xz";
+ sha256 = "a271f4d09511171dcf1ebcdaf0b7205f9ee6a75b20ef0801f36d136f7b4a70dd";
+ name = "signon-kwallet-extension-20.08.2.tar.xz";
+ };
+ };
+ spectacle = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/spectacle-20.08.2.tar.xz";
+ sha256 = "9a467ea3b05981d588d39573cca375636b825ad8cab8a36ce48dbbc12425ab0d";
+ name = "spectacle-20.08.2.tar.xz";
+ };
+ };
+ step = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/step-20.08.2.tar.xz";
+ sha256 = "a52e4b6f281ba1a7afd4ab3ac7307080464147c4052ee222399135fe61ac7958";
+ name = "step-20.08.2.tar.xz";
+ };
+ };
+ svgpart = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/svgpart-20.08.2.tar.xz";
+ sha256 = "3a46b5bd9acf5372f73b602d155517f0dff47f3337bd8a46a580aae7480dd771";
+ name = "svgpart-20.08.2.tar.xz";
+ };
+ };
+ sweeper = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/sweeper-20.08.2.tar.xz";
+ sha256 = "0c255ef15c1e32eb561b26f5b73a6c154730be583efbc5ee713aaed17de14091";
+ name = "sweeper-20.08.2.tar.xz";
+ };
+ };
+ umbrello = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/umbrello-20.08.2.tar.xz";
+ sha256 = "0357b44646c750253e3e7ee323b9e49e854c4c8cdf340eb5a11b2d42edfc4cd7";
+ name = "umbrello-20.08.2.tar.xz";
+ };
+ };
+ yakuake = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/yakuake-20.08.2.tar.xz";
+ sha256 = "8a0aa3a97a9fdc781887a6cb6480cba5079cf8aacd3345b63f5eb6be4d91665a";
+ name = "yakuake-20.08.2.tar.xz";
+ };
+ };
+ zeroconf-ioslave = {
+ version = "20.08.2";
+ src = fetchurl {
+ url = "${mirror}/stable/release-service/20.08.2/src/zeroconf-ioslave-20.08.2.tar.xz";
+ sha256 = "0ad34f8361ee3ecd669e396265135b534239994d3bec5e9e6a43b7b7bf5c04e4";
+ name = "zeroconf-ioslave-20.08.2.tar.xz";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/kde/yakuake.nix b/infra/libkookie/nixpkgs/pkgs/applications/kde/yakuake.nix
new file mode 100644
index 000000000000..cb7f7070b24a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/kde/yakuake.nix
@@ -0,0 +1,32 @@
+{
+ mkDerivation, lib, kdoctools, extra-cmake-modules,
+ karchive, kcrash, kdbusaddons, ki18n, kiconthemes, knewstuff, knotifications,
+ knotifyconfig, konsole, kparts, kwindowsystem, qtx11extras
+}:
+
+mkDerivation {
+ name = "yakuake";
+
+ buildInputs = [
+ karchive kcrash kdbusaddons ki18n kiconthemes knewstuff knotifications
+ knotifyconfig kparts kwindowsystem qtx11extras
+ ];
+
+ propagatedBuildInputs = [
+ karchive kcrash kdbusaddons ki18n kiconthemes knewstuff knotifications
+ knotifyconfig kparts kwindowsystem
+ ];
+
+ propagatedUserEnvPkgs = [ konsole ];
+
+ nativeBuildInputs = [
+ extra-cmake-modules kdoctools
+ ];
+
+ meta = {
+ homepage = "https://yakuake.kde.org";
+ description = "Quad-style terminal emulator for KDE";
+ maintainers = with lib.maintainers; [ fridh ];
+ license = lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/logging/humioctl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/logging/humioctl/default.nix
new file mode 100644
index 000000000000..bcaf4a3627fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/logging/humioctl/default.nix
@@ -0,0 +1,39 @@
+{ buildGoModule, fetchFromGitHub, installShellFiles, stdenv }:
+
+let
+ humioCtlVersion = "0.28.1";
+ sha256 = "0vy07nzafqhc14i179sfrzb795yh4pcyjj3py9fwq0nwnmxndby4";
+ vendorSha256 = "0anvah2rpqvxgmdrdj73k3vbf8073nmsl3aykgvb1nraf3gz3bpk";
+in buildGoModule {
+ name = "humioctl-${humioCtlVersion}";
+ pname = "humioctl";
+ version = humioCtlVersion;
+
+ vendorSha256 = vendorSha256;
+
+ doCheck = false;
+
+ src = fetchFromGitHub {
+ owner = "humio";
+ repo = "cli";
+ rev = "v${humioCtlVersion}";
+ sha256 = sha256;
+ };
+
+ buildFlagsArray = "-ldflags=-X main.version=${humioCtlVersion}";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ $out/bin/humioctl completion bash > humioctl.bash
+ $out/bin/humioctl completion zsh > humioctl.zsh
+ installShellCompletion humioctl.{bash,zsh}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/humio/cli";
+ description = "A CLI for managing and sending data to Humio";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ lucperkins ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/1password/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/1password/default.nix
new file mode 100644
index 000000000000..34b9b21f57d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/1password/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchzip, autoPatchelfHook, fetchurl, xar, cpio }:
+
+stdenv.mkDerivation rec {
+ pname = "1password";
+ version = "1.7.0";
+ src =
+ if stdenv.isLinux then fetchzip {
+ url = {
+ "i686-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
+ "x86_64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
+ }.${stdenv.hostPlatform.system};
+ sha256 = {
+ "i686-linux" = "0fvi9pfcm6pfy628q2lg62bkikrgsisynrk3kkjisb9ldcyjgabw";
+ "x86_64-linux" = "1iskhls8g8w2zhk79gprz4vzrmm7r7fq87gwgd4xmj5md4nkzran";
+ }.${stdenv.hostPlatform.system};
+ stripRoot = false;
+ } else fetchurl {
+ url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.pkg";
+ sha256 = "0x6s26zgjryzmcg9qxmv5s2vml06q96yqbapasjfxqc3l205lnnn";
+ };
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ xar cpio ];
+
+ unpackPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+ xar -xf $src
+ zcat Payload | cpio -i
+ '';
+
+ installPhase = ''
+ install -D op $out/bin/op
+ '';
+
+ dontStrip = stdenv.isDarwin;
+
+ nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ autoPatchelfHook ];
+
+ doInstallCheck = true;
+
+ installCheckPhase = ''
+ $out/bin/op --version
+ '';
+
+ meta = with stdenv.lib; {
+ description = "1Password command-line tool";
+ homepage = "https://support.1password.com/command-line/";
+ downloadPage = "https://app-updates.agilebits.com/product_history/CLI";
+ maintainers = with maintainers; [ joelburget marsam ];
+ license = licenses.unfree;
+ platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
new file mode 100644
index 000000000000..8e55090e4c17
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, unzip, makeWrapper, dotnetCorePackages, jq }:
+
+stdenv.mkDerivation rec {
+ pname = "ArchiSteamFarm";
+ version = "4.3.1.0";
+
+ src = fetchurl {
+ url = "https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/${version}/ASF-generic.zip";
+ sha256 = "1q28byshh4wkfsfdb0sfdqq9a5da9k7i4nagsfpk0fzyajvzd4lx";
+ };
+
+ nativeBuildInputs = [ unzip makeWrapper jq ];
+
+ sourceRoot = ".";
+
+ installPhase = ''
+ dist=$out/opt/asf
+ mkdir -p $dist
+ cp -r * $dist
+
+ jq "del(.runtimeOptions.framework.version)" ArchiSteamFarm.runtimeconfig.json > $dist/ArchiSteamFarm.runtimeconfig.json
+
+ makeWrapper ${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet $out/bin/ArchiSteamFarm \
+ --add-flags $dist/ArchiSteamFarm.dll \
+ --add-flags "--path ~/.config/asf" \
+ --run "mkdir -p ~/.config/asf" \
+ --run "cd ~/.config/asf" \
+ --run "[ -d config ] || cp --no-preserve=mode -r $dist/config ." \
+ --run "[ -d logs ] || cp --no-preserve=mode -r $dist/logs ." \
+ --run "[ -d plugins ] || cp --no-preserve=mode -r $dist/plugins ." \
+ --run "ln -sf $dist/www ."
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Application with primary purpose of idling Steam cards from multiple accounts simultaneously";
+ homepage = "https://github.com/JustArchiNET/ArchiSteamFarm";
+ license = licenses.asl20;
+ platforms = dotnetCorePackages.aspnetcore_3_1.meta.platforms;
+ maintainers = with maintainers; [ gnidorah ];
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/OSCAR/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/OSCAR/default.nix
new file mode 100644
index 000000000000..e619ad8c6971
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/OSCAR/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, mkDerivation, fetchFromGitLab, qmake, qtbase, qttools, qtserialport, libGLU }:
+mkDerivation rec {
+ pname = "OSCAR";
+ version = "1.2.0";
+
+ src = fetchFromGitLab {
+ owner = "pholy";
+ repo = "OSCAR-code";
+ rev = "v${version}";
+ sha256 = "10r37d8c2avr167n2s9lhld1c9hmckm444fq163z1jsy9jpid6mg";
+ };
+
+ buildInputs = [ qtbase qttools qtserialport libGLU ];
+ nativeBuildInputs = [ qmake ];
+ postPatch = ''
+ substituteInPlace oscar/oscar.pro --replace "/bin/bash" "${stdenv.shell}"
+ '';
+
+ qmakeFlags = [ "OSCAR_QT.pro" ];
+
+ installPhase = ''
+ install -d $out/bin
+ install -d $out/share/OSCAR/Help
+ install -d $out/share/OSCAR/Html
+ install -d $out/share/OSCAR/Translations
+ install -d $out/share/icons/OSCAR
+ install -d $out/share/applications
+ install -T oscar/OSCAR $out/bin/OSCAR
+ # help browser was removed 'temporarily' in https://gitlab.com/pholy/OSCAR-code/-/commit/57c3e4c33ccdd2d0eddedbc24c0e4f2969da3841
+ # install oscar/Help/* $out/share/OSCAR/Help
+ install oscar/Html/* $out/share/OSCAR/Html
+ install oscar/Translations/* $out/share/OSCAR/Translations
+ install -T Building/Linux/OSCAR.png $out/share/icons/OSCAR/OSCAR.png
+ install -T Building/Linux/OSCAR.desktop $out/share/applications/OSCAR.desktop
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.sleepfiles.com/OSCAR/";
+ description = "Software for reviewing and exploring data produced by CPAP and related machines used in the treatment of sleep apnea";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.roconnor ];
+ # Someone needs to create a suitable installPhase for Darwin and Windows.
+ # See https://gitlab.com/pholy/OSCAR-code/-/tree/master/Building.
+ broken = !stdenv.hostPlatform.isLinux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/abook/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/abook/default.nix
new file mode 100644
index 000000000000..4c03b197b4a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/abook/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, fetchpatch, pkgconfig, ncurses, readline, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ name = "abook-0.6.1";
+
+ src = fetchurl {
+ url = "http://abook.sourceforge.net/devel/${name}.tar.gz";
+ sha256 = "1yf0ifyjhq2r003pnpn92mn0924bn9yxjifxxj2ldcsgd7w0vagh";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/gcc5.patch?h=packages/abook";
+ name = "gcc5.patch";
+ sha256 = "13n3qd6yy45i5n8ppjn9hj6y63ymjrq96280683xk7f7rjavw5nn";
+ })
+ ];
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ ncurses readline ];
+
+ meta = {
+ homepage = "http://abook.sourceforge.net/";
+ description = "Text-based addressbook program designed to use with mutt mail client";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.edwtjo ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh b/infra/libkookie/nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh
new file mode 100644
index 000000000000..41281385c990
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh
@@ -0,0 +1,42 @@
+source $stdenv/setup
+
+echo "unpacking $src..."
+tar xvfa $src
+
+echo "unpacking reader..."
+p=$out/libexec/adobe-reader
+mkdir -p $out/libexec
+tar xvf AdobeReader/COMMON.TAR -C $out
+tar xvf AdobeReader/ILINXR.TAR -C $out
+mv $out/Adobe/Reader9 $p
+rmdir $out/Adobe
+
+# Disable this plugin for now (it needs LDAP, and I'm too lazy to add it).
+rm $p/Reader/intellinux/plug_ins/PPKLite.api
+
+# More pointless files.
+rm $p/bin/UNINSTALL
+
+patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath $libPath \
+ $p/Reader/intellinux/bin/acroread
+
+# The "xargs -r" is to shut up a warning when Mozilla can't be found.
+substituteInPlace $p/bin/acroread \
+ --replace /bin/pwd $(type -P pwd) \
+ --replace /bin/ls $(type -P ls) \
+ --replace xargs "xargs -r"
+
+mkdir -p $out/bin
+ln -s $p/bin/acroread $out/bin/acroread
+
+mkdir -p $out/share/applications
+mv $p/Resource/Support/AdobeReader.desktop $out/share/applications/
+icon=$p/Resource/Icons/128x128/AdobeReader9.png
+[ -e $icon ]
+sed -i $out/share/applications/AdobeReader.desktop \
+ -e "s|Icon=.*|Icon=$icon|"
+
+# Not sure if this works.
+mkdir -p $out/share/mimelnk/application
+mv $p/Resource/Support/vnd*.desktop $out/share/mimelnk/application
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
new file mode 100644
index 000000000000..25f888bbc8b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, libX11, cups, zlib, libxml2, pango, atk, gtk2, glib
+, gdk-pixbuf, gdk-pixbuf-xlib }:
+
+assert stdenv.hostPlatform.system == "i686-linux";
+
+let version = "9.5.5"; in
+
+stdenv.mkDerivation {
+ name = "adobe-reader-${version}-1";
+
+ builder = ./builder.sh;
+
+ src = fetchurl {
+ url = "http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/${version}/enu/AdbeRdr${version}-1_i486linux_enu.tar.bz2";
+ sha256 = "0h35misxrqkl5zlmmvray1bqf4ywczkm89n9qw7d9arqbg3aj3pf";
+ };
+
+ # !!! Adobe Reader contains copies of OpenSSL, libcurl, and libicu.
+ # We should probably remove those and use the regular Nixpkgs
+ # versions.
+
+ libPath = stdenv.lib.makeLibraryPath
+ [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf gdk-pixbuf-xlib ];
+
+ passthru.mozillaPlugin = "/libexec/adobe-reader/Browser/intellinux";
+
+ meta = {
+ description = "Adobe Reader, a viewer for PDF documents";
+ homepage = "http://www.adobe.com/products/reader";
+ license = stdenv.lib.licenses.unfree;
+ knownVulnerabilities = [
+ "Numerous unresolved vulnerabilities"
+ "See: https://www.cvedetails.com/product/497/Adobe-Acrobat-Reader.html?vendor_id=53"
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/airtame/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/airtame/default.nix
new file mode 100644
index 000000000000..a5c08ad3642a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/airtame/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
+, alsaLib, atk, cairo, cups, curl, dbus, expat, ffmpeg_3, fontconfig, freetype
+, gdk-pixbuf, glib, glibc, gnome2, gtk2, libX11, libXScrnSaver, libXcomposite
+, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender
+, libXtst, libopus, libpulseaudio, libxcb, nspr, nss, pango, udev, x264
+}:
+
+let libPath = lib.makeLibraryPath [
+ alsaLib atk cairo cups curl dbus expat ffmpeg_3 fontconfig freetype gdk-pixbuf
+ glib glibc gnome2.GConf gtk2 libopus nspr nss pango stdenv.cc.cc udev x264
+ libX11 libXScrnSaver libXcomposite libXcursor libXdamage libXext libXfixes
+ libXi libXrandr libXrender libXtst libpulseaudio libxcb
+];
+in stdenv.mkDerivation rec {
+ pname = "airtame";
+ version = "3.3.0";
+ longName = "${pname}-application";
+
+ src = fetchurl {
+ url = "https://downloads.airtame.com/application/ga/lin_x64/releases/${longName}-${version}.tar.gz";
+ sha256 = "16ca1vcxpka26jcrfbxpq74kcizgrm138j94bby6kzqp2swhrl76";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ desktopItem = makeDesktopItem rec {
+ name = "airtame";
+ exec = longName;
+ comment = "Airtame Streaming Client";
+ desktopName = "Airtame";
+ icon = name;
+ genericName = comment;
+ categories = "Network;";
+ };
+
+ installPhase = ''
+ opt="$out/opt/airtame"
+ mkdir -p "$opt"
+ cp -R . "$opt"
+ mkdir -p "$out/bin"
+ ln -s "$opt/${longName}" "$out/bin/"
+ mkdir -p "$out/share"
+ cp -r "${desktopItem}/share/applications" "$out/share/"
+ mkdir -p "$out/share/icons"
+ ln -s "$opt/icon.png" "$out/share/icons/airtame.png"
+
+ # Flags and rpath are copied from launch-airtame.sh.
+ vendorlib="\
+ $opt/resources/app.asar.unpacked/modules/streamer/dist/deps/airtame-modules:\
+ $opt/resources/app.asar.unpacked/encryption/out/lib:\
+ $opt/resources/deps/airtame-core/lib:\
+ $opt/resources/deps/airtame-encryption/lib"
+
+ echo $vendorlib
+
+ rpath="${libPath}:$opt:$vendorlib"
+
+ find "$opt" \( -type f -executable -o -name "*.so" -o -name "*.so.*" \) \
+ -exec patchelf --set-rpath "$rpath" {} \;
+
+ # The main binary also needs libudev which was removed by --shrink-rpath.
+ interp="$(< $NIX_CC/nix-support/dynamic-linker)"
+ patchelf --set-interpreter "$interp" $opt/${longName}
+
+ wrapProgram $opt/${longName} \
+ --prefix LD_LIBRARY_PATH=$rpath \
+ --add-flags "--disable-gpu --enable-transparent-visuals"
+ '';
+
+ dontPatchELF = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://airtame.com/download";
+ description = "Wireless streaming client for Airtame devices";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ thanegill ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/albert/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/albert/default.nix
new file mode 100644
index 000000000000..5c43d717913b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/albert/default.nix
@@ -0,0 +1,47 @@
+{ mkDerivation, lib, fetchFromGitHub, makeWrapper, qtbase,
+ qtdeclarative, qtsvg, qtx11extras, muparser, cmake, python3,
+ qtcharts }:
+
+mkDerivation rec {
+ pname = "albert";
+ version = "0.16.1";
+
+ src = fetchFromGitHub {
+ owner = "albertlauncher";
+ repo = "albert";
+ rev = "v${version}";
+ sha256 = "04sr35fqz66i24lv7r2p9qfqxs55i8xpj7aam0v9yakcr33lf55a";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+
+ buildInputs = [ qtbase qtdeclarative qtsvg qtx11extras muparser python3 qtcharts ];
+
+ enableParallelBuilding = true;
+
+ # We don't have virtualbox sdk so disable plugin
+ cmakeFlags = [ "-DBUILD_VIRTUALBOX=OFF" "-DCMAKE_INSTALL_LIBDIR=libs" ];
+
+ postPatch = ''
+ sed -i "/QStringList dirs = {/a \"$out/libs\"," \
+ src/app/main.cpp
+ '';
+
+ preBuild = ''
+ mkdir -p "$out/"
+ ln -s "$PWD/lib" "$out/lib"
+ '';
+
+ postBuild = ''
+ rm "$out/lib"
+ '';
+
+ meta = with lib; {
+ homepage = "https://albertlauncher.github.io/";
+ description = "Desktop agnostic launcher";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ ericsagnes synthetica ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/almanah/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/almanah/default.nix
new file mode 100644
index 000000000000..7d5c468ab971
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/almanah/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchurl
+, atk
+, cairo
+, desktop-file-utils
+, evolution-data-server
+, gcr
+, gettext
+, glib
+, gnome3
+, gpgme
+, gtk3
+, gtksourceview3
+, gtkspell3
+, libcryptui
+, libxml2
+, meson
+, ninja
+, pkg-config
+, python3
+, sqlite
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "almanah";
+ version = "0.12.2";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "IWYOnOu0C9uQ9k1dgWkJ6Kv+o/jY+6Llfsi4PusHE24=";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ gettext
+ libxml2
+ meson
+ ninja
+ pkg-config
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ atk
+ cairo
+ evolution-data-server
+ gcr
+ glib
+ gnome3.evolution
+ gpgme
+ gtk3
+ gtksourceview3
+ gtkspell3
+ libcryptui
+ sqlite
+ ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ versionPolicy = "none"; # it is quite odd
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Small GTK application to allow to keep a diary of your life";
+ homepage = "https://wiki.gnome.org/Apps/Almanah_Diary";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ maintainers = teams.gnome.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix
new file mode 100644
index 000000000000..49da252b6c0d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication {
+ pname = "antfs-cli";
+ version = "unstable-2017-02-11";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Tigge/antfs-cli";
+ description = "Extracts FIT files from ANT-FS based sport watches";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+
+ src = fetchFromGitHub {
+ owner = "Tigge";
+ repo = "antfs-cli";
+ rev = "85a6cc6fe6fc0ec38399f5aa30fb39177c565b52";
+ sha256 = "0v8y64kldfbs809j1g9d75dd1vxq7mfxnp4b45pz8anpxhjf64fy";
+ };
+
+ propagatedBuildInputs = [ python3Packages.openant ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ape/apeclex.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ape/apeclex.nix
new file mode 100644
index 000000000000..8accc06fac26
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ape/apeclex.nix
@@ -0,0 +1,8 @@
+{ stdenv, attemptoClex, callPackage }:
+
+callPackage ./. {
+ pname = "ape-clex";
+ lexiconPath = "${attemptoClex}/clex_lexicon.pl";
+ description = "Parser for Attempto Controlled English (ACE) with a large lexicon (~100,000 entries)";
+ license = with stdenv.lib; [ licenses.lgpl3 licenses.gpl3 ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ape/clex.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ape/clex.nix
new file mode 100644
index 000000000000..c680ffe96783
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ape/clex.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "attempto-clex";
+ version = "5133afe";
+
+ src = fetchFromGitHub {
+ owner = "Attempto";
+ repo = "Clex";
+ rev = version;
+ sha256 = "0p9s64g1jic213bwm6347jqckszgnni9szrrz31qjgaf32kf7nkp";
+ };
+
+ installPhase = ''
+ mkdir -p $out
+ cp clex_lexicon.pl $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Large lexicon for APE (~100,000 entries)";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ yrashk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ape/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ape/default.nix
new file mode 100644
index 000000000000..dda6c812c8d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ape/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, swiProlog, makeWrapper,
+ fetchFromGitHub,
+ lexiconPath ? "prolog/lexicon/clex_lexicon.pl",
+ pname ? "ape",
+ description ? "Parser for Attempto Controlled English (ACE)",
+ license ? with stdenv.lib; licenses.lgpl3
+}:
+
+stdenv.mkDerivation rec {
+ inherit pname;
+ version = "2019-08-10";
+
+ buildInputs = [ swiProlog makeWrapper ];
+
+ src = fetchFromGitHub {
+ owner = "Attempto";
+ repo = "APE";
+ rev = "113b81621262d7a395779465cb09397183e6f74c";
+ sha256 = "0xyvna2fbr18hi5yvm0zwh77q02dfna1g4g53z9mn2rmlfn2mhjh";
+ };
+
+ patchPhase = ''
+ # We move the file first to avoid "same file" error in the default case
+ cp ${lexiconPath} new_lexicon.pl
+ rm prolog/lexicon/clex_lexicon.pl
+ cp new_lexicon.pl prolog/lexicon/clex_lexicon.pl
+ '';
+
+ buildPhase = ''
+ make SHELL=${stdenv.shell} build
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ape.exe $out
+ makeWrapper $out/ape.exe $out/bin/ape --add-flags ace
+ '';
+
+ meta = with stdenv.lib; {
+ description = description;
+ license = license;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ yrashk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/appeditor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/appeditor/default.nix
new file mode 100644
index 000000000000..ab58f9237647
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/appeditor/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, vala
+, meson
+, ninja
+, pkgconfig
+, pantheon
+, python3
+, gettext
+, glib
+, gtk3
+, libgee
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "appeditor";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "donadigo";
+ repo = "appeditor";
+ rev = version;
+ sha256 = "04x2f4x4dp5ca2y3qllqjgirbyl6383pfl4bi9bkcqlg8b5081rg";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ pantheon.granite
+ libgee
+ ];
+
+ patches = [
+ # See: https://github.com/donadigo/appeditor/issues/88
+ ./fix-build-vala-0.46.patch
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Edit the Pantheon desktop application menu";
+ homepage = "https://github.com/donadigo/appeditor";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch
new file mode 100644
index 000000000000..f6c0b4cfd287
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch
@@ -0,0 +1,22 @@
+diff --git a/src/DesktopApp.vala b/src/DesktopApp.vala
+index 0e6fa47..ebcde0c 100644
+--- a/src/DesktopApp.vala
++++ b/src/DesktopApp.vala
+@@ -130,7 +130,7 @@ public class AppEditor.DesktopApp : Object {
+
+ public unowned string get_path () {
+ if (path == null) {
+- unowned string _path = info.get_string (KeyFileDesktop.KEY_PATH);
++ string _path = info.get_string (KeyFileDesktop.KEY_PATH);
+ if (_path == null) {
+ _path = "";
+ }
+@@ -150,7 +150,7 @@ public class AppEditor.DesktopApp : Object {
+ }
+
+ public bool get_should_show () {
+- return info.should_show () && !get_terminal ();
++ return info.should_show () && !get_terminal ();
+ }
+
+ public string[] get_categories () {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/apvlv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/apvlv/default.nix
new file mode 100644
index 000000000000..48efafa74fcd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/apvlv/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, pkgconfig, pcre, libxkbcommon, epoxy
+, gtk3, poppler, freetype, libpthreadstubs, libXdmcp, libxshmfence, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.1.5";
+ pname = "apvlv";
+
+ src = fetchFromGitHub {
+ owner = "naihe2010";
+ repo = "apvlv";
+ rev = "v${version}";
+ sha256 = "1n4xiic8lqnv3mqi7wpdv866gyyakax71gffv3n9427rmcld465i";
+ };
+
+ NIX_CFLAGS_COMPILE = "-I${poppler.dev}/include/poppler";
+
+ nativeBuildInputs = [
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ cmake
+ poppler pcre libxkbcommon epoxy
+ freetype gtk3
+ libpthreadstubs libXdmcp libxshmfence # otherwise warnings in compilation
+ ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/naihe2010/apvlv/commit/d432635b9c5ea6c052a2ae1fb71aedec5c4ad57a.patch";
+ sha256 = "1am8dgv2kkpqmm2vaysa61czx8ppdx94zb3c59sx88np50jpy70w";
+ })
+ (fetchpatch {
+ url = "https://github.com/naihe2010/apvlv/commit/4c7a583e8431964def482e5471f02e6de8e62a7b.patch";
+ sha256 = "1dszm120lwm90hcg5zmd4vr6pjyaxc84qmb7k0fr59mmb3qif62j";
+ })
+ # fix build with gcc7
+ (fetchpatch {
+ url = "https://github.com/naihe2010/apvlv/commit/a3a895772a27d76dab0c37643f0f4c73f9970e62.patch";
+ sha256 = "1fpc7wr1ajilvwi5gjsy5g9jcx4bl03gp5dmajg90ljqbhwz2bfi";
+ })
+ ./fix-build-with-poppler-0.73.0.patch
+ ];
+
+ installPhase = ''
+ # binary
+ mkdir -p $out/bin
+ cp src/apvlv $out/bin/apvlv
+
+ # displays pdfStartup.pdf as default pdf entry
+ mkdir -p $out/share/doc/apvlv/
+ cp ../Startup.pdf $out/share/doc/apvlv/Startup.pdf
+ cp ../main_menubar.glade $out/share/doc/apvlv/main_menubar.glade
+ ''
+ + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+ install -D ../apvlv.desktop $out/share/applications/apvlv.desktop
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://naihe2010.github.io/apvlv/";
+ description = "PDF viewer with Vim-like behaviour";
+ longDescription = ''
+ apvlv is a PDF/DJVU/UMD/TXT Viewer Under Linux/WIN32
+ with Vim-like behaviour.
+ '';
+
+ license = licenses.lgpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.ardumont ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/apvlv/fix-build-with-poppler-0.73.0.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/apvlv/fix-build-with-poppler-0.73.0.patch
new file mode 100644
index 000000000000..d2a7831dca63
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/apvlv/fix-build-with-poppler-0.73.0.patch
@@ -0,0 +1,13 @@
+diff --git a/src/ApvlvPdf.cc b/src/ApvlvPdf.cc
+index 765b112..83d133f 100644
+--- a/src/ApvlvPdf.cc
++++ b/src/ApvlvPdf.cc
+@@ -29,7 +29,7 @@
+ #include "ApvlvPdf.h"
+
+ #ifndef POPPLER_WITH_GDK
+-#include <goo/gtypes.h>
++#include <goo/gfile.h>
+
+ static void
+ copy_cairo_surface_to_pixbuf (cairo_surface_t *surface,
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/archiver/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/archiver/default.nix
new file mode 100644
index 000000000000..1691ab073610
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/archiver/default.nix
@@ -0,0 +1,29 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+ pname = "archiver";
+ version = "3.5.0";
+
+ src = fetchFromGitHub {
+ owner = "mholt";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0fdkqfs87svpijccz8m11gvby8pvmznq6fs9k94vbzak0kxhw1wg";
+ };
+
+ vendorSha256 = "0avnskay23mpl3qkyf1h75rr7szpsxis2bj5pplhwf8q8q0212xf";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=unknown" ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Easily create & extract archives, and compress & decompress files of various formats";
+ homepage = "https://github.com/mholt/archiver";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/archivy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/archivy/default.nix
new file mode 100644
index 000000000000..09779f8876f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/archivy/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, lib, python3, fetchPypi, appdirs, attrs, requests,
+beautifulsoup4, click-plugins, elasticsearch, flask_login, flask_wtf,
+pypandoc, python-dotenv, python-frontmatter, tinydb, validators,
+watchdog, wtforms }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "archivy";
+ version = "0.9.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "5cb760da57dc9dcdd62c0af824993d1715ec7035915629b4046d8bf50442756c";
+ };
+
+ # Relax some dependencies
+ postPatch = ''
+ substituteInPlace requirements.txt \
+ --replace 'validators ==' 'validators >=' \
+ --replace 'elasticsearch ==' 'elasticsearch >=' \
+ --replace 'python-dotenv ==' 'python-dotenv >=' \
+ --replace 'beautifulsoup4 ==' 'beautifulsoup4 >=' \
+ --replace 'WTForms ==' 'WTForms >=' \
+ --replace 'python_dotenv ==' 'python_dotenv >=' \
+ --replace 'attrs == 20.2.0' 'attrs' \
+ --replace 'python_frontmatter == 0.5.0' 'python_frontmatter' \
+ --replace 'requests ==' 'requests >='
+ '';
+
+ propagatedBuildInputs = [
+ appdirs
+ attrs
+ beautifulsoup4
+ click-plugins
+ elasticsearch
+ flask_login
+ flask_wtf
+ pypandoc
+ python-dotenv
+ python-frontmatter
+ tinydb
+ requests
+ validators
+ watchdog
+ wtforms
+ ];
+
+ # __init__.py attempts to mkdir in read-only file system
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Self-hosted knowledge repository";
+ homepage = "https://archivy.github.io";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/artha/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/artha/default.nix
new file mode 100644
index 000000000000..648a2cfd9945
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/artha/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, autoreconfHook, fetchurl, dbus-glib, gtk2, pkgconfig, wordnet }:
+
+stdenv.mkDerivation {
+ pname = "artha";
+ version = "1.0.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/artha/1.0.3/artha-1.0.3.tar.bz2";
+ sha256 = "0qr4ihl7ma3cq82xi1fpzvf74mm9vsg0j035xvmcp3r6rmw2fycx";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ dbus-glib gtk2 wordnet ];
+
+ patches = [
+ ./gio-underlink.patch
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An offline thesaurus based on WordNet";
+ homepage = "http://artha.sourceforge.net";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.goibhniu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/artha/gio-underlink.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/artha/gio-underlink.patch
new file mode 100644
index 000000000000..08d9c4787369
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/artha/gio-underlink.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 0236d72..bcc1182 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -38,7 +38,7 @@ artha_LDADD = libwni.a $(WORDNET_LIB)
+
+ if POSIX
+ AM_CFLAGS += @libdbus_CFLAGS@
+-artha_LDADD += -lX11 -ldbus-1 -ldbus-glib-1 -lgtk-x11-2.0 \
++artha_LDADD += -lX11 -ldbus-1 -ldbus-glib-1 -lgio-2.0 -lgtk-x11-2.0 \
+ -lgdk-x11-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0
+ else
+ artha_LDADD += @GTK_LIBS@
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix
new file mode 100644
index 000000000000..592c0938ffbd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, makeWrapper, perlPackages }:
+
+let version = "1.1";
+in stdenv.mkDerivation {
+ pname = "asciiquarium";
+ inherit version;
+ src = fetchurl {
+ url = "https://robobunny.com/projects/asciiquarium/asciiquarium_${version}.tar.gz";
+ sha256 = "0qfkr5b7sxzi973nh0h84blz2crvmf28jkkgaj3mxrr56mhwc20v";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ perlPackages.perl ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp asciiquarium $out/bin
+ chmod +x $out/bin/asciiquarium
+ wrapProgram $out/bin/asciiquarium \
+ --set PERL5LIB ${perlPackages.makeFullPerlPath [ perlPackages.TermAnimation ] }
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Enjoy the mysteries of the sea from the safety of your own terminal!";
+ homepage = "https://robobunny.com/projects/asciiquarium/html/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.utdemir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/sox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
new file mode 100644
index 000000000000..ab9242c13227
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
@@ -0,0 +1,52 @@
+{ config, lib, stdenv, fetchurl, pkgconfig, CoreAudio
+, enableAlsa ? true, alsaLib ? null
+, enableLibao ? true, libao ? null
+, enableLame ? config.sox.enableLame or false, lame ? null
+, enableLibmad ? true, libmad ? null
+, enableLibogg ? true, libogg ? null, libvorbis ? null
+, enableOpusfile ? true, opusfile ? null
+, enableFLAC ? true, flac ? null
+, enablePNG ? true, libpng ? null
+, enableLibsndfile ? true, libsndfile ? null
+, enableWavpack ? true, wavpack ? null
+# amrnb and amrwb are unfree, disabled by default
+, enableAMR ? false, amrnb ? null, amrwb ? null
+, enableLibpulseaudio ? true, libpulseaudio ? null
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ name = "sox-14.4.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/sox/${name}.tar.gz";
+ sha256 = "0v2znlxkxxcd3f48hf3dx9pq7i6fdhb62kgj7wv8xggz8f35jpxl";
+ };
+
+ # configure.ac uses pkg-config only to locate libopusfile
+ nativeBuildInputs = optional enableOpusfile pkgconfig;
+
+ buildInputs =
+ optional (enableAlsa && stdenv.isLinux) alsaLib ++
+ optional enableLibao libao ++
+ optional enableLame lame ++
+ optional enableLibmad libmad ++
+ optionals enableLibogg [ libogg libvorbis ] ++
+ optional enableOpusfile opusfile ++
+ optional enableFLAC flac ++
+ optional enablePNG libpng ++
+ optional enableLibsndfile libsndfile ++
+ optional enableWavpack wavpack ++
+ optionals enableAMR [ amrnb amrwb ] ++
+ optional enableLibpulseaudio libpulseaudio ++
+ optional (stdenv.isDarwin) CoreAudio;
+
+ meta = {
+ description = "Sample Rate Converter for audio";
+ homepage = "http://sox.sourceforge.net/";
+ maintainers = [ lib.maintainers.marcweber ];
+ license = if enableAMR then lib.licenses.unfree else lib.licenses.gpl2Plus;
+ platforms = lib.platforms.linux ++ lib.platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix
new file mode 100644
index 000000000000..59c7154fa7de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+ name = "soxr-0.1.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/soxr/${name}-Source.tar.xz";
+ sha256 = "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di";
+ };
+
+ outputs = [ "out" "doc" ]; # headers are just two and very small
+
+ preConfigure = if stdenv.isDarwin then ''
+ export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}"`pwd`/build/src
+ '' else ''
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}"`pwd`/build/src
+ '';
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = {
+ description = "An audio resampling library";
+ homepage = "http://soxr.sourceforge.net";
+ license = stdenv.lib.licenses.lgpl21Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
new file mode 100644
index 000000000000..45746a963b29
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, snack, tcl, tk, makeWrapper }:
+
+stdenv.mkDerivation {
+ name = "wavesurfer-1.8.5";
+
+ src = fetchurl {
+ url = "https://www.speech.kth.se/wavesurfer/wavesurfer-1.8.5.tar.gz";
+ sha256 = "1yx9s1j47cq0v40cwq2gn7bdizpw46l95ba4zl9z4gg31mfvm807";
+ };
+
+ buildInputs = [ snack tcl tk makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/{bin,nix-support,share/wavesurfer/}
+ mv doc $out/share/wavesurfer
+ mv * $out/nix-support
+ ln -s $out/{nix-support,bin}/wavesurfer.tcl
+ wrapProgram "$out/nix-support/wavesurfer.tcl" \
+ --set TCLLIBPATH "${snack}/lib" \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ tcl tk ]}"
+ '';
+
+ meta = {
+ description = "Tool for recording, playing, editing, viewing and labeling of audio";
+ homepage = "http://www.speech.kth.se/wavesurfer/";
+ license = stdenv.lib.licenses.bsd0;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix
new file mode 100644
index 000000000000..ebb04a30ab86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ name = "wavrsocvt-1.0.2.0";
+
+ src = fetchurl {
+ url = "http://bricxcc.sourceforge.net/wavrsocvt.tgz";
+ sha256 = "15qlvdfwbiclljj7075ycm78yzqahzrgl4ky8pymix5179acm05h";
+ };
+
+ phases = [ "unpackPhase" "installPhase" ];
+
+ unpackPhase = ''
+ tar -zxf $src
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp wavrsocvt $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Convert .wav files into sound files for Lego NXT brick";
+ longDescription = ''
+ wavrsocvt is a command-line utility which can be used from a
+ terminal window or script to convert .wav files into sound
+ files for the NXT brick (.rso files). It can also convert the
+ other direction (i.e., .rso -> .wav). It can produce RSO files
+ with a sample rate between 2000 and 16000 (the min/max range of
+ supported sample rates in the standard NXT firmware).
+ You can then upload these with e.g. nxt-python.
+ '';
+ homepage = "http://bricxcc.sourceforge.net/";
+ license = licenses.mpl11;
+ maintainers = with maintainers; [ leenaars ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix
new file mode 100644
index 000000000000..dc46edc070fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, pcsclite, qtsvg, qttools, qtwebsockets
+, qtquickcontrols2, qtgraphicaleffects }:
+
+mkDerivation rec {
+ pname = "AusweisApp2";
+ version = "1.22.0";
+
+ src = fetchFromGitHub {
+ owner = "Governikus";
+ repo = "AusweisApp2";
+ rev = version;
+ sha256 = "00isb8xcbm419nvxx2ri0n8x5d403733h2whjqjcd3hmpx3x4q1h";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [ qtsvg qttools qtwebsockets qtquickcontrols2 qtgraphicaleffects pcsclite ];
+
+ meta = with stdenv.lib; {
+ description = "Authentication software for the German ID card";
+ downloadPage = "https://github.com/Governikus/AusweisApp2/releases";
+ homepage = "https://www.ausweisapp.bund.de/ausweisapp2/";
+ license = licenses.eupl12;
+ maintainers = with maintainers; [ b4dm4n ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/autospotting/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/autospotting/default.nix
new file mode 100644
index 000000000000..f2e922e5b4d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/autospotting/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage {
+ pname = "autospotting";
+ version = "unstable-2018-11-17";
+ goPackagePath = "github.com/AutoSpotting/AutoSpotting";
+
+ src = fetchFromGitHub {
+ owner = "AutoSpotting";
+ repo = "AutoSpotting";
+ rev = "122ab8f292a2f718dd85e79ec22acd455122907e";
+ sha256 = "0p48lgig9kblxvgq1kggczkn4qdbx6ciq9c8x0179i80vl4jf7v6";
+ };
+
+ # patching path where repository used to exist
+ postPatch = ''
+ sed -i "s+github.com/cristim/autospotting/core+github.com/AutoSpotting/AutoSpotting/core+" autospotting.go
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/AutoSpotting/AutoSpotting";
+ description = "Automatically convert your existing AutoScaling groups to up to 90% cheaper spot instances with minimal configuration changes";
+ license = licenses.free;
+ maintainers = [ maintainers.costrouc ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/avrdudess/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
new file mode 100644
index 000000000000..f4a56e4f9240
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, runtimeShell, fetchurl, unzip, mono, avrdude, gtk2, xdg_utils }:
+
+stdenv.mkDerivation {
+ name = "avrdudess-2.2.20140102";
+
+ src = fetchurl {
+ url = "http://blog.zakkemble.co.uk/download/avrdudess_20140102.zip";
+ sha256 = "18llpvjsfhypzijrvfbzmcg3g141f307mzsrg11wcdxh9syxqak6";
+ };
+
+ buildInputs = [ unzip ];
+
+ phases = [ "buildPhase" ];
+
+ buildPhase = ''
+ mkdir -p "$out/avrdudess"
+ mkdir -p "$out/bin"
+
+ unzip "$src" -d "$out/avrdudess"
+
+ cat >> "$out/bin/avrdudess" << __EOF__
+ #!${runtimeShell}
+ export LD_LIBRARY_PATH="${stdenv.lib.makeLibraryPath [gtk2 mono]}"
+ # We need PATH from user env for xdg-open to find its tools, which
+ # typically depend on the currently running desktop environment.
+ export PATH="${stdenv.lib.makeBinPath [ avrdude xdg_utils ]}:\$PATH"
+
+ # avrdudess must have its resource files in its current working directory
+ cd $out/avrdudess && exec ${mono}/bin/mono "$out/avrdudess/avrdudess.exe" "\$@"
+ __EOF__
+
+ chmod a+x "$out/bin/"*
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GUI for AVRDUDE (AVR microcontroller programmer)";
+ homepage = "https://github.com/zkemble/AVRDUDESS";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix
new file mode 100644
index 000000000000..902bef5f12ec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix
@@ -0,0 +1,115 @@
+{ stdenv
+, lib
+, fetchurl
+, makeWrapper
+, libuuid
+, libunwind
+, icu
+, openssl
+, zlib
+, curl
+, at-spi2-core
+, at-spi2-atk
+, gnutar
+, atomEnv
+, kerberos
+}:
+
+# from justinwoo/azuredatastudio-nix
+# https://github.com/justinwoo/azuredatastudio-nix/blob/537c48aa3981cd1a82d5d6e508ab7e7393b3d7c8/default.nix
+
+stdenv.mkDerivation rec {
+
+ pname = "azuredatastudio";
+ version = "1.17.1";
+
+ src = fetchurl {
+ url = "https://azuredatastudiobuilds.blob.core.windows.net/releases/${version}/azuredatastudio-linux-${version}.tar.gz";
+ sha256 = "0px9n9vyjvyddca4x7d0zindd0dim7350vkjg5dd0506fm8dc38k";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ buildInputs = [
+ libuuid
+ at-spi2-core
+ at-spi2-atk
+ ];
+
+ phases = "unpackPhase fixupPhase";
+
+ # change this to azuredatastudio-insiders for insiders releases
+ edition = "azuredatastudio";
+ targetPath = "$out/${edition}";
+
+ unpackPhase = ''
+ mkdir -p ${targetPath}
+ ${gnutar}/bin/tar xf $src --strip 1 -C ${targetPath}
+ '';
+
+ sqltoolsserviceRpath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc
+ libunwind
+ libuuid
+ icu
+ openssl
+ zlib
+ curl
+ ];
+
+ # this will most likely need to be updated when azuredatastudio's version changes
+ sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/2.0.0-release.56";
+
+ rpath = stdenv.lib.concatStringsSep ":" [
+ atomEnv.libPath
+ (
+ stdenv.lib.makeLibraryPath [
+ libuuid
+ at-spi2-core
+ at-spi2-atk
+ stdenv.cc.cc.lib
+ kerberos
+ ]
+ )
+ targetPath
+ sqltoolsserviceRpath
+ ];
+
+ fixupPhase = ''
+ fix_sqltoolsservice()
+ {
+ mv ${sqltoolsservicePath}/$1 ${sqltoolsservicePath}/$1_old
+ patchelf \
+ --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
+ ${sqltoolsservicePath}/$1_old
+
+ makeWrapper \
+ ${sqltoolsservicePath}/$1_old \
+ ${sqltoolsservicePath}/$1 \
+ --set LD_LIBRARY_PATH ${sqltoolsserviceRpath}
+ }
+
+ fix_sqltoolsservice MicrosoftSqlToolsServiceLayer
+ fix_sqltoolsservice MicrosoftSqlToolsCredentials
+ fix_sqltoolsservice SqlToolsResourceProviderService
+
+ patchelf \
+ --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
+ ${targetPath}/${edition}
+
+ mkdir -p $out/bin
+ makeWrapper \
+ ${targetPath}/bin/${edition} \
+ $out/bin/azuredatastudio \
+ --set LD_LIBRARY_PATH ${rpath}
+ '';
+
+ meta = {
+ maintainers = with stdenv.lib.maintainers; [ xavierzwirtz ];
+ description = "A data management tool that enables working with SQL Server, Azure SQL DB and SQL DW";
+ homepage = "https://docs.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio";
+ license = lib.licenses.unfreeRedistributable;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/barrier/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/barrier/default.nix
new file mode 100644
index 000000000000..f08b33f09859
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/barrier/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, cmake, curl, xorg, avahi, qtbase, mkDerivation,
+ openssl, wrapGAppsHook,
+ avahiWithLibdnssdCompat ? avahi.override { withLibdnssdCompat = true; }
+}:
+
+mkDerivation rec {
+ pname = "barrier";
+ version = "2.3.3";
+
+ src = fetchFromGitHub {
+ owner = "debauchee";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "11vqkzpcjiv3pq6ps022223j6skgm1d23dj18n4a5nsf53wsvvp4";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [ curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat qtbase ];
+ nativeBuildInputs = [ cmake wrapGAppsHook ];
+
+ postFixup = ''
+ substituteInPlace "$out/share/applications/barrier.desktop" --replace "Exec=barrier" "Exec=$out/bin/barrier"
+ '';
+
+ qtWrapperArgs = [
+ ''--prefix PATH : ${stdenv.lib.makeBinPath [ openssl ]}''
+ ];
+
+ meta = {
+ description = "Open-source KVM software";
+ longDescription = ''
+ Barrier is KVM software forked from Symless's synergy 1.9 codebase.
+ Synergy was a commercialized reimplementation of the original
+ CosmoSynergy written by Chris Schoeneman.
+ '';
+ homepage = "https://github.com/debauchee/barrier";
+ downloadPage = "https://github.com/debauchee/barrier/releases";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.phryneas ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix
new file mode 100644
index 000000000000..4a023849f390
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper
+, curl, python, bind, iproute, bc, gitMinimal }:
+let
+ version = "1.23.0";
+ deps = lib.makeBinPath [
+ curl
+ python
+ bind.dnsutils
+ iproute
+ bc
+ gitMinimal
+ ];
+in
+stdenv.mkDerivation {
+ pname = "bashSnippets";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "alexanderepstein";
+ repo = "Bash-Snippets";
+ rev = "v${version}";
+ sha256 = "044nxgd3ic2qr6hgq5nymn3dyf5i4s8mv5z4az6jvwlrjnvbg8cp";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ patchPhase = ''
+ patchShebangs install.sh
+ substituteInPlace install.sh --replace /usr/local "$out"
+ '';
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p "$out"/bin "$out"/share/man/man1
+ ./install.sh all
+ for file in "$out"/bin/*; do
+ wrapProgram "$file" --prefix PATH : "${deps}"
+ done
+ '';
+
+ meta = with lib; {
+ description = "A collection of small bash scripts for heavy terminal users";
+ homepage = "https://github.com/alexanderepstein/Bash-Snippets";
+ license = licenses.mit;
+ maintainers = with maintainers; [ infinisil ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/batsignal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/batsignal/default.nix
new file mode 100644
index 000000000000..90fca4ce28ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/batsignal/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libnotify, pkg-config, glib }:
+
+stdenv.mkDerivation rec {
+ pname = "batsignal";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ owner = "electrickite";
+ repo = "batsignal";
+ rev = version;
+ sha256 = "0yc7xgwb3i4m8m9kg2xspqig3s2qgh2i9bkalvnkziayjb7y59qn";
+ };
+
+ buildInputs = [ libnotify glib ];
+ nativeBuildInputs = [ pkg-config ];
+ installFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/electrickite/batsignal";
+ description = "Lightweight battery daemon written in C";
+ license = licenses.isc;
+ maintainers = with maintainers; [ SlothOfAnarchy ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/bb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/bb/default.nix
new file mode 100644
index 000000000000..fd7eb4990f06
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/bb/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchurl, darwin, aalib, ncurses, xorg, libmikmod }:
+
+stdenv.mkDerivation rec {
+ pname = "bb";
+ version = "1.3rc1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/aa-project/bb/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1i411glxh7g4pfg4gw826lpwngi89yrbmxac8jmnsfvrfb48hgbr";
+ };
+
+ buildInputs = [
+ aalib ncurses libmikmod
+ xorg.libXau xorg.libXdmcp xorg.libX11
+ ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreAudio;
+
+ postPatch = lib.optionalString stdenv.isDarwin ''
+ sed -i -e '/^#include <malloc.h>$/d' *.c
+ '';
+
+ meta = with lib; {
+ homepage = "http://aa-project.sourceforge.net/bb";
+ description = "AA-lib demo";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.rnhmjoj ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/bemenu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/bemenu/default.nix
new file mode 100644
index 000000000000..43362b0394eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/bemenu/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, lib, fetchFromGitHub, cairo, libxkbcommon
+, pango, fribidi, harfbuzz, pcre, pkgconfig
+, ncursesSupport ? true, ncurses ? null
+, waylandSupport ? true, wayland ? null, wayland-protocols ? null
+, x11Support ? true, xlibs ? null, xorg ? null
+}:
+
+assert ncursesSupport -> ncurses != null;
+assert waylandSupport -> ! lib.elem null [wayland wayland-protocols];
+assert x11Support -> xlibs != null && xorg != null;
+
+stdenv.mkDerivation rec {
+ pname = "bemenu";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "Cloudef";
+ repo = pname;
+ rev = version;
+ sha256 = "1ifq5bk7782b9m6bl111x33fn38rpppdrww7hfavqia9a9gi2sl5";
+ };
+
+ nativeBuildInputs = [ pkgconfig pcre ];
+
+ makeFlags = ["PREFIX=$(out)"];
+
+ buildFlags = ["clients"]
+ ++ lib.optional ncursesSupport "curses"
+ ++ lib.optional waylandSupport "wayland"
+ ++ lib.optional x11Support "x11";
+
+ buildInputs = with stdenv.lib; [
+ cairo
+ fribidi
+ harfbuzz
+ libxkbcommon
+ pango
+ ] ++ optional ncursesSupport ncurses
+ ++ optionals waylandSupport [ wayland wayland-protocols ]
+ ++ optionals x11Support [
+ xlibs.libX11 xlibs.libXinerama xlibs.libXft
+ xorg.libXdmcp xorg.libpthreadstubs xorg.libxcb
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/Cloudef/bemenu";
+ description = "Dynamic menu library and client program inspired by dmenu";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ lheckemann ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/bibletime/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/bibletime/default.nix
new file mode 100644
index 000000000000..cfac79bef4bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/bibletime/default.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, stdenv, fetchurl, cmake, pkgconfig, sword, boost, clucene_core
+, qtbase, qttools, qtsvg, qtwebkit
+}:
+
+mkDerivation rec {
+
+ version = "2.11.2";
+
+ pname = "bibletime";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/bibletime/${pname}-${version}.tar.xz";
+ sha256 = "1s5bvmwbz1gyp3ml8sghpc00h8nhdvx2iyq96iri30kwx1y1jy6i";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [
+ sword boost clucene_core
+ qtbase qttools qtsvg qtwebkit
+ ];
+
+ preConfigure = ''
+ export CLUCENE_HOME=${clucene_core};
+ export SWORD_HOME=${sword};
+ '';
+
+ cmakeFlags = [ "-DUSE_QT_WEBKIT=ON" "-DCMAKE_BUILD_TYPE=Debug" ];
+
+ meta = {
+ description = "A Qt4 Bible study tool";
+ homepage = "http://www.bibletime.info/";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.piotr ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/bicon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/bicon/default.nix
new file mode 100644
index 000000000000..41b0d3c13a80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/bicon/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+ , fetchFromGitHub
+ , autoreconfHook
+ , pkg-config
+ , perl
+ , fribidi
+ , kbd
+ , xkbutils
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bicon";
+ version = "unstable-2018-09-10";
+
+ src = fetchFromGitHub {
+ owner = "behdad";
+ repo = pname;
+ rev = "38725c062a83ab19c4e4b4bc20eb9535561aa76c";
+ sha256 = "0hdslrci8pq300f3rrjsvl5psfrxdwyxf9g2m5g789sr049dksnq";
+ };
+
+ buildInputs = [ fribidi kbd xkbutils perl ];
+ nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+ preConfigure = ''
+ patchShebangs .
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A bidirectional console";
+ homepage = "https://github.com/behdad/bicon";
+ license = [ licenses.lgpl21 licenses.psfl licenses.bsd0 ];
+ maintainers = [ maintainers.linarcx ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/birdtray/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/birdtray/default.nix
new file mode 100644
index 000000000000..df12d2b9f8f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/birdtray/default.nix
@@ -0,0 +1,46 @@
+{ mkDerivation
+ , lib
+ , fetchFromGitHub
+
+ , cmake
+ , pkgconfig
+ , qtbase
+ , qttools
+ , qtx11extras
+ , qttranslations
+}:
+
+mkDerivation rec {
+ pname = "birdtray";
+ version = "1.9.0";
+
+ src = fetchFromGitHub {
+ owner = "gyunaev";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1469ng6zk0qx0qfsihrnlz1j9i1wk0hx4vqdaplz9mdpyxvmlryk";
+ };
+
+ patches = [
+ # See https://github.com/NixOS/nixpkgs/issues/86054
+ ./fix-qttranslations-path.diff
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [
+ qtbase qttools qtx11extras
+ ];
+
+ postPatch = ''
+ substituteInPlace src/birdtrayapp.cpp \
+ --subst-var-by qttranslations ${qttranslations}
+ '';
+
+ meta = with lib; {
+ description = "Mail system tray notification icon for Thunderbird";
+ homepage = "https://github.com/gyunaev/birdtray";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ Flakebi ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff b/infra/libkookie/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff
new file mode 100644
index 000000000000..2a379b5e2744
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff
@@ -0,0 +1,13 @@
+diff --git a/src/birdtrayapp.cpp b/src/birdtrayapp.cpp
+index 847b4d3..3a3709a 100644
+--- a/src/birdtrayapp.cpp
++++ b/src/birdtrayapp.cpp
+@@ -130,7 +130,7 @@ bool BirdtrayApp::loadTranslations() {
+ [](QString path) { return path.append("/translations"); });
+ QLocale locale = QLocale::system();
+ bool success = loadTranslation(
+- qtTranslator, locale, "qt", {QLibraryInfo::location(QLibraryInfo::TranslationsPath)});
++ qtTranslator, locale, "qt", {QLatin1String("@qttranslations@/translations")});
+ success &= loadTranslation(dynamicTranslator, locale, "dynamic", locations);
+ success &= loadTranslation(mainTranslator, locale, "main", locations);
+ return success;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/bleachbit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/bleachbit/default.nix
new file mode 100644
index 000000000000..3c11c7bfaf57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/bleachbit/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, python3Packages
+, fetchurl
+, gettext
+, gobject-introspection
+, wrapGAppsHook
+, glib
+, gtk3
+, libnotify
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "bleachbit";
+ version = "4.0.0";
+
+ format = "other";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
+ sha256 = "1dn3h6lr9ldbfpvgq9sdlk972sxhwalgj2f377qbqibm3yfxzpil";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ libnotify
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ chardet
+ pygobject3
+ requests
+ scandir
+ ];
+
+ # Patch the many hardcoded uses of /usr/share/ and /usr/bin
+ postPatch = ''
+ find -type f -exec sed -i -e 's@/usr/share@${placeholder "out"}/share@g' {} \;
+ find -type f -exec sed -i -e 's@/usr/bin@${placeholder "out"}/bin@g' {} \;
+ '';
+
+ dontBuild = true;
+
+ installFlags = [
+ "prefix=${placeholder "out"}"
+ ];
+
+ # prevent double wrapping from wrapGApps and wrapPythonProgram
+ dontWrapGApps = true;
+ makeWrapperArgs = [
+ ''''${gappsWrapperArgs[@]}''
+ ];
+
+ strictDeps = false;
+
+ meta = with stdenv.lib; {
+ homepage = "http://bleachbit.sourceforge.net";
+ description = "A program to clean your computer";
+ longDescription = "BleachBit helps you easily clean your computer to free space and maintain privacy.";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ leonardoce ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/blender/darwin.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/blender/darwin.patch
new file mode 100644
index 000000000000..bfbfb5e48e02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/blender/darwin.patch
@@ -0,0 +1,59 @@
+diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
+--- a/build_files/cmake/platform/platform_apple.cmake
++++ b/build_files/cmake/platform/platform_apple.cmake
+@@ -80,7 +80,6 @@ else()
+ message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
+ endif()
+ if(NOT EXISTS "${LIBDIR}/")
+- message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
+ endif()
+
+ # -------------------------------------------------------------------------
+@@ -112,10 +111,6 @@ if(WITH_CODEC_SNDFILE)
+ find_library(_sndfile_VORBIS_LIBRARY NAMES vorbis HINTS ${LIBDIR}/ffmpeg/lib)
+ find_library(_sndfile_VORBISENC_LIBRARY NAMES vorbisenc HINTS ${LIBDIR}/ffmpeg/lib)
+ list(APPEND LIBSNDFILE_LIBRARIES
+- ${_sndfile_FLAC_LIBRARY}
+- ${_sndfile_OGG_LIBRARY}
+- ${_sndfile_VORBIS_LIBRARY}
+- ${_sndfile_VORBISENC_LIBRARY}
+ )
+
+ print_found_status("SndFile libraries" "${LIBSNDFILE_LIBRARIES}")
+@@ -132,7 +127,7 @@ if(WITH_PYTHON)
+ # normally cached but not since we include them with blender
+ set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
+ set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
+- set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a)
++ set(PYTHON_LIBRARY "${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.dylib")
+ set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
+ # set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
+ else()
+@@ -173,9 +168,7 @@ endif()
+ if(WITH_CODEC_FFMPEG)
+ set(FFMPEG_FIND_COMPONENTS
+ avcodec avdevice avformat avutil
+- mp3lame ogg opus swresample swscale
+- theora theoradec theoraenc vorbis vorbisenc
+- vorbisfile vpx x264 xvidcore)
++ swresample swscale)
+ find_package(FFmpeg)
+ endif()
+
+@@ -266,7 +259,6 @@ if(WITH_BOOST)
+ endif()
+
+ if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
+- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
+ endif()
+
+ if(WITH_OPENIMAGEIO)
+@@ -439,7 +431,7 @@ else()
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic")
+ endif()
+
+-if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
++if(FALSE)
+ # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
+ endif()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/blender/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/blender/default.nix
new file mode 100644
index 000000000000..9796aef9b7cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/blender/default.nix
@@ -0,0 +1,151 @@
+{ config, stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
+, ilmbase, libXi, libX11, libXext, libXrender
+, libjpeg, libpng, libsamplerate, libsndfile
+, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimagedenoise, openimageio2, openjpeg, python3Packages
+, openvdb, libXxf86vm, tbb, alembic
+, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
+, jackaudioSupport ? false, libjack2
+, cudaSupport ? config.cudaSupport or false, cudatoolkit
+, colladaSupport ? true, opencollada
+, makeWrapper
+, pugixml, llvmPackages, SDL, Cocoa, CoreGraphics, ForceFeedback, OpenAL, OpenGL
+, embree, gmp
+}:
+
+with lib;
+
+let python = python3Packages.python; in
+
+stdenv.mkDerivation rec {
+ pname = "blender";
+ version = "2.91.0";
+
+ src = fetchurl {
+ url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
+ sha256 = "0x396lgmk0dq9115yrc36s8zwxzmjr490sr5n2y6w27y17yllyjm";
+ };
+
+ patches = lib.optional stdenv.isDarwin ./darwin.patch;
+
+ nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
+ buildInputs =
+ [ boost ffmpeg gettext glew ilmbase
+ freetype libjpeg libpng libsamplerate libsndfile libtiff
+ opencolorio openexr openimagedenoise openimageio2 openjpeg python zlib fftw jemalloc
+ alembic
+ (opensubdiv.override { inherit cudaSupport; })
+ tbb
+ makeWrapper
+ embree
+ gmp
+ ]
+ ++ (if (!stdenv.isDarwin) then [
+ libXi libX11 libXext libXrender
+ libGLU libGL openal
+ libXxf86vm
+ # OpenVDB currently doesn't build on darwin
+ openvdb
+ ]
+ else [
+ pugixml llvmPackages.openmp SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
+ ])
+ ++ optional jackaudioSupport libjack2
+ ++ optional cudaSupport cudatoolkit
+ ++ optional colladaSupport opencollada;
+
+ postPatch = ''
+ # allow usage of dynamically linked embree
+ rm build_files/cmake/Modules/FindEmbree.cmake
+ '' +
+ (if stdenv.isDarwin then ''
+ : > build_files/cmake/platform/platform_apple_xcode.cmake
+ substituteInPlace source/creator/CMakeLists.txt \
+ --replace '${"$"}{LIBDIR}/python' \
+ '${python}' \
+ --replace '${"$"}{LIBDIR}/openmp' \
+ '${llvmPackages.openmp}'
+ substituteInPlace build_files/cmake/platform/platform_apple.cmake \
+ --replace 'set(PYTHON_VERSION 3.7)' \
+ 'set(PYTHON_VERSION ${python.pythonVersion})' \
+ --replace '${"$"}{PYTHON_VERSION}m' \
+ '${"$"}{PYTHON_VERSION}' \
+ --replace '${"$"}{LIBDIR}/python' \
+ '${python}' \
+ --replace '${"$"}{LIBDIR}/opencollada' \
+ '${opencollada}' \
+ --replace '${"$"}{PYTHON_LIBPATH}/site-packages/numpy' \
+ '${python3Packages.numpy}/${python.sitePackages}/numpy'
+ '' else ''
+ substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
+ '');
+
+ cmakeFlags =
+ [
+ "-DWITH_ALEMBIC=ON"
+ "-DWITH_MOD_OCEANSIM=ON"
+ "-DWITH_CODEC_FFMPEG=ON"
+ "-DWITH_CODEC_SNDFILE=ON"
+ "-DWITH_INSTALL_PORTABLE=OFF"
+ "-DWITH_FFTW3=ON"
+ "-DWITH_SDL=OFF"
+ "-DWITH_OPENCOLORIO=ON"
+ "-DWITH_OPENSUBDIV=ON"
+ "-DPYTHON_LIBRARY=${python.libPrefix}"
+ "-DPYTHON_LIBPATH=${python}/lib"
+ "-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}"
+ "-DPYTHON_VERSION=${python.pythonVersion}"
+ "-DWITH_PYTHON_INSTALL=OFF"
+ "-DWITH_PYTHON_INSTALL_NUMPY=OFF"
+ "-DPYTHON_NUMPY_PATH=${python3Packages.numpy}/${python.sitePackages}"
+ "-DWITH_OPENVDB=ON"
+ "-DWITH_TBB=ON"
+ "-DWITH_IMAGE_OPENJPEG=ON"
+ "-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}"
+ ]
+ ++ optionals stdenv.isDarwin [
+ "-DWITH_CYCLES_OSL=OFF" # requires LLVM
+ "-DWITH_OPENVDB=OFF" # OpenVDB currently doesn't build on darwin
+
+ "-DLIBDIR=/does-not-exist"
+ ]
+ # Clang doesn't support "-export-dynamic"
+ ++ optional stdenv.cc.isClang "-DPYTHON_LINKFLAGS="
+ ++ optional jackaudioSupport "-DWITH_JACK=ON"
+ ++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON";
+
+ NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
+
+ # Since some dependencies are built with gcc 6, we need gcc 6's
+ # libstdc++ in our RPATH. Sigh.
+ NIX_LDFLAGS = optionalString cudaSupport "-rpath ${stdenv.cc.cc.lib}/lib";
+
+ enableParallelBuilding = true;
+
+ blenderExecutable =
+ placeholder "out" + (if stdenv.isDarwin then "/Blender.app/Contents/MacOS/Blender" else "/bin/blender");
+ # --python-expr is used to workaround https://developer.blender.org/T74304
+ postInstall = ''
+ wrapProgram $blenderExecutable \
+ --prefix PYTHONPATH : ${python3Packages.numpy}/${python.sitePackages} \
+ --add-flags '--python-use-system-env'
+ '';
+
+ # Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be
+ # found. See the explanation in libglvnd.
+ postFixup = optionalString cudaSupport ''
+ for program in $out/bin/blender $out/bin/.blender-wrapped; do
+ isELF "$program" || continue
+ addOpenGLRunpath "$program"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "3D Creation/Animation/Publishing System";
+ homepage = "https://www.blender.org";
+ # They comment two licenses: GPLv2 and Blender License, but they
+ # say: "We've decided to cancel the BL offering for an indefinite period."
+ license = licenses.gpl2Plus;
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ maintainers = with maintainers; [ goibhniu veprbl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/blender/fix-include.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/blender/fix-include.patch
new file mode 100644
index 000000000000..44e2147d073c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/blender/fix-include.patch
@@ -0,0 +1,12 @@
+diff --git a/intern/smoke/intern/WAVELET_NOISE.h b/intern/smoke/intern/WAVELET_NOISE.h
+index fce901b..1f73c5e 100644
+--- a/intern/smoke/intern/WAVELET_NOISE.h
++++ b/intern/smoke/intern/WAVELET_NOISE.h
+@@ -43,6 +43,7 @@
+ #ifndef WAVELET_NOISE_H
+ #define WAVELET_NOISE_H
+
++#include <string.h>
+ #include <MERSENNETWISTER.h>
+
+ #ifdef WIN32
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/blogc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/blogc/default.nix
new file mode 100644
index 000000000000..72e26191456f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/blogc/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, ronn, git, cmocka }:
+
+stdenv.mkDerivation rec {
+ pname = "blogc";
+ version = "0.20.0";
+
+ src = fetchFromGitHub {
+ owner = "blogc";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0hx0gpvmv7rd910czafvmcpxabbvfmvdyxk4d1mckmblx8prb807";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ buildInputs = [ ronn git cmocka ];
+
+ configureFlags = [
+ "--enable-git-receiver"
+ "--enable-make"
+ "--enable-runserver"
+ ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "A blog compiler";
+ license = licenses.bsd3;
+ homepage = "https://blogc.rgm.io";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sikmir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/blugon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/blugon/default.nix
new file mode 100644
index 000000000000..9aa8d3da39a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/blugon/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, python3, libX11, libXrandr }:
+
+stdenv.mkDerivation rec {
+ pname = "blugon";
+ version = "1.12.1";
+
+ src = fetchFromGitHub {
+ owner = "jumper149";
+ repo = pname;
+ rev = version;
+ sha256 = "1i67v8jxvavgax3dwvns200iwwdcvgki04liq0x64q52lg0vrh7m";
+ };
+
+ buildInputs = [ python3 libX11 libXrandr ];
+
+ # Remove at next release
+ # https://github.com/jumper149/blugon/commit/d262cd05
+ postPatch = ''
+ sed -i 's,CC = gcc,CC ?= gcc,g' backends/scg/Makefile
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Simple and configurable Blue Light Filter for X";
+ longDescription = ''
+ blugon is a simple and fast Blue Light Filter, that is highly configurable and provides a command line interface.
+ The program can be run just once or as a daemon (manually or via systemd).
+ There are several different backends available.
+ blugon calculates the screen color from your local time and configuration.
+ '';
+ license = licenses.asl20;
+ homepage = "https://github.com/jumper149/blugon";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ jumper149 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/break-time/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/break-time/default.nix
new file mode 100644
index 000000000000..4bcc4de5157d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/break-time/default.nix
@@ -0,0 +1,45 @@
+{ fetchFromGitHub
+, glib
+, gtk3
+, openssl
+, pkg-config
+, python3
+, rustPlatform
+, stdenv
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "break-time";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "cdepillabout";
+ repo = "break-time";
+ rev = "v${version}";
+ sha256 = "18p9gfp0inbnjsc7af38fghyklr7qnl2kkr25isfy9d5m8cpxqc6";
+ };
+
+ cargoSha256 = "0brmgrxhspcpcarm4lvnl95dw2n96r20w736giv18xcg7d5jmgca";
+
+ nativeBuildInputs = [
+ pkg-config
+ python3 # needed for Rust xcb package
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ openssl
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Break timer that forces you to take a break";
+ homepage = "https://github.com/cdepillabout/break-time";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ cdepillabout ];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/brewtarget/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/brewtarget/default.nix
new file mode 100644
index 000000000000..118245034500
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/brewtarget/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, bash
+, cmake
+, qtbase
+, qttools
+, qtmultimedia
+, qtwebkit
+, qtsvg
+}:
+
+mkDerivation rec {
+ pname = "brewtarget";
+ version = "2.3.1";
+
+ src = fetchFromGitHub {
+ owner = "Brewtarget";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "14xmm6f8xmvypagx4qdw8q9llzmyi9zzfhnzh4kbbflhjbcr7isz";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ qtbase qttools qtmultimedia qtwebkit qtsvg ];
+
+ preConfigure = ''
+ chmod +x configure
+ substituteInPlace configure --replace /bin/bash "${bash}/bin/bash"
+ '';
+
+ meta = with lib; {
+ description = "Open source beer recipe creation tool";
+ homepage = "http://www.brewtarget.org/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.mmahut ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/buku/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/buku/default.nix
new file mode 100644
index 000000000000..9b8f531e800e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/buku/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, python3, fetchFromGitHub }:
+
+with python3.pkgs; buildPythonApplication rec {
+ version = "4.4";
+ pname = "buku";
+
+ src = fetchFromGitHub {
+ owner = "jarun";
+ repo = "buku";
+ rev = "v${version}";
+ sha256 = "10r5f1n0vcxxmqqqsgmlvibwg1xffijrr2id6r140rgiyhprz556";
+ };
+
+ checkInputs = [
+ pytestcov
+ hypothesis
+ pytest
+ pylint
+ flake8
+ pyyaml
+ mypy-extensions
+ ];
+
+ propagatedBuildInputs = [
+ cryptography
+ beautifulsoup4
+ requests
+ urllib3
+ flask
+ flask-admin
+ flask-api
+ flask-bootstrap
+ flask-paginate
+ flask-reverse-proxy-fix
+ flask_wtf
+ arrow
+ werkzeug
+ click
+ html5lib
+ vcrpy
+ toml
+ ];
+
+ postPatch = ''
+ # Jailbreak problematic dependencies
+ sed -i \
+ -e "s,'PyYAML.*','PyYAML',g" \
+ setup.py
+ '';
+
+ preCheck = ''
+ # Fixes two tests for wrong encoding
+ export PYTHONIOENCODING=utf-8
+
+ # Disables a test which requires internet
+ substituteInPlace tests/test_bukuDb.py \
+ --replace "@pytest.mark.slowtest" "@unittest.skip('skipping')" \
+ --replace "self.assertEqual(shorturl, 'http://tny.im/yt')" "" \
+ --replace "self.assertEqual(url, 'https://www.google.com')" ""
+ substituteInPlace setup.py \
+ --replace mypy-extensions==0.4.1 mypy-extensions>=0.4.1
+ '';
+
+ postInstall = ''
+ make install PREFIX=$out
+
+ mkdir -p $out/share/zsh/site-functions $out/share/bash-completion/completions $out/share/fish/vendor_completions.d
+ cp auto-completion/zsh/* $out/share/zsh/site-functions
+ cp auto-completion/bash/* $out/share/bash-completion/completions
+ cp auto-completion/fish/* $out/share/fish/vendor_completions.d
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Private cmdline bookmark manager";
+ homepage = "https://github.com/jarun/Buku";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ matthiasbeyer infinisil ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/calcurse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/calcurse/default.nix
new file mode 100644
index 000000000000..a3cad7d9f2e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/calcurse/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, ncurses, gettext, python3, python3Packages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "calcurse";
+ version = "4.7.0";
+
+ src = fetchurl {
+ url = "https://calcurse.org/files/${pname}-${version}.tar.gz";
+ sha256 = "0dc4bka2l9z03bnlygsnl06l1zi2wbn29rkc02b13x2kdab7arpg";
+ };
+
+ buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ postInstall = ''
+ patchShebangs .
+ buildPythonPath ${python3Packages.httplib2}
+ patchPythonScript $out/bin/calcurse-caldav
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A calendar and scheduling application for the command line";
+ longDescription = ''
+ calcurse is a calendar and scheduling application for the command line. It helps
+ keep track of events, appointments and everyday tasks. A configurable notification
+ system reminds users of upcoming deadlines, the curses based interface can be
+ customized to suit user needs and a very powerful set of command line options can
+ be used to filter and format appointments, making it suitable for use in scripts.
+ '';
+ homepage = "https://calcurse.org/";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/default.nix
new file mode 100644
index 000000000000..92a491a0056f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/default.nix
@@ -0,0 +1,171 @@
+{ lib
+, mkDerivation
+, fetchurl
+, poppler_utils
+, pkgconfig
+, libpng
+, imagemagick
+, libjpeg
+, fontconfig
+, podofo
+, qtbase
+, qmake
+, icu
+, sqlite
+, hunspell
+, hyphen
+, unrarSupport ? false
+, chmlib
+, pythonPackages
+, libusb1
+, libmtp
+, xdg_utils
+, makeDesktopItem
+, removeReferencesTo
+}:
+
+mkDerivation rec {
+ pname = "calibre";
+ version = "4.23.0";
+
+ src = fetchurl {
+ url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
+ sha256 = "sha256-Ft5RRzzw4zb5RqVyUaHk9Pu6H4V/F9j8FKoTLn61lRg=";
+ };
+
+ patches = [
+ # Patches from Debian that:
+ # - disable plugin installation (very insecure)
+ ./disable_plugins.patch
+ # - switches the version update from enabled to disabled by default
+ ./no_updates_dialog.patch
+ # the unrar patch is not from debian
+ ] ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
+
+ prePatch = ''
+ sed -i "/pyqt_sip_dir/ s:=.*:= '${pythonPackages.pyqt5}/share/sip/PyQt5':" \
+ setup/build_environment.py
+
+ # Remove unneeded files and libs
+ rm -rf resources/calibre-portable.* \
+ src/odf
+ '';
+
+ dontUseQmakeConfigure = true;
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig qmake removeReferencesTo ];
+
+ CALIBRE_PY3_PORT = builtins.toString pythonPackages.isPy3k;
+
+ buildInputs = [
+ chmlib
+ fontconfig
+ hunspell
+ hyphen
+ icu
+ imagemagick
+ libjpeg
+ libmtp
+ libpng
+ libusb1
+ podofo
+ poppler_utils
+ qtbase
+ sqlite
+ xdg_utils
+ ] ++ (
+ with pythonPackages; [
+ apsw
+ beautifulsoup4
+ css-parser
+ cssselect
+ dateutil
+ dnspython
+ feedparser
+ html2text
+ html5-parser
+ lxml
+ markdown
+ mechanize
+ msgpack
+ netifaces
+ pillow
+ pyqt5
+ pyqtwebengine
+ python
+ regex
+ sip
+ # the following are distributed with calibre, but we use upstream instead
+ odfpy
+ ]
+ );
+
+ installPhase = ''
+ runHook preInstall
+
+ export HOME=$TMPDIR/fakehome
+ export POPPLER_INC_DIR=${poppler_utils.dev}/include/poppler
+ export POPPLER_LIB_DIR=${poppler_utils.out}/lib
+ export MAGICK_INC=${imagemagick.dev}/include/ImageMagick
+ export MAGICK_LIB=${imagemagick.out}/lib
+ export FC_INC_DIR=${fontconfig.dev}/include/fontconfig
+ export FC_LIB_DIR=${fontconfig.lib}/lib
+ export PODOFO_INC_DIR=${podofo.dev}/include/podofo
+ export PODOFO_LIB_DIR=${podofo.lib}/lib
+ export SIP_BIN=${pythonPackages.sip}/bin/sip
+ export XDG_DATA_HOME=$out/share
+ export XDG_UTILS_INSTALL_MODE="user"
+
+ ${pythonPackages.python.interpreter} setup.py install --root=$out \
+ --prefix=$out \
+ --libdir=$out/lib \
+ --staging-root=$out \
+ --staging-libdir=$out/lib \
+ --staging-sharedir=$out/share
+
+ PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py
+ $out/lib/calibre/calibre/ebooks/metadata/*.py
+ $out/lib/calibre/calibre/ebooks/rtf2xml/*.py"
+
+ sed -i "s/env python[0-9.]*/python/" $PYFILES
+ sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre
+
+ mkdir -p $out/share
+ cp -a man-pages $out/share/man
+
+ runHook postInstall
+ '';
+
+ # Wrap manually
+ dontWrapQtApps = true;
+ dontWrapGApps = true;
+
+ # Remove some references to shrink the closure size. This reference (as of
+ # 2018-11-06) was a single string like the following:
+ # /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-podofo-0.9.6-dev/include/podofo/base/PdfVariant.h
+ preFixup = ''
+ remove-references-to -t ${podofo.dev} \
+ $out/lib/calibre/calibre/plugins${lib.optionalString pythonPackages.isPy3k "/3"}/podofo.so
+
+ for program in $out/bin/*; do
+ wrapProgram $program \
+ ''${qtWrapperArgs[@]} \
+ ''${gappsWrapperArgs[@]} \
+ --prefix PYTHONPATH : $PYTHONPATH \
+ --prefix PATH : ${poppler_utils.out}/bin
+ done
+ '';
+
+ disallowedReferences = [ podofo.dev ];
+
+ meta = with lib; {
+ description = "Comprehensive e-book software";
+ homepage = "https://calibre-ebook.com";
+ license = with licenses; if unrarSupport then unfreeRedistributable else gpl3;
+ maintainers = with maintainers; [ domenkozar pSub AndersonTorres ];
+ platforms = platforms.linux;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch
new file mode 100644
index 000000000000..9ef1dd04251d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch
@@ -0,0 +1,17 @@
+Description: Disable plugin dialog. It uses a totally non-authenticated and non-trusted way of installing arbitrary code.
+Author: Martin Pitt <mpitt@debian.org>
+Bug-Debian: http://bugs.debian.org/640026
+
+Index: calibre-0.8.29+dfsg/src/calibre/gui2/actions/preferences.py
+===================================================================
+--- calibre-0.8.29+dfsg.orig/src/calibre/gui2/actions/preferences.py 2011-12-16 05:49:14.000000000 +0100
++++ calibre-0.8.29+dfsg/src/calibre/gui2/actions/preferences.py 2011-12-20 19:29:04.798468930 +0100
+@@ -28,8 +28,6 @@
+ pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config)
+ cm('welcome wizard', _('Run welcome wizard'),
+ icon='wizard.png', triggered=self.gui.run_wizard)
+- cm('plugin updater', _('Get plugins to enhance calibre'),
+- icon='plugins/plugin_updater.png', triggered=self.get_plugins)
+ if not DEBUG:
+ pm.addSeparator()
+ cm('restart', _('Restart in debug mode'), icon='debug.png',
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch
new file mode 100644
index 000000000000..5164b80a0bee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch
@@ -0,0 +1,12 @@
+diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py
+index 938ab24..1e095f8 100644
+--- a/src/calibre/ebooks/metadata/archive.py
++++ b/src/calibre/ebooks/metadata/archive.py
+@@ -44,7 +44,7 @@
+ description = _('Extract common e-book formats from archive files '
+ '(ZIP/RAR). Also try to autodetect if they are actually '
+ 'CBZ/CBR files.')
+- file_types = {'zip', 'rar'}
++ file_types = {'zip'}
+ supported_platforms = ['windows', 'osx', 'linux']
+ on_import = True
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch
new file mode 100644
index 000000000000..faaaf2c19949
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch
@@ -0,0 +1,15 @@
+diff -burN calibre-2.9.0.orig/src/calibre/gui2/main.py calibre-2.9.0/src/calibre/gui2/main.py
+--- calibre-2.9.0.orig/src/calibre/gui2/main.py 2014-11-09 20:09:54.081231882 +0800
++++ calibre-2.9.0/src/calibre/gui2/main.py 2014-11-09 20:15:48.193033844 +0800
+@@ -37,8 +37,9 @@
+ help=_('Start minimized to system tray.'))
+ parser.add_option('-v', '--verbose', default=0, action='count',
+ help=_('Ignored, do not use. Present only for legacy reasons'))
+- parser.add_option('--no-update-check', default=False, action='store_true',
+- help=_('Do not check for updates'))
++ parser.add_option('--update-check', dest='no_update_check', default=True,
++ action='store_false',
++ help=_('Check for updates'))
+ parser.add_option('--ignore-plugins', default=False, action='store_true',
+ help=_('Ignore custom plugins, useful if you installed a plugin'
+ ' that is preventing calibre from starting'))
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/candle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/candle/default.nix
new file mode 100644
index 000000000000..842ef2262d9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/candle/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, stdenv, fetchFromGitHub, qtbase, qtserialport, qmake }:
+
+mkDerivation rec {
+ pname = "candle";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "Denvi";
+ repo = "Candle";
+ rev = "v${version}";
+ sha256 = "1gpx08gdz8awbsj6lsczwgffp19z3q0r2fvm72a73qd9az29pmm0";
+ };
+
+ nativeBuildInputs = [ qmake ];
+
+ sourceRoot = "source/src";
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm755 Candle $out/bin/candle
+ runHook postInstall
+ '';
+
+ buildInputs = [ qtbase qtserialport ];
+
+ meta = with stdenv.lib; {
+ description = "GRBL controller application with G-Code visualizer written in Qt";
+ homepage = "https://github.com/Denvi/Candle";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ matti-kariluoma ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cardpeek/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cardpeek/default.nix
new file mode 100644
index 000000000000..83340f78dd48
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cardpeek/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook,
+ glib, gtk3, pcsclite, lua5_2, curl, readline }:
+let
+ version = "0.8.4";
+in
+ stdenv.mkDerivation {
+ pname = "cardpeek";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "L1L1";
+ repo = "cardpeek";
+ rev = "cardpeek-${version}";
+ sha256 = "1ighpl7nvcvwnsd6r5h5n9p95kclwrq99hq7bry7s53yr57l6588";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ glib gtk3 pcsclite lua5_2 curl readline ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/L1L1/cardpeek";
+ description = "A tool to read the contents of ISO7816 smart cards";
+ license = licenses.gpl3Plus;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ embr ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/build.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/build.nix
new file mode 100644
index 000000000000..1c33a92987c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/build.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchgit
+, autoreconfHook
+, glib
+, pkgconfig
+, libxml2
+, exiv2
+, imagemagick
+, version
+, sha256
+, rev }:
+
+stdenv.mkDerivation {
+ inherit version;
+ pname = "cataract";
+
+ src = fetchgit {
+ url = "git://git.bzatek.net/cataract";
+ inherit sha256 rev;
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ glib libxml2 exiv2 imagemagick ];
+
+ prePatch = ''
+ sed -i 's|#include <exiv2/exif.hpp>|#include <exiv2/exiv2.hpp>|' src/jpeg-utils.cpp
+ '';
+
+ installPhase = ''
+ mkdir $out/{bin,share} -p
+ cp src/cgg{,-dirgen} $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://cgg.bzatek.net/";
+ description = "A simple static web photo gallery, designed to be clean and easily usable";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.matthiasbeyer ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/default.nix
new file mode 100644
index 000000000000..3a9f20289227
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/default.nix
@@ -0,0 +1,8 @@
+{ callPackage }:
+
+callPackage ./build.nix {
+ version = "1.1.0";
+ rev = "675e647dc8ae918d29f520a29be9201ae85a94dd";
+ sha256 = "13b9rvcy9k2ay8w36j28kc7f4lnxp4jc0494ck3xsmwgqsawmzdj";
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/unstable.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/unstable.nix
new file mode 100644
index 000000000000..397aed355a95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cataract/unstable.nix
@@ -0,0 +1,8 @@
+{ callPackage }:
+
+callPackage ./build.nix {
+ version = "unstable-2016-10-18";
+ rev = "db3d992febbe703931840e9bdad95c43081694a5";
+ sha256 = "04f85piy675lq36w1mw6mw66n8911mmn4ifj8h9x47z8z806h3rf";
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/catclock/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/catclock/default.nix
new file mode 100644
index 000000000000..6b4ab1f3a8bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/catclock/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, xlibsWrapper, motif }:
+
+stdenv.mkDerivation {
+ name = "catclock-2015-10-04";
+
+ src = fetchFromGitHub {
+ owner = "BarkyTheDog";
+ repo = "catclock";
+ rev = "d20b8825b38477a144e8a2a4bbd4779adb3620ac";
+ sha256 = "0fiv9rj8p8mifv24cxljdrrmh357q70zmzdci9bpbxnhs1gdpr63";
+ };
+
+ preInstall = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/man/man1
+ cp xclock.man $out/share/man/man1/xclock.1
+ '';
+
+ makeFlags = [
+ "DESTINATION=$(out)/bin/"
+ ];
+
+ buildInputs = [ xlibsWrapper motif ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://codefromabove.com/2014/05/catclock/";
+ license = with licenses; mit;
+ maintainers = with maintainers; [ ramkromberg ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cbatticon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cbatticon/default.nix
new file mode 100644
index 000000000000..e7664244db7b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cbatticon/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, pkgconfig, gettext, glib, gtk3, libnotify, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "cbatticon";
+ version = "1.6.10";
+
+ src = fetchFromGitHub {
+ owner = "valr";
+ repo = pname;
+ rev = version;
+ sha256 = "0ivm2dzhsa9ir25ry418r2qg2llby9j7a6m3arbvq5c3kaj8m9jr";
+ };
+
+ nativeBuildInputs = [ pkgconfig gettext wrapGAppsHook ];
+
+ buildInputs = [ glib gtk3 libnotify ];
+
+ patchPhase = ''
+ sed -i -e 's/ -Wno-format//g' Makefile
+ '';
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ description = "Lightweight and fast battery icon that sits in the system tray";
+ homepage = "https://github.com/valr/cbatticon";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.domenkozar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/charm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/charm/default.nix
new file mode 100644
index 000000000000..becbbda8acff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/charm/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "charm";
+ version = "0.8.5";
+
+ src = fetchFromGitHub {
+ owner = "charmbracelet";
+ repo = "charm";
+ rev = "v${version}";
+ sha256 = "0cgl5dpyzc4lciij9q9yghppiclrdnrl1jsbizfgh2an3s18ab8k";
+ };
+
+ vendorSha256 = "1spzawnk2fslc1m14dp8lx4vpnxwz7xgm1hxbpz4bqlqz1hfd6ax";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=" "-X=main.Version=${version}" ];
+
+ meta = with lib; {
+ description = "Manage your charm account on the CLI";
+ homepage = "https://github.com/charmbracelet/charm";
+ license = licenses.mit;
+ maintainers = with maintainers; [ penguwin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cheat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cheat/default.nix
new file mode 100644
index 000000000000..208c9c533137
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cheat/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub
+, buildGoModule, installShellFiles }:
+
+buildGoModule rec {
+ pname = "cheat";
+ version = "4.2.0";
+
+ src = fetchFromGitHub {
+ owner = "cheat";
+ repo = "cheat";
+ rev = version;
+ sha256 = "sha256-Q/frWu82gB15LEzwYCbJr7k0yZ+AXBvcPWxoevSpeqU=";
+ };
+
+ subPackages = [ "cmd/cheat" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ installManPage doc/cheat.1
+ installShellCompletion scripts/cheat.{bash,fish,zsh}
+ '';
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Create and view interactive cheatsheets on the command-line";
+ maintainers = with maintainers; [ mic92 ];
+ license = with licenses; [ gpl3 mit ];
+ inherit (src.meta) homepage;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cherrytree/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
new file mode 100644
index 000000000000..c74ac5ffb306
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchFromGitHub, pythonPackages, gettext }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "cherrytree";
+ version = "0.39.4";
+
+ src = fetchFromGitHub {
+ owner = "giuspen";
+ repo = "cherrytree";
+ rev = version;
+ sha256 = "1wycgn1f3b858qb6kn2bsaabak8n52qkpd24w54xz6fjizlnw7x0";
+
+ };
+
+ nativeBuildInputs = [ gettext ];
+
+ propagatedBuildInputs = with pythonPackages; [ pygtk dbus-python pygtksourceview ];
+
+ patches = [ ./subprocess.patch ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "An hierarchical note taking application";
+ longDescription = ''
+ Cherrytree is an hierarchical note taking application, featuring rich
+ text, syntax highlighting and powerful search capabilities. It organizes
+ all information in units called "nodes", as in a tree, and can be very
+ useful to store any piece of information, from tables and links to
+ pictures and even entire documents. All those little bits of information
+ you have scattered around your hard drive can be conveniently placed into
+ a Cherrytree document where you can easily find it.
+ '';
+ homepage = "http://www.giuspen.com/cherrytree";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cherrytree/subprocess.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/cherrytree/subprocess.patch
new file mode 100644
index 000000000000..1f80cde03b75
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cherrytree/subprocess.patch
@@ -0,0 +1,14 @@
+diff -Naur cherrytree-0.37.1-orig/setup.py cherrytree-0.37.1/setup.py
+--- cherrytree-0.37.1-orig/setup.py 2016-01-08 20:50:50.000000000 +0100
++++ cherrytree-0.37.1/setup.py 2016-07-05 20:30:27.768178682 +0200
+@@ -205,4 +205,9 @@
+ },
+ distclass=CherryTreeDist
+ )
+- subprocess.call("update-desktop-database")
++ try:
++ subprocess.check_call(['update-desktop-database'])
++ except subprocess.CalledProcessError:
++ pass # handle errors in the called executable
++ except OSError:
++ pass # executable not found
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix
new file mode 100644
index 000000000000..3a89773b8587
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, libchewing, qtbase
+, qttools }:
+
+mkDerivation rec {
+ pname = "chewing-editor";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "chewing";
+ repo = pname;
+ rev = version;
+ sha256 = "0kc2hjx1gplm3s3p1r5sn0cyxw3k1q4gyv08q9r6rs4sg7xh2w7w";
+ };
+
+ doCheck = true;
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ libchewing qtbase qttools ];
+
+ meta = with stdenv.lib; {
+ description = "Cross platform chewing user phrase editor";
+ longDescription = ''
+ chewing-editor is a cross platform chewing user phrase editor. It provides a easy way to manage user phrase. With it, user can customize their user phrase to increase input performance.
+ '';
+ homepage = "https://github.com/chewing/chewing-editor";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.ShamrockLee ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cipher/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cipher/default.nix
new file mode 100644
index 000000000000..630519ff2bff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cipher/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, vala
+, pkgconfig
+, pantheon
+, python3
+, gettext
+, glib
+, gtk3
+, libgee
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "cipher";
+ version = "2.5.0";
+
+ src = fetchFromGitHub {
+ owner = "arshubham";
+ repo = "cipher";
+ rev = version;
+ sha256 = "00azc5ck17zkdypfza6x1viknwhimd9fqgk2ybff3mx6aphmla7a";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ pantheon.granite
+ libgee
+ ];
+
+ postPatch = ''
+ substituteInPlace data/com.github.arshubham.cipher.desktop.in \
+ --replace "gio" "${glib.bin}/bin/gio"
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "A simple application for encoding and decoding text, designed for elementary OS";
+ homepage = "https://github.com/arshubham/cipher";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
new file mode 100644
index 000000000000..57b3f906cabf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, cmake, fftw, ncurses5, libpulseaudio, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ version = "1.8";
+ pname = "cli-visualizer";
+
+ src = fetchFromGitHub {
+ owner = "dpayne";
+ repo = "cli-visualizer";
+ rev = "v${version}";
+ sha256 = "003mbbwsz43mg3d7llphpypqa9g7rs1p1cdbqi1mbc2bfrc1gcq2";
+ };
+
+ postPatch = ''
+ sed '1i#include <cmath>' -i src/Transformer/SpectrumCircleTransformer.cpp
+ '';
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ fftw ncurses5 libpulseaudio makeWrapper ];
+
+ buildFlags = [ "ENABLE_PULSE=1" ];
+
+ postInstall = ''
+ # See https://github.com/dpayne/cli-visualizer/issues/62#issuecomment-330738075
+ wrapProgram $out/bin/vis --set TERM rxvt-256color
+ '';
+
+ meta = {
+ homepage = "https://github.com/dpayne/cli-visualizer";
+ description = "CLI based audio visualizer";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/clight/clightd.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/clight/clightd.nix
new file mode 100644
index 000000000000..e1f019ffa455
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/clight/clightd.nix
@@ -0,0 +1,75 @@
+{ lib, stdenv, fetchFromGitHub
+, dbus, cmake, pkgconfig
+, glib, udev, polkit, libmodule
+, pcre, libXdmcp, util-linux, libpthreadstubs
+, enableDdc ? true, ddcutil
+, enableDpms ? true, libXext
+, enableGamma ? true, libXrandr
+, enableScreen ? true }:
+
+stdenv.mkDerivation rec {
+ pname = "clightd";
+ version = "4.2";
+
+ src = fetchFromGitHub {
+ owner = "FedeDP";
+ repo = "Clightd";
+ rev = version;
+ sha256 = "07z1m1x7nnczd51sg7m2lb6rb2c37c8glsnbrlq44hx176sj9cmj";
+ };
+
+ # dbus-1.pc has datadir=/etc
+ SYSTEM_BUS_DIR = "${placeholder "out"}/share/dbus-1/system-services";
+ # systemd.pc has prefix=${systemd.out}
+ MODULE_LOAD_DIR = "${placeholder "out"}/lib/modules-load.d";
+ # polkit-gobject-1.pc has prefix=${polkit.out}
+ POLKIT_ACTION_DIR = "${placeholder "out"}/share/polkit-1/actions";
+
+ postPatch = ''
+ sed -i "s@/etc@$out\0@" CMakeLists.txt
+ sed -i "s@pkg_get_variable(SYSTEM_BUS_DIR.*@set(SYSTEM_BUS_DIR $SYSTEM_BUS_DIR)@" CMakeLists.txt
+ sed -i "s@pkg_get_variable(MODULE_LOAD_DIR.*@set(MODULE_LOAD_DIR $MODULE_LOAD_DIR)@" CMakeLists.txt
+ sed -i "s@pkg_get_variable(POLKIT_ACTION_DIR.*@set(POLKIT_ACTION_DIR $POLKIT_ACTION_DIR)@" CMakeLists.txt
+ '';
+
+ cmakeFlags = with lib;
+ optional enableDdc "-DENABLE_DDC=1"
+ ++ optional enableDpms "-DENABLE_DPMS=1"
+ ++ optional enableGamma "-DENABLE_GAMMA=1"
+ ++ optional enableScreen "-DENABLE_SCREEN=1";
+
+ nativeBuildInputs = [
+ dbus
+ cmake
+ pkgconfig
+ ];
+
+ buildInputs = with lib; [
+ glib
+ udev
+ polkit
+ libmodule
+
+ pcre
+ libXdmcp
+ util-linux
+ libpthreadstubs
+ ] ++ optional enableDdc ddcutil
+ ++ optional enableDpms libXext
+ ++ optional enableGamma libXrandr;
+
+ postInstall = ''
+ mkdir -p $out/bin
+ ln -svT $out/lib/clightd/clightd $out/bin/clightd
+ '';
+
+ meta = with lib; {
+ description = "Linux bus interface that changes screen brightness/temperature";
+ homepage = "https://github.com/FedeDP/Clightd";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [
+ eadwu
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/clight/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/clight/default.nix
new file mode 100644
index 000000000000..2502459af106
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/clight/default.nix
@@ -0,0 +1,58 @@
+{ lib, stdenv, fetchFromGitHub
+, dbus, cmake, pkgconfig, bash-completion
+, gsl, popt, clightd, systemd, libconfig, libmodule
+, withGeoclue ? true, geoclue2
+, withUpower ? true, upower }:
+
+stdenv.mkDerivation rec {
+ pname = "clight";
+ version = "4.1";
+
+ src = fetchFromGitHub {
+ owner = "FedeDP";
+ repo = "Clight";
+ rev = version;
+ sha256 = "1j7va217g1k8lxl3lly13js8myf0shjc6knalq8q6lakc6j1mkxx";
+ };
+
+ # bash-completion.pc completionsdir=${bash-completion.out}
+ COMPLETIONS_DIR = "${placeholder "out"}/share/bash-completions/completions";
+ # dbus-1.pc has datadir=/etc
+ SESSION_BUS_DIR = "${placeholder "out"}/share/dbus-1/services";
+
+ postPatch = ''
+ sed -i "s@/usr@$out@" CMakeLists.txt
+ sed -i "s@/etc@$out\0@" CMakeLists.txt
+ sed -i "s@pkg_get_variable(COMPLETIONS_DIR.*@set(COMPLETIONS_DIR $COMPLETIONS_DIR)@" CMakeLists.txt
+ sed -i "s@pkg_get_variable(SESSION_BUS_DIR.*@set(SESSION_BUS_DIR $SESSION_BUS_DIR)@" CMakeLists.txt
+ '';
+
+ nativeBuildInputs = [
+ dbus
+ cmake
+ pkgconfig
+ bash-completion
+ ];
+
+ buildInputs = with lib; [
+ gsl
+ popt
+ upower
+ clightd
+ systemd
+ geoclue2
+ libconfig
+ libmodule
+ ] ++ optional withGeoclue geoclue2
+ ++ optional withUpower upower;
+
+ meta = with lib; {
+ description = "A C daemon that turns your webcam into a light sensor";
+ homepage = "https://github.com/FedeDP/Clight";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [
+ eadwu
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/clipcat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/clipcat/default.nix
new file mode 100644
index 000000000000..244770e138f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/clipcat/default.nix
@@ -0,0 +1,64 @@
+{ lib, fetchFromGitHub, installShellFiles, rustPlatform, rustfmt, xorg
+, pkgconfig, llvmPackages, clang, protobuf, python3 }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "clipcat";
+ version = "0.4.19";
+
+ src = fetchFromGitHub {
+ owner = "xrelkd";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1lhnm521qqy3aw2iyk1dv4yc5ms0c5x5iipx96bz6v6y0cnmf4kw";
+ };
+
+ cargoSha256 = "04iflyvz8g53z658rkxafiyi2m9kzxwl3p1xgkjq7vacmz5jk15c";
+
+ LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+ # needed for internal protobuf c wrapper library
+ PROTOC = "${protobuf}/bin/protoc";
+ PROTOC_INCLUDE = "${protobuf}/include";
+
+ nativeBuildInputs = [
+ pkgconfig
+
+ clang
+ llvmPackages.libclang
+
+ rustfmt
+ protobuf
+
+ python3
+
+ installShellFiles
+ ];
+ buildInputs = [ xorg.libxcb ];
+
+ cargoBuildFlags = [ "--features=all" ];
+
+ postInstall = ''
+ installShellCompletion --bash --name clipcatd completions/bash-completion/completions/clipcatd
+ installShellCompletion --fish --name clipcatd.fish completions/fish/completions/clipcatd.fish
+ installShellCompletion --zsh --name _clipcatd completions/zsh/site-functions/_clipcatd
+
+ installShellCompletion --bash --name clipcatctl completions/bash-completion/completions/clipcatctl
+ installShellCompletion --fish --name clipcatctl.fish completions/fish/completions/clipcatctl.fish
+ installShellCompletion --zsh --name _clipcatctl completions/zsh/site-functions/_clipcatctl
+
+ installShellCompletion --bash --name clipcat-menu completions/bash-completion/completions/clipcat-menu
+ installShellCompletion --fish --name clipcat-menu.fish completions/fish/completions/clipcat-menu.fish
+ installShellCompletion --zsh --name _clipcat-menu completions/zsh/site-functions/_clipcat-menu
+
+ installShellCompletion --bash --name clipcat-notify completions/bash-completion/completions/clipcat-notify
+ installShellCompletion --fish --name clipcat-notify.fish completions/fish/completions/clipcat-notify.fish
+ installShellCompletion --zsh --name _clipcat-notify completions/zsh/site-functions/_clipcat-notify
+ '';
+
+ meta = with lib; {
+ description = "Clipboard Manager written in Rust Programming Language";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ xrelkd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/clipit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/clipit/default.nix
new file mode 100644
index 000000000000..cc6d7d29fcd4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/clipit/default.nix
@@ -0,0 +1,35 @@
+{ fetchFromGitHub, fetchpatch, stdenv
+, autoreconfHook, intltool, pkgconfig
+, gtk3, libayatana-appindicator, xdotool, which, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "clipit";
+ version = "1.4.5";
+
+ src = fetchFromGitHub {
+ owner = "CristianHenzel";
+ repo = "ClipIt";
+ rev = "45e2ea386d04dbfc411ea370299502450d589d0c";
+ sha256 = "0byqz9hanwmdc7i55xszdby2iqrk93lws7hmjda2kv17g34apwl7";
+ };
+
+ preConfigure = ''
+ intltoolize --copy --force --automake
+ '';
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook autoreconfHook intltool ];
+ configureFlags = [ "--with-gtk3" "--enable-appindicator=yes" ];
+ buildInputs = [ gtk3 libayatana-appindicator ];
+
+ gappsWrapperArgs = [
+ "--prefix" "PATH" ":" "${stdenv.lib.makeBinPath [ xdotool which ]}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Lightweight GTK Clipboard Manager";
+ inherit (src.meta) homepage;
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ kamilchm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/clipmenu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
new file mode 100644
index 000000000000..3227792d6a2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
@@ -0,0 +1,39 @@
+{ clipnotify, makeWrapper, xsel, dmenu, util-linux, gawk, stdenv, fetchFromGitHub, fetchpatch, lib }:
+let
+ runtimePath = lib.makeBinPath [ clipnotify xsel dmenu util-linux gawk ];
+in
+stdenv.mkDerivation rec {
+ pname = "clipmenu";
+ version = "6.1.0";
+
+ src = fetchFromGitHub {
+ owner = "cdown";
+ repo = "clipmenu";
+ rev = version;
+ sha256 = "0ddj5xcwrdb2qvrndvhv8j6swcqc8dvv5i00pqk35rfk5mrl4hwv";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/cdown/clipmenu/commit/443b58583ef216e2405e4a38d401f7c36386d21e.patch";
+ sha256 = "12m4rpw7jbr31c919llbsmn8dcf7yh9aijln4iym6h2lylzqzzdz";
+ })
+ ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+ buildInputs = [ makeWrapper ];
+ nativeBuildInputs = [ xsel clipnotify ];
+
+ installPhase = ''
+ for bin in $out/bin/*; do
+ wrapProgram "$bin" --prefix PATH : "${runtimePath}"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Clipboard management using dmenu";
+ inherit (src.meta) homepage;
+ maintainers = with maintainers; [ jb55 ];
+ license = licenses.publicDomain;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cmatrix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cmatrix/default.nix
new file mode 100644
index 000000000000..fa0e10f9eef8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cmatrix/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "cmatrix";
+ version = "2.0";
+
+ src = fetchFromGitHub {
+ owner = "abishekvashok";
+ repo = "cmatrix";
+ rev = "v${version}";
+ sha256 = "1h9jz4m4s5l8c3figaq46ja0km1gimrkfxm4dg7mf4s84icmasbm";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ description = "Simulates the falling characters theme from The Matrix movie";
+ license = licenses.gpl3;
+ longDescription = ''
+ CMatrix simulates the display from "The Matrix" and is based
+ on the screensaver from the movie's website.
+ '';
+ homepage = "https://github.com/abishekvashok/cmatrix";
+ platforms = ncurses.meta.platforms;
+ maintainers = [ maintainers.AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cointop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cointop/default.nix
new file mode 100644
index 000000000000..e57ffd352717
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cointop/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "cointop";
+ version = "1.5.5";
+
+ src = fetchFromGitHub {
+ owner = "miguelmota";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "051jxa07c58ym1w0mwckwxh60v28gqcpqw5nv8sm5wxil1crcayr";
+ };
+
+ goPackagePath = "github.com/miguelmota/cointop";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/cointop.version=${version}" ];
+
+ meta = with lib; {
+ description = "The fastest and most interactive terminal based UI application for tracking cryptocurrencies";
+ longDescription = ''
+ cointop is a fast and lightweight interactive terminal based UI
+ application for tracking and monitoring cryptocurrency coin stats in
+ real-time.
+
+ The interface is inspired by htop and shortcut keys are inspired by vim.
+ '';
+ homepage = "https://cointop.sh";
+ maintainers = [ maintainers.marsam ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/colort/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/colort/default.nix
new file mode 100644
index 000000000000..1eda11890e79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/colort/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ name = "colort-unstable-2017-03-12";
+
+ src = fetchFromGitHub {
+ owner = "neeasade";
+ repo = "colort";
+ rev = "8470190706f358dc807b4c26ec3453db7f0306b6";
+ sha256 = "10n8rbr2h6hz86hcx73f86pjbbfiaw2rvxsk0yfajnma7bpxgdxw";
+ };
+
+ makeFlags = ["PREFIX=$(out)"];
+
+ meta = with stdenv.lib; {
+ description = "A program for 'tinting' color values";
+ homepage = "https://github.com/neeasade/colort";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.neeasade ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/confclerk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/confclerk/default.nix
new file mode 100644
index 000000000000..bb1aacc2069b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/confclerk/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, qt4, qmake4Hook }:
+
+let version = "0.6.4"; in
+stdenv.mkDerivation {
+ pname = "confclerk";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://www.toastfreeware.priv.at/tarballs/confclerk/confclerk-${version}.tar.gz";
+ sha256 = "10rhg44px4nvbkd3p341cmp2ds43jn8r4rvgladda9v8zmsgr2b3";
+ };
+
+ buildInputs = [ qt4 ];
+
+ nativeBuildInputs = [ qmake4Hook ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp src/bin/confclerk $out/bin
+ '';
+
+ meta = {
+ description = "Offline conference schedule viewer";
+ homepage = "http://www.toastfreeware.priv.at/confclerk";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ ehmry ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/coolreader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/coolreader/default.nix
new file mode 100644
index 000000000000..d3f3eb6fcf5a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/coolreader/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, fetchFromGitHub, cmake, pkg-config, lib,
+ qttools, fribidi, libunibreak }:
+
+mkDerivation rec {
+ pname = "coolreader";
+ version = "3.2.49";
+
+ src = fetchFromGitHub {
+ owner = "buggins";
+ repo = pname;
+ rev = "cr${version}";
+ sha256 = "10i3w4zjlilz3smjzbwm50d91ns3w0wlgmsf38fn2lv76zczv8ia";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+
+ buildInputs = [ qttools fribidi libunibreak ];
+
+ meta = with lib; {
+ homepage = "https://github.com/buggins/coolreader";
+ description = "Cross platform open source e-book reader";
+ license = licenses.gpl2Plus; # see https://github.com/buggins/coolreader/issues/80
+ maintainers = with maintainers; [ gebner ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/copyq/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/copyq/default.nix
new file mode 100644
index 000000000000..de1dacd50c2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/copyq/default.nix
@@ -0,0 +1,32 @@
+{ lib, mkDerivation, fetchFromGitHub, cmake
+, qtbase, qtscript, qtwebkit, libXfixes, libXtst, qtx11extras, git
+, webkitSupport ? true
+}:
+
+mkDerivation rec {
+ pname = "CopyQ";
+ version = "3.13.0";
+
+ src = fetchFromGitHub {
+ owner = "hluk";
+ repo = "CopyQ";
+ rev = "v${version}";
+ sha256 = "0qssyavx0dkgsyj2myqg8n7sih8niy960nyb1yknsbjm37iqraah";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ git qtbase qtscript libXfixes libXtst qtx11extras
+ ] ++ lib.optional webkitSupport qtwebkit;
+
+ meta = with lib; {
+ homepage = "https://hluk.github.io/CopyQ";
+ description = "Clipboard Manager with Advanced Features";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.willtim ];
+ # NOTE: CopyQ supports windows and osx, but I cannot test these.
+ # OSX build requires QT5.
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/corectrl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/corectrl/default.nix
new file mode 100644
index 000000000000..090a63a32e4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/corectrl/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchFromGitLab
+, extra-cmake-modules
+, botan2
+, karchive
+, kauth
+, libdrm
+, mesa-demos
+, procps
+, util-linux
+, vulkan-tools
+, qtbase
+, qtcharts
+, qtquickcontrols2
+, qtsvg
+, qttools
+, qtxmlpatterns
+, wrapQtAppsHook
+} :
+
+stdenv.mkDerivation rec{
+ pname = "corectrl";
+ version = "1.1.1";
+
+ src = fetchFromGitLab {
+ owner = "corectrl";
+ repo = "corectrl";
+ rev = "v${version}";
+ sha256 = "sha256-YQDrxPqCa3OzNKd3UiAffqqvOrgbXmDFJGjYPetolyY=";
+ };
+
+ nativeBuildInputs = [
+ extra-cmake-modules
+ wrapQtAppsHook
+ ];
+ buildInputs = [
+ botan2
+ karchive
+ kauth
+ libdrm
+ mesa-demos
+ procps
+ util-linux
+ vulkan-tools
+ qtbase
+ qtcharts
+ qtquickcontrols2
+ qtsvg
+ qttools
+ qtxmlpatterns
+ ];
+
+ runtimeDeps = [ mesa-demos vulkan-tools ];
+ binPath = stdenv.lib.makeBinPath runtimeDeps;
+
+ dontWrapQtApps = true;
+
+ postInstall = ''
+ wrapQtApp $out/bin/corectrl --prefix PATH ":" ${binPath}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.com/corectrl/corectrl/";
+ description = "Control your computer hardware via application profiles";
+ longDescription = ''
+ CoreCtrl is a Free and Open Source GNU/Linux application that allows you
+ to control with ease your computer hardware using application profiles. It
+ aims to be flexible, comfortable and accessible to regular users.
+ '';
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
+# TODO: report upstream that libdrm is not detected at configure time
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix
new file mode 100644
index 000000000000..bbb7c53b61f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, glibcLocales, pandoc, python3 }:
+
+let
+ pythonPackages = python3.pkgs;
+
+in pythonPackages.buildPythonApplication rec {
+ pname = "coursera-dl";
+ version = "0.11.5";
+
+ src = fetchFromGitHub {
+ owner = "coursera-dl";
+ repo = "coursera-dl";
+ rev = version;
+ sha256 = "0akgwzrsx094jj30n4bd2ilwgva4qxx38v3bgm69iqfxi8c2bqbk";
+ };
+
+ nativeBuildInputs = with pythonPackages; [ pandoc ];
+
+ buildInputs = with pythonPackages; [ glibcLocales ];
+
+ propagatedBuildInputs = with pythonPackages; [ attrs beautifulsoup4 ConfigArgParse keyring pyasn1 requests six urllib3 ];
+
+ checkInputs = with pythonPackages; [ pytest mock ];
+
+ postPatch = ''
+ substituteInPlace requirements.txt \
+ --replace '==' '>='
+ '';
+
+ preConfigure = ''
+ export LC_ALL=en_US.utf-8
+ '';
+
+ checkPhase = ''
+ # requires dbus service
+ py.test -k 'not test_get_credentials_with_keyring' .
+ '';
+
+ meta = with stdenv.lib; {
+ description = "CLI for downloading Coursera.org videos and naming them";
+ homepage = "https://github.com/coursera-dl/coursera-dl";
+ license = licenses.lgpl3Plus;
+ maintainers = with maintainers; [ alexfmpe ];
+ platforms = platforms.darwin ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cpu-x/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cpu-x/default.nix
new file mode 100644
index 000000000000..a92ca30c5d80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cpu-x/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, gtk3, ncurses
+, libcpuid, pciutils, procps, wrapGAppsHook, nasm, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "cpu-x";
+ version = "4.0.1";
+
+ src = fetchFromGitHub {
+ owner = "X0rg";
+ repo = "CPU-X";
+ rev = "v${version}";
+ sha256 = "191zkkswlbbsw492yygc3idf7wh3bxs97drrqvqqw0mqvrzykxm3";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook nasm makeWrapper ];
+ buildInputs = [
+ gtk3 ncurses libcpuid pciutils procps
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/cpu-x \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ stdenv.cc ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Free software that gathers information on CPU, motherboard and more";
+ homepage = src.meta.homepage;
+ license = licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ gnidorah ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/crumbs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/crumbs/default.nix
new file mode 100644
index 000000000000..889c17e6988d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/crumbs/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "crumbs";
+ version = "0.0.3";
+
+ src = fetchFromGitHub
+ { owner = "fasseg";
+ repo = "crumbs";
+ rev = version;
+ sha256 = "0jjvydn4i4n9xv8vsal2jxpa95mk2lw6myv0gx9wih242k9vy0l7";
+ };
+
+ prePatch = ''
+ sed -i 's|gfind|find|' crumbs-completion.fish
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/bash-completion/completions
+ mkdir -p $out/share/fish/vendor_completions.d
+
+ cp crumbs-completion.bash $out/share/bash-completion/completions/crumbs
+ cp crumbs-completion.fish $out/share/fish/vendor_completions.d/crumbs.fish
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Bookmarks for the command line";
+ homepage = "https://github.com/fasseg/crumbs";
+ license = licenses.wtfpl;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ thesola10 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ctodo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ctodo/default.nix
new file mode 100644
index 000000000000..602fe4308160
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ctodo/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, cmake, fetchurl, ncurses, readline }:
+
+stdenv.mkDerivation rec {
+ pname = "ctodo";
+ version = "1.3";
+
+ src = fetchurl {
+ url = "https://github.com/Acolarh/ctodo/archive/v${version}.tar.gz";
+ sha256 = "1k3raigcgpwa0h8zkv5x9rycnn2iqkb9qim4q9ydqy9wbv3m32jb";
+ };
+
+ buildInputs = [ stdenv cmake ncurses readline ];
+
+ configurePhase = ''
+ cmake -DCMAKE_INSTALL_PREFIX=$out .
+ '';
+
+ meta = {
+ homepage = "http://ctodo.apakoh.dk/";
+ description = "A simple ncurses-based task list manager";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cum/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cum/default.nix
new file mode 100644
index 000000000000..2675a5f4fc5d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cum/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, python3Packages }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "cum";
+ version = "0.9.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "15qc6agka2g3kcnpnz0hbjic1s3260cr9bda0rlcyninxs1vndq0";
+ };
+
+ propagatedBuildInputs = [
+ alembic beautifulsoup4 click natsort requests sqlalchemy
+ ];
+
+ # tests seem to fail for `config` not being defined,
+ # but it works once installed
+ doCheck = false;
+
+ # remove the top-level `tests` and `LICENSE` file
+ # they should not be installed, and there can be issues if another package
+ # has a collision (especially with the license file)
+ postInstall = ''
+ rm -rf $out/tests $out/LICENSE
+ '';
+
+ meta = with stdenv.lib; {
+ description = "comic updater, mangafied";
+ homepage = "https://github.com/Hamuko/cum";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ tadeokondrak ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/default.nix
new file mode 100644
index 000000000000..46143747f6d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/default.nix
@@ -0,0 +1,65 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase,
+ qtquickcontrols2, qtgraphicaleffects, curaengine, plugins ? [] }:
+
+mkDerivation rec {
+ pname = "cura";
+ version = "4.8.0";
+
+ src = fetchFromGitHub {
+ owner = "Ultimaker";
+ repo = "Cura";
+ rev = version;
+ sha256 = "060fqzspipm93ks0inrj7yrj5wmvkdfv8xaxrv22590yb9f95s9m";
+ };
+
+ materials = fetchFromGitHub {
+ owner = "Ultimaker";
+ repo = "fdm_materials";
+ rev = version;
+ sha256 = "0hi9w1fsnazlr0vvxdr3alsdb8m1vjjfp5zhmlz4kyyxhsy3bc33";
+ };
+
+ buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ];
+ propagatedBuildInputs = with python3.pkgs; [
+ libsavitar numpy-stl pyserial requests uranium zeroconf pynest2d
+ sentry-sdk trimesh
+ ] ++ plugins;
+ nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
+
+ cmakeFlags = [
+ "-DURANIUM_DIR=${python3.pkgs.uranium.src}"
+ "-DCURA_VERSION=${version}"
+ ];
+
+ makeWrapperArgs = [
+ # hacky workaround for https://github.com/NixOS/nixpkgs/issues/59901
+ "--set OMP_NUM_THREADS 1"
+ ];
+
+ postPatch = ''
+ sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
+ sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/cura/resources/materials
+ cp ${materials}/*.fdm_material $out/share/cura/resources/materials/
+ mkdir -p $out/lib/cura/plugins
+ for plugin in ${toString plugins}; do
+ ln -s $plugin/lib/cura/plugins/* $out/lib/cura/plugins
+ done
+ '';
+
+ postFixup = ''
+ wrapPythonPrograms
+ wrapQtApp $out/bin/cura
+ '';
+
+ meta = with lib; {
+ description = "3D printer / slicing GUI built on top of the Uranium framework";
+ homepage = "https://github.com/Ultimaker/Cura";
+ license = licenses.lgpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ abbradar gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch
new file mode 100644
index 000000000000..3826e92440f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch
@@ -0,0 +1,47 @@
+# Notes by Charles Duffy <charles@dyfis.net> --
+#
+# - The new version of OpenMP does not allow outside variables to be referenced
+# *at all* without an explicit declaration of how they're supposed to be
+# handled. Thus, this was an outright build failure beforehand. The new
+# pragmas copy the initial value from the outer scope into each parallel
+# thread. Since these variables are all constant within the loops, this is
+# clearly correct. (Not sure it's *optimal*, but quite sure it isn't
+# *wrong*).
+# - Upstream has been contacted -- I'm a Lulzbot customer with an active
+# support contract and sent them the patch. That said, they're in the middle
+# of some major corporate churn (sold themselves out of near-bankruptcy to an
+# out-of-state business entity formed as a holding company; moved to that
+# state; have been slowly restaffing after), so a response may take a while.
+# - The patch is purely my own work.
+
+--- curaengine/src/support.cpp.orig 2020-03-28 10:38:01.953912363 -0500
++++ curaengine/src/support.cpp 2020-03-28 10:45:28.999791908 -0500
+@@ -854,7 +854,7 @@
+ const double tan_angle = tan(angle) - 0.01; // the XY-component of the supportAngle
+ xy_disallowed_per_layer[0] = storage.getLayerOutlines(0, false).offset(xy_distance);
+ // for all other layers (of non support meshes) compute the overhang area and possibly use that when calculating the support disallowed area
+- #pragma omp parallel for default(none) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic)
++ #pragma omp parallel for default(none) firstprivate(layer_count, is_support_mesh_place_holder, use_xy_distance_overhang, z_distance_top, tan_angle, xy_distance, xy_distance_overhang) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic)
+ for (unsigned int layer_idx = 1; layer_idx < layer_count; layer_idx++)
+ {
+ Polygons outlines = storage.getLayerOutlines(layer_idx, false);
+@@ -1054,7 +1054,7 @@
+ const int max_checking_layer_idx = std::min(static_cast<int>(storage.support.supportLayers.size())
+ , static_cast<int>(layer_count - (layer_z_distance_top - 1)));
+ const size_t max_checking_idx_size_t = std::max(0, max_checking_layer_idx);
+-#pragma omp parallel for default(none) shared(support_areas, storage) schedule(dynamic)
++#pragma omp parallel for default(none) firstprivate(max_checking_idx_size_t, layer_z_distance_top) shared(support_areas, storage) schedule(dynamic)
+ for (size_t layer_idx = 0; layer_idx < max_checking_idx_size_t; layer_idx++)
+ {
+ support_areas[layer_idx] = support_areas[layer_idx].difference(storage.getLayerOutlines(layer_idx + layer_z_distance_top - 1, false));
+--- curaengine/src/layerPart.cpp.orig 2020-03-28 10:36:40.381023651 -0500
++++ curaengine/src/layerPart.cpp 2020-03-28 10:39:54.584140465 -0500
+@@ -49,7 +49,7 @@
+ {
+ const auto total_layers = slicer->layers.size();
+ assert(mesh.layers.size() == total_layers);
+-#pragma omp parallel for default(none) shared(mesh, slicer) schedule(dynamic)
++#pragma omp parallel for default(none) firstprivate(total_layers) shared(mesh, slicer) schedule(dynamic)
+ for (unsigned int layer_nr = 0; layer_nr < total_layers; layer_nr++)
+ {
+ SliceLayer& layer_storage = mesh.layers[layer_nr];
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine.nix
new file mode 100644
index 000000000000..a5cfa937fd8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine.nix
@@ -0,0 +1,27 @@
+{ gcc8Stdenv, callPackage, fetchgit, fetchpatch, cmake, libarcusLulzbot, stb, protobuf }:
+
+gcc8Stdenv.mkDerivation rec {
+ pname = "curaengine-lulzBot";
+ version = "3.6.21";
+
+ src = fetchgit {
+ url = "https://code.alephobjects.com/source/curaengine-lulzbot.git";
+ rev = "ec6a1a0f0aa387ef97e5c106633cf8d7fb9cd00d";
+ sha256 = "0wdkvg1hmqp1gaym804lw09x4ngf5ffasd861jhflpy7djbmkfn8";
+ };
+
+ patches = [ ./curaengine-openmp-compat.patch ];
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libarcusLulzbot stb protobuf ];
+
+ cmakeFlags = [ "-DCURA_ENGINE_VERSION=${version}" ];
+
+ meta = with gcc8Stdenv.lib; {
+ description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction";
+ homepage = "https://code.alephobjects.com/source/curaengine-lulzbot/";
+ license = licenses.agpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ chaduffy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix
new file mode 100644
index 000000000000..229966561c6d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix
@@ -0,0 +1,82 @@
+{ lib, mkDerivation, wrapQtAppsHook, callPackage, fetchgit, cmake, jq, python3, qtbase, qtquickcontrols2 }:
+
+let
+ # admittedly, we're using (printer firmware) blobs when we could compile them ourselves.
+ curaBinaryDataVersion = "3.6.21"; # Marlin v2.0.0.174 for Bio, v2.0.0.144 for others.
+ curaBinaryData = fetchgit {
+ url = "https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git";
+ rev = "5c75d0f6c10d8b7a903e2072a48cd1f08059509e";
+ sha256 = "1qdsj6rczwzdwzyr7nz7fnypbphckjrnwl8c9dr6izsxyzs465c4";
+ };
+
+ libarcusLulzbot = callPackage ./libarcus.nix {
+ inherit (python3.pkgs) buildPythonPackage sip pythonOlder;
+ };
+ libsavitarLulzbot = callPackage ./libsavitar.nix {
+ inherit (python3.pkgs) buildPythonPackage sip pythonOlder;
+ };
+
+ inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
+ curaengine = callPackage ./curaengine.nix {
+ inherit libarcusLulzbot;
+ };
+ uraniumLulzbot = callPackage ./uranium.nix {
+ inherit callPackage libarcusLulzbot;
+ inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
+ };
+in
+mkDerivation rec {
+ pname = "cura-lulzbot";
+ version = "3.6.21";
+
+ src = fetchgit {
+ url = "https://code.alephobjects.com/source/cura-lulzbot.git";
+ rev = "7faeb18604c83004846a02c60cb240708db0034f";
+ sha256 = "10q38s8c8x6xkh1vns4p3iqa5y267vrjh5vq8h55mg1q5001scyq";
+ };
+
+ buildInputs = [ qtbase qtquickcontrols2 ];
+ # numpy-stl temporarily disabled due to https://code.alephobjects.com/T8415
+ propagatedBuildInputs = with python3.pkgs; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl
+ nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
+
+ cmakeFlags = [
+ "-DURANIUM_DIR=${uraniumLulzbot.src}"
+ "-DCURA_VERSION=${version}"
+ ];
+
+ postPatch = ''
+ sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
+ sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py
+ '';
+
+ preFixup = ''
+ substituteInPlace "$out/bin/cura-lulzbot" --replace 'import cura.CuraApplication' 'import Savitar; import cura.CuraApplication'
+ ln -sT "${curaBinaryData}/cura/resources/firmware" "$out/share/cura/resources/firmware"
+ ln -sT "${uraniumLulzbot}/share/uranium" "$out/share/uranium"
+ ${jq}/bin/jq --arg out "$out" '.build=$out' >"$out/version.json" <<'EOF'
+ ${builtins.toJSON {
+ cura = version;
+ cura_version = version;
+ binarydata = curaBinaryDataVersion;
+ engine = curaengine.version;
+ libarcus = libarcusLulzbot.version;
+ libsavitar = libsavitarLulzbot.version;
+ uranium = uraniumLulzbot.version;
+ }}
+ EOF
+ '';
+
+ postFixup = ''
+ wrapPythonPrograms
+ wrapQtApp "$out/bin/cura-lulzbot"
+ '';
+
+ meta = with lib; {
+ description = "3D printer / slicing GUI built on top of the Uranium framework";
+ homepage = "https://code.alephobjects.com/diffusion/CURA/";
+ license = licenses.agpl3; # a partial relicense to LGPL has happened, but not certain that all AGPL bits are expunged
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ chaduffy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix
new file mode 100644
index 000000000000..5edaabbacb0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildPythonPackage, fetchgit, fetchurl, cmake, sip, protobuf, pythonOlder }:
+
+buildPythonPackage {
+ pname = "libarcus";
+ version = "3.6.21";
+ format = "other";
+
+ src = fetchgit {
+ url = "https://code.alephobjects.com/source/arcus.git";
+ rev = "aeda02d7727f45b657afb72cef203283fbf09325";
+ sha256 = "1ak0d4k745sx7paic27was3s4987z9h3czscjs21hxbi6qy83g99";
+ };
+
+ disabled = pythonOlder "3.4.0";
+
+ propagatedBuildInputs = [ sip ];
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ protobuf ];
+
+ postPatch = ''
+ # To workaround buggy SIP detection which overrides PYTHONPATH
+ sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Communication library between internal components for Ultimaker software";
+ homepage = "https://code.alephobjects.com/source/arcus/";
+ license = licenses.lgpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ chaduffy ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
new file mode 100644
index 000000000000..e32117a103ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildPythonPackage, pythonOlder, fetchgit, cmake, sip }:
+
+buildPythonPackage {
+ pname = "libsavitar-lulzbot";
+ name = "libsavitar-lulzbot";
+ version = "3.6.21";
+ format = "other";
+
+ src = fetchgit {
+ url = "https://code.alephobjects.com/source/savitar.git";
+ rev = "ee8ada42c55f54727ce4d275c294ba426d3d8234";
+ sha256 = "1wm5ii3cmni8dk3c65kw4wglpypkdsfpgd480d3hc1r5bqpq0d6j";
+ };
+
+ postPatch = ''
+ # To workaround buggy SIP detection which overrides PYTHONPATH
+ sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake
+ '';
+
+ nativeBuildInputs = [ cmake ];
+
+ propagatedBuildInputs = [ sip ];
+
+ disabled = pythonOlder "3.4.0";
+
+ meta = with stdenv.lib; {
+ description = "C++ implementation of 3mf loading with SIP python bindings";
+ homepage = "https://github.com/Ultimaker/libSavitar";
+ license = licenses.lgpl3Plus;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ chaduffy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/uranium.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/uranium.nix
new file mode 100644
index 000000000000..2ce0fab170ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/lulzbot/uranium.nix
@@ -0,0 +1,38 @@
+{ stdenv, callPackage, fetchurl, fetchgit, buildPythonPackage, fetchFromGitHub, python, cmake
+, pyqt5, numpy, scipy, shapely, libarcusLulzbot, doxygen, gettext, pythonOlder }:
+
+buildPythonPackage {
+ version = "3.6.21";
+ pname = "uranium";
+ name = "uraniumLulzbot";
+ format = "other";
+
+ src = fetchgit {
+ url = "https://code.alephobjects.com/diffusion/U/uranium.git";
+ rev = "54d911edd2551c5875c554928896122835a0dd6c";
+ sha256 = "04bym3vwikaxw8ab0mymv9sc9n8i7yw5kfsv99ic811g9lzz3j1i";
+ };
+
+ disabled = pythonOlder "3.5.0";
+
+ buildInputs = [ python gettext ];
+ propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcusLulzbot ];
+ nativeBuildInputs = [ cmake doxygen ];
+
+ postPatch = ''
+ sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
+ sed -i \
+ -e "s,Resources.addSearchPath(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,Resources.addSearchPath(\"$out/share/uranium/resources\")," \
+ -e "s,self._plugin_registry.addPluginLocation(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,self._plugin_registry.addPluginLocation(\"$out/lib/uranium/plugins\")," \
+ UM/Application.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Python framework for building Desktop applications";
+ homepage = "https://code.alephobjects.com/diffusion/U/";
+ license = licenses.lgpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ chaduffy ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch
new file mode 100644
index 000000000000..efb14182b3e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch
@@ -0,0 +1,12 @@
+diff -urN Cura-15.04.old/Cura/util/sliceEngine.py Cura-15.04/Cura/util/sliceEngine.py
+--- Cura-15.04.old/Cura/util/sliceEngine.py 2016-05-07 20:34:17.305020334 +0200
++++ Cura-15.04/Cura/util/sliceEngine.py 2016-05-07 20:40:02.993286467 +0200
+@@ -343,7 +343,7 @@
+ objMax[1] = max(oMax[1], objMax[1])
+ if objMin is None:
+ return
+- pos += (objMin + objMax) / 2.0 * 1000
++ pos = numpy.add( pos, (objMin + objMax) / 2.0 * 1000, out=pos, casting='unsafe')
+ commandList += ['-s', 'posx=%d' % int(pos[0]), '-s', 'posy=%d' % int(pos[1])]
+
+ vertexTotal = [0] * 4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/plugins.nix
new file mode 100644
index 000000000000..9082feb38a7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/plugins.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, fetchpatch, python3Packages }:
+
+let
+
+ self = {
+
+ octoprint = stdenv.mkDerivation rec {
+ pname = "Cura-OctoPrintPlugin";
+ version = "3.5.16";
+
+ src = fetchFromGitHub {
+ owner = "fieldOfView";
+ repo = pname;
+ rev = "8affa8aa9796cb37129d3b7222fff03f86c936cd";
+ sha256 = "0l4qfcashkdmpdm8nm3klz6hmi1f0bmbpb9b1yn4mvg0fam6c5xi";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ netifaces
+ ];
+
+ installPhase = ''
+ mkdir -p $out/lib/cura/plugins/OctoPrintPlugin
+ cp -rv . $out/lib/cura/plugins/OctoPrintPlugin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Enables printing directly to OctoPrint and monitoring the process";
+ homepage = "https://github.com/fieldOfView/Cura-OctoPrintPlugin";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ gebner ];
+ };
+ };
+
+ };
+
+in self
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/stable.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/stable.nix
new file mode 100644
index 000000000000..87d2aba891b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/cura/stable.nix
@@ -0,0 +1,73 @@
+{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
+let
+ py = python27Packages;
+ version = "15.04";
+in
+stdenv.mkDerivation rec {
+ pname = "cura";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
+ sha256 = "0xbjvzhp8wzq9lnpmcg1fjf7j5h39bj5463sd5c8jzdjl96izizl";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "Cura";
+ exec = "cura";
+ icon = "cura";
+ comment = "Cura";
+ desktopName = "Cura";
+ genericName = "3D printing host software";
+ categories = "GNOME;GTK;Utility;";
+ };
+
+ python_deps = with py; [ pyopengl pyserial numpy wxPython30 power setuptools ];
+
+ pythonPath = python_deps;
+
+ propagatedBuildInputs = python_deps;
+
+ buildInputs = [ curaengine py.wrapPython ];
+
+ configurePhase = "";
+ buildPhase = "";
+
+ patches = [ ./numpy-cast.patch ];
+
+ installPhase = ''
+ # Install Python code.
+ site_packages=$out/lib/python2.7/site-packages
+ mkdir -p $site_packages
+ cp -r Cura $site_packages/
+
+ # Install resources.
+ resources=$out/share/cura
+ mkdir -p $resources
+ cp -r resources/* $resources/
+ sed -i 's|os.path.join(os.path.dirname(__file__), "../../resources")|"'$resources'"|g' $site_packages/Cura/util/resources.py
+
+ # Install executable.
+ mkdir -p $out/bin
+ cp Cura/cura.py $out/bin/cura
+ chmod +x $out/bin/cura
+ sed -i 's|#!/usr/bin/python|#!/usr/bin/env python|' $out/bin/cura
+ wrapPythonPrograms
+
+ # Make it find CuraEngine.
+ echo "def getEngineFilename(): return '${curaengine}/bin/CuraEngine'" >> $site_packages/Cura/util/sliceEngine.py
+
+ # Install desktop item.
+ mkdir -p "$out"/share/applications
+ cp "$desktopItem"/share/applications/* "$out"/share/applications/
+ mkdir -p "$out"/share/icons
+ ln -s "$resources/images/c.png" "$out"/share/icons/cura.png
+ '';
+
+ meta = with stdenv.lib; {
+ description = "3D printing host software";
+ homepage = "https://github.com/daid/Cura";
+ license = licenses.agpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix
new file mode 100644
index 000000000000..821b88f9b20d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, runtimeShell, lib, fetchurl, python, pythonPackages, unzip }:
+
+# This package uses a precompiled "binary" distribution of CuraByDagoma,
+# distributed by the editor.
+#
+# To update the package, follow the links on https://dist.dagoma.fr/:
+# * Cura By Dagoma
+# * Linux
+# * 64 bits
+# * Genric archive
+#
+# I made the arbitrary choice to compile this package only for x86_64.
+# I guess people owning a 3D printer generally don't use i686.
+# If, however, someone needs it, we certainly can find a solution.
+
+stdenv.mkDerivation rec {
+ pname = "curabydagoma";
+ # Version is the date, UNIX format
+ version = "1520506579";
+ # Hash of the user's choice: os, arch, package type...
+ hash = "58228cce5bbdcf764b7116850956f1e5";
+
+ src = fetchurl {
+ url = "https://dist.dagoma.fr/get/zip/CuraByDagoma/${version}/${hash}";
+ sha256 = "16wfipdyjkf6dq8awjzs4zgkmqk6230277mf3iz8swday9hns8pq";
+ };
+ unpackCmd = "unzip $curSrc && tar zxf CuraByDagoma_amd64.tar.gz";
+ nativeBuildInputs = [ unzip ];
+ buildInputs = [ python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
+
+ # Compile all pyc files because the included pyc files may be older than the
+ # py files. However, Python doesn't realize that because the packages
+ # have all dates set to epoch.
+ buildPhase = ''
+ python -m compileall -f curabydago
+ '';
+
+ # * Simply copy the stuff there
+ # * Create an executable with the correct path etc
+ # * Create a .desktop file to have a launcher in the desktop environments
+ installPhase = ''
+ mkdir $out
+ cp -r * $out/
+
+ mkdir $out/bin
+ cat > $out/bin/curabydago <<EOF
+ #!${runtimeShell}
+ export PYTHONPATH=$PYTHONPATH
+ ${python.out}/bin/python $out/curabydago/cura.py
+ EOF
+ chmod a+x $out/bin/curabydago
+
+ mkdir -p $out/share/applications
+ cat > $out/share/applications/curabydago.desktop <<EOF
+ [Desktop Entry]
+ Type=Application
+ Name=Cura-by-dagoma
+ Comment=CuraByDagoma is a fork of Legacy Cura made by Dagoma for its own printers.
+ Icon=$out/curabydago/resources/images/cura.ico
+ Exec=$out/bin/curabydago
+ Path=$out/
+ StartupNotify=true
+ Terminal=false
+ Categories=GNOME;GTK;Utility;
+ EOF
+
+ '';
+
+ meta = with lib; {
+ description = "Slicer for 3D printers built by Dagoma";
+ homepage = "https://dagoma.fr/cura-by-dagoma.html";
+ license = licenses.agpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ tiramiseb ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/curaengine/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/curaengine/default.nix
new file mode 100644
index 000000000000..8993c01a6bd2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/curaengine/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, libarcus, stb, protobuf }:
+
+stdenv.mkDerivation rec {
+ pname = "curaengine";
+ version = "4.8.0";
+
+ src = fetchFromGitHub {
+ owner = "Ultimaker";
+ repo = "CuraEngine";
+ rev = version;
+ sha256 = "083l327ry6hv3yaa1p8dx1hx7fm12b0lh5nlbshxjyym0vi15rw2";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libarcus stb protobuf ];
+
+ cmakeFlags = [ "-DCURA_ENGINE_VERSION=${version}" ];
+
+ meta = with stdenv.lib; {
+ description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction";
+ homepage = "https://github.com/Ultimaker/CuraEngine";
+ license = licenses.agpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ abbradar gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/curaengine/stable.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
new file mode 100644
index 000000000000..394a94f19ab8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+let
+ version = "15.04.6";
+in
+stdenv.mkDerivation {
+ pname = "curaengine";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz";
+ sha256 = "1cd4dikzvqyj5g80rqwymvh4nwm76vsf78clb37kj6q0fig3qbjg";
+ };
+
+ postPatch = ''
+ sed -i 's,--static,,g' Makefile
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp build/CuraEngine $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Engine for processing 3D models into 3D printing instructions";
+ homepage = "https://github.com/Ultimaker/CuraEngine";
+ license = licenses.agpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dasel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dasel/default.nix
new file mode 100644
index 000000000000..d76cf9b106e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dasel/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+ pname = "dasel";
+ version = "1.8.0";
+
+ src = fetchFromGitHub {
+ owner = "TomWright";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-N27XmrbZTLeNkNvGDsChqKZrAagkQoGFaJeeZ1/Qnkw=";
+ };
+
+ vendorSha256 = "1552k85z4s6gv7sss7dccv3h8x22j2sr12icp6s7s0a3i4iwyksw";
+
+ buildFlagsArray = ''
+ -ldflags=-s -w -X github.com/tomwright/dasel/internal.Version=${version}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Query and update data structures from the command line";
+ longDescription = ''
+ Dasel (short for data-selector) allows you to query and modify data structures using selector strings.
+ Comparable to jq / yq, but supports JSON, YAML, TOML and XML with zero runtime dependencies.
+ '';
+ homepage = "https://github.com/TomWright/dasel";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ _0x4A6F ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
new file mode 100644
index 000000000000..4e928ff34f06
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper
+, fontconfig, freetype, glib, gtk3
+, jdk, libX11, libXrender, libXtst, zlib }:
+
+# The build process is almost like eclipse's.
+# See `pkgs/applications/editors/eclipse/*.nix`
+
+stdenv.mkDerivation rec {
+ pname = "dbeaver-ce";
+ version = "7.3.0";
+
+ desktopItem = makeDesktopItem {
+ name = "dbeaver";
+ exec = "dbeaver";
+ icon = "dbeaver";
+ desktopName = "dbeaver";
+ comment = "SQL Integrated Development Environment";
+ genericName = "SQL Integrated Development Environment";
+ categories = "Development;";
+ };
+
+ buildInputs = [
+ fontconfig freetype glib gtk3
+ jdk libX11 libXrender libXtst zlib
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ src = fetchurl {
+ url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
+ sha256 = "sha256-JhEF2/97vo2FgzpCFkuc31aLl9qjKHV8RYXO5oBU1no=";
+ };
+
+ installPhase = ''
+ mkdir -p $out/
+ cp -r . $out/dbeaver
+
+ # Patch binaries.
+ interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
+ patchelf --set-interpreter $interpreter $out/dbeaver/dbeaver
+
+ makeWrapper $out/dbeaver/dbeaver $out/bin/dbeaver \
+ --prefix PATH : ${jdk}/bin \
+ --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk3 libXtst ])} \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+
+ # Create desktop item.
+ mkdir -p $out/share/applications
+ cp ${desktopItem}/share/applications/* $out/share/applications
+
+ mkdir -p $out/share/pixmaps
+ ln -s $out/dbeaver/icon.xpm $out/share/pixmaps/dbeaver.xpm
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://dbeaver.io/";
+ description = "Universal SQL Client for developers, DBA and analysts. Supports MySQL, PostgreSQL, MariaDB, SQLite, and more";
+ longDescription = ''
+ Free multi-platform database tool for developers, SQL programmers, database
+ administrators and analysts. Supports all popular databases: MySQL,
+ PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access,
+ Teradata, Firebird, Derby, etc.
+ '';
+ license = licenses.asl20;
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ maintainers.jojosch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ddcui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ddcui/default.nix
new file mode 100644
index 000000000000..1ec288c678a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ddcui/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qtbase
+, qttools
+, ddcutil
+}:
+
+mkDerivation rec {
+ pname = "ddcui";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "rockowitz";
+ repo = "ddcui";
+ rev = "v${version}";
+ sha256 = "0myma1zw6dlygv3xbin662d91zcnwss10syf12q2fppkrd8qdgqf";
+ };
+
+ nativeBuildInputs = [
+ # Using cmake instead of the also-supported qmake because ddcui's qmake
+ # file is not currently written to support PREFIX installations.
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ qtbase
+ qttools
+ ddcutil
+ ];
+
+ meta = with lib; {
+ description = "Graphical user interface for ddcutil - control monitor settings";
+ homepage = "https://www.ddcutil.com/ddcui_main/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ nh2 ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ddgr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ddgr/default.nix
new file mode 100644
index 000000000000..1cac8811103d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ddgr/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, python3, installShellFiles }:
+
+stdenv.mkDerivation rec {
+ version = "1.9";
+ pname = "ddgr";
+
+ src = fetchFromGitHub {
+ owner = "jarun";
+ repo = "ddgr";
+ rev = "v${version}";
+ sha256 = "0qbdq7k0mmvkjp6qzz88n7vf29liqn6y5w4y39ldqdc8hzw5sld7";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildInputs = [ python3 ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ installShellCompletion --bash --name ddgr.bash auto-completion/bash/ddgr-completion.bash
+ installShellCompletion --fish auto-completion/fish/ddgr.fish
+ installShellCompletion --zsh auto-completion/zsh/_ddgr
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jarun/ddgr";
+ description = "Search DuckDuckGo from the terminal";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ceedubs markus1189 ];
+ platforms = python3.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/deco/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/deco/default.nix
new file mode 100644
index 000000000000..ad8b56e830fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/deco/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, scsh, feh, xorg }:
+
+stdenv.mkDerivation rec {
+ pname = "deco";
+ version = "0.0.2";
+
+ src = fetchFromGitHub {
+ owner = "ebzzry";
+ repo = pname;
+ rev = "49cded5ad123b0169f47cd0dc0f5420f4b581837";
+ sha256 = "19rvqhw0blwga8ck86yy8hj7j1l9hriphlld6yrfd3yip4jprjzz";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ${pname} $out/bin
+ chmod +x $out/bin/${pname}
+ '';
+
+ postFixup = ''
+ substituteInPlace $out/bin/deco --replace "/usr/bin/env scsh" "${scsh}/bin/scsh"
+ substituteInPlace $out/bin/deco --replace "feh" "${feh}/bin/feh"
+ substituteInPlace $out/bin/deco --replace "xdpyinfo" "${xorg.xdpyinfo}/bin/xdpyinfo"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ebzzry/deco";
+ description = "A simple root image setter";
+ license = licenses.mit;
+ maintainers = [ maintainers.ebzzry ];
+ platforms = platforms.unix;
+ };
+
+ dontBuild = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix
new file mode 100644
index 000000000000..7c1726961339
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3 }:
+
+let
+ version = "0.7.1";
+ pname = "devdocs-desktop";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/egoist/devdocs-desktop/releases/download/v${version}/DevDocs-${version}.AppImage";
+ sha256 = "5bba99a34c90a65eff67aface0b7446cbf43d620a1c195f27e7bb33ab6d3d0c2";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+
+in appimageTools.wrapType2 rec {
+ inherit name src;
+
+ profile = ''
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D ${appimageContents}/devdocs.desktop $out/share/applications/devdocs.desktop
+ install -m 444 -D ${appimageContents}/devdocs.png $out/share/icons/hicolor/0x0/apps/devdocs.png
+ substituteInPlace $out/share/applications/devdocs.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A full-featured desktop app for DevDocs.io";
+ longDescription = ''
+ DevDocs.io combines multiple API documentations in a fast, organized, and searchable interface. This is an unofficial desktop app for it.
+ '';
+ homepage = "https://github.com/egoist/devdocs-desktop";
+ downloadPage = "https://github.com/egoist/devdocs-desktop/releases";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ymarkus ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/devilspie2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/devilspie2/default.nix
new file mode 100644
index 000000000000..2961baee1024
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/devilspie2/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, intltool, pkgconfig, glib, gtk, lua, libwnck3 }:
+
+stdenv.mkDerivation rec {
+ pname = "devilspie2";
+ version = "0.43";
+
+ src = fetchurl {
+ url = "https://download.savannah.gnu.org/releases/devilspie2/devilspie2_${version}-src.tar.gz";
+ sha256 = "0a7qjl2qd4099kkkbwa1y2fk48s21jlr409lf9mij7mlc9yc3zzc";
+ };
+
+ nativeBuildInputs = [ intltool pkgconfig ];
+ buildInputs = [ glib gtk lua libwnck3 ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man/man1
+ cp bin/devilspie2 $out/bin
+ cp devilspie2.1 $out/share/man/man1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A window matching utility";
+ longDescription = ''
+ Devilspie2 is a window matching utility, allowing the user to
+ perform scripted actions on windows as they are created. For
+ example you can script a terminal program to always be
+ positioned at a specific screen position, or position a window
+ on a specific workspace.
+ '';
+ homepage = "https://www.gusnan.se/devilspie2/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.ebzzry ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix
new file mode 100644
index 000000000000..69c7f0dc17fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, mkDerivation, fetchgit, cmake, file, qtbase, qttools, solid }:
+
+let
+ version = "git-2016-01-10";
+in
+mkDerivation {
+ pname = "dfilemanager";
+ inherit version;
+ src = fetchgit {
+ url = "git://git.code.sf.net/p/dfilemanager/code";
+ rev = "2c5078b05e0ad74c037366be1ab3e6a03492bde4";
+ sha256 = "1qwhnlcc2j8sr1f3v63sxs3m7q7w1xy6c2jqsnznjgm23b5h3hxd";
+ };
+
+ buildInputs = [ cmake qtbase qttools file solid ];
+
+ cmakeFlags = [ "-DQT5BUILD=true" ];
+
+ meta = {
+ homepage = "http://dfilemanager.sourceforge.net/";
+ description = "File manager written in Qt/C++";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix
new file mode 100644
index 000000000000..83116da4df05
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, cairo, poppler, wxGTK ? null, wxmac ? null, darwin ? null }:
+
+let
+ wxInputs =
+ if stdenv.isDarwin then
+ [ wxmac darwin.apple_sdk.frameworks.Cocoa ]
+ else
+ [ wxGTK ];
+in
+stdenv.mkDerivation rec {
+ pname = "diff-pdf";
+ version = "0.4.1";
+
+ src = fetchFromGitHub {
+ owner = "vslavik";
+ repo = "diff-pdf";
+ rev = "v${version}";
+ sha256 = "1y5ji4c4m69vzs0z051fkhfdrjnyxb6kzac5flhdkfb2hgp1jnxl";
+ };
+
+ nativeBuildInputs = [ autoconf automake pkgconfig ];
+ buildInputs = [ cairo poppler ] ++ wxInputs;
+
+ preConfigure = "./bootstrap";
+
+ meta = with stdenv.lib; {
+ homepage = "https://vslavik.github.io/diff-pdf/";
+ description = "Simple tool for visually comparing two PDF files";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/diffpdf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/diffpdf/default.nix
new file mode 100644
index 000000000000..17dfd08f90b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/diffpdf/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, mkDerivation, fetchurl, fetchpatch, qmake, qttools, qtbase, poppler }:
+
+mkDerivation rec {
+ version = "2.1.3";
+ pname = "diffpdf";
+
+ src = fetchurl {
+ url = "http://www.qtrac.eu/${pname}-${version}.tar.gz";
+ sha256 = "0cr468fi0d512jjj23r5flfzx957vibc9c25gwwhi0d773h2w566";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/gentoo/gentoo/9b971631588ff46e7c2d501bc35cd0d9ce2d98e2/app-text/diffpdf/files/diffpdf-2.1.3-qt5.patch";
+ sha256 = "0sax8gcqcmzf74hmdr3rarqs4nsxmml9qmh6pqyjmgl3lypxhafg";
+ })
+ ./fix_path_poppler_qt5.patch
+ ];
+
+ nativeBuildInputs = [ qmake qttools ];
+ buildInputs = [ qtbase poppler ];
+
+ preConfigure = ''
+ substituteInPlace diffpdf.pro --replace @@NIX_POPPLER_QT5@@ ${poppler.dev}
+ lrelease diffpdf.pro
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man/man1
+
+ install -Dpm755 -D diffpdf $out/bin/diffpdf
+ install -Dpm644 -D diffpdf.1 $out/share/man/man1/diffpdf.1
+
+ install -dpm755 $out/share/doc/${pname}-${version} $out/share/licenses/${pname}-${version} $out/share/icons $out/share/pixmaps $out/share/applications
+ install -Dpm644 CHANGES README help.html $out/share/doc/${pname}-${version}/
+ install -Dpm644 gpl-2.0.txt $out/share/licenses/${pname}-${version}/
+ install -Dpm644 images/icon.png $out/share/icons/diffpdf.png
+ install -Dpm644 images/icon.png $out/share/pixmaps/diffpdf.png
+
+ cat > $out/share/applications/diffpdf.desktop <<EOF
+ [Desktop Entry]
+ Type=Application
+ Version=1.0
+ Name=diffpdf
+ Icon=diffpdf
+ Comment=PDF diffing tool
+ Exec=$out/bin/diffpdf
+ Terminal=false
+ EOF
+ '';
+
+ meta = {
+ homepage = "http://www.qtrac.eu/diffpdfc.html";
+ description = "Tool for diffing pdf files visually or textually";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ tstrobel ];
+ platforms = with stdenv.lib.platforms; linux;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch
new file mode 100644
index 000000000000..9535ea2c6b0d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch
@@ -0,0 +1,16 @@
+diff -uNr diffpdf-2.1.3/diffpdf.pro diffpdf-2.1.3-new/diffpdf.pro
+--- diffpdf-2.1.3/diffpdf.pro 2013-10-15 09:01:22.000000000 +0200
++++ diffpdf-2.1.3-new/diffpdf.pro 2015-07-07 23:13:36.445572148 +0200
+@@ -47,9 +47,9 @@
+ INCLUDEPATH += /c/poppler_lib/include/poppler/qt5
+ LIBS += -Wl,-rpath -Wl,/c/poppler_lib/bin -Wl,-L/c/poppler_lib/bin
+ } else {
+- exists(/usr/include/poppler/qt5) {
+- INCLUDEPATH += /usr/include/poppler/cpp
+- INCLUDEPATH += /usr/include/poppler/qt5
++ exists(@@NIX_POPPLER_QT5@@/include/poppler/qt5) {
++ INCLUDEPATH += @@NIX_POPPLER_QT5@@/include/poppler/cpp
++ INCLUDEPATH += @@NIX_POPPLER_QT5@@/include/poppler/qt5
+ } else {
+ INCLUDEPATH += /usr/local/include/poppler/cpp
+ INCLUDEPATH += /usr/local/include/poppler/qt5
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix
new file mode 100644
index 000000000000..0c731aca713f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix
@@ -0,0 +1,142 @@
+{ mkDerivation
+, lib
+, autoreconfHook
+, curl
+, fetchFromGitHub
+, git
+, libevent
+, libtool
+, qrencode
+, udev
+, libusb1
+, makeWrapper
+, pkgconfig
+, qtbase
+, qttools
+, qtwebsockets
+, qtmultimedia
+, udevRule51 ? ''
+, SUBSYSTEM=="usb", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbb%n", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402"
+, ''
+, udevRule52 ? ''
+, KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbbf%n"
+, ''
+, writeText
+}:
+
+# Enabling the digitalbitbox program
+#
+# programs.digitalbitbox.enable = true;
+#
+# will install the digitalbitbox package and enable the corresponding hardware
+# module and is by far the easiest way to get started with the Digital Bitbox on
+# NixOS.
+
+# In case you install the package only, please be aware that you may need to
+# apply some udev rules to allow the application to identify and access your
+# wallet. In a nixos-configuration, one may accomplish this by enabling the
+# digitalbitbox hardware module
+#
+# hardware.digitalbitbox.enable = true;
+#
+# or by adding the digitalbitbox package to system.udev.packages
+#
+# system.udev.packages = [ pkgs.digitalbitbox ];
+
+# See https://digitalbitbox.com/start_linux for more information.
+let
+ copyUdevRuleToOutput = name: rule:
+ "cp ${writeText name rule} $out/etc/udev/rules.d/${name}";
+in mkDerivation rec {
+ pname = "digitalbitbox";
+ version = "3.0.0";
+
+ src = fetchFromGitHub {
+ owner = "digitalbitbox";
+ repo = "dbb-app";
+ rev = "v${version}";
+ sha256 = "ig3+TdYv277D9GVnkRSX6nc6D6qruUOw/IQdQCK6FoA=";
+ };
+
+ nativeBuildInputs = with lib; [
+ autoreconfHook
+ curl
+ git
+ makeWrapper
+ pkgconfig
+ qttools
+ ];
+
+ buildInputs = [
+ libevent
+ libtool
+ udev
+ libusb1
+ qrencode
+
+ qtbase
+ qtwebsockets
+ qtmultimedia
+ ];
+
+ LUPDATE="${qttools.dev}/bin/lupdate";
+ LRELEASE="${qttools.dev}/bin/lrelease";
+ MOC="${qtbase.dev}/bin/moc";
+ QTDIR=qtbase.dev;
+ RCC="${qtbase.dev}/bin/rcc";
+ UIC="${qtbase.dev}/bin/uic";
+
+ configureFlags = [
+ "--enable-libusb"
+ ];
+
+ hardeningDisable = [
+ "format"
+ ];
+
+ qtWrapperArgs = [ ''--prefix LD_LIBRARY_PATH : $out/lib'' ];
+
+ postInstall = ''
+ mkdir -p "$out/lib"
+ cp src/libbtc/.libs/*.so* $out/lib
+ cp src/libbtc/src/secp256k1/.libs/*.so* $out/lib
+ cp src/hidapi/libusb/.libs/*.so* $out/lib
+ cp src/univalue/.libs/*.so* $out/lib
+
+ # [RPATH][patchelf] Avoid forbidden reference error
+ rm -rf $PWD
+
+ # Provide udev rules as documented in https://digitalbitbox.com/start_linux
+ mkdir -p "$out/etc/udev/rules.d"
+ ${copyUdevRuleToOutput "51-hid-digitalbox.rules" udevRule51}
+ ${copyUdevRuleToOutput "52-hid-digitalbox.rules" udevRule52}
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "A QT based application for the Digital Bitbox hardware wallet";
+ longDescription = ''
+ Digital Bitbox provides dbb-app, a GUI tool, and dbb-cli, a CLI tool, to manage Digital Bitbox devices.
+
+ This package will only install the dbb-app and dbb-cli, however; in order for these applications to identify and access Digital Bitbox devices, one may want to enable the digitalbitbox hardware module by adding
+
+ hardware.digitalbitbox.enable = true;
+
+ to the configuration which is equivalent to adding this package to the udev.packages list.
+
+
+ The easiest way to use the digitalbitbox package in NixOS is by adding
+
+ programs.digitalbitbox.enable = true;
+
+ to the configuration which installs the package and enables the hardware module.
+ '';
+ homepage = "https://digitalbitbox.com/";
+ license = licenses.mit;
+ maintainers = with maintainers; [
+ vidbina
+ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ding/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ding/default.nix
new file mode 100644
index 000000000000..374c4cf66487
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ding/default.nix
@@ -0,0 +1,55 @@
+{ aspell, aspellDicts_de, aspellDicts_en, buildEnv, fetchurl, fortune, gnugrep, makeWrapper, stdenv, tk, tre }:
+let
+ aspellEnv = buildEnv {
+ name = "env-ding-aspell";
+ paths = [
+ aspell
+ aspellDicts_de
+ aspellDicts_en
+ ];
+ };
+in
+stdenv.mkDerivation rec {
+ name = "ding-1.8.1";
+
+ src = fetchurl {
+ url = "http://ftp.tu-chemnitz.de/pub/Local/urz/ding/${name}.tar.gz";
+ sha256 = "0chjqs3z9zs1w3l7b5lsaj682rgnkf9kibcbzhggqqcn1pbvl5sq";
+ };
+
+ buildInputs = [ aspellEnv fortune gnugrep makeWrapper tk tre ];
+
+ patches = [ ./dict.patch ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/dict
+ mkdir -p $out/share/man/man1
+ mkdir -p $out/share/applications
+ mkdir -p $out/share/pixmaps
+
+ for f in ding ding.1; do
+ sed -i "s@/usr/share@$out/share@g" "$f"
+ done
+
+ sed -i "s@/usr/bin/fortune@fortune@g" ding
+
+ sed -i "s@/usr/bin/ding@$out/bin/ding@g" ding.desktop
+
+ cp -v ding $out/bin/
+ cp -v de-en.txt $out/share/dict/
+ cp -v ding.1 $out/share/man/man1/
+ cp -v ding.png $out/share/pixmaps/
+ cp -v ding.desktop $out/share/applications/
+
+ wrapProgram $out/bin/ding --prefix PATH : ${stdenv.lib.makeBinPath [ gnugrep aspellEnv tk fortune ]} --prefix ASPELL_CONF : "\"prefix ${aspellEnv};\""
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple and fast dictionary lookup tool";
+ homepage = "https://www-user.tu-chemnitz.de/~fri/ding/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux; # homepage says: unix-like except darwin
+ maintainers = [ maintainers.exi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ding/dict.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/ding/dict.patch
new file mode 100644
index 000000000000..70ecea10550e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ding/dict.patch
@@ -0,0 +1,26 @@
+Ding persists its settings to $HOME/.dingrc on startup, this sadly includes the path to the dictionary.
+On all other distributions, that would be /usr/share/dict/de-en.txt and would hardly ever change.
+On nixos, this will indeed change on ever update and would break it for all users.
+This just comments out the dictionary path in the .dingrc so the user can still set it if she wants to, but it will not affect normal operations.
+--- a/ding
++++ b/ding
+@@ -899,7 +899,9 @@ if { ! [info exists ding_version]} {
+ }
+
+ # Change path of default ger-eng.txt when upgrading from version 1.1
+- if {$searchmeth($i,dictfile) == {/usr/dict/ger-eng.txt} &&
++ if {! [info exists searchmeth($i,dictfile)]} {
++ set searchmeth($i,dictfile) $default_searchmeth(0,dictfile)
++ } elseif {$searchmeth($i,dictfile) == {/usr/dict/ger-eng.txt} &&
+ $ding_version == {1.1}} {
+ set searchmeth($i,dictfile) $default_searchmeth(0,dictfile)
+ debug 2 "New path and name of ger-eng.txt configured: $default_searchmeth(0,dictfile)"
+@@ -5065,7 +5067,7 @@ proc saveOptions {} {
+ foreach i $searchmpos {
+ puts $fd "set searchmeth($n,name) {$searchmeth($i,name)}"
+ puts $fd "set searchmeth($n,type) {$searchmeth($i,type)}"
+- puts $fd "set searchmeth($n,dictfile) {$searchmeth($i,dictfile)}"
++ puts $fd "#set searchmeth($n,dictfile) {$searchmeth($i,dictfile)}"
+ puts $fd "set searchmeth($n,separator) {$searchmeth($i,separator)}"
+ puts $fd "set searchmeth($n,language1) {$searchmeth($i,language1)}"
+ puts $fd "set searchmeth($n,language2) {$searchmeth($i,language2)}"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15142.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15142.patch
new file mode 100644
index 000000000000..89ff3759451d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15142.patch
@@ -0,0 +1,72 @@
+commit 970fb11a296b5bbdc5e8425851253d2c5913c45e
+Author: Leon Bottou <leon@bottou.org>
+Date: Tue Mar 26 20:36:31 2019 -0400
+
+ Fix bug#296
+
+diff --git a/libdjvu/DjVmDir.cpp b/libdjvu/DjVmDir.cpp
+index a6a39e0..0a0fac6 100644
+--- a/libdjvu/DjVmDir.cpp
++++ b/libdjvu/DjVmDir.cpp
+@@ -299,42 +299,44 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
+ memcpy((char*) strings+strings_size, buffer, length);
+ }
+ DEBUG_MSG("size of decompressed names block=" << strings.size() << "\n");
+- if (strings[strings.size()-1] != 0)
+- {
+- int strings_size=strings.size();
+- strings.resize(strings_size+1);
+- strings[strings_size] = 0;
+- }
++ int strings_size=strings.size();
++ strings.resize(strings_size+3);
++ memset((char*) strings+strings_size, 0, 4);
+
+- // Copy names into the files
++ // Copy names into the files
+ const char * ptr=strings;
+ for(pos=files_list;pos;++pos)
+ {
+ GP<File> file=files_list[pos];
+-
++ if (ptr >= (const char*)strings + strings_size)
++ G_THROW( "DjVu document is corrupted (DjVmDir)" );
+ file->id=ptr;
+ ptr+=file->id.length()+1;
+ if (file->flags & File::HAS_NAME)
+ {
+- file->name=ptr;
+- ptr+=file->name.length()+1;
+- } else
++ file->name=ptr;
++ ptr+=file->name.length()+1;
++ }
++ else
+ {
+ file->name=file->id;
+ }
+ if (file->flags & File::HAS_TITLE)
+ {
+- file->title=ptr;
+- ptr+=file->title.length()+1;
+- } else
+- file->title=file->id;
+- /* msr debug: multipage file, file->title is null.
++ file->title=ptr;
++ ptr+=file->title.length()+1;
++ }
++ else
++ {
++ file->title=file->id;
++ }
++ /* msr debug: multipage file, file->title is null.
+ DEBUG_MSG(file->name << ", " << file->id << ", " << file->title << ", " <<
+ file->offset << ", " << file->size << ", " <<
+ file->is_page() << "\n"); */
+ }
+
+- // Check that there is only one file with SHARED_ANNO flag on
++ // Check that there is only one file with SHARED_ANNO flag on
+ int shared_anno_cnt=0;
+ for(pos=files_list;pos;++pos)
+ {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15143.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15143.patch
new file mode 100644
index 000000000000..ef1905338fba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15143.patch
@@ -0,0 +1,39 @@
+commit b1f4e1b2187d9e5010cd01ceccf20b4a11ce723f
+Author: Leon Bottou <leon@bottou.org>
+Date: Tue Mar 26 20:45:46 2019 -0400
+
+ fix for bug #297
+
+diff --git a/libdjvu/DjVmDir.cpp b/libdjvu/DjVmDir.cpp
+index 0a0fac6..5a49015 100644
+--- a/libdjvu/DjVmDir.cpp
++++ b/libdjvu/DjVmDir.cpp
+@@ -309,7 +309,7 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
+ {
+ GP<File> file=files_list[pos];
+ if (ptr >= (const char*)strings + strings_size)
+- G_THROW( "DjVu document is corrupted (DjVmDir)" );
++ G_THROW( ByteStream::EndOfFile );
+ file->id=ptr;
+ ptr+=file->id.length()+1;
+ if (file->flags & File::HAS_NAME)
+diff --git a/libdjvu/GBitmap.cpp b/libdjvu/GBitmap.cpp
+index 0e487f0..c2fdbe4 100644
+--- a/libdjvu/GBitmap.cpp
++++ b/libdjvu/GBitmap.cpp
+@@ -890,11 +890,13 @@ GBitmap::read_rle_raw(ByteStream &bs)
+ int c = 0;
+ while (n >= 0)
+ {
+- bs.read(&h, 1);
++ if (bs.read(&h, 1) <= 0)
++ G_THROW( ByteStream::EndOfFile );
+ int x = h;
+ if (x >= (int)RUNOVERFLOWVALUE)
+ {
+- bs.read(&h, 1);
++ if (bs.read(&h, 1) <= 0)
++ G_THROW( ByteStream::EndOfFile );
+ x = h + ((x - (int)RUNOVERFLOWVALUE) << 8);
+ }
+ if (c+x > ncolumns)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15144.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15144.patch
new file mode 100644
index 000000000000..6094be883385
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15144.patch
@@ -0,0 +1,111 @@
+commit e15d51510048927f172f1bf1f27ede65907d940d
+Author: Leon Bottou <leon@bottou.org>
+Date: Mon Apr 8 22:25:55 2019 -0400
+
+ bug 299 fixed
+
+diff --git a/libdjvu/GContainer.h b/libdjvu/GContainer.h
+index 96b067c..0140211 100644
+--- a/libdjvu/GContainer.h
++++ b/libdjvu/GContainer.h
+@@ -550,52 +550,61 @@ public:
+ template <class TYPE> void
+ GArrayTemplate<TYPE>::sort(int lo, int hi)
+ {
+- if (hi <= lo)
+- return;
+- if (hi > hibound || lo<lobound)
+- G_THROW( ERR_MSG("GContainer.illegal_subscript") );
+ TYPE *data = (TYPE*)(*this);
+- // Test for insertion sort
+- if (hi <= lo + 50)
++ while(true)
+ {
+- for (int i=lo+1; i<=hi; i++)
++ if (hi <= lo)
++ return;
++ if (hi > hibound || lo<lobound)
++ G_THROW( ERR_MSG("GContainer.illegal_subscript") );
++ // Test for insertion sort
++ if (hi <= lo + 50)
+ {
+- int j = i;
+- TYPE tmp = data[i];
+- while ((--j>=lo) && !(data[j]<=tmp))
+- data[j+1] = data[j];
+- data[j+1] = tmp;
++ for (int i=lo+1; i<=hi; i++)
++ {
++ int j = i;
++ TYPE tmp = data[i];
++ while ((--j>=lo) && !(data[j]<=tmp))
++ data[j+1] = data[j];
++ data[j+1] = tmp;
++ }
++ return;
+ }
+- return;
+- }
+- // -- determine suitable quick-sort pivot
+- TYPE tmp = data[lo];
+- TYPE pivot = data[(lo+hi)/2];
+- if (pivot <= tmp)
+- { tmp = pivot; pivot=data[lo]; }
+- if (data[hi] <= tmp)
+- { pivot = tmp; }
+- else if (data[hi] <= pivot)
+- { pivot = data[hi]; }
+- // -- partition set
+- int h = hi;
+- int l = lo;
+- while (l < h)
+- {
+- while (! (pivot <= data[l])) l++;
+- while (! (data[h] <= pivot)) h--;
+- if (l < h)
++ // -- determine median-of-three pivot
++ TYPE tmp = data[lo];
++ TYPE pivot = data[(lo+hi)/2];
++ if (pivot <= tmp)
++ { tmp = pivot; pivot=data[lo]; }
++ if (data[hi] <= tmp)
++ { pivot = tmp; }
++ else if (data[hi] <= pivot)
++ { pivot = data[hi]; }
++ // -- partition set
++ int h = hi;
++ int l = lo;
++ while (l < h)
+ {
+- tmp = data[l];
+- data[l] = data[h];
+- data[h] = tmp;
+- l = l+1;
+- h = h-1;
++ while (! (pivot <= data[l])) l++;
++ while (! (data[h] <= pivot)) h--;
++ if (l < h)
++ {
++ tmp = data[l];
++ data[l] = data[h];
++ data[h] = tmp;
++ l = l+1;
++ h = h-1;
++ }
++ }
++ // -- recurse, small partition first
++ // tail-recursion elimination
++ if (h - lo <= hi - l) {
++ sort(lo,h);
++ lo = l; // sort(l,hi)
++ } else {
++ sort(l,hi);
++ hi = h; // sort(lo,h)
+ }
+ }
+- // -- recursively restart
+- sort(lo, h);
+- sort(l, hi);
+ }
+
+ template<class TYPE> inline TYPE&
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15145.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15145.patch
new file mode 100644
index 000000000000..01108f9ee738
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15145.patch
@@ -0,0 +1,28 @@
+commit 9658b01431cd7ff6344d7787f855179e73fe81a7
+Author: Leon Bottou <leon@bottou.org>
+Date: Mon Apr 8 22:55:38 2019 -0400
+
+ fix bug #298
+
+diff --git a/libdjvu/GBitmap.h b/libdjvu/GBitmap.h
+index e8e0c9b..ca89a19 100644
+--- a/libdjvu/GBitmap.h
++++ b/libdjvu/GBitmap.h
+@@ -566,7 +566,7 @@ GBitmap::operator[](int row)
+ {
+ if (!bytes)
+ uncompress();
+- if (row<0 || row>=nrows) {
++ if (row<0 || row>=nrows || !bytes) {
+ #ifndef NDEBUG
+ if (zerosize < bytes_per_row + border)
+ G_THROW( ERR_MSG("GBitmap.zero_small") );
+@@ -581,7 +581,7 @@ GBitmap::operator[](int row) const
+ {
+ if (!bytes)
+ ((GBitmap*)this)->uncompress();
+- if (row<0 || row>=nrows) {
++ if (row<0 || row>=nrows || !bytes) {
+ #ifndef NDEBUG
+ if (zerosize < bytes_per_row + border)
+ G_THROW( ERR_MSG("GBitmap.zero_small") );
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-18804.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-18804.patch
new file mode 100644
index 000000000000..132fed794888
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-18804.patch
@@ -0,0 +1,32 @@
+commit c8bec6549c10ffaa2f2fbad8bbc629efdf0dd125
+Author: Leon Bottou <leon@bottou.org>
+Date: Thu Oct 17 22:20:31 2019 -0400
+
+ Fixed bug 309
+
+diff --git a/libdjvu/IW44EncodeCodec.cpp b/libdjvu/IW44EncodeCodec.cpp
+index 00752a0..f81eaeb 100644
+--- a/libdjvu/IW44EncodeCodec.cpp
++++ b/libdjvu/IW44EncodeCodec.cpp
+@@ -405,7 +405,7 @@ filter_fv(short *p, int w, int h, int rowsize, int scale)
+ int y = 0;
+ int s = scale*rowsize;
+ int s3 = s+s+s;
+- h = ((h-1)/scale)+1;
++ h = (h>0) ? ((h-1)/scale)+1 : 0;
+ y += 1;
+ p += s;
+ while (y-3 < h)
+diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
+index 6d0df3b..7109952 100644
+--- a/tools/ddjvu.cpp
++++ b/tools/ddjvu.cpp
+@@ -279,7 +279,7 @@ render(ddjvu_page_t *page, int pageno)
+ prect.h = (ih * 100) / dpi;
+ }
+ /* Process aspect ratio */
+- if (flag_aspect <= 0)
++ if (flag_aspect <= 0 && iw>0 && ih>0)
+ {
+ double dw = (double)iw / prect.w;
+ double dh = (double)ih / prect.h;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/default.nix
new file mode 100644
index 000000000000..afb7b6cf1391
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, fetchurl
+, libjpeg
+, libtiff
+, librsvg
+, libiconv
+}:
+
+stdenv.mkDerivation rec {
+ pname = "djvulibre";
+ version = "3.5.27";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
+ sha256 = "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6";
+ };
+
+ outputs = [ "bin" "dev" "out" ];
+
+ buildInputs = [
+ libjpeg
+ libtiff
+ librsvg
+ libiconv
+ ];
+
+ patches = [
+ ./CVE-2019-18804.patch
+ # This one is needed to make the following
+ # two CVE patches apply cleanly
+ ./fix_hongfuzz_crash.patch
+ ./CVE-2019-15142.patch
+ ./CVE-2019-15143.patch
+ ./CVE-2019-15144.patch
+ ./CVE-2019-15145.patch
+ ];
+
+ meta = with stdenv.lib; {
+ description = "The big set of CLI tools to make/modify/optimize/show/export DJVU files";
+ homepage = "http://djvu.sourceforge.net";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ Anton-Latukha ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/fix_hongfuzz_crash.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/fix_hongfuzz_crash.patch
new file mode 100644
index 000000000000..609b41cd9db7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/djvulibre/fix_hongfuzz_crash.patch
@@ -0,0 +1,51 @@
+commit 89d71b01d606e57ecec2c2930c145bb20ba5bbe3
+Author: Leon Bottou <leon@bottou.org>
+Date: Fri Jul 13 08:46:22 2018 -0400
+
+ fix hongfuzz crash.
+
+diff --git a/libdjvu/DjVmDir.cpp b/libdjvu/DjVmDir.cpp
+index d322323..a6a39e0 100644
+--- a/libdjvu/DjVmDir.cpp
++++ b/libdjvu/DjVmDir.cpp
+@@ -299,7 +299,13 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
+ memcpy((char*) strings+strings_size, buffer, length);
+ }
+ DEBUG_MSG("size of decompressed names block=" << strings.size() << "\n");
+-
++ if (strings[strings.size()-1] != 0)
++ {
++ int strings_size=strings.size();
++ strings.resize(strings_size+1);
++ strings[strings_size] = 0;
++ }
++
+ // Copy names into the files
+ const char * ptr=strings;
+ for(pos=files_list;pos;++pos)
+diff --git a/libdjvu/miniexp.cpp b/libdjvu/miniexp.cpp
+index 6a5cd90..828addc 100644
+--- a/libdjvu/miniexp.cpp
++++ b/libdjvu/miniexp.cpp
+@@ -1065,7 +1065,7 @@ print_c_string(const char *s, char *d, int flags, size_t len)
+ c = (unsigned char)(*s++);
+ if (char_quoted(c, flags))
+ {
+- char buffer[10];
++ char buffer[16]; /* 10+1 */
+ static const char *tr1 = "\"\\tnrbf";
+ static const char *tr2 = "\"\\\t\n\r\b\f";
+ buffer[0] = buffer[1] = 0;
+diff --git a/tools/csepdjvu.cpp b/tools/csepdjvu.cpp
+index 7ed13ad..fab9472 100644
+--- a/tools/csepdjvu.cpp
++++ b/tools/csepdjvu.cpp
+@@ -1834,7 +1834,7 @@ main(int argc, const char **argv)
+ ByteStream::create(GURL::Filename::UTF8(arg),"rb");
+ BufferByteStream ibs(*fbs);
+ do {
+- char pagename[16];
++ char pagename[20];
+ sprintf(pagename, "p%04d.djvu", ++pageno);
+ if (opts.verbose > 1)
+ DjVuPrintErrorUTF8("%s","--------------------\n");
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
new file mode 100644
index 000000000000..cf02efdcece5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, substituteAll, requests, dmenu }:
+
+buildPythonApplication rec {
+ pname = "dmensamenu";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "dotlambda";
+ repo = "dmensamenu";
+ rev = version;
+ sha256 = "15c8g2vdban3dw3g979icypgpx52irpvv39indgk19adicgnzzqp";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./dmenu-path.patch;
+ inherit dmenu;
+ })
+ ];
+
+ propagatedBuildInputs = [
+ requests
+ ];
+
+ # No tests implemented
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/dotlambda/dmensamenu";
+ description = "Print German canteen menus using dmenu and OpenMensa";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dotlambda ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dmensamenu/dmenu-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/dmensamenu/dmenu-path.patch
new file mode 100644
index 000000000000..1508e5142d29
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dmensamenu/dmenu-path.patch
@@ -0,0 +1,13 @@
+diff --git a/dmensamenu/dmensamenu.py b/dmensamenu/dmensamenu.py
+index 7df49f2..052ef1b 100644
+--- a/dmensamenu/dmensamenu.py
++++ b/dmensamenu/dmensamenu.py
+@@ -99,7 +99,7 @@ def main():
+ parser.add_argument('--city',
+ help='When searching for a canteen, only show the ones from the city specified'
+ +' (case-insensitive).')
+- parser.add_argument('--dmenu', metavar='CMD', default='dmenu -i -l "$lines" -p "$date"',
++ parser.add_argument('--dmenu', metavar='CMD', default='@dmenu@/bin/dmenu -i -l "$lines" -p "$date"',
+ help='Command to execute. '
+ 'Can be used to pass custom parameters to dmenu. '
+ 'The shell variable $lines will be set to the number of items on the menu '
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dmenu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dmenu/default.nix
new file mode 100644
index 000000000000..f83c5fc7f01f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dmenu/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, libX11, libXinerama, libXft, zlib, patches ? null }:
+
+stdenv.mkDerivation rec {
+ name = "dmenu-5.0";
+
+ src = fetchurl {
+ url = "https://dl.suckless.org/tools/${name}.tar.gz";
+ sha256 = "1lvfxzg3chsgcqbc2vr0zic7vimijgmbvnspayx73kyvqi1f267y";
+ };
+
+ buildInputs = [ libX11 libXinerama zlib libXft ];
+
+ inherit patches;
+
+ postPatch = ''
+ sed -ri -e 's!\<(dmenu|dmenu_path|stest)\>!'"$out/bin"'/&!g' dmenu_run
+ sed -ri -e 's!\<stest\>!'"$out/bin"'/&!g' dmenu_path
+ '';
+
+ preConfigure = ''
+ sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk
+ '';
+
+ makeFlags = [ "CC:=$(CC)" ];
+
+ meta = with stdenv.lib; {
+ description = "A generic, highly customizable, and efficient menu for the X Window System";
+ homepage = "https://tools.suckless.org/dmenu";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pSub globin ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix
new file mode 100644
index 000000000000..250a7567d782
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, meson, ninja, cairo, pango, pkg-config, wayland-protocols
+, glib, wayland, libxkbcommon, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "dmenu-wayland-unstable";
+ version = "2020-07-06";
+
+ src = fetchFromGitHub {
+ owner = "nyyManni";
+ repo = "dmenu-wayland";
+ rev = "304c8e917651ee02b16ebf0b7097a5c53fa2236b";
+ sha256 = "0rkpmpk7xkcfbnv9vpg8n65423z5xpgp0hm2vg0rxf9354bjin7k";
+ };
+
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ meson ninja pkg-config makeWrapper ];
+ buildInputs = [ cairo pango wayland-protocols glib wayland libxkbcommon ];
+
+ postInstall = ''
+ wrapProgram $out/bin/dmenu-wl_run \
+ --prefix PATH : $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ license = licenses.mit;
+ platforms = platforms.linux;
+ description = "dmenu for wayland-compositors";
+ homepage = "https://github.com/nyyManni/dmenu-wayland";
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dockbarx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dockbarx/default.nix
new file mode 100644
index 000000000000..463f7db6b0c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dockbarx/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, pythonPackages, gnome2, keybinder }:
+
+pythonPackages.buildPythonApplication rec {
+ ver = "0.93";
+ name = "dockbarx-${ver}";
+
+ src = fetchFromGitHub {
+ owner = "M7S";
+ repo = "dockbarx";
+ rev = ver;
+ sha256 = "1h1g2vag5vnx87sa1f0qi8rq7wlr2ymvkrdr08kk7cma4wk0x6hg";
+ };
+
+ postPatch = ''
+ substituteInPlace setup.py --replace /usr/ ""
+ substituteInPlace setup.py --replace '"/", "usr", "share",' '"share",'
+ substituteInPlace dockbarx/applets.py --replace /usr/share/ $out/share/
+ substituteInPlace dockbarx/dockbar.py --replace /usr/share/ $out/share/
+ substituteInPlace dockbarx/iconfactory.py --replace /usr/share/ $out/share/
+ substituteInPlace dockbarx/theme.py --replace /usr/share/ $out/share/
+ substituteInPlace dockx_applets/battery_status.py --replace /usr/share/ $out/share/
+ substituteInPlace dockx_applets/namebar.py --replace /usr/share/ $out/share/
+ substituteInPlace dockx_applets/namebar_window_buttons.py --replace /usr/share/ $out/share/
+ substituteInPlace dockx_applets/volume-control.py --replace /usr/share/ $out/share/
+ '';
+
+ propagatedBuildInputs = (with pythonPackages; [ pygtk pyxdg dbus-python pillow xlib ])
+ ++ (with gnome2; [ gnome_python gnome_python_desktop ])
+ ++ [ keybinder ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://launchpad.net/dockbar/";
+ description = "Lightweight taskbar / panel replacement for Linux which works as a stand-alone dock";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.volth ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/Gemfile
new file mode 100644
index 000000000000..2706a85e9d89
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'doing', '1.0.10pre'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/Gemfile.lock
new file mode 100644
index 000000000000..1b969869f76c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/Gemfile.lock
@@ -0,0 +1,25 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ chronic (0.10.2)
+ deep_merge (1.2.1)
+ doing (1.0.10pre)
+ chronic (~> 0.10, >= 0.10.2)
+ deep_merge
+ gli (~> 2.17.1)
+ haml (= 4.0.3)
+ json (~> 1.8.1)
+ gli (2.17.1)
+ haml (4.0.3)
+ tilt
+ json (1.8.6)
+ tilt (2.0.8)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ doing (= 1.0.10pre)
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/default.nix
new file mode 100644
index 000000000000..e539cf3ae19e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/default.nix
@@ -0,0 +1,25 @@
+{ lib, bundlerEnv, ruby, bundlerUpdateScript
+}:
+
+bundlerEnv {
+ pname = "doing";
+ version = (import ./gemset.nix).doing.version;
+
+ inherit ruby;
+ gemdir = ./.;
+
+ passthru.updateScript = bundlerUpdateScript "doing";
+
+ meta = with lib; {
+ description = "A command line tool for keeping track of what you’re doing and tracking what you’ve done";
+ longDescription = ''
+ doing is a basic CLI for adding and listing "what was I doing" reminders
+ in a TaskPaper-formatted text file. It allows for multiple
+ sections/categories and flexible output formatting.
+ '';
+ homepage = "https://brettterpstra.com/projects/doing/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ktf nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/gemset.nix
new file mode 100644
index 000000000000..b30a124bb58b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/doing/gemset.nix
@@ -0,0 +1,60 @@
+{
+ chronic = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
+ type = "gem";
+ };
+ version = "0.10.2";
+ };
+ deep_merge = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q3picw7zx1xdkybmrnhmk2hycxzaa0jv4gqrby1s90dy5n7fmsb";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ doing = {
+ dependencies = ["chronic" "deep_merge" "gli" "haml" "json"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y42yc7h45sz9hqj3g1dd77ipx58l7v64i7mrsj3is2f5rszd1rv";
+ type = "gem";
+ };
+ version = "1.0.10pre";
+ };
+ gli = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g7g3lxhh2b4h4im58zywj9vcfixfgndfsvp84cr3x67b5zm4kaq";
+ type = "gem";
+ };
+ version = "2.17.1";
+ };
+ haml = {
+ dependencies = ["tilt"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l9zhfdk9z7xjfdp108r9fw4xa55hflin7hh3lpafbf9bdz96knr";
+ type = "gem";
+ };
+ version = "4.0.3";
+ };
+ json = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+ type = "gem";
+ };
+ version = "1.8.6";
+ };
+ tilt = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
+ type = "gem";
+ };
+ version = "2.0.8";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/default.nix
new file mode 100644
index 000000000000..999904a21d3c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, mkDerivation, cmake, fetchFromBitbucket, pkgconfig, qtbase, qttools, qtmultimedia, zlib, bzip2, xxd }:
+
+mkDerivation {
+ pname = "doomseeker";
+ version = "2018-03-05";
+
+ src = fetchFromBitbucket {
+ owner = "Doomseeker";
+ repo = "doomseeker";
+ rev = "c2c7f37b1afb";
+ sha256 = "17fna3a604miqsvply3klnmypps4ifz8axgd3pj96z46ybxs8akw";
+ };
+
+ patches = [ ./fix_paths.patch ./qt_build_fix.patch ];
+
+ nativeBuildInputs = [ cmake qttools pkgconfig xxd ];
+ buildInputs = [ qtbase qtmultimedia zlib bzip2 ];
+
+ hardeningDisable = stdenv.lib.optional stdenv.isDarwin "format";
+
+ meta = with stdenv.lib; {
+ homepage = "http://doomseeker.drdteam.org/";
+ description = "Multiplayer server browser for many Doom source ports";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.MP2E ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch
new file mode 100644
index 000000000000..08654c2384cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch
@@ -0,0 +1,40 @@
+diff -ru3 source-old/src/core/datapaths.cpp source-new/src/core/datapaths.cpp
+--- source-old/src/core/datapaths.cpp 1970-01-01 03:00:01.000000000 +0300
++++ source-new/src/core/datapaths.cpp 2018-03-04 00:10:25.247262567 +0300
+@@ -335,7 +335,7 @@
+ paths.append(workingDirectory());
+ paths.append("./");
+ #ifndef Q_OS_WIN32
+- paths.append(INSTALL_PREFIX "/" INSTALL_LIBDIR "/doomseeker/");
++ paths.append(INSTALL_PREFIX "/lib/doomseeker/");
+ #endif
+ paths = uniquePaths(paths);
+ return Strings::combineManyPaths(paths, "engines/");
+diff -ru3 source-old/src/core/pathfinder/pathfinder.cpp source-new/src/core/pathfinder/pathfinder.cpp
+--- source-old/src/core/pathfinder/pathfinder.cpp 1970-01-01 03:00:01.000000000 +0300
++++ source-new/src/core/pathfinder/pathfinder.cpp 2018-03-04 00:09:34.862556976 +0300
+@@ -128,9 +128,7 @@
+ << DataPaths::programFilesDirectory(DataPaths::x64)
+ << DataPaths::programFilesDirectory(DataPaths::x86);
+ #else
+- paths << "/usr/bin" << "/usr/local/bin" << "/usr/share/bin"
+- << "/usr/games/" << "/usr/local/games/"
+- << "/usr/share/games/" << gDefaultDataPaths->workingDirectory() << ".";
++ paths << gDefaultDataPaths->workingDirectory() << ".";
+ #endif
+ QStringList pathsCopy(paths);
+ foreach (const QString &path, pathsCopy)
+diff -ru3 source-old/src/core/pathfinder/wadpathfinder.cpp source-new/src/core/pathfinder/wadpathfinder.cpp
+--- source-old/src/core/pathfinder/wadpathfinder.cpp 1970-01-01 03:00:01.000000000 +0300
++++ source-new/src/core/pathfinder/wadpathfinder.cpp 2018-03-04 00:09:56.822865339 +0300
+@@ -84,10 +84,6 @@
+ QStringList defaultPaths()
+ {
+ QStringList paths;
+- #ifdef Q_OS_UNIX
+- paths << "/usr/local/share/games/doom/"
+- << "/usr/share/games/doom/";
+- #endif
+ return paths;
+ }
+ };
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch
new file mode 100644
index 000000000000..e21b53b3cc53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch
@@ -0,0 +1,47 @@
+diff -r c2c7f37b1afb src/core/gui/irc/ircdock.cpp
+--- a/src/core/gui/irc/ircdock.cpp Tue Mar 06 00:14:23 2018 +0100
++++ b/src/core/gui/irc/ircdock.cpp Sat Jul 28 16:53:04 2018 -0700
+@@ -32,6 +32,7 @@
+ #include <QInputDialog>
+ #include <QMessageBox>
+ #include <QToolBar>
++#include <QTabBar>
+
+ DClass<IRCDock> : public Ui::IRCDock
+ {
+diff -r c2c7f37b1afb src/core/gui/logdock.cpp
+--- a/src/core/gui/logdock.cpp Tue Mar 06 00:14:23 2018 +0100
++++ b/src/core/gui/logdock.cpp Sat Jul 28 16:53:04 2018 -0700
+@@ -21,6 +21,8 @@
+ // Copyright (C) 2009 "Zalewa" <zalewapl@gmail.com>
+ //------------------------------------------------------------------------------
+
++#include <QAction>
++
+ #include "clipboard.h"
+ #include "logdock.h"
+ #include "log.h"
+diff -r c2c7f37b1afb src/core/gui/serverdetailsdock.cpp
+--- a/src/core/gui/serverdetailsdock.cpp Tue Mar 06 00:14:23 2018 +0100
++++ b/src/core/gui/serverdetailsdock.cpp Sat Jul 28 16:53:04 2018 -0700
+@@ -21,6 +21,7 @@
+ // Copyright (C) 2014 Braden "Blzut3" Obrzut <admin@maniacsvault.net>
+ //------------------------------------------------------------------------------
+
++#include <QAction>
+ #include <QBoxLayout>
+
+ #include "serverdetailsdock.h"
+diff -r c2c7f37b1afb src/core/gui/serverfilterdock.cpp
+--- a/src/core/gui/serverfilterdock.cpp Tue Mar 06 00:14:23 2018 +0100
++++ b/src/core/gui/serverfilterdock.cpp Sat Jul 28 16:53:04 2018 -0700
+@@ -20,6 +20,9 @@
+ //------------------------------------------------------------------------------
+ // Copyright (C) 2011 "Zalewa" <zalewapl@gmail.com>
+ //------------------------------------------------------------------------------
++
++#include <QAction>
++
+ #include "serverfilterdock.h"
+ #include "ui_serverfilterdock.h"
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dotfiles/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
new file mode 100644
index 000000000000..b515074fd475
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "dotfiles";
+ version = "0.6.4";
+
+ src = pythonPackages.fetchPypi {
+ inherit version pname;
+ sha256 = "03qis6m9r2qh00sqbgwsm883s4bj1ibwpgk86yh4l235mdw8jywv";
+ };
+
+ # No tests in archive
+ doCheck = false;
+
+ checkInputs = with pythonPackages; [ pytest ];
+ propagatedBuildInputs = with pythonPackages; [ click ];
+
+ meta = with stdenv.lib; {
+ description = "Easily manage your dotfiles";
+ homepage = "https://github.com/jbernard/dotfiles";
+ license = licenses.isc;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dozenal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dozenal/default.nix
new file mode 100644
index 000000000000..05d3ddb7cfba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dozenal/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchFromGitHub, ncurses, hdate, lua5_2 }:
+
+stdenv.mkDerivation rec {
+ version = "12010904";
+ pname = "dozenal";
+ src = fetchFromGitHub {
+ owner = "dgoodmaniii";
+ repo = "dozenal";
+ rev = "v${version}";
+ sha256 = "1ic63gpdda762x6ks3al71dwgmsy2isicqyr2935bd245jx8s209";
+ };
+ makeFlags = [
+ # author do not use configure and prefix directly using $prefix
+ "prefix=$(out)"
+ # graphical version of dozdc requires xforms, which is not i nixpkgs so I turned it down
+ "XFORMS_FLAGS=-UXFORMS"
+ "LUALIB=-llua"
+ "bindir=$(prefix)/bin/"
+ ];
+ # some include hardcodes the lua libraries path. This is a patch for that
+ patches = [ ./lua-header.patch ];
+ preBuild = "cd dozenal";
+ buildInputs = [ ncurses hdate lua5_2 ];
+ # I remove gdozdc, as I didn't figure all it's dependency yet.
+ postInstall = "rm $out/bin/gdozdc";
+
+ meta = {
+ description = "A complete suite of dozenal (base twelve) programs";
+ longDescription = ''
+ Programs
+
+ doz --- a converter; converts decimal numbers into dozenal. Accepts
+ input in standard or exponential notation (i.e., "1492.2" or "1.4922e3").
+ dec --- a converter; converts dozenal numbers into decimal. Accepts input
+ in standard or exponential notation (i.e., "X44;4" or "X;444e2").
+ dozword --- converts a dozenal number (integers only) into words,
+ according to the Pendlebury system.
+ dozdc --- a full-featured scientific calculator which works in the
+ dozenal base. RPN command line.
+ tgmconv --- a converter for all standard measurements; converts to and
+ from TGM, Imperial, customary, and SI metric.
+ dozpret --- a pretty-printer for dozenal numbers; inserts spacing (or
+ other characters) as desired, and can also transform transdecimal digits
+ from 'X' to 'E' into any character or sequence of characters desired.
+ dozdate --- a more-or-less drop-in replacement for GNU and BSD date, it
+ outputs the date and time in dozenal, as well as containing some TGM
+ extensions.
+ dozstring --- a simple byte converter; absorbs a string either from
+ standard input or a command line argument, leaving it identical but
+ for the numbers, which it converts into dozenal. Options for padding
+ and for not converting specific numbers.
+ doman --- a converter which takes a dozenal integer and
+ emits its equivalent in a non-place-value system, such as
+ Roman numerals. Arbitrary ranks and symbols may be used.
+ Defaults to dozenal Roman numerals.
+ '';
+ homepage = "https://github.com/dgoodmaniii/dozenal/";
+ maintainers = with stdenv.lib.maintainers; [ CharlesHD ];
+ license = stdenv.lib.licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch
new file mode 100644
index 000000000000..45b76e159a11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch
@@ -0,0 +1,16 @@
+diff -ruN dozenal-12010904/dozenal/dozcal/call_lua.c dozenal-patched/dozenal/dozcal/call_lua.c
+--- dozenal-12010904/dozenal/dozcal/call_lua.c 2017-09-04 19:25:01.000000000 +0200
++++ dozenal-patched/dozenal/dozcal/call_lua.c 2018-06-13 10:19:57.821950327 +0200
+@@ -38,9 +38,9 @@
+ #include"utility.h"
+ #include"conv.h"
+ #include"proc_date.h"
+-#include<lua5.2/lua.h>
+-#include<lua5.2/lauxlib.h>
+-#include<lua5.2/lualib.h>
++#include<lua.h>
++#include<lauxlib.h>
++#include<lualib.h>
+
+ void bail(lua_State *L, int err_code, char *filename);
+ int file_prefix(char **s, char *t);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dstask/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dstask/default.nix
new file mode 100644
index 000000000000..0c2f25b2653f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dstask/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "dstask";
+ version = "0.23.1";
+
+ src = fetchFromGitHub {
+ owner = "naggie";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0rfz8jim0xqcwdb5n28942v9r3hbvhjrwdgzvbwc9f9psqg2s8d2";
+ };
+
+ # Set vendorSha256 to null because dstask vendors its dependencies (meaning
+ # that third party dependencies are stored in the repository).
+ #
+ # Ref <https://github.com/NixOS/nixpkgs/pull/87383#issuecomment-633204382>
+ # and <https://github.com/NixOS/nixpkgs/blob/d4226e3a4b5fcf988027147164e86665d382bbfa/pkgs/development/go-modules/generic/default.nix#L18>
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ # The ldflags reduce the executable size by stripping some debug stuff.
+ # The other variables are set so that the output of dstask version shows the
+ # git ref and the release version from github.
+ # Ref <https://github.com/NixOS/nixpkgs/pull/87383#discussion_r432097657>
+ buildFlagsArray = [ ''
+ -ldflags=-w -s
+ -X "github.com/naggie/dstask.VERSION=${version}"
+ -X "github.com/naggie/dstask.GIT_COMMIT=v${version}"
+ '' ];
+
+ subPackages = [ "cmd/dstask.go" ];
+
+ meta = with stdenv.lib; {
+ description = "Command line todo list with super-reliable git sync";
+ homepage = src.meta.homepage;
+ license = licenses.mit;
+ maintainers = with maintainers; [ stianlagstad foxit64 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dunst/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dunst/default.nix
new file mode 100644
index 000000000000..a906669e7c6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dunst/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper
+, pkgconfig, which, perl, libXrandr
+, cairo, dbus, systemd, gdk-pixbuf, glib, libX11, libXScrnSaver
+, libXinerama, libnotify, pango, xorgproto, librsvg, dunstify ? false
+}:
+
+stdenv.mkDerivation rec {
+ pname = "dunst";
+ version = "1.5.0";
+
+ src = fetchFromGitHub {
+ owner = "dunst-project";
+ repo = "dunst";
+ rev = "v${version}";
+ sha256 = "0irwkqcgwkqaylcpvqgh25gn2ysbdm2kydipxfzcq1ddj9ns6f9c";
+ };
+
+ nativeBuildInputs = [ perl pkgconfig which systemd makeWrapper ];
+
+ buildInputs = [
+ cairo dbus gdk-pixbuf glib libX11 libXScrnSaver
+ libXinerama libnotify pango xorgproto librsvg libXrandr
+ ];
+
+ outputs = [ "out" "man" ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "VERSION=$(version)"
+ "SERVICEDIR_DBUS=$(out)/share/dbus-1/services"
+ "SERVICEDIR_SYSTEMD=$(out)/lib/systemd/user"
+ ];
+
+ buildFlags = if dunstify then [ "dunstify" ] else [];
+
+ postInstall = lib.optionalString dunstify ''
+ install -Dm755 dunstify $out/bin
+ '' + ''
+ wrapProgram $out/bin/dunst \
+ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
+ '';
+
+ meta = with lib; {
+ description = "Lightweight and customizable notification daemon";
+ homepage = "https://dunst-project.org/";
+ license = licenses.bsd3;
+ # NOTE: 'unix' or even 'all' COULD work too, I'm not sure
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ domenkozar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/dupeguru/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/dupeguru/default.nix
new file mode 100644
index 000000000000..51e1b77096d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/dupeguru/default.nix
@@ -0,0 +1,71 @@
+{stdenv, python3Packages, fetchpatch, gettext, qt5, fetchFromGitHub}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "dupeguru";
+ version = "4.0.4";
+
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "arsenetar";
+ repo = "dupeguru";
+ rev = version;
+ sha256 = "0ma4f1c6vmpz8gi4sdy43x1ik7wh42wayvk1iq520d3i714kfcpy";
+ fetchSubmodules = true;
+ };
+
+ patches = [
+ # already merged to master, remove next version bump
+ (fetchpatch {
+ name = "remove-m-from-so-var.patch";
+ url = "https://github.com/arsenetar/dupeguru/commit/bd0f53bcbe463c48fe141b73af13542da36d82ba.patch";
+ sha256 = "07iisz8kcr7v8lb21inzj1avlpfhh9k8wcivbd33w49cr3mmnr26";
+ })
+ ];
+
+ nativeBuildInputs = [
+ gettext
+ python3Packages.pyqt5
+ qt5.wrapQtAppsHook
+ ];
+
+ pythonPath = with python3Packages; [
+ pyqt5
+ send2trash
+ sphinx
+ polib
+ hsaudiotag3k
+ ];
+
+ makeFlags = [
+ "PREFIX=${placeholder ''out''}"
+ "NO_VENV=1"
+ ];
+
+ # TODO: package pytest-monkeyplus for running tests
+ # https://github.com/NixOS/nixpkgs/pull/75054/files#r357690123
+ doCheck = false;
+
+ # Avoid double wrapping Python programs.
+ dontWrapQtApps = true;
+
+ # TODO: A bug in python wrapper
+ # see https://github.com/NixOS/nixpkgs/pull/75054#discussion_r357656916
+ preFixup = ''
+ makeWrapperArgs="''${qtWrapperArgs[@]}"
+ '';
+
+ # Executable in $out/bin is a symlink to $out/share/dupeguru/run.py
+ # so wrapPythonPrograms hook does not handle it automatically.
+ postFixup = ''
+ wrapPythonProgramsIn "$out/share/dupeguru" "$out $pythonPath"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GUI tool to find duplicate files in a system";
+ homepage = "https://github.com/arsenetar/dupeguru";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.novoxudonoser ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/eaglemode/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/eaglemode/default.nix
new file mode 100644
index 000000000000..052e290120d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/eaglemode/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, perl, libX11, libXinerama, libjpeg, libpng, libtiff, pkgconfig,
+librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xineLib, ghostscript, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "eaglemode";
+ version = "0.94.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/eaglemode/${pname}-${version}.tar.bz2";
+ sha256 = "10zxih7gmyhq0az1mnsw2x563l4bbwcns794s4png8rf4d6hjszm";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ perl libX11 libXinerama libjpeg libpng libtiff
+ librsvg glib gtk2 libXxf86vm libXext poppler xineLib ghostscript makeWrapper ];
+
+ # The program tries to dlopen Xxf86vm, Xext and Xinerama, so we use the
+ # trick on NIX_LDFLAGS and dontPatchELF to make it find them.
+ # I use 'yes y' to skip a build error linking with xineLib,
+ # because xine stopped exporting "_x_vo_new_port"
+ # https://sourceforge.net/projects/eaglemode/forums/forum/808824/topic/5115261
+ buildPhase = ''
+ export NIX_LDFLAGS="$NIX_LDFLAGS -lXxf86vm -lXext -lXinerama"
+ perl make.pl build
+ '';
+
+ dontPatchELF = true;
+ # eaglemode expects doc to be in the root directory
+ forceShare = [ "man" "info" ];
+
+ installPhase = ''
+ perl make.pl install dir=$out
+ wrapProgram $out/bin/eaglemode --set EM_DIR "$out" --prefix LD_LIBRARY_PATH : "$out/lib" --prefix PATH : "${ghostscript}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://eaglemode.sourceforge.net";
+ description = "Zoomable User Interface";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch
new file mode 100644
index 000000000000..4f56b82368fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch
@@ -0,0 +1,1091 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..55e4495
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,1085 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "aho-corasick"
++version = "0.7.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "arrayvec"
++version = "0.4.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "atk"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "atk-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (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.41"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace-sys 0.1.35 (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.68 (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.35"
++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.68 (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 = "cairo-rs"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cairo-sys-rs"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (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.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "chrono"
++version = "0.4.11"
++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 = "effitask"
++version = "0.1.0"
++dependencies = [
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "human-panic 1.0.3 (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)",
++ "notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "filetime"
++version = "0.2.9"
++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.68 (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 = "fragile"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "fsevent"
++version = "0.4.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)",
++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fsevent-sys"
++version = "2.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (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 = "gdk"
++version = "0.11.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)",
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-pixbuf"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-pixbuf-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "getopts"
++version = "0.2.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-width 0.1.7 (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.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (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 = "gio"
++version = "0.7.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)",
++ "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gio-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "glib"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "glib-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gobject-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gtk"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk-sys 0.9.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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gtk-sys"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "human-panic"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inotify"
++version = "0.7.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)",
++ "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inotify-sys"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (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.68 (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 = "lazycell"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lexical-core"
++version = "0.6.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.68"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "log"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "memchr"
++version = "2.3.3"
++source = "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.9 (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.68 (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-extras"
++version = "2.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazycell 1.2.1 (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)",
++ "slab 0.4.2 (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 = "net2"
++version = "0.2.33"
++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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "nodrop"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "nom"
++version = "5.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "notify"
++version = "4.0.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walkdir 2.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 = "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 = "os_type"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pango"
++version = "0.7.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)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pango-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pkg-config"
++version = "0.3.17"
++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 = "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.10"
++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 = "pulldown-cmark"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.6.0 (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.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_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)",
++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.2"
++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)",
++ "rand_core 0.5.1 (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.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 = "redox_syscall"
++version = "0.1.56"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "regex"
++version = "1.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.17 (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.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "relm"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (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 = "relm-attributes"
++version = "0.16.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "relm-derive"
++version = "0.18.0"
++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)",
++ "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 = "relm-gen-widget"
++version = "0.16.0"
++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)",
++ "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 = "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.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.4 (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.106"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde_derive"
++version = "1.0.106"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.17 (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 = "static_assertions"
++version = "0.3.4"
++source = "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.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.3 (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 = "termcolor"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.4 (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.68 (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 = "todo-txt"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "chrono 0.4.11 (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)",
++ "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde 1.0.106 (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-width"
++version = "0.1.7"
++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 = "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)",
++]
++
++[[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.4 (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 = "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.4"
++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 = "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 = "xdg"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[metadata]
++"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
++"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a"
++"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++"checksum backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "a4ed64ae6d9ebfd9893193c4b2532b1292ec97bd8271c9d7d0fa90cd78a34cba"
++"checksum backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7de8aba10a69c8e8d7622c5710229485ec32e9d55fdad160ea559c086fdcd118"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c"
++"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
++"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
++"checksum filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
++"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
++"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
++"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
++"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 gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5"
++"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc"
++"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
++"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
++"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
++"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
++"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3"
++"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
++"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b"
++"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
++"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
++"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60"
++"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
++"checksum human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36"
++"checksum inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8"
++"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
++"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++"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 lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
++"checksum lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"
++"checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
++"checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
++"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
++"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
++"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
++"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
++"checksum notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd"
++"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 os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
++"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786"
++"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
++"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
++"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
++"checksum proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
++"checksum pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e"
++"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
++"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++"checksum regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3"
++"checksum regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
++"checksum relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4127341a75eb96dc99ba39b87a2783bb011b20fbdbafc25ed2f58216d2ff714"
++"checksum relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a8db24611fee7bb021f3aad7c4eaaba6d360947860b78b933a4d3ef86079b7f"
++"checksum relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec66397054dc1ea6c658159866b9978add6a90655aba5dd4a90c34d2e63f9d69"
++"checksum relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49ad47b054bdc12c90fb6b37c81ef785ee2a4a8a92c4e150b18325052766fbb0"
++"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.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76"
++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++"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.106 (registry+https://github.com/rust-lang/crates.io-index)" = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
++"checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
++"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3"
++"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
++"checksum syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03"
++"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
++"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 todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d77aa2f90bd72b990bb2b8de52289b7a34f51cf035627df5e3ce361b321b417"
++"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
++"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++"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 uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11"
++"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 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.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e"
++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
++"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/effitask/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/effitask/default.nix
new file mode 100644
index 000000000000..26008c133b82
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/effitask/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, gtk3
+, rust
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "effitask";
+ version = "1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "sanpii";
+ repo = pname;
+ rev = version;
+ sha256 = "09bffxdp43s8b1rpmsgqr2kyz3i4jbd2yrwbxw21fj3sf3mwb9ig";
+ };
+
+ # workaround for missing Cargo.lock file https://github.com/sanpii/effitask/issues/48
+ cargoPatches = [ ./cargo-lock.patch ];
+
+ cargoSha256 = "0dvmp23kny6rlv6c0mfyy3cmz1bi5wcm1mxps4z67lym5kxfd362";
+
+ buildInputs = [ openssl gtk3 ];
+
+ nativeBuildInputs = [ pkg-config ];
+
+ # default installPhase don't install assets
+ installPhase = ''
+ runHook preInstall
+ make install PREFIX="$out" TARGET="target/${rust.toRustTarget stdenv.hostPlatform}/release/effitask"
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Graphical task manager, based on the todo.txt format";
+ longDescription = ''
+ To use it as todo.sh add-on, create a symlink like this:
+ mkdir ~/.todo.actions.d/
+ ln -s $(which effitask) ~/.todo.actions.d/et
+
+ Or use it as standalone program by defining some environment variables
+ like described in the projects readme.
+ '';
+ homepage = "https://github.com/sanpii/effitask";
+ maintainers = with maintainers; [ davidak ];
+ license = with licenses; [ mit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/electron-cash/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
new file mode 100644
index 000000000000..fe263dd6692b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
@@ -0,0 +1,89 @@
+{ lib, fetchFromGitHub, python3Packages, qtbase, fetchpatch, wrapQtAppsHook
+, secp256k1 }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "electron-cash";
+ version = "4.2.0";
+
+ src = fetchFromGitHub {
+ owner = "Electron-Cash";
+ repo = "Electron-Cash";
+ rev = version;
+ sha256 = "0ixsx4224jilc5zis6wbsbxqxv10mm5sksrzq15xp30zz0bzb6md";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ dnspython
+ ecdsa
+ jsonrpclib-pelix
+ matplotlib
+ pbkdf2
+ pyaes
+ pycrypto
+ pyqt5
+ pysocks
+ qrcode
+ requests
+ tlslite-ng
+ qdarkstyle
+ stem
+
+ # plugins
+ keepkey
+ trezor
+ btchip
+ ];
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+
+ postPatch = ''
+ substituteInPlace contrib/requirements/requirements.txt \
+ --replace "qdarkstyle==2.6.8" "qdarkstyle<3"
+
+ substituteInPlace setup.py \
+ --replace "(share_dir" "(\"share\""
+ '';
+
+ checkInputs = with python3Packages; [ pytest ];
+
+ checkPhase = ''
+ unset HOME
+ pytest electroncash/tests
+ '';
+
+ postInstall = ''
+ substituteInPlace $out/share/applications/electron-cash.desktop \
+ --replace "Exec=electron-cash" "Exec=$out/bin/electron-cash"
+ '';
+
+ # If secp256k1 wasn't added to the library path, the following warning is given:
+ #
+ # Electron Cash was unable to find the secp256k1 library on this system.
+ # Elliptic curve cryptography operations will be performed in slow
+ # Python-only mode.
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ makeWrapperArgs+=(
+ "--prefix" "LD_LIBRARY_PATH" ":" "${secp256k1}/lib"
+ )
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/electron-cash help >/dev/null
+ '';
+
+ meta = with lib; {
+ description = "A Bitcoin Cash SPV Wallet";
+ longDescription = ''
+ An easy-to-use Bitcoin Cash client featuring wallets generated from
+ mnemonic seeds (in addition to other, more advanced, wallet options)
+ and the ability to perform transactions without downloading a copy
+ of the blockchain.
+ '';
+ homepage = "https://www.electroncash.org/";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ lassulus nyanloutre ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/dash.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/dash.nix
new file mode 100644
index 000000000000..33a8284744e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/dash.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+ version = "2.9.3.1";
+ pname = "electrum-dash";
+
+ src = fetchurl {
+ url = "https://github.com/akhavr/electrum-dash/releases/download/${version}/Electrum-DASH-${version}.tar.gz";
+ #"https://github.com/dashpay/electrum-dash/releases/download/v${version}/Electrum-DASH-${version}.tar.gz";
+ sha256 = "9b7ac205f63fd4bfb15d77a34a4451ef82caecf096f31048a7603bd276dfc33e";
+ };
+
+ propagatedBuildInputs = with python2Packages; [
+ dnspython
+ ecdsa
+ pbkdf2
+ protobuf
+ pyasn1
+ pyasn1-modules
+ pycrypto
+ pyqt4
+ qrcode
+ requests
+ pyaes
+ tlslite-ng
+ x11_hash
+ mnemonic
+ jsonrpclib
+
+ # plugins
+ trezor
+ ];
+
+ preInstall = ''
+ mkdir -p $out/share
+ sed -i 's@usr_share = .*@usr_share = os.getenv("out")+"/share"@' setup.py
+ pyrcc4 icons.qrc -o gui/qt/icons_rc.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Electrum DASH";
+ homepage = "https://github.com/dashpay/electrum-dash";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ np ];
+ knownVulnerabilities = [ "CVE-2018-1000022" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/default.nix
new file mode 100644
index 000000000000..df6c99768e84
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/default.nix
@@ -0,0 +1,159 @@
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, wrapQtAppsHook
+, python3
+, zbar
+, secp256k1
+, enableQt ? true
+# for updater.nix
+, writeScript
+, common-updater-scripts
+, bash
+, coreutils
+, curl
+, gnugrep
+, gnupg
+, gnused
+, nix
+}:
+
+let
+ version = "4.0.6";
+
+ # electrum is not compatible with dnspython 2.0.0 yet
+ # use the latest 1.x release instead
+ py = python3.override {
+ packageOverrides = self: super: {
+ dnspython = super.dnspython_1;
+ };
+ };
+
+ libsecp256k1_name =
+ if stdenv.isLinux then "libsecp256k1.so.0"
+ else if stdenv.isDarwin then "libsecp256k1.0.dylib"
+ else "libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}";
+
+ libzbar_name =
+ if stdenv.isLinux then "libzbar.so.0"
+ else "libzbar${stdenv.hostPlatform.extensions.sharedLibrary}";
+
+ # Not provided in official source releases, which are what upstream signs.
+ tests = fetchFromGitHub {
+ owner = "spesmilo";
+ repo = "electrum";
+ rev = version;
+ sha256 = "0mdbg2sq56nv0hx0rrcbgrv1lv89nqc6cqigivgk665hhjm4v5kq";
+
+ extraPostFetch = ''
+ mv $out ./all
+ mv ./all/electrum/tests $out
+ '';
+ };
+in
+
+py.pkgs.buildPythonApplication {
+ pname = "electrum";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
+ sha256 = "0sp8p720g3rqnh52ddhaw2v4hjgpxcwbackw9qc1g9xac1q0942d";
+ };
+
+ postUnpack = ''
+ # can't symlink, tests get confused
+ cp -ar ${tests} $sourceRoot/electrum/tests
+ '';
+
+ nativeBuildInputs = stdenv.lib.optionals enableQt [ wrapQtAppsHook ];
+
+ propagatedBuildInputs = with py.pkgs; [
+ aiohttp
+ aiohttp-socks
+ aiorpcx
+ attrs
+ bitstring
+ dnspython
+ ecdsa
+ jsonrpclib-pelix
+ matplotlib
+ pbkdf2
+ protobuf
+ pycryptodomex
+ pysocks
+ qrcode
+ requests
+ tlslite-ng
+ # plugins
+ ckcc-protocol
+ keepkey
+ trezor
+ btchip
+ ] ++ stdenv.lib.optionals enableQt [ pyqt5 qdarkstyle ];
+
+ preBuild = ''
+ sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py
+ substituteInPlace ./electrum/ecc_fast.py \
+ --replace ${libsecp256k1_name} ${secp256k1}/lib/libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}
+ '' + (if enableQt then ''
+ substituteInPlace ./electrum/qrscanner.py \
+ --replace ${libzbar_name} ${zbar.lib}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary}
+ '' else ''
+ sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt
+ '');
+
+ postInstall = stdenv.lib.optionalString stdenv.isLinux ''
+ # Despite setting usr_share above, these files are installed under
+ # $out/nix ...
+ mv $out/${python3.sitePackages}/nix/store"/"*/share $out
+ rm -rf $out/${python3.sitePackages}/nix
+
+ substituteInPlace $out/share/applications/electrum.desktop \
+ --replace 'Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum %u"' \
+ "Exec=$out/bin/electrum %u" \
+ --replace 'Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum --testnet %u"' \
+ "Exec=$out/bin/electrum --testnet %u"
+
+ '';
+
+ postFixup = stdenv.lib.optionalString enableQt ''
+ wrapQtApp $out/bin/electrum
+ '';
+
+ checkInputs = with py.pkgs; [ pytest ];
+
+ checkPhase = ''
+ py.test electrum/tests
+ $out/bin/electrum help >/dev/null
+ '';
+
+ passthru.updateScript = import ./update.nix {
+ inherit (stdenv) lib;
+ inherit
+ writeScript
+ common-updater-scripts
+ bash
+ coreutils
+ curl
+ gnupg
+ gnugrep
+ gnused
+ nix
+ ;
+ };
+
+ meta = with stdenv.lib; {
+ description = "A lightweight Bitcoin wallet";
+ longDescription = ''
+ An easy-to-use Bitcoin client featuring wallets generated from
+ mnemonic seeds (in addition to other, more advanced, wallet options)
+ and the ability to perform transactions without downloading a copy
+ of the blockchain.
+ '';
+ homepage = "https://electrum.org/";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ehmry joachifm np prusnak ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/ltc.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
new file mode 100644
index 000000000000..7d6480b4696c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, fetchurl
+, python3Packages
+, wrapQtAppsHook
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "electrum-ltc";
+ version = "3.3.8.1";
+
+ src = fetchurl {
+ url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz";
+ sha256 = "0kxcx1xf6h9z8x0k483d6ykpnmfr30n6z3r6lgqxvbl42pq75li7";
+ };
+
+ nativeBuildInputs = with python3Packages; [ pyqt5 wrapQtAppsHook ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pyaes
+ ecdsa
+ pbkdf2
+ requests
+ qrcode
+ py_scrypt
+ pyqt5
+ protobuf
+ dnspython
+ jsonrpclib-pelix
+ pysocks
+ trezor
+ btchip
+ ];
+
+ preBuild = ''
+ sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py
+ pyrcc5 icons.qrc -o gui/qt/icons_rc.py
+ # Recording the creation timestamps introduces indeterminism to the build
+ sed -i '/Created: .*/d' gui/qt/icons_rc.py
+ '';
+
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+
+ checkPhase = ''
+ $out/bin/electrum-ltc help >/dev/null
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Litecoin thin client";
+ longDescription = ''
+ Electrum-LTC is a simple, but powerful Litecoin wallet. A twelve-word
+ security passphrase (or “seed”) leaves intruders stranded and your peace
+ of mind intact. Keep it on paper, or in your head... and never worry
+ about losing your litecoins to theft or hardware failure. No waiting, no
+ lengthy blockchain downloads and no syncing to the network.
+ '';
+ homepage = "https://electrum-ltc.org/";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/update.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/update.nix
new file mode 100644
index 000000000000..247fabe3891f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/electrum/update.nix
@@ -0,0 +1,59 @@
+{ lib
+, writeScript
+, common-updater-scripts
+, bash
+, coreutils
+, curl
+, gnugrep
+, gnupg
+, gnused
+, nix
+}:
+
+with lib;
+
+let
+ downloadPageUrl = "https://download.electrum.org";
+
+ signingKeys = ["6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6"];
+in
+
+writeScript "update-electrum" ''
+#! ${bash}/bin/bash
+
+set -eu -o pipefail
+
+export PATH=${makeBinPath [
+ common-updater-scripts
+ coreutils
+ curl
+ gnugrep
+ gnupg
+ gnused
+ nix
+]}
+
+version=$(curl -L --list-only -- '${downloadPageUrl}' \
+ | grep -Po '<a href="\K([[:digit:]]+\.?)+' \
+ | sort -Vu \
+ | tail -n1)
+
+srcName=Electrum-$version
+srcFile=$srcName.tar.gz
+srcUrl="${downloadPageUrl}/$version/$srcFile"
+sigUrl=$srcUrl.asc
+sigFile=$srcFile.asc
+
+[[ -e "$srcFile" ]] || curl -L -o "$srcFile" -- "$srcUrl"
+[[ -e "$sigFile" ]] || curl -L -o "$sigFile" -- "$sigUrl"
+
+export GNUPGHOME=$PWD/gnupg
+mkdir -m 700 -p "$GNUPGHOME"
+
+gpg --batch --recv-keys ${concatStringsSep " " (map (x: "'${x}'") signingKeys)}
+gpg --batch --verify "$sigFile" "$srcFile"
+
+sha256=$(nix-prefetch-url --type sha256 "file://$PWD/$srcFile")
+
+update-source-version electrum "$version" "$sha256"
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/elf-dissector/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/elf-dissector/default.nix
new file mode 100644
index 000000000000..36ceb49d5c4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/elf-dissector/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, fetchgit, lib, cmake, extra-cmake-modules, kitemmodels
+, libiberty, libelf, libdwarf, libopcodes }:
+
+mkDerivation rec {
+ pname = "elf-dissector";
+ version = "unstable-2020-11-14";
+
+ src = fetchgit {
+ url = "https://invent.kde.org/sdk/elf-dissector.git";
+ rev = "d1700e76e3f60aff0a2a9fb63bc001251d2be522";
+ sha256 = "1h1xr3ag1sbf005drcx8g8dc5mk7fb2ybs73swrld7clcawhxnk8";
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+ buildInputs = [ kitemmodels libiberty libelf libdwarf libopcodes ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ homepage = "https://invent.kde.org/sdk/elf-dissector";
+ description = "Tools for inspecting, analyzing and optimizing ELF files";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ehmry ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/elogind/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/elogind/default.nix
new file mode 100644
index 000000000000..78dc54497dd9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/elogind/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, meson
+, ninja
+, m4
+, gperf
+, getent
+, libcap
+, gettext
+, pkgconfig
+, udev
+, eudev
+, libxslt
+, python3
+, docbook5
+, docbook_xsl
+, docbook_xsl_ns
+, docbook_xml_dtd_42
+, docbook_xml_dtd_45
+
+# Defaulting to false because usually the rationale for using elogind is to
+# use it in situation where a systemd dependency does not work (especially
+# when building with musl, which elogind explicitly supports).
+, enableSystemd ? false
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "elogind";
+ version = "243.7";
+
+ src = fetchFromGitHub {
+ owner = "elogind";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0cihdf7blhncm2359qxli24j9l3dkn15gjys5vpjwny80zlym5ma";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ m4
+ pkgconfig
+ gperf
+ getent
+ libcap
+ gettext
+ libxslt.bin # xsltproc
+ docbook5 docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 docbook_xml_dtd_45 # needed for docbook without Internet
+ (python3.withPackages (p: with p; [ lxml ])) # fixes: man/meson.build:111:0: ERROR: Could not execute command "/build/source/tools/xml_helper.py".
+ ];
+
+ buildInputs =
+ if enableSystemd then [ udev ] else [ eudev ];
+
+ # Inspired by the systemd `preConfigure`.
+ # Conceptually we should patch all files required during the build, but not scripts
+ # supposed to run at run-time of the software (important for cross-compilation).
+ # This package seems to have mostly scripts that run at build time.
+ preConfigure = ''
+ for dir in tools src/test; do
+ patchShebangs $dir
+ done
+
+ patchShebangs src/basic/generate-*.{sh,py}
+ '';
+
+ mesonFlags = [
+ "-Drootprefix=${placeholder "out"}"
+ "-Dsysconfdir=${placeholder "out"}/etc"
+ ];
+
+ meta = {
+ homepage = "https://github.com/elogind/elogind";
+ description = ''The systemd project's "logind", extracted to a standalone package'';
+ platforms = platforms.linux; # probably more
+ license = licenses.lgpl21Plus;
+ maintainers = with maintainers; [ nh2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/emem/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/emem/default.nix
new file mode 100644
index 000000000000..e0fcc221100e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/emem/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, jdk }:
+
+stdenv.mkDerivation rec {
+ pname = "emem";
+ version = "0.2.50";
+
+ inherit jdk;
+
+ src = fetchurl {
+ url = "https://github.com/ebzzry/${pname}/releases/download/v${version}/${pname}.jar";
+ sha256 = "18x3s3jrph8k3pc75jgwkfqazygpsx93zjxx68zms58my17cybh1";
+ };
+
+ phases = [ "buildPhase" "installPhase" ];
+
+ buildPhase = ''
+ mkdir -p $out/bin $out/share/java
+ '';
+
+ installPhase = ''
+ cp $src $out/share/java/${pname}.jar
+
+ cat > $out/bin/${pname} << EOF
+#! $SHELL
+$jdk/bin/java -jar $out/share/java/${pname}.jar "\$@"
+EOF
+
+ chmod +x $out/bin/${pname}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ebzzry/emem";
+ description = "A trivial Markdown to HTML converter";
+ license = licenses.epl10;
+ maintainers = [ maintainers.ebzzry ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/epdfview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/epdfview/default.nix
new file mode 100644
index 000000000000..7cbae2271aea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/epdfview/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, fetchpatch, pkgconfig, gtk2, poppler }:
+
+stdenv.mkDerivation rec {
+ pname = "epdfview";
+ version = "0.1.8";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/e/epdfview/epdfview_${version}.orig.tar.gz";
+ sha256 = "0ibyb60a0b4n34bsjgvhdw8yf24463ky0hpmf6a2jjqsbm5g4v64";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 poppler ];
+
+ hardeningDisable = [ "format" ];
+
+ patches = [ (fetchpatch {
+ name = "epdfview-0.1.8-glib2-headers.patch";
+ url = "https://projects.archlinux.org/svntogit/community.git/plain/trunk/epdfview-0.1.8-glib2-headers.patch?h=packages/epdfview&id=40ba115c860bdec31d03a30fa594a7ec2864d634";
+ sha256 = "17df6s1zij5ficj67xszq6kd88cy620az3ic55065ccnmsd73f8h";
+ })
+ (fetchpatch {
+ name = "epdfview-0.1.8-modern-cups.patch";
+ url = "https://projects.archlinux.org/svntogit/community.git/plain/trunk/epdfview-0.1.8-modern-cups.patch?h=packages/epdfview&id=40ba115c860bdec31d03a30fa594a7ec2864d634";
+ sha256 = "07yvgvai2bvbr5fa1mv6lg7nqr0qyryjn1xyjlh8nidg9k9vv001";
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://packages.debian.org/wheezy/epdfview";
+ description = "A lightweight PDF document viewer using Poppler and GTK";
+ longDescription = ''
+ ePDFView is a free lightweight PDF document viewer using Poppler and
+ GTK libraries. The aim of ePDFView is to make a simple PDF document
+ viewer, in the lines of Evince but without using the Gnome libraries.
+ '';
+ license = licenses.gpl2;
+ maintainers = [ maintainers.astsmtl ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/epr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/epr/default.nix
new file mode 100644
index 000000000000..478422a1c5c8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/epr/default.nix
@@ -0,0 +1,21 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "epr";
+ version = "2.3.0b";
+
+ src = fetchFromGitHub {
+ owner = "wustho";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1a6md3015284hzmx0sby5kl59p7lwv73sq7sid35vrr15zrl0aw7";
+ };
+
+ meta = with lib; {
+ description = "CLI Epub Reader";
+ homepage = "https://github.com/wustho/epr";
+ license = licenses.mit;
+ maintainers = [ maintainers.Br1ght0ne ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/et/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/et/default.nix
new file mode 100644
index 000000000000..9ab3fda96dc2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/et/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libnotify, gdk-pixbuf }:
+
+stdenv.mkDerivation rec {
+ pname = "et";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "oxzi";
+ repo = "et";
+ rev = version;
+ sha256 = "0i0lgmnly8n7y4y6pb10pxgxyz8s5zk26k8z1g1578v1wan01lnq";
+ };
+
+ buildInputs = [ libnotify gdk-pixbuf ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp et $out/bin
+ cp et-status.sh $out/bin/et-status
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Minimal libnotify-based (egg) timer";
+ homepage = "https://github.com/oxzi/et";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ oxzi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix
new file mode 100644
index 000000000000..5e3a85c3b93f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix
@@ -0,0 +1,37 @@
+{ lib, python3Packages, radicale3 }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "etesync-dav";
+ version = "0.20.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "1q8h89hqi4kxphn1g5nbcia0haz5k57is9rycwaabm55mj9s9fah";
+ };
+
+ postPatch = ''
+ substituteInPlace setup.py --replace "Radicale==" "Radicale>="
+ '';
+
+ propagatedBuildInputs = with python3Packages; [
+ etesync
+ flask
+ flask_wtf
+ radicale3
+ ];
+
+ checkInputs = with python3Packages; [
+ pytest
+ ];
+
+ checkPhase = ''
+ pytest
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.etesync.com/";
+ description = "Secure, end-to-end encrypted, and privacy respecting sync for contacts, calendars and tasks";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ valodim ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix
new file mode 100644
index 000000000000..7cee0487ea82
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchzip, fltk, zlib, xdg_utils, xorg, libjpeg, libGL }:
+
+stdenv.mkDerivation rec {
+ pname = "eureka-editor";
+ version = "1.21";
+ shortver = "121";
+
+ src = fetchzip {
+ url = "mirror://sourceforge/eureka-editor/Eureka/${version}/eureka-${shortver}-source.tar.gz";
+ sha256 = "0fpj13aq4wh3f7473cdc5jkf1c71jiiqmjc0ihqa0nm3hic1d4yv";
+ };
+
+ buildInputs = [ fltk zlib xdg_utils libjpeg xorg.libXinerama libGL ];
+
+ enableParallelBuilding = true;
+
+ preBuild = ''
+ substituteInPlace src/main.cc \
+ --replace /usr/local $out
+ substituteInPlace Makefile \
+ --replace /usr/local $out \
+ --replace "-o root " ""
+ '';
+
+ preInstall = ''
+ mkdir -p $out/bin $out/share/applications $out/share/icons $out/man/man6
+ cp misc/eureka.desktop $out/share/applications
+ cp misc/eureka.ico $out/share/icons
+ cp misc/eureka.6 $out/man/man6
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://eureka-editor.sourceforge.net";
+ description = "A map editor for the classic DOOM games, and a few related games such as Heretic and Hexen";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ broken = stdenv.isDarwin;
+ maintainers = with maintainers; [ neonfuz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix
new file mode 100644
index 000000000000..86f2d0070923
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, lib, qtbase, cmake, fetchFromGitHub }:
+
+mkDerivation rec {
+ pname = "evtest-qt";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "Grumbel";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1wfzkgq81764qzxgk0y5vvpxcrb3icvrr4dd4mj8njrqgbwmn0mw";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ qtbase ];
+
+ meta = with lib; {
+ description = "Simple input device tester for linux with Qt GUI";
+ homepage = "https://github.com/Grumbel/evtest-qt";
+ maintainers = with maintainers; [ alexarice ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/evtest/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/evtest/default.nix
new file mode 100644
index 000000000000..d6d20367b060
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/evtest/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchgit, autoreconfHook, pkgconfig, libxml2 }:
+
+stdenv.mkDerivation rec {
+ pname = "evtest";
+ version = "1.34";
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libxml2 ];
+
+ src = fetchgit {
+ url = "git://anongit.freedesktop.org/${pname}";
+ rev = "refs/tags/${pname}-${version}";
+ sha256 = "168gdhzj11f4nk94a6z696sm8v1njzwww69bn6wr97l17897913g";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Simple tool for input event debugging";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/exercism/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/exercism/default.nix
new file mode 100644
index 000000000000..87e59d4292fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/exercism/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "exercism";
+ version = "3.0.13";
+
+ src = fetchFromGitHub {
+ owner = "exercism";
+ repo = "cli";
+ rev = "v${version}";
+ sha256 = "17gvz9a0sn4p36hf4l77bxhhfipf4x998iay31layqwbnzmb4xy7";
+ };
+
+ vendorSha256 = "0b2m9xkac60k5rbxmb03cxf530m23av14pnsjk8067l998sm4vqi";
+
+ doCheck = false;
+
+ subPackages = [ "./exercism" ];
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "A Go based command line tool for exercism.io";
+ license = licenses.mit;
+ maintainers = [ maintainers.rbasso maintainers.nobbz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/extract_url/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/extract_url/default.nix
new file mode 100644
index 000000000000..9daaf7268c39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/extract_url/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, perlPackages
+, cursesSupport ? true
+, uriFindSupport ? true
+}:
+
+let
+ perlDeps =
+ [ perlPackages.MIMEtools perlPackages.HTMLParser ]
+ ++ lib.optional cursesSupport perlPackages.CursesUI
+ ++ lib.optional uriFindSupport perlPackages.URIFind;
+
+in stdenv.mkDerivation rec {
+ pname = "extract_url";
+ version = "1.6.2";
+
+ src = fetchFromGitHub {
+ owner = "m3m0ryh0l3";
+ repo = "extracturl";
+ rev = "v${version}";
+ sha256 = "05589lp15jmcpbj4y9a3hmf6n2gsqrm4ybcyh3hd4j6pc7hmnhny";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ perlPackages.perl ] ++ perlDeps;
+
+ makeFlags = [ "prefix=$(out)" ];
+ installFlags = [ "INSTALL=install" ];
+
+ postFixup = ''
+ wrapProgram "$out/bin/extract_url" \
+ --set PERL5LIB "${perlPackages.makeFullPerlPath perlDeps}"
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.memoryhole.net/~kyle/extract_url/";
+ description = "Extracts URLs from MIME messages or plain text";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.qyliss ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/far2l/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/far2l/default.nix
new file mode 100644
index 000000000000..de2ed0d15964
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/far2l/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchFromGitHub, fetchpatch, makeWrapper, cmake, pkgconfig, wxGTK30, glib, pcre, m4, bash,
+ xdg_utils, gvfs, zip, unzip, gzip, bzip2, gnutar, p7zip, xz, imagemagick, darwin }:
+
+let
+ newer-colorer-schemes = fetchFromGitHub {
+ owner = "colorer";
+ repo = "Colorer-schemes";
+ rev = "7c831f5e94a90530ace8b2bb9916210e3a2fcda6"; # 2019-11-28 (far2l has older Colorer-schemes)
+ sha256 = "18vaahdz5i7xdf00c9h9kjjswm4jszywm8zkhva4c4ivr4qqnv2c";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "far2l";
+ version = "2019-12-14.git${builtins.substring 0 7 src.rev}";
+
+ src = fetchFromGitHub {
+ owner = "elfmz";
+ repo = "far2l";
+ rev = "dceaa3918ea2c5e43600bad3fc63f861b8d26fc4";
+ sha256 = "1ssd3hwz4b7vl4r858d9whl61cn23pgcamcjmvfa6ysf4x2b7sgi";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig m4 makeWrapper imagemagick ];
+
+ buildInputs = [ wxGTK30 glib pcre ]
+ ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa;
+
+ postPatch = stdenv.lib.optionalString stdenv.isLinux ''
+ substituteInPlace far2l/bootstrap/trash.sh \
+ --replace 'gvfs-trash' '${gvfs}/bin/gvfs-trash'
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace far2l/CMakeLists.txt \
+ --replace "-framework System" -lSystem
+ '' + ''
+ echo 'echo ${version}' > far2l/bootstrap/scripts/vbuild.sh
+ substituteInPlace far2l/bootstrap/open.sh \
+ --replace 'xdg-open' '${xdg_utils}/bin/xdg-open'
+ substituteInPlace far2l/vtcompletor.cpp \
+ --replace '"/bin/bash"' '"${bash}/bin/bash"'
+ substituteInPlace multiarc/src/formats/zip/zip.cpp \
+ --replace '"unzip ' '"${unzip}/bin/unzip ' \
+ --replace '"zip ' '"${zip}/bin/zip '
+ substituteInPlace multiarc/src/formats/7z/7z.cpp \
+ --replace '"^7z ' '"^${p7zip}/lib/p7zip/7z ' \
+ --replace '"7z ' '"${p7zip}/lib/p7zip/7z '
+ substituteInPlace multiarc/src/formats/targz/targz.cpp \
+ --replace '"xz ' '"${xz}/bin/xz ' \
+ --replace '"gzip ' '"${gzip}/bin/gzip ' \
+ --replace '"bzip2 ' '"${bzip2}/bin/bzip2 ' \
+ --replace '"tar ' '"${gnutar}/bin/tar '
+
+ cp ${newer-colorer-schemes}/hrc/hrc/base/nix.hrc colorer/configs/base/hrc/base/
+ cp ${newer-colorer-schemes}/hrc/hrc/base/cpp.hrc colorer/configs/base/hrc/base/
+ cp ${newer-colorer-schemes}/hrc/hrc/inet/jscript.hrc colorer/configs/base/hrc/base/
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/applications $out/share/icons/hicolor/scalable/apps
+ cp -dpR install $out/share/far2l
+ mv $out/share/far2l/far2l $out/bin/
+ ln -s -r --force $out/bin/far2l $out/share/far2l/far2l_askpass
+ ln -s -r --force $out/bin/far2l $out/share/far2l/far2l_sudoapp
+
+ cp ../far2l/DE/far2l.desktop $out/share/applications/far2l.desktop
+ substituteInPlace $out/share/applications/far2l.desktop --replace \''${CMAKE_INSTALL_PREFIX} "$out"
+
+ cp ../far2l/DE/icons/hicolor/1024x1024/apps/far2l.svg $out/share/icons/hicolor/scalable/apps/
+ convert -size 128x128 ../far2l/DE/icons/far2l.svg $out/share/icons/far2l.png
+ for size in 16x16 24x24 32x32 48x48 64x64 72x72 96x96 128x128 192x192 256x256 512x512 1024x1024; do
+ mkdir -p $out/share/icons/hicolor/$size/apps
+ convert -size $size ../far2l/DE/icons/hicolor/$size/apps/far2l.svg $out/share/icons/hicolor/$size/apps/far2l.png
+ done
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ wrapProgram $out/bin/far2l --argv0 $out/bin/far2l
+ '';
+
+ stripDebugList = [ "bin" "share" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "An orthodox file manager";
+ homepage = "https://github.com/elfmz/far2l";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.volth ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch
new file mode 100644
index 000000000000..b52aeafb5f36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch
@@ -0,0 +1,69 @@
+From 76c25147328d71960c70bbdd5a9396aac4a362a2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
+Date: Wed, 20 May 2020 14:19:07 -0300
+Subject: [PATCH] Fix paths
+
+---
+ fbmenugen | 14 ++++++--------
+ 1 file changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/fbmenugen b/fbmenugen
+index 46a18dc..0c8eb08 100755
+--- a/fbmenugen
++++ b/fbmenugen
+@@ -214,9 +214,7 @@ my %CONFIG = (
+
+ #<<<
+ desktop_files_paths => [
+- '/usr/share/applications',
+- '/usr/local/share/applications',
+- '/usr/share/applications/kde4',
++ '/run/current-system/sw/share/applications',
+ "$home_dir/.local/share/applications",
+ ],
+ #>>>
+@@ -232,7 +230,7 @@ my %CONFIG = (
+ force_icon_size => 0,
+ generic_fallback => 0,
+ locale_support => 1,
+- use_gtk3 => 0,
++ use_gtk3 => 1,
+
+ VERSION => $version,
+ );
+@@ -252,7 +250,7 @@ if (not -e $config_file) {
+ }
+
+ if (not -e $schema_file) {
+- if (-e (my $etc_schema_file = "/etc/xdg/$pkgname/schema.pl")) {
++ if (-e (my $etc_schema_file = "@fbmenugen@/etc/xdg/$pkgname/schema.pl")) {
+ require File::Copy;
+ File::Copy::copy($etc_schema_file, $schema_file)
+ or warn "$0: can't copy file `$etc_schema_file' to `$schema_file': $!\n";
+@@ -570,7 +568,7 @@ EXIT
+ $generated_menu .= begin_category(@{$schema->{fluxbox}}) . <<"FOOTER";
+ [config] (Configure)
+ [submenu] (System Styles) {Choose a style...}
+- [stylesdir] (/usr/share/fluxbox/styles)
++ [stylesdir] (@fluxbox@/share/fluxbox/styles)
+ [end]
+ [submenu] (User Styles) {Choose a style...}
+ [stylesdir] (~/.fluxbox/styles)
+@@ -580,12 +578,12 @@ EXIT
+ [exec] (Screenshot - JPG) {import screenshot.jpg && display -resize 50% screenshot.jpg}
+ [exec] (Screenshot - PNG) {import screenshot.png && display -resize 50% screenshot.png}
+ [exec] (Run) {fbrun}
+- [exec] (Regen Menu) {fluxbox-generate_menu}
++ [exec] (Regen Menu) {@fluxbox@/bin/fluxbox-generate_menu}
+ [end]
+ [commanddialog] (Fluxbox Command)
+ [reconfig] (Reload config)
+ [restart] (Restart)
+- [exec] (About) {(fluxbox -v; fluxbox -info | sed 1d) | xmessage -file - -center}
++ [exec] (About) {(@fluxbox@/bin/fluxbox -v; @fluxbox@/bin/fluxbox -info | @gnused@/bin/sed 1d) | @xmessage@/bin/xmessage -file - -center}
+ [separator]
+ [exit] (Exit)
+ [end]
+--
+2.26.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix
new file mode 100644
index 000000000000..bc40f2dad831
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, fetchFromGitHub
+, fluxbox
+, gnused
+, makeWrapper
+, perlPackages
+, substituteAll
+, xorg
+, wrapGAppsHook
+}:
+
+perlPackages.buildPerlPackage rec {
+ pname = "fbmenugen";
+ version = "0.85";
+
+ src = fetchFromGitHub {
+ owner = "trizen";
+ repo = pname;
+ rev = version;
+ sha256 = "1pmms3wzkm8h41a8zrkpn6gq9m9yy5wr5rrzmb84lbacprqq6q7q";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./0001-Fix-paths.patch;
+ xmessage = xorg.xmessage;
+ inherit fluxbox gnused;
+ })
+ ];
+
+ outputs = [ "out" ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ fluxbox
+ gnused
+ perlPackages.DataDump
+ perlPackages.FileDesktopEntry
+ perlPackages.Gtk3
+ perlPackages.LinuxDesktopFiles
+ perlPackages.perl
+ xorg.xmessage
+ ];
+
+ dontConfigure = true;
+
+ dontBuild = true;
+
+ postPatch = ''
+ substituteInPlace fbmenugen --subst-var-by fbmenugen $out
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -D -t $out/bin ${pname}
+ install -D -t $out/etc/xdg/${pname} schema.pl
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ wrapProgram "$out/bin/${pname}" --prefix PERL5LIB : "$PERL5LIB"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/trizen/fbmenugen";
+ description = "Simple menu generator for the Fluxbox Window Manager";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fbreader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fbreader/default.nix
new file mode 100644
index 000000000000..187988077435
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fbreader/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig
+, bzip2, curl, expat, fribidi, libunibreak, sqlite, zlib
+, uiTarget ? if !stdenv.isDarwin then "desktop" else "macosx"
+, uiType ? if !stdenv.isDarwin then "qt4" else "cocoa"
+, qt4, gtk2
+, AppKit, Cocoa
+}:
+
+with stdenv.lib;
+
+assert elem uiTarget [ "desktop" "macosx" ];
+assert elem uiType [ "qt4" "gtk" "cocoa" ];
+assert uiTarget == "macosx" -> uiType == "cocoa";
+
+# Note: "qt" uiType option mentioned in ${src}/README.build is qt3,
+# which is way to old and no longer in nixpkgs.
+
+stdenv.mkDerivation {
+ name = "fbreader-${uiType}-0.99.6";
+
+ src = fetchFromGitHub {
+ owner = "geometer";
+ repo = "FBReader";
+ rev = "9e608db14372ae580beae4976eec7241fa069e75";
+ sha256 = "0lzafk02mv0cf2l2a61q5y4743zi913byik4bw1ix0gr1drnsa7y";
+ };
+
+ patches = [
+ ./typecheck.patch
+ (fetchpatch {
+ name = "curl-7_62.diff"; # see https://github.com/geometer/FBReader/pull/311
+ url = "https://github.com/geometer/FBReader/commit/b7c78e965d06f780.diff";
+ sha256 = "1dgnx9wps7hcf8fkidc7037vcf92fr3ccnjx7bgxm9x02j0hngjg";
+ })
+ ];
+
+ postPatch = ''
+ cat << EOF > makefiles/target.mk
+ TARGET_ARCH = ${uiTarget}
+ TARGET_STATUS = release
+ UI_TYPE = ${uiType}
+ EOF
+
+ substituteInPlace makefiles/arch/desktop.mk \
+ --replace ccache "" \
+ --replace moc-qt4 moc
+
+ # libunibreak supersedes liblinebreak
+ substituteInPlace zlibrary/text/Makefile \
+ --replace -llinebreak -lunibreak
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [
+ bzip2 curl expat fribidi libunibreak sqlite zlib
+ ]
+ ++ optional (uiType == "qt4") qt4
+ ++ optional (uiType == "gtk") gtk2
+ ++ optionals (uiType == "cocoa") [ AppKit Cocoa ];
+
+ makeFlags = [ "INSTALLDIR=$(out)" ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=narrowing";
+
+ meta = with stdenv.lib; {
+ description = "An e-book reader for Linux";
+ homepage = "http://www.fbreader.org/";
+ license = licenses.gpl3;
+ broken = stdenv.isDarwin # untested, might work
+ || uiType == "gtk"; # builds, but the result is unusable, hangs a lot
+ platforms = platforms.unix;
+ maintainers = [ maintainers.coroa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch
new file mode 100644
index 000000000000..cbac290e69c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch
@@ -0,0 +1,11 @@
+diff --git a/fbreader/src/database/booksdb/BooksDB.cpp b/fbreader/src/database/booksdb/BooksDB.cpp
+index e33a22e76..1b6092800 100644
+--- a/fbreader/src/database/booksdb/BooksDB.cpp
++++ b/fbreader/src/database/booksdb/BooksDB.cpp
+@@ -146,5 +146,5 @@ shared_ptr<Book> BooksDB::loadBook(const std::string &fileName) {
+ myFindFileId->setFileName(fileName);
+ if (!myFindFileId->run()) {
+- return false;
++ return 0;
+ }
+ ((DBIntValue&)*myLoadBook->parameter("@file_id").value()) = myFindFileId->fileId();
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fehlstart/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fehlstart/default.nix
new file mode 100644
index 000000000000..cae637c2c4a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fehlstart/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, pkgconfig, gtk2, keybinder, fetchFromGitLab }:
+
+stdenv.mkDerivation {
+ name = "fehlstart-9f4342d7";
+
+ src = fetchFromGitLab {
+ owner = "fehlstart";
+ repo = "fehlstart";
+ rev = "9f4342d75ec5e2a46c13c99c34894bc275798441";
+ sha256 = "1rfzh7w6n2s9waprv7m1bhvqrk36a77ada7w655pqiwkhdj5q95i";
+ };
+
+ patches = [ ./use-nix-profiles.patch ];
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 keybinder ];
+
+ preConfigure = ''
+ export PREFIX=$out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Small desktop application launcher with reasonable memory footprint";
+ homepage = "https://gitlab.com/fehlstart/fehlstart";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.mounium ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch
new file mode 100644
index 000000000000..0c06e53f9814
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch
@@ -0,0 +1,21 @@
+--- fehlstart-9f4342d75ec5e2a46c13c99c34894bc275798441-src/fehlstart.c 1970-01-01 01:00:01.000000000 +0100
++++ fehlstart.c 2016-08-10 12:21:11.231638418 +0200
+@@ -779,8 +779,15 @@
+ read_settings(setting_file, &settings);
+ update_commands();
+ g_hash_table_foreach(action_map, update_launcher, NULL);
+- add_launchers(STR_S(APPLICATIONS_DIR_0));
+- add_launchers(STR_S(APPLICATIONS_DIR_1));
+- add_launchers(STR_S(USER_APPLICATIONS_DIR));
++ const char* nixprofiles = getenv("NIX_PROFILES");
++ if(nixprofiles != NULL) {
++ const char* pch = strtok(nixprofiles, " ");
++ while (pch != NULL)
++ {
++ String nix_dir = str_concat((String) { pch, strlen(pch), false },STR_S("/share/applications"));
++ add_launchers(nix_dir);
++ pch = strtok(NULL, " ");
++ }
++ }
+ return NULL;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fetchmail/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fetchmail/default.nix
new file mode 100644
index 000000000000..ce6b7c64693c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fetchmail/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, openssl }:
+
+let
+ version = "6.4.14";
+in
+stdenv.mkDerivation {
+ pname = "fetchmail";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz";
+ sha256 = "1jxxb3qyrh7118fwqa3bhirjh97j2w8r71s8vcb6vp3w1wwhfis2";
+ };
+
+ buildInputs = [ openssl ];
+
+ configureFlags = [ "--with-ssl=${openssl.dev}" ];
+
+ meta = {
+ homepage = "https://www.fetchmail.info/";
+ description = "A full-featured remote-mail retrieval and forwarding utility";
+ longDescription = ''
+ A full-featured, robust, well-documented remote-mail retrieval and
+ forwarding utility intended to be used over on-demand TCP/IP links
+ (such as SLIP or PPP connections). It supports every remote-mail
+ protocol now in use on the Internet: POP2, POP3, RPOP, APOP, KPOP,
+ all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and
+ IPSEC.
+ '';
+
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.peti ];
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fff/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fff/default.nix
new file mode 100644
index 000000000000..cf307afd1bdd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fff/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, makeWrapper, bashInteractive, xdg_utils, file, coreutils, w3m, xdotool }:
+
+stdenv.mkDerivation rec {
+ pname = "fff";
+ version = "2.2";
+
+ src = fetchFromGitHub {
+ owner = "dylanaraps";
+ repo = pname;
+ rev = version;
+ sha256 = "14ymdw6l6phnil0xf1frd5kgznaiwppcic0v4hb61s1zpf4wrshg";
+ };
+
+ pathAdd = stdenv.lib.makeSearchPath "bin" ([ xdg_utils file coreutils w3m xdotool ]);
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ bashInteractive ];
+ dontBuild = true;
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ wrapProgram "$out/bin/fff" --prefix PATH : $pathAdd
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Fucking Fast File-Manager";
+ homepage = "https://github.com/dylanaraps/fff";
+ license = licenses.mit;
+ maintainers = [ maintainers.tadeokondrak ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/filet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/filet/default.nix
new file mode 100644
index 000000000000..ee4b05fa689f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/filet/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "filet";
+ version = "0.1.3";
+
+ src = fetchFromGitHub {
+ owner = "buffet";
+ repo = "filet";
+ rev = version;
+ sha256 = "0hm7589ih30axafqxhhs4fg1pvfhlqzyzzmfi2ilx8haq5111fsf";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "A fucking fucking fast file fucker (afffff)";
+ homepage = "https://github.com/buffet/filet";
+ license = licenses.mpl20;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ buffet ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/firestarter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/firestarter/default.nix
new file mode 100644
index 000000000000..a03c87eb41b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/firestarter/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, glibc, python3, cudatoolkit,
+ withCuda ? true
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "firestarter";
+ version = "1.7.4";
+
+ src = fetchFromGitHub {
+ owner = "tud-zih-energy";
+ repo = "FIRESTARTER";
+ rev = "v${version}";
+ sha256 = "0zqfqb7hf48z39g1qhbl1iraf8rz4d629h1q6ikizckpzfq23kd0";
+ };
+
+ nativeBuildInputs = [ python3 ];
+ buildInputs = [ glibc.static ] ++ optionals withCuda [ cudatoolkit ];
+ preBuild = ''
+ mkdir -p build
+ cd build
+ python ../code-generator.py ${optionalString withCuda "--enable-cuda"}
+ '';
+ makeFlags = optionals withCuda [ "LINUX_CUDA_PATH=${cudatoolkit}" ];
+ enableParallelBuilding = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp FIRESTARTER $out/bin/firestarter
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://tu-dresden.de/zih/forschung/projekte/firestarter";
+ description = "Processor Stress Test Utility";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ astro marenz ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix
new file mode 100644
index 000000000000..e90e364aaee9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix
@@ -0,0 +1,45 @@
+{ fetchFromGitHub
+, glib
+, gtk3
+, lib
+, rustPlatform
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "fitnesstrax";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "luminescent-dreams";
+ repo = "fitnesstrax";
+ rev = "${pname}-${version}";
+ sha256 = "1k6zhnbs0ggx7q0ig2abcnzprsgrychlpvsh6d36dw6mr8zpfkp7";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ glib
+ gtk3
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ ];
+
+ cargoSha256 = "1xgyyxd2kz21xan0pk7rbxiym90s7m2qrzg2ddilcszva60bxdd9";
+
+ postInstall = ''
+ mkdir -p $out/share/glib-2.0/schemas
+ cp -r $src/share/* $out/share/
+ glib-compile-schemas $out/share/glib-2.0/schemas
+ '';
+
+ meta = with lib; {
+ description = "Privacy-first fitness tracking";
+ homepage = "https://github.com/luminescent-dreams/fitnesstrax";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ savannidgerinel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/flamerobin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/flamerobin/default.nix
new file mode 100644
index 000000000000..2e389c753e2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/flamerobin/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, wxGTK30, boost, firebird }:
+
+stdenv.mkDerivation rec {
+ version = "0.9.3.1";
+ pname = "flamerobin";
+
+ src = fetchFromGitHub {
+ owner = "mariuz";
+ repo = "flamerobin";
+ rev = version;
+ sha256 = "1wwcsca01hpgi9z5flvbdhs9zv7jvahnbn97j6ymy0hdyb8lv6si";
+ };
+
+ enableParallelBuilding = true;
+
+ buildInputs = [ wxGTK30 boost firebird ];
+
+ preBuild = ''
+ sed -i 's/CXXFLAGS = -g -O2/CXXFLAGS = -g -O2 -nostartfiles/' Makefile
+ '';
+
+ configureFlags = [
+ "--disable-debug"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Database administration tool for Firebird RDBMS";
+ homepage = "https://github.com/mariuz/flamerobin";
+ license = licenses.bsdOriginal;
+ maintainers = with maintainers; [ uralbash ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix
new file mode 100755
index 000000000000..4794e14b4698
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, fetchFromGitHub
+, python3
+, gtk3
+, wrapGAppsHook
+, glibcLocales
+, gobject-introspection
+, gettext
+, pango
+, gdk-pixbuf
+, atk
+, fluxbox
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "fluxboxlauncher";
+ version = "0.2.1";
+
+ src = fetchFromGitHub {
+ owner = "mothsart";
+ repo = "fluxboxlauncher";
+ rev = "0.2.1";
+ sha256 = "024h1dk0bhc5s4dldr6pqabrgcqih9p8cys5lqgkgz406y4vyzvf";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ gobject-introspection
+ pango
+ gdk-pixbuf
+ atk
+ gettext
+ ];
+
+ buildInputs = [
+ glibcLocales
+ gtk3
+ python3
+ fluxbox
+ ];
+
+ makeWrapperArgs = [ "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive"
+ "--set CHARSET en_us.UTF-8" ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pygobject3
+ ];
+
+ meta = with lib; {
+ description = "A Gui editor (gtk) to configure applications launching on a fluxbox session";
+ homepage = "https://github.com/mothsART/fluxboxlauncher";
+ maintainers = with maintainers; [ mothsart ];
+ license = licenses.bsdOriginal;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fme/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fme/default.nix
new file mode 100644
index 000000000000..34d5a45b8ea1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fme/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, autoconf, automake, gettext
+, fluxbox, bc, gtkmm2, glibmm, libglademm, libsigcxx }:
+
+stdenv.mkDerivation rec {
+
+ pname = "fme";
+ version = "1.1.3";
+
+ src = fetchurl {
+ url = "https://github.com/rdehouss/fme/archive/v${version}.tar.gz";
+ sha256 = "d1c81a6a38c0faad02943ad65d6d0314bd205c6de841669a2efe43e4c503e63d";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ autoconf automake gettext fluxbox bc gtkmm2 glibmm libglademm libsigcxx ];
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Editor for Fluxbox menus";
+ longDescription = ''
+ Fluxbox Menu Editor is a menu editor for the Window Manager Fluxbox written in C++
+ with the libraries Gtkmm, Glibmm, libglademm and gettext for internationalization.
+ Its user-friendly interface will help you to edit, delete, move (Drag and Drop)
+ a row, a submenu, etc very easily.
+ '';
+ homepage = "https://github.com/rdehouss/fme/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/font-manager/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/font-manager/default.nix
new file mode 100644
index 000000000000..defbe7520d7c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/font-manager/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, meson, ninja, gettext, python3,
+ pkgconfig, libxml2, json-glib , sqlite, itstool, librsvg, yelp-tools,
+ vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection
+}:
+
+stdenv.mkDerivation rec {
+ pname = "font-manager";
+ version = "0.7.9";
+
+ src = fetchFromGitHub {
+ owner = "FontManager";
+ repo = "master";
+ rev = version;
+ sha256 = "1nc0i824v2szz0j9a5rwl8gygih15xbxnxpnx9d3wr0yq9057q6q";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ meson
+ ninja
+ gettext
+ python3
+ itstool
+ desktop-file-utils
+ vala
+ yelp-tools
+ wrapGAppsHook
+ # For https://github.com/FontManager/master/blob/master/lib/unicode/meson.build
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ libxml2
+ json-glib
+ sqlite
+ librsvg
+ gtk3
+ gnome3.adwaita-icon-theme
+ ];
+
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://fontmanager.github.io/";
+ description = "Simple font management for GTK desktop environments";
+ longDescription = ''
+ Font Manager is intended to provide a way for average users to
+ easily manage desktop fonts, without having to resort to command
+ line tools or editing configuration files by hand. While designed
+ primarily with the Gnome Desktop Environment in mind, it should
+ work well with other GTK desktop environments.
+
+ Font Manager is NOT a professional-grade font management solution.
+ '';
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fontpreview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fontpreview/default.nix
new file mode 100644
index 000000000000..1d4e4d3e00fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fontpreview/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, xdotool, fzf, imagemagick, sxiv, getopt }:
+
+stdenv.mkDerivation rec {
+ pname = "fontpreview";
+ version = "1.0.6";
+
+ src = fetchFromGitHub {
+ owner = "sdushantha";
+ repo = pname;
+ rev = version;
+ sha256 = "0g3i2k6n2yhp88rrcf0hp6ils7836db7hx73hw9qnpcbmckz0i4w";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ preInstall = "mkdir -p $out/bin";
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/fontpreview \
+ --prefix PATH : ${lib.makeBinPath [ xdotool fzf imagemagick sxiv getopt ]}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sdushantha/fontpreview";
+ description = "Highly customizable and minimal font previewer written in bash";
+ longDescription = ''
+ fontpreview is a commandline tool that lets you quickly search for fonts
+ that are installed on your machine and preview them. The fuzzy search
+ feature is provided by fzf and the preview is generated with imagemagick
+ and then displayed using sxiv. This tool is highly customizable, almost
+ all of the variables in this tool can be changed using the commandline
+ flags or you can configure them using environment variables.
+ '';
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.erictapen ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/formatter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/formatter/default.nix
new file mode 100644
index 000000000000..85a70812cad1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/formatter/default.nix
@@ -0,0 +1,78 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, vala
+, pkgconfig
+, pantheon
+, python3
+, substituteAll
+, glib
+, gtk3
+, dosfstools
+, e2fsprogs
+, exfat
+, hfsprogs
+, ntfs3g
+, libgee
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "formatter";
+ version = "0.3.2";
+
+ src = fetchFromGitHub {
+ owner = "Djaler";
+ repo = "Formatter";
+ rev = version;
+ sha256 = "0da1dvzsvbwg1ys19yf0n080xc0hjwin9zacjndb24jvphy3bxql";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ ext4 = "${e2fsprogs}/bin/mkfs.ext4";
+ exfat = "${exfat}/bin/mkfs.exfat";
+ fat = "${dosfstools}/bin/mkfs.fat";
+ ntfs = "${ntfs3g}/bin/mkfs.ntfs";
+ hfsplus = "${hfsprogs}/bin/mkfs.hfsplus";
+ })
+ ];
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ libgee
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "A simple formatter designed for elementary OS";
+ homepage = "https://github.com/Djaler/Formatter";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.lgpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/formatter/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/formatter/fix-paths.patch
new file mode 100644
index 000000000000..67c1d2b43ccc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/formatter/fix-paths.patch
@@ -0,0 +1,53 @@
+diff --git a/src/Objects/DeviceFormatter.vala b/src/Objects/DeviceFormatter.vala
+index cf6a3b8..0de10a9 100644
+--- a/src/Objects/DeviceFormatter.vala
++++ b/src/Objects/DeviceFormatter.vala
+@@ -62,42 +62,42 @@ namespace Formatter {
+ string drive_identifier = drive.get_identifier ("unix-device");
+ switch (filesystem) {
+ case Formatter.Filesystems.EXT4:
+- spawn_args = {"pkexec", "mkfs.ext4", drive_identifier, "-F"};
++ spawn_args = {"pkexec", "@ext4@", drive_identifier, "-F"};
+ if (label != "") {
+ spawn_args += "-L";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.EXFAT:
+- spawn_args = {"pkexec", "mkfs.exfat", drive_identifier};
++ spawn_args = {"pkexec", "@exfat@", drive_identifier};
+ if (label != "") {
+ spawn_args += "-n";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.FAT16:
+- spawn_args = {"pkexec", "mkfs.fat", "-F16", "-I", drive_identifier};
++ spawn_args = {"pkexec", "@fat@", "-F16", "-I", drive_identifier};
+ if (label != "") {
+ spawn_args += "-n";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.FAT32:
+- spawn_args = {"pkexec", "mkfs.fat", "-F32", "-I", drive_identifier};
++ spawn_args = {"pkexec", "@fat@", "-F32", "-I", drive_identifier};
+ if (label != "") {
+ spawn_args += "-n";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.NTFS:
+- spawn_args = {"pkexec", "mkfs.ntfs", drive_identifier, "-f", "-F"};
++ spawn_args = {"pkexec", "@ntfs@", drive_identifier, "-f", "-F"};
+ if (label != "") {
+ spawn_args += "-L";
+ spawn_args += label;
+ }
+ break;
+ case Formatter.Filesystems.HFS_PLUS:
+- spawn_args = {"pkexec", "mkfs.hfsplus", drive_identifier};
++ spawn_args = {"pkexec", "@hfsplus@", drive_identifier};
+ if (label != "") {
+ spawn_args += "-v";
+ spawn_args += label;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix
new file mode 100644
index 000000000000..9ac701014906
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchbzr, autoreconfHook, texinfo, help2man, imagemagick, pkg-config
+, curl, gnome2, gpsd, gtk2, wrapGAppsHook
+, intltool, libexif, python3Packages, sqlite }:
+
+let
+ srcs = {
+ foxtrot = fetchbzr {
+ url = "lp:foxtrotgps";
+ rev = "326";
+ sha256 = "191pgcy5rng8djy22a5z9s8gssc73f9p5hm4ig52ra189cb48d8k";
+ };
+ screenshots = fetchbzr {
+ url = "lp:foxtrotgps/screenshots";
+ rev = "2";
+ sha256 = "1sgysn3dhfhrv7rj7wf8f2119vmhc1s1zzsp4r3nlrr45d20wmsv";
+ };
+ };
+in stdenv.mkDerivation rec {
+ pname = "foxtrotgps";
+ version = "1.2.2+326";
+
+ # Pull directly from bzr because gpsd API version 9 is not supported on latest release
+ src = srcs.foxtrot;
+
+ patches = [
+ ./gps-status-fix.patch
+ ];
+
+ nativeBuildInputs = [ pkg-config autoreconfHook texinfo help2man imagemagick wrapGAppsHook ];
+
+ buildInputs = [
+ curl.dev
+ gnome2.libglade.dev
+ gpsd
+ gtk2.dev
+ intltool
+ libexif
+ sqlite.dev
+ (python3Packages.python.withPackages (pythonPackages: with python3Packages;
+ [ beautifulsoup4 feedparser sqlalchemy ]))
+ ];
+
+ postUnpack = ''
+ cp -R ${srcs.screenshots} $sourceRoot/doc/screenshots
+ chmod -R u+w $sourceRoot/doc/screenshots
+ '';
+
+ preConfigure = ''
+ intltoolize --automake --copy --force
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GPS/GIS application optimized for small screens";
+ longDescription = ''
+ An easy to use, free & open-source GPS/GIS application that works well on
+ small screens, and is especially suited to touch input. It spun off of
+ tangoGPS in 2010 with a focus on cooperation and fostering community
+ innovation.
+ '';
+ homepage = "https://www.foxtrotgps.org/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ wucke13 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch
new file mode 100644
index 000000000000..e9b3624a174b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch
@@ -0,0 +1,14 @@
+--- foxtrot/src/gps_functions.c.orig 2020-12-04 15:02:22.290163204 -0600
++++ foxtrot/src/gps_functions.c 2020-12-04 15:04:54.470648534 -0600
+@@ -762,7 +762,11 @@
+ {
+ gpsdata->fix.time = (time_t) 0;
+ }
++#if GPSD_API_MAJOR_VERSION >= 9
++ gpsdata->valid = (libgps_gpsdata.fix.status != STATUS_NO_FIX);
++#else
+ gpsdata->valid = (libgps_gpsdata.status != STATUS_NO_FIX);
++#endif
+ if (gpsdata->valid)
+ {
+ gpsdata->seen_valid = TRUE;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/freemind/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/freemind/default.nix
new file mode 100644
index 000000000000..5774320220a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/freemind/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, jdk, jre, ant }:
+
+stdenv.mkDerivation rec {
+ pname = "freemind";
+ version = "1.0.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/freemind/freemind-src-${version}.tar.gz";
+ sha256 = "06c6pm7hpwh9hbmyah3lj2wp1g957x8znfwc5cwygsi7dc98b0h1";
+ };
+
+ buildInputs = [ jdk ant ];
+
+ preConfigure = ''
+ chmod +x check_for_duplicate_resources.sh
+ sed 's,/bin/bash,${stdenv.shell},' -i check_for_duplicate_resources.sh
+
+ ## work around javac encoding errors
+ export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
+ '';
+
+ buildPhase = "ant dist";
+
+ installPhase = ''
+ mkdir -p $out/{bin,nix-support}
+ cp -r ../bin/dist $out/nix-support
+ sed -i 's/which/type -p/' $out/nix-support/dist/freemind.sh
+
+ cat >$out/bin/freemind <<EOF
+ #! ${stdenv.shell}
+ JAVA_HOME=${jre} $out/nix-support/dist/freemind.sh
+ EOF
+ chmod +x $out/{bin/freemind,nix-support/dist/freemind.sh}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Mind-mapping software";
+ homepage = "http://freemind.sourceforge.net/wiki/index.php/Main_Page";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fslint/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fslint/default.nix
new file mode 100644
index 000000000000..1f2ec2805490
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fslint/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub, python2, makeWrapper }:
+
+let pythonEnv = python2.withPackages(ps: [ ps.pyGtkGlade]);
+in stdenv.mkDerivation rec {
+ pname = "fslint";
+ version = "2.46";
+
+ src = fetchFromGitHub {
+ owner = "pixelb";
+ repo = "fslint";
+ rev = version;
+ sha256 = "048pc1rsslbsrfchl2wmdd4hpa2gycglib7kdx8vqs947zcm0sfv";
+ };
+
+ buildInputs = [
+ pythonEnv makeWrapper
+ ];
+
+ prePatch = ''
+ substituteInPlace fslint-gui --replace "liblocation=os.path.dirname(os.path.abspath(sys.argv[0]))" "liblocation='$out'"
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ cp * -R $out/
+ cp fslint-gui $out/bin/fslint
+
+ wrapProgram "$out/bin/fslint" \
+ --prefix PYTHONPATH : "${pythonEnv.interpreter}"
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "A utility to find and clean various forms of lint on a filesystem";
+ homepage = "https://www.pixelbeat.org/fslint/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.dasj19 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fsv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fsv/default.nix
new file mode 100644
index 000000000000..ff556621f9ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fsv/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, fetchFromGitHub, autoreconfHook
+, libtool, pkgconfig, gtk2, libGLU, file
+}:
+
+let
+ gtkglarea = stdenv.mkDerivation rec {
+ pname = "gtkglarea";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1pl2vdj6l64j864ilhkq1bcggb3hrlxjwk5m029i7xfjfxc587lf";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 libGLU ];
+ hardeningDisable = [ "format" ];
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "fsv";
+ version = "0.9-1";
+
+ src = fetchFromGitHub {
+ owner = "mcuelenaere";
+ repo = "fsv";
+ rev = "${pname}-${version}";
+ sha256 = "0n09jd7yqj18mx6zqbg7kab4idg5llr15g6avafj74fpg1h7iimj";
+ };
+
+ postPatch = ''
+ # fix build with gettext 0.20
+ sed -i 's/AM_GNU_GETTEXT/AM_GNU_GETTEXT([external])/' configure.in
+ '';
+
+ nativeBuildInputs = [ autoreconfHook libtool pkgconfig ];
+ buildInputs = [ file gtk2 libGLU gtkglarea ];
+
+ meta = with stdenv.lib; {
+ description = "File system visualizer in cyberspace";
+ longDescription = ''
+ fsv (pronounced eff-ess-vee) is a file system visualizer in cyberspace.
+ It lays out files and directories in three dimensions, geometrically
+ representing the file system hierarchy to allow visual overview
+ and analysis. fsv can visualize a modest home directory, a workstation's
+ hard drive, or any arbitrarily large collection of files, limited only
+ by the host computer's memory and graphics hardware.
+ '';
+ homepage = "https://github.com/mcuelenaere/fsv";
+ license = licenses.lgpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ rnhmjoj ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix
new file mode 100644
index 000000000000..91a7b0ed37fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix
@@ -0,0 +1,40 @@
+{ stdenv , fetchFromGitHub , python3 , makeWrapper }:
+
+let pythonEnv = python3.withPackages(ps: [ ps.tkinter ps.pyusb ]);
+in stdenv.mkDerivation rec {
+ pname = "fusee-interfacee-tk";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "nh-server";
+ repo = pname;
+ rev = "V${version}";
+ sha256 = "0ngwbwsj999flprv14xvhk7lp51nprrvcnlbnbk6y4qx5casm5md";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ pythonEnv ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ # The program isn't just called app, so I'm renaming it based on the repo name
+ # It also isn't a standard program, so we need to append the shebang to the top
+ echo "#!${pythonEnv.interpreter}" > $out/bin/fusee-interfacee-tk
+ cat app.py >> $out/bin/fusee-interfacee-tk
+ chmod +x $out/bin/fusee-interfacee-tk
+
+ # app.py depends on these to run
+ cp *.py $out/bin/
+ cp intermezzo.bin $out/bin/intermezzo.bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/nh-server/fusee-interfacee-tk";
+ description = "A tool to send .bin files to a Nintendo Switch in RCM mode";
+ longDescription = "A mod of falquinhos Fusée Launcher for use with Nintendo Homebrew Switch Guide. It also adds the ability to mount SD while in RCM.
+ Must be run as sudo.";
+ maintainers = with maintainers; [ kristian-brucaj ];
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/fuzzel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
new file mode 100644
index 000000000000..337d68b4b20d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchgit, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, scdoc, git, tllist, fcft}:
+
+stdenv.mkDerivation rec {
+ pname = "fuzzel";
+ version = "1.4.2";
+
+ src = fetchgit {
+ url = "https://codeberg.org/dnkl/fuzzel";
+ rev = version;
+ sha256 = "0c0p9spklzmy9f7abz3mvw0vp6zgnk3ns1i6ks95ljjb3kqy9vs2";
+ };
+
+ nativeBuildInputs = [ pkg-config meson ninja scdoc git ];
+ buildInputs = [ wayland pixman cairo librsvg wayland-protocols wlroots libxkbcommon tllist fcft ];
+
+ meta = with lib; {
+ description = "Wayland-native application launcher, similar to rofi’s drun mode";
+ homepage = "https://codeberg.org/dnkl/fuzzel";
+ license = licenses.mit;
+ maintainers = with maintainers; [ fionera ];
+ platforms = with platforms; linux;
+ changelog = "https://codeberg.org/dnkl/fuzzel/releases/tag/${version}";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gImageReader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gImageReader/default.nix
new file mode 100644
index 000000000000..2884fca62398
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gImageReader/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libuuid
+, sane-backends, podofo, libjpeg, djvulibre, libxmlxx3, libzip, tesseract
+, intltool, poppler, json-glib
+, ninja
+, python3
+
+# Gtk deps
+# upstream gImagereader supports Qt too
+, gobject-introspection, wrapGAppsHook
+, gtkmm3, gtksourceview3, gtksourceviewmm, gtkspell3, gtkspellmm, cairomm
+}:
+
+let
+ variant = "gtk";
+ pythonEnv = python3.withPackages( ps: with ps;[ pygobject3 ] );
+in
+stdenv.mkDerivation rec {
+ pname = "gImageReader";
+ version = "3.3.1";
+
+ src = fetchFromGitHub {
+ owner= "manisandro";
+ repo = "gImageReader";
+ rev = "v${version}";
+ sha256 = "17hz2dgxx2j7hsk0lx3riidqvlsg0ylnicjd2gphsi3yp7w20zdj";
+ };
+
+ nativeBuildInputs = [
+ cmake ninja
+ intltool
+ pkgconfig
+ pythonEnv
+
+ # Gtk specific
+ wrapGAppsHook
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ libxmlxx3
+ libzip
+ libuuid
+ sane-backends
+ podofo
+ libjpeg
+ djvulibre
+ tesseract
+ poppler
+
+ # Gtk specific
+ gtkmm3
+ gtkspell3
+ gtkspellmm
+ gtksourceview3
+ gtksourceviewmm
+ cairomm
+ json-glib
+ ];
+
+ # interface type can be where <type> is either gtk, qt5, qt4
+ cmakeFlags = [ "-DINTERFACE_TYPE=${variant}" ];
+
+ meta = with stdenv.lib; {
+ description = "A simple Gtk/Qt front-end to tesseract-ocr";
+ homepage = "https://github.com/manisandro/gImageReader";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [teto];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/galculator/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/galculator/default.nix
new file mode 100644
index 000000000000..1964ba6aaf73
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/galculator/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub
+, autoreconfHook, intltool
+, gtk, pkgconfig, flex }:
+
+stdenv.mkDerivation rec {
+ pname = "galculator";
+ version = "2.1.4";
+
+ src = fetchFromGitHub {
+ owner = "galculator";
+ repo = "galculator";
+ rev = "v${version}";
+ sha256 = "0q0hb62f266709ncyq96bpx4a40a1i6dc5869byvd7x285sx1c2w";
+ };
+
+ nativeBuildInputs = [ autoreconfHook intltool pkgconfig ];
+ buildInputs = [ gtk flex ];
+
+ meta = with stdenv.lib; {
+ description = "A GTK 2/3 algebraic and RPN calculator";
+ longDescription = ''
+ galculator is a GTK 2 / GTK 3 based calculator. Its main features include:
+
+ - Algebraic, RPN (Reverse Polish Notation), Formula Entry and Paper modes;
+ - Basic and Scientific Modes
+ - Decimal, hexadecimal, octal and binary number base
+ - Radiant, degree and grad support
+ - User defined constants and functions
+ - A bunch of common functions
+ - Binary arithmetic of configurable bit length and signedness
+ - Quad-precision floating point arithmetic, and 112-bit binary arithmetic
+ '';
+ homepage = "http://galculator.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
new file mode 100644
index 000000000000..a93ebb12ed4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonApplication, fetchPypi, requests, pytestCheckHook }:
+
+buildPythonApplication rec {
+ pname = "gallery_dl";
+ version = "1.15.4";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0byn1ggrb9yg9d29205q312v95jy66qp4z384kys8cmrd3mky111";
+ };
+
+ propagatedBuildInputs = [ requests ];
+
+ checkInputs = [ pytestCheckHook ];
+ pytestFlagsArray = [
+ # requires network access
+ "--ignore=test/test_results.py"
+ "--ignore=test/test_downloader.py"
+ ];
+
+ meta = with lib; {
+ description = "Command-line program to download image-galleries and -collections from several image hosting sites";
+ homepage = "https://github.com/mikf/gallery-dl";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ dawidsowa ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch
new file mode 100644
index 000000000000..de402595cd38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch
@@ -0,0 +1,11 @@
+--- a/contrib/CMakeLists.txt
++++ b/contrib/CMakeLists.txt
+@@ -85,7 +85,7 @@ endif (INSTALL_PHP_EXAMPLES)
+ if (INSTALL_BASH_COMPLETION)
+ macro_optional_find_package (BashCompletion)
+ if (NOT BASH_COMPLETION_FOUND)
+- set (BASH_COMPLETION_COMPLETIONSDIR "/etc/bash_completion.d" CACHE PATH "Location of bash_completion.d")
++ set (BASH_COMPLETION_COMPLETIONSDIR "${CMAKE_INSTALL_PREFIX}/share/bash-completion/completions" CACHE PATH "Location of bash_completion.d")
+ endif (NOT BASH_COMPLETION_FOUND)
+ install (
+ FILES bash-completion/gammu
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/default.nix
new file mode 100644
index 000000000000..ff3408eb8dd2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, python, pkgconfig, cmake, bluez, libusb1, curl
+, libiconv, gettext, sqlite
+, dbiSupport ? false, libdbi ? null, libdbiDrivers ? null
+, postgresSupport ? false, postgresql ? null
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "gammu";
+ version = "1.40.0";
+
+ src = fetchFromGitHub {
+ owner = "gammu";
+ repo = "gammu";
+ rev = version;
+ sha256 = "1jjaa9r3x6i8gv3yn1ngg815s6gsxblsw4wb5ddm77kamn2qyvpf";
+ };
+
+ patches = [ ./bashcomp-dir.patch ./systemd.patch ];
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+
+ buildInputs = [ python bluez libusb1 curl gettext sqlite libiconv ]
+ ++ optionals dbiSupport [ libdbi libdbiDrivers ]
+ ++ optionals postgresSupport [ postgresql ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "https://wammu.eu/gammu/";
+ description = "Command line utility and library to control mobile phones";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.coroa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/systemd.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/systemd.patch
new file mode 100644
index 000000000000..22b49a5a2ffe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gammu/systemd.patch
@@ -0,0 +1,30 @@
+diff --git a/cmake/templates/gammu.spec.in b/cmake/templates/gammu.spec.in
+index 8302353..e3ca59a 100644
+--- a/cmake/templates/gammu.spec.in
++++ b/cmake/templates/gammu.spec.in
+@@ -387,9 +387,9 @@ fi
+ %doc %{_mandir}/man7/gammu-smsd-run.7*
+ %doc %{_mandir}/man7/gammu-smsd-sql.7*
+ %doc %{_mandir}/man7/gammu-smsd-tables.7*
+-%dir %{_libexecdir}/systemd
+-%dir %{_libexecdir}/systemd/system
+-%{_libexecdir}/systemd/system/gammu-smsd.service
++%dir %{_prefix}/systemd
++%dir %{_prefix}/systemd/system
++%{_prefix}/systemd/system/gammu-smsd.service
+
+ %files -n libGammu%{so_ver} -f libgammu.lang
+ %defattr(-,root,root,-)
+diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt
+index 78cc7fc..d674c36 100644
+--- a/contrib/CMakeLists.txt
++++ b/contrib/CMakeLists.txt
+@@ -97,7 +97,7 @@ endif (INSTALL_BASH_COMPLETION)
+ if (WITH_SYSTEMD)
+ install (
+ FILES init/gammu-smsd.service
+- DESTINATION "${SYSTEMD_SERVICES_INSTALL_DIR}"
++ DESTINATION "${CMAKE_INSTALL_PREFIX}/systemd"
+ COMPONENT "systemd"
+ )
+ endif (WITH_SYSTEMD)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix
new file mode 100644
index 000000000000..b36bd83e70f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchzip, makeDesktopItem, makeWrapper
+, jre
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ganttproject-bin";
+ version = "2.8.10";
+
+ src = let build = "r2364"; in fetchzip {
+ sha256 = "0cclgyqv4f9pjsdlh93cqvgbzrp8ajvrpc2xszs03sknqz2kdh7r";
+ url = "https://dl.ganttproject.biz/ganttproject-${version}/"
+ + "ganttproject-${version}-${build}.zip";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jre ];
+
+ phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+ installPhase = let
+
+ desktopItem = makeDesktopItem {
+ name = "ganttproject";
+ exec = "ganttproject";
+ icon = "ganttproject";
+ desktopName = "GanttProject";
+ genericName = "Shedule and manage projects";
+ comment = meta.description;
+ categories = "Office;";
+ };
+
+ javaOptions = [
+ "-Dawt.useSystemAAFontSettings=on"
+ ];
+
+ in ''
+ mkdir -pv "$out/share/ganttproject"
+ cp -rv * "$out/share/ganttproject"
+
+ mkdir -pv "$out/bin"
+ wrapProgram "$out/share/ganttproject/ganttproject" \
+ --set JAVA_HOME "${jre}" \
+ --set _JAVA_OPTIONS "${builtins.toString javaOptions}"
+
+ mv -v "$out/share/ganttproject/ganttproject" "$out/bin"
+
+ cp -rv "${desktopItem}/share/applications" "$out/share"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Project scheduling and management";
+ homepage = "https://www.ganttproject.biz/";
+ downloadPage = "https://www.ganttproject.biz/download";
+ # GanttProject itself is GPL3+. All bundled libraries are declared
+ # ‘GPL3-compatible’. See ${downloadPage} for detailed information.
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.vidbina ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix
new file mode 100644
index 000000000000..95cbdd9c19b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, garmintools, libgcrypt, libusb-compat-0_1, pkgconfig, tinyxml, zlib }:
+stdenv.mkDerivation {
+ name = "garmin-plugin-0.3.26";
+ src = fetchurl {
+ url = "https://github.com/adiesner/GarminPlugin/archive/V0.3.26.tar.gz";
+ sha256 = "15gads1fj4sj970m5960dgnhys41ksi4cm53ldkf67wn8dc9i4k0";
+ };
+ sourceRoot = "GarminPlugin-0.3.26/src";
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ garmintools libusb-compat-0_1 libgcrypt tinyxml zlib ];
+ configureFlags = [
+ "--with-libgcrypt-prefix=${libgcrypt.dev}"
+ "--with-garmintools-incdir=${garmintools}/include"
+ "--with-garmintools-libdir=${garmintools}/lib"
+ ];
+ installPhase = ''
+ mkdir -p $out/lib/mozilla/plugins
+ cp npGarminPlugin.so $out/lib/mozilla/plugins
+ '';
+ meta = {
+ homepage = "http://www.andreas-diesner.de/garminplugin";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.ocharles ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gcal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gcal/default.nix
new file mode 100644
index 000000000000..24906b11dd59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gcal/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, ncurses, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "gcal";
+ version = "4.1";
+
+ src = fetchurl {
+ url = "mirror://gnu/gcal/${pname}-${version}.tar.xz";
+ sha256 = "1av11zkfirbixn05hyq4xvilin0ncddfjqzc4zd9pviyp506rdci";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://src.fedoraproject.org/rpms/gcal/raw/master/f/gcal-glibc-no-libio.patch";
+ sha256 = "0l4nw9kgzsay32rsdwvs75pbp4fhx6pfm85paynfbd20cdm2n2kv";
+ })
+ ];
+
+ enableParallelBuilding = true;
+
+ buildInputs = [ ncurses ];
+
+ meta = {
+ description = "Program for calculating and printing calendars";
+ longDescription = ''
+ Gcal is the GNU version of the trusty old cal(1). Gcal is a
+ program for calculating and printing calendars. Gcal displays
+ hybrid and proleptic Julian and Gregorian calendar sheets. It
+ also displays holiday lists for many countries around the globe.
+ '';
+ homepage = "https://www.gnu.org/software/gcal/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gcalcli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
new file mode 100644
index 000000000000..20aefe2ab1d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub, python3
+, libnotify ? null }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+ pname = "gcalcli";
+ version = "4.3.0";
+
+ src = fetchFromGitHub {
+ owner = "insanum";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0s5fhcmz3n0dwh3vkqr4aigi59q43v03ch5jhh6v75149icwr0df";
+ };
+
+ postPatch = lib.optionalString stdenv.isLinux ''
+ substituteInPlace gcalcli/argparsers.py \
+ --replace "'notify-send" "'${libnotify}/bin/notify-send"
+ '';
+
+ propagatedBuildInputs = [
+ dateutil gflags httplib2 parsedatetime six vobject
+ google_api_python_client oauth2client uritemplate
+ libnotify
+ ] ++ lib.optional (!isPy3k) futures;
+
+ # There are no tests as of 4.0.0a4
+ doCheck = false;
+
+ meta = with lib; {
+ description = "CLI for Google Calendar";
+ homepage = "https://github.com/insanum/gcalcli";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nocoolnametom ];
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gcstar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gcstar/default.nix
new file mode 100644
index 000000000000..b1ab386083ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gcstar/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchFromGitLab
+, perlPackages
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gcstar";
+ version = "1.7.2";
+
+ src = fetchFromGitLab {
+ owner = "Kerenoc";
+ repo = "GCstar";
+ rev = "v${version}";
+ sha256 = "1vqfff33sssvlvsva1dflggmwl00j5p64sn1669f9wrbvjkxgpv4";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+
+ buildInputs = with perlPackages; [
+ perl
+ ArchiveZip
+ DateCalc
+ DateTimeFormatStrptime
+ Glib
+ Gtk2
+ GD
+ GDGraph
+ GDText
+ HTMLParser
+ JSON
+ ImageExifTool
+ librelative
+ LWPUserAgent
+ LWPProtocolHttps
+ MP3Info
+ MP3Tag
+ NetFreeDB
+ OggVorbisHeaderPurePerl
+ Pango
+ XMLSimple
+ XMLParser
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ cd gcstar
+ perl install --text --prefix=$out
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/gcstar --prefix PERL5LIB : $PERL5LIB
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.com/Kerenoc/GCstar";
+ description = "Manage your collections of movies, games, books, music and more";
+ longDescription = ''
+ GCstar is an application for managing your collections.
+ It supports many types of collections, including movies, books, games, comics, stamps, coins, and many more.
+ You can even create your own collection type for whatever unique thing it is that you collect!
+ Detailed information on each item can be automatically retrieved from the internet and you can store additional data, such as the location or who you've lent it to.
+ You may also search and filter your collections by many criteria.
+ '';
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ dasj19 ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/genxword/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/genxword/default.nix
new file mode 100644
index 000000000000..215542003adf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/genxword/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, python3
+, fetchFromGitHub
+, gettext
+, gobject-introspection
+, wrapGAppsHook
+, pango
+, gtksourceview3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "genxword";
+ version = "2.0.1";
+
+ src = fetchFromGitHub {
+ owner = "riverrun";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "00czdvyb5wnrk3x0g529afisl8v4frfys9ih0nzf1fs4jkzjcijg";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gobject-introspection
+ pango
+ gtksourceview3
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pycairo
+ pygobject3
+ ];
+
+ # to prevent double wrapping
+ dontWrapGApps = true;
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ # there are no tests
+ doCheck = false;
+
+ meta = with lib; {
+ inherit (src.meta) homepage;
+ description = "Crossword generator";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dotlambda ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix
new file mode 100644
index 000000000000..1f2c275b13d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "geoipupdate";
+ version = "4.5.0";
+
+ src = fetchFromGitHub {
+ owner = "maxmind";
+ repo = "geoipupdate";
+ rev = "v${version}";
+ sha256 = "0lhz7i4lprsik3s41y19vphsyc29vz6cbxikmvkmy6xjn40khjfr";
+ };
+
+ vendorSha256 = "1f858k8cl0dgiw124jv0p9jhi9aqxnc3nmc7hksw70fla2nzjrv0";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Automatic GeoIP database updater";
+ homepage = "https://github.com/maxmind/geoipupdate";
+ license = with licenses; [ asl20 ];
+ maintainers = with maintainers; [ das_j ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
new file mode 100644
index 000000000000..5c31ce55addd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg_3, makeWrapper, perl, perlPackages, rtmpdump}:
+
+with stdenv.lib;
+
+perlPackages.buildPerlPackage rec {
+ pname = "get_iplayer";
+ version = "3.24";
+
+ src = fetchFromGitHub {
+ owner = "get-iplayer";
+ repo = "get_iplayer";
+ rev = "v${version}";
+ sha256 = "0yd84ncb6cjrk4v4kz3zrddkl7iwkm3zlfbjyswd9hanp8fvd4q3";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ perl ];
+ propagatedBuildInputs = with perlPackages; [
+ HTMLParser HTTPCookies LWP LWPProtocolHttps XMLLibXML XMLSimple
+ ];
+
+ preConfigure = "touch Makefile.PL";
+ doCheck = false;
+ outputs = [ "out" "man" ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man/man1
+ cp get_iplayer $out/bin
+ wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg_3 flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB
+ cp get_iplayer.1 $out/share/man/man1
+ '';
+
+ meta = {
+ description = "Downloads TV and radio from BBC iPlayer";
+ license = licenses.gpl3Plus;
+ homepage = "https://squarepenguin.co.uk/";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ rika ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/getxbook/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/getxbook/default.nix
new file mode 100644
index 000000000000..8ac0b000c46d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/getxbook/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, openssl }:
+
+stdenv.mkDerivation rec {
+ pname = "getxbook";
+ version = "1.2";
+
+ src = fetchurl {
+ url = "https://njw.me.uk/getxbook/${pname}-${version}.tar.xz";
+ sha256 = "0ihwrx4gspj8l7fc8vxch6dpjrw1lvv9z3c19f0wxnmnxhv1cjvs";
+ };
+
+ NIX_CFLAGS_COMPILE = builtins.toString [
+ "-Wno-error=format-truncation"
+ "-Wno-error=deprecated-declarations"
+ "-Wno-error=stringop-overflow"
+ ];
+
+ buildInputs = [ openssl ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "A collection of tools to download books from Google Books";
+ homepage = "https://njw.me.uk/getxbook/";
+ license = licenses.isc;
+ maintainers = with maintainers; [ obadz ];
+ platforms = platforms.all;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/girara/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/girara/default.nix
new file mode 100644
index 000000000000..35e9d16f9df0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/girara/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, meson, ninja, pkgconfig, check, dbus, xvfb_run, glib, gtk, gettext, libiconv, json_c, libintl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "girara";
+ version = "0.3.5";
+
+ outputs = [ "out" "dev" ];
+
+ src = fetchurl {
+ url = "https://git.pwmt.org/pwmt/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1n3i960b458172mc3pkq7m9dn5qxry6fms3c3k06v27cjp5whsyf";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig gettext check dbus xvfb_run ];
+ buildInputs = [ libintl libiconv json_c ];
+ propagatedBuildInputs = [ glib gtk ];
+
+ doCheck = !stdenv.isDarwin;
+
+ mesonFlags = [
+ "-Ddocs=disabled" # docs do not seem to be installed
+ ];
+
+ checkPhase = ''
+ export NO_AT_BRIDGE=1
+ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+ meson test --print-errorlogs
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.pwmt.org/pwmt/girara";
+ description = "User interface library";
+ longDescription = ''
+ girara is a library that implements a GTK based VIM-like user interface
+ that focuses on simplicity and minimalism.
+ '';
+ license = licenses.zlib;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gitit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gitit/default.nix
new file mode 100644
index 000000000000..a4ffd3bf88d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gitit/default.nix
@@ -0,0 +1,61 @@
+{ lib, haskellPackages, haskell, removeReferencesTo
+# “Plugins” are a fancy way of saying gitit will invoke
+# GHC at *runtime*, which in turn makes it pull GHC
+# into its runtime closure. Only enable if you really need
+# that feature. But if you do you’ll want to use gitit
+# as a library anyway.
+, pluginSupport ? false
+}:
+
+# this is similar to what we do with the pandoc executable
+
+let
+ plain = haskellPackages.gitit;
+ plugins =
+ if pluginSupport
+ then plain
+ else haskell.lib.disableCabalFlag plain "plugins";
+ static = haskell.lib.justStaticExecutables plugins;
+
+in
+ (haskell.lib.overrideCabal static (drv: {
+ 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 gitit is important enough to patch it manually.
+ disallowedReferences = [
+ haskellPackages.pandoc-types
+ haskellPackages.HTTP
+ haskellPackages.pandoc
+ haskellPackages.happstack-server
+ haskellPackages.filestore
+ ];
+ postInstall = ''
+ remove-references-to \
+ -t ${haskellPackages.pandoc-types} \
+ $out/bin/gitit
+ remove-references-to \
+ -t ${haskellPackages.HTTP} \
+ $out/bin/gitit
+ remove-references-to \
+ -t ${haskellPackages.pandoc} \
+ $out/bin/gitit
+ remove-references-to \
+ -t ${haskellPackages.happstack-server} \
+ $out/bin/gitit
+ remove-references-to \
+ -t ${haskellPackages.filestore} \
+ $out/bin/gitit
+ '';
+
+ meta = drv.meta // {
+ maintainers = drv.meta.maintainers or []
+ ++ [ lib.maintainers.Profpatsch ];
+ };
+ })
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gkrellm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gkrellm/default.nix
new file mode 100644
index 000000000000..bc7c66ee5310
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gkrellm/default.nix
@@ -0,0 +1,46 @@
+{ fetchurl, stdenv, gettext, pkgconfig, glib, gtk2, libX11, libSM, libICE, which
+, IOKit ? null }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ name = "gkrellm-2.3.11";
+
+ src = fetchurl {
+ url = "http://gkrellm.srcbox.net/releases/${name}.tar.bz2";
+ sha256 = "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y";
+ };
+
+ nativeBuildInputs = [ pkgconfig which ];
+ buildInputs = [gettext glib gtk2 libX11 libSM libICE]
+ ++ optionals stdenv.isDarwin [ IOKit ];
+
+ hardeningDisable = [ "format" ];
+
+ # Makefiles are patched to fix references to `/usr/X11R6' and to add
+ # `-lX11' to make sure libX11's store path is in the RPATH.
+ patchPhase = ''
+ echo "patching makefiles..."
+ for i in Makefile src/Makefile server/Makefile
+ do
+ sed -i "$i" -e "s|/usr/X11R6|${libX11.dev}|g ; s|-lICE|-lX11 -lICE|g"
+ done
+ '';
+
+ makeFlags = [ "STRIP=-s" ];
+ installFlags = [ "DESTDIR=$(out)" ];
+
+ meta = {
+ description = "Themeable process stack of system monitors";
+ longDescription = ''
+ GKrellM is a single process stack of system monitors which
+ supports applying themes to match its appearance to your window
+ manager, Gtk, or any other theme.
+ '';
+
+ homepage = "http://gkrellm.srcbox.net";
+ license = licenses.gpl3Plus;
+ maintainers = [ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gksu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gksu/default.nix
new file mode 100644
index 000000000000..bfa504477616
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gksu/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, pkgconfig, gtk2, gnome2, gnome3, libgksu,
+ intltool, libstartup_notification, gtk-doc, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ version = "2.0.2";
+ pname = "gksu";
+
+ src = fetchurl {
+ url = "http://people.debian.org/~kov/gksu/${pname}-${version}.tar.gz";
+ sha256 = "0npfanlh28daapkg25q4fncxd89rjhvid5fwzjaw324x0g53vpm1";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig intltool gtk-doc wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk2 gnome2.GConf libstartup_notification gnome3.libgnome-keyring
+ ];
+
+ propagatedBuildInputs = [
+ libgksu
+ ];
+
+ hardeningDisable = [ "format" ];
+
+ patches = [
+ # https://savannah.nongnu.org/bugs/index.php?36127
+ ./gksu-2.0.2-glib-2.31.patch
+ ];
+
+ postPatch = ''
+ sed -i -e 's|/usr/bin/x-terminal-emulator|-l gnome-terminal|g' gksu.desktop
+ '';
+
+ configureFlags = [ "--disable-nautilus-extension" ];
+
+ meta = {
+ description = "A graphical frontend for libgksu";
+ longDescription = ''
+ GKSu is a library that provides a GTK frontend to su and sudo.
+ It supports login shells and preserving environment when acting as
+ a su frontend. It is useful to menu items or other graphical
+ programs that need to ask a user's password to run another program
+ as another user.
+ '';
+ homepage = "https://www.nongnu.org/gksu/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch
new file mode 100644
index 000000000000..fd711a321acf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch
@@ -0,0 +1,29 @@
+From 10c7e67e11a56e2fe1acf9b085772bc995d35bc0 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Sat, 7 Apr 2012 17:57:36 -0400
+Subject: [PATCH] Fix glib includes for building with >=glib-2.31
+
+glib-2.31 and newer no longer allow most glib subheaders to be included
+directly.
+
+https://savannah.nongnu.org/bugs/index.php?36127
+---
+ nautilus-gksu/libnautilus-gksu.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/nautilus-gksu/libnautilus-gksu.c b/nautilus-gksu/libnautilus-gksu.c
+index 8e44d29..4acf3f8 100644
+--- a/nautilus-gksu/libnautilus-gksu.c
++++ b/nautilus-gksu/libnautilus-gksu.c
+@@ -5,7 +5,7 @@
+ #include <string.h>
+ #include <pthread.h>
+
+-#include <glib/gkeyfile.h>
++#include <glib.h>
+ #include <gtk/gtk.h>
+ #include <gio/gio.h>
+ #include <libnautilus-extension/nautilus-extension-types.h>
+--
+1.7.8.5
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/glava/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/glava/default.nix
new file mode 100644
index 000000000000..88991bb40a19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/glava/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, writeScript, fetchFromGitHub
+, libGL, libX11, libXext, python3, libXrandr, libXrender, libpulseaudio, libXcomposite
+, enableGlfw ? false, glfw, runtimeShell }:
+
+let
+ inherit (stdenv.lib) optional makeLibraryPath;
+
+ wrapperScript = writeScript "glava" ''
+ #!${runtimeShell}
+ case "$1" in
+ --copy-config|-C)
+ # The binary would symlink it, which won't work in Nix because the
+ # garbage collector will eventually remove the original files after
+ # updates
+ echo "Nix wrapper: Copying glava config to ~/.config/glava"
+ cp -r --no-preserve=all @out@/etc/xdg/glava ~/.config/glava
+ ;;
+ *)
+ exec @out@/bin/.glava-unwrapped "$@"
+ esac
+ '';
+in
+ stdenv.mkDerivation rec {
+ pname = "glava";
+ version = "1.6.3";
+
+ src = fetchFromGitHub {
+ owner = "wacossusca34";
+ repo = "glava";
+ rev = "v${version}";
+ sha256 = "0kqkjxmpqkmgby05lsf6c6iwm45n33jk5qy6gi3zvjx4q4yzal1i";
+ };
+
+ buildInputs = [
+ libX11
+ libXext
+ libXrandr
+ libXrender
+ libpulseaudio
+ libXcomposite
+ ] ++ optional enableGlfw glfw;
+
+ nativeBuildInputs = [
+ python3
+ ];
+
+ preConfigure = ''
+ for f in $(find -type f);do
+ substituteInPlace $f \
+ --replace /etc/xdg $out/etc/xdg
+ done
+
+ substituteInPlace Makefile \
+ --replace '$(DESTDIR)$(SHADERDIR)' '$(SHADERDIR)'
+
+ substituteInPlace Makefile \
+ --replace 'unknown' 'v${version}'
+
+ export CFLAGS="-march=native"
+ '';
+
+ makeFlags = optional (!enableGlfw) "DISABLE_GLFW=1";
+
+ installFlags = [
+ "DESTDIR=$(out)"
+ ];
+
+ fixupPhase = ''
+ mkdir -p $out/bin
+ mv $out/usr/bin/glava $out/bin/.glava-unwrapped
+ rm -rf $out/usr
+
+ patchelf \
+ --set-rpath "$(patchelf --print-rpath $out/bin/.glava-unwrapped):${makeLibraryPath [ libGL ]}" \
+ $out/bin/.glava-unwrapped
+
+ substitute ${wrapperScript} $out/bin/glava --subst-var out
+ chmod +x $out/bin/glava
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ OpenGL audio spectrum visualizer
+ '';
+ homepage = "https://github.com/wacossusca34/glava";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [
+ eadwu
+ ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/glom/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/glom/default.nix
new file mode 100644
index 000000000000..9af6e39cb9bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/glom/default.nix
@@ -0,0 +1,131 @@
+{ stdenv
+, fetchurl
+, pkgconfig
+, autoconf
+, automake
+, libtool
+, mm-common
+, intltool
+, itstool
+, doxygen
+, graphviz
+, makeFontsConf
+, freefont_ttf
+, boost
+, libxmlxx3
+, libxslt
+, libgdamm
+, libarchive
+, libepc
+, python3
+, ncurses
+, glibmm
+, gtk3
+, openssl
+, gtkmm3
+, goocanvasmm2
+, evince
+, isocodes
+, gtksourceview
+, gtksourceviewmm
+, postgresql
+, gobject-introspection
+, yelp-tools
+, wrapGAppsHook
+}:
+
+let
+ gda = libgdamm.override {
+ mysqlSupport = true;
+ postgresSupport = true;
+ };
+ python = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]);
+ sphinx-build = python3.pkgs.sphinx.overrideAttrs (super: {
+ postFixup = super.postFixup or "" + ''
+ # Do not propagate Python
+ rm $out/nix-support/propagated-build-inputs
+ '';
+ });
+ boost_python = boost.override { enablePython = true; inherit python; };
+in stdenv.mkDerivation rec {
+ pname = "glom";
+ version = "1.32.0";
+
+ outputs = [ "out" "lib" "dev" "doc" "devdoc" ];
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1wcd4kd3crwqjv0jfp73jkyyf5ws8mvykg37kqxmcb58piz21gsk";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ autoconf
+ automake
+ libtool
+ mm-common
+ intltool
+ yelp-tools
+ itstool
+ doxygen
+ graphviz
+ sphinx-build
+ wrapGAppsHook
+ gobject-introspection # for setup hook
+ ];
+
+ buildInputs = [
+ boost_python
+ glibmm
+ gtk3
+ openssl
+ libxmlxx3
+ libxslt
+ gda
+ libarchive
+ libepc
+ python
+ ncurses # for python
+ gtkmm3
+ goocanvasmm2
+ evince
+ isocodes
+ python3.pkgs.pygobject3
+ gtksourceview
+ gtksourceviewmm
+ postgresql # for pg_config
+ ];
+
+ enableParallelBuilding = true;
+
+ preConfigure = "NOCONFIGURE=1 ./autogen.sh";
+
+ configureFlags = [
+ "--with-boost-python=boost_python${stdenv.lib.versions.major python3.version}${stdenv.lib.versions.minor python3.version}"
+ ];
+
+ makeFlags = [
+ "libdocdir=${placeholder "doc"}/share/doc/$(book_name)"
+ "devhelpdir=${placeholder "devdoc"}/share/devhelp/books/$(book_name)"
+ ];
+
+ # Fontconfig error: Cannot load default config file
+ FONTCONFIG_FILE = makeFontsConf {
+ fontDirectories = [ freefont_ttf ];
+ };
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PYTHONPATH : "${placeholder "out"}/${python3.sitePackages}"
+ --set PYTHONHOME "${python}"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An easy-to-use database designer and user interface";
+ homepage = "http://www.glom.org/";
+ license = [ licenses.lgpl2 licenses.gpl2 ];
+ maintainers = teams.gnome.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/default.nix
new file mode 100644
index 000000000000..8ca4c6061629
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, glib, gtk2, pkgconfig, popt }:
+
+let
+ version = "0.9.2";
+in
+
+stdenv.mkDerivation rec {
+ pname = "gmrun";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gmrun/${pname}-${version}.tar.gz";
+ sha256 = "180z6hbax1qypy5cyy2z6nn7fzxla4ib47ck8mqwr714ag77na8p";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib gtk2 popt ];
+
+ doCheck = true;
+
+ enableParallelBuilding = true;
+
+ patches = [
+ ./gcc43.patch
+ ./find-config-file-in-system-etc-dir.patch
+ ./gmrun-0.9.2-xdg.patch
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Gnome Completion-Run Utility";
+ longDescription = ''
+ A simple program which provides a "run program" window, featuring a bash-like TAB completion.
+ It uses GTK interface.
+ Also, supports CTRL-R / CTRL-S / "!" for searching through history.
+ Running commands in a terminal with CTRL-Enter. URL handlers.
+ '';
+ homepage = "https://sourceforge.net/projects/gmrun/";
+ license = licenses.gpl2;
+ maintainers = [];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/find-config-file-in-system-etc-dir.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/find-config-file-in-system-etc-dir.patch
new file mode 100644
index 000000000000..12d5370961c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/find-config-file-in-system-etc-dir.patch
@@ -0,0 +1,18 @@
+diff -ur gmrun-0.9.2-orig/src/prefs.cc gmrun-0.9.2/src/prefs.cc
+--- gmrun-0.9.2-orig/src/prefs.cc 2019-05-02 12:56:39.025088361 +0200
++++ gmrun-0.9.2/src/prefs.cc 2019-05-02 13:21:51.179778620 +0200
+@@ -31,9 +31,11 @@
+
+ Prefs::Prefs()
+ {
+- string file_name = PACKAGE_DATA_DIR"/";
+- file_name += GMRUNRC;
+- init(file_name);
++ string file_name = "/etc/" GMRUNRC;
++ if (!init(file_name)) {
++ file_name = PACKAGE_DATA_DIR "/" GMRUNRC;;
++ init(file_name);
++ }
+
+ file_name = getenv("HOME");
+ if (!file_name.empty()) {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch
new file mode 100644
index 000000000000..60e4338e893d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch
@@ -0,0 +1,51 @@
+--- a/src/gtkcompletionline.cc.orig 2003-11-16 11:55:07.000000000 +0100
++++ a/src/gtkcompletionline.cc 2008-05-08 08:51:22.000000000 +0200
+@@ -29,6 +29,7 @@
+ #include <set>
+ #include <sstream>
+ #include <string>
++#include <cstring>
+ #include <vector>
+ using namespace std;
+
+--- a/src/ci_string.h.orig 2001-05-16 16:39:31.000000000 +0200
++++ a/src/ci_string.h 2008-05-08 08:51:33.000000000 +0200
+@@ -7,6 +7,7 @@
+ #define __CI_STRING_H__
+
+ #include <string>
++#include <cstring>
+ #include <ctype.h>
+
+ struct ci_char_traits : public std::char_traits<char>
+--- a/src/prefs.cc.orig 2002-08-16 12:48:22.000000000 +0200
++++ a/src/prefs.cc 2008-05-08 08:51:54.000000000 +0200
+@@ -13,6 +13,7 @@
+ #include <fstream>
+ #include <iostream>
+ #include <stdio.h>
++#include <stdlib.h>
+
+ #include <list>
+
+--- a/src/main.cc.orig 2003-11-16 11:55:07.000000000 +0100
++++ a/src/main.cc 2008-05-08 09:03:11.000000000 +0200
+@@ -14,6 +14,7 @@
+ #include <gdk/gdkkeysyms.h>
+
+ #include <string>
++#include <cstring>
+ #include <iostream>
+ #include <sstream>
+ #include <vector>
+
+--- a/src/gtkcompletionline.cc.orig 2009-06-19 22:38:14.000000000 +0400
++++ a/src/gtkcompletionline.cc 2009-06-19 22:37:14.000000000 +0400
+@@ -376,7 +377,7 @@
+ return 0;
+ }
+
+-int my_alphasort(const void* va, const void* vb) {
++int my_alphasort(const dirent** va, const dirent** vb) {
+ const struct dirent** a = (const struct dirent**)va;
+ const struct dirent** b = (const struct dirent**)vb;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch
new file mode 100644
index 000000000000..b5cd41a3c5b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch
@@ -0,0 +1,58 @@
+diff -ur a/src/history.cc src/history.cc
+--- a/src/history.cc 2002-08-17 15:19:31.000000000 +0200
++++ a/src/history.cc 2012-06-04 23:42:35.314653414 +0200
+@@ -24,8 +24,15 @@
+ HistoryFile::HistoryFile()
+ {
+ m_file_entries = 0;
+- m_filename = g_get_home_dir();
+- m_filename += "/.gmrun_history";
++ const char* filename = getenv("XDG_CACHE_HOME");
++ if (filename != 0 && *filename != '\0') {
++ m_filename = filename;
++ m_filename += "/gmrun_history";
++ }
++ else {
++ m_filename = g_get_home_dir();
++ m_filename += "/.gmrun_history";
++ }
+ m_current = 0;
+ m_default_set = false;
+ read_the_file();
+diff -ur a/src/prefs.cc src/prefs.cc
+--- a/src/prefs.cc 2012-06-04 22:35:00.671949439 +0200
++++ a/src/prefs.cc 2012-06-04 23:24:24.184445962 +0200
+@@ -35,12 +35,29 @@
+ file_name += GMRUNRC;
+ init(file_name);
+
+- file_name = getenv("HOME");
+- if (!file_name.empty()) {
++ file_name.clear();
++ const char* filename = getenv("XDG_CONFIG_HOME");
++ if (filename != 0 && *filename != '\0') {
++ file_name = filename;
+ string::iterator i = file_name.end() - 1;
+- if (*i == '/') file_name.erase(i);
+- file_name += "/.";
++ if (*i != '/') {
++ file_name += '/';
++ }
+ file_name += GMRUNRC;
++ }
++ else {
++ filename = getenv("HOME");
++ if (filename != 0 && *filename != '\0') {
++ file_name = filename;
++ string::iterator i = file_name.end() - 1;
++ if (*i != '/') {
++ file_name += '/';
++ }
++ file_name += '.';
++ file_name += GMRUNRC;
++ }
++ }
++ if (!file_name.empty()) {
+ init(file_name);
+ }
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gmtp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmtp/default.nix
new file mode 100644
index 000000000000..c568afac31e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gmtp/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, libmtp, libid3tag, flac, libvorbis, gtk3
+, gsettings-desktop-schemas, wrapGAppsHook
+}:
+
+let version = "1.3.11"; in
+
+stdenv.mkDerivation {
+ pname = "gmtp";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gmtp/gMTP-${version}/gmtp-${version}.tar.gz";
+ sha256 = "04q6byyq002fhzkc2rkkahwh5b6272xakaj4m3vwm8la8jf0r0ss";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+ buildInputs = [ libmtp libid3tag flac libvorbis gtk3 gsettings-desktop-schemas ];
+
+ enableParallelBuilding = true;
+
+ preFixup = ''
+ gappsWrapperArgs+=(--add-flags "--datapath \"$out/share\"");
+ '';
+
+ meta = {
+ description = "A simple MP3 and Media player client for UNIX and UNIX like systems";
+ homepage = "https://gmtp.sourceforge.io";
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ ];
+ license = stdenv.lib.licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-firmware-updater/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-firmware-updater/default.nix
new file mode 100644
index 000000000000..f007f0ae52e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-firmware-updater/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, fetchFromGitLab
+, fetchpatch
+, appstream-glib
+, desktop-file-utils
+, fwupd
+, gettext
+, glib
+, gtk3
+, libsoup
+, libxmlb
+, meson
+, ninja
+, pkgconfig
+, systemd
+, help2man
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-firmware-updater";
+ version = "3.34.0";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "hughsie";
+ repo = "gnome-firmware-updater";
+ rev = version;
+ sha256 = "04pll0fzf4nr276kfw89r0524s6ppmls5rz4vq2j8c8gb50g0b6l";
+ };
+
+ patches = [
+ # Fixes manual build
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater/commit/006b64dcb401d8c81a33222bc4be8274c23f3c9c.patch";
+ sha256 = "02303ip4ri5pv1bls8c0njb00qhn0jd0d8rmvsrig0fmacwfvc06";
+ })
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater/commit/c4f076f2c902080618e0c27dec924fd0019f68a3.patch";
+ sha256 = "1yfxd7qsg3gwpamg0m2sbcfrgks59w70r9728arrc4pwx1hia2q1";
+ })
+ ];
+
+ nativeBuildInputs = [
+ appstream-glib # for ITS rules
+ desktop-file-utils
+ gettext
+ help2man
+ meson
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ fwupd
+ glib
+ gtk3
+ libsoup
+ libxmlb
+ systemd
+ ];
+
+ mesonFlags = [
+ "-Dconsolekit=false"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater";
+ description = "Tool for installing firmware on devices";
+ license = licenses.gpl2Plus;
+ maintainers = teams.gnome.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix
new file mode 100644
index 000000000000..06bc0024995d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchurl
+, appstream-glib
+, desktop-file-utils
+, gettext
+, glib
+, gnome3
+, gtk3
+, gusb
+, libcanberra-gtk3
+, libgudev
+, meson
+, ninja
+, pkgconfig
+, wrapGAppsHook
+, polkit
+, udisks
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-multi-writer";
+ version = "3.32.1";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1apdd8yi12zagf82k376a9wmdm27wzwdxpm2wf2pnwkaf786rmdw";
+ };
+
+ nativeBuildInputs = [
+ appstream-glib
+ desktop-file-utils
+ gettext
+ meson
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ gusb
+ libcanberra-gtk3
+ libgudev
+ polkit
+ udisks
+ ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Tool for writing an ISO file to multiple USB devices at once";
+ homepage = "https://wiki.gnome.org/Apps/MultiWriter";
+ license = licenses.gpl2Plus;
+ maintainers = teams.gnome.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix
new file mode 100644
index 000000000000..dc84b312626e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, meson
+, ninja
+, pkg-config
+, gettext
+, fetchFromGitLab
+, python3
+, libhandy_0
+, libpwquality
+, wrapGAppsHook
+, gtk3
+, glib
+, gdk-pixbuf
+, gobject-introspection
+, desktop-file-utils
+, appstream-glib }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "gnome-passwordsafe";
+ version = "3.99.2";
+ format = "other";
+ strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "World";
+ repo = "PasswordSafe";
+ rev = version;
+ sha256 = "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ gettext
+ pkg-config
+ wrapGAppsHook
+ desktop-file-utils
+ appstream-glib
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ gdk-pixbuf
+ libhandy_0
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pygobject3
+ construct
+
+ # pykeepass 3.2.1 changed some exception types, and is not backwards compatible.
+ # Remove override once the MR is merged upstream.
+ # https://gitlab.gnome.org/World/PasswordSafe/-/merge_requests/79
+ (pykeepass.overridePythonAttrs (old: rec {
+ version = "3.2.0";
+ src = fetchPypi {
+ pname = "pykeepass";
+ inherit version;
+ sha256 = "1ysjn92bixq8wkwhlbhrjj9z0h80qnlnj7ks5478ndkzdw5gxvm1";
+ };
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ pycryptodome ];
+ }))
+
+ ] ++ [
+ libpwquality # using the python bindings
+ ];
+
+ meta = with stdenv.lib; {
+ broken = stdenv.hostPlatform.isStatic; # libpwquality doesn't provide bindings when static
+ description = "Password manager for GNOME which makes use of the KeePass v.4 format";
+ homepage = "https://gitlab.gnome.org/World/PasswordSafe";
+ license = licenses.gpl3Only;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mvnetbiz ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
new file mode 100644
index 000000000000..cb9d10377cb8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
@@ -0,0 +1,79 @@
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, gnome3
+, desktop-file-utils
+, gettext
+, itstool
+, python3
+, wrapGAppsHook
+, gtk3
+, glib
+, libsoup
+, gnome-online-accounts
+, librest
+, json-glib
+, gnome-autoar
+, gspell
+, libcanberra }:
+
+let
+ pname = "gnome-recipes";
+ version = "2.0.2";
+in stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+ sha256 = "1yymii3yf823d9x28fbhqdqm1wa30s40j94x0am9fjj0nzyd5s8v";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ desktop-file-utils
+ gettext
+ itstool
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ libsoup
+ gnome-online-accounts
+ librest
+ json-glib
+ gnome-autoar
+ gspell
+ libcanberra
+ ];
+
+ # https://github.com/NixOS/nixpkgs/issues/36468
+ # https://gitlab.gnome.org/GNOME/recipes/issues/76
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+ postPatch = ''
+ chmod +x src/list_to_c.py
+ patchShebangs src/list_to_c.py
+ patchShebangs meson_post_install.py
+ '';
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Recipe management application for GNOME";
+ homepage = "https://wiki.gnome.org/Apps/Recipes";
+ maintainers = teams.gnome.members;
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
new file mode 100644
index 000000000000..44d4727edba0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, vala
+, gettext
+, libxml2
+, desktop-file-utils
+, wrapGAppsHook
+, glib
+, gtk3
+, libgtop
+, libdazzle
+, gnome3
+, tracker
+, libhandy
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-usage";
+ version = "3.38.0";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0mqs39yi2cqwkzlmmgzrszsva5hbdpws6zk4lbi4w2cjzl185mcl";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ gettext
+ libxml2
+ meson
+ ninja
+ pkgconfig
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gnome3.adwaita-icon-theme
+ gtk3
+ libdazzle
+ libgtop
+ tracker
+ libhandy
+ ];
+
+ postPatch = ''
+ chmod +x build-aux/meson/postinstall.sh
+ patchShebangs build-aux/meson/postinstall.sh
+ '';
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "A nice way to view information about use of system resources, like memory and disk space";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = teams.gnome.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/go-jira/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/go-jira/default.nix
new file mode 100644
index 000000000000..001f3d1de4c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/go-jira/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "go-jira";
+ version = "1.0.27";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "go-jira";
+ repo = "jira";
+ sha256 = "1sw56aqghfxh88mfchf0nvqld0x7w22jfwx13pd24slxv1iag1nb";
+ };
+
+ vendorSha256 = "0d64gkkzfm6hbgqaibj26fpaqnjs50p1675ycrshdhn6blb5mbxg";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Simple command line client for Atlassian's Jira service written in Go";
+ homepage = "https://github.com/go-jira/jira";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ carlosdagos timstott ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
new file mode 100644
index 000000000000..c3161ed875a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, fetchFromGitHub, fetchpatch, mkDerivation
+, qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools
+, qtconnectivity, qtcharts, libusb-compat-0_1
+, yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper
+}:
+
+let
+ desktopItem = makeDesktopItem {
+ name = "goldencheetah";
+ exec = "GoldenCheetah";
+ icon = "goldencheetah";
+ desktopName = "GoldenCheetah";
+ genericName = "GoldenCheetah";
+ comment = "Performance software for cyclists, runners and triathletes";
+ categories = "Utility;";
+ };
+in mkDerivation rec {
+ pname = "golden-cheetah";
+ version = "3.5";
+
+ src = fetchFromGitHub {
+ owner = "GoldenCheetah";
+ repo = "GoldenCheetah";
+ rev = "V${version}";
+ sha256 = "1lyd0b2s3s9c2ppj7l4hf3s4gfzscaaam2pbiaby714bi9nr0ka7";
+ };
+
+ buildInputs = [
+ qtbase qtsvg qtserialport qtwebengine qtmultimedia qttools zlib
+ qtconnectivity qtcharts libusb-compat-0_1
+ ];
+ nativeBuildInputs = [ flex makeWrapper qmake yacc ];
+
+ patches = [
+ # allow building with bison 3.7
+ # PR at https://github.com/GoldenCheetah/GoldenCheetah/pull/3590
+ (fetchpatch {
+ url = "https://github.com/GoldenCheetah/GoldenCheetah/commit/e1f42f8b3340eb4695ad73be764332e75b7bce90.patch";
+ sha256 = "1h0y9vfji5jngqcpzxna5nnawxs77i1lrj44w8a72j0ah0sznivb";
+ })
+ ];
+
+ NIX_LDFLAGS = "-lz";
+
+ qtWrapperArgs = [ "--set LD_LIBRARY_PATH ${zlib.out}/lib" ];
+
+ preConfigure = ''
+ cp src/gcconfig.pri.in src/gcconfig.pri
+ cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
+ echo 'QMAKE_LRELEASE = ${qttools.dev}/bin/lrelease' >> src/gcconfig.pri
+ echo 'LIBUSB_INSTALL = ${libusb-compat-0_1}' >> src/gcconfig.pri
+ echo 'LIBUSB_INCLUDE = ${libusb-compat-0_1.dev}/include' >> src/gcconfig.pri
+ echo 'LIBUSB_LIBS = -L${libusb-compat-0_1}/lib -lusb' >> src/gcconfig.pri
+ sed -i -e '21,23d' qwt/qwtconfig.pri # Removed forced installation to /usr/local
+
+ # Use qtwebengine instead of qtwebkit
+ substituteInPlace src/gcconfig.pri \
+ --replace "#DEFINES += NOWEBKIT" "DEFINES += NOWEBKIT"
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ cp src/GoldenCheetah $out/bin
+ install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/
+ install -Dm644 src/Resources/images/gc.png $out/share/pixmaps/goldencheetah.png
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Performance software for cyclists, runners and triathletes";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.ocharles ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-check-for-updates.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-check-for-updates.patch
new file mode 100644
index 000000000000..31c7a6382292
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-check-for-updates.patch
@@ -0,0 +1,49 @@
+diff --git i/config.cc w/config.cc
+index 04b63f5..7a453d9 100644
+--- i/config.cc
++++ w/config.cc
+@@ -182,7 +182,7 @@ Preferences::Preferences():
+ pronounceOnLoadPopup( false ),
+ useInternalPlayer( InternalPlayerBackend::anyAvailable() ),
+ internalPlayerBackend( InternalPlayerBackend::defaultBackend() ),
+- checkForNewReleases( true ),
++ checkForNewReleases( false ),
+ disallowContentFromOtherSites( false ),
+ enableWebPlugins( false ),
+ hideGoldenDictHeader( false ),
+@@ -867,8 +867,8 @@ Class load() THROW_SPEC( exError )
+ c.preferences.proxyServer.systemProxyPassword = proxy.namedItem( "systemProxyPassword" ).toElement().text();
+ }
+
+- if ( !preferences.namedItem( "checkForNewReleases" ).isNull() )
+- c.preferences.checkForNewReleases = ( preferences.namedItem( "checkForNewReleases" ).toElement().text() == "1" );
++ //if ( !preferences.namedItem( "checkForNewReleases" ).isNull() )
++ // c.preferences.checkForNewReleases = ( preferences.namedItem( "checkForNewReleases" ).toElement().text() == "1" );
+
+ if ( !preferences.namedItem( "disallowContentFromOtherSites" ).isNull() )
+ c.preferences.disallowContentFromOtherSites = ( preferences.namedItem( "disallowContentFromOtherSites" ).toElement().text() == "1" );
+@@ -1819,9 +1819,9 @@ void save( Class const & c ) THROW_SPEC( exError )
+ proxy.appendChild( opt );
+ }
+
+- opt = dd.createElement( "checkForNewReleases" );
+- opt.appendChild( dd.createTextNode( c.preferences.checkForNewReleases ? "1" : "0" ) );
+- preferences.appendChild( opt );
++ //opt = dd.createElement( "checkForNewReleases" );
++ //opt.appendChild( dd.createTextNode( c.preferences.checkForNewReleases ? "1" : "0" ) );
++ //preferences.appendChild( opt );
+
+ opt = dd.createElement( "disallowContentFromOtherSites" );
+ opt.appendChild( dd.createTextNode( c.preferences.disallowContentFromOtherSites ? "1" : "0" ) );
+diff --git i/preferences.cc w/preferences.cc
+index 72c3147..7e48f00 100644
+--- i/preferences.cc
++++ w/preferences.cc
+@@ -314,6 +314,7 @@ Preferences::Preferences( QWidget * parent, Config::Class & cfg_ ):
+ this, SLOT( customProxyToggled( bool ) ) );
+
+ ui.checkForNewReleases->setChecked( p.checkForNewReleases );
++ ui.checkForNewReleases->setEnabled( false );
+ ui.disallowContentFromOtherSites->setChecked( p.disallowContentFromOtherSites );
+ ui.enableWebPlugins->setChecked( p.enableWebPlugins );
+ ui.hideGoldenDictHeader->setChecked( p.hideGoldenDictHeader );
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch
new file mode 100644
index 000000000000..fc1fcbb0db07
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch
@@ -0,0 +1,62 @@
+diff --git i/goldendict.pro w/goldendict.pro
+index 328dc20..5202a07 100644
+--- i/goldendict.pro
++++ w/goldendict.pro
+@@ -210,21 +210,18 @@ mac {
+ -llzo2
+ !CONFIG( no_ffmpeg_player ) {
+ LIBS += -lao \
+- -lavutil-gd \
+- -lavformat-gd \
+- -lavcodec-gd
++ -lavutil \
++ -lavformat \
++ -lavcodec
+ }
+- INCLUDEPATH = $${PWD}/maclibs/include
+- LIBS += -L$${PWD}/maclibs/lib -framework AppKit -framework Carbon
++ LIBS += -framework AppKit -framework Carbon
+ OBJECTIVE_SOURCES += lionsupport.mm \
+ machotkeywrapper.mm \
+ macmouseover.mm \
+ speechclient_mac.mm
+ ICON = icons/macicon.icns
+ QMAKE_INFO_PLIST = myInfo.plist
+- QMAKE_POST_LINK = mkdir -p GoldenDict.app/Contents/Frameworks & \
+- cp -nR $${PWD}/maclibs/lib/ GoldenDict.app/Contents/Frameworks/ & \
+- mkdir -p GoldenDict.app/Contents/MacOS/locale & \
++ QMAKE_POST_LINK = mkdir -p GoldenDict.app/Contents/MacOS/locale & \
+ cp -R locale/*.qm GoldenDict.app/Contents/MacOS/locale/ & \
+ mkdir -p GoldenDict.app/Contents/MacOS/help & \
+ cp -R $${PWD}/help/*.qch GoldenDict.app/Contents/MacOS/help/
+@@ -232,15 +229,6 @@ mac {
+ CONFIG += zim_support
+ !CONFIG( no_chinese_conversion_support ) {
+ CONFIG += chinese_conversion_support
+- CONFIG( x86 ) {
+- QMAKE_POST_LINK += & mkdir -p GoldenDict.app/Contents/MacOS/opencc & \
+- cp -R $${PWD}/opencc/*.json GoldenDict.app/Contents/MacOS/opencc/ & \
+- cp -R $${PWD}/opencc/*.ocd GoldenDict.app/Contents/MacOS/opencc/
+- } else {
+- QMAKE_POST_LINK += & mkdir -p GoldenDict.app/Contents/MacOS/opencc & \
+- cp -R $${PWD}/opencc/x64/*.json GoldenDict.app/Contents/MacOS/opencc/ & \
+- cp -R $${PWD}/opencc/x64/*.ocd GoldenDict.app/Contents/MacOS/opencc/
+- }
+ }
+ }
+ DEFINES += PROGRAM_VERSION=\\\"$$VERSION\\\"
+diff --git i/tiff.cc w/tiff.cc
+index e3cb8bf..9ff880f 100644
+--- i/tiff.cc
++++ w/tiff.cc
+@@ -6,8 +6,8 @@
+ #include "tiff.hh"
+
+ #if defined (Q_OS_MAC) || defined (Q_OS_WIN)
+-#include "tiff/tiff.h"
+-#include "tiff/tiffio.h"
++#include "tiff.h"
++#include "tiffio.h"
+ #else
+ #include "tiff.h"
+ #include "tiffio.h"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/default.nix
new file mode 100644
index 000000000000..57a40f8d1877
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/goldendict/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig
+, libXtst, libvorbis, hunspell, lzo, xz, bzip2, libiconv
+, qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmake
+, withCC ? true, opencc
+, withEpwing ? true, libeb
+, withExtraTiff ? true, libtiff
+, withFFmpeg ? true, libao, ffmpeg_3
+, withMultimedia ? true
+, withZim ? true, zstd }:
+
+mkDerivation rec {
+ pname = "goldendict";
+ version = "2020-05-27";
+
+ src = fetchFromGitHub {
+ owner = "goldendict";
+ repo = pname;
+ rev = "ec40c1dcfde6df1dc7950443b46ae22c283b1e52";
+ sha256 = "1zmnwwnpnrqfyf7vmmh38r95q2fl4cqzbkp69bcwkr0xc80wgyz7";
+ };
+
+ patches = [
+ ./0001-dont-check-for-updates.patch
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ ./0001-dont-use-maclibs.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace goldendict.pro \
+ --replace "hunspell-1.6.1" "hunspell-${stdenv.lib.versions.majorMinor hunspell.version}"
+ '';
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ buildInputs = [
+ qtbase qtsvg qtwebkit qttools
+ libvorbis hunspell xz lzo
+ ] ++ stdenv.lib.optionals stdenv.isLinux [ qtx11extras libXtst ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ bzip2 libiconv ]
+ ++ stdenv.lib.optional withCC opencc
+ ++ stdenv.lib.optional withEpwing libeb
+ ++ stdenv.lib.optional withExtraTiff libtiff
+ ++ stdenv.lib.optionals withFFmpeg [ libao ffmpeg_3 ]
+ ++ stdenv.lib.optional withZim zstd;
+
+ qmakeFlags = with stdenv.lib; [
+ "goldendict.pro"
+ (optional withCC "CONFIG+=chinese_conversion_support")
+ (optional (!withCC) "CONFIG+=no_chinese_conversion_support")
+ (optional (!withEpwing) "CONFIG+=no_epwing_support")
+ (optional (!withExtraTiff) "CONFIG+=no_extra_tiff_handler")
+ (optional (!withFFmpeg) "CONFIG+=no_ffmpeg_player")
+ (optional (!withMultimedia)"CONFIG+=no_qtmultimedia_player")
+ (optional withZim "CONFIG+=zim_support")
+ ];
+
+ postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+ mkdir -p $out/Applications
+ mv GoldenDict.app $out/Applications
+ wrapQtApp $out/Applications/GoldenDict.app/Contents/MacOS/GoldenDict
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://goldendict.org/";
+ description = "A feature-rich dictionary lookup program";
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ gebner astsmtl sikmir ];
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/Gemfile
new file mode 100644
index 000000000000..525f54838b75
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'gollum'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
new file mode 100644
index 000000000000..eed618a5cbd1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
@@ -0,0 +1,112 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ concurrent-ruby (1.1.7)
+ crass (1.0.6)
+ execjs (2.7.0)
+ ffi (1.13.1)
+ gemojione (4.3.3)
+ json
+ github-markup (3.0.5)
+ gollum (5.1.2)
+ gemojione (~> 4.1)
+ gollum-lib (~> 5.0)
+ kramdown (~> 2.3)
+ kramdown-parser-gfm (~> 1.1.0)
+ mustache (>= 0.99.5, < 1.0.0)
+ octicons (~> 8.5)
+ rss (~> 0.2.9)
+ sass (~> 3.5)
+ sinatra (~> 2.0)
+ sinatra-contrib (~> 2.0)
+ sprockets (~> 3.7)
+ sprockets-helpers (~> 1.2)
+ therubyrhino (~> 2.1.0)
+ uglifier (~> 3.2)
+ useragent (~> 0.16.2)
+ gollum-lib (5.0.6)
+ gemojione (~> 4.1)
+ github-markup (~> 3.0)
+ gollum-rugged_adapter (~> 1.0)
+ loofah (~> 2.3)
+ nokogiri (~> 1.8)
+ octicons (~> 8.5)
+ rouge (~> 3.1)
+ twitter-text (= 1.14.7)
+ gollum-rugged_adapter (1.0)
+ mime-types (>= 1.15)
+ rugged (~> 0.99)
+ json (2.3.1)
+ kramdown (2.3.0)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ loofah (2.8.0)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.5.9)
+ mime-types (3.3.1)
+ mime-types-data (~> 3.2015)
+ mime-types-data (3.2020.1104)
+ mini_portile2 (2.4.0)
+ multi_json (1.15.0)
+ mustache (0.99.8)
+ mustermann (1.1.1)
+ ruby2_keywords (~> 0.0.1)
+ nokogiri (1.10.10)
+ mini_portile2 (~> 2.4.0)
+ octicons (8.5.0)
+ nokogiri (>= 1.6.3.1)
+ rack (2.2.3)
+ rack-protection (2.1.0)
+ rack
+ rb-fsevent (0.10.4)
+ rb-inotify (0.10.1)
+ ffi (~> 1.0)
+ rexml (3.2.4)
+ rouge (3.25.0)
+ rss (0.2.9)
+ rexml
+ ruby2_keywords (0.0.2)
+ rugged (0.99.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)
+ sinatra (2.1.0)
+ mustermann (~> 1.0)
+ rack (~> 2.2)
+ rack-protection (= 2.1.0)
+ tilt (~> 2.0)
+ sinatra-contrib (2.1.0)
+ multi_json
+ mustermann (~> 1.0)
+ rack-protection (= 2.1.0)
+ sinatra (= 2.1.0)
+ tilt (~> 2.0)
+ sprockets (3.7.2)
+ concurrent-ruby (~> 1.0)
+ rack (> 1, < 3)
+ sprockets-helpers (1.4.0)
+ sprockets (>= 2.2)
+ therubyrhino (2.1.2)
+ therubyrhino_jar (>= 1.7.4, < 1.7.9)
+ therubyrhino_jar (1.7.8)
+ tilt (2.0.10)
+ twitter-text (1.14.7)
+ unf (~> 0.1.0)
+ uglifier (3.2.0)
+ execjs (>= 0.3.0, < 3)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.7.7)
+ useragent (0.16.10)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ gollum
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/default.nix
new file mode 100644
index 000000000000..9005f38f563b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, bundlerEnv, ruby, makeWrapper, bundlerUpdateScript
+, git }:
+
+stdenv.mkDerivation rec {
+ pname = "gollum";
+ # nix-shell -p bundix icu zlib cmake pkg-config openssl
+ version = (import ./gemset.nix).gollum.version;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ phases = [ "installPhase" ];
+
+ installPhase = let
+ env = bundlerEnv {
+ name = "${pname}-${version}-gems";
+ inherit pname ruby;
+ gemdir = ./.;
+ };
+ in ''
+ mkdir -p $out/bin
+ makeWrapper ${env}/bin/gollum $out/bin/gollum \
+ --prefix PATH ":" ${stdenv.lib.makeBinPath [ git ]}
+ makeWrapper ${env}/bin/gollum-migrate-tags $out/bin/gollum-migrate-tags \
+ --prefix PATH ":" ${stdenv.lib.makeBinPath [ git ]}
+ '';
+
+ passthru.updateScript = bundlerUpdateScript "gollum";
+
+ meta = with stdenv.lib; {
+ description = "A simple, Git-powered wiki with a sweet API and local frontend";
+ homepage = "https://github.com/gollum/gollum";
+ changelog = "https://github.com/gollum/gollum/blob/v${version}/HISTORY.md";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jgillich primeos nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
new file mode 100644
index 000000000000..75ee9d05ab43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
@@ -0,0 +1,466 @@
+{
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+ type = "gem";
+ };
+ version = "1.1.7";
+ };
+ crass = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
+ type = "gem";
+ };
+ version = "1.0.6";
+ };
+ execjs = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ gemojione = {
+ dependencies = ["json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fwd523pgr72w3w6jwpz9i6sggvz52d7831a1s4y3lv8m50j6ima";
+ type = "gem";
+ };
+ version = "4.3.3";
+ };
+ github-markup = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rlq9hnvhhndqskl087xwabbvfbfnrvx8ac79iin35wmzpyagl96";
+ type = "gem";
+ };
+ version = "3.0.5";
+ };
+ gollum = {
+ dependencies = ["gemojione" "gollum-lib" "kramdown" "kramdown-parser-gfm" "mustache" "octicons" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pmvxj7pka7pjpw060a9pfxsci1hmx45hk9hbp5m49xkkiiqf1gx";
+ type = "gem";
+ };
+ version = "5.1.2";
+ };
+ gollum-lib = {
+ dependencies = ["gemojione" "github-markup" "gollum-rugged_adapter" "loofah" "nokogiri" "octicons" "rouge" "twitter-text"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02mc1w4hn9kjrgvg0r46x1bd0h8hq7lqs432dgjfn2dw36kchja4";
+ type = "gem";
+ };
+ version = "5.0.6";
+ };
+ gollum-rugged_adapter = {
+ dependencies = ["mime-types" "rugged"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ln12976vm1ks74yyrssdx576b1z0hs8r82fivr366knv5hlcrdm";
+ type = "gem";
+ };
+ version = "1.0";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ kramdown = {
+ dependencies = ["rexml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ kramdown-parser-gfm = {
+ dependencies = ["kramdown"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ loofah = {
+ dependencies = ["crass" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+ type = "gem";
+ };
+ version = "2.8.0";
+ };
+ 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 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+ type = "gem";
+ };
+ version = "3.2020.1104";
+ };
+ mini_portile2 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+ type = "gem";
+ };
+ version = "1.15.0";
+ };
+ mustache = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
+ type = "gem";
+ };
+ version = "0.99.8";
+ };
+ mustermann = {
+ dependencies = ["ruby2_keywords"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ccm54qgshr1lq3pr1dfh7gphkilc19dp63rw6fcx7460pjwy88a";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+ type = "gem";
+ };
+ version = "1.10.10";
+ };
+ octicons = {
+ dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fy6shpfmla58dxx3kb2zi1hs7vmdw6pqrksaa8yrva05s4l3y75";
+ type = "gem";
+ };
+ version = "8.5.0";
+ };
+ rack = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+ type = "gem";
+ };
+ version = "2.2.3";
+ };
+ rack-protection = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "159a4j4kragqh0z0z8vrpilpmaisnlz3n7kgiyf16bxkwlb3qlhz";
+ type = "gem";
+ };
+ version = "2.1.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";
+ };
+ rexml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ rouge = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yvcv901lrh5rfnk1h4h56hf2m6n9pd6w8n96vag74aakgz3gaxn";
+ type = "gem";
+ };
+ version = "3.25.0";
+ };
+ rss = {
+ dependencies = ["rexml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b1zx07kr64kkpm4lssd4r1a1qyr829ppmfl85i4adcvx9mqfid0";
+ type = "gem";
+ };
+ version = "0.2.9";
+ };
+ ruby2_keywords = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+ type = "gem";
+ };
+ version = "0.0.2";
+ };
+ rugged = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04rkxwzaa6897da3mnm70g720gpxwyh71krfn6ag1dkk80x8a8yz";
+ type = "gem";
+ };
+ version = "0.99.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";
+ };
+ sinatra = {
+ dependencies = ["mustermann" "rack" "rack-protection" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dd53rzpkxgs697pycbhhgc9vcnxra4ly4xar8ni6aiydx2f88zk";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ sinatra-contrib = {
+ dependencies = ["multi_json" "mustermann" "rack-protection" "sinatra" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl1iiafz51yzjd0vchl2lni7lmwppjql6cn1fnfxbma707qlcja";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ sprockets = {
+ dependencies = ["concurrent-ruby" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+ type = "gem";
+ };
+ version = "3.7.2";
+ };
+ sprockets-helpers = {
+ dependencies = ["sprockets"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0513ma356g05lsskhsb363263177h6ccmp475il0p69y18his2ij";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ therubyrhino = {
+ dependencies = ["therubyrhino_jar"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "034mzpkxm3zjsi4rwa45dhhgq2b9vkabs5bnzbl1d3ka7210b3fc";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+ therubyrhino_jar = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "149a5lsvn2n7k7vcfs77n836q1alv8yjh0503sf9cs65p974ah25";
+ type = "gem";
+ };
+ version = "1.7.8";
+ };
+ tilt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
+ type = "gem";
+ };
+ version = "2.0.10";
+ };
+ twitter-text = {
+ dependencies = ["unf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1732h7hy1k152w8wfvjsx7b79alk45i5imwd37ia4qcx8hfm3gvg";
+ type = "gem";
+ };
+ version = "1.14.7";
+ };
+ uglifier = {
+ dependencies = ["execjs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wmqvn4xncw6h3d5gp2a44170zwxfyj3iq4rsjp16zarvzbdmgnz";
+ type = "gem";
+ };
+ version = "3.2.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";
+ };
+ useragent = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fv5kvq494swy0p17h9qya9r50w15xsi9zmvhzb8gh55kq6ki50p";
+ type = "gem";
+ };
+ version = "0.16.10";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gomatrix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gomatrix/default.nix
new file mode 100644
index 000000000000..c903f1ba1bbe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gomatrix/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "gomatrix";
+ version = "101.0.0";
+
+ src = fetchFromGitHub {
+ owner = "GeertJohan";
+ repo = "gomatrix";
+ rev = "v${version}";
+ sha256 = "1wq55rvpyz0gjn8kiwwj49awsmi86zy1fdjcphzgb7883xalgr2m";
+ };
+
+ vendorSha256 = "1yw0gph4zfg8w4343882l6b9lggwyak2zz8ic1l1m2m44p3aq169";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = ''Displays "The Matrix" in a terminal'';
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ skykanin ];
+ homepage = "https://github.com/GeertJohan/gomatrix";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/googleearth/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/googleearth/default.nix
new file mode 100644
index 000000000000..db3881063454
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/googleearth/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv
+, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11
+, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus }:
+
+let
+ arch =
+ if stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
+ else if stdenv.hostPlatform.system == "i686-linux" then "i386"
+ else throw "Unsupported system ${stdenv.hostPlatform.system}";
+ sha256 =
+ if arch == "amd64"
+ then "0dwnppn5snl5bwkdrgj4cyylnhngi0g66fn2k41j3dvis83x24k6"
+ else "0gndbxrj3kgc2dhjqwjifr3cl85hgpm695z0wi01wvwzhrjqs0l2";
+ version = "7.1.8.3036";
+ fullPath = stdenv.lib.makeLibraryPath [
+ glibc
+ glib
+ stdenv.cc.cc
+ libSM
+ libICE
+ libXi
+ libXv
+ libGLU libGL
+ libXrender
+ libXrandr
+ libXfixes
+ libXcursor
+ libXinerama
+ freetype
+ libXext
+ libX11
+ zlib
+ fontconfig
+ libproxy
+ libxml2
+ dbus
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ ];
+in
+stdenv.mkDerivation rec {
+ pname = "googleearth";
+ inherit version;
+ src = fetchurl {
+ url = "https://dl.google.com/linux/earth/deb/pool/main/g/google-earth-stable/google-earth-stable_${version}-r0_${arch}.deb";
+ inherit sha256;
+ };
+
+ phases = [ "unpackPhase" "installPhase" "checkPhase" ];
+
+ doCheck = true;
+
+ buildInputs = [ dpkg ];
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ installPhase =''
+ mkdir $out
+ mv usr/* $out/
+ rmdir usr
+ mv * $out/
+ rm $out/bin/google-earth $out/opt/google/earth/free/googleearth
+
+ # patch and link googleearth binary
+ ln -s $out/opt/google/earth/free/googleearth-bin $out/bin/googleearth
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${fullPath}:\$ORIGIN" \
+ $out/opt/google/earth/free/googleearth-bin
+
+ # patch and link gpsbabel binary
+ ln -s $out/opt/google/earth/free/gpsbabel $out/bin/gpsbabel
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${fullPath}:\$ORIGIN" \
+ $out/opt/google/earth/free/gpsbabel
+
+ # patch libraries
+ for a in $out/opt/google/earth/free/*.so* ; do
+ patchelf --set-rpath "${fullPath}:\$ORIGIN" $a
+ done
+
+ # Add desktop config file and icons
+ mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps}
+ ln -s $out/opt/google/earth/free/google-earth.desktop $out/share/applications/google-earth.desktop
+ sed -i -e "s|Exec=.*|Exec=$out/bin/googleearth|g" $out/opt/google/earth/free/google-earth.desktop
+ for size in 16 22 24 32 48 64 128 256; do
+ ln -s $out/opt/google/earth/free/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth.png
+ done
+ ln -s $out/opt/google/earth/free/product_logo_256.png $out/share/pixmaps/google-earth.png
+ '';
+
+ checkPhase = ''
+ $out/bin/gpsbabel -V > /dev/null
+ '';
+
+ dontPatchELF = true;
+
+ meta = with stdenv.lib; {
+ description = "A world sphere viewer";
+ homepage = "http://earth.google.com";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ markus1189 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/googler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/googler/default.nix
new file mode 100644
index 000000000000..7a096b52314a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/googler/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, python, installShellFiles }:
+
+stdenv.mkDerivation rec {
+ pname = "googler";
+ version = "4.3.1";
+
+ src = fetchFromGitHub {
+ owner = "jarun";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "04wa0mlbfjnzwham2dpd9lch7800js4vp3ikgjl4qnwilvr1lw74";
+ };
+
+ buildInputs = [ python ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ installShellCompletion --bash --name googler.bash auto-completion/bash/googler-completion.bash
+ installShellCompletion --fish auto-completion/fish/googler.fish
+ installShellCompletion --zsh auto-completion/zsh/_googler
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jarun/googler";
+ description = "Google Search, Google Site Search, Google News from the terminal";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ koral Br1ght0ne ];
+ platforms = python.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gopacked/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gopacked/default.nix
new file mode 100644
index 000000000000..57f6be40ab02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gopacked/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "gopacked";
+ version = "0.4.1";
+
+ src = fetchFromGitHub {
+ owner = "tulir";
+ repo = "gopacked";
+ rev = "v${version}";
+ sha256 = "03qr8rlnipziy16nbcpf631jh42gsyv2frdnh8yzsh8lm0p8p4ry";
+ };
+
+ vendorSha256 = "0fklr3lxh8g7gda65wf2wdkqv15869h7m1bwbzbiv8pasrf5b352";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A simple text-based Minecraft modpack manager";
+ license = licenses.agpl3;
+ homepage = src.meta.homepage;
+ maintainers = with maintainers; [ foxit64 ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gosmore/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gosmore/default.nix
new file mode 100644
index 000000000000..4da6c6d07cc4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gosmore/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchsvn, libxml2, gtk2, curl, pkgconfig } :
+
+let
+ version = "31801";
+in
+stdenv.mkDerivation {
+ name = "gosmore-r${version}";
+ # the gosmore svn repository does not lock revision numbers of its externals
+ # so we explicitly disable them to avoid breaking the hash
+ # especially as the externals appear to be unused
+ src = fetchsvn {
+ url = "http://svn.openstreetmap.org/applications/rendering/gosmore";
+ sha256 = "0qsckpqx7i7f8gkqhkzdamr65250afk1rpnh3nbman35kdv3dsxi";
+ rev = version;
+ ignoreExternals = true;
+ };
+
+ buildInputs = [ libxml2 gtk2 curl ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ prePatch = ''
+ sed -e '/curl.types.h/d' -i *.{c,h,hpp,cpp}
+ '';
+
+ patches = [ ./pointer_int_comparison.patch ];
+ patchFlags = [ "-p1" "--binary" ]; # patch has dos style eol
+
+ meta = with stdenv.lib; {
+ description = "Open Street Map viewer";
+ homepage = "https://sourceforge.net/projects/gosmore/";
+ maintainers = with maintainers; [
+ raskin
+ ];
+ platforms = platforms.linux;
+ license = licenses.bsd2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch
new file mode 100644
index 000000000000..4a715b6d8591
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch
@@ -0,0 +1,11 @@
+--- blah_/jni/gosmore.cpp 1970-01-01 01:00:01.000000000 +0100
++++ /dev/stdin 2018-03-18 00:21:08.474217132 +0100
+@@ -1273,7 +1273,7 @@
+ if (deg[i] < -180 || deg[i] > 180) break;
+ if (i == 0 && (strncasecmp (t, "lat", 3) == 0 ||
+ strncasecmp (t, "lon", 3) == 0)) { // lat=-25.7 lon=28.2
+- for (t += 3; t != '\0' && !isalnum (*t); t++) {}
++ for (t += 3; *t != '\0' && !isalnum (*t); t++) {}
+ }
+ if (i == 1) { // Success !
+ //printf ("%lf %lf %u\n", deg[lonFirst ? 1 : 0], deg[lonFirst ? 0 : 1],
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpa/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpa/default.nix
new file mode 100644
index 000000000000..cd7b724a1d78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpa/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gtk2, gpgme, libgpgerror, libassuan }:
+
+stdenv.mkDerivation rec {
+ name = "gpa-0.10.0";
+
+ src = fetchurl {
+ url = "mirror://gnupg/gpa/${name}.tar.bz2";
+ sha256 = "1cbpc45f8qbdkd62p12s3q2rdq6fa5xdzwmcwd3xrj55bzkspnwm";
+ };
+
+ nativeBuildInputs = [ intltool pkgconfig ];
+ buildInputs = [ gtk2 gpgme libgpgerror libassuan ];
+
+ meta = with stdenv.lib; {
+ description = "Graphical user interface for the GnuPG";
+ homepage = "https://www.gnupg.org/related_software/gpa/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix
new file mode 100644
index 000000000000..cf3d6fe9e93e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix
@@ -0,0 +1,35 @@
+{ fetchurl, stdenv, ncurses, gnupg }:
+
+let version = "0.7.4";
+in stdenv.mkDerivation {
+ # mdp renamed to gpg-mdp because there is a mdp package already.
+ pname = "gpg-mdp";
+ inherit version;
+ meta = {
+ homepage = "https://tamentis.com/projects/mdp/";
+ license = [stdenv.lib.licenses.isc];
+ description = "Manage your passwords with GnuPG and a text editor";
+ };
+ src = fetchurl {
+ url = "https://tamentis.com/projects/mdp/files/mdp-${version}.tar.gz";
+ sha256 = "04mdnx4ccpxf9m2myy9nvpl9ma4jgzmv9bkrzv2b9affzss3r34g";
+ };
+ buildInputs = [ ncurses ];
+ prePatch = ''
+ substituteInPlace ./configure \
+ --replace "alias echo=/bin/echo" ""
+
+ substituteInPlace ./src/config.c \
+ --replace "/usr/bin/gpg" "${gnupg}/bin/gpg" \
+ --replace "/usr/bin/vi" "vi"
+
+ substituteInPlace ./mdp.1 \
+ --replace "/usr/bin/gpg" "${gnupg}/bin/gpg"
+ '';
+ # we add symlinks to the binary and man page with the name 'gpg-mdp', in case
+ # the completely unrelated program also named 'mdp' is already installed.
+ postFixup = ''
+ ln -s $out/bin/mdp $out/bin/gpg-mdp
+ ln -s $out/share/man/man1/mdp.1.gz $out/share/man/man1/gpg-mdp.1.gz
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gphoto2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gphoto2/default.nix
new file mode 100644
index 000000000000..7bda292a4cba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gphoto2/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, gettext
+, libexif
+, libgphoto2
+, libjpeg
+, libtool
+, popt
+, readline
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gphoto2";
+ version = "2.5.26";
+
+ src = fetchFromGitHub {
+ owner = "gphoto";
+ repo = "gphoto2";
+ rev = "v${version}";
+ sha256 = "1w01j3qvjl2nlfs38rnsmjvn3r0r2xf7prxz1i6yarbpj3fzwqqc";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ gettext
+ libtool
+ ];
+
+ buildInputs = [
+ libexif
+ libgphoto2
+ libjpeg
+ popt
+ readline
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A ready to use set of digital camera software applications";
+ longDescription = ''
+
+ A set of command line utilities for manipulating over 1400 different
+ digital cameras. Through libgphoto2, it supports PTP, MTP, and much more..
+
+ '';
+ homepage = "http://www.gphoto.org/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.jcumming ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix
new file mode 100644
index 000000000000..668706ca3895
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libtool, pkgconfig, libgphoto2, fuse, glib }:
+
+stdenv.mkDerivation rec {
+ pname = "gphoto2fs";
+ version = "0.5.0";
+ src = fetchurl {
+ url="mirror://sourceforge/gphoto/gphotofs/${version}/gphotofs-0.5.tar.bz2";
+ sha256 = "1k23ncbsbh64r7kz050bg31jqamchyswgg9izhzij758d7gc8vk7";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ libgphoto2 fuse glib libtool
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Fuse FS to mount a digital camera";
+ homepage = "http://www.gphoto.org/";
+ maintainers = [ maintainers.raskin ];
+ platforms = platforms.linux;
+ license = with licenses; [ lgpl2 gpl2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
new file mode 100644
index 000000000000..1915b2dae17d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
@@ -0,0 +1,77 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, which, IOKit, qtbase, libusb-compat-0_1 }:
+
+stdenv.mkDerivation rec {
+ pname = "gpsbabel";
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "gpsbabel";
+ repo = "gpsbabel";
+ rev = "gpsbabel_${lib.replaceStrings ["."] ["_"] version}";
+ sha256 = "0q17jhmaf7z5lld2ff7h6jb3v1yz8hbwd2rmaq2dsamc53dls8iw";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://sources.debian.net/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip";
+ sha256 = "03fpsmlx1wc48d1j405zkzp8j64hcp0z72islf4mk1immql3ibcr";
+ })
+ ];
+
+ buildInputs = [ zlib qtbase which libusb-compat-0_1 ]
+ ++ lib.optionals stdenv.isDarwin [ IOKit ];
+
+ /* FIXME: Building the documentation, with "make doc", requires this:
+
+ [ libxml2 libxslt perl docbook_xml_dtd_412 docbook_xsl fop ]
+
+ But FOP isn't packaged yet. */
+
+ configureFlags = [ "--with-zlib=system" ]
+ # Floating point behavior on i686 causes test failures. Preventing
+ # extended precision fixes this problem.
+ ++ stdenv.lib.optionals stdenv.isi686 [
+ "CFLAGS=-ffloat-store" "CXXFLAGS=-ffloat-store"
+ ];
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+ preCheck = ''
+ patchShebangs testo
+ substituteInPlace testo \
+ --replace "-x /usr/bin/hexdump" ""
+ ''
+ # The raymarine and gtm tests fail on i686 despite -ffloat-store.
+ + lib.optionalString stdenv.isi686 "rm -v testo.d/raymarine.test testo.d/gtm.test;"
+ # The gtm, kml and tomtom asc tests fail on darwin, see PR #23572.
+ + lib.optionalString stdenv.isDarwin "rm -v testo.d/gtm.test testo.d/kml.test testo.d/tomtom_asc.test testo.d/classic-2.test"
+ # The arc-project test fails on aarch64.
+ + lib.optionalString stdenv.isAarch64 "rm -v testo.d/arc-project.test";
+
+ meta = with stdenv.lib; {
+ description = "Convert, upload and download data from GPS and Map programs";
+ longDescription = ''
+ GPSBabel converts waypoints, tracks, and routes between popular
+ GPS receivers and mapping programs. It also has powerful
+ manipulation tools for such data.
+
+ By flattening the Tower of Babel that the authors of various
+ programs for manipulating GPS data have imposed upon us, it
+ returns to us the ability to freely move our own waypoint data
+ between the programs and hardware we choose to use.
+
+ It contains extensive data manipulation abilities making it a
+ convenient for server-side processing or as the backend for
+ other tools.
+
+ It does not convert, transfer, send, or manipulate maps. We
+ process data that may (or may not be) placed on a map, such as
+ waypoints, tracks, and routes.
+ '';
+ homepage = "http://www.gpsbabel.org/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.rycee ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix
new file mode 100644
index 000000000000..57eca9f47a58
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix
@@ -0,0 +1,49 @@
+{ stdenv, mkDerivation, qmake, qttools, qtwebkit, qttranslations, gpsbabel }:
+
+mkDerivation {
+ pname = "gpsbabel-gui";
+
+ inherit (gpsbabel) src version;
+
+ sourceRoot = "source/gui";
+
+ nativeBuildInputs = [ qmake qttools ];
+ buildInputs = [ qtwebkit ];
+
+ postPatch = ''
+ substituteInPlace mainwindow.cc \
+ --replace "QApplication::applicationDirPath() + \"/" "\"" \
+ --replace "QApplication::applicationDirPath() + '/' + " "" \
+ --replace "translator.load(full_filename)" "translator.load(filename)" \
+ --replace "gpsbabelfe_%1.qm" "$out/share/gpsbabel/translations/gpsbabelfe_%1.qm" \
+ --replace "gpsbabel_%1.qm" "$out/share/gpsbabel/translations/gpsbabel_%1.qm" \
+ --replace "qt_%1.qm" "${qttranslations}/translations/qt_%1.qm"
+ substituteInPlace formatload.cc \
+ --replace "QApplication::applicationDirPath() + \"/" "\""
+ substituteInPlace gpsbabel.desktop \
+ --replace "gpsbabelfe-bin" "gpsbabelfe"
+ '';
+
+ preConfigure = ''
+ lrelease *.ts coretool/*.ts
+ '';
+
+ qtWrapperArgs = [
+ "--prefix PATH : ${stdenv.lib.makeBinPath [ gpsbabel ]}"
+ ];
+
+ postInstall = ''
+ install -Dm755 objects/gpsbabelfe -t $out/bin
+ install -Dm644 gpsbabel.desktop -t $out/share/applications
+ install -Dm644 images/appicon.png $out/share/icons/hicolor/512x512/apps/gpsbabel.png
+ install -Dm644 *.qm coretool/*.qm -t $out/share/gpsbabel/translations
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Qt-based GUI for gpsbabel";
+ homepage = "http://www.gpsbabel.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix
new file mode 100644
index 000000000000..42f522175b04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix
@@ -0,0 +1,65 @@
+{ fetchFromGitHub, stdenv, fetchpatch, pkgconfig, exiv2, libxml2, gtk3
+, libxslt, docbook_xsl, docbook_xml_dtd_42, desktop-file-utils, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "gpscorrelate";
+ version = "2.0";
+
+ src = fetchFromGitHub {
+ owner = "dfandrich";
+ repo = pname;
+ rev = version;
+ sha256 = "1wkpb0nqnm0ik46hp2sibf96h2gxi6n951zm8c72scgmh4ciq4fl";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ docbook_xml_dtd_42
+ docbook_xsl
+ libxslt
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ exiv2
+ gtk3
+ libxml2
+ ];
+
+ makeFlags = [
+ "prefix=${placeholder "out"}"
+ "CC=cc"
+ "CXX=c++"
+ "CFLAGS=-DENABLE_NLS"
+ ];
+
+ doCheck = true;
+
+ installTargets = [ "install" "install-po" "install-desktop-file" ];
+
+ meta = with stdenv.lib; {
+ description = "A GPS photo correlation tool, to add EXIF geotags";
+
+ longDescription = ''
+ Digital cameras are cool. So is GPS. And, EXIF tags are really
+ cool too.
+
+ What happens when you merge the three? You end up with a set of
+ photos taken with a digital camera that are "stamped" with the
+ location at which they were taken.
+
+ The EXIF standard defines a number of tags that are for use with GPS.
+
+ A variety of programs exist around the place to match GPS data
+ with digital camera photos, but most of them are Windows or
+ MacOS only. Which doesn't really suit me that much. Also, each
+ one takes the GPS data in a different format.
+ '';
+
+ license = licenses.gpl2Plus;
+ homepage = "https://dfandrich.github.io/gpscorrelate/";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ sikmir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpsprune/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
new file mode 100644
index 000000000000..828b3ca9bf0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
@@ -0,0 +1,43 @@
+{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jdk }:
+
+stdenv.mkDerivation rec {
+ pname = "gpsprune";
+ version = "20";
+
+ src = fetchurl {
+ url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
+ sha256 = "1i9p6h98azgradrrkcwx18zwz4c6zkxp4bfykpa2imi1z3ry5q2b";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jdk ];
+
+ desktopItem = makeDesktopItem {
+ name = "gpsprune";
+ exec = "gpsprune";
+ icon = "gpsprune";
+ desktopName = "GpsPrune";
+ genericName = "GPS Data Editor";
+ comment = meta.description;
+ categories = "Education;Geoscience;";
+ };
+
+ buildCommand = ''
+ mkdir -p $out/bin $out/share/java
+ cp -v $src $out/share/java/gpsprune.jar
+ makeWrapper ${jdk}/bin/java $out/bin/gpsprune \
+ --add-flags "-jar $out/share/java/gpsprune.jar"
+ mkdir -p $out/share/applications
+ cp $desktopItem/share/applications"/"* $out/share/applications
+ mkdir -p $out/share/pixmaps
+ ${unzip}/bin/unzip -p $src tim/prune/gui/images/window_icon_64.png > $out/share/pixmaps/gpsprune.png
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Application for viewing, editing and converting GPS coordinate data";
+ homepage = "https://activityworkshop.net/software/gpsprune/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.rycee ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
new file mode 100644
index 000000000000..64296688c93e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, intltool, libxml2, pkgconfig, gnome3, libchamplain, gdl, shared-mime-info, desktop-file-utils, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "gpx-viewer";
+ version = "0.4.0";
+
+ src = fetchurl {
+ url = "https://launchpad.net/gpx-viewer/trunk/${version}/+download/${pname}-${version}.tar.gz";
+ sha256 = "956acfaf870ac436300cd9953dece630df7fd7dff8e4ae2577a6002884466f80";
+ };
+
+ patches = fetchurl {
+ url = "https://code.launchpad.net/~chkr/gpx-viewer/gtk3-bugfix/+merge/260766/+preview-diff/628965/+files/preview.diff";
+ sha256 = "1yl7jk7skkcx10nny5zdixswcymjd9s9c1zhm1i5y3aqhchvmfs7";
+ };
+ patchFlags = [ "-p0" ];
+
+ configureFlags = [ "--disable-database-updates" ];
+
+ nativeBuildInputs = [
+ intltool pkgconfig
+ wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
+ ];
+ buildInputs = [ gdl libchamplain gnome3.adwaita-icon-theme libxml2 ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://blog.sarine.nl/tag/gpxviewer/";
+ description = "Simple tool to visualize tracks and waypoints stored in a gpx file";
+ platforms = with platforms; linux;
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ dotlambda ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpx/default.nix
new file mode 100644
index 000000000000..c052b1ddb059
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpx/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "gpx";
+ version = "2.6.8";
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ src = fetchFromGitHub {
+ owner = "markwal";
+ repo = "GPX";
+ rev = version;
+ sha256 = "1izs8s5npkbfrsyk17429hyl1vyrbj9dp6vmdlbb2vh6mfgl54h8";
+ };
+
+ meta = {
+ description = "Gcode to x3g conversion postprocessor";
+ homepage = "https://github.com/markwal/GPX/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.leo60228 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpxlab/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
new file mode 100644
index 000000000000..3b432ff66b12
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, mkDerivation, lib, fetchFromGitHub, qmake, qttools, qttranslations }:
+
+mkDerivation rec {
+ pname = "gpxlab";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "BourgeoisLab";
+ repo = "GPXLab";
+ rev = "v${version}";
+ sha256 = "080vnwcciqblfrbfyz9gjhl2lqw1hkdpbgr5qfrlyglkd4ynjd84";
+ };
+
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [ qttools qttranslations ];
+
+ preConfigure = ''
+ lrelease GPXLab/locale/*.ts
+ '';
+
+ postInstall = lib.optionalString stdenv.isDarwin ''
+ mkdir -p $out/Applications
+ mv GPXLab/GPXLab.app $out/Applications
+ wrapQtApp $out/Applications/GPXLab.app/Contents/MacOS/GPXLab
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ homepage = "https://github.com/BourgeoisLab/GPXLab";
+ description = "Program to show and manipulate GPS tracks";
+ longDescription = ''
+ GPXLab is an application to display and manage GPS tracks
+ previously recorded with a GPS tracker.
+ '';
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpxsee/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
new file mode 100644
index 000000000000..a081076ac83f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, qttools, qttranslations, substituteAll }:
+
+mkDerivation rec {
+ pname = "gpxsee";
+ version = "7.37";
+
+ src = fetchFromGitHub {
+ owner = "tumic0";
+ repo = "GPXSee";
+ rev = version;
+ sha256 = "0fpb43smh0kwic5pdxs46c0hkqj8g084h72pa024x1my6w12y9b8";
+ };
+
+ patches = (substituteAll {
+ # See https://github.com/NixOS/nixpkgs/issues/86054
+ src = ./fix-qttranslations-path.diff;
+ inherit qttranslations;
+ });
+
+ nativeBuildInputs = [ qmake qttools ];
+
+ preConfigure = ''
+ lrelease gpxsee.pro
+ '';
+
+ postInstall = with stdenv; lib.optionalString isDarwin ''
+ mkdir -p $out/Applications
+ mv GPXSee.app $out/Applications
+ wrapQtApp $out/Applications/GPXSee.app/Contents/MacOS/GPXSee
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GPS log file viewer and analyzer";
+ longDescription = ''
+ GPXSee is a Qt-based GPS log file viewer and analyzer that supports
+ all common GPS log file formats.
+ '';
+ homepage = "https://www.gpxsee.org/";
+ changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ womfoo sikmir ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff
new file mode 100644
index 000000000000..3b546338d209
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff
@@ -0,0 +1,18 @@
+diff --git i/src/GUI/app.cpp w/src/GUI/app.cpp
+index 10e84d5..1e0abbe 100644
+--- i/src/GUI/app.cpp
++++ w/src/GUI/app.cpp
+@@ -34,11 +34,10 @@ App::App(int &argc, char **argv) : QApplication(argc, argv)
+ installTranslator(gpxsee);
+
+ QTranslator *qt = new QTranslator(this);
+-#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
++#if defined(Q_OS_WIN32)
+ qt->load(QLocale::system(), "qt", "_", ProgramPaths::translationsDir());
+ #else // Q_OS_WIN32 || Q_OS_MAC
+- qt->load(QLocale::system(), "qt", "_", QLibraryInfo::location(
+- QLibraryInfo::TranslationsPath));
++ qt->load(QLocale::system(), "qt", "_", QLatin1String("@qttranslations@/translations"));
+ #endif // Q_OS_WIN32 || Q_OS_MAC
+ installTranslator(qt);
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gramps/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gramps/default.nix
new file mode 100644
index 000000000000..1ef00efaf7b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gramps/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchFromGitHub, gtk3, pythonPackages, intltool, gexiv2,
+ pango, gobject-introspection, wrapGAppsHook, gettext,
+# Optional packages:
+ enableOSM ? true, osm-gps-map,
+ enableGraphviz ? true, graphviz,
+ enableGhostscript ? true, ghostscript
+ }:
+
+let
+ inherit (pythonPackages) python buildPythonApplication;
+in buildPythonApplication rec {
+ version = "5.1.3";
+ pname = "gramps";
+
+ nativeBuildInputs = [ wrapGAppsHook gettext ];
+ buildInputs = [ intltool gtk3 gobject-introspection pango gexiv2 ]
+ # Map support
+ ++ stdenv.lib.optional enableOSM osm-gps-map
+ # Graphviz support
+ ++ stdenv.lib.optional enableGraphviz graphviz
+ # Ghostscript support
+ ++ stdenv.lib.optional enableGhostscript ghostscript
+ ;
+
+ src = fetchFromGitHub {
+ owner = "gramps-project";
+ repo = "gramps";
+ rev = "v${version}";
+ sha256 = "109dwkswz2h2328xkqk2zj736d117s9pp7rz5cc1qg2vxn1lpm93";
+ };
+
+ pythonPath = with pythonPackages; [ bsddb3 PyICU pygobject3 pycairo ];
+
+ # Same installPhase as in buildPythonApplication but without --old-and-unmanageble
+ # install flag.
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p "$out/lib/${python.libPrefix}/site-packages"
+
+ export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+
+ ${python}/bin/${python.executable} setup.py install \
+ --install-lib=$out/lib/${python.libPrefix}/site-packages \
+ --prefix="$out"
+
+ eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
+ if [ -e "$eapth" ]; then
+ # move colliding easy_install.pth to specifically named one
+ mv "$eapth" $(dirname "$eapth")/${pname}-${version}.pth
+ fi
+
+ rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Genealogy software";
+ homepage = "https://gramps-project.org";
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix
new file mode 100644
index 000000000000..4e888f4faac8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, poppler, pkgconfig, gdk-pixbuf, SDL, gtk2 }:
+
+stdenv.mkDerivation {
+ pname = "green-pdfviewer";
+ version = "nightly-2014-04-22";
+
+ src = fetchFromGitHub {
+ owner = "schandinat";
+ repo = "green";
+ rev = "0b516aec17915d9742d8e505d2ed383a3bdcea61";
+ sha256 = "0d0lv33flhgsxhc77kfp2avdz5gvml04r8l1j95yjz2rr096lzlj";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ poppler gdk-pixbuf SDL gtk2 ];
+
+ patches = [
+ ./gdk-libs.patch
+ ];
+
+ buildPhase = ''
+ make PREFIX=$out
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man1
+ make install PREFIX=$out MANDIR=$out/share
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/schandinat/green/";
+ description = "Viewer for PDF files, uses SDL and libpoppler";
+
+ platforms = platforms.unix;
+ license = licenses.gpl3;
+ maintainers = [ maintainers.vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch
new file mode 100644
index 000000000000..cfcab32aac99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch
@@ -0,0 +1,55 @@
+Common subdirectories: green.old/debian and green.new/debian
+diff -u green.old/green.h green.new/green.h
+--- green.old/green.h 2016-06-12 18:11:56.779434416 -0700
++++ green.new/green.h 2016-06-12 18:14:38.830557379 -0700
+@@ -19,7 +19,14 @@
+
+
+ #include <stdbool.h>
+-#include "glib/poppler.h"
++#include "poppler.h"
++#include "gdk-pixbuf/gdk-pixbuf.h"
++#include "gdk-pixbuf/gdk-pixbuf-core.h"
++#include "gdk-pixbuf/gdk-pixbuf-features.h"
++#include "gdk-pixbuf/gdk-pixbuf-enum-types.h"
++
++ #define GREEN_FULLSCREEN 0x0001
++
+
+
+ #define GREEN_FULLSCREEN 0x0001
+diff -u green.old/Makefile green.new/Makefile
+--- green.old/Makefile 2016-06-12 18:11:56.779434416 -0700
++++ green.new/Makefile 2016-06-12 18:13:09.591974048 -0700
+@@ -17,6 +17,12 @@
+ SDL_CFLAGS := $$(sdl-config --cflags)
+ SDL_LIBS := $$(sdl-config --libs)
+
++GDKPIXBUF_CFLAGS := $$(pkg-config gdk-pixbuf-2.0 --cflags)
++GDKPIXBUF_LIBS := $$(pkg-config gdk-pixbuf-2.0 --libs)
++
++GTK_CFLAGS := $$(pkg-config gtk+-2.0 --cflags)
++GTK_LIBS := $$(pkg-config gtk+-2.0 --libs)
++
+
+ all: green
+
+@@ -28,13 +34,14 @@
+ $(INSTALL) green.1 $(MANDIR)/man1/
+
+ green: main.o green.o sdl.o
+- $(CC) $^ $(POPPLER_LIBS) $(SDL_LIBS) -o $@
++ $(CC) $^ $(POPPLER_LIBS) $(SDL_LIBS) $(GDKPIXBUF_LIBS) $(GTK_LIBS) -o $@
+
+ main.o: main.c green.h
+- $(CC) $(CONFIG) $(CFLAGS) -c $< $(POPPLER_CFLAGS) -o $@
++ $(CC) $(CONFIG) $(CFLAGS) $(GDKPIXBUF_CFLAGS) -c $< $(POPPLER_CFLAGS) -o $@
+
+ green.o: green.c green.h
+- $(CC) $(CFLAGS) -c $< $(POPPLER_CFLAGS) -o $@
++ $(CC) $(CFLAGS) -c $< $(POPPLER_CFLAGS) $(GDKPIXBUF_CFLAGS) -o $@
+
+ sdl.o: sdl.c green.h
+- $(CC) $(CFLAGS) -c $< $(POPPLER_CFLAGS) $(SDL_CFLAGS) -o $@
++ $(CC) $(CFLAGS) -c $< $(POPPLER_CFLAGS) $(SDL_CFLAGS) $(GDKPIXBUF_CFLAGS) $(GTK_CFLAGS) -o $@
++
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
new file mode 100644
index 000000000000..74485e2004aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
@@ -0,0 +1,29 @@
+{ fetchzip, stdenv, makeWrapper, openjdk }:
+
+stdenv.mkDerivation rec {
+ pname = "gremlin-console";
+ version = "3.4.8";
+ src = fetchzip {
+ url = "http://www-eu.apache.org/dist/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
+ sha256 = "13ycr6ppyrz9rq7dasabjdk8lcsxdj3krb4j7d2jmbh2hij1rdvf";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/opt
+ cp -r ext lib $out/opt/
+ install -D bin/gremlin.sh $out/opt/bin/gremlin-console
+ makeWrapper $out/opt/bin/gremlin-console $out/bin/gremlin-console \
+ --prefix PATH ":" "${openjdk}/bin/" \
+ --set CLASSPATH "$out/opt/lib/"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://tinkerpop.apache.org/";
+ description = "Console of the Apache TinkerPop graph computing framework";
+ license = licenses.asl20;
+ maintainers = [ maintainers.lewo ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/grip/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/grip/default.nix
new file mode 100644
index 000000000000..02544812eb12
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/grip/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, gtk2, glib, pkgconfig, libgnome, libgnomeui, vte
+, curl, cdparanoia, libid3tag, ncurses, libtool }:
+
+stdenv.mkDerivation rec {
+ name = "grip-4.2.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/grip/${name}.tar.gz";
+ sha256 = "1si5kidwg0i2jg0brzyvjrzw24v3km2hdgd4kda1adzq81a3p1cs";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 glib libgnome libgnomeui vte curl cdparanoia
+ libid3tag ncurses libtool ];
+
+ hardeningDisable = [ "format" ];
+
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
+
+ meta = {
+ description = "GTK-based audio CD player/ripper";
+ homepage = "http://nostatic.org/grip";
+ license = stdenv.lib.licenses.gpl2;
+
+ maintainers = with stdenv.lib.maintainers; [ marcweber peti ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/grsync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/grsync/default.nix
new file mode 100644
index 000000000000..e1c9902c6ae7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/grsync/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, dee, gtk2, intltool, libdbusmenu-gtk2, libunity, pkg-config, rsync }:
+
+stdenv.mkDerivation rec {
+ version = "1.2.8";
+ pname = "grsync";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/grsync/grsync-${version}.tar.gz";
+ sha256 = "1c86jch73cy7ig9k4shvcd3jnaxk7jppfcr8nmkz8gbylsn5zsll";
+ };
+
+ nativeBuildInputs = [
+ intltool
+ pkg-config
+ ];
+
+ buildInputs = [
+ dee
+ gtk2
+ libdbusmenu-gtk2
+ libunity
+ rsync
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Synchronize folders, files and make backups";
+ homepage = "http://www.opbyte.it/grsync/";
+ license = licenses.gpl1;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.kuznero ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gsctl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gsctl/default.nix
new file mode 100644
index 000000000000..e80f43f5bd9b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gsctl/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gsctl";
+ version = "0.15.4";
+
+ goPackagePath = "github.com/giantswarm/gsctl";
+
+ src = fetchFromGitHub {
+ owner = "giantswarm";
+ repo = pname;
+ rev = version;
+ sha256 = "0s5bli08wfd9xszx3kc90k51vlgjc00r0qg4mikb6qdc4pxpgsxj";
+ };
+
+ meta = with stdenv.lib; {
+ description = "The Giant Swarm command line interface";
+ homepage = "https://github.com/giantswarm/gsctl";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ joesalisbury ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix
new file mode 100644
index 000000000000..158a7fc8fc62
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, automake, autoconf, pkgconfig, gtk3 }:
+
+stdenv.mkDerivation rec {
+ pname = "gsimplecal";
+ version = "2.1";
+
+ src = fetchurl {
+ url = "https://github.com/dmedvinsky/gsimplecal/archive/v${version}.tar.gz";
+ sha256 = "1sa05ifjp41xipfspk5n6l3wzpzmp3i45q88l01p4l6k6drsq336";
+ };
+
+ postPatch = ''
+ sed -ie '/sys\/sysctl.h/d' src/Unique.cpp
+ '';
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ automake autoconf gtk3 ];
+
+ preConfigure = "./autogen.sh";
+
+ meta = {
+ homepage = "http://dmedvinsky.github.io/gsimplecal/";
+ description = "Lightweight calendar application written in C++ using GTK";
+ longDescription = ''
+ gsimplecal was intentionally made for use with tint2 panel in the
+ openbox environment to be launched upon clock click, but of course it
+ will work without it. In fact, binding the gsimplecal to some hotkey in
+ you window manager will probably make you happy. The thing is that when
+ it is started it first shows up, when you run it again it closes the
+ running instance. In that way it is very easy to integrate anywhere. No
+ need to write some wrapper scripts or whatever.
+
+ Also, you can configure it to not only show the calendar, but also
+ display multiple clocks for different world time zones.
+ '';
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix
new file mode 100644
index 000000000000..21ad7d757a19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, pkgconfig, gtk2 }:
+
+stdenv.mkDerivation rec {
+ version = "0.1";
+ pname = "gtk2fontsel";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gtk2fontsel/${pname}-${version}.tar.gz";
+ sha256 = "0s2sj19n8ys92q9832hkn36ld91bb4qavicc6nygkry6qdpkkmjw";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ stdenv gtk2 ];
+
+ preferLocalBuild = true;
+
+ meta = with stdenv.lib; {
+ description = "A font selection program for X11 using the GTK 2 toolkit";
+ longDescription = ''
+ Font selection tool similar to xfontsel implemented using GTK 2.
+ Trivial, but useful nonetheless.
+ '';
+ homepage = "http://gtk2fontsel.sourceforge.net/";
+ downloadPage = "https://sourceforge.net/projects/gtk2fontsel/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.prikhi ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gummi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gummi/default.nix
new file mode 100644
index 000000000000..af121758c3cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gummi/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, pkgs
+, glib, gnome3, gtk3, gtksourceview3, gtkspell3, poppler, texlive
+, pkgconfig, intltool, autoreconfHook, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.8.1";
+ pname = "gummi";
+
+ src = pkgs.fetchFromGitHub {
+ owner = "alexandervdm";
+ repo = "gummi";
+ rev = version;
+ sha256 = "0wxgmzazqiq77cw42i5fn2hc22hhxf5gbpl9g8y3zlnp21lw9y16";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig intltool autoreconfHook wrapGAppsHook
+ ];
+ buildInputs = [
+ glib gtksourceview3 gtk3 gtkspell3 poppler
+ texlive.bin.core # needed for synctex
+ ];
+
+ postInstall = ''
+ install -Dpm644 COPYING $out/share/licenses/$name/COPYING
+ '';
+
+ meta = {
+ homepage = "https://gummi.app";
+ description = "Simple LaTex editor for GTK users";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ flokli ];
+ platforms = with stdenv.lib.platforms; linux;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gv/default.nix
new file mode 100644
index 000000000000..accf62c0c469
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gv/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, Xaw3d, ghostscriptX, perl, pkgconfig, libiconv }:
+
+let
+ name = "gv-3.7.4";
+in
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "mirror://gnu/gv/${name}.tar.gz";
+ sha256 = "0q8s43z14vxm41pfa8s5h9kyyzk1fkwjhkiwbf2x70alm6rv6qi1";
+ };
+
+ configureFlags = stdenv.lib.optionals stdenv.isDarwin [
+ "--enable-SIGCHLD-fallback"
+ ];
+
+ buildInputs = [
+ Xaw3d
+ ghostscriptX
+ perl
+ pkgconfig
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ libiconv
+ ];
+
+ patchPhase = ''
+ sed 's|\<gs\>|${ghostscriptX}/bin/gs|g' -i "src/"*.in
+ sed 's|"gs"|"${ghostscriptX}/bin/gs"|g' -i "src/"*.c
+ '';
+
+ doCheck = true;
+
+ meta = {
+ homepage = "https://www.gnu.org/software/gv/";
+ description = "PostScript/PDF document viewer";
+
+ longDescription = ''
+ GNU gv allows users to view and navigate through PostScript and
+ PDF documents on an X display by providing a graphical user
+ interface for the Ghostscript interpreter.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gxmessage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gxmessage/default.nix
new file mode 100644
index 000000000000..ce0a6963ea99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gxmessage/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, gtk3, intltool, pkgconfig, texinfo }:
+
+stdenv.mkDerivation rec {
+ pname = "gxmessage";
+ version = "3.4.3";
+
+ src = fetchurl {
+ url = "http://homepages.ihug.co.nz/~trmusson/stuff/${pname}-${version}.tar.gz";
+ sha256 = "db4e1655fc58f31e5770a17dfca4e6c89028ad8b2c8e043febc87a0beedeef05";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ intltool gtk3 texinfo ];
+
+ meta = {
+ description = "A GTK enabled dropin replacement for xmessage";
+ homepage = "http://homepages.ihug.co.nz/~trmusson/programs.html#gxmessage";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [jfb];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/gxneur/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/gxneur/default.nix
new file mode 100644
index 000000000000..adabe22c6b64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/gxneur/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk2, xorg, glib, xneur, libglade, GConf, libappindicator-gtk2, pcre }:
+
+stdenv.mkDerivation {
+ name = "gxneur-0.20.0";
+
+ src = fetchurl {
+ url = "https://github.com/AndrewCrewKuznetsov/xneur-devel/raw/f66723feb272c68f7c22a8bf0dbcafa5e3a8a5ee/dists/0.20.0/gxneur_0.20.0.orig.tar.gz";
+ sha256 = "0avmhdcj0hpr55fc0iih8fjykmdhn34c8mwdnqvl8jh4nhxxchxr";
+ };
+
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
+
+ nativeBuildInputs = [ pkgconfig intltool ];
+ buildInputs = [
+ xorg.libX11 glib gtk2 xorg.libXpm xorg.libXt xorg.libXext xneur
+ libglade GConf pcre libappindicator-gtk2
+ ];
+
+ meta = with stdenv.lib; {
+ description = "GUI for XNEUR keyboard layout switcher";
+ platforms = platforms.linux;
+ license = with licenses; [ gpl2 gpl3 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hamster/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hamster/default.nix
new file mode 100644
index 000000000000..57b36e00436e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hamster/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, python3Packages, intltool, glib, itstool
+, wrapGAppsHook, gobject-introspection, pango, gdk-pixbuf, atk, wafHook }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "hamster";
+ version = "3.0.2";
+
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "projecthamster";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "09ikiwc2izjvwqbbyp8knn190x5y4anwslkmb9k2h3r3jwrg2vd2";
+ };
+
+ nativeBuildInputs = [
+ python3Packages.setuptools
+ wrapGAppsHook
+ intltool
+ itstool
+ wafHook
+ glib
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ pango
+ gdk-pixbuf
+ atk
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pygobject3
+ pycairo
+ pyxdg
+ dbus-python
+ ];
+
+ # Setup hooks have trouble with strict deps.
+ # https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ dontWrapGApps = true;
+
+ # Arguments to be passed to `makeWrapper`, only used by buildPython*
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ postFixup = ''
+ wrapPythonProgramsIn $out/libexec "$out $pythonPath"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Time tracking application";
+ homepage = "http://projecthamster.org/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ maintainers = [ maintainers.fabianhauser ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/haxor-news/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/haxor-news/default.nix
new file mode 100644
index 000000000000..41aa71cb82e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/haxor-news/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, python3, fetchpatch }:
+
+
+let
+ py = python3.override {
+ packageOverrides = self: super: {
+ self = py;
+
+ # not compatible with prompt_toolkit >=2.0
+ prompt_toolkit = super.prompt_toolkit.overridePythonAttrs (oldAttrs: rec {
+ name = "${oldAttrs.pname}-${version}";
+ version = "1.0.18";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "09h1153wgr5x2ny7ds0w2m81n3bb9j8hjb8sjfnrg506r01clkyx";
+ };
+ });
+ };
+ };
+in
+with py.pkgs;
+
+buildPythonApplication rec {
+ pname = "haxor-news";
+ version = "unstable-2020-10-20";
+
+ # haven't done a stable release in 3+ years, but actively developed
+ src = fetchFromGitHub {
+ owner = "donnemartin";
+ repo = pname;
+ rev = "811a5804c09406465b2b02eab638c08bf5c4fa7f";
+ sha256 = "1g3dfsyk4727d9jh9w6j5r51ag07851cls7v7a7hmdvdixpvbzp6";
+ };
+
+ propagatedBuildInputs = [
+ click
+ colorama
+ requests
+ pygments
+ prompt_toolkit
+ six
+ ];
+
+ # will fail without pre-seeded config files
+ doCheck = false;
+
+ checkInputs = [ mock ];
+
+ checkPhase = ''
+ ${python.interpreter} -m unittest discover -s tests -v
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/donnemartin/haxor-news";
+ description = "Browse Hacker News like a haxor";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ matthiasbeyer ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hdate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hdate/default.nix
new file mode 100644
index 000000000000..c97a67c0bd38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hdate/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ version = "1.6.02";
+ pname = "hdate";
+ src = fetchurl {
+ url = "https://sourceforge.net/projects/libhdate/files/libhdate/libhdate-${version}/libhdate-${version}.tar.bz2";
+ sha256 = "3c930a8deb57c01896dc37f0d7804e5a330ee8e88c4ff610b71f9d2b02c17762";
+ };
+ meta = {
+ description = "Hebrew calendar and solar astronomical times library and utilities";
+ homepage = "https://sourceforge.net/projects/libhdate/";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ CharlesHD ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/heimer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/heimer/default.nix
new file mode 100644
index 000000000000..444ee7ab5232
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/heimer/default.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, qttools, qtbase }:
+
+mkDerivation rec {
+ pname = "heimer";
+ version = "1.21.0";
+
+ src = fetchFromGitHub {
+ owner = "juzzlin";
+ repo = pname;
+ rev = version;
+ sha256 = "03q3jn0j0cydw2mxfv7236lv4w9fh9slha0mphj33mk2f97b9hl6";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ qttools qtbase ];
+
+ meta = with lib; {
+ description = "Simple cross-platform mind map and note-taking tool written in Qt";
+ homepage = "https://github.com/juzzlin/Heimer";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ dtzWill ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix
new file mode 100644
index 000000000000..a5a9187ab0f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, runtimeShell }:
+
+stdenv.mkDerivation {
+ pname = "example-unfree-package";
+ version = "1.0";
+
+ phases = [ "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cat > $out/bin/hello-unfree << EOF
+ #!${runtimeShell}
+ echo "Hello, you are running an unfree system!"
+ EOF
+ chmod +x $out/bin/hello-unfree
+ '';
+
+ meta = {
+ description = "An example package with unfree license (for testing)";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = [ stdenv.lib.maintainers.oxij ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hello/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hello/default.nix
new file mode 100644
index 000000000000..32c8c696730f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hello/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "hello";
+ version = "2.10";
+
+ src = fetchurl {
+ url = "mirror://gnu/hello/${pname}-${version}.tar.gz";
+ sha256 = "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i";
+ };
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "A program that produces a familiar, friendly greeting";
+ longDescription = ''
+ GNU Hello is a program that prints "Hello, world!" when you run it.
+ It is fully customizable.
+ '';
+ homepage = "https://www.gnu.org/software/hello/manual/";
+ changelog = "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${version}";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.eelco ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hivemind/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hivemind/default.nix
new file mode 100644
index 000000000000..8a8f80f57977
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hivemind/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, runtimeShell }:
+
+buildGoPackage rec {
+ pname = "hivemind";
+ version = "1.0.6";
+ goPackagePath = "github.com/DarthSim/hivemind";
+
+ postPatch = ''
+ substituteInPlace process.go --replace \"/bin/sh\" \"${runtimeShell}\"
+ '';
+
+ src = fetchFromGitHub {
+ owner = "DarthSim";
+ repo = "hivemind";
+ rev = "v${version}";
+ sha256 = "0afcnd03wsdphbbpha65rv5pnv0x6ldnnm6rnv1m6xkkywgnzx95";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/DarthSim/";
+ description = "Process manager for Procfile-based applications";
+ license = with licenses; [ mit ];
+ maintainers = [ maintainers.sveitser ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/houdini/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/houdini/default.nix
new file mode 100644
index 000000000000..ce35e91d9278
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/houdini/default.nix
@@ -0,0 +1,14 @@
+{ callPackage, buildFHSUserEnv, undaemonize }:
+
+let
+ houdini-runtime = callPackage ./runtime.nix { };
+in buildFHSUserEnv {
+ name = "houdini-${houdini-runtime.version}";
+
+ extraBuildCommands = ''
+ mkdir -p $out/usr/lib/sesi
+ '';
+
+ runScript = "${undaemonize}/bin/undaemonize ${houdini-runtime}/bin/houdini";
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/houdini/runtime.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/houdini/runtime.nix
new file mode 100644
index 000000000000..51b08af23c5c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/houdini/runtime.nix
@@ -0,0 +1,87 @@
+{ stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, libGL, alsaLib, dbus, xkeyboardconfig, bc, addOpenGLRunpath }:
+
+let
+ ld_library_path = builtins.concatStringsSep ":" [
+ "${stdenv.cc.cc.lib}/lib64"
+ (stdenv.lib.makeLibraryPath [
+ libGLU
+ libGL
+ xorg.libXmu
+ xorg.libXi
+ xorg.libXext
+ xorg.libX11
+ xorg.libXrender
+ xorg.libXcursor
+ xorg.libXfixes
+ xorg.libXrender
+ xorg.libXcomposite
+ xorg.libXdamage
+ xorg.libXtst
+ alsaLib
+ fontconfig
+ libSM
+ libICE
+ zlib
+ libpng
+ dbus
+ addOpenGLRunpath.driverLink
+ ])
+ ];
+ license_dir = "~/.config/houdini";
+in
+stdenv.mkDerivation rec {
+ version = "17.5.327";
+ pname = "houdini-runtime";
+ src = requireFile rec {
+ name = "houdini-${version}-linux_x86_64_gcc6.3.tar.gz";
+ sha256 = "1byigmhmby8lgi2vmgxy9jlrrqk7jyr507zqkihq5bv8kfsanv1x";
+ message = ''
+ This nix expression requires that ${name} is already part of the store.
+ Download it from https://www.sidefx.com and add it to the nix store with:
+
+ nix-prefetch-url <URL>
+
+ This can't be done automatically because you need to create an account on
+ their website and agree to their license terms before you can download
+ it. That's what you get for using proprietary software.
+ '';
+ };
+
+ buildInputs = [ bc ];
+ installPhase = ''
+ patchShebangs houdini.install
+ mkdir -p $out
+ sed -i "s|/usr/lib/sesi|${license_dir}|g" houdini.install
+ ./houdini.install --install-houdini \
+ --no-install-menus \
+ --no-install-bin-symlink \
+ --auto-install \
+ --no-root-check \
+ --accept-EULA \
+ $out
+ echo -e "localValidatorDir = ${license_dir}\nlicensingMode = localValidator" > $out/houdini/Licensing.opt
+ sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd_safe
+ sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd.startup
+ echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/bin/app_init.sh
+ echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/bin/app_init.sh
+ echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/houdini/sbin/app_init.sh
+ echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/houdini/sbin/app_init.sh
+ '';
+ postFixup = ''
+ INTERPRETER="$(cat "$NIX_CC"/nix-support/dynamic-linker)"
+ for BIN in $(find $out/bin -type f -executable); do
+ if patchelf $BIN 2>/dev/null ; then
+ echo "Patching ELF $BIN"
+ patchelf --set-interpreter "$INTERPRETER" "$BIN"
+ fi
+ done
+ '';
+ meta = {
+ description = "3D animation application software";
+ homepage = "https://www.sidefx.com";
+ license = stdenv.lib.licenses.unfree;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.canndrew ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hovercraft/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hovercraft/default.nix
new file mode 100644
index 000000000000..5a03cfe23bac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hovercraft/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonApplication
+, isPy3k
+, fetchFromGitHub
+, manuel
+, setuptools
+, docutils
+, lxml
+, svg-path
+, pygments
+, watchdog
+}:
+
+buildPythonApplication rec {
+ pname = "hovercraft";
+ version = "2.7";
+ disabled = ! isPy3k;
+
+ src = fetchFromGitHub {
+ owner = "regebro";
+ repo = "hovercraft";
+ rev = version;
+ sha256 = "0k0gjlqjz424rymcfdjpj6a71ppblfls5f8y2hd800d1as4im8az";
+ };
+
+ checkInputs = [ manuel ];
+ propagatedBuildInputs = [ setuptools docutils lxml svg-path pygments watchdog ];
+
+ meta = with lib; {
+ description = "Makes impress.js presentations from reStructuredText";
+ homepage = "https://github.com/regebro/hovercraft";
+ license = licenses.mit;
+ maintainers = with maintainers; [ goibhniu makefu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hr/default.nix
new file mode 100644
index 000000000000..a0555f9032e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "hr";
+ version = "1.3";
+
+ src = fetchFromGitHub {
+ owner = "LuRsT";
+ repo = "hr";
+ rev = version;
+ sha256 = "068kq37lbqfjzh28rlvkprni38ii991naawylwvq6d43y9dpzs2b";
+ };
+
+ dontBuild = true;
+ installFlags = [ "PREFIX=$(out)" "MANPREFIX=$(out)/share" ];
+
+ preInstall = ''
+ mkdir -p $out/{bin,share}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/LuRsT/hr";
+ description = "A horizontal bar for your terminal";
+ license = licenses.mit;
+ maintainers = [ maintainers.matthiasbeyer ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hstr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hstr/default.nix
new file mode 100644
index 000000000000..421d02e97b91
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hstr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, readline, ncurses
+, autoreconfHook, pkgconfig, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "hstr";
+ version = "2.3";
+
+ src = fetchFromGitHub {
+ owner = "dvorka";
+ repo = "hstr";
+ rev = version;
+ sha256 = "1chmfdi1dwg3sarzd01nqa82g65q7wdr6hrnj96l75vikwsg986y";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ readline ncurses gettext ];
+
+ configureFlags = [ "--prefix=$(out)" ];
+
+ meta = {
+ homepage = "https://github.com/dvorka/hstr";
+ description = "Shell history suggest box - easily view, navigate, search and use your command history";
+ license = stdenv.lib.licenses.asl20;
+ maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
+ platforms = with stdenv.lib.platforms; linux; # Cannot test others
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/html5validator/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/html5validator/default.nix
new file mode 100644
index 000000000000..657996d1da9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/html5validator/default.nix
@@ -0,0 +1,25 @@
+{ buildPythonApplication, fetchFromGitHub, nose, openjdk, lib }:
+
+buildPythonApplication rec {
+ pname = "html5validator";
+ version = "0.3.3";
+
+ src = fetchFromGitHub {
+ owner = "svenkreiss";
+ repo = "html5validator";
+ rev = "v${version}";
+ sha256 = "130acqi0dsy3midg7hwslykzry6crr4ln6ia0f0avyywkz4bplsv";
+ };
+
+ propagatedBuildInputs = [ openjdk ];
+
+ checkInputs = [ nose ];
+ checkPhase = "PATH=$PATH:$out/bin nosetests";
+
+ meta = with lib; {
+ homepage = "https://github.com/svenkreiss/html5validator";
+ description = "Command line tool that tests files for HTML5 validity";
+ license = licenses.mit;
+ maintainers = [ maintainers.phunehehe ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/default.nix
new file mode 100644
index 000000000000..bbe05e0396bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchurl, unzip, makeWrapper, libX11, zlib, libSM, libICE
+, libXext , freetype, libXrender, fontconfig, libXft, libXinerama
+, libXfixes, libXScrnSaver, libnotify, glib , gtk3, libappindicator-gtk3
+, curl }:
+
+let
+
+ data = builtins.fromJSON (builtins.readFile ./revision.json);
+
+ inherit (data) version url sha256;
+
+ rpath = stdenv.lib.makeLibraryPath
+ [ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft
+ libXinerama stdenv.cc.cc.lib libnotify glib gtk3 libappindicator-gtk3
+ curl libXfixes libXScrnSaver ];
+
+in
+
+stdenv.mkDerivation {
+ pname = "hubstaff";
+ inherit version;
+
+ src = fetchurl { inherit sha256 url; };
+
+ nativeBuildInputs = [ unzip makeWrapper ];
+
+ unpackCmd = ''
+ # MojoSetups have a ZIP file at the end. ZIP’s magic string is
+ # most often PK\x03\x04. This has worked for all past updates,
+ # but feel free to come up with something more reasonable.
+ dataZipOffset=$(grep --max-count=1 --byte-offset --only-matching --text ''$'PK\x03\x04' $curSrc | cut -d: -f1)
+ dd bs=$dataZipOffset skip=1 if=$curSrc of=data.zip 2>/dev/null
+ unzip -q data.zip "data/*"
+ rm data.zip
+ '';
+
+ dontBuild = true;
+
+ installPhase = ''
+ # TODO: handle 32-bit arch?
+ rm -r x86
+ rm -r x86_64/lib64
+
+ opt=$out/opt/hubstaff
+ mkdir -p $out/bin $opt
+ cp -r . $opt/
+
+ for f in "$opt/x86_64/"*.bin.x86_64 ; do
+ patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) $f
+ wrapProgram $f --prefix LD_LIBRARY_PATH : ${rpath}
+ done
+
+ ln -s $opt/x86_64/HubstaffClient.bin.x86_64 $out/bin/HubstaffClient
+
+ # Why is this needed? SEGV otherwise.
+ ln -s $opt/data/resources $opt/x86_64/resources
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Time tracking software";
+ homepage = "https://hubstaff.com/";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ michalrus srghma ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/revision.json b/infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/revision.json
new file mode 100644
index 000000000000..2fd29444dade
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/revision.json
@@ -0,0 +1,5 @@
+{
+ "url": "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.5.2-bead991b/Hubstaff-1.5.2-bead991b.sh",
+ "version": "1.5.2-bead991b",
+ "sha256": "068b0q94ydldyjmzbka1j94vr1xdxvkxq79pp7ria81hvpp68yxf"
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/update.sh
new file mode 100755
index 000000000000..c4c1caf55db4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hubstaff/update.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix-prefetch-git curl
+
+SCRIPT_DIR=$(dirname "$(readlink -f "$BASH_SOURCE")")
+
+installation_script_url=$(curl --fail --head --location --silent --output /dev/null --write-out %{url_effective} https://app.hubstaff.com/download/linux)
+
+version=$(echo "$installation_script_url" | sed -r 's/^https:\/\/hubstaff\-production\.s3\.amazonaws\.com\/downloads\/HubstaffClient\/Builds\/Release\/([^\/]+)\/Hubstaff.+$/\1/')
+
+sha256=$(nix-prefetch-url "$installation_script_url")
+
+cat <<EOT > $SCRIPT_DIR/revision.json
+{
+ "url": "$installation_script_url",
+ "version": "$version",
+ "sha256": "$sha256"
+}
+EOT
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/hugo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/hugo/default.nix
new file mode 100644
index 000000000000..3ded9f013fbc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/hugo/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "hugo";
+ version = "0.79.0";
+
+ src = fetchFromGitHub {
+ owner = "gohugoio";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0i9c12w0jlfrqb5gygfn20rn41m7qy6ab03n779wbzwfqqz85mj6";
+ };
+
+ vendorSha256 = "0jb6aqdv9yx7fxbkgd73rx6kvxagxscrin5b5bal3ig7ys1ghpsp";
+
+ doCheck = false;
+
+ runVend = true;
+
+ buildFlags = [ "-tags" "extended" ];
+
+ subPackages = [ "." ];
+
+ meta = with stdenv.lib; {
+ description = "A fast and modern static website engine";
+ homepage = "https://gohugo.io";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ schneefux Br1ght0ne Frostman ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/icesl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/icesl/default.nix
new file mode 100644
index 000000000000..b3e7e53774d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/icesl/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchzip, freeglut, libXmu, libXi, libX11, libICE, libGLU, libGL, libSM, libXext, dialog, makeWrapper }:
+let
+ lpath = stdenv.lib.makeLibraryPath [ libXmu libXi libX11 freeglut libICE libGLU libGL libSM libXext ];
+in
+stdenv.mkDerivation rec {
+ pname = "iceSL";
+ version = "2.1.10";
+
+ src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchzip {
+ url = "https://gforge.inria.fr/frs/download.php/file/37268/icesl${version}-amd64.zip";
+ sha256 = "0dv3mq6wy46xk9blzzmgbdxpsjdaxid3zadfrysxlhmgl7zb2cn2";
+ } else if stdenv.hostPlatform.system == "i686-linux" then fetchzip {
+ url = "https://gforge.inria.fr/frs/download.php/file/37267/icesl${version}-i386.zip";
+ sha256 = "0sl54fsb2gz6dy0bwdscpdq1ab6ph5b7zald3bwzgkqsvna7p1jr";
+ } else throw "Unsupported architecture";
+
+ buildInputs = [ makeWrapper ];
+ installPhase = ''
+ cp -r ./ $out
+ mkdir $out/oldbin
+ mv $out/bin/IceSL-slicer $out/oldbin/IceSL-slicer
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${lpath}" \
+ $out/oldbin/IceSL-slicer
+ makeWrapper $out/oldbin/IceSL-slicer $out/bin/icesl --prefix PATH : ${dialog}/bin
+ '';
+
+ meta = with lib; {
+ description = "GPU-accelerated procedural modeler and slicer for 3D printing";
+ homepage = "http://shapeforge.loria.fr/icesl/index.html";
+ license = licenses.inria-icesl;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ maintainers = with maintainers; [ mgttlinger ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ideamaker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ideamaker/default.nix
new file mode 100644
index 000000000000..7b2eeec292bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ideamaker/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, autoPatchelfHook
+, curl
+, dpkg
+, fetchurl
+, gcc
+, lib
+, libGLU
+, libcork
+, makeDesktopItem
+, qt5
+, quazip_qt4
+, zlib
+}:
+stdenv.mkDerivation rec {
+ pname = "ideamaker";
+ version = "4.0.1";
+
+ src = fetchurl {
+ # N.B. Unfortunately ideamaker adds a number after the patch number in
+ # their release scheme which is not referenced anywhere other than in
+ # the download URL. Because of this, I have chosen to not use ${version}
+ # and just handwrite the correct values in the following URL, hopefully
+ # avoiding surprises for the next person that comes to update this
+ # package.
+ url = "https://download.raise3d.com/ideamaker/release/4.0.1/ideaMaker_4.0.1.4802-ubuntu_amd64.deb";
+ sha256 = "0a1jcakdglcr4kz0kyq692dbjk6aq2yqcp3i6gzni91k791h49hp";
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook dpkg qt5.wrapQtAppsHook ];
+ buildInputs = [
+ curl
+ gcc.cc.lib
+ libGLU
+ libcork
+ qt5.qtbase
+ qt5.qtserialport
+ quazip_qt4
+ zlib
+ ];
+
+ unpackPhase = ''
+ runHook preUnpack
+ dpkg-deb -x $src .
+ runHook postUnpack
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/{bin,share/pixmaps}
+
+ cp usr/lib/x86_64-linux-gnu/ideamaker/ideamaker $out/bin
+ ln -s "${desktopItem}/share/applications" $out/share/
+ cp usr/share/ideamaker/icons/ideamaker-icon.png $out/share/pixmaps/${pname}.png
+
+ runHook postInstall
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = pname;
+ icon = pname;
+ desktopName = "Ideamaker";
+ genericName = meta.description;
+ categories = "Utility;Viewer;Engineering;";
+ mimeType = "application/sla";
+ };
+
+ meta = with lib; {
+ homepage = "https://www.raise3d.com/ideamaker/";
+ description = "Raise3D's 3D slicer software";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ lovesegfault ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix
new file mode 100644
index 000000000000..c97ea3d4b772
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, fetchurl, perlPackages, gettext, makeWrapper, PerlMagick, which, highlight
+, gitSupport ? false, git ? null
+, docutilsSupport ? false, python ? null, docutils ? null
+, monotoneSupport ? false, monotone ? null
+, bazaarSupport ? false, breezy ? null
+, cvsSupport ? false, cvs ? null, cvsps ? null
+, subversionSupport ? false, subversion ? null
+, mercurialSupport ? false, mercurial ? null
+, extraUtils ? []
+}:
+
+assert docutilsSupport -> (python != null && docutils != null);
+assert gitSupport -> (git != null);
+assert monotoneSupport -> (monotone != null);
+assert bazaarSupport -> (breezy != null);
+assert cvsSupport -> (cvs != null && cvsps != null && perlPackages.Filechdir != null);
+assert subversionSupport -> (subversion != null);
+assert mercurialSupport -> (mercurial != null);
+
+let
+ name = "ikiwiki";
+ version = "3.20200202.3";
+
+ lib = stdenv.lib;
+in
+stdenv.mkDerivation {
+ name = "${name}-${version}";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/i/ikiwiki/${name}_${version}.orig.tar.xz";
+ sha256 = "0skrc8r4wh4mjfgw1c94awr5sacfb9nfsbm4frikanc9xsy16ksr";
+ };
+
+ buildInputs = [ which highlight ]
+ ++ (with perlPackages; [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
+ TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext
+ RpcXML XMLSimple PerlMagick YAML YAMLLibYAML HTMLTree AuthenPassphrase
+ NetOpenIDConsumer LWPxParanoidAgent CryptSSLeay ])
+ ++ lib.optionals docutilsSupport [python docutils]
+ ++ lib.optionals gitSupport [git]
+ ++ lib.optionals monotoneSupport [monotone]
+ ++ lib.optionals bazaarSupport [breezy]
+ ++ lib.optionals cvsSupport [cvs cvsps perlPackages.Filechdir]
+ ++ lib.optionals subversionSupport [subversion]
+ ++ lib.optionals mercurialSupport [mercurial];
+
+ # A few markdown tests fail, but this is expected when using Text::Markdown
+ # instead of Text::Markdown::Discount.
+ patches = [ ./remove-markdown-tests.patch ];
+
+ postPatch = ''
+ sed -i s@/usr/bin/perl@${perlPackages.perl}/bin/perl@ pm_filter mdwn2man
+ sed -i s@/etc/ikiwiki@$out/etc@ Makefile.PL
+ sed -i /ENV{PATH}/d ikiwiki.in
+ # State the gcc dependency, and make the cgi use our wrapper
+ sed -i -e 's@$0@"'$out/bin/ikiwiki'"@' \
+ -e "s@'cc'@'${stdenv.cc}/bin/gcc'@" IkiWiki/Wrapper.pm
+ '';
+
+ configurePhase = "perl Makefile.PL PREFIX=$out";
+
+ postInstall = ''
+ for a in "$out/bin/"*; do
+ wrapProgram $a --suffix PERL5LIB : $PERL5LIB --prefix PATH : ${perlPackages.perl}/bin:$out/bin \
+ ${lib.optionalString gitSupport ''--prefix PATH : ${git}/bin ''} \
+ ${lib.optionalString monotoneSupport ''--prefix PATH : ${monotone}/bin ''} \
+ ${lib.optionalString bazaarSupport ''--prefix PATH : ${breezy}/bin ''} \
+ ${lib.optionalString cvsSupport ''--prefix PATH : ${cvs}/bin ''} \
+ ${lib.optionalString cvsSupport ''--prefix PATH : ${cvsps}/bin ''} \
+ ${lib.optionalString subversionSupport ''--prefix PATH : ${subversion.out}/bin ''} \
+ ${lib.optionalString mercurialSupport ''--prefix PATH : ${mercurial}/bin ''} \
+ ${lib.optionalString docutilsSupport ''--prefix PYTHONPATH : "$(toPythonPath ${docutils})" ''} \
+ ${lib.concatMapStrings (x: "--prefix PATH : ${x}/bin ") extraUtils}
+ done
+ '';
+
+ preCheck = ''
+ # Git needs some help figuring this out during test suite run.
+ export EMAIL="nobody@example.org"
+ '';
+
+ checkTarget = "test";
+ doCheck = true;
+
+ meta = {
+ description = "Wiki compiler, storing pages and history in a RCS";
+ homepage = "http://ikiwiki.info/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.peti ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch
new file mode 100644
index 000000000000..bae63a10bf67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch
@@ -0,0 +1,35 @@
+diff --git a/t/mdwn.t b/t/mdwn.t
+index 966aad2..2756173 100755
+--- a/t/mdwn.t
++++ b/t/mdwn.t
+@@ -22,30 +22,13 @@ foreach my $multimarkdown (qw(1 0)) {
+ "<p>C. S. Lewis wrote books</p>\n",
+ "alphalist off by default for multimarkdown = $multimarkdown");
+
+- like(IkiWiki::htmlize("foo", "foo", "mdwn",
+- "This works[^1]\n\n[^1]: Sometimes it doesn't.\n"),
+- qr{<p>This works.*fnref:1.*},
+- "footnotes on by default for multimarkdown = $multimarkdown");
+-
+ $config{mdwn_footnotes} = 0;
+ unlike(IkiWiki::htmlize("foo", "foo", "mdwn",
+ "An unusual link label: [^1]\n\n[^1]: http://example.com/\n"),
+ qr{<p>An unusual link label: .*fnref:1.*},
+ "footnotes can be disabled for multimarkdown = $multimarkdown");
+-
+- $config{mdwn_footnotes} = 1;
+- like(IkiWiki::htmlize("foo", "foo", "mdwn",
+- "This works[^1]\n\n[^1]: Sometimes it doesn't.\n"),
+- qr{<p>This works.*fnref:1.*},
+- "footnotes can be enabled for multimarkdown = $multimarkdown");
+ }
+
+-$config{mdwn_alpha_lists} = 1;
+-like(IkiWiki::htmlize("foo", "foo", "mdwn",
+- "A. One\n".
+- "B. Two\n"),
+- qr{<ol\W}, "alphalist can be enabled");
+-
+ $config{mdwn_alpha_lists} = 0;
+ like(IkiWiki::htmlize("foo", "foo", "mdwn",
+ "A. One\n".
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/imag/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/imag/default.nix
new file mode 100644
index 000000000000..f3d4e156d6cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/imag/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, llvmPackages
+, openssl
+, pkg-config
+, installShellFiles
+, Security
+, gitMinimal
+, util-linuxMinimal
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "imag";
+ version = "0.10.1";
+
+ src = fetchFromGitHub {
+ owner = "matthiasbeyer";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0f9915f083z5qqcxyavj0w6m973c8m1x7kfb89pah5agryy5mkaq";
+ };
+
+ nativeBuildInputs = [ installShellFiles pkg-config ];
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optional stdenv.isDarwin Security;
+ checkInputs = [ gitMinimal util-linuxMinimal ];
+
+ LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+ cargoSha256 = "0n8cw70qh8g4hfwfaxwwxbrrx5hm2z037z8kdhvdpqkxljl9189x";
+
+ checkPhase = ''
+ export HOME=$TMPDIR
+ git config --global user.email "nobody@example.com"
+ git config --global user.name "Nobody"
+
+ # UI tests uses executables directly, so we need to build them before
+ # launching the tests
+ cargo build
+ '' + (
+ # CLI uses the presence of a controlling TTY to check if arguments are
+ # passed in stdin, or in the command-line, so we use script to create
+ # a PTY for us.
+ if !stdenv.isDarwin then ''
+ script -qfec "cargo test --workspace"
+ '' else ''
+ script -q "cargo test --workspace"
+ ''
+ );
+
+ postInstall = ''
+ installShellCompletion target/imag.{bash,fish} --zsh target/_imag
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Commandline personal information management suite";
+ homepage = "https://imag-pim.org/";
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ Br1ght0ne minijackson ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/inkcut/avoid-name-clash-between-inkcut-and-extension.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/inkcut/avoid-name-clash-between-inkcut-and-extension.patch
new file mode 100644
index 000000000000..34e4e6f0e7fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/inkcut/avoid-name-clash-between-inkcut-and-extension.patch
@@ -0,0 +1,85 @@
+From ddc1f9e63e7a769c71131b56f6a2a011c649635c Mon Sep 17 00:00:00 2001
+From: Arnout Engelen <arnout@bzzt.net>
+Date: Tue, 24 Nov 2020 15:34:40 +0100
+Subject: [PATCH] Avoid name clash between inkscape plugin and inkcut itself
+
+Ohterwise, with an unfortunate PYTONPATH, inkcut would no longer
+start since it'd try to invoke the inkcut.py from the extension
+instead of the main application
+---
+ plugins/inkscape/{inkcut.py => inkcut4inkscape.py} | 2 +-
+ plugins/inkscape/inkcut_cut.inx | 2 +-
+ plugins/inkscape/inkcut_cut.py | 2 +-
+ plugins/inkscape/inkcut_open.inx | 2 +-
+ plugins/inkscape/inkcut_open.py | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+ rename plugins/inkscape/{inkcut.py => inkcut4inkscape.py} (98%)
+
+diff --git a/plugins/inkscape/inkcut.py b/plugins/inkscape/inkcut4inkscape.py
+similarity index 98%
+rename from plugins/inkscape/inkcut.py
+rename to plugins/inkscape/inkcut4inkscape.py
+index 5b90475..7dc8d86 100644
+--- a/plugins/inkscape/inkcut.py
++++ b/plugins/inkscape/inkcut4inkscape.py
+@@ -2,7 +2,7 @@
+ # -*- coding: utf-8 -*-
+ """
+ Inkcut, Plot HPGL directly from Inkscape.
+- inkcut.py
++ inkcut4inkscape.py
+
+ Copyright 2018 The Inkcut Team
+
+diff --git a/plugins/inkscape/inkcut_cut.inx b/plugins/inkscape/inkcut_cut.inx
+index 4b44ae5..3db8721 100644
+--- a/plugins/inkscape/inkcut_cut.inx
++++ b/plugins/inkscape/inkcut_cut.inx
+@@ -2,7 +2,7 @@
+ <_name>Cut selection...</_name>
+ <id>org.ekips.filter.inkcut.cut</id>
+ <dependency type="executable" location="extensions">inkcut_cut.py</dependency>
+- <dependency type="executable" location="extensions">inkcut.py</dependency>
++ <dependency type="executable" location="extensions">inkcut4inkscape.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <effect>
+ <object-type>all</object-type>
+diff --git a/plugins/inkscape/inkcut_cut.py b/plugins/inkscape/inkcut_cut.py
+index acaf812..777629a 100644
+--- a/plugins/inkscape/inkcut_cut.py
++++ b/plugins/inkscape/inkcut_cut.py
+@@ -37,7 +37,7 @@
+ else:
+ inkex.localize()
+ import subprocess
+-from inkcut import contains_text, convert_objects_to_paths
++from inkcut4inkscape import contains_text, convert_objects_to_paths
+
+
+
+diff --git a/plugins/inkscape/inkcut_open.inx b/plugins/inkscape/inkcut_open.inx
+index 45ee585..2dcd38e 100644
+--- a/plugins/inkscape/inkcut_open.inx
++++ b/plugins/inkscape/inkcut_open.inx
+@@ -2,7 +2,7 @@
+ <_name>Open current document...</_name>
+ <id>org.ekips.filter.inkcut.open</id>
+ <dependency type="executable" location="extensions">inkcut_open.py</dependency>
+- <dependency type="executable" location="extensions">inkcut.py</dependency>
++ <dependency type="executable" location="extensions">inkcut4inkscape.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <effect>
+ <object-type>all</object-type>
+diff --git a/plugins/inkscape/inkcut_open.py b/plugins/inkscape/inkcut_open.py
+index b4652eb..e4c2d62 100644
+--- a/plugins/inkscape/inkcut_open.py
++++ b/plugins/inkscape/inkcut_open.py
+@@ -38,7 +38,7 @@
+ inkex.localize()
+ import subprocess
+
+-from inkcut import convert_objects_to_paths
++from inkcut4inkscape import convert_objects_to_paths
+
+ DEBUG = False
+ try:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/inkcut/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/inkcut/default.nix
new file mode 100644
index 000000000000..481069feac07
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/inkcut/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, wrapQtAppsHook
+}:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "inkcut";
+ version = "2.1.2";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1zn5i69f3kimcwdd2qkqd3hd1hq76a6i5wxxfb91ih2hj04vdbmx";
+ };
+
+ patches = [
+ # https://github.com/inkcut/inkcut/pull/292 but downloaded
+ # because of https://github.com/NixOS/nixpkgs/issues/32084
+ ./avoid-name-clash-between-inkcut-and-extension.patch
+ ];
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+
+ propagatedBuildInputs = [
+ enamlx
+ twisted
+ lxml
+ qreactor
+ jsonpickle
+ pyserial
+ pycups
+ qtconsole
+ pyqt5
+ ];
+
+ # QtApplication.instance() does not work during tests?
+ doCheck = false;
+
+ pythonImportsCheck = [
+ "inkcut"
+ "inkcut.cli"
+ "inkcut.console"
+ "inkcut.core"
+ "inkcut.device"
+ "inkcut.job"
+ "inkcut.joystick"
+ "inkcut.monitor"
+ "inkcut.preview"
+ ];
+
+ dontWrapQtApps = true;
+ makeWrapperArgs = [ "\${qtWrapperArgs[@]}" ];
+
+ postInstall = ''
+ mkdir -p $out/share/inkscape/extensions
+
+ cp plugins/inkscape/* $out/share/inkscape/extensions
+
+ sed -i "s|cmd = \['inkcut'\]|cmd = \['$out/bin/inkcut'\]|" $out/share/inkscape/extensions/inkcut_cut.py
+ sed -i "s|cmd = \['inkcut'\]|cmd = \['$out/bin/inkcut'\]|" $out/share/inkscape/extensions/inkcut_open.py
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.codelv.com/projects/inkcut/";
+ description = "Control 2D plotters, cutters, engravers, and CNC machines";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ raboof ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix
new file mode 100644
index 000000000000..f3d8d5cbc205
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+ pname = "ipmicfg";
+ version = "1.30.0";
+ buildVersion = "190710";
+
+ src = fetchzip {
+ url = "https://www.supermicro.com/wftp/utility/IPMICFG/IPMICFG_${version}_build.${buildVersion}.zip";
+ sha256 = "0srkzivxa4qlf3x9zdkri7xfq7kjj4fsmn978vzmzsvbxkqswd5a";
+ };
+
+ installPhase = ''
+ mkdir -p "$out/bin" "$out/opt/ipmicfg"
+ cp Linux/64bit/* "$out/opt/ipmicfg"
+
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}" \
+ "$out/opt/ipmicfg/IPMICFG-Linux.x86_64"
+
+ ln -s "$out/opt/ipmicfg/IPMICFG-Linux.x86_64" "$out/bin/ipmicfg"
+ '';
+
+ dontPatchShebangs = true; # There are no scripts and it complains about null bytes.
+
+ meta = with stdenv.lib; {
+ description = "Supermicro IPMI configuration tool";
+ homepage = "http://www.supermicro.com/products/nfo/ipmi.cfm";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ sorki ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ipmiview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ipmiview/default.nix
new file mode 100644
index 000000000000..851022899d9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ipmiview/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, patchelf
+, fontconfig
+, freetype
+, gcc
+, gcc-unwrapped
+, iputils
+, psmisc
+, xorg }:
+
+stdenv.mkDerivation rec {
+ pname = "IPMIView";
+ version = "2.17.0";
+ buildVersion = "200505";
+
+ src = fetchurl {
+ url = "https://www.supermicro.com/wftp/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
+ sha256 = "0ba0694krj2q77zwdn22v2qzjdy52a7ryhgc3m51s7p17ahigz97";
+ };
+
+ nativeBuildInputs = [ patchelf makeWrapper ];
+ buildPhase = with xorg;
+ let
+ stunnelBinary = if stdenv.hostPlatform.system == "x86_64-linux" then "linux/stunnel64"
+ else if stdenv.hostPlatform.system == "i686-linux" then "linux/stunnel32"
+ else throw "IPMIView is not supported on this platform";
+ in
+ ''
+ patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/libawt_xawt.so
+ patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ freetype ]}" ./jre/lib/amd64/libfontmanager.so
+ patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM64.so
+ patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM_v11_64.so
+ patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./BMCSecurity/${stunnelBinary}
+ '';
+
+ desktopItem = makeDesktopItem rec {
+ name = "IPMIView";
+ exec = "IPMIView";
+ desktopName = name;
+ genericName = "Supermicro BMC manager";
+ categories = "Network";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -R . $out/
+
+ ln -s ${desktopItem}/share $out/share
+
+ # LD_LIBRARY_PATH: fontconfig is used from java code
+ # PATH: iputils is used for ping, and psmisc is for killall
+ # WORK_DIR: unfortunately the ikvm related binaries are loaded from
+ # and user configuration is written to files in the CWD
+ makeWrapper $out/jre/bin/java $out/bin/IPMIView \
+ --set LD_LIBRARY_PATH "${stdenv.lib.makeLibraryPath [ fontconfig ]}" \
+ --prefix PATH : "$out/jre/bin:${iputils}/bin:${psmisc}/bin" \
+ --add-flags "-jar $out/IPMIView20.jar" \
+ --run 'WORK_DIR=''${XDG_DATA_HOME:-~/.local/share}/ipmiview
+ mkdir -p $WORK_DIR
+ ln -snf '$out'/iKVM.jar '$out'/iKVM_ssl.jar '$out'/libiKVM* '$out'/libSharedLibrary* $WORK_DIR
+ cd $WORK_DIR'
+ '';
+
+ meta = with stdenv.lib; {
+ license = licenses.unfree;
+ maintainers = with maintainers; [ vlaci ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix
new file mode 100644
index 000000000000..2b1b093fd354
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, dmenu }:
+
+stdenv.mkDerivation rec {
+ pname = "j4-dmenu-desktop";
+ version = "2.18";
+
+ src = fetchFromGitHub {
+ owner = "enkore";
+ repo = pname;
+ rev = "r${version}";
+ sha256 = "1gxpgifzy0hnpd0ymw3r32amzr32z3bgb90ldjzl438p6h1q0i26";
+ };
+
+ postPatch = ''
+ sed -e 's,dmenu -i,${dmenu}/bin/dmenu -i,g' -i ./src/Main.hh
+ '';
+
+ nativeBuildInputs = [ cmake ];
+
+ # tests are fetching an external git repository
+ cmakeFlags = [
+ "-DWITH_TESTS=OFF"
+ "-DWITH_GIT_CATCH=OFF"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A wrapper for dmenu that recognize .desktop files";
+ homepage = "https://github.com/enkore/j4-dmenu-desktop";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ericsagnes ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix
new file mode 100644
index 000000000000..2d7dca36d204
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, java, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ pname = "jbidwatcher";
+ version = "2.5.6";
+
+ src = fetchurl {
+ url = "http://www.jbidwatcher.com/download/JBidwatcher-${version}.jar";
+ sha256 = "1cw59wh72w1zzibs8x64dma3jc4hry64wjksqs52nc3vpnf0fzfr";
+ };
+
+ buildInputs = [ java ];
+
+ jarfile = "$out/share/java/${pname}/JBidwatcher.jar";
+
+ dontUnpack = true;
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ echo > "$out/bin/${pname}" "#!${runtimeShell}"
+ echo >>"$out/bin/${pname}" "${java}/bin/java -Xmx512m -jar ${jarfile}"
+ chmod +x "$out/bin/${pname}"
+ install -D -m644 ${src} ${jarfile}
+ '';
+
+ meta = {
+ homepage = "http://www.jbidwatcher.com/";
+ description = "Monitor and snipe Ebay auctions";
+ license = "LGPL";
+
+ longDescription = ''
+ A Java-based application allowing you to monitor auctions you're
+ not part of, submit bids, snipe (bid at the last moment), and
+ otherwise track your auction-site experience. It includes
+ adult-auction management, MANY currencies (pound, dollar (US,
+ Canada, Australian, and New Taiwanese) and euro, presently),
+ drag-and-drop of auction URLs, an original, unique and powerful
+ 'multisniping' feature, a relatively nice UI, and is known to work
+ cleanly under Linux, Windows, Solaris, and MacOSX from the same
+ binary.
+ '';
+
+ platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile
new file mode 100644
index 000000000000..c4ba46e2ac6a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile
@@ -0,0 +1,8 @@
+source "https://rubygems.org"
+gem "jekyll"
+# jekyll alone might be enough for most use-cases
+gem "jekyll-avatar"
+gem "jekyll-mentions"
+gem "jekyll-seo-tag"
+gem "jekyll-sitemap"
+gem "jemoji"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
new file mode 100644
index 000000000000..ffc7c0e2aebf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
@@ -0,0 +1,103 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (6.0.3.2)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ zeitwerk (~> 2.2, >= 2.2.2)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ colorator (1.1.0)
+ concurrent-ruby (1.1.7)
+ em-websocket (0.5.1)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0.6.0)
+ eventmachine (1.2.7)
+ ffi (1.13.1)
+ forwardable-extended (2.6.0)
+ gemoji (3.0.1)
+ html-pipeline (2.14.0)
+ activesupport (>= 2)
+ nokogiri (>= 1.4)
+ http_parser.rb (0.6.0)
+ i18n (1.8.5)
+ concurrent-ruby (~> 1.0)
+ jekyll (4.1.1)
+ addressable (~> 2.4)
+ colorator (~> 1.0)
+ em-websocket (~> 0.5)
+ i18n (~> 1.0)
+ jekyll-sass-converter (~> 2.0)
+ jekyll-watch (~> 2.0)
+ kramdown (~> 2.1)
+ kramdown-parser-gfm (~> 1.0)
+ liquid (~> 4.0)
+ mercenary (~> 0.4.0)
+ pathutil (~> 0.9)
+ rouge (~> 3.0)
+ safe_yaml (~> 1.0)
+ terminal-table (~> 1.8)
+ jekyll-avatar (0.7.0)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-mentions (1.6.0)
+ html-pipeline (~> 2.3)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-sass-converter (2.1.0)
+ sassc (> 2.0.1, < 3.0)
+ jekyll-seo-tag (2.6.1)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-sitemap (1.4.0)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-watch (2.2.1)
+ listen (~> 3.0)
+ jemoji (0.12.0)
+ gemoji (~> 3.0)
+ html-pipeline (~> 2.2)
+ jekyll (>= 3.0, < 5.0)
+ kramdown (2.3.0)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ liquid (4.0.3)
+ listen (3.2.1)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ mercenary (0.4.0)
+ mini_portile2 (2.4.0)
+ minitest (5.14.1)
+ nokogiri (1.10.10)
+ mini_portile2 (~> 2.4.0)
+ pathutil (0.16.2)
+ forwardable-extended (~> 2.6)
+ public_suffix (4.0.5)
+ rb-fsevent (0.10.4)
+ rb-inotify (0.10.1)
+ ffi (~> 1.0)
+ rexml (3.2.4)
+ rouge (3.22.0)
+ safe_yaml (1.0.5)
+ sassc (2.4.0)
+ ffi (~> 1.9)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ thread_safe (0.3.6)
+ tzinfo (1.2.7)
+ thread_safe (~> 0.1)
+ unicode-display_width (1.7.0)
+ zeitwerk (2.4.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ jekyll
+ jekyll-avatar
+ jekyll-mentions
+ jekyll-seo-tag
+ jekyll-sitemap
+ jemoji
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
new file mode 100644
index 000000000000..b14b27f3756b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -0,0 +1,434 @@
+{
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
+ type = "gem";
+ };
+ version = "6.0.3.2";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ colorator = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+ type = "gem";
+ };
+ version = "1.1.7";
+ };
+ em-websocket = {
+ dependencies = ["eventmachine" "http_parser.rb"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3";
+ type = "gem";
+ };
+ version = "0.5.1";
+ };
+ eventmachine = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ forwardable-extended = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ gemoji = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0";
+ type = "gem";
+ };
+ version = "3.0.1";
+ };
+ html-pipeline = {
+ dependencies = ["activesupport" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1";
+ type = "gem";
+ };
+ version = "2.14.0";
+ };
+ "http_parser.rb" = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+ type = "gem";
+ };
+ version = "1.8.5";
+ };
+ jekyll = {
+ dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
+ type = "gem";
+ };
+ version = "4.1.1";
+ };
+ jekyll-avatar = {
+ dependencies = ["jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03bys2pl60vq92skfhlfqr2j68zhfjc86jffpg32f94wzjk8n0wk";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
+ jekyll-mentions = {
+ dependencies = ["html-pipeline" "jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n8y67plydfmay3jn865igvgb3h6s2crk8kq7ydk3wmn9h103s1r";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ jekyll-sass-converter = {
+ dependencies = ["sassc"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04ncr44wrilz26ayqwlg7379yjnkb29mvx4j04i62b7czmdrc9dv";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ jekyll-seo-tag = {
+ dependencies = ["jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p9fl2r4ni10lbx143zp41caldjs4hg27az5wg42sbwzb7s6z66m";
+ type = "gem";
+ };
+ version = "2.6.1";
+ };
+ jekyll-sitemap = {
+ dependencies = ["jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ jekyll-watch = {
+ dependencies = ["listen"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w";
+ type = "gem";
+ };
+ version = "2.2.1";
+ };
+ jemoji = {
+ dependencies = ["gemoji" "html-pipeline" "jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09sxbnrqz5vf6rxmh6lzism31gz2g3hw86ymg37r1ccknclv3cp9";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ kramdown = {
+ dependencies = ["rexml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ kramdown-parser-gfm = {
+ dependencies = ["kramdown"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ liquid = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by";
+ type = "gem";
+ };
+ version = "4.0.3";
+ };
+ listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ mercenary = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ mini_portile2 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ minitest = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+ type = "gem";
+ };
+ version = "5.14.1";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+ type = "gem";
+ };
+ version = "1.10.10";
+ };
+ pathutil = {
+ dependencies = ["forwardable-extended"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4";
+ type = "gem";
+ };
+ version = "0.16.2";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+ type = "gem";
+ };
+ version = "4.0.5";
+ };
+ 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";
+ };
+ rexml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ rouge = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
+ type = "gem";
+ };
+ version = "3.22.0";
+ };
+ safe_yaml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ sassc = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ terminal-table = {
+ dependencies = ["unicode-display_width"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ thread_safe = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ unicode-display_width = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ zeitwerk = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/default.nix
new file mode 100644
index 000000000000..54857d614206
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/default.nix
@@ -0,0 +1,55 @@
+{ lib, bundlerApp, ruby
+, writeShellScriptBin, makeWrapper
+, withOptionalDependencies ? false
+}:
+
+let
+ rubyWrapper = writeShellScriptBin "ruby" ''
+ if [[ "$#" -eq 2 ]]; then
+ if [[ "''${1##*/}" == "bundle" && "$2" == "install" ]]; then
+ # See https://github.com/NixOS/nixpkgs/issues/58126 for more details.
+ echo 'Skipping "bundle install" as it fails due to the Nix wrapper.'
+ echo 'Please enter the new directory and run the following commands to serve the page:'
+ echo 'nix-shell -p bundler --run "bundle install --gemfile=Gemfile --path vendor/cache"'
+ echo 'nix-shell -p bundler --run "bundle exec jekyll serve"'
+ exit 0
+ # The following nearly works:
+ unset BUNDLE_FROZEN
+ exec ${ruby}/bin/ruby "$@" --gemfile=Gemfile --path=vendor/cache
+ fi
+ fi
+ # Else: Don't modify the arguments:
+ exec ${ruby}/bin/ruby "$@"
+ '';
+in bundlerApp {
+ pname = "jekyll";
+ exes = [ "jekyll" ];
+
+ inherit ruby;
+ gemdir = if withOptionalDependencies
+ then ./full
+ else ./basic;
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/jekyll --prefix PATH : ${rubyWrapper}/bin
+ '';
+
+ meta = with lib; {
+ description = "A blog-aware, static site generator, written in Ruby";
+ longDescription = ''
+ Jekyll is a simple, blog-aware, static site generator, written in Ruby.
+ Think of it like a file-based CMS, without all the complexity. Jekyll
+ takes your content, renders Markdown and Liquid templates, and spits out a
+ complete, static website ready to be served by Apache, Nginx or another
+ web server. Jekyll is the engine behind GitHub Pages, which you can use to
+ host sites right from your GitHub repositories.
+ '';
+ homepage = "https://jekyllrb.com/";
+ #changelog = "https://raw.githubusercontent.com/jekyll/jekyll/v${version}/History.markdown";
+ license = licenses.mit;
+ maintainers = with maintainers; [ primeos pesterhazy ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile
new file mode 100644
index 000000000000..8e7499bad61a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile
@@ -0,0 +1,27 @@
+source "https://rubygems.org"
+
+gem "jekyll"
+
+gem "jekyll-avatar"
+gem "jekyll-mentions"
+gem "jekyll-seo-tag"
+gem "jekyll-sitemap"
+gem "jemoji"
+
+# Optional dependencies:
+gem "jekyll-coffeescript"
+#gem "jekyll-docs"
+gem "jekyll-feed", "~> 0.9"
+gem "jekyll-gist"
+gem "jekyll-paginate"
+gem "jekyll-redirect-from"
+gem "kramdown-syntax-coderay"
+gem "mime-types", "~> 3.0"
+gem "rdoc", "~> 6.0"
+gem "tomlrb", "~> 1.2"
+
+platform :ruby, :mswin, :mingw, :x64_mingw do
+ gem "classifier-reborn", "~> 2.2"
+ gem "liquid-c", "~> 4.0"
+ gem "yajl-ruby", "~> 1.4"
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
new file mode 100644
index 000000000000..d79550720658
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -0,0 +1,154 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (6.0.3.2)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ zeitwerk (~> 2.2, >= 2.2.2)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ classifier-reborn (2.2.0)
+ fast-stemmer (~> 1.0)
+ coderay (1.1.3)
+ coffee-script (2.4.1)
+ coffee-script-source
+ execjs
+ coffee-script-source (1.12.2)
+ colorator (1.1.0)
+ concurrent-ruby (1.1.7)
+ em-websocket (0.5.1)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0.6.0)
+ eventmachine (1.2.7)
+ execjs (2.7.0)
+ faraday (1.0.1)
+ multipart-post (>= 1.2, < 3)
+ fast-stemmer (1.0.2)
+ ffi (1.13.1)
+ forwardable-extended (2.6.0)
+ gemoji (3.0.1)
+ html-pipeline (2.14.0)
+ activesupport (>= 2)
+ nokogiri (>= 1.4)
+ http_parser.rb (0.6.0)
+ i18n (1.8.5)
+ concurrent-ruby (~> 1.0)
+ jekyll (4.1.1)
+ addressable (~> 2.4)
+ colorator (~> 1.0)
+ em-websocket (~> 0.5)
+ i18n (~> 1.0)
+ jekyll-sass-converter (~> 2.0)
+ jekyll-watch (~> 2.0)
+ kramdown (~> 2.1)
+ kramdown-parser-gfm (~> 1.0)
+ liquid (~> 4.0)
+ mercenary (~> 0.4.0)
+ pathutil (~> 0.9)
+ rouge (~> 3.0)
+ safe_yaml (~> 1.0)
+ terminal-table (~> 1.8)
+ jekyll-avatar (0.7.0)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-coffeescript (2.0.0)
+ coffee-script (~> 2.2)
+ coffee-script-source (~> 1.12)
+ jekyll-feed (0.15.0)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-gist (1.5.0)
+ octokit (~> 4.2)
+ jekyll-mentions (1.6.0)
+ html-pipeline (~> 2.3)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-paginate (1.1.0)
+ jekyll-redirect-from (0.16.0)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-sass-converter (2.1.0)
+ sassc (> 2.0.1, < 3.0)
+ jekyll-seo-tag (2.6.1)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-sitemap (1.4.0)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-watch (2.2.1)
+ listen (~> 3.0)
+ jemoji (0.12.0)
+ gemoji (~> 3.0)
+ html-pipeline (~> 2.2)
+ jekyll (>= 3.0, < 5.0)
+ kramdown (2.3.0)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ kramdown-syntax-coderay (1.0.1)
+ coderay (~> 1.1)
+ kramdown (~> 2.0)
+ liquid (4.0.3)
+ liquid-c (4.0.0)
+ liquid (>= 3.0.0)
+ listen (3.2.1)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ mercenary (0.4.0)
+ mime-types (3.3.1)
+ mime-types-data (~> 3.2015)
+ mime-types-data (3.2020.0512)
+ mini_portile2 (2.4.0)
+ minitest (5.14.1)
+ multipart-post (2.1.1)
+ nokogiri (1.10.10)
+ mini_portile2 (~> 2.4.0)
+ octokit (4.18.0)
+ faraday (>= 0.9)
+ sawyer (~> 0.8.0, >= 0.5.3)
+ pathutil (0.16.2)
+ forwardable-extended (~> 2.6)
+ public_suffix (4.0.5)
+ rb-fsevent (0.10.4)
+ rb-inotify (0.10.1)
+ ffi (~> 1.0)
+ rdoc (6.2.1)
+ rexml (3.2.4)
+ rouge (3.22.0)
+ safe_yaml (1.0.5)
+ sassc (2.4.0)
+ ffi (~> 1.9)
+ sawyer (0.8.2)
+ addressable (>= 2.3.5)
+ faraday (> 0.8, < 2.0)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ thread_safe (0.3.6)
+ tomlrb (1.3.0)
+ tzinfo (1.2.7)
+ thread_safe (~> 0.1)
+ unicode-display_width (1.7.0)
+ yajl-ruby (1.4.1)
+ zeitwerk (2.4.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ classifier-reborn (~> 2.2)
+ jekyll
+ jekyll-avatar
+ jekyll-coffeescript
+ jekyll-feed (~> 0.9)
+ jekyll-gist
+ jekyll-mentions
+ jekyll-paginate
+ jekyll-redirect-from
+ jekyll-seo-tag
+ jekyll-sitemap
+ jemoji
+ kramdown-syntax-coderay
+ liquid-c (~> 4.0)
+ mime-types (~> 3.0)
+ rdoc (~> 6.0)
+ tomlrb (~> 1.2)
+ yajl-ruby (~> 1.4)
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
new file mode 100644
index 000000000000..aa0bc9bcdcc5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -0,0 +1,726 @@
+{
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
+ type = "gem";
+ };
+ version = "6.0.3.2";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ classifier-reborn = {
+ dependencies = ["fast-stemmer"];
+ groups = ["default"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mswin";
+ } {
+ engine = "rbx";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04nxmm5b7j7r0ij9pcpdr7xqpig559gfzrw042ycxcfyav2pv6ij";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+ coderay = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ coffee-script = {
+ dependencies = ["coffee-script-source" "execjs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2";
+ type = "gem";
+ };
+ version = "2.4.1";
+ };
+ coffee-script-source = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1907v9q1zcqmmyqzhzych5l7qifgls2rlbnbhy5vzyr7i7yicaz1";
+ type = "gem";
+ };
+ version = "1.12.2";
+ };
+ colorator = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+ type = "gem";
+ };
+ version = "1.1.7";
+ };
+ em-websocket = {
+ dependencies = ["eventmachine" "http_parser.rb"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3";
+ type = "gem";
+ };
+ version = "0.5.1";
+ };
+ eventmachine = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ execjs = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ fast-stemmer = {
+ groups = ["default"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mswin";
+ } {
+ engine = "rbx";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0688clyk4xxh3kdb18vi089k90mca8ji5fwaknh3da5wrzcrzanh";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ forwardable-extended = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ gemoji = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0";
+ type = "gem";
+ };
+ version = "3.0.1";
+ };
+ html-pipeline = {
+ dependencies = ["activesupport" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1";
+ type = "gem";
+ };
+ version = "2.14.0";
+ };
+ "http_parser.rb" = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+ type = "gem";
+ };
+ version = "1.8.5";
+ };
+ jekyll = {
+ dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
+ type = "gem";
+ };
+ version = "4.1.1";
+ };
+ jekyll-avatar = {
+ dependencies = ["jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03bys2pl60vq92skfhlfqr2j68zhfjc86jffpg32f94wzjk8n0wk";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
+ jekyll-coffeescript = {
+ dependencies = ["coffee-script" "coffee-script-source"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17fjk0bfm0rs3myid24y2scsf5vzzza185bissjmcc44cbxp571j";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ jekyll-feed = {
+ dependencies = ["jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mgc1ik2cq2g8g7z9ql2i6ydzy771m2i4qrd1q77x8cf2sprlb0z";
+ type = "gem";
+ };
+ version = "0.15.0";
+ };
+ jekyll-gist = {
+ dependencies = ["octokit"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03wz9j6yq3552nzf4g71qrdm9pfdgbm68abml9sjjgiaan1n8ns9";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ jekyll-mentions = {
+ dependencies = ["html-pipeline" "jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n8y67plydfmay3jn865igvgb3h6s2crk8kq7ydk3wmn9h103s1r";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ jekyll-paginate = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ jekyll-redirect-from = {
+ dependencies = ["jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nz6kd6qsa160lmjmls4zgx7fwcpp8ac07mpzy80z6zgd7jwldb6";
+ type = "gem";
+ };
+ version = "0.16.0";
+ };
+ jekyll-sass-converter = {
+ dependencies = ["sassc"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04ncr44wrilz26ayqwlg7379yjnkb29mvx4j04i62b7czmdrc9dv";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ jekyll-seo-tag = {
+ dependencies = ["jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p9fl2r4ni10lbx143zp41caldjs4hg27az5wg42sbwzb7s6z66m";
+ type = "gem";
+ };
+ version = "2.6.1";
+ };
+ jekyll-sitemap = {
+ dependencies = ["jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ jekyll-watch = {
+ dependencies = ["listen"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w";
+ type = "gem";
+ };
+ version = "2.2.1";
+ };
+ jemoji = {
+ dependencies = ["gemoji" "html-pipeline" "jekyll"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09sxbnrqz5vf6rxmh6lzism31gz2g3hw86ymg37r1ccknclv3cp9";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ kramdown = {
+ dependencies = ["rexml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ kramdown-parser-gfm = {
+ dependencies = ["kramdown"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ kramdown-syntax-coderay = {
+ dependencies = ["coderay" "kramdown"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03vpfpmxcdbqyh6kxrjf5xa9qgvwqj0cfv2khz5h32fp5f5dmrda";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ liquid = {
+ groups = ["default"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mswin";
+ } {
+ engine = "rbx";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by";
+ type = "gem";
+ };
+ version = "4.0.3";
+ };
+ liquid-c = {
+ dependencies = ["liquid"];
+ groups = ["default"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mswin";
+ } {
+ engine = "rbx";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ibcpajsgq530xrz3dk578mfvivrlfd624j6ifz6ms4w69j8jqj6";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ mercenary = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ 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";
+ };
+ mini_portile2 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ minitest = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+ type = "gem";
+ };
+ version = "5.14.1";
+ };
+ multipart-post = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+ type = "gem";
+ };
+ version = "1.10.10";
+ };
+ octokit = {
+ dependencies = ["faraday" "sawyer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zvfr9njmj5svi39fcsi2b0g7pcxb0vamw9dlyas8bg814jlzhi6";
+ type = "gem";
+ };
+ version = "4.18.0";
+ };
+ pathutil = {
+ dependencies = ["forwardable-extended"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4";
+ type = "gem";
+ };
+ version = "0.16.2";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+ type = "gem";
+ };
+ version = "4.0.5";
+ };
+ 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";
+ };
+ rdoc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08862mr1575j8g32wma4pv2qwj4xpllk29i5j61hgf9nwn64afhc";
+ type = "gem";
+ };
+ version = "6.2.1";
+ };
+ rexml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ rouge = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
+ type = "gem";
+ };
+ version = "3.22.0";
+ };
+ safe_yaml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ sassc = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ sawyer = {
+ dependencies = ["addressable" "faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz";
+ type = "gem";
+ };
+ version = "0.8.2";
+ };
+ terminal-table = {
+ dependencies = ["unicode-display_width"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ thread_safe = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ tomlrb = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00x5y9h4fbvrv4xrjk4cqlkm4vq8gv73ax4alj3ac2x77zsnnrk8";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ unicode-display_width = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ yajl-ruby = {
+ groups = ["default"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mswin";
+ } {
+ engine = "rbx";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ zeitwerk = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/update.sh
new file mode 100755
index 000000000000..528f1062c733
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jekyll/update.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p bundix zlib
+
+set -o errexit
+set -o nounset
+
+readonly BASEDIR="$(dirname $(readlink -f $0))"
+
+for directory in "basic" "full"; do
+ pushd "$BASEDIR/$directory"
+ rm -f Gemfile.lock gemset.nix
+ bundix --magic
+ rm -rf .bundle vendor
+ popd
+done
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jgmenu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/jgmenu/default.nix
new file mode 100644
index 000000000000..e6a140ec7f96
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jgmenu/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, python3Packages
+, pango
+, librsvg
+, libxml2
+, menu-cache
+, xorg
+, makeWrapper
+, enableXfcePanelApplet ? false
+, xfce
+, gtk3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "jgmenu";
+ version = "4.2.1";
+
+ src = fetchFromGitHub {
+ owner = "johanmalm";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "00q4v31x4q7nm61wda4v0gznv18bm3qs8mp04pcns60qacdv9lkk";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ makeWrapper
+ python3Packages.wrapPython
+ ];
+
+ buildInputs = [
+ pango
+ librsvg
+ libxml2
+ menu-cache
+ xorg.libXinerama
+ xorg.libXrandr
+ python3Packages.python
+ ] ++ stdenv.lib.optionals enableXfcePanelApplet [
+ gtk3
+ xfce.libxfce4util
+ xfce.xfce4-panel
+ ];
+
+ configureFlags = [
+ ]
+ ++ stdenv.lib.optionals enableXfcePanelApplet [
+ "--with-xfce4-panel-applet"
+ ];
+
+ postFixup = ''
+ wrapPythonProgramsIn "$out/lib/jgmenu"
+ for f in $out/bin/jgmenu{,_run}; do
+ wrapProgram $f --prefix PATH : $out/bin
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/johanmalm/jgmenu";
+ description = "Small X11 menu intended to be used with openbox and tint2";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jigdo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/jigdo/default.nix
new file mode 100644
index 000000000000..134354de40b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jigdo/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, db, gtk2, bzip2 }:
+
+stdenv.mkDerivation {
+ name = "jigdo-0.7.3";
+
+ # Debian sources
+ src = fetchurl {
+ url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3.orig.tar.gz";
+ sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv";
+ };
+
+ patches = [
+ (fetchurl {
+ url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-4.diff.gz";
+ sha256 = "03zsh57fijciiv23lf55k6fbfhhzm866xjhx83x54v5s1g2h6m8y";
+ })
+ ./sizewidth.patch
+ ];
+
+ buildInputs = [ db gtk2 bzip2 ];
+
+ configureFlags = [ "--without-libdb" ];
+
+ meta = {
+ description = "Download utility that can fetch files from several sources simultaneously";
+ homepage = "http://atterer.net/jigdo/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch
new file mode 100644
index 000000000000..17b1749fcf77
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch
@@ -0,0 +1,40 @@
+diff --git i/src/mkimage.cc w/src/mkimage.cc
+index 02e65b1..b263796 100755
+--- i/src/mkimage.cc
++++ w/src/mkimage.cc
+@@ -285,27 +285,27 @@ bostream& JigdoDescVec::put(bostream& file, MD5Sum* md) const {
+ //______________________________________________________________________
+
+ namespace {
+- const int SIZE_WIDTH = 12;
++ const int MKIMAGE_SIZE_WIDTH = 12;
+ }
+
+ ostream& JigdoDesc::ImageInfo::put(ostream& s) const {
+- s << "image-info " << setw(SIZE_WIDTH) << size() << " "
++ s << "image-info " << setw(MKIMAGE_SIZE_WIDTH) << size() << " "
+ << md5() << ' ' << blockLength() << '\n';
+ return s;
+ }
+ ostream& JigdoDesc::UnmatchedData::put(ostream& s) const {
+- s << "in-template " << setw(SIZE_WIDTH) << offset() << ' '
+- << setw(SIZE_WIDTH) << size() << '\n';
++ s << "in-template " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' '
++ << setw(MKIMAGE_SIZE_WIDTH) << size() << '\n';
+ return s;
+ }
+ ostream& JigdoDesc::MatchedFile::put(ostream& s) const {
+- s << "need-file " << setw(SIZE_WIDTH) << offset() << ' '
+- << setw(SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n';
++ s << "need-file " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' '
++ << setw(MKIMAGE_SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n';
+ return s;
+ }
+ ostream& JigdoDesc::WrittenFile::put(ostream& s) const {
+- s << "have-file " << setw(SIZE_WIDTH) << offset() << ' '
+- << setw(SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n';
++ s << "have-file " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' '
++ << setw(MKIMAGE_SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n';
+ return s;
+ }
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
new file mode 100644
index 000000000000..bcd4f686f818
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, undmg }:
+
+let
+ pname = "joplin-desktop";
+ version = "1.4.19";
+ name = "${pname}-${version}";
+
+ inherit (stdenv.hostPlatform) system;
+ throwSystem = throw "Unsupported system: ${system}";
+
+ suffix = {
+ x86_64-linux = "AppImage";
+ x86_64-darwin = "dmg";
+ }.${system} or throwSystem;
+
+ src = fetchurl {
+ url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
+ sha256 = {
+ x86_64-linux = "1xyj30pnlczchbh4awb955sxh51v89d170f4yk0v1jkj7dg2wjgj";
+ x86_64-darwin = "166yp2rr87p0lh64ngs498a50ahcann8z5s0g2p0azs6wi54a6kw";
+ }.${system} or throwSystem;
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+
+ meta = with stdenv.lib; {
+ description = "An open source note taking and to-do application with synchronisation capabilities";
+ longDescription = ''
+ Joplin is a free, open source note taking and to-do application, which can
+ handle a large number of notes organised into notebooks. The notes are
+ searchable, can be copied, tagged and modified either from the
+ applications directly or from your own text editor. The notes are in
+ Markdown format.
+ '';
+ homepage = "https://joplinapp.org";
+ license = licenses.mit;
+ maintainers = with maintainers; [ hugoreeves ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
+
+ linux = appimageTools.wrapType2 rec {
+ inherit name src meta;
+
+ profile = ''
+ export LC_ALL=C.UTF-8
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null; # no 32bit needed
+ extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+ extraInstallCommands = ''
+ mv $out/bin/{${name},${pname}}
+ install -Dm444 ${appimageContents}/@joplinapp-desktop.desktop -t $out/share/applications
+ install -Dm444 ${appimageContents}/@joplinapp-desktop.png -t $out/share/pixmaps
+ substituteInPlace $out/share/applications/@joplinapp-desktop.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+ };
+
+ darwin = stdenv.mkDerivation {
+ inherit name src meta;
+
+ nativeBuildInputs = [ undmg ];
+
+ sourceRoot = "Joplin.app";
+
+ installPhase = ''
+ mkdir -p $out/Applications/Joplin.app
+ cp -R . $out/Applications/Joplin.app
+ '';
+ };
+in
+if stdenv.isDarwin
+then darwin
+else linux
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/josm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/josm/default.nix
new file mode 100644
index 000000000000..eab2519ad08e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/josm/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
+let
+ pname = "josm";
+ version = "17329";
+ srcs = {
+ jar = fetchurl {
+ url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
+ sha256 = "0hra146akadqz9acj1xa2vzrmipfzf8li7sgsmk169xr991y653k";
+ };
+ macosx = fetchurl {
+ url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
+ sha256 = "0i09jnfqbcirmic9vayrp78lnyk4mfh7ax3v3cs8kyqhk930pscf";
+ };
+ pkg = fetchsvn {
+ url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
+ rev = version;
+ sha256 = "0ybjca6dhnbwl3xqwrc91c444fzs1zrlnz7qr3l79s1vll9r4qd1";
+ };
+ };
+in
+stdenv.mkDerivation {
+ inherit pname version;
+
+ dontUnpack = true;
+
+ buildInputs = stdenv.lib.optionals (!stdenv.isDarwin) [ jre makeWrapper ];
+
+ installPhase =
+ if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ ${unzip}/bin/unzip ${srcs.macosx} 'JOSM.app/*' -d $out/Applications
+ '' else ''
+ install -Dm644 ${srcs.jar} $out/share/josm/josm.jar
+ cp -R ${srcs.pkg}/usr/share $out
+
+ # Add libXxf86vm to path because it is needed by at least Kendzi3D plugin
+ makeWrapper ${jre}/bin/java $out/bin/josm \
+ --add-flags "-Djosm.restart=true -Djava.net.useSystemProxies=true" \
+ --add-flags "-jar $out/share/josm/josm.jar" \
+ --prefix LD_LIBRARY_PATH ":" '${libXxf86vm}/lib'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An extensible editor for OpenStreetMap";
+ homepage = "https://josm.openstreetmap.de/";
+ changelog = "https://josm.openstreetmap.de/wiki/Changelog";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ rycee sikmir ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix
new file mode 100644
index 000000000000..069d98111cc4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchzip }:
+
+let
+ arch = "amd64";
+in
+stdenv.mkDerivation rec {
+ pname = "jotta-cli";
+ version = "0.7.35160";
+ src = fetchzip {
+ url = "https://repo.jotta.us/archives/linux/${arch}/jotta-cli-${version}_linux_${arch}.tar.gz";
+ sha256 = "00fzycy199l9y738cj71s88qz96ppczb5sqsk3x9w4jj4m6ks239";
+ stripRoot = false;
+ };
+
+ installPhase = ''
+ install -D usr/bin/jotta-cli usr/bin/jottad -t $out/bin/
+ mkdir -p $out/share/bash-completion/completions
+ '';
+
+ postFixup = ''
+ patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/jotta-cli
+ patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/jottad
+ $out/bin/jotta-cli completion > $out/share/bash-completion/completions/jotta-cli.bash
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Jottacloud CLI";
+ homepage = "https://www.jottacloud.com/";
+ downloadPage = "https://repo.jotta.us/archives/linux/";
+ maintainers = with maintainers; [ evenbrenden ];
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jp2a/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/jp2a/default.nix
new file mode 100644
index 000000000000..d30e5d96df45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jp2a/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libjpeg, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ version = "1.0.7";
+ pname = "jp2a";
+
+ src = fetchFromGitHub {
+ owner = "cslarsen";
+ repo = "jp2a";
+ rev = "v${version}";
+ sha256 = "12a1z9ba2j16y67f41y8ax5sgv1wdjd71pg7circdxkj263n78ql";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ libjpeg ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://csl.name/jp2a/";
+ description = "A small utility that converts JPG images to ASCII";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/jrnl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/jrnl/default.nix
new file mode 100644
index 000000000000..992b981c0037
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/jrnl/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, python3
+}:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+ pname = "jrnl";
+ version = "1.9.8";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "d254c9c8f24dcf985b98a1d5311337c7f416e6305107eec34c567f58c95b06f4";
+ };
+
+ propagatedBuildInputs = [
+ pytz six tzlocal keyring dateutil
+ parsedatetime pycrypto
+ ];
+
+ # No tests in archive
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "http://maebert.github.io/jrnl/";
+ description = "A simple command line journal application that stores your journal in a plain text file";
+ license = licenses.mit;
+ maintainers = with maintainers; [ zalakain ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
new file mode 100644
index 000000000000..8f9271ac996b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
@@ -0,0 +1,49 @@
+From 2629af4ed00d7ca65359178203d80fb146901cdb Mon Sep 17 00:00:00 2001
+From: Daniel Fullmer <danielrf12@gmail.com>
+Date: Fri, 3 Jul 2020 21:00:45 -0700
+Subject: [PATCH 1/2] Fix CMakeLists
+
+---
+ CMakeLists.txt | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e218279..4341de9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -57,6 +57,7 @@ endif(JPEG_FOUND)
+ include(FindJasper)
+ if(JASPER_FOUND)
+ set(HAVE_JASPER_LIB 1)
++ set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${JASPER_LIBRARY})
+ endif(JASPER_FOUND)
+
+ # paths from willuslib/wgs.c
+@@ -71,9 +72,12 @@ else()
+ message(STATUS "Could NOT find ghostscript executable")
+ endif(GHOSTSCRIPT_EXECUTABLE)
+
+-# willus.h
+-# HAVE_GSL_LIB
+-
++pkg_check_modules(GSL gsl)
++if(GSL_FOUND)
++ set(HAVE_GSL_LIB 1)
++ include_directories(SYSTEM ${GSL_INCLUDEDIR})
++ set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GSL_LDFLAGS})
++endif(GSL_FOUND)
+
+ # libfreetype6 (>= 2.3.9), libjbig2dec0, libjpeg8 (>= 8c), libx11-6, libxext6, zlib1g (>= 1:1.2.0)
+ # MUPDF_STATIC_LDFLAGS misses mupdf-js-none, and doubles libs ...
+@@ -85,7 +89,7 @@ if(MUPDF_FOUND)
+ include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
+ message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
+ set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS}
+- -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
++
+ )
+ endif(MUPDF_FOUND)
+
+--
+2.27.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix
new file mode 100644
index 000000000000..be61a76190a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix
@@ -0,0 +1,172 @@
+{ stdenv, runCommand, fetchzip, fetchurl, fetchpatch, fetchFromGitHub
+, cmake, pkgconfig, zlib, libpng, makeWrapper
+, enableGSL ? true, gsl
+, enableGhostScript ? true, ghostscript
+, enableMuPDF ? true, mupdf_1_17
+, enableDJVU ? true, djvulibre
+, enableGOCR ? false, gocr # Disabled by default due to crashes
+, enableTesseract ? true, leptonica, tesseract4
+}:
+
+with stdenv.lib;
+
+# k2pdfopt is a pain to package. It requires modified versions of mupdf,
+# leptonica, and tesseract. Instead of shipping patches for these upstream
+# packages, k2pdfopt includes just the modified source files for these
+# packages. The individual files from the {mupdf,leptonica,tesseract}_mod/
+# directories are intended to replace the corresponding source files in the
+# upstream packages, for a particular version of that upstream package.
+#
+# There are a few ways we could approach packaging these modified versions of
+# mupdf, leptonica, and mupdf:
+# 1) Override the upstream source with a new derivation that involves copying
+# the modified source files from k2pdfopt and replacing the corresponding
+# source files in the upstream packages. Since the files are intended for a
+# particular version of the upstream package, this would not allow us to easily
+# use updates to those packages in nixpkgs.
+# 2) Manually produce patches which can be applied against the upstream
+# project, and have the same effect as replacing those files. This is what I
+# believe k2pdfopt should do this for us anyway. The benefit of creating and
+# applying patches in this way is that minor updates (esp. security fixes) to
+# upstream packages might still allow these patches to apply successfully.
+# 3) Automatically produce these patches inside a nix derivation. This is the
+# approach taken here, using the "mkPatch" provided below. This has the
+# benefit of easier review and should hopefully be simpler to update in the
+# future.
+
+let
+ # Create a patch against src based on changes applied in patchCommands
+ mkPatch = { name, src, patchCommands }: runCommand "${name}-k2pdfopt.patch" { inherit src; } ''
+ source $stdenv/setup
+ unpackPhase
+
+ orig=$sourceRoot
+ new=$sourceRoot-modded
+ cp -r $orig/. $new/
+
+ pushd $new >/dev/null
+ ${patchCommands}
+ popd >/dev/null
+
+ diff -Naur $orig $new > $out || true
+ '';
+
+ pname = "k2pdfopt";
+ version = "2.53";
+ k2pdfopt_src = fetchzip {
+ url = "http://www.willus.com/${pname}/src/${pname}_v${version}_src.zip";
+ sha256 = "1fna8bg3pascjfc3hmc6xn0xi2yh7f1qp0d344mw9hqanbnykyy8";
+ };
+in stdenv.mkDerivation rec {
+ inherit pname version;
+ src = k2pdfopt_src;
+
+ patches = [
+ ./0001-Fix-CMakeLists.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace willuslib/bmpdjvu.c \
+ --replace "<djvu.h>" "<libdjvu/ddjvuapi.h>"
+ '';
+
+ nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+
+ buildInputs =
+ let
+ # We use specific versions of these sources below to match the versions
+ # used in the k2pdfopt source. Note that this does _not_ need to match the
+ # version used elsewhere in nixpkgs, since it is only used to create the
+ # patch that can then be applied to the version in nixpkgs.
+ mupdf_patch = mkPatch {
+ name = "mupdf";
+ src = fetchurl {
+ url = "https://mupdf.com/downloads/archive/mupdf-1.17.0-source.tar.gz";
+ sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
+ };
+ patchCommands = ''
+ cp ${k2pdfopt_src}/mupdf_mod/{filter-basic,font,stext-device,string}.c ./source/fitz/
+ cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/
+ '';
+ };
+ mupdf_modded = mupdf_1_17.overrideAttrs ({ patches ? [], ... }: {
+ patches = patches ++ [ mupdf_patch ];
+ # This function is missing in font.c, see font-win32.c
+ postPatch = ''
+ echo "void pdf_install_load_system_font_funcs(fz_context *ctx) {}" >> source/fitz/font.c
+ '';
+ });
+
+ leptonica_patch = mkPatch {
+ name = "leptonica";
+ src = fetchurl {
+ url = "http://www.leptonica.org/source/leptonica-1.79.0.tar.gz";
+ sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84";
+ };
+ patchCommands = "cp -r ${k2pdfopt_src}/leptonica_mod/. ./src/";
+ };
+ leptonica_modded = leptonica.overrideAttrs ({ patches ? [], ... }: {
+ patches = patches ++ [ leptonica_patch ];
+ });
+
+ tesseract_patch = mkPatch {
+ name = "tesseract";
+ src = fetchFromGitHub {
+ owner = "tesseract-ocr";
+ repo = "tesseract";
+ rev = "4.1.1";
+ sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn";
+ };
+ patchCommands = ''
+ cp ${k2pdfopt_src}/tesseract_mod/{baseapi,tesscapi,tesseract}.* src/api/
+ cp ${k2pdfopt_src}/tesseract_mod/{tesscapi,tessedit,tesseract}.* src/ccmain/
+ cp ${k2pdfopt_src}/tesseract_mod/dotproduct{avx,fma,sse}.* src/arch/
+ cp ${k2pdfopt_src}/tesseract_mod/{intsimdmatrixsse,simddetect}.* src/arch/
+ cp ${k2pdfopt_src}/tesseract_mod/{errcode,genericvector,mainblk,params,serialis,tessdatamanager,tess_version,tprintf,unicharset}.* src/ccutil/
+ cp ${k2pdfopt_src}/tesseract_mod/{input,lstmrecognizer}.* src/lstm/
+ cp ${k2pdfopt_src}/tesseract_mod/openclwrapper.* src/opencl/
+ '';
+ };
+ tesseract_modded = tesseract4.override {
+ tesseractBase = tesseract4.tesseractBase.overrideAttrs ({ patches ? [], ... }: {
+ patches = patches ++ [ tesseract_patch ];
+ # Additional compilation fixes
+ postPatch = ''
+ echo libtesseract_api_la_SOURCES += tesscapi.cpp >> src/api/Makefile.am
+ substituteInPlace src/api/tesseract.h \
+ --replace "#include <leptonica.h>" "//#include <leptonica.h>"
+ '';
+ });
+ };
+ in
+ [ zlib libpng ] ++
+ optional enableGSL gsl ++
+ optional enableGhostScript ghostscript ++
+ optional enableMuPDF mupdf_modded ++
+ optional enableDJVU djvulibre ++
+ optional enableGOCR gocr ++
+ optionals enableTesseract [ leptonica_modded tesseract_modded ];
+
+ dontUseCmakeBuildDir = true;
+
+ cmakeFlags = [ "-DCMAKE_C_FLAGS=-I${src}/include_mod" ];
+
+ NIX_LDFLAGS = "-lpthread";
+
+ installPhase = ''
+ install -D -m 755 k2pdfopt $out/bin/k2pdfopt
+ '';
+
+ preFixup = optionalString enableTesseract ''
+ wrapProgram $out/bin/k2pdfopt --set-default TESSDATA_PREFIX ${tesseract4}/share/tessdata
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones";
+ homepage = "http://www.willus.com/k2pdfopt";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ bosu danielfullmer ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix
new file mode 100644
index 000000000000..2b4ae320e4e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation
+, extra-cmake-modules
+, fetchFromGitHub
+, kdoctools
+, kiconthemes
+, kio
+, kjobwidgets
+, kxmlgui
+, stdenv
+}:
+
+mkDerivation rec {
+ pname = "k4dirstat";
+ version = "3.2.1";
+
+ src = fetchFromGitHub {
+ owner = "jeromerobert";
+ repo = pname;
+ rev = version;
+ sha256 = "15xjb80jq6vhzvzx4l341f40d8a23w1334qh6cczqm9adfnzycp7";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kiconthemes kio kjobwidgets kxmlgui ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jeromerobert/k4dirstat";
+ description = "A small utility program that sums up disk usage for directory trees";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.raboof ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/kanboard/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/kanboard/default.nix
new file mode 100644
index 000000000000..ebe31b10c60e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/kanboard/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "kanboard";
+ version = "1.2.16";
+
+ src = fetchFromGitHub {
+ owner = "kanboard";
+ repo = "kanboard";
+ rev = "v${version}";
+ sha256 = "1nps7xcw1gp7kfdp13wyj2sprc8hn5iamdb0xj4202qygpzm63wq";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/share/kanboard
+ cp -rv . $out/share/kanboard
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Kanban project management software";
+ homepage = "https://kanboard.net";
+ license = licenses.mit;
+ maintainers = with maintainers; [ fpletz lheckemann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/kapow/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/kapow/default.nix
new file mode 100644
index 000000000000..ccdc57dd0e67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/kapow/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, qmake, fetchFromGitHub, qtbase, qttools, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "kapow";
+ version = "1.5.10";
+
+ src = fetchFromGitHub {
+ owner = "gottcode";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1fz9fb4w21ax8hjs6dwfn2410ig4lqvzdlijq0jcj3jbgxd4i1gw";
+ };
+
+ nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
+
+ buildInputs = [ qtbase ];
+
+ meta = with stdenv.lib; {
+ description = "Punch clock to track time spent on projects";
+ homepage = "https://gottcode.org/kapow/";
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/kdbplus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/kdbplus/default.nix
new file mode 100644
index 000000000000..4c4b461303fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/kdbplus/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, requireFile, unzip, rlwrap, bash, zlib }:
+
+assert (stdenv.hostPlatform.system == "i686-linux");
+
+let
+ libPath = stdenv.lib.makeLibraryPath
+ [ stdenv.cc.libc stdenv.cc.cc zlib ];
+in
+stdenv.mkDerivation rec {
+ pname = "kdbplus";
+ version = "3.6";
+
+ src = requireFile rec {
+ message = ''
+ Nix can't download kdb+ for you automatically. Go to
+ http://kx.com and download the free, 32-bit version for
+ Linux. Then run "nix-prefetch-url file://\$PWD/${name}" in
+ the directory where you saved it. Note you need version ${version}.
+ '';
+ name = "linuxx86.zip";
+ sha256 = "0w6znd9warcqx28vf648n0vgmxyyy9kvsfpsfw37d1kp5finap4p";
+ };
+
+ dontStrip = true;
+ buildInputs = [ unzip ];
+
+ phases = "unpackPhase installPhase";
+ unpackPhase = "mkdir ${pname}-${version} && cd ${pname}-${version} && unzip -qq ${src}";
+ installPhase = ''
+ mkdir -p $out/bin $out/libexec
+
+ patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${libPath} \
+ ./q/l32/q
+ mv ./q/l32/q $out/libexec/q
+
+ # Shell script wrappers to make things more convenient...
+
+ cat > $out/bin/q-install <<- EOF
+ #!${bash}/bin/bash
+ if [ -f \$HOME/q/q.k ]; then
+ echo "kdb has already been unpacked in \$HOME. Skipping..."
+ exit 0
+ fi
+ echo -n "Unzipping ${src} into \$HOME... "
+ cd \$HOME && ${unzip}/bin/unzip -qq ${src}
+ echo "Done"
+ EOF
+
+ cat > $out/bin/q <<- EOF
+ #!${bash}/bin/bash
+ if [ ! -f \$HOME/q/q.k ]; then
+ echo "ERROR: You need to unzip the Q sources into \$HOME before running q."
+ echo
+ echo "Try:"
+ echo " cd \$HOME && unzip ${src}"
+ echo "(or run q-install)"
+ exit 1
+ fi
+
+ exec ${rlwrap}/bin/rlwrap $out/libexec/q \$@
+ EOF
+
+ chmod +x $out/bin/q $out/bin/q-install
+ '';
+
+ meta = {
+ description = "Analytics and time-series database";
+ homepage = "http://www.kx.com/";
+ license = stdenv.lib.licenses.unfree;
+ platforms = [ "i686-linux" ];
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
new file mode 100644
index 000000000000..85749af0a561
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildEnv, fetchzip, mono }:
+
+let
+ version = "0.12.0";
+ drv = stdenv.mkDerivation {
+ pname = "keeagent";
+ inherit version;
+
+ src = fetchzip {
+ url = "https://lechnology.com/wp-content/uploads/2020/05/KeeAgent_v0.12.0.zip";
+ sha256 = "0fcfbj3yikiv3dmp69236h9r3c416amdq849kn131w1129gb68xd";
+ stripRoot = false;
+ };
+
+ meta = {
+ description = "KeePass plugin to allow other programs to access SSH keys stored in a KeePass database for authentication";
+ homepage = "http://lechnology.com/software/keeagent";
+ platforms = with stdenv.lib.platforms; linux;
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ ];
+ };
+
+ pluginFilename = "KeeAgent.plgx";
+
+ installPhase = ''
+ mkdir -p $out/lib/dotnet/keepass/
+ cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename
+ '';
+ };
+in
+ # Mono is required to compile plugin at runtime, after loading.
+ buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix
new file mode 100644
index 000000000000..10e6996873a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildEnv, fetchFromGitHub, mono }:
+
+let
+ version = "1.8.4.2";
+ drv = stdenv.mkDerivation {
+ pname = "keepasshttp";
+ inherit version;
+ src = fetchFromGitHub {
+ owner = "pfn";
+ repo = "keepasshttp";
+ # rev = version;
+ # for 1.8.4.2 the tag is at the wrong commit (they fixed stuff
+ # afterwards and didn't move the tag), hence reference by commitid
+ rev = "c2c4eb5388a02169400cba7a67be325caabdcc37";
+ sha256 = "0bkzxggbqx7sql3sp46bqham6r457in0vrgh3ai3lw2jrw79pwmh";
+ };
+
+ meta = {
+ description = "KeePass plugin to expose password entries securely (256bit AES/CBC) over HTTP";
+ homepage = "https://github.com/pfn/keepasshttp";
+ platforms = with stdenv.lib.platforms; linux;
+ license = stdenv.lib.licenses.gpl3;
+ };
+
+ pluginFilename = "KeePassHttp.plgx";
+
+ installPhase = ''
+ mkdir -p $out/lib/dotnet/keepass/
+ cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename
+ '';
+ };
+in
+ # Mono is required to compile plugin at runtime, after loading.
+ buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
new file mode 100644
index 000000000000..b28914a44a81
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, buildEnv, fetchurl, mono }:
+
+let
+ version = "1.14.0";
+ drv = stdenv.mkDerivation {
+ pname = "keepassrpc";
+ inherit version;
+ src = fetchurl {
+ url = "https://github.com/kee-org/keepassrpc/releases/download/v${version}/KeePassRPC.plgx";
+ sha256 = "1c410cc93c0252e7cfdb02507b8172c13e18d12c97f08630b721d897dc9b8b24";
+ };
+
+ meta = with stdenv.lib; {
+ description = "The KeePassRPC plugin that needs to be installed inside KeePass in order for Kee to be able to connect your browser to your passwords";
+ homepage = "https://github.com/kee-org/keepassrpc";
+ platforms = [ "x86_64-linux" ];
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ mjanczyk svsdep mgregoire ];
+ };
+
+ pluginFilename = "KeePassRPC.plgx";
+
+ unpackCmd = ''
+ mkdir deps/
+ cp -p $src deps/$pluginFilename
+ '';
+ sourceRoot = "deps";
+
+ installPhase = ''
+ mkdir -p $out/lib/dotnet/keepass/
+ cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename
+ '';
+ };
+in
+ # Mono is required to compile plugin at runtime, after loading.
+ buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix
new file mode 100644
index 000000000000..e2b26eaee901
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildEnv, fetchzip, mono }:
+
+let
+ version = "2.6";
+ drv = stdenv.mkDerivation {
+ pname = "otpkeyprov";
+ inherit version;
+
+ src = fetchzip {
+ url = "https://keepass.info/extensions/v2/otpkeyprov/OtpKeyProv-${version}.zip";
+ sha256 = "1p60k55v2sxnv1varmp0dgbsi2rhjg9kj19cf54mkc87nss5h1ki";
+ stripRoot = false;
+ };
+
+ meta = {
+ description = "OtpKeyProv is a key provider based on one-time passwords";
+ homepage = "https://keepass.info/plugins.html#otpkeyprov";
+ platforms = with stdenv.lib.platforms; linux;
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.ente ];
+ };
+
+ pluginFilename = "OtpKeyProv.plgx";
+
+ installPhase = ''
+ mkdir -p $out/lib/dotnet/keepass/
+ cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename
+ '';
+ };
+in
+ # Mono is required to compile plugin at runtime, after loading.
+ buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/default.nix
new file mode 100644
index 000000000000..6164a60d6a86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/default.nix
@@ -0,0 +1,118 @@
+{ stdenv, lib, fetchurl, buildDotnetPackage, substituteAll, makeWrapper, makeDesktopItem,
+ unzip, icoutils, gtk2, xorg, xdotool, xsel, coreutils, unixtools, glib, plugins ? [] }:
+
+with builtins; buildDotnetPackage rec {
+ baseName = "keepass";
+ version = "2.46";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip";
+ sha256 = "0zyclydgyg8nhwxrzw7x4f82975cqdmp12py33k6sballx6jhgiy";
+ };
+
+ sourceRoot = ".";
+
+ buildInputs = [ unzip makeWrapper icoutils ];
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ xsel = "${xsel}/bin/xsel";
+ xprop = "${xorg.xprop}/bin/xprop";
+ xdotool = "${xdotool}/bin/xdotool";
+ uname = "${coreutils}/bin/uname";
+ whereis = "${unixtools.whereis}/bin/whereis";
+ gsettings = "${glib}/bin/gsettings";
+ })
+ ];
+
+ # KeePass looks for plugins in under directory in which KeePass.exe is
+ # located. It follows symlinks where looking for that directory, so
+ # buildEnv is not enough to bring KeePass and plugins together.
+ #
+ # This derivation patches KeePass to search for plugins in specified
+ # plugin derivations in the Nix store and nowhere else.
+ pluginLoadPathsPatch =
+ let outputLc = toString (add 7 (length plugins));
+ patchTemplate = readFile ./keepass-plugins.patch;
+ loadTemplate = readFile ./keepass-plugins-load.patch;
+ loads =
+ lib.concatStrings
+ (map
+ (p: replaceStrings ["$PATH$"] [ (unsafeDiscardStringContext (toString p)) ] loadTemplate)
+ plugins);
+ in replaceStrings ["$OUTPUT_LC$" "$DO_LOADS$"] [outputLc loads] patchTemplate;
+
+ passAsFile = [ "pluginLoadPathsPatch" ];
+ postPatch = ''
+ sed -i 's/\r*$//' KeePass/Forms/MainForm.cs
+ patch -p1 <$pluginLoadPathsPatchPath
+ '';
+
+ preConfigure = ''
+ rm -rvf Build/*
+ find . -name "*.sln" -print -exec sed -i 's/Format Version 10.00/Format Version 11.00/g' {} \;
+ find . -name "*.csproj" -print -exec sed -i '
+ s#ToolsVersion="3.5"#ToolsVersion="4.0"#g
+ s#<TargetFrameworkVersion>.*</TargetFrameworkVersion>##g
+ s#<PropertyGroup>#<PropertyGroup><TargetFrameworkVersion>v4.5</TargetFrameworkVersion>#g
+ s#<SignAssembly>.*$#<SignAssembly>false</SignAssembly>#g
+ s#<PostBuildEvent>.*sgen.exe.*$##
+ ' {} \;
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "keepass";
+ exec = "keepass";
+ comment = "Password manager";
+ icon = "keepass";
+ desktopName = "Keepass";
+ genericName = "Password manager";
+ categories = "Utility;";
+ mimeType = stdenv.lib.concatStringsSep ";" [
+ "application/x-keepass2"
+ ""
+ ];
+ };
+
+ outputFiles = [ "Build/KeePass/Release/*" "Build/KeePassLib/Release/*" ];
+ dllFiles = [ "KeePassLib.dll" ];
+ exeFiles = [ "KeePass.exe" ];
+
+ # plgx plugin like keefox requires mono to compile at runtime
+ # after loading. It is brought into plugins bin/ directory using
+ # buildEnv in the plugin derivation. Wrapper below makes sure it
+ # is found and does not pollute output path.
+ binPaths = lib.concatStrings (lib.intersperse ":" (map (x: x + "/bin") plugins));
+
+ dynlibPath = stdenv.lib.makeLibraryPath [ gtk2 ];
+
+ postInstall =
+ let
+ extractFDeskIcons = ./extractWinRscIconsToStdFreeDesktopDir.sh;
+ in
+ ''
+ mkdir -p "$out/share/applications"
+ cp ${desktopItem}/share/applications/* $out/share/applications
+ wrapProgram $out/bin/keepass \
+ --prefix PATH : "$binPaths" \
+ --prefix LD_LIBRARY_PATH : "$dynlibPath"
+
+ ${extractFDeskIcons} \
+ "./Translation/TrlUtil/Resources/KeePass.ico" \
+ '[^\.]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png' \
+ '\1' \
+ '([^\.]+).+' \
+ 'keepass' \
+ "$out" \
+ "./tmp"
+ '';
+
+ meta = {
+ description = "GUI password manager with strong cryptography";
+ homepage = "http://www.keepass.info/";
+ maintainers = with stdenv.lib.maintainers; [ amorsillo obadz jraygauthier ];
+ platforms = with stdenv.lib.platforms; all;
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh
new file mode 100755
index 000000000000..04485b146a04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# The file from which to extract *.ico files.
+#rscFile="./KeePass.exe"
+rscFile=$1
+
+# A regexp that can extract the image size from the file name.
+# sizeRegex='[^\.]+\.exe_[0-9]+_[0-9]+_[0-9]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png'
+sizeRegex=$2
+
+# sizeReplaceExp='\1'
+sizeReplaceExp=$3
+
+# A regexp that can extract the name of the target image from the file name.
+# nameRegex='([^\.]+)\.exe.+'
+nameRegex=$4
+
+# nameReplaceExp='\1'
+nameReplaceExp=$5
+
+# out=./myOut
+out=$6
+
+# An optional temp dir. TODO: Generate it randomly by default instead.
+tmp=./tmp
+if [ "" != "$4" ]; then
+ tmp=$7
+fi
+
+
+
+rm -rf $tmp/png $tmp/ico
+mkdir -p $tmp/png $tmp/ico
+
+# Extract the ressource file's extension.
+rscFileExt=`echo "$rscFile" | sed -re 's/.+\.(.+)$/\1/'`
+
+# Debug ressource file extension.
+echo "rscFileExt=$rscFileExt"
+
+if [ "ico" = "$rscFileExt" ]; then
+ cp -p $rscFile $tmp/ico
+else
+ wrestool -x --output=$tmp/ico -t14 $rscFile
+fi
+
+icotool --icon -x --palette-size=0 -o $tmp/png $tmp/ico/*.ico
+
+mkdir -p $out
+
+for i in $tmp/png/*.png; do
+ fn=`basename "$i"`
+ size=$(echo $fn | sed -re 's/'${sizeRegex}'/'${sizeReplaceExp}'/')
+ name=$(echo $fn | sed -re 's/'${nameRegex}'/'${nameReplaceExp}'/')
+ targetDir=$out/share/icons/hicolor/$size/apps
+ targetFile=$targetDir/$name.png
+ mkdir -p $targetDir
+ mv $i $targetFile
+done
+
+rm -rf $tmp/png $tmp/ico
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch
new file mode 100644
index 000000000000..5ff36a21c002
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch
@@ -0,0 +1,144 @@
+From 830d0db80f2fce09e12c117f8338b8e4b05866ff Mon Sep 17 00:00:00 2001
+From: Pascal Winkelmann <pascal@wnklmnn.de>
+Date: Tue, 19 May 2020 10:28:31 +0200
+Subject: [PATCH] fixpaths
+
+---
+ KeePass/Native/NativeMethods.Unix.cs | 2 +-
+ KeePass/UI/UISystemFonts.cs | 2 +-
+ KeePass/Util/AppLocator.cs | 2 +-
+ KeePass/Util/ClipboardUtil.Unix.cs | 14 +++++++-------
+ KeePassLib/Native/ClipboardU.cs | 2 +-
+ KeePassLib/Native/NativeLib.cs | 2 +-
+ KeePassLib/Utility/MonoWorkarounds.cs | 4 ++--
+ 7 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/KeePass/Native/NativeMethods.Unix.cs b/KeePass/Native/NativeMethods.Unix.cs
+index 4c47258..79cfdb2 100644
+--- a/KeePass/Native/NativeMethods.Unix.cs
++++ b/KeePass/Native/NativeMethods.Unix.cs
+@@ -130,7 +130,7 @@ namespace KeePass.Native
+ try
+ {
+ Application.DoEvents(); // E.g. for clipboard updates
+- string strOutput = NativeLib.RunConsoleApp("xdotool", strParams);
++ string strOutput = NativeLib.RunConsoleApp("@xdotool@", strParams);
+ Application.DoEvents(); // E.g. for clipboard updates
+ return (strOutput ?? string.Empty);
+ }
+diff --git a/KeePass/UI/UISystemFonts.cs b/KeePass/UI/UISystemFonts.cs
+index 08d6134..2bfa4a2 100644
+--- a/KeePass/UI/UISystemFonts.cs
++++ b/KeePass/UI/UISystemFonts.cs
+@@ -188,7 +188,7 @@ namespace KeePass.UI
+
+ private static void UbuntuLoadFonts()
+ {
+- string strDef = NativeLib.RunConsoleApp("gsettings",
++ string strDef = NativeLib.RunConsoleApp("@gsettings@",
+ "get org.gnome.desktop.interface font-name");
+ if(strDef == null) return;
+
+diff --git a/KeePass/Util/AppLocator.cs b/KeePass/Util/AppLocator.cs
+index af02803..8a32c9d 100644
+--- a/KeePass/Util/AppLocator.cs
++++ b/KeePass/Util/AppLocator.cs
+@@ -429,7 +429,7 @@ namespace KeePass.Util
+ if(NativeLib.GetPlatformID() == PlatformID.MacOSX)
+ strArgPrefix = string.Empty; // FR 3535696
+
+- string str = NativeLib.RunConsoleApp("whereis", strArgPrefix + strApp);
++ string str = NativeLib.RunConsoleApp("@whereis@", strArgPrefix + strApp);
+ if(str == null) return null;
+
+ str = str.Trim();
+diff --git a/KeePass/Util/ClipboardUtil.Unix.cs b/KeePass/Util/ClipboardUtil.Unix.cs
+index ab49ee2..7f6c50f 100644
+--- a/KeePass/Util/ClipboardUtil.Unix.cs
++++ b/KeePass/Util/ClipboardUtil.Unix.cs
+@@ -62,7 +62,7 @@ namespace KeePass.Util
+ // "-out -selection clipboard");
+ // if(str != null) return str;
+
+- string str = NativeLib.RunConsoleApp("xsel",
++ string str = NativeLib.RunConsoleApp("@xsel@",
+ "--output --clipboard", null, XSelFlags);
+ if(str != null) return str;
+
+@@ -83,10 +83,10 @@ namespace KeePass.Util
+ if(string.IsNullOrEmpty(str))
+ {
+ // xsel with an empty input can hang, thus use --clear
+- if(NativeLib.RunConsoleApp("xsel", "--clear --primary",
++ if(NativeLib.RunConsoleApp("@xsel@", "--clear --primary",
+ null, XSelFlags) != null)
+ {
+- NativeLib.RunConsoleApp("xsel", "--clear --clipboard",
++ NativeLib.RunConsoleApp("@xsel@", "--clear --clipboard",
+ null, XSelFlags);
+ return;
+ }
+@@ -97,10 +97,10 @@ namespace KeePass.Util
+ }
+
+ // xsel does not support --primary and --clipboard together
+- if(NativeLib.RunConsoleApp("xsel", "--input --primary",
++ if(NativeLib.RunConsoleApp("@xsel@", "--input --primary",
+ str, XSelFlags) != null)
+ {
+- NativeLib.RunConsoleApp("xsel", "--input --clipboard",
++ NativeLib.RunConsoleApp("@xsel@", "--input --clipboard",
+ str, XSelFlags);
+ return;
+ }
+diff --git a/KeePassLib/Native/ClipboardU.cs b/KeePassLib/Native/ClipboardU.cs
+index 291c51d..3c76380 100644
+--- a/KeePassLib/Native/ClipboardU.cs
++++ b/KeePassLib/Native/ClipboardU.cs
+@@ -27,7 +27,7 @@ namespace KeePassLib.Native
+ {
+ internal static class ClipboardU
+ {
+- internal const string XSel = "xsel";
++ internal const string XSel = "@xsel@";
+ private const string XSelV = "--version";
+ private const string XSelR = "--output --clipboard";
+ private const string XSelC = "--clear --clipboard";
+diff --git a/KeePassLib/Native/NativeLib.cs b/KeePassLib/Native/NativeLib.cs
+index 2d227a3..243f4ee 100644
+--- a/KeePassLib/Native/NativeLib.cs
++++ b/KeePassLib/Native/NativeLib.cs
+@@ -145,7 +145,7 @@ namespace KeePassLib.Native
+ // Mono returns PlatformID.Unix on Mac OS X, workaround this
+ if(m_platID.Value == PlatformID.Unix)
+ {
+- if((RunConsoleApp("uname", null) ?? string.Empty).Trim().Equals(
++ if((RunConsoleApp("@uname@", null) ?? string.Empty).Trim().Equals(
+ "Darwin", StrUtil.CaseIgnoreCmp))
+ m_platID = PlatformID.MacOSX;
+ }
+diff --git a/KeePassLib/Utility/MonoWorkarounds.cs b/KeePassLib/Utility/MonoWorkarounds.cs
+index e20bb3a..4fd875b 100644
+--- a/KeePassLib/Utility/MonoWorkarounds.cs
++++ b/KeePassLib/Utility/MonoWorkarounds.cs
+@@ -41,7 +41,7 @@ namespace KeePassLib.Utility
+ {
+ public static class MonoWorkarounds
+ {
+- private const string AppXDoTool = "xdotool";
++ private const string AppXDoTool = "@xdotool@";
+
+ private static Dictionary<uint, bool> g_dForceReq = new Dictionary<uint, bool>();
+ private static Thread g_thFixClip = null;
+@@ -335,7 +335,7 @@ namespace KeePassLib.Utility
+ // }
+ // else { Debug.Assert(false); }
+
+- string strWmClass = (NativeLib.RunConsoleApp("xprop",
++ string strWmClass = (NativeLib.RunConsoleApp("@xprop@",
+ "-id " + strHandle + " WM_CLASS") ?? string.Empty);
+
+ if(strWmClass.IndexOf("\"" + PwDefs.ResClass + "\"",
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch
new file mode 100644
index 000000000000..e6a6bff8dad3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch
@@ -0,0 +1 @@
++ m_pluginManager.LoadAllPlugins("$PATH$/lib/dotnet/keepass", System.IO.SearchOption.TopDirectoryOnly, new string[] {});
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch
new file mode 100644
index 000000000000..891be1ffa314
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch
@@ -0,0 +1,25 @@
+From 4cb0b18f5326a07927453897180289a4b254ac4f Mon Sep 17 00:00:00 2001
+From: Pascal Winkelmann <pascal@wnklmnn.de>
+Date: Tue, 19 May 2020 10:43:49 +0200
+Subject: [PATCH] loadplugin
+
+---
+ KeePass/Forms/MainForm.cs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/KeePass/Forms/MainForm.cs b/KeePass/Forms/MainForm.cs
+index 347eaf5..b92e1e2 100644
+--- a/KeePass/Forms/MainForm.cs
++++ b/KeePass/Forms/MainForm.cs
+@@ -440,7 +440,$OUTPUT_LC$ @@ namespace KeePass.Forms
+ ToolStripItemCollection tsicT = m_ctxTray.Items;
+ ToolStripItem tsiPrevT = m_ctxTrayOptions;
+
+- m_pluginManager.LoadAllPlugins();
+$DO_LOADS$+
+
+ m_pluginManager.AddMenuItems(PluginMenuType.Main, tsicM, tsiPrevM);
+ m_pluginManager.AddMenuItems(PluginMenuType.Group, tsicGM, tsiPrevGM);
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix
new file mode 100644
index 000000000000..fdd11db509fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, cmake, libgcrypt, qt4, xorg, ... }:
+
+stdenv.mkDerivation rec {
+ pname = "keepassx2";
+ version = "2.0.3";
+
+ src = fetchurl {
+ url = "https://www.keepassx.org/releases/${version}/keepassx-${version}.tar.gz";
+ sha256 = "1ia7cqx9ias38mnffsl7da7g1f66bcbjsi23k49sln0c6spb9zr3";
+ };
+
+ buildInputs = [ cmake libgcrypt qt4 xorg.libXtst ];
+
+ meta = {
+ description = "Qt password manager compatible with its Win32 and Pocket PC versions";
+ homepage = "https://www.keepassx.org/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ qknight ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/community.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/community.nix
new file mode 100644
index 000000000000..7df1294874f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/community.nix
@@ -0,0 +1,131 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, makeWrapper
+, qttools
+, darwin
+
+, asciidoctor
+, curl
+, glibcLocales
+, libXi
+, libXtst
+, libargon2
+, libgcrypt
+, libgpgerror
+, libsodium
+, libyubikey
+, pkg-config
+, qrencode
+, qtbase
+, qtmacextras
+, qtsvg
+, qtx11extras
+, quazip
+, wrapQtAppsHook
+, yubikey-personalization
+, zlib
+
+, withKeePassBrowser ? true
+, withKeePassKeeShare ? true
+, withKeePassKeeShareSecure ? true
+, withKeePassSSHAgent ? true
+, withKeePassNetworking ? true
+, withKeePassTouchID ? true
+, withKeePassFDOSecrets ? true
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "keepassxc";
+ version = "2.6.2";
+
+ src = fetchFromGitHub {
+ owner = "keepassxreboot";
+ repo = "keepassxc";
+ rev = version;
+ sha256 = "032dzywvwpclhsl3n1pq2m9gyxqpg0gkci6axbvbs7bn82wznc4h";
+ };
+
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [
+ "-Wno-old-style-cast"
+ "-Wno-error"
+ "-D__BIG_ENDIAN__=${if stdenv.isBigEndian then "1" else "0"}"
+ ];
+
+ postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace CMakeLists.txt \
+ --replace "/usr/local/bin" "../bin" \
+ --replace "/usr/local/share/man" "../share/man"
+ '';
+ NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-rpath ${libargon2}/lib";
+
+ patches = [
+ ./darwin.patch
+ ];
+
+ cmakeFlags = [
+ "-DKEEPASSXC_BUILD_TYPE=Release"
+ "-DWITH_GUI_TESTS=ON"
+ "-DWITH_XC_AUTOTYPE=ON"
+ "-DWITH_XC_UPDATECHECK=OFF"
+ "-DWITH_XC_YUBIKEY=ON"
+ ]
+ ++ (optional withKeePassBrowser "-DWITH_XC_BROWSER=ON")
+ ++ (optional withKeePassKeeShare "-DWITH_XC_KEESHARE=ON")
+ ++ (optional withKeePassKeeShareSecure "-DWITH_XC_KEESHARE_SECURE=ON")
+ ++ (optional withKeePassNetworking "-DWITH_XC_NETWORKING=ON")
+ ++ (optional (withKeePassTouchID && stdenv.isDarwin) "-DWITH_XC_TOUCHID=ON")
+ ++ (optional (withKeePassFDOSecrets && stdenv.isLinux) "-DWITH_XC_FDOSECRETS=ON")
+ ++ (optional withKeePassSSHAgent "-DWITH_XC_SSHAGENT=ON");
+
+ doCheck = true;
+ checkPhase = ''
+ export LC_ALL="en_US.UTF-8"
+ export QT_QPA_PLATFORM=offscreen
+ export QT_PLUGIN_PATH="${qtbase.bin}/${qtbase.qtPluginPrefix}"
+ # testcli and testgui are flaky - skip them both
+ make test ARGS+="-E 'testcli|testgui' --output-on-failure"
+ '';
+
+ nativeBuildInputs = [ cmake wrapQtAppsHook qttools ];
+
+ buildInputs = [
+ asciidoctor
+ curl
+ glibcLocales
+ libXi
+ libXtst
+ libargon2
+ libgcrypt
+ libgpgerror
+ libsodium
+ libyubikey
+ pkg-config
+ qrencode
+ qtbase
+ qtsvg
+ qtx11extras
+ yubikey-personalization
+ zlib
+ ]
+ ++ stdenv.lib.optional withKeePassKeeShareSecure quazip
+ ++ stdenv.lib.optional stdenv.isDarwin qtmacextras
+ ++ stdenv.lib.optional (stdenv.isDarwin && withKeePassTouchID) darwin.apple_sdk.frameworks.LocalAuthentication;
+
+ preFixup = optionalString stdenv.isDarwin ''
+ # Make it work without Qt in PATH.
+ wrapQtApp $out/Applications/KeePassXC.app/Contents/MacOS/KeePassXC
+ '';
+
+ meta = {
+ description = "Password manager to store your passwords safely and auto-type them into your everyday websites and applications";
+ longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI, CLI, and browser integration with the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser).";
+ homepage = "https://keepassxc.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ jonafato turion ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch
new file mode 100644
index 000000000000..95ca5d4587fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch
@@ -0,0 +1,53 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 74b1a7ff..0a713a32 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -307,6 +307,7 @@ if(MINGW)
+ set(PLUGIN_INSTALL_DIR ".")
+ set(DATA_INSTALL_DIR "share")
+ elseif(APPLE AND WITH_APP_BUNDLE)
++ set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications")
+ set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents")
+ set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man")
+ set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS")
+@@ -369,12 +370,6 @@ set(CMAKE_AUTORCC ON)
+
+ if(APPLE)
+ set(CMAKE_MACOSX_RPATH TRUE)
+- find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH)
+- if(NOT MACDEPLOYQT_EXE)
+- message(FATAL_ERROR "macdeployqt is required to build on macOS")
+- else()
+- message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
+- endif()
+ elseif(MINGW)
+ find_program(WINDEPLOYQT_EXE windeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH)
+ if(NOT WINDEPLOYQT_EXE)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index f142f368..0742512d 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -351,11 +351,6 @@ if(APPLE AND WITH_APP_BUNDLE)
+ set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}")
+ include(CPack)
+
+- add_custom_command(TARGET ${PROGNAME}
+- POST_BUILD
+- COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
+- COMMENT "Deploying app bundle")
+ endif()
+
+ install(TARGETS ${PROGNAME}
+diff --git a/src/autotype/mac/CMakeLists.txt b/src/autotype/mac/CMakeLists.txt
+index 7427450a..a0a58d71 100644
+--- a/src/autotype/mac/CMakeLists.txt
++++ b/src/autotype/mac/CMakeLists.txt
+@@ -8,7 +8,6 @@ if(WITH_APP_BUNDLE)
+ add_custom_command(TARGET keepassx-autotype-cocoa
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/libkeepassx-autotype-cocoa.so ${PLUGIN_INSTALL_DIR}
+- COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app -executable=${PLUGIN_INSTALL_DIR}/libkeepassx-autotype-cocoa.so -no-plugins
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
+ COMMENT "Deploying autotype plugin")
+ else()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/default.nix
new file mode 100644
index 000000000000..d0980001c8f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, bzip2, qt4, qmake4Hook, libX11, xorgproto, libXtst }:
+
+stdenv.mkDerivation rec {
+ pname = "keepassx";
+ version = "0.4.4";
+
+ src = fetchurl {
+ url = "https://www.keepassx.org/releases/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1i5dq10x28mg7m4c0yacm32xfj4j7imir4ph8x9p0s2ym260c9ry";
+ };
+
+ patches = [ ./random.patch ];
+
+ buildInputs = [ bzip2 qt4 libX11 xorgproto libXtst ];
+
+ nativeBuildInputs = [ qmake4Hook ];
+
+ meta = {
+ description = "Qt password manager compatible with its Win32 and Pocket PC versions";
+ homepage = "https://www.keepassx.org/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ qknight ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/random.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/random.patch
new file mode 100644
index 000000000000..0a0b26f6e8c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keepassx/random.patch
@@ -0,0 +1,13 @@
+--- a/src/lib/random.cpp 2014-01-21 21:15:55.829312723 +0000
++++ b/src/lib/random.cpp 2014-01-21 21:16:36.752535839 +0000
+@@ -28,6 +28,10 @@
+ #include <wincrypt.h>
+ #include <QSysInfo>
+ #endif
++#ifndef Q_WS_WIN
++ #include <sys/types.h>
++ #include <unistd.h>
++#endif
+
+ #include <QCryptographicHash>
+ #include <QCursor>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/keeweb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/keeweb/default.nix
new file mode 100644
index 000000000000..8c1c56dacdc3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/keeweb/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchurl, appimageTools, undmg, libsecret }:
+let
+ inherit (stdenv.hostPlatform) system;
+ throwSystem = throw "Unsupported system: ${system}";
+
+ pname = "keeweb";
+ version = "1.16.0";
+ name = "${pname}-${version}";
+
+ suffix = {
+ x86_64-linux = "linux.AppImage";
+ x86_64-darwin = "mac.dmg";
+ }.${system} or throwSystem;
+
+ src = fetchurl {
+ url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.${suffix}";
+ sha256 = {
+ x86_64-linux = "1pivic7n5nv00s8bb51i2jz2mxgjn92hkc8n0p8662ai1cdng47g";
+ x86_64-darwin = "0q6k0qgkgzid9yjbfsfpp8l9dr0n8xp25a4jf2bxwickm4irs9mz";
+ }.${system} or throwSystem;
+ };
+
+ appimageContents = appimageTools.extract {
+ inherit name src;
+ };
+
+ meta = with stdenv.lib; {
+ description = "Free cross-platform password manager compatible with KeePass";
+ homepage = "https://keeweb.info/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
+
+ linux = appimageTools.wrapType2 rec {
+ inherit name src meta;
+
+ extraPkgs = pkgs: with pkgs; [ libsecret ];
+
+ extraInstallCommands = ''
+ mv $out/bin/{${name},${pname}}
+ install -Dm644 ${appimageContents}/keeweb.desktop -t $out/share/applications
+ install -Dm644 ${appimageContents}/keeweb.png -t $out/share/icons/hicolor/256x256/apps
+ install -Dm644 ${appimageContents}/usr/share/mime/keeweb.xml -t $out/share/mime
+ substituteInPlace $out/share/applications/keeweb.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+ };
+
+ darwin = stdenv.mkDerivation {
+ inherit pname version src meta;
+
+ nativeBuildInputs = [ undmg ];
+
+ sourceRoot = "KeeWeb.app";
+
+ installPhase = ''
+ mkdir -p $out/Applications/KeeWeb.app
+ cp -R . $out/Applications/KeeWeb.app
+ '';
+ };
+in
+if stdenv.isDarwin
+then darwin
+else linux
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/khal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/khal/default.nix
new file mode 100644
index 000000000000..257cacf69a0c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/khal/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, pkgs, python3, fetchpatch, glibcLocales }:
+
+with python3.pkgs; buildPythonApplication rec {
+ pname = "khal";
+ version = "0.10.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "11qhrga44knlnp88py9p547d4nr5kn041d2nszwa3dqw7mf22ks9";
+ };
+
+ patches = [
+ ./skip-broken-test.patch
+ ];
+
+ propagatedBuildInputs = [
+ atomicwrites
+ click
+ click-log
+ configobj
+ dateutil
+ icalendar
+ lxml
+ pkgs.vdirsyncer
+ pytz
+ pyxdg
+ requests_toolbelt
+ tzlocal
+ urwid
+ pkginfo
+ freezegun
+ ];
+ nativeBuildInputs = [ setuptools_scm sphinx sphinxcontrib_newsfeed ];
+ checkInputs = [ pytest glibcLocales ];
+ LC_ALL = "en_US.UTF-8";
+
+ postPatch = ''
+ sed -i \
+ -e "s/Invalid value for \"ics\"/Invalid value for \\\'ics\\\'/" \
+ -e "s/Invalid value for \"\[ICS\]\"/Invalid value for \\\'\[ICS\]\\\'/" \
+ tests/cli_test.py
+ '';
+
+ postInstall = ''
+ # zsh completion
+ install -D misc/__khal $out/share/zsh/site-functions/__khal
+
+ # man page
+ PATH="${python3.withPackages (ps: with ps; [ sphinx sphinxcontrib_newsfeed ])}/bin:$PATH" \
+ make -C doc man
+ install -Dm755 doc/build/man/khal.1 -t $out/share/man/man1
+
+ # desktop
+ install -Dm755 misc/khal.desktop -t $out/share/applications
+ '';
+
+ doCheck = !stdenv.isAarch64;
+
+ checkPhase = ''
+ py.test
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://lostpackets.de/khal/";
+ description = "CLI calendar application";
+ license = licenses.mit;
+ maintainers = with maintainers; [ gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/khal/skip-broken-test.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/khal/skip-broken-test.patch
new file mode 100644
index 000000000000..fc37f6acc86e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/khal/skip-broken-test.patch
@@ -0,0 +1,33 @@
+diff --git a/tests/cli_test.py b/tests/cli_test.py
+index 5e354a5..d8fbcd5 100644
+--- a/tests/cli_test.py
++++ b/tests/cli_test.py
+@@ -493,6 +493,7 @@ def test_import_invalid_choice_and_prefix(runner):
+ assert result.output == '09.04.-09.04. An Event\n'
+
+
++@pytest.mark.skip(reason="Mocking breaks in this testcase")
+ def test_import_from_stdin(runner, monkeypatch):
+ ics_data = 'This is some really fake icalendar data'
+
+diff --git a/tests/ui/test_editor.py b/tests/ui/test_editor.py
+index 27b7fa5..5978d72 100644
+--- a/tests/ui/test_editor.py
++++ b/tests/ui/test_editor.py
+@@ -1,5 +1,7 @@
+ import datetime as dt
+
++import pytest
++
+ import icalendar
+ from khal.ui.editor import RecurrenceEditor, StartEndEditor
+
+@@ -19,7 +21,7 @@ palette = {
+ 'edit': 'blue',
+ }
+
+-
++@pytest.mark.skip(reason="Mocking breaks in this testcase")
+ def test_popup(monkeypatch):
+ """making sure the popup calendar gets callend with the right inital value
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/khard/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/khard/default.nix
new file mode 100644
index 000000000000..a3e4c1309ffc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/khard/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, glibcLocales, python3 }:
+
+python3.pkgs.buildPythonApplication rec {
+ version = "0.17.0";
+ pname = "khard";
+
+ src = python3.pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "062nv4xkfsjc11k9m52dh6xjn9z68a4a6x1s8z05wwv4jbp1lkhn";
+ };
+
+ propagatedBuildInputs = with python3.pkgs; [
+ atomicwrites
+ configobj
+ vobject
+ ruamel_yaml
+ ruamel_base
+ unidecode
+ ];
+
+ postInstall = ''
+ install -D misc/zsh/_khard $out/share/zsh/site-functions/_khard
+ '';
+
+ preCheck = ''
+ # see https://github.com/scheibler/khard/issues/263
+ export COLUMNS=80
+ '';
+
+ meta = {
+ homepage = "https://github.com/scheibler/khard";
+ description = "Console carddav client";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/kiwix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/kiwix/default.nix
new file mode 100644
index 000000000000..ff6b1e9de2dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/kiwix/default.nix
@@ -0,0 +1,109 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig
+, zip, python, zlib, which, icu, libmicrohttpd, lzma, aria2, wget, bc
+, libuuid, libX11, libXext, libXt, libXrender, glib, dbus, dbus-glib
+, gtk2, gdk-pixbuf, pango, cairo, freetype, fontconfig, alsaLib, atk, cmake
+, xapian, ctpp2, zimlib
+}:
+
+with stdenv.lib;
+
+let
+ xulrunner64_tar = fetchurl {
+ url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.tar.bz2";
+ sha256 = "0i3m30gm5z7qmas14id6ypvbmnb2k7jhz8aby2wz5vvv49zqmx3s";
+ };
+ xulrunnersdk64_tar = fetchurl {
+ url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.sdk.tar.bz2";
+ sha256 = "0z90v7c4mq15g5klmsj8vs2r10fbygj3qzynx4952hkv8ihw8n3a";
+ };
+ xulrunner32_tar = fetchurl {
+ url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.tar.bz2";
+ sha256 = "0yln6pxz8f6b9wm9124sx049z8mgi17lgd63rcv2hnix825y8gjb";
+ };
+ xulrunnersdk32_tar = fetchurl {
+ url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.sdk.tar.bz2";
+ sha256 = "1h9vcbvf8wgds6i2z20y7krpys0mqsqhv1ijyfljanp6vyll9fvi";
+ };
+
+ xulrunner = if stdenv.hostPlatform.system == "x86_64-linux"
+ then { tar = xulrunner64_tar; sdk = xulrunnersdk64_tar; }
+ else { tar = xulrunner32_tar; sdk = xulrunnersdk32_tar; };
+
+ pugixml = stdenv.mkDerivation rec {
+ version = "1.2";
+ pname = "pugixml";
+
+ src = fetchurl {
+ url = "http://download.kiwix.org/dev/${pname}-${version}.tar.gz";
+ sha256 = "0sqk0vdwjq44jxbbkj1cy8qykrmafs1sickzldb2w2nshsnjshhg";
+ };
+
+ buildInputs = [ cmake ];
+
+ unpackPhase = ''
+ # not a nice src archive: all the files are in the root :(
+ mkdir ${pname}-${version}
+ cd ${pname}-${version}
+ tar -xf ${src}
+
+ # and the build scripts are in there :'(
+ cd scripts
+ '';
+ };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "kiwix";
+ version = "0.9";
+
+ src = fetchurl {
+ url = "http://download.kiwix.org/src/kiwix-${version}-src.tar.xz";
+ sha256 = "0577phhy2na59cpcqjgldvksp0jwczyg0l6c9ghnr19i375l7yqc";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ zip python zlib xapian which icu libmicrohttpd
+ lzma zimlib ctpp2 aria2 wget bc libuuid makeWrapper pugixml
+ ];
+
+ postUnpack = ''
+ cd kiwix*
+ mkdir static
+ cp Makefile.in static/
+
+ cd src/dependencies
+
+ tar -xf ${xulrunner.tar}
+ tar -xf ${xulrunner.sdk}
+
+ cd ../../..
+ '';
+
+ configureFlags = [
+ "--disable-staticbins"
+ ];
+
+ postInstall = ''
+ cp -r src/dependencies/xulrunner $out/lib/kiwix
+
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/lib/kiwix/xulrunner/xulrunner
+
+ rm $out/bin/kiwix
+ makeWrapper $out/lib/kiwix/kiwix-launcher $out/bin/kiwix \
+ --suffix LD_LIBRARY_PATH : ${makeLibraryPath [stdenv.cc.cc libX11 libXext libXt libXrender glib dbus dbus-glib gtk2 gdk-pixbuf pango cairo freetype fontconfig alsaLib atk]} \
+ --suffix PATH : ${aria2}/bin
+ '';
+
+ meta = {
+ description = "An offline reader for Web content";
+ homepage = "https://kiwix.org";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ robbinch ];
+ knownVulnerabilities = [
+ "CVE-2015-1032"
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/kjv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/kjv/default.nix
new file mode 100644
index 000000000000..307781931e97
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/kjv/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, fetchpatch }:
+
+let
+
+patch-base = "https://github.com/LukeSmithxyz/kjv/commit/";
+
+add-apocrypha = fetchpatch {
+ url = patch-base + "b92b7622285d10464f9274f11e740bef90705bbc.patch";
+ sha256 = "0n4sj8p9m10fcair4msc129jxkkx5whqzhjbr5k4lfgp6nb1zk8k";
+};
+
+add-install-target = fetchpatch {
+ url = patch-base + "f4ad73539eb73f1890f4b791d8d38dd95900a4a4.patch";
+ sha256 = "1yzj72i5fkzn2i4wl09q6jx7nwn2h4jwm49fc23nxfwchzar9m1q";
+};
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "kjv";
+ version = "unstable-2018-12-25";
+
+ src = fetchFromGitHub {
+ owner = "bontibon";
+ repo = pname;
+ rev = "fda81a610e4be0e7c5cf242de655868762dda1d4";
+ sha256 = "1favfcjvd3pzz1ywwv3pbbxdg7v37s8vplgsz8ag016xqf5ykqqf";
+ };
+
+ patches = [ add-apocrypha add-install-target ];
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "The Bible, King James Version";
+ homepage = "https://github.com/bontibon/kjv";
+ license = licenses.publicDomain;
+ maintainers = [ maintainers.jtobin ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/klayout/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/klayout/default.nix
new file mode 100644
index 000000000000..60905be3b1b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/klayout/default.nix
@@ -0,0 +1,63 @@
+{ lib, mkDerivation, fetchFromGitHub, fetchpatch
+, python, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
+, which, perl, makeWrapper
+}:
+
+mkDerivation rec {
+ pname = "klayout";
+ version = "0.26.8";
+
+ src = fetchFromGitHub {
+ owner = "KLayout";
+ repo = "klayout";
+ rev = "v${version}";
+ sha256 = "0pkhvxcfk70dnmgczyyq585mxrfwqai44ikshs4c1imh92z25llq";
+ };
+
+ postPatch = ''
+ substituteInPlace src/klayout.pri --replace "-Wno-reserved-user-defined-literal" ""
+ patchShebangs .
+ '';
+
+ nativeBuildInputs = [
+ which
+ ];
+
+ buildInputs = [
+ python
+ ruby
+ qtbase
+ qtmultimedia
+ qttools
+ qtxmlpatterns
+ ];
+
+ buildPhase = ''
+ runHook preBuild
+ mkdir -p $out/lib
+ ./build.sh -qt5 -prefix $out/lib -j$NIX_BUILD_CORES
+ runHook postBuild
+ '';
+
+ postBuild = ''
+ mkdir $out/bin
+ mv $out/lib/klayout $out/bin/
+ '';
+
+ NIX_CFLAGS_COMPILE = [ "-Wno-parentheses" ];
+
+ dontInstall = true; # Installation already happens as part of "build.sh"
+
+ # Fix: "gsiDeclQMessageLogger.cc:126:42: error: format not a string literal
+ # and no format arguments [-Werror=format-security]"
+ hardeningDisable = [ "format" ];
+
+ meta = with lib; {
+ description = "High performance layout viewer and editor with support for GDS and OASIS";
+ license = with licenses; [ gpl3 ];
+ homepage = "https://www.klayout.de/";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ knedlsepp ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/kondo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/kondo/default.nix
new file mode 100644
index 000000000000..f47458f0f3ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/kondo/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "kondo";
+ version = "0.4";
+
+ src = fetchFromGitHub {
+ owner = "tbillington";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0kl2zn6ir3w75ny25ksgxl93vlyb13gzx2795zyimqqnsrdpbbrf";
+ };
+
+ cargoSha256 = "1ax81a2828z3yla1psg5xi8ild65m6zcsvx48ncz902mpzqlj92b";
+
+ meta = with stdenv.lib; {
+ description = "Save disk space by cleaning unneeded files from software projects";
+ homepage = "https://github.com/tbillington/kondo";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Br1ght0ne ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/koreader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/koreader/default.nix
new file mode 100644
index 000000000000..4ffd3f6fbf65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/koreader/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, fetchurl
+, makeWrapper
+, dpkg
+, luajit
+, gtk3-x11
+, SDL2
+, glib
+, noto-fonts
+, nerdfonts }:
+let font-droid = nerdfonts.override { fonts = [ "DroidSansMono" ]; };
+in stdenv.mkDerivation rec {
+ pname = "koreader";
+ version = "2020.11";
+
+ src = fetchurl {
+ url =
+ "https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
+ sha256 = "15nw8kyjyhqlr742gkpzn1b9906rdm6cssnc6jbbph5pjdlzspc4";
+ };
+
+ sourceRoot = ".";
+ nativeBuildInputs = [ makeWrapper dpkg ];
+ buildInputs = [ luajit gtk3-x11 SDL2 glib ];
+ unpackCmd = "dpkg-deb -x ${src} .";
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out
+ cp -R usr/* $out/
+ cp ${luajit}/bin/luajit $out/lib/koreader/luajit
+ find $out -xtype l -delete
+ for i in ${noto-fonts}/share/fonts/truetype/noto/*; do
+ ln -s "$i" $out/lib/koreader/fonts/noto/
+ done
+ ln -s "${font-droid}/share/fonts/opentype/NerdFonts/Droid Sans Mono Nerd Font Complete Mono.otf" $out/lib/koreader/fonts/droid/DroidSansMono.ttf
+ wrapProgram $out/bin/koreader --prefix LD_LIBRARY_PATH : ${
+ stdenv.lib.makeLibraryPath [ gtk3-x11 SDL2 glib ]
+ }
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/koreader/koreader";
+ description =
+ "An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices";
+ platforms = intersectLists platforms.x86_64 platforms.linux;
+ license = licenses.agpl3;
+ maintainers = [ maintainers.contrun ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/krename/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/krename/default.nix
new file mode 100644
index 000000000000..c1e031b7277d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/krename/default.nix
@@ -0,0 +1,35 @@
+{
+ mkDerivation, fetchurl, lib,
+ extra-cmake-modules, kdoctools, wrapGAppsHook,
+ kconfig, kinit, kjsembed, taglib, exiv2, podofo,
+ kcrash
+}:
+
+let
+ pname = "krename";
+ version = "5.0.1";
+
+in mkDerivation rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+ sha256 = "0zbadxjp13jqxgb58wslhm0wy2lhpdq1bgbvyhyn21mssfppib6a";
+ };
+
+ buildInputs = [ taglib exiv2 podofo ];
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+
+ propagatedBuildInputs = [ kconfig kcrash kinit kjsembed ];
+
+ NIX_LDFLAGS = "-ltag";
+
+ meta = with lib; {
+ description = "A powerful batch renamer for KDE";
+ homepage = "https://kde.org/applications/utilities/krename/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ peterhoeg ];
+ inherit (kconfig.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/krusader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/krusader/default.nix
new file mode 100644
index 000000000000..585dfe3e04f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/krusader/default.nix
@@ -0,0 +1,26 @@
+{
+ mkDerivation, fetchurl, lib,
+ extra-cmake-modules, kdoctools, wrapGAppsHook,
+ karchive, kconfig, kcrash, kguiaddons, kinit, kparts, kwindowsystem
+}:
+
+mkDerivation rec {
+ pname = "krusader";
+ version = "2.7.2";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+ sha256 = "02b1jz5a7cjr13v6c7fczrhs1xmg1krnva5fxk8x2bf4nd1rm8s1";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+
+ propagatedBuildInputs = [ karchive kconfig kcrash kguiaddons kinit kparts kwindowsystem ];
+
+ meta = with lib; {
+ description = "Norton/Total Commander clone for KDE";
+ homepage = "http://www.krusader.org";
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ sander turion ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix
new file mode 100644
index 000000000000..9538329bf9b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, extra-cmake-modules
+, kactivities
+, qtbase
+}:
+
+mkDerivation rec {
+ pname = "KSmoothDock";
+ version = "6.2";
+
+ src = fetchFromGitHub {
+ owner = "dangvd";
+ repo = "ksmoothdock";
+ rev = "v${version}";
+ sha256 = "182x47cymgnp5xisa0xx93hmd5wrfigy8zccrr23p4r9hp8xbnam";
+ };
+
+ patches = [
+ # Fixed hard coded installation path to use CMAKE_INSTALL_BINDIR and CMAKE_INSTALL_PREFIX instead
+ (fetchpatch {
+ url = "https://github.com/dangvd/ksmoothdock/commit/00799bef8a1c1fe61ef9274866267d9fe9194041.patch";
+ sha256 = "1nmb7gf1ggzicxz8k4fd67xhwjy404myqzjpgjym66wqxm0arni4";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+ buildInputs = [ kactivities qtbase ];
+
+ cmakeDir = "../src";
+
+ meta = with lib; {
+ description = "A cool desktop panel for KDE Plasma 5";
+ license = licenses.mit;
+ homepage = "https://dangvd.github.io/ksmoothdock/";
+ maintainers = with maintainers; [ shamilton ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/kupfer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/kupfer/default.nix
new file mode 100644
index 000000000000..f2744bf23ea5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/kupfer/default.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, fetchurl
+, intltool
+, python3Packages
+, gobject-introspection
+, gtk3
+, libwnck3
+, keybinder3
+, wrapGAppsHook
+, wafHook
+}:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "kupfer";
+ version = "319";
+
+ format = "other";
+
+ src = fetchurl {
+ url = "https://github.com/kupferlauncher/kupfer/releases/download/v${version}/kupfer-v${version}.tar.xz";
+ sha256 = "0c9xjx13r8ckfr4az116bhxsd3pk78v04c3lz6lqhraak0rp4d92";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook intltool
+ # For setup hook
+ gobject-introspection wafHook
+ ];
+ buildInputs = [ docutils libwnck3 keybinder3 ];
+ propagatedBuildInputs = [ pygobject3 gtk3 pyxdg dbus-python pycairo ];
+
+ # without strictDeps kupfer fails to build: Could not find the python module 'gi.repository.Gtk'
+ # see https://github.com/NixOS/nixpkgs/issues/56943 for details
+ strictDeps = false;
+
+ postInstall = ''
+ gappsWrapperArgs+=(
+ "--prefix" "PYTHONPATH" : "${makePythonPath propagatedBuildInputs}"
+ "--set" "PYTHONNOUSERSITE" "1"
+ )
+ '';
+
+ doCheck = false; # no tests
+
+ meta = with stdenv.lib; {
+ description = "A smart, quick launcher";
+ homepage = "https://kupferlauncher.github.io/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ cobbal ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/latte-dock/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
new file mode 100644
index 000000000000..424da3ad3605
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchurl
+, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash, knewstuff }:
+
+mkDerivation rec {
+ pname = "latte-dock";
+ version = "0.9.11";
+
+ src = fetchurl {
+ url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
+ sha256 = "0x7a93a7axsa0fzpbkkv1z722k9za4p51xcpzdpnh5ih1zij0csi";
+ name = "${pname}-${version}.tar.xz";
+ };
+
+ buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp xorg.libSM ];
+
+ nativeBuildInputs = [ extra-cmake-modules cmake karchive kwindowsystem
+ qtx11extras kcrash knewstuff ];
+
+
+
+ meta = with lib; {
+ description = "Dock-style app launcher based on Plasma frameworks";
+ homepage = "https://github.com/psifidotos/Latte-Dock";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.benley maintainers.ysndr ];
+ };
+
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/lenmus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/lenmus/default.nix
new file mode 100644
index 000000000000..532166cf6fb0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/lenmus/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, pkgconfig, fetchFromGitHub, fetchpatch
+, cmake, boost
+, portmidi, sqlite
+, freetype, libpng, pngpp, zlib
+, wxGTK30, wxsqlite3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "lenmus";
+ version = "5.4.2";
+
+ src = fetchFromGitHub {
+ owner = "lenmus";
+ repo = "lenmus";
+ rev = "Release_${version}";
+ sha256 = "1n639xr1qxx6rhqs0c6sjxp3bv8cwkmw1vfk1cji7514gj2a9v3p";
+ };
+
+ enableParallelBuilding = true;
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/lenmus/lenmus/commit/421760d84694a0e6e72d0e9b1d4fd30a7e129c6f.patch";
+ sha256 = "1z1wwh0pcr8w1zlr8swx99si9y2kxx5bmavgwvy6bvdhxgm58yqs";
+ })
+ (fetchpatch {
+ url = "https://github.com/lenmus/lenmus/commit/6613d20d4051effc782203c9c6d92962a3f66b5f.patch";
+ sha256 = "01vvzzpamv90jpqbbq1f2m2b4gb9xab9z70am8i41d90nqvg6agn";
+ })
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cmake boost
+ portmidi sqlite
+ freetype libpng pngpp zlib
+ wxGTK30 wxsqlite3
+ ];
+
+ meta = with stdenv.lib; {
+ description = "LenMus Phonascus is a program for learning music";
+ longDescription = ''
+ LenMus Phonascus is a free open source program (GPL v3) for learning music.
+ It allows you to focus on specific skills and exercises, on both theory and aural training.
+ The different activities can be customized to meet your needs
+ '';
+ homepage = "http://www.lenmus.org/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ ramkromberg ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/libosmocore/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/libosmocore/default.nix
new file mode 100644
index 000000000000..8b36d384e153
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/libosmocore/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, pcsclite, talloc, python2, gnutls
+}:
+
+stdenv.mkDerivation rec {
+ pname = "libosmocore";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ owner = "osmocom";
+ repo = "libosmocore";
+ rev = version;
+ sha256 = "1535y6r4csvslrxcki80ya6zhhc5jw2nvy9bymb55ln77pf853vg";
+ };
+
+ propagatedBuildInputs = [
+ talloc
+ ];
+
+ nativeBuildInputs = [
+ autoreconfHook pkgconfig
+ ];
+
+ buildInputs = [
+ pcsclite python2 gnutls
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Set of Osmocom core libraries";
+ homepage = "https://github.com/osmocom/libosmocore";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/librecad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/librecad/default.nix
new file mode 100644
index 000000000000..0df0f86ef456
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/librecad/default.nix
@@ -0,0 +1,94 @@
+{ boost
+, fetchFromGitHub
+, installShellFiles
+, mkDerivationWith
+, muparser
+, pkgconfig
+, qmake
+, qtbase
+, qtsvg
+, qttools
+, runtimeShell
+, gcc8Stdenv
+}:
+
+let
+ stdenv = gcc8Stdenv;
+in
+
+# Doesn't build with gcc9
+mkDerivationWith stdenv.mkDerivation rec {
+ pname = "librecad";
+ version = "2.2.0-rc1";
+
+ src = fetchFromGitHub {
+ owner = "LibreCAD";
+ repo = "LibreCAD";
+ rev = version;
+ sha256 = "0kwj838hqzbw95gl4x6scli9gj3gs72hdmrrkzwq5rjxam18k3f3";
+ };
+
+ patches = [
+ ./fix_qt_5_11_build.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace scripts/postprocess-unix.sh \
+ --replace /bin/sh ${runtimeShell}
+
+ substituteInPlace librecad/src/lib/engine/rs_system.cpp \
+ --replace /usr/share $out/share
+
+ substituteInPlace librecad/src/main/qc_applicationwindow.cpp \
+ --replace __DATE__ 0
+ '';
+
+ qmakeFlags = [
+ "MUPARSER_DIR=${muparser}"
+ "BOOST_DIR=${boost.dev}"
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm555 -t $out/bin unix/{librecad,ttf2lff}
+ install -Dm444 -t $out/share/applications desktop/librecad.desktop
+ install -Dm644 -t $out/share/pixmaps librecad/res/main/librecad.png
+ install -Dm444 desktop/librecad.sharedmimeinfo $out/share/mime/packages/librecad.xml
+ install -Dm444 desktop/graphics_icons_and_splash/Icon\ LibreCAD/Icon_Librecad.svg \
+ $out/share/icons/hicolor/scalable/apps/librecad.svg
+
+ installManPage desktop/librecad.?
+
+ cp -R unix/resources $out/share/librecad
+
+ runHook postInstall
+ '';
+
+ buildInputs = [
+ boost
+ muparser
+ qtbase
+ qtsvg
+ ];
+
+ nativeBuildInputs = [
+ installShellFiles
+ pkgconfig
+ qmake
+ qttools
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "2D CAD package based on Qt";
+ homepage = "https://librecad.org";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [
+ kiwi
+ viric
+ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch
new file mode 100644
index 000000000000..04701e5ab1ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch
@@ -0,0 +1,36 @@
+diff --git a/librecad/src/ui/forms/qg_commandwidget.cpp b/librecad/src/ui/forms/qg_commandwidget.cpp
+index 835e47d..2c878e8 100644
+--- a/librecad/src/ui/forms/qg_commandwidget.cpp
++++ b/librecad/src/ui/forms/qg_commandwidget.cpp
+@@ -27,6 +27,7 @@
+
+ #include <algorithm>
+
++#include <QAction>
+ #include <QKeyEvent>
+ #include <QFileDialog>
+ #include <QSettings>
+diff --git a/librecad/src/ui/generic/colorwizard.cpp b/librecad/src/ui/generic/colorwizard.cpp
+index 2beaceb..84068ad 100644
+--- a/librecad/src/ui/generic/colorwizard.cpp
++++ b/librecad/src/ui/generic/colorwizard.cpp
+@@ -27,6 +27,7 @@
+ #include "colorwizard.h"
+ #include "ui_colorwizard.h"
+
++#include <QAction>
+ #include <QColorDialog>
+ #include <QLineEdit>
+ #include <QListWidget>
+diff --git a/librecad/src/ui/generic/widgetcreator.cpp b/librecad/src/ui/generic/widgetcreator.cpp
+index 7c35144..0e394f2 100644
+--- a/librecad/src/ui/generic/widgetcreator.cpp
++++ b/librecad/src/ui/generic/widgetcreator.cpp
+@@ -27,6 +27,7 @@
+ #include "widgetcreator.h"
+ #include "ui_widgetcreator.h"
+
++#include <QActionGroup>
+ #include <QSettings>
+ #include <QLineEdit>
+ #include <QPushButton>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/lifelines/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/lifelines/default.nix
new file mode 100644
index 000000000000..7207dea9d522
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/lifelines/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, gettext, libiconv, bison, ncurses, perl, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "lifelines";
+ version = "unstable-2019-05-07";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "43f29285ed46fba322b6a14322771626e6b02c59";
+ sha256 = "1agszzlmkxmznpc1xj0vzxkskrcfagfjvqsdyw1yp5yg6bsq272y";
+ };
+
+ buildInputs = [
+ gettext
+ libiconv
+ ncurses
+ perl
+ ];
+ nativeBuildInputs = [ autoreconfHook bison ];
+
+ meta = with stdenv.lib; {
+ description = "Genealogy tool with ncurses interface";
+ homepage = "https://lifelines.github.io/lifelines/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ disassembler ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/lighthouse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/lighthouse/default.nix
new file mode 100644
index 000000000000..9e651c59d4eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/lighthouse/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, pkgconfig
+, libX11, libxcb, cairo, gtk2, pango, python27, python3
+}:
+
+stdenv.mkDerivation rec {
+ name = "lighthouse-${date}";
+ date = "2016-07-20";
+
+ src = fetchFromGitHub {
+ owner = "emgram769";
+ repo = "lighthouse";
+ rev = "d1813ef8e2aca9f6b3609b1e0c6d1d5ee683281a";
+ sha256 = "0v6ylm49f1b44zwq1y1gqxp2csyqblplr24ajllc2q3r0sc9m1ys";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ libX11 libxcb cairo gtk2 pango python27 python3
+ ];
+
+ makeFlags = [ "PREFIX=\${out}" ];
+
+ preFixup = "chmod +x $out/share/lighthouse/.config/lighthouse/google.py";
+
+ postFixup = "chmod -x $out/share/lighthouse/.config/lighthouse/google.py";
+
+ meta = with stdenv.lib; {
+ description = "A simple flexible popup dialog to run on X";
+ homepage = "https://github.com/emgram769/lighthouse";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ramkromberg ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/llpp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/llpp/default.nix
new file mode 100644
index 000000000000..c16322ad84fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/llpp/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11, jbig2dec, openjpeg, libjpeg , lcms2, harfbuzz,
+libGLU, libGL, gumbo, freetype, zlib, xclip, inotify-tools, procps }:
+
+assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
+
+stdenv.mkDerivation rec {
+ pname = "llpp";
+ version = "33";
+
+ src = fetchgit {
+ url = "git://repo.or.cz/llpp.git";
+ rev = "v${version}";
+ sha256 = "0shqzhaflm2yhkx6c0csq9lxp1s1r7lh5kgpx9q5k06xya2a7yvs";
+ fetchSubmodules = false;
+ };
+
+ patches = (substituteAll {
+ inherit version;
+ src = ./fix-build-bash.patch;
+ });
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ ocaml mupdf libX11 libGLU libGL freetype zlib gumbo jbig2dec openjpeg libjpeg lcms2 harfbuzz ];
+
+ dontStrip = true;
+
+ configurePhase = ''
+ mkdir -p build/mupdf/thirdparty
+ ln -s ${freetype.dev} build/mupdf/thirdparty/freetype
+ '';
+
+ buildPhase = ''
+ bash ./build.bash build
+ '';
+
+ installPhase = ''
+ install -d $out/bin
+ install build/llpp $out/bin
+ install misc/llpp.inotify $out/bin/llpp.inotify
+
+ wrapProgram $out/bin/llpp \
+ --prefix PATH ":" "${xclip}/bin"
+
+ wrapProgram $out/bin/llpp.inotify \
+ --prefix PATH ":" "$out/bin" \
+ --prefix PATH ":" "${inotify-tools}/bin" \
+ --prefix PATH ":" "${procps}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://repo.or.cz/w/llpp.git";
+ description = "A MuPDF based PDF pager written in OCaml";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub enzime ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch
new file mode 100644
index 000000000000..c12828f2d94d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch
@@ -0,0 +1,80 @@
+diff --git a/build.bash b/build.bash
+index 7c278b6..41494c5 100755
+with manual adjustments
+--- a/build.bash
++++ b/build.bash
+@@ -30,7 +30,6 @@ srcd="$(dirname $0)"
+ mudir=$outd/mupdf
+ muinc="-I $mudir/include -I $mudir/thirdparty/freetype/include"
+
+-test -d "$mudir" || die muPDF not found, consult $(dirname $0)/BUILDING
+
+ mkdir -p $outd/{$wsid,lablGL}
+ :>$outd/ordered
+@@ -41,12 +40,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; }
+ mulibst="$mudir/build/$mbt/libs"
+ mulibs="$mudir/build/$mbt/libmupdf.a $mudir/build/$mbt/libmupdf-third.a"
+
+-keycmd="(cd $mudir && make -q build=$mbt libs && echo); digest $mulibs"
+-isfresh "$mulibst" "$(eval $keycmd)" || (
+- make -C "$mudir" build=$mbt -j $mjobs libs
+- eval $keycmd >${mulibst}.past
+-) && vecho "fresh mupdf"
+-
+ oincs() {
+ local i=
+ local incs1=
+@@ -100,35 +93,6 @@ mflags() {
+ }
+
+ overs="$(ocamlc -vnum 2>/dev/null)" || overs=""
+-test "$overs" = "4.11.1" || {
+- url=https://caml.inria.fr/pub/distrib/ocaml-4.11/ocaml-4.11.1.tar.xz
+- txz=$outd/$(basename $url)
+- keycmd="printf $url; digest $txz;"
+- isfresh $txz "$(eval $keycmd)" || {
+- executable_p() { command -v "$1" >/dev/null 2>&1; }
+- if executable_p wget; then dl() { wget -q "$1" -O "$2"; }
+- elif executable_p curl; then dl() { curl -L "$1" -o "$2"; }
+- else die "no program to fetch remote urls found"
+- fi
+- dl $url $txz
+- eval $keycmd >$txz.past
+- } && vecho "fresh $txz"
+- absprefix=$(cd $outd &>/dev/null; pwd -P)
+- export PATH=$absprefix/bin:$PATH
+- ocamlc=$absprefix/bin/ocamlc
+- keycmd="printf $url; digest $ocamlc;"
+- isfresh $ocamlc "$(eval $keycmd)" || (
+- tar xf $txz -C $outd
+- bn=$(basename $url)
+- cd $outd/${bn%.tar.xz}
+- ./configure --disable-ocamldoc --disable-ocamltest \
+- --enable-debugger=no --prefix=$absprefix
+- make -j $mjobs world
+- make install
+- eval $keycmd >$absprefix/bin/ocamlc.past
+- ) && vecho "fresh ocamlc"
+- overs=$(ocamlc -vnum 2>/dev/null)
+-}
+
+ ccomp=${LLPP_CC-$(ocamlc -config | grep "^c_compiler: " | \
+ { read _ c; echo $c; })}
+@@ -243,7 +208,7 @@ bobjc() {
+ } && vecho "fresh $o"
+ }
+
+-ver=$(cd $srcd && git describe --tags --dirty) || ver=unknown
++ver=@version@
+
+ cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)"
+ keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml"
+@@ -291,7 +256,7 @@ for m in ml_gl ml_glarray ml_raw; do
+ done
+
+ libs="str.cma unix.cma"
+-clibs="-L$mudir/build/$mbt -lmupdf -lmupdf-third -lpthread"
++clibs="-lmupdf -lmupdf-third -lfreetype -lgumbo -ljpeg -lopenjp2 -ljbig2dec -llcms2 -lharfbuzz -lpthread -lz"
+ if $darwin; then
+ mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; })
+ clibs="$clibs -framework Cocoa -framework OpenGL"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/loxodo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/loxodo/default.nix
new file mode 100644
index 000000000000..4b201c66fe5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/loxodo/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, python27Packages, fetchgit }:
+let
+ py = python27Packages;
+ python = py.python;
+in
+py.buildPythonApplication {
+ name = "loxodo-0.20150124";
+
+ src = fetchgit {
+ url = "https://github.com/sommer/loxodo.git";
+ rev = "6c56efb4511fd6f645ad0f8eb3deafc8071c5795";
+ sha256 = "1cg0dfcv57ps54f1a0ksib7hgkrbdi9q699w302xyyfyvjcb5dd2";
+ };
+
+ propagatedBuildInputs = with py; [ wxPython ];
+
+ postInstall = ''
+ mv $out/bin/loxodo.py $out/bin/loxodo
+ mkdir -p $out/share/applications
+ cat > $out/share/applications/loxodo.desktop <<EOF
+ [Desktop Entry]
+ Type=Application
+ Exec=$out/bin/loxodo
+ Icon=$out/lib/${python.libPrefix}/site-packages/resources/loxodo-icon.png
+ Name=Loxodo
+ GenericName=Password Vault
+ Categories=Application;Other;
+ EOF
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Password Safe V3 compatible password vault";
+ homepage = "https://www.christoph-sommer.de/loxodo/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix
new file mode 100644
index 000000000000..b30d652584f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, mkDerivation, lib, fetchFromGitHub, cmake
+, boost, libvorbis, libsndfile, minizip, gtest, qtwebkit }:
+
+mkDerivation rec {
+ pname = "lsd2dsl";
+ version = "0.5.2";
+
+ src = fetchFromGitHub {
+ owner = "nongeneric";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0s0la6zkg584is93p4nj1ha3pbnvadq84zgsv8nym3r35n7k8czi";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ boost libvorbis libsndfile minizip gtest qtwebkit ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=unused-result -Wno-error=missing-braces";
+
+ installPhase = ''
+ install -Dm755 console/lsd2dsl gui/lsd2dsl-qtgui -t $out/bin
+ '' + lib.optionalString stdenv.isDarwin ''
+ wrapQtApp $out/bin/lsd2dsl
+ wrapQtApp $out/bin/lsd2dsl-qtgui
+ '';
+
+ meta = with lib; {
+ homepage = "https://rcebits.com/lsd2dsl/";
+ description = "Lingvo dictionaries decompiler";
+ longDescription = ''
+ A decompiler for ABBYY Lingvo’s proprietary dictionaries.
+ '';
+ license = licenses.mit;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix
new file mode 100644
index 000000000000..2ceb8e91def8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, libusb1, pkgconfig, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "ltwheelconf";
+ version = "0.2.7";
+
+ src = fetchFromGitHub {
+ owner = "thk";
+ repo = "ltwheelconf";
+ rev = "df55451f059d593b0259431662612ab5c2bef859";
+ sha256 = "1fsz7k73yln987gcx1jvb5irxfbp1x2c457a60a8yap27nkp5y2w";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libusb1 ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ltwheelconf $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/thk/LTWheelConf";
+ description = "Logitech wheels configuration tool";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.ebzzry ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/lutris/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/lutris/default.nix
new file mode 100644
index 000000000000..b3a68cffeff1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/lutris/default.nix
@@ -0,0 +1,119 @@
+{ buildPythonApplication, lib, fetchFromGitHub, fetchpatch
+
+# build inputs
+, atk
+, gdk-pixbuf
+, glib-networking
+, gnome-desktop
+, gobject-introspection
+, gst_all_1
+, gtk3
+, libnotify
+, pango
+, webkitgtk
+, wrapGAppsHook
+
+# python dependencies
+, dbus-python
+, distro
+, evdev
+, pillow
+, pygobject3
+, pyyaml
+, requests
+, keyring
+
+# commands that lutris needs
+, xrandr
+, pciutils
+, psmisc
+, glxinfo
+, vulkan-tools
+, xboxdrv
+, pulseaudio
+, p7zip
+, xgamma
+, libstrangle
+, wine
+, fluidsynth
+, xorgserver
+, xorg
+}:
+
+let
+ # See lutris/util/linux.py
+ binPath = lib.makeBinPath [
+ xrandr
+ pciutils
+ psmisc
+ glxinfo
+ vulkan-tools
+ xboxdrv
+ pulseaudio
+ p7zip
+ xgamma
+ libstrangle
+ wine
+ fluidsynth
+ xorgserver
+ xorg.setxkbmap
+ xorg.xkbcomp
+ ];
+
+ gstDeps = with gst_all_1; [
+ gst-libav
+ gst-plugins-bad
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-ugly
+ gstreamer
+ ];
+
+in buildPythonApplication rec {
+ pname = "lutris-original";
+ version = "0.5.7.1";
+
+ src = fetchFromGitHub {
+ owner = "lutris";
+ repo = "lutris";
+ rev = "v${version}";
+ sha256 = "12ispwkbbm5aq263n3bdjmjfkpwplizacnqs2c0wnag4zj4kpm29";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+ buildInputs = [
+ atk
+ gdk-pixbuf
+ glib-networking
+ gnome-desktop
+ gobject-introspection
+ gtk3
+ libnotify
+ pango
+ webkitgtk
+ ] ++ gstDeps;
+
+ propagatedBuildInputs = [
+ evdev distro pyyaml pygobject3 requests pillow dbus-python keyring
+ ];
+
+ # avoid double wrapping
+ dontWrapGApps = true;
+ makeWrapperArgs = [
+ "--prefix PATH : ${binPath}"
+ ''''${gappsWrapperArgs[@]}''
+ ];
+ # needed for glib-schemas to work correctly (will crash on dialogues otherwise)
+ # see https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ preCheck = "export HOME=$PWD";
+
+ meta = with lib; {
+ homepage = "https://lutris.net";
+ description = "Open Source gaming platform for GNU/Linux";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ chiiruno ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
new file mode 100644
index 000000000000..d7eabae0e8e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
@@ -0,0 +1,120 @@
+{ lib, buildFHSUserEnv, lutris-unwrapped
+, steamSupport ? true
+}:
+
+let
+
+ qt5Deps = pkgs: with pkgs.qt5; [ qtbase qtmultimedia ];
+ gnome3Deps = pkgs: with pkgs; [ gnome3.zenity gtksourceview gnome3.gnome-desktop gnome3.libgnome-keyring webkitgtk ];
+ xorgDeps = pkgs: with pkgs.xorg; [
+ libX11 libXrender libXrandr libxcb libXmu libpthreadstubs libXext libXdmcp
+ libXxf86vm libXinerama libSM libXv libXaw libXi libXcursor libXcomposite
+ ];
+
+in buildFHSUserEnv {
+ name = "lutris";
+
+ runScript = "lutris";
+
+ targetPkgs = pkgs: with pkgs; [
+ lutris-unwrapped
+
+ # Adventure Game Studio
+ allegro dumb
+
+ # Desmume
+ lua agg soundtouch openal desktop-file-utils atk
+
+ # DGen // TODO: libarchive is broken
+
+ # Dolphin
+ bluez ffmpeg_3 gettext portaudio wxGTK30 miniupnpc mbedtls lzo sfml gsm
+ wavpack orc nettle gmp pcre vulkan-loader
+
+ # DOSBox
+ SDL_net SDL_sound
+
+ # GOG
+ glib-networking
+
+ # Higan // TODO: "higan is not available for the x86_64 architecture"
+
+ # Libretro
+ fluidsynth hidapi mesa libdrm
+
+ # MAME
+ qt48 fontconfig SDL2_ttf
+
+ # Mednafen
+ freeglut mesa_glu
+
+ # MESS
+ expat
+
+ # Minecraft
+ nss
+
+ # Mupen64Plus
+ boost dash
+
+ # Osmose
+ qt4
+
+ # PPSSPP
+ glew snappy
+
+ # Redream // "redream is not available for the x86_64 architecture"
+
+ # ResidualVM
+ flac
+
+ # rpcs3 // TODO: "error while loading shared libraries: libz.so.1..."
+ llvm
+
+ # ScummVM
+ nasm sndio
+
+ # Snes9x
+ epoxy minizip
+
+ # Vice
+ bison flex
+
+ # WINE
+ xorg.xrandr perl which p7zip gnused gnugrep psmisc opencl-headers
+
+ # ZDOOM
+ soundfont-fluid bzip2 game-music-emu
+ ] ++ qt5Deps pkgs
+ ++ gnome3Deps pkgs
+ ++ lib.optional steamSupport pkgs.steam;
+
+ multiPkgs = pkgs: with pkgs; [
+ # Common
+ libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio
+ libao libevdev udev libgcrypt libxml2 libusb-compat-0_1 libpng libmpeg2 libv4l
+ libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio
+ libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib
+ alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
+ readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd
+ vulkan-loader xdg_utils sqlite gnutls p11-kit libbsd harfbuzz
+
+ # PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64"
+
+ # WINE
+ cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap
+ ocl-icd util-linux libkrb5
+
+ # Proton
+ libselinux
+
+ # Winetricks
+ fribidi
+ ] ++ xorgDeps pkgs;
+
+ extraInstallCommands = ''
+ mkdir -p $out/share
+ ln -sf ${lutris-unwrapped}/share/applications $out/share
+ ln -sf ${lutris-unwrapped}/share/icons $out/share
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/lyx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/lyx/default.nix
new file mode 100644
index 000000000000..3c9158750968
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/lyx/default.nix
@@ -0,0 +1,45 @@
+{ fetchurl, lib, mkDerivation, pkgconfig, python, file, bc
+, qtbase, qtsvg, hunspell, makeWrapper #, mythes, boost
+}:
+
+mkDerivation rec {
+ version = "2.3.6";
+ pname = "lyx";
+
+ src = fetchurl {
+ url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz";
+ sha256 = "160whjwwrmxizdakjlkf9xc86bhqfnslw47fixgqq4qhbapcxxkg";
+ };
+
+ # LaTeX is used from $PATH, as people often want to have it with extra pkgs
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ qtbase qtsvg python file/*for libmagic*/ bc
+ hunspell makeWrapper # enchant
+ ];
+
+ configureFlags = [
+ "--enable-qt5"
+ #"--without-included-boost"
+ /* Boost is a huge dependency from which 1.4 MB of libs would be used.
+ Using internal boost stuff only increases executable by around 0.2 MB. */
+ #"--without-included-mythes" # such a small library isn't worth a separate package
+ ];
+
+ enableParallelBuilding = true;
+ doCheck = true;
+
+ # python is run during runtime to do various tasks
+ qtWrapperArgs = [
+ " --prefix PATH : ${python}/bin"
+ ];
+
+ meta = with lib; {
+ description = "WYSIWYM frontend for LaTeX, DocBook";
+ homepage = "http://www.lyx.org";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.vcunat ];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/madonctl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/madonctl/default.nix
new file mode 100644
index 000000000000..a61c66d93746
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/madonctl/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "madonctl";
+ version = "1.1.0";
+
+ goPackagePath = "github.com/McKael/madonctl";
+
+ src = fetchFromGitHub {
+ owner = "McKael";
+ repo = "madonctl";
+ rev = "v${version}";
+ sha256 = "1dnc1xaafhwhhf5afhb0wc2wbqq0s1r7qzj5k0xzc58my541gadc";
+ };
+
+ # How to update:
+ # go get -u github.com/McKael/madonctl
+ # cd $GOPATH/src/github.com/McKael/madonctl
+ # git checkout v<version-number>
+ # go2nix save
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "CLI for the Mastodon social network API";
+ homepage = "https://github.com/McKael/madonctl";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/madonctl/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/madonctl/deps.nix
new file mode 100644
index 000000000000..9f94bb09ce4e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/madonctl/deps.nix
@@ -0,0 +1,228 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.0
+[
+ {
+ goPackagePath = "github.com/McKael/madon";
+ fetch = {
+ type = "git";
+ url = "https://github.com/McKael/madon";
+ rev = "e580cd41ac42bbb0b2ea5b3843b3f1f854db357c";
+ sha256 = "0jvvfkf3wlzisvcq54xv3jxncx178ks5wxd6cx8k8215437b3hra";
+ };
+ }
+ {
+ goPackagePath = "github.com/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "4da3e2cfbabc9f751898f250b49f2439785783a1";
+ sha256 = "1y2l9jaf99j6gidcfdgq3hifxyiwv4f7awpll80p170ixdbqxvl3";
+ };
+ }
+ {
+ goPackagePath = "github.com/ghodss/yaml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ghodss/yaml";
+ rev = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7";
+ sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
+ };
+ }
+ {
+ goPackagePath = "github.com/gorilla/websocket";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gorilla/websocket";
+ rev = "a91eba7f97777409bc2c443f5534d41dd20c5720";
+ sha256 = "13cg6wwkk2ddqbm0nh9fpx4mq7f6qym12ch4lvs53n028ycdgw87";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/hcl";
+ rev = "392dba7d905ed5d04a5794ba89f558b27e2ba1ca";
+ sha256 = "1rfm67kma2hpakabf7hxlj196jags4rpjpcirwg4kan4g9b6j0kb";
+ };
+ }
+ {
+ goPackagePath = "github.com/kr/text";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/text";
+ rev = "7cafcd837844e784b526369c9bce262804aebc60";
+ sha256 = "0br693pf6vdr1sfvzdz6zxq7hjpdgci0il4wj0v636r8lyy21vsx";
+ };
+ }
+ {
+ goPackagePath = "github.com/m0t0k1ch1/gomif";
+ fetch = {
+ type = "git";
+ url = "https://github.com/m0t0k1ch1/gomif";
+ rev = "f5864f63e1ed5a138f015cc2cb71a2e99c148d21";
+ sha256 = "0djg8chax1g0m02xz84ic19758jzv5m50b7vpwjkpjk3181j5z9k";
+ };
+ }
+ {
+ goPackagePath = "github.com/magiconair/properties";
+ fetch = {
+ type = "git";
+ url = "https://github.com/magiconair/properties";
+ rev = "51463bfca2576e06c62a8504b5c0f06d61312647";
+ sha256 = "0d7hr78y8gg2mrm5z4jjgm2w3awkznz383b7wvyzk3l33jw6i288";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "fc9e8d8ef48496124e79ae0df75490096eccf6fe";
+ sha256 = "1r5f9gkavkb1w6sr0qs5kj16706xirl3qnlq3hqpszkw9w27x65a";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/mapstructure";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/mapstructure";
+ rev = "cc8532a8e9a55ea36402aa21efdf403a60d34096";
+ sha256 = "0705c0hq7b993sabnjy65yymvpy9w1j84bg9bjczh5607z16nw86";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-buffruneio";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-buffruneio";
+ rev = "c37440a7cf42ac63b919c752ca73a85067e05992";
+ sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-toml";
+ rev = "5c26a6ff6fd178719e15decac1c8196da0d7d6d1";
+ sha256 = "0f4l7mq0nb2p2vjfjqx251s6jzkl646n1vw45chykwvv1sbad8nq";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "c605e284fe17294bda444b34710735b29d1a9d90";
+ sha256 = "1izjk4msnc6wn1mclg0ypa6i31zfwb1r3032k8q4jfbd57hp0bz6";
+ };
+ }
+ {
+ goPackagePath = "github.com/sendgrid/rest";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sendgrid/rest";
+ rev = "14de1ac72d9ae5c3c0d7c02164c52ebd3b951a4e";
+ sha256 = "0wrggvgnqdmhscim52hvhg77jhksprxp52sc4ipd69kasd32b5dm";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/afero";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/afero";
+ rev = "9be650865eab0c12963d8753212f4f9c66cdcf12";
+ sha256 = "12dhh6d07304lsjv7c4p95hkip0hnshqhwivdw39pbypgg0p8y34";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cast";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cast";
+ rev = "acbeb36b902d72a7a4c18e8f3241075e7ab763e4";
+ sha256 = "0w25s6gjbbwv47b9208hysyqqphd6pib3d2phg24mjy4wigkm050";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cobra";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cobra";
+ rev = "ca5710c94eabe15aa1f74490b8e5976dc652e8c6";
+ sha256 = "1z5fxh9akwn95av6ra8p6804nhyxjc63m0s6abxi3l424n30b08i";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/jwalterweatherman";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/jwalterweatherman";
+ rev = "8f07c835e5cc1450c082fe3a439cf87b0cbb2d99";
+ sha256 = "1dhl6kdbyczhnsgiyc8mcb7kmxd9garx8gy3q2gx5mmv96xxzxx7";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "e57e3eeb33f795204c1ca35f56c44f83227c6e66";
+ sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/viper";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/viper";
+ rev = "0967fc9aceab2ce9da34061253ac10fb99bba5b2";
+ sha256 = "016syis0rvccp2indjqi1vnz3wk7c9dhkvkgam0j79sb019kl80f";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "513929065c19401a1c7b76ecd942f9f86a0c061b";
+ sha256 = "19ziin0k3n45nccjbk094f61hr198wzqnas93cmcxdja8f8fz27q";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/oauth2";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/oauth2";
+ rev = "f047394b6d14284165300fd82dad67edb3a4d7f6";
+ sha256 = "1l1a2iz1nmfmzzbjj1h8066prag4jvjqh13iv1jdlh05fgv6769i";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "a2e06a18b0d52d8cb2010e04b372a1965d8e3439";
+ sha256 = "0m0r2w2qk8jkdk21h52n66g4yqckmzpx3mph73cilkhvdfgwfd21";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "19e51611da83d6be54ddafce4a4af510cb3e9ea4";
+ sha256 = "09pcfzx7nrma0gjv93jx57c28farf8m1qm4x07vk5505wlcgvvfl";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "cd8b52f8269e0feb286dfeef29f8fe4d5b397e0b";
+ sha256 = "1hj2ag9knxflpjibck0n90jrhsrqz7qvad4qnif7jddyapi9bqzl";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/makeself/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/makeself/default.nix
new file mode 100644
index 000000000000..993596aabe1d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/makeself/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, which }:
+
+stdenv.mkDerivation rec {
+ version = "2.4.2";
+ pname = "makeself";
+
+ src = fetchFromGitHub {
+ owner = "megastep";
+ repo = "makeself";
+ rev = "release-${version}";
+ fetchSubmodules = true;
+ sha256 = "07cq7q71bv3fwddkp2863ylry2ivds00f8sjy8npjpdbkailxm21";
+ };
+
+ patchPhase = "patchShebangs test";
+
+ doCheck = true;
+ checkTarget = "test";
+ checkInputs = [ which ];
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/{${pname}-${version},man/man1}}
+ cp makeself.lsm README.md $out/share/${pname}-${version}
+ cp makeself.sh $out/bin/makeself
+ cp makeself.1 $out/share/man/man1/
+ cp makeself-header.sh $out/share/${pname}-${version}
+ '';
+
+ fixupPhase = ''
+ sed -e "s|^HEADER=.*|HEADER=$out/share/${pname}-${version}/makeself-header.sh|" -i $out/bin/makeself
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://megastep.org/makeself";
+ description = "Utility to create self-extracting packages";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.wmertens ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mako/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mako/default.nix
new file mode 100644
index 000000000000..e1b14acb46f4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mako/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, scdoc
+, systemd, pango, cairo, gdk-pixbuf
+, wayland, wayland-protocols
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mako";
+ version = "1.4.1";
+
+ src = fetchFromGitHub {
+ owner = "emersion";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig scdoc wayland-protocols wrapGAppsHook ];
+ buildInputs = [ systemd pango cairo gdk-pixbuf wayland ];
+
+ mesonFlags = [ "-Dzsh-completions=true" ];
+
+ meta = with stdenv.lib; {
+ description = "A lightweight Wayland notification daemon";
+ homepage = "https://wayland.emersion.fr/mako/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dywedir synthetica ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mapproxy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mapproxy/default.nix
new file mode 100644
index 000000000000..41ae683548d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mapproxy/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, pkgs
+, python
+}:
+let
+ py = python.override {
+ packageOverrides = self: super: {
+ pyproj = super.pyproj.overridePythonAttrs (oldAttrs: rec {
+ version = "1.9.6";
+ src = pkgs.fetchFromGitHub {
+ owner = "pyproj4";
+ repo = "pyproj";
+ rev = "v${version}rel";
+ sha256 = "18v4h7jx4mcc0x2xy8y7dfjq9bzsyxs8hdb6v67cabvlz2njziqy";
+ };
+ nativeBuildInputs = with python.pkgs; [ cython ];
+ patches = [ ];
+ checkPhase = ''
+ runHook preCheck
+ pushd unittest # changing directory should ensure we're importing the global pyproj
+ ${python.interpreter} test.py && ${python.interpreter} -c "import doctest, pyproj, sys; sys.exit(doctest.testmod(pyproj)[0])"
+ popd
+ runHook postCheck
+ '';
+ });
+ };
+ };
+in
+with py.pkgs;
+buildPythonApplication rec {
+ pname = "MapProxy";
+ version = "1.12.0";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "622e3a7796ef861ba21e42231b49c18d00d75f03eaf3f01a2b7687be7568e2ec";
+ };
+ prePatch = ''
+ substituteInPlace mapproxy/util/ext/serving.py --replace "args = [sys.executable] + sys.argv" "args = sys.argv"
+ '';
+ propagatedBuildInputs = [
+ boto3 # needed for caches service
+ pillow
+ pyyaml
+ pyproj
+ shapely
+ gdal
+ lxml
+ setuptools
+ ];
+ # Tests are disabled:
+ # 1) Dependency list is huge.
+ # https://github.com/mapproxy/mapproxy/blob/master/requirements-tests.txt
+ #
+ # 2) There are security issues with package Riak
+ # https://github.com/NixOS/nixpkgs/issues/33876
+ # https://github.com/NixOS/nixpkgs/pull/56480
+ doCheck = false;
+ meta = with lib; {
+ description = "Open source proxy for geospatial data";
+ homepage = "https://mapproxy.org/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ rakesh4g ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/marktext/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/marktext/default.nix
new file mode 100644
index 000000000000..83a7aabaef7b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/marktext/default.nix
@@ -0,0 +1,41 @@
+{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }:
+
+let
+ pname = "marktext";
+ version = "v0.16.2";
+in
+appimageTools.wrapType2 rec {
+ name = "${pname}-${version}-binary";
+
+ src = fetchurl {
+ url = "https://github.com/marktext/marktext/releases/download/${version}/marktext-x86_64.AppImage";
+ sha256 = "0ivf9lvv2jk7dvxmqprzcsxgya3617xmx5bppjvik44z14b5x8r7";
+ };
+
+ profile = ''
+ export LC_ALL=C.UTF-8
+ ''
+ # Fixes file open dialog error
+ # GLib-GIO-ERROR **: 20:36:48.243: No GSettings schemas are installed on the system
+ # See https://github.com/NixOS/nixpkgs/pull/83701#issuecomment-608034097
+ + ''
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null; # no 32bit needed
+ extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
+ p.libsecret
+ p.xlibs.libxkbfile
+ ];
+
+ # Strip version from binary name.
+ extraInstallCommands = "mv $out/bin/${name} $out/bin/${pname}";
+
+ meta = with lib; {
+ description = "A simple and elegant markdown editor, available for Linux, macOS and Windows";
+ homepage = "https://marktext.app";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nh2 ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix
new file mode 100644
index 000000000000..d541c5e1289a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, sane-backends, qtbase, qtsvg, nss, autoPatchelfHook, lib, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "masterpdfeditor";
+ version = "5.6.09";
+
+ src = fetchurl {
+ url = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.amd64.tar.gz";
+ sha256 = "0v9j6fwr0xl03kr77vf4wdb06zlplmn4mr3jyzxhvs8a77scmfzb";
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ];
+
+ buildInputs = [ nss qtbase qtsvg sane-backends stdenv.cc.cc ];
+
+ dontStrip = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ p=$out/opt/masterpdfeditor
+ mkdir -p $out/bin
+
+ substituteInPlace masterpdfeditor5.desktop \
+ --replace 'Exec=/opt/master-pdf-editor-5' "Exec=$out/bin" \
+ --replace 'Path=/opt/master-pdf-editor-5' "Path=$out/bin" \
+ --replace 'Icon=/opt/master-pdf-editor-5' "Icon=$out/share/pixmaps"
+
+ install -Dm644 -t $out/share/pixmaps masterpdfeditor5.png
+ install -Dm644 -t $out/share/applications masterpdfeditor5.desktop
+ install -Dm755 -t $p masterpdfeditor5
+ install -Dm644 license.txt $out/share/$name/LICENSE
+ ln -s $p/masterpdfeditor5 $out/bin/masterpdfeditor5
+ cp -v -r stamps templates lang fonts $p
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Master PDF Editor";
+ homepage = "https://code-industry.net/free-pdf-editor/";
+ license = licenses.unfreeRedistributable;
+ platforms = with platforms; [ "x86_64-linux" ];
+ maintainers = with maintainers; [ cmcdragonkai flokli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mbutil/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mbutil/default.nix
new file mode 100644
index 000000000000..b108d1a5647e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mbutil/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonApplication, fetchFromGitHub, nose }:
+
+buildPythonApplication rec {
+ pname = "mbutil";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "mapbox";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "06d62r89h026asaa4ryzb23m86j0cmbvy54kf4zl5f35sgiha45z";
+ };
+
+ checkInputs = [ nose ];
+ checkPhase = "nosetests";
+
+ meta = with lib; {
+ description = "An importer and exporter for MBTiles";
+ homepage = "https://github.com/mapbox/mbutil";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sikmir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mdp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mdp/default.nix
new file mode 100644
index 000000000000..b96c4d00214b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mdp/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+ version = "1.0.15";
+ pname = "mdp";
+
+ src = fetchFromGitHub {
+ owner = "visit1985";
+ repo = "mdp";
+ rev = version;
+ sha256 = "1m9a0vvyw2m55cn7zcq011vrjkiaj5a3g5g6f2dpq953gyi7gff9";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ buildInputs = [ ncurses ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/visit1985/mdp";
+ description = "A command-line based markdown presentation tool";
+ maintainers = with maintainers; [ matthiasbeyer vrthra ];
+ license = licenses.gpl3;
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
new file mode 100644
index 000000000000..b3e23f2245cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, wxGTK30-gtk3
+, desktop-file-utils, libSM, imagemagick }:
+
+stdenv.mkDerivation rec {
+ version = "20.09";
+ pname = "mediainfo-gui";
+ src = fetchurl {
+ url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
+ sha256 = "0rqg9z7s5bk7vlvjrs4gackzg7ib05a0dffi2ihsjf5a7kw7wcir";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libzen libmediainfo wxGTK30-gtk3 desktop-file-utils libSM
+ imagemagick ];
+
+ sourceRoot = "./MediaInfo/Project/GNU/GUI/";
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Supplies technical and tag information about a video or audio file (GUI version)";
+ longDescription = ''
+ MediaInfo is a convenient unified display of the most relevant technical
+ and tag data for video and audio files.
+ '';
+ homepage = "https://mediaarea.net/";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mediainfo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
new file mode 100644
index 000000000000..0fd3826f4e56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, zlib }:
+
+stdenv.mkDerivation rec {
+ version = "20.09";
+ pname = "mediainfo";
+ src = fetchurl {
+ url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
+ sha256 = "0rqg9z7s5bk7vlvjrs4gackzg7ib05a0dffi2ihsjf5a7kw7wcir";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libzen libmediainfo zlib ];
+
+ sourceRoot = "./MediaInfo/Project/GNU/CLI/";
+
+ configureFlags = [ "--with-libmediainfo=${libmediainfo}" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Supplies technical and tag information about a video or audio file";
+ longDescription = ''
+ MediaInfo is a convenient unified display of the most relevant technical
+ and tag data for video and audio files.
+ '';
+ homepage = "https://mediaarea.net/";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/megacmd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/megacmd/default.nix
new file mode 100644
index 000000000000..899b069f0542
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/megacmd/default.nix
@@ -0,0 +1,88 @@
+{ stdenv
+, autoconf
+, automake
+, c-ares
+, cryptopp
+, curl
+, fetchFromGitHub
+, ffmpeg_3
+, freeimage
+, gcc-unwrapped
+, libmediainfo
+, libraw
+, libsodium
+, libtool
+, libuv
+, libzen
+, pcre-cpp
+, pkgconfig
+, readline
+, sqlite
+}:
+
+stdenv.mkDerivation rec {
+ pname = "megacmd";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ owner = "meganz";
+ repo = "MEGAcmd";
+ rev = "${version}_Linux";
+ sha256 = "0czyhsms0a0237d6h9b21n9p4nm4zkjanhhbvw26k6266g6c1nyr";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ libtool
+ pkgconfig
+ ];
+
+ buildInputs = [
+ c-ares
+ cryptopp
+ curl
+ ffmpeg_3
+ freeimage
+ gcc-unwrapped
+ libmediainfo
+ libraw
+ libsodium
+ libtool
+ libuv
+ libzen
+ pcre-cpp
+ readline
+ sqlite
+ ];
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ configureFlags = [
+ "--disable-curl-checks"
+ "--disable-examples"
+ "--with-cares"
+ "--with-cryptopp"
+ "--with-curl"
+ "--with-ffmpeg"
+ "--with-freeimage"
+ "--with-libmediainfo"
+ "--with-libuv"
+ "--with-libzen"
+ "--with-pcre"
+ "--with-readline"
+ "--with-sodium"
+ "--with-termcap"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "MEGA Command Line Interactive and Scriptable Application";
+ homepage = "https://mega.nz/";
+ license = licenses.unfree;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ maintainers = [ maintainers.wedens ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/default.nix
new file mode 100644
index 000000000000..3b25d7e606a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/default.nix
@@ -0,0 +1,120 @@
+{ stdenv
+, autoconf
+, automake
+, c-ares
+, cryptopp
+, curl
+, doxygen
+, fetchFromGitHub
+, fetchpatch
+, ffmpeg_3
+, libmediainfo
+, libraw
+, libsodium
+, libtool
+, libuv
+, libzen
+, lsb-release
+, mkDerivation
+, pkgconfig
+, qtbase
+, qttools
+, qtx11extras
+, sqlite
+, swig
+, unzip
+, wget
+}:
+
+mkDerivation rec {
+ pname = "megasync";
+ version = "4.3.5.0";
+
+ src = fetchFromGitHub {
+ owner = "meganz";
+ repo = "MEGAsync";
+ rev = "v${version}_Linux";
+ sha256 = "0rr1jjy0n5bj1lh6xi3nbbcikvq69j3r9qnajp4mhywr5izpccvs";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs =
+ [ autoconf automake doxygen lsb-release pkgconfig qttools swig ];
+ buildInputs = [
+ c-ares
+ cryptopp
+ curl
+ ffmpeg_3
+ libmediainfo
+ libraw
+ libsodium
+ libtool
+ libuv
+ libzen
+ qtbase
+ qtx11extras
+ sqlite
+ unzip
+ wget
+ ];
+
+ patches = [
+ # Distro and version targets attempt to use lsb_release which is broken
+ # (see issue: https://github.com/NixOS/nixpkgs/issues/22729)
+ ./noinstall-distro-version.patch
+ # megasync target is not part of the install rule thanks to a commented block
+ ./install-megasync.patch
+ ];
+
+ postPatch = ''
+ for file in $(find src/ -type f \( -iname configure -o -iname \*.sh \) ); do
+ substituteInPlace "$file" --replace "/bin/bash" "${stdenv.shell}"
+ done
+ '';
+
+ dontUseQmakeConfigure = true;
+ enableParallelBuilding = true;
+
+ preConfigure = ''
+ cd src/MEGASync/mega
+ ./autogen.sh
+ '';
+
+ configureFlags = [
+ "--disable-examples"
+ "--disable-java"
+ "--disable-php"
+ "--enable-chat"
+ "--with-cares"
+ "--with-cryptopp"
+ "--with-curl"
+ "--with-ffmpeg"
+ "--without-freeimage" # unreferenced even when found
+ "--without-readline"
+ "--without-termcap"
+ "--with-sodium"
+ "--with-sqlite"
+ "--with-zlib"
+ ];
+
+ postConfigure = ''
+ cd ../..
+ '';
+
+ preBuild = ''
+ qmake CONFIG+="release" MEGA.pro
+ pushd MEGASync
+ lrelease MEGASync.pro
+ DESKTOP_DESTDIR="$out" qmake PREFIX="$out" -o Makefile MEGASync.pro CONFIG+=release
+ popd
+ '';
+
+ meta = with stdenv.lib; {
+ description =
+ "Easy automated syncing between your computers and your MEGA Cloud Drive";
+ homepage = "https://mega.nz/";
+ license = licenses.unfree;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ maintainers = [ maintainers.michojel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/install-megasync.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/install-megasync.patch
new file mode 100644
index 000000000000..7d8748528e7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/install-megasync.patch
@@ -0,0 +1,21 @@
+Index: source/src/MEGASync/MEGASync.pro
+===================================================================
+--- source.orig/src/MEGASync/MEGASync.pro
++++ source/src/MEGASync/MEGASync.pro
+@@ -28,11 +28,11 @@ unix:!macx {
+ TARGET = megasync
+
+ # Uncomment the following if "make install" doesn't copy megasync in /usr/bin directory
+-# isEmpty(PREFIX) {
+-# PREFIX = /usr
+-# }
+-# target.path = $$PREFIX/bin
+-# INSTALLS += target
++ isEmpty(PREFIX) {
++ PREFIX = /usr
++ }
++ target.path = $$PREFIX/bin
++ INSTALLS += target
+ }
+ else {
+ TARGET = MEGAsync
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/noinstall-distro-version.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/noinstall-distro-version.patch
new file mode 100644
index 000000000000..bbf100737bc4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/megasync/noinstall-distro-version.patch
@@ -0,0 +1,13 @@
+Index: source/src/MEGASync/platform/platform.pri
+===================================================================
+--- source.orig/src/MEGASync/platform/platform.pri
++++ source/src/MEGASync/platform/platform.pri
+@@ -37,7 +37,7 @@ unix:!macx {
+ system(command -v lsb_release): version.commands = lsb_release -rs > $$version.target
+ version.files = $$version.target
+
+- INSTALLS += distro version
++ # INSTALLS += distro version
+
+ QT += dbus
+ SOURCES += $$PWD/linux/LinuxPlatform.cpp \
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/memo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/memo/default.nix
new file mode 100644
index 000000000000..66fe0d7207c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/memo/default.nix
@@ -0,0 +1,52 @@
+{ fetchFromGitHub, silver-searcher, tree, man, stdenv,
+ git,
+ pandocSupport ? true, pandoc ? null
+ , ... }:
+
+assert pandocSupport -> pandoc != null;
+
+stdenv.mkDerivation rec {
+
+ pname = "memo";
+
+ version = "0.8";
+
+ src = fetchFromGitHub {
+ owner = "mrVanDalo";
+ repo = "memo";
+ rev = version;
+ sha256 = "0azx2bx6y7j0637fg3m8zigcw09zfm2mw9wjfg218sx88cm1wdkp";
+ };
+
+ installPhase = let
+ pandocReplacement = if pandocSupport then
+ "pandoc_cmd=${pandoc}/bin/pandoc"
+ else
+ "#pandoc_cmd=pandoc";
+ in ''
+ mkdir -p $out/{bin,share/man/man1,share/bash-completion/completions,share/zsh/site-functions}
+ substituteInPlace memo \
+ --replace "ack_cmd=ack" "ack_cmd=${silver-searcher}/bin/ag" \
+ --replace "tree_cmd=tree" "tree_cmd=${tree}/bin/tree" \
+ --replace "man_cmd=man" "man_cmd=${man}/bin/man" \
+ --replace "git_cmd=git" "git_cmd=${git}/bin/git" \
+ --replace "pandoc_cmd=pandoc" "${pandocReplacement}"
+ mv memo $out/bin/
+ mv doc/memo.1 $out/share/man/man1/memo.1
+ mv completion/bash/memo.sh $out/share/bash-completion/completions/memo.sh
+ mv completion/zsh/_memo $out/share/zsh/site-functions/_memo
+ '';
+
+ meta = {
+ description = "A simple tool written in bash to memorize stuff";
+ longDescription = ''
+ A simple tool written in bash to memorize stuff.
+ Memo organizes is structured through topics which are folders in ~/memo.
+ '';
+ homepage = "http://palovandalo.com/memo/";
+ downloadPage = "https://github.com/mrVanDalo/memo/releases";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.mrVanDalo ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mencal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mencal/default.nix
new file mode 100644
index 000000000000..df0a4db7fc70
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mencal/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+ name = "mencal-3.0";
+
+ src = fetchurl {
+ url = "http://kyberdigi.cz/projects/mencal/files/${name}.tar.gz";
+ sha256 = "9328d0b2f3f57847e8753c5184531f4832be7123d1b6623afdff892074c03080";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp mencal $out/bin/
+ '';
+
+ buildInputs = [ perl ];
+
+ meta = with stdenv.lib; {
+ description = "Menstruation calendar";
+ longDescription = ''
+ Mencal is a simple variation of the well-known unix command cal.
+ The main difference is that you can have some periodically repeating
+ days highlighted in color. This can be used to track
+ menstruation (or other) cycles conveniently.
+ '';
+ homepage = "http://www.kyberdigi.cz/projects/mencal/english.html";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.mmahut ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/menumaker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/menumaker/default.nix
new file mode 100644
index 000000000000..f76d6cb6b8a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/menumaker/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "menumaker";
+ version = "0.99.12";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/menumaker/${pname}-${version}.tar.gz";
+ sha256 = "034v5204bsgkzzk6zfa5ia63q95gln47f7hwf96yvad5hrhmd8z3";
+ };
+
+ format = "other";
+
+ meta = with stdenv.lib; {
+ description = "Heuristics-driven menu generator for several window managers";
+ homepage = "http://menumaker.sourceforge.net";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/merkaartor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/merkaartor/default.nix
new file mode 100644
index 000000000000..79ee45b4c1c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/merkaartor/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, makeWrapper, qmake, pkgconfig, boost, gdal, proj
+, qtbase, qtsvg, qtwebview, qtwebkit }:
+
+stdenv.mkDerivation rec {
+ pname = "merkaartor";
+ version = "unstable-2019-11-12";
+
+ src = fetchFromGitHub {
+ owner = "openstreetmap";
+ repo = "merkaartor";
+ rev = "29b3388680a03f1daac0037a2b504ea710da879a";
+ sha256 = "0h3d3srzl06p2ajq911j05zr4vkl88qij18plydx45yqmvyvh0xz";
+ };
+
+ nativeBuildInputs = [ makeWrapper qmake pkgconfig ];
+
+ buildInputs = [ boost gdal proj qtbase qtsvg qtwebview qtwebkit ];
+
+ enableParallelBuilding = true;
+
+ NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
+
+ postInstall = ''
+ wrapProgram $out/bin/merkaartor \
+ --set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase.bin}/lib/qt-*/plugins/platforms
+ '';
+
+ meta = with stdenv.lib; {
+ description = "OpenStreetMap editor";
+ homepage = "http://merkaartor.be/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix
new file mode 100644
index 000000000000..a81aec9d0364
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchgit, makeWrapper, gettext
+, python27, python2Packages
+}:
+
+stdenv.mkDerivation {
+ pname = "metamorphose2";
+ version = "0.9.0beta";
+
+ # exif-py vendored via submodule
+ # mutagen vendored via copy
+ src = fetchgit {
+ url = "https://github.com/metamorphose/metamorphose2.git";
+ #rev = "refs/tags/v2.${version}"; #for when wxPython3 support is released
+ rev = "d2bdd6a86340b9668e93b35a6a568894c9909d68";
+ sha256 = "0ivcb3c8hidrff0ivl4dnwa2p3ihpqjdbvdig8dhg9mm5phdbabn";
+ };
+
+ postPatch = ''
+ substituteInPlace messages/Makefile \
+ --replace "\$(shell which msgfmt)" "${gettext}/bin/msgfmt"
+ '';
+
+ postInstall = ''
+ rm $out/bin/metamorphose2
+ makeWrapper ${python27}/bin/python $out/bin/metamorphose2 \
+ --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \
+ --add-flags "-O $out/share/metamorphose2/metamorphose2.py -w=3"
+ '';
+
+ buildInput = [ gettext python27 ];
+ nativeBuildInputs = [ makeWrapper ];
+ propagatedBuildInputs = [ python2Packages.wxPython python2Packages.pillow ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "a graphical mass renaming program for files and folders";
+ homepage = "https://github.com/metamorphose/metamorphose2";
+ license = with licenses; gpl3Plus;
+ maintainers = with maintainers; [ ramkromberg ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/metar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/metar/default.nix
new file mode 100644
index 000000000000..f5185c639873
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/metar/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, curl }:
+
+stdenv.mkDerivation {
+ name = "metar-20161013.1";
+
+ src = fetchgit {
+ url = "https://github.com/keesL/metar.git";
+ rev = "20e9ca69faea330f6c2493b6829131c24cb55147";
+ sha256 = "1fgrlnpasqf1ihh9y6zy6mzzybqx0lxvh7gmv03rjdb55dr42dxj";
+ };
+
+ buildInputs = [ curl ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/keesL/metar";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.zalakain ];
+ description = "Downloads weather reports and optionally decodes them";
+ longDescription = ''
+ METAR reports are meteorogical weather reports for aviation. Metar is a small
+ program which downloads weather reports for user-specified stations and
+ optionally decodes them into a human-readable format.
+
+ Currently, metar supports decoding date/time, wind, visibility, cloud layers,
+ temperature, air pressure and weather phenomena, such as rain, fog, etc. Also,
+ more work in the area of clouds need to be done, as support for Cumulus or
+ Cumulunimbus is not yet decoded.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/michabo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/michabo/default.nix
new file mode 100644
index 000000000000..015a326fdc9b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/michabo/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, mkDerivation
+, makeDesktopItem
+, fetchFromGitLab
+, qmake
+# qt
+, qtbase
+, qtwebsockets
+}:
+
+let
+ desktopItem = makeDesktopItem {
+ type = "Application";
+ name = "Michabo";
+ desktopName = "Michabo";
+ exec = "Michabo";
+ };
+
+in mkDerivation rec {
+ pname = "michabo";
+ version = "0.1";
+
+ src = fetchFromGitLab {
+ domain = "git.pleroma.social";
+ owner = "kaniini";
+ repo = "michabo";
+ rev = "v${version}";
+ sha256 = "0pl4ymdb36r0kwlclfjjp6b1qml3fm9ql7ag5inprny5y8vcjpzn";
+ };
+
+ nativeBuildInputs = [
+ qmake
+ ];
+ buildInputs = [
+ qtbase
+ qtwebsockets
+ ];
+
+ qmakeFlags = [ "michabo.pro" "DESTDIR=${placeholder "out"}/bin" ];
+
+ postInstall = ''
+ ln -s ${desktopItem}/share $out/share
+ '';
+
+ meta = with lib; {
+ description = "A native desktop app for Pleroma and Mastodon servers";
+ homepage = "https://git.pleroma.social/kaniini/michabo";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/milu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/milu/default.nix
new file mode 100644
index 000000000000..84cc0e0bc8dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/milu/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, unzip, pkgconfig, glib, llvmPackages }:
+
+stdenv.mkDerivation {
+ pname = "milu-nightly";
+ version = "2016-05-09";
+
+ src = fetchFromGitHub {
+ sha256 = "14cglw04cliwlpvw7qrs6rfm5sv6qa558d7iby5ng3wdjcwx43nk";
+ rev = "b5f2521859c0319d321ad3c1ad793b826ab5f6e1";
+ repo = "Milu";
+ owner = "yuejia";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ preConfigure = ''
+ sed -i 's#/usr/bin/##g' Makefile
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/milu $out/bin
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ glib
+ unzip
+ llvmPackages.libclang
+ ];
+
+ meta = {
+ description = "Higher Order Mutation Testing Tool for C and C++ programs";
+ homepage = "https://github.com/yuejia/Milu";
+ license = stdenv.lib.licenses.bsd2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.vrthra ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/minder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/minder/default.nix
new file mode 100644
index 000000000000..bf94ac429947
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/minder/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, meson, ninja, python3
+, wrapGAppsHook, vala, shared-mime-info
+, cairo, pantheon, glib, gtk3, libxml2, libgee, libarchive
+, discount, gtksourceview3
+, hicolor-icon-theme # for setup-hook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "minder";
+ version = "1.11.3";
+
+ src = fetchFromGitHub {
+ owner = "phase1geo";
+ repo = pname;
+ rev = version;
+ sha256 = "137kyf82n5a2v0cm9q02rhv8rmbjgnj60h64prq90h0d42prj3gd";
+ };
+
+ nativeBuildInputs = [ pkgconfig meson ninja python3 wrapGAppsHook vala shared-mime-info ];
+ buildInputs = [ cairo pantheon.granite glib gtk3 libxml2 libgee libarchive hicolor-icon-theme discount gtksourceview3 ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ postFixup = ''
+ for x in $out/bin/*; do
+ ln -vrs $x "$out/bin/''${x##*.}"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Mind-mapping application for Elementary OS";
+ homepage = "https://github.com/phase1geo/Minder";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix
new file mode 100644
index 000000000000..61b900c40122
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix
@@ -0,0 +1,36 @@
+{ fetchurl, stdenv, dpkg, makeWrapper, openssl }:
+
+stdenv.mkDerivation {
+ version = "8.2";
+ pname = "minergate-cli";
+ src = fetchurl {
+ url = "https://minergate.com/download/ubuntu-cli";
+ sha256 = "393c5ba236f6f92c449496fcda9509f4bfd3887422df98ffa59b3072124a99d8";
+ };
+
+ nativeBuildInputs = [ dpkg makeWrapper ];
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ dpkg-deb -x $src $out
+ pgm=$out/opt/minergate-cli/minergate-cli
+
+ interpreter=${stdenv.glibc}/lib/ld-linux-x86-64.so.2
+ patchelf --set-interpreter "$interpreter" $pgm
+
+ wrapProgram $pgm --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ openssl stdenv.cc.cc ]}
+
+ rm $out/usr/bin/minergate-cli
+ mkdir -p $out/bin
+ ln -s $pgm $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Minergate CPU/GPU console client mining software";
+ homepage = "https://www.minergate.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ bfortz ];
+ platforms = [ "x86_64-linux" ];
+};
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/minergate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/minergate/default.nix
new file mode 100644
index 000000000000..6fbe39c4da2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/minergate/default.nix
@@ -0,0 +1,36 @@
+{ fetchurl, stdenv, dpkg, makeWrapper, fontconfig, freetype, openssl, xorg, xkeyboard_config }:
+
+stdenv.mkDerivation {
+ version = "8.1";
+ pname = "minergate";
+ src = fetchurl {
+ url = "https://minergate.com/download/ubuntu";
+ sha256 = "1dbbbb8e0735cde239fca9e82c096dcc882f6cecda20bba7c14720a614c16e13";
+ };
+
+ nativeBuildInputs = [ dpkg makeWrapper ];
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ dpkg-deb -x $src $out
+ pgm=$out/opt/minergate/minergate
+
+ interpreter=${stdenv.glibc}/lib/ld-linux-x86-64.so.2
+ patchelf --set-interpreter "$interpreter" $pgm
+
+ wrapProgram $pgm --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ fontconfig freetype openssl stdenv.cc.cc xorg.libX11 xorg.libxcb ]} --prefix "QT_XKB_CONFIG_ROOT" ":" "${xkeyboard_config}/share/X11/xkb"
+
+ rm $out/usr/bin/minergate
+ mkdir -p $out/bin
+ ln -s $out/opt/minergate/minergate $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Minergate CPU/GPU mining software";
+ homepage = "https://www.minergate.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ bfortz ];
+ platforms = [ "x86_64-linux" ];
+};
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch
new file mode 100644
index 000000000000..2aced4452062
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch
@@ -0,0 +1,46 @@
+--- a/build.xml (revision 4555)
++++ a/build.xml (working copy)
+@@ -222,13 +222,13 @@
+ <property name="svn.version.build" value="none"/>
+
+ <propertyfile file="${build.classes}/mkgmap-version.properties">
+- <entry key="svn.version" value="${svn.version.build}" />
+- <entry key="build.timestamp" value="${build.timestamp}" />
++ <entry key="svn.version" value="@version@" />
++ <entry key="build.timestamp" value="unknown" />
+ </propertyfile>
+ </target>
+
+ <!-- Compile the product itself (no tests). -->
+- <target name="compile" depends="prepare, resolve-compile"
++ <target name="compile" depends="prepare"
+ description="main compilation">
+
+ <javac srcdir="${src}" destdir="${build.classes}" encoding="utf-8" debug="true" includeantruntime="false">
+@@ -263,7 +263,7 @@
+ </target>
+
+ <!-- Compile the test classes -->
+- <target name="build-test" depends="build, resolve-test">
++ <target name="build-test" depends="build">
+ <mkdir dir="${build.test}" />
+ <javac srcdir="${test}" destdir="${build.test}" encoding="utf-8" debug="true" includeantruntime="false">
+ <include name="**/*.java" />
+@@ -271,7 +271,7 @@
+ </javac>
+ </target>
+
+- <target name="test" depends="build-test, obtain-test-input-files" description="Run the junit tests">
++ <target name="test" depends="build-test" description="Run the junit tests">
+ <mkdir dir="tmp/report"/>
+ <junit printsummary="yes" failureproperty="junit.failure" forkmode="once">
+
+@@ -351,7 +351,7 @@
+ ignoreerrors="true"/>
+ </target>
+
+- <target name="dist" depends="build, check-version, version-file"
++ <target name="dist" depends="build, version-file"
+ description="Make the distribution area">
+
+ <mkdir dir="${dist}"/>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
new file mode 100644
index 000000000000..9bd5be9dc801
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
@@ -0,0 +1,85 @@
+{ stdenv
+, fetchurl
+, fetchsvn
+, jdk
+, jre
+, ant
+, makeWrapper
+, doCheck ? true
+, withExamples ? false
+}:
+let
+ version = "4565";
+ sha256 = "0cfh0msky5812l28mavy6p3k2zgyxb698xk79mvla9l45zcicnvw";
+
+ deps = import ./deps.nix { inherit fetchurl; };
+ testInputs = import ./testinputs.nix { inherit fetchurl; };
+in
+stdenv.mkDerivation {
+ pname = "mkgmap";
+ inherit version;
+
+ src = fetchsvn {
+ inherit sha256;
+ url = "https://svn.mkgmap.org.uk/mkgmap/mkgmap/trunk";
+ rev = version;
+ };
+
+ patches = [
+ # Disable automatic download of dependencies
+ ./build.xml.patch
+
+ # Fix testJavaRules test
+ ./fix-failing-test.patch
+ ];
+
+ postPatch = with deps; ''
+ substituteInPlace build.xml \
+ --subst-var-by version ${version}
+
+ mkdir -p lib/compile
+ cp ${fastutil} lib/compile/${fastutil.name}
+ cp ${osmpbf} lib/compile/${osmpbf.name}
+ cp ${protobuf} lib/compile/${protobuf.name}
+ '' + stdenv.lib.optionalString doCheck ''
+ mkdir -p lib/test
+ cp ${fastutil} lib/test/${fastutil.name}
+ cp ${osmpbf} lib/test/${osmpbf.name}
+ cp ${protobuf} lib/test/${protobuf.name}
+ cp ${jaxb-api} lib/test/${jaxb-api.name}
+ cp ${junit} lib/test/${junit.name}
+ cp ${hamcrest-core} lib/test/${hamcrest-core.name}
+
+ mkdir -p test/resources/in/img
+ ${stdenv.lib.concatMapStringsSep "\n" (res: ''
+ cp ${res} test/resources/in/${builtins.replaceStrings [ "__" ] [ "/" ] res.name}
+ '') testInputs}
+ '';
+
+ nativeBuildInputs = [ jdk ant makeWrapper ];
+
+ buildPhase = "ant";
+
+ inherit doCheck;
+
+ checkPhase = "ant test";
+
+ installPhase = ''
+ install -Dm644 dist/mkgmap.jar $out/share/java/mkgmap/mkgmap.jar
+ install -Dm644 dist/doc/mkgmap.1 $out/share/man/man1/mkgmap.1
+ cp -r dist/lib/ $out/share/java/mkgmap/
+ makeWrapper ${jre}/bin/java $out/bin/mkgmap \
+ --add-flags "-jar $out/share/java/mkgmap/mkgmap.jar"
+ '' + stdenv.lib.optionalString withExamples ''
+ mkdir -p $out/share/mkgmap
+ cp -r dist/examples $out/share/mkgmap/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Create maps for Garmin GPS devices from OpenStreetMap (OSM) data";
+ homepage = "http://www.mkgmap.org.uk";
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix
new file mode 100644
index 000000000000..22b5410d6bbc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix
@@ -0,0 +1,31 @@
+{ fetchurl }:
+{
+ fastutil = fetchurl {
+ url = "http://ivy.mkgmap.org.uk/repo/it.unimi.dsi/fastutil/6.5.15-mkg.1b/jars/fastutil.jar";
+ sha256 = "0d88m0rpi69wgxhnj5zh924q4zsvxq8m4ybk7m9mr3gz1hx0yx8c";
+ };
+ osmpbf = fetchurl {
+ url = "http://ivy.mkgmap.org.uk/repo/crosby/osmpbf/1.3.3/jars/osmpbf.jar";
+ sha256 = "0zb4pqkwly5z30ww66qhhasdhdrzwmrw00347yrbgyk2ii4wjad3";
+ };
+ protobuf = fetchurl {
+ url = "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar";
+ sha256 = "0x6c4pbsizvk3lm6nxcgi1g2iqgrxcna1ip74lbn01f0fm2wdhg0";
+ };
+ xpp3 = fetchurl {
+ url = "https://repo1.maven.org/maven2/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.jar";
+ sha256 = "1f9ifnxxj295xb1494jycbfm76476xm5l52p7608gf0v91d3jh83";
+ };
+ jaxb-api = fetchurl {
+ url = "https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar";
+ sha256 = "00rxpc0m30d3jc572ni01ryxq8gcbnr955xsabrijg9pknc0fc48";
+ };
+ junit = fetchurl {
+ url = "https://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11.jar";
+ sha256 = "1zh6klzv8w30dx7jg6pkhllk4587av4znflzhxz8x97c7rhf3a4h";
+ };
+ hamcrest-core = fetchurl {
+ url = "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar";
+ sha256 = "1sfqqi8p5957hs9yik44an3lwpv8ln2a6sh9gbgli4vkx68yzzb6";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/fix-failing-test.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/fix-failing-test.patch
new file mode 100644
index 000000000000..9cfe75583c86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/fix-failing-test.patch
@@ -0,0 +1,22 @@
+--- a/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java (revision 4555)
++++ a/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java (working copy)
+@@ -125,7 +125,7 @@
+ assertEquals("prim: different letter", -1, collator.compare("aaac", "aaad"));
+ assertEquals("prim: different letter", 1, collator.compare("aaae", "aaad"));
+ assertEquals(0, collator.compare("aaaa", "aaaa"));
+- assertEquals(0, collator.compare("aáÄâ", "aaaa"));
++ //assertEquals(0, collator.compare("aáÄâ", "aaaa"));
+
+ collator.setStrength(Collator.SECONDARY);
+ assertEquals(0, collator.compare("AabBb", "aabbb"));
+@@ -132,8 +132,8 @@
+ assertEquals(0, collator.compare("aabBb", "aabBb"));
+ assertEquals(0, collator.compare("aabbB", "aabBb"));
+ assertEquals(1, collator.compare("aáÄâ", "aaaa"));
+- assertEquals("prim len diff", -1, collator.compare("aáÄâ", "aaaaa"));
+- assertEquals(-1, collator.compare("aáÄâa", "aaaab"));
++ //assertEquals("prim len diff", -1, collator.compare("aáÄâ", "aaaaa"));
++ //assertEquals(-1, collator.compare("aáÄâa", "aaaab"));
+
+ collator.setStrength(Collator.TERTIARY);
+ assertEquals("prim: different case", 1, collator.compare("AabBb", "aabbb"));
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch
new file mode 100644
index 000000000000..a028dbef0314
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch
@@ -0,0 +1,54 @@
+--- a/build.xml (revision 597)
++++ a/build.xml (working copy)
+@@ -207,12 +207,12 @@
+ <property name="svn.version.build" value="unknown"/>
+
+ <propertyfile file="${build.classes}/splitter-version.properties">
+- <entry key="svn.version" value="${svn.version.build}" />
+- <entry key="build.timestamp" value="${build.timestamp}" />
++ <entry key="svn.version" value="@version@" />
++ <entry key="build.timestamp" value="unknown" />
+ </propertyfile>
+ </target>
+
+- <target name="compile" depends="prepare, resolve-compile" description="main compilation">
++ <target name="compile" depends="prepare" description="main compilation">
+ <javac srcdir="${src}" destdir="${build.classes}" debug="yes" includeantruntime="false">
+ <include name="**/*.java"/>
+ <classpath refid="classpath"/>
+@@ -219,7 +219,7 @@
+ </javac>
+ </target>
+
+- <target name="compile.tests" depends="prepare, resolve-test" description="test compilation">
++ <target name="compile.tests" depends="prepare" description="test compilation">
+ <javac srcdir="${test}" destdir="${build.test-classes}" debug="yes" includeantruntime="false">
+ <include name="**/*.java"/>
+ <classpath refid="test.classpath"/>
+@@ -261,7 +261,7 @@
+ <fail if="junit.failure" message="Test failed. See test-reports/index.html"/>
+ </target>
+
+- <target name="dist" depends="build, check-version, version-file" description="Make the distribution area">
++ <target name="dist" depends="build, version-file" description="Make the distribution area">
+
+ <mkdir dir="${dist}"/>
+ <mkdir dir="${dist}/doc/api"/>
+@@ -324,7 +324,7 @@
+ </target>
+
+ <!-- Main -->
+- <target name="build" depends="compile,compile.tests,run.tests">
++ <target name="build" depends="compile">
+ <copy todir="${build.classes}">
+ <fileset dir="${resources}">
+ <include name="*.properties"/>
+@@ -349,7 +349,7 @@
+ ignoreerrors="true"/>
+ </target>
+
+- <target name="run.func-tests" depends="compile,compile.tests,obtain-test-input-files" description="Run the functional tests">
++ <target name="run.func-tests" depends="compile,compile.tests" description="Run the functional tests">
+ <mkdir dir="tmp/report"/>
+ <junit printsummary="yes" failureproperty="junit.failure" forkmode="once">
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix
new file mode 100644
index 000000000000..df1c526fed61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix
@@ -0,0 +1,78 @@
+{ stdenv
+, fetchurl
+, fetchsvn
+, jdk
+, jre
+, ant
+, makeWrapper
+, doCheck ? true
+}:
+let
+ version = "597";
+ sha256 = "1al3160amw0gdarrc707dsppm0kcai9mpkfak7ffspwzw9alsndx";
+
+ deps = import ../deps.nix { inherit fetchurl; };
+ testInputs = import ./testinputs.nix { inherit fetchurl; };
+in
+stdenv.mkDerivation {
+ pname = "splitter";
+ inherit version;
+
+ src = fetchsvn {
+ inherit sha256;
+ url = "https://svn.mkgmap.org.uk/mkgmap/splitter/trunk";
+ rev = version;
+ };
+
+ patches = [
+ # Disable automatic download of dependencies
+ ./build.xml.patch
+
+ # Fix func.SolverAndProblemGeneratorTest test
+ ./fix-failing-test.patch
+ ];
+
+ postPatch = with deps; ''
+ substituteInPlace build.xml \
+ --subst-var-by version ${version}
+
+ mkdir -p lib/compile
+ cp ${fastutil} lib/compile/${fastutil.name}
+ cp ${osmpbf} lib/compile/${osmpbf.name}
+ cp ${protobuf} lib/compile/${protobuf.name}
+ cp ${xpp3} lib/compile/${xpp3.name}
+ '' + stdenv.lib.optionalString doCheck ''
+ mkdir -p lib/test
+ cp ${junit} lib/test/${junit.name}
+ cp ${hamcrest-core} lib/test/${hamcrest-core.name}
+
+ mkdir -p test/resources/in/osm
+ ${stdenv.lib.concatMapStringsSep "\n" (res: ''
+ cp ${res} test/resources/in/${builtins.replaceStrings [ "__" ] [ "/" ] res.name}
+ '') testInputs}
+ '';
+
+ nativeBuildInputs = [ jdk ant makeWrapper ];
+
+ buildPhase = "ant";
+
+ inherit doCheck;
+
+ checkPhase = "ant run.tests && ant run.func-tests";
+
+ installPhase = ''
+ install -Dm644 dist/splitter.jar $out/share/java/splitter/splitter.jar
+ install -Dm644 doc/splitter.1 $out/share/man/man1/splitter.1
+ cp -r dist/lib/ $out/share/java/splitter/
+ makeWrapper ${jre}/bin/java $out/bin/splitter \
+ --add-flags "-jar $out/share/java/splitter/splitter.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Utility for splitting OpenStreetMap maps into tiles";
+ homepage = "http://www.mkgmap.org.uk";
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/fix-failing-test.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/fix-failing-test.patch
new file mode 100644
index 000000000000..9248fb025361
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/fix-failing-test.patch
@@ -0,0 +1,11 @@
+--- a/test/func/SolverAndProblemGeneratorTest.java (revision 597)
++++ a/test/func/SolverAndProblemGeneratorTest.java (working copy)
+@@ -89,7 +89,7 @@
+ for (String l : lines) {
+ realSize += l.length();
+ }
+- assertEquals(f + " has wrong size", expectedSize, realSize);
++ //assertEquals(f + " has wrong size", expectedSize, realSize);
+ }
+ }
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/testinputs.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/testinputs.nix
new file mode 100644
index 000000000000..ab81b07ed8dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/splitter/testinputs.nix
@@ -0,0 +1,18 @@
+{ fetchurl }:
+let
+ fetchTestInput = { res, sha256 }: fetchurl {
+ inherit sha256;
+ url = "http://www.mkgmap.org.uk/testinput/${res}";
+ name = builtins.replaceStrings [ "/" ] [ "__" ] res;
+ };
+in
+[
+ (fetchTestInput {
+ res = "osm/alaska-2016-12-27.osm.pbf";
+ sha256 = "0hmb5v71a1bxgvrg1cbfj5l27b3vvdazs4pyggpmhcdhbwpw7ppm";
+ })
+ (fetchTestInput {
+ res = "osm/hamburg-2016-12-26.osm.pbf";
+ sha256 = "08bny4aavwm3z2114q99fv3fi2w905zxi0fl7bqgjyhgk0fxjssf";
+ })
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/testinputs.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/testinputs.nix
new file mode 100644
index 000000000000..0c4516190e00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mkgmap/testinputs.nix
@@ -0,0 +1,66 @@
+{ fetchurl }:
+let
+ fetchTestInput = { res, sha256 }: fetchurl {
+ inherit sha256;
+ url = "http://www.mkgmap.org.uk/testinput/${res}";
+ name = builtins.replaceStrings [ "/" ] [ "__" ] res;
+ };
+in
+[
+ (fetchTestInput {
+ res = "osm/lon1.osm.gz";
+ sha256 = "1r8sl67hayjgybxy9crqwp7f1w0ljxvxh0apqcvr888yhsbb8drv";
+ })
+ (fetchTestInput {
+ res = "osm/uk-test-1.osm.gz";
+ sha256 = "0jdngkjn22jvi8q7hrzpqb9mnjlz82h1dwdmc4qrb64kkhzm4dfk";
+ })
+ (fetchTestInput {
+ res = "osm/uk-test-2.osm.gz";
+ sha256 = "05mw0qcdgki151ldmxayry0gqlb72jm5wrvxq3dkwq5i7jb21qs4";
+ })
+ (fetchTestInput {
+ res = "osm/is-in-samples.osm";
+ sha256 = "18vqfbq25ys59bj6dl6dq3q4m2ri3ki2xazim14fm94k1pbyhbh3";
+ })
+ (fetchTestInput {
+ res = "mp/test1.mp";
+ sha256 = "1dykr0z84c3fqgm9kdp2dzvxc3galjbx0dn9zxjw8cfk7mvnspj2";
+ })
+ (fetchTestInput {
+ res = "img/63240001.img";
+ sha256 = "1wmqgy940q1svazw85z8di20xyjm3vpaiaj9hizr47b549klw74q";
+ })
+ (fetchTestInput {
+ res = "img/63240002.img";
+ sha256 = "12ivywkiw6lrglyk0clnx5ff2wqj4z0c3f5yqjsqlsaawbmxqa1f";
+ })
+ (fetchTestInput {
+ res = "img/63240003.img";
+ sha256 = "19mgxqv6kqk8ahs8s819sj7cc79id67373ckwfsq7vvqyfrbasz1";
+ })
+ (fetchTestInput {
+ res = "hgt/N00W090.hgt.zip";
+ sha256 = "16hb06bgf47sz2mfbbx3xqmrh1nmm04wj4ngm512sng4rjhksxgn";
+ })
+ (fetchTestInput {
+ res = "hgt/N00W091.hgt.zip";
+ sha256 = "153j4wj7170qj81nr7sr6dp9zar62gnrkh6ww62bygpfqqyzdr1x";
+ })
+ (fetchTestInput {
+ res = "hgt/S01W090.hgt.zip";
+ sha256 = "0czgs9rhp7bnzmzm7907vprj3nhm2lj6q1piafk8dm9rcqkfg8sj";
+ })
+ (fetchTestInput {
+ res = "hgt/S01W091.hgt.zip";
+ sha256 = "0z58q3ai499mflxfjqhqv9i1di3fmp05pkv39886k1na107g3wbn";
+ })
+ (fetchTestInput {
+ res = "hgt/S02W090.hgt.zip";
+ sha256 = "0q7817gdxk2vq73ci6ffks288zqywc21f5ns73b6p5ds2lrxhf5n";
+ })
+ (fetchTestInput {
+ res = "hgt/S02W091.hgt.zip";
+ sha256 = "1mwpgd85v9n99gmx2bn8md7d312wvhq86w3c9k92y8ayrs20lmdr";
+ })
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/moolticute/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/moolticute/default.nix
new file mode 100644
index 000000000000..bc825b94facb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/moolticute/default.nix
@@ -0,0 +1,46 @@
+{ lib, mkDerivation, fetchFromGitHub
+, libusb1
+, pkg-config
+, qmake
+, qtbase
+, qttools
+, qtwebsockets
+}:
+
+mkDerivation rec {
+ pname = "moolticute";
+ version = "0.44.17";
+
+ src = fetchFromGitHub {
+ owner = "mooltipass";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1bqp99n8cqr7kjiffbs39v0dd280f50hid5py3c4zgc7aqj9k0bx";
+ };
+
+ outputs = [ "out" "udev" ];
+
+ nativeBuildInputs = [ pkg-config qmake qttools ];
+ buildInputs = [ libusb1 qtbase qtwebsockets ];
+
+ preConfigure = "mkdir -p build && cd build";
+ qmakeFlags = [ "../Moolticute.pro" ];
+
+ preInstall = ''
+ mkdir -p $udev/lib/udev/rules.d
+ sed -n '/^ \+cat > "$tmpfile" <<- EOF$/,/^EOF$/p' ../data/moolticute.sh |
+ sed '1d;$d' > $udev/lib/udev/rules.d/50-mooltipass.rules
+ '';
+
+ meta = with lib; {
+ description = "GUI app and daemon to work with Mooltipass device via USB";
+ longDescription = ''
+ To install udev rules, add `services.udev.packages == [ moolticute.udev ]`
+ into `nixos/configuration.nix`.
+ '';
+ homepage = "https://github.com/mooltipass/moolticute";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.kirikaza ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix
new file mode 100644
index 000000000000..2ae3f1894d53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, perl
+, alsaLib, libevdev, libopus, udev, SDL2
+, ffmpeg_3, pkgconfig, xorg, libvdpau, libpulseaudio, libcec
+, curl, expat, avahi, enet, libuuid, libva
+}:
+
+stdenv.mkDerivation rec {
+ pname = "moonlight-embedded";
+ version = "2.4.10";
+
+ src = fetchFromGitHub {
+ owner = "irtimmer";
+ repo = "moonlight-embedded";
+ rev = "v${version}";
+ sha256 = "0m5i3q3hbjl51cndjpz5hxi3br6fvpn1fzdv0f6lxjxgw9z32413";
+ fetchSubmodules = true;
+ };
+
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ cmake perl ];
+ buildInputs = [
+ alsaLib libevdev libopus udev SDL2
+ ffmpeg_3 pkgconfig xorg.libxcb libvdpau libpulseaudio libcec
+ xorg.libpthreadstubs curl expat avahi enet libuuid libva
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Open source implementation of NVIDIA's GameStream";
+ homepage = "https://github.com/irtimmer/moonlight-embedded";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.globin ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mop/default.nix
new file mode 100644
index 000000000000..be8176089240
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mop/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "mop";
+ version = "0.2.0";
+ rev = "bc666ec165d08b43134f7ec0bf29083ad5466243";
+
+ goPackagePath = "github.com/michaeldv/mop";
+ goDeps = ./deps.nix;
+
+ preConfigure = ''
+ for i in $(find . -type f);do
+ substituteInPlace $i --replace michaeldv/termbox-go nsf/termbox-go
+ done
+ substituteInPlace Makefile --replace mop/cmd mop/mop
+ mv cmd mop
+ '';
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/mop-tracker/mop";
+ sha256 = "0zp51g9i8rw6acs4vnrxclbxa5z1v0a0m1xx27szszp0rphcczkx";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Simple stock tracker implemented in go";
+ homepage = "https://github.com/mop-tracker/mop";
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mop/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mop/deps.nix
new file mode 100644
index 000000000000..4081cd1ddaa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mop/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "github.com/nsf/termbox-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/nsf/termbox-go";
+ rev = "9aecf65084a5754f12d27508fa2e6ed56851953b";
+ sha256 = "16sak07bgvmax4zxfrd4jia1dgygk733xa8vk8cdx28z98awbfsh";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mps-youtube/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mps-youtube/default.nix
new file mode 100644
index 000000000000..b1118cfc5977
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mps-youtube/default.nix
@@ -0,0 +1,34 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "mps-youtube";
+ version = "unstable-2020-01-28";
+
+ src = fetchFromGitHub {
+ owner = "mps-youtube";
+ repo = "mps-youtube";
+ rev = "b808697133ec2ad7654953232d1e841b20aa7cc3";
+ sha256 = "0lqprlpc0v092xqkjc0cc395ag45lijwgd34dpg2jy6i0f2szywv";
+ };
+
+ propagatedBuildInputs = [ pafy ];
+
+ # disabled due to error in loading unittest
+ # don't know how to make test from: <mps_youtube. ...>
+ doCheck = false;
+
+ # before check create a directory and redirect XDG_CONFIG_HOME to it
+ preCheck = ''
+ mkdir -p check-phase
+ export XDG_CONFIG_HOME=$(pwd)/check-phase
+ '';
+
+ meta = with lib; {
+ description = "Terminal based YouTube player and downloader";
+ homepage = "https://github.com/mps-youtube/mps-youtube";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ koral odi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mpvc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mpvc/default.nix
new file mode 100644
index 000000000000..eacc4b5758c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mpvc/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, socat, fetchFromGitHub, makeWrapper }:
+
+stdenv.mkDerivation {
+ name = "mpvc-unstable-2017-03-18";
+
+ src = fetchFromGitHub {
+ owner = "wildefyr";
+ repo = "mpvc";
+ rev = "aea5c661455248cde7ac9ddba5f63cc790d26512";
+ sha256 = "0qiyvb3ck1wyd3izajwvlq4bwgsbq7x8ya3fgi5i0g2qr39a1qml";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+ installFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/mpvc --prefix PATH : "${socat}/bin/"
+ '';
+
+ buildInputs = [ socat makeWrapper ];
+
+ meta = with stdenv.lib; {
+ description = "A mpc-like control interface for mpv";
+ homepage = "https://github.com/wildefyr/mpvc";
+ license = licenses.mit;
+ maintainers = [ maintainers.neeasade ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix
new file mode 100644
index 000000000000..1f6112d7d7bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch }:
+
+buildGoPackage rec {
+ pname = "mqtt-bench";
+ version = "0.3.0";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/takanorig/mqtt-bench";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "takanorig";
+ repo = "mqtt-bench";
+ sha256 = "03b9ak2j303iwq6abd7j10f2cs2ianwnbflwmyx9g96i7zd74f5m";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/takanorig/mqtt-bench/pull/13.patch";
+ name = "mqtt-paho-changes.patch";
+ sha256 = "17c8ajrp5dmbsasj6njxrlhy0x08b65fignzm3yccqbhb4ijcvha";
+ })
+ ];
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "Mosquitto benchmark tool";
+ homepage = "https://github.com/takanorig/mqtt-bench";
+ maintainers = with maintainers; [ disassembler ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix
new file mode 100644
index 000000000000..d93d3c468145
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix
@@ -0,0 +1,21 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/eclipse/paho.mqtt.golang";
+ fetch = {
+ type = "git";
+ url = "https://github.com/eclipse/paho.mqtt.golang";
+ rev = "65f43bda5f7edbbf6b7533d3a5a13b2c67cf3545";
+ sha256 = "1ad136xf78br599ya43j45f8dycjip1k0hkplayy1slg8ckwrhdr";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "8351a756f30f1297fe94bbf4b767ec589c6ea6d0";
+ sha256 = "0b6m579i3wrx1m69mqkdng5gjfssprxx0pg45kzrdi68sh0zr5d1";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mu-repo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mu-repo/default.nix
new file mode 100644
index 000000000000..eacd1971610f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mu-repo/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub, buildPythonApplication, pytestCheckHook, git }:
+
+buildPythonApplication rec {
+ pname = "mu-repo";
+ version = "1.8.1";
+
+ src = fetchFromGitHub {
+ owner = "fabioz";
+ repo = pname;
+ rev = "mu_repo_${lib.replaceStrings [ "." ] [ "_" ] version}";
+ sha256 = "0mmjdkvmdlsndi2q56ybxyz2988ppxsbbr1g54nzzkkvab2bc2na";
+ };
+
+ propagatedBuildInputs = [ git ];
+
+ checkInputs = [ pytestCheckHook git ];
+
+ meta = with lib; {
+ description = "Tool to help in dealing with multiple git repositories";
+ homepage = "http://fabioz.github.io/mu-repo/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sikmir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mucommander/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mucommander/default.nix
new file mode 100644
index 000000000000..e598e099d065
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mucommander/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchFromGitHub, gradle_4_10, perl, makeWrapper, jre, gsettings-desktop-schemas }:
+
+let
+ version = "0.9.3-3";
+ name = "mucommander-${version}";
+
+ src = fetchFromGitHub {
+ owner = "mucommander";
+ repo = "mucommander";
+ rev = version;
+ sha256 = "1zhglsx3b5k6np3ppfkkrqz9wg0j7ip598xxfgn75gjl020w0can";
+ };
+
+ postPatch = ''
+ # there is no .git anyway
+ substituteInPlace build.gradle \
+ --replace "git = org.ajoberstar.grgit.Grgit.open(file('.'))" "" \
+ --replace "revision = git.head().id" "revision = 'abcdefgh'" \
+ --replace "proguard.enabled =" "// proguard.enabled =" \
+ --replace "version = '0.9.4'" "version = '${version}'"
+
+ # disable gradle plugins with native code and their targets
+ perl -i.bak1 -pe "s#(^\s*id '.+' version '.+'$)#// \1#" build.gradle
+ perl -i.bak2 -pe "s#(.*)#// \1# if /^(buildscript|task portable|task nsis|task proguard|task tgz|task\(afterEclipseImport\)|launch4j|macAppBundle|buildRpm|buildDeb|shadowJar)/ ... /^}/" build.gradle
+
+ # fix source encoding
+ find . -type f -name build.gradle \
+ -exec perl -i.bak3 -pe "s#(repositories\.jcenter\(\))#
+ \1
+ compileJava.options.encoding = 'UTF-8'
+ compileTestJava.options.encoding = 'UTF-8'
+ #" {} \;
+ '';
+
+ # fake build to pre-download deps into fixed-output derivation
+ deps = stdenv.mkDerivation {
+ name = "${name}-deps";
+ inherit src postPatch;
+ nativeBuildInputs = [ gradle_4_10 perl ];
+ buildPhase = ''
+ export GRADLE_USER_HOME=$(mktemp -d)
+ gradle --no-daemon build
+ '';
+ # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
+ installPhase = ''
+ find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
+ | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
+ | sh
+ '';
+ outputHashAlgo = "sha256";
+ outputHashMode = "recursive";
+ outputHash = "1v5a76pvk7llbyv2rg50wlxc2wf468l2cslz1vi20aihycbyky7j";
+ };
+
+in stdenv.mkDerivation {
+ inherit name src postPatch;
+ nativeBuildInputs = [ gradle_4_10 perl makeWrapper ];
+
+ buildPhase = ''
+ export GRADLE_USER_HOME=$(mktemp -d)
+
+ # point to offline repo
+ find . -type f -name build.gradle \
+ -exec perl -i.bak3 -pe "s#repositories\.jcenter\(\)#
+ repositories { mavenLocal(); maven { url '${deps}' } }
+ #" {} \;
+
+ gradle --offline --no-daemon distTar
+ '';
+
+ installPhase = ''
+ mkdir $out
+ tar xvf build/distributions/mucommander-${version}.tar --directory=$out --strip=1
+ wrapProgram $out/bin/mucommander \
+ --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name} \
+ --set JAVA_HOME ${jre}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.mucommander.com/";
+ description = "Cross-platform file manager";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ volth ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/multibootusb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/multibootusb/default.nix
new file mode 100644
index 000000000000..c1c7b5a2706e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/multibootusb/default.nix
@@ -0,0 +1,114 @@
+{ fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, qemu, unzip, zip,
+ coreutils, gnugrep, which, gnused, e2fsprogs, autoPatchelfHook, gptfdisk,
+ python36Packages, qt5, runtimeShell, stdenv, util-linux, wrapQtAppsHook }:
+
+# Note: Multibootusb is tricky to maintain. It relies on the
+# $PYTHONPATH variable containing some of their code, so that
+# something like:
+#
+# from scripts import config
+#
+# works. It also relies on the current directory to find some runtime
+# resources thanks to a use of __file__.
+#
+# https://github.com/mbusb/multibootusb/blob/0d34d70c3868f1d7695cfd141141b17c075de967/scripts/osdriver.py#L59
+
+python36Packages.buildPythonApplication rec {
+ pname = "multibootusb";
+ name = "${pname}-${version}";
+ version = "9.2.0";
+
+ nativeBuildInputs = [
+ wrapQtAppsHook
+ autoPatchelfHook
+ unzip
+ zip
+ ];
+
+ runTimeDeps = [
+ coreutils
+ gnugrep
+ which
+ parted
+ util-linux
+ qemu
+ p7zip
+ gnused
+ mtools
+ procps
+ e2fsprogs
+ gptfdisk
+ ];
+
+ buildInputs = [
+ libxcb
+ python36Packages.python
+ qt5.full
+ ];
+
+ src = fetchFromGitHub {
+ owner = "mbusb";
+ repo = pname;
+ rev = "v${version}";
+
+ sha256 = "0wlan0cp6c2i0nahixgpmkm0h4n518gj8rc515d579pqqp91p2h3";
+ };
+
+ # Tests can't run inside the NixOS sandbox
+ # "Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory"
+ doCheck = false;
+
+ pythonPath = [
+ python36Packages.dbus-python
+ python36Packages.pyqt5
+ python36Packages.pytest-shutil
+ python36Packages.pyudev
+ python36Packages.six
+ ];
+
+ # multibootusb ships zips with various versions of syslinux, we need to patchelf them
+ postPatch = ''
+ for zip in $(find . -name "*.zip"); do
+ zip=$(readlink -f $zip)
+ target="$(mktemp -d)"
+ pushd $target
+ unzip $zip
+ rm $zip
+ autoPatchelf .
+ zip -r $zip *
+ popd
+ done
+ '';
+
+ postInstall = ''
+ # This script doesn't work and it doesn't add much anyway
+ rm $out/bin/multibootusb-pkexec
+
+ # The installed data isn't sufficient for whatever reason, missing gdisk/gdisk.exe
+ mkdir -p "$out/share/${pname}"
+ cp -r data "$out/share/${pname}/data"
+ '';
+
+ preFixup = ''
+ makeWrapperArgs+=(
+ # Firstly, add all necessary QT variables
+ "''${qtWrapperArgs[@]}"
+
+ # Then, add the installed scripts/ directory to the python path
+ --prefix "PYTHONPATH" ":" "$out/lib/${python36Packages.python.libPrefix}/site-packages"
+
+ # Add some runtime dependencies
+ --prefix "PATH" ":" "${stdenv.lib.makeBinPath runTimeDeps}"
+
+ # Finally, move to directory that contains data
+ --run "cd $out/share/${pname}"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Multiboot USB creator for Linux live disks";
+ homepage = "http://multibootusb.org/";
+ license = licenses.gpl2;
+ maintainers = []; # Looking for a maintainer!
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/1.17.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/1.17.nix
new file mode 100644
index 000000000000..c6243e5f1d6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/1.17.nix
@@ -0,0 +1,95 @@
+{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, freetype, harfbuzz, openjpeg
+, jbig2dec, libjpeg , darwin
+, enableX11 ? true, libX11, libXext, libXi, libXrandr
+, enableCurl ? true, curl, openssl
+, enableGL ? true, freeglut, libGLU
+}:
+
+let
+
+ # OpenJPEG version is hardcoded in package source
+ openJpegVersion = with stdenv;
+ lib.versions.majorMinor (lib.getVersion openjpeg);
+
+
+in stdenv.mkDerivation rec {
+ version = "1.17.0";
+ pname = "mupdf";
+
+ src = fetchurl {
+ url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
+ sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
+ };
+
+ patches =
+ # Use shared libraries to decrease size
+ stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch
+ ++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch
+ ;
+
+ postPatch = ''
+ sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
+ '';
+
+ makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ];
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU ]
+ ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
+ ++ lib.optionals enableCurl [ curl openssl ]
+ ++ lib.optionals enableGL (
+ if stdenv.isDarwin then
+ with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
+ else
+ [ freeglut libGLU ])
+ ;
+ outputs = [ "bin" "dev" "out" "man" "doc" ];
+
+ preConfigure = ''
+ # Don't remove mujs because upstream version is incompatible
+ rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,libjpeg,openjpeg,zlib}
+ '';
+
+ postInstall = ''
+ mkdir -p "$out/lib/pkgconfig"
+ cat >"$out/lib/pkgconfig/mupdf.pc" <<EOF
+ prefix=$out
+ libdir=$out/lib
+ includedir=$out/include
+
+ Name: mupdf
+ Description: Library for rendering PDF documents
+ Version: ${version}
+ Libs: -L$out/lib -lmupdf -lmupdf-third
+ Cflags: -I$dev/include
+ EOF
+
+ moveToOutput "bin" "$bin"
+ ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
+ mkdir -p $bin/share/applications
+ cat > $bin/share/applications/mupdf.desktop <<EOF
+ [Desktop Entry]
+ Type=Application
+ Version=1.0
+ Name=mupdf
+ Comment=PDF viewer
+ Exec=$bin/bin/mupdf-x11 %f
+ Terminal=false
+ MimeType=application/pdf;application/x-pdf;application/x-cbz;application/oxps;application/vnd.ms-xpsdocument;application/epub+zip
+ EOF
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://mupdf.com";
+ repositories.git = "git://git.ghostscript.com/mupdf.git";
+ description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C";
+ license = licenses.agpl3Plus;
+ maintainers = with maintainers; [ vrthra fpletz ];
+ platforms = platforms.unix;
+ knownVulnerabilities = [
+ "CVE-2020-26519: denial of service when parsing JBIG2"
+ "CVE-2017-5991: NULL pointer dereference"
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/darwin.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/darwin.patch
new file mode 100644
index 000000000000..be1b84b0012f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/darwin.patch
@@ -0,0 +1,30 @@
+diff -ruN mupdf-1.14.0-source.orig/Makerules mupdf-1.14.0-source/Makerules
+--- mupdf-1.14.0-source.orig/Makerules 2018-11-02 06:57:12.114012496 +0100
++++ mupdf-1.14.0-source/Makerules 2018-11-02 10:11:56.717232992 +0100
+@@ -80,13 +80,6 @@
+ HAVE_GLUT := yes
+ SYS_GLUT_CFLAGS := -Wno-deprecated-declarations
+ SYS_GLUT_LIBS := -framework GLUT -framework OpenGL
+- CC = xcrun cc
+- AR = xcrun ar
+- LD = xcrun ld
+- RANLIB = xcrun ranlib
+-
+-else ifeq ($(OS),Linux)
+- HAVE_OBJCOPY := yes
+
+ ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes)
+ SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2)
+@@ -119,12 +112,6 @@
+ SYS_CURL_LIBS := $(shell pkg-config --libs libcurl)
+ endif
+
+- HAVE_GLUT := yes
+- ifeq ($(HAVE_GLUT),yes)
+- SYS_GLUT_CFLAGS :=
+- SYS_GLUT_LIBS := -lglut -lGL
+- endif
+-
+ HAVE_X11 := $(shell pkg-config --exists x11 xext && echo yes)
+ ifeq ($(HAVE_X11),yes)
+ X11_CFLAGS := $(shell pkg-config --cflags x11 xext)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/default.nix
new file mode 100644
index 000000000000..836d970a2b55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/default.nix
@@ -0,0 +1,108 @@
+{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, freetype, harfbuzz, openjpeg
+, jbig2dec, libjpeg , darwin
+, gumbo
+, enableX11 ? true, libX11, libXext, libXi, libXrandr
+, enableCurl ? true, curl, openssl
+, enableGL ? true, freeglut, libGLU
+}:
+
+let
+
+ # OpenJPEG version is hardcoded in package source
+ openJpegVersion = with stdenv;
+ lib.versions.majorMinor (lib.getVersion openjpeg);
+
+
+in stdenv.mkDerivation rec {
+ version = "1.18.0";
+ pname = "mupdf";
+
+ src = fetchurl {
+ url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
+ sha256 = "0rljl44y8p8hgaqializlyrgpij1wbnrzyp0ll5kcg7w05nylq48";
+ };
+
+ patches =
+ stdenv.lib.optional stdenv.isDarwin ./darwin.patch ++ [
+ (fetchpatch {
+ name = "pdfocr.patch";
+ url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=a507b139adf37d2c742e039815601cdc2aa00a84";
+ sha256 = "1fx6pdgwrbk3bqsx53764d61llfj9s5q8lxqkna7mjnp7mg4krj3";
+ })
+ (fetchpatch {
+ name = "pdf-layer.patch";
+ url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=b82e9b6d6b46877e5c3763cc3bc641c66fa7eb54";
+ sha256 = "0ma8jq8d9a0mf26qjklgi4gdaflpjik1br1nhafzvjz7ccl56ksm";
+ })
+ (fetchpatch {
+ name = "pixmap.patch";
+ url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=32e4e8b4bcbacbf92af7c88337efae21986d9603";
+ sha256 = "1zqkxgwrhcwsdya98pcmpq2815jjmv3fwsp0sba9f5nq5xi6whbj";
+ })
+ ];
+
+ postPatch = ''
+ sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
+ '';
+
+ # Use shared libraries to decrease size
+ buildFlags = [ "shared" ];
+
+ makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ];
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU gumbo ]
+ ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
+ ++ lib.optionals enableCurl [ curl openssl ]
+ ++ lib.optionals enableGL (
+ if stdenv.isDarwin then
+ with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
+ else
+ [ freeglut libGLU ])
+ ;
+ outputs = [ "bin" "dev" "out" "man" "doc" ];
+
+ preConfigure = ''
+ # Don't remove mujs because upstream version is incompatible
+ rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,libjpeg,openjpeg,zlib}
+ '';
+
+ postInstall = ''
+ mkdir -p "$out/lib/pkgconfig"
+ cat >"$out/lib/pkgconfig/mupdf.pc" <<EOF
+ prefix=$out
+ libdir=$out/lib
+ includedir=$out/include
+
+ Name: mupdf
+ Description: Library for rendering PDF documents
+ Version: ${version}
+ Libs: -L$out/lib -lmupdf -lmupdf-third
+ Cflags: -I$dev/include
+ EOF
+
+ moveToOutput "bin" "$bin"
+ ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
+ mkdir -p $bin/share/applications
+ cat > $bin/share/applications/mupdf.desktop <<EOF
+ [Desktop Entry]
+ Type=Application
+ Version=1.0
+ Name=mupdf
+ Comment=PDF viewer
+ Exec=$bin/bin/mupdf-x11 %f
+ Terminal=false
+ MimeType=application/pdf;application/x-pdf;application/x-cbz;application/oxps;application/vnd.ms-xpsdocument;application/epub+zip
+ EOF
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://mupdf.com";
+ repositories.git = "git://git.ghostscript.com/mupdf.git";
+ description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C";
+ license = licenses.agpl3Plus;
+ maintainers = with maintainers; [ vrthra fpletz ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/default.upstream b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/default.upstream
new file mode 100644
index 000000000000..852233633ca5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/default.upstream
@@ -0,0 +1,7 @@
+url https://mupdf.com/downloads/archive/
+do_overwrite(){
+ ensure_hash
+ ensure_version
+ set_var_value version $CURRENT_VERSION
+ set_var_value sha256 $CURRENT_HASH
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch
new file mode 100644
index 000000000000..131a1bbbf6bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch
@@ -0,0 +1,39 @@
+--- mupdf-1.14.0-source.orig/Makefile 2018-11-02 06:57:12.114012496 +0100
++++ mupdf-1.14.0-source/Makefile 2018-11-02 09:57:10.067945307 +0100
+@@ -20,7 +20,7 @@
+ # Do not specify CFLAGS or LIBS on the make invocation line - specify
+ # XCFLAGS or XLIBS instead. Make ignores any lines in the makefile that
+ # set a variable that was set on the command line.
+-CFLAGS += $(XCFLAGS) -Iinclude
++CFLAGS += $(XCFLAGS) -Iinclude -fPIC
+ LIBS += $(XLIBS) -lm
+
+ ifneq ($(threading),no)
+@@ -190,17 +190,21 @@
+
+ # --- Library ---
+
+-MUPDF_LIB = $(OUT)/libmupdf.a
+-THIRD_LIB = $(OUT)/libmupdf-third.a
+-THREAD_LIB = $(OUT)/libmupdf-threads.a
+-PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a
++MUPDF_LIB = $(OUT)/libmupdf.so
++THIRD_LIB = $(OUT)/libmupdf-third.so
++THREAD_LIB = $(OUT)/libmupdf-threads.so
++PKCS7_LIB = $(OUT)/libmupdf-pkcs7.so
+
+-$(MUPDF_LIB) : $(MUPDF_OBJ)
++$(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_LIB) $(THREAD_LIB)
++ $(LINK_CMD) $(THIRD_LIBS) -shared -Wl,-soname -Wl,libmupdf.so -Wl,--no-undefined
+ $(THIRD_LIB) : $(THIRD_OBJ)
++ $(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-third.so -Wl,--no-undefined
+ $(THREAD_LIB) : $(THREAD_OBJ)
++ $(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-threads.so -Wl,--no-undefined -lpthread
+ $(PKCS7_LIB) : $(PKCS7_OBJ)
++ $(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-pkcs7.so
+
+-INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB)
++INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB) $(PKCS7_LIB)
+
+ # --- Main tools and viewers ---
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mwic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mwic/default.nix
new file mode 100644
index 000000000000..3be02e7c41c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mwic/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+stdenv.mkDerivation rec {
+ version = "0.7.8";
+ pname = "mwic";
+
+ src = fetchurl {
+ url = "https://github.com/jwilk/mwic/releases/download/${version}/${pname}-${version}.tar.gz";
+ sha256 = "0nnhziz9v523hpciylnxfajmxabh2ig5iawzwrfpf7aww70v330x";
+ };
+
+ makeFlags=["PREFIX=\${out}"];
+
+ nativeBuildInputs = [
+ pythonPackages.wrapPython
+ ];
+
+ propagatedBuildInputs = with pythonPackages; [ pyenchant regex ];
+
+ postFixup = ''
+ buildPythonPath "$out"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://jwilk.net/software/mwic";
+ description = "spell-checker that groups possible misspellings and shows them in their contexts";
+ license = licenses.mit;
+ maintainers = with maintainers; [ matthiasbeyer ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
new file mode 100644
index 000000000000..71adcdc0757b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
@@ -0,0 +1,189 @@
+{ stdenv
+, fetchurl
+, substituteAll
+, cmake
+, ninja
+, pkgconfig
+, glibc
+, gtk3
+, gtkmm3
+, pcre
+, swig
+, antlr4_8
+, sudo
+, mysql
+, libxml2
+, libmysqlconnectorcpp
+, vsqlite
+, gdal
+, libiodbc
+, libpthreadstubs
+, libXdmcp
+, libuuid
+, libzip
+, libsecret
+, libssh
+, python2
+, jre
+, boost
+, libsigcxx
+, libX11
+, openssl
+, rapidjson
+, proj
+, cairo
+, libxkbcommon
+, epoxy
+, wrapGAppsHook
+, at-spi2-core
+, dbus
+, bash
+, coreutils
+}:
+
+let
+ inherit (python2.pkgs) paramiko pycairo pyodbc;
+in stdenv.mkDerivation rec {
+ pname = "mysql-workbench";
+ version = "8.0.21";
+
+ src = fetchurl {
+ url = "http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-${version}-src.tar.gz";
+ sha256 = "0rqgr1dcbf6yp60hninbw5dnwykx5ngbyhhx0sbhgv0m0cq5a44h";
+ };
+
+ patches = [
+ ./fix-gdal-includes.patch
+
+ (substituteAll {
+ src = ./hardcode-paths.patch;
+ catchsegv = "${glibc.bin}/bin/catchsegv";
+ bash = "${bash}/bin/bash";
+ cp = "${coreutils}/bin/cp";
+ dd = "${coreutils}/bin/dd";
+ ls = "${coreutils}/bin/ls";
+ mkdir = "${coreutils}/bin/mkdir";
+ nohup = "${coreutils}/bin/nohup";
+ rm = "${coreutils}/bin/rm";
+ rmdir = "${coreutils}/bin/rmdir";
+ sudo = "${sudo}/bin/sudo";
+ })
+
+ # Fix swig not being able to find headers
+ # https://github.com/NixOS/nixpkgs/pull/82362#issuecomment-597948461
+ (substituteAll {
+ src = ./fix-swig-build.patch;
+ cairoDev = "${cairo.dev}";
+ })
+ ];
+
+ # have it look for 4.7.2 instead of 4.7.1
+ preConfigure = ''
+ substituteInPlace CMakeLists.txt \
+ --replace "antlr-4.7.1-complete.jar" "antlr-4.8-complete.jar"
+ '';
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ pkgconfig
+ jre
+ swig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ gtkmm3
+ libX11
+ antlr4_8.runtime.cpp
+ python2
+ mysql
+ libxml2
+ libmysqlconnectorcpp
+ vsqlite
+ gdal
+ boost
+ libssh
+ openssl
+ rapidjson
+ libiodbc
+ pcre
+ cairo
+ libuuid
+ libzip
+ libsecret
+ libsigcxx
+ proj
+
+ # python dependencies:
+ paramiko
+ pycairo
+ pyodbc
+ # TODO: package sqlanydb and add it here
+
+ # transitive dependencies:
+ libpthreadstubs
+ libXdmcp
+ libxkbcommon
+ epoxy
+ at-spi2-core
+ dbus
+ ];
+
+ postPatch = ''
+ patchShebangs tools/get_wb_version.sh
+ '';
+
+ # error: 'OGRErr OGRSpatialReference::importFromWkt(char**)' is deprecated
+ NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+ cmakeFlags = [
+ "-DMySQL_CONFIG_PATH=${mysql}/bin/mysql_config"
+ "-DIODBC_CONFIG_PATH=${libiodbc}/bin/iodbc-config"
+ "-DWITH_ANTLR_JAR=${antlr4_8.jarLocation}"
+ # mysql-workbench 8.0.21 depends on libmysqlconnectorcpp 1.1.8.
+ # Newer versions of connector still provide the legacy library when enabled
+ # but the headers are in a different location.
+ "-DMySQLCppConn_INCLUDE_DIR=${libmysqlconnectorcpp}/include/jdbc"
+ ];
+
+ # There is already an executable and a wrapper in bindir
+ # No need to wrap both
+ dontWrapGApps = true;
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : "${python2}/bin"
+ --prefix PROJSO : "${proj}/lib/libproj.so"
+ --set PYTHONPATH $PYTHONPATH
+ )
+ '';
+
+ # Let’s wrap the programs not ending with bin
+ # until https://bugs.mysql.com/bug.php?id=91948 is fixed
+ postFixup = ''
+ find -L "$out/bin" -type f -executable -print0 \
+ | while IFS= read -r -d ''' file; do
+ if [[ "''${file}" != *-bin ]]; then
+ echo "Wrapping program $file"
+ wrapGApp "$file"
+ fi
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Visual MySQL database modeling, administration and querying tool";
+ longDescription = ''
+ MySQL Workbench is a modeling tool that allows you to design
+ and generate MySQL databases graphically. It also has administration
+ and query development modules where you can manage MySQL server instances
+ and execute SQL queries.
+ '';
+
+ homepage = "http://wb.mysql.com/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.kkallio ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch
new file mode 100644
index 000000000000..0a5c31fd40a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch
@@ -0,0 +1,47 @@
+--- a/backend/wbpublic/grt/spatial_handler.h
++++ b/backend/wbpublic/grt/spatial_handler.h
+@@ -24,12 +24,12 @@
+ #ifndef SPATIAL_HANDLER_H_
+ #define SPATIAL_HANDLER_H_
+
+-#include <gdal/ogrsf_frmts.h>
+-#include <gdal/ogr_api.h>
+-#include <gdal/gdal_pam.h>
+-#include <gdal/memdataset.h>
+-#include <gdal/gdal_alg.h>
+-#include <gdal/gdal.h>
++#include <ogrsf_frmts.h>
++#include <ogr_api.h>
++#include <gdal_pam.h>
++#include <memdataset.h>
++#include <gdal_alg.h>
++#include <gdal.h>
+ #include <deque>
+ #include "base/geometry.h"
+ #include "wbpublic_public_interface.h"
+--- a/backend/wbpublic/grtui/geom_draw_box.h
++++ b/backend/wbpublic/grtui/geom_draw_box.h
+@@ -25,7 +25,7 @@
+ #define _GEOM_DRAW_BOX_H_
+
+ #include <mforms/drawbox.h>
+-#include <gdal/ogr_geometry.h>
++#include <ogr_geometry.h>
+ #include "wbpublic_public_interface.h"
+
+ class WBPUBLICBACKEND_PUBLIC_FUNC GeomDrawBox : public mforms::DrawBox {
+--- a/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp
++++ b/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp
+@@ -21,9 +21,9 @@
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#include <gdal/ogrsf_frmts.h>
+-#include <gdal/ogr_api.h>
+-#include <gdal/gdal.h>
++#include <ogrsf_frmts.h>
++#include <ogr_api.h>
++#include <gdal.h>
+
+ #include <grts/structs.db.query.h>
+ #include <grtpp_util.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-swig-build.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-swig-build.patch
new file mode 100644
index 000000000000..ace1e5add43f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-swig-build.patch
@@ -0,0 +1,12 @@
+--- a/library/forms/swig/CMakeLists.txt
++++ b/library/forms/swig/CMakeLists.txt
+@@ -57,7 +57,7 @@
+
+ set(CMAKE_SWIG_FLAGS -w312)
+ set_source_files_properties(cairo.i PROPERTIES CPLUSPLUS ON)
+-set_property(SOURCE cairo.i PROPERTY SWIG_FLAGS -DCAIRO_HAS_PNG_FUNCTIONS=1 -fcompact -DSWIG_PYTHON_LEGACY_BOOL -I/usr/include)
++set_property(SOURCE cairo.i PROPERTY SWIG_FLAGS -DCAIRO_HAS_PNG_FUNCTIONS=1 -fcompact -DSWIG_PYTHON_LEGACY_BOOL -I@cairoDev@/include)
+ if(CMAKE_VERSION VERSION_LESS 3.8)
+ swig_add_module(cairo python cairo.i)
+ else()
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch
new file mode 100644
index 000000000000..dddf992e4c12
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch
@@ -0,0 +1,187 @@
+--- a/frontend/linux/workbench/mysql-workbench.in
++++ b/frontend/linux/workbench/mysql-workbench.in
+@@ -99,8 +99,8 @@
+ if test "$WB_DEBUG" != ""; then
+ $WB_DEBUG $MWB_BINARIES_DIR/mysql-workbench-bin "$@"
+ else
+- if type -p catchsegv > /dev/null; then
+- catchsegv $MWB_BINARIES_DIR/mysql-workbench-bin "$@"
++ if type -p @catchsegv@ > /dev/null; then
++ @catchsegv@ $MWB_BINARIES_DIR/mysql-workbench-bin "$@"
+ else
+ $MWB_BINARIES_DIR/mysql-workbench-bin "$@"
+ fi
+--- a/plugins/migration/frontend/migration_bulk_copy_data.py
++++ b/plugins/migration/frontend/migration_bulk_copy_data.py
+@@ -110,7 +110,7 @@
+ return 'sh'
+
+ def generate_import_script(self, connection_args, path_to_file, schema_name):
+- output = ['#!/bin/bash']
++ output = ['#!/usr/bin/env bash']
+ output.append('MYPATH=\`pwd\`')
+
+ output.append('if [ -f \$MYPATH/%s ] ; then' % self.error_log_name)
+@@ -164,7 +164,7 @@
+ return 'sh'
+
+ def generate_import_script(self, connection_args, path_to_file, schema_name):
+- output = ['#!/bin/bash']
++ output = ['#!/usr/bin/env bash']
+ output.append('MYPATH=\`pwd\`')
+
+ output.append('if [ -f \$MYPATH/%s ] ; then' % self.error_log_name)
+@@ -417,7 +417,7 @@
+
+ with open(script_path, 'w+') as f:
+ os.chmod(script_path, 0700)
+- f.write('#!/bin/bash\n\n')
++ f.write('#!/usr/bin/env bash\n\n')
+ f.write('MYPATH=`pwd`\n')
+
+ f.write("arg_source_password=\"<put source password here>\"\n")
+@@ -521,7 +521,7 @@
+
+ with open(script_path, 'w+') as f:
+ os.chmod(script_path, 0700)
+- f.write('#!/bin/bash\n\n')
++ f.write('#!/usr/bin/env bash\n\n')
+ f.write('MYPATH=`pwd`\n')
+
+ f.write("arg_source_password=\"<put source password here>\"\n")
+--- a/plugins/wb.admin/backend/wb_server_control.py
++++ b/plugins/wb.admin/backend/wb_server_control.py
+@@ -39,7 +39,7 @@
+
+ UnixVariant = {
+ "" : {
+- 'sudo_command' : "/usr/bin/sudo -k -S -p EnterPasswordHere ",
++ 'sudo_command' : "@sudo@ -k -S -p EnterPasswordHere ",
+ }
+ }
+
+--- a/plugins/wb.admin/backend/wb_server_management.py
++++ b/plugins/wb.admin/backend/wb_server_management.py
+@@ -40,7 +40,7 @@
+
+ def reset_sudo_prefix():
+ global default_sudo_prefix
+- default_sudo_prefix = '/usr/bin/sudo -k -S -p EnterPasswordHere'
++ default_sudo_prefix = '@sudo@ -k -S -p EnterPasswordHere'
+
+ reset_sudo_prefix()
+
+@@ -100,7 +100,7 @@
+
+ if to_spawn:
+ command += ' &'
+- sudo_prefix += ' /usr/bin/nohup'
++ sudo_prefix += ' @nohup@'
+
+ # If as_user is the CURRENT then there's no need to sudo
+ if as_user != Users.CURRENT:
+@@ -111,7 +111,7 @@
+ if '/bin/sh' in sudo_prefix or '/bin/bash' in sudo_prefix:
+ command = "LANG=C " + sudo_prefix + " \"" + command.replace('\\', '\\\\').replace('"', r'\"').replace('$','\\$') + "\""
+ else:
+- command = "LANG=C " + sudo_prefix + " /bin/bash -c \"" + command.replace('\\', '\\\\').replace('"', r'\"').replace('$','\\$') + "\""
++ command = "LANG=C " + sudo_prefix + " @bash@ -c \"" + command.replace('\\', '\\\\').replace('"', r'\"').replace('$','\\$') + "\""
+
+ return command
+
+@@ -896,9 +896,9 @@
+ if as_user == Users.CURRENT:
+ raise PermissionDeniedError("Cannot set owner of directory %s" % path)
+ else:
+- command = "/bin/mkdir %s && chown %s %s" % (quote_path(path), with_owner, quote_path(path))
++ command = "@mkdir@ %s && chown %s %s" % (quote_path(path), with_owner, quote_path(path))
+ else:
+- command = "/bin/mkdir %s" % (quote_path(path))
++ command = "@mkdir@ %s" % (quote_path(path))
+
+ res = self.process_ops.exec_cmd(command,
+ as_user = as_user,
+@@ -927,7 +927,7 @@
+ @useAbsPath("path")
+ def remove_directory(self, path, as_user = Users.CURRENT, user_password = None):
+ output = StringIO.StringIO()
+- res = self.process_ops.exec_cmd('/bin/rmdir ' + quote_path(path),
++ res = self.process_ops.exec_cmd('@rmdir@ ' + quote_path(path),
+ as_user = as_user,
+ user_password = user_password,
+ output_handler = output.write,
+@@ -940,7 +940,7 @@
+ @useAbsPath("path")
+ def remove_directory_recursive(self, path, as_user = Users.CURRENT, user_password = None):
+ output = StringIO.StringIO()
+- res = self.process_ops.exec_cmd('/bin/rm -R ' + quote_path(path),
++ res = self.process_ops.exec_cmd('@rm@ -R ' + quote_path(path),
+ as_user = as_user,
+ user_password = user_password,
+ output_handler = output.write,
+@@ -953,7 +953,7 @@
+ @useAbsPath("path")
+ def delete_file(self, path, as_user = Users.CURRENT, user_password = None):
+ output = StringIO.StringIO()
+- res = self.process_ops.exec_cmd("/bin/rm " + quote_path(path),
++ res = self.process_ops.exec_cmd("@rm@ " + quote_path(path),
+ as_user = as_user,
+ user_password = user_password,
+ output_handler = output.write,
+@@ -1001,7 +1001,7 @@
+ def _copy_file(self, source, dest, as_user = Users.CURRENT, user_password = None):
+ output = StringIO.StringIO()
+
+- res = self.process_ops.exec_cmd("LC_ALL=C /bin/cp " + quote_path(source) + " " + quote_path(dest),
++ res = self.process_ops.exec_cmd("LC_ALL=C @cp@ " + quote_path(source) + " " + quote_path(dest),
+ as_user = as_user,
+ user_password = user_password,
+ output_handler = output.write,
+@@ -1077,9 +1077,9 @@
+ # for ls -l, the output format changes depending on stdout being a terminal or not
+ # since both cases are possible, we need to handle both at the same time (1st line being total <nnnn> or not)
+ # the good news is that if the line is there, then it will always start with total, regardless of the locale
+- command = 'LC_ALL=C /bin/ls -l -p %s' % quote_path(path)
++ command = 'LC_ALL=C @ls@ -l -p %s' % quote_path(path)
+ else:
+- command = 'LC_ALL=C /bin/ls -1 -p %s' % quote_path(path)
++ command = 'LC_ALL=C @ls@ -1 -p %s' % quote_path(path)
+
+ output = StringIO.StringIO()
+ res = self.process_ops.exec_cmd(command,
+@@ -2160,9 +2160,9 @@
+ def get_range(self, start, end):
+ f = StringIO.StringIO()
+ if not self._need_sudo:
+- ret = self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.CURRENT, user_password=None, output_handler=f.write)
++ ret = self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.CURRENT, user_password=None, output_handler=f.write)
+ else:
+- ret = self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.ADMIN, user_password=self.get_password, output_handler=f.write)
++ ret = self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.ADMIN, user_password=self.get_password, output_handler=f.write)
+
+ if ret != 0:
+ raise RuntimeError("Could not get data from file %s" % self.path)
+@@ -2170,9 +2170,9 @@
+
+ def read_task(self, offset, file):
+ if not self._need_sudo:
+- self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=file.write)
++ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=file.write)
+ else:
+- self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self.get_password, output_handler=file.write)
++ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self.get_password, output_handler=file.write)
+ # this will signal the reader end that there's no more data
+ file.close()
+
+@@ -2198,9 +2198,9 @@
+ self._pos = offset
+ f = StringIO.StringIO()
+ if not self._need_sudo:
+- self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=f.write)
++ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=f.write)
+ else:
+- self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self._password, output_handler=f.write)
++ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self._password, output_handler=f.write)
+ self.data = f
+ self.data.seek(0)
+ if self.skip_first_newline:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/mystem/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/mystem/default.nix
new file mode 100644
index 000000000000..27caef9ea2eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/mystem/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "mystem";
+ version = "3.1";
+
+ src = fetchurl {
+ url = "http://download.cdn.yandex.net/mystem/${pname}-${version}-linux-64bit.tar.gz";
+ sha256 = "0qha7jvkdmil3jiwrpsfhkqsbkqn9dzgx3ayxwjdmv73ikmg95j6";
+ };
+
+ buildCommand = ''
+ tar -xaf "$src"
+ mkdir -p $out/bin
+ install -Dm755 mystem $out/bin/mystem
+ patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) $out/bin/mystem
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Morphological analysis of Russian text";
+ homepage = "https://yandex.ru/dev/mystem/";
+ license = licenses.unfreeRedistributable;
+ maintainers = with maintainers; [ abbradar ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix
new file mode 100644
index 000000000000..cf7689367bd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, bash }:
+
+stdenv.mkDerivation rec {
+ version = "3.5-rc1";
+ pname = "nanoblogger";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/nanoblogger/${pname}-${version}.tar.gz";
+ sha256 = "09mv52a5f0h3das8x96irqyznm69arfskx472b7w3b9q4a2ipxbq";
+ };
+
+ buildInputs = [ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -r * $out
+ cat > $out/bin/nb << EOF
+ #!${bash}/bin/bash
+ $out/nb "\$@"
+ EOF
+ chmod 755 $out/bin/nb
+ '';
+
+ meta = {
+ description = "Small weblog engine written in Bash for the command line";
+ homepage = "http://nanoblogger.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/navi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/navi/default.nix
new file mode 100644
index 000000000000..46d463645e56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/navi/default.nix
@@ -0,0 +1,31 @@
+{ fetchFromGitHub, fzf, lib, makeWrapper, rustPlatform, wget }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "navi";
+ version = "2.13.0";
+
+ src = fetchFromGitHub {
+ owner = "denisidoro";
+ repo = "navi";
+ rev = "v${version}";
+ sha256 = "04ks38s6d3nkdj0arhxw8f3sfw796l97fbqxsm7b9g5d2953a6cs";
+ };
+
+ cargoSha256 = "1zwar1l793809bsgqnwrgi50y76bd78qd4s8lw6d64f4z72dh80g";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postInstall = ''
+ wrapProgram $out/bin/navi \
+ --prefix PATH : "$out/bin" \
+ --prefix PATH : ${lib.makeBinPath [ fzf wget ]}
+ '';
+
+ meta = with lib; {
+ description = "An interactive cheatsheet tool for the command-line and application launchers";
+ homepage = "https://github.com/denisidoro/navi";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ cust0dian ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/navipowm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/navipowm/default.nix
new file mode 100644
index 000000000000..80c455f41a0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/navipowm/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, qt4, qmake4Hook }:
+stdenv.mkDerivation rec {
+ name = "navipowm-0.2.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/navipowm/NaviPOWM-0.2.4.tar.gz";
+ sha256 = "1kdih8kwpgcgfh6l6njkr9gq2j5hv39xvzmzgvhip553kn6bss7b";
+ };
+
+ preConfigure = ''
+ cd Qt/KDevelop
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/${name}/Icons
+ cp bin/NaviPOWM $out/bin
+ cp ../../common/Config/navipowm.ini $out/share/${name}
+ cp ../../common/Images/* $out/share/${name}
+ '';
+
+ buildInputs = [ qt4 ];
+ nativeBuildInputs = [ qmake4Hook ];
+
+ meta = {
+ homepage = "http://navipowm.sourceforge.net/";
+ description = "Car navigation system";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch
new file mode 100644
index 000000000000..7f8a75f319be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 763f75b..defa74a 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -212,7 +212,7 @@ CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H)
+ CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
+ CHECK_INCLUDE_FILES(byteswap.h HAVE_BYTESWAP_H)
+ CHECK_LIBRARY_EXISTS(gypsy gypsy_control_get_default "" GYPSY_FOUND)
+-CHECK_INCLUDE_FILES(libspeechd.h HAVE_LIBSPEECHD)
++CHECK_INCLUDE_FILES(speech-dispatcher/libspeechd.h HAVE_LIBSPEECHD)
+ CHECK_INCLUDE_FILES(sys/socket.h HAVE_SOCKET)
+ CHECK_INCLUDE_FILES(sys/shm.h HAVE_SHMEM)
+ CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/navit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/navit/default.nix
new file mode 100644
index 000000000000..e04669d68964
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/navit/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, fetchFromGitHub, pkgconfig, gtk2, fontconfig, freetype, imlib2
+, SDL_image, libGLU, libGL, libXmu, freeglut, pcre, dbus, dbus-glib, glib
+, librsvg, freeimage, libxslt, cairo, gdk-pixbuf, pango
+, atk, patchelf, fetchurl, bzip2, python, gettext, quesoglc
+, gd, cmake, shapelib, SDL_ttf, fribidi, makeWrapper
+, qtquickcontrols, qtmultimedia, qtspeech, qtsensors
+, qtlocation, qtdeclarative, qtsvg
+, qtSupport ? false, qtbase #need to fix qt_qpainter
+, sdlSupport ? true, SDL
+, xkbdSupport ? true, xkbd
+, espeakSupport ? true, espeak
+, postgresqlSupport ? false, postgresql
+, speechdSupport ? false, speechd ? null
+}:
+
+assert speechdSupport -> speechd != null;
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "navit";
+ version = "0.5.3";
+
+ src = fetchFromGitHub {
+ owner = "navit-gps";
+ repo = "navit";
+ rev = "v${version}";
+ sha256 = "071drvqzxpxbfh0lf0lra5a97rv8ny40l96n9xl0dx0s8w30j61i";
+ };
+
+ sample_map = fetchurl {
+ url = "http://www.navit-project.org/maps/osm_bbox_11.3,47.9,11.7,48.2.osm.bz2";
+ name = "sample_map.bz2";
+ sha256 = "0vg6b6rhsa2cxqj4rbhfhhfss71syhnfa6f1jg2i2d7l88dm5x7d";
+ };
+
+ patches = [ ./CMakeLists.txt.patch ];
+
+ NIX_CFLAGS_COMPILE = toString (optional sdlSupport "-I${SDL.dev}/include/SDL"
+ ++ optional speechdSupport "-I${speechd}/include/speech-dispatcher");
+
+ # we choose only cmdline and speech-dispatcher speech options.
+ # espeak builtins is made for non-cmdline OS as winCE
+ cmakeFlags = [
+ "-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=Release"
+ "-Dspeech/qt5_espeak=FALSE" "-Dsupport/espeak=FALSE"
+ ];
+
+ buildInputs = [
+ gtk2 fontconfig freetype imlib2 libGLU libGL freeimage
+ libxslt libXmu freeglut python gettext quesoglc gd
+ fribidi pcre dbus dbus-glib librsvg shapelib glib
+ cairo gdk-pixbuf pango atk
+ ] ++ optionals sdlSupport [ SDL SDL_ttf SDL_image ]
+ ++ optional postgresqlSupport postgresql
+ ++ optional speechdSupport speechd
+ ++ optionals qtSupport [
+ qtquickcontrols qtmultimedia qtspeech qtsensors
+ qtbase qtlocation qtdeclarative qtsvg
+ ];
+
+ nativeBuildInputs = [ makeWrapper pkgconfig cmake patchelf bzip2 ];
+
+ # we dont want blank screen by defaut
+ postInstall = ''
+ # emulate DSAMPLE_MAP
+ mkdir -p $out/share/navit/maps/
+ bzcat "${sample_map}" | $out/bin/maptool "$out/share/navit/maps/osm_bbox_11.3,47.9,11.7,48.2.bin"
+ '';
+
+ # TODO: fix upstream?
+ libPath = stdenv.lib.makeLibraryPath ([ stdenv.cc.libc ] ++ buildInputs );
+ postFixup =
+ ''
+ find "$out/lib" -type f -name "*.so" -exec patchelf --set-rpath $libPath {} \;
+
+ wrapProgram $out/bin/navit \
+ --prefix PATH : ${makeBinPath (
+ optional xkbdSupport xkbd
+ ++ optional espeakSupport espeak
+ ++ optional speechdSupport speechd ) }
+ '';
+
+ meta = {
+ homepage = "https://www.navit-project.org";
+ description = "Car navigation system with routing engine using OSM maps";
+ license = licenses.gpl2;
+ maintainers = [ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/neap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/neap/default.nix
new file mode 100644
index 000000000000..992a3c0248a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/neap/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, python2Packages }:
+
+stdenv.mkDerivation rec {
+ pname = "neap";
+ version = "0.7.2";
+
+ src = fetchFromGitHub {
+ owner = "vzxwco";
+ repo = "neap";
+ rev = "v${version}";
+ sha256 = "04da8rq23rl1qcvrdm5m3l90xbwyli7x601sckv7hmkip2q3g1kz";
+ };
+
+ nativeBuildInputs = [
+ python2Packages.wrapPython
+ ];
+
+ buildInputs = [
+ python2Packages.python
+ ];
+
+ pythonPath = [
+ python2Packages.xlib
+ python2Packages.pygtk
+ ];
+
+ installPhase = ''
+ install -D -t $out/bin neap
+ install -D -t $out/share/man/man1 neap.1
+ install -D -t $out/share/applications neap.desktop
+ '';
+
+ postFixup = ''
+ wrapPythonPrograms
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Systray workspace pager";
+ homepage = "https://github.com/vzxwco/neap";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/nix-tour/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/nix-tour/default.nix
new file mode 100644
index 000000000000..05ef696f99b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/nix-tour/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, electron, runtimeShell } :
+
+stdenv.mkDerivation rec {
+ pname = "nix-tour";
+ version = "0.0.1";
+
+ buildInputs = [ electron ];
+
+ src = fetchgit {
+ url = "https://github.com/nixcloud/tour_of_nix";
+ rev = "v${version}";
+ sha256 = "09b1vxli4zv1nhqnj6c0vrrl51gaira94i8l7ww96fixqxjgdwvb";
+ };
+
+ phases = [ "unpackPhase" "installPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share
+ cp -R * $out/share
+ chmod 0755 $out/share/ -R
+ echo "#!${runtimeShell}" > $out/bin/nix-tour
+ echo "cd $out/share/" >> $out/bin/nix-tour
+ echo "${electron}/bin/electron $out/share/electron-main.js" >> $out/bin/nix-tour
+ chmod 0755 $out/bin/nix-tour
+ '';
+
+ meta = with stdenv.lib; {
+ description = "'the tour of nix' from nixcloud.io/tour as offline version";
+ homepage = "https://nixcloud.io/tour";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ qknight ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/nixnote2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/nixnote2/default.nix
new file mode 100644
index 000000000000..92bb4ca22077
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/nixnote2/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, mkDerivation, fetchFromGitHub, boost
+, qtbase, qtwebkit, poppler, qmake, hunspell, html-tidy}:
+
+mkDerivation rec {
+ pname = "nixnote2";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "baumgarr";
+ repo = "nixnote2";
+ rev = "v${version}";
+ sha256 = "0cfq95mxvcgby66r61gclm1a2c6zck5aln04xmg2q8kg6p9d31fr";
+ };
+
+ buildInputs = [ boost qtbase qtwebkit poppler hunspell ];
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ qmake ];
+
+ postPatch = ''
+ # Fix location of poppler-qt5.h
+ for f in threads/indexrunner.cpp html/noteformatter.cpp utilities/noteindexer.cpp gui/plugins/popplerviewer.h gui/plugins/pluginfactory.h gui/plugins/popplerviewer.cpp ; do
+ substituteInPlace $f \
+ --replace '#include <poppler-qt5.h>' '#include <poppler/qt5/poppler-qt5.h>'
+ done
+
+ substituteInPlace help/about.html --replace '__VERSION__' '${version}'
+
+ substituteInPlace nixnote.cpp --replace 'tidyProcess.start("tidy' 'tidyProcess.start("${html-tidy}/bin/tidy'
+ '';
+
+ postInstall = ''
+ cp images/windowIcon.png $out/share/pixmaps/nixnote2.png
+ cp theme.ini $out/share/nixnote2/theme.ini
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An unofficial client of Evernote";
+ homepage = "http://www.nixnote.org/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ htr ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/nnn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/nnn/default.nix
new file mode 100644
index 000000000000..81f2f648e5f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/nnn/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, pkgconfig, ncurses, readline, conf ? null }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "nnn";
+ version = "3.5";
+
+ src = fetchFromGitHub {
+ owner = "jarun";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1fa7cmwrzn6kx87kms8i98p9azdlwyh2gnif29l340syl9hkr5qy";
+ };
+
+ configFile = optionalString (conf != null) (builtins.toFile "nnn.h" conf);
+ preBuild = optionalString (conf != null) "cp ${configFile} src/nnn.h";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ readline ncurses ];
+
+ makeFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" ];
+
+ # shell completions
+ postInstall = ''
+ install -Dm555 misc/auto-completion/bash/nnn-completion.bash $out/share/bash-completion/completions/nnn.bash
+ install -Dm555 misc/auto-completion/zsh/_nnn -t $out/share/zsh/site-functions
+ install -Dm555 misc/auto-completion/fish/nnn.fish -t $out/share/fish/vendor_completions.d
+ '';
+
+ meta = {
+ description = "Small ncurses-based file browser forked from noice";
+ homepage = "https://github.com/jarun/nnn";
+ license = licenses.bsd2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ jfrankenau Br1ght0ne ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/noice/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/noice/default.nix
new file mode 100644
index 000000000000..2be5a4ab83b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/noice/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, ncurses, conf ? null }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "noice";
+ version = "0.8";
+
+ src = fetchgit {
+ url = "git://git.2f30.org/noice.git";
+ rev = "refs/tags/v${version}";
+ sha256 = "0975j4m93s9a21pazwdzn4gqhkngwq7q6ghp0q8a75r6c4fb7aar";
+ };
+
+ configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf);
+ preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+ buildInputs = [ ncurses ];
+
+ buildFlags = [ "LDLIBS=-lncurses" ];
+
+ installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
+
+ meta = {
+ description = "Small ncurses-based file browser";
+ homepage = "https://git.2f30.org/noice/";
+ license = licenses.bsd2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/notable/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/notable/default.nix
new file mode 100644
index 000000000000..923f5fb4528e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/notable/default.nix
@@ -0,0 +1,47 @@
+{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }:
+
+let
+ pname = "notable";
+ version = "1.8.4";
+ sha256 = "0rvz8zwsi62kiq89pv8n2wh9h5yb030kvdr1vf65xwqkhqcrzrby";
+
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/notable/notable/releases/download/v${version}/Notable-${version}.AppImage";
+ inherit sha256;
+ };
+
+ appimageContents = appimageTools.extract {
+ inherit name src;
+ };
+
+in
+appimageTools.wrapType2 rec {
+
+ inherit name src;
+
+ profile = ''
+ export LC_ALL=C.UTF-8
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null; # no 32bit needed
+ extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [ p.at-spi2-atk p.at-spi2-core ];
+ extraInstallCommands = ''
+ mv $out/bin/{${name},${pname}}
+ install -m 444 -D ${appimageContents}/notable.desktop $out/share/applications/notable.desktop
+ install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/1024x1024/apps/notable.png \
+ $out/share/icons/hicolor/1024x1024/apps/notable.png
+ substituteInPlace $out/share/applications/notable.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with lib; {
+ description = "The markdown-based note-taking app that doesn't suck";
+ homepage = "https://github.com/notable/notable";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/notejot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/notejot/default.nix
new file mode 100644
index 000000000000..d5d6aea49461
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/notejot/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, nix-update-script, vala, pkgconfig, meson, ninja, python3, pantheon
+, gtk3, gtksourceview, json-glib, libgee, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "notejot";
+ version = "1.6.3";
+
+ src = fetchFromGitHub {
+ owner = "lainsce";
+ repo = pname;
+ rev = version;
+ sha256 = "170dzgd6cnf2k3hfifjysmdggpskx6v1pjmblqgbwaj2d3snf3h8";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ gtksourceview
+ json-glib
+ libgee
+ pantheon.elementary-icon-theme
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Stupidly-simple sticky notes applet";
+ homepage = "https://github.com/lainsce/notejot";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
new file mode 100644
index 000000000000..36fa888e8884
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, dbus-glib
+, fetchurl
+, glib
+, gnome3
+, libnotify
+, libtool
+, libwnck3
+, makeWrapper
+, pkgconfig
+, gsettings-desktop-schemas
+}:
+
+let baseURI = "https://launchpad.net/~leolik/+archive/leolik";
+in stdenv.mkDerivation rec {
+ pname = "notify-osd";
+ version = "0.9.35+16.04.20160415";
+
+ src = fetchurl {
+ url = "${baseURI}/+files/notify-osd_${version}-0ubuntu1-leolik~ppa0.tar.gz";
+ sha256 = "026dr46jh3xc4103wnslzy7pxbxkkpflh52c59j8vzwaa7bvvzkv";
+ name = "notify-osd-customizable.tar.gz";
+ };
+
+ preConfigure = "./autogen.sh --libexecdir=$(out)/bin";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ glib libwnck3 libnotify dbus-glib makeWrapper
+ gsettings-desktop-schemas gnome3.gnome-common
+ libtool
+ ];
+
+ configureFlags = [ "--libexecdir=$(out)/bin" ];
+
+ preFixup = ''
+ wrapProgram "$out/bin/notify-osd" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Daemon that displays passive pop-up notifications";
+ homepage = "https://launchpad.net/notify-osd";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.imalison ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/notify-osd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/notify-osd/default.nix
new file mode 100644
index 000000000000..e2bff0031186
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/notify-osd/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, glib, libwnck3, libnotify, dbus-glib, makeWrapper, gsettings-desktop-schemas }:
+
+stdenv.mkDerivation rec {
+ pname = "notify-osd";
+ version = "0.9.34";
+
+ src = fetchurl {
+ url = "https://launchpad.net/notify-osd/precise/${version}/+download/notify-osd-${version}.tar.gz";
+ sha256 = "0g5a7a680b05x27apz0y1ldl5csxpp152wqi42s107jymbp0s20j";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ glib libwnck3 libnotify dbus-glib makeWrapper
+ gsettings-desktop-schemas
+ ];
+
+ configureFlags = [ "--libexecdir=$(out)/bin" ];
+
+ preFixup = ''
+ wrapProgram "$out/bin/notify-osd" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Daemon that displays passive pop-up notifications";
+ homepage = "https://launchpad.net/notify-osd";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.bodil ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/nrsc5/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/nrsc5/default.nix
new file mode 100644
index 000000000000..ada603cba963
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/nrsc5/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub,
+ autoconf, automake, libtool, cmake,
+ rtl-sdr, libao, fftwFloat
+} :
+let
+ src_faad2 = fetchFromGitHub {
+ owner = "dsvensson";
+ repo = "faad2";
+ rev = "b7aa099fd3220b71180ed2b0bc19dc6209a1b418";
+ sha256 = "0pcw2x9rjgkf5g6irql1j4m5xjb4lxj6468z8v603921bnir71mf";
+ };
+
+ version = "1.0";
+
+in stdenv.mkDerivation {
+ pname = "nrsc5";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "theori-io";
+ repo = "nrsc5";
+ rev = "v${version}";
+ sha256 = "09zzh3h1zzf2lwrbz3i7rif2hw36d9ska8irvxaa9lz6xc1y68pg";
+ };
+
+ postUnpack = ''
+ export srcRoot=`pwd`
+ export faadSrc="$srcRoot/faad2-prefix/src/faad2_external"
+ mkdir -p $faadSrc
+ cp -r ${src_faad2}/* $faadSrc
+ chmod -R u+w $faadSrc
+ '';
+
+ postPatch = ''
+ sed -i '/GIT_REPOSITORY/d' CMakeLists.txt
+ sed -i '/GIT_TAG/d' CMakeLists.txt
+ sed -i "s:set (FAAD2_PREFIX .*):set (FAAD2_PREFIX \"$srcRoot/faad2-prefix\"):" CMakeLists.txt
+ '';
+
+ nativeBuildInputs = [ cmake autoconf automake libtool ];
+ buildInputs = [ rtl-sdr libao fftwFloat ];
+
+ cmakeFlags = [ "-DUSE_COLOR=ON" "-DUSE_FAAD2=ON" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/theori-io/nrsc5";
+ description = "HD-Radio decoder for RTL-SDR";
+ platforms = stdenv.lib.platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ markuskowa ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/nut/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/nut/default.nix
new file mode 100644
index 000000000000..8f188818d4f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/nut/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, pkgconfig, neon, libusb-compat-0_1, openssl, udev, avahi, freeipmi
+, libtool, makeWrapper, autoreconfHook, fetchpatch
+}:
+
+stdenv.mkDerivation rec {
+ pname = "nut";
+ version = "2.7.4";
+
+ src = fetchurl {
+ url = "https://networkupstools.org/source/2.7/${pname}-${version}.tar.gz";
+ sha256 = "19r5dm07sfz495ckcgbfy0pasx0zy3faa0q7bih69lsjij8q43lq";
+ };
+
+ patches = [
+ (fetchpatch {
+ # Fix build with openssl >= 1.1.0
+ url = "https://github.com/networkupstools/nut/commit/612c05efb3c3b243da603a3a050993281888b6e3.patch";
+ sha256 = "0jdbii1z5sqyv24286j5px65j7b3gp8zk3ahbph83pig6g46m3hs";
+ })
+ ];
+
+ buildInputs = [ neon libusb-compat-0_1 openssl udev avahi freeipmi ];
+
+ nativeBuildInputs = [ autoreconfHook libtool pkgconfig makeWrapper ];
+
+ configureFlags =
+ [ "--with-all"
+ "--with-ssl"
+ "--without-snmp" # Until we have it ...
+ "--without-powerman" # Until we have it ...
+ "--without-cgi"
+ "--without-hal"
+ "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+ "--with-udev-dir=$(out)/etc/udev"
+ ];
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \
+ "$out/lib:${neon}/lib:${libusb-compat-0_1.out}/lib:${avahi}/lib:${freeipmi}/lib"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Network UPS Tools";
+ longDescription = ''
+ Network UPS Tools is a collection of programs which provide a common
+ interface for monitoring and administering UPS, PDU and SCD hardware.
+ It uses a layered approach to connect all of the parts.
+ '';
+ homepage = "https://networkupstools.org/";
+ repositories.git = "https://github.com/networkupstools/nut.git";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.pierron ];
+ license = with licenses; [ gpl1Plus gpl2Plus gpl3Plus ];
+ priority = 10;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
new file mode 100644
index 000000000000..77eae10293d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, gtkmm3
+, meson
+, ninja
+, nlohmann_json
+, pkgconfig
+, swaylock
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "nwg-launchers";
+ version = "0.4.2";
+
+ src = fetchFromGitHub {
+ owner = "nwg-piotr";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0flp7mwj1pgcwx3k9pzc8pmqlkhbddj0maimdnvlazk87kzxpfd0";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ cmake
+ makeWrapper
+ ];
+
+ buildInputs = [
+ gtkmm3
+ nlohmann_json
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/nwgbar \
+ --prefix PATH : "${swaylock}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GTK-based launchers: application grid, button bar, dmenu for sway and other window managers";
+ homepage = "https://github.com/nwg-piotr/nwg-launchers";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ bbigras ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/obinskit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/obinskit/default.nix
new file mode 100644
index 000000000000..dc03b9b4f93c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/obinskit/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, lib
+, fetchurl
+, libxkbcommon
+, systemd
+, xorg
+, electron_3
+, makeWrapper
+, makeDesktopItem
+}:
+let
+ desktopItem = makeDesktopItem rec {
+ name = "Obinskit";
+ exec = "obinskit";
+ icon = "obinskit";
+ desktopName = "Obinskit";
+ genericName = "Obinskit keyboard configurator";
+ categories = "Utility";
+ };
+ electron = electron_3;
+in
+stdenv.mkDerivation rec {
+ pname = "obinskit";
+ version = "1.1.4";
+
+ src = fetchurl {
+ url = "http://releases.obins.net/occ/linux/tar/ObinsKit_${version}_x64.tar.gz";
+ sha256 = "0q422rmfn4k4ww1qlgrwdmxz4l10dxkd6piynbcw5cr4i5icnh2l";
+ };
+
+ unpackPhase = "tar -xzf $src";
+
+ sourceRoot = "ObinsKit_${version}_x64";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/opt/obinskit
+
+ cp -r resources $out/opt/obinskit/
+ cp -r locales $out/opt/obinskit/
+
+ mkdir -p $out/share/{applications,pixmaps}
+ install resources/icons/tray-darwin@2x.png $out/share/pixmaps/obinskit.png
+ ln -s ${desktopItem}/share/applications/* $out/share/applications
+ '';
+
+ postFixup = ''
+ makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+ --add-flags $out/opt/obinskit/resources/app.asar \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib libxkbcommon (lib.getLib systemd) xorg.libXt ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Graphical configurator for Anne Pro and Anne Pro II keyboards";
+ homepage = "http://en.obins.net/obinskit/"; # https is broken
+ license = licenses.unfree;
+ maintainers = with maintainers; [ shou ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/obsidian/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/obsidian/default.nix
new file mode 100644
index 000000000000..5618a8df9101
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/obsidian/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchurl, lib, makeWrapper, electron, makeDesktopItem, graphicsmagick
+, writeScript }:
+
+let
+ icon = fetchurl {
+ url =
+ "https://forum.obsidian.md/uploads/default/original/1X/bf119bd48f748f4fd2d65f2d1bb05d3c806883b5.png";
+ sha256 = "18ylnbvxr6k4x44c4i1d55wxy2dq4fdppp43a4wl6h6zar0sc9s2";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "obsidian";
+ desktopName = "Obsidian";
+ comment = "Knowledge base";
+ icon = "obsidian";
+ exec = "obsidian";
+ categories = "Office";
+ };
+
+ updateScript = writeScript "obsidian-updater" ''
+ #!/usr/bin/env nix-shell
+ #!nix-shell -i bash -p curl jq common-updater-scripts
+
+ set -eu -o pipefail
+
+ latestVersion="$(curl -sS https://raw.githubusercontent.com/obsidianmd/obsidian-releases/master/desktop-releases.json | jq -r '.latestVersion')"
+
+ update-source-version obsidian "$latestVersion"
+ '';
+
+in stdenv.mkDerivation rec {
+ pname = "obsidian";
+ version = "0.9.17";
+
+ src = fetchurl {
+ url =
+ "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz";
+ sha256 = "0spa5zsipd456dcsp7ww24ab5vk4vmwyvrdmraw3hcsbnj9vcnwa";
+ };
+
+ nativeBuildInputs = [ makeWrapper graphicsmagick ];
+
+ unpackPhase = ''
+ gzip -dc $src > obsidian.asar
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ makeWrapper ${electron}/bin/electron $out/bin/obsidian \
+ --add-flags $out/share/electron/obsidian.asar
+
+ install -m 444 -D obsidian.asar $out/share/electron/obsidian.asar
+
+ install -m 444 -D "${desktopItem}/share/applications/"* \
+ -t $out/share/applications/
+
+ for size in 16 24 32 48 64 128 256 512; do
+ mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
+ gm convert -resize "$size"x"$size" ${icon} $out/share/icons/hicolor/"$size"x"$size"/apps/obsidian.png
+ done
+ '';
+
+ passthru.updateScript = updateScript;
+
+ meta = with lib; {
+ description =
+ "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
+ homepage = "https://obsidian.md";
+ license = licenses.obsidian;
+ maintainers = with maintainers; [ conradmearns zaninime ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ocropus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ocropus/default.nix
new file mode 100644
index 000000000000..ef371dc59fff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ocropus/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchFromGitHub, fetchurl, pythonPackages, curl }:
+
+let
+ getmodel = name: sha256: {
+ inherit name;
+ src = fetchurl {
+ url = "http://www.tmbdev.net/ocropy/${name}";
+ inherit sha256;
+ };
+ };
+
+ models = [
+ (getmodel "en-default.pyrnn.gz"
+ "1xyi3k3p81mfw0491gb1haisazfyi2i18f1wjs1m34ak39qfqjdp")
+ (getmodel "fraktur.pyrnn.gz"
+ "1wlwvxn91ilgmlri1hj81arl3mbzxc24ycdnkf5icq4hdi4c6y8b")
+ ];
+
+in
+pythonPackages.buildPythonApplication rec {
+ pname = "ocropus";
+ version = "1.3.3";
+
+ src = fetchFromGitHub {
+ sha256 = "02p1334mic5cfhvpfphfrbim4036yfd8s2zzpwm0xmm829z71nr7";
+ rev = "v${version}";
+ repo = "ocropy";
+ owner = "tmbdev";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [ curl numpy scipy pillow
+ matplotlib beautifulsoup4 pygtk lxml ];
+
+ enableParallelBuilding = true;
+
+ preConfigure = with stdenv.lib; ''
+ ${concatStrings (map (x: "cp -R ${x.src} models/`basename ${x.name}`;")
+ models)}
+
+ substituteInPlace ocrolib/common.py --replace /usr/local $out
+ substituteInPlace ocrolib/default.py --replace /usr/local $out
+ '';
+
+ doCheck = false; # fails
+ checkPhase = ''
+ patchShebangs .
+ substituteInPlace ./run-test \
+ --replace 'ocropus-rpred' 'ocropus-rpred -Q $NIX_BUILD_CORES'
+ PATH=".:$PATH" ./run-test
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Open source document analysis and OCR system";
+ license = licenses.asl20;
+ homepage = "https://github.com/tmbdev/ocropy/";
+ maintainers = with maintainers; [ domenkozar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/default.nix
new file mode 100644
index 000000000000..82cdf18b4846
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/default.nix
@@ -0,0 +1,172 @@
+{ pkgs
+, stdenv
+, lib
+, fetchFromGitHub
+, python3
+ # To include additional plugins, pass them here as an overlay.
+, packageOverrides ? self: super: {}
+}:
+let
+ mkOverride = attrname: version: sha256:
+ self: super: {
+ ${attrname} = super.${attrname}.overridePythonAttrs (
+ oldAttrs: {
+ inherit version;
+ src = oldAttrs.src.override {
+ inherit version sha256;
+ };
+ }
+ );
+ };
+
+ py = python3.override {
+ self = py;
+ packageOverrides = lib.foldr lib.composeExtensions (self: super: {}) (
+ [
+ # the following dependencies are non trivial to update since later versions introduce backwards incompatible
+ # changes that might affect plugins, or due to other observed problems
+ (mkOverride "markupsafe" "1.1.1" "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b")
+ (mkOverride "rsa" "4.0" "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487")
+ (mkOverride "markdown" "3.1.1" "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a")
+ (mkOverride "tornado" "5.1.1" "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409")
+ (mkOverride "unidecode" "0.04.21" "280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051")
+ (mkOverride "sarge" "0.1.5.post0" "1c1ll7pys9vra5cfi8jxlgrgaql6c27l6inpy15aprgqhc4ck36s")
+
+ # Built-in dependency
+ (
+ self: super: {
+ octoprint-filecheck = self.buildPythonPackage rec {
+ pname = "OctoPrint-FileCheck";
+ version = "2020.08.07";
+
+ src = fetchFromGitHub {
+ owner = "OctoPrint";
+ repo = "OctoPrint-FileCheck";
+ rev = version;
+ sha256 = "05ys05l5x7d2bkg3yqrga6m65v3g5fcnnzbfab7j9w2pzjdapx5b";
+ };
+ doCheck = false;
+ };
+ }
+ )
+
+ # Built-in dependency
+ (
+ self: super: {
+ octoprint-firmwarecheck = self.buildPythonPackage rec {
+ pname = "OctoPrint-FirmwareCheck";
+ version = "2020.06.22";
+
+ src = fetchFromGitHub {
+ owner = "OctoPrint";
+ repo = "OctoPrint-FirmwareCheck";
+ rev = version;
+ sha256 = "19y7hrgg9z8hl7cwqkvg8nc8bk0wwrsfvjd1wawy33wn60psqv1h";
+ };
+ doCheck = false;
+ };
+ }
+ )
+
+ (
+ self: super: {
+ octoprint = self.buildPythonPackage rec {
+ pname = "OctoPrint";
+ version = "1.4.2";
+
+ src = fetchFromGitHub {
+ owner = "OctoPrint";
+ repo = "OctoPrint";
+ rev = version;
+ sha256 = "1bblrjwkccy1ifw7lf55g3k9lq1sqzwd49vj8bfzj2w07a7qda62";
+ };
+
+ propagatedBuildInputs = with super; [
+ octoprint-firmwarecheck
+ octoprint-filecheck
+ markupsafe
+ tornado
+ markdown
+ rsa
+ regex
+ flask
+ jinja2
+ flask_login
+ flask-babel
+ flask_assets
+ werkzeug
+ itsdangerous
+ cachelib
+ pyyaml
+ pyserial
+ netaddr
+ watchdog
+ sarge
+ netifaces
+ pylru
+ pkginfo
+ requests
+ semantic-version
+ psutil
+ click
+ feedparser
+ future
+ websocket_client
+ wrapt
+ emoji
+ frozendict
+ sentry-sdk
+ filetype
+ unidecode
+ blinker
+ ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ];
+
+ checkInputs = with super; [ pytestCheckHook mock ddt ];
+
+ postPatch = let
+ ignoreVersionConstraints = [
+ "sentry-sdk"
+ ];
+ in
+ ''
+ sed -r -i \
+ ${lib.concatStringsSep "\n" (
+ map (
+ e:
+ ''-e 's@${e}[<>=]+.*@${e}",@g' \''
+ ) ignoreVersionConstraints
+ )}
+ setup.py
+ '';
+
+ dontUseSetuptoolsCheck = true;
+
+ preCheck = ''
+ export HOME=$(mktemp -d)
+ rm pytest.ini
+ '';
+
+ disabledTests = [
+ "test_check_setup" # Why should it be able to call pip?
+ ] ++ lib.optionals stdenv.isDarwin [
+ "test_set_external_modification"
+ ];
+
+ passthru.python = self.python;
+
+ meta = with stdenv.lib; {
+ homepage = "https://octoprint.org/";
+ description = "The snappy web interface for your 3D printer";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ abbradar gebner WhittlesJr ];
+ };
+ };
+ }
+ )
+ (import ./plugins.nix { inherit pkgs; })
+ packageOverrides
+ ]
+ );
+ };
+in
+ with py.pkgs; toPythonApplication octoprint
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
new file mode 100644
index 000000000000..421690f29d46
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
@@ -0,0 +1,337 @@
+{ pkgs }:
+
+with pkgs;
+
+self: super: let
+ buildPlugin = args: self.buildPythonPackage (args // {
+ pname = "OctoPrintPlugin-${args.pname}";
+ inherit (args) version;
+ propagatedBuildInputs = (args.propagatedBuildInputs or []) ++ [ super.octoprint ];
+ # none of the following have tests
+ doCheck = false;
+ });
+in {
+ inherit buildPlugin;
+
+ abl-expert = buildPlugin rec {
+ pname = "ABL_Expert";
+ version = "0.6";
+
+ src = fetchgit {
+ url = "https://framagit.org/razer/Octoprint_ABL_Expert/";
+ rev = version;
+ sha256 = "0ij3rvdwya1sbymwm5swlh2j4jagb6fal945g88zrzh5xf26hzjh";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Marlin auto bed leveling control, mesh correction, and z probe handling";
+ homepage = "https://framagit.org/razer/Octoprint_ABL_Expert/";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ WhittlesJr ];
+ };
+ };
+
+ bedlevelvisualizer = buildPlugin rec {
+ pname = "BedLevelVisualizer";
+ version = "0.1.15";
+
+ src = fetchFromGitHub {
+ owner = "jneilliii";
+ repo = "OctoPrint-${pname}";
+ rev = version;
+ sha256 = "1bq39fnarnpk8phxfbpx6l4n9anf358z1cgid5r89nadmn2a0cny";
+ };
+
+ propagatedBuildInputs = with super; [ numpy ];
+
+ meta = with stdenv.lib; {
+ description = "Displays 3D mesh of bed topography report";
+ homepage = "https://github.com/jneilliii/OctoPrint-BedLevelVisualizer";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ lovesegfault ];
+ };
+ };
+
+ curaenginelegacy = buildPlugin rec {
+ pname = "CuraEngineLegacy";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "OctoPrint";
+ repo = "OctoPrint-${pname}";
+ rev = version;
+ sha256 = "1a7pxlmj1a7blkv97sn1k390pbjcxx2860011pbjcdnli74zpvv5";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Plugin for slicing via Cura Legacy from within OctoPrint";
+ homepage = "https://github.com/OctoPrint/OctoPrint-CuraEngineLegacy";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ gebner ];
+ };
+ };
+
+ displaylayerprogress = buildPlugin rec {
+ pname = "OctoPrint-DisplayLayerProgress";
+ version = "1.24.0";
+
+ src = fetchFromGitHub {
+ owner = "OllisGit";
+ repo = pname;
+ rev = version;
+ sha256 = "1lbivg3rcjzv8zqvp8n8gcaczxdm7gvd5ihjb6jq0fgf958lv59n";
+ };
+
+ meta = with stdenv.lib; {
+ description = "OctoPrint-Plugin that sends the current progress of a print via M117 command";
+ homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ j0hax ];
+ };
+ };
+
+ gcodeeditor = buildPlugin rec {
+ pname = "GcodeEditor";
+ version = "0.2.9";
+
+ src = fetchFromGitHub {
+ owner = "ieatacid";
+ repo = "OctoPrint-${pname}";
+ rev = version;
+ sha256 = "1yjj9lmxbzmzrn7gahw9lj7554fphalbjjp8ns0rr9py3rshwxkm";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Edit gcode on OctoPrint";
+ homepage = "https://github.com/ieatacid/OctoPrint-GcodeEditor";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ WhittlesJr ];
+ };
+ };
+
+ marlingcodedocumentation = buildPlugin rec {
+ pname = "MarlinGcodeDocumentation";
+ version = "0.11.0";
+
+ src = fetchFromGitHub {
+ owner = "costas-basdekis";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0vx06w9hqwy0k4r8g67y8gdckfdx7wl8ghfx6hmxc1s8fgkghfkc";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Displays GCode documentation for Marlin in the Octoprint terminal command line";
+ homepage = "https://github.com/costas-basdekis/MarlinGcodeDocumentation";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ lovesegfault ];
+ };
+ };
+
+ mqtt = buildPlugin rec {
+ pname = "MQTT";
+ version = "0.8.7";
+
+ src = fetchFromGitHub {
+ owner = "OctoPrint";
+ repo = "OctoPrint-MQTT";
+ rev = version;
+ sha256 = "0k82h7wafbcqdvk5wjw4dp9lydwszfj1lf8vvymwbqdn7pf5h0dy";
+ };
+
+ propagatedBuildInputs = with super; [ paho-mqtt ];
+
+ meta = with stdenv.lib; {
+ description = "Publish printer status MQTT";
+ homepage = "https://github.com/OctoPrint/OctoPrint-MQTT";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+ };
+
+ printtimegenius = buildPlugin rec {
+ pname = "PrintTimeGenius";
+ version = "2.2.6";
+
+ src = fetchFromGitHub {
+ owner = "eyal0";
+ repo = "OctoPrint-${pname}";
+ rev = version;
+ sha256 = "04zfgd3x3lbriyzwhpqnwdcfdm19fsqgsb7l2ix5d0ssmqxwg2r6";
+ };
+
+ preConfigure = ''
+ # PrintTimeGenius ships with marlin-calc binaries for multiple architectures
+ rm */analyzers/marlin-calc*
+ sed 's@"{}.{}".format(binary_base_name, machine)@"${pkgs.marlin-calc}/bin/marlin-calc"@' -i */analyzers/analyze_progress.py
+ '';
+
+ patches = [
+ ./printtimegenius-logging.patch
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Better print time estimation for OctoPrint";
+ homepage = "https://github.com/eyal0/OctoPrint-PrintTimeGenius";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ gebner ];
+ };
+ };
+
+ psucontrol = buildPlugin rec {
+ pname = "PSUControl";
+ version = "0.1.9";
+
+ src = fetchFromGitHub {
+ owner = "kantlivelong";
+ repo = "OctoPrint-${pname}";
+ rev = version;
+ sha256 = "1cn009bdgn6c9ba9an5wfj8z02wi0xcsmbhkqggiqlnqy1fq45ca";
+ };
+
+ preConfigure = ''
+ # optional; RPi.GPIO is broken on vanilla kernels
+ sed /RPi.GPIO/d -i requirements.txt
+ '';
+
+ meta = with stdenv.lib; {
+ description = "OctoPrint plugin to control ATX/AUX power supply";
+ homepage = "https://github.com/kantlivelong/OctoPrint-PSUControl";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ gebner ];
+ };
+ };
+
+ simpleemergencystop = buildPlugin rec {
+ pname = "SimpleEmergencyStop";
+ version = "1.0.3";
+
+ src = fetchFromGitHub {
+ owner = "Sebclem";
+ repo = "OctoPrint-${pname}";
+ rev = version;
+ sha256 = "0hhh5grmn32abkix1b9fr1d0pcpdi2r066iypcxdxcza9qzwjiyi";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A simple plugin that add an emergency stop buton on NavBar of OctoPrint";
+ homepage = "https://github.com/Sebclem/OctoPrint-SimpleEmergencyStop";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ WhittlesJr ];
+ };
+ };
+
+ stlviewer = buildPlugin rec {
+ pname = "STLViewer";
+ version = "0.4.2";
+
+ src = fetchFromGitHub {
+ owner = "jneilliii";
+ repo = "OctoPrint-STLViewer";
+ rev = version;
+ sha256 = "0mkvh44fn2ch4z2avsdjwi1rp353ylmk9j5fln4x7rx8ph8y7g2b";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A simple stl viewer tab for OctoPrint";
+ homepage = "https://github.com/jneilliii/Octoprint-STLViewer";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ abbradar ];
+ };
+ };
+
+ themeify = buildPlugin rec {
+ pname = "Themeify";
+ version = "1.2.2";
+
+ src = fetchFromGitHub {
+ owner = "Birkbjo";
+ repo = "Octoprint-${pname}";
+ rev = "v${version}";
+ sha256 = "0j1qs6kyh947npdy7pqda25fjkqinpas3sy0qyscqlxi558lhvx2";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Beautiful themes for OctoPrint";
+ homepage = "https://github.com/birkbjo/OctoPrint-Themeify";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ lovesegfault ];
+ };
+ };
+
+ titlestatus = buildPlugin rec {
+ pname = "TitleStatus";
+ version = "0.0.5";
+
+ src = fetchFromGitHub {
+ owner = "MoonshineSG";
+ repo = "OctoPrint-TitleStatus";
+ rev = version;
+ sha256 = "10nxjrixg0i6n6x8ghc1ndshm25c97bvkcis5j9kmlkkzs36i2c6";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Show printers status in window title";
+ homepage = "https://github.com/MoonshineSG/OctoPrint-TitleStatus";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ abbradar ];
+ };
+ };
+
+ touchui = buildPlugin rec {
+ pname = "TouchUI";
+ version = "0.3.16";
+
+ src = fetchFromGitHub {
+ owner = "BillyBlaze";
+ repo = "OctoPrint-${pname}";
+ rev = version;
+ sha256 = "1jlqjirc4ygl4k7jp93l2h6b18jap3mzz8sf2g61j9w0kgv9l365";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Touch friendly interface for a small TFT module or phone for OctoPrint";
+ homepage = "https://github.com/BillyBlaze/OctoPrint-TouchUI";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ gebner ];
+ };
+ };
+
+ octoklipper = buildPlugin rec {
+ pname = "OctoKlipper";
+ version = "0.3.2";
+
+ src = fetchFromGitHub {
+ owner = "AliceGrey";
+ repo = "OctoprintKlipperPlugin";
+ rev = version;
+ sha256 = "15yg2blbgqp2gdpsqqm8qiiznq5qaq8wss07jimkl0865vrvlz7l";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A plugin for a better integration of Klipper into OctoPrint";
+ homepage = "https://github.com/AliceGrey/OctoprintKlipperPlugin";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ lovesegfault ];
+ };
+ };
+
+ octoprint-dashboard = buildPlugin rec {
+ pname = "OctoPrint-Dashboard";
+ version = "1.15.2";
+
+ src = fetchFromGitHub {
+ owner = "StefanCohen";
+ repo = pname;
+ rev = version;
+ sha256 = "0p94jwd7kagh3sixhcrqmsgbay4aaf9l1pgyi2b45jym8pvld5n4";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A dashboard for Octoprint";
+ homepage = "https://github.com/StefanCohen/OctoPrint-Dashboard";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ j0hax ];
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/printtimegenius-logging.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/printtimegenius-logging.patch
new file mode 100644
index 000000000000..66c2e83d62ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/octoprint/printtimegenius-logging.patch
@@ -0,0 +1,17 @@
+diff --git a/setup.py b/setup.py
+index 6a6610e..cc45902 100644
+--- a/setup.py
++++ b/setup.py
+@@ -35,9 +35,9 @@ plugin_license = "AGPLv3"
+ # Any additional requirements besides OctoPrint should be listed here
+ # For now, require the working release, which is only 1.3.9rc1.
+ plugin_requires = ["OctoPrint>=1.3.9rc1", "psutil", "sarge"]
+-from sys import version_info
+-if version_info[0] < 3:
+- plugin_requires.append("logging")
++#from sys import version_info
++#if version_info[0] < 3:
++# plugin_requires.append("logging")
+
+ ### --------------------------------------------------------------------------------------------------------------------
+ ### More advanced options that you usually shouldn't have to touch follow after this point
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ola/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ola/default.nix
new file mode 100644
index 000000000000..a9f12d572c8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ola/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, bison
+, flex
+, pkgconfig
+, libuuid
+, cppunit
+, protobuf
+, zlib
+, avahi
+, libmicrohttpd
+, perl
+, python3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ola";
+ version = "unstable-2020-07-17";
+
+ src = fetchFromGitHub {
+ owner = "OpenLightingProject";
+ repo = "ola";
+ rev = "e2cd699c7792570500578fd092fb6bfb3d511023"; # HEAD of "0.10" branch
+ sha256 = "17a3z3zhx00rjk58icd3zlqfw3753f3y8bwy2sza0frdim09lqr4";
+ };
+
+ nativeBuildInputs = [ autoreconfHook bison flex pkgconfig perl ];
+ buildInputs = [ libuuid cppunit protobuf zlib avahi libmicrohttpd python3 ];
+ propagatedBuildInputs = [
+ python3.pkgs.protobuf
+ python3.pkgs.numpy
+ ];
+
+ configureFlags = [ "--enable-python-libs" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A framework for controlling entertainment lighting equipment";
+ homepage = "https://www.openlighting.org/ola/";
+ maintainers = with maintainers; [ globin ];
+ license = with licenses; [ lgpl21 gpl2Plus ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/olifant/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/olifant/default.nix
new file mode 100644
index 000000000000..21091b2583a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/olifant/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, fetchpatch
+, vala
+, meson
+, ninja
+, pkgconfig
+, python3
+, libgee
+, gsettings-desktop-schemas
+, gnome3
+, pantheon
+, wrapGAppsHook
+, gtk3
+, json-glib
+, glib
+, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+ pname = "olifant";
+ version = "0.2.1-beta6";
+
+ src = fetchFromGitHub {
+ owner = "cleac";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-3hnEa4Q1dH0R8Jp+Ew0+dH1PEm3F+56jYwqhJ+vll4M=";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ glib-networking
+ gnome3.libsoup
+ gsettings-desktop-schemas
+ gtk3
+ json-glib
+ libgee
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "A simple Mastodon client designed for elementary OS, originally developed by @bleakgrey";
+ homepage = "https://github.com/cleac/olifant";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ worldofpeace ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/omegat.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/omegat.nix
new file mode 100644
index 000000000000..47536cc9f6a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/omegat.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, unzip, jdk, makeWrapper}:
+
+stdenv.mkDerivation {
+ version = "4.3.0";
+ pname = "omegat";
+
+ src = fetchurl { # their zip has repeated files or something, so no fetchzip
+ url = "mirror://sourceforge/project/omegat/OmegaT%20-%20Standard/OmegaT%204.3.0/OmegaT_4.3.0_Without_JRE.zip";
+ sha256 = "0axz7r30p34z5hgvdglznc82g7yvm3g56dv5190jixskx6ba58rs";
+ };
+
+ buildInputs = [ unzip makeWrapper ];
+
+ unpackCmd = "unzip -o $curSrc"; # tries to go interactive without -o
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -r lib docs images plugins scripts *.txt *.html OmegaT.jar $out/
+
+ cat > $out/bin/omegat <<EOF
+ #! $SHELL -e
+ CLASSPATH="$out/lib"
+ exec ${jdk}/bin/java -jar -Xmx1024M $out/OmegaT.jar "\$@"
+ EOF
+ chmod +x $out/bin/omegat
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The free computer aided translation (CAT) tool for professionals";
+ longDescription = ''
+ OmegaT is a free and open source multiplatform Computer Assisted Translation
+ tool with fuzzy matching, translation memory, keyword search, glossaries, and
+ translation leveraging into updated projects.
+ '';
+ homepage = "http://www.omegat.org/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ t184256 ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/default.nix
new file mode 100644
index 000000000000..e427519d4d6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/default.nix
@@ -0,0 +1,181 @@
+{ fetchurl
+, stdenv
+, substituteAll
+, aspellWithDicts
+, at-spi2-core ? null
+, atspiSupport ? true
+, bash
+, glib
+, glibcLocales
+, dconf
+, gobject-introspection
+, gsettings-desktop-schemas
+, gtk3
+, hunspell
+, hunspellDicts
+, hunspellWithDicts
+, intltool
+, isocodes
+, libcanberra-gtk3
+, mousetweaks
+, udev
+, libxkbcommon
+, pkgconfig
+, procps
+, python3
+, wrapGAppsHook
+, xorg
+, yelp
+}:
+
+let
+
+ customHunspell = hunspellWithDicts [
+ hunspellDicts.en-us
+ ];
+
+ majorVersion = "1.4";
+
+in
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "onboard";
+ version = "${majorVersion}.1";
+
+ src = fetchurl {
+ url = "https://launchpad.net/onboard/${majorVersion}/${version}/+download/${pname}-${version}.tar.gz";
+ sha256 = "0r9q38ikmr4in4dwqd8m9gh9xjbgxnfxglnjbfcapw8ybfnf3jh1";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ inherit mousetweaks;
+ })
+ # Allow loading hunspell dictionaries installed in NixOS system path
+ ./hunspell-use-xdg-datadirs.patch
+ ];
+
+ nativeBuildInputs = [
+ gobject-introspection
+ intltool
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ bash
+ glib
+ dconf
+ gsettings-desktop-schemas
+ gtk3
+ hunspell
+ isocodes
+ libcanberra-gtk3
+ libxkbcommon
+ mousetweaks
+ udev
+ xorg.libXtst
+ xorg.libxkbfile
+ ] ++ stdenv.lib.optional atspiSupport at-spi2-core;
+
+ propagatedBuildInputs = with python3.pkgs; [
+ dbus-python
+ distutils_extra
+ pyatspi
+ pycairo
+ pygobject3
+ systemd
+ ];
+
+ propagatedUserEnvPkgs = [
+ dconf
+ ];
+
+ checkInputs = [
+ # for Onboard.SpellChecker.aspell_cmd doctests
+ (aspellWithDicts (dicts: with dicts; [ en ]))
+
+ # for Onboard.SpellChecker.hunspell_cmd doctests
+ customHunspell
+
+ # for Onboard.SpellChecker.hunspell doctests
+ hunspellDicts.en-us
+ hunspellDicts.es-es
+ hunspellDicts.it-it
+
+ python3.pkgs.nose
+ ];
+
+ # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ doCheck = false;
+
+ preBuild = ''
+ # Unnecessary file, has been removed upstream
+ # https://github.com/NixOS/nixpkgs/pull/24986#issuecomment-296114062
+ rm -r Onboard/pypredict/attic
+
+ substituteInPlace ./scripts/sokSettings.py \
+ --replace "#!/usr/bin/python3" "" \
+ --replace "PYTHON_EXECUTABLE," "\"$out/bin/onboard-settings\"" \
+ --replace '"-cfrom Onboard.settings import Settings\ns = Settings(False)"' ""
+
+ chmod -x ./scripts/sokSettings.py
+
+ patchShebangs .
+
+ substituteInPlace setup.py \
+ --replace "/etc" "$out/etc"
+
+ substituteInPlace ./Onboard/LanguageSupport.py \
+ --replace "/usr/share/xml/iso-codes" "${isocodes}/share/xml/iso-codes" \
+ --replace "/usr/bin/yelp" "${yelp}/bin/yelp"
+
+ substituteInPlace ./Onboard/Indicator.py \
+ --replace "/usr/bin/yelp" "${yelp}/bin/yelp"
+
+ substituteInPlace ./gnome/Onboard_Indicator@onboard.org/extension.js \
+ --replace "/usr/bin/yelp" "${yelp}/bin/yelp"
+
+ substituteInPlace ./Onboard/SpellChecker.py \
+ --replace "/usr/lib" "$out/lib"
+
+ substituteInPlace ./data/org.onboard.Onboard.service \
+ --replace "/usr/bin" "$out/bin"
+
+ substituteInPlace ./Onboard/utils.py \
+ --replace "/usr/share" "$out/share"
+ substituteInPlace ./onboard-defaults.conf.example \
+ --replace "/usr/share" "$out/share"
+ substituteInPlace ./Onboard/Config.py \
+ --replace "/usr/share/onboard" "$out/share/onboard"
+
+ substituteInPlace ./Onboard/WordSuggestions.py \
+ --replace "/usr/bin" "$out/bin"
+
+ # killall is dangerous on non-gnu platforms. Use pkill instead.
+ substituteInPlace ./setup.py \
+ --replace '"killall",' '"${procps}/bin/pkill", "-x",'
+ '';
+
+ installPhase = ''
+ ${python3.interpreter} setup.py install --prefix="$out"
+
+ cp onboard-default-settings.gschema.override.example $out/share/glib-2.0/schemas/10_onboard-default-settings.gschema.override
+ glib-compile-schemas $out/share/glib-2.0/schemas/
+ '';
+
+ # Remove ubuntu icons.
+ postFixup = ''
+ rm -rf $out/share/icons/ubuntu-mono-*
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://launchpad.net/onboard";
+ description = "Onscreen keyboard useful for tablet PC users and for mobility impaired users";
+ maintainers = with maintainers; [ johnramsden ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/fix-paths.patch
new file mode 100644
index 000000000000..64acc9b138c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/Onboard/ClickSimulator.py
++++ b/Onboard/ClickSimulator.py
+@@ -479,7 +479,7 @@ class CSMousetweaks(ConfigObject, ClickSimulator):
+ self._daemon_running_notify_callbacks = []
+
+ def _launch_daemon(self, delay):
+- self.launcher.launch_delayed(["mousetweaks"], delay)
++ self.launcher.launch_delayed(["@mousetweaks@/bin/mousetweaks"], delay)
+
+ def _set_connection(self, active):
+ ''' Update interface object, state and notify listeners '''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch
new file mode 100644
index 000000000000..2463c8d5f5ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch
@@ -0,0 +1,20 @@
+diff --git a/Onboard/SpellChecker.py b/Onboard/SpellChecker.py
+index 6a92757..46e755e 100644
+--- a/Onboard/SpellChecker.py
++++ b/Onboard/SpellChecker.py
+@@ -506,6 +506,10 @@ class hunspell(SCBackend):
+ if dicpath:
+ paths.extend(dicpath.split(pathsep))
+
++ datadirs = os.getenv("XDG_DATA_DIRS")
++ if datadirs:
++ paths.extend(map(lambda datadir: os.path.join(datadir, 'hunspell'), datadirs.split(pathsep)))
++
+ paths.extend(LIBDIRS)
+
+ home = os.getenv("HOME")
+@@ -723,4 +727,3 @@ class aspell_cmd(SCBackend):
+ _logger.error(_format("Failed to execute '{}', {}", \
+ " ".join(args), e))
+ return [id for id in dict_ids if id]
+-
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/oneko/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/oneko/default.nix
new file mode 100644
index 000000000000..1c5858b5677f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/oneko/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, imake, gccmakedep, xlibsWrapper }:
+
+stdenv.mkDerivation rec {
+ version_name = "1.2.sakura.5";
+ version = "1.2.5";
+ pname = "oneko";
+ src = fetchurl {
+ url = "http://www.daidouji.com/oneko/distfiles/oneko-${version_name}.tar.gz";
+ sha256 = "2c2e05f1241e9b76f54475b5577cd4fb6670de058218d04a741a04ebd4a2b22f";
+ };
+ nativeBuildInputs = [ imake gccmakedep ];
+ buildInputs = [ xlibsWrapper ];
+
+ makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
+ installTargets = [ "install" "install.man" ];
+
+ meta = with stdenv.lib; {
+ description = "Creates a cute cat chasing around your mouse cursor";
+ longDescription = ''
+ Oneko changes your mouse cursor into a mouse
+ and creates a little cute cat, which starts
+ chasing around your mouse cursor.
+ When the cat is done catching the mouse, it starts sleeping.
+ '';
+ homepage = "http://www.daidouji.com/oneko/";
+ license = licenses.publicDomain;
+ maintainers = [ maintainers.xaverdh ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/openambit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/openambit/default.nix
new file mode 100644
index 000000000000..5ef6d4ae84d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/openambit/default.nix
@@ -0,0 +1,48 @@
+{ cmake
+, fetchFromGitHub
+, lib
+, libusb1
+, mkDerivation
+, python3
+, qtbase
+, qttools
+, udev
+, zlib
+}:
+
+mkDerivation rec {
+ pname = "openambit";
+ version = "0.5";
+
+ src = fetchFromGitHub {
+ owner = "openambitproject";
+ repo = pname;
+ rev = version;
+ sha256 = "1074kvkamwnlkwdajsw1799wddcfkjh2ay6l842r0s4cvrxrai85";
+ };
+
+ nativeBuildInputs = [ cmake qttools ];
+ buildInputs = [ libusb1 python3 qtbase udev zlib ];
+
+ cmakeFlags = [ "-DCMAKE_INSTALL_UDEVRULESDIR=${placeholder "out"}/lib/udev/rules.d" ];
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/openambit --version
+ '';
+
+ postInstall = ''
+ install -m755 -D $src/tools/openambit2gpx.py $out/bin/openambit2gpx
+
+ mv -v $out/lib/udev/rules.d/libambit.rules \
+ $out/lib/udev/rules.d/20-libambit.rules
+ '';
+
+ meta = with lib; {
+ description = "Helps fetch data from Suunto Ambit GPS watches";
+ homepage = "https://github.com/openambitproject/openambit/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ rycee ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix
new file mode 100644
index 000000000000..e58570103240
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, glib, gtk2, menu-cache }:
+
+stdenv.mkDerivation rec {
+ pname = "openbox-menu";
+ version = "0.8.0";
+
+ src = fetchurl {
+ url = "https://bitbucket.org/fabriceT/openbox-menu/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "1hi4b6mq97y6ajq4hhsikbkk23aha7ikaahm92djw48mgj2f1w8l";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib gtk2 menu-cache ];
+
+ patches = [ ./with-svg.patch ];
+
+ installPhase = "make install prefix=$out";
+
+ meta = {
+ homepage = "http://fabrice.thiroux.free.fr/openbox-menu_en.html";
+ description = "Dynamic XDG menu generator for Openbox";
+ longDescription = ''
+ Openbox-menu is a pipemenu for Openbox window manager. It provides a
+ dynamic menu listing installed applications. Most of the work is done by
+ the LXDE library menu-cache.
+ '';
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/openbox-menu/with-svg.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/openbox-menu/with-svg.patch
new file mode 100644
index 000000000000..dd6710f5cfc9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/openbox-menu/with-svg.patch
@@ -0,0 +1,11 @@
+--- a/Makefile.old 2013-12-11 06:39:44.397358610 +0100
++++ b/Makefile 2013-12-11 06:39:51.082275037 +0100
+@@ -7,7 +7,7 @@
+ CFLAGS+=-DWITH_ICONS
+ # Uncomment this line if Openbox can display SVG icons
+ # Check SVG support with '$ ldd /usr/bin/openbox | grep svg', librsvg must appear..
+-# CFLAGS+=-DWITH_SVG
++CFLAGS+=-DWITH_SVG
+
+ prefix= /usr/local
+ DESTDIR ?= $(prefix)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/openbrf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/openbrf/default.nix
new file mode 100644
index 000000000000..8e990b6dffba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/openbrf/default.nix
@@ -0,0 +1,47 @@
+{ mkDerivation, stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, libGLU, libGL }:
+
+
+mkDerivation {
+ name = "openbrf-unstable-2016-01-09";
+
+ src = fetchFromGitHub {
+ owner = "cfcohen";
+ repo = "openbrf";
+ rev = "4bdc66e38def5e5184f5379c84a7558b7484c70a";
+ sha256 = "16254cnr60ihcn7bki7wl1qm6gkvzb99cn66md1pnb7za8nvzf4j";
+ };
+
+ buildInputs = [ qtbase vcg glew ];
+
+ enableParallelBuilding = true;
+ nativeBuildInputs = [ qmake ];
+
+ qmakeFlags = [ "openBrf.pro" ];
+
+ postPatch = ''
+ sed -i 's,^VCGLIB .*,VCGLIB = ${vcg}/include,' openBrf.pro
+ '';
+
+ installPhase = ''
+ install -Dm755 openBrf $out/share/openBrf/openBrf
+ install -Dm644 carry_positions.txt $out/share/openBrf/carry_positions.txt
+ install -Dm644 reference.brf $out/share/openBrf/reference.brf
+
+ patchelf \
+ --set-rpath "${stdenv.lib.makeLibraryPath [ qtbase glew stdenv.cc.cc libGLU libGL ]}" \
+ $out/share/openBrf/openBrf
+
+ mkdir -p "$out/bin"
+ ln -s "$out/share/openBrf/openBrf" "$out/bin/openBrf"
+ '';
+
+ dontPatchELF = true;
+
+ meta = with stdenv.lib; {
+ description = "A tool to edit resource files (BRF)";
+ homepage = "https://github.com/cfcohen/openbrf";
+ maintainers = with stdenv.lib.maintainers; [ abbradar ];
+ license = licenses.free;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/opencpn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/opencpn/default.nix
new file mode 100644
index 000000000000..f5a88cbaee17
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/opencpn/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, gtk2, wxGTK30, libpulseaudio, curl,
+ gettext, glib, portaudio }:
+
+stdenv.mkDerivation rec {
+ pname = "opencpn-unstable";
+ version = "2019-11-21";
+
+ src = fetchFromGitHub {
+ owner = "OpenCPN";
+ repo = "OpenCPN";
+ rev = "e73dc935545b2bbcf193cc61d987a0178c52d7a7";
+ sha256 = "0yiqahkzwcbzgabc5xgxmwlngapkfiaqyva3mwz29xj0c5lg2bdk";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ cmake gtk2 wxGTK30 libpulseaudio curl gettext
+ glib portaudio ];
+
+ cmakeFlags = [
+ "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
+ "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "A concise ChartPlotter/Navigator";
+ maintainers = [ stdenv.lib.maintainers.kragniz ];
+ platforms = [ "x86_64-linux" ];
+ license = stdenv.lib.licenses.gpl2;
+ homepage = "https://opencpn.org/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/openjump/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/openjump/default.nix
new file mode 100644
index 000000000000..544329ec5e79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/openjump/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, unzip, makeWrapper
+, coreutils, gawk, which, gnugrep, findutils
+, jdk
+}:
+
+stdenv.mkDerivation {
+ pname = "openjump";
+ version = "1.15";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/jump-pilot/OpenJUMP/1.15/OpenJUMP-Portable-1.15-r6241-CORE.zip";
+ sha256 = "12snzkv83w6khcdqzp6xahqapwp82af6c7j2q8n0lj62hk79rfgl";
+ };
+
+ # TODO: build from source
+ unpackPhase = ''
+ mkdir -p $out/bin;
+ cd $out; unzip $src
+ '';
+
+ buildInputs = [unzip makeWrapper];
+
+ installPhase = ''
+ dir=$(echo $out/OpenJUMP-*)
+
+ chmod +x $dir/bin/oj_linux.sh
+ makeWrapper $dir/bin/oj_linux.sh $out/bin/OpenJump \
+ --set JAVA_HOME ${jdk.home} \
+ --set PATH "${coreutils}/bin:${gawk}/bin:${which}/bin:${gnugrep}/bin:${findutils}/bin"
+ '';
+
+ meta = {
+ description = "Open source Geographic Information System (GIS) written in the Java programming language";
+ homepage = "http://www.openjump.org/index.html";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [stdenv.lib.maintainers.marcweber];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/openrgb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/openrgb/default.nix
new file mode 100644
index 000000000000..09a09811ab18
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/openrgb/default.nix
@@ -0,0 +1,44 @@
+{ mkDerivation, lib, fetchFromGitHub, qmake, libusb1, hidapi, pkg-config, fetchpatch }:
+
+mkDerivation rec {
+ pname = "openrgb";
+ version = "0.4";
+
+ src = fetchFromGitHub {
+ owner = "CalcProgrammer1";
+ repo = "OpenRGB";
+ rev = "release_${version}";
+ sha256 = "sha256-tHrRG2Zx7NYqn+WPiRpAlWA/QmxuAYidENanTkC1XVw";
+ };
+
+ nativeBuildInputs = [ qmake pkg-config ];
+ buildInputs = [ libusb1 hidapi ];
+
+ patches = [
+ # Make build SOURCE_DATE_EPOCH aware, merged in master
+ (fetchpatch {
+ url = "https://gitlab.com/CalcProgrammer1/OpenRGB/-/commit/f1b7b8ba900db58a1119d8d3e21c1c79de5666aa.patch";
+ sha256 = "17m1hn1kjxfcmd4p3zjhmr5ar9ng0zfbllq78qxrfcq1a0xrkybx";
+ })
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp OpenRGB $out/bin
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/OpenRGB --help > /dev/null
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Open source RGB lighting control";
+ homepage = "https://gitlab.com/CalcProgrammer1/OpenRGB";
+ maintainers = with maintainers; [ jonringer ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/opentx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/opentx/default.nix
new file mode 100644
index 000000000000..6bdcd0da1fca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/opentx/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, mkDerivation, fetchFromGitHub
+, cmake, gcc-arm-embedded, python3Packages
+, qtbase, qtmultimedia, qttranslations, SDL, gtest
+, dfu-util, avrdude
+}:
+
+mkDerivation rec {
+ pname = "opentx";
+ version = "2.3.10";
+
+ src = fetchFromGitHub {
+ owner = "opentx";
+ repo = "opentx";
+ rev = "release/${version}";
+ sha256 = "1pp3k1802gl1rji98clv17wj0619dliq821mpi4446lk22q692yq";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ cmake gcc-arm-embedded python3Packages.pillow ];
+
+ buildInputs = [ qtbase qtmultimedia qttranslations SDL ];
+
+ postPatch = ''
+ sed -i companion/src/burnconfigdialog.cpp \
+ -e 's|/usr/.*bin/dfu-util|${dfu-util}/bin/dfu-util|' \
+ -e 's|/usr/.*bin/avrdude|${avrdude}/bin/avrdude|'
+ '';
+
+ cmakeFlags = [
+ "-DGTEST_ROOT=${gtest.src}/googletest"
+ "-DQT_TRANSLATIONS_DIR=${qttranslations}/translations"
+ # XXX I would prefer to include these here, though we will need to file a bug upstream to get that changed.
+ #"-DDFU_UTIL_PATH=${dfu-util}/bin/dfu-util"
+ #"-DAVRDUDE_PATH=${avrdude}/bin/avrdude"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "OpenTX Companion transmitter support software";
+ longDescription = ''
+ OpenTX Companion is used for many different tasks like loading OpenTX
+ firmware to the radio, backing up model settings, editing settings and
+ running radio simulators.
+ '';
+ homepage = "https://www.open-tx.org/";
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
+ maintainers = with maintainers; [ elitak lopsided98 ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/orca/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/orca/default.nix
new file mode 100644
index 000000000000..377f00d1c166
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/orca/default.nix
@@ -0,0 +1,117 @@
+{ stdenv
+, pkgconfig
+, fetchurl
+, buildPythonApplication
+, autoreconfHook
+, wrapGAppsHook
+, gobject-introspection
+, gettext
+, yelp-tools
+, itstool
+, libxmlxx3
+, python
+, pygobject3
+, gtk3
+, gnome3
+, substituteAll
+, at-spi2-atk
+, at-spi2-core
+, pyatspi
+, dbus
+, dbus-python
+, pyxdg
+, xkbcomp
+, procps
+, lsof
+, coreutils
+, gsettings-desktop-schemas
+, speechd
+, brltty
+, liblouis
+, setproctitle
+, gst_all_1
+, gst-python
+}:
+
+buildPythonApplication rec {
+ pname = "orca";
+ version = "3.38.1";
+
+ format = "other";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1sqmq9xhcm3rc3mbhj1bdn55bkpzbk72xhmgka75syxh77gzz0ld";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ cat = "${coreutils}/bin/cat";
+ lsof = "${lsof}/bin/lsof";
+ pgrep = "${procps}/bin/pgrep";
+ xkbcomp = "${xkbcomp}/bin/xkbcomp";
+ })
+ ];
+
+ nativeBuildInputs = [
+ autoreconfHook
+ wrapGAppsHook
+ pkgconfig
+ libxmlxx3
+ gettext
+ yelp-tools
+ itstool
+ gobject-introspection
+ ];
+
+ propagatedBuildInputs = [
+ pygobject3
+ pyatspi
+ dbus-python
+ pyxdg
+ brltty
+ liblouis
+ speechd
+ gst-python
+ setproctitle
+ ];
+
+ strictDeps = false;
+
+ buildInputs = [
+ python
+ gtk3
+ at-spi2-atk
+ at-spi2-core
+ dbus
+ gsettings-desktop-schemas
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/Projects/Orca";
+ description = "Screen reader";
+ longDescription = ''
+ A free, open source, flexible and extensible screen reader that provides
+ access to the graphical desktop via speech and refreshable braille.
+ It works with applications and toolkits that support the Assistive
+ Technology Service Provider Interface (AT-SPI). That includes the GNOME
+ GTK toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and
+ WebKitGtk. AT-SPI support for the KDE Qt toolkit is being pursued.
+
+ Needs `services.gnome3.at-spi2-core.enable = true;` in `configuration.nix`.
+ '';
+ maintainers = with maintainers; [ berce ] ++ teams.gnome.members;
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch
new file mode 100644
index 000000000000..ffb56dbe239c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch
@@ -0,0 +1,78 @@
+--- a/src/orca/debug.py
++++ b/src/orca/debug.py
+@@ -474,7 +474,7 @@
+ return traceit
+
+ def getOpenFDCount(pid):
+- procs = subprocess.check_output([ 'lsof', '-w', '-Ff', '-p', str(pid)])
++ procs = subprocess.check_output([ '@lsof@', '-w', '-Ff', '-p', str(pid)])
+ procs = procs.decode('UTF-8').split('\n')
+ files = list(filter(lambda s: s and s[0] == 'f' and s[1:].isdigit(), procs))
+
+@@ -482,7 +482,7 @@
+
+ def getCmdline(pid):
+ try:
+- openFile = os.popen('cat /proc/%s/cmdline' % pid)
++ openFile = os.popen('@cat@ /proc/%s/cmdline' % pid)
+ cmdline = openFile.read()
+ openFile.close()
+ except:
+@@ -492,7 +492,7 @@
+ return cmdline
+
+ def pidOf(procName):
+- openFile = subprocess.Popen('pgrep %s' % procName,
++ openFile = subprocess.Popen('@pgrep@ %s' % procName,
+ shell=True,
+ stdout=subprocess.PIPE).stdout
+ pids = openFile.read()
+--- a/src/orca/orca.py
++++ b/src/orca/orca.py
+@@ -239,7 +239,7 @@
+
+ def _setXmodmap(xkbmap):
+ """Set the keyboard map using xkbcomp."""
+- p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']],
++ p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']],
+ stdin=subprocess.PIPE, stdout=None, stderr=None)
+ p.communicate(xkbmap)
+
+@@ -297,7 +297,7 @@
+ """
+
+ global _originalXmodmap
+- _originalXmodmap = subprocess.check_output(['xkbcomp', os.environ['DISPLAY'], '-'])
++ _originalXmodmap = subprocess.check_output(['@xkbcomp@', os.environ['DISPLAY'], '-'])
+
+ def _restoreXmodmap(keyList=[]):
+ """Restore the original xmodmap values for the keys in keyList.
+@@ -309,7 +309,7 @@
+
+ global _capsLockCleared
+ _capsLockCleared = False
+- p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']],
++ p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']],
+ stdin=subprocess.PIPE, stdout=None, stderr=None)
+ p.communicate(_originalXmodmap)
+
+--- a/src/orca/orca_bin.py.in
++++ b/src/orca/orca_bin.py.in
+@@ -59,7 +59,7 @@
+ name = "[DEAD]"
+
+ try:
+- cmdline = subprocess.getoutput('cat /proc/%s/cmdline' % pid)
++ cmdline = subprocess.getoutput('@cat@ /proc/%s/cmdline' % pid)
+ except:
+ cmdline = '(exception encountered)'
+ else:
+@@ -192,7 +192,7 @@
+ def otherOrcas():
+ """Returns the pid of any other instances of Orca owned by this user."""
+
+- openFile = subprocess.Popen('pgrep -u %s orca' % os.getuid(),
++ openFile = subprocess.Popen('@pgrep@ -u %s orca' % os.getuid(),
+ shell=True,
+ stdout=subprocess.PIPE).stdout
+ pids = openFile.read()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/orpie/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/orpie/default.nix
new file mode 100644
index 000000000000..2bf102fee257
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/orpie/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub, ocamlPackages }:
+
+ocamlPackages.buildDunePackage rec {
+ pname = "orpie";
+ version = "1.6.1";
+
+ src = fetchFromGitHub {
+ owner = "pelzlpj";
+ repo = pname;
+ rev = "release-${version}";
+ sha256 = "1rx2nl6cdv609pfymnbq53pi3ql5fr4kda8x10ycd9xq2gc4f21g";
+ };
+
+ preConfigure = ''
+ patchShebangs scripts
+ substituteInPlace scripts/compute_prefix \
+ --replace '"topfind"' \
+ '"${ocamlPackages.findlib}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/topfind"'
+ export PREFIX=$out
+ '';
+
+ buildInputs = with ocamlPackages; [ curses camlp5 num gsl ];
+
+ meta = {
+ inherit (src.meta) homepage;
+ description = "A Curses-based RPN calculator";
+ license = lib.licenses.gpl3Only;
+ maintainers = with lib.maintainers; [ obadz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix
new file mode 100644
index 000000000000..1c8933364984
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, libroxml, proj, libyamlcpp, boost } :
+
+stdenv.mkDerivation rec {
+ pname = "osm2xmap";
+ version = "2.0";
+
+ src = fetchFromGitHub {
+ sha256 = "1d3f18wzk240yp0q8i2vskhcfj5ar61s4hw83vgps0wr2aglph3w";
+ repo = "osm2xmap";
+ owner = "sembruk";
+ rev = "v${version}";
+ };
+
+ makeFlags = [
+ "GIT_VERSION=${version}"
+ "GIT_TIMESTAMP="
+ "SHAREDIR=${placeholder ''out''}/share/osm2xmap"
+ "INSTALL_BINDIR=${placeholder ''out''}/bin"
+ "INSTALL_MANDIR=${placeholder ''out''}/share/man/man1"
+ ];
+
+ NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
+
+ buildInputs = [ libroxml proj libyamlcpp boost ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sembruk/osm2xmap";
+ description = "Converter from OpenStreetMap data format to OpenOrienteering Mapper format";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.mpickering ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/osmctools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/osmctools/default.nix
new file mode 100644
index 000000000000..b0f1f48d9aea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/osmctools/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitLab, autoreconfHook, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "osmctools";
+ version = "0.9";
+
+ src = fetchFromGitLab {
+ owner = "osm-c-tools";
+ repo = pname;
+ rev = version;
+ sha256 = "1m8d3r1q1v05pkr8k9czrmb4xjszw6hvgsf3kn9pf0v14gpn4r8f";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ zlib ];
+
+ meta = with stdenv.lib; {
+ description = "Command line tools for transforming Open Street Map files";
+ homepage = [
+ "https://wiki.openstreetmap.org/wiki/osmconvert"
+ "https://wiki.openstreetmap.org/wiki/osmfilter"
+ "https://wiki.openstreetmap.org/wiki/osmupdate"
+ ];
+ maintainers = with maintainers; [ sikmir ];
+ platforms = platforms.unix;
+ license = licenses.agpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix
new file mode 100644
index 000000000000..892038c252ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, installShellFiles
+, pandoc
+, boost
+, bzip2
+, expat
+, libosmium
+, protozero
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "osmium-tool";
+ version = "1.12.1";
+
+ src = fetchFromGitHub {
+ owner = "osmcode";
+ repo = "osmium-tool";
+ rev = "v${version}";
+ sha256 = "13142hj8gfgj6w51a62hjzfmzic90xgrnnlnb70hpdqjy86bxv7j";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ installShellFiles
+ pandoc
+ ];
+
+ buildInputs = [
+ boost
+ bzip2
+ expat
+ libosmium
+ protozero
+ zlib
+ ];
+
+ doCheck = true;
+
+ postInstall = ''
+ installShellCompletion --zsh ../zsh_completion/_osmium
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Multipurpose command line tool for working with OpenStreetMap data based on the Osmium library";
+ homepage = "https://osmcode.org/osmium-tool/";
+ license = with licenses; [ gpl3 mit bsd3 ];
+ maintainers = with maintainers; [ das-g ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/overmind/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/overmind/default.nix
new file mode 100644
index 000000000000..ca05facaa48f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/overmind/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoPackage, fetchFromGitHub, tmux, which, makeWrapper }:
+
+buildGoPackage rec {
+ pname = "overmind";
+ version = "2.1.1";
+ goPackagePath = "github.com/DarthSim/overmind";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postInstall = ''
+ wrapProgram "$out/bin/overmind" --prefix PATH : "${lib.makeBinPath [ tmux which ]}"
+ '';
+
+ src = fetchFromGitHub {
+ owner = "DarthSim";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0akqn8s1mgk5q00gzh3ymq7nrnkyi6avyaxxvbxnjyq9bxsqz327";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ homepage = "https://github.com/DarthSim/overmind";
+ description = "Process manager for Procfile-based applications and tmux";
+ license = with licenses; [ mit ];
+ maintainers = [ maintainers.adisbladis ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/overmind/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/overmind/deps.nix
new file mode 100644
index 000000000000..afcc8d9726fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/overmind/deps.nix
@@ -0,0 +1,147 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "github.com/BurntSushi/toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/BurntSushi/toml";
+ rev = "v0.3.1";
+ sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+ };
+ }
+ {
+ goPackagePath = "github.com/DarthSim/godotenv";
+ fetch = {
+ type = "git";
+ url = "https://github.com/DarthSim/godotenv";
+ rev = "v1.3.1";
+ sha256 = "0fb9nl5qrnv7f9w0pgg00ak34afw9kjgcql0l38z22faz2bhgl1q";
+ };
+ }
+ {
+ goPackagePath = "github.com/cpuguy83/go-md2man";
+ fetch = {
+ type = "git";
+ url = "https://github.com/cpuguy83/go-md2man";
+ rev = "f79a8a8ca69d";
+ sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
+ };
+ }
+ {
+ goPackagePath = "github.com/kardianos/osext";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kardianos/osext";
+ rev = "2bc1f35cddc0";
+ sha256 = "1pvrbrvmrf4mx0fxbfaphbzgqgwn8v6lkfk2vyrs0znxrs1xyc5r";
+ };
+ }
+ {
+ goPackagePath = "github.com/matoous/go-nanoid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/matoous/go-nanoid";
+ rev = "eab626deece6";
+ sha256 = "1a82lclk56y7c44jg7wn5vq733dmn0g20r5yqbchrxnpfl75dw89";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/term";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/term";
+ rev = "aa71e9d9e942";
+ sha256 = "1gyxnj4jq3z2k4gjwwlz8hn56c1ys8jvafdd61nd6qs8jwp6iqp3";
+ };
+ }
+ {
+ goPackagePath = "github.com/pmezard/go-difflib";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pmezard/go-difflib";
+ rev = "v1.0.0";
+ sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+ };
+ }
+ {
+ goPackagePath = "github.com/russross/blackfriday";
+ fetch = {
+ type = "git";
+ url = "https://github.com/russross/blackfriday";
+ rev = "v2.0.1";
+ sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j";
+ };
+ }
+ {
+ goPackagePath = "github.com/sevlyar/go-daemon";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sevlyar/go-daemon";
+ rev = "v0.1.5";
+ sha256 = "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk";
+ };
+ }
+ {
+ goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
+ fetch = {
+ type = "git";
+ url = "https://github.com/shurcooL/sanitized_anchor_name";
+ rev = "v1.0.0";
+ sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f";
+ };
+ }
+ {
+ goPackagePath = "github.com/urfave/cli";
+ fetch = {
+ type = "git";
+ url = "https://github.com/urfave/cli";
+ rev = "v1.22.2";
+ sha256 = "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "88737f569e3a";
+ sha256 = "02vkqfd6kc28zm6lffagw8nr78sayv6jabfgk9dcifl7826vi3k7";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "81d4e9dc473e";
+ sha256 = "0074zjpkhclz5qbgjv0zmdwy6hmf5k2ri5yagnm6i12ahxaa48dr";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/check.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/check.v1";
+ rev = "20d25e280405";
+ sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/urfave/cli.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/urfave/cli.v1";
+ rev = "v1.20.0";
+ sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "v2.2.2";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix
new file mode 100644
index 000000000000..678bc06f8004
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchFromGitHub, python3, dbus, gnupg }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "pass-secret-service";
+ # PyPI has old alpha version. Since then the project has switched from using a
+ # seemingly abandoned D-Bus package pydbus and started using maintained
+ # dbus-next. So let's use latest from GitHub.
+ version = "unstable-2020-04-12";
+
+ src = fetchFromGitHub {
+ owner = "mdellweg";
+ repo = "pass_secret_service";
+ rev = "f6fbca6ac3ccd16bfec407d845ed9257adf74dfa";
+ sha256 = "0rm4pbx1fiwds1v7f99khhh7x3inv9yniclwd95mrbgljk3cc6a4";
+ };
+
+
+ # Need to specify session.conf file for tests because it won't be found under
+ # /etc/ in check phase.
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace \
+ "dbus-run-session" \
+ "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf"
+ '';
+
+ propagatedBuildInputs = with python3.pkgs; [
+ click
+ cryptography
+ dbus-next
+ decorator
+ pypass
+ secretstorage
+ ];
+
+ checkInputs =
+ let
+ ps = python3.pkgs;
+ in
+ [
+ dbus
+ gnupg
+ ps.pytest
+ ps.pytest-asyncio
+ ps.pypass
+ ];
+
+ checkPhase = ''
+ runHook preCheck
+ make test
+ runHook postCheck
+ '';
+
+ meta = {
+ description = "Libsecret D-Bus API with pass as the backend";
+ homepage = "https://github.com/mdellweg/pass_secret_service/";
+ license = stdenv.lib.licenses.gpl3Only;
+ platforms = stdenv.lib.platforms.all;
+ maintainers = with stdenv.lib.maintainers; [ jluttine ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pastel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pastel/default.nix
new file mode 100644
index 000000000000..aaaf6dc778b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pastel/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "pastel";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "sharkdp";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "00xxrssa3gbr5w2jsqlf632jlzc0lc2rpybnbv618ndy5lxidnw0";
+ };
+
+ cargoSha256 = "1ji64h0f8f2sq12cx33kymypzar9swhaj903gclf3jdwgna77326";
+
+ buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+ meta = with stdenv.lib; {
+ description = "A command-line tool to generate, analyze, convert and manipulate colors";
+ homepage = "https://github.com/sharkdp/pastel";
+ changelog = "https://github.com/sharkdp/pastel/releases/tag/v${version}";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ davidtwco ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pbpst/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pbpst/default.nix
new file mode 100644
index 000000000000..c1fd6c5d7cb8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pbpst/default.nix
@@ -0,0 +1,50 @@
+{ llvmPackages, stdenv, fetchFromGitHub
+, python36Packages, which, pkgconfig, curl, git, gettext, jansson
+
+# Optional overrides
+, maxFileSize ? 64 # in MB
+, provider ? "https://ptpb.pw/"
+}:
+
+llvmPackages.stdenv.mkDerivation rec {
+ version = "unstable-2018-01-11";
+ name = "pbpst-${version}";
+
+ src = fetchFromGitHub {
+ owner = "HalosGhost";
+ repo = "pbpst";
+ rev = "ecbe08a0b72a6e4212f09fc6cf52a73506992346";
+ sha256 = "0dwhmw1dg4hg75nlvk5kmvv3slz2n3b9x65q4ig16agwqfsp4mdm";
+ };
+
+ nativeBuildInputs = [
+ python36Packages.sphinx
+ which
+ pkgconfig
+ curl
+ git
+ gettext
+ ];
+ buildInputs = [ curl jansson ];
+
+ patchPhase = ''
+ patchShebangs ./configure
+
+ # Remove hardcoded check for libs in /usr/lib/
+ sed -e '64,67d' -i ./configure
+ '';
+
+ configureFlags = [
+ "--file-max=${toString (maxFileSize * 1024 * 1024)}" # convert to bytes
+ "--provider=${provider}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A command-line libcurl C client for pb deployments";
+ inherit (src.meta) homepage;
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ tmplt ];
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix
new file mode 100644
index 000000000000..202e7a2de95f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, glib, intltool, libfm, libX11, pango, pkgconfig
+, wrapGAppsHook, gnome3, withGtk3 ? true, gtk2, gtk3 }:
+
+let
+ libfm' = libfm.override { inherit withGtk3; };
+ gtk = if withGtk3 then gtk3 else gtk2;
+ inherit (stdenv.lib) optional;
+in
+stdenv.mkDerivation rec {
+ name = "pcmanfm-1.3.1";
+ src = fetchurl {
+ url = "mirror://sourceforge/pcmanfm/${name}.tar.xz";
+ sha256 = "0mb8hg76x1z0szdyl0w7jpz0bdblc6a29is1vvnh79z37qxh8138";
+ };
+
+ buildInputs = [ glib gtk libfm' libX11 pango gnome3.adwaita-icon-theme ];
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook intltool ];
+
+ configureFlags = optional withGtk3 "--with-gtk=3";
+
+ meta = with stdenv.lib; {
+ homepage = "https://blog.lxde.org/category/pcmanfm/";
+ license = licenses.gpl2Plus;
+ description = "File manager with GTK interface";
+ maintainers = [ maintainers.ttuegel ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix
new file mode 100644
index 000000000000..6c3241d629b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, gtk2, libXft, intltool, automake, autoconf, libtool, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "pcmanx-gtk2";
+ version = "1.3";
+
+ src = fetchFromGitHub {
+ owner = "pcman-bbs";
+ repo = "pcmanx";
+ rev = version;
+ sha256 = "0fbwd149wny67rfhczz4cbh713a1qnswjiz7b6c2bxfcwh51f9rc";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 libXft intltool automake autoconf libtool ];
+
+ preConfigure = ''
+ ./autogen.sh
+ # libtoolize generates configure script which uses older version of automake, we need to autoreconf it
+ cd libltdl; autoreconf; cd ..
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://pcman.ptt.cc";
+ license = licenses.gpl2;
+ description = "Telnet BBS browser with GTK interface";
+ maintainers = [ maintainers.sifmelcara ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix
new file mode 100644
index 000000000000..c84c09e59a7e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, pkgs, python3, wrapGAppsHook}:
+
+python3.pkgs.buildPythonApplication {
+ pname = "pdf-quench";
+ version = "1.0.5";
+
+ src = fetchFromGitHub {
+ owner = "linuxerwang";
+ repo = "pdf-quench";
+ rev = "b72b3970b371026f9a7ebe6003581e8a63af98f6";
+ sha256 = "1rp9rlwr6rarcsxygv5x2c5psgwl6r69k0lsgribgyyla9cf2m7n";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+ buildInputs = with pkgs; [
+ gtk3
+ gobject-introspection
+ goocanvas2
+ poppler_gi
+ ];
+ propagatedBuildInputs = with python3.pkgs; [ pygobject3 pypdf2 ];
+
+ format = "other";
+ doCheck = false;
+
+ installPhase = ''
+ install -D -T -m 755 src/pdf_quench.py $out/bin/pdf-quench
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/linuxerwang/pdf-quench";
+ description = "A visual tool for cropping pdf files";
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ flokli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
new file mode 100644
index 000000000000..8c8413b2ce60
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, lib
+, wrapGAppsHook, intltool
+, python3Packages, gtk3, poppler_gi
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "pdfarranger";
+ version = "1.6.2";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "wJ6ImWpszfgErfLh7YgHirVKFIt0ij8A/CdYJmkNBP0=";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook intltool
+ ] ++ (with python3Packages; [
+ setuptools distutils_extra
+ ]);
+
+ buildInputs = [
+ gtk3 poppler_gi
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pygobject3
+ pikepdf
+ img2pdf
+ setuptools
+ ];
+
+ # incompatible with wrapGAppsHook
+ strictDeps = false;
+ dontWrapGApps = true;
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ doCheck = false; # no tests
+
+ meta = with lib; {
+ inherit (src.meta) homepage;
+ description = "Merge or split pdf documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical interface";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ symphorien ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfdiff/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfdiff/default.nix
new file mode 100644
index 000000000000..93ca8c644798
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfdiff/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, pythonPackages, fetchurl, xpdf }:
+let
+ py = pythonPackages;
+in
+py.buildPythonApplication rec {
+ name = "pdfdiff-${version}";
+ version = "0.92";
+
+ src = fetchurl {
+ url = "https://www.cs.ox.ac.uk/people/cas.cremers/downloads/software/pdfdiff.py";
+ sha256 = "0zxwjjbklz87wkbhkmsvhc7xmv5php7m2a9vm6ydhmhlxsybf836";
+ };
+
+ buildInputs = [ pythonPackages.wrapPython ];
+
+ doCheck = false;
+
+ phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+
+ unpackPhase = "cp $src pdfdiff.py";
+
+ postPatch = ''
+ sed -i -r 's|pdftotextProgram = "pdftotext"|pdftotextProgram = "${xpdf}/bin/pdftotext"|' pdfdiff.py
+ sed -i -r 's|progName = "pdfdiff.py"|progName = "pdfdiff"|' pdfdiff.py
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp pdfdiff.py $out/bin/pdfdiff
+ chmod +x $out/bin/pdfdiff
+
+ substituteInPlace $out/bin/pdfdiff --replace "#!/usr/bin/python" "#!${pythonPackages.python.interpreter}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.cs.ox.ac.uk/people/cas.cremers/misc/pdfdiff.html";
+ description = "Tool to view the difference between two PDF or PS files";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfmod/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfmod/default.nix
new file mode 100644
index 000000000000..90107be64c72
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfmod/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, fetchpatch, pkgconfig, gnome-doc-utils, intltool, lib
+, mono, gtk-sharp-2_0, gnome-sharp, hyena
+, which, makeWrapper, glib, gnome2, poppler, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "pdfmod";
+ version = "0.9.1";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+ sha256 = "eb7c987514a053106ddf03f26544766c751c801d87762909b36415d46bc425c9";
+ };
+
+ patches = [ (fetchpatch {
+ url = "https://raw.githubusercontent.com/City-busz/Arch-Linux-Repository"
+ + "/master/gnome/pdfmod/pdfmod/pdfmod-mono-2.10.patch";
+ sha256 = "0fpz9ifr6476lqhd5rkb94dm68vlrwdq5w1aaxzgyjgdax9hxx81";
+ }) ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ gnome-doc-utils intltool mono gtk-sharp-2_0 gnome-sharp
+ hyena which makeWrapper wrapGAppsHook
+ ];
+
+ preConfigure = ''
+ substituteInPlace lib/poppler-sharp/poppler-sharp/poppler-sharp.dll.config \
+ --replace libpoppler-glib.so.4 libpoppler-glib.so
+ '';
+
+ postInstall = ''
+ makeWrapper "${mono}/bin/mono" "$out/bin/pdfmod" \
+ --add-flags "$out/lib/pdfmod/PdfMod.exe" \
+ --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \
+ --prefix MONO_GAC_PREFIX : ${gnome-sharp} \
+ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gnome-sharp gnome2.GConf gtk-sharp-2_0 gtk-sharp-2_0.gtk poppler ]}
+ '';
+
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/Attic/PdfMod";
+ description = "A simple application for modifying PDF documents";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ obadz ];
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfpc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
new file mode 100644
index 000000000000..fc0bf62f1e9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, vala, gtk3, libgee, fetchpatch
+, poppler, libpthreadstubs, gstreamer, gst-plugins-base, gst-plugins-good, gst-libav, librsvg, pcre, gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ name = "${product}-${version}";
+ product = "pdfpc";
+ version = "4.4.1";
+
+ src = fetchFromGitHub {
+ repo = product;
+ owner = product;
+ rev = "v${version}";
+ sha256 = "11n925c5jj3yfwnqkgxzqrmsrpqh8ls1g4idmqqzpsanpam1xvna";
+ };
+
+ nativeBuildInputs = [
+ cmake pkgconfig vala
+ # For setup hook
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3 libgee poppler
+ libpthreadstubs librsvg pcre
+ gstreamer
+ gst-plugins-base
+ (gst-plugins-good.override { gtkSupport = true; })
+ gst-libav
+ ];
+
+ cmakeFlags = stdenv.lib.optional stdenv.isDarwin "-DMOVIES=OFF";
+
+ meta = with stdenv.lib; {
+ description = "A presenter console with multi-monitor support for PDF files";
+ homepage = "https://pdfpc.github.io/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
new file mode 100644
index 000000000000..039967f41820
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, makeDesktopItem, fetchurl, jdk11, wrapGAppsHook, glib }:
+
+stdenv.mkDerivation rec {
+ pname = "pdfsam-basic";
+ version = "4.2.1";
+
+ src = fetchurl {
+ url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
+ sha256 = "0d7pvl87ybkvcxk69fr35fz0w447hy2pm65bhvlril16ljm2izja";
+ };
+
+ unpackPhase = ''
+ ar vx ${src}
+ tar xvf data.tar.gz
+ '';
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+ buildInputs = [ glib ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(--set JAVA_HOME "${jdk11}" --set PDFSAM_JAVA_PATH "${jdk11}")
+ '';
+
+ installPhase = ''
+ cp -R opt/pdfsam-basic/ $out/
+ mkdir -p "$out"/share/icons
+ cp --recursive ${desktopItem}/share/applications $out/share
+ cp $out/icon.svg "$out"/share/icons/pdfsam-basic.svg
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = pname;
+ icon = pname;
+ comment = meta.description;
+ desktopName = "PDFsam Basic";
+ genericName = "PDF Split and Merge";
+ mimeType = "application/pdf;";
+ categories = "Office;";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/torakiki/pdfsam";
+ description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files";
+ license = licenses.agpl3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ _1000101 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/peaclock/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/peaclock/default.nix
new file mode 100644
index 000000000000..e824bbaf583b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/peaclock/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, libpthreadstubs, icu }:
+
+stdenv.mkDerivation rec {
+ pname = "peaclock";
+ version = "0.4.3";
+
+ src = fetchFromGitHub {
+ owner = "octobanana";
+ repo = pname;
+ rev = version;
+ sha256 = "1582vgslhpgbvcd7ipgf1d1razrvgpq1f93q069yr2bbk6xn8i16";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libpthreadstubs icu ];
+
+ meta = with stdenv.lib; {
+ description = "A clock, timer, and stopwatch for the terminal";
+ homepage = "https://octobanana.com/software/peaclock";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ djanatyn ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pell/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pell/default.nix
new file mode 100644
index 000000000000..ae96ce6925e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pell/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, scsh, sox, libnotify }:
+
+stdenv.mkDerivation rec {
+ pname = "pell";
+ version = "0.0.4";
+
+ src = fetchFromGitHub {
+ owner = "ebzzry";
+ repo = pname;
+ rev = "f251625ece6bb5517227970287119e7d2dfcea8b";
+ sha256 = "0k8m1lv2kyrs8fylxmbgxg3jn65g57frf2bndc82gkr5svwb554a";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share
+ cp pell $out/bin
+ cp resources/online.mp3 $out/share
+ cp resources/offline.mp3 $out/share
+ chmod +x $out/bin/pell
+ '';
+
+ postFixup = ''
+ substituteInPlace $out/bin/pell --replace "/usr/bin/env scsh" "${scsh}/bin/scsh"
+ substituteInPlace $out/bin/pell --replace "(play " "(${sox}/bin/play "
+ substituteInPlace $out/bin/pell --replace "(notify-send " "(${libnotify}/bin/notify-send "
+ substituteInPlace $out/bin/pell --replace "/usr/share/pell/online.mp3" "$out/share/online.mp3"
+ substituteInPlace $out/bin/pell --replace "/usr/share/pell/offline.mp3" "$out/share/offline.mp3"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ebzzry/pell";
+ description = "A simple host availability monitor";
+ license = licenses.mit;
+ maintainers = [ maintainers.ebzzry ];
+ platforms = platforms.unix;
+ };
+
+ dontBuild = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/perkeep/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/perkeep/default.nix
new file mode 100644
index 000000000000..5a1e5ba65ded
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/perkeep/default.nix
@@ -0,0 +1,51 @@
+{ buildGoPackage, fetchurl, fetchFromGitHub, lib }:
+
+let
+ gouiJS = fetchurl {
+ url = "https://storage.googleapis.com/perkeep-release/gopherjs/goui.js";
+ sha256 = "0xbkdpd900gnmzj8p0x38dn4sv170pdvgzcvzsq70s80p6ykkh6g";
+ };
+
+ publisherJS = fetchurl {
+ url = "https://storage.googleapis.com/perkeep-release/gopherjs/publisher.js";
+ sha256 = "09hd7p0xscqnh612jbrjvh3njmlm4292zd5sbqx2lg0aw688q8p2";
+ };
+
+in buildGoPackage rec {
+ name = "perkeep-${version}";
+ version = "unstable-2020-03-23";
+
+ src = fetchFromGitHub {
+ owner = "perkeep";
+ repo = "perkeep";
+ rev = "c2e31370ddefd86b6112a5d891100ea3382a4254";
+ sha256 = "0jf02k20ms7h60wglcq6dj3vqi9rlfww7db5iplgwznbij70c1i4";
+ };
+
+ goPackagePath = "perkeep.org";
+
+ buildPhase = ''
+ cd "$NIX_BUILD_TOP/go/src/$goPackagePath"
+
+ # Skip network fetches
+ sed -i '/fetchAllJS/a if true { return nil }' make.go
+ cp ${publisherJS} app/publisher/publisher.js
+ cp ${gouiJS} server/perkeepd/ui/goui.js
+
+ go run make.go
+ '';
+
+ # devcam is only useful when developing perkeep, we should not install it as
+ # part of this derivation.
+ postInstall = ''
+ rm -f $out/bin/devcam
+ '';
+
+ meta = with lib; {
+ description = "A way of storing, syncing, sharing, modelling and backing up content (née Camlistore)";
+ homepage = "https://perkeep.org";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ cstrahan kalbasit ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pgadmin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pgadmin/default.nix
new file mode 100644
index 000000000000..b0aabead2457
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pgadmin/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, fetchpatch, postgresql, wxGTK, libxml2, libxslt, openssl, zlib, makeDesktopItem }:
+
+stdenv.mkDerivation rec {
+ pname = "pgadmin3";
+ version = "1.22.2";
+
+ src = fetchurl {
+ url = "https://ftp.postgresql.org/pub/pgadmin/pgadmin3/v${version}/src/pgadmin3-${version}.tar.gz";
+ sha256 = "1b24b356h8z188nci30xrb57l7kxjqjnh6dq9ws638phsgiv0s4v";
+ };
+
+ enableParallelBuilding = true;
+
+ buildInputs = [ postgresql wxGTK openssl zlib ];
+
+ patches = [
+ (fetchpatch {
+ sha256 = "09hp7s3zjz80rpx2j3xyznwswwfxzi70z7c05dzrdk74mqjjpkfk";
+ name = "843344.patch";
+ url = "https://sources.debian.net/data/main/p/pgadmin3/1.22.2-1/debian/patches/843344";
+ })
+ ];
+
+ preConfigure = ''
+ substituteInPlace pgadmin/ver_svn.sh --replace "bin/bash" "$shell"
+ '';
+
+ configureFlags = [
+ "--with-pgsql=${postgresql}"
+ "--with-libxml2=${libxml2.dev}"
+ "--with-libxslt=${libxslt.dev}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "PostgreSQL administration GUI tool";
+ homepage = "https://www.pgadmin.org";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ domenkozar wmertens ];
+ platforms = platforms.unix;
+ };
+
+ postFixup = let
+ desktopItem = makeDesktopItem {
+ name = "pgAdmin";
+ desktopName = "pgAdmin III";
+ genericName = "SQL Administration";
+ exec = "pgadmin3";
+ icon = "pgAdmin3";
+ type = "Application";
+ categories = "Development;";
+ mimeType = "text/html";
+ };
+ in ''
+ mkdir -p $out/share/pixmaps;
+ cp pgadmin/include/images/pgAdmin3.png $out/share/pixmaps/;
+ cp -rv ${desktopItem}/share/applications $out/share/
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pgmanage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pgmanage/default.nix
new file mode 100644
index 000000000000..68f29cb9b9ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pgmanage/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, postgresql, openssl } :
+
+stdenv.mkDerivation rec {
+ pname = "pgmanage";
+ version = "11.0.1";
+
+ src = fetchFromGitHub {
+ owner = "pgManage";
+ repo = "pgManage";
+ rev = "v${version}";
+ sha256 = "1a1dbc32b3y0ph8ydf800h6pz7dg6g1gxgid4gffk7k58xj0c5yf";
+ };
+
+ patchPhase = ''
+ patchShebangs src/configure
+ '';
+
+ configurePhase = ''
+ ./configure --prefix $out
+ '';
+
+ buildInputs = [ postgresql openssl ];
+
+ meta = with stdenv.lib; {
+ description = "A fast replacement for PGAdmin";
+ longDescription = ''
+ At the heart of pgManage is a modern, fast, event-based C-binary, built in
+ the style of NGINX and Node.js. This heart makes pgManage as fast as any
+ PostgreSQL interface can hope to be. (Note: pgManage replaces Postage,
+ which is no longer maintained.)
+ '';
+ homepage = "https://github.com/pgManage/pgManage";
+ license = licenses.postgresql;
+ maintainers = [ maintainers.basvandijk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix
new file mode 100644
index 000000000000..7532c6e9bc91
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, qmake, mkDerivation,
+ qtsvg,
+ libxml2, postgresql }:
+
+mkDerivation rec {
+ pname = "pgmodeler";
+ version = "0.9.2";
+
+ src = fetchFromGitHub {
+ owner = "pgmodeler";
+ repo = "pgmodeler";
+ rev = "v${version}";
+ sha256 = "1wkvg20krfwkziz7skgmwlinx07jm5nl3455payg5brv69zf60kl";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ qmakeFlags = [ "pgmodeler.pro" "CONFIG+=release" ];
+
+ # todo: libpq would suffice here. Unfortunately this won't work, if one uses only postgresql.lib here.
+ buildInputs = [ postgresql qtsvg ];
+
+ meta = with stdenv.lib; {
+ description = "A database modeling tool for PostgreSQL";
+ longDescription = ''pgModeler (PostgreSQL Database Modeler) is an open source database modeling tool designed for PostgreSQL.'';
+ homepage = "https://pgmodeler.io/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.esclear ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/phwmon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/phwmon/default.nix
new file mode 100644
index 000000000000..017383a79a2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/phwmon/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitLab, pythonPackages }:
+
+stdenv.mkDerivation {
+ pname = "phwmon";
+ version = "2017-04-10";
+
+ src = fetchFromGitLab {
+ owner = "o9000";
+ repo = "phwmon";
+ rev = "b162e53dccc4adf8f11f49408d05fd85d9c6c909";
+ sha256 = "1hqmsq66y8bqkpvszw84jyk8haxq3cjnz105hlkmp7786vfmkisq";
+ };
+
+ nativeBuildInputs = [ pythonPackages.wrapPython ];
+
+ buildInputs = [ pythonPackages.pygtk pythonPackages.psutil ];
+
+ pythonPath = [ pythonPackages.pygtk pythonPackages.psutil ];
+
+ patchPhase = ''
+ substituteInPlace install.sh --replace "/usr/local" "$out"
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/applications
+ ./install.sh
+ '';
+
+ postFixup = ''
+ wrapPythonPrograms
+ '';
+
+ meta = {
+ homepage = "https://gitlab.com/o9000/phwmon";
+ description = "Hardware monitor (CPU, memory, network and disk I/O) for the system tray";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pinfo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pinfo/default.nix
new file mode 100644
index 000000000000..55093b21f950
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pinfo/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, autoreconfHook, gettext, texinfo, ncurses, readline }:
+
+stdenv.mkDerivation {
+ name = "pinfo-0.6.10";
+
+ src = fetchurl {
+ # homepage needed you to login to download the tarball
+ url = "https://src.fedoraproject.org/repo/pkgs/pinfo/pinfo-0.6.10.tar.bz2"
+ + "/fe3d3da50371b1773dfe29bf870dbc5b/pinfo-0.6.10.tar.bz2";
+ sha256 = "0p8wyrpz9npjcbx6c973jspm4c3xz4zxx939nngbq49xqah8088j";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ gettext texinfo ncurses readline ];
+
+ configureFlags = [ "--with-curses=${ncurses.dev}" "--with-readline=${readline.dev}" ];
+
+ meta = with stdenv.lib; {
+ description = "A viewer for info files";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pipr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pipr/default.nix
new file mode 100644
index 000000000000..b3bde2a1c241
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pipr/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, bubblewrap
+, makeWrapper
+, lib
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "pipr";
+ version = "0.0.15";
+
+ src = fetchFromGitHub {
+ owner = "ElKowar";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1pbj198nqi27kavz9bm31a3h7h70by6l00046x09yf9n8qjpp01w";
+ };
+
+ cargoSha256 = "1dcrafpf252dpjvimaibb93082nymb26wwbvr34zd6j7z285vach";
+
+ nativeBuildInputs = [ makeWrapper ];
+ postFixup = ''
+ wrapProgram "$out/bin/pipr" --prefix PATH : ${lib.makeBinPath [ bubblewrap ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A commandline-tool to interactively write shell pipelines";
+ homepage = "https://github.com/ElKowar/pipr";
+ license = licenses.mit;
+ maintainers = with maintainers; [ elkowar ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/plank/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/plank/default.nix
new file mode 100644
index 000000000000..0ae9e7379e7c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/plank/default.nix
@@ -0,0 +1,89 @@
+{ stdenv
+, fetchurl
+, vala
+, atk
+, cairo
+, dconf
+, glib
+, gnome3
+, gtk3
+, libwnck3
+, libX11
+, libXfixes
+, libXi
+, pango
+, gettext
+, pkgconfig
+, libxml2
+, bamf
+, gdk-pixbuf
+, libdbusmenu-gtk3
+, file
+, gnome-menus
+, libgee
+, wrapGAppsHook
+, autoreconfHook
+, pantheon
+}:
+
+stdenv.mkDerivation rec {
+ pname = "plank";
+ version = "0.11.89";
+
+ src = fetchurl {
+ url = "https://launchpad.net/${pname}/1.0/${version}/+download/${pname}-${version}.tar.xz";
+ sha256 = "17cxlmy7n13jp1v8i4abxyx9hylzb39andhz3mk41ggzmrpa8qm6";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ gettext
+ gnome3.gnome-common
+ libxml2 # xmllint
+ pkgconfig
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ atk
+ bamf
+ cairo
+ gdk-pixbuf
+ glib
+ gnome-menus
+ dconf
+ gtk3
+ libX11
+ libXfixes
+ libXi
+ libdbusmenu-gtk3
+ libgee
+ libwnck3
+ pango
+ ];
+
+ # fix paths
+ makeFlags = [
+ "INTROSPECTION_GIRDIR=${placeholder "out"}/share/gir-1.0/"
+ "INTROSPECTION_TYPELIBDIR=${placeholder "out"}/lib/girepository-1.0"
+ ];
+
+ # Make plank's application launcher hidden in Pantheon
+ patches = [
+ ./hide-in-pantheon.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace ./configure \
+ --replace "/usr/bin/file" "${file}/bin/file"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Elegant, simple, clean dock";
+ homepage = "https://launchpad.net/plank";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ davidak ] ++ pantheon.maintainers;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch
new file mode 100644
index 000000000000..ab8a4c723897
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch
@@ -0,0 +1,9 @@
+diff --git a/data/plank.desktop.in b/data/plank.desktop.in
+index 330c3a4..e1bdf5f 100644
+--- a/data/plank.desktop.in
++++ b/data/plank.desktop.in
+@@ -8,3 +8,4 @@ Exec=plank
+ Icon=plank
+ Terminal=false
+ NoDisplay=false
++NotShowIn=Pantheon;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch
new file mode 100644
index 000000000000..b33a3e174bc4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch
@@ -0,0 +1,20 @@
+diff -Naur org.kde.plasma.volumewin7mixer/CMakeLists.txt org.kde.plasma.volumewin7mixer.patch/CMakeLists.txt
+--- org.kde.plasma.volumewin7mixer/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
++++ org.kde.plasma.volumewin7mixer.patch/CMakeLists.txt 2016-04-19 11:23:35.137866949 +0200
+@@ -0,0 +1,15 @@
++# Set minimum CMake version (required for CMake 3.0 or later)
++cmake_minimum_required(VERSION 2.8.12)
++
++# Use Extra CMake Modules (ECM) for common functionality.
++# See http://api.kde.org/ecm/manual/ecm.7.html
++# and http://api.kde.org/ecm/manual/ecm-kde-modules.7.html
++find_package(ECM REQUIRED NO_MODULE)
++# Needed by find_package(KF5Plasma) below.
++set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_MODULE_PATH})
++
++# Locate plasma_install_package macro.
++find_package(KF5Plasma REQUIRED)
++
++# Add installatation target ("make install").
++plasma_install_package(package org.kde.plasma.volumewin7mixer)
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
new file mode 100644
index 000000000000..820048bdd6b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, cmake, extra-cmake-modules, plasma-framework, kwindowsystem, plasma-pa, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "plasma-applet-volumewin7mixer";
+ version = "25";
+
+ src = fetchFromGitHub {
+ owner = "Zren";
+ repo = "plasma-applet-volumewin7mixer";
+ rev = "v${version}";
+ sha256 = "1nvz0a06qb3pfk8dfh5n5vgf3psd6k0j3vms9pskr511qsxw0dfi";
+ };
+
+ patches = [ ./cmake.patch ];
+ postPatch = '' rm build '';
+ nativeBuildInputs = [ cmake extra-cmake-modules ];
+ buildInputs = [ plasma-framework kwindowsystem plasma-pa ];
+
+ meta = with stdenv.lib; {
+ description = "A fork of the default volume plasmoid with a Windows 7 theme (vertical sliders)";
+ homepage = "https://github.com/Zren/plasma-applet-volumewin7mixer";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mdevlamynck ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/plater/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/plater/default.nix
new file mode 100644
index 000000000000..9d29390870e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/plater/default.nix
@@ -0,0 +1,30 @@
+{ mkDerivation
+, cmake
+, fetchFromGitHub
+, lib
+, libGLU
+, qtbase
+}:
+
+mkDerivation rec {
+ pname = "plater";
+ version = "2020-07-30";
+
+ src = fetchFromGitHub {
+ owner = "Rhoban";
+ repo = "Plater";
+ rev = "f8de6d038f95a9edebfcfe142c8e9783697d5b47";
+ sha256 = "0r20mbzd16zv1aiadjqdy7z6sp09rr6lgfxhvir4ll3cpakkynr4";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libGLU qtbase ];
+
+ meta = with lib; {
+ description = "3D-printer parts placer and plate generator";
+ homepage = "https://github.com/Rhoban/Plater";
+ maintainers = with maintainers; [ lovesegfault ];
+ platforms = platforms.linux;
+ license = licenses.cc-by-nc-30;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/playonlinux/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/playonlinux/default.nix
new file mode 100644
index 000000000000..3acb77545055
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/playonlinux/default.nix
@@ -0,0 +1,113 @@
+{ stdenv
+, makeWrapper
+, fetchurl
+, cabextract
+, gettext
+, glxinfo
+, gnupg
+, icoutils
+, imagemagick
+, netcat-gnu
+, p7zip
+, python2
+, unzip
+, wget
+, wine
+, xdg-user-dirs
+, xterm
+, pkgs
+, pkgsi686Linux
+, which
+, curl
+, jq
+, xorg
+, libGL
+}:
+
+let
+ version = "4.4";
+
+ binpath = stdenv.lib.makeBinPath [
+ cabextract
+ python
+ gettext
+ glxinfo
+ gnupg
+ icoutils
+ imagemagick
+ netcat-gnu
+ p7zip
+ unzip
+ wget
+ wine
+ xdg-user-dirs
+ xterm
+ which
+ curl
+ jq
+ ];
+
+ ld32 =
+ if stdenv.hostPlatform.system == "x86_64-linux" then "${stdenv.cc}/nix-support/dynamic-linker-m32"
+ else if stdenv.hostPlatform.system == "i686-linux" then "${stdenv.cc}/nix-support/dynamic-linker"
+ else throw "Unsupported platform for PlayOnLinux: ${stdenv.hostPlatform.system}";
+ ld64 = "${stdenv.cc}/nix-support/dynamic-linker";
+ libs = pkgs: stdenv.lib.makeLibraryPath [ xorg.libX11 libGL ];
+
+ python = python2.withPackages(ps: with ps; [
+ wxPython
+ setuptools
+ ]);
+
+in stdenv.mkDerivation {
+ pname = "playonlinux";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz";
+ sha256 = "0n40927c8cnjackfns68zwl7h4d7dvhf7cyqdkazzwwx4k2xxvma";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [
+ xorg.libX11
+ libGL
+ python
+ ];
+
+ postPatch = ''
+ patchShebangs python tests/python
+ sed -i "s/ %F//g" etc/PlayOnLinux.desktop
+ '';
+
+ installPhase = ''
+ install -d $out/share/playonlinux
+ cp -r . $out/share/playonlinux/
+
+ install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop
+
+ makeWrapper $out/share/playonlinux/playonlinux $out/bin/playonlinux \
+ --prefix PATH : ${binpath}
+
+ bunzip2 $out/share/playonlinux/bin/check_dd_x86.bz2
+ patchelf --set-interpreter $(cat ${ld32}) --set-rpath ${libs pkgsi686Linux} $out/share/playonlinux/bin/check_dd_x86
+ ${if stdenv.hostPlatform.system == "x86_64-linux" then ''
+ bunzip2 $out/share/playonlinux/bin/check_dd_amd64.bz2
+ patchelf --set-interpreter $(cat ${ld64}) --set-rpath ${libs pkgs} $out/share/playonlinux/bin/check_dd_amd64
+ '' else ''
+ rm $out/share/playonlinux/bin/check_dd_amd64.bz2
+ ''}
+ for f in $out/share/playonlinux/bin/*; do
+ bzip2 $f
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GUI for managing Windows programs under linux";
+ homepage = "https://www.playonlinux.com/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.a1russell ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/plover/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/plover/default.nix
new file mode 100644
index 000000000000..8ecc4f974b45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/plover/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, python27Packages, python36Packages, wmctrl,
+ qtbase, mkDerivationWith }:
+
+{
+ stable = with python27Packages; buildPythonPackage rec {
+ pname = "plover";
+ version = "3.1.1";
+
+ meta = with stdenv.lib; {
+ description = "OpenSteno Plover stenography software";
+ maintainers = with maintainers; [ twey kovirobi ];
+ license = licenses.gpl2;
+ };
+
+ src = fetchurl {
+ url = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz";
+ sha256 = "1hdg5491phx6svrxxsxp8v6n4b25y7y4wxw7x3bxlbyhaskgj53r";
+ };
+
+ nativeBuildInputs = [ setuptools_scm ];
+ buildInputs = [ pytest mock ];
+ propagatedBuildInputs = [
+ six setuptools pyserial appdirs hidapi wxPython xlib wmctrl dbus-python
+ ];
+ };
+
+ dev = with python36Packages; mkDerivationWith buildPythonPackage rec {
+ pname = "plover";
+ version = "4.0.0.dev8";
+
+ meta = with stdenv.lib; {
+ description = "OpenSteno Plover stenography software";
+ maintainers = with maintainers; [ twey kovirobi ];
+ license = licenses.gpl2;
+ };
+
+ src = fetchurl {
+ url = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz";
+ sha256 = "1wxkmik1zyw5gqig5r0cas5v6f5408fbnximzw610rdisqy09rxp";
+ };
+
+ # I'm not sure why we don't find PyQt5 here but there's a similar
+ # sed on many of the platforms Plover builds for
+ postPatch = "sed -i /PyQt5/d setup.cfg";
+
+ checkInputs = [ pytest mock ];
+ propagatedBuildInputs = [ Babel pyqt5 xlib pyserial appdirs wcwidth setuptools ];
+
+ dontWrapQtApps = true;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
new file mode 100644
index 000000000000..cd309797aa32
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, lib, makeWrapper, fetchurl
+, dpkg, wrapGAppsHook, autoPatchelfHook
+, gtk3, cairo, pango, atk, gdk-pixbuf, glib
+, at-spi2-atk, dbus, libX11, libxcb, libXi
+, libXcursor, libXdamage, libXrandr, libXcomposite
+, libXext, libXfixes, libXrender, libXtst, libXScrnSaver
+, nss, nspr, alsaLib, cups, fontconfig, expat
+, libudev0-shim, glibc, curl, openssl, libnghttp2, gsettings-desktop-schemas }:
+
+
+stdenv.mkDerivation rec {
+ pname = "polar-bookshelf";
+ version = "2.0.42";
+
+ # fetching a .deb because there's no easy way to package this Electron app
+ src = fetchurl {
+ url = "https://github.com/burtonator/polar-bookshelf/releases/download/v${version}/polar-desktop-app-${version}-amd64.deb";
+ hash = "sha256-JyO71wyE6b0iHAYs/6/WbG+OdUVUUPpJla+ZUzg0Gng=";
+ };
+
+ buildInputs = [
+ gsettings-desktop-schemas
+ glib
+ gtk3
+ cairo
+ pango
+ atk
+ gdk-pixbuf
+ at-spi2-atk
+ dbus
+ libX11
+ libxcb
+ libXi
+ libXcursor
+ libXdamage
+ libXrandr
+ libXcomposite
+ libXext
+ libXfixes
+ libXrender
+ libXtst
+ libXScrnSaver
+ nss
+ nspr
+ alsaLib
+ cups
+ fontconfig
+ expat
+ ];
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ autoPatchelfHook
+ makeWrapper
+ dpkg
+ ];
+
+ runtimeLibs = lib.makeLibraryPath [ libudev0-shim glibc curl openssl libnghttp2 ];
+
+ unpackPhase = "dpkg-deb -x $src .";
+
+ installPhase = ''
+ mkdir -p $out/share/polar-bookshelf
+ mkdir -p $out/bin
+ mkdir -p $out/lib
+
+ mv opt/Polar/* $out/share/polar-bookshelf
+ mv $out/share/polar-bookshelf/*.so $out/lib
+
+ mv usr/share/* $out/share/
+
+ ln -s $out/share/polar-bookshelf/polar-desktop-app $out/bin/polar-desktop-app
+
+ substituteInPlace $out/share/applications/polar-desktop-app.desktop \
+ --replace "/opt/Polar/polar-desktop-app" "$out/bin/polar-desktop-app"
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${runtimeLibs}" )
+ '';
+
+ meta = {
+ homepage = "https://getpolarized.io/";
+ description = "Personal knowledge repository for PDF and web content supporting incremental reading and document annotation";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.noneucat ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/polybar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/polybar/default.nix
new file mode 100644
index 000000000000..df08de7a4a22
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/polybar/default.nix
@@ -0,0 +1,84 @@
+{ cairo, cmake, fetchFromGitHub, libXdmcp, libpthreadstubs, libxcb, pcre, pkgconfig
+, python3, stdenv, xcbproto, xcbutil, xcbutilcursor, xcbutilimage
+, xcbutilrenderutil, xcbutilwm, xcbutilxrm, makeWrapper
+, removeReferencesTo
+
+# optional packages-- override the variables ending in 'Support' to enable or
+# disable modules
+, alsaSupport ? true, alsaLib ? null
+, githubSupport ? false, curl ? null
+, mpdSupport ? false, mpd_clientlib ? null
+, pulseSupport ? false, libpulseaudio ? null
+, iwSupport ? false, wirelesstools ? null
+, nlSupport ? true, libnl ? null
+, i3Support ? false, i3GapsSupport ? false, i3 ? null, i3-gaps ? null, jsoncpp ? null
+}:
+
+assert alsaSupport -> alsaLib != null;
+assert githubSupport -> curl != null;
+assert mpdSupport -> mpd_clientlib != null;
+assert pulseSupport -> libpulseaudio != null;
+
+assert iwSupport -> ! nlSupport && wirelesstools != null;
+assert nlSupport -> ! iwSupport && libnl != null;
+
+assert i3Support -> ! i3GapsSupport && jsoncpp != null && i3 != null;
+assert i3GapsSupport -> ! i3Support && jsoncpp != null && i3-gaps != null;
+
+stdenv.mkDerivation rec {
+ pname = "polybar";
+ version = "3.5.0";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "1kga98cgllsjcq692l27y01sgl8ii4wxp70kmdcwxkrliylg3dji";
+ fetchSubmodules = true;
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://polybar.github.io/";
+ description = "A fast and easy-to-use tool for creating status bars";
+ longDescription = ''
+ Polybar aims to help users build beautiful and highly customizable
+ status bars for their desktop environment, without the need of
+ having a black belt in shell scripting.
+ '';
+ license = licenses.mit;
+ maintainers = with maintainers; [ afldcr Br1ght0ne ];
+ platforms = platforms.linux;
+ };
+
+ buildInputs = [
+ cairo libXdmcp libpthreadstubs libxcb pcre python3 xcbproto xcbutil
+ xcbutilcursor xcbutilimage xcbutilrenderutil xcbutilwm xcbutilxrm
+
+ (if alsaSupport then alsaLib else null)
+ (if githubSupport then curl else null)
+ (if mpdSupport then mpd_clientlib else null)
+ (if pulseSupport then libpulseaudio else null)
+
+ (if iwSupport then wirelesstools else null)
+ (if nlSupport then libnl else null)
+
+ (if i3Support || i3GapsSupport then jsoncpp else null)
+ (if i3Support then i3 else null)
+ (if i3GapsSupport then i3-gaps else null)
+
+ (if i3Support || i3GapsSupport then makeWrapper else null)
+ ];
+
+ postInstall = if (i3Support || i3GapsSupport) then ''
+ wrapProgram $out/bin/polybar \
+ --prefix PATH : "${if i3Support then i3 else i3-gaps}/bin"
+ '' else "";
+
+ nativeBuildInputs = [
+ cmake pkgconfig removeReferencesTo
+ ];
+
+ postFixup = ''
+ remove-references-to -t ${stdenv.cc} $out/bin/polybar
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/posterazor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/posterazor/default.nix
new file mode 100644
index 000000000000..674570ec3dd7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/posterazor/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, cmake, unzip, pkgconfig, libXpm, fltk13, freeimage }:
+
+stdenv.mkDerivation {
+ name = "posterazor-1.5.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/posterazor/1.5.1/PosteRazor-1.5.1-Source.zip";
+ sha256 = "1dqpdk8zl0smdg4fganp3hxb943q40619qmxjlga9jhjc01s7fq5";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ cmake unzip libXpm fltk13 freeimage ];
+
+ unpackPhase = ''
+ unzip $src -d posterazor
+ cd posterazor/src
+ '';
+
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667328
+ patchPhase = ''
+ sed "s/\(#define CASESENSITIVESTRCMP strcasecmp\)/#include <unistd.h>\n\1/" -i FlPosteRazorDialog.cpp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp PosteRazor $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://posterazor.sourceforge.net/";
+ description = "Cuts a raster image into pieces which can afterwards be printed out and assembled to a poster";
+ maintainers = [ maintainers.madjar ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/data.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/data.nix
new file mode 100644
index 000000000000..7f61f60bf6ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/data.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, prevo-tools }:
+
+stdenv.mkDerivation rec {
+ pname = "prevo-data";
+ version = "2020-03-08";
+
+ src = fetchFromGitHub {
+ owner = "bpeel";
+ repo = "revo";
+ rev = "1e8d7197c0bc831e2127909e77e64dfc26906bdd";
+ sha256 = "1ldhzpi3d5cbssv8r7acsn7qwxcl8qpqi8ywpsp7cbgx3w7hhkyz";
+ };
+
+ nativeBuildInputs = [ prevo-tools ];
+
+ dontUnpack = true;
+
+ buildPhase = ''
+ prevodb -s -i $src -o prevo.db
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/prevo
+ cp prevo.db $out/share/prevo/
+ '';
+
+ meta = with stdenv.lib; {
+ description =
+ "data for offline version of the Esperanto dictionary Reta Vortaro";
+ longDescription = ''
+ PReVo is the "portable" ReVo, i.e., the offline version
+ of the Esperanto dictionary Reta Vortaro.
+
+ This package provides the ReVo database for the prevo command line application.
+ '';
+ homepage = "https://github.com/bpeel/revo";
+ license = licenses.gpl2Only;
+ maintainers = [ maintainers.das-g ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/default.nix
new file mode 100644
index 000000000000..1f299b15d409
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, symlinkJoin, prevo-tools, prevo-data, makeWrapper }:
+
+symlinkJoin rec {
+ name = "prevo-${version}";
+ inherit (prevo-tools) version;
+
+ paths = [ prevo-tools ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/prevo \
+ --prefix XDG_DATA_DIRS : "${prevo-data}/share"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "offline version of the Esperanto dictionary Reta Vortaro";
+ longDescription = ''
+ PReVo is the "portable" ReVo, i.e., the offline version
+ of the Esperanto dictionary Reta Vortaro.
+ '';
+ homepage = "https://github.com/bpeel/prevodb";
+ license = licenses.gpl2Only;
+ maintainers = [ maintainers.das-g ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/tools.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/tools.nix
new file mode 100644
index 000000000000..39c54b73b2fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/prevo/tools.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkg-config, glib, expat
+, installShellFiles }:
+
+stdenv.mkDerivation rec {
+ pname = "prevo-tools";
+ version = "0.2";
+
+ src = fetchFromGitHub {
+ owner = "bpeel";
+ repo = "prevodb";
+ rev = version;
+ sha256 = "1fyrc4g9qdq04nxs4g8x0krxfani5xady6v9m0qfqpbh4xk2ry2d";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkg-config installShellFiles ];
+ buildInputs = [ glib expat ];
+
+ postInstall = ''
+ installShellCompletion --bash src/prevo-completion
+ '';
+
+ meta = with stdenv.lib; {
+ description =
+ "CLI tools for the offline version of the Esperanto dictionary Reta Vortaro";
+ longDescription = ''
+ PReVo is the "portable" ReVo, i.e., the offline version
+ of the Esperanto dictionary Reta Vortaro.
+
+ This package provides the command line application prevo to query a local
+ ReVo database, as well as the command line tool revodb to create such a
+ database for this application or for the Android app of the same name.
+ '';
+ homepage = "https://github.com/bpeel/prevodb";
+ license = licenses.gpl2Only;
+ maintainers = [ maintainers.das-g ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/printrun/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/printrun/default.nix
new file mode 100644
index 000000000000..cadd98c74260
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/printrun/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, python27Packages, fetchFromGitHub }:
+
+python27Packages.buildPythonApplication rec {
+ name = "printrun-20150310";
+
+ src = fetchFromGitHub {
+ owner = "kliment";
+ repo = "Printrun";
+ rev = name;
+ sha256 = "09ijv8h4k5h15swg64s7igamvynawz7gdi7hiymzrzywdvr0zwsa";
+ };
+
+ propagatedBuildInputs = with python27Packages; [
+ wxPython30 pyserial dbus-python psutil numpy pyopengl pyglet cython
+ ];
+
+ doCheck = false;
+
+ setupPyBuildFlags = ["-i"];
+
+ postPatch = ''
+ sed -i -r "s|/usr(/local)?/share/|$out/share/|g" printrun/utils.py
+ '';
+
+ postInstall = ''
+ for f in $out/share/applications/*.desktop; do
+ sed -i -e "s|/usr/|$out/|g" "$f"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Pronterface, Pronsole, and Printcore - Pure Python 3d printing host software";
+ homepage = "https://github.com/kliment/Printrun";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch
new file mode 100644
index 000000000000..e3aa5600e40e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch
@@ -0,0 +1,18 @@
+From http://seclists.org/oss-sec/2014/q3/495 (with whitespace corrected).
+
+--- a/src/formisc.c 2013-08-04 00:13:33.000000000 -0700
++++ b/src/formisc.c 2014-09-03 11:42:25.986002396 -0700
+@@ -84,12 +84,11 @@
+ case '"':*target++=delim='"';start++;
+ }
+ ;{ int i;
+- do
++ while(*start)
+ if((i= *target++= *start++)==delim) /* corresponding delimiter? */
+ break;
+ else if(i=='\\'&&*start) /* skip quoted character */
+ *target++= *start++;
+- while(*start); /* anything? */
+ }
+ hitspc=2;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/procmail/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/procmail/default.nix
new file mode 100644
index 000000000000..1e6c558defbe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/procmail/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ name = "procmail-3.22";
+
+ patches = [
+ ./CVE-2014-3618.patch
+ (fetchurl {
+ url = "https://sources.debian.org/data/main/p/procmail/3.22-26/debian/patches/30";
+ sha256 = "11zmz1bj0v9pay3ldmyyg7473b80h89gycrhndsgg9q50yhcqaaq";
+ name = "CVE-2017-16844";
+ })
+ ];
+
+ # getline is defined differently in glibc now. So rename it.
+ # Without the .PHONY target "make install" won't install anything on Darwin.
+ postPatch = ''
+ sed -e "s%^RM.*$%#%" -i Makefile
+ sed -e "s%^BASENAME.*%\BASENAME=$out%" -i Makefile
+ sed -e "s%^LIBS=.*%LIBS=-lm%" -i Makefile
+ sed -e "s%getline%thisgetline%g" -i src/*.c src/*.h
+ sed -e "3i\
+.PHONY: install
+" -i Makefile
+ '';
+
+ src = fetchurl {
+ url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-3.22.tar.gz";
+ sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Mail processing and filtering utility";
+ homepage = "http://www.procmail.org/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/projectlibre/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
new file mode 100644
index 000000000000..2a7a82bc74a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchgit, ant, jdk, makeWrapper, jre, coreutils, which }:
+
+stdenv.mkDerivation rec {
+ pname = "projectlibre";
+ version = "1.7.0";
+
+ src = fetchgit {
+ url = "https://git.code.sf.net/p/projectlibre/code";
+ rev = "0c939507cc63e9eaeb855437189cdec79e9386c2"; # version 1.7.0 was not tagged
+ sha256 = "0vy5vgbp45ai957gaby2dj1hvmbxfdlfnwcanwqm9f8q16qipdbq";
+ };
+
+ buildInputs = [ ant jdk makeWrapper ];
+ buildPhase = ''
+ export ANT_OPTS=-Dbuild.sysclasspath=ignore
+ ${ant}/bin/ant -f openproj_build/build.xml
+ '';
+
+ resourcesPath = "openproj_build/resources";
+ desktopItem = "${resourcesPath}/projectlibre.desktop";
+
+ installPhase = ''
+ mkdir -p $out/share/{applications,projectlibre/samples,pixmaps,doc/projectlibre} $out/bin
+
+ substitute $resourcesPath/projectlibre $out/bin/projectlibre \
+ --replace "\"/usr/share/projectlibre\"" "\"$out/share/projectlibre\""
+ chmod +x $out/bin/projectlibre
+ wrapProgram $out/bin/projectlibre \
+ --prefix PATH : "${jre}/bin:${coreutils}/bin:${which}/bin"
+
+ cp -R openproj_build/dist/* $out/share/projectlibre
+ cp -R openproj_build/license $out/share/doc/projectlibre
+ cp $desktopItem $out/share/applications
+ cp $resourcesPath/projectlibre.png $out/share/pixmaps
+ cp -R $resourcesPath/samples/* $out/share/projectlibre/samples
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.projectlibre.com/";
+ description = "Project-Management Software similar to MS-Project";
+ maintainers = [ maintainers.Mogria ];
+ license = licenses.cpal10;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix
new file mode 100644
index 000000000000..79ad84e99be4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix
@@ -0,0 +1,98 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
+, boost, cereal, curl, eigen, expat, glew, libpng, tbb, wxGTK31
+, gtest, nlopt, xorg, makeDesktopItem
+, cgal_5, gmp, ilmbase, mpfr, qhull, openvdb, systemd
+}:
+stdenv.mkDerivation rec {
+ pname = "prusa-slicer";
+ version = "2.2.0";
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ ];
+
+ buildInputs = [
+ boost
+ cereal
+ cgal_5
+ curl
+ eigen
+ expat
+ glew
+ gmp
+ ilmbase
+ libpng
+ mpfr
+ nlopt
+ openvdb
+ systemd
+ tbb
+ wxGTK31
+ xorg.libX11
+ ] ++ checkInputs;
+
+ checkInputs = [ gtest ];
+
+ # The build system uses custom logic - defined in
+ # cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt
+ # library, which doesn't pick up the package in the nix store. We
+ # additionally need to set the path via the NLOPT environment variable.
+ NLOPT = nlopt;
+
+ # Disable compiler warnings that clutter the build log.
+ # It seems to be a known issue for Eigen:
+ # http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
+ NIX_CFLAGS_COMPILE = "-Wno-ignored-attributes";
+
+ # prusa-slicer uses dlopen on `libudev.so` at runtime
+ NIX_LDFLAGS = "-ludev";
+
+ prePatch = ''
+ # In nix ioctls.h isn't available from the standard kernel-headers package
+ # like in other distributions. The copy in glibc seems to be identical to the
+ # one in the kernel though, so we use that one instead.
+ sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' src/libslic3r/GCodeSender.cpp
+
+ # Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
+ # now seems to be integrated into the main lib.
+ sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake
+ '';
+
+ src = fetchFromGitHub {
+ owner = "prusa3d";
+ repo = "PrusaSlicer";
+ sha256 = "0954k9sm09y8qnz1jyswyysg10k54ywz8mswnwa4n2hnpq9qx73m";
+ rev = "version_${version}";
+ };
+
+ cmakeFlags = [
+ "-DSLIC3R_FHS=1"
+ ];
+
+ postInstall = ''
+ mkdir -p "$out/share/pixmaps/"
+ ln -s "$out/share/PrusaSlicer/icons/PrusaSlicer.png" "$out/share/pixmaps/PrusaSlicer.png"
+ mkdir -p "$out/share/applications"
+ cp "$desktopItem"/share/applications/* "$out/share/applications/"
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "PrusaSlicer";
+ exec = "prusa-slicer";
+ icon = "PrusaSlicer";
+ comment = "G-code generator for 3D printers";
+ desktopName = "PrusaSlicer";
+ genericName = "3D printer tool";
+ categories = "Development;";
+ };
+
+ meta = with stdenv.lib; {
+ description = "G-code generator for 3D printer";
+ homepage = "https://github.com/prusa3d/PrusaSlicer";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ moredread tweber ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
new file mode 100644
index 000000000000..2bc59e855a08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -0,0 +1,49 @@
+{
+ stdenv, lib, fetchFromGitHub, makeDesktopItem, prusa-slicer
+}:
+let
+ appname = "SuperSlicer";
+ version = "2.2.54.2";
+ pname = "super-slicer";
+ description = "PrusaSlicer fork with more features and faster development cycle";
+ override = super: {
+ inherit version pname;
+
+ src = fetchFromGitHub {
+ owner = "supermerill";
+ repo = "SuperSlicer";
+ sha256 = "sha256-ThmsxFXI1uReK+JwpHrIWzHpBdIOP77kDjv+QaK+Azk=";
+ rev = version;
+ };
+
+ # See https://github.com/supermerill/SuperSlicer/issues/432
+ cmakeFlags = super.cmakeFlags ++ [
+ "-DSLIC3R_BUILD_TESTS=0"
+ ];
+
+ postInstall = ''
+ mkdir -p "$out/share/pixmaps/"
+ ln -s "$out/share/SuperSlicer/icons/Slic3r.png" "$out/share/pixmaps/${appname}.png"
+ mkdir -p "$out/share/applications"
+ cp "$desktopItem"/share/applications/* "$out/share/applications/"
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = appname;
+ exec = "superslicer";
+ icon = appname;
+ comment = description;
+ desktopName = appname;
+ genericName = "3D printer tool";
+ categories = "Development;";
+ };
+
+ meta = with stdenv.lib; {
+ inherit description;
+ homepage = "https://github.com/supermerili/SuperSlicer";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ cab404 moredread ];
+ };
+
+ };
+in prusa-slicer.overrideAttrs override
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pstree/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pstree/default.nix
new file mode 100644
index 000000000000..7aaa8a8c38d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pstree/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "pstree";
+ version = "2.39";
+
+ src = fetchurl {
+ urls = [
+ "https://distfiles.macports.org/${pname}/${pname}-${version}.tar.gz"
+ "https://fossies.org/linux/misc/${pname}-${version}.tar.gz"
+ "ftp://ftp.thp.uni-duisburg.de/pub/source/${pname}-${version}.tar.gz"
+ ];
+ sha256 = "17s7v15c4gryjpi11y1xq75022nkg4ggzvjlq2dkmyg67ssc76vw";
+ };
+
+ sourceRoot = ".";
+ buildPhase = ''
+ runHook preBuild
+ $CC $NIX_CFLAGS -o pstree pstree.c
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm0555 ${pname} -t $out/bin
+ install -Dm0444 ${pname}.1 -t $out/share/man/man1
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Show the set of running processes as a tree";
+ homepage = "http://www.thp.uni-duisburg.de/pstree/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.c0bw3b ];
+ platforms = platforms.unix;
+ priority = 5; # Lower than psmisc also providing pstree on Linux platforms
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/.bundle/config b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/.bundle/config
new file mode 100644
index 000000000000..88cb2d529351
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/.bundle/config
@@ -0,0 +1,2 @@
+---
+BUNDLE_NO_INSTALL: true
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/Gemfile
new file mode 100644
index 000000000000..ed2136ea5b85
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem 'pt'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock
new file mode 100644
index 000000000000..dfaa018d3724
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock
@@ -0,0 +1,69 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.6.0)
+ public_suffix (>= 2.0.2, < 4.0)
+ axiom-types (0.1.1)
+ descendants_tracker (~> 0.0.4)
+ ice_nine (~> 0.11.0)
+ thread_safe (~> 0.3, >= 0.3.1)
+ coercible (1.0.0)
+ descendants_tracker (~> 0.0.1)
+ colored (1.2)
+ declarative (0.0.10)
+ declarative-option (0.1.0)
+ descendants_tracker (0.0.4)
+ thread_safe (~> 0.3, >= 0.3.1)
+ equalizer (0.0.11)
+ excon (0.64.0)
+ faraday (0.9.2)
+ multipart-post (>= 1.2, < 3)
+ faraday_middleware (0.13.1)
+ faraday (>= 0.7.4, < 1.0)
+ highline (2.0.2)
+ hirb (0.7.3)
+ hirb-unicode (0.0.5)
+ hirb (~> 0.5)
+ unicode-display_width (~> 0.1.1)
+ ice_nine (0.11.2)
+ multi_json (1.13.1)
+ multipart-post (2.0.0)
+ pt (0.10.0)
+ colored (~> 1.2)
+ highline
+ hirb (~> 0.7, >= 0.7.3)
+ hirb-unicode (~> 0.0.5, >= 0.0.5)
+ thor
+ tracker_api (~> 1.6.0)
+ public_suffix (3.0.3)
+ representable (3.0.4)
+ declarative (< 0.1.0)
+ declarative-option (< 0.2.0)
+ uber (< 0.2.0)
+ thor (0.20.3)
+ thread_safe (0.3.6)
+ tracker_api (1.6.0)
+ addressable
+ equalizer
+ excon
+ faraday (~> 0.9.0)
+ faraday_middleware
+ multi_json
+ representable
+ virtus
+ uber (0.1.0)
+ unicode-display_width (0.1.1)
+ virtus (1.0.5)
+ axiom-types (~> 0.1)
+ coercible (~> 1.0)
+ descendants_tracker (~> 0.0, >= 0.0.3)
+ equalizer (~> 0.0, >= 0.0.9)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ pt
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/default.nix
new file mode 100644
index 000000000000..ef490702a672
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "pt";
+ gemdir = ./.;
+ exes = [ "pt" ];
+
+ passthru.updateScript = bundlerUpdateScript "pt";
+
+ meta = with lib; {
+ description = "Minimalist command-line Pivotal Tracker client";
+ homepage = "http://www.github.com/raul/pt";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ebzzry manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/gemset.nix
new file mode 100644
index 000000000000..f1f69c252142
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pt/gemset.nix
@@ -0,0 +1,273 @@
+{
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ axiom-types = {
+ dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ coercible = {
+ dependencies = ["descendants_tracker"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ colored = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b0x5jmsyi0z69bm6sij1k89z7h0laag3cb4mdn7zkl9qmxb90lx";
+ type = "gem";
+ };
+ version = "1.2";
+ };
+ 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";
+ };
+ descendants_tracker = {
+ dependencies = ["thread_safe"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79";
+ type = "gem";
+ };
+ version = "0.0.4";
+ };
+ equalizer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+ type = "gem";
+ };
+ version = "0.0.11";
+ };
+ excon = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vcplvlykirg2vc56jjxavgpkllzq26xgp7ind7wc5ikaqaz64gn";
+ type = "gem";
+ };
+ version = "0.64.0";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kplqkpn2s2yl3lxdf6h7sfldqvkbkpxwwxhyk7mdhjplb5faqh6";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ faraday_middleware = {
+ dependencies = ["faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a93rs58bakqck7bcihasz66a1riy22h2zpwrpmb13gp8mw3wkmr";
+ type = "gem";
+ };
+ version = "0.13.1";
+ };
+ highline = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g0zpalfj8wvca86hcnirir5py2zyqrhkgdgv9f87fxkjaw815wr";
+ type = "gem";
+ };
+ version = "2.0.2";
+ };
+ hirb = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mzch3c2lvmf8gskgzlx6j53d10j42ir6ik2dkrl27sblhy76cji";
+ type = "gem";
+ };
+ version = "0.7.3";
+ };
+ hirb-unicode = {
+ dependencies = ["hirb" "unicode-display_width"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b7hka1p4mkjdy2wr2cxsivnsmnz31zz1bswznmmxnvf5a6c00jk";
+ type = "gem";
+ };
+ version = "0.0.5";
+ };
+ ice_nine = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+ type = "gem";
+ };
+ version = "0.11.2";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ multipart-post = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ pt = {
+ dependencies = ["colored" "highline" "hirb" "hirb-unicode" "thor" "tracker_api"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ypyya7bk0w7zd9c3224zsizhv5wbs1icjpn0023wh3ii1by16a8";
+ type = "gem";
+ };
+ version = "0.10.0";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+ type = "gem";
+ };
+ version = "3.0.3";
+ };
+ representable = {
+ dependencies = ["declarative" "declarative-option" "uber"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
+ type = "gem";
+ };
+ version = "3.0.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";
+ };
+ tracker_api = {
+ dependencies = ["addressable" "equalizer" "excon" "faraday" "faraday_middleware" "multi_json" "representable" "virtus"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pxwzbjzxign81wynl44napkvkrrhlyl7rm4ywrcdqahmzxmavsp";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ uber = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
+ type = "gem";
+ };
+ version = "0.1.0";
+ };
+ unicode-display_width = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06dpm3yqc974qfy6nyx7b0w0f6b8k08jadd5l9xnmla3fji6c405";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ virtus = {
+ dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/default.nix
new file mode 100644
index 000000000000..a5fd55c967bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, makeWrapper, gtk3, json_c, taskwarrior }:
+
+stdenv.mkDerivation rec {
+ name = "ptask-1.0.0";
+
+ src = fetchurl {
+ url = "https://wpitchoune.net/ptask/files/${name}.tar.gz";
+ sha256 = "13nirr7b29bv3w2zc8zxphhmc9ayhs61i11jl4819nabk7vy1kdq";
+ };
+
+ buildInputs = [ gtk3 json_c ];
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+ patches = [ ./tw-version.patch ./json_c_is_error.patch ];
+
+ preFixup = ''
+ wrapProgram "$out/bin/ptask" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+ --prefix PATH : "${taskwarrior}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://wpitchoune.net/ptask/";
+ description = "GTK-based GUI for taskwarrior";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.spacefrogg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch
new file mode 100644
index 000000000000..435c8b26e6f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch
@@ -0,0 +1,13 @@
+diff --git a/src/tw.c b/src/tw.c
+index 602f7b3..ca601cd 100644
+--- a/src/tw.c
++++ b/src/tw.c
+@@ -163,7 +163,7 @@ static struct json_object *task_exec_json(const char *opts)
+
+ free(cmd);
+
+- if (o && is_error(o))
++ if (!o)
+ return NULL;
+
+ return o;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/tw-version.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/tw-version.patch
new file mode 100644
index 000000000000..995fffeda2f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ptask/tw-version.patch
@@ -0,0 +1,11 @@
+--- a/src/tw.c 2017-02-21 22:56:19.289037608 +0100
++++ b/src/tw.c 2017-02-21 22:57:04.726814256 +0100
+@@ -116,7 +116,7 @@
+ || !strcmp(ver, "2.3.0")
+ || !strcmp(ver, "2.4.0")
+ || !strcmp(ver, "2.4.1")
+- || !strcmp(ver, "2.5.0"))
++ || !strcmp(ver, "2.5.1"))
+ return 1;
+ else
+ return 0;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pueue/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pueue/default.nix
new file mode 100644
index 000000000000..d0459cb426c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pueue/default.nix
@@ -0,0 +1,33 @@
+{ lib, rustPlatform, fetchFromGitHub, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "pueue";
+ version = "0.8.2";
+
+ src = fetchFromGitHub {
+ owner = "Nukesor";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1vdlsfnqnyri0ny2g695lhivs9m25v9lsqf1valwbjv9l9vjxfqa";
+ };
+
+ cargoSha256 = "0qziwb69qpbziz772np8dcb1dvxg6m506k5kl63m75z4zicgykcv";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ checkFlags = [ "--skip=test_single_huge_payload" "--skip=test_create_unix_socket" ];
+
+ postInstall = ''
+ for shell in bash fish zsh; do
+ $out/bin/pueue completions $shell .
+ done
+ installShellCompletion pueue.{bash,fish} _pueue
+ '';
+
+ meta = with lib; {
+ description = "A daemon for managing long running shell commands";
+ homepage = "https://github.com/Nukesor/pueue";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pwsafe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pwsafe/default.nix
new file mode 100644
index 000000000000..6a9de9e600f4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pwsafe/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, zip, gettext, perl
+, wxGTK30, libXext, libXi, libXt, libXtst, xercesc
+, qrencode, libuuid, libyubikey, yubikey-personalization
+, curl, openssl, file
+}:
+
+stdenv.mkDerivation rec {
+ pname = "pwsafe";
+ version = "3.53.0";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "0nh5jnf5yls2qv5hpfhm6i854zsknyh7d93c987a0cg14sg820fv";
+ };
+
+ nativeBuildInputs = [
+ cmake gettext perl pkgconfig zip
+ ];
+ buildInputs = [
+ libXext libXi libXt libXtst wxGTK30
+ curl qrencode libuuid openssl xercesc
+ libyubikey yubikey-personalization
+ file
+ ];
+
+ cmakeFlags = [
+ "-DNO_GTEST=ON"
+ "-DCMAKE_CXX_FLAGS=-I${yubikey-personalization}/include/ykpers-1"
+ ];
+ enableParallelBuilding = true;
+
+ postPatch = ''
+ # Fix perl scripts used during the build.
+ for f in `find . -type f -name '*.pl'`; do
+ patchShebangs $f
+ done
+
+ # Fix hard coded paths.
+ for f in `grep -Rl /usr/share/ src`; do
+ substituteInPlace $f --replace /usr/share/ $out/share/
+ done
+
+ # Fix hard coded zip path.
+ substituteInPlace help/Makefile.linux --replace /usr/bin/zip ${zip}/bin/zip
+
+ for f in `grep -Rl /usr/bin/ .`; do
+ substituteInPlace $f --replace /usr/bin/ ""
+ done
+ '';
+
+ installFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ description = "A password database utility";
+ longDescription = ''
+ Password Safe is a password database utility. Like many other
+ such products, commercial and otherwise, it stores your
+ passwords in an encrypted file, allowing you to remember only
+ one password (the "safe combination"), instead of all the
+ username/password combinations that you use.
+ '';
+ homepage = "https://pwsafe.org/";
+ maintainers = with maintainers; [ c0bw3b pjones ];
+ platforms = platforms.linux;
+ license = licenses.artistic2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pydf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pydf/default.nix
new file mode 100644
index 000000000000..aa2835107088
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pydf/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonPackage rec {
+ pname = "pydf";
+ version = "12";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "7f47a7c3abfceb1ac04fc009ded538df1ae449c31203962a1471a4eb3bf21439";
+ };
+
+ postInstall = ''
+ mkdir -p $out/share/man/man1 $out/share/pydf
+ install -t $out/share/pydf -m 444 pydfrc
+ install -t $out/share/man/man1 -m 444 pydf.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "colourised df(1)-clone";
+ homepage = "http://kassiopeia.juls.savba.sk/~garabik/software/pydf/";
+ license = licenses.publicDomain;
+ maintainers = with maintainers; [ monsieurp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pyditz/cerberus.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pyditz/cerberus.nix
new file mode 100644
index 000000000000..be12906e61ec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pyditz/cerberus.nix
@@ -0,0 +1,19 @@
+{ stdenv, buildPythonPackage, fetchPypi, pytestrunner, pytest }:
+
+buildPythonPackage rec {
+ pname = "Cerberus";
+ version = "1.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1pxzr8sfm2hc5s96m9k044i44nwkva70n0ypr6a35v73zn891cx5";
+ };
+
+ checkInputs = [ pytestrunner pytest ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://python-cerberus.org/";
+ description = "Lightweight, extensible schema and data validation tool for Python dictionaries";
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pyditz/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pyditz/default.nix
new file mode 100644
index 000000000000..d8b2b2ec602e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pyditz/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, pythonPackages }:
+
+with pythonPackages;
+
+let
+ cerberus_1_1 = callPackage ./cerberus.nix { };
+in buildPythonApplication rec {
+ pname = "pyditz";
+ version = "0.11";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "da0365ae9064e30c4a27526fb0d7a802fda5c8651cda6990d17be7ede89a2551";
+ };
+ nativeBuildInputs = [ setuptools_scm ];
+ propagatedBuildInputs = [ pyyaml six jinja2 cerberus_1_1 ];
+
+ checkPhase = ''
+ ${python.interpreter} -m unittest discover
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://pythonhosted.org/pyditz/";
+ description = "Drop-in replacement for the Ditz distributed issue tracker";
+ maintainers = [ maintainers.ilikeavocadoes ];
+ license = licenses.lgpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pytrainer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
new file mode 100644
index 000000000000..00c451141792
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
@@ -0,0 +1,94 @@
+{ stdenv
+, fetchFromGitHub
+, perl
+, python3
+, sqlite
+, gpsbabel
+, gnome3
+, gobject-introspection
+, wrapGAppsHook
+, gtk3
+, xvfb_run
+, webkitgtk
+, glib-networking
+, glibcLocales
+, tzdata
+, substituteAll
+}:
+
+let
+ # Pytrainer needs a matplotlib with GTK backend.
+ matplotlibGtk = python3.pkgs.matplotlib.override {
+ enableGtk3 = true;
+ };
+
+in
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "pytrainer";
+ version = "2.0.1";
+
+ src = fetchFromGitHub {
+ owner = "pytrainer";
+ repo = "pytrainer";
+ rev = "v${version}";
+ sha256 = "0m2sy3f5pyc4wv1ns31r7vlafqkzp0a2jasaskwrkl6273agbbk9";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ perl = "${perl}/bin/perl";
+ })
+ ];
+
+ postPatch = ''
+ substituteInPlace ./setup.py \
+ --replace "'mysqlclient'," ""
+ '';
+
+ propagatedBuildInputs = with python3.pkgs; [
+ dateutil
+ lxml
+ matplotlibGtk
+ pygobject3
+ sqlalchemy
+ sqlalchemy_migrate
+ psycopg2
+ requests
+ certifi
+ setuptools
+ ];
+
+ nativeBuildInputs = [
+ gobject-introspection
+ wrapGAppsHook
+ xvfb_run
+ ];
+
+ buildInputs = [
+ gpsbabel
+ sqlite
+ gtk3
+ webkitgtk
+ glib-networking
+ glibcLocales
+ gnome3.adwaita-icon-theme
+ ];
+
+ checkPhase = ''
+ env HOME=$TEMPDIR TZDIR=${tzdata}/share/zoneinfo \
+ TZ=Europe/Kaliningrad \
+ LC_ALL=en_US.UTF-8 \
+ xvfb-run -s '-screen 0 800x600x24' \
+ ${python3.interpreter} setup.py test
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pytrainer/pytrainer/wiki";
+ description = "Application for logging and graphing sporting excursions";
+ maintainers = [ maintainers.rycee ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/pytrainer/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/pytrainer/fix-paths.patch
new file mode 100644
index 000000000000..7781f5aa4bed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/pytrainer/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/imports/file_garminfit.py
++++ b/imports/file_garminfit.py
+@@ -81,7 +81,7 @@
+ logging.debug(">>")
+ result = False
+ try:
+- result = subprocess.check_output(["perl",
++ result = subprocess.check_output(["@perl@",
+ self.main_data_path+"plugins/garmin-fit/bin/fit2tcx",
+ filename])
+ except subprocess.CalledProcessError:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix
new file mode 100644
index 000000000000..c2adcabe414c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, mkDerivation, fetchFromGitHub, qtbase, qmake, libX11, libXtst, openssl, libscrypt }:
+
+mkDerivation rec {
+ name = "qMasterPassword";
+ version = "1.2.2";
+
+ src = fetchFromGitHub {
+ owner = "bkueng";
+ repo = name;
+ rev = "v${version}";
+ sha256 = "0l0jarvfdc69rcjl2wa0ixq8gp3fmjsy9n84m38sxf3n9j2bh13c";
+ };
+
+ buildInputs = [ qtbase libX11 libXtst openssl libscrypt ];
+ nativeBuildInputs = [ qmake ];
+
+ # Upstream install is mostly defunct. It hardcodes target.path and doesn't
+ # install anything but the binary.
+ installPhase = if stdenv.isDarwin then ''
+ mkdir -p "$out"/{Applications,bin}
+ mv qMasterPassword.app "$out"/Applications/
+ ln -s ../Applications/qMasterPassword.app/Contents/MacOS/qMasterPassword "$out"/bin/qMasterPassword
+ '' else ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/{applications,doc/qMasterPassword,icons/qmasterpassword,icons/hicolor/512x512/apps}
+ mv qMasterPassword $out/bin
+ mv data/qMasterPassword.desktop $out/share/applications
+ mv LICENSE README.md $out/share/doc/qMasterPassword
+ mv data/icons/app_icon.png $out/share/icons/hicolor/512x512/apps/qmasterpassword.png
+ mv data/icons/* $out/share/icons/qmasterpassword
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Stateless Master Password Manager";
+ longDescription = ''
+ Access all your passwords using only a single master password. But in
+ contrast to other managers it does not store any passwords: Unique
+ passwords are generated from the master password and a site name. This
+ means you automatically get different passwords for each account and
+ there is no password file that can be lost or get stolen. There is also
+ no need to trust any online password service.
+ '';
+ homepage = "https://github.com/bkueng/qMasterPassword";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.tadeokondrak ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch
new file mode 100644
index 000000000000..0b8a29319eb3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch
@@ -0,0 +1,48 @@
+diff --git a/src/core/RS.cpp b/src/core/RS.cpp
+index d8a135d6f..659795dbb 100644
+--- a/src/core/RS.cpp
++++ b/src/core/RS.cpp
+@@ -151,7 +151,7 @@ QStringList RS::getDirectoryList(const QString& subDirectory) {
+ dirList.append(appDir + "/../../../" + subDirectory);
+ dirList.append(QDir::currentPath() + "/" + subDirectory);
+ #else
+- dirList.append(appDir + "/" + subDirectory);
++ dirList.append(appDir + "/../lib/" + subDirectory);
+ #endif
+
+ /*
+diff --git a/src/core/RSettings.cpp b/src/core/RSettings.cpp
+index c6c31cbf5..c51b59ce6 100644
+--- a/src/core/RSettings.cpp
++++ b/src/core/RSettings.cpp
+@@ -367,6 +367,8 @@ QString RSettings::getApplicationPath() {
+ ret.cdUp();
+ }
+
++ ret.cd("../lib");
++
+ return ret.path();
+ }
+
+@@ -1268,7 +1270,7 @@ QString RSettings::getRevisionString() {
+ }
+
+ QString RSettings::getReleaseDate() {
+- return __DATE__;
++ return "";
+ }
+
+ int RSettings::getSnapRange() {
+diff --git a/qcad.desktop b/qcad.desktop
+index 93c5e9720..2d0e6bf32 100644
+--- a/qcad.desktop
++++ b/qcad.desktop
+@@ -48,7 +48,7 @@ Comment[sv]=2D CAD-system
+ Comment[sl]=Sistem 2D CAD
+ Comment[uk]=2D САПР
+ Comment[tr]=2D CAD Sistemi
+-Exec=qcad %F
++Exec=qcad-bin %F
+ X-MultipleArgs=true
+ Icon=qcad_icon
+ Terminal=false
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qcad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qcad/default.nix
new file mode 100644
index 000000000000..a0d370c00ac1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qcad/default.nix
@@ -0,0 +1,102 @@
+{ boost
+, fetchFromGitHub
+, libGLU
+, mkDerivationWith
+, muparser
+, pkgconfig
+, qtbase
+, qmake
+, qtscript
+, qtsvg
+, qtxmlpatterns
+, qttools
+, stdenv
+}:
+
+mkDerivationWith stdenv.mkDerivation rec {
+ pname = "qcad";
+ version = "3.25.2.0";
+
+ src = fetchFromGitHub {
+ owner = "qcad";
+ repo = "qcad";
+ rev = "v${version}";
+ sha256 = "1lz6q9n2p0l7k8rwqsdj6av9p3426423g5avc4y6s7nbk36280mz";
+ };
+
+ patches = [
+ ./application-dir.patch
+ ];
+
+ postPatch = ''
+ if ! [ -d src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version} ]; then
+ mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}
+ cp \
+ src/3rdparty/qt-labs-qtscriptgenerator-5.14.0/qt-labs-qtscriptgenerator-5.14.0.pro \
+ src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}/qt-labs-qtscriptgenerator-${qtbase.version}.pro
+ fi
+ '';
+
+ qmakeFlags = [
+ "MUPARSER_DIR=${muparser}"
+ "INSTALLROOT=$(out)"
+ "BOOST_DIR=${boost.dev}"
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm555 -t $out/bin release/qcad-bin
+ install -Dm555 -t $out/lib release/libspatialindexnavel.so
+ install -Dm555 -t $out/lib release/libqcadcore.so
+ install -Dm555 -t $out/lib release/libqcadentity.so
+ install -Dm555 -t $out/lib release/libqcadgrid.so
+ install -Dm555 -t $out/lib release/libqcadsnap.so
+ install -Dm555 -t $out/lib release/libqcadoperations.so
+ install -Dm555 -t $out/lib release/libqcadstemmer.so
+ install -Dm555 -t $out/lib release/libqcadspatialindex.so
+ install -Dm555 -t $out/lib release/libqcadgui.so
+ install -Dm555 -t $out/lib release/libqcadecmaapi.so
+
+ install -Dm444 -t $out/share/applications qcad.desktop
+ install -Dm644 -t $out/share/pixmaps scripts/qcad_icon.png
+
+ cp -r scripts $out/lib
+ cp -r plugins $out/lib/plugins
+ cp -r patterns $out/lib/patterns
+
+ # workaround to fix the library browser:
+ rm -r $out/lib/plugins/sqldrivers
+ ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/sqldrivers
+
+ install -Dm644 scripts/qcad_icon.svg $out/share/icons/hicolor/scalable/apps/qcad.svg
+
+ runHook postInstall
+ '';
+
+ buildInputs = [
+ boost
+ muparser
+ libGLU
+ qtbase
+ qtscript
+ qtsvg
+ qtxmlpatterns
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ qmake
+ qttools
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "2D CAD package based on Qt";
+ homepage = "https://qcad.org";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ yvesf ];
+ platforms = qtbase.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qdirstat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
new file mode 100644
index 000000000000..e9f049159bfa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchFromGitHub, qmake
+, coreutils, xdg_utils, bash
+, makeWrapper, perlPackages, mkDerivation }:
+
+let
+ pname = "qdirstat";
+ version = "1.7";
+
+ src = fetchFromGitHub {
+ owner = "shundhammer";
+ repo = pname;
+ rev = version;
+ sha256 = "163x3fxra0l3vvrzm25mh7jvcwjbmwsqlpppkxx76mkz9a1769fy";
+ };
+in
+
+mkDerivation {
+ inherit pname version src;
+
+ nativeBuildInputs = [ qmake makeWrapper ];
+
+ buildInputs = [ perlPackages.perl ];
+
+ postPatch = ''
+ substituteInPlace scripts/scripts.pro \
+ --replace /bin/true ${coreutils}/bin/true
+
+ for i in src/SysUtil.cpp src/FileSizeStatsWindow.cpp
+ do
+ substituteInPlace $i \
+ --replace /usr/bin/xdg-open ${xdg_utils}/bin/xdg-open
+ done
+ for i in src/Cleanup.cpp src/cleanup-config-page.ui
+ do
+ substituteInPlace $i \
+ --replace /bin/bash ${bash}/bin/bash \
+ --replace /bin/sh ${bash}/bin/sh
+ done
+ substituteInPlace src/StdCleanup.cpp \
+ --replace /bin/bash ${bash}/bin/bash
+ '';
+
+ qmakeFlags = [ "INSTALL_PREFIX=${placeholder "out"}" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/qdirstat-cache-writer \
+ --set PERL5LIB "${perlPackages.makePerlPath [ perlPackages.URI ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Graphical disk usage analyzer";
+ homepage = src.meta.homepage;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ gnidorah ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qlandkartegt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qlandkartegt/default.nix
new file mode 100644
index 000000000000..9ae65a962ddc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qlandkartegt/default.nix
@@ -0,0 +1,95 @@
+{ mkDerivation, lib, fetchurl, fetchpatch, cmake
+, qtmultimedia, qtserialport, qtscript, qtwebkit
+, garmindev, gdal, gpsd, libdmtx, libexif, libGLU, proj }:
+
+mkDerivation rec {
+ pname = "qlandkartegt";
+ version = "1.8.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "1rwv5ar5jv15g1cc6pp0lk69q3ip10pjazsh3ds2ggaciymha1ly";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-gps_read.patch?h=qlandkartegt";
+ sha256 = "1xyqxdqxwviq7b8jjxssxjlkldk01ms8dzqdjgvjs8n3fh7w0l70";
+ })
+ (fetchpatch {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-incomplete-type.patch?h=qlandkartegt";
+ sha256 = "1q7rm321az3q6pq5mq0yjrihxl9sf3nln9z3xp20g9qldslv2cy2";
+ })
+ (fetchpatch {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-proj_api.patch?h=qlandkartegt";
+ sha256 = "12yibxn85z2n30azmhyv02q091jj5r50nlnjq4gfzyqd3xb9582n";
+ })
+ (fetchpatch {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-qt5-build.patch?h=qlandkartegt";
+ sha256 = "1wq2hr06gzq8m7zddh10vizmvpwp4lcy1g86rlpppvdc5cm3jpkl";
+ })
+ (fetchpatch {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-qtgui-include.patch?h=qlandkartegt";
+ sha256 = "16hql8ignzw4n1hlp4icbvaddqcadh2rjns0bvis720535112sc8";
+ })
+ (fetchpatch {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-timespec.patch?h=qlandkartegt";
+ sha256 = "1yzdwfsgjn7q04r9f7s5qk50y25hdl384dxrmpfmkm97fmpgyr7w";
+ })
+ (fetchpatch {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-ver_str.patch?h=qlandkartegt";
+ sha256 = "13fg05gqrjfa9j00lrqz1b06xf6r5j01kl6l06vkn0hz1jzxss5m";
+ })
+ (fetchpatch {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/improve-gpx-creator.patch?h=qlandkartegt";
+ sha256 = "1sdf5z8qrd43azrhwfw06zc0qr48z925hgbcfqlp0xrsxv2n6kks";
+ })
+ (fetchpatch {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/improve-gpx-name.patch?h=qlandkartegt";
+ sha256 = "10phafhns79i3rl4zpc7arw11x46cywgkdkxm7gw1i9y5h0cal79";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ qtmultimedia qtserialport qtscript qtwebkit
+ garmindev gdal gpsd libdmtx libexif libGLU proj
+ ];
+
+ cmakeFlags = [
+ "-DQK_QT5_PORT=ON"
+ "-DEXIF_LIBRARIES=${libexif}/lib/libexif.so"
+ "-DEXIF_INCLUDE_DIRS=${libexif}/include"
+ ];
+
+ enableParallelBuilding = true;
+
+ postPatch = ''
+ substituteInPlace ConfigureChecks.cmake \
+ --replace \$\{PLUGIN_INSTALL_DIR\} "${garmindev}/lib/qlandkartegt"
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/mime/packages
+ cat << EOF > $out/share/mime/packages/qlandkartegt.xml
+ <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+ <mime-type type="application/vnd.qlandkartegt.qlb">
+ <comment>QLandkarteGT File</comment>
+ <glob pattern="*.qlb"/>
+ </mime-type>
+ </mime-info>
+ EOF
+ '';
+
+ meta = with lib; {
+ homepage = "http://www.qlandkarte.org/";
+ description = ''
+ QLandkarte GT is the ultimate outdoor aficionado's tool.
+ It supports GPS maps in GeoTiff format as well as Garmin's img vector map format.
+ '';
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qlandkartegt/garmindev.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qlandkartegt/garmindev.nix
new file mode 100644
index 000000000000..8705abd92596
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qlandkartegt/garmindev.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, cmake, libusb-compat-0_1 }:
+
+stdenv.mkDerivation rec {
+ pname = "garmindev";
+ version = "0.3.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/qlandkartegt/${pname}-${version}.tar.gz";
+ sha256 = "1mc7rxdn9790pgbvz02xzipxp2dp9h4hfq87xgawa18sp9jqzhw6";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ libusb-compat-0_1 ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.qlandkarte.org/";
+ description = "Garmin Device Drivers for QlandkarteGT";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qlcplus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
new file mode 100644
index 000000000000..452629b6181d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, pkgconfig, udev
+, qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb-compat-0_1
+, libsndfile, libmad
+}:
+
+mkDerivation rec {
+ pname = "qlcplus";
+ version = "4.12.3";
+
+ src = fetchFromGitHub {
+ owner = "mcallegari";
+ repo = "qlcplus";
+ rev = "QLC+_${version}";
+ sha256 = "PB1Y8N1TrJMcS7A2e1nKjsUlAxOYjdJqBhbyuDCAbGs=";
+ };
+
+ nativeBuildInputs = [ qmake pkgconfig ];
+ buildInputs = [
+ udev qtmultimedia qtscript alsaLib ola libftdi1 libusb-compat-0_1 libsndfile libmad
+ ];
+
+ qmakeFlags = [ "INSTALLROOT=$(out)" ];
+
+ postPatch = ''
+ patchShebangs .
+ sed -i -e '/unix:!macx:INSTALLROOT += \/usr/d' \
+ -e "s@\$\$LIBSDIR/qt4/plugins@''${qtPluginPrefix}@" \
+ -e "s@/etc/udev/rules.d@''${out}/lib/udev/rules.d@" \
+ variables.pri
+ '';
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ ln -sf $out/lib/*/libqlcplus* $out/lib
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A free and cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc";
+ maintainers = [ maintainers.globin ];
+ license = licenses.asl20;
+ platforms = platforms.all;
+ homepage = "https://www.qlcplus.org/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qmetro/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qmetro/default.nix
new file mode 100644
index 000000000000..623bd050dc9b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qmetro/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, qmake4Hook, unzip, qt4 }:
+
+stdenv.mkDerivation rec {
+ name = "${project}-${version}";
+ project = "qmetro";
+ version = "0.7.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${project}/${name}.zip";
+ sha256 = "1zdj87lzcr43gr2h05g17z31pd22n5kxdwbvx7rx656rmhv0sjq5";
+ };
+
+ nativeBuildInputs = [ qmake4Hook unzip ];
+
+ buildInputs = [ qt4 ];
+
+ postPatch = ''
+ sed -e 's#Exec=/usr/bin/qmetro#Exec=qmetro#' -i rc/qmetro.desktop
+ echo 'LIBS += -lz' >> qmetro.pro
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/projects/qmetro/";
+ description = "Worldwide transit maps viewer";
+ license = licenses.gpl3;
+
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qolibri/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qolibri/default.nix
new file mode 100644
index 000000000000..913d2bc3c6ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qolibri/default.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, lib, fetchFromGitHub, pkgconfig, cmake, libeb, lzo
+, qtbase, qtmultimedia, qttools, qtwebengine }:
+
+mkDerivation {
+ pname = "qolibri";
+ version = "2019-07-22";
+
+ src = fetchFromGitHub {
+ owner = "ludios";
+ repo = "qolibri";
+ rev = "b58f9838d39300cba444eba725a369181c5d746b";
+ sha256 = "0kcc6dvbcmq9y7hk8mp23pydiaqz6f0clg64d1f2y04ppphmah42";
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [
+ libeb lzo qtbase qtmultimedia qttools qtwebengine
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ homepage = "https://github.com/ludios/qolibri";
+ description = "EPWING reader for viewing Japanese dictionaries";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qpdfview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qpdfview/default.nix
new file mode 100644
index 000000000000..3e55215f4733
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qpdfview/default.nix
@@ -0,0 +1,49 @@
+{stdenv, mkDerivation, fetchurl, qmake, qtbase, qtsvg, pkgconfig, poppler, djvulibre, libspectre, cups
+, file, ghostscript
+}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="qpdfview";
+ version = "0.4.18";
+ name="${baseName}-${version}";
+ url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
+ sha256 = "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c";
+ };
+ nativeBuildInputs = [ qmake pkgconfig ];
+ buildInputs = [
+ qtbase qtsvg poppler djvulibre libspectre cups file ghostscript
+ ];
+in
+mkDerivation {
+ pname = s.baseName;
+ inherit (s) version;
+ inherit nativeBuildInputs buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+
+ preConfigure = ''
+ qmakeFlags+=(*.pro)
+ '';
+
+ qmakeFlags = [
+ "TARGET_INSTALL_PATH=${placeholder "out"}/bin"
+ "PLUGIN_INSTALL_PATH=${placeholder "out"}/lib/qpdfview"
+ "DATA_INSTALL_PATH=${placeholder "out"}/share/qpdfview"
+ "MANUAL_INSTALL_PATH=${placeholder "out"}/share/man/man1"
+ "ICON_INSTALL_PATH=${placeholder "out"}/share/icons/hicolor/scalable/apps"
+ "LAUNCHER_INSTALL_PATH=${placeholder "out"}/share/applications"
+ "APPDATA_INSTALL_PATH=${placeholder "out"}/share/appdata"
+ ];
+
+ meta = {
+ inherit (s) version;
+ description = "A tabbed document viewer";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ homepage = "https://launchpad.net/qpdfview";
+ updateWalker = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qsudo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qsudo/default.nix
new file mode 100644
index 000000000000..63d97b3001c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qsudo/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, qmake
+, qtbase
+, sudo
+}:
+
+mkDerivation rec {
+ pname = "qsudo";
+ version = "2020.03.27";
+
+ src = fetchFromGitHub {
+ owner = "project-trident";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "06kg057vwkvafnk69m9rar4wih3vq4h36wbzwbfc2kndsnn47lfl";
+ };
+
+ sourceRoot = "source/src-qt5";
+
+ nativeBuildInputs = [
+ qmake
+ ];
+
+ buildInputs = [
+ qtbase
+ sudo
+ ];
+
+ postPatch = ''
+ substituteInPlace qsudo.pro --replace /usr/bin $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Graphical sudo utility from Project Trident";
+ homepage = "https://github.com/project-trident/qsudo";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix
new file mode 100644
index 000000000000..70d9f600fa03
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix
@@ -0,0 +1,74 @@
+{ mkDerivation, stdenv, lib, fetchFromGitHub, fetchpatch, procps
+, qtbase, qtwebengine, qtwebkit
+, cmake
+, syncthing
+, preferQWebView ? false
+, preferNative ? true }:
+
+mkDerivation rec {
+ version = "0.5.8";
+ pname = "qsyncthingtray";
+
+ src = fetchFromGitHub {
+ owner = "sieren";
+ repo = "QSyncthingTray";
+ rev = version;
+ sha256 = "1n9g4j7qznvg9zl6x163pi9f7wsc3x6q76i33psnm7x2v1i22x5w";
+ };
+
+ buildInputs = [ qtbase qtwebengine ] ++ lib.optional preferQWebView qtwebkit;
+
+ nativeBuildInputs = [ cmake ];
+
+ cmakeFlags = [ ]
+ ++ lib.optional preferQWebView "-DQST_BUILD_WEBKIT=1"
+ ++ lib.optional preferNative "-DQST_BUILD_NATIVEBROWSER=1";
+
+ patches = [ (fetchpatch {
+ name = "support_native_browser.patch";
+ url = "https://patch-diff.githubusercontent.com/raw/sieren/QSyncthingTray/pull/225.patch";
+ sha256 = "0w665xdlsbjxs977pdpzaclxpswf7xys1q3rxriz181lhk2y66yy";
+ }) ] ++ lib.optional (!preferQWebView && !preferNative) ./qsyncthingtray-0.5.8-qt-5.6.3.patch;
+
+ postPatch = ''
+ ${lib.optionalString stdenv.isLinux ''
+ substituteInPlace includes/platforms/linux/posixUtils.hpp \
+ --replace '"/usr/local/bin/syncthing"' '"${syncthing}/bin/syncthing"' \
+ --replace '"pgrep -x' '"${procps}/bin/pgrep -x'
+ ''}
+
+ ${lib.optionalString stdenv.isDarwin ''
+ substituteInPlace includes/platforms/darwin/macUtils.hpp \
+ --replace '"/usr/local/bin/syncthing"' '"${syncthing}/bin/syncthing"'
+ ''}
+ '';
+
+ installPhase = let qst = "qsyncthingtray"; in ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ install -m755 QSyncthingTray $out/bin/${qst}
+ ln -s $out/bin/${qst} $out/bin/QSyncthingTray
+
+ runHook postInstall
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ homepage = "https://github.com/sieren/QSyncthingTray/";
+ description = "A Traybar Application for Syncthing written in C++";
+ longDescription = ''
+ A cross-platform status bar for Syncthing.
+ Currently supports macOS, Windows and Linux.
+ Written in C++ with Qt.
+ '';
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ zraexy peterhoeg ];
+ platforms = platforms.all;
+ # 0.5.7 segfaults when opening the main panel with qt 5.7 and fails to compile with qt 5.8
+ # but qt > 5.6 works when only using the native browser
+ # https://github.com/sieren/QSyncthingTray/issues/223
+ broken = (builtins.compareVersions qtbase.version "5.7.0" >= 0 && !preferNative);
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch
new file mode 100644
index 000000000000..424bbe171779
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b778d09..247b606 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -12,7 +12,7 @@ set(CMAKE_AUTOMOC ON)
+
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+
+-find_package(Qt5 5.6 COMPONENTS Widgets Network PrintSupport)
++find_package(Qt5 5.6 COMPONENTS Widgets Network PrintSupport WebEngineWidgets)
+ if (NOT Qt5_FOUND)
+ message(FATAL_ERROR
+ "Some components of Qt5 not found (see above messages for details. "
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix
new file mode 100644
index 000000000000..852f0d30f9a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, stdenv
+, fetchFromGitHub
+, qtbase
+, qtsvg
+, qmake
+, leptonica
+, tesseract
+}:
+
+mkDerivation {
+ pname = "qt-box-editor";
+ version = "unstable-2019-07-12";
+
+ src = fetchFromGitHub {
+ owner = "zdenop";
+ repo = "qt-box-editor";
+ rev = "75a68b466868ba41ba2886caa796057403fe1901";
+ sha256 = "0zwsyy7cnbhy5aazwlkhd9y8bnzlgy1gffqa46abajn4809b95k3";
+ };
+
+ buildInputs = [ qtbase qtsvg leptonica tesseract ];
+
+ nativeBuildInputs = [ qmake ];
+
+ # remove with next release
+ # https://github.com/zdenop/qt-box-editor/pull/78
+ postPatch = ''
+ printf "INSTALLS += target\ntarget.path = $out/bin" >> qt-box-editor.pro
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Editor of tesseract-ocr box files";
+ homepage = "https://github.com/zdenop/qt-box-editor";
+ license = licenses.asl20;
+ maintainers = [ maintainers.costrouc ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix
new file mode 100644
index 000000000000..e10c922e4f16
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, fetchFromGitHub, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, gst_all_1, wrapQtAppsHook, qtbase, qtmultimedia }:
+let
+ gstreamerPath = with gst_all_1; stdenv.lib.makeSearchPath "lib/gstreamer-1.0" [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugins-ugly
+ ];
+in stdenv.mkDerivation rec {
+ pname = "qt-video-wlr";
+ version = "2020-08-03";
+
+ src = fetchFromGitHub {
+ owner = "xdavidwu";
+ repo = "qt-video-wlr";
+ rev = "f88a7aa43f28b879b18752069f4a1ec33d73f2fe";
+ sha256 = "135kfyg1b61xvfpk8vpk4qyw6s9q1mn3a6lfkrqrhl0dz9kka9lx";
+ };
+
+ nativeBuildInputs = [ pkg-config meson ninja wrapQtAppsHook ];
+ buildInputs = [
+ wayland
+ pixman
+ cairo
+ librsvg
+ wayland-protocols
+ wlroots
+ libxkbcommon
+ qtbase
+ qtmultimedia
+ ];
+
+ qtWrapperArgs = [
+ "--prefix PATH : $out/bin/qt-video-wlr"
+ "--prefix GST_PLUGIN_PATH : ${gstreamerPath}"
+ ];
+
+ meta = with lib; {
+ description = "Qt pip-mode-like video player for wlroots-based wayland compositors";
+ homepage = "https://github.com/xdavidwu/qt-video-wlr";
+ license = licenses.mit;
+ maintainers = with maintainers; [ fionera ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
new file mode 100644
index 000000000000..c5dfdf95fb5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchzip, qt5, mkDerivation }:
+
+let
+ version = "1.40.43";
+in
+mkDerivation {
+ pname = "qtbitcointrader";
+ inherit version;
+
+ src = fetchzip {
+ url = "https://github.com/JulyIGHOR/QtBitcoinTrader/archive/v${version}.tar.gz";
+ sha256 = "07xbsi78cykpyxidp1bw5ahmymdrs2afg7b0lla7dfhagz18lzxv";
+ };
+
+ buildInputs = [ qt5.qtbase qt5.qtmultimedia qt5.qtscript ];
+
+ postUnpack = "sourceRoot=\${sourceRoot}/src";
+
+ configurePhase = ''
+ runHook preConfigure
+ qmake $qmakeFlags \
+ PREFIX=$out \
+ DESKTOPDIR=$out/share/applications \
+ ICONDIR=$out/share/pixmaps \
+ QtBitcoinTrader_Desktop.pro
+ runHook postConfigure
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Bitcoin trading client";
+ homepage = "https://centrabit.com/";
+ license = licenses.gpl3;
+ platforms = qt5.qtbase.meta.platforms;
+ maintainers = [ maintainers.ehmry ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/qtpass/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/qtpass/default.nix
new file mode 100644
index 000000000000..faa199147490
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/qtpass/default.nix
@@ -0,0 +1,61 @@
+{ lib, mkDerivation, fetchFromGitHub
+, git, gnupg, pass, pwgen, qrencode
+, fetchpatch
+, qtbase, qtsvg, qttools, qmake
+}:
+
+mkDerivation rec {
+ pname = "qtpass";
+ version = "1.3.2";
+
+ src = fetchFromGitHub {
+ owner = "IJHack";
+ repo = "QtPass";
+ rev = "v${version}";
+ sha256 = "0748hjvhjrybi33ci3c8hcr74k9pdrf5jv8npf9hrsrmdyy1kr9x";
+ };
+
+ postPatch = ''
+ substituteInPlace src/qtpass.cpp \
+ --replace "/usr/bin/qrencode" "${qrencode}/bin/qrencode"
+ '';
+
+ buildInputs = [ git gnupg pass qtbase qtsvg ];
+
+ nativeBuildInputs = [ qmake qttools ];
+
+ enableParallelBuilding = true;
+
+ patches = [
+ # Fix path to pass-otp plugin `/usr/lib/password-store/extensions/otp.bash` being hardcoded.
+ # TODO: Remove when https://github.com/IJHack/QtPass/pull/499 is merged and available.
+ (fetchpatch {
+ name = "qtpass-Dont-hardcode-pass-otp-usr-lib-path.patch";
+ url = "https://github.com/IJHack/QtPass/commit/2ca9f0ec5a8d709c97a2433c5cd814040c82d4f3.patch";
+ sha256 = "0ljlvqxvarrz2a4j71i66aflrxi84zirb6cg9kvygnvhvm1zbc7d";
+ })
+ ];
+
+ qmakeFlags = [
+ # setup hook only sets QMAKE_LRELEASE, set QMAKE_LUPDATE too:
+ "QMAKE_LUPDATE=${qttools.dev}/bin/lupdate"
+ ];
+
+ qtWrapperArgs = [
+ "--suffix PATH : ${lib.makeBinPath [ git gnupg pass pwgen ]}"
+ ];
+
+ postInstall = ''
+ install -D qtpass.desktop -t $out/share/applications
+ install -D artwork/icon.svg $out/share/icons/hicolor/scalable/apps/qtpass-icon.svg
+ install -D qtpass.1 -t $out/share/man/man1
+ '';
+
+ meta = with lib; {
+ description = "A multi-platform GUI for pass, the standard unix password manager";
+ homepage = "https://qtpass.org";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.hrdinka ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix
new file mode 100644
index 000000000000..1956f0ad41d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, pkgconfig, gtk2, synergy}:
+
+stdenv.mkDerivation rec {
+ pname = "quicksynergy";
+ version = "0.9.0";
+ src = fetchurl {
+ url = "mirror://sourceforge/project/quicksynergy/Linux/${version}/quicksynergy-${version}.tar.gz";
+ sha256 = "1pi8503bg8q1psw50y6d780i33nnvfjqiy9vnr3v52pdcfip8pix";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ gtk2
+ synergy
+ ];
+ preBuild = "
+ sed -i 's@/usr/bin@${synergy.out}/bin@' src/synergy_config.c
+ ";
+ meta = {
+ description = "GUI application to share mouse and keyboard between computers";
+ longDescription = "
+ QuickSynergy is a graphical interface (GUI) for easily configuring
+ Synergy2, an application that allows the user to share his mouse and
+ keyboard between two or more computers.
+
+ Without the need for any external hardware, Synergy2 uses the TCP-IP
+ protocol to share the resources, even between machines with diferent
+ operating systems, such as Mac OS, Linux and Windows.
+
+ Remember to open port 24800 (used by synergys program) if you want to
+ host mouse and keyboard.";
+ homepage = "https://sourceforge.net/projects/quicksynergy/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.spinus ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix
new file mode 100644
index 000000000000..6bbbc671bf86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix
@@ -0,0 +1,23 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "raiseorlaunch";
+ version = "2.3.3";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "3d694015d020a888b42564d56559213b94981ca2b32b952a49b2de4d029d2e59";
+ };
+
+ nativeBuildInputs = [ python3Packages.setuptools_scm ];
+ checkInputs = [ python3Packages.pytest ];
+ pythonPath = with python3Packages; [ i3ipc ];
+
+ meta = with lib; {
+ maintainers = with maintainers; [ winpat ];
+ description = "A run-or-raise-application-launcher for i3 window manager";
+ homepage = "https://github.com/open-dynaMIX/raiseorlaunch";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ranger/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ranger/default.nix
new file mode 100644
index 000000000000..68ddef656972
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ranger/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, lib, fetchFromGitHub, python3Packages, file, less, highlight
+, imagePreviewSupport ? true, w3m ? null}:
+
+with stdenv.lib;
+
+assert imagePreviewSupport -> w3m != null;
+
+python3Packages.buildPythonApplication rec {
+ name = "ranger-${version}";
+ version = "1.9.3";
+
+ src = fetchFromGitHub {
+ owner = "ranger";
+ repo = "ranger";
+ rev = "v${version}";
+ sha256= "1rygfryczanvqxn43lmlkgs04sbqznbvbb9hlbm3h5qgdcl0xlw8";
+ };
+
+ LC_ALL = "en_US.UTF-8";
+
+ checkInputs = with python3Packages; [ pytest ];
+ propagatedBuildInputs = [ file ]
+ ++ lib.optionals (imagePreviewSupport) [ python3Packages.pillow ];
+
+ checkPhase = ''
+ py.test tests
+ '';
+
+ preConfigure = ''
+ ${lib.optionalString (highlight != null) ''
+ sed -i -e 's|^\s*highlight\b|${highlight}/bin/highlight|' \
+ ranger/data/scope.sh
+ ''}
+
+ substituteInPlace ranger/data/scope.sh \
+ --replace "/bin/echo" "echo"
+
+ substituteInPlace ranger/__init__.py \
+ --replace "DEFAULT_PAGER = 'less'" "DEFAULT_PAGER = '${stdenv.lib.getBin less}/bin/less'"
+
+ for i in ranger/config/rc.conf doc/config/rc.conf ; do
+ substituteInPlace $i --replace /usr/share $out/share
+ done
+
+ # give file previews out of the box
+ substituteInPlace ranger/config/rc.conf \
+ --replace "#set preview_script ~/.config/ranger/scope.sh" "set preview_script $out/share/doc/ranger/config/scope.sh"
+ '' + optionalString imagePreviewSupport ''
+ substituteInPlace ranger/ext/img_display.py \
+ --replace /usr/lib/w3m ${w3m}/libexec/w3m
+
+ # give image previews out of the box when building with w3m
+ substituteInPlace ranger/config/rc.conf \
+ --replace "set preview_images false" "set preview_images true"
+ '';
+
+ meta = with lib; {
+ description = "File manager with minimalistic curses interface";
+ homepage = "http://ranger.github.io/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.toonn maintainers.magnetophon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/razergenie/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/razergenie/default.nix
new file mode 100644
index 000000000000..ac0f373dc93d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/razergenie/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, lib, meson, ninja, pkgconfig, qtbase, qttools
+, wrapQtAppsHook
+, enableExperimental ? false
+, includeMatrixDiscovery ? false
+}:
+
+let
+ version = "0.8.1";
+ pname = "razergenie";
+
+in stdenv.mkDerivation {
+ inherit pname version;
+
+ src = fetchFromGitHub {
+ owner = "z3ntu";
+ repo = "RazerGenie";
+ rev = "v${version}";
+ sha256 = "1ggxnaidxbbpkv1h3zwwyci6886sssgslk5adbikbhz9kc9qg239";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig meson ninja wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ qtbase qttools
+ ];
+
+ mesonFlags = [
+ "-Denable_experimental=${lib.boolToString enableExperimental}"
+ "-Dinclude_matrix_discovery=${lib.boolToString includeMatrixDiscovery}"
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/z3ntu/RazerGenie";
+ description = "Qt application for configuring your Razer devices under GNU/Linux";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ f4814n ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix
new file mode 100644
index 000000000000..ec40347cbcb3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, lib, fetchFromGitHub, fetchFromGitiles, pkgconfig, libssh2
+, qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols
+, qtsvg, qttools, qtquick1, qtcharts
+, qmake
+}:
+
+let
+ breakpad_lss = fetchFromGitiles {
+ url = "https://chromium.googlesource.com/linux-syscall-support";
+ rev = "08056836f2b4a5747daff75435d10d649bed22f6";
+ sha256 = "1ryshs2nyxwa0kn3rlbnd5b3fhna9vqm560yviddcfgdm2jyg0hz";
+ };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "redis-desktop-manager";
+ version = "0.9.1";
+
+ src = fetchFromGitHub {
+ owner = "uglide";
+ repo = "RedisDesktopManager";
+ fetchSubmodules = true;
+ rev = version;
+ sha256 = "0yd4i944d4blw8jky0nxl7sfkkj975q4d328rdcbhizwvf6dx81f";
+ };
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ buildInputs = [
+ libssh2 qtbase qtdeclarative qtgraphicaleffects qtimageformats
+ qtquick1 qtquickcontrols qtsvg qttools qtcharts
+ ];
+
+ dontUseQmakeConfigure = true;
+
+ NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated" ];
+
+ # Disable annoying update reminder
+ postPatch = ''
+ sed -i s/'^\s*initUpdater();'/'\/\/initUpdater():'/ src/app/app.cpp
+ '';
+
+ buildPhase = ''
+ srcdir=$PWD
+
+ cat <<EOF > src/version.h
+#ifndef RDM_VERSION
+ #define RDM_VERSION "${version}-120"
+#endif // !RDM_VERSION
+EOF
+
+ cd $srcdir/3rdparty/gbreakpad
+ cp -r ${breakpad_lss} src/third_party/lss
+ chmod +w -R src/third_party/lss
+ touch README
+
+ cd $srcdir/3rdparty/crashreporter
+ qmake CONFIG+=release DESTDIR="$srcdir/rdm/bin/linux/release" QMAKE_LFLAGS_RPATH=""
+ make
+
+ cd $srcdir/3rdparty/gbreakpad
+ ./configure
+ make
+
+ cd $srcdir/src
+ qmake
+ make
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ instdir="$srcdir/bin/linux/release"
+ cp $instdir/rdm $out/bin
+ '';
+
+ meta = with lib; {
+ description = "Cross-platform open source Redis DB management tool";
+ homepage = "https://redisdesktop.com/";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix
new file mode 100644
index 000000000000..c14eee398cee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, cmake, extra-cmake-modules, plasma-framework, kwindowsystem, redshift, fetchFromGitHub, }:
+
+let version = "1.0.18"; in
+
+stdenv.mkDerivation {
+ pname = "redshift-plasma-applet";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "kotelnik";
+ repo = "plasma-applet-redshift-control";
+ rev = "v${version}";
+ sha256 = "122nnbafa596rxdxlfshxk45lzch8c9342bzj7kzrsjkjg0xr9pq";
+ };
+
+ patchPhase = ''
+ substituteInPlace package/contents/ui/main.qml \
+ --replace "redshiftCommand: 'redshift'" \
+ "redshiftCommand: '${redshift}/bin/redshift'" \
+ --replace "redshiftOneTimeCommand: 'redshift -O " \
+ "redshiftOneTimeCommand: '${redshift}/bin/redshift -O "
+
+ substituteInPlace package/contents/ui/config/ConfigAdvanced.qml \
+ --replace "'redshift -V'" \
+ "'${redshift}/bin/redshift -V'"
+ '';
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ plasma-framework
+ kwindowsystem
+ ];
+
+ meta = with stdenv.lib; {
+ description = "KDE Plasma 5 widget for controlling Redshift";
+ homepage = "https://github.com/kotelnik/plasma-applet-redshift-control";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ benley zraexy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/575.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/575.patch
new file mode 100644
index 000000000000..d731d8ec43ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/575.patch
@@ -0,0 +1,51 @@
+From 467156efccc5e36a36bec8c0b64cc5a70f14d5ed Mon Sep 17 00:00:00 2001
+From: Yegor Timoshenko <yegortimoshenko@riseup.net>
+Date: Tue, 16 Jan 2018 11:43:46 +0000
+Subject: [PATCH] Fix Autoconf script
+
+gettext/intltool macros are not used correctly, see:
+https://bugs.launchpad.net/inkscape/+bug/1418943
+---
+ bootstrap | 6 +-----
+ configure.ac | 5 +----
+ 2 files changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/bootstrap b/bootstrap
+index 0599cf5..40b1dca 100755
+--- a/bootstrap
++++ b/bootstrap
+@@ -1,7 +1,3 @@
+ #!/bin/sh
+
+-# change to root directory
+-cd $(dirname "$0")
+-
+-autopoint --force && \
+- AUTOPOINT="intltoolize --automake --copy" autoreconf --force --install --verbose
++autoreconf --force --install && intltoolize
+diff --git a/configure.ac b/configure.ac
+index be0b51a..a2e7c42 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,6 +17,7 @@ AC_PROG_OBJC # For macOS support modules
+ AC_LANG([C])
+
+ AC_PROG_INTLTOOL([0.50])
++AC_SUBST(LIBINTL)
+
+ AC_CANONICAL_HOST
+
+@@ -51,10 +52,6 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [
+ ])
+ AC_LANG_POP([Objective C])
+
+-# Checks for libraries.
+-AM_GNU_GETTEXT_VERSION([0.17])
+-AM_GNU_GETTEXT([external])
+-
+ GETTEXT_PACKAGE=redshift
+ AC_SUBST(GETTEXT_PACKAGE)
+ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
+--
+2.15.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix
new file mode 100644
index 000000000000..a450b2e3eb77
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/redshift/default.nix
@@ -0,0 +1,147 @@
+{ stdenv, fetchFromGitHub, fetchFromGitLab
+, autoconf, automake, gettext, intltool
+, libtool, pkgconfig, wrapGAppsHook, wrapPython, gobject-introspection
+, gtk3, python, pygobject3, pyxdg
+
+, withQuartz ? stdenv.isDarwin, ApplicationServices
+, withRandr ? stdenv.isLinux, libxcb
+, withDrm ? stdenv.isLinux, libdrm
+
+, withGeolocation ? true
+, withCoreLocation ? withGeolocation && stdenv.isDarwin, CoreLocation, Foundation, Cocoa
+, withGeoclue ? withGeolocation && stdenv.isLinux, geoclue
+, withAppIndicator ? true, libappindicator
+}:
+
+let
+ mkRedshift =
+ { pname, version, src, meta }:
+ stdenv.mkDerivation rec {
+ inherit pname version src meta;
+
+ patches = stdenv.lib.optionals (pname != "gammastep") [
+ # https://github.com/jonls/redshift/pull/575
+ ./575.patch
+ ];
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ gettext
+ intltool
+ libtool
+ pkgconfig
+ wrapGAppsHook
+ wrapPython
+ ];
+
+ configureFlags = [
+ "--enable-randr=${if withRandr then "yes" else "no"}"
+ "--enable-geoclue2=${if withGeoclue then "yes" else "no"}"
+ "--enable-drm=${if withDrm then "yes" else "no"}"
+ "--enable-quartz=${if withQuartz then "yes" else "no"}"
+ "--enable-corelocation=${if withCoreLocation then "yes" else "no"}"
+ ];
+
+ buildInputs = [
+ gobject-introspection
+ gtk3
+ python
+ ] ++ stdenv.lib.optional withRandr libxcb
+ ++ stdenv.lib.optional withGeoclue geoclue
+ ++ stdenv.lib.optional withDrm libdrm
+ ++ stdenv.lib.optional withQuartz ApplicationServices
+ ++ stdenv.lib.optionals withCoreLocation [ CoreLocation Foundation Cocoa ]
+ ++ stdenv.lib.optional withAppIndicator libappindicator
+ ;
+
+ pythonPath = [ pygobject3 pyxdg ];
+
+ preConfigure = "./bootstrap";
+
+ postFixup = "wrapPythonPrograms";
+
+ # the geoclue agent may inspect these paths and expect them to be
+ # valid without having the correct $PATH set
+ postInstall = if (pname == "gammastep") then ''
+ substituteInPlace $out/share/applications/gammastep.desktop \
+ --replace 'Exec=gammastep' "Exec=$out/bin/gammastep"
+ substituteInPlace $out/share/applications/gammastep-indicator.desktop \
+ --replace 'Exec=gammastep-indicator' "Exec=$out/bin/gammastep-indicator"
+ '' else ''
+ substituteInPlace $out/share/applications/redshift.desktop \
+ --replace 'Exec=redshift' "Exec=$out/bin/redshift"
+ substituteInPlace $out/share/applications/redshift-gtk.desktop \
+ --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk"
+ '';
+
+ enableParallelBuilding = true;
+ };
+in
+rec {
+ redshift = mkRedshift rec {
+ pname = "redshift";
+ version = "1.12";
+
+ src = fetchFromGitHub {
+ owner = "jonls";
+ repo = "redshift";
+ rev = "v${version}";
+ sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Screen color temperature manager";
+ longDescription = ''
+ Redshift adjusts the color temperature according to the position
+ of the sun. A different color temperature is set during night and
+ daytime. During twilight and early morning, the color temperature
+ transitions smoothly from night to daytime temperature to allow
+ your eyes to slowly adapt. At night the color temperature should
+ be set to match the lamps in your room.
+ '';
+ license = licenses.gpl3Plus;
+ homepage = "http://jonls.dk/redshift";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ yegortimoshenko globin ];
+ };
+ };
+
+ redshift-wlr = mkRedshift {
+ pname = "redshift-wlr";
+ # upstream rebases so this is the push date
+ version = "2019-08-24";
+
+ src = fetchFromGitHub {
+ owner = "minus7";
+ repo = "redshift";
+ rev = "7da875d34854a6a34612d5ce4bd8718c32bec804";
+ sha256 = "0rs9bxxrw4wscf4a8yl776a8g880m5gcm75q06yx2cn3lw2b7v22";
+ };
+
+ meta = redshift.meta // {
+ description = redshift.meta.description + "(with wlroots patches)";
+ homepage = "https://github.com/minus7/redshift";
+ };
+ };
+
+ gammastep = mkRedshift rec {
+ pname = "gammastep";
+ version = "2.0.5";
+
+ src = fetchFromGitLab {
+ owner = "chinstrap";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1l3x4gnichwzbb0529bhm723xpryn5svhhsfdiwlw122q1vmz2q7";
+ };
+
+ meta = redshift.meta // {
+ name = "${pname}-${version}";
+ longDescription = "Gammastep"
+ + stdenv.lib.removePrefix "Redshift" redshift.meta.longDescription;
+ homepage = "https://gitlab.com/chinstrap/gammastep";
+ maintainers = [ stdenv.lib.maintainers.primeos ] ++ redshift.meta.maintainers;
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/regextester/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/regextester/default.nix
new file mode 100644
index 000000000000..22f46eed7df4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/regextester/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, fetchFromGitHub
+, vala
+, gettext
+, libxml2
+, pkgconfig
+, glib
+, gtk3
+, gnome3
+, meson
+, ninja
+, gobject-introspection
+, gsettings-desktop-schemas
+, pantheon
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "regextester";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "artemanufrij";
+ repo = "regextester";
+ rev = version;
+ sha256 = "1xwwv1hccni1mrbl58f7ly4qfq6738vn24bcbl2q346633cd7kx3";
+ };
+
+ nativeBuildInputs = [
+ vala
+ gettext
+ gobject-introspection
+ libxml2
+ meson
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ pantheon.elementary-icon-theme
+ pantheon.granite
+ glib
+ gnome3.libgee
+ gsettings-desktop-schemas
+ gtk3
+ ];
+
+ postInstall = ''
+ ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A desktop application to test regular expressions interactively";
+ homepage = "https://github.com/artemanufrij/regextester";
+ maintainers = with maintainers; [ samdroid-apps ];
+ platforms = platforms.linux;
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
new file mode 100644
index 000000000000..8d668f7a38d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonApplication, fetchPypi, python3Packages }:
+
+buildPythonApplication rec {
+ pname = "remarkable-mouse";
+ version = "5.2.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0k2wjfcgnvb8yqn4c4ddfyyhrvl6hj61kn1ddnyp6ay9vklnw160";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ screeninfo paramiko pynput libevdev ];
+
+ meta = with stdenv.lib; {
+ description = "A program to use a reMarkable as a graphics tablet";
+ homepage = "https://github.com/evidlo/remarkable_mouse";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.nickhu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
new file mode 100644
index 000000000000..f159cd852e88
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "rmapi";
+ version = "0.0.12";
+
+ src = fetchFromGitHub {
+ owner = "juruen";
+ repo = "rmapi";
+ rev = "v${version}";
+ sha256 = "049m0p4wbsl822iym8xmc938d4k90iw7wjdzcxfyy8d27hv9mp45";
+ };
+
+ vendorSha256 = "077s13pcql5w2m6wzls1q06r7p501kazbwzxgfh6akwza15kb4is";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A Go app that allows access to the ReMarkable Cloud API programmatically";
+ homepage = "https://github.com/juruen/rmapi";
+ changelog = "https://github.com/juruen/rmapi/blob/v${version}/CHANGELOG.md";
+ license = licenses.agpl3;
+ maintainers = [ maintainers.nickhu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rescuetime/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rescuetime/default.nix
new file mode 100644
index 000000000000..fcdab3ddbc48
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rescuetime/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, lib, fetchurl, dpkg, patchelf, qt5, libXtst, libXext, libX11, mkDerivation, makeWrapper, libXScrnSaver, writeScript }:
+
+let
+ version = "2.16.4.2";
+ src =
+ if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
+ name = "rescuetime-installer.deb";
+ url = "https://www.rescuetime.com/installers/rescuetime_${version}_i386.deb";
+ sha256 = "0zyal9n3rfj8i13v1q25inq6qyil7897483cdhqvwpb8wskrij4c";
+ } else fetchurl {
+ name = "rescuetime-installer.deb";
+ url = "https://www.rescuetime.com/installers/rescuetime_${version}_amd64.deb";
+ sha256 = "03bmnkxhip1wilnfqs8akmy1hppahxrmnm8gasnmw5s922vn06cv";
+ };
+in mkDerivation {
+ # https://www.rescuetime.com/updates/linux_release_notes.html
+ inherit version;
+ pname = "rescuetime";
+ inherit src;
+ nativeBuildInputs = [ dpkg ];
+ # avoid https://github.com/NixOS/patchelf/issues/99
+ dontStrip = true;
+ unpackPhase = ''
+ mkdir pkg
+ dpkg-deb -x $src pkg
+ sourceRoot=pkg
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ cp usr/bin/rescuetime $out/bin
+
+ ${patchelf}/bin/patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${lib.makeLibraryPath [ qt5.qtbase libXtst libXext libX11 libXScrnSaver ]}" \
+ $out/bin/rescuetime
+ '';
+
+ passthru.updateScript = writeScript "rescuetime-updater" ''
+ #!/usr/bin/env nix-shell
+ #!nix-shell -i bash -p curl pup common-updater-scripts
+ set -eu -o pipefail
+ latestVersion="$(curl -sS https://www.rescuetime.com/release-notes/linux | pup '.release:first-of-type h2 strong text{}' | tr -d '\n')"
+ update-source-version rescuetime "$latestVersion"
+ '';
+
+ meta = with lib; {
+ description = "Helps you understand your daily habits so you can focus and be more productive";
+ homepage = "https://www.rescuetime.com";
+ maintainers = with maintainers; [ cstrahan ];
+ license = licenses.unfree;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/robo3t/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/robo3t/default.nix
new file mode 100644
index 000000000000..d1e31b4077f4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/robo3t/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig, libGL,
+ freetype, xkeyboard_config, makeDesktopItem, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "robo3t";
+ version = "1.3.1";
+ rev = "7419c406";
+
+ src = fetchurl {
+ url = "https://download-test.robomongo.org/linux/robo3t-${version}-linux-x86_64-${rev}.tar.gz";
+ sha256 = "1mp5i8iahd4qkwgi5ix98hlg17ivw5da27n0drnr0wk458wn99hi";
+ };
+
+ icon = fetchurl {
+ url = "https://github.com/Studio3T/robomongo/raw/${version}/trash/install/linux/robomongo.png";
+ sha256 = "15li8536x600kkfkb3h6mw7y0f2ljkv951pc45dpiw036vldibv2";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "robo3t";
+ exec = "robo3t";
+ icon = icon;
+ comment = "Query GUI for mongodb";
+ desktopName = "Robo3T";
+ genericName = "MongoDB management tool";
+ categories = "Development;IDE;";
+ };
+
+ nativeBuildInputs = [makeWrapper];
+
+ ldLibraryPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc
+ zlib
+ glib
+ xorg.libXi
+ xorg.libxcb
+ xorg.libXrender
+ xorg.libX11
+ xorg.libSM
+ xorg.libICE
+ xorg.libXext
+ dbus
+ fontconfig
+ freetype
+ libGL
+ ];
+
+ installPhase = ''
+ BASEDIR=$out/lib/robo3t
+
+ mkdir -p $BASEDIR/bin
+ cp bin/* $BASEDIR/bin
+
+ mkdir -p $BASEDIR/lib
+ cp -r lib/* $BASEDIR/lib
+
+ mkdir -p $out/share/applications
+ cp $desktopItem/share/applications/* $out/share/applications
+
+ mkdir -p $out/share/icons
+ cp ${icon} $out/share/icons/robomongo.png
+
+ patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $BASEDIR/bin/robo3t
+
+ mkdir $out/bin
+
+ makeWrapper $BASEDIR/bin/robo3t $out/bin/robo3t \
+ --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \
+ --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb
+ '';
+
+ meta = {
+ homepage = "https://robomongo.org/";
+ description = "Query GUI for mongodb";
+ platforms = [ "x86_64-linux" ];
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.eperuffo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/robomongo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/robomongo/default.nix
new file mode 100644
index 000000000000..ef0a30472974
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/robomongo/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig,
+ freetype, xkeyboard_config, makeDesktopItem, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "robomongo";
+ version = "0.9.0";
+
+ src = fetchurl {
+ url = "https://download.robomongo.org/${version}/linux/robomongo-${version}-linux-x86_64-0786489.tar.gz";
+ sha256 = "1q8ahdz3afcw002p8dl2pybzkq4srk6bnikrz216yx1gswivdcad";
+ };
+
+ icon = fetchurl {
+ url = "https://github.com/Studio3T/robomongo/raw/${version}/trash/install/linux/robomongo.png";
+ sha256 = "15li8536x600kkfkb3h6mw7y0f2ljkv951pc45dpiw036vldibv2";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "robomongo";
+ exec = "robomongo";
+ icon = icon;
+ comment = "Query GUI for mongodb";
+ desktopName = "Robomongo";
+ genericName = "MongoDB management tool";
+ categories = "Development;IDE;mongodb;";
+ };
+
+ nativeBuildInputs = [makeWrapper];
+
+ ldLibraryPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc
+ zlib
+ glib
+ xorg.libXi
+ xorg.libxcb
+ xorg.libXrender
+ xorg.libX11
+ xorg.libSM
+ xorg.libICE
+ xorg.libXext
+ dbus
+ fontconfig
+ freetype
+ ];
+
+ installPhase = ''
+ BASEDIR=$out/lib/robomongo
+
+ mkdir -p $BASEDIR/bin
+ cp bin/* $BASEDIR/bin
+
+ mkdir -p $BASEDIR/lib
+ cp -r lib/* $BASEDIR/lib
+
+ mkdir -p $out/share/applications
+ cp $desktopItem/share/applications/* $out/share/applications
+
+ mkdir -p $out/share/icons
+ cp ${icon} $out/share/icons/robomongo.png
+
+ patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $BASEDIR/bin/robomongo
+
+ mkdir $out/bin
+
+ makeWrapper $BASEDIR/bin/robomongo $out/bin/robomongo \
+ --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \
+ --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb
+ '';
+
+ meta = {
+ homepage = "https://robomongo.org/";
+ description = "Query GUI for mongodb";
+ platforms = stdenv.lib.intersectLists stdenv.lib.platforms.linux stdenv.lib.platforms.x86_64;
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.eperuffo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch
new file mode 100644
index 000000000000..9b9479b1b49a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch
@@ -0,0 +1,25 @@
+From 695e7a441fc28b874e65917fe2c0059b5b8ca749 Mon Sep 17 00:00:00 2001
+From: Cole Helbling <cole.e.helbling@outlook.com>
+Date: Sat, 28 Mar 2020 23:46:03 -0700
+Subject: [PATCH] Patch plugindir to output
+
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 75e476f..cb1ddf7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,7 +55,7 @@ PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.40 gio-unix-2.0 gmodule-2.0 ])
+ PKG_CHECK_MODULES([cairo], [cairo])
+ PKG_CHECK_MODULES([rofi], [rofi])
+
+-[rofi_PLUGIN_INSTALL_DIR]="`$PKG_CONFIG --variable=pluginsdir rofi`"
++[rofi_PLUGIN_INSTALL_DIR]="`echo $out/lib/rofi`"
+ AC_SUBST([rofi_PLUGIN_INSTALL_DIR])
+
+ LT_INIT([disable-static])
+--
+2.25.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-emoji/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-emoji/default.nix
new file mode 100644
index 000000000000..14742da35dae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-emoji/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchpatch
+, substituteAll
+, makeWrapper
+
+, autoreconfHook
+, pkgconfig
+
+, cairo
+, glib
+, libnotify
+, rofi-unwrapped
+, wl-clipboard
+, xclip
+, xsel
+}:
+
+stdenv.mkDerivation rec {
+ pname = "rofi-emoji";
+ version = "2.1.2";
+
+ src = fetchFromGitHub {
+ owner = "Mange";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0knsvsdff2c7ww94120bq92735qrfriyd28mi0n72ccb2iikyi8b";
+ };
+
+ patches = [
+ # Look for plugin-related files in $out/lib/rofi
+ ./0001-Patch-plugindir-to-output.patch
+ ];
+
+ postPatch = ''
+ patchShebangs clipboard-adapter.sh
+ '';
+
+ postFixup = ''
+ chmod +x $out/share/rofi-emoji/clipboard-adapter.sh
+ wrapProgram $out/share/rofi-emoji/clipboard-adapter.sh \
+ --prefix PATH ":" ${lib.makeBinPath [ libnotify wl-clipboard xclip xsel ]}
+ '';
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ ];
+
+ buildInputs = [
+ cairo
+ glib
+ libnotify
+ makeWrapper
+ rofi-unwrapped
+ wl-clipboard
+ xclip
+ xsel
+ ];
+
+ meta = with lib; {
+ description = "An emoji selector plugin for Rofi";
+ homepage = "https://github.com/Mange/rofi-emoji";
+ license = licenses.mit;
+ maintainers = with maintainers; [ cole-h ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-file-browser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-file-browser/default.nix
new file mode 100644
index 000000000000..10453b858491
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-file-browser/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, rofi, gtk3 }:
+
+stdenv.mkDerivation rec {
+ pname = "rofi-file-browser-extended";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "marvinkreis";
+ repo = pname;
+ rev = version;
+ sha256 = "10wk5sif3bmvsgyk2gdy0qhpv1b37zgzf89n3h0yh7pg195fi2gn";
+ fetchSubmodules = true;
+ };
+
+ prePatch = ''
+ substituteInPlace ./CMakeLists.txt \
+ --replace ' ''${ROFI_PLUGINS_DIR}' " $out/lib/rofi" \
+ --replace "/usr/share/" "$out/share/"
+ '';
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ rofi gtk3 ];
+
+ ROFI_PLUGINS_DIR = "$out/lib/rofi";
+
+ dontUseCmakeBuildDir = true;
+
+ meta = with stdenv.lib; {
+ description = "Use rofi to quickly open files";
+ homepage = "https://github.com/marvinkreis/rofi-file-browser-extended";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jluttine ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix
new file mode 100644
index 000000000000..088ec29ae37b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rofi, gnused }:
+
+stdenv.mkDerivation rec {
+ rev = "168efd2608fdb88b1aff3e0244bda8402169f207";
+ name = "rofi-menugen-2015-12-28-${builtins.substring 0 7 rev}";
+ src = fetchFromGitHub {
+ owner = "octotep";
+ repo = "menugen";
+ inherit rev;
+ sha256 = "09fk9i6crw772qlc5zld35pcff1jq4jcag0syial2q000fbpjx5m";
+ };
+ patchPhase = ''
+ sed -i -e "s|menugenbase|$out/bin/rofi-menugenbase|" menugen
+ sed -i -e "s|rofi |${rofi}/bin/rofi |" menugen
+ sed -i -e "s|sed |${gnused}/bin/sed |" menugenbase
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ cp menugen $out/bin/rofi-menugen
+ cp menugenbase $out/bin/rofi-menugenbase
+ '';
+ meta = with stdenv.lib; {
+ description = "Generates menu based applications using rofi";
+ homepage = "https://github.com/octotep/menugen";
+ maintainers = with maintainers; [ ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi/default.nix
new file mode 100644
index 000000000000..6ee2cb8c3495
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchurl
+, autoreconfHook, pkgconfig, libxkbcommon, pango, which, git
+, cairo, libxcb, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification
+, bison, flex, librsvg, check
+}:
+
+stdenv.mkDerivation rec {
+ pname = "rofi-unwrapped";
+ version = "1.6.1";
+
+ src = fetchurl {
+ url = "https://github.com/davatorium/rofi/releases/download/${version}/rofi-${version}.tar.gz";
+ sha256 = "04glljqbf9ckkc6x6fv4x1gqmy468n1agya0kd8rxdvz24wzf7cd";
+ };
+
+ preConfigure = ''
+ patchShebangs "script"
+ # root not present in build /etc/passwd
+ sed -i 's/~root/~nobody/g' test/helper-expand.c
+ '';
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libxkbcommon pango cairo git bison flex librsvg check
+ libstartup_notification libxcb xcbutil xcbutilwm xcbutilxrm which
+ ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Window switcher, run dialog and dmenu replacement";
+ homepage = "https://github.com/davatorium/rofi";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mbakke ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix
new file mode 100644
index 000000000000..4e69f9cce145
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix
@@ -0,0 +1,33 @@
+{ symlinkJoin, lib, rofi-unwrapped, makeWrapper, hicolor-icon-theme, theme ? null, plugins ? [] }:
+
+symlinkJoin {
+ name = "rofi-${rofi-unwrapped.version}";
+
+ paths = [
+ rofi-unwrapped.out
+ ] ++ (lib.forEach plugins (p: p.out));
+
+ buildInputs = [ makeWrapper ];
+ preferLocalBuild = true;
+ passthru.unwrapped = rofi-unwrapped;
+ postBuild = ''
+ rm -rf $out/bin
+ mkdir $out/bin
+ ln -s ${rofi-unwrapped}/bin/* $out/bin
+
+ rm $out/bin/rofi
+ makeWrapper ${rofi-unwrapped}/bin/rofi $out/bin/rofi \
+ --prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share \
+ ${lib.optionalString (plugins != []) ''--prefix XDG_DATA_DIRS : ${lib.concatStringsSep ":" (lib.forEach plugins (p: "${p.out}/share"))}''} \
+ ${lib.optionalString (theme != null) ''--add-flags "-theme ${theme}"''} \
+ ${lib.optionalString (plugins != []) ''--add-flags "-plugin-path $out/lib/rofi"''}
+
+ rm $out/bin/rofi-theme-selector
+ makeWrapper ${rofi-unwrapped}/bin/rofi-theme-selector $out/bin/rofi-theme-selector \
+ --prefix XDG_DATA_DIRS : $out/share
+ '';
+
+ meta = rofi-unwrapped.meta // {
+ priority = (rofi-unwrapped.meta.priority or 0) - 1;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rofimoji/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofimoji/default.nix
new file mode 100644
index 000000000000..b76b1d6d21ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rofimoji/default.nix
@@ -0,0 +1,45 @@
+{ buildPythonApplication
+, fetchFromGitHub
+, lib
+
+, waylandSupport ? true
+, x11Support ? true
+
+, ConfigArgParse
+, pyxdg
+, rofi
+, wl-clipboard
+, wtype
+, xdotool
+, xsel
+}:
+
+buildPythonApplication rec {
+ pname = "rofimoji";
+ version = "4.3.0";
+
+ src = fetchFromGitHub {
+ owner = "fdw";
+ repo = "rofimoji";
+ rev = version;
+ sha256 = "08ayndpifr04njpijc5n5ii5nvibfpab39p6ngyyj0pb43792a8j";
+ };
+
+ # `rofi` and the `waylandSupport` and `x11Support` dependencies
+ # contain binaries needed at runtime.
+ propagatedBuildInputs = with lib; [ ConfigArgParse pyxdg rofi ]
+ ++ optionals waylandSupport [ wl-clipboard wtype ]
+ ++ optionals x11Support [ xdotool xsel ];
+
+ # The 'extractors' sub-module is used for development
+ # and has additional dependencies.
+ postPatch = "rm -rf extractors";
+
+ meta = with lib; {
+ description = "A simple emoji and character picker for rofi";
+ homepage = "https://github.com/fdw/rofimoji";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ justinlovinger ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rsclock/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rsclock/default.nix
new file mode 100644
index 000000000000..e1ae63e09fd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rsclock/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "rsClock";
+ version = "0.1.4";
+
+ src = fetchFromGitHub {
+ owner = "valebes";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1i93qkz6d8sbk78i4rvx099hnn4lklp4cjvanpm9ssv8na4rqvh2";
+ };
+
+ cargoSha256 = "01dhkis6zswq1y40n7sdq9xv1sp61f2v7nfqbkicyjngmdrmcgrl";
+
+ meta = with stdenv.lib; {
+ description = "A simple terminal clock written in Rust";
+ homepage = "https://github.com/valebes/rsClock";
+ license = licenses.mit;
+ maintainers = with maintainers; [valebes];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rsibreak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
new file mode 100644
index 000000000000..9f765793dc9a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
@@ -0,0 +1,28 @@
+{
+ mkDerivation, fetchurl, lib,
+ extra-cmake-modules, kdoctools,
+ knotifyconfig, kidletime, kwindowsystem, ktextwidgets, kcrash
+}:
+
+let
+ pname = "rsibreak";
+ version = "0.12";
+ revision = ".13";
+in mkDerivation rec {
+ name = "rsibreak-${version}${revision}";
+
+ src = fetchurl {
+ url = "https://download.kde.org/stable/${pname}/${version}/${name}.tar.xz";
+ sha256 = "N0C+f788fq5yotSC54H2K4WDc6PnGi8Nh/vXL4v0fxo=";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedBuildInputs = [ knotifyconfig kidletime kwindowsystem ktextwidgets kcrash ];
+
+ meta = with lib; {
+ description = "Takes care of your health and regularly breaks your work to avoid repetitive strain injury (RSI)";
+ license = licenses.gpl2;
+ homepage = "https://www.kde.org/applications/utilities/rsibreak/";
+ maintainers = with maintainers; [ vandenoever ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix
new file mode 100644
index 000000000000..f481f0953f81
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, writeShellScriptBin, rss-bridge, php }:
+
+let
+ phpWithExts = (php.withExtensions
+ ({ all, ... }: with all; [
+ curl
+ filter
+ iconv
+ json
+ mbstring
+ openssl
+ simplexml
+ sqlite3
+ ])
+ );
+ phpBin = "${phpWithExts}/bin/php";
+in (writeShellScriptBin "rss-bridge-cli" ''
+ ${phpBin} ${rss-bridge}/index.php "$@"
+'').overrideAttrs (oldAttrs: rec {
+ version = rss-bridge.version;
+
+ meta = with stdenv.lib; {
+ description = "Command-line interface for RSS-Bridge";
+ homepage = "https://github.com/RSS-Bridge/rss-bridge";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ ymeister ];
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/rtv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/rtv/default.nix
new file mode 100644
index 000000000000..c4547e875130
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/rtv/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+with python3Packages;
+buildPythonApplication rec {
+ version = "1.27.0";
+ pname = "rtv";
+
+ src = fetchFromGitHub {
+ owner = "michael-lazar";
+ repo = "rtv";
+ rev = "v${version}";
+ sha256 = "1hw7xy2kjxq7y3wcibcz4l7zj8icvigialqr17l362xry0y17y5j";
+ };
+
+ # Tests try to access network
+ doCheck = false;
+
+ checkPhase = ''
+ py.test
+ '';
+
+ checkInputs = [
+ coverage
+ coveralls
+ docopt
+ mock
+ pylint
+ pytest
+ vcrpy
+ ];
+
+ propagatedBuildInputs = [
+ beautifulsoup4
+ decorator
+ kitchen
+ requests
+ six
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/michael-lazar/rtv";
+ description = "Browse Reddit from your Terminal";
+ license = licenses.mit;
+ maintainers = with maintainers; [ matthiasbeyer wedens ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/safeeyes/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/safeeyes/default.nix
new file mode 100644
index 000000000000..f6bb7133d999
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/safeeyes/default.nix
@@ -0,0 +1,70 @@
+{ lib, python3Packages, gobject-introspection, libappindicator-gtk3, libnotify, gtk3, gnome3, xprintidle-ng, wrapGAppsHook, gdk-pixbuf, shared-mime-info, librsvg
+}:
+
+let inherit (python3Packages) python buildPythonApplication fetchPypi;
+
+in buildPythonApplication rec {
+ pname = "safeeyes";
+ version = "2.0.9";
+ namePrefix = "";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "13q06jv8hm0dynmr3g5pf1m4j3w9iabrpz1nhpl02f7x0d90whg2";
+ };
+
+ buildInputs = [
+ gtk3
+ gobject-introspection
+ gnome3.adwaita-icon-theme
+ gnome3.adwaita-icon-theme
+ ];
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ Babel
+ psutil
+ xlib
+ pygobject3
+ dbus-python
+
+ libappindicator-gtk3
+ libnotify
+ xprintidle-ng
+ ];
+
+ # patch smartpause plugin
+ postPatch = ''
+ sed -i \
+ -e 's!xprintidle!xprintidle-ng!g' \
+ safeeyes/plugins/smartpause/plugin.py
+
+ sed -i \
+ -e 's!xprintidle!xprintidle-ng!g' \
+ safeeyes/plugins/smartpause/config.json
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
+ --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+ --prefix XDG_DATA_DIRS : "${librsvg}/share"
+
+ # safeeyes images
+ --prefix XDG_DATA_DIRS : "$out/lib/${python.libPrefix}/site-packages/usr/share"
+ )
+ '';
+
+ doCheck = false; # no tests
+
+ meta = {
+ homepage = "http://slgobinath.github.io/SafeEyes";
+ description = "Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder. A Free and Open Source Linux alternative to EyeLeo";
+ license = lib.licenses.gpl3;
+ maintainers = with lib.maintainers; [ srghma ];
+ platforms = lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sampler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sampler/default.nix
new file mode 100644
index 000000000000..b68a3a98e34c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sampler/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub, alsaLib }:
+
+buildGoModule rec {
+ pname = "sampler";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "sqshq";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1lanighxhnn28dfzils7i55zgxbw2abd6y723mq7x9wg1aa2bd0z";
+ };
+
+ vendorSha256 = "04nywhkil5xkipcibrp6vi63rfcvqgv7yxbxmmrhqys2cdxfvazv";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ buildInputs = [ alsaLib ];
+
+ meta = with lib; {
+ description = "Tool for shell commands execution, visualization and alerting";
+ homepage = "https://sampler.dev";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ uvnikita ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sbagen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sbagen/default.nix
new file mode 100644
index 000000000000..d7d7dd3ab707
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sbagen/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "sbagen-1.4.4";
+
+ src = fetchurl {
+ url = "https://uazu.net/sbagen/${name}.tgz";
+ sha256 = "0w62yk1b0hq79kl0angma897yqa8p1ww0dwydf3zlwav333prkd2";
+ };
+
+ postPatch = ''
+ patchShebangs ./mk
+ '';
+
+ buildPhase = "./mk";
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/sbagen/doc}
+ cp -r --target-directory=$out/share/sbagen examples scripts river1.ogg river2.ogg
+ cp sbagen $out/bin
+ cp --target-directory=$out/share/sbagen/doc README.txt SBAGEN.txt theory{,2}.txt {wave,holosync,focus,TODO}.txt
+ '';
+
+ meta = {
+ description = "Binaural sound generator";
+ homepage = "http://uazu.net/sbagen";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = [ "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sc-im/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sc-im/default.nix
new file mode 100644
index 000000000000..6ee4695d1717
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sc-im/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, yacc, ncurses, libxml2, libzip, libxls, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ version = "0.7.0";
+ pname = "sc-im";
+
+ src = fetchFromGitHub {
+ owner = "andmarti1424";
+ repo = "sc-im";
+ rev = "v${version}";
+ sha256 = "0xi0n9qzby012y2j7hg4fgcwyly698sfi4i9gkvy0q682jihprbk";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ yacc ncurses libxml2 libzip libxls ];
+
+ buildPhase = ''
+ cd src
+
+ sed 's/LDLIBS += -lm/& -lncurses/' -i Makefile
+
+ sed -e "\|^prefix = /usr/local| s|/usr/local|$out|" \
+ -e "\|^#LDLIBS += -lxlsreader| s|^#|| " \
+ -e "\|^#CFLAGS += -DXLS| s|^#|| " \
+ -i Makefile
+
+ make
+ export DESTDIR=$out
+ '';
+
+ installPhase = ''
+ make install prefix=
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/andmarti1424/sc-im";
+ description = "SC-IM - Spreadsheet Calculator Improvised - SC fork";
+ license = licenses.bsdOriginal;
+ maintainers = [ ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sdcv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sdcv/default.nix
new file mode 100644
index 000000000000..d220047a0a3b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sdcv/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, glib, gettext, readline }:
+
+stdenv.mkDerivation rec {
+ pname = "sdcv";
+ version = "0.5.3";
+
+ src = fetchFromGitHub {
+ owner = "Dushistov";
+ repo = "sdcv";
+ rev = "v${version}";
+ sha256 = "144qpl9b8r2php0zhi9b7vg6flpvdgjy6yfaipydwwhxi4wy9600";
+ };
+
+ hardeningDisable = [ "format" ];
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ glib gettext readline ];
+
+ preInstall = ''
+ mkdir locale
+ '';
+
+ NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__";
+
+ meta = with stdenv.lib; {
+ homepage = "https://dushistov.github.io/sdcv/";
+ description = "Console version of StarDict";
+ maintainers = with maintainers; [ lovek323 ];
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sent/default.nix
new file mode 100644
index 000000000000..fe8598e49157
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sent/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, farbfeld, libX11, libXft, makeWrapper
+, patches ? [] }:
+
+stdenv.mkDerivation rec {
+ name = "sent-1";
+
+ src = fetchurl {
+ url = "https://dl.suckless.org/tools/${name}.tar.gz";
+ sha256 = "0cxysz5lp25mgww73jl0mgip68x7iyvialyzdbriyaff269xxwvv";
+ };
+
+ buildInputs = [ libX11 libXft ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ # unpacking doesn't create a directory
+ sourceRoot = ".";
+
+ inherit patches;
+
+ installFlags = [ "PREFIX=$(out)" ];
+ postInstall = ''
+ wrapProgram "$out/bin/sent" --prefix PATH : "${farbfeld}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple plaintext presentation tool";
+ homepage = "https://tools.suckless.org/sent/";
+ license = licenses.isc;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sequeler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sequeler/default.nix
new file mode 100644
index 000000000000..d19621761407
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sequeler/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, nix-update-script
+, vala, meson, ninja, pkgconfig, pantheon, gettext, wrapGAppsHook, python3, desktop-file-utils
+, gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libssh2 }:
+
+
+let
+ sqlGda = libgda.override {
+ mysqlSupport = true;
+ postgresSupport = true;
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "sequeler";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "Alecaddd";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "090plqnby2wxzr1waq5kz89w3269j363mgxwfz9g7qg55lddaahz";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ];
+
+ buildInputs = [ gtk3 glib pantheon.granite libgee sqlGda gtksourceview libxml2 libsecret libssh2 ];
+
+ postPatch = ''
+ chmod +x build-aux/meson_post_install.py
+ patchShebangs build-aux/meson_post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Friendly SQL Client";
+ longDescription = ''
+ Sequeler is a native Linux SQL client built in Vala and Gtk. It allows you
+ to connect to your local and remote databases, write SQL in a handy text
+ editor with language recognition, and visualize SELECT results in a
+ Gtk.Grid Widget.
+ '';
+ homepage = "https://github.com/Alecaddd/sequeler";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.etu ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sequelpro/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sequelpro/default.nix
new file mode 100644
index 000000000000..16a11342d812
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sequelpro/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, undmg }:
+
+stdenv.mkDerivation {
+ pname = "sequel-pro";
+ version = "1.1.2";
+
+ src = fetchurl {
+ url = "https://github.com/sequelpro/sequelpro/releases/download/release-1.1.2/sequel-pro-1.1.2.dmg";
+ sha256 = "1il7yc3f0yzxkra27bslnmka5ycxzx0q4m3xz2j9r7iyq5izsd3v";
+ };
+
+ buildInputs = [ undmg ];
+ installPhase = ''
+ mkdir -p "$out/Applications/Sequel Pro.app"
+ cp -R . "$out/Applications/Sequel Pro.app"
+ chmod +x "$out/Applications/Sequel Pro.app/Contents/MacOS/Sequel Pro"
+ '';
+
+ meta = {
+ description = "MySQL database management for macOS";
+ homepage = "http://www.sequelpro.com/";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sidequest/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sidequest/default.nix
new file mode 100644
index 000000000000..883b3eec03db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sidequest/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, lib, fetchurl, buildFHSUserEnv, makeDesktopItem, makeWrapper, atomEnv, libuuid, at-spi2-atk, icu, openssl, zlib }:
+ let
+ pname = "sidequest";
+ version = "0.10.11";
+
+ desktopItem = makeDesktopItem rec {
+ name = "SideQuest";
+ exec = "SideQuest";
+ desktopName = name;
+ genericName = "VR App Store";
+ categories = "Settings;PackageManager;";
+ };
+
+ sidequest = stdenv.mkDerivation {
+ inherit pname version;
+
+ src = fetchurl {
+ url = "https://github.com/the-expanse/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
+ sha256 = "0fw952kdh1gn00y6sx2ag0rnb2paxq9ikg4bzgmbj7rrd1c6l2k9";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ mkdir -p "$out/lib/SideQuest" "$out/bin"
+ tar -xJf "$src" -C "$out/lib/SideQuest" --strip-components 1
+
+ ln -s "$out/lib/SideQuest/sidequest" "$out/bin"
+
+ fixupPhase
+
+ # mkdir -p "$out/share/applications"
+ # ln -s "${desktopItem}/share/applications/*" "$out/share/applications"
+
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${atomEnv.libPath}/lib:${lib.makeLibraryPath [libuuid at-spi2-atk]}:$out/lib/SideQuest" \
+ "$out/lib/SideQuest/sidequest"
+ '';
+ };
+ in buildFHSUserEnv {
+ name = "SideQuest";
+
+ passthru = {
+ inherit pname version;
+
+ meta = with stdenv.lib; {
+ description = "An open app store and side-loading tool for Android-based VR devices such as the Oculus Go, Oculus Quest or Moverio BT 300";
+ homepage = "https://github.com/the-expanse/SideQuest";
+ downloadPage = "https://github.com/the-expanse/SideQuest/releases";
+ license = licenses.mit;
+ maintainers = with maintainers; [ joepie91 rvolosatovs ];
+ platforms = [ "x86_64-linux" ];
+ };
+ };
+
+ targetPkgs = pkgs: [
+ sidequest
+ # Needed in the environment on runtime, to make QuestSaberPatch work
+ icu openssl zlib
+ ];
+
+ extraInstallCommands = ''
+ mkdir -p "$out/share/applications"
+ ln -s ${desktopItem}/share/applications/* "$out/share/applications"
+ '';
+
+ runScript = "sidequest";
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sigal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sigal/default.nix
new file mode 100644
index 000000000000..f2333aa99420
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sigal/default.nix
@@ -0,0 +1,38 @@
+{ lib, python3Packages, ffmpeg_3 }:
+
+python3Packages.buildPythonApplication rec {
+ version = "2.1.1";
+ pname = "sigal";
+
+ src = python3Packages.fetchPypi {
+ inherit version pname;
+ sha256 = "0l07p457svznirz7qllgyl3qbhiisv7klhz7cbdw6417hxf9bih8";
+ };
+
+ disabled = !(python3Packages.pythonAtLeast "3.6");
+
+ checkInputs = with python3Packages; [ pytest ];
+ propagatedBuildInputs = with python3Packages; [
+ jinja2
+ markdown
+ pillow
+ pilkit
+ clint
+ click
+ blinker
+ natsort
+ setuptools_scm
+ ];
+
+ makeWrapperArgs = [ "--prefix PATH : ${ffmpeg_3}/bin" ];
+
+ # No tests included
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Yet another simple static gallery generator";
+ homepage = "http://sigal.saimon.org/en/latest/index.html";
+ license = licenses.mit;
+ maintainers = with maintainers; [ domenkozar matthiasbeyer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/simplenote/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/simplenote/default.nix
new file mode 100644
index 000000000000..fa0a47fdcb5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/simplenote/default.nix
@@ -0,0 +1,97 @@
+{ atomEnv
+, autoPatchelfHook
+, dpkg
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, lib
+, stdenv
+, udev
+, wrapGAppsHook
+}:
+
+let
+ inherit (stdenv.hostPlatform) system;
+
+ throwSystem = throw "Unsupported system: ${system}";
+
+ pname = "simplenote";
+
+ version = "2.2.0";
+
+ sha256 = {
+ x86_64-linux = "123b0fh14068s2z3k6s5mmh46xwlz02qfnpmj838zlm5hckjmifv";
+ }.${system} or throwSystem;
+
+ meta = with stdenv.lib; {
+ description = "The simplest way to keep notes";
+ homepage = "https://github.com/Automattic/simplenote-electron";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [
+ kiwi
+ ];
+ platforms = [
+ "x86_64-linux"
+ ];
+ };
+
+ linux = stdenv.mkDerivation rec {
+ inherit pname version meta;
+
+ src = fetchurl {
+ url =
+ "https://github.com/Automattic/simplenote-electron/releases/download/"
+ + "v${version}/Simplenote-linux-${version}-amd64.deb";
+ inherit sha256;
+ };
+
+ desktopItem = makeDesktopItem {
+ categories = "Development";
+ comment = "Simplenote for Linux";
+ desktopName = "Simplenote";
+ exec = "simplenote %U";
+ icon = "simplenote";
+ name = "simplenote";
+ startupNotify = "true";
+ type = "Application";
+ };
+
+ dontBuild = true;
+ dontConfigure = true;
+ dontPatchELF = true;
+ dontWrapGApps = true;
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ dpkg
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ buildInputs = atomEnv.packages;
+
+ unpackPhase = "dpkg-deb -x $src .";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp -R "opt" "$out"
+ cp -R "usr/share" "$out/share"
+ chmod -R g-w "$out"
+
+ mkdir -p "$out/share/applications"
+ cp "${desktopItem}/share/applications/"* "$out/share/applications"
+ '';
+
+ runtimeDependencies = [
+ (lib.getLib udev)
+ ];
+
+ postFixup = ''
+ makeWrapper $out/opt/Simplenote/simplenote $out/bin/simplenote \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ] }" \
+ "''${gappsWrapperArgs[@]}"
+ '';
+ };
+
+in
+linux
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix
new file mode 100644
index 000000000000..a8a0bfb1e10a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, pillow
+, pyside2
+, numpy
+, pyphotonfile
+, shiboken2
+, which
+}:
+let
+ version = "0.1.3";
+in
+ buildPythonApplication rec {
+ pname = "sl1-to-photon";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "fookatchu";
+ repo = "SL1toPhoton";
+ rev = "v${version}";
+ sha256 = "1hmb74rcky3nax4lxn7pw6lcd5a66fdbwrm11c84zb31xb51bakw";
+ };
+
+ propagatedBuildInputs = [ pyphotonfile pillow numpy pyside2 shiboken2 ];
+
+ format = "other";
+
+ installPhase = ''
+ install -D -m 0755 SL1_to_Photon.py $out/bin/${pname}
+ sed -i '1i#!/usr/bin/env python' $out/bin/${pname}
+ '';
+
+ meta = with lib; {
+ maintainers = [ maintainers.cab404 ];
+ license = licenses.gpl3Plus;
+ description = "Tool for converting Slic3r PE's SL1 files to Photon files for the Anycubic Photon 3D-Printer";
+ homepage = "https://github.com/fookatchu/SL1toPhoton";
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/slade/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/slade/default.nix
new file mode 100644
index 000000000000..e93baa997c86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/slade/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, wxGTK, gtk2, sfml, fluidsynth, curl, freeimage, ftgl, glew, zip }:
+
+stdenv.mkDerivation rec {
+ pname = "slade";
+ version = "3.1.1.5";
+
+ src = fetchFromGitHub {
+ owner = "sirjuddington";
+ repo = "SLADE";
+ rev = version;
+ sha256 = "0mdn59jm6ab4cdh99bgvadif3wdlqmk5mq635gg7krq35njgw6f6";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig zip ];
+ buildInputs = [ wxGTK gtk2 sfml fluidsynth curl freeimage ftgl glew ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Doom editor";
+ homepage = "http://slade.mancubus.net/";
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/slade/git.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/slade/git.nix
new file mode 100644
index 000000000000..1eaf907b7edf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/slade/git.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, wxGTK, gtk2, sfml, fluidsynth, curl, freeimage, ftgl, glew, zip }:
+
+stdenv.mkDerivation {
+ name = "slade-git-3.1.2.2018.01.29";
+
+ src = fetchFromGitHub {
+ owner = "sirjuddington";
+ repo = "SLADE";
+ rev = "f7409c504b40c4962f419038db934c32688ddd2e";
+ sha256 = "14icxiy0r9rlcc10skqs1ylnxm1f0f3irhzfmx4sazq0pjv5ivld";
+ };
+
+ cmakeFlags = ["-DNO_WEBVIEW=1"];
+ nativeBuildInputs = [ cmake pkgconfig zip ];
+ buildInputs = [ wxGTK gtk2 sfml fluidsynth curl freeimage ftgl glew ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Doom editor";
+ homepage = "http://slade.mancubus.net/";
+ license = licenses.gpl2Plus;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = with maintainers; [ ertes ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix
new file mode 100644
index 000000000000..17c5ec9be265
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, mkDerivation, fetchgit, zlib, libGLU, libX11, qtbase, qtwebkit, qtserialport, wrapQtAppsHook }:
+
+let
+ name = "sleepyhead-${version}";
+ version = "1.0.0-beta-git";
+in mkDerivation {
+ inherit name;
+
+ src = fetchgit {
+ url = "https://gitlab.com/sleepyhead/sleepyhead-code.git";
+ rev = "9e2329d8bca45693231b5e3dae80063717c24578";
+ sha256 = "0448z8gyaxpgpnksg34lzmffj36jdpm0ir4xxa5gvzagkx0wk07h";
+ };
+
+ buildInputs = [
+ qtbase qtwebkit qtserialport
+ zlib
+ libGLU
+ libX11
+ ];
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+
+ patchPhase = ''
+ patchShebangs configure
+ '';
+
+ installPhase = if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ cp -r sleepyhead/SleepyHead.app $out/Applications
+ '' else ''
+ mkdir -p $out/bin
+ cp sleepyhead/SleepyHead $out/bin
+ '';
+
+ postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
+ wrapQtApp "$out/Applications/SleepyHead.app/Contents/MacOS/SleepyHead"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sleepyhead.jedimark.net/";
+ description = "Review and explore data produced by CPAP and related machines";
+ longDescription = ''
+ SleepyHead is cross platform, opensource sleep tracking program for reviewing CPAP and Oximetry data, which are devices used in the treatment of Sleep Disorders like Obstructive Sleep Apnea.
+ '';
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.krav ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/slic3r/boost-compile-error.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/slic3r/boost-compile-error.patch
new file mode 100644
index 000000000000..4dbdb85f743d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/slic3r/boost-compile-error.patch
@@ -0,0 +1,12 @@
+diff --git a/xs/src/libslic3r/GCodeSender.hpp b/xs/src/libslic3r/GCodeSender.hpp
+index cc0b2983..0f39f5a3 100644
+--- a/xs/src/libslic3r/GCodeSender.hpp
++++ b/xs/src/libslic3r/GCodeSender.hpp
+@@ -9,6 +9,7 @@
+ #include <boost/asio.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/thread.hpp>
++#include <boost/core/noncopyable.hpp>
+
+ namespace Slic3r {
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/slic3r/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/slic3r/default.nix
new file mode 100644
index 000000000000..c8ecfbcb4a14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/slic3r/default.nix
@@ -0,0 +1,90 @@
+{ lib, stdenv, fetchgit, perl, makeWrapper
+, makeDesktopItem, which, perlPackages, boost
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.3.0";
+ pname = "slic3r";
+
+ src = fetchgit {
+ url = "git://github.com/alexrj/Slic3r";
+ rev = version;
+ sha256 = "1pg4jxzb7f58ls5s8mygza8kqdap2c50kwlsdkf28bz1xi611zbi";
+ };
+
+ buildInputs =
+ [boost] ++
+ (with perlPackages; [ perl makeWrapper which
+ EncodeLocale MathClipper ExtUtilsXSpp
+ MathConvexHullMonotoneChain MathGeometryVoronoi MathPlanePath Moo
+ IOStringy ClassXSAccessor Wx GrowlGNTP NetDBus ImportInto XMLSAX
+ ExtUtilsMakeMaker OpenGL WxGLCanvas ModuleBuild LWP
+ ExtUtilsCppGuess ModuleBuildWithXSpp ExtUtilsTypemapsDefault
+ DevelChecklib locallib
+ ]);
+
+ desktopItem = makeDesktopItem {
+ name = "slic3r";
+ exec = "slic3r";
+ icon = "slic3r";
+ comment = "G-code generator for 3D printers";
+ desktopName = "Slic3r";
+ genericName = "3D printer tool";
+ categories = "Development;";
+ };
+
+ prePatch = ''
+ # In nix ioctls.h isn't available from the standard kernel-headers package
+ # on other distributions. As the copy in glibc seems to be identical to the
+ # one in the kernel, we use that one instead.
+ sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' xs/src/libslic3r/GCodeSender.cpp
+ '';
+
+ # note the boost-compile-error is fixed in
+ # https://github.com/slic3r/Slic3r/commit/90f108ae8e7a4315f82e317f2141733418d86a68
+ # this patch can be probably be removed in the next version after 1.3.0
+ patches = lib.optional (lib.versionAtLeast boost.version "1.56.0") ./boost-compile-error.patch;
+
+ buildPhase = ''
+ export SLIC3R_NO_AUTO=true
+ export LD=$CXX
+ export PERL5LIB="./xs/blib/arch/:./xs/blib/lib:$PERL5LIB"
+
+ substituteInPlace Build.PL \
+ --replace "0.9918" "0.9923" \
+ --replace "eval" ""
+
+ pushd xs
+ perl Build.PL
+ perl Build
+ popd
+
+ perl Build.PL --gui
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/share/slic3r/"
+ cp -r * "$out/share/slic3r/"
+ wrapProgram "$out/share/slic3r/slic3r.pl" \
+ --prefix PERL5LIB : "$out/share/slic3r/xs/blib/arch:$out/share/slic3r/xs/blib/lib:$PERL5LIB"
+ mkdir -p "$out/bin"
+ ln -s "$out/share/slic3r/slic3r.pl" "$out/bin/slic3r"
+ mkdir -p "$out/share/pixmaps/"
+ ln -s "$out/share/slic3r/var/Slic3r.png" "$out/share/pixmaps/slic3r.png"
+ mkdir -p "$out/share/applications"
+ cp "$desktopItem"/share/applications/* "$out/share/applications/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "G-code generator for 3D printers";
+ longDescription = ''
+ Slic3r is the tool you need to convert a digital 3D model into printing
+ instructions for your 3D printer. It cuts the model into horizontal
+ slices (layers), generates toolpaths to fill them and calculates the
+ amount of material to be extruded.'';
+ homepage = "https://slic3r.org/";
+ license = licenses.agpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/slmenu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/slmenu/default.nix
new file mode 100644
index 000000000000..55025621fc7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/slmenu/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchhg}:
+let
+ s =
+ rec {
+ baseName = "slmenu";
+ version = "hg-${date}";
+ date = "2012-02-01";
+ name = "${baseName}-${version}";
+ url = "https://bitbucket.org/rafaelgg/slmenu/";
+ rev = "7e74fa5db73e8b018da48d50dbbaf11cb5c62d13";
+ sha256 = "0zb7mm8344d3xmvrl62psazcabfk75pp083jqkmywdsrikgjagv6";
+ };
+ buildInputs = [
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchhg {
+ inherit (s) url sha256;
+ };
+ makeFlags = [ "PREFIX=$(out)" ];
+ meta = {
+ inherit (s) version;
+ description = ''A console dmenu-like tool'';
+ license = stdenv.lib.licenses.mit;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/slstatus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/slstatus/default.nix
new file mode 100644
index 000000000000..6adf24f617c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/slstatus/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, pkgconfig, writeText, libX11, conf ? null, patches ? [] }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "slstatus";
+ version = "unstable-2019-02-16";
+
+ src = fetchgit {
+ url = "https://git.suckless.org/slstatus";
+ rev = "b14e039639ed28005fbb8bddeb5b5fa0c93475ac";
+ sha256 = "0kayyhpmppybhwndxgabw48wsk9v8x9xdb05xrly9szkw3jbvgw4";
+ };
+
+ configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+ preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+ inherit patches;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libX11 ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = {
+ homepage = "https://tools.suckless.org/slstatus/";
+ description = "status monitor for window managers that use WM_NAME like dwm";
+ license = licenses.isc;
+ maintainers = with maintainers; [ oxzi ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/smos/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/smos/default.nix
new file mode 100644
index 000000000000..a1e118d76b38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/smos/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetchurl
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+ name = "smos-${version}";
+ version = "0.1.0";
+
+ src = fetchurl {
+ url = "https://github.com/NorfairKing/smos/releases/download/v${version}/smos-release.zip";
+ sha256 = "sha256:07yavk7xl92yjwwjdig90yq421n8ldv4fjfw7izd4hfpzw849a12";
+ };
+
+ phases = [ "unpackPhase" ];
+ unpackCmd = "${unzip}/bin/unzip -d $out $curSrc";
+ sourceRoot = ".";
+
+ meta = with stdenv.lib; {
+ description = "A comprehensive self-management system";
+ homepage = https://smos.online;
+ license = licenses.mit;
+ maintainers = with maintainers; [ norfair ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/snowsql/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/snowsql/default.nix
new file mode 100644
index 000000000000..720ee5f67996
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/snowsql/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchurl
+, rpmextract
+, patchelf
+, makeWrapper
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "snowsql";
+ majorVersion = "1.2";
+ version = "${majorVersion}.9";
+
+ src = fetchurl {
+ url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/${majorVersion}/linux_x86_64/snowflake-snowsql-${version}-1.x86_64.rpm";
+ sha256 = "1k9dyr4vyqivpg054kbvs0jdwhbqbmlp9lsyxgazdsviw8ch70c8";
+ };
+
+ nativeBuildInputs = [ rpmextract makeWrapper ];
+
+ libPath = stdenv.lib.makeLibraryPath [ openssl ];
+
+ buildCommand = ''
+ mkdir -p $out/bin/
+ cd $out
+ rpmextract $src
+ rm -R usr/bin
+ mv usr/* $out
+ rmdir usr
+
+ ${patchelf}/bin/patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ lib64/snowflake/snowsql/snowsql
+
+ makeWrapper $out/lib64/snowflake/snowsql/snowsql $out/bin/snowsql \
+ --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/lib64/snowflake/snowsql \
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command line client for the Snowflake database";
+ homepage = "https://www.snowflake.com";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ andehen ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/solaar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/solaar/default.nix
new file mode 100644
index 000000000000..f92fe87b9481
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/solaar/default.nix
@@ -0,0 +1,46 @@
+{ fetchFromGitHub, lib, gobject-introspection, gtk3, python3Packages }:
+# Although we copy in the udev rules here, you probably just want to use logitech-udev-rules instead of
+# adding this to services.udev.packages on NixOS
+python3Packages.buildPythonApplication rec {
+ pname = "solaar";
+ version = "1.0.2";
+ src = fetchFromGitHub {
+ owner = "pwr-Solaar";
+ repo = "Solaar";
+ rev = version;
+ sha256 = "0k5z9dap6rawiafkg1x7zjx51ala7wra6j6lvc2nn0y8r79yp7a9";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ gobject-introspection gtk3 pygobject3 pyudev ];
+
+ postInstall = ''
+ wrapProgram "$out/bin/solaar" \
+ --prefix PYTHONPATH : "$PYTHONPATH" \
+ --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
+ wrapProgram "$out/bin/solaar-cli" \
+ --prefix PYTHONPATH : "$PYTHONPATH" \
+ --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
+
+ install -Dm644 -t $out/etc/udev/rules.d rules.d/*.rules
+ '';
+
+ enableParallelBuilding = true;
+ meta = with lib; {
+ description = "Linux devices manager for the Logitech Unifying Receiver";
+ longDescription = ''
+ Solaar is a Linux device manager for Logitech’s Unifying Receiver
+ peripherals. It is able to pair/unpair devices to the receiver, and for
+ most devices read battery status.
+
+ It comes in two flavors, command-line and GUI. Both are able to list the
+ devices paired to a Unifying Receiver, show detailed info for each
+ device, and also pair/unpair supported devices with the receiver.
+
+ To be able to use it, make sure you have access to /dev/hidraw* files.
+ '';
+ license = licenses.gpl2;
+ homepage = "https://pwr-solaar.github.io/Solaar/";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ spinus ysndr ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/spacefm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/spacefm/default.nix
new file mode 100644
index 000000000000..45dc487c8ed1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/spacefm/default.nix
@@ -0,0 +1,55 @@
+{ pkgs, fetchFromGitHub, stdenv, gtk3, udev, desktop-file-utils
+, shared-mime-info, intltool, pkgconfig, wrapGAppsHook, ffmpegthumbnailer
+, jmtpfs, ifuseSupport ? false, ifuse ? null, lsof, udisks2 }:
+
+stdenv.mkDerivation rec {
+ pname = "spacefm";
+ version = "1.0.6";
+
+ src = fetchFromGitHub {
+ owner = "IgnorantGuru";
+ repo = "spacefm";
+ rev = version;
+ sha256 = "089r6i40lxcwzp60553b18f130asspnzqldlpii53smz52kvpirx";
+ };
+
+ patches = [ ./glibc-fix.patch ];
+
+ configureFlags = [
+ "--with-bash-path=${pkgs.bash}/bin/bash"
+ ];
+
+ preConfigure = ''
+ configureFlags="$configureFlags --sysconfdir=$out/etc"
+ '';
+
+ postInstall = ''
+ rm -f $out/etc/spacefm/spacefm.conf
+ ln -s /etc/spacefm/spacefm.conf $out/etc/spacefm/spacefm.conf
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ gtk3 udev desktop-file-utils shared-mime-info intltool
+ wrapGAppsHook ffmpegthumbnailer jmtpfs lsof udisks2
+ ] ++ (if ifuseSupport then [ ifuse ] else []);
+ # Introduced because ifuse doesn't build due to CVEs in libplist
+ # Revert when libplist builds again…
+
+ meta = with stdenv.lib; {
+ description = "A multi-panel tabbed file manager";
+ longDescription = ''
+ Multi-panel tabbed file and desktop manager for Linux
+ with built-in VFS, udev- or HAL-based device manager,
+ customizable menu system, and bash integration
+ '';
+ homepage = "http://ignorantguru.github.io/spacefm/";
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ jagajaga obadz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/spacefm/glibc-fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/spacefm/glibc-fix.patch
new file mode 100644
index 000000000000..b8e9f1e9195e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/spacefm/glibc-fix.patch
@@ -0,0 +1,12 @@
+diff --git a/src/main.c b/src/main.c
+index 27f5614..2b45708 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -23,6 +23,7 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <sys/sysmacros.h>
+
+ #include <signal.h>
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/speedread/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/speedread/default.nix
new file mode 100644
index 000000000000..180b66fda8ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/speedread/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, perl }:
+
+stdenv.mkDerivation rec {
+ name = "speedread-unstable-2016-09-21";
+
+ src = fetchFromGitHub {
+ owner = "pasky";
+ repo = "speedread";
+ rev = "93acfd61a1bf4482537ce5d71b9164b8446cb6bd";
+ sha256 = "1h94jx3v18fdlc64lfmj2g5x63fjyqb8c56k5lihl7bva0xgdkxd";
+ };
+
+ buildInputs = [ perl ];
+
+ installPhase = ''
+ install -m755 -D speedread $out/bin/speedread
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple terminal-based open source Spritz-alike";
+ longDescription = ''
+ Speedread is a command line filter that shows input text as a
+ per-word rapid serial visual presentation aligned on optimal
+ reading points. This allows reading text at a much more rapid
+ pace than usual as the eye can stay fixed on a single place.
+ '';
+ homepage = src.meta.homepage;
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.oxij ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix
new file mode 100644
index 000000000000..a042cc53c055
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "spicetify-cli";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "khanhas";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "08rnwj7ggh114n3mhhm8hb8fm1njgb4j6vba3hynp8x1c2ngidff";
+ };
+
+ vendorSha256 = "0k06c3jw5z8rw8nk4qf794kyfipylmz6x6l126a2snvwi0lmc601";
+
+ # used at runtime, but not installed by default
+ postInstall = ''
+ cp -r ${src}/jsHelper $out/bin/jsHelper
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/spicetify-cli --help > /dev/null
+ '';
+
+ meta = with lib; {
+ description = "Command-line tool to customize Spotify client";
+ homepage = "https://github.com/khanhas/spicetify-cli/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ jonringer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sqliteman/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sqliteman/default.nix
new file mode 100644
index 000000000000..27d5610956d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sqliteman/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, qt4, qscintilla }:
+
+stdenv.mkDerivation rec {
+ pname = "sqliteman";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ repo = "sqliteman";
+ owner = "pvanek";
+ rev = version;
+ sha256 = "1blzyh1646955d580f71slgdvz0nqx0qacryx0jc9w02yrag17cs";
+ };
+
+ buildInputs = [ cmake qt4 qscintilla ];
+
+ prePatch = ''
+ sed -i 's,m_file(0),m_file(QString()),' Sqliteman/sqliteman/main.cpp
+ '';
+
+ preConfigure = ''
+ cd Sqliteman
+ sed -i 's,/usr/include/Qsci,${qscintilla}/include/Qsci,' cmake/modules/FindQScintilla.cmake
+ sed -i 's,PATHS ''${QT_LIBRARY_DIR},PATHS ${qscintilla}/libs,' cmake/modules/FindQScintilla.cmake
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple but powerful Sqlite3 GUI database manager";
+ homepage = "http://sqliteman.yarpen.cz/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.eikek ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ssocr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ssocr/default.nix
new file mode 100644
index 000000000000..c52573785ef6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ssocr/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, imlib2, libX11 }:
+
+stdenv.mkDerivation {
+ pname = "ssocr";
+ version = "unstable-2018-08-11";
+
+ src = fetchFromGitHub {
+ owner = "auerswal";
+ repo = "ssocr";
+ rev = "5e47e26b125a1a13bc79de93a5e87dd0b51354ca";
+ sha256 = "0yzprwflky9a7zxa3zic7gvdwqg0zy49zvrqkdxng2k1ng78k3s7";
+ };
+
+ nativeBuildInputs = [ imlib2 libX11 ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Seven Segment Optical Character Recognition";
+ homepage = "https://github.com/auerswal/ssocr";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.kroell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ssw/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ssw/default.nix
new file mode 100644
index 000000000000..7e1e40258106
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ssw/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkg-config, gtk3 }:
+
+stdenv.mkDerivation rec {
+ pname = "ssw";
+ version = "0.6";
+
+ src = fetchurl {
+ url = "https://alpha.gnu.org/gnu/ssw/spread-sheet-widget-${version}.tar.gz";
+ sha256 = "08ck9l697xg8vpya5h07raq837i4pqxjqzx30vhscq4xpps2b8kj";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ gtk3 ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.gnu.org/software/ssw/";
+ license = licenses.gpl3;
+ description = "GNU Spread Sheet Widget";
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/stag/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/stag/default.nix
new file mode 100644
index 000000000000..6b4bf1946306
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/stag/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, curses }:
+
+stdenv.mkDerivation {
+ name = "stag-1.0";
+
+ src = fetchgit {
+ url = "https://github.com/seenaburns/stag.git";
+ rev = "90e2964959ea8242349250640d24cee3d1966ad6";
+ sha256 = "1yrzjhcwrxrxq5jj695wvpgb0pz047m88yq5n5ymkcw5qr78fy1v";
+ };
+
+ buildInputs = [ stdenv curses ];
+
+ installPhase = ''
+ make install PREFIX=$out
+ '';
+
+ meta = {
+ homepage = "https://github.com/seenaburns/stag";
+ description = "Terminal streaming bar graph passed through stdin";
+ license = stdenv.lib.licenses.bsdOriginal;
+ maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/stog/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/stog/default.nix
new file mode 100644
index 000000000000..038d04adeaa8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/stog/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitLab, ocaml, findlib, ocf, ptime,
+ uutf, uri, ppx_blob, xtmpl, ocaml_lwt, higlo, omd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "stog";
+ version = "0.18.0";
+ src = fetchFromGitLab {
+ domain = "framagit.org";
+ owner = "zoggy";
+ repo = "stog";
+ rev = version;
+ sha256 = "154gl3ljxqlw8wz1vmsyv8180igrl5bjq0wir7ybrnzq2cdflkv0";
+ };
+
+ buildInputs = [ ocaml uutf ];
+ propagatedBuildInputs = [ findlib omd ppx_blob ocf ptime uri xtmpl ocaml_lwt higlo ];
+
+ createFindlibDestdir = true;
+
+ patches = [ ./install.patch ];
+
+ meta = with stdenv.lib; {
+ description = "XML documents and web site compiler";
+ homepage = "https://www.good-eris.net/stog";
+ license = licenses.lgpl3;
+ platforms = ocaml.meta.platforms or [];
+ maintainers = with maintainers; [ regnat ];
+ };
+}
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/stog/install.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/stog/install.patch
new file mode 100644
index 000000000000..a2407d3079f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/stog/install.patch
@@ -0,0 +1,18 @@
+diff --git a/src/Makefile b/src/Makefile
+index 736dd037..79a85b9c 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -431,11 +431,12 @@ install-lib:
+ install-share:
+
+ install-bin:
++ mkdir $(out)/bin
+ $(CP) $(MAIN) $(MAIN_BYTE) $(TMPL) $(TMPL_BYTE) \
+ $(SERVER) $(SERVER_BYTE) $(OCAML_SESSION) \
+ $(MK_STOG) $(MK_STOG_BYTE) $(MK_STOG_OCAML) \
+ $(LATEX2STOG) $(LATEX2STOG_BYTE) \
+- `dirname \`which $(OCAMLC)\``/
++ $(out)/bin
+
+ uninstall: uninstall-lib uninstall-share uninstall-bin
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/stretchly/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/stretchly/default.nix
new file mode 100644
index 000000000000..95f361669737
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/stretchly/default.nix
@@ -0,0 +1,84 @@
+{ stdenv
+, lib
+, fetchurl
+, makeWrapper
+, electron_9
+, common-updater-scripts
+, writeShellScript
+, jq
+, makeDesktopItem
+}:
+
+let
+ electron = electron_9;
+in
+stdenv.mkDerivation rec {
+
+ pname = "stretchly";
+ version = "1.2.0";
+
+ src = fetchurl {
+ url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz";
+ sha256 = "07v9yk9qgya9ladfgbfkwwnbzvczs1cv6yn3zrg9rviyv8zlqjls";
+ };
+
+ icon = fetchurl {
+ url = "https://raw.githubusercontent.com/hovancik/stretchly/v${version}/stretchly_128x128.png";
+ sha256 = "0whfg1fy2hjyk1lzpryikc1aj8agsjhfrb0bf7ggl6r9m8s1rvdl";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/share/${pname}/
+ mv resources/app.asar $out/share/${pname}/
+
+ mkdir -p $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications/
+
+ makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+ --add-flags $out/share/${pname}/app.asar
+
+ runHook postInstall
+ '';
+
+ passthru = {
+ updateScript = writeShellScript "update-stretchly" ''
+ set -eu -o pipefail
+
+ # get the latest release version
+ latest_version=$(curl -s https://api.github.com/repos/hovancik/stretchly/releases/latest | jq --raw-output .tag_name | sed -e 's/^v//')
+
+ echo "updating to $latest_version..."
+
+ ${common-updater-scripts}/bin/update-source-version stretchly "$latest_version"
+ '';
+ };
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = pname;
+ icon = icon;
+ desktopName = "Stretchly";
+ genericName = "Stretchly";
+ categories = "Utility;";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A break time reminder app";
+ longDescription = ''
+ stretchly is a cross-platform electron app that reminds you to take
+ breaks when working on your computer. By default, it runs in your tray
+ and displays a reminder window containing an idea for a microbreak for 20
+ seconds every 10 minutes. Every 30 minutes, it displays a window
+ containing an idea for a longer 5 minute break.
+ '';
+ homepage = "https://hovancik.net/stretchly";
+ downloadPage = "https://hovancik.net/stretchly/downloads/";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ _1000101 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/styx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/styx/default.nix
new file mode 100644
index 000000000000..06bf1bd5f2fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/styx/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchFromGitHub, caddy, asciidoctor
+, file, lessc, sass, multimarkdown, linkchecker
+, perlPackages, python27 }:
+
+stdenv.mkDerivation rec {
+ pname = "styx";
+ version = "0.7.2";
+
+ src = fetchFromGitHub {
+ owner = "styx-static";
+ repo = "styx";
+ rev = "0f0a878156eac416620a177cc030fa9f2f69b1b8";
+ sha256 = "0ig456j1s17w4zhhcmkrskpy6n7061v5f2isa3qhipmn0gwb91af";
+ };
+
+ server = "${caddy}/bin/caddy";
+ linkcheck = "${linkchecker}/bin/linkchecker";
+
+ nativeBuildInputs = [ asciidoctor ];
+
+ outputs = [ "out" "lib" "themes" ];
+
+ propagatedBuildInputs = [
+ file
+ lessc
+ sass
+ asciidoctor
+ multimarkdown
+ perlPackages.ImageExifTool
+ (python27.withPackages (ps: [ ps.parsimonious ]))
+ ];
+
+ installPhase = ''
+ mkdir $out
+ install -D -m 777 src/styx.sh $out/bin/styx
+
+ mkdir -p $out/share/styx-src
+ cp -r ./* $out/share/styx-src
+
+ mkdir -p $out/share/doc/styx
+ asciidoctor src/doc/index.adoc -o $out/share/doc/styx/index.html
+ asciidoctor src/doc/styx-themes.adoc -o $out/share/doc/styx/styx-themes.html
+ asciidoctor src/doc/library.adoc -o $out/share/doc/styx/library.html
+ cp -r src/doc/highlight $out/share/doc/styx/
+ cp -r src/doc/imgs $out/share/doc/styx/
+
+ substituteAllInPlace $out/bin/styx
+ substituteAllInPlace $out/share/doc/styx/index.html
+ substituteAllInPlace $out/share/doc/styx/styx-themes.html
+ substituteAllInPlace $out/share/doc/styx/library.html
+
+ mkdir -p $out/share/styx/scaffold
+ cp -r src/scaffold $out/share/styx
+ cp -r src/tools $out/share/styx
+
+ mkdir $lib
+ cp -r src/lib/* $lib
+
+ mkdir $themes
+ cp -r themes/* $themes
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Nix based static site generator";
+ maintainers = with maintainers; [ ericsagnes ];
+ homepage = "https://styx-static.github.io/styx-site/";
+ downloadPage = "https://github.com/styx-static/styx/";
+ platforms = platforms.all;
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/subsurface/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/subsurface/default.nix
new file mode 100644
index 000000000000..d8773240bac1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/subsurface/default.nix
@@ -0,0 +1,111 @@
+{ stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, wrapQtAppsHook, pkgconfig, qmake
+, curl, grantlee, libgit2, libusb-compat-0_1, libssh2, libxml2, libxslt, libzip, zlib
+, qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit, libXcomposite
+}:
+
+let
+ version = "4.9.6";
+
+ subsurfaceSrc = (fetchFromGitHub {
+ owner = "Subsurface";
+ repo = "subsurface";
+ rev = "v${version}";
+ sha256 = "1w1ak0fi6ljhg2jc4mjqyrbpax3iawrnsaqq6ls7qdzrhi37rggf";
+ fetchSubmodules = true;
+ });
+
+ libdc = stdenv.mkDerivation {
+ pname = "libdivecomputer-ssrf";
+ inherit version;
+
+ src = subsurfaceSrc;
+ sourceRoot = "source/libdivecomputer";
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = [ zlib ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.libdivecomputer.org";
+ description = "A cross-platform and open source library for communication with dive computers from various manufacturers";
+ maintainers = with maintainers; [ mguentner ];
+ license = licenses.lgpl21;
+ platforms = platforms.all;
+ };
+ };
+
+ googlemaps = stdenv.mkDerivation rec {
+ pname = "googlemaps";
+
+ version = "2018-06-02";
+
+ src = fetchFromGitHub {
+ owner = "vladest";
+ repo = "googlemaps";
+ rev = "54a357f9590d9cf011bf1713589f66bad65e00eb";
+ sha256 = "159kslp6rj0qznzxijppwvv8jnswlfgf2pw4x8ladi8vp6bzxnzi";
+ };
+
+ nativeBuildInputs = [ qmake ];
+
+ buildInputs = [ qtbase qtlocation libXcomposite ];
+
+ pluginsSubdir = "lib/qt-${qtbase.qtCompatVersion}/plugins";
+
+ installPhase = ''
+ mkdir -p $out $(dirname ${pluginsSubdir}/geoservices)
+ mkdir -p ${pluginsSubdir}/geoservices
+ mv *.so ${pluginsSubdir}/geoservices
+ mv lib $out/
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "QtLocation plugin for Google maps tile API";
+ maintainers = with maintainers; [ orivej ];
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+ };
+
+in stdenv.mkDerivation {
+ pname = "subsurface";
+ inherit version;
+
+ src = subsurfaceSrc;
+
+ buildInputs = [
+ libdc googlemaps
+ curl grantlee libgit2 libssh2 libusb-compat-0_1 libxml2 libxslt libzip
+ qtbase qtconnectivity qtsvg qttools qtwebkit
+ ];
+
+ nativeBuildInputs = [ cmake wrapQtAppsHook pkgconfig ];
+
+ cmakeFlags = [
+ "-DLIBDC_FROM_PKGCONFIG=ON"
+ "-DNO_PRINTING=OFF"
+ ];
+
+ enableParallelBuilding = true;
+
+ passthru = { inherit version libdc googlemaps; };
+
+ meta = with stdenv.lib; {
+ description = "A divelog program";
+ longDescription = ''
+ Subsurface can track single- and multi-tank dives using air, Nitrox or TriMix.
+ It allows tracking of dive locations including GPS coordinates (which can also
+ conveniently be entered using a map interface), logging of equipment used and
+ names of other divers, and lets users rate dives and provide additional notes.
+ '';
+ homepage = "https://subsurface-divelog.org";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ mguentner ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/swappy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/swappy/default.nix
new file mode 100644
index 000000000000..ddd9b434852d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/swappy/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub
+, meson
+, ninja
+, wayland
+, cairo
+, pango
+, gtk
+, pkgconfig
+, cmake
+, scdoc
+, libnotify
+, gio-sharp
+, glib
+}:
+
+stdenv.mkDerivation rec {
+ name = "swappy-${version}";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "jtheoof";
+ repo = "swappy";
+ rev = "v${version}";
+ sha256 = "14ac2jmnak7avcz0jhqjm30vk7pv3gq5aq5rdyh84k8c613kkicf";
+ };
+
+ nativeBuildInputs = [ glib meson ninja pkgconfig cmake scdoc ];
+
+ buildInputs = [ cairo pango gtk libnotify wayland glib ];
+
+ strictDeps = true;
+
+ mesonFlags = [
+ # TODO: https://github.com/NixOS/nixpkgs/issues/36468
+ "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jtheoof/swappy";
+ description = "A Wayland native snapshot editing tool, inspired by Snappy on macOS ";
+ license = licenses.mit;
+ maintainers = [ maintainers.matthiasbeyer ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
new file mode 100644
index 000000000000..bf2db2966508
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
@@ -0,0 +1,103 @@
+{ lib, stdenv, fetchurl, fetchsvn, makeWrapper, makeDesktopItem, jdk, jre, ant
+, gtk3, gsettings-desktop-schemas, p7zip, libXxf86vm }:
+
+let
+
+ # TODO: Should we move this to `lib`? Seems like its would be useful in many cases.
+ extensionOf = filePath:
+ lib.concatStringsSep "." (lib.tail (lib.splitString "." (builtins.baseNameOf filePath)));
+
+ installIcons = iconName: icons: lib.concatStringsSep "\n" (lib.mapAttrsToList (size: iconFile: ''
+ mkdir -p "$out/share/icons/hicolor/${size}/apps"
+ ln -s -T "${iconFile}" "$out/share/icons/hicolor/${size}/apps/${iconName}.${extensionOf iconFile}"
+ '') icons);
+
+ mkSweetHome3D =
+ { pname, module, version, src, license, description, desktopName, icons }:
+
+ stdenv.mkDerivation rec {
+ inherit pname version src description;
+ exec = stdenv.lib.toLower module;
+ sweethome3dItem = makeDesktopItem {
+ inherit exec desktopName;
+ name = pname;
+ icon = pname;
+ comment = description;
+ genericName = "Computer Aided (Interior) Design";
+ categories = "Graphics;2DGraphics;3DGraphics;";
+ };
+
+ patchPhase = ''
+ patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_awt.so
+ patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_x11.so
+ patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_awt.so
+ patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_x11.so
+ '';
+
+ buildInputs = [ ant jdk makeWrapper p7zip gtk3 gsettings-desktop-schemas ];
+
+ buildPhase = ''
+ ant furniture textures help
+ mkdir -p $out/share/{java,applications}
+ mv "build/"*.jar $out/share/java/.
+ ant
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp install/${module}-${version}.jar $out/share/java/.
+
+ ${installIcons pname icons}
+
+ cp "${sweethome3dItem}/share/applications/"* $out/share/applications
+
+ # MESA_GL_VERSION_OVERRIDE is needed since the update from MESA 19.3.3 to 20.0.2:
+ # without it a "Profiles [GL4bc, GL3bc, GL2, GLES1] not available on device null"
+ # exception is thrown on startup.
+ # https://discourse.nixos.org/t/glx-not-recognised-after-mesa-update/6753
+ makeWrapper ${jre}/bin/java $out/bin/$exec \
+ --set MESA_GL_VERSION_OVERRIDE 2.1 \
+ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
+ --add-flags "-Dsun.java2d.opengl=true -jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
+ '';
+
+ dontStrip = true;
+
+ meta = {
+ homepage = "http://www.sweethome3d.com/index.jsp";
+ inherit description;
+ inherit license;
+ maintainers = [ stdenv.lib.maintainers.edwtjo ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+ };
+
+ d2u = stdenv.lib.replaceChars ["."] ["_"];
+
+in {
+
+ application = mkSweetHome3D rec {
+ pname = stdenv.lib.toLower module + "-application";
+ version = "6.4.2";
+ module = "SweetHome3D";
+ description = "Design and visualize your future home";
+ license = stdenv.lib.licenses.gpl2Plus;
+ src = fetchsvn {
+ url = "https://svn.code.sf.net/p/sweethome3d/code/tags/V_" + d2u version + "/SweetHome3D/";
+ sha256 = "13rczayakwb5246hqnp8lnw61p0p7ywr2294bnlp4zwsrz1in9z4";
+ rev = "7504";
+ };
+ desktopName = "Sweet Home 3D";
+ icons = {
+ "32x32" = fetchurl {
+ url = "http://sweethome3d.cvs.sourceforge.net/viewvc/sweethome3d/SweetHome3D/deploy/SweetHome3DIcon32x32.png";
+ sha256 = "1r2fhfg27mx00nfv0qj66rhf719s2g1vhdis7bdc9mqk9x0mb0ir";
+ };
+ "48x48" = fetchurl {
+ url = "http://sweethome3d.cvs.sourceforge.net/viewvc/sweethome3d/SweetHome3D/deploy/SweetHome3DIcon48x48.png";
+ sha256 = "1ap6d75dyqqvx21wddvn8vw2apq3v803vmbxdriwd0dw9rq3zn4g";
+ };
+ };
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
new file mode 100644
index 000000000000..d6b44a86e087
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
@@ -0,0 +1,93 @@
+{ stdenv, fetchcvs, makeWrapper, makeDesktopItem, jdk, jre, ant
+, gtk3, gsettings-desktop-schemas, sweethome3dApp }:
+
+let
+
+ sweetExec = with stdenv.lib;
+ m: "sweethome3d-"
+ + removeSuffix "libraryeditor" (toLower m)
+ + "-editor";
+
+ mkEditorProject =
+ { pname, module, version, src, license, description, desktopName }:
+
+ stdenv.mkDerivation rec {
+ application = sweethome3dApp;
+ inherit pname module version src description;
+ exec = sweetExec module;
+ editorItem = makeDesktopItem {
+ inherit exec desktopName;
+ name = pname;
+ comment = description;
+ genericName = "Computer Aided (Interior) Design";
+ categories = "Graphics;2DGraphics;3DGraphics;";
+ };
+
+ buildInputs = [ ant jre jdk makeWrapper gtk3 gsettings-desktop-schemas ];
+
+ patchPhase = ''
+ sed -i -e 's,../SweetHome3D,${application.src},g' build.xml
+ sed -i -e 's,lib/macosx/java3d-1.6/jogl-all.jar,lib/java3d-1.6/jogl-all.jar,g' build.xml
+ '';
+
+ buildPhase = ''
+ ant -lib ${application.src}/libtest -lib ${application.src}/lib -lib ${jdk}/lib
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/{java,applications}
+ cp ${module}-${version}.jar $out/share/java/.
+ cp "${editorItem}/share/applications/"* $out/share/applications
+ makeWrapper ${jre}/bin/java $out/bin/$exec \
+ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
+ --add-flags "-jar $out/share/java/${module}-${version}.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
+ '';
+
+ dontStrip = true;
+
+ meta = {
+ homepage = "http://www.sweethome3d.com/index.jsp";
+ inherit description;
+ inherit license;
+ maintainers = [ stdenv.lib.maintainers.edwtjo ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+
+ };
+
+ d2u = stdenv.lib.replaceChars ["."] ["_"];
+
+in {
+
+ textures-editor = mkEditorProject rec {
+ version = "1.5";
+ module = "TexturesLibraryEditor";
+ pname = module;
+ description = "Easily create SH3T files and edit the properties of the texture images it contain";
+ license = stdenv.lib.licenses.gpl2Plus;
+ src = fetchcvs {
+ cvsRoot = ":pserver:anonymous@sweethome3d.cvs.sourceforge.net:/cvsroot/sweethome3d";
+ sha256 = "15wxdns3hc8yq362x0rj53bcxran2iynxznfcb9js85psd94zq7h";
+ module = module;
+ tag = "V_" + d2u version;
+ };
+ desktopName = "Sweet Home 3D - Textures Library Editor";
+ };
+
+ furniture-editor = mkEditorProject rec {
+ version = "1.19";
+ module = "FurnitureLibraryEditor";
+ pname = module;
+ description = "Quickly create SH3F files and edit the properties of the 3D models it contain";
+ license = stdenv.lib.licenses.gpl2;
+ src = fetchcvs {
+ cvsRoot = ":pserver:anonymous@sweethome3d.cvs.sourceforge.net:/cvsroot/sweethome3d";
+ sha256 = "0rr4nqil1mngak3ds5vz7f1whrgcgzpk6fb0qcr5ljms0jx0ylvs";
+ module = module;
+ tag = "V_" + d2u version;
+ };
+ desktopName = "Sweet Home 3D - Furniture Library Editor";
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/synapse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/synapse/default.nix
new file mode 100644
index 000000000000..751c0a48f5b3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/synapse/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, gettext, pkgconfig, glib, libnotify, gtk3, libgee
+, keybinder3, json-glib, zeitgeist, vala, gobject-introspection
+}:
+
+let
+ version = "0.2.99.4";
+in stdenv.mkDerivation rec {
+ pname = "synapse";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://launchpad.net/synapse-project/0.3/${version}/+download/${pname}-${version}.tar.xz";
+ sha256 = "1g6x9knb4jy1d8zgssjhzkgac583137pibisy9whjs8mckaj4k1j";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig gettext vala
+ # For setup hook
+ gobject-introspection
+ ];
+ buildInputs = [
+ glib libnotify gtk3 libgee keybinder3 json-glib zeitgeist
+ ];
+
+ meta = with stdenv.lib; {
+ longDescription = ''
+ Semantic launcher written in Vala that you can use to start applications
+ as well as find and access relevant documents and files by making use of
+ the Zeitgeist engine
+ '';
+ description = "Semantic launcher to start applications and find relevant files";
+ homepage = "https://launchpad.net/synapse-project";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ mahe ];
+ platforms = with platforms; all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix
new file mode 100644
index 000000000000..1cb5bb441ed8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, buildGoPackage, pkgconfig, libappindicator-gtk3 }:
+
+buildGoPackage rec {
+ pname = "syncthing-tray";
+ version = "0.7";
+
+ goPackagePath = "github.com/alex2108/syncthing-tray";
+
+ src = fetchFromGitHub {
+ owner = "alex2108";
+ repo = "syncthing-tray";
+ rev = "v${version}";
+ sha256 = "0869kinnsfzb8ydd0sv9fgqsi1sy5rhqg4whfdnrv82xjc71xyw3";
+ };
+
+ goDeps = ./deps.nix;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libappindicator-gtk3 ];
+
+ meta = with stdenv.lib; {
+ description = "Simple application tray for syncthing";
+ homepage = "https://github.com/alex2108/syncthing-tray";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nickhu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix
new file mode 100644
index 000000000000..1103146ed1b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix
@@ -0,0 +1,93 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/alex2108/systray";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alex2108/systray";
+ rev = "40e874866be2dc2c57ab031bcbde27a76b90721a";
+ sha256 = "1bxnb6skb9ss0lwlwswql07ardkhm28nxglvlsxkdlmzv1dcwy1q";
+ };
+ }
+ {
+ goPackagePath = "github.com/getlantern/context";
+ fetch = {
+ type = "git";
+ url = "https://github.com/getlantern/context";
+ rev = "624d99b1798d7c5375ea1d3ca4c5b04d58f7c775";
+ sha256 = "09yf9x6478a5z01hybr98zwa8ax3fx7l6wwsvdkxp3fdg9dqm13b";
+ };
+ }
+ {
+ goPackagePath = "github.com/getlantern/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/getlantern/errors";
+ rev = "99fa440517e8f3d1e4cd8d6dbed6b41f4c1ed3d6";
+ sha256 = "08rl32l5ks67hcgjxik62nd5g558mv4101kmz1ak7d3vfgg3m6i3";
+ };
+ }
+ {
+ goPackagePath = "github.com/getlantern/golog";
+ fetch = {
+ type = "git";
+ url = "https://github.com/getlantern/golog";
+ rev = "cca714f7feb5df8e455f409b549d384441ac4578";
+ sha256 = "0gnf30n38zkx356cqc6jdv1kbzy59ddqhqndwrxsm2n2zc3b5p7q";
+ };
+ }
+ {
+ goPackagePath = "github.com/getlantern/hex";
+ fetch = {
+ type = "git";
+ url = "https://github.com/getlantern/hex";
+ rev = "083fba3033ad473db3dd31c9bb368473d37581a7";
+ sha256 = "18q6rypmcqmcwlfzrrdcz08nff0a289saplvd9y3ifnfcqdw3j77";
+ };
+ }
+ {
+ goPackagePath = "github.com/getlantern/hidden";
+ fetch = {
+ type = "git";
+ url = "https://github.com/getlantern/hidden";
+ rev = "d52a649ab33af200943bb599898dbdcfdbc94cb7";
+ sha256 = "0133qmp4sjq8da5di3459vc5g5nqbpqra0f558zd95js3fdmkmsi";
+ };
+ }
+ {
+ goPackagePath = "github.com/getlantern/ops";
+ fetch = {
+ type = "git";
+ url = "https://github.com/getlantern/ops";
+ rev = "b70875f5d689a9438bca72aefd7142a2af889b18";
+ sha256 = "0cfa2bbkykbzbskmgd2an34him72z6f3y88ag1v5ffpb0d6bnar7";
+ };
+ }
+ {
+ goPackagePath = "github.com/getlantern/stack";
+ fetch = {
+ type = "git";
+ url = "https://github.com/getlantern/stack";
+ rev = "02f928aad224fbccd50d66edd776fc9d1e9f2f2b";
+ sha256 = "0ddl5r4iw3c7p4drh4d8phl7d0ssdddsnd3xjm1lzgxylqq6r568";
+ };
+ }
+ {
+ goPackagePath = "github.com/oxtoacart/bpool";
+ fetch = {
+ type = "git";
+ url = "https://github.com/oxtoacart/bpool";
+ rev = "4e1c5567d7c2dd59fa4c7c83d34c2f3528b025d6";
+ sha256 = "01kk6dhkz96yhp3p5v2rjwq8mbrwrdsn6glqw7jp4h7g5za7yi95";
+ };
+ }
+ {
+ goPackagePath = "github.com/toqueteos/webbrowser";
+ fetch = {
+ type = "git";
+ url = "https://github.com/toqueteos/webbrowser";
+ rev = "e2ebfdc6cb1a3fdc4fc4dbd20a0cae0c2e406792";
+ sha256 = "0sgjnxrq0jgipkij8b6xiy4am9bv9zziqxxdhw15rdjc5piyk3a2";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
new file mode 100644
index 000000000000..bbe629ecb14f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
@@ -0,0 +1,64 @@
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, qtbase
+, qtwebengine
+, qtdeclarative
+, extra-cmake-modules
+, cpp-utilities
+, qtutilities
+, cmake
+, kio
+, plasma-framework
+, qttools
+, webviewSupport ? true
+, jsSupport ? true
+, kioPluginSupport ? true
+, plasmoidSupport ? true
+, systemdSupport ? true
+}:
+
+mkDerivation rec {
+ version = "1.1.0";
+ pname = "syncthingtray";
+
+ src = fetchFromGitHub {
+ owner = "Martchus";
+ repo = "syncthingtray";
+ rev = "v${version}";
+ sha256 = "0nzkzx870hzil2kny1irp4w2kxz5gmpchr2qxb7q4f9cnih92n0j";
+ };
+
+ buildInputs = [ qtbase cpp-utilities qtutilities ]
+ ++ lib.optionals webviewSupport [ qtwebengine ]
+ ++ lib.optionals jsSupport [ qtdeclarative ]
+ ++ lib.optionals kioPluginSupport [ kio ]
+ ++ lib.optionals plasmoidSupport [ extra-cmake-modules plasma-framework ]
+ ;
+
+ nativeBuildInputs = [ cmake qttools ];
+
+ # No tests are available by upstream, but we test --help anyway
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/syncthingtray --help | grep ${version}
+ '';
+
+ cmakeFlags = [
+ # See https://github.com/Martchus/syncthingtray/issues/42
+ "-DQT_PLUGIN_DIR:STRING=${placeholder "out"}/lib/qt-5"
+ ] ++ lib.optionals (!plasmoidSupport) ["-DNO_PLASMOID=ON"]
+ ++ lib.optionals (!kioPluginSupport) ["-DNO_FILE_ITEM_ACTION_PLUGIN=ON"]
+ ++ lib.optionals systemdSupport ["-DSYSTEMD_SUPPORT=ON"]
+ ++ lib.optionals (!webviewSupport) ["-DWEBVIEW_PROVIDER:STRING=none"]
+ ;
+
+ meta = with lib; {
+ homepage = "https://github.com/Martchus/syncthingtray";
+ description = "Tray application and Dolphin/Plasma integration for Syncthing";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ doronbehar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch
new file mode 100644
index 000000000000..ab08195e794d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch
@@ -0,0 +1,97 @@
+From 9c2278dad498b8e4040f30c80cf65b3a089ba218 Mon Sep 17 00:00:00 2001
+From: talyz <kim.lindberger@gmail.com>
+Date: Fri, 14 Feb 2020 16:26:36 +0100
+Subject: [PATCH] Build tests again
+
+The tests were accidentally disabled in
+688095d0a7d22704b5c3282bc68b41ceca42ab7e. Since then, the code has
+drifted slightly: the synergy lib has been renamed from synergy to
+synlib in 4263fd17177d7717b04ac6d6ec62efa2f657ed74 and the curl
+dependency was dropped in 491bb2de000245a943b8298462c4a9d8f34c9a44.
+
+This reenables the tests, targets the right lib and removes the
+obsolete test.
+---
+ src/CMakeLists.txt | 2 +
+ src/test/integtests/CMakeLists.txt | 2 +-
+ .../integtests/arch/ArchInternetTests.cpp | 37 -------------------
+ src/test/unittests/CMakeLists.txt | 2 +-
+ 4 files changed, 4 insertions(+), 39 deletions(-)
+ delete mode 100644 src/test/integtests/arch/ArchInternetTests.cpp
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ab63a066..fee080ab 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -22,3 +22,5 @@ add_subdirectory(cmd)
+ if (SYNERGY_BUILD_LEGACY_GUI)
+ add_subdirectory(gui)
+ endif (SYNERGY_BUILD_LEGACY_GUI)
++
++add_subdirectory(test)
+diff --git a/src/test/integtests/CMakeLists.txt b/src/test/integtests/CMakeLists.txt
+index f39968a3..096ba3d5 100644
+--- a/src/test/integtests/CMakeLists.txt
++++ b/src/test/integtests/CMakeLists.txt
+@@ -68,4 +68,4 @@ endif()
+
+ add_executable(integtests ${sources})
+ target_link_libraries(integtests
+- arch base client common io ipc mt net platform server synergy gtest gmock ${libs} ${OPENSSL_LIBS})
++ arch base client common io ipc mt net platform server synlib gtest gmock ${libs} ${OPENSSL_LIBS})
+diff --git a/src/test/integtests/arch/ArchInternetTests.cpp b/src/test/integtests/arch/ArchInternetTests.cpp
+deleted file mode 100644
+index 95823e9f..00000000
+--- a/src/test/integtests/arch/ArchInternetTests.cpp
++++ /dev/null
+@@ -1,37 +0,0 @@
+-/*
+- * synergy -- mouse and keyboard sharing utility
+- * Copyright (C) 2014-2016 Symless Ltd.
+- *
+- * This package is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License
+- * found in the file LICENSE that should have accompanied this file.
+- *
+- * This package 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/>.
+- */
+-
+-#include "arch/Arch.h"
+-
+-#include "test/global/gtest.h"
+-
+-#define TEST_URL "https://symless.com/tests/?testString"
+-//#define TEST_URL "http://localhost/synergy/tests/?testString"
+-
+-TEST(ArchInternetTests, get)
+-{
+- ARCH_INTERNET internet;
+- String result = internet.get(TEST_URL);
+- ASSERT_EQ("Hello world!", result);
+-}
+-
+-TEST(ArchInternetTests, urlEncode)
+-{
+- ARCH_INTERNET internet;
+- String result = internet.urlEncode("hello=+&world");
+- ASSERT_EQ("hello%3D%2B%26world", result);
+-}
+diff --git a/src/test/unittests/CMakeLists.txt b/src/test/unittests/CMakeLists.txt
+index 54131eb2..46307e90 100644
+--- a/src/test/unittests/CMakeLists.txt
++++ b/src/test/unittests/CMakeLists.txt
+@@ -68,4 +68,4 @@ endif()
+
+ add_executable(unittests ${sources})
+ target_link_libraries(unittests
+- arch base client server common io net platform server synergy mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS})
++ arch base client server common io net platform server synlib mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS})
+--
+2.25.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/default.nix
new file mode 100644
index 000000000000..b0722e18eeaa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, lib, fetchpatch, fetchFromGitHub, cmake, openssl, qttools
+, ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver
+, xlibsWrapper, libX11, libXi, libXtst, libXrandr, xinput, avahi-compat
+, withGUI ? true, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "synergy";
+ version = "1.11.1";
+
+ src = fetchFromGitHub {
+ owner = "symless";
+ repo = "synergy-core";
+ rev = "${version}-stable";
+ sha256 = "1jk60xw4h6s5crha89wk4y8rrf1f3bixgh5mzh3cq3xyrkba41gh";
+ };
+
+ patches = [
+ ./build-tests.patch
+ (fetchpatch {
+ name = "CVE-2020-15117.patch";
+ url = "https://github.com/symless/synergy-core/commit/"
+ + "0a97c2be0da2d0df25cb86dfd642429e7a8bea39.patch";
+ sha256 = "03q8m5n50fms7fjfjgmqrgy9mrxwi9kkz3f3vlrs2x5h21dl6bmj";
+ })
+ ] ++ lib.optional stdenv.isDarwin ./macos_build_fix.patch;
+
+ # Since the included gtest and gmock don't support clang and the
+ # segfault when built with gcc9, we replace it with 1.10.0 for
+ # synergy-1.11.0. This should become unnecessary when upstream
+ # updates these dependencies.
+ googletest = fetchFromGitHub {
+ owner = "google";
+ repo = "googletest";
+ rev = "release-1.10.0";
+ sha256 = "1zbmab9295scgg4z2vclgfgjchfjailjnvzc6f5x9jvlsdi3dpwz";
+ };
+
+ postPatch = ''
+ rm -r ext/*
+ cp -r ${googletest}/googlemock ext/gmock/
+ cp -r ${googletest}/googletest ext/gtest/
+ chmod -R +w ext/
+ '';
+
+ cmakeFlags = lib.optional (!withGUI) "-DSYNERGY_BUILD_LEGACY_GUI=OFF";
+
+ nativeBuildInputs = [ cmake ] ++ lib.optional withGUI wrapQtAppsHook;
+
+ dontWrapQtApps = true;
+
+ buildInputs = [
+ openssl
+ ] ++ lib.optionals withGUI [
+ qttools
+ ] ++ lib.optionals stdenv.isDarwin [
+ ApplicationServices Carbon Cocoa CoreServices ScreenSaver
+ ] ++ lib.optionals stdenv.isLinux [
+ xlibsWrapper libX11 libXi libXtst libXrandr xinput avahi-compat
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/{synergyc,synergys,synergyd,syntool} $out/bin/
+ '' + lib.optionalString withGUI ''
+ cp bin/synergy $out/bin/
+ wrapQtApp $out/bin/synergy --prefix PATH : ${lib.makeBinPath [ openssl ]}
+ '' + lib.optionalString stdenv.isLinux ''
+ mkdir -p $out/share/icons/hicolor/scalable/apps
+ cp ../res/synergy.svg $out/share/icons/hicolor/scalable/apps/
+ mkdir -p $out/share/applications
+ substitute ../res/synergy.desktop $out/share/applications/synergy.desktop --replace /usr/bin $out/bin
+ '' + lib.optionalString stdenv.isDarwin ''
+ mkdir -p $out/Applications/
+ mv bundle/Synergy.app $out/Applications/
+ ln -s $out/bin $out/Applications/Synergy.app/Contents/MacOS
+ '';
+
+ doCheck = true;
+ checkPhase = "bin/unittests";
+
+ meta = with lib; {
+ description = "Share one mouse and keyboard between multiple computers";
+ homepage = "http://synergy-project.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ enzime ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch
new file mode 100644
index 000000000000..2ce277d261b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch
@@ -0,0 +1,29 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a2297311..25a51f56 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -138,7 +138,7 @@ if (UNIX)
+
+
+ if (APPLE)
+- set (CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS} -DGTEST_USE_OWN_TR1_TUPLE=1")
++ set (CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS}")
+
+ find_library (lib_ScreenSaver ScreenSaver)
+ find_library (lib_IOKit IOKit)
+@@ -292,14 +292,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+ ${OPENSSL_ROOT}/lib/libssl.lib
+ ${OPENSSL_ROOT}/lib/libcrypto.lib
+ )
+-elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+- set (OPENSSL_ROOT /usr/local/opt/openssl)
+- include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include)
+- set (OPENSSL_LIBS
+- ${OPENSSL_ROOT}/lib/libssl.a
+- ${OPENSSL_ROOT}/lib/libcrypto.a
+- )
+-elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
++elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set (OPENSSL_LIBS ssl crypto)
+ else()
+ message (FATAL_ERROR "Couldn't find OpenSSL")
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix
new file mode 100644
index 000000000000..374adc6c89bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, systemd }:
+
+stdenv.mkDerivation rec {
+ pname = "systembus-notify";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "rfjakob";
+ repo = "systembus-notify";
+ rev = "v${version}";
+ sha256 = "1pdn45rfpwhrf20hs87qmk2j8sr7ab8161f81019wnypnb1q2fsv";
+ };
+
+ buildInputs = [ systemd ];
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm755 systembus-notify -t $out/bin
+ install -Dm644 systembus-notify.desktop -t $out/etc/xdg/autostart
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "System bus notification daemon";
+ homepage = "https://github.com/rfjakob/systembus-notify";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tabula/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tabula/default.nix
new file mode 100644
index 000000000000..1b29118c9b14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tabula/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchzip, jre, makeWrapper }:
+
+
+stdenv.mkDerivation rec {
+ pname = "tabula";
+ version = "1.2.1";
+
+
+ src = fetchzip {
+ url = "https://github.com/tabulapdf/tabula/releases/download/v${version}/tabula-jar-${version}.zip";
+ sha256 = "0lkpv8hkji81fanyxm7ph8421fr9a6phqc3pbhw2bc4gljg7sgxi";
+ };
+
+
+ buildInputs = [ makeWrapper ];
+
+
+ installPhase = ''
+ mkdir -pv $out/share/tabula
+ cp -v * $out/share/tabula
+
+ makeWrapper ${jre}/bin/java $out/bin/tabula --add-flags "-jar $out/share/tabula/tabula.jar"
+ '';
+
+
+ meta = with stdenv.lib; {
+ description = "A tool for liberating data tables locked inside PDF files";
+ longDescription = ''
+ If you’ve ever tried to do anything with data provided to you in PDFs, you
+ know how painful it is — there's no easy way to copy-and-paste rows of data
+ out of PDF files. Tabula allows you to extract that data into a CSV or
+ Microsoft Excel spreadsheet using a simple, easy-to-use interface.
+ '';
+ homepage = "https://tabula.technology/";
+ license = licenses.mit;
+ maintainers = [ maintainers.dpaetzel ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taizen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/taizen/default.nix
new file mode 100644
index 000000000000..993606d39c0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taizen/default.nix
@@ -0,0 +1,25 @@
+{ rustPlatform, lib, fetchFromGitHub, ncurses, openssl, pkgconfig, Security, stdenv }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "taizen";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "NerdyPepper";
+ repo = pname;
+ rev = "5c1876429e2da7424e9d31b1e16f5a3147cc58d0";
+ sha256 = "09izgx7icvizskdy9kplk0am61p7550fsd0v42zcihq2vap2j92z";
+ };
+
+ buildInputs = [ ncurses openssl ] ++ lib.optional stdenv.isDarwin Security;
+ nativeBuildInputs = [ pkgconfig ];
+
+ cargoSha256 = "0chrgwm97y1a3gj218x25yqk1y1h74a6gzyxjdm023msvs58nkni";
+
+ meta = with lib; {
+ homepage = "https://crates.io/crates/taizen";
+ license = licenses.mit;
+ description = "curses based mediawiki browser";
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix
new file mode 100644
index 000000000000..a1d04a13af85
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix
@@ -0,0 +1,75 @@
+{stdenv, fetchurl,
+zlib, libpng, libjpeg, perl, expat, qt3,
+libX11, libXext, libSM, libICE,
+}:
+
+stdenv.mkDerivation rec {
+ name = "taskjuggler-2.4.3";
+ src = fetchurl {
+ url = "http://www.taskjuggler.org/download/${name}.tar.bz2";
+ sha256 = "14gkxa2vwfih5z7fffbavps7m44z5bq950qndigw2icam5ks83jl";
+ };
+
+ buildInputs =
+ [zlib libpng libX11 libXext libSM libICE perl expat libjpeg]
+ ;
+
+ patches = [ ./timezone-glibc.patch ];
+
+ preConfigure = ''
+ for i in $(grep -R "/bin/bash" . | sed 's/:.*//'); do
+ substituteInPlace $i --replace /bin/bash $(type -Pp bash)
+ done
+ for i in $(grep -R "/usr/bin/perl" . | sed 's/:.*//'); do
+ substituteInPlace $i --replace /usr/bin/perl ${perl}/bin/perl
+ done
+
+ # Fix install
+ for i in docs/en/Makefile.in Examples/BigProject/Common/Makefile.in Examples/BigProject/Makefile.in Examples/BigProject/Project1/Makefile.in Examples/BigProject/Project2/Makefile.in Examples/FirstProject/Makefile.in Examples/ShiftSchedule/Makefile.in; do
+ # Do not use variable substitution because there is some text after the last '@'
+ substituteInPlace $i --replace 'docprefix = @PACKAGES_DIR@' 'docprefix = $(docdir)/'
+ done
+
+ # Comment because the ical export need the KDE support.
+ for i in Examples/FirstProject/AccountingSoftware.tjp; do
+ substituteInPlace $i --replace "icalreport" "# icalreport"
+ done
+
+ for i in TestSuite/testdir TestSuite/createrefs \
+ TestSuite/Scheduler/Correct/Expression.sh; do
+ substituteInPlace $i --replace '/bin/rm' 'rm'
+ done
+
+ # Some tests require writing at $HOME
+ HOME=$TMPDIR
+ '';
+
+ configureFlags = [
+ "--without-arts" "--disable-docs"
+ "--x-includes=${libX11.dev}/include"
+ "--x-libraries=${libX11.out}/lib"
+ "--with-qt-dir=${qt3}"
+ ];
+
+ preInstall = ''
+ mkdir -p $out/share/emacs/site-lisp/
+ cp Contrib/emacs/taskjug.el $out/share/emacs/site-lisp/
+ '';
+
+ # kde_locale is not defined when installing without kde.
+ installFlags = [ "kde_locale=\${out}/share/locale" ];
+
+ meta = {
+ homepage = "http://www.taskjuggler.org";
+ license = stdenv.lib.licenses.gpl2;
+ description = "Project management tool";
+ longDescription = ''
+ TaskJuggler is a modern and powerful, Open Source project management
+ tool. Its new approach to project planing and tracking is more
+ flexible and superior to the commonly used Gantt chart editing
+ tools. It has already been successfully used in many projects and
+ scales easily to projects with hundreds of resources and thousands of
+ tasks.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch
new file mode 100644
index 000000000000..f599e8a1730c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch
@@ -0,0 +1,48 @@
+From the discussion in http://groups.google.com/group/taskjuggler-users/browse_thread/thread/f65a3efd4dcae2fc/a44c711a9d28ebee?show_docid=a44c711a9d28ebee
+
+From: Chris Schlaeger <cs@kde.org>
+Date: Sat, 27 Feb 2010 06:33:35 +0000 (+0100)
+Subject: Try to fix time zone check for glibc 2.11.
+X-Git-Url: http://www.taskjuggler.org/cgi-bin/gitweb.cgi?p=taskjuggler.git;a=commitdiff_plain;h=2382ed54f90c3c899badb3f56aaa2b3b5dba361e;hp=c666c5068312fec7db75e17d1c567d94127d1dda
+
+Try to fix time zone check for glibc 2.11.
+
+Reported-by: Lee <pFQh8RQn4fqB@dyweni.com>
+---
+
+diff --git a/taskjuggler/Utility.cpp b/taskjuggler/Utility.cpp
+index 5e2bf21..9b7fce2 100644
+--- a/taskjuggler/Utility.cpp
++++ b/taskjuggler/Utility.cpp
+@@ -206,16 +206,28 @@ setTimezone(const char* tZone)
+
+ /* To validate the tZone value we call tzset(). It will convert the zone
+ * into a three-letter acronym in case the tZone value is good. If not, it
+- * will just copy the wrong value to tzname[0] (glibc < 2.5) or fall back
+- * to UTC. */
++ * will
++ * - copy the wrong value to tzname[0] (glibc < 2.5)
++ * - or fall back to UTC (glibc >= 2.5 && < 2.11)
++ * - copy the part before the '/' to tzname[0] (glibc >= 2.11).
++ */
+ tzset();
++ char* region = new(char[strlen(tZone) + 1]);
++ region[0] = 0;
++ if (strchr(tZone, '/'))
++ {
++ strcpy(region, tZone);
++ *strchr(region, '/') = 0;
++ }
+ if (timezone2tz(tZone) == 0 &&
+- (strcmp(tzname[0], tZone) == 0 ||
++ (strcmp(tzname[0], tZone) == 0 || strcmp(tzname[0], region) == 0 ||
+ (strcmp(tZone, "UTC") != 0 && strcmp(tzname[0], "UTC") == 0)))
+ {
+ UtilityError = QString(i18n("Illegal timezone '%1'")).arg(tZone);
++ delete region;
+ return false;
+ }
++ delete region;
+
+ if (!LtHashTab)
+ return true;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile
new file mode 100644
index 000000000000..77cbaeeed793
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile
@@ -0,0 +1,2 @@
+source 'http://rubygems.org'
+gem 'taskjuggler'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock
new file mode 100644
index 000000000000..8831993117d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock
@@ -0,0 +1,21 @@
+GEM
+ remote: http://rubygems.org/
+ specs:
+ mail (2.6.3)
+ mime-types (>= 1.16, < 3)
+ mime-types (2.6.1)
+ taskjuggler (3.5.0)
+ mail (>= 2.4.3)
+ term-ansicolor (>= 1.0.7)
+ term-ansicolor (1.3.2)
+ tins (~> 1.0)
+ tins (1.6.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ taskjuggler
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix
new file mode 100644
index 000000000000..d3a8e26a4d82
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix
@@ -0,0 +1,15 @@
+{ lib, bundlerEnv, ruby }:
+
+bundlerEnv {
+ name = "taskjuggler-3.5.0";
+
+ inherit ruby;
+ gemdir = ./.;
+
+ meta = {
+ description = "A modern and powerful project management tool";
+ homepage = "https://taskjuggler.org/";
+ license = lib.licenses.gpl2;
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix
new file mode 100644
index 000000000000..deeeac106943
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix
@@ -0,0 +1,47 @@
+{
+ mail = {
+ version = "2.6.3";
+ source = {
+ type = "gem";
+ sha256 = "1nbg60h3cpnys45h7zydxwrl200p7ksvmrbxnwwbpaaf9vnf3znp";
+ };
+ dependencies = [
+ "mime-types"
+ ];
+ };
+ mime-types = {
+ version = "2.6.1";
+ source = {
+ type = "gem";
+ sha256 = "1vnrvf245ijfyxzjbj9dr6i1hkjbyrh4yj88865wv9bs75axc5jv";
+ };
+ };
+ taskjuggler = {
+ version = "3.5.0";
+ source = {
+ type = "gem";
+ sha256 = "0r84rlc7a6w7p9nc9mgycbs5h0hq0kzscjq7zj3296xyf0afiwj2";
+ };
+ dependencies = [
+ "mail"
+ "term-ansicolor"
+ ];
+ };
+ term-ansicolor = {
+ version = "1.3.2";
+ source = {
+ type = "gem";
+ sha256 = "0ydbbyjmk5p7fsi55ffnkq79jnfqx65c3nj8d9rpgl6sw85ahyys";
+ };
+ dependencies = [
+ "tins"
+ ];
+ };
+ tins = {
+ version = "1.6.0";
+ source = {
+ type = "gem";
+ sha256 = "02qarvy17nbwvslfgqam8y6y7479cwmb1a6di9z18hzka4cf90hz";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile
new file mode 100644
index 000000000000..ab9f5a354646
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'taskjuggler'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock
new file mode 100644
index 000000000000..0f05c496173f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock
@@ -0,0 +1,21 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ mail (2.7.1)
+ mini_mime (>= 0.1.1)
+ mini_mime (1.0.1)
+ taskjuggler (3.6.0)
+ mail (>= 2.4.3)
+ term-ansicolor (>= 1.0.7)
+ term-ansicolor (1.7.1)
+ tins (~> 1.0)
+ tins (1.20.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ taskjuggler
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix
new file mode 100644
index 000000000000..5c15748f2b8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix
@@ -0,0 +1,21 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "taskjuggler";
+ gemdir = ./.;
+
+ exes = [
+ "tj3" "tj3client" "tj3d" "tj3man" "tj3ss_receiver" "tj3ss_sender"
+ "tj3ts_receiver" "tj3ts_sender" "tj3ts_summary" "tj3webd"
+ ];
+
+ passthru.updateScript = bundlerUpdateScript "taskjuggler";
+
+ meta = with lib; {
+ description = "A modern and powerful project management tool";
+ homepage = "https://taskjuggler.org/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ manveru nicknovitski ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix
new file mode 100644
index 000000000000..fcf607de8157
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix
@@ -0,0 +1,55 @@
+{
+ mail = {
+ dependencies = ["mini_mime"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+ type = "gem";
+ };
+ version = "2.7.1";
+ };
+ mini_mime = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ taskjuggler = {
+ dependencies = ["mail" "term-ansicolor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ky3cydl3szhdyxsy4k6zxzjlbll7mlq025aj6xd5jmh49k3pfbp";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ term-ansicolor = {
+ dependencies = ["tins"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ tins = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pqj45n216zrz7yckdbdknlmhh187iqzx8fp76y2h0jrgqjfkxmj";
+ type = "gem";
+ };
+ version = "1.20.2";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tasknc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tasknc/default.nix
new file mode 100644
index 000000000000..46378aec33ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tasknc/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, makeWrapper, perl, ncurses5, taskwarrior }:
+
+stdenv.mkDerivation rec {
+ version = "2017-05-15";
+ pname = "tasknc";
+
+ src = fetchFromGitHub {
+ owner = "lharding";
+ repo = "tasknc";
+ rev = "c41d0240e9b848e432f01de735f28de93b934ae7";
+ sha256 = "0f7l7fy06p33vw6f6sjnjxfhw951664pmwhjl573jvmh6gi2h1yr";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper
+ perl # For generating the man pages with pod2man
+ ];
+
+ buildInputs = [ ncurses5 ];
+
+ hardeningDisable = [ "format" ];
+
+ buildFlags = [ "VERSION=${version}" ];
+
+ installPhase = ''
+ mkdir -p $out/bin/
+ mkdir -p $out/share/man/man1
+ mkdir -p $out/share/tasknc
+
+ DESTDIR=$out PREFIX= MANPREFIX=/share/man make install
+
+ wrapProgram $out/bin/tasknc --prefix PATH : ${taskwarrior}/bin
+ '';
+
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/lharding/tasknc";
+ description = "A ncurses wrapper around taskwarrior";
+ maintainers = with maintainers; [ matthiasbeyer infinisil ];
+ platforms = platforms.linux; # Cannot test others
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskopen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskopen/default.nix
new file mode 100644
index 000000000000..a60ca997ee03
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskopen/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv, makeWrapper, which, perl, perlPackages }:
+
+stdenv.mkDerivation {
+ name = "taskopen-1.1.4";
+ src = fetchurl {
+ url = "https://github.com/ValiValpas/taskopen/archive/v1.1.4.tar.gz";
+ sha256 = "774dd89f5c92462098dd6227e181268e5ec9930bbc569f25784000df185c71ba";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ which perl ] ++ (with perlPackages; [ JSON ]);
+
+ installPhase = ''
+ # We don't need a DESTDIR and an empty string results in an absolute path
+ # (due to the trailing slash) which breaks the build.
+ sed 's|$(DESTDIR)/||' -i Makefile
+
+ make PREFIX=$out
+ make PREFIX=$out install
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/taskopen \
+ --set PERL5LIB "$PERL5LIB"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Script for taking notes and open urls with taskwarrior";
+ homepage = "https://github.com/ValiValpas/taskopen";
+ platforms = platforms.linux;
+ license = stdenv.lib.licenses.free ;
+ maintainers = [ maintainers.winpat ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tasksh/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tasksh/default.nix
new file mode 100644
index 000000000000..4c577049f44a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tasksh/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, cmake, readline }:
+
+stdenv.mkDerivation rec {
+ pname = "tasksh";
+ version = "1.2.0";
+
+ enableParallelBuilding = true;
+
+ src = fetchurl {
+ url = "https://taskwarrior.org/download/${pname}-${version}.tar.gz";
+ sha256 = "1z8zw8lld62fjafjvy248dncjk0i4fwygw0ahzjdvyyppx4zjhkf";
+ };
+
+ buildInputs = [ readline ];
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "REPL for taskwarrior";
+ homepage = "http://tasktools.org";
+ license = licenses.mit;
+ maintainers = with maintainers; [ matthiasbeyer ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskwarrior/0001-bash-completion-quote-pattern-argument-to-grep.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskwarrior/0001-bash-completion-quote-pattern-argument-to-grep.patch
new file mode 100644
index 000000000000..8e5c0139e555
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskwarrior/0001-bash-completion-quote-pattern-argument-to-grep.patch
@@ -0,0 +1,28 @@
+From 0d677475b710b9bb61d4b3ac5435c36b47d3a155 Mon Sep 17 00:00:00 2001
+From: Peter Simons <simons@cryp.to>
+Date: Wed, 8 Feb 2017 11:28:42 +0100
+Subject: [PATCH] bash-completion: quote pattern argument to grep
+
+Without the quotes, bash might expand that pattern based on the contents of the
+current working directory or -- if nullglob is set -- the argument disappears
+outright if no directory entry matches.
+---
+ scripts/bash/task.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/bash/task.sh b/scripts/bash/task.sh
+index e0c7fb03..d15ed3eb 100644
+--- a/scripts/bash/task.sh
++++ b/scripts/bash/task.sh
+@@ -72,7 +72,7 @@ _task_offer_contexts() {
+ COMPREPLY=( $(compgen -W "$($taskcommand _context) define delete list none show" -- $cur) )
+ }
+
+-_task_context_alias=$($taskcommand show | grep alias.*context | cut -d' ' -f1 | cut -d. -f2)
++_task_context_alias=$($taskcommand show | grep "alias.*context" | cut -d' ' -f1 | cut -d. -f2)
+
+ _task()
+ {
+--
+2.11.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix
new file mode 100644
index 000000000000..67f2fd8927bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, cmake, libuuid, gnutls }:
+
+stdenv.mkDerivation rec {
+ pname = "taskwarrior";
+ version = "2.5.1";
+
+ src = fetchurl {
+ url = "https://taskwarrior.org/download/task-${version}.tar.gz";
+ sha256 = "059a9yc58wcicc6xxsjh1ph7k2yrag0spsahp1wqmsq6h7jwwyyq";
+ };
+
+ patches = [ ./0001-bash-completion-quote-pattern-argument-to-grep.patch ];
+
+ nativeBuildInputs = [ cmake libuuid gnutls ];
+
+ postInstall = ''
+ mkdir -p "$out/share/bash-completion/completions"
+ ln -s "../../doc/task/scripts/bash/task.sh" "$out/share/bash-completion/completions/task.bash"
+ mkdir -p "$out/share/fish/vendor_completions.d"
+ ln -s "../../../share/doc/task/scripts/fish/task.fish" "$out/share/fish/vendor_completions.d/"
+ mkdir -p "$out/share/zsh/site-functions"
+ ln -s "../../../share/doc/task/scripts/zsh/_task" "$out/share/zsh/site-functions/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Highly flexible command-line tool to manage TODO lists";
+ homepage = "https://taskwarrior.org";
+ license = licenses.mit;
+ maintainers = with maintainers; [ marcweber ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tdrop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tdrop/default.nix
new file mode 100644
index 000000000000..f9e2ea34b39e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tdrop/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper
+, xwininfo, xdotool, xprop, gawk, coreutils
+, gnugrep, procps }:
+
+stdenv.mkDerivation {
+ pname = "tdrop";
+ version = "unstable-2020-05-14";
+
+ src = fetchFromGitHub {
+ owner = "noctuid";
+ repo = "tdrop";
+ rev = "a9f2862515e5c190ac61d394e7fe7e1039871b89";
+ sha256 = "1zxhihgba33k8byjsracsyhby9qpdngbly6c8hpz3pbsyag5liwc";
+ };
+
+ dontBuild = true;
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = let
+ binPath = lib.makeBinPath [
+ xwininfo
+ xdotool
+ xprop
+ gawk
+ coreutils
+ gnugrep
+ procps
+ ];
+ in ''
+ wrapProgram $out/bin/tdrop --prefix PATH : ${binPath}
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ meta = with stdenv.lib; {
+ description = "A Glorified WM-Independent Dropdown Creator";
+ homepage = "https://github.com/noctuid/tdrop";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ wedens ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/teleprompter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/teleprompter/default.nix
new file mode 100644
index 000000000000..96265356ead7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/teleprompter/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchurl, electron_10, makeDesktopItem, makeWrapper, nodePackages, autoPatchelfHook}:
+
+let
+ electron = electron_10;
+in
+stdenv.mkDerivation rec {
+ pname = "teleprompter";
+ version = "2.4.0";
+
+ src = fetchurl {
+ url = "https://github.com/ImaginarySense/Imaginary-Teleprompter-Electron/releases/download/${lib.versions.majorMinor version}/imaginary-teleprompter-${version}.tar.gz";
+ sha256 = "bgdtK8l5d26avv1WUw9cfOgZrIL1q/a9890Ams4yidQ=";
+ };
+
+ dontBuild = true;
+ dontStrip = true;
+
+ nativeBuildInputs = [ autoPatchelfHook makeWrapper nodePackages.asar ];
+ installPhase = ''
+ mkdir -p $out/bin $out/opt/teleprompter $out/share/applications
+ asar e resources/app.asar $out/opt/teleprompter/resources/app.asar.unpacked
+ ln -s ${desktopItem}/share/applications/* $out/share/applications
+ '';
+
+ postFixup = ''
+ makeWrapper ${electron}/bin/electron $out/bin/teleprompter \
+ --add-flags "$out/opt/teleprompter/resources/app.asar.unpacked --without-update"
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "teleprompter";
+ exec = "teleprompter";
+ type = "Application";
+ desktopName = "Teleprompter";
+ };
+
+ meta = with lib; {
+ description = "The most complete, free, teleprompter app on the web";
+ license = [ licenses.gpl3Plus ];
+ homepage = "https://github.com/ImaginarySense/Teleprompter-Core";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ Scriptkiddi ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tellico/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tellico/default.nix
new file mode 100644
index 000000000000..fa725ad9c96c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tellico/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, fetchurl
+, mkDerivation
+, libkcddb
+, kinit
+, kdelibs4support
+, solid
+, kxmlgui
+, karchive
+, kfilemetadata
+, khtml
+, knewstuff
+, libksane
+, cmake
+, exempi
+, extra-cmake-modules
+, libcdio
+, poppler
+, makeWrapper
+, kdoctools
+, taglib
+}:
+
+mkDerivation rec {
+ name = "tellico";
+ version = "3.3.3";
+
+ src = fetchurl {
+ # version 3.3.0 just uses 3.3 in its name
+ urls = [
+ "https://tellico-project.org/files/tellico-${version}.tar.xz"
+ "https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz"
+ ];
+ sha256 = "sha256-9cdbUTa2Mt3/yNylOSdGjgDETD74sR0dU4C58uW0Y6o=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ kdoctools
+ makeWrapper
+ ];
+
+ buildInputs = [
+ cmake
+ exempi
+ extra-cmake-modules
+ karchive
+ libkcddb
+ kdelibs4support
+ kfilemetadata
+ khtml
+ knewstuff
+ kxmlgui
+ libcdio
+ libksane
+ poppler
+ solid
+ taglib
+ ];
+
+ meta = with lib; {
+ description = "Collection management software, free and simple";
+ homepage = "https://tellico-project.org/";
+ license = with licenses; [ gpl2 gpl3 ];
+ maintainers = with maintainers; [ numkem ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tellico/hex.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/tellico/hex.patch
new file mode 100644
index 000000000000..999c502287e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tellico/hex.patch
@@ -0,0 +1,15 @@
+index 7ea81c7..0c19767 100644
+--- a/src/utils/iso5426converter.cpp
++++ b/src/utils/iso5426converter.cpp
+@@ -1211,7 +1211,11 @@ QChar Iso5426Converter::getCombiningChar(uint c) {
+ return 0x1EF1; // SMALL LETTER U WITH HORN AND DOT BELOW
+
+ default:
++#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
++ myDebug() << "no match for" << hex << c;
++#else
+ myDebug() << "no match for" << Qt::hex << c;
++#endif
+ return QChar();
+ }
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/termdown/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/termdown/default.nix
new file mode 100644
index 000000000000..ad6f9e9382b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/termdown/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, fetchFromGitHub
+, buildPythonApplication
+, click
+, pyfiglet
+, dateutil
+, setuptools
+}:
+
+buildPythonApplication rec {
+ pname = "termdown";
+ version = "1.17.0";
+
+ src = fetchFromGitHub {
+ rev = version;
+ sha256 = "1sd9z5n2a4ir35832wgxs68vwav7wxhq39b5h8pq934mp8sl3v2k";
+ repo = "termdown";
+ owner = "trehn";
+ };
+
+ propagatedBuildInputs = [ dateutil click pyfiglet setuptools ];
+
+ meta = with stdenv.lib; {
+ description = "Starts a countdown to or from TIMESPEC";
+ longDescription = "Countdown timer and stopwatch in your terminal";
+ homepage = "https://github.com/trehn/termdown";
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix
new file mode 100644
index 000000000000..cde53ef41654
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, runtimeShell, lib, fetchzip }:
+
+stdenv.mkDerivation rec {
+ pname = "terminal-notifier";
+
+ version = "2.0.0";
+
+ src = fetchzip {
+ url = "https://github.com/alloy/terminal-notifier/releases/download/${version}/terminal-notifier-${version}.zip";
+ sha256 = "0gi54v92hi1fkryxlz3k5s5d8h0s66cc57ds0vbm1m1qk3z4xhb0";
+ stripRoot = false;
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/Applications
+ mkdir -p $out/bin
+ cp -r terminal-notifier.app $out/Applications
+ cat >$out/bin/terminal-notifier <<EOF
+ #!${runtimeShell}
+ cd $out/Applications/terminal-notifier.app
+ exec ./Contents/MacOS/terminal-notifier "\$@"
+ EOF
+ chmod +x $out/bin/terminal-notifier
+ '';
+
+ meta = with lib; {
+ maintainers = with maintainers; [ cstrahan ];
+ homepage = "https://github.com/julienXX/terminal-notifier";
+ license = licenses.mit;
+ platforms = platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix
new file mode 100644
index 000000000000..52116a52fbb7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "terminal-parrot";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "jmhobbs";
+ repo = "terminal-parrot";
+ rev = version;
+ sha256 = "1b4vr4s1zpkpf5kc1r2kdlp3hf88qp1f7h05g8kd62zf4sfbj722";
+ };
+
+ vendorSha256 = "1qalnhhq3fmyzj0hkzc5gk9wbypr558mz3ik5msw7fid68k2i48c";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Shows colorful, animated party parrot in your terminial";
+ homepage = "https://github.com/jmhobbs/terminal-parrot";
+ license = licenses.mit;
+ maintainers = [ maintainers.heel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix
new file mode 100644
index 000000000000..5988f569109b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, buildPythonApplication
+, fetchFromGitHub
+, fetchPypi
+, bibtool
+, pybtex
+, pymupdf
+, pynvim
+, pyperclip
+, roman
+, pdfrw
+, pagelabels
+, setuptools
+}:
+
+buildPythonApplication {
+ pname = "termpdf.py";
+ version = "2019-10-03";
+
+ src = fetchFromGitHub {
+ owner = "dsanson";
+ repo = "termpdf.py";
+ rev = "4f3bdf4b5a00801631f2498f2c38c81e0a588ae2";
+ sha256 = "05gbj2fqzqndq1mx6g9asa7i6z8a9jdjrvilfwx8lg23cs356m6m";
+ };
+
+ propagatedBuildInputs = [
+ bibtool
+ pybtex
+ pymupdf
+ pyperclip
+ roman
+ pagelabels
+ pdfrw
+ pynvim
+ setuptools
+ ];
+
+ # upstream doesn't contain tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = ''
+ A graphical pdf (and epub, cbz, ...) reader that works
+ inside the kitty terminal.
+ '';
+ homepage = "https://github.com/dsanson/termpdf.py";
+ maintainers = with maintainers; [ teto ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/teseq/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/teseq/default.nix
new file mode 100644
index 000000000000..1ba22911c51f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/teseq/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+let
+ version = "1.1.1";
+in
+stdenv.mkDerivation {
+ pname = "teseq";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://gnu/teseq/teseq-${version}.tar.gz";
+ sha256 = "08ln005qciy7f3jhv980kfhhfmh155naq59r5ah9crz1q4mx5yrj";
+ };
+
+ meta = {
+ homepage = "https://www.gnu.org/software/teseq/";
+ description = "Escape sequence illuminator";
+ license = stdenv.lib.licenses.gpl3;
+
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.vaibhavsagar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
new file mode 100644
index 000000000000..2b5c9da4b17a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, runtimeShell }:
+
+stdenv.mkDerivation {
+ name = "thinkingrock-binary-2.2.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/thinkingrock/ThinkingRock/TR%202.2.1/tr-2.2.1.tar.gz";
+ sha256 = "0hnwvvyc8miiz8w2g4iy7s4rgfy0kfbncgbgfzpsq6nrzq334kgm";
+ };
+
+ /* it would be a really bad idea to put thinkingrock tr executable in PATH!
+ the tr.sh script does use the coreutils tr itself
+ That's why I've renamed the wrapper and called it thinkingrock
+ However you may not rename the bin/tr script cause it will notice and throw an
+ "java.lang.IllegalArgumentException: Malformed branding token: thinkingrock"
+ exception. I hope that's fine
+ */
+
+ buildPhase = ''
+ # only keep /bin/tr
+ ls -1 bin/* | grep -ve 'bin/tr''$' | xargs rm
+ # don't keep the other .exe file either
+ find . -iname "*.exe" | xargs -n1 rm
+ mkdir -p $out/{nix-support/tr-files,bin}
+ cp -r . $out/nix-support/tr-files
+ cat >> $out/bin/thinkingrock << EOF
+ #!${runtimeShell}
+ exec $out/nix-support/tr-files/bin/tr "$@"
+ EOF
+ chmod +x $out/bin/thinkingrock
+ '';
+
+ installPhase = ":";
+
+ meta = with stdenv.lib; {
+ description = "Task management system";
+ homepage = "http://www.thinkingrock.com.au/";
+ license = licenses.cddl;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tickrs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tickrs/default.nix
new file mode 100644
index 000000000000..754de71f1ae7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tickrs/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub, perl }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "tickrs";
+ version = "0.7.1";
+
+ src = fetchFromGitHub {
+ owner = "tarkah";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "159smcjrf5193yijfpvy1g9b1gin72xwbjghfyrrphwscwhb215z";
+ };
+
+ cargoSha256 = "1s95b3x7vs1z8xs7j6j80y6mfpy5bdgnzmzn3qa9zr6cghabbf6n";
+
+ nativeBuildInputs = [ perl ];
+
+ meta = with stdenv.lib; {
+ description = "Realtime ticker data in your terminal";
+ homepage = "https://github.com/tarkah/tickrs";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mredaelli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/timewarrior/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
new file mode 100644
index 000000000000..7b1d3c302b1d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "timewarrior";
+ version = "1.4.2";
+
+ enableParallelBuilding = true;
+
+ src = fetchFromGitHub {
+ owner = "GothenburgBitFactory";
+ repo = "timewarrior";
+ rev = "v${version}";
+ sha256 = "0qvhpva0hmhybn0c2aajndw5vnxar1jw4pjjajd2k2cr6vax29dw";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "A command-line time tracker";
+ homepage = "https://timewarrior.net";
+ license = licenses.mit;
+ maintainers = with maintainers; [ matthiasbeyer mrVanDalo ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tint2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tint2/default.nix
new file mode 100644
index 000000000000..326dd3c0d92a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tint2/default.nix
@@ -0,0 +1,81 @@
+{ stdenv
+, fetchFromGitLab
+, pkg-config
+, cmake
+, gettext
+, cairo
+, pango
+, pcre
+, glib
+, imlib2
+, gtk2
+, libXinerama
+, libXrender
+, libXcomposite
+, libXdamage
+, libX11
+, libXrandr
+, librsvg
+, libpthreadstubs
+, libXdmcp
+, libstartup_notification
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tint2";
+ version = "16.7";
+
+ src = fetchFromGitLab {
+ owner = "o9000";
+ repo = "tint2";
+ rev = version;
+ sha256 = "1937z0kixb6r82izj12jy4x8z4n96dfq1hx05vcsvsg1sx3wxgb0";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ cmake
+ gettext
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ cairo
+ pango
+ pcre
+ glib
+ imlib2
+ gtk2
+ libXinerama
+ libXrender
+ libXcomposite
+ libXdamage
+ libX11
+ libXrandr
+ librsvg
+ libpthreadstubs
+ libXdmcp
+ libstartup_notification
+ ];
+
+ cmakeFlags = [
+ "-Ddocdir=share/doc/${pname}"
+ ];
+
+ postPatch = ''
+ for f in ./src/launcher/apps-common.c \
+ ./src/launcher/icon-theme-common.c
+ do
+ substituteInPlace $f --replace /usr/share/ /run/current-system/sw/share/
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.com/o9000/tint2";
+ description = "Simple panel/taskbar unintrusive and light (memory, cpu, aestetic)";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tipp10/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tipp10/default.nix
new file mode 100644
index 000000000000..689c5aa3a9ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tipp10/default.nix
@@ -0,0 +1,25 @@
+{ cmake, stdenv, mkDerivation, fetchFromGitLab,
+ qtmultimedia, qttools, ... }:
+
+mkDerivation rec {
+ pname = "tipp10";
+ version = "unstable-20200616";
+
+ src = fetchFromGitLab {
+ owner = "tipp10";
+ repo = "tipp10";
+ rev = "2dd6d45c8a91cff7075675d8875721456cdd5f1b";
+ sha256 = "16x51rv4r6cz5vsmrfbakqzbfxy456h82ibzacknp35f41cjdqq4";
+ };
+
+ nativeBuildInputs = [ cmake qttools ];
+ buildInputs = [ qtmultimedia ];
+
+ meta = with stdenv.lib; {
+ description = "Learn and train typing with the ten-finger system";
+ homepage = "https://gitlab.com/a_a/tipp10";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ petabyteboy ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix
new file mode 100644
index 000000000000..455876a772b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, sqlite, zlib, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "tippecanoe";
+ version = "1.36.0";
+
+ src = fetchFromGitHub {
+ owner = "mapbox";
+ repo = pname;
+ rev = version;
+ sha256 = "0lbmhly4ivnqc6qk1k3sdqvsg6x3nfd8gnjx846bhqj4wag3f88m";
+ };
+
+ buildInputs = [ sqlite zlib ];
+ checkInputs = [ perl ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ enableParallelBuilding = true;
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Build vector tilesets from large collections of GeoJSON features";
+ homepage = "https://github.com/mapbox/tippecanoe";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = with platforms; linux ++ darwin;
+ broken = stdenv.hostPlatform.isAarch64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tiv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tiv/default.nix
new file mode 100644
index 000000000000..3790a9fdd069
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tiv/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, imagemagick }:
+
+stdenv.mkDerivation rec {
+ pname = "tiv";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "stefanhaustein";
+ repo = "TerminalImageViewer";
+ rev = "v${version}";
+ sha256 = "17zqbwj2imk6ygyc142mw6v4fh7h4rd5vzn5wxr9gs0g8qdc6ixn";
+ };
+
+ buildInputs = [ imagemagick ];
+
+ makeFlags = [ "prefix=$(out)" ];
+
+ preConfigure = "cd src/main/cpp";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/stefanhaustein/TerminalImageViewer";
+ description = "Small C++ program to display images in a (modern) terminal using RGB ANSI codes and unicode block graphics characters";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ magnetophon ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tmatrix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tmatrix/default.nix
new file mode 100644
index 000000000000..e63370566880
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tmatrix/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, installShellFiles
+, ncurses
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tmatrix";
+ version = "1.3";
+
+ src = fetchFromGitHub {
+ owner = "M4444";
+ repo = "TMatrix";
+ rev = "v${version}";
+ sha256 = "1cvgxmdpdzpl8w4z3sh4g5pbd15rd8s1kcspi9v95yf9rydyy69s";
+ };
+
+ nativeBuildInputs = [ cmake installShellFiles ];
+ buildInputs = [ ncurses ];
+
+ postInstall = ''
+ installManPage ../tmatrix.6
+ '';
+
+ meta = with lib; {
+ description = "Terminal based replica of the digital rain from The Matrix";
+ longDescription = ''
+ TMatrix is a program that simulates the digital rain form The Matrix.
+ It's focused on being the most accurate replica of the digital rain effect
+ achievable on a typical terminal, while also being customizable and
+ performant.
+ '';
+ homepage = "https://github.com/M4444/TMatrix";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ infinisil Br1ght0ne ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tnef/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tnef/default.nix
new file mode 100644
index 000000000000..40505c4fdbea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tnef/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ version = "1.4.18";
+ pname = "tnef";
+
+ src = fetchFromGitHub {
+ owner = "verdammelt";
+ repo = "tnef";
+ rev = version;
+ sha256 = "104g48mcm00bgiyzas2vf86331w7bnw7h3bc11ib4lp7rz6zqfck";
+ };
+
+ doCheck = true;
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ description = "Unpacks MIME attachments of type application/ms-tnef";
+ longDescription = ''
+ TNEF is a program for unpacking MIME attachments of type "application/ms-tnef". This is a Microsoft only attachment.
+
+ Due to the proliferation of Microsoft Outlook and Exchange mail servers, more and more mail is encapsulated into this format.
+
+ The TNEF program allows one to unpack the attachments which were encapsulated into the TNEF attachment. Thus alleviating the need to use Microsoft Outlook to view the attachment.
+ '';
+ homepage = "https://github.com/verdammelt/tnef";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/todiff/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/todiff/default.nix
new file mode 100644
index 000000000000..431f922eeeec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/todiff/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "todiff";
+ version = "0.6.1";
+
+ src = fetchFromGitHub {
+ owner = "Ekleog";
+ repo = "todiff";
+ rev = version;
+ sha256 = "1y0v8nkaqb8kn61xwarpbyrq019gxx1f5f5p1hzw73nqxadc1rcm";
+ };
+
+ cargoSha256 = "1vyc230a2b0dry2057mkdkrjb7s9d0p43fnz4q67aqrpyr4jxwx2";
+
+ checkPhase = "cargo test --features=integration_tests";
+
+ meta = with stdenv.lib; {
+ description = "Human-readable diff for todo.txt files";
+ homepage = "https://github.com/Ekleog/todiff";
+ maintainers = with maintainers; [ ekleog ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix
new file mode 100644
index 000000000000..cdcb54cbc6c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, dpkg, atk, at-spi2-atk, glib, pango, gdk-pixbuf
+, gtk3, cairo, freetype, fontconfig, dbus, xorg, nss, nspr, alsaLib, cups, expat
+, udev, libpulseaudio, util-linux, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "todoist-electron";
+ version = "1.24.0";
+
+ src = fetchurl {
+ url = "https://github.com/KryDos/todoist-linux/releases/download/${version}/Todoist_${version}_amd64.deb";
+ sha256 = "0g35518z6nf6pnfyx4ax75rq8b8br72mi6wv6jzgac9ric1q4h2s";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "Todoist";
+ exec = "todoist %U";
+ icon = "todoist";
+ comment = "Todoist for Linux";
+ desktopName = "Todoist";
+ categories = "Utility";
+ };
+
+ nativeBuildInputs = [ makeWrapper dpkg ];
+ unpackPhase = ''
+ mkdir pkg
+ dpkg-deb -x $src pkg
+ sourceRoot=pkg
+ '';
+ installPhase = let
+ libPath = lib.makeLibraryPath ([
+ stdenv.cc.cc gtk3 atk at-spi2-atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
+ nss nspr alsaLib libpulseaudio cups expat udev util-linux
+ ] ++ (with xorg; [
+ libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb
+ libXrender libX11 libXtst libXScrnSaver
+ ]));
+ in ''
+ mkdir -p "$out/bin"
+ mv opt "$out/"
+ mv usr/share "$out/share"
+
+ # Patch binary
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libPath}:\$ORIGIN" \
+ $out/opt/Todoist/todoist
+
+ # Hacky workaround for RPATH problems
+ makeWrapper $out/opt/Todoist/todoist $out/bin/todoist \
+ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpulseaudio udev ]}
+
+ # Desktop item
+ mkdir -p "$out/share"
+ rm -r "$out/share/applications"
+ cp -r "${desktopItem}/share/applications" "$out/share/applications"
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/KryDos/todoist-linux";
+ description = "The Linux wrapper for Todoist web version";
+ platforms = [ "x86_64-linux" ];
+ license = licenses.mit;
+ maintainers = with maintainers; [ i077 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/todoist/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/todoist/default.nix
new file mode 100644
index 000000000000..68388376f8f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/todoist/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "todoist";
+ version = "0.15.0";
+
+ src = fetchFromGitHub {
+ owner = "sachaos";
+ repo = "todoist";
+ rev = "v${version}";
+ sha256 = "0d3c621jaqxd6i58xm6nvi0avrh5mk23r169i95bn73igzw62w33";
+ };
+
+ vendorSha256 = "0cznb8glh36dwyyn1gx1ggkwa9zffrrxg52k78brnaczsl0rsmky";
+
+ doCheck = false;
+
+ meta = {
+ homepage = "https://github.com/sachaos/todoist";
+ description = "Todoist CLI Client";
+ license = lib.licenses.mit;
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/todolist/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/todolist/default.nix
new file mode 100644
index 000000000000..669c06a9480e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/todolist/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "todolist";
+ version = "v0.8.1";
+
+ goPackagePath = "github.com/gammons/todolist";
+
+ src = fetchFromGitHub {
+ owner = "gammons";
+ repo = "todolist";
+ rev = version;
+ sha256 = "0dazfymby5xm4482p9cyj23djmkz5q7g79cqm2d85mczvz7vks8p";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Simple GTD-style todo list for the command line";
+ homepage = "http://todolist.site";
+ license = licenses.mit;
+ maintainers = with maintainers; [ uvnikita ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro b/infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro
new file mode 100644
index 000000000000..e86156313d1f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro
@@ -0,0 +1,19 @@
+QT += core network widgets
+
+DEFINES += APP_ENVIRONMENT=\\\"production\\\"
+DEFINES += APP_VERSION=\\\"@version@\\\"
+
+TARGET = toggldesktop
+TEMPLATE = app
+
+SOURCES += *.cpp
+HEADERS += *.h
+FORMS += *.ui
+RESOURCES += *.qrc
+
+target.path = $$PREFIX
+
+INSTALLS += target
+
+CONFIG += link_pkgconfig
+PKGCONFIG += bugsnag-qt qxtglobalshortcut qt-oauth-lib toggl x11 xscrnsaver
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix
new file mode 100644
index 000000000000..eb49853885b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix
@@ -0,0 +1,149 @@
+{ mkDerivation, lib, fetchzip, buildEnv, makeDesktopItem, runCommand, writeText, pkgconfig
+, cmake, qmake, cacert, jsoncpp, libX11, libXScrnSaver, lua, openssl, poco
+, qtbase, qtwebengine, qtx11extras, sqlite }:
+
+let
+ name = "toggldesktop-${version}";
+ version = "7.4.231";
+
+ src = fetchzip {
+ url = "https://github.com/toggl/toggldesktop/archive/v${version}.tar.gz";
+ sha256 = "01hqkx9dljnhwnyqi6mmzfp02hnbi2j50rsfiasniqrkbi99x9v1";
+ };
+
+ bugsnag-qt = mkDerivation rec {
+ pname = "bugsnag-qt";
+ version = "20180522.005732";
+
+ src = fetchzip {
+ url = "https://github.com/yegortimoshenko/bugsnag-qt/archive/${version}.tar.gz";
+ sha256 = "02s6mlggh0i4a856md46dipy6mh47isap82jlwmjr7hfsk2ykgnq";
+ };
+
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [ qtbase ];
+ };
+
+ qxtglobalshortcut = mkDerivation rec {
+ pname = "qxtglobalshortcut";
+ version = "f584471dada2099ba06c574bdfdd8b078c2e3550";
+
+ src = fetchzip {
+ url = "https://github.com/hluk/qxtglobalshortcut/archive/${version}.tar.gz";
+ sha256 = "1iy17gypav10z8aa62s5jb6mq9y4kb9ms4l61ydmk3xwlap7igw1";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ qtbase qtx11extras ];
+ };
+
+ qt-oauth-lib = mkDerivation rec {
+ pname = "qt-oauth-lib";
+ version = "20190125.190943";
+
+ src = fetchzip {
+ url = "https://github.com/yegortimoshenko/qt-oauth-lib/archive/${version}.tar.gz";
+ sha256 = "0zmfgvdf6n79mgfvbda7lkdxxlzjmy86436gqi2r5x05vq04sfrj";
+ };
+
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [ qtbase qtwebengine ];
+ };
+
+ poco-pc = writeText "poco.pc" ''
+ Name: Poco
+ Description: ${poco.meta.description}
+ Version: ${poco.version}
+ Libs: -L${poco}/lib -lPocoDataSQLite -lPocoData -lPocoNet -lPocoNetSSL -lPocoCrypto -lPocoUtil -lPocoXML -lPocoFoundation
+ Cflags: -I${poco}/include/Poco
+ '';
+
+ poco-pc-wrapped = runCommand "poco-pc-wrapped" {} ''
+ mkdir -p $out/lib/pkgconfig && ln -s ${poco-pc} $_/poco.pc
+ '';
+
+ libtoggl = mkDerivation {
+ name = "libtoggl-${version}";
+ inherit src version;
+
+ sourceRoot = "source/src";
+
+ nativeBuildInputs = [ qmake pkgconfig ];
+ buildInputs = [ jsoncpp lua openssl poco poco-pc-wrapped sqlite libX11 ];
+
+ postPatch = ''
+ cat ${./libtoggl.pro} > libtoggl.pro
+ rm get_focused_window_{mac,windows}.cc
+ '';
+ };
+
+ toggldesktop = mkDerivation {
+ name = "${name}-unwrapped";
+ inherit src version;
+
+ sourceRoot = "source/src/ui/linux/TogglDesktop";
+
+ postPatch = ''
+ substituteAll ${./TogglDesktop.pro} TogglDesktop.pro
+ substituteInPlace toggl.cpp \
+ --replace ./../../../toggl_api.h toggl_api.h
+ '';
+
+ postInstall = ''
+ ln -s ${cacert}/etc/ssl/certs/ca-bundle.crt $out/cacert.pem
+ '';
+
+ nativeBuildInputs = [ qmake pkgconfig ];
+
+ buildInputs = [
+ bugsnag-qt
+ libtoggl
+ qxtglobalshortcut
+ qtbase
+ qtwebengine
+ qt-oauth-lib
+ qtx11extras
+ libX11
+ libXScrnSaver
+ ];
+ };
+
+ toggldesktop-icons = mkDerivation {
+ name = "${name}-icons";
+ inherit (toggldesktop) src sourceRoot;
+
+ installPhase = ''
+ for f in icons/*; do
+ mkdir -p $out/share/icons/hicolor/$(basename $f)/apps
+ mv $f/toggldesktop.png $_
+ done
+ '';
+ };
+
+ toggldesktop-wrapped = runCommand "toggldesktop-wrapped" {} ''
+ mkdir -p $out/bin && ln -s ${toggldesktop}/toggldesktop $_
+ '';
+
+ desktopItem = makeDesktopItem rec {
+ categories = "Utility;";
+ desktopName = "Toggl";
+ genericName = desktopName;
+ name = "toggldesktop";
+ exec = "${toggldesktop-wrapped}/bin/toggldesktop";
+ icon = "toggldesktop";
+ };
+in
+
+buildEnv {
+ inherit name;
+ paths = [ desktopItem toggldesktop-icons toggldesktop-wrapped ];
+
+ meta = with lib; {
+ broken = true; # libtoggl is broken
+ description = "Client for Toggl time tracking service";
+ homepage = "https://github.com/toggl/toggldesktop";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ yegortimoshenko ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro b/infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro
new file mode 100644
index 000000000000..c8303440fe67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro
@@ -0,0 +1,20 @@
+TARGET = toggl
+TEMPLATE = lib
+
+SOURCES += *.cc
+HEADERS += *.h
+
+headers.files = $$HEADERS
+headers.path = $$PREFIX/include
+target.path = $$PREFIX/lib
+
+INSTALLS += headers target
+
+CONFIG += create_prl create_pc link_pkgconfig
+PKGCONFIG += jsoncpp openssl lua poco sqlite3 x11
+
+QMAKE_PKGCONFIG_NAME = $$TARGET
+QMAKE_PKGCONFIG_PREFIX = $$PREFIX
+QMAKE_PKGCONFIG_LIBDIR = $$target.path
+QMAKE_PKGCONFIG_INCDIR = $$headers.path
+QMAKE_PKGCONFIG_DESTDIR = pkgconfig
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tomboy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tomboy/default.nix
new file mode 100644
index 000000000000..ff4faf139e6c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tomboy/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, itstool, intltool, pkgconfig
+, libxml2, gnome2, atk, gtk2, glib
+, mono, mono-addins, dbus-sharp-2_0, dbus-sharp-glib-2_0, gnome-sharp, gtk-sharp-2_0
+, makeWrapper, lib}:
+
+let
+ version = "1.15.9";
+in
+
+stdenv.mkDerivation {
+ pname = "tomboy";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/tomboy-notes/tomboy/releases/download/${version}/tomboy-${version}.tar.xz";
+ sha256 = "0j5jmd079bm2fydqaic5ymbfdxna3qlx6fkp2mqhgcdr7prsbl3q";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ itstool intltool
+ libxml2 gnome2.GConf atk gtk2
+ mono mono-addins dbus-sharp-2_0 dbus-sharp-glib-2_0 gnome-sharp gtk-sharp-2_0
+ makeWrapper ];
+
+ postInstall = ''
+ makeWrapper "${mono}/bin/mono" "$out/bin/tomboy" \
+ --add-flags "$out/lib/tomboy/Tomboy.exe" \
+ --prefix MONO_GAC_PREFIX : ${dbus-sharp-2_0} \
+ --prefix MONO_GAC_PREFIX : ${dbus-sharp-glib-2_0} \
+ --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \
+ --prefix MONO_GAC_PREFIX : ${gnome-sharp} \
+ --prefix MONO_GAC_PREFIX : ${mono-addins} \
+ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk-sharp-2_0 gtk-sharp-2_0.gtk gnome2.GConf ]}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/Apps/Tomboy";
+ description = "A simple note-taking application with synchronization";
+ platforms = platforms.linux;
+ license = stdenv.lib.licenses.lgpl2;
+ maintainers = with maintainers; [ stesie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/toot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/toot/default.nix
new file mode 100644
index 000000000000..f46af56ed45f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/toot/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ version = "0.27.0";
+ name = "toot-${version}";
+
+ src = fetchFromGitHub {
+ owner = "ihabunek";
+ repo = "toot";
+ rev = version;
+ sha256 = "197g9lvwg8qnsf18kifcqdj3cpfdnxz9vay766rn9bi4nfz0s6j2";
+ };
+
+ checkInputs = with python3Packages; [ pytest ];
+
+ propagatedBuildInputs = with python3Packages;
+ [ requests beautifulsoup4 future wcwidth urwid ];
+
+ checkPhase = ''
+ py.test
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Mastodon CLI interface";
+ homepage = "https://github.com/ihabunek/toot";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.matthiasbeyer ];
+ };
+
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tootle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tootle/default.nix
new file mode 100644
index 000000000000..9c6008b79349
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tootle/default.nix
@@ -0,0 +1,78 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, fetchpatch
+, vala
+, meson
+, ninja
+, pkgconfig
+, python3
+, libgee
+, gsettings-desktop-schemas
+, gnome3
+, pantheon
+, wrapGAppsHook
+, gtk3
+, json-glib
+, glib
+, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tootle";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "bleakgrey";
+ repo = pname;
+ rev = version;
+ sha256 = "1z3wyx316nns6gi7vlvcfmalhvxncmvcmmlgclbv6b6hwl5x2ysi";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ glib-networking
+ gnome3.libsoup
+ gsettings-desktop-schemas
+ gtk3
+ json-glib
+ libgee
+ pantheon.granite
+ ];
+
+ patches = [
+ # Fix build with Vala 0.46
+ # https://github.com/bleakgrey/tootle/pull/164
+ (fetchpatch {
+ url = "https://github.com/worldofpeace/tootle/commit/0a88bdad6d969ead1e4058b1a19675c9d6857b16.patch";
+ sha256 = "0xyx00pgswnhxxbsxngsm6khvlbfcl6ic5wv5n64x7klk8rzh6cm";
+ })
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Simple Mastodon client designed for elementary OS";
+ homepage = "https://github.com/bleakgrey/tootle";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/topydo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/topydo/default.nix
new file mode 100644
index 000000000000..6db651ff3929
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/topydo/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, python3Packages, fetchFromGitHub, glibcLocales }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "topydo";
+ version = "0.13";
+
+ src = fetchFromGitHub {
+ owner = "bram85";
+ repo = pname;
+ rev = version;
+ sha256 = "0b3dz137lpbvpjvfy42ibqvj3yk526x4bpn819fd11lagn77w69r";
+ };
+
+ propagatedBuildInputs = [
+ arrow
+ icalendar
+ glibcLocales
+ prompt_toolkit
+ urwid
+ watchdog
+ ];
+
+ checkInputs = [ mock freezegun pylint ];
+
+ # Skip test that has been reported multiple times upstream without result:
+ # bram85/topydo#271, bram85/topydo#274.
+ checkPhase = ''
+ substituteInPlace test/test_revert_command.py --replace 'test_revert_ls' 'dont_test_revert_ls'
+ python -m unittest discover
+ '';
+
+ LC_ALL="en_US.UTF-8";
+
+ meta = with stdenv.lib; {
+ description = "A cli todo application compatible with the todo.txt format";
+ homepage = "https://github.com/bram85/topydo";
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix
new file mode 100644
index 000000000000..2bbb95d01ae7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchgit, qt4, qmake4Hook, trousers }:
+
+stdenv.mkDerivation rec {
+ version = "0.8.1";
+ pname = "tpmmanager";
+
+ src = fetchgit {
+ url = "https://github.com/Sirrix-AG/TPMManager";
+ rev = "9f989206635a6d2c1342576c90fa73eb239519cd";
+ sha256 = "24a606f88fed67ed0d0e61dc220295e9e1ab8db3ef3d028fa34b04ff30652d8e";
+ };
+
+ nativeBuildInputs = [ qmake4Hook ];
+
+ buildInputs = [ qt4 trousers ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ install -Dpm755 -D bin/tpmmanager $out/bin/tpmmanager
+
+ mkdir -p $out/share/applications
+ cat > $out/share/applications/tpmmanager.desktop <<EOF
+ [Desktop Entry]
+ Type=Application
+ Version=1.0
+ Name=tpmmanager
+ Comment=TPM manager
+ Exec=$out/bin/tpmmanager
+ Terminal=false
+ EOF
+ '';
+
+ meta = {
+ homepage = "https://projects.sirrix.com/trac/tpmmanager";
+ description = "Tool for managing the TPM";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ tstrobel ];
+ platforms = with stdenv.lib.platforms; linux;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/translate-shell/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
new file mode 100644
index 000000000000..62e66055a2f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, makeWrapper, curl, fribidi, rlwrap, gawk, groff, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "translate-shell";
+ version = "0.9.6.12";
+
+ src = fetchFromGitHub {
+ owner = "soimort";
+ repo = "translate-shell";
+ rev = "v${version}";
+ sha256 = "075vqnha21rhr1b61dim7dqlfwm1yffyzcaa83s36rpk9r5sddzx";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/trans \
+ --prefix PATH : ${stdenv.lib.makeBinPath [
+ gawk
+ curl
+ ncurses
+ rlwrap
+ groff
+ fribidi
+ ]}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.soimort.org/translate-shell";
+ description = "Command-line translator using Google Translate, Bing Translator, Yandex.Translate, and Apertium";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ ebzzry infinisil ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tthsum/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tthsum/default.nix
new file mode 100644
index 000000000000..792b80d04629
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tthsum/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "tthsum";
+ version = "1.3.2";
+
+ src = fetchurl {
+ url = "http://tthsum.devs.nu/pkg/tthsum-${version}.tar.bz2";
+ sha256 = "0z6jq8lbg9rasv98kxfs56936dgpgzsg3yc9k52878qfw1l2bp59";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man/man1
+ cp share/tthsum.1.gz $out/share/man/man1
+ cp obj-unix/tthsum $out/bin
+ '';
+
+ doCheck = !stdenv.isDarwin;
+
+ meta = with stdenv.lib; {
+ description = "An md5sum-alike program that works with Tiger/THEX hashes";
+ longDescription = ''
+ tthsum generates or checks TTH checksums (root of the THEX hash
+ tree). The Merkle Hash Tree, invented by Ralph Merkle, is a hash
+ construct that exhibits desirable properties for verifying the
+ integrity of files and file subranges in an incremental or
+ out-of-order fashion. tthsum uses the Tiger hash algorithm for
+ both the internal and the leaf nodes.
+
+ The specification of the Tiger hash algorithm is at:
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger/
+
+ The specification of the THEX algorithm is at:
+ http://adc.sourceforge.net/draft-jchapweske-thex-02.html
+ '';
+ homepage = "http://tthsum.devs.nu/";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.ebzzry ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
new file mode 100644
index 000000000000..00e6efb713e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "tty-solitaire";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "mpereira";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0kix7wfy2bda8cw5kfm7bm5acd5fqmdl9g52ms9bza4kf2jnb754";
+ };
+
+ buildInputs = [ ncurses ];
+
+ patchPhase = "sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile";
+
+ makeFlags = [ "CC=cc" "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ description = "Klondike Solitaire in your ncurses terminal";
+ license = licenses.mit;
+ homepage = "https://github.com/mpereira/tty-solitaire";
+ platforms = ncurses.meta.platforms;
+ maintainers = [ maintainers.AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tuir/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tuir/default.nix
new file mode 100644
index 000000000000..c086cdb9503b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tuir/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitLab, python3Packages }:
+
+with python3Packages;
+buildPythonApplication rec {
+ pname = "tuir";
+ version = "1.29.0";
+
+ src = fetchFromGitLab {
+ owner = "ajak";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1fqp6bvq8kzdsf3nna4mn1phdcixpx76bya43xrivxjbzsfl59ib";
+ };
+
+ # Tests try to access network
+ doCheck = false;
+
+ checkPhase = ''
+ py.test
+ '';
+
+ checkInputs = [ coverage coveralls docopt mock pylint pytest vcrpy ];
+
+ propagatedBuildInputs = [ beautifulsoup4 decorator kitchen requests ];
+
+ meta = with lib; {
+ description = "Browse Reddit from your Terminal (fork of rtv)";
+ homepage = "https://gitlab.com/ajak/tuir/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Br1ght0ne matthiasbeyer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tut/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tut/default.nix
new file mode 100644
index 000000000000..d65e894417e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tut/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "tut";
+ version = "0.0.14";
+
+ goPackagePath = "github.com/RasmusLindroth/tut";
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "RasmusLindroth";
+ repo = pname;
+ rev = version;
+ sha256 = "1l7lc6cjx97v9zhc0b6lfzqjmyv1i3qj83drkck36if3mc60vvwi";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A TUI for Mastodon with vim inspired keys";
+ homepage = "https://github.com/RasmusLindroth/tut";
+ license = licenses.mit;
+ maintainers = with maintainers; [ equirosa ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tut/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tut/deps.nix
new file mode 100644
index 000000000000..9264153e5030
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tut/deps.nix
@@ -0,0 +1,318 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "github.com/BurntSushi/toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/BurntSushi/toml";
+ rev = "v0.3.1";
+ sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+ };
+ }
+ {
+ goPackagePath = "github.com/DATA-DOG/go-sqlmock";
+ fetch = {
+ type = "git";
+ url = "https://github.com/DATA-DOG/go-sqlmock";
+ rev = "v1.3.3";
+ sha256 = "1xrly2vmy1mgj9dbkmivhh8gvq6v9f9xy2yp2dw54i1895zzs928";
+ };
+ }
+ {
+ goPackagePath = "github.com/PuerkitoBio/goquery";
+ fetch = {
+ type = "git";
+ url = "https://github.com/PuerkitoBio/goquery";
+ rev = "v1.5.0";
+ sha256 = "1fqf4rs66wy02nxz6w4mvs2qawf2j8srz17i294v64y8gvxisp56";
+ };
+ }
+ {
+ goPackagePath = "github.com/andybalholm/cascadia";
+ fetch = {
+ type = "git";
+ url = "https://github.com/andybalholm/cascadia";
+ rev = "v1.0.0";
+ sha256 = "09j8cavbhqqdxjqrkwbc40g8p0i49zf3184rpjm5p2rjbprcghcc";
+ };
+ }
+ {
+ 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/fatih/color";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fatih/color";
+ rev = "v1.9.0";
+ sha256 = "086z8ssmr1fn9ba4mqnw7pnccfpys6l5yfhvycv1gdrsk7n27mvs";
+ };
+ }
+ {
+ goPackagePath = "github.com/gdamore/encoding";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gdamore/encoding";
+ rev = "v1.0.0";
+ sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9";
+ };
+ }
+ {
+ goPackagePath = "github.com/gdamore/tcell";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gdamore/tcell";
+ rev = "v1.3.0";
+ sha256 = "1csg9qkmbg4ksj5247kgqcy7bxvqgz6b98r0rv2s4c1mkc99gx2r";
+ };
+ }
+ {
+ goPackagePath = "github.com/gopherjs/gopherjs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gopherjs/gopherjs";
+ rev = "0766667cb4d1";
+ sha256 = "13pfc9sxiwjky2lm1xb3i3lcisn8p6mgjk2d927l7r92ysph8dmw";
+ };
+ }
+ {
+ goPackagePath = "github.com/gorilla/websocket";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gorilla/websocket";
+ rev = "v1.4.1";
+ sha256 = "03n1n0nwz3k9qshmriycqznnnvd3dkzsfwpnfjzzvafjxk9kyapv";
+ };
+ }
+ {
+ goPackagePath = "github.com/jtolds/gls";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jtolds/gls";
+ rev = "v4.20.0";
+ sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6";
+ };
+ }
+ {
+ goPackagePath = "github.com/kyoh86/xdg";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kyoh86/xdg";
+ rev = "v1.2.0";
+ sha256 = "0a5nz53fdz1c2qvwlf2dpjdd72nxri95i6q4b07c37kiipgaxncn";
+ };
+ }
+ {
+ goPackagePath = "github.com/lucasb-eyer/go-colorful";
+ fetch = {
+ type = "git";
+ url = "https://github.com/lucasb-eyer/go-colorful";
+ rev = "v1.0.3";
+ sha256 = "12bgz6dxbb2ki1g3x7fg9ipsjgfkd58fp7cdpv63h4kvlj2n7j69";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-colorable";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-colorable";
+ rev = "v0.1.4";
+ sha256 = "1yxcz08kminqr1221zxpibnbzfcgs3fafin0z9zqb3gqvf74jywz";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "v0.0.11";
+ sha256 = "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-mastodon";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-mastodon";
+ rev = "3e91c76504df";
+ sha256 = "1wh2hqrzx80gfs1y34f4h68mnz83asx88v0bsw372ch5j1shswlr";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "v0.0.8";
+ sha256 = "14ilkbhnhl8yj443dd1ga4biapswv4g0b4vm2mix78a8srdww39j";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-tty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-tty";
+ rev = "v0.0.3";
+ sha256 = "0d1d63q02pc5k5ga8bw4yjbkrli2769vg237psajsskjirjy53vf";
+ };
+ }
+ {
+ goPackagePath = "github.com/microcosm-cc/bluemonday";
+ fetch = {
+ type = "git";
+ url = "https://github.com/microcosm-cc/bluemonday";
+ rev = "v1.0.2";
+ sha256 = "0j0aylsxqjcj49w7ph8cmpaqjlpvg7mb5mrcrd9bg71dlb9z9ir2";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-toml";
+ rev = "v1.7.0";
+ sha256 = "0sqrwldjj2qxrgjz1diw1ffviya4ma7mz7nhdgydbisi2h55lqla";
+ };
+ }
+ {
+ goPackagePath = "github.com/rivo/tview";
+ fetch = {
+ type = "git";
+ url = "https://github.com/rivo/tview";
+ rev = "ca37f83cb2e7";
+ sha256 = "05nifgrxv6aib8f20mhs9m0grdfdyyg5vyhk6zgwsxjlwbzaj021";
+ };
+ }
+ {
+ goPackagePath = "github.com/rivo/uniseg";
+ fetch = {
+ type = "git";
+ url = "https://github.com/rivo/uniseg";
+ rev = "v0.1.0";
+ sha256 = "0flpc1px1l6b1lxzhdxi0mvpkkjchppvgxshxxnlmm40s76i9ww5";
+ };
+ }
+ {
+ goPackagePath = "github.com/smartystreets/assertions";
+ fetch = {
+ type = "git";
+ url = "https://github.com/smartystreets/assertions";
+ rev = "b2de0cb4f26d";
+ sha256 = "1i7ldgavgl35c7gk25p7bvdr282ckng090zr4ch9mk1705akx09y";
+ };
+ }
+ {
+ goPackagePath = "github.com/smartystreets/goconvey";
+ fetch = {
+ type = "git";
+ url = "https://github.com/smartystreets/goconvey";
+ rev = "v1.6.4";
+ sha256 = "07zjxwszayal88z1j2bwnqrsa32vg8l4nivks5yfr9j8xfsw7n6m";
+ };
+ }
+ {
+ goPackagePath = "github.com/tomnomnom/linkheader";
+ fetch = {
+ type = "git";
+ url = "https://github.com/tomnomnom/linkheader";
+ rev = "02ca5825eb80";
+ sha256 = "1ghrv28vrvvrpyr4d4q817yby8g1j04mid8ql00sds1pvfv67d32";
+ };
+ }
+ {
+ goPackagePath = "github.com/urfave/cli";
+ fetch = {
+ type = "git";
+ url = "https://github.com/urfave/cli";
+ rev = "v1.20.0";
+ sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
+ };
+ }
+ {
+ 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 = "d3edc9973b7e";
+ sha256 = "12zbjwcsh9b0lwycqlkrnbyg5a6a9dzgj8hhgq399bdda5bd97y7";
+ };
+ }
+ {
+ 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 = "85ca7c5b95cd";
+ sha256 = "1504qkgbhhm4f0bhk77v2r1lj6x171ay5m79alkg78wjb5cign5l";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "v0.3.2";
+ sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "ab21143f2384";
+ sha256 = "15fk0psk53pplpyghz55bhay0kvsv5rikmn5hwgjnnyxq9vfy178";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/check.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/check.v1";
+ rev = "20d25e280405";
+ sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/ini.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/ini.v1";
+ rev = "v1.55.0";
+ sha256 = "1b7wsfal3b3pl5pv5n2qix09b3imh0zhirrphlsg5p2rb8fk0d0j";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "v2.2.8";
+ sha256 = "1inf7svydzscwv9fcjd2rm61a4xjk6jkswknybmns2n58shimapw";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix
new file mode 100644
index 000000000000..68d25e4e3de7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, makeWrapper, jre, makeDesktopItem }:
+
+let
+ desktopItem = makeDesktopItem {
+ name = "tvbrowser";
+ exec = "tvbrowser";
+ icon = "tvbrowser";
+ comment = "Themeable and easy to use TV Guide";
+ desktopName = "TV-Browser";
+ genericName = "Electronic TV Program Guide";
+ categories = "AudioVideo;TV;Java;";
+ startupNotify = "true";
+ extraEntries = ''
+ StartupWMClass=tvbrowser-TVBrowser
+ '';
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "tvbrowser";
+ version = "4.0.1";
+ name = "${pname}-bin-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/TV-Browser%20Releases%20%28Java%208%20and%20higher%29/${version}/${pname}_${version}_bin.tar.gz";
+ sha256 = "0ahsirf6cazs5wykgbwsc6n35w6jprxyphzqmm7d370n37sb07pm";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/share/java/${pname}
+ cp -R * $out/share/java/${pname}
+ rm $out/share/java/${pname}/${pname}.{sh,desktop}
+
+ mkdir -p $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications/
+
+ for i in 16 32 48 128; do
+ mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
+ ln -s $out/share/java/${pname}/imgs/${pname}$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/${pname}.png
+ done
+
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/${pname} \
+ --add-flags "-jar $out/share/java/${pname}/${pname}.jar" \
+ --run "cd $out/share/java/${pname}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Electronic TV Program Guide";
+ homepage = "https://www.tvbrowser.org/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/twmn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/twmn/default.nix
new file mode 100644
index 000000000000..69f58b828c46
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/twmn/default.nix
@@ -0,0 +1,36 @@
+{ lib, mkDerivation, fetchFromGitHub, qtbase, qtx11extras, qmake, pkgconfig, boost }:
+
+mkDerivation {
+ name = "twmn-git-2018-10-01";
+
+ src = fetchFromGitHub {
+ owner = "sboli";
+ repo = "twmn";
+ rev = "80f48834ef1a07087505b82358308ee2374b6dfb";
+ sha256 = "0mpjvp800x07lp9i3hfcc5f4bqj1fj4w3dyr0zwaxc6wqmm0fdqz";
+ };
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ buildInputs = [ qtbase qtx11extras boost ];
+
+ postPatch = ''
+ sed -i s/-Werror// twmnd/twmnd.pro
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p "$out/bin"
+ cp bin/* "$out/bin"
+
+ runHook postInstall
+ '';
+
+ meta = {
+ description = "A notification system for tiling window managers";
+ homepage = "https://github.com/sboli/twmn";
+ platforms = with lib.platforms; linux;
+ maintainers = [ lib.maintainers.matejc ];
+ license = lib.licenses.lgpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/tzupdate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/tzupdate/default.nix
new file mode 100644
index 000000000000..8a18948da244
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/tzupdate/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, python3 }:
+
+let
+ inherit (python3.pkgs) buildPythonApplication fetchPypi requests;
+in
+buildPythonApplication rec {
+ pname = "tzupdate";
+ version = "2.1.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "5b55795c390e4ccc90e649c8cc387447daaf30a21d68f7196b49824cbcba8adc";
+ };
+
+ propagatedBuildInputs = [ requests ];
+
+ meta = with stdenv.lib; {
+ description = "Update timezone information based on geoip";
+ homepage = "https://github.com/cdown/tzupdate";
+ maintainers = [ maintainers.michaelpj ];
+ license = licenses.unlicense;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/udevil/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/udevil/default.nix
new file mode 100644
index 000000000000..8e01f73f9675
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/udevil/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, intltool, glib, pkgconfig, udev, util-linux, acl }:
+stdenv.mkDerivation {
+ name = "udevil-0.4.4";
+ src = fetchurl {
+ url = "https://github.com/IgnorantGuru/udevil/archive/0.4.4.tar.gz";
+ sha256 = "0z1bhaayambrcn7bgnrqk445k50ifabmw8q4i9qj49nnbcvxhbxd";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ intltool glib udev ];
+ configurePhase = ''
+ substituteInPlace src/Makefile.in --replace "-o root -g root" ""
+ # do not set setuid bit in nix store
+ substituteInPlace src/Makefile.in --replace 4755 0755
+ ./configure \
+ --prefix=$out \
+ --with-mount-prog=${util-linux}/bin/mount \
+ --with-umount-prog=${util-linux}/bin/umount \
+ --with-losetup-prog=${util-linux}/bin/losetup \
+ --with-setfacl-prog=${acl.bin}/bin/setfacl \
+ --sysconfdir=$prefix/etc
+ '';
+ patches = [ ./device-info-sys-stat.patch ];
+ meta = {
+ description = "A command line Linux program which mounts and unmounts removable devices without a password, shows device info, and monitors device changes";
+ homepage = "https://ignorantguru.github.io/udevil/";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch
new file mode 100644
index 000000000000..554682108e39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch
@@ -0,0 +1,14 @@
+diff --git a/src/device-info.h b/src/device-info.h
+index 6cb3683..ddac24c 100644
+--- a/src/device-info.h
++++ b/src/device-info.h
+@@ -18,7 +18,8 @@
+ // intltool
+ #include <glib/gi18n.h>
+
+-
++// stat
++#include <sys/stat.h>
+
+ typedef struct device_t {
+ struct udev_device *udevice;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/udiskie/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/udiskie/default.nix
new file mode 100644
index 000000000000..a6efc492d8a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/udiskie/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, asciidoc-full, gettext
+, gobject-introspection, gtk3, libappindicator-gtk3, libnotify, librsvg
+, udisks2, wrapGAppsHook
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "udiskie";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "coldfix";
+ repo = "udiskie";
+ rev = version;
+ sha256 = "0kn5w6bm3rmbszphzbxpjfnkawb2naa230svzkpmh3n6dcdvk4qa";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ asciidoc-full # For building man page.
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ librsvg # required for loading svg icons (udiskie uses svg icons)
+ gobject-introspection
+ libnotify
+ gtk3
+ udisks2
+ libappindicator-gtk3
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ docopt
+ pygobject3
+ pyyaml
+ ];
+
+ postBuild = "make -C doc";
+
+ postInstall = ''
+ mkdir -p $out/share/man/man8
+ cp -v doc/udiskie.8 $out/share/man/man8/
+ '';
+
+ checkInputs = with python3Packages; [
+ nose
+ keyutils
+ ];
+
+ checkPhase = ''
+ nosetests
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Removable disk automounter for udisks";
+ license = licenses.mit;
+ homepage = "https://github.com/coldfix/udiskie";
+ maintainers = with maintainers; [ AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch
new file mode 100644
index 000000000000..f14d7f718027
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch
@@ -0,0 +1,55 @@
+From 86cc27022015697a61d1ec1b13e52f9dbe7f6c57 Mon Sep 17 00:00:00 2001
+From: worldofpeace <worldofpeace@protonmail.ch>
+Date: Mon, 23 Mar 2020 18:34:00 -0400
+Subject: [PATCH] Adjust get_data_path for NixOS
+
+We construct the ulauncher data path from xdg_data_dirs
+and prevent it from being a nix store path or being xdg_data_home.
+We do this to prevent /nix/store paths being hardcoded to shortcuts.json.
+On NixOS this path will either be /run/current-system/sw/share/ulauncher
+or $HOME/.nix-profile/share/ulauncher if the user used nix-env.
+---
+ ulauncher/config.py | 27 ++++++++++++++++++---------
+ 1 file changed, 18 insertions(+), 9 deletions(-)
+
+diff --git a/ulauncher/config.py b/ulauncher/config.py
+index f21014e..cc636e1 100644
+--- a/ulauncher/config.py
++++ b/ulauncher/config.py
+@@ -50,15 +50,24 @@ def get_data_path():
+ is specified at installation time.
+ """
+
+- # Get pathname absolute or relative.
+- path = os.path.join(
+- os.path.dirname(__file__), __ulauncher_data_directory__)
+-
+- abs_data_path = os.path.abspath(path)
+- if not os.path.exists(abs_data_path):
+- raise ProjectPathNotFoundError(abs_data_path)
+-
+- return abs_data_path
++ paths = list(
++ filter(
++ os.path.exists,
++ [
++ os.path.join(dir, "ulauncher")
++ for dir in xdg_data_dirs
++ # Get path that isn't in the /nix/store so they don't get hardcoded into configs
++ if not dir.startswith("/nix/store/")
++ # Exclude .local/share/ulauncher which isn't what we want
++ if not dir.startswith(xdg_data_home)
++ ],
++ )
++ )
++
++ try:
++ return paths[0]
++ except:
++ raise ProjectPathNotFoundError()
+
+
+ def is_wayland():
+--
+2.25.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
new file mode 100644
index 000000000000..81e273dd39d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
@@ -0,0 +1,121 @@
+{ stdenv
+, fetchurl
+, nix-update-script
+, python3Packages
+, gdk-pixbuf
+, glib
+, gnome3
+, gobject-introspection
+, gtk3
+, wrapGAppsHook
+, webkitgtk
+, libnotify
+, keybinder3
+, libappindicator
+, intltool
+, wmctrl
+, xvfb_run
+, librsvg
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "ulauncher";
+ version = "5.8.0";
+
+ disabled = python3Packages.isPy27;
+
+ src = fetchurl {
+ url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
+ sha256 = "1czxzcxix9iwv1sir1q64j5aavc7lzjjwqpisgdc1kidkwnk05zp";
+ };
+
+ nativeBuildInputs = with python3Packages; [
+ distutils_extra
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gdk-pixbuf
+ glib
+ gnome3.adwaita-icon-theme
+ gobject-introspection
+ gtk3
+ keybinder3
+ libappindicator
+ libnotify
+ librsvg
+ webkitgtk
+ wmctrl
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ mock
+ mypy
+ mypy-extensions
+ dbus-python
+ pygobject3
+ pyinotify
+ python-Levenshtein
+ pyxdg
+ requests
+ websocket_client
+ ];
+
+ checkInputs = with python3Packages; [
+ mock
+ pytest
+ pytest-mock
+ pytestpep8
+ xvfb_run
+ ];
+
+ patches = [
+ ./fix-path.patch
+ ./0001-Adjust-get_data_path-for-NixOS.patch
+ ./fix-extensions.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace setup.py --subst-var out
+ '';
+
+ # https://github.com/Ulauncher/Ulauncher/issues/390
+ doCheck = false;
+
+ preCheck = ''
+ export PYTHONPATH=$PYTHONPATH:$out/${python3Packages.python.sitePackages}
+ '';
+
+ # Simple translation of
+ # - https://github.com/Ulauncher/Ulauncher/blob/f5a601bdca75198a6a31b9d84433496b63530e74/test
+ checkPhase = ''
+ runHook preCheck
+
+ # skip tests in invocation that handle paths that
+ # aren't nix friendly (i think)
+ xvfb-run -s '-screen 0 1024x768x16' \
+ pytest -k 'not TestPath and not test_handle_key_press_event' --pep8 tests
+
+ runHook postCheck
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix PATH : "${stdenv.lib.makeBinPath [ wmctrl ]}")
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+
+ meta = with stdenv.lib; {
+ description = "A fast application launcher for Linux, written in Python, using GTK";
+ homepage = "https://ulauncher.io/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ aaronjanse worldofpeace ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/fix-extensions.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/fix-extensions.patch
new file mode 100644
index 000000000000..f6d00f9fafd5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/fix-extensions.patch
@@ -0,0 +1,13 @@
+diff --git a/ulauncher/api/server/ExtensionRunner.py b/ulauncher/api/server/ExtensionRunner.py
+index 22042bf..f7b31c8 100644
+--- a/ulauncher/api/server/ExtensionRunner.py
++++ b/ulauncher/api/server/ExtensionRunner.py
+@@ -79,7 +79,7 @@ class ExtensionRunner:
+ cmd = [sys.executable, os.path.join(self.extensions_dir, extension_id, 'main.py')]
+ env = os.environ.copy()
+ env['ULAUNCHER_WS_API'] = self.extension_server.generate_ws_url(extension_id)
+- env['PYTHONPATH'] = ':'.join(filter(bool, [ULAUNCHER_APP_DIR, os.getenv('PYTHONPATH')]))
++ env['PYTHONPATH'] = ':'.join([ULAUNCHER_APP_DIR] + sys.path)
+
+ if self.verbose:
+ env['VERBOSE'] = '1'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/fix-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/fix-path.patch
new file mode 100644
index 000000000000..2936df65194e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/ulauncher/fix-path.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index 3616104..e9bbfda 100755
+--- a/setup.py
++++ b/setup.py
+@@ -112,7 +112,7 @@ class InstallAndUpdateDataDirectory(DistUtilsExtra.auto.install_auto):
+ DistUtilsExtra.auto.install_auto.run(self)
+
+ target_data = '/' + os.path.relpath(self.install_data, self.root) + '/'
+- target_pkgdata = target_data + 'share/ulauncher/'
++ target_pkgdata = '@out@/share/ulauncher/'
+ target_scripts = '/' + os.path.relpath(self.install_scripts,
+ self.root) + '/'
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/upwork/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/upwork/default.nix
new file mode 100644
index 000000000000..5d4247f3869d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/upwork/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, dpkg, wrapGAppsHook, autoPatchelfHook, writeShellScript
+, alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
+, gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid
+, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb
+, pango, systemd, libXScrnSaver, libcxx, libpulseaudio }:
+
+stdenv.mkDerivation rec {
+ pname = "upwork";
+ version = "5.4.7.1";
+
+ src = fetchurl {
+ url = "https://updates-desktopapp.upwork.com/binaries/v5_4_7_1_81f361962c74427d/${pname}_5.4.7.1_amd64.deb";
+ sha256 = "c443724d37bca942ca126b8b207846a5adb94a92ff9490370f2fe055feee347b";
+ };
+
+ dontWrapGApps = true;
+
+ nativeBuildInputs = [
+ dpkg
+ wrapGAppsHook
+ autoPatchelfHook
+ ];
+
+ buildInputs = [
+ libcxx systemd libpulseaudio
+ stdenv.cc.cc alsaLib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype
+ gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
+ libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
+ libXtst nspr nss libxcb pango systemd libXScrnSaver
+ ];
+
+ libPath = stdenv.lib.makeLibraryPath buildInputs;
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ installPhase = ''
+ mv usr $out
+ mv opt $out
+ sed -e "s|/opt/Upwork|$out/bin|g" -i $out/share/applications/upwork.desktop
+
+ makeWrapper $out/opt/Upwork/upwork \
+ $out/bin/upwork \
+ --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
+ --prefix LD_LIBRARY_PATH : ${libPath}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Online freelancing platform desktop application for time tracking";
+ homepage = "https://www.upwork.com/ab/downloads/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ zakkor wolfangaukang ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/urlscan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/urlscan/default.nix
new file mode 100644
index 000000000000..c5edd9133b7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/urlscan/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "urlscan";
+ version = "0.9.5";
+
+ src = fetchFromGitHub {
+ owner = "firecat53";
+ repo = pname;
+ rev = version;
+ sha256 = "16g7dzvjcfhaz52wbmcapamy55l7vfhgizqy3m8dv9gkmy8vap89";
+ };
+
+ propagatedBuildInputs = [ python3Packages.urwid ];
+
+ doCheck = false; # No tests available
+
+ meta = with stdenv.lib; {
+ description = "Mutt and terminal url selector (similar to urlview)";
+ homepage = "https://github.com/firecat53/urlscan";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ dpaetzel jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/urlview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/urlview/default.nix
new file mode 100644
index 000000000000..6430a1bc7196
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/urlview/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, ncurses, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ version = "0.9";
+ patchLevel = "19";
+
+ name = "urlview-${version}-${patchLevel}";
+
+ urlBase = "mirror://debian/pool/main/u/urlview/";
+
+ src = fetchurl {
+ url = urlBase + "urlview_${version}.orig.tar.gz";
+ sha256 = "746ff540ccf601645f500ee7743f443caf987d6380e61e5249fc15f7a455ed42";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ ncurses ];
+
+ preAutoreconf = ''
+ touch NEWS
+ '';
+
+ preConfigure = ''
+ mkdir -p $out/share/man/man1
+ '';
+
+ debianPatches = fetchurl {
+ url = urlBase + "urlview_${version}-${patchLevel}.diff.gz";
+ sha256 = "056883c17756f849fb9235596d274fbc5bc0d944fcc072bdbb13d1e828301585";
+ };
+
+ patches = debianPatches;
+
+ postPatch = ''
+ substituteInPlace urlview.c \
+ --replace '/etc/urlview/url_handler.sh' "$out/etc/urlview/url_handler.sh"
+ '';
+
+ postInstall = ''
+ install -Dm755 url_handler.sh $out/etc/urlview/url_handler.sh
+ patchShebangs $out/etc/urlview
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Extract URLs from text";
+ homepage = "https://packages.qa.debian.org/u/urlview.html";
+ license = licenses.gpl2;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/usync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/usync/default.nix
new file mode 100644
index 000000000000..9234d8ad202a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/usync/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, scsh, rsync, unison }:
+
+stdenv.mkDerivation rec {
+ pname = "usync";
+ version = "0.0.3";
+
+ src = fetchFromGitHub {
+ owner = "ebzzry";
+ repo = pname;
+ rev = "9c87ea8a707a47c3d7f6ef94d07591c5ab594282";
+ sha256 = "1r05gw041fz9dkkb70zd6kqw9dd8dhpv87407qxqg43pd7x47kf4";
+ };
+
+ installPhase = ''
+ install -m 555 -Dt $out/bin $pname
+ '';
+
+ postFixup = ''
+ substituteInPlace $out/bin/$pname --replace "/usr/bin/env scsh" "${scsh}/bin/scsh"
+ substituteInPlace $out/bin/$pname --replace "(rsync " "(${rsync}/bin/rsync "
+ substituteInPlace $out/bin/$pname --replace "(unison " "(${unison}/bin/unison "
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ebzzry/usync";
+ description = "A simple site-to-site synchronization tool";
+ license = licenses.mit;
+ maintainers = [ maintainers.ebzzry ];
+ platforms = platforms.unix;
+ };
+
+ dontBuild = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/valentina/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/valentina/default.nix
new file mode 100644
index 000000000000..e9e8cfed796a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/valentina/default.nix
@@ -0,0 +1,66 @@
+{ mkDerivation, stdenv, fetchhg
+, qmake, qttools
+, qtbase, qtsvg, qtxmlpatterns
+, poppler_utils
+}:
+
+with stdenv.lib;
+
+mkDerivation rec {
+ pname = "valentina";
+ version = "0.6.1";
+
+ src = fetchhg {
+ url = "https://bitbucket.org/dismine/valentina";
+ rev = "v${version}";
+ sha256 = "0dxk2av7xbsd233sr9wa1hamzb7pp8yx6p5b43rsnvnzchkqf423";
+ };
+
+ postPatch = ''
+ substituteInPlace common.pri \
+ --replace '$$[QT_INSTALL_HEADERS]/QtXmlPatterns' '${getDev qtxmlpatterns}/include/QtXmlPatterns' \
+ --replace '$$[QT_INSTALL_HEADERS]/QtSvg' '${getDev qtsvg}/include/QtSvg' \
+ --replace '$$[QT_INSTALL_HEADERS]/' '${getDev qtbase}/include/' \
+ --replace '$$[QT_INSTALL_HEADERS]' '${getDev qtbase}'
+ substituteInPlace src/app/tape/tape.pro \
+ --replace '$$[QT_INSTALL_BINS]/rcc' '${getDev qtbase}/bin/rcc'
+ substituteInPlace src/app/translations.pri \
+ --replace '$$[QT_INSTALL_BINS]/$$LRELEASE' '${getDev qttools}/bin/lrelease'
+ substituteInPlace src/app/valentina/mainwindowsnogui.cpp \
+ --replace 'define PDFTOPS "pdftops"' 'define PDFTOPS "${getBin poppler_utils}/bin/pdftops"'
+ substituteInPlace src/app/valentina/dialogs/dialogsavelayout.h \
+ --replace 'define PDFTOPS "pdftops"' 'define PDFTOPS "${getBin poppler_utils}/bin/pdftops"'
+ '';
+
+ nativeBuildInputs = [ qmake qttools ];
+
+ buildInputs = [ qtbase qtsvg qtxmlpatterns poppler_utils ];
+
+ configurePhase = ''
+ qmake PREFIX=/ Valentina.pro -r "CONFIG += noTests noRunPath no_ccache noDebugSymbols"
+ '';
+
+ installFlags = [ "INSTALL_ROOT=$(out)" ];
+
+ postInstall = ''
+ mv $out/usr/share $out/
+ rmdir $out/usr
+
+ mkdir -p $out/share/man/man1
+ gzip -9c dist/debian/valentina.1 > $out/share/man/man1/valentina.1.gz
+ gzip -9c dist/debian/tape.1 > $out/share/man/man1/tape.1.gz
+
+ mkdir -p $out/share/mime/packages
+ cp dist/debian/valentina.sharedmimeinfo $out/share/mime/packages/valentina.xml
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "An open source sewing pattern drafting software";
+ homepage = "https://valentinaproject.bitbucket.io/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/variety/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/variety/default.nix
new file mode 100644
index 000000000000..4241f9153293
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/variety/default.nix
@@ -0,0 +1,73 @@
+{
+ fehSupport ? false, feh
+, imagemagickSupport ? true, imagemagick
+, stdenv
+, lib
+, python37Packages
+, fetchFromGitHub
+, intltool
+, gtk3
+, gexiv2
+, libnotify
+, wrapGAppsHook
+, gobject-introspection
+, hicolor-icon-theme
+, librsvg
+}:
+
+with python37Packages;
+
+buildPythonApplication rec {
+ pname = "variety";
+ version = "0.7.2-96-g3afe3ab";
+
+ src = fetchFromGitHub {
+ owner = "varietywalls";
+ repo = "variety";
+ rev = "3afe3abf725e5db2aec0db575a17c9907ab20de1";
+ sha256 = "10vw0202dwrwi497nsbq077v4qd3qn5b8cmkfcsgbvvjwlz7ldm5";
+ };
+
+ nativeBuildInputs = [ intltool wrapGAppsHook ];
+
+ buildInputs = [ distutils_extra ];
+
+ doCheck = false;
+
+ prePatch = ''
+ substituteInPlace variety_lib/varietyconfig.py \
+ --replace "__variety_data_directory__ = \"../data\"" "__variety_data_directory__ = \"$out/share/variety\""
+ substituteInPlace data/scripts/set_wallpaper \
+ --replace /bin/bash ${stdenv.shell}
+ substituteInPlace data/scripts/get_wallpaper \
+ --replace /bin/bash ${stdenv.shell}
+ '';
+
+ propagatedBuildInputs =
+ [ gtk3
+ gexiv2
+ libnotify
+ beautifulsoup4
+ lxml
+ pycairo
+ pygobject3
+ configobj
+ pillow
+ setuptools
+ requests
+ httplib2
+ dbus-python
+ gobject-introspection
+ hicolor-icon-theme
+ librsvg
+ ]
+ ++ lib.optional fehSupport feh
+ ++ lib.optional imagemagickSupport imagemagick;
+
+ meta = with lib; {
+ description = "A wallpaper manager for Linux systems. It supports numerous desktops and wallpaper sources, including local files and online services: Flickr, Wallhaven, Unsplash, and more";
+ homepage = "https://github.com/varietywalls/variety";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.zfnmxt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/vcal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/vcal/default.nix
new file mode 100644
index 000000000000..9519e033473e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/vcal/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "vcal";
+ version = "2.8";
+
+ src = fetchurl {
+ url = "https://waynemorrison.com/software/vcal";
+ sha256 = "0jrm0jzqxb1xjp24hwbzlxsh22gjssay9gj4zszljzdm68r5afvc";
+ };
+
+ nativeBuildInputs = [ perl ]; # for pod2man
+
+ dontUnpack = true;
+ dontBuild = true;
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/{bin,share/man/man1}
+ substitute ${src} $out/bin/vcal \
+ --replace /usr/bin/perl ${perl}/bin/perl
+ chmod 0755 $out/bin/*
+ pod2man --name=vcal --release=${version} ${src} > $out/share/man/man1/vcal.1
+
+ runHook postInstall
+ '';
+
+ # There are no tests
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Parser for VCalendar and ICalendar files, usable from the command line";
+ homepage = "https://waynemorrison.com/software/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/veracrypt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/veracrypt/default.nix
new file mode 100644
index 000000000000..07e0a046ac53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/veracrypt/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, fetchpatch, pkgconfig, makeself, yasm, fuse, wxGTK, lvm2 }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "veracrypt";
+ version = "1.24-Hotfix1";
+
+ src = fetchurl {
+ url = "https://launchpad.net/${pname}/trunk/${toLower version}/+download/VeraCrypt_${version}_Source.tar.bz2";
+ sha256 = "8b40ece805b216843d7a71b1a30069c4057931341b030bf65caace59263c5c8c";
+ };
+
+
+ patches = [
+ # https://github.com/veracrypt/VeraCrypt/issues/529 - fix build on non-x86
+ (fetchpatch {
+ url = "https://github.com/veracrypt/VeraCrypt/commit/afe6b2f45b15393026a1159e5f3d165ac7d0b94a.patch";
+ sha256 = "1xm9cl6zinlr0vah5xr9bvh0y9gw4331zl7d2n5xvqrcdxw3ww1y";
+ stripLen = 1;
+ })
+ # https://github.com/veracrypt/VeraCrypt/issues/529 - fix build on non-x86
+ (fetchpatch {
+ url = "https://github.com/veracrypt/VeraCrypt/commit/3fa636d477119fff6e372074568edb42d038f508.patch";
+ sha256 = "0qsccilip0ksnlzxina38a052gb533r4s422lxhrj3wv9zgpp7l3";
+ stripLen = 1;
+ })
+ ];
+
+ sourceRoot = "src";
+
+ nativeBuildInputs = [ makeself pkgconfig yasm ];
+ buildInputs = [ fuse lvm2 wxGTK ];
+
+ enableParallelBuilding = true;
+
+ installPhase = ''
+ install -Dm 755 Main/${pname} "$out/bin/${pname}"
+ install -Dm 444 Resources/Icons/VeraCrypt-256x256.xpm "$out/share/pixmaps/${pname}.xpm"
+ install -Dm 444 License.txt -t "$out/share/doc/${pname}/"
+ install -d $out/share/applications
+ substitute Setup/Linux/${pname}.desktop $out/share/applications/${pname}.desktop \
+ --replace "Exec=/usr/bin/veracrypt" "Exec=$out/bin/veracrypt" \
+ --replace "Icon=veracrypt" "Icon=veracrypt.xpm"
+ '';
+
+ meta = {
+ description = "Free Open-Source filesystem on-the-fly encryption";
+ homepage = "https://www.veracrypt.fr/";
+ license = [ licenses.asl20 /* or */ "TrueCrypt License version 3.0" ];
+ maintainers = with maintainers; [ dsferruzza ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/verbiste/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/verbiste/default.nix
new file mode 100644
index 000000000000..a322756c157f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/verbiste/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, libgnomeui, libxml2 }:
+
+stdenv.mkDerivation rec {
+ pname = "verbiste";
+
+ version = "0.1.47";
+
+ src = fetchurl {
+ url = "https://perso.b2b2c.ca/~sarrazip/dev/${pname}-${version}.tar.gz";
+ sha256 = "02kzin3pky2q2jnihrch8y0hy043kqqmzxq8j741x80kl0j1qxkm";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ libgnomeui libxml2 ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://sarrazip.com/dev/verbiste.html";
+ description = "French and Italian verb conjugator";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ orivej ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/vifm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/vifm/default.nix
new file mode 100644
index 000000000000..2c388e58fe11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/vifm/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, makeWrapper
+, pkgconfig
+, ncurses, libX11
+, util-linux, file, which, groff
+
+ # adds support for handling removable media (vifm-media). Linux only!
+, mediaSupport ? false, python3 ? null, udisks2 ? null, lib ? null
+}:
+
+let isFullPackage = mediaSupport;
+in stdenv.mkDerivation rec {
+ pname = if isFullPackage then "vifm-full" else "vifm";
+ version = "0.11";
+
+ src = fetchurl {
+ url = "https://github.com/vifm/vifm/releases/download/v${version}/vifm-${version}.tar.bz2";
+ sha256 = "0rqyd424y0g5b5basw2ybb60r9gar4f40d1xgzr3c2dsy4jpwvyh";
+ };
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ];
+ buildInputs = [ ncurses libX11 util-linux file which groff ];
+
+ postFixup = let
+ path = lib.makeBinPath
+ [ udisks2
+ (python3.withPackages (p: [p.dbus-python]))
+ ];
+
+ wrapVifmMedia = "wrapProgram $out/share/vifm/vifm-media --prefix PATH : ${path}";
+ in ''
+ ${if mediaSupport then wrapVifmMedia else ""}
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''A vi-like file manager${if isFullPackage then "; Includes support for optional features" else ""}'';
+ maintainers = with maintainers; [ raskin ];
+ platforms = if mediaSupport then platforms.linux else platforms.unix;
+ license = licenses.gpl2;
+ downloadPage = "https://vifm.info/downloads.shtml";
+ homepage = "https://vifm.info/";
+ inherit version;
+ updateWalker = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/viking/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/viking/default.nix
new file mode 100644
index 000000000000..03d3256e375a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/viking/default.nix
@@ -0,0 +1,74 @@
+{ fetchurl, fetchpatch, stdenv, makeWrapper
+, pkgconfig, intltool, gettext, gtk2, expat, curl
+, gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper
+, docbook_xml_dtd_412, gexiv2, gpsbabel, expect
+, withMapnik ? false, mapnik
+, withMBTiles ? true, sqlite
+, withOAuth ? true, liboauth
+, withMd5Hash ? true, nettle
+, withGeoClue ? true, geoclue2 }:
+
+stdenv.mkDerivation rec {
+ pname = "viking";
+ version = "1.8";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/viking/viking/viking-${version}.tar.bz2";
+ sha256 = "1a0g0fbj4q5s9p8fv0mqvxws10q3naj81l72sz30vvqpbz6vqp45";
+ };
+
+ patches = [
+ # Fix build without mapnik and sqlite https://github.com/viking-gps/viking/pull/79
+ (fetchpatch {
+ url = "https://github.com/viking-gps/viking/commit/995feefcb97bdb1590ed018224cf47ce197fe0c1.patch";
+ sha256 = "1xb0b76kg690fag9mw3yfj5k766jmqp1sm8q4f29n1h3nz5g8izd";
+ })
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
+ libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2
+ ] ++ stdenv.lib.optional withMapnik mapnik
+ ++ stdenv.lib.optional withGeoClue geoclue2
+ ++ stdenv.lib.optional withMd5Hash nettle
+ ++ stdenv.lib.optional withOAuth liboauth
+ ++ stdenv.lib.optional withMBTiles sqlite;
+
+ configureFlags = [
+ "--disable-scrollkeeper"
+ (stdenv.lib.enableFeature withMapnik "mapnik")
+ (stdenv.lib.enableFeature withGeoClue "geoclue")
+ (stdenv.lib.enableFeature withMd5Hash "nettle")
+ (stdenv.lib.enableFeature withOAuth "oauth")
+ (stdenv.lib.enableFeature withMBTiles "mbtiles")
+ ];
+
+ preBuild = ''
+ sed -i help/Makefile \
+ -e 's|--noout|--noout --nonet --path "${scrollkeeper}/share/xml/scrollkeeper/dtds"|g'
+ sed -i help/Makefile -e 's|--postvalid||g'
+ '';
+
+ doCheck = true;
+
+ postInstall = ''
+ wrapProgram $out/bin/viking \
+ --prefix PATH : "${gpsbabel}/bin" \
+ --prefix PATH : "${expect}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GPS data editor and analyzer";
+ longDescription = ''
+ Viking is a free/open source program to manage GPS data. You
+ can import and plot tracks and waypoints, show Openstreetmaps
+ and/or Terraserver maps under it, download geocaches for an area
+ on the map, make new tracks and waypoints, see real-time GPS
+ position, etc.
+ '';
+ homepage = "https://sourceforge.net/projects/viking/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ pSub sikmir ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/visidata/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/visidata/default.nix
new file mode 100644
index 000000000000..e23df96efed2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/visidata/default.nix
@@ -0,0 +1,50 @@
+{ buildPythonApplication
+, lib
+, fetchFromGitHub
+, dateutil
+, pyyaml
+, openpyxl
+, xlrd
+, h5py
+, fonttools
+, lxml
+, pandas
+, pyshp
+, setuptools
+, withPcap ? true, dpkt ? null, dnslib ? null
+}:
+buildPythonApplication rec {
+ pname = "visidata";
+ version = "2.0.1";
+
+ src = fetchFromGitHub {
+ owner = "saulpw";
+ repo = "visidata";
+ rev = "v${version}";
+ sha256 = "sha256-AkGU9p00y+psBS/fL2YLyQYRSMOp1aPs21E9bpN9z0M=";
+ };
+
+ propagatedBuildInputs = [
+ dateutil
+ pyyaml
+ openpyxl
+ xlrd
+ h5py
+ fonttools
+ lxml
+ pandas
+ pyshp
+ setuptools
+ ] ++ lib.optionals withPcap [ dpkt dnslib ];
+
+ doCheck = false;
+
+ meta = {
+ inherit version;
+ description = "Interactive terminal multitool for tabular data";
+ license = lib.licenses.gpl3;
+ maintainers = [ lib.maintainers.raskin ];
+ platforms = with lib.platforms; linux ++ darwin;
+ homepage = "http://visidata.org/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/vit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/vit/default.nix
new file mode 100644
index 000000000000..3ae4aacb872b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/vit/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, python3Packages
+, taskwarrior
+, glibcLocales
+}:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "vit";
+ version = "2.0.0";
+ disabled = lib.versionOlder python.version "3.6";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "5282d8076d9814d9248071aec8784cffbd968601542533ccb28ca61d1d08205e";
+ };
+
+ propagatedBuildInputs = [
+ pytz
+ tasklib
+ tzlocal
+ urwid
+ ];
+
+ checkInputs = [ glibcLocales ];
+
+ makeWrapperArgs = [ "--suffix" "PATH" ":" "${taskwarrior}/bin" ];
+
+ preCheck = ''
+ export TERM=''${TERM-linux}
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/scottkosty/vit";
+ description = "Visual Interactive Taskwarrior";
+ maintainers = with maintainers; [ dtzWill arcnmx ];
+ platforms = platforms.all;
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/volnoti/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/volnoti/default.nix
new file mode 100644
index 000000000000..845bdae6bec7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/volnoti/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, fetchpatch
+, pkgconfig, dbus, gdk-pixbuf, glib, libX11, gtk2, librsvg
+, dbus-glib, autoreconfHook, wrapGAppsHook }:
+
+stdenv.mkDerivation {
+ pname = "volnoti-unstable";
+ version = "2013-09-23";
+
+ src = fetchFromGitHub {
+ owner = "davidbrazdil";
+ repo = "volnoti";
+ rev = "4af7c8e54ecc499097121909f02ecb42a8a60d24";
+ sha256 = "155lb7w563dkdkdn4752hl0zjhgnq3j4cvs9z98nb25k1xpmpki7";
+ };
+
+ patches = [
+ # Fix dbus interface headers. See
+ # https://github.com/davidbrazdil/volnoti/pull/10
+ (fetchpatch {
+ url = "https://github.com/davidbrazdil/volnoti/pull/10.patch";
+ sha256 = "046zfdjmvhb7jrsgh04vfgi35sgy1zkrhd3bzdby3nvds1wslfam";
+ })
+ ];
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook wrapGAppsHook ];
+
+ buildInputs = [
+ dbus gdk-pixbuf glib libX11 gtk2 dbus-glib librsvg
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Lightweight volume notification for Linux";
+ homepage = "https://github.com/davidbrazdil/volnoti";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.gilligan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/vp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/vp/default.nix
new file mode 100644
index 000000000000..8bebed45fc41
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/vp/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, SDL, SDL_image }:
+
+stdenv.mkDerivation rec {
+ pname = "vp";
+ version = "1.8";
+
+ src = fetchFromGitHub {
+ owner = "erikg";
+ repo = "vp";
+ rev = "v${version}";
+ sha256 = "08q6xrxsyj6vj0sz59nix9isqz84gw3x9hym63lz6v8fpacvykdq";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = [ SDL SDL_image ];
+
+ NIX_CFLAGS_COMPILE="-I${SDL}/include/SDL -I${SDL_image}/include/SDL";
+
+ meta = with stdenv.lib; {
+ homepage = "https://brlcad.org/~erik/";
+ description = "SDL based picture viewer/slideshow";
+ platforms = platforms.unix;
+ license = licenses.gpl3;
+ maintainers = [ maintainers.vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/vue/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/vue/default.nix
new file mode 100644
index 000000000000..d6404ca65965
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/vue/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, jre, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ pname = "vue";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "http://releases.atech.tufts.edu/jenkins/job/VUE/116/deployedArtifacts/download/artifact.1";
+ sha256 = "0yfzr80pw632lkayg4qfmwzrqk02y30yz8br7isyhmgkswyp5rnx";
+ };
+
+ phases = "installPhase";
+
+ installPhase = ''
+ mkdir -p "$out"/{share/vue,bin}
+ cp ${src} "$out/share/vue/vue.jar"
+ echo '#!${runtimeShell}' >> "$out/bin/vue"
+ echo '${jre}/bin/java -jar "'"$out/share/vue/vue.jar"'" "$@"' >> "$out/bin/vue"
+ chmod a+x "$out/bin/vue"
+ '';
+
+ meta = {
+ description = "Visual Understanding Environment - mind mapping software";
+ maintainers = with stdenv.lib.maintainers; [ raskin ];
+ platforms = with stdenv.lib.platforms; linux;
+ license = stdenv.lib.licenses.free; # Apache License fork, actually
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/vym/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/vym/default.nix
new file mode 100644
index 000000000000..ce45471c2f02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/vym/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, mkDerivation, fetchurl, pkgconfig, qmake, qtscript, qtsvg }:
+
+mkDerivation rec {
+ pname = "vym";
+ version = "2.7.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/vym/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "0lyf0m4y5kn5s47z4sg10215f3jsn3k1bl389jfbh2f5v4srav4g";
+ };
+
+ # Hardcoded paths scattered about all have form share/vym
+ # which is encouraging, although we'll need to patch them (below).
+ qmakeFlags = [
+ "DATADIR=${placeholder "out"}/share"
+ "DOCDIR=${placeholder "out"}/share/doc/vym"
+ ];
+
+ postPatch = ''
+ for x in \
+ exportoofiledialog.cpp \
+ main.cpp \
+ mainwindow.cpp \
+ tex/*.{tex,lyx}; \
+ do
+ substituteInPlace $x \
+ --replace /usr/share/vym $out/share/vym \
+ --replace /usr/local/share/vym $out/share/vym \
+ --replace /usr/share/doc $out/share/doc/vym
+ done
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ buildInputs = [ qtscript qtsvg ];
+
+ postInstall = ''
+ install -Dm755 -t $out/share/man/man1 doc/*.1.gz
+ '';
+
+ dontGzipMan = true;
+
+ meta = with stdenv.lib; {
+ description = "A mind-mapping software";
+ longDescription = ''
+ VYM (View Your Mind) is a tool to generate and manipulate maps which show your thoughts.
+ Such maps can help you to improve your creativity and effectivity. You can use them
+ for time management, to organize tasks, to get an overview over complex contexts,
+ to sort your ideas etc.
+
+ Maps can be drawn by hand on paper or a flip chart and help to structure your thoughs.
+ While a tree like structure like shown on this page can be drawn by hand or any drawing software
+ vym offers much more features to work with such maps.
+ '';
+ homepage = "http://www.insilmaril.de/vym/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/waybar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/waybar/default.nix
new file mode 100644
index 000000000000..11a4b1a51aad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/waybar/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchFromGitHub, meson, pkgconfig, ninja, wrapGAppsHook
+, wayland, wlroots, gtkmm3, libsigcxx, jsoncpp, fmt, scdoc, spdlog, gtk-layer-shell
+, howard-hinnant-date, cmake
+, traySupport ? true, libdbusmenu-gtk3
+, pulseSupport ? true, libpulseaudio
+, nlSupport ? true, libnl
+, udevSupport ? true, udev
+, swaySupport ? true, sway
+, mpdSupport ? true, mpd_clientlib
+, withMediaPlayer ? false, glib, gobject-introspection, python3, python38Packages, playerctl
+}:
+ stdenv.mkDerivation rec {
+ pname = "waybar";
+ version = "0.9.4";
+
+ src = fetchFromGitHub {
+ owner = "Alexays";
+ repo = "Waybar";
+ rev = version;
+ sha256 = "038vnma7y7z81caywp45yr364bc1aq8d01j5vycyiyfv33nm76fy";
+ };
+
+ nativeBuildInputs = [
+ meson ninja pkgconfig scdoc wrapGAppsHook cmake
+ ] ++ stdenv.lib.optional withMediaPlayer gobject-introspection;
+
+ propagatedBuildInputs = stdenv.lib.optionals withMediaPlayer [
+ glib
+ playerctl
+ python38Packages.pygobject3
+ ];
+ strictDeps = false;
+
+ buildInputs = with stdenv.lib;
+ [ wayland wlroots gtkmm3 libsigcxx jsoncpp fmt spdlog gtk-layer-shell howard-hinnant-date ]
+ ++ optional traySupport libdbusmenu-gtk3
+ ++ optional pulseSupport libpulseaudio
+ ++ optional nlSupport libnl
+ ++ optional udevSupport udev
+ ++ optional swaySupport sway
+ ++ optional mpdSupport mpd_clientlib;
+
+ mesonFlags = (stdenv.lib.mapAttrsToList
+ (option: enable: "-D${option}=${if enable then "enabled" else "disabled"}")
+ {
+ dbusmenu-gtk = traySupport;
+ pulseaudio = pulseSupport;
+ libnl = nlSupport;
+ libudev = udevSupport;
+ mpd = mpdSupport;
+ }
+ ) ++ [
+ "-Dout=${placeholder "out"}"
+ "-Dsystemd=disabled"
+ ];
+
+ preFixup = stdenv.lib.optional withMediaPlayer ''
+ cp $src/resources/custom_modules/mediaplayer.py $out/bin/waybar-mediaplayer.py
+
+ wrapProgram $out/bin/waybar-mediaplayer.py \
+ --prefix PYTHONPATH : "$PYTHONPATH:$out/${python3.sitePackages}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Highly customizable Wayland bar for Sway and Wlroots based compositors";
+ license = licenses.mit;
+ maintainers = with maintainers; [ FlorianFranzen minijackson synthetica ];
+ platforms = platforms.unix;
+ homepage = "https://github.com/alexays/waybar";
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/wcalc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/wcalc/default.nix
new file mode 100644
index 000000000000..94c56ba5439c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/wcalc/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, mpfr, readline }:
+
+stdenv.mkDerivation rec {
+ pname = "wcalc";
+ version = "2.5";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/w-calc/${pname}-${version}.tar.bz2";
+ sha256 = "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f";
+ };
+
+ buildInputs = [ mpfr readline ];
+
+ meta = with stdenv.lib; {
+ description = "A command line calculator";
+ homepage = "http://w-calc.sourceforge.net";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/weather/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/weather/default.nix
new file mode 100644
index 000000000000..7894bc2f5e4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/weather/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, pythonPackages, installShellFiles }:
+
+stdenv.mkDerivation rec {
+ version = "2.4.1";
+ pname = "weather";
+
+ src = fetchurl {
+ url = "http://fungi.yuggoth.org/weather/src/${pname}-${version}.tar.xz";
+ sha256 = "0nf680dl7a2vlgavdhj6ljq8a7lkhvr6zghkpzad53vmilxsndys";
+ };
+
+ nativeBuildInputs = [
+ installShellFiles
+ pythonPackages.wrapPython
+ ];
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ # Upstream doesn't provide a setup.py or alike, so we follow:
+ # http://fungi.yuggoth.org/weather/doc/install.rst#id3
+ installPhase = ''
+ site_packages=$out/${pythonPackages.python.sitePackages}
+ install -Dt $out/bin -m 755 weather
+ install -Dt $site_packages weather.py
+ install -Dt $out/share/weather-util \
+ airports overrides.{conf,log} places slist stations \
+ zctas zlist zones
+ install -Dt $out/etc weatherrc
+
+ sed -i \
+ -e "s|/etc|$out/etc|g" \
+ -e "s|else: default_setpath = \".:~/.weather|&:$out/share/weather-util|" \
+ $site_packages/weather.py
+
+ wrapPythonPrograms
+
+ installManPage weather.1 weatherrc.5
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://fungi.yuggoth.org/weather";
+ description = "Quick access to current weather conditions and forecasts";
+ license = licenses.isc;
+ maintainers = [ maintainers.matthiasbeyer ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/web-media-controller/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/web-media-controller/default.nix
new file mode 100644
index 000000000000..b2a3394f8aec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/web-media-controller/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, glib, pcre, json-glib }:
+
+stdenv.mkDerivation rec {
+ pname = "wmc-mpris";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "f1u77y";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1zcnaf9g55cbj9d2zlsr0i15qh0w9gp5jmxkm6dcp1j6yd7j3ymc";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ glib pcre json-glib ];
+ cmakeFlags = [
+ "-DCHROMIUM_MANIFEST_DESTINATION=${placeholder "out"}/etc/chromium/native-messaging-hosts"
+ "-DCHROME_MANIFEST_DESTINATION=${placeholder "out"}/etc/opt/chrome/native-messaging-hosts"
+ "-DFIREFOX_MANIFEST_DESTINATION=${placeholder "out"}/lib/mozilla/native-messaging-hosts"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/f1u77y/wmc-mpris";
+ description = "MPRIS proxy for usage with 'Web Media Controller' web extension";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ doronbehar ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/wego/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/wego/default.nix
new file mode 100644
index 000000000000..0dc13e290f58
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/wego/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "wego";
+ version = "unstable-2019-02-11";
+ rev = "994e4f141759a1070d7b0c8fbe5fad2cc7ee7d45";
+
+ goPackagePath = "github.com/schachmat/wego";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/schachmat/wego";
+ sha256 = "1affzwi5rbp4zkirhmby8bvlhsafw7a4rs27caqwyj8g3jhczmhy";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = {
+ license = stdenv.lib.licenses.isc;
+ homepage = "https://github.com/schachmat/wego";
+ description = "Weather app for the terminal";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/wego/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/wego/deps.nix
new file mode 100644
index 000000000000..133315cd0222
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/wego/deps.nix
@@ -0,0 +1,48 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "github.com/mattn/go-colorable";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-colorable";
+ rev = "98ec13f34aabf44cc914c65a1cfb7b9bc815aef1";
+ sha256 = "1yxcz08kminqr1221zxpibnbzfcgs3fafin0z9zqb3gqvf74jywz";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "31745d66dd679ac0ac4f8d3ecff168fce6170c6a";
+ sha256 = "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "18c3d09a134a52720932bbaa92c798a0ab111004";
+ sha256 = "1snr8mk63vz2h44knq26dm81p83887v7kb09iywqmx0nqzngih66";
+ };
+ }
+ {
+ goPackagePath = "github.com/schachmat/ingo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/schachmat/ingo";
+ rev = "a4bdc0729a3fda62cc4069b6e490fc657fd54e33";
+ sha256 = "1gw0kddy7jh3467imsqni86cf9yq7k6vpfc0ywkbwj0zsjsdgd49";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "b016eb3dc98ea7f69ed55e8216b87187067ae621";
+ sha256 = "1k0qr26046d228gi6ngkfxp4m1rjgxk4jj75h0kh1cpyp91n5rja";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/wikicurses/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/wikicurses/default.nix
new file mode 100644
index 000000000000..e528dab0c9fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/wikicurses/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ version = "1.4";
+ pname = "wikicurses";
+
+ src = fetchFromGitHub {
+ owner = "ids1024";
+ repo = "wikicurses";
+ rev = "v${version}";
+ sha256 = "0f14s4qx3q5pr5vn460c34b5mbz2xs62d8ljs3kic8gmdn8x2knm";
+ };
+
+ outputs = [ "out" "man" ];
+
+ propagatedBuildInputs = with pythonPackages; [ urwid beautifulsoup4 lxml ];
+
+ postInstall = ''
+ mkdir -p $man/share/man/man{1,5}
+ cp wikicurses.1 $man/share/man/man1/
+ cp wikicurses.conf.5 $man/share/man/man5/
+ '';
+
+ doCheck = false;
+
+ meta = {
+ description = "A simple curses interface for MediaWiki sites such as Wikipedia";
+ homepage = "https://github.com/ids1024/wikicurses/";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ pSub ];
+ };
+
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/with-shell/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/with-shell/default.nix
new file mode 100644
index 000000000000..d3b5541ac4db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/with-shell/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+ name = "with-2016-08-20";
+ src = fetchFromGitHub {
+ owner = "mchav";
+ repo = "With";
+ rev = "cc2828bddd92297147d4365765f4ef36385f050a";
+ sha256 = "10m2xv6icrdp6lfprw3a9hsrzb3bip19ipkbmscap0niddqgcl9b";
+ };
+ installPhase = ''
+ mkdir -p $out/bin
+ cp with $out/bin/with
+ '';
+ meta = {
+ homepage = "https://github.com/mchav/With";
+ description = "Command prefixing for continuous workflow using a single tool";
+ license = stdenv.lib.licenses.asl20;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/wmname/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/wmname/default.nix
new file mode 100644
index 000000000000..8e760b787b49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/wmname/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, libX11 }:
+
+stdenv.mkDerivation rec {
+ name = "wmname-0.1";
+
+ src = fetchurl {
+ url = "https://dl.suckless.org/tools/${name}.tar.gz";
+ sha256 = "559ad188b2913167dcbb37ecfbb7ed474a7ec4bbcb0129d8d5d08cb9208d02c5";
+ };
+
+ buildInputs = [ libX11 ];
+
+ preConfigure = [ ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'' ];
+
+ meta = {
+ description = "Prints or set the window manager name property of the root window";
+ homepage = "https://tools.suckless.org/wmname";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/wofi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/wofi/default.nix
new file mode 100644
index 000000000000..7b9e38c87d17
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/wofi/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchhg, fetchpatch, pkg-config, meson, ninja, wayland, gtk3, wrapGAppsHook, installShellFiles }:
+
+stdenv.mkDerivation rec {
+ pname = "wofi";
+ version = "1.2.3";
+
+ src = fetchhg {
+ url = "https://hg.sr.ht/~scoopta/wofi";
+ rev = "v${version}";
+ sha256 = "0glpb2gf5n78s01z3rn614ak8ibxhfr824gy6xlljbxclgds264i";
+ };
+
+ nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook installShellFiles ];
+ buildInputs = [ wayland gtk3 ];
+
+ patches = [
+ # https://todo.sr.ht/~scoopta/wofi/121
+ ./do_not_follow_symlinks.patch
+ ];
+
+ postInstall = ''
+ installManPage man/wofi*
+ '';
+
+ meta = with lib; {
+ description = "A launcher/menu program for wlroots based wayland compositors such as sway";
+ homepage = "https://hg.sr.ht/~scoopta/wofi";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ elyhaka ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch
new file mode 100644
index 000000000000..f917c4c1685d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch
@@ -0,0 +1,39 @@
+diff -r 3414ab984249 modes/run.c
+--- a/modes/run.c Tue Aug 11 19:07:49 2020 -0700
++++ b/modes/run.c Sat Aug 22 13:39:52 2020 +0200
+@@ -91,23 +91,10 @@
+
+ char* path = strdup(getenv("PATH"));
+
+- struct map* paths = map_init();
+-
+ char* save_ptr;
+ char* str = strtok_r(path, ":", &save_ptr);
+ do {
+
+- str = realpath(str, NULL);
+- if(str == NULL) {
+- continue;
+- }
+- if(map_contains(paths, str)) {
+- free(str);
+- continue;
+- }
+-
+- map_put(paths, str, "true");
+-
+ DIR* dir = opendir(str);
+ if(dir == NULL) {
+ continue;
+@@ -132,11 +119,9 @@
+ }
+ free(full_path);
+ }
+- free(str);
+ closedir(dir);
+ } while((str = strtok_r(NULL, ":", &save_ptr)) != NULL);
+ free(path);
+- map_free(paths);
+ map_free(cached);
+ map_free(entries);
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/wordnet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/wordnet/default.nix
new file mode 100644
index 000000000000..f681923978bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/wordnet/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, tcl, tk, Cocoa, xlibsWrapper, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ version = "3.0";
+ pname = "wordnet";
+ src = fetchurl {
+ url = "http://wordnetcode.princeton.edu/${version}/WordNet-${version}.tar.bz2";
+ sha256 = "08pgjvd2vvmqk3h641x63nxp7wqimb9r30889mkyfh2agc62sjbc";
+ };
+
+ buildInputs = [ tcl tk xlibsWrapper makeWrapper ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
+
+ hardeningDisable = [ "format" ];
+
+ patchPhase = ''
+ sed "13i#define USE_INTERP_RESULT 1" -i src/stubs.c
+ '';
+
+ # Needs the path to `tclConfig.sh' and `tkConfig.sh'.
+ configureFlags = [
+ "--with-tcl=${tcl}/lib"
+ "--with-tk=${tk}/lib"
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/wishwn --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
+ wrapProgram $out/bin/wnb --prefix PATH : "$out/bin"
+ '';
+
+ meta = {
+ description = "Lexical database for the English language";
+
+ longDescription =
+ '' WordNet® is a large lexical database of English. Nouns, verbs,
+ adjectives and adverbs are grouped into sets of cognitive synonyms
+ (synsets), each expressing a distinct concept. Synsets are
+ interlinked by means of conceptual-semantic and lexical relations.
+ The resulting network of meaningfully related words and concepts can
+ be navigated with the browser. WordNet is also freely and publicly
+ available for download. WordNet's structure makes it a useful tool
+ for computational linguistics and natural language processing.
+ '';
+
+ homepage = "https://wordnet.princeton.edu/";
+ license = {
+ fullName = "WordNet 3.0 license";
+ url = "https://wordnet.princeton.edu/license-and-commercial-use";
+ };
+ maintainers = [ ];
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/worker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/worker/default.nix
new file mode 100644
index 000000000000..b19b1b86cf57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/worker/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, libX11, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "worker";
+ version = "4.5.0";
+
+ src = fetchurl {
+ url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
+ sha256 = "02xrdg1v784p4gfqjm1mlxqwi40qlbzhp68p5ksj96cjv6av5b5s";
+ };
+
+ buildInputs = [ libX11 ];
+
+ meta = with stdenv.lib; {
+ description = "A two-pane file manager with advanced file manipulation features";
+ homepage = "http://www.boomerangsworld.de/cms/worker/index.html";
+ license = licenses.gpl2;
+ maintainers = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/workrave/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/workrave/default.nix
new file mode 100644
index 000000000000..b0020b64eded
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/workrave/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, wrapGAppsHook
+, autoconf, autoconf-archive, automake, gettext, intltool, libtool, pkgconfig
+, libICE, libSM, libXScrnSaver, libXtst, cheetah
+, gobject-introspection, glib, glibmm, gtkmm3, atk, pango, pangomm, cairo
+, cairomm , dbus, dbus-glib, gdome2, gstreamer, gst-plugins-base
+, gst-plugins-good, libsigcxx }:
+
+stdenv.mkDerivation rec {
+ pname = "workrave";
+ version = "1.10.31";
+
+ src = fetchFromGitHub {
+ sha256 = "0v2mx2idaxlsyv5w66b7pknlill9j9i2gqcs3vq54gak7ix9fj1p";
+ rev = with stdenv.lib;
+ "v" + concatStringsSep "_" (splitVersion version);
+ repo = "workrave";
+ owner = "rcaelers";
+ };
+
+ nativeBuildInputs = [
+ autoconf autoconf-archive automake gettext intltool libtool pkgconfig wrapGAppsHook
+ ];
+ buildInputs = [
+ libICE libSM libXScrnSaver libXtst cheetah
+ gobject-introspection glib glibmm gtkmm3 atk pango pangomm cairo cairomm
+ dbus dbus-glib gdome2 gstreamer gst-plugins-base gst-plugins-good libsigcxx
+ ];
+
+ preConfigure = "./autogen.sh";
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A program to help prevent Repetitive Strain Injury";
+ longDescription = ''
+ Workrave is a program that assists in the recovery and prevention of
+ Repetitive Strain Injury (RSI). The program frequently alerts you to
+ take micro-pauses, rest breaks and restricts you to your daily limit.
+ '';
+ homepage = "http://www.workrave.org/";
+ downloadPage = "https://github.com/rcaelers/workrave/releases";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ prikhi ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/wtf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/wtf/default.nix
new file mode 100644
index 000000000000..ad107b644722
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/wtf/default.nix
@@ -0,0 +1,43 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, makeWrapper
+, ncurses
+, stdenv
+}:
+
+buildGoModule rec {
+ pname = "wtf";
+ version = "0.34.0";
+
+ src = fetchFromGitHub {
+ owner = "wtfutil";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "01zydr1w8byjhxf4xj6z001q4ynq0452cn332ap1l1w0dmx9mxyr";
+ };
+
+ vendorSha256 = "1xyai417l8q44b562ssp5qqw04klrhg5397ahr4pc3i30csz8a7a";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ subPackages = [ "." ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postInstall = ''
+ mv "$out/bin/wtf" "$out/bin/wtfutil"
+ wrapProgram "$out/bin/wtfutil" --prefix PATH : "${ncurses.dev}/bin"
+ '';
+
+ meta = with lib; {
+ description = "The personal information dashboard for your terminal";
+ homepage = "https://wtfutil.com/";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ broken = stdenv.isDarwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xastir/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xastir/default.nix
new file mode 100644
index 000000000000..84e4eee2bddc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xastir/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, autoreconfHook
+, curl, db, libgeotiff
+, libXpm, libXt, motif, pcre
+, perl, proj, rastermagick, shapelib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xastir";
+ version = "2.1.6";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "Release-${version}";
+ sha256 = "0yrvwy6hlc73gzwrsrczflyymyz0k33hj991ajrd1vijq14m3n91";
+ };
+
+ buildInputs = [
+ autoreconfHook
+ curl db libgeotiff
+ libXpm libXt motif pcre
+ perl proj rastermagick shapelib
+ ];
+
+ configureFlags = [ "--with-motif-includes=${motif}/include" ];
+
+ postPatch = "patchShebangs .";
+
+ meta = with stdenv.lib; {
+ description = "Graphical APRS client";
+ homepage = "https://xastir.org";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.ehmry ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xautoclick/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xautoclick/default.nix
new file mode 100644
index 000000000000..f259b28131db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xautoclick/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, xorg, pkg-config
+, cmake, libevdev
+, gtkSupport ? true, gtk3, pcre, glib, wrapGAppsHook
+, fltkSupport ? true, fltk
+, qtSupport ? true, qt5
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xautoclick";
+ version = "0.34";
+
+ src = fetchFromGitHub {
+ owner = "qarkai";
+ repo = "xautoclick";
+ rev = "v${version}";
+ sha256 = "GN3zI5LQnVmRC0KWffzUTHKrxcqnstiL55hopwTTwpE=";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+ buildInputs = [ libevdev xorg.libXtst ]
+ ++ stdenv.lib.optionals gtkSupport [ gtk3 pcre glib wrapGAppsHook ]
+ ++ stdenv.lib.optionals fltkSupport [ fltk ]
+ ++ stdenv.lib.optionals qtSupport [ qt5.qtbase qt5.wrapQtAppsHook ];
+
+ meta = with stdenv.lib; {
+ description = "Autoclicker application, which enables you to automatically click the left mousebutton";
+ homepage = "https://github.com/qarkai/xautoclick";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xbattbar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xbattbar/default.nix
new file mode 100644
index 000000000000..0864e24f8c9d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xbattbar/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchgit, libX11, perl, ... }:
+
+stdenv.mkDerivation rec {
+ pname = "xbattbar";
+ version = "1.4.9";
+
+ # The current active upstream of xbattbar seems to be the Debian source
+ # repository.
+ src = fetchgit {
+ url = "https://salsa.debian.org/debian/xbattbar.git";
+ rev = "upstream/${version}";
+ sha256 = "10w7gs0l4hzhdn38yqyr3az7n4ncmfnd6hhhly6lk5dg7k441ck6";
+ };
+
+ buildInputs = [ libX11 ];
+
+ # The following patches are applied:
+ # - sys-by-default: remove the APM checker binary, make the sys checker
+ # script the default. Rationale: checking battery status by /proc/apm is
+ # extremely oldschool and does not work on NixOS, while the sysfs script
+ # does.
+ # - perl shebang patches for acpi/sys scripts
+ # - unhardcode path to checker scripts
+ patchPhase = ''
+ patch -p1 < ${./sys-by-default.patch}
+ sed -i -e "s,/usr/lib/xbattbar/,$out/libexec/," xbattbar.c
+ sed -i -e "s,/usr/bin/perl,${perl}/bin/perl," xbattbar-check-acpi
+ sed -i -e "s,/usr/bin/perl,${perl}/bin/perl," xbattbar-check-sys
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/libexec
+ install -m 0755 xbattbar $out/bin/
+ install -m 0755 xbattbar-check-acpi $out/libexec/
+ install -m 0755 xbattbar-check-sys $out/libexec/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Display battery status in X11";
+ homepage = "https://salsa.debian.org/debian/xbattbar";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.q3k ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch
new file mode 100644
index 000000000000..367f7217eecb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch
@@ -0,0 +1,26 @@
+diff --git a/xbattbar.c b/xbattbar.c
+index 1e26019..cb3eab5 100644
+--- a/xbattbar.c
++++ b/xbattbar.c
+@@ -75,9 +75,8 @@ char *ONOUT_C = "olive drab";
+ char *OFFIN_C = "blue";
+ char *OFFOUT_C = "red";
+
+-char *EXTERNAL_CHECK = "/usr/lib/xbattbar/xbattbar-check-apm";
++char *EXTERNAL_CHECK = "/usr/lib/xbattbar/xbattbar-check-sys";
+ char *EXTERNAL_CHECK_ACPI = "/usr/lib/xbattbar/xbattbar-check-acpi";
+-char *EXTERNAL_CHECK_SYS = "/usr/lib/xbattbar/xbattbar-check-sys";
+
+ int alwaysontop = False;
+
+@@ -245,10 +244,6 @@ main(int argc, char **argv)
+ EXTERNAL_CHECK = EXTERNAL_CHECK_ACPI;
+ break;
+
+- case 'r':
+- EXTERNAL_CHECK = EXTERNAL_CHECK_SYS;
+- break;
+-
+ case 's':
+ EXTERNAL_CHECK = optarg;
+ break;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xca/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xca/default.nix
new file mode 100644
index 000000000000..bf6b37b10286
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xca/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, lib, fetchFromGitHub, autoreconfHook, perl, pkgconfig
+, libtool, openssl, qtbase, qttools }:
+
+mkDerivation rec {
+ pname = "xca";
+ version = "2.2.1";
+
+ src = fetchFromGitHub {
+ owner = "chris2511";
+ repo = "xca";
+ rev = "RELEASE.${version}";
+ sha256 = "0na2816lkfkkvssh9kmf5vwy6x8kd4x7h138jzy61wrvs69vhnbi";
+ };
+
+ postPatch = ''
+ substituteInPlace doc/code2html \
+ --replace /usr/bin/perl ${perl}/bin/perl
+ '';
+
+ buildInputs = [ libtool openssl qtbase ];
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig qttools ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "An x509 certificate generation tool, handling RSA, DSA and EC keys, certificate signing requests (PKCS#10) and CRLs";
+ homepage = "https://hohnstaedt.de/xca/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ offline peterhoeg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xchm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xchm/default.nix
new file mode 100644
index 000000000000..fb1b59ed01fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xchm/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, wxGTK30, chmlib }:
+
+stdenv.mkDerivation rec {
+ pname = "xchm";
+ version = "1.31";
+
+ src = fetchFromGitHub {
+ owner = "rzvncj";
+ repo = "xCHM";
+ rev = version;
+ sha256 = "1mzafbpc1c211byf8bnwl13by7vi8xvxlaykyrajb1bj0ynbmmgp";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ wxGTK30 chmlib ];
+
+ configureFlags = [ "--with-wx-prefix=${wxGTK30}" ];
+
+ preConfigure = ''
+ export LDFLAGS="$LDFLAGS $(${wxGTK30}/bin/wx-config --libs | sed -e s@-pthread@@) -lwx_gtk2u_aui-3.0"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A viewer for Microsoft HTML Help files";
+ homepage = "https://github.com/rzvncj/xCHM";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ sikmir ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xcruiser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xcruiser/default.nix
new file mode 100644
index 000000000000..80a1ced563f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xcruiser/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, gccmakedep, imake, libXt, libXaw, libXpm, libXext }:
+
+stdenv.mkDerivation {
+ name = "xcruiser-0.30";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xcruiser/xcruiser/xcruiser-0.30/xcruiser-0.30.tar.gz";
+ sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi";
+ };
+
+ nativeBuildInputs = [ gccmakedep imake ];
+ buildInputs = [ libXt libXaw libXpm libXext ];
+
+ makeFlags = [
+ "BINDIR=$(out)/bin"
+ "XAPPLOADDIR=$(out)/etc/X11/app-defaults"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Filesystem visualization utility";
+ longDescription = ''
+ XCruiser, formerly known as XCruise, is a filesystem visualization utility.
+ It constructs a virtually 3-D formed universe from a directory
+ tree and allows you to "cruise" within a visualized filesystem.
+ '';
+ homepage = "http://xcruiser.sourceforge.net/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ehmry ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix
new file mode 100644
index 000000000000..b4d821e1deb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, txt2tags, python3Packages, glib, gobject-introspection, wrapGAppsHook }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "xdgmenumaker";
+ version = "1.5";
+
+ src = fetchFromGitHub {
+ owner = "gapan";
+ repo = pname;
+ rev = version;
+ sha256 = "1vrsp5c1ah7p4dpwd6aqvinpwzd8crdimvyyr3lbm3c6cwpyjmif";
+ };
+
+ format = "other";
+
+ strictDeps = false;
+
+ nativeBuildInputs = [
+ gobject-introspection
+ txt2tags
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ ];
+
+ pythonPath = with python3Packages; [
+ pyxdg
+ pygobject3
+ ];
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ ];
+
+ installFlags = [
+ "DESTDIR="
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Command line tool that generates XDG menus for several window managers";
+ homepage = "https://github.com/gapan/xdgmenumaker";
+ license = licenses.gpl2Plus;
+ # NOTE: exclude darwin from platforms because Travis reports hash mismatch
+ platforms = with platforms; filter (x: !(elem x darwin)) unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xdragon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xdragon/default.nix
new file mode 100644
index 000000000000..74f1f755ec8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xdragon/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkg-config, gtk3 }:
+
+stdenv.mkDerivation rec {
+ pname = "xdragon";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "mwh";
+ repo = "dragon";
+ rev = "v${version}";
+ sha256 = "0fgzz39007fdjwq72scp0qygp2v3zc5f1xkm0sxaa8zxm25g1bra";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ gtk3 ];
+
+ installFlags = [ "PREFIX=${placeholder "out"}/bin" ];
+ postInstall = ''
+ ln -s $out/bin/dragon $out/bin/xdragon
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple drag-and-drop source/sink for X (called dragon in upstream)";
+ homepage = "https://github.com/mwh/dragon";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ das_j ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xfe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xfe/default.nix
new file mode 100644
index 000000000000..29a20e0ece29
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xfe/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, fox, pkgconfig, gettext, xlibsWrapper, gcc, intltool, file, libpng }:
+
+stdenv.mkDerivation rec {
+ name = "xfe-1.42";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xfe/${name}.tar.gz";
+ sha256 = "1v1v0vcbnm30kpyd3rj8f56yh7lfnwy7nbs9785wi229b29fiqx1";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ fox gettext xlibsWrapper gcc intltool file libpng ];
+
+ preConfigure = ''
+ sed -i s,/usr/share/xfe,$out/share/xfe, src/xfedefs.h
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "MS-Explorer like file manager for X";
+ longDescription = ''
+ X File Explorer (Xfe) is an MS-Explorer like file manager for X.
+ It is based on the popular, but discontinued, X Win Commander, which was developed by Maxim Baranov.
+ Xfe aims to be the filemanager of choice for all the Unix addicts!
+ '';
+ homepage = "https://sourceforge.net/projects/xfe/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xfontsel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
new file mode 100644
index 000000000000..c61e64a8a3a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
@@ -0,0 +1,36 @@
+# This program used to come with xorg releases, but now I could only find it
+# at https://www.x.org/releases/individual/.
+# That is why this expression is not inside pkgs.xorg
+
+{stdenv, fetchurl, makeWrapper, libX11, pkgconfig, libXaw}:
+stdenv.mkDerivation rec {
+ name = "xfontsel-1.0.6";
+
+ src = fetchurl {
+ url = "mirror://xorg/individual/app/${name}.tar.bz2";
+ sha256 = "0700lf6hx7dg88wq1yll7zjvf9gbwh06xff20yffkxb289y0pai5";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [libX11 makeWrapper libXaw];
+
+ # Without this, it gets Xmu as a dependency, but without rpath entry
+ NIX_LDFLAGS = "-lXmu";
+
+ # This will not make xfontsel find its app-defaults, but at least the $out
+ # directory will contain them.
+ # hack: Copying the XFontSel app-defaults file to $HOME makes xfontsel work.
+ installPhase = ''
+ make install appdefaultdir=$out/share/X11/app-defaults
+ wrapProgram $out/bin/xfontsel \
+ --set XAPPLRESDIR $out/share/X11/app-defaults
+ '';
+
+ meta = {
+ homepage = "https://www.x.org/";
+ description = "Allows testing the fonts available in an X server";
+ license = stdenv.lib.licenses.free;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xiphos/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xiphos/default.nix
new file mode 100644
index 000000000000..a51cc18bc740
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xiphos/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, pkgconfig
+, python
+, intltool
+, docbook2x, docbook_xml_dtd_412, libxslt
+, sword, clucene_core, biblesync
+, gnome-doc-utils
+, libgsf, gconf
+, gtkhtml, libglade, scrollkeeper
+, webkitgtk
+, dbus-glib, enchant, isocodes, libuuid, icu
+, wrapGAppsHook
+, wafHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xiphos";
+ version = "4.1.0";
+
+ src = fetchFromGitHub {
+ owner = "crosswire";
+ repo = "xiphos";
+ rev = version;
+ sha256 = "14il9k4i58qbc78hcadw3gqy21sb9q661d75vlj6fwpczbzj7x1a";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook wafHook ];
+ buildInputs = [ python intltool docbook2x docbook_xml_dtd_412 libxslt
+ sword clucene_core biblesync gnome-doc-utils libgsf gconf gtkhtml
+ libglade scrollkeeper webkitgtk dbus-glib enchant isocodes libuuid icu ];
+
+ prePatch = ''
+ patchShebangs .;
+ '';
+
+ preConfigure = ''
+ export CLUCENE_HOME=${clucene_core};
+ export SWORD_HOME=${sword};
+ '';
+
+ wafConfigureFlags = [ "--enable-webkit2" ];
+
+ meta = with stdenv.lib; {
+ description = "A GTK Bible study tool";
+ longDescription = ''
+ Xiphos (formerly known as GnomeSword) is a Bible study tool
+ written for Linux, UNIX, and Windows using GTK, offering a rich
+ and featureful environment for reading, study, and research using
+ modules from The SWORD Project and elsewhere.
+ '';
+ homepage = "https://www.xiphos.org/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xkbd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xkbd/default.nix
new file mode 100644
index 000000000000..cbca2a33d59e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xkbd/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, freetype, libXrender, libXft, xorgproto
+, xinput, libXi, libXext, libXtst, libXpm, libX11, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xkbd";
+ version = "0.8.18";
+
+ src = fetchFromGitHub {
+ owner = "mahatma-kaganovich";
+ repo = "xkbd";
+ rev = "${pname}-${version}";
+ sha256 = "05ry6q75jq545kf6p20nhfywaqf2wdkfiyp6iwdpv9jh238hf7m9";
+ };
+
+ buildInputs = [
+ freetype libXrender libXft libXext libXtst libXpm libX11
+ libXi xorgproto xinput
+ ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mahatma-kaganovich/xkbd";
+ description = "onscreen soft keyboard for X11";
+ license = licenses.gpl2Plus;
+ maintainers = [ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix
new file mode 100644
index 000000000000..296d6f38db64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, qt4 }:
+
+stdenv.mkDerivation rec {
+ pname = "xkblayout-state";
+ version = "1b";
+
+ src = fetchurl {
+ url = "https://github.com/nonpop/${pname}/archive/v${version}.tar.gz";
+ sha256 = "1m1nnplrdb2mclhj0881wf78ckvdnyk24g4k4p5s5gpd96cxxwnx";
+ };
+
+ buildInputs = [ qt4 ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp xkblayout-state $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A small command-line program to get/set the current XKB keyboard layout";
+ homepage = "https://github.com/nonpop/xkblayout-state";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.jagajaga ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xkbmon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xkbmon/default.nix
new file mode 100644
index 000000000000..1e6384c7d576
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xkbmon/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libX11 }:
+
+stdenv.mkDerivation rec {
+ pname = "xkbmon";
+ version = "0.3";
+
+ src = fetchFromGitHub {
+ owner = "xkbmon";
+ repo = "xkbmon";
+ rev = version;
+ sha256 = "03v8f6fijgwagjphyj8w7lgh5hlc8jk0j2n45n7fm0xwy82cxxx9";
+ };
+
+ buildInputs = [ libX11 ];
+
+ installPhase = "install -D -t $out/bin xkbmon";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/xkbmon/xkbmon";
+ description = "Command-line keyboard layout monitor for X11";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xmenu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmenu/default.nix
new file mode 100644
index 000000000000..e84f95e09981
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmenu/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, imlib2, libX11, libXft, libXinerama }:
+
+stdenv.mkDerivation rec {
+ pname = "xmenu";
+ version = "4.4.1";
+
+ src = fetchFromGitHub {
+ owner = "phillbush";
+ repo = "xmenu";
+ rev = "v${version}";
+ sha256 = "1s70zvsaqnsjqs298vw3py0vcvia68xlks1wcz37pb88bwligz1x";
+ };
+
+ buildInputs = [ imlib2 libX11 libXft libXinerama ];
+
+ postPatch = "sed -i \"s:/usr/local:$out:\" config.mk";
+
+ meta = with stdenv.lib; {
+ description = "A menu utility for X";
+ homepage = "https://github.com/phillbush/xmenu";
+ license = licenses.mit;
+ maintainers = with maintainers; [ neonfuz ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xmind/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmind/default.nix
new file mode 100644
index 000000000000..3e729af71fe5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmind/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, lib, fetchzip, fetchurl, gtk2, jre, libXtst, makeWrapper, makeDesktopItem, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ pname = "xmind";
+ version = "8-update8";
+
+ src = fetchzip {
+ url = "https://xmind.net/xmind/downloads/${pname}-${version}-linux.zip";
+ stripRoot = false;
+ sha256 = "1p68z0b4brgiyybz190alqv716ncql49vsksm41y90mcjd8s4jhn";
+ };
+
+ srcIcon = fetchurl {
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/xmind.png?h=xmind";
+ sha256 = "0jxq2fiq69q9ly0m6hx2qfybqad22sl42ciw636071khpqgc885f";
+ };
+
+ preferLocalBuild = true;
+
+ patches = [ ./java-env-config-fixes.patch ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+ dontPatchELF = true;
+ dontStrip = true;
+
+ libPath = lib.makeLibraryPath [ gtk2 libXtst ];
+
+ desktopItem = makeDesktopItem {
+ name = "XMind";
+ exec = "XMind";
+ icon = "xmind";
+ desktopName = "XMind";
+ comment = meta.description;
+ categories = "Office;";
+ mimeType = "application/xmind;x-scheme-handler/xmind";
+ };
+
+ installPhase = let
+ targetDir = if stdenv.hostPlatform.system == "i686-linux"
+ then "XMind_i386"
+ else "XMind_amd64";
+ in ''
+ mkdir -p $out/{bin,libexec/configuration/,share/{applications/,fonts/,icons/hicolor/scalable/apps/}}
+ cp -r ${targetDir}/{configuration,p2,XMind{,.ini}} $out/libexec
+ cp -r {plugins,features} $out/libexec/
+ cp -r fonts $out/share/fonts/
+ cp "${desktopItem}/share/applications/XMind.desktop" $out/share/applications/XMind.desktop
+ cp ${srcIcon} $out/share/icons/hicolor/scalable/apps/xmind.png
+
+ patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+ $out/libexec/XMind
+
+ wrapProgram $out/libexec/XMind \
+ --prefix LD_LIBRARY_PATH : "${libPath}"
+
+ # Inspired by https://aur.archlinux.org/cgit/aur.git/tree/?h=xmind
+ cat >$out/bin/XMind <<EOF
+ #! ${runtimeShell}
+ if [ ! -d "\$HOME/.xmind" ]; then
+ mkdir -p "\$HOME/.xmind/configuration-cathy/"
+ cp -r $out/libexec/configuration/ \$HOME/.xmind/configuration-cathy/
+ fi
+
+ exec "$out/libexec/XMind" "\$@"
+ EOF
+ chmod +x $out/bin/XMind
+
+ ln -s ${jre} $out/libexec/jre
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Mind-mapping software";
+ longDescription = ''
+ XMind is a mind mapping and brainstorming software. In addition
+ to the management elements, the software can capture ideas,
+ clarify thinking, manage complex information, and promote team
+ collaboration for higher productivity.
+
+ It supports mind maps, fishbone diagrams, tree diagrams,
+ organization charts, spreadsheets, etc. Normally, it is used for
+ knowledge management, meeting minutes, task management, and
+ GTD. Meanwhile, XMind can read FreeMind and MindManager files,
+ and save to Evernote.
+ '';
+ homepage = "https://www.xmind.net/";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ michalrus ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch
new file mode 100644
index 000000000000..f359a9c2ba46
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch
@@ -0,0 +1,40 @@
+diff --git a/XMind_amd64/XMind.ini b/XMind_amd64/XMind.ini
+index bdd8a37..5f35daf 100644
+--- a/XMind_amd64/XMind.ini
++++ b/XMind_amd64/XMind.ini
+@@ -1,11 +1,11 @@
+ -configuration
+-./configuration
++@user.home/.xmind/configuration-cathy_linux_64
+ -data
+-../workspace
++@user.home/.xmind/workspace-cathy
+ -startup
+-../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
++plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
+ --launcher.library
+-../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444
++plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444
+ --launcher.defaultAction
+ openFile
+ --launcher.GTK_version
+diff --git a/XMind_i386/XMind.ini b/XMind_i386/XMind.ini
+index 4ed3225..1d74258 100644
+--- a/XMind_i386/XMind.ini
++++ b/XMind_i386/XMind.ini
+@@ -1,11 +1,11 @@
+ -configuration
+-./configuration
++@user.home/.xmind/configuration-cathy_linux_64
+ -data
+-../workspace
++@user.home/.xmind/workspace-cathy
+ -startup
+-../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
++plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
+ --launcher.library
+-../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444
++plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444
+ --launcher.defaultAction
+ openFile
+ --launcher.GTK_version
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix
new file mode 100644
index 000000000000..cb4233be8ec3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, stdenvGcc6, lib
+, fetchFromGitHub, cmake, libmicrohttpd_0_9_70, openssl
+, opencl-headers, ocl-icd, hwloc, cudatoolkit
+, devDonationLevel ? "0.0"
+, cudaSupport ? false
+, openclSupport ? true
+}:
+
+let
+ stdenv' = if cudaSupport then stdenvGcc6 else stdenv;
+in
+
+stdenv'.mkDerivation rec {
+ name = "xmr-stak-${version}";
+ version = "2.10.8";
+
+ src = fetchFromGitHub {
+ owner = "fireice-uk";
+ repo = "xmr-stak";
+ rev = version;
+ sha256 = "0ilx5mhh91ks7dwvykfyynh53l6vkkignjpwkkss8ss6b2k8gdbj";
+ };
+
+ NIX_CFLAGS_COMPILE = "-O3";
+
+ cmakeFlags = lib.optional (!cudaSupport) "-DCUDA_ENABLE=OFF"
+ ++ lib.optional (!openclSupport) "-DOpenCL_ENABLE=OFF";
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libmicrohttpd_0_9_70 openssl hwloc ]
+ ++ lib.optional cudaSupport cudatoolkit
+ ++ lib.optionals openclSupport [ opencl-headers ocl-icd ];
+
+ postPatch = ''
+ substituteInPlace xmrstak/donate-level.hpp \
+ --replace 'fDevDonationLevel = 2.0' 'fDevDonationLevel = ${devDonationLevel}'
+ '';
+
+ meta = with lib; {
+ description = "Unified All-in-one Monero miner";
+ homepage = "https://github.com/fireice-uk/xmr-stak";
+ license = licenses.gpl3Plus;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ fpletz bfortz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xmrig/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmrig/default.nix
new file mode 100644
index 000000000000..35a19cb3063e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmrig/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, cmake, libuv, libmicrohttpd, openssl, hwloc
+, donateLevel ? 0
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xmrig";
+ version = "6.6.1";
+
+ src = fetchFromGitHub {
+ owner = "xmrig";
+ repo = "xmrig";
+ rev = "v${version}";
+ sha256 = "03phq1c6fylvkg5x7l0bskspr9jdfx61jy67yx2lxhymqgpbf64z";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libuv libmicrohttpd openssl hwloc ];
+
+ postPatch = ''
+ substituteInPlace src/donate.h \
+ --replace "kDefaultDonateLevel = 5;" "kDefaultDonateLevel = ${toString donateLevel};" \
+ --replace "kMinimumDonateLevel = 1;" "kMinimumDonateLevel = ${toString donateLevel};"
+ '';
+
+ installPhase = ''
+ install -vD xmrig $out/bin/xmrig
+ '';
+
+ meta = with lib; {
+ description = "Monero (XMR) CPU miner";
+ homepage = "https://github.com/xmrig/xmrig";
+ license = licenses.gpl3Plus;
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ maintainers = with maintainers; [ fpletz kim0 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix
new file mode 100644
index 000000000000..1b8f79415838
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, cmake, libuv, libmicrohttpd, openssl
+, donateLevel ? 0
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xmrig-proxy";
+ version = "6.4.0";
+
+ src = fetchFromGitHub {
+ owner = "xmrig";
+ repo = "xmrig-proxy";
+ rev = "v${version}";
+ sha256 = "0bcbil9b5z95haqbmdqaslckvjflw7h77fqrcdxc6lrn29575nnf";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libuv libmicrohttpd openssl ];
+
+ postPatch = ''
+ # Link dynamically against libuuid instead of statically
+ substituteInPlace CMakeLists.txt --replace uuid.a uuid
+ '';
+
+ installPhase = ''
+ install -vD xmrig-proxy $out/bin/xmrig-proxy
+ '';
+
+ meta = with lib; {
+ description = "Monero (XMR) Stratum protocol proxy";
+ homepage = "https://github.com/xmrig/xmrig-proxy";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ aij ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xneur/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xneur/default.nix
new file mode 100644
index 000000000000..e75055e92b80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xneur/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, intltool, xorg, pcre, gst_all_1, glib
+, xosd, libnotify, enchant, wrapGAppsHook, gdk-pixbuf }:
+
+stdenv.mkDerivation {
+ pname = "xneur";
+ version = "0.20.0";
+
+ src = fetchurl {
+ url = "https://github.com/AndrewCrewKuznetsov/xneur-devel/raw/f66723feb272c68f7c22a8bf0dbcafa5e3a8a5ee/dists/0.20.0/xneur_0.20.0.orig.tar.gz";
+ sha256 = "1lg3qpi9pkx9f5xvfc8yf39wwc98f769yb7i2438vqn66kla1xpr";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig intltool wrapGAppsHook
+ ];
+
+ buildInputs = [
+ xorg.libX11 xorg.libXtst pcre gst_all_1.gstreamer glib
+ xosd xorg.libXext xorg.libXi libnotify
+ enchant gdk-pixbuf
+ gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+ ];
+
+ postPatch = ''
+ sed -e 's@for xosd_dir in@for xosd_dir in ${xosd} @' -i configure
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Utility for switching between keyboard layouts";
+ homepage = "https://xneur.ru";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.raskin ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xpad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpad/default.nix
new file mode 100644
index 000000000000..8944011a8d73
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpad/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl
+, autoreconfHook, pkgconfig, wrapGAppsHook
+, glib, intltool, gtk3, gtksourceview }:
+
+stdenv.mkDerivation rec {
+ pname = "xpad";
+ version = "5.4.0";
+
+ src = fetchurl {
+ url = "https://launchpad.net/xpad/trunk/${version}/+download/xpad-${version}.tar.bz2";
+ sha256 = "1qpmlwn0bcw1q73ag0l0fdnlzmwawfvsy4g9y5b0vyrc58lcp5d3";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
+
+ buildInputs = [ glib intltool gtk3 gtksourceview ];
+
+ meta = with stdenv.lib; {
+ description = "A sticky note application for jotting down things to remember";
+ homepage = "https://launchpad.net/xpad";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ michalrus ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch
new file mode 100644
index 000000000000..59a51f7506d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch
@@ -0,0 +1,15 @@
+
+Fix "No known features for CXX compiler", see
+https://cmake.org/pipermail/cmake/2016-December/064733.html and the note at
+https://cmake.org/cmake/help/v3.10/command/cmake_minimum_required.html
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,7 +8,7 @@
+ #
+ #========================================================================
+
+-cmake_minimum_required(VERSION 2.8.8)
++cmake_minimum_required(VERSION 3.1.0)
+
+ project(xpdf)
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/default.nix
new file mode 100644
index 000000000000..f5ec9b71503e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/default.nix
@@ -0,0 +1,83 @@
+{ enableGUI ? true
+, enablePDFtoPPM ? true
+, enablePrinting ? true
+, stdenv, fetchzip, cmake, makeDesktopItem
+, zlib, libpng, cups ? null, freetype ? null
+, qtbase ? null, qtsvg ? null, wrapQtAppsHook
+}:
+
+assert enableGUI -> qtbase != null && qtsvg != null && freetype != null;
+assert enablePDFtoPPM -> freetype != null;
+assert enablePrinting -> cups != null;
+
+stdenv.mkDerivation rec {
+ pname = "xpdf";
+ version = "4.02";
+
+ src = fetchzip {
+ url = "https://xpdfreader-dl.s3.amazonaws.com/${pname}-${version}.tar.gz";
+ sha256 = "0dzwq6fnk013wa4l5mjpvm4mms2mh5hbrxv4rhk2ab5ljbzz7b2w";
+ };
+
+ # Fix "No known features for CXX compiler", see
+ # https://cmake.org/pipermail/cmake/2016-December/064733.html and the note at
+ # https://cmake.org/cmake/help/v3.10/command/cmake_minimum_required.html
+ patches = stdenv.lib.optional stdenv.isDarwin ./cmake_version.patch;
+
+ nativeBuildInputs =
+ [ cmake ]
+ ++ stdenv.lib.optional enableGUI wrapQtAppsHook;
+
+ cmakeFlags = ["-DSYSTEM_XPDFRC=/etc/xpdfrc" "-DA4_PAPER=ON" "-DOPI_SUPPORT=ON"]
+ ++ stdenv.lib.optional (!enablePrinting) "-DXPDFWIDGET_PRINTING=OFF";
+
+ buildInputs = [ zlib libpng ] ++
+ stdenv.lib.optional enableGUI qtbase ++
+ stdenv.lib.optional enablePrinting cups ++
+ stdenv.lib.optional enablePDFtoPPM freetype;
+
+ hardeningDisable = [ "format" ];
+
+ desktopItem = makeDesktopItem {
+ name = "xpdf";
+ desktopName = "Xpdf";
+ comment = "Views Adobe PDF files";
+ icon = "xpdf";
+ exec = "xpdf %f";
+ categories = "Office;";
+ terminal = "false";
+ };
+
+ postInstall = ''
+ install -Dm644 ${desktopItem}/share/applications/xpdf.desktop $out/share/applications/xpdf.desktop
+ install -Dm644 $src/xpdf-qt/xpdf-icon.svg $out/share/pixmaps/xpdf.svg
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.xpdfreader.com";
+ description = "Viewer for Portable Document Format (PDF) files";
+ longDescription = ''
+ XPDF includes multiple tools for viewing and processing PDF files.
+ xpdf: PDF viewer (with Graphical Interface)
+ pdftotext: converts PDF to text
+ pdftops: converts PDF to PostScript
+ pdftoppm: converts PDF pages to netpbm (PPM/PGM/PBM) image files
+ pdftopng: converts PDF pages to PNG image files
+ pdftohtml: converts PDF to HTML
+ pdfinfo: extracts PDF metadata
+ pdfimages: extracts raw images from PDF files
+ pdffonts: lists fonts used in PDF files
+ pdfdetach: extracts attached files from PDF files
+ '';
+ license = with licenses; [ gpl2 gpl3 ];
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sikmir ];
+ knownVulnerabilities = [
+ "CVE-2018-7453: loop in PDF objects"
+ "CVE-2018-16369: loop in PDF objects"
+ "CVE-2019-9587: loop in PDF objects"
+ "CVE-2019-9588: loop in PDF objects"
+ "CVE-2019-16088: loop in PDF objects"
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
new file mode 100644
index 000000000000..7b7d9051ada3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl
+}:
+
+stdenv.mkDerivation {
+ name = "libxpdf-3.02pl4";
+
+ src = fetchurl {
+ url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02.tar.gz";
+ sha256 = "000zq4ddbwyxiki4vdwpmxbnw5n9hsg9hvwra2p33hslyib7sfmk";
+ };
+
+ patches = [
+ (fetchurl {
+ url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl1.patch";
+ sha256 = "1wxv9l0d2kkwi961ihpdwi75whdvk7cgqxkbfym8cjj11fq17xjq";
+ })
+ (fetchurl {
+ url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl2.patch";
+ sha256 = "1nfrgsh9xj0vryd8h65myzd94bjz117y89gq0hzji9dqn23xihfi";
+ })
+ (fetchurl {
+ url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl3.patch";
+ sha256 = "0jskkv8x6dqr9zj4azaglas8cziwqqrkbbnzrpm2kzrvsbxyhk2r";
+ })
+ (fetchurl {
+ url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4.patch";
+ sha256 = "1c48h7aizx0ngmzlzw0mpja1w8vqyy3pg62hyxp7c60k86al715h";
+ })
+ ./xpdf-3.02-protection.patch
+ ./libxpdf.patch
+ ];
+
+ installPhase = ''
+ mkdir -p $out/lib/goo
+ mkdir -p $out/lib/fofi
+ mkdir -p $out/lib/xpdf
+ mkdir -p $out/include
+
+ cp -v goo/libGoo.a $out/lib/goo
+ cp -v fofi/libfofi.a $out/lib/fofi
+ cp -v xpdf/libxpdf.a $out/lib/xpdf
+
+ cp -v *.h $out/include
+ cp -v goo/*.h $out/include
+ cp -v fofi/*.h $out/include
+ cp -v xpdf/*.h $out/include
+ '';
+
+ meta = with stdenv.lib; {
+ platforms = platforms.unix;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch
new file mode 100644
index 000000000000..606da76c7293
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch
@@ -0,0 +1,45 @@
+diff -rc xpdf-3.02/xpdf/Makefile.in xpdf-3.02-new/xpdf/Makefile.in
+*** xpdf-3.02/xpdf/Makefile.in 2007-02-27 23:05:52.000000000 +0100
+--- xpdf-3.02-new/xpdf/Makefile.in 2010-08-25 14:54:14.000000000 +0200
+***************
+*** 110,116 ****
+ pdffonts$(EXE) pdftoppm$(EXE) pdfimages$(EXE)
+
+ all-no-x: pdftops$(EXE) pdftotext$(EXE) pdfinfo$(EXE) pdffonts$(EXE) \
+! pdfimages$(EXE)
+
+ #------------------------------------------------------------------------
+
+--- 110,116 ----
+ pdffonts$(EXE) pdftoppm$(EXE) pdfimages$(EXE)
+
+ all-no-x: pdftops$(EXE) pdftotext$(EXE) pdfinfo$(EXE) pdffonts$(EXE) \
+! pdfimages$(EXE) libxpdf.a
+
+ #------------------------------------------------------------------------
+
+***************
+*** 248,253 ****
+--- 248,269 ----
+
+ #------------------------------------------------------------------------
+
++ PDFTOEPDF_OBJS = \
++ Array.o BuiltinFont.o BuiltinFontTables.o CMap.o \
++ Catalog.o CharCodeToUnicode.o Decrypt.o Dict.o Error.o \
++ FontEncodingTables.o Gfx.o GfxFont.o GfxState.o \
++ GlobalParams.o JArithmeticDecoder.o JBIG2Stream.o JPXStream.o Lexer.o Link.o \
++ NameToCharCode.o Object.o OutputDev.o Outline.o PDFDoc.o Page.o \
++ Parser.o PDFDocEncoding.o Stream.o UnicodeMap.o XRef.o Function.o \
++ PSTokenizer.o UnicodeTypeTable.o
++
++ libxpdf.a: $(PDFTOEPDF_OBJS)
++ rm -f $@
++ $(AR) $(ARFLAGS) $@ *.o
++ ranlib $@
++
++ #------------------------------------------------------------------------
++
+ depend:
+ $(CXX) $(CXXFLAGS) -MM $(CXX_SRC) >Makefile.dep
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch
new file mode 100644
index 000000000000..598fc6dbd073
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch
@@ -0,0 +1,74 @@
+diff -C 3 -r orig/xpdf/pdfimages.cc xpdf-3.02/xpdf/pdfimages.cc
+*** orig/xpdf/pdfimages.cc 2007-02-27 23:05:52.000000000 +0100
+--- xpdf-3.02/xpdf/pdfimages.cc 2007-10-31 20:17:22.601449943 +0100
+***************
+*** 118,130 ****
+ goto err1;
+ }
+
+- // check for copy permission
+- if (!doc->okToCopy()) {
+- error(-1, "Copying of images from this document is not allowed.");
+- exitCode = 3;
+- goto err1;
+- }
+-
+ // get page range
+ if (firstPage < 1)
+ firstPage = 1;
+--- 118,123 ----
+diff -C 3 -r orig/xpdf/pdftotext.cc xpdf-3.02/xpdf/pdftotext.cc
+*** orig/xpdf/pdftotext.cc 2007-02-27 23:05:52.000000000 +0100
+--- xpdf-3.02/xpdf/pdftotext.cc 2007-10-31 20:17:34.392224196 +0100
+***************
+*** 160,172 ****
+ goto err2;
+ }
+
+- // check for copy permission
+- if (!doc->okToCopy()) {
+- error(-1, "Copying of text from this document is not allowed.");
+- exitCode = 3;
+- goto err2;
+- }
+-
+ // construct text file name
+ if (argc == 3) {
+ textFileName = new GString(argv[2]);
+--- 160,165 ----
+diff -C 3 -r orig/xpdf/XPDFCore.cc xpdf-3.02/xpdf/XPDFCore.cc
+*** orig/xpdf/XPDFCore.cc 2007-02-27 23:05:52.000000000 +0100
+--- xpdf-3.02/xpdf/XPDFCore.cc 2007-10-31 20:18:05.370494431 +0100
+***************
+*** 384,394 ****
+ #ifndef NO_TEXT_SELECT
+ if (selectULX != selectLRX &&
+ selectULY != selectLRY) {
+! if (doc->okToCopy()) {
+! copySelection();
+! } else {
+! error(-1, "Copying of text from this document is not allowed.");
+! }
+ }
+ #endif
+ }
+--- 384,390 ----
+ #ifndef NO_TEXT_SELECT
+ if (selectULX != selectLRX &&
+ selectULY != selectLRY) {
+! copySelection();
+ }
+ #endif
+ }
+***************
+*** 407,415 ****
+ int pg;
+ double ulx, uly, lrx, lry;
+
+- if (!doc->okToCopy()) {
+- return;
+- }
+ if (getSelection(&pg, &ulx, &uly, &lrx, &lry)) {
+ //~ for multithreading: need a mutex here
+ if (currentSelection) {
+--- 403,408 ----
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix
new file mode 100644
index 000000000000..9d57b4fcfac0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix
@@ -0,0 +1,26 @@
+{ fetchurl, stdenv, libXrandr}:
+
+stdenv.mkDerivation rec {
+ version = "0.01";
+ pname = "xrandr-invert-colors";
+ src = fetchurl {
+ url = "https://github.com/zoltanp/xrandr-invert-colors/archive/v${version}.tar.gz";
+ sha256 = "1z4hxn56rlflvqanb8ncqa1xqawnda85b1b37w6r2iqs8rw52d75";
+ };
+
+ buildInputs = [ libXrandr ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv xrandr-invert-colors.bin xrandr-invert-colors
+ install xrandr-invert-colors $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Inverts the colors of your screen";
+ license = stdenv.lib.licenses.gpl3Plus;
+ homepage = "https://github.com/zoltanp/xrandr-invert-colors";
+ maintainers = [stdenv.lib.maintainers.magnetophon ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xrq/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xrq/default.nix
new file mode 100644
index 000000000000..e3db746ee028
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xrq/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libX11}:
+
+stdenv.mkDerivation {
+ name = "xrq-unstable-2016-01-15";
+
+ src = fetchFromGitHub {
+ owner = "arianon";
+ repo = "xrq";
+ rev = "d5dc19c63881ebdd1287a02968e3a1447dde14a9";
+ sha256 = "1bxf6h3fjw3kjraz7028m7p229l423y1ngy88lqvf0xl1g3dhp36";
+ };
+
+ installPhase = ''
+ make PREFIX=$out install
+ '';
+
+ outputs = [ "out" "man" ];
+
+ buildInputs = [ libX11 ];
+
+ meta = {
+ description = "X utility for querying xrdb";
+ homepage = "https://github.com/arianon/xrq";
+ license = stdenv.lib.licenses.mit;
+ platforms = with stdenv.lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xscope/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xscope/default.nix
new file mode 100644
index 000000000000..4db034476c7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xscope/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, libXt }:
+
+stdenv.mkDerivation rec {
+ pname = "xscope";
+ version = "1.4.1";
+
+ src = fetchurl {
+ url = "mirror://xorg/individual/app/${pname}-${version}.tar.bz2";
+ sha256 = "08zl3zghvbcqy0r5dn54dim84lp52s0ygrr87jr3a942a6ypz01k";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libXt ];
+
+ meta = with stdenv.lib; {
+ description = "program to monitor X11/Client conversations";
+ homepage = "https://cgit.freedesktop.org/xorg/app/xscope/";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ ];
+ platforms = with platforms; unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xsuspender/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xsuspender/default.nix
new file mode 100644
index 000000000000..02559691f4d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xsuspender/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig
+, glib, libwnck3, procps }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+ pname = "xsuspender";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "kernc";
+ repo = "xsuspender";
+ rev = version;
+ sha256 = "03lbga68dxg89d227sdwk1f5xj4r1pmj0qh2kasi2cqh8ll7qv4b";
+ };
+
+ outputs = [ "out" "man" "doc" ];
+
+ nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+ buildInputs = [ glib libwnck3 ];
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ wrapProgram $out/bin/xsuspender \
+ --prefix PATH : "${makeBinPath [ procps ]}"
+ '';
+
+ meta = {
+ description = "Auto-suspend inactive X11 applications";
+ homepage = "https://kernc.github.io/xsuspender/";
+ license = licenses.wtfpl;
+ maintainers = with maintainers; [ offline ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xsw/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xsw/default.nix
new file mode 100644
index 000000000000..c7c10254c0ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xsw/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, SDL, SDL_image, SDL_ttf, SDL_gfx, flex, bison }:
+
+let
+ makeSDLFlags = map (p: "-I${lib.getDev p}/include/SDL");
+
+in stdenv.mkDerivation rec {
+ pname = "xsw";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "andrenho";
+ repo = "xsw";
+ rev = version;
+ sha256 = "092vp61ngd2vscsvyisi7dv6qrk5m1i81gg19hyfl5qvjq5p0p8g";
+ };
+
+ nativeBuildInputs = [ pkgconfig flex bison ];
+
+ buildInputs = [ SDL SDL_image SDL_ttf SDL_gfx ];
+
+ NIX_CFLAGS_COMPILE = toString (makeSDLFlags [ SDL SDL_image SDL_ttf SDL_gfx ]);
+
+ patches = [
+ ./parse.patch # Fixes compilation error by avoiding redundant definitions.
+ ];
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "A slide show presentation tool";
+
+ platforms = platforms.unix;
+ license = licenses.gpl3;
+ maintainers = [ maintainers.vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xsw/parse.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/xsw/parse.patch
new file mode 100644
index 000000000000..6db6c14c26a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xsw/parse.patch
@@ -0,0 +1,21 @@
+The `%code` causes Color definition to be added in both parser.h and parser.c
+causing duplicate definitions error. This ensures that once it has been included
+as part of parser.h, it wont be redefined in parser.c
+
+--- xsw-0.1.2-src/src/parser.y 1969-12-31 16:00:01.000000000 -0800
++++ xsw-0.1.2-src/src/parser.y 2016-06-28 13:21:35.707027770 -0700
+@@ -38,7 +38,13 @@
+
+ %}
+
+-%code requires { typedef struct { unsigned char c; } Color; }
++%code requires
++{
++#ifndef COLORDEF
++#define COLORDEF
++typedef struct { unsigned char c; } Color;
++#endif
++}
+
+ %token SLIDE COLON HIFEN TEXT X Y W H IMAGE SIZE SCALE TEMPLATE BACKGROUND FONT
+ %token STYLE ALIGN EXPAND PLUS IMAGE_PATH
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xteddy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xteddy/default.nix
new file mode 100644
index 000000000000..34ec17b0b9a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xteddy/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitLab, pkg-config, xorg, imlib2, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "xteddy";
+ version = "2.2-5";
+ src = fetchFromGitLab {
+ domain = "salsa.debian.org";
+ owner = "games-team";
+ repo = pname;
+ rev = "debian/${version}";
+ sha256 = "0rm7w78d6qajq4fvi4agyqm0c70f3c1i0cy2jdb6kqql2k8w78qy";
+ };
+
+ nativeBuildInputs = [ pkg-config makeWrapper ];
+ buildInputs = [ imlib2 xorg.libX11 xorg.libXext ];
+
+ patches = [ "${src}/debian/patches/10_libXext.patch" "${src}/debian/patches/wrong-man-page-section.patch" ];
+
+ postPatch = ''
+ sed -i "s:/usr/games/xteddy:$out/bin/xteddy:" xtoys
+ sed -i "s:/usr/share/xteddy:$out/share/xteddy:" xtoys
+ '';
+
+ postInstall = ''
+ cp -R images $out/share/images
+ # remove broken test script
+ rm $out/bin/xteddy_test
+ '';
+
+ postFixup = ''
+ # this is needed, because xteddy expects images to reside
+ # in the current working directory
+ wrapProgram $out/bin/xteddy --run "cd $out/share/images/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Cuddly teddy bear for your X desktop";
+ homepage = "https://weber.itn.liu.se/~stegu/xteddy/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.xaverdh ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xxkb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xxkb/default.nix
new file mode 100644
index 000000000000..64d55322896b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xxkb/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, libX11, libXt, libXext, libXpm, imake, gccmakedep
+, svgSupport ? false, librsvg, glib, gdk-pixbuf, pkgconfig
+}:
+
+assert svgSupport ->
+ librsvg != null && glib != null && gdk-pixbuf != null && pkgconfig != null;
+
+stdenv.mkDerivation rec {
+ name = "xxkb-1.11.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xxkb/${name}-src.tar.gz";
+ sha256 = "0hl1i38z9xnbgfjkaz04vv1n8xbgfg88g5z8fyzyb2hxv2z37anf";
+ };
+
+ nativeBuildInputs = [ imake gccmakedep ];
+ buildInputs = [
+ libX11 libXt libXext libXpm
+ ] ++ stdenv.lib.optionals svgSupport [ librsvg glib gdk-pixbuf pkgconfig ];
+
+ outputs = [ "out" "man" ];
+
+ imakeFlags = stdenv.lib.optionalString svgSupport "-DWITH_SVG_SUPPORT";
+
+ makeFlags = [
+ "BINDIR=${placeholder "out"}/bin"
+ "PIXMAPDIR=${placeholder "out"}/share/xxkb"
+ "XAPPLOADDIR=${placeholder "out"}/etc/X11/app-defaults"
+ "MANDIR=${placeholder "man"}/share/man"
+ ];
+
+ installTargets = [ "install" "install.man" ];
+
+ meta = {
+ description = "A keyboard layout indicator and switcher";
+ homepage = "http://xxkb.sourceforge.net/";
+ license = stdenv.lib.licenses.artistic2;
+ maintainers = with stdenv.lib.maintainers; [ rasendubi ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/xygrib/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/xygrib/default.nix
new file mode 100644
index 000000000000..e3d22b5d00a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/xygrib/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, bzip2, qtbase, qttools, libnova, proj, libpng, openjpeg } :
+
+stdenv.mkDerivation rec {
+ version = "1.2.6.1";
+ pname = "xygrib";
+
+ src = fetchFromGitHub {
+ owner = "opengribs";
+ repo = "XyGrib";
+ rev = "v${version}";
+ sha256 = "0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia";
+ };
+
+ nativeBuildInputs = [ cmake qttools wrapQtAppsHook ];
+ buildInputs = [ bzip2 qtbase libnova proj openjpeg libpng ];
+ cmakeFlags = [ "-DOPENJPEG_INCLUDE_DIR=${openjpeg.dev}/include/openjpeg-2.3" ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ "-DLIBNOVA_LIBRARY=${libnova}/lib/libnova.dylib" ];
+
+ postInstall = if stdenv.isDarwin then ''
+ mkdir -p "$out/Applications" "$out/XyGrib/XyGrib.app/Contents/Resources"
+ cp "../data/img/xyGrib.icns" "$out/XyGrib/XyGrib.app/Contents/Resources/xyGrib.icns"
+ mv $out/XyGrib/XyGrib.app $out/Applications
+ wrapQtApp "$out/Applications/XyGrib.app/Contents/MacOS/XyGrib"
+ '' else ''
+ wrapQtApp $out/XyGrib/XyGrib
+ mkdir -p $out/bin
+ ln -s $out/XyGrib/XyGrib $out/bin/xygrib
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://opengribs.org";
+ description = "Weather Forecast Visualization";
+ longDescription = ''XyGrib is a leading opensource weather visualization package.
+ It interacts with OpenGribs's Grib server providing a choice
+ of global and large area atmospheric and wave models.'';
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ j03 SuperSandro2000 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/yarssr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/yarssr/default.nix
new file mode 100644
index 000000000000..805c708ea00c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/yarssr/default.nix
@@ -0,0 +1,64 @@
+{ fetchFromGitHub, stdenv, lib, gettext, gtk2, makeWrapper, perlPackages, gnome2 }:
+
+let
+ perlDeps = with perlPackages; [
+ Glib Gtk2 Gnome2 Pango Cairo Gnome2Canvas Gnome2VFS Gtk2GladeXML Gtk2TrayIcon
+ XMLLibXML XMLSAXBase XMLParser XMLRSS
+ HTMLParser
+ DateTime DateTimeFormatMail DateTimeFormatW3CDTF DateTimeLocale DateTimeTimeZone
+ ParamsValidate
+ ModuleImplementation ModuleRuntime
+ TryTiny
+ ClassSingleton
+ URI
+ AnyEvent AnyEventHTTP
+ commonsense
+ FileSlurp
+ JSON
+ Guard
+ LocaleGettext
+ ];
+ libs = [
+ stdenv.cc.cc.lib
+ gtk2
+ ];
+in
+stdenv.mkDerivation {
+ version = "git-2017-12-01";
+ pname = "yarssr";
+
+ src = fetchFromGitHub {
+ owner = "JGRennison";
+ repo = "yarssr";
+ rev = "e70eb9fc6563599bfb91c6de6a79654de531c18d";
+ sha256 = "0x7hz8x8qyp3i1vb22zhcnvwxm3jhmmmlr22jqc5b09vpmbw1l45";
+ };
+
+ nativeBuildInputs = [ perlPackages.perl gettext makeWrapper ];
+ buildInputs = perlDeps ++ [gnome2.libglade];
+ propagatedBuildInputs = libs ++ perlDeps;
+
+ installPhase = ''
+ DESTDIR=$out make install
+ mv $out/usr/* $out/
+ rm -R $out/usr
+ sed -i -r "s!use lib [^;]+;!use lib '$out/share/yarssr';!" $out/bin/yarssr
+ sed -i -r "s!$Yarssr::PREFIX = [^;]+;!$Yarssr::PREFIX = '$out';!" $out/bin/yarssr
+ sed -i -r "s!use Yarssr::Browser;!!" $out/share/yarssr/Yarssr/GUI.pm
+ chmod a+x $out/bin/yarssr
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/yarssr \
+ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath libs} \
+ --set PERL5LIB "${perlPackages.makePerlPath perlDeps}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/tsyrogit/zxcvbn-c";
+ description = "A fork of Yarssr (a RSS reader for the GNOME Tray) from http://yarssr.sf.net with various fixes";
+ license = licenses.gpl1;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ xurei ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/yate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/yate/default.nix
new file mode 100644
index 000000000000..6c03bbc33b39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/yate/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, lib, qt4, openssl, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "yate";
+ version = "6.1.0-1";
+
+ src = fetchurl {
+ url = "http://voip.null.ro/tarballs/yate${lib.versions.major version}/${pname}-${version}.tar.gz";
+ sha256 = "0xx3i997nsf2wzbv6m5n6adsym0qhgc6xg4rsv0fwqrgisf5327d";
+ };
+
+ # TODO zaptel ? postgres ?
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ qt4 openssl ];
+
+ # /dev/null is used when linking which is a impure path for the wrapper
+ preConfigure =
+ ''
+ sed -i 's@,/dev/null@@' configure
+ patchShebangs configure
+ '';
+
+ # --unresolved-symbols=ignore-in-shared-libs makes ld no longer find --library=yate? Why?
+ preBuild =
+ ''
+ export NIX_LDFLAGS="-L$TMP/yate $NIX_LDFLAGS"
+ find . -type f -iname Makefile | xargs sed -i \
+ -e 's@-Wl,--unresolved-symbols=ignore-in-shared-libs@@' \
+ -e 's@-Wl,--retain-symbols-file@@'
+ '';
+
+ meta = {
+ description = "Yet another telephony engine";
+ homepage = "http://yate.null.ro/";
+ # Yate's license is GPL with an exception for linking with
+ # OpenH323 and PWlib (licensed under MPL).
+ license = ["GPL" "MPL"];
+ maintainers = [ lib.maintainers.marcweber ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/yokadi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/yokadi/default.nix
new file mode 100644
index 000000000000..00507d2ee888
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/yokadi/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, buildPythonApplication, dateutil,
+ sqlalchemy, setproctitle, icalendar }:
+
+buildPythonApplication rec {
+ pname = "yokadi";
+ version = "1.2.0";
+
+ src = fetchurl {
+ url = "https://yokadi.github.io/download/${pname}-${version}.tar.gz";
+ sha256 = "681c8aa52b2e4b5255e1311e76b4b81dcb63ee7f6ca3a47178e684c06baf330f";
+ };
+
+ propagatedBuildInputs = [
+ dateutil
+ sqlalchemy
+ setproctitle
+ icalendar
+ ];
+
+ # Yokadi doesn't have any tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A command line oriented, sqlite powered, todo-list";
+ homepage = "https://yokadi.github.io/index.html";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.nipav ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/yubioath-desktop/0001-replace-git-with-normal-python-package.patch b/infra/libkookie/nixpkgs/pkgs/applications/misc/yubioath-desktop/0001-replace-git-with-normal-python-package.patch
new file mode 100644
index 000000000000..d56a6cfab073
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/yubioath-desktop/0001-replace-git-with-normal-python-package.patch
@@ -0,0 +1,24 @@
+From 5eb4d6a384753896d495b09d8651c48672ef234d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Wed, 25 Nov 2020 11:26:49 +0100
+Subject: [PATCH] replace git with normal python package
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
+---
+ requirements.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/requirements.txt b/requirements.txt
+index ef25aad..b4246a4 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -1,2 +1,2 @@
+-git+https://github.com/Yubico/yubikey-manager.git
++yubikey-manager
+ ./py/qr
+--
+2.29.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix
new file mode 100644
index 000000000000..460b34416ff5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, mkDerivation
+, qmake, qtbase, qtquickcontrols2, qtgraphicaleffects
+, python3, pyotherside
+, pcsclite, yubikey-personalization
+, yubikey-manager, makeWrapper }:
+
+mkDerivation rec {
+ pname = "yubioath-desktop";
+ version = "5.0.4";
+
+ src = fetchurl {
+ url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
+ sha256 = "1aw88xvg6gjsfwmmlcrdcgyycn2cp7b8vxjzj14h7igcj02xh84h";
+ };
+
+ doCheck = false;
+
+ buildInputs = [ stdenv qtbase qtquickcontrols2 qtgraphicaleffects python3 ];
+
+ nativeBuildInputs = [ qmake makeWrapper python3.pkgs.wrapPython ];
+
+ patches = [
+ ./0001-replace-git-with-normal-python-package.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace deployment.pri \
+ --replace '/usr/bin' "$out/bin"
+ '';
+
+ pythonPath = [ yubikey-manager ];
+
+ # Need LD_PRELOAD for libykpers as the Nix cpython disables ctypes.cdll.LoadLibrary
+ # support that the yubicommon library uses to load libykpers
+
+ postInstall = ''
+ buildPythonPath "$out $pythonPath"
+ wrapProgram $out/bin/yubioath-desktop \
+ --prefix PYTHONPATH : "$program_PYTHONPATH" \
+ --prefix QML2_IMPORT_PATH : "${pyotherside}/${qtbase.qtQmlPrefix}" \
+ --prefix LD_PRELOAD : "${yubikey-personalization}/lib/libykpers-1.so" \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.getLib pcsclite}/lib:${yubikey-personalization}/lib"
+
+ mkdir -p $out/share/applications
+ cp resources/com.yubico.yubioath.desktop \
+ $out/share/applications/com.yubico.yubioath.desktop
+ mkdir -p $out/share/yubioath/icons
+ cp resources/icons/*.{icns,ico,png,svg} $out/share/yubioath/icons
+ substituteInPlace $out/share/applications/com.yubico.yubioath.desktop \
+ --replace 'Exec=yubioath-desktop' "Exec=$out/bin/yubioath-desktop" \
+ --replace 'Icon=yubioath' "Icon=$out/share/yubioath/icons/com.yubico.yubioath.png"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Yubico Authenticator";
+ longDescription = ''
+ Application for generating Open Authentication (OATH) time-based TOTP and
+ event-based HOTP one-time password codes, with the help of a YubiKey that
+ protects the shared secrets.
+ '';
+
+ homepage = "https://developers.yubico.com/yubioath-desktop";
+ downloadPage = "https://developers.yubico.com/yubioath-desktop/Releases/";
+ changelog = "https://developers.yubico.com/yubioath-desktop/Release_Notes.html";
+
+ license = stdenv.lib.licenses.bsd2;
+ maintainers = with maintainers; [ mic92 risson ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/cb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/cb/default.nix
new file mode 100644
index 000000000000..4e2d16819ba5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/cb/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchurl, meson, ninja, pkgconfig, zathura_core
+, girara, gettext, libarchive }:
+
+stdenv.mkDerivation rec {
+ pname = "zathura-cb";
+ version = "0.1.8";
+
+ src = fetchurl {
+ url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
+ sha256 = "1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig gettext ];
+ buildInputs = [ libarchive zathura_core girara ];
+
+ PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
+
+ meta = with lib; {
+ homepage = "https://pwmt.org/projects/zathura-cb/";
+ description = "A zathura CB plugin";
+ longDescription = ''
+ The zathura-cb plugin adds comic book support to zathura.
+ '';
+ license = licenses.zlib;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ jlesquembre ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/core/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
new file mode 100644
index 000000000000..2fc158daf62f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, meson, ninja, wrapGAppsHook, pkgconfig
+, appstream-glib, desktop-file-utils, python3
+, gtk, girara, gettext, libxml2, check
+, sqlite, glib, texlive, libintl, libseccomp
+, file, librsvg
+, gtk-mac-integration
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "zathura";
+ version = "0.4.7";
+
+ src = fetchurl {
+ url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
+ sha256 = "1rx1fk9s556fk59lmqgvhwrmv71ashh89bx9adjq46wq5gzdn4p0";
+ };
+
+ outputs = [ "bin" "man" "dev" "out" ];
+
+ # Flag list:
+ # https://github.com/pwmt/zathura/blob/master/meson_options.txt
+ mesonFlags = [
+ "-Dsqlite=enabled"
+ "-Dmagic=enabled"
+ "-Dmanpages=enabled"
+ "-Dconvert-icon=enabled"
+ "-Dsynctex=enabled"
+ # Make sure tests are enabled for doCheck
+ "-Dtests=enabled"
+ ] ++ optional (!stdenv.isLinux) "-Dseccomp=disabled";
+
+ nativeBuildInputs = [
+ meson ninja pkgconfig desktop-file-utils python3.pkgs.sphinx
+ gettext wrapGAppsHook libxml2 check appstream-glib
+ ];
+
+ buildInputs = [
+ gtk girara libintl sqlite glib file librsvg
+ texlive.bin.core
+ ] ++ optional stdenv.isLinux libseccomp
+ ++ optional stdenv.isDarwin gtk-mac-integration;
+
+ doCheck = true;
+
+ meta = {
+ homepage = "https://git.pwmt.org/pwmt/zathura";
+ description = "A core component for zathura PDF viewer";
+ license = licenses.zlib;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/default.nix
new file mode 100644
index 000000000000..1548b0581b65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/default.nix
@@ -0,0 +1,33 @@
+{ config, pkgs
+# zathura_pdf_mupdf fails to load _opj_create_decompress at runtime on Darwin (https://github.com/NixOS/nixpkgs/pull/61295#issue-277982980)
+, useMupdf ? config.zathura.useMupdf or (!pkgs.stdenv.isDarwin) }:
+
+let
+ callPackage = pkgs.newScope self;
+
+ self = rec {
+ gtk = pkgs.gtk3;
+
+ zathura_core = callPackage ./core { };
+
+ zathura_pdf_poppler = callPackage ./pdf-poppler { };
+
+ zathura_pdf_mupdf = callPackage ./pdf-mupdf { };
+
+ zathura_djvu = callPackage ./djvu { };
+
+ zathura_ps = callPackage ./ps { };
+
+ zathura_cb = callPackage ./cb { };
+
+ zathuraWrapper = callPackage ./wrapper.nix {
+ plugins = [
+ zathura_djvu
+ zathura_ps
+ zathura_cb
+ (if useMupdf then zathura_pdf_mupdf else zathura_pdf_poppler)
+ ];
+ };
+ };
+
+in self.zathuraWrapper
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix
new file mode 100644
index 000000000000..954df5301e31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gtk, zathura_core, girara, djvulibre, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "zathura-djvu";
+ version = "0.2.9";
+
+ src = fetchurl {
+ url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
+ sha256 = "0062n236414db7q7pnn3ccg5111ghxj3407pn9ri08skxskgirln";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig ];
+ buildInputs = [ djvulibre gettext zathura_core gtk girara ];
+
+ PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
+
+ meta = with stdenv.lib; {
+ homepage = "https://pwmt.org/projects/zathura-djvu/";
+ description = "A zathura DJVU plugin";
+ longDescription = ''
+ The zathura-djvu plugin adds DjVu support to zathura by using the
+ djvulibre library.
+ '';
+ license = licenses.zlib;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
new file mode 100644
index 000000000000..97f36f828472
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, lib, meson, ninja, fetchurl, fetchpatch
+, cairo
+, girara
+, gtk-mac-integration
+, gumbo
+, jbig2dec
+, libjpeg
+, mupdf
+, openjpeg_2
+, pkgconfig
+, zathura_core
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.3.6";
+ pname = "zathura-pdf-mupdf";
+
+ src = fetchurl {
+ url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
+ sha256 = "1r3v37k9fl2rxipvacgxr36llywvy7n20a25h3ajlyk70697sa66";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig ];
+
+ buildInputs = [
+ cairo
+ girara
+ gumbo
+ jbig2dec
+ libjpeg
+ mupdf
+ openjpeg_2
+ zathura_core
+ ] ++ lib.optional stdenv.isDarwin gtk-mac-integration;
+
+ mesonFlags = [
+ "-Dlink-external=true"
+ ];
+
+ # avoid: undefined symbol: gumbo_destroy_output
+ NIX_LDFLAGS = [ "-lgumbo" ];
+
+ PKG_CONFIG_ZATHURA_PLUGINDIR= "lib/zathura";
+
+ meta = with lib; {
+ homepage = "https://pwmt.org/projects/zathura-pdf-mupdf/";
+ description = "A zathura PDF plugin (mupdf)";
+ longDescription = ''
+ The zathura-pdf-mupdf plugin adds PDF support to zathura by
+ using the mupdf rendering library.
+ '';
+ license = licenses.zlib;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix
new file mode 100644
index 000000000000..bafa293ad9c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchurl, meson, ninja, pkgconfig, zathura_core, girara, poppler }:
+
+stdenv.mkDerivation rec {
+ pname = "zathura-pdf-poppler";
+ version = "0.3.0";
+
+ src = fetchurl {
+ url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
+ sha256 = "1vfl4vkyy3rf39r1sqaa7y8113bgkh2bkfq3nn2inis9mrykmk6m";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig zathura_core ];
+ buildInputs = [ poppler girara ];
+
+ PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
+
+ meta = with lib; {
+ homepage = "https://pwmt.org/projects/zathura-pdf-poppler/";
+ description = "A zathura PDF plugin (poppler)";
+ longDescription = ''
+ The zathura-pdf-poppler plugin adds PDF support to zathura by
+ using the poppler rendering library.
+ '';
+ license = licenses.zlib;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix
new file mode 100644
index 000000000000..05cc570eb8f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchurl, meson, ninja, pkgconfig, zathura_core, girara, libspectre, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "zathura-ps";
+ version = "0.2.6";
+
+ src = fetchurl {
+ url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
+ sha256 = "0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig gettext ];
+ buildInputs = [ libspectre zathura_core girara ];
+
+ PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
+
+ meta = with lib; {
+ homepage = "https://pwmt.org/projects/zathura-ps/";
+ description = "A zathura PS plugin";
+ longDescription = ''
+ The zathura-ps plugin adds PS support to zathura by using the
+ libspectre library.
+ '';
+ license = licenses.zlib;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
new file mode 100644
index 000000000000..7cd52e0c74f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
@@ -0,0 +1,29 @@
+{ symlinkJoin, lib, makeWrapper, zathura_core, file, plugins ? [] }:
+symlinkJoin {
+ name = "zathura-with-plugins-${zathura_core.version}";
+
+ paths = with zathura_core; [ man dev out ] ++ plugins;
+
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \
+ --prefix PATH ":" "${lib.makeBinPath [ file ]}" \
+ --add-flags --plugins-dir="$out/lib/zathura"
+ '';
+
+ meta = with lib; {
+ homepage = "https://git.pwmt.org/pwmt/zathura/";
+ description = "A highly customizable and functional PDF viewer";
+ longDescription = ''
+ Zathura is a highly customizable and functional PDF viewer based on the
+ poppler rendering library and the GTK toolkit. The idea behind zathura
+ is an application that provides a minimalistic and space saving interface
+ as well as an easy usage that mainly focuses on keyboard interaction.
+ '';
+ license = licenses.zlib;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ smironov globin TethysSvensson ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zettlr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zettlr/default.nix
new file mode 100644
index 000000000000..3d762d9ab2a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zettlr/default.nix
@@ -0,0 +1,38 @@
+{ appimageTools, lib, fetchurl, gtk3, gsettings-desktop-schemas}:
+
+# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
+let
+ pname = "zettlr";
+ version = "1.7.5";
+ name = "${pname}-${version}";
+ src = fetchurl {
+ url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
+ sha256 = "040lx01ywdpla34d4abkmh51kchr11s17la6fk6yq77y8zb87xzi";
+ };
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+in appimageTools.wrapType2 rec {
+ inherit name src;
+
+ profile = ''
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null; # no 32bit needed
+ extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+ extraInstallCommands = ''
+ mv $out/bin/{${name},${pname}}
+ install -m 444 -D ${appimageContents}/zettlr.desktop $out/share/applications/zettlr.desktop
+ install -m 444 -D ${appimageContents}/zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png
+ substituteInPlace $out/share/applications/zettlr.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with lib; {
+ description = "A markdown editor for writing academic texts and taking notes";
+ homepage = "https://www.zettlr.com";
+ platforms = [ "x86_64-linux" ];
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ tfmoraes ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zk-shell/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zk-shell/default.nix
new file mode 100644
index 000000000000..df6e011e4d58
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zk-shell/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ version = "1.0.0";
+ name = "zk-shell-" + version;
+
+ src = fetchFromGitHub {
+ owner = "rgs1";
+ repo = "zk_shell";
+ rev = "v${version}";
+ sha256 = "0zisvvlclsf4sdh7dpqcl1149xbxw6pi1aqcwjbqblgf8m4nm0c7";
+ };
+
+ propagatedBuildInputs = (with pythonPackages; [
+ ansi kazoo nose six tabulate twitter
+ ]);
+
+ #requires a running zookeeper, don't know how to fix that for the moment
+ doCheck = false;
+
+ meta = {
+ description = "A powerful & scriptable shell for Apache ZooKeeper";
+ homepage = "https://github.com/rgs1/zk_shell";
+ license = stdenv.lib.licenses.asl20;
+ maintainers = [ stdenv.lib.maintainers.mahe ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zola/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zola/default.nix
new file mode 100644
index 000000000000..377260a662db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zola/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, oniguruma, CoreServices }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "zola";
+ version = "0.12.2";
+
+ src = fetchFromGitHub {
+ owner = "getzola";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256:0fb227kgani32ljnw73a0h5zn5361z5lraf79y34a0chcby2qv35";
+ };
+
+ cargoSha256 = "sha256:0ilfr32zcajag05qcpwi5ixz250s427i4xrjf4wrk7qy32bblnr5";
+
+ nativeBuildInputs = [ cmake pkg-config ];
+ buildInputs = [ openssl oniguruma ]
+ ++ stdenv.lib.optional stdenv.isDarwin CoreServices;
+
+ RUSTONIG_SYSTEM_LIBONIG = true;
+
+ postInstall = ''
+ install -D -m 444 completions/zola.bash \
+ -t $out/share/bash-completion/completions
+ install -D -m 444 completions/_zola \
+ -t $out/share/zsh/site-functions
+ install -D -m 444 completions/zola.fish \
+ -t $out/share/fish/vendor_completions.d
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A fast static site generator with everything built-in";
+ homepage = "https://www.getzola.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dywedir _0x4A6F ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/misc/zscroll/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/misc/zscroll/default.nix
new file mode 100644
index 000000000000..402032b5cec3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/misc/zscroll/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, python3, python3Packages, fetchFromGitHub }:
+
+let version = "1.0"; in
+
+python3Packages.buildPythonApplication {
+ name = "zscroll-${version}";
+ # don't prefix with python version
+ namePrefix = "";
+
+ src = fetchFromGitHub {
+ owner = "noctuid";
+ repo = "zscroll";
+ rev = "v${version}";
+ sha256 = "0rf9m1czy19hzpcp8dq9c5zawk0nhwfzzjxlhk9r2n06lhb81ig5";
+ };
+
+ doCheck = false;
+
+ propagatedBuildInputs = [ python3 ];
+
+ meta = with stdenv.lib; {
+ description = "A text scroller for use with panels and shells";
+ homepage = "https://github.com/noctuid/zscroll";
+ license = licenses.bsd2;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/3proxy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/3proxy/default.nix
new file mode 100644
index 000000000000..a1e54b502289
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/3proxy/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, coreutils }:
+
+stdenv.mkDerivation rec {
+ pname = "3proxy";
+ version = "0.8.13";
+ src = fetchFromGitHub {
+ owner = "z3APA3A";
+ repo = pname;
+ rev = version;
+ sha256 = "1k5rqldiyakhwhplazlhswkgy3psdkpxhn85605ncwaqx49qy8vk";
+ };
+ makeFlags = [
+ "INSTALL=${coreutils}/bin/install"
+ "prefix=$(out)"
+ ];
+ preConfigure = ''
+ ln -s Makefile.Linux Makefile
+ '';
+ meta = with stdenv.lib; {
+ description = "Tiny free proxy server";
+ homepage = "https://github.com/z3APA3A/3proxy";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.misuzu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/Sylk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/Sylk/default.nix
new file mode 100644
index 000000000000..9f5378d761aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/Sylk/default.nix
@@ -0,0 +1,32 @@
+{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }:
+
+let
+ pname = "Sylk";
+ version = "2.9.3";
+in
+
+appimageTools.wrapType2 rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
+ hash = "sha256-JH/TUGAYZTIb/L926CoYb5yzPtbOKVmnWRmHO6DxDyY=";
+ };
+
+ profile = ''
+ export LC_ALL=C.UTF-8
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null; # no 32bit needed
+ extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+ extraInstallCommands = "mv $out/bin/{${name},${pname}}";
+
+ meta = with lib; {
+ description = "Sylk WebRTC client";
+ homepage = "https://sylkserver.com/";
+ license = licenses.agpl3Plus;
+ maintainers = with maintainers; [ zimbatm ];
+ platforms = [ "i386-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix
new file mode 100644
index 000000000000..141bbe654b7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, jdk14, makeWrapper, autoPatchelfHook, makeDesktopItem, glib, libsecret }:
+
+let
+ desktopItem = makeDesktopItem {
+ name = "apache-directory-studio";
+ exec = "ApacheDirectoryStudio";
+ icon = "apache-directory-studio";
+ comment = "Eclipse-based LDAP browser and directory client";
+ desktopName = "Apache Directory Studio";
+ genericName = "Apache Directory Studio";
+ categories = "Java;Network";
+ };
+ version = "2.0.0-M15";
+ versionWithDate = "2.0.0.v20200411-M15";
+in
+stdenv.mkDerivation rec {
+ pname = "apache-directory-studio";
+ inherit version;
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "mirror://apache/directory/studio/${versionWithDate}/ApacheDirectoryStudio-${versionWithDate}-linux.gtk.x86_64.tar.gz";
+ sha256 = "1rkyb0qcsl9hk2qcwp5mwaab69q3sn77v5xyn9mbvi5wg9icbc37";
+ }
+ else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+ buildInputs = [ glib libsecret ];
+ nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
+
+ installPhase = ''
+ dest="$out/libexec/ApacheDirectoryStudio"
+ mkdir -p "$dest"
+ cp -r . "$dest"
+
+ mkdir -p "$out/bin"
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ "$dest/ApacheDirectoryStudio"
+
+ makeWrapper "$dest/ApacheDirectoryStudio" \
+ "$out/bin/ApacheDirectoryStudio" \
+ --prefix PATH : "${jdk14}/bin"
+ install -D icon.xpm "$out/share/pixmaps/apache-directory-studio.xpm"
+ install -D -t "$out/share/applications" ${desktopItem}/share/applications/*
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Eclipse-based LDAP browser and directory client";
+ homepage = "https://directory.apache.org/studio/";
+ license = licenses.asl20;
+ # Upstream supports macOS and Windows too.
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/brig/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/brig/default.nix
new file mode 100644
index 000000000000..66329b64eace
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/brig/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "brig";
+ version = "0.4.1";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/sahib/brig";
+ subPackages = ["."];
+
+ src = fetchFromGitHub {
+ owner = "sahib";
+ repo = "brig";
+ inherit rev;
+ sha256 = "0gi39jmnzqrgj146yw8lcmgmvzx7ii1dgw4iqig7kx8c0jiqi600";
+ };
+
+ meta = with stdenv.lib; {
+ description = "File synchronization on top of ipfs with git like interface and FUSE filesystem";
+ homepage = "https://github.com/sahib/brig";
+ license = licenses.agpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ offline ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix
new file mode 100644
index 000000000000..925cc1a4f912
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "amfora";
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "makeworld-the-better-one";
+ repo = "amfora";
+ rev = "v${version}";
+ sha256 = "1f5r12hmdgj26p4ss5pcpfcvqlcn19fr9xvvvk2izckcr48p4fy7";
+ };
+
+ vendorSha256 = "0mkk7xxfxxp1w9890mkmag11mzxhy2zmh8v1macpyp1zmzgs21f8";
+
+ postInstall = ''
+ sed -i "s:amfora:$out/bin/amfora:" amfora.desktop
+ install -Dm644 amfora.desktop -t $out/share/applications
+ '';
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A fancy terminal browser for the Gemini protocol";
+ homepage = "https://github.com/makeworld-the-better-one/amfora";
+ license = with licenses; [ gpl3 ];
+ maintainers = with maintainers; [ deifactor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
new file mode 100644
index 000000000000..89f4fda88a18
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, rustPlatform, fetchurl, pkgconfig, ncurses, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "asuka";
+ version = "0.8.1";
+
+ src = fetchurl {
+ url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz";
+ sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06";
+ };
+
+ cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ ncurses openssl ]
+ ++ stdenv.lib.optional stdenv.isDarwin Security;
+
+ meta = with stdenv.lib; {
+ description = "Gemini Project client written in Rust with NCurses";
+ homepage = "https://git.sr.ht/~julienxx/asuka";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sikmir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix
new file mode 100644
index 000000000000..2184c8d699a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix
@@ -0,0 +1,21 @@
+{ lib, python3Packages, fetchgit }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "av-98";
+ version = "1.0.2dev";
+
+ src = fetchgit {
+ url = "https://tildegit.org/solderpunk/AV-98.git";
+ rev = "96cf8e13fe5714c8cdc754f51eef9f0293b8ca1f";
+ sha256 = "09iskh33hl5aaif763j1fmbz7yvf0yqsxycfd41scj7vbwdsbxl0";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ ansiwrap cryptography ];
+
+ meta = with lib; {
+ homepage = "https://tildegit.org/solderpunk/AV-98";
+ description = "Experimental console client for the Gemini protocol";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ ehmry ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix
new file mode 100644
index 000000000000..c24f91c4e103
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchgit, buildGoModule }:
+
+buildGoModule rec {
+ pname = "bombadillo";
+ version = "2.3.3";
+
+ src = fetchgit {
+ url = "https://tildegit.org/sloum/bombadillo.git";
+ rev = version;
+ sha256 = "02w6h44sxzmk3bkdidl8xla0i9rwwpdqljnvcbydx5kyixycmg0q";
+ };
+
+ vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+
+ meta = with lib; {
+ description = "Non-web client for the terminal, supporting Gopher, Gemini and more";
+ homepage = "https://bombadillo.colorfield.space/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ehmry ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
new file mode 100644
index 000000000000..d76dd8b9daa7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
@@ -0,0 +1,164 @@
+{ stdenv, lib, fetchurl
+, dpkg
+, alsaLib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, dbus
+, expat
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gnome2
+, gnome3
+, gsettings-desktop-schemas
+, gtk3
+, libpulseaudio
+, libuuid
+, libdrm
+, libX11
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libxkbcommon
+, libXrandr
+, libXrender
+, libXScrnSaver
+, libXtst
+, mesa
+, nspr
+, nss
+, pango
+, udev
+, xorg
+, zlib
+, xdg_utils
+, wrapGAppsHook
+}:
+
+let
+
+rpath = lib.makeLibraryPath [
+ alsaLib
+ at-spi2-atk
+ at-spi2-core
+ atk
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gnome2.GConf
+ gtk3
+ libdrm
+ libpulseaudio
+ libX11
+ libxkbcommon
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libxkbcommon
+ libXrandr
+ libXrender
+ libXtst
+ libuuid
+ mesa
+ nspr
+ nss
+ pango
+ udev
+ xdg_utils
+ xorg.libxcb
+ zlib
+];
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "brave";
+ version = "1.17.73";
+
+ src = fetchurl {
+ url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
+ sha256 = "18bd6kgzfza5r0y2ggfy82pdpnfr2hzgjcfy9vxqq658z7q3jpqy";
+ };
+
+ dontConfigure = true;
+ dontBuild = true;
+ dontPatchELF = true;
+
+ nativeBuildInputs = [ dpkg wrapGAppsHook ];
+
+ buildInputs = [ glib gsettings-desktop-schemas gnome3.adwaita-icon-theme ];
+
+ unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
+
+ installPhase = ''
+ mkdir -p $out $out/bin
+
+ cp -R usr/share $out
+ cp -R opt/ $out/opt
+
+ export BINARYWRAPPER=$out/opt/brave.com/brave/brave-browser
+
+ # Fix path to bash in $BINARYWRAPPER
+ substituteInPlace $BINARYWRAPPER \
+ --replace /bin/bash ${stdenv.shell}
+
+ ln -sf $BINARYWRAPPER $out/bin/brave
+
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${rpath}" $out/opt/brave.com/brave/brave
+
+ # Fix paths
+ substituteInPlace $out/share/applications/brave-browser.desktop \
+ --replace /usr/bin/brave-browser-stable $out/bin/brave
+ substituteInPlace $out/share/gnome-control-center/default-apps/brave-browser.xml \
+ --replace /opt/brave.com $out/opt/brave.com
+ substituteInPlace $out/share/menu/brave-browser.menu \
+ --replace /opt/brave.com $out/opt/brave.com
+ substituteInPlace $out/opt/brave.com/brave/default-app-block \
+ --replace /opt/brave.com $out/opt/brave.com
+
+ # Correct icons location
+ icon_sizes=("16" "22" "24" "32" "48" "64" "128" "256")
+
+ for icon in ''${icon_sizes[*]}
+ do
+ mkdir -p $out/share/icons/hicolor/$icon\x$icon/apps
+ ln -s $out/opt/brave.com/brave/product_logo_$icon.png $out/share/icons/hicolor/$icon\x$icon/apps/brave-browser.png
+ done
+
+ # Replace xdg-settings and xdg-mime
+ ln -sf ${xdg_utils}/bin/xdg-settings $out/opt/brave.com/brave/xdg-settings
+ ln -sf ${xdg_utils}/bin/xdg-mime $out/opt/brave.com/brave/xdg-mime
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://brave.com/";
+ description = "Privacy-oriented browser for Desktop and Laptop computers";
+ changelog = "https://github.com/brave/brave-browser/blob/v${version}/CHANGELOG.md";
+ longDescription = ''
+ Brave browser blocks the ads and trackers that slow you down,
+ chew up your bandwidth, and invade your privacy. Brave lets you
+ contribute to your favorite creators automatically.
+ '';
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ uskudnik rht jefflabonte nasirhm ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
new file mode 100644
index 000000000000..3662c3badd3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, buildGoPackage, fetchurl, fetchFromGitHub, go-bindata }:
+
+let
+ version = "1.6.4";
+
+ # TODO: must build the extension instead of downloading it. But since it's
+ # literally an asset that is indifferent regardless of the platform, this
+ # might be just enough.
+ webext = fetchurl {
+ url = "https://github.com/browsh-org/browsh/releases/download/v${version}/browsh-${version}-an.fx.xpi";
+ sha256 = "1shf1s9s525wns5vrsc4ns21zjxm1si43lx6v0q8ma6vd5x5445l";
+ };
+
+in buildGoPackage rec {
+ inherit version;
+
+ pname = "browsh";
+
+ goPackagePath = "browsh";
+
+ # further go package dependencies are defined in deps.nix, see line below.
+ src = fetchFromGitHub {
+ owner = "browsh-org";
+ repo = "browsh";
+ rev = "v${version}";
+ sha256 = "0gvf5k1gm81xxg7ha309kgfkgl5357dli0fbc4z01rmfgbl0rfa0";
+ };
+
+ nativeBuildInputs = [ go-bindata ];
+
+ # embed the web extension in a go file and place it where it's supposed to
+ # be. See
+ # https://github.com/browsh-org/browsh/blob/v1.5.0/interfacer/contrib/xpi2bin.sh
+ preBuild = ''
+ xpiprefix="$(mktemp -d)"
+ cp "${webext}" "$xpiprefix/browsh.xpi"
+ go-bindata \
+ -prefix "$xpiprefix" \
+ -pkg browsh \
+ -o "$NIX_BUILD_TOP/go/src/${goPackagePath}/interfacer/src/browsh/webextension.go" \
+ "$xpiprefix/browsh.xpi"
+
+ sed \
+ -e 's:Asset("/browsh.xpi"):Asset("browsh.xpi"):g' \
+ -i "$NIX_BUILD_TOP/go/src/${goPackagePath}/interfacer/src/browsh/firefox.go"
+ '';
+
+ postBuild = ''
+ mv "$NIX_BUILD_TOP/go/bin/src" "$NIX_BUILD_TOP/go/bin/browsh"
+ '';
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "A fully-modern text-based browser, rendering to TTY and browsers";
+ homepage = "https://www.brow.sh/";
+ maintainers = [ maintainers.kalbasit ];
+ license = stdenv.lib.licenses.lgpl21;
+ platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix
new file mode 100644
index 000000000000..9a6a898beb5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix
@@ -0,0 +1,264 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+ {
+ goPackagePath = "github.com/NYTimes/gziphandler";
+ fetch = {
+ type = "git";
+ url = "https://github.com/NYTimes/gziphandler";
+ rev = "dd0439581c7657cb652dfe5c71d7d48baf39541d";
+ sha256 = "0rhrjlw220hnymzfccm0yir3pc9dpj7h3gwzhzq2cbsb3hhsqvyy";
+ };
+ }
+ {
+ goPackagePath = "github.com/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "github.com/gdamore/encoding";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gdamore/encoding";
+ rev = "6289cdc94c00ac4aa177771c5fce7af2f96b626d";
+ sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9";
+ };
+ }
+ {
+ goPackagePath = "github.com/gdamore/tcell";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gdamore/tcell";
+ rev = "b5d0c1ac570211e469f43ff88c0c6aa4b56cc99a";
+ sha256 = "0g2zfbgyk3djlk0qpmrgcyy0ba9ad932yswpaacswi21qyf9gwag";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-errors/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-errors/errors";
+ rev = "a6af135bd4e28680facf08a3d206b454abc877a4";
+ sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp";
+ };
+ }
+ {
+ goPackagePath = "github.com/gorilla/websocket";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gorilla/websocket";
+ rev = "66b9c49e59c6c48f0ffce28c2d8b8a5678502c6d";
+ sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/hcl";
+ rev = "8cb6e5b959231cc1119e43259c4a608f9c51a241";
+ sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
+ };
+ }
+ {
+ goPackagePath = "github.com/hpcloud/tail";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hpcloud/tail";
+ rev = "a30252cb686a21eb2d0b98132633053ec2f7f1e5";
+ sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
+ };
+ }
+ {
+ goPackagePath = "github.com/lucasb-eyer/go-colorful";
+ fetch = {
+ type = "git";
+ url = "https://github.com/lucasb-eyer/go-colorful";
+ rev = "30298f24079860c4dee452fdef6519b362a4a026";
+ sha256 = "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2";
+ };
+ }
+ {
+ goPackagePath = "github.com/magiconair/properties";
+ fetch = {
+ type = "git";
+ url = "https://github.com/magiconair/properties";
+ rev = "de8848e004dd33dc07a2947b3d76f618a7fc7ef1";
+ sha256 = "19zqw1x0w0crh8zc84yy82nkcc5yjz72gviaf2xjgfm5a8np7nyb";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "3ee7d812e62a0804a7d0a324e0249ca2db3476d3";
+ sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/mapstructure";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/mapstructure";
+ rev = "3536a929edddb9a5b34bd6861dc4a9647cb459fe";
+ sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
+ };
+ }
+ {
+ goPackagePath = "github.com/onsi/ginkgo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/onsi/ginkgo";
+ rev = "eea6ad008b96acdaa524f5b409513bf062b500ad";
+ sha256 = "1326s5fxgasdpz1qqwrw4n5p3k0vz44msnyz14knrhlw5l97lx33";
+ };
+ }
+ {
+ goPackagePath = "github.com/onsi/gomega";
+ fetch = {
+ type = "git";
+ url = "https://github.com/onsi/gomega";
+ rev = "90e289841c1ed79b7a598a7cd9959750cb5e89e2";
+ sha256 = "1n7i4hksdgv410m43v2sw14bl5vy59dkp6nlw5l76nibbh37syr9";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-toml";
+ rev = "728039f679cbcd4f6a54e080d2219a4c4928c546";
+ sha256 = "1v76s3vds0i9dxaha4ikd6xjm7vqqfk6sy9l6jc2lsvmj99d5sy6";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "ba968bfe8b2f7e042a574c888954fccecfa385b4";
+ sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
+ };
+ }
+ {
+ goPackagePath = "github.com/shibukawa/configdir";
+ fetch = {
+ type = "git";
+ url = "https://github.com/shibukawa/configdir";
+ rev = "e180dbdc8da04c4fa04272e875ce64949f38bd3e";
+ sha256 = "0vbma9jkwh0ifz8dk2ssgmy7aiaify63lpa0lah7i4dkkxr94c9z";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/afero";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/afero";
+ rev = "588a75ec4f32903aa5e39a2619ba6a4631e28424";
+ sha256 = "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cast";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cast";
+ rev = "8c9545af88b134710ab1cd196795e7f2388358d7";
+ sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/jwalterweatherman";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/jwalterweatherman";
+ rev = "94f6ae3ed3bceceafa716478c5fbf8d29ca601a1";
+ sha256 = "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b";
+ };
+ }
+ {
+ 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 = "b5bf975e5823809fb22c7644d008757f78a4259e";
+ sha256 = "1zpzxvn13wpvbblbbn73svaq39zgxfjqhci9d68g3qf309pcfy19";
+ };
+ }
+ {
+ goPackagePath = "github.com/ulule/limiter";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ulule/limiter";
+ rev = "38b2a440be905c8be884fd5e114dc893a64e5d81";
+ sha256 = "0sbbfz9k3m2hf45cx7y7xshsr3rac495lks9ciwmnrzsnxfdh3l5";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "461777fb6f67e8cb9d70cda16573678d085a74cf";
+ sha256 = "0sc0llch05q6h7nqgayi3sgismsznpnlsz4gh89y4klpymdcpbh2";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "93c9922d18aeb82498a065f07aec7ad7fa60dfb7";
+ sha256 = "0hv96nwbv0li3nrv43ldfzmf12yrrbji2cf8n44iibv8ps5kfssx";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
+ sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/fsnotify.v1";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/tomb.v1";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-tomb/tomb";
+ rev = "dd632973f1e7218eb1089048e0798ec9ae7dceb8";
+ sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-yaml/yaml";
+ rev = "51d6538a90f86fe93ac480b35f37b2be17fef232";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+ };
+ }
+] \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
new file mode 100644
index 000000000000..b302be4e013c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ name = "captive-browser";
+ version = "2019-04-16";
+ goPackagePath = name;
+
+ src = fetchFromGitHub {
+ owner = "FiloSottile";
+ repo = "captive-browser";
+ rev = "08450562e58bf9564ee98ad64ef7b2800e53338f";
+ sha256 = "17icgjg7h0xm8g4yy38qjhsvlz9pmlmj9kydz01y2nyl0v02i648";
+ };
+
+ meta = with lib; {
+ description = "Dedicated Chrome instance to log into captive portals without messing with DNS settings";
+ homepage = "https://blog.filippo.io/captive-browser";
+ license = licenses.mit;
+ maintainers = with maintainers; [ volth ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
new file mode 100644
index 000000000000..c9ad213cf1d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, fetchurl
+, rustPlatform
+, pkg-config
+, wrapGAppsHook
+, openssl
+, gtk3
+, gdk-pixbuf
+, pango
+, atk
+, cairo
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "castor";
+ version = "0.8.16";
+
+ src = fetchurl {
+ url = "https://git.sr.ht/~julienxx/castor/archive/${version}.tar.gz";
+ sha256 = "1qwsprwazkzcs70h219fhh5jj5s5hm1k120fn3pk4qivii4lyhah";
+ };
+
+ cargoSha256 = "0yn2kfiaz6d8wc8rdqli2pwffp5vb1v3zi7520ysrd5b6fc2csf2";
+
+ nativeBuildInputs = [
+ pkg-config
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ openssl
+ gtk3
+ gdk-pixbuf
+ pango
+ atk
+ cairo
+ ];
+
+ postInstall = "make PREFIX=$out copy-data";
+
+ # Sometimes tests fail when run in parallel
+ cargoParallelTestThreads = false;
+
+ meta = with stdenv.lib; {
+ description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols";
+ homepage = "https://sr.ht/~julienxx/Castor";
+ license = licenses.mit;
+ maintainers = with maintainers; [ fgaz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/README.md b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/README.md
new file mode 100644
index 000000000000..8e4eae75f960
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/README.md
@@ -0,0 +1,69 @@
+# Maintainers
+
+- TODO: We need more maintainers:
+ - https://github.com/NixOS/nixpkgs/issues/78450
+ - If you just want to help out without becoming a maintainer:
+ - Look for open Nixpkgs issues or PRs related to Chromium
+ - Make your own PRs (but please try to make reviews as easy as possible)
+- Primary maintainer (responsible for updating Chromium): @primeos
+- Testers (test all stable channel updates)
+ - `nixos-unstable`:
+ - `x86_64`: @danielfullmer
+ - `aarch64`: @thefloweringash
+ - Stable channel:
+ - `x86_64`: @Frostman
+- Other relevant packages:
+ - `chromiumBeta` and `chromiumDev`: For testing purposes (not build on Hydra)
+ - `google-chrome`, `google-chrome-beta`, `google-chrome-dev`: Updated via
+ Chromium's `upstream-info.json`
+ - `ungoogled-chromium`: Based on `chromium` (the expressions are regularly
+ copied over and patched accordingly)
+
+# Upstream links
+
+- Source code: https://source.chromium.org/chromium/chromium/src
+- Bugs: https://bugs.chromium.org/p/chromium/issues/list
+- Release updates: https://chromereleases.googleblog.com/
+ - Available as Atom or RSS feed (filter for
+ "Stable Channel Update for Desktop")
+ - Channel overview: https://omahaproxy.appspot.com/
+ - Release schedule: https://chromiumdash.appspot.com/schedule
+
+# Updating Chromium
+
+Simply run `./pkgs/applications/networking/browsers/chromium/update.py` to
+update `upstream-info.json`. After updates it is important to test at least
+`nixosTests.chromium` (or basic manual testing) and `google-chrome` (which
+reuses `upstream-info.json`).
+
+After updating, please also update pkgs/development/tools/selenium/chromedriver/default.nix
+to a matching version.
+
+## Backports
+
+All updates are considered security critical and should be ported to the stable
+channel ASAP. When there is a new stable release the old one should receive
+security updates for roughly one month. After that it is important to mark
+Chromium as insecure (see 69e4ae56c4b for an example; it is important that the
+tested job still succeeds and that all browsers that use `upstream-info.json`
+are marked as insecure).
+
+## Major version updates
+
+Unfortunately, Chromium regularly breaks on major updates and might need
+various patches. Either due to issues with the Nix build sandbox (e.g. we cannot
+fetch dependencies via the network and do not use standard FHS paths) or due to
+missing upstream fixes that need to be backported.
+
+Good sources for such patches and other hints:
+- https://github.com/archlinux/svntogit-packages/tree/packages/chromium/trunk
+- https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium
+- https://src.fedoraproject.org/rpms/chromium/tree/master
+
+If the build fails immediately due to unknown compiler flags this usually means
+that a new major release of LLVM is required.
+
+## Beta and Dev channels
+
+Those channels are only used to test and fix builds in advance. They may be
+broken at times and must not delay stable channel updates.
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
new file mode 100644
index 000000000000..d3953da71d28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -0,0 +1,86 @@
+{ stdenv, mkChromiumDerivation, channel, enableWideVine }:
+
+with stdenv.lib;
+
+mkChromiumDerivation (base: rec {
+ name = "chromium-browser";
+ packageName = "chromium";
+ buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ];
+
+ outputs = ["out" "sandbox"];
+
+ sandboxExecutableName = "__chromium-suid-sandbox";
+
+ installPhase = ''
+ mkdir -p "$libExecPath"
+ cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
+ cp -v "$buildPath/icudtl.dat" "$libExecPath/"
+ cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
+ cp -v "$buildPath/chrome" "$libExecPath/$packageName"
+
+ # Swiftshader
+ # See https://stackoverflow.com/a/4264351/263061 for the find invocation.
+ if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then
+ echo "Swiftshader files found; installing"
+ mkdir -p "$libExecPath/swiftshader"
+ cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/"
+ else
+ echo "Swiftshader files not found"
+ fi
+
+ mkdir -p "$sandbox/bin"
+ cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}"
+
+ mkdir -vp "$out/share/man/man1"
+ cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1"
+
+ for icon_file in chrome/app/theme/chromium/product_logo_*[0-9].png; do
+ num_and_suffix="''${icon_file##*logo_}"
+ icon_size="''${num_and_suffix%.*}"
+ expr "$icon_size" : "^[0-9][0-9]*$" || continue
+ logo_output_prefix="$out/share/icons/hicolor"
+ logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
+ mkdir -vp "$logo_output_path"
+ cp -v "$icon_file" "$logo_output_path/$packageName.png"
+ done
+
+ # Install Desktop Entry
+ install -D chrome/installer/linux/common/desktop.template \
+ $out/share/applications/chromium-browser.desktop
+
+ substituteInPlace $out/share/applications/chromium-browser.desktop \
+ --replace "@@MENUNAME@@" "Chromium" \
+ --replace "@@PACKAGE@@" "chromium" \
+ --replace "Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "Exec=chromium"
+
+ # Append more mime types to the end
+ sed -i '/^MimeType=/ s,$,x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown,' \
+ $out/share/applications/chromium-browser.desktop
+
+ # See https://github.com/NixOS/nixpkgs/issues/12433
+ sed -i \
+ -e '/\[Desktop Entry\]/a\' \
+ -e 'StartupWMClass=chromium-browser' \
+ $out/share/applications/chromium-browser.desktop
+ '';
+
+ passthru = { inherit sandboxExecutableName; };
+
+ requiredSystemFeatures = [ "big-parallel" ];
+
+ meta = {
+ description = "An open source web browser from Google";
+ longDescription = ''
+ Chromium is an open source web browser from Google that aims to build a
+ safer, faster, and more stable way for all Internet users to experience
+ the web. It has a minimalist user interface and provides the vast majority
+ of source code for Google Chrome (which has some additional features).
+ '';
+ homepage = "https://www.chromium.org/";
+ maintainers = with maintainers; [ primeos thefloweringash bendlas ]; # See README.md
+ license = if enableWideVine then licenses.unfree else licenses.bsd3;
+ platforms = platforms.linux;
+ hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
+ timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
new file mode 100644
index 000000000000..0c16d0c9ec60
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
@@ -0,0 +1,316 @@
+{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, fetchurl
+
+# default dependencies
+, gnutar, bzip2, flac, speex, libopus
+, libevent, expat, libjpeg, snappy
+, libpng, libcap
+, xdg_utils, yasm, nasm, minizip, libwebp
+, libusb1, pciutils, nss, re2
+
+, python2Packages, perl, pkgconfig
+, nspr, systemd, kerberos
+, util-linux, alsaLib
+, bison, gperf
+, glib, gtk3, dbus-glib
+, glibc
+, libXScrnSaver, libXcursor, libXtst, libGLU, libGL
+, protobuf, speechd, libXdamage, cups
+, ffmpeg, libxslt, libxml2, at-spi2-core
+, jre8
+, pipewire_0_2
+, libva
+
+# optional dependencies
+, libgcrypt ? null # gnomeSupport || cupsSupport
+, libdrm ? null, wayland ? null, mesa ? null, libxkbcommon ? null # useOzone
+
+# package customization
+, useOzone ? true
+, gnomeSupport ? false, gnome ? null
+, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
+, proprietaryCodecs ? true
+, cupsSupport ? true
+, pulseSupport ? false, libpulseaudio ? null
+
+, channel
+, upstream-info
+}:
+
+buildFun:
+
+with stdenv.lib;
+
+let
+ jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+
+ # The additional attributes for creating derivations based on the chromium
+ # source tree.
+ extraAttrs = buildFun base;
+
+ githubPatch = commit: sha256: fetchpatch {
+ url = "https://github.com/chromium/chromium/commit/${commit}.patch";
+ inherit sha256;
+ };
+
+ mkGnFlags =
+ let
+ # Serialize Nix types into GN types according to this document:
+ # https://source.chromium.org/gn/gn/+/master:docs/language.md
+ mkGnString = value: "\"${escape ["\"" "$" "\\"] value}\"";
+ sanitize = value:
+ if value == true then "true"
+ else if value == false then "false"
+ else if isList value then "[${concatMapStringsSep ", " sanitize value}]"
+ else if isInt value then toString value
+ else if isString value then mkGnString value
+ else throw "Unsupported type for GN value `${value}'.";
+ toFlag = key: value: "${key}=${sanitize value}";
+ in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
+
+ # https://source.chromium.org/chromium/chromium/src/+/master:build/linux/unbundle/replace_gn_files.py
+ gnSystemLibraries = [
+ "ffmpeg"
+ "flac"
+ "libjpeg"
+ "libpng"
+ "libwebp"
+ "libxslt"
+ "opus"
+ "snappy"
+ "zlib"
+ ];
+
+ opusWithCustomModes = libopus.override {
+ withCustomModes = true;
+ };
+
+ defaultDependencies = [
+ bzip2 flac speex opusWithCustomModes
+ libevent expat libjpeg snappy
+ libpng libcap
+ xdg_utils minizip libwebp
+ libusb1 re2
+ ffmpeg libxslt libxml2
+ nasm
+ ];
+
+ # build paths and release info
+ packageName = extraAttrs.packageName or extraAttrs.name;
+ buildType = "Release";
+ buildPath = "out/${buildType}";
+ libExecPath = "$out/libexec/${packageName}";
+
+ versionRange = min-version: upto-version:
+ let inherit (upstream-info) version;
+ result = versionAtLeast version min-version && versionOlder version upto-version;
+ stable-version = (importJSON ./upstream-info.json).stable.version;
+ in if versionAtLeast stable-version upto-version
+ then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it."
+ result
+ else result;
+
+ base = rec {
+ name = "${packageName}-unwrapped-${version}";
+ inherit (upstream-info) version;
+ inherit channel packageName buildType buildPath;
+
+ src = fetchurl {
+ url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
+ inherit (upstream-info) sha256;
+ };
+
+ nativeBuildInputs = [
+ llvmPackages.lldClang.bintools
+ ninja which python2Packages.python perl pkgconfig
+ python2Packages.ply python2Packages.jinja2 nodejs
+ gnutar python2Packages.setuptools
+ ];
+
+ buildInputs = defaultDependencies ++ [
+ nspr nss systemd
+ util-linux alsaLib
+ bison gperf kerberos
+ glib gtk3 dbus-glib
+ libXScrnSaver libXcursor libXtst libGLU libGL
+ pciutils protobuf speechd libXdamage at-spi2-core
+ jre
+ pipewire_0_2
+ libva
+ ] ++ optional gnomeKeyringSupport libgnome-keyring3
+ ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
+ ++ optionals cupsSupport [ libgcrypt cups ]
+ ++ optional pulseSupport libpulseaudio
+ ++ optionals useOzone [ libdrm wayland mesa.drivers libxkbcommon ];
+
+ patches = [
+ ./patches/no-build-timestamps.patch # Optional patch to use SOURCE_DATE_EPOCH in compute_build_timestamp.py (should be upstreamed)
+ ./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags
+ # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
+ ];
+
+ postPatch = ''
+ # remove unused third-party
+ for lib in ${toString gnSystemLibraries}; do
+ if [ -d "third_party/$lib" ]; then
+ find "third_party/$lib" -type f \
+ \! -path "third_party/$lib/chromium/*" \
+ \! -path "third_party/$lib/google/*" \
+ \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \
+ \! -regex '.*\.\(gn\|gni\|isolate\)' \
+ -delete
+ fi
+ done
+
+ # Required for patchShebangs (unsupported interpreter directive, basename: invalid option -- '*', etc.):
+ substituteInPlace native_client/SConstruct --replace "#! -*- python -*-" ""
+ if [ -e third_party/harfbuzz-ng/src/src/update-unicode-tables.make ]; then
+ substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
+ --replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
+ fi
+
+ # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
+ substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
+ --replace \
+ 'return sandbox_binary;' \
+ 'return base::FilePath(GetDevelSandboxPath());'
+
+ substituteInPlace services/audio/audio_sandbox_hook_linux.cc \
+ --replace \
+ '/usr/share/alsa/' \
+ '${alsaLib}/share/alsa/' \
+ --replace \
+ '/usr/lib/x86_64-linux-gnu/gconv/' \
+ '${glibc}/lib/gconv/' \
+ --replace \
+ '/usr/share/locale/' \
+ '${glibc}/share/locale/'
+
+ sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
+ chrome/browser/shell_integration_linux.cc
+
+ sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
+ device/udev_linux/udev?_loader.cc
+
+ sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
+ gpu/config/gpu_info_collector_linux.cc
+
+ # Allow to put extensions into the system-path.
+ sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc
+
+ patchShebangs .
+ # use our own nodejs
+ mkdir -p third_party/node/linux/node-linux-x64/bin
+ ln -s "$(command -v node)" third_party/node/linux/node-linux-x64/bin/node
+
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py
+
+ '' + optionalString stdenv.isAarch64 ''
+ substituteInPlace build/toolchain/linux/BUILD.gn \
+ --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
+ '';
+
+ gnFlags = mkGnFlags ({
+ custom_toolchain = "//build/toolchain/linux/unbundle:default";
+ host_toolchain = "//build/toolchain/linux/unbundle:default";
+ is_official_build = true;
+
+ use_vaapi = !stdenv.isAarch64; # TODO: Remove once M88 is released
+ use_sysroot = false;
+ use_gnome_keyring = gnomeKeyringSupport;
+ use_gio = gnomeSupport;
+ # ninja: error: '../../native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-objcopy',
+ # needed by 'nacl_irt_x86_64.nexe', missing and no known rule to make it
+ enable_nacl = false;
+ # Enabling the Widevine component here doesn't affect whether we can
+ # redistribute the chromium package; the Widevine component is either
+ # added later in the wrapped -wv build or downloaded from Google.
+ enable_widevine = true;
+ use_cups = cupsSupport;
+ # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture.
+ rtc_use_pipewire = true;
+
+ treat_warnings_as_errors = false;
+ clang_use_chrome_plugins = false;
+ blink_symbol_level = 0;
+ symbol_level = 0;
+ fieldtrial_testing_like_official_build = true;
+
+ # Google API keys, see:
+ # http://www.chromium.org/developers/how-tos/api-keys
+ # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
+ # please get your own set of keys.
+ google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
+ google_default_client_id = "404761575300.apps.googleusercontent.com";
+ google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
+ } // optionalAttrs proprietaryCodecs {
+ # enable support for the H.264 codec
+ proprietary_codecs = true;
+ enable_hangout_services_extension = true;
+ ffmpeg_branding = "Chrome";
+ } // optionalAttrs pulseSupport {
+ use_pulseaudio = true;
+ link_pulseaudio = true;
+ } // optionalAttrs useOzone {
+ use_ozone = true;
+ use_xkbcommon = true;
+ use_glib = true;
+ use_gtk = true;
+ use_system_libwayland = true;
+ use_system_minigbm = true;
+ use_system_libdrm = true;
+ system_wayland_scanner_path = "${wayland}/bin/wayland-scanner";
+ } // (extraAttrs.gnFlags or {}));
+
+ configurePhase = ''
+ runHook preConfigure
+
+ # This is to ensure expansion of $out.
+ libExecPath="${libExecPath}"
+ python build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
+ ${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt
+
+ # Fail if `gn gen` contains a WARNING.
+ grep -o WARNING gn-gen-outputs.txt && echo "Found gn WARNING, exiting nix build" && exit 1
+
+ runHook postConfigure
+ '';
+
+ # Don't spam warnings about unknown warning options. This is useful because
+ # our Clang is always older than Chromium's and the build logs have a size
+ # of approx. 25 MB without this option (and this saves e.g. 66 %).
+ NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option";
+
+ buildPhase = let
+ buildCommand = target: ''
+ ninja -C "${buildPath}" -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES "${target}"
+ (
+ source chrome/installer/linux/common/installer.include
+ PACKAGE=$packageName
+ MENUNAME="Chromium"
+ process_template chrome/app/resources/manpage.1.in "${buildPath}/chrome.1"
+ )
+ '';
+ targets = extraAttrs.buildTargets or [];
+ commands = map buildCommand targets;
+ in concatStringsSep "\n" commands;
+
+ postFixup = ''
+ # Make sure that libGLESv2 is found by dlopen (if using EGL).
+ chromiumBinary="$libExecPath/$packageName"
+ origRpath="$(patchelf --print-rpath "$chromiumBinary")"
+ patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary"
+ '';
+
+ passthru = {
+ updateScript = ./update.py;
+ chromiumDeps = {
+ gn = gnChromium;
+ };
+ };
+ };
+
+# Remove some extraAttrs we supplied to the base attributes already.
+in stdenv.mkDerivation (base // removeAttrs extraAttrs [
+ "name" "gnFlags" "buildTargets"
+] // { passthru = base.passthru // (extraAttrs.passthru or {}); })
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
new file mode 100644
index 000000000000..e35e4d945dde
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
@@ -0,0 +1,210 @@
+{ newScope, config, stdenv, fetchurl, makeWrapper
+, llvmPackages_11, ed, gnugrep, coreutils, xdg_utils
+, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
+, libva ? null
+, pipewire_0_2
+, gcc, nspr, nss, runCommand
+, lib
+
+# package customization
+# Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper)
+, channel ? "stable"
+, gnomeSupport ? false, gnome ? null
+, gnomeKeyringSupport ? false
+, proprietaryCodecs ? true
+, enablePepperFlash ? false
+, enableWideVine ? false
+, enableVaapi ? false # Disabled by default due to unofficial support
+, cupsSupport ? true
+, pulseSupport ? config.pulseaudio or stdenv.isLinux
+, commandLineArgs ? ""
+}:
+
+let
+ llvmPackages = llvmPackages_11;
+ stdenv = llvmPackages.stdenv;
+
+ callPackage = newScope chromium;
+
+ chromium = rec {
+ inherit stdenv llvmPackages;
+
+ upstream-info = (lib.importJSON ./upstream-info.json).${channel};
+
+ mkChromiumDerivation = callPackage ./common.nix ({
+ inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
+ cupsSupport pulseSupport;
+ gnChromium = gn.overrideAttrs (oldAttrs: {
+ inherit (upstream-info.deps.gn) version;
+ src = fetchgit {
+ inherit (upstream-info.deps.gn) url rev sha256;
+ };
+ });
+ });
+
+ browser = callPackage ./browser.nix { inherit channel enableWideVine; };
+
+ plugins = callPackage ./plugins.nix {
+ inherit enablePepperFlash;
+ };
+ };
+
+ pkgSuffix = if channel == "dev" then "unstable" else channel;
+ pkgName = "google-chrome-${pkgSuffix}";
+ chromeSrc = fetchurl {
+ urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
+ "https://dl.google.com/linux/chrome/deb/pool/main/g"
+ "http://95.31.35.30/chrome/pool/main/g"
+ "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
+ "http://repo.fdzh.org/chrome/deb/pool/main/g"
+ ];
+ sha256 = chromium.upstream-info.sha256bin64;
+ };
+
+ mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
+ widevineCdm = stdenv.mkDerivation {
+ name = "chrome-widevine-cdm";
+
+ src = chromeSrc;
+
+ phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
+
+ unpackCmd = let
+ widevineCdmPath =
+ if channel == "stable" then
+ "./opt/google/chrome/WidevineCdm"
+ else if channel == "beta" then
+ "./opt/google/chrome-beta/WidevineCdm"
+ else if channel == "dev" then
+ "./opt/google/chrome-unstable/WidevineCdm"
+ else
+ throw "Unknown chromium channel.";
+ in ''
+ # Extract just WidevineCdm from upstream's .deb file
+ ar p "$src" data.tar.xz | tar xJ "${widevineCdmPath}"
+
+ # Move things around so that we don't have to reference a particular
+ # chrome-* directory later.
+ mv "${widevineCdmPath}" ./
+
+ # unpackCmd wants a single output directory; let it take WidevineCdm/
+ rm -rf opt
+ '';
+
+ doCheck = true;
+ checkPhase = ''
+ ! find -iname '*.so' -exec ldd {} + | grep 'not found'
+ '';
+
+ PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ];
+
+ patchPhase = ''
+ patchelf --set-rpath "$PATCH_RPATH" _platform_specific/linux_x64/libwidevinecdm.so
+ '';
+
+ installPhase = ''
+ mkdir -p $out/WidevineCdm
+ cp -a * $out/WidevineCdm/
+ '';
+
+ meta = {
+ platforms = [ "x86_64-linux" ];
+ license = lib.licenses.unfree;
+ };
+ };
+
+ suffix = if channel != "stable" then "-" + channel else "";
+
+ sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
+
+ version = chromium.browser.version;
+
+ # We want users to be able to enableWideVine without rebuilding all of
+ # chromium, so we have a separate derivation here that copies chromium
+ # and adds the unfree WidevineCdm.
+ chromiumWV = let browser = chromium.browser; in if enableWideVine then
+ runCommand (browser.name + "-wv") { version = browser.version; }
+ ''
+ mkdir -p $out
+ cp -a ${browser}/* $out/
+ chmod u+w $out/libexec/chromium
+ cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/
+ ''
+ else browser;
+
+in stdenv.mkDerivation {
+ name = "chromium${suffix}-${version}";
+ inherit version;
+
+ buildInputs = [
+ makeWrapper ed
+
+ # needed for GSETTINGS_SCHEMAS_PATH
+ gsettings-desktop-schemas glib gtk3
+
+ # needed for XDG_ICON_DIRS
+ gnome3.adwaita-icon-theme
+ ];
+
+ outputs = ["out" "sandbox"];
+
+ buildCommand = let
+ browserBinary = "${chromiumWV}/libexec/chromium/chromium";
+ getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
+ libPath = stdenv.lib.makeLibraryPath [ libva pipewire_0_2 ];
+
+ in with stdenv.lib; ''
+ mkdir -p "$out/bin"
+
+ eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
+ --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \
+ ${lib.optionalString enableVaapi "--add-flags --enable-accelerated-video-decode"} \
+ ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
+
+ ed -v -s "$out/bin/chromium" << EOF
+ 2i
+
+ if [ -x "/run/wrappers/bin/${sandboxExecutableName}" ]
+ then
+ export CHROME_DEVEL_SANDBOX="/run/wrappers/bin/${sandboxExecutableName}"
+ else
+ export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}"
+ fi
+
+ '' + lib.optionalString (libPath != "") ''
+ # To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not
+ # contain an empty section before or after a colon.
+ export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${libPath}"
+ '' + ''
+
+ # libredirect causes chromium to deadlock on startup
+ export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | ${coreutils}/bin/tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | ${coreutils}/bin/tr '\n' ':')"
+
+ export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
+
+ # Mainly for xdg-open but also other xdg-* tools:
+ export PATH="${xdg_utils}/bin\''${PATH:+:}\$PATH"
+
+ .
+ w
+ EOF
+
+ ln -sv "${chromium.browser.sandbox}" "$sandbox"
+
+ ln -s "$out/bin/chromium" "$out/bin/chromium-browser"
+
+ mkdir -p "$out/share"
+ for f in '${chromium.browser}'/share/*; do # hello emacs */
+ ln -s -t "$out/share/" "$f"
+ done
+ '';
+
+ inherit (chromium.browser) packageName;
+ meta = chromium.browser.meta;
+ passthru = {
+ inherit (chromium) upstream-info browser;
+ mkDerivation = chromium.mkChromiumDerivation;
+ inherit chromeSrc sandboxExecutableName;
+ updateScript = ./update.py;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch
new file mode 100644
index 000000000000..6b788f43d29c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch
@@ -0,0 +1,17 @@
+--- chromium-70.0.3538.67/build/compute_build_timestamp.py.orig 2018-11-02 16:00:34.368933077 +0200
++++ chromium-70.0.3538.67/build/compute_build_timestamp.py 2018-11-08 04:06:21.658105129 +0200
+@@ -94,6 +94,14 @@
+ 'build_type', help='The type of build', choices=('official', 'default'))
+ args = argument_parser.parse_args()
+
++ # I don't trust LASTCHANGE magic, and I definelly want something deterministic here
++ SOURCE_DATE_EPOCH = os.getenv("SOURCE_DATE_EPOCH", None)
++ if SOURCE_DATE_EPOCH is not None:
++ print(SOURCE_DATE_EPOCH)
++ return 0
++ else:
++ raise RuntimeError("SOURCE_DATE_EPOCH not set")
++
+ # The mtime of the revision in build/util/LASTCHANGE is stored in a file
+ # next to it. Read it, to get a deterministic time close to "now".
+ # That date is then modified as described at the top of the file so that
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch
new file mode 100644
index 000000000000..32f0ae2fb5e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn
+index ed0e2f5208b..5b431a030d5 100644
+--- a/third_party/widevine/cdm/BUILD.gn
++++ b/third_party/widevine/cdm/BUILD.gn
+@@ -14,7 +14,7 @@ buildflag_header("buildflags") {
+
+ flags = [
+ "ENABLE_WIDEVINE=$enable_widevine",
+- "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm",
++ "BUNDLE_WIDEVINE_CDM=true",
+ "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component",
+ ]
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
new file mode 100644
index 000000000000..c725f87d3a27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -0,0 +1,92 @@
+{ stdenv, gcc
+, jshon
+, glib
+, nspr
+, nss
+, fetchzip
+, enablePepperFlash ? false
+
+, upstream-info
+}:
+
+with stdenv.lib;
+
+let
+ mkrpath = p: "${makeSearchPathOutput "lib" "lib64" p}:${makeLibraryPath p}";
+
+ # Generate a shell fragment that emits flags appended to the
+ # final makeWrapper call for wrapping the browser's main binary.
+ #
+ # Note that this is shell-escaped so that only the variable specified
+ # by the "output" attribute is substituted.
+ mkPluginInfo = { output ? "out", allowedVars ? [ output ]
+ , flags ? [], envVars ? {}
+ }: let
+ shSearch = ["'"] ++ map (var: "@${var}@") allowedVars;
+ shReplace = ["'\\''"] ++ map (var: "'\"\${${var}}\"'") allowedVars;
+ # We need to triple-escape "val":
+ # * First because makeWrapper doesn't do any quoting of its arguments by
+ # itself.
+ # * Second because it's passed to the makeWrapper call separated by IFS but
+ # not by the _real_ arguments, for example the Widevine plugin flags
+ # contain spaces, so they would end up as separate arguments.
+ # * Third in order to be correctly quoted for the "echo" call below.
+ shEsc = val: "'${replaceStrings ["'"] ["'\\''"] val}'";
+ mkSh = val: "'${replaceStrings shSearch shReplace (shEsc val)}'";
+ mkFlag = flag: ["--add-flags" (shEsc flag)];
+ mkEnvVar = key: val: ["--set" (shEsc key) (shEsc val)];
+ envList = mapAttrsToList mkEnvVar envVars;
+ quoted = map mkSh (flatten ((map mkFlag flags) ++ envList));
+ in ''
+ mkdir -p "''$${output}/nix-support"
+ echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags"
+ '';
+
+ flash = stdenv.mkDerivation rec {
+ pname = "flashplayer-ppapi";
+ version = "32.0.0.445";
+
+ src = fetchzip {
+ url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
+ sha256 = "1r9vd210d2qp501q40pjx60mzah08rg0f8jk5rpp52ddajwggalv";
+ stripRoot = false;
+ };
+
+ patchPhase = ''
+ chmod +x libpepflashplayer.so
+ patchelf --set-rpath "${mkrpath [ gcc.cc ]}" libpepflashplayer.so
+ '';
+
+ doCheck = true;
+ checkPhase = ''
+ ! find -iname '*.so' -exec ldd {} + | grep 'not found'
+ '';
+
+ installPhase = ''
+ flashVersion="$(
+ "${jshon}/bin/jshon" -F manifest.json -e version -u
+ )"
+
+ install -vD libpepflashplayer.so "$out/lib/libpepflashplayer.so"
+
+ ${mkPluginInfo {
+ allowedVars = [ "out" "flashVersion" ];
+ flags = [
+ "--ppapi-flash-path=@out@/lib/libpepflashplayer.so"
+ "--ppapi-flash-version=@flashVersion@"
+ ];
+ }}
+ '';
+
+ dontStrip = true;
+
+ meta = {
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ taku0 ];
+ platforms = platforms.x86_64;
+ };
+ };
+
+in {
+ enabled = optional enablePepperFlash flash;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py
new file mode 100755
index 000000000000..9e1f0aec598d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py
@@ -0,0 +1,121 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i python -p python3 nix nix-prefetch-git
+
+import csv
+import json
+import re
+import subprocess
+import sys
+
+from codecs import iterdecode
+from collections import OrderedDict
+from datetime import datetime
+from os.path import abspath, dirname
+from urllib.request import urlopen
+
+HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux'
+DEB_URL = 'https://dl.google.com/linux/chrome/deb/pool/main/g'
+BUCKET_URL = 'https://commondatastorage.googleapis.com/chromium-browser-official'
+
+JSON_PATH = dirname(abspath(__file__)) + '/upstream-info.json'
+
+def load_json(path):
+ with open(path, 'r') as f:
+ return json.load(f)
+
+def nix_prefetch_url(url, algo='sha256'):
+ print(f'nix-prefetch-url {url}')
+ out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url])
+ return out.decode('utf-8').rstrip()
+
+def nix_prefetch_git(url, rev):
+ print(f'nix-prefetch-git {url} {rev}')
+ out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev])
+ return json.loads(out)
+
+def get_file_revision(revision, file_path):
+ url = f'https://raw.githubusercontent.com/chromium/chromium/{revision}/{file_path}'
+ with urlopen(url) as http_response:
+ return http_response.read()
+
+def get_matching_chromedriver(version):
+ # See https://chromedriver.chromium.org/downloads/version-selection
+ build = re.sub('.[0-9]+$', '', version)
+ chromedriver_version_url = f'https://chromedriver.storage.googleapis.com/LATEST_RELEASE_{build}'
+ with urlopen(chromedriver_version_url) as http_response:
+ chromedriver_version = http_response.read().decode()
+ def get_chromedriver_url(system):
+ return f'https://chromedriver.storage.googleapis.com/{chromedriver_version}/chromedriver_{system}.zip'
+ return {
+ 'version': chromedriver_version,
+ 'sha256_linux': nix_prefetch_url(get_chromedriver_url('linux64')),
+ 'sha256_darwin': nix_prefetch_url(get_chromedriver_url('mac64'))
+ }
+
+def get_channel_dependencies(channel):
+ deps = get_file_revision(channel['version'], 'DEPS')
+ gn_pattern = b"'gn_version': 'git_revision:([0-9a-f]{40})'"
+ gn_commit = re.search(gn_pattern, deps).group(1).decode()
+ gn = nix_prefetch_git('https://gn.googlesource.com/gn', gn_commit)
+ return {
+ 'gn': {
+ 'version': datetime.fromisoformat(gn['date']).date().isoformat(),
+ 'url': gn['url'],
+ 'rev': gn['rev'],
+ 'sha256': gn['sha256']
+ }
+ }
+
+channels = {}
+last_channels = load_json(JSON_PATH)
+
+print(f'GET {HISTORY_URL}', file=sys.stderr)
+with urlopen(HISTORY_URL) as resp:
+ builds = csv.DictReader(iterdecode(resp, 'utf-8'))
+ for build in builds:
+ channel_name = build['channel']
+
+ # If we've already found a newer build for this channel, we're
+ # no longer interested in it.
+ if channel_name in channels:
+ continue
+
+ # If we're back at the last build we used, we don't need to
+ # keep going -- there's no new version available, and we can
+ # just reuse the info from last time.
+ if build['version'] == last_channels[channel_name]['version']:
+ channels[channel_name] = last_channels[channel_name]
+ continue
+
+ channel = {'version': build['version']}
+ suffix = 'unstable' if channel_name == 'dev' else channel_name
+
+ try:
+ channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz')
+ channel['sha256bin64'] = nix_prefetch_url(f'{DEB_URL}/google-chrome-{suffix}/google-chrome-{suffix}_{build["version"]}-1_amd64.deb')
+ except subprocess.CalledProcessError:
+ # This build isn't actually available yet. Continue to
+ # the next one.
+ continue
+
+ channel['deps'] = get_channel_dependencies(channel)
+ if channel_name == 'stable':
+ channel['chromedriver'] = get_matching_chromedriver(channel['version'])
+
+ channels[channel_name] = channel
+
+with open(JSON_PATH, 'w') as out:
+ def get_channel_key(item):
+ channel_name = item[0]
+ if channel_name == 'stable':
+ return 0
+ elif channel_name == 'beta':
+ return 1
+ elif channel_name == 'dev':
+ return 2
+ else:
+ print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr)
+ sys.exit(1)
+ sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key))
+ json.dump(sorted_channels, out, indent=2)
+ out.write('\n')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
new file mode 100644
index 000000000000..6343dd4b2468
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -0,0 +1,46 @@
+{
+ "stable": {
+ "version": "87.0.4280.88",
+ "sha256": "1h09g9b2zxad85vd146ymvg3w2kpngpi78yig3dn1vrmhwr4aiiy",
+ "sha256bin64": "0n3fm6wf8zfkv135d50xl8xxrnng3q55vyxkck1da8jyvh18bijb",
+ "deps": {
+ "gn": {
+ "version": "2020-09-09",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2",
+ "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk"
+ }
+ },
+ "chromedriver": {
+ "version": "87.0.4280.88",
+ "sha256_linux": "141mr2jiy3nslwd3s43m4i6plkv9wv5fgi78cn7mz0ac9x6fpcgx",
+ "sha256_darwin": "048hsqp6575r980m769lzznvxypmfcwn89f1d3ik751ymzmb5r78"
+ }
+ },
+ "beta": {
+ "version": "88.0.4324.27",
+ "sha256": "0mciiyh3sn2zrl8g6znylc2pm9sb0wzsclgavf7mmlknri5sjblc",
+ "sha256bin64": "0qf2j1j3p94s724rwh8fydpjn88cs9yxxhjf5axvqwi7q3h35cfx",
+ "deps": {
+ "gn": {
+ "version": "2020-11-05",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "53d92014bf94c3893886470a1c7c1289f8818db0",
+ "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
+ }
+ }
+ },
+ "dev": {
+ "version": "89.0.4343.0",
+ "sha256": "0jmc1l0lysl5zax98fjhzsfq3c1sqh3n3xscidafflx362wcfpwa",
+ "sha256bin64": "1v6xik8kf531y0g5xj0c8szjmak0qvh77kwkw7p7hqxqmnwwp06d",
+ "deps": {
+ "gn": {
+ "version": "2020-11-05",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "53d92014bf94c3893886470a1c7c1289f8818db0",
+ "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
+ }
+ }
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix
new file mode 100644
index 000000000000..fa1fa76340c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl
+, fltk
+, openssl
+, libjpeg, libpng
+, perl
+, libXcursor, libXi, libXinerama }:
+
+stdenv.mkDerivation rec {
+ version = "3.0.5";
+ pname = "dillo";
+
+ src = fetchurl {
+ url = "https://www.dillo.org/download/${pname}-${version}.tar.bz2";
+ sha256 = "12ql8n1lypv3k5zqgwjxlw1md90ixz3ag6j1gghfnhjq3inf26yv";
+ };
+
+ buildInputs = with stdenv.lib;
+ [ perl fltk openssl libjpeg libpng libXcursor libXi libXinerama ];
+
+ configureFlags = [ "--enable-ssl" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.dillo.org/";
+ description = "A fast graphical web browser with a small footprint";
+ longDescription = ''
+ Dillo is a small, fast web browser, tailored for older machines.
+ '';
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
new file mode 100644
index 000000000000..79f3cb76a01a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchFromGitHub, fetchpatch, ncurses, xlibsWrapper, bzip2, zlib
+, brotli, zstd, lzma, openssl, autoreconfHook, gettext, pkgconfig, libev
+, gpm, libidn, tre, expat
+, # Incompatible licenses, LGPLv3 - GPLv2
+ enableGuile ? false, guile ? null
+, enablePython ? false, python ? null
+, enablePerl ? (stdenv.hostPlatform == stdenv.buildPlatform), perl ? null
+# re-add javascript support when upstream supports modern spidermonkey
+}:
+
+assert enableGuile -> guile != null;
+assert enablePython -> python != null;
+
+stdenv.mkDerivation rec {
+ pname = "elinks";
+ version = "0.13.5";
+
+ src = fetchFromGitHub {
+ owner = "rkd77";
+ repo = "felinks";
+ rev = "v${version}";
+ sha256 = "067l9m47j40039q8mvvnxd1amwrac3x6vv0c0svimfpvj4ammgkg";
+ };
+
+ buildInputs = [
+ ncurses xlibsWrapper bzip2 zlib brotli zstd lzma
+ openssl libidn tre expat libev
+ ]
+ ++ stdenv.lib.optional stdenv.isLinux gpm
+ ++ stdenv.lib.optional enableGuile guile
+ ++ stdenv.lib.optional enablePython python
+ ++ stdenv.lib.optional enablePerl perl
+ ;
+
+ nativeBuildInputs = [ autoreconfHook gettext pkgconfig ];
+
+ configureFlags = [
+ "--enable-finger"
+ "--enable-html-highlight"
+ "--enable-gopher"
+ "--enable-cgi"
+ "--enable-bittorrent"
+ "--enable-nntp"
+ "--enable-256-colors"
+ "--enable-true-color"
+ "--with-lzma"
+ "--with-libev"
+ "--with-terminfo"
+ ] ++ stdenv.lib.optional enableGuile "--with-guile"
+ ++ stdenv.lib.optional enablePython "--with-python"
+ ++ stdenv.lib.optional enablePerl "--with-perl"
+ ;
+
+ meta = with stdenv.lib; {
+ description = "Full-featured text-mode web browser (package based on the fork felinks)";
+ homepage = "https://github.com/rkd77/felinks";
+ license = licenses.gpl2;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ iblech gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
new file mode 100644
index 000000000000..a16beb652089
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, fetchgit, meson, ninja, pkgconfig, nix-update-script
+, python3, gtk3, libsecret, gst_all_1, webkitgtk, glib
+, glib-networking, gtkspell3, hunspell, desktop-file-utils
+, gobject-introspection, wrapGAppsHook, gnome3 }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "eolie";
+ version = "0.9.99";
+
+ format = "other";
+ doCheck = false;
+
+ src = fetchgit {
+ url = "https://gitlab.gnome.org/World/eolie";
+ rev = "refs/tags/${version}";
+ fetchSubmodules = true;
+ sha256 = "077jww5mqg6bbqbj0j1gss2j3dxlfr2xw8bc43k8vg52drqg6g8w";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ gobject-introspection
+ meson
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = with gst_all_1; [
+ glib-networking
+ gobject-introspection
+ gst-libav
+ gst-plugins-base
+ gst-plugins-ugly
+ gstreamer
+ gnome3.gnome-settings-daemon
+ gtk3
+ gtkspell3
+ hunspell
+ libsecret
+ (webkitgtk.override {enableGLES = false;})
+ glib
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pyfxa
+ beautifulsoup4
+ cryptography
+ pycairo
+ pygobject3
+ python-dateutil
+ pycrypto
+ ];
+
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ '';
+
+ dontWrapGApps = true;
+ preFixup = ''
+ buildPythonPath "$out $propagatedBuildInputs"
+ patchPythonScript "$out/libexec/eolie-sp"
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ strictDeps = false;
+
+ meta = with stdenv.lib; {
+ description = "A new GNOME web browser";
+ homepage = "https://wiki.gnome.org/Apps/Eolie";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ samdroid-apps worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix
new file mode 100644
index 000000000000..6d8aa3649a90
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, desktop-file-utils
+, vala
+, gettext
+, glib
+, gtk3
+, libgee
+, libdazzle
+, meson
+, ninja
+, pantheon
+, pkgconfig
+, python3
+, webkitgtk
+, wrapGAppsHook
+, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ephemeral";
+ version = "7.0.4";
+
+ src = fetchFromGitHub {
+ owner = "cassidyjames";
+ repo = "ephemeral";
+ rev = version;
+ sha256 = "18chvfdmka21zvjgqfpinm3nrj0ba09szxhhm39anpvpbj92ra8j";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ gettext
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ glib-networking
+ gtk3
+ libdazzle
+ libgee
+ pantheon.granite
+ webkitgtk
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "The always-incognito web browser";
+ homepage = "https://github.com/cassidyjames/ephemeral";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix
new file mode 100644
index 000000000000..3c2aace79b26
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, mkDerivation, lib, fetchFromGitHub, fetchpatch
+, cmake, extra-cmake-modules, pkgconfig, qmake
+, libpthreadstubs, libxcb, libXdmcp
+, qtsvg, qttools, qtwebengine, qtx11extras
+, qtwayland, wrapQtAppsHook
+, kwallet
+}:
+
+mkDerivation rec {
+ pname = "falkon";
+ version = "3.1.0";
+
+ src = fetchFromGitHub {
+ owner = "KDE";
+ repo = "falkon";
+ rev = "v${version}";
+ sha256 = "1w64slh9wpcfi4v7ds9wci1zvwh0dh787ndpi6hd4kmdgnswvsw7";
+ };
+
+ patches = [
+ # fixes build with qt5 5.14
+ (fetchpatch {
+ url = "https://github.com/KDE/falkon/commit/bbde5c6955c43bc744ed2c4024598495de908f2a.diff";
+ sha256 = "0f7qcddvvdnij3di0acg7jwvwfwyd0xizlav4wccclbj8x7qp5ld";
+ })
+ ];
+
+ preConfigure = ''
+ export NONBLOCK_JS_DIALOGS=true
+ export KDE_INTEGRATION=true
+ export GNOME_INTEGRATION=false
+ export FALKON_PREFIX=$out
+ '';
+
+ buildInputs = [
+ libpthreadstubs libxcb libXdmcp
+ qtsvg qttools qtwebengine qtx11extras
+ kwallet
+ ] ++ lib.optionals stdenv.isLinux [ qtwayland ];
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ pkgconfig
+ qmake
+ qttools
+ wrapQtAppsHook
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "QtWebEngine based cross-platform web browser";
+ homepage = "https://community.kde.org/Incubator/Projects/Falkon";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
new file mode 100644
index 000000000000..98cf28ec3e18
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -0,0 +1,965 @@
+{
+ version = "84.0b4";
+ sources = [
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ach/firefox-84.0b4.tar.bz2";
+ locale = "ach";
+ arch = "linux-x86_64";
+ sha256 = "da9290899d245d86b3d2d378072af403106596ae1e02a36d40a93deea9e57000";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/af/firefox-84.0b4.tar.bz2";
+ locale = "af";
+ arch = "linux-x86_64";
+ sha256 = "28810946bde4c2335714c0f8b0dffad1a1650c167370e38c6eb5e2ee5d2e54be";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/an/firefox-84.0b4.tar.bz2";
+ locale = "an";
+ arch = "linux-x86_64";
+ sha256 = "d32e9e13b2c1f484686d9394f20a87e2c1d833703e0115de1f9c8c552d1e9d8a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ar/firefox-84.0b4.tar.bz2";
+ locale = "ar";
+ arch = "linux-x86_64";
+ sha256 = "de8348caf98ca0551f3f080eb32ef94c00706676bc8df1723377d98f10221e56";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ast/firefox-84.0b4.tar.bz2";
+ locale = "ast";
+ arch = "linux-x86_64";
+ sha256 = "104cc96b0e14c030848be4bc07a1b2b836a241e9ddba581b9ca24018c54356ee";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/az/firefox-84.0b4.tar.bz2";
+ locale = "az";
+ arch = "linux-x86_64";
+ sha256 = "e96087b52f1dc18c8bd29d486faa00ad06a2165d1e14cbd47e37cafb40602a87";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/be/firefox-84.0b4.tar.bz2";
+ locale = "be";
+ arch = "linux-x86_64";
+ sha256 = "d67c2c1556b6859e0acae5b69b3b7eeac77b3bb1594b48682a97a72742c79d05";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/bg/firefox-84.0b4.tar.bz2";
+ locale = "bg";
+ arch = "linux-x86_64";
+ sha256 = "b3bad1b330a5d4c515b37cddb3e89e538c5cd66ffce68dbf8d1e9adaf4881431";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/bn/firefox-84.0b4.tar.bz2";
+ locale = "bn";
+ arch = "linux-x86_64";
+ sha256 = "9c50c4e12061279133177ade4b22b7e2bb7e14dcc1875464f57efb7c7e360bf7";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/br/firefox-84.0b4.tar.bz2";
+ locale = "br";
+ arch = "linux-x86_64";
+ sha256 = "79eb76af707b26fa4d46acf11d0be25ccd144abda6c853373c9ec0cc872c2a8f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/bs/firefox-84.0b4.tar.bz2";
+ locale = "bs";
+ arch = "linux-x86_64";
+ sha256 = "2cbf15a604f90c4a6212f5da251372d09e2247f5ed338193ff93a94695bca308";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ca-valencia/firefox-84.0b4.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-x86_64";
+ sha256 = "a9b6cacf6ee8a6a1f733f3ff3741c1bb12eff823664279205906e8e59b646679";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ca/firefox-84.0b4.tar.bz2";
+ locale = "ca";
+ arch = "linux-x86_64";
+ sha256 = "1ea49a5d59129c820f359fbad2253e051adbb260cedd4b62bb20122562466bfd";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/cak/firefox-84.0b4.tar.bz2";
+ locale = "cak";
+ arch = "linux-x86_64";
+ sha256 = "b18651df9ae2e16ea9855c30fa393dd34103cf338a515d41d3c1802e52fb92a1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/cs/firefox-84.0b4.tar.bz2";
+ locale = "cs";
+ arch = "linux-x86_64";
+ sha256 = "4dca051e5349372d6caf5a7f6e8e6e12fe42bf96110a1c6e2f7f6e408f365b80";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/cy/firefox-84.0b4.tar.bz2";
+ locale = "cy";
+ arch = "linux-x86_64";
+ sha256 = "3117d47bcec1cf0f5a547a33c62ca5ecfee34435c13a478f23d1d9f0ac187f4f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/da/firefox-84.0b4.tar.bz2";
+ locale = "da";
+ arch = "linux-x86_64";
+ sha256 = "34a38c76997bdd41e6b12cebf08345e7cd19838bd92f5a8d082ba3087cb063c7";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/de/firefox-84.0b4.tar.bz2";
+ locale = "de";
+ arch = "linux-x86_64";
+ sha256 = "65e417603cf383d92058b8976c1f6499dc5804d02a22bb639e416c4e730b4a62";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/dsb/firefox-84.0b4.tar.bz2";
+ locale = "dsb";
+ arch = "linux-x86_64";
+ sha256 = "08dacb91773d7b49eb8f08668627badae2967193c441ff2fb6b9d88063c5ffb9";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/el/firefox-84.0b4.tar.bz2";
+ locale = "el";
+ arch = "linux-x86_64";
+ sha256 = "78e870b673c204e4d9fca2a3fbab06031c724a8b0696a3b6e2dea5ac07a5bb88";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/en-CA/firefox-84.0b4.tar.bz2";
+ locale = "en-CA";
+ arch = "linux-x86_64";
+ sha256 = "4c862eb5c53e65af1ddc212a093eb23e33653341fa7db53d935ed8482637aed8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/en-GB/firefox-84.0b4.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-x86_64";
+ sha256 = "f505cf16328603d0164e330fcef60fcfeccdad186d1f91e0b4cee1b8cc7c740d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/en-US/firefox-84.0b4.tar.bz2";
+ locale = "en-US";
+ arch = "linux-x86_64";
+ sha256 = "f0561469f04ab83dd52ae4e3a8ca451d6569845e37d9e04c5a91085654661f8a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/eo/firefox-84.0b4.tar.bz2";
+ locale = "eo";
+ arch = "linux-x86_64";
+ sha256 = "c64d227d6b21876ea48182795d6fd8ec3ca486e5328629a0bbfb936e8463b0a8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/es-AR/firefox-84.0b4.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-x86_64";
+ sha256 = "73b45f6b8d1e53bef003b3e77cc1217b8a85dde49cb0900b4fa2991895e5c184";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/es-CL/firefox-84.0b4.tar.bz2";
+ locale = "es-CL";
+ arch = "linux-x86_64";
+ sha256 = "e7025e4c5fc311aae2798da99ec5e5863bca5ad8b8460981cef86e29ae37d74a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/es-ES/firefox-84.0b4.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-x86_64";
+ sha256 = "e819644eb6337255004fda8286e1f2ed898423c4b97694c8355c28f4d449da61";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/es-MX/firefox-84.0b4.tar.bz2";
+ locale = "es-MX";
+ arch = "linux-x86_64";
+ sha256 = "07de091ca3b06b94e35b84add7fbc5c8fa6ea84ddfe548e5f55b3bc7980a9bd3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/et/firefox-84.0b4.tar.bz2";
+ locale = "et";
+ arch = "linux-x86_64";
+ sha256 = "d6af9ab39f1a13efc772cbb63dd731dcf988c10f13649f348d7ddb3f6ab6ca60";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/eu/firefox-84.0b4.tar.bz2";
+ locale = "eu";
+ arch = "linux-x86_64";
+ sha256 = "110e667568429dd2b0c752962e1148884c44aaef9939926c6b0f49ba5bdb1182";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/fa/firefox-84.0b4.tar.bz2";
+ locale = "fa";
+ arch = "linux-x86_64";
+ sha256 = "f7a783f12bb08ccb06074f903bb2eaaab13b348c6a2950a9699beee28ad97b5e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ff/firefox-84.0b4.tar.bz2";
+ locale = "ff";
+ arch = "linux-x86_64";
+ sha256 = "b2e47bc8ae8d1e54a1b5799a87b4742d049696edd9913f0cc6beb52a89cc261d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/fi/firefox-84.0b4.tar.bz2";
+ locale = "fi";
+ arch = "linux-x86_64";
+ sha256 = "f5ee09f1b9d41506ad1023ad05dbdee95ac049eb4bfd38dd99c06cf682e111a8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/fr/firefox-84.0b4.tar.bz2";
+ locale = "fr";
+ arch = "linux-x86_64";
+ sha256 = "f8c33819a6ceab041bed80f1663d94a80ee3bdb6e859eab1eb8ec9d0b67f4222";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/fy-NL/firefox-84.0b4.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-x86_64";
+ sha256 = "6ed233042e570e9a04ecc1e25f6211deb7685c117db75f32a541076d95d1cebf";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ga-IE/firefox-84.0b4.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-x86_64";
+ sha256 = "b28337429a0c1d26653fda1d93b59ea0383061a253be5b763442166fdb21bbca";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/gd/firefox-84.0b4.tar.bz2";
+ locale = "gd";
+ arch = "linux-x86_64";
+ sha256 = "546bf2f1a4a8a643b161554bc92e771644ff9ae46c6b10fb2a60b920a2454f44";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/gl/firefox-84.0b4.tar.bz2";
+ locale = "gl";
+ arch = "linux-x86_64";
+ sha256 = "cfc32d3e7e3ba5379895a8b348d9399bd3962a819d0677f14a365f6e0c314676";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/gn/firefox-84.0b4.tar.bz2";
+ locale = "gn";
+ arch = "linux-x86_64";
+ sha256 = "b2b5e826540d3f9b52d67e092fa755b26a34ea9acd0cb1c69eb6f0bc332354d0";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/gu-IN/firefox-84.0b4.tar.bz2";
+ locale = "gu-IN";
+ arch = "linux-x86_64";
+ sha256 = "497b8a954ed2c9fa13e207462730dd39d2d0de10a38e3762dac3ef1fbd36282c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/he/firefox-84.0b4.tar.bz2";
+ locale = "he";
+ arch = "linux-x86_64";
+ sha256 = "8cdac2e9d2cf10171f2744727ddd80e21a4d46e2082947e49f4a255f174db968";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hi-IN/firefox-84.0b4.tar.bz2";
+ locale = "hi-IN";
+ arch = "linux-x86_64";
+ sha256 = "d37c55e60329220de3d792894d7b801adf7dc7ab8ff4ab39bd2e24b59443b973";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hr/firefox-84.0b4.tar.bz2";
+ locale = "hr";
+ arch = "linux-x86_64";
+ sha256 = "bebb6709dd3be119be45d9fdb0bac41b81514d78a384a221e2ffbb51b46dbea8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hsb/firefox-84.0b4.tar.bz2";
+ locale = "hsb";
+ arch = "linux-x86_64";
+ sha256 = "c43aea7fdd8a57653d6d9af4aa7c0be6e860f5292366ddd91c5860dfde2ee1bf";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hu/firefox-84.0b4.tar.bz2";
+ locale = "hu";
+ arch = "linux-x86_64";
+ sha256 = "71e6b509dd3a6937d9851c262fc7a1bc9e551cbe0515089586fc22098bc51151";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hy-AM/firefox-84.0b4.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-x86_64";
+ sha256 = "c92eaf9f6bfa97651075d2342e45b988ae89c1a4cb55559dad71bfae5912ee83";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ia/firefox-84.0b4.tar.bz2";
+ locale = "ia";
+ arch = "linux-x86_64";
+ sha256 = "3c71aafb7dddcd3f9bcc8e169281614ac1087400d1d0ba02afb18c68b1914128";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/id/firefox-84.0b4.tar.bz2";
+ locale = "id";
+ arch = "linux-x86_64";
+ sha256 = "8075ef0b1d7eb2fc6141262cbb0d3831c3d8508eb43d3e9e142d96946ed2036d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/is/firefox-84.0b4.tar.bz2";
+ locale = "is";
+ arch = "linux-x86_64";
+ sha256 = "5ef96d77bea5c94e7147a5657d76eb5c7f206208a0464245242cca3fc7fb79f0";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/it/firefox-84.0b4.tar.bz2";
+ locale = "it";
+ arch = "linux-x86_64";
+ sha256 = "eb76a1f3bd1ac065772d4ea4a435c53b5f7b1d5b643c7b62b7ccfee205ea4e81";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ja/firefox-84.0b4.tar.bz2";
+ locale = "ja";
+ arch = "linux-x86_64";
+ sha256 = "80b644648b9e40ed592ab9ea2b9d7f1e2abcf8d6b0f925aa57cd6cf28d53dcf0";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ka/firefox-84.0b4.tar.bz2";
+ locale = "ka";
+ arch = "linux-x86_64";
+ sha256 = "03c34e7b08a8b6140e612739118c35b05dcdef1257b4857d2fda87a1cf8852ff";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/kab/firefox-84.0b4.tar.bz2";
+ locale = "kab";
+ arch = "linux-x86_64";
+ sha256 = "419a4758cf2e2e24968f4da384dbfb03ef8398713c6070ab29ce379772168f18";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/kk/firefox-84.0b4.tar.bz2";
+ locale = "kk";
+ arch = "linux-x86_64";
+ sha256 = "cfe96420e125dd12c9a9e79e45a8d7ee260d1957abddab5ed887afd1a1e3f499";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/km/firefox-84.0b4.tar.bz2";
+ locale = "km";
+ arch = "linux-x86_64";
+ sha256 = "4b3599a9b30132b6105e4bbda7de370e54e21d8e498bb3c4c3d9807282fbf246";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/kn/firefox-84.0b4.tar.bz2";
+ locale = "kn";
+ arch = "linux-x86_64";
+ sha256 = "5da3ddc9d9824e3ba59e1cdc89ee3fb8900c661faec1f539c829d0917be5d4d1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ko/firefox-84.0b4.tar.bz2";
+ locale = "ko";
+ arch = "linux-x86_64";
+ sha256 = "2db9a494693091832e578959144d172d5135b82bbf44c041949da8ffec2de9dc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/lij/firefox-84.0b4.tar.bz2";
+ locale = "lij";
+ arch = "linux-x86_64";
+ sha256 = "2219d5235f0ed9d2015ead5782976727d2b7103afd987eb445f3f274856e6af6";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/lt/firefox-84.0b4.tar.bz2";
+ locale = "lt";
+ arch = "linux-x86_64";
+ sha256 = "a335e0d835bcc7ae9563bb3efe6b926ad71e08f3ccbd164aa2b9f257acd1341d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/lv/firefox-84.0b4.tar.bz2";
+ locale = "lv";
+ arch = "linux-x86_64";
+ sha256 = "1f89f8f2715254ef335af9b01ca1503caecb1c93b1a900ee1643c3f9e00c6821";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/mk/firefox-84.0b4.tar.bz2";
+ locale = "mk";
+ arch = "linux-x86_64";
+ sha256 = "86eb9f1e8189ce45c03925337a90f1b204dbdc902c1c4a817a924410a26b0048";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/mr/firefox-84.0b4.tar.bz2";
+ locale = "mr";
+ arch = "linux-x86_64";
+ sha256 = "d5214647403f85c5f7a95871e8d6fb4d4c448af92e6475841fd8474857f21067";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ms/firefox-84.0b4.tar.bz2";
+ locale = "ms";
+ arch = "linux-x86_64";
+ sha256 = "23af07562748448a35242a6cd77bce25a5576d2b71177fb682da58adb21671e3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/my/firefox-84.0b4.tar.bz2";
+ locale = "my";
+ arch = "linux-x86_64";
+ sha256 = "bfec2f3ad0853fb36ec4aac9ad97ba14d30a275eff2582c2e9df600b5940c004";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/nb-NO/firefox-84.0b4.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-x86_64";
+ sha256 = "32be6fe8aa661f6098b4600d824846738664f254ecd4ab0d0a1e705b28a94e74";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ne-NP/firefox-84.0b4.tar.bz2";
+ locale = "ne-NP";
+ arch = "linux-x86_64";
+ sha256 = "dfa3e6b9f31fa716a2c80fda07c24717a526ef96033b5b1861fcdad43c99b29e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/nl/firefox-84.0b4.tar.bz2";
+ locale = "nl";
+ arch = "linux-x86_64";
+ sha256 = "e253d963b66855c44f41c43baba1b5c952b37dd1b83aac8243c60581ca674a49";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/nn-NO/firefox-84.0b4.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-x86_64";
+ sha256 = "5d9b90cdee03a544a78f44d4f0566b5b59ae802af4fa60367a1a4836c01197f1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/oc/firefox-84.0b4.tar.bz2";
+ locale = "oc";
+ arch = "linux-x86_64";
+ sha256 = "b37f9a283d9dd2ff9e8998d83e0c147bfbb75e4b64b3936cb344243e1277c370";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/pa-IN/firefox-84.0b4.tar.bz2";
+ locale = "pa-IN";
+ arch = "linux-x86_64";
+ sha256 = "68f6bae2e6f064e22503145b5fd57d027899f23fcf109010a98397dd8c0d7cf6";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/pl/firefox-84.0b4.tar.bz2";
+ locale = "pl";
+ arch = "linux-x86_64";
+ sha256 = "789d6925c3b17f96bb92eef54c05fc8787f32ce2c9846931e185dc5a1de9f303";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/pt-BR/firefox-84.0b4.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-x86_64";
+ sha256 = "329eecf74dc8d9d1d8f4578389553d92a368c972fcb2468e0b936f21508bd1bc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/pt-PT/firefox-84.0b4.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-x86_64";
+ sha256 = "b30ba75dbd5f5ff3ff709722acdf36acf4de9993d230eb27996e81406779dd0a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/rm/firefox-84.0b4.tar.bz2";
+ locale = "rm";
+ arch = "linux-x86_64";
+ sha256 = "ad90ce4fbcd094bebf77b36a63e38326c613bffb580743c9a4c19df845907dfb";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ro/firefox-84.0b4.tar.bz2";
+ locale = "ro";
+ arch = "linux-x86_64";
+ sha256 = "8f7864bc6577724f20829ad79901d92775200860dd8c43bb2443c7bf22d7a435";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ru/firefox-84.0b4.tar.bz2";
+ locale = "ru";
+ arch = "linux-x86_64";
+ sha256 = "8b52d5eaee53805422bb2fd6dd8b2e0c7a5b01feccbc6fb6c77e4fb8678d30a9";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/si/firefox-84.0b4.tar.bz2";
+ locale = "si";
+ arch = "linux-x86_64";
+ sha256 = "a71df756e97f58271715f3d79a86c0407487dd5820500127cbd9373361bd016f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sk/firefox-84.0b4.tar.bz2";
+ locale = "sk";
+ arch = "linux-x86_64";
+ sha256 = "71eefff1538a2978d9e4e65fdd5a2322ad81ddfee33464c0d70b95eda1649fda";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sl/firefox-84.0b4.tar.bz2";
+ locale = "sl";
+ arch = "linux-x86_64";
+ sha256 = "91b2938be8230b6301fe3d15c6d9ba3f031c1e5fca886da228f47a2e0a2cd144";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/son/firefox-84.0b4.tar.bz2";
+ locale = "son";
+ arch = "linux-x86_64";
+ sha256 = "57e456cd14418c41c2e5f8eb0ec6b0807459f41e15207f6997c7742fd3dc8a1a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sq/firefox-84.0b4.tar.bz2";
+ locale = "sq";
+ arch = "linux-x86_64";
+ sha256 = "0f343e2442523f0e422309cc36518484a242db4116f0e6b7dcfe251cdfea76cf";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sr/firefox-84.0b4.tar.bz2";
+ locale = "sr";
+ arch = "linux-x86_64";
+ sha256 = "cf8fb723611506fff356cabd91a0ca3fdd9cc5d806167df6dd385438d467eeff";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sv-SE/firefox-84.0b4.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-x86_64";
+ sha256 = "258020bbc7a75139fee340e50d41676d234be19c931f0228485f06fcab2eef81";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ta/firefox-84.0b4.tar.bz2";
+ locale = "ta";
+ arch = "linux-x86_64";
+ sha256 = "7783166c0f9ceed0f7d037c1e92b988818a70522945af2c96db958966eed8b66";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/te/firefox-84.0b4.tar.bz2";
+ locale = "te";
+ arch = "linux-x86_64";
+ sha256 = "02662946b3506da6432c48eb1c7e0f522ffaed2abcfcc474332a799ef3be2b92";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/th/firefox-84.0b4.tar.bz2";
+ locale = "th";
+ arch = "linux-x86_64";
+ sha256 = "1592b372b8e767e5b7369f356fb733a2daf51b4f45c8c4c94041845d63b3c604";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/tl/firefox-84.0b4.tar.bz2";
+ locale = "tl";
+ arch = "linux-x86_64";
+ sha256 = "2b831feaae729c674e8a9ee207dea007df100bbbd8cf7553791aee3eede37224";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/tr/firefox-84.0b4.tar.bz2";
+ locale = "tr";
+ arch = "linux-x86_64";
+ sha256 = "aedf8b7684f204109e42a3797ba00bd7a8c5bd3f827c31ea3fd4eea1679d8af5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/trs/firefox-84.0b4.tar.bz2";
+ locale = "trs";
+ arch = "linux-x86_64";
+ sha256 = "232cae54f6120a47455fdd7e0d88dde1f64d5a1931bcd7d54f6bf8bd376583e8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/uk/firefox-84.0b4.tar.bz2";
+ locale = "uk";
+ arch = "linux-x86_64";
+ sha256 = "e00de7cbe1f00aa082f9a448857cc19f011bb1d5b579e79457bb0dfc72b7a12d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ur/firefox-84.0b4.tar.bz2";
+ locale = "ur";
+ arch = "linux-x86_64";
+ sha256 = "7ece4d8af476eef174c0c175b65841da8d826702fb255587c2e1d259bb9ef3ba";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/uz/firefox-84.0b4.tar.bz2";
+ locale = "uz";
+ arch = "linux-x86_64";
+ sha256 = "09c7e7d641f703404aa7927860f2924e6be376b2e39b1f0fe012dc87469edb62";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/vi/firefox-84.0b4.tar.bz2";
+ locale = "vi";
+ arch = "linux-x86_64";
+ sha256 = "18121867e6b8c2a52c5324f653f82afbae97481b5ac3df811e881ec39bbb3b0e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/xh/firefox-84.0b4.tar.bz2";
+ locale = "xh";
+ arch = "linux-x86_64";
+ sha256 = "04f5bb96ef9002eeb0869236f70168e7cbd7842b8e12b66dd6d5d67db9acd28a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/zh-CN/firefox-84.0b4.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-x86_64";
+ sha256 = "142286cf9136bcb9b6af7ea1df3cf77821c0793ab7b9fe533a2963c453f45a7d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/zh-TW/firefox-84.0b4.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-x86_64";
+ sha256 = "fef32e5817140bbcb6d1b614a72a29523235606192078eb04420ff7a2453cb9a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ach/firefox-84.0b4.tar.bz2";
+ locale = "ach";
+ arch = "linux-i686";
+ sha256 = "40e9b7a738e06cec731c69b659b14ca48b119ae20016e0214e1160edf03919b0";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/af/firefox-84.0b4.tar.bz2";
+ locale = "af";
+ arch = "linux-i686";
+ sha256 = "9bb05361a51f836b2de5614127f8df768e504f4d5bc136e3f169741098f0bcbd";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/an/firefox-84.0b4.tar.bz2";
+ locale = "an";
+ arch = "linux-i686";
+ sha256 = "ee62418444c76b709204962ed47af8ef3d61b80e628600201b5a12293651c70d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ar/firefox-84.0b4.tar.bz2";
+ locale = "ar";
+ arch = "linux-i686";
+ sha256 = "10b5d4f1616e078bf83ab5ff942dabe89a8eaca63f24e96b53726dfb2bc9e36b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ast/firefox-84.0b4.tar.bz2";
+ locale = "ast";
+ arch = "linux-i686";
+ sha256 = "a4e5ccae125edaa0696b696a5342320707f0c39c8985437b6aed60faede71de0";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/az/firefox-84.0b4.tar.bz2";
+ locale = "az";
+ arch = "linux-i686";
+ sha256 = "c13d9ed183c7b9256801708014f38405749cdfcead9f243e80eef78d06a9b78e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/be/firefox-84.0b4.tar.bz2";
+ locale = "be";
+ arch = "linux-i686";
+ sha256 = "57d8eafc3d45784dbad71eb49d5a4c0483d939719b43b0f16e4db1d5a96ff4a8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/bg/firefox-84.0b4.tar.bz2";
+ locale = "bg";
+ arch = "linux-i686";
+ sha256 = "0a65ad71cc9d97277535f07a8dbc7ca248508c24dea8520f92fecbb806f87a31";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/bn/firefox-84.0b4.tar.bz2";
+ locale = "bn";
+ arch = "linux-i686";
+ sha256 = "3cead08f4d746def6cfb909107f4739400498c970f10fbd542259c04b84b5852";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/br/firefox-84.0b4.tar.bz2";
+ locale = "br";
+ arch = "linux-i686";
+ sha256 = "40c6e963e8e52ef51cd4d4e63d501f2a6cecec1800541941458b896ad90e5b93";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/bs/firefox-84.0b4.tar.bz2";
+ locale = "bs";
+ arch = "linux-i686";
+ sha256 = "1e9df53642c442ead4318b0cc886653fdfcecf5275d6e7218acb390bb13e0021";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ca-valencia/firefox-84.0b4.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-i686";
+ sha256 = "3b5699dad93291921979fc6da21d16f94ef471e9a8ef3d877001400ba4abe316";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ca/firefox-84.0b4.tar.bz2";
+ locale = "ca";
+ arch = "linux-i686";
+ sha256 = "c52b9cc25dc72eeb6ef3e7c3add4066c005399afdba2cd0964e695a891a1d314";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/cak/firefox-84.0b4.tar.bz2";
+ locale = "cak";
+ arch = "linux-i686";
+ sha256 = "355df19615fddd85c51b033a413a3de524f19fb2d97a2ba77f3b8001b231338f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/cs/firefox-84.0b4.tar.bz2";
+ locale = "cs";
+ arch = "linux-i686";
+ sha256 = "e10f35795f19ea10c4de34687eacad6f9bd863002e9d66b87cbace01b97c8628";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/cy/firefox-84.0b4.tar.bz2";
+ locale = "cy";
+ arch = "linux-i686";
+ sha256 = "f2fd90b19e8c4ac98bd6ee262084ef7842e52a304abe10cfcda2fc14ccb5ce30";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/da/firefox-84.0b4.tar.bz2";
+ locale = "da";
+ arch = "linux-i686";
+ sha256 = "01e468f3a445276aea85425b4b8a58e44a2e4cf8552a02aa3d4d31775bff9575";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/de/firefox-84.0b4.tar.bz2";
+ locale = "de";
+ arch = "linux-i686";
+ sha256 = "9dd3d806a4ff60c9cfd5b81cdf212f72c281f75ce554555cfd443f0696f700d5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/dsb/firefox-84.0b4.tar.bz2";
+ locale = "dsb";
+ arch = "linux-i686";
+ sha256 = "eb26cbad496bc1c4f97e6027a1f2cd9166d479a503a3f0ac566a766c86bdf8b5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/el/firefox-84.0b4.tar.bz2";
+ locale = "el";
+ arch = "linux-i686";
+ sha256 = "e173622f06f64156d749d0f56d98be72f067077c3e41090aa16a3b0c6d7a5e43";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/en-CA/firefox-84.0b4.tar.bz2";
+ locale = "en-CA";
+ arch = "linux-i686";
+ sha256 = "c1c6aa503e1565cb0c0239d562f11322265a7bce4005211b8007579f8f56c318";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/en-GB/firefox-84.0b4.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-i686";
+ sha256 = "57b2670f515e2a17c10df602d93a6960e5c4710462098d89568efd446e4480e5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/en-US/firefox-84.0b4.tar.bz2";
+ locale = "en-US";
+ arch = "linux-i686";
+ sha256 = "81cf4a4fe610de3342bdea340d450ff67c594e7e4924a08b6b69de75510da698";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/eo/firefox-84.0b4.tar.bz2";
+ locale = "eo";
+ arch = "linux-i686";
+ sha256 = "dd61c4bacfe39f7887c6d21d139df6a2df17f263c4be5689f5f9dd6bb4ee6e63";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/es-AR/firefox-84.0b4.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-i686";
+ sha256 = "3ae8695c57befa3552033bcb867b48f9ba491a08e31168ba22901fcb3276a3af";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/es-CL/firefox-84.0b4.tar.bz2";
+ locale = "es-CL";
+ arch = "linux-i686";
+ sha256 = "5ae14208cdbf0dd50edecb8a56bfe7dba0e7520f2ef135abb092761acc8630ae";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/es-ES/firefox-84.0b4.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-i686";
+ sha256 = "d786cf3b623a05e5156b020a436897525e80117ab7fa9f25ca42fca9fb4c0eba";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/es-MX/firefox-84.0b4.tar.bz2";
+ locale = "es-MX";
+ arch = "linux-i686";
+ sha256 = "c2ec749bb5befffd81189503d87a57bda462897bba858904924ae999923a4e42";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/et/firefox-84.0b4.tar.bz2";
+ locale = "et";
+ arch = "linux-i686";
+ sha256 = "7a2e1078ff1a3bb975baa5488f89e8161e20354d7f55b98c964efa5bfce6f696";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/eu/firefox-84.0b4.tar.bz2";
+ locale = "eu";
+ arch = "linux-i686";
+ sha256 = "c635006a367f68bfabad7a3874f3333ac3f486f0001ca9641ac8ce12dd9bd01e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/fa/firefox-84.0b4.tar.bz2";
+ locale = "fa";
+ arch = "linux-i686";
+ sha256 = "f897a5d316c436fc20d8c2737902e29dfd0ece3c9ffdb90fda2fa454ad398257";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ff/firefox-84.0b4.tar.bz2";
+ locale = "ff";
+ arch = "linux-i686";
+ sha256 = "3a31d43cb5242a0aec516d8fe99dc916144e8b7250b81c7de0b1361b19f067fa";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/fi/firefox-84.0b4.tar.bz2";
+ locale = "fi";
+ arch = "linux-i686";
+ sha256 = "50261499bd4725f08684c9042056c9da2029f55b0dee4a856a9de661412c06e8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/fr/firefox-84.0b4.tar.bz2";
+ locale = "fr";
+ arch = "linux-i686";
+ sha256 = "7b793590a975a64b6fcfcccb4e6c07cd5346ec457af1ae31b5fb1032d4217c64";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/fy-NL/firefox-84.0b4.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-i686";
+ sha256 = "468c7463503a34de44a74ff6a751e8614abbe6bd23f39f50308f23000614331e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ga-IE/firefox-84.0b4.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-i686";
+ sha256 = "92b49316d122c8c91995766e28387d5587955e022f844c7a85fe491ca602e222";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/gd/firefox-84.0b4.tar.bz2";
+ locale = "gd";
+ arch = "linux-i686";
+ sha256 = "4bd2901b705f99bd1889b21f4af9ba7dd022f608960807f96f115a110c96a80a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/gl/firefox-84.0b4.tar.bz2";
+ locale = "gl";
+ arch = "linux-i686";
+ sha256 = "391d62de840d53d531130fef0018c71add0ef7134fbc758eb869da7c1cc3b5f3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/gn/firefox-84.0b4.tar.bz2";
+ locale = "gn";
+ arch = "linux-i686";
+ sha256 = "d51f75a7718e78bfb1e9d0974db0a404294e577e186794d3480778c7facce418";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/gu-IN/firefox-84.0b4.tar.bz2";
+ locale = "gu-IN";
+ arch = "linux-i686";
+ sha256 = "7cbbf4846153f79fc72e217872fd64b92ed8968aaf618eeededa375ac268a12e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/he/firefox-84.0b4.tar.bz2";
+ locale = "he";
+ arch = "linux-i686";
+ sha256 = "44c0bfad535a4e3c225d948d87935e08e5d77ea22638e971cc833877462edc32";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hi-IN/firefox-84.0b4.tar.bz2";
+ locale = "hi-IN";
+ arch = "linux-i686";
+ sha256 = "fc64673429972967238b5bb101beb2117cfdb0360e405d4d3b53f013791c0b8c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hr/firefox-84.0b4.tar.bz2";
+ locale = "hr";
+ arch = "linux-i686";
+ sha256 = "f256eb4e655a14b1a084af7f72ef4673d33b42d1c23ffc1ff3b4ede42d966246";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hsb/firefox-84.0b4.tar.bz2";
+ locale = "hsb";
+ arch = "linux-i686";
+ sha256 = "9e1e478e501875ac259e22287aece77f1bbc1f898355ab1c29fa26543b38acbb";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hu/firefox-84.0b4.tar.bz2";
+ locale = "hu";
+ arch = "linux-i686";
+ sha256 = "e8605e1b9d2c92c2eafa35cbe647bdda6af22eb030d8656262473b0b17650de9";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hy-AM/firefox-84.0b4.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-i686";
+ sha256 = "be21fea69e27ce54498b6b003c1db20b42d7d52702ac56d1a1fc2c6fc24558f1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ia/firefox-84.0b4.tar.bz2";
+ locale = "ia";
+ arch = "linux-i686";
+ sha256 = "039f50fc10d95bdef4468174a8486f45bbf9313e1b9b6cecb0d094bb3766ca9c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/id/firefox-84.0b4.tar.bz2";
+ locale = "id";
+ arch = "linux-i686";
+ sha256 = "ecd6f3e031529e1fed8fb7ae77bf6e0497c9ad0e4996e31a86c4b79489ba9811";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/is/firefox-84.0b4.tar.bz2";
+ locale = "is";
+ arch = "linux-i686";
+ sha256 = "1f6fbf55f1384141826a4b6a39ec617cc798b0c0a0e1ee02d6cd65a79d6784a9";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/it/firefox-84.0b4.tar.bz2";
+ locale = "it";
+ arch = "linux-i686";
+ sha256 = "73eebb1d351b5d746d3447c7a68d7a906c4db6df8cd257c6a048ea16cf908e64";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ja/firefox-84.0b4.tar.bz2";
+ locale = "ja";
+ arch = "linux-i686";
+ sha256 = "ff1c630c6c41cd31c8ecab5fc48e8879dbc4aa295492368cae93061de6558b64";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ka/firefox-84.0b4.tar.bz2";
+ locale = "ka";
+ arch = "linux-i686";
+ sha256 = "b6976def40cfd05543b70597347ea7c632c591660a2dd08332f81411a6ce6723";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/kab/firefox-84.0b4.tar.bz2";
+ locale = "kab";
+ arch = "linux-i686";
+ sha256 = "403bd985ff7ab44324d12c8c7f1386eec9fbae97ac9a0597d12d09d387686db4";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/kk/firefox-84.0b4.tar.bz2";
+ locale = "kk";
+ arch = "linux-i686";
+ sha256 = "3860b0e8d53655669afcb4bece7637e9a1c0daa66d453e9548b2336eb45d94ad";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/km/firefox-84.0b4.tar.bz2";
+ locale = "km";
+ arch = "linux-i686";
+ sha256 = "5753474371c7b8663d45f7f9591958afb9e9e2777df3e89840f6f34894ddf491";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/kn/firefox-84.0b4.tar.bz2";
+ locale = "kn";
+ arch = "linux-i686";
+ sha256 = "d0dbeceacf93c3a581cc581e09507e401636350b763c8c9f5342b33a0640bd8e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ko/firefox-84.0b4.tar.bz2";
+ locale = "ko";
+ arch = "linux-i686";
+ sha256 = "095930063eae8e3d6a78a6d9adb3d28cff0bb0c9ccdec977c8c80765a4c60560";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/lij/firefox-84.0b4.tar.bz2";
+ locale = "lij";
+ arch = "linux-i686";
+ sha256 = "587bced8e4480eba25e8597ab6b838a4f18553dd44b4f0ff48f245406f78e896";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/lt/firefox-84.0b4.tar.bz2";
+ locale = "lt";
+ arch = "linux-i686";
+ sha256 = "e214c23914e05152973428f5ed1df20054df054848d99ff23e5eb09e19b4557c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/lv/firefox-84.0b4.tar.bz2";
+ locale = "lv";
+ arch = "linux-i686";
+ sha256 = "67657d4abb394ef76d37c321625d99dcf228ee00cc109e6d1c80cb3659db9879";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/mk/firefox-84.0b4.tar.bz2";
+ locale = "mk";
+ arch = "linux-i686";
+ sha256 = "bac0e98b7a68dda441195cbebcdbea583f104188112449b14723c1086c3c4f19";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/mr/firefox-84.0b4.tar.bz2";
+ locale = "mr";
+ arch = "linux-i686";
+ sha256 = "125a63c875f4be6e246fa01289386295172d999e0e523c1171578adea24b022e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ms/firefox-84.0b4.tar.bz2";
+ locale = "ms";
+ arch = "linux-i686";
+ sha256 = "6dc44f34449c915e93bf9c012ce7286b16d6418ca8f576d8a008b7ceb90bcb13";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/my/firefox-84.0b4.tar.bz2";
+ locale = "my";
+ arch = "linux-i686";
+ sha256 = "af5e2f1f9dcca84f41d3701035a00fc6b581aee2bf00f9f926928b99ab42d06e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/nb-NO/firefox-84.0b4.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-i686";
+ sha256 = "d168631cc1518e17cc9cd85f481f1047f6ae7df593d9197de5710fca0d87965b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ne-NP/firefox-84.0b4.tar.bz2";
+ locale = "ne-NP";
+ arch = "linux-i686";
+ sha256 = "4b6065882ddd9e02441eff830808b31e6104d076cefed8386cff4ec7cb12330a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/nl/firefox-84.0b4.tar.bz2";
+ locale = "nl";
+ arch = "linux-i686";
+ sha256 = "96298283a2dbd9e3242c27551ee29829b21c8b9a32ca33b85da3142c47084dd5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/nn-NO/firefox-84.0b4.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-i686";
+ sha256 = "19475301d3d93a633a1555b4436d63546a71160a992daa760a8c76a808791b89";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/oc/firefox-84.0b4.tar.bz2";
+ locale = "oc";
+ arch = "linux-i686";
+ sha256 = "48af4af195173b541d76bb623acc357c3a2a8d03227406a21de89ab2d6c8c757";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/pa-IN/firefox-84.0b4.tar.bz2";
+ locale = "pa-IN";
+ arch = "linux-i686";
+ sha256 = "582ec12fbe2f8b07f8f4ae11ddf05c62db2d84508ee63ad6bfead9493a1424cc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/pl/firefox-84.0b4.tar.bz2";
+ locale = "pl";
+ arch = "linux-i686";
+ sha256 = "df8fcb5fe32325d45fbc1c9349065cd2d7f283e6a33d944282f3ed948c1174ee";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/pt-BR/firefox-84.0b4.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-i686";
+ sha256 = "fa48bc301c9b7dac4802b50980c573039648eb41bf0c0fb3ef75d0ba1dce9b67";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/pt-PT/firefox-84.0b4.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-i686";
+ sha256 = "b0075346738d9a5f61fe4c3265c3a50f639f017551d3bdb2479e622d9561bd33";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/rm/firefox-84.0b4.tar.bz2";
+ locale = "rm";
+ arch = "linux-i686";
+ sha256 = "c9ad20ff328c8c0693cab58fbfb1d6c1f85bb63fdd20eb8d371e82d4df5c2e50";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ro/firefox-84.0b4.tar.bz2";
+ locale = "ro";
+ arch = "linux-i686";
+ sha256 = "7816302b6f70c0e24b848d3d396876ee0d870d90561c37e440bb8b7722f54ff2";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ru/firefox-84.0b4.tar.bz2";
+ locale = "ru";
+ arch = "linux-i686";
+ sha256 = "8f4969a16f4e70b59dd2da78b73532ff39589c984512d16fcd7106d2cf503342";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/si/firefox-84.0b4.tar.bz2";
+ locale = "si";
+ arch = "linux-i686";
+ sha256 = "0dfc4c1c797366ac9e65489b07de756a1b03b5498c9e4a6a10ac0d3a60345471";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sk/firefox-84.0b4.tar.bz2";
+ locale = "sk";
+ arch = "linux-i686";
+ sha256 = "5e16b451058d64ea0cb61fa92e17fd72e591009803170b0b220237cac7180167";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sl/firefox-84.0b4.tar.bz2";
+ locale = "sl";
+ arch = "linux-i686";
+ sha256 = "36216a3b474d3fd1d27886495f92eca83d24a465690efe7356ca9e7e4c08163d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/son/firefox-84.0b4.tar.bz2";
+ locale = "son";
+ arch = "linux-i686";
+ sha256 = "1116bbb70b7ff8538d3ce4e7df190bd152c98889d1612fa8485cb0197a83868c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sq/firefox-84.0b4.tar.bz2";
+ locale = "sq";
+ arch = "linux-i686";
+ sha256 = "006948f771f4964f5f4f078615cbb85aee23051e371ff7b871caee7c4659fe64";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sr/firefox-84.0b4.tar.bz2";
+ locale = "sr";
+ arch = "linux-i686";
+ sha256 = "20b0b9d605603e525d046424d290e6b2a0c963c0eae2a9a6c6ccdb72a9803e9e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sv-SE/firefox-84.0b4.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-i686";
+ sha256 = "a132b97019c75aa8929830f873974e1ab36b69ca7e3c9ab44dd2a5b11bbe4f7f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ta/firefox-84.0b4.tar.bz2";
+ locale = "ta";
+ arch = "linux-i686";
+ sha256 = "3f24d965ee5c89edd447e8a52a0241a5d1cedb0aae6ed1ad1c212ba4dbed210a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/te/firefox-84.0b4.tar.bz2";
+ locale = "te";
+ arch = "linux-i686";
+ sha256 = "2b65c7bb7df93b2bdffa687bd4309352f0d73ecdd66767db0db860f33f17c6a6";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/th/firefox-84.0b4.tar.bz2";
+ locale = "th";
+ arch = "linux-i686";
+ sha256 = "21e2dca4e194a38de97b9b717150441bdd32466ee43e721f41afde004bc8e3e2";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/tl/firefox-84.0b4.tar.bz2";
+ locale = "tl";
+ arch = "linux-i686";
+ sha256 = "9f4dc351f5244b0837a95d4afbfa0af373fe056e5eb106a2b177a57ba4c85ee7";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/tr/firefox-84.0b4.tar.bz2";
+ locale = "tr";
+ arch = "linux-i686";
+ sha256 = "50cabe6fea43e2212d0b0a9a5a382e085fdabc3ff6b6b0694b8f9d3d327c3ffc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/trs/firefox-84.0b4.tar.bz2";
+ locale = "trs";
+ arch = "linux-i686";
+ sha256 = "c4db90a9a0677430fa591cc387bf1255f260208a4907cb760649cd7a6db03808";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/uk/firefox-84.0b4.tar.bz2";
+ locale = "uk";
+ arch = "linux-i686";
+ sha256 = "7c92d619dd827a9f7ef9297f784cff582aba44684dca91c3b9873337b4318fb3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ur/firefox-84.0b4.tar.bz2";
+ locale = "ur";
+ arch = "linux-i686";
+ sha256 = "ef46130577072c6fe6b14aa0710c75344dea46124093f483db47cbc8c9cb4ec6";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/uz/firefox-84.0b4.tar.bz2";
+ locale = "uz";
+ arch = "linux-i686";
+ sha256 = "34c28440a7772a7fcf7f920be760f92057d813648372fe7cb8ae9f2c3fb3a846";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/vi/firefox-84.0b4.tar.bz2";
+ locale = "vi";
+ arch = "linux-i686";
+ sha256 = "c02c1737b56e1ae4f20ffa9abd392fb69f19d68348341977d0f39bfefab465b6";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/xh/firefox-84.0b4.tar.bz2";
+ locale = "xh";
+ arch = "linux-i686";
+ sha256 = "6be6defb443480c536639d99d124d8c636d70f049f126a793d627c131035c9c2";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/zh-CN/firefox-84.0b4.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-i686";
+ sha256 = "454af78f3ea4aa00676c4b97dff278dd404116e1da7993b5a2593167d11db885";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/zh-TW/firefox-84.0b4.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-i686";
+ sha256 = "7e6b1b0ad56916759b01df06b23bb6a23b0c59815538cb1edb3e95edf7b772d7";
+ }
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
new file mode 100644
index 000000000000..d86b9d6f9870
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -0,0 +1,206 @@
+{ lib, stdenv, fetchurl, config, wrapGAppsHook
+, alsaLib
+, atk
+, cairo
+, curl
+, cups
+, dbus-glib
+, dbus
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, glibc
+, gtk2
+, gtk3
+, kerberos
+, libX11
+, libXScrnSaver
+, libxcb
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrender
+, libXt
+, libcanberra
+, libnotify
+, gnome3
+, libGLU, libGL
+, nspr
+, nss
+, pango
+, libheimdal
+, libpulseaudio
+, systemd
+, channel
+, generated
+, writeScript
+, writeText
+, xidel
+, coreutils
+, gnused
+, gnugrep
+, gnupg
+, ffmpeg
+, runtimeShell
+, mesa # firefox wants gbm for drm+dmabuf
+, systemLocale ? config.i18n.defaultLocale or "en-US"
+}:
+
+let
+
+ inherit (generated) version sources;
+
+ mozillaPlatforms = {
+ i686-linux = "linux-i686";
+ x86_64-linux = "linux-x86_64";
+ };
+
+ arch = mozillaPlatforms.${stdenv.hostPlatform.system};
+
+ isPrefixOf = prefix: string:
+ builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+ sourceMatches = locale: source:
+ (isPrefixOf source.locale locale) && source.arch == arch;
+
+ policies = {
+ DisableAppUpdate = true;
+ };
+
+ policiesJson = writeText "no-update-firefox-policy.json" (builtins.toJSON { inherit policies; });
+
+ defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+ source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+ name = "firefox-${channel}-bin-unwrapped-${version}";
+
+in
+
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl { inherit (source) url sha256; };
+
+ phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ];
+
+ libPath = stdenv.lib.makeLibraryPath
+ [ stdenv.cc.cc
+ alsaLib
+ (lib.getDev alsaLib)
+ atk
+ cairo
+ curl
+ cups
+ dbus-glib
+ dbus
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ glibc
+ gtk2
+ gtk3
+ kerberos
+ mesa
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libxcb
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXinerama
+ libXrender
+ libXt
+ libcanberra
+ libnotify
+ libGLU libGL
+ nspr
+ nss
+ pango
+ libheimdal
+ libpulseaudio
+ (lib.getDev libpulseaudio)
+ systemd
+ ffmpeg
+ ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
+ stdenv.cc.cc
+ ];
+
+ inherit gtk3;
+
+ buildInputs = [ wrapGAppsHook gtk3 gnome3.adwaita-icon-theme ];
+
+ # "strip" after "patchelf" may break binaries.
+ # See: https://github.com/NixOS/patchelf/issues/10
+ dontStrip = true;
+ dontPatchELF = true;
+
+ patchPhase = ''
+ # Don't download updates from Mozilla directly
+ echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js
+ '';
+
+ installPhase =
+ ''
+ mkdir -p "$prefix/usr/lib/firefox-bin-${version}"
+ cp -r * "$prefix/usr/lib/firefox-bin-${version}"
+
+ mkdir -p "$out/bin"
+ ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/"
+
+ for executable in \
+ firefox firefox-bin plugin-container \
+ updater crashreporter webapprt-stub
+ do
+ if [ -e "$out/usr/lib/firefox-bin-${version}/$executable" ]; then
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ "$out/usr/lib/firefox-bin-${version}/$executable"
+ fi
+ done
+
+ find . -executable -type f -exec \
+ patchelf --set-rpath "$libPath" \
+ "$out/usr/lib/firefox-bin-${version}/{}" \;
+
+ # wrapFirefox expects "$out/lib" instead of "$out/usr/lib"
+ ln -s "$out/usr/lib" "$out/lib"
+
+ gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped")
+
+ # See: https://github.com/mozilla/policy-templates/blob/master/README.md
+ mkdir -p "$out/lib/firefox-bin-${version}/distribution";
+ ln -s ${policiesJson} "$out/lib/firefox-bin-${version}/distribution/policies.json";
+ '';
+
+ passthru.execdir = "/bin";
+ passthru.ffmpegSupport = true;
+ passthru.gssSupport = true;
+ # update with:
+ # $ nix-shell maintainers/scripts/update.nix --argstr package firefox-bin-unwrapped
+ passthru.updateScript = import ./update.nix {
+ inherit name channel writeScript xidel coreutils gnused gnugrep gnupg curl runtimeShell;
+ baseUrl =
+ if channel == "devedition"
+ then "http://archive.mozilla.org/pub/devedition/releases/"
+ else "http://archive.mozilla.org/pub/firefox/releases/";
+ };
+ meta = with stdenv.lib; {
+ description = "Mozilla Firefox, free web browser (binary package)";
+ homepage = "http://www.mozilla.org/firefox/";
+ license = {
+ free = false;
+ url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
+ };
+ platforms = builtins.attrNames mozillaPlatforms;
+ maintainers = with maintainers; [ taku0 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
new file mode 100644
index 000000000000..5f16fb1914ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -0,0 +1,965 @@
+{
+ version = "84.0b4";
+ sources = [
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ach/firefox-84.0b4.tar.bz2";
+ locale = "ach";
+ arch = "linux-x86_64";
+ sha256 = "6b548e6e2753e4a0ad2ad5968c063b6f4c7866c297314ba9e807161f7c757275";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/af/firefox-84.0b4.tar.bz2";
+ locale = "af";
+ arch = "linux-x86_64";
+ sha256 = "f75bfba14ae1a248918c0e433c343328305eb6372dd80aa343506437f631f2b6";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/an/firefox-84.0b4.tar.bz2";
+ locale = "an";
+ arch = "linux-x86_64";
+ sha256 = "d2e972f7d345720a89081fce3b9257942c93bdeb2a5c7dcede3c30282407f159";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ar/firefox-84.0b4.tar.bz2";
+ locale = "ar";
+ arch = "linux-x86_64";
+ sha256 = "2731722dbd097875bb797a555e9a0ba3843deb159f7917626d8e97c1a3005e7a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ast/firefox-84.0b4.tar.bz2";
+ locale = "ast";
+ arch = "linux-x86_64";
+ sha256 = "4d626c7f293226e9e18e28d069b40f75914f9387553d54588c34e7dd70ce1ae9";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/az/firefox-84.0b4.tar.bz2";
+ locale = "az";
+ arch = "linux-x86_64";
+ sha256 = "01a647694a6aa2bbd8ad531197565593783946ad248d34f86550d28b8be5b52b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/be/firefox-84.0b4.tar.bz2";
+ locale = "be";
+ arch = "linux-x86_64";
+ sha256 = "49639180573943a4bd4d0672c5dec969850b4bfceca00c37575c6d0f2d589a7e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/bg/firefox-84.0b4.tar.bz2";
+ locale = "bg";
+ arch = "linux-x86_64";
+ sha256 = "c575261553cbc6afcc60650e21605e1298a122b975f6b6b2845a35725fe2ff25";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/bn/firefox-84.0b4.tar.bz2";
+ locale = "bn";
+ arch = "linux-x86_64";
+ sha256 = "5c5ebe2bfaaa7ea16ca4285d9806f3ecef1b29b61e5018920db27e050a4ef521";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/br/firefox-84.0b4.tar.bz2";
+ locale = "br";
+ arch = "linux-x86_64";
+ sha256 = "29c764eff10d3756f258f0ac5cc9bec14cc46bb66d804eaca5548cebbaa067d6";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/bs/firefox-84.0b4.tar.bz2";
+ locale = "bs";
+ arch = "linux-x86_64";
+ sha256 = "7730a4c1e7d4d791fe35f000bba72d3652fe7289eb95f5e77b426995a63ef412";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ca-valencia/firefox-84.0b4.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-x86_64";
+ sha256 = "fe90ef596de4262d803fa282cce7b30c1c9bde896b31d7e47d8e862e38ca1037";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ca/firefox-84.0b4.tar.bz2";
+ locale = "ca";
+ arch = "linux-x86_64";
+ sha256 = "f435a47a36affd5b59c7a6543f1c1c7e0dfead407138967a0f295dcd6093bed6";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/cak/firefox-84.0b4.tar.bz2";
+ locale = "cak";
+ arch = "linux-x86_64";
+ sha256 = "ec4968ccfaea0a975a4f56aaae8290387707570cf899d078438ac2cb98244fe7";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/cs/firefox-84.0b4.tar.bz2";
+ locale = "cs";
+ arch = "linux-x86_64";
+ sha256 = "357c5372b6fade862671db66b90b3382749153c641bcd7c99f7b2a3c68c143fb";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/cy/firefox-84.0b4.tar.bz2";
+ locale = "cy";
+ arch = "linux-x86_64";
+ sha256 = "5ce8f5e451fb2271635a2cada6c7b54a53936a1b912b777d54ce640cecb3d37e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/da/firefox-84.0b4.tar.bz2";
+ locale = "da";
+ arch = "linux-x86_64";
+ sha256 = "ac790fdafd2875d180be2375937b38546dd77d6e9b8428f4d44a2b780b4db14f";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/de/firefox-84.0b4.tar.bz2";
+ locale = "de";
+ arch = "linux-x86_64";
+ sha256 = "6c5205a4d74da62927648f95a069ed6a68ab012f2cbe0c4cded3de8d40c3d325";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/dsb/firefox-84.0b4.tar.bz2";
+ locale = "dsb";
+ arch = "linux-x86_64";
+ sha256 = "516308e19f0373b3ff75e2e114fc7f1d2d370cd4a0f63f8bf74704eced2e0d56";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/el/firefox-84.0b4.tar.bz2";
+ locale = "el";
+ arch = "linux-x86_64";
+ sha256 = "d35a67fcfc8c5c334f55d12810bdcbaab6b9cb5fd3aaa75c79977accf7429445";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/en-CA/firefox-84.0b4.tar.bz2";
+ locale = "en-CA";
+ arch = "linux-x86_64";
+ sha256 = "e8d36d76d791108a6e514a649eebc9c4814aa8ccd4b21728e56a4e9839eef803";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/en-GB/firefox-84.0b4.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-x86_64";
+ sha256 = "9bb695670d7ee7a3a35d9adeef579e33f076fc1eca717149a5078134f584bf70";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/en-US/firefox-84.0b4.tar.bz2";
+ locale = "en-US";
+ arch = "linux-x86_64";
+ sha256 = "595b1004380ac96663c2d8889f02a681ad7c5c56e0f12cde4a26a6453d0a0ec5";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/eo/firefox-84.0b4.tar.bz2";
+ locale = "eo";
+ arch = "linux-x86_64";
+ sha256 = "cb6ac56d074e91e2f5154c275c4c3a46e4392586451fdbba52fb419bbe085c64";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/es-AR/firefox-84.0b4.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-x86_64";
+ sha256 = "920e2aa05414fb72be7f24240636e7ce7b431776cc919c5a07c1361da3f66289";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/es-CL/firefox-84.0b4.tar.bz2";
+ locale = "es-CL";
+ arch = "linux-x86_64";
+ sha256 = "9db297046da02c5c8e1f6d5ba0e4f6b35ec8b8d36335dd2f7933e49d86c207b3";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/es-ES/firefox-84.0b4.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-x86_64";
+ sha256 = "ed94f3ded8f803f956290976cfa41a5c46b42da7f3158b4283445ded15fdd789";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/es-MX/firefox-84.0b4.tar.bz2";
+ locale = "es-MX";
+ arch = "linux-x86_64";
+ sha256 = "11e2a8b7084ea002c6efd92fc86529e2dd09afbe4fe52285a3165733af95e132";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/et/firefox-84.0b4.tar.bz2";
+ locale = "et";
+ arch = "linux-x86_64";
+ sha256 = "0baa470895983b2c85f9ecc79f36fa1b6c8578c5bc22be76ef10d6e7f9e11ee9";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/eu/firefox-84.0b4.tar.bz2";
+ locale = "eu";
+ arch = "linux-x86_64";
+ sha256 = "271141d85b5a0338445945208d515ab9ec6452253abddb1860c31cd61458de4b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/fa/firefox-84.0b4.tar.bz2";
+ locale = "fa";
+ arch = "linux-x86_64";
+ sha256 = "d467a6e1eff3b2edad56c6b8b58a7fe2d7fa5c07524fc0d567b660b29169ddf9";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ff/firefox-84.0b4.tar.bz2";
+ locale = "ff";
+ arch = "linux-x86_64";
+ sha256 = "4f117b8bd69c01cb6d38b927ab26cfe79fcd111fc9a4a2e53ae4ef936bc9806d";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/fi/firefox-84.0b4.tar.bz2";
+ locale = "fi";
+ arch = "linux-x86_64";
+ sha256 = "6eb9d0c0d1ef84abf0af2a873334dea463d728ef5aff398417e2ea3104a4503e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/fr/firefox-84.0b4.tar.bz2";
+ locale = "fr";
+ arch = "linux-x86_64";
+ sha256 = "85d4b90fabcc03d3ac396bdba0749794bc3fe447c9f2ce793962a2acfc35918f";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/fy-NL/firefox-84.0b4.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-x86_64";
+ sha256 = "462e14991e34122e2275bedcd6776d9f8a75242c2b06d84ef3dadab08428d48d";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ga-IE/firefox-84.0b4.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-x86_64";
+ sha256 = "b0b7def94a250ec52fda4e4fe0de931209fe71eb06ce03de13bd7309c7f78d79";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/gd/firefox-84.0b4.tar.bz2";
+ locale = "gd";
+ arch = "linux-x86_64";
+ sha256 = "e3bc980f579132b68cdf06b06abe2303430df239444971010ef420f5fe1599f0";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/gl/firefox-84.0b4.tar.bz2";
+ locale = "gl";
+ arch = "linux-x86_64";
+ sha256 = "66b9c65dedd1b57cfa2d960a40df72dca473f39f1cc585e1406abc64d68b1ce5";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/gn/firefox-84.0b4.tar.bz2";
+ locale = "gn";
+ arch = "linux-x86_64";
+ sha256 = "ad707ad91336de1c0d1f26fddebb95d25a8ff405bc3d576660ad9be0f5643939";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/gu-IN/firefox-84.0b4.tar.bz2";
+ locale = "gu-IN";
+ arch = "linux-x86_64";
+ sha256 = "585c76f373ef5c3f3b86a6cef4dfcdbffe3e314ba737a3f514bcd871140e5aaf";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/he/firefox-84.0b4.tar.bz2";
+ locale = "he";
+ arch = "linux-x86_64";
+ sha256 = "8f9ed5eb32fe9272f5adc22753997292cd2dab7b1368864b4f001eb0fffd7526";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/hi-IN/firefox-84.0b4.tar.bz2";
+ locale = "hi-IN";
+ arch = "linux-x86_64";
+ sha256 = "22d8b3d494f3b0dc5e347c0fedd5ab2ba32690c02993bd2a9066a987bb87aea8";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/hr/firefox-84.0b4.tar.bz2";
+ locale = "hr";
+ arch = "linux-x86_64";
+ sha256 = "c3a70593633985fcc8974364db75f2998e450359d4a8b621f23e95df24cf8e6b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/hsb/firefox-84.0b4.tar.bz2";
+ locale = "hsb";
+ arch = "linux-x86_64";
+ sha256 = "30701d1b25536a45a6a5613cbff8ac83bdec08d6421f1e37d9f0ae9c39ab6856";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/hu/firefox-84.0b4.tar.bz2";
+ locale = "hu";
+ arch = "linux-x86_64";
+ sha256 = "bcb63dc6211b5c24536062ed6f8a424edf0ad553187b298874d97f75d363b1ea";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/hy-AM/firefox-84.0b4.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-x86_64";
+ sha256 = "0278018d35f7be3e4c8da080bcd86e2bf08a544bfd452136483d2b21f91c582e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ia/firefox-84.0b4.tar.bz2";
+ locale = "ia";
+ arch = "linux-x86_64";
+ sha256 = "d5699f8b946bc551fea78389cc6e82a9ca58ca3a8a492cbe3b985ed655fd60d1";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/id/firefox-84.0b4.tar.bz2";
+ locale = "id";
+ arch = "linux-x86_64";
+ sha256 = "1e2c580382192e88094738a01bc99b7efda5a1010e1bb180e35b5701f03aef55";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/is/firefox-84.0b4.tar.bz2";
+ locale = "is";
+ arch = "linux-x86_64";
+ sha256 = "a541657165e18212f97261b2aba391434246688451cc9f2b643a57891dc0eb1a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/it/firefox-84.0b4.tar.bz2";
+ locale = "it";
+ arch = "linux-x86_64";
+ sha256 = "5ecf7a03bc8e8d6329db2bca4296cf0d07b943ec9c9e0cbb2ffdaa4ecffcdf3a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ja/firefox-84.0b4.tar.bz2";
+ locale = "ja";
+ arch = "linux-x86_64";
+ sha256 = "80d6148dbfa8e95e5292699b5326171f6a44eaa30dc4c84b233191a8505a248b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ka/firefox-84.0b4.tar.bz2";
+ locale = "ka";
+ arch = "linux-x86_64";
+ sha256 = "9f15ef55fab16e0086466e696f35dc3107451c2b9ccab9452901cf66723bf688";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/kab/firefox-84.0b4.tar.bz2";
+ locale = "kab";
+ arch = "linux-x86_64";
+ sha256 = "762be8a3bee38ea5b939611b4fbc9fd5bfe71e80b685cb0a8937373aa19f94d6";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/kk/firefox-84.0b4.tar.bz2";
+ locale = "kk";
+ arch = "linux-x86_64";
+ sha256 = "65196c278a5a70c76315546465915626ed0c5f395af4ed1aed0ab2f27846aac4";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/km/firefox-84.0b4.tar.bz2";
+ locale = "km";
+ arch = "linux-x86_64";
+ sha256 = "530010cb0d3393e47324c032d048a377ac5c9da16e73888db026f6cec61c3533";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/kn/firefox-84.0b4.tar.bz2";
+ locale = "kn";
+ arch = "linux-x86_64";
+ sha256 = "5233a8714e24a915404b3139aa3496812a4203b866cf4d870b013b940eba41ec";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ko/firefox-84.0b4.tar.bz2";
+ locale = "ko";
+ arch = "linux-x86_64";
+ sha256 = "5dfe6629926804ed0820d472e19e51223565b011dee3feb722a81faa58043744";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/lij/firefox-84.0b4.tar.bz2";
+ locale = "lij";
+ arch = "linux-x86_64";
+ sha256 = "4bb4bd94ac7aa845a062c366ea47871293f7b5281a460d3547fc321b6430a3ec";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/lt/firefox-84.0b4.tar.bz2";
+ locale = "lt";
+ arch = "linux-x86_64";
+ sha256 = "162d3705cbb8ef0b8036520d59e17eefd8e94bf27b9c1df027e9c0b26b3ebcca";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/lv/firefox-84.0b4.tar.bz2";
+ locale = "lv";
+ arch = "linux-x86_64";
+ sha256 = "7498cb5bad8ccde4a82e2acf49e899a652086de5c2e0a63f833d5342e83bfa48";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/mk/firefox-84.0b4.tar.bz2";
+ locale = "mk";
+ arch = "linux-x86_64";
+ sha256 = "88ffd9ffb56000b42d3878654b6be2413189b93881d29809c5cfcbcd740349db";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/mr/firefox-84.0b4.tar.bz2";
+ locale = "mr";
+ arch = "linux-x86_64";
+ sha256 = "cac6e4ea74b146d07afa79e85746d9678e6407c733a38367ed36e94821cc2f4a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ms/firefox-84.0b4.tar.bz2";
+ locale = "ms";
+ arch = "linux-x86_64";
+ sha256 = "7e5eaf47c232fd25fb5c1e2de9d81351cfcf33c88c696a193219b0ff86a3c29f";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/my/firefox-84.0b4.tar.bz2";
+ locale = "my";
+ arch = "linux-x86_64";
+ sha256 = "20b1756847b2cbfc98153ac0d9a646f129b83f5c1383067d7547e9c70409abfc";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/nb-NO/firefox-84.0b4.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-x86_64";
+ sha256 = "ac71d2e5520acaa352eba1f26576dc101b7b3a64971b36acbbfe7151b47e1344";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ne-NP/firefox-84.0b4.tar.bz2";
+ locale = "ne-NP";
+ arch = "linux-x86_64";
+ sha256 = "90ff28f5e3ed56f5472e524f37288bad57045dc5491bc84f5e76f33d1d2cb046";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/nl/firefox-84.0b4.tar.bz2";
+ locale = "nl";
+ arch = "linux-x86_64";
+ sha256 = "267c1d406006feae8bc350bcb58b4f73cc2403682c5786bb500bcafca4aa1ae9";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/nn-NO/firefox-84.0b4.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-x86_64";
+ sha256 = "815e84bf8acb3cec68dd7fc06d7849240f71e73cd710538b9f8a887df73f98da";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/oc/firefox-84.0b4.tar.bz2";
+ locale = "oc";
+ arch = "linux-x86_64";
+ sha256 = "14717ad07784d231333584150f04118d22a8616fec76aab800d3208c514904fb";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/pa-IN/firefox-84.0b4.tar.bz2";
+ locale = "pa-IN";
+ arch = "linux-x86_64";
+ sha256 = "1c1470816615bb292f51cfd1a52002b5f2ed4444be41a3521ef1a40b4e64b2b4";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/pl/firefox-84.0b4.tar.bz2";
+ locale = "pl";
+ arch = "linux-x86_64";
+ sha256 = "872a505769aff03597c71de66121fd007559c3f1cbb22c67661930de6e193634";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/pt-BR/firefox-84.0b4.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-x86_64";
+ sha256 = "d0ef34afb32b0f6d1c266b99ea0f4a9015934112524eee0cadc66faa6898ae27";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/pt-PT/firefox-84.0b4.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-x86_64";
+ sha256 = "e0b17a97217c799e4e0067e91374e63a6a99df827442d0193fcf47320af8a737";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/rm/firefox-84.0b4.tar.bz2";
+ locale = "rm";
+ arch = "linux-x86_64";
+ sha256 = "0c031b6ae10918e65274f5ce95fd03d68011e36ab626e03ad9484ff40b36bc7e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ro/firefox-84.0b4.tar.bz2";
+ locale = "ro";
+ arch = "linux-x86_64";
+ sha256 = "256b81200a5b92763d368b9c5d6f29e191aa4f11b097de1773bc5557d748c3ea";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ru/firefox-84.0b4.tar.bz2";
+ locale = "ru";
+ arch = "linux-x86_64";
+ sha256 = "734b7d94b896554d5fedfd94a84c827ad6737808cd1f7b5b13be20702d46315b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/si/firefox-84.0b4.tar.bz2";
+ locale = "si";
+ arch = "linux-x86_64";
+ sha256 = "d2c9fee5e64b8063c834610c2671f9c3fa49a5e02fc7e3482890b534aeb66a7a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/sk/firefox-84.0b4.tar.bz2";
+ locale = "sk";
+ arch = "linux-x86_64";
+ sha256 = "edcdf2a8a00e0402992862e28efb33614b9f1a4cdfed16316c5d4bbc229b298f";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/sl/firefox-84.0b4.tar.bz2";
+ locale = "sl";
+ arch = "linux-x86_64";
+ sha256 = "d097a61adf0908041cb3cce76758f6da274cd7b3a006163b004f70e869947021";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/son/firefox-84.0b4.tar.bz2";
+ locale = "son";
+ arch = "linux-x86_64";
+ sha256 = "d60731c5976825f0566502f6211d8e22388ec9d02bd122272f70a0830297e1fe";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/sq/firefox-84.0b4.tar.bz2";
+ locale = "sq";
+ arch = "linux-x86_64";
+ sha256 = "5dffa799eec3baf2e55d7b690cf73c2b190e369bff32dd1800020c0fdf912c9d";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/sr/firefox-84.0b4.tar.bz2";
+ locale = "sr";
+ arch = "linux-x86_64";
+ sha256 = "abb5779af704c926ca90bd9b9a01eb8de1b1b4feae658d5911bc523739eda0d3";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/sv-SE/firefox-84.0b4.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-x86_64";
+ sha256 = "2a228577a4d6c11a433b8c0340558aa638de175474491428b05509019920f8e1";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ta/firefox-84.0b4.tar.bz2";
+ locale = "ta";
+ arch = "linux-x86_64";
+ sha256 = "82f0bec91719e7b2a355c9b0398b924ce4cf429bb11e99d566af9836f5087acb";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/te/firefox-84.0b4.tar.bz2";
+ locale = "te";
+ arch = "linux-x86_64";
+ sha256 = "9e581d2dc107c385142c3bbb5476e3bd94e700cd8f9e36ead46d284d5708e9c2";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/th/firefox-84.0b4.tar.bz2";
+ locale = "th";
+ arch = "linux-x86_64";
+ sha256 = "096ce747a12c0b773d34517efce6aa4aaaf09385c5cf088046f7217639a7ce9e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/tl/firefox-84.0b4.tar.bz2";
+ locale = "tl";
+ arch = "linux-x86_64";
+ sha256 = "3fc48cd9839ba88f246fb04fe34cc5760aa9e40c8fb782ea57347e32d66030f0";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/tr/firefox-84.0b4.tar.bz2";
+ locale = "tr";
+ arch = "linux-x86_64";
+ sha256 = "087c629e5aea8fc698cbc5608c270a7099607b34c5852b3b3f4091af3b7c789f";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/trs/firefox-84.0b4.tar.bz2";
+ locale = "trs";
+ arch = "linux-x86_64";
+ sha256 = "4df467d46c5830a3d96f87294c3dfddcc397b73a372ba566900123f7ab86a6ee";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/uk/firefox-84.0b4.tar.bz2";
+ locale = "uk";
+ arch = "linux-x86_64";
+ sha256 = "11090c8aa00533c456ce96cbb09691c816fa2f98ac421cf581c86bd2bef5f296";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/ur/firefox-84.0b4.tar.bz2";
+ locale = "ur";
+ arch = "linux-x86_64";
+ sha256 = "8e7a5cc3606dc6cf71de328863a9107c36024001a381baf00daab11bebb857d7";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/uz/firefox-84.0b4.tar.bz2";
+ locale = "uz";
+ arch = "linux-x86_64";
+ sha256 = "bb1846dd3b7bcf3b657d64bbd215301565dafee00eae96cee15fc71b40f49877";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/vi/firefox-84.0b4.tar.bz2";
+ locale = "vi";
+ arch = "linux-x86_64";
+ sha256 = "375805742481f8f33adccbdc7e10f21ef0b1a0ab383c379e4dc13718c3f8fbf8";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/xh/firefox-84.0b4.tar.bz2";
+ locale = "xh";
+ arch = "linux-x86_64";
+ sha256 = "a8ce0836980441d1248f8bbd2e4bbc7a8269afe9bf8e3125bd9f4dd3acd06d7a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/zh-CN/firefox-84.0b4.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-x86_64";
+ sha256 = "8f491d8d1f61bf4a7f036efc047462bb04cf953e2a3a39cb5a326e49ed7a880e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-x86_64/zh-TW/firefox-84.0b4.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-x86_64";
+ sha256 = "dc5a8ca6f8a3f40060d0d2abaf694a066960cbfea355678ac583c3977b37cbed";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ach/firefox-84.0b4.tar.bz2";
+ locale = "ach";
+ arch = "linux-i686";
+ sha256 = "f5b5a500581e52dfe5192135cfa06bf283ff23ca0b1b569db1f1bdcd359ad0b4";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/af/firefox-84.0b4.tar.bz2";
+ locale = "af";
+ arch = "linux-i686";
+ sha256 = "f96a13006c272edf5f60d6c04011e48729b5078fbde2238a0e5c422eb1293372";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/an/firefox-84.0b4.tar.bz2";
+ locale = "an";
+ arch = "linux-i686";
+ sha256 = "0bdbd429a512499dcd920ae695b61347196527ab30c601e1645385f3cdaff4ac";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ar/firefox-84.0b4.tar.bz2";
+ locale = "ar";
+ arch = "linux-i686";
+ sha256 = "e0b6addd1b699c228aa353af879bbd263d1bd0e17aa033754abe864348adfc9a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ast/firefox-84.0b4.tar.bz2";
+ locale = "ast";
+ arch = "linux-i686";
+ sha256 = "3ffbc1b67d9cae58c2b21227e6456d9e6ca8a387cdbe8b5bbae9b1db553a34b4";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/az/firefox-84.0b4.tar.bz2";
+ locale = "az";
+ arch = "linux-i686";
+ sha256 = "36c9ad3b07b6e032b38486e1d2a7a6b85b85dc84d8d0b9218fbd4c4a71e59e70";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/be/firefox-84.0b4.tar.bz2";
+ locale = "be";
+ arch = "linux-i686";
+ sha256 = "2ac1811463e482205f7dd27e4f98564146f089fb423405a8c3df8d2a10e45147";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/bg/firefox-84.0b4.tar.bz2";
+ locale = "bg";
+ arch = "linux-i686";
+ sha256 = "174d0ab72bfb1a8ea811c1b77a9eb65871f68641b1703c3bbf02bad4d298460b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/bn/firefox-84.0b4.tar.bz2";
+ locale = "bn";
+ arch = "linux-i686";
+ sha256 = "e6d1b74e56690abd5c2f0d2d1dae0b9ac6d16b28daf1964ecd87138a5de9fadf";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/br/firefox-84.0b4.tar.bz2";
+ locale = "br";
+ arch = "linux-i686";
+ sha256 = "2ad97986bcdcdc2b988f1d50fef1a71d767119e03065ddc3e51ad38efc7dd351";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/bs/firefox-84.0b4.tar.bz2";
+ locale = "bs";
+ arch = "linux-i686";
+ sha256 = "71c472c8dce7174ee8139360fd5b8528cba89f73dc186bdd08ed368917b8c41d";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ca-valencia/firefox-84.0b4.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-i686";
+ sha256 = "4e5245f658f5bf6f47d40e2437841213b03b9f6d12e83766621f5b59fb258eaa";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ca/firefox-84.0b4.tar.bz2";
+ locale = "ca";
+ arch = "linux-i686";
+ sha256 = "4de924505b98c029dbba0762723a3310b3d171f18072a1a51d4f9636aaca8831";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/cak/firefox-84.0b4.tar.bz2";
+ locale = "cak";
+ arch = "linux-i686";
+ sha256 = "11fa8468ca6b3c51ed615d0375e63d85443beab66c10cbdc95fca817ada02215";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/cs/firefox-84.0b4.tar.bz2";
+ locale = "cs";
+ arch = "linux-i686";
+ sha256 = "c1bc48d54d0ea32731d4400c2b2fd817c5ed222cbe5fea20b3ee26ddeebab9d3";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/cy/firefox-84.0b4.tar.bz2";
+ locale = "cy";
+ arch = "linux-i686";
+ sha256 = "02cf2dc5bb97e9497655c53ef45dda3495f280a333c94fcc51048852bc993a53";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/da/firefox-84.0b4.tar.bz2";
+ locale = "da";
+ arch = "linux-i686";
+ sha256 = "6d36d0aa1ce447770c9a149a1df2c27731a31f5784b9f20ef536836e6e42819a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/de/firefox-84.0b4.tar.bz2";
+ locale = "de";
+ arch = "linux-i686";
+ sha256 = "49eb555372658bf827adfc07b08c8ac46a6351f0ecd0fed0ad6d5c4975553c8e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/dsb/firefox-84.0b4.tar.bz2";
+ locale = "dsb";
+ arch = "linux-i686";
+ sha256 = "1c358edc0e6248773103ab92ef0bf6103dfcbfa2945602bbd2f49153ebc7c690";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/el/firefox-84.0b4.tar.bz2";
+ locale = "el";
+ arch = "linux-i686";
+ sha256 = "a445f9806285ef0b036364a618c8d7ca226da899dfa33adbda5b2e327fe63dcb";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/en-CA/firefox-84.0b4.tar.bz2";
+ locale = "en-CA";
+ arch = "linux-i686";
+ sha256 = "6d2590c0cc0aa28a1443185aec54f84973a31e79beccd5ca5700abfd8deebe2c";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/en-GB/firefox-84.0b4.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-i686";
+ sha256 = "71c4040c1326133f18ec7a07ea021b061b0994cf92aa113b358c5c0c10ebc59b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/en-US/firefox-84.0b4.tar.bz2";
+ locale = "en-US";
+ arch = "linux-i686";
+ sha256 = "af3bcd19cd78dea23deaff0c2810282a68428eee4d45e2989c75cbce5ff97098";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/eo/firefox-84.0b4.tar.bz2";
+ locale = "eo";
+ arch = "linux-i686";
+ sha256 = "641def17e0d004f81cb176ccf70cbaa1df50fb204c3ff45a80800b76c21ed006";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/es-AR/firefox-84.0b4.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-i686";
+ sha256 = "0475e9de47c64b11470edf16f2819bfc1b1013f75ff6dd83da96bff1174db788";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/es-CL/firefox-84.0b4.tar.bz2";
+ locale = "es-CL";
+ arch = "linux-i686";
+ sha256 = "0f3c14175da4f59b745473df5f0256b582800b3c3dfabaa21e124b9ef100fc72";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/es-ES/firefox-84.0b4.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-i686";
+ sha256 = "9a33525bcb9d10a10630d4c470877c8698f6da32671cbc47450c7fa4d2cba7de";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/es-MX/firefox-84.0b4.tar.bz2";
+ locale = "es-MX";
+ arch = "linux-i686";
+ sha256 = "ba397ac159b77c9346b58e5c9e4bdffd21b5ac3fd3d4b67a2b67931916b2f830";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/et/firefox-84.0b4.tar.bz2";
+ locale = "et";
+ arch = "linux-i686";
+ sha256 = "664672b4f5f713bee16024845f16555da16f758d8db674dc5ec7f0022d2b7000";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/eu/firefox-84.0b4.tar.bz2";
+ locale = "eu";
+ arch = "linux-i686";
+ sha256 = "3230da6f19116ccf848855218df3fbace86af2d9085f4109a3006476807f464d";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/fa/firefox-84.0b4.tar.bz2";
+ locale = "fa";
+ arch = "linux-i686";
+ sha256 = "faf07d08ce391b1043d4081fc650e3ee78ca067a3a11a6e3ff87916f3ac7a557";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ff/firefox-84.0b4.tar.bz2";
+ locale = "ff";
+ arch = "linux-i686";
+ sha256 = "2c763d737cb112b77919594fe34061db5181a725cf518fc3cd9133be9bfd7cf6";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/fi/firefox-84.0b4.tar.bz2";
+ locale = "fi";
+ arch = "linux-i686";
+ sha256 = "5a631720534e03e211936255012270e04918461112411e787ea02f138087c6b1";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/fr/firefox-84.0b4.tar.bz2";
+ locale = "fr";
+ arch = "linux-i686";
+ sha256 = "2b86ce004a5c42fd6f5cdda28439263357ce5428b6469440046ce6fe4d6157c2";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/fy-NL/firefox-84.0b4.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-i686";
+ sha256 = "e0e81fb1494d86abdcab4cc9feb0f789ab304172c67da013f0a09ab2c2e3e676";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ga-IE/firefox-84.0b4.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-i686";
+ sha256 = "ffcf120a36f7268ab2ae03fb1eb6d458fb63b00d41198bf7997290c28997205b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/gd/firefox-84.0b4.tar.bz2";
+ locale = "gd";
+ arch = "linux-i686";
+ sha256 = "a99d3471da7fa2e985fc562a4abe086de9096d2461a50841ad5c8e5d2891bf8b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/gl/firefox-84.0b4.tar.bz2";
+ locale = "gl";
+ arch = "linux-i686";
+ sha256 = "01412502c872561564e1dac95b12d27295be5c411d2bb1ebbd53cfb4dbadee3a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/gn/firefox-84.0b4.tar.bz2";
+ locale = "gn";
+ arch = "linux-i686";
+ sha256 = "a73ee3448bb7888acec856e3e3369e28f5fbb9c5d203892e4992f73b319fa394";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/gu-IN/firefox-84.0b4.tar.bz2";
+ locale = "gu-IN";
+ arch = "linux-i686";
+ sha256 = "3b7904059b38eea27b7901de41be029ea8ec23c3d2a8bbe8941d8852c55cfb97";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/he/firefox-84.0b4.tar.bz2";
+ locale = "he";
+ arch = "linux-i686";
+ sha256 = "0bf4d3aa4f217e12b1f204bdb189625c6daae24cf5253bf4b1cd6288f2717873";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/hi-IN/firefox-84.0b4.tar.bz2";
+ locale = "hi-IN";
+ arch = "linux-i686";
+ sha256 = "4f95852212b0b08aa420c88e2ec7825913e3e82c1d2891fffdb11a8583bf46b8";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/hr/firefox-84.0b4.tar.bz2";
+ locale = "hr";
+ arch = "linux-i686";
+ sha256 = "e30d3274103e39241e233aee994b5b8c2b39dbd190ffa1a9da99f8494ae833b1";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/hsb/firefox-84.0b4.tar.bz2";
+ locale = "hsb";
+ arch = "linux-i686";
+ sha256 = "f401baba947e64ef4ef02cc5137c8623a99967ec8597e4e5c8987382dbc505a4";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/hu/firefox-84.0b4.tar.bz2";
+ locale = "hu";
+ arch = "linux-i686";
+ sha256 = "70ac5b24deabcaf0b250575a0454a35e127cf15023a3546ae41c01942c64c59b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/hy-AM/firefox-84.0b4.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-i686";
+ sha256 = "9dfa8b99f67ce66625e0c89c37f4ee36b23421ca89d4445deb5dc82eb0eb05a7";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ia/firefox-84.0b4.tar.bz2";
+ locale = "ia";
+ arch = "linux-i686";
+ sha256 = "4445dc874962b72f7d9096cb46ff98987b56d9c2d3e0acd814fc8c59261363b2";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/id/firefox-84.0b4.tar.bz2";
+ locale = "id";
+ arch = "linux-i686";
+ sha256 = "16c6550910555ddfc395b0c9626dd6e41a4bc9bd4a8ddbfb2867faa991cd4ae4";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/is/firefox-84.0b4.tar.bz2";
+ locale = "is";
+ arch = "linux-i686";
+ sha256 = "1c208c0b99cd008d67e8c9c1d118f7b2c8c354b4dcf740554fc2474ff93b8a7c";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/it/firefox-84.0b4.tar.bz2";
+ locale = "it";
+ arch = "linux-i686";
+ sha256 = "cac410ba1679d27565d63d3a70920d3ff262b6171dfe732c3ec7ee88d3386b14";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ja/firefox-84.0b4.tar.bz2";
+ locale = "ja";
+ arch = "linux-i686";
+ sha256 = "0b8c20ac0a4394c8c4a106e65d83718f639453e10c54906da04f4da536a218e4";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ka/firefox-84.0b4.tar.bz2";
+ locale = "ka";
+ arch = "linux-i686";
+ sha256 = "978aad2d0855ed8e364faf4a0522d7271bbd134c699da515db7e5c58dca79d49";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/kab/firefox-84.0b4.tar.bz2";
+ locale = "kab";
+ arch = "linux-i686";
+ sha256 = "f32b2f9cd504a6d4d5b5d2ce47368cad4317cb1249dbd7d925d0c48098fba8be";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/kk/firefox-84.0b4.tar.bz2";
+ locale = "kk";
+ arch = "linux-i686";
+ sha256 = "38e2fef40b71d50b85be7a2d2c44bc0b0bc569410782119fbe07aba00c8193f7";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/km/firefox-84.0b4.tar.bz2";
+ locale = "km";
+ arch = "linux-i686";
+ sha256 = "c8a617eeaba39e138676c8412594329b00d372c40a0401a77e5bf974a407a3b1";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/kn/firefox-84.0b4.tar.bz2";
+ locale = "kn";
+ arch = "linux-i686";
+ sha256 = "d1f19e2edfd1ee97b13b8e42c22f1409174c8fb4b024612d27cbb3ab9586ca1d";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ko/firefox-84.0b4.tar.bz2";
+ locale = "ko";
+ arch = "linux-i686";
+ sha256 = "8e1f68d6bf97644616e8d8a39443061fe99df088b42e5218beb823d8cd18b8e6";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/lij/firefox-84.0b4.tar.bz2";
+ locale = "lij";
+ arch = "linux-i686";
+ sha256 = "ba22770bc65b0033f424ce30df69a7d21a728245230696b412baf44aa9a111a9";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/lt/firefox-84.0b4.tar.bz2";
+ locale = "lt";
+ arch = "linux-i686";
+ sha256 = "27ab65ac4ee08e2714ca7c493a4575352df4a06532773197a2bb3da86e9a18c9";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/lv/firefox-84.0b4.tar.bz2";
+ locale = "lv";
+ arch = "linux-i686";
+ sha256 = "4a8f6944d9b6134d664e08eb404e130a218497b4957437b56e4487a8bc205ca5";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/mk/firefox-84.0b4.tar.bz2";
+ locale = "mk";
+ arch = "linux-i686";
+ sha256 = "885893b0a9ef75cd623f21c720aee07357ff3b4b21ccfbe456fc11928ef7037f";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/mr/firefox-84.0b4.tar.bz2";
+ locale = "mr";
+ arch = "linux-i686";
+ sha256 = "55aa8e1e4b61eb3b9a26fe9abafa804e7b6d34ac1f36efadf10ee13d2cd934a6";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ms/firefox-84.0b4.tar.bz2";
+ locale = "ms";
+ arch = "linux-i686";
+ sha256 = "61412fde864addb40fa2d0ab42f30cb9a7e1887cd130ab59880763d675b6f7fd";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/my/firefox-84.0b4.tar.bz2";
+ locale = "my";
+ arch = "linux-i686";
+ sha256 = "cd7190acda6e20c22edcb99c88c15e87b4676b2dba7de0578d2ab32a22b2bc1b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/nb-NO/firefox-84.0b4.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-i686";
+ sha256 = "97f16d919eb8321c71864daba7accfcd9bd86d4948bc86df44fa86a52649ad8e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ne-NP/firefox-84.0b4.tar.bz2";
+ locale = "ne-NP";
+ arch = "linux-i686";
+ sha256 = "4ebbdfb4c75621a24b52853c3d94e178decfe3bcaaa1f8f92f42bf91eedd874f";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/nl/firefox-84.0b4.tar.bz2";
+ locale = "nl";
+ arch = "linux-i686";
+ sha256 = "4b14585bb554bc346565a69b6a4c10580345923f8e4dbda8b202e6b9e8cf1452";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/nn-NO/firefox-84.0b4.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-i686";
+ sha256 = "408f34fb48fe1fa93850857118fc4ed972139e273ed2521cd9f7169f8d4148cc";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/oc/firefox-84.0b4.tar.bz2";
+ locale = "oc";
+ arch = "linux-i686";
+ sha256 = "0f7e1e4df86a931152206159a9f4e99b4241377c5545fb343eff86cd21869bec";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/pa-IN/firefox-84.0b4.tar.bz2";
+ locale = "pa-IN";
+ arch = "linux-i686";
+ sha256 = "c7f85ae2c46585cab0aed8c41117ffd686fe0dac6e0ba64eb41bc22d4b8f01c9";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/pl/firefox-84.0b4.tar.bz2";
+ locale = "pl";
+ arch = "linux-i686";
+ sha256 = "2669e61a0d7da09684230c67c6d43091b3b51e12f291259a62c72ce124fa4c3c";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/pt-BR/firefox-84.0b4.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-i686";
+ sha256 = "10ac3662c49611f73fb96a13ef464c27b4ce08c25f0f44e253e6e5ce2239a45c";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/pt-PT/firefox-84.0b4.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-i686";
+ sha256 = "a6e606c6d4ca032653b46966c0b90e001474907424f4fef46669e2363ffb89f1";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/rm/firefox-84.0b4.tar.bz2";
+ locale = "rm";
+ arch = "linux-i686";
+ sha256 = "a8a8ee42020f62b38c125002ff6b5ad975d1a24df4e64f354f58fd949517e3c0";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ro/firefox-84.0b4.tar.bz2";
+ locale = "ro";
+ arch = "linux-i686";
+ sha256 = "f405c06f8041e4c90caed14e7d6fac38467976fd71a214f06eab8c2113c386c0";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ru/firefox-84.0b4.tar.bz2";
+ locale = "ru";
+ arch = "linux-i686";
+ sha256 = "acd2c0812a24b301aafb1278246495b07e346fbd9cd699da406b988dc3d393ee";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/si/firefox-84.0b4.tar.bz2";
+ locale = "si";
+ arch = "linux-i686";
+ sha256 = "d444818f1e76a01a1170209497349331175ab9a761c27b31ddb89ff4d542ab9e";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/sk/firefox-84.0b4.tar.bz2";
+ locale = "sk";
+ arch = "linux-i686";
+ sha256 = "f2f3c9c4888f0055c10d1aae6cb1c40cc7f4d2bd1653e846768326e11b6ef2c6";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/sl/firefox-84.0b4.tar.bz2";
+ locale = "sl";
+ arch = "linux-i686";
+ sha256 = "aeff79d992488895e47d3682d6b3661cfd1a86d39aff8c91313f057838075068";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/son/firefox-84.0b4.tar.bz2";
+ locale = "son";
+ arch = "linux-i686";
+ sha256 = "860900ac8f3fde5511a294a4f41e553d4853c4592d4446441399fda78a91898a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/sq/firefox-84.0b4.tar.bz2";
+ locale = "sq";
+ arch = "linux-i686";
+ sha256 = "9122e1837c732b8cf242f211937b3fc445b6a48da3db01cbaa4a0d00117848a8";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/sr/firefox-84.0b4.tar.bz2";
+ locale = "sr";
+ arch = "linux-i686";
+ sha256 = "a3c15061deb11e870d83138bf65beb5a838cc3ba96d067d3e72f816f818da3c5";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/sv-SE/firefox-84.0b4.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-i686";
+ sha256 = "cb3d2dcf7d80501a8fa38c50d0301af9562050bc64250cc1c6208467990795d6";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ta/firefox-84.0b4.tar.bz2";
+ locale = "ta";
+ arch = "linux-i686";
+ sha256 = "4ece8a45e79aae6e535d56370f8890c5d3045d0ca78bec67fe848367e518339a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/te/firefox-84.0b4.tar.bz2";
+ locale = "te";
+ arch = "linux-i686";
+ sha256 = "70996e39e5b38f7def90f1eadbdbb294992e4ad27a49d4941b3982a0d3f8421b";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/th/firefox-84.0b4.tar.bz2";
+ locale = "th";
+ arch = "linux-i686";
+ sha256 = "36720f87e8b3ee23f15ff48514931747d05638194e9b13b30017e601b8a5c905";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/tl/firefox-84.0b4.tar.bz2";
+ locale = "tl";
+ arch = "linux-i686";
+ sha256 = "d433a22f97bcb69570933b1f371c248ebd2eb83a217bcc1989897c08175cbcd0";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/tr/firefox-84.0b4.tar.bz2";
+ locale = "tr";
+ arch = "linux-i686";
+ sha256 = "0787dd09f287aab492610d2ce23d0be7bc3a2158e84d7e94345358a750ddb752";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/trs/firefox-84.0b4.tar.bz2";
+ locale = "trs";
+ arch = "linux-i686";
+ sha256 = "4d3bd35ed7c43eb502f482bb60da0dbf14714b35e2996362c835a0a35008308a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/uk/firefox-84.0b4.tar.bz2";
+ locale = "uk";
+ arch = "linux-i686";
+ sha256 = "8e1c371acd0bd1762c715c8e36dbc8df104351cbb3c37fab64c72b55bc98f006";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/ur/firefox-84.0b4.tar.bz2";
+ locale = "ur";
+ arch = "linux-i686";
+ sha256 = "14b6149229f49406755a5ee308e0e120964595a1f9a7f2f7e9cc2979a5cf561a";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/uz/firefox-84.0b4.tar.bz2";
+ locale = "uz";
+ arch = "linux-i686";
+ sha256 = "a8adf840548ac5974654234956957b8e53f3e36c83cfad4fa5c840c16e9e4d5c";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/vi/firefox-84.0b4.tar.bz2";
+ locale = "vi";
+ arch = "linux-i686";
+ sha256 = "fc9b023caaabb3a5a18a21a2d65195a7dc7b2655a5d9a1f4c75434cb1f02e4da";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/xh/firefox-84.0b4.tar.bz2";
+ locale = "xh";
+ arch = "linux-i686";
+ sha256 = "940b4e34e92a0efa397d3944fb6b8c5afea57f29355c9f9621accb557efd9860";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/zh-CN/firefox-84.0b4.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-i686";
+ sha256 = "b1284ea7ec8e42c6139249b1958380e672dd19e7b8c21d95e256e0d3265bd095";
+ }
+ { url = "http://archive.mozilla.org/pub/devedition/releases/84.0b4/linux-i686/zh-TW/firefox-84.0b4.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-i686";
+ sha256 = "ac76d109c7817b9c06356918860216a3e2f4f776a31a8690064593ffc43139d9";
+ }
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/mozilla.asc b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/mozilla.asc
new file mode 100644
index 000000000000..dc58eb8d56ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/mozilla.asc
Binary files differ
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
new file mode 100644
index 000000000000..431ed105f0dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -0,0 +1,965 @@
+{
+ version = "83.0";
+ sources = [
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ach/firefox-83.0.tar.bz2";
+ locale = "ach";
+ arch = "linux-x86_64";
+ sha256 = "cea6ad61bd402e6c84a81a3f504f1b9292079c9d48d2353b51db4f03a8837fb6";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/af/firefox-83.0.tar.bz2";
+ locale = "af";
+ arch = "linux-x86_64";
+ sha256 = "d4bd0a9579f38d53f559412cc3cc04f11871ba22c81eee54dd9ab16c56303513";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/an/firefox-83.0.tar.bz2";
+ locale = "an";
+ arch = "linux-x86_64";
+ sha256 = "10741a6921210643250013c45e9e21bc295da8e41f2bb5c5fadcd86c0e828c80";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ar/firefox-83.0.tar.bz2";
+ locale = "ar";
+ arch = "linux-x86_64";
+ sha256 = "3fd4aeef281e5aafdda572d4814e70295c018b7fae6d214c40dabcac367ace69";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ast/firefox-83.0.tar.bz2";
+ locale = "ast";
+ arch = "linux-x86_64";
+ sha256 = "237e8ff5b3fbc9d7c4095951ca014a5c26cc076305aee705ca943d81e72541dd";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/az/firefox-83.0.tar.bz2";
+ locale = "az";
+ arch = "linux-x86_64";
+ sha256 = "79ca0c798243841cc34281f917aad06c2f546a5e11b443a96e5030aefb8de9b3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/be/firefox-83.0.tar.bz2";
+ locale = "be";
+ arch = "linux-x86_64";
+ sha256 = "c15b0f929b3e3c6ad5618ccf6f9f6b143f893b6f77e176b52ecc608ca3157ab8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/bg/firefox-83.0.tar.bz2";
+ locale = "bg";
+ arch = "linux-x86_64";
+ sha256 = "fd2094c59a057e8c35054f7d09c31699aeef927cf9688a87559a8ba69a93f600";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/bn/firefox-83.0.tar.bz2";
+ locale = "bn";
+ arch = "linux-x86_64";
+ sha256 = "c9755c408ca1a4f426f1432339020ef3d7c675d426fae9d8697cded4c7d493f4";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/br/firefox-83.0.tar.bz2";
+ locale = "br";
+ arch = "linux-x86_64";
+ sha256 = "d47b889d31b945a5b768b3bbb336fdc43d62c9cc86f13916225cbfe68a560972";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/bs/firefox-83.0.tar.bz2";
+ locale = "bs";
+ arch = "linux-x86_64";
+ sha256 = "c36da445560b989ae9cf16a1ec72cd2cae82db670f90d27abe0499f8cc025eee";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ca-valencia/firefox-83.0.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-x86_64";
+ sha256 = "ef5ee80cc0d6b1b299bc8bb6577b8e26f5de8b541530ddda231e2fafa863e6a1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ca/firefox-83.0.tar.bz2";
+ locale = "ca";
+ arch = "linux-x86_64";
+ sha256 = "7c349aa7406899835bc9e70893f28c8109e17ee9ef018e7a723085117f8dd32f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/cak/firefox-83.0.tar.bz2";
+ locale = "cak";
+ arch = "linux-x86_64";
+ sha256 = "3e7aabe665ce423bd47e7d0474039d7bfeb9958849c18e98c37f28def5fae1aa";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/cs/firefox-83.0.tar.bz2";
+ locale = "cs";
+ arch = "linux-x86_64";
+ sha256 = "97d5e4c255fc87430751c81edc62186e1b4ec901ccf17bfdad7a8ef918077bc1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/cy/firefox-83.0.tar.bz2";
+ locale = "cy";
+ arch = "linux-x86_64";
+ sha256 = "c1856b51dedc5788b40671faee8f8cb996108eb514d1263de998043377f2f7c2";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/da/firefox-83.0.tar.bz2";
+ locale = "da";
+ arch = "linux-x86_64";
+ sha256 = "990da1f47d04ec9200d41fa401b23d9607a8e4c11d7cc78989e81785b9633cb0";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/de/firefox-83.0.tar.bz2";
+ locale = "de";
+ arch = "linux-x86_64";
+ sha256 = "94ad875d88a18f24ae38f20b324d074a367969368e660ea2b4b0645e31300c94";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/dsb/firefox-83.0.tar.bz2";
+ locale = "dsb";
+ arch = "linux-x86_64";
+ sha256 = "c3edd46c44bae1b00803e587e6f52560b28ddc2fc935c1fe62714bf16fa72d80";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/el/firefox-83.0.tar.bz2";
+ locale = "el";
+ arch = "linux-x86_64";
+ sha256 = "3572a260ec17f76631ca627747ed53d1911ee1180d3e574051b3baf0afd9dcd1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/en-CA/firefox-83.0.tar.bz2";
+ locale = "en-CA";
+ arch = "linux-x86_64";
+ sha256 = "e3c9363e8b93c625234624ac5c3ab0274055c5b8f4f854da955409b9bdf28d52";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/en-GB/firefox-83.0.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-x86_64";
+ sha256 = "240a732c034bf2ac286cefc33b02b56df205c4e175457cd84adb7666418e0be4";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/en-US/firefox-83.0.tar.bz2";
+ locale = "en-US";
+ arch = "linux-x86_64";
+ sha256 = "93ff827fdcba92ddb71851c46ac8192a727ed61402e896c6262943e382f92412";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/eo/firefox-83.0.tar.bz2";
+ locale = "eo";
+ arch = "linux-x86_64";
+ sha256 = "456933a6c1fb1e6ad5b2217a7e3730bd54ff037d3d718414b2c92557fea3659d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/es-AR/firefox-83.0.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-x86_64";
+ sha256 = "040e8a4a74b8bc77e1d485c3376690f4c5ba85015b360f679ceacd848b0ca574";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/es-CL/firefox-83.0.tar.bz2";
+ locale = "es-CL";
+ arch = "linux-x86_64";
+ sha256 = "80e8189ce09c736af1d9927d4943e08e30bc70e9aa7e116f150f14c0dab3fb15";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/es-ES/firefox-83.0.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-x86_64";
+ sha256 = "f48489abac5358a10d8ed36b77398493b6a9189a8327bf61bec6ceaca51ab696";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/es-MX/firefox-83.0.tar.bz2";
+ locale = "es-MX";
+ arch = "linux-x86_64";
+ sha256 = "0d4805b30f05fb8a65b81a42337a8a3732c7664b322557e844929d2b049d0111";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/et/firefox-83.0.tar.bz2";
+ locale = "et";
+ arch = "linux-x86_64";
+ sha256 = "eb4a463b9271fdde45bddad28ce871953739b55126ae5613963a69a319908fb2";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/eu/firefox-83.0.tar.bz2";
+ locale = "eu";
+ arch = "linux-x86_64";
+ sha256 = "3a662c575554d3a542e65950352c527cc51e82ae7a8f9d7ca1b69e30a683731e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/fa/firefox-83.0.tar.bz2";
+ locale = "fa";
+ arch = "linux-x86_64";
+ sha256 = "b5ad3a5d39674d60b6e97cd656c77d7d2fb90943a66a590a29e4d42ec1e18c42";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ff/firefox-83.0.tar.bz2";
+ locale = "ff";
+ arch = "linux-x86_64";
+ sha256 = "2db83d638474186f52fde5fe1ee25201e84b198e44397074203d7ce50e23e74c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/fi/firefox-83.0.tar.bz2";
+ locale = "fi";
+ arch = "linux-x86_64";
+ sha256 = "98bd9c50b5db43bf5fcdc829aa295975d3ec106bbc598fda3d7f26679c0ba08c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/fr/firefox-83.0.tar.bz2";
+ locale = "fr";
+ arch = "linux-x86_64";
+ sha256 = "ab3427f5cf7cc88d5108b8be21806197420bd775f33d3f2dc983f0f4dec44d5b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/fy-NL/firefox-83.0.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-x86_64";
+ sha256 = "9f21d91d1529a05a2da7ba29cc8e875b23ffb4b453077b5e899133cf31813397";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ga-IE/firefox-83.0.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-x86_64";
+ sha256 = "4c22b166cccede0bcea4e75f826e100dfa4f2def01f904fbffcef789d2d61695";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/gd/firefox-83.0.tar.bz2";
+ locale = "gd";
+ arch = "linux-x86_64";
+ sha256 = "6ca04d381205121dc695dff78ff646499a21976ae64c110763845eda0598b414";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/gl/firefox-83.0.tar.bz2";
+ locale = "gl";
+ arch = "linux-x86_64";
+ sha256 = "d08f4ea821af5e38c21364037c17b8c97c775d60f0697eb0817dcfc7c6d4c7dd";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/gn/firefox-83.0.tar.bz2";
+ locale = "gn";
+ arch = "linux-x86_64";
+ sha256 = "90a8b2fdf1d3471311671761e81637d6771a61744eb480c0788cf03d295c30ee";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/gu-IN/firefox-83.0.tar.bz2";
+ locale = "gu-IN";
+ arch = "linux-x86_64";
+ sha256 = "bfe65e5c9795ecdff4dc947d2e2e84d01da894b0ae55c08d73f9397c5730ce17";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/he/firefox-83.0.tar.bz2";
+ locale = "he";
+ arch = "linux-x86_64";
+ sha256 = "2dc01c5a929aa79056a66feb522d50cbbb567bc85589f8106e553c9ddfc02a7c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hi-IN/firefox-83.0.tar.bz2";
+ locale = "hi-IN";
+ arch = "linux-x86_64";
+ sha256 = "ef2a61dce3ee713a4be3cee5a9dda8498095a7db69304a7d6585ac674970958a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hr/firefox-83.0.tar.bz2";
+ locale = "hr";
+ arch = "linux-x86_64";
+ sha256 = "ab8357cc1f36965ccbd6f4298ffdbb3d77b09cc4b789a3be708d2c51468402bd";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hsb/firefox-83.0.tar.bz2";
+ locale = "hsb";
+ arch = "linux-x86_64";
+ sha256 = "6a34074a96be7911672b7e83151244f1f963a8cc8930c8d1d113afe8a49c9529";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hu/firefox-83.0.tar.bz2";
+ locale = "hu";
+ arch = "linux-x86_64";
+ sha256 = "ffec1646df872a757b771a03c00e3e6df3397e7f4af46bd1d6c0fcab242b1721";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hy-AM/firefox-83.0.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-x86_64";
+ sha256 = "1b9da538ced466302584fef4ecf415aeae5bee51a87d38bd0a6bb3ea155af66d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ia/firefox-83.0.tar.bz2";
+ locale = "ia";
+ arch = "linux-x86_64";
+ sha256 = "5f8582508155f858c7e52e623579daa7da1aa77bb4e41c2c46d3e6ae8ace6b1e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/id/firefox-83.0.tar.bz2";
+ locale = "id";
+ arch = "linux-x86_64";
+ sha256 = "e5690dcc6b933ddbd27fcfb22f8ab9fc4e4c999d935b6088da38c87af2c567d1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/is/firefox-83.0.tar.bz2";
+ locale = "is";
+ arch = "linux-x86_64";
+ sha256 = "3776fe6aad623e9b74807a48e105d1619143e78e122906360c4efbc73c2891ee";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/it/firefox-83.0.tar.bz2";
+ locale = "it";
+ arch = "linux-x86_64";
+ sha256 = "eb54c4596602150c619db6d0d5572a59f7d9c4def68a34cb874cbc6535939e2a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ja/firefox-83.0.tar.bz2";
+ locale = "ja";
+ arch = "linux-x86_64";
+ sha256 = "54b70bef0507611ad1ea7560668b46385661b5275c7a0ecaad723db44fd8af88";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ka/firefox-83.0.tar.bz2";
+ locale = "ka";
+ arch = "linux-x86_64";
+ sha256 = "56e72349133297d61dfdec4933a01c2cd8fa3d0da3d784e0598506c2db05938c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/kab/firefox-83.0.tar.bz2";
+ locale = "kab";
+ arch = "linux-x86_64";
+ sha256 = "45f554342449405990c84e910dc6436489046acd00fdc4a0ddabb4b28d7c1284";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/kk/firefox-83.0.tar.bz2";
+ locale = "kk";
+ arch = "linux-x86_64";
+ sha256 = "3463c4ea5df4e072dfca22e8983fdc016adbe2326bf186a0168ea9ee2c36b3bd";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/km/firefox-83.0.tar.bz2";
+ locale = "km";
+ arch = "linux-x86_64";
+ sha256 = "3bb7d2c3e5278d9c51b87d8140096ae01532e99160b866164d1920fb012c085c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/kn/firefox-83.0.tar.bz2";
+ locale = "kn";
+ arch = "linux-x86_64";
+ sha256 = "c9086912382dbff66045c79130403385b9f075bf782220aeb84f03f62a563638";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ko/firefox-83.0.tar.bz2";
+ locale = "ko";
+ arch = "linux-x86_64";
+ sha256 = "6f70169cd58ee1559ab224c3ea6f5309bf75267d9f315e389b7971e8e1feed09";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/lij/firefox-83.0.tar.bz2";
+ locale = "lij";
+ arch = "linux-x86_64";
+ sha256 = "0b089e6f7954f4d99e9e59bd25148c4be620f9486f8d36c3db68fec5ea700d94";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/lt/firefox-83.0.tar.bz2";
+ locale = "lt";
+ arch = "linux-x86_64";
+ sha256 = "b76c545aad6e5b66bd8ab34bf02f7d4f69ecee348381b16c271f4de0243c660d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/lv/firefox-83.0.tar.bz2";
+ locale = "lv";
+ arch = "linux-x86_64";
+ sha256 = "8504d5c00c5569f008b2e308a9193cf62130e89a6e61b33fc842081e4d504322";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/mk/firefox-83.0.tar.bz2";
+ locale = "mk";
+ arch = "linux-x86_64";
+ sha256 = "636a421f6238de1fee37014c3af147220af6a1f3c04e2ce6ec9dd17898bc7c20";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/mr/firefox-83.0.tar.bz2";
+ locale = "mr";
+ arch = "linux-x86_64";
+ sha256 = "1e00d369be11ad8bfb2dda0ceeb3b7b516fd66427d9e85bff4cc1d699ff3659f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ms/firefox-83.0.tar.bz2";
+ locale = "ms";
+ arch = "linux-x86_64";
+ sha256 = "0590f2bff7e43b9f6c081d57276299f8327df73415a8e2a2243e3c4ec9154200";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/my/firefox-83.0.tar.bz2";
+ locale = "my";
+ arch = "linux-x86_64";
+ sha256 = "ae43f0e8d4ff32274b25a1b78e0af44446ea6989edc4eb3c0d9fae36fcf80908";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/nb-NO/firefox-83.0.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-x86_64";
+ sha256 = "9c3a74fc7670e2202be1f4f75208f0113c115169ef70614af631cf16879e081f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ne-NP/firefox-83.0.tar.bz2";
+ locale = "ne-NP";
+ arch = "linux-x86_64";
+ sha256 = "d830f802cccc7351a447fc59ed64562cac1521d281ddf218c84d1c9af8a65cb3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/nl/firefox-83.0.tar.bz2";
+ locale = "nl";
+ arch = "linux-x86_64";
+ sha256 = "ecfd03850a48ebf7c3ec9400838100514826b8f35744b0167f61c9086893ae66";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/nn-NO/firefox-83.0.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-x86_64";
+ sha256 = "ad0e4a89afabf1929d441129066dfcbf532d37da31c76bc79108d123cf5cc649";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/oc/firefox-83.0.tar.bz2";
+ locale = "oc";
+ arch = "linux-x86_64";
+ sha256 = "9b9bbba334c4d7d3907f55a6647cecdf0bb2cd6294569a0008d866cd6eb70a35";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/pa-IN/firefox-83.0.tar.bz2";
+ locale = "pa-IN";
+ arch = "linux-x86_64";
+ sha256 = "083266958874618042ee8f2a6162184cd71bc725a994aeb68158d59edb0cafaa";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/pl/firefox-83.0.tar.bz2";
+ locale = "pl";
+ arch = "linux-x86_64";
+ sha256 = "cb7c72fdc91cd9269a2e53725a26ee94db0e2e608a60ff1120fbe5c1627814bf";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/pt-BR/firefox-83.0.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-x86_64";
+ sha256 = "a2a188a222fc6054ca59d24370528e8c8d4d7dc8e4ab18f71510b415dde73d05";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/pt-PT/firefox-83.0.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-x86_64";
+ sha256 = "528e1893438ead94afd4013d3c4f4f51107a5d0c4b6d6e018a0687f0d25f9e53";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/rm/firefox-83.0.tar.bz2";
+ locale = "rm";
+ arch = "linux-x86_64";
+ sha256 = "e4d6e53b642da4de5c7f30297c6fec22b37921a55cb744962dc0d60e26812549";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ro/firefox-83.0.tar.bz2";
+ locale = "ro";
+ arch = "linux-x86_64";
+ sha256 = "04ffa3eda69ea0dfc6251564c4c6bc742d5f8e5dbaf6184b4ee9461226ce5c86";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ru/firefox-83.0.tar.bz2";
+ locale = "ru";
+ arch = "linux-x86_64";
+ sha256 = "697ddeb8ec024b5459492ebd652a612cfa1911267071b230f5ea6ac78a1e3075";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/si/firefox-83.0.tar.bz2";
+ locale = "si";
+ arch = "linux-x86_64";
+ sha256 = "a3256c648ea75ce36009306a3c039af228e645ea2e54361fe239ad0cf0869ead";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sk/firefox-83.0.tar.bz2";
+ locale = "sk";
+ arch = "linux-x86_64";
+ sha256 = "1ae0f898d34c74ea427228d93646ae47990834d14bc4f5563427409dba066f8d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sl/firefox-83.0.tar.bz2";
+ locale = "sl";
+ arch = "linux-x86_64";
+ sha256 = "9e14b4ad7bd9a8026074e0a3da3d3ba74dbb1be31a2e9cae787802d090c7a965";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/son/firefox-83.0.tar.bz2";
+ locale = "son";
+ arch = "linux-x86_64";
+ sha256 = "1b928ca974133a346950ffc663fbed9d1876a4c0bca53fd807d8077d031531d5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sq/firefox-83.0.tar.bz2";
+ locale = "sq";
+ arch = "linux-x86_64";
+ sha256 = "7bb9bcfe490bf5d577e55e9b612c932c93ac58252cef592b2af39c17987e700b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sr/firefox-83.0.tar.bz2";
+ locale = "sr";
+ arch = "linux-x86_64";
+ sha256 = "90e496a5fe9c5d8c38dfcf5a1a07ea04be983fe78c68cb13a2b99067b0f02e7a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sv-SE/firefox-83.0.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-x86_64";
+ sha256 = "eab8a1e51a90d36b58901db6175e724f38afb91270b05c51a93c03f8c51fe432";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ta/firefox-83.0.tar.bz2";
+ locale = "ta";
+ arch = "linux-x86_64";
+ sha256 = "bb6d49500393d20134a6f749a77de1fc4cae2feba4e49261862f8a634b4b9276";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/te/firefox-83.0.tar.bz2";
+ locale = "te";
+ arch = "linux-x86_64";
+ sha256 = "a1104e292f949976e423b587fe9728fc741b7a11e276e7d747afd3a93abe3eb5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/th/firefox-83.0.tar.bz2";
+ locale = "th";
+ arch = "linux-x86_64";
+ sha256 = "403e4a86b5f95cb22cdb2100372c55d92fcb4708e3f719da72b643637c711458";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/tl/firefox-83.0.tar.bz2";
+ locale = "tl";
+ arch = "linux-x86_64";
+ sha256 = "993cf86a1b045a477fd4c683e503314fc2aea5a0a52f1faaacd18a0fdc5c7def";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/tr/firefox-83.0.tar.bz2";
+ locale = "tr";
+ arch = "linux-x86_64";
+ sha256 = "8e9e96d0b1a2014dc7374ea893fe72bc72f3840742d305a6e73417468dd6245b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/trs/firefox-83.0.tar.bz2";
+ locale = "trs";
+ arch = "linux-x86_64";
+ sha256 = "3590ebb4c888cf92ebd615df9eda2413fd0a3031293d68809fef74fc92fa759b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/uk/firefox-83.0.tar.bz2";
+ locale = "uk";
+ arch = "linux-x86_64";
+ sha256 = "7a3a2bae67ddd2afd2d6953f5f045a831595ea29e5cc6ad7083b8ac89e55917b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ur/firefox-83.0.tar.bz2";
+ locale = "ur";
+ arch = "linux-x86_64";
+ sha256 = "445a599ba623d8673d71f6ebde70c64a93e28e57b6859e325b0151240f1d49e5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/uz/firefox-83.0.tar.bz2";
+ locale = "uz";
+ arch = "linux-x86_64";
+ sha256 = "b63e6c1c6afdc3694ee1d2b21175f4a5603c4454e43f0a08e87ccf800862b6bc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/vi/firefox-83.0.tar.bz2";
+ locale = "vi";
+ arch = "linux-x86_64";
+ sha256 = "7127340d189ff601f96ba6f5e6a6175d850e822599e10762908d406b2174a256";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/xh/firefox-83.0.tar.bz2";
+ locale = "xh";
+ arch = "linux-x86_64";
+ sha256 = "41772e457eaf385230086a461033854ad214b4160c6f99f7eb6c4df8dd137dc5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/zh-CN/firefox-83.0.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-x86_64";
+ sha256 = "013fe88aea216fbc4de9fdaaf559d65678ba389049bcff896540dae8d0a9564d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/zh-TW/firefox-83.0.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-x86_64";
+ sha256 = "7e9eea2a326842f652aad4995f796af9550d03c034587d171e4b2a33da934645";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ach/firefox-83.0.tar.bz2";
+ locale = "ach";
+ arch = "linux-i686";
+ sha256 = "9974b19f4f15d9aa33b5432cceea05efe44f31c4123596aca9fb5cd3dd734152";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/af/firefox-83.0.tar.bz2";
+ locale = "af";
+ arch = "linux-i686";
+ sha256 = "5600ad5fad398648d2e7a2d7bdf7901769fa428f9ef9f79046917133e12a7eb6";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/an/firefox-83.0.tar.bz2";
+ locale = "an";
+ arch = "linux-i686";
+ sha256 = "d8e0843dafcaf1b010773b83a665fd593741858b60aaba61d4c308a86f765146";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ar/firefox-83.0.tar.bz2";
+ locale = "ar";
+ arch = "linux-i686";
+ sha256 = "952b2ad360662341b9281cfdd93a141fe2efd16f73baa4fc4be1de7b8f12c8c3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ast/firefox-83.0.tar.bz2";
+ locale = "ast";
+ arch = "linux-i686";
+ sha256 = "a7728b09f7e96983a031a32b1b938fa362e1a1e58722b37ec03a4048a152f0b1";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/az/firefox-83.0.tar.bz2";
+ locale = "az";
+ arch = "linux-i686";
+ sha256 = "c6019a3f7ef56583445acc5ab310770c937b44182a1bb3ed54ac452e6e19f8fc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/be/firefox-83.0.tar.bz2";
+ locale = "be";
+ arch = "linux-i686";
+ sha256 = "12ead04878e308682f04afb6ac9ce9ab134a5a542af328e029cd973c14fe7444";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/bg/firefox-83.0.tar.bz2";
+ locale = "bg";
+ arch = "linux-i686";
+ sha256 = "7134539d5c259cdf6dd316205b857acae87730ca01bd6ef2efcca75f9d06d027";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/bn/firefox-83.0.tar.bz2";
+ locale = "bn";
+ arch = "linux-i686";
+ sha256 = "a97524e0d6f6f61045b2573ac2fe98e31fa372429f5f53c25fb4cb4d32a31940";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/br/firefox-83.0.tar.bz2";
+ locale = "br";
+ arch = "linux-i686";
+ sha256 = "4619705703a6878fba4de4227d90143abb92237ba556a8c5f4a51c9701671821";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/bs/firefox-83.0.tar.bz2";
+ locale = "bs";
+ arch = "linux-i686";
+ sha256 = "2131babd061761fa1119a536ae354145315875c5d8cd300405a35924bbbfcc34";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ca-valencia/firefox-83.0.tar.bz2";
+ locale = "ca-valencia";
+ arch = "linux-i686";
+ sha256 = "73238eb95ac828f4bc2ac220e4b953b950a75b88600b457bf3bd528245574cd8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ca/firefox-83.0.tar.bz2";
+ locale = "ca";
+ arch = "linux-i686";
+ sha256 = "73e65093a587c89c9a392e3b65375ad2158c88e2905ab116eaf8da7cc5841cda";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/cak/firefox-83.0.tar.bz2";
+ locale = "cak";
+ arch = "linux-i686";
+ sha256 = "7f2dd3fdf1e0cae21a1517286b60bbbabd310dfc0dc18588fbe21ba671e97dd3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/cs/firefox-83.0.tar.bz2";
+ locale = "cs";
+ arch = "linux-i686";
+ sha256 = "5f639cc6d14b06ae62f73fc01b909182efea32710dfd817be60499f4da3eafd7";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/cy/firefox-83.0.tar.bz2";
+ locale = "cy";
+ arch = "linux-i686";
+ sha256 = "7a3e9921b2e6e407ebeeb22f1ac4b529222a1f5fbdc84c44fc902b8db6aeb1ef";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/da/firefox-83.0.tar.bz2";
+ locale = "da";
+ arch = "linux-i686";
+ sha256 = "05dc3274927f692ec3c60f8353a30e2bcb1a36b54f4ddff90407e2818a497a38";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/de/firefox-83.0.tar.bz2";
+ locale = "de";
+ arch = "linux-i686";
+ sha256 = "c95affb4655b7a0ad6959651cf10090970035c74601ea141366cbb5d44f8a526";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/dsb/firefox-83.0.tar.bz2";
+ locale = "dsb";
+ arch = "linux-i686";
+ sha256 = "c9baf7df51fdebbb2521dd10830f759110a9c92dcdb579fad99d0c4112126e66";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/el/firefox-83.0.tar.bz2";
+ locale = "el";
+ arch = "linux-i686";
+ sha256 = "52afcd2037b9cda2c66975dd184276bcccca27833cd7a6da989e32c591a06060";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/en-CA/firefox-83.0.tar.bz2";
+ locale = "en-CA";
+ arch = "linux-i686";
+ sha256 = "375d3a11f236560f06397f157209b1ce476197a0e7b327cf187dc2002d053c90";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/en-GB/firefox-83.0.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-i686";
+ sha256 = "610657a623b5680c2ea350a5f3d1ec676e9dac8720e0e67b3e627e37a58b0ad6";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/en-US/firefox-83.0.tar.bz2";
+ locale = "en-US";
+ arch = "linux-i686";
+ sha256 = "ac4df9d78ac0321f6be266e7fbf6b79d80bee7cfdf1b00c433072d2283c5fdf8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/eo/firefox-83.0.tar.bz2";
+ locale = "eo";
+ arch = "linux-i686";
+ sha256 = "f23479cb30cf27fa368e9e04591aad2051eedde5e69d105bfc9ba6168792b44b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/es-AR/firefox-83.0.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-i686";
+ sha256 = "5657636c105d301474cf5d2707733a35ac5f5687790002d5778dffb32a727adc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/es-CL/firefox-83.0.tar.bz2";
+ locale = "es-CL";
+ arch = "linux-i686";
+ sha256 = "896f2ac45b98eccd487de64b6c5aa98733d97bd4422dd1a16d02883e3a06c132";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/es-ES/firefox-83.0.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-i686";
+ sha256 = "9d337fc821dae150c4f3ce26c427ad0efa22c53f3b311b4ce7693b33c9ea4d7d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/es-MX/firefox-83.0.tar.bz2";
+ locale = "es-MX";
+ arch = "linux-i686";
+ sha256 = "f9cbd03f9813157835ef7faf9fa2374e488144930ffdec765c370a95a9c72120";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/et/firefox-83.0.tar.bz2";
+ locale = "et";
+ arch = "linux-i686";
+ sha256 = "4f33cbb67003da1b4db4dc12ee2e7b9fe942bc6e6d770608361355ce7fcf8214";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/eu/firefox-83.0.tar.bz2";
+ locale = "eu";
+ arch = "linux-i686";
+ sha256 = "31970c98d028a83a6198dcee9c5f8191343cd84ec6a7fa032a31730db2cc7b00";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/fa/firefox-83.0.tar.bz2";
+ locale = "fa";
+ arch = "linux-i686";
+ sha256 = "1125c534f2067e57701fab7ae3df55c52dc10693b069817021072c74b8b9bdcf";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ff/firefox-83.0.tar.bz2";
+ locale = "ff";
+ arch = "linux-i686";
+ sha256 = "ef6c66b0d8a6edce0c982eaee55cd14a4ac4d365478976a0c4f1cd48a6c10c6d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/fi/firefox-83.0.tar.bz2";
+ locale = "fi";
+ arch = "linux-i686";
+ sha256 = "bcd529c0227bd64403dc023ef91459556fbb186e072c12075b705d50293d86c3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/fr/firefox-83.0.tar.bz2";
+ locale = "fr";
+ arch = "linux-i686";
+ sha256 = "47c56fe2b88054d97622e9c0ff2043323b7a916da1e11541e96cf7b05c3e7d52";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/fy-NL/firefox-83.0.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-i686";
+ sha256 = "b0ed17e5022b0817d6b4f58ef990ce22774bde875151c60be1f7251ec90cb189";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ga-IE/firefox-83.0.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-i686";
+ sha256 = "380aad276cadff8221e4f675751278ba994e08ddb46a0ebde12d87b741c23263";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/gd/firefox-83.0.tar.bz2";
+ locale = "gd";
+ arch = "linux-i686";
+ sha256 = "0489ed6e1e9150a0facb4e6fb59bea7673e89669d167806d5651224b939fada5";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/gl/firefox-83.0.tar.bz2";
+ locale = "gl";
+ arch = "linux-i686";
+ sha256 = "bc41c2b611ecb4ccdedbbf480138a3bc6326106d6c1641d6a06e40f502427af0";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/gn/firefox-83.0.tar.bz2";
+ locale = "gn";
+ arch = "linux-i686";
+ sha256 = "ade8fe9ab75b0a5f75ce80ba0f8065c4b4cbf54d7772f4c3be96886ca166b373";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/gu-IN/firefox-83.0.tar.bz2";
+ locale = "gu-IN";
+ arch = "linux-i686";
+ sha256 = "bc20ad60eee0e6a3d532e436d9b62175872fcb27dab4c9a5083ed6f4bda5f036";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/he/firefox-83.0.tar.bz2";
+ locale = "he";
+ arch = "linux-i686";
+ sha256 = "a08862d8ebdfa2d6c4f038b91f264c9abe873537d1a7cd2997a1eb4d73bf6f4c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hi-IN/firefox-83.0.tar.bz2";
+ locale = "hi-IN";
+ arch = "linux-i686";
+ sha256 = "8ed5b454bdc38f07c79924a1dc08e76e65a48bd671991744a441693185683916";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hr/firefox-83.0.tar.bz2";
+ locale = "hr";
+ arch = "linux-i686";
+ sha256 = "97356a661d56d51a9210109db8ad75d61e3e00e4c7570d4e824712b52337af27";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hsb/firefox-83.0.tar.bz2";
+ locale = "hsb";
+ arch = "linux-i686";
+ sha256 = "5706aa76b23161baf24b79d2b45dd706006fb73aeedd06f41f3273f8078f371b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hu/firefox-83.0.tar.bz2";
+ locale = "hu";
+ arch = "linux-i686";
+ sha256 = "3b894beaef35012df54ba4c7509a06ece1a0cdf741308b3510ddc702c4eb3656";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hy-AM/firefox-83.0.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-i686";
+ sha256 = "b2894092de59b7d6bd6dcd2111fa4591b1a4ed054fd107e2093bd0962edb4405";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ia/firefox-83.0.tar.bz2";
+ locale = "ia";
+ arch = "linux-i686";
+ sha256 = "9d9ee7e05a02078b7d4041c3b63e79f91f0a888b919cf726e2e69090ff05f71d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/id/firefox-83.0.tar.bz2";
+ locale = "id";
+ arch = "linux-i686";
+ sha256 = "13e54589a23323e9043d4dac5586a31e5d43bdde0356b1a00a86f91ee5813eb2";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/is/firefox-83.0.tar.bz2";
+ locale = "is";
+ arch = "linux-i686";
+ sha256 = "955a8a4ff1c5ba7124593b3c8537201ffb1fe33ea5c3edd6ab30e80e6b28f60a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/it/firefox-83.0.tar.bz2";
+ locale = "it";
+ arch = "linux-i686";
+ sha256 = "23927419191d7aee8b29da29d213ee9c7ff39363f3fc9171c70d801158cb895b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ja/firefox-83.0.tar.bz2";
+ locale = "ja";
+ arch = "linux-i686";
+ sha256 = "4ffaf6df345922bcd82942956a0f344c4b52ac49ec64879fef7307a0c34eb8e9";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ka/firefox-83.0.tar.bz2";
+ locale = "ka";
+ arch = "linux-i686";
+ sha256 = "df1027754efd054bae379b35228067799e75820b08ca7e6aff5a527fdaf046a8";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/kab/firefox-83.0.tar.bz2";
+ locale = "kab";
+ arch = "linux-i686";
+ sha256 = "6fc1e5d662ce742a48c003145b1b4b58cb296b43a20f718bdcffdc05e386078f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/kk/firefox-83.0.tar.bz2";
+ locale = "kk";
+ arch = "linux-i686";
+ sha256 = "52cb3ac3a33da1227c3aa5e47e04620be2cc020bc520fcf013fe11ad74ad6378";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/km/firefox-83.0.tar.bz2";
+ locale = "km";
+ arch = "linux-i686";
+ sha256 = "c598fa97bb79f56d01afb30caeff29a2c7dd1f162d2fb49c0632ee259d0fe860";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/kn/firefox-83.0.tar.bz2";
+ locale = "kn";
+ arch = "linux-i686";
+ sha256 = "d6795f3f3c0978dbc399768fd824cceb6a3c1c883c153f65102ef476f74d6408";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ko/firefox-83.0.tar.bz2";
+ locale = "ko";
+ arch = "linux-i686";
+ sha256 = "b4d0b62cdfd332d8e9878b75918a0362a7b68db0b62e4e4508dfa176e79b8ed7";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/lij/firefox-83.0.tar.bz2";
+ locale = "lij";
+ arch = "linux-i686";
+ sha256 = "257eec8bead076119b0c3679feb4f3de34c9cf66bd05215e7d76936e6d3ce052";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/lt/firefox-83.0.tar.bz2";
+ locale = "lt";
+ arch = "linux-i686";
+ sha256 = "326925d68306ec6e5b7334eb413cff395ce6a27abf5b0981dee25a7888c64079";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/lv/firefox-83.0.tar.bz2";
+ locale = "lv";
+ arch = "linux-i686";
+ sha256 = "036264de51a7a81b3d636b8217db571db70631231d485f353e64e9f43f0192f4";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/mk/firefox-83.0.tar.bz2";
+ locale = "mk";
+ arch = "linux-i686";
+ sha256 = "6d4966ae49ba7746395b17b98c158c07d33293b68a6c648d0238107812ccfc03";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/mr/firefox-83.0.tar.bz2";
+ locale = "mr";
+ arch = "linux-i686";
+ sha256 = "88a90205bfd157fbcb0697efbd4884772a463f776f5110aae9903dbc1151fcbc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ms/firefox-83.0.tar.bz2";
+ locale = "ms";
+ arch = "linux-i686";
+ sha256 = "67d3651739404a73f263251896c129dc121808d4859169b3469b640345433e9e";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/my/firefox-83.0.tar.bz2";
+ locale = "my";
+ arch = "linux-i686";
+ sha256 = "d7e9a1fe6d2e0e32c2ab9a773d198de241ac2a7d330d9eddce4f3afb9a67671b";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/nb-NO/firefox-83.0.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-i686";
+ sha256 = "66c165884d4397db3e420151d2b6fa3d7bb7c6de790e6d284815cdcc323da3fe";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ne-NP/firefox-83.0.tar.bz2";
+ locale = "ne-NP";
+ arch = "linux-i686";
+ sha256 = "f75832bd74f5ce8db3765201eee058f0386f196f407223e186c0be3d2a665fcf";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/nl/firefox-83.0.tar.bz2";
+ locale = "nl";
+ arch = "linux-i686";
+ sha256 = "beb68fb193dfcccbe22369f9adcbebe701fd4c9ab5943ec685d5d20398a1ea5d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/nn-NO/firefox-83.0.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-i686";
+ sha256 = "de2716b8f4c13c6ef76537ef52f1d0529016302ce220a90d9b5062af9becb5b7";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/oc/firefox-83.0.tar.bz2";
+ locale = "oc";
+ arch = "linux-i686";
+ sha256 = "af2a788560a65cb9f3d2ce98acce4ecd3b3105b6c924c6a4de1a9deb6f2a4d42";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/pa-IN/firefox-83.0.tar.bz2";
+ locale = "pa-IN";
+ arch = "linux-i686";
+ sha256 = "a3575371b20bab63a8bccc110343e0cd0736cffbc5c72dd7aa371c646a057060";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/pl/firefox-83.0.tar.bz2";
+ locale = "pl";
+ arch = "linux-i686";
+ sha256 = "daa554b493ce1efa90a1b040e78d2f2e7ad8ca70c16ee19312c69ed4a12f00e3";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/pt-BR/firefox-83.0.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-i686";
+ sha256 = "4f3fe4a1ce0e12383b37832f44b59fbb40b8fb6e95786edc57ea67ea3d5530bd";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/pt-PT/firefox-83.0.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-i686";
+ sha256 = "c16bcb116b845a6b28b72096ae43d50f19c7b9868c8bbb833db60eaaa70b001d";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/rm/firefox-83.0.tar.bz2";
+ locale = "rm";
+ arch = "linux-i686";
+ sha256 = "334d3dcf333a66f4bd169536f7f3b56ba4b257793dfd0837badff2a77b3668f4";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ro/firefox-83.0.tar.bz2";
+ locale = "ro";
+ arch = "linux-i686";
+ sha256 = "1e6ad9735fe0046beaf80ac35d0a1831aade14f388d08991b9bc583135ebd94c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ru/firefox-83.0.tar.bz2";
+ locale = "ru";
+ arch = "linux-i686";
+ sha256 = "a252bcd66f01375fbc4ce040b89c853c34745e8dede116d200303c56d6307f15";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/si/firefox-83.0.tar.bz2";
+ locale = "si";
+ arch = "linux-i686";
+ sha256 = "ebc5ce83b456f75b671694ac954258ca480caee563e0cb395786692aedf24d88";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sk/firefox-83.0.tar.bz2";
+ locale = "sk";
+ arch = "linux-i686";
+ sha256 = "28aac94a71298c459f14949c9c82b379762d3192a16d92e90605ab8925cb31ad";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sl/firefox-83.0.tar.bz2";
+ locale = "sl";
+ arch = "linux-i686";
+ sha256 = "7fe0eb68a898488bcb697120542fbdcfd1d972c658b4c361bba351a8f5eb76e0";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/son/firefox-83.0.tar.bz2";
+ locale = "son";
+ arch = "linux-i686";
+ sha256 = "f9cb1327834b6a6e41d4abf531410391a40f33a8d168d562dc367faf31d9e042";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sq/firefox-83.0.tar.bz2";
+ locale = "sq";
+ arch = "linux-i686";
+ sha256 = "15370cc0527797f451a5a1f47637c6663437c8f49fc5c056ccbc2e7510cd6c94";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sr/firefox-83.0.tar.bz2";
+ locale = "sr";
+ arch = "linux-i686";
+ sha256 = "c44773c36eb39067e429fb4a4b57676abc7eb9fcf45bd6654d96761f64747c6a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sv-SE/firefox-83.0.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-i686";
+ sha256 = "aa8d2dc50dce8a53a926c71a4a7a57023a017d5fbd54cd1e446ef74b5eef7dea";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ta/firefox-83.0.tar.bz2";
+ locale = "ta";
+ arch = "linux-i686";
+ sha256 = "5fc3e8a048ec24e49c4c4a0e36712b378687e927c30dc8ecb3ec63bcf983062a";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/te/firefox-83.0.tar.bz2";
+ locale = "te";
+ arch = "linux-i686";
+ sha256 = "ff123410cec64c47d239a432d32eaefa494e7cd7fb0157cc45917fe04b2916ef";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/th/firefox-83.0.tar.bz2";
+ locale = "th";
+ arch = "linux-i686";
+ sha256 = "cb7cbf97884a5b4f62c4e0932ead0e5de018c9623590ac3798a86986916258dc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/tl/firefox-83.0.tar.bz2";
+ locale = "tl";
+ arch = "linux-i686";
+ sha256 = "0d55a23e2c0b7da80a6c042e50fc3c9364c3f24309cf255bfbe55a320ec2cf00";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/tr/firefox-83.0.tar.bz2";
+ locale = "tr";
+ arch = "linux-i686";
+ sha256 = "bfc1adb570f79b4f095bc87ab5a54c6b5179579840ded61319a10ad5ff39d52f";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/trs/firefox-83.0.tar.bz2";
+ locale = "trs";
+ arch = "linux-i686";
+ sha256 = "05b5a2252380147ec47561e29514e3f994414b46aae3dd168909f03e7dec16ef";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/uk/firefox-83.0.tar.bz2";
+ locale = "uk";
+ arch = "linux-i686";
+ sha256 = "7e34b52f4d46a735e36f549295d0f9704113024058a7d8d69a8ee6a023d03755";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ur/firefox-83.0.tar.bz2";
+ locale = "ur";
+ arch = "linux-i686";
+ sha256 = "1d48e536c09f862bc00fcaf9a175eaeffac1e0aaff66d71ca49123c00cc885bc";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/uz/firefox-83.0.tar.bz2";
+ locale = "uz";
+ arch = "linux-i686";
+ sha256 = "1f1cf131b3196886aa0f923c5dbaa279b86c3473dc048ce23d58fe811ca1266c";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/vi/firefox-83.0.tar.bz2";
+ locale = "vi";
+ arch = "linux-i686";
+ sha256 = "b98507cd809abd28c51514448bf995661dede7c727808ab8c2db46da8da0a164";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/xh/firefox-83.0.tar.bz2";
+ locale = "xh";
+ arch = "linux-i686";
+ sha256 = "73de4ec29cd09610359909ada39820a119a15c3ae0cc1658c2e9b874801a9015";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/zh-CN/firefox-83.0.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-i686";
+ sha256 = "fea085476f4456133c1f0973121319f1c3efadcc50134cbf5ccde351bbe2ff06";
+ }
+ { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/zh-TW/firefox-83.0.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-i686";
+ sha256 = "5aebd374f2e73f83bec4c14239555d9f2771d3379280fc55f90f1ae0909be009";
+ }
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix
new file mode 100644
index 000000000000..018bf04cb570
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix
@@ -0,0 +1,93 @@
+{ name
+, channel
+, writeScript
+, xidel
+, coreutils
+, gnused
+, gnugrep
+, curl
+, gnupg
+, runtimeShell
+, baseName ? "firefox"
+, basePath ? "pkgs/applications/networking/browsers/firefox-bin"
+, baseUrl
+}:
+
+let
+ isBeta =
+ channel != "release";
+
+in writeScript "update-${name}" ''
+ #!${runtimeShell}
+ PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin:${gnupg}/bin
+ set -eux
+ pushd ${basePath}
+
+ HOME=`mktemp -d`
+ export GNUPGHOME=`mktemp -d`
+
+ gpg --import ${./mozilla.asc}
+
+ tmpfile=`mktemp`
+ url=${baseUrl}
+
+ # retriving latest released version
+ # - extracts all links from the $url
+ # - removes . and ..
+ # - this line remove everything not starting with a number
+ # - this line sorts everything with semver in mind
+ # - we remove lines that are mentioning funnelcake
+ # - this line removes beta version if we are looking for final release
+ # versions or removes release versions if we are looking for beta
+ # versions
+ # - this line pick up latest release
+ version=`xidel -s $url --extract "//a" | \
+ sed s"/.$//" | \
+ grep "^[0-9]" | \
+ sort --version-sort | \
+ grep -v "funnelcake" | \
+ grep -e "${if isBeta then "b" else ""}\([[:digit:]]\|[[:digit:]][[:digit:]]\)$" | ${if isBeta then "" else "grep -v \"b\" |"} \
+ tail -1`
+
+ curl --silent -o $HOME/shasums "$url$version/SHA256SUMS"
+ curl --silent -o $HOME/shasums.asc "$url$version/SHA256SUMS.asc"
+ gpgv --keyring=$GNUPGHOME/pubring.kbx $HOME/shasums.asc $HOME/shasums
+
+ # this is a list of sha256 and tarballs for both arches
+ # Upstream files contains python repr strings like b'somehash', hence the sed dance
+ shasums=`cat $HOME/shasums | sed -E s/"b'([a-f0-9]{64})'?(.*)"/'\1\2'/ | grep tar.bz2`
+
+ cat > $tmpfile <<EOF
+ {
+ version = "$version";
+ sources = [
+ EOF
+ for arch in linux-x86_64 linux-i686; do
+ # retriving a list of all tarballs for each arch
+ # - only select tarballs for current arch
+ # - only select tarballs for current version
+ # - rename space with colon so that for loop doesnt
+ # - inteprets sha and path as 2 lines
+ for line in `echo "$shasums" | \
+ grep $arch | \
+ grep "${baseName}-$version.tar.bz2$" | \
+ tr " " ":"`; do
+ # create an entry for every locale
+ cat >> $tmpfile <<EOF
+ { url = "$url$version/`echo $line | cut -d":" -f3`";
+ locale = "`echo $line | cut -d":" -f3 | sed "s/$arch\///" | sed "s/\/.*//"`";
+ arch = "$arch";
+ sha256 = "`echo $line | cut -d":" -f1`";
+ }
+ EOF
+ done
+ done
+ cat >> $tmpfile <<EOF
+ ];
+ }
+ EOF
+
+ mv $tmpfile ${channel}_sources.nix
+
+ popd
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
new file mode 100644
index 000000000000..1fbfdc2a7da6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
@@ -0,0 +1,392 @@
+{ pname, ffversion, meta, updateScript ? null
+, src, unpackPhase ? null, patches ? []
+, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [] }:
+
+{ lib, stdenv, pkgconfig, pango, perl, python2, python3, zip
+, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
+, freetype, fontconfig, file, nspr, nss, nss_3_53, libnotify
+, yasm, libGLU, libGL, sqlite, unzip, makeWrapper
+, hunspell, libXdamage, libevent, libstartup_notification
+, libvpx_1_8
+, icu67, libpng, jemalloc, glib
+, autoconf213, which, gnused, rustPackages, rustPackages_1_45
+, rust-cbindgen, nodejs, nasm, fetchpatch
+, gnum4
+, debugBuild ? false
+
+### optionals
+
+## optional libraries
+
+, alsaSupport ? stdenv.isLinux, alsaLib
+, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
+, ffmpegSupport ? true
+, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
+, waylandSupport ? true, libxkbcommon
+# LTO is disabled since it caused segfaults on wayland see https://github.com/NixOS/nixpkgs/issues/101429
+, ltoSupport ? false, overrideCC, buildPackages
+, gssSupport ? true, kerberos
+, pipewireSupport ? waylandSupport && webrtcSupport, pipewire
+
+## privacy-related options
+
+, privacySupport ? false
+
+# WARNING: NEVER set any of the options below to `true` by default.
+# Set to `!privacySupport` or `false`.
+
+# webrtcSupport breaks the aarch64 build on version >= 60, fixed in 63.
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1434589
+, webrtcSupport ? !privacySupport
+, geolocationSupport ? !privacySupport
+, googleAPISupport ? geolocationSupport
+, crashreporterSupport ? false
+
+, safeBrowsingSupport ? false
+, drmSupport ? false
+
+# macOS dependencies
+, xcbuild, CoreMedia, ExceptionHandling, Kerberos, AVFoundation, MediaToolbox
+, CoreLocation, Foundation, AddressBook, libobjc, cups, rsync
+
+## other
+
+# As stated by Sylvestre Ledru (@sylvestre) on Nov 22, 2017 at
+# https://github.com/NixOS/nixpkgs/issues/31843#issuecomment-346372756 we
+# have permission to use the official firefox branding.
+#
+# For purposes of documentation the statement of @sylvestre:
+# > As the person who did part of the work described in the LWN article
+# > and release manager working for Mozilla, I can confirm the statement
+# > that I made in
+# > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815006
+# >
+# > @garbas shared with me the list of patches applied for the Nix package.
+# > As they are just for portability and tiny modifications, they don't
+# > alter the experience of the product. In parallel, Rok also shared the
+# > build options. They seem good (even if I cannot judge the quality of the
+# > packaging of the underlying dependencies like sqlite, png, etc).
+# > Therefor, as long as you keep the patch queue sane and you don't alter
+# > the experience of Firefox users, you won't have any issues using the
+# > official branding.
+, enableOfficialBranding ? true
+}:
+
+assert stdenv.cc.libc or null != null;
+assert pipewireSupport -> !waylandSupport || !webrtcSupport -> throw "pipewireSupport requires both wayland and webrtc support.";
+assert ltoSupport -> stdenv.isDarwin -> throw "LTO is broken on Darwin (see PR#19312).";
+
+let
+ flag = tf: x: [(if tf then "--enable-${x}" else "--disable-${x}")];
+
+ default-toolkit = if stdenv.isDarwin then "cairo-cocoa"
+ else "cairo-gtk${if gtk3Support then "3${lib.optionalString waylandSupport "-wayland"}" else "2"}";
+
+ binaryName = "firefox";
+ binaryNameCapitalized = lib.toUpper (lib.substring 0 1 binaryName) + lib.substring 1 (-1) binaryName;
+
+ browserName = if stdenv.isDarwin then binaryNameCapitalized else binaryName;
+
+ execdir = if stdenv.isDarwin
+ then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS"
+ else "/bin";
+
+ # Darwin's stdenv provides the default llvmPackages version, match that since
+ # clang LTO on Darwin is broken so the stdenv is not being changed.
+ llvmPackages = if stdenv.isDarwin
+ then buildPackages.llvmPackages
+ else buildPackages.llvmPackages_10;
+
+ # When LTO for Darwin is fixed, the following will need updating as lld
+ # doesn't work on it. For now it is fine since ltoSupport implies no Darwin.
+ buildStdenv = if ltoSupport
+ then overrideCC stdenv llvmPackages.lldClang
+ else stdenv;
+
+ # 78 ESR won't build with rustc 1.47
+ inherit (if lib.versionAtLeast ffversion "82" then rustPackages else rustPackages_1_45)
+ rustc cargo;
+
+ nss_pkg = if lib.versionOlder ffversion "83" then nss_3_53 else nss;
+in
+
+buildStdenv.mkDerivation ({
+ name = "${pname}-unwrapped-${ffversion}";
+ version = ffversion;
+
+ inherit src unpackPhase meta;
+
+ patches = [
+ ./env_var_for_system_dir.patch
+ ./no-buildconfig-ffx76.patch
+ ] ++
+
+ # there are two flavors of pipewire support
+ # The patches for the ESR release and the patches for the current stable
+ # release.
+ # Until firefox upstream stabilizes pipewire support we will have to continue
+ # tracking multiple versions here.
+ lib.optional (pipewireSupport && lib.versionOlder ffversion "83")
+ (fetchpatch {
+ # https://src.fedoraproject.org/rpms/firefox/blob/master/f/firefox-pipewire-0-3.patch
+ url = "https://src.fedoraproject.org/rpms/firefox/raw/e99b683a352cf5b2c9ff198756859bae408b5d9d/f/firefox-pipewire-0-3.patch";
+ sha256 = "0qc62di5823r7ly2lxkclzj9rhg2z7ms81igz44nv0fzv3dszdab";
+ })
+ ++
+ # This picks pipewire patches from fedora that are part of https://bugzilla.mozilla.org/show_bug.cgi?id=1672944
+ lib.optionals (pipewireSupport && lib.versionAtLeast ffversion "83") (let
+ fedora_revision = "d6756537dd8cf4d9816dc63ada66ea026e0fd128";
+ mkPWPatch = spec: fetchpatch {
+ inherit (spec) name sha256;
+ url = "https://src.fedoraproject.org/rpms/firefox/raw/${fedora_revision}/f/${spec.name}";
+ };
+ in map mkPWPatch [
+ { name = "pw1.patch"; sha256 = "1a7zvngn3k7dg886zmi38kmrsdzh2rrr46aw59bhr1gfmq8wlwn0"; }
+ { name = "pw2.patch"; sha256 = "17irg3yb2mchcy0z0nr4k65mwvkps467cvvczr10fnm06lhkhw1l"; }
+ { name = "pw3.patch"; sha256 = "12p6ql5ff2lfzlni6xkpz63h2xr6n2a9zf8hhjl99fj56rif6706"; }
+ { name = "pw4.patch"; sha256 = "0rvysc92rdm98s47w5lvbnrklrf7d299k3918qnldniyb4b9p4mg"; }
+ { name = "pw5.patch"; sha256 = "0kk2yxq4qkfwc4px6m08jrn18a7a7dhrngfiaw84r9ga6sgn0z00"; }
+ { name = "pw6.patch"; sha256 = "12lhx9wjpw0ahbfmw07wsx76bb223mr453q9cg8cq951vyskch3s"; }
+ { name = "pw7.patch"; sha256 = "0afw7cfd48vn62zb9y5kd2l26fg44s3aq1kyg3gm4q3rj34xidf6"; }
+ ])
+
+ ++ patches;
+
+
+ # Ignore trivial whitespace changes in patches, this fixes compatibility of
+ # ./env_var_for_system_dir.patch with Firefox >=65 without having to track
+ # two patches.
+ patchFlags = [ "-p1" "-l" ];
+
+ buildInputs = [
+ gtk2 perl zip libjpeg zlib bzip2
+ dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor
+ xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
+ libnotify xorg.pixman yasm libGLU libGL
+ xorg.xorgproto
+ xorg.libXext unzip makeWrapper
+ libevent libstartup_notification /* cairo */
+ libpng jemalloc glib
+ nasm icu67 libvpx_1_8
+ # >= 66 requires nasm for the AV1 lib dav1d
+ # yasm can potentially be removed in future versions
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1501796
+ # https://groups.google.com/forum/#!msg/mozilla.dev.platform/o-8levmLU80/SM_zQvfzCQAJ
+ nspr nss_pkg
+ ]
+ ++ lib.optional alsaSupport alsaLib
+ ++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed
+ ++ lib.optional gtk3Support gtk3
+ ++ lib.optional gssSupport kerberos
+ ++ lib.optional ltoSupport llvmPackages.libunwind
+ ++ lib.optionals waylandSupport [ libxkbcommon ]
+ ++ lib.optionals pipewireSupport [ pipewire ]
+ ++ lib.optionals (lib.versionAtLeast ffversion "82") [ gnum4 ]
+ ++ lib.optionals buildStdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos
+ AVFoundation MediaToolbox CoreLocation
+ Foundation libobjc AddressBook cups ];
+
+ NIX_LDFLAGS = lib.optionalString ltoSupport ''
+ -rpath ${placeholder "out"}/lib/${binaryName}
+ -rpath ${llvmPackages.libunwind.out}/lib
+ '';
+
+ NIX_CFLAGS_COMPILE = toString [
+ "-I${glib.dev}/include/gio-unix-2.0"
+ "-I${nss_pkg.dev}/include/nss"
+ ];
+
+ MACH_USE_SYSTEM_PYTHON = "1";
+
+ postPatch = ''
+ rm -rf obj-x86_64-pc-linux-gnu
+ '' + lib.optionalString (pipewireSupport && lib.versionOlder ffversion "83") ''
+ # substitute the /usr/include/ lines for the libraries that pipewire provides.
+ # The patch we pick from fedora only contains the generated moz.build files
+ # which hardcode the dependency paths instead of running pkg_config.
+ substituteInPlace \
+ media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build \
+ --replace /usr/include ${pipewire.dev}/include
+ '' + lib.optionalString (lib.versionAtLeast ffversion "80") ''
+ substituteInPlace dom/system/IOUtils.h \
+ --replace '#include "nspr/prio.h"' '#include "prio.h"'
+
+ substituteInPlace dom/system/IOUtils.cpp \
+ --replace '#include "nspr/prio.h"' '#include "prio.h"' \
+ --replace '#include "nspr/private/pprio.h"' '#include "private/pprio.h"' \
+ --replace '#include "nspr/prtypes.h"' '#include "prtypes.h"'
+ '';
+
+ nativeBuildInputs =
+ [
+ autoconf213
+ cargo
+ gnused
+ llvmPackages.llvm # llvm-objdump
+ nodejs
+ perl
+ pkgconfig
+ python2
+ python3
+ rust-cbindgen
+ rustc
+ which
+ ]
+ ++ lib.optional gtk3Support wrapGAppsHook
+ ++ lib.optionals buildStdenv.isDarwin [ xcbuild rsync ]
+ ++ extraNativeBuildInputs;
+
+ preConfigure = ''
+ # remove distributed configuration files
+ rm -f configure
+ rm -f js/src/configure
+ rm -f .mozconfig*
+ # this will run autoconf213
+ configureScript="$(realpath ./mach) configure"
+ export MOZCONFIG=$(pwd)/mozconfig
+
+ # Set C flags for Rust's bindgen program. Unlike ordinary C
+ # compilation, bindgen does not invoke $CC directly. Instead it
+ # uses LLVM's libclang. To make sure all necessary flags are
+ # included we need to look in a few places.
+ # TODO: generalize this process for other use-cases.
+
+ BINDGEN_CFLAGS="$(< ${buildStdenv.cc}/nix-support/libc-crt1-cflags) \
+ $(< ${buildStdenv.cc}/nix-support/libc-cflags) \
+ $(< ${buildStdenv.cc}/nix-support/cc-cflags) \
+ $(< ${buildStdenv.cc}/nix-support/libcxx-cxxflags) \
+ ${lib.optionalString buildStdenv.cc.isClang "-idirafter ${buildStdenv.cc.cc}/lib/clang/${lib.getVersion buildStdenv.cc.cc}/include"} \
+ ${lib.optionalString buildStdenv.cc.isGNU "-isystem ${buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc} -isystem ${buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc}/${buildStdenv.hostPlatform.config}"} \
+ $NIX_CFLAGS_COMPILE"
+
+ echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
+ '' + (lib.optionalString googleAPISupport ''
+ # Google API key used by Chromium and Firefox.
+ # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
+ # please get your own set of keys.
+ echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" > $TMPDIR/ga
+ # 60.5+ & 66+ did split the google API key arguments: https://bugzilla.mozilla.org/show_bug.cgi?id=1531176
+ configureFlagsArray+=("--with-google-location-service-api-keyfile=$TMPDIR/ga")
+ configureFlagsArray+=("--with-google-safebrowsing-api-keyfile=$TMPDIR/ga")
+ '') + ''
+ # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
+ unset AS
+ '';
+
+ configureFlags = [
+ "--enable-application=browser"
+ "--with-system-jpeg"
+ "--with-system-zlib"
+ "--with-system-libevent"
+ "--with-system-libvpx"
+ "--with-system-png" # needs APNG support
+ "--with-system-icu"
+ "--enable-system-ffi"
+ "--enable-system-pixman"
+ #"--enable-system-cairo"
+ "--disable-tests"
+ "--disable-necko-wifi" # maybe we want to enable this at some point
+ "--disable-updater"
+ "--enable-jemalloc"
+ "--enable-default-toolkit=${default-toolkit}"
+ "--with-libclang-path=${llvmPackages.libclang}/lib"
+ "--with-system-nspr"
+ "--with-system-nss"
+ ]
+ ++ lib.optional (buildStdenv.isDarwin) "--disable-xcode-checks"
+ ++ lib.optional (!ltoSupport) "--with-clang-path=${llvmPackages.clang}/bin/clang"
+ # LTO is done using clang and lld on Linux.
+ # Darwin needs to use the default linker as lld is not supported (yet?):
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1538724
+ # elf-hack is broken when using clang+lld:
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+ ++ lib.optionals ltoSupport [
+ "--enable-lto"
+ "--disable-elf-hack"
+ ] ++ lib.optional (ltoSupport && !buildStdenv.isDarwin) "--enable-linker=lld"
+
+ ++ flag alsaSupport "alsa"
+ ++ flag pulseaudioSupport "pulseaudio"
+ ++ flag ffmpegSupport "ffmpeg"
+ ++ flag gssSupport "negotiateauth"
+ ++ flag webrtcSupport "webrtc"
+ ++ flag crashreporterSupport "crashreporter"
+ ++ lib.optional drmSupport "--enable-eme=widevine"
+
+ ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ]
+ else [ "--disable-debug" "--enable-release"
+ "--enable-optimize"
+ "--enable-strip" ])
+ ++ lib.optional enableOfficialBranding "--enable-official-branding"
+ ++ extraConfigureFlags;
+
+ postConfigure = ''
+ cd obj-*
+ '';
+
+ makeFlags = lib.optionals enableOfficialBranding [
+ "MOZILLA_OFFICIAL=1"
+ "BUILD_OFFICIAL=1"
+ ]
+ ++ extraMakeFlags;
+
+ enableParallelBuilding = true;
+ doCheck = false; # "--disable-tests" above
+
+ installPhase = if buildStdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ cp -LR dist/${binaryNameCapitalized}.app $out/Applications
+ '' else null;
+
+ postInstall = lib.optionalString buildStdenv.isLinux ''
+ # Remove SDK cruft. FIXME: move to a separate output?
+ rm -rf $out/share/idl $out/include $out/lib/${binaryName}-devel-*
+
+ # Needed to find Mozilla runtime
+ gappsWrapperArgs+=(--argv0 "$out/bin/.${binaryName}-wrapped")
+ '';
+
+ postFixup = lib.optionalString buildStdenv.isLinux ''
+ # Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712.
+ patchelf --set-rpath "${lib.getLib libnotify
+ }/lib:$(patchelf --print-rpath "$out"/lib/${binaryName}*/libxul.so)" \
+ "$out"/lib/${binaryName}*/libxul.so
+ patchelf --add-needed ${xorg.libXScrnSaver.out}/lib/libXss.so $out/lib/${binaryName}/${binaryName}
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ # Some basic testing
+ "$out${execdir}/${browserName}" --version
+ '';
+
+ passthru = {
+ inherit updateScript;
+ version = ffversion;
+ isFirefox3Like = true;
+ gtk = gtk2;
+ inherit alsaSupport;
+ inherit nspr;
+ inherit ffmpegSupport;
+ inherit gssSupport;
+ inherit execdir;
+ inherit browserName;
+ } // lib.optionalAttrs gtk3Support { inherit gtk3; };
+
+ hardeningDisable = [ "format" ]; # -Werror=format-security
+
+ # the build system verifies checksums of the bundled rust sources
+ # ./third_party/rust is be patched by our libtool fixup code in stdenv
+ # unfortunately we can't just set this to `false` when we do not want it.
+ # See https://github.com/NixOS/nixpkgs/issues/77289 for more details
+ # Ideally we would figure out how to tell the build system to not
+ # care about changed hashes as we are already doing that when we
+ # fetch the sources. Any further modifications of the source tree
+ # is on purpose by some of our tool (or by accident and a bug?).
+ dontFixLibtool = true;
+
+ # on aarch64 this is also required
+ dontUpdateAutotoolsGnuConfigScripts = true;
+
+ requiredSystemFeatures = [ "big-parallel" ];
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch
new file mode 100644
index 000000000000..18d31356989a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch
@@ -0,0 +1,6 @@
+--- a/toolkit/xre/nsXREDirProvider.cpp 2019-02-28 21:00:14.157543388 +0100
++++ b/toolkit/xre/nsXREDirProvider.cpp 2019-02-28 21:01:28.731128320 +0100
+@@ -302 +302,2 @@
+- rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir));
++ const char* pathVar = PR_GetEnv("MOZ_SYSTEM_DIR");
++ rv = NS_NewNativeLocalFile((pathVar && *pathVar) ? nsDependentCString(pathVar) : reinterpret_cast<const nsCString&>(dirname), false, getter_AddRefs(localDir));
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch
new file mode 100644
index 000000000000..3530954ea5c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch
@@ -0,0 +1,24 @@
+Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies.
+diff -ur firefox-65.0-orig/docshell/base/nsAboutRedirector.cpp firefox-65.0/docshell/base/nsAboutRedirector.cpp
+--- firefox-76.0.orig/docshell/base/nsAboutRedirector.cpp 2020-05-03 19:01:29.926544735 +0200
++++ firefox-76.0/docshell/base/nsAboutRedirector.cpp 2020-05-03 19:12:00.845035570 +0200
+@@ -62,8 +62,6 @@
+ {"about", "chrome://global/content/aboutAbout.html", 0},
+ {"addons", "chrome://mozapps/content/extensions/extensions.xhtml",
+ nsIAboutModule::ALLOW_SCRIPT},
+- {"buildconfig", "chrome://global/content/buildconfig.html",
+- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
+ {"checkerboard", "chrome://global/content/aboutCheckerboard.html",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::ALLOW_SCRIPT},
+diff -ur firefox-65.0-orig/toolkit/content/jar.mn firefox-65.0/toolkit/content/jar.mn
+--- firefox-65.0-orig/toolkit/content/jar.mn 2019-01-23 00:48:35.033372506 +0100
++++ firefox-65.0/toolkit/content/jar.mn 2019-01-23 00:50:45.126565924 +0100
+@@ -36,7 +36,6 @@
+ content/global/plugins.css
+ content/global/browser-child.js
+ content/global/browser-content.js
+-* content/global/buildconfig.html
+ content/global/buildconfig.css
+ content/global/contentAreaUtils.js
+ content/global/datepicker.xhtml
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
new file mode 100644
index 000000000000..7f1d9763e424
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -0,0 +1,66 @@
+{ stdenv, lib, callPackage, fetchurl, fetchpatch }:
+
+let
+ common = opts: callPackage (import ./common.nix opts) {};
+in
+
+rec {
+ firefox = common rec {
+ pname = "firefox";
+ ffversion = "83.0";
+ src = fetchurl {
+ url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
+ sha512 = "3va5a9471677jfzkhqp8xkba45n0bcpphbabhqbcbnps6p85m3y98pl5jy9q7cpq3a6gxc4ax7bp90yz2nfvfq7i64iz397xpprri2a";
+ };
+
+ patches = [
+ # Fix compilation on aarch64 with newer rust version
+ # See https://bugzilla.mozilla.org/show_bug.cgi?id=1677690
+ # and https://bugzilla.redhat.com/show_bug.cgi?id=1897675
+ (fetchpatch {
+ name = "aarch64-simd-bgz-1677690.patch";
+ url = "https://github.com/mozilla/gecko-dev/commit/71597faac0fde4f608a60dd610d0cefac4972cc3.patch";
+ sha256 = "1f61nsgbv2c2ylgjs7wdahxrrlgc19gjy5nzs870zr1g832ybwin";
+ })
+ ];
+
+ meta = {
+ description = "A web browser built from Firefox source tree";
+ homepage = "http://www.mozilla.com/en-US/firefox/";
+ maintainers = with lib.maintainers; [ eelco ];
+ platforms = lib.platforms.unix;
+ badPlatforms = lib.platforms.darwin;
+ broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
+ # not in `badPlatforms` because cross-compilation on 64-bit machine might work.
+ license = lib.licenses.mpl20;
+ };
+ updateScript = callPackage ./update.nix {
+ attrPath = "firefox-unwrapped";
+ versionKey = "ffversion";
+ };
+ };
+
+ firefox-esr-78 = common rec {
+ pname = "firefox-esr";
+ ffversion = "78.5.0esr";
+ src = fetchurl {
+ url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
+ sha512 = "20h53cn7p4dds1yfm166iwbjdmw4fkv5pfk4z0pni6x8ddjvg19imzs6ggmpnfhaji8mnlknm7xp5j7x9vi24awvdxdds5n88rh25hd";
+ };
+
+ meta = {
+ description = "A web browser built from Firefox Extended Support Release source tree";
+ homepage = "http://www.mozilla.com/en-US/firefox/";
+ maintainers = with lib.maintainers; [ eelco ];
+ platforms = lib.platforms.unix;
+ badPlatforms = lib.platforms.darwin;
+ broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
+ # not in `badPlatforms` because cross-compilation on 64-bit machine might work.
+ license = lib.licenses.mpl20;
+ };
+ updateScript = callPackage ./update.nix {
+ attrPath = "firefox-esr-78-unwrapped";
+ versionKey = "ffversion";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix
new file mode 100644
index 000000000000..e12b552535d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix
@@ -0,0 +1,35 @@
+{ writeScript
+, lib
+, xidel
+, common-updater-scripts
+, coreutils
+, gnused
+, gnugrep
+, curl
+, attrPath
+, runtimeShell
+, baseUrl ? "http://archive.mozilla.org/pub/firefox/releases/"
+, versionSuffix ? ""
+, versionKey ? "version"
+}:
+
+writeScript "update-${attrPath}" ''
+ #!${runtimeShell}
+ PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep gnused xidel ]}
+
+ url=${baseUrl}
+
+ # retriving latest released version
+ # - extracts all links from the $url
+ # - extracts lines only with number and dots followed by a slash
+ # - removes trailing slash
+ # - sorts everything with semver in mind
+ # - picks up latest release
+ version=`xidel -s $url --extract "//a" | \
+ grep "^[0-9.]*${versionSuffix}/$" | \
+ sed s/[/]$// | \
+ sort --version-sort | \
+ tail -n 1`
+
+ update-source-version ${attrPath} "$version" "" "" --version-key=${versionKey}
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
new file mode 100644
index 000000000000..7f0b826f905e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -0,0 +1,364 @@
+{ stdenv, lib, makeDesktopItem, makeWrapper, lndir, config
+, replace, fetchurl, zip, unzip, jq
+
+## various stuff that can be plugged in
+, flashplayer, hal-flash
+, ffmpeg, xorg, alsaLib, libpulseaudio, libcanberra-gtk2, libglvnd
+, gnome3/*.gnome-shell*/
+, browserpass, chrome-gnome-shell, uget-integrator, plasma5, bukubrow
+, tridactyl-native
+, fx_cast_bridge
+, udev
+, kerberos
+, libva
+, mesa # firefox wants gbm for drm+dmabuf
+}:
+
+## configurability of the wrapper itself
+
+browser:
+
+let
+ wrapper =
+ { browserName ? browser.browserName or (lib.getName browser)
+ , pname ? browserName
+ , version ? lib.getVersion browser
+ , desktopName ? # browserName with first letter capitalized
+ (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
+ , nameSuffix ? ""
+ , icon ? browserName
+ , extraNativeMessagingHosts ? []
+ , pkcs11Modules ? []
+ , forceWayland ? false
+ , useGlvnd ? true
+ , cfg ? config.${browserName} or {}
+
+ ## Following options are needed for extra prefs & policies
+ # For more information about anti tracking (german website)
+ # visit https://wiki.kairaven.de/open/app/firefox
+ , extraPrefs ? ""
+ # For more information about policies visit
+ # https://github.com/mozilla/policy-templates#enterprisepoliciesenabled
+ , extraPolicies ? {}
+ , firefoxLibName ? "firefox" # Important for tor package or the like
+ , nixExtensions ? null
+ }:
+
+ assert forceWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used
+
+ let
+ enableAdobeFlash = cfg.enableAdobeFlash or false;
+ ffmpegSupport = browser.ffmpegSupport or false;
+ gssSupport = browser.gssSupport or false;
+ alsaSupport = browser.alsaSupport or false;
+
+ plugins =
+ let
+ removed = lib.filter (a: builtins.hasAttr a cfg) [
+ "enableVLC"
+ "enableDjvu"
+ "enableMPlayer"
+ "jre"
+ "icedtea"
+ "enableGoogleTalkPlugin"
+ "enableFriBIDPlugin"
+ "enableBluejeans"
+ "enableAdobeReader"
+ ];
+ in if removed != []
+ then throw "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) removed}. All plugin related options, except for the adobe flash player, have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins)."
+ else lib.optional enableAdobeFlash flashplayer;
+
+ nativeMessagingHosts =
+ ([ ]
+ ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass)
+ ++ lib.optional (cfg.enableBukubrow or false) bukubrow
+ ++ lib.optional (cfg.enableTridactylNative or false) tridactyl-native
+ ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell
+ ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator
+ ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma5.plasma-browser-integration
+ ++ lib.optional (cfg.enableFXCastBridge or false) fx_cast_bridge
+ ++ extraNativeMessagingHosts
+ );
+ libs = lib.optionals stdenv.isLinux [ udev libva mesa ]
+ ++ lib.optional ffmpegSupport ffmpeg
+ ++ lib.optional gssSupport kerberos
+ ++ lib.optional useGlvnd libglvnd
+ ++ lib.optionals (cfg.enableQuakeLive or false)
+ (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ])
+ ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash
+ ++ lib.optional (config.pulseaudio or true) libpulseaudio
+ ++ lib.optional alsaSupport alsaLib
+ ++ pkcs11Modules;
+ gtk_modules = [ libcanberra-gtk2 ];
+
+ #########################
+ # #
+ # EXTRA PREF CHANGES #
+ # #
+ #########################
+ policiesJson = builtins.toFile "policies.json"
+ (builtins.toJSON enterprisePolicies);
+
+ usesNixExtensions = nixExtensions != null;
+
+ extensions = builtins.map (a:
+ if ! (builtins.hasAttr "extid" a) then
+ throw "nixExtensions has an invalid entry. Missing extid attribute. Please use fetchfirefoxaddon"
+ else
+ a
+ ) (if usesNixExtensions then nixExtensions else []);
+
+ enterprisePolicies =
+ {
+ policies = lib.optionalAttrs usesNixExtensions {
+ DisableAppUpdate = true;
+ } //
+ lib.optionalAttrs usesNixExtensions {
+ ExtensionSettings = {
+ "*" = {
+ blocked_install_message = "You can't have manual extension mixed with nix extensions";
+ installation_mode = "blocked";
+ };
+
+ } // lib.foldr (e: ret:
+ ret // {
+ "${e.extid}" = {
+ installation_mode = "allowed";
+ };
+ }
+ ) {} extensions;
+ }
+ // extraPolicies;
+ };
+
+ mozillaCfg = builtins.toFile "mozilla.cfg" ''
+// First line must be a comment
+
+ // Disables addon signature checking
+ // to be able to install addons that do not have an extid
+ // Security is maintained because only user whitelisted addons
+ // with a checksum can be installed
+ ${ lib.optionalString usesNixExtensions ''lockPref("xpinstall.signatures.required", false)'' };
+ ${extraPrefs}
+ '';
+
+ #############################
+ # #
+ # END EXTRA PREF CHANGES #
+ # #
+ #############################
+
+ in stdenv.mkDerivation {
+ inherit pname version;
+
+ desktopItem = makeDesktopItem {
+ name = browserName;
+ exec = "${browserName}${nameSuffix} %U";
+ inherit icon;
+ comment = "";
+ desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}";
+ genericName = "Web Browser";
+ categories = "Network;WebBrowser;";
+ mimeType = stdenv.lib.concatStringsSep ";" [
+ "text/html"
+ "text/xml"
+ "application/xhtml+xml"
+ "application/vnd.mozilla.xul+xml"
+ "x-scheme-handler/http"
+ "x-scheme-handler/https"
+ "x-scheme-handler/ftp"
+ ];
+ };
+
+ nativeBuildInputs = [ makeWrapper lndir ];
+ buildInputs = lib.optional (browser ? gtk3) browser.gtk3;
+
+
+ buildCommand = lib.optionalString stdenv.isDarwin ''
+ mkdir -p $out/Applications
+ cp -R --no-preserve=mode,ownership ${browser}/Applications/${browserName}.app $out/Applications
+ rm -f $out${browser.execdir or "/bin"}/${browserName}
+ '' + ''
+ if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ]
+ then
+ echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'"
+ exit 1
+ fi
+
+ #########################
+ # #
+ # EXTRA PREF CHANGES #
+ # #
+ #########################
+ # Link the runtime. The executable itself has to be copied,
+ # because it will resolve paths relative to its true location.
+ # Any symbolic links have to be replicated as well.
+ cd "${browser}"
+ find . -type d -exec mkdir -p "$out"/{} \;
+
+ find . -type f \( -not -name "${browserName}" \) -exec ln -sT "${browser}"/{} "$out"/{} \;
+
+ find . -type f -name "${browserName}" -print0 | while read -d $'\0' f; do
+ cp -P --no-preserve=mode,ownership "${browser}/$f" "$out/$f"
+ chmod a+rwx "$out/$f"
+ done
+
+ # fix links and absolute references
+ cd "${browser}"
+
+ find . -type l -print0 | while read -d $'\0' l; do
+ target="$(readlink "$l" | ${replace}/bin/replace-literal -es -- "${browser}" "$out")"
+ ln -sfT "$target" "$out/$l"
+ done
+
+ # This will not patch binaries, only "text" files.
+ # Its there for the wrapper mostly.
+ cd "$out"
+ ${replace}/bin/replace-literal -esfR -- "${browser}" "$out"
+
+ # create the wrapper
+
+ executablePrefix="$out${browser.execdir or "/bin"}"
+ executablePath="$executablePrefix/${browserName}"
+
+ if [ ! -x "$executablePath" ]
+ then
+ echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'"
+ exit 1
+ fi
+
+ if [ ! -L "$executablePath" ]
+ then
+ # Careful here, the file at executablePath may already be
+ # a wrapper. That is why we postfix it with -old instead
+ # of -wrapped.
+ oldExe="$executablePrefix"/".${browserName}"-old
+ mv "$executablePath" "$oldExe"
+ else
+ oldExe="$(readlink -v --canonicalize-existing "$executablePath")"
+ fi
+
+ if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ]
+ then
+ echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'"
+ exit 1
+ fi
+
+ makeWrapper "$oldExe" \
+ "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \
+ --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
+ --suffix LD_LIBRARY_PATH ':' "$libs" \
+ --suffix-each GTK_PATH ':' "$gtk_modules" \
+ --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \
+ --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \
+ --suffix PATH ':' "$out${browser.execdir or "/bin"}" \
+ --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \
+ --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \
+ --set SNAP_NAME "firefox" \
+ --set MOZ_LEGACY_PROFILES 1 \
+ --set MOZ_ALLOW_DOWNGRADE 1 \
+ ${lib.optionalString forceWayland ''
+ --set MOZ_ENABLE_WAYLAND "1" \
+ ''}${lib.optionalString (browser ? gtk3)
+ ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+ --suffix XDG_DATA_DIRS : '${gnome3.adwaita-icon-theme}/share'
+ ''
+ }
+ #############################
+ # #
+ # END EXTRA PREF CHANGES #
+ # #
+ #############################
+
+ if [ -e "${browser}/share/icons" ]; then
+ mkdir -p "$out/share"
+ ln -s "${browser}/share/icons" "$out/share/icons"
+ else
+ for res in 16 32 48 64 128; do
+ mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps"
+ icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" )
+ if [ -e "$icon" ]; then ln -s "$icon" \
+ "$out/share/icons/hicolor/''${res}x''${res}/apps/${browserName}.png"
+ fi
+ done
+ fi
+
+ install -D -t $out/share/applications $desktopItem/share/applications/*
+
+ mkdir -p $out/lib/mozilla/native-messaging-hosts
+ for ext in ${toString nativeMessagingHosts}; do
+ ln -sLt $out/lib/mozilla/native-messaging-hosts $ext/lib/mozilla/native-messaging-hosts/*
+ done
+
+ mkdir -p $out/lib/mozilla/pkcs11-modules
+ for ext in ${toString pkcs11Modules}; do
+ ln -sLt $out/lib/mozilla/pkcs11-modules $ext/lib/mozilla/pkcs11-modules/*
+ done
+
+ # For manpages, in case the program supplies them
+ mkdir -p $out/nix-support
+ echo ${browser} > $out/nix-support/propagated-user-env-packages
+
+
+ #########################
+ # #
+ # EXTRA PREF CHANGES #
+ # #
+ #########################
+ # user customization
+ mkdir -p $out/lib/${firefoxLibName}
+
+ # creating policies.json
+ mkdir -p "$out/lib/${firefoxLibName}/distribution"
+
+ POL_PATH="$out/lib/${firefoxLibName}/distribution/policies.json"
+ rm -f "$POL_PATH"
+ cat ${policiesJson} >> "$POL_PATH"
+
+ # preparing for autoconfig
+ mkdir -p "$out/lib/${firefoxLibName}/defaults/pref"
+
+ cat > "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" <<EOF
+ pref("general.config.filename", "mozilla.cfg");
+ pref("general.config.obscure_value", 0);
+ EOF
+
+ cat > "$out/lib/${firefoxLibName}/mozilla.cfg" < ${mozillaCfg}
+
+ mkdir -p $out/lib/${firefoxLibName}/distribution/extensions
+
+ for i in ${toString extensions}; do
+ ln -s -t $out/lib/${firefoxLibName}/distribution/extensions $i/*
+ done
+ #############################
+ # #
+ # END EXTRA PREF CHANGES #
+ # #
+ #############################
+ '';
+
+ preferLocalBuild = true;
+
+ # Let each plugin tell us (through its `mozillaPlugin') attribute
+ # where to find the plugin in its tree.
+ plugins = map (x: x + x.mozillaPlugin) plugins;
+ libs = lib.makeLibraryPath libs + ":" + lib.makeSearchPathOutput "lib" "lib64" libs;
+ gtk_modules = map (x: x + x.gtkModule) gtk_modules;
+
+ passthru = { unwrapped = browser; };
+
+ disallowedRequisites = [ stdenv.cc ];
+
+ meta = browser.meta // {
+ description =
+ browser.meta.description
+ + " (with plugins: "
+ + lib.concatStrings (lib.intersperse ", " (map (x: x.name) plugins))
+ + ")";
+ hydraPlatforms = [];
+ priority = (browser.meta.priority or 0) - 1; # prefer wrapper over the package
+ };
+ };
+in
+ lib.makeOverridable wrapper
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
new file mode 100644
index 000000000000..73a095b0827f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -0,0 +1,157 @@
+{ stdenv, patchelf, makeWrapper
+
+# Linked dynamic libraries.
+, glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr
+, libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb
+, alsaLib, libXdamage, libXtst, libXrandr, expat, cups
+, dbus, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
+, kerberos, libdrm, mesa
+, libxkbcommon, wayland # ozone/wayland
+
+# Command line programs
+, coreutils
+
+# command line arguments which are always set e.g "--disable-gpu"
+, commandLineArgs ? ""
+
+# Will crash without.
+, systemd
+
+# Loaded at runtime.
+, libexif
+
+# Additional dependencies according to other distros.
+## Ubuntu
+, liberation_ttf, curl, util-linux, xdg_utils, wget
+## Arch Linux.
+, flac, harfbuzz, icu, libpng, libopus, snappy, speechd
+## Gentoo
+, bzip2, libcap
+
+# Which distribution channel to use.
+, channel ? "stable"
+
+# Necessary for USB audio devices.
+, pulseSupport ? true, libpulseaudio ? null
+
+# Only needed for getting information about upstream binaries
+, chromium
+
+, gsettings-desktop-schemas
+, gnome3
+}:
+
+with stdenv.lib;
+
+let
+ opusWithCustomModes = libopus.override {
+ withCustomModes = true;
+ };
+
+ version = chromium.upstream-info.version;
+
+ deps = [
+ glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr
+ libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite libxcb
+ alsaLib libXdamage libXtst libXrandr expat cups
+ dbus gdk-pixbuf gcc-unwrapped.lib
+ systemd
+ libexif
+ liberation_ttf curl util-linux xdg_utils wget
+ flac harfbuzz icu libpng opusWithCustomModes snappy speechd
+ bzip2 libcap at-spi2-atk at-spi2-core
+ kerberos libdrm mesa coreutils
+ libxkbcommon wayland
+ ] ++ optional pulseSupport libpulseaudio
+ ++ [ gtk3 ];
+
+ suffix = if channel != "stable" then "-" + channel else "";
+
+in stdenv.mkDerivation {
+ inherit version;
+
+ name = "google-chrome${suffix}-${version}";
+
+ src = chromium.chromeSrc;
+
+ nativeBuildInputs = [ patchelf makeWrapper ];
+ buildInputs = [
+ # needed for GSETTINGS_SCHEMAS_PATH
+ gsettings-desktop-schemas glib gtk3
+
+ # needed for XDG_ICON_DIRS
+ gnome3.adwaita-icon-theme
+ ];
+
+ unpackPhase = ''
+ ar x $src
+ tar xf data.tar.xz
+ '';
+
+ rpath = makeLibraryPath deps + ":" + makeSearchPathOutput "lib" "lib64" deps;
+ binpath = makeBinPath deps;
+
+ installPhase = ''
+ case ${channel} in
+ beta) appname=chrome-beta dist=beta ;;
+ dev) appname=chrome-unstable dist=unstable ;;
+ *) appname=chrome dist=stable ;;
+ esac
+
+ exe=$out/bin/google-chrome-$dist
+
+ mkdir -p $out/bin $out/share
+
+ cp -a opt/* $out/share
+ cp -a usr/share/* $out/share
+
+ # To fix --use-gl=egl:
+ test -e $out/share/google/$appname/libEGL.so
+ ln -s libEGL.so $out/share/google/$appname/libEGL.so.1
+ test -e $out/share/google/$appname/libGLESv2.so
+ ln -s libGLESv2.so $out/share/google/$appname/libGLESv2.so.2
+
+ substituteInPlace $out/share/applications/google-$appname.desktop \
+ --replace /usr/bin/google-chrome-$dist $exe
+ substituteInPlace $out/share/gnome-control-center/default-apps/google-$appname.xml \
+ --replace /opt/google/$appname/google-$appname $exe
+ substituteInPlace $out/share/menu/google-$appname.menu \
+ --replace /opt $out/share \
+ --replace $out/share/google/$appname/google-$appname $exe
+
+ for icon_file in $out/share/google/chrome*/product_logo_[0-9]*.png; do
+ num_and_suffix="''${icon_file##*logo_}"
+ if [ $dist = "stable" ]; then
+ icon_size="''${num_and_suffix%.*}"
+ else
+ icon_size="''${num_and_suffix%_*}"
+ fi
+ logo_output_prefix="$out/share/icons/hicolor"
+ logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
+ mkdir -p "$logo_output_path"
+ mv "$icon_file" "$logo_output_path/google-$appname.png"
+ done
+
+ makeWrapper "$out/share/google/$appname/google-$appname" "$exe" \
+ --prefix LD_LIBRARY_PATH : "$rpath" \
+ --prefix PATH : "$binpath" \
+ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
+ --add-flags ${escapeShellArg commandLineArgs}
+
+ for elf in $out/share/google/$appname/{chrome,chrome-sandbox,nacl_helper}; do
+ patchelf --set-rpath $rpath $elf
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf
+ done
+ '';
+
+ meta = {
+ description = "A freeware web browser developed by Google";
+ homepage = "https://www.google.com/chrome/browser/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ primeos ];
+ # Note from primeos: By updating Chromium I also update Google Chrome and
+ # will try to merge PRs and respond to issues but I'm not actually using
+ # Google Chrome.
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
new file mode 100644
index 000000000000..4028f8622c3c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
@@ -0,0 +1,31 @@
+{ lib, mkDerivation, fetchFromGitHub, qtbase, qtmultimedia }:
+
+mkDerivation rec {
+ pname = "kristall";
+ version = "0.3";
+ src = fetchFromGitHub {
+ owner = "MasterQ32";
+ repo = "kristall";
+ rev = "V" + version;
+ sha256 = "07nf7w6ilzs5g6isnvsmhh4qa1zsprgjyf0zy7rhpx4ikkj8c8zq";
+ };
+
+ buildInputs = [ qtbase qtmultimedia ];
+
+ qmakeFlags = [ "src/kristall.pro" ];
+
+ installPhase = ''
+ install -Dt $out/bin kristall
+ install -D Kristall.desktop $out/share/applications/net.random-projects.kristall.desktop
+ '';
+
+ meta = with lib;
+ src.meta // {
+ description =
+ "Graphical small-internet client, supports gemini, http, https, gopher, finger";
+ homepage = "https://random-projects.net/projects/kristall.gemini";
+ maintainers = with maintainers; [ ehmry ];
+ license = licenses.gpl3;
+ inherit (qtmultimedia.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
new file mode 100644
index 000000000000..0db521f8ef59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl
+, gpm, openssl, pkgconfig, libev # Misc.
+, libpng, libjpeg, libtiff, librsvg # graphic formats
+, bzip2, zlib, xz # Transfer encodings
+, enableFB ? true
+, enableDirectFB ? false, directfb
+, enableX11 ? true, libX11, libXt, libXau # GUI support
+}:
+
+stdenv.mkDerivation rec {
+ version = "2.21";
+ pname = "links2";
+
+ src = fetchurl {
+ url = "${meta.homepage}/download/links-${version}.tar.bz2";
+ sha256 = "0qqdcghsdqm7l6kyi0k752ws3ak5crw85pqkcb11wy67j62yspi8";
+ };
+
+ buildInputs = with stdenv.lib;
+ [ libev librsvg libpng libjpeg libtiff openssl xz bzip2 zlib ]
+ ++ optionals stdenv.isLinux [ gpm ]
+ ++ optionals enableX11 [ libX11 libXau libXt ]
+ ++ optional enableDirectFB [ directfb ];
+
+ nativeBuildInputs = [ pkgconfig bzip2 ];
+
+ configureFlags = [ "--with-ssl" ]
+ ++ stdenv.lib.optional (enableX11 || enableFB || enableDirectFB) "--enable-graphics"
+ ++ stdenv.lib.optional enableX11 "--with-x"
+ ++ stdenv.lib.optional enableFB "--with-fb"
+ ++ stdenv.lib.optional enableDirectFB "--with-directfb";
+
+ meta = with stdenv.lib; {
+ homepage = "http://links.twibright.com/";
+ description = "A small browser with some graphics support";
+ maintainers = with maintainers; [ raskin ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
new file mode 100644
index 000000000000..42eb8bcb63a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub, pkgconfig, wrapGAppsHook
+, help2man, luafilesystem, luajit, sqlite
+, webkitgtk, gtk3, gst_all_1, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+ pname = "luakit";
+ version = "2.2.1";
+
+ src = fetchFromGitHub {
+ owner = "luakit";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-78B8vXkWsFMJIHA72Qrk2SWubrY6YuArqcM0UAPjpzc=";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig help2man wrapGAppsHook
+ ];
+
+ buildInputs = [
+ webkitgtk luafilesystem luajit sqlite gtk3
+ glib-networking # TLS support
+ ] ++ ( with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good
+ gst-plugins-bad gst-plugins-ugly gst-libav ]);
+
+ preBuild = ''
+ # build-utils/docgen/gen.lua:2: module 'lib.lousy.util' not found
+ # TODO: why is not this the default? The test runner adds
+ # ';./lib/?.lua;./lib/?/init.lua' to package.path, but the build-utils
+ # scripts don't add an equivalent
+ export LUA_PATH="$LUA_PATH;./?.lua;./?/init.lua"
+ '';
+
+ makeFlags = [
+ "DEVELOPMENT_PATHS=0"
+ "USE_LUAJIT=1"
+ "INSTALLDIR=${placeholder "out"}"
+ "PREFIX=${placeholder "out"}"
+ "USE_GTK3=1"
+ "XDGPREFIX=${placeholder "out"}/etc/xdg"
+ ];
+
+ preFixup = let
+ luaKitPath = "$out/share/luakit/lib/?/init.lua;$out/share/luakit/lib/?.lua";
+ in ''
+ gappsWrapperArgs+=(
+ --prefix XDG_CONFIG_DIRS : "$out/etc/xdg"
+ --prefix LUA_PATH ';' "${luaKitPath};$LUA_PATH"
+ --prefix LUA_CPATH ';' "$LUA_CPATH"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Fast, small, webkit-based browser framework extensible in Lua";
+ longDescription = ''
+ Luakit is a highly configurable browser framework based on the WebKit web
+ content engine and the GTK+ toolkit. It is very fast, extensible with Lua,
+ and licensed under the GNU GPLv3 license. It is primarily targeted at
+ power users, developers and anyone who wants to have fine-grained control
+ over their web browser’s behaviour and interface.
+ '';
+ homepage = "https://luakit.github.io/";
+ license = licenses.gpl3Only;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix
new file mode 100644
index 000000000000..8aeee45b9e54
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, buildPackages
+, fetchurl, pkgconfig, ncurses, gzip
+, sslSupport ? true, openssl ? null
+, nukeReferences
+}:
+
+assert sslSupport -> openssl != null;
+
+stdenv.mkDerivation rec {
+ pname = "lynx";
+ version = "2.8.9rel.1";
+
+ src = fetchurl {
+ urls = [
+ "ftp://ftp.invisible-island.net/lynx/tarballs/lynx${version}.tar.bz2"
+ "https://invisible-mirror.net/archives/lynx/tarballs/lynx${version}.tar.bz2"
+ ];
+ sha256 = "15cmyyma2kz1hfaa6mwjgli8zwdzq3jv0q2cl6nwzycjfwyijzrq";
+ };
+
+ enableParallelBuilding = true;
+
+ hardeningEnable = [ "pie" ];
+
+ configureFlags = [
+ "--enable-default-colors"
+ "--enable-widec"
+ "--enable-ipv6"
+ ] ++ stdenv.lib.optional sslSupport "--with-ssl";
+
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+ nativeBuildInputs = [ nukeReferences ]
+ ++ stdenv.lib.optional sslSupport pkgconfig;
+
+ buildInputs = [ ncurses gzip ] ++ stdenv.lib.optional sslSupport openssl.dev;
+
+ # cfg_defs.h captures lots of references to build-only dependencies, derived
+ # from config.cache.
+ postConfigure = ''
+ make cfg_defs.h
+ nuke-refs cfg_defs.h
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A text-mode web browser";
+ homepage = "https://lynx.invisible-island.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix
new file mode 100644
index 000000000000..66f6384643ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, fetchurl
+, cmake
+, ninja
+, pkgconfig
+, intltool
+, vala
+, wrapGAppsHook
+, gcr
+, libpeas
+, gtk3
+, webkitgtk
+, sqlite
+, gsettings-desktop-schemas
+, libsoup
+, glib-networking
+, json-glib
+, libarchive
+}:
+
+stdenv.mkDerivation rec {
+ pname = "midori";
+ version = "9.0";
+
+ src = fetchurl {
+ url = "https://github.com/midori-browser/core/releases/download/v${version}/midori-v${version}.tar.gz";
+ sha256 = "05i04qa83dnarmgkx4xsk6fga5lw1lmslh4rb3vhyyy4ala562jy";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ intltool
+ ninja
+ pkgconfig
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ (libsoup.override { gnomeSupport = true; })
+ gcr
+ glib-networking
+ gsettings-desktop-schemas
+ gtk3
+ libpeas
+ sqlite
+ webkitgtk
+ json-glib
+ libarchive
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Lightweight WebKitGTK web browser";
+ homepage = "https://www.midori-browser.org/";
+ license = with licenses; [ lgpl21Plus ];
+ platforms = with platforms; linux;
+ maintainers = with maintainers; [ raskin ramkromberg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
new file mode 100644
index 000000000000..3affcba863c8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
@@ -0,0 +1,147 @@
+{ stdenv
+, lib
+, fetchurl
+, alsaLib
+, atk
+, bzip2
+, cairo
+, curl
+, expat
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, glibc
+, graphite2
+, gtk2
+, harfbuzz
+, libICE
+, libSM
+, libX11
+, libXau
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXdmcp
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrandr
+, libXrender
+, libXt
+, libXxf86vm
+, libdrm
+, libffi
+, libglvnd
+, libpng
+, libvdpau
+, libxcb
+, libxshmfence
+, nspr
+, nss
+, pango
+, pcre
+, pixman
+, zlib
+, unzip
+, debug ? false
+
+/* you have to add ~/mm.cfg :
+
+ TraceOutputFileEnable=1
+ ErrorReportingEnable=1
+ MaxWarnings=1
+
+ in order to read the flash trace at ~/.macromedia/Flash_Player/Logs/flashlog.txt
+ Then FlashBug (a FireFox plugin) shows the log as well
+*/
+
+}:
+
+let
+ arch =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ "x86_64"
+ else if stdenv.hostPlatform.system == "i686-linux" then
+ "i386"
+ else throw "Flash Player is not supported on this platform";
+ lib_suffix =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ "64"
+ else
+ "";
+in
+stdenv.mkDerivation rec {
+ pname = "flashplayer";
+ version = "32.0.0.445";
+
+ src = fetchurl {
+ url =
+ if debug then
+ "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_npapi_linux_debug.${arch}.tar.gz"
+ else
+ "https://fpdownload.adobe.com/get/flashplayer/pdc/${version}/flash_player_npapi_linux.${arch}.tar.gz";
+ sha256 =
+ if debug then
+ if arch == "x86_64" then
+ "0jn1g8k8fkikhi0xlcsx5a43lxrj6ynwbxn55b17wacsqw20b9ii"
+ else
+ "104af8sy0qq45agg3lpjwn1cp8lhpcjiim6gqn4cymcfp8d7ngg0"
+ else
+ if arch == "x86_64" then
+ "1dd52nhnl3f1d7r82gq28scna5qr39gpfqkgrhzd6cxd2vnhnhjn"
+ else
+ "09ayb637cyf5x06xmhvad2znss7ak7r4n8z3wq7qmn0pmjdsa5a3";
+ };
+
+ nativeBuildInputs = [ unzip ];
+
+ sourceRoot = ".";
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ preferLocalBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/lib/mozilla/plugins
+ cp -pv libflashplayer.so $out/lib/mozilla/plugins
+
+ mkdir -p $out/bin
+ cp -pv usr/bin/flash-player-properties $out/bin
+
+ mkdir -p $out/lib${lib_suffix}/kde4
+ cp -pv usr/lib${lib_suffix}/kde4/kcm_adobe_flash_player.so $out/lib${lib_suffix}/kde4
+
+ patchelf --set-rpath "$rpath" \
+ $out/lib/mozilla/plugins/libflashplayer.so \
+ $out/lib${lib_suffix}/kde4/kcm_adobe_flash_player.so
+
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ --set-rpath "$rpath" \
+ $out/bin/flash-player-properties
+ '';
+
+ passthru = {
+ mozillaPlugin = "/lib/mozilla/plugins";
+ };
+
+ rpath = lib.makeLibraryPath
+ [ stdenv.cc.cc
+ alsaLib atk bzip2 cairo curl expat fontconfig freetype gdk-pixbuf glib
+ glibc graphite2 gtk2 harfbuzz libICE libSM libX11 libXau libXcomposite
+ libXcursor libXdamage libXdmcp libXext libXfixes libXi libXinerama
+ libXrandr libXrender libXt libXxf86vm libdrm libffi libglvnd libpng
+ libvdpau libxcb libxshmfence nspr nss pango pcre pixman zlib
+ ];
+
+ meta = {
+ description = "Adobe Flash Player browser plugin";
+ homepage = "http://www.adobe.com/products/flashplayer/";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ taku0 ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
new file mode 100644
index 000000000000..75c97cdd3412
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
@@ -0,0 +1,106 @@
+{ stdenv
+, lib
+, fetchurl
+, alsaLib
+, atk
+, bzip2
+, cairo
+, curl
+, expat
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, glibc
+, graphite2
+, gtk2
+, harfbuzz
+, libICE
+, libSM
+, libX11
+, libXau
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXdmcp
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrandr
+, libXrender
+, libXt
+, libXxf86vm
+, libdrm
+, libffi
+, libglvnd
+, libpng
+, libvdpau
+, libxcb
+, libxshmfence
+, nspr
+, nss
+, pango
+, pcre
+, pixman
+, zlib
+, unzip
+, debug ? false
+}:
+
+stdenv.mkDerivation {
+ pname = "flashplayer-standalone";
+ version = "32.0.0.445";
+
+ src = fetchurl {
+ url =
+ if debug then
+ "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux_debug.x86_64.tar.gz"
+ else
+ "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
+ sha256 =
+ if debug then
+ "0iqmdd222mjsf3rdbcm4z974i5q9y4i5agnhn039k0hpydi4zdcr"
+ else
+ "07vz17zhwh31phccpbmwgfa3fdb2f7bnc3sf66ipsw1xcqgncpsx";
+ };
+
+ nativeBuildInputs = [ unzip ];
+
+ sourceRoot = ".";
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ preferLocalBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -pv flashplayer${lib.optionalString debug "debugger"} $out/bin
+
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ --set-rpath "$rpath" \
+ $out/bin/flashplayer${lib.optionalString debug "debugger"}
+ '';
+
+ rpath = lib.makeLibraryPath
+ [ stdenv.cc.cc
+ alsaLib atk bzip2 cairo curl expat fontconfig freetype gdk-pixbuf glib
+ glibc graphite2 gtk2 harfbuzz libICE libSM libX11 libXau libXcomposite
+ libXcursor libXdamage libXdmcp libXext libXfixes libXi libXinerama
+ libXrandr libXrender libXt libXxf86vm libdrm libffi libglvnd libpng
+ libvdpau libxcb libxshmfence nspr nss pango pcre pixman zlib
+ ];
+
+ meta = {
+ description = "Adobe Flash Player standalone executable";
+ homepage = "https://www.adobe.com/support/flashplayer/debug_downloads.html";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ taku0 ];
+ platforms = [ "x86_64-linux" ];
+ # Application crashed with an unhandled SIGSEGV
+ # Not on all systems, though. Video driver problem?
+ broken = false;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix
new file mode 100644
index 000000000000..407d94a4dc45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix
@@ -0,0 +1,83 @@
+{ stdenv, fetchurl, fetchpatch, makeWrapper, wrapGAppsHook
+
+# Buildtime dependencies.
+, check, pkgconfig, xxd
+
+# Runtime dependencies.
+, curl, expat, libXcursor, libXrandr, libidn, libjpeg, libpng, libwebp, libxml2
+, openssl, perl, perlPackages
+
+# uilib-specific dependencies
+, gtk2 # GTK 2
+, gtk3 # GTK 3
+, SDL # Framebuffer
+
+# Configuration
+, uilib
+
+# Netsurf-specific dependencies
+, libcss, libdom, libhubbub, libnsbmp, libnsfb, libnsgif
+, libnslog, libnspsl, libnsutils, libparserutils, libsvgtiny, libutf8proc
+, libwapcaplet, nsgenbind
+}:
+
+let
+ inherit (stdenv.lib) optional optionals;
+in
+stdenv.mkDerivation rec {
+ pname = "netsurf";
+ version = "3.10";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/netsurf/releases/source/${pname}-${version}-src.tar.gz";
+ sha256 = "sha256-NkhEKeGTYUaFwv8kb1W9Cm3d8xoBi+5F4NH3wohRmV4=";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper
+ perl
+ perlPackages.HTMLParser
+ pkgconfig
+ xxd
+ ]
+ ++ optional (uilib == "gtk2" || uilib == "gtk3") wrapGAppsHook
+ ;
+
+ buildInputs = [
+ check curl libXcursor libXrandr libidn libjpeg libpng libwebp libxml2 openssl
+ # Netsurf-specific libraries
+ nsgenbind libnsfb libwapcaplet libparserutils libnslog libcss
+ libhubbub libdom libnsbmp libnsgif libsvgtiny libnsutils libnspsl
+ libutf8proc
+ ]
+ ++ optionals (uilib == "framebuffer") [ expat SDL ]
+ ++ optional (uilib == "gtk2") gtk2
+ ++ optional (uilib == "gtk3") gtk3
+ ;
+
+ preConfigure = ''
+ cat <<EOF > Makefile.conf
+ override NETSURF_GTK_RES_PATH := $out/share/
+ override NETSURF_USE_GRESOURCE := YES
+ EOF
+ '';
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "TARGET=${uilib}"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/";
+ description = "A free, open source, small web browser";
+ longDescription = ''
+ NetSurf is a free, open source web browser. It is written in C and
+ released under the GNU Public Licence version 2. NetSurf has its own
+ layout and rendering engine entirely written from scratch. It is small and
+ capable of handling many of the web standards in use today.
+ '';
+ license = licenses.gpl2Only;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/buildsystem.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/buildsystem.nix
new file mode 100644
index 000000000000..2d625b725446
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/buildsystem.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "buildsystem";
+ version = "1.9";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}.tar.gz";
+ sha256 = "sha256-k4QeMUpoggmiC4dF8GU5PzqQ8Bvmj0Xpa8jS9KKqmio=";
+ };
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/";
+ description = "NetSurf browser shared build system";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/default.nix
new file mode 100644
index 000000000000..409ab80ce3ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/default.nix
@@ -0,0 +1,36 @@
+{ lib, pkgs }:
+
+lib.makeScope pkgs.newScope (self: with self; {
+ # ui can be: gtk2, gtk3, sixel, framebuffer. Note that console display (sixel)
+ # requires a terminal that supports `sixel` capabilities, such as mlterm
+ # or xterm -ti 340
+ ui = "gtk3";
+ uilib =
+ if ui == "gtk2" ||
+ ui == "gtk3" ||
+ ui == "framebuffer" then ui
+ else if ui == "sixel" then "framebuffer"
+ else null; # Never will happen
+ SDL =
+ if ui == "sixel" then pkgs.SDL_sixel
+ else if ui == "framebuffer" then pkgs.SDL
+ else null;
+
+ browser = callPackage ./browser.nix { };
+
+ buildsystem = callPackage ./buildsystem.nix { };
+ libcss = callPackage ./libcss.nix { };
+ libdom = callPackage ./libdom.nix { };
+ libhubbub = callPackage ./libhubbub.nix { };
+ libnsbmp = callPackage ./libnsbmp.nix { };
+ libnsfb = callPackage ./libnsfb.nix { };
+ libnsgif = callPackage ./libnsgif.nix { };
+ libnslog = callPackage ./libnslog.nix { };
+ libnspsl = callPackage ./libnspsl.nix { };
+ libnsutils = callPackage ./libnsutils.nix { };
+ libparserutils = callPackage ./libparserutils.nix { };
+ libsvgtiny = callPackage ./libsvgtiny.nix { };
+ libutf8proc = callPackage ./libutf8proc.nix { };
+ libwapcaplet = callPackage ./libwapcaplet.nix { };
+ nsgenbind = callPackage ./nsgenbind.nix { };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libcss.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libcss.nix
new file mode 100644
index 000000000000..db907edd8799
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libcss.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, pkgconfig, perl
+, buildsystem
+, libparserutils
+, libwapcaplet
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libcss";
+ version = "0.9.1";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-0tzhbpM5Lo1qcglCDUfC1Wo4EXAaDoGnJPxUHGPTxtw=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ perl
+ libparserutils
+ libwapcaplet
+ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ NIX_CFLAGS_COMPILE= "-Wno-error=implicit-fallthrough";
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+ description = "Cascading Style Sheets library for netsurf browser";
+ longDescription = ''
+ LibCSS is a CSS parser and selection engine. It aims to parse the forward
+ compatible CSS grammar. It was developed as part of the NetSurf project
+ and is available for use by other software, under a more permissive
+ license.
+ '';
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libdom.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libdom.nix
new file mode 100644
index 000000000000..3aa9e3a1878e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libdom.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, pkgconfig, expat
+, buildsystem
+, libparserutils
+, libwapcaplet
+, libhubbub
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libdom";
+ version = "0.4.1";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-mO4HJHHlXiCMmHjlFcQQrUYso2+HtK/L7K0CPzos70o=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ expat
+ libhubbub
+ libparserutils
+ libwapcaplet
+ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+ description = "Document Object Model library for netsurf browser";
+ longDescription = ''
+ LibDOM is an implementation of the W3C DOM, written in C. It is currently
+ in development for use with NetSurf and is intended to be suitable for use
+ in other projects under a more permissive license.
+ '';
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libhubbub.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libhubbub.nix
new file mode 100644
index 000000000000..53b8d270d4f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libhubbub.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, pkgconfig, perl
+, buildsystem
+, libparserutils
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libhubbub";
+ version = "0.3.7";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-nnriU+bJBp51frmtTkhG84tNtSwMoBUURqn6Spd3NbY=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ perl
+ libparserutils
+ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/hubbub/";
+ description = "HTML5 parser library for netsurf browser";
+ longDescription = ''
+ Hubbub is an HTML5 compliant parsing library, written in C. It was
+ developed as part of the NetSurf project and is available for use by other
+ software under the MIT licence.
+
+ The HTML5 specification defines a parsing algorithm, based on the
+ behaviour of mainstream browsers, which provides instructions for how to
+ parse all markup, both valid and invalid. As a result, Hubbub parses web
+ content well.
+ '';
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix
new file mode 100644
index 000000000000..95487eed00fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libnsbmp";
+ version = "0.1.6";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-ecSTZfhg7UUb/EEJ7d7I3j6bfOWjvgaVlr0qoZJ5Mk8=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/";
+ description = "BMP Decoder for netsurf browser";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsfb.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsfb.nix
new file mode 100644
index 000000000000..d37766f5330f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsfb.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig
+, uilib, SDL
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libnsfb";
+ version = "0.2.2";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-vkRso+tU35A/LamDEdEH11dM0R9awHE+YZFW1NGeo5o=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ SDL buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ "TARGET=${uilib}"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+ description = "Netsurf framebuffer abstraction library";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsgif.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsgif.nix
new file mode 100644
index 000000000000..d8683280c4e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsgif.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libnsgif";
+ version = "0.2.1";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-nq6lNM1wtTxar0UxeulXcBaFprSojb407Sb0+q6Hmks=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+ description = "GIF Decoder for netsurf browser";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnslog.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnslog.nix
new file mode 100644
index 000000000000..12fdcff50bd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnslog.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, bison, flex
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libnslog";
+ version = "0.1.3";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-/JjcqdfvpnCWRwpdlsAjFG4lv97AjA23RmHHtNsEU9A=";
+ };
+
+ nativeBuildInputs = [ pkgconfig bison flex ];
+ buildInputs = [ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/";
+ description = "NetSurf Parametric Logging Library";
+ license = licenses.isc;
+ maintainers = [ maintainers.samueldr maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnspsl.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnspsl.nix
new file mode 100644
index 000000000000..4338f78247c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnspsl.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libnspsl";
+ version = "0.1.6";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-08WCBct40xC/gcpVNHotCYcZzsrHBGvDZ5g7E4tFAgs=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/";
+ description = "NetSurf Public Suffix List - Handling library";
+ license = licenses.mit;
+ maintainers = [ maintainers.samueldr maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix
new file mode 100644
index 000000000000..42c8b8b06214
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libnsutils";
+ version = "0.1.0";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-eQxlFjRKvoL2KJ1lY5LpzOvkdbIMx+Hi2EMBE4X3rvA=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+ description = "Generalised utility library for netsurf browser";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libparserutils.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
new file mode 100644
index 000000000000..b96018d92eb8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, perl
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libparserutils";
+ version = "0.2.4";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-MiuuYbMMzt4+MFv26uJBSSBkl3W8X/HRtogBKjxJR9g=";
+ };
+
+ buildInputs = [ perl buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+ description = "Parser building library for netsurf browser";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libsvgtiny.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libsvgtiny.nix
new file mode 100644
index 000000000000..aef154bbc17c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libsvgtiny.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig, gperf
+, buildsystem
+, libdom
+, libhubbub
+, libparserutils
+, libwapcaplet
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libsvgtiny";
+ version = "0.1.7";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-LA3PlS8c2ILD6VQB75RZ8W27U8XT5FEjObL563add4E=";
+ };
+
+ nativeBuildInputs = [ pkgconfig gperf ];
+ buildInputs = [
+ libdom
+ libhubbub
+ libparserutils
+ libwapcaplet
+ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+ description = "NetSurf SVG decoder";
+ license = licenses.mit;
+ maintainers = [ maintainers.samueldr maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix
new file mode 100644
index 000000000000..59bae9e941eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libutf8proc";
+ version = "2.4.0-1";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-AasdaYnBx3VQkNskw/ZOSflcVgrknCa+xRQrrGgCxHI=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+ description = "UTF8 Processing library for netsurf browser";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix
new file mode 100644
index 000000000000..8c5af461fd06
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "libwapcaplet";
+ version = "0.4.3";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-myqh3W1mRfjpkrNpf9vYfwwOHaVyH6VO0ptITRMWDFw=";
+ };
+
+ buildInputs = [ buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=cast-function-type";
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+ description = "String internment library for netsurf browser";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix
new file mode 100644
index 000000000000..0be7adc4a595
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl
+, flex, bison
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+ pname = "netsurf-${libname}";
+ libname = "nsgenbind";
+ version = "0.8";
+
+ src = fetchurl {
+ url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+ sha256 = "sha256-TY1TrQAK2nEncjZeanPrj8XOl1hK+chlrFsmohh/HLM=";
+ };
+
+ buildInputs = [ flex bison buildsystem ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.netsurf-browser.org/";
+ description = "Generator for JavaScript bindings for netsurf browser";
+ license = licenses.mit;
+ maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
new file mode 100644
index 000000000000..ff99b1c21ddd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, lib, lispPackages, sbcl
+, makeWrapper, wrapGAppsHook, gst_all_1
+, glib, gdk-pixbuf, cairo
+, mime-types, pango, gtk3
+, glib-networking, gsettings-desktop-schemas
+, xclip, notify-osd, enchant
+}:
+
+stdenv.mkDerivation rec {
+ pname = "nyxt";
+ inherit (lispPackages.nyxt.meta) version;
+
+ src = lispPackages.nyxt;
+
+ nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+ gstBuildInputs = with gst_all_1; [
+ gstreamer gst-libav
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugins-ugly
+ ];
+ buildInputs = [
+ glib gdk-pixbuf cairo
+ mime-types pango gtk3
+ glib-networking gsettings-desktop-schemas
+ xclip notify-osd enchant
+ ] ++ gstBuildInputs;
+
+ GST_PLUGIN_SYSTEM_PATH_1_0 = lib.concatMapStringsSep ":" (p: "${p}/lib/gstreamer-1.0") gstBuildInputs;
+
+ dontWrapGApps = true;
+ installPhase = ''
+ mkdir -p $out/share/applications/
+ sed "s/VERSION/$version/" $src/lib/common-lisp/nyxt/assets/nyxt.desktop > $out/share/applications/nyxt.desktop
+ for i in 16 32 128 256 512; do
+ mkdir -p "$out/share/icons/hicolor/''${i}x''${i}/apps/"
+ cp -f $src/lib/common-lisp/nyxt/assets/nyxt_''${i}x''${i}.png "$out/share/icons/hicolor/''${i}x''${i}/apps/nyxt.png"
+ done
+
+ mkdir -p $out/bin && makeWrapper $src/bin/nyxt $out/bin/nyxt \
+ --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "${GST_PLUGIN_SYSTEM_PATH_1_0}" \
+ --argv0 nyxt "''${gappsWrapperArgs[@]}"
+ '';
+
+ checkPhase = ''
+ $out/bin/nyxt -h
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)";
+ homepage = "https://nyxt.atlas.engineer";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ lewo ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
new file mode 100644
index 000000000000..eefe7af26a1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
@@ -0,0 +1,122 @@
+{ alsaLib
+, atk
+, cairo
+, cups
+, curl
+, dbus
+, dpkg
+, expat
+, fetchurl
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gnome2
+, gtk3
+, lib
+, libX11
+, libxcb
+, libXScrnSaver
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXrandr
+, libXrender
+, libXtst
+, libnotify
+, libpulseaudio
+, libuuid
+, nspr
+, nss
+, pango
+, stdenv
+, systemd
+, at-spi2-atk
+, at-spi2-core
+, autoPatchelfHook
+, wrapGAppsHook
+}:
+
+let
+
+ mirror = "https://get.geo.opera.com/pub/opera/desktop";
+
+in stdenv.mkDerivation rec {
+
+ pname = "opera";
+ version = "68.0.3618.63";
+
+ src = fetchurl {
+ url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
+ sha256 = "1643043ywz94x2yr7xyw7krfq53iwkr8qxlbydzq6zb2zina7jxd";
+ };
+
+ unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ alsaLib
+ at-spi2-atk
+ at-spi2-core
+ atk
+ cairo
+ cups
+ curl
+ dbus
+ expat
+ fontconfig.lib
+ freetype
+ gdk-pixbuf
+ glib
+ gnome2.GConf
+ gtk3
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXtst
+ libnotify
+ libuuid
+ libxcb
+ nspr
+ nss
+ pango
+ stdenv.cc.cc.lib
+ ];
+
+ runtimeDependencies = [
+ # Works fine without this except there is no sound.
+ libpulseaudio.out
+
+ # This is a little tricky. Without it the app starts then crashes. Then it
+ # brings up the crash report, which also crashes. `strace -f` hints at a
+ # missing libudev.so.0.
+ (lib.getLib systemd)
+ ];
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r . $out/
+ mv $out/lib/*/opera/*.so $out/lib/
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.opera.com";
+ description = "Web browser";
+ platforms = [ "x86_64-linux" ];
+ license = licenses.unfree;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
new file mode 100644
index 000000000000..5d299f3349ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -0,0 +1,159 @@
+{ stdenv, lib, fetchFromGitHub, writeScript, desktop-file-utils
+, pkgconfig, autoconf213, alsaLib, bzip2, cairo
+, dbus, dbus-glib, ffmpeg_3, file, fontconfig, freetype
+, gnome2, gnum4, gtk2, hunspell, libevent, libjpeg
+, libnotify, libstartup_notification, wrapGAppsHook
+, libGLU, libGL, perl, python2, libpulseaudio
+, unzip, xorg, wget, which, yasm, zip, zlib
+
+, withGTK3 ? false, gtk3
+}:
+
+let
+
+ libPath = lib.makeLibraryPath [ ffmpeg_3 libpulseaudio ];
+ gtkVersion = if withGTK3 then "3" else "2";
+
+in stdenv.mkDerivation rec {
+ pname = "palemoon";
+ version = "28.16.0";
+
+ src = fetchFromGitHub {
+ githubBase = "repo.palemoon.org";
+ owner = "MoonchildProductions";
+ repo = "Pale-Moon";
+ rev = "${version}_Release";
+ sha256 = "1svwbiar7c38c8xfw249mwnvayqq5868nkks7cbv9nyf2m9yap56";
+ fetchSubmodules = true;
+ };
+
+ passthru.updateScript = writeScript "update-${pname}" ''
+ #!/usr/bin/env nix-shell
+ #!nix-shell -i bash -p common-updater-scripts curl libxml2
+
+ set -eu -o pipefail
+
+ # Only release note announcement == finalized release
+ version="$(
+ curl -s 'http://www.palemoon.org/releasenotes.shtml' |
+ xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
+ sed 's/v\(\S*\).*/\1/'
+ )"
+ update-source-version ${pname} "$version"
+ '';
+
+ nativeBuildInputs = [
+ desktop-file-utils file gnum4 perl pkgconfig python2 wget which wrapGAppsHook
+ ];
+
+ buildInputs = [
+ alsaLib bzip2 cairo dbus dbus-glib ffmpeg_3 fontconfig freetype
+ gnome2.GConf gtk2 hunspell libevent libjpeg libnotify
+ libstartup_notification libGLU libGL
+ libpulseaudio unzip yasm zip zlib
+ ]
+ ++ (with xorg; [
+ libX11 libXext libXft libXi libXrender libXScrnSaver
+ libXt pixman xorgproto
+ ])
+ ++ lib.optional withGTK3 gtk3;
+
+ enableParallelBuilding = true;
+
+ configurePhase = ''
+ export MOZCONFIG=$(pwd)/mozconfig
+ export MOZ_NOSPAM=1
+
+ # Keep this similar to the official .mozconfig file,
+ # only minor changes for portability are permitted with branding.
+ # https://developer.palemoon.org/build/linux/
+ echo > $MOZCONFIG '
+ # Clear this if not a 64bit build
+ _BUILD_64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}
+
+ # Set GTK Version to 2 or 3
+ _GTK_VERSION=${gtkVersion}
+
+ # Standard build options for Pale Moon
+ ac_add_options --enable-application=palemoon
+ ac_add_options --enable-optimize="-O2 -w"
+ ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION
+ ac_add_options --enable-jemalloc
+ ac_add_options --enable-strip
+ ac_add_options --enable-devtools
+
+ ac_add_options --disable-eme
+ ac_add_options --disable-webrtc
+ ac_add_options --disable-gamepad
+ ac_add_options --disable-tests
+ ac_add_options --disable-debug
+ ac_add_options --disable-necko-wifi
+ ac_add_options --disable-updater
+
+ ac_add_options --with-pthreads
+
+ # Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding.
+ ac_add_options --enable-official-branding
+ export MOZILLA_OFFICIAL=1
+
+ # For versions after 28.12.0
+ ac_add_options --enable-phoenix-extensions
+
+ ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}
+
+ export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION
+
+ #
+ # NixOS-specific adjustments
+ #
+
+ ac_add_options --prefix=$out
+
+ mk_add_options MOZ_MAKE_FLAGS="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
+ mk_add_options AUTOCONF=${autoconf213}/bin/autoconf
+ '
+ '';
+
+ buildPhase = "$src/mach build";
+
+ installPhase = ''
+ $src/mach install
+
+ desktop-file-install --dir=$out/share/applications \
+ $src/palemoon/branding/official/palemoon.desktop
+
+ for iconname in default{16,22,24,32,48,256} mozicon128; do
+ n=''${iconname//[^0-9]/}
+ size=$n"x"$n
+ install -Dm644 $src/palemoon/branding/official/$iconname.png $out/share/icons/hicolor/$size/apps/palemoon.png
+ done
+ '';
+
+ dontWrapGApps = true;
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix LD_LIBRARY_PATH : "${libPath}"
+ )
+ wrapGApp $out/lib/palemoon-${version}/palemoon
+ '';
+
+ meta = with lib; {
+ description = "An Open Source, Goanna-based web browser focusing on efficiency and customization";
+ longDescription = ''
+ Pale Moon is an Open Source, Goanna-based web browser focusing on
+ efficiency and customization.
+
+ Pale Moon offers you a browsing experience in a browser completely built
+ from its own, independently developed source that has been forked off from
+ Firefox/Mozilla code a number of years ago, with carefully selected
+ features and optimizations to improve the browser's stability and user
+ experience, while offering full customization and a growing collection of
+ extensions and themes to make the browser truly your own.
+ '';
+ homepage = "https://www.palemoon.org/";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ AndersonTorres OPNA2608 ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
new file mode 100644
index 000000000000..9a4d61a50aee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, lib, fetchFromGitHub, qmake, qtbase }:
+
+mkDerivation rec {
+ pname = "qtchan";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "siavash119";
+ repo = "qtchan";
+ rev = "v${version}";
+ sha256 = "1x11m1kwqindzc0dkpfifcglsb362impaxs85kgzx50p898sz9ll";
+ };
+
+ enableParallelBuilding = true;
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [ qtbase ];
+ qmakeFlags = [ "CONFIG-=app_bundle" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp qtchan $out/bin
+ '';
+
+ meta = with lib; {
+ description = "4chan browser in qt5";
+ homepage = "https://github.com/siavash119/qtchan";
+ license = licenses.mit;
+ maintainers = with maintainers; [ chiiruno ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
new file mode 100644
index 000000000000..4b1efe9dba2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -0,0 +1,122 @@
+{ stdenv, lib, fetchurl, fetchzip, python3
+, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, glib-networking
+, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
+, libxslt, gst_all_1 ? null
+, withPdfReader ? true
+, withMediaPlayback ? true
+, backend ? "webengine"
+}:
+
+assert withMediaPlayback -> gst_all_1 != null;
+
+let
+ python3Packages = python3.pkgs;
+ pdfjs = let
+ version = "2.6.347";
+ in
+ fetchzip rec {
+ name = "pdfjs-${version}";
+ url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
+ sha256 = "0d016fyg81cq464li01xlkf9rxrb3rpsvmk5gh9m4d5yzmcakkfm";
+ stripRoot = false;
+ };
+
+ backendPackage =
+ if backend == "webengine" then python3Packages.pyqtwebengine else
+ if backend == "webkit" then python3Packages.pyqt5_with_qtwebkit else
+ throw ''
+ Unknown qutebrowser backend "${backend}".
+ Valid choices are qtwebengine (recommended) or qtwebkit.
+ '';
+
+in mkDerivationWith python3Packages.buildPythonApplication rec {
+ pname = "qutebrowser";
+ version = "1.14.1";
+
+ # the release tarballs are different from the git checkout!
+ src = fetchurl {
+ url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
+ sha256 = "15l7jphy1qjsh6y6kd5mgkxsl6ymm9564g1yypa946jbyrgi8k2m";
+ };
+
+ # Needs tox
+ doCheck = false;
+
+ buildInputs = [
+ qtbase
+ glib-networking
+ ] ++ lib.optionals withMediaPlayback (with gst_all_1; [
+ gst-plugins-base gst-plugins-good
+ gst-plugins-bad gst-plugins-ugly gst-libav
+ ]);
+
+ nativeBuildInputs = [
+ wrapQtAppsHook wrapGAppsHook asciidoc
+ docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pyyaml backendPackage jinja2 pygments
+ pypeg2 cssutils pyopengl attrs setuptools
+ # scripts and userscripts libs
+ tldextract beautifulsoup4
+ pyreadability pykeepass stem
+ ];
+
+ patches = [ ./fix-restart.patch ];
+
+ dontWrapGApps = true;
+ dontWrapQtApps = true;
+
+ postPatch = ''
+ substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
+
+ sed -i "s,/usr/share/,$out/share/,g" qutebrowser/utils/standarddir.py
+ '' + lib.optionalString withPdfReader ''
+ sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py
+ '';
+
+ postBuild = ''
+ a2x -f manpage doc/qutebrowser.1.asciidoc
+ '';
+
+ postInstall = ''
+ install -Dm644 doc/qutebrowser.1 "$out/share/man/man1/qutebrowser.1"
+ install -Dm644 misc/org.qutebrowser.qutebrowser.desktop \
+ "$out/share/applications/org.qutebrowser.qutebrowser.desktop"
+
+ # Install icons
+ for i in 16 24 32 48 64 128 256 512; do
+ install -Dm644 "icons/qutebrowser-''${i}x''${i}.png" \
+ "$out/share/icons/hicolor/''${i}x''${i}/apps/qutebrowser.png"
+ done
+ install -Dm644 icons/qutebrowser.svg \
+ "$out/share/icons/hicolor/scalable/apps/qutebrowser.svg"
+
+ # Install scripts
+ sed -i "s,/usr/bin/,$out/bin/,g" scripts/open_url_in_instance.sh
+ install -Dm755 -t "$out/share/qutebrowser/scripts/" $(find scripts -type f)
+ install -Dm755 -t "$out/share/qutebrowser/userscripts/" misc/userscripts/*
+
+ # Patch python scripts
+ buildPythonPath "$out $propagatedBuildInputs"
+ scripts=$(grep -rl python "$out"/share/qutebrowser/{user,}scripts/)
+ for i in $scripts; do
+ patchPythonScript "$i"
+ done
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/qutebrowser \
+ "''${gappsWrapperArgs[@]}" \
+ "''${qtWrapperArgs[@]}" \
+ --add-flags '--backend ${backend}'
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/The-Compiler/qutebrowser";
+ description = "Keyboard-focused browser with a minimal GUI";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch
new file mode 100644
index 000000000000..828fa5e107c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch
@@ -0,0 +1,19 @@
+diff --git a/quitter.py b/quitter.py
+index a42b9d0..f544ccb 100644
+--- a/qutebrowser/misc/quitter.py
++++ b/qutebrowser/misc/quitter.py
+@@ -112,13 +112,7 @@ class Quitter(QObject):
+ Return:
+ The commandline as a list of strings.
+ """
+- if os.path.basename(sys.argv[0]) == 'qutebrowser':
+- # Launched via launcher script
+- args = [sys.argv[0]]
+- elif hasattr(sys, 'frozen'):
+- args = [sys.executable]
+- else:
+- args = [sys.executable, '-m', 'qutebrowser']
++ args = ['@qutebrowser@']
+
+ # Add all open pages so they get reopened.
+ page_args = [] # type: typing.MutableSequence[str]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
new file mode 100644
index 000000000000..57eb4fad76b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchgit
+, pkgconfig, wrapGAppsHook
+, glib, gcr, glib-networking, gsettings-desktop-schemas, gtk, libsoup, webkitgtk
+, xorg, dmenu, findutils, gnused, coreutils
+, patches ? null
+}:
+
+stdenv.mkDerivation rec {
+ pname = "surf";
+ version = "unstable-2019-02-08";
+
+ src = fetchgit {
+ url = "git://git.suckless.org/surf";
+ rev = "d068a3878b6b9f2841a49cd7948cdf9d62b55585";
+ sha256 = "0pjsv2q8c74sdmqsalym8wa2lv55lj4pd36miam5wd12769xw68m";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+ buildInputs = [ glib gcr glib-networking gsettings-desktop-schemas gtk libsoup webkitgtk ];
+
+ inherit patches;
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ # Add run-time dependencies to PATH. Append them to PATH so the user can
+ # override the dependencies with their own PATH.
+ preFixup = let
+ depsPath = lib.makeBinPath [ xorg.xprop dmenu findutils gnused coreutils ];
+ in ''
+ gappsWrapperArgs+=(
+ --suffix PATH : ${depsPath}
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple web browser based on WebKitGTK";
+ longDescription = ''
+ surf is a simple web browser based on WebKitGTK. It is able to display
+ websites and follow links. It supports the XEmbed protocol which makes it
+ possible to embed it in another application. Furthermore, one can point
+ surf to another URI by setting its XProperties.
+ '';
+ homepage = "https://surf.suckless.org";
+ license = licenses.mit;
+ platforms = webkitgtk.meta.platforms;
+ maintainers = with maintainers; [ joachifm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
new file mode 100644
index 000000000000..222b1b5b767c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -0,0 +1,414 @@
+{ stdenv
+, fetchurl
+, makeDesktopItem
+
+# Common run-time dependencies
+, zlib
+
+# libxul run-time dependencies
+, atk
+, cairo
+, dbus
+, dbus-glib
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gtk3
+, libxcb
+, libX11
+, libXext
+, libXrender
+, libXt
+, pango
+
+, audioSupport ? mediaSupport
+, pulseaudioSupport ? false
+, libpulseaudio
+, apulse
+
+# Media support (implies audio support)
+, mediaSupport ? true
+, ffmpeg_3
+
+, gmp
+
+# Pluggable transport dependencies
+, python27
+
+# Wrapper runtime
+, coreutils
+, glibcLocales
+, gnome3
+, runtimeShell
+, shared-mime-info
+, gsettings-desktop-schemas
+
+# Hardening
+, graphene-hardened-malloc
+# crashes with intel driver
+, useHardenedMalloc ? false
+
+# Whether to disable multiprocess support to work around crashing tabs
+# TODO: fix the underlying problem instead of this terrible work-around
+, disableContentSandbox ? true
+
+# Extra preferences
+, extraPrefs ? ""
+}:
+
+with stdenv.lib;
+
+let
+ libPath = makeLibraryPath libPkgs;
+
+ libPkgs = [
+ atk
+ cairo
+ dbus
+ dbus-glib
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gtk3
+ libxcb
+ libX11
+ libXext
+ libXrender
+ libXt
+ pango
+ stdenv.cc.cc
+ stdenv.cc.libc
+ zlib
+ ]
+ ++ optionals pulseaudioSupport [ libpulseaudio ]
+ ++ optionals mediaSupport [
+ ffmpeg_3
+ ];
+
+ # Library search path for the fte transport
+ fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
+
+ # Upstream source
+ version = "10.0.5";
+
+ lang = "en-US";
+
+ srcs = {
+ x86_64-linux = fetchurl {
+ url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
+ sha256 = "1cxh39x69m4lgqin5k5p67gs9g26w7cnlbdpjqi8dw47y0bpr9xw";
+ };
+
+ i686-linux = fetchurl {
+ url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
+ sha256 = "1cyg5ic7mrj6x1gxw5w609933d9ripa5b5gxyqnvnxfa23dkh608";
+ };
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "tor-browser-bundle-bin";
+ inherit version;
+
+ src = srcs.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
+
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+
+ desktopItem = makeDesktopItem {
+ name = "torbrowser";
+ exec = "tor-browser";
+ icon = "torbrowser";
+ desktopName = "Tor Browser";
+ genericName = "Web Browser";
+ comment = meta.description;
+ categories = "Network;WebBrowser;Security;";
+ };
+
+ buildCommand = ''
+ # For convenience ...
+ TBB_IN_STORE=$out/share/tor-browser
+ interp=$(< $NIX_CC/nix-support/dynamic-linker)
+
+ # Unpack & enter
+ mkdir -p "$TBB_IN_STORE"
+ tar xf "${src}" -C "$TBB_IN_STORE" --strip-components=2
+ pushd "$TBB_IN_STORE"
+
+ # Set ELF interpreter
+ for exe in firefox.real TorBrowser/Tor/tor ; do
+ echo "Setting ELF interpreter on $exe ..." >&2
+ patchelf --set-interpreter "$interp" "$exe"
+ done
+
+ # firefox is a wrapper that checks for a more recent libstdc++ & appends it to the ld path
+ mv firefox.real firefox
+
+ # The final libPath. Note, we could split this into firefoxLibPath
+ # and torLibPath for accuracy, but this is more convenient ...
+ libPath=${libPath}:$TBB_IN_STORE:$TBB_IN_STORE/TorBrowser/Tor
+
+ # apulse uses a non-standard library path. For now special-case it.
+ ${optionalString (audioSupport && !pulseaudioSupport) ''
+ libPath=${apulse}/lib/apulse:$libPath
+ ''}
+
+ # Fixup paths to pluggable transports.
+ sed -i TorBrowser/Data/Tor/torrc-defaults \
+ -e "s,./TorBrowser,$TBB_IN_STORE/TorBrowser,g"
+
+ # Fixup obfs transport. Work around patchelf failing to set
+ # interpreter for pre-compiled Go binaries by invoking the interpreter
+ # directly.
+ sed -i TorBrowser/Data/Tor/torrc-defaults \
+ -e "s|\(ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit\) exec|\1 exec $interp|"
+
+ # Similarly fixup snowflake
+ sed -i TorBrowser/Data/Tor/torrc-defaults \
+ -e "s|\(ClientTransportPlugin snowflake\) exec|\1 exec $interp|"
+
+
+ # Prepare for autoconfig.
+ #
+ # See https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment
+ cat >defaults/pref/autoconfig.js <<EOF
+ //
+ pref("general.config.filename", "mozilla.cfg");
+ pref("general.config.obscure_value", 0);
+ EOF
+
+ # Hard-coded Firefox preferences.
+ cat >mozilla.cfg <<EOF
+ // First line must be a comment
+
+ // Always update via Nixpkgs
+ lockPref("app.update.auto", false);
+ lockPref("app.update.enabled", false);
+ lockPref("extensions.update.autoUpdateDefault", false);
+ lockPref("extensions.update.enabled", false);
+ lockPref("extensions.torbutton.versioncheck_enabled", false);
+
+ // User should never change these. Locking prevents these
+ // values from being written to prefs.js, avoiding Store
+ // path capture.
+ lockPref("extensions.torlauncher.torrc-defaults_path", "$TBB_IN_STORE/TorBrowser/Data/Tor/torrc-defaults");
+ lockPref("extensions.torlauncher.tor_path", "$TBB_IN_STORE/TorBrowser/Tor/tor");
+
+ // Reset pref that captures store paths.
+ clearPref("extensions.xpiState");
+
+ // Stop obnoxious first-run redirection.
+ lockPref("noscript.firstRunRedirection", false);
+
+ // Insist on using IPC for communicating with Tor
+ //
+ // Defaults to creating \$TBB_HOME/TorBrowser/Data/Tor/{socks,control}.socket
+ lockPref("extensions.torlauncher.control_port_use_ipc", true);
+ lockPref("extensions.torlauncher.socks_port_use_ipc", true);
+
+ // Optionally disable multiprocess support. We always set this to ensure that
+ // toggling the pref takes effect.
+ lockPref("browser.tabs.remote.autostart.2", ${if disableContentSandbox then "false" else "true"});
+
+ // Allow sandbox access to sound devices if using ALSA directly
+ ${if (audioSupport && !pulseaudioSupport) then ''
+ pref("security.sandbox.content.write_path_whitelist", "/dev/snd/");
+ '' else ''
+ clearPref("security.sandbox.content.write_path_whitelist");
+ ''}
+
+ ${optionalString (extraPrefs != "") ''
+ ${extraPrefs}
+ ''}
+ EOF
+
+ # Hard-code path to TBB fonts; see also FONTCONFIG_FILE in
+ # the wrapper below.
+ FONTCONFIG_FILE=$TBB_IN_STORE/TorBrowser/Data/fontconfig/fonts.conf
+ sed -i "$FONTCONFIG_FILE" \
+ -e "s,<dir>fonts</dir>,<dir>$TBB_IN_STORE/fonts</dir>,"
+
+ # Preload extensions by moving into the runtime instead of storing under the
+ # user's profile directory.
+ # See https://support.mozilla.org/en-US/kb/deploying-firefox-with-extensions
+ mkdir -p "$TBB_IN_STORE/distribution/extensions"
+ mv "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/extensions/"* \
+ "$TBB_IN_STORE/distribution/extensions"
+
+ # Hard-code paths to geoip data files. TBB resolves the geoip files
+ # relative to torrc-defaults_path but if we do not hard-code them
+ # here, these paths end up being written to the torrc in the user's
+ # state dir.
+ cat >>TorBrowser/Data/Tor/torrc-defaults <<EOF
+ GeoIPFile $TBB_IN_STORE/TorBrowser/Data/Tor/geoip
+ GeoIPv6File $TBB_IN_STORE/TorBrowser/Data/Tor/geoip6
+ EOF
+
+ WRAPPER_LD_PRELOAD=${optionalString useHardenedMalloc
+ "${graphene-hardened-malloc}/lib/libhardened_malloc.so"}
+
+ WRAPPER_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [
+ gnome3.adwaita-icon-theme
+ shared-mime-info
+ ]}
+ WRAPPER_XDG_DATA_DIRS+=":"${concatMapStringsSep ":" (x: "${x}/share/gsettings-schemas/${x.name}") [
+ glib
+ gsettings-desktop-schemas
+ gtk3
+ ]};
+
+ # Generate wrapper
+ mkdir -p $out/bin
+ cat > "$out/bin/tor-browser" << EOF
+ #! ${runtimeShell}
+ set -o errexit -o nounset
+
+ PATH=${makeBinPath [ coreutils ]}
+ export LC_ALL=C
+ export LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive
+
+ # Enter local state directory.
+ REAL_HOME=\$HOME
+ TBB_HOME=\''${TBB_HOME:-''${XDG_DATA_HOME:-\$REAL_HOME/.local/share}/tor-browser}
+ HOME=\$TBB_HOME
+
+ mkdir -p "\$HOME"
+ cd "\$HOME"
+
+ # Initialize empty TBB local state directory hierarchy. We
+ # intentionally mirror the layout that TBB would see if executed from
+ # the unpacked bundle dir.
+ mkdir -p "\$HOME/TorBrowser" "\$HOME/TorBrowser/Data"
+
+ # Initialize the Tor data directory.
+ mkdir -p "\$HOME/TorBrowser/Data/Tor"
+
+ # TBB will fail if ownership is too permissive
+ chmod 0700 "\$HOME/TorBrowser/Data/Tor"
+
+ # Initialize the browser profile state. Note that the only data
+ # copied from the Store payload is the initial bookmark file, which is
+ # never updated once created. All other files under user's profile
+ # dir are generated by TBB.
+ mkdir -p "\$HOME/TorBrowser/Data/Browser/profile.default"
+ cp -u --no-preserve=mode,owner "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/bookmarks.html" \
+ "\$HOME/TorBrowser/Data/Browser/profile.default/bookmarks.html"
+
+ # Clear out some files that tend to capture store references but are
+ # easily generated by firefox at startup.
+ rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{addonStartup.json.lz4,compatibility.ini,extensions.ini,extensions.json}
+ rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/startupCache/*
+
+ # XDG
+ : "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}"
+ : "\''${XDG_CONFIG_HOME:=\$REAL_HOME/.config}"
+
+ ${optionalString pulseaudioSupport ''
+ # Figure out some envvars for pulseaudio
+ : "\''${PULSE_SERVER:=\$XDG_RUNTIME_DIR/pulse/native}"
+ : "\''${PULSE_COOKIE:=\$XDG_CONFIG_HOME/pulse/cookie}"
+ ''}
+
+ # Font cache files capture store paths; clear them out on the off
+ # chance that TBB would continue using old font files.
+ rm -rf "\$HOME/.cache/fontconfig"
+
+ # Lift-off
+ #
+ # XAUTHORITY and DISPLAY are required for TBB to work at all.
+ #
+ # DBUS_SESSION_BUS_ADDRESS is inherited to avoid auto-launch; to
+ # prevent that, set it to an empty/invalid value prior to running
+ # tor-browser.
+ #
+ # PULSE_SERVER is necessary for audio playback.
+ #
+ # Setting FONTCONFIG_FILE is required to make fontconfig read the TBB
+ # fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024
+ # indicates the system fonts.conf being used instead.
+ #
+ # XDG_DATA_DIRS is set to prevent searching system dirs (looking for .desktop & icons)
+ exec env -i \
+ LD_PRELOAD=$WRAPPER_LD_PRELOAD \
+ \
+ TZ=":" \
+ TZDIR="\''${TZDIR:-}" \
+ LOCALE_ARCHIVE="\$LOCALE_ARCHIVE" \
+ \
+ TMPDIR="\''${TMPDIR:-/tmp}" \
+ HOME="\$HOME" \
+ XAUTHORITY="\''${XAUTHORITY:-\$HOME/.Xauthority}" \
+ DISPLAY="\$DISPLAY" \
+ DBUS_SESSION_BUS_ADDRESS="\''${DBUS_SESSION_BUS_ADDRESS:-unix:path=\$XDG_RUNTIME_DIR/bus}" \\
+ \
+ XDG_DATA_HOME="\$HOME/.local/share" \
+ XDG_DATA_DIRS="$WRAPPER_XDG_DATA_DIRS" \
+ \
+ PULSE_SERVER="\''${PULSE_SERVER:-}" \
+ PULSE_COOKIE="\''${PULSE_COOKIE:-}" \
+ \
+ APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plug:dmix}" \
+ \
+ TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \
+ TOR_CONTROL_PORT="\''${TOR_CONTROL_PORT:-}" \
+ TOR_SOCKS_PORT="\''${TOR_SOCKS_PORT:-}" \
+ \
+ FONTCONFIG_FILE="$FONTCONFIG_FILE" \
+ \
+ LD_LIBRARY_PATH="$libPath" \
+ \
+ "$TBB_IN_STORE/firefox" \
+ --class "Tor Browser" \
+ -no-remote \
+ -profile "\$HOME/TorBrowser/Data/Browser/profile.default" \
+ "\''${@}"
+ EOF
+ chmod +x $out/bin/tor-browser
+
+ # Easier access to docs
+ mkdir -p $out/share/doc
+ ln -s $TBB_IN_STORE/TorBrowser/Docs $out/share/doc/tor-browser
+
+ # Install .desktop item
+ mkdir -p $out/share/applications
+ cp $desktopItem/share/applications"/"* $out/share/applications
+ sed -i $out/share/applications/torbrowser.desktop \
+ -e "s,Exec=.*,Exec=$out/bin/tor-browser," \
+ -e "s,Icon=.*,Icon=tor-browser,"
+ for i in 16 32 48 64 128; do
+ mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps/
+ ln -s $out/share/tor-browser/browser/chrome/icons/default/default$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/tor-browser.png
+ done
+
+ # Check installed apps
+ echo "Checking bundled Tor ..."
+ LD_LIBRARY_PATH=$libPath $TBB_IN_STORE/TorBrowser/Tor/tor --version >/dev/null
+
+ echo "Checking tor-browser wrapper ..."
+ DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$(mktemp -d) \
+ $out/bin/tor-browser --version >/dev/null
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tor Browser Bundle built by torproject.org";
+ longDescription = ''
+ Tor Browser Bundle is a bundle of the Tor daemon, Tor Browser (heavily patched version of
+ Firefox), several essential extensions for Tor Browser, and some tools that glue those
+ together with a convenient UI.
+
+ `tor-browser-bundle-bin` package is the official version built by torproject.org patched with
+ `patchelf` to work under nix and with bundled scripts adapted to the read-only nature of
+ the `/nix/store`.
+ '';
+ homepage = "https://www.torproject.org/";
+ changelog = "https://gitweb.torproject.org/builders/tor-browser-build.git/plain/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt?h=maint-${version}";
+ platforms = attrNames srcs;
+ maintainers = with maintainers; [ offline matejc thoughtpolice joachifm hax404 cap KarlJoad ];
+ hydraPlatforms = [];
+ # MPL2.0+, GPL+, &c. While it's not entirely clear whether
+ # the compound is "libre" in a strict sense (some components place certain
+ # restrictions on redistribution), it's free enough for our purposes.
+ license = licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
new file mode 100644
index 000000000000..7356768f3973
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
@@ -0,0 +1,111 @@
+{ stdenv
+, fetchgit
+, fetchurl
+
+# common
+, zip
+
+# HTTPS Everywhere
+, git
+, libxml2 # xmllint
+, python27
+, python27Packages
+, rsync
+}:
+
+{
+ https-everywhere = stdenv.mkDerivation rec {
+ pname = "https-everywhere";
+ version = "2017.10.4";
+
+ extid = "https-everywhere-eff@eff.org";
+
+ src = fetchgit {
+ url = "https://git.torproject.org/https-everywhere.git";
+ rev = "refs/tags/${version}";
+ sha256 = "1g7971xygnhagnb25xjdf6mli6091ai9igx42d0ww88g8i0cqfzj";
+ fetchSubmodules = true; # for translations, TODO: remove
+ };
+
+ nativeBuildInputs = [
+ git
+ libxml2 # xmllint
+ python27
+ python27Packages.lxml
+ rsync
+ zip
+ ];
+
+ buildPhase = ''
+ $shell ./makexpi.sh ${version} --no-recurse
+ '';
+
+ installPhase = ''
+ install -m 444 -D pkg/https-everywhere-$version-eff.xpi "$out/$extid.xpi"
+ '';
+ };
+
+ noscript = stdenv.mkDerivation rec {
+ pname = "noscript";
+ version = "5.1.2";
+
+ extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}";
+
+ src = fetchurl {
+ url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi";
+ sha256 = "1fzspdiwhjabwz1yxb3gzj7giz9jbc1xxm65i93rvhzcp537cs42";
+ };
+
+ dontUnpack = true;
+
+ installPhase = ''
+ install -m 444 -D $src "$out/$extid.xpi"
+ '';
+ };
+
+ torbutton = stdenv.mkDerivation rec {
+ pname = "torbutton";
+ version = "1.9.8.1";
+
+ extid = "torbutton@torproject.org";
+
+ src = fetchgit {
+ url = "https://git.torproject.org/torbutton.git";
+ rev = "refs/tags/${version}";
+ sha256 = "1amp0c9ky0a7fsa0bcbi6n6ginw7s2g3an4rj7kvc1lxmrcsm65l";
+ };
+
+ nativeBuildInputs = [ zip ];
+
+ buildPhase = ''
+ $shell ./makexpi.sh
+ '';
+
+ installPhase = ''
+ install -m 444 -D pkg/torbutton-$version.xpi "$out/$extid.xpi"
+ '';
+ };
+
+ tor-launcher = stdenv.mkDerivation rec {
+ pname = "tor-launcher";
+ version = "0.2.13";
+
+ extid = "tor-launcher@torproject.org";
+
+ src = fetchgit {
+ url = "https://git.torproject.org/tor-launcher.git";
+ rev = "refs/tags/${version}";
+ sha256 = "1f98v88y2clwvjiw77kxqc9cacp5h0489a540nc2wmsx7vnskrq0";
+ };
+
+ nativeBuildInputs = [ zip ];
+
+ buildPhase = ''
+ make package
+ '';
+
+ installPhase = ''
+ install -m 444 -D pkg/tor-launcher-$version.xpi "$out/$extid.xpi"
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix
new file mode 100644
index 000000000000..c5cbee196521
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix
@@ -0,0 +1,87 @@
+{ stdenv, mkChromiumDerivation, channel, enableWideVine }:
+
+with stdenv.lib;
+
+mkChromiumDerivation (base: rec {
+ name = "chromium-browser";
+ packageName = "chromium";
+ buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ];
+
+ outputs = ["out" "sandbox"];
+
+ sandboxExecutableName = "__chromium-suid-sandbox";
+
+ installPhase = ''
+ mkdir -p "$libExecPath"
+ cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
+ cp -v "$buildPath/icudtl.dat" "$libExecPath/"
+ cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
+ cp -v "$buildPath/chrome" "$libExecPath/$packageName"
+
+ # Swiftshader
+ # See https://stackoverflow.com/a/4264351/263061 for the find invocation.
+ if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then
+ echo "Swiftshader files found; installing"
+ mkdir -p "$libExecPath/swiftshader"
+ cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/"
+ else
+ echo "Swiftshader files not found"
+ fi
+
+ mkdir -p "$sandbox/bin"
+ cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}"
+
+ mkdir -vp "$out/share/man/man1"
+ cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1"
+
+ for icon_file in chrome/app/theme/chromium/product_logo_*[0-9].png; do
+ num_and_suffix="''${icon_file##*logo_}"
+ icon_size="''${num_and_suffix%.*}"
+ expr "$icon_size" : "^[0-9][0-9]*$" || continue
+ logo_output_prefix="$out/share/icons/hicolor"
+ logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
+ mkdir -vp "$logo_output_path"
+ cp -v "$icon_file" "$logo_output_path/$packageName.png"
+ done
+
+ # Install Desktop Entry
+ install -D chrome/installer/linux/common/desktop.template \
+ $out/share/applications/chromium-browser.desktop
+
+ substituteInPlace $out/share/applications/chromium-browser.desktop \
+ --replace "@@MENUNAME@@" "Chromium" \
+ --replace "@@PACKAGE@@" "chromium" \
+ --replace "Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "Exec=chromium"
+
+ # Append more mime types to the end
+ sed -i '/^MimeType=/ s,$,x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown,' \
+ $out/share/applications/chromium-browser.desktop
+
+ # See https://github.com/NixOS/nixpkgs/issues/12433
+ sed -i \
+ -e '/\[Desktop Entry\]/a\' \
+ -e 'StartupWMClass=chromium-browser' \
+ $out/share/applications/chromium-browser.desktop
+ '';
+
+ passthru = { inherit sandboxExecutableName; };
+
+ requiredSystemFeatures = [ "big-parallel" ];
+
+ meta = {
+ description = "An open source web browser from Google, with dependencies on Google web services removed";
+ longDescription = ''
+ Chromium is an open source web browser from Google that aims to build a
+ safer, faster, and more stable way for all Internet users to experience
+ the web. It has a minimalist user interface and provides the vast majority
+ of source code for Google Chrome (which has some additional features).
+ '';
+ homepage = "https://github.com/Eloston/ungoogled-chromium";
+ maintainers = with maintainers; [ squalus ];
+ license = if enableWideVine then licenses.unfree else licenses.bsd3;
+ platforms = platforms.linux;
+ hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
+ timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
+ broken = channel == "dev"; # Blocked on https://bugs.chromium.org/p/chromium/issues/detail?id=1141896
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
new file mode 100644
index 000000000000..2accb1a7ab21
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
@@ -0,0 +1,358 @@
+{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, fetchurl
+
+# default dependencies
+, gnutar, bzip2, flac, speex, libopus
+, libevent, expat, libjpeg, snappy
+, libpng, libcap
+, xdg_utils, yasm, nasm, minizip, libwebp
+, libusb1, pciutils, nss, re2
+
+, python2Packages, perl, pkgconfig
+, nspr, systemd, kerberos
+, util-linux, alsaLib
+, bison, gperf
+, glib, gtk3, dbus-glib
+, glibc
+, libXScrnSaver, libXcursor, libXtst, libGLU, libGL
+, protobuf, speechd, libXdamage, cups
+, ffmpeg, libxslt, libxml2, at-spi2-core
+, jre8
+, pipewire_0_2
+
+# optional dependencies
+, libgcrypt ? null # gnomeSupport || cupsSupport
+, libva ? null # useVaapi
+, libdrm ? null, wayland ? null, mesa ? null, libxkbcommon ? null # useOzone
+
+# package customization
+, useOzone ? false
+, useVaapi ? !(useOzone || stdenv.isAarch64) # Built if supported, but disabled in the wrapper
+# VA-API TODOs:
+# - Ozone: M81 fails to build due to "ozone_platform_gbm = false"
+# - Possible solutions: Write a patch to fix the build (wrong gn dependencies)
+# or build with minigbm
+# - AArch64: Causes serious regressions (https://github.com/NixOS/nixpkgs/pull/85253#issuecomment-614405879)
+, gnomeSupport ? false, gnome ? null
+, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
+, proprietaryCodecs ? true
+, cupsSupport ? true
+, pulseSupport ? false, libpulseaudio ? null
+, ungoogled-chromium
+, ungoogled ? false
+
+, channel
+, upstream-info
+}:
+
+buildFun:
+
+with stdenv.lib;
+
+let
+ jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+
+ # The additional attributes for creating derivations based on the chromium
+ # source tree.
+ extraAttrs = buildFun base;
+
+ githubPatch = commit: sha256: fetchpatch {
+ url = "https://github.com/chromium/chromium/commit/${commit}.patch";
+ inherit sha256;
+ };
+
+ mkGnFlags =
+ let
+ # Serialize Nix types into GN types according to this document:
+ # https://source.chromium.org/gn/gn/+/master:docs/language.md
+ mkGnString = value: "\"${escape ["\"" "$" "\\"] value}\"";
+ sanitize = value:
+ if value == true then "true"
+ else if value == false then "false"
+ else if isList value then "[${concatMapStringsSep ", " sanitize value}]"
+ else if isInt value then toString value
+ else if isString value then mkGnString value
+ else throw "Unsupported type for GN value `${value}'.";
+ toFlag = key: value: "${key}=${sanitize value}";
+ in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
+
+ # https://source.chromium.org/chromium/chromium/src/+/master:build/linux/unbundle/replace_gn_files.py
+ gnSystemLibraries = [
+ "ffmpeg"
+ "flac"
+ "libjpeg"
+ "libpng"
+ "libwebp"
+ "libxslt"
+ "opus"
+ "snappy"
+ "zlib"
+ ];
+
+ opusWithCustomModes = libopus.override {
+ withCustomModes = true;
+ };
+
+ defaultDependencies = [
+ bzip2 flac speex opusWithCustomModes
+ libevent expat libjpeg snappy
+ libpng libcap
+ xdg_utils minizip libwebp
+ libusb1 re2
+ ffmpeg libxslt libxml2
+ nasm
+ ];
+
+ # build paths and release info
+ packageName = extraAttrs.packageName or extraAttrs.name;
+ buildType = "Release";
+ buildPath = "out/${buildType}";
+ libExecPath = "$out/libexec/${packageName}";
+
+ versionRange = min-version: upto-version:
+ let inherit (upstream-info) version;
+ result = versionAtLeast version min-version && versionOlder version upto-version;
+ stable-version = (importJSON ./upstream-info.json).stable.version;
+ in if versionAtLeast stable-version upto-version
+ then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it."
+ result
+ else result;
+
+ ungoogler =
+ let versionEntry = (import ./ungoogled-src.nix)."${upstream-info.version}";
+ in ungoogled-chromium {
+ inherit (versionEntry) rev sha256;
+ };
+ base = rec {
+ name = "${packageName}-unwrapped-${version}";
+ inherit (upstream-info) version;
+ inherit channel packageName buildType buildPath;
+
+ src = fetchurl {
+ url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
+ inherit (upstream-info) sha256;
+ };
+
+ nativeBuildInputs = [
+ llvmPackages.lldClang.bintools
+ ninja which python2Packages.python perl pkgconfig
+ python2Packages.ply python2Packages.jinja2 nodejs
+ gnutar python2Packages.setuptools
+ ];
+
+ buildInputs = defaultDependencies ++ [
+ nspr nss systemd
+ util-linux alsaLib
+ bison gperf kerberos
+ glib gtk3 dbus-glib
+ libXScrnSaver libXcursor libXtst libGLU libGL
+ pciutils protobuf speechd libXdamage at-spi2-core
+ jre
+ pipewire_0_2
+ ] ++ optional useVaapi libva
+ ++ optional gnomeKeyringSupport libgnome-keyring3
+ ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
+ ++ optionals cupsSupport [ libgcrypt cups ]
+ ++ optional pulseSupport libpulseaudio
+ ++ optionals useOzone [ libdrm wayland mesa.drivers libxkbcommon ];
+
+ patches = [
+ ./patches/no-build-timestamps.patch # Optional patch to use SOURCE_DATE_EPOCH in compute_build_timestamp.py (should be upstreamed)
+ ./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags
+ # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
+ ] ++ optionals (useVaapi && versionRange "86" "87") [
+ # Check for enable-accelerated-video-decode on Linux:
+ (githubPatch "54deb9811ca9bd2327def5c05ba6987b8c7a0897" "11jvxjlkzz1hm0pvfyr88j7z3zbwzplyl5idkx92l2lzv4459c8d")
+ ];
+
+ postPatch = ''
+ # remove unused third-party
+ for lib in ${toString gnSystemLibraries}; do
+ if [ -d "third_party/$lib" ]; then
+ find "third_party/$lib" -type f \
+ \! -path "third_party/$lib/chromium/*" \
+ \! -path "third_party/$lib/google/*" \
+ \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \
+ \! -regex '.*\.\(gn\|gni\|isolate\)' \
+ -delete
+ fi
+ done
+
+ # Required for patchShebangs (unsupported interpreter directive, basename: invalid option -- '*', etc.):
+ substituteInPlace native_client/SConstruct --replace "#! -*- python -*-" ""
+ if [ -e third_party/harfbuzz-ng/src/src/update-unicode-tables.make ]; then
+ substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
+ --replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
+ fi
+
+ # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
+ substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
+ --replace \
+ 'return sandbox_binary;' \
+ 'return base::FilePath(GetDevelSandboxPath());'
+
+ substituteInPlace services/audio/audio_sandbox_hook_linux.cc \
+ --replace \
+ '/usr/share/alsa/' \
+ '${alsaLib}/share/alsa/' \
+ --replace \
+ '/usr/lib/x86_64-linux-gnu/gconv/' \
+ '${glibc}/lib/gconv/' \
+ --replace \
+ '/usr/share/locale/' \
+ '${glibc}/share/locale/'
+
+ sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
+ chrome/browser/shell_integration_linux.cc
+
+ sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
+ device/udev_linux/udev?_loader.cc
+
+ sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
+ gpu/config/gpu_info_collector_linux.cc
+
+ # Allow to put extensions into the system-path.
+ sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc
+
+ patchShebangs .
+ # use our own nodejs
+ mkdir -p third_party/node/linux/node-linux-x64/bin
+ ln -s "$(command -v node)" third_party/node/linux/node-linux-x64/bin/node
+
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py
+
+ '' + optionalString stdenv.isAarch64 ''
+ substituteInPlace build/toolchain/linux/BUILD.gn \
+ --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
+ '' + optionalString ungoogled ''
+ ${ungoogler}/utils/prune_binaries.py . ${ungoogler}/pruning.list || echo "some errors"
+ ${ungoogler}/utils/patches.py . ${ungoogler}/patches
+ ${ungoogler}/utils/domain_substitution.py apply -r ${ungoogler}/domain_regex.list -f ${ungoogler}/domain_substitution.list -c ./ungoogled-domsubcache.tar.gz .
+ '';
+
+ gnFlags = mkGnFlags ({
+ custom_toolchain = "//build/toolchain/linux/unbundle:default";
+ host_toolchain = "//build/toolchain/linux/unbundle:default";
+ is_official_build = true;
+ is_debug = false;
+
+ proprietary_codecs = false;
+ use_sysroot = false;
+ use_gnome_keyring = gnomeKeyringSupport;
+ use_gio = gnomeSupport;
+ # ninja: error: '../../native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-objcopy',
+ # needed by 'nacl_irt_x86_64.nexe', missing and no known rule to make it
+ enable_nacl = false;
+ # Enabling the Widevine component here doesn't affect whether we can
+ # redistribute the chromium package; the Widevine component is either
+ # added later in the wrapped -wv build or downloaded from Google.
+ enable_widevine = true;
+ use_cups = cupsSupport;
+ # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture.
+ rtc_use_pipewire = true;
+
+ treat_warnings_as_errors = false;
+ is_clang = stdenv.cc.isClang;
+ clang_use_chrome_plugins = false;
+ blink_symbol_level = 0;
+ symbol_level = 0;
+ fieldtrial_testing_like_official_build = true;
+
+ # Google API keys, see:
+ # http://www.chromium.org/developers/how-tos/api-keys
+ # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
+ # please get your own set of keys.
+ google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
+ google_default_client_id = "404761575300.apps.googleusercontent.com";
+ google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
+ } // optionalAttrs proprietaryCodecs {
+ # enable support for the H.264 codec
+ proprietary_codecs = true;
+ enable_hangout_services_extension = true;
+ ffmpeg_branding = "Chrome";
+ } // optionalAttrs useVaapi {
+ use_vaapi = true;
+ } // optionalAttrs pulseSupport {
+ use_pulseaudio = true;
+ link_pulseaudio = true;
+ } // optionalAttrs useOzone {
+ use_ozone = true;
+ ozone_platform_gbm = false;
+ use_xkbcommon = true;
+ use_glib = true;
+ use_gtk = true;
+ use_system_libwayland = true;
+ use_system_minigbm = true;
+ use_system_libdrm = true;
+ system_wayland_scanner_path = "${wayland}/bin/wayland-scanner";
+ } // optionalAttrs ungoogled {
+ enable_hangout_services_extension = false;
+ enable_js_type_check = false;
+ enable_mdns = false;
+ enable_nacl_nonsfi = false;
+ enable_one_click_signin = false;
+ enable_reading_list = false;
+ enable_remoting = false;
+ enable_reporting = false;
+ enable_service_discovery = false;
+ exclude_unwind_tables = true;
+ google_api_key = "";
+ google_default_client_id = "";
+ google_default_client_secret = "";
+ safe_browsing_mode = 0;
+ use_official_google_api_keys = false;
+ use_unofficial_version_number = false;
+ } // (extraAttrs.gnFlags or {}));
+
+ configurePhase = ''
+ runHook preConfigure
+
+ # This is to ensure expansion of $out.
+ libExecPath="${libExecPath}"
+ python build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
+ ${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt
+
+ # Fail if `gn gen` contains a WARNING.
+ grep -o WARNING gn-gen-outputs.txt && echo "Found gn WARNING, exiting nix build" && exit 1
+
+ runHook postConfigure
+ '';
+
+ # Don't spam warnings about unknown warning options. This is useful because
+ # our Clang is always older than Chromium's and the build logs have a size
+ # of approx. 25 MB without this option (and this saves e.g. 66 %).
+ NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option";
+
+ buildPhase = let
+ buildCommand = target: ''
+ ninja -C "${buildPath}" -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES "${target}"
+ (
+ source chrome/installer/linux/common/installer.include
+ PACKAGE=$packageName
+ MENUNAME="Chromium"
+ process_template chrome/app/resources/manpage.1.in "${buildPath}/chrome.1"
+ )
+ '';
+ targets = extraAttrs.buildTargets or [];
+ commands = map buildCommand targets;
+ in concatStringsSep "\n" commands;
+
+ postFixup = ''
+ # Make sure that libGLESv2 is found by dlopen (if using EGL).
+ chromiumBinary="$libExecPath/$packageName"
+ origRpath="$(patchelf --print-rpath "$chromiumBinary")"
+ patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary"
+ '';
+
+ passthru = {
+ updateScript = ./update.py;
+ chromiumDeps = {
+ gn = gnChromium;
+ };
+ };
+ };
+
+# Remove some extraAttrs we supplied to the base attributes already.
+in stdenv.mkDerivation (base // removeAttrs extraAttrs [
+ "name" "gnFlags" "buildTargets"
+] // { passthru = base.passthru // (extraAttrs.passthru or {}); })
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
new file mode 100644
index 000000000000..b02c91c6e230
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
@@ -0,0 +1,218 @@
+{ newScope, config, stdenv, fetchurl, makeWrapper
+, llvmPackages_11, ed, gnugrep, coreutils, xdg_utils
+, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
+, libva ? null
+, pipewire_0_2
+, gcc, nspr, nss, runCommand
+, lib
+
+# package customization
+# Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper)
+, channel ? "stable"
+, gnomeSupport ? false, gnome ? null
+, gnomeKeyringSupport ? false
+, proprietaryCodecs ? true
+, enablePepperFlash ? false
+, enableWideVine ? false
+, enableVaapi ? false # Disabled by default due to unofficial support
+, ungoogled ? true
+, useOzone ? false
+, cupsSupport ? true
+, pulseSupport ? config.pulseaudio or stdenv.isLinux
+, commandLineArgs ? ""
+}:
+
+let
+ llvmPackages = llvmPackages_11;
+ stdenv = llvmPackages.stdenv;
+
+ callPackage = newScope chromium;
+
+ chromium = rec {
+ inherit stdenv llvmPackages;
+
+ upstream-info = (lib.importJSON ./upstream-info.json).${channel};
+
+ mkChromiumDerivation = callPackage ./common.nix ({
+ inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
+ cupsSupport pulseSupport useOzone;
+ inherit ungoogled;
+ gnChromium = gn.overrideAttrs (oldAttrs: {
+ inherit (upstream-info.deps.gn) version;
+ src = fetchgit {
+ inherit (upstream-info.deps.gn) url rev sha256;
+ };
+ });
+ } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "87") {
+ useOzone = true; # YAY: https://chromium-review.googlesource.com/c/chromium/src/+/2382834 \o/
+ useVaapi = !stdenv.isAarch64; # TODO: Might be best to not set use_vaapi anymore (default is fine)
+ });
+
+ browser = callPackage ./browser.nix { inherit channel enableWideVine; };
+
+ plugins = callPackage ./plugins.nix {
+ inherit enablePepperFlash;
+ };
+
+ ungoogled-chromium = callPackage ./ungoogled.nix {};
+ };
+
+ pkgSuffix = if channel == "dev" then "unstable" else channel;
+ pkgName = "google-chrome-${pkgSuffix}";
+ chromeSrc = fetchurl {
+ urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
+ "https://dl.google.com/linux/chrome/deb/pool/main/g"
+ "http://95.31.35.30/chrome/pool/main/g"
+ "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
+ "http://repo.fdzh.org/chrome/deb/pool/main/g"
+ ];
+ sha256 = chromium.upstream-info.sha256bin64;
+ };
+
+ mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
+ widevineCdm = stdenv.mkDerivation {
+ name = "chrome-widevine-cdm";
+
+ src = chromeSrc;
+
+ phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
+
+ unpackCmd = let
+ widevineCdmPath =
+ if channel == "stable" then
+ "./opt/google/chrome/WidevineCdm"
+ else if channel == "beta" then
+ "./opt/google/chrome-beta/WidevineCdm"
+ else if channel == "dev" then
+ "./opt/google/chrome-unstable/WidevineCdm"
+ else
+ throw "Unknown chromium channel.";
+ in ''
+ # Extract just WidevineCdm from upstream's .deb file
+ ar p "$src" data.tar.xz | tar xJ "${widevineCdmPath}"
+
+ # Move things around so that we don't have to reference a particular
+ # chrome-* directory later.
+ mv "${widevineCdmPath}" ./
+
+ # unpackCmd wants a single output directory; let it take WidevineCdm/
+ rm -rf opt
+ '';
+
+ doCheck = true;
+ checkPhase = ''
+ ! find -iname '*.so' -exec ldd {} + | grep 'not found'
+ '';
+
+ PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ];
+
+ patchPhase = ''
+ patchelf --set-rpath "$PATCH_RPATH" _platform_specific/linux_x64/libwidevinecdm.so
+ '';
+
+ installPhase = ''
+ mkdir -p $out/WidevineCdm
+ cp -a * $out/WidevineCdm/
+ '';
+
+ meta = {
+ platforms = [ "x86_64-linux" ];
+ license = lib.licenses.unfree;
+ };
+ };
+
+ suffix = if channel != "stable" then "-" + channel else "";
+
+ sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
+
+ version = chromium.browser.version;
+
+ # We want users to be able to enableWideVine without rebuilding all of
+ # chromium, so we have a separate derivation here that copies chromium
+ # and adds the unfree WidevineCdm.
+ chromiumWV = let browser = chromium.browser; in if enableWideVine then
+ runCommand (browser.name + "-wv") { version = browser.version; }
+ ''
+ mkdir -p $out
+ cp -a ${browser}/* $out/
+ chmod u+w $out/libexec/chromium
+ cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/
+ ''
+ else browser;
+
+in stdenv.mkDerivation {
+ name = "ungoogled-chromium${suffix}-${version}";
+ inherit version;
+
+ buildInputs = [
+ makeWrapper ed
+
+ # needed for GSETTINGS_SCHEMAS_PATH
+ gsettings-desktop-schemas glib gtk3
+
+ # needed for XDG_ICON_DIRS
+ gnome3.adwaita-icon-theme
+ ];
+
+ outputs = ["out" "sandbox"];
+
+ buildCommand = let
+ browserBinary = "${chromiumWV}/libexec/chromium/chromium";
+ getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
+ libPath = stdenv.lib.makeLibraryPath [ libva pipewire_0_2 ];
+
+ in with stdenv.lib; ''
+ mkdir -p "$out/bin"
+
+ eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
+ --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \
+ ${lib.optionalString enableVaapi "--add-flags --enable-accelerated-video-decode"} \
+ ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
+
+ ed -v -s "$out/bin/chromium" << EOF
+ 2i
+
+ if [ -x "/run/wrappers/bin/${sandboxExecutableName}" ]
+ then
+ export CHROME_DEVEL_SANDBOX="/run/wrappers/bin/${sandboxExecutableName}"
+ else
+ export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}"
+ fi
+
+ '' + lib.optionalString (libPath != "") ''
+ # To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not
+ # contain an empty section before or after a colon.
+ export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${libPath}"
+ '' + ''
+
+ # libredirect causes chromium to deadlock on startup
+ export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | ${coreutils}/bin/tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | ${coreutils}/bin/tr '\n' ':')"
+
+ export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
+
+ # Mainly for xdg-open but also other xdg-* tools:
+ export PATH="${xdg_utils}/bin\''${PATH:+:}\$PATH"
+
+ .
+ w
+ EOF
+
+ ln -sv "${chromium.browser.sandbox}" "$sandbox"
+
+ ln -s "$out/bin/chromium" "$out/bin/chromium-browser"
+
+ mkdir -p "$out/share"
+ for f in '${chromium.browser}'/share/*; do # hello emacs */
+ ln -s -t "$out/share/" "$f"
+ done
+ '';
+
+ inherit (chromium.browser) packageName;
+ meta = chromium.browser.meta;
+ passthru = {
+ inherit (chromium) upstream-info browser;
+ mkDerivation = chromium.mkChromiumDerivation;
+ inherit chromeSrc sandboxExecutableName;
+ updateScript = ./update.py;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch
new file mode 100644
index 000000000000..6b788f43d29c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch
@@ -0,0 +1,17 @@
+--- chromium-70.0.3538.67/build/compute_build_timestamp.py.orig 2018-11-02 16:00:34.368933077 +0200
++++ chromium-70.0.3538.67/build/compute_build_timestamp.py 2018-11-08 04:06:21.658105129 +0200
+@@ -94,6 +94,14 @@
+ 'build_type', help='The type of build', choices=('official', 'default'))
+ args = argument_parser.parse_args()
+
++ # I don't trust LASTCHANGE magic, and I definelly want something deterministic here
++ SOURCE_DATE_EPOCH = os.getenv("SOURCE_DATE_EPOCH", None)
++ if SOURCE_DATE_EPOCH is not None:
++ print(SOURCE_DATE_EPOCH)
++ return 0
++ else:
++ raise RuntimeError("SOURCE_DATE_EPOCH not set")
++
+ # The mtime of the revision in build/util/LASTCHANGE is stored in a file
+ # next to it. Read it, to get a deterministic time close to "now".
+ # That date is then modified as described at the top of the file so that
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch
new file mode 100644
index 000000000000..32f0ae2fb5e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn
+index ed0e2f5208b..5b431a030d5 100644
+--- a/third_party/widevine/cdm/BUILD.gn
++++ b/third_party/widevine/cdm/BUILD.gn
+@@ -14,7 +14,7 @@ buildflag_header("buildflags") {
+
+ flags = [
+ "ENABLE_WIDEVINE=$enable_widevine",
+- "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm",
++ "BUNDLE_WIDEVINE_CDM=true",
+ "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component",
+ ]
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
new file mode 100644
index 000000000000..c725f87d3a27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
@@ -0,0 +1,92 @@
+{ stdenv, gcc
+, jshon
+, glib
+, nspr
+, nss
+, fetchzip
+, enablePepperFlash ? false
+
+, upstream-info
+}:
+
+with stdenv.lib;
+
+let
+ mkrpath = p: "${makeSearchPathOutput "lib" "lib64" p}:${makeLibraryPath p}";
+
+ # Generate a shell fragment that emits flags appended to the
+ # final makeWrapper call for wrapping the browser's main binary.
+ #
+ # Note that this is shell-escaped so that only the variable specified
+ # by the "output" attribute is substituted.
+ mkPluginInfo = { output ? "out", allowedVars ? [ output ]
+ , flags ? [], envVars ? {}
+ }: let
+ shSearch = ["'"] ++ map (var: "@${var}@") allowedVars;
+ shReplace = ["'\\''"] ++ map (var: "'\"\${${var}}\"'") allowedVars;
+ # We need to triple-escape "val":
+ # * First because makeWrapper doesn't do any quoting of its arguments by
+ # itself.
+ # * Second because it's passed to the makeWrapper call separated by IFS but
+ # not by the _real_ arguments, for example the Widevine plugin flags
+ # contain spaces, so they would end up as separate arguments.
+ # * Third in order to be correctly quoted for the "echo" call below.
+ shEsc = val: "'${replaceStrings ["'"] ["'\\''"] val}'";
+ mkSh = val: "'${replaceStrings shSearch shReplace (shEsc val)}'";
+ mkFlag = flag: ["--add-flags" (shEsc flag)];
+ mkEnvVar = key: val: ["--set" (shEsc key) (shEsc val)];
+ envList = mapAttrsToList mkEnvVar envVars;
+ quoted = map mkSh (flatten ((map mkFlag flags) ++ envList));
+ in ''
+ mkdir -p "''$${output}/nix-support"
+ echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags"
+ '';
+
+ flash = stdenv.mkDerivation rec {
+ pname = "flashplayer-ppapi";
+ version = "32.0.0.445";
+
+ src = fetchzip {
+ url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
+ sha256 = "1r9vd210d2qp501q40pjx60mzah08rg0f8jk5rpp52ddajwggalv";
+ stripRoot = false;
+ };
+
+ patchPhase = ''
+ chmod +x libpepflashplayer.so
+ patchelf --set-rpath "${mkrpath [ gcc.cc ]}" libpepflashplayer.so
+ '';
+
+ doCheck = true;
+ checkPhase = ''
+ ! find -iname '*.so' -exec ldd {} + | grep 'not found'
+ '';
+
+ installPhase = ''
+ flashVersion="$(
+ "${jshon}/bin/jshon" -F manifest.json -e version -u
+ )"
+
+ install -vD libpepflashplayer.so "$out/lib/libpepflashplayer.so"
+
+ ${mkPluginInfo {
+ allowedVars = [ "out" "flashVersion" ];
+ flags = [
+ "--ppapi-flash-path=@out@/lib/libpepflashplayer.so"
+ "--ppapi-flash-version=@flashVersion@"
+ ];
+ }}
+ '';
+
+ dontStrip = true;
+
+ meta = {
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ taku0 ];
+ platforms = platforms.x86_64;
+ };
+ };
+
+in {
+ enabled = optional enablePepperFlash flash;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
new file mode 100644
index 000000000000..73c9796aaa96
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
@@ -0,0 +1,6 @@
+{
+ "86.0.4240.183" = {
+ rev = "86.0.4240.183-1";
+ sha256 = "0528l2wr5bpl1cwsxzl5zxz1gw91kffkh5j1kzmc5n7m4mscqxyc";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix
new file mode 100644
index 000000000000..17418c90af49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchFromGitHub
+, python3Packages
+, makeWrapper
+, patch
+}:
+{ rev
+, sha256
+}:
+
+stdenv.mkDerivation rec {
+ name = "ungoogled-chromium-${version}";
+
+ version = rev;
+
+ src = fetchFromGitHub {
+ owner = "Eloston";
+ repo = "ungoogled-chromium";
+ inherit rev sha256;
+ };
+
+ dontBuild = true;
+
+ buildInputs = [
+ python3Packages.python
+ patch
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ patchPhase = ''
+ sed -i '/chromium-widevine/d' patches/series
+ '';
+
+ installPhase = ''
+ mkdir $out
+ cp -R * $out/
+ wrapProgram $out/utils/patches.py --add-flags "apply" --prefix PATH : "${patch}/bin"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.py b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.py
new file mode 100755
index 000000000000..b404ca555bff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.py
@@ -0,0 +1,105 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i python -p python3 nix nix-prefetch-git
+
+import csv
+import json
+import re
+import subprocess
+import sys
+
+from codecs import iterdecode
+from collections import OrderedDict
+from datetime import datetime
+from os.path import abspath, dirname
+from urllib.request import urlopen
+
+HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux'
+DEB_URL = 'https://dl.google.com/linux/chrome/deb/pool/main/g'
+BUCKET_URL = 'https://commondatastorage.googleapis.com/chromium-browser-official'
+
+JSON_PATH = dirname(abspath(__file__)) + '/upstream-info.json'
+
+def load_json(path):
+ with open(path, 'r') as f:
+ return json.load(f)
+
+def nix_prefetch_url(url, algo='sha256'):
+ print(f'nix-prefetch-url {url}')
+ out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url])
+ return out.decode('utf-8').rstrip()
+
+def nix_prefetch_git(url, rev):
+ print(f'nix-prefetch-git {url} {rev}')
+ out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev])
+ return json.loads(out)
+
+def get_file_revision(revision, file_path):
+ url = f'https://raw.githubusercontent.com/chromium/chromium/{revision}/{file_path}'
+ with urlopen(url) as http_response:
+ return http_response.read()
+
+def get_channel_dependencies(channel):
+ deps = get_file_revision(channel['version'], 'DEPS')
+ gn_pattern = b"'gn_version': 'git_revision:([0-9a-f]{40})'"
+ gn_commit = re.search(gn_pattern, deps).group(1).decode()
+ gn = nix_prefetch_git('https://gn.googlesource.com/gn', gn_commit)
+ return {
+ 'gn': {
+ 'version': datetime.fromisoformat(gn['date']).date().isoformat(),
+ 'url': gn['url'],
+ 'rev': gn['rev'],
+ 'sha256': gn['sha256']
+ }
+ }
+
+channels = {}
+last_channels = load_json(JSON_PATH)
+
+print(f'GET {HISTORY_URL}', file=sys.stderr)
+with urlopen(HISTORY_URL) as resp:
+ builds = csv.DictReader(iterdecode(resp, 'utf-8'))
+ for build in builds:
+ channel_name = build['channel']
+
+ # If we've already found a newer build for this channel, we're
+ # no longer interested in it.
+ if channel_name in channels:
+ continue
+
+ # If we're back at the last build we used, we don't need to
+ # keep going -- there's no new version available, and we can
+ # just reuse the info from last time.
+ if build['version'] == last_channels[channel_name]['version']:
+ channels[channel_name] = last_channels[channel_name]
+ continue
+
+ channel = {'version': build['version']}
+ suffix = 'unstable' if channel_name == 'dev' else channel_name
+
+ try:
+ channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz')
+ channel['sha256bin64'] = nix_prefetch_url(f'{DEB_URL}/google-chrome-{suffix}/google-chrome-{suffix}_{build["version"]}-1_amd64.deb')
+ except subprocess.CalledProcessError:
+ # This build isn't actually available yet. Continue to
+ # the next one.
+ continue
+
+ channel['deps'] = get_channel_dependencies(channel)
+
+ channels[channel_name] = channel
+
+with open(JSON_PATH, 'w') as out:
+ def get_channel_key(item):
+ channel_name = item[0]
+ if channel_name == 'stable':
+ return 0
+ elif channel_name == 'beta':
+ return 1
+ elif channel_name == 'dev':
+ return 2
+ else:
+ print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr)
+ sys.exit(1)
+ sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key))
+ json.dump(sorted_channels, out, indent=2)
+ out.write('\n')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json
new file mode 100644
index 000000000000..565f884c5102
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json
@@ -0,0 +1,41 @@
+{
+ "stable": {
+ "version": "86.0.4240.183",
+ "sha256": "1g39i82js7fm4fqb8i66d6xs0kzqjxzi4vzvvwz5y9rkbikcc4ma",
+ "sha256bin64": "1r0dxqsx6j19hgwr3v2sdlb2vd7gb961c4wba4ymd8wy8j8pzly9",
+ "deps": {
+ "gn": {
+ "version": "2020-08-07",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "e327ffdc503815916db2543ec000226a8df45163",
+ "sha256": "0kvlfj3www84zp1vmxh76x8fdjm9hyk8lkh2vdsidafpmm75fphr"
+ }
+ }
+ },
+ "beta": {
+ "version": "87.0.4280.40",
+ "sha256": "07xh76fl257np68way6i5rf64qbvirkfddy7m5gvqb0fzcqd7dp3",
+ "sha256bin64": "1b2z0aqlh28pqrk6dmabxp1d4mvp9iyfmi4kqmns4cdpg0qgaf41",
+ "deps": {
+ "gn": {
+ "version": "2020-09-09",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2",
+ "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk"
+ }
+ }
+ },
+ "dev": {
+ "version": "88.0.4300.0",
+ "sha256": "00cfs2rp4h8ybn2snr1d8ygg635hx7q5gv2aqriy1j6f8a1pgh1b",
+ "sha256bin64": "110r1m14h91212nx6pfhn8wkics7wlwx1608l5cqsxxcpvpzl3pv",
+ "deps": {
+ "gn": {
+ "version": "2020-09-09",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2",
+ "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk"
+ }
+ }
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
new file mode 100644
index 000000000000..099d81c99f80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libsoup, webkitgtk, gtk3, glib-networking
+, gsettings-desktop-schemas, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "vimb";
+ version = "3.3.0";
+
+ src = fetchFromGitHub {
+ owner = "fanglingsu";
+ repo = "vimb";
+ rev = version;
+ sha256 = "1qg18z2gnsli9qgrqfhqfrsi6g9mcgr90w8yab28nxrq4aha6brf";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook pkgconfig ];
+ buildInputs = [ gtk3 libsoup webkitgtk glib-networking gsettings-desktop-schemas ];
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ meta = {
+ description = "A Vim-like browser";
+ longDescription = ''
+ A fast and lightweight vim like web browser based on the webkit web
+ browser engine and the GTK toolkit. Vimb is modal like the great vim
+ editor and also easily configurable during runtime. Vimb is mostly
+ keyboard driven and does not detract you from your daily work.
+ '';
+ homepage = "https://fanglingsu.github.io/vimb/";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
new file mode 100644
index 000000000000..aa4dd7f8e443
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -0,0 +1,96 @@
+{ stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE
+, libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
+, alsaLib, dbus, cups, libexif, ffmpeg_3, systemd
+, freetype, fontconfig, libXft, libXrender, libxcb, expat
+, libuuid
+, libxml2
+, glib, gtk3, pango, gdk-pixbuf, cairo, atk, at-spi2-atk, at-spi2-core, gnome2
+, libdrm, mesa
+, nss, nspr
+, patchelf, makeWrapper
+, isSnapshot ? false
+, proprietaryCodecs ? false, vivaldi-ffmpeg-codecs ? null
+, enableWidevine ? false, vivaldi-widevine ? null
+}:
+
+let
+ branch = if isSnapshot then "snapshot" else "stable";
+ vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
+in stdenv.mkDerivation rec {
+ pname = "vivaldi";
+ version = "3.4.2066.90-1";
+
+ src = fetchurl {
+ url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
+ sha256 = "059vcr2j0vr8szqcxfqnzxwy5i8z53g71fwhm22nc0477jbrsxz1";
+ };
+
+ unpackPhase = ''
+ ar vx $src
+ tar -xvf data.tar.xz
+ '';
+
+ nativeBuildInputs = [ patchelf makeWrapper ];
+
+ buildInputs = [
+ stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb
+ libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
+ atk at-spi2-atk at-spi2-core alsaLib dbus cups gtk3 gdk-pixbuf libexif ffmpeg_3 systemd
+ freetype fontconfig libXrender libuuid expat glib nss nspr
+ libxml2 pango cairo gnome2.GConf
+ libdrm mesa
+ ] ++ stdenv.lib.optional proprietaryCodecs vivaldi-ffmpeg-codecs;
+
+ libPath = stdenv.lib.makeLibraryPath buildInputs
+ + stdenv.lib.optionalString (stdenv.is64bit)
+ (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs)
+ + ":$out/opt/${vivaldiName}/lib";
+
+ buildPhase = ''
+ echo "Patching Vivaldi binaries"
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libPath}" \
+ opt/${vivaldiName}/vivaldi-bin
+ '' + stdenv.lib.optionalString proprietaryCodecs ''
+ ln -s ${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so opt/${vivaldiName}/libffmpeg.so.''${version%\.*\.*}
+ '' + ''
+ echo "Finished patching Vivaldi binaries"
+ '';
+
+ dontPatchELF = true;
+ dontStrip = true;
+
+ installPhase = ''
+ mkdir -p "$out"
+ cp -r opt "$out"
+ mkdir "$out/bin"
+ ln -s "$out/opt/${vivaldiName}/${vivaldiName}" "$out/bin/vivaldi"
+ mkdir -p "$out/share"
+ cp -r usr/share/{applications,xfce4} "$out"/share
+ substituteInPlace "$out"/share/applications/*.desktop \
+ --replace /usr/bin/${vivaldiName} "$out"/bin/vivaldi
+ substituteInPlace "$out"/share/applications/*.desktop \
+ --replace vivaldi-stable vivaldi
+ local d
+ for d in 16 22 24 32 48 64 128 256; do
+ mkdir -p "$out"/share/icons/hicolor/''${d}x''${d}/apps
+ ln -s \
+ "$out"/opt/${vivaldiName}/product_logo_''${d}.png \
+ "$out"/share/icons/hicolor/''${d}x''${d}/apps/vivaldi.png
+ done
+ wrapProgram "$out/bin/vivaldi" \
+ --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/ \
+ ${stdenv.lib.optionalString enableWidevine "--suffix LD_LIBRARY_PATH : ${libPath}"}
+ '' + stdenv.lib.optionalString enableWidevine ''
+ ln -sf ${vivaldi-widevine}/share/google/chrome/WidevineCdm $out/opt/${vivaldiName}/WidevineCdm
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Browser for our Friends, powerful and personal";
+ homepage = "https://vivaldi.com";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ otwieracz badmutex ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
new file mode 100644
index 000000000000..2643bd3e58d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl
+, dpkg
+}:
+
+stdenv.mkDerivation rec {
+ name = "chromium-codecs-ffmpeg";
+ version = "78.0.3904.70";
+
+ src = fetchurl {
+ url = "https://launchpadlibrarian.net/449403909/${name}-extra_${version}-0ubuntu0.16.04.2_amd64.deb";
+ sha256 = "00j604nm49z6hbyw7xsxcvmdjf7117kb478plkpizzvmm3w72b9v";
+ };
+
+ buildInputs = [ dpkg ];
+
+ unpackPhase = ''
+ dpkg-deb -x $src .
+ find .
+ '';
+
+ installPhase = ''
+ install -vD usr/lib/chromium-browser/libffmpeg.so $out/lib/libffmpeg.so
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Additional support for proprietary codecs for Vivaldi";
+ homepage = "https://ffmpeg.org/";
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ betaboon lluchs ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh
new file mode 100755
index 000000000000..2e6c2853eb14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p libarchive curl common-updater-scripts
+
+set -eu -o pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+root=../../../../..
+export NIXPKGS_ALLOW_UNFREE=1
+
+version() {
+ (cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"')
+}
+
+vivaldi_version_old=$(version vivaldi)
+vivaldi_version=$(curl -sS https://vivaldi.com/download/ | sed -rne 's/.*vivaldi-stable_([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+-[0-9]+)_amd64\.deb.*/\1/p')
+
+if [[ "$vivaldi_version" = "$vivaldi_version_old" ]]; then
+ echo "vivaldi is already up-to-date"
+ exit
+fi
+
+# Download vivaldi and save hash and file path.
+url="https://downloads.vivaldi.com/stable/vivaldi-stable_${vivaldi_version}_amd64.deb"
+mapfile -t prefetch < <(nix-prefetch-url --print-path "$url")
+hash=${prefetch[0]}
+path=${prefetch[1]}
+
+nixpkgs="$(git rev-parse --show-toplevel)"
+default_nix="$nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix"
+ffmpeg_nix="$nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix"
+
+(cd "$root" && update-source-version vivaldi "$vivaldi_version" "$hash")
+
+git add "${default_nix}"
+git commit -m "vivaldi: ${vivaldi_version_old} -> ${vivaldi_version}"
+
+# Check vivaldi-ffmpeg-codecs version.
+chromium_version_old=$(version vivaldi-ffmpeg-codecs)
+chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep '^[0-9]\{2,\}\.[0-9]\+\.[0-9]\{4,\}\+\.[0-9]\+$')
+
+if [[ "$chromium_version" != "$chromium_version_old" ]]; then
+ (cd "$root" && update-source-version vivaldi-ffmpeg-codecs "$chromium_version")
+
+ git add "${ffmpeg_nix}"
+ git commit -m "vivaldi-ffmepg-codecs: $chromium_version_old -> $chromium_version"
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix
new file mode 100644
index 000000000000..6e807aac5df6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+ name = "widevine";
+ version = "4.10.1582.1";
+
+ src = fetchurl {
+ url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip";
+ sha256 = "0l743f2yyaq1vvc3iicajgnfpjxjsfvjcqvanndbxs23skgjcv6r";
+ };
+
+ buildInputs = [ unzip ];
+
+ unpackPhase = ''
+ unzip $src
+ '';
+
+ installPhase = ''
+ install -vD manifest.json $out/share/google/chrome/WidevineCdm/manifest.json
+ install -vD LICENSE.txt $out/share/google/chrome/WidevineCdm/LICENSE.txt
+ install -vD libwidevinecdm.so $out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Widevine support for Vivaldi";
+ homepage = "https://www.widevine.com";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ betaboon ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch
new file mode 100644
index 000000000000..49dd417d1c39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch
@@ -0,0 +1,11 @@
+--- a/url.c 2014-07-14 12:31:30.476563116 +0200
++++ b/url.c 2014-07-14 12:32:16.364918248 +0200
+@@ -268,7 +268,7 @@ init_PRNG()
+ if (RAND_status())
+ return;
+ if ((file = RAND_file_name(buffer, sizeof(buffer)))) {
+-#ifdef USE_EGD
++#if defined(USE_EGD) && defined(HAVE_SSL_RAND_EGD)
+ if (RAND_egd(file) > 0)
+ return;
+ #endif
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix
new file mode 100644
index 000000000000..a15d6844f56d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix
@@ -0,0 +1,100 @@
+{ stdenv, fetchFromGitHub, fetchpatch
+, ncurses, boehmgc, gettext, zlib
+, sslSupport ? true, openssl ? null
+, graphicsSupport ? !stdenv.isDarwin, imlib2 ? null
+, x11Support ? graphicsSupport, libX11 ? null
+, mouseSupport ? !stdenv.isDarwin, gpm-ncurses ? null
+, perl, man, pkgconfig, buildPackages, w3m
+}:
+
+assert sslSupport -> openssl != null;
+assert graphicsSupport -> imlib2 != null;
+assert x11Support -> graphicsSupport && libX11 != null;
+assert mouseSupport -> gpm-ncurses != null;
+
+with stdenv.lib;
+
+let
+ mktable = buildPackages.stdenv.mkDerivation {
+ name = "w3m-mktable";
+ inherit (w3m) src;
+ nativeBuildInputs = [ pkgconfig boehmgc ];
+ makeFlags = [ "mktable" ];
+ installPhase = ''
+ install -D mktable $out/bin/mktable
+ '';
+ };
+in stdenv.mkDerivation rec {
+ pname = "w3m";
+ version = "0.5.3+git20190105";
+
+ src = fetchFromGitHub {
+ owner = "tats";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1fbg2p8qh2gvi3g4iz4q6vc0k70pf248r4yndi5lcn2m3mzvjx0i";
+ };
+
+ NIX_LDFLAGS = optionalString stdenv.isSunOS "-lsocket -lnsl";
+
+ # we must set these so that the generated files (e.g. w3mhelp.cgi) contain
+ # the correct paths.
+ PERL = "${perl}/bin/perl";
+ MAN = "${man}/bin/man";
+
+ makeFlags = [ "AR=${stdenv.cc.bintools.targetPrefix}ar" ];
+
+ patches = [
+ ./RAND_egd.libressl.patch
+ (fetchpatch {
+ name = "https.patch";
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/https.patch?h=w3m-mouse&id=5b5f0fbb59f674575e87dd368fed834641c35f03";
+ sha256 = "08skvaha1hjyapsh8zw5dgfy433mw2hk7qy9yy9avn8rjqj7kjxk";
+ })
+ ] ++ optional (graphicsSupport && !x11Support) [ ./no-x11.patch ];
+
+ postPatch = optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ ln -s ${mktable}/bin/mktable mktable
+ # stop make from recompiling mktable
+ sed -ie 's!mktable.*:.*!mktable:!' Makefile.in
+ '';
+
+ nativeBuildInputs = [ pkgconfig gettext ];
+ buildInputs = [ ncurses boehmgc zlib ]
+ ++ optional sslSupport openssl
+ ++ optional mouseSupport gpm-ncurses
+ ++ optional graphicsSupport imlib2
+ ++ optional x11Support libX11;
+
+ postInstall = optionalString graphicsSupport ''
+ ln -s $out/libexec/w3m/w3mimgdisplay $out/bin
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ configureFlags =
+ [ "--with-ssl=${openssl.dev}" "--with-gc=${boehmgc.dev}" ]
+ ++ optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+ "ac_cv_func_setpgrp_void=yes"
+ ]
+ ++ optional graphicsSupport "--enable-image=${optionalString x11Support "x11,"}fb";
+
+ preConfigure = ''
+ substituteInPlace ./configure --replace "/lib /usr/lib /usr/local/lib /usr/ucblib /usr/ccslib /usr/ccs/lib /lib64 /usr/lib64" /no-such-path
+ substituteInPlace ./configure --replace /usr /no-such-path
+ '';
+
+ enableParallelBuilding = false;
+
+ # for w3mimgdisplay
+ # see: https://bbs.archlinux.org/viewtopic.php?id=196093
+ LIBS = optionalString x11Support "-lX11";
+
+ meta = {
+ homepage = "http://w3m.sourceforge.net/";
+ description = "A text-mode web browser";
+ maintainers = [ maintainers.cstrahan ];
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch
new file mode 100644
index 000000000000..0816c022926d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch
@@ -0,0 +1,14 @@
+Forget about X11 in fb module.
+This breaks w3mimgdisplay under X11, but removes X11 dependency it in pure fb.
+diff --git a/w3mimg/fb/fb_imlib2.c b/w3mimg/fb/fb_imlib2.c
+index 1a5151c..d3d7bc3 100644
+--- a/w3mimg/fb/fb_imlib2.c
++++ b/w3mimg/fb/fb_imlib2.c
+@@ -3,6 +3,7 @@
+ fb_imlib2.c 0.3 Copyright (C) 2002, hito
+ **************************************************************************/
+
++#define X_DISPLAY_MISSING
+ #include <Imlib2.h>
+ #include "fb.h"
+ #include "fb_img.h"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
new file mode 100644
index 000000000000..5190f1a7b534
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
@@ -0,0 +1,108 @@
+{ stdenv, lib, fetchgit, makeDesktopItem, pkgconfig, makeWrapper
+# Build
+, python2, autoconf213, yasm, perl
+, unzip, gnome2, gnum4
+
+# Runtime
+, xorg, zip, freetype, fontconfig, glibc, libffi
+, dbus, dbus-glib, gtk2, alsaLib, jack2, ffmpeg
+}:
+
+let
+
+ libPath = lib.makeLibraryPath [ ffmpeg ];
+
+in stdenv.mkDerivation rec {
+ pname = "webbrowser";
+ version = "29.0.0rc1";
+
+ src = fetchgit {
+ url = "https://git.nuegia.net/webbrowser.git";
+ rev = version;
+ sha256 = "1d82943mla6q3257081d946kgms91dg0n93va3zlzm9hbbqilzm6";
+ fetchSubmodules = true;
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "webbrowser";
+ exec = "webbrowser %U";
+ icon = "webbrowser";
+ desktopName = "Web Browser";
+ genericName = "Web Browser";
+ categories = "Network;WebBrowser;";
+ mimeType = lib.concatStringsSep ";" [
+ "text/html"
+ "text/xml"
+ "application/xhtml+xml"
+ "application/vnd.mozilla.xul+xml"
+ "x-scheme-handler/http"
+ "x-scheme-handler/https"
+ ];
+ };
+
+ nativeBuildInputs = [
+ gnum4 makeWrapper perl pkgconfig python2
+ ];
+
+ buildInputs = [
+ alsaLib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2
+ unzip gnome2.GConf xorg.libXt
+ ];
+
+ enableParallelBuilding = true;
+
+ configurePhase = ''
+ export MOZCONFIG=$PWD/.mozconfig
+ export MOZ_NOSPAM=1
+
+ cp $src/doc/mozconfig.example $MOZCONFIG
+ # Need to modify it
+ chmod 644 $MOZCONFIG
+
+ substituteInPlace $MOZCONFIG \
+ --replace "mk_add_options PYTHON=/usr/bin/python2" "mk_add_options PYTHON=${python2}/bin/python2" \
+ --replace "mk_add_options AUTOCONF=/usr/bin/autoconf-2.13" "mk_add_options AUTOCONF=${autoconf213}/bin/autoconf" \
+ --replace 'mk_add_options MOZ_OBJDIR=$HOME/build/wbobjects/' "" \
+ --replace "ac_add_options --x-libraries=/usr/lib64" "ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}" \
+ --replace "_BUILD_64=1" "_BUILD_64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}" \
+ --replace "--enable-ccache" "--disable-ccache"
+
+ echo >> $MOZCONFIG '
+ #
+ # NixOS-specific adjustments
+ #
+
+ ac_add_options --prefix=$out
+
+ mk_add_options MOZ_MAKE_FLAGS="-j$NIX_BUILD_CORES"
+ '
+ '';
+
+ buildPhase = "$src/mach build";
+
+ installPhase = ''
+ $src/mach install
+
+ mkdir -p $out/share/applications
+ cp ${desktopItem}/share/applications/* $out/share/applications
+
+ for n in 16 32 48; do
+ size=$n"x"$n
+ mkdir -p $out/share/icons/hicolor/$size/apps
+ cp $src/webbrowser/branding/unofficial/default$n.png \
+ $out/share/icons/hicolor/$size/apps/webbrowser.png
+ done
+
+ # Needed to make videos work
+ wrapProgram $out/lib/webbrowser-${version}/webbrowser \
+ --prefix LD_LIBRARY_PATH : "${libPath}"
+ '';
+
+ meta = with lib; {
+ description = "Generic web browser without trackers compatible with XUL plugins using UXP rendering engine";
+ homepage = "https://git.nuegia.net/webbrowser.git/";
+ license = [ licenses.mpl20 licenses.gpl3 ];
+ maintainers = with maintainers; [ TheBrainScrambler ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix
new file mode 100644
index 000000000000..7dbb6a3c5388
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, mkDerivationWith
+, fetchFromGitHub
+, python3Packages
+, herbstluftwm
+}:
+
+mkDerivationWith python3Packages.buildPythonApplication rec {
+ pname = "webmacs";
+ version = "0.8";
+
+ disabled = python3Packages.isPy27;
+
+ src = fetchFromGitHub {
+ owner = "parkouss";
+ repo = "webmacs";
+ rev = version;
+ fetchSubmodules = true;
+ sha256 = "1hzb9341hybgrqcy1w20hshm6xaiby4wbjpjkigf4zq389407368";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ pyqtwebengine
+ setuptools
+ dateparser
+ jinja2
+ pygments
+ ];
+
+ checkInputs = [
+ python3Packages.pytest
+ #python3Packages.pytest-xvfb
+ #python3Packages.pytest-qt
+ python3Packages.pytestCheckHook
+ herbstluftwm
+
+ # The following are listed in test-requirements.txt but appear not
+ # to be needed at present:
+
+ # python3Packages.pytest-mock
+ # python3Packages.flake8
+ ];
+
+ # See https://github.com/parkouss/webmacs/blob/1a04fb7bd3f33d39cb4d71621b48c2458712ed39/setup.py#L32
+ # Don't know why they're using CC for g++.
+ preConfigure = ''
+ export CC=$CXX
+ '';
+
+ doCheck = false; # test dependencies not packaged up yet
+
+ dontWrapQtApps = true;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+
+ meta = with lib; {
+ description = "Keyboard-based web browser with Emacs/conkeror heritage";
+ longDescription = ''
+ webmacs is yet another browser for keyboard-based web navigation.
+
+ It mainly targets emacs-like navigation, and started as a clone (in terms of
+ features) of conkeror.
+
+ Based on QtWebEngine and Python 3. Fully customizable in Python.
+ '';
+ homepage = "https://webmacs.readthedocs.io/en/latest/";
+ changelog = "https://github.com/parkouss/webmacs/blob/master/CHANGELOG.md";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jacg ];
+ platforms = platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/c14/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/c14/default.nix
new file mode 100644
index 000000000000..58d9d026f97d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/c14/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "c14-cli";
+ version = "0.3";
+
+ goPackagePath = "github.com/online-net/c14-cli";
+
+ src = fetchFromGitHub {
+ owner = "online-net";
+ repo = "c14-cli";
+ rev = version;
+ sha256 = "0b1piviy6vvdbak8y8bc24rk3c1fi67vv3352pmnzvrhsar2r5yf";
+ };
+
+ meta = with stdenv.lib; {
+ description = "C14 is designed for data archiving & long-term backups";
+ homepage = "https://www.online.net/en/storage/c14-cold-storage";
+ license = licenses.mit;
+ maintainers = with maintainers; [ apeyroux ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/calls/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/calls/default.nix
new file mode 100644
index 000000000000..e57cf810491c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/calls/default.nix
@@ -0,0 +1,84 @@
+{ stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkgconfig
+, libhandy_0
+, modemmanager
+, gtk3
+, gom
+, gsound
+, evolution-data-server
+, folks
+, desktop-file-utils
+, libpeas
+, dbus
+, vala
+, wrapGAppsHook
+, xorg
+, xvfb_run
+, libxml2
+}:
+
+stdenv.mkDerivation rec {
+ pname = "calls";
+ version = "0.1.5";
+
+ src = fetchFromGitLab {
+ domain = "source.puri.sm";
+ owner = "Librem5";
+ repo = "calls";
+ rev = "v${version}";
+ sha256 = "1wqkczl1fn4d2py00fsb6kh05avmc7c49gi49j3592fqsvi87j18";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ desktop-file-utils
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ modemmanager
+ libhandy_0
+ evolution-data-server
+ folks
+ gom
+ gsound
+ gtk3
+ libpeas
+ ];
+
+ checkInputs = [
+ dbus
+ xvfb_run
+ ];
+
+ mesonFlags = [
+ # docs fail to build
+ # https://source.puri.sm/Librem5/calls/issues/99
+ "-Dgtk_doc=false"
+ ];
+
+ doCheck = true;
+
+ checkPhase = ''
+ runHook preCheck
+ NO_AT_BRIDGE=1 \
+ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+ meson test --print-errorlogs
+ runHook postCheck
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A phone dialer and call handler";
+ homepage = "https://source.puri.sm/Librem5/calls";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ craigem lheckemann ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cawbird/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cawbird/default.nix
new file mode 100644
index 000000000000..bd927d2b68e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cawbird/default.nix
@@ -0,0 +1,78 @@
+{ stdenv
+, fetchFromGitHub
+, glib
+, gtk3
+, json-glib
+, sqlite
+, libsoup
+, gettext
+, gspell
+, vala
+, meson
+, ninja
+, pkgconfig
+, dconf
+, gst_all_1
+, wrapGAppsHook
+, gobject-introspection
+, glib-networking
+, librest
+, python3
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.2.1";
+ pname = "cawbird";
+
+ src = fetchFromGitHub {
+ owner = "IBBoard";
+ repo = "cawbird";
+ rev = "v${version}";
+ sha256 = "11s8x48syy5wjj23ab4bn5jxhi7l5sx7aw6q2ggk99v042hxh3h2";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ vala
+ pkgconfig
+ wrapGAppsHook
+ python3
+ gobject-introspection # for setup hook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ json-glib
+ sqlite
+ libsoup
+ gettext
+ dconf
+ gspell
+ glib-networking
+ librest
+ ] ++ (with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-bad
+ (gst-plugins-good.override {
+ gtkSupport = true;
+ })
+ gst-libav
+ ]);
+
+ postPatch = ''
+ chmod +x data/meson_post_install.py # patchShebangs requires executable file
+ patchShebangs data/meson_post_install.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Native GTK Twitter client for the Linux desktop";
+ longDescription = "Cawbird is a modern, easy and fun Twitter client. Fork of the discontinued Corebird.";
+ homepage = "https://ibboard.co.uk/cawbird/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ jonafato schmittlauch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/charles/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/charles/default.nix
new file mode 100644
index 000000000000..3dd9fe2c4f89
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/charles/default.nix
@@ -0,0 +1,67 @@
+{
+stdenv
+, makeWrapper
+, makeDesktopItem
+, fetchurl
+, jdk8
+}:
+
+let
+ generic = { version, sha256, ... }@attrs:
+ let
+ desktopItem = makeDesktopItem {
+ categories = "Network;Development;WebDevelopment;Java;";
+ desktopName = "Charles";
+ exec = "charles %F";
+ genericName = "Web Debugging Proxy";
+ icon = "charles-proxy";
+ mimeType = "application/x-charles-savedsession;application/x-charles-savedsession+xml;application/x-charles-savedsession+json;application/har+json;application/vnd.tcpdump.pcap;application/x-charles-trace";
+ name = "Charles";
+ startupNotify = "true";
+ };
+
+ in stdenv.mkDerivation {
+ pname = "charles";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}.tar.gz";
+ inherit sha256;
+ };
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ makeWrapper ${jdk8.jre}/bin/java $out/bin/charles \
+ --add-flags "-Xmx1024M -Dcharles.config='~/.charles.config' -jar $out/share/java/charles.jar"
+
+ for fn in lib/*.jar; do
+ install -D -m644 $fn $out/share/java/$(basename $fn)
+ done
+
+ mkdir -p $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications/
+
+ mkdir -p $out/share/icons
+ cp -r icon $out/share/icons/hicolor
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Web Debugging Proxy";
+ homepage = "https://www.charlesproxy.com/";
+ maintainers = [ maintainers.kalbasit ];
+ license = stdenv.lib.licenses.unfree;
+ platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+ };
+ };
+
+in {
+ charles4 = (generic {
+ version = "4.2.8";
+ sha256 = "1jzjdhzxgrq7pdfryfkg0hsjpyni14ma4x8jbdk1rqll78ccr080";
+ });
+ charles3 = (generic {
+ version = "3.12.3";
+ sha256 = "13zk82ny1w5zd9qcs9qkq0kdb22ni5byzajyshpxdfm4zv6p32ss";
+ });
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cloudflared/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
new file mode 100644
index 000000000000..3e19af619db3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "cloudflared";
+ version = "2020.11.11";
+
+ src = fetchFromGitHub {
+ owner = "cloudflare";
+ repo = "cloudflared";
+ rev = version;
+ sha256 = "059q0k53n8cc78cg70pw7dnbc1cjzv3kdvw3cfamvkrmscqgczxd";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ buildFlagsArray = "-ldflags=-X main.Version=${version}";
+
+ meta = with stdenv.lib; {
+ description = "CloudFlare Argo Tunnel daemon (and DNS-over-HTTPS client)";
+ homepage = "https://www.cloudflare.com/products/argo-tunnel";
+ license = licenses.unfree;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.thoughtpolice maintainers.enorris ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
new file mode 100644
index 000000000000..4009bf96cd4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
@@ -0,0 +1,69 @@
+{ lib, buildGoModule, buildGoPackage, fetchFromGitHub, installShellFiles }:
+
+let
+ # Argo can package a static server in the CLI using the `staticfiles` go module.
+ # We build the CLI without the static server for simplicity, but the tool is still required for
+ # compilation to succeed.
+ # See: https://github.com/argoproj/argo/blob/d7690e32faf2ac5842468831daf1443283703c25/Makefile#L117
+ staticfiles = buildGoPackage rec {
+ name = "staticfiles";
+ src = fetchFromGitHub {
+ owner = "bouk";
+ repo = "staticfiles";
+ rev = "827d7f6389cd410d0aa3f3d472a4838557bf53dd";
+ sha256 = "0xarhmsqypl8036w96ssdzjv3k098p2d4mkmw5f6hkp1m3j67j61";
+ };
+
+ goPackagePath = "bou.ke/staticfiles";
+ };
+in
+buildGoModule rec {
+ pname = "argo";
+ version = "2.11.8";
+
+ src = fetchFromGitHub {
+ owner = "argoproj";
+ repo = "argo";
+ rev = "v${version}";
+ sha256 = "19nkkj69506759qjfrz6d7j57z8rqjslgfrdrkx01ri68cil4mfh";
+ };
+
+ vendorSha256 = "1ca0ssvbi4vrsn9ljc783hnh9bmf5p8nr1lz5wm8g3gbrrrf1ray";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/argo" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ preBuild = ''
+ mkdir -p ui/dist/app
+ echo "Built without static files" > ui/dist/app/index.html
+
+ ${staticfiles}/bin/staticfiles -o server/static/files.go ui/dist/app
+ '';
+
+ buildFlagsArray = ''
+ -ldflags=
+ -s -w
+ -X github.com/argoproj/argo.version=${version}
+ -X github.com/argoproj/argo.gitCommit=${src.rev}
+ -X github.com/argoproj/argo.gitTreeState=clean
+ -X github.com/argoproj/argo.gitTag=${version}
+ '';
+
+ postInstall = ''
+ for shell in bash zsh; do
+ $out/bin/argo completion $shell > argo.$shell
+ installShellCompletion argo.$shell
+ done
+ '';
+
+ meta = with lib; {
+ description = "Container native workflow engine for Kubernetes";
+ homepage = "https://github.com/argoproj/argo";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ groodt ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
new file mode 100644
index 000000000000..981e555462a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildGoModule, fetchFromGitHub, packr }:
+
+buildGoModule rec {
+ pname = "argocd";
+ version = "1.7.10";
+ commit = "ef5010c3a0b5e027fd642732d03c5b0391b1e574";
+
+ src = fetchFromGitHub {
+ owner = "argoproj";
+ repo = "argo-cd";
+ rev = "v${version}";
+ sha256 = "1vkdny88lmxkm3iw8qv5rrl0g5xwi16hfm2f6dga8i8xl555m78c";
+ };
+
+ vendorSha256 = "0c5gykijwjrq3cx9qg9hm5j7axccngc1kp5qj3429a2ilw80l8pl";
+
+ doCheck = false;
+
+ nativeBuildInputs = [ packr ];
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X github.com/argoproj/argo-cd/common.version=${version}
+ -X github.com/argoproj/argo-cd/common.buildDate=unknown
+ -X github.com/argoproj/argo-cd/common.gitCommit=${commit}
+ -X github.com/argoproj/argo-cd/common.gitTreeState=clean
+ '';
+
+ # run packr to embed assets
+ preBuild = ''
+ packr
+ '';
+
+ meta = with lib; {
+ description = "Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes";
+ homepage = "https://github.com/argoproj/argo";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ shahrukh330 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
new file mode 100644
index 000000000000..15c5f0e97c4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "atlantis";
+ version = "0.15.1";
+
+ src = fetchFromGitHub {
+ owner = "runatlantis";
+ repo = "atlantis";
+ rev = "v${version}";
+ sha256 = "0xxg48f28ac7x6kap6w1hgsimdc604ivkck4dx7p5p7xd3s7gld5";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/runatlantis/atlantis";
+ description = "Terraform Pull Request Automation";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ jpotier ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/click/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/click/default.nix
new file mode 100644
index 000000000000..2c0e73fb30db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/click/default.nix
@@ -0,0 +1,27 @@
+{ darwin, fetchFromGitHub, rustPlatform, stdenv }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "click";
+ version = "0.4.2";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "databricks";
+ repo = "click";
+ sha256 = "18mpzvvww2g6y2d3m8wcfajzdshagihn59k03xvcknd5d8zxagl3";
+ };
+
+ cargoSha256 = "1f9yn4pvp58laylngdrfdkwygisnzkhkm7pndf6l33k3aqxhz5mm";
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+
+ meta = with stdenv.lib; {
+ description = ''The "Command Line Interactive Controller for Kubernetes"'';
+ homepage = "https://github.com/databricks/click";
+ license = [ licenses.asl20 ];
+ maintainers = [ maintainers.mbode ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
new file mode 100644
index 000000000000..02f5fc18d13a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "cni";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "containernetworking";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "16i59dhiq7pc7qs32cdk4yv4w9rjx4vvlw7fb6a6jhq6hxxjrgiw";
+ };
+
+ goPackagePath = "github.com/containernetworking/cni";
+
+ meta = with lib; {
+ description = "Container Network Interface - networking for Linux containers";
+ license = licenses.asl20;
+ homepage = "https://github.com/containernetworking/cni";
+ maintainers = with maintainers; [ offline vdemeester ];
+ platforms = [ "x86_64-linux" "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
new file mode 100644
index 000000000000..fb7d2e2d6a5a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -0,0 +1,50 @@
+{ lib, fetchFromGitHub, buildGoModule, nixosTests }:
+
+buildGoModule rec {
+ pname = "cni-plugins";
+ version = "0.8.7";
+
+ src = fetchFromGitHub {
+ owner = "containernetworking";
+ repo = "plugins";
+ rev = "v${version}";
+ sha256 = "1sjk0cghldygx1jgx4bqv83qky7shk64n6xkkfxl92f12wyvsq9j";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ buildFlagsArray = [
+ "-ldflags=-X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=v${version}"
+ ];
+
+ subPackages = [
+ "plugins/ipam/dhcp"
+ "plugins/ipam/host-local"
+ "plugins/ipam/static"
+ "plugins/main/bridge"
+ "plugins/main/host-device"
+ "plugins/main/ipvlan"
+ "plugins/main/loopback"
+ "plugins/main/macvlan"
+ "plugins/main/ptp"
+ "plugins/main/vlan"
+ "plugins/meta/bandwidth"
+ "plugins/meta/firewall"
+ "plugins/meta/flannel"
+ "plugins/meta/portmap"
+ "plugins/meta/sbr"
+ "plugins/meta/tuning"
+ ];
+
+ passthru.tests = { inherit (nixosTests) cri-o podman; };
+
+ meta = with lib; {
+ description = "Some standard networking plugins, maintained by the CNI team";
+ homepage = "https://github.com/containernetworking/plugins";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ cstrahan ] ++ teams.podman.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix
new file mode 100644
index 000000000000..93f5a85c33ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix
@@ -0,0 +1,33 @@
+# This file was generated by go2nix.
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
+
+buildGoPackage rec {
+ pname = "machine";
+ version = "0.16.1";
+
+ goPackagePath = "github.com/docker/machine";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "docker";
+ repo = "machine";
+ sha256 = "0xxzxi5v7ji9j2k7kxhi0ah91lfa7b9rg3nywgx0lkv8dlgp8kmy";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ pushd go/src/${goPackagePath}/contrib/completion
+ installShellCompletion --bash bash/*
+ installShellCompletion --zsh zsh/*
+ popd
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://docs.docker.com/machine/";
+ description = "Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage Docker Engine on the hosts";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline tailhook ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
new file mode 100644
index 000000000000..d05b34cd7de9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, minikube }:
+
+buildGoModule rec {
+ inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 doCheck;
+
+ pname = "docker-machine-hyperkit";
+
+ buildPhase = ''
+ make docker-machine-driver-hyperkit COMMIT=${src.rev}
+ '';
+
+ installPhase = ''
+ install out/docker-machine-driver-hyperkit -Dt $out/bin
+ '';
+
+ meta = with lib; {
+ homepage = "https://minikube.sigs.k8s.io/docs/drivers/hyperkit";
+ description = "HyperKit driver for docker-machine";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ atkinschang ];
+ platforms = platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix
new file mode 100644
index 000000000000..e321b2c1b0ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix
@@ -0,0 +1,21 @@
+# This file was generated by go2nix.
+[
+ {
+ goPackagePath = "github.com/docker/machine";
+ fetch = {
+ type = "git";
+ url = "https://github.com/docker/machine";
+ rev = "457c02d06a155827c1c4af9b5ab38c0b6b4e48ea";
+ sha256 = "0hx5bhjc7q9ml6h6d2a5csqg6vqwjj68599q0cccw3pcfrb34gmd";
+ };
+ }
+ {
+ goPackagePath = "github.com/libvirt/libvirt-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/libvirt/libvirt-go";
+ rev = "e9642325d747c353ca7b76b4893d5dbdc81c296f";
+ sha256 = "1822b2kbwyxb2gigbiashcs7v4fsyw7k3sdlqh43ga0l6058fmhl";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix
new file mode 100644
index 000000000000..024572ec3db9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix
@@ -0,0 +1,28 @@
+# This file was generated by go2nix.
+{ stdenv, buildGoPackage, fetchFromGitHub, libvirt, pkgconfig }:
+
+buildGoPackage rec {
+ pname = "docker-machine-kvm";
+ version = "0.10.0";
+
+ goPackagePath = "github.com/dhiltgen/docker-machine-kvm";
+ goDeps = ./kvm-deps.nix;
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "dhiltgen";
+ repo = "docker-machine-kvm";
+ sha256 = "0ch4zwb6h7hnr5l3skj1daypvpyms2i666lbnmakpw1fw3zvjmgy";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libvirt ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/dhiltgen/docker-machine-kvm";
+ description = "KVM driver for docker-machine";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
new file mode 100644
index 000000000000..9ef43bed2eec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, minikube }:
+
+buildGoModule rec {
+ inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 doCheck;
+
+ pname = "docker-machine-kvm2";
+
+ postPatch = ''
+ sed -i '/GOARCH=$*/d' Makefile
+ '';
+
+ buildPhase = ''
+ make docker-machine-driver-kvm2 COMMIT=${src.rev}
+ '';
+
+ installPhase = ''
+ install out/docker-machine-driver-kvm2 -Dt $out/bin
+ '';
+
+ meta = with lib; {
+ homepage = "https://minikube.sigs.k8s.io/docs/drivers/kvm2";
+ description = "KVM2 driver for docker-machine";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ tadfisher atkinschang ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
new file mode 100644
index 000000000000..a740d0486db5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
@@ -0,0 +1,39 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch, pkgconfig, cctools, Hypervisor, vmnet }:
+
+buildGoPackage rec {
+ pname = "docker-machine-xhyve";
+ version = "0.4.0";
+
+ goPackagePath = "github.com/zchee/docker-machine-driver-xhyve";
+
+ # https://github.com/machine-drivers/docker-machine-driver-xhyve/pull/225
+ patches = fetchpatch {
+ url = "https://github.com/machine-drivers/docker-machine-driver-xhyve/commit/546256494bf2ccc33e4125bf45f504b0e3027d5a.patch";
+ sha256 = "1i8wxqccqkxvqrbsyd0g9s0kdskd8xi2jv0c1bji9aj4rq0a8cgz";
+ };
+
+ preBuild = ''
+ make -C go/src/${goPackagePath} CC=${stdenv.cc}/bin/cc LIBTOOL=${cctools}/bin/libtool GIT_CMD=: lib9p
+ export CGO_CFLAGS=-I$(pwd)/go/src/${goPackagePath}/vendor/github.com/jceel/lib9p
+ export CGO_LDFLAGS=$(pwd)/go/src/${goPackagePath}/vendor/build/lib9p/lib9p.a
+ '';
+ buildFlags = "--tags lib9p";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "machine-drivers";
+ repo = "docker-machine-driver-xhyve";
+ sha256 = "0000v97fr8xc5b39v44hsa87wrbk4bcwyaaivxv4hxlf4vlgg863";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ Hypervisor vmnet ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/machine-drivers/docker-machine-driver-xhyve";
+ description = "Xhyve driver for docker-machine";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ periklis ];
+ platforms = platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
new file mode 100644
index 000000000000..f99c708161eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, makeWrapper, jre
+, version ? "1.6" }:
+
+let
+ versionMap = {
+ "1.5" = {
+ flinkVersion = "1.5.5";
+ sha256 = "18wqcqi3gyqd40nspih99gq7ylfs20b35f4dcrspffagwkfp2l4z";
+ };
+ "1.6" = {
+ flinkVersion = "1.11.1";
+ sha256 = "0338bg2sb427c1rrf2cmsz63sz0yk6gclpli2lskq0mpx72wxpl0";
+ };
+ };
+in
+
+with versionMap.${version};
+
+stdenv.mkDerivation rec {
+ name = "flink-${flinkVersion}";
+
+ src = fetchurl {
+ url = "mirror://apache/flink/${name}/${name}-bin-scala_2.11.tgz";
+ inherit sha256;
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [ jre ];
+
+ installPhase = ''
+ rm bin/*.bat || true
+
+ mkdir -p $out/bin $out/opt/flink
+ mv * $out/opt/flink/
+ makeWrapper $out/opt/flink/bin/flink $out/bin/flink \
+ --prefix PATH : ${jre}/bin
+
+ cat <<EOF >> $out/opt/flink/conf/flink-conf.yaml
+ env.java.home: ${jre}"
+ env.log.dir: /tmp/flink-logs
+ EOF
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A distributed stream processing framework";
+ homepage = "https://flink.apache.org";
+ downloadPage = "https://flink.apache.org/downloads.html";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ mbode ];
+ repositories.git = "git://git.apache.org/flink.git";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
new file mode 100644
index 000000000000..c47896619513
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "fluxctl";
+ version = "1.21.0";
+
+ src = fetchFromGitHub {
+ owner = "weaveworks";
+ repo = "flux";
+ rev = version;
+ sha256 = "007i6kb80142v19w2dm3667sskcvdp1ilg3q3f9gjgr9c5nrg1m2";
+ };
+
+ vendorSha256 = "01v4x2mk5jglnigq0iic52f84vzx56zh46i7v2wlq8ninj8y1k0x";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ doCheck = false;
+
+ subPackages = [ "cmd/fluxctl" ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ postInstall = ''
+ for shell in bash fish zsh; do
+ $out/bin/fluxctl completion $shell > fluxctl.$shell
+ installShellCompletion fluxctl.$shell
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "CLI client for Flux, the GitOps Kubernetes operator";
+ homepage = "https://github.com/fluxcd/flux";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Gonzih Br1ght0ne ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix
new file mode 100644
index 000000000000..f2f3925fbe4d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig
+, libsodium, libarchive, openssl, zeromq }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "habitat";
+ # Newer versions required protobuf, which requires some finesse to get to
+ # compile with the vendored protobuf crate.
+ version = "0.90.6";
+
+ src = fetchFromGitHub {
+ owner = "habitat-sh";
+ repo = "habitat";
+ rev = version;
+ sha256 = "0rwi0lkmhlq4i8fba3s9nd9ajhz2dqxzkgfp5i8y0rvbfmhmfd6b";
+ };
+
+ cargoSha256 = "08sncz0jgsr2s821j3s4bk7d54xqwmnld7m57avavym1xqvsnbmy";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libsodium libarchive openssl zeromq ];
+
+ cargoBuildFlags = ["--package hab"];
+
+ checkPhase = ''
+ runHook preCheck
+ echo "Running cargo test"
+ cargo test --package hab
+ runHook postCheck
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An application automation framework";
+ homepage = "https://www.habitat.sh";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ rushmorem ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
new file mode 100644
index 000000000000..5fc35e6a0af1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -0,0 +1,161 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, which, maven, cmake, jre, bash
+, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2
+}:
+
+let
+ common = { version, sha256, dependencies-sha256, tomcat, opensslPkg ? openssl }:
+ let
+ # compile the hadoop tarball from sources, it requires some patches
+ binary-distributon = stdenv.mkDerivation rec {
+ name = "hadoop-${version}-bin";
+ src = fetchurl {
+ url = "mirror://apache/hadoop/common/hadoop-${version}/hadoop-${version}-src.tar.gz";
+ inherit sha256;
+ };
+
+ postUnpack = stdenv.lib.optionalString (tomcat != null) ''
+ install -D ${tomcat.src} $sourceRoot/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads/apache-tomcat-${tomcat.version}.tar.gz
+ install -D ${tomcat.src} $sourceRoot/hadoop-common-project/hadoop-kms/downloads/apache-tomcat-${tomcat.version}.tar.gz
+ '';
+
+ # perform fake build to make a fixed-output derivation of dependencies downloaded from maven central (~100Mb in ~3000 files)
+ fetched-maven-deps = stdenv.mkDerivation {
+ name = "hadoop-${version}-maven-deps";
+ inherit src postUnpack nativeBuildInputs buildInputs;
+ buildPhase = ''
+ while mvn package -Dmaven.repo.local=$out/.m2 ${mavenFlags} -Dmaven.wagon.rto=5000; [ $? = 1 ]; do
+ echo "timeout, restart maven to continue downloading"
+ done
+ '';
+ # keep only *.{pom,jar,xml,sha1,so,dll,dylib} and delete all ephemeral files with lastModified timestamps inside
+ installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete'';
+ outputHashAlgo = "sha256";
+ outputHashMode = "recursive";
+ outputHash = dependencies-sha256;
+ };
+
+ nativeBuildInputs = [ maven cmake pkgconfig ];
+ buildInputs = [ fuse snappy zlib bzip2 opensslPkg protobuf2_5 ];
+ # most of the hardcoded pathes are fixed in 2.9.x and 3.0.0, this list of patched files might be reduced when 2.7.x and 2.8.x will be deprecated
+ postPatch = ''
+ for file in hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/HardLink.java \
+ hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java \
+ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java \
+ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DockerContainerExecutor.java \
+ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java \
+ hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/MRJobConfig.java; do
+ if [ -f "$file" ]; then
+ substituteInPlace "$file" \
+ --replace '/usr/bin/stat' 'stat' \
+ --replace '/bin/bash' 'bash' \
+ --replace '/bin/ls' 'ls' \
+ --replace '/bin/mv' 'mv'
+ fi
+ done
+ '';
+ dontConfigure = true; # do not trigger cmake hook
+ mavenFlags = "-Drequire.snappy -Drequire.bzip2 -DskipTests -Pdist,native -e";
+ buildPhase = ''
+ # 'maven.repo.local' must be writable
+ mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetched-maven-deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 ${mavenFlags}
+ # remove runtime dependency on $jdk/jre/lib/amd64/server/libjvm.so
+ patchelf --set-rpath ${stdenv.lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhadoop.so.1.0.0
+ patchelf --set-rpath ${stdenv.lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhdfs.so.0.0.0
+ '';
+ installPhase = "mv hadoop-dist/target/hadoop-${version} $out";
+ };
+ in
+ stdenv.mkDerivation {
+ pname = "hadoop";
+ inherit version;
+
+ src = binary-distributon;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/share/doc/hadoop
+ cp -dpR * $out/
+ mv $out/*.txt $out/share/doc/hadoop/
+
+ #
+ # Do not use `wrapProgram` here, script renaming may result to weird things: http://i.imgur.com/0Xee013.png
+ #
+ mkdir -p $out/bin.wrapped
+ for n in $out/bin/*; do
+ if [ -f "$n" ]; then # only regular files
+ mv $n $out/bin.wrapped/
+ makeWrapper $out/bin.wrapped/$(basename $n) $n \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ which jre bash coreutils ]}" \
+ --prefix JAVA_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ opensslPkg snappy zlib bzip2 ]}" \
+ --set JAVA_HOME "${jre}" \
+ --set HADOOP_PREFIX "$out"
+ fi
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://hadoop.apache.org/";
+ description = "Framework for distributed processing of large data sets across clusters of computers";
+ license = licenses.asl20;
+
+ longDescription = ''
+ The Apache Hadoop software library is a framework that allows for
+ the distributed processing of large data sets across clusters of
+ computers using a simple programming model. It is designed to
+ scale up from single servers to thousands of machines, each
+ offering local computation and storage. Rather than rely on
+ hardware to deliver high-avaiability, the library itself is
+ designed to detect and handle failures at the application layer,
+ so delivering a highly-availabile service on top of a cluster of
+ computers, each of which may be prone to failures.
+ '';
+ maintainers = with maintainers; [ volth ];
+ platforms = [ "x86_64-linux" ];
+ };
+ };
+
+ tomcat_6_0_48 = rec {
+ version = "6.0.48";
+ src = fetchurl {
+ # do not use "mirror://apache/" here, tomcat-6 is legacy and has been removed from the mirrors
+ url = "https://archive.apache.org/dist/tomcat/tomcat-6/v${version}/bin/apache-tomcat-${version}.tar.gz";
+ sha256 = "1w4jf28g8p25fmijixw6b02iqlagy2rvr57y3n90hvz341kb0bbc";
+ };
+ };
+
+in {
+ hadoop_2_7 = common {
+ version = "2.7.7";
+ sha256 = "1ahv67f3lwak3kbjvnk1gncq56z6dksbajj872iqd0awdsj3p5rf";
+ dependencies-sha256 = "1lsr9nvrynzspxqcamb10d596zlnmnfpxhkd884gdiva0frm0b1r";
+ tomcat = tomcat_6_0_48;
+ opensslPkg = openssl_1_0_2;
+ };
+ hadoop_2_8 = common {
+ version = "2.8.4";
+ sha256 = "16c3ljhrzibkjn3y1bmjxdgf0kn60l23ay5hqpp7vpbnqx52x68w";
+ dependencies-sha256 = "1j4f461487fydgr5978nnm245ksv4xbvskfr8pbmfhcyss6b7w03";
+ tomcat = tomcat_6_0_48;
+ opensslPkg = openssl_1_0_2;
+ };
+ hadoop_2_9 = common {
+ version = "2.9.1";
+ sha256 = "0qgmpfbpv7f521fkjy5ldzdb4lwiblhs0hyl8qy041ws17y5x7d7";
+ dependencies-sha256 = "1d5i8jj5y746rrqb9lscycnd7acmxlkz64ydsiyqsh5cdqgy2x7x";
+ tomcat = tomcat_6_0_48;
+ opensslPkg = openssl_1_0_2;
+ };
+ hadoop_3_0 = common {
+ version = "3.0.3";
+ sha256 = "1vvkci0kx4b48dg0niifn2d3r4wwq8pb3c5z20wy8pqsqrqhlci5";
+ dependencies-sha256 = "1kzkna9ywacm2m1cirj9cyip66bgqjhid2xf9rrhq6g10lhr8j9m";
+ tomcat = null;
+ };
+ hadoop_3_1 = common {
+ version = "3.1.1";
+ sha256 = "04hhdbyd4x1hy0fpy537f8mi0864hww97zap29x7dk1smrffwabd";
+ dependencies-sha256 = "1q63jsxg3d31x0p8hvhpvbly2b07almyzsbhwphbczl3fhlqgiwn";
+ tomcat = null;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
new file mode 100644
index 000000000000..86d1fd1383c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "helm";
+ version = "3.4.1";
+
+ src = fetchFromGitHub {
+ owner = "helm";
+ repo = "helm";
+ rev = "v${version}";
+ sha256 = "13w0s11319qg9mmmxc24mlj0hrp0r529p3ny4gfzsl0vn3qzd6i2";
+ };
+ vendorSha256 = "0x3dcvnrl7cs8faaiq9ybfgg0lkac5ppf61i724cja270nmpmazl";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/helm" ];
+ buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+ postInstall = ''
+ $out/bin/helm completion bash > helm.bash
+ $out/bin/helm completion zsh > helm.zsh
+ installShellCompletion helm.{bash,zsh}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/kubernetes/helm";
+ description = "A package manager for kubernetes";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman Chili-Man ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
new file mode 100644
index 000000000000..2516370430e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm }:
+
+buildGoModule rec {
+ pname = "helmfile";
+ version = "0.135.0";
+
+ src = fetchFromGitHub {
+ owner = "roboll";
+ repo = "helmfile";
+ rev = "v${version}";
+ sha256 = "1ky9mh5n6n84g77ax1dn1cisgxjwyrhnapaikyj4q53zcbyai3ng";
+ };
+
+ vendorSha256 = "0dycngvk4nymcrkn6pn2q2h2zfvhc69m1zs2pspl58sa0mkakk2p";
+
+ doCheck = false;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ subPackages = [ "." ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/roboll/helmfile/pkg/app/version.Version=${version}" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/helmfile \
+ --prefix PATH : ${lib.makeBinPath [ kubernetes-helm ]}
+ '';
+
+ meta = {
+ description = "Deploy Kubernetes Helm charts";
+ homepage = "https://github.com/roboll/helmfile";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ pneumaticat yurrriq ];
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
new file mode 100644
index 000000000000..21a9608db2c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub, ... }:
+
+buildGoModule rec {
+ pname = "helmsman";
+ version = "3.6.2";
+
+ src = fetchFromGitHub {
+ owner = "Praqma";
+ repo = "helmsman";
+ rev = "v${version}";
+ sha256 = "0a9f6745f17sws7fyhz0d8wnriv69d6nrci9j5nhysnzg97ky1np";
+ };
+
+ vendorSha256 = "04csmw5zpansb30amr3i6vlwxc3z38q4g69cklh44cr37glm04sm";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Helm Charts (k8s applications) as Code tool";
+ homepage = "https://github.com/Praqma/helmsman";
+ license = licenses.mit;
+ maintainers = with maintainers; [ lynty ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
new file mode 100644
index 000000000000..d0afe6d2e436
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -0,0 +1,41 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "hetzner-kube";
+ version = "0.5.1";
+
+ src = fetchFromGitHub {
+ owner = "xetys";
+ repo = "hetzner-kube";
+ rev = version;
+ sha256 = "1iqgpmljqx6rhmvsir2675waj78amcfiw08knwvlmavjgpxx2ysw";
+ };
+
+ vendorSha256 = "1jh2f66ys6rmrrwrf5zqfprgcvziyq6l4z8bfqwxgf1ysnxx525h";
+
+ doCheck = false;
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X github.com/xetys/hetzner-kube/cmd.version=${version}
+ '';
+
+ nativeBuildInputs = [
+ installShellFiles
+ ];
+
+ postInstall = ''
+ $out/bin/hetzner-kube completion bash > hetzner-kube
+ $out/bin/hetzner-kube completion zsh > _hetzner-kube
+ installShellCompletion --zsh _hetzner-kube
+ installShellCompletion --bash hetzner-kube
+ '';
+
+ meta = {
+ description = "A CLI tool for provisioning Kubernetes clusters on Hetzner Cloud";
+ homepage = "https://github.com/xetys/hetzner-kube";
+ license = lib.licenses.asl20;
+ maintainers = with lib.maintainers; [ eliasp ];
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
new file mode 100644
index 000000000000..ffe79381a228
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildGoModule, fetchFromGitHub, go-bindata, installShellFiles }:
+
+buildGoModule rec {
+ pname = "istioctl";
+ version = "1.8.0";
+
+ src = fetchFromGitHub {
+ owner = "istio";
+ repo = "istio";
+ rev = version;
+ sha256 = "0fwc56797gmcg9pcy0jpv5lb0b6wwiqh242xn1chd4a4hp8in7h9";
+ };
+ vendorSha256 = "0ing5pih2rz974dcianlb05fpgrj3y7h32awf3cp41gh448gxd24";
+
+ doCheck = false;
+
+ nativeBuildInputs = [ go-bindata installShellFiles ];
+
+ # Bundle charts
+ preBuild = ''
+ patchShebangs operator/scripts
+ operator/scripts/create_assets_gen.sh
+ '';
+
+ # Bundle release metadata
+ buildFlagsArray = let
+ attrs = [
+ "istio.io/pkg/version.buildVersion=${version}"
+ "istio.io/pkg/version.buildStatus=Nix"
+ "istio.io/pkg/version.buildTag=${version}"
+ "istio.io/pkg/version.buildHub=docker.io/istio"
+ ];
+ in ["-ldflags=-s -w ${lib.concatMapStringsSep " " (attr: "-X ${attr}") attrs}"];
+
+ subPackages = [ "istioctl/cmd/istioctl" ];
+
+ postInstall = ''
+ $out/bin/istioctl collateral --man --bash --zsh
+ installManPage *.1
+ installShellCompletion istioctl.bash
+ installShellCompletion --zsh _istioctl
+ '';
+
+ meta = with lib; {
+ description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
+ homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ veehaitch ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
new file mode 100644
index 000000000000..1f1eb3e8548f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
@@ -0,0 +1,49 @@
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
+
+buildGoModule rec {
+ pname = "jx";
+ version = "2.1.149";
+
+ src = fetchFromGitHub {
+ owner = "jenkins-x";
+ repo = "jx";
+ rev = "v${version}";
+ sha256 = "0jgny09wpfab8mkxkhv9swp1baqx3lxsx75a5i78cypkj6xadc69";
+ };
+
+ vendorSha256 = "1fswrf14nwjm0z8qqgdx236w7w1m451lyfinhx9pyp89fw2h5mv6";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/jx" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildFlagsArray = ''
+ -ldflags=
+ -s -w
+ -X github.com/jenkins-x/jx/pkg/version.Version=${version}
+ -X github.com/jenkins-x/jx/pkg/version.Revision=${src.rev}
+ -X github.com/jenkins-x/jx/pkg/version.GitTreeState=clean
+ '';
+
+ postInstall = ''
+ for shell in bash zsh; do
+ $out/bin/jx completion $shell > jx.$shell
+ installShellCompletion jx.$shell
+ done
+ '';
+
+ meta = with lib; {
+ description = "Command line tool for installing and using Jenkins X";
+ homepage = "https://jenkins-x.io";
+ longDescription = ''
+ Jenkins X provides automated CI+CD for Kubernetes with Preview
+ Environments on Pull Requests using Jenkins, Knative Build, Prow,
+ Skaffold and Helm.
+ '';
+ license = licenses.asl20 ;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
new file mode 100644
index 000000000000..55d51a656d9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
@@ -0,0 +1,269 @@
+{ stdenv
+, lib
+, makeWrapper
+, socat
+, iptables
+, iproute
+, bridge-utils
+, conntrack-tools
+, buildGoPackage
+, git
+, runc
+, kmod
+, libseccomp
+, pkgconfig
+, ethtool
+, util-linux
+, ipset
+, fetchFromGitHub
+, fetchurl
+, fetchzip
+, fetchgit
+}:
+
+with lib;
+
+# k3s is a kinda weird derivation. One of the main points of k3s is the
+# simplicity of it being one binary that can perform several tasks.
+# However, when you have a good package manager (like nix), that doesn't
+# actually make much of a difference; you don't really care if it's one binary
+# or 10 since with a good package manager, installing and running it is
+# identical.
+# Since upstream k3s packages itself as one large binary with several
+# "personalities" (in the form of subcommands like 'k3s agent' and 'k3s
+# kubectl'), it ends up being easiest to mostly mimic upstream packaging, with
+# some exceptions.
+# K3s also carries patches to some packages (such as containerd and cni
+# plugins), so we intentionally use the k3s versions of those binaries for k3s,
+# even if the upstream version of those binaries exist in nixpkgs already. In
+# the end, that means we have a thick k3s binary that behaves like the upstream
+# one for the most part.
+# However, k3s also bundles several pieces of unpatched software, from the
+# strongswan vpn software, to iptables, to socat, conntrack, busybox, etc.
+# Those pieces of software we entirely ignore upstream's handling of, and just
+# make sure they're in the path if desired.
+let
+ k3sVersion = "1.19.2+k3s1"; # k3s git tag
+ traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag
+ k3sRootVersion = "0.6.0-rc3"; # taken from ./scripts/download at the above k3s tag
+ k3sCNIVersion = "0.8.6-k3s1"; # taken from ./scripts/version.sh at the above k3s tag
+ # bundled into the k3s binary
+ traefikChart = fetchurl {
+ url = "https://kubernetes-charts.storage.googleapis.com/traefik-${traefikChartVersion}.tgz";
+ sha256 = "1aqpzgjlvqhil0g3angz94zd4xbl4iq0qmpjcy5aq1xv9qciwdi9";
+ };
+ # so, k3s is a complicated thing to package
+ # This derivation attempts to avoid including any random binaries from the
+ # internet. k3s-root is _mostly_ binaries built to be bundled in k3s (which
+ # we don't care about doing, we can add those as build or runtime
+ # dependencies using a real package manager).
+ # In addition to those binaries, it's also configuration though (right now
+ # mostly strongswan configuration), and k3s does use those files.
+ # As such, we download it in order to grab 'etc' and bundle it into the final
+ # k3s binary.
+ k3sRoot = fetchzip {
+ # Note: marked as apache 2.0 license
+ url = "https://github.com/rancher/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar";
+ sha256 = "0xj3dcqawpzyzmz545iwh151krzbs9csnzg3zfl74lkv2kxgidk6";
+ stripRoot = false;
+ };
+ k3sPlugins = buildGoPackage rec {
+ name = "k3s-cni-plugins";
+ version = k3sCNIVersion;
+
+ goPackagePath = "github.com/containernetworking/plugins";
+ subPackages = [ "." ];
+
+ src = fetchFromGitHub {
+ owner = "rancher";
+ repo = "plugins";
+ rev = "v${version}";
+ sha256 = "13kx9msn5y9rw8v1p717wx0wbjqln59g6y3qfb1760aiwknva35q";
+ };
+
+ meta = {
+ description = "CNI plugins, as patched by rancher for k3s";
+ license = licenses.asl20;
+ homepage = "https://k3s.io";
+ maintainers = [ maintainers.euank ];
+ platforms = platforms.linux;
+ };
+ };
+ # Grab this separately from a build because it's used by both stages of the
+ # k3s build.
+ k3sRepo = fetchgit {
+ url = "https://github.com/rancher/k3s";
+ rev = "v${k3sVersion}";
+ leaveDotGit = true; # ./scripts/version.sh depends on git
+ sha256 = "1hbnarchs9w52w061bvfjvssdh7ycnxa04camjwkcx8vr0k804h4";
+ };
+ # Stage 1 of the k3s build:
+ # Let's talk about how k3s is structured.
+ # One of the ideas of k3s is that there's the single "k3s" binary which can
+ # do everything you need, from running a k3s server, to being a worker node,
+ # to running kubectl.
+ # The way that actually works is that k3s is a single go binary that contains
+ # a bunch of bindata that it unpacks at runtime into directories (either the
+ # user's home directory or /var/lib/rancher if run as root).
+ # This bindata includes both binaries and configuration.
+ # In order to let nixpkgs do all its autostripping/patching/etc, we split this into two derivations.
+ # First, we build all the binaries that get packed into the thick k3s binary
+ # (and output them from one derivation so they'll all be suitably patched up).
+ # Then, we bundle those binaries into our thick k3s binary and use that as
+ # the final single output.
+ # This approach was chosen because it ensures the bundled binaries all are
+ # correctly built to run with nix (we can lean on the existing buildGoPackage
+ # stuff), and we can again lean on that tooling for the final k3s binary too.
+ # Other alternatives would be to manually run the
+ # strip/patchelf/remove-references step ourselves in the installPhase of the
+ # derivation when we've built all the binaries, but haven't bundled them in
+ # with generated bindata yet.
+ k3sBuildStage1 = buildGoPackage rec {
+ name = "k3s-build-1";
+ version = "${k3sVersion}";
+
+ goPackagePath = "github.com/rancher/k3s";
+
+ src = k3sRepo;
+
+ patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
+
+ nativeBuildInputs = [ git pkgconfig ];
+ buildInputs = [ libseccomp ];
+
+ buildPhase = ''
+ pushd go/src/${goPackagePath}
+
+ patchShebangs ./scripts/build ./scripts/version.sh
+ mkdir -p bin
+ ./scripts/build
+
+ popd
+ '';
+
+ installPhase = ''
+ pushd go/src/${goPackagePath}
+
+ mkdir -p "$out/bin"
+ install -m 0755 -t "$out/bin" ./bin/*
+
+ popd
+ '';
+
+ meta = {
+ description = "The various binaries that get packaged into the final k3s binary";
+ license = licenses.asl20;
+ homepage = "https://k3s.io";
+ maintainers = [ maintainers.euank ];
+ platforms = platforms.linux;
+ };
+ };
+ k3sBuild = buildGoPackage rec {
+ name = "k3s-build";
+ version = "${k3sVersion}";
+
+ goPackagePath = "github.com/rancher/k3s";
+
+ src = k3sRepo;
+
+ patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
+
+ nativeBuildInputs = [ git pkgconfig ];
+ buildInputs = [ k3sBuildStage1 k3sPlugins runc ];
+
+ # k3s appends a suffix to the final distribution binary for some arches
+ archSuffix =
+ if stdenv.hostPlatform.system == "x86_64-linux" then ""
+ else if stdenv.hostPlatform.system == "aarch64-linux" then "-arm64"
+ else throw "k3s isn't being built for ${stdenv.hostPlatform.system} yet.";
+
+ # In order to build the thick k3s binary (which is what
+ # ./scripts/package-cli does), we need to get all the binaries that script
+ # expects in place.
+ buildPhase = ''
+ pushd go/src/${goPackagePath}
+
+ patchShebangs ./scripts/build ./scripts/version.sh ./scripts/package-cli
+
+ mkdir -p bin
+
+ install -m 0755 -t ./bin ${k3sBuildStage1}/bin/*
+ install -m 0755 -T "${k3sPlugins}/bin/plugins" ./bin/cni
+ # Note: use the already-nixpkgs-bundled k3s rather than the one bundled
+ # in k3s because the k3s one is completely unmodified from upstream
+ # (unlike containerd, cni, etc)
+ install -m 0755 -T "${runc}/bin/runc" ./bin/runc
+ cp -R "${k3sRoot}/etc" ./etc
+ mkdir -p "build/static/charts"
+ cp "${traefikChart}" "build/static/charts/traefik-${traefikChartVersion}.tgz"
+
+ ./scripts/package-cli
+
+ popd
+ '';
+
+ installPhase = ''
+ pushd go/src/${goPackagePath}
+
+ mkdir -p "$out/bin"
+ install -m 0755 -T ./dist/artifacts/k3s${archSuffix} "$out/bin/k3s"
+
+ popd
+ '';
+
+ meta = {
+ description = "The k3s go binary which is used by the final wrapped output below";
+ license = licenses.asl20;
+ homepage = "https://k3s.io";
+ maintainers = [ maintainers.euank ];
+ platforms = platforms.linux;
+ };
+ };
+in
+stdenv.mkDerivation rec {
+ name = "k3s";
+ version = k3sVersion;
+
+ # Important utilities used by the kubelet, see
+ # https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
+ # Note the list in that issue is stale and some aren't relevant for k3s.
+ k3sRuntimeDeps = [
+ kmod
+ socat
+ iptables
+ iproute
+ bridge-utils
+ ethtool
+ util-linux
+ ipset
+ conntrack-tools
+ ];
+
+ buildInputs = [
+ k3sBuild
+ makeWrapper
+ ] ++ k3sRuntimeDeps;
+
+ unpackPhase = "true";
+
+ # And, one final derivation (you thought the last one was it, right?)
+ # We got the binary we wanted above, but it doesn't have all the runtime
+ # dependencies k8s wants, including mount utilities for kubelet, networking
+ # tools for cni/kubelet stuff, etc
+ # Use a wrapper script to reference all the binaries that k3s tries to
+ # execute, but that we didn't bundle with it.
+ installPhase = ''
+ mkdir -p "$out/bin"
+ makeWrapper ${k3sBuild}/bin/k3s "$out/bin/k3s" \
+ --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \
+ --prefix PATH : "$out/bin"
+ '';
+
+ meta = {
+ description = "A lightweight Kubernetes distribution";
+ license = licenses.asl20;
+ homepage = "https://k3s.io";
+ maintainers = [ maintainers.euank ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
new file mode 100644
index 000000000000..c439241e8558
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
@@ -0,0 +1,25 @@
+From e79ddef65d08599ae3fe8ff39d202ea2416650b8 Mon Sep 17 00:00:00 2001
+From: Euan Kemp <euank@euank.com>
+Date: Sun, 31 May 2020 17:27:05 -0700
+Subject: [PATCH 1/2] Use 'rm' from path in go generate
+
+/bin/rm is less portable. On some distros, like nixos, it doesn't exist
+at all.
+---
+ main.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/main.go b/main.go
+index 62908bb7bb..0527222887 100644
+--- a/main.go
++++ b/main.go
+@@ -1,5 +1,5 @@
+ //go:generate go run pkg/codegen/cleanup/main.go
+-//go:generate /bin/rm -rf pkg/generated
++//go:generate rm -rf pkg/generated
+ //go:generate go run pkg/codegen/main.go
+ //go:generate go fmt pkg/deploy/zz_generated_bindata.go
+ //go:generate go fmt pkg/static/zz_generated_bindata.go
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch
new file mode 100644
index 000000000000..244da314f595
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch
@@ -0,0 +1,84 @@
+From 1891be119e298ef7c86347a6b74d40ff539cf06e Mon Sep 17 00:00:00 2001
+From: Euan Kemp <euank@euank.com>
+Date: Sun, 31 May 2020 19:02:37 -0700
+Subject: [PATCH 2/2] Add nixpkgs patches
+
+These patches let us re-use the upstream build scripts when building for
+nix.
+---
+ scripts/build | 20 ++++----------------
+ scripts/package-cli | 10 ++++++----
+ 2 files changed, 10 insertions(+), 20 deletions(-)
+
+diff --git a/scripts/build b/scripts/build
+index 4ca6333c4a..df15f7db1d 100755
+--- a/scripts/build
++++ b/scripts/build
+@@ -12,7 +12,8 @@ PKG_CONTAINERD="github.com/containerd/containerd"
+ PKG_RANCHER_CONTAINERD="github.com/rancher/containerd"
+ PKG_CRICTL="github.com/kubernetes-sigs/cri-tools"
+
+-buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ')
++# nixpkgs: deterministic build date
++buildDate="$(date -d "$(git log -1 --format=%ai)" -u "+%Y-%m-%dT%H:%M:%SZ")"
+
+ VENDOR_PREFIX="${PKG}/vendor/"
+ VERSIONFLAGS="
+@@ -92,17 +93,7 @@ cleanup() {
+ }
+
+ INSTALLBIN=$(pwd)/bin
+-if [ ! -x ${INSTALLBIN}/cni ]; then
+-(
+- echo Building cni
+- TMPDIR=$(mktemp -d)
+- trap cleanup EXIT
+- WORKDIR=$TMPDIR/src/github.com/containernetworking/plugins
+- git clone -b $VERSION_CNIPLUGINS https://github.com/rancher/plugins.git $WORKDIR
+- cd $WORKDIR
+- GOPATH=$TMPDIR CGO_ENABLED=0 "${GO}" build -tags "$TAGS" -ldflags "$LDFLAGS $STATIC" -o $INSTALLBIN/cni
+-)
+-fi
++# nixpkgs: skip building cni, we build it separately
+ # echo Building agent
+ # CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/k3s-agent ./cmd/agent/main.go
+ echo Building server
+@@ -118,10 +109,7 @@ ln -s containerd ./bin/ctr
+ #CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC_SQLITE" -o bin/ctr ./cmd/ctr/main.go
+ # echo Building containerd
+ # CGO_ENABLED=0 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd ./cmd/containerd/
+-echo Building runc
+-rm -f ./vendor/github.com/opencontainers/runc/runc
+-make EXTRA_LDFLAGS="-w -s" BUILDTAGS="$RUNC_TAGS" -C ./vendor/github.com/opencontainers/runc $RUNC_STATIC
+-cp -f ./vendor/github.com/opencontainers/runc/runc ./bin/runc
++# nixpkgs: we build runc separately
+
+ echo Building containerd-shim
+ rm -f ./vendor/github.com/containerd/containerd/bin/containerd-shim
+diff --git a/scripts/package-cli b/scripts/package-cli
+index d1aad638d9..90479b6fa1 100755
+--- a/scripts/package-cli
++++ b/scripts/package-cli
+@@ -49,15 +49,18 @@ fi
+
+ CMD_NAME=dist/artifacts/k3s${BIN_SUFFIX}
+
+-"${GO}" generate
++CGO_ENABLED=0 env -u GOARCH "${GO}" generate
+ LDFLAGS="
+ -X github.com/rancher/k3s/pkg/version.Version=$VERSION
+ -X github.com/rancher/k3s/pkg/version.GitCommit=${COMMIT:0:8}
+ -w -s
+ "
+-STATIC="-extldflags '-static'"
+-CGO_ENABLED=0 "${GO}" build -ldflags "$LDFLAGS $STATIC" -o ${CMD_NAME} ./cmd/k3s/main.go
++# STATIC="-extldflags '-static'"
++# nixpkgs: we can depend on dynamic linking because we have a good package manager
++"${GO}" build -ldflags "$LDFLAGS" -o ${CMD_NAME} ./cmd/k3s/main.go
+
+ stat ${CMD_NAME}
+
+-./scripts/build-upload ${CMD_NAME} ${COMMIT}
++# nixpkgs: skip uploading
++# ./scripts/build-upload ${CMD_NAME} ${COMMIT}
++
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
new file mode 100644
index 000000000000..d45cbb19e71b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "k9s";
+ version = "0.24.2";
+
+ src = fetchFromGitHub {
+ owner = "derailed";
+ repo = "k9s";
+ rev = "v${version}";
+ sha256 = "0cr7ap9yfd9flcph98rxap2f46fc3v689v31mc8n7vxi9jr07irh";
+ };
+
+ buildFlagsArray = ''
+ -ldflags=
+ -s -w
+ -X github.com/derailed/k9s/cmd.version=${version}
+ -X github.com/derailed/k9s/cmd.commit=${src.rev}
+ '';
+
+ vendorSha256 = "01g50sfk0k7v60m3anfiq2w9pzl2wpa985s22ciq911h3fscka3f";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Kubernetes CLI To Manage Your Clusters In Style";
+ homepage = "https://github.com/derailed/k9s";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Gonzih markus1189 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix
new file mode 100644
index 000000000000..ebf98840ee2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, perl , taktuk}:
+
+stdenv.mkDerivation rec {
+ version = "1.2.2";
+ pname = "kanif";
+
+ src = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/26773/${pname}-${version}.tar.gz";
+ sha256 = "3f0c549428dfe88457c1db293cfac2a22b203f872904c3abf372651ac12e5879";
+ };
+
+ preBuild = ''
+ substituteInPlace ./kanif --replace "/usr/bin/perl" "${perl}/bin/perl"
+ substituteInPlace ./kanif --replace '$taktuk_command = "taktuk";' '$taktuk_command = "${taktuk}/bin/taktuk";'
+ '';
+
+ meta = {
+ description = "Cluster management and administration swiss army knife";
+ longDescription = ''
+ Kanif is a tool for high performance computing clusters management and
+ administration. It combines the main functionalities of well-known cluster
+ management tools such as c3, pdsh and dsh, and mimics their syntax. It
+ provides three tools to run the same command on several nodes ("parallel
+ ssh", using the 'kash' command), to broadcast the copy of files or
+ directories to several nodes ('kaput' command), and to gather several
+ remote files or directories locally ('kaget' command). It relies on TakTuk
+ for efficiency and scalability.'';
+ homepage = "http://taktuk.gforge.inria.fr/kanif";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.bzizou ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
new file mode 100644
index 000000000000..c01e1c8c0041
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
+
+buildGoPackage rec {
+ pname = "kompose";
+ version = "1.21.0";
+
+ goPackagePath = "github.com/kubernetes/kompose";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "kubernetes";
+ repo = "kompose";
+ sha256 = "15a1alf6ywwfc4z5kdcnv64fp3cfy3qrcw62ny6xyn1kh1w24vkh";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+ postInstall = ''
+ for shell in bash zsh; do
+ $out/bin/kompose completion $shell > kompose.$shell
+ installShellCompletion kompose.$shell
+ done
+ '';
+
+ meta = with lib; {
+ description = "A tool to help users who are familiar with docker-compose move to Kubernetes";
+ homepage = "https://kompose.io";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ thpham vdemeester ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix
new file mode 100644
index 000000000000..87ae71f6a48d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "kontemplate";
+ version = "1.8.0";
+ goPackagePath = "github.com/tazjin/kontemplate";
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "tazjin";
+ repo = "kontemplate";
+ rev = "v${version}";
+ sha256 = "123mjmmm4hynraq1fpn3j5i0a1i87l265kkjraxxxbl0zacv74i1";
+ };
+
+ meta = with lib; {
+ description = "Extremely simple Kubernetes resource templates";
+ homepage = "http://kontemplate.works";
+ downloadPage = "https://github.com/tazjin/kontemplate/releases";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ mbode tazjin ];
+ platforms = platforms.unix;
+ repositories.git = "git://github.com/tazjin/kontemplate.git";
+
+ longDescription = ''
+ Kontemplate is a simple CLI tool that can take sets of
+ Kubernetes resource files with placeholders and insert values
+ per environment.
+
+ It can be used as a simple way of deploying the same set of
+ resources to different Kubernetes contexts with context-specific
+ configuration.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix
new file mode 100644
index 000000000000..7693968bd550
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix
@@ -0,0 +1,111 @@
+# 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 = "5bc3b9184d48f1412b300b87a200cf020d9254cf";
+ sha256 = "1vdfm653v50jf63cw0kg2hslx50cn4mk6lj3p51bi11jrg48kfng";
+ };
+ }
+ {
+ goPackagePath = "github.com/Masterminds/sprig";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Masterminds/sprig";
+ rev = "6f509977777c33eae63b2136d97f7b976cb971cc";
+ sha256 = "05h9k6fhjxnpwlihj3z02q9kvqvnq53jix0ab84sx0666bci3cdh";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/template";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/template";
+ rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
+ sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/units";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/units";
+ rev = "c3de453c63f4bdb4dadffab9805ec00426c505f7";
+ sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my";
+ };
+ }
+ {
+ goPackagePath = "github.com/ghodss/yaml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ghodss/yaml";
+ rev = "25d852aebe32c875e9c044af3eef9c7dc6bc777f";
+ sha256 = "1w9yq0bxzygc4qwkwwiy7k1k1yviaspcqqv18255k2xkjv5ipccz";
+ };
+ }
+ {
+ 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 = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "9756ffdc24725223350eb3266ffb92590d28f278";
+ sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/alecthomas/kingpin.v2";
+ rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
+ sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+ };
+ }
+ {
+ 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/applications/networking/cluster/kops/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
new file mode 100644
index 000000000000..a81c33a84bb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, go-bindata, installShellFiles }:
+let
+ goPackagePath = "k8s.io/kops";
+
+ generic = { version, sha256, rev ? version, ... }@attrs:
+ let attrs' = builtins.removeAttrs attrs [ "version" "sha256" "rev" ]; in
+ buildGoPackage
+ {
+ pname = "kops";
+ inherit version;
+
+ inherit goPackagePath;
+
+ src = fetchFromGitHub {
+ rev = rev;
+ owner = "kubernetes";
+ repo = "kops";
+ inherit sha256;
+ };
+
+ nativeBuildInputs = [ go-bindata installShellFiles ];
+ subPackages = [ "cmd/kops" ];
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X k8s.io/kops.Version=${version}
+ -X k8s.io/kops.GitVersion=${version}
+ '';
+
+ preBuild = ''
+ (cd go/src/k8s.io/kops
+ go-bindata -o upup/models/bindata.go -pkg models -prefix upup/models/ upup/models/...)
+ '';
+
+ postInstall = ''
+ for shell in bash zsh; do
+ $out/bin/kops completion $shell > kops.$shell
+ installShellCompletion kops.$shell
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Easiest way to get a production Kubernetes up and running";
+ homepage = "https://github.com/kubernetes/kops";
+ changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline zimbatm kampka ];
+ platforms = platforms.unix;
+ };
+ } // attrs';
+in
+rec {
+
+ mkKops = generic;
+
+ kops_1_16 = mkKops {
+ version = "1.16.4";
+ sha256 = "0qi80hzd5wc8vn3y0wsckd7pq09xcshpzvcr7rl5zd4akxb0wl3f";
+ };
+
+ kops_1_17 = mkKops {
+ version = "1.17.2";
+ sha256 = "0fmrzjz163hda6sl1jkl7cmg8fw6mmqb9953048jnhmd3w428xlz";
+ };
+
+ kops_1_18 = mkKops rec {
+ version = "1.18.2";
+ sha256 = "17na83j6sfhk69w9ssvicc0xd1904z952ad3zzbpha50lcy6nlhp";
+ rev = "v${version}";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
new file mode 100644
index 000000000000..712761eeef29
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
@@ -0,0 +1,27 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "kpt";
+ version = "0.37.0";
+
+ src = fetchFromGitHub {
+ owner = "GoogleContainerTools";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1b1sgwax67pazcs1lly3h3bb7ww91lcd3nr0w3r3f46d1c6iy8mn";
+ };
+
+ vendorSha256 = "0dn6nryf3vn7r0xna02va4wbgkq0z6x8sj6g2mskfywrk0mfhadv";
+
+ subPackages = [ "." ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/GoogleContainerTools/kpt/run.version=${version}" ];
+
+ meta = with lib; {
+ description = "A toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files";
+ homepage = "https://googlecontainertools.github.io/kpt/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ mikefaille ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
new file mode 100644
index 000000000000..8e20093f5b21
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "kube-router";
+ version = "1.1.0";
+
+ goPackagePath = "github.com/cloudnativelabs/kube-router";
+
+ src = fetchFromGitHub {
+ owner = "cloudnativelabs";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0nsd371w667qhgiygxcg4kmynwldb0pbip6x03rc7j854hg8l7k0";
+ };
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X
+ ${goPackagePath}/pkg/cmd.version=${version}
+ -X
+ ${goPackagePath}/pkg/cmd.buildDate=Nix
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.kube-router.io/";
+ description = "All-in-one router, firewall and service proxy for Kubernetes";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ colemickens johanot ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
new file mode 100644
index 000000000000..9163347d7b22
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -0,0 +1,53 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+let
+ k3sVersion = "1.19.3-k3s3";
+in
+buildGoModule rec {
+ pname = "kube3d";
+ version = "3.3.0";
+
+ excludedPackages = "tools";
+
+ src = fetchFromGitHub {
+ owner = "rancher";
+ repo = "k3d";
+ rev = "v${version}";
+ sha256 = "1pq5x4fyn98f01mzfjv335gx29c61zd85qc5vhx9rk27hi825ima";
+ };
+
+ vendorSha256 = null;
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildFlagsArray = [
+ "-ldflags="
+ "-w"
+ "-s"
+ "-X github.com/rancher/k3d/v3/version.Version=v${version}"
+ "-X github.com/rancher/k3d/v3/version.K3sVersion=v${k3sVersion}"
+ ];
+
+ doCheck = false;
+
+ postInstall = ''
+ installShellCompletion --cmd k3d \
+ --bash <($out/bin/k3d completion bash) \
+ --fish <($out/bin/k3d completion fish) \
+ --zsh <($out/bin/k3d completion zsh)
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/rancher/k3d";
+ description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container - k3d";
+ longDescription = ''
+ k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
+
+ k3d creates containerized k3s clusters. This means, that you can spin up a
+ multi-node k3s cluster on a single machine using docker.
+ '';
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
new file mode 100644
index 000000000000..b8bef9ecc052
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoPackage, fetchFromGitHub, ... }:
+
+let version = "0.16.0"; in
+
+buildGoPackage {
+ pname = "kubecfg";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "bitnami";
+ repo = "kubecfg";
+ rev = "v${version}";
+ sha256 = "1ipw7r9fyqbh1bjvk7ifmj3skh799ly90y4ph37r8mqk1wb92rz4";
+ };
+
+ goPackagePath = "github.com/bitnami/kubecfg";
+
+ meta = {
+ description = "A tool for managing Kubernetes resources as code";
+ homepage = "https://github.com/bitnami/kubecfg";
+ license = lib.licenses.asl20;
+ maintainers = with lib.maintainers; [ benley ];
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix
new file mode 100644
index 000000000000..fed40523a9b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, kubernetes }:
+
+stdenv.mkDerivation {
+ name = "kubectl-${kubernetes.version}";
+
+ # kubectl is currently part of the main distribution but will eventially be
+ # split out (see homepage)
+ src = kubernetes;
+
+ outputs = [ "out" "man" ];
+
+ installPhase = ''
+ mkdir -p \
+ "$out/bin" \
+ "$out/share/bash-completion/completions" \
+ "$out/share/zsh/site-functions" \
+ "$man/share/man/man1"
+
+ cp bin/kubectl $out/bin/kubectl
+
+ cp "${kubernetes.man}/share/man/man1"/kubectl* "$man/share/man/man1"
+
+ $out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl
+ $out/bin/kubectl completion zsh > $out/share/zsh/site-functions/_kubectl
+ '';
+
+ meta = kubernetes.meta // {
+ description = "Kubernetes CLI";
+ homepage = "https://github.com/kubernetes/kubectl";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix
new file mode 100644
index 000000000000..6f6c8dc338bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
+
+buildGoPackage rec {
+ pname = "kubeless";
+ version = "1.0.7";
+
+ src = fetchFromGitHub {
+ owner = "kubeless";
+ repo = "kubeless";
+ rev = "v${version}";
+ sha256 = "0x2hydywnnlh6arzz71p7gg9yzq5z2y2lppn1jszvkbgh11kkqfr";
+ };
+
+ goPackagePath = "github.com/kubeless/kubeless";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ subPackages = [ "cmd/kubeless" ];
+
+ buildFlagsArray = ''
+ -ldflags=-s -w -X github.com/kubeless/kubeless/pkg/version.Version=${version}
+ '';
+
+ postInstall = ''
+ for shell in bash; do
+ $out/bin/kubeless completion $shell > kubeless.$shell
+ installShellCompletion kubeless.$shell
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://kubeless.io";
+ description = "The Kubernetes Native Serverless Framework";
+ license = licenses.asl20;
+ maintainers = with maintainers; [];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
new file mode 100644
index 000000000000..ced9c43876f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, buildGoModule, go }:
+
+buildGoModule rec {
+ pname = "kubelogin";
+ version = "0.0.7";
+
+ src = fetchFromGitHub {
+ owner = "Azure";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0jw8v6ff0iwkwxlhcr35cvhy4zg31dsm1s3q4fxgi901yj1wn6zy";
+ };
+
+ vendorSha256 = "0al8y65xvnwl34jkpqyf6zwr21xn30zswknlym9nnn1n47fyayxb";
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X main.version=${version}
+ -X main.goVersion=${stdenv.lib.getVersion go}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Kubernetes credential plugin implementing Azure authentication";
+ inherit (src.meta) homepage;
+ license = licenses.mit;
+ maintainers = with maintainers; [ yurrriq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
new file mode 100644
index 000000000000..9a8bbe09a508
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, lib, fetchFromGitHub, removeReferencesTo, which, go, go-bindata, makeWrapper, rsync
+, components ? [
+ "cmd/kubeadm"
+ "cmd/kubectl"
+ "cmd/kubelet"
+ "cmd/kube-apiserver"
+ "cmd/kube-controller-manager"
+ "cmd/kube-proxy"
+ "cmd/kube-scheduler"
+ "test/e2e/e2e.test"
+ ]
+}:
+
+with lib;
+
+stdenv.mkDerivation rec {
+ pname = "kubernetes";
+ version = "1.19.4";
+
+ src = fetchFromGitHub {
+ owner = "kubernetes";
+ repo = "kubernetes";
+ rev = "v${version}";
+ sha256 = "05gisihrklkzsdsrrmvmqlfwfdx73jbwd5668n5wa5hp432qyvwi";
+ };
+
+ nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
+
+ outputs = ["out" "man" "pause"];
+
+ postPatch = ''
+ # go env breaks the sandbox
+ substituteInPlace "hack/lib/golang.sh" \
+ --replace 'echo "$(go env GOHOSTOS)/$(go env GOHOSTARCH)"' 'echo "${go.GOOS}/${go.GOARCH}"'
+
+ substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}"
+ # hack/update-munge-docs.sh only performs some tests on the documentation.
+ # They broke building k8s; disabled for now.
+ echo "true" > "hack/update-munge-docs.sh"
+
+ patchShebangs ./hack
+ '';
+
+ WHAT=concatStringsSep " " components;
+
+ postBuild = ''
+ ./hack/update-generated-docs.sh
+ (cd build/pause && cc pause.c -o pause)
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/bin" "$out/share/bash-completion/completions" "$out/share/zsh/site-functions" "$man/share/man" "$pause/bin"
+
+ cp _output/local/go/bin/* "$out/bin/"
+ cp build/pause/pause "$pause/bin/pause"
+ cp -R docs/man/man1 "$man/share/man"
+
+ cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons
+ patchShebangs $out/bin/kube-addons
+ wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
+
+ cp ${./mk-docker-opts.sh} $out/bin/mk-docker-opts.sh
+
+ $out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl
+ $out/bin/kubectl completion zsh > $out/share/zsh/site-functions/_kubectl
+ '';
+
+ preFixup = ''
+ find $out/bin $pause/bin -type f -exec remove-references-to -t ${go} '{}' +
+ '';
+
+ meta = {
+ description = "Production-Grade Container Scheduling and Management";
+ license = licenses.asl20;
+ homepage = "https://kubernetes.io";
+ maintainers = with maintainers; [johanot offline saschagrunert];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
new file mode 100755
index 000000000000..22a459f51349
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
@@ -0,0 +1,113 @@
+#!/usr/bin/env bash
+
+# Copyright 2014 The Kubernetes Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Generate Docker daemon options based on flannel env file.
+
+# exit on any error
+set -e
+
+usage() {
+ echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY]
+
+Generate Docker daemon options based on flannel env file
+OPTIONS:
+ -f Path to flannel env file. Defaults to /run/flannel/subnet.env
+ -d Path to Docker env file to write to. Defaults to /run/docker_opts.env
+ -i Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500
+ -c Output combined Docker options into DOCKER_OPTS var
+ -k Set the combined options key to this value (default DOCKER_OPTS=)
+ -m Do not output --ip-masq (useful for older Docker version)
+" >/dev/stderr
+ exit 1
+}
+
+flannel_env="/run/flannel/subnet.env"
+docker_env="/run/docker_opts.env"
+combined_opts_key="DOCKER_OPTS"
+indiv_opts=false
+combined_opts=false
+ipmasq=true
+val=""
+
+while getopts "f:d:icmk:" opt; do
+ case $opt in
+ f)
+ flannel_env=$OPTARG
+ ;;
+ d)
+ docker_env=$OPTARG
+ ;;
+ i)
+ indiv_opts=true
+ ;;
+ c)
+ combined_opts=true
+ ;;
+ m)
+ ipmasq=false
+ ;;
+ k)
+ combined_opts_key=$OPTARG
+ ;;
+ \?)
+ usage
+ ;;
+ esac
+done
+
+if [[ $indiv_opts = false ]] && [[ $combined_opts = false ]]; then
+ indiv_opts=true
+ combined_opts=true
+fi
+
+if [[ -f "${flannel_env}" ]]; then
+ source "${flannel_env}"
+fi
+
+if [[ -n "$FLANNEL_SUBNET" ]]; then
+ # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below
+ DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET"
+fi
+
+if [[ -n "$FLANNEL_MTU" ]]; then
+ # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below
+ DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU"
+fi
+
+if [[ "$FLANNEL_IPMASQ" = true ]] && [[ $ipmasq = true ]]; then
+ # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below
+ DOCKER_OPT_IPMASQ="--ip-masq=false"
+fi
+
+eval docker_opts="\$${combined_opts_key}"
+docker_opts+=" "
+
+echo -n "" >"${docker_env}"
+
+# OPT_LOOP
+for opt in $(compgen -v DOCKER_OPT_); do
+ eval val=\$"${opt}"
+
+ if [[ "$indiv_opts" = true ]]; then
+ echo "$opt=\"$val\"" >>"${docker_env}"
+ fi
+
+ docker_opts+="$val "
+done
+
+if [[ "$combined_opts" = true ]]; then
+ echo "${combined_opts_key}=\"${docker_opts}\"" >>"${docker_env}"
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix
new file mode 100644
index 000000000000..2251b12e499a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "kubernix";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "saschagrunert";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "04dzfdzjwcwwaw9min322g30q0saxpq5kqzld4f22fmk820ki6gp";
+ };
+
+ cargoSha256 = "17agwqx7nhzi124yq1s6zpqb227drrhp9c11r3jbicc08dz88bwg";
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Single dependency Kubernetes clusters for local testing, experimenting and development";
+ homepage = "https://github.com/saschagrunert/kubernix";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ saschagrunert ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
new file mode 100644
index 000000000000..51ae1202a378
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "kubeseal";
+ version = "0.13.1";
+
+ src = fetchFromGitHub {
+ owner = "bitnami-labs";
+ repo = "sealed-secrets";
+ rev = "v${version}";
+ sha256 = "1hlj7i7pjyvrf9cpx6s41sdn7wjwfk7c0akx45kw662vrxcqcgf2";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ subPackages = [ "cmd/kubeseal" ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
+
+ meta = with lib; {
+ description = "A Kubernetes controller and tool for one-way encrypted Secrets";
+ homepage = "https://github.com/bitnami-labs/sealed-secrets";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ groodt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix
new file mode 100644
index 000000000000..fa0e62c53fe8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "kubespy";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "pulumi";
+ repo = "kubespy";
+ sha256 = "1xrwhxw2y0zpzsxp1rlm1wd0aqw6jda5ai5y1ards5djqsbsv87g";
+ };
+
+ vendorSha256 = "0ajhbjs9ijpxp3svvj7pjiac78ps7vkqmqrizq18mllsry0m9pcl";
+
+ doCheck = false;
+
+ # TODO: enable after https://github.com/pulumi/kubespy/issues/72 is addressed.
+ # postInstall = ''
+ # for shell in bash zsh; do
+ # $out/bin/kubespy completion $shell > kubespy.$shell
+ # installShellCompletion kubespy.$shell
+ # done
+ # '';
+
+ meta = with lib; {
+ description = "A tool to observe Kubernetes resources in real time";
+ homepage = "https://github.com/pulumi/kubespy";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ blaggacao ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
new file mode 100644
index 000000000000..7e6a66eea506
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, lib, ... }:
+
+stdenv.mkDerivation rec {
+ pname = "kubetail";
+ version = "1.6.12";
+
+ src = fetchFromGitHub {
+ owner = "johanhaleby";
+ repo = "kubetail";
+ rev = version;
+ sha256 = "0hayfd7yvdhd2klfmhvl04hfqk0nfsimjyg3kbq8c5dbgbpz05nd";
+ };
+
+ installPhase = ''
+ install -Dm755 kubetail "$out/bin/kubetail"
+ install -Dm755 completion/kubetail.bash "$out/share/bash-completion/completions/kubetail"
+ install -Dm755 completion/kubetail.fish "$out/share/fish/vendor_completions.d/kubetail.fish"
+ install -Dm755 completion/kubetail.zsh "$out/share/zsh/site-functions/_kubetail"
+ '';
+
+ meta = with lib; {
+ description = "Bash script to tail Kubernetes logs from multiple pods at the same time";
+ longDescription = ''
+ Bash script that enables you to aggregate (tail/follow) logs from
+ multiple pods into one stream. This is the same as running "kubectl logs
+ -f " but for multiple pods.
+ '';
+ homepage = "https://github.com/johanhaleby/kubetail";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
new file mode 100644
index 000000000000..d26f8ed5dc67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchFromGitHub, buildGoModule, makeWrapper }:
+
+buildGoModule rec {
+ pname = "kubeval";
+ version = "0.15.0";
+
+ src = fetchFromGitHub {
+ owner = "instrumenta";
+ repo = "kubeval";
+ rev = version;
+ sha256 = "05li0qv4q7fy2lr50r6c1r8dhx00jb1g01qmgc72a9zqp378yiq0";
+ };
+
+ vendorSha256 = "1kpwvi84i3h1yjprd6m6hn8l9j235931871y3qk9cl0g8q0hv9ja";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Validate your Kubernetes configuration files";
+ homepage = "https://github.com/instrumenta/kubeval";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ johanot nicknovitski ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeval/schema.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeval/schema.nix
new file mode 100644
index 000000000000..370fe9a1cd82
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/kubeval/schema.nix
@@ -0,0 +1,15 @@
+{ fetchFromGitHub }:
+# To cache schema as a package so network calls are not
+# necessary at runtime, allowing use in package builds you can use the following:
+
+# KUBEVAL_SCHEMA_LOCATION="file:///${kubeval-schema}";
+(fetchFromGitHub {
+ name = "kubeval-schema";
+ owner = "instrumenta";
+ repo = "kubernetes-json-schema";
+ rev = "6a498a60dc68c5f6a1cc248f94b5cd1e7241d699";
+ sha256 = "1y9m2ma3n4h7sf2lg788vjw6pkfyi0fa7gzc870faqv326n6x2jr";
+}) // {
+ # the schema is huge (> 7GB), we don't get any benefit from building int on hydra
+ meta.hydraPlatforms = [];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
new file mode 100644
index 000000000000..63e4e59ff453
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+
+buildGoModule {
+ pname = "linkerd-unstable";
+ version = "2020-05-01";
+
+ src = fetchFromGitHub {
+ owner = "linkerd";
+ repo = "linkerd2";
+ rev = "9e9f3bb1e2aeab8cf20f98f5cad159bbb6f24883";
+ sha256 = "1pvj31wz1klwhcqga1m8kixdqsxwmppp9ix6r3wpp4dwfig45fm0";
+ };
+
+ vendorSha256 = "0vls58ld50jca5yn73kvg3lx4z83cc7skky54a90pkbj737y58pz";
+
+ doCheck = false;
+
+ subPackages = [ "cli/cmd" ];
+
+ meta = with stdenv.lib; {
+ description = "A service mesh for Kubernetes and beyond";
+ homepage = "https://linkerd.io/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Gonzih ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix
new file mode 100644
index 000000000000..e0a6cd48d6ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix
@@ -0,0 +1,38 @@
+{ lib, python3 }:
+
+let
+ python = python3.override {
+ self = python;
+ packageOverrides = self: super: {
+ tornado = super.tornado_5;
+ };
+ };
+in with python.pkgs; buildPythonApplication rec {
+ pname = "luigi";
+ version = "3.0.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "b4b1ccf086586d041d7e91e68515d495c550f30e4d179d63863fea9ccdbb78eb";
+ };
+
+ propagatedBuildInputs = [ dateutil tornado_5 python-daemon boto3 ];
+
+ # Requires tox, hadoop, and google cloud
+ doCheck = false;
+
+ # This enables accessing modules stored in cwd
+ makeWrapperArgs = ["--prefix PYTHONPATH . :"];
+
+ meta = with lib; {
+ description = "Python package that helps you build complex pipelines of batch jobs";
+ longDescription = ''
+ Luigi handles dependency resolution, workflow management, visualization,
+ handling failures, command line integration, and much more.
+ '';
+ homepage = "https://github.com/spotify/luigi";
+ changelog = "https://github.com/spotify/luigi/releases/tag/${version}";
+ license = [ licenses.asl20 ];
+ maintainers = [ maintainers.bhipple ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
new file mode 100644
index 000000000000..bd71f2f5c5ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, go-bindata
+, installShellFiles
+, pkg-config
+, which
+, libvirt
+, vmnet
+}:
+
+buildGoModule rec {
+ pname = "minikube";
+ version = "1.15.1";
+
+ vendorSha256 = "1xkk4f8qjqx5x878iniclni3jm2f7ka47va756vc3vk8p5s6vpdk";
+
+ doCheck = false;
+
+ src = fetchFromGitHub {
+ owner = "kubernetes";
+ repo = "minikube";
+ rev = "v${version}";
+ sha256 = "03knkc8z3vri73j1aa9ry6p1rxql3d75kphd429x5am856mpnn6g";
+ };
+
+ nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
+
+ buildInputs = if stdenv.isDarwin then [ vmnet ] else if stdenv.isLinux then [ libvirt ] else null;
+
+ buildPhase = ''
+ make COMMIT=${src.rev}
+ '';
+
+ installPhase = ''
+ install out/minikube -Dt $out/bin
+
+ export HOME=$PWD
+ export MINIKUBE_WANTUPDATENOTIFICATION=false
+ export MINIKUBE_WANTKUBECTLDOWNLOADMSG=false
+
+ for shell in bash zsh fish; do
+ $out/bin/minikube completion $shell > minikube.$shell
+ installShellCompletion minikube.$shell
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://minikube.sigs.k8s.io";
+ description = "A tool that makes it easy to run Kubernetes locally";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ ebzzry copumpkin vdemeester atkinschang Chili-Man ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix
new file mode 100644
index 000000000000..f9391373b188
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix
@@ -0,0 +1,67 @@
+{ lib, buildGoPackage, fetchFromGitHub, go-bindata, pkgconfig, makeWrapper
+, glib, gtk3, libappindicator-gtk3, gpgme, openshift, ostree, libselinux, btrfs-progs
+, lvm2, docker-machine-kvm
+}:
+
+let
+ version = "1.34.3";
+
+ # Update these on version bumps according to Makefile
+ centOsIsoVersion = "v1.17.0";
+ openshiftVersion = "v3.11.0";
+
+in buildGoPackage rec {
+ pname = "minishift";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "minishift";
+ repo = "minishift";
+ rev = "v${version}";
+ sha256 = "0yhln3kyc0098hbnjyxhbd915g6j7s692c0z8yrhh9gdpc5cr2aa";
+ };
+
+ nativeBuildInputs = [ pkgconfig go-bindata makeWrapper ];
+ buildInputs = [ glib gtk3 libappindicator-gtk3 gpgme ostree libselinux btrfs-progs lvm2 ];
+
+ goPackagePath = "github.com/minishift/minishift";
+ subPackages = [ "cmd/minishift" ];
+
+ postPatch = ''
+ # minishift downloads openshift if not found therefore set the cache to /nix/store/...
+ substituteInPlace pkg/minishift/cache/oc_caching.go \
+ --replace 'filepath.Join(oc.MinishiftCacheDir, OC_CACHE_DIR, oc.OpenShiftVersion, runtime.GOOS)' '"${openshift}/bin"' \
+ --replace '"runtime"' ""
+ '';
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X ${goPackagePath}/pkg/version.minishiftVersion=${version}
+ -X ${goPackagePath}/pkg/version.centOsIsoVersion=${centOsIsoVersion}
+ -X ${goPackagePath}/pkg/version.openshiftVersion=${openshiftVersion}
+ '';
+
+ preBuild = ''
+ (cd go/src/github.com/minishift/minishift
+ mkdir -p out/bindata
+ go-bindata -prefix addons -o out/bindata/addon_assets.go -pkg bindata addons/...)
+ '';
+
+ postInstall = ''
+ wrapProgram "$out/bin/minishift" \
+ --prefix PATH ':' '${lib.makeBinPath [ docker-machine-kvm openshift ]}'
+ '';
+
+ meta = with lib; {
+ description = "Run OpenShift locally";
+ longDescription = ''
+ Minishift is a tool that helps you run OpenShift locally by running
+ a single-node OpenShift cluster inside a VM. You can try out OpenShift
+ or develop with it, day-to-day, on your local host.
+ '';
+ homepage = "https://github.com/minishift/minishift";
+ maintainers = with maintainers; [ fpletz vdemeester ];
+ platforms = platforms.linux;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
new file mode 100644
index 000000000000..3ff0e4b397cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, buildGoModule, fetchFromGitHub, systemd }:
+
+buildGoModule rec {
+ pname = "node-problem-detector";
+ version = "0.8.3";
+
+ src = fetchFromGitHub {
+ owner = "kubernetes";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1sga5l8bvqgm0j71yj3l1ykqvchxa7cg8pkfvjsrqlikgrfb54f3";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ # Optionally, a log counter binary can be created to parse journald logs.
+ # The binary is dynamically linked against systemd libraries, making it a
+ # Linux-only feature. See 'ENABLE_JOURNALD' upstream:
+ # https://github.com/kubernetes/node-problem-detector/blob/master/Makefile
+ subPackages = [ "cmd/nodeproblemdetector" ] ++
+ stdenv.lib.optionals stdenv.isLinux [ "cmd/logcounter" ];
+
+ preBuild = ''
+ export CGO_ENABLED=${if stdenv.isLinux then "1" else "0"}
+ '';
+
+ buildInputs = stdenv.lib.optionals stdenv.isLinux [ systemd ];
+
+ buildFlags = "-mod vendor" +
+ stdenv.lib.optionalString stdenv.isLinux " -tags journald";
+
+ buildFlagsArray = [
+ "-ldflags="
+ "-X k8s.io/${pname}/pkg/version.version=v${version}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Various problem detectors running on the Kubernetes nodes";
+ homepage = "https://github.com/kubernetes/node-problem-detector";
+ changelog = "https://github.com/kubernetes/node-problem-detector/releases/tag/v${version}";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ lbpdt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/0.11.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/0.11.nix
new file mode 100644
index 000000000000..aec421bf1a7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/0.11.nix
@@ -0,0 +1,7 @@
+{ callPackage, buildGoPackage }:
+
+callPackage ./generic.nix {
+ inherit buildGoPackage;
+ version = "0.11.6";
+ sha256 = "09ym9fd4fp2461ddhrb5nlz8l24iq4hsbqikzc21ainagq2g1azf";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix
new file mode 100644
index 000000000000..863f7cbed2f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix
@@ -0,0 +1,7 @@
+{ callPackage, buildGoPackage }:
+
+callPackage ./generic.nix {
+ inherit buildGoPackage;
+ version = "0.12.7";
+ sha256 = "0y1nwmpc4fqgjyb19n1f2w4y5k7fy4p68v2vnnry11nj3im7ia14";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix
new file mode 100644
index 000000000000..0bfdb0b27f6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix
@@ -0,0 +1,40 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, version, sha256 }:
+
+buildGoPackage rec {
+ pname = "nomad";
+ inherit version;
+ rev = "v${version}";
+
+ goPackagePath = "github.com/hashicorp/nomad";
+ subPackages = [ "." ];
+
+ src = fetchFromGitHub {
+ owner = "hashicorp";
+ repo = pname;
+ inherit rev sha256;
+ };
+
+ # ui:
+ # Nomad release commits include the compiled version of the UI, but the file
+ # is only included if we build with the ui tag.
+ # nonvidia:
+ # We disable Nvidia GPU scheduling on Linux, as it doesn't work there:
+ # Ref: https://github.com/hashicorp/nomad/issues/5535
+ preBuild = let
+ tags = ["ui"]
+ ++ stdenv.lib.optional stdenv.isLinux "nonvidia";
+ tagsString = stdenv.lib.concatStringsSep " " tags;
+ in ''
+ export buildFlagsArray=(
+ -tags="${tagsString}"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.nomadproject.io/";
+ description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
+ platforms = platforms.unix;
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
new file mode 100644
index 000000000000..9e37bb6afe25
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl }:
+let
+ version = "0.16.0";
+
+ system = stdenv.hostPlatform.system;
+ suffix = {
+ x86_64-linux = "Linux-64bit";
+ aarch64-linux = "Linux-arm64";
+ x86_64-darwin = "macOS-64bit";
+ }."${system}" or (throw "Unsupported system: ${system}");
+
+ baseurl = "https://github.com/vmware-tanzu/octant/releases/download";
+ fetchsrc = sha256: fetchurl {
+ url = "${baseurl}/v${version}/octant_${version}_${suffix}.tar.gz";
+ sha256 = sha256."${system}";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "octant";
+ inherit version;
+
+ src = fetchsrc {
+ x86_64-linux = "1i6i42hwxaczkfv8ldxn3wp6bslgwfkycvh88khfmapw2f5f9mhr";
+ aarch64-linux = "1ka5vscyqxckxnhnymp06yi0r2ljw42q0g62yq7qv4safljd452p";
+ x86_64-darwin = "1c50c2r2hq2fi8jcijq6vn336w96ar7b6qccv5w2240i0szsxxql";
+ };
+
+ doBuild = false;
+ doCheck = false;
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mv octant $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.";
+ longDescription = ''
+ Octant is a tool for developers to understand how applications run on a Kubernetes cluster.
+ It aims to be part of the developer's toolkit for gaining insight and approaching complexity found in Kubernetes.
+ Octant offers a combination of introspective tooling, cluster navigation, and object management along with a
+ plugin system to further extend its capabilities.
+ '';
+ homepage = "https://octant.dev/";
+ license = licenses.asl20;
+ platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+ maintainers = with maintainers; [ jk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
new file mode 100644
index 000000000000..1c9f21afddfc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "starboard-octant-plugin";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "aquasecurity";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1rgfk8l3yz7xwghr06vcgpi6zzjynxxvyg2r78fgp7wpw7bh3rmd";
+ };
+
+ vendorSha256 = "1f6x66zgrmm7x661d0d0qqharrpyb2bsi10swlgx68y5yz285296";
+
+ meta = with lib; {
+ description = "Octant plugin for viewing Starboard security information";
+ longDescription = ''
+ This is an Octant plugin for Starboard which provides visibility into vulnerability assessment reports for
+ Kubernetes workloads stored as custom security resources.
+ '';
+ homepage = src.meta.homepage;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ jk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
new file mode 100644
index 000000000000..34d362a4623b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, util-linux
+, coreutils, kerberos, ncurses, clang, installShellFiles
+, components ? [
+ "cmd/oc"
+ "cmd/openshift"
+ ]
+}:
+
+with lib;
+
+let
+ version = "4.1.0";
+ ver = stdenv.lib.elemAt (stdenv.lib.splitVersion version);
+ versionMajor = ver 0;
+ versionMinor = ver 1;
+ versionPatch = ver 2;
+ gitCommit = "b4261e0";
+ # version is in vendor/k8s.io/kubernetes/pkg/version/base.go
+ k8sversion = "v1.11.1";
+ k8sgitcommit = "b1b2997";
+ k8sgitMajor = "0";
+ k8sgitMinor = "1";
+in buildGoPackage rec {
+ pname = "openshift-origin";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "openshift";
+ repo = "origin";
+ rev = "v${version}";
+ sha256 = "16bc6ljm418kxz92gz8ldm82491mvlqamrvigyr6ff72rf7ml7ba";
+ };
+
+ goPackagePath = "github.com/openshift/origin";
+
+ buildInputs = [ kerberos ncurses ];
+
+ nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ];
+
+ patchPhase = ''
+ patchShebangs ./hack
+ '';
+
+ buildPhase = ''
+ cd go/src/${goPackagePath}
+ # Openshift build require this variables to be set
+ # unless there is a .git folder which is not the case with fetchFromGitHub
+ echo "OS_GIT_VERSION=v${version}" >> os-version-defs
+ echo "OS_GIT_TREE_STATE=clean" >> os-version-defs
+ echo "OS_GIT_MAJOR=${versionMajor}" >> os-version-defs
+ echo "OS_GIT_MINOR=${versionMinor}" >> os-version-defs
+ echo "OS_GIT_PATCH=${versionPatch}" >> os-version-defs
+ echo "OS_GIT_COMMIT=${gitCommit}" >> os-version-defs
+ echo "KUBE_GIT_VERSION=${k8sversion}" >> os-version-defs
+ echo "KUBE_GIT_COMMIT=${k8sgitcommit}" >> os-version-defs
+ echo "KUBE_GIT_MAJOR=${k8sgitMajor}" >> os-version-defs
+ echo "KUBE_GIT_MINOR=${k8sgitMinor}" >> os-version-defs
+ export OS_VERSION_FILE="os-version-defs"
+ export CC=clang
+ make all WHAT='${concatStringsSep " " components}'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -a "_output/local/bin/$(go env GOOS)/$(go env GOARCH)/"* "$out/bin/"
+ installShellCompletion --bash contrib/completions/bash/*
+ installShellCompletion --zsh contrib/completions/zsh/*
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Build, deploy, and manage your applications with Docker and Kubernetes";
+ license = licenses.asl20;
+ homepage = "http://www.openshift.org";
+ maintainers = with maintainers; [offline bachp moretea];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix
new file mode 100644
index 000000000000..65a4a1938430
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "pachyderm";
+ version = "1.8.5";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/pachyderm/pachyderm";
+ subPackages = [ "src/server/cmd/pachctl" ];
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "pachyderm";
+ repo = "pachyderm";
+ sha256 = "1b9x2xn0sxsjid15lnwr79lps8xzf24i7jfl0i48nabdigmi04wp";
+ };
+
+ meta = with lib; {
+ description = "Containerized Data Analytics";
+ homepage = "https://github.com/pachyderm/pachyderm";
+ license = licenses.asl20;
+ maintainers = with maintainers; [offline];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix
new file mode 100644
index 000000000000..afcd736e629c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, makeWrapper, hadoop, jre, bash }:
+
+stdenv.mkDerivation rec {
+
+ name = "pig-0.17.0";
+
+ src = fetchurl {
+ url = "mirror://apache/pig/${name}/${name}.tar.gz";
+ sha256 = "1wwpg0w47f49rnivn2d26vrxgyfl9gpqx3vmzbl5lhx6x5l3fqbd";
+
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out
+ mv * $out
+
+ # no need for the windows batch script
+ rm $out/bin/pig.cmd $out/bin/pig.py
+
+ for n in $out/{bin,sbin}"/"*; do
+ wrapProgram $n \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ jre bash ]}" \
+ --set JAVA_HOME "${jre}" --set HADOOP_PREFIX "${hadoop}"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://pig.apache.org/";
+ description = "High-level language for Apache Hadoop";
+ license = licenses.asl20;
+
+ longDescription = ''
+ Apache Pig is a platform for analyzing large data sets that consists of a
+ high-level language for expressing data analysis programs, coupled with
+ infrastructure for evaluating these programs. The salient property of Pig
+ programs is that their structure is amenable to substantial parallelization,
+ which in turns enables them to handle very large data sets.
+ '';
+
+ platforms = platforms.linux;
+ maintainers = [ maintainers.skeidel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
new file mode 100644
index 000000000000..6e7eccac2063
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "popeye";
+ version = "0.9.0";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "derailed";
+ repo = "popeye";
+ sha256 = "1rslmcdjs53zvv0xaf00vxqsfc3jh2p584j3q6nfgrghc978xmpf";
+ };
+
+ buildFlagsArray = ''
+ -ldflags=
+ -s -w
+ -X github.com/derailed/popeye/cmd.version=${version}
+ -X github.com/derailed/popeye/cmd.commit=022c3104b642aab6bdb287468fb79068a33e1b0d
+ -X github.com/derailed/popeye/cmd.date=2020-10-31T16:44:45Z
+ '';
+
+ vendorSha256 = "08195dnka7rs38py3kjii9zh9nifg2fnbi1wzjl0pc38i2bbrz0k";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A Kubernetes cluster resource sanitizer";
+ homepage = "https://github.com/derailed/popeye";
+ changelog = "https://github.com/derailed/popeye/releases/tag/v${version}";
+ license = licenses.asl20;
+ maintainers = [ maintainers.bryanasdev000 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix
new file mode 100644
index 000000000000..b1ea88a11a33
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix
@@ -0,0 +1,68 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "prow-unstable";
+ version = "2020-04-01";
+ rev = "32e3b5ce7695fb622381421653db436cb57b47c5";
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "kubernetes";
+ repo = "test-infra";
+ sha256 = "0mc3ynmbf3kidibdy8k3v3xjlvmxl8w7zm1z2m0skmhd0y4bpmk4";
+ };
+
+ vendorSha256 = "16fdc5r28andm8my4fxj0f1yygx6j2mvn92i6xdfhbcra0lvr4ql";
+
+ doCheck = false;
+
+ subPackages = [
+ "prow/cmd/admission"
+ "prow/cmd/branchprotector"
+ "prow/cmd/checkconfig"
+ "prow/cmd/clonerefs"
+ "prow/cmd/cm2kc"
+ "prow/cmd/config-bootstrapper"
+ "prow/cmd/crier"
+ "prow/cmd/deck"
+ "prow/cmd/entrypoint"
+ "prow/cmd/exporter"
+ "prow/cmd/gcsupload"
+ "prow/cmd/gerrit"
+ "prow/cmd/hook"
+ "prow/cmd/horologium"
+ "prow/cmd/initupload"
+ "prow/cmd/jenkins-operator"
+ "prow/cmd/mkbuild-cluster"
+ "prow/cmd/mkpj"
+ "prow/cmd/mkpod"
+ "prow/cmd/peribolos"
+ "prow/cmd/phaino"
+ "prow/cmd/phony"
+ "prow/cmd/pipeline"
+ "prow/cmd/plank"
+ "prow/cmd/sidecar"
+ "prow/cmd/sinker"
+ "prow/cmd/status-reconciler"
+ "prow/cmd/sub"
+ "prow/cmd/tackle"
+ "prow/cmd/tide"
+ "prow/cmd/tot"
+ ];
+
+ meta = with lib; {
+ description = "A Kubernetes based CI/CD system";
+ longDescription = ''
+ Prow is a Kubernetes based CI/CD system. Jobs can be triggered by various
+ types of events and report their status to many different services. In
+ addition to job execution, Prow provides GitHub automation in the form of
+ policy enforcement, chat-ops via /foo style commands, and automatic PR
+ merging.
+ '';
+ homepage = "https://github.com/kubernetes/test-infra/tree/master/prow";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
new file mode 100644
index 000000000000..508e0b656d6f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
@@ -0,0 +1,32 @@
+{ lib, go, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "qbec";
+ version = "0.12.1";
+
+ src = fetchFromGitHub {
+ owner = "splunk";
+ repo = "qbec";
+ rev = "v${version}";
+ sha256 = "1g90z155nhcblr48qypw8qw3l8g4dz33iflv4cg4xrhwjp8dfbv9";
+ };
+
+ vendorSha256 = "15hbjghi2ifylg7nr85qlk0alsy97h9zj6hf5w84m76dla2bcjf3";
+
+ doCheck = false;
+
+ buildFlagsArray = ''
+ -ldflags=
+ -s -w
+ -X github.com/splunk/qbec/internal/commands.version=${version}
+ -X github.com/splunk/qbec/internal/commands.commit=${src.rev}
+ -X github.com/splunk/qbec/internal/commands.goVersion=${lib.getVersion go}
+ '';
+
+ meta = with lib; {
+ description = "Configure kubernetes objects on multiple clusters using jsonnet https://qbec.io";
+ homepage = "https://github.com/splunk/qbec";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ groodt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
new file mode 100644
index 000000000000..be5cb51d450d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -0,0 +1,47 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+# SHA of ${version} for the tool's help output
+let rev = "e03f9ee353717ccc5f58c902633553e34b2fe46a";
+in
+buildGoModule rec {
+ pname = "sonobuoy";
+ version = "0.19.0";
+
+ goPackagePath = "github.com/vmware-tanzu/sonobuoy";
+
+ buildFlagsArray =
+ let t = goPackagePath;
+ in ''
+ -ldflags=
+ -s -X ${t}/pkg/buildinfo.Version=v${version}
+ -X ${t}/pkg/buildinfo.GitSHA=${rev}
+ -X ${t}/pkg/buildDate=unknown
+ '';
+
+ src = fetchFromGitHub {
+ sha256 = "1gw58a30akidk15wk8kk7f8lsyqr1q180j6fzr4462ahwxdbjgkr";
+ rev = "v${version}";
+ repo = "sonobuoy";
+ owner = "vmware-tanzu";
+ };
+
+ vendorSha256 = "1kxzd4czv8992y7y47la5jjrbhk76sxcj3v5sx0k4xplgki7np6i";
+
+ subPackages = [ "." ];
+
+ meta = with lib; {
+ description = ''
+ Diagnostic tool that makes it easier to understand the
+ state of a Kubernetes cluster.
+ '';
+ longDescription = ''
+ Sonobuoy is a diagnostic tool that makes it easier to understand the state of
+ a Kubernetes cluster by running a set of Kubernetes conformance tests in an
+ accessible and non-destructive manner.
+ '';
+
+ homepage = "https://sonobuoy.io";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ carlosdagos saschagrunert wilsonehusin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix
new file mode 100644
index 000000000000..2180d8d30489
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix
@@ -0,0 +1,27 @@
+{ pkgs, nodejs, stdenv, lib, ... }:
+
+let
+
+ packageName = with lib; concatStrings (map (entry: (concatStrings (mapAttrsToList (key: value: "${key}-${value}") entry))) (importJSON ./package.json));
+
+ nodePackages = import ./node-composition.nix {
+ inherit pkgs nodejs;
+ inherit (stdenv.hostPlatform) system;
+ };
+in
+nodePackages."${packageName}".override {
+ nativeBuildInputs = [ pkgs.makeWrapper ];
+
+ postInstall = ''
+ # Patch shebangs in node_modules, otherwise the webpack build fails with interpreter problems
+ patchShebangs --build "$out/lib/node_modules/spacegun/node_modules/"
+ # compile Typescript sources
+ npm run build
+ '';
+
+ meta = with lib; {
+ description = "Version controlled multi-cluster deployment manager for kubernetes";
+ maintainers = with maintainers; [ kampka ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh
new file mode 100644
index 000000000000..293a72a16237
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix
+
+node2nix \
+ --nodejs-10 \
+ --node-env ../../../../development/node-packages/node-env.nix \
+ --development \
+ --input package.json \
+ --output node-packages.nix \
+ --composition node-composition.nix
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix
new file mode 100644
index 000000000000..712f62e8d4fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+ inherit system;
+ }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
+
+let
+ nodeEnv = import ../../../../development/node-packages/node-env.nix {
+ inherit (pkgs) stdenv python2 util-linux runCommand writeTextFile;
+ inherit nodejs;
+ libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+ };
+in
+import ./node-packages.nix {
+ inherit (pkgs) fetchurl fetchgit;
+ inherit nodeEnv;
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix
new file mode 100644
index 000000000000..981d787c91a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix
@@ -0,0 +1,11477 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {
+ "@babel/code-frame-7.8.3" = {
+ name = "_at_babel_slash_code-frame";
+ packageName = "@babel/code-frame";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
+ sha512 = "3d85pd9lfbm8yrlpn6wj9g56snbnpr9fx0w1b9x26jbirc2xfrvnifwzprp0f6bhqijshgm0q35axic8d11v4j0kq493dapcyk33n3b";
+ };
+ };
+ "@babel/core-7.8.7" = {
+ name = "_at_babel_slash_core";
+ packageName = "@babel/core";
+ version = "7.8.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz";
+ sha512 = "34gjbasmqp8z2rbwlc5b9sfnvs7fw1hm3i5bcdk0ddymr9b280fbcgfx6mgiwhkv3gzgawjvzcg1bzqp9f0hhifkhrdg8r4fqbnl6dc";
+ };
+ };
+ "@babel/generator-7.8.8" = {
+ name = "_at_babel_slash_generator";
+ packageName = "@babel/generator";
+ version = "7.8.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz";
+ sha512 = "0k5w5pcsv2m6992nh49qjil2b1aqzdbdrcxzcp89v7wq9wx7llnx5ijyzl9w895iry3hnp8mk3srgp52kgz4swvjqf9lwdxxrb99b0w";
+ };
+ };
+ "@babel/helper-function-name-7.8.3" = {
+ name = "_at_babel_slash_helper-function-name";
+ packageName = "@babel/helper-function-name";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz";
+ sha512 = "0w35m1kq2dmsgdgjxvpmg6gxm1rzl1jqf23h3k7pwh9nmwsmqbgv0rzy7fs6dq31dqq6j17bwyww0091r41aj0rl3zi1nj2a1gn0b04";
+ };
+ };
+ "@babel/helper-get-function-arity-7.8.3" = {
+ name = "_at_babel_slash_helper-get-function-arity";
+ packageName = "@babel/helper-get-function-arity";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
+ sha512 = "12g2gjipd8svg02d12iqbf0rz4m99g36qccn3f81xij3ac4f7kqzx0407xma49h11j88iz8jil2whj7j96wqpwd67abi23xczwd2l0m";
+ };
+ };
+ "@babel/helper-plugin-utils-7.8.3" = {
+ name = "_at_babel_slash_helper-plugin-utils";
+ packageName = "@babel/helper-plugin-utils";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz";
+ sha512 = "1jj9ibj72hqv1qm4hvdnk728fi9mihrwhq0xcs2qlxbs8iz9d2zb4a23sm7ny0s42asrdyy2s98shgnqm0rhn2314k6pcyxspiymrwg";
+ };
+ };
+ "@babel/helper-split-export-declaration-7.8.3" = {
+ name = "_at_babel_slash_helper-split-export-declaration";
+ packageName = "@babel/helper-split-export-declaration";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
+ sha512 = "1sgm6wd88kmizvig5m0ims97vmlylfii72xcw4k01h2wsw3cpc312s1asnjrq5y472hcqfh2mwn8dwpqkpcvs0ssqwnz1c1xhwz47fz";
+ };
+ };
+ "@babel/helpers-7.8.4" = {
+ name = "_at_babel_slash_helpers";
+ packageName = "@babel/helpers";
+ version = "7.8.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz";
+ sha512 = "3rr2xlnr2hmpbrgysgs0jyrz4bjyg80cxij1wn899v53zqj4i1bcm3ajpnr03v1swlczkzapn7nvzmzhwlqxl1hw5pciq8h0zpxxxjl";
+ };
+ };
+ "@babel/highlight-7.8.3" = {
+ name = "_at_babel_slash_highlight";
+ packageName = "@babel/highlight";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz";
+ sha512 = "09353nlk7ng0h135l14dhwk4jahsdrapvd0185wra8l73wjbnkb11jl42znj1rxypb38jlzcraxf4xdka1ssis5khgjvgql2kkk4zix";
+ };
+ };
+ "@babel/parser-7.8.8" = {
+ name = "_at_babel_slash_parser";
+ packageName = "@babel/parser";
+ version = "7.8.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz";
+ sha512 = "1q85si9966ra57f43dccjanxnyy65c66lykxgv5z231wpi4w023nk8l7s8m54bp9fv4yd3pl682yh0krny22qmfygxggc2g61dldvlq";
+ };
+ };
+ "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
+ name = "_at_babel_slash_plugin-syntax-object-rest-spread";
+ packageName = "@babel/plugin-syntax-object-rest-spread";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+ sha512 = "2a9vg6b6p2rfhcflic2w6rbrbiqrdgj4ra2q20g1qv6ncwmvja2jq8snygwfw1ll1k94rqnbj4hc1fpizgr1v35rfvxqvwr6658r2jy";
+ };
+ };
+ "@babel/template-7.8.6" = {
+ name = "_at_babel_slash_template";
+ packageName = "@babel/template";
+ version = "7.8.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz";
+ sha512 = "0z8kzrpis50nr4vsyqr77cpqad0xfsacw45jdhwsl89mdzpvy8wcvc0kdy938kb0ll069plxhgy3a3fpag408ci2pb47gxzrhy2rcyd";
+ };
+ };
+ "@babel/traverse-7.8.6" = {
+ name = "_at_babel_slash_traverse";
+ packageName = "@babel/traverse";
+ version = "7.8.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz";
+ sha512 = "3s53fzm55c14accqfxhvdck1vkj87489w0rhcl7zj8phf9iz21qs0garpghgs0h1cj4s4n2fb7czipdm2mlrj19iaygh37zsv8ja7yq";
+ };
+ };
+ "@babel/types-7.8.7" = {
+ name = "_at_babel_slash_types";
+ packageName = "@babel/types";
+ version = "7.8.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz";
+ sha512 = "0kj404kqcscn0qdpis6kha2263fb0njap0qqcjbwf38jv9qvpxw39f84iiyjspgwz7v1bqcdpjpfb274dkgh2v9ih10w57i85wfnr4k";
+ };
+ };
+ "@cnakazawa/watch-1.0.4" = {
+ name = "_at_cnakazawa_slash_watch";
+ packageName = "@cnakazawa/watch";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz";
+ sha512 = "2hl7iz90jal2f27hgyb5rbmcp96p182xkmflyj5rsyqqffng8vkzz3fcjvbvcpdykij40ax4yirdc6p68yrmjvai7hr8y93mj20indz";
+ };
+ };
+ "@jest/console-24.9.0" = {
+ name = "_at_jest_slash_console";
+ packageName = "@jest/console";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz";
+ sha512 = "0nwvmyk8p01b6331xizblr7h9kkgp8rybjpfj1pa57h9w47lsnpyzzhh9vsji9q361bg17fmxwkgxs10k7nk9lcmfvphag7qipzms36";
+ };
+ };
+ "@jest/core-24.9.0" = {
+ name = "_at_jest_slash_core";
+ packageName = "@jest/core";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz";
+ sha512 = "3c0jsaq55pcz4gx9sg9dccqpakbdfplm0w715lw904p8lvvz6p9899j47ndfcpnb5pba3vdzr96f5gmanwgmskyapshm51hrvg2120n";
+ };
+ };
+ "@jest/environment-24.9.0" = {
+ name = "_at_jest_slash_environment";
+ packageName = "@jest/environment";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz";
+ sha512 = "1lpii90h62jy8h2awivnqdjarsicik5g1npmsyjm8yq24iv3n6d0ilgajw3v95qrw5m2gcpsy82cyqb35xkn9sn7i4gg1ngwjb503g4";
+ };
+ };
+ "@jest/fake-timers-24.9.0" = {
+ name = "_at_jest_slash_fake-timers";
+ packageName = "@jest/fake-timers";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz";
+ sha512 = "3s57a5043fphl08b2gb8frph1gm1x47lb7za0n0iqspr4p0iwibvm7wmzgal27b8h2v93i229cyh786kymy80l3b3bhqjwqmlsiqr3r";
+ };
+ };
+ "@jest/reporters-24.9.0" = {
+ name = "_at_jest_slash_reporters";
+ packageName = "@jest/reporters";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz";
+ sha512 = "0dkr3yy0x1n8b1226aczwz75785nl21hh913sadyqj48j0fq4sr9n2q2b2v23gqg6p63p4hcjcsdadlway599n57bgvf7ns539igvls";
+ };
+ };
+ "@jest/source-map-24.9.0" = {
+ name = "_at_jest_slash_source-map";
+ packageName = "@jest/source-map";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz";
+ sha512 = "038h2qlv880agd1b1mqxmkxbqv76ikcvdas4gjzkppg77yzd61ww2nwvliwgymc860niaa9xsi2p5svrwg80hrk4w6bwrbcd723nz7x";
+ };
+ };
+ "@jest/test-result-24.9.0" = {
+ name = "_at_jest_slash_test-result";
+ packageName = "@jest/test-result";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz";
+ sha512 = "2464cq11b9d51nrx8j5vi5m2572rrhi001l2lxz84wg5r6bkpskkszrk3s47w51h1rgm668ix0fgzwhgihjcxkafiy15738n0fnnhaw";
+ };
+ };
+ "@jest/test-sequencer-24.9.0" = {
+ name = "_at_jest_slash_test-sequencer";
+ packageName = "@jest/test-sequencer";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz";
+ sha512 = "3h61jyz33sya4wglmvp4f1m5lhxagwv76gdbjafdxfc1nag58vdv4b65yiggsry5xx9ixjd8j1grjw3d3rsjy8gpifnv49li99srapa";
+ };
+ };
+ "@jest/transform-24.9.0" = {
+ name = "_at_jest_slash_transform";
+ packageName = "@jest/transform";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz";
+ sha512 = "2cwna8zadqd9ahyf32pyg0hgrnn8qwwg55cdyw5imfbvj9g9kljwsbagx87074kzp3rdai22glvwkwpv7lk0aa49dw5ziai4fdi9i2d";
+ };
+ };
+ "@jest/types-24.9.0" = {
+ name = "_at_jest_slash_types";
+ packageName = "@jest/types";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz";
+ sha512 = "03hdscpch75yk366szkrfi63n6mqd5hscqslcpxklq5j99n05qg1p54zj51jhcld1dvkc4hgw0vmzjcr0qncphfb54yx9jsxp6vp8jw";
+ };
+ };
+ "@kubernetes/client-node-0.10.3" = {
+ name = "_at_kubernetes_slash_client-node";
+ packageName = "@kubernetes/client-node";
+ version = "0.10.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.10.3.tgz";
+ sha512 = "0ra42q33nywyiwiccxcg501ajdc1rz1lvg6kfwk6xypi1vlkmmvxiywc20y4s6v48i40m8j5sl2y40ni9jg7v396w86wcczsb6va3wv";
+ };
+ };
+ "@sindresorhus/is-0.7.0" = {
+ name = "_at_sindresorhus_slash_is";
+ packageName = "@sindresorhus/is";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz";
+ sha512 = "2ilygr40l2yqbk6lix4xnnnqsq6fxa6sysdxg49bg1ax5gzhwy3bcjbdlk7lndgh9055slpx6fybs3p8mhvbsnnjkmkqzrfy8l5mn1q";
+ };
+ };
+ "@types/accepts-1.3.5" = {
+ name = "_at_types_slash_accepts";
+ packageName = "@types/accepts";
+ version = "1.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz";
+ sha512 = "30y19l2wp8plrlgcj6fn0qc7wdy72rcn69zvmn8463738bx4mz7pxwl8dml92gi7y1ry2hqzaq0ljvk8wfp6f9k0v092kpazlingrwc";
+ };
+ };
+ "@types/axios-0.14.0" = {
+ name = "_at_types_slash_axios";
+ packageName = "@types/axios";
+ version = "0.14.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/axios/-/axios-0.14.0.tgz";
+ sha1 = "ec2300fbe7d7dddd7eb9d3abf87999964cafce46";
+ };
+ };
+ "@types/babel-types-7.0.7" = {
+ name = "_at_types_slash_babel-types";
+ packageName = "@types/babel-types";
+ version = "7.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz";
+ sha512 = "18iifcb27svl3qmsh5vvpidyw3cj6hhif0il25xsg76vq9gb4h8gmfqs5hv3is2dab09a6nwbinf6f1q641spv7spr33a9ynxp426vl";
+ };
+ };
+ "@types/babel__core-7.1.6" = {
+ name = "_at_types_slash_babel__core";
+ packageName = "@types/babel__core";
+ version = "7.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.6.tgz";
+ sha512 = "17ggrqy35zds8rkpa2kglnk8f5dc43sgbkbjcfjbaygi53jxwm9ji6vr1xqanhs2yn4spla51fjdypl2hsfdrkfhpkzban0ridf2fdm";
+ };
+ };
+ "@types/babel__generator-7.6.1" = {
+ name = "_at_types_slash_babel__generator";
+ packageName = "@types/babel__generator";
+ version = "7.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz";
+ sha512 = "1xw1hijlii2sxf25d5pcqlgqsb6vpzw7c3z9s0s20f1cdyyb768cajmxxk3l1c9g8md3h797v6pzvjvpjmw8q83aw8w69agcpxsc4kc";
+ };
+ };
+ "@types/babel__template-7.0.2" = {
+ name = "_at_types_slash_babel__template";
+ packageName = "@types/babel__template";
+ version = "7.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz";
+ sha512 = "199fw9pirw68kdc47d80sy6gg5g6m8raxawnxwpcs0nc6bmxrv19qmv1212lfyw67a2l5b5abxz9g0i1fwnrxm6h6rqkv4njw5b7bpw";
+ };
+ };
+ "@types/babel__traverse-7.0.9" = {
+ name = "_at_types_slash_babel__traverse";
+ packageName = "@types/babel__traverse";
+ version = "7.0.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.9.tgz";
+ sha512 = "2vza0zha9nrlal5hgfdbaavx6xqxq195whl8274barqkyw26vrvvi9d7jkwp4harbx158wsxwjh4ypgkyb9w9cg73iz7fkdppq50hcc";
+ };
+ };
+ "@types/babylon-6.16.5" = {
+ name = "_at_types_slash_babylon";
+ packageName = "@types/babylon";
+ version = "6.16.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz";
+ sha512 = "3pvh96p07fz7ib5j5519lk4xm59i6yv2dyy4xsmjv853fi61lziwz0q03y3bih2nvvskcy82jqsaxaadagjmrr9wdbkv9m5qzkrwzf4";
+ };
+ };
+ "@types/body-parser-1.19.0" = {
+ name = "_at_types_slash_body-parser";
+ packageName = "@types/body-parser";
+ version = "1.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz";
+ sha512 = "0av4v9bdhgbq0jils3jajym9gcfddyx63g2xx8fh6vqafqb5vdcm98p1kfl70ydih9m393zp13krslmii5bmf05ngyaxn139nn0kpsv";
+ };
+ };
+ "@types/caseless-0.12.2" = {
+ name = "_at_types_slash_caseless";
+ packageName = "@types/caseless";
+ version = "0.12.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz";
+ sha512 = "39jv2a7v9mi41wxbv242icriy5asbzyk95iy25ay3gwa1d6yi40cd6gclbzn81hig9xvvi5z7j2gq4ybirjfyihpq8wa3s160r33jg9";
+ };
+ };
+ "@types/command-line-args-5.0.0" = {
+ name = "_at_types_slash_command-line-args";
+ packageName = "@types/command-line-args";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.0.0.tgz";
+ sha512 = "0vcqbwg68hir26fcyaqqn0w6i70cas8zn2ibhk9j0vl5mnwd2j448fvl6lqx5cny62szngdbjz6bxqfiz3ig360w3x663pr55gqzqz1";
+ };
+ };
+ "@types/connect-3.4.33" = {
+ name = "_at_types_slash_connect";
+ packageName = "@types/connect";
+ version = "3.4.33";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz";
+ sha512 = "3n5gxr7z1jn60gvcnzls1c3fgzbv171acdp4shbn095wnbb8hdba3cjq1sac8aina3bg957ww5hg89swcgbdjfp9irmkkiqfs8npqfv";
+ };
+ };
+ "@types/cookies-0.7.4" = {
+ name = "_at_types_slash_cookies";
+ packageName = "@types/cookies";
+ version = "0.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.4.tgz";
+ sha512 = "2pzkddkjlxs4h8rpkh6xd381f0m6hwhxsmfx7f4vkzjxv55hyvdx7km3ks4wckd7jz0rfzzr45nphaggj48q0iwin25n0ar6qrsscd1";
+ };
+ };
+ "@types/cron-1.7.2" = {
+ name = "_at_types_slash_cron";
+ packageName = "@types/cron";
+ version = "1.7.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/cron/-/cron-1.7.2.tgz";
+ sha512 = "17az71shn84qjqsnb5646z4amysvnhmgpsxj0ja2w2zlykmn7m3q1bchgrd30indnd0z8ryxzhisgd78yij87nv04wjfm9c2wnlsjh0";
+ };
+ };
+ "@types/events-3.0.0" = {
+ name = "_at_types_slash_events";
+ packageName = "@types/events";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
+ sha512 = "3v6shgxnlkc7izsc00g8ilpxi1q2mpcmbjyfawyqcj8mwfhlx2cnkm3hj87gsd39yyq33pilb0dbb4cdc8wwhn7dcwj4srg0amrp8qi";
+ };
+ };
+ "@types/express-4.17.3" = {
+ name = "_at_types_slash_express";
+ packageName = "@types/express";
+ version = "4.17.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz";
+ sha512 = "1vd6aidhc6l28s5r9hjg2bzmmbmqp0dspsdp2h6affggfb9g8rzzxnbjxdan9n1b1n0d44n3amcx6yvzs1pdrzinf5j79zpk120dir3";
+ };
+ };
+ "@types/express-serve-static-core-4.17.2" = {
+ name = "_at_types_slash_express-serve-static-core";
+ packageName = "@types/express-serve-static-core";
+ version = "4.17.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz";
+ sha512 = "1pa7rrhwf6wzp8lnbk2zjgvc2sxks36bw23p060kz1mm4kwyipddhn9zg4n2wnmym7a9ahw6fhk3ircal30f8ih8i7ancrdjwr74pqj";
+ };
+ };
+ "@types/formidable-1.0.31" = {
+ name = "_at_types_slash_formidable";
+ packageName = "@types/formidable";
+ version = "1.0.31";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/formidable/-/formidable-1.0.31.tgz";
+ sha512 = "3fx9xxa6d30fvgc3rkag182sjjpi43qdyzf9l6l050zi8hk2h4511m0pb59k7ha611khkjg7bamvxry5v1ig1zdb4lgsi15vzk4r23l";
+ };
+ };
+ "@types/glob-7.1.1" = {
+ name = "_at_types_slash_glob";
+ packageName = "@types/glob";
+ version = "7.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz";
+ sha512 = "3dhbgdkzpgx010hfgkhndrb094kbd3z6s4waicihnl0rp3jk0f0gs8vvzi84xzissrhml1dfgvbdhahzbh75nny1g6429fnqvlp866l";
+ };
+ };
+ "@types/http-assert-1.5.1" = {
+ name = "_at_types_slash_http-assert";
+ packageName = "@types/http-assert";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz";
+ sha512 = "1cn6djbpsp6rky1sllzs6s311xz0zhzkwb38s68w83ij8whsygjr87ymzbp0x3gbxxnvhfa1xh1c5vxfan6q3dz2gbjgiv9kzphlq1w";
+ };
+ };
+ "@types/istanbul-lib-coverage-2.0.1" = {
+ name = "_at_types_slash_istanbul-lib-coverage";
+ packageName = "@types/istanbul-lib-coverage";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz";
+ sha512 = "2b0br9w70brjpzw8ck05lr79v6hc4sdk1q2jq6qs55nw869ylsfwng48ghj0yjcm9skkn76g8ry8rdf2b35i2iynbh957k7m3cl64l5";
+ };
+ };
+ "@types/istanbul-lib-report-3.0.0" = {
+ name = "_at_types_slash_istanbul-lib-report";
+ packageName = "@types/istanbul-lib-report";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+ sha512 = "2parlinb7jrj152li79c6fs089y970f0s7yvzpkid8m4r8cgr9rn54bhg5ak7hsw6yvs9isx0diwjq20fb3dggnc5la2m6z0dfa0ld6";
+ };
+ };
+ "@types/istanbul-reports-1.1.1" = {
+ name = "_at_types_slash_istanbul-reports";
+ packageName = "@types/istanbul-reports";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz";
+ sha512 = "0s1jhax5h82lqchx13zj07h3zpyhqzckbnc76yl3a864xy91x11s06q3b2nds5pi89059xxa2b57p45ja90da60hr1gay9i5w3275jj";
+ };
+ };
+ "@types/jest-24.9.1" = {
+ name = "_at_types_slash_jest";
+ packageName = "@types/jest";
+ version = "24.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz";
+ sha512 = "3hkz9dl54is1hmjiscs6sdvmafpv192bb3qz6sq6yq862dhvl4i5qwqbikbkmcn1576jiccpvrc35kvlng132piy45hwm6j8lggrg8m";
+ };
+ };
+ "@types/js-yaml-3.12.2" = {
+ name = "_at_types_slash_js-yaml";
+ packageName = "@types/js-yaml";
+ version = "3.12.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.2.tgz";
+ sha512 = "2x03h69ivbpj4lsrpq698phn44jbq45jq31zdr7k30phrfv8r0gxr35qi98qbqa6rb599k8nhgj7gwnvll5lw6ml5j263961vz6w8fh";
+ };
+ };
+ "@types/keygrip-1.0.2" = {
+ name = "_at_types_slash_keygrip";
+ packageName = "@types/keygrip";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz";
+ sha512 = "0mqq8pzrfh058ha153xmyrbvcwpqq02z0ap89pw2rgfw9ll8c78dnxa0161i3pjhz7q0n7kizh73841637s4spc35qygnkkx96nk60q";
+ };
+ };
+ "@types/koa-2.11.2" = {
+ name = "_at_types_slash_koa";
+ packageName = "@types/koa";
+ version = "2.11.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/koa/-/koa-2.11.2.tgz";
+ sha512 = "2b2i4xy8zwfig5p744i5n32krsyvgbdjg1nzr2dawwykr9m6zp37l4g8m0mr7936yzd80yiwn2rmq4n6d1fcj6dkndnwd8dm2axwhyr";
+ };
+ };
+ "@types/koa-compose-3.2.5" = {
+ name = "_at_types_slash_koa-compose";
+ packageName = "@types/koa-compose";
+ version = "3.2.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz";
+ sha512 = "02hhnlq6kz27g5y2vlnj3pk1rnm16gh2qb7hf3gpxrarxrz35pc40y0aiz34ncaiggpk8306yz9q0pwm75mc099m1cy9m04xbycdj87";
+ };
+ };
+ "@types/koa-router-7.4.0" = {
+ name = "_at_types_slash_koa-router";
+ packageName = "@types/koa-router";
+ version = "7.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.4.0.tgz";
+ sha512 = "1m9sk2skfl0vrggx53s3d3aw2ijphxkig9mjiw90016ljmz7hryyi3z74qxwmfvwg265k0cvhffq0c7j1aaxd210klsl9w2cf274hqa";
+ };
+ };
+ "@types/koa-send-4.1.2" = {
+ name = "_at_types_slash_koa-send";
+ packageName = "@types/koa-send";
+ version = "4.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/koa-send/-/koa-send-4.1.2.tgz";
+ sha512 = "10xa7f3s5sdnr0ks3gbdmd635qyj160yj9b737qagw4bqbzg0hbk3irnvih4y0dc3i5lg8m8jf4p0nx52gv4vwwyhvxn5avzwi8mymd";
+ };
+ };
+ "@types/koa-static-4.0.1" = {
+ name = "_at_types_slash_koa-static";
+ packageName = "@types/koa-static";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/koa-static/-/koa-static-4.0.1.tgz";
+ sha512 = "3isnj0yxhf6xg0ymb317xj4a4fxdywk1xb0wadc5ghimab8m3q6vx3yv7zzyi84hx8wdm83fw65z108n0cdvnhij28hfw64jyvmqaj9";
+ };
+ };
+ "@types/koa-views-2.0.4" = {
+ name = "_at_types_slash_koa-views";
+ packageName = "@types/koa-views";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/koa-views/-/koa-views-2.0.4.tgz";
+ sha512 = "2bkbmh8mba0sm82lp0ividj4l09lbmdw1swfpf7kvdrc1q3710q1y57zysr0kpg3j4ngy4m4gf73a4cwqcjx1rsbmjb22wgp1a42qb8";
+ };
+ };
+ "@types/lodash-4.14.149" = {
+ name = "_at_types_slash_lodash";
+ packageName = "@types/lodash";
+ version = "4.14.149";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz";
+ sha512 = "0jnvvzg602jxgjxl0fvi7iws4msvxvkff6mqvinyy0fcmxfxrpf46k30r6s0z7cb12r17sg0j6nbhg8s8xbvgf2rmgv0vvzkg6slcca";
+ };
+ };
+ "@types/lodash.clonedeep-4.5.6" = {
+ name = "_at_types_slash_lodash.clonedeep";
+ packageName = "@types/lodash.clonedeep";
+ version = "4.5.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.6.tgz";
+ sha512 = "2010qs0qh6d3vd77rhbwid7xvq511bgzp9vj4s3k2mlzqj78jwgb60dc84mdl4c38fz3bgx5shl6k57dm9mxbw90iq0s4lxpmi66kbh";
+ };
+ };
+ "@types/mime-2.0.1" = {
+ name = "_at_types_slash_mime";
+ packageName = "@types/mime";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz";
+ sha512 = "35iimmp0d3zg4774qavnq9wh54dgnxfks59fks65f8q8d1008x00a1fmkdnxcs27znlc69mzbxp1frzpxx85c5w4x0ha5prgs0ks0hp";
+ };
+ };
+ "@types/minimatch-3.0.3" = {
+ name = "_at_types_slash_minimatch";
+ packageName = "@types/minimatch";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
+ sha512 = "2ff7lcgph45bp2v5zsaxcy00rbh5n5h4njbicwhqilz66pd1lw7xfrpfl4i4ppfcx78zg9cp582b5fjif0dg7r18m44vxfksslvlyml";
+ };
+ };
+ "@types/mkdirp-0.5.2" = {
+ name = "_at_types_slash_mkdirp";
+ packageName = "@types/mkdirp";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz";
+ sha512 = "177ihvl818zn0w93xipz417pm2cj2jzwnqs2khkj0k2dd7gs6ssv460affznfiii54a5l8qffigcq6xl74zsy6339c7cqpvkdd9r62k";
+ };
+ };
+ "@types/node-10.17.17" = {
+ name = "_at_types_slash_node";
+ packageName = "@types/node";
+ version = "10.17.17";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/node/-/node-10.17.17.tgz";
+ sha512 = "3qw8j56g9078d7lahi73ifnpbk2x385diqgq1qgr62drcxbqgjnkbncy25nhdas05hwkfgzf69r2bj4x6mdwr1yrsrmbpagfr36g4w2";
+ };
+ };
+ "@types/node-12.12.30" = {
+ name = "_at_types_slash_node";
+ packageName = "@types/node";
+ version = "12.12.30";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/node/-/node-12.12.30.tgz";
+ sha512 = "0rdl54cn0jbb3g2mlp09fywwf8d6plyspmiggr5rja9z93z4n606kj8srbgjk9f83wjxd9qmq20ixj2a90369whvrmsbsp4zhblqgxk";
+ };
+ };
+ "@types/ora-3.2.0" = {
+ name = "_at_types_slash_ora";
+ packageName = "@types/ora";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/ora/-/ora-3.2.0.tgz";
+ sha512 = "3xvxw1cs55wdb1ihpg8df91crz17agjwq79kd342s137kwkz823n8adxxrr74fnb1rn0ffsq9zacyz2cv642ljn41dj39ha2pvpsncf";
+ };
+ };
+ "@types/range-parser-1.2.3" = {
+ name = "_at_types_slash_range-parser";
+ packageName = "@types/range-parser";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz";
+ sha512 = "0w59kqlbrl9ich2pv2xqanzmg9f51404zqsba9l8aimqd77zbrdxcyq9q13xfnhr0d1dz4mx6z7n976ryc2nk2gfch5p507njm5f0bv";
+ };
+ };
+ "@types/request-2.48.4" = {
+ name = "_at_types_slash_request";
+ packageName = "@types/request";
+ version = "2.48.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/request/-/request-2.48.4.tgz";
+ sha512 = "21mnsvbrykpzp1f1rd2ibk3nsgr8kyqikk5rdmq4qlkpf10gnpxp414hnvnbwjp27l5hvpc5l0fx0qhw20h7zi143qw6iwq68qpansv";
+ };
+ };
+ "@types/serve-static-1.13.3" = {
+ name = "_at_types_slash_serve-static";
+ packageName = "@types/serve-static";
+ version = "1.13.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz";
+ sha512 = "39fm32fi9qpb1bz4q399y9rzv02ywml2m1qmclyr1ckrmy4vdn8nv5f9986ckn19yapxif0ljs0gc717xd7dmssjnh37qrxkp1d56m2";
+ };
+ };
+ "@types/stack-utils-1.0.1" = {
+ name = "_at_types_slash_stack-utils";
+ packageName = "@types/stack-utils";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz";
+ sha512 = "29j551rin7d7ygf7pd95db51b4jf48vsjnl03l4djdi6sh5jsk2f4kxwf21ixzj92mwq8y4cfhbcihwppxfkm4pkb5sqiv91a1833cp";
+ };
+ };
+ "@types/tough-cookie-2.3.6" = {
+ name = "_at_types_slash_tough-cookie";
+ packageName = "@types/tough-cookie";
+ version = "2.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.6.tgz";
+ sha512 = "0yla1v86agvz3wlkdjcn7i4hpgb02nwjsafg0xkdkclbiil08fkxjj9c4q4yj785ps3gdc5p3sqx2y0rajg1v6x068ih418g4r42wy0";
+ };
+ };
+ "@types/underscore-1.9.4" = {
+ name = "_at_types_slash_underscore";
+ packageName = "@types/underscore";
+ version = "1.9.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/underscore/-/underscore-1.9.4.tgz";
+ sha512 = "1czi6sv1hf482wlzsl9an3s18r033aiy54airz2558f1g32ppkz3jy44mnhzwyi9g87miwggp4l8yfgc95d4qg6qka6ywq2q48dcc8a";
+ };
+ };
+ "@types/websocket-0.0.40" = {
+ name = "_at_types_slash_websocket";
+ packageName = "@types/websocket";
+ version = "0.0.40";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/websocket/-/websocket-0.0.40.tgz";
+ sha512 = "0ajm2lr5mbfin316js7lzg3fvvhyd78ms1y929ppwqbg1fv6k9qnbcbz472p637xx29azlgiy3l0zzv4zvcmi9f7df5z0l80mkmxnwm";
+ };
+ };
+ "@types/ws-6.0.4" = {
+ name = "_at_types_slash_ws";
+ packageName = "@types/ws";
+ version = "6.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz";
+ sha512 = "318vy2l4c8cw6nm061l15pp3ss2llblyy2y7a8w92vp6da3n7s3iiha5shpxrmc5c3gv0ap0vq9x10vv64g5np1xggdlnwrnigyp4ry";
+ };
+ };
+ "@types/yargs-13.0.8" = {
+ name = "_at_types_slash_yargs";
+ packageName = "@types/yargs";
+ version = "13.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz";
+ sha512 = "36csm2rf0wi6cj680qswwvyl3lvh88ayl578165z8d1hxh6saswzn2g2zl5v20c08jg9rdjhqwwi336yj0jh6l76fy0yldv04pwf2sw";
+ };
+ };
+ "@types/yargs-parser-15.0.0" = {
+ name = "_at_types_slash_yargs-parser";
+ packageName = "@types/yargs-parser";
+ version = "15.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
+ sha512 = "35k8bcpm51w11xbny2a8gqgz12pdn3pw8w0jf36jzlkcmpkrqlqnqf9gbrwj9sah0pv05clzlgk2a7kvnr9q3h1za4rbw9dzxdc23ql";
+ };
+ };
+ "@webassemblyjs/ast-1.8.5" = {
+ name = "_at_webassemblyjs_slash_ast";
+ packageName = "@webassemblyjs/ast";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz";
+ sha512 = "00rj3q9igpw0cihw48xx7qpmmv64yy821bvy52dqxqc7w8kq2hga2f2v2g5j83is5kdz4hfdla4a3h6q5lwpdshxynrzsqr0ag1z4v8";
+ };
+ };
+ "@webassemblyjs/floating-point-hex-parser-1.8.5" = {
+ name = "_at_webassemblyjs_slash_floating-point-hex-parser";
+ packageName = "@webassemblyjs/floating-point-hex-parser";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz";
+ sha512 = "2shwdw16zcsl2rkvyc8jlgcs5564si8m64b0v9f8ssmrxmrd84c82brnwbyblhynqldvyr8f3fl9pjvfgzw0phz0qm5mfzbc7svp7zn";
+ };
+ };
+ "@webassemblyjs/helper-api-error-1.8.5" = {
+ name = "_at_webassemblyjs_slash_helper-api-error";
+ packageName = "@webassemblyjs/helper-api-error";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz";
+ sha512 = "363avw28ls7abwqcy7wvhdr853pccnzd9b58i1k7l1aax5cads499b494i1lwj4nlb8ksypy3nchr97i9y5r57k91dag7ig7fgyvbv5";
+ };
+ };
+ "@webassemblyjs/helper-buffer-1.8.5" = {
+ name = "_at_webassemblyjs_slash_helper-buffer";
+ packageName = "@webassemblyjs/helper-buffer";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz";
+ sha512 = "3yxqbq2lizijhxxr5ics6i0c5hc6c00fw4dqlqiq669mr1b0zalzs0670psbddmd4sq3yks567n1wr00l5flg6lwf34xlcjfgr92ba6";
+ };
+ };
+ "@webassemblyjs/helper-code-frame-1.8.5" = {
+ name = "_at_webassemblyjs_slash_helper-code-frame";
+ packageName = "@webassemblyjs/helper-code-frame";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz";
+ sha512 = "0ljgrac16148nv6nbzk5jisalyjx3pgm4vdcbzympzn143367w1k82lvpr7iwrslildvi6ck1jj9vjqy8fj2fkyli6qhr4v5dsil02m";
+ };
+ };
+ "@webassemblyjs/helper-fsm-1.8.5" = {
+ name = "_at_webassemblyjs_slash_helper-fsm";
+ packageName = "@webassemblyjs/helper-fsm";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz";
+ sha512 = "2imw7y018r4hyvyaaw2cpvrv3qp9bv4vg816l2yvl79xwd2dnplmsmmwsv3vmy2b8mvdjzq0dknkd2i6sjbgpzgn4ychicfqvz9f6wi";
+ };
+ };
+ "@webassemblyjs/helper-module-context-1.8.5" = {
+ name = "_at_webassemblyjs_slash_helper-module-context";
+ packageName = "@webassemblyjs/helper-module-context";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz";
+ sha512 = "3gfr1zif7fxlfbpfkcqncq8vmrimncn6pmvh0x7av1pb82a9vhhahpy2mkrgdrc3w62gw0lbbhj4zwgrxzgabaf246vadx6gvdl3vgw";
+ };
+ };
+ "@webassemblyjs/helper-wasm-bytecode-1.8.5" = {
+ name = "_at_webassemblyjs_slash_helper-wasm-bytecode";
+ packageName = "@webassemblyjs/helper-wasm-bytecode";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz";
+ sha512 = "10klm32913whkdnjk7jgf262lgl6wqv9qkw6ssjg1lmlzwa0qbn159l962j6pfx3idzaf4w014gmcy17wssdri6v1xxj3dph4qiivha";
+ };
+ };
+ "@webassemblyjs/helper-wasm-section-1.8.5" = {
+ name = "_at_webassemblyjs_slash_helper-wasm-section";
+ packageName = "@webassemblyjs/helper-wasm-section";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz";
+ sha512 = "2s3d3bh4wrizs5y2p480qnxs5m1hx9pfkppa38f7mk9w49cfq6h0gq5c0q79aqrl4jpyzqzmrsdbyx9562q1bb547mm9y8i7kgkqpam";
+ };
+ };
+ "@webassemblyjs/ieee754-1.8.5" = {
+ name = "_at_webassemblyjs_slash_ieee754";
+ packageName = "@webassemblyjs/ieee754";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz";
+ sha512 = "3g8bqb43s1n4nrzn5f7vrhdpi88mnr49xpwcq5jb0ql7baslh3cxni2rijp0hng7daai5d0n7dnn0llyazis2mckwzvcaggi90sz839";
+ };
+ };
+ "@webassemblyjs/leb128-1.8.5" = {
+ name = "_at_webassemblyjs_slash_leb128";
+ packageName = "@webassemblyjs/leb128";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz";
+ sha512 = "3ncjzk3d9pjnjd0vfagpbaa02jpmgapq2hyamzpfpaidshgcyqbz6rfhfp3arvjcdxpws4d9bi0wf552pzr9vs9i8rv4y159jwi8mm6";
+ };
+ };
+ "@webassemblyjs/utf8-1.8.5" = {
+ name = "_at_webassemblyjs_slash_utf8";
+ packageName = "@webassemblyjs/utf8";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz";
+ sha512 = "27hlgvdfxw9arxzrdrnfd7zmzp953439jyjh8acb3g2nm0ysr9il2xl3v0dklr9yvv6jkmj7s9yi29l2izgghypxqvjrblhv5zf1g2k";
+ };
+ };
+ "@webassemblyjs/wasm-edit-1.8.5" = {
+ name = "_at_webassemblyjs_slash_wasm-edit";
+ packageName = "@webassemblyjs/wasm-edit";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz";
+ sha512 = "3lzdvq0vwmp3civ70pdrr3970i7viiywnwry8ysmvmfbd4zhkffs4d5vyy5ibvxmmass9nlmvs3cd8fwh633yx8prr0wnqc5wrl9383";
+ };
+ };
+ "@webassemblyjs/wasm-gen-1.8.5" = {
+ name = "_at_webassemblyjs_slash_wasm-gen";
+ packageName = "@webassemblyjs/wasm-gen";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz";
+ sha512 = "1d2nc7b2zjdyaxyrvxm5mck8aj0p95dznknn8j8wi5d3ah55zpf2kp18kk79l55fbb7k9vhri74yqbks9ay9qrwbh12si6l897l29h4";
+ };
+ };
+ "@webassemblyjs/wasm-opt-1.8.5" = {
+ name = "_at_webassemblyjs_slash_wasm-opt";
+ packageName = "@webassemblyjs/wasm-opt";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz";
+ sha512 = "3npgmsia24ap1yhdpdn1c9bwdq71glsxdyn7kyphz5x4gnxl97v04iwgcsaj2k1di5vgq1m8mlqfrllxk4fvviwl8xd11ylxyc3dahw";
+ };
+ };
+ "@webassemblyjs/wasm-parser-1.8.5" = {
+ name = "_at_webassemblyjs_slash_wasm-parser";
+ packageName = "@webassemblyjs/wasm-parser";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz";
+ sha512 = "2bprpybs2qm4m1fbdd877aqj8s153j4gg32bf8qnmigqnjcfwl6mxmbzb90xq7qx6zvwqniv4rirgd40b4c2qab6bfdgsjk9xh14bd6";
+ };
+ };
+ "@webassemblyjs/wast-parser-1.8.5" = {
+ name = "_at_webassemblyjs_slash_wast-parser";
+ packageName = "@webassemblyjs/wast-parser";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz";
+ sha512 = "2r6vw7gg4ij9mjl2f564mwnjsrn7nzsvr1gcrpch0f87xayvjky82f4cn6sh0d8714fpqqqrfq6a1797jnnqs2xidsp2n4abkac59bm";
+ };
+ };
+ "@webassemblyjs/wast-printer-1.8.5" = {
+ name = "_at_webassemblyjs_slash_wast-printer";
+ packageName = "@webassemblyjs/wast-printer";
+ version = "1.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz";
+ sha512 = "0r5hhrrqk2ww81xjvbxjglp0sh6igz55pjy45ly4786kq3b723vlhqsydr7j87sb3zyww9zvjil08jmk8dcr2978zpmk1h47sj38if3";
+ };
+ };
+ "@xtuc/ieee754-1.2.0" = {
+ name = "_at_xtuc_slash_ieee754";
+ packageName = "@xtuc/ieee754";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
+ sha512 = "1wczr2c331gq4q6w6nsiylqs6q6dp0j2lvc231826gfrdhr3lcimmyhswp4g0b5p7k7k525gq6gh0wpg65sjlp2s4f0n6ww18m2fzqd";
+ };
+ };
+ "@xtuc/long-4.2.2" = {
+ name = "_at_xtuc_slash_long";
+ packageName = "@xtuc/long";
+ version = "4.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz";
+ sha512 = "00n8akj5s578b8r7vcdz817cnmga21vznz895kygvb0j780968szj171f91b0bgvz880ff7zq025q4087cgxb2fqpyg01sgil2ymq9n";
+ };
+ };
+ "abab-2.0.3" = {
+ name = "abab";
+ packageName = "abab";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz";
+ sha512 = "192f58ba6nxqhzyxlp9dlj156ry71s8mlfvgbg37kj2slffixrwj2s3zwpnyyhy4mh5m7sy3idir119mk518hjhii6skd9djwz77hdn";
+ };
+ };
+ "abbrev-1.1.1" = {
+ name = "abbrev";
+ packageName = "abbrev";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+ sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
+ };
+ };
+ "accepts-1.3.7" = {
+ name = "accepts";
+ packageName = "accepts";
+ version = "1.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
+ sha512 = "2j51dxzbgz22q0k7dhivimfsqx9a0f0h9slfd7n20gz3y1944gx3y7xai54za0x3zhbar6vqiaab2i9p913cwqk414qk3cnrm138pr2";
+ };
+ };
+ "acorn-3.3.0" = {
+ name = "acorn";
+ packageName = "acorn";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz";
+ sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a";
+ };
+ };
+ "acorn-4.0.13" = {
+ name = "acorn";
+ packageName = "acorn";
+ version = "4.0.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz";
+ sha1 = "105495ae5361d697bd195c825192e1ad7f253787";
+ };
+ };
+ "acorn-5.7.4" = {
+ name = "acorn";
+ packageName = "acorn";
+ version = "5.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz";
+ sha512 = "0k4pivh1yagdalb26khf36wscaxi3kbv6w48zg5jsll2scl2wq4f4gxcq9ggnzf37l4y446n4a3bmr85wx0fnwk89pvp1n1drabwgyl";
+ };
+ };
+ "acorn-6.4.1" = {
+ name = "acorn";
+ packageName = "acorn";
+ version = "6.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz";
+ sha512 = "1s65pswzbh0155lsrdln08lifgs34zb53vkfl8fvxwnfmrc84vj01m9b31w4n846k7vk8lr5ns6wqf0fxc8xz98vkihldxsgn9ksl35";
+ };
+ };
+ "acorn-7.1.1" = {
+ name = "acorn";
+ packageName = "acorn";
+ version = "7.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz";
+ sha512 = "29c8jlhwnfbnqa2s1v593lcpksv4hl56lywss4gy6w0mwmhx4ydf2n7var8bhcf39nm9asph0ybnf1hkw0s0j91qi7r99ir01v7pmv9";
+ };
+ };
+ "acorn-globals-3.1.0" = {
+ name = "acorn-globals";
+ packageName = "acorn-globals";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz";
+ sha1 = "fd8270f71fbb4996b004fa880ee5d46573a731bf";
+ };
+ };
+ "acorn-globals-4.3.4" = {
+ name = "acorn-globals";
+ packageName = "acorn-globals";
+ version = "4.3.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz";
+ sha512 = "38gm4qa9sr1znbnlv4w33f1zrqsvldv66yqlflsc7r5ifxwsnpizsa93yxd3d1a8wy08j424smizrywkzam36z4jpsf0ixm3l9d0mvj";
+ };
+ };
+ "acorn-walk-6.2.0" = {
+ name = "acorn-walk";
+ packageName = "acorn-walk";
+ version = "6.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz";
+ sha512 = "1q392w8cii4phm8maghmlfjzgzmwhd2n0xadah315lqflygnaf5g7gn6lhbdfszf1sdqx5j4bik89qa6zg03n8cfj1b6w7my74yrszd";
+ };
+ };
+ "acorn-walk-7.1.1" = {
+ name = "acorn-walk";
+ packageName = "acorn-walk";
+ version = "7.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz";
+ sha512 = "10s7pz9c2jqw7sjmkkwfb6kyyfgb7qqpmz2gc0fq9phhmfknyw029x1jbw0cwi47wbacpwkw65601arnid2l95lmz0xbzv6ddilznf1";
+ };
+ };
+ "aggregate-error-1.0.0" = {
+ name = "aggregate-error";
+ packageName = "aggregate-error";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-1.0.0.tgz";
+ sha1 = "888344dad0220a72e3af50906117f48771925fac";
+ };
+ };
+ "ajv-6.12.0" = {
+ name = "ajv";
+ packageName = "ajv";
+ version = "6.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
+ sha512 = "0gkcic96nmpcq311i2jfwbaa961x0mj7mkl7iwk213hyn4jgxbl0a472lcpg9dr7ybacn3i45fj6q0dz3g8rqmva7r14i9la240ba0g";
+ };
+ };
+ "ajv-errors-1.0.1" = {
+ name = "ajv-errors";
+ packageName = "ajv-errors";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz";
+ sha512 = "24kqslzd256yc0dckqcg8n1rngyfzdflfznp55hnhkv3rhyzirjhpj31rgiiryyjlw8a64x9ba7hdqkpiwf6jpllwyyyhr7zqxmy90c";
+ };
+ };
+ "ajv-keywords-3.4.1" = {
+ name = "ajv-keywords";
+ packageName = "ajv-keywords";
+ version = "3.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
+ sha512 = "1lyjmfg70gijr3gjs63qmawfazm5mz8vb1bknyy1vzdif6a30vi3dpwkrlv4j4i5dg56jd3fliqgfq0rxbm98a42jxbgnyxmdn65va4";
+ };
+ };
+ "align-text-0.1.4" = {
+ name = "align-text";
+ packageName = "align-text";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz";
+ sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
+ };
+ };
+ "ansi-colors-3.2.4" = {
+ name = "ansi-colors";
+ packageName = "ansi-colors";
+ version = "3.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz";
+ sha512 = "2n6gl8300ihln724832pvvzrii5c4qjli9xc16s632ywnyrfbv1kmcqg133v25583hqhflpsfi2yhkjy6nhzj0si5v36zhym0cifxc4";
+ };
+ };
+ "ansi-escapes-3.2.0" = {
+ name = "ansi-escapes";
+ packageName = "ansi-escapes";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
+ sha512 = "12pp3q4c44hrzr2xl9vqjigwjn2wr1j0lhvshl75z5m6a97hqkd047sdcma1inzjvxhpkzk1qkvag7cw3sya32s9wsfasr6xsnnj63h";
+ };
+ };
+ "ansi-html-0.0.7" = {
+ name = "ansi-html";
+ packageName = "ansi-html";
+ version = "0.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz";
+ sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
+ };
+ };
+ "ansi-regex-2.1.1" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ };
+ "ansi-regex-3.0.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ };
+ "ansi-regex-4.1.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+ sha512 = "1v2gfp292kslpvam0l0h1iba35yi0n7dc6qv6fmxsdyfcp6zakkl13vrh3hzsw4zgh50jrrsg7xb2q2hn4g8a0dmf947mfcylymxanm";
+ };
+ };
+ "ansi-styles-2.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "2.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ };
+ "ansi-styles-3.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "3.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha512 = "2lgkskkj4c1fsnrksy0yffda0wss84p8lfiazdc7jli7iqnvrxkzbxjzpvx13lm28qw0zkawfxvz2bdiisc72ccy7hx8i8rm4iijgam";
+ };
+ };
+ "any-promise-1.3.0" = {
+ name = "any-promise";
+ packageName = "any-promise";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz";
+ sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f";
+ };
+ };
+ "anymatch-2.0.0" = {
+ name = "anymatch";
+ packageName = "anymatch";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
+ sha512 = "03mjsaw6xk4zhvl17fpqn59j4v2bafqs0yfw5y45hl8x97xlihwvjmcx3icnaamvipplnczymvzg4sb4ixwpzak0k3p21c00nqqxmz6";
+ };
+ };
+ "aproba-1.2.0" = {
+ name = "aproba";
+ packageName = "aproba";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+ sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3";
+ };
+ };
+ "argparse-1.0.10" = {
+ name = "argparse";
+ packageName = "argparse";
+ version = "1.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+ sha512 = "17fhywmdjcp8g0ys089i5xg26yajkkg9zg8hyry3fghz75b2pq5vdx997dk5p2sc15r9nsj8rmf4f27g81hi92kzj5q86sdmg5ni553";
+ };
+ };
+ "arr-diff-4.0.0" = {
+ name = "arr-diff";
+ packageName = "arr-diff";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz";
+ sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+ };
+ };
+ "arr-flatten-1.1.0" = {
+ name = "arr-flatten";
+ packageName = "arr-flatten";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
+ sha512 = "2vdly17xk5kw7bfzajrjdnw4ml3wrfblx8064n0i4fxlchcscx2mvnwkq2bnnqvbqvdy4vs9ad462lz0rid7khysly9m9vzjiblly1g";
+ };
+ };
+ "arr-union-3.1.0" = {
+ name = "arr-union";
+ packageName = "arr-union";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz";
+ sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+ };
+ };
+ "array-back-3.1.0" = {
+ name = "array-back";
+ packageName = "array-back";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz";
+ sha512 = "3aqfm29ppm74q3q0xlxldmf1a3vbkl9a6fbljf211cfgc7asjbkdglbpr6a5a04r0rvnk7y709k6nvaqa2nb3df1ipgqfh2hl1v2jsf";
+ };
+ };
+ "array-equal-1.0.0" = {
+ name = "array-equal";
+ packageName = "array-equal";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz";
+ sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93";
+ };
+ };
+ "array-flatten-1.1.1" = {
+ name = "array-flatten";
+ packageName = "array-flatten";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ };
+ "array-flatten-2.1.2" = {
+ name = "array-flatten";
+ packageName = "array-flatten";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz";
+ sha512 = "2swmvaw9xcvzv29i247057pq4khyss7gnc0p244v1l2g2p2xpsr47m0dfaf54yscd3fc9njh3kvwly99w8shvd9p5fq6nvwwmqg7mw4";
+ };
+ };
+ "array-union-1.0.2" = {
+ name = "array-union";
+ packageName = "array-union";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz";
+ sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
+ };
+ };
+ "array-uniq-1.0.3" = {
+ name = "array-uniq";
+ packageName = "array-uniq";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz";
+ sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+ };
+ };
+ "array-unique-0.3.2" = {
+ name = "array-unique";
+ packageName = "array-unique";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz";
+ sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+ };
+ };
+ "asap-2.0.6" = {
+ name = "asap";
+ packageName = "asap";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz";
+ sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+ };
+ };
+ "asn1-0.2.4" = {
+ name = "asn1";
+ packageName = "asn1";
+ version = "0.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
+ sha512 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
+ };
+ };
+ "asn1.js-4.10.1" = {
+ name = "asn1.js";
+ packageName = "asn1.js";
+ version = "4.10.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
+ sha512 = "15j9ms7k6dx08m1wqrvc4958vcrshjjpicpxmz9bflsyk0x2r7w20lxlm27jpyj7cwj6158a0582vifk393hqp0ysn9mlbabqw9qzd7";
+ };
+ };
+ "assert-1.5.0" = {
+ name = "assert";
+ packageName = "assert";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz";
+ sha512 = "1n2xh5m359gm4my50j2206n32q2h044lqrl8h122gjn41fizlrh32j1lj7wqfix1iblyvi7zvdgvzbf97f840lr17vfk8ph1imj0fqh";
+ };
+ };
+ "assert-plus-1.0.0" = {
+ name = "assert-plus";
+ packageName = "assert-plus";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ };
+ "assign-symbols-1.0.0" = {
+ name = "assign-symbols";
+ packageName = "assign-symbols";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz";
+ sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+ };
+ };
+ "astral-regex-1.0.0" = {
+ name = "astral-regex";
+ packageName = "astral-regex";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz";
+ sha512 = "0ga6b0jymkw4jrfvjilhfrddml29l1nrvj7r57d140p7rn31mmbni4j9z343v2zzz2zcnlsr2s17kmlgjkyvs9pxrf88an11pm9y77r";
+ };
+ };
+ "async-2.6.3" = {
+ name = "async";
+ packageName = "async";
+ version = "2.6.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
+ sha512 = "1g679kw2qqpqx1yd4s778r8rw3cv9qwmib5x3klk64kcl5ndw71bljcpav5jkk6grizlpvrqszsbs6fkmnlvcq5fnz2q33mrnb6zyfd";
+ };
+ };
+ "async-each-1.0.3" = {
+ name = "async-each";
+ packageName = "async-each";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
+ sha512 = "00vbg0zvq40mmvzz9q3klkk5ly5jh75kc8s3bf7j2ff9zivla3wlc8d622gajjq4w66mln5570dc936my6wh08ippfj5jagj51s3xfg";
+ };
+ };
+ "async-limiter-1.0.1" = {
+ name = "async-limiter";
+ packageName = "async-limiter";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
+ sha512 = "0sy81yyf4na58ic2m0ib0prkb9njb1qzl7wf3vlq4hhm4xnwgxaph0lr43gs1sd0rai2xp1h6phlwvni9jiggm94dd54i0wc1cabhvj";
+ };
+ };
+ "asynckit-0.4.0" = {
+ name = "asynckit";
+ packageName = "asynckit";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ };
+ "atob-2.1.2" = {
+ name = "atob";
+ packageName = "atob";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
+ sha512 = "1rbq2rl2ry0y3nkqs3013vgjrnzf03609rg58092r8zkvzzn6v15grhv2yhzb48sz74zmjcj8ix7f5whrfp4zvsxyzrh64fhs9awvjs";
+ };
+ };
+ "awesome-typescript-loader-5.2.1" = {
+ name = "awesome-typescript-loader";
+ packageName = "awesome-typescript-loader";
+ version = "5.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-5.2.1.tgz";
+ sha512 = "3b9ng7k3l7342hb2qqggp8y84ifzgb7ncjwjjn770gy7fda0c9aq897i7c4gn4w8l02xg88pji4pad46wr6j5755wmwl1q9w3lglnxj";
+ };
+ };
+ "aws-sign2-0.7.0" = {
+ name = "aws-sign2";
+ packageName = "aws-sign2";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ };
+ "aws4-1.9.1" = {
+ name = "aws4";
+ packageName = "aws4";
+ version = "1.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
+ sha512 = "2x4b6c0ny64yv6ljfs6sv82akh200klmnh1m1i18hdj28ksxkr9c0szphnwcasy3g5y3l1wn858wcxnc2gi9q5wql8s678fc61xbhf0";
+ };
+ };
+ "axios-0.19.2" = {
+ name = "axios";
+ packageName = "axios";
+ version = "0.19.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz";
+ sha512 = "0fa6ngb4rkbyp5r4ccjgs2ykdbz8i2hcr41av59jicgq6mfva739kcd6n5dqzj3hsx7d4qi201g93li3qddn14bz9qvh76irgj2cf3y";
+ };
+ };
+ "babel-6.23.0" = {
+ name = "babel";
+ packageName = "babel";
+ version = "6.23.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz";
+ sha1 = "d0d1e7d803e974765beea3232d4e153c0efb90f4";
+ };
+ };
+ "babel-code-frame-6.26.0" = {
+ name = "babel-code-frame";
+ packageName = "babel-code-frame";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+ sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+ };
+ };
+ "babel-core-6.26.3" = {
+ name = "babel-core";
+ packageName = "babel-core";
+ version = "6.26.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz";
+ sha512 = "0617drz6fkpdpkl4snbfz7ivd296j19182m7x4klhqac60qr77wn8bkgpz696sscxykcv1n8cdv09pz7v9xq6s1k552fyp6w0p8ag7a";
+ };
+ };
+ "babel-generator-6.26.1" = {
+ name = "babel-generator";
+ packageName = "babel-generator";
+ version = "6.26.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz";
+ sha512 = "2jfjq7ggb0ygyzxg3vw248iq0iw2v00janjva1bf3l322k4zjcx9hvq9qqy67gxxyl2igw1asxfgp769hd5229pc70kwri9l1iz09qz";
+ };
+ };
+ "babel-helper-builder-binary-assignment-operator-visitor-6.24.1" = {
+ name = "babel-helper-builder-binary-assignment-operator-visitor";
+ packageName = "babel-helper-builder-binary-assignment-operator-visitor";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz";
+ sha1 = "cce4517ada356f4220bcae8a02c2b346f9a56664";
+ };
+ };
+ "babel-helper-call-delegate-6.24.1" = {
+ name = "babel-helper-call-delegate";
+ packageName = "babel-helper-call-delegate";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz";
+ sha1 = "ece6aacddc76e41c3461f88bfc575bd0daa2df8d";
+ };
+ };
+ "babel-helper-define-map-6.26.0" = {
+ name = "babel-helper-define-map";
+ packageName = "babel-helper-define-map";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz";
+ sha1 = "a5f56dab41a25f97ecb498c7ebaca9819f95be5f";
+ };
+ };
+ "babel-helper-explode-assignable-expression-6.24.1" = {
+ name = "babel-helper-explode-assignable-expression";
+ packageName = "babel-helper-explode-assignable-expression";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz";
+ sha1 = "f25b82cf7dc10433c55f70592d5746400ac22caa";
+ };
+ };
+ "babel-helper-function-name-6.24.1" = {
+ name = "babel-helper-function-name";
+ packageName = "babel-helper-function-name";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz";
+ sha1 = "d3475b8c03ed98242a25b48351ab18399d3580a9";
+ };
+ };
+ "babel-helper-get-function-arity-6.24.1" = {
+ name = "babel-helper-get-function-arity";
+ packageName = "babel-helper-get-function-arity";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz";
+ sha1 = "8f7782aa93407c41d3aa50908f89b031b1b6853d";
+ };
+ };
+ "babel-helper-hoist-variables-6.24.1" = {
+ name = "babel-helper-hoist-variables";
+ packageName = "babel-helper-hoist-variables";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz";
+ sha1 = "1ecb27689c9d25513eadbc9914a73f5408be7a76";
+ };
+ };
+ "babel-helper-optimise-call-expression-6.24.1" = {
+ name = "babel-helper-optimise-call-expression";
+ packageName = "babel-helper-optimise-call-expression";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz";
+ sha1 = "f7a13427ba9f73f8f4fa993c54a97882d1244257";
+ };
+ };
+ "babel-helper-regex-6.26.0" = {
+ name = "babel-helper-regex";
+ packageName = "babel-helper-regex";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz";
+ sha1 = "325c59f902f82f24b74faceed0363954f6495e72";
+ };
+ };
+ "babel-helper-remap-async-to-generator-6.24.1" = {
+ name = "babel-helper-remap-async-to-generator";
+ packageName = "babel-helper-remap-async-to-generator";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz";
+ sha1 = "5ec581827ad723fecdd381f1c928390676e4551b";
+ };
+ };
+ "babel-helper-replace-supers-6.24.1" = {
+ name = "babel-helper-replace-supers";
+ packageName = "babel-helper-replace-supers";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz";
+ sha1 = "bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a";
+ };
+ };
+ "babel-helpers-6.24.1" = {
+ name = "babel-helpers";
+ packageName = "babel-helpers";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz";
+ sha1 = "3471de9caec388e5c850e597e58a26ddf37602b2";
+ };
+ };
+ "babel-jest-24.9.0" = {
+ name = "babel-jest";
+ packageName = "babel-jest";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz";
+ sha512 = "0iziajgh09ldyj02pmxdkxhzy1wj6n84az4l30p7pllaxlbz9g678q59b0309wfihbj82n4v85pi66n9crksz0f6chy2dx2zisrvnwy";
+ };
+ };
+ "babel-messages-6.23.0" = {
+ name = "babel-messages";
+ packageName = "babel-messages";
+ version = "6.23.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz";
+ sha1 = "f3cdf4703858035b2a2951c6ec5edf6c62f2630e";
+ };
+ };
+ "babel-plugin-check-es2015-constants-6.22.0" = {
+ name = "babel-plugin-check-es2015-constants";
+ packageName = "babel-plugin-check-es2015-constants";
+ version = "6.22.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz";
+ sha1 = "35157b101426fd2ffd3da3f75c7d1e91835bbf8a";
+ };
+ };
+ "babel-plugin-istanbul-5.2.0" = {
+ name = "babel-plugin-istanbul";
+ packageName = "babel-plugin-istanbul";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz";
+ sha512 = "1kj4z39mavs3h7wmb3nwrvhjddb1r138q61nisldfzcb52aikgi0hgg7yvql7xlvy7pxygx7wka7gimvcvbdhjwidwcn0qj8l5n3fp4";
+ };
+ };
+ "babel-plugin-jest-hoist-24.9.0" = {
+ name = "babel-plugin-jest-hoist";
+ packageName = "babel-plugin-jest-hoist";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz";
+ sha512 = "1gvgnf01laddy7cnxb2ggd1qg1zlsj3s72azdvib6vi9sqmbc7snzhxy6xw4dsmpypb64ncqxlk1mmasy0sycqhs53bk9qmzzc00hyq";
+ };
+ };
+ "babel-plugin-syntax-async-functions-6.13.0" = {
+ name = "babel-plugin-syntax-async-functions";
+ packageName = "babel-plugin-syntax-async-functions";
+ version = "6.13.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz";
+ sha1 = "cad9cad1191b5ad634bf30ae0872391e0647be95";
+ };
+ };
+ "babel-plugin-syntax-exponentiation-operator-6.13.0" = {
+ name = "babel-plugin-syntax-exponentiation-operator";
+ packageName = "babel-plugin-syntax-exponentiation-operator";
+ version = "6.13.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz";
+ sha1 = "9ee7e8337290da95288201a6a57f4170317830de";
+ };
+ };
+ "babel-plugin-syntax-trailing-function-commas-6.22.0" = {
+ name = "babel-plugin-syntax-trailing-function-commas";
+ packageName = "babel-plugin-syntax-trailing-function-commas";
+ version = "6.22.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz";
+ sha1 = "ba0360937f8d06e40180a43fe0d5616fff532cf3";
+ };
+ };
+ "babel-plugin-transform-async-to-generator-6.24.1" = {
+ name = "babel-plugin-transform-async-to-generator";
+ packageName = "babel-plugin-transform-async-to-generator";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz";
+ sha1 = "6536e378aff6cb1d5517ac0e40eb3e9fc8d08761";
+ };
+ };
+ "babel-plugin-transform-es2015-arrow-functions-6.22.0" = {
+ name = "babel-plugin-transform-es2015-arrow-functions";
+ packageName = "babel-plugin-transform-es2015-arrow-functions";
+ version = "6.22.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz";
+ sha1 = "452692cb711d5f79dc7f85e440ce41b9f244d221";
+ };
+ };
+ "babel-plugin-transform-es2015-block-scoped-functions-6.22.0" = {
+ name = "babel-plugin-transform-es2015-block-scoped-functions";
+ packageName = "babel-plugin-transform-es2015-block-scoped-functions";
+ version = "6.22.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz";
+ sha1 = "bbc51b49f964d70cb8d8e0b94e820246ce3a6141";
+ };
+ };
+ "babel-plugin-transform-es2015-block-scoping-6.26.0" = {
+ name = "babel-plugin-transform-es2015-block-scoping";
+ packageName = "babel-plugin-transform-es2015-block-scoping";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz";
+ sha1 = "d70f5299c1308d05c12f463813b0a09e73b1895f";
+ };
+ };
+ "babel-plugin-transform-es2015-classes-6.24.1" = {
+ name = "babel-plugin-transform-es2015-classes";
+ packageName = "babel-plugin-transform-es2015-classes";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz";
+ sha1 = "5a4c58a50c9c9461e564b4b2a3bfabc97a2584db";
+ };
+ };
+ "babel-plugin-transform-es2015-computed-properties-6.24.1" = {
+ name = "babel-plugin-transform-es2015-computed-properties";
+ packageName = "babel-plugin-transform-es2015-computed-properties";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz";
+ sha1 = "6fe2a8d16895d5634f4cd999b6d3480a308159b3";
+ };
+ };
+ "babel-plugin-transform-es2015-destructuring-6.23.0" = {
+ name = "babel-plugin-transform-es2015-destructuring";
+ packageName = "babel-plugin-transform-es2015-destructuring";
+ version = "6.23.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz";
+ sha1 = "997bb1f1ab967f682d2b0876fe358d60e765c56d";
+ };
+ };
+ "babel-plugin-transform-es2015-duplicate-keys-6.24.1" = {
+ name = "babel-plugin-transform-es2015-duplicate-keys";
+ packageName = "babel-plugin-transform-es2015-duplicate-keys";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz";
+ sha1 = "73eb3d310ca969e3ef9ec91c53741a6f1576423e";
+ };
+ };
+ "babel-plugin-transform-es2015-for-of-6.23.0" = {
+ name = "babel-plugin-transform-es2015-for-of";
+ packageName = "babel-plugin-transform-es2015-for-of";
+ version = "6.23.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz";
+ sha1 = "f47c95b2b613df1d3ecc2fdb7573623c75248691";
+ };
+ };
+ "babel-plugin-transform-es2015-function-name-6.24.1" = {
+ name = "babel-plugin-transform-es2015-function-name";
+ packageName = "babel-plugin-transform-es2015-function-name";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz";
+ sha1 = "834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b";
+ };
+ };
+ "babel-plugin-transform-es2015-literals-6.22.0" = {
+ name = "babel-plugin-transform-es2015-literals";
+ packageName = "babel-plugin-transform-es2015-literals";
+ version = "6.22.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz";
+ sha1 = "4f54a02d6cd66cf915280019a31d31925377ca2e";
+ };
+ };
+ "babel-plugin-transform-es2015-modules-amd-6.24.1" = {
+ name = "babel-plugin-transform-es2015-modules-amd";
+ packageName = "babel-plugin-transform-es2015-modules-amd";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz";
+ sha1 = "3b3e54017239842d6d19c3011c4bd2f00a00d154";
+ };
+ };
+ "babel-plugin-transform-es2015-modules-commonjs-6.26.2" = {
+ name = "babel-plugin-transform-es2015-modules-commonjs";
+ packageName = "babel-plugin-transform-es2015-modules-commonjs";
+ version = "6.26.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz";
+ sha512 = "3sy41x9jlzyzy6wzsj60asahzm6hg9gmr6r1cckdqhzmvckl7jbfb5zwr0nslndnhqgjwdmvxsah41h8v8286hjqbfbhxn4w4w52pq9";
+ };
+ };
+ "babel-plugin-transform-es2015-modules-systemjs-6.24.1" = {
+ name = "babel-plugin-transform-es2015-modules-systemjs";
+ packageName = "babel-plugin-transform-es2015-modules-systemjs";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz";
+ sha1 = "ff89a142b9119a906195f5f106ecf305d9407d23";
+ };
+ };
+ "babel-plugin-transform-es2015-modules-umd-6.24.1" = {
+ name = "babel-plugin-transform-es2015-modules-umd";
+ packageName = "babel-plugin-transform-es2015-modules-umd";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz";
+ sha1 = "ac997e6285cd18ed6176adb607d602344ad38468";
+ };
+ };
+ "babel-plugin-transform-es2015-object-super-6.24.1" = {
+ name = "babel-plugin-transform-es2015-object-super";
+ packageName = "babel-plugin-transform-es2015-object-super";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz";
+ sha1 = "24cef69ae21cb83a7f8603dad021f572eb278f8d";
+ };
+ };
+ "babel-plugin-transform-es2015-parameters-6.24.1" = {
+ name = "babel-plugin-transform-es2015-parameters";
+ packageName = "babel-plugin-transform-es2015-parameters";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz";
+ sha1 = "57ac351ab49caf14a97cd13b09f66fdf0a625f2b";
+ };
+ };
+ "babel-plugin-transform-es2015-shorthand-properties-6.24.1" = {
+ name = "babel-plugin-transform-es2015-shorthand-properties";
+ packageName = "babel-plugin-transform-es2015-shorthand-properties";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz";
+ sha1 = "24f875d6721c87661bbd99a4622e51f14de38aa0";
+ };
+ };
+ "babel-plugin-transform-es2015-spread-6.22.0" = {
+ name = "babel-plugin-transform-es2015-spread";
+ packageName = "babel-plugin-transform-es2015-spread";
+ version = "6.22.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz";
+ sha1 = "d6d68a99f89aedc4536c81a542e8dd9f1746f8d1";
+ };
+ };
+ "babel-plugin-transform-es2015-sticky-regex-6.24.1" = {
+ name = "babel-plugin-transform-es2015-sticky-regex";
+ packageName = "babel-plugin-transform-es2015-sticky-regex";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz";
+ sha1 = "00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc";
+ };
+ };
+ "babel-plugin-transform-es2015-template-literals-6.22.0" = {
+ name = "babel-plugin-transform-es2015-template-literals";
+ packageName = "babel-plugin-transform-es2015-template-literals";
+ version = "6.22.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz";
+ sha1 = "a84b3450f7e9f8f1f6839d6d687da84bb1236d8d";
+ };
+ };
+ "babel-plugin-transform-es2015-typeof-symbol-6.23.0" = {
+ name = "babel-plugin-transform-es2015-typeof-symbol";
+ packageName = "babel-plugin-transform-es2015-typeof-symbol";
+ version = "6.23.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz";
+ sha1 = "dec09f1cddff94b52ac73d505c84df59dcceb372";
+ };
+ };
+ "babel-plugin-transform-es2015-unicode-regex-6.24.1" = {
+ name = "babel-plugin-transform-es2015-unicode-regex";
+ packageName = "babel-plugin-transform-es2015-unicode-regex";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz";
+ sha1 = "d38b12f42ea7323f729387f18a7c5ae1faeb35e9";
+ };
+ };
+ "babel-plugin-transform-exponentiation-operator-6.24.1" = {
+ name = "babel-plugin-transform-exponentiation-operator";
+ packageName = "babel-plugin-transform-exponentiation-operator";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz";
+ sha1 = "2ab0c9c7f3098fa48907772bb813fe41e8de3a0e";
+ };
+ };
+ "babel-plugin-transform-regenerator-6.26.0" = {
+ name = "babel-plugin-transform-regenerator";
+ packageName = "babel-plugin-transform-regenerator";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz";
+ sha1 = "e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f";
+ };
+ };
+ "babel-plugin-transform-strict-mode-6.24.1" = {
+ name = "babel-plugin-transform-strict-mode";
+ packageName = "babel-plugin-transform-strict-mode";
+ version = "6.24.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz";
+ sha1 = "d5faf7aa578a65bbe591cf5edae04a0c67020758";
+ };
+ };
+ "babel-preset-env-1.7.0" = {
+ name = "babel-preset-env";
+ packageName = "babel-preset-env";
+ version = "1.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz";
+ sha512 = "0g45grnsjds9va8zwb68gpm4ngzmnb351bbvphnmis7bifsh2ny2c00bwah57fn1yv87fs69hriimbysbm15dpsvfbpf3lazdlpdr7l";
+ };
+ };
+ "babel-preset-jest-24.9.0" = {
+ name = "babel-preset-jest";
+ packageName = "babel-preset-jest";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz";
+ sha512 = "01858ghqwnl2b16rmrwwf6w6z3awwvxm22ld8vnfghf6lil3pkxdjjpfn70iib4plm4ynwrfrsiyr0gf3qxjzgi8k9wfk1q26xd8d4b";
+ };
+ };
+ "babel-register-6.26.0" = {
+ name = "babel-register";
+ packageName = "babel-register";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz";
+ sha1 = "6ed021173e2fcb486d7acb45c6009a856f647071";
+ };
+ };
+ "babel-runtime-6.26.0" = {
+ name = "babel-runtime";
+ packageName = "babel-runtime";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz";
+ sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+ };
+ };
+ "babel-template-6.26.0" = {
+ name = "babel-template";
+ packageName = "babel-template";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz";
+ sha1 = "de03e2d16396b069f46dd9fff8521fb1a0e35e02";
+ };
+ };
+ "babel-traverse-6.26.0" = {
+ name = "babel-traverse";
+ packageName = "babel-traverse";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz";
+ sha1 = "46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee";
+ };
+ };
+ "babel-types-6.26.0" = {
+ name = "babel-types";
+ packageName = "babel-types";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz";
+ sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497";
+ };
+ };
+ "babylon-6.18.0" = {
+ name = "babylon";
+ packageName = "babylon";
+ version = "6.18.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz";
+ sha512 = "1qk460vyxfs08g8586jdc02wqzyy2y06596qcn1na9bz7yxra6vgh6177qf345xai0virpaz56bkpgmfcrd8yx5l2vjkn49y66h9xdb";
+ };
+ };
+ "balanced-match-1.0.0" = {
+ name = "balanced-match";
+ packageName = "balanced-match";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ };
+ "base-0.11.2" = {
+ name = "base";
+ packageName = "base";
+ version = "0.11.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
+ sha512 = "11dwi4v72034dqafp0qxsg8h6cpn92vv4vf909a9fybd69yfg6gqn4hhav6x59r1wbi8h1qlgfh9np0340mpljv1hc9v9p02giqygp5";
+ };
+ };
+ "base64-js-1.3.1" = {
+ name = "base64-js";
+ packageName = "base64-js";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz";
+ sha512 = "3mbfy80f2q6z8fwzch81hn7z0wjjsz6lwzz4jwrgr62pyql94mwi21k0l28xba2q1pydf8hf0jzzvr8w34rjmk135pjpmqfcj5kid4q";
+ };
+ };
+ "base64url-3.0.1" = {
+ name = "base64url";
+ packageName = "base64url";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz";
+ sha512 = "3hb3l768r5h0x6z47fw1kn6v50cx9xncmm6yzbhvrvgja0j26fwvhpyh8ppwnf1c2j8g62c912l7cq5h755fpdiafqhg4yxplz59gca";
+ };
+ };
+ "batch-0.6.1" = {
+ name = "batch";
+ packageName = "batch";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz";
+ sha1 = "dc34314f4e679318093fc760272525f94bf25c16";
+ };
+ };
+ "bcrypt-pbkdf-1.0.2" = {
+ name = "bcrypt-pbkdf";
+ packageName = "bcrypt-pbkdf";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ };
+ "bfj-6.1.2" = {
+ name = "bfj";
+ packageName = "bfj";
+ version = "6.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz";
+ sha512 = "0dhyz488lykv8avkn9y738mnlkgkffxwsp5xmh9sffsh1xxdnigsd9a6l01vj0bdzqdmzqq0pbw31qh9x06fll38i7s19z2h9mljq06";
+ };
+ };
+ "big.js-5.2.2" = {
+ name = "big.js";
+ packageName = "big.js";
+ version = "5.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz";
+ sha512 = "2cin34lhbrlligarblnrqnl6f419mkpqd4abjms0y1fk1mxzb6rqvh1sg0zif7bgskirhh6shxnqa444syk4cf87fmndil954xzc8mz";
+ };
+ };
+ "binary-extensions-1.13.1" = {
+ name = "binary-extensions";
+ packageName = "binary-extensions";
+ version = "1.13.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
+ sha512 = "0drjfs8xmgc4rfi8nbbx7adsinnc5m0nc96dw3r3gars8zvg1kzay5a7a5s3islf13wmw7q9v15i7d2gdghs1lp6rh2wl6x80hcqzjj";
+ };
+ };
+ "bindings-1.5.0" = {
+ name = "bindings";
+ packageName = "bindings";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+ sha512 = "24xpa35sym31k1x9hs78jbmsh58yx7ldkn03d4g5qhmvm0bi5cwqvpn2s6r8hkwhks5mhm81gz878gbp5g9b2s7zniy7gm1z6vvysm7";
+ };
+ };
+ "bluebird-3.7.2" = {
+ name = "bluebird";
+ packageName = "bluebird";
+ version = "3.7.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz";
+ sha512 = "2v12rs2wvv94hrlyv0nadxn9x11796k9mk7a8vg0bqsry8m2pbyy9dribalwikh34qkk3rp6gnis849y5z9x5mxzbbdgkfhc3l674sy";
+ };
+ };
+ "bn.js-4.11.8" = {
+ name = "bn.js";
+ packageName = "bn.js";
+ version = "4.11.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz";
+ sha512 = "20bg51v29zygy89w84qb64pkjikxfjdsgjs0ry6pvv8fkwn5kd1izrqn022d838q3rcaq8dmy033g7q8b6960j4f8ipan74y9ydimr2";
+ };
+ };
+ "body-parser-1.19.0" = {
+ name = "body-parser";
+ packageName = "body-parser";
+ version = "1.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
+ sha512 = "2rl5ww96fwgmxdqhqmnknsaafw44vsr2xz7vf7nax8qz9jy8bmmdyawcy6yfny0wm7pi8m2jssakzjc1nin8z8207kv0gclpnrhy4bn";
+ };
+ };
+ "bonjour-3.5.0" = {
+ name = "bonjour";
+ packageName = "bonjour";
+ version = "3.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz";
+ sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
+ };
+ };
+ "brace-expansion-1.1.11" = {
+ name = "brace-expansion";
+ packageName = "brace-expansion";
+ version = "1.1.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
+ };
+ };
+ "braces-2.3.2" = {
+ name = "braces";
+ packageName = "braces";
+ version = "2.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
+ sha512 = "3gxrfbb03jf6nh75n99snhv4a9jni48hfc0gkj5yl1cginpqx3d73dnp8snph1fdkc804iz6zg0aqibifjnscjfbpfziw2g7yg5pmv8";
+ };
+ };
+ "brorand-1.1.0" = {
+ name = "brorand";
+ packageName = "brorand";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz";
+ sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+ };
+ };
+ "browser-process-hrtime-1.0.0" = {
+ name = "browser-process-hrtime";
+ packageName = "browser-process-hrtime";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz";
+ sha512 = "2ijqy6cba233jd04p2sd4a372z807f9rsykxzbf3sn50102h7nv57bid0bldh9is9c4yajgdjwlif9xpnz5xsx06clij6ipq9wm93pn";
+ };
+ };
+ "browser-resolve-1.11.3" = {
+ name = "browser-resolve";
+ packageName = "browser-resolve";
+ version = "1.11.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz";
+ sha512 = "1slq1pnm0b2903am1rl17iczlsl08sq4rckkr5fgkchgzfac13kiibwdk08yy2m62lgir8dmj9d61vil8q0vrm1d2mzw1qn2vaf443v";
+ };
+ };
+ "browserify-aes-1.2.0" = {
+ name = "browserify-aes";
+ packageName = "browserify-aes";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz";
+ sha512 = "22gkxh9wf4hjxkyvj427k9r76xkz9vs63s1drwcggbpv0r7qdclzdvw167s7iq8936zak241cc5ck3bqkp6hy99zlkrbcmfl5g8gc7v";
+ };
+ };
+ "browserify-cipher-1.0.1" = {
+ name = "browserify-cipher";
+ packageName = "browserify-cipher";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
+ sha512 = "3bz6v63l37ndb18236yjdkbxjcvy4x16a8j7vsqxqprvnkcnkq1hg1ffd1c9zk9a3j555ppnpisfyh0x4adlb8lmpwbfa8i837n9y5h";
+ };
+ };
+ "browserify-des-1.0.2" = {
+ name = "browserify-des";
+ packageName = "browserify-des";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz";
+ sha512 = "3j1gv3firnsbjppm47ldxbav9rmh3plq026zn728wvhgf19i4r7kxzyyj7hpibhjv61lcm9i4b869yy90c8hfj7w8rmr17p2zbhwah6";
+ };
+ };
+ "browserify-rsa-4.0.1" = {
+ name = "browserify-rsa";
+ packageName = "browserify-rsa";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+ sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+ };
+ };
+ "browserify-sign-4.0.4" = {
+ name = "browserify-sign";
+ packageName = "browserify-sign";
+ version = "4.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz";
+ sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+ };
+ };
+ "browserify-zlib-0.2.0" = {
+ name = "browserify-zlib";
+ packageName = "browserify-zlib";
+ version = "0.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+ sha512 = "24488d4s6d901hj9d9jdddapmcvmibbdpjq6nv3bpyjx72546fcqa0vripy0ydsrw1jk6bakfzvynh5i9cz0g59hrmn4ph75d3kdpk7";
+ };
+ };
+ "browserslist-3.2.8" = {
+ name = "browserslist";
+ packageName = "browserslist";
+ version = "3.2.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz";
+ sha512 = "00i65frm5jkbv8pzc13i02fzd39q0ahh653zzjzhq35pz6p0idajfjqg1b7mnnlvxymihcpmd1cfhwaj51hnqjmh4alrg8sjrq6hxaq";
+ };
+ };
+ "bs-logger-0.2.6" = {
+ name = "bs-logger";
+ packageName = "bs-logger";
+ version = "0.2.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz";
+ sha512 = "2i44nrigqkrnr7acqqppsmv9y97b55vma5fwg30jdhy9m4pc13rb3bpfxm8r560fp81605chdi27mx8dpy3mji3hwxhfvk6ih507px5";
+ };
+ };
+ "bser-2.1.1" = {
+ name = "bser";
+ packageName = "bser";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz";
+ sha512 = "30jby01rqjgx78xnzyysjav12c0cj8dcwd40wprcfh1jn3768cdkb834q1zyf3wivhifi47xqa7jai7x16m1jv1mq4g40f69ws56341";
+ };
+ };
+ "buffer-4.9.2" = {
+ name = "buffer";
+ packageName = "buffer";
+ version = "4.9.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz";
+ sha512 = "1d85syv6ashl8f3a6h553d185cg3vq6nhjqnc80vr2z3bak0c9xbm1jawfk9zs43xz34yih6h6j3bhb3njkahdqpji12fsc4kfsmby6";
+ };
+ };
+ "buffer-from-1.1.1" = {
+ name = "buffer-from";
+ packageName = "buffer-from";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
+ sha512 = "3c0m16i3fdv3vlq2zz8dakrnhqvs16gvggj485f91fiaa5v0p7pyhamcdw5fggr7djzd8nshmvz4hgbp7714smqxlld2an28q8if1ri";
+ };
+ };
+ "buffer-indexof-1.1.1" = {
+ name = "buffer-indexof";
+ packageName = "buffer-indexof";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz";
+ sha512 = "3bgz1zhq9ng3gypq825f00p9qi9y6z7wvkkf28nhjlyifnb3lk1dkmbya84k0ja79zv8kmmhvalwcnnz92533ip7pnjp3is1w9cxyp3";
+ };
+ };
+ "buffer-xor-1.0.3" = {
+ name = "buffer-xor";
+ packageName = "buffer-xor";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz";
+ sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+ };
+ };
+ "builtin-status-codes-3.0.0" = {
+ name = "builtin-status-codes";
+ packageName = "builtin-status-codes";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+ sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+ };
+ };
+ "byline-5.0.0" = {
+ name = "byline";
+ packageName = "byline";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz";
+ sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
+ };
+ };
+ "bytes-3.0.0" = {
+ name = "bytes";
+ packageName = "bytes";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+ };
+ };
+ "bytes-3.1.0" = {
+ name = "bytes";
+ packageName = "bytes";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
+ sha512 = "073ccjmvxf726gcgzy0pksvi8x8r51dq6hyv69sc75ynrin7anwk9q3sqhbbbjhqjjrmq42s5f5gdbcgj2jxai6ldpyq6y2ny78payd";
+ };
+ };
+ "cacache-10.0.4" = {
+ name = "cacache";
+ packageName = "cacache";
+ version = "10.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz";
+ sha512 = "0f1zwi8bbiia995410m24xljd0ra0vk579q7rk48p7mrq9nbilx3qa2rnp7hjdwnvx28zfad0rfdcwyq3blzkb3rk8b9yl77crp960f";
+ };
+ };
+ "cacache-12.0.3" = {
+ name = "cacache";
+ packageName = "cacache";
+ version = "12.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz";
+ sha512 = "0zsyrn5azk0hm2mhfsa2wwz1g66wis9f7ifxl2sphms1i91z75mfmky892g7c538slj94fgd8nlbjnw5irki49vn5gfl586f5ynd9wj";
+ };
+ };
+ "cache-base-1.0.1" = {
+ name = "cache-base";
+ packageName = "cache-base";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
+ sha512 = "36i943khi87af4gif9r6imjgybqxq9cbd69z2h8p2s2j6scfbhrv7j3n591xl982fmyq29rkwh70a6qdcf3v0piwzfh8n2jf571v9q0";
+ };
+ };
+ "cache-content-type-1.0.1" = {
+ name = "cache-content-type";
+ packageName = "cache-content-type";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz";
+ sha512 = "209nv86cqszi98b5mij2w84m5ixnnwxh211nv0zjgfi46l52fp437hqznnc0ckm5nlgr4labfn16wxa7s7lmnaac4vdwliqb9krzar0";
+ };
+ };
+ "cacheable-request-2.1.4" = {
+ name = "cacheable-request";
+ packageName = "cacheable-request";
+ version = "2.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz";
+ sha1 = "0d808801b6342ad33c91df9d0b44dc09b91e5c3d";
+ };
+ };
+ "callsites-3.1.0" = {
+ name = "callsites";
+ packageName = "callsites";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
+ sha512 = "1ljrfqkxsjdvl02qlx1xdsw8csg4az6dkwvlk0zmcz7x3b6q3kbggd8i3ai8jcjicabdsqkhvpjy0898xcdf21m42ajyrggql167h1z";
+ };
+ };
+ "camelcase-1.2.1" = {
+ name = "camelcase";
+ packageName = "camelcase";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
+ sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
+ };
+ };
+ "camelcase-4.1.0" = {
+ name = "camelcase";
+ packageName = "camelcase";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz";
+ sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+ };
+ };
+ "camelcase-5.3.1" = {
+ name = "camelcase";
+ packageName = "camelcase";
+ version = "5.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+ sha512 = "0kg17fpj4c7akmpa9x0a3fi5glrc3y5k3ppjcpb3pd02ylg3fnzfdvz0pixd223crbs5980sjaxsk9q8kcqxm5d9cb7rlkv3m614vrg";
+ };
+ };
+ "caniuse-lite-1.0.30001035" = {
+ name = "caniuse-lite";
+ packageName = "caniuse-lite";
+ version = "1.0.30001035";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz";
+ sha512 = "0nv07k5fhwwhak7xbp0kf2z0v2bpjicyrs11c9d14cipzzgcx6has5910iwc7yhh3mja5h52d93x3hrmfam66yk27agdqw09f172mhb";
+ };
+ };
+ "capture-exit-2.0.0" = {
+ name = "capture-exit";
+ packageName = "capture-exit";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz";
+ sha512 = "3m6md2j1rsn26hijf0yfbbfnx6w2jrrqhr2b2xwjc9lyzvypidyz5krczc9wb04z1vq4mgb759ljwn7iggiiigijzhp38lk162zy91y";
+ };
+ };
+ "caseless-0.12.0" = {
+ name = "caseless";
+ packageName = "caseless";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ };
+ "center-align-0.1.3" = {
+ name = "center-align";
+ packageName = "center-align";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz";
+ sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
+ };
+ };
+ "chalk-1.1.3" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ };
+ "chalk-2.4.2" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "2.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+ sha512 = "2wr55z22i274wadq2cvpxga28a8igq9whc4m1q06sz5sn2hc4amradd5vd02wm92vyfg2qrb0bysd5drv7mfmlb2wqdf939v5zvxn1j";
+ };
+ };
+ "character-parser-2.2.0" = {
+ name = "character-parser";
+ packageName = "character-parser";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz";
+ sha1 = "c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0";
+ };
+ };
+ "check-types-8.0.3" = {
+ name = "check-types";
+ packageName = "check-types";
+ version = "8.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz";
+ sha512 = "30ql79azwkvqg2pfwvc0zp51fbwpijfbxdrnw5v5vsd3j2k6bzi5d78p78b877fzrji6clkw284pdakba5jg7dvmjwnx60lg1k8m5v2";
+ };
+ };
+ "chokidar-2.1.8" = {
+ name = "chokidar";
+ packageName = "chokidar";
+ version = "2.1.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
+ sha512 = "21d2yf3364v025ivy6ak1bh61qvvq9llryh8c1rhvrif1kalx0j996x8m0qs717cgl97q5c40awyv8gi8hbmpgfpl6zvkff6xmm8rk6";
+ };
+ };
+ "chownr-1.1.4" = {
+ name = "chownr";
+ packageName = "chownr";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
+ sha512 = "1b03acmav1awkygrda5h64pn8msd6wda119q553hik728i1j72bfqyq7yzn1x7nmw28hvg9mcyh7krsj8vwsq3karnn55mj6smip7cc";
+ };
+ };
+ "chrome-trace-event-1.0.2" = {
+ name = "chrome-trace-event";
+ packageName = "chrome-trace-event";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
+ sha512 = "06mh145f12ppkxn7xdzrvh7rrjg9c770rqai08m8r5i31br1ihc96i63dyn0c4arfl1hl0za33kzy5i09x4agz77c11xv7hb33z7vzm";
+ };
+ };
+ "ci-info-2.0.0" = {
+ name = "ci-info";
+ packageName = "ci-info";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz";
+ sha512 = "04yh5kqsx5akwc3rlcwqrvz3lrb8mak15ysxan17hw9pp00kmf20m8d9dpbnkq612wc1wwvjzcci1wgivd8cbak5j7dzl6rv89bplp6";
+ };
+ };
+ "cipher-base-1.0.4" = {
+ name = "cipher-base";
+ packageName = "cipher-base";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz";
+ sha512 = "3cm9kdc1sv7pakzlhrc1pazdvg9lk4hv31lximwbcrgmwfzg6imxrndszgx9yzlizknfh2b73cr7b5mfcv50bldpyq6jr5s4zknsj1a";
+ };
+ };
+ "class-utils-0.3.6" = {
+ name = "class-utils";
+ packageName = "class-utils";
+ version = "0.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz";
+ sha512 = "1xcqwmfmsbrm2ck76brwiqjmcza655khgh5szh6wngk357i37sgwsga1pbarwzaz9hvzkriqhq6j0z5mv0pmz61cf9wxvk3y5mlzs58";
+ };
+ };
+ "clean-css-4.2.3" = {
+ name = "clean-css";
+ packageName = "clean-css";
+ version = "4.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz";
+ sha512 = "0ad50l577m99sgpcdd49zspq8h9n9i3hhngapg9y5q76s7zwdz3hmaw2kc2jg30lk4z3wlyp9kgiyg71dvg0fg89g1xyr3qvq61dhsm";
+ };
+ };
+ "clean-stack-1.3.0" = {
+ name = "clean-stack";
+ packageName = "clean-stack";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz";
+ sha1 = "9e821501ae979986c46b1d66d2d432db2fd4ae31";
+ };
+ };
+ "cli-cursor-2.1.0" = {
+ name = "cli-cursor";
+ packageName = "cli-cursor";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz";
+ sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+ };
+ };
+ "cli-spinners-2.2.0" = {
+ name = "cli-spinners";
+ packageName = "cli-spinners";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz";
+ sha512 = "0lj50waj40l4a51whihhvrjb838jqjkp1znn7dqgw6bsb1z7qwfyaxfggwmy3122rvnz4gxa8fn7qmp94zk03q8265khqikmiy3f1dn";
+ };
+ };
+ "cliui-2.1.0" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz";
+ sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
+ };
+ };
+ "cliui-4.1.0" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz";
+ sha512 = "26knyxdavl3y7kq82vfa094ym3n05vy2h2j5srb9fhhy8l43l0kwlasah5i78jks77zqgc373hbf96xcxv6am042gpbw35x452vwlg0";
+ };
+ };
+ "cliui-5.0.0" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
+ sha512 = "1fg1afsij2xwc4gpqbyhrp3s7q19w7bmii0ghmdv6cdx6giz3v0yqn25i3g7fw2lpi388jpvaf6nf9z2c7xp7w7psrww7569548d1rx";
+ };
+ };
+ "clone-1.0.4" = {
+ name = "clone";
+ packageName = "clone";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz";
+ sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
+ };
+ };
+ "clone-response-1.0.2" = {
+ name = "clone-response";
+ packageName = "clone-response";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz";
+ sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
+ };
+ };
+ "co-4.6.0" = {
+ name = "co";
+ packageName = "co";
+ version = "4.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz";
+ sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+ };
+ };
+ "co-body-5.2.0" = {
+ name = "co-body";
+ packageName = "co-body";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz";
+ sha512 = "36nr6zz2qri7lg37azg3n5lq5cwgfi3pf7j35l908qlc0shbbi353k47ama8q7p8c4gb9czdjpr7xy05ar7pnqwdcr1hlpan91wnzxi";
+ };
+ };
+ "code-point-at-1.1.0" = {
+ name = "code-point-at";
+ packageName = "code-point-at";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ };
+ "collection-visit-1.0.0" = {
+ name = "collection-visit";
+ packageName = "collection-visit";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz";
+ sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+ };
+ };
+ "color-convert-1.9.3" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "1.9.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+ sha512 = "0d5pmdh1dh0qbpjrzdczwqkh0jwf8gxhq71mknwlxqz80h1q6kdrpghq4qfp0y4v650ia2jdihmzpb2n8hg00h72lnx05dgvysi9w21";
+ };
+ };
+ "color-name-1.1.3" = {
+ name = "color-name";
+ packageName = "color-name";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ };
+ "combined-stream-1.0.8" = {
+ name = "combined-stream";
+ packageName = "combined-stream";
+ version = "1.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+ sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
+ };
+ };
+ "command-line-args-5.1.1" = {
+ name = "command-line-args";
+ packageName = "command-line-args";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz";
+ sha512 = "1dffdcll80c4cs7d9026187ild861bw26qph26frx8hx2dv23wwsw5g68kykqs8g2da57f62s56psxplx3bxcsprd85v5kbr4dxxgw4";
+ };
+ };
+ "commander-2.20.3" = {
+ name = "commander";
+ packageName = "commander";
+ version = "2.20.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
+ sha512 = "1qqrwy7z476gqa94kjjyyzyi3x49k28ji7znbc65plrp67yzmpa2yyslh6bl965yl4jqb2fwb2ljzhgcvv2xxj8ab86n5rgryc6958s";
+ };
+ };
+ "commondir-1.0.1" = {
+ name = "commondir";
+ packageName = "commondir";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz";
+ sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+ };
+ };
+ "component-emitter-1.3.0" = {
+ name = "component-emitter";
+ packageName = "component-emitter";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz";
+ sha512 = "136ravx3m3gf0ca84sf21hj47wmpqyjzmx6yvhj0b14mga7xcxfcgdc7yj9z8klcbr4yfqzy88fksmf233qx68a9ysw7yh1lixyrpa5";
+ };
+ };
+ "compressible-2.0.18" = {
+ name = "compressible";
+ packageName = "compressible";
+ version = "2.0.18";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz";
+ sha512 = "13341lfj8d36v6gha16xmv92w4875z8irqdbns3jxlkc3a63aswys5sajq97y1sd42l08inw1l0s51r4l9lv20w6gy14nsxzvnfnp80";
+ };
+ };
+ "compression-1.7.4" = {
+ name = "compression";
+ packageName = "compression";
+ version = "1.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz";
+ sha512 = "24kqcbwm455isy2yiyfrdrsh011qi09pbgylw1jws2yfmiwmwp2j8pmax52c41z3x1n84v1j5va29dnxwygkl4pw599b9gx6c7qi94d";
+ };
+ };
+ "concat-map-0.0.1" = {
+ name = "concat-map";
+ packageName = "concat-map";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ };
+ "concat-stream-1.6.2" = {
+ name = "concat-stream";
+ packageName = "concat-stream";
+ version = "1.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
+ sha512 = "05nnf80j9ls12y3cw2dfnc6rmand3ya5sx9cqn9dgg19ljzdnyfjjv8ig79xi73gr2y4rkfzn9wjip2zzwp5n2d49njd3ki2a1c3cfv";
+ };
+ };
+ "condense-newlines-0.2.1" = {
+ name = "condense-newlines";
+ packageName = "condense-newlines";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz";
+ sha1 = "3de985553139475d32502c83b02f60684d24c55f";
+ };
+ };
+ "config-chain-1.1.12" = {
+ name = "config-chain";
+ packageName = "config-chain";
+ version = "1.1.12";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz";
+ sha512 = "2hg7rni4gx8l765i8qzkp9dv69c8r06i8rxxkkkrsklbd8iz6ingxnp10r4fqqrm9jxy3gp8yp0lzpybwdf27kq49abkyxwrchqwmvb";
+ };
+ };
+ "connect-history-api-fallback-1.6.0" = {
+ name = "connect-history-api-fallback";
+ packageName = "connect-history-api-fallback";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
+ sha512 = "0p9s5aqb76hamj9z64zd53ndh5r1jv76iw97hwrylmwwjprjn1246hrr5nvp5vs1xwwipq6dv7zj4qwywbn3n4cxc3llfdzvbvh37kv";
+ };
+ };
+ "console-browserify-1.2.0" = {
+ name = "console-browserify";
+ packageName = "console-browserify";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz";
+ sha512 = "168x7bp4xr522yw92himv9xv14q336ps1kkg79qcmarg3q4yzpd52pa8x8zgq11b6996f8053799k6365437si3pk85w5z4y8xiijb4";
+ };
+ };
+ "consolidate-0.15.1" = {
+ name = "consolidate";
+ packageName = "consolidate";
+ version = "0.15.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz";
+ sha512 = "0rx5m8ygvw7y8rfs0fgpl6ppwk6gm7299qsnm005x88ws9yzb9fcj143f2irjsb94k8x9kdw7pap819dgg3w6x0jayhq9hcpfg3lvhd";
+ };
+ };
+ "constantinople-3.1.2" = {
+ name = "constantinople";
+ packageName = "constantinople";
+ version = "3.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz";
+ sha512 = "2xnhrmlbkfpcvckxxrl0hjp6qhhqv1p7c6pwxgqp1g0sa5q5cc514xn48g9x8kqj7g1imzciwgb2msbhvhn0w0v92mb7105l43drqy9";
+ };
+ };
+ "constants-browserify-1.0.0" = {
+ name = "constants-browserify";
+ packageName = "constants-browserify";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz";
+ sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+ };
+ };
+ "content-disposition-0.5.3" = {
+ name = "content-disposition";
+ packageName = "content-disposition";
+ version = "0.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
+ sha512 = "3976ggkw1lp21a6m3s19blb9a74kq7a0spw47v0m3vvi1k5wiamrsn20slcr9byx80x2la2sppkwjp7x10gc58142dl7412pvpv84qk";
+ };
+ };
+ "content-type-1.0.4" = {
+ name = "content-type";
+ packageName = "content-type";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+ sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
+ };
+ };
+ "convert-source-map-1.7.0" = {
+ name = "convert-source-map";
+ packageName = "convert-source-map";
+ version = "1.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
+ sha512 = "2hgf7brri4yaflx3y24d2cvznsk0km17mq8mp7sb2hhskf45hcamlgf8vzzbimw36lw128bjbf442p2rx96d1bhn9sk044p69gn8lp0";
+ };
+ };
+ "cookie-0.4.0" = {
+ name = "cookie";
+ packageName = "cookie";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
+ sha512 = "1g7bscknfpc6zgznz77hvll6cy5m9jv7zg9nkpdqzmgi0vhv75kh8iyqf6rdslkml47l3jihsz7hy0i8x5n6bfx9ba0kvvrp9y7qypq";
+ };
+ };
+ "cookie-signature-1.0.6" = {
+ name = "cookie-signature";
+ packageName = "cookie-signature";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ };
+ "cookies-0.8.0" = {
+ name = "cookies";
+ packageName = "cookies";
+ version = "0.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz";
+ sha512 = "2iqv33i76hmss097a18gkv8v1kawzs5zkgkri3nnrql9160y2vpkasv8dqj7l4c9hh6y6ki6nv072y13jrxzfcgp3kvay8zjh1fr8zi";
+ };
+ };
+ "copy-concurrently-1.0.5" = {
+ name = "copy-concurrently";
+ packageName = "copy-concurrently";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+ sha512 = "3c1ggiqqnjgqlwdnimx94gm176c8rjsrih5qw2lbm642l8x7grx07v065k4j89c1p0adkm7v6sz11drb6j6sp51np2m1cazvycnhrvz";
+ };
+ };
+ "copy-descriptor-0.1.1" = {
+ name = "copy-descriptor";
+ packageName = "copy-descriptor";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+ sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+ };
+ };
+ "copy-webpack-plugin-4.6.0" = {
+ name = "copy-webpack-plugin";
+ packageName = "copy-webpack-plugin";
+ version = "4.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz";
+ sha512 = "1j7l2xm5blz3ylmq1c0mwlkfbx9faqm09zid0czbyyfr05236pkgvzjzfr7syqb95mgzkzxdag697p4wwsxpcr7my88admlbw491r33";
+ };
+ };
+ "core-js-2.6.11" = {
+ name = "core-js";
+ packageName = "core-js";
+ version = "2.6.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz";
+ sha512 = "1db6yjq48a8kkrfrxd0miblcf7nk2b4afgpr8dfgjl3jvz3xclvrqmz590hx2h59jh79lgl35r101lw5jqs46qybizdbpgzljjyf277";
+ };
+ };
+ "core-util-is-1.0.2" = {
+ name = "core-util-is";
+ packageName = "core-util-is";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ };
+ "create-ecdh-4.0.3" = {
+ name = "create-ecdh";
+ packageName = "create-ecdh";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz";
+ sha512 = "1mhn55gf43qsdrp2klyyyxqjsd5mw9l6s51vsfj7wl44pq7ymfw68r8wkd4yd8dd6adg3k6q18sddxfjljr0gbk56lh3cqfyd00gc8r";
+ };
+ };
+ "create-hash-1.2.0" = {
+ name = "create-hash";
+ packageName = "create-hash";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz";
+ sha512 = "055xaldi3hy1bjxhvznh3470j1kq2xk827mxal79bgqik3lblax6s4inxqby27ymgcghl2hn7wnx9fnacmyq3q93hk6y327cc41nkfg";
+ };
+ };
+ "create-hmac-1.1.7" = {
+ name = "create-hmac";
+ packageName = "create-hmac";
+ version = "1.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz";
+ sha512 = "0p2jhk94k3as67lhrr1jyljkr0y65snxjzqnix0nifnfcanhilccrzkc47gwlg5wy0m8l1gv12lj78ivgmw5m1ww4f8iylr52bbv49h";
+ };
+ };
+ "cron-1.8.2" = {
+ name = "cron";
+ packageName = "cron";
+ version = "1.8.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz";
+ sha512 = "35a9lj0cl50q669jhxl1f68myxinkmbdbl2yn4z3d93swlckjjiganjcn8iphg2867jil7ahkpapx5md94lw5102ny46a5i5virqk8s";
+ };
+ };
+ "cross-spawn-6.0.5" = {
+ name = "cross-spawn";
+ packageName = "cross-spawn";
+ version = "6.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
+ sha512 = "1csj16gwq9riz0pm73dlxhbnsl1r3ldc5v0aincwj71ambi6xf3kc1kgsbwaakd8rj16k4mrli2syrjd57g6cr81zdzivdd2jn4ndbr";
+ };
+ };
+ "crypto-browserify-3.12.0" = {
+ name = "crypto-browserify";
+ packageName = "crypto-browserify";
+ version = "3.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+ sha512 = "1d3mrhqlay037azmjp2ml5a8yyls9ijdhilv6f0znz0ajgfm972yr9bhm78wqi09p4crc3shgflk50jc63zijsqv777ikkyi2j2qgkz";
+ };
+ };
+ "cssom-0.3.8" = {
+ name = "cssom";
+ packageName = "cssom";
+ version = "0.3.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz";
+ sha512 = "1i0h2rg4hb1j2430jc46n2zjc5gqg26brpl2ypjank206vjwdbk4n1svfk7nrbdsx7czd1a025a9h6ssh9qhscw4r7vi0fynwflcjvg";
+ };
+ };
+ "cssstyle-1.4.0" = {
+ name = "cssstyle";
+ packageName = "cssstyle";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz";
+ sha512 = "1460djxnz2dn84cx1wln5l004dy95pgik0h5bij3f7gw1i45p3mnsylwdps4r37gckfzqv5zvyh3gx95dr0ca01zmx8qpvqhrjwn6hq";
+ };
+ };
+ "cyclist-1.0.1" = {
+ name = "cyclist";
+ packageName = "cyclist";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz";
+ sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9";
+ };
+ };
+ "d-1.0.1" = {
+ name = "d";
+ packageName = "d";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
+ sha512 = "0abwyrfpd8rm9bwzgcaxcwd92d07c31cxw1fgs7h51ri2igw4vib1a5x69cg14wqisjad1d0fhglca6218qm9dngr17yhwv8f295bcv";
+ };
+ };
+ "dashdash-1.14.1" = {
+ name = "dashdash";
+ packageName = "dashdash";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ };
+ "data-urls-1.1.0" = {
+ name = "data-urls";
+ packageName = "data-urls";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz";
+ sha512 = "1wvgs0ccidbr67x52w8wx58knvvy7ir6j05z1sa3f4rdnpr3dvdlf6rwapfb09z0mi9w129llzvhxa0lj8jy84zpdwzxm0yvcirhdb1";
+ };
+ };
+ "debug-2.6.9" = {
+ name = "debug";
+ packageName = "debug";
+ version = "2.6.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+ sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
+ };
+ };
+ "debug-3.1.0" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
+ sha512 = "3g1hqsahr1ks2kpvdxrwzr57fj90nnr0hvwwrw8yyyzcv3i11sym8zwibxx67bl1mln0acddrzpkkdjjxnc6n2cm9fazmgzzsl1fzrr";
+ };
+ };
+ "debug-3.2.6" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.2.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
+ sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
+ };
+ };
+ "debug-4.1.1" = {
+ name = "debug";
+ packageName = "debug";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
+ sha512 = "1kmf9j5pka2rsljg5x6shniwmgs9444ksgdn0d3fjmis7yghxxn2zj526s36ip8rmpfni9zpj8z74w7irax32a67j59xw38wk6hi055";
+ };
+ };
+ "decamelize-1.2.0" = {
+ name = "decamelize";
+ packageName = "decamelize";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ };
+ "decode-uri-component-0.2.0" = {
+ name = "decode-uri-component";
+ packageName = "decode-uri-component";
+ version = "0.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+ sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+ };
+ };
+ "decompress-response-3.3.0" = {
+ name = "decompress-response";
+ packageName = "decompress-response";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz";
+ sha1 = "80a4dd323748384bfa248083622aedec982adff3";
+ };
+ };
+ "deep-equal-1.0.1" = {
+ name = "deep-equal";
+ packageName = "deep-equal";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz";
+ sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
+ };
+ };
+ "deep-is-0.1.3" = {
+ name = "deep-is";
+ packageName = "deep-is";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+ sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+ };
+ };
+ "default-gateway-4.2.0" = {
+ name = "default-gateway";
+ packageName = "default-gateway";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz";
+ sha512 = "2067xswfnhdrq76l5wqibx50y8r46q0sdbkax2nxq6gq0ljjrrmmq95k99vnkgcz5xc7r1hhv0w7bw978krjxvdmnawam3ma2nhraw7";
+ };
+ };
+ "defaults-1.0.3" = {
+ name = "defaults";
+ packageName = "defaults";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz";
+ sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
+ };
+ };
+ "define-properties-1.1.3" = {
+ name = "define-properties";
+ packageName = "define-properties";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
+ sha512 = "1fsa8nx7qgi958fykj36cndsf8ygj3132if6k4a36mkf11bl2j2gn7dn2nz07mfsygkx0415yxrjpzx8j369z1767fvr57nm1h9zjnw";
+ };
+ };
+ "define-property-0.2.5" = {
+ name = "define-property";
+ packageName = "define-property";
+ version = "0.2.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz";
+ sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+ };
+ };
+ "define-property-1.0.0" = {
+ name = "define-property";
+ packageName = "define-property";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz";
+ sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+ };
+ };
+ "define-property-2.0.2" = {
+ name = "define-property";
+ packageName = "define-property";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
+ sha512 = "1hrk3pzr4hyhfnrjy1msrlj2zh769x4l35q9fq0a2cy2glq3h1iwjkpmvz39y9idwy71h9hd98lydi92485bzkff1dzm70wbr8vc0lg";
+ };
+ };
+ "del-4.1.1" = {
+ name = "del";
+ packageName = "del";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/del/-/del-4.1.1.tgz";
+ sha512 = "1fkk8r4abk9009whl0yqapv13rjzj6mr01ghkxpbjkrvr6a6n6hg492mdr72wf3dc13zp3dmzq6z4bzm31h59q7q4anjgrf988sw0a3";
+ };
+ };
+ "delayed-stream-1.0.0" = {
+ name = "delayed-stream";
+ packageName = "delayed-stream";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ };
+ "delegates-1.0.0" = {
+ name = "delegates";
+ packageName = "delegates";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ };
+ "depd-1.1.2" = {
+ name = "depd";
+ packageName = "depd";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ };
+ "depd-2.0.0" = {
+ name = "depd";
+ packageName = "depd";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
+ sha512 = "2phijq20j255bs4jjs11j5pa0x7y1084k6ch9xa8wgzp71zzgbpm23wyzbcs0mszvj971l9i5aav40sddm000484sl3ij4xzvlcgfc3";
+ };
+ };
+ "des.js-1.0.1" = {
+ name = "des.js";
+ packageName = "des.js";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz";
+ sha512 = "085ljc5q2yk3jabd61p91n821q4prv13qalbfni9ybcb900b4mmcdnndi5b5prfs9wybp13asd13shlxgrbsgvyfx7nbgvby6jkhhj3";
+ };
+ };
+ "destroy-1.0.4" = {
+ name = "destroy";
+ packageName = "destroy";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ };
+ "detect-file-1.0.0" = {
+ name = "detect-file";
+ packageName = "detect-file";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz";
+ sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
+ };
+ };
+ "detect-indent-4.0.0" = {
+ name = "detect-indent";
+ packageName = "detect-indent";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz";
+ sha1 = "f76d064352cdf43a1cb6ce619c4ee3a9475de208";
+ };
+ };
+ "detect-newline-2.1.0" = {
+ name = "detect-newline";
+ packageName = "detect-newline";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz";
+ sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
+ };
+ };
+ "detect-node-2.0.4" = {
+ name = "detect-node";
+ packageName = "detect-node";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz";
+ sha512 = "0mncqs8asq6722qr5jcv5bwi1653nd4s61s9mb9iyk3jkv83w9iynwjfd6ynp1jwsmr7qaspk6yd1x8c05qi9pxikikwfkbnajd3334";
+ };
+ };
+ "diff-sequences-24.9.0" = {
+ name = "diff-sequences";
+ packageName = "diff-sequences";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz";
+ sha512 = "1xvcq6cya1qr0slk88xxgibba4win89nmmy6945vzi0cqs3f4h72inwbk7wb05v55c23sx69grj872yyk5mnswd2qz33jangf9rcghf";
+ };
+ };
+ "diffie-hellman-5.0.3" = {
+ name = "diffie-hellman";
+ packageName = "diffie-hellman";
+ version = "5.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
+ sha512 = "37186rz3862gn294acnwnm59jwm62x1rz9ca0y5anvmj0a7abs4rhw974qp1j684qpd4rxb8c2kagv21hapxfddr2q72zvyv7ya19lj";
+ };
+ };
+ "dir-glob-2.2.2" = {
+ name = "dir-glob";
+ packageName = "dir-glob";
+ version = "2.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz";
+ sha512 = "2rlgbmwy8bl5xqrwifdqhggx21ac4c8k6vgq7ia2h6cxmaiprrlm1p99cn4hb4dmax9wwk4vx96bc50b7ngxgx74fvqbk0njj5w3lkz";
+ };
+ };
+ "dns-equal-1.0.0" = {
+ name = "dns-equal";
+ packageName = "dns-equal";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz";
+ sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
+ };
+ };
+ "dns-packet-1.3.1" = {
+ name = "dns-packet";
+ packageName = "dns-packet";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz";
+ sha512 = "19g682cvkba33mwrism28hibd2nv9xd16k5bj807jx3ih1cc7ff9dn8chmfjnqgglzl6lq3m3jarxng9vbarccgchd0aq118d15yk6i";
+ };
+ };
+ "dns-txt-2.0.2" = {
+ name = "dns-txt";
+ packageName = "dns-txt";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz";
+ sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
+ };
+ };
+ "doctypes-1.1.0" = {
+ name = "doctypes";
+ packageName = "doctypes";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz";
+ sha1 = "ea80b106a87538774e8a3a4a5afe293de489e0a9";
+ };
+ };
+ "domain-browser-1.2.0" = {
+ name = "domain-browser";
+ packageName = "domain-browser";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz";
+ sha512 = "1fcxv8rzfhs99afvhji7bs5ppxwn9mw040ixdgvkm6iabz72q61arly2lr57086rjn4g2vkb3rkih1cyc7z35kzv1jjciwyrs4g4y4f";
+ };
+ };
+ "domexception-1.0.1" = {
+ name = "domexception";
+ packageName = "domexception";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz";
+ sha512 = "2x8mi3fy0wghky9i6bmz1d26yz1bbd4zmaqyc45fhrqhw8kdg6a4k4zz6jn9bisnxr8bff7fypz0vncby6sw8d2ld6r627v94ra1a5d";
+ };
+ };
+ "duplexer-0.1.1" = {
+ name = "duplexer";
+ packageName = "duplexer";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz";
+ sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+ };
+ };
+ "duplexer3-0.1.4" = {
+ name = "duplexer3";
+ packageName = "duplexer3";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz";
+ sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+ };
+ };
+ "duplexify-3.7.1" = {
+ name = "duplexify";
+ packageName = "duplexify";
+ version = "3.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz";
+ sha512 = "3k23dn0v8n7r3ds3v137vmw1vg3ngd6fw3bb4hasa6bm40qasvdaidjwx0wb4gakp8xvdrsckjn0wkmmi90z8a2sswj8cxhznxgrg6k";
+ };
+ };
+ "ecc-jsbn-0.1.2" = {
+ name = "ecc-jsbn";
+ packageName = "ecc-jsbn";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ };
+ "editorconfig-0.15.3" = {
+ name = "editorconfig";
+ packageName = "editorconfig";
+ version = "0.15.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz";
+ sha512 = "3ggssjvjbrq0q12nr33bfbd8qdmmyapkiivxczlp66gi9y14s7dhaqxdmvbmg6lkzzli17w6v3rx3fyb0d82zl18ysgmskxbhq0ip1k";
+ };
+ };
+ "ee-first-1.1.1" = {
+ name = "ee-first";
+ packageName = "ee-first";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ };
+ "ejs-2.7.4" = {
+ name = "ejs";
+ packageName = "ejs";
+ version = "2.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz";
+ sha512 = "2ad39acbba96hqbgf714pacri515xjn8jd43bkfb1wwp04vflpjj0qhnnmsq074g7d1kycyj1bmf620s43qb3x74hrfb4ky3v5axygf";
+ };
+ };
+ "electron-to-chromium-1.3.376" = {
+ name = "electron-to-chromium";
+ packageName = "electron-to-chromium";
+ version = "1.3.376";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz";
+ sha512 = "27ngh0x7siic0nydq0xics24lnqfqjb2d6ja2fdfp1z979lisiy52m8cbbvrxp2ksr3nlk4s4yg5v4rll49wxjzry63gczrbihwzzvj";
+ };
+ };
+ "elliptic-6.5.2" = {
+ name = "elliptic";
+ packageName = "elliptic";
+ version = "6.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz";
+ sha512 = "33kzl02iwbq3pl33ihcdq9nm48yzhfj96183zzra06hp3z6bacz3d99pl74jziwygys4npxbxwnvszz12wl8lpkjw8b4r9ki797p33z";
+ };
+ };
+ "emoji-regex-7.0.3" = {
+ name = "emoji-regex";
+ packageName = "emoji-regex";
+ version = "7.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+ sha512 = "2s4i22ccvwa2l4xwl9yz6mkyn2kpf58hp1nqiwmmgqlpyr57345i3ll0l4656ryik6a6wz1lgk4vbl6y0dwj5hx2kcbpv0h8924n00b";
+ };
+ };
+ "emojis-list-2.1.0" = {
+ name = "emojis-list";
+ packageName = "emojis-list";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz";
+ sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
+ };
+ };
+ "emojis-list-3.0.0" = {
+ name = "emojis-list";
+ packageName = "emojis-list";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz";
+ sha512 = "3cib7aw0206bfcb324aqh3fsda46mjxghd08gaasxagv6jfc74r2jvcv78rb8h10m879w42nbrn3q8rjifg9s5rclbpr2hzq7bqqk7y";
+ };
+ };
+ "encodeurl-1.0.2" = {
+ name = "encodeurl";
+ packageName = "encodeurl";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ };
+ "end-of-stream-1.4.4" = {
+ name = "end-of-stream";
+ packageName = "end-of-stream";
+ version = "1.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+ sha512 = "3jyw0a0c7m1yxglwk7i5jh8zb3vvx7f9l4frbskxkgf9cyf4i8ww26p8bimnsryrh1dx7lwrxq64vbpjwfcv1svd4lg8m07fa53bv7s";
+ };
+ };
+ "enhanced-resolve-4.1.0" = {
+ name = "enhanced-resolve";
+ packageName = "enhanced-resolve";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
+ sha512 = "2g5bp8yrd5ixqfg81db9ifalcqdyjxmrc4va86ljng9vnhkk2v0gxc7w28q00wnlp0j6sjilzj7dh4mkj2z49z2jkjwzjgd4j9yzzhp";
+ };
+ };
+ "enhanced-resolve-4.1.1" = {
+ name = "enhanced-resolve";
+ packageName = "enhanced-resolve";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
+ sha512 = "2w4dww5r1bxbycbb3kq0pdl9v56942678c53j9rwikxf05xd2n5h0b3a6914wxcmzr9wx4m0w56adp3qp21rk1wzkhbybxb9z67djpp";
+ };
+ };
+ "errno-0.1.7" = {
+ name = "errno";
+ packageName = "errno";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz";
+ sha512 = "2bdzcjwgdkg5yrvlw6my57pn77k4j7a2pzppwqrq4va9f5bd4b5mzbhwpklhsy1jl7w9sjvnfs30h42nhz2dbdfhagnh8dk6l2d3yii";
+ };
+ };
+ "error-ex-1.3.2" = {
+ name = "error-ex";
+ packageName = "error-ex";
+ version = "1.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
+ sha512 = "3igrl2amb9mpa9d2z6qghz3ljqd7amjla8ahfs5fdgl0w52pw6gz3y32q5fk229yvfyg3x9kpfygadcm2w0lv4hv4nj25cyd8v4glgd";
+ };
+ };
+ "error-inject-1.0.0" = {
+ name = "error-inject";
+ packageName = "error-inject";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz";
+ sha1 = "e2b3d91b54aed672f309d950d154850fa11d4f37";
+ };
+ };
+ "es-abstract-1.17.4" = {
+ name = "es-abstract";
+ packageName = "es-abstract";
+ version = "1.17.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz";
+ sha512 = "24sx605c7x5di53nzw0x2brrfvy4nw76ws0gsd1hskdifrcxafn8fwk0n11si002zxhfs9c8nba1acaj2zkrqrgp8k5vw0vz2dyxv81";
+ };
+ };
+ "es-to-primitive-1.2.1" = {
+ name = "es-to-primitive";
+ packageName = "es-to-primitive";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+ sha512 = "2y6j97j2f10gc52kw7qin10gm24m5hz1qq7ph6jf89y8a9i8vb268f2q0z78qjmngc765y9v0f1ldc5qb10b638yqlabda90sbaa8s0";
+ };
+ };
+ "es5-ext-0.10.53" = {
+ name = "es5-ext";
+ packageName = "es5-ext";
+ version = "0.10.53";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz";
+ sha512 = "3wl9jgj276xsjcf4gvc9w7gg403rg02s1i24r7scvhwg0mmgbqwsszjk94xnzfd3wj4y2khk6wbz8dm9j6lvlcwrbbd324d1svr5kay";
+ };
+ };
+ "es6-iterator-2.0.3" = {
+ name = "es6-iterator";
+ packageName = "es6-iterator";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz";
+ sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+ };
+ };
+ "es6-promise-4.2.8" = {
+ name = "es6-promise";
+ packageName = "es6-promise";
+ version = "4.2.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz";
+ sha512 = "3zz892nih7z36hb24sqg3wgzgzp81zjq7h8bbrpdh80yxp46r9rk2ddhr65zqg9ygi4s8ph9fs3in3gkinvqwfhqlpy5iasjz3wd40w";
+ };
+ };
+ "es6-symbol-3.1.3" = {
+ name = "es6-symbol";
+ packageName = "es6-symbol";
+ version = "3.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz";
+ sha512 = "0sgbv9jpq91di424qar8xiw36az4msxqhgpk1ixq5hv4wdbgaxs45q8i671icpg085bh1j7hj93iyszp7x9fmhld30jj3kff6gri7il";
+ };
+ };
+ "escape-html-1.0.3" = {
+ name = "escape-html";
+ packageName = "escape-html";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ };
+ "escape-string-regexp-1.0.5" = {
+ name = "escape-string-regexp";
+ packageName = "escape-string-regexp";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ };
+ "escodegen-1.14.1" = {
+ name = "escodegen";
+ packageName = "escodegen";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz";
+ sha512 = "14kvh9zgpdp6ci9l9nqwwlhjz8gidkhgsv1yj8i7jbh087fchwwn62440spqk09f3qz13jrdyqdgfhf2yddkm7p6hgx4jbjqhspnsq6";
+ };
+ };
+ "eslint-scope-4.0.3" = {
+ name = "eslint-scope";
+ packageName = "eslint-scope";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz";
+ sha512 = "2p4myi99y1nk5dy7fvmbspjdynigw3dzkhcm7zaiwfyw2wp6j61y0i8mba18ksv9qi2s1wp6w6xhn7471qs631bqwmz8fzmvas6xdd7";
+ };
+ };
+ "esprima-4.0.1" = {
+ name = "esprima";
+ packageName = "esprima";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+ sha512 = "3h999di4dnwxb22lxlb7cbz42nalrv8g8sqdvrkkl5c27gnwhp1rva4039hmq6g1i0y4mfjgx6p4i2vwxxl0zlahfzdd9fl1qbqasvq";
+ };
+ };
+ "esrecurse-4.2.1" = {
+ name = "esrecurse";
+ packageName = "esrecurse";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
+ sha512 = "06zyknk70y80n428x20wvjqy5822wgz2yaxzw387njnz3ar6ixzjcxzr2jsl8wrm0m9jpa4ysbcr9znpk6gbkqd7wby084zxw3l317b";
+ };
+ };
+ "estraverse-4.3.0" = {
+ name = "estraverse";
+ packageName = "estraverse";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+ sha512 = "2kh3lczc7smb84ryllqrdvrknxl3h47khh7li6n9m76mj9jfh1ahz2jm8ffpcaac7i4k8zkf3sc3nczzp7djgqmsi6wrkynywlygnfz";
+ };
+ };
+ "esutils-2.0.3" = {
+ name = "esutils";
+ packageName = "esutils";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+ sha512 = "3m321j8gmjllmmi1zyvbz0lsmkkjq26bvfr8niwr5b8saxh6icixmpxixyspjb40l54vpx3r3zvln190i47cx16y5x2lf1qg6liqnwi";
+ };
+ };
+ "etag-1.8.1" = {
+ name = "etag";
+ packageName = "etag";
+ version = "1.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ };
+ "eventemitter3-4.0.0" = {
+ name = "eventemitter3";
+ packageName = "eventemitter3";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz";
+ sha512 = "05cdww9h7f3kjfmv478p0rcq2ia3lcrvqmsh155hd6wm895i2jn6j68w0ly09c3gjn8hshfdvnh99qchipbclycnb241y993m2d5sm9";
+ };
+ };
+ "events-3.1.0" = {
+ name = "events";
+ packageName = "events";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz";
+ sha512 = "1d21craxji58ccc5l8c39mw7pgk0is7gj1sixm8v1va1zc81hrw8426b9rhrv7z2kwqvix5l7cyfc8awwypj19him6ffd67qbqaxzs6";
+ };
+ };
+ "eventsource-1.0.7" = {
+ name = "eventsource";
+ packageName = "eventsource";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz";
+ sha512 = "02zyvvhbzxhb7q9pzn867l80whipj03h4nkzjw1r8kppkmgaw0fcgvnkkv11fkfnlcdhkr9f55xrap5qpvbggkad4y4jkymxgpzbfg0";
+ };
+ };
+ "evp_bytestokey-1.0.3" = {
+ name = "evp_bytestokey";
+ packageName = "evp_bytestokey";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+ sha512 = "1wd18zxd7n42asa63aa4k1bdf58warg29c7c8cdzzkd4r1wva7qwzqnn52h8g8hqwj7bxjkk3ryghajrvz4i27h5bzp30p8hjiqdzgx";
+ };
+ };
+ "exec-sh-0.3.4" = {
+ name = "exec-sh";
+ packageName = "exec-sh";
+ version = "0.3.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz";
+ sha512 = "3a56in0wklcqf6hk0n22z22yg9kzb7y4xj7yfmj2sahbnkjbr5s0sngpzrr60r5rq9b3f0f1m13da5fn9mfz7p3b5nbxgxmrs8lhhdh";
+ };
+ };
+ "execa-1.0.0" = {
+ name = "execa";
+ packageName = "execa";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
+ sha512 = "0nbazkdhh5zqw7l7y4ml860h6pbn72x5kp2iaknqbdk0ygcrp3yh6bnq0brzzsyk3f72ard3ss3kp9a2ffsglib3yiamqwm4mrz3mk9";
+ };
+ };
+ "exit-0.1.2" = {
+ name = "exit";
+ packageName = "exit";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz";
+ sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
+ };
+ };
+ "expand-brackets-2.1.4" = {
+ name = "expand-brackets";
+ packageName = "expand-brackets";
+ version = "2.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz";
+ sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+ };
+ };
+ "expand-tilde-2.0.2" = {
+ name = "expand-tilde";
+ packageName = "expand-tilde";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz";
+ sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
+ };
+ };
+ "expect-24.9.0" = {
+ name = "expect";
+ packageName = "expect";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz";
+ sha512 = "38r26vw1qwvgj86dijd5hps0b5ijk4qq0zy9dcgc2dpafq6jjx1x4k9lpaqs1mbkg4d9a29qkx914y9waavswvgwvcmv8n8qp3l1xf2";
+ };
+ };
+ "express-4.17.1" = {
+ name = "express";
+ packageName = "express";
+ version = "4.17.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
+ sha512 = "3i2sxjf2x1r9wbfdyh5ll8ybbnqq6n4xfxdlc4dsqhssljrlih18csqg142lf16lcfcdgsmvf9pff0rzxjw7p0shnlmpajipwxpswlq";
+ };
+ };
+ "ext-1.4.0" = {
+ name = "ext";
+ packageName = "ext";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
+ sha512 = "3n50kbfjicn887f19ragi6k288srkjidzvcnphnb2f8bqw4vn10y73p3ryjyqq0xgrdxnwhy2j9favm7pfb3j3vhf5dmi8licsbkv19";
+ };
+ };
+ "extend-3.0.2" = {
+ name = "extend";
+ packageName = "extend";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+ sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
+ };
+ };
+ "extend-shallow-2.0.1" = {
+ name = "extend-shallow";
+ packageName = "extend-shallow";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ };
+ "extend-shallow-3.0.2" = {
+ name = "extend-shallow";
+ packageName = "extend-shallow";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz";
+ sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+ };
+ };
+ "extglob-2.0.4" = {
+ name = "extglob";
+ packageName = "extglob";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
+ sha512 = "2klp0045k4wnaspb9khqx90ddv7rjg997mlyp5qz41sl2yqdrpw8g8wji77qq16aawl4yhvg0f993ln48lja0kfmy0wnbh4g50zlrin";
+ };
+ };
+ "extsprintf-1.3.0" = {
+ name = "extsprintf";
+ packageName = "extsprintf";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ };
+ "fast-deep-equal-3.1.1" = {
+ name = "fast-deep-equal";
+ packageName = "fast-deep-equal";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
+ sha512 = "1j7wq3vqvfgnpd2sjblnlgryxlic2fsy343fx8w4ywb2mngj1w5afq8fmly8cp9fi66dhz1fhcfpn23g5zasnzs6n1snb83qkkilhgi";
+ };
+ };
+ "fast-json-stable-stringify-2.1.0" = {
+ name = "fast-json-stable-stringify";
+ packageName = "fast-json-stable-stringify";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+ sha512 = "0gz06zkjlqc4r59ka14n3vwqjdgn40zd8r115ql3rkwqb7j42frmnsj3axr7p2md8ik52nqjn3myyv8ddavdhl4cq3xz4wbbz07y5wn";
+ };
+ };
+ "fast-levenshtein-2.0.6" = {
+ name = "fast-levenshtein";
+ packageName = "fast-levenshtein";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ };
+ "faye-websocket-0.10.0" = {
+ name = "faye-websocket";
+ packageName = "faye-websocket";
+ version = "0.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz";
+ sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
+ };
+ };
+ "faye-websocket-0.11.3" = {
+ name = "faye-websocket";
+ packageName = "faye-websocket";
+ version = "0.11.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz";
+ sha512 = "0wgmgai5pj0yjcc4gs5b6r94gr8ycsbv1xyjw055cxfy4vm6yrpqp0mpr89ychmzgr5y0mggqrljf9jhb8n5iq63bi3r9yqidpbhv0g";
+ };
+ };
+ "fb-watchman-2.0.1" = {
+ name = "fb-watchman";
+ packageName = "fb-watchman";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz";
+ sha512 = "1b67x7n9c1irns63lipsffgi0zm9kfms6k87mznvhak81dijqvfy26nqr3j5mw41mqb3vbbhxbbmcdgc787laz3kaq45slq0wlwjhqf";
+ };
+ };
+ "figgy-pudding-3.5.1" = {
+ name = "figgy-pudding";
+ packageName = "figgy-pudding";
+ version = "3.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
+ sha512 = "39n5js2y984px4bvwavskv70pazpjnrvy5lnyqif5pdh6pgfinnl3b5zknfkqvlws7gnylmlwryzfpdvh0jgpgsiphx8a64fhjb3lmw";
+ };
+ };
+ "file-uri-to-path-1.0.0" = {
+ name = "file-uri-to-path";
+ packageName = "file-uri-to-path";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+ sha512 = "0px1qliabg53lwfq4izc9vdll68sd08nlczi2ms5nvg7frm3y6zgy07vdvxywazab26jc723qpmh9a6h3bdp685iddzsmgvfarpx6yi";
+ };
+ };
+ "filesize-3.6.1" = {
+ name = "filesize";
+ packageName = "filesize";
+ version = "3.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz";
+ sha512 = "1rfby2136b86m318244b42lrcx9hc28vz71cv9i84cd5z7dd3cwvj1gx8mykbjh937yyi1h4q5kk3vhjcldc8pkd2f7iapszgbd3a7c";
+ };
+ };
+ "fill-range-4.0.0" = {
+ name = "fill-range";
+ packageName = "fill-range";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz";
+ sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+ };
+ };
+ "finalhandler-1.1.2" = {
+ name = "finalhandler";
+ packageName = "finalhandler";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+ sha512 = "1cfqk6g78cb12b1cki4pbcspsy40d0yny513myqji716njyhc5hrj7ll539kz96m6vn27168hhyqvd52cr5x1cs85mm7igfkrdrq1b8";
+ };
+ };
+ "find-cache-dir-1.0.0" = {
+ name = "find-cache-dir";
+ packageName = "find-cache-dir";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz";
+ sha1 = "9288e3e9e3cc3748717d39eade17cf71fc30ee6f";
+ };
+ };
+ "find-cache-dir-2.1.0" = {
+ name = "find-cache-dir";
+ packageName = "find-cache-dir";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+ sha512 = "0wjlwmvadzac6hwmxv6hsc16z3285i2y0nkwpg4366flza0rx30s3ncx93xn8hkkpxr493zi5b0h94jczinr87h2m6gbhrl265qzbjf";
+ };
+ };
+ "find-replace-3.0.0" = {
+ name = "find-replace";
+ packageName = "find-replace";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz";
+ sha512 = "04qvcapazb6cj527naq4ycrydqph63gpsq9ly76cvnxy7cm9xwdn2q62rlyvn7iynvm59akggz5jiiygzzbq7wrpwh218124fdzcdp9";
+ };
+ };
+ "find-up-2.1.0" = {
+ name = "find-up";
+ packageName = "find-up";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz";
+ sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+ };
+ };
+ "find-up-3.0.0" = {
+ name = "find-up";
+ packageName = "find-up";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+ sha512 = "2bg49lifm64h5jqjc20612wrx7cazw9np9ms02ys94kif4li8cp5in4rvmb1c1ssa8yhbsqkgprykkj4lf3jbz8qrgp1mf8c93gl86p";
+ };
+ };
+ "findup-sync-3.0.0" = {
+ name = "findup-sync";
+ packageName = "findup-sync";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz";
+ sha512 = "1i4px24rzp6x5wczj63r720lxw2rl1yvsk8w36bcmmdsyji2yx59p1nxy3v0hqjfr5s9vzrxh55v83ly3d0mf5r78hw32awp1mdzdv1";
+ };
+ };
+ "flush-write-stream-1.1.1" = {
+ name = "flush-write-stream";
+ packageName = "flush-write-stream";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
+ sha512 = "3pkp1ymgv73zg0d94la628nagxyngq7zm1jmngx6vjc6vi5d4jkmvfygvgac6w6x929hqljwygaidq2znk3l5xd4apdvxvpas21g7nx";
+ };
+ };
+ "follow-redirects-1.5.10" = {
+ name = "follow-redirects";
+ packageName = "follow-redirects";
+ version = "1.5.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
+ sha512 = "1alfnscb0lnmf1ka8d5jrp48bizkbqrdz616r7q9yv4afqadlli1xmmf7lsvany1kmmnmwpvhbgx70mvcsnjf1ywjnzmkmk53h6apni";
+ };
+ };
+ "for-in-1.0.2" = {
+ name = "for-in";
+ packageName = "for-in";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz";
+ sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+ };
+ };
+ "forever-agent-0.6.1" = {
+ name = "forever-agent";
+ packageName = "forever-agent";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ };
+ "form-data-2.3.3" = {
+ name = "form-data";
+ packageName = "form-data";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
+ sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
+ };
+ };
+ "form-data-2.5.1" = {
+ name = "form-data";
+ packageName = "form-data";
+ version = "2.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz";
+ sha512 = "1aa6m5c13kybvcycjdyhr0qbb7097qs7kah89bbhynjs9r5fl6ibbhscpin31nshzhw5nszw5c6x10krrig90afh88la456cgflsvcv";
+ };
+ };
+ "formidable-1.2.2" = {
+ name = "formidable";
+ packageName = "formidable";
+ version = "1.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz";
+ sha512 = "3jm9bdwpbsvpf9f7v9gh2dc01p5pg77g1q6g6jwxyaqykr6q6ljp3gvkbxrxa6wkhlnw52qd130f4nx8f6zwf74h8jgy8rmxsdhpj2p";
+ };
+ };
+ "forwarded-0.1.2" = {
+ name = "forwarded";
+ packageName = "forwarded";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ };
+ "fragment-cache-0.2.1" = {
+ name = "fragment-cache";
+ packageName = "fragment-cache";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz";
+ sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+ };
+ };
+ "fresh-0.5.2" = {
+ name = "fresh";
+ packageName = "fresh";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ };
+ "from2-2.3.0" = {
+ name = "from2";
+ packageName = "from2";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz";
+ sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+ };
+ };
+ "fs-write-stream-atomic-1.0.10" = {
+ name = "fs-write-stream-atomic";
+ packageName = "fs-write-stream-atomic";
+ version = "1.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+ sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+ };
+ };
+ "fs.realpath-1.0.0" = {
+ name = "fs.realpath";
+ packageName = "fs.realpath";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ };
+ "fsevents-1.2.11" = {
+ name = "fsevents";
+ packageName = "fsevents";
+ version = "1.2.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz";
+ sha512 = "0gh6646md6jag20cv3p6c36gf1k2h417lp8a7pwfdbvnbz9khs69hgs344jf2lk7pfqr8gyh13j56n9qvk2ad7nlq0isym93sbpgv7s";
+ };
+ };
+ "function-bind-1.1.1" = {
+ name = "function-bind";
+ packageName = "function-bind";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+ sha512 = "38chm1mh077ksx6hy2sssfz4q29hf0ncb9k6ila7si54zqcpl5fxd1rh6wi82blqp7jcspf4aynr7jqhbsg2yc9y42xpqqp6c1jz2n8";
+ };
+ };
+ "gensync-1.0.0-beta.1" = {
+ name = "gensync";
+ packageName = "gensync";
+ version = "1.0.0-beta.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz";
+ sha512 = "1r0jph65fg2w5p612lr79rb1k2xyvr3cymg0cbsk8nrncdm82l4k1k8sflk3q32zahpdjfsfs15rdqcj7wgahrpzw3picmmsgl05hdg";
+ };
+ };
+ "get-caller-file-1.0.3" = {
+ name = "get-caller-file";
+ packageName = "get-caller-file";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz";
+ sha512 = "3mw8nv3r73b3lp2pzj116p27flkrv1vq6v0ika46w3xqfinm6gxn38glryibvy834mja8ib4j9cjq27qn164z3793c9g88y79asppny";
+ };
+ };
+ "get-caller-file-2.0.5" = {
+ name = "get-caller-file";
+ packageName = "get-caller-file";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+ sha512 = "0b7da6kb3xqk26cw4i6kb1lk911z06z53if2g8l23hmfpbhl6vfbn8iip55j1yplbqnly2abb9d349r6ky2z570839q3p9z2gf4y88g";
+ };
+ };
+ "get-paths-0.0.7" = {
+ name = "get-paths";
+ packageName = "get-paths";
+ version = "0.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-paths/-/get-paths-0.0.7.tgz";
+ sha512 = "2sbm9wgxb9lh20hl3rj1zrpvgq14kxvd16hq6p9drh7z26f6nmy4jp0irbaqk1gjal152shl7kwkwk6gskvla18p0qs8p5mn2vlj1yk";
+ };
+ };
+ "get-stream-3.0.0" = {
+ name = "get-stream";
+ packageName = "get-stream";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz";
+ sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+ };
+ };
+ "get-stream-4.1.0" = {
+ name = "get-stream";
+ packageName = "get-stream";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
+ sha512 = "3pwlllj9naaqzlc5axbxz4jqg3v533xd9jz945mjd3zmca3hh3pr1dpwc7416kjszw6igk060v6x2dgwpr7m1rd4djavmvr8bhavihq";
+ };
+ };
+ "get-value-2.0.6" = {
+ name = "get-value";
+ packageName = "get-value";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz";
+ sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+ };
+ };
+ "getpass-0.1.7" = {
+ name = "getpass";
+ packageName = "getpass";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ };
+ "glob-7.1.6" = {
+ name = "glob";
+ packageName = "glob";
+ version = "7.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+ sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
+ };
+ };
+ "glob-parent-3.1.0" = {
+ name = "glob-parent";
+ packageName = "glob-parent";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
+ sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+ };
+ };
+ "global-modules-1.0.0" = {
+ name = "global-modules";
+ packageName = "global-modules";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz";
+ sha512 = "1pgpsvm0rm1fnqmblx77xs67gh8c80nf4dsgcgalhh9phmlp8ahn5w7vzx3xkwyxw3fg33h8vhh3plsycw6fd7c2r76mm7m8w9fkb5h";
+ };
+ };
+ "global-modules-2.0.0" = {
+ name = "global-modules";
+ packageName = "global-modules";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz";
+ sha512 = "3q8nyi4i93sc7kfx7mmzmkr3656h7f27f5dkwx0908mz2m4bdih9024qmbss87anjf9d817zbr0mmm2zr9pfli2qw41zxv9j2cdyril";
+ };
+ };
+ "global-prefix-1.0.2" = {
+ name = "global-prefix";
+ packageName = "global-prefix";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz";
+ sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
+ };
+ };
+ "global-prefix-3.0.0" = {
+ name = "global-prefix";
+ packageName = "global-prefix";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz";
+ sha512 = "1dda0wwyqq1k8qa0cy6ifchm9zfbq0bsrvq68gccp4haqp0hgqs5ax1hrpxkcl9k9j3g1nb0nzi19v8ikcxxc9y6i37a24mjjfah03b";
+ };
+ };
+ "globals-11.12.0" = {
+ name = "globals";
+ packageName = "globals";
+ version = "11.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
+ sha512 = "1ab6f0n8yjl3zkl6dwhvxpxh63b4acc7nj7i21z3dx1fz1jv1c3673qpkwiavmcbbf8jlkxapx0x8ybzz5w2yra4ln24lh687y6kq2q";
+ };
+ };
+ "globals-9.18.0" = {
+ name = "globals";
+ packageName = "globals";
+ version = "9.18.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz";
+ sha512 = "18psd5ig23apaw07k4mma3z1hi2ndfwsqkm05hxashnf5lf7mpfs6kjiircc0x3x3q15j2x2j4zfzsqacxvfsmw40zjchn44bfccjab";
+ };
+ };
+ "globby-6.1.0" = {
+ name = "globby";
+ packageName = "globby";
+ version = "6.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz";
+ sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
+ };
+ };
+ "globby-7.1.1" = {
+ name = "globby";
+ packageName = "globby";
+ version = "7.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz";
+ sha1 = "fb2ccff9401f8600945dfada97440cca972b8680";
+ };
+ };
+ "got-8.3.2" = {
+ name = "got";
+ packageName = "got";
+ version = "8.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/got/-/got-8.3.2.tgz";
+ sha512 = "05i0zb81f4c0z48y9mjckyajm586ygznh8y8di5g0qrg3vi9hpbw2q3cf548as8zx9b4g1q5zf2cab43yx21wnan1l0qsz19zjhjdda";
+ };
+ };
+ "graceful-fs-4.2.3" = {
+ name = "graceful-fs";
+ packageName = "graceful-fs";
+ version = "4.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
+ sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
+ };
+ };
+ "growly-1.3.0" = {
+ name = "growly";
+ packageName = "growly";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz";
+ sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
+ };
+ };
+ "gzip-size-5.1.1" = {
+ name = "gzip-size";
+ packageName = "gzip-size";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz";
+ sha512 = "0y1sp7474a0w8329a3d69dgqdbaj7azkx415kcdrkri95c6gyvpj6c3mp5v0jdwjasq01xw07lr5l551z77ch0nkcszn7m8d7mf5l8l";
+ };
+ };
+ "handle-thing-2.0.0" = {
+ name = "handle-thing";
+ packageName = "handle-thing";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz";
+ sha512 = "28zz3rsr08yf5sib0pnnwyk99023ll7bp73z28r1pb6j722bfdhxmzww91cyh713b3a6bqvfxlglancn95pwdnsb5w8w2sda9xk72vp";
+ };
+ };
+ "har-schema-2.0.0" = {
+ name = "har-schema";
+ packageName = "har-schema";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ };
+ "har-validator-5.1.3" = {
+ name = "har-validator";
+ packageName = "har-validator";
+ version = "5.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
+ sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
+ };
+ };
+ "has-1.0.3" = {
+ name = "has";
+ packageName = "has";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+ sha512 = "37vh53c11hws66navka0w9xxm6rcr034bxpyvaldiqz1msafqf0jpi1aqxbaygs53arz9y510qg6dl6vrm285hrxniygs2l8lxnyrvz";
+ };
+ };
+ "has-ansi-2.0.0" = {
+ name = "has-ansi";
+ packageName = "has-ansi";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ };
+ "has-flag-3.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ };
+ "has-symbol-support-x-1.4.2" = {
+ name = "has-symbol-support-x";
+ packageName = "has-symbol-support-x";
+ version = "1.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz";
+ sha512 = "0kljkjnsw7jnqm8dpf05rd7a59xjfwlbmp1qxs5kdda78zwwqfpkq5ryc2510iyam6v5vbyy0h7bpkwqadajq1ag2zaa7dymyyhwfnx";
+ };
+ };
+ "has-symbols-1.0.1" = {
+ name = "has-symbols";
+ packageName = "has-symbols";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
+ sha512 = "0mb9d5yqvznqmq073hdc4wl7175niiqpkpb7iqqv8p0q6xgmrhfap9ni6iwrx44w8p9vyg8n3zsllil5pdflzlh462dkydymfi2rdrw";
+ };
+ };
+ "has-to-string-tag-x-1.4.1" = {
+ name = "has-to-string-tag-x";
+ packageName = "has-to-string-tag-x";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz";
+ sha512 = "0bqvhd628h3lrsydbp1xllh7jp23c58j7d4z0x0v9ddffindkk1zfrqmzm28z47ipjp0zxlmzvmlzk98zf9mzjsc47bmp1ydizcmmmx";
+ };
+ };
+ "has-value-0.3.1" = {
+ name = "has-value";
+ packageName = "has-value";
+ version = "0.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz";
+ sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+ };
+ };
+ "has-value-1.0.0" = {
+ name = "has-value";
+ packageName = "has-value";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz";
+ sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+ };
+ };
+ "has-values-0.1.4" = {
+ name = "has-values";
+ packageName = "has-values";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz";
+ sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+ };
+ };
+ "has-values-1.0.0" = {
+ name = "has-values";
+ packageName = "has-values";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz";
+ sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+ };
+ };
+ "hash-base-3.0.4" = {
+ name = "hash-base";
+ packageName = "hash-base";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz";
+ sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+ };
+ };
+ "hash.js-1.1.7" = {
+ name = "hash.js";
+ packageName = "hash.js";
+ version = "1.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz";
+ sha512 = "1f5xc15zpy3b7hssv57xnd92ja5r073zvd2pczvncxmy1jnbjcx716riyr2syvah88qk7328a6fz049mziv2k837093xqxd86r9m8xm";
+ };
+ };
+ "hmac-drbg-1.0.1" = {
+ name = "hmac-drbg";
+ packageName = "hmac-drbg";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+ sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+ };
+ };
+ "home-or-tmp-2.0.0" = {
+ name = "home-or-tmp";
+ packageName = "home-or-tmp";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz";
+ sha1 = "e36c3f2d2cae7d746a857e38d18d5f32a7882db8";
+ };
+ };
+ "homedir-polyfill-1.0.3" = {
+ name = "homedir-polyfill";
+ packageName = "homedir-polyfill";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
+ sha512 = "1qc7ngn9k1w5lcqx2ygqb2x9f03knfbsym25l6qsp6q9qdcxa4fzwwjsh9d9lm5l1569v19rjp7sdnz11087f4b6sv34rav9rcacabr";
+ };
+ };
+ "hoopy-0.1.4" = {
+ name = "hoopy";
+ packageName = "hoopy";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz";
+ sha512 = "1yx4ynb45w5hn214j6xm2357i3hcbhyh21d7040ikmi9ywaqsjycbzp390wp1qixpyjnc8aaacwzqyf1cvlfz7c5fs6brxbd7xjq5qx";
+ };
+ };
+ "hosted-git-info-2.8.8" = {
+ name = "hosted-git-info";
+ packageName = "hosted-git-info";
+ version = "2.8.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+ sha512 = "19a25b4xb3hg00d1nsirc3xfcc07rplbh6msa49rgc8xg5rg38y1z8rfrf0dmll8k4jaml8z337bi6y2cgah66jnwxinn0sch5k7z3z";
+ };
+ };
+ "hpack.js-2.1.6" = {
+ name = "hpack.js";
+ packageName = "hpack.js";
+ version = "2.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz";
+ sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2";
+ };
+ };
+ "html-encoding-sniffer-1.0.2" = {
+ name = "html-encoding-sniffer";
+ packageName = "html-encoding-sniffer";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz";
+ sha512 = "1ir4rhs26z0x26nr1bca94rbgyginfyrdza1a550ish1ssv5cf9j94dgl2j47n65yvjsnmhx8m749bljr3qjn7pdndcp7l35375jngg";
+ };
+ };
+ "html-entities-1.2.1" = {
+ name = "html-entities";
+ packageName = "html-entities";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz";
+ sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
+ };
+ };
+ "html-escaper-2.0.0" = {
+ name = "html-escaper";
+ packageName = "html-escaper";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz";
+ sha512 = "0i7fxa00a4a7qdgxkiafdbpwvm5x80fivcnhmwbd8qdyxf18zdxzmriqq48k5a7yr7vn0hhzvvf1nki2105hqn29fznnn0iw42vv2vb";
+ };
+ };
+ "http-assert-1.4.1" = {
+ name = "http-assert";
+ packageName = "http-assert";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz";
+ sha512 = "21ixj6v0igbmy7zx5g4kpqp9fr495ki1jm8qszg1gbwmwcbji51n4zcpm6ll8a927m626rw4vkdamvsi90azmsnapm2d5lkl6mkpp5d";
+ };
+ };
+ "http-cache-semantics-3.8.1" = {
+ name = "http-cache-semantics";
+ packageName = "http-cache-semantics";
+ version = "3.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz";
+ sha512 = "3gsj16kpvygynld5ajbvg8ii3n3bka4waamdzx30wwhz72mdr6wvffm20rfnxwzid9fq49d5g333yjq5dz1qqbnk9bwcmrj9f5bda75";
+ };
+ };
+ "http-deceiver-1.2.7" = {
+ name = "http-deceiver";
+ packageName = "http-deceiver";
+ version = "1.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz";
+ sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
+ };
+ };
+ "http-errors-1.6.3" = {
+ name = "http-errors";
+ packageName = "http-errors";
+ version = "1.6.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz";
+ sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
+ };
+ };
+ "http-errors-1.7.2" = {
+ name = "http-errors";
+ packageName = "http-errors";
+ version = "1.7.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
+ sha512 = "13c4825kzqlxdqfjrlrwh15ira0bjm9m3b8qcrfzaysiky1m3gb6dv6gcjgpnap9mbl0fajqiibzp1w5r8qnyn8glaj4wgzf6vh2i5r";
+ };
+ };
+ "http-errors-1.7.3" = {
+ name = "http-errors";
+ packageName = "http-errors";
+ version = "1.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz";
+ sha512 = "1zx0vws4k6lcw8j8pgc2yrwfw56s6n2z4dvhd9lcj9l1ywnl9ssianilmrlzr6ravkqxv0xbdqg4cn0q3l72d8h0achvcdbqp8dfd35";
+ };
+ };
+ "http-parser-js-0.4.10" = {
+ name = "http-parser-js";
+ packageName = "http-parser-js";
+ version = "0.4.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz";
+ sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4";
+ };
+ };
+ "http-proxy-1.18.0" = {
+ name = "http-proxy";
+ packageName = "http-proxy";
+ version = "1.18.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz";
+ sha512 = "2jhzdgr7gcgj58mf798ak1a638wm4mnp45pk48im1rf03dpw39alpyabd7rqwqgjrilaggnmh6nd3m9pqnyn76q3mw5g7rzjf43d0pk";
+ };
+ };
+ "http-proxy-middleware-0.19.1" = {
+ name = "http-proxy-middleware";
+ packageName = "http-proxy-middleware";
+ version = "0.19.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz";
+ sha512 = "3fl42r9rpdqm0jrrd2wqws6syv02r8cqgy0j6ddrjvn5p3by8shm0mmbych1g5k9i5agc70x6z2904nrgidkdnlq1pwafqhcf0i6xn8";
+ };
+ };
+ "http-signature-1.2.0" = {
+ name = "http-signature";
+ packageName = "http-signature";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ };
+ "https-browserify-1.0.0" = {
+ name = "https-browserify";
+ packageName = "https-browserify";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz";
+ sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+ };
+ };
+ "iconv-lite-0.4.24" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.4.24";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
+ };
+ };
+ "ieee754-1.1.13" = {
+ name = "ieee754";
+ packageName = "ieee754";
+ version = "1.1.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz";
+ sha512 = "179jm8fhl2advz4j63klrp57sm99wvyb5jcxwfr9rhi730ybcxkyfqrr0pmwvir12zjzpkwwvjjkjclwrss7lpab7dg2myqc8izpxz2";
+ };
+ };
+ "iferr-0.1.5" = {
+ name = "iferr";
+ packageName = "iferr";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz";
+ sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+ };
+ };
+ "ignore-3.3.10" = {
+ name = "ignore";
+ packageName = "ignore";
+ version = "3.3.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz";
+ sha512 = "2x7za00gs7ipwcq29bslxcdv7j47m28jx14n9ybs5h2icr4024jn5ppmbs6953g2qb3amhs1gg5x0s48ky3mk7ybi36wchsb7kks2ry";
+ };
+ };
+ "import-local-2.0.0" = {
+ name = "import-local";
+ packageName = "import-local";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz";
+ sha512 = "04jd526svpmpgya7i580qcb13s9b6bw4s9hng2fsni2gxsz6h8vqxl8gbm5k575yxm5aqhy001rl7p1iy60rsi6371cvynfdpi39avg";
+ };
+ };
+ "imurmurhash-0.1.4" = {
+ name = "imurmurhash";
+ packageName = "imurmurhash";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+ sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+ };
+ };
+ "indent-string-3.2.0" = {
+ name = "indent-string";
+ packageName = "indent-string";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz";
+ sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289";
+ };
+ };
+ "infer-owner-1.0.4" = {
+ name = "infer-owner";
+ packageName = "infer-owner";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz";
+ sha512 = "3s364ysa3q0sxc852a6rlbx0y8spayvg5csradd7s9vn2fr0ky3xpfhy5kkv6afgji3df7kyiswx296kwfakydii9xygqzxgkwn6a90";
+ };
+ };
+ "inflation-2.0.0" = {
+ name = "inflation";
+ packageName = "inflation";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz";
+ sha1 = "8b417e47c28f925a45133d914ca1fd389107f30f";
+ };
+ };
+ "inflight-1.0.6" = {
+ name = "inflight";
+ packageName = "inflight";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ };
+ "inherits-2.0.1" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
+ sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+ };
+ };
+ "inherits-2.0.3" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ };
+ "inherits-2.0.4" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+ sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk";
+ };
+ };
+ "ini-1.3.5" = {
+ name = "ini";
+ packageName = "ini";
+ version = "1.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
+ sha512 = "1rjbvf1rg5ywhnba08sgagn2qf23lab330qrqmh7d891zap3xpxcyfyj1cblpf0f0rypglcfacybzyrpd4996aa1mbc820awa33k5j5";
+ };
+ };
+ "internal-ip-4.3.0" = {
+ name = "internal-ip";
+ packageName = "internal-ip";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz";
+ sha512 = "05c6ydjyg8633b07vn5g168r5lxwvl5k1mjm55brfx35c1z18195bh67f7cfk4bjvyapxfhh8q5i7pv75k353rfp0rcpkgsa2iw2p2b";
+ };
+ };
+ "interpret-1.2.0" = {
+ name = "interpret";
+ packageName = "interpret";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz";
+ sha512 = "1pibn9f6dn61lmilqiv8hb4aix4b78xf9sdws3rnl060vvv6l4qrw6gfmncq5n0f0rah2yj1ssfg80chaw9y5aa860wfdcccb4ghgcr";
+ };
+ };
+ "into-stream-3.1.0" = {
+ name = "into-stream";
+ packageName = "into-stream";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz";
+ sha1 = "96fb0a936c12babd6ff1752a17d05616abd094c6";
+ };
+ };
+ "invariant-2.2.4" = {
+ name = "invariant";
+ packageName = "invariant";
+ version = "2.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz";
+ sha512 = "0sa0bflh46zr7zqdifqk3a48bmqlmpikrnmwvgz8nx6979piw2m92qrn1g5xnpjzxn864y2jq3gl84jkws2dad3mlwr6s3fa10my4m6";
+ };
+ };
+ "invert-kv-2.0.0" = {
+ name = "invert-kv";
+ packageName = "invert-kv";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz";
+ sha512 = "0lamd4l8hybnh42bg1nav09fj3h7k31vnvsqbqk3mhbhml32042k8hpixhiapqfssi1jyhnw31mdv9zx0fvxzxqi8igahyh5zznzxf0";
+ };
+ };
+ "ip-1.1.5" = {
+ name = "ip";
+ packageName = "ip";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz";
+ sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+ };
+ };
+ "ip-regex-2.1.0" = {
+ name = "ip-regex";
+ packageName = "ip-regex";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz";
+ sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+ };
+ };
+ "ipaddr.js-1.9.1" = {
+ name = "ipaddr.js";
+ packageName = "ipaddr.js";
+ version = "1.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+ sha512 = "3gcwhv1wa2hb1vljlcmzhvzliks9rj7nzsw165vgy69jakw8g55ky474mj4j41vfbid8viy9nhwn9kx8pfqrikyl29i98zi9vmkz8nh";
+ };
+ };
+ "is-absolute-url-3.0.3" = {
+ name = "is-absolute-url";
+ packageName = "is-absolute-url";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
+ sha512 = "3ssxj0ds0anzx5qcgn5lcawrsv3br0zbi1qcfpi9sslp4iwzb0hr9aqy3y72rf9c0bwb0h5svy7l341j0arlkyvx2yp85pfgqhqv6d2";
+ };
+ };
+ "is-accessor-descriptor-0.1.6" = {
+ name = "is-accessor-descriptor";
+ packageName = "is-accessor-descriptor";
+ version = "0.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+ sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+ };
+ };
+ "is-accessor-descriptor-1.0.0" = {
+ name = "is-accessor-descriptor";
+ packageName = "is-accessor-descriptor";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+ sha512 = "1qllik6fjwfq17ic0fxwqyll8mrhmcm36xfsq45xc57mq9ah4i4nn4f8fvgb0gx4kpl3jlpkzndp0xlmmf2mh0xmggw6mhw74fng64v";
+ };
+ };
+ "is-arrayish-0.2.1" = {
+ name = "is-arrayish";
+ packageName = "is-arrayish";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
+ sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+ };
+ };
+ "is-binary-path-1.0.1" = {
+ name = "is-binary-path";
+ packageName = "is-binary-path";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
+ sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+ };
+ };
+ "is-buffer-1.1.6" = {
+ name = "is-buffer";
+ packageName = "is-buffer";
+ version = "1.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha512 = "3kr8dm9qyklmm2xyiz75s8db90bfilfals4x0g276kncihrrrz0ar4y6dqpvc7pwy7h43jay1bayi1r62x97nzvcswkk4ap18pl1irm";
+ };
+ };
+ "is-callable-1.1.5" = {
+ name = "is-callable";
+ packageName = "is-callable";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
+ sha512 = "3wmff73yzck45x5shydqswbww8zkl03i43yhy7mm6av9770yvd2gj7xfrc8f45fw2ncn7mwblxvxlcap5rngmklkjiis902qgkay8hi";
+ };
+ };
+ "is-ci-2.0.0" = {
+ name = "is-ci";
+ packageName = "is-ci";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz";
+ sha512 = "3inmiidgnyxsaypy9cq2pxcc0n7xcfsy3dlkjhk22y97vwz45b0hg972wj27kc0q5dd7k0zywjl3y5fjsqiq7fvllp1sh19p7p57wk1";
+ };
+ };
+ "is-data-descriptor-0.1.4" = {
+ name = "is-data-descriptor";
+ packageName = "is-data-descriptor";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+ sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+ };
+ };
+ "is-data-descriptor-1.0.0" = {
+ name = "is-data-descriptor";
+ packageName = "is-data-descriptor";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+ sha512 = "0ny6kxc752fg3z6fmj8a7fw2lai2y17d9fx0028nvyv1qj0sa30rfryhv9xd7b7is1yfs0val6amsy2b22rh589il10md36a75mgd4d";
+ };
+ };
+ "is-date-object-1.0.2" = {
+ name = "is-date-object";
+ packageName = "is-date-object";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
+ sha512 = "39f971gzwirnxjw4b72c175nbn1hnmrn1wljvbzvxv69hw9vpialhjafh9nkh0g3p26a49zss3rr7pxfww1f6day4s89hmqkm7l6aai";
+ };
+ };
+ "is-descriptor-0.1.6" = {
+ name = "is-descriptor";
+ packageName = "is-descriptor";
+ version = "0.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
+ sha512 = "0gbflcxmd30gzj91y19fylsfalirl6qg71sxjximc8lc2vxkg5h9scnahvxsczymchlx742i8ai489843ys431vyw73rp418jpxiw3a";
+ };
+ };
+ "is-descriptor-1.0.2" = {
+ name = "is-descriptor";
+ packageName = "is-descriptor";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
+ sha512 = "2v1a9mn2rzz52v8vs3i7njk9pv95fh971yc81xr0zkaw3dff4gbv1zv048xyjysfgwpajbyryk2px8hinwwh0wagblmw6chdbjsrs6r";
+ };
+ };
+ "is-expression-3.0.0" = {
+ name = "is-expression";
+ packageName = "is-expression";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz";
+ sha1 = "39acaa6be7fd1f3471dc42c7416e61c24317ac9f";
+ };
+ };
+ "is-extendable-0.1.1" = {
+ name = "is-extendable";
+ packageName = "is-extendable";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ };
+ "is-extendable-1.0.1" = {
+ name = "is-extendable";
+ packageName = "is-extendable";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
+ sha512 = "0w73qlx9ynmv2iznw1kll86yd04z4rsz3788nzgh7amcnpsbyxbrs734im9dibqgps6pjyz61s8kp4lcsbjsdfrlc51m1pm2hrxgfba";
+ };
+ };
+ "is-extglob-2.1.1" = {
+ name = "is-extglob";
+ packageName = "is-extglob";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ };
+ "is-finite-1.1.0" = {
+ name = "is-finite";
+ packageName = "is-finite";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz";
+ sha512 = "3gj0k3vlpbc7zg5xkl8yjnilqs2dmk3ks67shchrfmnzkj6r4aad994xwfczx99ccjx6cixdqg4sawk2m92lqhh6jmfl17zlnv8rp3i";
+ };
+ };
+ "is-fullwidth-code-point-1.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ };
+ "is-fullwidth-code-point-2.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ };
+ "is-generator-fn-2.1.0" = {
+ name = "is-generator-fn";
+ packageName = "is-generator-fn";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz";
+ sha512 = "14qphsynlkivbpi3hhf3wmcjh8f5s9d2z6nr1h98ijygyj2jql330h1w52a4z33plgjma305w3rn3nf28q4n6j1qfmz2byq4gih2cki";
+ };
+ };
+ "is-generator-function-1.0.7" = {
+ name = "is-generator-function";
+ packageName = "is-generator-function";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz";
+ sha512 = "2vr3bz9zc2d62mnsg16ppb5h2v5h9yfyjbijysi34b10vsly1fn1g4hmqwi40fng3i9pmbkc7vapr3yl23yxc96b2jgvqcf1h9kk5v1";
+ };
+ };
+ "is-glob-3.1.0" = {
+ name = "is-glob";
+ packageName = "is-glob";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
+ sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+ };
+ };
+ "is-glob-4.0.1" = {
+ name = "is-glob";
+ packageName = "is-glob";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+ sha512 = "19c23n8r8rfbz5rgs5csbjbpwgxvwi7y6kpsvlylgs2v1r1z2zm18qzzz2g8vnnwaldn5c4qalpc6p88rl0gjrrm278j52ks0m2svg4";
+ };
+ };
+ "is-number-3.0.0" = {
+ name = "is-number";
+ packageName = "is-number";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz";
+ sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+ };
+ };
+ "is-object-1.0.1" = {
+ name = "is-object";
+ packageName = "is-object";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz";
+ sha1 = "8952688c5ec2ffd6b03ecc85e769e02903083470";
+ };
+ };
+ "is-path-cwd-2.2.0" = {
+ name = "is-path-cwd";
+ packageName = "is-path-cwd";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
+ sha512 = "0aws7clcb9cyvvb4430df9fhfnpg9bl1n07ymzp7jdzia0bvjg25gyd39xp2xhgkgpkqazw8csglblifdql0rpj4kfwg1r26xnkdpn3";
+ };
+ };
+ "is-path-in-cwd-2.1.0" = {
+ name = "is-path-in-cwd";
+ packageName = "is-path-in-cwd";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz";
+ sha512 = "12yyg4jlg5mmiy2g0r91hz29v3jh5g2wyhdgs1qrfswx2sp7bfsn5g4632yfxmhrpjcy03bxfj12v93yd6pdykkpsmyz912g1f1rnmc";
+ };
+ };
+ "is-path-inside-2.1.0" = {
+ name = "is-path-inside";
+ packageName = "is-path-inside";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz";
+ sha512 = "0b5h3ls9n24ma1wqpfsv7n034ryz86rfn1vkz5g0sih2abi9wrs0vx6w583s6qhcgqa6rx5w5layfz7hlakhxvf07qcnnn36x7s2b62";
+ };
+ };
+ "is-plain-obj-1.1.0" = {
+ name = "is-plain-obj";
+ packageName = "is-plain-obj";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+ sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+ };
+ };
+ "is-plain-object-2.0.4" = {
+ name = "is-plain-object";
+ packageName = "is-plain-object";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz";
+ sha512 = "0xgsjz9m3kg5pm36lcchblxk53qay59ya7wi5jgdmz0dsl5b0j2j7wcd48yyfaip1m70mj9aqf8kib02fn62k0hy0vxg2hng60yk4w7";
+ };
+ };
+ "is-promise-2.1.0" = {
+ name = "is-promise";
+ packageName = "is-promise";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz";
+ sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+ };
+ };
+ "is-regex-1.0.5" = {
+ name = "is-regex";
+ packageName = "is-regex";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
+ sha512 = "1hqaalcf1yqll2yzm71a1axvid0x87jp41hyicw16rl12rrh6sp6srr9lk7wxm6a1vl3ypw8qyd0imbq8fl2h7yq8l8xawdnkbrclmy";
+ };
+ };
+ "is-retry-allowed-1.2.0" = {
+ name = "is-retry-allowed";
+ packageName = "is-retry-allowed";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
+ sha512 = "134jdgzg4p15g5jvwsmb0bmglmymn1pyk6r2w8q1fm728f15l7k12sqmfngn0mg3vs34gzg12v684fp9c99l6jnv737b6rgmiwd8ij5";
+ };
+ };
+ "is-stream-1.1.0" = {
+ name = "is-stream";
+ packageName = "is-stream";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
+ sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+ };
+ };
+ "is-symbol-1.0.3" = {
+ name = "is-symbol";
+ packageName = "is-symbol";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
+ sha512 = "1lmzzy2360gfg5639x8mzi5fpc1bgpdx0ffjlqaz9affd0lvvpi7yjwk15jsm1y1l8rf5jahyapv6rm2w3p86gxkghsp0jjlj2s621v";
+ };
+ };
+ "is-typedarray-1.0.0" = {
+ name = "is-typedarray";
+ packageName = "is-typedarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ };
+ "is-whitespace-0.3.0" = {
+ name = "is-whitespace";
+ packageName = "is-whitespace";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz";
+ sha1 = "1639ecb1be036aec69a54cbb401cfbed7114ab7f";
+ };
+ };
+ "is-windows-1.0.2" = {
+ name = "is-windows";
+ packageName = "is-windows";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
+ sha512 = "0h9a8zw2ddl25yryp7i376iqjdvlsx4gw93sxy4067dw2yi98m3krfwd9xgi9q5w0idw9rqnyhhncr38xsppyi5izkb7ngai58bawkr";
+ };
+ };
+ "is-wsl-1.1.0" = {
+ name = "is-wsl";
+ packageName = "is-wsl";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz";
+ sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
+ };
+ };
+ "isarray-0.0.1" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ };
+ "isarray-1.0.0" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ };
+ "isexe-2.0.0" = {
+ name = "isexe";
+ packageName = "isexe";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ };
+ "isobject-2.1.0" = {
+ name = "isobject";
+ packageName = "isobject";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz";
+ sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+ };
+ };
+ "isobject-3.0.1" = {
+ name = "isobject";
+ packageName = "isobject";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz";
+ sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+ };
+ };
+ "isomorphic-ws-4.0.1" = {
+ name = "isomorphic-ws";
+ packageName = "isomorphic-ws";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz";
+ sha512 = "3bk7frapznyd2q46p7kbk6w1wby8dfjj14p06j485n3s08nc398ah9d3wlr1q59sj5hv1cycvalkmn1vfzlamkp93d69981ccvny406";
+ };
+ };
+ "isstream-0.1.2" = {
+ name = "isstream";
+ packageName = "isstream";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ };
+ "istanbul-lib-coverage-2.0.5" = {
+ name = "istanbul-lib-coverage";
+ packageName = "istanbul-lib-coverage";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
+ sha512 = "2cgkn8swx4450c0m0alr4lb4fvqjyh3v9mg6ivx2sa9vq0hkb7r0yz87srf8263j089kpjmpnsl6d3l5vg7x4f4kk39n20gw6gg79gi";
+ };
+ };
+ "istanbul-lib-instrument-3.3.0" = {
+ name = "istanbul-lib-instrument";
+ packageName = "istanbul-lib-instrument";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
+ sha512 = "1j5bcfrd9sgjpm1mpgxv847jwwcjfpzfkynjcidpf4mwxbn0p6gz622rcrmbliphcbnw0nxipw0d7aw0gva7rym3lci9rz8icvwhyg6";
+ };
+ };
+ "istanbul-lib-report-2.0.8" = {
+ name = "istanbul-lib-report";
+ packageName = "istanbul-lib-report";
+ version = "2.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
+ sha512 = "2qm8v7vck1yv85lkx7n060wdvrr547mfrc83xyr6sl4p4av7r6c5jh6mdbvxiqz2m6d5spj6v8fksa9dc6c5r86hjhqh47pkqdmww3w";
+ };
+ };
+ "istanbul-lib-source-maps-3.0.6" = {
+ name = "istanbul-lib-source-maps";
+ packageName = "istanbul-lib-source-maps";
+ version = "3.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
+ sha512 = "1gm71m2lqpb1p2lrwmf9f9g2maz48s133zvk0zzlblgwnjgnn6dx129cbsx8znklhanwwgck6fwnfpsy5sga5pnwfbpw923rg6cm3j7";
+ };
+ };
+ "istanbul-reports-2.2.7" = {
+ name = "istanbul-reports";
+ packageName = "istanbul-reports";
+ version = "2.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz";
+ sha512 = "0m8fjnnvxyyd03g22xna4jnypd01jbvdsz5k9jnqlb1v678zikdzidq7p1x4pdlg1dfzfa9g8lzz01srnamalpmrj5qxrb8ppy4bvds";
+ };
+ };
+ "isurl-1.0.0" = {
+ name = "isurl";
+ packageName = "isurl";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz";
+ sha512 = "3vs53bpdrwiwwcql2xs20jmd8qha27k4iypdhr0b3isgdaj18vz80nhxwvvqxk6y3x5vj3slchxl0r91gjhz487xmkkp52gridg5zyl";
+ };
+ };
+ "jest-24.9.0" = {
+ name = "jest";
+ packageName = "jest";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz";
+ sha512 = "0dz2j03p5zng926y4l7d5ivp918xscx0rmpavzyh02wy397hc3qr7m8w90zyfizy0gkwcq6xcdw4a3p1rqpqyg8sy0xvvb6aqph3yb2";
+ };
+ };
+ "jest-changed-files-24.9.0" = {
+ name = "jest-changed-files";
+ packageName = "jest-changed-files";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz";
+ sha512 = "2m70h82g3b9fhgyvzvg189inyc1zq20jz8nv763k4zcqg05pswzg92kjwkk26ry257qpk1p7cdg5hivchvmmg5xhh1ms756xnjxd979";
+ };
+ };
+ "jest-cli-24.9.0" = {
+ name = "jest-cli";
+ packageName = "jest-cli";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz";
+ sha512 = "0d2yrlapfahrl57m7nwz7lw04gvx72f61sq0w8mga9c1ly2jqm1jfb7jx4xjwqy4rshz0xxrj1zcpy5s60m14n7l1b70kxd50mx2lpr";
+ };
+ };
+ "jest-config-24.9.0" = {
+ name = "jest-config";
+ packageName = "jest-config";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz";
+ sha512 = "1yjki6v7vm537dmjkfkdbmb9gqw90j3sz1815j1ckx21rb2pshsdpk7qccjn6hfbcn7zy287wb48ynbz6kq7mpvxplhlqamkd0fs124";
+ };
+ };
+ "jest-diff-24.9.0" = {
+ name = "jest-diff";
+ packageName = "jest-diff";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz";
+ sha512 = "02sb3bshly5aqlan0hxxw54d15jm33d68zhyl9mr86lwy736g3gdvcs18d3jv9zr82vnnnhcdvi7fc7fd4aglxai8v92x00rx7fpix8";
+ };
+ };
+ "jest-docblock-24.9.0" = {
+ name = "jest-docblock";
+ packageName = "jest-docblock";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz";
+ sha512 = "009kyd5sgsjr8fa7ayc30pggfywigyh6a49rwk6fs1lcn5r61iy7ffza0zssbbra98yp64qgjinbmk09m0pp1yyf0sw096cj1vf6l0p";
+ };
+ };
+ "jest-each-24.9.0" = {
+ name = "jest-each";
+ packageName = "jest-each";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz";
+ sha512 = "2i6r417rcfrcfm30qy6ahwx0bgnwmj43d9l43vj1fkzj22dp6aygkx8qb6v09iw43q0y2b8pmfdw1k2gjy2wdnbqdf8wnvgh13v9n1q";
+ };
+ };
+ "jest-environment-jsdom-24.9.0" = {
+ name = "jest-environment-jsdom";
+ packageName = "jest-environment-jsdom";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz";
+ sha512 = "2s9xjipxcg6j92q67l7c9xcc6dy8d5nhjw722j501cxha0fabdp0ld1vzdw9y4hnqbvcy2h6kagjv9vlccbvqxm03p34is1sdblbzv6";
+ };
+ };
+ "jest-environment-node-24.9.0" = {
+ name = "jest-environment-node";
+ packageName = "jest-environment-node";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz";
+ sha512 = "2wbp9q6p3l2n5zd9s9788rpbyy4xgf07fgf1q8vgnndzgk87jiillyhsjliznj924bssn8pwadqaimgsdpa7pg9q4rk5ir7zvcibpp9";
+ };
+ };
+ "jest-get-type-24.9.0" = {
+ name = "jest-get-type";
+ packageName = "jest-get-type";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz";
+ sha512 = "3qs6d7i3xgiwb787y3d4ymij99fqgrcn6bg0bz27ic0nr58cw49njbhnrb7jpmkq3823mqs1snx7rvz97zlhac7hh5jwyr560riwjwm";
+ };
+ };
+ "jest-haste-map-24.9.0" = {
+ name = "jest-haste-map";
+ packageName = "jest-haste-map";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz";
+ sha512 = "26w4jc0ic0x8j1vza10vnf1aqahg1wknvq9q40kbsv5i9j5h3krvjb8akjgkkpv9gjh9frq04kyml8gg01d8saliy92vflnrfd4bxci";
+ };
+ };
+ "jest-jasmine2-24.9.0" = {
+ name = "jest-jasmine2";
+ packageName = "jest-jasmine2";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz";
+ sha512 = "37r7lh1ni9sizsffg7zcymwr8v30jhnz5kxmpq06i4c5d2b62nmpnci0w2kfmx0nq21ndp6829ypajdbgrdpzn57rzalq0s128fzbha";
+ };
+ };
+ "jest-leak-detector-24.9.0" = {
+ name = "jest-leak-detector";
+ packageName = "jest-leak-detector";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz";
+ sha512 = "2n6cx7niz5q8aryz2gahj0kz5s7vvj4xjn5py635kmmrhr7xa0immgd7h6id9zxccrxz8pn8rlp9maz447xfik1dyq32a927ch0b2dm";
+ };
+ };
+ "jest-matcher-utils-24.9.0" = {
+ name = "jest-matcher-utils";
+ packageName = "jest-matcher-utils";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz";
+ sha512 = "0fa7wakjy0cpr8scy7i55r1bp13r42n334abwv6p2zfkxa1dgkv0s00qm31437ixxv0rjah1d86vvjg6nvyn7hc62ifds9fgchzd71r";
+ };
+ };
+ "jest-message-util-24.9.0" = {
+ name = "jest-message-util";
+ packageName = "jest-message-util";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz";
+ sha512 = "2bq0saksr0nf5i1vj8lkrgwpb1ssyasmmxj0bwhn6ckf921bx3lapbg7wwzp96aa0qd81pv5n6gi0iz7cpvm4l67x9lhlvp4qbgqa50";
+ };
+ };
+ "jest-mock-24.9.0" = {
+ name = "jest-mock";
+ packageName = "jest-mock";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz";
+ sha512 = "3byaz1py3zmdifhw4743mrj6vq5mkqmkr83ps0w20i3dw2f46sqspx2prn9gyvcqa0i7za0gy6ff0gc28qjrcp4fxqayjlvjlvih4fw";
+ };
+ };
+ "jest-pnp-resolver-1.2.1" = {
+ name = "jest-pnp-resolver";
+ packageName = "jest-pnp-resolver";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz";
+ sha512 = "2fsj6wsh0r9hbal035dfnly528jk85b00z1rnikavh6zprlhwspq8rqjlv4ds0qkr2l62frwq803h6awxx3hgzpcbhgrqdrv7d700d6";
+ };
+ };
+ "jest-regex-util-24.9.0" = {
+ name = "jest-regex-util";
+ packageName = "jest-regex-util";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz";
+ sha512 = "101f428mjhbpli5q63y48lr2j3010x571y5km5mfk2zxx9vrqwnwvprsib89f5nv2lysfr6cin7gxc6ryyqx7yfc8za1idfl1psd46k";
+ };
+ };
+ "jest-resolve-24.9.0" = {
+ name = "jest-resolve";
+ packageName = "jest-resolve";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz";
+ sha512 = "0qkydcrqaqslxls0wgkxipas27szpigp62bw03ab640ilj8ym1zfm9x9w0x1ghp14x218dq5jzraf5niwvdybch2lc4z5zma8nxx8jd";
+ };
+ };
+ "jest-resolve-dependencies-24.9.0" = {
+ name = "jest-resolve-dependencies";
+ packageName = "jest-resolve-dependencies";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz";
+ sha512 = "3xflqrzhsd48ckwqzd4cc5b2qxng8f9946lws7dam37gwd4dxb5spjsswqa624bh36ymv8il4i4gjv9x4ay5whms19qi7an17ldnvhn";
+ };
+ };
+ "jest-runner-24.9.0" = {
+ name = "jest-runner";
+ packageName = "jest-runner";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz";
+ sha512 = "1d1djjic2c29yjm7lccjh8vpa7imjmr3b4y87v255dvg7cn9p7v78298hzjvl00xkaqn4vrnwd9w6rq8hf9yagvf6hlkzrp491hjjra";
+ };
+ };
+ "jest-runtime-24.9.0" = {
+ name = "jest-runtime";
+ packageName = "jest-runtime";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz";
+ sha512 = "2gwrn1nf3fc73wdc0a4gjipld6ahf9iq9k37rdzp5wxish6691xnb4b72j31k2hksr6caijgdgjhgxsbxi36lgmx24zvpl5g616m0zj";
+ };
+ };
+ "jest-serializer-24.9.0" = {
+ name = "jest-serializer";
+ packageName = "jest-serializer";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz";
+ sha512 = "1nkvvhcv9qvpdxj7p66qpi46yy4yqvdw6kfdfpq3b00x4i4ypxa1c8m9s7xh672svcibgv3ghwzfh3limg7mjkx53mzffpw7aj245hg";
+ };
+ };
+ "jest-snapshot-24.9.0" = {
+ name = "jest-snapshot";
+ packageName = "jest-snapshot";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz";
+ sha512 = "1xq7ysip1hh99xijwdhk5xmax44mkf7r0ggqdfzdmfnj7h75myfzr39nwi3ljvgwgj7lwkliz9bidivggmgl9fd13qvvcwj66ryp3xq";
+ };
+ };
+ "jest-util-24.9.0" = {
+ name = "jest-util";
+ packageName = "jest-util";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz";
+ sha512 = "0xcvxjx6b045jaki9zg2qjf7j10fv9wmlq2173553l6z11g73id4xgv591r7wdjd81x088fmmv2c53pq60fcjhddiqy562iqm9ikry7";
+ };
+ };
+ "jest-validate-24.9.0" = {
+ name = "jest-validate";
+ packageName = "jest-validate";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz";
+ sha512 = "12y3aryz98ppjhkz6zs9pix68d6ng43dq40wyvjhdzlf1cyyfs27qk9ra1zir84g2y42smvq7rclxj8sbkzh8ic9am0h2s05vl2vwhw";
+ };
+ };
+ "jest-watcher-24.9.0" = {
+ name = "jest-watcher";
+ packageName = "jest-watcher";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz";
+ sha512 = "1kqdbclywg8vhhvh6dhrmzmdfj1ivkwdl639qxam38nxvvv869b7j9shaag8zg7cmc5nlw67yhhc7p1pynv6r491l4pcpcgy8wwpxzv";
+ };
+ };
+ "jest-worker-24.9.0" = {
+ name = "jest-worker";
+ packageName = "jest-worker";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz";
+ sha512 = "1bj47m96z8b7jibrl7ybpmk88l2ic0yzwanlsimc1ca2gz8rhj0zaxaix9baxmyms63lq8dj2yxpafr739k3lhrl83pfjcc2vic8lz7";
+ };
+ };
+ "js-beautify-1.10.3" = {
+ name = "js-beautify";
+ packageName = "js-beautify";
+ version = "1.10.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.3.tgz";
+ sha512 = "2yvdw134756wahvr97k7b7s5d10h3wf454j0vjmwhgbdsmqidlyccrqvjhlm82vdwc3m0074ad79wp4qwmpclhagi9ksvx80lh3zyf1";
+ };
+ };
+ "js-stringify-1.0.2" = {
+ name = "js-stringify";
+ packageName = "js-stringify";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz";
+ sha1 = "1736fddfd9724f28a3682adc6230ae7e4e9679db";
+ };
+ };
+ "js-tokens-3.0.2" = {
+ name = "js-tokens";
+ packageName = "js-tokens";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz";
+ sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+ };
+ };
+ "js-tokens-4.0.0" = {
+ name = "js-tokens";
+ packageName = "js-tokens";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+ sha512 = "0lwyvximqkf1q5w94x2747nj2v035is66vzalrbl3f2gdh9k1m3m29p8zw6r65ps5784x2lxwz8akmv085l4ai358rwbp84axz59lj5";
+ };
+ };
+ "js-yaml-3.13.1" = {
+ name = "js-yaml";
+ packageName = "js-yaml";
+ version = "3.13.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
+ sha512 = "0kkjjrr0znm2ka89ywc5518c8dw0210z91fm94c7v11l8c96mkjh0ddld5mb7jmmnpzap7vn0fhvr29lma63c9is2ixq3fpp0xxrxk1";
+ };
+ };
+ "jsbn-0.1.1" = {
+ name = "jsbn";
+ packageName = "jsbn";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ };
+ "jsdom-11.12.0" = {
+ name = "jsdom";
+ packageName = "jsdom";
+ version = "11.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz";
+ sha512 = "27wagw1v4qv7snvz46q94kvwfzs4p86izsab5rm1bjh4dj18k527msjszrcnvb924sbwk4pj0ncvdqn6jzwydcpvlsi721jgbiz3hyb";
+ };
+ };
+ "jsesc-0.5.0" = {
+ name = "jsesc";
+ packageName = "jsesc";
+ version = "0.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz";
+ sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+ };
+ };
+ "jsesc-1.3.0" = {
+ name = "jsesc";
+ packageName = "jsesc";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz";
+ sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b";
+ };
+ };
+ "jsesc-2.5.2" = {
+ name = "jsesc";
+ packageName = "jsesc";
+ version = "2.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+ sha512 = "20bfkjw0zjachan7rfv75dn5ky7l12xhyz919mdhh9fjn395ss454ykknjza7fwyx09dj89makcs1xi341dvv4k1cvj94739ifbp2rr";
+ };
+ };
+ "json-buffer-3.0.0" = {
+ name = "json-buffer";
+ packageName = "json-buffer";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz";
+ sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898";
+ };
+ };
+ "json-parse-better-errors-1.0.2" = {
+ name = "json-parse-better-errors";
+ packageName = "json-parse-better-errors";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+ sha512 = "2pv1kaf7gjr0bhr2djaf1i88li7q3v5daz4zm4hz57i4h21jgryihxb5c2h0p0q1vrq1ffyg279hp0vjrg73shvxr5lir6plxjb5fls";
+ };
+ };
+ "json-schema-0.2.3" = {
+ name = "json-schema";
+ packageName = "json-schema";
+ version = "0.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ };
+ "json-schema-traverse-0.4.1" = {
+ name = "json-schema-traverse";
+ packageName = "json-schema-traverse";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
+ };
+ };
+ "json-stringify-safe-5.0.1" = {
+ name = "json-stringify-safe";
+ packageName = "json-stringify-safe";
+ version = "5.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ };
+ "json3-3.3.3" = {
+ name = "json3";
+ packageName = "json3";
+ version = "3.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz";
+ sha512 = "049m3dzsr3mcgk3g8hw79w9lr296zxs0qmmn45ngfzinyxsvqh6k52i49690bfjlhsv16yrs87vh4nh6lfy80xrdh02haicnnczrgvk";
+ };
+ };
+ "json5-0.5.1" = {
+ name = "json5";
+ packageName = "json5";
+ version = "0.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz";
+ sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
+ };
+ };
+ "json5-1.0.1" = {
+ name = "json5";
+ packageName = "json5";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz";
+ sha512 = "0xzlb8ipv7y4s06gdr1j09fgp9a8xcjrwy5qq739vgadwzfyslk6xph4f9d8zv7rrc0fg3qn6fpwg3y1mrzf0hbi5qp8yng11cvi938";
+ };
+ };
+ "json5-2.1.1" = {
+ name = "json5";
+ packageName = "json5";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz";
+ sha512 = "22wbapqjyyia17kracx58ch53wppglmma2r3k2wzfjixnljynv3s7sscdxffl5v70j77j89wvq0ldmpm8xrxdbap3hqs4067mfcgvcp";
+ };
+ };
+ "jsonpath-plus-0.19.0" = {
+ name = "jsonpath-plus";
+ packageName = "jsonpath-plus";
+ version = "0.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz";
+ sha512 = "29bszfdwjp446whcdh9mivbff8xl1v8jyamcwf6bg96mqr0jaghari3nfjqjrq33gv1di54kz17vrlj0bpakv2wwq0bpx6npjr7098r";
+ };
+ };
+ "jsprim-1.4.1" = {
+ name = "jsprim";
+ packageName = "jsprim";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ };
+ "jstransformer-1.0.0" = {
+ name = "jstransformer";
+ packageName = "jstransformer";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz";
+ sha1 = "ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3";
+ };
+ };
+ "keygrip-1.1.0" = {
+ name = "keygrip";
+ packageName = "keygrip";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz";
+ sha512 = "00x227di73g3xvz8pmdhf4ykssibdigbhqw7kr6a22s8w54r7raw71apsc3r2bwda290y3wzsmay0xi59j27lh6icy295ky6a29r149";
+ };
+ };
+ "keyv-3.0.0" = {
+ name = "keyv";
+ packageName = "keyv";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz";
+ sha512 = "32ga97c763vprf4sjbb2f7gbngfppq9n1hy4cpq2h4yb1msrhh2zjimxib7p09mzgynm6askbigxlsqsm11p644avp4sf5nmng8f2vs";
+ };
+ };
+ "killable-1.0.1" = {
+ name = "killable";
+ packageName = "killable";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz";
+ sha512 = "272kk46rkfh4wq4mispvvy174y6fj8rlnf1m5z8pszpa2igz586k5f8vzz3q3nckxwvkcyqzf48sndd48krwzr9ag22mhjlm4nasfig";
+ };
+ };
+ "kind-of-3.2.2" = {
+ name = "kind-of";
+ packageName = "kind-of";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ };
+ "kind-of-4.0.0" = {
+ name = "kind-of";
+ packageName = "kind-of";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz";
+ sha1 = "20813df3d712928b207378691a45066fae72dd57";
+ };
+ };
+ "kind-of-5.1.0" = {
+ name = "kind-of";
+ packageName = "kind-of";
+ version = "5.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
+ sha512 = "0zk87sccrjx6pgf9n74v4msnqwq5siyhrkpaklx7yk85ygy5ypcgmyfhbd5mmcyd53x8zcw0gzvp9bhbglziqbhp7a6n5zsf6p08q9l";
+ };
+ };
+ "kind-of-6.0.3" = {
+ name = "kind-of";
+ packageName = "kind-of";
+ version = "6.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";
+ sha512 = "23pm3j7jjxhl5igjj2mg91b2w2x6j39axjy2y7b1z0dp9jgnhxl885znwwvglzhnb5ssdc4v5vy04ks7xpwgzllyy1ngdmxbyxbbi3m";
+ };
+ };
+ "kleur-3.0.3" = {
+ name = "kleur";
+ packageName = "kleur";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz";
+ sha512 = "3rh87j32f450qslsmms0br15jzkv6b71n08xsms6wv6qfvdxv1b5cridqb7bmkwmvzffx9asikjs4vh328pmifhqn4iylcjafak6ckr";
+ };
+ };
+ "koa-2.11.0" = {
+ name = "koa";
+ packageName = "koa";
+ version = "2.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/koa/-/koa-2.11.0.tgz";
+ sha512 = "0q4rl38fvrdnml9ix2ka3nav9zd8ilxh6738b27nvx4r05y0lb17pjw7la9nqgq0q401alrkv1cyyliig40r88c1rd3jk2195s7v50j";
+ };
+ };
+ "koa-body-4.1.1" = {
+ name = "koa-body";
+ packageName = "koa-body";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/koa-body/-/koa-body-4.1.1.tgz";
+ sha512 = "1wfnjmilqj9fhv5dhmhpr5vx38ja1x8599nnqwx2977mhz15ig66fpcyk2rim80l8b77ir6g6w3wz71hppb445gf129kapwa0lzzdmc";
+ };
+ };
+ "koa-compose-3.2.1" = {
+ name = "koa-compose";
+ packageName = "koa-compose";
+ version = "3.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz";
+ sha1 = "a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7";
+ };
+ };
+ "koa-compose-4.1.0" = {
+ name = "koa-compose";
+ packageName = "koa-compose";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz";
+ sha512 = "1grd8vfvlnkpwjj8da79mig7p54842wpxzf2dhkj4dmsjm3yh5afh7kq83pig53xbfg6fbds2iwkypgl7r6naqwblpwdf637bqxdq7h";
+ };
+ };
+ "koa-convert-1.2.0" = {
+ name = "koa-convert";
+ packageName = "koa-convert";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz";
+ sha1 = "da40875df49de0539098d1700b50820cebcd21d0";
+ };
+ };
+ "koa-router-7.4.0" = {
+ name = "koa-router";
+ packageName = "koa-router";
+ version = "7.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/koa-router/-/koa-router-7.4.0.tgz";
+ sha512 = "3x0wdvpg0jxpv26fd4vqhw116nw797i4pzxsgpwm17yll74h8gyxg25zjnwihnm36lhxs9bb1p5m7bm0qcym4lm2b0z17c0fw6mls11";
+ };
+ };
+ "koa-send-5.0.0" = {
+ name = "koa-send";
+ packageName = "koa-send";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/koa-send/-/koa-send-5.0.0.tgz";
+ sha512 = "2fimqkgi0mli0fl0zfcylnbi29939cp2s7q8c60mnqiszbyyp4snkq5v87sfwjv04nkzc48l80jpkp3hdnw24fv6zp9vlpdbssnhipp";
+ };
+ };
+ "koa-static-5.0.0" = {
+ name = "koa-static";
+ packageName = "koa-static";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz";
+ sha512 = "1llav1xa767y46f8dhhapgqyyhc4hg7np4d34lbf0r0gg5fa9gi5lypzmn3q346rmym41g4jm0lb0hsnx6z0lpzmn4pc4aqgv49ib2j";
+ };
+ };
+ "koa-views-6.2.1" = {
+ name = "koa-views";
+ packageName = "koa-views";
+ version = "6.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/koa-views/-/koa-views-6.2.1.tgz";
+ sha512 = "1xzbplyv8h0gli3blaz4k8s148m29iq39mqk1jpdh6qs14x1y5ayimfscy1rvl1wy0ix6hmd1cd9g8bcsbd8c8d4qdckfhaiz1yskf1";
+ };
+ };
+ "lazy-cache-1.0.4" = {
+ name = "lazy-cache";
+ packageName = "lazy-cache";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz";
+ sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
+ };
+ };
+ "lcid-2.0.0" = {
+ name = "lcid";
+ packageName = "lcid";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz";
+ sha512 = "1wcm03j1xmwayngclsgc7xk3rfsn8d3lcas6yfxszjpjwa37nwiia213cxkagdfc56anijwb679bg42ak1w59d0bkq6j47wqdpw9wva";
+ };
+ };
+ "left-pad-1.3.0" = {
+ name = "left-pad";
+ packageName = "left-pad";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz";
+ sha512 = "08aih5wmcyaw8f8nxlcf6lhr8synqf7jpvcp0ah2vdkshckvhvw2a8sj2bqkf5dr3fq43rilnq8lj86zhasccqlrb09h0jd6lzlr3jw";
+ };
+ };
+ "leven-3.1.0" = {
+ name = "leven";
+ packageName = "leven";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz";
+ sha512 = "3acc4jl6xib9wx3gqgq9wqab262mwjyc8d6aa7igfiyfyami7w4g59b62if7hd8w0zh8k1q3kqkwdxgnqsvyygw6wdaak93gzw5mixa";
+ };
+ };
+ "levn-0.3.0" = {
+ name = "levn";
+ packageName = "levn";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+ };
+ };
+ "load-json-file-4.0.0" = {
+ name = "load-json-file";
+ packageName = "load-json-file";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz";
+ sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
+ };
+ };
+ "loader-runner-2.4.0" = {
+ name = "loader-runner";
+ packageName = "loader-runner";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz";
+ sha512 = "13mmy8rws80fp5mw0b7qwq5zvvlwq8v20hykp1npzsc5i5sw426j6sgi77js3lrqzbc8b7gjxhsrf26bi8xnn7ii8q64p2wskrspj96";
+ };
+ };
+ "loader-utils-1.2.3" = {
+ name = "loader-utils";
+ packageName = "loader-utils";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz";
+ sha512 = "1j5jpk2rz5n0365vhmgknl49zq4sav613jn87b6khghcfsj3xvm2y0zil8zai7rr7wx0fvx1w78297fyiic1yydvq34776xx3qp6jky";
+ };
+ };
+ "loader-utils-1.4.0" = {
+ name = "loader-utils";
+ packageName = "loader-utils";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz";
+ sha512 = "1sdj0mw1y0adq9fpaafpv91yz2ijx06s6fpzjfs0db47cry0q2xjcahr5aksf6vlxp7ripisvjz21hjkkdzrwh8pc3zm7vdq141czd8";
+ };
+ };
+ "locate-path-2.0.0" = {
+ name = "locate-path";
+ packageName = "locate-path";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz";
+ sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+ };
+ };
+ "locate-path-3.0.0" = {
+ name = "locate-path";
+ packageName = "locate-path";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+ sha512 = "3jbllbkvv54d6k6zss6spzsknz5icscyfclf377jjpndb8mmacq0v9vjr1w07zjn14gaz4d2hfi0yaqk4nvg6hbm16qi70nrkivn0zc";
+ };
+ };
+ "lodash-4.17.15" = {
+ name = "lodash";
+ packageName = "lodash";
+ version = "4.17.15";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
+ sha512 = "3a41cs1932x00vd7h32v6rfkaak3vhkwv4x0bg27ilhlmbpl95r3abc4vja21k42cdfprsy3sdfcp2xs02sfp1fflf7m3n2gd29q4zk";
+ };
+ };
+ "lodash.camelcase-4.3.0" = {
+ name = "lodash.camelcase";
+ packageName = "lodash.camelcase";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+ sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+ };
+ };
+ "lodash.clonedeep-4.5.0" = {
+ name = "lodash.clonedeep";
+ packageName = "lodash.clonedeep";
+ version = "4.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+ sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+ };
+ };
+ "lodash.memoize-4.1.2" = {
+ name = "lodash.memoize";
+ packageName = "lodash.memoize";
+ version = "4.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
+ sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
+ };
+ };
+ "lodash.sortby-4.7.0" = {
+ name = "lodash.sortby";
+ packageName = "lodash.sortby";
+ version = "4.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
+ sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+ };
+ };
+ "log-symbols-2.2.0" = {
+ name = "log-symbols";
+ packageName = "log-symbols";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz";
+ sha512 = "093j1mha2zwbfkb6cvxr94l1dsx44607vvyxadxki3j69s40n2f6x6iqs6f9rzpvvqd8anclsqdlrm3klkwxixm4k2fl8bjr4b01qjm";
+ };
+ };
+ "loglevel-1.6.7" = {
+ name = "loglevel";
+ packageName = "loglevel";
+ version = "1.6.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz";
+ sha512 = "3y57kcbhh98x86dpx7apanxgnkqf5chybr4jnwhzljd3k2n9knm5h7fp9aiv6bzpyvq1xg0qssgg3i47ddiz80h7vahfj6hb8n9x3bi";
+ };
+ };
+ "loglevelnext-1.0.5" = {
+ name = "loglevelnext";
+ packageName = "loglevelnext";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz";
+ sha512 = "3l63lnbnnsg2dgy8c89m5fxgdnl56a04hyiabic65zj4p9dsbh4jykr9jblvn8v7c7wx1a12mjv9gq69zfdfif00mw6q9pf8fmggzjp";
+ };
+ };
+ "long-4.0.0" = {
+ name = "long";
+ packageName = "long";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/long/-/long-4.0.0.tgz";
+ sha512 = "0q7w59j4asw2i6n4hwbdrcigmaz042y2hsm31brmjfp3fg465mgqjmia2giil8kxbdh5ijdx00lv4a8n8lbj6srbziqczr22hmgxhsy";
+ };
+ };
+ "longest-1.0.1" = {
+ name = "longest";
+ packageName = "longest";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
+ sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
+ };
+ };
+ "loose-envify-1.4.0" = {
+ name = "loose-envify";
+ packageName = "loose-envify";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
+ sha512 = "3fhlaj5f55z0d4f45a5vsyz1r5k40qy6mfbxphjgnz8x4jx4d1g4pz4v2793viw0hk04a1a6zbiqxbjsjzhidp9jmmzhngzd8yb2awp";
+ };
+ };
+ "lowercase-keys-1.0.0" = {
+ name = "lowercase-keys";
+ packageName = "lowercase-keys";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz";
+ sha1 = "4e3366b39e7f5457e35f1324bdf6f88d0bfc7306";
+ };
+ };
+ "lowercase-keys-1.0.1" = {
+ name = "lowercase-keys";
+ packageName = "lowercase-keys";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+ sha512 = "1a7qa1zn5zl1nf7i6w3299lc3biabfb0w2c30cl770l2dbldvi72nwvjdlinhx7j0ldip82sj710aprdjbmbg782i2pa3jpbgmy6qhv";
+ };
+ };
+ "lru-cache-4.1.5" = {
+ name = "lru-cache";
+ packageName = "lru-cache";
+ version = "4.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+ sha512 = "3k64s8pgffvqc84ar3r2jjvxnrll916m1q6s4m2k8pq2gqvlrzy11hdhvx2662fa4x7h1hcpn9wmy4kk28rgk3sj76w2fpn8dn6armi";
+ };
+ };
+ "lru-cache-5.1.1" = {
+ name = "lru-cache";
+ packageName = "lru-cache";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz";
+ sha512 = "3vjhn04mjkxbkfb4fh7xnlghlgmqffqp5i1w2vg1ndgh5izv7nwvr8lq1n1hypfs5pm3bvbk7wf3fjm2pavld1hipz0n8rp012l14ra";
+ };
+ };
+ "make-dir-1.3.0" = {
+ name = "make-dir";
+ packageName = "make-dir";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz";
+ sha512 = "2qkk2yzlzrfwnmw8l80cn4l91rfin7fmqn81j39s32i8gzijilbmc798wy51bs3m5gqa6dgrns95gals771jbbl4s4jgdl9ni3za3fv";
+ };
+ };
+ "make-dir-2.1.0" = {
+ name = "make-dir";
+ packageName = "make-dir";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
+ sha512 = "12asfdw6jlwcqjli9xywj755wznjxadmh7q6abrhldss26wdsik8w39dqww20i3ilr9mjam1r80ickwzlp9w7dz15bvqa1wszwmfbrd";
+ };
+ };
+ "make-error-1.3.6" = {
+ name = "make-error";
+ packageName = "make-error";
+ version = "1.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
+ sha512 = "2glh9fqac2bycfy6gmvv1r03pr484iglvv5ry3pjm6iz43h6qnkkw2l4sz9ydyadq6hip4wyjpj9jllbshxchh8k6lg5g5vsya23idk";
+ };
+ };
+ "makeerror-1.0.11" = {
+ name = "makeerror";
+ packageName = "makeerror";
+ version = "1.0.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz";
+ sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
+ };
+ };
+ "mamacro-0.0.3" = {
+ name = "mamacro";
+ packageName = "mamacro";
+ version = "0.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz";
+ sha512 = "1670fzjdl58zpljl3vblrzfz0805w0d99kdhf9rz4cgr1f2g01ibb5s5b1n7w7dqfv8lyig9zcqw2f0gsjlzxxwj4zc939fwn3k1hd8";
+ };
+ };
+ "map-age-cleaner-0.1.3" = {
+ name = "map-age-cleaner";
+ packageName = "map-age-cleaner";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+ sha512 = "3gk1kdfw4z4pjghrxyn53gyb40gbk71ycv5mi2mbidwxg76mbfgkxcn88zkcrjw38mq6vn5kcarw4n5zq79ligh5k1s6gr8fgmg373c";
+ };
+ };
+ "map-cache-0.2.2" = {
+ name = "map-cache";
+ packageName = "map-cache";
+ version = "0.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz";
+ sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+ };
+ };
+ "map-visit-1.0.0" = {
+ name = "map-visit";
+ packageName = "map-visit";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz";
+ sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+ };
+ };
+ "md5.js-1.3.5" = {
+ name = "md5.js";
+ packageName = "md5.js";
+ version = "1.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz";
+ sha512 = "29ds70y468n42xivsz4vrgy8rp2x4nxz52z1vkd1k49556gvn74pq998s510g3jgz9972m9yxs6yk1kw752blq97b9w8gaddkwlyay6";
+ };
+ };
+ "media-typer-0.3.0" = {
+ name = "media-typer";
+ packageName = "media-typer";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ };
+ "mem-4.3.0" = {
+ name = "mem";
+ packageName = "mem";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz";
+ sha512 = "3znrz98ggx92y1crm2y017k8lriwz4m9y4w451wm0h1jzsq7jgpafymdvgpznvx07l3xw8inznd78zzwyxdzhb0aq8scki9iwdrnzd9";
+ };
+ };
+ "memory-fs-0.4.1" = {
+ name = "memory-fs";
+ packageName = "memory-fs";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz";
+ sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
+ };
+ };
+ "memory-fs-0.5.0" = {
+ name = "memory-fs";
+ packageName = "memory-fs";
+ version = "0.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz";
+ sha512 = "0cgni6pl3js3s6ylnj3j9sydf6z5sbnpyi42xdh4437rd6c7xgbapzdq84wn8dzxrcf7sva66z7m6mna61sdagfs41078aa9rsjn3cc";
+ };
+ };
+ "merge-descriptors-1.0.1" = {
+ name = "merge-descriptors";
+ packageName = "merge-descriptors";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ };
+ "merge-stream-2.0.0" = {
+ name = "merge-stream";
+ packageName = "merge-stream";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz";
+ sha512 = "3gyvijjr3va5jwglqgv7sqxm4a6nhzhj32sl68ffjf8axkzi5z25g0nl2r2mvw1kjs3z49wxjdclljkk4whzpqka4vzjg9fwylgzfv9";
+ };
+ };
+ "methods-1.1.2" = {
+ name = "methods";
+ packageName = "methods";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ };
+ "micromatch-3.1.10" = {
+ name = "micromatch";
+ packageName = "micromatch";
+ version = "3.1.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
+ sha512 = "1r9rsac8gdslsplya0cnzyk6q0bh7m0wnxccdisacr5327k5k0v6f48dzp0022z8qqpzpvxw7sv1gzhvrqn6v5sz7qcvx37by1a8s1i";
+ };
+ };
+ "miller-rabin-4.0.1" = {
+ name = "miller-rabin";
+ packageName = "miller-rabin";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz";
+ sha512 = "12277knznlw4myxmgg6vgkrwmrhj9dyniscrlph3s08ndi2q25v3wrv6rwanvz29v5k5x756xa5yif4xllrghpn3jqaamnr3cp5ypnp";
+ };
+ };
+ "mime-1.6.0" = {
+ name = "mime";
+ packageName = "mime";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+ sha512 = "1x901mk5cdib4xp27v4ivwwr7mhy64r4rk953bzivi5p9lf2bhw88ra2rhkd254xkdx2d3q30zkq239vc4yx4pfsj4hpys8rbr6fif7";
+ };
+ };
+ "mime-2.4.4" = {
+ name = "mime";
+ packageName = "mime";
+ version = "2.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz";
+ sha512 = "0c4qs0w88nqz2v7441rw9bbsgrsh50cifwmqm2i7c96yz2ncdy35cb5g42zhr6z0wmqqcwq5la04nnf1n4y3zncvgyg8b721hvnc71d";
+ };
+ };
+ "mime-db-1.43.0" = {
+ name = "mime-db";
+ packageName = "mime-db";
+ version = "1.43.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
+ sha512 = "36x3p6lll5v1g7na92kbba0bpcl36i1argsqn8iy4mgz3zh3llnqhzhfw0l26jqcb0mh9rhhmrx718kvqzchga6y79qdg9884c6r5zv";
+ };
+ };
+ "mime-types-2.1.26" = {
+ name = "mime-types";
+ packageName = "mime-types";
+ version = "2.1.26";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
+ sha512 = "1cxsgrndjg6jyfqzm74hv6cmy9lil52f1kzkq2niknaiqz20p3yiw0fpgsyld2zrbxr9abpdabz1q6nqa50xr9a0cmbjbi0cqymlnnk";
+ };
+ };
+ "mimic-fn-1.2.0" = {
+ name = "mimic-fn";
+ packageName = "mimic-fn";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz";
+ sha512 = "1clrrqw75rmpkw0x53axy8va2hq2gzynz9zb58m0xv1nh3lg81cv4dfdy7pk9vrlb9ydwmj6klpicwkv2bjx3m8aj4fi2ph3jxkizwd";
+ };
+ };
+ "mimic-fn-2.1.0" = {
+ name = "mimic-fn";
+ packageName = "mimic-fn";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
+ sha512 = "1r8csnc32c6rrvy8d5d1g33gba52m1863wdwl7qbancmzn795726im9mrwp20k3d8pl4x4msp7n6wpldvcwkmk5y4cy0h84ka9wx9is";
+ };
+ };
+ "mimic-response-1.0.1" = {
+ name = "mimic-response";
+ packageName = "mimic-response";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz";
+ sha512 = "32nwz24nh1f2nbpk8i638ff8hsg1ajmc6746abkssjr951z28362k5a92dd1cfr7bd1l9f507cn0pbam04ixfgsaygskv87g6v1r4cg";
+ };
+ };
+ "minimalistic-assert-1.0.1" = {
+ name = "minimalistic-assert";
+ packageName = "minimalistic-assert";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+ sha512 = "3y39pa1xxg7j49vya7xca4p1mg89d0df56hj4yjhpyhmza3g5qvpgp11xs11wkd48zzy7ym970jfbn0ppimmczpijns249j7q05rljj";
+ };
+ };
+ "minimalistic-crypto-utils-1.0.1" = {
+ name = "minimalistic-crypto-utils";
+ packageName = "minimalistic-crypto-utils";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+ sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+ };
+ };
+ "minimatch-3.0.4" = {
+ name = "minimatch";
+ packageName = "minimatch";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+ sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
+ };
+ };
+ "minimist-0.0.8" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "0.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ };
+ "minimist-1.2.5" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "1.2.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+ sha512 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
+ };
+ };
+ "mississippi-2.0.0" = {
+ name = "mississippi";
+ packageName = "mississippi";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz";
+ sha512 = "2gnigixsj38hrqchkf6k8wqywihq6l14pg0qb23x3qpjn56vybljv3nz1z7cbzhl952h1xfw28vsqm09pjhpv9zs9sm43rdxazkqync";
+ };
+ };
+ "mississippi-3.0.0" = {
+ name = "mississippi";
+ packageName = "mississippi";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz";
+ sha512 = "2895y9fw0xa9bmwbbkv3ziz5gnvr2b9k6kgh1b815ppwhgpcnbzsmn3bjvd2c1852hfakgnxw5hbn8kr8ff1pfbnm8x0lk3qm5gb3n7";
+ };
+ };
+ "mixin-deep-1.3.2" = {
+ name = "mixin-deep";
+ packageName = "mixin-deep";
+ version = "1.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
+ sha512 = "08fzp03g97vcq1dm4qs3kfjbazfs8h2m99bzdhn9caddpi4xr9bw9n9adlrv24qwfdw2jphwfhjszdwnykawd3ysj4ihp76zygh66jr";
+ };
+ };
+ "mkdirp-0.5.1" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "0.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ };
+ "moment-2.24.0" = {
+ name = "moment";
+ packageName = "moment";
+ version = "2.24.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
+ sha512 = "111s7ki890wwh47hr44ps1q5vsh23jpp56dlgvyzz7hg71np9xkrc7k683qvfs7zyijb9fdcwzvinjcnbz36lhn0hg2hhknm7xxypkd";
+ };
+ };
+ "moment-timezone-0.5.28" = {
+ name = "moment-timezone";
+ packageName = "moment-timezone";
+ version = "0.5.28";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz";
+ sha512 = "0zr752vsxhfbfh884hzz8xbqkvs2l5778qwrkl7gxihdasi2ni80w61hvp858xclvgmcqgl2v8z1pjkffj5cbcihdb8aa1jy1k68cjc";
+ };
+ };
+ "move-concurrently-1.0.1" = {
+ name = "move-concurrently";
+ packageName = "move-concurrently";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz";
+ sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+ };
+ };
+ "ms-2.0.0" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ };
+ "ms-2.1.1" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+ sha512 = "352z145jr1zx0w6kmlz2jxcaw6j2pwwg9va3x4gk731zw1agka2b213avw12zx6hgn071ibm0f3p80n5cdv896npay4s6jwbrv7w2mn";
+ };
+ };
+ "ms-2.1.2" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+ sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
+ };
+ };
+ "multicast-dns-6.2.3" = {
+ name = "multicast-dns";
+ packageName = "multicast-dns";
+ version = "6.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz";
+ sha512 = "3m42kr8y2s1krl4gzb5xsa9v3h01xalvrgdkj99gyfaq7761asmj5m6kzm70mxb22125gia12g7rmarnzmh09403j8j2cyvx7jqjblf";
+ };
+ };
+ "multicast-dns-service-types-1.1.0" = {
+ name = "multicast-dns-service-types";
+ packageName = "multicast-dns-service-types";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
+ sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
+ };
+ };
+ "mz-2.7.0" = {
+ name = "mz";
+ packageName = "mz";
+ version = "2.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz";
+ sha512 = "3cpmwzmngnmxhklvicnsbl5dchvsy0yikzgf705cq1cplyps3waa03xbjp306bjf167wnplibwki0csnavz98dihq2877g7xqs4dkfg";
+ };
+ };
+ "nan-2.14.0" = {
+ name = "nan";
+ packageName = "nan";
+ version = "2.14.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
+ sha512 = "115f4m91pjscflwskc29clsspd2z02gdbz0dbj63ja8bf67nraw14gvppl4872y9z2f5vbjlkpg1i4625zvalx3gp04vvn2gs7qblr0";
+ };
+ };
+ "nanomatch-1.2.13" = {
+ name = "nanomatch";
+ packageName = "nanomatch";
+ version = "1.2.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
+ sha512 = "04al0wvh9hw1p9bblk847c5nbi3lcjz2pg5yzpqdzgllk57firrqinn4yk169iddaagdf9s5l987xh43z87w3hm9h0pqv0i7pcix6ky";
+ };
+ };
+ "natural-compare-1.4.0" = {
+ name = "natural-compare";
+ packageName = "natural-compare";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
+ sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+ };
+ };
+ "negotiator-0.6.2" = {
+ name = "negotiator";
+ packageName = "negotiator";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
+ sha512 = "0xi79rad0khwah5v2k6pvh8ajjgi7hp3zlkg6gk11pv70ydcq7li0kzcv1gnaf13gmblzhvx7hxs2nhypphb0sp4cggiy4ympndr5c5";
+ };
+ };
+ "neo-async-2.6.1" = {
+ name = "neo-async";
+ packageName = "neo-async";
+ version = "2.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz";
+ sha512 = "1kvffl97cs76iidch6z424p50m0wdryx6h6b1jdgr71bfg035szlxcdl6dz9jy71aj8msvprdq2ilbs9jisbim3g1b4l2bfy3qsc9lb";
+ };
+ };
+ "next-tick-1.0.0" = {
+ name = "next-tick";
+ packageName = "next-tick";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz";
+ sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+ };
+ };
+ "nice-try-1.0.5" = {
+ name = "nice-try";
+ packageName = "nice-try";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
+ sha512 = "0swp764n5mcgqfjbm3hsw9iayqy46490y4lvqyk6www0a02bw130mji8lvsvlr34sc29rai5i4vpwwhh76mzplf6ljrlvwyszjphy6n";
+ };
+ };
+ "node-forge-0.8.5" = {
+ name = "node-forge";
+ packageName = "node-forge";
+ version = "0.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-forge/-/node-forge-0.8.5.tgz";
+ sha512 = "3nzl12m7r7d345xjm7a1kq3yjdwfa9x892djy3444h7jaav25zmzh0bcg2f24ympwh7qmyihgpx7b2dgpka52nw5k2zw9vydchi0lxw";
+ };
+ };
+ "node-forge-0.9.0" = {
+ name = "node-forge";
+ packageName = "node-forge";
+ version = "0.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz";
+ sha512 = "0lhlm8x38i28zwmjycgdcyzcqlb0x3z8scjx7vm3s4ypj99bfj7pmv18yxjsnz532z7g9li2aa1x54hbv61dmvbvm4yj3z9ml6rl17c";
+ };
+ };
+ "node-int64-0.4.0" = {
+ name = "node-int64";
+ packageName = "node-int64";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz";
+ sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
+ };
+ };
+ "node-jose-1.1.3" = {
+ name = "node-jose";
+ packageName = "node-jose";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-jose/-/node-jose-1.1.3.tgz";
+ sha512 = "3qb1g8mkwn2vfqj84a62sp2dfg52334f3dj7ab240w51qrf2wl2s62qjvjz46jid9r3dmasxs0hp1zbjgnqkbg9kiii8nl6if5mzslj";
+ };
+ };
+ "node-libs-browser-2.2.1" = {
+ name = "node-libs-browser";
+ packageName = "node-libs-browser";
+ version = "2.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
+ sha512 = "3jhlmpgvcnjkg1bh3qp6rqp4a4plsih4bcfqkg0by0acj58r2m1x1jlsgw1k114920vlsvwl563lfjh844mpm02ykcs14gxq47xrz47";
+ };
+ };
+ "node-modules-regexp-1.0.0" = {
+ name = "node-modules-regexp";
+ packageName = "node-modules-regexp";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
+ sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
+ };
+ };
+ "node-notifier-5.4.3" = {
+ name = "node-notifier";
+ packageName = "node-notifier";
+ version = "5.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz";
+ sha512 = "3qq3cn12n130r2k8aldr2fn3afv21m8ichf87yj7nfp251ypmb5kv9vxs70k93g9nr6164l7crvyzmw4j6b3lr8yj5f739qrcch319k";
+ };
+ };
+ "nopt-4.0.3" = {
+ name = "nopt";
+ packageName = "nopt";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
+ sha512 = "0mb9va0ag1n8v5c2lhza37prcw4iyrmbw5n6yglk1kcg95xwqi9ng5dqwr17h63sl5dba2rnwwrzz7dnfvkx5z75h4j7d9kag0qdxha";
+ };
+ };
+ "normalize-package-data-2.5.0" = {
+ name = "normalize-package-data";
+ packageName = "normalize-package-data";
+ version = "2.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+ sha512 = "1wbwhlsm965n61y23wrm50ric9l7rig90wvx7hjdl34np6n1bbqcc67wgm494z303s6y5aj4xjyism3n6kikp40iz9qaizlfhvqr47z";
+ };
+ };
+ "normalize-path-2.1.1" = {
+ name = "normalize-path";
+ packageName = "normalize-path";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz";
+ sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+ };
+ };
+ "normalize-path-3.0.0" = {
+ name = "normalize-path";
+ packageName = "normalize-path";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+ sha512 = "0n301s7qa4645iyk3zpcgin8r19p0p8h8g50c3mnnrl9n3m9rpyxv79hjl6miix9daq12s69am1sbskhqnzbabmn2id0nippgj6rrp9";
+ };
+ };
+ "normalize-url-2.0.1" = {
+ name = "normalize-url";
+ packageName = "normalize-url";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz";
+ sha512 = "0rykwifg14xfgm9m6md48rkqqxa2cya4xdsv7jjciacis2nz6dzaccpzyldlpvy14rvihpxbdiysfn49a8x8x5jw84klmxzh9di98qg";
+ };
+ };
+ "npm-run-path-2.0.2" = {
+ name = "npm-run-path";
+ packageName = "npm-run-path";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz";
+ sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+ };
+ };
+ "number-is-nan-1.0.1" = {
+ name = "number-is-nan";
+ packageName = "number-is-nan";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ };
+ "nwsapi-2.2.0" = {
+ name = "nwsapi";
+ packageName = "nwsapi";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz";
+ sha512 = "22vnwmwzxgzp9flhivwzrsa2jr754ysi133p4wdqdfgvg1mvhbjh1hv7ahbl7i2m7zv4vs6higga9c1gydywvwsi53y47qqvjsilq47";
+ };
+ };
+ "oauth-sign-0.9.0" = {
+ name = "oauth-sign";
+ packageName = "oauth-sign";
+ version = "0.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
+ };
+ };
+ "object-assign-4.1.1" = {
+ name = "object-assign";
+ packageName = "object-assign";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ };
+ "object-copy-0.1.0" = {
+ name = "object-copy";
+ packageName = "object-copy";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz";
+ sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+ };
+ };
+ "object-hash-1.3.1" = {
+ name = "object-hash";
+ packageName = "object-hash";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
+ sha512 = "06crm6ynp4rxakk4frrb4kjmi758r38fs5h0f6b7giyxhj0dghb6mdx7sbp0nhnk2w8cyb1bli07d9nbm086i34j8yx641qjpzawarr";
+ };
+ };
+ "object-inspect-1.7.0" = {
+ name = "object-inspect";
+ packageName = "object-inspect";
+ version = "1.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
+ sha512 = "19lmsxagwl8zzqckw6p0bdjwjbq2bshicnw78az9ka40d0gjghmdm0ify1n3857fxadv43c6v0g27rk1dl514iwh40a5i3mv0fl9fkb";
+ };
+ };
+ "object-keys-1.1.1" = {
+ name = "object-keys";
+ packageName = "object-keys";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
+ sha512 = "0nf2rr25ncya39v7cq274x3w4drfbdrc3iqdwd017s1wndwh9plsjagbvhl6j6l6piipprdsvgfx4vfz8q2piz7bi4bjcll8d4h9q1n";
+ };
+ };
+ "object-visit-1.0.1" = {
+ name = "object-visit";
+ packageName = "object-visit";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz";
+ sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+ };
+ };
+ "object.assign-4.1.0" = {
+ name = "object.assign";
+ packageName = "object.assign";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
+ sha512 = "3krdp08gvbxvipalq64qy7bm86znxxdb7ap6bjki235qs17i9fsn6hqd22ga31sqyqa6iyy5xjfnnqc7lsck1kaybwsh154mrxcj4bv";
+ };
+ };
+ "object.getownpropertydescriptors-2.1.0" = {
+ name = "object.getownpropertydescriptors";
+ packageName = "object.getownpropertydescriptors";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
+ sha512 = "1b08dy2xs3gqhwviks5245b0m3fa6kkdcqi8wldr5cfvkpgwbvdx474k9y5cjnsf2z075gysifxsc39i59fslxrl55kgpa03xmcx7b7";
+ };
+ };
+ "object.pick-1.3.0" = {
+ name = "object.pick";
+ packageName = "object.pick";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz";
+ sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+ };
+ };
+ "obuf-1.1.2" = {
+ name = "obuf";
+ packageName = "obuf";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz";
+ sha512 = "0vcjqppr8sr1in2haifxl9q8v6kgn8pddc4ffkjbx5n2fasb3kdrx7mybkfxqdaqfch2hqrwa87rrwllqd5lrmx73md609682xp0z9x";
+ };
+ };
+ "oidc-token-hash-3.0.2" = {
+ name = "oidc-token-hash";
+ packageName = "oidc-token-hash";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-3.0.2.tgz";
+ sha512 = "127wvn9pnb5jjxqhkr54w07z6s0njlqvrv4k8cnn2vf5y4hpbykcl2cyn8yw8zwqhzv6bqikhza5nkhmv1zm8kgpazddzgj9zryjg3m";
+ };
+ };
+ "on-finished-2.3.0" = {
+ name = "on-finished";
+ packageName = "on-finished";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ };
+ "on-headers-1.0.2" = {
+ name = "on-headers";
+ packageName = "on-headers";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
+ sha512 = "2n6994y8y4b146a5wpzzgw779yc227cqkmwsifc3fbn2kc9dzypjigqf72bpgsqrk7gs93l6fk4iqdk752jnsnpr89j58sbabw09455";
+ };
+ };
+ "once-1.4.0" = {
+ name = "once";
+ packageName = "once";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ };
+ "onetime-2.0.1" = {
+ name = "onetime";
+ packageName = "onetime";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz";
+ sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+ };
+ };
+ "only-0.0.2" = {
+ name = "only";
+ packageName = "only";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/only/-/only-0.0.2.tgz";
+ sha1 = "2afde84d03e50b9a8edc444e30610a70295edfb4";
+ };
+ };
+ "opener-1.5.1" = {
+ name = "opener";
+ packageName = "opener";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz";
+ sha512 = "2yg0r89kjihas5gr319kw75b6bjalmhpy6yfabd8g7vnldsddnnwsdbzb3942c9c9zrbz8pwa17an3rkcb8nwdd8lw72l9njz5i51l2";
+ };
+ };
+ "openid-client-2.5.0" = {
+ name = "openid-client";
+ packageName = "openid-client";
+ version = "2.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/openid-client/-/openid-client-2.5.0.tgz";
+ sha512 = "339via1h7paxj3qwnzzs6p7x4r3p51k55pc6z85dpzk2gslhp84fnwa4scgcaib9xai7smcc5y7vgb88p20awllvda6v8a4ph7lay5p";
+ };
+ };
+ "opn-5.5.0" = {
+ name = "opn";
+ packageName = "opn";
+ version = "5.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz";
+ sha512 = "2qa90jg1bw4yx1an6vbx2cp7lpk6xwa94yrbr6mkpl2h95wl4iinlmlzzy2z5ihm79d4ypkjkf3w5m7cjl79775amsbav5x021fk89y";
+ };
+ };
+ "optionator-0.8.3" = {
+ name = "optionator";
+ packageName = "optionator";
+ version = "0.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz";
+ sha512 = "1n905a6d9xvmaqhy1xvpk4m7amkpx4wmky0w9764biihzkgachffm975qq5yqy4qjri2pbrrck994dsnz4ipmv4kbb7b4wx02jbv1gq";
+ };
+ };
+ "ora-3.4.0" = {
+ name = "ora";
+ packageName = "ora";
+ version = "3.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz";
+ sha512 = "1i331n8qj60jz6f51yfczwaspwsj57sykmgj34cwzhvlp761l2rx1iwqd247xys1749hhddfp6mmzznfp32dxqkjkl5ffsvsfwhgp3q";
+ };
+ };
+ "original-1.0.2" = {
+ name = "original";
+ packageName = "original";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz";
+ sha512 = "038qn5613vi5gjik4pmng7zf2ib4w81hjyzy9dhflj7kw1p1ll09nq63x9rnkyyflkv33lq8bx0fbw1gzlpp4asy24l7adam2bma847";
+ };
+ };
+ "os-browserify-0.3.0" = {
+ name = "os-browserify";
+ packageName = "os-browserify";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz";
+ sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+ };
+ };
+ "os-homedir-1.0.2" = {
+ name = "os-homedir";
+ packageName = "os-homedir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ };
+ "os-locale-3.1.0" = {
+ name = "os-locale";
+ packageName = "os-locale";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz";
+ sha512 = "3frcfnhc4914snsnfqyqrz253i5dd31202gbx4dzkp6bvc8f7wnqhfyc89zp662v016gdqa7wb1z2g6p8nzk6cxzwscwn0qii3pgjb7";
+ };
+ };
+ "os-tmpdir-1.0.2" = {
+ name = "os-tmpdir";
+ packageName = "os-tmpdir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ };
+ "osenv-0.1.5" = {
+ name = "osenv";
+ packageName = "osenv";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
+ sha512 = "3ddw0y41pxv08ls5xhmq1bi81hppjbr45k78cjfx99vznh5znrj5g1b1wab9caj1mqlsvmfms0zm9cfb47ygm0d8wv5fccx8049q9fh";
+ };
+ };
+ "p-any-1.1.0" = {
+ name = "p-any";
+ packageName = "p-any";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-any/-/p-any-1.1.0.tgz";
+ sha512 = "3da1hqkqhwx9xiw283nnq04pvsj1a69k7k0np5126v33dmpgxyhg19s99bz6djzd6sp713yg02h3h636wlgi9v2099rlrq2mrajvz8i";
+ };
+ };
+ "p-cancelable-0.4.1" = {
+ name = "p-cancelable";
+ packageName = "p-cancelable";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz";
+ sha512 = "02ipk9sgz2q0msm9h53lxbjvqprh9k6zj8q21dvczv6p6a5d4q5yqcmwj6xm0icmdc94n42plfmwlymnqn4f15pgci5j1zgq81vbmhw";
+ };
+ };
+ "p-defer-1.0.0" = {
+ name = "p-defer";
+ packageName = "p-defer";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz";
+ sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+ };
+ };
+ "p-each-series-1.0.0" = {
+ name = "p-each-series";
+ packageName = "p-each-series";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz";
+ sha1 = "930f3d12dd1f50e7434457a22cd6f04ac6ad7f71";
+ };
+ };
+ "p-finally-1.0.0" = {
+ name = "p-finally";
+ packageName = "p-finally";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
+ sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+ };
+ };
+ "p-is-promise-1.1.0" = {
+ name = "p-is-promise";
+ packageName = "p-is-promise";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz";
+ sha1 = "9c9456989e9f6588017b0434d56097675c3da05e";
+ };
+ };
+ "p-is-promise-2.1.0" = {
+ name = "p-is-promise";
+ packageName = "p-is-promise";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz";
+ sha512 = "0z3jpi001p4scg2h40kyy7mjvscz8l9mpdp79lhk9b19lyiz140gbwi8963dr5nrysmkrl0hy52v6ikg2wzfsmk8m6ccasgak1b8xb3";
+ };
+ };
+ "p-limit-1.3.0" = {
+ name = "p-limit";
+ packageName = "p-limit";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz";
+ sha512 = "3sh18calqxbww99pxc84hldflmj0i915g8npihlmazw8wjqabihi9475v0ll3fhx44sxn35j014j1k5d2xr73q3mpwkmx09n2q1gxxy";
+ };
+ };
+ "p-limit-2.2.2" = {
+ name = "p-limit";
+ packageName = "p-limit";
+ version = "2.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz";
+ sha512 = "36v4kvifp6msn6gaal1pgwy5qi56fbv8295221a6araml7nzxsnw2jfy7i6k7ybxy3dida9xxnyx447s8i8f15m27xklacwfz27wr2q";
+ };
+ };
+ "p-locate-2.0.0" = {
+ name = "p-locate";
+ packageName = "p-locate";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz";
+ sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+ };
+ };
+ "p-locate-3.0.0" = {
+ name = "p-locate";
+ packageName = "p-locate";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+ sha512 = "14sa2r3zdhvy3sq757d4l21nxrlb7picyigb8zm956bbjadcv22chrfa95wzzrf28z0cyj62b6yihhdc9508q82gs2q3yz8yk1pdvf7";
+ };
+ };
+ "p-map-2.1.0" = {
+ name = "p-map";
+ packageName = "p-map";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz";
+ sha512 = "0bx813aqd3627xffp035h9nimfd19i0l6may47yd0k7x2bngiyp8z31im58ac1nnxy3gdb3yiilagbyqlb7qwc8wdw06f3wjwmgqxnb";
+ };
+ };
+ "p-reduce-1.0.0" = {
+ name = "p-reduce";
+ packageName = "p-reduce";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz";
+ sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa";
+ };
+ };
+ "p-retry-3.0.1" = {
+ name = "p-retry";
+ packageName = "p-retry";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz";
+ sha512 = "3gknqxqyn23vmgcqsvnvspzynkbkfn74f3plq72wj54kcyy5f3mbq3lw8pj2gwpmbkqcv7w0wvk3vv54dlny5j5dgv48khkwviqckjw";
+ };
+ };
+ "p-some-2.0.1" = {
+ name = "p-some";
+ packageName = "p-some";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-some/-/p-some-2.0.1.tgz";
+ sha1 = "65d87c8b154edbcf5221d167778b6d2e150f6f06";
+ };
+ };
+ "p-timeout-2.0.1" = {
+ name = "p-timeout";
+ packageName = "p-timeout";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz";
+ sha512 = "0h1wg3bw3pyf3vlnxxfnrs3h33lwbx5n1lz4cz8ivh7bi8vjd6makxf6p1xz1d70ww3gj2ghryhbg6w1myxacgirk51ym23qzksdizk";
+ };
+ };
+ "p-try-1.0.0" = {
+ name = "p-try";
+ packageName = "p-try";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz";
+ sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+ };
+ };
+ "p-try-2.2.0" = {
+ name = "p-try";
+ packageName = "p-try";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+ sha512 = "1skmb50xzdk3qzd1f9l5mw8xp29frkizl63bhb9l1amivqybqb23n2824906vx790hjlwyhhrfzpzr5xr6ilzvy1xyl0ly0ah0wz2a7";
+ };
+ };
+ "pako-1.0.11" = {
+ name = "pako";
+ packageName = "pako";
+ version = "1.0.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz";
+ sha512 = "1imm2ygnj1himskq6lblzdh3ngc6p9gkvhrbzivalqf3nwafzfglpmbh8wkaz0rsiaxh67jzxbb16m2ygapfcnfwqg9gkdqzkqc24p2";
+ };
+ };
+ "parallel-transform-1.2.0" = {
+ name = "parallel-transform";
+ packageName = "parallel-transform";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz";
+ sha512 = "35gr4098wc5ibbrpckgva8l9v50z6mcii4y3kv6wc1ymz3aj2i444y3m2qm2ngf0k02ylqkg3gn7g6awkqfs56ppljy5wmpifcd4srz";
+ };
+ };
+ "parse-asn1-5.1.5" = {
+ name = "parse-asn1";
+ packageName = "parse-asn1";
+ version = "5.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz";
+ sha512 = "16n59f599pq8832a6c5wyxnqdf4vrqrdnclzs6vp9m2z2h9qmxamjk6xcrl1aal758jyba0pvyz1bkf7npm7achfxxa29jwaygihhwf";
+ };
+ };
+ "parse-json-4.0.0" = {
+ name = "parse-json";
+ packageName = "parse-json";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz";
+ sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+ };
+ };
+ "parse-passwd-1.0.0" = {
+ name = "parse-passwd";
+ packageName = "parse-passwd";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz";
+ sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
+ };
+ };
+ "parse5-4.0.0" = {
+ name = "parse5";
+ packageName = "parse5";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz";
+ sha512 = "0a10cnny1cy9csxrw2736fjbhqp0jqv8hnghr7gz9jrlkclw91f8rzg1173b43b3dbc1qq68g7vy4hq4b45r3bmw5j52kvpwxw7pdjn";
+ };
+ };
+ "parseurl-1.3.3" = {
+ name = "parseurl";
+ packageName = "parseurl";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+ sha512 = "2lzxqjq4zp60k9gbskpqz7pr1yvb0c6nygd42sia7n6km2gc0cc844nlc5d6r9sshrjhjvs284143jzvz9wzd4r6xr9dz2k24xrwb0a";
+ };
+ };
+ "pascalcase-0.1.1" = {
+ name = "pascalcase";
+ packageName = "pascalcase";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz";
+ sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+ };
+ };
+ "path-browserify-0.0.1" = {
+ name = "path-browserify";
+ packageName = "path-browserify";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz";
+ sha512 = "2avzhwqw37c6l7a0f276z7qzchzhwppinxhgg6q7by5bskwb7q7sfhwijb6fx4ingbdzb4i1pw6la5pg0izb5s4z69268278gil1ah5";
+ };
+ };
+ "path-dirname-1.0.2" = {
+ name = "path-dirname";
+ packageName = "path-dirname";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
+ sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+ };
+ };
+ "path-exists-3.0.0" = {
+ name = "path-exists";
+ packageName = "path-exists";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+ sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+ };
+ };
+ "path-is-absolute-1.0.1" = {
+ name = "path-is-absolute";
+ packageName = "path-is-absolute";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ };
+ "path-is-inside-1.0.2" = {
+ name = "path-is-inside";
+ packageName = "path-is-inside";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz";
+ sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+ };
+ };
+ "path-key-2.0.1" = {
+ name = "path-key";
+ packageName = "path-key";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz";
+ sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+ };
+ };
+ "path-parse-1.0.6" = {
+ name = "path-parse";
+ packageName = "path-parse";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+ sha512 = "37qw5986wccpwwqckqky509s4nd6zwv200s9r2v6mcf5nsyxgf2x00m4yp918mkkz84sdh4q0kjbg0hhfq4flpz0l6v47hvc57qwa8r";
+ };
+ };
+ "path-to-regexp-0.1.7" = {
+ name = "path-to-regexp";
+ packageName = "path-to-regexp";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ };
+ "path-to-regexp-1.8.0" = {
+ name = "path-to-regexp";
+ packageName = "path-to-regexp";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz";
+ sha512 = "1a1s16c1sx28yq8nh8sqkj9izaypszmxfk27x5hl1wid9611b5viffw9vbwqw6sik20ksgmh18dqndglbvq82dii4jl0aal353ck3cz";
+ };
+ };
+ "path-type-3.0.0" = {
+ name = "path-type";
+ packageName = "path-type";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz";
+ sha512 = "2z1csf4c3fmlwl0ahk533z5zqkjdf36ccfx11kakl9xran9f5asxm4cxjq4lx1kwqdp8gki786cgpldvgrkvfc7pcvh07j5ssqm8rjg";
+ };
+ };
+ "pbkdf2-3.0.17" = {
+ name = "pbkdf2";
+ packageName = "pbkdf2";
+ version = "3.0.17";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz";
+ sha512 = "2s4nd3yv3kkyywvh5rkrvbr6w2h6a4q786v548w895ralcq9cllqzyxr0jgxf911k3zpmzycimsg3ggww3lkrhd3bk9wribrgjaby2k";
+ };
+ };
+ "performance-now-2.1.0" = {
+ name = "performance-now";
+ packageName = "performance-now";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ };
+ "pify-2.3.0" = {
+ name = "pify";
+ packageName = "pify";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz";
+ sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+ };
+ };
+ "pify-3.0.0" = {
+ name = "pify";
+ packageName = "pify";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+ sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+ };
+ };
+ "pify-4.0.1" = {
+ name = "pify";
+ packageName = "pify";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
+ sha512 = "3d9a1zsv7ca8ffpp7ffl67vp0ahiq78ix1jl21b4nfklinh2ilwh6c45f93syclab0b49p3cfq8d4agpphrbmf6xgfxgzjv268387xq";
+ };
+ };
+ "pinkie-2.0.4" = {
+ name = "pinkie";
+ packageName = "pinkie";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz";
+ sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+ };
+ };
+ "pinkie-promise-2.0.1" = {
+ name = "pinkie-promise";
+ packageName = "pinkie-promise";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+ sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+ };
+ };
+ "pirates-4.0.1" = {
+ name = "pirates";
+ packageName = "pirates";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz";
+ sha512 = "0caxkzsq2j5ypg50bxyjcbyz66cpicl6gay0pzaskr5gwjf6m239v6qmydj5kwr15n1j5mdf8n24q22cnn4rxp7gmk7n8yc6qnnmqss";
+ };
+ };
+ "pkg-dir-2.0.0" = {
+ name = "pkg-dir";
+ packageName = "pkg-dir";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz";
+ sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+ };
+ };
+ "pkg-dir-3.0.0" = {
+ name = "pkg-dir";
+ packageName = "pkg-dir";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz";
+ sha512 = "2znan90js3xrk8a8cvzv7vrjma5dgr9hkk4kpcgciyawbjz404a4rpdj6gngx1dc7f1xzmfm3q0an1rq69qyk2cmawhsy98i40pnkpw";
+ };
+ };
+ "pn-1.1.0" = {
+ name = "pn";
+ packageName = "pn";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz";
+ sha512 = "2fgy9i99qaapk6lrqsf0i396i0hw5prvpn2wwsccs7j9jz8960r59vjz98kjhfiif2pyf4fiizrwpminc29rdhpld2v8m7n18hxm8fs";
+ };
+ };
+ "portfinder-1.0.25" = {
+ name = "portfinder";
+ packageName = "portfinder";
+ version = "1.0.25";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz";
+ sha512 = "0388smj2gw4cwp6pddy75jr5x6sha60s4w055dpxpag7fi9ql9vxrkidnzc1v5h2zp6ra350y8q4n6lqsg0dq12blsm1iavf2f4jjg8";
+ };
+ };
+ "posix-character-classes-0.1.1" = {
+ name = "posix-character-classes";
+ packageName = "posix-character-classes";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+ sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+ };
+ };
+ "prelude-ls-1.1.2" = {
+ name = "prelude-ls";
+ packageName = "prelude-ls";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+ };
+ };
+ "prepend-http-2.0.0" = {
+ name = "prepend-http";
+ packageName = "prepend-http";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz";
+ sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897";
+ };
+ };
+ "prettier-1.19.1" = {
+ name = "prettier";
+ packageName = "prettier";
+ version = "1.19.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz";
+ sha512 = "1xv5n13ms7da26nl80isb703rvq4nwrpqsz4xh8z4bakjh79c631x9pnjrqfhyc77bcjr818yclpxzlq4k9qbh4dr78s87z7g4ficxk";
+ };
+ };
+ "pretty-2.0.0" = {
+ name = "pretty";
+ packageName = "pretty";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz";
+ sha1 = "adbc7960b7bbfe289a557dc5f737619a220d06a5";
+ };
+ };
+ "pretty-format-24.9.0" = {
+ name = "pretty-format";
+ packageName = "pretty-format";
+ version = "24.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz";
+ sha512 = "2f2qn4f43m108j6kw127wvywyyci2c5jdrnfb093ql7f626hwz0qh5z4nwllgpzs4gvdc7l5ljxy2xamzk85xsdgv6rls4791jlqink";
+ };
+ };
+ "private-0.1.8" = {
+ name = "private";
+ packageName = "private";
+ version = "0.1.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/private/-/private-0.1.8.tgz";
+ sha512 = "2dgznnpxsgy9bgp4kfby1is72blvca4lhmqb3nlja8yiig1v52c12p5yw0aag8jqazhkqvihpxmqf9gsjlg5dr1jb56jxzgnqrazy2n";
+ };
+ };
+ "process-0.11.10" = {
+ name = "process";
+ packageName = "process";
+ version = "0.11.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz";
+ sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+ };
+ };
+ "process-nextick-args-2.0.1" = {
+ name = "process-nextick-args";
+ packageName = "process-nextick-args";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
+ };
+ };
+ "promise-7.3.1" = {
+ name = "promise";
+ packageName = "promise";
+ version = "7.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz";
+ sha512 = "17cn4nns2nxh9r0pdiqsqx3fpvaa82c1mhcr8r84k2a9hkpb0mj4bxzfbg3l9iy74yn9hj6mh2gsddsi3v939a1zp7ycbzqkxfm12cy";
+ };
+ };
+ "promise-inflight-1.0.1" = {
+ name = "promise-inflight";
+ packageName = "promise-inflight";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz";
+ sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+ };
+ };
+ "prompts-2.3.1" = {
+ name = "prompts";
+ packageName = "prompts";
+ version = "2.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prompts/-/prompts-2.3.1.tgz";
+ sha512 = "0sdg37c3assj1gk6ybvyhzvkp891zqq7xqj34gcl41dnqgxyl5skijyf75pz5mhfi7cz8315id6430wnr4231yarpfqdhc21jazd0x8";
+ };
+ };
+ "proto-list-1.2.4" = {
+ name = "proto-list";
+ packageName = "proto-list";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz";
+ sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+ };
+ };
+ "proxy-addr-2.0.6" = {
+ name = "proxy-addr";
+ packageName = "proxy-addr";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
+ sha512 = "0xy6dm0910h3nsa0ik45yccdfm6f84nl3h9dpkb22crqhdr3mmiczcbrq9z53gq7l2ijxhxi3pzsfzafrzymw4c1nn68ml1y2pdy7vn";
+ };
+ };
+ "prr-1.0.1" = {
+ name = "prr";
+ packageName = "prr";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz";
+ sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+ };
+ };
+ "pseudomap-1.0.2" = {
+ name = "pseudomap";
+ packageName = "pseudomap";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ };
+ "psl-1.7.0" = {
+ name = "psl";
+ packageName = "psl";
+ version = "1.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz";
+ sha512 = "0whj0m29370fn3imrlj2dw0xmr33j2gn30kn96xpxckz7i1b21pj6vlgsn4ggxl79mz2ckng5mdxbkczcwkjry497s8xkgw7c815nz4";
+ };
+ };
+ "public-encrypt-4.0.3" = {
+ name = "public-encrypt";
+ packageName = "public-encrypt";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz";
+ sha512 = "3qnsvs746b98ifyv12qj1g6hl6fq25vip5mswhvn3gnl7r32fids6mw3jb0gdcqrrl5x9ik475sf0vx6mbhmif49idkwjwrhbr5lnnd";
+ };
+ };
+ "pug-2.0.4" = {
+ name = "pug";
+ packageName = "pug";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz";
+ sha512 = "2zis5am87x72261l3vnqzms2cybdk6bc8kqa6xdjxd337yayy3c4h3s3zm175iv61h3p2pvzpl40qs7g17vnrwg5wrx5s72bc71l6jy";
+ };
+ };
+ "pug-attrs-2.0.4" = {
+ name = "pug-attrs";
+ packageName = "pug-attrs";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz";
+ sha512 = "08vr4ngaa625x9jh03hs5alwzwlbw9wpgsxppr9r1vl28y3f8kyr4xis9li3dxpinrqacz4vnnwqidms56qvw2xf74z0l6ncikpi9jd";
+ };
+ };
+ "pug-code-gen-2.0.2" = {
+ name = "pug-code-gen";
+ packageName = "pug-code-gen";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz";
+ sha512 = "05xmnv15k0jm1wyvk92ih7wlf6w3l17qja8f59gjl101lk1lp5hw34bqb2rzi1l8wlvi1cwnncbhvsaj6biha0q17yiy7y0zxd8a4wi";
+ };
+ };
+ "pug-error-1.3.3" = {
+ name = "pug-error";
+ packageName = "pug-error";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz";
+ sha512 = "24id0x6g1wh6gq1b72ibrp653d0knzzlg0aqsfap9m7cqsx49vvn1ma5ghs67q98wbjfig18irgp42gdnkq0jf1b1069nlg8j2dhkd8";
+ };
+ };
+ "pug-filters-3.1.1" = {
+ name = "pug-filters";
+ packageName = "pug-filters";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz";
+ sha512 = "112912ajq0dfvbibdba458952wpd9cyl0na8fn7p40fyx4i5igki4z0f541aj8nvy679i1rj9m8p1cjmxnd25qww215bjc444vy6mwl";
+ };
+ };
+ "pug-lexer-4.1.0" = {
+ name = "pug-lexer";
+ packageName = "pug-lexer";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz";
+ sha512 = "0y1ljrsfpv6jacmhcghkn6s9n46vm0ziwrf55fyqb0g0afwhsx0bbmh5xhq9lz2xg1df3905zfy9bin02xf0mlrjqk6v3kd836757lb";
+ };
+ };
+ "pug-linker-3.0.6" = {
+ name = "pug-linker";
+ packageName = "pug-linker";
+ version = "3.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz";
+ sha512 = "375crip8jzn5kx6lbx19nc12dyxqxc1wq0i3pmbjr8km8kc0p9j1kysysl69djiq0n663yxpqsjdv97in7dbcni02lh6zbdgfw1za3d";
+ };
+ };
+ "pug-load-2.0.12" = {
+ name = "pug-load";
+ packageName = "pug-load";
+ version = "2.0.12";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz";
+ sha512 = "2rdg2l72v2hwsiyiz0rvqff2vfd07dlxacs1qf3qhxcl861wgl96jrcjp6733nn53cc36bc83qiy8p90i5ypmyg4qh1cpdjkhd61ajj";
+ };
+ };
+ "pug-parser-5.0.1" = {
+ name = "pug-parser";
+ packageName = "pug-parser";
+ version = "5.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz";
+ sha512 = "30blpbplbbgh6xfirijjqbbfxkp3f70iz7scbspw6z56pw6g4nrkz9swd9bz1wadaij38mazdhybz212cwwpj637rzrxvilxhmylqcw";
+ };
+ };
+ "pug-runtime-2.0.5" = {
+ name = "pug-runtime";
+ packageName = "pug-runtime";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz";
+ sha512 = "2vnj0qdc3rhxbi060mkcss7mwn6avl864vj16shbf9fwf97a2lblkd9g1g6pivqgxszzvrh3ilcaaqp5sbvdw5ycg88g7vfgwmdgsiz";
+ };
+ };
+ "pug-strip-comments-1.0.4" = {
+ name = "pug-strip-comments";
+ packageName = "pug-strip-comments";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz";
+ sha512 = "2zpmf1c507g195spdxrm7wsfaxrd3kjifxvkfgj7wlbva0vmfydnh8wjsajqph42qzdhmym1y51la62qyiqhybsqi95ij5q4ksgz64b";
+ };
+ };
+ "pug-walk-1.1.8" = {
+ name = "pug-walk";
+ packageName = "pug-walk";
+ version = "1.1.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz";
+ sha512 = "1a288y26wmpn6f09g6z69xqmqazcvqn36fgrzwjm7wh9ik5pgqn44qvg06ibq2lvp9svz6nly5wni9v35y83plgpgipfbylk4rvgjqq";
+ };
+ };
+ "pump-2.0.1" = {
+ name = "pump";
+ packageName = "pump";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz";
+ sha512 = "288hcmlwdnqda84ylx9cv413ic0r59k0dp71hy7a200jsb7h1y63277jwdp1jdp13c1b3pl6g2gzr5gjv9p72f5sp7w3p0d34swrqxf";
+ };
+ };
+ "pump-3.0.0" = {
+ name = "pump";
+ packageName = "pump";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+ sha512 = "31n24fqakqmhzk2ch644gziskmysmrgiwclsdsr0rwk9spgikqpwickbnayap0rynfjlq72s7iny2p35n3qszypr97ws5njkpx741ig";
+ };
+ };
+ "pumpify-1.5.1" = {
+ name = "pumpify";
+ packageName = "pumpify";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz";
+ sha512 = "1sxm2mh7jmxhjqdrpdqrhc61ipk2cjyyyvsn9hmxlxnlpsasyzjdicl98pm63zv30012qhrxl57vdpdnnq2m2hl4w4ybgn7gqimjad0";
+ };
+ };
+ "punycode-1.3.2" = {
+ name = "punycode";
+ packageName = "punycode";
+ version = "1.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz";
+ sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+ };
+ };
+ "punycode-1.4.1" = {
+ name = "punycode";
+ packageName = "punycode";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
+ sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+ };
+ };
+ "punycode-2.1.1" = {
+ name = "punycode";
+ packageName = "punycode";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+ sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
+ };
+ };
+ "qs-6.5.2" = {
+ name = "qs";
+ packageName = "qs";
+ version = "6.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
+ sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
+ };
+ };
+ "qs-6.7.0" = {
+ name = "qs";
+ packageName = "qs";
+ version = "6.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
+ sha512 = "34x6fm4dnq8m0kps5ann831k8fvx7jzlrcw8vvri0ki2g2ywdrjr8j5y14bvj9c0fd01ndsyx43y6ji51bfhnxk2gr5fpsks52429sl";
+ };
+ };
+ "query-string-5.1.1" = {
+ name = "query-string";
+ packageName = "query-string";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz";
+ sha512 = "0kkwn38nmjd6n6byiz52gngvyiw46fbibx9c9p1vzn9g7l11f2jpbs39d4aqajk7kk2a6k69wx5bjgavbg1lh275ih6k84jdnr8wdc2";
+ };
+ };
+ "querystring-0.2.0" = {
+ name = "querystring";
+ packageName = "querystring";
+ version = "0.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz";
+ sha1 = "b209849203bb25df820da756e747005878521620";
+ };
+ };
+ "querystring-es3-0.2.1" = {
+ name = "querystring-es3";
+ packageName = "querystring-es3";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz";
+ sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+ };
+ };
+ "querystringify-2.1.1" = {
+ name = "querystringify";
+ packageName = "querystringify";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz";
+ sha512 = "1yd3j6k7rr39qm5zsh0k86znfksfcz9rbj48vv2dbsicnvvgzvw1vwl17vk2jlxszwqjiqsj9hy88r74wsdxf8by7a3wia2hk2cpdy3";
+ };
+ };
+ "randombytes-2.1.0" = {
+ name = "randombytes";
+ packageName = "randombytes";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
+ sha512 = "2cimbs750ysa2wxsiw9mmc1xqjb8w0c4s22p2mv2n676s8hchvzcl1l5p78jnk62d2jzacpr9zbl9w64kaqnipcbaa25q7ywn47g2dx";
+ };
+ };
+ "randomfill-1.0.4" = {
+ name = "randomfill";
+ packageName = "randomfill";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz";
+ sha512 = "0pm7c7mw7a3qwjr21f8cvxaa2sq5l4svqs51lppn833x0yvz3yx8x4vbd4rswjynykvlgvn4hrpq327pvbzp428f4b1fciy3xnmrfgk";
+ };
+ };
+ "range-parser-1.2.1" = {
+ name = "range-parser";
+ packageName = "range-parser";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+ sha512 = "15b00vag4wijzsp0lwi9jznpz16n858vq5p1p3dgjrqqil9c6d4x55s1nl1fi4cbq8307bylbvkd9qkhyk6qib8ksh8raibxb3jrf0y";
+ };
+ };
+ "raw-body-2.4.0" = {
+ name = "raw-body";
+ packageName = "raw-body";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
+ sha512 = "3flyhj96ayiy8is22lwh9sp1yqq9ksym43x22yri2ikzladqqzxj6z657bc0xb5f2wl7qr2ja4byf57c9f7l2d3wqdglxih886zrv70";
+ };
+ };
+ "raw-body-2.4.1" = {
+ name = "raw-body";
+ packageName = "raw-body";
+ version = "2.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz";
+ sha512 = "1ngfzkci4v3yg989xbriv2giv775w4z9l34hyzfjhyh5ap8wdvc1sggkmqnkz19hgm5r3xyszrs7sppwslxi05r90sg14m6bql8hsgm";
+ };
+ };
+ "react-is-16.13.0" = {
+ name = "react-is";
+ packageName = "react-is";
+ version = "16.13.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz";
+ sha512 = "00g57i5q020lc9cdswy1ba9bqds0a5wbpy88abfcbnjf0v54fmv4qcch3ad3336sdkxy4mjq3zaf142agbc0vkryipj14n79cpjslqq";
+ };
+ };
+ "read-pkg-3.0.0" = {
+ name = "read-pkg";
+ packageName = "read-pkg";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz";
+ sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+ };
+ };
+ "read-pkg-up-4.0.0" = {
+ name = "read-pkg-up";
+ packageName = "read-pkg-up";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
+ sha512 = "28400v5dwid6mc9x40s2mwfbkn22vj0dzx0ix8n2bffjx4p2ivb9b60bh743c74kdp0v391rdmladhgvrjgzihns456n977gr451sz9";
+ };
+ };
+ "readable-stream-2.3.7" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "2.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+ sha512 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
+ };
+ };
+ "readable-stream-3.6.0" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "3.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+ sha512 = "1s8hs6ax9jwmmw558j3hyfx5lfn7qf66xg0giplz9jci7d8zp2d8vh96dzlis6xzpxfa5b2zbm8nm4mgsr71r6rl3w3qyfanb5qfn05";
+ };
+ };
+ "readdirp-2.2.1" = {
+ name = "readdirp";
+ packageName = "readdirp";
+ version = "2.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
+ sha512 = "2yzl88bp25ig1xnrzqmqiwpfxyqkmdw27h3p90a4a58q0964xcijcx4i948msnlvin9f6hn5hmpxj1s90jzkj8aqxr5d04mmzr3z5fl";
+ };
+ };
+ "realpath-native-1.1.0" = {
+ name = "realpath-native";
+ packageName = "realpath-native";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz";
+ sha512 = "26fzz602hwidkkqwv7nk72xq07nlymik92psrcs5pifzqypr63pgz0sy8dzda0bpzl7abkz4kiy2z4f1w07xx5ch0yqh802lw1hyn62";
+ };
+ };
+ "rechoir-0.6.2" = {
+ name = "rechoir";
+ packageName = "rechoir";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
+ sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
+ };
+ };
+ "regenerate-1.4.0" = {
+ name = "regenerate";
+ packageName = "regenerate";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz";
+ sha512 = "0m5jil0f2yz4js80jxvwilkhq6im5h6h0pa4disk3fsv9lm23lz8ly5219518j47v4fn0h248s9jf5pqhxhcr6z5cmxvbnna0js6vnl";
+ };
+ };
+ "regenerator-runtime-0.11.1" = {
+ name = "regenerator-runtime";
+ packageName = "regenerator-runtime";
+ version = "0.11.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
+ sha512 = "03d4l8l8cyywh93wf5vw84lq56jh1b1d7jll4ny4z060j9hvx7w5q3q0b8q227jm93749k1c9h86r2pz0bm2xq5vp14g3r2kbvqc2rj";
+ };
+ };
+ "regenerator-transform-0.10.1" = {
+ name = "regenerator-transform";
+ packageName = "regenerator-transform";
+ version = "0.10.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz";
+ sha512 = "3lxj64s9v2jksipiz0pphfy6m12cf7j96w64bqlzjwnasbpqhc5ws5bjzv3x9ld625v1z4f15l30izpv3p6l9w8h1qsvf6vy1pak5rw";
+ };
+ };
+ "regex-not-1.0.2" = {
+ name = "regex-not";
+ packageName = "regex-not";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
+ sha512 = "3cggngaj8m70zdn8kghha4mhvavm7jfy5xm2iqi94w4gi5m5irs3nlrgg975w2231y49jnnw7zhsg648pbkl9zb6vwhii83926q7917";
+ };
+ };
+ "regexpu-core-2.0.0" = {
+ name = "regexpu-core";
+ packageName = "regexpu-core";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz";
+ sha1 = "49d038837b8dcf8bfa5b9a42139938e6ea2ae240";
+ };
+ };
+ "regjsgen-0.2.0" = {
+ name = "regjsgen";
+ packageName = "regjsgen";
+ version = "0.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz";
+ sha1 = "6c016adeac554f75823fe37ac05b92d5a4edb1f7";
+ };
+ };
+ "regjsparser-0.1.5" = {
+ name = "regjsparser";
+ packageName = "regjsparser";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz";
+ sha1 = "7ee8f84dc6fa792d3fd0ae228d24bd949ead205c";
+ };
+ };
+ "remove-trailing-separator-1.1.0" = {
+ name = "remove-trailing-separator";
+ packageName = "remove-trailing-separator";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ };
+ "repeat-element-1.1.3" = {
+ name = "repeat-element";
+ packageName = "repeat-element";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
+ sha512 = "3dbpfrs4yh7dd9572m6dc8cxcgqacnvd24xm9licnw1hygqv51a18a84gm04sjssajbm437rq01raggrzmnzk4jnmbnxrnmk78sl4ba";
+ };
+ };
+ "repeat-string-1.6.1" = {
+ name = "repeat-string";
+ packageName = "repeat-string";
+ version = "1.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ };
+ "repeating-2.0.1" = {
+ name = "repeating";
+ packageName = "repeating";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz";
+ sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
+ };
+ };
+ "request-2.88.2" = {
+ name = "request";
+ packageName = "request";
+ version = "2.88.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
+ sha512 = "23hm71jcxrwvp33azx8mx3w6dg21fr4w6lwvkvxyf6ckvhk3hz9dk8lzgkbiyzfl9ylhp4n807xp88ppq4gj5h07cmrgxf6nwxfvjrj";
+ };
+ };
+ "request-promise-core-1.1.3" = {
+ name = "request-promise-core";
+ packageName = "request-promise-core";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz";
+ sha512 = "00riv5nw32j70g67b1ll1h599bvdbnkgasnwl1m26pfdgdmgr6zaq500mprx5n77yrnhza27vs3c9icb4z5h6wnwmlha6f81bw3d2s0";
+ };
+ };
+ "request-promise-native-1.0.8" = {
+ name = "request-promise-native";
+ packageName = "request-promise-native";
+ version = "1.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz";
+ sha512 = "0qx1n06bjj430fidkma2dr90dmrixiza4ymk561v1xxpd5yp7r36lwirgsdn0nvra7s4xs9gs1xhd6fxvlps6q1wh5xq7m4d8n71akm";
+ };
+ };
+ "require-directory-2.1.1" = {
+ name = "require-directory";
+ packageName = "require-directory";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ };
+ "require-main-filename-1.0.1" = {
+ name = "require-main-filename";
+ packageName = "require-main-filename";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz";
+ sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+ };
+ };
+ "require-main-filename-2.0.0" = {
+ name = "require-main-filename";
+ packageName = "require-main-filename";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+ sha512 = "2d0gd2x49nz3hgfwms6326sjw5fx7gqf997dnggc7l084cibgang6wr6ryksky32fvdz1bq72xm73kfxd3lj2qnfyjsp57jq287k8rl";
+ };
+ };
+ "requires-port-1.0.0" = {
+ name = "requires-port";
+ packageName = "requires-port";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz";
+ sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+ };
+ };
+ "resolve-1.1.7" = {
+ name = "resolve";
+ packageName = "resolve";
+ version = "1.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz";
+ sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+ };
+ };
+ "resolve-1.15.1" = {
+ name = "resolve";
+ packageName = "resolve";
+ version = "1.15.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz";
+ sha512 = "3pr5zjp8nh6qfllxnpqx531srx1igzdm28j4zg1y53yzc8qxp16yx01pw8cp7y4frla90gnpv622d6bi6aayi03iqlkb8gdjklji2pk";
+ };
+ };
+ "resolve-cwd-2.0.0" = {
+ name = "resolve-cwd";
+ packageName = "resolve-cwd";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
+ sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
+ };
+ };
+ "resolve-dir-1.0.1" = {
+ name = "resolve-dir";
+ packageName = "resolve-dir";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz";
+ sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
+ };
+ };
+ "resolve-from-3.0.0" = {
+ name = "resolve-from";
+ packageName = "resolve-from";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz";
+ sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+ };
+ };
+ "resolve-path-1.4.0" = {
+ name = "resolve-path";
+ packageName = "resolve-path";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz";
+ sha1 = "c4bda9f5efb2fce65247873ab36bb4d834fe16f7";
+ };
+ };
+ "resolve-url-0.2.1" = {
+ name = "resolve-url";
+ packageName = "resolve-url";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz";
+ sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+ };
+ };
+ "responselike-1.0.2" = {
+ name = "responselike";
+ packageName = "responselike";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz";
+ sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7";
+ };
+ };
+ "restore-cursor-2.0.0" = {
+ name = "restore-cursor";
+ packageName = "restore-cursor";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz";
+ sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+ };
+ };
+ "ret-0.1.15" = {
+ name = "ret";
+ packageName = "ret";
+ version = "0.1.15";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
+ sha512 = "2d7igpgyzdlpx2ni0sql8gsnqk9qivfsw6bn1aklm19kbhgxjzmlazz8szfsbdpjka4gk6i3zf0jqa0llaf7dni636fnbwfmyjmhfad";
+ };
+ };
+ "retry-0.12.0" = {
+ name = "retry";
+ packageName = "retry";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
+ sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+ };
+ };
+ "right-align-0.1.3" = {
+ name = "right-align";
+ packageName = "right-align";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
+ sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
+ };
+ };
+ "rimraf-2.7.1" = {
+ name = "rimraf";
+ packageName = "rimraf";
+ version = "2.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
+ sha512 = "3ixwnv4h7x38jd12vyzhx6m6adnfhz1zv881allalyqs8sy3q3zgwldngk4cqslnn2d46l0g91yz8wprmzcsvas9573vp8al9ldns5r";
+ };
+ };
+ "ripemd160-2.0.2" = {
+ name = "ripemd160";
+ packageName = "ripemd160";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz";
+ sha512 = "0hbd4cqbkycj691cj7gm40x3x5w46xk56xkg6n11wskc3k4xbdz1xxxyy6r27rcwipkzp19y1fmpfmb4lgf10l8asn6prdn11m24bla";
+ };
+ };
+ "rsvp-4.8.5" = {
+ name = "rsvp";
+ packageName = "rsvp";
+ version = "4.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz";
+ sha512 = "2wdl1qh3bdrji9q0whkrhj7gzryfipskamagkg5dq54phmg5c7ifp8va0b8saxs4xmi6c5mlvkh6gbk6r4nqrld4v8ykx5f0ja0xwwx";
+ };
+ };
+ "run-queue-1.0.3" = {
+ name = "run-queue";
+ packageName = "run-queue";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz";
+ sha1 = "e848396f057d223f24386924618e25694161ec47";
+ };
+ };
+ "rxjs-6.5.4" = {
+ name = "rxjs";
+ packageName = "rxjs";
+ version = "6.5.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz";
+ sha512 = "3nzzg67sr57cc5n1065xsxjgrwa405bgbgqm9l8w01lnr660cy8zdjk99hm2n0did4kd75nwiz3843mfbrw7bs100n7g8q4r1fi18wx";
+ };
+ };
+ "safe-buffer-5.1.2" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
+ };
+ };
+ "safe-buffer-5.2.0" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
+ sha512 = "1pb164cfv1ip3s1rp008433rak88mdcch24q84cbfndg0dzky2ij8vjvsiyx2qf3rg4dgs82zk7vnrd9hkqqdcvp4lbk5ymcr8314bx";
+ };
+ };
+ "safe-regex-1.1.0" = {
+ name = "safe-regex";
+ packageName = "safe-regex";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
+ sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+ };
+ };
+ "safer-buffer-2.1.2" = {
+ name = "safer-buffer";
+ packageName = "safer-buffer";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
+ };
+ };
+ "sane-4.1.0" = {
+ name = "sane";
+ packageName = "sane";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz";
+ sha512 = "1jdy0h2kdi5d2lnxafnbxnqssf306v0pffvw10jspi9v899n7rxknzs78k7nnrgy1mgyfragq91y4ci7z7xksbp92xw6py80h1g65l6";
+ };
+ };
+ "sax-1.2.4" = {
+ name = "sax";
+ packageName = "sax";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
+ sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n";
+ };
+ };
+ "schema-utils-1.0.0" = {
+ name = "schema-utils";
+ packageName = "schema-utils";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz";
+ sha512 = "3kgnvyq6cxrlx9xwba75z4wp364mf4y4d66d92zwhjdw8nqg5jxzp1bfl6n5srl0aircw32nmry28a4476cpb3ijqzz78hars4wqvlb";
+ };
+ };
+ "select-hose-2.0.0" = {
+ name = "select-hose";
+ packageName = "select-hose";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz";
+ sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
+ };
+ };
+ "selfsigned-1.10.7" = {
+ name = "selfsigned";
+ packageName = "selfsigned";
+ version = "1.10.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz";
+ sha512 = "165gijv79k6g333d52fwfnna4z0myalk0cywvf9b6pysjfwlib4cvldycwx6yiiy099v9s0yhgvhq1sn21dqy7r85kq4n6y5h2g1kgh";
+ };
+ };
+ "semver-5.7.1" = {
+ name = "semver";
+ packageName = "semver";
+ version = "5.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+ sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
+ };
+ };
+ "semver-6.3.0" = {
+ name = "semver";
+ packageName = "semver";
+ version = "6.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+ sha512 = "17wg4dv63jhss5hwqd135zz67r5c30b7a1xz33kfa7knxr0wfypyb8mj2xmc3l71qkxrz569n89xwp5d77m7adn0sr5wzfjlh2m6zvg";
+ };
+ };
+ "send-0.17.1" = {
+ name = "send";
+ packageName = "send";
+ version = "0.17.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+ sha512 = "016qgvxg1si6vn34p7piyc8mhvmav1zscm294wkcjf221y1l9zk5kwk5z6yn1ixspj12df25bpazb2h3fdclcf59xqc2h4w46r4mi86";
+ };
+ };
+ "serialize-javascript-1.9.1" = {
+ name = "serialize-javascript";
+ packageName = "serialize-javascript";
+ version = "1.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz";
+ sha512 = "3a0kvzr1rq0l6v4l587sv58i0xgajs9863srkhxxlzq3dk5mj8r5sag4yyxfidzsbwcbygbg7wdm2nja97kg5n4y9plxsl9hpkzymni";
+ };
+ };
+ "serialize-javascript-2.1.2" = {
+ name = "serialize-javascript";
+ packageName = "serialize-javascript";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
+ sha512 = "26vhlfjji0jk84cvbcpna4h1nfvdwj19g7rjmvz9mzlm277cpgz7xw9q61yrp3x4amas66fxrz0p2rrndv737j4imw4a5ql0614xkxf";
+ };
+ };
+ "serve-index-1.9.1" = {
+ name = "serve-index";
+ packageName = "serve-index";
+ version = "1.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz";
+ sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
+ };
+ };
+ "serve-static-1.14.1" = {
+ name = "serve-static";
+ packageName = "serve-static";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+ sha512 = "0551vv6s1vgk5krzdn9cwnybsv6g4cyqpkk1dlkyv1pd8n7m8r7pi12r16bw12dzwl6ghj4qwizjsxc8vl26lv9c61fkq9r059yzji4";
+ };
+ };
+ "set-blocking-2.0.0" = {
+ name = "set-blocking";
+ packageName = "set-blocking";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ };
+ "set-value-2.0.1" = {
+ name = "set-value";
+ packageName = "set-value";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz";
+ sha512 = "15idn47lw67wfq0qfva85xnphqxkzz5apix6gwcnylmqw4ch7bqhq4vzdh53f327agpcg6pdzkbj8m72wm887wd8lqaydw20zbxq497";
+ };
+ };
+ "setimmediate-1.0.5" = {
+ name = "setimmediate";
+ packageName = "setimmediate";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz";
+ sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+ };
+ };
+ "setprototypeof-1.1.0" = {
+ name = "setprototypeof";
+ packageName = "setprototypeof";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
+ sha512 = "2jlhhawfqdiga1m6if01ks1q3yx56k5vj6wf372589vkswvdflw7224viivxali56b0jjsckpmjy10rj6fcakhw2dbq2psr197kzw86";
+ };
+ };
+ "setprototypeof-1.1.1" = {
+ name = "setprototypeof";
+ packageName = "setprototypeof";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+ sha512 = "01qxzb0a6jrcxa6qh776v04ihqrmcy3qfbp9drfsjhfcsmaqd21mppr3ndj970ixfh6bpm8ai45jyqyzjfjw26pcyd82y6pyrcl1xr6";
+ };
+ };
+ "sha.js-2.4.11" = {
+ name = "sha.js";
+ packageName = "sha.js";
+ version = "2.4.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz";
+ sha512 = "2lihh3p2mrwymrly93ni37b1dvzwbm1jc47iqp66ax4bj41js4mr94wghv3c2agq98bb44nxxddn2n67ab978zk00xx2znw3vj2kha0";
+ };
+ };
+ "shebang-command-1.2.0" = {
+ name = "shebang-command";
+ packageName = "shebang-command";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
+ sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+ };
+ };
+ "shebang-regex-1.0.0" = {
+ name = "shebang-regex";
+ packageName = "shebang-regex";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz";
+ sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+ };
+ };
+ "shelljs-0.8.3" = {
+ name = "shelljs";
+ packageName = "shelljs";
+ version = "0.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz";
+ sha512 = "3ndzzikwq0c0084xy1s0v9q2msc8wc7qrmi0bi1llshsmlhfz4dn1k9i2r666ls7xmq62idmify0ksc1vq3mrjqcrqbm20na0m03kbx";
+ };
+ };
+ "shellwords-0.1.1" = {
+ name = "shellwords";
+ packageName = "shellwords";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz";
+ sha512 = "31h1mksdbashjfpvj7xh8nqw7siqm5v1yj77pmcsbkzqi4hrpjqmzv2sifjlljjyx87sfqnmcn0yqh1hfgn669c43i2dargyi8i4p5w";
+ };
+ };
+ "sigmund-1.0.1" = {
+ name = "sigmund";
+ packageName = "sigmund";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz";
+ sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
+ };
+ };
+ "signal-exit-3.0.2" = {
+ name = "signal-exit";
+ packageName = "signal-exit";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz";
+ sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+ };
+ };
+ "simple-git-1.96.0" = {
+ name = "simple-git";
+ packageName = "simple-git";
+ version = "1.96.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/simple-git/-/simple-git-1.96.0.tgz";
+ sha512 = "0ywlgw61ydavyi2sw2yvzlha4yaxcasrzzkfkvwhv51qm1pciagcmchampclwjrs40wnn0ydhbh1krn1krsrfr6rjyx46k9j76fw1gs";
+ };
+ };
+ "sisteransi-1.0.4" = {
+ name = "sisteransi";
+ packageName = "sisteransi";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz";
+ sha512 = "25g5in0cfm4qpjw7rw3pnqyln8svln98bh34hiwmmk51wkfyb93sg52x9xc2nahx1lhvg4np6v5dq8vbsm2k7v4pii9y9qdrsh0rsgx";
+ };
+ };
+ "slash-1.0.0" = {
+ name = "slash";
+ packageName = "slash";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz";
+ sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
+ };
+ };
+ "slash-2.0.0" = {
+ name = "slash";
+ packageName = "slash";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz";
+ sha512 = "3sbrc1b1qf9m7lhlljmnc51k9bl7jbc9zfmdc4z55iafsck65d9ll77bifknvgvgbc0f0a7cvm1b785ab5d1avm27lm7kvnd3fs30k5";
+ };
+ };
+ "snapdragon-0.8.2" = {
+ name = "snapdragon";
+ packageName = "snapdragon";
+ version = "0.8.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
+ sha512 = "2b0sap2q0c6qbfkw6znql845b143frn5gkkz4gpirjhgwa2j3wy3jsvrfg51s5c1w1m4nkgis97x9yvmzsc533kap9j3h3zcffqxp0n";
+ };
+ };
+ "snapdragon-node-2.1.1" = {
+ name = "snapdragon-node";
+ packageName = "snapdragon-node";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+ sha512 = "2gk18pdld8ij1bpa2mdwl8f7i4rl5d4ys3qw31hipj56wslnsfhp1vxp3q36kj1m4f34wzzlvj0282qx5xlflqf978xyqlc2viyaviv";
+ };
+ };
+ "snapdragon-util-3.0.1" = {
+ name = "snapdragon-util";
+ packageName = "snapdragon-util";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+ sha512 = "1jsaqma4ycl2iq0761i1w7758z1kq7gbsij4xfb7p5cnw0qa62pszv6pr3j856n3pbxww7wwxs5wvcg2cb6vy020kw3bchashqs9clr";
+ };
+ };
+ "sockjs-0.3.19" = {
+ name = "sockjs";
+ packageName = "sockjs";
+ version = "0.3.19";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz";
+ sha512 = "0pn77r3rgi2blxla6ilhf4madx8n0cprzb295mw5knx2hyhiwn60z8n8n8clsb1l0wddcrjj5x4rn24ydf2wnxbrn63xwb5lsa293sp";
+ };
+ };
+ "sockjs-client-1.4.0" = {
+ name = "sockjs-client";
+ packageName = "sockjs-client";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz";
+ sha512 = "3pa683q7x6az2iwmd2bh0d2zwdkgklkfi4vpkwnxw4b49mgfdjkal83i9lzxlz6f6sqybyvb0mlyw0mmg9mdd76fawvi7izxz48ndp7";
+ };
+ };
+ "sort-keys-2.0.0" = {
+ name = "sort-keys";
+ packageName = "sort-keys";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz";
+ sha1 = "658535584861ec97d730d6cf41822e1f56684128";
+ };
+ };
+ "source-list-map-2.0.1" = {
+ name = "source-list-map";
+ packageName = "source-list-map";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz";
+ sha512 = "0izwdwncwz4s14qn5ahkb2mpcdpxq2arn5185dlhljns4nylsw2xfm425zi115ik4kz1vfa97qyix3vf3i149dyi1ndq61iaf0knx5a";
+ };
+ };
+ "source-map-0.5.7" = {
+ name = "source-map";
+ packageName = "source-map";
+ version = "0.5.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ };
+ "source-map-0.6.1" = {
+ name = "source-map";
+ packageName = "source-map";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+ sha512 = "3p7hw8p69ikj5mwapmqkacsjnbvdfk5ylyamjg9x5izkl717xvzj0vk3fnmx1n4pf54h5rs7r8ig5kk4jv4ycqqj0hv75cnx6k1lf2j";
+ };
+ };
+ "source-map-resolve-0.5.3" = {
+ name = "source-map-resolve";
+ packageName = "source-map-resolve";
+ version = "0.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+ sha512 = "2gq1flmkac2lzw8rs6vpch0sanmv8r9gv6bggwkgxzj3n7gw33lbqzk7nk9vvsckdjjkm132jzbl3nxc69cf9bb7xz4wnhpgd3gxp0y";
+ };
+ };
+ "source-map-support-0.4.18" = {
+ name = "source-map-support";
+ packageName = "source-map-support";
+ version = "0.4.18";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz";
+ sha512 = "1n37icn5xpsxs2x8szv6ifajjf066fskm04xn6agr79sid57n0yws4n0cis7m9q5hr0hxzr8dv2fnmmpgb4mvz8kiyv2g5ikbyb9g5n";
+ };
+ };
+ "source-map-support-0.5.16" = {
+ name = "source-map-support";
+ packageName = "source-map-support";
+ version = "0.5.16";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz";
+ sha512 = "1ayqxcigra517ylxbrvri7jlw55cv0m6a8j9j6060c5xsh519ip69jjp4jk6bqcj5ra5y318k6la6lfhpsj0k8hhkyw1szbj128pz3r";
+ };
+ };
+ "source-map-url-0.4.0" = {
+ name = "source-map-url";
+ packageName = "source-map-url";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz";
+ sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+ };
+ };
+ "spdx-correct-3.1.0" = {
+ name = "spdx-correct";
+ packageName = "spdx-correct";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz";
+ sha512 = "3qslnh3c2x2g8lar94rladm2rz692d5ds1bp1cpl223jf67jnazl9ipy4n17n7vqvgwimij36gz740nfqr5pyxq8x6n02rd4xj89gcn";
+ };
+ };
+ "spdx-exceptions-2.2.0" = {
+ name = "spdx-exceptions";
+ packageName = "spdx-exceptions";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
+ sha512 = "12c442riig2hk7014ahh40chwirmmsl9dr4cnm2dr2bdbv1lnal8xxwsfx403pqkx7ib06gm2hyyd98kn30kxanjm92yai5y44h0x6r";
+ };
+ };
+ "spdx-expression-parse-3.0.0" = {
+ name = "spdx-expression-parse";
+ packageName = "spdx-expression-parse";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
+ sha512 = "351djgqvsgqmfg6h764c2k09dmixczw5073jirm8km6i1yym4xjrzc7g5ckwkidi3gls7s910m4ahl8sh37dsb478j8j3sigbfq63k2";
+ };
+ };
+ "spdx-license-ids-3.0.5" = {
+ name = "spdx-license-ids";
+ packageName = "spdx-license-ids";
+ version = "3.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+ sha512 = "3sk6sk6r05ikn5qslbh04h54mv4a34wn4d76s800h94padnjydfvvq73ij6jh81yrigspyr50ay878jjwpj2mcq38br371jkb6mdq97";
+ };
+ };
+ "spdy-4.0.1" = {
+ name = "spdy";
+ packageName = "spdy";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz";
+ sha512 = "2h245q80im9phjaghcl16kb4sv4n7igk0ch8dsqkq32dsfhcqysjx19blvd45whyaqh9r6309wc6pf6885apd1bcnn0yc2xy3f55rhx";
+ };
+ };
+ "spdy-transport-3.0.0" = {
+ name = "spdy-transport";
+ packageName = "spdy-transport";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz";
+ sha512 = "1rha3zyhardm434kr4h4y44wxpd49hqzzxqk1d9lqg91bkzfbp6qkh9nahdkkmpgbkc5021x8c8cy1aqnaph5ib1a9hx32j9qadbhl6";
+ };
+ };
+ "split-string-3.1.0" = {
+ name = "split-string";
+ packageName = "split-string";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz";
+ sha512 = "25ih1dx2qb3lawqjxj85znd4l3x8nnigrcdlpfw8064gh2mwxic9bgg5ylgxm9gjl3v8dmyc47rycp8xvqz78jqalg0g9yqj225acrp";
+ };
+ };
+ "sprintf-js-1.0.3" = {
+ name = "sprintf-js";
+ packageName = "sprintf-js";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ };
+ "sshpk-1.16.1" = {
+ name = "sshpk";
+ packageName = "sshpk";
+ version = "1.16.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
+ sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
+ };
+ };
+ "ssri-5.3.0" = {
+ name = "ssri";
+ packageName = "ssri";
+ version = "5.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz";
+ sha512 = "00qc3iqsi21cc2az3nz36q88psab4ickpzranndk6vmrb6yhn5xsq3kgp21x3lp0406bdaalpb59xy7zzqnl40ans69v3z2l8z8h52x";
+ };
+ };
+ "ssri-6.0.1" = {
+ name = "ssri";
+ packageName = "ssri";
+ version = "6.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz";
+ sha512 = "107yg08ib4232ppannc6fw8ml8p1fssnvcf88cpq3s5ybq3r5ppxnmc32rp40i0ppbgxcw9q04d5rc90if0q3xyp953swad93biws6x";
+ };
+ };
+ "stack-utils-1.0.2" = {
+ name = "stack-utils";
+ packageName = "stack-utils";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz";
+ sha512 = "300alvgq7a9y0fyilyifhirpj9k0qvs6lx7g8msrs6lilcs8wjgl3jzckcs3mvp5v6bi2g7q6k1ml18zpgqvr5cf5wdylxrw4qzwd9i";
+ };
+ };
+ "static-extend-0.1.2" = {
+ name = "static-extend";
+ packageName = "static-extend";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz";
+ sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+ };
+ };
+ "statuses-1.5.0" = {
+ name = "statuses";
+ packageName = "statuses";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ };
+ "stealthy-require-1.1.1" = {
+ name = "stealthy-require";
+ packageName = "stealthy-require";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz";
+ sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+ };
+ };
+ "stream-browserify-2.0.2" = {
+ name = "stream-browserify";
+ packageName = "stream-browserify";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz";
+ sha512 = "2mfvadpwj9mzxps4arl1frxlkz96hfp0sc5pvq76s0ijf8fgw26mm3a721zq3iz1f8155w3a41wkixbdlwn1cavv0mzics796da2zlx";
+ };
+ };
+ "stream-each-1.2.3" = {
+ name = "stream-each";
+ packageName = "stream-each";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz";
+ sha512 = "0pxki70s41jg18b738qvcwxlcakp6658ksicxkcgg8wp9q97fwp3mv13c5k38k47vxkyyk951k7gzavs3r7b93ackdyznh8zzch4lxy";
+ };
+ };
+ "stream-http-2.8.3" = {
+ name = "stream-http";
+ packageName = "stream-http";
+ version = "2.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz";
+ sha512 = "19y2xbs1xzzpjwfdczl21d0d76ahd7013cr3mhfa6a8nbwwv9jpncng8idf0g8hnmnq2mcl3xh912rjlasl06wsz44qw3j7hdya8d7r";
+ };
+ };
+ "stream-shift-1.0.1" = {
+ name = "stream-shift";
+ packageName = "stream-shift";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz";
+ sha512 = "1ai59bc5x8d6a1c37fp2d2gi6q7x6fhza2jsf1sblrdvbza8j14a4xnp20lg65b8lzm0s95m3pqizblbj6ks44qf73gdllhbahaqa02";
+ };
+ };
+ "strict-uri-encode-1.1.0" = {
+ name = "strict-uri-encode";
+ packageName = "strict-uri-encode";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
+ sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
+ };
+ };
+ "string-length-2.0.0" = {
+ name = "string-length";
+ packageName = "string-length";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz";
+ sha1 = "d40dbb686a3ace960c1cffca562bf2c45f8363ed";
+ };
+ };
+ "string-width-1.0.2" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ };
+ "string-width-2.1.1" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+ sha512 = "29s1fqgr4mnhfxwczgdghfmmc1f792m9hysvcjxw2h5lfj8ndf2b6gm02m96qk5m75g4aisijvng4pk618anwbr8i9ay2jyszkqgslw";
+ };
+ };
+ "string-width-3.1.0" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+ sha512 = "3bix3jva53vcp1im3aa1y2v1lywkm7ix81gkwkj4915s2675pmw1c9n5x98q1m985hzgwkk1fnc2q78qz7s0fixhf994md3lazxr9xx";
+ };
+ };
+ "string.prototype.trimleft-2.1.1" = {
+ name = "string.prototype.trimleft";
+ packageName = "string.prototype.trimleft";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
+ sha512 = "013lf0f398s2xb9jhq9acspdnnk52k7whcga9am4b8a2wrgpc2w7xgkydg4sg4ah9z3i1syimzqs7dc89390xmwlx8zxf6gvlcq1vca";
+ };
+ };
+ "string.prototype.trimright-2.1.1" = {
+ name = "string.prototype.trimright";
+ packageName = "string.prototype.trimright";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
+ sha512 = "3x2qc2fc2fh9sj3vw9w45h246vspjfn88b0k356ldazylhap91vg825bppg73s9n63kwpql3gpw24lv8zx0b2arblcqhh7ygwpxcnx8";
+ };
+ };
+ "string_decoder-1.1.1" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
+ };
+ };
+ "strip-ansi-3.0.1" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ };
+ "strip-ansi-4.0.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ };
+ "strip-ansi-5.2.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+ sha512 = "1cf4mpsr46nik5xxyb9wc4cz6c4yymi2ijpfx1nghnkl39l8pgq1sc7q19jzrjkwpn9i7hwg4q3rs4ny3vssrc6506an1lv0bb6rr0f";
+ };
+ };
+ "strip-bom-3.0.0" = {
+ name = "strip-bom";
+ packageName = "strip-bom";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
+ sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+ };
+ };
+ "strip-eof-1.0.0" = {
+ name = "strip-eof";
+ packageName = "strip-eof";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz";
+ sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+ };
+ };
+ "supports-color-2.0.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ };
+ "supports-color-5.5.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "5.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+ sha512 = "2ihqi2z38fr1sq2jvwqgjqymncmkhxqz0x3bi97w4b4fn24wsdy71j139p95sb3nfrh3a449n0sqhm1z0jsi04860y8vdy8sp0n6da2";
+ };
+ };
+ "supports-color-6.1.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "6.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
+ sha512 = "30pwyjmww4d54bf2m6lpw20ly4blhb88sy3gn6qcjih2rfq1s5zsl1nszzwgj2j1gqn3c8mw52df0z26rqyk8flzimb70scdmz67vd9";
+ };
+ };
+ "symbol-tree-3.2.4" = {
+ name = "symbol-tree";
+ packageName = "symbol-tree";
+ version = "3.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz";
+ sha512 = "17zjr1mhbpxi4zhrmghix8hw1pi9svlwzjxz51mj2hxx9qpjwn1z9rlyrmdn55hbdiqnl8m9gkci2294swkkwp3rxpy05q3mkj680zm";
+ };
+ };
+ "tapable-1.1.3" = {
+ name = "tapable";
+ packageName = "tapable";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz";
+ sha512 = "283f6rp3hhj0lvi5smcvh4mq56mifjchgv6qlnr4qb1xs2fsyb2vy71b308h1285nngcz8q7cbmjp8qqzh0im71mx5wr3v6hrnvyqp1";
+ };
+ };
+ "terser-4.6.6" = {
+ name = "terser";
+ packageName = "terser";
+ version = "4.6.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/terser/-/terser-4.6.6.tgz";
+ sha512 = "3b8jz65d3105j7jw1b5jv6ww4z89nr3zjvwzsv7sk6n6sn469bnwxf1x04n7cixyz2xrnlz24yx8sw30wmzzas4434dick6wg4hymp2";
+ };
+ };
+ "terser-webpack-plugin-1.4.3" = {
+ name = "terser-webpack-plugin";
+ packageName = "terser-webpack-plugin";
+ version = "1.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
+ sha512 = "2n44cgqgz070skn207m3l6zg3q444p1db54g0j87fcjxwyhmlfvgg3kak5v1ffhg765cdxah1l99kjdcy74mc75nlq7907zbiq5xk20";
+ };
+ };
+ "test-exclude-5.2.3" = {
+ name = "test-exclude";
+ packageName = "test-exclude";
+ version = "5.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz";
+ sha512 = "3dgwbvh6yz24lh2kbdigw3j3kpxmmvlrqdhlc4innvrmyj0wvhs5ayckl00161sdx6a2pik344ggs49w9z1h6nh1v2fs542qyv33sik";
+ };
+ };
+ "thenify-3.3.0" = {
+ name = "thenify";
+ packageName = "thenify";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz";
+ sha1 = "e69e38a1babe969b0108207978b9f62b88604839";
+ };
+ };
+ "thenify-all-1.6.0" = {
+ name = "thenify-all";
+ packageName = "thenify-all";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz";
+ sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
+ };
+ };
+ "throat-4.1.0" = {
+ name = "throat";
+ packageName = "throat";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz";
+ sha1 = "89037cbc92c56ab18926e6ba4cbb200e15672a6a";
+ };
+ };
+ "through2-2.0.5" = {
+ name = "through2";
+ packageName = "through2";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
+ sha512 = "14xi6lbly1f37015ny2pzcnf5kaksjmpnhm61gfhwn686w5ac519qb1icxdda974n84f342g0y15kysj1hci2vl40z91aiivyhx2spy";
+ };
+ };
+ "thunky-1.1.0" = {
+ name = "thunky";
+ packageName = "thunky";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz";
+ sha512 = "2n8ys98dmv1625inb52cdr421ry82ri2sninmss1njzy9hxrlblw3fkvgr3na4d69glygww3g80bj4pgr9ik1zcm10ki0gd2yf3nxkq";
+ };
+ };
+ "timed-out-4.0.1" = {
+ name = "timed-out";
+ packageName = "timed-out";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz";
+ sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+ };
+ };
+ "timers-browserify-2.0.11" = {
+ name = "timers-browserify";
+ packageName = "timers-browserify";
+ version = "2.0.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz";
+ sha512 = "0lrwqck7qvpvxswx5kmydj9nmn2rwckzzfpdf5mf869fqrs9girj45i80hdv99b81m4g8fgwqx2lqk04k7zars7rldq3r89r3m9aipb";
+ };
+ };
+ "tmpl-1.0.4" = {
+ name = "tmpl";
+ packageName = "tmpl";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz";
+ sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
+ };
+ };
+ "to-arraybuffer-1.0.1" = {
+ name = "to-arraybuffer";
+ packageName = "to-arraybuffer";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+ sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+ };
+ };
+ "to-fast-properties-1.0.3" = {
+ name = "to-fast-properties";
+ packageName = "to-fast-properties";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz";
+ sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47";
+ };
+ };
+ "to-fast-properties-2.0.0" = {
+ name = "to-fast-properties";
+ packageName = "to-fast-properties";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+ sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+ };
+ };
+ "to-object-path-0.3.0" = {
+ name = "to-object-path";
+ packageName = "to-object-path";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz";
+ sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+ };
+ };
+ "to-regex-3.0.2" = {
+ name = "to-regex";
+ packageName = "to-regex";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
+ sha512 = "03lcq1y1ks55lss37m3cx52f8f4wj85rqsxfxrhi3y8rqa0iiny6df8ardg2f742z870v7xw749lcsxh8yplsmbvaig4rrds1w6asqm";
+ };
+ };
+ "to-regex-range-2.1.1" = {
+ name = "to-regex-range";
+ packageName = "to-regex-range";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz";
+ sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+ };
+ };
+ "toidentifier-1.0.0" = {
+ name = "toidentifier";
+ packageName = "toidentifier";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+ sha512 = "1bip1yxcfy4c0yl2kwmj9jyzfg1ixyj564wd1aaf46rabdiasx62yznb8bwn9cki886f353axgca42zma7q9rb4b50lhm1zz7y8g8y9";
+ };
+ };
+ "token-stream-0.0.1" = {
+ name = "token-stream";
+ packageName = "token-stream";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz";
+ sha1 = "ceeefc717a76c4316f126d0b9dbaa55d7e7df01a";
+ };
+ };
+ "tough-cookie-2.5.0" = {
+ name = "tough-cookie";
+ packageName = "tough-cookie";
+ version = "2.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
+ sha512 = "3xgcny117pqhfncr4gbmagzlnjiqqgq0lrvmljdfcdy64nc0xjfcbf1r08dmp1v1m3s51kq0yxc18nl3j9lbpr5bp5lgmi6719yqlly";
+ };
+ };
+ "tr46-1.0.1" = {
+ name = "tr46";
+ packageName = "tr46";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz";
+ sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
+ };
+ };
+ "trim-right-1.0.1" = {
+ name = "trim-right";
+ packageName = "trim-right";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz";
+ sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
+ };
+ };
+ "tryer-1.0.1" = {
+ name = "tryer";
+ packageName = "tryer";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz";
+ sha512 = "0092ym5f8nqn9kwk6wczdd9g9cmyakl54rqrmrmhj1ncm4c5p8iy2sjxkxybnqp4y4bxsabar5kalggrz787665r6lnb49zpz4xlz3k";
+ };
+ };
+ "ts-jest-24.3.0" = {
+ name = "ts-jest";
+ packageName = "ts-jest";
+ version = "24.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz";
+ sha512 = "1arvrclb8plyklschblbipqilv7gih7yh7my5flmpa6y50x0908x7viisbb5wj93v4r2d12xcbi9rm2n0jwljcraliqhi4hzw5pigqx";
+ };
+ };
+ "tslib-1.11.1" = {
+ name = "tslib";
+ packageName = "tslib";
+ version = "1.11.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
+ sha512 = "0c0k843zya7w9k5snfr3g76wz2vyl99q149safl5g364jjwq839h3qf8c17i8mahdcqc3zj3xgfv0nv9pcxfm8axva0d49w4vqvr5b9";
+ };
+ };
+ "tsscmp-1.0.6" = {
+ name = "tsscmp";
+ packageName = "tsscmp";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz";
+ sha512 = "104f0vccp42fba9r2ij7ww4r7mazkmvqgj8is4ipg0jfx190n967qq5b1g0n77kcmm4d2m3l3q3cmh5kqgdmv886514akn38c16s61g";
+ };
+ };
+ "tty-browserify-0.0.0" = {
+ name = "tty-browserify";
+ packageName = "tty-browserify";
+ version = "0.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz";
+ sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+ };
+ };
+ "tunnel-agent-0.6.0" = {
+ name = "tunnel-agent";
+ packageName = "tunnel-agent";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ };
+ "tweetnacl-0.14.5" = {
+ name = "tweetnacl";
+ packageName = "tweetnacl";
+ version = "0.14.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ };
+ "type-1.2.0" = {
+ name = "type";
+ packageName = "type";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz";
+ sha512 = "1z2f06mzr855vwxwr0wkndnkn3fnjcwisd3iajkh6dmzz0dn1a5amq7m798j1ass4kiymz4gn3q0c573l21377dkq1ap2i703jfv6gv";
+ };
+ };
+ "type-2.0.0" = {
+ name = "type";
+ packageName = "type";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type/-/type-2.0.0.tgz";
+ sha512 = "2iyk1bl159vr7i0r24jawi0lwrgns8xvsw72962lvzw6qshm5blls6p7spkpcqpgwb0p7liwdix0ph0j22dip1rg812xbw723rpj6r8";
+ };
+ };
+ "type-check-0.3.2" = {
+ name = "type-check";
+ packageName = "type-check";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+ };
+ };
+ "type-is-1.6.18" = {
+ name = "type-is";
+ packageName = "type-is";
+ version = "1.6.18";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
+ sha512 = "3r7402x79nilhdgk4z21yjh5y9vix8lwlll1kzcn8jd2m89vzksdb6wddia77cxv3iwhd6i5hkv6n7diwjbhpy7y03i2kqlvfplli2f";
+ };
+ };
+ "typedarray-0.0.6" = {
+ name = "typedarray";
+ packageName = "typedarray";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+ sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+ };
+ };
+ "typedarray-to-buffer-3.1.5" = {
+ name = "typedarray-to-buffer";
+ packageName = "typedarray-to-buffer";
+ version = "3.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+ sha512 = "3cvrfgjsyvnh9fdyixjzx9mwkfcjfyhgsjizzxzmrsvb1pwch0y58crjh7p6b0ml9nl7jr55nx5dyslq3jn15qz555fl3a4qdfbrnyd";
+ };
+ };
+ "typescript-3.8.3" = {
+ name = "typescript";
+ packageName = "typescript";
+ version = "3.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz";
+ sha512 = "3rwcbg3l3w3l2zr5y9lszqs30s29jzvh1w594rbdljyr582yi6vajzs2fg04s9p79klh3iv0980b91mbr94sl77h9nb7b2mgrz4929i";
+ };
+ };
+ "typical-4.0.0" = {
+ name = "typical";
+ packageName = "typical";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz";
+ sha512 = "13n01mbvkc5ikjpc69q3ixakq46pp2nbagrwz2a40ff7as9sandwzp51nhh6hy42l9yxq2pjv2y1whds49yq7akh9c3211vyhigh0al";
+ };
+ };
+ "uglify-js-2.8.29" = {
+ name = "uglify-js";
+ packageName = "uglify-js";
+ version = "2.8.29";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz";
+ sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
+ };
+ };
+ "uglify-to-browserify-1.0.2" = {
+ name = "uglify-to-browserify";
+ packageName = "uglify-to-browserify";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
+ sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
+ };
+ };
+ "underscore-1.9.2" = {
+ name = "underscore";
+ packageName = "underscore";
+ version = "1.9.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz";
+ sha512 = "0fpcm4n2qlycl50j6k3fv7baybnzf1wbsm2ng0vwfsdi40fyvsvvl0k1i427hgpknhj5hbcwff3swckw6wx96kw4dgwvldi56v6lzqg";
+ };
+ };
+ "union-value-1.0.1" = {
+ name = "union-value";
+ packageName = "union-value";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz";
+ sha512 = "1g7i0bs3sa35zpsrr2l3wsz4j6bqpxgm77kg2fdz89irzw6nrk6j93j61wr134mg9rbf039xa4pp1dw0iqfsv15rkf8jn8y2fdxg5xl";
+ };
+ };
+ "unique-filename-1.1.1" = {
+ name = "unique-filename";
+ packageName = "unique-filename";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz";
+ sha512 = "0sp2fs9gsv3l6mc9kdk09z835d54gw04x02dlz9q208mda3f6bmqd4vix4634kv9njvvxcz3iswcj6fwcmszvima7wpv5knia678sjn";
+ };
+ };
+ "unique-slug-2.0.2" = {
+ name = "unique-slug";
+ packageName = "unique-slug";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz";
+ sha512 = "3dz3f3rqwqssr86c072j9m8m7l98l20b3i75diqrq5l871d647jmdf7pjjml7l83iqvjnb2frz7h6xbs8rpx3rkvk1h5i6swvsap1ff";
+ };
+ };
+ "unpipe-1.0.0" = {
+ name = "unpipe";
+ packageName = "unpipe";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ };
+ "unset-value-1.0.0" = {
+ name = "unset-value";
+ packageName = "unset-value";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz";
+ sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+ };
+ };
+ "upath-1.2.0" = {
+ name = "upath";
+ packageName = "upath";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
+ sha512 = "230pbhzxv0jr9n43qhghbsdbsp1rwalc3rclaqscwjaazi35s6vzw9p66s3ypk6yn3jgpmqflda2yh8j2rlypz9vihasfw5m6jhd739";
+ };
+ };
+ "uri-js-4.2.2" = {
+ name = "uri-js";
+ packageName = "uri-js";
+ version = "4.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
+ sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
+ };
+ };
+ "urijs-1.19.2" = {
+ name = "urijs";
+ packageName = "urijs";
+ version = "1.19.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/urijs/-/urijs-1.19.2.tgz";
+ sha512 = "3mmrbgqk7ihxy43py896gl9cv3q8bapnwfg5vcsd82b5mlkd3qa4i7vfdihpk5c2jxkhz5anm8qxxm31fahfi3xxkcr7q59ssmhixdk";
+ };
+ };
+ "urix-0.1.0" = {
+ name = "urix";
+ packageName = "urix";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz";
+ sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+ };
+ };
+ "url-0.11.0" = {
+ name = "url";
+ packageName = "url";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/url/-/url-0.11.0.tgz";
+ sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+ };
+ };
+ "url-parse-1.4.7" = {
+ name = "url-parse";
+ packageName = "url-parse";
+ version = "1.4.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz";
+ sha512 = "2bdb8rqxq8xd530jx6q8awb1y9idrvd8cfznrlyc1h8j4ra1icxcssfg7qldhssj6dxvibkvx6rnn1ljkjbxi95l58dn1y35ibrlyvp";
+ };
+ };
+ "url-parse-lax-3.0.0" = {
+ name = "url-parse-lax";
+ packageName = "url-parse-lax";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz";
+ sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
+ };
+ };
+ "url-to-options-1.0.1" = {
+ name = "url-to-options";
+ packageName = "url-to-options";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz";
+ sha1 = "1505a03a289a48cbd7a434efbaeec5055f5633a9";
+ };
+ };
+ "use-3.1.1" = {
+ name = "use";
+ packageName = "use";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
+ sha512 = "2hzzynss1cv7kn1lf40hqk16qmbf38g7a28m27pcg05mg6vpf7sj0gy175fdscz534fxdi14622rmq3sdpib9c5ypjympjfg5ai40bk";
+ };
+ };
+ "util-0.10.3" = {
+ name = "util";
+ packageName = "util";
+ version = "0.10.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz";
+ sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+ };
+ };
+ "util-0.11.1" = {
+ name = "util";
+ packageName = "util";
+ version = "0.11.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/util/-/util-0.11.1.tgz";
+ sha512 = "0fpzl6qczbzr5jniy99vgfxz1k4gdfl13lwwhlfysj22rm18ikfici89wpgv34v67ckays1d500fgk2dlzw95zncn9jvkdygjr40a0x";
+ };
+ };
+ "util-deprecate-1.0.2" = {
+ name = "util-deprecate";
+ packageName = "util-deprecate";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ };
+ "util.promisify-1.0.1" = {
+ name = "util.promisify";
+ packageName = "util.promisify";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz";
+ sha512 = "2n8sxd1qdzc7pn348ayx8jm13kvi9wyjkshzwy1fam3aiy8phv8lbikbli433qvnq3ndnqj8yhcf9dgavm2xv6cvzk7cyy7zl5nkll3";
+ };
+ };
+ "utils-merge-1.0.1" = {
+ name = "utils-merge";
+ packageName = "utils-merge";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ };
+ "uuid-3.4.0" = {
+ name = "uuid";
+ packageName = "uuid";
+ version = "3.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+ sha512 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
+ };
+ };
+ "v8-compile-cache-2.0.3" = {
+ name = "v8-compile-cache";
+ packageName = "v8-compile-cache";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
+ sha512 = "3givf3csckgfmf3aahy2cdnn1wanqnyjhxq52s8mi349v658g9izi20prr2y5m8gxrv69idkvvwp5njwqds49kbyhmkq1hc0iprvn88";
+ };
+ };
+ "validate-npm-package-license-3.0.4" = {
+ name = "validate-npm-package-license";
+ packageName = "validate-npm-package-license";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+ sha512 = "09vn7gn5jp2c07pxplc11lvk7ybfaz0rp3qzflyiyhnahkfgh76bij31ll5rg01ranlmljrky2q25d1f6bbd0h23pzxxi5z93csd4hf";
+ };
+ };
+ "vary-1.1.2" = {
+ name = "vary";
+ packageName = "vary";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ };
+ "verror-1.10.0" = {
+ name = "verror";
+ packageName = "verror";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ };
+ "vm-browserify-1.1.2" = {
+ name = "vm-browserify";
+ packageName = "vm-browserify";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz";
+ sha512 = "00japcjqx1df1bgck837ds0xvg5dr7g4j30a38zhbmanqss2kyxs4p7pgmldlnxpa31js50gydy8x9qi89s4x74iidf6k6nfgqsc5ns";
+ };
+ };
+ "void-elements-2.0.1" = {
+ name = "void-elements";
+ packageName = "void-elements";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz";
+ sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
+ };
+ };
+ "w3c-hr-time-1.0.2" = {
+ name = "w3c-hr-time";
+ packageName = "w3c-hr-time";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz";
+ sha512 = "1ykk57cjg94sdr82b43a5q815xrd4yhvpqzdwlpvfi50zv5zw4cincppdbkmizdc4zkmym57s8rqmpj5fpyxjl12kla136dy07gkhyg";
+ };
+ };
+ "walker-1.0.7" = {
+ name = "walker";
+ packageName = "walker";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz";
+ sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
+ };
+ };
+ "watchpack-1.6.0" = {
+ name = "watchpack";
+ packageName = "watchpack";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz";
+ sha512 = "34gp4bbaidicl7azgivrrxb9kvdz501gg0xyf88lya75j9wmrbd1rs5rlk2h5g07q5rb453fkjkck54j2qzsdam1qk36bijf5xlg9wb";
+ };
+ };
+ "wbuf-1.7.3" = {
+ name = "wbuf";
+ packageName = "wbuf";
+ version = "1.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz";
+ sha512 = "066j9njgvk6mkjalv1zf1p8w9m2hrl97vz1iw8q6g9zlplhphz54j5j0ma0x9053zhczbyi3k1nr493vgnx1lk22hdwp2glg8x11kiv";
+ };
+ };
+ "wcwidth-1.0.1" = {
+ name = "wcwidth";
+ packageName = "wcwidth";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz";
+ sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
+ };
+ };
+ "webidl-conversions-4.0.2" = {
+ name = "webidl-conversions";
+ packageName = "webidl-conversions";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
+ sha512 = "15gwgjh9anvzcissfhxy3gki7jxn1dy9vq5rma1sgwkbbra8wbxnvimwalgmy8anm33x56mfp492akzhs0gidwmbnadx0ck3fdq23v1";
+ };
+ };
+ "webpack-4.42.0" = {
+ name = "webpack";
+ packageName = "webpack";
+ version = "4.42.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz";
+ sha512 = "3my3qykp4laavc26aad536i8n5h6isv7rnrsv092i7nbyy7dkpi59w3jsxrz7yhbrzwvyiqs78kv8q2plswm8camnc1ij0hzhg52chk";
+ };
+ };
+ "webpack-bundle-analyzer-3.6.1" = {
+ name = "webpack-bundle-analyzer";
+ packageName = "webpack-bundle-analyzer";
+ version = "3.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.1.tgz";
+ sha512 = "13z3rjpds6nclkfxhf6pdnmp78a485psglljlmzibrlx4anhldzw2rvdwi9hzzjpfpi8d7ihhwc1w8s1k23zgh00xqisjqz7hf7rxrm";
+ };
+ };
+ "webpack-cli-3.3.11" = {
+ name = "webpack-cli";
+ packageName = "webpack-cli";
+ version = "3.3.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz";
+ sha512 = "3i5vq7c9hpjb8z9x68dq56cjmv5hs584vgci6zbc7n0m8y1fk4y1kv4pyrq4q9crlkwirwy6gh5w3q0a2xv43w5q42z1ikvd6x5yybm";
+ };
+ };
+ "webpack-dev-middleware-3.7.2" = {
+ name = "webpack-dev-middleware";
+ packageName = "webpack-dev-middleware";
+ version = "3.7.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
+ sha512 = "27qjisacr2wrfj7r3z5hh2x7nrhadc27vg4kcalrdc7rrn8gnnlk64zf1pqmlkffy8klh8r0dr259v1sf6fjm886j5qlqjvpkcbh46p";
+ };
+ };
+ "webpack-dev-server-3.10.3" = {
+ name = "webpack-dev-server";
+ packageName = "webpack-dev-server";
+ version = "3.10.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
+ sha512 = "1wl6ahwwfvm7620d70by2abmqgvw54mdhr8bxhdnnsvjzincy83rg80vffb1vwm2cvxwdc9qpp7ipq8bqrkf773fi6lbk0qzxxdd2bv";
+ };
+ };
+ "webpack-log-1.2.0" = {
+ name = "webpack-log";
+ packageName = "webpack-log";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz";
+ sha512 = "0f0lcci53li31zhx7vhwaq4di0xvhd0n02rgy54kb4bcq6fzki0lz34s6ldzwf1ppaqw1n6jc3hp64blldhz8ianvbl3rzf54h2gl2k";
+ };
+ };
+ "webpack-log-2.0.0" = {
+ name = "webpack-log";
+ packageName = "webpack-log";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz";
+ sha512 = "191qr8nb4rszy53q0ydqfxr1pirimc3k3bi7mhgin5f15cd7vd28maxanyb248kdivmajhji580fv3a1i584icz3cc9bwvzykd0czvi";
+ };
+ };
+ "webpack-sources-1.4.3" = {
+ name = "webpack-sources";
+ packageName = "webpack-sources";
+ version = "1.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz";
+ sha512 = "1wn7ixcv4b15kj3jn4c08n3pgrrd2kgzm2llh9viqx6a6k3j6rqzd5iksxdkalzaz6iic1q4fjj6wr9wfa07llf5a751mkgg3fx414n";
+ };
+ };
+ "websocket-1.0.31" = {
+ name = "websocket";
+ packageName = "websocket";
+ version = "1.0.31";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz";
+ sha512 = "22yr8a52nsijkqybp8fgzvh69wxrhmcqmcmjvmdwl6m9qix0lxdyakbvznj0wr90nl3mw5j4srhgxp6p8ihipil2j5gha66bfk2w2jl";
+ };
+ };
+ "websocket-driver-0.7.3" = {
+ name = "websocket-driver";
+ packageName = "websocket-driver";
+ version = "0.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz";
+ sha512 = "0b5m603phj37lw5vb70ijc77g29cz7vn1w1bs7rhkx1ax3gil0wys841m14gnm3p95lc630hs370dngh68p7aaq69yqw1yvysb5d73f";
+ };
+ };
+ "websocket-extensions-0.1.3" = {
+ name = "websocket-extensions";
+ packageName = "websocket-extensions";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
+ sha512 = "0d1n4yv45ibxf72hj7qka3j7v53dwn58savfiyvsppqhhrgg3g648ykk5v7fpb53hz85kj87m4f45r7d5iazx4yqgs381z6qnfd98cy";
+ };
+ };
+ "whatwg-encoding-1.0.5" = {
+ name = "whatwg-encoding";
+ packageName = "whatwg-encoding";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
+ sha512 = "09x9fa2rb8a6lmwy9hs7z4qn2bsyqw8l2hmfy50z3fa496x3p2xadmlccm8ad17nam5fz77z9mndw2yqp8jpvyw3ryz6f09ksdn56bg";
+ };
+ };
+ "whatwg-mimetype-2.3.0" = {
+ name = "whatwg-mimetype";
+ packageName = "whatwg-mimetype";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
+ sha512 = "3zaycdfc1hh0i4r1c42vgkzwmlfv8j68d90f6i577735i40hk9p9m790g2z2dlmdkchn2z73yj0zs73fmpjdnx4xwrp80m6pv18r31k";
+ };
+ };
+ "whatwg-url-6.5.0" = {
+ name = "whatwg-url";
+ packageName = "whatwg-url";
+ version = "6.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz";
+ sha512 = "36rzky2jm48j68kfvdhvr0cmbnvr2liaagpnnypc59mlvq4bbcwx9qbdb93hbi4vwx0w287zphiardpmfwyjl2ab58b4k3zmi35j55f";
+ };
+ };
+ "whatwg-url-7.1.0" = {
+ name = "whatwg-url";
+ packageName = "whatwg-url";
+ version = "7.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz";
+ sha512 = "1xa656b9abn0fnwqaybjm3h5gs9x26cc3zj7jkk5n3865l9d1wqpp461s4l3i2mgbwf90q6psgvbb80lbrmkihbl4xq7bj31m3bnjsr";
+ };
+ };
+ "which-1.3.1" = {
+ name = "which";
+ packageName = "which";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
+ sha512 = "0hr4hxkk8yb9fz993bs69pf8z2z2qb6sdpxfxb84sd16lja9fsx444pk1ang1ivmjjv5srnsm6fihdj593w7rwxdh834cdmd9hms4hz";
+ };
+ };
+ "which-module-2.0.0" = {
+ name = "which-module";
+ packageName = "which-module";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+ sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+ };
+ };
+ "window-size-0.1.0" = {
+ name = "window-size";
+ packageName = "window-size";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
+ sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
+ };
+ };
+ "with-5.1.1" = {
+ name = "with";
+ packageName = "with";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/with/-/with-5.1.1.tgz";
+ sha1 = "fa4daa92daf32c4ea94ed453c81f04686b575dfe";
+ };
+ };
+ "word-wrap-1.2.3" = {
+ name = "word-wrap";
+ packageName = "word-wrap";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+ sha512 = "2ykkqcs7vmimn8dsvs7xl55j0lbbrfj0nij9i7yqnxg9g759vqyrdis8w5n82k6xvas03x0xhgmbzjgsp7v803mzihx9d12vjnfcgqz";
+ };
+ };
+ "wordwrap-0.0.2" = {
+ name = "wordwrap";
+ packageName = "wordwrap";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
+ sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
+ };
+ };
+ "worker-farm-1.7.0" = {
+ name = "worker-farm";
+ packageName = "worker-farm";
+ version = "1.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz";
+ sha512 = "37m9wq9rvylb71n9kw3qghinwa3x4sggz82k29aall83izni78ijnh8rd6nhas8advw0lbnhby8z74vjlhp3sjsr4qm1wjw6r0kgz5f";
+ };
+ };
+ "wrap-ansi-2.1.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+ sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+ };
+ };
+ "wrap-ansi-5.1.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "5.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+ sha512 = "3nmsfqfd98a7bgjyhd334y5gzc98nnkipfkmk2z1v4m0acagmpq951d8brmrsxvpnk256fbrp7zkn5n8v02pn4q4zai7zgnvy47yba0";
+ };
+ };
+ "wrappy-1.0.2" = {
+ name = "wrappy";
+ packageName = "wrappy";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ };
+ "write-file-atomic-2.4.1" = {
+ name = "write-file-atomic";
+ packageName = "write-file-atomic";
+ version = "2.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz";
+ sha512 = "2zcd4w8bmjv2qg25v2ysnj63r717jb6zmrh2f4c92r0dh0zwj3ybyzg5h619b4adxksn67cg8y5pgn43hq7wl8ih3z7nchrj5wwaqac";
+ };
+ };
+ "ws-5.2.2" = {
+ name = "ws";
+ packageName = "ws";
+ version = "5.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz";
+ sha512 = "0f6ay7yn6xslzh3h66d5krqnp48d9g3ikwk0ijiyyxfkwaqxxf3b0qdswy6ych79mj44315qd16snlnk6m6npc5l0habgy5lc7wb8cd";
+ };
+ };
+ "ws-6.2.1" = {
+ name = "ws";
+ packageName = "ws";
+ version = "6.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz";
+ sha512 = "2l27cfiaw6syjvy6vbpqf5c2swd37bqviizzck6842xlankppm9j1sg79x3m8jpda8v6khcpnm5ssab1b8vf34qpviv41ww5mf8130q";
+ };
+ };
+ "xml-name-validator-3.0.0" = {
+ name = "xml-name-validator";
+ packageName = "xml-name-validator";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
+ sha512 = "0zzh3xf5vk49fghwrf83qvq6v98qin1brnwd7yyh7qs05gc1w3xni0w17sj33534jrkm2za7wkm4q5rhgpchds54i5grcj3vjk99403";
+ };
+ };
+ "xtend-4.0.2" = {
+ name = "xtend";
+ packageName = "xtend";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+ sha512 = "08w1d6fg23v422cfwd55306pfs9n9cqpz6hycahq3adm3n29wmhl9bmpn4vk75rlzgwn7hp4n3idqxvw8c53zbr04h7a98p43b199ic";
+ };
+ };
+ "y18n-4.0.0" = {
+ name = "y18n";
+ packageName = "y18n";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
+ sha512 = "3zj75gvpcgiphxpci4ji1znykk9n4cs0aw3dd6inwdvkmxyqn2483vya70lssjwq8alspnpw88vgii21fdrcn2vmfyppzgf4mkvzm5g";
+ };
+ };
+ "yaeti-0.0.6" = {
+ name = "yaeti";
+ packageName = "yaeti";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz";
+ sha1 = "f26f484d72684cf42bedfb76970aa1608fbf9577";
+ };
+ };
+ "yallist-2.1.2" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ };
+ "yallist-3.1.1" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
+ sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
+ };
+ };
+ "yargs-12.0.5" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "12.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz";
+ sha512 = "1kjmh68p4rb4c04s0gk4ra20crfr32h6v9zhj4clrz61xanslza9g3drbf6471mmvqq3vmxk04grmgillx1rsp6v2zim7wqnr6gq71f";
+ };
+ };
+ "yargs-13.2.4" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "13.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz";
+ sha512 = "2ba88a0fmf5k7dddcbkyhlmh7pijzczza486f2vq9pyw739r7q4yy2xmv4hk8w4ibrj4sjgf6zw01phb89h4j9z3lkz1m2s09cc6vqw";
+ };
+ };
+ "yargs-13.3.2" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "13.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
+ sha512 = "19rg5b2rhj2kg44as5vv9jxmpr39lw250885w6nlfwyhvwd5nxnnx7fc35v7h615i65cik7k3wi7ac20c91kcgfi5wy7blgk31xjz81";
+ };
+ };
+ "yargs-3.10.0" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "3.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
+ sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
+ };
+ };
+ "yargs-parser-10.1.0" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "10.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz";
+ sha512 = "1nj7f7y3kyrc1ijsgnaf4mdkxhxy38lnckavl6inh9wwzhx12xfmgq0n45x4fbj0y6rd1zhjv57l49qm07kqfd9a9cl1809bi3k48jl";
+ };
+ };
+ "yargs-parser-11.1.1" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "11.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz";
+ sha512 = "14iaywclwncdp3p7878q12cqgdc5rbkl0f6ghi9g7k7f4f1bbqi41dc5ki6hnqmy6jbfk0kx88m47vk3igrql5j6i7ar2a3cbyh3a8b";
+ };
+ };
+ "yargs-parser-13.1.2" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "13.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
+ sha512 = "375nan6m28q81h8q9a8vmcxgiq7s81yn1ql7zdikac0c4j2kmxdjzmbq14fcp9jm4ilcfzkd9ym4x7c80s7r6g488wf13zz2wsyqmny";
+ };
+ };
+ "ylru-1.2.1" = {
+ name = "ylru";
+ packageName = "ylru";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz";
+ sha512 = "2yw1b7v991krvw6f597i39x9sqp12qxlfnqz8zd75x00m7jp2a08b2zivbx59b5ih7ka14swqmpfk9ni2inkdjh363z0w1ksfl2p93x";
+ };
+ };
+ };
+in
+{
+ "spacegun-git+https://github.com/dvallin/spacegun.git#v0.3.3" = nodeEnv.buildNodePackage {
+ name = "spacegun";
+ packageName = "spacegun";
+ version = "0.3.3";
+ src = fetchgit {
+ url = "https://github.com/dvallin/spacegun.git";
+ rev = "d32d2df34362f6744e8cff34c2d2bf6ce8b4662a";
+ sha256 = "589bfc9e3e26af38989144e8551547cbeb5ffc9a0b668a7a4cb211a2ebf7a931";
+ };
+ dependencies = [
+ sources."@babel/code-frame-7.8.3"
+ (sources."@babel/core-7.8.7" // {
+ dependencies = [
+ sources."debug-4.1.1"
+ sources."json5-2.1.1"
+ sources."minimist-1.2.5"
+ sources."ms-2.1.2"
+ sources."source-map-0.5.7"
+ ];
+ })
+ (sources."@babel/generator-7.8.8" // {
+ dependencies = [
+ sources."jsesc-2.5.2"
+ sources."source-map-0.5.7"
+ ];
+ })
+ sources."@babel/helper-function-name-7.8.3"
+ sources."@babel/helper-get-function-arity-7.8.3"
+ sources."@babel/helper-plugin-utils-7.8.3"
+ sources."@babel/helper-split-export-declaration-7.8.3"
+ sources."@babel/helpers-7.8.4"
+ (sources."@babel/highlight-7.8.3" // {
+ dependencies = [
+ sources."js-tokens-4.0.0"
+ ];
+ })
+ sources."@babel/parser-7.8.8"
+ sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+ sources."@babel/template-7.8.6"
+ (sources."@babel/traverse-7.8.6" // {
+ dependencies = [
+ sources."debug-4.1.1"
+ sources."globals-11.12.0"
+ sources."ms-2.1.2"
+ ];
+ })
+ (sources."@babel/types-7.8.7" // {
+ dependencies = [
+ sources."to-fast-properties-2.0.0"
+ ];
+ })
+ (sources."@cnakazawa/watch-1.0.4" // {
+ dependencies = [
+ sources."minimist-1.2.5"
+ ];
+ })
+ (sources."@jest/console-24.9.0" // {
+ dependencies = [
+ sources."slash-2.0.0"
+ ];
+ })
+ (sources."@jest/core-24.9.0" // {
+ dependencies = [
+ sources."slash-2.0.0"
+ ];
+ })
+ sources."@jest/environment-24.9.0"
+ sources."@jest/fake-timers-24.9.0"
+ (sources."@jest/reporters-24.9.0" // {
+ dependencies = [
+ sources."slash-2.0.0"
+ ];
+ })
+ sources."@jest/source-map-24.9.0"
+ sources."@jest/test-result-24.9.0"
+ sources."@jest/test-sequencer-24.9.0"
+ (sources."@jest/transform-24.9.0" // {
+ dependencies = [
+ sources."slash-2.0.0"
+ ];
+ })
+ sources."@jest/types-24.9.0"
+ (sources."@kubernetes/client-node-0.10.3" // {
+ dependencies = [
+ sources."@types/node-10.17.17"
+ ];
+ })
+ sources."@sindresorhus/is-0.7.0"
+ sources."@types/accepts-1.3.5"
+ sources."@types/axios-0.14.0"
+ sources."@types/babel-types-7.0.7"
+ sources."@types/babel__core-7.1.6"
+ sources."@types/babel__generator-7.6.1"
+ sources."@types/babel__template-7.0.2"
+ sources."@types/babel__traverse-7.0.9"
+ sources."@types/babylon-6.16.5"
+ sources."@types/body-parser-1.19.0"
+ sources."@types/caseless-0.12.2"
+ sources."@types/command-line-args-5.0.0"
+ sources."@types/connect-3.4.33"
+ sources."@types/cookies-0.7.4"
+ sources."@types/cron-1.7.2"
+ sources."@types/events-3.0.0"
+ sources."@types/express-4.17.3"
+ sources."@types/express-serve-static-core-4.17.2"
+ sources."@types/formidable-1.0.31"
+ sources."@types/glob-7.1.1"
+ sources."@types/http-assert-1.5.1"
+ sources."@types/istanbul-lib-coverage-2.0.1"
+ sources."@types/istanbul-lib-report-3.0.0"
+ sources."@types/istanbul-reports-1.1.1"
+ sources."@types/jest-24.9.1"
+ sources."@types/js-yaml-3.12.2"
+ sources."@types/keygrip-1.0.2"
+ sources."@types/koa-2.11.2"
+ sources."@types/koa-compose-3.2.5"
+ sources."@types/koa-router-7.4.0"
+ sources."@types/koa-send-4.1.2"
+ sources."@types/koa-static-4.0.1"
+ sources."@types/koa-views-2.0.4"
+ sources."@types/lodash-4.14.149"
+ sources."@types/lodash.clonedeep-4.5.6"
+ sources."@types/mime-2.0.1"
+ sources."@types/minimatch-3.0.3"
+ sources."@types/mkdirp-0.5.2"
+ sources."@types/node-12.12.30"
+ sources."@types/ora-3.2.0"
+ sources."@types/range-parser-1.2.3"
+ (sources."@types/request-2.48.4" // {
+ dependencies = [
+ sources."form-data-2.5.1"
+ ];
+ })
+ sources."@types/serve-static-1.13.3"
+ sources."@types/stack-utils-1.0.1"
+ sources."@types/tough-cookie-2.3.6"
+ sources."@types/underscore-1.9.4"
+ sources."@types/websocket-0.0.40"
+ sources."@types/ws-6.0.4"
+ sources."@types/yargs-13.0.8"
+ sources."@types/yargs-parser-15.0.0"
+ sources."@webassemblyjs/ast-1.8.5"
+ sources."@webassemblyjs/floating-point-hex-parser-1.8.5"
+ sources."@webassemblyjs/helper-api-error-1.8.5"
+ sources."@webassemblyjs/helper-buffer-1.8.5"
+ sources."@webassemblyjs/helper-code-frame-1.8.5"
+ sources."@webassemblyjs/helper-fsm-1.8.5"
+ sources."@webassemblyjs/helper-module-context-1.8.5"
+ sources."@webassemblyjs/helper-wasm-bytecode-1.8.5"
+ sources."@webassemblyjs/helper-wasm-section-1.8.5"
+ sources."@webassemblyjs/ieee754-1.8.5"
+ sources."@webassemblyjs/leb128-1.8.5"
+ sources."@webassemblyjs/utf8-1.8.5"
+ sources."@webassemblyjs/wasm-edit-1.8.5"
+ sources."@webassemblyjs/wasm-gen-1.8.5"
+ sources."@webassemblyjs/wasm-opt-1.8.5"
+ sources."@webassemblyjs/wasm-parser-1.8.5"
+ sources."@webassemblyjs/wast-parser-1.8.5"
+ sources."@webassemblyjs/wast-printer-1.8.5"
+ sources."@xtuc/ieee754-1.2.0"
+ sources."@xtuc/long-4.2.2"
+ sources."abab-2.0.3"
+ sources."abbrev-1.1.1"
+ sources."accepts-1.3.7"
+ sources."acorn-3.3.0"
+ (sources."acorn-globals-3.1.0" // {
+ dependencies = [
+ sources."acorn-4.0.13"
+ ];
+ })
+ sources."acorn-walk-6.2.0"
+ sources."aggregate-error-1.0.0"
+ sources."ajv-6.12.0"
+ sources."ajv-errors-1.0.1"
+ sources."ajv-keywords-3.4.1"
+ sources."align-text-0.1.4"
+ sources."ansi-colors-3.2.4"
+ sources."ansi-escapes-3.2.0"
+ sources."ansi-html-0.0.7"
+ sources."ansi-regex-4.1.0"
+ sources."ansi-styles-3.2.1"
+ sources."any-promise-1.3.0"
+ sources."anymatch-2.0.0"
+ sources."aproba-1.2.0"
+ sources."argparse-1.0.10"
+ sources."arr-diff-4.0.0"
+ sources."arr-flatten-1.1.0"
+ sources."arr-union-3.1.0"
+ sources."array-back-3.1.0"
+ sources."array-equal-1.0.0"
+ sources."array-flatten-1.1.1"
+ sources."array-union-1.0.2"
+ sources."array-uniq-1.0.3"
+ sources."array-unique-0.3.2"
+ sources."asap-2.0.6"
+ sources."asn1-0.2.4"
+ sources."asn1.js-4.10.1"
+ (sources."assert-1.5.0" // {
+ dependencies = [
+ sources."inherits-2.0.1"
+ sources."util-0.10.3"
+ ];
+ })
+ sources."assert-plus-1.0.0"
+ sources."assign-symbols-1.0.0"
+ sources."astral-regex-1.0.0"
+ sources."async-2.6.3"
+ sources."async-each-1.0.3"
+ sources."async-limiter-1.0.1"
+ sources."asynckit-0.4.0"
+ sources."atob-2.1.2"
+ sources."awesome-typescript-loader-5.2.1"
+ sources."aws-sign2-0.7.0"
+ sources."aws4-1.9.1"
+ sources."axios-0.19.2"
+ sources."babel-6.23.0"
+ (sources."babel-code-frame-6.26.0" // {
+ dependencies = [
+ sources."ansi-regex-2.1.1"
+ sources."ansi-styles-2.2.1"
+ sources."chalk-1.1.3"
+ sources."strip-ansi-3.0.1"
+ sources."supports-color-2.0.0"
+ ];
+ })
+ (sources."babel-core-6.26.3" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ sources."json5-0.5.1"
+ sources."source-map-0.5.7"
+ ];
+ })
+ (sources."babel-generator-6.26.1" // {
+ dependencies = [
+ sources."source-map-0.5.7"
+ ];
+ })
+ sources."babel-helper-builder-binary-assignment-operator-visitor-6.24.1"
+ sources."babel-helper-call-delegate-6.24.1"
+ sources."babel-helper-define-map-6.26.0"
+ sources."babel-helper-explode-assignable-expression-6.24.1"
+ sources."babel-helper-function-name-6.24.1"
+ sources."babel-helper-get-function-arity-6.24.1"
+ sources."babel-helper-hoist-variables-6.24.1"
+ sources."babel-helper-optimise-call-expression-6.24.1"
+ sources."babel-helper-regex-6.26.0"
+ sources."babel-helper-remap-async-to-generator-6.24.1"
+ sources."babel-helper-replace-supers-6.24.1"
+ sources."babel-helpers-6.24.1"
+ (sources."babel-jest-24.9.0" // {
+ dependencies = [
+ sources."slash-2.0.0"
+ ];
+ })
+ sources."babel-messages-6.23.0"
+ sources."babel-plugin-check-es2015-constants-6.22.0"
+ sources."babel-plugin-istanbul-5.2.0"
+ sources."babel-plugin-jest-hoist-24.9.0"
+ sources."babel-plugin-syntax-async-functions-6.13.0"
+ sources."babel-plugin-syntax-exponentiation-operator-6.13.0"
+ sources."babel-plugin-syntax-trailing-function-commas-6.22.0"
+ sources."babel-plugin-transform-async-to-generator-6.24.1"
+ sources."babel-plugin-transform-es2015-arrow-functions-6.22.0"
+ sources."babel-plugin-transform-es2015-block-scoped-functions-6.22.0"
+ sources."babel-plugin-transform-es2015-block-scoping-6.26.0"
+ sources."babel-plugin-transform-es2015-classes-6.24.1"
+ sources."babel-plugin-transform-es2015-computed-properties-6.24.1"
+ sources."babel-plugin-transform-es2015-destructuring-6.23.0"
+ sources."babel-plugin-transform-es2015-duplicate-keys-6.24.1"
+ sources."babel-plugin-transform-es2015-for-of-6.23.0"
+ sources."babel-plugin-transform-es2015-function-name-6.24.1"
+ sources."babel-plugin-transform-es2015-literals-6.22.0"
+ sources."babel-plugin-transform-es2015-modules-amd-6.24.1"
+ sources."babel-plugin-transform-es2015-modules-commonjs-6.26.2"
+ sources."babel-plugin-transform-es2015-modules-systemjs-6.24.1"
+ sources."babel-plugin-transform-es2015-modules-umd-6.24.1"
+ sources."babel-plugin-transform-es2015-object-super-6.24.1"
+ sources."babel-plugin-transform-es2015-parameters-6.24.1"
+ sources."babel-plugin-transform-es2015-shorthand-properties-6.24.1"
+ sources."babel-plugin-transform-es2015-spread-6.22.0"
+ sources."babel-plugin-transform-es2015-sticky-regex-6.24.1"
+ sources."babel-plugin-transform-es2015-template-literals-6.22.0"
+ sources."babel-plugin-transform-es2015-typeof-symbol-6.23.0"
+ sources."babel-plugin-transform-es2015-unicode-regex-6.24.1"
+ sources."babel-plugin-transform-exponentiation-operator-6.24.1"
+ sources."babel-plugin-transform-regenerator-6.26.0"
+ sources."babel-plugin-transform-strict-mode-6.24.1"
+ sources."babel-preset-env-1.7.0"
+ sources."babel-preset-jest-24.9.0"
+ (sources."babel-register-6.26.0" // {
+ dependencies = [
+ sources."source-map-0.5.7"
+ sources."source-map-support-0.4.18"
+ ];
+ })
+ sources."babel-runtime-6.26.0"
+ sources."babel-template-6.26.0"
+ (sources."babel-traverse-6.26.0" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ ];
+ })
+ sources."babel-types-6.26.0"
+ sources."babylon-6.18.0"
+ sources."balanced-match-1.0.0"
+ (sources."base-0.11.2" // {
+ dependencies = [
+ sources."define-property-1.0.0"
+ ];
+ })
+ sources."base64-js-1.3.1"
+ sources."base64url-3.0.1"
+ sources."batch-0.6.1"
+ sources."bcrypt-pbkdf-1.0.2"
+ sources."bfj-6.1.2"
+ sources."big.js-5.2.2"
+ sources."binary-extensions-1.13.1"
+ sources."bindings-1.5.0"
+ sources."bluebird-3.7.2"
+ sources."bn.js-4.11.8"
+ (sources."body-parser-1.19.0" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ sources."http-errors-1.7.2"
+ sources."inherits-2.0.3"
+ sources."qs-6.7.0"
+ sources."raw-body-2.4.0"
+ ];
+ })
+ (sources."bonjour-3.5.0" // {
+ dependencies = [
+ sources."array-flatten-2.1.2"
+ ];
+ })
+ sources."brace-expansion-1.1.11"
+ sources."braces-2.3.2"
+ sources."brorand-1.1.0"
+ sources."browser-process-hrtime-1.0.0"
+ (sources."browser-resolve-1.11.3" // {
+ dependencies = [
+ sources."resolve-1.1.7"
+ ];
+ })
+ sources."browserify-aes-1.2.0"
+ sources."browserify-cipher-1.0.1"
+ sources."browserify-des-1.0.2"
+ sources."browserify-rsa-4.0.1"
+ sources."browserify-sign-4.0.4"
+ sources."browserify-zlib-0.2.0"
+ sources."browserslist-3.2.8"
+ sources."bs-logger-0.2.6"
+ sources."bser-2.1.1"
+ sources."buffer-4.9.2"
+ sources."buffer-from-1.1.1"
+ sources."buffer-indexof-1.1.1"
+ sources."buffer-xor-1.0.3"
+ sources."builtin-status-codes-3.0.0"
+ sources."byline-5.0.0"
+ sources."bytes-3.1.0"
+ (sources."cacache-10.0.4" // {
+ dependencies = [
+ sources."lru-cache-4.1.5"
+ sources."yallist-2.1.2"
+ ];
+ })
+ sources."cache-base-1.0.1"
+ sources."cache-content-type-1.0.1"
+ (sources."cacheable-request-2.1.4" // {
+ dependencies = [
+ sources."get-stream-3.0.0"
+ sources."lowercase-keys-1.0.0"
+ ];
+ })
+ sources."callsites-3.1.0"
+ sources."camelcase-1.2.1"
+ sources."caniuse-lite-1.0.30001035"
+ sources."capture-exit-2.0.0"
+ sources."caseless-0.12.0"
+ sources."center-align-0.1.3"
+ sources."chalk-2.4.2"
+ sources."character-parser-2.2.0"
+ sources."check-types-8.0.3"
+ (sources."chokidar-2.1.8" // {
+ dependencies = [
+ sources."normalize-path-3.0.0"
+ ];
+ })
+ sources."chownr-1.1.4"
+ sources."chrome-trace-event-1.0.2"
+ sources."ci-info-2.0.0"
+ sources."cipher-base-1.0.4"
+ (sources."class-utils-0.3.6" // {
+ dependencies = [
+ sources."define-property-0.2.5"
+ (sources."is-accessor-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ (sources."is-data-descriptor-0.1.4" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."is-descriptor-0.1.6"
+ sources."kind-of-5.1.0"
+ ];
+ })
+ sources."clean-css-4.2.3"
+ sources."clean-stack-1.3.0"
+ sources."cli-cursor-2.1.0"
+ sources."cli-spinners-2.2.0"
+ sources."cliui-2.1.0"
+ sources."clone-1.0.4"
+ sources."clone-response-1.0.2"
+ sources."co-4.6.0"
+ sources."co-body-5.2.0"
+ sources."code-point-at-1.1.0"
+ sources."collection-visit-1.0.0"
+ sources."color-convert-1.9.3"
+ sources."color-name-1.1.3"
+ sources."combined-stream-1.0.8"
+ sources."command-line-args-5.1.1"
+ sources."commander-2.20.3"
+ sources."commondir-1.0.1"
+ sources."component-emitter-1.3.0"
+ sources."compressible-2.0.18"
+ (sources."compression-1.7.4" // {
+ dependencies = [
+ sources."bytes-3.0.0"
+ sources."debug-2.6.9"
+ sources."safe-buffer-5.1.2"
+ ];
+ })
+ sources."concat-map-0.0.1"
+ sources."concat-stream-1.6.2"
+ sources."condense-newlines-0.2.1"
+ sources."config-chain-1.1.12"
+ sources."connect-history-api-fallback-1.6.0"
+ sources."console-browserify-1.2.0"
+ sources."consolidate-0.15.1"
+ sources."constantinople-3.1.2"
+ sources."constants-browserify-1.0.0"
+ (sources."content-disposition-0.5.3" // {
+ dependencies = [
+ sources."safe-buffer-5.1.2"
+ ];
+ })
+ sources."content-type-1.0.4"
+ (sources."convert-source-map-1.7.0" // {
+ dependencies = [
+ sources."safe-buffer-5.1.2"
+ ];
+ })
+ sources."cookie-0.4.0"
+ sources."cookie-signature-1.0.6"
+ (sources."cookies-0.8.0" // {
+ dependencies = [
+ sources."depd-2.0.0"
+ ];
+ })
+ sources."copy-concurrently-1.0.5"
+ sources."copy-descriptor-0.1.1"
+ (sources."copy-webpack-plugin-4.6.0" // {
+ dependencies = [
+ sources."p-limit-1.3.0"
+ sources."p-try-1.0.0"
+ ];
+ })
+ sources."core-js-2.6.11"
+ sources."core-util-is-1.0.2"
+ sources."create-ecdh-4.0.3"
+ sources."create-hash-1.2.0"
+ sources."create-hmac-1.1.7"
+ sources."cron-1.8.2"
+ sources."cross-spawn-6.0.5"
+ sources."crypto-browserify-3.12.0"
+ sources."cssom-0.3.8"
+ sources."cssstyle-1.4.0"
+ sources."cyclist-1.0.1"
+ sources."d-1.0.1"
+ sources."dashdash-1.14.1"
+ (sources."data-urls-1.1.0" // {
+ dependencies = [
+ sources."whatwg-url-7.1.0"
+ ];
+ })
+ sources."debug-3.1.0"
+ sources."decamelize-1.2.0"
+ sources."decode-uri-component-0.2.0"
+ sources."decompress-response-3.3.0"
+ sources."deep-equal-1.0.1"
+ sources."deep-is-0.1.3"
+ sources."default-gateway-4.2.0"
+ sources."defaults-1.0.3"
+ sources."define-properties-1.1.3"
+ sources."define-property-2.0.2"
+ (sources."del-4.1.1" // {
+ dependencies = [
+ (sources."globby-6.1.0" // {
+ dependencies = [
+ sources."pify-2.3.0"
+ ];
+ })
+ sources."pify-4.0.1"
+ ];
+ })
+ sources."delayed-stream-1.0.0"
+ sources."delegates-1.0.0"
+ sources."depd-1.1.2"
+ sources."des.js-1.0.1"
+ sources."destroy-1.0.4"
+ sources."detect-file-1.0.0"
+ sources."detect-indent-4.0.0"
+ sources."detect-newline-2.1.0"
+ sources."detect-node-2.0.4"
+ sources."diff-sequences-24.9.0"
+ sources."diffie-hellman-5.0.3"
+ sources."dir-glob-2.2.2"
+ sources."dns-equal-1.0.0"
+ sources."dns-packet-1.3.1"
+ sources."dns-txt-2.0.2"
+ sources."doctypes-1.1.0"
+ sources."domain-browser-1.2.0"
+ sources."domexception-1.0.1"
+ sources."duplexer-0.1.1"
+ sources."duplexer3-0.1.4"
+ sources."duplexify-3.7.1"
+ sources."ecc-jsbn-0.1.2"
+ (sources."editorconfig-0.15.3" // {
+ dependencies = [
+ sources."lru-cache-4.1.5"
+ sources."yallist-2.1.2"
+ ];
+ })
+ sources."ee-first-1.1.1"
+ sources."ejs-2.7.4"
+ sources."electron-to-chromium-1.3.376"
+ sources."elliptic-6.5.2"
+ sources."emoji-regex-7.0.3"
+ sources."emojis-list-3.0.0"
+ sources."encodeurl-1.0.2"
+ sources."end-of-stream-1.4.4"
+ sources."enhanced-resolve-4.1.1"
+ sources."errno-0.1.7"
+ sources."error-ex-1.3.2"
+ sources."error-inject-1.0.0"
+ sources."es-abstract-1.17.4"
+ sources."es-to-primitive-1.2.1"
+ sources."es5-ext-0.10.53"
+ sources."es6-iterator-2.0.3"
+ sources."es6-promise-4.2.8"
+ sources."es6-symbol-3.1.3"
+ sources."escape-html-1.0.3"
+ sources."escape-string-regexp-1.0.5"
+ sources."escodegen-1.14.1"
+ sources."eslint-scope-4.0.3"
+ sources."esprima-4.0.1"
+ sources."esrecurse-4.2.1"
+ sources."estraverse-4.3.0"
+ sources."esutils-2.0.3"
+ sources."etag-1.8.1"
+ sources."eventemitter3-4.0.0"
+ sources."events-3.1.0"
+ sources."eventsource-1.0.7"
+ sources."evp_bytestokey-1.0.3"
+ sources."exec-sh-0.3.4"
+ sources."execa-1.0.0"
+ sources."exit-0.1.2"
+ (sources."expand-brackets-2.1.4" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ sources."define-property-0.2.5"
+ (sources."is-accessor-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ (sources."is-data-descriptor-0.1.4" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."is-descriptor-0.1.6"
+ sources."kind-of-5.1.0"
+ ];
+ })
+ sources."expand-tilde-2.0.2"
+ sources."expect-24.9.0"
+ (sources."express-4.17.1" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ sources."path-to-regexp-0.1.7"
+ sources."qs-6.7.0"
+ sources."safe-buffer-5.1.2"
+ ];
+ })
+ (sources."ext-1.4.0" // {
+ dependencies = [
+ sources."type-2.0.0"
+ ];
+ })
+ sources."extend-3.0.2"
+ sources."extend-shallow-2.0.1"
+ (sources."extglob-2.0.4" // {
+ dependencies = [
+ sources."define-property-1.0.0"
+ ];
+ })
+ sources."extsprintf-1.3.0"
+ sources."fast-deep-equal-3.1.1"
+ sources."fast-json-stable-stringify-2.1.0"
+ sources."fast-levenshtein-2.0.6"
+ sources."faye-websocket-0.10.0"
+ sources."fb-watchman-2.0.1"
+ sources."figgy-pudding-3.5.1"
+ sources."file-uri-to-path-1.0.0"
+ sources."filesize-3.6.1"
+ sources."fill-range-4.0.0"
+ (sources."finalhandler-1.1.2" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ ];
+ })
+ sources."find-cache-dir-1.0.0"
+ sources."find-replace-3.0.0"
+ sources."find-up-3.0.0"
+ sources."findup-sync-3.0.0"
+ sources."flush-write-stream-1.1.1"
+ sources."follow-redirects-1.5.10"
+ sources."for-in-1.0.2"
+ sources."forever-agent-0.6.1"
+ sources."form-data-2.3.3"
+ sources."formidable-1.2.2"
+ sources."forwarded-0.1.2"
+ sources."fragment-cache-0.2.1"
+ sources."fresh-0.5.2"
+ sources."from2-2.3.0"
+ sources."fs-write-stream-atomic-1.0.10"
+ sources."fs.realpath-1.0.0"
+ sources."fsevents-1.2.11"
+ sources."function-bind-1.1.1"
+ sources."gensync-1.0.0-beta.1"
+ sources."get-caller-file-2.0.5"
+ (sources."get-paths-0.0.7" // {
+ dependencies = [
+ sources."pify-4.0.1"
+ ];
+ })
+ sources."get-stream-4.1.0"
+ sources."get-value-2.0.6"
+ sources."getpass-0.1.7"
+ sources."glob-7.1.6"
+ (sources."glob-parent-3.1.0" // {
+ dependencies = [
+ sources."is-glob-3.1.0"
+ ];
+ })
+ (sources."global-modules-2.0.0" // {
+ dependencies = [
+ sources."global-prefix-3.0.0"
+ sources."kind-of-6.0.3"
+ ];
+ })
+ sources."global-prefix-1.0.2"
+ sources."globals-9.18.0"
+ sources."globby-7.1.1"
+ (sources."got-8.3.2" // {
+ dependencies = [
+ sources."get-stream-3.0.0"
+ ];
+ })
+ sources."graceful-fs-4.2.3"
+ sources."growly-1.3.0"
+ (sources."gzip-size-5.1.1" // {
+ dependencies = [
+ sources."pify-4.0.1"
+ ];
+ })
+ sources."handle-thing-2.0.0"
+ sources."har-schema-2.0.0"
+ sources."har-validator-5.1.3"
+ sources."has-1.0.3"
+ (sources."has-ansi-2.0.0" // {
+ dependencies = [
+ sources."ansi-regex-2.1.1"
+ ];
+ })
+ sources."has-flag-3.0.0"
+ sources."has-symbol-support-x-1.4.2"
+ sources."has-symbols-1.0.1"
+ sources."has-to-string-tag-x-1.4.1"
+ sources."has-value-1.0.0"
+ (sources."has-values-1.0.0" // {
+ dependencies = [
+ sources."kind-of-4.0.0"
+ ];
+ })
+ sources."hash-base-3.0.4"
+ sources."hash.js-1.1.7"
+ sources."hmac-drbg-1.0.1"
+ sources."home-or-tmp-2.0.0"
+ sources."homedir-polyfill-1.0.3"
+ sources."hoopy-0.1.4"
+ sources."hosted-git-info-2.8.8"
+ sources."hpack.js-2.1.6"
+ sources."html-encoding-sniffer-1.0.2"
+ sources."html-entities-1.2.1"
+ sources."html-escaper-2.0.0"
+ sources."http-assert-1.4.1"
+ sources."http-cache-semantics-3.8.1"
+ sources."http-deceiver-1.2.7"
+ sources."http-errors-1.7.3"
+ sources."http-parser-js-0.4.10"
+ sources."http-proxy-1.18.0"
+ sources."http-proxy-middleware-0.19.1"
+ sources."http-signature-1.2.0"
+ sources."https-browserify-1.0.0"
+ sources."iconv-lite-0.4.24"
+ sources."ieee754-1.1.13"
+ sources."iferr-0.1.5"
+ sources."ignore-3.3.10"
+ (sources."import-local-2.0.0" // {
+ dependencies = [
+ sources."pkg-dir-3.0.0"
+ ];
+ })
+ sources."imurmurhash-0.1.4"
+ sources."indent-string-3.2.0"
+ sources."infer-owner-1.0.4"
+ sources."inflation-2.0.0"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.4"
+ sources."ini-1.3.5"
+ sources."internal-ip-4.3.0"
+ sources."interpret-1.2.0"
+ sources."into-stream-3.1.0"
+ sources."invariant-2.2.4"
+ sources."invert-kv-2.0.0"
+ sources."ip-1.1.5"
+ sources."ip-regex-2.1.0"
+ sources."ipaddr.js-1.9.1"
+ sources."is-absolute-url-3.0.3"
+ (sources."is-accessor-descriptor-1.0.0" // {
+ dependencies = [
+ sources."kind-of-6.0.3"
+ ];
+ })
+ sources."is-arrayish-0.2.1"
+ sources."is-binary-path-1.0.1"
+ sources."is-buffer-1.1.6"
+ sources."is-callable-1.1.5"
+ sources."is-ci-2.0.0"
+ (sources."is-data-descriptor-1.0.0" // {
+ dependencies = [
+ sources."kind-of-6.0.3"
+ ];
+ })
+ sources."is-date-object-1.0.2"
+ (sources."is-descriptor-1.0.2" // {
+ dependencies = [
+ sources."kind-of-6.0.3"
+ ];
+ })
+ (sources."is-expression-3.0.0" // {
+ dependencies = [
+ sources."acorn-4.0.13"
+ ];
+ })
+ sources."is-extendable-0.1.1"
+ sources."is-extglob-2.1.1"
+ sources."is-finite-1.1.0"
+ sources."is-fullwidth-code-point-2.0.0"
+ sources."is-generator-fn-2.1.0"
+ sources."is-generator-function-1.0.7"
+ sources."is-glob-4.0.1"
+ sources."is-number-3.0.0"
+ sources."is-object-1.0.1"
+ sources."is-path-cwd-2.2.0"
+ sources."is-path-in-cwd-2.1.0"
+ sources."is-path-inside-2.1.0"
+ sources."is-plain-obj-1.1.0"
+ sources."is-plain-object-2.0.4"
+ sources."is-promise-2.1.0"
+ sources."is-regex-1.0.5"
+ sources."is-retry-allowed-1.2.0"
+ sources."is-stream-1.1.0"
+ sources."is-symbol-1.0.3"
+ sources."is-typedarray-1.0.0"
+ sources."is-whitespace-0.3.0"
+ sources."is-windows-1.0.2"
+ sources."is-wsl-1.1.0"
+ sources."isarray-1.0.0"
+ sources."isexe-2.0.0"
+ sources."isobject-3.0.1"
+ sources."isomorphic-ws-4.0.1"
+ sources."isstream-0.1.2"
+ sources."istanbul-lib-coverage-2.0.5"
+ (sources."istanbul-lib-instrument-3.3.0" // {
+ dependencies = [
+ sources."semver-6.3.0"
+ ];
+ })
+ (sources."istanbul-lib-report-2.0.8" // {
+ dependencies = [
+ sources."make-dir-2.1.0"
+ sources."pify-4.0.1"
+ sources."supports-color-6.1.0"
+ ];
+ })
+ (sources."istanbul-lib-source-maps-3.0.6" // {
+ dependencies = [
+ sources."debug-4.1.1"
+ sources."make-dir-2.1.0"
+ sources."ms-2.1.2"
+ sources."pify-4.0.1"
+ ];
+ })
+ sources."istanbul-reports-2.2.7"
+ sources."isurl-1.0.0"
+ sources."jest-24.9.0"
+ sources."jest-changed-files-24.9.0"
+ (sources."jest-cli-24.9.0" // {
+ dependencies = [
+ sources."cliui-5.0.0"
+ sources."yargs-13.3.2"
+ ];
+ })
+ sources."jest-config-24.9.0"
+ sources."jest-diff-24.9.0"
+ sources."jest-docblock-24.9.0"
+ sources."jest-each-24.9.0"
+ sources."jest-environment-jsdom-24.9.0"
+ sources."jest-environment-node-24.9.0"
+ sources."jest-get-type-24.9.0"
+ sources."jest-haste-map-24.9.0"
+ sources."jest-jasmine2-24.9.0"
+ sources."jest-leak-detector-24.9.0"
+ sources."jest-matcher-utils-24.9.0"
+ (sources."jest-message-util-24.9.0" // {
+ dependencies = [
+ sources."slash-2.0.0"
+ ];
+ })
+ sources."jest-mock-24.9.0"
+ sources."jest-pnp-resolver-1.2.1"
+ sources."jest-regex-util-24.9.0"
+ sources."jest-resolve-24.9.0"
+ sources."jest-resolve-dependencies-24.9.0"
+ sources."jest-runner-24.9.0"
+ (sources."jest-runtime-24.9.0" // {
+ dependencies = [
+ sources."cliui-5.0.0"
+ sources."slash-2.0.0"
+ sources."yargs-13.3.2"
+ ];
+ })
+ sources."jest-serializer-24.9.0"
+ (sources."jest-snapshot-24.9.0" // {
+ dependencies = [
+ sources."semver-6.3.0"
+ ];
+ })
+ (sources."jest-util-24.9.0" // {
+ dependencies = [
+ sources."slash-2.0.0"
+ ];
+ })
+ (sources."jest-validate-24.9.0" // {
+ dependencies = [
+ sources."camelcase-5.3.1"
+ ];
+ })
+ sources."jest-watcher-24.9.0"
+ (sources."jest-worker-24.9.0" // {
+ dependencies = [
+ sources."supports-color-6.1.0"
+ ];
+ })
+ sources."js-beautify-1.10.3"
+ sources."js-stringify-1.0.2"
+ sources."js-tokens-3.0.2"
+ sources."js-yaml-3.13.1"
+ sources."jsbn-0.1.1"
+ (sources."jsdom-11.12.0" // {
+ dependencies = [
+ sources."acorn-5.7.4"
+ (sources."acorn-globals-4.3.4" // {
+ dependencies = [
+ sources."acorn-6.4.1"
+ ];
+ })
+ sources."ws-5.2.2"
+ ];
+ })
+ sources."jsesc-1.3.0"
+ sources."json-buffer-3.0.0"
+ sources."json-parse-better-errors-1.0.2"
+ sources."json-schema-0.2.3"
+ sources."json-schema-traverse-0.4.1"
+ sources."json-stringify-safe-5.0.1"
+ sources."json3-3.3.3"
+ (sources."json5-1.0.1" // {
+ dependencies = [
+ sources."minimist-1.2.5"
+ ];
+ })
+ sources."jsonpath-plus-0.19.0"
+ sources."jsprim-1.4.1"
+ sources."jstransformer-1.0.0"
+ sources."keygrip-1.1.0"
+ sources."keyv-3.0.0"
+ sources."killable-1.0.1"
+ sources."kind-of-3.2.2"
+ sources."kleur-3.0.3"
+ sources."koa-2.11.0"
+ sources."koa-body-4.1.1"
+ sources."koa-compose-4.1.0"
+ (sources."koa-convert-1.2.0" // {
+ dependencies = [
+ sources."koa-compose-3.2.1"
+ ];
+ })
+ (sources."koa-router-7.4.0" // {
+ dependencies = [
+ sources."koa-compose-3.2.1"
+ ];
+ })
+ sources."koa-send-5.0.0"
+ sources."koa-static-5.0.0"
+ (sources."koa-views-6.2.1" // {
+ dependencies = [
+ sources."debug-4.1.1"
+ sources."ms-2.1.2"
+ ];
+ })
+ sources."lazy-cache-1.0.4"
+ sources."lcid-2.0.0"
+ sources."left-pad-1.3.0"
+ sources."leven-3.1.0"
+ sources."levn-0.3.0"
+ sources."load-json-file-4.0.0"
+ sources."loader-runner-2.4.0"
+ sources."loader-utils-1.4.0"
+ sources."locate-path-3.0.0"
+ sources."lodash-4.17.15"
+ sources."lodash.camelcase-4.3.0"
+ sources."lodash.clonedeep-4.5.0"
+ sources."lodash.memoize-4.1.2"
+ sources."lodash.sortby-4.7.0"
+ sources."log-symbols-2.2.0"
+ sources."loglevel-1.6.7"
+ sources."loglevelnext-1.0.5"
+ sources."long-4.0.0"
+ sources."longest-1.0.1"
+ sources."loose-envify-1.4.0"
+ sources."lowercase-keys-1.0.1"
+ sources."lru-cache-5.1.1"
+ sources."make-dir-1.3.0"
+ sources."make-error-1.3.6"
+ sources."makeerror-1.0.11"
+ sources."mamacro-0.0.3"
+ sources."map-age-cleaner-0.1.3"
+ sources."map-cache-0.2.2"
+ sources."map-visit-1.0.0"
+ sources."md5.js-1.3.5"
+ sources."media-typer-0.3.0"
+ (sources."mem-4.3.0" // {
+ dependencies = [
+ sources."mimic-fn-2.1.0"
+ sources."p-is-promise-2.1.0"
+ ];
+ })
+ sources."memory-fs-0.5.0"
+ sources."merge-descriptors-1.0.1"
+ sources."merge-stream-2.0.0"
+ sources."methods-1.1.2"
+ (sources."micromatch-3.1.10" // {
+ dependencies = [
+ sources."extend-shallow-3.0.2"
+ sources."is-extendable-1.0.1"
+ sources."kind-of-6.0.3"
+ ];
+ })
+ sources."miller-rabin-4.0.1"
+ sources."mime-1.6.0"
+ sources."mime-db-1.43.0"
+ sources."mime-types-2.1.26"
+ sources."mimic-fn-1.2.0"
+ sources."mimic-response-1.0.1"
+ sources."minimalistic-assert-1.0.1"
+ sources."minimalistic-crypto-utils-1.0.1"
+ sources."minimatch-3.0.4"
+ sources."minimist-0.0.8"
+ (sources."mississippi-2.0.0" // {
+ dependencies = [
+ sources."pump-2.0.1"
+ ];
+ })
+ (sources."mixin-deep-1.3.2" // {
+ dependencies = [
+ sources."is-extendable-1.0.1"
+ ];
+ })
+ sources."mkdirp-0.5.1"
+ sources."moment-2.24.0"
+ sources."moment-timezone-0.5.28"
+ sources."move-concurrently-1.0.1"
+ sources."ms-2.0.0"
+ sources."multicast-dns-6.2.3"
+ sources."multicast-dns-service-types-1.1.0"
+ sources."mz-2.7.0"
+ sources."nan-2.14.0"
+ (sources."nanomatch-1.2.13" // {
+ dependencies = [
+ sources."extend-shallow-3.0.2"
+ sources."is-extendable-1.0.1"
+ sources."kind-of-6.0.3"
+ ];
+ })
+ sources."natural-compare-1.4.0"
+ sources."negotiator-0.6.2"
+ sources."neo-async-2.6.1"
+ sources."next-tick-1.0.0"
+ sources."nice-try-1.0.5"
+ sources."node-forge-0.8.5"
+ sources."node-int64-0.4.0"
+ sources."node-jose-1.1.3"
+ (sources."node-libs-browser-2.2.1" // {
+ dependencies = [
+ sources."punycode-1.4.1"
+ ];
+ })
+ sources."node-modules-regexp-1.0.0"
+ sources."node-notifier-5.4.3"
+ sources."nopt-4.0.3"
+ sources."normalize-package-data-2.5.0"
+ sources."normalize-path-2.1.1"
+ sources."normalize-url-2.0.1"
+ sources."npm-run-path-2.0.2"
+ sources."number-is-nan-1.0.1"
+ sources."nwsapi-2.2.0"
+ sources."oauth-sign-0.9.0"
+ sources."object-assign-4.1.1"
+ (sources."object-copy-0.1.0" // {
+ dependencies = [
+ sources."define-property-0.2.5"
+ sources."is-accessor-descriptor-0.1.6"
+ sources."is-data-descriptor-0.1.4"
+ (sources."is-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-5.1.0"
+ ];
+ })
+ ];
+ })
+ sources."object-hash-1.3.1"
+ sources."object-inspect-1.7.0"
+ sources."object-keys-1.1.1"
+ sources."object-visit-1.0.1"
+ sources."object.assign-4.1.0"
+ sources."object.getownpropertydescriptors-2.1.0"
+ sources."object.pick-1.3.0"
+ sources."obuf-1.1.2"
+ sources."oidc-token-hash-3.0.2"
+ sources."on-finished-2.3.0"
+ sources."on-headers-1.0.2"
+ sources."once-1.4.0"
+ sources."onetime-2.0.1"
+ sources."only-0.0.2"
+ sources."opener-1.5.1"
+ sources."openid-client-2.5.0"
+ sources."opn-5.5.0"
+ sources."optionator-0.8.3"
+ sources."ora-3.4.0"
+ sources."original-1.0.2"
+ sources."os-browserify-0.3.0"
+ sources."os-homedir-1.0.2"
+ sources."os-locale-3.1.0"
+ sources."os-tmpdir-1.0.2"
+ sources."osenv-0.1.5"
+ sources."p-any-1.1.0"
+ sources."p-cancelable-0.4.1"
+ sources."p-defer-1.0.0"
+ sources."p-each-series-1.0.0"
+ sources."p-finally-1.0.0"
+ sources."p-is-promise-1.1.0"
+ sources."p-limit-2.2.2"
+ sources."p-locate-3.0.0"
+ sources."p-map-2.1.0"
+ sources."p-reduce-1.0.0"
+ sources."p-retry-3.0.1"
+ sources."p-some-2.0.1"
+ sources."p-timeout-2.0.1"
+ sources."p-try-2.2.0"
+ sources."pako-1.0.11"
+ sources."parallel-transform-1.2.0"
+ sources."parse-asn1-5.1.5"
+ sources."parse-json-4.0.0"
+ sources."parse-passwd-1.0.0"
+ sources."parse5-4.0.0"
+ sources."parseurl-1.3.3"
+ sources."pascalcase-0.1.1"
+ sources."path-browserify-0.0.1"
+ sources."path-dirname-1.0.2"
+ sources."path-exists-3.0.0"
+ sources."path-is-absolute-1.0.1"
+ sources."path-is-inside-1.0.2"
+ sources."path-key-2.0.1"
+ sources."path-parse-1.0.6"
+ (sources."path-to-regexp-1.8.0" // {
+ dependencies = [
+ sources."isarray-0.0.1"
+ ];
+ })
+ sources."path-type-3.0.0"
+ sources."pbkdf2-3.0.17"
+ sources."performance-now-2.1.0"
+ sources."pify-3.0.0"
+ sources."pinkie-2.0.4"
+ sources."pinkie-promise-2.0.1"
+ sources."pirates-4.0.1"
+ (sources."pkg-dir-2.0.0" // {
+ dependencies = [
+ sources."find-up-2.1.0"
+ sources."locate-path-2.0.0"
+ sources."p-limit-1.3.0"
+ sources."p-locate-2.0.0"
+ sources."p-try-1.0.0"
+ ];
+ })
+ sources."pn-1.1.0"
+ (sources."portfinder-1.0.25" // {
+ dependencies = [
+ sources."debug-3.2.6"
+ sources."ms-2.1.2"
+ ];
+ })
+ sources."posix-character-classes-0.1.1"
+ sources."prelude-ls-1.1.2"
+ sources."prepend-http-2.0.0"
+ sources."prettier-1.19.1"
+ sources."pretty-2.0.0"
+ sources."pretty-format-24.9.0"
+ sources."private-0.1.8"
+ sources."process-0.11.10"
+ sources."process-nextick-args-2.0.1"
+ sources."promise-7.3.1"
+ sources."promise-inflight-1.0.1"
+ sources."prompts-2.3.1"
+ sources."proto-list-1.2.4"
+ sources."proxy-addr-2.0.6"
+ sources."prr-1.0.1"
+ sources."pseudomap-1.0.2"
+ sources."psl-1.7.0"
+ sources."public-encrypt-4.0.3"
+ sources."pug-2.0.4"
+ sources."pug-attrs-2.0.4"
+ sources."pug-code-gen-2.0.2"
+ sources."pug-error-1.3.3"
+ sources."pug-filters-3.1.1"
+ sources."pug-lexer-4.1.0"
+ sources."pug-linker-3.0.6"
+ sources."pug-load-2.0.12"
+ sources."pug-parser-5.0.1"
+ sources."pug-runtime-2.0.5"
+ sources."pug-strip-comments-1.0.4"
+ sources."pug-walk-1.1.8"
+ sources."pump-3.0.0"
+ (sources."pumpify-1.5.1" // {
+ dependencies = [
+ sources."pump-2.0.1"
+ ];
+ })
+ sources."punycode-2.1.1"
+ sources."qs-6.5.2"
+ sources."query-string-5.1.1"
+ sources."querystring-0.2.0"
+ sources."querystring-es3-0.2.1"
+ sources."querystringify-2.1.1"
+ sources."randombytes-2.1.0"
+ sources."randomfill-1.0.4"
+ sources."range-parser-1.2.1"
+ sources."raw-body-2.4.1"
+ sources."react-is-16.13.0"
+ sources."read-pkg-3.0.0"
+ sources."read-pkg-up-4.0.0"
+ (sources."readable-stream-2.3.7" // {
+ dependencies = [
+ sources."safe-buffer-5.1.2"
+ ];
+ })
+ sources."readdirp-2.2.1"
+ sources."realpath-native-1.1.0"
+ sources."rechoir-0.6.2"
+ sources."regenerate-1.4.0"
+ sources."regenerator-runtime-0.11.1"
+ sources."regenerator-transform-0.10.1"
+ (sources."regex-not-1.0.2" // {
+ dependencies = [
+ sources."extend-shallow-3.0.2"
+ sources."is-extendable-1.0.1"
+ ];
+ })
+ sources."regexpu-core-2.0.0"
+ sources."regjsgen-0.2.0"
+ (sources."regjsparser-0.1.5" // {
+ dependencies = [
+ sources."jsesc-0.5.0"
+ ];
+ })
+ sources."remove-trailing-separator-1.1.0"
+ sources."repeat-element-1.1.3"
+ sources."repeat-string-1.6.1"
+ sources."repeating-2.0.1"
+ sources."request-2.88.2"
+ sources."request-promise-core-1.1.3"
+ sources."request-promise-native-1.0.8"
+ sources."require-directory-2.1.1"
+ sources."require-main-filename-2.0.0"
+ sources."requires-port-1.0.0"
+ sources."resolve-1.15.1"
+ sources."resolve-cwd-2.0.0"
+ (sources."resolve-dir-1.0.1" // {
+ dependencies = [
+ sources."global-modules-1.0.0"
+ ];
+ })
+ sources."resolve-from-3.0.0"
+ (sources."resolve-path-1.4.0" // {
+ dependencies = [
+ sources."http-errors-1.6.3"
+ sources."inherits-2.0.3"
+ sources."setprototypeof-1.1.0"
+ ];
+ })
+ sources."resolve-url-0.2.1"
+ sources."responselike-1.0.2"
+ sources."restore-cursor-2.0.0"
+ sources."ret-0.1.15"
+ sources."retry-0.12.0"
+ sources."right-align-0.1.3"
+ sources."rimraf-2.7.1"
+ sources."ripemd160-2.0.2"
+ sources."rsvp-4.8.5"
+ sources."run-queue-1.0.3"
+ sources."rxjs-6.5.4"
+ sources."safe-buffer-5.2.0"
+ sources."safe-regex-1.1.0"
+ sources."safer-buffer-2.1.2"
+ (sources."sane-4.1.0" // {
+ dependencies = [
+ sources."minimist-1.2.5"
+ ];
+ })
+ sources."sax-1.2.4"
+ sources."schema-utils-1.0.0"
+ sources."select-hose-2.0.0"
+ (sources."selfsigned-1.10.7" // {
+ dependencies = [
+ sources."node-forge-0.9.0"
+ ];
+ })
+ sources."semver-5.7.1"
+ (sources."send-0.17.1" // {
+ dependencies = [
+ (sources."debug-2.6.9" // {
+ dependencies = [
+ sources."ms-2.0.0"
+ ];
+ })
+ sources."ms-2.1.1"
+ ];
+ })
+ sources."serialize-javascript-1.9.1"
+ (sources."serve-index-1.9.1" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ sources."http-errors-1.6.3"
+ sources."inherits-2.0.3"
+ sources."setprototypeof-1.1.0"
+ ];
+ })
+ sources."serve-static-1.14.1"
+ sources."set-blocking-2.0.0"
+ sources."set-value-2.0.1"
+ sources."setimmediate-1.0.5"
+ sources."setprototypeof-1.1.1"
+ sources."sha.js-2.4.11"
+ sources."shebang-command-1.2.0"
+ sources."shebang-regex-1.0.0"
+ sources."shelljs-0.8.3"
+ sources."shellwords-0.1.1"
+ sources."sigmund-1.0.1"
+ sources."signal-exit-3.0.2"
+ sources."simple-git-1.96.0"
+ sources."sisteransi-1.0.4"
+ sources."slash-1.0.0"
+ (sources."snapdragon-0.8.2" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ sources."define-property-0.2.5"
+ (sources."is-accessor-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ (sources."is-data-descriptor-0.1.4" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."is-descriptor-0.1.6"
+ sources."kind-of-5.1.0"
+ sources."source-map-0.5.7"
+ ];
+ })
+ (sources."snapdragon-node-2.1.1" // {
+ dependencies = [
+ sources."define-property-1.0.0"
+ ];
+ })
+ sources."snapdragon-util-3.0.1"
+ sources."sockjs-0.3.19"
+ (sources."sockjs-client-1.4.0" // {
+ dependencies = [
+ sources."debug-3.2.6"
+ sources."faye-websocket-0.11.3"
+ sources."ms-2.1.2"
+ ];
+ })
+ sources."sort-keys-2.0.0"
+ sources."source-list-map-2.0.1"
+ sources."source-map-0.6.1"
+ sources."source-map-resolve-0.5.3"
+ sources."source-map-support-0.5.16"
+ sources."source-map-url-0.4.0"
+ sources."spdx-correct-3.1.0"
+ sources."spdx-exceptions-2.2.0"
+ sources."spdx-expression-parse-3.0.0"
+ sources."spdx-license-ids-3.0.5"
+ (sources."spdy-4.0.1" // {
+ dependencies = [
+ sources."debug-4.1.1"
+ sources."ms-2.1.2"
+ ];
+ })
+ (sources."spdy-transport-3.0.0" // {
+ dependencies = [
+ sources."debug-4.1.1"
+ sources."ms-2.1.2"
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ (sources."split-string-3.1.0" // {
+ dependencies = [
+ sources."extend-shallow-3.0.2"
+ sources."is-extendable-1.0.1"
+ ];
+ })
+ sources."sprintf-js-1.0.3"
+ sources."sshpk-1.16.1"
+ sources."ssri-5.3.0"
+ sources."stack-utils-1.0.2"
+ (sources."static-extend-0.1.2" // {
+ dependencies = [
+ sources."define-property-0.2.5"
+ (sources."is-accessor-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ (sources."is-data-descriptor-0.1.4" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."is-descriptor-0.1.6"
+ sources."kind-of-5.1.0"
+ ];
+ })
+ sources."statuses-1.5.0"
+ sources."stealthy-require-1.1.1"
+ sources."stream-browserify-2.0.2"
+ sources."stream-each-1.2.3"
+ sources."stream-http-2.8.3"
+ sources."stream-shift-1.0.1"
+ sources."strict-uri-encode-1.1.0"
+ (sources."string-length-2.0.0" // {
+ dependencies = [
+ sources."ansi-regex-3.0.0"
+ sources."strip-ansi-4.0.0"
+ ];
+ })
+ sources."string-width-3.1.0"
+ sources."string.prototype.trimleft-2.1.1"
+ sources."string.prototype.trimright-2.1.1"
+ (sources."string_decoder-1.1.1" // {
+ dependencies = [
+ sources."safe-buffer-5.1.2"
+ ];
+ })
+ sources."strip-ansi-5.2.0"
+ sources."strip-bom-3.0.0"
+ sources."strip-eof-1.0.0"
+ sources."supports-color-5.5.0"
+ sources."symbol-tree-3.2.4"
+ sources."tapable-1.1.3"
+ sources."terser-4.6.6"
+ (sources."terser-webpack-plugin-1.4.3" // {
+ dependencies = [
+ sources."cacache-12.0.3"
+ sources."find-cache-dir-2.1.0"
+ sources."make-dir-2.1.0"
+ sources."mississippi-3.0.0"
+ sources."pify-4.0.1"
+ sources."pkg-dir-3.0.0"
+ sources."serialize-javascript-2.1.2"
+ sources."ssri-6.0.1"
+ ];
+ })
+ sources."test-exclude-5.2.3"
+ sources."thenify-3.3.0"
+ sources."thenify-all-1.6.0"
+ sources."throat-4.1.0"
+ sources."through2-2.0.5"
+ sources."thunky-1.1.0"
+ sources."timed-out-4.0.1"
+ sources."timers-browserify-2.0.11"
+ sources."tmpl-1.0.4"
+ sources."to-arraybuffer-1.0.1"
+ sources."to-fast-properties-1.0.3"
+ sources."to-object-path-0.3.0"
+ (sources."to-regex-3.0.2" // {
+ dependencies = [
+ sources."extend-shallow-3.0.2"
+ sources."is-extendable-1.0.1"
+ ];
+ })
+ sources."to-regex-range-2.1.1"
+ sources."toidentifier-1.0.0"
+ sources."token-stream-0.0.1"
+ sources."tough-cookie-2.5.0"
+ sources."tr46-1.0.1"
+ sources."trim-right-1.0.1"
+ sources."tryer-1.0.1"
+ (sources."ts-jest-24.3.0" // {
+ dependencies = [
+ sources."camelcase-4.1.0"
+ sources."json5-2.1.1"
+ sources."minimist-1.2.5"
+ sources."yargs-parser-10.1.0"
+ ];
+ })
+ sources."tslib-1.11.1"
+ sources."tsscmp-1.0.6"
+ sources."tty-browserify-0.0.0"
+ sources."tunnel-agent-0.6.0"
+ sources."tweetnacl-0.14.5"
+ sources."type-1.2.0"
+ sources."type-check-0.3.2"
+ sources."type-is-1.6.18"
+ sources."typedarray-0.0.6"
+ sources."typedarray-to-buffer-3.1.5"
+ sources."typescript-3.8.3"
+ sources."typical-4.0.0"
+ (sources."uglify-js-2.8.29" // {
+ dependencies = [
+ sources."source-map-0.5.7"
+ ];
+ })
+ sources."uglify-to-browserify-1.0.2"
+ sources."underscore-1.9.2"
+ sources."union-value-1.0.1"
+ sources."unique-filename-1.1.1"
+ sources."unique-slug-2.0.2"
+ sources."unpipe-1.0.0"
+ (sources."unset-value-1.0.0" // {
+ dependencies = [
+ (sources."has-value-0.3.1" // {
+ dependencies = [
+ sources."isobject-2.1.0"
+ ];
+ })
+ sources."has-values-0.1.4"
+ ];
+ })
+ sources."upath-1.2.0"
+ sources."uri-js-4.2.2"
+ sources."urijs-1.19.2"
+ sources."urix-0.1.0"
+ (sources."url-0.11.0" // {
+ dependencies = [
+ sources."punycode-1.3.2"
+ ];
+ })
+ sources."url-parse-1.4.7"
+ sources."url-parse-lax-3.0.0"
+ sources."url-to-options-1.0.1"
+ sources."use-3.1.1"
+ (sources."util-0.11.1" // {
+ dependencies = [
+ sources."inherits-2.0.3"
+ ];
+ })
+ sources."util-deprecate-1.0.2"
+ sources."util.promisify-1.0.1"
+ sources."utils-merge-1.0.1"
+ sources."uuid-3.4.0"
+ sources."v8-compile-cache-2.0.3"
+ sources."validate-npm-package-license-3.0.4"
+ sources."vary-1.1.2"
+ sources."verror-1.10.0"
+ sources."vm-browserify-1.1.2"
+ sources."void-elements-2.0.1"
+ sources."w3c-hr-time-1.0.2"
+ sources."walker-1.0.7"
+ sources."watchpack-1.6.0"
+ sources."wbuf-1.7.3"
+ sources."wcwidth-1.0.1"
+ sources."webidl-conversions-4.0.2"
+ (sources."webpack-4.42.0" // {
+ dependencies = [
+ sources."acorn-6.4.1"
+ sources."memory-fs-0.4.1"
+ ];
+ })
+ (sources."webpack-bundle-analyzer-3.6.1" // {
+ dependencies = [
+ sources."acorn-7.1.1"
+ sources."acorn-walk-7.1.1"
+ ];
+ })
+ (sources."webpack-cli-3.3.11" // {
+ dependencies = [
+ sources."cliui-5.0.0"
+ sources."emojis-list-2.1.0"
+ sources."enhanced-resolve-4.1.0"
+ sources."loader-utils-1.2.3"
+ sources."memory-fs-0.4.1"
+ sources."supports-color-6.1.0"
+ sources."yargs-13.2.4"
+ ];
+ })
+ (sources."webpack-dev-middleware-3.7.2" // {
+ dependencies = [
+ sources."memory-fs-0.4.1"
+ sources."mime-2.4.4"
+ sources."webpack-log-2.0.0"
+ ];
+ })
+ (sources."webpack-dev-server-3.10.3" // {
+ dependencies = [
+ sources."ansi-regex-2.1.1"
+ sources."camelcase-5.3.1"
+ (sources."cliui-4.1.0" // {
+ dependencies = [
+ sources."ansi-regex-3.0.0"
+ sources."strip-ansi-4.0.0"
+ ];
+ })
+ sources."debug-4.1.1"
+ sources."get-caller-file-1.0.3"
+ sources."is-fullwidth-code-point-1.0.0"
+ sources."ms-2.1.2"
+ sources."require-main-filename-1.0.1"
+ sources."semver-6.3.0"
+ (sources."string-width-2.1.1" // {
+ dependencies = [
+ sources."ansi-regex-3.0.0"
+ sources."is-fullwidth-code-point-2.0.0"
+ sources."strip-ansi-4.0.0"
+ ];
+ })
+ sources."strip-ansi-3.0.1"
+ sources."supports-color-6.1.0"
+ sources."webpack-log-2.0.0"
+ (sources."wrap-ansi-2.1.0" // {
+ dependencies = [
+ sources."string-width-1.0.2"
+ ];
+ })
+ sources."yargs-12.0.5"
+ sources."yargs-parser-11.1.1"
+ ];
+ })
+ sources."webpack-log-1.2.0"
+ sources."webpack-sources-1.4.3"
+ (sources."websocket-1.0.31" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ ];
+ })
+ sources."websocket-driver-0.7.3"
+ sources."websocket-extensions-0.1.3"
+ sources."whatwg-encoding-1.0.5"
+ sources."whatwg-mimetype-2.3.0"
+ sources."whatwg-url-6.5.0"
+ sources."which-1.3.1"
+ sources."which-module-2.0.0"
+ sources."window-size-0.1.0"
+ sources."with-5.1.1"
+ sources."word-wrap-1.2.3"
+ sources."wordwrap-0.0.2"
+ sources."worker-farm-1.7.0"
+ sources."wrap-ansi-5.1.0"
+ sources."wrappy-1.0.2"
+ sources."write-file-atomic-2.4.1"
+ sources."ws-6.2.1"
+ sources."xml-name-validator-3.0.0"
+ sources."xtend-4.0.2"
+ sources."y18n-4.0.0"
+ sources."yaeti-0.0.6"
+ sources."yallist-3.1.1"
+ sources."yargs-3.10.0"
+ (sources."yargs-parser-13.1.2" // {
+ dependencies = [
+ sources."camelcase-5.3.1"
+ ];
+ })
+ sources."ylru-1.2.1"
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ license = "MIT";
+ };
+ production = false;
+ bypassCache = true;
+ reconstructLock = true;
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/package.json b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/package.json
new file mode 100644
index 000000000000..7d419edb74a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spacegun/package.json
@@ -0,0 +1,3 @@
+[
+ { "spacegun": "git+https://github.com/dvallin/spacegun.git#v0.3.3" }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
new file mode 100644
index 000000000000..53856ce9e2fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchzip, makeWrapper, jre, pythonPackages, coreutils, hadoop
+, RSupport? true, R
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+ pname = "spark";
+ version = "2.4.4";
+
+ src = fetchzip {
+ url = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz";
+ sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g";
+ };
+
+ buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
+ ++ optional RSupport R;
+
+ untarDir = "${pname}-${version}-bin-without-hadoop";
+ installPhase = ''
+ mkdir -p $out/{lib/${untarDir}/conf,bin,/share/java}
+ mv * $out/lib/${untarDir}
+
+ sed -e 's/INFO, console/WARN, console/' < \
+ $out/lib/${untarDir}/conf/log4j.properties.template > \
+ $out/lib/${untarDir}/conf/log4j.properties
+
+ cat > $out/lib/${untarDir}/conf/spark-env.sh <<- EOF
+ export JAVA_HOME="${jre}"
+ export SPARK_HOME="$out/lib/${untarDir}"
+ export SPARK_DIST_CLASSPATH=$(${hadoop}/bin/hadoop classpath)
+ export PYSPARK_PYTHON="${pythonPackages.python}/bin/${pythonPackages.python.executable}"
+ export PYTHONPATH="\$PYTHONPATH:$PYTHONPATH"
+ ${optionalString RSupport
+ ''export SPARKR_R_SHELL="${R}/bin/R"
+ export PATH=$PATH:"${R}/bin/R"''}
+ EOF
+
+ for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do
+ makeWrapper "$n" "$out/bin/$(basename $n)"
+ substituteInPlace "$n" --replace dirname ${coreutils.out}/bin/dirname
+ done
+ ln -s $out/lib/${untarDir}/lib/spark-assembly-*.jar $out/share/java
+ '';
+
+ meta = {
+ description = "Apache Spark is a fast and general engine for large-scale data processing";
+ homepage = "http://spark.apache.org";
+ license = stdenv.lib.licenses.asl20;
+ platforms = stdenv.lib.platforms.all;
+ maintainers = with maintainers; [ thoughtpolice offline kamilchm ];
+ repositories.git = "git://git.apache.org/spark.git";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
new file mode 100644
index 000000000000..c6f9217b35b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchFromGitHub, buildGoPackage, bash, makeWrapper }:
+
+buildGoPackage rec {
+ pname = "amazon-ssm-agent";
+ version = "2.3.1319.0";
+
+ goPackagePath = "github.com/aws/${pname}";
+ subPackages = [
+ "agent"
+ "agent/framework/processor/executer/outofproc/worker"
+ "agent/framework/processor/executer/outofproc/worker"
+ "agent/framework/processor/executer/outofproc/sessionworker"
+ "agent/session/logging"
+ "agent/cli-main"
+ ];
+
+ buildInputs = [ makeWrapper ];
+
+ src = fetchFromGitHub {
+ rev = version;
+ owner = "aws";
+ repo = pname;
+ sha256 = "1yiyhj7ckqa32b1rnbwn7zx89rsj00m5imn1xlpsw002ywxsxbnv";
+ };
+
+ preBuild = ''
+ mv go/src/${goPackagePath}/vendor strange-vendor
+ mv strange-vendor/src go/src/${goPackagePath}/vendor
+
+ cd go/src/${goPackagePath}
+ echo ${version} > VERSION
+
+ substituteInPlace agent/plugins/inventory/gatherers/application/dataProvider.go \
+ --replace '"github.com/aws/amazon-ssm-agent/agent/plugins/configurepackage/localpackages"' ""
+
+ go run agent/version/versiongenerator/version-gen.go
+ substituteInPlace agent/appconfig/constants_unix.go \
+ --replace /usr/bin/ssm-document-worker $bin/bin/ssm-document-worker \
+ --replace /usr/bin/ssm-session-worker $bin/bin/ssm-session-worker \
+ --replace /usr/bin/ssm-session-logger $bin/bin/ssm-session-logger
+ cd -
+ '';
+
+ postBuild = ''
+ mv go/bin/agent go/bin/amazon-ssm-agent
+ mv go/bin/worker go/bin/ssm-document-worker
+ mv go/bin/sessionworker go/bin/ssm-session-worker
+ mv go/bin/logging go/bin/ssm-session-logger
+ mv go/bin/cli-main go/bin/ssm-cli
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bash}/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Agent to enable remote management of your Amazon EC2 instance configuration";
+ homepage = "https://github.com/aws/amazon-ssm-agent";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ copumpkin manveru ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
new file mode 100644
index 000000000000..15a3b0ac24c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, awscli, unzip }:
+let
+ ver = "1.2.7.0";
+ source = if stdenv.isDarwin then {
+ url =
+ "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/mac/sessionmanager-bundle.zip";
+ sha256 = "sha256-HP+opNjS53zR9eUxpNUHGD9rZN1z7lDc6+nONR8fa/s=";
+ } else {
+ url =
+ "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/ubuntu_64bit/session-manager-plugin.deb";
+ sha256 = "sha256-EZ9ncj1YYlod1RLfXOpZFijnKjLYWYVBb+C6yd42l34=";
+ };
+ platformBuildInput = if stdenv.isDarwin then [ unzip ] else [ dpkg ];
+ unpackCmd = if stdenv.isDarwin then "unzip $src" else "dpkg-deb -x $src .";
+ archivePath = if stdenv.isDarwin then "sessionmanager-bundle" else "usr/local/sessionmanagerplugin";
+in
+stdenv.mkDerivation rec {
+ pname = "ssm-session-manager-plugin";
+ version = ver;
+
+ src = fetchurl source;
+
+ nativeBuildInputs = [ autoPatchelfHook ] ++ platformBuildInput;
+
+ buildInputs = [ awscli ];
+
+ unpackPhase = unpackCmd;
+
+ installPhase = "install -m755 -D ${archivePath}/bin/session-manager-plugin $out/bin/session-manager-plugin";
+
+ meta = with lib; {
+ homepage =
+ "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
+ description = "Amazon SSM Session Manager Plugin";
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ license = licenses.unfree;
+ maintainers = with maintainers; [ mbaillie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
new file mode 100644
index 000000000000..bb4327064527
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
@@ -0,0 +1,42 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "starboard";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "aquasecurity";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1xj0fa52973h7cg3scxn85lav98q6fz82dwd5cls3p39ghnhzn5l";
+ };
+
+ vendorSha256 = "07cz4p8k927ash5ncw1r56bcn592imgywbyzkvhnn50pap91m0q0";
+
+ subPackages = [ "cmd/starboard" ];
+
+ doCheck = false;
+
+ buildFlagsArray = [
+ "-ldflags="
+ "-s"
+ "-w"
+ "-X main.version=v${version}"
+ ];
+
+ meta = with lib; {
+ description = "Kubernetes-native security tool kit";
+ longDescription = ''
+ Starboard integrates security tools into the Kubernetes environment, so
+ that users can find and view the risks that relate to different resources
+ in a Kubernetes-native way. Starboard provides custom security resources
+ definitions and a Go module to work with a range of existing security
+ tools, as well as a kubectl-compatible command-line tool and an Octant
+ plug-in that make security reports available through familiar Kubernetes
+ tools.
+ '';
+ homepage = src.meta.homepage;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ jk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
new file mode 100644
index 000000000000..0f8ed05d8e6a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, buildPackages, buildGoPackage, fetchFromGitHub, installShellFiles }:
+
+let isCrossBuild = stdenv.hostPlatform != stdenv.buildPlatform; in
+
+buildGoPackage rec {
+ pname = "stern";
+ version = "1.11.0";
+
+ goPackagePath = "github.com/wercker/stern";
+
+ src = fetchFromGitHub {
+ owner = "wercker";
+ repo = "stern";
+ rev = version;
+ sha256 = "0xndlq0ks8flzx6rdd4lnkxpkbvdy9sj1jwys5yj7p989ls8by3n";
+ };
+
+ deleteVendor = true;
+ goDeps = ./deps.nix;
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall =
+ let stern = if isCrossBuild then buildPackages.stern else "$out"; in
+ ''
+ for shell in bash zsh; do
+ ${stern}/bin/stern --completion $shell > stern.$shell
+ installShellCompletion stern.$shell
+ done
+ '';
+
+ meta = with lib; {
+ description = "Multi pod and container log tailing for Kubernetes";
+ homepage = "https://github.com/wercker/stern";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ mbode ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix
new file mode 100644
index 000000000000..fff5cf8c0de4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix
@@ -0,0 +1,336 @@
+# 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 = "dfffe386c33fb24c34ee501e5723df5b97b98514";
+ sha256 = "1g681yxz4mmzapzpzxfaz1nhcr1w526793yapfsnxlbs2skap3fy";
+ };
+ }
+ {
+ goPackagePath = "github.com/Azure/go-autorest";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Azure/go-autorest";
+ rev = "1ff28809256a84bb6966640ff3d0371af82ccba4";
+ sha256 = "0sxvj2j1833bqwxvhq3wq3jgq73rnb81pnzvl0x3y1m0hzpaf2zv";
+ };
+ }
+ {
+ goPackagePath = "github.com/dgrijalva/jwt-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/dgrijalva/jwt-go";
+ rev = "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e";
+ sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
+ };
+ }
+ {
+ goPackagePath = "github.com/fatih/color";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fatih/color";
+ rev = "2d684516a8861da43017284349b7e303e809ac21";
+ sha256 = "1fcfmz4wji3gqmmsdx493r7d101s58hwjalqps6hy25nva5pvmfs";
+ };
+ }
+ {
+ goPackagePath = "github.com/ghodss/yaml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ghodss/yaml";
+ rev = "73d445a93680fa1a78ae23a5839bad48f32ba1ee";
+ sha256 = "0pg53ky4sy3sp9j4n7vgf1p3gw4nbckwqfldcmmi9rf13kjh0mr7";
+ };
+ }
+ {
+ goPackagePath = "github.com/gogo/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gogo/protobuf";
+ rev = "c0656edd0d9eab7c66d1eb0c568f9039345796f7";
+ sha256 = "0b943dhx571lhgcs3rqzy0092mi2x5mwy2kl7g8rryhy3r5rzrz9";
+ };
+ }
+ {
+ 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 = "4030bb1f1f0c35b30ca7009e9ebd06849dd45306";
+ sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6";
+ };
+ }
+ {
+ 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 = "0c5108395e2debce0d731cf0287ddf7242066aba";
+ sha256 = "0jf3cp5clli88gpjf24r6wxbkvngnc1kf59d4cgjczsn2wasvsfc";
+ };
+ }
+ {
+ goPackagePath = "github.com/gregjones/httpcache";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gregjones/httpcache";
+ rev = "787624de3eb7bd915c329cba748687a3b22666a6";
+ sha256 = "1zqlg9pkj7r6fqw7wv3ywvbz3bh0hvzifs2scgcraj812q5189w5";
+ };
+ }
+ {
+ goPackagePath = "github.com/imdario/mergo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/imdario/mergo";
+ rev = "6633656539c1639d9d78127b7d47c622b5d7b6dc";
+ sha256 = "1fffbq1l17i0gynmvcxypl7d9h4v81g5vlimiph5bfgf4sp4db7g";
+ };
+ }
+ {
+ goPackagePath = "github.com/inconshreveable/mousetrap";
+ fetch = {
+ type = "git";
+ url = "https://github.com/inconshreveable/mousetrap";
+ rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
+ sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
+ };
+ }
+ {
+ goPackagePath = "github.com/json-iterator/go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/json-iterator/go";
+ rev = "f2b4162afba35581b6d4a50d3b8f34e33c144682";
+ sha256 = "0siqfghsm2lkdwinvg8x5gls3p76rq3cdm59c1r4x0b2mdfhnvcd";
+ };
+ }
+ {
+ 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 = "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
+ sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/go-homedir";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/go-homedir";
+ rev = "b8bc1bf767474819792c23f32d8286a45736f1c6";
+ sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
+ };
+ }
+ {
+ 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/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "816c9085562cd7ee03e7f8188a1cfd942858cded";
+ sha256 = "1ws5crb7c70wdicavl6qr4g03nn6m92zd6wwp9n2ygz5c8rmxh8k";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cobra";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cobra";
+ rev = "a114f312e075f65bf30d6d9a1430113f857e543b";
+ sha256 = "10lmi5ni06yijxg02fcic5b7ycjkia12yma4a4lz8a56j30wykx1";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "3ebe029320b2676d667ae88da602a5f854788a8a";
+ sha256 = "11yxs0wqy70wj106fkz8r923yg4ncnc2mbw33v48zmlg4a1rasgp";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "49796115aa4b964c318aad4f3084fdb41e9aa067";
+ sha256 = "0pcq2drkzsw585xi6rda8imd7a139prrmvgmv8nz0zgzk6g4dy59";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "1c05540f6879653db88113bc4a2b70aec4bd491f";
+ sha256 = "0h8yqb0vcqgllgydrf9d3rzp83w8wlr8f0nm6r1rwf2qg30pq1pd";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/oauth2";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/oauth2";
+ rev = "a6bd8cefa1811bd24b86f8902872e4e8225f74c4";
+ sha256 = "151in8qcf5y97ziavl6b03vgw4r87zqx5kg4vjhjszjbh60cfswp";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "8e24a49d80f82323e1c4db1b5da3e0f31171a151";
+ sha256 = "0zsdnyb8dy98jw6f9yn6g5gdhaqwk39hqridr0mh4dhwvwvlj724";
+ };
+ }
+ {
+ 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 = "f51c12702a4d776e4c1fa9b0fabab841babae631";
+ sha256 = "07wc6g2fvafkr6djsscm0jpbpl4135khhb6kpyx1953hi5d1jvyy";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/appengine";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/appengine";
+ rev = "ae0ab99deb4dc413a2b4bd6c8bdd0eb67f1e4d06";
+ sha256 = "1iabxnqgxvvn1239i6fvfl375vlbvhfrc03m1x2rvalmx4d6w9c7";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/inf.v0";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-inf/inf";
+ rev = "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4";
+ sha256 = "0rf3vwyb8aqnac9x9d6ax7z5526c45a16yjm2pvkijr6qgqz8b82";
+ };
+ }
+ {
+ 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 = "8be2a0b24ed0dac9cfc1ac2d987ea16cfcdbecb6";
+ sha256 = "1dpmd59jlkxgrp5aaf8420344c6nq4kjlc1avgcp7690yrzc50v6";
+ };
+ }
+ {
+ goPackagePath = "k8s.io/apimachinery";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kubernetes/apimachinery";
+ rev = "594fc14b6f143d963ea2c8132e09e73fe244b6c9";
+ sha256 = "0xykhpmjgagyb0ac4y0ps4v1s9bd2b1sc0simh48c41a9fk3yvr7";
+ };
+ }
+ {
+ goPackagePath = "k8s.io/client-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kubernetes/client-go";
+ rev = "739dd8f9d4801eb23e2bc43423c0b4acaaded29a";
+ sha256 = "15psjmb14rz4kwysim9vfbbylx0khkw29b195rziv1vk202lh28k";
+ };
+ }
+] \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix
new file mode 100644
index 000000000000..a5a2ace2399b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+ version = "3.7.7";
+ pname = "taktuk";
+
+ buildInputs = [ perl ];
+
+ src = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/33412/${pname}-${version}.tar.gz";
+ sha256 = "0w0h3ynlcxvq2nzm8hkj20g0805ww3vkw53g0qwj7wvp7p3gcvnr";
+ };
+
+ preBuild = ''
+ substituteInPlace ./taktuk --replace "/usr/bin/perl" "${perl}/bin/perl"
+ '';
+
+ meta = {
+ description = "Efficient, large scale, parallel remote execution of commands";
+ longDescription = ''
+ TakTuk allows one to execute commands in parallel on a potentially large set
+ of remote nodes (using ssh to connect to each node). It is typically used
+ inside high performance computing clusters and grids. It uses an adaptive
+ algorithm to efficiently distribute the work and sets up an interconnection
+ network to transport commands and perform I/Os multiplexing. It doesn't
+ require any specific software on the nodes thanks to a self-propagation
+ algorithm.'';
+ homepage = "http://taktuk.gforge.inria.fr/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.bzizou ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
new file mode 100644
index 000000000000..293cdb673711
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
@@ -0,0 +1,34 @@
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
+
+buildGoModule rec {
+ pname = "tanka";
+ version = "0.12.0";
+
+ src = fetchFromGitHub {
+ owner = "grafana";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1f67b236njz1qdxjyf2568vkigjmpylqlra29jlgm6vhd5qky7ia";
+ };
+
+ vendorSha256 = "1pr265g11lcviqw974lf05q52qrfpwnpn9a64q6088g0nfp4ly06";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ echo "complete -C $out/bin/tk tk" > tk.bash
+ installShellCompletion tk.bash
+ '';
+
+ meta = with lib; {
+ description = "Flexible, reusable and concise configuration for Kubernetes";
+ homepage = "https://github.com/grafana/tanka/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ mikefaille ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
new file mode 100644
index 000000000000..aeaff2ff5f15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
@@ -0,0 +1,47 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "tektoncd-cli";
+ version = "0.14.0";
+
+ src = fetchFromGitHub {
+ owner = "tektoncd";
+ repo = "cli";
+ rev = "v${version}";
+ sha256 = "1mkbwh4cmhx9in928vlvs7xjjklpsxbv5niv8jmsbnifflg1an8p";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildPhase = ''
+ make bin/tkn
+ '';
+
+ installPhase = ''
+ install bin/tkn -Dt $out/bin
+
+ mkdir -p "$out/share/man/man1"
+ cp docs/man/man1/* "$out/share/man/man1"
+
+ installShellCompletion --cmd tkn \
+ --bash <($out/bin/tkn completion bash) \
+ --fish <($out/bin/tkn completion fish) \
+ --zsh <($out/bin/tkn completion zsh)
+ '';
+
+ meta = with lib; {
+ description = "The Tekton Pipelines cli project provides a CLI for interacting with Tekton";
+ homepage = "https://tekton.dev";
+ longDescription = ''
+ The Tekton Pipelines cli project provides a CLI for interacting with Tekton!
+ For your convenience, it is recommended that you install the Tekton CLI, tkn, together with the core component of Tekton, Tekton Pipelines.
+ '';
+ license = licenses.asl20;
+ maintainers = with maintainers; [ jk mstrangfeld ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix
new file mode 100644
index 000000000000..6205b3bf5fe5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, GitPython
+, buildPythonApplication
+, emoji
+, fetchFromGitHub
+, filetype
+, ipython
+, junit-xml
+, lxml
+, mock
+, netaddr
+, pytestCheckHook
+, python3Packages
+, radish-bdd
+, semver
+}:
+
+buildPythonApplication rec {
+ pname = "terraform-compliance";
+ version = "1.2.11";
+
+ # No tests in Pypi package
+ src = fetchFromGitHub {
+ owner = "eerkunt";
+ repo = pname;
+ rev = version;
+ sha256 = "161mszmxqp3wypnda48ama2mmq8yjilkxahwc1mxjwzy1n19sn7v";
+ };
+
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace "IPython==7.16.1" "IPython"
+ '';
+
+ checkInputs = [ pytestCheckHook ];
+
+ disabledTests = [
+ "test_which_success"
+ "test_readable_plan_file_is_not_json"
+ ];
+
+ propagatedBuildInputs = [
+ GitPython
+ emoji
+ filetype
+ ipython
+ junit-xml
+ lxml
+ mock
+ netaddr
+ radish-bdd
+ semver
+ ];
+
+ meta = with lib; {
+ description = "BDD test framework for terraform";
+ homepage = https://github.com/eerkunt/terraform-compliance;
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
new file mode 100644
index 000000000000..a5b6e7d2f5e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+buildGoPackage rec {
+ pname = "terraform-docs";
+ version = "0.9.1";
+
+ goPackagePath = "github.com/segmentio/${pname}";
+
+ src = fetchFromGitHub {
+ owner = "segmentio";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "00sfzdqhf8g85m03r6mbzfas5vvc67iq7syb8ljcgxg8l1knxnjx";
+ };
+
+ preBuild = ''
+ buildFlagsArray+=("-ldflags" "-X main.version=${version}")
+ '';
+
+ meta = with lib; {
+ description = "A utility to generate documentation from Terraform modules in various output formats";
+ homepage = "https://github.com/segmentio/terraform-docs/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
new file mode 100644
index 000000000000..72e717d91662
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub}:
+
+buildGoPackage rec {
+ pname = "terraform-inventory";
+ version = "0.7-pre";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/adammck/terraform-inventory";
+
+ subPackages = [ "./" ];
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "adammck";
+ repo = "terraform-inventory";
+ sha256 = "0wwyi2nfyn3wfpmvj8aabn0cjba0lpr5nw3rgd6qdywy7sc3rmb1";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/adammck/terraform-inventory";
+ description = "Terraform state to ansible inventory adapter";
+ license = licenses.mit;
+ maintainers = with maintainers; [ htr ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix
new file mode 100644
index 000000000000..9f7b5e317fe3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "github.com/adammck/venv";
+ fetch = {
+ type = "git";
+ url = "https://github.com/adammck/venv";
+ rev = "8a9c907a37d36a8f34fa1c5b81aaf80c2554a306";
+ sha256 = "1fzk3j4q59kpd2ks2aw8rmic6b123p5mh981cjh0kzs716grc6y8";
+ };
+ }
+ {
+ goPackagePath = "github.com/blang/vfs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/blang/vfs";
+ rev = "c14afcac17253ce7418da751ec6b1988790cdc8f";
+ sha256 = "00q5qzxpn9n59nrmrljz4w9lljxvrr8i5j8i8b4iw86j0alcx53b";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile
new file mode 100644
index 000000000000..c4f9a5511de9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'terraform_landscape'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock
new file mode 100644
index 000000000000..7307d8a33f3c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock
@@ -0,0 +1,25 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ colorize (0.8.1)
+ commander (4.4.6)
+ highline (~> 1.7.2)
+ diffy (3.2.1)
+ highline (1.7.10)
+ polyglot (0.3.5)
+ terraform_landscape (0.2.1)
+ colorize (~> 0.7)
+ commander (~> 4.4)
+ diffy (~> 3.0)
+ treetop (~> 1.6)
+ treetop (1.6.10)
+ polyglot (~> 0.3)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ terraform_landscape
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix
new file mode 100644
index 000000000000..903aa9abb6e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix
@@ -0,0 +1,18 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "terraform_landscape";
+
+ gemdir = ./.;
+ exes = [ "landscape" ];
+
+ passthru.updateScript = bundlerUpdateScript "terraform-landscape";
+
+ meta = with lib; {
+ description = "Improve Terraform's plan output to be easier to read and understand";
+ homepage = "https://github.com/coinbase/terraform-landscape";
+ license = with licenses; asl20;
+ maintainers = with maintainers; [ mbode manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix
new file mode 100644
index 000000000000..aa3f5142aa5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix
@@ -0,0 +1,61 @@
+{
+ colorize = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b";
+ type = "gem";
+ };
+ version = "0.8.1";
+ };
+ commander = {
+ dependencies = ["highline"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11sd2sb0id2dbxkv4pvymdiia1xxhms45kh4nr8mryqybad0fwwf";
+ type = "gem";
+ };
+ version = "4.4.6";
+ };
+ diffy = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "119imrkn01agwhx5raxhknsi331y5i4yda7r0ws0an6905ximzjg";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ highline = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
+ type = "gem";
+ };
+ version = "1.7.10";
+ };
+ polyglot = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+ type = "gem";
+ };
+ version = "0.3.5";
+ };
+ terraform_landscape = {
+ dependencies = ["colorize" "commander" "diffy" "treetop"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i93pih7r6zcqpjhsmvkpfkgbh0l66c60i6fkiymq7vy2xd6wnns";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ treetop = {
+ dependencies = ["polyglot"];
+ 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/applications/networking/cluster/terraform-providers/ansible/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/default.nix
new file mode 100644
index 000000000000..bb634a78e23c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+buildGoPackage rec {
+ pname = "terraform-provider-ansible";
+ version = "1.0.3";
+
+ goPackagePath = "github.com/nbering/terraform-provider-ansible";
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "nbering";
+ repo = "terraform-provider-ansible";
+ rev = "v${version}";
+ sha256 = "0dqi9ym0xvnz3h73cmd1vf6k2qwfhxvj1mcakkpmsd4cpxq4l6pr";
+ };
+
+ # Terraform allow checking the provider versions, but this breaks
+ # if the versions are not provided via file paths.
+ postBuild = "mv go/bin/terraform-provider-ansible{,_v${version}}";
+
+ meta = with stdenv.lib; {
+ description = "A Terraform provider serving as an interop layer for an Ansible dynamic inventory script.";
+ homepage = "https://github.com/nbering/terraform-provider-ansible";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ uskudnik ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix
new file mode 100644
index 000000000000..dc49f24afa59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "github.com/hashicorp/terraform";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/terraform";
+ rev = "v0.12.5";
+ sha256 = "0p064rhaanwx4szs8hv6mdqad8d2bgfd94h2la11j58xbsxc7hap";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/cloudfoundry/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/cloudfoundry/default.nix
new file mode 100644
index 000000000000..7e807d2ed5ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/cloudfoundry/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "terraform-provider-cloudfoundry";
+ version = "0.12.6";
+
+ src = fetchFromGitHub {
+ owner = "cloudfoundry-community";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0n5ybpzk6zkrnd9vpmbjlkm8fdp7nbfr046wih0jk72pmiyrcygi";
+ };
+
+ vendorSha256 = "01lfsd9aw9w3kr1a2a5b7ac6d8jaij83lhxl4y4qsnjlqk86fbxq";
+
+ # needs a running cloudfoundry
+ doCheck = false;
+
+ postInstall = "mv $out/bin/terraform-provider-cloudfoundry{,_v${version}}";
+
+ passthru = { provider-source-address = "registry.terraform.io/cloudfoundry-community/cloudfoundry"; };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/cloudfoundry-community/terraform-provider-cloudfoundry";
+ description = "Terraform provider for cloudfoundry";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ ris ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
new file mode 100644
index 000000000000..b7b6c8ad73b3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, buildGoModule
+, buildGoPackage
+, fetchFromGitHub
+, callPackage
+, runtimeShell
+}:
+let
+ list = lib.importJSON ./providers.json;
+
+ buildWithGoModule = data:
+ buildGoModule {
+ pname = data.repo;
+ version = data.version;
+ subPackages = [ "." ];
+ src = fetchFromGitHub {
+ inherit (data) owner repo rev sha256;
+ };
+ vendorSha256 = data.vendorSha256 or null;
+
+ # Terraform allow checking the provider versions, but this breaks
+ # if the versions are not provided via file paths.
+ postBuild = "mv $NIX_BUILD_TOP/go/bin/${data.repo}{,_v${data.version}}";
+ passthru = data;
+ };
+
+ buildWithGoPackage = data:
+ buildGoPackage {
+ pname = data.repo;
+ version = data.version;
+ goPackagePath = "github.com/${data.owner}/${data.repo}";
+ subPackages = [ "." ];
+ src = fetchFromGitHub {
+ inherit (data) owner repo rev sha256;
+ };
+ # Terraform allow checking the provider versions, but this breaks
+ # if the versions are not provided via file paths.
+ postBuild = "mv $NIX_BUILD_TOP/go/bin/${data.repo}{,_v${data.version}}";
+ passthru = data;
+ };
+
+ # These providers are managed with the ./update-all script
+ automated-providers = lib.mapAttrs (_: attrs:
+ (if (lib.hasAttr "vendorSha256" attrs) then buildWithGoModule else buildWithGoPackage)
+ attrs) list;
+
+ # These are the providers that don't fall in line with the default model
+ special-providers = {
+ acme = automated-providers.acme.overrideAttrs (attrs: {
+ prePatch = attrs.prePatch or "" + ''
+ substituteInPlace go.mod --replace terraform-providers/terraform-provider-acme getstackhead/terraform-provider-acme
+ substituteInPlace main.go --replace terraform-providers/terraform-provider-acme getstackhead/terraform-provider-acme
+ '';
+ });
+
+ # Packages that don't fit the default model
+ ansible = callPackage ./ansible {};
+ cloudfoundry = callPackage ./cloudfoundry {};
+ elasticsearch = callPackage ./elasticsearch {};
+ gandi = callPackage ./gandi {};
+ hcloud = callPackage ./hcloud {};
+ keycloak = callPackage ./keycloak {};
+ libvirt = callPackage ./libvirt {};
+ linuxbox = callPackage ./linuxbox {};
+ lxd = callPackage ./lxd {};
+ shell = callPackage ./shell {};
+ vpsadmin = callPackage ./vpsadmin {};
+ };
+in
+ automated-providers // special-providers
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
new file mode 100644
index 000000000000..6eaaa05106d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+buildGoModule rec {
+ pname = "terraform-provider-elasticsearch";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "phillbaker";
+ repo = "terraform-provider-elasticsearch";
+ rev = "v${version}";
+ sha256 = "0ci9gcn9ijdbx25wa99iy0b3sl7akqa7b6gi9wnnl1dawpqznj7v";
+ };
+
+ vendorSha256 = "1rdvyypdl3fk6af66gfjhyl271cnlx5xgrl1w68sc6sbvq00bqkd";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ # Terraform allow checking the provider versions, but this breaks
+ # if the versions are not provided via file paths.
+ postInstall = "mv $out/bin/terraform-provider-elasticsearch{,_v${version}}";
+
+ meta = with stdenv.lib; {
+ description = "Terraform provider for elasticsearch";
+ homepage = "https://github.com/phillbaker/terraform-provider-elasticsearch";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ basvandijk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix
new file mode 100644
index 000000000000..4571d368991f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+buildGoPackage rec {
+ pname = "terraform-provider-gandi";
+ version = "1.0.0";
+
+ goPackagePath = "github.com/tiramiseb/terraform-provider-gandi";
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "tiramiseb";
+ repo = "terraform-provider-gandi";
+ rev = "v${version}";
+ sha256 = "0byydpqsimvnk11bh9iz8zlxbsmsk65w55pvkp18vjzqrhf4kyfv";
+ };
+
+ # Terraform allow checking the provider versions, but this breaks
+ # if the versions are not provided via file paths.
+ postBuild = "mv go/bin/terraform-provider-gandi{,_v${version}}";
+
+ meta = with stdenv.lib; {
+ description = "Terraform provider for the Gandi LiveDNS service.";
+ homepage = "https://github.com/tiramiseb/terraform-provider-gandi";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ manveru ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix
new file mode 100644
index 000000000000..3d4a3547502d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix
@@ -0,0 +1,21 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/hashicorp/terraform";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/terraform";
+ rev = "27b720113ed5143a870ec151b3b7c9d955a09bc0";
+ sha256 = "1f0hwdf2z68p0ll3pgrx949h09q52gcfaxap0zz52m7px98sfab4";
+ };
+ }
+ {
+ goPackagePath = "github.com/tiramiseb/go-gandi-livedns";
+ fetch = {
+ type = "git";
+ url = "https://github.com/tiramiseb/go-gandi-livedns";
+ rev = "4773a84f8ee7365ed21edc6cd0602aaf93e94e59";
+ sha256 = "1i8s7yclrkhf974vs2splh5symzk0ym54px0bc216bq4ifzkwkqc";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix
new file mode 100644
index 000000000000..89a22c718efb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "terraform-provider-hcloud";
+ version = "1.22.0";
+
+ src = fetchFromGitHub {
+ owner = "hetznercloud";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1h4kplrmpsbwa0nq3zyqa0cnvhv1s5avdrjyf1k1f2z6b6h4gynf";
+ };
+
+ vendorSha256 = "070p34g0ca55rmfdwf1l53yr8vyhmm5sb8hm8q036n066yp03yfs";
+
+ # Spends an awful time in other test folders, apparently tries to reach
+ # opencensus and fails.
+ checkPhase = ''
+ pushd hcloud
+ go test -v
+ popd
+ '';
+
+ postInstall = "mv $out/bin/terraform-provider-hcloud{,_v${version}}";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/cloudfoundry-community/terraform-provider-cloudfoundry";
+ description = "Terraform provider for cloudfoundry";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ ris ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix
new file mode 100644
index 000000000000..7e9a9b830082
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, buildGoModule
+}:
+
+buildGoModule rec {
+ pname = "terraform-provider-keycloak";
+ version = "1.20.0";
+
+ src = fetchFromGitHub {
+ owner = "mrparkers";
+ repo = "terraform-provider-keycloak";
+ rev = version;
+ sha256 = "1h8780k8345pf0s14k1pmwdjbv2j08h4rq3jwds81mmv6qgj1r2n";
+ };
+
+ vendorSha256 = "12iary7p5qsbl4xdhfd1wh92mvf2fiylnb3m1d3m7cdcn32rfimq";
+
+ doCheck = false;
+
+ postInstall = "mv $out/bin/terraform-provider-keycloak{,_v${version}}";
+
+ meta = with stdenv.lib; {
+ description = "Terraform provider for keycloak";
+ homepage = "https://github.com/mrparkers/terraform-provider-keycloak";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ eonpatapon ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
new file mode 100644
index 000000000000..4662a315a8c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libvirt, pkgconfig, makeWrapper, cdrtools }:
+
+# USAGE:
+# install the following package globally or in nix-shell:
+#
+# (terraform.withPlugins (p: [p.libvirt]))
+#
+# configuration.nix:
+#
+# virtualisation.libvirtd.enable = true;
+#
+# terraform-provider-libvirt does not manage pools at the moment:
+#
+# $ virsh --connect "qemu:///system" pool-define-as default dir - - - - /var/lib/libvirt/images
+# $ virsh --connect "qemu:///system" pool-start default
+#
+# pick an example from (i.e ubuntu):
+# https://github.com/dmacvicar/terraform-provider-libvirt/tree/master/examples
+
+buildGoPackage rec {
+ pname = "terraform-provider-libvirt";
+ version = "0.6.3";
+
+ goPackagePath = "github.com/dmacvicar/terraform-provider-libvirt";
+
+ src = fetchFromGitHub {
+ owner = "dmacvicar";
+ repo = "terraform-provider-libvirt";
+ rev = "v${version}";
+ sha256 = "0ak2lpnv6h0i7lzfcggd90jpfhvsasdr6nflkflk2drlcpalggj9";
+ };
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+ buildInputs = [ libvirt ];
+
+ # mkisofs needed to create ISOs holding cloud-init data,
+ # and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
+ propagatedBuildInputs = [ cdrtools ];
+
+ # Terraform allow checking the provider versions, but this breaks
+ # if the versions are not provided via file paths.
+ postBuild = "mv go/bin/terraform-provider-libvirt{,_v${version}}";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/dmacvicar/terraform-provider-libvirt";
+ description = "Terraform provider for libvirt";
+ platforms = platforms.linux;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/linuxbox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/linuxbox/default.nix
new file mode 100644
index 000000000000..60cd7f2d7637
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/linuxbox/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "terraform-provider-linuxbox";
+ version = "0.3.11";
+
+ src = fetchFromGitHub {
+ owner = "numtide";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1sxb2iv4dl0rw3v1r7k5dfkyh14nmp19cprqafhb7ncarmvawq39";
+ };
+
+ vendorSha256 = "16hp0pv1qpvr34ac1syjci39csvyj3c748inllypjwx76q6rwp7k";
+
+ postInstall = "mv $out/bin/terraform-provider-linuxbox{,_v${version}}";
+
+ passthru.provider-source-address = "registry.terraform.io/numtide/linuxbox";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/numtide/terraform-provider-linuxbox";
+ description = "Basic building block for Seed DevOps";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
new file mode 100644
index 000000000000..a583bc335142
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "terraform-provider-lxd";
+ version = "1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "sl1pm4t";
+ repo = "terraform-provider-lxd";
+ rev = "v${version}";
+ sha256 = "00gj7zj45wm9sf7a7nybjijdrdr00g2yf8h41c6j679a6nfnx0fd";
+ };
+
+ vendorSha256 = "0xq8zgx8h47pc88nkdvy5skpr8vk87b4212mm5msfxk8n7nl4fi2";
+
+ doCheck = false;
+
+ postBuild = "mv ../go/bin/terraform-provider-lxd{,_v${version}}";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sl1pm4t/terraform-provider-lxd";
+ description = "Terraform provider for lxd";
+ platforms = platforms.linux;
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ gila ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
new file mode 100644
index 000000000000..bb2a7ab582b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -0,0 +1,1059 @@
+{
+ "aci": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-aci",
+ "rev": "v0.2.3",
+ "sha256": "0sk0pp178w03fhsb65b9mpim1l4wqfnv9r9x64kiapjnvfb1rz3j",
+ "version": "0.2.3"
+ },
+ "acme": {
+ "owner": "getstackhead",
+ "provider-source-address": "registry.terraform.io/getstackhead/acme",
+ "repo": "terraform-provider-acme",
+ "rev": "v1.5.0-patched",
+ "sha256": "1wdrjpd3l0xadsa3lqhsc9c57g8x2qkwb76q824sk8za1a7lapii",
+ "version": "1.5.0-patched"
+ },
+ "akamai": {
+ "owner": "terraform-providers",
+ "provider-source-address": "registry.terraform.io/akamai/akamai",
+ "repo": "terraform-provider-akamai",
+ "rev": "v0.7.1",
+ "sha256": "0mg81147yz0m24xqljpw6v0ayhvb4fwf6qwaj7ii34hy2gjwv405",
+ "version": "0.7.1"
+ },
+ "alicloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-alicloud",
+ "rev": "v1.86.0",
+ "sha256": "1hbv9ah7fd173sapwgsbg7790piwxw9zx90wfj5vz5b96ggbg28d",
+ "version": "1.86.0"
+ },
+ "archive": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/archive",
+ "repo": "terraform-provider-archive",
+ "rev": "v2.0.0",
+ "sha256": "1d5n379zyjp2srg43g78a8h33qwcpkfkj7c35idvbyydi35vzlpl",
+ "vendorSha256": null,
+ "version": "2.0.0"
+ },
+ "arukas": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-arukas",
+ "rev": "v1.1.0",
+ "sha256": "1akl9fzgm5qv01vz18xjzyqjnlxw699qq4x8vr96j16l1zf10h99",
+ "version": "1.1.0"
+ },
+ "auth0": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-auth0",
+ "rev": "v0.11.0",
+ "sha256": "1dkcgzvvwmw5z5q4146jk0gj5b1zrv51vvkhhjd8qh9ipinipn97",
+ "version": "0.11.0"
+ },
+ "avi": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-avi",
+ "rev": "v0.2.2",
+ "sha256": "0dgpjg6iw21vfcn4i0x6x1l329a09wrd2jwghrjigwlq68wd835d",
+ "version": "0.2.2"
+ },
+ "aviatrix": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-aviatrix",
+ "rev": "v2.14.1",
+ "sha256": "137z7fgy5gp9n9fdvllyjh3nkbalrs2giqljfldbllymhvrv7xgr",
+ "version": "2.14.1"
+ },
+ "aws": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/aws",
+ "repo": "terraform-provider-aws",
+ "rev": "v3.15.0",
+ "sha256": "0rxpdxg5p478sipbhq2x347gs5wrlwz4ggy9z007cbp34yhb2wka",
+ "vendorSha256": "0vapfnd4c8jb15pdjnnb97vgsvfakjvl1czccbfy0znhdk2ynz02",
+ "version": "3.15.0"
+ },
+ "azuread": {
+ "owner": "terraform-providers",
+ "provider-source-address": "registry.terraform.io/hashicorp/azuread",
+ "repo": "terraform-provider-azuread",
+ "rev": "v0.10.0",
+ "sha256": "0i9xrsqgh1024189hihm2nqrcy2pcyf1bwxnamwmwph5cas6hfb3",
+ "version": "0.10.0"
+ },
+ "azurerm": {
+ "owner": "terraform-providers",
+ "provider-source-address": "registry.terraform.io/hashicorp/azurerm",
+ "repo": "terraform-provider-azurerm",
+ "rev": "v2.13.0",
+ "sha256": "0aj19vy1flpb2233rxaypjcfimjr1wfqri1m3p15dy1r108q84r7",
+ "version": "2.13.0"
+ },
+ "azurestack": {
+ "owner": "terraform-providers",
+ "provider-source-address": "registry.terraform.io/hashicorp/azurestack",
+ "repo": "terraform-provider-azurestack",
+ "rev": "v0.9.0",
+ "sha256": "1msm7jwzry0vmas3l68h6p0migrsm6d18zpxcncv197m8xbvg324",
+ "version": "0.9.0"
+ },
+ "baiducloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-baiducloud",
+ "rev": "v1.2.0",
+ "sha256": "1s2vk4vjni5nc50pdw60pm0grrf835xy551i6d4cmfxkkpqx3f6f",
+ "version": "1.2.0"
+ },
+ "bigip": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-bigip",
+ "rev": "v1.2.0",
+ "sha256": "0z0l4j8sn8yf6kw5sbyhp6s0046f738lsm650skcspqa5f63mbd9",
+ "version": "1.2.0"
+ },
+ "bitbucket": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-bitbucket",
+ "rev": "v1.2.0",
+ "sha256": "11n4wpvmaab164g6k077n9dbdbhd5lwl7pxpha5492ks468nd95b",
+ "version": "1.2.0"
+ },
+ "brightbox": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-brightbox",
+ "rev": "v1.3.0",
+ "sha256": "127l1ic70fkcqr0h23qhbpl1j2mzp44p9593x8jl936xz4ll8l70",
+ "version": "1.3.0"
+ },
+ "checkpoint": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-checkpoint",
+ "rev": "v1.0.2",
+ "sha256": "0zypjcg1z8fkz31lfhysxx42lpw8ak4aqgdis6rxzqbnkk491fjp",
+ "version": "1.0.2"
+ },
+ "chef": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-chef",
+ "rev": "v0.2.0",
+ "sha256": "0ihn4706fflmf0585w22l7arzxsa9biq4cgh8nlhlp5y0zy934ns",
+ "version": "0.2.0"
+ },
+ "cherryservers": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-cherryservers",
+ "rev": "v1.0.0",
+ "sha256": "1z6ai6q8aw38kiy8x13rp0dsvb4jk40cv8pk5c069q15m4jab8lh",
+ "version": "1.0.0"
+ },
+ "ciscoasa": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-ciscoasa",
+ "rev": "v1.2.0",
+ "sha256": "033pgy42qwjpmjyzylpml7sfzd6dvvybs56cid1f6sm4ykmxbal7",
+ "version": "1.2.0"
+ },
+ "clc": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-clc",
+ "rev": "v0.1.0",
+ "sha256": "0gvsjnwk6xkgxai1gxsjf0hsjxbv8d8jg5hq8yd3hjhc6785fgnf",
+ "version": "0.1.0"
+ },
+ "cloudflare": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-cloudflare",
+ "rev": "v2.7.0",
+ "sha256": "1r18lxhfi2sd42ja4bzxbkf5bli8iljrpqbgdcn1a7rcf44vnxa2",
+ "version": "2.7.0"
+ },
+ "cloudinit": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/cloudinit",
+ "repo": "terraform-provider-cloudinit",
+ "rev": "v1.0.0",
+ "sha256": "0i926f4xkfydd2bxmim69xrvi9ymn1vrc66zl117axzsmy9200zx",
+ "version": "1.0.0"
+ },
+ "cloudscale": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-cloudscale",
+ "rev": "v2.1.2",
+ "sha256": "052pa17a77fkmhvygfgmpz87xlc08qvz1apzc2scg2449xfdv7zb",
+ "version": "2.1.2"
+ },
+ "cloudstack": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-cloudstack",
+ "rev": "v0.3.0",
+ "sha256": "0zmyww6z3j839ydlmv254hr8gcsixng4lcvmiwkhxb3hj1nw8hcw",
+ "version": "0.3.0"
+ },
+ "cobbler": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-cobbler",
+ "rev": "v1.1.0",
+ "sha256": "08ljqibfi6alpvv8f7pzvjl2k4w6br6g6ac755x4xw4ycrr24xw9",
+ "version": "1.1.0"
+ },
+ "cohesity": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-cohesity",
+ "rev": "v0.1.0",
+ "sha256": "1yifipjf51n8q9xyqcmc4zjpszmpyzb330f4zas81hahjml78hgx",
+ "version": "0.1.0"
+ },
+ "constellix": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-constellix",
+ "rev": "v0.1.0",
+ "sha256": "14y0v8ilbrjj0aymrw50fkz2mihnwyv83z8a9f8dh399s8l624w1",
+ "version": "0.1.0"
+ },
+ "consul": {
+ "owner": "terraform-providers",
+ "provider-source-address": "registry.terraform.io/hashicorp/consul",
+ "repo": "terraform-provider-consul",
+ "rev": "v2.8.0",
+ "sha256": "1brd0fp9ksc3x8cygxm0k2q1sh4v5x89298pnidg6xirn41lvcr4",
+ "version": "2.8.0"
+ },
+ "ct": {
+ "owner": "poseidon",
+ "repo": "terraform-provider-ct",
+ "rev": "v0.6.1",
+ "sha256": "0hh3hvi8lwb0h8x9viz5p991w94gn7354nw95b51rdmir9qi2x89",
+ "version": "0.6.1"
+ },
+ "datadog": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-datadog",
+ "rev": "v2.7.0",
+ "sha256": "0cq11cjcm2nlszqhsrj425mk8dp0h5ljrrn7jplrbffp8g6wvadd",
+ "version": "2.7.0"
+ },
+ "digitalocean": {
+ "owner": "digitalocean",
+ "provider-source-address": "registry.terraform.io/digitalocean/digitalocean",
+ "repo": "terraform-provider-digitalocean",
+ "rev": "v2.2.0",
+ "sha256": "14v9sh2qqdflzzp5mvkr7hd5c21hch8b8shxiwm0ar4qgdxq3wfy",
+ "vendorSha256": null,
+ "version": "2.2.0"
+ },
+ "dme": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-dme",
+ "rev": "v0.1.0",
+ "sha256": "1ipqw1sbx0i9rhxawsysrqxvf10z8ra2y86xwd4iz0f12x9drblv",
+ "version": "0.1.0"
+ },
+ "dns": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/dns",
+ "repo": "terraform-provider-dns",
+ "rev": "v3.0.0",
+ "sha256": "160dbmg7xg7iyc70f66dphyiysrdbscwya2n28idi8wp5rjx8bid",
+ "vendorSha256": null,
+ "version": "3.0.0"
+ },
+ "dnsimple": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-dnsimple",
+ "rev": "v0.4.0",
+ "sha256": "1f1cpfa30frghp4yxp9n313yaf2mm1hnjq4kzmn6n9210prab9h1",
+ "version": "0.4.0"
+ },
+ "docker": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-docker",
+ "rev": "v2.7.1",
+ "sha256": "1jqnlc3dfy354yjdkj8iyxv0vamyxgmwxmhjim11alwzwjafbv9s",
+ "version": "2.7.1"
+ },
+ "dome9": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-dome9",
+ "rev": "v1.19.0",
+ "sha256": "190q74aaa1v7n7pqcri8kib0g0d4njf9dzm3cygyzmsjs3pxj1lc",
+ "version": "1.19.0"
+ },
+ "dyn": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-dyn",
+ "rev": "v1.2.0",
+ "sha256": "1a3kxmbib2y0nl7gnxknbhsflj5kfknxnm3gjxxrb2h5d2kvqy48",
+ "version": "1.2.0"
+ },
+ "exoscale": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-exoscale",
+ "rev": "v0.16.2",
+ "sha256": "102z4v3shk0as76v90151j4c6p93wy16m1hzzk1yp50dlc8ffsks",
+ "version": "0.16.2"
+ },
+ "external": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/external",
+ "repo": "terraform-provider-external",
+ "rev": "v2.0.0",
+ "sha256": "16wciz08gicicsirij2ql0gy8dg0372jjsqmaigkl2n07mqz2b6a",
+ "vendorSha256": null,
+ "version": "2.0.0"
+ },
+ "fastly": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-fastly",
+ "rev": "v0.16.1",
+ "sha256": "1pjrcw03a86xgkzcx778f7kk79svv8csy05b7qi0m5x77zy4pws7",
+ "version": "0.16.1"
+ },
+ "flexibleengine": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-flexibleengine",
+ "rev": "v1.12.1",
+ "sha256": "0klxi40dd3a4dp7gjsjjwh6zv2m94hh6mk5m9g0dyhvn0r28w5j2",
+ "version": "1.12.1"
+ },
+ "fortios": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-fortios",
+ "rev": "v1.2.0",
+ "sha256": "0sqp23pyldxjkfw33xn5l5fqs4vn00kkfhy9wnl690wn0cwmldbx",
+ "version": "1.2.0"
+ },
+ "genymotion": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-genymotion",
+ "rev": "v1.1.0",
+ "sha256": "02jpr3cm7rrf810c69sr6lcxzvxpnf7icc5z80gnvg67wwfg4ph4",
+ "version": "1.1.0"
+ },
+ "github": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-github",
+ "rev": "v3.1.0",
+ "sha256": "1xl4fd1lfbn1vnrdmg2xljnv8hy6rmf0iv7g8pzbnzbvj2pi7w3b",
+ "version": "3.1.0"
+ },
+ "gitlab": {
+ "owner": "gitlabhq",
+ "provider-source-address": "registry.terraform.io/gitlabhq/gitlab",
+ "repo": "terraform-provider-gitlab",
+ "rev": "v3.1.0",
+ "sha256": "1an34ckz7lz1k25lkjpbmls55zp9pacr46vjnjjpqx6bx5s95f5g",
+ "version": "3.1.0"
+ },
+ "google": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/google",
+ "repo": "terraform-provider-google",
+ "rev": "v3.47.0",
+ "sha256": "05xb0q56y9088qbyaf3vzjm9im1s2azxffhjffjpzi0i79k0g2p0",
+ "vendorSha256": "1h83p7ncv7b4ci7qdig7hb81zk9458fq9aqqbkryawf1w7wbaq2a",
+ "version": "3.47.0"
+ },
+ "google-beta": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/google-beta",
+ "repo": "terraform-provider-google-beta",
+ "rev": "v3.47.0",
+ "sha256": "1nk0bg2q7dg65rn3j5pkdjv07x0gs7bkv1bpfvlhi9p4fzx9g4by",
+ "vendorSha256": "0c2q4d2khsi3v9b659q1kmncnlshv4px6ch99jpcymwqg3xrxda2",
+ "version": "3.47.0"
+ },
+ "grafana": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-grafana",
+ "rev": "v1.5.0",
+ "sha256": "0zy3bqgpxymp2zygaxzllk1ysdankwxa1sy1djfgr4fs2nlggkwi",
+ "version": "1.5.0"
+ },
+ "gridscale": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-gridscale",
+ "rev": "v1.6.0",
+ "sha256": "00l3cwvyyjk0n3j535qfj3bsf1s5l07786gnxycj0f8vz3a06bcq",
+ "version": "1.6.0"
+ },
+ "hedvig": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-hedvig",
+ "rev": "v1.1.1",
+ "sha256": "1gd26jm9frn52hy2vm5sv003lbai5sjgdign6akhjmw5sdsmfr05",
+ "version": "1.1.1"
+ },
+ "helm": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/helm",
+ "repo": "terraform-provider-helm",
+ "rev": "v1.3.2",
+ "sha256": "0mpbf03483jqrwd9cx4pdn2pcv4swfs5nbp021gaqr0jf1w970x6",
+ "vendorSha256": null,
+ "version": "1.3.2"
+ },
+ "heroku": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-heroku",
+ "rev": "v2.4.1",
+ "sha256": "10dacnd0y8q952s53n5myy08slw349pbfddjz63wcblcjyhvq0df",
+ "version": "2.4.1"
+ },
+ "http": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/http",
+ "repo": "terraform-provider-http",
+ "rev": "v2.0.0",
+ "sha256": "0x6a9qf819g16dj9inyvhwff67xy0ixyy70ck56lkidrldara444",
+ "vendorSha256": null,
+ "version": "2.0.0"
+ },
+ "huaweicloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-huaweicloud",
+ "rev": "v1.14.0",
+ "sha256": "10g5xl3pspzmj0bjzqbw3br4k7kh2jplph06f7sz2zg9dncl4h5z",
+ "version": "1.14.0"
+ },
+ "huaweicloudstack": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-huaweicloudstack",
+ "rev": "v1.2.0",
+ "sha256": "0jhx9rap4128j8sfkvpp8lbdmvdba0rkd3nxvy38wr3n18m7v1xg",
+ "version": "1.2.0"
+ },
+ "ibm": {
+ "owner": "IBM-Cloud",
+ "provider-source-address": "registry.terraform.io/IBM-Cloud/ibm",
+ "repo": "terraform-provider-ibm",
+ "rev": "v1.14.0",
+ "sha256": "1r3y7r0mnbzd7xk6d5f7pvysl3p8vl5i5phya89dfwrk2x9xyw21",
+ "vendorSha256": null,
+ "version": "1.14.0"
+ },
+ "icinga2": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-icinga2",
+ "rev": "v0.3.0",
+ "sha256": "0xwjxb84glhp9viqykziwanj696w2prq4r7k0565k0w3qiaz440v",
+ "version": "0.3.0"
+ },
+ "ignition": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-ignition",
+ "rev": "v1.2.1",
+ "sha256": "0wd29iw0a5w7ykgs9m1mmi0bw5z9dl4z640qyz64x8rlh5hl1wql",
+ "version": "1.2.1"
+ },
+ "incapsula": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-incapsula",
+ "rev": "v2.1.0",
+ "sha256": "12zw2m7j52rszfawywbiv9rgv976h1w6bp98012qn45d4ap2kvzy",
+ "version": "2.1.0"
+ },
+ "influxdb": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-influxdb",
+ "rev": "v1.3.0",
+ "sha256": "19af40g8hgz2rdz6523v0fs71ww7qdlf2mh5j9vb7pfzriqwa5k9",
+ "version": "1.3.0"
+ },
+ "infoblox": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-infoblox",
+ "rev": "v1.0.0",
+ "sha256": "0p95y5w3fzddygmsjc0j60z0f4aazvy5iwbwszj0i8gs42qhda2f",
+ "version": "1.0.0"
+ },
+ "jdcloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-jdcloud",
+ "rev": "v1.1.0",
+ "sha256": "04vz0m3z9rfw2hp0h3jhn625r2v37b319krznvhqylqzksv39dzf",
+ "version": "1.1.0"
+ },
+ "ksyun": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-ksyun",
+ "rev": "v1.0.0",
+ "sha256": "1vcx612bz2p0rjsrx11j6fdc0f0q2jm5m3xl94wrpx9jjb7aczvc",
+ "version": "1.0.0"
+ },
+ "kubernetes": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
+ "repo": "terraform-provider-kubernetes",
+ "rev": "v1.13.3",
+ "sha256": "01hkbb81r3k630s3ww6379p66h1fsd5cd1dz14jm833nsr142c0i",
+ "version": "1.13.3"
+ },
+ "kubernetes-alpha": {
+ "owner": "hashicorp",
+ "repo": "terraform-provider-kubernetes-alpha",
+ "rev": "nightly20200608",
+ "sha256": "1g171sppf3kq5qlp6g0qqdm0x8lnpizgw8bxjlhp9b6cl4kym70m",
+ "version": "nightly20200608"
+ },
+ "launchdarkly": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-launchdarkly",
+ "rev": "v1.3.2",
+ "sha256": "0vgkivzbf6hcl9by6l0whpwidva7zmmgdabkshjjk0npl2cj8f9n",
+ "version": "1.3.2"
+ },
+ "librato": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-librato",
+ "rev": "v0.1.0",
+ "sha256": "0bxadwj5s7bvc4vlymn3w6qckf14hz82r7q98w2nh55sqr52d923",
+ "version": "0.1.0"
+ },
+ "linode": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-linode",
+ "rev": "v1.12.3",
+ "sha256": "17hnm7wivd75psap2qdmlnmmlf964s7jf4jrfgsm6njx32wwwfpp",
+ "version": "1.12.3"
+ },
+ "local": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/local",
+ "repo": "terraform-provider-local",
+ "rev": "v2.0.0",
+ "sha256": "0c1mk63lh3qmj8pl80lyvvsgyg4gg7673abr8cfxrj45635h74z5",
+ "vendorSha256": null,
+ "version": "2.0.0"
+ },
+ "logentries": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-logentries",
+ "rev": "v1.0.0",
+ "sha256": "04xprkb9zwdjyzmsdf10bgmn8sa8q7jw0izz8lw0cc9hag97qgbq",
+ "version": "1.0.0"
+ },
+ "logicmonitor": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-logicmonitor",
+ "rev": "v1.3.0",
+ "sha256": "00d8qx95cxaif636dyh935nv9nn6lmb1ybxy7n4myy9g80y50ap1",
+ "version": "1.3.0"
+ },
+ "mailgun": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-mailgun",
+ "rev": "v0.4.1",
+ "sha256": "1l76pg4hmww9zg2n4rkhm5dwjh42fxri6d41ih1bf670krkxwsmz",
+ "version": "0.4.1"
+ },
+ "matchbox": {
+ "owner": "poseidon",
+ "repo": "terraform-provider-matchbox",
+ "rev": "v0.3.0",
+ "sha256": "1nq7k8qa7rv8xyryjigwpwcwvj1sw85c4j46rkfdv70b6js25jz3",
+ "version": "0.3.0"
+ },
+ "metalcloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-metalcloud",
+ "rev": "v2.2.0",
+ "sha256": "0xii9gk96srzi9y4pbvlx2cvwypll4igvk89f9qrg18qrw72ags3",
+ "version": "2.2.0"
+ },
+ "mongodbatlas": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-mongodbatlas",
+ "rev": "v0.5.1",
+ "sha256": "0sl5yd1bqj79f7pj49aqh7l3fvdrbf8r7a4g7cv15qbc8g3lr1dh",
+ "version": "0.5.1"
+ },
+ "mysql": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-mysql",
+ "rev": "v1.9.0",
+ "sha256": "14gxxki3jhncv3s2x828ns2vgmf2xxzigdyp9b54mbkw5rnv1k2g",
+ "version": "1.9.0"
+ },
+ "ncloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-ncloud",
+ "rev": "v1.2.0",
+ "sha256": "1h2fr0ss58dr3ypqj6kw90iyji6s83sz2i85vhs5z2adjbk7h8va",
+ "version": "1.2.0"
+ },
+ "netlify": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-netlify",
+ "rev": "v0.4.0",
+ "sha256": "07xds84k2vgpvn2cy3id7hmzg57sz2603zs4msn3ysxmi28lmqyg",
+ "version": "0.4.0"
+ },
+ "newrelic": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-newrelic",
+ "rev": "v1.19.0",
+ "sha256": "0nmbgw4qyzsw8kxi7p8dy4j1lkxcz7qfs56qsvwf2w07y4qm382p",
+ "version": "1.19.0"
+ },
+ "nixos": {
+ "owner": "tweag",
+ "repo": "terraform-provider-nixos",
+ "rev": "v0.0.1",
+ "sha256": "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf",
+ "version": "0.0.1"
+ },
+ "nomad": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-nomad",
+ "rev": "v1.4.5",
+ "sha256": "1sccm4mspjn92ky6nscsrmbb573mx53wzsvvapsf2p4119h9s30i",
+ "version": "1.4.5"
+ },
+ "ns1": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-ns1",
+ "rev": "v1.8.3",
+ "sha256": "18mq6r8sw2jjvngay0zyvzlfiln8c0xb8hcrl2wcmnpqv2iinbkl",
+ "version": "1.8.3"
+ },
+ "nsxt": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-nsxt",
+ "rev": "v2.0.0",
+ "sha256": "0fka793r0c06sz8vlxk0z7vbm6kab5xzk39r5pznkq34004r17sl",
+ "version": "2.0.0"
+ },
+ "null": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/null",
+ "repo": "terraform-provider-null",
+ "rev": "v3.0.0",
+ "sha256": "0r1kvsc96922i85hdvf1pk8aicxjr6bc69gc63qi21hrl0jpvr7r",
+ "vendorSha256": null,
+ "version": "3.0.0"
+ },
+ "nutanix": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-nutanix",
+ "rev": "v1.0.2",
+ "sha256": "17sgsxsh8minirks08c6gz52cf7ndn220sx4xzi6bq64yi6qw2yc",
+ "version": "1.0.2"
+ },
+ "oci": {
+ "owner": "terraform-providers",
+ "provider-source-address": "registry.terraform.io/hashicorp/oci",
+ "repo": "terraform-provider-oci",
+ "rev": "v3.79.0",
+ "sha256": "11n2v537zniiv5xvhpypqrm09my8zybirvq4ly94hp69v73xj89c",
+ "version": "3.79.0"
+ },
+ "okta": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-okta",
+ "rev": "v3.3.0",
+ "sha256": "1z557z1yagp2caf85hmcr6sddax9a5h47jja17082qmmr1qy0i07",
+ "version": "3.3.0"
+ },
+ "oktaasa": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-oktaasa",
+ "rev": "v1.0.0",
+ "sha256": "093d5r8dz8gryk8qp5var2qrrgkvs1gwgw3zqpxry9xc5cpn30w0",
+ "version": "1.0.0"
+ },
+ "oneandone": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-oneandone",
+ "rev": "v1.3.0",
+ "sha256": "0c412nqg3k17124i51nn3ffra6gcll904h37h7hyvz97cdblcncn",
+ "version": "1.3.0"
+ },
+ "opc": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-opc",
+ "rev": "v1.4.0",
+ "sha256": "1yl8bbh4pf94wlmna294zcawylr9hiaix82wr321g9wb0vi3d5l8",
+ "version": "1.4.0"
+ },
+ "opennebula": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-opennebula",
+ "rev": "v0.1.1",
+ "sha256": "048cqd89fz5xpji1w8ylg75nbzzcx1c5n89y1k0ra8d3g2208yb2",
+ "version": "0.1.1"
+ },
+ "openstack": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-openstack",
+ "rev": "v1.28.0",
+ "sha256": "1g2nxv312ddvkgpph17m9sh4zmy5ddj8gqwnfb3frbfbbamrgar6",
+ "version": "1.28.0"
+ },
+ "opentelekomcloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-opentelekomcloud",
+ "rev": "v1.17.1",
+ "sha256": "1d4w35hpvxy5wkb6n9wrh2nfcsy0xgk6d4jbk4sy7dn44w3nkqbg",
+ "version": "1.17.1"
+ },
+ "opsgenie": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-opsgenie",
+ "rev": "v0.3.4",
+ "sha256": "11pbkhn7yhz2mfa01ikn7rdajl28zwxfq9g9qdf9lvkdrv88gwh0",
+ "version": "0.3.4"
+ },
+ "oraclepaas": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-oraclepaas",
+ "rev": "v1.5.3",
+ "sha256": "0xb03b5jgm06rgrllib6zj1nkh54zv2mqjnyfflgnazpf4c1ia15",
+ "version": "1.5.3"
+ },
+ "ovh": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-ovh",
+ "rev": "v0.8.0",
+ "sha256": "1ww4ng8w5hm50rbxd83xzbkq8qsn04dqwpdjhs587v9d0x2vwrf1",
+ "version": "0.8.0"
+ },
+ "packet": {
+ "owner": "packethost",
+ "repo": "terraform-provider-packet",
+ "rev": "v3.2.0",
+ "sha256": "sha256-YIv4OPRbR00YTVwz0iJ/y6qTbj50nsi5ylrWEx1kZck=",
+ "version": "3.2.0"
+ },
+ "pagerduty": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-pagerduty",
+ "rev": "v1.7.2",
+ "sha256": "1a8g8rpn52wibrxhnvhlda7ja38vw9aadgdc8nbj7zs50x4aj3ic",
+ "version": "1.7.2"
+ },
+ "panos": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-panos",
+ "rev": "v1.6.2",
+ "sha256": "1qy6jynv61zhvq16s8jkwjhxz7r65cmk9k37ahh07pbhdx707mz5",
+ "version": "1.6.2"
+ },
+ "pass": {
+ "owner": "camptocamp",
+ "repo": "terraform-provider-pass",
+ "rev": "1.2.1",
+ "sha256": "1hf5mvgz5ycp7shiy8px205d9kwswfjmclg7mlh9a55bkraffahk",
+ "version": "1.2.1"
+ },
+ "postgresql": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-postgresql",
+ "rev": "v1.7.1",
+ "sha256": "0qlz00svvbwxslp8v7bi7mx5mvnjmh2cvg33a006gh4fy5n75shy",
+ "version": "1.7.1"
+ },
+ "powerdns": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-powerdns",
+ "rev": "v1.4.0",
+ "sha256": "1mfcj32v66w5gnzbrdkampydl3m9f1155vcdw8l1f2nba59irkgw",
+ "version": "1.4.0"
+ },
+ "profitbricks": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-profitbricks",
+ "rev": "v1.5.2",
+ "sha256": "0gass4gzv8axlzn5rgg35nqvd61q82k041r0sr6x6pv6j8v1ixln",
+ "version": "1.5.2"
+ },
+ "pureport": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-pureport",
+ "rev": "v1.1.8",
+ "sha256": "02vmqwjz5m5hj4zghwicjp27dxvc4qsiwj4gjsi66w6djdqnh4h1",
+ "version": "1.1.8"
+ },
+ "rabbitmq": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-rabbitmq",
+ "rev": "v1.3.0",
+ "sha256": "1adkbfm0p7a9i1i53bdmb34g5871rklgqkx7kzmwmk4fvv89n6g8",
+ "version": "1.3.0"
+ },
+ "rancher": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-rancher",
+ "rev": "v1.5.0",
+ "sha256": "0yhv9ahj6ajspgnl2f77gpyd6klq44dyl74lvl10bx6yy56abi2m",
+ "version": "1.5.0"
+ },
+ "rancher2": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-rancher2",
+ "rev": "v1.8.3",
+ "sha256": "1k2d9j17b7sssliraww6as196ihdcra1ylhg1qbynklpr0asiwna",
+ "version": "1.8.3"
+ },
+ "random": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/random",
+ "repo": "terraform-provider-random",
+ "rev": "v3.0.0",
+ "sha256": "00dkpcri9ckp0kxwgh3p8175cyd44m8z13cb013pm4mrr61n4wq9",
+ "vendorSha256": null,
+ "version": "3.0.0"
+ },
+ "rightscale": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-rightscale",
+ "rev": "v1.3.1",
+ "sha256": "0abwxaghrxpahpsk6kd02fjh0rhck4xsdrzcpv629yh8ip9rzcaj",
+ "version": "1.3.1"
+ },
+ "rundeck": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-rundeck",
+ "rev": "v0.4.0",
+ "sha256": "1x131djsny8w84yf7w2il33wlc3ysy3k399dziii2lmq4h8sgrpr",
+ "version": "0.4.0"
+ },
+ "runscope": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-runscope",
+ "rev": "v0.6.0",
+ "sha256": "1fsph2cnyvzdwa5hwdjabfk4azmc3x8a7afpwpawxfdvqhgpr595",
+ "version": "0.6.0"
+ },
+ "scaleway": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-scaleway",
+ "rev": "v1.15.0",
+ "sha256": "0bdhjrml14f5z4spkl7l305g0vdzpgama7ahngws8jhvl8yfa208",
+ "version": "1.15.0"
+ },
+ "secret": {
+ "owner": "tweag",
+ "repo": "terraform-provider-secret",
+ "rev": "v1.1.1",
+ "sha256": "1pr0amzgv1i1lxniqlx8spdb73q522l7pm8a4m25hwy1kwby37sd",
+ "version": "1.1.1"
+ },
+ "segment": {
+ "owner": "ajbosco",
+ "repo": "terraform-provider-segment",
+ "rev": "v0.2.0",
+ "sha256": "0ic5b9djhnb1bs2bz3zdprgy3r55dng09xgc4d9l9fyp85g2amaz",
+ "version": "0.2.0"
+ },
+ "selectel": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-selectel",
+ "rev": "v3.3.0",
+ "sha256": "1fs96qd2b4glk8hhn5m9r04ap679g0kf3nnhjx1a2idqwrv71gcl",
+ "version": "3.3.0"
+ },
+ "signalfx": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-signalfx",
+ "rev": "v4.23.0",
+ "sha256": "1v3whvqb6nilfvw4c0xziq6yrlkl96d2cya094c7bd7wp9hzif1l",
+ "version": "4.23.0"
+ },
+ "skytap": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-skytap",
+ "rev": "v0.14.1",
+ "sha256": "0ygsdkv7czyhsjsx1q57rmmcl8x66d65yarhg40hlng5c7xpi52g",
+ "version": "0.14.1"
+ },
+ "softlayer": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-softlayer",
+ "rev": "v0.0.1",
+ "sha256": "1xcg5zm2n1pc3l7ng94k589r7ykv6fxsmr5qn9xmmpdf912rdnfq",
+ "version": "0.0.1"
+ },
+ "sops": {
+ "owner": "carlpett",
+ "repo": "terraform-provider-sops",
+ "rev": "v0.5.1",
+ "sha256": "1x32w1qw46rwa8bjhkfn6ybr1dkbdqk0prlm0bnwn3gvvj0hc7kh",
+ "version": "0.5.1"
+ },
+ "spotinst": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-spotinst",
+ "rev": "v1.17.0",
+ "sha256": "0pmbr2xdqrzkd66zv4gpyxzahs7p2m2xl5qyvqpg0apxn91z3ra7",
+ "version": "1.17.0"
+ },
+ "stackpath": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-stackpath",
+ "rev": "v1.3.0",
+ "sha256": "0gsr903v6fngaxm2r5h53g9yc3jpx2zccqq07rhzm9jbsfb6rlzn",
+ "version": "1.3.0"
+ },
+ "statuscake": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-statuscake",
+ "rev": "v1.0.0",
+ "sha256": "1x295va6c72465cxps0kx3rrb7s9aip2cniy6icsg1b2yrsb9b26",
+ "version": "1.0.0"
+ },
+ "sumologic": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-sumologic",
+ "rev": "v2.0.3",
+ "sha256": "0d7xsfdfs6dj02bh90bhwsa2jgxf84df3pqmsjlmxvpv65dv4vs8",
+ "version": "2.0.3"
+ },
+ "telefonicaopencloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-telefonicaopencloud",
+ "rev": "v1.0.0",
+ "sha256": "1761wkjz3d2458xl7855lxklyxgyk05fddh92rp6975y0ca6xa5m",
+ "version": "1.0.0"
+ },
+ "template": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/template",
+ "repo": "terraform-provider-template",
+ "rev": "v2.2.0",
+ "sha256": "12pn1i06jz4xl50md94yfdggg3pg5bv1viwf35izizm5rnyksyv2",
+ "vendorSha256": null,
+ "version": "2.2.0"
+ },
+ "tencentcloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-tencentcloud",
+ "rev": "v1.36.0",
+ "sha256": "1sqynm0g1al5hnxzccv8iiqcgd07ys0g828f3xfw53b6f5vzbhfr",
+ "version": "1.36.0"
+ },
+ "terraform": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-terraform",
+ "rev": "v1.0.2",
+ "sha256": "1aj6g6l68n9kqmxfjlkwwxnac7fhha6wrmvsw4yylf0qyssww75v",
+ "version": "1.0.2"
+ },
+ "tfe": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-tfe",
+ "rev": "v0.18.0",
+ "sha256": "1cl83afm00fflsd3skynjvncid3r74fkxfznrs1v8qypcg1j79g1",
+ "version": "0.18.0"
+ },
+ "time": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/time",
+ "repo": "terraform-provider-time",
+ "rev": "v0.6.0",
+ "sha256": "0fb81hisjicib9rzbn51jqfrchyjd3hzq98adnf22cbra8wlnxlm",
+ "version": "0.6.0"
+ },
+ "tls": {
+ "owner": "hashicorp",
+ "provider-source-address": "registry.terraform.io/hashicorp/tls",
+ "repo": "terraform-provider-tls",
+ "rev": "v3.0.0",
+ "sha256": "1p9d5wrr4xwf2i930zlcarm1zl8ysj3nyc6rrbhpxk04kr6ap0wz",
+ "vendorSha256": null,
+ "version": "3.0.0"
+ },
+ "triton": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-triton",
+ "rev": "v0.7.0",
+ "sha256": "14wbdm2rlmjld9y7iizdinhk1fnx5s8fgjgd3jcs1b4g126s0pl0",
+ "version": "0.7.0"
+ },
+ "turbot": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-turbot",
+ "rev": "v1.3.0",
+ "sha256": "0z56s3kmx84raiwiny9jing8ac9msfd5vk8va24k8czwj2v5gb0f",
+ "version": "1.3.0"
+ },
+ "ucloud": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-ucloud",
+ "rev": "v1.20.0",
+ "sha256": "1s3xgdrngiy7slxwk5cmhij681yyfvc8185yig7jmrm21q2981f6",
+ "version": "1.20.0"
+ },
+ "ultradns": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-ultradns",
+ "rev": "v0.1.0",
+ "sha256": "0bq2y6bxdax7qnmq6vxh8pz9sqy1r3m05dv7q5dbv2xvba1b88hj",
+ "version": "0.1.0"
+ },
+ "vault": {
+ "owner": "terraform-providers",
+ "provider-source-address": "registry.terraform.io/hashicorp/vault",
+ "repo": "terraform-provider-vault",
+ "rev": "v2.11.0",
+ "sha256": "1yzakc7jp0rs9axnfdqw409asrbjhq0qa7xn4xzpi7m94g1ii12d",
+ "version": "2.11.0"
+ },
+ "vcd": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-vcd",
+ "rev": "v2.8.0",
+ "sha256": "0myj5a9mrh7vg6h3gk5f0wsdp6832nz0z10h184107sdchpv253n",
+ "version": "2.8.0"
+ },
+ "venafi": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-venafi",
+ "rev": "v0.9.2",
+ "sha256": "06nk5c7lxs8fc04sz97lc3yk1zk1b9phkzw6fj9fnmpgaak87bj9",
+ "version": "0.9.2"
+ },
+ "vra7": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-vra7",
+ "rev": "v1.0.1",
+ "sha256": "0qmldgxmrv840c5rbmskdf4f9g4v52gg9v7magm6j2w2g0dp1022",
+ "version": "1.0.1"
+ },
+ "vsphere": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-vsphere",
+ "rev": "v1.18.3",
+ "sha256": "1cvfmkckigi80cvv826m0d8wzd98qny0r5nqpl7nkzz5kybkb5qp",
+ "version": "1.18.3"
+ },
+ "vthunder": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-vthunder",
+ "rev": "v0.1.0",
+ "sha256": "1mw55g0kjgp300p6y4s8wc91fgfxjm0cbszfzgbc8ca4b00j8cc2",
+ "version": "0.1.0"
+ },
+ "vultr": {
+ "owner": "vultr",
+ "repo": "terraform-provider-vultr",
+ "rev": "v1.5.0",
+ "sha256": "04qy366ignn53bbdj9s3032qr1x7h84q36qzl5ywydlw2va0qbsd",
+ "version": "1.5.0"
+ },
+ "wavefront": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-wavefront",
+ "rev": "v2.3.0",
+ "sha256": "0aci96852bd4y8bi9y68p550jiji0c69kiw4zhf9qfld0sjz44j2",
+ "version": "2.3.0"
+ },
+ "yandex": {
+ "owner": "terraform-providers",
+ "repo": "terraform-provider-yandex",
+ "rev": "v0.40.0",
+ "sha256": "0dymhdrdm00m9xn4xka3zbvjqnckhl06vz5zm6rqivkmw8m2q0mz",
+ "version": "0.40.0"
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix
new file mode 100644
index 000000000000..c0ee431fa405
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+buildGoModule rec {
+ pname = "terraform-provider-shell";
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "scottwinkler";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0jxb30vw93ibnwz8nfqapac7p9r2famzvsf2h4nfbmhkm6mpan4l";
+ };
+
+ vendorSha256 = "1p2ja6cw3dl7mx41svri6frjpgb9pxsrl7sq0rk1d3sviw0f88sg";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ # Terraform allows checking the provider versions, but this breaks
+ # if the versions are not provided via file paths.
+ postInstall = "mv $out/bin/${pname}{,_v${version}}";
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Terraform provider for executing shell commands and saving output to state file";
+ changelog = "https://github.com/scottwinkler/terraform-provider-shell/releases/tag/v${version}";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ mupdt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all-providers b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all-providers
new file mode 100755
index 000000000000..052c56742c5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all-providers
@@ -0,0 +1,22 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p jq
+# shellcheck shell=bash
+
+# Update all providers which have specified provider source address
+set -euo pipefail
+
+providers=$(
+ jq -r 'to_entries
+ | map_values(.value + { alias: .key })
+ | .[]
+ | select(."provider-source-address"?)
+ | .alias' providers.json
+)
+
+echo "Will update providers:"
+echo "$providers"
+
+for provider in $providers; do
+ echo "Updating $provider"
+ ./update-provider "$provider"
+done
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
new file mode 100755
index 000000000000..e1f1a0ef38a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
@@ -0,0 +1,178 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p coreutils curl jq moreutils
+# shellcheck shell=bash
+# vim: ft=sh
+#
+# Update a terraform provider to the latest version advertised at the
+# provider source address.
+#
+set -euo pipefail
+
+show_usage() {
+ cat <<DOC
+Usage: ./update-provider [--force] [--vendor] [<owner>/]<provider>
+
+Update a single provider in the providers.json inventory file.
+
+For example to update 'terraform-providers.aws' run:
+
+ ./update-provider aws
+
+If the provider is not in the list already, use the form '<owner>/<provider>'
+to add the provider to the list:
+
+ ./update-provider hetznercloud/hcloud
+
+Options:
+
+ * --force: Force the update even if the version matches.
+ * --vendor: Switch from go package to go modules with vendor.
+ * --vendor-sha256 <sha256>: Override the SHA256 or "null".
+DOC
+}
+
+force=
+provider=
+vendor=
+vendorSha256=
+
+while [[ $# -gt 0 ]]; do
+ case "$1" in
+ -h | --help)
+ show_usage
+ exit
+ ;;
+ --force)
+ force=1
+ shift
+ ;;
+ --vendor)
+ force=1
+ vendor=1
+ shift
+ ;;
+ --vendor-sha256)
+ force=1
+ vendorSha256=$2
+ shift 2
+ ;;
+ *)
+ if [[ -n "$provider" ]]; then
+ echo "ERROR: provider name was passed two times: '$provider' and '$1'"
+ echo "Use --help for more info"
+ exit 1
+ fi
+ provider=$1
+ shift
+ esac
+done
+
+if [[ -z "$provider" ]]; then
+ echo "ERROR: No providers specified!"
+ echo
+ show_usage
+ exit 1
+fi
+
+provider_name=$(basename "$provider")
+
+# Usage: read_attr <key>
+read_attr() {
+ jq -r ".\"$provider_name\".\"$1\"" providers.json
+}
+
+# Usage: update_attr <key> <value>
+update_attr() {
+ if [[ "$2" == "null" ]]; then
+ jq -S ".\"$provider_name\".\"$1\" = null" providers.json | sponge providers.json
+ else
+ jq -S ".\"$provider_name\".\"$1\" = \"$2\"" providers.json | sponge providers.json
+ fi
+}
+
+prefetch_github() {
+ # of a given owner, repo and rev, fetch the tarball and return the output of
+ # `nix-prefetch-url`
+ local owner=$1
+ local repo=$2
+ local rev=$3
+ nix-prefetch-url --unpack "https://github.com/$owner/$repo/archive/$rev.tar.gz"
+}
+
+old_source_address="$(read_attr provider-source-address)"
+old_vendor_sha256=$(read_attr vendorSha256)
+old_version=$(read_attr version)
+
+if [[ $provider =~ ^[^/]+/[^/]+$ ]]; then
+ source_address=registry.terraform.io/$provider
+else
+ source_address=$old_source_address
+fi
+if [[ "$source_address" == "null" ]]; then
+ echo "Could not find the source address for provider: $provider"
+ exit 1
+fi
+update_attr "provider-source-address" "$source_address"
+
+# The provider source address (used inside Terraform `required_providers` block) is
+# used to compute the registry API endpoint
+#
+# registry.terraform.io/hashicorp/aws (provider source address)
+# registry.terraform.io/providers/hashicorp/aws (provider URL for the website)
+# registry.terraform.io/v1/providers/hashicorp/aws (provider URL for the JSON API)
+registry_response=$(curl -s https://"${source_address/\///v1/providers/}")
+
+version="$(jq -r '.version' <<< "$registry_response")"
+if [[ "$old_version" = "$version" && "$force" != 1 && -z "$vendorSha256" && "$old_vendor_sha256" != "$vendorSha256" ]]; then
+ echo "$provider_name is already at version $version"
+ exit
+fi
+update_attr version "$version"
+
+provider_source_url="$(jq -r '.source' <<< "$registry_response")"
+
+org="$(echo "$provider_source_url" | cut -d '/' -f 4)"
+update_attr owner "$org"
+repo="$(echo "$provider_source_url" | cut -d '/' -f 5)"
+update_attr repo "$repo"
+rev="$(jq -r '.tag' <<< "$registry_response")"
+update_attr rev "$rev"
+sha256=$(prefetch_github "$org" "$repo" "$rev")
+update_attr sha256 "$sha256"
+
+repo_root=$(git rev-parse --show-toplevel)
+
+if [[ -z "$vendorSha256" ]]; then
+ if [[ "$old_vendor_sha256" == null ]]; then
+ vendorSha256=null
+ elif [[ -n "$old_vendor_sha256" || "$vendor" = 1 ]]; then
+ echo "=== Calculating vendorSha256 ==="
+ update_attr vendorSha256 "0000000000000000000000000000000000000000000000000000000000000000"
+ # Hackish way to find out the desired sha256. First build, then extract the
+ # error message from the logs.
+ set +e
+ nix-build --no-out-link "$repo_root" -A "terraform-providers.$provider_name.go-modules" 2>vendor_log.txt
+ set -e
+ logs=$(< vendor_log.txt)
+ if ! [[ $logs =~ got:\ +([^\ ]+) ]]; then
+ echo "ERROR: could not find new hash in output:"
+ cat vendor_log.txt
+ rm -f vendor_log.txt
+ exit 1
+ fi
+ rm -f vendor_log.txt
+ vendorSha256=${BASH_REMATCH[1]}
+ # Deal with nix unstable
+ if [[ $vendorSha256 = sha256-* ]]; then
+ vendorSha256=$(nix to-base32 "$vendorSha256")
+ fi
+ fi
+fi
+
+if [[ -n "$vendorSha256" ]]; then
+ update_attr vendorSha256 "$vendorSha256"
+fi
+
+# Check that the provider builds
+echo "=== Building terraform-providers.$provider_name ==="
+nix-build "$repo_root" -A "terraform-providers.$provider_name"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
new file mode 100644
index 000000000000..a4167d2b099e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+buildGoModule rec {
+ pname = "terraform-provider-vpsadmin";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "vpsfreecz";
+ repo = "terraform-provider-vpsadmin";
+ rev = "v${version}";
+ sha256 = "1vny6w9arbbra04bjjafisaswinm93ic1phy59l0g78sqf6x3a7v";
+ };
+
+ vendorSha256 = "0j90fnzba23mwf9bzf9w5h0hszkl3h61p5i780s9v9c0hbzhbqsh";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ # Terraform allow checking the provider versions, but this breaks
+ # if the versions are not provided via file paths.
+ postInstall = "mv $out/bin/${pname}{,_v${version}}";
+
+ meta = with stdenv.lib; {
+ description = "Terraform provider for vpsAdmin";
+ homepage = "https://github.com/vpsfreecz/terraform-provider-vpsadmin";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
new file mode 100644
index 000000000000..d8c17a89e69b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -0,0 +1,195 @@
+{ stdenv, lib, buildGoModule, fetchFromGitHub, makeWrapper, coreutils
+, runCommand, runtimeShell, writeText, terraform-providers, fetchpatch }:
+
+let
+ generic = { version, sha256, vendorSha256 ? null, ... }@attrs:
+ let attrs' = builtins.removeAttrs attrs [ "version" "sha256" "vendorSha256" ];
+ in buildGoModule ({
+ name = "terraform-${version}";
+
+ inherit vendorSha256;
+
+ src = fetchFromGitHub {
+ owner = "hashicorp";
+ repo = "terraform";
+ rev = "v${version}";
+ inherit sha256;
+ };
+
+ postConfigure = ''
+ # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22
+ substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \
+ --replace "/bin/stty" "${coreutils}/bin/stty"
+ '';
+
+ postInstall = ''
+ # remove all plugins, they are part of the main binary now
+ for i in $out/bin/*; do
+ if [[ $(basename $i) != terraform ]]; then
+ rm "$i"
+ fi
+ done
+ '';
+
+ preCheck = ''
+ export HOME=$TMPDIR
+ export TF_SKIP_REMOTE_TESTS=1
+ '';
+
+ subPackages = [ "." ];
+
+ meta = with stdenv.lib; {
+ description =
+ "Tool for building, changing, and versioning infrastructure";
+ homepage = "https://www.terraform.io/";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [
+ Chili-Man
+ babariviere
+ kalbasit
+ marsam
+ peterhoeg
+ timstott
+ zimbatm
+ ];
+ };
+ } // attrs');
+
+ pluggable = terraform:
+ let
+ withPlugins = plugins:
+ let
+ actualPlugins = plugins terraform.plugins;
+
+ # Make providers available in Terraform 0.13 and 0.12 search paths.
+ pluginDir = lib.concatMapStrings (pl: let
+ inherit (pl) version GOOS GOARCH;
+
+ pname = pl.pname or (throw "${pl.name} is missing a pname attribute");
+
+ # This is just the name, without the terraform-provider- prefix
+ plugin_name = lib.removePrefix "terraform-provider-" pname;
+
+ slug = pl.passthru.provider-source-address or "registry.terraform.io/nixpkgs/${plugin_name}";
+
+ shim = writeText "shim" ''
+ #!${runtimeShell}
+ exec ${pl}/bin/${pname}_v${version} "$@"
+ '';
+ in ''
+ TF_0_13_PROVIDER_PATH=$out/plugins/${slug}/${version}/${GOOS}_${GOARCH}/${pname}_v${version}
+ mkdir -p "$(dirname $TF_0_13_PROVIDER_PATH)"
+
+ cp ${shim} "$TF_0_13_PROVIDER_PATH"
+ chmod +x "$TF_0_13_PROVIDER_PATH"
+
+ TF_0_12_PROVIDER_PATH=$out/plugins/${pname}_v${version}
+
+ cp ${shim} "$TF_0_12_PROVIDER_PATH"
+ chmod +x "$TF_0_12_PROVIDER_PATH"
+ ''
+ ) actualPlugins;
+
+ # Wrap PATH of plugins propagatedBuildInputs, plugins may have runtime dependencies on external binaries
+ wrapperInputs = lib.unique (lib.flatten
+ (lib.catAttrs "propagatedBuildInputs"
+ (builtins.filter (x: x != null) actualPlugins)));
+
+ passthru = {
+ withPlugins = newplugins:
+ withPlugins (x: newplugins x ++ actualPlugins);
+ full = withPlugins lib.attrValues;
+
+ # Ouch
+ overrideDerivation = f:
+ (pluggable (terraform.overrideDerivation f)).withPlugins plugins;
+ overrideAttrs = f:
+ (pluggable (terraform.overrideAttrs f)).withPlugins plugins;
+ override = x:
+ (pluggable (terraform.override x)).withPlugins plugins;
+ };
+ # Don't bother wrapping unless we actually have plugins, since the wrapper will stop automatic downloading
+ # of plugins, which might be counterintuitive if someone just wants a vanilla Terraform.
+ in if actualPlugins == [ ] then
+ terraform.overrideAttrs
+ (orig: { passthru = orig.passthru // passthru; })
+ else
+ lib.appendToName "with-plugins" (stdenv.mkDerivation {
+ inherit (terraform) name meta;
+ buildInputs = [ makeWrapper ];
+
+ buildCommand = pluginDir + ''
+ mkdir -p $out/bin/
+ makeWrapper "${terraform}/bin/terraform" "$out/bin/terraform" \
+ --set NIX_TERRAFORM_PLUGIN_DIR $out/plugins \
+ --prefix PATH : "${lib.makeBinPath wrapperInputs}"
+ '';
+
+ inherit passthru;
+ });
+ in withPlugins (_: [ ]);
+
+ plugins = removeAttrs terraform-providers [
+ "override"
+ "overrideDerivation"
+ "recurseForDerivations"
+ ];
+in rec {
+ terraform_0_11 = pluggable (generic {
+ version = "0.11.14";
+ sha256 = "1bzz5wy13gh8j47mxxp6ij6yh20xmxd9n5lidaln3mf1bil19dmc";
+ patches = [ ./provider-path.patch ];
+ passthru = { inherit plugins; };
+ });
+
+ terraform_0_11-full = terraform_0_11.full;
+
+ terraform_0_12 = pluggable (generic {
+ version = "0.12.29";
+ sha256 = "18i7vkvnvfybwzhww8d84cyh93xfbwswcnwfrgvcny1qwm8rsaj8";
+ patches = [
+ ./provider-path.patch
+ (fetchpatch {
+ name = "fix-mac-mojave-crashes.patch";
+ url = "https://github.com/hashicorp/terraform/commit/cd65b28da051174a13ac76e54b7bb95d3051255c.patch";
+ sha256 = "1k70kk4hli72x8gza6fy3vpckdm3sf881w61fmssrah3hgmfmbrs";
+ }) ];
+ passthru = { inherit plugins; };
+ });
+
+ terraform_0_13 = pluggable (generic {
+ version = "0.13.5";
+ sha256 = "1fnydzm5h65pdy2gkq403sllx05cvpldkdzdpcy124ywljb4x9d8";
+ patches = [ ./provider-path.patch ];
+ passthru = { inherit plugins; };
+ });
+
+ terraform_0_14 = pluggable (generic {
+ version = "0.14.0";
+ sha256 = "0pbglnvb6cx8zrz791lfa67dmjqfsyysbxm2083b1lhlmbybi9ax";
+ vendorSha256 = "1gxhdj98np482jm76aj6zbbmkn7vfk8b878hzz59iywgbdr1r4m1";
+ patches = [ ./provider-path.patch ];
+ passthru = { inherit plugins; };
+ });
+
+ # Tests that the plugins are being used. Terraform looks at the specific
+ # file pattern and if the plugin is not found it will try to download it
+ # from the Internet. With sandboxing enable this test will fail if that is
+ # the case.
+ terraform_plugins_test = let
+ mainTf = writeText "main.tf" ''
+ resource "random_id" "test" {}
+ '';
+ terraform = terraform_0_11.withPlugins (p: [ p.random ]);
+ test =
+ runCommand "terraform-plugin-test" { buildInputs = [ terraform ]; } ''
+ set -e
+ # make it fail outside of sandbox
+ export HTTP_PROXY=http://127.0.0.1:0 HTTPS_PROXY=https://127.0.0.1:0
+ cp ${mainTf} main.tf
+ terraform init
+ touch $out
+ '';
+ in test;
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch
new file mode 100644
index 000000000000..39a69e4a389f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch
@@ -0,0 +1,16 @@
+diff --git a/command/init.go b/command/init.go
+index 403ca245b..05d98329a 100644
+--- a/command/init.go
++++ b/command/init.go
+@@ -64,6 +64,11 @@ func (c *InitCommand) Run(args []string) int {
+ return 1
+ }
+
++ val, ok := os.LookupEnv("NIX_TERRAFORM_PLUGIN_DIR")
++ if ok {
++ flagPluginPath = append(flagPluginPath, val)
++ }
++
+ if len(flagPluginPath) > 0 {
+ c.pluginPath = flagPluginPath
+ c.getPlugins = false
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
new file mode 100644
index 000000000000..a6a9631481f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper }:
+
+buildGoModule rec {
+ pname = "terragrunt";
+ version = "0.26.7";
+
+ src = fetchFromGitHub {
+ owner = "gruntwork-io";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1431n6zs2mfkgh281xi0d7m9hxifrrsnd46fnpb54mr6lj9h0sdb";
+ };
+
+ vendorSha256 = "18ix11g709fvh8h02k3p2bmzrq5fjzaqa50h3g74s3hyl2gc9s9h";
+
+ doCheck = false;
+
+ buildInputs = [ makeWrapper ];
+
+ buildFlagsArray = [ "-ldflags=" "-X main.VERSION=v${version}" ];
+
+ meta = with lib; {
+ description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices";
+ homepage = "https://github.com/gruntwork-io/terragrunt/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg jk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix
new file mode 100644
index 000000000000..1954f867eb0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, ... }:
+
+stdenv.mkDerivation rec {
+
+ pname = "terranix";
+ version = "2.3.0";
+
+ src = fetchFromGitHub {
+ owner = "mrVanDalo";
+ repo = "terranix";
+ rev = version;
+ sha256 = "030067h3gjc02llaa7rx5iml0ikvw6szadm0nrss2sqzshsfimm4";
+ };
+
+ installPhase = ''
+ mkdir -p $out
+ mv bin core modules lib $out/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A NixOS like terraform-json generator";
+ homepage = "https://terranix.org";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mrVanDalo ];
+ };
+
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
new file mode 100644
index 000000000000..40ba3530c8af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "tilt";
+ /* Do not use "dev" as a version. If you do, Tilt will consider itself
+ running in development environment and try to serve assets from the
+ source tree, which is not there once build completes. */
+ version = "0.17.13";
+
+ src = fetchFromGitHub {
+ owner = "tilt-dev";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-x3U5OF8T3z9kHcYe7SwKVEKNiEsi8AEvA1rlOma4y+8=";
+ };
+ vendorSha256 = null;
+
+ subPackages = [ "cmd/tilt" ];
+
+ buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
+
+ meta = with stdenv.lib; {
+ description = "Local development tool to manage your developer instance when your team deploys to Kubernetes in production";
+ homepage = "https://tilt.dev/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ anton-dessiatov ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
new file mode 100644
index 000000000000..45cae94ec850
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "velero";
+ version = "1.5.2";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "vmware-tanzu";
+ repo = "velero";
+ sha256 = "1hfi1iipbval0c0c0nnf6fz5n76za0vwczm5lq86sddqnznbvsrz";
+ };
+
+ buildFlagsArray = ''
+ -ldflags=
+ -s -w
+ -X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=${version}
+ -X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=456eb19668f8da603756353d9179b59b5a7bfa04
+ -X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean
+ '';
+
+ vendorSha256 = "1izl7z689jf3i3wax7rfpk0jjly7nsi7vzasy1j9v5cwjy2d5z4v";
+
+ excludedPackages = [ "issue-template-gen" ];
+
+ doCheck = false;
+
+ nativeBuildInputs = [ installShellFiles ];
+ postInstall = ''
+ $out/bin/velero completion bash > velero.bash
+ $out/bin/velero completion zsh > velero.zsh
+ installShellCompletion velero.{bash,zsh}
+ '';
+
+ meta = with stdenv.lib; {
+ description =
+ "A utility for managing disaster recovery, specifically for your Kubernetes cluster resources and persistent volumes";
+ homepage = "https://velero.io/";
+ changelog =
+ "https://github.com/vmware-tanzu/velero/releases/tag/v${version}";
+ license = licenses.asl20;
+ maintainers = [ maintainers.mbode maintainers.bryanasdev000 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/compactor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/compactor/default.nix
new file mode 100644
index 000000000000..97a2f6992f9a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/compactor/default.nix
@@ -0,0 +1,59 @@
+{ autoconf, automake, boost, cbor-diag, cddl, fetchFromGitHub, file, libctemplate, libmaxminddb
+, libpcap, libtins, libtool, lzma, openssl, pkgconfig, stdenv, tcpdump, wireshark-cli
+}:
+
+stdenv.mkDerivation rec {
+ pname = "compactor";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "dns-stats";
+ repo = pname;
+ rev = version;
+ sha256 = "0x5rwbv0ndf9zcvnsbd78ic6shh9hd0bh3gh0lzz9wlb99lslbkk";
+ };
+
+ # cbor-diag, cddl and wireshark-cli are only used for tests.
+ nativeBuildInputs = [ autoconf automake libtool pkgconfig cbor-diag cddl wireshark-cli ];
+ buildInputs = [
+ boost
+ libpcap
+ openssl
+ libtins
+ lzma
+ libctemplate
+ libmaxminddb
+ ];
+
+ prePatch = ''
+ patchShebangs test-scripts/
+ '';
+
+ preConfigure = ''
+ ${stdenv.shell} autogen.sh
+ substituteInPlace configure \
+ --replace "/usr/bin/file" "${file}/bin/file"
+ '';
+ CXXFLAGS = "-std=c++11";
+ configureFlags = [
+ "--with-boost-libdir=${boost.out}/lib"
+ "--with-boost=${boost.dev}"
+ ];
+ enableParallelBuilding = true;
+
+ doCheck = true;
+ preCheck = ''
+ substituteInPlace test-scripts/check-live-pcap.sh \
+ --replace "/usr/sbin/tcpdump" "${tcpdump}/bin/tcpdump"
+ rm test-scripts/same-tshark-output.sh
+ ''; # TODO: https://github.com/dns-stats/compactor/issues/49 (failing test)
+
+ meta = with stdenv.lib; {
+ description = "Tools to capture DNS traffic and record it in C-DNS files";
+ homepage = "http://dns-stats.org/";
+ changelog = "https://github.com/dns-stats/${pname}/raw/${version}/ChangeLog.txt";
+ license = [ licenses.boost licenses.mpl20 licenses.openssl ];
+ maintainers = with maintainers; [ fdns ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/datovka/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/datovka/default.nix
new file mode 100644
index 000000000000..22bf982ec4cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/datovka/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, mkDerivation
+, fetchurl
+, libxml2
+, libisds
+, qmake
+, qtbase
+, qtsvg
+, pkg-config
+}:
+
+mkDerivation rec {
+ pname = "datovka";
+ version = "4.15.6";
+
+ src = fetchurl {
+ url = "https://secure.nic.cz/files/datove_schranky/${version}/${pname}-${version}.tar.xz";
+ sha256 = "1qs1yd9qqsf56jm9w6sffkqb2l8s3i9qgi2q8vd59ss19ym6yky2";
+ };
+
+ buildInputs = [ libisds qmake qtbase qtsvg libxml2 ];
+
+ nativeBuildInputs = [ pkg-config ];
+
+ meta = with stdenv.lib; {
+ description = "Client application for operating Czech government-provided Databox infomation system";
+ homepage = "https://www.datovka.cz/";
+ license = licenses.lgpl3;
+ maintainers = [ maintainers.mmahut ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/davmail/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/davmail/default.nix
new file mode 100644
index 000000000000..38a08aaf4c06
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/davmail/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, jre, glib, libXtst, gtk2, makeWrapper, unzip }:
+
+stdenv.mkDerivation rec {
+ pname = "davmail";
+ version = "5.4.0";
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-3135.zip";
+ sha256 = "05n2j5canh046744arvni6yfdsandvjkld93w3p7rg116jrh19gq";
+ };
+
+ sourceRoot = ".";
+
+ nativeBuildInputs = [ makeWrapper unzip ];
+
+ installPhase = ''
+ mkdir -p $out/share/davmail
+ cp -vR ./* $out/share/davmail
+ makeWrapper $out/share/davmail/davmail $out/bin/davmail \
+ --prefix PATH : ${jre}/bin \
+ --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ glib gtk2 libXtst ]}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://davmail.sourceforge.net/";
+ description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers";
+ maintainers = [ maintainers.hinton ];
+ platforms = platforms.all;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
new file mode 100644
index 000000000000..4d27ad5361ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "dnscontrol";
+ version = "3.4.2";
+
+ src = fetchFromGitHub {
+ owner = "StackExchange";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0bvvh68k2xjmmwafwdsijf3yb4ff9wbsl2ibad627l1y4js5615z";
+ };
+
+ vendorSha256 = "05nwfxqgkpbv5i0365wpsnnaq528a7srycd1dsdlssz1cy7i0d31";
+
+ subPackages = [ "." ];
+
+ meta = with lib; {
+ description = "Synchronize your DNS to multiple providers from a simple DSL";
+ homepage = "https://stackexchange.github.io/dnscontrol/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mmahut SuperSandro2000 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/drive/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/drive/default.nix
new file mode 100644
index 000000000000..ad1a0c9a533c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/drive/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "drive";
+ version = "0.3.8.1";
+
+ goPackagePath = "github.com/odeke-em/drive";
+ subPackages = [ "cmd/drive" ];
+
+ src = fetchFromGitHub {
+ owner = "odeke-em";
+ repo = "drive";
+ rev = "v${version}";
+ sha256 = "1b9cgc148rg5irg4jas10zv9i2km75x1zin25hld340dmpjcpi82";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ homepage = "https://github.com/odeke-em/drive";
+ description = "Google Drive client for the commandline";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/drive/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/drive/deps.nix
new file mode 100644
index 000000000000..ca132288bd69
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/drive/deps.nix
@@ -0,0 +1,192 @@
+# This file was generated by go2nix.
+[
+ {
+ goPackagePath = "cloud.google.com/go";
+ fetch = {
+ type = "git";
+ url = "https://code.googlesource.com/gocloud";
+ rev = "7450882a75c8d2600748666d1ed16e0a5afa532d";
+ sha256 = "1hl2lsf9m1imdszf5mww4h6qrcjfdjghwh6l2kqsy85d32vbkjgd";
+ };
+ }
+ {
+ goPackagePath = "github.com/boltdb/bolt";
+ fetch = {
+ type = "git";
+ url = "https://github.com/boltdb/bolt";
+ rev = "074dffcc83e9f421e261526d297cd93f22a34080";
+ sha256 = "1kkmsby74n9czqx4mvng9x1cvnm4qgjl3dp6b4mfmg2b00fwbqnv";
+ };
+ }
+ {
+ goPackagePath = "github.com/cheggaaa/pb";
+ fetch = {
+ type = "git";
+ url = "https://github.com/cheggaaa/pb";
+ rev = "ad4efe000aa550bb54918c06ebbadc0ff17687b9";
+ sha256 = "0w6dl2s0vzb64q85yfy1hd5z2fq2vzwygiwl65is6hwa4vkc7hi3";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8";
+ sha256 = "17lf13ndnai9a6dlmykqkdyzf1z04q7kffs0l7kvd78wpv3l6rm5";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/cache";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/cache";
+ rev = "baf8e436bc97557118cb0bf118ab8ac6aeeda381";
+ sha256 = "00nvrnp40w4m1ld89k3s3gwi9qcfjxwi8hnp62zggnvqqyc4fyz1";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/cli-spinner";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/cli-spinner";
+ rev = "610063bb4aeef25f7645b3e6080456655ec0fb33";
+ sha256 = "13wzs2qrxd72ah32ym0ppswhvyimjw5cqaq3q153y68vlvxd048c";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/command";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/command";
+ rev = "91ca5ec5e9a1bc2668b1ccbe0967e04a349e3561";
+ sha256 = "1ghckzr8h99ckagpmb15p61xazdjmf9mjmlym634hsr9vcj84v62";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/exponential-backoff";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/exponential-backoff";
+ rev = "96e25d36ae36ad09ac02cbfe653b44c4043a8e09";
+ sha256 = "1as21p2jj8xpahvdxqwsw2i1s3fll14dlc9j192iq7xl1ybwpqs6";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/extractor";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/extractor";
+ rev = "801861aedb854c7ac5e1329e9713023e9dc2b4d4";
+ sha256 = "036zmnqxy48h6mxiwywgxix2p4fqvl4svlmcp734ri2rbq3cmxs1";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/go-utils";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/go-utils";
+ rev = "d915395a7a46a9fe73d93f4daeff5953eeac5ef2";
+ sha256 = "0c1z4vmz69vxak8ldw4qjcgwia5ph969gj80az7a3824gia7zhbh";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/go-uuid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/go-uuid";
+ rev = "b211d769a9aaba5b2b8bdbab5de3c227116f3c39";
+ sha256 = "086l4xmwkjl5qcylcb5iwy9ksk9k5g43xwfbkcgvmhpz5mq3wmz2";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/log";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/log";
+ rev = "cad53c4565a0b0304577bd13f3862350bdc5f907";
+ sha256 = "059c933qjikxlvaywzpzljqnab19svymbv6x32pc7khw156fh48w";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/meddler";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/meddler";
+ rev = "d2b51d2b40e786ab5f810d85e65b96404cf33570";
+ sha256 = "0m0fqrn3kxy4swyk4ja1y42dn1i35rq9j85y11wb222qppy2342x";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/pretty-words";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/pretty-words";
+ rev = "9d37a7fcb4ae6f94b288d371938482994458cecb";
+ sha256 = "1466wjhrg9lhqmzil1vf8qj16fxk32b5kxlcccyw2x6dybqa6pkl";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/semalim";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/semalim";
+ rev = "9c88bf5f9156ed06ec5110a705d41b8580fd96f7";
+ sha256 = "0nq93dcl84cmlvg31rdk281ndlc2452zlh5s7i40hasi0z0kmn1k";
+ };
+ }
+ {
+ goPackagePath = "github.com/odeke-em/statos";
+ fetch = {
+ type = "git";
+ url = "https://github.com/odeke-em/statos";
+ rev = "6f7e4db337bc11fc46d9b0456a93836cbbfe5141";
+ sha256 = "1lijz3cxqxd78sl0nzfgvs675dg7q99jqwvhgisnk9n84ic4ffzj";
+ };
+ }
+ {
+ goPackagePath = "github.com/skratchdot/open-golang";
+ fetch = {
+ type = "git";
+ url = "https://github.com/skratchdot/open-golang";
+ rev = "75fb7ed4208cf72d323d7d02fd1a5964a7a9073c";
+ sha256 = "1b67imqbsdvg19vif1q1dfmapxy3v2anagacbql95fwnnw0v8jga";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "5dc8cb4b8a8eb076cbb5a06bc3b8682c15bdbbd3";
+ sha256 = "18c1vpqlj10z1id66hglgnv51d9gwphgsdvxgghc6mcm01f1g5xj";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "6acef71eb69611914f7a30939ea9f6e194c78172";
+ sha256 = "1fcsv50sbq0lpzrhx3m9jw51wa255fsbqjwsx9iszq4d0gysnnvc";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/oauth2";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/oauth2";
+ rev = "1e695b1c8febf17aad3bfa7bf0a819ef94b98ad5";
+ sha256 = "1sfgrc63jwslczkld7bsfipw1jm1rn06228dx0vc5gggd52155ys";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/api";
+ fetch = {
+ type = "git";
+ url = "https://code.googlesource.com/google-api-go-client";
+ rev = "eb84d1a029af1654777e7ba65c979085305c3e38";
+ sha256 = "0ldmzcx5lxa81lcr39djcvyhd0ls11jlswj5877rinq3505ayf5l";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/droopy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/droopy/default.nix
new file mode 100644
index 000000000000..63afa5ce76f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/droopy/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub, wrapPython, fetchpatch }:
+
+with lib;
+
+stdenv.mkDerivation {
+ pname = "droopy";
+ version = "20160830";
+
+ src = fetchFromGitHub {
+ owner = "stackp";
+ repo = "Droopy";
+ rev = "7a9c7bc46c4ff8b743755be86a9b29bd1a8ba1d9";
+ sha256 = "03i1arwyj9qpfyyvccl21lbpz3rnnp1hsadvc0b23nh1z2ng9sff";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/stackp/Droopy/pull/30.patch";
+ sha256 = "Y6jBraKvVQAiScbvLwezSKeWY3vaAbhaNXEGNaItigQ=";
+ })
+ ];
+
+ nativeBuildInputs = [ wrapPython ];
+
+ installPhase = ''
+ install -vD droopy $out/bin/droopy
+ install -vD -m 644 man/droopy.1 $out/share/man/man1/droopy.1
+ wrapPythonPrograms
+ '';
+
+ meta = {
+ description = "Mini Web server that let others upload files to your computer";
+ homepage = "http://stackp.online.fr/droopy";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.Profpatsch ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/cli.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
new file mode 100644
index 000000000000..5ff47f4859aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, substituteAll
+, pkgconfig
+, fetchurl
+, python3
+, dropbox
+, gtk3
+, gnome3
+, gdk-pixbuf
+, gobject-introspection
+}:
+
+let
+ version = "2020.03.04";
+ dropboxd = "${dropbox}/bin/dropbox";
+in
+stdenv.mkDerivation {
+ pname = "dropbox-cli";
+ inherit version;
+
+ outputs = [ "out" "nautilusExtension" ];
+
+ src = fetchurl {
+ url = "https://linux.dropboxstatic.com/packages/nautilus-dropbox-${version}.tar.bz2";
+ sha256 = "1jjc835n2j61d23kvygdb4n4jsrw33r9mbwxrm4fqin6x01l2w7k";
+ };
+
+ strictDeps = true;
+
+ patches = [
+ (substituteAll {
+ src = ./fix-cli-paths.patch;
+ inherit dropboxd;
+ })
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ gobject-introspection
+ gdk-pixbuf
+ # only for build, the install command also wants to use GTK through introspection
+ # but we are using Nix for installation so we will not need that.
+ (python3.withPackages (ps: with ps; [
+ docutils
+ pygobject3
+ ]))
+ ];
+
+ buildInputs = [
+ python3
+ gtk3
+ gnome3.nautilus
+ ];
+
+ configureFlags = [
+ "--with-nautilus-extension-dir=${placeholder "nautilusExtension"}/lib/nautilus/extensions-3.0"
+ ];
+
+ makeFlags = [
+ "EMBLEM_DIR=${placeholder "nautilusExtension"}/share/nautilus-dropbox/emblems"
+ ];
+
+ meta = {
+ homepage = "https://www.dropbox.com";
+ description = "Command line client for the dropbox daemon";
+ license = stdenv.lib.licenses.gpl3Plus;
+ # NOTE: Dropbox itself only works on linux, so this is ok.
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/default.nix
new file mode 100644
index 000000000000..845d0f2779c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, lib, buildFHSUserEnv, writeScript, makeDesktopItem }:
+
+let platforms = [ "i686-linux" "x86_64-linux" ]; in
+
+assert lib.elem stdenv.hostPlatform.system platforms;
+
+# Dropbox client to bootstrap installation.
+# The client is self-updating, so the actual version may be newer.
+let
+ version = "111.3.447";
+
+ arch = {
+ x86_64-linux = "x86_64";
+ i686-linux = "x86";
+ }.${stdenv.hostPlatform.system};
+
+ installer = "https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.${arch}-${version}.tar.gz";
+in
+
+let
+ desktopItem = makeDesktopItem {
+ name = "dropbox";
+ exec = "dropbox";
+ comment = "Sync your files across computers and to the web";
+ desktopName = "Dropbox";
+ genericName = "File Synchronizer";
+ categories = "Network;FileTransfer;";
+ startupNotify = "false";
+ };
+in
+
+buildFHSUserEnv {
+ name = "dropbox";
+
+ targetPkgs = pkgs: with pkgs; with xorg; [
+ libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender
+ libXxf86vm libxcb xkeyboardconfig
+ curl dbus firefox-bin fontconfig freetype gcc glib gnutar libxml2 libxslt
+ procps zlib mesa libxshmfence libpthreadstubs libappindicator
+ ];
+
+ extraInstallCommands = ''
+ mkdir -p "$out/share/applications"
+ cp "${desktopItem}/share/applications/"* $out/share/applications
+ '';
+
+ runScript = writeScript "install-and-start-dropbox" ''
+ export BROWSER=firefox
+
+ set -e
+
+ do_install=
+ if ! [ -d "$HOME/.dropbox-dist" ]; then
+ do_install=1
+ else
+ installed_version=$(cat "$HOME/.dropbox-dist/VERSION")
+ latest_version=$(printf "${version}\n$installed_version\n" | sort -rV | head -n 1)
+ if [ "x$installed_version" != "x$latest_version" ]; then
+ do_install=1
+ fi
+ fi
+
+ if [ -n "$do_install" ]; then
+ installer=$(mktemp)
+ # Dropbox is not installed.
+ # Download and unpack the client. If a newer version is available,
+ # the client will update itself when run.
+ curl '${installer}' >"$installer"
+ pkill dropbox || true
+ rm -fr "$HOME/.dropbox-dist"
+ tar -C "$HOME" -x -z -f "$installer"
+ rm "$installer"
+ fi
+
+ exec "$HOME/.dropbox-dist/dropboxd" "$@"
+ '';
+
+ meta = with lib; {
+ description = "Online stored folders (daemon version)";
+ homepage = "http://www.dropbox.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ ttuegel ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch
new file mode 100644
index 000000000000..84cd8014e1e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch
@@ -0,0 +1,11 @@
+--- a/dropbox.in
++++ b/dropbox.in
+@@ -71,7 +71,7 @@
+
+ PARENT_DIR = os.path.expanduser("~")
+ DROPBOX_DIST_PATH = "%s/.dropbox-dist" % PARENT_DIR
+-DROPBOXD_PATH = os.path.join(DROPBOX_DIST_PATH, "dropboxd")
++DROPBOXD_PATH = "@dropboxd@"
+ DESKTOP_FILE = "@DESKTOP_FILE_DIR@/dropbox.desktop"
+
+ enc = locale.getpreferredencoding()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/dsvpn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/dsvpn/default.nix
new file mode 100644
index 000000000000..04d3887bf4ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/dsvpn/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "dsvpn";
+ version = "0.1.4";
+
+ src = fetchFromGitHub {
+ owner = "jedisct1";
+ repo = pname;
+ rev = version;
+ sha256 = "1gbj3slwmq990qxsbsaxasi98alnnzv3adp6f8w8sxd4gi6qxhdh";
+ };
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 -t $out/bin dsvpn
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Dead Simple VPN";
+ homepage = "https://github.com/jedisct1/dsvpn";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
new file mode 100644
index 000000000000..60a7e5b2fb21
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "cfdyndns";
+ version = "0.0.3";
+ src = fetchFromGitHub {
+ owner = "colemickens";
+ repo = "cfdyndns";
+ rev = "v${version}";
+ sha256 = "1fba0w2979dmc2wyggqx4fj52rrl1s2vpjk6mkj1811a848l1hdi";
+ };
+
+ cargoSha256 = "04ryin24z3pfxjxy4smngy66xs7k85g6gdzsl77cij8ifb29im99";
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ openssl ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -p $releaseDir/cfdyndns $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "CloudFlare Dynamic DNS Client";
+ homepage = "https://github.com/colemickens/cfdyndns";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with maintainers; [ colemickens ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix
new file mode 100644
index 000000000000..65d463057416
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "dyndnsc";
+ version = "0.5.1";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ hash = "sha256-Sy6U0XhIQ9mPmznmWKqoyqE34vaE84fwlivouaF7Dd0=";
+ };
+
+ postPatch = ''
+ substituteInPlace setup.py --replace "bottle==" "bottle>="
+ '';
+
+ nativeBuildInputs = with python3Packages; [ pytestrunner ];
+ propagatedBuildInputs = with python3Packages; [
+ daemonocle
+ dnspython
+ netifaces
+ requests
+ setuptools
+ ];
+ checkInputs = with python3Packages; [ bottle pytestCheckHook ];
+
+ disabledTests = [
+ # dnswanip connects to an external server to discover the
+ # machine's IP address.
+ "dnswanip"
+ ] ++ lib.optionals stdenv.isDarwin [
+ # The tests that spawn a server using Bottle cannot be run on
+ # macOS or Windows as the default multiprocessing start method
+ # on those platforms is 'spawn', which requires the code to be
+ # run to be picklable, which this code isn't.
+ # Additionaly, other start methods are unsafe and prone to failure
+ # on macOS; see https://bugs.python.org/issue33725.
+ "BottleServer"
+ ];
+ # Allow tests that bind or connect to localhost on macOS.
+ __darwinAllowLocalNetworking = true;
+
+ meta = with lib; {
+ description = "Dynamic DNS update client with support for multiple protocols";
+ longDescription = ''
+ Dyndnsc is a command line client for sending updates to Dynamic
+ DNS (DDNS, DynDNS) services. It supports multiple protocols and
+ services, and it has native support for IPv6. The configuration
+ file allows using foreign, but compatible services. Dyndnsc
+ ships many different IP detection mechanisms, support for
+ configuring multiple services in one place and it has a daemon
+ mode for running unattended. It has a plugin system to provide
+ external notification services.
+ '';
+ homepage = "https://github.com/infothrill/python-dyndnsc";
+ license = licenses.mit;
+ maintainers = with maintainers; [ AluisioASG ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix
new file mode 100644
index 000000000000..76d6d39baf29
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, fetchpatch }:
+
+stdenv.mkDerivation {
+ version = "3.3.2";
+ pname = "enhanced-ctorrent-dhn";
+
+ src = fetchurl {
+ url = "http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh3.3.2.tar.gz";
+ sha256 = "0qs8waqwllk56i3yy3zhncy7nsnhmf09a494p5siz4vm2k4ncwy8";
+ };
+
+ # These patches come from Debian and fix CVE-2009-1759.
+ patches = [
+ (fetchpatch {
+ url = "https://sources.debian.org/data/main/c/ctorrent/1.3.4.dnh3.3.2-5/debian/patches/cve-security-fix.diff";
+ sha256 = "1qkzzm8sfspbcs10azmmif4qcr7pr8r38dsa2py84lsjm1yi3kls";
+ })
+ (fetchpatch {
+ url = "https://sources.debian.org/data/main/c/ctorrent/1.3.4.dnh3.3.2-5/debian/patches/FTBFS-fix.diff";
+ sha256 = "1m3zh96xwqjjzsbg62f7kx0miams58nys1f484qhdn870b5x9p06";
+ })
+ ];
+
+ meta = {
+ description = "BitTorrent client written in C++";
+ longDescription = ''
+ CTorrent, a BitTorrent client implemented in C++, with bugfixes and
+ performance enhancements.
+ '';
+ homepage = "http://www.rahul.net/dholmes/ctorrent/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/errbot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/errbot/default.nix
new file mode 100644
index 000000000000..642677a9addc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/errbot/default.nix
@@ -0,0 +1,76 @@
+{ lib, fetchFromGitHub, python, glibcLocales }:
+
+let
+ py = python.override {
+ packageOverrides = self: super: {
+ # errbot requires markdown<3, and is not compatible with it either.
+ markdown = super.markdown.overridePythonAttrs (oldAttrs: rec {
+ version = "2.6.11";
+ src = super.fetchPypi {
+ pname = "Markdown";
+ inherit version;
+ sha256 = "108g80ryzykh8bj0i7jfp71510wrcixdi771lf2asyghgyf8cmm8";
+ };
+ });
+
+ # errbot requires slackclient 1.x, see https://github.com/errbotio/errbot/pull/1367
+ # latest 1.x release would be 1.3.2, but it requires an older websocket_client than the one in nixpkgs
+ # so let's just vendor the known-working version until they've migrated to 2.x.
+ slackclient = super.slackclient.overridePythonAttrs (oldAttrs: rec {
+ version = "1.2.1";
+ pname = "slackclient";
+ src = fetchFromGitHub {
+ owner = "slackapi";
+ repo = "python-slackclient";
+ rev = version;
+ sha256 = "073fwf6fm2sqdp5ms3vm1v3ljh0pldi69k048404rp6iy3cfwkp0";
+ };
+
+ propagatedBuildInputs = with self; [ websocket_client requests six ];
+
+ checkInputs = with self; [ pytest codecov coverage mock pytestcov pytest-mock responses flake8 ];
+ # test_server.py fails because it needs connection (I think);
+ checkPhase = ''
+ py.test --cov-report= --cov=slackclient tests --ignore=tests/test_server.py
+ '';
+ });
+ };
+ };
+
+in
+py.pkgs.buildPythonApplication rec {
+ pname = "errbot";
+ version = "6.1.1";
+
+ src = fetchFromGitHub {
+ owner = "errbotio";
+ repo = "errbot";
+ rev = version;
+ sha256 = "1s4dl1za5imwsv6j3y7m47dy91hmqd5n221kkqm9ni4mpzgpffz0";
+ };
+
+ LC_ALL = "en_US.utf8";
+
+ buildInputs = [ glibcLocales ];
+ propagatedBuildInputs = with py.pkgs; [
+ webtest requests jinja2 flask dulwich
+ pyopenssl colorlog markdown ansi pygments
+ daemonize pygments-markdown-lexer telegram irc slackclient
+ sleekxmpp pyasn1 pyasn1-modules hypchat
+ ];
+
+ checkInputs = with py.pkgs; [ mock pytest ];
+ # avoid tests that do network calls
+ checkPhase = ''
+ pytest tests -k 'not backup and not broken_plugin and not plugin_cycle'
+ '';
+
+ meta = with lib; {
+ description = "Chatbot designed to be simple to extend with plugins written in Python";
+ homepage = "http://errbot.io/";
+ maintainers = with maintainers; [ fpletz globin ];
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ # flaky on darwin, "RuntimeError: can't start new thread"
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/esniper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/esniper/default.nix
new file mode 100644
index 000000000000..0282483df8dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/esniper/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, openssl, curl, coreutils, gawk, bash, which }:
+
+stdenv.mkDerivation {
+ name = "esniper-2.35.0-21-g6379846";
+
+ src = fetchgit {
+ url = "https://git.code.sf.net/p/esniper/git";
+ rev = "637984623984ef36782d52d8968df7fae7bbb0a7";
+ sha256 = "1md3fzs0k88f6mgvrj1yrh96mn0qlca2p6vfqj6dnpyb8pjjwp8w";
+ };
+
+ buildInputs = [ openssl curl ];
+
+ # Add support for CURL_CA_BUNDLE variable.
+ # Fix <https://sourceforge.net/p/esniper/bugs/648/>.
+ patches = [ ./find-ca-bundle.patch ];
+
+ postInstall = ''
+ sed <"frontends/snipe" >"$out/bin/snipe" \
+ -e "2i export PATH=\"$out/bin:${stdenv.lib.makeBinPath [ coreutils gawk bash which ]}:\$PATH\""
+ chmod 555 "$out/bin/snipe"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple, lightweight tool for sniping eBay auctions";
+ homepage = "http://esniper.sourceforge.net";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ lovek323 peti ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch
new file mode 100644
index 000000000000..e4df272a0c9a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch
@@ -0,0 +1,26 @@
+diff -ubr '--exclude=*.o' esniper-2-27-0-orig/http.c esniper-2-27-0-patched/http.c
+--- esniper-2-27-0-orig/http.c 2012-02-06 22:04:06.000000000 +0100
++++ esniper-2-27-0-patched/http.c 2012-07-27 10:54:20.893054646 +0200
+@@ -200,6 +200,9 @@
+ int
+ initCurlStuff(void)
+ {
++ /* Path to OpenSSL bundle file. */
++ const char *ssl_capath=NULL;
++
+ /* list for custom headers */
+ struct curl_slist *slist=NULL;
+
+@@ -241,6 +244,12 @@
+ if ((curlrc = curl_easy_setopt(easyhandle, CURLOPT_COOKIEFILE, "")))
+ return initCurlStuffFailed();
+
++ /* If the environment variable CURL_CA_BUNDLE is set, pass through its
++ * contents to curl. */
++ if ((ssl_capath = getenv("CURL_CA_BUNDLE")))
++ if ((curlrc = curl_easy_setopt(easyhandle, CURLOPT_CAINFO, ssl_capath)))
++ return initCurlStuffFailed();
++
+ slist = curl_slist_append(slist, "Accept: text/*");
+ slist = curl_slist_append(slist, "Accept-Language: en");
+ slist = curl_slist_append(slist, "Accept-Charset: iso-8859-1,*,utf-8");
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix
new file mode 100644
index 000000000000..80106085e1b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, python3Packages, readline, ncurses, canto-daemon }:
+
+python3Packages.buildPythonApplication rec {
+ version = "0.9.9";
+ pname = "canto-curses";
+
+ src = fetchFromGitHub {
+ owner = "themoken";
+ repo = "canto-curses";
+ rev = "v${version}";
+ sha256 = "1vzb9n1j4gxigzll6654ln79lzbrrm6yy0lyazd9kldyl349b8sr";
+ };
+
+ buildInputs = [ readline ncurses canto-daemon ];
+ propagatedBuildInputs = [ canto-daemon ];
+
+ meta = {
+ description = "An ncurses-based console Atom/RSS feed reader";
+ longDescription = ''
+ Canto is an Atom/RSS feed reader for the console that is meant to be
+ quick, concise, and colorful. It's meant to allow you to crank through
+ feeds like you've never cranked before by providing a minimal, yet
+ information packed interface. No navigating menus. No dense blocks of
+ unreadable white text. An interface with almost infinite customization
+ and extensibility using the excellent Python programming language.
+ '';
+ homepage = "https://codezen.org/canto-ng/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix
new file mode 100644
index 000000000000..b8279f22de4d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3Packages, }:
+
+python3Packages.buildPythonApplication rec {
+ version = "0.9.7";
+ pname = "canto-daemon";
+
+ src = fetchFromGitHub {
+ owner = "themoken";
+ repo = "canto-next";
+ rev = "v${version}";
+ sha256 = "1si53r8cd4avfc56r315zyrghkppnjd6n125z1agfv59i7hdmk3n";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ feedparser ];
+
+ meta = {
+ description = "Daemon for the canto Atom/RSS feed reader";
+ longDescription = ''
+ Canto is an Atom/RSS feed reader for the console that is meant to be
+ quick, concise, and colorful. It's meant to allow you to crank through
+ feeds like you've never cranked before by providing a minimal, yet
+ information packed interface. No navigating menus. No dense blocks of
+ unreadable white text. An interface with almost infinite customization
+ and extensibility using the excellent Python programming language.
+ '';
+ homepage = "https://codezen.org/canto-ng/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix
new file mode 100644
index 000000000000..33f8d8ca2383
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenv, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, glib
+, ronn
+, curl
+, id3lib
+, libxml2
+, glibcLocales
+}:
+
+stdenv.mkDerivation rec {
+ pname = "castget";
+ version = "2.0.0";
+
+ src = fetchFromGitHub {
+ owner = "mlj";
+ repo = pname;
+ # Upstream uses `_` instead of `.` for the version
+ rev = "rel_${lib.replaceStrings ["."] ["_"] version}";
+ sha256 = "1129x64rw587q3sdpa3lrgs0gni5f0siwbvmfz8ya4zkbhgi2ik7";
+ };
+
+ # without this, the build fails because of an encoding issue with the manual page.
+ # https://stackoverflow.com/a/17031697/4935114
+ # This requires glibcLocales to be present in the build so it will have an impact.
+ # See https://github.com/NixOS/nixpkgs/issues/8398
+ preBuild = ''
+ export LC_ALL="en_US.UTF-8";
+ '';
+
+ buildInputs = [ glib curl id3lib libxml2 ];
+ nativeBuildInputs = [
+ ronn
+ # See comment on locale above
+ glibcLocales
+ autoreconfHook
+ pkgconfig
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A simple, command-line based RSS enclosure downloader";
+ longDescription = ''
+ castget is a simple, command-line based RSS enclosure downloader. It is
+ primarily intended for automatic, unattended downloading of podcasts.
+ '';
+ homepage = "https://castget.johndal.com/";
+ maintainers = with maintainers; [ doronbehar ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
new file mode 100644
index 000000000000..d050b75ac30a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkgconfig, vala, gettext, python3
+, appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts
+, gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas, pantheon
+, curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2
+}:
+
+stdenv.mkDerivation rec {
+ pname = "feedreader";
+ version = "2.11.0";
+
+ src = fetchFromGitHub {
+ owner = "jangernert";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1agy1nkpkdsy2kbrrc8nrwphj5n86rikjjvwkr8klbf88mzl6civ";
+ };
+
+ nativeBuildInputs = [
+ meson ninja pkgconfig vala gettext appstream-glib desktop-file-utils
+ libxml2 python3 wrapGAppsHook
+ ];
+
+ buildInputs = [
+ curl glib json-glib libnotify libsecret sqlite gumbo gtk3
+ libgee libpeas gnome3.libsoup librest webkitgtk gsettings-desktop-schemas
+ gnome-online-accounts
+ ] ++ (with gst_all_1; [
+ gstreamer gst-plugins-base gst-plugins-good
+ ]);
+
+ postPatch = ''
+ patchShebangs build-aux/meson_post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "A modern desktop application designed to complement existing web-based RSS accounts";
+ homepage = "https://jangernert.github.io/FeedReader/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ edwtjo worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
new file mode 100644
index 000000000000..3b8f6e0a0562
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, rustPlatform, fetchFromGitHub, stfl, sqlite, curl, gettext, pkg-config, libxml2, json_c, ncurses
+, asciidoctor, libiconv, Security, Foundation, makeWrapper }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "newsboat";
+ version = "2.21";
+
+ src = fetchFromGitHub {
+ owner = "newsboat";
+ repo = "newsboat";
+ rev = "r${version}";
+ sha256 = "0ignfmh5193bigvk9f057r0r4yaxymxv2afycn2b98w05gljccb6";
+ };
+
+ cargoSha256 = "16652i2hbs6d3fam2hdlc947i5nrb3na186zfcb4nfh7hnb7lh8g";
+
+ postPatch = ''
+ substituteInPlace Makefile --replace "|| true" ""
+ ''
+ # TODO: Check if that's still needed
+ + stdenv.lib.optionalString stdenv.isDarwin ''
+ # Allow other ncurses versions on Darwin
+ substituteInPlace config.sh \
+ --replace "ncurses5.4" "ncurses"
+ ''
+ ;
+
+ nativeBuildInputs = [
+ pkg-config
+ asciidoctor
+ gettext
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [ makeWrapper ncurses ];
+
+ buildInputs = [ stfl sqlite curl libxml2 json_c ncurses ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ Security Foundation libiconv gettext ];
+
+ postBuild = ''
+ make prefix="$out"
+ '';
+
+ # TODO: Check if that's still needed
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin " -Wno-error=format-security";
+
+ # https://github.com/NixOS/nixpkgs/pull/98471#issuecomment-703100014 . We set
+ # these for all platforms, since upstream's gettext crate behavior might
+ # change in the future.
+ GETTEXT_LIB_DIR = "${stdenv.lib.getLib gettext}/lib";
+ GETTEXT_INCLUDE_DIR = "${stdenv.lib.getDev gettext}/include";
+ GETTEXT_BIN_DIR = "${stdenv.lib.getBin gettext}/bin";
+
+ doCheck = true;
+
+ preCheck = ''
+ make test
+ '';
+
+ postInstall = ''
+ make prefix="$out" install
+ cp -r contrib $out
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ for prog in $out/bin/*; do
+ wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${stfl}/lib"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://newsboat.org/";
+ description = "A fork of Newsbeuter, an RSS/Atom feed reader for the text console";
+ maintainers = with maintainers; [ dotlambda nicknovitski ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
new file mode 100644
index 000000000000..441a80fc071b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -0,0 +1,88 @@
+{ lib
+, rustPlatform
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+, gdk-pixbuf
+, glib
+, gtk3
+, libhandy_0
+, openssl
+, sqlite
+, webkitgtk
+, glib-networking
+, librsvg
+, gst_all_1
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "newsflash";
+ version = "1.0.5";
+
+ src = fetchFromGitLab {
+ owner = "news-flash";
+ repo = "news_flash_gtk";
+ rev = version;
+ sha256 = "0kh1xqvxfz58gnrl8av0zkig9vcgmx9iaxw5p6gdm8a7gv18nvp3";
+ };
+
+ cargoSha256 = "059sppidbxzjk8lmjq41d5qbymp9j9v2qr0jxd7xg9avr0klwc2s";
+
+ patches = [
+ ./no-post-install.patch
+ ];
+
+ postPatch = ''
+ chmod +x build-aux/cargo.sh
+ patchShebangs .
+ '';
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ wrapGAppsHook
+
+ # Provides setup hook to fix "Unrecognized image file format"
+ gdk-pixbuf
+
+ # Provides glib-compile-resources to compile gresources
+ glib
+ ];
+
+ buildInputs = [
+ gtk3
+ libhandy_0
+ openssl
+ sqlite
+ webkitgtk
+
+ # TLS support for loading external content in webkitgtk WebView
+ glib-networking
+
+ # SVG support for gdk-pixbuf
+ librsvg
+ ] ++ (with gst_all_1; [
+ # Audio & video support for webkitgtk WebView
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ ]);
+
+ # Unset default rust phases to use meson & ninja instead
+ configurePhase = null;
+ buildPhase = null;
+ checkPhase = null;
+ installPhase = null;
+ installCheckPhase = null;
+
+ meta = with lib; {
+ description = "A modern feed reader designed for the GNOME desktop";
+ homepage = "https://gitlab.com/news-flash/news_flash_gtk";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ metadark ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch
new file mode 100644
index 000000000000..cfdec206e77b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch
@@ -0,0 +1,10 @@
+diff --git a/meson.build b/meson.build
+index 53f911c..361a233 100644
+--- a/meson.build
++++ b/meson.build
+@@ -61,5 +61,3 @@ meson.add_dist_script(
+ meson.source_root(),
+ join_paths(meson.build_root(), 'meson-dist', meson.project_name() + '-' + newsflash_version)
+ )
+-
+-meson.add_install_script('build-aux/meson_post_install.py')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix
new file mode 100644
index 000000000000..9fdee56b99b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+ pname = "rawdog";
+ version = "2.23";
+
+ src = fetchurl {
+ url = "https://offog.org/files/${pname}-${version}.tar.gz";
+ sha256 = "18nyg19mwxyqdnykplkqmzb4n27vvrhvp639zai8f81gg9vdbsjp";
+ };
+
+ propagatedBuildInputs = with python2Packages; [ feedparser ];
+
+ namePrefix = "";
+
+ meta = with stdenv.lib; {
+ homepage = "https://offog.org/code/rawdog/";
+ description = "RSS Aggregator Without Delusions Of Grandeur";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
new file mode 100644
index 000000000000..0a28f9e074c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -0,0 +1,48 @@
+{ pythonPackages, fetchurl, lib, nixosTests }:
+
+with pythonPackages;
+
+buildPythonApplication rec {
+ pname = "rss2email";
+ version = "3.12.2";
+
+ propagatedBuildInputs = [ feedparser html2text ];
+ checkInputs = [ beautifulsoup4 ];
+
+ src = fetchurl {
+ url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz";
+ sha256 = "12w6x80wsw6xm17fxyymnl45aavsagg932zw621wcjz154vjghjr";
+ };
+
+ outputs = [ "out" "man" "doc" ];
+
+ postPatch = ''
+ # sendmail executable is called from PATH instead of sbin by default
+ sed -e 's|/usr/sbin/sendmail|sendmail|' \
+ -i rss2email/config.py
+ '';
+
+ postInstall = ''
+ install -Dm 644 r2e.1 $man/share/man/man1/r2e.1
+ # an alias for better finding the manpage
+ ln -s -T r2e.1 $man/share/man/man1/rss2email.1
+
+ # copy documentation
+ mkdir -p $doc/share/doc/rss2email
+ cp AUTHORS COPYING CHANGELOG README.rst $doc/share/doc/rss2email/
+ '';
+
+ postCheck = ''
+ env PATH=$out/bin:$PATH python ./test/test.py
+ '';
+
+ meta = with lib; {
+ description = "A tool that converts RSS/Atom newsfeeds to email";
+ homepage = "https://pypi.python.org/pypi/rss2email";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ jb55 Profpatsch ekleog ];
+ };
+ passthru.tests = {
+ smoke-test = nixosTests.rss2email;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
new file mode 100644
index 000000000000..13dc38aaba93
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, qmake, qtwebengine, qttools, wrapGAppsHook, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "rssguard";
+ version = "3.8.3";
+
+ src = fetchFromGitHub {
+ owner = "martinrotter";
+ repo = pname;
+ rev = version;
+ sha256 = "1704nj77h6s88l4by3wxl5l770gaig90mv3ix80r00nh8mhzq44q";
+ };
+
+ buildInputs = [ qtwebengine qttools ];
+ nativeBuildInputs = [ qmake wrapGAppsHook wrapQtAppsHook ];
+ qmakeFlags = [ "CONFIG+=release" ];
+
+ meta = with stdenv.lib; {
+ description = "Simple RSS/Atom feed reader with online synchronization";
+ longDescription = ''
+ RSS Guard is a simple, light and easy-to-use RSS/ATOM feed aggregator
+ developed using Qt framework and with online feed synchronization support
+ for ownCloud/Nextcloud.
+ '';
+ homepage = "https://github.com/martinrotter/rssguard";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jluttine ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix
new file mode 100644
index 000000000000..66228efe8952
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, cppcheck, libmrss, libiconv }:
+
+stdenv.mkDerivation {
+ pname = "rsstail";
+ version = "2.1";
+
+ src = fetchFromGitHub {
+ sha256 = "12p69i3g1fwlw0bds9jqsdmzkid3k5a41w31d227i7vm12wcvjf6";
+ rev = "6f2436185372b3f945a4989406c4b6a934fe8a95";
+ repo = "rsstail";
+ owner = "flok99";
+ };
+
+ buildInputs = [ libmrss ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ];
+ checkInputs = [ cppcheck ];
+
+ postPatch = ''
+ substituteInPlace Makefile --replace -liconv_hook ""
+ '';
+
+ makeFlags = [ "prefix=$(out)" ];
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Monitor RSS feeds for new entries";
+ longDescription = ''
+ RSSTail is more or less an RSS reader: it monitors an RSS feed and if it
+ detects a new entry it'll emit only that new entry.
+ '';
+ homepage = "http://www.vanheusden.com/rsstail/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/firehol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/firehol/default.nix
new file mode 100644
index 000000000000..de523b14ba64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/firehol/default.nix
@@ -0,0 +1,108 @@
+{ stdenv, lib, fetchFromGitHub, pkgs
+, autoconf, automake, curl, iprange, iproute, ipset, iptables, iputils
+, kmod, nettools, procps, tcpdump, traceroute, util-linux, whois
+
+# If true, just install FireQOS without FireHOL
+, onlyQOS ? false
+}:
+
+stdenv.mkDerivation rec {
+ pname = "firehol";
+ version = "3.1.6";
+
+ src = fetchFromGitHub {
+ owner = "firehol";
+ repo = "firehol";
+ rev = "v${version}";
+ sha256 = "0l7sjpsb300kqv21hawd26a7jszlmafplacpn5lfj64m4yip93fd";
+ };
+
+ patches = [
+ # configure tries to determine if `ping6` or the newer, combined
+ # `ping` is installed by using `ping -6` which would fail.
+ (pkgs.writeText "firehol-ping6.patch"
+ ''
+ --- a/m4/ax_check_ping_ipv6.m4
+ +++ b/m4/ax_check_ping_ipv6.m4
+ @@ -42,16 +42,16 @@ AC_DEFUN([AX_CHECK_PING_IPV6],
+
+ AC_CACHE_CHECK([whether ]PING[ has working -6 option], [ac_cv_ping_6_opt],
+ [
+ - ac_cv_ping_6_opt=no
+ - if test -n "$PING"; then
+ - echo "Trying '$PING -6 -c 1 ::1'" >&AS_MESSAGE_LOG_FD
+ - $PING -6 -c 1 ::1 > conftest.out 2>&1
+ - if test "$?" = 0; then
+ - ac_cv_ping_6_opt=yes
+ - fi
+ - cat conftest.out >&AS_MESSAGE_LOG_FD
+ - rm -f conftest.out
+ - fi
+ + ac_cv_ping_6_opt=yes
+ + #if test -n "$PING"; then
+ + # echo "Trying '$PING -6 -c 1 ::1'" >&AS_MESSAGE_LOG_FD
+ + # $PING -6 -c 1 ::1 > conftest.out 2>&1
+ + # if test "$?" = 0; then
+ + # ac_cv_ping_6_opt=yes
+ + # fi
+ + # cat conftest.out >&AS_MESSAGE_LOG_FD
+ + # rm -f conftest.out
+ + #fi
+ ])
+
+ AS_IF([test "x$ac_cv_ping_6_opt" = "xyes"],[
+ '')
+
+ # put firehol config files in /etc/firehol (not $out/etc/firehol)
+ # to avoid error on startup, see #35114
+ (pkgs.writeText "firehol-sysconfdir.patch"
+ ''
+ --- a/sbin/install.config.in.in
+ +++ b/sbin/install.config.in.in
+ @@ -4 +4 @@
+ -SYSCONFDIR="@sysconfdir_POST@"
+ +SYSCONFDIR="/etc"
+ '')
+
+ # we must quote "$UNAME_CMD", or the dash in /nix/store/...-coreutils-.../bin/uname
+ # will be interpreted as IFS -> error. this might be considered an upstream bug
+ # but only appears when there are dashes in the command path
+ (pkgs.writeText "firehol-uname-command.patch"
+ ''
+ --- a/sbin/firehol
+ +++ b/sbin/firehol
+ @@ -10295,7 +10295,7 @@
+ kmaj=$1
+ kmin=$2
+
+ - set -- $($UNAME_CMD -r)
+ + set -- $("$UNAME_CMD" -r)
+ eval $kmaj=\$1 $kmin=\$2
+ }
+ kernel_maj_min KERNELMAJ KERNELMIN
+ '')
+ ];
+
+ nativeBuildInputs = [ autoconf automake ];
+ buildInputs = [
+ curl iprange iproute ipset iptables iputils kmod
+ nettools procps tcpdump traceroute util-linux whois
+ ];
+
+ preConfigure = "./autogen.sh";
+ configureFlags = [ "--localstatedir=/var"
+ "--disable-doc" "--disable-man" ] ++
+ lib.optional onlyQOS [ "--disable-firehol" ];
+
+ meta = with stdenv.lib; {
+ description = "A firewall for humans";
+ longDescription = ''
+ FireHOL, an iptables stateful packet filtering firewall for humans!
+ FireQOS, a TC based bandwidth shaper for humans!
+ '';
+ homepage = "https://firehol.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ oxzi ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/firehol/iprange.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
new file mode 100644
index 000000000000..75b4d5b40a6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "iprange";
+ version = "1.0.4";
+
+ src = fetchurl {
+ url = "https://github.com/firehol/iprange/releases/download/v${version}/iprange-${version}.tar.xz";
+ sha256 = "0rymw4ydn09dng34q4g5111706fyppzs2gd5br76frgvfj4x2f71";
+ };
+
+ meta = with stdenv.lib; {
+ description = "manage IP ranges";
+ homepage = "https://github.com/firehol/iprange";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ oxzi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/flent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/flent/default.nix
new file mode 100644
index 000000000000..319630ceff35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/flent/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, buildPythonApplication, fetchPypi, matplotlib, procps, pyqt5, python
+, pythonPackages, qt5, sphinx, xvfb_run }:
+
+buildPythonApplication rec {
+ pname = "flent";
+ version = "1.3.2";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1k265xxxjld6q38m9lsgy7p0j70qp9a49vh9zg0njbi4i21lxq23";
+ };
+
+ buildInputs = [ sphinx ];
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+ propagatedBuildInputs = [ matplotlib procps pyqt5 ];
+ checkInputs = [ procps pythonPackages.mock pyqt5 xvfb_run ];
+
+ checkPhase = ''
+ cat >test-runner <<EOF
+ #!/bin/sh
+
+ ${python.pythonForBuild.interpreter} nix_run_setup test
+ EOF
+ chmod +x test-runner
+ wrapQtApp test-runner --prefix PYTHONPATH : $PYTHONPATH
+ xvfb-run -s '-screen 0 800x600x24' ./test-runner
+ '';
+
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The FLExible Network Tester";
+ homepage = "https://flent.org";
+ license = licenses.gpl3;
+
+ maintainers = [ maintainers.mmlb ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/flent/http-getter.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/flent/http-getter.nix
new file mode 100644
index 000000000000..a38ac8511c23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/flent/http-getter.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake
+, curl, pkgconfig }:
+
+stdenv.mkDerivation {
+ pname = "http-getter";
+ version = "unstable-2018-06-06";
+
+ src = fetchFromGitHub {
+ owner = "tohojo";
+ repo = "http-getter";
+ rev = "79bcccce721825a745f089d0c347bbaf2e6e12f4";
+ sha256 = "1zxk52s1h5qx62idil237zdpj8agrry0w1xwkfx05wvv9sw4ld35";
+ };
+
+ buildInputs = [ cmake pkgconfig curl ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/tohojo/http-getter";
+ description = "Simple getter for HTTP URLs using cURL";
+ platforms = platforms.unix;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/flexget/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/flexget/default.nix
new file mode 100644
index 000000000000..d6a253efdaac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/flexget/default.nix
@@ -0,0 +1,65 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "FlexGet";
+ version = "3.1.71";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "4c25d8733c8eb54c7d3ce60a17d8020049fb137b796e5ada9d15f41cdd0e1655";
+ };
+
+ postPatch = ''
+ # remove dependency constraints
+ sed 's/==\([0-9]\.\?\)\+//' -i requirements.txt
+
+ # "zxcvbn-python" was renamed to "zxcvbn", and we don't have the former in
+ # nixpkgs. See: https://github.com/NixOS/nixpkgs/issues/62110
+ substituteInPlace requirements.txt --replace "zxcvbn-python" "zxcvbn"
+ '';
+
+ # ~400 failures
+ doCheck = false;
+
+ propagatedBuildInputs = with python3Packages; [
+ # See https://github.com/Flexget/Flexget/blob/master/requirements.in
+ APScheduler
+ beautifulsoup4
+ cherrypy
+ colorclass
+ feedparser
+ flask-compress
+ flask-cors
+ flask_login
+ flask-restful
+ flask-restx
+ flask
+ guessit
+ html5lib
+ jinja2
+ jsonschema
+ loguru
+ more-itertools
+ progressbar
+ pynzb
+ pyparsing
+ PyRSS2Gen
+ dateutil
+ pyyaml
+ rebulk
+ requests
+ rpyc
+ sqlalchemy
+ terminaltables
+ zxcvbn
+ # plugins
+ transmissionrpc
+ ];
+
+ meta = with lib; {
+ homepage = "https://flexget.com/";
+ description = "Multipurpose automation tool for all of your media";
+ license = licenses.mit;
+ maintainers = with maintainers; [ marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
new file mode 100644
index 000000000000..17306059e996
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, fetchurl
+, autoreconfHook
+, dbus
+, gettext
+, gnutls
+, libfilezilla
+, libidn
+, nettle
+, pkgconfig
+, pugixml
+, sqlite
+, tinyxml
+, wxGTK30-gtk3
+, xdg_utils
+}:
+
+stdenv.mkDerivation rec {
+ pname = "filezilla";
+ version = "3.51.0";
+
+ src = fetchurl {
+ url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
+ sha256 = "0k3c7gm16snc6dr9a3xgq14ajyqj4hxcrd6hk6jk5fsi9x51rgl2";
+ };
+
+ # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
+ postPatch = ''
+ sed -i src/interface/Mainfrm.h \
+ -e '/^#define/a #include <list>'
+ '';
+
+ configureFlags = [
+ "--disable-manualupdatecheck"
+ "--disable-autoupdatecheck"
+ ];
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ buildInputs = [
+ dbus
+ gettext
+ gnutls
+ libfilezilla
+ libidn
+ nettle
+ pugixml
+ sqlite
+ tinyxml
+ wxGTK30-gtk3
+ wxGTK30-gtk3.gtk
+ xdg_utils
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://filezilla-project.org/";
+ description = "Graphical FTP, FTPS and SFTP client";
+ longDescription = ''
+ FileZilla Client is a free, open source FTP client. It supports
+ FTP, SFTP, and FTPS (FTP over SSL/TLS). The client is available
+ under many platforms, binaries for Windows, Linux and macOS are
+ provided.
+ '';
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
new file mode 100644
index 000000000000..c629a8a07cd8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, nix-update-script, pantheon, pkgconfig, meson, ninja, python3, vala
+, gtk3, libgee, libsoup, libsecret, gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "taxi";
+ version = "0.0.1";
+
+ src = fetchFromGitHub {
+ owner = "Alecaddd";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "01c552w68576pnsyqbwy3hjhbww6vys3r3s0wxjdiscjqj1aawqg";
+ };
+
+ nativeBuildInputs = [
+ vala
+ gobject-introspection
+ meson
+ ninja
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ pantheon.granite
+ libgee
+ gtk3
+ libsecret
+ libsoup
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "The FTP Client that drives you anywhere";
+ homepage = "https://github.com/Alecaddd/taxi";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/gdrive/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/gdrive/default.nix
new file mode 100644
index 000000000000..c5a5d1e970a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/gdrive/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gdrive";
+ version = "2.1.0";
+ rev = version;
+
+ goPackagePath = "github.com/prasmussen/gdrive";
+
+ src = fetchFromGitHub {
+ owner = "prasmussen";
+ repo = "gdrive";
+ sha256 = "0ywm4gdmrqzb1a99vg66a641r74p7lglavcpgkm6cc2gdwzjjfg7";
+ inherit rev;
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/prasmussen/gdrive";
+ description = "A command line utility for interacting with Google Drive";
+ platforms = platforms.unix;
+ license = licenses.mit;
+ maintainers = [ maintainers.rzetterberg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/gmailctl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
new file mode 100644
index 000000000000..a32da469719b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+ pname = "gmailctl";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "mbrt";
+ repo = "gmailctl";
+ rev = "v${version}";
+ sha256 = "08q4yjfbwlldirf3j5db18l8kn6sf288wd364s50jlcx2ka8w50j";
+ };
+
+ vendorSha256 = "0qp8n7z3vcsbc6safp7i18i0i3r4hy4nidzwl85i981sg12vcg6b";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Declarative configuration for Gmail filters";
+ homepage = "https://github.com/mbrt/gmailctl";
+ license = licenses.mit;
+ maintainers = [ maintainers.doronbehar ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix
new file mode 100644
index 000000000000..80fbb6dd6e74
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+# native
+, meson
+, ninja
+, pkg-config
+, gettext
+, desktop-file-utils
+, appstream-glib
+, wrapGAppsHook
+, python3
+# Not native
+, gst_all_1
+, gsettings-desktop-schemas
+, gtk3
+, glib
+, networkmanager
+, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-network-displays";
+ version = "0.90.4";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "04snnfz5jxxpjkrwa7dchc2h4shszi8mq9g3ihvsvipgzjw3d498";
+ };
+
+ patches = [
+ # Undeclared dependency on gio-unix-2.0, see:
+ # https://github.com/NixOS/nixpkgs/issues/36468 and
+ # https://gitlab.gnome.org/GNOME/gnome-network-displays/-/merge_requests/147
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/gnome-network-displays/-/commit/ef3f3ff565acd8238da46de604a1e750d4f02f07.diff";
+ sha256 = "1ljiwgqia6am4lansg70qnwkch9mp1fr6bga98s5fwyiaw6b6f4p";
+ })
+ # Fixes an upstream bug: https://gitlab.gnome.org/GNOME/gnome-network-displays/-/issues/147
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/gnome-network-displays/-/commit/23164b58f4d5dd59de988525906d6e5e82c5a63c.patch";
+ sha256 = "0x32dvkzv9m04q41aicscpf4aspghx81a65462kjqnsavi64lga5";
+ })
+ ];
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ gettext
+ desktop-file-utils
+ appstream-glib
+ wrapGAppsHook
+ python3
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ gsettings-desktop-schemas
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-bad
+ gst_all_1.gst-plugins-ugly
+ gst_all_1.gst-rtsp-server
+ networkmanager
+ libpulseaudio
+ ];
+
+ preConfigure = ''
+ patchShebangs ./build-aux/meson/postinstall.py
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.gnome.org/GNOME/gnome-network-displays";
+ description = "Miracast implementation for GNOME";
+ maintainers = with maintainers; [ doronbehar ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/default.nix
new file mode 100644
index 000000000000..3d22dca36d95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/default.nix
@@ -0,0 +1,49 @@
+{ callPackage, libsForQt5 }:
+
+let
+ stableVersion = "2.2.17";
+ previewVersion = stableVersion;
+ addVersion = args:
+ let version = if args.stable then stableVersion else previewVersion;
+ branch = if args.stable then "stable" else "preview";
+ in args // { inherit version branch; };
+ extraArgs = rec {
+ mkOverride = attrname: version: sha256:
+ self: super: {
+ ${attrname} = super.${attrname}.overridePythonAttrs (oldAttrs: {
+ inherit version;
+ src = oldAttrs.src.override {
+ inherit version sha256;
+ };
+ });
+ };
+ commonOverrides = [
+ (mkOverride "psutil" "5.6.7"
+ "1an5llivfkwpbcfaapbx78p8sfnvzyfypf60wfxihib1mjr8xbgz")
+ (mkOverride "jsonschema" "3.2.0"
+ "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
+ ];
+ };
+ mkGui = args: libsForQt5.callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
+ mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { };
+ guiSrcHash = "0dfyxr983w6lmbcvaf32bnm9cz7y7fp9jfaz8zxp1dvr6dr06cmv";
+ serverSrcHash = "0m5ajd2zkafx89hvp202m351h1dygfc3jssl3m7nd7r42csyi2vj";
+in {
+ guiStable = mkGui {
+ stable = true;
+ sha256Hash = guiSrcHash;
+ };
+ guiPreview = mkGui {
+ stable = false;
+ sha256Hash = guiSrcHash;
+ };
+
+ serverStable = mkServer {
+ stable = true;
+ sha256Hash = serverSrcHash;
+ };
+ serverPreview = mkServer {
+ stable = false;
+ sha256Hash = serverSrcHash;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/gui.nix
new file mode 100644
index 000000000000..8eb688bcd56d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/gui.nix
@@ -0,0 +1,49 @@
+{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
+
+{ lib, python3, fetchFromGitHub, wrapQtAppsHook }:
+
+let
+ defaultOverrides = commonOverrides ++ [
+ ];
+
+ python = python3.override {
+ packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides;
+ };
+in python.pkgs.buildPythonPackage rec {
+ name = "${pname}-${version}";
+ pname = "gns3-gui";
+
+ src = fetchFromGitHub {
+ owner = "GNS3";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = sha256Hash;
+ };
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+ propagatedBuildInputs = with python.pkgs; [
+ sentry-sdk psutil jsonschema # tox for check
+ # Runtime dependencies
+ sip (pyqt5.override { withWebSockets = true; }) distro setuptools
+ ];
+
+ doCheck = false; # Failing
+ dontWrapQtApps = true;
+ postFixup = ''
+ wrapQtApp "$out/bin/gns3"
+ '';
+
+ meta = with lib; {
+ description = "Graphical Network Simulator 3 GUI (${branch} release)";
+ longDescription = ''
+ Graphical user interface for controlling the GNS3 network simulator. This
+ requires access to a local or remote GNS3 server (it's recommended to
+ download the official GNS3 VM).
+ '';
+ homepage = "https://www.gns3.com/";
+ changelog = "https://github.com/GNS3/gns3-gui/releases/tag/v${version}";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/server.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/server.nix
new file mode 100644
index 000000000000..ad346104f969
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/gns3/server.nix
@@ -0,0 +1,69 @@
+{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
+
+{ lib, stdenv, python3, fetchFromGitHub }:
+
+let
+ defaultOverrides = commonOverrides ++ [
+ (mkOverride "aiofiles" "0.5.0"
+ "98e6bcfd1b50f97db4980e182ddd509b7cc35909e903a8fe50d8849e02d815af")
+ (self: super: {
+ py-cpuinfo = super.py-cpuinfo.overridePythonAttrs (oldAttrs: rec {
+ version = "7.0.0";
+ src = fetchFromGitHub {
+ owner = "workhorsy";
+ repo = "py-cpuinfo";
+ rev = "v${version}";
+ sha256 = "10qfaibyb2syiwiyv74l7d97vnmlk079qirgnw3ncklqjs0s3gbi";
+ };
+ });
+ })
+ ];
+
+ python = python3.override {
+ packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides;
+ };
+in python.pkgs.buildPythonPackage {
+ pname = "gns3-server";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "GNS3";
+ repo = "gns3-server";
+ rev = "v${version}";
+ sha256 = sha256Hash;
+ };
+
+ postPatch = ''
+ # yarl 1.4+ only requires Python 3.6+
+ substituteInPlace requirements.txt \
+ --replace "aiohttp==3.6.2" "aiohttp>=3.6.2" \
+ --replace "yarl==1.3.0" ""
+ '';
+
+ propagatedBuildInputs = with python.pkgs; [
+ aiohttp-cors yarl aiohttp multidict setuptools
+ jinja2 psutil zipstream sentry-sdk jsonschema distro async_generator aiofiles
+ prompt_toolkit py-cpuinfo
+ ];
+
+ # Requires network access
+ doCheck = false;
+
+ postInstall = ''
+ rm $out/bin/gns3loopback # For Windows only
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Graphical Network Simulator 3 server (${branch} release)";
+ longDescription = ''
+ The GNS3 server manages emulators such as Dynamips, VirtualBox or
+ Qemu/KVM. Clients like the GNS3 GUI control the server using a HTTP REST
+ API.
+ '';
+ homepage = "https://www.gns3.com/";
+ changelog = "https://github.com/GNS3/gns3-server/releases/tag/v${version}";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
new file mode 100644
index 000000000000..72ff8bd8b4be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, ocaml_extlib, ocamlfuse, gapi_ocaml, ocaml_sqlite3
+}:
+
+buildDunePackage rec {
+ pname = "google-drive-ocamlfuse";
+ version = "0.7.22";
+
+ useDune2 = true;
+
+ minimumOCamlVersion = "4.06";
+
+ src = fetchFromGitHub {
+ owner = "astrada";
+ repo = "google-drive-ocamlfuse";
+ rev = "v${version}";
+ sha256 = "027j1r2iy8vnbqs8bv893f0909yk5312ki5p3zh2pdz6s865h750";
+ };
+
+ buildInputs = [ ocaml_extlib ocamlfuse gapi_ocaml ocaml_sqlite3 ];
+
+ meta = {
+ inherit (src.meta) homepage;
+ description = "A FUSE-based file system backed by Google Drive, written in OCaml";
+ license = lib.licenses.mit;
+ platforms = lib.platforms.linux;
+ maintainers = with lib.maintainers; [ obadz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix
new file mode 100644
index 000000000000..4e5716386442
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "gopher";
+ version = "3.0.17";
+
+ src = fetchFromGitHub {
+ owner = "jgoerzen";
+ repo = pname;
+ rev = "release/${version}";
+ sha256 = "1j6xh5l8v231d4mwl9gj1c34dc0jmazz6zg1qqfxmqr9y609jq3h";
+ };
+
+ buildInputs = [ ncurses ];
+
+ preConfigure = "export LIBS=-lncurses";
+
+ meta = with stdenv.lib; {
+ homepage = "http://gopher.quux.org:70/devel/gopher";
+ description = "A ncurses gopher client";
+ platforms = platforms.linux; # clang doesn't like local regex.h
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ sternenseemann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
new file mode 100644
index 000000000000..e10d97aeb42b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, ncurses
+, patches ? [] # allow users to easily override config.def.h
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sacc";
+ version = "1.02";
+
+ src = fetchurl {
+ url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tgz";
+ sha512 = "18ja95cscgjaj1xqn70dj0482f76d0561bdcc47flqfsjh4mqckjqr65qv7awnw6rzm03i5cp45j1qx12y0y83skgsar4pplmy8q014";
+ };
+
+ inherit patches;
+
+ buildInputs = [ ncurses ];
+
+ postPatch = ''
+ substituteInPlace config.mk \
+ --replace curses ncurses \
+ --replace "/usr/local" "$out"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A terminal gopher client";
+ homepage = "gopher://bitreich.org/1/scm/sacc";
+ license = licenses.isc;
+ maintainers = [ maintainers.sternenseemann ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix
new file mode 100644
index 000000000000..63d0d0b2978b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix
@@ -0,0 +1,58 @@
+{ mkDerivation, stdenv, lib, fetchurl, rpmextract, autoPatchelfHook , libuuid
+, libXtst, libXfixes, glib, gst_all_1, alsaLib, freetype, fontconfig , libXext
+, libGL, libpng, libXScrnSaver, libxcb, xorg, libpulseaudio, libdrm
+}:
+mkDerivation rec {
+ pname = "hpmyroom";
+ version = "12.1.1.0257";
+
+ src = fetchurl {
+ url = "https://www.myroom.hpe.com/downloadfiles/${pname}-${version}.x86_64.rpm";
+ sha256 = "1xm41v324zq1x5awgb7fr238f7ml7vq6jrfh84358i5shgha1g2k";
+ };
+
+ nativeBuildInputs = [
+ rpmextract autoPatchelfHook
+ ];
+
+ buildInputs = [
+ libuuid libXtst libXScrnSaver libXfixes alsaLib freetype fontconfig libXext
+ libGL libpng libxcb libpulseaudio libdrm
+ glib # For libgobject
+ stdenv.cc.cc # For libstdc++
+ xorg.libX11
+ ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]);
+
+ unpackPhase = ''
+ rpmextract $src
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mv usr $out
+
+ runHook postInstall
+ '';
+
+ qtWrapperArgs = [
+ "--prefix QT_XKB_CONFIG_ROOT : '${xorg.xkeyboardconfig}/share/X11/xkb'"
+ ];
+
+ postFixup = ''
+ substituteInPlace $out/share/applications/HP-myroom.desktop \
+ --replace /usr/bin/hpmyroom hpmyroom \
+ --replace Icon=/usr/share/hpmyroom/Resources/MyRoom.png Icon=$out/share/hpmyroom/Resources/MyRoom.png
+
+ ln -s ${libpng}/lib/libpng.so $out/lib/hpmyroom/libpng15.so.15
+ '';
+
+ meta = {
+ description = "Client for HPE's MyRoom web conferencing solution";
+ maintainers = with lib.maintainers; [ johnazoidberg ];
+ license = lib.licenses.unfree;
+ homepage = "https://myroom.hpe.com";
+ # TODO: A Darwin binary is available upstream
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/hydroxide/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
new file mode 100644
index 000000000000..a54a47b9c8f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
+
+buildGoModule rec {
+ pname = "hydroxide";
+ version = "0.2.15";
+
+ src = fetchFromGitHub {
+ owner = "emersion";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0r91cq39n89hfy8sbdy5vjzqfrsfd7cdhd41gwszpayq65qhbsyp";
+ };
+
+ vendorSha256 = "1r5qg5cx48yw1l5nil28y4a82fc7g52jmy9pckaxygppmmn539pc";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/hydroxide" ];
+
+ meta = with lib; {
+ description = "A third-party, open-source ProtonMail bridge";
+ homepage = "https://github.com/emersion/hydroxide";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Br1ght0ne ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/daq/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/daq/default.nix
new file mode 100644
index 000000000000..871aba0a669f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/daq/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, flex, bison, libpcap, libdnet, libnfnetlink, libnetfilter_queue}:
+
+stdenv.mkDerivation rec {
+ name = "daq-2.2.2";
+
+ src = fetchurl {
+ name = "${name}.tar.gz";
+ url = "https://snort.org/downloads/archive/snort/${name}.tar.gz";
+ sha256 = "0yvzscy7vqj7s5rccza0f7p6awghfm3yaxihx1h57lqspg51in3w";
+ };
+
+ buildInputs = [ flex bison libpcap libdnet libnfnetlink libnetfilter_queue];
+
+ configureFlags = [
+ "--enable-nfq-module=yes"
+ "--with-dnet-includes=${libdnet}/includes"
+ "--with-dnet-libraries=${libdnet}/lib"
+ ];
+
+ meta = {
+ description = "Data AcQuisition library (DAQ), for packet I/O";
+ homepage = "https://www.snort.org";
+ maintainers = with stdenv.lib.maintainers; [ aycanirican ];
+ license = stdenv.lib.licenses.gpl2;
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/snort/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
new file mode 100644
index 000000000000..7529e233e137
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
@@ -0,0 +1,39 @@
+{stdenv, pkgconfig, luajit, openssl, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison, makeWrapper
+, libtirpc
+}:
+
+stdenv.mkDerivation rec {
+ version = "2.9.16.1";
+ pname = "snort";
+
+ src = fetchurl {
+ name = "${pname}-${version}.tar.gz";
+ url = "https://snort.org/downloads/archive/snort/${pname}-${version}.tar.gz";
+ sha256 = "13lzvjli6kbsnkd7lf0rm71l2mnz38pxk76ia9yrjb6clfhlbb73";
+ };
+
+ buildInputs = [ makeWrapper pkgconfig luajit openssl libpcap pcre libdnet daq zlib flex bison libtirpc ];
+
+ NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--disable-static-daq"
+ "--enable-control-socket"
+ "--with-daq-includes=${daq}/includes"
+ "--with-daq-libraries=${daq}/lib"
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/snort --add-flags "--daq-dir ${daq}/lib/daq --dynamic-preprocessor-lib-dir $out/lib/snort_dynamicpreprocessor/ --dynamic-engine-lib-dir $out/lib/snort_dynamicengine"
+ '';
+
+ meta = {
+ description = "Network intrusion prevention and detection system (IDS/IPS)";
+ homepage = "https://www.snort.org";
+ maintainers = with stdenv.lib.maintainers; [ aycanirican ];
+ license = stdenv.lib.licenses.gpl2;
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch
new file mode 100644
index 000000000000..d4e8c95fea22
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch
@@ -0,0 +1,19 @@
+*** suricata-5.0.0/ebpf/Makefile.in 2019-10-16 22:39:13.174649416 +0200
+--- suricata-5.0.0/ebpf/Makefile.in.fixed 2019-10-16 22:38:41.822201802 +0200
+***************
+*** 527,533 ****
+ @BUILD_EBPF_TRUE@$(BPF_TARGETS): %.bpf: %.c
+ # From C-code to LLVM-IR format suffix .ll (clang -S -emit-llvm)
+ @BUILD_EBPF_TRUE@ ${CLANG} -Wall $(BPF_CFLAGS) -O2 \
+! @BUILD_EBPF_TRUE@ -I/usr/include/$(build_cpu)-$(build_os)/ \
+ @BUILD_EBPF_TRUE@ -D__KERNEL__ -D__ASM_SYSREG_H \
+ @BUILD_EBPF_TRUE@ -target bpf -S -emit-llvm $< -o ${@:.bpf=.ll}
+ # From LLVM-IR to BPF-bytecode in ELF-obj file
+--- 527,533 ----
+ @BUILD_EBPF_TRUE@$(BPF_TARGETS): %.bpf: %.c
+ # From C-code to LLVM-IR format suffix .ll (clang -S -emit-llvm)
+ @BUILD_EBPF_TRUE@ ${CLANG} -Wall $(BPF_CFLAGS) -O2 \
+! @BUILD_EBPF_TRUE@ -idirafter ../bpf_stubs_workaround \
+ @BUILD_EBPF_TRUE@ -D__KERNEL__ -D__ASM_SYSREG_H \
+ @BUILD_EBPF_TRUE@ -target bpf -S -emit-llvm $< -o ${@:.bpf=.ll}
+ # From LLVM-IR to BPF-bytecode in ELF-obj file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix
new file mode 100644
index 000000000000..d6e9b2e74397
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix
@@ -0,0 +1,158 @@
+{ stdenv
+, lib
+, fetchurl
+, clang
+, llvm
+, pkgconfig
+, makeWrapper
+, file
+, hyperscan
+, jansson
+, libbpf
+, libcap_ng
+, libelf
+, libevent
+, libmaxminddb
+, libnet
+, libnetfilter_log
+, libnetfilter_queue
+, libnfnetlink
+, libpcap
+, libyaml
+, luajit
+, lz4
+, nspr
+, nss
+, pcre
+, python
+, zlib
+, redisSupport ? true, redis, hiredis
+, rustSupport ? true, rustc, cargo
+}: let
+ libmagic = file;
+ hyperscanSupport = stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
+in
+stdenv.mkDerivation rec {
+ pname = "suricata";
+ version = "5.0.3";
+
+ src = fetchurl {
+ url = "https://www.openinfosecfoundation.org/download/${pname}-${version}.tar.gz";
+ sha256 = "1nv5aq5lpkpskkzw05hr2lshkzcs4zqj5kfv4qjlbwigmp6kwh9l";
+ };
+
+ nativeBuildInputs = [
+ clang
+ llvm
+ makeWrapper
+ pkgconfig
+ ]
+ ++ lib.optionals rustSupport [ rustc cargo ]
+ ;
+
+ buildInputs = [
+ jansson
+ libbpf
+ libcap_ng
+ libelf
+ libevent
+ libmagic
+ libmaxminddb
+ libnet
+ libnetfilter_log
+ libnetfilter_queue
+ libnfnetlink
+ libpcap
+ libyaml
+ luajit
+ lz4
+ nspr
+ nss
+ pcre
+ python
+ zlib
+ ]
+ ++ lib.optional hyperscanSupport hyperscan
+ ++ lib.optionals redisSupport [ redis hiredis ]
+ ;
+
+ enableParallelBuilding = true;
+
+ patches = lib.optional stdenv.is64bit ./bpf_stubs_workaround.patch;
+
+ postPatch = ''
+ substituteInPlace ./configure \
+ --replace "/usr/bin/file" "${file}/bin/file"
+ substituteInPlace ./libhtp/configure \
+ --replace "/usr/bin/file" "${file}/bin/file"
+
+ mkdir -p bpf_stubs_workaround/gnu
+ touch bpf_stubs_workaround/gnu/stubs-32.h
+ '';
+
+ configureFlags = [
+ "--disable-gccmarch-native"
+ "--enable-af-packet"
+ "--enable-ebpf"
+ "--enable-ebpf-build"
+ "--enable-gccprotect"
+ "--enable-geoip"
+ "--enable-luajit"
+ "--enable-nflog"
+ "--enable-nfqueue"
+ "--enable-pie"
+ "--disable-prelude"
+ "--enable-python"
+ "--enable-unix-socket"
+ "--localstatedir=/var"
+ "--sysconfdir=/etc"
+ "--with-libnet-includes=${libnet}/include"
+ "--with-libnet-libraries=${libnet}/lib"
+ ]
+ ++ lib.optionals hyperscanSupport [
+ "--with-libhs-includes=${hyperscan.dev}/include/hs"
+ "--with-libhs-libraries=${hyperscan}/lib"
+ ]
+ ++ lib.optional redisSupport "--enable-hiredis"
+ ++ lib.optionals rustSupport [
+ "--enable-rust"
+ "--enable-rust-experimental"
+ ];
+
+ postConfigure = ''
+ # Avoid unintended clousure growth.
+ sed -i 's|/nix/store/\(.\{8\}\)[^-]*-|/nix/store/\1...-|g' ./src/build-info.h
+ '';
+
+ hardeningDisable = [ "stackprotector" ];
+
+ installFlags = [
+ "e_localstatedir=\${TMPDIR}"
+ "e_logdir=\${TMPDIR}"
+ "e_logcertsdir=\${TMPDIR}"
+ "e_logfilesdir=\${TMPDIR}"
+ "e_rundir=\${TMPDIR}"
+ "e_sysconfdir=\${out}/etc/suricata"
+ "e_sysconfrulesdir=\${out}/etc/suricata/rules"
+ "localstatedir=\${TMPDIR}"
+ "runstatedir=\${TMPDIR}"
+ "sysconfdir=\${out}/etc"
+ ];
+
+ installTargets = [ "install" "install-conf" ];
+
+ postInstall = ''
+ wrapProgram "$out/bin/suricatasc" \
+ --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out")
+ substituteInPlace "$out/etc/suricata/suricata.yaml" \
+ --replace "/etc/suricata" "$out/etc/suricata"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A free and open source, mature, fast and robust network threat detection engine";
+ homepage = "https://suricata-ids.org";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ magenbluten ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
new file mode 100644
index 000000000000..713156a66214
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, fetchurl
+, cmake
+, flex
+, bison
+, openssl
+, libpcap
+, zlib
+, file
+, curl
+, libmaxminddb
+, gperftools
+, python
+, swig
+, gettext
+, fetchpatch
+, coreutils
+}:
+let
+ preConfigure = (import ./script.nix {inherit coreutils;});
+in
+stdenv.mkDerivation rec {
+ pname = "zeek";
+ version = "3.2.2";
+
+ src = fetchurl {
+ url = "https://download.zeek.org/zeek-${version}.tar.gz";
+ sha256 = "00cxz7ad7p62s2glcagzcvwbnsivrv4bmz6rl1vij907jb24hmvc";
+ };
+
+ nativeBuildInputs = [ cmake flex bison file ];
+ buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ gettext ];
+
+ #see issue https://github.com/zeek/zeek/issues/804 to modify hardlinking duplicate files.
+ inherit preConfigure;
+
+ enableParallelBuilding = true;
+
+ patches = stdenv.lib.optionals stdenv.cc.isClang [
+ # Fix pybind c++17 build with Clang. See: https://github.com/pybind/pybind11/issues/1604
+ (fetchpatch {
+ url = "https://github.com/pybind/pybind11/commit/759221f5c56939f59d8f342a41f8e2d2cacbc8cf.patch";
+ sha256 = "17qznp8yavnv84fjsbghv3d59z6k6rx74j49w0izakmgw5a95w84";
+ extraPrefix = "auxil/broker/bindings/python/3rdparty/pybind11/";
+ stripLen = 1;
+ })
+ ];
+
+ cmakeFlags = [
+ "-DPY_MOD_INSTALL_DIR=${placeholder "out"}/${python.sitePackages}"
+ "-DENABLE_PERFTOOLS=true"
+ "-DINSTALL_AUX_TOOLS=true"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Powerful network analysis framework much different from a typical IDS";
+ homepage = "https://www.zeek.org";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ pSub marsam tobim ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix
new file mode 100644
index 000000000000..4c8bbcf22c03
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix
@@ -0,0 +1,69 @@
+{coreutils}:
+''
+ sed -i 's|/bin/mv|${coreutils}/bin/mv|' scripts/base/frameworks/logging/writers/ascii.zeek
+ sed -i 's|/bin/mv|${coreutils}/bin/mv|' scripts/policy/misc/trim-trace-file.zeek
+ sed -i 's|/bin/cat|${coreutils}/bin/cat|' scripts/base/frameworks/notice/actions/pp-alarms.zeek
+ sed -i 's|/bin/cat|${coreutils}/bin/cat|' scripts/base/frameworks/notice/main.zeek
+
+ sed -i "1i##! test dpd" $PWD/scripts/base/frameworks/dpd/__load__.zeek
+ sed -i "1i##! test x509" $PWD/scripts/base/files/x509/__load__.zeek
+ sed -i "1i##! test files-extract" $PWD/scripts/base/files/extract/__load__.zeek
+ sed -i "1i##! test files-hash" $PWD/scripts/base/files/hash/__load__.zeek
+ sed -i "1i##! test files-pe" $PWD/scripts/base/files/pe/__load__.zeek
+ sed -i "1i##! test analyzer" $PWD/scripts/base/frameworks/analyzer/__load__.zeek
+ sed -i "1i##! test cluster" $PWD/scripts/base/frameworks/cluster/__load__.zeek
+ sed -i "1i##! test config" $PWD/scripts/base/frameworks/config/__load__.zeek
+ sed -i "1i##! test contro" $PWD/scripts/base/frameworks/control/__load__.zeek
+ sed -i "1i##! test files" $PWD/scripts/base/frameworks/files/__load__.zeek
+ sed -i "1i##! test files-magic" $PWD/scripts/base/frameworks/files/magic/__load__.zeek
+ sed -i "1i##! test input" $PWD/scripts/base/frameworks/input/__load__.zeek
+ sed -i "1i##! test intel" $PWD/scripts/base/frameworks/intel/__load__.zeek
+ sed -i "1i##! test logging" $PWD/scripts/base/frameworks/logging/__load__.zeek
+ sed -i "1i##! test logging-postprocessors" $PWD/scripts/base/frameworks/logging/postprocessors/__load__.zeek
+ sed -i "1i##! test netcontrol" $PWD/scripts/base/frameworks/netcontrol/__load__.zeek
+ sed -i "1i##! test netcontrol-plugins" $PWD/scripts/base/frameworks/netcontrol/plugins/__load__.zeek
+ sed -i "1i##! test notice" $PWD/scripts/base/frameworks/notice/__load__.zeek
+ sed -i "1i##! test openflow" $PWD/scripts/base/frameworks/openflow/__load__.zeek
+ sed -i "1i##! test openflow-plugins" $PWD/scripts/base/frameworks/openflow/plugins/__load__.zeek
+ sed -i "1i##! test packet-filter" $PWD/scripts/base/frameworks/packet-filter/__load__.zeek
+ sed -i "1i##! test reporter" $PWD/scripts/base/frameworks/reporter/__load__.zeek
+ sed -i "1i##! test signatures" $PWD/scripts/base/frameworks/signatures/__load__.zeek
+ sed -i "1i##! test software" $PWD/scripts/base/frameworks/software/__load__.zeek
+ sed -i "1i##! test sumstats" $PWD/scripts/base/frameworks/sumstats/__load__.zeek
+ sed -i "1i##! test sumstats-plugins" $PWD/scripts/base/frameworks/sumstats/plugins/__load__.zeek
+ sed -i "1i##! test conn" $PWD/scripts/base/protocols/conn/__load__.zeek
+ sed -i "1i##! test dce-rpc" $PWD/scripts/base/protocols/dce-rpc/__load__.zeek
+ sed -i "1i##! test dhcp" $PWD/scripts/base/protocols/dhcp/__load__.zeek
+ sed -i "1i##! test dnp3" $PWD/scripts/base/protocols/dnp3/__load__.zeek
+ sed -i "1i##! test dns" $PWD/scripts/base/protocols/dns/__load__.zeek
+ sed -i "1i##! test ftp" $PWD/scripts/base/protocols/ftp/__load__.zeek
+ sed -i "1i##! test http" $PWD/scripts/base/protocols/http/__load__.zeek
+ sed -i "1i##! test tunnels" $PWD/scripts/base/protocols/tunnels/__load__.zeek
+ sed -i "1i##! test imap" $PWD/scripts/base/protocols/imap/__load__.zeek
+ sed -i "1i##! test irc" $PWD/scripts/base/protocols/irc/__load__.zeek
+ sed -i "1i##! test krb" $PWD/scripts/base/protocols/krb/__load__.zeek
+ sed -i "1i##! test modbus" $PWD/scripts/base/protocols/modbus/__load__.zeek
+ sed -i "1i##! test mqtt" $PWD/scripts/base/protocols/mqtt/__load__.zeek
+ sed -i "1i##! test mysql" $PWD/scripts/base/protocols/mysql/__load__.zeek
+ sed -i "1i##! test ntlm" $PWD/scripts/base/protocols/ntlm/__load__.zeek
+ sed -i "1i##! test ntp" $PWD/scripts/base/protocols/ntp/__load__.zeek
+ sed -i "1i##! test pop3" $PWD/scripts/base/protocols/pop3/__load__.zeek
+ sed -i "1i##! test radius" $PWD/scripts/base/protocols/radius/__load__.zeek
+ sed -i "1i##! test rdp" $PWD/scripts/base/protocols/rdp/__load__.zeek
+ sed -i "1i##! test rfb" $PWD/scripts/base/protocols/rfb/__load__.zeek
+ sed -i "1i##! test sip" $PWD/scripts/base/protocols/sip/__load__.zeek
+ sed -i "1i##! test smb" $PWD/scripts/base/protocols/smb/__load__.zeek
+ sed -i "1i##! test smtp" $PWD/scripts/base/protocols/smtp/__load__.zeek
+ sed -i "1i##! test snmp" $PWD/scripts/base/protocols/snmp/__load__.zeek
+ sed -i "1i##! test socks" $PWD/scripts/base/protocols/socks/__load__.zeek
+ sed -i "1i##! test ssh" $PWD/scripts/base/protocols/ssh/__load__.zeek
+ sed -i "1i##! test ssl" $PWD/scripts/base/protocols/ssl/__load__.zeek
+ sed -i "1i##! test syslog" $PWD/scripts/base/protocols/syslog/__load__.zeek
+ sed -i "1i##! test xmpp" $PWD/scripts/base/protocols/xmpp/__load__.zeek
+ sed -i "1i##! test unified2" $PWD/scripts/policy/files/unified2/__load__.zeek
+ sed -i "1i##! test intel-seen" $PWD/scripts/policy/frameworks/intel/seen/__load__.zeek
+ sed -i "1i##! test notice" $PWD/scripts/policy/frameworks/notice/__load__.zeek
+ sed -i "1i##! test barnyard2" $PWD/scripts/policy/integration/barnyard2/__load__.zeek
+ sed -i "1i##! test collective-intel" $PWD/scripts/policy/integration/collective-intel/__load__.zeek
+ sed -i "1i##! test detect-traceroute" $PWD/scripts/policy/misc/detect-traceroute/__load__.zeek
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ike/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ike/default.nix
new file mode 100644
index 000000000000..93858ba3027c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ike/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, fetchpatch, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
+, gcc, nettools, iproute, linuxHeaders }:
+
+# NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp";
+# launch with "iked -f /etc/iked.conf"
+
+# NOTE: my testings reveal that kernels 3.11.10 and 3.12.6 won't let the traffic through the tunnel,
+# so I'm sticking with 3.4
+
+stdenv.mkDerivation rec {
+ pname = "ike";
+ version = "2.2.1";
+
+ src = fetchurl {
+ url = "https://www.shrew.net/download/ike/${pname}-${version}-release.tgz";
+ sha256 = "0fhyr2psd93b0zf7yfb72q3nqnh65mymgq5jpjcsj9jv5kfr6l8y";
+ };
+
+ patches = [
+ # required for openssl 1.1.x compatibility
+ (fetchpatch {
+ name = "openssl-1.1.0.patch";
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/openssl-1.1.0.patch?h=ike&id=3a56735ddc26f750df4720f4baba0728bb4cb458";
+ sha256 = "1hw8q4xy858rivpjkq5288q3mc75d52bg4w3n30y99h05wik0h51";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake flex bison makeWrapper ];
+ buildInputs = [ openssl libedit qt4 nettools iproute ];
+
+ postPatch = ''
+ # fix build with bison3
+ sed -i 's/define "parser_class_name"/define parser_class_name/' source/iked/conf.parse.yy
+ '';
+
+ configurePhase = ''
+ mkdir -p $out/{bin,sbin,lib}
+ cmake -DQTGUI=YES -DETCDIR=$out/etc -DLIBDIR=$out/lib -DSBINDIR=$out/sbin -DBINDIR=$out/bin \
+ -DKRNINC="${linuxHeaders}/include/" -DTESTS=YES \
+ -DMANDIR=$out/man -DNATT=YES -DCMAKE_INSTALL_PREFIX:BOOL=$out
+ '';
+
+ buildPhase = ''
+ make
+ '';
+
+ installPhase = ''
+ make install
+ for file in "$out"/bin/* "$out"/sbin/*; do
+ wrapProgram $file --prefix LD_LIBRARY_PATH ":" "$out/lib:${stdenv.lib.makeLibraryPath [ openssl gcc.cc stdenv.cc.libc libedit qt4 ]}"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.shrew.net/software";
+ description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.domenkozar ];
+ license = licenses.sleepycat;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
new file mode 100644
index 000000000000..f5ec3d7b6bd0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, boost166 }:
+
+stdenv.mkDerivation rec {
+ pname = "SkypeExport";
+ version = "1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "Temptin";
+ repo = "SkypeExport";
+ rev = "v${version}";
+ sha256 = "1ilkh0s3dz5cp83wwgmscnfmnyck5qcwqg1yxp9zv6s356dxnbak";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ boost166 ];
+
+ preConfigure = "cd src/SkypeExport/_gccbuild/linux";
+ installPhase = "install -Dt $out/bin SkypeExport";
+
+ meta = with stdenv.lib; {
+ description = "Export Skype history to HTML";
+ homepage = "https://github.com/Temptin/SkypeExport";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ yegortimoshenko ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix
new file mode 100644
index 000000000000..60d4ec829cc2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, which, tcl, tk, xlibsWrapper, libpng, libjpeg, makeWrapper}:
+
+stdenv.mkDerivation {
+ name = "amsn-0.98.9";
+ src = fetchurl {
+ url = "mirror://sourceforge/amsn/amsn-0.98.9-src.tar.gz";
+ sha256 = "0b8ir7spxnsz8f7kvr9f1k91nsy8cb65q6jv2l55b04fl20x4z7r";
+ };
+
+ configureFlags = [
+ "--with-tcl=${tcl}/lib"
+ "--with-tk=${tk}/lib"
+ "--enable-static"
+ ];
+
+ buildInputs = [which tcl tk xlibsWrapper libpng libjpeg makeWrapper];
+
+ postInstall = ''
+ wrapProgram $out/bin/amsn --prefix PATH : ${tk}/bin
+ '';
+
+ meta = {
+ description = "Instant messaging (MSN Messenger clone)";
+ homepage = "http://amsn-project.net";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix
new file mode 100644
index 000000000000..c3479d1ee698
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -0,0 +1,53 @@
+{stdenv, fetchurl, zlib, openssl, libre, librem, pkgconfig, gst_all_1
+, cairo, mpg123, alsaLib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg_3
+, gsm, speex, portaudio, spandsp, libuuid, libvpx
+}:
+stdenv.mkDerivation rec {
+ version = "0.6.5";
+ pname = "baresip";
+ src=fetchurl {
+ url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
+ sha256 = "13di0ycdcr2q2a20mjvyaqfmvk5xldwqaxklqsz7470jnbc5n0rb";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [zlib openssl libre librem cairo mpg123
+ alsaLib SDL libv4l celt libsndfile srtp ffmpeg_3 gsm speex portaudio spandsp libuuid
+ libvpx
+ ] ++ (with gst_all_1; [ gstreamer gst-libav gst-plugins-base gst-plugins-bad gst-plugins-good ]);
+ makeFlags = [
+ "LIBRE_MK=${libre}/share/re/re.mk"
+ "LIBRE_INC=${libre}/include/re"
+ "LIBRE_SO=${libre}/lib"
+ "LIBREM_PATH=${librem}"
+ ''PREFIX=$(out)''
+ "USE_VIDEO=1"
+ "CCACHE_DISABLE=1"
+
+ "USE_ALSA=1" "USE_AMR=1" "USE_CAIRO=1" "USE_CELT=1"
+ "USE_CONS=1" "USE_EVDEV=1" "USE_FFMPEG=1" "USE_GSM=1" "USE_GST1=1"
+ "USE_L16=1" "USE_MPG123=1" "USE_OSS=1" "USE_PLC=1" "USE_VPX=1"
+ "USE_PORTAUDIO=1" "USE_SDL=1" "USE_SNDFILE=1" "USE_SPEEX=1"
+ "USE_SPEEX_AEC=1" "USE_SPEEX_PP=1" "USE_SPEEX_RESAMP=1" "USE_SRTP=1"
+ "USE_STDIO=1" "USE_SYSLOG=1" "USE_UUID=1" "USE_V4L2=1" "USE_X11=1"
+
+ "USE_BV32=" "USE_COREAUDIO=" "USE_G711=1" "USE_G722=1" "USE_G722_1="
+ "USE_ILBC=" "USE_OPUS=" "USE_SILK="
+ ]
+ ++ stdenv.lib.optional (stdenv.cc.cc != null) "SYSROOT_ALT=${stdenv.cc.cc}"
+ ++ stdenv.lib.optional (stdenv.cc.libc != null) "SYSROOT=${stdenv.cc.libc}"
+ ;
+
+ NIX_CFLAGS_COMPILE='' -I${librem}/include/rem -I${gsm}/include/gsm
+ -DHAVE_INTTYPES_H -D__GLIBC__
+ -D__need_timeval -D__need_timespec -D__need_time_t '';
+ meta = {
+ homepage = "http://www.creytiv.com/baresip.html";
+ platforms = with stdenv.lib.platforms; linux;
+ maintainers = with stdenv.lib.maintainers; [raskin];
+ license = stdenv.lib.licenses.bsd3;
+ inherit version;
+ downloadPage = "http://www.creytiv.com/pub/";
+ updateWalker = true;
+ downloadURLRegexp = "/baresip-.*[.]tar[.].*";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
new file mode 100644
index 000000000000..c4d780d9ea2c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
@@ -0,0 +1,32 @@
+{ fetchFromGitHub, stdenv, bitlbee, autoreconfHook, pkgconfig, glib }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "bitlbee-discord";
+ version = "0.4.3";
+
+ src = fetchFromGitHub {
+ rev = version;
+ owner = "sm00th";
+ repo = "bitlbee-discord";
+ sha256 = "00qgdvrp7hv02n0ns685igp810zxmv3adsama8601122al6x041n";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ bitlbee ];
+
+ preConfigure = ''
+ export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+ export BITLBEE_DATADIR=$out/share/bitlbee
+ ./autogen.sh
+ '';
+
+ meta = {
+ description = "Bitlbee plugin for Discord";
+
+ homepage = "https://github.com/sm00th/bitlbee-discord";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ lassulus jb55 ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
new file mode 100644
index 000000000000..1a8110acacb9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
@@ -0,0 +1,31 @@
+{ fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkgconfig, glib, json-glib }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "bitlbee-facebook";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "bitlbee";
+ repo = "bitlbee-facebook";
+ sha256 = "1yjhjhk3jzjip13lq009vlg84lm2lzwhac5jy0aq3vkcz6rp94rc";
+ };
+
+ nativeBuildInputs = [ autoconf automake libtool pkgconfig ];
+
+ buildInputs = [ bitlbee json-glib ];
+
+ preConfigure = ''
+ export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+ ./autogen.sh
+ '';
+
+ meta = {
+ description = "The Facebook protocol plugin for bitlbee";
+
+ homepage = "https://github.com/bitlbee/bitlbee-facebook";
+ license = licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix
new file mode 100644
index 000000000000..411cd789275b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix
@@ -0,0 +1,29 @@
+{ fetchgit, stdenv, bitlbee, autoreconfHook, pkgconfig, glib }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "bitlbee-mastodon";
+ version = "1.4.4";
+
+ src = fetchgit {
+ url = "https://alexschroeder.ch/cgit/bitlbee-mastodon";
+ rev = "v${version}";
+ sha256 = "0a8196pyr6bjnqg82zn7jdhiv7xsg4npbpzalla1i2h99j30q8pk";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ bitlbee ];
+
+ preConfigure = ''
+ export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+ export BITLBEE_DATADIR=$out/share/bitlbee
+ '';
+
+ meta = {
+ description = "Bitlbee plugin for Mastodon";
+ homepage = "https://alexschroeder.ch/cgit/bitlbee-mastodon/about";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ jpotier ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix
new file mode 100644
index 000000000000..8cb7f6c37c43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix
@@ -0,0 +1,30 @@
+{ fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkgconfig, glib, libgcrypt }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ version = "1.4.2";
+ pname = "bitlbee-steam";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "bitlbee";
+ repo = "bitlbee-steam";
+ sha256 = "121r92mgwv445wwxzh35n19fs5k81ihr0j19k256ia5502b1xxaq";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ bitlbee autoconf automake libtool libgcrypt ];
+
+ preConfigure = ''
+ export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+ ./autogen.sh
+ '';
+
+ meta = {
+ description = "Steam protocol plugin for BitlBee";
+
+ homepage = "https://github.com/jgeboski/bitlbee-steam";
+ license = licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
new file mode 100644
index 000000000000..7b1256b657a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -0,0 +1,68 @@
+{ fetchurl, fetchpatch, stdenv, gnutls, glib, pkgconfig, check, libotr, python
+, enableLibPurple ? false, pidgin ? null
+, enablePam ? false, pam ? null
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ name = "bitlbee-3.6";
+
+ src = fetchurl {
+ url = "mirror://bitlbee/src/${name}.tar.gz";
+ sha256 = "0zhhcbcr59sx9h4maf8zamzv2waya7sbsl7w74gbyilvy93dw5cz";
+ };
+
+ nativeBuildInputs = [ pkgconfig ] ++ optional doCheck check;
+
+ buildInputs = [ gnutls libotr python ]
+ ++ optional enableLibPurple pidgin
+ ++ optional enablePam pam;
+
+ propagatedBuildInputs = [ glib ];
+
+ configureFlags = [
+ "--otr=1"
+ "--ssl=gnutls"
+ "--pidfile=/var/lib/bitlbee/bitlbee.pid"
+ ] ++ optional enableLibPurple "--purple=1"
+ ++ optional enablePam "--pam=1";
+
+ patches = [
+ # This should be dropped once the issue is fixed upstream.
+ (fetchpatch {
+ url = "https://github.com/bitlbee/bitlbee/commit/6ff651b3ec93e5fd74f80766d5e9714d963137bc.diff";
+ sha256 = "144dpm4kq7c268fpww1q3n88ayg068n73fbabr5arh1zryw48qfv";
+ })
+ ];
+
+ installTargets = [ "install" "install-dev" ];
+
+ doCheck = !enableLibPurple; # Checks fail with libpurple for some reason
+ checkPhase = ''
+ # check flags set VERBOSE=y which breaks the build due overriding a command
+ make check
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "IRC instant messaging gateway";
+
+ longDescription = ''
+ BitlBee brings IM (instant messaging) to IRC clients. It's a
+ great solution for people who have an IRC client running all the
+ time and don't want to run an additional MSN/AIM/whatever
+ client.
+
+ BitlBee currently supports the following IM networks/protocols:
+ XMPP/Jabber (including Google Talk), MSN Messenger, Yahoo!
+ Messenger, AIM and ICQ.
+ '';
+
+ homepage = "https://www.bitlbee.org/";
+ license = licenses.gpl2Plus;
+
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.gnu ++ platforms.linux; # arbitrary choice
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix
new file mode 100644
index 000000000000..4e05e7cae970
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix
@@ -0,0 +1,20 @@
+{ stdenv, bitlbee }:
+
+with stdenv.lib;
+
+plugins:
+
+stdenv.mkDerivation {
+ inherit bitlbee plugins;
+ name = "bitlbee-plugins";
+ buildInputs = [ bitlbee plugins ];
+ phases = [ "installPhase" ];
+ installPhase = ''
+ mkdir -p $out/lib/bitlbee
+ for plugin in $plugins; do
+ for thing in $(ls $plugin/lib/bitlbee); do
+ ln -s $plugin/lib/bitlbee/$thing $out/lib/bitlbee/
+ done
+ done
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
new file mode 100644
index 000000000000..28cc38360576
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchdarcs, pythonPackages, libvncserver, zlib
+, gnutls, libvpx, makeDesktopItem, mkDerivationWith }:
+
+mkDerivationWith pythonPackages.buildPythonApplication rec {
+
+ pname = "blink";
+ version = "3.2.0";
+
+ src = fetchdarcs {
+ url = "http://devel.ag-projects.com/repositories/blink-qt";
+ rev = "release-${version}";
+ sha256 = "19rcwr5scw48qnj79q1pysw95fz9h98nyc3161qy2kph5g7dwkc3";
+ };
+
+ patches = [ ./pythonpath.patch ];
+ postPatch = ''
+ sed -i 's|@out@|'"''${out}"'|g' blink/resources.py
+ '';
+
+ propagatedBuildInputs = with pythonPackages; [
+ pyqt5_with_qtwebkit
+ cjson
+ sipsimple
+ twisted
+ google_api_python_client
+ ];
+
+ buildInputs = [
+ pythonPackages.cython
+ zlib
+ libvncserver
+ libvpx
+ ];
+
+ desktopItem = makeDesktopItem {
+ name = "Blink";
+ exec = "blink";
+ comment = meta.description;
+ desktopName = "Blink";
+ icon = "blink";
+ genericName = "Instant Messaging";
+ categories = "Internet;";
+ };
+
+ dontWrapQtApps = true;
+
+ postInstall = ''
+ mkdir -p "$out/share/applications"
+ mkdir -p "$out/share/pixmaps"
+ cp "$desktopItem"/share/applications/* "$out/share/applications"
+ cp "$out"/share/blink/icons/blink.* "$out/share/pixmaps"
+ '';
+
+ preFixup = ''
+ makeWrapperArgs+=(
+ --prefix "LD_LIBRARY_PATH" ":" "${gnutls.out}/lib"
+ "''${qtWrapperArgs[@]}"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://icanblink.com/";
+ description = "A state of the art, easy to use SIP client for Voice, Video and IM";
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch
new file mode 100644
index 000000000000..0df8bc84ff30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch
@@ -0,0 +1,49 @@
+--- blink-2.0.0/blink/resources.py 2016-03-09 14:39:07.000000000 +0100
++++ blink-2.0.0/blink/resources-patched.py 2016-03-12 21:34:14.965476623 +0100
+@@ -1,7 +1,10 @@
++# Copyright (C) 2010-2013 AG Projects. See LICENSE for details.
++#
+
+ """Provide access to Blink's resources"""
+
+-import __main__
++__all__ = ['ApplicationData', 'Resources', 'IconManager']
++
+ import imghdr
+ import os
+ import platform
+@@ -19,14 +22,10 @@
+ from blink.util import run_in_gui_thread
+
+
+-__all__ = ['ApplicationData', 'Resources', 'IconManager']
+-
+-
+ class DirectoryContextManager(unicode):
+ def __enter__(self):
+ self.directory = os.getcwdu()
+ os.chdir(self)
+-
+ def __exit__(self, type, value, traceback):
+ os.chdir(self.directory)
+
+@@ -61,18 +60,7 @@
+ @classproperty
+ def directory(cls):
+ if cls._cached_directory is None:
+- try:
+- binary_directory = os.path.dirname(os.path.realpath(__main__.__file__))
+- except AttributeError:
+- if hasattr(sys, 'frozen'):
+- application_directory = os.path.dirname(os.path.realpath(sys.executable))
+- else:
+- application_directory = os.path.realpath('') # executed in interactive interpreter
+- else:
+- if os.path.basename(binary_directory) == 'bin':
+- application_directory = os.path.dirname(binary_directory)
+- else:
+- application_directory = binary_directory
++ application_directory = '@out@'
+ if os.path.exists(os.path.join(application_directory, 'resources', 'blink.ui')):
+ cls._cached_directory = os.path.join(application_directory, 'resources').decode(sys.getfilesystemencoding())
+ else:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
new file mode 100644
index 000000000000..8b6348340587
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -0,0 +1,126 @@
+{ stdenv
+, lib
+, fetchurl
+, rpmextract
+, libnotify
+, libuuid
+, cairo
+, cups
+, pango
+, fontconfig
+, udev
+, dbus
+, gtk3
+, atk
+, at-spi2-atk
+, expat
+, gdk-pixbuf
+, freetype
+, nspr
+, glib
+, nss
+, libX11
+, libXrandr
+, libXrender
+, libXtst
+, libXdamage
+, libxcb
+, libXcursor
+, libXi
+, libXext
+, libXfixes
+, libXft
+, libXcomposite
+, libXScrnSaver
+, alsaLib
+, pulseaudio
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bluejeans";
+ version = "2.17.0";
+ buildNumber = "11";
+
+ src = fetchurl {
+ url = "https://swdl.bluejeans.com/desktop-app/linux/${version}/BlueJeans_${version}.${buildNumber}.rpm";
+ sha256 = "1h5jbnp5bwy6bpma9a1ia08v7bpz09fm66jsip470k1r7vjjwa68";
+ };
+
+ nativeBuildInputs = [ rpmextract makeWrapper ];
+
+ libPath =
+ stdenv.lib.makeLibraryPath
+ [
+ libnotify
+ libuuid
+ cairo
+ cups
+ pango
+ fontconfig
+ gtk3
+ atk
+ at-spi2-atk
+ expat
+ gdk-pixbuf
+ dbus
+ (lib.getLib udev)
+ freetype
+ nspr
+ glib
+ stdenv.cc.cc.lib
+ nss
+ libX11
+ libXrandr
+ libXrender
+ libXtst
+ libXdamage
+ libxcb
+ libXcursor
+ libXi
+ libXext
+ libXfixes
+ libXft
+ libXcomposite
+ libXScrnSaver
+ alsaLib
+ pulseaudio
+ ];
+
+ localtime64_stub = ./localtime64_stub.c;
+
+ buildCommand = ''
+ mkdir -p $out/bin/
+ cd $out
+ rpmextract $src
+ mv usr/share share
+ rmdir usr
+
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ --replace-needed libudev.so.0 libudev.so.1 \
+ opt/BlueJeans/bluejeans-v2
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ opt/BlueJeans/resources/BluejeansHelper
+
+ cc $localtime64_stub -shared -o "$out"/opt/BlueJeans/liblocaltime64_stub.so
+
+ makeWrapper $out/opt/BlueJeans/bluejeans-v2 $out/bin/bluejeans \
+ --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/opt/BlueJeans \
+ --set LD_PRELOAD "$out"/opt/BlueJeans/liblocaltime64_stub.so
+
+ substituteInPlace "$out"/share/applications/bluejeans-v2.desktop \
+ --replace "/opt/BlueJeans/bluejeans-v2" "$out/bin/bluejeans"
+
+ patchShebangs "$out"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day";
+ homepage = "https://www.bluejeans.com";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ veprbl ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c
new file mode 100644
index 000000000000..87c2fa11714c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+void *localtime64() {
+ fprintf(stderr, "nixpkgs: call into localtime64_r\n");
+ abort();
+}
+
+void *localtime64_r() {
+ fprintf(stderr, "nixpkgs: call into localtime64_r\n");
+ abort();
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix
new file mode 100644
index 000000000000..52d8178764c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, gnused, openssl, curl, ncurses, libjpeg
+, withGpg ? true, gpgme ? null}:
+
+stdenv.mkDerivation rec {
+ version = "5.0.1";
+ pname = "centerim5";
+
+ src = fetchurl {
+ url = "http://centerim.org/download/cim5/${pname}-${version}.tar.gz";
+ sha256 = "0viz86jflp684vfginhl6aaw4gh2qvalc25anlwljjl3kkmibklk";
+ };
+
+ CXXFLAGS = "-std=gnu++98";
+
+ buildInputs = [ openssl curl ncurses libjpeg ]
+ ++ stdenv.lib.optional withGpg gpgme;
+
+ preConfigure = ''
+ ${gnused}/bin/sed -i '1,1i#include <stdio.h>' libicq2000/libicq2000/sigslot.h
+ '';
+
+ configureFlags = [
+ "--with-openssl=${openssl.dev}"
+ ];
+
+ meta = {
+ homepage = "http://www.centerim.org/";
+ description = "Fork of CenterICQ, a curses instant messaging program";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
new file mode 100644
index 000000000000..617c02de2635
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, stdenv, lib, pkgconfig, fetchFromGitHub, qtbase, qtsvg, qtmultimedia, qmake, boost, openssl, wrapQtAppsHook }:
+
+mkDerivation rec {
+ pname = "chatterino2";
+ version = "2.2.2";
+ src = fetchFromGitHub {
+ owner = "Chatterino";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "026cs48hmqkv7k4akbm205avj2pn3x1g7q46chwa707k9km325dz";
+ fetchSubmodules = true;
+ };
+ nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
+ buildInputs = [ qtbase qtsvg qtmultimedia boost openssl ];
+ postInstall = lib.optionalString stdenv.isDarwin ''
+ mkdir -p "$out/Applications"
+ mv bin/chatterino.app "$out/Applications/"
+ '';
+ postFixup = lib.optionalString stdenv.isDarwin ''
+ wrapQtApp "$out/Applications/chatterino.app/Contents/MacOS/chatterino"
+ '';
+ meta = with lib; {
+ description = "A chat client for Twitch chat";
+ longDescription = ''
+ Chatterino is a chat client for Twitch chat. It aims to be an
+ improved/extended version of the Twitch web chat. Chatterino 2 is
+ the second installment of the Twitch chat client series
+ "Chatterino".
+ '';
+ homepage = "https://github.com/Chatterino/chatterino2";
+ changelog = "https://github.com/Chatterino/chatterino2/blob/master/CHANGELOG.md";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ rexim ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix
new file mode 100644
index 000000000000..d3633e2245ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "cordless";
+ version = "2020-11-22";
+
+ src = fetchFromGitHub {
+ owner = "Bios-Marcel";
+ repo = pname;
+ rev = version;
+ sha256 = "0avf09b73fs3wpb4fzmm6ka595aanfvp95m6xj1ccxvq8ciwpqcw";
+ };
+
+ subPackages = [ "." ];
+
+ vendorSha256 = "01anbhwgwam70dymcmvkia1xpw48658rq7wv4m7fiavxvnli6z2y";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Bios-Marcel/cordless";
+ description = "Discord terminal client";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ colemickens ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
new file mode 100644
index 000000000000..67c2a0db2372
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig,
+ cairo, gdk-pixbuf, glib, gnome3, wrapGAppsHook, gtk3 }:
+
+buildGoPackage rec {
+ pname = "coyim";
+ version = "0.3.11";
+
+ goPackagePath = "github.com/coyim/coyim";
+
+ src = fetchFromGitHub {
+ owner = "coyim";
+ repo = "coyim";
+ rev = "v${version}";
+ sha256 = "1g8nf56j17rdhhj7pv3ha1rb2mfc0mdvyzl35pgcki08w7iw08j3";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+
+ buildInputs = [ glib cairo gdk-pixbuf gtk3 gnome3.adwaita-icon-theme ];
+
+ meta = with stdenv.lib; {
+ description = "a safe and secure chat client";
+ homepage = "https://coy.im/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
new file mode 100644
index 000000000000..e58e73fdc85b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchurl, appimageTools }:
+
+let
+ pname = "deltachat-electron";
+ version = "1.3.0";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url =
+ "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
+ sha256 = "1xyp8cg11px8rras12sncjmq85alyvz7ycw1v1py8w8rlz60wkij";
+ };
+
+ appimageContents = appimageTools.extract { inherit name src; };
+
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D \
+ ${appimageContents}/deltachat-desktop.desktop \
+ $out/share/applications/${pname}.desktop
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ cp -r ${appimageContents}/usr/share/icons $out/share
+ '';
+
+ meta = with lib; {
+ description = "Electron client for DeltaChat";
+ homepage = "https://delta.chat/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ehmry ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
new file mode 100644
index 000000000000..03508c2ffb53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -0,0 +1,89 @@
+{ lib, stdenv, fetchFromGitHub
+, vala, cmake, ninja, wrapGAppsHook, pkgconfig, gettext
+, gobject-introspection, gnome3, glib, gdk-pixbuf, gtk3, glib-networking
+, xorg, libXdmcp, libxkbcommon
+, libnotify, libsoup, libgee
+, librsvg, libsignal-protocol-c
+, fetchpatch
+, libgcrypt
+, epoxy
+, at-spi2-core
+, sqlite
+, dbus
+, gpgme
+, pcre
+, qrencode
+, icu
+ }:
+
+stdenv.mkDerivation rec {
+ pname = "dino";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "dino";
+ repo = "dino";
+ rev = "v${version}";
+ sha256 = "0wy1hb3kz3k4gqqwx308n37cqag2d017jwfz0b5s30nkx2pbwspw";
+ };
+
+ nativeBuildInputs = [
+ vala
+ cmake
+ ninja
+ pkgconfig
+ wrapGAppsHook
+ gettext
+ ];
+
+ buildInputs = [
+ qrencode
+ gobject-introspection
+ glib-networking
+ glib
+ libgee
+ gnome3.adwaita-icon-theme
+ sqlite
+ gdk-pixbuf
+ gtk3
+ libnotify
+ gpgme
+ libgcrypt
+ libsoup
+ pcre
+ epoxy
+ at-spi2-core
+ dbus
+ icu
+ libsignal-protocol-c
+ librsvg
+ ] ++ lib.optionals (!stdenv.isDarwin) [
+ xorg.libxcb
+ xorg.libpthreadstubs
+ libXdmcp
+ libxkbcommon
+ ];
+
+ # Dino looks for plugins with a .so filename extension, even on macOS where
+ # .dylib is appropriate, and despite the fact that it builds said plugins with
+ # that as their filename extension
+ #
+ # Therefore, on macOS rename all of the plugins to use correct names that Dino
+ # will load
+ #
+ # See https://github.com/dino/dino/wiki/macOS
+ postFixup = lib.optionalString (stdenv.isDarwin) ''
+ cd "$out/lib/dino/plugins/"
+ for f in *.dylib; do
+ mv "$f" "$(basename "$f" .dylib).so"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Modern Jabber/XMPP Client using GTK/Vala";
+ homepage = "https://github.com/dino/dino";
+ license = licenses.gpl3;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ mic92 qyliss ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
new file mode 100644
index 000000000000..46c0cbef669e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
@@ -0,0 +1,80 @@
+{ pname, version, src, binaryName, desktopName
+, autoPatchelfHook, fetchurl, makeDesktopItem, stdenv, wrapGAppsHook
+, alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig
+, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
+, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
+, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb
+, mesa, nspr, nss, pango, systemd, libappindicator-gtk3, libdbusmenu
+}:
+
+let
+ inherit binaryName;
+in stdenv.mkDerivation rec {
+ inherit pname version src;
+
+ nativeBuildInputs = [
+ alsaLib
+ autoPatchelfHook
+ cups
+ libdrm
+ libuuid
+ libX11
+ libXScrnSaver
+ libXtst
+ libxcb
+ mesa.drivers
+ nss
+ wrapGAppsHook
+ ];
+
+ dontWrapGApps = true;
+
+ libPath = stdenv.lib.makeLibraryPath [
+ libcxx systemd libpulseaudio
+ stdenv.cc.cc alsaLib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype
+ gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
+ libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
+ libXtst nspr nss libxcb pango systemd libXScrnSaver
+ libappindicator-gtk3 libdbusmenu
+ ];
+
+ installPhase = ''
+ mkdir -p $out/{bin,opt/${binaryName},share/pixmaps}
+ mv * $out/opt/${binaryName}
+
+ chmod +x $out/opt/${binaryName}/${binaryName}
+ patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
+ $out/opt/${binaryName}/${binaryName}
+
+ wrapProgram $out/opt/${binaryName}/${binaryName} \
+ "''${gappsWrapperArgs[@]}" \
+ --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
+ --prefix LD_LIBRARY_PATH : ${libPath}
+
+ ln -s $out/opt/${binaryName}/${binaryName} $out/bin/
+ ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png
+
+ ln -s "${desktopItem}/share/applications" $out/share/
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = binaryName;
+ icon = pname;
+ inherit desktopName;
+ genericName = meta.description;
+ categories = "Network;InstantMessaging;";
+ mimeType = "x-scheme-handler/discord";
+ };
+
+ passthru.updateScript = ./update-discord.sh;
+
+ meta = with stdenv.lib; {
+ description = "All-in-one cross-platform voice and text chat for gamers";
+ homepage = "https://discordapp.com/";
+ downloadPage = "https://discordapp.com/download";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ ldesgoui MP2E tadeokondrak ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
new file mode 100644
index 000000000000..570fe463c5ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -0,0 +1,36 @@
+{ branch ? "stable", pkgs }:
+# Generated by ./update-discord.sh
+let
+ inherit (pkgs) callPackage fetchurl;
+in {
+ stable = callPackage ./base.nix rec {
+ pname = "discord";
+ binaryName = "Discord";
+ desktopName = "Discord";
+ version = "0.0.13";
+ src = fetchurl {
+ url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
+ sha256 = "0d5z6cbj9dg3hjw84pyg75f8dwdvi2mqxb9ic8dfqzk064ssiv7y";
+ };
+ };
+ ptb = callPackage ./base.nix rec {
+ pname = "discord-ptb";
+ binaryName = "DiscordPTB";
+ desktopName = "Discord PTB";
+ version = "0.0.23";
+ src = fetchurl {
+ url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
+ sha256 = "0vxz68vldrbmmw1alpwl7blfcy6byd6zg9m0851dm0p0ldyhsp5j";
+ };
+ };
+ canary = callPackage ./base.nix rec {
+ pname = "discord-canary";
+ binaryName = "DiscordCanary";
+ desktopName = "Discord Canary";
+ version = "0.0.116";
+ src = fetchurl {
+ url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
+ sha256 = "14kg85gz91f9mvvnl5p1lwz40rm47bca3a8dwv4618zv6vncgmkp";
+ };
+ };
+}.${branch}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh
new file mode 100755
index 000000000000..34c1574c65aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+# script to generate ./default.nix
+
+set -e
+exec >"${BASH_SOURCE%/*}/default.nix"
+
+cat <<EOF
+{ branch ? "stable", pkgs }:
+# Generated by ./update-discord.sh
+let
+ inherit (pkgs) callPackage fetchurl;
+in {
+EOF
+
+for branch in "" ptb canary; do
+ url=$(curl -sI "https://discordapp.com/api/download${branch:+/}${branch}?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+')
+ version=${url##https://dl*.discordapp.net/apps/linux/}
+ version=${version%%/*.tar.gz}
+ echo " ${branch:-stable} = callPackage ./base.nix rec {"
+ echo " pname = \"discord${branch:+-}${branch}\";"
+ case $branch in
+ "") suffix="" ;;
+ ptb) suffix="PTB" ;;
+ canary) suffix="Canary" ;;
+ esac
+ echo " binaryName = \"Discord${suffix}\";"
+ echo " desktopName = \"Discord${suffix:+ }${suffix}\";"
+ echo " version = \"${version}\";"
+ echo " src = fetchurl {"
+ echo " url = \"${url//${version}/\$\{version\}}\";"
+ echo " sha256 = \"$(nix-prefetch-url "$url")\";"
+ echo " };"
+ echo " };"
+done
+
+echo "}.\${branch}"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
new file mode 100644
index 000000000000..f2d882ad75e4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -0,0 +1,113 @@
+{
+ "name": "element-desktop",
+ "productName": "Element",
+ "main": "src/electron-main.js",
+ "version": "1.7.14",
+ "description": "A feature-rich client for Matrix.org",
+ "author": "Element",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/vector-im/riot-desktop"
+ },
+ "license": "Apache-2.0",
+ "files": [],
+ "scripts": {
+ "mkdirs": "mkdirp packages deploys",
+ "fetch": "yarn run mkdirs && node scripts/fetch-package.js",
+ "asar-webapp": "asar p webapp webapp.asar",
+ "start": "electron .",
+ "lint": "eslint src/ scripts/ hak/",
+ "build:native": "yarn run hak",
+ "build32": "electron-builder --ia32",
+ "build64": "electron-builder --x64",
+ "build": "electron-builder",
+ "docker:setup": "docker build -t riot-desktop-dockerbuild dockerbuild",
+ "docker:build:native": "scripts/in-docker.sh yarn run hak",
+ "docker:build": "scripts/in-docker.sh yarn run build",
+ "docker:install": "scripts/in-docker.sh yarn install",
+ "debrepo": "scripts/mkrepo.sh",
+ "clean": "rimraf webapp.asar dist packages deploys",
+ "hak": "node scripts/hak/index.js"
+ },
+ "dependencies": {
+ "auto-launch": "^5.0.1",
+ "electron-store": "^2.0.0",
+ "electron-window-state": "^4.1.0",
+ "minimist": "^1.2.3",
+ "png-to-ico": "^2.1.0",
+ "request": "^2.88.2"
+ },
+ "devDependencies": {
+ "asar": "^2.0.1",
+ "electron-builder": "^22.7.0",
+ "electron-builder-squirrel-windows": "^22.7.0",
+ "electron-devtools-installer": "^2.2.4",
+ "electron-notarize": "^0.2.0",
+ "eslint": "7.3.1",
+ "eslint-config-matrix-org": "^0.1.2",
+ "find-npm-prefix": "^1.0.2",
+ "fs-extra": "^8.1.0",
+ "glob": "^7.1.6",
+ "mkdirp": "^1.0.3",
+ "needle": "^2.5.0",
+ "node-pre-gyp": "^0.15.0",
+ "npm": "^6.14.6",
+ "rimraf": "^3.0.2",
+ "semver": "^7.1.3",
+ "tar": "^6.0.1"
+ },
+ "hakDependencies": {
+ "matrix-seshat": "^2.2.1",
+ "keytar": "^5.6.0"
+ },
+ "build": {
+ "appId": "im.riot.app",
+ "electronVersion": "10.1.3",
+ "files": [
+ "package.json",
+ {
+ "from": ".hak/hakModules",
+ "to": "node_modules"
+ },
+ "src/**"
+ ],
+ "extraResources": [
+ {
+ "from": "res/img",
+ "to": "img"
+ },
+ "webapp.asar"
+ ],
+ "linux": {
+ "target": "deb",
+ "category": "Network;InstantMessaging;Chat",
+ "maintainer": "support@element.io",
+ "desktop": {
+ "StartupWMClass": "element"
+ }
+ },
+ "mac": {
+ "category": "public.app-category.social-networking",
+ "darkModeSupport": true
+ },
+ "win": {
+ "target": {
+ "target": "squirrel"
+ },
+ "sign": "scripts/electron_winSign"
+ },
+ "directories": {
+ "output": "dist"
+ },
+ "afterPack": "scripts/electron_afterPack",
+ "afterSign": "scripts/electron_afterSign",
+ "protocols": [
+ {
+ "name": "element",
+ "schemes": [
+ "element"
+ ]
+ }
+ ]
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
new file mode 100644
index 000000000000..21374014c886
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
@@ -0,0 +1,6773 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+ {
+ name = "7zip_bin___7zip_bin_5.0.3.tgz";
+ path = fetchurl {
+ name = "7zip_bin___7zip_bin_5.0.3.tgz";
+ url = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz";
+ sha1 = "bc5b5532ecafd923a61f2fb097e3b108c0106a3f";
+ };
+ }
+ {
+ name = "7zip___7zip_0.0.6.tgz";
+ path = fetchurl {
+ name = "7zip___7zip_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/7zip/-/7zip-0.0.6.tgz";
+ sha1 = "9cafb171af82329490353b4816f03347aa150a30";
+ };
+ }
+ {
+ name = "_babel_code_frame___code_frame_7.5.5.tgz";
+ path = fetchurl {
+ name = "_babel_code_frame___code_frame_7.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz";
+ sha1 = "bc0782f6d69f7b7d49531219699b988f669a8f9d";
+ };
+ }
+ {
+ name = "_babel_code_frame___code_frame_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_code_frame___code_frame_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
+ sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+ };
+ }
+ {
+ name = "_babel_generator___generator_7.10.5.tgz";
+ path = fetchurl {
+ name = "_babel_generator___generator_7.10.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz";
+ sha1 = "1b903554bc8c583ee8d25f1e8969732e6b829a69";
+ };
+ }
+ {
+ name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+ sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+ };
+ }
+ {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+ sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
+ };
+ }
+ {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz";
+ sha1 = "2c70576eaa3b5609b24cb99db2888cc3fc4251d1";
+ };
+ }
+ {
+ name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+ sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+ };
+ }
+ {
+ name = "_babel_highlight___highlight_7.5.0.tgz";
+ path = fetchurl {
+ name = "_babel_highlight___highlight_7.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz";
+ sha1 = "56d11312bd9248fa619591d02472be6e8cb32540";
+ };
+ }
+ {
+ name = "_babel_highlight___highlight_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_highlight___highlight_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
+ sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+ };
+ }
+ {
+ name = "_babel_parser___parser_7.10.5.tgz";
+ path = fetchurl {
+ name = "_babel_parser___parser_7.10.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz";
+ sha1 = "e7c6bf5a7deff957cec9f04b551e2762909d826b";
+ };
+ }
+ {
+ name = "_babel_runtime___runtime_7.11.2.tgz";
+ path = fetchurl {
+ name = "_babel_runtime___runtime_7.11.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz";
+ sha1 = "f549c13c754cc40b87644b9fa9f09a6a95fe0736";
+ };
+ }
+ {
+ name = "_babel_template___template_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_template___template_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
+ sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+ };
+ }
+ {
+ name = "_babel_traverse___traverse_7.10.5.tgz";
+ path = fetchurl {
+ name = "_babel_traverse___traverse_7.10.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz";
+ sha1 = "77ce464f5b258be265af618d8fddf0536f20b564";
+ };
+ }
+ {
+ name = "_babel_types___types_7.10.5.tgz";
+ path = fetchurl {
+ name = "_babel_types___types_7.10.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz";
+ sha1 = "d88ae7e2fde86bfbfe851d4d81afa70a997b5d15";
+ };
+ }
+ {
+ name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
+ path = fetchurl {
+ name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
+ url = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz";
+ sha1 = "3ece22c5838402419a6e0425f85742b961d9b6c6";
+ };
+ }
+ {
+ name = "_iarna_cli___cli_1.2.0.tgz";
+ path = fetchurl {
+ name = "_iarna_cli___cli_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@iarna/cli/-/cli-1.2.0.tgz";
+ sha1 = "0f7af5e851afe895104583c4ca07377a8094d641";
+ };
+ }
+ {
+ name = "_jimp_bmp___bmp_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_bmp___bmp_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.9.8.tgz";
+ sha1 = "5933ab8fb359889bec380b0f7802163374933624";
+ };
+ }
+ {
+ name = "_jimp_core___core_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_core___core_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/core/-/core-0.9.8.tgz";
+ sha1 = "b2b74263a80559c0ee244e0f2d1052b36a358b85";
+ };
+ }
+ {
+ name = "_jimp_custom___custom_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_custom___custom_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.9.8.tgz";
+ sha1 = "1e9d904b1b05aa22b00b899baba2be7c0704a5d1";
+ };
+ }
+ {
+ name = "_jimp_gif___gif_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_gif___gif_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.9.8.tgz";
+ sha1 = "513aff511634c338d1ab33a7bba1ba3412220b5b";
+ };
+ }
+ {
+ name = "_jimp_jpeg___jpeg_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_jpeg___jpeg_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.9.8.tgz";
+ sha1 = "8c086f69d0e8c46e43a7db9725576edc30925cb1";
+ };
+ }
+ {
+ name = "_jimp_plugin_blit___plugin_blit_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_blit___plugin_blit_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.9.8.tgz";
+ sha1 = "916bf6f261e6a91dbecca0ca866b8d9cba563753";
+ };
+ }
+ {
+ name = "_jimp_plugin_blur___plugin_blur_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_blur___plugin_blur_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.9.8.tgz";
+ sha1 = "00055d54b90532b7951dae377b3e40352c187f07";
+ };
+ }
+ {
+ name = "_jimp_plugin_circle___plugin_circle_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_circle___plugin_circle_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.9.8.tgz";
+ sha1 = "5de8735f32f931d9160d0f5211e9aab6413a1d4b";
+ };
+ }
+ {
+ name = "_jimp_plugin_color___plugin_color_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_color___plugin_color_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.9.8.tgz";
+ sha1 = "3c633f22955a4f5013025e9e9e78a267ac4c3a88";
+ };
+ }
+ {
+ name = "_jimp_plugin_contain___plugin_contain_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_contain___plugin_contain_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.9.8.tgz";
+ sha1 = "f892fb7fc87134a47b37281f0ff17d608f3e51af";
+ };
+ }
+ {
+ name = "_jimp_plugin_cover___plugin_cover_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_cover___plugin_cover_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.9.8.tgz";
+ sha1 = "37474b19027ac0155100b71ca17266aab19e50fc";
+ };
+ }
+ {
+ name = "_jimp_plugin_crop___plugin_crop_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_crop___plugin_crop_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.9.8.tgz";
+ sha1 = "2308696597a8bcb528d09eeebbbadb22248e7c1c";
+ };
+ }
+ {
+ name = "_jimp_plugin_displace___plugin_displace_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_displace___plugin_displace_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.9.8.tgz";
+ sha1 = "00331047039cb2d0d9d5f7c3d8ce542e07eea791";
+ };
+ }
+ {
+ name = "_jimp_plugin_dither___plugin_dither_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_dither___plugin_dither_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.9.8.tgz";
+ sha1 = "9cca12997f2917f27d5681275b32affdb3083450";
+ };
+ }
+ {
+ name = "_jimp_plugin_fisheye___plugin_fisheye_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_fisheye___plugin_fisheye_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.9.8.tgz";
+ sha1 = "e3f5f616ec06a9ef99aa268446f0096eac863437";
+ };
+ }
+ {
+ name = "_jimp_plugin_flip___plugin_flip_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_flip___plugin_flip_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.9.8.tgz";
+ sha1 = "c00559a8543a684c7cff4d1128b7152e598fbb1c";
+ };
+ }
+ {
+ name = "_jimp_plugin_gaussian___plugin_gaussian_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_gaussian___plugin_gaussian_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.9.8.tgz";
+ sha1 = "d1666167ce1b947b65db5093bb9a00d319bcfe4d";
+ };
+ }
+ {
+ name = "_jimp_plugin_invert___plugin_invert_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_invert___plugin_invert_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.9.8.tgz";
+ sha1 = "41d6e87faf01a5d8fe7554e322d2aad25f596ab1";
+ };
+ }
+ {
+ name = "_jimp_plugin_mask___plugin_mask_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_mask___plugin_mask_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.9.8.tgz";
+ sha1 = "fe92132db1a2b9f7718226bc3c37794dd148ce36";
+ };
+ }
+ {
+ name = "_jimp_plugin_normalize___plugin_normalize_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_normalize___plugin_normalize_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.9.8.tgz";
+ sha1 = "05646aa15b6a789c4ba447edcad77c83c1d51f16";
+ };
+ }
+ {
+ name = "_jimp_plugin_print___plugin_print_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_print___plugin_print_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.9.8.tgz";
+ sha1 = "808f723176d0a57186d7558290c7e53a7a8bf812";
+ };
+ }
+ {
+ name = "_jimp_plugin_resize___plugin_resize_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_resize___plugin_resize_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz";
+ sha1 = "eef750b77f1cc06e8bcf9b390860c95c489dcc02";
+ };
+ }
+ {
+ name = "_jimp_plugin_rotate___plugin_rotate_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_rotate___plugin_rotate_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.9.8.tgz";
+ sha1 = "5eba01f75a397777c6782b7999c9ac6c7ed8a411";
+ };
+ }
+ {
+ name = "_jimp_plugin_scale___plugin_scale_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_scale___plugin_scale_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.9.8.tgz";
+ sha1 = "c875d5e0b377b15b8b398ee402f45e3fc43fea40";
+ };
+ }
+ {
+ name = "_jimp_plugin_shadow___plugin_shadow_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_shadow___plugin_shadow_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.9.8.tgz";
+ sha1 = "ca2d18afa29a1027b77b3e1fb2ce7d4e073a7170";
+ };
+ }
+ {
+ name = "_jimp_plugin_threshold___plugin_threshold_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugin_threshold___plugin_threshold_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.9.8.tgz";
+ sha1 = "2d1dde0791f70b2ff2d0b915cab8d40b0e446594";
+ };
+ }
+ {
+ name = "_jimp_plugins___plugins_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_plugins___plugins_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.9.8.tgz";
+ sha1 = "5279dfe22d0d27633f4201ab36103e587b32eb85";
+ };
+ }
+ {
+ name = "_jimp_png___png_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_png___png_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/png/-/png-0.9.8.tgz";
+ sha1 = "f88dacc9b9da1c2ea8e91026a9530d0fb45c4409";
+ };
+ }
+ {
+ name = "_jimp_tiff___tiff_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_tiff___tiff_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.9.8.tgz";
+ sha1 = "91dc3eab2f222e23414f139e917f3407caa73560";
+ };
+ }
+ {
+ name = "_jimp_types___types_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_types___types_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/types/-/types-0.9.8.tgz";
+ sha1 = "46980a4a7bfcadf2f0484d187c32b4e7d6d61b8e";
+ };
+ }
+ {
+ name = "_jimp_utils___utils_0.9.8.tgz";
+ path = fetchurl {
+ name = "_jimp_utils___utils_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.9.8.tgz";
+ sha1 = "6a6f47158ec6b424f03df0f55f0baff5b4b5e096";
+ };
+ }
+ {
+ name = "_sindresorhus_is___is_0.14.0.tgz";
+ path = fetchurl {
+ name = "_sindresorhus_is___is_0.14.0.tgz";
+ url = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz";
+ sha1 = "9fb3a3cf3132328151f353de4632e01e52102bea";
+ };
+ }
+ {
+ name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
+ path = fetchurl {
+ name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
+ sha1 = "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421";
+ };
+ }
+ {
+ name = "_types_color_name___color_name_1.1.1.tgz";
+ path = fetchurl {
+ name = "_types_color_name___color_name_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz";
+ sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0";
+ };
+ }
+ {
+ name = "_types_debug___debug_4.1.5.tgz";
+ path = fetchurl {
+ name = "_types_debug___debug_4.1.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz";
+ sha1 = "b14efa8852b7768d898906613c23f688713e02cd";
+ };
+ }
+ {
+ name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ path = fetchurl {
+ name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+ sha1 = "1ee30d79544ca84d68d4b3cdb0af4f205663dd2d";
+ };
+ }
+ {
+ name = "_types_fs_extra___fs_extra_9.0.1.tgz";
+ path = fetchurl {
+ name = "_types_fs_extra___fs_extra_9.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz";
+ sha1 = "91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918";
+ };
+ }
+ {
+ name = "_types_json_schema___json_schema_7.0.5.tgz";
+ path = fetchurl {
+ name = "_types_json_schema___json_schema_7.0.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz";
+ sha1 = "dcce4430e64b443ba8945f0290fb564ad5bac6dd";
+ };
+ }
+ {
+ name = "_types_json5___json5_0.0.29.tgz";
+ path = fetchurl {
+ name = "_types_json5___json5_0.0.29.tgz";
+ url = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
+ sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
+ };
+ }
+ {
+ name = "_types_node___node_13.7.1.tgz";
+ path = fetchurl {
+ name = "_types_node___node_13.7.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz";
+ sha1 = "238eb34a66431b71d2aaddeaa7db166f25971a0d";
+ };
+ }
+ {
+ name = "_types_node___node_13.13.21.tgz";
+ path = fetchurl {
+ name = "_types_node___node_13.13.21.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-13.13.21.tgz";
+ sha1 = "e48d3c2e266253405cf404c8654d1bcf0d333e5c";
+ };
+ }
+ {
+ name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
+ path = fetchurl {
+ name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
+ sha1 = "cb3f9f741869e20cce330ffbeb9271590483882d";
+ };
+ }
+ {
+ name = "_types_yargs___yargs_15.0.5.tgz";
+ path = fetchurl {
+ name = "_types_yargs___yargs_15.0.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz";
+ sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
+ };
+ }
+ {
+ name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.7.0.tgz";
+ sha1 = "0f91aa3c83d019591719e597fbdb73a59595a263";
+ };
+ }
+ {
+ name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.7.0.tgz";
+ sha1 = "0ee21f6c48b2b30c63211da23827725078d5169a";
+ };
+ }
+ {
+ name = "_typescript_eslint_parser___parser_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_parser___parser_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.7.0.tgz";
+ sha1 = "3e9cd9df9ea644536feb6e5acdb8279ecff96ce9";
+ };
+ }
+ {
+ name = "_typescript_eslint_types___types_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_types___types_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.7.0.tgz";
+ sha1 = "09897fab0cb95479c01166b10b2c03c224821077";
+ };
+ }
+ {
+ name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.7.0.tgz";
+ sha1 = "66872e6da120caa4b64e6b4ca5c8702afc74738d";
+ };
+ }
+ {
+ name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.7.0.tgz";
+ sha1 = "ac0417d382a136e4571a0b0dcfe52088cb628177";
+ };
+ }
+ {
+ name = "JSONStream___JSONStream_1.3.5.tgz";
+ path = fetchurl {
+ name = "JSONStream___JSONStream_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz";
+ sha1 = "3208c1f08d3a4d99261ab64f92302bc15e111ca0";
+ };
+ }
+ {
+ 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_5.2.0.tgz";
+ path = fetchurl {
+ name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
+ sha1 = "4c66069173d6fdd68ed85239fc256226182b2ebe";
+ };
+ }
+ {
+ name = "acorn___acorn_7.3.1.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_7.3.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz";
+ sha1 = "85010754db53c3fbaf3b9ea3e083aa5c5d147ffd";
+ };
+ }
+ {
+ name = "agent_base___agent_base_4.3.0.tgz";
+ path = fetchurl {
+ name = "agent_base___agent_base_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz";
+ sha1 = "8165f01c436009bccad0b1d122f05ed770efc6ee";
+ };
+ }
+ {
+ name = "agent_base___agent_base_4.2.1.tgz";
+ path = fetchurl {
+ name = "agent_base___agent_base_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz";
+ sha1 = "d89e5999f797875674c07d87f260fc41e83e8ca9";
+ };
+ }
+ {
+ name = "agentkeepalive___agentkeepalive_3.5.2.tgz";
+ path = fetchurl {
+ name = "agentkeepalive___agentkeepalive_3.5.2.tgz";
+ url = "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz";
+ sha1 = "a113924dd3fa24a0bc3b78108c450c2abee00f67";
+ };
+ }
+ {
+ name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+ path = fetchurl {
+ name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+ url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
+ sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
+ };
+ }
+ {
+ name = "ajv___ajv_6.12.3.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.12.3.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz";
+ sha1 = "18c5af38a111ddeb4f2697bd78d68abc1cabd706";
+ };
+ }
+ {
+ name = "ajv___ajv_6.10.2.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.10.2.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz";
+ sha1 = "d3cea04d6b017b2894ad69040fec8b623eb4bd52";
+ };
+ }
+ {
+ name = "ajv___ajv_6.12.2.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.12.2.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz";
+ sha1 = "c629c5eced17baf314437918d2da88c99d5958cd";
+ };
+ }
+ {
+ name = "ajv___ajv_6.12.5.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.12.5.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz";
+ sha1 = "19b0e8bae8f476e5ba666300387775fb1a00a4da";
+ };
+ }
+ {
+ name = "ansi_align___ansi_align_2.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_align___ansi_align_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz";
+ sha1 = "c36aeccba563b89ceb556f3690f0b1d9e3547f7f";
+ };
+ }
+ {
+ name = "ansi_align___ansi_align_3.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_align___ansi_align_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz";
+ sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb";
+ };
+ }
+ {
+ name = "ansi_colors___ansi_colors_4.1.1.tgz";
+ path = fetchurl {
+ name = "ansi_colors___ansi_colors_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
+ sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
+ };
+ }
+ {
+ name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
+ path = fetchurl {
+ name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
+ sha1 = "a5c47cc43181f1f38ffd7076837700d395522a61";
+ };
+ }
+ {
+ 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.1.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
+ sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
+ };
+ }
+ {
+ name = "ansi_regex___ansi_regex_5.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
+ sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
+ };
+ }
+ {
+ 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 = "ansi_styles___ansi_styles_4.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz";
+ sha1 = "90ae75c424d008d2624c5bf29ead3177ebfcf359";
+ };
+ }
+ {
+ name = "ansicolors___ansicolors_0.3.2.tgz";
+ path = fetchurl {
+ name = "ansicolors___ansicolors_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz";
+ sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979";
+ };
+ }
+ {
+ name = "ansistyles___ansistyles_0.1.3.tgz";
+ path = fetchurl {
+ name = "ansistyles___ansistyles_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz";
+ sha1 = "5de60415bda071bb37127854c864f41b23254539";
+ };
+ }
+ {
+ name = "any_base___any_base_1.1.0.tgz";
+ path = fetchurl {
+ name = "any_base___any_base_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz";
+ sha1 = "ae101a62bc08a597b4c9ab5b7089d456630549fe";
+ };
+ }
+ {
+ name = "app_builder_bin___app_builder_bin_3.5.9.tgz";
+ path = fetchurl {
+ name = "app_builder_bin___app_builder_bin_3.5.9.tgz";
+ url = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.9.tgz";
+ sha1 = "a3ac0c25286bac68357321cb2eaf7128b0bc0a4f";
+ };
+ }
+ {
+ name = "app_builder_lib___app_builder_lib_22.7.0.tgz";
+ path = fetchurl {
+ name = "app_builder_lib___app_builder_lib_22.7.0.tgz";
+ url = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.7.0.tgz";
+ sha1 = "ccd3e7ece2d46bc209423a77aa142f74aaf65db0";
+ };
+ }
+ {
+ name = "applescript___applescript_1.0.0.tgz";
+ path = fetchurl {
+ name = "applescript___applescript_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz";
+ sha1 = "bb87af568cad034a4e48c4bdaf6067a3a2701317";
+ };
+ }
+ {
+ name = "aproba___aproba_1.2.0.tgz";
+ path = fetchurl {
+ name = "aproba___aproba_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+ sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+ };
+ }
+ {
+ name = "aproba___aproba_2.0.0.tgz";
+ path = fetchurl {
+ name = "aproba___aproba_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz";
+ sha1 = "52520b8ae5b569215b354efc0caa3fe1e45a8adc";
+ };
+ }
+ {
+ name = "archiver_utils___archiver_utils_2.1.0.tgz";
+ path = fetchurl {
+ name = "archiver_utils___archiver_utils_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz";
+ sha1 = "e8a460e94b693c3e3da182a098ca6285ba9249e2";
+ };
+ }
+ {
+ name = "archiver___archiver_4.0.1.tgz";
+ path = fetchurl {
+ name = "archiver___archiver_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/archiver/-/archiver-4.0.1.tgz";
+ sha1 = "3f722b121777e361ca9fad374ecda38e77e63c7f";
+ };
+ }
+ {
+ name = "archy___archy_1.0.0.tgz";
+ path = fetchurl {
+ name = "archy___archy_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz";
+ sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+ };
+ }
+ {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ path = fetchurl {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+ };
+ }
+ {
+ 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 = "array_includes___array_includes_3.1.1.tgz";
+ path = fetchurl {
+ name = "array_includes___array_includes_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz";
+ sha1 = "cdd67e6852bdf9c1215460786732255ed2459348";
+ };
+ }
+ {
+ name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+ path = fetchurl {
+ name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz";
+ sha1 = "0de82b426b0318dbfdb940089e38b043d37f6c7b";
+ };
+ }
+ {
+ name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+ path = fetchurl {
+ name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz";
+ sha1 = "1c13f84a178566042dd63de4414440db9222e443";
+ };
+ }
+ {
+ name = "asap___asap_2.0.6.tgz";
+ path = fetchurl {
+ name = "asap___asap_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz";
+ sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+ };
+ }
+ {
+ name = "asar___asar_2.0.1.tgz";
+ path = fetchurl {
+ name = "asar___asar_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/asar/-/asar-2.0.1.tgz";
+ sha1 = "8518a1c62c238109c15a5f742213e83a09b9fd38";
+ };
+ }
+ {
+ name = "asn1___asn1_0.2.4.tgz";
+ path = fetchurl {
+ name = "asn1___asn1_0.2.4.tgz";
+ url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
+ sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+ };
+ }
+ {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ }
+ {
+ 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 = "async_exit_hook___async_exit_hook_2.0.1.tgz";
+ path = fetchurl {
+ name = "async_exit_hook___async_exit_hook_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz";
+ sha1 = "8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3";
+ };
+ }
+ {
+ name = "async___async_0.9.2.tgz";
+ path = fetchurl {
+ name = "async___async_0.9.2.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
+ sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+ };
+ }
+ {
+ name = "async___async_2.6.3.tgz";
+ path = fetchurl {
+ name = "async___async_2.6.3.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
+ sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
+ };
+ }
+ {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ path = fetchurl {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ }
+ {
+ name = "at_least_node___at_least_node_1.0.0.tgz";
+ path = fetchurl {
+ name = "at_least_node___at_least_node_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz";
+ sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2";
+ };
+ }
+ {
+ name = "auto_launch___auto_launch_5.0.5.tgz";
+ path = fetchurl {
+ name = "auto_launch___auto_launch_5.0.5.tgz";
+ url = "https://registry.yarnpkg.com/auto-launch/-/auto-launch-5.0.5.tgz";
+ sha1 = "d14bd002b1ef642f85e991a6195ff5300c8ad3c0";
+ };
+ }
+ {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ path = fetchurl {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ }
+ {
+ name = "aws4___aws4_1.9.0.tgz";
+ path = fetchurl {
+ name = "aws4___aws4_1.9.0.tgz";
+ url = "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz";
+ sha1 = "24390e6ad61386b0a747265754d2a17219de862c";
+ };
+ }
+ {
+ name = "babel_eslint___babel_eslint_10.1.0.tgz";
+ path = fetchurl {
+ name = "babel_eslint___babel_eslint_10.1.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz";
+ sha1 = "6968e568a910b78fb3779cdd8b6ac2f479943232";
+ };
+ }
+ {
+ 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 = "base64_js___base64_js_1.3.1.tgz";
+ path = fetchurl {
+ name = "base64_js___base64_js_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz";
+ sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1";
+ };
+ }
+ {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ path = fetchurl {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ }
+ {
+ name = "bin_links___bin_links_1.1.7.tgz";
+ path = fetchurl {
+ name = "bin_links___bin_links_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.7.tgz";
+ sha1 = "34b79ea9d0e575d7308afeff0c6b2fc24c793359";
+ };
+ }
+ {
+ name = "bl___bl_4.0.3.tgz";
+ path = fetchurl {
+ name = "bl___bl_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz";
+ sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489";
+ };
+ }
+ {
+ name = "bluebird_lst___bluebird_lst_1.0.9.tgz";
+ path = fetchurl {
+ name = "bluebird_lst___bluebird_lst_1.0.9.tgz";
+ url = "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz";
+ sha1 = "a64a0e4365658b9ab5fe875eb9dfb694189bb41c";
+ };
+ }
+ {
+ name = "bluebird___bluebird_3.7.2.tgz";
+ path = fetchurl {
+ name = "bluebird___bluebird_3.7.2.tgz";
+ url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
+ sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
+ };
+ }
+ {
+ name = "bmp_js___bmp_js_0.1.0.tgz";
+ path = fetchurl {
+ name = "bmp_js___bmp_js_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz";
+ sha1 = "e05a63f796a6c1ff25f4771ec7adadc148c07233";
+ };
+ }
+ {
+ name = "boxen___boxen_1.3.0.tgz";
+ path = fetchurl {
+ name = "boxen___boxen_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz";
+ sha1 = "55c6c39a8ba58d9c61ad22cd877532deb665a20b";
+ };
+ }
+ {
+ name = "boxen___boxen_4.2.0.tgz";
+ path = fetchurl {
+ name = "boxen___boxen_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz";
+ sha1 = "e411b62357d6d6d36587c8ac3d5d974daa070e64";
+ };
+ }
+ {
+ 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 = "buffer_crc32___buffer_crc32_0.2.13.tgz";
+ path = fetchurl {
+ name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
+ url = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz";
+ sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
+ };
+ }
+ {
+ name = "buffer_equal___buffer_equal_0.0.1.tgz";
+ path = fetchurl {
+ name = "buffer_equal___buffer_equal_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz";
+ sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b";
+ };
+ }
+ {
+ 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 = "buffer___buffer_5.6.0.tgz";
+ path = fetchurl {
+ name = "buffer___buffer_5.6.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz";
+ sha1 = "a31749dc7d81d84db08abf937b6b8c4033f62786";
+ };
+ }
+ {
+ name = "builder_util_runtime___builder_util_runtime_8.7.1.tgz";
+ path = fetchurl {
+ name = "builder_util_runtime___builder_util_runtime_8.7.1.tgz";
+ url = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz";
+ sha1 = "23c808cddd650d4376a7a1518ec1e80e85c10f00";
+ };
+ }
+ {
+ name = "builder_util___builder_util_22.7.0.tgz";
+ path = fetchurl {
+ name = "builder_util___builder_util_22.7.0.tgz";
+ url = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.7.0.tgz";
+ sha1 = "0776a66e6d6e408a78bed7f17a7ad22516d9e7f0";
+ };
+ }
+ {
+ name = "builtins___builtins_1.0.3.tgz";
+ path = fetchurl {
+ name = "builtins___builtins_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz";
+ sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88";
+ };
+ }
+ {
+ name = "byline___byline_5.0.0.tgz";
+ path = fetchurl {
+ name = "byline___byline_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz";
+ sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
+ };
+ }
+ {
+ name = "byte_size___byte_size_5.0.1.tgz";
+ path = fetchurl {
+ name = "byte_size___byte_size_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz";
+ sha1 = "4b651039a5ecd96767e71a3d7ed380e48bed4191";
+ };
+ }
+ {
+ name = "cacache___cacache_12.0.3.tgz";
+ path = fetchurl {
+ name = "cacache___cacache_12.0.3.tgz";
+ url = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz";
+ sha1 = "be99abba4e1bf5df461cd5a2c1071fc432573390";
+ };
+ }
+ {
+ name = "cacheable_request___cacheable_request_6.1.0.tgz";
+ path = fetchurl {
+ name = "cacheable_request___cacheable_request_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz";
+ sha1 = "20ffb8bd162ba4be11e9567d823db651052ca912";
+ };
+ }
+ {
+ name = "call_limit___call_limit_1.1.1.tgz";
+ path = fetchurl {
+ name = "call_limit___call_limit_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz";
+ sha1 = "ef15f2670db3f1992557e2d965abc459e6e358d4";
+ };
+ }
+ {
+ name = "callsites___callsites_3.1.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
+ sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
+ };
+ }
+ {
+ 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 = "camelcase___camelcase_5.3.1.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_5.3.1.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
+ sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
+ };
+ }
+ {
+ name = "capture_stack_trace___capture_stack_trace_1.0.1.tgz";
+ path = fetchurl {
+ name = "capture_stack_trace___capture_stack_trace_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz";
+ sha1 = "a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d";
+ };
+ }
+ {
+ name = "caseless___caseless_0.12.0.tgz";
+ path = fetchurl {
+ name = "caseless___caseless_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ }
+ {
+ name = "chalk___chalk_2.4.2.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_2.4.2.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+ sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+ };
+ }
+ {
+ name = "chalk___chalk_3.0.0.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
+ sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
+ };
+ }
+ {
+ name = "chalk___chalk_4.1.0.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
+ sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
+ };
+ }
+ {
+ 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 = "chownr___chownr_1.1.4.tgz";
+ path = fetchurl {
+ name = "chownr___chownr_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
+ sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
+ };
+ }
+ {
+ name = "chownr___chownr_1.1.3.tgz";
+ path = fetchurl {
+ name = "chownr___chownr_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz";
+ sha1 = "42d837d5239688d55f303003a508230fa6727142";
+ };
+ }
+ {
+ name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz";
+ path = fetchurl {
+ name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz";
+ sha1 = "04a106672c18b085ab774d983dfa3ea138f22205";
+ };
+ }
+ {
+ name = "ci_info___ci_info_1.6.0.tgz";
+ path = fetchurl {
+ name = "ci_info___ci_info_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz";
+ sha1 = "2ca20dbb9ceb32d4524a683303313f0304b1e497";
+ };
+ }
+ {
+ 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 = "cidr_regex___cidr_regex_2.0.10.tgz";
+ path = fetchurl {
+ name = "cidr_regex___cidr_regex_2.0.10.tgz";
+ url = "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz";
+ sha1 = "af13878bd4ad704de77d6dc800799358b3afa70d";
+ };
+ }
+ {
+ name = "cli_boxes___cli_boxes_1.0.0.tgz";
+ path = fetchurl {
+ name = "cli_boxes___cli_boxes_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz";
+ sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
+ };
+ }
+ {
+ name = "cli_boxes___cli_boxes_2.2.0.tgz";
+ path = fetchurl {
+ name = "cli_boxes___cli_boxes_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz";
+ sha1 = "538ecae8f9c6ca508e3c3c95b453fe93cb4c168d";
+ };
+ }
+ {
+ name = "cli_columns___cli_columns_3.1.2.tgz";
+ path = fetchurl {
+ name = "cli_columns___cli_columns_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz";
+ sha1 = "6732d972979efc2ae444a1f08e08fa139c96a18e";
+ };
+ }
+ {
+ name = "cli_cursor___cli_cursor_3.1.0.tgz";
+ path = fetchurl {
+ name = "cli_cursor___cli_cursor_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
+ sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
+ };
+ }
+ {
+ name = "cli_table3___cli_table3_0.5.1.tgz";
+ path = fetchurl {
+ name = "cli_table3___cli_table3_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz";
+ sha1 = "0252372d94dfc40dbd8df06005f48f31f656f202";
+ };
+ }
+ {
+ name = "cli_width___cli_width_3.0.0.tgz";
+ path = fetchurl {
+ name = "cli_width___cli_width_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz";
+ sha1 = "a2f48437a2caa9a22436e794bf071ec9e61cedf6";
+ };
+ }
+ {
+ 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 = "cliui___cliui_4.1.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
+ sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
+ };
+ }
+ {
+ name = "cliui___cliui_6.0.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz";
+ sha1 = "511d702c0c4e41ca156d7d0e96021f23e13225b1";
+ };
+ }
+ {
+ name = "clone_response___clone_response_1.0.2.tgz";
+ path = fetchurl {
+ name = "clone_response___clone_response_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz";
+ sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
+ };
+ }
+ {
+ name = "clone___clone_1.0.4.tgz";
+ path = fetchurl {
+ name = "clone___clone_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz";
+ sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
+ };
+ }
+ {
+ name = "cmd_shim___cmd_shim_3.0.3.tgz";
+ path = fetchurl {
+ name = "cmd_shim___cmd_shim_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-3.0.3.tgz";
+ sha1 = "2c35238d3df37d98ecdd7d5f6b8dc6b21cadc7cb";
+ };
+ }
+ {
+ 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 = "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_convert___color_convert_2.0.1.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
+ sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
+ };
+ }
+ {
+ 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 = "color_name___color_name_1.1.4.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
+ sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
+ };
+ }
+ {
+ name = "colors___colors_1.4.0.tgz";
+ path = fetchurl {
+ name = "colors___colors_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz";
+ sha1 = "c50491479d4c1bdaed2c9ced32cf7c7dc2360f78";
+ };
+ }
+ {
+ name = "columnify___columnify_1.5.4.tgz";
+ path = fetchurl {
+ name = "columnify___columnify_1.5.4.tgz";
+ url = "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz";
+ sha1 = "4737ddf1c7b69a8a7c340570782e947eec8e78bb";
+ };
+ }
+ {
+ name = "combined_stream___combined_stream_1.0.8.tgz";
+ path = fetchurl {
+ name = "combined_stream___combined_stream_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
+ sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
+ };
+ }
+ {
+ name = "commander___commander_2.20.3.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.20.3.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
+ sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
+ };
+ }
+ {
+ name = "compress_commons___compress_commons_3.0.0.tgz";
+ path = fetchurl {
+ name = "compress_commons___compress_commons_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz";
+ sha1 = "833944d84596e537224dd91cf92f5246823d4f1d";
+ };
+ }
+ {
+ 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 = "conf___conf_2.2.0.tgz";
+ path = fetchurl {
+ name = "conf___conf_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/conf/-/conf-2.2.0.tgz";
+ sha1 = "ee282efafc1450b61e205372041ad7d866802d9a";
+ };
+ }
+ {
+ name = "config_chain___config_chain_1.1.12.tgz";
+ path = fetchurl {
+ name = "config_chain___config_chain_1.1.12.tgz";
+ url = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
+ sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
+ };
+ }
+ {
+ name = "configstore___configstore_3.1.2.tgz";
+ path = fetchurl {
+ name = "configstore___configstore_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz";
+ sha1 = "c6f25defaeef26df12dd33414b001fe81a543f8f";
+ };
+ }
+ {
+ name = "configstore___configstore_5.0.1.tgz";
+ path = fetchurl {
+ name = "configstore___configstore_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz";
+ sha1 = "d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96";
+ };
+ }
+ {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ }
+ {
+ 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_concurrently___copy_concurrently_1.0.5.tgz";
+ path = fetchurl {
+ name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+ sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
+ };
+ }
+ {
+ name = "core_js___core_js_3.6.5.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_3.6.5.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz";
+ sha1 = "7395dc273af37fb2e50e9bd3d9fe841285231d1a";
+ };
+ }
+ {
+ 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 = "crc32_stream___crc32_stream_3.0.1.tgz";
+ path = fetchurl {
+ name = "crc32_stream___crc32_stream_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz";
+ sha1 = "cae6eeed003b0e44d739d279de5ae63b171b4e85";
+ };
+ }
+ {
+ name = "crc___crc_3.8.0.tgz";
+ path = fetchurl {
+ name = "crc___crc_3.8.0.tgz";
+ url = "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz";
+ sha1 = "ad60269c2c856f8c299e2c4cc0de4556914056c6";
+ };
+ }
+ {
+ name = "create_error_class___create_error_class_3.0.2.tgz";
+ path = fetchurl {
+ name = "create_error_class___create_error_class_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz";
+ sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
+ };
+ }
+ {
+ 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 = "cross_spawn___cross_spawn_7.0.3.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_7.0.3.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
+ sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
+ };
+ }
+ {
+ name = "cross_unzip___cross_unzip_0.0.2.tgz";
+ path = fetchurl {
+ name = "cross_unzip___cross_unzip_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/cross-unzip/-/cross-unzip-0.0.2.tgz";
+ sha1 = "5183bc47a09559befcf98cc4657964999359372f";
+ };
+ }
+ {
+ name = "crypto_random_string___crypto_random_string_1.0.0.tgz";
+ path = fetchurl {
+ name = "crypto_random_string___crypto_random_string_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz";
+ sha1 = "a230f64f568310e1498009940790ec99545bca7e";
+ };
+ }
+ {
+ name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
+ path = fetchurl {
+ name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz";
+ sha1 = "ef2a7a966ec11083388369baa02ebead229b30d5";
+ };
+ }
+ {
+ name = "cuint___cuint_0.2.2.tgz";
+ path = fetchurl {
+ name = "cuint___cuint_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz";
+ sha1 = "408086d409550c2631155619e9fa7bcadc3b991b";
+ };
+ }
+ {
+ name = "cyclist___cyclist_1.0.1.tgz";
+ path = fetchurl {
+ name = "cyclist___cyclist_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz";
+ sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9";
+ };
+ }
+ {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ path = fetchurl {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ }
+ {
+ name = "debug___debug_3.1.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+ sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+ };
+ }
+ {
+ 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 = "debug___debug_4.2.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz";
+ sha1 = "7f150f93920e94c58f5574c2fd01a3110effe7f1";
+ };
+ }
+ {
+ name = "debuglog___debuglog_1.0.1.tgz";
+ path = fetchurl {
+ name = "debuglog___debuglog_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz";
+ sha1 = "aa24ffb9ac3df9a2351837cfb2d279360cd78492";
+ };
+ }
+ {
+ 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 = "decompress_response___decompress_response_3.3.0.tgz";
+ path = fetchurl {
+ name = "decompress_response___decompress_response_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz";
+ sha1 = "80a4dd323748384bfa248083622aedec982adff3";
+ };
+ }
+ {
+ name = "deep_equal___deep_equal_1.1.1.tgz";
+ path = fetchurl {
+ name = "deep_equal___deep_equal_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz";
+ sha1 = "b5c98c942ceffaf7cb051e24e1434a25a2e6076a";
+ };
+ }
+ {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+ };
+ }
+ {
+ 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 = "defaults___defaults_1.0.3.tgz";
+ path = fetchurl {
+ name = "defaults___defaults_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz";
+ sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
+ };
+ }
+ {
+ name = "defer_to_connect___defer_to_connect_1.1.1.tgz";
+ path = fetchurl {
+ name = "defer_to_connect___defer_to_connect_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.1.tgz";
+ sha1 = "88ae694b93f67b81815a2c8c769aef6574ac8f2f";
+ };
+ }
+ {
+ 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 = "delayed_stream___delayed_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ }
+ {
+ name = "delegates___delegates_1.0.0.tgz";
+ path = fetchurl {
+ name = "delegates___delegates_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ }
+ {
+ name = "detect_indent___detect_indent_5.0.0.tgz";
+ path = fetchurl {
+ name = "detect_indent___detect_indent_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz";
+ sha1 = "3871cc0a6a002e8c3e5b3cf7f336264675f06b9d";
+ };
+ }
+ {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ path = fetchurl {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ }
+ {
+ name = "detect_newline___detect_newline_2.1.0.tgz";
+ path = fetchurl {
+ name = "detect_newline___detect_newline_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz";
+ sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
+ };
+ }
+ {
+ name = "dezalgo___dezalgo_1.0.3.tgz";
+ path = fetchurl {
+ name = "dezalgo___dezalgo_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz";
+ sha1 = "7f742de066fc748bc8db820569dddce49bf0d456";
+ };
+ }
+ {
+ name = "dmg_builder___dmg_builder_22.7.0.tgz";
+ path = fetchurl {
+ name = "dmg_builder___dmg_builder_22.7.0.tgz";
+ url = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.7.0.tgz";
+ sha1 = "ead7e7c046cbdc52d29d302a4455f6668cdf7d45";
+ };
+ }
+ {
+ 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 = "doctrine___doctrine_3.0.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
+ sha1 = "addebead72a6574db783639dc87a121773973961";
+ };
+ }
+ {
+ name = "dom_walk___dom_walk_0.1.1.tgz";
+ path = fetchurl {
+ name = "dom_walk___dom_walk_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz";
+ sha1 = "672226dc74c8f799ad35307df936aba11acd6018";
+ };
+ }
+ {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ path = fetchurl {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
+ sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
+ };
+ }
+ {
+ name = "dot_prop___dot_prop_5.2.0.tgz";
+ path = fetchurl {
+ name = "dot_prop___dot_prop_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz";
+ sha1 = "c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb";
+ };
+ }
+ {
+ name = "dotenv_expand___dotenv_expand_5.1.0.tgz";
+ path = fetchurl {
+ name = "dotenv_expand___dotenv_expand_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz";
+ sha1 = "3fbaf020bfd794884072ea26b1e9791d45a629f0";
+ };
+ }
+ {
+ name = "dotenv___dotenv_5.0.1.tgz";
+ path = fetchurl {
+ name = "dotenv___dotenv_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz";
+ sha1 = "a5317459bd3d79ab88cff6e44057a6a3fbb1fcef";
+ };
+ }
+ {
+ name = "dotenv___dotenv_8.2.0.tgz";
+ path = fetchurl {
+ name = "dotenv___dotenv_8.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz";
+ sha1 = "97e619259ada750eea3e4ea3e26bceea5424b16a";
+ };
+ }
+ {
+ name = "duplexer3___duplexer3_0.1.4.tgz";
+ path = fetchurl {
+ name = "duplexer3___duplexer3_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz";
+ sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+ };
+ }
+ {
+ name = "duplexify___duplexify_3.7.1.tgz";
+ path = fetchurl {
+ name = "duplexify___duplexify_3.7.1.tgz";
+ url = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz";
+ sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309";
+ };
+ }
+ {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ path = fetchurl {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ }
+ {
+ name = "editor___editor_1.0.0.tgz";
+ path = fetchurl {
+ name = "editor___editor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz";
+ sha1 = "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742";
+ };
+ }
+ {
+ name = "ejs___ejs_3.1.3.tgz";
+ path = fetchurl {
+ name = "ejs___ejs_3.1.3.tgz";
+ url = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.3.tgz";
+ sha1 = "514d967a8894084d18d3d47bd169a1c0560f093d";
+ };
+ }
+ {
+ name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.7.0.tgz";
+ path = fetchurl {
+ name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.7.0.tgz";
+ url = "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.7.0.tgz";
+ sha1 = "8d6f09d541c039f52202935c66d592c38575ceff";
+ };
+ }
+ {
+ name = "electron_builder___electron_builder_22.7.0.tgz";
+ path = fetchurl {
+ name = "electron_builder___electron_builder_22.7.0.tgz";
+ url = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.7.0.tgz";
+ sha1 = "a42d08a1654ffc2f7d9e2860829d3cc55d4a0c81";
+ };
+ }
+ {
+ name = "electron_devtools_installer___electron_devtools_installer_2.2.4.tgz";
+ path = fetchurl {
+ name = "electron_devtools_installer___electron_devtools_installer_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-2.2.4.tgz";
+ sha1 = "261a50337e37121d338b966f07922eb4939a8763";
+ };
+ }
+ {
+ name = "electron_notarize___electron_notarize_0.2.1.tgz";
+ path = fetchurl {
+ name = "electron_notarize___electron_notarize_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-0.2.1.tgz";
+ sha1 = "759e8006decae19134f82996ed910db26d9192cc";
+ };
+ }
+ {
+ name = "electron_publish___electron_publish_22.7.0.tgz";
+ path = fetchurl {
+ name = "electron_publish___electron_publish_22.7.0.tgz";
+ url = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.7.0.tgz";
+ sha1 = "d92ba7c4007c9ac1dd070593e48028184fb2dc19";
+ };
+ }
+ {
+ name = "electron_store___electron_store_2.0.0.tgz";
+ path = fetchurl {
+ name = "electron_store___electron_store_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/electron-store/-/electron-store-2.0.0.tgz";
+ sha1 = "1035cca2a95409d1f54c7466606345852450d64a";
+ };
+ }
+ {
+ name = "electron_window_state___electron_window_state_4.1.1.tgz";
+ path = fetchurl {
+ name = "electron_window_state___electron_window_state_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz";
+ sha1 = "6b34fdc31b38514dfec8b7c8f7b5d4addb67632d";
+ };
+ }
+ {
+ name = "emoji_regex___emoji_regex_7.0.3.tgz";
+ path = fetchurl {
+ name = "emoji_regex___emoji_regex_7.0.3.tgz";
+ url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
+ sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
+ };
+ }
+ {
+ name = "emoji_regex___emoji_regex_8.0.0.tgz";
+ path = fetchurl {
+ name = "emoji_regex___emoji_regex_8.0.0.tgz";
+ url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
+ sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
+ };
+ }
+ {
+ name = "encoding___encoding_0.1.12.tgz";
+ path = fetchurl {
+ name = "encoding___encoding_0.1.12.tgz";
+ url = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz";
+ sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+ };
+ }
+ {
+ name = "end_of_stream___end_of_stream_1.4.4.tgz";
+ path = fetchurl {
+ name = "end_of_stream___end_of_stream_1.4.4.tgz";
+ url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
+ sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
+ };
+ }
+ {
+ name = "enquirer___enquirer_2.3.6.tgz";
+ path = fetchurl {
+ name = "enquirer___enquirer_2.3.6.tgz";
+ url = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
+ sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
+ };
+ }
+ {
+ name = "env_paths___env_paths_1.0.0.tgz";
+ path = fetchurl {
+ name = "env_paths___env_paths_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz";
+ sha1 = "4168133b42bb05c38a35b1ae4397c8298ab369e0";
+ };
+ }
+ {
+ name = "env_paths___env_paths_2.2.0.tgz";
+ path = fetchurl {
+ name = "env_paths___env_paths_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz";
+ sha1 = "cdca557dc009152917d6166e2febe1f039685e43";
+ };
+ }
+ {
+ name = "err_code___err_code_1.1.2.tgz";
+ path = fetchurl {
+ name = "err_code___err_code_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz";
+ sha1 = "06e0116d3028f6aef4806849eb0ea6a748ae6960";
+ };
+ }
+ {
+ name = "errno___errno_0.1.7.tgz";
+ path = fetchurl {
+ name = "errno___errno_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
+ sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
+ };
+ }
+ {
+ 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.17.6.tgz";
+ path = fetchurl {
+ name = "es_abstract___es_abstract_1.17.6.tgz";
+ url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz";
+ sha1 = "9142071707857b2cacc7b89ecb670316c3e2d52a";
+ };
+ }
+ {
+ name = "es_abstract___es_abstract_1.16.3.tgz";
+ path = fetchurl {
+ name = "es_abstract___es_abstract_1.16.3.tgz";
+ url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.3.tgz";
+ sha1 = "52490d978f96ff9f89ec15b5cf244304a5bca161";
+ };
+ }
+ {
+ name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+ path = fetchurl {
+ name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+ sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
+ };
+ }
+ {
+ name = "es6_promise___es6_promise_4.2.8.tgz";
+ path = fetchurl {
+ name = "es6_promise___es6_promise_4.2.8.tgz";
+ url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz";
+ sha1 = "4eb21594c972bc40553d276e510539143db53e0a";
+ };
+ }
+ {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ path = fetchurl {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz";
+ sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
+ };
+ }
+ {
+ name = "escape_goat___escape_goat_2.1.1.tgz";
+ path = fetchurl {
+ name = "escape_goat___escape_goat_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz";
+ sha1 = "1b2dc77003676c457ec760b2dc68edb648188675";
+ };
+ }
+ {
+ 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_esnext___eslint_config_esnext_4.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_esnext___eslint_config_esnext_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-esnext/-/eslint-config-esnext-4.1.0.tgz";
+ sha1 = "8695b858fcf40d28c1aedca181f700528c7b60c6";
+ };
+ }
+ {
+ name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz";
+ sha1 = "4f5f8759ba6e11b424294a219dbfa18c508bcc1a";
+ };
+ }
+ {
+ name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
+ path = fetchurl {
+ name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-matrix-org/-/eslint-config-matrix-org-0.1.2.tgz";
+ sha1 = "b5d7e193e4f3fc5041905967b53c5ddd6924c793";
+ };
+ }
+ {
+ name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-node/-/eslint-config-node-4.1.0.tgz";
+ sha1 = "fc1f13946d83766d6b83b0e67699e2071a56f417";
+ };
+ }
+ {
+ name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-react-native/-/eslint-config-react-native-4.1.0.tgz";
+ sha1 = "63e9401c7fac146804785f609e7df8f15b3e04eb";
+ };
+ }
+ {
+ name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-recommended/-/eslint-config-recommended-4.1.0.tgz";
+ sha1 = "1adff90e0716d439be471d192977f233de171a46";
+ };
+ }
+ {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+ path = fetchurl {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+ url = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
+ sha1 = "85ffa81942c25012d8231096ddf679c03042c717";
+ };
+ }
+ {
+ name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
+ path = fetchurl {
+ name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
+ sha1 = "579ebd094f56af7797d19c9866c9c9486629bfa6";
+ };
+ }
+ {
+ name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.1.tgz";
+ sha1 = "75a2413ffbf17e7be57458301c60291f2cfbf560";
+ };
+ }
+ {
+ name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz";
+ sha1 = "92f7736fe1fde3e2de77623c838dd992ff5ffb7e";
+ };
+ }
+ {
+ name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz";
+ sha1 = "ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2";
+ };
+ }
+ {
+ name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.8.1.tgz";
+ sha1 = "92811e37191ecb0d29c0f0a0c9e5c943ee573821";
+ };
+ }
+ {
+ name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz";
+ sha1 = "0590525e7eb83890ce71f73c2cf836284ad8c2f1";
+ };
+ }
+ {
+ name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+ path = fetchurl {
+ name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz";
+ sha1 = "79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9";
+ };
+ }
+ {
+ name = "eslint_scope___eslint_scope_5.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz";
+ sha1 = "d0f971dfe59c69e0cada684b23d49dbf82600ce5";
+ };
+ }
+ {
+ name = "eslint_utils___eslint_utils_1.4.3.tgz";
+ path = fetchurl {
+ name = "eslint_utils___eslint_utils_1.4.3.tgz";
+ url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
+ sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
+ };
+ }
+ {
+ name = "eslint_utils___eslint_utils_2.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_utils___eslint_utils_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
+ sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
+ };
+ }
+ {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
+ sha1 = "e2a82cea84ff246ad6fb57f9bde5b46621459ec2";
+ };
+ }
+ {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+ path = fetchurl {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+ sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
+ };
+ }
+ {
+ name = "eslint___eslint_7.3.1.tgz";
+ path = fetchurl {
+ name = "eslint___eslint_7.3.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-7.3.1.tgz";
+ sha1 = "76392bd7e44468d046149ba128d1566c59acbe19";
+ };
+ }
+ {
+ name = "eslint___eslint_6.8.0.tgz";
+ path = fetchurl {
+ name = "eslint___eslint_6.8.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
+ sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
+ };
+ }
+ {
+ name = "espree___espree_6.2.1.tgz";
+ path = fetchurl {
+ name = "espree___espree_6.2.1.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz";
+ sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a";
+ };
+ }
+ {
+ name = "espree___espree_7.2.0.tgz";
+ path = fetchurl {
+ name = "espree___espree_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz";
+ sha1 = "1c263d5b513dbad0ac30c4991b93ac354e948d69";
+ };
+ }
+ {
+ 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 = "esquery___esquery_1.3.1.tgz";
+ path = fetchurl {
+ name = "esquery___esquery_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
+ sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+ };
+ }
+ {
+ 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.3.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
+ sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
+ };
+ }
+ {
+ name = "estraverse___estraverse_5.1.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz";
+ sha1 = "374309d39fd935ae500e7b92e8a6b4c720e59642";
+ };
+ }
+ {
+ name = "esutils___esutils_2.0.3.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
+ sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
+ };
+ }
+ {
+ 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 = "exif_parser___exif_parser_0.1.12.tgz";
+ path = fetchurl {
+ name = "exif_parser___exif_parser_0.1.12.tgz";
+ url = "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz";
+ sha1 = "58a9d2d72c02c1f6f02a0ef4a9166272b7760922";
+ };
+ }
+ {
+ name = "extend___extend_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend___extend_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+ sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+ };
+ }
+ {
+ name = "external_editor___external_editor_3.1.0.tgz";
+ path = fetchurl {
+ name = "external_editor___external_editor_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
+ sha1 = "cb03f740befae03ea4d283caed2741a83f335495";
+ };
+ }
+ {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ }
+ {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+ sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+ };
+ }
+ {
+ 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_deep_equal___fast_deep_equal_3.1.3.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+ sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
+ };
+ }
+ {
+ 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 = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ path = fetchurl {
+ name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
+ sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
+ };
+ }
+ {
+ name = "figures___figures_3.2.0.tgz";
+ path = fetchurl {
+ name = "figures___figures_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
+ sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
+ };
+ }
+ {
+ name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+ path = fetchurl {
+ name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
+ sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
+ };
+ }
+ {
+ name = "file_type___file_type_9.0.0.tgz";
+ path = fetchurl {
+ name = "file_type___file_type_9.0.0.tgz";
+ url = "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz";
+ sha1 = "a68d5ad07f486414dfb2c8866f73161946714a18";
+ };
+ }
+ {
+ name = "filelist___filelist_1.0.1.tgz";
+ path = fetchurl {
+ name = "filelist___filelist_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz";
+ sha1 = "f10d1a3ae86c1694808e8f20906f43d4c9132dbb";
+ };
+ }
+ {
+ name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
+ path = fetchurl {
+ name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz";
+ sha1 = "8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf";
+ };
+ }
+ {
+ 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 = "find_up___find_up_4.1.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
+ sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
+ };
+ }
+ {
+ name = "flat_cache___flat_cache_2.0.1.tgz";
+ path = fetchurl {
+ name = "flat_cache___flat_cache_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
+ sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
+ };
+ }
+ {
+ name = "flatted___flatted_2.0.1.tgz";
+ path = fetchurl {
+ name = "flatted___flatted_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz";
+ sha1 = "69e57caa8f0eacbc281d2e2cb458d46fdb449e08";
+ };
+ }
+ {
+ name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+ path = fetchurl {
+ name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
+ sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8";
+ };
+ }
+ {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ path = fetchurl {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ }
+ {
+ name = "form_data___form_data_2.3.3.tgz";
+ path = fetchurl {
+ name = "form_data___form_data_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
+ sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+ };
+ }
+ {
+ name = "from2___from2_1.3.0.tgz";
+ path = fetchurl {
+ name = "from2___from2_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz";
+ sha1 = "88413baaa5f9a597cfde9221d86986cd3c061dfd";
+ };
+ }
+ {
+ name = "from2___from2_2.3.0.tgz";
+ path = fetchurl {
+ name = "from2___from2_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
+ sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+ };
+ }
+ {
+ name = "fs_constants___fs_constants_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs_constants___fs_constants_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz";
+ sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad";
+ };
+ }
+ {
+ name = "fs_extra___fs_extra_8.1.0.tgz";
+ path = fetchurl {
+ name = "fs_extra___fs_extra_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz";
+ sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0";
+ };
+ }
+ {
+ name = "fs_extra___fs_extra_9.0.1.tgz";
+ path = fetchurl {
+ name = "fs_extra___fs_extra_9.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz";
+ sha1 = "910da0062437ba4c39fedd863f1675ccfefcb9fc";
+ };
+ }
+ {
+ name = "fs_minipass___fs_minipass_1.2.7.tgz";
+ path = fetchurl {
+ name = "fs_minipass___fs_minipass_1.2.7.tgz";
+ url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz";
+ sha1 = "ccff8570841e7fe4265693da88936c55aed7f7c7";
+ };
+ }
+ {
+ name = "fs_minipass___fs_minipass_2.0.0.tgz";
+ path = fetchurl {
+ name = "fs_minipass___fs_minipass_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz";
+ sha1 = "a6415edab02fae4b9e9230bc87ee2e4472003cd1";
+ };
+ }
+ {
+ name = "fs_vacuum___fs_vacuum_1.2.10.tgz";
+ path = fetchurl {
+ name = "fs_vacuum___fs_vacuum_1.2.10.tgz";
+ url = "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz";
+ sha1 = "b7629bec07a4031a2548fdf99f5ecf1cc8b31e36";
+ };
+ }
+ {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ path = fetchurl {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+ sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+ };
+ }
+ {
+ 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 = "gauge___gauge_2.7.4.tgz";
+ path = fetchurl {
+ name = "gauge___gauge_2.7.4.tgz";
+ url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ }
+ {
+ name = "genfun___genfun_5.0.0.tgz";
+ path = fetchurl {
+ name = "genfun___genfun_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz";
+ sha1 = "9dd9710a06900a5c4a5bf57aca5da4e52fe76537";
+ };
+ }
+ {
+ name = "gentle_fs___gentle_fs_2.3.0.tgz";
+ path = fetchurl {
+ name = "gentle_fs___gentle_fs_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.3.0.tgz";
+ sha1 = "13538db5029400f98684be4894e8a7d8f0d1ea7f";
+ };
+ }
+ {
+ 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_caller_file___get_caller_file_2.0.5.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
+ sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
+ };
+ }
+ {
+ 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_stream___get_stream_5.1.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz";
+ sha1 = "01203cdc92597f9b909067c3e656cc1f4d3c4dc9";
+ };
+ }
+ {
+ name = "getpass___getpass_0.1.7.tgz";
+ path = fetchurl {
+ name = "getpass___getpass_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ }
+ {
+ name = "glob_parent___glob_parent_5.1.1.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
+ sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
+ };
+ }
+ {
+ name = "glob___glob_7.1.6.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.6.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
+ sha1 = "141f33b81a7c2492e125594307480c46679278a6";
+ };
+ }
+ {
+ name = "global_dirs___global_dirs_0.1.1.tgz";
+ path = fetchurl {
+ name = "global_dirs___global_dirs_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz";
+ sha1 = "b319c0dd4607f353f3be9cca4c72fc148c49f445";
+ };
+ }
+ {
+ name = "global_dirs___global_dirs_2.0.1.tgz";
+ path = fetchurl {
+ name = "global_dirs___global_dirs_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz";
+ sha1 = "acdf3bb6685bcd55cb35e8a052266569e9469201";
+ };
+ }
+ {
+ name = "global___global_4.3.2.tgz";
+ path = fetchurl {
+ name = "global___global_4.3.2.tgz";
+ url = "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz";
+ sha1 = "e76989268a6c74c38908b1305b10fc0e394e9d0f";
+ };
+ }
+ {
+ name = "globals___globals_11.12.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_11.12.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
+ sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
+ };
+ }
+ {
+ name = "globals___globals_12.4.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_12.4.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz";
+ sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
+ };
+ }
+ {
+ name = "got___got_6.7.1.tgz";
+ path = fetchurl {
+ name = "got___got_6.7.1.tgz";
+ url = "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz";
+ sha1 = "240cd05785a9a18e561dc1b44b41c763ef1e8db0";
+ };
+ }
+ {
+ name = "got___got_9.6.0.tgz";
+ path = fetchurl {
+ name = "got___got_9.6.0.tgz";
+ url = "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz";
+ sha1 = "edf45e7d67f99545705de1f7bbeeeb121765ed85";
+ };
+ }
+ {
+ name = "graceful_fs___graceful_fs_4.2.3.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.2.3.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz";
+ sha1 = "4a12ff1b60376ef09862c2093edd908328be8423";
+ };
+ }
+ {
+ name = "graceful_fs___graceful_fs_4.2.4.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.2.4.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
+ sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
+ };
+ }
+ {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ path = fetchurl {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ }
+ {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
+ sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+ };
+ }
+ {
+ name = "har_validator___har_validator_5.1.5.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_5.1.5.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
+ sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
+ };
+ }
+ {
+ 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_flag___has_flag_4.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
+ sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
+ };
+ }
+ {
+ name = "has_symbols___has_symbols_1.0.1.tgz";
+ path = fetchurl {
+ name = "has_symbols___has_symbols_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
+ sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
+ };
+ }
+ {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ path = fetchurl {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ }
+ {
+ name = "has_yarn___has_yarn_2.1.0.tgz";
+ path = fetchurl {
+ name = "has_yarn___has_yarn_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz";
+ sha1 = "137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77";
+ };
+ }
+ {
+ 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.8.5.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_2.8.5.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz";
+ sha1 = "759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c";
+ };
+ }
+ {
+ name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+ sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
+ };
+ }
+ {
+ name = "hosted_git_info___hosted_git_info_3.0.4.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz";
+ sha1 = "be4973eb1fd2737b11c9c7c19380739bb249f60d";
+ };
+ }
+ {
+ name = "http_cache_semantics___http_cache_semantics_3.8.1.tgz";
+ path = fetchurl {
+ name = "http_cache_semantics___http_cache_semantics_3.8.1.tgz";
+ url = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz";
+ sha1 = "39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2";
+ };
+ }
+ {
+ name = "http_cache_semantics___http_cache_semantics_4.0.3.tgz";
+ path = fetchurl {
+ name = "http_cache_semantics___http_cache_semantics_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz";
+ sha1 = "495704773277eeef6e43f9ab2c2c7d259dda25c5";
+ };
+ }
+ {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ path = fetchurl {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz";
+ sha1 = "e4821beef5b2142a2026bd73926fe537631c5405";
+ };
+ }
+ {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ path = fetchurl {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ }
+ {
+ name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+ path = fetchurl {
+ name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz";
+ sha1 = "4ee7a737abd92678a293d9b34a1af4d0d08c787b";
+ };
+ }
+ {
+ name = "humanize_ms___humanize_ms_1.2.1.tgz";
+ path = fetchurl {
+ name = "humanize_ms___humanize_ms_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz";
+ sha1 = "c46e3159a293f6b896da29316d8b6fe8bb79bbed";
+ };
+ }
+ {
+ 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 = "iconv_lite___iconv_lite_0.5.1.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz";
+ sha1 = "b2425d3c7b18f7219f2ca663d103bddb91718d64";
+ };
+ }
+ {
+ name = "ieee754___ieee754_1.1.13.tgz";
+ path = fetchurl {
+ name = "ieee754___ieee754_1.1.13.tgz";
+ url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
+ sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
+ };
+ }
+ {
+ name = "iferr___iferr_0.1.5.tgz";
+ path = fetchurl {
+ name = "iferr___iferr_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
+ sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+ };
+ }
+ {
+ name = "iferr___iferr_1.0.2.tgz";
+ path = fetchurl {
+ name = "iferr___iferr_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz";
+ sha1 = "e9fde49a9da06dc4a4194c6c9ed6d08305037a6d";
+ };
+ }
+ {
+ name = "ignore_walk___ignore_walk_3.0.3.tgz";
+ path = fetchurl {
+ name = "ignore_walk___ignore_walk_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz";
+ sha1 = "017e2447184bfeade7c238e4aefdd1e8f95b1e37";
+ };
+ }
+ {
+ 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 = "import_fresh___import_fresh_3.2.1.tgz";
+ path = fetchurl {
+ name = "import_fresh___import_fresh_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
+ sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
+ };
+ }
+ {
+ name = "import_lazy___import_lazy_2.1.0.tgz";
+ path = fetchurl {
+ name = "import_lazy___import_lazy_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz";
+ sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+ };
+ }
+ {
+ 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 = "infer_owner___infer_owner_1.0.4.tgz";
+ path = fetchurl {
+ name = "infer_owner___infer_owner_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz";
+ sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467";
+ };
+ }
+ {
+ 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.4.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+ sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+ };
+ }
+ {
+ name = "ini___ini_1.3.5.tgz";
+ path = fetchurl {
+ name = "ini___ini_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+ sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+ };
+ }
+ {
+ name = "init_package_json___init_package_json_1.10.3.tgz";
+ path = fetchurl {
+ name = "init_package_json___init_package_json_1.10.3.tgz";
+ url = "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz";
+ sha1 = "45ffe2f610a8ca134f2bd1db5637b235070f6cbe";
+ };
+ }
+ {
+ name = "inquirer___inquirer_7.3.2.tgz";
+ path = fetchurl {
+ name = "inquirer___inquirer_7.3.2.tgz";
+ url = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.2.tgz";
+ sha1 = "25245d2e32dc9f33dbe26eeaada231daa66e9c7c";
+ };
+ }
+ {
+ name = "internal_slot___internal_slot_1.0.2.tgz";
+ path = fetchurl {
+ name = "internal_slot___internal_slot_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz";
+ sha1 = "9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3";
+ };
+ }
+ {
+ 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 = "invert_kv___invert_kv_2.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
+ sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
+ };
+ }
+ {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ path = fetchurl {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
+ sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+ };
+ }
+ {
+ name = "ip___ip_1.1.5.tgz";
+ path = fetchurl {
+ name = "ip___ip_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+ sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+ };
+ }
+ {
+ name = "is_arguments___is_arguments_1.0.4.tgz";
+ path = fetchurl {
+ name = "is_arguments___is_arguments_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz";
+ sha1 = "3faf966c7cba0ff437fb31f6250082fcf0448cf3";
+ };
+ }
+ {
+ 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_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_callable___is_callable_1.2.0.tgz";
+ path = fetchurl {
+ name = "is_callable___is_callable_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz";
+ sha1 = "83336560b54a38e35e3a2df7afd0454d691468bb";
+ };
+ }
+ {
+ name = "is_ci___is_ci_1.2.1.tgz";
+ path = fetchurl {
+ name = "is_ci___is_ci_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz";
+ sha1 = "e3779c8ee17fccf428488f6e281187f2e632841c";
+ };
+ }
+ {
+ 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_cidr___is_cidr_3.1.0.tgz";
+ path = fetchurl {
+ name = "is_cidr___is_cidr_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.1.0.tgz";
+ sha1 = "72e233d8e1c4cd1d3f11713fcce3eba7b0e3476f";
+ };
+ }
+ {
+ 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_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_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+ sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
+ };
+ }
+ {
+ name = "is_function___is_function_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_function___is_function_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz";
+ sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
+ };
+ }
+ {
+ name = "is_glob___is_glob_4.0.1.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
+ sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+ };
+ }
+ {
+ name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
+ path = fetchurl {
+ name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz";
+ sha1 = "0dfd98f5a9111716dd535dda6492f67bf3d25a80";
+ };
+ }
+ {
+ name = "is_installed_globally___is_installed_globally_0.3.1.tgz";
+ path = fetchurl {
+ name = "is_installed_globally___is_installed_globally_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.1.tgz";
+ sha1 = "679afef819347a72584617fd19497f010b8ed35f";
+ };
+ }
+ {
+ name = "is_npm___is_npm_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_npm___is_npm_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz";
+ sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4";
+ };
+ }
+ {
+ name = "is_npm___is_npm_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_npm___is_npm_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz";
+ sha1 = "c90dd8380696df87a7a6d823c20d0b12bbe3c84d";
+ };
+ }
+ {
+ 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_obj___is_obj_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_obj___is_obj_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz";
+ sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982";
+ };
+ }
+ {
+ 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_path_inside___is_path_inside_3.0.2.tgz";
+ path = fetchurl {
+ name = "is_path_inside___is_path_inside_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz";
+ sha1 = "f5220fc82a3e233757291dddc9c5877f2a1f3017";
+ };
+ }
+ {
+ name = "is_redirect___is_redirect_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_redirect___is_redirect_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz";
+ sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
+ };
+ }
+ {
+ 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_regex___is_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_regex___is_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz";
+ sha1 = "ece38e389e490df0dc21caea2bd596f987f767ff";
+ };
+ }
+ {
+ name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz";
+ path = fetchurl {
+ name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
+ sha1 = "d778488bd0a4666a3be8a1482b9f2baafedea8b4";
+ };
+ }
+ {
+ 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_string___is_string_1.0.5.tgz";
+ path = fetchurl {
+ name = "is_string___is_string_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz";
+ sha1 = "40493ed198ef3ff477b8c7f92f644ec82a5cd3a6";
+ };
+ }
+ {
+ name = "is_symbol___is_symbol_1.0.3.tgz";
+ path = fetchurl {
+ name = "is_symbol___is_symbol_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz";
+ sha1 = "38e1014b9e6329be0de9d24a414fd7441ec61937";
+ };
+ }
+ {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ }
+ {
+ name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
+ path = fetchurl {
+ name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz";
+ sha1 = "d502d3382590ea3004893746754c89139973e232";
+ };
+ }
+ {
+ name = "isarray___isarray_0.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ }
+ {
+ 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 = "isbinaryfile___isbinaryfile_4.0.6.tgz";
+ path = fetchurl {
+ name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
+ url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz";
+ sha1 = "edcb62b224e2b4710830b67498c8e4e5a4d2610b";
+ };
+ }
+ {
+ 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 = "isstream___isstream_0.1.2.tgz";
+ path = fetchurl {
+ name = "isstream___isstream_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ }
+ {
+ name = "jake___jake_10.8.2.tgz";
+ path = fetchurl {
+ name = "jake___jake_10.8.2.tgz";
+ url = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz";
+ sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b";
+ };
+ }
+ {
+ name = "jimp___jimp_0.9.8.tgz";
+ path = fetchurl {
+ name = "jimp___jimp_0.9.8.tgz";
+ url = "https://registry.yarnpkg.com/jimp/-/jimp-0.9.8.tgz";
+ sha1 = "2ee87b81b42e723ad74c73b8012f879c0abe5b04";
+ };
+ }
+ {
+ name = "jpeg_js___jpeg_js_0.3.7.tgz";
+ path = fetchurl {
+ name = "jpeg_js___jpeg_js_0.3.7.tgz";
+ url = "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz";
+ sha1 = "471a89d06011640592d314158608690172b1028d";
+ };
+ }
+ {
+ 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_yaml___js_yaml_3.13.1.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.13.1.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
+ sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+ };
+ }
+ {
+ name = "js_yaml___js_yaml_3.14.0.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.14.0.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz";
+ sha1 = "a7a34170f26a21bb162424d8adacb4113a69e482";
+ };
+ }
+ {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ path = fetchurl {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ }
+ {
+ 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_buffer___json_buffer_3.0.0.tgz";
+ path = fetchurl {
+ name = "json_buffer___json_buffer_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz";
+ sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898";
+ };
+ }
+ {
+ 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.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_schema___json_schema_0.2.3.tgz";
+ path = fetchurl {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ }
+ {
+ 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 = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ path = fetchurl {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ }
+ {
+ name = "json5___json5_1.0.1.tgz";
+ path = fetchurl {
+ name = "json5___json5_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+ sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+ };
+ }
+ {
+ name = "json5___json5_2.1.3.tgz";
+ path = fetchurl {
+ name = "json5___json5_2.1.3.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
+ sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
+ };
+ }
+ {
+ name = "jsonfile___jsonfile_2.4.0.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz";
+ sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8";
+ };
+ }
+ {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
+ sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+ };
+ }
+ {
+ name = "jsonfile___jsonfile_6.0.1.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz";
+ sha1 = "98966cba214378c8c84b82e085907b40bf614179";
+ };
+ }
+ {
+ name = "jsonparse___jsonparse_1.3.1.tgz";
+ path = fetchurl {
+ name = "jsonparse___jsonparse_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz";
+ sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+ };
+ }
+ {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ path = fetchurl {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ }
+ {
+ name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
+ path = fetchurl {
+ name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz";
+ sha1 = "1114a4c1209481db06c690c2b4f488cc665f657e";
+ };
+ }
+ {
+ name = "keyv___keyv_3.1.0.tgz";
+ path = fetchurl {
+ name = "keyv___keyv_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz";
+ sha1 = "ecc228486f69991e49e9476485a5be1e8fc5c4d9";
+ };
+ }
+ {
+ name = "latest_version___latest_version_3.1.0.tgz";
+ path = fetchurl {
+ name = "latest_version___latest_version_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz";
+ sha1 = "a205383fea322b33b5ae3b18abee0dc2f356ee15";
+ };
+ }
+ {
+ name = "latest_version___latest_version_5.1.0.tgz";
+ path = fetchurl {
+ name = "latest_version___latest_version_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz";
+ sha1 = "119dfe908fe38d15dfa43ecd13fa12ec8832face";
+ };
+ }
+ {
+ name = "lazy_property___lazy_property_1.0.0.tgz";
+ path = fetchurl {
+ name = "lazy_property___lazy_property_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz";
+ sha1 = "84ddc4b370679ba8bd4cdcfa4c06b43d57111147";
+ };
+ }
+ {
+ name = "lazy_val___lazy_val_1.0.4.tgz";
+ path = fetchurl {
+ name = "lazy_val___lazy_val_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz";
+ sha1 = "882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65";
+ };
+ }
+ {
+ name = "lazystream___lazystream_1.0.0.tgz";
+ path = fetchurl {
+ name = "lazystream___lazystream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz";
+ sha1 = "f6995fe0f820392f61396be89462407bb77168e4";
+ };
+ }
+ {
+ 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 = "lcid___lcid_2.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
+ sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
+ };
+ }
+ {
+ 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 = "levn___levn_0.4.1.tgz";
+ path = fetchurl {
+ name = "levn___levn_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
+ sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
+ };
+ }
+ {
+ name = "libcipm___libcipm_4.0.7.tgz";
+ path = fetchurl {
+ name = "libcipm___libcipm_4.0.7.tgz";
+ url = "https://registry.yarnpkg.com/libcipm/-/libcipm-4.0.7.tgz";
+ sha1 = "76cd675c98bdaae64db88b782b01b804b6d02c8a";
+ };
+ }
+ {
+ name = "libnpm___libnpm_3.0.1.tgz";
+ path = fetchurl {
+ name = "libnpm___libnpm_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz";
+ sha1 = "0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2";
+ };
+ }
+ {
+ name = "libnpmaccess___libnpmaccess_3.0.2.tgz";
+ path = fetchurl {
+ name = "libnpmaccess___libnpmaccess_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.2.tgz";
+ sha1 = "8b2d72345ba3bef90d3b4f694edd5c0417f58923";
+ };
+ }
+ {
+ name = "libnpmconfig___libnpmconfig_1.2.1.tgz";
+ path = fetchurl {
+ name = "libnpmconfig___libnpmconfig_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz";
+ sha1 = "c0c2f793a74e67d4825e5039e7a02a0044dfcbc0";
+ };
+ }
+ {
+ name = "libnpmhook___libnpmhook_5.0.3.tgz";
+ path = fetchurl {
+ name = "libnpmhook___libnpmhook_5.0.3.tgz";
+ url = "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.3.tgz";
+ sha1 = "4020c0f5edbf08ebe395325caa5ea01885b928f7";
+ };
+ }
+ {
+ name = "libnpmorg___libnpmorg_1.0.1.tgz";
+ path = fetchurl {
+ name = "libnpmorg___libnpmorg_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.1.tgz";
+ sha1 = "5d2503f6ceb57f33dbdcc718e6698fea6d5ad087";
+ };
+ }
+ {
+ name = "libnpmpublish___libnpmpublish_1.1.3.tgz";
+ path = fetchurl {
+ name = "libnpmpublish___libnpmpublish_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.3.tgz";
+ sha1 = "e3782796722d79eef1a0a22944c117e0c4ca4280";
+ };
+ }
+ {
+ name = "libnpmsearch___libnpmsearch_2.0.2.tgz";
+ path = fetchurl {
+ name = "libnpmsearch___libnpmsearch_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.2.tgz";
+ sha1 = "9a4f059102d38e3dd44085bdbfe5095f2a5044cf";
+ };
+ }
+ {
+ name = "libnpmteam___libnpmteam_1.0.2.tgz";
+ path = fetchurl {
+ name = "libnpmteam___libnpmteam_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.2.tgz";
+ sha1 = "8b48bcbb6ce70dd8150c950fcbdbf3feb6eec820";
+ };
+ }
+ {
+ name = "libnpx___libnpx_10.2.2.tgz";
+ path = fetchurl {
+ name = "libnpx___libnpx_10.2.2.tgz";
+ url = "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.2.tgz";
+ sha1 = "5a4171b9b92dd031463ef66a4af9f5cbd6b09572";
+ };
+ }
+ {
+ name = "load_bmfont___load_bmfont_1.4.1.tgz";
+ path = fetchurl {
+ name = "load_bmfont___load_bmfont_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz";
+ sha1 = "c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9";
+ };
+ }
+ {
+ 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 = "locate_path___locate_path_5.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
+ sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
+ };
+ }
+ {
+ name = "lock_verify___lock_verify_2.2.0.tgz";
+ path = fetchurl {
+ name = "lock_verify___lock_verify_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.2.0.tgz";
+ sha1 = "12432feb68bb647071c78c44bde16029a0f7d935";
+ };
+ }
+ {
+ name = "lockfile___lockfile_1.0.4.tgz";
+ path = fetchurl {
+ name = "lockfile___lockfile_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz";
+ sha1 = "07f819d25ae48f87e538e6578b6964a4981a5609";
+ };
+ }
+ {
+ name = "lodash._baseuniq___lodash._baseuniq_4.6.0.tgz";
+ path = fetchurl {
+ name = "lodash._baseuniq___lodash._baseuniq_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz";
+ sha1 = "0ebb44e456814af7905c6212fa2c9b2d51b841e8";
+ };
+ }
+ {
+ name = "lodash._createset___lodash._createset_4.0.3.tgz";
+ path = fetchurl {
+ name = "lodash._createset___lodash._createset_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz";
+ sha1 = "0f4659fbb09d75194fa9e2b88a6644d363c9fe26";
+ };
+ }
+ {
+ name = "lodash._root___lodash._root_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash._root___lodash._root_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz";
+ sha1 = "fba1c4524c19ee9a5f8136b4609f017cf4ded692";
+ };
+ }
+ {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+ sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+ };
+ }
+ {
+ name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
+ sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
+ };
+ }
+ {
+ name = "lodash.difference___lodash.difference_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.difference___lodash.difference_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz";
+ sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
+ };
+ }
+ {
+ name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
+ sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+ };
+ }
+ {
+ name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
+ path = fetchurl {
+ name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
+ sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+ };
+ }
+ {
+ name = "lodash.union___lodash.union_4.6.0.tgz";
+ path = fetchurl {
+ name = "lodash.union___lodash.union_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz";
+ sha1 = "48bb5088409f16f1821666641c44dd1aaae3cd88";
+ };
+ }
+ {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+ sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+ };
+ }
+ {
+ name = "lodash.without___lodash.without_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.without___lodash.without_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz";
+ sha1 = "3cd4574a00b67bae373a94b748772640507b7aac";
+ };
+ }
+ {
+ name = "lodash___lodash_4.17.15.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.15.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
+ sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
+ };
+ }
+ {
+ name = "lodash___lodash_4.17.19.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.19.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
+ sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
+ };
+ }
+ {
+ 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 = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+ path = fetchurl {
+ name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+ sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f";
+ };
+ }
+ {
+ name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
+ path = fetchurl {
+ name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
+ sha1 = "2603e78b7b4b0006cbca2fbcc8a3202558ac9479";
+ };
+ }
+ {
+ 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 = "lru_cache___lru_cache_5.1.1.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz";
+ sha1 = "1da27e6710271947695daf6848e847f01d84b920";
+ };
+ }
+ {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
+ sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
+ };
+ }
+ {
+ name = "make_dir___make_dir_3.0.2.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz";
+ sha1 = "04a1acbf22221e1d6ef43559f43e05a90dbb4392";
+ };
+ }
+ {
+ name = "make_fetch_happen___make_fetch_happen_5.0.2.tgz";
+ path = fetchurl {
+ name = "make_fetch_happen___make_fetch_happen_5.0.2.tgz";
+ url = "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz";
+ sha1 = "aa8387104f2687edca01c8687ee45013d02d19bd";
+ };
+ }
+ {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ path = fetchurl {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+ sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
+ };
+ }
+ {
+ name = "meant___meant_1.0.1.tgz";
+ path = fetchurl {
+ name = "meant___meant_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz";
+ sha1 = "66044fea2f23230ec806fb515efea29c44d2115d";
+ };
+ }
+ {
+ 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 = "mem___mem_4.3.0.tgz";
+ path = fetchurl {
+ name = "mem___mem_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz";
+ sha1 = "461af497bc4ae09608cdb2e60eefb69bff744178";
+ };
+ }
+ {
+ name = "mime_db___mime_db_1.42.0.tgz";
+ path = fetchurl {
+ name = "mime_db___mime_db_1.42.0.tgz";
+ url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz";
+ sha1 = "3e252907b4c7adb906597b4b65636272cf9e7bac";
+ };
+ }
+ {
+ name = "mime_types___mime_types_2.1.25.tgz";
+ path = fetchurl {
+ name = "mime_types___mime_types_2.1.25.tgz";
+ url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz";
+ sha1 = "39772d46621f93e2a80a856c53b86a62156a6437";
+ };
+ }
+ {
+ name = "mime___mime_1.6.0.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+ sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+ };
+ }
+ {
+ name = "mime___mime_2.4.6.tgz";
+ path = fetchurl {
+ name = "mime___mime_2.4.6.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
+ sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
+ };
+ }
+ {
+ 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 = "mimic_fn___mimic_fn_2.1.0.tgz";
+ path = fetchurl {
+ name = "mimic_fn___mimic_fn_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
+ sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
+ };
+ }
+ {
+ name = "mimic_response___mimic_response_1.0.1.tgz";
+ path = fetchurl {
+ name = "mimic_response___mimic_response_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz";
+ sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b";
+ };
+ }
+ {
+ name = "min_document___min_document_2.19.0.tgz";
+ path = fetchurl {
+ name = "min_document___min_document_2.19.0.tgz";
+ url = "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz";
+ sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685";
+ };
+ }
+ {
+ 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.3.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.3.tgz";
+ sha1 = "3db5c0765545ab8637be71f333a104a965a9ca3f";
+ };
+ }
+ {
+ name = "minimist___minimist_1.2.5.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+ sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+ };
+ }
+ {
+ name = "minipass___minipass_2.9.0.tgz";
+ path = fetchurl {
+ name = "minipass___minipass_2.9.0.tgz";
+ url = "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz";
+ sha1 = "e713762e7d3e32fed803115cf93e04bca9fcc9a6";
+ };
+ }
+ {
+ name = "minipass___minipass_3.1.1.tgz";
+ path = fetchurl {
+ name = "minipass___minipass_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz";
+ sha1 = "7607ce778472a185ad6d89082aa2070f79cedcd5";
+ };
+ }
+ {
+ name = "minizlib___minizlib_1.3.3.tgz";
+ path = fetchurl {
+ name = "minizlib___minizlib_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz";
+ sha1 = "2290de96818a34c29551c8a8d301216bd65a861d";
+ };
+ }
+ {
+ name = "minizlib___minizlib_2.1.0.tgz";
+ path = fetchurl {
+ name = "minizlib___minizlib_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz";
+ sha1 = "fd52c645301ef09a63a2c209697c294c6ce02cf3";
+ };
+ }
+ {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ path = fetchurl {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
+ sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
+ };
+ }
+ {
+ 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 = "mkdirp___mkdirp_0.5.5.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_0.5.5.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+ sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
+ };
+ }
+ {
+ name = "mkdirp___mkdirp_1.0.3.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz";
+ sha1 = "4cf2e30ad45959dddea53ad97d518b6c8205e1ea";
+ };
+ }
+ {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ path = fetchurl {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
+ sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+ };
+ }
+ {
+ 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.2.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+ sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
+ };
+ }
+ {
+ name = "mute_stream___mute_stream_0.0.8.tgz";
+ path = fetchurl {
+ name = "mute_stream___mute_stream_0.0.8.tgz";
+ url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz";
+ sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d";
+ };
+ }
+ {
+ 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 = "needle___needle_2.5.0.tgz";
+ path = fetchurl {
+ name = "needle___needle_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/needle/-/needle-2.5.0.tgz";
+ sha1 = "e6fc4b3cc6c25caed7554bd613a5cf0bac8c31c0";
+ };
+ }
+ {
+ 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 = "node_fetch_npm___node_fetch_npm_2.0.2.tgz";
+ path = fetchurl {
+ name = "node_fetch_npm___node_fetch_npm_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz";
+ sha1 = "7258c9046182dca345b4208eda918daf33697ff7";
+ };
+ }
+ {
+ name = "node_gyp___node_gyp_5.1.0.tgz";
+ path = fetchurl {
+ name = "node_gyp___node_gyp_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.0.tgz";
+ sha1 = "8e31260a7af4a2e2f994b0673d4e0b3866156332";
+ };
+ }
+ {
+ name = "node_gyp___node_gyp_5.1.1.tgz";
+ path = fetchurl {
+ name = "node_gyp___node_gyp_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz";
+ sha1 = "eb915f7b631c937d282e33aed44cb7a025f62a3e";
+ };
+ }
+ {
+ name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
+ path = fetchurl {
+ name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
+ url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz";
+ sha1 = "c2fc383276b74c7ffa842925241553e8b40f1087";
+ };
+ }
+ {
+ name = "nopt___nopt_4.0.1.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz";
+ sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+ };
+ }
+ {
+ name = "nopt___nopt_4.0.3.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
+ sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
+ };
+ }
+ {
+ name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+ path = fetchurl {
+ name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+ sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
+ };
+ }
+ {
+ name = "normalize_path___normalize_path_3.0.0.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
+ sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
+ };
+ }
+ {
+ name = "normalize_url___normalize_url_4.5.0.tgz";
+ path = fetchurl {
+ name = "normalize_url___normalize_url_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz";
+ sha1 = "453354087e6ca96957bd8f5baf753f5982142129";
+ };
+ }
+ {
+ name = "npm_audit_report___npm_audit_report_1.3.2.tgz";
+ path = fetchurl {
+ name = "npm_audit_report___npm_audit_report_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz";
+ sha1 = "303bc78cd9e4c226415076a4f7e528c89fc77018";
+ };
+ }
+ {
+ name = "npm_bundled___npm_bundled_1.1.1.tgz";
+ path = fetchurl {
+ name = "npm_bundled___npm_bundled_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz";
+ sha1 = "1edd570865a94cdb1bc8220775e29466c9fb234b";
+ };
+ }
+ {
+ name = "npm_cache_filename___npm_cache_filename_1.0.2.tgz";
+ path = fetchurl {
+ name = "npm_cache_filename___npm_cache_filename_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz";
+ sha1 = "ded306c5b0bfc870a9e9faf823bc5f283e05ae11";
+ };
+ }
+ {
+ name = "npm_install_checks___npm_install_checks_3.0.2.tgz";
+ path = fetchurl {
+ name = "npm_install_checks___npm_install_checks_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.2.tgz";
+ sha1 = "ab2e32ad27baa46720706908e5b14c1852de44d9";
+ };
+ }
+ {
+ name = "npm_lifecycle___npm_lifecycle_3.1.4.tgz";
+ path = fetchurl {
+ name = "npm_lifecycle___npm_lifecycle_3.1.4.tgz";
+ url = "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz";
+ sha1 = "de6975c7d8df65f5150db110b57cce498b0b604c";
+ };
+ }
+ {
+ name = "npm_logical_tree___npm_logical_tree_1.2.1.tgz";
+ path = fetchurl {
+ name = "npm_logical_tree___npm_logical_tree_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz";
+ sha1 = "44610141ca24664cad35d1e607176193fd8f5b88";
+ };
+ }
+ {
+ name = "npm_normalize_package_bin___npm_normalize_package_bin_1.0.1.tgz";
+ path = fetchurl {
+ name = "npm_normalize_package_bin___npm_normalize_package_bin_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
+ sha1 = "6e79a41f23fd235c0623218228da7d9c23b8f6e2";
+ };
+ }
+ {
+ name = "npm_package_arg___npm_package_arg_6.1.1.tgz";
+ path = fetchurl {
+ name = "npm_package_arg___npm_package_arg_6.1.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz";
+ sha1 = "02168cb0a49a2b75bf988a28698de7b529df5cb7";
+ };
+ }
+ {
+ name = "npm_packlist___npm_packlist_1.4.8.tgz";
+ path = fetchurl {
+ name = "npm_packlist___npm_packlist_1.4.8.tgz";
+ url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz";
+ sha1 = "56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e";
+ };
+ }
+ {
+ name = "npm_pick_manifest___npm_pick_manifest_3.0.2.tgz";
+ path = fetchurl {
+ name = "npm_pick_manifest___npm_pick_manifest_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz";
+ sha1 = "f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7";
+ };
+ }
+ {
+ name = "npm_profile___npm_profile_4.0.2.tgz";
+ path = fetchurl {
+ name = "npm_profile___npm_profile_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.2.tgz";
+ sha1 = "8272a71c19634d0dce9c35a5daf8ee589cbb0f52";
+ };
+ }
+ {
+ name = "npm_profile___npm_profile_4.0.4.tgz";
+ path = fetchurl {
+ name = "npm_profile___npm_profile_4.0.4.tgz";
+ url = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz";
+ sha1 = "28ee94390e936df6d084263ee2061336a6a1581b";
+ };
+ }
+ {
+ name = "npm_registry_fetch___npm_registry_fetch_4.0.2.tgz";
+ path = fetchurl {
+ name = "npm_registry_fetch___npm_registry_fetch_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz";
+ sha1 = "2b1434f93ccbe6b6385f8e45f45db93e16921d7a";
+ };
+ }
+ {
+ name = "npm_registry_fetch___npm_registry_fetch_4.0.5.tgz";
+ path = fetchurl {
+ name = "npm_registry_fetch___npm_registry_fetch_4.0.5.tgz";
+ url = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.5.tgz";
+ sha1 = "cb87cf7f25bfb048d6c3ee19d115bebf93ea5bfa";
+ };
+ }
+ {
+ 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_user_validate___npm_user_validate_1.0.1.tgz";
+ path = fetchurl {
+ name = "npm_user_validate___npm_user_validate_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz";
+ sha1 = "31428fc5475fe8416023f178c0ab47935ad8c561";
+ };
+ }
+ {
+ name = "npm___npm_6.14.6.tgz";
+ path = fetchurl {
+ name = "npm___npm_6.14.6.tgz";
+ url = "https://registry.yarnpkg.com/npm/-/npm-6.14.6.tgz";
+ sha1 = "1a81ce1fac2bf5457dbf6342ceed503627ff228f";
+ };
+ }
+ {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ path = fetchurl {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+ sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
+ };
+ }
+ {
+ 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 = "oauth_sign___oauth_sign_0.9.0.tgz";
+ path = fetchurl {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+ };
+ }
+ {
+ 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_inspect___object_inspect_1.7.0.tgz";
+ path = fetchurl {
+ name = "object_inspect___object_inspect_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz";
+ sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67";
+ };
+ }
+ {
+ name = "object_is___object_is_1.0.1.tgz";
+ path = fetchurl {
+ name = "object_is___object_is_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz";
+ sha1 = "0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6";
+ };
+ }
+ {
+ name = "object_keys___object_keys_1.1.1.tgz";
+ path = fetchurl {
+ name = "object_keys___object_keys_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
+ sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
+ };
+ }
+ {
+ 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.2.tgz";
+ path = fetchurl {
+ name = "object.entries___object.entries_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz";
+ sha1 = "bc73f00acb6b6bb16c203434b10f9a7e797d3add";
+ };
+ }
+ {
+ name = "object.fromentries___object.fromentries_2.0.2.tgz";
+ path = fetchurl {
+ name = "object.fromentries___object.fromentries_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz";
+ sha1 = "4a09c9b9bb3843dd0f89acdb517a794d4f355ac9";
+ };
+ }
+ {
+ name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
+ path = fetchurl {
+ name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz";
+ sha1 = "8758c846f5b407adab0f236e0986f14b051caa16";
+ };
+ }
+ {
+ name = "object.values___object.values_1.1.1.tgz";
+ path = fetchurl {
+ name = "object.values___object.values_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
+ sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
+ };
+ }
+ {
+ name = "omggif___omggif_1.0.10.tgz";
+ path = fetchurl {
+ name = "omggif___omggif_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz";
+ sha1 = "ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19";
+ };
+ }
+ {
+ 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_5.1.0.tgz";
+ path = fetchurl {
+ name = "onetime___onetime_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
+ sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
+ };
+ }
+ {
+ name = "opener___opener_1.5.1.tgz";
+ path = fetchurl {
+ name = "opener___opener_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
+ sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
+ };
+ }
+ {
+ name = "optionator___optionator_0.8.3.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.8.3.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
+ sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
+ };
+ }
+ {
+ name = "optionator___optionator_0.9.1.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.9.1.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
+ sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
+ };
+ }
+ {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ }
+ {
+ 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_locale___os_locale_3.1.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
+ sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
+ };
+ }
+ {
+ 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 = "osenv___osenv_0.1.5.tgz";
+ path = fetchurl {
+ name = "osenv___osenv_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
+ sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
+ };
+ }
+ {
+ name = "p_cancelable___p_cancelable_1.1.0.tgz";
+ path = fetchurl {
+ name = "p_cancelable___p_cancelable_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz";
+ sha1 = "d078d15a3af409220c886f1d9a0ca2e441ab26cc";
+ };
+ }
+ {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
+ sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+ };
+ }
+ {
+ 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_is_promise___p_is_promise_2.1.0.tgz";
+ path = fetchurl {
+ name = "p_is_promise___p_is_promise_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz";
+ sha1 = "918cebaea248a62cf7ffab8e3bca8c5f882fc42e";
+ };
+ }
+ {
+ 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.2.1.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz";
+ sha1 = "aa07a788cc3151c939b5131f63570f0dd2009537";
+ };
+ }
+ {
+ name = "p_limit___p_limit_2.2.2.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz";
+ sha1 = "61279b67721f5287aa1c13a9a7fbbc48c9291b1e";
+ };
+ }
+ {
+ 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_locate___p_locate_4.1.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
+ sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
+ };
+ }
+ {
+ 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.2.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
+ sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
+ };
+ }
+ {
+ name = "package_json___package_json_4.0.1.tgz";
+ path = fetchurl {
+ name = "package_json___package_json_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz";
+ sha1 = "8869a0401253661c4c4ca3da6c2121ed555f5eed";
+ };
+ }
+ {
+ name = "package_json___package_json_6.5.0.tgz";
+ path = fetchurl {
+ name = "package_json___package_json_6.5.0.tgz";
+ url = "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz";
+ sha1 = "6feedaca35e75725876d0b0e64974697fed145b0";
+ };
+ }
+ {
+ name = "pacote___pacote_9.5.12.tgz";
+ path = fetchurl {
+ name = "pacote___pacote_9.5.12.tgz";
+ url = "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz";
+ sha1 = "1e11dd7a8d736bcc36b375a9804d41bb0377bf66";
+ };
+ }
+ {
+ name = "pako___pako_1.0.11.tgz";
+ path = fetchurl {
+ name = "pako___pako_1.0.11.tgz";
+ url = "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz";
+ sha1 = "6c9599d340d54dfd3946380252a35705a6b992bf";
+ };
+ }
+ {
+ name = "parallel_transform___parallel_transform_1.2.0.tgz";
+ path = fetchurl {
+ name = "parallel_transform___parallel_transform_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz";
+ sha1 = "9049ca37d6cb2182c3b1d2c720be94d14a5814fc";
+ };
+ }
+ {
+ name = "parent_module___parent_module_1.0.1.tgz";
+ path = fetchurl {
+ name = "parent_module___parent_module_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
+ sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
+ };
+ }
+ {
+ name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz";
+ path = fetchurl {
+ name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz";
+ sha1 = "11ac3c3ff58f7c2020ab22769079108d4dfa0285";
+ };
+ }
+ {
+ name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz";
+ path = fetchurl {
+ name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz";
+ sha1 = "d038b476d3e9dd9db1e11a0b0e53a22792b69006";
+ };
+ }
+ {
+ name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz";
+ path = fetchurl {
+ name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz";
+ sha1 = "015319797e3e12f9e739c4d513872cd2fa35f389";
+ };
+ }
+ {
+ name = "parse_headers___parse_headers_2.0.3.tgz";
+ path = fetchurl {
+ name = "parse_headers___parse_headers_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz";
+ sha1 = "5e8e7512383d140ba02f0c7aa9f49b4399c92515";
+ };
+ }
+ {
+ 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 = "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_exists___path_exists_4.0.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
+ sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
+ };
+ }
+ {
+ 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_key___path_key_3.1.1.tgz";
+ path = fetchurl {
+ name = "path_key___path_key_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
+ sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
+ };
+ }
+ {
+ 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 = "performance_now___performance_now_2.1.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ }
+ {
+ name = "phin___phin_2.9.3.tgz";
+ path = fetchurl {
+ name = "phin___phin_2.9.3.tgz";
+ url = "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz";
+ sha1 = "f9b6ac10a035636fb65dfc576aaaa17b8743125c";
+ };
+ }
+ {
+ 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 = "pixelmatch___pixelmatch_4.0.2.tgz";
+ path = fetchurl {
+ name = "pixelmatch___pixelmatch_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz";
+ sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
+ };
+ }
+ {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+ sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+ };
+ }
+ {
+ name = "pkg_up___pkg_up_2.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_up___pkg_up_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz";
+ sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
+ };
+ }
+ {
+ name = "png_to_ico___png_to_ico_2.1.0.tgz";
+ path = fetchurl {
+ name = "png_to_ico___png_to_ico_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/png-to-ico/-/png-to-ico-2.1.0.tgz";
+ sha1 = "b7a59bc7e95093f6dd4dc85f27b9048e12d2fe71";
+ };
+ }
+ {
+ name = "pngjs___pngjs_3.4.0.tgz";
+ path = fetchurl {
+ name = "pngjs___pngjs_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz";
+ sha1 = "99ca7d725965fb655814eaf65f38f12bbdbf555f";
+ };
+ }
+ {
+ name = "prelude_ls___prelude_ls_1.2.1.tgz";
+ path = fetchurl {
+ name = "prelude_ls___prelude_ls_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
+ sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
+ };
+ }
+ {
+ 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 = "prepend_http___prepend_http_1.0.4.tgz";
+ path = fetchurl {
+ name = "prepend_http___prepend_http_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
+ sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+ };
+ }
+ {
+ name = "prepend_http___prepend_http_2.0.0.tgz";
+ path = fetchurl {
+ name = "prepend_http___prepend_http_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz";
+ sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897";
+ };
+ }
+ {
+ name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
+ };
+ }
+ {
+ name = "process___process_0.5.2.tgz";
+ path = fetchurl {
+ name = "process___process_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz";
+ sha1 = "1638d8a8e34c2f440a91db95ab9aeb677fc185cf";
+ };
+ }
+ {
+ 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 = "promise_inflight___promise_inflight_1.0.1.tgz";
+ path = fetchurl {
+ name = "promise_inflight___promise_inflight_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
+ sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+ };
+ }
+ {
+ name = "promise_retry___promise_retry_1.1.1.tgz";
+ path = fetchurl {
+ name = "promise_retry___promise_retry_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz";
+ sha1 = "6739e968e3051da20ce6497fb2b50f6911df3d6d";
+ };
+ }
+ {
+ name = "promzard___promzard_0.3.0.tgz";
+ path = fetchurl {
+ name = "promzard___promzard_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz";
+ sha1 = "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee";
+ };
+ }
+ {
+ name = "prop_types___prop_types_15.7.2.tgz";
+ path = fetchurl {
+ name = "prop_types___prop_types_15.7.2.tgz";
+ url = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
+ sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
+ };
+ }
+ {
+ name = "proto_list___proto_list_1.2.4.tgz";
+ path = fetchurl {
+ name = "proto_list___proto_list_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
+ sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+ };
+ }
+ {
+ name = "protoduck___protoduck_5.0.1.tgz";
+ path = fetchurl {
+ name = "protoduck___protoduck_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz";
+ sha1 = "03c3659ca18007b69a50fd82a7ebcc516261151f";
+ };
+ }
+ {
+ name = "prr___prr_1.0.1.tgz";
+ path = fetchurl {
+ name = "prr___prr_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
+ sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+ };
+ }
+ {
+ 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 = "psl___psl_1.6.0.tgz";
+ path = fetchurl {
+ name = "psl___psl_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz";
+ sha1 = "60557582ee23b6c43719d9890fb4170ecd91e110";
+ };
+ }
+ {
+ name = "psl___psl_1.8.0.tgz";
+ path = fetchurl {
+ name = "psl___psl_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz";
+ sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24";
+ };
+ }
+ {
+ name = "pump___pump_2.0.1.tgz";
+ path = fetchurl {
+ name = "pump___pump_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
+ sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
+ };
+ }
+ {
+ 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 = "pumpify___pumpify_1.5.1.tgz";
+ path = fetchurl {
+ name = "pumpify___pumpify_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
+ sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
+ };
+ }
+ {
+ name = "punycode___punycode_1.4.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+ sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+ };
+ }
+ {
+ 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 = "pupa___pupa_2.0.1.tgz";
+ path = fetchurl {
+ name = "pupa___pupa_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz";
+ sha1 = "dbdc9ff48ffbea4a26a069b6f9f7abb051008726";
+ };
+ }
+ {
+ name = "qrcode_terminal___qrcode_terminal_0.12.0.tgz";
+ path = fetchurl {
+ name = "qrcode_terminal___qrcode_terminal_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz";
+ sha1 = "bb5b699ef7f9f0505092a3748be4464fe71b5819";
+ };
+ }
+ {
+ name = "qs___qs_6.5.2.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.5.2.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+ sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+ };
+ }
+ {
+ name = "query_string___query_string_6.10.1.tgz";
+ path = fetchurl {
+ name = "query_string___query_string_6.10.1.tgz";
+ url = "https://registry.yarnpkg.com/query-string/-/query-string-6.10.1.tgz";
+ sha1 = "30b3505f6fca741d5ae541964d1b3ae9dc2a0de8";
+ };
+ }
+ {
+ name = "qw___qw_1.0.1.tgz";
+ path = fetchurl {
+ name = "qw___qw_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz";
+ sha1 = "efbfdc740f9ad054304426acb183412cc8b996d4";
+ };
+ }
+ {
+ name = "rc___rc_1.2.8.tgz";
+ path = fetchurl {
+ name = "rc___rc_1.2.8.tgz";
+ url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+ sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+ };
+ }
+ {
+ name = "react_is___react_is_16.13.1.tgz";
+ path = fetchurl {
+ name = "react_is___react_is_16.13.1.tgz";
+ url = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
+ sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
+ };
+ }
+ {
+ name = "read_cmd_shim___read_cmd_shim_1.0.5.tgz";
+ path = fetchurl {
+ name = "read_cmd_shim___read_cmd_shim_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz";
+ sha1 = "87e43eba50098ba5a32d0ceb583ab8e43b961c16";
+ };
+ }
+ {
+ name = "read_config_file___read_config_file_6.0.0.tgz";
+ path = fetchurl {
+ name = "read_config_file___read_config_file_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz";
+ sha1 = "224b5dca6a5bdc1fb19e63f89f342680efdb9299";
+ };
+ }
+ {
+ name = "read_installed___read_installed_4.0.3.tgz";
+ path = fetchurl {
+ name = "read_installed___read_installed_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz";
+ sha1 = "ff9b8b67f187d1e4c29b9feb31f6b223acd19067";
+ };
+ }
+ {
+ name = "read_package_json___read_package_json_2.1.1.tgz";
+ path = fetchurl {
+ name = "read_package_json___read_package_json_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.1.tgz";
+ sha1 = "16aa66c59e7d4dad6288f179dd9295fd59bb98f1";
+ };
+ }
+ {
+ name = "read_package_tree___read_package_tree_5.3.1.tgz";
+ path = fetchurl {
+ name = "read_package_tree___read_package_tree_5.3.1.tgz";
+ url = "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz";
+ sha1 = "a32cb64c7f31eb8a6f31ef06f9cedf74068fe636";
+ };
+ }
+ {
+ 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___read_1.0.7.tgz";
+ path = fetchurl {
+ name = "read___read_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz";
+ sha1 = "b3da19bd052431a97671d44a42634adf710b40c4";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_2.3.7.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.3.7.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
+ sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_3.6.0.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_3.6.0.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+ sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_1.1.14.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_1.1.14.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz";
+ sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+ };
+ }
+ {
+ name = "readdir_scoped_modules___readdir_scoped_modules_1.1.0.tgz";
+ path = fetchurl {
+ name = "readdir_scoped_modules___readdir_scoped_modules_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz";
+ sha1 = "8d45407b4f870a0dcaebc0e28670d18e74514309";
+ };
+ }
+ {
+ name = "regenerator_runtime___regenerator_runtime_0.13.7.tgz";
+ path = fetchurl {
+ name = "regenerator_runtime___regenerator_runtime_0.13.7.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+ sha1 = "cac2dacc8a1ea675feaabaeb8ae833898ae46f55";
+ };
+ }
+ {
+ name = "regexp.prototype.flags___regexp.prototype.flags_1.2.0.tgz";
+ path = fetchurl {
+ name = "regexp.prototype.flags___regexp.prototype.flags_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz";
+ sha1 = "6b30724e306a27833eeb171b66ac8890ba37e41c";
+ };
+ }
+ {
+ name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+ path = fetchurl {
+ name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
+ sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
+ };
+ }
+ {
+ 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 = "regexpp___regexpp_3.1.0.tgz";
+ path = fetchurl {
+ name = "regexpp___regexpp_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz";
+ sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2";
+ };
+ }
+ {
+ name = "registry_auth_token___registry_auth_token_3.4.0.tgz";
+ path = fetchurl {
+ name = "registry_auth_token___registry_auth_token_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz";
+ sha1 = "d7446815433f5d5ed6431cd5dca21048f66b397e";
+ };
+ }
+ {
+ name = "registry_auth_token___registry_auth_token_4.0.0.tgz";
+ path = fetchurl {
+ name = "registry_auth_token___registry_auth_token_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz";
+ sha1 = "30e55961eec77379da551ea5c4cf43cbf03522be";
+ };
+ }
+ {
+ name = "registry_url___registry_url_3.1.0.tgz";
+ path = fetchurl {
+ name = "registry_url___registry_url_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz";
+ sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+ };
+ }
+ {
+ name = "registry_url___registry_url_5.1.0.tgz";
+ path = fetchurl {
+ name = "registry_url___registry_url_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz";
+ sha1 = "e98334b50d5434b81136b44ec638d9c2009c5009";
+ };
+ }
+ {
+ name = "request___request_2.88.0.tgz";
+ path = fetchurl {
+ name = "request___request_2.88.0.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
+ sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
+ };
+ }
+ {
+ name = "request___request_2.88.2.tgz";
+ path = fetchurl {
+ name = "request___request_2.88.2.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
+ sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
+ };
+ }
+ {
+ 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_main_filename___require_main_filename_2.0.0.tgz";
+ path = fetchurl {
+ name = "require_main_filename___require_main_filename_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
+ sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
+ };
+ }
+ {
+ 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___resolve_1.13.1.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.13.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz";
+ sha1 = "be0aa4c06acd53083505abb35f4d66932ab35d16";
+ };
+ }
+ {
+ name = "resolve___resolve_1.17.0.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.17.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz";
+ sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444";
+ };
+ }
+ {
+ name = "responselike___responselike_1.0.2.tgz";
+ path = fetchurl {
+ name = "responselike___responselike_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz";
+ sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7";
+ };
+ }
+ {
+ name = "restore_cursor___restore_cursor_3.1.0.tgz";
+ path = fetchurl {
+ name = "restore_cursor___restore_cursor_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
+ sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
+ };
+ }
+ {
+ name = "retry___retry_0.10.1.tgz";
+ path = fetchurl {
+ name = "retry___retry_0.10.1.tgz";
+ url = "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz";
+ sha1 = "e76388d217992c252750241d3d3956fed98d8ff4";
+ };
+ }
+ {
+ name = "retry___retry_0.12.0.tgz";
+ path = fetchurl {
+ name = "retry___retry_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
+ sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+ };
+ }
+ {
+ 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 = "rimraf___rimraf_2.7.1.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
+ sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
+ };
+ }
+ {
+ name = "rimraf___rimraf_3.0.2.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
+ sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
+ };
+ }
+ {
+ name = "run_async___run_async_2.4.1.tgz";
+ path = fetchurl {
+ name = "run_async___run_async_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
+ sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
+ };
+ }
+ {
+ name = "run_queue___run_queue_1.0.3.tgz";
+ path = fetchurl {
+ name = "run_queue___run_queue_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
+ sha1 = "e848396f057d223f24386924618e25694161ec47";
+ };
+ }
+ {
+ name = "rxjs___rxjs_6.6.0.tgz";
+ path = fetchurl {
+ name = "rxjs___rxjs_6.6.0.tgz";
+ url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz";
+ sha1 = "af2901eedf02e3a83ffa7f886240ff9018bbec84";
+ };
+ }
+ {
+ name = "safe_buffer___safe_buffer_5.2.0.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz";
+ sha1 = "b74daec49b1148f88c64b68d49b1e815c1f2f519";
+ };
+ }
+ {
+ 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_buffer___safe_buffer_5.2.1.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.2.1.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
+ sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
+ };
+ }
+ {
+ 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 = "sanitize_filename___sanitize_filename_1.6.3.tgz";
+ path = fetchurl {
+ name = "sanitize_filename___sanitize_filename_1.6.3.tgz";
+ url = "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz";
+ sha1 = "755ebd752045931977e30b2025d340d7c9090378";
+ };
+ }
+ {
+ name = "sax___sax_1.2.4.tgz";
+ path = fetchurl {
+ name = "sax___sax_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+ sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+ };
+ }
+ {
+ name = "semver_diff___semver_diff_2.1.0.tgz";
+ path = fetchurl {
+ name = "semver_diff___semver_diff_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz";
+ sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36";
+ };
+ }
+ {
+ name = "semver_diff___semver_diff_3.1.1.tgz";
+ path = fetchurl {
+ name = "semver_diff___semver_diff_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz";
+ sha1 = "05f77ce59f325e00e2706afd67bb506ddb1ca32b";
+ };
+ }
+ {
+ name = "semver___semver_5.7.1.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.7.1.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+ sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+ };
+ }
+ {
+ name = "semver___semver_6.3.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_6.3.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
+ sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
+ };
+ }
+ {
+ name = "semver___semver_7.1.3.tgz";
+ path = fetchurl {
+ name = "semver___semver_7.1.3.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz";
+ sha1 = "e4345ce73071c53f336445cfc19efb1c311df2a6";
+ };
+ }
+ {
+ name = "semver___semver_7.3.2.tgz";
+ path = fetchurl {
+ name = "semver___semver_7.3.2.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
+ sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
+ };
+ }
+ {
+ 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 = "sha___sha_3.0.0.tgz";
+ path = fetchurl {
+ name = "sha___sha_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/sha/-/sha-3.0.0.tgz";
+ sha1 = "b2f2f90af690c16a3a839a6a6c680ea51fedd1ae";
+ };
+ }
+ {
+ 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_command___shebang_command_2.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_command___shebang_command_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
+ sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
+ };
+ }
+ {
+ 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 = "shebang_regex___shebang_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_regex___shebang_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
+ sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
+ };
+ }
+ {
+ name = "side_channel___side_channel_1.0.2.tgz";
+ path = fetchurl {
+ name = "side_channel___side_channel_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz";
+ sha1 = "df5d1abadb4e4bf4af1cd8852bf132d2f7876947";
+ };
+ }
+ {
+ 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 = "slice_ansi___slice_ansi_2.1.0.tgz";
+ path = fetchurl {
+ name = "slice_ansi___slice_ansi_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
+ sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
+ };
+ }
+ {
+ name = "slide___slide_1.1.6.tgz";
+ path = fetchurl {
+ name = "slide___slide_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz";
+ sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
+ };
+ }
+ {
+ name = "smart_buffer___smart_buffer_4.1.0.tgz";
+ path = fetchurl {
+ name = "smart_buffer___smart_buffer_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz";
+ sha1 = "91605c25d91652f4661ea69ccf45f1b331ca21ba";
+ };
+ }
+ {
+ name = "socks_proxy_agent___socks_proxy_agent_4.0.2.tgz";
+ path = fetchurl {
+ name = "socks_proxy_agent___socks_proxy_agent_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz";
+ sha1 = "3c8991f3145b2799e70e11bd5fbc8b1963116386";
+ };
+ }
+ {
+ name = "socks___socks_2.3.3.tgz";
+ path = fetchurl {
+ name = "socks___socks_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz";
+ sha1 = "01129f0a5d534d2b897712ed8aceab7ee65d78e3";
+ };
+ }
+ {
+ name = "sorted_object___sorted_object_2.0.1.tgz";
+ path = fetchurl {
+ name = "sorted_object___sorted_object_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz";
+ sha1 = "7d631f4bd3a798a24af1dffcfbfe83337a5df5fc";
+ };
+ }
+ {
+ name = "sorted_union_stream___sorted_union_stream_2.1.3.tgz";
+ path = fetchurl {
+ name = "sorted_union_stream___sorted_union_stream_2.1.3.tgz";
+ url = "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz";
+ sha1 = "c7794c7e077880052ff71a8d4a2dbb4a9a638ac7";
+ };
+ }
+ {
+ name = "source_map_support___source_map_support_0.5.19.tgz";
+ path = fetchurl {
+ name = "source_map_support___source_map_support_0.5.19.tgz";
+ url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
+ sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+ };
+ }
+ {
+ 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 = "source_map___source_map_0.6.1.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+ sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+ };
+ }
+ {
+ 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.5.tgz";
+ path = fetchurl {
+ name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz";
+ url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+ sha1 = "3694b5804567a458d3c8045842a6358632f62654";
+ };
+ }
+ {
+ name = "split_on_first___split_on_first_1.1.0.tgz";
+ path = fetchurl {
+ name = "split_on_first___split_on_first_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz";
+ sha1 = "f610afeee3b12bce1d0c30425e76398b78249a5f";
+ };
+ }
+ {
+ 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 = "sshpk___sshpk_1.16.1.tgz";
+ path = fetchurl {
+ name = "sshpk___sshpk_1.16.1.tgz";
+ url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
+ sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
+ };
+ }
+ {
+ name = "ssri___ssri_6.0.1.tgz";
+ path = fetchurl {
+ name = "ssri___ssri_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
+ sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+ };
+ }
+ {
+ name = "stat_mode___stat_mode_1.0.0.tgz";
+ path = fetchurl {
+ name = "stat_mode___stat_mode_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz";
+ sha1 = "68b55cb61ea639ff57136f36b216a291800d1465";
+ };
+ }
+ {
+ name = "stream_each___stream_each_1.2.3.tgz";
+ path = fetchurl {
+ name = "stream_each___stream_each_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz";
+ sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae";
+ };
+ }
+ {
+ name = "stream_iterate___stream_iterate_1.2.0.tgz";
+ path = fetchurl {
+ name = "stream_iterate___stream_iterate_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz";
+ sha1 = "2bd7c77296c1702a46488b8ad41f79865eecd4e1";
+ };
+ }
+ {
+ name = "stream_shift___stream_shift_1.0.1.tgz";
+ path = fetchurl {
+ name = "stream_shift___stream_shift_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz";
+ sha1 = "d7088281559ab2778424279b0877da3c392d5a3d";
+ };
+ }
+ {
+ name = "strict_uri_encode___strict_uri_encode_2.0.0.tgz";
+ path = fetchurl {
+ name = "strict_uri_encode___strict_uri_encode_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz";
+ sha1 = "b9c7330c7042862f6b142dc274bbcc5866ce3546";
+ };
+ }
+ {
+ 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_width___string_width_3.1.0.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
+ sha1 = "22767be21b62af1081574306f69ac51b62203961";
+ };
+ }
+ {
+ name = "string_width___string_width_4.2.0.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
+ sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
+ };
+ }
+ {
+ name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+ path = fetchurl {
+ name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz";
+ sha1 = "48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e";
+ };
+ }
+ {
+ name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+ sha1 = "85812a6b847ac002270f5808146064c995fb6913";
+ };
+ }
+ {
+ name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz";
+ sha1 = "6cc47f0d7eb8d62b0f3701611715a3954591d634";
+ };
+ }
+ {
+ name = "string.prototype.trimright___string.prototype.trimright_2.1.0.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimright___string.prototype.trimright_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz";
+ sha1 = "669d164be9df9b6f7559fa8e89945b168a5a6c58";
+ };
+ }
+ {
+ name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+ sha1 = "14af6d9f34b053f7cfc89b72f8f2ee14b9039a54";
+ };
+ }
+ {
+ name = "string_decoder___string_decoder_1.3.0.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
+ sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e";
+ };
+ }
+ {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ }
+ {
+ 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_package___stringify_package_1.0.1.tgz";
+ path = fetchurl {
+ name = "stringify_package___stringify_package_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz";
+ sha1 = "e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85";
+ };
+ }
+ {
+ 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.2.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
+ sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
+ };
+ }
+ {
+ name = "strip_ansi___strip_ansi_6.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
+ sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
+ };
+ }
+ {
+ 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_3.1.1.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+ sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
+ };
+ }
+ {
+ 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_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 = "supports_color___supports_color_7.1.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz";
+ sha1 = "68e32591df73e25ad1c4b49108a2ec507962bfd1";
+ };
+ }
+ {
+ name = "table___table_5.4.6.tgz";
+ path = fetchurl {
+ name = "table___table_5.4.6.tgz";
+ url = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz";
+ sha1 = "1292d19500ce3f86053b05f0e8e7e4a3bb21079e";
+ };
+ }
+ {
+ name = "tar_stream___tar_stream_2.1.2.tgz";
+ path = fetchurl {
+ name = "tar_stream___tar_stream_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz";
+ sha1 = "6d5ef1a7e5783a95ff70b69b97455a5968dc1325";
+ };
+ }
+ {
+ name = "tar___tar_4.4.13.tgz";
+ path = fetchurl {
+ name = "tar___tar_4.4.13.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz";
+ sha1 = "43b364bc52888d555298637b10d60790254ab525";
+ };
+ }
+ {
+ name = "tar___tar_6.0.1.tgz";
+ path = fetchurl {
+ name = "tar___tar_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-6.0.1.tgz";
+ sha1 = "7b3bd6c313cb6e0153770108f8d70ac298607efa";
+ };
+ }
+ {
+ name = "temp_file___temp_file_3.3.7.tgz";
+ path = fetchurl {
+ name = "temp_file___temp_file_3.3.7.tgz";
+ url = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz";
+ sha1 = "686885d635f872748e384e871855958470aeb18a";
+ };
+ }
+ {
+ name = "term_size___term_size_1.2.0.tgz";
+ path = fetchurl {
+ name = "term_size___term_size_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz";
+ sha1 = "458b83887f288fc56d6fffbfad262e26638efa69";
+ };
+ }
+ {
+ name = "term_size___term_size_2.2.0.tgz";
+ path = fetchurl {
+ name = "term_size___term_size_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz";
+ sha1 = "1f16adedfe9bdc18800e1776821734086fcc6753";
+ };
+ }
+ {
+ 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 = "through2___through2_2.0.5.tgz";
+ path = fetchurl {
+ name = "through2___through2_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
+ sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
+ };
+ }
+ {
+ 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 = "timed_out___timed_out_4.0.1.tgz";
+ path = fetchurl {
+ name = "timed_out___timed_out_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz";
+ sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+ };
+ }
+ {
+ name = "timm___timm_1.7.1.tgz";
+ path = fetchurl {
+ name = "timm___timm_1.7.1.tgz";
+ url = "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz";
+ sha1 = "96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f";
+ };
+ }
+ {
+ name = "tiny_relative_date___tiny_relative_date_1.3.0.tgz";
+ path = fetchurl {
+ name = "tiny_relative_date___tiny_relative_date_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz";
+ sha1 = "fa08aad501ed730f31cc043181d995c39a935e07";
+ };
+ }
+ {
+ name = "tinycolor2___tinycolor2_1.4.2.tgz";
+ path = fetchurl {
+ name = "tinycolor2___tinycolor2_1.4.2.tgz";
+ url = "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz";
+ sha1 = "3f6a4d1071ad07676d7fa472e1fac40a719d8803";
+ };
+ }
+ {
+ name = "tmp_promise___tmp_promise_1.1.0.tgz";
+ path = fetchurl {
+ name = "tmp_promise___tmp_promise_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz";
+ sha1 = "bb924d239029157b9bc1d506a6aa341f8b13e64c";
+ };
+ }
+ {
+ name = "tmp___tmp_0.1.0.tgz";
+ path = fetchurl {
+ name = "tmp___tmp_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz";
+ sha1 = "ee434a4e22543082e294ba6201dcc6eafefa2877";
+ };
+ }
+ {
+ 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_readable_stream___to_readable_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
+ sha1 = "ce0aa0c2f3df6adf852efb404a783e77c0475771";
+ };
+ }
+ {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
+ sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
+ };
+ }
+ {
+ name = "tough_cookie___tough_cookie_2.5.0.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
+ sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
+ };
+ }
+ {
+ name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
+ path = fetchurl {
+ name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz";
+ sha1 = "405923909592d56f78a5818434b0b78489ca5f2b";
+ };
+ }
+ {
+ name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+ path = fetchurl {
+ name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+ url = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+ sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
+ };
+ }
+ {
+ name = "tslib___tslib_1.13.0.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.13.0.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz";
+ sha1 = "c881e13cc7015894ed914862d276436fa9a47043";
+ };
+ }
+ {
+ name = "tslib___tslib_1.10.0.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz";
+ sha1 = "c3c19f95973fb0a62973fb09d90d961ee43e5c8a";
+ };
+ }
+ {
+ name = "tsutils___tsutils_3.17.1.tgz";
+ path = fetchurl {
+ name = "tsutils___tsutils_3.17.1.tgz";
+ url = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
+ sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
+ };
+ }
+ {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ path = fetchurl {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ }
+ {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ path = fetchurl {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ }
+ {
+ name = "type_check___type_check_0.4.0.tgz";
+ path = fetchurl {
+ name = "type_check___type_check_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
+ sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
+ };
+ }
+ {
+ 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 = "type_fest___type_fest_0.11.0.tgz";
+ path = fetchurl {
+ name = "type_fest___type_fest_0.11.0.tgz";
+ url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz";
+ sha1 = "97abf0872310fed88a5c466b25681576145e33f1";
+ };
+ }
+ {
+ name = "type_fest___type_fest_0.8.1.tgz";
+ path = fetchurl {
+ name = "type_fest___type_fest_0.8.1.tgz";
+ url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
+ sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
+ };
+ }
+ {
+ name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+ path = fetchurl {
+ name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+ url = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+ sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
+ };
+ }
+ {
+ 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___typescript_3.9.7.tgz";
+ path = fetchurl {
+ name = "typescript___typescript_3.9.7.tgz";
+ url = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
+ sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
+ };
+ }
+ {
+ name = "uid_number___uid_number_0.0.6.tgz";
+ path = fetchurl {
+ name = "uid_number___uid_number_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz";
+ sha1 = "0ea10e8035e8eb5b8e4449f06da1c730663baa81";
+ };
+ }
+ {
+ name = "umask___umask_1.1.0.tgz";
+ path = fetchurl {
+ name = "umask___umask_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz";
+ sha1 = "f29cebf01df517912bb58ff9c4e50fde8e33320d";
+ };
+ }
+ {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ path = fetchurl {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
+ sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
+ };
+ }
+ {
+ name = "unique_slug___unique_slug_2.0.2.tgz";
+ path = fetchurl {
+ name = "unique_slug___unique_slug_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz";
+ sha1 = "baabce91083fc64e945b0f3ad613e264f7cd4e6c";
+ };
+ }
+ {
+ name = "unique_string___unique_string_1.0.0.tgz";
+ path = fetchurl {
+ name = "unique_string___unique_string_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz";
+ sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+ };
+ }
+ {
+ name = "unique_string___unique_string_2.0.0.tgz";
+ path = fetchurl {
+ name = "unique_string___unique_string_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz";
+ sha1 = "39c6451f81afb2749de2b233e3f7c5e8843bd89d";
+ };
+ }
+ {
+ name = "universalify___universalify_0.1.2.tgz";
+ path = fetchurl {
+ name = "universalify___universalify_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
+ sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+ };
+ }
+ {
+ name = "universalify___universalify_1.0.0.tgz";
+ path = fetchurl {
+ name = "universalify___universalify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz";
+ sha1 = "b61a1da173e8435b2fe3c67d29b9adf8594bd16d";
+ };
+ }
+ {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ path = fetchurl {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ }
+ {
+ name = "untildify___untildify_3.0.3.tgz";
+ path = fetchurl {
+ name = "untildify___untildify_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz";
+ sha1 = "1e7b42b140bcfd922b22e70ca1265bfe3634c7c9";
+ };
+ }
+ {
+ name = "unzip_response___unzip_response_2.0.1.tgz";
+ path = fetchurl {
+ name = "unzip_response___unzip_response_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz";
+ sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
+ };
+ }
+ {
+ name = "update_notifier___update_notifier_2.5.0.tgz";
+ path = fetchurl {
+ name = "update_notifier___update_notifier_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz";
+ sha1 = "d0744593e13f161e406acb1d9408b72cad08aff6";
+ };
+ }
+ {
+ name = "update_notifier___update_notifier_4.1.0.tgz";
+ path = fetchurl {
+ name = "update_notifier___update_notifier_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz";
+ sha1 = "4866b98c3bc5b5473c020b1250583628f9a328f3";
+ };
+ }
+ {
+ 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 = "url_parse_lax___url_parse_lax_1.0.0.tgz";
+ path = fetchurl {
+ name = "url_parse_lax___url_parse_lax_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz";
+ sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73";
+ };
+ }
+ {
+ name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
+ path = fetchurl {
+ name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz";
+ sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
+ };
+ }
+ {
+ name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
+ path = fetchurl {
+ name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz";
+ sha1 = "f45f150c4c66eee968186505ab93fcbb8ad6bf61";
+ };
+ }
+ {
+ name = "utif___utif_2.0.1.tgz";
+ path = fetchurl {
+ name = "utif___utif_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz";
+ sha1 = "9e1582d9bbd20011a6588548ed3266298e711759";
+ };
+ }
+ {
+ 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 = "util_extend___util_extend_1.0.3.tgz";
+ path = fetchurl {
+ name = "util_extend___util_extend_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz";
+ sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f";
+ };
+ }
+ {
+ name = "util_promisify___util_promisify_2.1.0.tgz";
+ path = fetchurl {
+ name = "util_promisify___util_promisify_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz";
+ sha1 = "3c2236476c4d32c5ff3c47002add7c13b9a82a53";
+ };
+ }
+ {
+ name = "util.promisify___util.promisify_1.0.0.tgz";
+ path = fetchurl {
+ name = "util.promisify___util.promisify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz";
+ sha1 = "440f7165a459c9a16dc145eb8e72f35687097030";
+ };
+ }
+ {
+ name = "uuid___uuid_3.3.3.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.3.3.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz";
+ sha1 = "4568f0216e78760ee1dbf3a4d2cf53e224112866";
+ };
+ }
+ {
+ name = "uuid___uuid_3.4.0.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
+ sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
+ };
+ }
+ {
+ name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+ path = fetchurl {
+ name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
+ sha1 = "54bc3cdd43317bca91e35dcaf305b1a7237de745";
+ };
+ }
+ {
+ 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 = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
+ path = fetchurl {
+ name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
+ sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
+ };
+ }
+ {
+ name = "verror___verror_1.10.0.tgz";
+ path = fetchurl {
+ name = "verror___verror_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ }
+ {
+ name = "wcwidth___wcwidth_1.0.1.tgz";
+ path = fetchurl {
+ name = "wcwidth___wcwidth_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz";
+ sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
+ };
+ }
+ {
+ 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 = "which___which_2.0.2.tgz";
+ path = fetchurl {
+ name = "which___which_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
+ sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
+ };
+ }
+ {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ path = fetchurl {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+ sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+ };
+ }
+ {
+ name = "widest_line___widest_line_2.0.1.tgz";
+ path = fetchurl {
+ name = "widest_line___widest_line_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz";
+ sha1 = "7438764730ec7ef4381ce4df82fb98a53142a3fc";
+ };
+ }
+ {
+ name = "widest_line___widest_line_3.1.0.tgz";
+ path = fetchurl {
+ name = "widest_line___widest_line_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz";
+ sha1 = "8292333bbf66cb45ff0de1603b136b7ae1496eca";
+ };
+ }
+ {
+ name = "winreg___winreg_1.2.4.tgz";
+ path = fetchurl {
+ name = "winreg___winreg_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz";
+ sha1 = "ba065629b7a925130e15779108cf540990e98d1b";
+ };
+ }
+ {
+ name = "word_wrap___word_wrap_1.2.3.tgz";
+ path = fetchurl {
+ name = "word_wrap___word_wrap_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
+ sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
+ };
+ }
+ {
+ name = "worker_farm___worker_farm_1.7.0.tgz";
+ path = fetchurl {
+ name = "worker_farm___worker_farm_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz";
+ sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8";
+ };
+ }
+ {
+ 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_6.2.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+ sha1 = "e9393ba07102e6c91a3b221478f0257cd2856e53";
+ };
+ }
+ {
+ 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_file_atomic___write_file_atomic_2.4.3.tgz";
+ path = fetchurl {
+ name = "write_file_atomic___write_file_atomic_2.4.3.tgz";
+ url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz";
+ sha1 = "1fd2e9ae1df3e75b8d8c367443c692d4ca81f481";
+ };
+ }
+ {
+ name = "write_file_atomic___write_file_atomic_3.0.1.tgz";
+ path = fetchurl {
+ name = "write_file_atomic___write_file_atomic_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz";
+ sha1 = "558328352e673b5bb192cf86500d60b230667d4b";
+ };
+ }
+ {
+ name = "write___write_1.0.3.tgz";
+ path = fetchurl {
+ name = "write___write_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
+ sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
+ };
+ }
+ {
+ name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
+ path = fetchurl {
+ name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz";
+ sha1 = "496b2cc109eca8dbacfe2dc72b603c17c5870ad4";
+ };
+ }
+ {
+ name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
+ path = fetchurl {
+ name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz";
+ sha1 = "4bc8d9984403696225ef83a1573cbbcb4e79db13";
+ };
+ }
+ {
+ name = "xhr___xhr_2.5.0.tgz";
+ path = fetchurl {
+ name = "xhr___xhr_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz";
+ sha1 = "bed8d1676d5ca36108667692b74b316c496e49dd";
+ };
+ }
+ {
+ name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz";
+ path = fetchurl {
+ name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz";
+ sha1 = "a9029e929d3dbcded169f3c6e28238d95a5d5a28";
+ };
+ }
+ {
+ name = "xml2js___xml2js_0.4.22.tgz";
+ path = fetchurl {
+ name = "xml2js___xml2js_0.4.22.tgz";
+ url = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.22.tgz";
+ sha1 = "4fa2d846ec803237de86f30aa9b5f70b6600de02";
+ };
+ }
+ {
+ name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
+ path = fetchurl {
+ name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
+ url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz";
+ sha1 = "be9bae1c8a046e76b31127726347d0ad7002beb3";
+ };
+ }
+ {
+ name = "xtend___xtend_4.0.2.tgz";
+ path = fetchurl {
+ name = "xtend___xtend_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
+ sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
+ };
+ }
+ {
+ 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 = "y18n___y18n_4.0.0.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
+ sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
+ };
+ }
+ {
+ 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 = "yallist___yallist_3.1.1.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz";
+ sha1 = "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd";
+ };
+ }
+ {
+ name = "yallist___yallist_4.0.0.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
+ sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_18.1.3.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_18.1.3.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz";
+ sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_7.0.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz";
+ sha1 = "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_9.0.2.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_9.0.2.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz";
+ sha1 = "9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077";
+ };
+ }
+ {
+ name = "yargs___yargs_11.1.1.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_11.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz";
+ sha1 = "5052efe3446a4df5ed669c995886cc0f13702766";
+ };
+ }
+ {
+ name = "yargs___yargs_15.3.1.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_15.3.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz";
+ sha1 = "9505b472763963e54afe60148ad27a330818e98b";
+ };
+ }
+ {
+ name = "yargs___yargs_8.0.2.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_8.0.2.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz";
+ sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360";
+ };
+ }
+ {
+ name = "zip_stream___zip_stream_3.0.1.tgz";
+ path = fetchurl {
+ name = "zip_stream___zip_stream_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz";
+ sha1 = "cb8db9d324a76c09f9b76b31a12a48638b0b9708";
+ };
+ }
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
new file mode 100644
index 000000000000..9a3dab920f40
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchFromGitHub
+, makeWrapper, makeDesktopItem, mkYarnPackage
+, electron_9, element-web
+}:
+# Notes for maintainers:
+# * versions of `element-web` and `element-desktop` should be kept in sync.
+# * the Yarn dependency expression must be updated with `./update-element-desktop.sh <git release tag>`
+
+let
+ executableName = "element-desktop";
+ version = "1.7.14";
+ src = fetchFromGitHub {
+ owner = "vector-im";
+ repo = "riot-desktop";
+ rev = "v${version}";
+ sha256 = "04zqvj7n803dwp4jkhiihhynp82birb14vamm6ys39a0zgs91cnv";
+ };
+ electron = electron_9;
+
+in mkYarnPackage rec {
+ name = "element-desktop-${version}";
+ inherit version src;
+
+ packageJSON = ./element-desktop-package.json;
+ yarnNix = ./element-desktop-yarndeps.nix;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ # resources
+ mkdir -p "$out/share/element"
+ ln -s '${element-web}' "$out/share/element/webapp"
+ cp -r './deps/element-desktop' "$out/share/element/electron"
+ cp -r './deps/element-desktop/res/img' "$out/share/element"
+ rm "$out/share/element/electron/node_modules"
+ cp -r './node_modules' "$out/share/element/electron"
+
+ # icons
+ for icon in $out/share/element/electron/build/icons/*.png; do
+ mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
+ ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/element.png"
+ done
+
+ # desktop item
+ mkdir -p "$out/share"
+ ln -s "${desktopItem}/share/applications" "$out/share/applications"
+
+ # executable wrapper
+ makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
+ --add-flags "$out/share/element/electron"
+ '';
+
+ # Do not attempt generating a tarball for element-web again.
+ # note: `doDist = false;` does not work.
+ distPhase = ''
+ true
+ '';
+
+ # The desktop item properties should be kept in sync with data from upstream:
+ # https://github.com/vector-im/riot-desktop/blob/develop/package.json
+ desktopItem = makeDesktopItem {
+ name = "element-desktop";
+ exec = executableName;
+ icon = "element";
+ desktopName = "Element (Riot)";
+ genericName = "Matrix Client";
+ comment = meta.description;
+ categories = "Network;InstantMessaging;Chat;";
+ extraEntries = ''
+ StartupWMClass=element
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ description = "A feature-rich client for Matrix.org";
+ homepage = "https://element.io/";
+ license = licenses.asl20;
+ maintainers = teams.matrix.members;
+ inherit (electron.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
new file mode 100644
index 000000000000..46ac18af9ee5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchurl, writeText, jq, conf ? {} }:
+
+# Note for maintainers:
+# Versions of `element-web` and `element-desktop` should be kept in sync.
+
+let
+ noPhoningHome = {
+ disable_guests = true; # disable automatic guest account registration at matrix.org
+ piwik = false; # disable analytics
+ };
+ configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
+
+in stdenv.mkDerivation rec {
+ pname = "element-web";
+ version = "1.7.14";
+
+ src = fetchurl {
+ url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
+ sha256 = "1wyk1si0dmlcskf25zmbijpz6505yzjxa7pvd3g2k9kxc49vi20j";
+ };
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/
+ cp -R . $out/
+ ${jq}/bin/jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json"
+
+ runHook postInstall
+ '';
+
+ meta = {
+ description = "A glossy Matrix collaboration client for the web";
+ homepage = "https://element.io/";
+ maintainers = stdenv.lib.teams.matrix.members;
+ license = stdenv.lib.licenses.asl20;
+ platforms = stdenv.lib.platforms.all;
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh
new file mode 100755
index 000000000000..ecca3018e76f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix
+
+set -euo pipefail
+
+if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
+ echo "Regenerates the Yarn dependency lock files for the element-desktop package."
+ echo "Usage: $0 <git release tag>"
+ exit 1
+fi
+
+RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/riot-desktop/$1"
+
+wget "$RIOT_WEB_SRC/package.json" -O element-desktop-package.json
+wget "$RIOT_WEB_SRC/yarn.lock" -O element-desktop-yarndeps.lock
+yarn2nix --lockfile=element-desktop-yarndeps.lock > element-desktop-yarndeps.nix
+rm element-desktop-yarndeps.lock
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
new file mode 100644
index 000000000000..190050d8327b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, mkFranzDerivation, fetchurl }:
+
+mkFranzDerivation rec {
+ pname = "ferdi";
+ name = "Ferdi";
+ version = "5.5.0";
+ src = fetchurl {
+ url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
+ sha256 = "0i24vcnq4iz5amqmn2fgk92ff9x9y7fg8jhc3g6ksvmcfly7af3k";
+ };
+ meta = with stdenv.lib; {
+ description = "Combine your favorite messaging services into one application";
+ homepage = "https://getferdi.com/";
+ license = licenses.free;
+ maintainers = [ maintainers.davidtwco ];
+ platforms = [ "x86_64-linux" ];
+ hydraPlatforms = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
new file mode 100644
index 000000000000..bc6dbc5ce193
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
@@ -0,0 +1,98 @@
+{ stdenv
+, fetchFromGitLab
+, nix-update-script
+, fetchpatch
+, meson
+, ninja
+, gettext
+, cargo
+, rustc
+, python3
+, rustPlatform
+, pkg-config
+, gtksourceview4
+, glib
+, libhandy_0
+, gtk3
+, dbus
+, openssl
+, sqlite
+, gst_all_1
+, cairo
+, gdk-pixbuf
+, gspell
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "fractal";
+ version = "4.4.0";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "GNOME";
+ repo = "fractal";
+ rev = version;
+ sha256 = "DSNVd9YvI7Dd3s3+M0+wE594tmL1yPNMnD1W9wLhSuw=";
+ };
+
+ cargoSha256 = "xim5sOzeXJjRXbTOg2Gk/LHU0LioiyMK5nSr1LwMPjc=";
+
+ nativeBuildInputs = [
+ cargo
+ gettext
+ meson
+ ninja
+ pkg-config
+ python3
+ rustc
+ wrapGAppsHook
+ glib
+ ];
+
+ buildInputs = [
+ cairo
+ dbus
+ gdk-pixbuf
+ glib
+ gspell
+ gst_all_1.gst-editing-services
+ gst_all_1.gst-plugins-bad
+ gst_all_1.gst-plugins-base
+ (gst_all_1.gst-plugins-good.override {
+ gtkSupport = true;
+ })
+ gst_all_1.gstreamer
+ gst_all_1.gst-devtools
+ gtk3
+ gtksourceview4
+ libhandy_0
+ openssl
+ sqlite
+ ];
+
+ postPatch = ''
+ chmod +x scripts/test.sh
+ patchShebangs scripts/meson_post_install.py scripts/test.sh
+ '';
+
+ # Don't use buildRustPackage phases, only use it for rust deps setup
+ configurePhase = null;
+ buildPhase = null;
+ checkPhase = null;
+ installPhase = null;
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Matrix group messaging app";
+ homepage = "https://gitlab.gnome.org/GNOME/fractal";
+ license = licenses.gpl3;
+ broken = stdenv.isDarwin;
+ maintainers = with maintainers; [ dtzWill worldofpeace ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
new file mode 100644
index 000000000000..646a790fed25
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, mkFranzDerivation, fetchurl }:
+
+mkFranzDerivation rec {
+ pname = "franz";
+ name = "Franz";
+ version = "5.6.1";
+ src = fetchurl {
+ url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
+ sha256 = "1gn0n1hr6z2gsdnpxysyq6sm8y7cjr9jafhsam8ffw0bq74kph7p";
+ };
+ meta = with stdenv.lib; {
+ description = "A free messaging app that combines chat & messaging services into one application";
+ homepage = "https://meetfranz.com";
+ license = licenses.free;
+ maintainers = [ maintainers.davidtwco ];
+ platforms = [ "x86_64-linux" ];
+ hydraPlatforms = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix
new file mode 100644
index 000000000000..96865374bed1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix
@@ -0,0 +1,91 @@
+{ stdenv
+, lib
+, makeWrapper
+, wrapGAppsHook
+, autoPatchelfHook
+, dpkg
+, xorg
+, atk
+, glib
+, pango
+, gdk-pixbuf
+, cairo
+, freetype
+, fontconfig
+, gtk3
+, gnome2
+, dbus
+, nss
+, nspr
+, alsaLib
+, cups
+, expat
+, udev
+, libnotify
+, xdg_utils
+}:
+
+# Helper function for building a derivation for Franz and forks.
+
+{ pname, name, version, src, meta }:
+stdenv.mkDerivation rec {
+ inherit pname version src meta;
+
+ # Don't remove runtime deps.
+ dontPatchELF = true;
+
+ nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ];
+ buildInputs = (with xorg; [
+ libXi
+ libXcursor
+ libXdamage
+ libXrandr
+ libXcomposite
+ libXext
+ libXfixes
+ libXrender
+ libX11
+ libXtst
+ libXScrnSaver
+ ]) ++ [
+ gtk3
+ atk
+ glib
+ pango
+ gdk-pixbuf
+ cairo
+ freetype
+ fontconfig
+ dbus
+ gnome2.GConf
+ nss
+ nspr
+ alsaLib
+ cups
+ expat
+ stdenv.cc.cc
+ ];
+ runtimeDependencies = [ stdenv.cc.cc.lib (lib.getLib udev) libnotify ];
+
+ unpackPhase = "dpkg-deb -x $src .";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -r opt $out
+ ln -s $out/opt/${name}/${pname} $out/bin
+
+ # Provide desktop item and icon.
+ cp -r usr/share $out
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace /opt/${name}/${pname} ${pname}
+ '';
+
+ dontWrapGApps = true;
+
+ postFixup = ''
+ wrapProgram $out/opt/${name}/${pname} \
+ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDependencies}" \
+ --prefix PATH : ${xdg_utils}/bin \
+ "''${gappsWrapperArgs[@]}"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
new file mode 100644
index 000000000000..e24ac2e18317
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub
+, guile, pkgconfig, glib, loudmouth, gmp, libidn, readline, libtool
+, libunwind, ncurses, curl, jansson, texinfo
+, automake, autoconf }:
+stdenv.mkDerivation rec {
+ pname = "freetalk";
+ version = "4.1";
+
+ src = fetchFromGitHub {
+ owner = "GNUFreetalk";
+ repo = "freetalk";
+ rev = "v${version}";
+ sha256 = "09jwk2i8qd8c7wrn9xbqcwm32720dwxis22kf3jpbg8mn6w6i757";
+ };
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ nativeBuildInputs = [ pkgconfig texinfo autoconf automake ];
+ buildInputs = [
+ guile glib loudmouth gmp libidn readline libtool
+ libunwind ncurses curl jansson
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Console XMPP client";
+ license = licenses.gpl3Plus ;
+ maintainers = with maintainers; [ raskin ];
+ platforms = platforms.linux;
+ downloadPage = "https://www.gnu.org/software/freetalk/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
new file mode 100644
index 000000000000..eef24f75f155
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -0,0 +1,75 @@
+{ lib, fetchurl, gettext, wrapGAppsHook
+
+# Native dependencies
+, python3, gtk3, gobject-introspection, gnome3
+, glib-networking
+
+# Test dependencies
+, xvfb_run, dbus
+
+# Optional dependencies
+, enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-good, libnice
+, enableE2E ? true
+, enableSecrets ? true, libsecret
+, enableRST ? true, docutils
+, enableSpelling ? true, gspell
+, enableUPnP ? true, gupnp-igd
+, enableOmemoPluginDependencies ? true
+, extraPythonPackages ? ps: []
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "gajim";
+ version = "1.2.2";
+
+ src = fetchurl {
+ url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
+ sha256 = "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx";
+ };
+
+ buildInputs = [
+ gobject-introspection gtk3 gnome3.adwaita-icon-theme
+ glib-networking
+ ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-good libnice ]
+ ++ lib.optional enableSecrets libsecret
+ ++ lib.optional enableSpelling gspell
+ ++ lib.optional enableUPnP gupnp-igd;
+
+ nativeBuildInputs = [
+ gettext wrapGAppsHook
+ ];
+
+ dontWrapGApps = true;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ propagatedBuildInputs = with python3.pkgs; [
+ nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools
+ ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ]
+ ++ lib.optional enableRST docutils
+ ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ]
+ ++ extraPythonPackages python3.pkgs;
+
+ checkInputs = [ xvfb_run dbus.daemon ];
+
+ checkPhase = ''
+ xvfb-run dbus-run-session \
+ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+ ${python3.interpreter} setup.py test
+ '';
+
+ # necessary for wrapGAppsHook
+ strictDeps = false;
+
+ meta = {
+ homepage = "http://gajim.org/";
+ description = "Jabber client written in PyGTK";
+ license = lib.licenses.gpl3Plus;
+ maintainers = with lib.maintainers; [ raskin abbradar ];
+ downloadPage = "http://gajim.org/downloads.php";
+ updateWalker = true;
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
new file mode 100644
index 000000000000..69a198480668
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
@@ -0,0 +1,102 @@
+{ stdenv, alsaLib, atk, at-spi2-core, cairo, cups, dbus, dpkg, expat, fetchurl
+, fontconfig, freetype, gdk-pixbuf, glib, gnome2, gtk3, libdrm, libX11
+, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes
+, libXi, libXrandr, libXrender, libXtst, libappindicator-gtk3, libcxx
+, libnotify, libpulseaudio, libxcb, makeDesktopItem, makeWrapper, mesa, nspr, nss
+, pango, systemd }:
+
+let gitterDirectorySuffix = "opt/gitter";
+ libPath = stdenv.lib.makeLibraryPath [
+ alsaLib
+ atk
+ at-spi2-core
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gnome2.GConf
+ gtk3
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXtst
+ libappindicator-gtk3
+ libcxx
+ libdrm
+ libnotify
+ libpulseaudio
+ libxcb
+ mesa
+ nspr
+ nss
+ pango
+ stdenv.cc.cc
+ systemd
+ ];
+ doELFPatch = target: ''
+ patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
+ --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \
+ $out/${gitterDirectorySuffix}/${target}
+ '';
+in stdenv.mkDerivation rec {
+ pname = "gitter";
+ version = "5.0.1";
+
+ src = fetchurl {
+ url = "https://update.gitter.im/linux64/${pname}_${version}_amd64.deb";
+ sha256 = "1ps9akylqrril4902r8mi0mprm0hb5wra51ry6c1rb5xz5nrzgh1";
+ };
+
+ nativeBuildInputs = [ makeWrapper dpkg ];
+
+ unpackPhase = "dpkg -x $src .";
+
+ installPhase = ''
+ mkdir -p $out/{bin,opt/gitter,share/pixmaps}
+ mv ./opt/Gitter/linux64/* $out/opt/gitter
+
+ ${doELFPatch "Gitter"}
+ ${doELFPatch "nacl_helper"}
+ ${doELFPatch "minidump_stackwalk"}
+ ${doELFPatch "nwjc"}
+ ${doELFPatch "chromedriver"}
+ ${doELFPatch "payload"}
+
+ patchelf --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \
+ $out/${gitterDirectorySuffix}/lib/libnw.so
+
+ wrapProgram $out/${gitterDirectorySuffix}/Gitter --prefix LD_LIBRARY_PATH : ${libPath}
+
+ ln -s $out/${gitterDirectorySuffix}/Gitter $out/bin/
+ ln -s $out/${gitterDirectorySuffix}/logo.png $out/share/pixmaps/gitter.png
+ ln -s "${desktopItem}/share/applications" $out/share/
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = "Gitter";
+ icon = pname;
+ desktopName = "Gitter";
+ genericName = meta.description;
+ categories = "Network;InstantMessaging;";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Where developers come to talk";
+ downloadPage = "https://gitter.im/apps";
+ license = licenses.mit;
+ maintainers = [ maintainers.imalison ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix
new file mode 100644
index 000000000000..04418dc64fcf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule {
+ pname = "go-neb";
+ version = "unstable-2020-04-09";
+ src = fetchFromGitHub {
+ owner = "matrix-org";
+ repo = "go-neb";
+ rev = "1e297c50ad2938e511a3c86f4b190fd3fc3559d6";
+ sha256 = "1azwy4s4kmypps1fjbz76flpi1b7sjzjj4qwx94cry0hn3qfnrc6";
+ };
+
+ subPackages = [ "." ];
+
+ patches = [ ./go-mod.patch ];
+
+ vendorSha256 = "1k3980yf6zl00dkd1djwhm2f9nnffzrsbs3kq3alpw2gm0aln739";
+
+ doCheck = false;
+
+ passthru.tests.go-neb = nixosTests.go-neb;
+
+ meta = with lib; {
+ description = "Extensible matrix bot written in Go";
+ homepage = "https://github.com/matrix-org/go-neb";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ hexa maralorn ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/go-mod.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/go-mod.patch
new file mode 100644
index 000000000000..1c725652d431
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/go-mod.patch
@@ -0,0 +1,50 @@
+diff --git a/go.mod b/go.mod
+index 8ed4e68..83526e7 100644
+--- a/go.mod
++++ b/go.mod
+@@ -4,24 +4,15 @@ go 1.14
+
+ require (
+ github.com/PuerkitoBio/goquery v1.5.1 // indirect
+- github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
+- github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 // indirect
+ github.com/andygrunwald/go-jira v1.11.0
+ github.com/beorn7/perks v1.0.1 // indirect
+- github.com/cespare/xxhash/v2 v2.1.1 // indirect
+ github.com/dghubble/oauth1 v0.6.0
+ github.com/die-net/lrucache v0.0.0-20190707192454-883874fe3947
+- github.com/go-kit/kit v0.9.0 // indirect
+- github.com/go-logfmt/logfmt v0.4.0 // indirect
+- github.com/go-stack/stack v1.8.0 // indirect
+- github.com/gogo/protobuf v1.1.1 // indirect
+ github.com/golang/protobuf v1.3.2 // indirect
+ github.com/google/go-cmp v0.4.0 // indirect
+ github.com/google/go-github v2.0.1-0.20160719063544-b5e5babef39c+incompatible
+ github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79
+ github.com/jaytaylor/html2text v0.0.0-20200220170450-61d9dc4d7195
+- github.com/json-iterator/go v1.1.9 // indirect
+- github.com/julienschmidt/httprouter v1.2.0 // indirect
+ github.com/kr/pretty v0.1.0 // indirect
+ github.com/lib/pq v1.3.0
+ github.com/matrix-org/dugong v0.0.0-20180820122854-51a565b5666b
+@@ -32,9 +23,6 @@ require (
+ github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
+ github.com/mmcdole/gofeed v1.0.0-beta2
+ github.com/mmcdole/goxpp v0.0.0-20181012175147-0068e33feabf // indirect
+- github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+- github.com/modern-go/reflect2 v1.0.1 // indirect
+- github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223 // indirect
+ github.com/olekukonko/tablewriter v0.0.4 // indirect
+ github.com/pkg/errors v0.8.1 // indirect
+ github.com/prometheus/client_golang v0.8.1-0.20160916180340-5636dc67ae77
+@@ -47,10 +35,7 @@ require (
+ github.com/stretchr/testify v1.4.0 // indirect
+ golang.org/x/net v0.0.0-20200301022130-244492dfa37a
+ golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
+- golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
+ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 // indirect
+- golang.org/x/tools v0.0.0-20200311090712-aafaee8bce8c // indirect
+- gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect
+ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
+ gopkg.in/yaml.v2 v2.2.8
+ )
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
new file mode 100644
index 000000000000..00134e2597be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, buildGoModule, fetchFromGitHub, olm, makeDesktopItem }:
+
+buildGoModule rec {
+ pname = "gomuks";
+ version = "0.2.1";
+
+ src = fetchFromGitHub {
+ owner = "tulir";
+ repo = pname;
+ rev = "v" + version;
+ sha256 = "0xa4ch4p48w6sd0f4s1sp0hl1w4fvzhff7w2ar19ki0ydy5g368n";
+ };
+
+ vendorSha256 = "1rhvwk8bdbbffhx2d03a8p9jc5c8v3pi7kw1dmyyngz6p7wq1g0x";
+
+ doCheck = false;
+
+ buildInputs = [ olm ];
+
+ postInstall = ''
+ cp -r ${
+ makeDesktopItem {
+ name = "net.maunium.gomuks.desktop";
+ exec = "@out@/bin/gomuks";
+ terminal = "true";
+ desktopName = "Gomuks";
+ genericName = "Matrix client";
+ categories = "Network;Chat";
+ comment = meta.description;
+ }
+ }/* $out/
+ substituteAllInPlace $out/share/applications/*
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://maunium.net/go/gomuks/";
+ description = "A terminal based Matrix client written in Go";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ tilpner emily ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix
new file mode 100644
index 000000000000..0661e6d7525e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, ncurses, openssl, tcl, tk}:
+
+stdenv.mkDerivation {
+ name = "gtmess-0.97";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gtmess/gtmess-0.97.tar.gz";
+ sha256 = "1ipmqsrj0r1ssbgs2fpr4x5vnzlxlqhx9jrnadp1jw7s0sxpjqv0";
+ };
+
+ buildInputs = [ ncurses openssl tcl tk];
+
+ meta = {
+ description = "Console MSN Messenger client for Linux and other unix systems";
+ homepage = "http://gtmess.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
new file mode 100644
index 000000000000..7213332a549a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchurl, xorg, freetype, fontconfig, openssl, glib, nss, nspr, expat
+, alsaLib, dbus, zlib, libxml2, libxslt, makeWrapper, xkeyboard_config, systemd
+, libGL, xcbutilkeysyms, xdg_utils, libtool }:
+
+let
+ version = "4.30.5.1682";
+
+ rpath = stdenv.lib.makeLibraryPath [
+ xdg_utils
+ xorg.libXext
+ xorg.libSM
+ xorg.libICE
+ xorg.libX11
+ xorg.libXrandr
+ xorg.libXdamage
+ xorg.libXrender
+ xorg.libXfixes
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libxcb
+ xorg.libXi
+ xorg.libXScrnSaver
+ xorg.libXtst
+ freetype
+ fontconfig
+ openssl
+ glib
+ nss
+ nspr
+ dbus
+ alsaLib
+ zlib
+ libtool
+ libxml2
+ libxslt
+ expat
+ xcbutilkeysyms
+ systemd
+ libGL
+ ] + ":${stdenv.cc.cc.lib}/lib64";
+in stdenv.mkDerivation {
+ pname = "hipchat";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://atlassian.artifactoryonline.com/atlassian/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb";
+ sha256 = "03pz8wskafn848yvciq29kwdvqcgjrk6sjnm8nk9acl89xf0sn96";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ ar x $src
+ tar xfvz data.tar.gz
+
+ mkdir -p $out/libexec/hipchat
+ d=$out/libexec/hipchat/lib
+ mv opt/HipChat4/* $out/libexec/hipchat/
+ mv usr/share $out
+
+ for file in $(find $d -type f); do
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $file || true
+ patchelf --set-rpath ${rpath}:$out/libexec/hipchat/lib:\$ORIGIN $file || true
+ done
+
+ patchShebangs $d/linuxbrowserlaunch.sh
+
+ substituteInPlace $out/share/applications/hipchat4.desktop \
+ --replace /opt/HipChat4/bin/HipChat4 $out/bin/hipchat
+
+ makeWrapper $d/HipChat.bin $out/bin/hipchat \
+ --run 'export HIPCHAT_LD_LIBRARY_PATH=$LD_LIBRARY_PATH' \
+ --run 'export HIPCHAT_QT_PLUGIN_PATH=$QT_PLUGIN_PATH' \
+ --set QT_XKB_CONFIG_ROOT ${xkeyboard_config}/share/X11/xkb \
+ --set QTWEBENGINEPROCESS_PATH $d/QtWebEngineProcess
+
+ makeWrapper $d/QtWebEngineProcess.bin $d/QtWebEngineProcess \
+ --set QT_PLUGIN_PATH "$d/plugins"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Desktop client for HipChat services";
+ homepage = "http://www.hipchat.com";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ puffnfresh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
new file mode 100644
index 000000000000..4c067e384f95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
@@ -0,0 +1,53 @@
+{ lib, fetchFromGitHub, ocamlPackages }:
+
+with ocamlPackages;
+
+buildDunePackage rec {
+ pname = "jackline";
+ version = "unstable-2020-09-03";
+
+ minimumOCamlVersion = "4.08";
+
+ useDune2 = true;
+
+ src = fetchFromGitHub {
+ owner = "hannesm";
+ repo = "jackline";
+ rev = "dd5f19636c9b99b72c348f0f639452d87b7c017c";
+ sha256 = "076smdgig4nwvqsqxa6gsl0c3daq5agwgzp4n2y8xxm3qiq91y89";
+ };
+
+ nativeBuildInpts = [
+ ppx_sexp_conv
+ ppx_deriving
+ ];
+
+ buildInputs = [
+ erm_xmpp
+ tls
+ mirage-crypto-pk
+ x509
+ domain-name
+ ocaml_lwt
+ otr
+ astring
+ ptime
+ notty
+ sexplib
+ hex
+ uutf
+ uchar
+ uuseg
+ uucp
+ dns-client
+ cstruct
+ base64
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/hannesm/jackline";
+ description = "minimalistic secure XMPP client in OCaml";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ sternenseemann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
new file mode 100644
index 000000000000..4797bf5ffccb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -0,0 +1,60 @@
+{ stdenv
+, fetchurl
+, appimageTools
+, makeWrapper
+, electron_9
+}:
+
+let
+ electron = electron_9;
+in
+stdenv.mkDerivation rec {
+ pname = "jitsi-meet-electron";
+ version = "2.3.1";
+
+ src = fetchurl {
+ url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
+ sha256 = "0af87lvqw3sagi2cayripm62q17nfd841xz0ghvbixzfnqkvgf7x";
+ name = "${pname}-${version}.AppImage";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ name = "${pname}-${version}";
+ inherit src;
+ };
+
+ dontUnpack = true;
+ dontConfigure = true;
+ dontBuild = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/share/${pname} $out/share/applications
+
+ cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+ cp -a ${appimageContents}/jitsi-meet.desktop $out/share/applications/${pname}.desktop
+ cp -a ${appimageContents}/usr/share/icons $out/share
+
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+ --add-flags $out/share/${pname}/resources/app.asar \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Jitsi Meet desktop application powered by Electron";
+ homepage = "https://github.com/jitsi/jitsi-meet-electron";
+ license = licenses.asl20;
+ maintainers = teams.jitsi.members;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
new file mode 100644
index 000000000000..938be9a9778d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, unzip, ant, jdk8
+# Optional, Jitsi still runs without, but you may pass null:
+, alsaLib, dbus, gtk2, libpulseaudio, openssl, xorg
+}:
+
+let jdk = jdk8; in
+stdenv.mkDerivation rec {
+ pname = "jitsi";
+ version = "2.10.5550";
+
+ src = fetchurl {
+ url = "https://download.jitsi.org/jitsi/src/jitsi-src-${version}.zip";
+ sha256 = "11vjchc3dnzj55x7c62wsm6masvwmij1ifkds917r1qvil1nzz6d";
+ };
+
+ patches = [ ./jitsi.patch ];
+
+ jitsiItem = makeDesktopItem {
+ name = "Jitsi";
+ exec = "jitsi";
+ comment = "VoIP and Instant Messaging client";
+ desktopName = "Jitsi";
+ genericName = "Instant Messaging";
+ categories = "Chat";
+ };
+
+ libPath = lib.makeLibraryPath ([
+ stdenv.cc.cc # For libstdc++.
+ alsaLib
+ dbus
+ gtk2
+ libpulseaudio
+ openssl
+ xorg.libX11
+ xorg.libXext
+ xorg.libXScrnSaver
+ xorg.libXv
+ ]);
+
+ nativeBuildInputs = [ unzip ];
+ buildInputs = [ ant jdk ];
+
+ buildPhase = ''ant make'';
+
+ installPhase = ''
+ mkdir -p $out
+ cp -a lib $out/
+ rm -rf $out/lib/native/solaris
+ cp -a sc-bundles $out/
+ mkdir $out/bin
+ cp resources/install/generic/run.sh $out/bin/jitsi
+ chmod +x $out/bin/jitsi
+ substituteInPlace $out/bin/jitsi \
+ --subst-var-by JAVA ${jdk}/bin/java \
+ --subst-var-by EXTRALIBS ${gtk2.out}/lib
+ sed -e 's,^java\ ,${jdk}/bin/java ,' -i $out/bin/jitsi
+ patchShebangs $out
+ libPath="$libPath:${jdk.home}/lib/${jdk.architecture}"
+ find $out/ -type f -name '*.so' | while read file; do
+ patchelf --set-rpath "$libPath" "$file" && \
+ patchelf --shrink-rpath "$file"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://jitsi.org/";
+ description = "Open Source Video Calls and Chat";
+ license = licenses.lgpl21Plus;
+ platforms = platforms.linux;
+ maintainers = teams.jitsi.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
new file mode 100644
index 000000000000..07b16b919962
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
@@ -0,0 +1,27 @@
+--- /home/dario/Downloads/jitsi/resources/install/generic/run.sh 2013-11-01 15:37:21.000000000 +0000
++++ jitsi/resources/install/generic/run.sh 2014-03-04 11:52:30.796397567 +0000
+@@ -1,4 +1,9 @@
+-mkdir -p $HOME/.sip-communicator/log
++#! /bin/bash
++# A modified version of the generic run.sh
++
++#mkdir -p $HOME/.sip-communicator/log
++
++cd "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")"
+
+ # Get architecture
+ ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/`
+@@ -6,10 +11,12 @@
+ # Additionnal JVM arguments
+ CLIENTARGS=""
+
++NATIVELIBS="lib/native/linux-64"
+ if [ $ARCH = 32 ]
+ then
+ CLIENTARGS="-client -Xmx256m"
++ NATIVELIBS="lib/native/linux"
+ fi
+
+ export PATH=$PATH:native
+-java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
++LD_LIBRARY_PATH=@EXTRALIBS@ exec @JAVA@ $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
new file mode 100644
index 000000000000..e27835851445
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -0,0 +1,238 @@
+{ bcg729
+, bctoolbox
+, bcunit
+, belcard
+, belle-sip
+, belr
+, bzrtp
+, cairo
+, cmake
+, cyrus_sasl
+, fetchFromGitLab
+, fetchurl
+, ffmpeg_3
+, gdk-pixbuf
+, glib
+, gnused
+, graphviz
+, gtk2
+, intltool
+, lib
+, libexosip
+, liblinphone
+, libmatroska
+, libnotify
+, libosip
+, libsoup
+, libupnp
+, libX11
+, libxml2
+, makeWrapper
+, mbedtls
+, mediastreamer
+, mediastreamer-openh264
+, mkDerivation
+, openldap
+, ortp
+, pango
+, pkgconfig
+, python
+, qtbase
+, qtgraphicaleffects
+, qtquickcontrols2
+, qttranslations
+, readline
+, speex
+, sqlite
+, stdenv
+, udev
+, zlib
+ # For Minizip 2.2.7:
+, fetchFromGitHub
+, libbsd
+}:
+let
+ # Linphone Desktop requires Minizip 2.2.7. Nixpkgs contains a very old version
+ # from the time when it was part of zlib. The most recent release of Minizip
+ # is currently 2.9.2 but Linphone Desktop didn't work with that. So, even if
+ # we added most recent Minizip version to nixpkgs, probably Minizip 2.2.7 is
+ # only needed here and we shouldn't add this semi-old version to
+ # all-packages.nix. Therefore, just define it here locally.
+ minizip2 = stdenv.mkDerivation rec {
+ pname = "minizip";
+ version = "2.2.7";
+
+ disabled = stdenv.isAarch32;
+
+ src = fetchFromGitHub {
+ owner = "nmoinvaz";
+ repo = pname;
+ rev = version;
+ sha256 = "1a88v1gjlflsd17mlrgxh420rpa38q0d17yh9q8j1zzqfrd1azch";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ cmakeFlags = [
+ "-DBUILD_SHARED_LIBS=YES"
+ ];
+
+ buildInputs = [
+ zlib
+ libbsd # required in 2.2.7 but not in 2.9.2?
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Compression library implementing the deflate compression method found in gzip and PKZIP";
+ homepage = "https://github.com/nmoinvaz/minizip";
+ license = licenses.zlib;
+ platforms = platforms.unix;
+ };
+ };
+in
+mkDerivation rec {
+ pname = "linphone-desktop";
+ # Latest release is 4.1.1 old and doesn't build with the latest releases of
+ # some of the dependencies so let's use the latest commit.
+ version = "unstable-2020-03-06";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.linphone.org";
+ owner = "public";
+ group = "BC";
+ repo = pname;
+ rev = "971997e162558d37051f89c9c34bbc240135f704";
+ sha256 = "02ji4r8bpcm2kyisn9d3054m026l33g2574i1ag1cmb2dz2p8i1c";
+ };
+
+ # Without this patch, the build fails with:
+ #
+ # No rule to make target
+ # 'minizip_OUTPUT/nix/store/...linphone-desktop.../lib/libminizip.so',
+ #
+ # So, the makefile tries to use a full absolute path to the library but does
+ # it incorrectly. As we have installed Minizip properly, it's sufficient to
+ # just use "minizip" and the library is found automatically. If this patched
+ # target_link_libraries line was removed entirely, the build would fail at the
+ # very end when linking minizip.
+ patches = [
+ ./fix_minizip_linking.patch
+ ];
+
+ # See: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21
+ postPatch = ''
+ substituteInPlace src/app/AppController.cpp \
+ --replace "LINPHONE_QT_GIT_VERSION" "\"${version}\""
+ '';
+
+ # TODO: After linphone-desktop and liblinphone split into separate packages,
+ # there might be some build inputs here that aren't needed for
+ # linphone-desktop.
+ buildInputs = [
+ bcg729
+ bctoolbox
+ belcard
+ belle-sip
+ belr
+ bzrtp
+ cairo
+ cyrus_sasl
+ ffmpeg_3
+ gdk-pixbuf
+ glib
+ gtk2
+ libX11
+ libexosip
+ liblinphone
+ libmatroska
+ libnotify
+ libosip
+ libsoup
+ libupnp
+ libxml2
+ mbedtls
+ mediastreamer
+ mediastreamer-openh264
+ minizip2
+ openldap
+ ortp
+ pango
+ qtbase
+ qtgraphicaleffects
+ qtquickcontrols2
+ qttranslations
+ readline
+ speex
+ sqlite
+ udev
+ zlib
+ ];
+
+ nativeBuildInputs = [
+ bcunit
+ cmake
+ gnused
+ graphviz
+ intltool
+ makeWrapper
+ pkgconfig
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
+ "-DMINIZIP_INCLUDE_DIRS=${minizip2}/include"
+ "-DMINIZIP_LIBRARIES=minizip"
+ ];
+
+ # The default install phase fails because the paths are somehow messed up in
+ # the makefiles. The errors were like:
+ #
+ # CMake Error at cmake_builder/linphone_package/cmake_install.cmake:49 (file):
+ # file INSTALL cannot find
+ # "/build/linphone-desktop-.../build/linphone-sdk/desktop//nix/store/.../bin":
+ # No such file or directory.
+ #
+ # If someone is able to figure out how to fix that, great. For now, just
+ # trying to pick all the relevant files to the output.
+ #
+ # Also, the exec path in linphone.desktop file remains invalid, pointing to
+ # the build directory, after the whole nix build process. So, let's use sed to
+ # manually fix that path.
+ #
+ # In order to find mediastreamer plugins, mediastreamer package was patched to
+ # support an environment variable pointing to the plugin directory. Set that
+ # environment variable by wrapping the Linphone executable.
+ #
+ # Also, some grammar files needed to be copied too from some dependencies. I
+ # suppose if one define a dependency in such a way that its share directory is
+ # found, then this copying would be unnecessary. These missing grammar files
+ # were discovered when linphone crashed at startup and it was run with
+ # --verbose flag. Instead of actually copying these files, create symlinks.
+ #
+ # It is quite likely that there are some other files still missing and
+ # Linphone will randomly crash when it tries to access those files. Then,
+ # those just need to be copied manually below.
+ installPhase = ''
+ mkdir -p $out/bin
+ cp linphone $out/bin/
+ wrapProgram $out/bin/linphone \
+ --set MEDIASTREAMER_PLUGINS_DIR \
+ ${mediastreamer-openh264}/lib/mediastreamer/plugins
+ mkdir -p $out/share/applications
+ sed -i "s@/build/.*/OUTPUT/bin@$out/bin@" linphone.desktop
+ cp linphone.desktop $out/share/applications/
+ cp -r ../assets/icons $out/share/
+ mkdir -p $out/share/belr/grammars
+ ln -s ${liblinphone}/share/belr/grammars/* $out/share/belr/grammars/
+ mkdir -p $out/share/linphone
+ ln -s ${liblinphone}/share/linphone/* $out/share/linphone/
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.linphone.org/";
+ description = "Open source SIP phone for voice/video calls and instant messaging";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jluttine ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch
new file mode 100644
index 000000000000..bb88d0030fae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3ee77441..18ea5c27 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -517,7 +517,7 @@ else()
+ target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib")
+ execute_process(COMMAND install_name_tool -id "@executable_path/../Frameworks/libminizip.dylib" "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib")
+ elseif(NOT WIN32)
+- target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.so")
++ target_link_libraries(${TARGET_NAME} "minizip")
+ endif()
+ endif()#If (LinphoneCxx_FOUND AND Minizip_FOUND)
+ endif()#If (LinphoneCxx_FOUND)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix
new file mode 100644
index 000000000000..caf6669e120b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix
@@ -0,0 +1,25 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "matrix-dl";
+ version = "unstable-2020-07-14";
+
+ src = fetchFromGitHub {
+ owner = "rubo77";
+ repo = pname;
+ rev = "b1a86d1421f39ee327284e1023f09dc165e3c8a5";
+ sha256 = "1l8nh8z7kz24v0wcy3ll3w6in2yxwa1yz8lyc3x0blz37d8ss4ql";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ matrix-client
+ ];
+
+ meta = with lib; {
+ description = "Download backlogs from Matrix as raw text";
+ homepage = src.meta.homepage;
+ license = licenses.gpl1Plus;
+ maintainers = with maintainers; [ aw ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix
new file mode 100644
index 000000000000..92ddfe342982
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix
@@ -0,0 +1,21 @@
+# This file has been generated by node2nix 1.7.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+ inherit system;
+ }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+ nodeEnv = import ./node-env.nix {
+ inherit (pkgs) stdenv python2 util-linux runCommand writeTextFile;
+ inherit nodejs;
+ libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+ };
+locpkgs =
+import ./node-packages.nix {
+ inherit (pkgs) fetchurl fetchgit;
+ inherit nodeEnv;
+ globalBuildInputs = [
+ locpkgs.node-pre-gyp
+ ];
+};
+in locpkgs
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix
new file mode 100644
index 000000000000..633219626b68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, pkgs }:
+(import ./composition.nix {
+ inherit pkgs;
+ inherit (stdenv.hostPlatform) system;
+})."package".override {
+ postInstall = ''
+ mkdir "$out/bin"
+ echo '#!/bin/sh' >> "$out/bin/matrix-recorder"
+ echo "'${pkgs.nodejs-12_x}/bin/node'" \
+ "'$out/lib/node_modules/matrix-recorder/matrix-recorder.js'" \
+ '"$@"' >> "$out/bin/matrix-recorder"
+ echo '#!/bin/sh' >> "$out/bin/matrix-recorder-to-html"
+ echo 'cd "$1"' >> "$out/bin/matrix-recorder-to-html"
+ echo "test -d templates/ || ln -sfT '$out/lib/node_modules/matrix-recorder/templates' templates" >> "$out/bin/matrix-recorder-to-html"
+ echo "'${pkgs.nodejs-12_x}/bin/node'" \
+ "'$out/lib/node_modules/matrix-recorder/recorder-to-html.js'" \
+ '.' >> "$out/bin/matrix-recorder-to-html"
+ chmod a+x "$out/bin/matrix-recorder"
+ chmod a+x "$out/bin/matrix-recorder-to-html"
+ '';
+ meta = {
+ description = "Matrix message recorder";
+ homepage = "https://gitlab.com/argit/matrix-recorder/";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.raskin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix
new file mode 100644
index 000000000000..ff5ca0d99b19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix
@@ -0,0 +1,540 @@
+# This file originates from node2nix
+
+{stdenv, nodejs, python2, util-linux, libtool, runCommand, writeTextFile}:
+
+let
+ python = if nodejs ? python then nodejs.python else python2;
+
+ # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+ tarWrapper = runCommand "tarWrapper" {} ''
+ mkdir -p $out/bin
+
+ cat > $out/bin/tar <<EOF
+ #! ${stdenv.shell} -e
+ $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
+ EOF
+
+ chmod +x $out/bin/tar
+ '';
+
+ # Function that generates a TGZ file from a NPM project
+ buildNodeSourceDist =
+ { name, version, src, ... }:
+
+ stdenv.mkDerivation {
+ name = "node-tarball-${name}-${version}";
+ inherit src;
+ buildInputs = [ nodejs ];
+ buildPhase = ''
+ export HOME=$TMPDIR
+ tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
+ '';
+ installPhase = ''
+ mkdir -p $out/tarballs
+ mv $tgzFile $out/tarballs
+ mkdir -p $out/nix-support
+ echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
+ '';
+ };
+
+ includeDependencies = {dependencies}:
+ stdenv.lib.optionalString (dependencies != [])
+ (stdenv.lib.concatMapStrings (dependency:
+ ''
+ # Bundle the dependencies of the package
+ mkdir -p node_modules
+ cd node_modules
+
+ # Only include dependencies if they don't exist. They may also be bundled in the package.
+ if [ ! -e "${dependency.name}" ]
+ then
+ ${composePackage dependency}
+ fi
+
+ cd ..
+ ''
+ ) dependencies);
+
+ # Recursively composes the dependencies of a package
+ composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+ ''
+ DIR=$(pwd)
+ cd $TMPDIR
+
+ unpackFile ${src}
+
+ # Make the base dir in which the target dependency resides first
+ mkdir -p "$(dirname "$DIR/${packageName}")"
+
+ if [ -f "${src}" ]
+ then
+ # Figure out what directory has been unpacked
+ packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+ # Restore write permissions to make building work
+ find "$packageDir" -type d -exec chmod u+x {} \;
+ chmod -R u+w "$packageDir"
+
+ # Move the extracted tarball into the output folder
+ mv "$packageDir" "$DIR/${packageName}"
+ elif [ -d "${src}" ]
+ then
+ # Get a stripped name (without hash) of the source directory.
+ # On old nixpkgs it's already set internally.
+ if [ -z "$strippedName" ]
+ then
+ strippedName="$(stripHash ${src})"
+ fi
+
+ # Restore write permissions to make building work
+ chmod -R u+w "$strippedName"
+
+ # Move the extracted directory into the output folder
+ mv "$strippedName" "$DIR/${packageName}"
+ fi
+
+ # Unset the stripped name to not confuse the next unpack step
+ unset strippedName
+
+ # Include the dependencies of the package
+ cd "$DIR/${packageName}"
+ ${includeDependencies { inherit dependencies; }}
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ '';
+
+ pinpointDependencies = {dependencies, production}:
+ let
+ pinpointDependenciesFromPackageJSON = writeTextFile {
+ name = "pinpointDependencies.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function resolveDependencyVersion(location, name) {
+ if(location == process.env['NIX_STORE']) {
+ return null;
+ } else {
+ var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+ if(fs.existsSync(dependencyPackageJSON)) {
+ var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+ if(dependencyPackageObj.name == name) {
+ return dependencyPackageObj.version;
+ }
+ } else {
+ return resolveDependencyVersion(path.resolve(location, ".."), name);
+ }
+ }
+ }
+
+ function replaceDependencies(dependencies) {
+ if(typeof dependencies == "object" && dependencies !== null) {
+ for(var dependency in dependencies) {
+ var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+ if(resolvedVersion === null) {
+ process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+ } else {
+ dependencies[dependency] = resolvedVersion;
+ }
+ }
+ }
+ }
+
+ /* Read the package.json configuration */
+ var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+ /* Pinpoint all dependencies */
+ replaceDependencies(packageObj.dependencies);
+ if(process.argv[2] == "development") {
+ replaceDependencies(packageObj.devDependencies);
+ }
+ replaceDependencies(packageObj.optionalDependencies);
+
+ /* Write the fixed package.json file */
+ fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+ '';
+ };
+ in
+ ''
+ node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+ ${stdenv.lib.optionalString (dependencies != [])
+ ''
+ if [ -d node_modules ]
+ then
+ cd node_modules
+ ${stdenv.lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+ cd ..
+ fi
+ ''}
+ '';
+
+ # Recursively traverses all dependencies of a package and pinpoints all
+ # dependencies in the package.json file to the versions that are actually
+ # being used.
+
+ pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+ ''
+ if [ -d "${packageName}" ]
+ then
+ cd "${packageName}"
+ ${pinpointDependencies { inherit dependencies production; }}
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ fi
+ '';
+
+ # Extract the Node.js source code which is used to compile packages with
+ # native bindings
+ nodeSources = runCommand "node-sources" {} ''
+ tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+ mv node-* $out
+ '';
+
+ # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+ addIntegrityFieldsScript = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function augmentDependencies(baseDir, dependencies) {
+ for(var dependencyName in dependencies) {
+ var dependency = dependencies[dependencyName];
+
+ // Open package.json and augment metadata fields
+ var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+ var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+ if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+ console.log("Adding metadata fields to: "+packageJSONPath);
+ var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+ if(dependency.integrity) {
+ packageObj["_integrity"] = dependency.integrity;
+ } else {
+ packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+ }
+
+ if(dependency.resolved) {
+ packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+ } else {
+ packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+ }
+
+ if(dependency.from !== undefined) { // Adopt from property if one has been provided
+ packageObj["_from"] = dependency.from;
+ }
+
+ fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+ }
+
+ // Augment transitive dependencies
+ if(dependency.dependencies !== undefined) {
+ augmentDependencies(packageJSONDir, dependency.dependencies);
+ }
+ }
+ }
+
+ if(fs.existsSync("./package-lock.json")) {
+ var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+ if(packageLock.lockfileVersion !== 1) {
+ process.stderr.write("Sorry, I only understand lock file version 1!\n");
+ process.exit(1);
+ }
+
+ if(packageLock.dependencies !== undefined) {
+ augmentDependencies(".", packageLock.dependencies);
+ }
+ }
+ '';
+ };
+
+ # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+ reconstructPackageLock = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+ var lockObj = {
+ name: packageObj.name,
+ version: packageObj.version,
+ lockfileVersion: 1,
+ requires: true,
+ dependencies: {}
+ };
+
+ function augmentPackageJSON(filePath, dependencies) {
+ var packageJSON = path.join(filePath, "package.json");
+ if(fs.existsSync(packageJSON)) {
+ var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+ dependencies[packageObj.name] = {
+ version: packageObj.version,
+ integrity: "sha1-000000000000000000000000000=",
+ dependencies: {}
+ };
+ processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
+ }
+ }
+
+ function processDependencies(dir, dependencies) {
+ if(fs.existsSync(dir)) {
+ var files = fs.readdirSync(dir);
+
+ files.forEach(function(entry) {
+ var filePath = path.join(dir, entry);
+ var stats = fs.statSync(filePath);
+
+ if(stats.isDirectory()) {
+ if(entry.substr(0, 1) == "@") {
+ // When we encounter a namespace folder, augment all packages belonging to the scope
+ var pkgFiles = fs.readdirSync(filePath);
+
+ pkgFiles.forEach(function(entry) {
+ if(stats.isDirectory()) {
+ var pkgFilePath = path.join(filePath, entry);
+ augmentPackageJSON(pkgFilePath, dependencies);
+ }
+ });
+ } else {
+ augmentPackageJSON(filePath, dependencies);
+ }
+ }
+ });
+ }
+ }
+
+ processDependencies("node_modules", lockObj.dependencies);
+
+ fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+ '';
+ };
+
+ prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
+ let
+ forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+ in
+ ''
+ # Pinpoint the versions of all dependencies to the ones that are actually being used
+ echo "pinpointing versions of dependencies..."
+ source $pinpointDependenciesScriptPath
+
+ # Patch the shebangs of the bundled modules to prevent them from
+ # calling executables outside the Nix store as much as possible
+ patchShebangs .
+
+ # Deploy the Node.js package by running npm install. Since the
+ # dependencies have been provided already by ourselves, it should not
+ # attempt to install them again, which is good, because we want to make
+ # it Nix's responsibility. If it needs to install any dependencies
+ # anyway (e.g. because the dependency parameters are
+ # incomplete/incorrect), it fails.
+ #
+ # The other responsibilities of NPM are kept -- version checks, build
+ # steps, postprocessing etc.
+
+ export HOME=$TMPDIR
+ cd "${packageName}"
+ runHook preRebuild
+
+ ${stdenv.lib.optionalString bypassCache ''
+ ${stdenv.lib.optionalString reconstructLock ''
+ if [ -f package-lock.json ]
+ then
+ echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+ echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+ rm package-lock.json
+ else
+ echo "No package-lock.json file found, reconstructing..."
+ fi
+
+ node ${reconstructPackageLock}
+ ''}
+
+ node ${addIntegrityFieldsScript}
+ ''}
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
+
+ if [ "$dontNpmInstall" != "1" ]
+ then
+ # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+ rm -f npm-shrinkwrap.json
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
+ fi
+ '';
+
+ # Builds and composes an NPM package including all its dependencies
+ buildNodePackage =
+ { name
+ , packageName
+ , version
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , preRebuild ? ""
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+ in
+ stdenv.mkDerivation ({
+ name = "node_${name}-${version}";
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ stdenv.lib.optional (stdenv.isLinux) util-linux
+ ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+ compositionScript = composePackage args;
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ # Create and enter a root node_modules/ folder
+ mkdir -p $out/lib/node_modules
+ cd $out/lib/node_modules
+
+ # Compose the package and all its dependencies
+ source $compositionScriptPath
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Create symlink to the deployed executable folder, if applicable
+ if [ -d "$out/lib/node_modules/.bin" ]
+ then
+ ln -s $out/lib/node_modules/.bin $out/bin
+ fi
+
+ # Create symlinks to the deployed manual page folders, if applicable
+ if [ -d "$out/lib/node_modules/${packageName}/man" ]
+ then
+ mkdir -p $out/share
+ for dir in "$out/lib/node_modules/${packageName}/man/"*
+ do
+ mkdir -p $out/share/man/$(basename "$dir")
+ for page in "$dir"/*
+ do
+ ln -s $page $out/share/man/$(basename "$dir")
+ done
+ done
+ fi
+
+ # Run post install hook, if provided
+ runHook postInstall
+ '';
+ } // extraArgs);
+
+ # Builds a development shell
+ buildNodeShell =
+ { name
+ , packageName
+ , version
+ , src
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+
+ nodeDependencies = stdenv.mkDerivation ({
+ name = "node-dependencies-${name}-${version}";
+
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ stdenv.lib.optional (stdenv.isLinux) util-linux
+ ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall unpackPhase buildPhase;
+
+ includeScript = includeDependencies { inherit dependencies; };
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ mkdir -p $out/${packageName}
+ cd $out/${packageName}
+
+ source $includeScriptPath
+
+ # Create fake package.json to make the npm commands work properly
+ cp ${src}/package.json .
+ chmod 644 package.json
+ ${stdenv.lib.optionalString bypassCache ''
+ if [ -f ${src}/package-lock.json ]
+ then
+ cp ${src}/package-lock.json .
+ fi
+ ''}
+
+ # Go to the parent folder to make sure that all packages are pinpointed
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Expose the executables that were installed
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ mv ${packageName} lib
+ ln -s $out/lib/node_modules/.bin $out/bin
+ '';
+ } // extraArgs);
+ in
+ stdenv.mkDerivation {
+ name = "node-shell-${name}-${version}";
+
+ buildInputs = [ python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) util-linux ++ buildInputs;
+ buildCommand = ''
+ mkdir -p $out/bin
+ cat > $out/bin/shell <<EOF
+ #! ${stdenv.shell} -e
+ $shellHook
+ exec ${stdenv.shell}
+ EOF
+ chmod +x $out/bin/shell
+ '';
+
+ # Provide the dependencies in a development shell through the NODE_PATH environment variable
+ inherit nodeDependencies;
+ shellHook = stdenv.lib.optionalString (dependencies != []) ''
+ export NODE_PATH=$nodeDependencies/lib/node_modules
+ export PATH="$nodeDependencies/bin:$PATH"
+ '';
+ };
+in
+{
+ buildNodeSourceDist = stdenv.lib.makeOverridable buildNodeSourceDist;
+ buildNodePackage = stdenv.lib.makeOverridable buildNodePackage;
+ buildNodeShell = stdenv.lib.makeOverridable buildNodeShell;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix
new file mode 100644
index 000000000000..1f968a62c9f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix
@@ -0,0 +1,1426 @@
+# This file has been generated by node2nix 1.7.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {
+ "abbrev-1.1.1" = {
+ name = "abbrev";
+ packageName = "abbrev";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+ sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
+ };
+ };
+ "ajv-6.10.2" = {
+ name = "ajv";
+ packageName = "ajv";
+ version = "6.10.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz";
+ sha512 = "13mb943karizrqc9k4wpfs02jcrjzqyaysld4pmqacald7yj8wsjbx8gk2pbn6kc85fzjyb22x836g65fjj0mmndk2a9f878r858ysd";
+ };
+ };
+ "another-json-0.2.0" = {
+ name = "another-json";
+ packageName = "another-json";
+ version = "0.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz";
+ sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc";
+ };
+ };
+ "ansi-regex-2.1.1" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ };
+ "aproba-1.2.0" = {
+ name = "aproba";
+ packageName = "aproba";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+ sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3";
+ };
+ };
+ "are-we-there-yet-1.1.5" = {
+ name = "are-we-there-yet";
+ packageName = "are-we-there-yet";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha512 = "3mizm1yfxynlhaavbimv7n9qljrbhni22v4fch6zr89x6ps0gpjcxm5yfvv05n8vc3r17hmglyswgq9w0s598xv70nnyw358q11s5p6";
+ };
+ };
+ "asn1-0.2.4" = {
+ name = "asn1";
+ packageName = "asn1";
+ version = "0.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
+ sha512 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
+ };
+ };
+ "assert-plus-1.0.0" = {
+ name = "assert-plus";
+ packageName = "assert-plus";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ };
+ "asynckit-0.4.0" = {
+ name = "asynckit";
+ packageName = "asynckit";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ };
+ "aws-sign2-0.7.0" = {
+ name = "aws-sign2";
+ packageName = "aws-sign2";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ };
+ "aws4-1.9.0" = {
+ name = "aws4";
+ packageName = "aws4";
+ version = "1.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz";
+ sha512 = "3h6cs1b1kw3rsfczqb8jzjlsha24ax4hyhgrk4smwj1i66lgc63kv03cvkn7zbivqvnrpmk640mp3c1bnmm49v1v40kvl5xay2vmyjj";
+ };
+ };
+ "balanced-match-1.0.0" = {
+ name = "balanced-match";
+ packageName = "balanced-match";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ };
+ "bcrypt-pbkdf-1.0.2" = {
+ name = "bcrypt-pbkdf";
+ packageName = "bcrypt-pbkdf";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ };
+ "brace-expansion-1.1.11" = {
+ name = "brace-expansion";
+ packageName = "brace-expansion";
+ version = "1.1.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
+ };
+ };
+ "browser-request-0.3.3" = {
+ name = "browser-request";
+ packageName = "browser-request";
+ version = "0.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz";
+ sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17";
+ };
+ };
+ "caseless-0.12.0" = {
+ name = "caseless";
+ packageName = "caseless";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ };
+ "chownr-1.1.3" = {
+ name = "chownr";
+ packageName = "chownr";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz";
+ sha512 = "1gqsfnpd5kpc4vi8v5b2dr480pk56d674a49bi0505qrjf9iash3n016cyz7qq1iwa41qny8dixp24w9vvam9sy9vnp0mv6g1a1zgcb";
+ };
+ };
+ "code-point-at-1.1.0" = {
+ name = "code-point-at";
+ packageName = "code-point-at";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ };
+ "combined-stream-1.0.8" = {
+ name = "combined-stream";
+ packageName = "combined-stream";
+ version = "1.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+ sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
+ };
+ };
+ "concat-map-0.0.1" = {
+ name = "concat-map";
+ packageName = "concat-map";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ };
+ "console-control-strings-1.1.0" = {
+ name = "console-control-strings";
+ packageName = "console-control-strings";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ };
+ "core-util-is-1.0.2" = {
+ name = "core-util-is";
+ packageName = "core-util-is";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ };
+ "dashdash-1.14.1" = {
+ name = "dashdash";
+ packageName = "dashdash";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ };
+ "debug-3.2.6" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.2.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
+ sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
+ };
+ };
+ "deep-extend-0.6.0" = {
+ name = "deep-extend";
+ packageName = "deep-extend";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha512 = "0wc0sqg1aqx864bxf8xa4j8ncrc8rcvmiaj1sp3x1np2i8hdjybzjfd0w9gbf1yasmwycwzzg1mz6smr3q42hhv4pjx2qcgwqhg3q9c";
+ };
+ };
+ "delayed-stream-1.0.0" = {
+ name = "delayed-stream";
+ packageName = "delayed-stream";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ };
+ "delegates-1.0.0" = {
+ name = "delegates";
+ packageName = "delegates";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ };
+ "detect-libc-1.0.3" = {
+ name = "detect-libc";
+ packageName = "detect-libc";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ };
+ "ecc-jsbn-0.1.2" = {
+ name = "ecc-jsbn";
+ packageName = "ecc-jsbn";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ };
+ "encoding-0.1.12" = {
+ name = "encoding";
+ packageName = "encoding";
+ version = "0.1.12";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz";
+ sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+ };
+ };
+ "extend-3.0.2" = {
+ name = "extend";
+ packageName = "extend";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+ sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
+ };
+ };
+ "extsprintf-1.3.0" = {
+ name = "extsprintf";
+ packageName = "extsprintf";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ };
+ "fast-deep-equal-2.0.1" = {
+ name = "fast-deep-equal";
+ packageName = "fast-deep-equal";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+ sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+ };
+ };
+ "fast-json-stable-stringify-2.0.0" = {
+ name = "fast-json-stable-stringify";
+ packageName = "fast-json-stable-stringify";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+ sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+ };
+ };
+ "forever-agent-0.6.1" = {
+ name = "forever-agent";
+ packageName = "forever-agent";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ };
+ "form-data-2.3.3" = {
+ name = "form-data";
+ packageName = "form-data";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
+ sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
+ };
+ };
+ "fs-minipass-1.2.7" = {
+ name = "fs-minipass";
+ packageName = "fs-minipass";
+ version = "1.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
+ sha512 = "1644yfnzfqikaff5s68dm4qfrblxrz68ynigkyzyixjqazxlli0svj1nxkawz35sv2vb3vjh41f1rhg0j4nr770a53fzqbjc4j94r0r";
+ };
+ };
+ "fs.realpath-1.0.0" = {
+ name = "fs.realpath";
+ packageName = "fs.realpath";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ };
+ "gauge-2.7.4" = {
+ name = "gauge";
+ packageName = "gauge";
+ version = "2.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ };
+ "getpass-0.1.7" = {
+ name = "getpass";
+ packageName = "getpass";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ };
+ "glob-7.1.6" = {
+ name = "glob";
+ packageName = "glob";
+ version = "7.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+ sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
+ };
+ };
+ "graceful-fs-4.2.3" = {
+ name = "graceful-fs";
+ packageName = "graceful-fs";
+ version = "4.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
+ sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
+ };
+ };
+ "har-schema-2.0.0" = {
+ name = "har-schema";
+ packageName = "har-schema";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ };
+ "har-validator-5.1.3" = {
+ name = "har-validator";
+ packageName = "har-validator";
+ version = "5.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
+ sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
+ };
+ };
+ "has-unicode-2.0.1" = {
+ name = "has-unicode";
+ packageName = "has-unicode";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ };
+ "http-signature-1.2.0" = {
+ name = "http-signature";
+ packageName = "http-signature";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ };
+ "iconv-lite-0.4.24" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.4.24";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
+ };
+ };
+ "ignore-walk-3.0.3" = {
+ name = "ignore-walk";
+ packageName = "ignore-walk";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
+ sha512 = "0mlk9s23jc3avly1bv6s5j7hs0aafxabmgn7iqi0bjag4b03nqckvcdrgnarpmysdq8yr1rgxh6k7p82vzjj1z6hnm5ckwswg33mflv";
+ };
+ };
+ "imurmurhash-0.1.4" = {
+ name = "imurmurhash";
+ packageName = "imurmurhash";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+ sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+ };
+ };
+ "inflight-1.0.6" = {
+ name = "inflight";
+ packageName = "inflight";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ };
+ "inherits-2.0.4" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+ sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk";
+ };
+ };
+ "ini-1.3.5" = {
+ name = "ini";
+ packageName = "ini";
+ version = "1.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
+ sha512 = "1rjbvf1rg5ywhnba08sgagn2qf23lab330qrqmh7d891zap3xpxcyfyj1cblpf0f0rypglcfacybzyrpd4996aa1mbc820awa33k5j5";
+ };
+ };
+ "is-fullwidth-code-point-1.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ };
+ "is-stream-1.1.0" = {
+ name = "is-stream";
+ packageName = "is-stream";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
+ sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+ };
+ };
+ "is-typedarray-1.0.0" = {
+ name = "is-typedarray";
+ packageName = "is-typedarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ };
+ "isarray-1.0.0" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ };
+ "isstream-0.1.2" = {
+ name = "isstream";
+ packageName = "isstream";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ };
+ "jsbn-0.1.1" = {
+ name = "jsbn";
+ packageName = "jsbn";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ };
+ "json-schema-0.2.3" = {
+ name = "json-schema";
+ packageName = "json-schema";
+ version = "0.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ };
+ "json-schema-traverse-0.4.1" = {
+ name = "json-schema-traverse";
+ packageName = "json-schema-traverse";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
+ };
+ };
+ "json-stringify-safe-5.0.1" = {
+ name = "json-stringify-safe";
+ packageName = "json-stringify-safe";
+ version = "5.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ };
+ "jsprim-1.4.1" = {
+ name = "jsprim";
+ packageName = "jsprim";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ };
+ "marked-0.6.3" = {
+ name = "marked";
+ packageName = "marked";
+ version = "0.6.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz";
+ sha512 = "0wnipqyl61ks0g90fa5pmgmzjcc16j8mbvs1h5s9lbqskdp7b76wwxr7xglzqrizggpilwd8pih983ynav61cramv61fswlmxxbp9hn";
+ };
+ };
+ "matrix-js-sdk-0.7.13" = {
+ name = "matrix-js-sdk";
+ packageName = "matrix-js-sdk";
+ version = "0.7.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-0.7.13.tgz";
+ sha1 = "283accc710009f5a0b02367682f2e86155fd00c4";
+ };
+ };
+ "mime-db-1.42.0" = {
+ name = "mime-db";
+ packageName = "mime-db";
+ version = "1.42.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz";
+ sha512 = "1hipkh3wjfb7m6qid0nrqdas0bj5c2hj3123pcwhcdb1qxxwyacnidn1nhdp01nnrkycwzymrf81jg6yin24pyah16m808l3q4wkdsi";
+ };
+ };
+ "mime-types-2.1.25" = {
+ name = "mime-types";
+ packageName = "mime-types";
+ version = "2.1.25";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz";
+ sha512 = "1b88jc29kn9ksarmd9ad8d4y4q1cn977g7nvfqyj7grmsll6y9zlfx4wwpcq0426y8dgvm412fhr9n1401h92kag3099ikrl2v55a74";
+ };
+ };
+ "minimatch-3.0.4" = {
+ name = "minimatch";
+ packageName = "minimatch";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+ sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
+ };
+ };
+ "minimist-0.0.8" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "0.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ };
+ "minimist-1.2.0" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+ };
+ };
+ "minipass-2.9.0" = {
+ name = "minipass";
+ packageName = "minipass";
+ version = "2.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
+ sha512 = "1x0k2ycn1r5fig2zy7jj5vjsc7sxdl2a8lidvzsfyhcbrmvyvlbkmb3ga6l8njclvhjz2yrcx57jn26bckzrms017zb2yan1y7d85y3";
+ };
+ };
+ "minizlib-1.3.3" = {
+ name = "minizlib";
+ packageName = "minizlib";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
+ sha512 = "3slcgy5kqasjl8k1n2indaaw0k6j2ipapzxrcqyy2zrwpv8z9w2im5i8c2c73pqdgkd31rwf5bajgv4pm2i6m9jg51cfmp694w0r5p9";
+ };
+ };
+ "mkdirp-0.5.1" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "0.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ };
+ "ms-2.1.2" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+ sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
+ };
+ };
+ "mustache-2.3.2" = {
+ name = "mustache";
+ packageName = "mustache";
+ version = "2.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz";
+ sha512 = "1aihy6k9338c8w0cip0c3v4s2h5yqd8xksqrv17rjybj01nsrpplbniiv09fvjadwhbyjbhkr82lyx3gyidcli0zp73sqrcsk0hv4ra";
+ };
+ };
+ "nan-2.14.0" = {
+ name = "nan";
+ packageName = "nan";
+ version = "2.14.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
+ sha512 = "115f4m91pjscflwskc29clsspd2z02gdbz0dbj63ja8bf67nraw14gvppl4872y9z2f5vbjlkpg1i4625zvalx3gp04vvn2gs7qblr0";
+ };
+ };
+ "needle-2.4.0" = {
+ name = "needle";
+ packageName = "needle";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz";
+ sha512 = "1k9220dhvc3m78hzd1xh2135p19z15y964hmhsajayvj11j2p3rv5w0gii7lmgr8w57bqkjg0xby5f1gkcph60kxvyr52z6pp7g0yg0";
+ };
+ };
+ "node-fetch-1.7.3" = {
+ name = "node-fetch";
+ packageName = "node-fetch";
+ version = "1.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz";
+ sha512 = "0lz5m15w7qaks0a0s3dm0crsjrsd123dy00pn6qwcp50zfjykxkp22i5ymh6smlc0ags38nmdxlxw9yyq509azlv8kcdvdiq857h5in";
+ };
+ };
+ "node-localstorage-1.3.1" = {
+ name = "node-localstorage";
+ packageName = "node-localstorage";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz";
+ sha512 = "1lwiz287h6lgv0xjnz0n1fzj3bpq1rbxawlrddympi9hrwwji839wwk6y7w36k2nrkpaq86z3n2nbysad9mmwlk9z3rds4wcm4q5i9l";
+ };
+ };
+ "node-pre-gyp-0.11.0" = {
+ name = "node-pre-gyp";
+ packageName = "node-pre-gyp";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
+ sha512 = "38q9mq0yq7pjnlqnxjiq8qz38jrgj7rccdf4n6dk95zwamncxmvb88192zabdccpnjhvd9rl4nmqxn727mzb7v6g2yvg3zljqwq01ag";
+ };
+ };
+ "nopt-4.0.1" = {
+ name = "nopt";
+ packageName = "nopt";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz";
+ sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+ };
+ };
+ "npm-bundled-1.0.6" = {
+ name = "npm-bundled";
+ packageName = "npm-bundled";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz";
+ sha512 = "395ysq8prylnnimwxy4w37dwaxlk56dxwdc4jif41qghhcpdmignikigrpg6sfxxb0mr92z2p1kbad72sqxmcjfzrzvgha7zdll5wpk";
+ };
+ };
+ "npm-packlist-1.4.6" = {
+ name = "npm-packlist";
+ packageName = "npm-packlist";
+ version = "1.4.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz";
+ sha512 = "2b0xwi30n7mqd43xc06yx3ck4j7ny8xaph36qs1zj2zxr64bn6m79cxfd9vxawcqpkdcy1apf1mfvc120wgqqa2pi30pazysr0nxbmv";
+ };
+ };
+ "npmlog-4.1.2" = {
+ name = "npmlog";
+ packageName = "npmlog";
+ version = "4.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
+ sha512 = "2967mavp7zw0aawf5fadqf4pmn7vy5gya1yx2s9wwppvivhd9q4mpdnszfqvd7p6yks649bwbpj8iviw86g0hpp4f93d5ca7dmjmrfs";
+ };
+ };
+ "number-is-nan-1.0.1" = {
+ name = "number-is-nan";
+ packageName = "number-is-nan";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ };
+ "oauth-sign-0.9.0" = {
+ name = "oauth-sign";
+ packageName = "oauth-sign";
+ version = "0.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
+ };
+ };
+ "object-assign-4.1.1" = {
+ name = "object-assign";
+ packageName = "object-assign";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ };
+ "olm-https://packages.matrix.org/npm/olm/olm-2.3.0.tgz" = {
+ name = "olm";
+ packageName = "olm";
+ version = "2.3.0";
+ src = fetchurl {
+ name = "olm-2.3.0.tar.gz";
+ url = "https://packages.matrix.org/npm/olm/olm-2.3.0.tgz";
+ sha256 = "1f0f037a025a44509646cb849ded7c1a1f55e7bfed240fad19676c002fcd953a";
+ };
+ };
+ "once-1.4.0" = {
+ name = "once";
+ packageName = "once";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ };
+ "os-homedir-1.0.2" = {
+ name = "os-homedir";
+ packageName = "os-homedir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ };
+ "os-tmpdir-1.0.2" = {
+ name = "os-tmpdir";
+ packageName = "os-tmpdir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ };
+ "osenv-0.1.5" = {
+ name = "osenv";
+ packageName = "osenv";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
+ sha512 = "3ddw0y41pxv08ls5xhmq1bi81hppjbr45k78cjfx99vznh5znrj5g1b1wab9caj1mqlsvmfms0zm9cfb47ygm0d8wv5fccx8049q9fh";
+ };
+ };
+ "path-is-absolute-1.0.1" = {
+ name = "path-is-absolute";
+ packageName = "path-is-absolute";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ };
+ "performance-now-2.1.0" = {
+ name = "performance-now";
+ packageName = "performance-now";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ };
+ "process-nextick-args-2.0.1" = {
+ name = "process-nextick-args";
+ packageName = "process-nextick-args";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
+ };
+ };
+ "psl-1.4.0" = {
+ name = "psl";
+ packageName = "psl";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz";
+ sha512 = "0bjwkcvqqwlhg86aa7pmd3n65y9hhiv5np25mw6g2phqx3mp9iv0d8sxl8r2j50hiniwz00k569h8hdxsviry8ql7r54w6ycc4fm70x";
+ };
+ };
+ "punycode-1.4.1" = {
+ name = "punycode";
+ packageName = "punycode";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
+ sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+ };
+ };
+ "punycode-2.1.1" = {
+ name = "punycode";
+ packageName = "punycode";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+ sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
+ };
+ };
+ "q-1.5.1" = {
+ name = "q";
+ packageName = "q";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/q/-/q-1.5.1.tgz";
+ sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
+ };
+ };
+ "qs-6.5.2" = {
+ name = "qs";
+ packageName = "qs";
+ version = "6.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
+ sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
+ };
+ };
+ "rc-1.2.8" = {
+ name = "rc";
+ packageName = "rc";
+ version = "1.2.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+ sha512 = "0xhy1n9n3y6cp28f8f0f2mi0xzc7ay1g5nhbp64fyvcwv9q30zq2zvyc5q2d0al8aa0hx101yq2y6d2ln4r5jxnqifh1pd3la1ccxnb";
+ };
+ };
+ "readable-stream-2.3.6" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "2.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz";
+ sha512 = "0mj9b6190amln9rg89x5pq2n195s3v0gzicpdamv1kbabg69aw5m71l34jsjn7bqil7405l6l35x9ijnb3h4jz5vx2i00l8sl1ll2xm";
+ };
+ };
+ "request-2.88.0" = {
+ name = "request";
+ packageName = "request";
+ version = "2.88.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz";
+ sha512 = "2339w6v6d7n7pj0085vkfvk0864gs8kfh1kghbl3smj7s21ny3k265in140frsaipc6bvqbi4k696ic4z13d6a56dfvc653p15822il";
+ };
+ };
+ "rimraf-2.7.1" = {
+ name = "rimraf";
+ packageName = "rimraf";
+ version = "2.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
+ sha512 = "3ixwnv4h7x38jd12vyzhx6m6adnfhz1zv881allalyqs8sy3q3zgwldngk4cqslnn2d46l0g91yz8wprmzcsvas9573vp8al9ldns5r";
+ };
+ };
+ "safe-buffer-5.1.2" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
+ };
+ };
+ "safe-buffer-5.2.0" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
+ sha512 = "1pb164cfv1ip3s1rp008433rak88mdcch24q84cbfndg0dzky2ij8vjvsiyx2qf3rg4dgs82zk7vnrd9hkqqdcvp4lbk5ymcr8314bx";
+ };
+ };
+ "safer-buffer-2.1.2" = {
+ name = "safer-buffer";
+ packageName = "safer-buffer";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
+ };
+ };
+ "sax-1.2.4" = {
+ name = "sax";
+ packageName = "sax";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
+ sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n";
+ };
+ };
+ "semver-5.7.1" = {
+ name = "semver";
+ packageName = "semver";
+ version = "5.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+ sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
+ };
+ };
+ "set-blocking-2.0.0" = {
+ name = "set-blocking";
+ packageName = "set-blocking";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ };
+ "signal-exit-3.0.2" = {
+ name = "signal-exit";
+ packageName = "signal-exit";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz";
+ sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+ };
+ };
+ "slide-1.1.6" = {
+ name = "slide";
+ packageName = "slide";
+ version = "1.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz";
+ sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
+ };
+ };
+ "sqlite3-4.1.0" = {
+ name = "sqlite3";
+ packageName = "sqlite3";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.0.tgz";
+ sha512 = "1my61d8alqzqpi3xm9qvkb3sqvypxa511xq72h2v4f9p04zvw75rcz4jn9h1ajxldwnmnalwy5pq78mdiy6jfwsn33r1wmy38msiyj6";
+ };
+ };
+ "sshpk-1.16.1" = {
+ name = "sshpk";
+ packageName = "sshpk";
+ version = "1.16.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
+ sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
+ };
+ };
+ "string-width-1.0.2" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ };
+ "string_decoder-1.1.1" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
+ };
+ };
+ "strip-ansi-3.0.1" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ };
+ "strip-json-comments-2.0.1" = {
+ name = "strip-json-comments";
+ packageName = "strip-json-comments";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ };
+ "tar-4.4.13" = {
+ name = "tar";
+ packageName = "tar";
+ version = "4.4.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
+ sha512 = "10gwhmgx7fh619zv48r2lnm42qr7rw4qa9ph7142rizcn8in9dpi49jbmmv8ism60rcg1a7b4103r598jngi1rcn50sw7b8n1570rf3";
+ };
+ };
+ "tough-cookie-2.4.3" = {
+ name = "tough-cookie";
+ packageName = "tough-cookie";
+ version = "2.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz";
+ sha512 = "2akhyixx49dkqadghzwj53xwfa1aikf0iv04ib9zj0kbilkzxxh16j5c6vfkcwm3cy29y46q3d8lzinsy6ql2cvb1wcw31gzs9jp6s3";
+ };
+ };
+ "tunnel-agent-0.6.0" = {
+ name = "tunnel-agent";
+ packageName = "tunnel-agent";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ };
+ "tweetnacl-0.14.5" = {
+ name = "tweetnacl";
+ packageName = "tweetnacl";
+ version = "0.14.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ };
+ "uri-js-4.2.2" = {
+ name = "uri-js";
+ packageName = "uri-js";
+ version = "4.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
+ sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
+ };
+ };
+ "util-deprecate-1.0.2" = {
+ name = "util-deprecate";
+ packageName = "util-deprecate";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ };
+ "uuid-3.3.3" = {
+ name = "uuid";
+ packageName = "uuid";
+ version = "3.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz";
+ sha512 = "14s78i0nwzf5q1xz1d5rjlsm2rk5rf75nizydkj19mhbk1hw00lwzilkncx3bqzqhsni41i88wajwmc2mxxckkjlkjhq7j6ajihsvd5";
+ };
+ };
+ "verror-1.10.0" = {
+ name = "verror";
+ packageName = "verror";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ };
+ "wide-align-1.1.3" = {
+ name = "wide-align";
+ packageName = "wide-align";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+ sha512 = "2224a32flpf40nhq6rj4idzkcdz0vx65bfxp90hd06db18l6fiqgxz1xnaygm3pbfb1a6v73hl8ryq4996b09zwwins0bqprx0hwsa0";
+ };
+ };
+ "wrappy-1.0.2" = {
+ name = "wrappy";
+ packageName = "wrappy";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ };
+ "write-file-atomic-1.3.4" = {
+ name = "write-file-atomic";
+ packageName = "write-file-atomic";
+ version = "1.3.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz";
+ sha1 = "f807a4f0b1d9e913ae7a48112e6cc3af1991b45f";
+ };
+ };
+ "yallist-3.1.1" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
+ sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
+ };
+ };
+ };
+ node-pre-gyp = nodeEnv.buildNodePackage {
+ name = "node-pre-gyp";
+ packageName = "node-pre-gyp";
+ version = "0.14.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz";
+ sha512 = "32drv6q9sh4i2ff2djd1dhxxxiaiymmgycbm12wpkz9vxspnldxgmppf9sazp3c72771a1p5s4kkzgwn4w1csyz9bn4zdbdnq5w6azq";
+ };
+ dependencies = [
+ sources."abbrev-1.1.1"
+ sources."ansi-regex-2.1.1"
+ sources."aproba-1.2.0"
+ sources."are-we-there-yet-1.1.5"
+ sources."balanced-match-1.0.0"
+ sources."brace-expansion-1.1.11"
+ sources."chownr-1.1.3"
+ sources."code-point-at-1.1.0"
+ sources."concat-map-0.0.1"
+ sources."console-control-strings-1.1.0"
+ sources."core-util-is-1.0.2"
+ sources."debug-3.2.6"
+ sources."deep-extend-0.6.0"
+ sources."delegates-1.0.0"
+ sources."detect-libc-1.0.3"
+ sources."fs-minipass-1.2.7"
+ sources."fs.realpath-1.0.0"
+ sources."gauge-2.7.4"
+ sources."glob-7.1.6"
+ sources."has-unicode-2.0.1"
+ sources."iconv-lite-0.4.24"
+ sources."ignore-walk-3.0.3"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.4"
+ sources."ini-1.3.5"
+ sources."is-fullwidth-code-point-1.0.0"
+ sources."isarray-1.0.0"
+ sources."minimatch-3.0.4"
+ sources."minimist-0.0.8"
+ sources."minipass-2.9.0"
+ sources."minizlib-1.3.3"
+ sources."mkdirp-0.5.1"
+ sources."ms-2.1.2"
+ sources."needle-2.4.0"
+ sources."nopt-4.0.1"
+ sources."npm-bundled-1.0.6"
+ sources."npm-packlist-1.4.6"
+ sources."npmlog-4.1.2"
+ sources."number-is-nan-1.0.1"
+ sources."object-assign-4.1.1"
+ sources."once-1.4.0"
+ sources."os-homedir-1.0.2"
+ sources."os-tmpdir-1.0.2"
+ sources."osenv-0.1.5"
+ sources."path-is-absolute-1.0.1"
+ sources."process-nextick-args-2.0.1"
+ (sources."rc-1.2.8" // {
+ dependencies = [
+ sources."minimist-1.2.0"
+ ];
+ })
+ sources."readable-stream-2.3.6"
+ sources."rimraf-2.7.1"
+ sources."safe-buffer-5.1.2"
+ sources."safer-buffer-2.1.2"
+ sources."sax-1.2.4"
+ sources."semver-5.7.1"
+ sources."set-blocking-2.0.0"
+ sources."signal-exit-3.0.2"
+ sources."string-width-1.0.2"
+ sources."string_decoder-1.1.1"
+ sources."strip-ansi-3.0.1"
+ sources."strip-json-comments-2.0.1"
+ sources."tar-4.4.13"
+ sources."util-deprecate-1.0.2"
+ sources."wide-align-1.1.3"
+ sources."wrappy-1.0.2"
+ sources."yallist-3.1.1"
+ ];
+ buildInputs = [];
+ meta = {
+ description = "Node.js native addon binary install tool";
+ homepage = "https://github.com/mapbox/node-pre-gyp#readme";
+ license = "BSD-3-Clause";
+ };
+ production = true;
+ bypassCache = true;
+ reconstructLock = true;
+ };
+ args = {
+ name = "matrix-recorder";
+ packageName = "matrix-recorder";
+ version = "0.0.6";
+ src = fetchgit {
+ url = "https://gitlab.com/argit/matrix-recorder/";
+ rev = "006b78c8a4ddc636be8f6f1e3875b13a4a6d2c7c";
+ sha256 = "0m3kzwbrxymwl6hr981q6fsf752fqxwzbpxryx25j4lkwc23nmj3";
+ };
+ dependencies = [
+ sources."abbrev-1.1.1"
+ sources."ajv-6.10.2"
+ sources."another-json-0.2.0"
+ sources."ansi-regex-2.1.1"
+ sources."aproba-1.2.0"
+ sources."are-we-there-yet-1.1.5"
+ sources."asn1-0.2.4"
+ sources."assert-plus-1.0.0"
+ sources."asynckit-0.4.0"
+ sources."aws-sign2-0.7.0"
+ sources."aws4-1.9.0"
+ sources."balanced-match-1.0.0"
+ sources."bcrypt-pbkdf-1.0.2"
+ sources."brace-expansion-1.1.11"
+ sources."browser-request-0.3.3"
+ sources."caseless-0.12.0"
+ sources."chownr-1.1.3"
+ sources."code-point-at-1.1.0"
+ sources."combined-stream-1.0.8"
+ sources."concat-map-0.0.1"
+ sources."console-control-strings-1.1.0"
+ sources."core-util-is-1.0.2"
+ sources."dashdash-1.14.1"
+ sources."debug-3.2.6"
+ sources."deep-extend-0.6.0"
+ sources."delayed-stream-1.0.0"
+ sources."delegates-1.0.0"
+ sources."detect-libc-1.0.3"
+ sources."ecc-jsbn-0.1.2"
+ sources."encoding-0.1.12"
+ sources."extend-3.0.2"
+ sources."extsprintf-1.3.0"
+ sources."fast-deep-equal-2.0.1"
+ sources."fast-json-stable-stringify-2.0.0"
+ sources."forever-agent-0.6.1"
+ sources."form-data-2.3.3"
+ sources."fs-minipass-1.2.7"
+ sources."fs.realpath-1.0.0"
+ sources."gauge-2.7.4"
+ sources."getpass-0.1.7"
+ sources."glob-7.1.6"
+ sources."graceful-fs-4.2.3"
+ sources."har-schema-2.0.0"
+ sources."har-validator-5.1.3"
+ sources."has-unicode-2.0.1"
+ sources."http-signature-1.2.0"
+ sources."iconv-lite-0.4.24"
+ sources."ignore-walk-3.0.3"
+ sources."imurmurhash-0.1.4"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.4"
+ sources."ini-1.3.5"
+ sources."is-fullwidth-code-point-1.0.0"
+ sources."is-stream-1.1.0"
+ sources."is-typedarray-1.0.0"
+ sources."isarray-1.0.0"
+ sources."isstream-0.1.2"
+ sources."jsbn-0.1.1"
+ sources."json-schema-0.2.3"
+ sources."json-schema-traverse-0.4.1"
+ sources."json-stringify-safe-5.0.1"
+ sources."jsprim-1.4.1"
+ sources."marked-0.6.3"
+ sources."matrix-js-sdk-0.7.13"
+ sources."mime-db-1.42.0"
+ sources."mime-types-2.1.25"
+ sources."minimatch-3.0.4"
+ sources."minimist-0.0.8"
+ sources."minipass-2.9.0"
+ sources."minizlib-1.3.3"
+ sources."mkdirp-0.5.1"
+ sources."ms-2.1.2"
+ sources."mustache-2.3.2"
+ sources."nan-2.14.0"
+ sources."needle-2.4.0"
+ sources."node-fetch-1.7.3"
+ sources."node-localstorage-1.3.1"
+ sources."node-pre-gyp-0.11.0"
+ sources."nopt-4.0.1"
+ sources."npm-bundled-1.0.6"
+ sources."npm-packlist-1.4.6"
+ sources."npmlog-4.1.2"
+ sources."number-is-nan-1.0.1"
+ sources."oauth-sign-0.9.0"
+ sources."object-assign-4.1.1"
+ sources."olm-https://packages.matrix.org/npm/olm/olm-2.3.0.tgz"
+ sources."once-1.4.0"
+ sources."os-homedir-1.0.2"
+ sources."os-tmpdir-1.0.2"
+ sources."osenv-0.1.5"
+ sources."path-is-absolute-1.0.1"
+ sources."performance-now-2.1.0"
+ sources."process-nextick-args-2.0.1"
+ sources."psl-1.4.0"
+ sources."punycode-2.1.1"
+ sources."q-1.5.1"
+ sources."qs-6.5.2"
+ (sources."rc-1.2.8" // {
+ dependencies = [
+ sources."minimist-1.2.0"
+ ];
+ })
+ (sources."readable-stream-2.3.6" // {
+ dependencies = [
+ sources."safe-buffer-5.1.2"
+ ];
+ })
+ sources."request-2.88.0"
+ sources."rimraf-2.7.1"
+ sources."safe-buffer-5.2.0"
+ sources."safer-buffer-2.1.2"
+ sources."sax-1.2.4"
+ sources."semver-5.7.1"
+ sources."set-blocking-2.0.0"
+ sources."signal-exit-3.0.2"
+ sources."slide-1.1.6"
+ sources."sqlite3-4.1.0"
+ sources."sshpk-1.16.1"
+ sources."string-width-1.0.2"
+ (sources."string_decoder-1.1.1" // {
+ dependencies = [
+ sources."safe-buffer-5.1.2"
+ ];
+ })
+ sources."strip-ansi-3.0.1"
+ sources."strip-json-comments-2.0.1"
+ sources."tar-4.4.13"
+ (sources."tough-cookie-2.4.3" // {
+ dependencies = [
+ sources."punycode-1.4.1"
+ ];
+ })
+ sources."tunnel-agent-0.6.0"
+ sources."tweetnacl-0.14.5"
+ sources."uri-js-4.2.2"
+ sources."util-deprecate-1.0.2"
+ sources."uuid-3.3.3"
+ sources."verror-1.10.0"
+ sources."wide-align-1.1.3"
+ sources."wrappy-1.0.2"
+ sources."write-file-atomic-1.3.4"
+ sources."yallist-3.1.1"
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "A recorder that can record Matrix rooms you are a member of (including E2E-encrypted rooms).";
+ license = "MIT";
+ };
+ production = true;
+ bypassCache = true;
+ reconstructLock = true;
+ };
+in
+{
+ tarball = nodeEnv.buildNodeSourceDist args;
+ package = nodeEnv.buildNodePackage args;
+ shell = nodeEnv.buildNodeShell args;
+ inherit node-pre-gyp;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json
new file mode 100644
index 000000000000..fc03d636ad21
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "matrix-recorder",
+ "version": "0.0.6",
+ "description": "A recorder that can record Matrix rooms you are a member of (including E2E-encrypted rooms).",
+ "author": "Hello Matrix <hello@hello-matrix.net>",
+ "main": "matrix-recorder.js",
+ "scripts": {
+ "start": "node matrix-recorder.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://gitlab.com/argit/matrix-recorder.git"
+ },
+ "dependencies": {
+ "marked": "^0.6.2",
+ "matrix-js-sdk": "^0.7.13",
+ "mime-types": "^2.1.14",
+ "mustache": "^2.3.0",
+ "node-fetch": "^1.6.3",
+ "node-localstorage": "^1.3.0",
+ "sqlite3": "^4.0.7",
+ "olm": "https://packages.matrix.org/npm/olm/olm-2.3.0.tgz"
+ },
+ "license": "MIT",
+ "optionalDependencies": {
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix
new file mode 100644
index 000000000000..54b7ef2bd991
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchgit
+ , buildPythonApplication, buildPythonPackage
+ , pygobject3, pytestrunner, requests, responses, pytest, python-olm
+ , canonicaljson, olm
+}:
+let
+ mainsrc = fetchgit {
+ url = "https://github.com/saadnpq/matrixcli";
+ rev = "61ebde173ca2f77185c261c2b7f6db297ca89863";
+ sha256 = "0xcjjy2xwlcixr9fwgzcfjjkivqpk104h7dslfa7lz9jq9pzqzvq";
+ fetchSubmodules = true;
+ };
+
+ sdk = buildPythonPackage rec {
+ name = "${pname}-${version}";
+ pname = "matrix-python-sdk-matrixcli";
+ version = "0.0.2019-08-15";
+
+ src = "${mainsrc}/matrix-python-sdk/";
+
+ propagatedBuildInputs = [
+ requests responses olm python-olm canonicaljson
+ pytestrunner pytest
+ ];
+
+ doCheck = false;
+ doInstallCheck = false;
+
+ meta = {
+ license = stdenv.lib.licenses.asl20;
+ description = "Fork of Matrix Python SDK";
+ platforms = stdenv.lib.platforms.linux;
+ };
+ };
+
+in
+buildPythonApplication rec {
+ name = "${pname}-${version}";
+ pname = "matrixcli";
+ version = "0.0.2019-08-15";
+
+ src = mainsrc;
+
+ propagatedBuildInputs = [pygobject3 sdk];
+
+ meta = {
+ description = "CLI client for Matrix";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ homepage = "https://github.com/saadnpq/matrixcli";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
new file mode 100644
index 000000000000..7e63161ff35a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -0,0 +1,98 @@
+{ stdenv, fetchurl, gnome2, gtk3, pango, atk, cairo, gdk-pixbuf, glib,
+freetype, fontconfig, dbus, libX11, xorg, libXi, libXcursor, libXdamage,
+libXrandr, libXcomposite, libXext, libXfixes, libXrender, libXtst,
+libXScrnSaver, nss, nspr, alsaLib, cups, expat, udev, wrapGAppsHook,
+hicolor-icon-theme, libuuid, at-spi2-core, at-spi2-atk }:
+
+let
+ rpath = stdenv.lib.makeLibraryPath [
+ alsaLib
+ at-spi2-atk
+ at-spi2-core
+ atk
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gnome2.GConf
+ gtk3
+ pango
+ libuuid
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXtst
+ nspr
+ nss
+ stdenv.cc.cc
+ udev
+ xorg.libxcb
+ ];
+
+in
+ stdenv.mkDerivation rec {
+ pname = "mattermost-desktop";
+ version = "4.5.2";
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz";
+ sha256 = "0r9xmhzif1ia1m53yr59q6p3niyq3jv3vgv4703x68jmd46f91n6";
+ }
+ else if stdenv.hostPlatform.system == "i686-linux" then
+ fetchurl {
+ url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-ia32.tar.gz";
+ sha256 = "1h8lw06p3cqz9dkgbhfmzcrzjsir5cfhx28xm4zrmvkj4yfzbcnv";
+ }
+ else
+ throw "Mattermost-Desktop is not currently supported on ${stdenv.hostPlatform.system}";
+
+ dontBuild = true;
+ dontConfigure = true;
+ dontPatchELF = true;
+
+ buildInputs = [ wrapGAppsHook gtk3 hicolor-icon-theme ];
+
+ installPhase = ''
+ mkdir -p $out/share/mattermost-desktop
+ cp -R . $out/share/mattermost-desktop
+
+ mkdir -p "$out/bin"
+ ln -s $out/share/mattermost-desktop/mattermost-desktop \
+ $out/bin/mattermost-desktop
+
+ patchShebangs $out/share/mattermost-desktop/create_desktop_file.sh
+ $out/share/mattermost-desktop/create_desktop_file.sh
+ rm $out/share/mattermost-desktop/create_desktop_file.sh
+ mkdir -p $out/share/applications
+ mv Mattermost.desktop $out/share/applications/Mattermost.desktop
+ substituteInPlace \
+ $out/share/applications/Mattermost.desktop \
+ --replace /share/mattermost-desktop/mattermost-desktop /bin/mattermost-desktop
+
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${rpath}:$out/share/mattermost-desktop" \
+ $out/share/mattermost-desktop/mattermost-desktop
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Mattermost Desktop client";
+ homepage = "https://about.mattermost.com/";
+ license = licenses.asl20;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = [ maintainers.joko ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix
new file mode 100644
index 000000000000..23db7d1ce257
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, openssl, ncurses, pkgconfig, glib, loudmouth, libotr
+, gpgme
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mcabber";
+ version = "1.1.2";
+
+ src = fetchurl {
+ url = "https://mcabber.com/files/mcabber-${version}.tar.bz2";
+ sha256 = "0q1i5acyghsmzas88qswvki8kkk2nfpr8zapgnxbcd3lwcxl38f4";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ncurses glib loudmouth libotr gpgme ];
+
+ configureFlags = [
+ "--with-openssl=${openssl.dev}"
+ "--enable-modules"
+ "--enable-otr"
+ ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://mcabber.com/";
+ description = "Small Jabber console client";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pSub ];
+ platforms = with platforms; linux;
+ updateWalker = true;
+ downloadPage = "http://mcabber.com/files/";
+ downloadURLRegexp = "mcabber-[0-9.]+[.]tar[.][a-z0-9]+$";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile
new file mode 100644
index 000000000000..216af305b4ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile
@@ -0,0 +1,39 @@
+alias __source_distinct__ source
+def source(url)
+ @loaded ||= {}
+ unless @loaded[url]
+ @loaded[url] = true
+ __source_distinct__(url) end end
+
+source 'https://rubygems.org'
+
+ruby '>= 2.5.0'
+
+group :default do
+ gem 'addressable','>= 2.7.0', '< 2.8'
+ gem 'delayer','>= 1.0.1', '< 1.1'
+ gem 'delayer-deferred','>= 2.1.1', '< 2.2'
+ gem 'diva','>= 1.0.1', '< 1.1'
+ gem 'memoist','>= 0.16.2', '< 0.17'
+ gem 'oauth','>= 0.5.4'
+ gem 'pluggaloid','>= 1.2.0', '< 1.3'
+ gem 'typed-array','>= 0.1.2', '< 0.2'
+end
+
+group :test do
+ gem 'test-unit','>= 3.3.4', '< 4.0'
+ gem 'rake','>= 13.0.1'
+ gem 'mocha','>= 1.11.1'
+ gem 'webmock','>= 3.7.6'
+ gem 'ruby-prof','>= 1.1.0'
+end
+
+
+group :plugin do
+ Dir.glob(File.expand_path(File.join(__dir__, 'plugin/*/Gemfile'))){ |path|
+ eval File.open(path).read
+ }
+ Dir.glob(File.join(File.expand_path(ENV['MIKUTTER_CONFROOT'] || '~/.mikutter'), 'plugin/*/Gemfile')){ |path|
+ eval File.open(path).read
+ }
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock
new file mode 100644
index 000000000000..63f9a63849b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock
@@ -0,0 +1,103 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ atk (3.4.1)
+ glib2 (= 3.4.1)
+ cairo (1.16.4)
+ native-package-installer (>= 1.0.3)
+ pkg-config (>= 1.2.2)
+ cairo-gobject (3.4.1)
+ cairo (>= 1.16.2)
+ glib2 (= 3.4.1)
+ crack (0.4.3)
+ safe_yaml (~> 1.0.0)
+ delayer (1.0.1)
+ delayer-deferred (2.1.1)
+ delayer (>= 1.0, < 2.0)
+ diva (1.0.1)
+ addressable (>= 2.5.2, < 2.8)
+ gdk_pixbuf2 (3.4.1)
+ gio2 (= 3.4.1)
+ gettext (3.2.9)
+ locale (>= 2.0.5)
+ text (>= 1.3.0)
+ gio2 (3.4.1)
+ gobject-introspection (= 3.4.1)
+ glib2 (3.4.1)
+ native-package-installer (>= 1.0.3)
+ pkg-config (>= 1.3.5)
+ gobject-introspection (3.4.1)
+ glib2 (= 3.4.1)
+ gtk2 (3.4.1)
+ atk (= 3.4.1)
+ gdk_pixbuf2 (= 3.4.1)
+ pango (= 3.4.1)
+ hashdiff (1.0.0)
+ httpclient (2.8.3)
+ instance_storage (1.0.0)
+ io-console (0.5.3)
+ irb (1.2.1)
+ reline (>= 0.0.1)
+ locale (2.1.2)
+ memoist (0.16.2)
+ mini_portile2 (2.4.0)
+ mocha (1.11.1)
+ moneta (1.2.1)
+ native-package-installer (1.0.9)
+ nokogiri (1.10.7)
+ mini_portile2 (~> 2.4.0)
+ oauth (0.5.4)
+ pango (3.4.1)
+ cairo-gobject (= 3.4.1)
+ gobject-introspection (= 3.4.1)
+ pkg-config (1.4.0)
+ pluggaloid (1.2.0)
+ delayer (>= 1.0.0, < 2.0)
+ instance_storage (>= 1.0.0, < 2.0.0)
+ power_assert (1.1.5)
+ public_suffix (4.0.1)
+ rake (13.0.1)
+ reline (0.1.2)
+ io-console (~> 0.5)
+ ruby-prof (1.1.0)
+ safe_yaml (1.0.5)
+ test-unit (3.3.4)
+ power_assert
+ text (1.3.1)
+ typed-array (0.1.2)
+ webmock (3.7.6)
+ addressable (>= 2.3.6)
+ crack (>= 0.3.2)
+ hashdiff (>= 0.4.0, < 2.0.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ addressable (>= 2.7.0, < 2.8)
+ delayer (>= 1.0.1, < 1.1)
+ delayer-deferred (>= 2.1.1, < 2.2)
+ diva (>= 1.0.1, < 1.1)
+ gettext (>= 3.2.9, < 3.3)
+ gtk2 (= 3.4.1)
+ httpclient
+ irb (>= 1.2.0, < 1.3)
+ memoist (>= 0.16.2, < 0.17)
+ mocha (>= 1.11.1)
+ moneta
+ nokogiri
+ oauth (>= 0.5.4)
+ pluggaloid (>= 1.2.0, < 1.3)
+ rake (>= 13.0.1)
+ ruby-prof (>= 1.1.0)
+ test-unit (>= 3.3.4, < 4.0)
+ typed-array (>= 0.1.2, < 0.2)
+ webmock (>= 3.7.6)
+
+RUBY VERSION
+ ruby 2.7.0p0
+
+BUNDLED WITH
+ 2.1.2
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix
new file mode 100644
index 000000000000..5c86157f5023
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, fetchurl
+, bundlerEnv, ruby
+, alsaUtils, libnotify, which, wrapGAppsHook, gtk2, atk, gobject-introspection
+}:
+
+# how to update:
+# find latest version at: http://mikutter.hachune.net/download#download
+# run these commands:
+#
+# wget http://mikutter.hachune.net/bin/mikutter.4.0.0.tar.gz
+# mkdir mikutter
+# cd mikutter
+# tar xvf ../mikutter.4.0.0.tar.gz
+# find . -not -name Gemfile -exec rm {} \;
+# find . -type d -exec rmdir -p --ignore-fail-on-non-empty {} \;
+# cd ..
+# mv mikutter/* .
+# rm mikutter.4.0.0.tar.gz
+# rm gemset.nix Gemfile.lock; nix-shell -p bundler bundix --run 'bundle lock && bundix'
+
+stdenv.mkDerivation rec {
+ pname = "mikutter";
+ version = "4.0.0";
+
+ src = fetchurl {
+ url = "https://mikutter.hachune.net/bin/mikutter.${version}.tar.gz";
+ sha256 = "0nx14vlp7p69m2vw0s6kbiyymsfq0r2jd4nm0v5c4xb9avkpgc8g";
+ };
+
+ buildInputs = [ alsaUtils libnotify which gtk2 ruby atk gobject-introspection ];
+ nativeBuildInputs = [ wrapGAppsHook ];
+
+ unpackPhase = ''
+ mkdir source
+ cd source
+ unpackFile $src
+ rm -rf vendor
+ '';
+
+ installPhase = let
+ env = bundlerEnv {
+ name = "mikutter-${version}-gems";
+ gemdir = ./.;
+
+ inherit ruby;
+ };
+ in ''
+ install -v -D -m644 README $out/share/doc/mikutter/README
+ install -v -D -m644 LICENSE $out/share/doc/mikutter/LICENSE
+ rm -v README LICENSE
+
+ cp -rv . $out
+ mkdir $out/bin/
+ # hack wrapGAppsHook wants a file not a symlink
+ mv $out/mikutter.rb $out/bin/mikutter
+
+ gappsWrapperArgs+=(
+ --prefix PATH : "${ruby}/bin:${alsaUtils}/bin:${libnotify}/bin"
+ --prefix GEM_HOME : "${env}/${env.ruby.gemPath}"
+ --set DISABLE_BUNDLER_SETUP 1
+ )
+ # --prefix GIO_EXTRA_MODULES : "$prefix/lib/gio/modules"
+
+ mkdir -p $out/share/mikutter $out/share/applications
+ ln -sv $out/core/skin $out/share/mikutter/skin
+ substituteAll ${./mikutter.desktop} $out/share/applications/mikutter.desktop
+ '';
+
+ postFixup = ''
+ mv $out/bin/.mikutter-wrapped $out/mikutter.rb
+ substituteInPlace $out/bin/mikutter \
+ --replace "$out/bin/.mikutter-wrapped" "$out/mikutter.rb"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An extensible Twitter client";
+ homepage = "https://mikutter.hachune.net";
+ platforms = ruby.meta.platforms;
+ license = licenses.mit;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix
new file mode 100644
index 000000000000..88ea97be1caf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix
@@ -0,0 +1,422 @@
+{
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ atk = {
+ dependencies = ["glib2"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a8q9a1f6x4gy55p8cf52a22bnpjgn18ad9n959x0f4gybbhs948";
+ type = "gem";
+ };
+ version = "3.4.1";
+ };
+ cairo = {
+ dependencies = ["native-package-installer" "pkg-config"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yvv2lcbsybzbw1nrmfivmln23da4rndrs3av6ymjh0x3ww5h7p8";
+ type = "gem";
+ };
+ version = "1.16.4";
+ };
+ cairo-gobject = {
+ dependencies = ["cairo" "glib2"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gkxdfslcvrwrs48giilji3bgxd5bwijwq33p9h00r10jzfg2028";
+ type = "gem";
+ };
+ version = "3.4.1";
+ };
+ crack = {
+ dependencies = ["safe_yaml"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ delayer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09p4rkh3dpdm1mhq721m4d6zvxqqp44kg7069s8l7kmaf7nv2nb3";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ delayer-deferred = {
+ dependencies = ["delayer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mbdxn1hskjqf3zlj4waxl71ccvbj6lk81c99769paxw4fajwrgx";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ diva = {
+ dependencies = ["addressable"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "182gws1zihhpl7r3m8jsf29maqg9xdhj46s9lidbldar8clpl23h";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ gdk_pixbuf2 = {
+ dependencies = ["gio2"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0194gzn0kialfh0j7crllvp808r64sg6dh297x69b0av21ar5pam";
+ type = "gem";
+ };
+ version = "3.4.1";
+ };
+ gettext = {
+ dependencies = ["locale" "text"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr";
+ type = "gem";
+ };
+ version = "3.2.9";
+ };
+ gio2 = {
+ dependencies = ["gobject-introspection"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l3jpgbdvb55xhcmpkcqgwx5068dfyi8kijfvzhbqh96ng0p1m7g";
+ type = "gem";
+ };
+ version = "3.4.1";
+ };
+ glib2 = {
+ dependencies = ["native-package-installer" "pkg-config"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18clyn0fp0h5alnkf9i2bqd6wvl78h468pdbzs1csqnba8vw4q1c";
+ type = "gem";
+ };
+ version = "3.4.1";
+ };
+ gobject-introspection = {
+ dependencies = ["glib2"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a3x8qiisbax3x0izj8l5w66r53ba5ma53ax2jhdbhbvaxx3d02n";
+ type = "gem";
+ };
+ version = "3.4.1";
+ };
+ gtk2 = {
+ dependencies = ["atk" "gdk_pixbuf2" "pango"];
+ groups = ["plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17az8g0n1yzz90kdbjg2hpabi04qccda7v6lin76bs637ivfg2md";
+ type = "gem";
+ };
+ version = "3.4.1";
+ };
+ hashdiff = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18jqpbvidrlnq3xf0hkdbs00607jgz35lry6gjw4bcxgh52am2mk";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ httpclient = {
+ groups = ["plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+ type = "gem";
+ };
+ version = "2.8.3";
+ };
+ instance_storage = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08nf5fhq9dckq9lmaklxydq0hrlfi7phk66gr3bggxg45zd687pl";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ io-console = {
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0srn91ly4cc5qvyj3r87sc7v8dnm52qj1hczzxmysib6ffparngd";
+ type = "gem";
+ };
+ version = "0.5.3";
+ };
+ irb = {
+ dependencies = ["reline"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r1y8i46qd5izdszzzn5jxvwvq00m89rk0hm8cs8f21p7nlwmh5w";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ locale = {
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+ memoist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55";
+ type = "gem";
+ };
+ version = "0.16.2";
+ };
+ mini_portile2 = {
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ mocha = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06i2q5qjr9mvjgjc8w41pdf3qalw340y33wjvzc0rp4a1cbbb7pp";
+ type = "gem";
+ };
+ version = "1.11.1";
+ };
+ moneta = {
+ groups = ["plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q7fskfdc0h5dhl8aamg3ypybd6cyl4x0prh4803gj7hxr17jfm1";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ native-package-installer = {
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0piclgf6pw7hr10x57x0hn675djyna4sb3xc97yb9vh66wkx1fl0";
+ type = "gem";
+ };
+ version = "1.0.9";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r0qpgf80h764k176yr63gqbs2z0xbsp8vlvs2a79d5r9vs83kln";
+ type = "gem";
+ };
+ version = "1.10.7";
+ };
+ oauth = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+ type = "gem";
+ };
+ version = "0.5.4";
+ };
+ pango = {
+ dependencies = ["cairo-gobject" "gobject-introspection"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d0cn50qgpifrcv8qx72wi6l9xalw3ryngbfmm9xpg9vx5rl1qbp";
+ type = "gem";
+ };
+ version = "3.4.1";
+ };
+ pkg-config = {
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cxdpr2wlz9b587avlq04a1da5fz1vdw8jvr6lx23mcq7mqh2xcx";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ pluggaloid = {
+ dependencies = ["delayer" "instance_storage"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gv0rjjdic8c41gfr3kyyphvf0fmv5rzcf6qd57zjdfcn6fvi3hh";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ power_assert = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dii0wkfa0jm8sk9b20zl1z4980dmrjh0zqnii058485pp3ws10s";
+ type = "gem";
+ };
+ version = "1.1.5";
+ };
+ public_suffix = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
+ type = "gem";
+ };
+ version = "4.0.1";
+ };
+ rake = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+ type = "gem";
+ };
+ version = "13.0.1";
+ };
+ reline = {
+ dependencies = ["io-console"];
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0908ijrngc3wkn5iny7d0kxkp74w6ixk2nwzzngplplfla1vkp8x";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ ruby-prof = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18ga5f4h1fnwn0xh910kpnw4cg3lq3jqljd3h16bdw9pgc5ff7dn";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ safe_yaml = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ test-unit = {
+ dependencies = ["power_assert"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mrkpb6wz0cs1740kaca240k4ymmkbvb2v5xaxsy6vynqw8n0g6z";
+ type = "gem";
+ };
+ version = "3.3.4";
+ };
+ text = {
+ groups = ["default" "plugin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ typed-array = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qlv2rnkin9rwkgjx3k5qvc17m0m7jf5cdirw3wxbjnw5kga27w9";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ webmock = {
+ dependencies = ["addressable" "crack" "hashdiff"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19xvs7gdf8r75bmyb17w9g367qxzqnlrmbdda1y36cn1vrlnf2l8";
+ type = "gem";
+ };
+ version = "3.7.6";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop
new file mode 100644
index 000000000000..092f5f35cbf8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=mikutter
+Comment=Twitter Client
+Type=Application
+Exec=@out@/bin/mikutter
+Icon=@out@/core/skin/data/icon.png
+Terminal=false
+Categories=Network;
+Keywords=Twitter;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile
new file mode 100644
index 000000000000..3306c29e3cbf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile
@@ -0,0 +1,4 @@
+source 'https://rubygems.org'
+
+gem 'gtk2', '3.4.1'
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile
new file mode 100644
index 000000000000..f86005fef078
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile
@@ -0,0 +1 @@
+gem 'moneta'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile
new file mode 100644
index 000000000000..66016eee9c46
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile
@@ -0,0 +1,4 @@
+source 'https://rubygems.org'
+
+gem 'nokogiri'
+gem 'httpclient'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile
new file mode 100644
index 000000000000..14ebffd4e0ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile
@@ -0,0 +1,6 @@
+source 'https://rubygems.org'
+
+group :default do
+ gem 'gettext', '>= 3.2.9', '< 3.3'
+ gem 'irb', '>= 1.2.0', '< 1.3'
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix
new file mode 100644
index 000000000000..0aa2dbf889bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix
@@ -0,0 +1,57 @@
+{ lib, mkDerivation, fetchFromGitHub
+, qmake, pkgconfig, olm, wrapQtAppsHook
+, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qttools, qtgraphicaleffects
+, python3Packages, pyotherside
+}:
+
+let
+ pypkgs = with python3Packages; [
+ aiofiles filetype matrix-nio appdirs cairosvg
+ pymediainfo setuptools html-sanitizer mistune blist
+ pyotherside
+ ];
+in
+mkDerivation rec {
+ pname = "mirage";
+ version = "0.5.2";
+
+ src = fetchFromGitHub {
+ owner = "mirukana";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0i891fafdncdz1xg6nji80jb86agsrbdvai9nwf1yy126q7piryv";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig qmake wrapQtAppsHook python3Packages.wrapPython ];
+
+ buildInputs = [
+ qtbase qtmultimedia
+ qtquickcontrols2
+ qtkeychain qtgraphicaleffects
+ olm pyotherside
+ ];
+
+ propagatedBuildInputs = pypkgs;
+
+ pythonPath = pypkgs;
+
+ qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ dontWrapQtApps = true;
+ postInstall = ''
+ buildPythonPath "$out $pythonPath"
+ wrapProgram $out/bin/mirage \
+ --prefix PYTHONPATH : "$PYTHONPATH" \
+ "''${qtWrapperArgs[@]}"
+ '';
+
+ meta = with lib; {
+ description = "A fancy, customizable, keyboard-operable Qt/QML+Python Matrix chat client for encrypted and decentralized communication";
+ homepage = "https://github.com/mirukana/mirage";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ colemickens ];
+ inherit (qtbase.meta) platforms;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix
new file mode 100644
index 000000000000..a9306a751ac8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoModule, fetchgit }:
+
+buildGoModule {
+ pname = "mm";
+ version = "2020.11.17";
+
+ src = fetchgit {
+ url = "https://git.lost.host/meutraa/mm.git";
+ rev = "e5fa8eeb845aac8f28fc36013ee8a1dbe1e5710c";
+ sha256 = "sha256-SdD4EE/rc85H7xqKB/kU8XFsC63i1sVObPha/zrxFGk=";
+ };
+
+ vendorSha256 = "sha256-zJJ9PzQShv2iRNyCg1XVscbwjV9ZtMIojJDtXXm3rVM=";
+
+ meta = with stdenv.lib; {
+ description = "A file system based matrix client";
+ homepage = "https://git.lost.host/meutraa/mm";
+ license = licenses.isc;
+ maintainers = with maintainers; [ meutraa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
new file mode 100644
index 000000000000..2f5316c9fe27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, cmark
+, lmdb
+, lmdbxx
+, tweeny
+, mkDerivation
+, qtbase
+, qtmacextras
+, qtmultimedia
+, qttools
+, qtquickcontrols2
+, qtgraphicaleffects
+, mtxclient
+, boost17x
+, spdlog
+, olm
+, pkgconfig
+, nlohmann_json
+}:
+
+mkDerivation rec {
+ pname = "nheko";
+ version = "0.7.2";
+
+ src = fetchFromGitHub {
+ owner = "Nheko-Reborn";
+ repo = "nheko";
+ rev = "v${version}";
+ sha256 = "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s";
+ };
+
+ nativeBuildInputs = [
+ lmdbxx
+ cmake
+ pkgconfig
+ ];
+
+ buildInputs = [
+ nlohmann_json
+ tweeny
+ mtxclient
+ olm
+ boost17x
+ lmdb
+ spdlog
+ cmark
+ qtbase
+ qtmultimedia
+ qttools
+ qtquickcontrols2
+ qtgraphicaleffects
+ ] ++ lib.optional stdenv.isDarwin qtmacextras;
+
+ meta = with stdenv.lib; {
+ description = "Desktop client for the Matrix protocol";
+ homepage = "https://github.com/Nheko-Reborn/nheko";
+ maintainers = with maintainers; [ ekleog fpletz ];
+ platforms = platforms.all;
+ # Should be fixable if a higher clang version is used, see:
+ # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619287177
+ broken = stdenv.targetPlatform.isDarwin;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix
new file mode 100644
index 000000000000..e3595e07a788
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, perl, perlPackages, coreutils,
+fetchFromGitHub, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "oysttyer";
+ version = "2.10.0";
+
+ src = fetchFromGitHub {
+ owner = "oysttyer";
+ repo = "oysttyer";
+ rev = version;
+ sha256 = "0cm1hvi68iqgjsg15xdii271pklgzjn9j9afb1c460z71kgy3wz2";
+ };
+
+ buildInputs = [
+ perl
+ makeWrapper
+ ];
+
+ propagatedBuildInputs = with perlPackages; [
+ DateTimeFormatDateParse
+ TermReadLineTTYtter
+ TermReadKey
+ ];
+
+ installPhase = ''
+ ${coreutils}/bin/install -Dm755 \
+ oysttyer.pl \
+ $out/bin/oysttyer
+
+ wrapProgram $out/bin/oysttyer \
+ --prefix PERL5LIB : $PERL5LIB
+ '';
+
+ meta = with lib; {
+ inherit version;
+ description = "Perl Console Twitter Client";
+ homepage = "http://oysttyer.github.io/";
+ maintainers = with maintainers; [ woffs ];
+ license = with licenses; [ ffsl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
new file mode 100644
index 000000000000..9c99741823aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
@@ -0,0 +1,64 @@
+{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
+ attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
+ prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
+ setuptools,
+
+ pytest, faker, pytest-aiohttp, aioresponses,
+
+ enableDbusUi ? true
+}:
+
+buildPythonApplication rec {
+ pname = "pantalaimon";
+ version = "0.8.0";
+
+ disabled = pythonOlder "3.6";
+
+ # pypi tarball miss tests
+ src = fetchFromGitHub {
+ owner = "matrix-org";
+ repo = pname;
+ rev = version;
+ sha256 = "0n86cdpw85qzlcr1ynvar0f0zbphmdz1jia9r75lmj07iw4r5hk9";
+ };
+
+ propagatedBuildInputs = [
+ aiohttp
+ appdirs
+ attrs
+ click
+ janus
+ keyring
+ Logbook
+ matrix-nio
+ peewee
+ prompt_toolkit
+ setuptools
+ ] ++ lib.optional enableDbusUi [
+ dbus-python
+ notify2
+ pygobject3
+ pydbus
+ ];
+
+ checkInputs = [
+ pytest
+ faker
+ pytest-aiohttp
+ aioresponses
+ ];
+
+ # darwin has difficulty communicating with server, fails some integration tests
+ doCheck = !stdenv.isDarwin;
+
+ checkPhase = ''
+ pytest
+ '';
+
+ meta = with lib; {
+ description = "An end-to-end encryption aware Matrix reverse proxy daemon";
+ homepage = "https://github.com/matrix-org/pantalaimon";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ valodim ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
new file mode 100644
index 000000000000..7c2150a584fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, libxml2, pidgin, pkgconfig, fetchFromGitHub } :
+
+stdenv.mkDerivation rec {
+ pname = "pidgin-carbons";
+ version = "0.2.2";
+
+ src = fetchFromGitHub {
+ owner = "gkdr";
+ repo = "carbons";
+ rev = "v${version}";
+ sha256 = "1aq9bwgpmbwrigq6ywf0pjkngqcm0qxncygaj1fi57npjhcjs6ln";
+ };
+
+ makeFlags = [ "PURPLE_PLUGIN_DIR=$(out)/lib/pidgin" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libxml2 pidgin ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/gkdr/carbons";
+ description = "XEP-0280: Message Carbons plugin for libpurple";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix
new file mode 100644
index 000000000000..eccb8de31e59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pidgin} :
+
+stdenv.mkDerivation {
+ name = "pidgin-msn-pecan-0.1.4";
+ src = fetchurl {
+ url = "http://msn-pecan.googlecode.com/files/msn-pecan-0.1.4.tar.bz2";
+ sha256 = "0d43z2ay9is1r2kkc9my8pz0fwdyzv7k19vdmbird18lg7rlbjd2";
+ };
+
+ meta = {
+ description = "Alternative MSN protocol plug-in for Pidgin IM";
+ homepage = "https://github.com/felipec/msn-pecan";
+ platforms = stdenv.lib.platforms.linux;
+ };
+
+ makeFlags = [
+ "PURPLE_LIBDIR=${placeholder "out"}/lib"
+ "PURPLE_DATADIR=${placeholder "out"}/share/data"
+ ];
+
+ buildInputs = [pidgin];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix
new file mode 100644
index 000000000000..bdc16d101f55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, libotr, pidgin, intltool } :
+
+stdenv.mkDerivation rec {
+ name = "pidgin-otr-4.0.2";
+ src = fetchurl {
+ url = "http://www.cypherpunks.ca/otr/${name}.tar.gz";
+ sha256 = "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl";
+ };
+
+ postInstall = "ln -s \$out/lib/pidgin \$out/share/pidgin-otr";
+
+ buildInputs = [ libotr pidgin intltool ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://otr.cypherpunks.ca/";
+ description = "Plugin for Pidgin 2.x which implements OTR Messaging";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix
new file mode 100644
index 000000000000..1fd248e0c89d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, pidgin, texLive, imagemagick, glib, gtk2 }:
+
+let version = "1.5.0";
+in
+stdenv.mkDerivation {
+ pname = "pidgin-latex";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/pidgin-latex/pidgin-latex_${version}.tar.bz2";
+ sha256 = "9c850aee90d7e59de834f83e09fa6e3e51b123f06e265ead70957608ada95441";
+ };
+
+ nativeBuildInputs = [pkgconfig];
+ buildInputs = [gtk2 glib pidgin];
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postPatch = ''
+ sed -e 's/-Wl,-soname//' -i Makefile
+ '';
+
+ passthru = {
+ wrapArgs = "--prefix PATH ':' ${stdenv.lib.makeBinPath [ texLive imagemagick ]}";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/projects/pidgin-latex/";
+ description = "LaTeX rendering plugin for Pidgin IM";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix
new file mode 100644
index 000000000000..13e165ad7a13
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, pkgconfig, pidgin } :
+
+let
+ version = "54b2992";
+in
+stdenv.mkDerivation {
+ pname = "pidgin-mra";
+ inherit version;
+
+ src = fetchgit {
+ url = "https://github.com/dreadatour/pidgin-mra";
+ rev = version;
+ sha256 = "1adq57g11kw7bfpivyvfk3nlpjkc8raiw4bzn3gn4nx3m0wl99vw";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ pidgin ];
+
+ postPatch = ''
+ sed -i 's|-I/usr/include/libpurple|$(shell pkg-config --cflags purple)|' Makefile
+ '';
+
+ makeFlags = [
+ "DESTDIR=/"
+ "LIBDIR=${placeholder "out"}/lib"
+ "DATADIR=${placeholder "out"}/share"
+ ];
+
+ meta = {
+ homepage = "https://github.com/dreadatour/pidgin-mra";
+ description = "Mail.ru Agent plugin for Pidgin / libpurple";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
new file mode 100644
index 000000000000..067a71a93dd5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, pkgconfig, pidgin, glib, json-glib, nss, nspr
+, libsecret
+} :
+
+stdenv.mkDerivation rec {
+ pname = "pidgin-opensteamworks";
+ version = "1.7";
+
+ src = fetchFromGitHub {
+ owner = "EionRobb";
+ repo = "pidgin-opensteamworks";
+ rev = version;
+ sha256 = "0zxd45g9ycw5kmm4i0800jnqg1ms2gbqcld6gkyv6n3ac1wxizpj";
+ };
+
+ sourceRoot = "source/steam-mobile";
+
+ installFlags = [
+ "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2"
+ "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+ buildInputs = [
+ pidgin glib json-glib nss nspr libsecret
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/EionRobb/pidgin-opensteamworks";
+ description = "Plugin for Pidgin 2.x which implements Steam Friends/Steam IM compatibility";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ arobyn ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix
new file mode 100644
index 000000000000..bf9979c19f25
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, pidgin, xosd
+, autoreconfHook } :
+
+stdenv.mkDerivation rec {
+ name = "pidgin-osd-0.2.0";
+ src = fetchFromGitHub {
+ owner = "edanaher";
+ repo = "pidgin-osd";
+ rev = name;
+ sha256 = "07wa9anz99hnv6kffpcph3fbq8mjbyq17ij977ggwgw37zb9fzb5";
+ };
+
+ # autoreconf is run such that it *really* wants all the files, and there's no
+ # default ChangeLog. So make it happy.
+ preAutoreconf = "touch ChangeLog";
+
+ postInstall = ''
+ mkdir -p $out/lib/pidgin
+ mv $out/lib/pidgin-osd.{la,so} $out/lib/pidgin
+ '';
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ xosd pidgin ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mbroemme/pidgin-osd";
+ description = "Plugin for Pidgin which implements on-screen display via libxosd";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix
new file mode 100644
index 000000000000..72309e3479fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, pkgconfig, pidgin, json-glib }:
+
+stdenv.mkDerivation rec {
+ pname = "pidgin-skypeweb";
+ version = "1.7";
+
+ src = fetchFromGitHub {
+ owner = "EionRobb";
+ repo = "skype4pidgin";
+ rev = version;
+ sha256 = "11snyrjhm58gjvdmr5h5ajii3ah4a7c8zw3cavjv9xnnwrpfm5rb";
+ };
+
+ setSourceRoot = ''
+ sourceRoot=$(echo */skypeweb)
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ pidgin json-glib ];
+
+ PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2";
+ PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/EionRobb/skype4pidgin";
+ description = "SkypeWeb plugin for Pidgin";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix
new file mode 100644
index 000000000000..463b6326b5a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, pidgin } :
+
+let
+ version = "0.8";
+in
+stdenv.mkDerivation {
+ pname = "pidgin-xmpp-receipts";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "noonien-d";
+ repo = "pidgin-xmpp-receipts";
+ rev = "release_${version}";
+ sha256 = "13kwaymzkymjsdv8q95byd173i4vanj211vgx9cm0y8ag2r3cjsb";
+ };
+
+ buildInputs = [ pidgin ];
+
+ installPhase = ''
+ mkdir -p $out/lib/pidgin/
+ cp xmpp-receipts.so $out/lib/pidgin/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://devel.kondorgulasch.de/pidgin-xmpp-receipts/";
+ description = "Message delivery receipts (XEP-0184) Pidgin plugin";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ orivej ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
new file mode 100644
index 000000000000..0322005ae935
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pkgconfig, pidgin, json-glib }:
+
+stdenv.mkDerivation {
+ pname = "purple-discord";
+ version = "unstable-2018-04-10";
+
+ src = fetchFromGitHub {
+ owner = "EionRobb";
+ repo = "purple-discord";
+ rev = "9a97886d15a1f028de54b5e6fc54e784531063b0";
+ sha256 = "0dc344zh1v4yh9c8javcw5ylzwc1wpx0ih8bww8p8cjmhr8kcl32";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ pidgin json-glib ];
+
+ PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2";
+ PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/EionRobb/purple-discord";
+ description = "Discord plugin for Pidgin";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ sna ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix
new file mode 100644
index 000000000000..cff1bcc56b92
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, fetchhg, pidgin, glib, json-glib, autoreconfHook }:
+
+
+let
+ pidginHg = fetchhg {
+ url = "https://bitbucket.org/pidgin/main";
+ # take from VERSION file
+ rev = "9ff9acf9fa14";
+ sha256 = "06imlhsps4wrjgjb92zpaxprxfxl2pjb2x9pl859c8cryssrz2jv";
+ };
+
+in stdenv.mkDerivation rec {
+ name = "purple-facebook-0.9.5";
+
+ src = fetchFromGitHub {
+ owner = "dequis";
+ repo = "purple-facebook";
+ rev = "v0.9.5-9ff9acf9fa14";
+ sha256 = "0a1860bkzrmyxahm9rlxi80z335w491wzdaqaw6j9ccavbymhwhs";
+ };
+
+ postPatch = ''
+ # we do all patching from update.sh in preAutoreconf
+ echo "#!${stdenv.shell}" > update.sh
+ '';
+
+ preAutoreconf = ''
+ for FILE in $(cat MANIFEST_PIDGIN); do
+ install -Dm644 "${pidginHg}/$FILE" "pidgin/$FILE" || true
+ done
+
+ touch $(cat MANIFEST_VOIDS)
+
+ patchdir="$(pwd)/patches"
+ pushd pidgin
+
+ for patch in $(ls -1 "$patchdir"); do
+ patch -p1 -i "$patchdir/$patch"
+ done
+ popd
+
+ ./autogen.sh
+ '';
+
+ makeFlags = [
+ "PLUGIN_DIR_PURPLE=/lib/pidgin/"
+ "DATA_ROOT_DIR_PURPLE=/share"
+ ];
+
+ installPhase = ''
+ mkdir -p $out/lib/purple-2
+ cp pidgin/libpurple/protocols/facebook/.libs/*.so $out/lib/purple-2/
+ '';
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ pidgin glib json-glib ];
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Facebook protocol plugin for libpurple";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ davorb ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix
new file mode 100644
index 000000000000..204d99f6d7ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchhg, pidgin, glib, json-glib, protobuf, protobufc }:
+
+stdenv.mkDerivation {
+ pname = "purple-hangouts-hg";
+ version = "2018-12-02";
+
+ src = fetchhg {
+ url = "https://bitbucket.org/EionRobb/purple-hangouts/";
+ rev = "cccf2f6";
+ sha256 = "1zd1rlzqvw1zkb0ydyz039n3xa1kv1f20a4l6rkm9a8sp6rpf3pi";
+ };
+
+ buildInputs = [ pidgin glib json-glib protobuf protobufc ];
+
+ PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2";
+ PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share";
+
+ meta = with stdenv.lib; {
+ homepage = "https://bitbucket.org/EionRobb/purple-hangouts";
+ description = "Native Hangouts support for pidgin";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ralith ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
new file mode 100644
index 000000000000..0a6aa1a133d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, pidgin, minixml, libxml2, sqlite, libgcrypt }:
+
+stdenv.mkDerivation rec {
+ pname = "purple-lurch";
+ version = "0.6.7";
+
+ src = fetchFromGitHub {
+ owner = "gkdr";
+ repo = "lurch";
+ rev = "v${version}";
+ sha256 = "029jjqinsfhpv0zgji3sv1cyk54fn9qp176fwy97d1clf0vflxrz";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ pidgin minixml libxml2 sqlite libgcrypt ];
+
+ dontUseCmakeConfigure = true;
+
+ installPhase = ''
+ install -Dm755 -t $out/lib/purple-2 build/lurch.so
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/gkdr/lurch";
+ description = "XEP-0384: OMEMO Encryption for libpurple";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ emmanuelrosa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
new file mode 100644
index 000000000000..4ded2ce1d0bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, pkgconfig, pidgin, json-glib, glib, http-parser, sqlite, olm, libgcrypt } :
+
+stdenv.mkDerivation rec {
+ pname = "purple-matrix-unstable";
+ version = "2019-06-06";
+
+ src = fetchFromGitHub {
+ owner = "matrix-org";
+ repo = "purple-matrix";
+ rev = "4494ba22b479917f0b1f96a3019792d3d75bcff1";
+ sha256 = "1gjm0z4wa5vi9x1xk43rany5pffrwg958n180ahdj9a7sa8a4hpm";
+ };
+
+ NIX_CFLAGS_COMPILE = builtins.toString [
+ # glib-2.62 deprecations
+ "-DGLIB_DISABLE_DEPRECATION_WARNINGS"
+ # override "-O0 -Werror" set by build system
+ "-O3" "-Wno-error"
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ pidgin json-glib glib http-parser sqlite olm libgcrypt ];
+
+ makeFlags = [
+ "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2"
+ "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
+ ];
+
+ buildFlags = [ "CC=cc" ]; # fix build on darwin
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/matrix-org/purple-matrix";
+ description = "Matrix support for Pidgin / libpurple";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix
new file mode 100644
index 000000000000..6739befbfea4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pidgin, intltool, python } :
+
+stdenv.mkDerivation rec {
+ name = "purple-plugin-pack-2.7.0";
+ src = fetchurl {
+ url = "https://bitbucket.org/rekkanoryo/purple-plugin-pack/downloads/${name}.tar.bz2";
+ sha256 = "0g5hmy7fwgjq59j52h9yps28jsjjrfkd4r18gyx6hfd3g3kzbg1b";
+ };
+
+ buildInputs = [ pidgin intltool python ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://bitbucket.org/rekkanoryo/purple-plugin-pack";
+ description = "Plugin pack for Pidgin 2.x";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ bdimcheff ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix
new file mode 100644
index 000000000000..5b3a1564aebf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pidgin, pkgconfig }:
+
+stdenv.mkDerivation {
+ pname = "purple-slack-unstable";
+ version = "2020-09-22";
+
+ src = fetchFromGitHub {
+ owner = "dylex";
+ repo = "slack-libpurple";
+ rev = "2e9fa028224b02e29473b1b998fc1e5f487e79ec";
+ sha256 = "1sksqshiwldd32k8jmiflp2pcax31ym6rypr4qa4v5vdn907g80m";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ pidgin ];
+
+ PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2";
+ PKG_CONFIG_PURPLE_DATAROOTDIR = "${placeholder "out"}/share";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/dylex/slack-libpurple";
+ description = "Slack plugin for Pidgin";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ eyjhb ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix
new file mode 100644
index 000000000000..76b242659e7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchhg, pidgin, cmake, libxml2 } :
+
+let
+ version = "40ddb6d";
+in
+stdenv.mkDerivation {
+ pname = "purple-vk-plugin";
+ inherit version;
+
+ src = fetchhg {
+ url = "https://bitbucket.org/olegoandreev/purple-vk-plugin";
+ rev = version;
+ sha256 = "02p57fgx8ml00cbrb4f280ak2802svz80836dzk9f1zwm1bcr2qc";
+ };
+
+ buildInputs = [ pidgin cmake libxml2 ];
+
+ preConfigure = ''
+ sed -i -e 's|DESTINATION.*PURPLE_PLUGIN_DIR}|DESTINATION lib/purple-2|' CMakeLists.txt
+ '';
+
+ cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT=1" ];
+
+ meta = {
+ homepage = "https://bitbucket.org/olegoandreev/purple-vk-plugin";
+ description = "Vk (russian social network) plugin for Pidgin / libpurple";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix
new file mode 100644
index 000000000000..3277e12ec086
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, pidgin, glib, libxml2 }:
+
+stdenv.mkDerivation {
+ name = "purple-xmpp-upload-2017-12-31";
+
+ src = fetchgit {
+ url = "https://github.com/Junker/purple-xmpp-http-upload";
+ rev = "178096cbfc9df165c2dc1677666439969d212b37";
+ sha256 = "12l9rqlgb4i50xxrfnvwz9sqfk0d3c0m6l09mnvfixqi8illyvlp";
+ };
+
+ buildInputs = [ pidgin glib libxml2 ];
+
+ installPhase = ''
+ install -Dm644 -t $out/lib/purple-2 jabber_http_file_upload.so
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Junker/purple-xmpp-http-upload";
+ description = "HTTP File Upload plugin for libpurple (XMPP Protocol XEP-0363)";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ emmanuelrosa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
new file mode 100644
index 000000000000..3d1a6ac534c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pidgin, intltool, libxml2, gmime, nss }:
+
+stdenv.mkDerivation rec {
+ pname = "pidgin-sipe";
+ version = "1.25.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz";
+ sha256 = "0262sz00iqxylx0xfyr48xikhiqzr8pg7b4b7vwj5iv4qxpxv939";
+ };
+
+ nativeBuildInputs = [ intltool ];
+ buildInputs = [ pidgin gmime libxml2 nss ];
+ enableParallelBuilding = true;
+
+ postInstall = "ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe";
+
+ meta = with stdenv.lib; {
+ description = "SIPE plugin for Pidgin IM";
+ homepage = "http://sipe.sourceforge.net/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix
new file mode 100644
index 000000000000..253d2ddfe24a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, pidgin, libnotify, gdk-pixbuf, glib, dbus
+, dbus-glib }:
+
+stdenv.mkDerivation rec {
+ name = "skype4pidgin-novas0x2a-20120411-6c53f7c48f";
+ src = fetchurl {
+ url = "https://github.com/novas0x2a/skype4pidgin/tarball/6c53f7c48f";
+ name = "${name}.tar.gz";
+ sha256 = "116jfh5ravaixivqx4a4bz0lbb9c49d5r83nwmripja56zdbpgr0";
+ };
+
+ NIX_CFLAGS_COMPILE = "-I${libnotify}/include/libnotify";
+
+ patchPhase = ''
+ sed -i -e 's/ [^ ]*-gcc/ gcc/' -e 's/-march[^ ]*//' \
+ -e 's/GLIB_CFLAGS =.*/GLIB_CFLAGS=`pkg-config --cflags glib-2.0 gdk-pixbuf-2.0 libnotify purple dbus-glib-1`/' Makefile
+ pkg-config --cflags glib-2.0 gdk-pixbuf-2.0 libnotify
+ '';
+
+ buildPhase = "make libskype.so libskype_dbus.so";
+
+ installPhase = ''
+ mkdir -p $out/pixmaps/pidgin/protocols/{16,22,48} $out/bin $out/lib/pidgin
+ cp icons/16/skypeout.png $out/pixmaps/pidgin/protocols/16
+ cp icons/22/skypeout.png $out/pixmaps/pidgin/protocols/22
+ cp icons/48/skypeout.png $out/pixmaps/pidgin/protocols/48
+ cp libskype.so libskype_dbus.so $out/lib/pidgin
+ '';
+
+ postInstall = "ln -s \$out/lib/pidgin \$out/share/pidgin-otr";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ pidgin libnotify gdk-pixbuf glib dbus dbus-glib ];
+
+ meta = {
+ homepage = "https://github.com/novas0x2a/skype4pidgin";
+ license = stdenv.lib.licenses.gpl3Plus;
+ description = "Plugin to use a running skype account through pidgin";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix
new file mode 100644
index 000000000000..38424ca25979
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchgit, pkgconfig, pidgin, libwebp, libgcrypt, gettext } :
+
+let
+ version = "1.3.1";
+in
+stdenv.mkDerivation rec {
+ pname = "telegram-purple";
+ inherit version;
+
+ src = fetchgit {
+ url = "https://github.com/majn/telegram-purple";
+ rev = "v${version}";
+ sha256 = "0p93jpjpx7hszwffzgixw04zkrpsiyzz4za3gfr4j07krc4771fp";
+ };
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=cast-function-type";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ pidgin libwebp libgcrypt gettext ];
+
+ preConfigure = ''
+ sed -i "s|/etc/telegram-purple/server.tglpub|$out/lib/purple-2/server.tglpub|g" telegram-purple.c
+ echo "#define GIT_COMMIT \"${builtins.substring 0 10 src.rev}\"" > commit.h
+ '';
+
+ installPhase = ''
+ mkdir -p $out/lib/purple-2/
+ cp bin/*.so $out/lib/purple-2/ #*/
+ cp tg-server.tglpub $out/lib/purple-2/server.tglpub
+ mkdir -p $out/pixmaps/pidgin/protocols/{16,22,48}
+ cp imgs/telegram16.png $out/pixmaps/pidgin/protocols/16
+ cp imgs/telegram22.png $out/pixmaps/pidgin/protocols/22
+ cp imgs/telegram48.png $out/pixmaps/pidgin/protocols/48
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/majn/telegram-purple";
+ description = "Telegram for Pidgin / libpurple";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.jagajaga ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix
new file mode 100644
index 000000000000..de48ee26a6ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libtoxcore, pidgin, autoreconfHook, libsodium }:
+
+stdenv.mkDerivation rec {
+ pname = "tox-prpl";
+ version = "0.5.1";
+
+ src = fetchFromGitHub {
+ owner = "jin-eld";
+ repo = "tox-prpl";
+ rev = "v${version}";
+ sha256 = "0ms367l2f7x83k407c93bmhpyc820f1css61fh2gx4jq13cxqq3p";
+ };
+
+ NIX_LDFLAGS = "-lssp -lsodium";
+
+ postInstall = "mv $out/lib/purple-2 $out/lib/pidgin";
+
+ buildInputs = [ libtoxcore pidgin libsodium ];
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jin-eld/tox-prpl";
+ description = "Tox plugin for Pidgin / libpurple";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix
new file mode 100644
index 000000000000..f576f2ad9c3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pidgin } :
+
+stdenv.mkDerivation rec {
+ pname = "pidgin-window-merge";
+ version = "0.3";
+
+ src = fetchurl {
+ url = "https://github.com/downloads/dm0-/window_merge/window_merge-${version}.tar.gz";
+ sha256 = "0cb5rvi7jqvm345g9mlm4wpq0240kcybv81jpw5wlx7hz0lwi478";
+ };
+
+ buildInputs = [ pidgin ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/dm0-/window_merge";
+ description = "Pidgin plugin that merges the Buddy List window with a conversation window";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch
new file mode 100644
index 000000000000..b0758777186a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch
@@ -0,0 +1,20 @@
+diff --git a/libpurple/plugin.c b/libpurple/plugin.c
+index 4f2b402..fda9add 100644
+--- a/libpurple/plugin.c
++++ b/libpurple/plugin.c
+@@ -1181,8 +1181,15 @@ purple_plugins_get_handle(void) {
+ void
+ purple_plugins_init(void) {
+ void *handle = purple_plugins_get_handle();
++ gchar **paths, **p;
+
+ purple_plugins_add_search_path(LIBDIR);
++ paths = g_strsplit(g_getenv("PURPLE_PLUGIN_PATH"), ":", -1);
++ if (paths) {
++ for (p = paths; *p; ++p)
++ if (**p) purple_plugins_add_search_path(*p);
++ }
++ g_strfreev(paths);
+
+ purple_signal_register(handle, "plugin-load",
+ purple_marshal_VOID__POINTER,
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
new file mode 100644
index 000000000000..a269eead708a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk2, gtk2-x11
+, gtkspell2, aspell
+, gst_all_1, startupnotification, gettext
+, perlPackages, libxml2, nss, nspr, farstream
+, libXScrnSaver, ncurses, avahi, dbus, dbus-glib, intltool, libidn
+, lib, python, libICE, libXext, libSM
+, cyrus_sasl ? null
+, openssl ? null
+, gnutls ? null
+, libgcrypt ? null
+, plugins, symlinkJoin
+}:
+
+# FIXME: clean the mess around choosing the SSL library (nss by default)
+
+let unwrapped = stdenv.mkDerivation rec {
+ pname = "pidgin";
+ majorVersion = "2";
+ version = "${majorVersion}.13.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.bz2";
+ sha256 = "13vdqj70315p9rzgnbxjp9c51mdzf1l4jg1kvnylc4bidw61air7";
+ };
+
+ inherit nss ncurses;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0";
+
+ buildInputs = [
+ aspell startupnotification
+ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+ libxml2 nss nspr
+ libXScrnSaver ncurses python
+ avahi dbus dbus-glib intltool libidn
+ libICE libXext libSM cyrus_sasl
+ ]
+ ++ (lib.optional (openssl != null) openssl)
+ ++ (lib.optional (gnutls != null) gnutls)
+ ++ (lib.optional (libgcrypt != null) libgcrypt)
+ ++ (lib.optionals (stdenv.isLinux) [gtk2 gtkspell2 farstream])
+ ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
+
+
+ propagatedBuildInputs = [ pkgconfig gettext ]
+ ++ (with perlPackages; [ perl XMLParser ])
+ ++ (lib.optional (stdenv.isLinux) gtk2)
+ ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
+
+ patches = [ ./pidgin-makefile.patch ./add-search-path.patch ];
+
+ configureFlags = [
+ "--with-nspr-includes=${nspr.dev}/include/nspr"
+ "--with-nspr-libs=${nspr.out}/lib"
+ "--with-nss-includes=${nss.dev}/include/nss"
+ "--with-nss-libs=${nss.out}/lib"
+ "--with-ncurses-headers=${ncurses.dev}/include"
+ "--disable-meanwhile"
+ "--disable-nm"
+ "--disable-tcl"
+ ]
+ ++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ])
+ ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"])
+ ++ (lib.optionals (stdenv.isDarwin) ["--disable-gtkspell" "--disable-vv"]);
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ wrapProgram $out/bin/pidgin \
+ --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Multi-protocol instant messaging client";
+ homepage = "http://pidgin.im";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.vcunat ];
+ };
+};
+
+in if plugins == [] then unwrapped
+ else import ./wrapper.nix {
+ inherit makeWrapper symlinkJoin plugins;
+ pidgin = unwrapped;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch
new file mode 100644
index 000000000000..049d404a8d5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch
@@ -0,0 +1,64 @@
+diff --git a/pidgin/Makefile.am b/pidgin/Makefile.am
+index 84d927b..1467c19 100644
+--- a/pidgin/Makefile.am
++++ b/pidgin/Makefile.am
+@@ -151,6 +151,7 @@ pidgin_LDADD = \
+ $(GLIB_LIBS) \
+ $(DBUS_LIBS) \
+ $(GSTREAMER_LIBS) \
++ $(GSTINTERFACES_LIBS) \
+ $(GSTVIDEO_LIBS) \
+ $(XSS_LIBS) \
+ $(SM_LIBS) \
+@@ -171,6 +172,7 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ $(GLIB_CFLAGS) \
+ $(GSTREAMER_CFLAGS) \
++ $(GSTINTERFACES_CFLAGS) \
+ $(DEBUG_CFLAGS) \
+ $(GTK_CFLAGS) \
+ $(DBUS_CFLAGS) \
+diff --git a/pidgin/Makefile.in b/pidgin/Makefile.in
+index 0d51e25..dd5d879 100644
+--- a/pidgin/Makefile.in
++++ b/pidgin/Makefile.in
+@@ -703,6 +703,7 @@ EXTRA_DIST = \
+ @ENABLE_GTK_TRUE@ $(GLIB_LIBS) \
+ @ENABLE_GTK_TRUE@ $(DBUS_LIBS) \
+ @ENABLE_GTK_TRUE@ $(GSTREAMER_LIBS) \
++@ENABLE_GTK_TRUE@ $(GSTINTERFACES_LIBS) \
+ @ENABLE_GTK_TRUE@ $(GSTVIDEO_LIBS) \
+ @ENABLE_GTK_TRUE@ $(XSS_LIBS) \
+ @ENABLE_GTK_TRUE@ $(SM_LIBS) \
+@@ -723,6 +724,7 @@ EXTRA_DIST = \
+ @ENABLE_GTK_TRUE@ -I$(top_srcdir) \
+ @ENABLE_GTK_TRUE@ $(GLIB_CFLAGS) \
+ @ENABLE_GTK_TRUE@ $(GSTREAMER_CFLAGS) \
++@ENABLE_GTK_TRUE@ $(GSTINTERFACES_CFLAGS) \
+ @ENABLE_GTK_TRUE@ $(DEBUG_CFLAGS) \
+ @ENABLE_GTK_TRUE@ $(GTK_CFLAGS) \
+ @ENABLE_GTK_TRUE@ $(DBUS_CFLAGS) \
+diff --git a/pidgin/plugins/Makefile.am b/pidgin/plugins/Makefile.am
+index 3bb8c22..6d1e869 100644
+--- a/pidgin/plugins/Makefile.am
++++ b/pidgin/plugins/Makefile.am
+@@ -145,6 +145,7 @@ AM_CPPFLAGS = \
+ $(GTK_CFLAGS) \
+ $(UNITY_CFLAGS) \
+ $(GSTREAMER_CFLAGS) \
++ $(GSTINTERFACES_CFLAGS) \
+ $(PLUGIN_CFLAGS)
+
+ #
+diff --git a/pidgin/plugins/Makefile.in b/pidgin/plugins/Makefile.in
+index 82a34aa..1f7db00 100644
+--- a/pidgin/plugins/Makefile.in
++++ b/pidgin/plugins/Makefile.in
+@@ -781,6 +781,7 @@ AM_CPPFLAGS = \
+ $(GTK_CFLAGS) \
+ $(UNITY_CFLAGS) \
+ $(GSTREAMER_CFLAGS) \
++ $(GSTINTERFACES_CFLAGS) \
+ $(PLUGIN_CFLAGS)
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
new file mode 100644
index 000000000000..095f838fe981
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
@@ -0,0 +1,20 @@
+{ symlinkJoin, pidgin, makeWrapper, plugins }:
+
+let
+extraArgs = map (x: x.wrapArgs or "") plugins;
+in symlinkJoin {
+ name = "pidgin-with-plugins-${pidgin.version}";
+
+ paths = [ pidgin ] ++ plugins;
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/pidgin \
+ --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin" \
+ ${toString extraArgs}
+ wrapProgram $out/bin/finch \
+ --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion}" \
+ ${toString extraArgs}
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix
new file mode 100644
index 000000000000..8dc70d6d7921
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonApplication, fetchFromGitHub, pythonOlder
+, pytest, aiodns, slixmpp, pyinotify, potr, mpd2, cffi, pkgconfig, setuptools }:
+buildPythonApplication rec {
+ pname = "poezio";
+ version = "0.13.1";
+
+ disabled = pythonOlder "3.4";
+
+ checkInputs = [ pytest ];
+ propagatedBuildInputs = [ aiodns slixmpp pyinotify potr mpd2 cffi setuptools ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy";
+ };
+
+ checkPhase = ''
+ pytest
+ '';
+
+ meta = with lib; {
+ description = "Free console XMPP client";
+ homepage = "https://poez.io";
+ license = licenses.mit;
+ maintainers = [ maintainers.lsix ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix
new file mode 100644
index 000000000000..1d70c9641f8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildGoPackage, trousers, dclxvi, wrapGAppsHook, pkgconfig, gtk3, gtkspell3,
+ fetchgit }:
+
+let
+ gui = true; # Might be implemented with nixpkgs config.
+in
+buildGoPackage rec {
+ pname = "pond";
+ version = "20150830-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "bce6e0dc61803c23699c749e29a83f81da3c41b2";
+
+ goPackagePath = "github.com/agl/pond";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/agl/pond";
+ sha256 = "1dmgbg4ak3jkbgmxh0lr4hga1nl623mh7pvsgby1rxl4ivbzwkh4";
+ };
+
+ goDeps = ./deps.nix;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ trousers gtk3 gtkspell3 ]
+ ++ stdenv.lib.optional stdenv.hostPlatform.isx86_64 dclxvi
+ ++ stdenv.lib.optionals gui [ wrapGAppsHook ];
+ buildFlags = stdenv.lib.optionals (!gui) [ "-tags" "nogui" ];
+ excludedPackages = "\\(appengine\\|bn256cgo\\)";
+ postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isx86_64 ''
+ grep -r 'bn256' | awk -F: '{print $1}' | xargs sed -i \
+ -e "s,golang.org/x/crypto/bn256,github.com/agl/pond/bn256cgo,g" \
+ -e "s,bn256\.,bn256cgo.,g"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix
new file mode 100644
index 000000000000..55850f0a89c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix
@@ -0,0 +1,47 @@
+[
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6";
+ sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa";
+ };
+ }
+ {
+ goPackagePath = "github.com/agl/ed25519";
+ fetch = {
+ type = "git";
+ url = "https://github.com/agl/ed25519";
+ rev = "278e1ec8e8a6e017cd07577924d6766039146ced";
+ sha256 = "165d89cc6dl28j4hkn86pny0jz3sa6hamzdvpvwdj4iha3x6lzc9";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/protobuf";
+ rev = "59b73b37c1e45995477aae817e4a653c89a858db";
+ sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4";
+ sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p";
+ };
+ }
+ {
+ goPackagePath = "github.com/agl/go-gtk";
+ fetch = {
+ type = "git";
+ url = "https://github.com/agl/go-gtk";
+ rev = "91c1edb38c241d73129e6b098ca1c9fa83abfc15";
+ sha256 = "156ixlhakpqgyp35rsvmndrqz8aggv5bcmzg9ynpri3b9j6kim4d";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
new file mode 100644
index 000000000000..4dfca92f39f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, glib, openssl
+, glibcLocales, expect, ncurses, libotr, curl, readline, libuuid
+, cmocka, libmicrohttpd, expat, sqlite, libmesode, fetchpatch
+, autoconf-archive
+
+, autoAwaySupport ? true, libXScrnSaver ? null, libX11 ? null
+, notifySupport ? true, libnotify ? null, gdk-pixbuf ? null
+, traySupport ? true, gnome2 ? null
+, pgpSupport ? true, gpgme ? null
+, pythonPluginSupport ? true, python ? null
+, omemoSupport ? true, libsignal-protocol-c ? null, libgcrypt ? null
+}:
+
+assert autoAwaySupport -> libXScrnSaver != null && libX11 != null;
+assert notifySupport -> libnotify != null && gdk-pixbuf != null;
+assert traySupport -> gnome2 != null;
+assert pgpSupport -> gpgme != null;
+assert pythonPluginSupport -> python != null;
+assert omemoSupport -> libsignal-protocol-c != null && libgcrypt != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "profanity";
+ version = "0.9.5";
+
+ src = fetchFromGitHub {
+ owner = "profanity-im";
+ repo = "profanity";
+ rev = version;
+ sha256 = "14vbblf639f90bb4npg2xv53cpvk9am9ic4pmc1vnv4m3zsndjg5";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/profanity-im/profanity/commit/54667c022f17bdb547c3b8b4eec1c2889c9d60f3.patch";
+ sha256 = "0aqrq45im1qnq308hyhh7dqbggzmcqb0b868wr5v8v08pd94s45k";
+ })
+ ./patches/packages-osx.patch
+ ];
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [
+ autoreconfHook autoconf-archive glibcLocales pkgconfig
+ ];
+
+ buildInputs = [
+ expect readline libuuid glib openssl expat ncurses libotr
+ curl libmesode cmocka libmicrohttpd sqlite
+ ] ++ optionals autoAwaySupport [ libXScrnSaver libX11 ]
+ ++ optionals notifySupport [ libnotify gdk-pixbuf ]
+ ++ optionals traySupport [ gnome2.gtk ]
+ ++ optionals pgpSupport [ gpgme ]
+ ++ optionals pythonPluginSupport [ python ]
+ ++ optionals omemoSupport [ libsignal-protocol-c libgcrypt ];
+
+ # Enable feature flags, so that build fail if libs are missing
+ configureFlags = [ "--enable-c-plugins" "--enable-otr" ]
+ ++ optionals notifySupport [ "--enable-notifications" ]
+ ++ optionals traySupport [ "--enable-icons" ]
+ ++ optionals pgpSupport [ "--enable-pgp" ]
+ ++ optionals pythonPluginSupport [ "--enable-python-plugins" ]
+ ++ optionals omemoSupport [ "--enable-omemo" ];
+
+ preAutoreconf = ''
+ mkdir m4
+ '';
+
+ doCheck = true;
+
+ LC_ALL = "en_US.utf8";
+
+ meta = {
+ description = "A console based XMPP client";
+ longDescription = ''
+ Profanity is a console based XMPP client written in C using ncurses and
+ libstrophe, inspired by Irssi.
+ '';
+ homepage = "http://www.profanity.im/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.devhell ];
+ updateWalker = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch
new file mode 100644
index 000000000000..796ec6b0a615
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index 5c00aca..eb78060 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -23,7 +23,6 @@ PLATFORM="unknown"
+ AS_CASE([$host_os],
+ [freebsd*], [PLATFORM="freebsd"],
+ [openbsd*], [PLATFORM="openbsd"],
+- [darwin*], [PLATFORM="osx"],
+ [cygwin], [PLATFORM="cygwin"],
+ [PLATFORM="nix"])
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
new file mode 100644
index 000000000000..1112a3215c9d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake
+, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine
+, libidn, qca-qt5, libsecret, libXScrnSaver, hunspell
+, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c
+}:
+
+mkDerivation rec {
+ pname = "psi-plus";
+ version = "1.4.1473";
+
+ src = fetchFromGitHub {
+ owner = "psi-plus";
+ repo = "psi-plus-snapshots";
+ rev = version;
+ sha256 = "03f28zwbjn6fnsm0fqg8lmc11rpfdfvzjf7k7xydc3lzy8pxbds5";
+ };
+
+ cmakeFlags = [
+ "-DENABLE_PLUGINS=ON"
+ ];
+
+ nativeBuildInputs = [ cmake qttools ];
+
+ buildInputs = [
+ qtbase qtmultimedia qtx11extras qtwebengine
+ libidn qca-qt5 libsecret libXScrnSaver hunspell
+ libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c
+ ];
+
+ meta = with lib; {
+ homepage = "https://sourceforge.net/projects/psiplus/";
+ description = "XMPP (Jabber) client";
+ maintainers = with maintainers; [ orivej misuzu ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
new file mode 100644
index 000000000000..08c3ab96210f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
@@ -0,0 +1,33 @@
+{ lib, mkDerivation, fetchFromGitHub, cmake
+, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine
+, libidn, qca-qt5, libXScrnSaver, hunspell
+}:
+
+mkDerivation rec {
+ pname = "psi";
+ version = "1.5";
+ src = fetchFromGitHub {
+ owner = "psi-im";
+ repo = pname;
+ rev = version;
+ sha256 = "hXDZODHl14kimRlMQ1XjISQ2kk9NS78axVN3U21wkuM=";
+ fetchSubmodules = true;
+ };
+ patches = [
+ ./fix-cmake-hunspell-1.7.patch
+ ];
+ nativeBuildInputs = [ cmake qttools ];
+ buildInputs = [
+ qtbase qtmultimedia qtx11extras qtwebengine
+ libidn qca-qt5 libXScrnSaver hunspell
+ ];
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ homepage = "https://psi-im.org";
+ description = "An XMPP (Jabber) client";
+ maintainers = [ maintainers.raskin ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch
new file mode 100644
index 000000000000..7d5711a6f2bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch
@@ -0,0 +1,12 @@
+diff --git a/cmake/modules/FindHunspell.cmake b/cmake/modules/FindHunspell.cmake
+index a2d180b3..3a5aef3a 100644
+--- a/cmake/modules/FindHunspell.cmake
++++ b/cmake/modules/FindHunspell.cmake
+@@ -64,6 +64,7 @@ set(HUNSPELL_NAMES
+ hunspell-1.4
+ hunspell-1.5
+ hunspell-1.6
++ hunspell-1.7
+ libhunspell${d}
+ )
+ find_library(
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix
new file mode 100644
index 000000000000..d76b8dd206e4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, python2Packages, openssl }:
+
+python2Packages.buildPythonApplication rec {
+ pname = "pybitmessage";
+
+ version = "0.6.3.2";
+
+ src = fetchFromGitHub {
+ owner = "bitmessage";
+ repo = "PyBitmessage";
+ rev = version;
+ sha256 = "1lmhbpwsqh1v93krlqqhafw2pc3y0qp8zby186yllbph6s8kdp35";
+ };
+
+ propagatedBuildInputs = with python2Packages; [ msgpack pyqt4 numpy pyopencl setuptools ] ++ [ openssl ];
+
+ preConfigure = ''
+ # Remove interaction and misleading output
+ substituteInPlace setup.py \
+ --replace "nothing = raw_input()" pass \
+ --replace 'print "It looks like building the package failed.\n" \' pass \
+ --replace ' "You may be missing a C++ compiler and the OpenSSL headers."' pass \
+ --replace 'msgpack-python' 'msgpack'
+
+ substituteInPlace src/pyelliptic/openssl.py \
+ --replace "libdir.append(find_library('ssl'))" "libdir.append('${openssl.out}/lib/libssl.so')"
+
+ substituteInPlace src/depends.py \
+ --replace "ctypes.util.find_library('ssl')" "'${openssl.out}/lib/libssl.so'"
+
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://bitmessage.org/";
+ description = "The official Bitmessage client";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jgillich ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
new file mode 100644
index 000000000000..952182def26d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
+, libtoxcore
+, libpthreadstubs, libXdmcp, libXScrnSaver
+, qtbase, qtsvg, qttools, qttranslations
+, ffmpeg_3, filter-audio, libexif, libsodium, libopus
+, libvpx, openal, pcre, qrencode, sqlcipher
+, AVFoundation ? null }:
+
+let
+ version = "1.17.3";
+ rev = "v${version}";
+
+in mkDerivation {
+ pname = "qtox";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "qTox";
+ repo = "qTox";
+ sha256 = "19xgw9bqirxbgvj5cdh20qxh61pkwk838lq1l78n6py1qrs7z5wp";
+ inherit rev;
+ };
+
+ buildInputs = [
+ libtoxcore
+ libpthreadstubs libXdmcp libXScrnSaver
+ qtbase qtsvg qttranslations
+ ffmpeg_3 filter-audio libexif libopus libsodium
+ libvpx openal pcre qrencode sqlcipher
+ ] ++ lib.optionals stdenv.isDarwin [ AVFoundation] ;
+
+ nativeBuildInputs = [ cmake pkgconfig qttools ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [
+ "-DGIT_DESCRIBE=${rev}"
+ "-DENABLE_STATUSNOTIFIER=False"
+ "-DENABLE_GTK_SYSTRAY=False"
+ "-DENABLE_APPINDICATOR=False"
+ "-DTIMESTAMP=1"
+ ];
+
+ meta = with lib; {
+ description = "Qt Tox client";
+ homepage = "https://tox.chat";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ akaWolf peterhoeg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix
new file mode 100644
index 000000000000..c031615a90bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -0,0 +1,47 @@
+{ mkDerivation, stdenv, lib, fetchFromGitHub, cmake
+, qtbase, qtquickcontrols, qtquickcontrols2, qtkeychain, qtmultimedia, qttools
+, libquotient, libsecret
+}:
+
+mkDerivation rec {
+ pname = "quaternion";
+ version = "0.0.9.4e";
+
+ src = fetchFromGitHub {
+ owner = "QMatrixClient";
+ repo = "Quaternion";
+ rev = version;
+ sha256 = "0hqhg7l6wpkdbzrdjvrbqymmahziri07ba0hvbii7dd2p0h248fv";
+ };
+
+ buildInputs = [
+ qtbase
+ qtmultimedia
+ qtquickcontrols
+ qtquickcontrols2
+ qtkeychain
+ libquotient
+ libsecret
+ ];
+
+ nativeBuildInputs = [ cmake qttools ];
+
+ postInstall = if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ mv $out/bin/quaternion.app $out/Applications
+ rmdir $out/bin || :
+ '' else ''
+ substituteInPlace $out/share/applications/com.github.quaternion.desktop \
+ --replace 'Exec=quaternion' "Exec=$out/bin/quaternion"
+ '';
+
+ meta = with lib; {
+ description =
+ "Cross-platform desktop IM client for the Matrix protocol";
+ homepage = "https://matrix.org/docs/projects/client/quaternion.html";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ inherit (qtbase.meta) platforms;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
new file mode 100644
index 000000000000..cc9fab4d3752
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, lib, fetchurl, xdg_utils, dpkg, makeWrapper, autoPatchelfHook
+, libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify, wrapGAppsHook
+}:
+
+let
+ version = "0.7.7";
+in stdenv.mkDerivation rec {
+ pname = "rambox";
+ inherit version;
+ src = {
+ x86_64-linux = fetchurl {
+ url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-amd64.deb";
+ sha256 = "0bij4f1bkg94gc8pq7r6yfym5zcvwc2ymdnmnmh5m4h1pa1gk6x9";
+ };
+ i686-linux = fetchurl {
+ url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.deb";
+ sha256 = "1nhgqjha10jvyf9nsghvlkibg7byj8qz140639ygag9qlpd51rfs";
+ };
+ }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+
+ nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ];
+ buildInputs = [ libXtst libXScrnSaver gtk3 nss alsaLib ];
+ runtimeDependencies = [ (lib.getLib udev) libnotify ];
+
+ unpackPhase = "dpkg-deb -x $src .";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -r opt $out
+ ln -s $out/opt/Rambox/rambox $out/bin
+
+ # provide resources
+ cp -r usr/share $out
+ substituteInPlace $out/share/applications/rambox.desktop \
+ --replace Exec=/opt/Rambox/rambox Exec=rambox
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : ${xdg_utils}/bin
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Free and Open Source messaging and emailing app that combines common web applications into one";
+ homepage = "https://rambox.pro";
+ license = licenses.mit;
+ maintainers = with maintainers; [ gnidorah ma27 ];
+ platforms = ["i686-linux" "x86_64-linux"];
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix
new file mode 100644
index 000000000000..d39091d4618e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix
@@ -0,0 +1,56 @@
+{ autoPatchelfHook, electron_4, fetchurl, makeDesktopItem, makeWrapper, nodePackages, nss, stdenv, xdg_utils, xorg }:
+
+let
+ electron = electron_4;
+in
+stdenv.mkDerivation rec {
+ pname = "rambox-pro";
+ version = "1.3.2";
+
+ dontBuild = true;
+ dontStrip = true;
+
+ buildInputs = [ nss xorg.libXext xorg.libxkbfile xorg.libXScrnSaver ];
+ nativeBuildInputs = [ autoPatchelfHook makeWrapper nodePackages.asar ];
+
+ src = fetchurl {
+ url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz";
+ sha256 = "010v5i8lxfz77cb5cn9va5cbnfa28nzdymk5k2fcpi65jldw1pxx";
+ };
+
+ installPhase = ''
+ mkdir -p $out/{bin,resources/dist/renderer/assets/images/app,share/applications,share/icons/hicolor/256x256/apps}
+
+ asar e resources/app.asar $out/resources
+
+ substituteInPlace "$out/resources/dist/electron/main.js" \
+ --replace ",isHidden:" ",path:\"$out/bin/ramboxpro\",isHidden:"
+
+ cp $desktopItem/share/applications/* $out/share/applications
+ cp $out/resources/dist/electron/imgs/256x256.png $out/share/icons/hicolor/256x256/apps/ramboxpro.png
+ cp $out/resources/dist/electron/imgs/256x256.png $out/resources/dist/renderer/assets/images/app/icon.png
+ '';
+
+ postFixup = ''
+ makeWrapper ${electron}/bin/electron $out/bin/ramboxpro \
+ --add-flags "$out/resources --without-update" \
+ --prefix PATH : ${xdg_utils}/bin
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "rambox-pro";
+ exec = "ramboxpro";
+ icon = "ramboxpro";
+ type = "Application";
+ desktopName = "Rambox Pro";
+ categories = "Network;";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Messaging and emailing app that combines common web applications into one";
+ homepage = "https://rambox.pro";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ chrisaw ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix
new file mode 100644
index 000000000000..212ba3a31a4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, libtoxcore
+, conf ? null }:
+
+with stdenv.lib;
+
+let
+ configFile = optionalString (conf!=null) (builtins.toFile "config.h" conf);
+
+in stdenv.mkDerivation {
+ name = "ratox-0.4.20180303";
+
+ src = fetchgit {
+ url = "git://git.2f30.org/ratox.git";
+ rev = "269f7f97fb374a8f9c0b82195c21de15b81ddbbb";
+ sha256 = "0bpn37h8jvsqd66fkba8ky42nydc8acawa5x31yxqlxc8mc66k74";
+ };
+
+ buildInputs = [ libtoxcore ];
+
+ preConfigure = ''
+ substituteInPlace config.mk \
+ --replace '-lsodium -lopus -lvpx ' ""
+
+ ${optionalString (conf!=null) "cp ${configFile} config.def.h"}
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = {
+ description = "FIFO based tox client";
+ homepage = "http://ratox.2f30.org/";
+ license = licenses.isc;
+ maintainers = with maintainers; [ ehmry ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix
new file mode 100644
index 000000000000..de46c891d1fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix
@@ -0,0 +1,59 @@
+{ mkDerivation, stdenv, fetchurl, pkgconfig, makeDesktopItem
+, qtbase, qttools, qtmultimedia, qtquick1, qtquickcontrols
+, openssl, protobuf, qmake
+}:
+
+mkDerivation rec {
+ pname = "ricochet";
+ version = "1.1.4";
+
+ src = fetchurl {
+ url = "https://github.com/ricochet-im/ricochet/archive/v${version}.tar.gz";
+ sha256 = "1kfj42ksvj7axc809lb8siqzj5hck2pib427b63a3ipnqc5h1faf";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "ricochet";
+ exec = "ricochet";
+ icon = "ricochet";
+ desktopName = "Ricochet";
+ genericName = "Ricochet";
+ comment = meta.description;
+ categories = "Office;Email;";
+ };
+
+ buildInputs = [
+ qtbase qttools qtmultimedia qtquick1 qtquickcontrols
+ openssl protobuf
+ ];
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+
+ preConfigure = ''
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags openssl)"
+ '';
+
+ qmakeFlags = [ "DEFINES+=RICOCHET_NO_PORTABLE" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ricochet $out/bin
+
+ mkdir -p $out/share/applications
+ cp $desktopItem/share/applications"/"* $out/share/applications
+
+ mkdir -p $out/share/pixmaps
+ cp icons/ricochet.png $out/share/pixmaps/ricochet.png
+ '';
+
+ # RCC: Error in 'translation/embedded.qrc': Cannot find file 'ricochet_en.qm'
+ enableParallelBuilding = false;
+
+ meta = with stdenv.lib; {
+ description = "Anonymous peer-to-peer instant messaging";
+ homepage = "https://ricochet.im";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.codsl maintainers.jgillich maintainers.np ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
new file mode 100644
index 000000000000..4a95debdfd10
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
@@ -0,0 +1,150 @@
+{ stdenv
+, fetchgit
+, which
+, autoreconfHook
+, pkgconfig
+, automake
+, libtool
+, pjsip
+, libyamlcpp
+, alsaLib
+, libpulseaudio
+, libsamplerate
+, libsndfile
+, dbus
+, dbus_cplusplus
+, ffmpeg_3
+, udev
+, pcre
+, gsm
+, speex
+, boost
+, opendht
+, msgpack
+, gnutls
+, zlib
+, jsoncpp
+, xorg
+, libargon2
+, cryptopp
+, openssl
+, perl
+, python3
+, libupnp
+, speexdsp
+, fetchFromGitHub
+, cmake
+, asio
+}:
+
+let
+ myPython = python3.withPackages (ps: with ps; [
+ pygobject3
+ dbus-python
+ ]);
+
+ src = fetchgit {
+ url = "https://gitlab.savoirfairelinux.com/ring/ring-daemon.git";
+ rev = "006b8dc7be08fe9beb68709af71004e7bc1ceb5c";
+ sha256 = "0ih9g0rismrhx6nqcy3jqfbcs166grg0shnfmrnmykl9h0xy8z47";
+ };
+
+ patchdir = "${src}/contrib/src";
+
+ restbed = import ./restbed.nix {
+ inherit stdenv fetchFromGitHub cmake asio openssl;
+ patches = [
+ "${patchdir}/restbed/CMakeLists.patch"
+ "${patchdir}/restbed/strand.patch"
+ "${patchdir}/restbed/uri_cpp.patch"
+ "${patchdir}/restbed/dns-resolution-error.patch"
+ "${patchdir}/restbed/string.patch"
+ ];
+ };
+
+ pjsip' = stdenv.lib.overrideDerivation pjsip (old: {
+ patches = [
+ "${patchdir}/pjproject/gnutls.patch"
+ ./notestsapps.patch # this one had to be modified
+ "${patchdir}/pjproject/fix_base64.patch"
+ "${patchdir}/pjproject/ipv6.patch"
+ "${patchdir}/pjproject/ice_config.patch"
+ "${patchdir}/pjproject/multiple_listeners.patch"
+ "${patchdir}/pjproject/pj_ice_sess.patch"
+ "${patchdir}/pjproject/fix_turn_fallback.patch"
+ "${patchdir}/pjproject/fix_ioqueue_ipv6_sendto.patch"
+ "${patchdir}/pjproject/add_dtls_transport.patch"
+ ];
+ CFLAGS = "-g -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=150 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000";
+ });
+in
+stdenv.mkDerivation {
+ pname = "ring-daemon";
+ version = "2017-07-11";
+
+ inherit src;
+
+ nativeBuildInputs = [
+ which
+ autoreconfHook
+ automake
+ libtool
+ pkgconfig
+ ];
+
+ buildInputs = [
+ pjsip'
+ libyamlcpp
+ alsaLib
+ libpulseaudio
+ libsamplerate
+ libsndfile
+ dbus
+ dbus_cplusplus
+ ffmpeg_3
+ udev
+ pcre
+ gsm
+ speex
+ boost
+ opendht
+ msgpack
+ gnutls
+ zlib
+ jsoncpp
+ restbed
+ xorg.libX11
+ libargon2
+ cryptopp
+ openssl
+ perl
+ libupnp
+ speexdsp
+ ];
+
+ postInstall = ''
+ mkdir $out/bin
+ ln -s $out/lib/ring/dring $out/bin/dring
+ cp -R ./tools/dringctrl/ $out/
+ substitute ./tools/dringctrl/dringctrl.py $out/dringctrl/dringctrl.py \
+ --replace '#!/usr/bin/env python3' "#!${myPython}/bin/python3"
+ chmod +x $out/dringctrl/dringctrl.py
+ ln -s $out/dringctrl/dringctrl.py $out/bin/dringctrl.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Voice-over-IP software phone";
+ longDescription = ''
+ As the SIP/audio daemon and the user interface are separate processes, it
+ is easy to provide different user interfaces. GNU Ring comes with various
+ graphical user interfaces and even scripts to control the daemon from the
+ shell.
+ '';
+ homepage = "https://ring.cx";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ taeer olynch ];
+ platforms = platforms.linux;
+ # pjsip' fails to compile with the supplied patch set, see: https://hydra.nixos.org/build/68667921/nixlog/4
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch
new file mode 100644
index 000000000000..842060935b04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch
@@ -0,0 +1,106 @@
+/* diff --git a/Makefile b/Makefile */
+/* index 33a4e6b..a486eb7 100644 */
+/* --- a/Makefile */
+/* +++ b/Makefile */
+/* @@ -4,7 +4,7 @@ include build/host-$(HOST_NAME).mak */
+/* include version.mak */
+
+/* LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build */
+/* -DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS) */
+/* +DIRS = $(LIB_DIRS) $(EXTRA_DIRS) */
+
+/* ifdef MINSIZE */
+/* MAKE_FLAGS := MINSIZE=1 */
+diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile
+index cb601cb..862a78a 100644
+--- a/pjlib-util/build/Makefile
++++ b/pjlib-util/build/Makefile
+@@ -54,7 +54,6 @@ export UTIL_TEST_OBJS += xml.o encryption.o stun.o resolver_test.o test.o \
+ export UTIL_TEST_CFLAGS += $(_CFLAGS)
+ export UTIL_TEST_CXXFLAGS += $(_CXXFLAGS)
+ export UTIL_TEST_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
+-export UTIL_TEST_EXE:=pjlib-util-test-$(TARGET_NAME)$(HOST_EXE)
+
+
+ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
+diff --git a/pjlib/build/Makefile b/pjlib/build/Makefile
+index 1e64950..a75fa65 100644
+--- a/pjlib/build/Makefile
++++ b/pjlib/build/Makefile
+@@ -56,7 +56,6 @@ export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \
+ export TEST_CFLAGS += $(_CFLAGS)
+ export TEST_CXXFLAGS += $(_CXXFLAGS)
+ export TEST_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS)
+-export TEST_EXE := pjlib-test-$(TARGET_NAME)$(HOST_EXE)
+
+
+ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
+diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile
+index 8012cb7..2ca283a 100644
+--- a/pjmedia/build/Makefile
++++ b/pjmedia/build/Makefile
+@@ -165,7 +165,6 @@ export PJMEDIA_TEST_LDFLAGS += $(PJMEDIA_CODEC_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(PJNATH_LDLIB) \
+ $(_LDFLAGS)
+-export PJMEDIA_TEST_EXE:=pjmedia-test-$(TARGET_NAME)$(HOST_EXE)
+
+
+ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
+diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile
+index 1bc08b5..109f79b 100644
+--- a/pjnath/build/Makefile
++++ b/pjnath/build/Makefile
+@@ -54,7 +54,6 @@ export PJNATH_TEST_OBJS += ice_test.o stun.o sess_auth.o server.o concur_test.o
+ export PJNATH_TEST_CFLAGS += $(_CFLAGS)
+ export PJNATH_TEST_CXXFLAGS += $(_CXXFLAGS)
+ export PJNATH_TEST_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
+-export PJNATH_TEST_EXE:=pjnath-test-$(TARGET_NAME)$(HOST_EXE)
+
+
+ ###############################################################################
+@@ -65,7 +64,6 @@ export PJTURN_CLIENT_OBJS += client_main.o
+ export PJTURN_CLIENT_CFLAGS += $(_CFLAGS)
+ export PJTURN_CLIENT_CXXFLAGS += $(_CXXFLAGS)
+ export PJTURN_CLIENT_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
+-export PJTURN_CLIENT_EXE:=pjturn-client-$(TARGET_NAME)$(HOST_EXE)
+
+ ###############################################################################
+ # Defines for building TURN server application
+@@ -76,7 +74,6 @@ export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o \
+ export PJTURN_SRV_CFLAGS += $(_CFLAGS)
+ export PJTURN_SRV_CXXFLAGS += $(_CXXFLAGS)
+ export PJTURN_SRV_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
+-export PJTURN_SRV_EXE:=pjturn-srv-$(TARGET_NAME)$(HOST_EXE)
+
+
+
+diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile
+index d2a5c2a..7e2ec60 100644
+--- a/pjsip/build/Makefile
++++ b/pjsip/build/Makefile
+@@ -140,7 +140,7 @@ export PJSUA2_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
+ account.o endpoint.o json.o persistent.o types.o \
+ siptypes.o call.o presence.o media.o
+ export PJSUA2_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
+-export PJSUA2_LIB_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
++export PJSUA2_LIB_CXXFLAGS = $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS)
+ export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB_LDLIB) \
+ $(PJSIP_UA_LDLIB) \
+ $(PJSIP_SIMPLE_LDLIB) \
+@@ -165,7 +165,6 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
+ export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
+ export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
+ export PJSUA2_TEST_LDFLAGS += $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(LDFLAGS)
+-export PJSUA2_TEST_EXE := pjsua2-test-$(TARGET_NAME)$(HOST_EXE)
+
+ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
+
+@@ -195,7 +194,6 @@ export TEST_LDFLAGS += $(PJSIP_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(PJNATH_LDLIB) \
+ $(_LDFLAGS)
+-export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE)
+
+
+ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix
new file mode 100644
index 000000000000..775b9015eb0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, asio
+, openssl
+, patches
+}:
+
+stdenv.mkDerivation {
+ pname = "restbed";
+ version = "2016-09-15";
+
+ src = fetchFromGitHub {
+ owner = "Corvusoft";
+ repo = "restbed";
+ rev = "34187502642144ab9f749ab40f5cdbd8cb17a54a";
+ sha256 = "1jb38331fcicyiisqdprhq6zwfc6g518fm3l4qw9aiv5k9nqim22";
+ };
+
+ inherit patches;
+
+ buildInputs = [
+ cmake
+ asio
+ openssl
+ ];
+
+ meta = with stdenv.lib; {
+ description = "HTTP framework for building networked applications";
+ longDescription = ''
+ HTTP framework for building networked applications that require seamless
+ and secure communication, with the flexability to model a range of
+ business processes. Targeting mobile, tablet, desktop, and embedded
+ production environments.
+ '';
+ homepage = "https://corvusoft.co.uk/";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ taeer ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
new file mode 100755
index 000000000000..9055b51d9756
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -0,0 +1,70 @@
+{ lib, mkDerivation, fetchurl, makeFontsConf, appimageTools,
+ qtbase, qtsvg, qtmultimedia, qtwebsockets, qtimageformats,
+ autoPatchelfHook, desktop-file-utils, imagemagick, makeWrapper,
+ twemoji-color-font, xorg, libsodium, libopus, libGL, zlib, alsaLib }:
+
+mkDerivation rec {
+ pname = "ripcord";
+ version = "0.4.26";
+
+ src = let
+ appimage = fetchurl {
+ url = "https://cancel.fm/dl/Ripcord-${version}-x86_64.AppImage";
+ sha256 = "0i9l21gyqga27ainzqp6icn8vbc22v1knq01pglgg1lg3p504ikq";
+ name = "${pname}-${version}.AppImage";
+ };
+ in appimageTools.extract {
+ name = "${pname}-${version}";
+ src = appimage;
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook desktop-file-utils imagemagick ];
+ buildInputs = [ libsodium libopus libGL alsaLib ] ++
+ [ qtbase qtsvg qtmultimedia qtwebsockets qtimageformats ] ++
+ (with xorg; [ libX11 libXScrnSaver libXcursor xkeyboardconfig ]);
+
+ fontsConf = makeFontsConf {
+ fontDirectories = [ twemoji-color-font ];
+ };
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out
+ cp -r ${src}/{qt.conf,translations,twemoji.ripdb} $out
+
+ for size in 16 32 48 64 72 96 128 192 256 512 1024; do
+ mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
+ convert -resize "$size"x"$size" ${src}/Ripcord_Icon.png $out/share/icons/hicolor/"$size"x"$size"/apps/ripcord.png
+ done
+
+ desktop-file-install --dir $out/share/applications \
+ --set-key Exec --set-value ripcord \
+ --set-key Icon --set-value ripcord \
+ --set-key Comment --set-value "${meta.description}" \
+ ${src}/Ripcord.desktop
+ mv $out/share/applications/Ripcord.desktop $out/share/applications/ripcord.desktop
+
+ install -Dm755 ${src}/Ripcord $out/Ripcord
+ patchelf --replace-needed libsodium.so.18 libsodium.so $out/Ripcord
+ makeQtWrapper $out/Ripcord $out/bin/ripcord \
+ --run "cd $out" \
+ --set FONTCONFIG_FILE "${fontsConf}" \
+ --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \
+ --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \
+ --set RIPCORD_ALLOW_UPDATES 0
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Desktop chat client for Slack and Discord";
+ homepage = "https://cancel.fm/ripcord/";
+
+ # See: https://cancel.fm/ripcord/shareware-redistribution/
+ license = licenses.unfreeRedistributable;
+
+ maintainers = with maintainers; [ infinisil ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
new file mode 100644
index 000000000000..6b9593a24b7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, python27Packages, file }:
+
+let
+ inherit (python27Packages) python;
+ requirements = (import ./requirements.nix {
+ inherit stdenv fetchurl;
+ pythonPackages = python27Packages;
+ });
+
+in
+ stdenv.mkDerivation rec {
+ pname = "salut-a-toi";
+ version = "0.6.1";
+
+ src = fetchurl {
+ url = "ftp://ftp.goffi.org/sat/sat-${version}.tar.bz2";
+ sha256 = "0kn9403n8fpzl0hsb9kkzicsmzq2fjl627l31yykbqzc4nsr780d";
+ };
+
+ buildInputs = with python27Packages;
+ [
+ python twisted urwid wxPython pygobject2
+ dbus-python wrapPython setuptools file
+ pycrypto pyxdg
+ ] ++ (with requirements; [
+ pyfeed
+ wokkel
+ ]);
+
+ configurePhase = ''
+ sed -i "/use_setuptools/d" setup.py
+ sed -e "s@sys.prefix@'$out'@g" -i setup.py
+ sed -e "1aexport PATH=\"\$PATH\":\"$out/bin\":\"${python27Packages.twisted}/bin\"" -i src/sat.sh
+ sed -e "1aexport PYTHONPATH=\"\$PYTHONPATHPATH\":\"$PYTHONPATH\":"$out/${python.sitePackages}"" -i src/sat.sh
+
+ echo 'import wokkel.muc' | python
+ '';
+
+ buildPhase = ''
+ ${python.interpreter} setup.py build
+ '';
+
+ installPhase = ''
+ ${python.interpreter} setup.py install --prefix="$out"
+
+ for i in "$out/bin"/*; do
+ head -n 1 "$i" | grep -E '[/ ]python( |$)' && {
+ wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH:$out/${python.sitePackages}"
+ } || true
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://sat.goffi.org/";
+ description = "A multi-frontend XMPP client";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.raskin ];
+ license = licenses.gpl3Plus;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix
new file mode 100644
index 000000000000..1a6811182453
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix
@@ -0,0 +1,67 @@
+{ fetchurl
+, stdenv
+, pythonPackages
+}:
+
+let
+ buildPythonPackage = pythonPackages.buildPythonPackage;
+
+ xe = buildPythonPackage rec {
+ url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
+ name = stdenv.lib.nameFromURL url ".tar";
+ src = fetchurl {
+ inherit url;
+ sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42";
+ };
+
+ # error: invalid command 'test'
+ doCheck = false;
+
+ meta = {
+ homepage = "http://home.blarg.net/~steveha/xe.html";
+ description = "XML elements";
+ };
+ };
+
+in {
+
+ pyfeed = (buildPythonPackage rec {
+ url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz";
+
+ name = stdenv.lib.nameFromURL url ".tar";
+
+ src = fetchurl {
+ inherit url;
+ sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1";
+ };
+
+ propagatedBuildInputs = [ xe ];
+
+ # error: invalid command 'test'
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "http://home.blarg.net/~steveha/pyfeed.html";
+ description = "Tools for syndication feeds";
+ };
+
+ });
+
+ wokkel = buildPythonPackage (rec {
+ url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz";
+ name = stdenv.lib.nameFromURL url ".tar";
+ src = fetchurl {
+ inherit url;
+ sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [twisted dateutil];
+
+ meta = with stdenv.lib; {
+ description = "Some (mainly XMPP-related) additions to twisted";
+ homepage = "http://wokkel.ik.nu/";
+ license = licenses.mit;
+ };
+ });
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
new file mode 100644
index 000000000000..b16659ba44cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, python3Packages }:
+
+let version = "1.63";
+in python3Packages.buildPythonPackage {
+ name = "scudcloud-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/raelgc/scudcloud/archive/v${version}.tar.gz";
+ sha256 = "e0d1cb72115d0fda17db92d28be51558ad8fe250972683fac3086dbe8d350d22";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ pyqt5_with_qtwebkit dbus-python jsmin ];
+
+ meta = with stdenv.lib; {
+ description = "Non-official desktop client for Slack";
+ homepage = "https://github.com/raelgc/scudcloud";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ volhovm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
new file mode 100644
index 000000000000..93ab78c439a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchurl, makeWrapper, jre_headless, libmatthew_java, dbus, dbus_java }:
+
+stdenv.mkDerivation rec {
+ pname = "signal-cli";
+ version = "0.6.12";
+
+ # Building from source would be preferred, but is much more involved.
+ src = fetchurl {
+ url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
+ sha256 = "0i1y2p5qi2bwhkm8sv0wkb0lfi2vm26qalnpg6kn0ikcxkqkq5bc";
+ };
+
+ buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -r lib $out/lib
+ cp bin/signal-cli $out/bin/signal-cli
+ '' + (if stdenv.isLinux then ''
+ makeWrapper ${jre_headless}/bin/java $out/bin/signal-cli \
+ --set JAVA_HOME "${jre_headless}" \
+ --add-flags "-classpath '$out/lib/*:${libmatthew_java}/lib/jni'" \
+ --add-flags "-Djava.library.path=${libmatthew_java}/lib/jni:${dbus_java}/share/java/dbus:$out/lib" \
+ --add-flags "org.asamk.signal.Main"
+ '' else ''
+ wrapProgram $out/bin/signal-cli \
+ --prefix PATH : ${lib.makeBinPath [ jre_headless ]} \
+ --set JAVA_HOME ${jre_headless}
+ '');
+
+ # Execution in the macOS (10.13) sandbox fails with
+ # dyld: Library not loaded: /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
+ # Referenced from: /nix/store/5ghc2l65p8jcjh0bsmhahd5m9k5p8kx0-zulu1.8.0_121-8.20.0.5/bin/java
+ # Reason: no suitable image found. Did find:
+ # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat()
+ # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat()
+ # /nix/store/in41dz8byyyz4c0w132l7mqi43liv4yr-stdenv-darwin/setup: line 1310: 2231 Abort trap: 6 signal-cli --version
+ doInstallCheck = stdenv.isLinux;
+
+ installCheckPhase = ''
+ export PATH=$PATH:$out/bin
+ # --help returns non-0 exit code even when working
+ signal-cli --version
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/AsamK/signal-cli";
+ description = "Command-line and dbus interface for communicating with the Signal messaging service";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ivan erictapen ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
new file mode 100644
index 000000000000..84f090228627
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -0,0 +1,143 @@
+{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, nixosTests
+, gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
+, dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
+, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
+, cups, expat, libuuid, at-spi2-core, libappindicator-gtk3
+# Runtime dependencies:
+, systemd, libnotify, libdbusmenu, libpulseaudio
+# Unfortunately this also overwrites the UI language (not just the spell
+# checking language!):
+, hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
+# For a full list of available languages:
+# $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }'
+}:
+
+let
+ customLanguageWrapperArgs = (with lib;
+ let
+ # E.g. "de_DE" -> "de-de" (spellcheckerLanguage -> hunspellDict)
+ spellLangComponents = splitString "_" spellcheckerLanguage;
+ hunspellDict = elemAt spellLangComponents 0 + "-" + toLower (elemAt spellLangComponents 1);
+ in if spellcheckerLanguage != null
+ then ''
+ --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \
+ --set LC_MESSAGES "${spellcheckerLanguage}"''
+ else "");
+in stdenv.mkDerivation rec {
+ pname = "signal-desktop";
+ version = "1.38.2"; # Please backport all updates to the stable channel.
+ # All releases have a limited lifetime and "expire" 90 days after the release.
+ # When releases "expire" the application becomes unusable until an update is
+ # applied. The expiration date for the current release can be extracted with:
+ # $ grep -a "^{\"buildExpiration" "${signal-desktop}/lib/Signal/resources/app.asar"
+ # (Alternatively we could try to patch the asar archive, but that requires a
+ # few additional steps and might not be the best idea.)
+
+ src = fetchurl {
+ url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
+ sha256 = "1lq830760y4kmhqd29hhgnab6lryiipb01y0c5bbl886zk3z35n4";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ dpkg
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ alsaLib
+ at-spi2-atk
+ at-spi2-core
+ atk
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gnome2.GConf
+ gtk3
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXtst
+ libappindicator-gtk3
+ libnotify
+ libuuid
+ nspr
+ nss
+ pango
+ systemd
+ xorg.libxcb
+ ];
+
+ runtimeDependencies = [
+ (lib.getLib systemd)
+ libnotify
+ libdbusmenu
+ ];
+
+ unpackPhase = "dpkg-deb -x $src .";
+
+ dontBuild = true;
+ dontConfigure = true;
+ dontPatchELF = true;
+ # We need to run autoPatchelf manually with the "no-recurse" option, see
+ # https://github.com/NixOS/nixpkgs/pull/78413 for the reasons.
+ dontAutoPatchelf = true;
+
+ installPhase = ''
+ mkdir -p $out/lib
+
+ mv usr/share $out/share
+ mv opt/Signal $out/lib/Signal
+
+ # Note: The following path contains bundled libraries:
+ # $out/lib/Signal/resources/app.asar.unpacked/node_modules/sharp/vendor/lib/
+ # We run autoPatchelf with the "no-recurse" option to avoid picking those
+ # up, but resources/app.asar still requires them.
+
+ # Symlink to bin
+ mkdir -p $out/bin
+ ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ] }"
+ ${customLanguageWrapperArgs}
+ )
+
+ # Fix the desktop link
+ substituteInPlace $out/share/applications/signal-desktop.desktop \
+ --replace /opt/Signal/signal-desktop $out/bin/signal-desktop
+
+ autoPatchelf --no-recurse -- $out/lib/Signal/
+ patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/Signal/resources/app.asar.unpacked/node_modules/ringrtc/build/linux/libringrtc.node
+ '';
+
+ # Tests if the application launches and waits for "Link your phone to Signal Desktop":
+ passthru.tests.application-launch = nixosTests.signal-desktop;
+
+ meta = {
+ description = "Private, simple, and secure messenger";
+ longDescription = ''
+ Signal Desktop is an Electron application that links with your
+ "Signal Android" or "Signal iOS" app.
+ '';
+ homepage = "https://signal.org/";
+ changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${version}";
+ license = lib.licenses.gpl3;
+ maintainers = with lib.maintainers; [ ixmatus primeos equirosa ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix
new file mode 100644
index 000000000000..0c84e1c5c80a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, perl, pkgconfig, glib, ncurses
+, enablePlugin ? false }:
+
+# Enabling the plugin and using it with a recent irssi, segafults on join:
+# http://marc.info/?l=silc-devel&m=125610477802211
+
+let
+ basename = "silc-client-1.1.11";
+in
+stdenv.mkDerivation {
+ name = basename + stdenv.lib.optionalString enablePlugin "-irssi-plugin";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/silc/silc/client/sources/${basename}.tar.bz2";
+ sha256 = "13cp3fmdnj8scjak0d2xal3bfvs2k7ssrwdhp0zl6jar5rwc7prn";
+ };
+
+ enableParallelBuilding = true;
+
+ dontDisableStatic = true;
+
+ hardeningDisable = [ "format" ];
+
+ configureFlags = [ "--with-ncurses=${ncurses.dev}" ];
+
+ preConfigure = stdenv.lib.optionalString enablePlugin ''
+ configureFlags="$configureFlags --with-silc-plugin=$out/lib/irssi"
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ perl glib ncurses ];
+
+ meta = {
+ homepage = "http://silcnet.org/";
+ description = "Secure Internet Live Conferencing server";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
new file mode 100644
index 000000000000..47a79c7309df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -0,0 +1,120 @@
+{ stdenv, fetchurl, dpkg
+, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome3
+, gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
+, at-spi2-atk, libuuid, at-spi2-core }:
+
+let
+
+ # Please keep the version x.y.0.z and do not update to x.y.76.z because the
+ # source of the latter disappears much faster.
+ version = "8.66.0.74";
+
+ rpath = stdenv.lib.makeLibraryPath [
+ alsaLib
+ atk
+ at-spi2-atk
+ at-spi2-core
+ cairo
+ cups
+ curl
+ dbus
+ expat
+ fontconfig
+ freetype
+ glib
+ glibc
+ libsecret
+ libuuid
+
+ gnome2.GConf
+ gdk-pixbuf
+ gtk3
+ libappindicator-gtk3
+
+ gnome3.gnome-keyring
+
+ libnotify
+ libpulseaudio
+ nspr
+ nss
+ pango
+ stdenv.cc.cc
+ systemd
+ libv4l
+
+ xorg.libxkbfile
+ xorg.libX11
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXtst
+ xorg.libXScrnSaver
+ xorg.libxcb
+ ] + ":${stdenv.cc.cc.lib}/lib64";
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ urls = [
+ "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
+ "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
+ "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
+ ];
+ sha256 = "11bpzr3j6fa5x62xrx2q2sr1wxjrn0a37053j4prxjcvdrc5in8f";
+ }
+ else
+ throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
+
+in stdenv.mkDerivation {
+ pname = "skypeforlinux";
+ inherit version;
+
+ system = "x86_64-linux";
+
+ inherit src;
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ glib # For setup hook populating GSETTINGS_SCHEMA_PATH
+ ];
+
+ buildInputs = [ dpkg ];
+
+ dontUnpack = true;
+ installPhase = ''
+ mkdir -p $out
+ dpkg -x $src $out
+ cp -av $out/usr/* $out
+ rm -rf $out/opt $out/usr
+ rm $out/bin/skypeforlinux
+
+ ln -s "$out/share/skypeforlinux/skypeforlinux" "$out/bin/skypeforlinux"
+
+ # Otherwise it looks "suspicious"
+ chmod -R g-w $out
+ '';
+
+ postFixup = ''
+ for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* -or -name \*.node\* \) ); do
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
+ patchelf --set-rpath ${rpath}:$out/share/skypeforlinux $file || true
+ done
+
+ # Fix the desktop link
+ substituteInPlace $out/share/applications/skypeforlinux.desktop \
+ --replace /usr/bin/ $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Linux client for skype";
+ homepage = "https://www.skype.com";
+ license = licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ panaeon jraygauthier ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix
new file mode 100644
index 000000000000..c862c253c00a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ # https://github.com/erroneousboat/slack-term
+ pname = "slack-term";
+ version = "0.5.0";
+
+ goPackagePath = "github.com/erroneousboat/slack-term";
+
+ src = fetchFromGitHub {
+ owner = "erroneousboat";
+ repo = "slack-term";
+ rev = "v${version}";
+ sha256 = "1fbq7bdhy70hlkklppimgdjamnk0v059pg73xm9ax1f4616ki1m6";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Slack client for your terminal";
+ homepage = "https://github.com/erroneousboat/slack-term";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
new file mode 100644
index 000000000000..5f367c76a928
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -0,0 +1,180 @@
+{ stdenv
+, fetchurl
+, dpkg
+, undmg
+, makeWrapper
+, nodePackages
+, alsaLib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, curl
+, dbus
+, expat
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gnome2
+, gtk3
+, libappindicator-gtk3
+, libdrm
+, libnotify
+, libpulseaudio
+, libuuid
+, libxcb
+, libxkbcommon
+, mesa
+, nspr
+, nss
+, pango
+, systemd
+, xdg_utils
+, xorg
+}:
+
+let
+ inherit (stdenv.hostPlatform) system;
+ throwSystem = throw "Unsupported system: ${system}";
+
+ pname = "slack";
+
+ x86_64-darwin-version = "4.11.1";
+ x86_64-darwin-sha256 = "0a5rq8zhgdckwxnyjv6nrgpnj682j1rd9yc4nwvsbvpzv15kmd35";
+
+ x86_64-linux-version = "4.11.1";
+ x86_64-linux-sha256 = "1r43g3xnla5aq38l3mpba8jb1gx9m2b6pr84prsclz27nr0rfm6g";
+
+ version = {
+ x86_64-darwin = x86_64-darwin-version;
+ x86_64-linux = x86_64-linux-version;
+ }.${system} or throwSystem;
+
+ src = let
+ base = "https://downloads.slack-edge.com";
+ in {
+ x86_64-darwin = fetchurl {
+ url = "${base}/releases/macos/${version}/prod/x64/Slack-${version}-macOS.dmg";
+ sha256 = x86_64-darwin-sha256;
+ };
+ x86_64-linux = fetchurl {
+ url = "${base}/linux_releases/slack-desktop-${version}-amd64.deb";
+ sha256 = x86_64-linux-sha256;
+ };
+ }.${system} or throwSystem;
+
+ meta = with stdenv.lib; {
+ description = "Desktop client for Slack";
+ homepage = "https://slack.com";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ mmahut ];
+ platforms = [ "x86_64-darwin" "x86_64-linux" ];
+ };
+
+ linux = stdenv.mkDerivation rec {
+ inherit pname version src meta;
+
+ passthru.updateScript = ./update.sh;
+
+ rpath = stdenv.lib.makeLibraryPath [
+ alsaLib
+ at-spi2-atk
+ at-spi2-core
+ atk
+ cairo
+ cups
+ curl
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gnome2.GConf
+ gtk3
+ libappindicator-gtk3
+ libdrm
+ libnotify
+ libpulseaudio
+ libuuid
+ libxcb
+ libxkbcommon
+ mesa
+ nspr
+ nss
+ pango
+ stdenv.cc.cc
+ systemd
+ xorg.libX11
+ xorg.libXScrnSaver
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXtst
+ xorg.libxkbfile
+ ] + ":${stdenv.cc.cc.lib}/lib64";
+
+ buildInputs = [
+ gtk3 # needed for GSETTINGS_SCHEMAS_PATH
+ ];
+
+ nativeBuildInputs = [ dpkg makeWrapper nodePackages.asar ];
+
+ dontUnpack = true;
+ dontBuild = true;
+ dontPatchELF = true;
+
+ installPhase = ''
+ # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here
+ dpkg --fsys-tarfile $src | tar --extract
+ rm -rf usr/share/lintian
+
+ mkdir -p $out
+ mv usr/* $out
+
+ # Otherwise it looks "suspicious"
+ chmod -R g-w $out
+
+ for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
+ patchelf --set-rpath ${rpath}:$out/lib/slack $file || true
+ done
+
+ # Replace the broken bin/slack symlink with a startup wrapper
+ rm $out/bin/slack
+ makeWrapper $out/lib/slack/slack $out/bin/slack \
+ --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
+ --prefix PATH : ${xdg_utils}/bin
+
+ # Fix the desktop link
+ substituteInPlace $out/share/applications/slack.desktop \
+ --replace /usr/bin/ $out/bin/ \
+ --replace /usr/share/ $out/share/
+ '';
+ };
+
+ darwin = stdenv.mkDerivation {
+ inherit pname version src meta;
+
+ passthru.updateScript = ./update.sh;
+
+ nativeBuildInputs = [ undmg ];
+
+ sourceRoot = "Slack.app";
+
+ installPhase = ''
+ mkdir -p $out/Applications/Slack.app
+ cp -R . $out/Applications/Slack.app
+ /usr/bin/defaults write com.tinyspeck.slackmacgap SlackNoAutoUpdates -bool YES
+ '';
+ };
+in if stdenv.isDarwin
+ then darwin
+ else linux
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh
new file mode 100755
index 000000000000..adef44411091
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p curl gnused
+
+set -eou pipefail
+
+latest_linux_version=$(curl --silent https://slack.com/downloads/linux | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p')
+latest_mac_version=$(curl --silent https://slack.com/downloads/mac | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p')
+
+# Double check that the latest mac and linux versions are in sync.
+if [[ "$latest_linux_version" != "$latest_mac_version" ]]; then
+ echo "the latest linux ($latest_linux_version) and mac ($latest_mac_version) versions are not the same"
+ exit 1
+fi
+
+nixpkgs="$(git rev-parse --show-toplevel)"
+slack_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix"
+nixpkgs_linux_version=$(cat "$slack_nix" | sed -n 's/.*x86_64-linux-version = \"\([0-9\.]\+\)\";.*/\1/p')
+nixpkgs_mac_version=$(cat "$slack_nix" | sed -n 's/.*x86_64-darwin-version = \"\([0-9\.]\+\)\";.*/\1/p')
+
+if [[ "$nixpkgs_linux_version" == "$latest_linux_version" && "$nixpkgs_mac_version" == "$latest_mac_version" ]]; then
+ echo "nixpkgs versions are all up to date!"
+ exit 0
+fi
+
+linux_url="https://downloads.slack-edge.com/linux_releases/slack-desktop-${latest_linux_version}-amd64.deb"
+mac_url="https://downloads.slack-edge.com/releases/macos/${latest_mac_version}/prod/x64/Slack-${latest_mac_version}-macOS.dmg"
+linux_sha256=$(nix-prefetch-url ${linux_url})
+mac_sha256=$(nix-prefetch-url ${mac_url})
+
+sed -i "s/x86_64-linux-version = \".*\"/x86_64-linux-version = \"${latest_linux_version}\"/" "$slack_nix"
+sed -i "s/x86_64-darwin-version = \".*\"/x86_64-darwin-version = \"${latest_mac_version}\"/" "$slack_nix"
+sed -i "s/x86_64-linux-sha256 = \".*\"/x86_64-linux-sha256 = \"${linux_sha256}\"/" "$slack_nix"
+sed -i "s/x86_64-darwin-sha256 = \".*\"/x86_64-darwin-sha256 = \"${mac_sha256}\"/" "$slack_nix"
+
+if ! nix-build -A slack "$nixpkgs"; then
+ echo "The updated slack failed to build."
+ exit 1
+fi
+
+echo "Successfully updated"
+echo "slack: $nixpkgs_linux_version -> $latest_linux_version"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix
new file mode 100644
index 000000000000..b0819ade4f33
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchgit
+, pkgconfig, wrapQtAppsHook
+, cmake
+, qtbase, qttools, qtquickcontrols2, qtmultimedia, qtkeychain
+, libpulseaudio
+# Not mentioned but seems needed
+, qtgraphicaleffects
+, qtdeclarative
+, qtmacextras
+, olm, libsecret, cmark
+}:
+
+let qtkeychain-qt5 = qtkeychain.override {
+ inherit qtbase qttools;
+ withQt5 = true;
+};
+in stdenv.mkDerivation rec {
+ pname = "spectral";
+ version = "817";
+
+ src = fetchgit {
+ url = "https://gitlab.com/spectral-im/spectral.git";
+ rev = version;
+ sha256 = "0lg0bkz621cmqb67kz1zmn4xwbspcqalz68byll5iszqz9y4gnp1";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake wrapQtAppsHook ];
+ buildInputs = [ qtbase qtkeychain-qt5 qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative olm libsecret cmark ]
+ ++ stdenv.lib.optional stdenv.hostPlatform.isLinux libpulseaudio
+ ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin qtmacextras;
+
+ meta = with stdenv.lib; {
+ description = "A glossy cross-platform Matrix client";
+ homepage = "https://spectral.im";
+ license = licenses.gpl3;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
new file mode 100644
index 000000000000..e964c654c708
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "ssh-chat";
+ version = "1.10";
+
+ goPackagePath = "github.com/shazow/ssh-chat";
+
+ src = fetchFromGitHub {
+ owner = "shazow";
+ repo = "ssh-chat";
+ rev = "v${version}";
+ sha256 = "e4COAyheY+mE5zltR1Ms2OJ3I8iG/N1CZ6D7I9PDW5U=";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "Chat over SSH";
+ homepage = "https://github.com/shazow/ssh-chat";
+ license = licenses.mit;
+ maintainers = with maintainers; [ luc65r ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix
new file mode 100644
index 000000000000..4fc4b4b4909b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix
@@ -0,0 +1,84 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "github.com/alexcesaro/log";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alexcesaro/log";
+ rev = "61e686294e58";
+ sha256 = "1ckd5crq9rd12wpclahg2q0wprfg0whd6k9zbfzzkr6l1qpmmfam";
+ };
+ }
+ {
+ goPackagePath = "github.com/howeyc/gopass";
+ fetch = {
+ type = "git";
+ url = "https://github.com/howeyc/gopass";
+ rev = "7cb4b85ec19c";
+ sha256 = "1qyhjd6wx409g9cq3xbpbl2xl41nm00mxzcxm5gbqdlwsd0z80rv";
+ };
+ }
+ {
+ goPackagePath = "github.com/jessevdk/go-flags";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jessevdk/go-flags";
+ rev = "v1.4.0";
+ sha256 = "0algnnigph27spgn655zm4723yfjxjjvlf4k14z9drj3682df25a";
+ };
+ }
+ {
+ goPackagePath = "github.com/shazow/rateio";
+ fetch = {
+ type = "git";
+ url = "https://github.com/shazow/rateio";
+ rev = "4461efc8bdc4";
+ sha256 = "1isy75cmm71q18mvs6xaizgdjqnn6pllkj4yvd42brfgfj84qz0w";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "884d27f42877";
+ sha256 = "1ka5kqpw3wr3iawwxq4swmrwbww6v1cmds86z1nm0qb8fvhvpslk";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "eb5bcb51f2a3";
+ sha256 = "17k4g8krxbl84gzcs275b7gsh66dzm15fdxivjnx9xz8q84l4kby";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "1957bb5e6d1f";
+ sha256 = "0imqk4l9785rw7ddvywyf8zn7k3ga6f17ky8rmf8wrri7nknr03f";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "v0.3.2";
+ sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "90fa682c2a6e";
+ sha256 = "03ic2xsy51jw9749wl7gszdbz99iijbd2bckgygl6cm9w5m364ak";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
new file mode 100644
index 000000000000..895ad30360e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchurl, dpkg, alsaLib, atk, cairo, cups, dbus, expat, fontconfig
+, freetype, gdk-pixbuf, glib, gnome2, nspr, nss, pango, udev, xorg }:
+let
+ fullPath = stdenv.lib.makeLibraryPath [
+ alsaLib
+ atk
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gnome2.GConf
+ gnome2.gtk
+ nspr
+ nss
+ pango
+ udev
+ xorg.libX11
+ xorg.libXScrnSaver
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXtst
+ xorg.libxcb
+ ] + ":${stdenv.cc.cc.lib}/lib64";
+in
+stdenv.mkDerivation rec {
+ version = "1.17.82";
+ pname = "stride";
+
+ src = fetchurl {
+ url = "https://packages.atlassian.com/stride-apt-client/pool/stride_${version}_amd64.deb";
+ sha256 = "0lx61gdhw0kv4f9fwbfg69yq52dsp4db7c4li25d6wn11qanzqhy";
+ };
+
+ dontBuild = true;
+ dontFixup = true;
+
+ buildInputs = [ dpkg ];
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ installPhase =''
+ mkdir "$out"
+ mv usr/* "$out/"
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${fullPath}:\$ORIGIN" \
+ "$out/bin/stride"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Desktop client for Atlassian Stride";
+ homepage = "https://www.stride.com/";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ puffnfresh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix
new file mode 100644
index 000000000000..c520835b1f0c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix
@@ -0,0 +1,44 @@
+{ mkDerivation, stdenv, fetchurl, pkgconfig, qttools, sconsPackages
+, GConf, avahi, boost, hunspell, libXScrnSaver, libedit, libidn, libnatpmp, libxml2
+, lua, miniupnpc, openssl, qtbase, qtmultimedia, qtsvg, qtwebkit, qtx11extras, zlib
+}:
+
+mkDerivation rec {
+ pname = "swift-im";
+ version = "4.0.2";
+
+ src = fetchurl {
+ url = "https://swift.im/downloads/releases/swift-${version}/swift-${version}.tar.gz";
+ sha256 = "0w0aiszjd58ynxpacwcgf052zpmbpcym4dhci64vbfgch6wryz0w";
+ };
+
+ patches = [ ./qt-5.11.patch ./scons.patch ];
+
+ nativeBuildInputs = [ pkgconfig qttools sconsPackages.scons_3_1_2 ];
+
+ buildInputs = [
+ GConf avahi boost hunspell libXScrnSaver libedit libidn libnatpmp libxml2
+ lua miniupnpc openssl qtbase qtmultimedia qtsvg qtwebkit qtx11extras zlib
+ ];
+
+ propagatedUserEnvPkgs = [ GConf ];
+
+ NIX_CFLAGS_COMPILE = toString [
+ "-I${libxml2.dev}/include/libxml2"
+ "-I${miniupnpc}/include/miniupnpc"
+ "-I${qtwebkit.dev}/include/QtWebKit"
+ "-I${qtwebkit.dev}/include/QtWebKitWidgets"
+ "-fpermissive"
+ ];
+
+ installTargets = [ (placeholder "out") ];
+ installFlags = [ "SWIFT_INSTALLDIR=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://swift.im/";
+ description = "Qt XMPP client";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch
new file mode 100644
index 000000000000..911e7570427f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch
@@ -0,0 +1,10 @@
+--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.h
++++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.h
+@@ -8,6 +8,7 @@
+
+ #include <set>
+
++#include <QAbstractItemModel>
+ #include <QWizard>
+
+ #include <Swiften/Base/Override.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch
new file mode 100644
index 000000000000..c63b05d7acb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch
@@ -0,0 +1,53 @@
+diff --git a/BuildTools/SCons/SConscript.boot b/BuildTools/SCons/SConscript.boot
+index 40f242513..53e1ff26a 100644
+--- a/BuildTools/SCons/SConscript.boot
++++ b/BuildTools/SCons/SConscript.boot
+@@ -508,6 +508,7 @@ if env.get("distcc", False) :
+ if var.startswith("DISTCC_") :
+ env["ENV"][var] = os.environ[var]
+
++env["ENV"] = os.environ
+ conf_env = env.Clone()
+
+ Export("env")
+diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct
+index 70bffbcfe..fef281899 100644
+--- a/BuildTools/SCons/SConstruct
++++ b/BuildTools/SCons/SConstruct
+@@ -272,7 +272,7 @@ if env.get("try_gconf", True) and env["PLATFORM"] != "win32" and env["PLATFORM"]
+ gconf_env = conf_env.Clone()
+ conf = Configure(gconf_env, custom_tests = {"CheckPKG": CheckPKG})
+ if conf.CheckPKG("gconf-2.0") :
+- gconf_bare_env = Environment()
++ gconf_bare_env = Environment(ENV = os.environ)
+ gconf_bare_env.ParseConfig('pkg-config --cflags gconf-2.0 gobject-2.0 --libs gconf-2.0 gobject-2.0')
+ if os.path.basename(env["CXX"]).startswith(("g++", "clang++")) :
+ gconf_bare_env["CCFLAGS"] = [("-isystem" + ccflag) for ccflag in gconf_bare_env["CPPPATH"]]
+@@ -634,9 +634,9 @@ hunspell_env.MergeFlags(hunspell_flags)
+ env["HAVE_HUNSPELL"] = 0;
+ if env.get("hunspell_enable", False) :
+ hunspell_conf = Configure(hunspell_env)
+- if hunspell_conf.CheckCXXHeader("hunspell/hunspell.hxx") and hunspell_conf.CheckLib("hunspell") :
++ if hunspell_conf.CheckCXXHeader("hunspell/hunspell.hxx") and hunspell_conf.CheckLib("hunspell-1.6") :
+ env["HAVE_HUNSPELL"] = 1
+- hunspell_flags["LIBS"] = ["hunspell"]
++ hunspell_flags["LIBS"] = ["hunspell-1.6"]
+ env["HUNSPELL_FLAGS"] = hunspell_flags
+ hunspell_conf.Finish()
+
+diff --git a/BuildTools/SCons/Tools/textfile.py b/BuildTools/SCons/Tools/textfile.py
+index 89f8963dc..b8559f7a6 100644
+--- a/BuildTools/SCons/Tools/textfile.py
++++ b/BuildTools/SCons/Tools/textfile.py
+@@ -113,7 +113,10 @@ def _action(target, source, env):
+ lsep = None
+ for s in source:
+ if lsep: fd.write(lsep)
+- fd.write(_do_subst(s, subs))
++ b = _do_subst(s, subs)
++ if isinstance(b, unicode):
++ b = b.encode('UTF-8')
++ fd.write(b)
+ lsep = linesep
+ fd.close()
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
new file mode 100644
index 000000000000..bf864eb41475
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -0,0 +1,89 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, wrapGAppsHook
+, dpkg
+, atomEnv
+, libuuid
+, pulseaudio
+, at-spi2-atk
+, coreutils
+, gawk
+, xdg_utils
+, systemd }:
+
+stdenv.mkDerivation rec {
+ pname = "teams";
+ version = "1.3.00.25560";
+
+ src = fetchurl {
+ url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
+ sha256 = "0kpcd9q6v2qh0dzddykisdbi3djbxj2rl70wchlzrb6bx95hkzmc";
+ };
+
+ nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ];
+
+ unpackCmd = "dpkg -x $curSrc .";
+
+ buildInputs = atomEnv.packages ++ [
+ libuuid
+ at-spi2-atk
+ ];
+
+ runtimeDependencies = [
+ (lib.getLib systemd)
+ pulseaudio
+ ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix PATH : "${coreutils}/bin:${gawk}/bin:${xdg_utils}/bin")
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{opt,bin}
+
+ mv share/teams $out/opt/
+ mv share $out/share
+
+ substituteInPlace $out/share/applications/teams.desktop \
+ --replace /usr/bin/ ""
+
+ ln -s $out/opt/teams/teams $out/bin/
+
+ # Work-around screen sharing bug
+ # https://docs.microsoft.com/en-us/answers/questions/42095/sharing-screen-not-working-anymore-bug.html
+ rm $out/opt/teams/resources/app.asar.unpacked/node_modules/slimcore/bin/rect-overlay
+ '';
+
+ dontAutoPatchelf = true;
+
+ # Includes runtimeDependencies in the RPATH of the included Node modules
+ # so that dynamic loading works. We cannot use directly runtimeDependencies
+ # here, since the libraries from runtimeDependencies are not propagated
+ # to the dynamically loadable node modules because of a condition in
+ # autoPatchElfHook since *.node modules have Type: DYN (Shared object file)
+ # instead of EXEC or INTERP it expects.
+ # Fixes: https://github.com/NixOS/nixpkgs/issues/85449
+ postFixup = ''
+ autoPatchelf "$out"
+
+ runtime_rpath="${lib.makeLibraryPath runtimeDependencies}"
+
+ for mod in $(find "$out/opt/teams" -name '*.node'); do
+ mod_rpath="$(patchelf --print-rpath "$mod")"
+
+ echo "Adding runtime dependencies to RPATH of Node module $mod"
+ patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod"
+ done;
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Microsoft Teams";
+ homepage = "https://teams.microsoft.com";
+ downloadPage = "https://teams.microsoft.com/downloads";
+ license = licenses.unfree;
+ maintainers = [ maintainers.liff ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
new file mode 100644
index 000000000000..ba726d5b3771
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -0,0 +1,148 @@
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype, openssl
+, xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, qtwebsockets, xkeyboard_config
+, alsaLib, libpulseaudio ? null, libredirect, quazip, which, unzip, llvmPackages, writeShellScriptBin
+}:
+
+let
+
+ arch = if stdenv.is64bit then "amd64" else "x86";
+
+ libDir = if stdenv.is64bit then "lib64" else "lib";
+
+ deps =
+ [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl
+ xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama
+ xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsaLib qtbase qtwebengine qtwebchannel qtsvg
+ qtwebsockets libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi
+ ];
+
+ desktopItem = makeDesktopItem {
+ name = "teamspeak";
+ exec = "ts3client";
+ icon = "teamspeak";
+ comment = "The TeamSpeak voice communication tool";
+ desktopName = "TeamSpeak";
+ genericName = "TeamSpeak";
+ categories = "Network";
+ };
+
+ fakeLess = writeShellScriptBin "less" "cat";
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "teamspeak-client";
+
+ version = "3.5.6";
+
+ src = fetchurl {
+ url = "https://files.teamspeak-services.com/releases/client/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run";
+ sha256 = if stdenv.is64bit
+ then "sha256:0hjai1bd4mq3g2dlyi0zkn8s4zlgxd38skw77mb78nc4di5gvgpg"
+ else "sha256:1y1c65nap91nv9xkvd96fagqbfl56p9n0rl6iac0i29bkysdmija";
+ };
+
+ # grab the plugin sdk for the desktop icon
+ pluginsdk = fetchurl {
+ url = "http://dl.4players.de/ts/client/pluginsdk/pluginsdk_3.1.1.1.zip";
+ sha256 = "1bywmdj54glzd0kffvr27r84n4dsd0pskkbmh59mllbxvj0qwy7f";
+ };
+
+ nativeBuildInputs = [ makeWrapper fakeLess which unzip ];
+
+ unpackPhase =
+ ''
+ echo -e '\ny' | sh -xe $src
+ cd TeamSpeak*
+ '';
+
+ buildPhase =
+ ''
+ mv ts3client_linux_${arch} ts3client
+ echo "patching ts3client..."
+ patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip5.so ts3client
+ patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${stdenv.lib.makeLibraryPath deps}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \
+ --force-rpath \
+ ts3client
+ '';
+
+ installPhase =
+ ''
+ # Delete unecessary libraries - these are provided by nixos.
+ rm *.so.* *.so
+ rm QtWebEngineProcess
+ rm qt.conf
+ rm -r platforms # contains libqxcb.so
+
+ # Install files.
+ mkdir -p $out/lib/teamspeak
+ mv * $out/lib/teamspeak/
+
+ # Make a desktop item
+ mkdir -p $out/share/applications/ $out/share/icons/
+ unzip ${pluginsdk}
+ cp pluginsdk/docs/client_html/images/logo.png $out/share/icons/teamspeak.png
+ cp ${desktopItem}/share/applications/* $out/share/applications/
+
+ # Make a symlink to the binary from bin.
+ mkdir -p $out/bin/
+ ln -s $out/lib/teamspeak/ts3client $out/bin/ts3client
+
+ wrapProgram $out/bin/ts3client \
+ --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+ --set QT_PLUGIN_PATH "${qtbase}/${qtbase.qtPluginPrefix}" \
+ --set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ meta = with stdenv.lib; {
+ description = "The TeamSpeak voice communication tool";
+ homepage = "https://teamspeak.com/";
+ license = {
+ fullName = "Teamspeak client license";
+ url = "https://www.teamspeak.com/en/privacy-and-terms/";
+ free = false;
+ };
+ maintainers = with maintainers; [ lhvwb lukegb ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
+
+/*
+License issues:
+Date: Mon, 10 Dec 2007 19:55:16 -0500
+From: TeamSpeak Sales <sales@tritoncia.com>
+To: 'Marc Weber' <marco-oweber@gmx.de>
+Subject: RE: teamspeak on nix?
+
+Yes, that would be fine. As long as you are not renting servers or selling
+TeamSpeak then you are more than welcome to distribute it.
+
+Thank you,
+
+TeamSpeak Sales Team
+________________________________
+e-Mail: sales@tritoncia.com
+TeamSpeak: http://www.TeamSpeak.com
+Account Login: https://sales.TritonCIA.com/users
+
+
+
+-----Original Message-----
+From: Marc Weber [mailto:marco-oweber@gmx.de]
+Sent: Monday, December 10, 2007 5:03 PM
+To: sales@tritoncia.com
+Subject: teamspeak on nix?
+
+Hello,
+
+nix is very young software distribution system (http://nix.cs.uu.nl/)
+I'd like to ask wether you permit us to add teamspeak (server/ client?)
+
+Sincerly
+Marc Weber (small nix contributor)
+*/
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
new file mode 100644
index 000000000000..521e60c78f00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
@@ -0,0 +1,96 @@
+{ stdenv, fetchurl, postgresql, autoPatchelfHook, writeScript }:
+
+let
+ arch = if stdenv.is64bit then "amd64" else "x86";
+in stdenv.mkDerivation rec {
+ pname = "teamspeak-server";
+ version = "3.13.2";
+
+ src = fetchurl {
+ url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
+ sha256 = if stdenv.is64bit
+ then "1l9i9667wppwxbbnf6kxamnqlbxzkz9ync4rsypfla124b6cidpz"
+ else "0qhd05abiycsgc16r1p6y8bfdrl6zji21xaqwdizpr0jb01z335g";
+ };
+
+ buildInputs = [ stdenv.cc.cc postgresql.lib ];
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+
+ installPhase = ''
+ # Install files.
+ mkdir -p $out/lib/teamspeak
+ mv * $out/lib/teamspeak/
+
+ # Make symlinks to the binaries from bin.
+ mkdir -p $out/bin/
+ ln -s $out/lib/teamspeak/ts3server $out/bin/ts3server
+ ln -s $out/lib/teamspeak/tsdns/tsdnsserver $out/bin/tsdnsserver
+ '';
+
+ passthru.updateScript = writeScript "update-teampeak-server" ''
+ #!/usr/bin/env nix-shell
+ #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused
+
+ set -eu -o pipefail
+
+ version=$( \
+ curl -s "https://www.teamspeak.de/download/teamspeak-3-amd64-server-linux/" \
+ | grep softwareVersion \
+ | sed -E -e 's/^.*<span itemprop="softwareVersion">([^<]+)<\/span>.*$/\1/' \
+ )
+
+ versionOld=$(nix-instantiate --eval --strict -A "teamspeak_server.version")
+
+ nixFile=pkgs/applications/networking/instant-messengers/teamspeak/server.nix
+
+ update-source-version teamspeak_server "$version" --system=i686-linux
+
+ sed -i -e "s/version = \"$version\";/version = $versionOld;/" "$nixFile"
+
+ update-source-version teamspeak_server "$version" --system=x86_64-linux
+ '';
+
+ meta = with stdenv.lib; {
+ description = "TeamSpeak voice communication server";
+ homepage = "https://teamspeak.com/";
+ license = licenses.unfreeRedistributable;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ arobyn gerschtli ];
+ };
+}
+
+/*
+License issues:
+Date: Mon, 10 Dec 2007 19:55:16 -0500
+From: TeamSpeak Sales <sales@tritoncia.com>
+To: 'Marc Weber' <marco-oweber@gmx.de>
+Subject: RE: teamspeak on nix?
+
+Yes, that would be fine. As long as you are not renting servers or selling
+TeamSpeak then you are more than welcome to distribute it.
+
+Thank you,
+
+TeamSpeak Sales Team
+________________________________
+e-Mail: sales@tritoncia.com
+TeamSpeak: http://www.TeamSpeak.com
+Account Login: https://sales.TritonCIA.com/users
+
+
+
+-----Original Message-----
+From: Marc Weber [mailto:marco-oweber@gmx.de]
+Sent: Monday, December 10, 2007 5:03 PM
+To: sales@tritoncia.com
+Subject: teamspeak on nix?
+
+Hello,
+
+nix is very young software distribution system (http://nix.cs.uu.nl/)
+I'd like to ask wether you permit us to add teamspeak (server/ client?)
+
+Sincerly
+Marc Weber (small nix contributor)
+*/
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
new file mode 100644
index 000000000000..190e05158969
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -0,0 +1,50 @@
+{ mkDerivation, lib, fetchFromGitHub, pkg-config, python3, cmake, ninja
+, qtbase, qtimageformats, libdbusmenu, hunspell, xdg_utils, ffmpeg_3, openalSoft
+, lzma, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
+, range-v3
+}:
+
+with lib;
+
+mkDerivation rec {
+ pname = "kotatogram-desktop";
+ version = "1.2";
+
+ src = fetchFromGitHub {
+ owner = "kotatogram";
+ repo = "kotatogram-desktop";
+ rev = "k${version}";
+ sha256 = "00pdx3cjhrihf7ihhmszcf159jrzn1bcx20vwiiizs5r1qk8l210";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkg-config python3 cmake ninja ];
+
+ buildInputs = [
+ qtbase qtimageformats ffmpeg_3 openalSoft lzma lz4 xxHash libdbusmenu
+ zlib minizip openssl hunspell libtgvoip microsoft_gsl tl-expected range-v3
+ ];
+
+ qtWrapperArgs = [
+ "--prefix PATH : ${xdg_utils}/bin"
+ ];
+
+ cmakeFlags = [
+ "-DTDESKTOP_API_TEST=ON"
+ "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF"
+ "-DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF"
+ ];
+
+ meta = {
+ description = "Kotatogram – experimental Telegram Desktop fork";
+ longDescription = ''
+ Unofficial desktop client for the Telegram messenger, based on Telegram Desktop.
+
+ It contains some useful (or purely cosmetic) features, but they could be unstable. A detailed list is available here: https://kotatogram.github.io/changes
+ '';
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ homepage = "https://kotatogram.github.io";
+ maintainers = with maintainers; [ ilya-fedin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
new file mode 100644
index 000000000000..6518f73a2299
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -0,0 +1,113 @@
+{ mkDerivation, lib, fetchurl, callPackage
+, pkgconfig, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
+, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
+, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
+, tl-expected, hunspell
+# TODO: Shouldn't be required:
+, pcre, xorg, util-linux, libselinux, libsepol, epoxy, at-spi2-core, libXtst
+, xdg_utils
+}:
+
+with lib;
+
+# Main reference:
+# - This package was originally based on the Arch package but all patches are now upstreamed:
+# https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/telegram-desktop
+# Other references that could be useful:
+# - https://git.alpinelinux.org/aports/tree/testing/telegram-desktop/APKBUILD
+# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template
+
+let
+ tg_owt = callPackage ./tg_owt.nix {};
+
+in mkDerivation rec {
+ pname = "telegram-desktop";
+ version = "2.4.7";
+
+ # Telegram-Desktop with submodules
+ src = fetchurl {
+ url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
+ sha256 = "1j2v29952l0am357pqvvgzm2zghmwhlr833kgp85hssxpr9xy4vv";
+ };
+
+ postPatch = ''
+ substituteInPlace Telegram/lib_spellcheck/spellcheck/platform/linux/linux_enchant.cpp \
+ --replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"'
+ substituteInPlace Telegram/CMakeLists.txt \
+ --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
+ '';
+
+ # We want to run wrapProgram manually (with additional parameters)
+ dontWrapGApps = true;
+ dontWrapQtApps = true;
+
+ nativeBuildInputs = [ pkgconfig cmake ninja python3 wrapGAppsHook wrapQtAppsHook removeReferencesTo ];
+
+ buildInputs = [
+ qtbase qtimageformats gtk3 libsForQt5.libdbusmenu enchant2 lz4 xxHash
+ dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
+ tl-expected hunspell
+ tg_owt
+ # TODO: Shouldn't be required:
+ pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy at-spi2-core libXtst
+ ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [
+ "-Ddisable_autoupdate=ON"
+ # We're allowed to used the API ID of the Snap package:
+ "-DTDESKTOP_API_ID=611335"
+ "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c"
+ #"-DDESKTOP_APP_SPECIAL_TARGET=\"\"" # TODO: Error when set to "": Bad special target '""'
+ "-DTDESKTOP_LAUNCHER_BASENAME=telegramdesktop" # Note: This is the default
+ ];
+
+ # Note: The following packages could be packaged system-wide, but it's
+ # probably best to use the bundled ones from tdesktop (Arch does this too):
+ # rlottie:
+ # - CMake flag: "-DTDESKTOP_USE_PACKAGED_TGVOIP=ON"
+ # - Sources (problem: there are no stable releases!):
+ # - desktop-app (tdesktop): https://github.com/desktop-app/rlottie
+ # - upstream: https://github.com/Samsung/rlottie
+ # libtgvoip:
+ # - CMake flag: "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=ON"
+ # - Sources (problem: the stable releases might be too old!):
+ # - tdesktop: https://github.com/telegramdesktop/libtgvoip
+ # - upstream: https://github.com/grishka/libtgvoip
+ # Both of these packages are included in this PR (kotatogram-desktop):
+ # https://github.com/NixOS/nixpkgs/pull/75210
+ # TODO: Package mapbox-variant
+
+ postFixup = ''
+ # Nuke refs to `tg_owt` which is introduced by `__FILE__` in headers.
+ remove-references-to -t ${tg_owt} $out/bin/telegram-desktop
+
+ # This is necessary to run Telegram in a pure environment.
+ # We also use gappsWrapperArgs from wrapGAppsHook.
+ wrapProgram $out/bin/telegram-desktop \
+ "''${gappsWrapperArgs[@]}" \
+ "''${qtWrapperArgs[@]}" \
+ --prefix PATH : ${xdg_utils}/bin \
+ --set XDG_RUNTIME_DIR "XDG-RUNTIME-DIR"
+ sed -i $out/bin/telegram-desktop \
+ -e "s,'XDG-RUNTIME-DIR',\"\''${XDG_RUNTIME_DIR:-/run/user/\$(id --user)}\","
+ '';
+
+ passthru = {
+ inherit tg_owt;
+ };
+
+ meta = {
+ description = "Telegram Desktop messaging app";
+ longDescription = ''
+ Desktop client for the Telegram messenger, based on the Telegram API and
+ the MTProto secure protocol.
+ '';
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ homepage = "https://desktop.telegram.org/";
+ changelog = "https://github.com/telegramdesktop/tdesktop/releases/tag/v{version}";
+ maintainers = with maintainers; [ primeos abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
new file mode 100644
index 000000000000..48499bf9f2c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, cmake, ninja, yasm
+, pkg-config, libjpeg, openssl, libopus, ffmpeg, alsaLib, libpulseaudio
+}:
+
+let
+ rev = "e8fcae73947445db3d418fb7c20b964b59e14706";
+ sha256 = "0s2dd41r71aixhvympiqfks1liv7x78y60n0i87vmyxyfx449b5h";
+
+in stdenv.mkDerivation {
+ pname = "tg_owt";
+ version = "git-${rev}";
+
+ src = fetchFromGitHub {
+ owner = "desktop-app";
+ repo = "tg_owt";
+ inherit rev sha256;
+ };
+
+ nativeBuildInputs = [ pkg-config cmake ninja yasm ];
+
+ buildInputs = [ libjpeg openssl libopus ffmpeg alsaLib libpulseaudio ];
+
+ meta.license = lib.licenses.bsd3;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
new file mode 100644
index 000000000000..d81af8388aac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, libxslt, telepathy-glib, libxml2, dbus-glib, dbus
+, sqlite, libsoup, libnice, gnutls}:
+
+stdenv.mkDerivation rec {
+ name = "telepathy-gabble-0.18.4";
+
+ src = fetchurl {
+ url = "https://telepathy.freedesktop.org/releases/telepathy-gabble/${name}.tar.gz";
+ sha256 = "174nlkqm055vrhv11gy73m20jbsggcb0ddi51c7s9m3j5ibr2p0i";
+ };
+
+ nativeBuildInputs = [ pkgconfig libxslt ];
+ buildInputs = [ libxml2 dbus-glib sqlite libsoup libnice telepathy-glib gnutls telepathy-glib.python ];
+
+ checkInputs = [ dbus.daemon ];
+
+ configureFlags = [ "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" ];
+
+ enableParallelBuilding = true;
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://telepathy.freedesktop.org/components/telepathy-gabble/";
+ description = "Jabber/XMPP connection manager for the Telepathy framework";
+ license = licenses.lgpl21Plus;
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
new file mode 100644
index 000000000000..6d4ff62f22a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, fetchpatch, pidgin, telepathy-glib, glib, dbus-glib, pkgconfig, libxslt }:
+
+stdenv.mkDerivation rec {
+ pname = "telepathy-haze";
+ name = "${pname}-0.8.0";
+
+ src = fetchurl {
+ url = "https://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz";
+ sha256 = "1jgrp32p6rllj089ynbsk3n9xrvsvzmwzhf0ql05kkgj0nf08xiy";
+ };
+
+ buildInputs = [ glib telepathy-glib dbus-glib pidgin telepathy-glib.python ];
+
+ nativeBuildInputs = [ pkgconfig libxslt ];
+
+ patches = [
+ # Patch from Gentoo that helps telepathy-haze build with more
+ # recent versions of pidgin.
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/gentoo/gentoo/master/net-voip/telepathy-haze/files/telepathy-haze-0.8.0-pidgin-2.10.12-compat.patch";
+ sha256 = "0fa1p4n1559qd096w7ya4kvfnc1c98ykarkxzlpkwvzbczwzng3c";
+ })
+ ];
+
+ meta = {
+ description = "A Telepathy connection manager based on libpurple";
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # Random choice
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
new file mode 100644
index 000000000000..f3d1e6cfd750
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, glib, dconf, pkgconfig, dbus-glib, telepathy-glib, libxslt, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "telepathy-idle";
+ version = "0.2.0";
+
+ src = fetchurl {
+ url = "http://telepathy.freedesktop.org/releases/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib telepathy-glib dbus-glib libxslt telepathy-glib.python (stdenv.lib.getLib dconf) makeWrapper ];
+
+ preFixup = ''
+ wrapProgram "$out/libexec/telepathy-idle" \
+ --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
+ '';
+
+ meta = {
+ description = "IRC connection manager for the Telepathy framework";
+ license = stdenv.lib.licenses.lgpl21;
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
new file mode 100644
index 000000000000..f8e1f1f2c665
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, dbus-glib, libxml2, sqlite, telepathy-glib, pkgconfig
+, dconf, makeWrapper, intltool, libxslt, gobject-introspection, dbus }:
+
+stdenv.mkDerivation rec {
+ project = "telepathy-logger";
+ name = "${project}-0.8.2";
+
+ src = fetchurl {
+ url = "https://telepathy.freedesktop.org/releases/${project}/${name}.tar.bz2";
+ sha256 = "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper pkgconfig intltool libxslt gobject-introspection
+ ];
+ buildInputs = [
+ dbus-glib libxml2 sqlite telepathy-glib
+ dbus telepathy-glib.python
+ ];
+
+ configureFlags = [ "--enable-call" ];
+
+ preFixup = ''
+ wrapProgram "$out/libexec/telepathy-logger" \
+ --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Logger service for Telepathy framework";
+ homepage = "https://telepathy.freedesktop.org/components/telepathy-logger/";
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = platforms.gnu ++ platforms.linux; # Arbitrary choice
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
new file mode 100644
index 000000000000..bc0657f7b1a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, fetchurl
+, pkg-config
+, dconf
+, telepathy-glib
+, python3
+, libxslt
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "telepathy-mission-control";
+ version = "5.16.6";
+
+ outputs = [ "out" "lib" "dev" ];
+
+ src = fetchurl {
+ url = "https://telepathy.freedesktop.org/releases/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "0ibs575pfr0wmhfcw6ln6iz7gw2y45l3bah11rksf6g9jlwsxy1d";
+ };
+
+ buildInputs = [
+ python3
+ ]; # ToDo: optional stuff missing
+
+ nativeBuildInputs = [
+ pkg-config
+ libxslt
+ makeWrapper
+ ];
+
+ propagatedBuildInputs = [
+ telepathy-glib
+ ];
+
+ doCheck = true;
+
+ enableParallelBuilding = true;
+
+ preFixup = ''
+ wrapProgram "$lib/libexec/mission-control-5" \
+ --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An account manager and channel dispatcher for the Telepathy framework";
+ homepage = "https://telepathy.freedesktop.org/components/telepathy-mission-control/";
+ license = licenses.lgpl21Only;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
new file mode 100644
index 000000000000..6513c6324a61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, libxslt, glib, libxml2, telepathy-glib, avahi, libsoup
+, libuuid, openssl, pcre, sqlite, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "telepathy-salut";
+ name = "${pname}-0.8.1";
+
+ src = fetchurl {
+ url = "https://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz";
+ sha256 = "13k112vrr3zghzr03pnbqc1id65qvpj0sn0virlbf4dmr2511fbh";
+ };
+
+ # pcre needed because https://github.com/NixOS/nixpkgs/pull/15046
+ buildInputs = [ glib libxml2 telepathy-glib avahi libsoup libuuid openssl
+ sqlite pcre telepathy-glib.python ];
+
+ nativeBuildInputs = [ libxslt pkgconfig ];
+
+ configureFlags = [ "--disable-avahi-tests" ];
+
+ meta = with stdenv.lib; {
+ description = "Link-local XMPP connection manager for Telepathy";
+ platforms = platforms.gnu ++ platforms.linux; # Random choice
+ maintainers = [ maintainers.lethalman ];
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
new file mode 100644
index 000000000000..1ea249a8b51b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -0,0 +1,56 @@
+{ mkDerivation, stdenv, fetchgit, qtbase, qtquickcontrols, qmake, makeDesktopItem }:
+
+# we now have libqmatrixclient so a future version of tensor that supports it
+# should use that
+
+mkDerivation rec {
+ pname = "tensor-git";
+ version = "2017-02-21";
+
+ src = fetchgit {
+ url = "https://github.com/davidar/tensor.git";
+ rev = "f3f3056d770d7fb4a21c610cee7936ee900569f5";
+ sha256 = "19in8c7a2hxsx2c4lj540w5c3pn1882645m21l91mcriynqr67k9";
+ fetchSubmodules = true;
+ };
+
+ enableParallelBuilding = true;
+
+ buildInputs = [ qtbase qtquickcontrols ];
+ nativeBuildInputs = [ qmake ];
+
+ desktopItem = makeDesktopItem {
+ name = "tensor";
+ exec = "@bin@";
+ icon = "tensor.png";
+ comment = meta.description;
+ desktopName = "Tensor Matrix Client";
+ genericName = meta.description;
+ categories = "Chat;Utility";
+ mimeType = "application/x-chat";
+ };
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 tensor $out/bin/tensor
+ install -Dm644 client/logo.png \
+ $out/share/icons/hicolor/512x512/apps/tensor.png
+ install -Dm644 ${desktopItem}/share/applications/tensor.desktop \
+ $out/share/applications/tensor.desktop
+
+ substituteInPlace $out/share/applications/tensor.desktop \
+ --subst-var-by bin $out/bin/tensor
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://matrix.org/docs/projects/client/tensor.html";
+ description = "Cross-platform Qt5/QML-based Matrix client";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ inherit (qtbase.meta) platforms;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
new file mode 100644
index 000000000000..8231f481ee0d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, python, unzip, wxPython, wrapPython, tor }:
+stdenv.mkDerivation rec {
+
+ pname = "torchat";
+ version = "0.9.9.553";
+
+ src = fetchurl {
+ url = "https://github.com/prof7bit/TorChat/archive/${version}.tar.gz";
+ sha256 = "0rb4lvv40pz6ab5kxq40ycvh7kh1yxn7swzgv2ff2nbhi62xnzp0";
+ };
+
+ buildInputs = [ python unzip wxPython wrapPython ];
+ pythonPath = [ wxPython ];
+
+ preConfigure = "cd torchat/src; rm portable.txt";
+
+ installPhase = ''
+ substituteInPlace "Tor/tor.sh" --replace "tor -f" "${tor}/bin/tor -f"
+
+ wrapPythonPrograms
+
+ mkdir -p $out/lib/torchat
+ cp -rf * $out/lib/torchat
+ makeWrapper ${python}/bin/python $out/bin/torchat \
+ --set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \
+ --run "cd $out/lib/torchat" \
+ --add-flags "-O $out/lib/torchat/torchat.py"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/prof7bit/TorChat";
+ description = "Instant messaging application on top of the Tor network and it's location hidden services";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.phreedom ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix
new file mode 100644
index 000000000000..a2489427b946
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, libsodium, ncurses, curl
+, libtoxcore, openal, libvpx, freealut, libconfig, pkgconfig, libopus
+, qrencode, gdk-pixbuf, libnotify }:
+
+stdenv.mkDerivation rec {
+ pname = "toxic";
+ version = "0.10.0";
+
+ src = fetchFromGitHub {
+ owner = "Tox";
+ repo = "toxic";
+ rev = "v${version}";
+ sha256 = "1v9cdpy6i3xl70g75zg33sqi4aqp20by0pyjhjg5iz24fxvfaw6c";
+ };
+
+ makeFlags = [ "PREFIX=$(out)"];
+ installFlags = [ "PREFIX=$(out)"];
+
+ buildInputs = [
+ libtoxcore libsodium ncurses curl gdk-pixbuf libnotify
+ ] ++ stdenv.lib.optionals (!stdenv.isAarch32) [
+ openal libopus libvpx freealut qrencode
+ ];
+ nativeBuildInputs = [ pkgconfig libconfig ];
+
+ meta = with stdenv.lib; {
+ description = "Reference CLI for Tox";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
new file mode 100644
index 000000000000..b6017277b0a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchpatch, python3Packages }:
+
+with stdenv.lib;
+with python3Packages;
+
+buildPythonPackage rec {
+ pname = "turses";
+ version = "0.3.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "15mkhm3b5ka42h8qph0mhh8izfc1200v7651c62k7ldcs50ib9j6";
+ };
+
+ checkInputs = [ mock pytest coverage tox ];
+ propagatedBuildInputs = [ urwid tweepy future ];
+
+ LC_ALL = "en_US.UTF-8";
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/louipc/turses/commit/be0961b51f502d49fd9e2e5253ac130e543a31c7.patch";
+ sha256 = "17s1n0275mcj03vkf3n39dmc09niwv4y7ssrfk7k3vqx22kppzg3";
+ })
+ # python 3.7+ support
+ (fetchpatch {
+ url = "https://github.com/booxter/turses/commit/e6e285eae50fc3d2042a476185fe60daef1e758e.patch";
+ sha256 = "0g2zsrny955viwgs2l6gpiiz8m67b5sgdcxkjmfimfvvih5sg79f";
+ })
+ ];
+
+ checkPhase = ''
+ TMP_TURSES=`echo turses-$RANDOM`
+ mkdir $TMP_TURSES
+ PYTHONPATH=tests:$PYTHONPATH HOME=$TMP_TURSES py.test tests/
+ rm -rf $TMP_TURSES
+ '';
+
+ postPatch = ''
+ sed -i -e 's|urwid==1.3.0|urwid==${getVersion urwid}|' setup.py
+ sed -i -e "s|future==0.14.3|future==${getVersion future}|" setup.py
+ sed -i -e "s|tweepy==3.3.0|tweepy==${getVersion tweepy}|" setup.py
+ sed -i -e "s|config.generate_config_file.assert_called_once()|assert config.generate_config_file.call_count == 1|" tests/test_config.py
+ sed -i -e "s|self.observer.update.assert_called_once()|assert self.observer.update.call_count == 1|" tests/test_meta.py
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/louipc/turses";
+ description = "A Twitter client for the console";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix
new file mode 100644
index 000000000000..b6f0b87dc848
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix
@@ -0,0 +1,84 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, libxml2
+, libsndfile
+, file
+, readline
+, bison
+, flex
+, ucommon
+, ccrtp
+, qtbase
+, qttools
+, qtquickcontrols2
+, alsaLib
+, speex
+, ilbc
+, fetchurl
+, mkDerivation
+, bcg729
+}:
+
+mkDerivation rec {
+ pname = "twinkle";
+ version = "1.10.2";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "LubosD";
+ rev = "v${version}";
+ sha256 = "0s0gi03xwvzp02ah4q6j33r9jx9nbayr6dxlg2ck9pwbay1nq1hx";
+ };
+
+ buildInputs = [
+ libxml2
+ file # libmagic
+ libsndfile
+ readline
+ ucommon
+ ccrtp
+ qtbase
+ qttools
+ qtquickcontrols2
+ alsaLib
+ speex
+ ilbc
+ ];
+
+ patches = [
+ # patch for bcg729 1.0.2+
+ (fetchurl { # https://github.com/LubosD/twinkle/pull/152
+ url = "https://github.com/LubosD/twinkle/compare/05082ae12051821b1d969e6672d9e4e5afe1bc07...7a6c533cda387652b5b4cb2a867be1a18585890c.patch";
+ sha256 = "39fc6cef3e88cfca8db44612b2d082fb618027b0f99509138d3c0d2777a494c2";
+ })
+ # patch manual link to not link to old url, which now points to NSFW page
+ (fetchurl { # https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07
+ url = "https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07.diff";
+ sha256 = "1iamragr9wp2vczsnp6n261fpr1ai2nc2abp0228jlar9zafksw0";
+ })
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ bison
+ flex
+ bcg729
+ ];
+
+ cmakeFlags = [
+ "-DWITH_G729=On"
+ "-DWITH_SPEEX=On"
+ "-DWITH_ILBC=On"
+ /* "-DWITH_DIAMONDCARD=On" seems ancient and broken */
+ ];
+
+ meta = with stdenv.lib; {
+ changelog = "https://github.com/LubosD/twinkle/blob/${version}/NEWS";
+ description = "A SIP-based VoIP client";
+ homepage = "http://twinkle.dolezel.info/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.mkg20001 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
new file mode 100644
index 000000000000..b360793e484b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, check, cmake, pkgconfig
+, libtoxcore, filter-audio, dbus, libvpx, libX11, openal, freetype, libv4l
+, libXrender, fontconfig, libXext, libXft, libsodium, libopus }:
+
+stdenv.mkDerivation rec {
+ pname = "utox";
+
+ version = "0.17.0";
+
+ src = fetchFromGitHub {
+ owner = "uTox";
+ repo = "uTox";
+ rev = "v${version}";
+ sha256 = "12wbq883il7ikldayh8hm0cjfrkp45vn05xx9s1jbfz6gmkidyar";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [
+ libtoxcore dbus libvpx libX11 openal freetype
+ libv4l libXrender fontconfig libXext libXft filter-audio
+ libsodium libopus
+ ];
+
+ nativeBuildInputs = [
+ cmake pkgconfig
+ ];
+
+ cmakeFlags = [
+ "-DENABLE_AUTOUPDATE=OFF"
+ "-DENABLE_TESTS=${if doCheck then "ON" else "OFF"}"
+ ];
+
+ doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+ checkInputs = [ check ];
+
+ meta = with stdenv.lib; {
+ description = "Lightweight Tox client";
+ homepage = "https://github.com/uTox/uTox";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ domenkozar ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix
new file mode 100644
index 000000000000..ed320d9679d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub
+ , qt4, qmake4Hook, openssl
+ , xorgproto, libX11, libXScrnSaver
+ , xz, zlib
+}:
+stdenv.mkDerivation {
+ pname = "vacuum-im";
+ version = "1.3.0.20160104";
+
+ src = fetchFromGitHub {
+ owner = "Vacuum-IM";
+ repo = "vacuum-im";
+ rev = "1.3.0.20160104-Alpha";
+ sha256 = "1jcw9c7s75y4c3m4skfc3cc0i519z39b23n997vj5mwcjplxyc76";
+ };
+
+ buildInputs = [
+ qt4 openssl xorgproto libX11 libXScrnSaver xz zlib
+ ];
+
+ # hack: needed to fix build issues in
+ # https://hydra.nixos.org/build/38322959/nixlog/1
+ # should be an upstream issue but it's easy to fix
+ NIX_LDFLAGS = "-lz";
+
+ nativeBuildInputs = [ qmake4Hook ];
+
+ preConfigure = ''
+ qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "An XMPP client fully composed of plugins";
+ maintainers = [ maintainers.raskin ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ homepage = "http://www.vacuum-im.org";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
new file mode 100644
index 000000000000..24ce75dc7974
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -0,0 +1,106 @@
+{fetchurl, stdenv, dpkg, makeWrapper,
+ alsaLib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1,
+ harfbuzz, libcap, libGL, libGLU, libpulseaudio, libxkbcommon, libxml2, libxslt,
+ nspr, nss, openssl, systemd, wayland, xorg, zlib, ...
+}:
+
+stdenv.mkDerivation {
+ pname = "viber";
+ version = "13.3.1.22";
+
+ src = fetchurl {
+ url = "https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb";
+ sha256 = "0rs26x0lycavybn6k1hbb5kzms0zzcmxlrmi4g8k7vyafj6s8dqh";
+ };
+
+ buildInputs = [ dpkg makeWrapper ];
+
+ dontUnpack = true;
+
+ libPath = stdenv.lib.makeLibraryPath [
+ alsaLib
+ cups
+ curl
+ dbus
+ expat
+ fontconfig
+ freetype
+ glib
+ gst_all_1.gst-plugins-base
+ gst_all_1.gstreamer
+ harfbuzz
+ libcap
+ libGLU libGL
+ libpulseaudio
+ libxkbcommon
+ libxml2
+ libxslt
+ nspr
+ nss
+ openssl
+ stdenv.cc.cc
+ systemd
+ wayland
+ zlib
+
+ xorg.libICE
+ xorg.libSM
+ xorg.libX11
+ xorg.libxcb
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXScrnSaver
+ xorg.libXtst
+ xorg.xcbutilimage
+ xorg.xcbutilkeysyms
+ xorg.xcbutilrenderutil
+ xorg.xcbutilwm
+ ]
+ ;
+
+ installPhase = ''
+ dpkg-deb -x $src $out
+ mkdir -p $out/bin
+
+ # Soothe nix-build "suspicions"
+ chmod -R g-w $out
+
+ for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
+ patchelf --set-rpath $libPath:$out/opt/viber/lib $file || true
+ done
+
+ # qt.conf is not working, so override everything using environment variables
+ wrapProgram $out/opt/viber/Viber \
+ --set QT_PLUGIN_PATH "$out/opt/viber/plugins" \
+ --set QT_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" \
+ --set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale"
+ ln -s $out/opt/viber/Viber $out/bin/viber
+
+ mv $out/usr/share $out/share
+ rm -rf $out/usr
+
+ # Fix the desktop link
+ substituteInPlace $out/share/applications/viber.desktop \
+ --replace /opt/viber/Viber $out/opt/viber/Viber \
+ --replace /usr/share/ $out/share/
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ meta = {
+ homepage = "http://www.viber.com";
+ description = "An instant messaging and Voice over IP (VoIP) app";
+ license = stdenv.lib.licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with stdenv.lib.maintainers; [ jagajaga ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
new file mode 100644
index 000000000000..2910c389daac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchurl, rpmextract, autoPatchelfHook
+, xorg, gtk3, gnome2, nss, alsaLib, udev, libnotify
+, wrapGAppsHook }:
+
+let
+ version = "5.0.1";
+in stdenv.mkDerivation {
+ pname = "vk-messenger";
+ inherit version;
+ src = {
+ i686-linux = fetchurl {
+ url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm";
+ sha256 = "1ji23x13lzbkiqfrrwx1pj6gmms0p58cjmjc0y4g16kqhlxl60v6";
+ };
+ x86_64-linux = fetchurl {
+ url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm";
+ sha256 = "01vvmia2qrxvrvavk9hkkyvfg4pg15m01grwb28884vy4nqw400y";
+ };
+ }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+
+ nativeBuildInputs = [ rpmextract autoPatchelfHook wrapGAppsHook ];
+ buildInputs = (with xorg; [
+ libXdamage libXtst libXScrnSaver libxkbfile
+ ]) ++ [
+ gtk3 nss alsaLib
+ ];
+ runtimeDependencies = [ (lib.getLib udev) libnotify ];
+
+ unpackPhase = ''
+ rpmextract $src
+ '';
+
+ buildPhase = ''
+ substituteInPlace usr/share/applications/vk.desktop \
+ --replace /usr/share/pixmaps/vk.png vk
+ '';
+
+ installPhase = ''
+ mkdir $out
+ cd usr
+ cp -r --parents bin $out
+ cp -r --parents share/vk $out
+ cp -r --parents share/applications $out
+ cp -r --parents share/pixmaps $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple and Convenient Messaging App for VK";
+ homepage = "https://vk.com/messenger";
+ license = licenses.unfree;
+ maintainers = [ maintainers.gnidorah ];
+ platforms = ["i686-linux" "x86_64-linux"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix
new file mode 100644
index 000000000000..bdc8aabf61cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix
@@ -0,0 +1,68 @@
+{ alsaLib, autoPatchelfHook, fetchurl, gtk3, libnotify
+, makeDesktopItem, makeWrapper, nss, stdenv, udev, xdg_utils
+, xorg
+}:
+
+with stdenv.lib;
+
+let
+ bits = "x86_64";
+
+ version = "4.11.3";
+
+ desktopItem = makeDesktopItem rec {
+ name = "Wavebox";
+ exec = "wavebox";
+ icon = "wavebox";
+ desktopName = name;
+ genericName = name;
+ categories = "Network;";
+ };
+
+ tarball = "Wavebox_${replaceStrings ["."] ["_"] (toString version)}_linux_${bits}.tar.gz";
+
+in stdenv.mkDerivation {
+ pname = "wavebox";
+ inherit version;
+ src = fetchurl {
+ url = "https://github.com/wavebox/waveboxapp/releases/download/v${version}/${tarball}";
+ sha256 = "0z04071lq9bfyrlg034fmvd4346swgfhxbmsnl12m7c2m2b9z784";
+ };
+
+ # don't remove runtime deps
+ dontPatchELF = true;
+
+ nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+
+ buildInputs = with xorg; [
+ libXdmcp libXScrnSaver libXtst
+ ] ++ [
+ alsaLib gtk3 nss
+ ];
+
+ runtimeDependencies = [ (getLib udev) libnotify ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/opt/wavebox
+ cp -r * $out/opt/wavebox
+
+ # provide desktop item and icon
+ mkdir -p $out/share/applications $out/share/pixmaps
+ ln -s ${desktopItem}/share/applications/* $out/share/applications
+ ln -s $out/opt/wavebox/Wavebox-linux-x64/wavebox_icon.png $out/share/pixmaps/wavebox.png
+ '';
+
+ postFixup = ''
+ makeWrapper $out/opt/wavebox/Wavebox $out/bin/wavebox \
+ --prefix PATH : ${xdg_utils}/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Wavebox messaging application";
+ homepage = "https://wavebox.io";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ rawkode ];
+ platforms = ["x86_64-linux"];
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
new file mode 100644
index 000000000000..b198b954bd40
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -0,0 +1,154 @@
+{ atomEnv
+, autoPatchelfHook
+, dpkg
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, stdenv
+, lib
+, udev
+, wrapGAppsHook
+, cpio
+, xar
+, libdbusmenu
+}:
+
+let
+
+ inherit (stdenv.hostPlatform) system;
+
+ throwSystem = throw "Unsupported system: ${system}";
+
+ pname = "wire-desktop";
+
+ version = {
+ x86_64-darwin = "3.21.3959";
+ x86_64-linux = "3.21.2936";
+ }.${system} or throwSystem;
+
+ sha256 = {
+ x86_64-darwin = "0fgzzqf1wnkjbcr0j0vjn6sggkz0z1kx6w4gi7gk4c4markdicm1";
+ x86_64-linux = "033804nkz1fdmq3p8iplrlx708x1fjlr09bmrpy36lqg5h7m3yd6";
+ }.${system} or throwSystem;
+
+ meta = with stdenv.lib; {
+ description = "A modern, secure messenger for everyone";
+ longDescription = ''
+ Wire Personal is a secure, privacy-friendly messenger. It combines useful
+ and fun features, audited security, and a beautiful, distinct user
+ interface. It does not require a phone number to register and chat.
+
+ * End-to-end encrypted chats, calls, and files
+ * Crystal clear voice and video calling
+ * File and screen sharing
+ * Timed messages and chats
+ * Synced across your phone, desktop and tablet
+ '';
+ homepage = "https://wire.com/";
+ downloadPage = "https://wire.com/download/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [
+ arianvp
+ kiwi
+ toonn
+ worldofpeace
+ ];
+ platforms = [
+ "x86_64-darwin"
+ "x86_64-linux"
+ ];
+ };
+
+ linux = stdenv.mkDerivation rec {
+ inherit pname version meta;
+
+ src = fetchurl {
+ url = "https://wire-app.wire.com/linux/debian/pool/main/"
+ + "Wire-${version}_amd64.deb";
+ inherit sha256;
+ };
+
+ desktopItem = makeDesktopItem {
+ categories = "Network;InstantMessaging;Chat;VideoConference";
+ comment = "Secure messenger for everyone";
+ desktopName = "Wire";
+ exec = "wire-desktop %U";
+ genericName = "Secure messenger";
+ icon = "wire-desktop";
+ name = "wire-desktop";
+ extraEntries = ''
+ StartupWMClass=Wire
+ '';
+ };
+
+ dontBuild = true;
+ dontConfigure = true;
+ dontPatchELF = true;
+ dontWrapGApps = true;
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ dpkg
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ buildInputs = atomEnv.packages;
+
+ unpackPhase = "dpkg-deb -x $src .";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp -R "opt" "$out"
+ cp -R "usr/share" "$out/share"
+ chmod -R g-w "$out"
+
+ # Desktop file
+ mkdir -p "$out/share/applications"
+ cp "${desktopItem}/share/applications/"* "$out/share/applications"
+ '';
+
+ runtimeDependencies = [
+ (lib.getLib udev)
+ libdbusmenu
+ ];
+
+ postFixup = ''
+ makeWrapper $out/opt/Wire/wire-desktop $out/bin/wire-desktop \
+ "''${gappsWrapperArgs[@]}"
+ '';
+ };
+
+ darwin = stdenv.mkDerivation {
+ inherit pname version meta;
+
+ src = fetchurl {
+ url = "https://github.com/wireapp/wire-desktop/releases/download/"
+ + "macos%2F${version}/Wire.pkg";
+ inherit sha256;
+ };
+
+ buildInputs = [
+ cpio
+ xar
+ ];
+
+ unpackPhase = ''
+ xar -xf $src
+ cd com.wearezeta.zclient.mac.pkg
+ '';
+
+ buildPhase = ''
+ cat Payload | gunzip -dc | cpio -i
+ '';
+
+ installPhase = ''
+ mkdir -p $out/Applications
+ cp -r Wire.app $out/Applications
+ '';
+ };
+
+in
+if stdenv.isDarwin
+then darwin
+else linux
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix
new file mode 100644
index 000000000000..52cf8e3279a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "xmpp-client";
+ version = "20160916-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "abbf9020393e8caae3e8996a16ce48446e31cf0e";
+
+ goPackagePath = "github.com/agl/xmpp-client";
+
+ src = fetchFromGitHub {
+ owner = "agl";
+ repo = "xmpp-client";
+ inherit rev;
+ sha256 = "0j9mfr208cachzm39i8b94v5qk9hws278vv2ms9ma4wn16wns81s";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "An XMPP client with OTR support";
+ homepage = "https://github.com/agl/xmpp-client";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ codsl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix
new file mode 100644
index 000000000000..caa41024fc61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4";
+ sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6";
+ sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix
new file mode 100644
index 000000000000..8cb22aabc69b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "ytalk";
+ version = "3.3.0";
+
+ src = fetchurl {
+ url = "ftp://ftp.ourproject.org/pub/ytalk/${pname}-${version}.tar.gz";
+ sha256 = "1d3jhnj8rgzxyxjwfa22vh45qwzjvxw1qh8fz6b7nfkj3zvk9jvf";
+ };
+
+ buildInputs = [ ncurses ];
+
+ meta = {
+ homepage = "http://ytalk.ourproject.org";
+ description = "A terminal based talk client";
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ taeer ];
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
new file mode 100644
index 000000000000..887e3f458bc4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -0,0 +1,136 @@
+{ stdenv, fetchurl, mkDerivation, autoPatchelfHook, bash
+, fetchFromGitHub
+# Dynamic libraries
+, dbus, glib, libGL, libX11, libXfixes, libuuid, libxcb, qtbase, qtdeclarative
+, qtgraphicaleffects, qtimageformats, qtlocation, qtquickcontrols
+, qtquickcontrols2, qtscript, qtsvg , qttools, qtwayland, qtwebchannel
+, qtwebengine
+# Runtime
+, coreutils, faac, pciutils, procps, util-linux
+, pulseaudioSupport ? true, libpulseaudio ? null
+, alsaSupport ? stdenv.isLinux, alsaLib ? null
+}:
+
+assert pulseaudioSupport -> libpulseaudio != null;
+
+let
+ inherit (stdenv.lib) concatStringsSep makeBinPath optional;
+
+ version = "5.4.53350.1027";
+ srcs = {
+ x86_64-linux = fetchurl {
+ url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
+ sha256 = "11va3px42y81bwy10mxm7mk0kf2sni9gwb422pq9djck2dgchw5x";
+ };
+ };
+
+ # Used for icons, appdata, and desktop file.
+ desktopIntegration = fetchFromGitHub {
+ owner = "flathub";
+ repo = "us.zoom.Zoom";
+ rev = "25e14f8141cdc682b4f7d9ebe15608619f5a19f2";
+ sha256 = "0w3pdd5484r3nsb4iahi37jdlm37vm1053sb8k2zlqb9s554zjwp";
+ };
+
+in mkDerivation {
+ pname = "zoom-us";
+ inherit version;
+
+ src = srcs.${stdenv.hostPlatform.system};
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+
+ buildInputs = [
+ dbus glib libGL libX11 libXfixes libuuid libxcb faac qtbase
+ qtdeclarative qtgraphicaleffects qtlocation qtquickcontrols qtquickcontrols2
+ qtscript qtwebchannel qtwebengine qtimageformats qtsvg qttools qtwayland
+ ];
+
+ runtimeDependencies = optional pulseaudioSupport libpulseaudio
+ ++ optional alsaSupport alsaLib;
+
+ installPhase =
+ let
+ files = concatStringsSep " " [
+ "*.pcm"
+ "*.png"
+ "ZoomLauncher"
+ "config-dump.sh"
+ "timezones"
+ "translations"
+ "version.txt"
+ "zcacert.pem"
+ "zoom"
+ "zoom.sh"
+ "zopen"
+ ];
+ in ''
+ runHook preInstall
+
+ mkdir -p $out/{bin,share/zoom-us}
+
+ cp -ar ${files} $out/share/zoom-us
+
+ # TODO Patch this somehow; tries to dlopen './libturbojpeg.so' from cwd
+ cp libturbojpeg.so $out/share/zoom-us/libturbojpeg.so
+
+ # Again, requires faac with a nonstandard filename.
+ ln -s $(readlink -e "${faac}/lib/libfaac.so") $out/share/zoom-us/libfaac1.so
+
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/{applications,appdata,icons}
+
+ # Desktop File
+ cp ${desktopIntegration}/us.zoom.Zoom.desktop $out/share/applications
+ substituteInPlace $out/share/applications/us.zoom.Zoom.desktop \
+ --replace "Exec=zoom" "Exec=$out/bin/zoom-us"
+
+ # Appdata
+ cp ${desktopIntegration}/us.zoom.Zoom.appdata.xml $out/share/appdata
+
+ # Icons
+ for icon_size in 64 96 128 256; do
+ path=$icon_size'x'$icon_size
+ icon=${desktopIntegration}/us.zoom.Zoom.$icon_size.png
+
+ mkdir -p $out/share/icons/hicolor/$path/apps
+ cp $icon $out/share/icons/hicolor/$path/apps/us.zoom.Zoom.png
+ done
+ '';
+
+ # $out/share/zoom-us isn't in auto-wrap directories list, need manual wrapping
+ dontWrapQtApps = true;
+
+ qtWrapperArgs = [
+ ''--prefix PATH : ${makeBinPath [ coreutils glib.dev pciutils procps qttools.dev util-linux ]}''
+ # --run "cd ${placeholder "out"}/share/zoom-us"
+ # ^^ unfortunately, breaks run arg into multiple array elements, due to
+ # some bad array propagation. We'll do that in bash below
+ ];
+
+ postFixup = ''
+ # Zoom expects "zopen" executable (needed for web login) to be present in CWD. Or does it expect
+ # everybody runs Zoom only after cd to Zoom package directory? Anyway, :facepalm:
+ qtWrapperArgs+=( --run "cd ${placeholder "out"}/share/zoom-us" )
+
+ for app in ZoomLauncher zopen zoom; do
+ wrapQtApp $out/share/zoom-us/$app
+ done
+
+ ln -s $out/share/zoom-us/ZoomLauncher $out/bin/zoom-us
+ '';
+
+ passthru.updateScript = ./update.sh;
+
+ meta = {
+ homepage = "https://zoom.us/";
+ description = "zoom.us video conferencing application";
+ license = stdenv.lib.licenses.unfree;
+ platforms = builtins.attrNames srcs;
+ maintainers = with stdenv.lib.maintainers; [ danbst tadfisher doronbehar ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
new file mode 100755
index 000000000000..bda9c5ae0a07
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl pup common-updater-scripts
+
+set -eu -o pipefail
+
+version="$(curl -Ls https://zoom.us/download\?os\=linux | pup '.linux-ver-text text{}' | cut -d' ' -f2)"
+
+update-source-version zoom-us "$version"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
new file mode 100644
index 000000000000..8f4b2200cc55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, python3
+, fetchFromGitHub
+, glibcLocales
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "zulip-term";
+ version = "0.5.2";
+
+ # no tests on PyPI
+ src = fetchFromGitHub {
+ owner = "zulip";
+ repo = "zulip-terminal";
+ rev = version;
+ sha256 = "1xhhy3v4wck74a83avil0rnmsi2grrh03cww19n5mv80p2q1cjmf";
+ };
+
+ patches = [
+ ./pytest-executable-name.patch
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ urwid
+ zulip
+ urwid-readline
+ beautifulsoup4
+ lxml
+ mypy-extensions
+ ];
+
+ checkInputs = [
+ glibcLocales
+ ] ++ (with python3.pkgs; [
+ pytestCheckHook
+ pytestcov
+ pytest-mock
+ ]);
+
+ meta = with lib; {
+ description = "Zulip's official terminal client";
+ homepage = "https://github.com/zulip/zulip-terminal";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ dotlambda ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch
new file mode 100644
index 000000000000..4602a254ab88
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/cli/test_run.py b/tests/cli/test_run.py
+index 459aa82..c6e434e 100644
+--- a/tests/cli/test_run.py
++++ b/tests/cli/test_run.py
+@@ -180,7 +180,7 @@ def test_main_multiple_autohide_options(capsys, options):
+ assert str(e.value) == "2"
+ captured = capsys.readouterr()
+ lines = captured.err.strip('\n')
+- lines = lines.split("pytest: ", 1)[1]
++ lines = lines.split("__main__.py: ", 1)[1]
+ expected = ("error: argument {}: not allowed "
+ "with argument {}".format(options[1], options[0]))
+ assert lines == expected
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
new file mode 100644
index 000000000000..a177499154ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchurl
+, appimageTools
+}:
+
+let
+ pname = "zulip";
+ version = "5.5.0";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
+ sha256 = "059zfcvaq8wnsz2lfd4gdb17b6nngqk3vgisy2kb29ifqf3lpzqi";
+ name="${pname}-${version}.AppImage";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D ${appimageContents}/zulip.desktop $out/share/applications/zulip.desktop
+ install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/zulip.png \
+ $out/share/icons/hicolor/512x512/apps/zulip.png
+ substituteInPlace $out/share/applications/zulip.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with lib; {
+ description = "Desktop client for Zulip Chat";
+ homepage = "https://zulip.com";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ jonafato ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/insync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/insync/default.nix
new file mode 100644
index 000000000000..c864754403ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/insync/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, makeWrapper, autoPatchelfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "insync";
+ version = "1.5.7.37371";
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "http://s.insynchq.com/builds/insync-portable_${version}_amd64.tar.bz2";
+ sha256 = "1cm3q6y2crw6pcsvh21sbkmh1hin7xl4fyslc96nbyql8rxsky5n";
+ }
+ else
+ throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
+
+ buildInputs = [ makeWrapper ];
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+
+ postPatch = ''
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" client/insync-portable
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -a client $out/client
+ makeWrapper $out/client/insync-portable $out/bin/insync --set LC_TIME C
+ '';
+
+ meta = {
+ platforms = ["x86_64-linux"];
+ license = stdenv.lib.licenses.unfree;
+ maintainers = [ stdenv.lib.maintainers.benley ];
+ homepage = "https://www.insynchq.com";
+ description = "Google Drive sync and backup with multiple account support";
+ longDescription = ''
+ Insync is a commercial application that syncs your Drive files to your
+ computer. It has more advanced features than Google's official client
+ such as multiple account support, Google Doc conversion, symlink support,
+ and built in sharing.
+
+ There is a 15-day free trial, and it is a paid application after that.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
new file mode 100644
index 000000000000..39f4d0d23343
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "ipfs-cluster";
+ version = "0.13.0";
+ rev = "v${version}";
+
+ vendorSha256 = "00fkyxxi4iz16v0j33270x8qrspqpsv9j6csnikjy0klyb038pfq";
+
+ doCheck = false;
+
+ src = fetchFromGitHub {
+ owner = "ipfs";
+ repo = "ipfs-cluster";
+ inherit rev;
+ sha256 = "0jf3ngxqkgss5f1kifp5lp3kllb21jxc475ysl01ma8l3smqdvya";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Allocate, replicate, and track Pins across a cluster of IPFS daemons";
+ homepage = "https://cluster.ipfs.io/";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ jglukasik ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix
new file mode 100644
index 000000000000..d2339fbe8999
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "ipfs-migrator";
+ version = "1.6.4";
+
+ src = fetchFromGitHub {
+ owner = "ipfs";
+ repo = "fs-repo-migrations";
+ rev = "v${version}";
+ sha256 = "004qqcwcw55q13r3sr273dfa5zgxc275pcgqwihzbikl3i168d9f";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ meta = with lib; {
+ description = "Migrations for the filesystem repository of ipfs clients";
+ homepage = "https://ipfs.io/";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ elitak ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs/default.nix
new file mode 100644
index 000000000000..01e808a9e725
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ipfs/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, buildGoModule, fetchurl, nixosTests }:
+
+buildGoModule rec {
+ pname = "ipfs";
+ version = "0.7.0";
+ rev = "v${version}";
+
+ # go-ipfs makes changes to it's source tarball that don't match the git source.
+ src = fetchurl {
+ url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
+ sha256 = "1fkzwm4qxxpmbjammk6s5qcyjxivfa0ydqz4mpz1w756c4jq0jf3";
+ };
+
+ # tarball contains multiple files/directories
+ postUnpack = ''
+ mkdir ipfs-src
+ shopt -s extglob
+ mv !(ipfs-src) ipfs-src || true
+ cd ipfs-src
+ '';
+
+ sourceRoot = ".";
+
+ subPackages = [ "cmd/ipfs" ];
+
+ passthru.tests.ipfs = nixosTests.ipfs;
+
+ vendorSha256 = null;
+
+ postInstall = ''
+ install --mode=444 -D misc/systemd/ipfs.service $out/etc/systemd/system/ipfs.service
+ install --mode=444 -D misc/systemd/ipfs-api.socket $out/etc/systemd/system/ipfs-api.socket
+ install --mode=444 -D misc/systemd/ipfs-gateway.socket $out/etc/systemd/system/ipfs-gateway.socket
+ substituteInPlace $out/etc/systemd/system/ipfs.service \
+ --replace /usr/bin/ipfs $out/bin/ipfs
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A global, versioned, peer-to-peer filesystem";
+ homepage = "https://ipfs.io/";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ fpletz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ipget/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ipget/default.nix
new file mode 100644
index 000000000000..f16031e9dc82
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ipget/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "ipget";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "ipfs";
+ repo = "ipget";
+ rev = "v${version}";
+ sha256 = "14ygij6hj6bd4g4aw6jgfbi1fgpal0jgf1hr22zxm16dpx3vva6b";
+ };
+
+ vendorSha256 = "0vy21pdqk6q5fw7wlcv51myhh9y79n2qhvy61rmblwhxlrkh6sdv";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Retrieve files over IPFS and save them locally";
+ homepage = "https://ipfs.io/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Luflosi ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix
new file mode 100644
index 000000000000..1fc81be240bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ version = "1.1.4";
+ pname = "iptraf-ng";
+
+ src = fetchurl {
+ url = "https://fedorahosted.org/releases/i/p/iptraf-ng/${pname}-${version}.tar.gz";
+ sha256 = "02gb8z9h2s6s1ybyikywz7jgb1mafdx88hijfasv3khcgkq0q53r";
+ };
+
+ buildInputs = [ ncurses ];
+
+ configurePhase = ''
+ ./configure --prefix=$out/usr --sysconfdir=$out/etc \
+ --localstatedir=$out/var --sbindir=$out/bin
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ meta = {
+ description = "A console-based network monitoring utility (fork of iptraf)";
+ longDescription = ''
+ IPTraf-ng is a console-based network monitoring utility. IPTraf-ng
+ gathers data like TCP connection packet and byte counts, interface
+ statistics and activity indicators, TCP/UDP traffic breakdowns, and LAN
+ station packet and byte counts. IPTraf-ng features include an IP traffic
+ monitor which shows TCP flag information, packet and byte counts, ICMP
+ details, OSPF packet types, and oversized IP packet warnings; interface
+ statistics showing IP, TCP, UDP, ICMP, non-IP and other IP packet counts,
+ IP checksum errors, interface activity and packet size counts; a TCP and
+ UDP service monitor showing counts of incoming and outgoing packets for
+ common TCP and UDP application ports, a LAN statistics module that
+ discovers active hosts and displays statistics about their activity; TCP,
+ UDP and other protocol display filters so you can view just the traffic
+ you want; logging; support for Ethernet, FDDI, ISDN, SLIP, PPP, and
+ loopback interfaces; and utilization of the built-in raw socket interface
+ of the Linux kernel, so it can be used on a wide variety of supported
+ network cards.
+ '';
+ homepage = "https://fedorahosted.org/iptraf-ng/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/iptraf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/iptraf/default.nix
new file mode 100644
index 000000000000..e57c8bbae0fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/iptraf/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, ncurses}:
+
+stdenv.mkDerivation {
+ name = "iptraf-3.0.1";
+
+ src = fetchurl {
+ url = "ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.1.tar.gz";
+ sha256 = "12n059j9iihhpf6spmlaspqzxz3wqan6kkpnhmlj08jdijpnk84m";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ patchPhase = ''
+ sed -i -e 's,#include <linux/if_tr.h>,#include <netinet/if_tr.h>,' src/*
+ '';
+
+ preConfigure = "cd src";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp iptraf $out/bin
+ '';
+
+ buildInputs = [ncurses];
+
+ meta = {
+ homepage = "http://iptraf.seul.org/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ description = "Console-based network statistics utility for Linux";
+ platforms = stdenv.lib.platforms.linux;
+ broken = true; # required isdn headers have been removed from the linux kernel
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/bip/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/bip/default.nix
new file mode 100644
index 000000000000..af67c224e7d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/bip/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, fetchpatch, bison, flex, autoconf, automake, openssl }:
+
+stdenv.mkDerivation rec {
+ pname = "bip";
+ version = "0.8.9";
+
+ # fetch sources from debian, because the creator's website provides
+ # the files only via https but with an untrusted certificate.
+ src = fetchurl {
+ url = "mirror://debian/pool/main/b/bip/bip_${version}.orig.tar.gz";
+ sha256 = "0q942g9lyd8pjvqimv547n6vik5759r9npw3ws3bdj4ixxqhz59w";
+ };
+
+ buildInputs = [ bison flex autoconf automake openssl ];
+
+ # includes an important security patch
+ patches = [
+ (fetchpatch {
+ url = "mirror://gentoo/../gentoo-portage/net-irc/bip/files/bip-freenode.patch";
+ sha256 = "05qy7a62p16f5knrsdv2lkhc07al18qq32ciq3k4r0lq1wbahj2y";
+ })
+ (fetchpatch {
+ url = "https://projects.duckcorp.org/projects/bip/repository/revisions/39414f8ff9df63c8bc2e4eee34f09f829a5bf8f5/diff/src/connection.c?format=diff";
+ sha256 = "1hvg58vci6invh0z19wf04jjvnm8w6f6v4c4nk1j5hc3ymxdp1rb";
+ })
+ (fetchpatch {
+ url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/87192685f55856d2c28021963ab2c308e21faddc/diff?format=diff";
+ sha256 = "0rspzp7q1lq8v0cl0c35xxpgisfk264i648vslgsjax2s0g9svx0";
+ })
+ (fetchpatch {
+ url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/814d54c676d5827f6ea37c1cd2d6e846d080c13c/diff?format=diff";
+ sha256 = "137l77kmm6p9p4c4kvw2zc4xkr10ayyc9z5rlpwn67574h47v55i";
+ })
+ (fetchpatch {
+ url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/d2dcb0adb1aa8c2c4526aa6ad650483b0e02ab7d/diff?format=diff";
+ sha256 = "1pvywaljdkmy4870xs6gvsk4qwg69h47qr0yjywbcdsfycrgp8aq";
+ })
+ ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=unused-result -Wno-error=duplicate-decl-specifier";
+
+ meta = {
+ description = "An IRC proxy (bouncer)";
+ homepage = "http://bip.milkypond.org/";
+ license = stdenv.lib.licenses.gpl2;
+ downloadPage = "https://projects.duckcorp.org/projects/bip/files";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
new file mode 100644
index 000000000000..f3a840e23d0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
@@ -0,0 +1,49 @@
+{ fetchgit, libcommuni, qtbase, qmake, stdenv }:
+
+stdenv.mkDerivation rec {
+ pname = "communi";
+ version = "3.5.0";
+
+ src = fetchgit {
+ url = "https://github.com/communi/communi-desktop.git";
+ rev = "v${version}";
+ sha256 = "10grskhczh8601s90ikdsbjabgr9ypcp2j7vivjkl456rmg6xbji";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ qmake ];
+
+ buildInputs = [ libcommuni qtbase ];
+
+ enableParallelBuilding = true;
+
+ preConfigure = ''
+ export QMAKEFEATURES=${libcommuni}/features
+ '';
+
+ qmakeFlags = [
+ "COMMUNI_INSTALL_PREFIX=${placeholder "out"}"
+ "COMMUNI_INSTALL_BINS=${placeholder "out"}/bin"
+ "COMMUNI_INSTALL_PLUGINS=${placeholder "out"}/lib/communi/plugins"
+ "COMMUNI_INSTALL_ICONS=${placeholder "out"}/share/icons/hicolor"
+ "COMMUNI_INSTALL_DESKTOP=${placeholder "out"}/share/applications"
+ "COMMUNI_INSTALL_THEMES=${placeholder "out"}/share/communi/themes"
+ ];
+
+ postInstall = stdenv.lib.optionalString stdenv.isLinux ''
+ substituteInPlace "$out/share/applications/communi.desktop" \
+ --replace "/usr/bin" "$out/bin"
+ '';
+
+ preFixup = ''
+ rm -rf lib
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple and elegant cross-platform IRC client";
+ homepage = "https://github.com/communi/communi-desktop";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ hrdinka ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/convos/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
new file mode 100644
index 000000000000..551953d43375
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper, shortenPerlShebang
+, nixosTests
+}:
+
+with stdenv.lib;
+
+perlPackages.buildPerlPackage rec {
+ pname = "convos";
+ version = "5.00";
+
+ src = fetchFromGitHub {
+ owner = "Nordaaker";
+ repo = pname;
+ rev = version;
+ sha256 = "0mdbh9q1vclwgnjwvb3z637s7v804h65zxazbhmd7qi3zislnhg1";
+ };
+
+ nativeBuildInputs = [ makeWrapper ]
+ ++ optional stdenv.isDarwin [ shortenPerlShebang ];
+
+ buildInputs = with perlPackages; [
+ CryptEksblowfish FileHomeDir FileReadBackwards
+ IOSocketSSL IRCUtils JSONValidator LinkEmbedder ModuleInstall
+ Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginWebpack
+ ParseIRC TextMarkdown TimePiece UnicodeUTF8
+ CpanelJSONXS EV
+ ];
+
+ checkInputs = with perlPackages; [ TestDeep TestMore ];
+
+ postPatch = ''
+ patchShebangs script/convos
+ '';
+
+ preCheck = ''
+ # Remove online test
+ #
+ rm t/web-pwa.t
+
+ # A test fails since gethostbyaddr(127.0.0.1) fails to resolve to localhost in
+ # the sandbox, we replace the this out from a substitution expression
+ #
+ substituteInPlace t/web-register-open-to-public.t \
+ --replace '!127.0.0.1!' '!localhost!'
+
+ # Module::Install is a runtime dependency not covered by the tests, so we add
+ # a test for it.
+ #
+ echo "use Test::More tests => 1;require_ok('Module::Install')" \
+ > t/00_nixpkgs_module_install.t
+ '';
+
+ # Convos expects to find assets in both auto/share/dist/Convos, and $MOJO_HOME
+ # which is set to $out
+ #
+ postInstall = ''
+ AUTO_SHARE_PATH=$out/${perl.libPrefix}/auto/share/dist/Convos
+ mkdir -p $AUTO_SHARE_PATH
+ cp -vR public assets $AUTO_SHARE_PATH/
+ ln -s $AUTO_SHARE_PATH/public/asset $out/asset
+ cp -vR templates $out/templates
+ cp cpanfile $out/cpanfile
+ '' + optionalString stdenv.isDarwin ''
+ shortenPerlShebang $out/bin/convos
+ '' + ''
+ wrapProgram $out/bin/convos --set MOJO_HOME $out
+ '';
+
+ passthru.tests = nixosTests.convos;
+
+ meta = {
+ homepage = "https://convos.chat";
+ description = "Convos is the simplest way to use IRC in your browser";
+ license = stdenv.lib.licenses.artistic2;
+ maintainers = with maintainers; [ sgo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix
new file mode 100644
index 000000000000..cb2fa4ae6823
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, openssl, ncurses, libiconv, tcl, coreutils, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "epic5";
+ version = "2.0.1";
+
+ src = fetchurl {
+ url = "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/${pname}-${version}.tar.xz";
+ sha256 = "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm";
+ };
+
+ # Darwin needs libiconv, tcl; while Linux build don't
+ buildInputs = [ openssl ncurses ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv tcl ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://sources.debian.net/data/main/e/epic5/2.0.1-1/debian/patches/openssl-1.1.patch";
+ sha256 = "03bpsyv1sr5icajs2qkdvv8nnn6rz6yvvj7pgiq8gz9sbp6siyfv";
+ })
+ ];
+
+ configureFlags = [ "--disable-debug" "--with-ipv6" ];
+
+ postConfigure = ''
+ substituteInPlace bsdinstall \
+ --replace /bin/cp ${coreutils}/bin/cp \
+ --replace /bin/rm ${coreutils}/bin/rm \
+ --replace /bin/chmod ${coreutils}/bin/chmod \
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://epicsol.org";
+ description = "A IRC client that offers a great ircII interface";
+ license = licenses.bsd3;
+ maintainers = [];
+ };
+}
+
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix
new file mode 100644
index 000000000000..59278dddad1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix
@@ -0,0 +1,27 @@
+{ fetchFromGitHub, stdenv }:
+
+stdenv.mkDerivation rec {
+ pname = "glowing-bear";
+ version = "0.7.2";
+
+ src = fetchFromGitHub {
+ rev = version;
+ owner = "glowing-bear";
+ repo = "glowing-bear";
+ sha256 = "14a3fqsmi28g7j3lzk4l4m47p2iml1aaf3514wazn2clw48lnqhw";
+ };
+
+ installPhase = ''
+ mkdir $out
+ cp index.html min.js serviceworker.js webapp.manifest.json $out
+ cp -R 3rdparty assets css directives js $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A web client for Weechat";
+ homepage = "https://github.com/glowing-bear/glowing-bear";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ delroth ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix
new file mode 100644
index 000000000000..c5b2a9f1b28e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, gtk2, lua, perl, python3
+, pciutils, dbus-glib, libcanberra-gtk2, libproxy
+, enchant2, libnotify, openssl, isocodes
+, desktop-file-utils
+, meson, ninja
+}:
+
+stdenv.mkDerivation rec {
+ pname = "hexchat";
+ version = "2.14.3";
+
+ src = fetchFromGitHub {
+ owner = "hexchat";
+ repo = "hexchat";
+ rev = "v${version}";
+ sha256 = "08kvp0dcn3bvmlqcfp9312075bwkqkpa8m7zybr88pfp210gfl85";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig ];
+
+ buildInputs = [
+ gtk2 lua perl python3 pciutils dbus-glib libcanberra-gtk2 libproxy
+ libnotify openssl desktop-file-utils
+ isocodes
+ ];
+
+ #hexchat and hexchat-text loads enchant spell checking library at run time and so it needs to have route to the path
+ postPatch = ''
+ sed -i "s,libenchant-2.so.2,${enchant2}/lib/libenchant-2.so.2,g" src/fe-gtk/sexy-spell-entry.c
+ sed -i "/flag.startswith('-I')/i if flag.contains('no-such-path')\ncontinue\nendif" plugins/perl/meson.build
+ chmod +x meson_post_install.py
+ for f in meson_post_install.py \
+ src/common/make-te.py \
+ plugins/perl/generate_header.py \
+ po/validate-textevent-translations
+ do
+ patchShebangs $f
+ done
+ '';
+
+ mesonFlags = [ "-Dwith-lua=lua" "-Dwith-text=true" ];
+
+ meta = with stdenv.lib; {
+ description = "A popular and easy to use graphical IRC (chat) client";
+ homepage = "https://hexchat.github.io/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/ii/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/ii/default.nix
new file mode 100644
index 000000000000..163dec194b15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/ii/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ name = "ii-1.8";
+
+ src = fetchurl {
+ url = "https://dl.suckless.org/tools/${name}.tar.gz";
+ sha256 = "1lk8vjl7i8dcjh4jkg8h8bkapcbs465sy8g9c0chfqsywbmf3ndr";
+ };
+
+ installPhase = ''
+ make install PREFIX=$out
+ '';
+
+ meta = {
+ homepage = "https://tools.suckless.org/ii/";
+ license = stdenv.lib.licenses.mit;
+ description = "Irc it, simple FIFO based irc client";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix
new file mode 100644
index 000000000000..93ab9f828f64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix
@@ -0,0 +1,38 @@
+{ appimageTools, fetchurl, lib }:
+
+let
+ pname = "irccloud";
+ version = "0.13.0";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/irccloud/irccloud-desktop/releases/download/v${version}/IRCCloud-${version}-linux-x86_64.AppImage";
+ sha256 = "0ff69m5jav2c90918avsr5wvik2gds3klij3dzhkb352fgrd1s0l";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ extraPkgs = pkgs: with pkgs; [ at-spi2-core ];
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D ${appimageContents}/irccloud.desktop $out/share/applications/irccloud.desktop
+ install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/irccloud.png \
+ $out/share/icons/hicolor/512x512/apps/irccloud.png
+ substituteInPlace $out/share/applications/irccloud.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with lib; {
+ description = "A desktop client for IRCCloud";
+ homepage = "https://www.irccloud.com";
+ license = licenses.asl20;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ lightbulbjim ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix
new file mode 100644
index 000000000000..5badc69a3a27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoPackage
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "ircdog";
+ version = "0.2.1";
+
+ goPackagePath = "github.com/goshuirc/ircdog";
+
+ src = fetchFromGitHub {
+ owner = "goshuirc";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ppbznlkv7vajfbimxbyiq5y6pkfhm6ylhl408rwq1bawl28hpkl";
+ fetchSubmodules = true;
+ };
+
+ meta = with lib; {
+ description = "ircdog is a simple wrapper over the raw IRC protocol that can respond to pings, and interprets formatting codes";
+ homepage = "https://github.com/goshuirc/ircdog";
+ license = licenses.isc;
+ maintainers = with maintainers; [ hexa ];
+ };
+}
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
new file mode 100644
index 000000000000..27b37e78a1a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintl, libgcrypt, libotr }:
+
+stdenv.mkDerivation rec {
+ pname = "irssi";
+ version = "1.2.2";
+
+ src = fetchurl {
+ url = "https://github.com/irssi/irssi/releases/download/${version}/${pname}-${version}.tar.gz";
+ sha256 = "0g2nxazn4lszmd6mf1s36x5ablk4999g1qx7byrnvgnjsihjh62k";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ ncurses glib openssl perl libintl libgcrypt libotr ];
+
+ configureFlags = [
+ "--with-proxy"
+ "--with-bot"
+ "--with-perl=yes"
+ "--with-otr=yes"
+ "--enable-true-color"
+ ];
+
+ meta = {
+ homepage = "https://irssi.org";
+ description = "A terminal based IRC client";
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ lovek323 ];
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix
new file mode 100644
index 000000000000..f1e0e9158ca6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, irssi, gmp, automake, autoconf, libtool, openssl, glib, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ name = "fish-irssi-20130413-e98156bebd";
+
+ src = fetchurl {
+ url = "https://github.com/falsovsky/FiSH-irssi/tarball/e98156bebd";
+ name = "${name}.tar.gz";
+ sha256 = "1ndr51qrg66h1mfzacwzl1vd6lj39pdc4p4z5iihrj4r2f6gk11a";
+ };
+
+ preConfigure = ''
+ tar xf ${irssi.src}
+ configureFlags="$configureFlags --with-irssi-source=`pwd`/${irssi.name}"
+
+ ./regen.sh
+ '';
+
+ installPhase = ''
+ mkdir -p $out/lib/irssi/modules
+ cp src/.libs/libfish.so $out/lib/irssi/modules
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gmp automake autoconf libtool openssl glib ];
+
+ meta = {
+ homepage = "https://github.com/falsovsky/FiSH-irssi";
+ license = stdenv.lib.licenses.unfree; # I can't find any mention of license
+ maintainers = with stdenv.lib.maintainers; [viric];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix
new file mode 100644
index 000000000000..2890deccb800
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix
@@ -0,0 +1,87 @@
+{ mkDerivation
+, lib
+, fetchurl
+, fetchpatch
+, extra-cmake-modules
+, kdoctools
+, kbookmarks
+, karchive
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kcrash
+, kdbusaddons
+, kemoticons
+, kglobalaccel
+, ki18n
+, kiconthemes
+, kidletime
+, kitemviews
+, knotifications
+, knotifyconfig
+, kwindowsystem
+, kio
+, kparts
+, kwallet
+, solid
+, sonnet
+, phonon
+}:
+
+let
+ pname = "konversation";
+ version = "1.7.5";
+in mkDerivation rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+ sha256 = "0h098yhlp36ls6pdvs2r93ig8dv4fys62m0h6wxccprb0qrpbgv0";
+ };
+
+ patches = [
+ # Delete this patch for konversation > 1.7.5
+ (fetchpatch {
+ url = "https://cgit.kde.org/konversation.git/patch/?id=4d0036617becc26a76fd021138c98aceec4c7b53";
+ sha256 = "17hdj6zyln3n93b71by26mrwbgyh4k052ck5iw1drysx5dyd5l6y";
+ })
+ ];
+
+ buildInputs = [
+ kbookmarks
+ karchive
+ kconfig
+ kconfigwidgets
+ kcoreaddons
+ kcrash
+ kdbusaddons
+ kdoctools
+ kemoticons
+ kglobalaccel
+ ki18n
+ kiconthemes
+ kidletime
+ kitemviews
+ knotifications
+ knotifyconfig
+ kwindowsystem
+ kio
+ kparts
+ kwallet
+ solid
+ sonnet
+ phonon
+ ];
+
+ nativeBuildInputs = [
+ extra-cmake-modules
+ kdoctools
+ ];
+
+ meta = {
+ description = "Integrated IRC client for KDE";
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ fridh ];
+ homepage = "https://konversation.kde.org";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix
new file mode 100644
index 000000000000..6fd66096b5b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix
@@ -0,0 +1,32 @@
+{ lib, mkDerivation, fetchFromGitHub
+, qtbase, qtmultimedia, qtsvg, qtx11extras
+, pkgconfig, cmake, gettext
+}:
+
+mkDerivation rec {
+ pname = "kvirc";
+ version = "5.0.0";
+
+ src = fetchFromGitHub {
+ owner = "kvirc";
+ repo = "KVIrc";
+ rev = version;
+ sha256 = "1dq7v6djw0gz56rvghs4r5gfhzx4sfg60rnv6b9zprw0vlvcxbn4";
+ };
+
+ buildInputs = [
+ qtbase qtmultimedia qtsvg qtx11extras
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig cmake gettext
+ ];
+
+ meta = with lib; {
+ description = "Advanced IRC Client";
+ homepage = "http://www.kvirc.net/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.suhr ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
new file mode 100644
index 000000000000..6c40dc8dd895
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
@@ -0,0 +1,37 @@
+From ac9387271b2420a71f7d172f44354fc35adac504 Mon Sep 17 00:00:00 2001
+From: Manuel Nickschas <sputnick@quassel-irc.org>
+Date: Tue, 7 Jan 2020 18:34:54 +0100
+Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14
+
+Starting from version 5.14, Qt provides stream operators for enum
+types, which collide with the ones we ship in types.h. Disable
+Quassel's stream operators when compiling against Qt 5.14 or later.
+
+(cherry-picked from 579e559a6322209df7cd51c34801fecff5fe734b)
+---
+ src/common/types.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/common/types.h b/src/common/types.h
+index 467d9fb2..c4b9f364 100644
+--- a/src/common/types.h
++++ b/src/common/types.h
+@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress)
+ typedef QList<MsgId> MsgIdList;
+ typedef QList<BufferId> BufferIdList;
+
++#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
+ /**
+ * Catch-all stream serialization operator for enum types.
+ *
+@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) {
+ value = static_cast<T>(v);
+ return in;
+ }
++#endif
+
+ // Exceptions
+
+--
+2.26.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix
new file mode 100644
index 000000000000..76743621fc74
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix
@@ -0,0 +1,103 @@
+{ monolithic ? true # build monolithic Quassel
+, enableDaemon ? false # build Quassel daemon
+, client ? false # build Quassel client
+, tag ? "-kf5" # tag added to the package name
+, static ? false # link statically
+
+, stdenv, fetchFromGitHub, cmake, makeWrapper, dconf
+, mkDerivation, qtbase, qtscript
+, phonon, libdbusmenu, qca-qt5
+
+, withKDE ? true # enable KDE integration
+, extra-cmake-modules
+, kconfigwidgets
+, kcoreaddons
+, knotifications
+, knotifyconfig
+, ktextwidgets
+, kwidgetsaddons
+, kxmlgui
+}:
+
+let
+ inherit (stdenv) lib;
+ buildClient = monolithic || client;
+ buildCore = monolithic || enableDaemon;
+in
+
+assert monolithic -> !client && !enableDaemon;
+assert client || enableDaemon -> !monolithic;
+assert !buildClient -> !withKDE; # KDE is used by the client only
+
+let
+ edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))];
+
+in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec {
+ name = "quassel${tag}-${version}";
+ version = "0.13.1";
+
+ src = fetchFromGitHub {
+ owner = "quassel";
+ repo = "quassel";
+ rev = version;
+ sha256 = "0z8p7iv90yrrjbh31cyxhpr6hsynfmi23rlayn7p2f6ki5az7yc3";
+ };
+
+ patches = [
+ # fixes build with Qt 5.14
+ # source: https://github.com/quassel/quassel/pull/518/commits/8a46d983fc99204711cdff1e4c542e272fef45b9
+ ./0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
+ ];
+
+ enableParallelBuilding = true;
+
+ # Prevent ``undefined reference to `qt_version_tag''' in SSL check
+ NIX_CFLAGS_COMPILE = "-DQT_NO_VERSION_TAGGING=1";
+
+ buildInputs =
+ [ cmake makeWrapper qtbase ]
+ ++ lib.optionals buildCore [qtscript qca-qt5]
+ ++ lib.optionals buildClient [libdbusmenu phonon]
+ ++ lib.optionals (buildClient && withKDE) [
+ extra-cmake-modules kconfigwidgets kcoreaddons
+ knotifications knotifyconfig ktextwidgets kwidgetsaddons
+ kxmlgui
+ ];
+
+ cmakeFlags = [
+ "-DEMBED_DATA=OFF"
+ "-DUSE_QT5=ON"
+ ]
+ ++ edf static "STATIC"
+ ++ edf monolithic "WANT_MONO"
+ ++ edf enableDaemon "WANT_CORE"
+ ++ edf client "WANT_QTCLIENT"
+ ++ edf withKDE "WITH_KDE";
+
+ dontWrapQtApps = true;
+
+ postFixup =
+ lib.optionalString enableDaemon ''
+ wrapProgram "$out/bin/quasselcore" --suffix PATH : "${qtbase.bin}/bin"
+ '' +
+ lib.optionalString buildClient ''
+ wrapQtApp "$out/bin/quassel${lib.optionalString client "client"}" \
+ --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://quassel-irc.org/";
+ description = "Qt/KDE distributed IRC client suppporting a remote daemon";
+ longDescription = ''
+ Quassel IRC is a cross-platform, distributed IRC client,
+ meaning that one (or multiple) client(s) can attach to
+ and detach from a central core -- much like the popular
+ combination of screen and a text-based IRC client such
+ as WeeChat, but graphical (based on Qt4/KDE4 or Qt5/KF5).
+ '';
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ phreedom ttuegel ];
+ repositories.git = "https://github.com/quassel/quassel.git";
+ inherit (qtbase.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix
new file mode 100644
index 000000000000..27adb2cefc5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python27Packages }:
+
+python27Packages.buildPythonApplication rec {
+ version = "2016-07-29";
+ name = "qweechat-unstable-${version}";
+ namePrefix = "";
+
+ src = fetchFromGitHub {
+ owner = "weechat";
+ repo = "qweechat";
+ rev = "f5e54d01691adb3abef47e051a6412186c33313c";
+ sha256 = "0dhlriwvkrsn7jj01p2wqhf2p63n9qd173jsgccgxlacm2zzvhaz";
+ };
+
+ prePatch = ''
+ substituteInPlace setup.py \
+ --replace 'qweechat = qweechat.qweechat' 'qweechat = qweechat.qweechat:main'
+ '';
+
+ propagatedBuildInputs = with python27Packages; [
+ pyside setuptools
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/weechat/qweechat";
+ description = "Qt remote GUI for WeeChat";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ramkromberg ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/sic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
new file mode 100644
index 000000000000..69605af2f660
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "sic";
+ version = "1.2";
+
+ makeFlags = [ "PREFIX=$(out)" ];
+ src = fetchurl {
+ url = "https://dl.suckless.org/tools/sic-${version}.tar.gz";
+ sha256 = "ac07f905995e13ba2c43912d7a035fbbe78a628d7ba1c256f4ca1372fb565185";
+ };
+
+ meta = {
+ description = "Simple IRC client";
+ homepage = "https://tools.suckless.org/sic/";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
new file mode 100644
index 000000000000..c51d93378c52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, lib
+, rustPlatform
+, fetchpatch
+, fetchFromGitHub
+, pkg-config
+, dbus
+, openssl
+, Foundation
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "tiny";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "osa1";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "11kjndd4rzj83hzhcqvvp9nxjkana63m0h5r51xwp1ww9sn63km9";
+ };
+
+ cargoSha256 = "079ns78acsff2qb59s7q0ck3j2fygcfqy8is6vfa71jyq7a0rjqm";
+
+ RUSTC_BOOTSTRAP = 1;
+
+ nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
+ buildInputs = lib.optionals stdenv.isLinux [ dbus openssl ] ++ lib.optional stdenv.isDarwin Foundation;
+
+ meta = with lib; {
+ description = "A console IRC client";
+ homepage = "https://github.com/osa1/tiny";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Br1ght0ne ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
new file mode 100644
index 000000000000..404810e5f245
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
@@ -0,0 +1,84 @@
+{ stdenv, fetchurl, lib
+, ncurses, openssl, aspell, gnutls, gettext
+, zlib, curl, pkgconfig, libgcrypt
+, cmake, makeWrapper, libobjc, libresolv, libiconv
+, asciidoctor # manpages
+, guileSupport ? true, guile
+, luaSupport ? true, lua5
+, perlSupport ? true, perl
+, pythonSupport ? true, python3Packages
+, rubySupport ? true, ruby
+, tclSupport ? true, tcl
+, extraBuildInputs ? []
+}:
+
+let
+ inherit (python3Packages) python;
+ plugins = [
+ { name = "perl"; enabled = perlSupport; cmakeFlag = "ENABLE_PERL"; buildInputs = [ perl ]; }
+ { name = "tcl"; enabled = tclSupport; cmakeFlag = "ENABLE_TCL"; buildInputs = [ tcl ]; }
+ { name = "ruby"; enabled = rubySupport; cmakeFlag = "ENABLE_RUBY"; buildInputs = [ ruby ]; }
+ { name = "guile"; enabled = guileSupport; cmakeFlag = "ENABLE_GUILE"; buildInputs = [ guile ]; }
+ { name = "lua"; enabled = luaSupport; cmakeFlag = "ENABLE_LUA"; buildInputs = [ lua5 ]; }
+ { name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON3"; buildInputs = [ python ]; }
+ ];
+ enabledPlugins = builtins.filter (p: p.enabled) plugins;
+
+ in
+ assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
+ stdenv.mkDerivation rec {
+ version = "3.0";
+ pname = "weechat";
+
+ src = fetchurl {
+ url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
+ sha256 = "0ciddvyhyp38fnfsi1plj3z8d76f28lbzbxib2857vw7rzyqfcky";
+ };
+
+ outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;
+
+ enableParallelBuilding = true;
+ cmakeFlags = with stdenv.lib; [
+ "-DENABLE_MAN=ON"
+ "-DENABLE_DOC=ON"
+ "-DENABLE_JAVASCRIPT=OFF" # Requires v8 <= 3.24.3, https://github.com/weechat/weechat/issues/360
+ "-DENABLE_PHP=OFF"
+ ]
+ ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib"]
+ ++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins
+ ;
+
+ buildInputs = with stdenv.lib; [
+ ncurses openssl aspell gnutls gettext zlib curl pkgconfig
+ libgcrypt makeWrapper cmake asciidoctor
+ ]
+ ++ optionals stdenv.isDarwin [ libobjc libresolv ]
+ ++ concatMap (p: p.buildInputs) enabledPlugins
+ ++ extraBuildInputs;
+
+ NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}"
+ # Fix '_res_9_init: undefined symbol' error
+ + (stdenv.lib.optionalString stdenv.isDarwin "-DBIND_8_COMPAT=1 -lresolv");
+
+ postInstall = with stdenv.lib; ''
+ for p in ${concatMapStringsSep " " (p: p.name) enabledPlugins}; do
+ from=$out/lib/weechat/plugins/$p.so
+ to=''${!p}/lib/weechat/plugins/$p.so
+ mkdir -p $(dirname $to)
+ mv $from $to
+ done
+ '';
+
+ meta = {
+ homepage = "http://www.weechat.org/";
+ description = "A fast, light and extensible chat client";
+ longDescription = ''
+ You can find more documentation as to how to customize this package
+ (eg. adding python modules for scripts that would require them, etc.)
+ on https://nixos.org/nixpkgs/manual/#sec-weechat .
+ '';
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ lovek323 lheckemann ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
new file mode 100644
index 000000000000..6d228688607a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -0,0 +1,17 @@
+{ callPackage, luaPackages, python3Packages }:
+
+{
+ weechat-matrix-bridge = callPackage ./weechat-matrix-bridge {
+ inherit (luaPackages) cjson luaffi;
+ };
+
+ weechat-matrix = python3Packages.callPackage ./weechat-matrix { };
+
+ weechat-notify-send = python3Packages.callPackage ./weechat-notify-send { };
+
+ wee-slack = callPackage ./wee-slack { };
+
+ weechat-autosort = callPackage ./weechat-autosort { };
+
+ weechat-otr = callPackage ./weechat-otr { };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
new file mode 100644
index 000000000000..9650f903ed6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, substituteAll, buildEnv, fetchFromGitHub, python3Packages }:
+
+stdenv.mkDerivation rec {
+ pname = "wee-slack";
+ version = "2.6.0";
+
+ src = fetchFromGitHub {
+ repo = "wee-slack";
+ owner = "wee-slack";
+ rev = "v${version}";
+ sha256 = "0s4qd1z40c1bczkvc840jwjmzbv7nyj06xqs1si9v54qmkh4gaq4";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./libpath.patch;
+ env = "${buildEnv {
+ name = "wee-slack-env";
+ paths = with python3Packages; [ websocket_client six ];
+ }}/${python3Packages.python.sitePackages}";
+ })
+ ./hardcode-json-file-path.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace wee_slack.py --subst-var out
+ '';
+
+ passthru.scripts = [ "wee_slack.py" ];
+
+ installPhase = ''
+ mkdir -p $out/share
+ cp wee_slack.py $out/share/wee_slack.py
+ install -D -m 0444 weemoji.json $out/share/wee-slack/weemoji.json
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/wee-slack/wee-slack";
+ license = licenses.mit;
+ maintainers = with maintainers; [ willibutz ];
+ description = ''
+ A WeeChat plugin for Slack.com. Synchronizes read markers, provides typing notification, search, etc..
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch
new file mode 100644
index 000000000000..7413a9229ce6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch
@@ -0,0 +1,12 @@
+--- a/wee_slack.py
++++ b/wee_slack.py
+@@ -4560,8 +4560,7 @@
+
+ def load_emoji():
+ try:
+- DIR = w.info_get('weechat_dir', '')
+- with open('{}/weemoji.json'.format(DIR), 'r') as ef:
++ with open('@out@/share/wee-slack/weemoji.json', 'r') as ef:
+ emojis = json.loads(ef.read())
+ if 'emoji' in emojis:
+ print_error('The weemoji.json file is in an old format. Please update it.')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch
new file mode 100644
index 000000000000..af2dd36b41c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch
@@ -0,0 +1,13 @@
+diff --git a/wee_slack.py b/wee_slack.py
+index dbe6446..d1b7546 100644
+--- a/wee_slack.py
++++ b/wee_slack.py
+@@ -25,6 +25,8 @@ import random
+ import socket
+ import string
+
++sys.path.append('@env@')
++
+ from websocket import ABNF, create_connection, WebSocketConnectionClosedException
+
+ try:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
new file mode 100644
index 000000000000..883ed793ced6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "weechat-autosort";
+ version = "3.8";
+
+ src = fetchFromGitHub {
+ owner = "de-vri-es";
+ repo = pname;
+ rev = version;
+ sha256 = "0a2gc8nhklvlivradhqy2pkymsqyy01pvzrmwg60cln8snmcqpd5";
+ };
+
+ passthru.scripts = [ "autosort.py" ];
+ installPhase = ''
+ install -D autosort.py $out/share/autosort.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Autosort is a weechat script to automatically or manually keep your buffers sorted";
+ homepage = "https://github.com/de-vri-es/weechat-autosort";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ emily ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
new file mode 100644
index 000000000000..5c734bf7de2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, curl, fetchFromGitHub, cjson, olm, luaffi }:
+
+stdenv.mkDerivation {
+ name = "weechat-matrix-bridge-2018-11-19";
+ src = fetchFromGitHub {
+ owner = "torhve";
+ repo = "weechat-matrix-protocol-script";
+ rev = "8d32e90d864a8f3f09ecc2857cd5dd6e39a8c3f7";
+ sha256 = "0qqd6qmkrdc0r3rnl53c3yp93fbcz7d3mdw3vq5gmdqxyym4s9lj";
+ };
+
+ patches = [
+ ./library-path.patch
+ ];
+
+ buildInputs = [ curl cjson olm luaffi ];
+
+ postPatch = ''
+ substituteInPlace matrix.lua \
+ --replace "/usr/bin/curl" "${curl}/bin/curl" \
+ --replace "__NIX_LIB_PATH__" "$out/lib/?.so" \
+ --replace "__NIX_OLM_PATH__" "$out/share/?.lua"
+
+ substituteInPlace olm.lua \
+ --replace "__NIX_LIB_PATH__" "$out/lib/?.so"
+ '';
+
+ passthru.scripts = [ "matrix.lua" ];
+
+ installPhase = ''
+ mkdir -p $out/{share,lib}
+
+ cp {matrix.lua,olm.lua} $out/share
+ cp ${cjson}/lib/lua/${cjson.lua.luaversion}/cjson.so $out/lib/cjson.so
+ cp ${olm}/lib/libolm.so $out/lib/libolm.so
+ cp ${luaffi}/lib/lua/${luaffi.lua.luaversion}/ffi.so $out/lib/ffi.so
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A WeeChat script in Lua that implements the matrix.org chat protocol";
+ homepage = "https://github.com/torhve/weechat-matrix-protocol-script";
+ maintainers = with maintainers; [ ];
+ license = licenses.mit; # see https://github.com/torhve/weechat-matrix-protocol-script/blob/0052e7275ae149dc5241226391c9b1889ecc3c6b/matrix.lua#L53
+ platforms = platforms.unix;
+
+ # As of 2019-06-30, all of the dependencies are available on macOS but the
+ # package itself does not build.
+ broken = stdenv.isDarwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch
new file mode 100644
index 000000000000..d9945c2993b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch
@@ -0,0 +1,28 @@
+diff --git a/matrix.lua b/matrix.lua
+index b79f500..32b37a2 100644
+--- a/matrix.lua
++++ b/matrix.lua
+@@ -43,6 +43,9 @@ This script maps this as follows:
+
+ ]]
+
++package.cpath = package.cpath .. ";__NIX_LIB_PATH__"
++package.path = package.path .. ";__NIX_OLM_PATH__"
++
+ local json = require 'cjson' -- apt-get install lua-cjson
+ local olmstatus, olm = pcall(require, 'olm') -- LuaJIT olm FFI binding ln -s ~/olm/olm.lua /usr/local/share/lua/5.1
+ local w = weechat
+diff --git a/olm.lua b/olm.lua
+index 114649c..4828371 100644
+--- a/olm.lua
++++ b/olm.lua
+@@ -17,6 +17,9 @@
+ * limitations under the License.
+ */
+ --]]
++
++package.cpath = package.cpath .. ";__NIX_LIB_PATH__"
++
+ local ffi = require'ffi'
+
+ ffi.cdef[[
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
new file mode 100644
index 000000000000..0b60617cbb38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
@@ -0,0 +1,81 @@
+{ buildPythonPackage
+, stdenv
+, python
+, fetchFromGitHub
+, pyopenssl
+, webcolors
+, future
+, atomicwrites
+, attrs
+, Logbook
+, pygments
+, matrix-nio
+, aiohttp
+, requests
+}:
+
+let
+ scriptPython = python.withPackages (ps: with ps; [
+ aiohttp
+ requests
+ python_magic
+ ]);
+
+ version = "0.2.0";
+in buildPythonPackage {
+ pname = "weechat-matrix";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "poljar";
+ repo = "weechat-matrix";
+ rev = version;
+ hash = "sha256-qsTdF9mGHac4rPs53mgoOElcujicRNXbJ7GsoptWSGc=";
+ };
+
+ propagatedBuildInputs = [
+ pyopenssl
+ webcolors
+ future
+ atomicwrites
+ attrs
+ Logbook
+ pygments
+ matrix-nio
+ aiohttp
+ requests
+ ];
+
+ passthru.scripts = [ "matrix.py" ];
+
+ dontBuild = true;
+ doCheck = false;
+
+ installPhase = ''
+ mkdir -p $out/share $out/bin
+ cp $src/main.py $out/share/matrix.py
+
+ cp $src/contrib/matrix_upload.py $out/bin/matrix_upload
+ cp $src/contrib/matrix_decrypt.py $out/bin/matrix_decrypt
+ cp $src/contrib/matrix_sso_helper.py $out/bin/matrix_sso_helper
+ substituteInPlace $out/bin/matrix_upload \
+ --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python'
+ substituteInPlace $out/bin/matrix_sso_helper \
+ --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python'
+ substituteInPlace $out/bin/matrix_decrypt \
+ --replace '/usr/bin/env python3' '${scriptPython}/bin/python'
+
+ mkdir -p $out/${python.sitePackages}
+ cp -r $src/matrix $out/${python.sitePackages}/matrix
+ '';
+
+ dontPatchShebangs = true;
+
+ meta = with stdenv.lib; {
+ description = "A Python plugin for Weechat that lets Weechat communicate over the Matrix protocol";
+ homepage = "https://github.com/poljar/weechat-matrix";
+ license = licenses.isc;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ tilpner emily ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
new file mode 100644
index 000000000000..d219aa481cdb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, libnotify }:
+
+stdenv.mkDerivation rec {
+ pname = "weechat-notify-send";
+ version = "0.9";
+
+ src = fetchFromGitHub {
+ owner = "s3rvac";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1693b7axm9ls5p7hm6kq6avddsisi491khr5irvswr5lpizvys6a";
+ };
+
+ passthru.scripts = [ "notify_send.py" ];
+
+ dontBuild = true;
+ doCheck = false;
+
+ installPhase = ''
+ install -D notify_send.py $out/share/notify_send.py
+ substituteInPlace $out/share/notify_send.py \
+ --replace "'notify-send'" "'${libnotify}/bin/notify-send'"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A WeeChat script that sends highlight and message notifications through notify-send";
+ homepage = "https://github.com/s3rvac/weechat-notify-srnd";
+ license = licenses.mit;
+ maintainers = with maintainers; [ tobim ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
new file mode 100644
index 000000000000..c7f2958cf553
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, substituteAll, buildEnv, fetchgit, fetchFromGitHub, python3Packages, gmp }:
+
+let
+ # pure-python-otr (potr) requires an older version of pycrypto, which is
+ # not compatible with pycryptodome. Therefore, the latest patched version
+ # of pycrypto will be fetched from the Debian project.
+ # https://security-tracker.debian.org/tracker/source-package/python-crypto
+
+ pycrypto = python3Packages.buildPythonPackage rec {
+ pname = "pycrypto";
+ version = "2.6.1-13.1";
+
+ src = fetchgit {
+ url = "https://salsa.debian.org/sramacher/python-crypto.git";
+ rev = "debian/${version}";
+ sha256 = "1mahqmlgilgk0rn5hfkhza7kscfm7agdakkb6rqnif9g0qp3s52f";
+ };
+
+ postPatch = ''
+ for p in debian/patches/*.patch; do
+ patch -p1 < "$p"
+ done
+ '';
+
+ buildInputs = [ gmp ];
+
+ preConfigure = ''
+ sed -i 's,/usr/include,/no-such-dir,' configure
+ sed -i "s!,'/usr/include/'!!" setup.py
+ '';
+ };
+
+ potr = python3Packages.potr.overridePythonAttrs (oldAttrs: {
+ propagatedBuildInputs = [ pycrypto ];
+ });
+in stdenv.mkDerivation rec {
+ pname = "weechat-otr";
+ version = "1.9.2";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "mmb";
+ rev = "v${version}";
+ sha256 = "1lngv98y6883vk8z2628cl4d5y8jxy39w8245gjdvshl8g18k5s2";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./libpath.patch;
+ env = "${buildEnv {
+ name = "weechat-otr-env";
+ paths = [ potr pycrypto ];
+ }}/${python3Packages.python.sitePackages}";
+ })
+ ];
+
+ passthru.scripts = [ "weechat_otr.py" ];
+
+ installPhase = ''
+ mkdir -p $out/share
+ cp weechat_otr.py $out/share/weechat_otr.py
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mmb/weechat-otr";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ oxzi ];
+ description = "WeeChat script for Off-the-Record messaging";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch
new file mode 100644
index 000000000000..a7b77ed9b602
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch
@@ -0,0 +1,13 @@
+diff --git a/weechat_otr.py b/weechat_otr.py
+index 0ccfb35..c42bebf 100644
+--- a/weechat_otr.py
++++ b/weechat_otr.py
+@@ -41,6 +41,8 @@ import shlex
+ import shutil
+ import sys
+
++sys.path.append('@env@')
++
+ import potr
+ import weechat
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix
new file mode 100644
index 000000000000..5c06bb8517a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix
@@ -0,0 +1,91 @@
+{ lib, runCommand, writeScriptBin, buildEnv
+, python3Packages, perlPackages, runtimeShell
+}:
+
+weechat:
+
+let
+ wrapper = {
+ installManPages ? true
+ , configure ? { availablePlugins, ... }: { plugins = builtins.attrValues availablePlugins; }
+ }:
+
+ let
+ perlInterpreter = perlPackages.perl;
+ availablePlugins = let
+ simplePlugin = name: {pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so";};
+ in rec {
+ python = (simplePlugin "python") // {
+ extraEnv = ''
+ export PATH="${python3Packages.python}/bin:$PATH"
+ '';
+ withPackages = pkgsFun: (python // {
+ extraEnv = ''
+ export PYTHONHOME="${python3Packages.python.withPackages pkgsFun}"
+ '';
+ });
+ };
+ perl = (simplePlugin "perl") // {
+ extraEnv = ''
+ export PATH="${perlInterpreter}/bin:$PATH"
+ '';
+ withPackages = pkgsFun: (perl // {
+ extraEnv = ''
+ ${perl.extraEnv}
+ export PERL5LIB=${perlPackages.makeFullPerlPath (pkgsFun perlPackages)}
+ '';
+ });
+ };
+ tcl = simplePlugin "tcl";
+ ruby = simplePlugin "ruby";
+ guile = simplePlugin "guile";
+ lua = simplePlugin "lua";
+ };
+
+ config = configure { inherit availablePlugins; };
+
+ plugins = config.plugins or (builtins.attrValues availablePlugins);
+
+ pluginsDir = runCommand "weechat-plugins" {} ''
+ mkdir -p $out/plugins
+ for plugin in ${lib.concatMapStringsSep " " (p: p.pluginFile) plugins} ; do
+ ln -s $plugin $out/plugins
+ done
+ '';
+
+ init = let
+ init = builtins.replaceStrings [ "\n" ] [ ";" ] (config.init or "");
+
+ mkScript = drv: lib.forEach drv.scripts (script: "/script load ${drv}/share/${script}");
+
+ scripts = builtins.concatStringsSep ";" (lib.foldl (scripts: drv: scripts ++ mkScript drv)
+ [ ] (config.scripts or []));
+ in "${scripts};${init}";
+
+ mkWeechat = bin: (writeScriptBin bin ''
+ #!${runtimeShell}
+ export WEECHAT_EXTRA_LIBDIR=${pluginsDir}
+ ${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins}
+ exec ${weechat}/bin/${bin} "$@" --run-command ${lib.escapeShellArg init}
+ '') // {
+ inherit (weechat) name man;
+ unwrapped = weechat;
+ outputs = [ "out" "man" ];
+ };
+ in buildEnv {
+ name = "weechat-bin-env-${weechat.version}";
+ extraOutputsToInstall = lib.optionals installManPages [ "man" ];
+ paths = [
+ (mkWeechat "weechat")
+ (mkWeechat "weechat-headless")
+ (runCommand "weechat-out-except-bin" { } ''
+ mkdir $out
+ ln -sf ${weechat}/include $out/include
+ ln -sf ${weechat}/lib $out/lib
+ ln -sf ${weechat}/share $out/share
+ '')
+ ];
+ meta = builtins.removeAttrs weechat.meta [ "outputsToInstall" ];
+ };
+
+in lib.makeOverridable wrapper
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch
new file mode 100644
index 000000000000..e5fa2feb2019
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch
@@ -0,0 +1,58 @@
+--- a/configure
++++ b/configure
+@@ -6029,53 +6029,8 @@
+ #AC_CHECK_HEADERS(zlib.h)
+ #EGG_CHECK_ZLIB
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for path to OpenSSL" >&5
+-$as_echo_n "checking for path to OpenSSL... " >&6; }
+-
+-
+-# Check whether --with-openssl was given.
+-if test "${with_openssl+set}" = set; then :
+- withval=$with_openssl; with_openssl_path=$withval
+-else
+- with_openssl_path=auto
+-fi
+-
+-
+-
+-cf_openssl_basedir=""
+-if test "$with_openssl_path" != "auto"; then
+- cf_openssl_basedir="`echo ${with_openssl_path} | sed 's/\/$//'`"
+-else
+- for dirs in /usr/local/ssl /usr/pkg /usr/local /usr/local/openssl; do
+- if test -f "${dirs}/include/openssl/opensslv.h" && test -f "${dirs}/lib/libssl.so"; then
+- cf_openssl_basedir="${dirs}"
+- break
+- fi
+- done
+- unset dirs
+-fi
+-if test ! -z "$cf_openssl_basedir"; then
+- if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" && test -f "${cf_openssl_basedir}/lib/libssl.so"; then
+- SSL_INCLUDES="-I${cf_openssl_basedir}/include"
+- SSL_LIBS="-L${cf_openssl_basedir}/lib"
+- else
+- cf_openssl_basedir=""
+- fi
+-else
+- if test -f "/usr/include/openssl/opensslv.h" ; then
+- cf_openssl_basedir="/usr"
+- fi
+-fi
+-
+-if test ! -z "$cf_openssl_basedir"; then
+- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cf_openssl_basedir" >&5
+-$as_echo "$cf_openssl_basedir" >&6; }
+-else
+- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+-$as_echo "not found" >&6; }
+- as_fn_error 1 "OpenSSL is required." "$LINENO" 5
+-fi
+-unset cf_openssl_basedir
++SSL_INCLUDES="-I@openssl.dev@/include"
++SSL_LIBS="-L@openssl.out@/lib"
+
+ save_CXX="$CXX"
+ CXX="$CXX $SSL_INCLUDES"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix
new file mode 100644
index 000000000000..02bccb67bfe1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, openssl }:
+
+with stdenv;
+with stdenv.lib;
+
+mkDerivation rec {
+ pname = "wraith";
+ version = "1.4.7";
+ src = fetchurl {
+ url = "mirror://sourceforge/wraithbotpack/wraith-v${version}.tar.gz";
+ sha256 = "0h6liac5y7im0jfm2sj18mibvib7d1l727fjs82irsjj1v9kif3j";
+ };
+ hardeningDisable = [ "format" ];
+ buildInputs = [ openssl ];
+ patches = [ ./configure.patch ./dlopen.patch ];
+ postPatch = ''
+ substituteInPlace configure --subst-var-by openssl.dev ${openssl.dev} \
+ --subst-var-by openssl.out ${openssl.out}
+ substituteInPlace src/libssl.cc --subst-var-by openssl ${openssl.out}
+ substituteInPlace src/libcrypto.cc --subst-var-by openssl ${openssl.out}
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -a wraith $out/bin/wraith
+ ln -s wraith $out/bin/hub
+ '';
+
+ meta = {
+ description = "An IRC channel management bot written purely in C/C++";
+ longDescription = ''
+ Wraith is an IRC channel management bot written purely in C/C++. It has
+ been in development since late 2003. It is based on Eggdrop 1.6.12 but has
+ since evolved into something much different at its core. TCL and loadable
+ modules are currently not supported.
+
+ Maintainer's Notes:
+ Copy the binary out of the store before running it with the -C option to
+ configure it. See https://github.com/wraith/wraith/wiki/GettingStarted .
+
+ The binary will not run when moved onto non-NixOS systems; use patchelf
+ to fix its runtime dependenices.
+ '';
+ homepage = "https://wraith.botpack.net/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ elitak ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch
new file mode 100644
index 000000000000..bfc854ef9e9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch
@@ -0,0 +1,48 @@
+diff --git a/src/libcrypto.cc b/src/libcrypto.cc
+index 0339258..68746c8 100644
+--- a/src/libcrypto.cc
++++ b/src/libcrypto.cc
+@@ -95,17 +95,9 @@ int load_libcrypto() {
+ }
+
+ sdprintf("Loading libcrypto");
++ dlerror(); // Clear Errors
++ libcrypto_handle = dlopen("@openssl@/lib/libcrypto.so", RTLD_LAZY|RTLD_GLOBAL);
+
+- bd::Array<bd::String> libs_list(bd::String("libcrypto.so." SHLIB_VERSION_NUMBER " libcrypto.so libcrypto.so.0.9.8 libcrypto.so.7 libcrypto.so.6").split(' '));
+-
+- for (size_t i = 0; i < libs_list.length(); ++i) {
+- dlerror(); // Clear Errors
+- libcrypto_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY|RTLD_GLOBAL);
+- if (libcrypto_handle) {
+- sdprintf("Found libcrypto: %s", bd::String(libs_list[i]).c_str());
+- break;
+- }
+- }
+ if (!libcrypto_handle) {
+ fprintf(stderr, STR("Unable to find libcrypto\n"));
+ return(1);
+diff --git a/src/libssl.cc b/src/libssl.cc
+index b432c7b..8940998 100644
+--- a/src/libssl.cc
++++ b/src/libssl.cc
+@@ -68,17 +68,9 @@ int load_libssl() {
+ }
+
+ sdprintf("Loading libssl");
++ dlerror(); // Clear Errors
++ libssl_handle = dlopen("@openssl@/lib/libssl.so", RTLD_LAZY);
+
+- bd::Array<bd::String> libs_list(bd::String("libssl.so." SHLIB_VERSION_NUMBER " libssl.so libssl.so.0.9.8 libssl.so.7 libssl.so.6").split(' '));
+-
+- for (size_t i = 0; i < libs_list.length(); ++i) {
+- dlerror(); // Clear Errors
+- libssl_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY);
+- if (libssl_handle) {
+- sdprintf("Found libssl: %s", bd::String(libs_list[i]).c_str());
+- break;
+- }
+- }
+ if (!libssl_handle) {
+ fprintf(stderr, STR("Unable to find libssl\n"));
+ return(1);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/jmeter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/jmeter/default.nix
new file mode 100644
index 000000000000..3f626a6ac483
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/jmeter/default.nix
@@ -0,0 +1,60 @@
+{ fetchurl, stdenv, jre, makeWrapper, coreutils }:
+
+stdenv.mkDerivation rec {
+ pname = "jmeter";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://archive.apache.org/dist/jmeter/binaries/apache-${pname}-${version}.tgz";
+ sha256 = "1bmlxnlcias781mwf3wzpd4935awswbq3w8ijck65bsaw07m2kc4";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir $out
+
+ rm bin/*.bat bin/*.cmd
+
+ cp -R * $out/
+
+ substituteInPlace $out/bin/create-rmi-keystore.sh --replace \
+ "keytool -genkey" \
+ "${jre}/lib/openjdk/jre/bin/keytool -genkey"
+
+ # Prefix some scripts with jmeter to avoid clobbering the namespace
+ for i in heapdump.sh mirror-server mirror-server.sh shutdown.sh stoptest.sh create-rmi-keystore.sh; do
+ mv $out/bin/$i $out/bin/jmeter-$i
+ wrapProgram $out/bin/jmeter-$i \
+ --prefix PATH : "${jre}/bin"
+ done
+
+ wrapProgram $out/bin/jmeter --set JAVA_HOME "${jre}"
+ wrapProgram $out/bin/jmeter.sh --set JAVA_HOME "${jre}"
+ '';
+
+ doInstallCheck = true;
+
+ checkInputs = [ coreutils ];
+
+ installCheckPhase = ''
+ $out/bin/jmeter --version 2>&1 | grep -q "${version}"
+ $out/bin/jmeter-heapdump.sh > /dev/null
+ $out/bin/jmeter-shutdown.sh > /dev/null
+ $out/bin/jmeter-stoptest.sh > /dev/null
+ timeout --kill=1s 1s $out/bin/jmeter-mirror-server.sh || test "$?" = "124"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A 100% pure Java desktop application designed to load test functional behavior and measure performance";
+ longDescription = ''
+ The Apache JMeter desktop application is open source software, a 100%
+ pure Java application designed to load test functional behavior and
+ measure performance. It was originally designed for testing Web
+ Applications but has since expanded to other test functions.
+ '';
+ license = licenses.asl20;
+ maintainers = [ ];
+ priority = 1;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/jnetmap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
new file mode 100644
index 000000000000..e2a8a2d56bd1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "jnetmap";
+ version = "0.5.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/jnetmap/jNetMap%20${version}/jNetMap-${version}.jar";
+ sha256 = "0nxsfa600jhazwbabxmr9j37mhwysp0fyrvczhv3f1smiy8rjanl";
+ };
+
+ buildInputs = [ jre makeWrapper ];
+
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mkdir -p "$out/lib"
+
+ cp "${src}" "$out/lib/jnetmap.jar"
+ makeWrapper "${jre}/bin/java" "$out/bin/jnetmap" \
+ --add-flags "-jar \"$out/lib/jnetmap.jar\""
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Graphical network monitoring and documentation tool";
+ homepage = "http://www.rakudave.ch/jnetmap/";
+ license = licenses.gpl3Plus;
+ # Upstream supports macOS and Windows too.
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/libcoap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/libcoap/default.nix
new file mode 100644
index 000000000000..2448e8a76f35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/libcoap/default.nix
@@ -0,0 +1,31 @@
+{ fetchFromGitHub, automake, autoconf, which, pkgconfig, libtool, stdenv }:
+stdenv.mkDerivation rec {
+ pname = "libcoap";
+ version = "4.2.1";
+ src = fetchFromGitHub {
+ repo = "libcoap";
+ owner = "obgm";
+ rev = "v${version}";
+ fetchSubmodules = true;
+ sha256 = "1jkvha52lic13f13hnppizkl80bb2rciayb5hxici0gj6spphgha";
+ };
+ nativeBuildInputs = [
+ automake
+ autoconf
+ which
+ libtool
+ pkgconfig
+ ];
+ preConfigure = "./autogen.sh";
+ configureFlags = [
+ "--disable-documentation"
+ "--disable-shared"
+ ];
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/obgm/libcoap";
+ description = "A CoAP (RFC 7252) implementation in C";
+ platforms = platforms.linux;
+ license = licenses.bsd2;
+ maintainers = [ maintainers.kmein ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/lieer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/lieer/default.nix
new file mode 100644
index 000000000000..700ad011dff3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/lieer/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "lieer";
+ version = "1.2";
+
+ src = fetchFromGitHub {
+ owner = "gauteh";
+ repo = "lieer";
+ rev = "v${version}";
+ sha256 = "0qp8sycclzagkiszqk1pw2fr8s8s195bzy8r27dj7f5zx350nxk5";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ notmuch
+ oauth2client
+ google_api_python_client
+ tqdm
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Fast email-fetching and two-way tag synchronization between notmuch and GMail";
+ longDescription = ''
+ This program can pull email and labels (and changes to labels)
+ from your GMail account and store them locally in a maildir with
+ the labels synchronized with a notmuch database. The changes to
+ tags in the notmuch database may be pushed back remotely to your
+ GMail account.
+ '';
+ homepage = "https://lieer.gaute.vetsj.com/";
+ repositories.git = "https://github.com/gauteh/lieer.git";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ flokli kaiha ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch
new file mode 100644
index 000000000000..46224ede33d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch
@@ -0,0 +1,43 @@
+From e57f22a5089f194013534c9a9bbc42ee639297f1 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@gmail.com>
+Date: Sat, 19 Sep 2015 11:10:32 -0500
+Subject: [PATCH] unbundled qwt
+
+---
+ linssid-app/linssid-app.pro | 4 +---
+ linssid.pro | 4 +---
+ 2 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/linssid-app/linssid-app.pro b/linssid-app/linssid-app.pro
+index 26f61e7..7b80b60 100644
+--- a/linssid-app/linssid-app.pro
++++ b/linssid-app/linssid-app.pro
+@@ -19,13 +19,11 @@ QMAKE_CC = gcc
+ QMAKE_CXX = g++
+ DEFINES +=
+ INCLUDEPATH += /usr/include/qt5
+-# /usr/local/qwt-6.1.0/include
+-INCLUDEPATH += ../qwt-lib/src
+ # LIBS += /usr/lib/x86_64-linux-gnu/libboost_regex.a
+ # LIBS += -lboost_regex
+ LIBS += -l:libboost_regex.a
+ # /usr/local/qwt-6.1.0/lib/libqwt.a
+-LIBS += ../qwt-lib/lib/libqwt.a
++LIBS += -lqwt
+ QMAKE_CXXFLAGS += -std=c++11
+ #
+ TARGET = linssid
+diff --git a/linssid.pro b/linssid.pro
+index 42dc277..26d1a2c 100644
+--- a/linssid.pro
++++ b/linssid.pro
+@@ -1,5 +1,3 @@
+ TEMPLATE = subdirs
+ CONFIG += ordered
+-SUBDIRS = qwt-lib \
+- linssid-app
+-linssid-app.depends = qwt-lib
++SUBDIRS = linssid-app
+--
+2.5.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/linssid/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/linssid/default.nix
new file mode 100644
index 000000000000..f458e03913ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/linssid/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, qtbase, qtsvg, qmake, pkgconfig, boost, wirelesstools, iw, qwt, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "linssid";
+ version = "2.7";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/linssid/LinSSID_${version}/linssid_${version}.orig.tar.gz";
+ sha256 = "13d35rlcjncd8lx3khkgn9x8is2xjd5fp6ns5xsn3w6l4xj9b4gl";
+ };
+
+ nativeBuildInputs = [ pkgconfig qmake wrapQtAppsHook ];
+ buildInputs = [ qtbase qtsvg boost qwt ];
+
+ patches = [ ./0001-unbundled-qwt.patch ];
+
+ postPatch = ''
+ sed -e "s|/usr/include/qt5.*$|& ${qwt}/include|" -i linssid-app/linssid-app.pro
+ sed -e "s|/usr/include/|/nonexistent/|g" -i linssid-app/*.pro
+ sed -e 's|^LIBS .*= .*libboost_regex.a|LIBS += -lboost_regex|' \
+ -e "s|/usr|$out|g" \
+ -i linssid-app/linssid-app.pro linssid-app/linssid.desktop
+ sed -e "s|\.\./\.\./\.\./\.\./usr|$out|g" -i linssid-app/*.ui
+
+ # Remove bundled qwt
+ rm -fr qwt-lib
+ '';
+
+ qtWrapperArgs =
+ [ ''--prefix PATH : ${stdenv.lib.makeBinPath [ wirelesstools iw ]}'' ];
+
+ meta = with stdenv.lib; {
+ description = "Graphical wireless scanning for Linux";
+ homepage = "https://sourceforge.net/projects/linssid/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
new file mode 100644
index 000000000000..d4cfd38c50dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, python3
+, wrapQtAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "maestral-qt";
+ version = "1.2.1";
+ disabled = python3.pkgs.pythonOlder "3.6";
+
+ src = fetchFromGitHub {
+ owner = "SamSchott";
+ repo = "maestral-qt";
+ rev = "v${version}";
+ sha256 = "sha256-7qpVyQUbT+GChJl1TnKOONSyRDvzQ0M2z9RdN7PNl9U=";
+ };
+
+ propagatedBuildInputs = with python3.pkgs; [
+ bugsnag
+ click
+ markdown2
+ maestral
+ packaging
+ pyqt5
+ ];
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+
+ makeWrapperArgs = [
+ # Firstly, add all necessary QT variables
+ "\${qtWrapperArgs[@]}"
+
+ # Add the installed directories to the python path so the daemon can find them
+ "--prefix" "PYTHONPATH" ":" "${stdenv.lib.concatStringsSep ":" (map (p: p + "/lib/${python3.libPrefix}/site-packages") (python3.pkgs.requiredPythonModules python3.pkgs.maestral.propagatedBuildInputs))}"
+ "--prefix" "PYTHONPATH" ":" "${python3.pkgs.maestral}/lib/${python3.libPrefix}/site-packages"
+ ];
+
+ # no tests
+ doCheck = false;
+
+ meta = with lib; {
+ description = "GUI front-end for maestral (an open-source Dropbox client) for Linux";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.linux;
+ inherit (src.meta) homepage;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
new file mode 100644
index 000000000000..45d41839a1ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, buildGoModule, fetchurl
+, go, ncurses, notmuch, scdoc
+, python3, perl, w3m, dante
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+ pname = "aerc";
+ version = "0.4.0";
+
+ src = fetchurl {
+ url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
+ sha256 = "05qy14k9wmyhsg1hiv4njfx1zn1m9lz4d1p50kc36v7pq0n4csfk";
+ };
+
+ runVend = true;
+ vendorSha256 = "13zs5113ip85yl6sw9hzclxwlnrhy18d39vh9cwbq97dgnh9rz89";
+
+ doCheck = false;
+
+ nativeBuildInputs = [
+ scdoc
+ python3.pkgs.wrapPython
+ ];
+
+ patches = [
+ ./runtime-sharedir.patch
+ ];
+
+ pythonPath = [
+ python3.pkgs.colorama
+ ];
+
+ buildInputs = [ python3 notmuch ];
+
+ buildPhase = "
+ runHook preBuild
+ # we use make instead of go build
+ runHook postBuild
+ ";
+
+ installPhase = ''
+ runHook preInstall
+ make PREFIX=$out GOFLAGS="$GOFLAGS -tags=notmuch" install
+ wrapPythonProgramsIn $out/share/aerc/filters "$out $pythonPath"
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/aerc --prefix PATH ":" \
+ "$out/share/aerc/filters:${stdenv.lib.makeBinPath [ ncurses ]}"
+ wrapProgram $out/share/aerc/filters/html --prefix PATH ":" \
+ ${stdenv.lib.makeBinPath [ w3m dante ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An email client for your terminal";
+ homepage = "https://aerc-mail.org/";
+ maintainers = with maintainers; [ tadeokondrak ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
new file mode 100644
index 000000000000..ed670d61a7b3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
@@ -0,0 +1,56 @@
+From 6cf3c2e42d219b9665a43ca65f321c653b0aa102 Mon Sep 17 00:00:00 2001
+From: Tadeo Kondrak <me@tadeo.ca>
+Date: Mon, 28 Oct 2019 08:36:36 -0600
+Subject: [PATCH] Fix aerc breaking every time the package is rebuilt.
+
+On NixOS, the SHAREDIR changes on every rebuild to the package, but aerc
+fills it in as part of the default config and then installs that config
+to the users home folder. Fix this by not substituting @SHAREDIR@ in the
+default config until runtime.
+---
+ Makefile | 2 +-
+ config/config.go | 8 ++++++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index d1c755d..1185a96 100644
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,7 @@ aerc: $(GOSRC)
+ -o $@
+
+ aerc.conf: config/aerc.conf.in
+- sed -e 's:@SHAREDIR@:$(SHAREDIR):g' > $@ < config/aerc.conf.in
++ cat config/aerc.conf.in > $@
+
+ DOCS := \
+ aerc.1 \
+diff --git a/config/config.go b/config/config.go
+index 32d07fc..8ffd3e8 100644
+--- a/config/config.go
++++ b/config/config.go
+@@ -355,6 +355,11 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
+ return nil, err
+ }
+ }
++ if sec, err := file.GetSection("templates"); err == nil {
++ if key, err := sec.GetKey("template-dirs"); err == nil {
++ sec.NewKey("template-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir))
++ }
++ }
+ file.NameMapper = mapName
+ config := &AercConfig{
+ Bindings: BindingConfig{
+@@ -423,6 +428,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
+ if err = config.LoadConfig(file); err != nil {
+ return nil, err
+ }
++ for i, filter := range config.Filters {
++ config.Filters[i].Command = strings.ReplaceAll(filter.Command, "@SHAREDIR@", sharedir)
++ }
+ if ui, err := file.GetSection("general"); err == nil {
+ if err := ui.MapTo(&config.General); err != nil {
+ return nil, err
+--
+2.23.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
new file mode 100644
index 000000000000..129120609ca5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, python3Packages, notmuch }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "afew";
+ version = "3.0.1";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "0wpfqbqjlfb9z0hafvdhkm7qw56cr9kfy6n8vb0q42dwlghpz1ff";
+ };
+
+ nativeBuildInputs = with python3Packages; [ sphinx setuptools_scm ];
+
+ propagatedBuildInputs = with python3Packages; [
+ python3Packages.setuptools python3Packages.notmuch chardet dkimpy
+ ];
+
+ checkInputs = with python3Packages; [
+ freezegun notmuch
+ ];
+
+ makeWrapperArgs = [
+ ''--prefix PATH ':' "${notmuch}/bin"''
+ ];
+
+ outputs = [ "out" "doc" ];
+
+ postBuild = ''
+ ${python3Packages.python.interpreter} setup.py build_sphinx -b html,man
+ '';
+
+ postInstall = ''
+ install -D -v -t $out/share/man/man1 build/sphinx/man/*
+ mkdir -p $out/share/doc/afew
+ cp -R build/sphinx/html/* $out/share/doc/afew
+ '';
+
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/afewmail/afew";
+ description = "An initial tagging script for notmuch mail";
+ license = licenses.isc;
+ maintainers = with maintainers; [ andir flokli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
new file mode 100644
index 000000000000..83c2f3ca7ac3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, ncurses, tcl, openssl, pam, kerberos
+, openldap
+}:
+
+stdenv.mkDerivation rec {
+ pname = "alpine";
+ version = "2.24";
+
+ src = fetchurl {
+ url = "http://alpine.x10host.com/alpine/release/src/${pname}-${version}.tar.xz";
+ sha256 = "1vxw19nx10y7nx01d9i6gah2f3y5r2idbq56l13bdqi91bx9y6k5";
+ };
+
+ buildInputs = [
+ ncurses tcl openssl pam kerberos openldap
+ ];
+
+ hardeningDisable = [ "format" ];
+
+ configureFlags = [
+ "--with-ssl-include-dir=${openssl.dev}/include/openssl"
+ "--with-passfile=.pine-passfile"
+ "--with-c-client-target=slx"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Console mail reader";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ raskin ];
+ platforms = platforms.linux;
+ homepage = "http://alpine.x10host.com/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
new file mode 100644
index 000000000000..171136ce22ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, gnome3, gmime3, webkitgtk
+, libsass, notmuch, boost, wrapGAppsHook, glib-networking, protobuf, vim_configurable
+, gtkmm3, libpeas, gsettings-desktop-schemas
+, python3, python3Packages
+, vim ? vim_configurable.override {
+ features = "normal";
+ gui = "auto";
+ }
+, ronn
+}:
+
+stdenv.mkDerivation rec {
+ pname = "astroid";
+ version = "0.15";
+
+ src = fetchFromGitHub {
+ owner = "astroidmail";
+ repo = "astroid";
+ rev = "v${version}";
+ sha256 = "11cxbva9ni98gii59xmbxh4c6idcg3mg0pgdsp1c3j0yg7ix0lj3";
+ };
+
+ nativeBuildInputs = [ cmake ronn pkgconfig wrapGAppsHook ];
+
+ buildInputs = [
+ gtkmm3 gmime3 webkitgtk libsass libpeas
+ python3 python3Packages.pygobject3
+ notmuch boost gsettings-desktop-schemas gnome3.adwaita-icon-theme
+ glib-networking protobuf
+ ] ++ (if vim == null then [] else [ vim ]);
+
+ postPatch = ''
+ sed -i "s~gvim ~${vim}/bin/vim -g ~g" src/config.cc
+ sed -i "s~ -geom 10x10~~g" src/config.cc
+ '';
+
+ postInstall = ''
+ wrapProgram "$out/bin/astroid" --set CHARSET=en_us.UTF-8
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://astroidmail.github.io/";
+ description = "GTK frontend to the notmuch mail system";
+ maintainers = with maintainers; [ bdimcheff SuprDewd ];
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix
new file mode 100644
index 000000000000..055aa15b2ec8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, fetchurl
+, glib
+, gmime3
+, gnutls
+, gobject-introspection
+, gpgme
+, gtk3
+, gtksourceview
+, gtkspell3
+, intltool
+, libcanberra-gtk3
+, libesmtp
+, libical
+, libnotify
+, libsecret
+, openssl
+, pkgconfig
+, webkitgtk
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "balsa";
+ version = "2.6.1";
+
+ src = fetchurl {
+ url = "https://pawsa.fedorapeople.org/balsa/${pname}-${version}.tar.bz2";
+ sha256 = "1xkxx801p7sbfkn0bh3cz85wra4xf1z1zhjqqc80z1z1nln7fhb4";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gmime3
+ gnutls
+ gpgme
+ gtk3
+ gtksourceview
+ gtkspell3
+ libcanberra-gtk3
+ libesmtp
+ libical
+ libnotify
+ libsecret
+ openssl
+ webkitgtk
+ ];
+
+ configureFlags = [
+ "--with-canberra"
+ "--with-gtksourceview"
+ "--with-libsecret"
+ "--with-ssl"
+ "--with-unique"
+ "--without-gnome"
+ "--with-spell-checker=gtkspell"
+ ];
+
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://pawsa.fedorapeople.org/balsa/";
+ description = "An e-mail client for GNOME";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/bubblemail/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/bubblemail/default.nix
new file mode 100644
index 000000000000..d415eb4e51f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/bubblemail/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, fetchFromGitLab
+, gettext
+, gtk3
+, python3Packages
+, gdk-pixbuf
+, libnotify
+, gst_all_1
+, libsecret
+, wrapGAppsHook
+, gsettings-desktop-schemas
+, gnome-online-accounts
+, glib
+, gobject-introspection
+, folks
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "bubblemail";
+ version = "1.3";
+
+ src = fetchFromGitLab {
+ domain = "framagit.org";
+ owner = "razer";
+ repo = "bubblemail";
+ rev = "v${version}";
+ sha256 = "FEIdEoZBlM28F5kSMoln7KACwetb8hp+qix1P+DIE8k=";
+ };
+
+ buildInputs = [
+ gtk3
+ gdk-pixbuf
+ glib
+ libnotify
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-bad
+ libsecret
+ gnome-online-accounts
+ folks
+ ];
+
+ nativeBuildInputs = [
+ gettext
+ wrapGAppsHook
+ python3Packages.pillow
+ # For setup-hook
+ gobject-introspection
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ gsettings-desktop-schemas
+ pygobject3
+ dbus-python
+ pyxdg
+ ];
+
+ # See https://nixos.org/nixpkgs/manual/#ssec-gnome-common-issues-double-wrapped
+ dontWrapGApps = true;
+
+ # https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ meta = with lib; {
+ description = "An extensible mail notification service.";
+ homepage = "http://bubblemail.free.fr/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ doronbehar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
new file mode 100644
index 000000000000..a2a26010e4df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -0,0 +1,117 @@
+{ config, fetchurl, stdenv, wrapGAppsHook, autoreconfHook
+, curl, dbus, dbus-glib, enchant, gtk2, gnutls, gnupg, gpgme, gumbo
+, libarchive, libcanberra-gtk2, libetpan, libnotify, libsoup, libxml2, networkmanager
+, openldap, perl, pkgconfig, poppler, python, shared-mime-info
+, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical
+# Build options
+# TODO: A flag to build the manual.
+# TODO: Plugins that complain about their missing dependencies, even when
+# provided:
+# gdata requires libgdata
+# geolocation requires libchamplain
+, enableLdap ? false
+, enableNetworkManager ? config.networking.networkmanager.enable or false
+, enablePgp ? true
+, enablePluginArchive ? false
+, enablePluginLitehtmlViewer ? false
+, enablePluginNotificationDialogs ? true
+, enablePluginNotificationSounds ? true
+, enablePluginPdf ? false
+, enablePluginPython ? false
+, enablePluginRavatar ? false
+, enablePluginRssyl ? false
+, enablePluginSmime ? false
+, enablePluginSpamassassin ? false
+, enablePluginSpamReport ? false
+, enablePluginVcalendar ? false
+, enableSpellcheck ? false
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "claws-mail";
+ version = "3.17.7";
+
+ src = fetchurl {
+ url = "https://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
+ sha256 = "1j6x09621wng0lavh53nwzh9vqjzpspl8kh5azh7kbihpi4ldfb0";
+ };
+
+ outputs = [ "out" "dev" ];
+
+ patches = [
+ ./mime.patch
+ ];
+
+ preConfigure = ''
+ # autotools check tries to dlopen libpython as a requirement for the python plugin
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib
+ '';
+
+ postPatch = ''
+ substituteInPlace src/procmime.c \
+ --subst-var-by MIMEROOTDIR ${shared-mime-info}/share
+ '';
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook python.pkgs.wrapPython ];
+ propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ];
+
+ buildInputs =
+ [ curl dbus dbus-glib gtk2 gnutls gsettings-desktop-schemas
+ libetpan perl glib-networking libSM libytnef
+ ]
+ ++ optional enableSpellcheck enchant
+ ++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ]
+ ++ optional enablePluginArchive libarchive
+ ++ optional enablePluginNotificationSounds libcanberra-gtk2
+ ++ optional enablePluginNotificationDialogs libnotify
+ ++ optional enablePluginLitehtmlViewer gumbo
+ ++ optional enablePluginRssyl libxml2
+ ++ optional enableNetworkManager networkmanager
+ ++ optional enableLdap openldap
+ ++ optional enablePluginPdf poppler
+ ++ optional enablePluginVcalendar libical;
+
+ configureFlags =
+ optional (!enableLdap) "--disable-ldap"
+ ++ optional (!enableNetworkManager) "--disable-networkmanager"
+ ++ optionals (!enablePgp) [
+ "--disable-pgpcore-plugin"
+ "--disable-pgpinline-plugin"
+ "--disable-pgpmime-plugin"
+ ]
+ ++ optional (!enablePluginArchive) "--disable-archive-plugin"
+ ++ optional (!enablePluginLitehtmlViewer) "--disable-litehtml_viewer-plugin"
+ ++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin"
+ ++ optional (!enablePluginPython) "--disable-python-plugin"
+ ++ optional (!enablePluginRavatar) "--disable-libravatar-plugin"
+ ++ optional (!enablePluginRssyl) "--disable-rssyl-plugin"
+ ++ optional (!enablePluginSmime) "--disable-smime-plugin"
+ ++ optional (!enablePluginSpamassassin) "--disable-spamassassin-plugin"
+ ++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
+ ++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
+ ++ optional (!enableSpellcheck) "--disable-enchant";
+
+ enableParallelBuilding = true;
+
+ pythonPath = with python.pkgs; [ pygobject2 pygtk ];
+
+ preFixup = ''
+ buildPythonPath "$out $pythonPath"
+ gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share" --prefix PYTHONPATH : "$program_PYTHONPATH")
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/applications
+ cp claws-mail.desktop $out/share/applications
+ '';
+
+ meta = {
+ description = "The user-friendly, lightweight, and fast email client";
+ homepage = "https://www.claws-mail.org/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fpletz globin orivej ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix
new file mode 100644
index 000000000000..1e1909e7109a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix
@@ -0,0 +1,121 @@
+{ config, fetchgit, stdenv, wrapGAppsHook, autoreconfHook, bison, flex
+, curl, dbus, dbus-glib, enchant, gtk3, gnutls, gnupg, gpgme
+, libarchive, libcanberra-gtk3, libetpan, libnotify, libsoup, libxml2, networkmanager
+, openldap, perl, pkgconfig, poppler, python, shared-mime-info, webkitgtk
+, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical
+# Build options
+# TODO: A flag to build the manual.
+# TODO: Plugins that complain about their missing dependencies, even when
+# provided:
+# gdata requires libgdata
+# geolocation requires libchamplain
+, enableLdap ? false
+, enableNetworkManager ? config.networking.networkmanager.enable or false
+, enablePgp ? true
+, enablePluginArchive ? false
+, enablePluginFancy ? true
+, enablePluginNotificationDialogs ? true
+, enablePluginNotificationSounds ? true
+, enablePluginPdf ? false
+, enablePluginPython ? false
+, enablePluginRavatar ? false
+, enablePluginRssyl ? false
+, enablePluginSmime ? false
+, enablePluginSpamassassin ? false
+, enablePluginSpamReport ? false
+, enablePluginVcalendar ? false
+, enableSpellcheck ? false
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "claws-mail-gtk3";
+ version = "3.17.5";
+
+ src = fetchgit {
+ url = "git://git.claws-mail.org/claws.git";
+ rev = "c1e1902323c2b5dfe82144328b7933dc857ef343"; # this commit is "for release 3.17.5"
+ sha256 = "0cqzlzcms6alvsdsbcc06bsdi1h349b16qngn2z1p8fz16x6s6cy";
+ };
+
+ outputs = [ "out" "dev" ];
+
+ patches = [ ./mime.patch ];
+
+ preConfigure = ''
+ # autotools check tries to dlopen libpython as a requirement for the python plugin
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib
+ # generate version without .git
+ [ -e version ] || echo "echo ${version}" > version
+ '';
+
+ postPatch = ''
+ substituteInPlace src/procmime.c \
+ --subst-var-by MIMEROOTDIR ${shared-mime-info}/share
+ '';
+
+ nativeBuildInputs = [ autoreconfHook bison flex pkgconfig wrapGAppsHook python.pkgs.wrapPython ];
+ propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ];
+
+ buildInputs =
+ [ curl dbus dbus-glib gtk3 gnutls gsettings-desktop-schemas
+ libetpan perl glib-networking libSM libytnef
+ ]
+ ++ optional enableSpellcheck enchant
+ ++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ]
+ ++ optional enablePluginArchive libarchive
+ ++ optional enablePluginNotificationSounds libcanberra-gtk3
+ ++ optional enablePluginNotificationDialogs libnotify
+ ++ optional enablePluginFancy libsoup
+ ++ optional enablePluginRssyl libxml2
+ ++ optional enableNetworkManager networkmanager
+ ++ optional enableLdap openldap
+ ++ optional enablePluginPdf poppler
+ ++ optional enablePluginFancy webkitgtk
+ ++ optional enablePluginVcalendar libical;
+
+ configureFlags =
+ optional (!enableLdap) "--disable-ldap"
+ ++ optional (!enableNetworkManager) "--disable-networkmanager"
+ ++ optionals (!enablePgp) [
+ "--disable-pgpcore-plugin"
+ "--disable-pgpinline-plugin"
+ "--disable-pgpmime-plugin"
+ ]
+ ++ optional (!enablePluginArchive) "--disable-archive-plugin"
+ ++ optional (!enablePluginFancy) "--disable-fancy-plugin"
+ ++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin"
+ ++ optional (!enablePluginPython) "--disable-python-plugin"
+ ++ optional (!enablePluginRavatar) "--disable-libravatar-plugin"
+ ++ optional (!enablePluginRssyl) "--disable-rssyl-plugin"
+ ++ optional (!enablePluginSmime) "--disable-smime-plugin"
+ ++ optional (!enablePluginSpamassassin) "--disable-spamassassin-plugin"
+ ++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
+ ++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
+ ++ optional (!enableSpellcheck) "--disable-enchant";
+
+ enableParallelBuilding = true;
+
+ pythonPath = with python.pkgs; [ pygobject2 pygtk ];
+
+ preFixup = ''
+ buildPythonPath "$out $pythonPath"
+ gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share" --prefix PYTHONPATH : "$program_PYTHONPATH")
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/applications
+ cp claws-mail.desktop $out/share/applications
+ '';
+
+ NIX_CFLAGS_COMPILE = [ "-Wno-deprecated-declarations" ];
+
+ meta = {
+ description = "The user-friendly, lightweight, and fast email client";
+ homepage = "https://www.claws-mail.org/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fpletz globin orivej ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch
new file mode 100644
index 000000000000..2ff4269c3329
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch
@@ -0,0 +1,28 @@
+diff --git a/src/procmime.c b/src/procmime.c
+index bd3239e..06a3b26 100644
+--- a/src/procmime.c
++++ b/src/procmime.c
+@@ -1144,20 +1144,16 @@ GList *procmime_get_mime_type_list(void)
+ MimeType *mime_type;
+ gboolean fp_is_glob_file = TRUE;
+
+ if (mime_type_list)
+ return mime_type_list;
+-
+-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
+- if ((fp = claws_fopen(DATAROOTDIR "/mime/globs", "rb")) == NULL)
+-#else
+- if ((fp = claws_fopen("/usr/share/mime/globs", "rb")) == NULL)
+-#endif
++
++ if ((fp = claws_fopen("@MIMEROOTDIR@/mime/globs", "rb")) == NULL)
+ {
+ fp_is_glob_file = FALSE;
+ if ((fp = claws_fopen("/etc/mime.types", "rb")) == NULL) {
+ if ((fp = claws_fopen(SYSCONFDIR "/mime.types", "rb"))
+ == NULL) {
+ FILE_OP_ERROR(SYSCONFDIR "/mime.types",
+ "claws_fopen");
+ return NULL;
+ }
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
new file mode 100644
index 000000000000..d3f5988b4747
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, gnome3, cmake, gettext, intltool, pkg-config, evolution-data-server
+, sqlite, gtk3, webkitgtk, libgdata, libmspack }:
+
+stdenv.mkDerivation rec {
+ pname = "evolution-ews";
+ version = "3.36.5";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0h1wz4hxsasihdvvsaxnmzka4afjw7603gn0qcw8rxpw114ib1bl";
+ };
+
+ nativeBuildInputs = [ cmake gettext intltool pkg-config ];
+
+ buildInputs = [
+ evolution-data-server gnome3.evolution
+ sqlite libgdata
+ gtk3 webkitgtk
+ libmspack
+ ];
+
+ # Building with libmspack as reccommended: https://wiki.gnome.org/Apps/Evolution/Building#Build_evolution-ews
+ cmakeFlags = [
+ "-DWITH_MSPACK=ON"
+ ];
+
+ PKG_CONFIG_EVOLUTION_SHELL_3_0_ERRORDIR = "${placeholder "out"}/share/evolution/errors";
+ PKG_CONFIG_EVOLUTION_SHELL_3_0_PRIVLIBDIR = "${placeholder "out"}/lib/evolution";
+ PKG_CONFIG_CAMEL_1_2_CAMEL_PROVIDERDIR = "${placeholder "out"}/lib/evolution-data-server/camel-providers";
+ PKG_CONFIG_LIBEDATA_BOOK_1_2_BACKENDDIR = "${placeholder "out"}/lib/evolution-data-server/addressbook-backends";
+ PKG_CONFIG_LIBEDATA_CAL_2_0_BACKENDDIR = "${placeholder "out"}/lib/evolution-data-server/calendar-backends";
+ PKG_CONFIG_LIBEBACKEND_1_2_MODULEDIR = "${placeholder "out"}/lib/evolution-data-server/registry-modules";
+ PKG_CONFIG_EVOLUTION_SHELL_3_0_MODULEDIR = "${placeholder "out"}/lib/evolution/modules";
+ PKG_CONFIG_EVOLUTION_DATA_SERVER_1_2_PRIVDATADIR = "${placeholder "out"}/share/evolution-data-server";
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = "evolution-ews";
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Evolution connector for Microsoft Exchange Server protocols";
+ homepage = "https://gitlab.gnome.org/GNOME/evolution-ews";
+ license = "LGPL-2.1-only OR LGPL-3.0-only"; # https://gitlab.gnome.org/GNOME/evolution-ews/issues/111
+ maintainers = [ maintainers.dasj19 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix
new file mode 100644
index 000000000000..a097fd0dd8a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, pkgconfig
+, gobject-introspection
+, pango
+, cairo
+, gtk2
+}:
+
+buildGoModule rec {
+ pname = "hasmail-unstable";
+ version = "2019-08-24";
+
+ src = fetchFromGitHub {
+ owner = "jonhoo";
+ repo = "hasmail";
+ rev = "eb52536d26815383bfe5990cd5ace8bb9d036c8d";
+ sha256 = "1p6kwa5xk1mb1fkkxz1b5rcyp5kb4zc8nfif1gk6fab6wbdj9ia1";
+ };
+
+ vendorSha256 = "0sblgjmn3i3k31jfq5zy3bx7bv5z2cg6rjzr7aj87c57yhzzcmk7";
+
+ doCheck = false;
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ buildInputs = [
+ pango
+ cairo
+ gtk2
+ ];
+
+ meta = with lib; {
+ description = "Simple tray icon for detecting new email on IMAP servers";
+ homepage = "https://github.com/jonhoo/hasmail";
+ license = licenses.unlicense;
+ maintainers = with maintainers; [ doronbehar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
new file mode 100644
index 000000000000..b677d82dce47
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, openssl, lua, pcre }:
+
+stdenv.mkDerivation rec {
+ pname = "imapfilter";
+ version = "2.6.16";
+
+ src = fetchFromGitHub {
+ owner = "lefcha";
+ repo = "imapfilter";
+ rev = "v${version}";
+ sha256 = "0f65sg6hhv6778fxwsz4hvarbm97dsb8jj0mg7a9qs273r35pqck";
+ };
+ makeFlags = [
+ "SSLCAFILE=/etc/ssl/certs/ca-bundle.crt"
+ "PREFIX=$(out)"
+ ];
+
+ propagatedBuildInputs = [ openssl pcre lua ];
+
+ meta = {
+ homepage = "https://github.com/lefcha/imapfilter";
+ description = "Mail filtering utility";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix
new file mode 100644
index 000000000000..30ca6d6c7eca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, binutils, patchelf, makeWrapper
+, expat, xorg, gdk-pixbuf, glib, gnome2, cairo, atk, freetype, pango
+, fontconfig, dbus, nss, nspr, gtk2-x11, alsaLib, cups, libpulseaudio, udev }:
+
+stdenv.mkDerivation rec {
+ pname = "inboxer";
+ version = "1.2.3";
+
+ meta = with stdenv.lib; {
+ description = "Unofficial, free and open-source Google Inbox Desktop App";
+ homepage = "https://denysdovhan.com/inboxer";
+ maintainers = [ maintainers.mgttlinger ];
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ };
+
+ src = fetchurl {
+ url = "https://github.com/denysdovhan/inboxer/releases/download/v${version}/inboxer_${version}_amd64.deb";
+ sha256 = "1ak8sr9sc0fkbrmfynxivbn9csrbyly4fhjlk7kx10aq8hk893a7";
+ };
+
+ unpackPhase = ''
+ ar p $src data.tar.xz | tar xJ
+ '';
+ nativeBuildInputs = [ patchelf makeWrapper ];
+ buildInputs = [ binutils ];
+
+ preFixup = with stdenv.lib; let
+ lpath = makeLibraryPath [
+ alsaLib
+ atk
+ cairo
+ cups
+ dbus
+ nss
+ nspr
+ freetype
+ fontconfig
+ gtk2-x11
+ xorg.libX11
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXi
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXcomposite
+ xorg.libXtst
+ xorg.libXScrnSaver
+ xorg.libxcb
+ gdk-pixbuf
+ glib
+ pango
+ gnome2.GConf
+ expat
+ stdenv.cc.cc.lib
+ libpulseaudio
+ udev
+ ];
+ in ''
+ patchelf \
+ --set-rpath "$out/opt/Inboxer:${lpath}" \
+ $out/opt/Inboxer/libnode.so
+ patchelf \
+ --set-rpath "$out/opt/Inboxer:${lpath}" \
+ $out/opt/Inboxer/libffmpeg.so
+
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$out/opt/Inboxer:${lpath}" \
+ $out/opt/Inboxer/inboxer
+
+ wrapProgram $out/opt/Inboxer/inboxer --set LD_LIBRARY_PATH "${xorg.libxkbfile}/lib:${lpath}"
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -R usr/share opt $out/
+ # fix the path in the desktop file
+ substituteInPlace \
+ $out/share/applications/inboxer.desktop \
+ --replace /opt/ $out/opt/
+ # symlink the binary to bin/
+ ln -s $out/opt/Inboxer/inboxer $out/bin/inboxer
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
new file mode 100644
index 000000000000..3dd03c971203
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, fetchurl, pkgconfig, lua, file, ncurses, gmime, pcre-cpp
+, perl, perlPackages, makeWrapper
+, debugBuild ? false
+, alternativeGlobalConfigFilePath ? null
+}:
+
+let
+ version = "3.1";
+ binaryName = if debugBuild then "lumail2-debug" else "lumail2";
+ alternativeConfig = builtins.toFile "lumail2.lua"
+ (builtins.readFile alternativeGlobalConfigFilePath);
+
+ globalConfig = if alternativeGlobalConfigFilePath == null then ''
+ mkdir -p $out/etc/lumail2
+ cp global.config.lua $out/etc/lumail2.lua
+ for n in ./lib/*.lua; do
+ cp "$n" $out/etc/lumail2/
+ done
+ '' else ''
+ ln -s ${alternativeConfig} $out/etc/lumail2.lua
+ '';
+
+ getPath = type : "${lua}/lib/?.${type};";
+ luaPath = getPath "lua";
+ luaCPath = getPath "so";
+in
+stdenv.mkDerivation {
+ pname = "lumail";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://lumail.org/download/lumail-${version}.tar.gz";
+ sha256 = "0vj7p7f02m3w8wb74ilajcwznc4ai4h2ikkz9ildy0c00aqsi5w4";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ];
+ buildInputs = [
+ lua file ncurses gmime pcre-cpp
+ perl perlPackages.JSON perlPackages.NetIMAPClient
+ ];
+
+ preConfigure = ''
+ sed -e 's|"/etc/lumail2|LUMAIL_LUAPATH"/..|' -i src/lumail2.cc src/imap_proxy.cc
+
+ perlFlags=
+ for i in $(IFS=:; echo $PERL5LIB); do
+ perlFlags="$perlFlags -I$i"
+ done
+
+ sed -e "s|^#\!\(.*/perl.*\)$|#\!\1$perlFlags|" -i perl.d/imap-proxy
+ '';
+
+ buildFlags = stdenv.lib.optional debugBuild "lumail2-debug";
+
+ installPhase = ''
+ mkdir -p $out/bin || true
+ install -m755 ${binaryName} $out/bin/
+ ''
+ + globalConfig
+ + ''
+ wrapProgram $out/bin/${binaryName} \
+ --prefix LUA_PATH : "${luaPath}" \
+ --prefix LUA_CPATH : "${luaCPath}"
+ '';
+
+ makeFlags = [
+ "LVER=lua"
+ "PREFIX=$(out)"
+ "SYSCONFDIR=$(out)/etc"
+ "LUMAIL_LIBS=$(out)/etc/lumail2"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Console-based email client";
+ homepage = "https://lumail.org/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [orivej];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix
new file mode 100644
index 000000000000..96ce99580fcb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "mailcheck";
+ version = "1.91.2";
+
+ patches = [ ./mailcheck-Makefile.patch ];
+
+ src = fetchurl {
+ url = "mirror://sourceforge/mailcheck/mailcheck_${version}.tar.gz";
+ sha256 = "0p0azaxsnjvjbg41ycicc1i0kzw6jiynq8k49cfkdhlckxfdm9kc";
+ };
+
+ meta = {
+ description = "Simple command line tool to check for new messages";
+ homepage = "http://mailcheck.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ kovirobi ];
+ platforms = stdenv.lib.platforms.linux;
+ inherit version;
+
+ longDescription = ''
+ A simple command line tool to check for new mail in local mbox and
+ maildir and remote POP3 and IMAP mailboxes.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch
new file mode 100644
index 000000000000..46b3bff4f7a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch
@@ -0,0 +1,22 @@
+diff -u a/Makefile b/Makefile
+--- a/Makefile 2015-04-05 19:31:41.871227295 +0100
++++ b/Makefile 2015-04-05 19:42:49.743517508 +0100
+@@ -1,3 +1,5 @@
++prefix=$(out)
++
+ all: mailcheck
+
+ debug: mailcheck.c netrc.c netrc.h socket.c
+@@ -7,8 +9,10 @@
+ $(CC) -Wall -O2 mailcheck.c netrc.c socket.c -s -o mailcheck
+
+ install: mailcheck
+- install mailcheck $(prefix)/usr/bin
+- install -m 644 mailcheckrc $(prefix)/etc
++ [ -d $(prefix)/bin ] || mkdir $(prefix)/bin
++ [ -d $(prefix)/etc ] || mkdir $(prefix)/etc
++ install mailcheck $(prefix)/bin/
++ install -m 644 mailcheckrc $(prefix)/etc/
+
+ distclean: clean
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
new file mode 100644
index 000000000000..d74797dbc50b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
@@ -0,0 +1,108 @@
+{ lib
+, callPackage
+, fetchFromGitHub
+, gettext
+, xorg # for lndir
+, gtk3
+, python3Packages
+, gdk-pixbuf
+, libnotify
+, gst_all_1
+, libsecret
+, wrapGAppsHook
+, gsettings-desktop-schemas
+, glib
+, gobject-introspection
+# Available plugins (can be overriden)
+, availablePlugins
+# Used in the withPlugins interface at passthru, can be overrided directly, or
+# prefarably via e.g: `mailnag.withPlugins([mailnag.availablePlugins.goa])`
+, mailnag
+, userPlugins ? [ ]
+, pluginsDeps ? [ ]
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "mailnag";
+ version = "2.0.0";
+
+ src = fetchFromGitHub {
+ owner = "pulb";
+ repo = "mailnag";
+ rev = "v${version}";
+ sha256 = "0q97v9i96br22z3h6r2mz79i68ib8m8x42yxky78szfrf8j60i30";
+ };
+
+ buildInputs = [
+ gtk3
+ gdk-pixbuf
+ glib
+ libnotify
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-bad
+ gobject-introspection
+ libsecret
+ ] ++ pluginsDeps;
+
+ nativeBuildInputs = [
+ gettext
+ wrapGAppsHook
+ # To later add plugins to
+ xorg.lndir
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ gsettings-desktop-schemas
+ pygobject3
+ dbus-python
+ pyxdg
+ ];
+
+ passthru = {
+ inherit availablePlugins;
+ withPlugins =
+ plugs:
+ let
+ # goa plugin requires gio's gnome-online-accounts which requires making sure
+ # mailnag runs with GI_TYPELIB_PATH containing the path to Goa-1.0.typelib.
+ # This is handled best by adding the plugins' deps to buildInputs and let
+ # wrapGAppsHook handle that.
+ pluginsDeps = lib.flatten (lib.catAttrs "buildInputs" plugs);
+ self = mailnag;
+ in
+ self.override {
+ userPlugins = plugs;
+ inherit pluginsDeps;
+ };
+ };
+
+ # See https://nixos.org/nixpkgs/manual/#ssec-gnome-common-issues-double-wrapped
+ dontWrapGApps = true;
+
+ preFixup = ''
+ substituteInPlace $out/${python3Packages.python.sitePackages}/Mailnag/common/dist_cfg.py \
+ --replace "/usr/" $out/
+ for desktop_file in $out/share/applications/*.desktop; do
+ substituteInPlace "$desktop_file" \
+ --replace "/usr/bin" $out/bin
+ done
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ # Actually install plugins
+ postInstall = ''
+ for plug in ${builtins.toString userPlugins}; do
+ lndir $plug/${python3Packages.python.sitePackages} $out/${python3Packages.python.sitePackages}
+ done
+ '';
+
+ meta = with lib; {
+ description = "An extensible mail notification daemon";
+ homepage = "https://github.com/pulb/mailnag";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ doronbehar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix
new file mode 100644
index 000000000000..b2eccdc134bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchFromGitHub
+, python3Packages
+, gobject-introspection
+, gnome-online-accounts
+}:
+
+python3Packages.buildPythonPackage rec {
+ pname = "mailnag-goa-plugin";
+ version = "2.0.0";
+
+ src = fetchFromGitHub {
+ owner = "pulb";
+ repo = "mailnag-goa-plugin";
+ rev = "v${version}";
+ sha256 = "0bij6cy96nhq7xzslx0fnhmiac629h0x4wgy67k4i4npwqw10680";
+ };
+
+ buildInputs = [
+ gobject-introspection
+ gnome-online-accounts
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Mailnag GNOME Online Accounts plugin.";
+ homepage = "https://github.com/pulb/mailnag-goa-plugin";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ doronbehar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix
new file mode 100644
index 000000000000..6bd0995623db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, python2Packages, gnupg1orig, openssl, git }:
+
+python2Packages.buildPythonApplication rec {
+ pname = "mailpile";
+ version = "1.0.0rc2";
+
+ src = fetchFromGitHub {
+ owner = "mailpile";
+ repo = "Mailpile";
+ rev = version;
+ sha256 = "1z5psh00fjr8gnl4yjcl4m9ywfj24y1ffa2rfb5q8hq4ksjblbdj";
+ };
+
+ postPatch = ''
+ patchShebangs scripts
+ '';
+
+ nativeBuildInputs = with python2Packages; [ pbr git ];
+ PBR_VERSION=version;
+
+ propagatedBuildInputs = with python2Packages; [
+ appdirs
+ cryptography
+ fasteners
+ gnupg1orig
+ jinja2
+ pgpdump
+ pillow
+ python2Packages.lxml
+ spambayes
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/mailpile \
+ --prefix PATH ":" "${stdenv.lib.makeBinPath [ gnupg1orig openssl ]}" \
+ --set-default MAILPILE_SHARED "$out/share/mailpile"
+ '';
+
+ # No tests were found
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A modern, fast web-mail client with user-friendly encryption and privacy features";
+ homepage = "https://www.mailpile.is/";
+ license = [ licenses.asl20 licenses.agpl3 ];
+ platforms = platforms.linux;
+ maintainers = [ maintainers.domenkozar ];
+ knownVulnerabilities = [
+ "Numerous and uncounted, upstream has requested we not package it. See more: https://github.com/NixOS/nixpkgs/pull/23058#issuecomment-283515104"
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
new file mode 100644
index 000000000000..6c6bf6f93db3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -0,0 +1,85 @@
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, alsaLib
+, coreutils
+, db
+, dpkg
+, glib
+, gtk3
+, libkrb5
+, libsecret
+, nss
+, openssl
+, udev
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mailspring";
+ version = "1.7.8";
+
+ src = fetchurl {
+ url = "https://github.com/Foundry376/Mailspring/releases/download/${version}/mailspring-${version}-amd64.deb";
+ sha256 = "207fbf813b6da018a5b848e5dc1194b5996daab39adbd873b2cecb0565c105ce";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ dpkg
+ ];
+
+ buildInputs = [
+ alsaLib
+ db
+ glib
+ gtk3
+ libkrb5
+ libsecret
+ nss
+ xorg.libxkbfile
+ xorg.libXScrnSaver
+ xorg.libXtst
+ ];
+
+ runtimeDependencies = [
+ coreutils
+ openssl
+ (lib.getLib udev)
+ ];
+
+ unpackPhase = ''
+ dpkg -x $src .
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{bin,lib}
+ cp -ar ./usr/share $out
+
+ substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \
+ --replace realpath ${coreutils}/bin/realpath \
+ --replace dirname ${coreutils}/bin/dirname
+
+ ln -s $out/share/mailspring/mailspring $out/bin/mailspring
+ ln -s ${openssl.out}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
+ '';
+
+ postFixup = /* sh */ ''
+ substituteInPlace $out/share/applications/mailspring.desktop \
+ --replace /usr/bin $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A beautiful, fast and maintained fork of Nylas Mail by one of the original authors";
+ longDescription = ''
+ Mailspring is an open-source mail client forked from Nylas Mail and built with Electron.
+ Mailspring's sync engine runs locally, but its source is not open.
+ '';
+ license = licenses.unfree;
+ maintainers = with maintainers; [ toschmidt ];
+ homepage = "https://getmailspring.com";
+ downloadPage = "https://github.com/Foundry376/Mailspring";
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
new file mode 100644
index 000000000000..2ac32f34304f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub, installShellFiles, libiconv, ruby ? null }:
+
+stdenv.mkDerivation rec {
+ pname = "mblaze";
+ version = "1.0";
+
+ nativeBuildInputs = [ installShellFiles ];
+ buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
+
+ src = fetchFromGitHub {
+ owner = "leahneukirchen";
+ repo = "mblaze";
+ rev = "v${version}";
+ sha256 = "0hxy3mjjv4hg856sl1r15fdmqaw4s9c26b3lidsd5x0kpqy601ai";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ installShellCompletion contrib/_mblaze
+ '' + lib.optionalString (ruby != null) ''
+ install -Dt $out/bin contrib/msuck contrib/mblow
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/leahneukirchen/mblaze";
+ description = "Unix utilities for processing and interacting with mail messages which are stored in maildir folders";
+ license = licenses.cc0;
+ platforms = platforms.all;
+ maintainers = [ maintainers.ajgrf ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
new file mode 100644
index 000000000000..4f3a1ef3901f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, lib
+, fetchgit
+, rustPlatform
+, pkgconfig
+, openssl
+, dbus
+, sqlite
+, file
+, gzip
+, makeWrapper
+, notmuch
+ # Build with support for notmuch backend
+, withNotmuch ? true
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "meli";
+ version = "alpha-0.6.2";
+
+ src = fetchgit {
+ url = "https://git.meli.delivery/meli/meli.git";
+ rev = version;
+ sha256 = "0ycyksrrp4llwklzx3ipac8hmpfxa1pa7dqsm82wic0f6p5d1dp6";
+ };
+
+ cargoSha256 = "sha256:0lxwhb2c16w5z7rqzch0ij8n8hxb5xcin31w9i28mzv1xm7sg8ks";
+
+ cargoBuildFlags = lib.optional withNotmuch "--features=notmuch";
+
+ nativeBuildInputs = [ pkgconfig gzip makeWrapper ];
+
+ buildInputs = [ openssl dbus sqlite ] ++ lib.optional withNotmuch notmuch;
+
+ checkInputs = [ file ];
+
+ postInstall = ''
+ mkdir -p $out/share/man/man1
+ gzip < docs/meli.1 > $out/share/man/man1/meli.1.gz
+ mkdir -p $out/share/man/man5
+ gzip < docs/meli.conf.5 > $out/share/man/man5/meli.conf.5.gz
+ gzip < docs/meli-themes.5 > $out/share/man/man5/meli-themes.5.gz
+ '' + lib.optionalString withNotmuch ''
+ # Fixes this runtime error when meli is started with notmuch configured:
+ # $ meli
+ # libnotmuch5 was not found in your system. Make sure it is installed and
+ # in the library paths.
+ # notmuch is not a valid mail backend
+ wrapProgram $out/bin/meli --set LD_LIBRARY_PATH ${notmuch}/lib
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Experimental terminal mail client aiming for configurability and extensibility with sane defaults";
+ homepage = "https://meli.delivery";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ _0x4A6F matthiasbeyer erictapen ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
new file mode 100644
index 000000000000..c7554fc84b08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, python3, notmuch }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "mlarchive2maildir";
+ version = "0.0.8";
+
+ src = python3.pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "1din3yay2sas85178v0xr0hbm2396y4dalkcqql1ny9vdm94h6sp";
+ };
+
+ nativeBuildInputs = with python3.pkgs; [ setuptools_scm ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ beautifulsoup4
+ click
+ click-log
+ requests
+ six
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/flokli/mlarchive2maildir";
+ description = "Imports mail from (pipermail) archives into a maildir";
+ license = licenses.mit;
+ maintainers = with maintainers; [ andir flokli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix
new file mode 100644
index 000000000000..7d6254ed13cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, ncurses, autoreconfHook, flex }:
+let rev = "431604647f89d5aac7b199a7883e98e56e4ccf9e";
+in stdenv.mkDerivation rec {
+ pname = "mmh-unstable";
+ version = "2019-09-08";
+
+ src = fetchurl {
+ url = "http://git.marmaro.de/?p=mmh;a=snapshot;h=${rev};sf=tgz";
+ name = "mmh-${rev}.tgz";
+ sha256 = "1q97p4g3f1q2m567i2dbx7mm7ixw3g91ww2rymwj42cxk9iyizhv";
+ };
+
+ buildInputs = [ ncurses ];
+ nativeBuildInputs = [ autoreconfHook flex ];
+
+ meta = with stdenv.lib; {
+ description = "Set of electronic mail handling programs";
+ homepage = "http://marmaro.de/prog/mmh";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ broken = stdenv.isDarwin;
+ maintainers = with maintainers; [ kaction ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
new file mode 100644
index 000000000000..3461b3b560f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, makeWrapper, unzip, jre, runtimeShell }:
+
+let
+ version = "1.9";
+ name = "msgviewer-${version}";
+ uname = "MSGViewer-${version}";
+
+in stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/msgviewer/${uname}/${uname}.zip";
+ sha256 = "0igmr8c0757xsc94xlv2470zv2mz57zaj52dwr9wj8agmj23jbjz";
+ };
+
+ buildCommand = ''
+ dir=$out/lib/msgviewer
+ mkdir -p $out/bin $dir
+ unzip $src -d $dir
+ mv $dir/${uname}/* $dir
+ rmdir $dir/${uname}
+ cat <<_EOF > $out/bin/msgviewer
+ #!${runtimeShell} -eu
+ exec ${stdenv.lib.getBin jre}/bin/java -jar $dir/MSGViewer.jar "\$@"
+ _EOF
+ chmod 755 $out/bin/msgviewer
+ '';
+
+ nativeBuildInputs = [ makeWrapper unzip ];
+
+ meta = with stdenv.lib; {
+ description = "Viewer for .msg files (MS Outlook)";
+ homepage = "https://www.washington.edu/alpine/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
new file mode 100644
index 000000000000..0596cd350dfb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -0,0 +1,96 @@
+{ stdenv, fetchurl, fetchpatch, ncurses, which, perl
+, gdbm ? null
+, openssl ? null
+, cyrus_sasl ? null
+, gnupg ? null
+, gpgme ? null
+, kerberos ? null
+, headerCache ? true
+, sslSupport ? true
+, saslSupport ? true
+, smimeSupport ? false
+, gpgSupport ? false
+, gpgmeSupport ? true
+, imapSupport ? true
+, withSidebar ? true
+, gssSupport ? true
+}:
+
+assert headerCache -> gdbm != null;
+assert sslSupport -> openssl != null;
+assert saslSupport -> cyrus_sasl != null;
+assert smimeSupport -> openssl != null;
+assert gpgSupport -> gnupg != null;
+assert gpgmeSupport -> gpgme != null && openssl != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "mutt";
+ version = "2.0.3";
+
+ src = fetchurl {
+ url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
+ sha256 = "1vf1ab3mnx7p4s4n4pssajj211s3zr4730bwgsjx9gxcnyppqclw";
+ };
+
+ patches = optional smimeSupport (fetchpatch {
+ url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.10.1-2/debian/patches/misc/smime.rc.patch";
+ sha256 = "0b4i00chvx6zj9pcb06x2jysmrcb2znn831lcy32cgfds6gr3nsi";
+ });
+
+ buildInputs =
+ [ ncurses which perl ]
+ ++ optional headerCache gdbm
+ ++ optional sslSupport openssl
+ ++ optional gssSupport kerberos
+ ++ optional saslSupport cyrus_sasl
+ ++ optional gpgmeSupport gpgme;
+
+ configureFlags = [
+ (enableFeature headerCache "hcache")
+ (enableFeature gpgmeSupport "gpgme")
+ (enableFeature imapSupport "imap")
+ (enableFeature withSidebar "sidebar")
+ "--enable-smtp"
+ "--enable-pop"
+ "--with-mailpath="
+
+ # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
+ "ac_cv_path_SENDMAIL=sendmail"
+
+ # This allows calls with "-d N", that output debug info into ~/.muttdebug*
+ "--enable-debug"
+
+ # The next allows building mutt without having anything setgid
+ # set by the installer, and removing the need for the group 'mail'
+ # I set the value 'mailbox' because it is a default in the configure script
+ "--with-homespool=mailbox"
+ ] ++ optional sslSupport "--with-ssl"
+ ++ optional gssSupport "--with-gss"
+ ++ optional saslSupport "--with-sasl";
+
+ postPatch = optionalString (smimeSupport || gpgmeSupport) ''
+ sed -i 's#/usr/bin/openssl#${openssl}/bin/openssl#' smime_keys.pl
+ '';
+
+ postInstall = optionalString smimeSupport ''
+ # S/MIME setup
+ cp contrib/smime.rc $out/etc/smime.rc
+ sed -i 's#openssl#${openssl}/bin/openssl#' $out/etc/smime.rc
+ echo "source $out/etc/smime.rc" >> $out/etc/Muttrc
+ '' + optionalString gpgSupport ''
+ # GnuPG setup
+ cp contrib/gpg.rc $out/etc/gpg.rc
+ sed -i 's#\(command="\)gpg #\1${gnupg}/bin/gpg #' $out/etc/gpg.rc
+ echo "source $out/etc/gpg.rc" >> $out/etc/Muttrc
+ '';
+
+ meta = {
+ description = "A small but very powerful text-based mail client";
+ homepage = "http://www.mutt.org";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ rnhmjoj ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
new file mode 100644
index 000000000000..cf78da9a5048
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
+, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
+, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, runtimeShell, sqlite, zlib
+, glibcLocales
+, fetchpatch
+}:
+
+stdenv.mkDerivation rec {
+ version = "20201127";
+ pname = "neomutt";
+
+ src = fetchFromGitHub {
+ owner = "neomutt";
+ repo = "neomutt";
+ rev = version;
+ sha256 = "sha256-BkDGKZmpwahDw1vD67CyWfxD93H83kcpv5JBGVL5F/o=";
+ };
+
+ buildInputs = [
+ cyrus_sasl gss gpgme kerberos libidn ncurses
+ notmuch openssl perl lmdb
+ mailcap sqlite
+ ];
+
+ nativeBuildInputs = [
+ docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib w3m
+ ];
+
+ enableParallelBuilding = true;
+
+ postPatch = ''
+ substituteInPlace contrib/smime_keys \
+ --replace /usr/bin/openssl ${openssl}/bin/openssl
+
+ for f in doc/*.{xml,xsl}* ; do
+ substituteInPlace $f \
+ --replace http://docbook.sourceforge.net/release/xsl/current ${docbook_xsl}/share/xml/docbook-xsl \
+ --replace http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd
+ done
+
+
+ # allow neomutt to map attachments to their proper mime.types if specified wrongly
+ # and use a far more comprehensive list than the one shipped with neomutt
+ substituteInPlace send/sendlib.c \
+ --replace /etc/mime.types ${mailcap}/etc/mime.types
+ '';
+
+ preBuild = ''
+ export HOME=$(mktemp -d)
+ '';
+
+ configureFlags = [
+ "--enable-autocrypt"
+ "--gpgme"
+ "--gss"
+ "--lmdb"
+ "--notmuch"
+ "--ssl"
+ "--sasl"
+ "--with-homespool=mailbox"
+ "--with-mailpath="
+ # To make it not reference .dev outputs. See:
+ # https://github.com/neomutt/neomutt/pull/2367
+ "--disable-include-path-in-cflags"
+ # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
+ "ac_cv_path_SENDMAIL=sendmail"
+ "--zlib"
+ ];
+
+ # Fix missing libidn in mutt;
+ # this fix is ugly since it links all binaries in mutt against libidn
+ # like pgpring, pgpewrap, ...
+ NIX_LDFLAGS = "-lidn";
+
+ postInstall = ''
+ wrapProgram "$out/bin/neomutt" --prefix PATH : "$out/libexec/neomutt"
+ '';
+
+ doCheck = true;
+
+ preCheck = ''
+ cp -r ${fetchFromGitHub {
+ owner = "neomutt";
+ repo = "neomutt-test-files";
+ rev = "8629adab700a75c54e8e28bf05ad092503a98f75";
+ sha256 = "1ci04nqkab9mh60zzm66sd6mhsr6lya8wp92njpbvafc86vvwdlr";
+ }} $(pwd)/test-files
+ chmod -R +w test-files
+ (cd test-files && ./setup.sh)
+
+ export NEOMUTT_TEST_DIR=$(pwd)/test-files
+ '';
+
+ checkTarget = "test";
+ postCheck = "unset NEOMUTT_TEST_DIR";
+
+ meta = with stdenv.lib; {
+ description = "A small but very powerful text-based mail client";
+ homepage = "http://www.neomutt.org";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ cstrahan erikryb jfrankenau vrthra ma27 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix
new file mode 100644
index 000000000000..868037c33c1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig,
+ gettext, openssl
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation {
+ pname = "notbit";
+ version = "2018-01-09";
+
+ src = fetchFromGitHub {
+ owner = "bpeel";
+ repo = "notbit";
+ rev = "8b5d3d2da8ce54abae2536b4d97641d2c798cff3";
+ sha256 = "1623n0lvx42mamvb2vwin5i38hh0nxpxzmkr5188ss2x7m20lmii";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ buildInputs = [ openssl gettext ];
+
+ meta = {
+ description = "A minimal Bitmessage client";
+ homepage = "https://github.com/bpeel/notbit";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ mog ];
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix
new file mode 100644
index 000000000000..19b90b534efb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pkgconfig, glib, notmuch }:
+
+let
+ version = "9";
+in
+stdenv.mkDerivation {
+ pname = "notmuch-addrlookup";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "aperezdc";
+ repo = "notmuch-addrlookup-c";
+ rev ="v${version}";
+ sha256 = "1j3zdx161i1x4w0nic14ix5i8hd501rb31daf8api0k8855sx4rc";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib notmuch ];
+
+ installPhase = "install -D notmuch-addrlookup $out/bin/notmuch-addrlookup";
+
+ meta = with stdenv.lib; {
+ description = "Address lookup tool for Notmuch in C";
+ homepage = "https://github.com/aperezdc/notmuch-addrlookup-c";
+ maintainers = with maintainers; [ mog ];
+ platforms = platforms.unix;
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
new file mode 100644
index 000000000000..214f4311e691
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, gawk, mercury, pandoc, ncurses, gpgme }:
+
+stdenv.mkDerivation rec {
+ pname = "notmuch-bower";
+ version = "0.12";
+
+ src = fetchFromGitHub {
+ owner = "wangp";
+ repo = "bower";
+ rev = version;
+ sha256 = "0hvvlbvad6h73iiyn9xshlj073p2ddchgh0pyizh9gi8niir4fn5";
+ };
+
+ nativeBuildInputs = [ gawk mercury pandoc ];
+
+ buildInputs = [ ncurses gpgme ];
+
+ makeFlags = [ "PARALLEL=-j$(NIX_BUILD_CORES)" "bower" "man" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv bower $out/bin/
+ mkdir -p $out/share/man/man1
+ mv bower.1 $out/share/man/man1/
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/wangp/bower";
+ description = "A curses terminal client for the Notmuch email system";
+ maintainers = with maintainers; [ erictapen ];
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
new file mode 100644
index 000000000000..a9a82dc67c00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -0,0 +1,104 @@
+{ fetchurl, fetchgit, stdenv
+, pkgconfig, gnupg
+, xapian, gmime, talloc, zlib
+, doxygen, perl, texinfo
+, pythonPackages
+, emacs
+, ruby
+, which, dtach, openssl, bash, gdb, man
+, withEmacs ? true
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ version = "0.31";
+ pname = "notmuch";
+
+ passthru = {
+ pythonSourceRoot = "${src.name}/bindings/python";
+ inherit version;
+ };
+
+ src = fetchgit {
+ url = "https://git.notmuchmail.org/git/notmuch";
+ sha256 = "0f9d9k9avb46yh2r8fvijvw7bryqwckvyzc68f9phax2g4c99x4x";
+ rev = version;
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ doxygen # (optional) api docs
+ pythonPackages.sphinx # (optional) documentation -> doc/INSTALL
+ texinfo # (optional) documentation -> doc/INSTALL
+ ] ++ optional withEmacs [ emacs ];
+
+ buildInputs = [
+ gnupg # undefined dependencies
+ xapian gmime talloc zlib # dependencies described in INSTALL
+ perl
+ pythonPackages.python
+ ruby
+ ];
+
+ postPatch = ''
+ patchShebangs configure
+ patchShebangs test/
+
+ substituteInPlace lib/Makefile.local \
+ --replace '-install_name $(libdir)' "-install_name $out/lib"
+ '' + optionalString withEmacs ''
+ substituteInPlace emacs/notmuch-emacs-mua \
+ --replace 'EMACS:-emacs' 'EMACS:-${emacs}/bin/emacs' \
+ --replace 'EMACSCLIENT:-emacsclient' 'EMACSCLIENT:-${emacs}/bin/emacsclient'
+ '';
+
+ configureFlags = [
+ "--zshcompletiondir=${placeholder "out"}/share/zsh/site-functions"
+ "--bashcompletiondir=${placeholder "out"}/share/bash-completion/completions"
+ "--infodir=${placeholder "info"}/share/info"
+ ] ++ optional (!withEmacs) "--without-emacs"
+ ++ optional (withEmacs) "--emacslispdir=${placeholder "emacs"}/share/emacs/site-lisp"
+ ++ optional (isNull ruby) "--without-ruby";
+
+ # Notmuch doesn't use autoconf and consequently doesn't tag --bindir and
+ # friends
+ setOutputFlags = false;
+ enableParallelBuilding = true;
+ makeFlags = [ "V=1" ];
+
+
+ outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional withEmacs "emacs";
+
+ preCheck = let
+ test-database = fetchurl {
+ url = "https://notmuchmail.org/releases/test-databases/database-v1.tar.xz";
+ sha256 = "1lk91s00y4qy4pjh8638b5lfkgwyl282g1m27srsf7qfn58y16a2";
+ };
+ in ''
+ mkdir -p test/test-databases
+ ln -s ${test-database} test/test-databases/database-v1.tar.xz
+ '';
+ doCheck = !stdenv.hostPlatform.isDarwin && (versionAtLeast gmime.version "3.0.3");
+ checkTarget = "test";
+ checkInputs = [
+ which dtach openssl bash
+ gdb man emacs
+ ];
+
+ installTargets = [ "install" "install-man" "install-info" ];
+
+ postInstall = stdenv.lib.optionalString withEmacs ''
+ moveToOutput bin/notmuch-emacs-mua $emacs
+ '';
+
+ dontGzipMan = true; # already compressed
+
+ meta = {
+ description = "Mail indexer";
+ homepage = "https://notmuchmail.org/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ flokli puckipedia ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix
new file mode 100644
index 000000000000..a0dbf98f2763
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl
+, notmuch, openssl, pkgconfig, sqlite, xapian, zlib
+}:
+stdenv.mkDerivation rec {
+ version = "5";
+ pname = "muchsync";
+ passthru = {
+ inherit version;
+ };
+ src = fetchurl {
+ url = "http://www.muchsync.org/src/${pname}-${version}.tar.gz";
+ sha256 = "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ notmuch openssl sqlite xapian zlib ];
+ meta = {
+ description = "Synchronize maildirs and notmuch databases";
+ homepage = "http://www.muchsync.org/";
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ ocharles ];
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
new file mode 100644
index 000000000000..18264c5c6af4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, perl, perlPackages, makeWrapper, coreutils, notmuch }:
+
+stdenv.mkDerivation rec {
+ pname = "notmuch-mutt";
+ version = notmuch.version;
+
+ outputs = [ "out" ];
+
+ dontStrip = true;
+
+ buildInputs = [
+ perl
+ makeWrapper
+ ] ++ (with perlPackages; [
+ FileRemove
+ DigestSHA1
+ Later
+ MailBox
+ MailMaildir
+ MailTools
+ StringShellQuote
+ TermReadLineGnu
+ ]);
+
+ src = notmuch.src;
+
+ phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ ${coreutils}/bin/install -Dm755 \
+ ./contrib/notmuch-mutt/notmuch-mutt \
+ $out/bin/notmuch-mutt
+
+ wrapProgram $out/bin/notmuch-mutt \
+ --prefix PERL5LIB : $PERL5LIB
+ '';
+
+ meta = with lib; {
+ inherit version;
+ description = "Mutt support for notmuch";
+ homepage = "https://notmuchmail.org/";
+ license = with licenses; gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix
new file mode 100644
index 000000000000..8f268e67c304
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, gtk2, openssl ? null, gpgme ? null
+, gpgSupport ? true, sslSupport ? true }:
+
+assert gpgSupport -> gpgme != null;
+assert sslSupport -> openssl != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "sylpheed";
+ version = "3.7.0";
+
+ src = fetchurl {
+ url = "https://sylpheed.sraoss.jp/sylpheed/v3.7/${pname}-${version}.tar.xz";
+ sha256 = "0j9y5vdzch251s264diw9clrn88dn20bqqkwfmis9l7m8vmwasqd";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ gtk2 ]
+ ++ optionals gpgSupport [ gpgme ]
+ ++ optionals sslSupport [ openssl ];
+
+ configureFlags = optional gpgSupport "--enable-gpgme"
+ ++ optional sslSupport "--enable-ssl";
+
+ meta = {
+ homepage = "http://sylpheed.sraoss.jp/en/";
+ description = "Lightweight and user-friendly e-mail client";
+ maintainers = with maintainers; [ eelco ];
+ platforms = platforms.linux ++ platforms.darwin;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
new file mode 100644
index 000000000000..47af8a202439
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
@@ -0,0 +1,184 @@
+# This pakcage is keeped until Thunderbird 78 supports OpenPGP.
+# https://www.thunderbird.net/en-US/thunderbird/78.0.1/releasenotes/
+{ stdenv, fetchurl, config, makeWrapper
+, alsaLib
+, at-spi2-atk
+, atk
+, cairo
+, cups
+, curl
+, dbus-glib
+, dbus
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, glibc
+, gtk2
+, gtk3
+, kerberos
+, libX11
+, libXScrnSaver
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrender
+, libXt
+, libxcb
+, libcanberra
+, gnome3
+, libGLU, libGL
+, nspr
+, nss
+, pango
+, writeScript
+, xidel
+, coreutils
+, gnused
+, gnugrep
+, gnupg
+, runtimeShell
+}:
+
+# imports `version` and `sources`
+with (import ./68_sources.nix);
+
+let
+ arch = if stdenv.hostPlatform.system == "i686-linux"
+ then "linux-i686"
+ else "linux-x86_64";
+
+ isPrefixOf = prefix: string:
+ builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+ sourceMatches = locale: source:
+ (isPrefixOf source.locale locale) && source.arch == arch;
+
+ systemLocale = config.i18n.defaultLocale or "en-US";
+
+ defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+ source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+ name = "thunderbird-bin-${version}";
+in
+
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
+ inherit (source) sha256;
+ };
+
+ phases = "unpackPhase installPhase";
+
+ libPath = stdenv.lib.makeLibraryPath
+ [ stdenv.cc.cc
+ alsaLib
+ at-spi2-atk
+ atk
+ cairo
+ cups
+ curl
+ dbus-glib
+ dbus
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ glibc
+ gtk2
+ gtk3
+ kerberos
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXinerama
+ libXrender
+ libXt
+ libxcb
+ libcanberra
+ libGLU libGL
+ nspr
+ nss
+ pango
+ ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
+ stdenv.cc.cc
+ ];
+
+ buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase =
+ ''
+ mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
+ cp -r * "$prefix/usr/lib/thunderbird-bin-${version}"
+
+ mkdir -p "$out/bin"
+ ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
+
+ for executable in \
+ thunderbird crashreporter thunderbird-bin plugin-container updater
+ do
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ "$out/usr/lib/thunderbird-bin-${version}/$executable"
+ done
+
+ find . -executable -type f -exec \
+ patchelf --set-rpath "$libPath" \
+ "$out/usr/lib/thunderbird-bin-${version}/{}" \;
+
+ # Create a desktop item.
+ mkdir -p $out/share/applications
+ cat > $out/share/applications/thunderbird.desktop <<EOF
+ [Desktop Entry]
+ Type=Application
+ Exec=$out/bin/thunderbird
+ Icon=$out/usr/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
+ Name=Thunderbird
+ GenericName=Mail Reader
+ Categories=Application;Network;
+ EOF
+
+ # SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980
+ # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE:
+ # commit 87e261843c4236c541ee0113988286f77d2fa1ee
+ wrapProgram "$out/bin/thunderbird" \
+ --argv0 "$out/bin/.thunderbird-wrapped" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
+ --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
+ --set SNAP_NAME "thunderbird" \
+ --set MOZ_LEGACY_PROFILES 1 \
+ --set MOZ_ALLOW_DOWNGRADE 1
+ '';
+
+ passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
+ inherit name writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
+ baseName = "thunderbird";
+ channel = "release";
+ basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
+ baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
+ };
+ meta = with stdenv.lib; {
+ description = "Mozilla Thunderbird, a full-featured email client (binary package)";
+ homepage = "http://www.mozilla.org/thunderbird/";
+ license = {
+ free = false;
+ url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
+ };
+ maintainers = with stdenv.lib.maintainers; [ ];
+ platforms = platforms.linux;
+ knownVulnerabilities = [ "Support ended around Semptember 2020." ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix
new file mode 100644
index 000000000000..c48a6d1c6063
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix
@@ -0,0 +1,615 @@
+{
+ version = "68.12.0";
+ sources = [
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ar/thunderbird-68.12.0.tar.bz2";
+ locale = "ar";
+ arch = "linux-x86_64";
+ sha256 = "70cfb9e6a7a1f285f37a8f13c9a010237e6aabf815b77a12f54ee0deedd36400";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ast/thunderbird-68.12.0.tar.bz2";
+ locale = "ast";
+ arch = "linux-x86_64";
+ sha256 = "5645657f20d37ffdb11f383f164f03c66ed2024244849b09bfa60075d5d07490";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/be/thunderbird-68.12.0.tar.bz2";
+ locale = "be";
+ arch = "linux-x86_64";
+ sha256 = "d38cdcc2ba4534c23a1bb42b93f271623c497f48e1d255a23bf12a368ff339bd";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/bg/thunderbird-68.12.0.tar.bz2";
+ locale = "bg";
+ arch = "linux-x86_64";
+ sha256 = "c8883242683dec57f9db502d96d2036ec46753f474a33c0f1ae31f97f2c3113c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/br/thunderbird-68.12.0.tar.bz2";
+ locale = "br";
+ arch = "linux-x86_64";
+ sha256 = "cfb669e2378f97689a14f23e2c55ef4987e2508695eb195be3af75ed1d648345";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ca/thunderbird-68.12.0.tar.bz2";
+ locale = "ca";
+ arch = "linux-x86_64";
+ sha256 = "9ae4b43e0d5d9edd83291f0be7d53d07e5c84f1d0ad4348654136543b7b53a54";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cak/thunderbird-68.12.0.tar.bz2";
+ locale = "cak";
+ arch = "linux-x86_64";
+ sha256 = "d6d635a15b913679ed943c3501dd03140d099ff36b48c8731a47eacda1b5232b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cs/thunderbird-68.12.0.tar.bz2";
+ locale = "cs";
+ arch = "linux-x86_64";
+ sha256 = "616fbf24e36d63ce3cbc957d69b8972d517524c613a22bedcf5b57534f9a9a41";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cy/thunderbird-68.12.0.tar.bz2";
+ locale = "cy";
+ arch = "linux-x86_64";
+ sha256 = "548c51228d2f3003bb94e1bee91cea0d2edb95bd0f86ee4259c8daef90a2dca8";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/da/thunderbird-68.12.0.tar.bz2";
+ locale = "da";
+ arch = "linux-x86_64";
+ sha256 = "ad0e4b7a693d881b8875a5b8cc3e607a3883df759278129f0933522b9a6acd24";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/de/thunderbird-68.12.0.tar.bz2";
+ locale = "de";
+ arch = "linux-x86_64";
+ sha256 = "bf9b70b345ffe5df03365d819c5abc3339ed3af4d8a716cdfe7099134864a9b4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/dsb/thunderbird-68.12.0.tar.bz2";
+ locale = "dsb";
+ arch = "linux-x86_64";
+ sha256 = "a2cd7ffb0e8b4c3d1715c18e636d0dcd5efa245200d6d0f14048fc4b399b8121";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/el/thunderbird-68.12.0.tar.bz2";
+ locale = "el";
+ arch = "linux-x86_64";
+ sha256 = "07836ce122936848e26cd5a1522967760bee67654582076c53e4ec183cc4c40e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/en-GB/thunderbird-68.12.0.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-x86_64";
+ sha256 = "c89fa35af79eca3cc26b492c602a3f8af0dbaf6ce4ee3af93d93f10daf4e9d6e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/en-US/thunderbird-68.12.0.tar.bz2";
+ locale = "en-US";
+ arch = "linux-x86_64";
+ sha256 = "6eeea0de838909f91da7270e42ae1513d2b801f412fc758f2f8c682d260a7c24";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/es-AR/thunderbird-68.12.0.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-x86_64";
+ sha256 = "e9d84032a91f7feb2db3d22a500c564f273c2b637f97aaab2edf3209b93dda1d";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/es-ES/thunderbird-68.12.0.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-x86_64";
+ sha256 = "a986e8a48b59354421193f2dd01e3c291fb6c98031af43531e723dc217a43d4a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/et/thunderbird-68.12.0.tar.bz2";
+ locale = "et";
+ arch = "linux-x86_64";
+ sha256 = "2f7508e83aba4fd64a817c7eb4b44d4ea9371956339a009ba541bf3a349693cf";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/eu/thunderbird-68.12.0.tar.bz2";
+ locale = "eu";
+ arch = "linux-x86_64";
+ sha256 = "edbc5ff4ba45106233cdbf5255405c4ee52ba7e6811736958323a616881b943f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fi/thunderbird-68.12.0.tar.bz2";
+ locale = "fi";
+ arch = "linux-x86_64";
+ sha256 = "f4ad740a724efdbfec54445304ca75e9a16e0881bc18789b8ea35632d8857d4b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fr/thunderbird-68.12.0.tar.bz2";
+ locale = "fr";
+ arch = "linux-x86_64";
+ sha256 = "ebf60a227c9fe5237eff22fb81f3c8bc02a593de823d6f0ad9b67f07af129dea";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fy-NL/thunderbird-68.12.0.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-x86_64";
+ sha256 = "b12983077a62c5bf7353f50dd951348a457ce07f5beb2a579f199c4d77ed0906";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ga-IE/thunderbird-68.12.0.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-x86_64";
+ sha256 = "aa7c3a4b54fd6fef0f120a6748c45a3f379268f31e087cb3df07d270bf060bad";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/gd/thunderbird-68.12.0.tar.bz2";
+ locale = "gd";
+ arch = "linux-x86_64";
+ sha256 = "39fadb2bd4c01da0eb188cb9f52ccd726ec9f7eb5ced44e2a30ee0cfac2527bf";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/gl/thunderbird-68.12.0.tar.bz2";
+ locale = "gl";
+ arch = "linux-x86_64";
+ sha256 = "b4ee1f89b0326b22fc7a5b980b857c2652d6881d096060a8bc083015b47762d8";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/he/thunderbird-68.12.0.tar.bz2";
+ locale = "he";
+ arch = "linux-x86_64";
+ sha256 = "cefbc742672942e310dc9f4dbcefc8b66cf01d58ac64448ac8c0dc33fdace5ae";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hr/thunderbird-68.12.0.tar.bz2";
+ locale = "hr";
+ arch = "linux-x86_64";
+ sha256 = "9e132811cb6bd98faee86e298b78e845727bfded84c0cdab41608ed1565f1aee";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hsb/thunderbird-68.12.0.tar.bz2";
+ locale = "hsb";
+ arch = "linux-x86_64";
+ sha256 = "2a41d1e188fd5fed93a37a1bedc67cb745367447504a76836f79928194730d3b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hu/thunderbird-68.12.0.tar.bz2";
+ locale = "hu";
+ arch = "linux-x86_64";
+ sha256 = "9196df7850b9cff69f52b5db69ec3b64cfa312bba5669380c137b95a8140cf39";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hy-AM/thunderbird-68.12.0.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-x86_64";
+ sha256 = "4a08137a9a714677ecf86a24f165047b809e22eff50d196b92c153e59f943c30";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/id/thunderbird-68.12.0.tar.bz2";
+ locale = "id";
+ arch = "linux-x86_64";
+ sha256 = "39784aab0bc3253af47cdcd95824eccdecae4dac819bacf6a04daa7b5c86d6e3";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/is/thunderbird-68.12.0.tar.bz2";
+ locale = "is";
+ arch = "linux-x86_64";
+ sha256 = "a041d1af23e9c64967e4d014b6a84ddc80ad24e852146e448f6b380cdd672e67";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/it/thunderbird-68.12.0.tar.bz2";
+ locale = "it";
+ arch = "linux-x86_64";
+ sha256 = "b0e3161c801fbaee2f589b1bc61a4fba9968f5f363a62cf0f8af855d23e4782c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ja/thunderbird-68.12.0.tar.bz2";
+ locale = "ja";
+ arch = "linux-x86_64";
+ sha256 = "ad416d47930d81be9ac2f20b3699f4c74471c36e08b14f9d5c6ee1af97c7c9d4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ka/thunderbird-68.12.0.tar.bz2";
+ locale = "ka";
+ arch = "linux-x86_64";
+ sha256 = "3b30bc5f0971310d71e1909b4ed891481457ac8baf11c1e505c3400b2a7cfb63";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/kab/thunderbird-68.12.0.tar.bz2";
+ locale = "kab";
+ arch = "linux-x86_64";
+ sha256 = "abdc58d5d5ef251e63c0c40a48460f90e299a4420cbe4e290d519fbed4c335b8";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/kk/thunderbird-68.12.0.tar.bz2";
+ locale = "kk";
+ arch = "linux-x86_64";
+ sha256 = "08018b951de59b1a92717fc82bd98a0c324a019ee0ae14888f09c5351a586284";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ko/thunderbird-68.12.0.tar.bz2";
+ locale = "ko";
+ arch = "linux-x86_64";
+ sha256 = "1178adc42b3a2ddac46dd50ad8436d1be50db409963e8fac3beb22a431f885fe";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/lt/thunderbird-68.12.0.tar.bz2";
+ locale = "lt";
+ arch = "linux-x86_64";
+ sha256 = "18d88a8cbb24d2a78af0de282187a743e707136fdb61912e5f64bf75730e3a76";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ms/thunderbird-68.12.0.tar.bz2";
+ locale = "ms";
+ arch = "linux-x86_64";
+ sha256 = "e1754cfbf20e286fd6304b8d75337e3794893c5ebd9b242cf624090e6fc6e9ee";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nb-NO/thunderbird-68.12.0.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-x86_64";
+ sha256 = "6379f6dca3d8bacb466044f0a7d11b32eb61166d3f14c37431f77843eb884c90";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nl/thunderbird-68.12.0.tar.bz2";
+ locale = "nl";
+ arch = "linux-x86_64";
+ sha256 = "66a56e218365bb260980848427609d390674e2ba3c70b9adc4121f73c861d9b8";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nn-NO/thunderbird-68.12.0.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-x86_64";
+ sha256 = "ccdb135d43f5542151fe2c99a8e13cebfbc032367abb0308213433b753dc8125";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pl/thunderbird-68.12.0.tar.bz2";
+ locale = "pl";
+ arch = "linux-x86_64";
+ sha256 = "5dc2151d1bb956c4b6fbd1b6185d9328f7091e60fdcd51bad5a9ebaa8fcbb7d7";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pt-BR/thunderbird-68.12.0.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-x86_64";
+ sha256 = "5ebf77d47bf45b058aaeca857060c908dbf7036bae2c2c5812ff145aed840203";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pt-PT/thunderbird-68.12.0.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-x86_64";
+ sha256 = "73baa68f79b4a15795fc426dfc9a8d573a05e4ab8a663d122cfd802f93941825";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/rm/thunderbird-68.12.0.tar.bz2";
+ locale = "rm";
+ arch = "linux-x86_64";
+ sha256 = "29f8ba57d9000803bae795c2ff977347af9a1f0df123337eaab3bdcc20786734";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ro/thunderbird-68.12.0.tar.bz2";
+ locale = "ro";
+ arch = "linux-x86_64";
+ sha256 = "b8233ad81c6620c26a02457b9235ce0be0c5d93b81f88d9ddc84bc12f869dbad";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ru/thunderbird-68.12.0.tar.bz2";
+ locale = "ru";
+ arch = "linux-x86_64";
+ sha256 = "f959f786dbbb7d06cb33eca24efd9e2763c5ca73fc4ba47e9b933b6298d7f026";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/si/thunderbird-68.12.0.tar.bz2";
+ locale = "si";
+ arch = "linux-x86_64";
+ sha256 = "dcf59c0c1ea0acdcc894463b04c54339a72dcceb25fe5478608265eb3ead226a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sk/thunderbird-68.12.0.tar.bz2";
+ locale = "sk";
+ arch = "linux-x86_64";
+ sha256 = "2a06329fd4a9dd6333e2d73a44fca7eaf593032e8ace33736a03dbfffb2920a0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sl/thunderbird-68.12.0.tar.bz2";
+ locale = "sl";
+ arch = "linux-x86_64";
+ sha256 = "f7bd3e3a407dbab07836342ff29fc143fe3904e7f878ea719522ade3fc4f6b84";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sq/thunderbird-68.12.0.tar.bz2";
+ locale = "sq";
+ arch = "linux-x86_64";
+ sha256 = "0edc58751a6794494efab8b0a2ce852374a747ccb73b38455475f0099ea0f238";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sr/thunderbird-68.12.0.tar.bz2";
+ locale = "sr";
+ arch = "linux-x86_64";
+ sha256 = "91ac5cc0646c062b00b3b064af53ba03c7e034b75afa13dca7586eb80578d377";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sv-SE/thunderbird-68.12.0.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-x86_64";
+ sha256 = "5aa21e4b78f4294835197f784a651f17453d83fce98e7140e49c6da117464fd9";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/tr/thunderbird-68.12.0.tar.bz2";
+ locale = "tr";
+ arch = "linux-x86_64";
+ sha256 = "3ab2639dd126e3ed9b031fc10f4396c7d98ffa7b7ffca6a9b3f2f47590e3b83c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/uk/thunderbird-68.12.0.tar.bz2";
+ locale = "uk";
+ arch = "linux-x86_64";
+ sha256 = "59be2ddc7c65405e0b3854c2a551dab73df9736842ee362b2a20dc9088242a96";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/uz/thunderbird-68.12.0.tar.bz2";
+ locale = "uz";
+ arch = "linux-x86_64";
+ sha256 = "ae196683b283525511fbd2e3ad428339672f2f1339566a323e01f6f649d333c1";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/vi/thunderbird-68.12.0.tar.bz2";
+ locale = "vi";
+ arch = "linux-x86_64";
+ sha256 = "9d66b8e4eefbb6b8c0d9893b056fc684310ae583921d626cb676cd8a7b4b39de";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/zh-CN/thunderbird-68.12.0.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-x86_64";
+ sha256 = "2839f2f076a8a6e283a3ffdd6100986a11d19b9108fce074f8e7f127cb0f375e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/zh-TW/thunderbird-68.12.0.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-x86_64";
+ sha256 = "02ef645a7de8abc1c5dd92eb685d64570cf1db971cfe7e248111d6a17b3ddcd9";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ar/thunderbird-68.12.0.tar.bz2";
+ locale = "ar";
+ arch = "linux-i686";
+ sha256 = "5c4d899245a38626fa18d849bcf01d50125dee60d715d76224ca0bb4623f73be";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ast/thunderbird-68.12.0.tar.bz2";
+ locale = "ast";
+ arch = "linux-i686";
+ sha256 = "f657bdc5b43b75e43578251abccf5c7b9e6d0848fd55c6105060daba33c36721";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/be/thunderbird-68.12.0.tar.bz2";
+ locale = "be";
+ arch = "linux-i686";
+ sha256 = "669a2cbfe600727b9d9a8ed5046272a1f19b80b6af9a6a6977ce1b89f60fa36e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/bg/thunderbird-68.12.0.tar.bz2";
+ locale = "bg";
+ arch = "linux-i686";
+ sha256 = "e1b33857544c10c0191316f6e3d16b34957196b35a922c884315714fe851389b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/br/thunderbird-68.12.0.tar.bz2";
+ locale = "br";
+ arch = "linux-i686";
+ sha256 = "b9e4a530529449446fe5a302277878c4d2192ef7bb48206f8528024087f520ea";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ca/thunderbird-68.12.0.tar.bz2";
+ locale = "ca";
+ arch = "linux-i686";
+ sha256 = "aa5e4ae20fa9e5dbb8c0ba275ba18d1ba94900094ba3186aac40ffb27396a96f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cak/thunderbird-68.12.0.tar.bz2";
+ locale = "cak";
+ arch = "linux-i686";
+ sha256 = "a812c9150feec48e2ebfb1786f5e30ade33203160fa4102382435641caeaf3b8";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cs/thunderbird-68.12.0.tar.bz2";
+ locale = "cs";
+ arch = "linux-i686";
+ sha256 = "75813ad7dd0ae5c073964296dd687e5c1289178491adc98d40e853ed812bdca9";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cy/thunderbird-68.12.0.tar.bz2";
+ locale = "cy";
+ arch = "linux-i686";
+ sha256 = "b3894f05cf905aa96612860dcef0bdb4bb9564901ef84172e11856a9fa9e0ca4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/da/thunderbird-68.12.0.tar.bz2";
+ locale = "da";
+ arch = "linux-i686";
+ sha256 = "a4f21bd2017043872a962167f98db358b824ae1821fcf03e2df1bef7783e07c0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/de/thunderbird-68.12.0.tar.bz2";
+ locale = "de";
+ arch = "linux-i686";
+ sha256 = "3a079685f75d2ec0320ec9e366b4e037954d67fa3f9e3bda055b8cd7de8fbdd0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/dsb/thunderbird-68.12.0.tar.bz2";
+ locale = "dsb";
+ arch = "linux-i686";
+ sha256 = "295a0f56429b3638dd0dcbf8d97a6376636b67e22d493ce8dfaceeb579466d18";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/el/thunderbird-68.12.0.tar.bz2";
+ locale = "el";
+ arch = "linux-i686";
+ sha256 = "86e4b98ede80cc07cc1aec043af82068a73b7c76820f70df8314e3b91c108d18";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/en-GB/thunderbird-68.12.0.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-i686";
+ sha256 = "2cb03a17f88e3826181911ec6a7455528d1e4c051b065252c964c6c0794175e4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/en-US/thunderbird-68.12.0.tar.bz2";
+ locale = "en-US";
+ arch = "linux-i686";
+ sha256 = "11fe953ede0d99656534ac676f118e939024744c5301d378acbeac6792e668e5";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/es-AR/thunderbird-68.12.0.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-i686";
+ sha256 = "596264396a25adb873320222697e7f1a58aaab484de9c0d2e85f99962b6d893d";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/es-ES/thunderbird-68.12.0.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-i686";
+ sha256 = "a9512af30e2b1613a6bd1ae6f4ce785f676b2cf70b80a37d85a5e1566bb2b35f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/et/thunderbird-68.12.0.tar.bz2";
+ locale = "et";
+ arch = "linux-i686";
+ sha256 = "b7dcb196881a23e979edb5ae247a7c07b1cf1250cb4c159ce523d1a26be188c2";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/eu/thunderbird-68.12.0.tar.bz2";
+ locale = "eu";
+ arch = "linux-i686";
+ sha256 = "4066164b4c9242a9885bc2de802c4f5b6b594c928db36ac72c94faabaad86679";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fi/thunderbird-68.12.0.tar.bz2";
+ locale = "fi";
+ arch = "linux-i686";
+ sha256 = "a7c635cbbbc10725b28052ccc61603fb60b91e06bbf1f240561bdb8f941af55a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fr/thunderbird-68.12.0.tar.bz2";
+ locale = "fr";
+ arch = "linux-i686";
+ sha256 = "7dba28adb1287e1aa9ae85840fc3aca42aaedd4b2c2aa6cc68d5f793549d19b7";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fy-NL/thunderbird-68.12.0.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-i686";
+ sha256 = "bd763e264eb684ec3b0b1f2c68ce295d1df86994d15f5c66c487e4742bfef86e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ga-IE/thunderbird-68.12.0.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-i686";
+ sha256 = "52f9b5694efbdd8ecc76aef58695423c6a4b547b5b0cfedca313386b7500685e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/gd/thunderbird-68.12.0.tar.bz2";
+ locale = "gd";
+ arch = "linux-i686";
+ sha256 = "6c9c1b0f11ad13e0780371d54fedb52d2463713db3bc52adb72c8ea9ff80eb8f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/gl/thunderbird-68.12.0.tar.bz2";
+ locale = "gl";
+ arch = "linux-i686";
+ sha256 = "608bf5c0d6148cc3014758829ba06135222b462242456ca0984e7dc12654c2cd";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/he/thunderbird-68.12.0.tar.bz2";
+ locale = "he";
+ arch = "linux-i686";
+ sha256 = "f92d569a53f34bfdda4dac185834e5692526f13f20853d1943f165af33b54a37";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hr/thunderbird-68.12.0.tar.bz2";
+ locale = "hr";
+ arch = "linux-i686";
+ sha256 = "60d2f184219f8d17c2739ee3cc8463bed474142bd2caad74157b97db2306b27f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hsb/thunderbird-68.12.0.tar.bz2";
+ locale = "hsb";
+ arch = "linux-i686";
+ sha256 = "40ffece26101b2f6a7789511b026d99234bd34ec78e566e7e25065ae3201d693";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hu/thunderbird-68.12.0.tar.bz2";
+ locale = "hu";
+ arch = "linux-i686";
+ sha256 = "e74da0bdb27fe3375dfbd1ab042892de3ded84f33a6f6d46e209fdcaa28183d0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hy-AM/thunderbird-68.12.0.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-i686";
+ sha256 = "fd93972c11842b56453449e72617deb3177d020c8f25cf4d5fb687f4a3ddb5c0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/id/thunderbird-68.12.0.tar.bz2";
+ locale = "id";
+ arch = "linux-i686";
+ sha256 = "546825968ad86e4c5c6effefd0f924cc1d10489fff7968f17401e3f84c4d1ab0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/is/thunderbird-68.12.0.tar.bz2";
+ locale = "is";
+ arch = "linux-i686";
+ sha256 = "1f2e2228c685be2d65d6e0b92eef8ff3e58d7b772f846d0707a9b02e6d0ad306";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/it/thunderbird-68.12.0.tar.bz2";
+ locale = "it";
+ arch = "linux-i686";
+ sha256 = "41b27c8195432e1412e3c4645b823b8dd1f673eabf07ddc72f3d792d3f7488da";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ja/thunderbird-68.12.0.tar.bz2";
+ locale = "ja";
+ arch = "linux-i686";
+ sha256 = "68940d44d933bb7228d6f9a03406ca01903c54fdf57eb5a1e1033b12ef507df6";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ka/thunderbird-68.12.0.tar.bz2";
+ locale = "ka";
+ arch = "linux-i686";
+ sha256 = "ce0aff0fd47b00803ea66278b3514dcf65ecb5547878f8081f7ec6c1f411ce10";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/kab/thunderbird-68.12.0.tar.bz2";
+ locale = "kab";
+ arch = "linux-i686";
+ sha256 = "3936b56eaa1e05a96626f7d10c8fcc3ba9014b1385b21243c049b133b923ddef";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/kk/thunderbird-68.12.0.tar.bz2";
+ locale = "kk";
+ arch = "linux-i686";
+ sha256 = "7fa0aa64d0f0dcc6f71d6a21647cc4fccef935b783deb5d19b88f5b96b4b4ec4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ko/thunderbird-68.12.0.tar.bz2";
+ locale = "ko";
+ arch = "linux-i686";
+ sha256 = "4bddd0ccb747bb12cdc6d88c2c9544354293000c586454bb5932f4d81afbf400";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/lt/thunderbird-68.12.0.tar.bz2";
+ locale = "lt";
+ arch = "linux-i686";
+ sha256 = "f1a3514188c1b887afd2c662a1b6abf6fe37b558864be0cc79e87ed147188461";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ms/thunderbird-68.12.0.tar.bz2";
+ locale = "ms";
+ arch = "linux-i686";
+ sha256 = "7ea045d6db78ec7d6ebf164c8e3d28c2540a573238de518e934646573aec71dc";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nb-NO/thunderbird-68.12.0.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-i686";
+ sha256 = "d2c0e2099ea60b9da95ebd9bd79a5d0a6a1ebc84b8b490511a68c81355f97761";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nl/thunderbird-68.12.0.tar.bz2";
+ locale = "nl";
+ arch = "linux-i686";
+ sha256 = "48741be79422d80140ec862d004fa75a407f67490f67a3e440c01e0defe1f85f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nn-NO/thunderbird-68.12.0.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-i686";
+ sha256 = "b40f0d7112cadab322c8b71cacce5d6df87fb80f40cc55ca22c279016c3ea805";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pl/thunderbird-68.12.0.tar.bz2";
+ locale = "pl";
+ arch = "linux-i686";
+ sha256 = "e64b10526cb460f437427cc4a7ea90959cc693a75fd6a61b43e9d3fd76ded618";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pt-BR/thunderbird-68.12.0.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-i686";
+ sha256 = "bdb558f9430c06871954ec6c7d54267625184a0cba914a87ad199e8f32b03de2";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pt-PT/thunderbird-68.12.0.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-i686";
+ sha256 = "4631e8247446653e91f239fdb5ad3c8531f3d007dbdc83818178a4cdc525edf4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/rm/thunderbird-68.12.0.tar.bz2";
+ locale = "rm";
+ arch = "linux-i686";
+ sha256 = "13e6aca7139fd89e83e7ae9b71253731f0954b0a83cc3560ecc00500b9bc1df7";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ro/thunderbird-68.12.0.tar.bz2";
+ locale = "ro";
+ arch = "linux-i686";
+ sha256 = "023a567c42dad9bdbd465c8b99f12cf5f667ef4691e16971e09496c4a7db0f12";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ru/thunderbird-68.12.0.tar.bz2";
+ locale = "ru";
+ arch = "linux-i686";
+ sha256 = "9ec35bbce5f026a4262a5d708b53a767f47ac8e90314513d36a587d1a49dbb6b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/si/thunderbird-68.12.0.tar.bz2";
+ locale = "si";
+ arch = "linux-i686";
+ sha256 = "c540b94a45deeddf1f7f5a8cca8de7e944ee8ad9f8595a308836c159901ec0b6";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sk/thunderbird-68.12.0.tar.bz2";
+ locale = "sk";
+ arch = "linux-i686";
+ sha256 = "5296241664023773d2c0c4fa55e74eb6470482389c834d1934c252f79e79ebff";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sl/thunderbird-68.12.0.tar.bz2";
+ locale = "sl";
+ arch = "linux-i686";
+ sha256 = "cd0376137d8018875873332fdfae3bc3c0d6b2a2b881dfa970d7d7999e8b312b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sq/thunderbird-68.12.0.tar.bz2";
+ locale = "sq";
+ arch = "linux-i686";
+ sha256 = "6fbf47759ca8c4d7cf30ca3af8a3fd35a01b7738422d29448cfd9eed81eba49b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sr/thunderbird-68.12.0.tar.bz2";
+ locale = "sr";
+ arch = "linux-i686";
+ sha256 = "636708320247c7c45622fd9179d5689da97472a9308f11810623129cf5a0e8d7";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sv-SE/thunderbird-68.12.0.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-i686";
+ sha256 = "9550c173b047e3ff774f4c3faf2c1f125b3abc34e6feb5801c108fda94e54e4e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/tr/thunderbird-68.12.0.tar.bz2";
+ locale = "tr";
+ arch = "linux-i686";
+ sha256 = "ffe82a300c7fa7a0e826d11613f5187c003b009efa29f4755f17af0f88d9e73b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/uk/thunderbird-68.12.0.tar.bz2";
+ locale = "uk";
+ arch = "linux-i686";
+ sha256 = "b018769149c0a4ff323b90b5d51465733629e7c527b39381ba9696cb077ad767";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/uz/thunderbird-68.12.0.tar.bz2";
+ locale = "uz";
+ arch = "linux-i686";
+ sha256 = "b0b59ac4d08c9f385f4ed7980065ce99ef24874734390a83af6e8fbd18173d99";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/vi/thunderbird-68.12.0.tar.bz2";
+ locale = "vi";
+ arch = "linux-i686";
+ sha256 = "901b40a99d84e7c7360fd5be6a14aa04ef6cc04fe1275cac26824b310bbd26e0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/zh-CN/thunderbird-68.12.0.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-i686";
+ sha256 = "509478710f7c4fb404eec9fed0b6d22f4c5d76fee09ed833dffcefdacc53d55c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/zh-TW/thunderbird-68.12.0.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-i686";
+ sha256 = "a12dd777cc3eaf629cc7a6f4b8d4744cf63c3e778e559d9b3ce332414e509515";
+ }
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
new file mode 100644
index 000000000000..8cdd27653e23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -0,0 +1,181 @@
+{ stdenv, fetchurl, config, makeWrapper
+, alsaLib
+, at-spi2-atk
+, atk
+, cairo
+, cups
+, curl
+, dbus-glib
+, dbus
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, glibc
+, gtk2
+, gtk3
+, kerberos
+, libX11
+, libXScrnSaver
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrender
+, libXt
+, libxcb
+, libcanberra
+, gnome3
+, libGLU, libGL
+, nspr
+, nss
+, pango
+, writeScript
+, xidel
+, coreutils
+, gnused
+, gnugrep
+, gnupg
+, runtimeShell
+}:
+
+# imports `version` and `sources`
+with (import ./release_sources.nix);
+
+let
+ arch = if stdenv.hostPlatform.system == "i686-linux"
+ then "linux-i686"
+ else "linux-x86_64";
+
+ isPrefixOf = prefix: string:
+ builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+ sourceMatches = locale: source:
+ (isPrefixOf source.locale locale) && source.arch == arch;
+
+ systemLocale = config.i18n.defaultLocale or "en-US";
+
+ defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+ source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+ name = "thunderbird-bin-${version}";
+in
+
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
+ inherit (source) sha256;
+ };
+
+ phases = "unpackPhase installPhase";
+
+ libPath = stdenv.lib.makeLibraryPath
+ [ stdenv.cc.cc
+ alsaLib
+ at-spi2-atk
+ atk
+ cairo
+ cups
+ curl
+ dbus-glib
+ dbus
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ glibc
+ gtk2
+ gtk3
+ kerberos
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXinerama
+ libXrender
+ libXt
+ libxcb
+ libcanberra
+ libGLU libGL
+ nspr
+ nss
+ pango
+ ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
+ stdenv.cc.cc
+ ];
+
+ buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase =
+ ''
+ mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
+ cp -r * "$prefix/usr/lib/thunderbird-bin-${version}"
+
+ mkdir -p "$out/bin"
+ ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
+
+ for executable in \
+ thunderbird crashreporter thunderbird-bin plugin-container updater
+ do
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ "$out/usr/lib/thunderbird-bin-${version}/$executable"
+ done
+
+ find . -executable -type f -exec \
+ patchelf --set-rpath "$libPath" \
+ "$out/usr/lib/thunderbird-bin-${version}/{}" \;
+
+ # Create a desktop item.
+ mkdir -p $out/share/applications
+ cat > $out/share/applications/thunderbird.desktop <<EOF
+ [Desktop Entry]
+ Type=Application
+ Exec=$out/bin/thunderbird
+ Icon=$out/usr/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
+ Name=Thunderbird
+ GenericName=Mail Reader
+ Categories=Application;Network;
+ EOF
+
+ # SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980
+ # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE:
+ # commit 87e261843c4236c541ee0113988286f77d2fa1ee
+ wrapProgram "$out/bin/thunderbird" \
+ --argv0 "$out/bin/.thunderbird-wrapped" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
+ --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
+ --set SNAP_NAME "thunderbird" \
+ --set MOZ_LEGACY_PROFILES 1 \
+ --set MOZ_ALLOW_DOWNGRADE 1
+ '';
+
+ passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
+ inherit name writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
+ baseName = "thunderbird";
+ channel = "release";
+ basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
+ baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
+ };
+ meta = with stdenv.lib; {
+ description = "Mozilla Thunderbird, a full-featured email client (binary package)";
+ homepage = "http://www.mozilla.org/thunderbird/";
+ license = {
+ free = false;
+ url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
+ };
+ maintainers = with stdenv.lib.maintainers; [ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
new file mode 100644
index 000000000000..4a1472fde717
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -0,0 +1,665 @@
+{
+ version = "78.5.1";
+ sources = [
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/af/thunderbird-78.5.1.tar.bz2";
+ locale = "af";
+ arch = "linux-x86_64";
+ sha256 = "87cb38398aaa5af68e562a5fc6d20d3d3477d871979bd4a635c94c440e66a482";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ar/thunderbird-78.5.1.tar.bz2";
+ locale = "ar";
+ arch = "linux-x86_64";
+ sha256 = "935efae7caa116e16c341d64634954d77cafbc5e28626b46f5385b8416060f51";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ast/thunderbird-78.5.1.tar.bz2";
+ locale = "ast";
+ arch = "linux-x86_64";
+ sha256 = "a5868dc7987529790910e638b64b15295a2d57e449fa515f4e17a4ab88a830e6";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/be/thunderbird-78.5.1.tar.bz2";
+ locale = "be";
+ arch = "linux-x86_64";
+ sha256 = "af52b29567ce26159890f70fcdccd4cafd49c7fc75c620bb606727fd27b7049a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/bg/thunderbird-78.5.1.tar.bz2";
+ locale = "bg";
+ arch = "linux-x86_64";
+ sha256 = "91856a4745a8bdefac7c2b0193766a4f0009378dfe941dbbe1afcae2ffae2337";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/br/thunderbird-78.5.1.tar.bz2";
+ locale = "br";
+ arch = "linux-x86_64";
+ sha256 = "d5ba5fe368c99377a264d8574607335fc4317dad447bb38fdc6a5b53d2e95b49";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ca/thunderbird-78.5.1.tar.bz2";
+ locale = "ca";
+ arch = "linux-x86_64";
+ sha256 = "396a1d7b668c7f47b56d7cb41e6e914f03e9e517a14b4698abedb501037ef2c1";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/cak/thunderbird-78.5.1.tar.bz2";
+ locale = "cak";
+ arch = "linux-x86_64";
+ sha256 = "914b76ad8268db608be0595039a68189146ded384c23407ccbcd78a5e74e19ae";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/cs/thunderbird-78.5.1.tar.bz2";
+ locale = "cs";
+ arch = "linux-x86_64";
+ sha256 = "4b62702cabecfbb2567b19446f405936c9d948dad6f65a2e3f21809d4f2b1176";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/cy/thunderbird-78.5.1.tar.bz2";
+ locale = "cy";
+ arch = "linux-x86_64";
+ sha256 = "736d245bd7766ac8c611a6801b3769a84baf4abae94818e0cfcadde8521850ad";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/da/thunderbird-78.5.1.tar.bz2";
+ locale = "da";
+ arch = "linux-x86_64";
+ sha256 = "53143b51b84ee74ee9131d3b3b80e2cf873e5a8c22478c87db34a9d2ac34607a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/de/thunderbird-78.5.1.tar.bz2";
+ locale = "de";
+ arch = "linux-x86_64";
+ sha256 = "2f3a4d8bf96e9653dd3883ac4399c650e87831d7df137358401966683d382e6c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/dsb/thunderbird-78.5.1.tar.bz2";
+ locale = "dsb";
+ arch = "linux-x86_64";
+ sha256 = "81a3674dd2495da673a2fe3e3d200d7cadf83f9c67ff92bf2d607f6546bc2f38";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/el/thunderbird-78.5.1.tar.bz2";
+ locale = "el";
+ arch = "linux-x86_64";
+ sha256 = "651e8f535b2518bc4e56706cfb76da6d0e35d4fec031f8426cbefb404e4790d7";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/en-CA/thunderbird-78.5.1.tar.bz2";
+ locale = "en-CA";
+ arch = "linux-x86_64";
+ sha256 = "775983115d98e3581db993f6202fdad1de6b23d38e5bb7edfd965ad6bc0ae425";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/en-GB/thunderbird-78.5.1.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-x86_64";
+ sha256 = "d0a3569c76b85fdca01e5098cf279b08a63d2d9023e92cadf3f8dc136d76c619";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/en-US/thunderbird-78.5.1.tar.bz2";
+ locale = "en-US";
+ arch = "linux-x86_64";
+ sha256 = "4363d8fd759ac4f4783eeb76726c8cf22e5afb3c171f26fe5cca5ab194ab6959";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/es-AR/thunderbird-78.5.1.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-x86_64";
+ sha256 = "3a04a2e42935c97c7ef003e4a690c0433783b57ce56700f07ad8b590e48b4ad0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/es-ES/thunderbird-78.5.1.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-x86_64";
+ sha256 = "f70a3feb09b79153d18e2a382017abbd6e015c78d4d55ff66f8b199b450172c4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/et/thunderbird-78.5.1.tar.bz2";
+ locale = "et";
+ arch = "linux-x86_64";
+ sha256 = "c739f5306a2526baf74e57a029371390d02f8c119681b0f154481ae32c67c18c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/eu/thunderbird-78.5.1.tar.bz2";
+ locale = "eu";
+ arch = "linux-x86_64";
+ sha256 = "9f95f4f1ec40e2732e053e68b31529b827f95876ad890d752f5380158f53b9e6";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/fa/thunderbird-78.5.1.tar.bz2";
+ locale = "fa";
+ arch = "linux-x86_64";
+ sha256 = "e53dd458656ee9f39e996042016256949c974161c51b1bee63a401d90d59bace";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/fi/thunderbird-78.5.1.tar.bz2";
+ locale = "fi";
+ arch = "linux-x86_64";
+ sha256 = "b0a96b08e986e49ee6526ab098fb0d44700b3a2aa7f96205b318fdd4b938ef51";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/fr/thunderbird-78.5.1.tar.bz2";
+ locale = "fr";
+ arch = "linux-x86_64";
+ sha256 = "872da741245da7466de58d766a0362983d59a111a65a333881d3636defe00eb4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/fy-NL/thunderbird-78.5.1.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-x86_64";
+ sha256 = "d57862f51ec01e63ab77916ab352276b7f4992b089508dee0c9c5d389ab88d95";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ga-IE/thunderbird-78.5.1.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-x86_64";
+ sha256 = "bda41b8eff5a5004f753944c49f15ddbd1f76c19b0310481251e04ff64309597";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/gd/thunderbird-78.5.1.tar.bz2";
+ locale = "gd";
+ arch = "linux-x86_64";
+ sha256 = "0671af342859574cb96dbe119d76d7ffa92a8c3fef11eee2a03f662ea71fb84a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/gl/thunderbird-78.5.1.tar.bz2";
+ locale = "gl";
+ arch = "linux-x86_64";
+ sha256 = "b458d6f79914fc4c551b3fa4444dc5ad4fa8d3310907a33a3480bf363bcdbfdb";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/he/thunderbird-78.5.1.tar.bz2";
+ locale = "he";
+ arch = "linux-x86_64";
+ sha256 = "146f2a8417827d2d6352f7cc20486ecca8fd1e0ad384d4eb2d8b2635edf2075f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/hr/thunderbird-78.5.1.tar.bz2";
+ locale = "hr";
+ arch = "linux-x86_64";
+ sha256 = "5c510bd3a8f8015e5c8a7c0cff401e3557b0cdca83bff77d2384c8f75f287152";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/hsb/thunderbird-78.5.1.tar.bz2";
+ locale = "hsb";
+ arch = "linux-x86_64";
+ sha256 = "605ae5746f0df98c7a561550da9cc938d0e06a222f422910ab118fa89d09e793";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/hu/thunderbird-78.5.1.tar.bz2";
+ locale = "hu";
+ arch = "linux-x86_64";
+ sha256 = "7d42f5e242e04d06bb9abd9bde8fe21571fa13f91b027369a048447d4de8526c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/hy-AM/thunderbird-78.5.1.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-x86_64";
+ sha256 = "74b0b31089be36c0538eb24c98e57123f24599b4122aac5b08c4eb914f6a8f7d";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/id/thunderbird-78.5.1.tar.bz2";
+ locale = "id";
+ arch = "linux-x86_64";
+ sha256 = "291ad6b1fcdc537e723ee76cf0a40a3084bdf1ebec68fc3c8c54714618f5d790";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/is/thunderbird-78.5.1.tar.bz2";
+ locale = "is";
+ arch = "linux-x86_64";
+ sha256 = "188e2cab8e00421b8a5f9c9a174e8a529ab404a0f4f3976797e41848eb0abc4d";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/it/thunderbird-78.5.1.tar.bz2";
+ locale = "it";
+ arch = "linux-x86_64";
+ sha256 = "12daeb5314ae81a82ce95c35dc9e34d676fe8b666a84a38aea36367b52aa2c95";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ja/thunderbird-78.5.1.tar.bz2";
+ locale = "ja";
+ arch = "linux-x86_64";
+ sha256 = "cdd41967d60abff6053f1736375cbbdb521bbdf5aa25110ca8e08bb365c853ca";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ka/thunderbird-78.5.1.tar.bz2";
+ locale = "ka";
+ arch = "linux-x86_64";
+ sha256 = "9548232d8df327e6282b5413d904d5742aadfa75574b1333a235df2097337032";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/kab/thunderbird-78.5.1.tar.bz2";
+ locale = "kab";
+ arch = "linux-x86_64";
+ sha256 = "ca35aa36ed5794661372e76f24dd6c98d11d35da76aff5396215ebe9331aa881";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/kk/thunderbird-78.5.1.tar.bz2";
+ locale = "kk";
+ arch = "linux-x86_64";
+ sha256 = "dd90fff1a4ee8380e03e59ef324298d1591833a021d14a11fdb2829cd3a934f3";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ko/thunderbird-78.5.1.tar.bz2";
+ locale = "ko";
+ arch = "linux-x86_64";
+ sha256 = "4dae3766bf420a0cfb5473fa95356f0061b657a7ebfdc808b69a8e639564893b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/lt/thunderbird-78.5.1.tar.bz2";
+ locale = "lt";
+ arch = "linux-x86_64";
+ sha256 = "de4b448d9651692bc4eb38447d94c94e37d93dae816edb5f3936d56a58aa41af";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ms/thunderbird-78.5.1.tar.bz2";
+ locale = "ms";
+ arch = "linux-x86_64";
+ sha256 = "08593e72643de8f79b6d90a0c41d6031f915097d3f28f1e7e901c21caa0ab037";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/nb-NO/thunderbird-78.5.1.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-x86_64";
+ sha256 = "21caa07be03725788c41fa527e7656a0467194e8a498de87f2455b571c4e14b2";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/nl/thunderbird-78.5.1.tar.bz2";
+ locale = "nl";
+ arch = "linux-x86_64";
+ sha256 = "7c1c00a8e03d0a8e4fa9cdc3b4acce51215e9f273660e48ad76347e6003a1985";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/nn-NO/thunderbird-78.5.1.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-x86_64";
+ sha256 = "103bc1307f47c20102e14362fcd6da696eb122fe77f680e70cd0849c9c03c47a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/pa-IN/thunderbird-78.5.1.tar.bz2";
+ locale = "pa-IN";
+ arch = "linux-x86_64";
+ sha256 = "388d01d0881573164816d7ddf6a08c17ad966616f1c8e8e429f821d2bb179a62";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/pl/thunderbird-78.5.1.tar.bz2";
+ locale = "pl";
+ arch = "linux-x86_64";
+ sha256 = "160651e72037bb89ac62534714ce9ecbebdec0cf1f8a6127396c68ab531745f9";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/pt-BR/thunderbird-78.5.1.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-x86_64";
+ sha256 = "6d2064a6ed4bb684384f7e79b61cfceb66a9a26900e9947b3666c36d6b8793cd";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/pt-PT/thunderbird-78.5.1.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-x86_64";
+ sha256 = "2ccc7a3d9d845f1a3e2ad3869cbd4cefa10e44992c27444a599f6f1429070f32";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/rm/thunderbird-78.5.1.tar.bz2";
+ locale = "rm";
+ arch = "linux-x86_64";
+ sha256 = "05e45497c19d46292617de4f247f014f7b14a684f74bfd314caf408416dc5b19";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ro/thunderbird-78.5.1.tar.bz2";
+ locale = "ro";
+ arch = "linux-x86_64";
+ sha256 = "bf01cf8c987e46f03236dbaab14aa551464019f471aa111299b6c7538e995f80";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ru/thunderbird-78.5.1.tar.bz2";
+ locale = "ru";
+ arch = "linux-x86_64";
+ sha256 = "a3cbdfa26ff487d0efdabfa9dc324b75ec1446964f1c0192afcd67565dfc4a51";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/si/thunderbird-78.5.1.tar.bz2";
+ locale = "si";
+ arch = "linux-x86_64";
+ sha256 = "fb26eef7b0c5b233e41f8d4ad79f11aa7d0db21b155bf0d9284881cabb51f6e4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sk/thunderbird-78.5.1.tar.bz2";
+ locale = "sk";
+ arch = "linux-x86_64";
+ sha256 = "d462f2606bfd7f6e0e45334a68d266889f0f9f927f08d5b92c39329711a8c4cf";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sl/thunderbird-78.5.1.tar.bz2";
+ locale = "sl";
+ arch = "linux-x86_64";
+ sha256 = "b6011aefaf1eb60c8849b4ecc7a7a6fa0a72def8ba690f5b7ca61de3e089c9a4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sq/thunderbird-78.5.1.tar.bz2";
+ locale = "sq";
+ arch = "linux-x86_64";
+ sha256 = "aeed36c0d6129dc58d496f8f6177a88950a4c4cfe2e4ac157fb389ea79488b11";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sr/thunderbird-78.5.1.tar.bz2";
+ locale = "sr";
+ arch = "linux-x86_64";
+ sha256 = "f55cb398b3e6420acf6791d9ab5592b9915d299c5111ea917934b5729d22dd7f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sv-SE/thunderbird-78.5.1.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-x86_64";
+ sha256 = "036b4f2b3d6cd24bcdcdbc1da1f44df2fba012f22ab96d0840a8c7ae0b945055";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/th/thunderbird-78.5.1.tar.bz2";
+ locale = "th";
+ arch = "linux-x86_64";
+ sha256 = "316ae39fb02b9ad1b28bbe7a21342e5e85dd7593978b4935b7be20253fe6b761";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/tr/thunderbird-78.5.1.tar.bz2";
+ locale = "tr";
+ arch = "linux-x86_64";
+ sha256 = "73811e185274d880abdb15503a928a537428460080245426a07cf1c01e38f1c6";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/uk/thunderbird-78.5.1.tar.bz2";
+ locale = "uk";
+ arch = "linux-x86_64";
+ sha256 = "8ff9e333cf16a02e7888f297851b5a9316c5b57cf546f592f12d2aab6e3bed48";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/uz/thunderbird-78.5.1.tar.bz2";
+ locale = "uz";
+ arch = "linux-x86_64";
+ sha256 = "899c0c8c886fbaa6a6609a500bb374797bd36272138a6fcdc6aca7c7b6a6fe66";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/vi/thunderbird-78.5.1.tar.bz2";
+ locale = "vi";
+ arch = "linux-x86_64";
+ sha256 = "13afdad34f64a1c96f9612c10c8af880e9718ae10d8a1578bc397b238a936dbd";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/zh-CN/thunderbird-78.5.1.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-x86_64";
+ sha256 = "00a1d01acabd210ba70ed6d0842ab5e1674109c7f39f561e8295d1ffd5f80a0d";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/zh-TW/thunderbird-78.5.1.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-x86_64";
+ sha256 = "19b84b15a6bbf593a342c874822764bd73022d2c846fe20a6d7d91aceeb1ee15";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/af/thunderbird-78.5.1.tar.bz2";
+ locale = "af";
+ arch = "linux-i686";
+ sha256 = "4c1487a6b823a76d477085e66b377f536f2cfd95b4ddc6804b97c792af77c554";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ar/thunderbird-78.5.1.tar.bz2";
+ locale = "ar";
+ arch = "linux-i686";
+ sha256 = "d33576a1d8c346195a20c8a222281d682d14f604654ff173eb28ca8a9343574b";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ast/thunderbird-78.5.1.tar.bz2";
+ locale = "ast";
+ arch = "linux-i686";
+ sha256 = "09d68977bc121e562f3c697bd1d87b21250c8a0bcac013940e3806d4a69a749d";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/be/thunderbird-78.5.1.tar.bz2";
+ locale = "be";
+ arch = "linux-i686";
+ sha256 = "bb58501c902788b2d1f8f308468aa57447a15979cab59dc89c27e3738748b6d9";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/bg/thunderbird-78.5.1.tar.bz2";
+ locale = "bg";
+ arch = "linux-i686";
+ sha256 = "373bd3548f518a4ae56e8a103b64eb76c3139b984a5af8013de56b133a0d44c0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/br/thunderbird-78.5.1.tar.bz2";
+ locale = "br";
+ arch = "linux-i686";
+ sha256 = "40934c8ec7070ad29cb0111624de431a0cdeeff9c7c01d8781444e33f65acbca";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ca/thunderbird-78.5.1.tar.bz2";
+ locale = "ca";
+ arch = "linux-i686";
+ sha256 = "fbce4213fe7564f2af3f980f5844961cac9a7ec2a30b23d7cdd4e5db6aa4ebaa";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/cak/thunderbird-78.5.1.tar.bz2";
+ locale = "cak";
+ arch = "linux-i686";
+ sha256 = "2aaf7ea23606be03f5f7168aaa4286760f236d084babd1f81540f8b62b37962c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/cs/thunderbird-78.5.1.tar.bz2";
+ locale = "cs";
+ arch = "linux-i686";
+ sha256 = "880e36431f76161674fdb9f2902c9d5487bed528a198722458b7e6e76e80e9b5";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/cy/thunderbird-78.5.1.tar.bz2";
+ locale = "cy";
+ arch = "linux-i686";
+ sha256 = "eddb4dcac8063e5b245eb1c095c4ff98cb03714bf5b07f0366b89d670a9d95dd";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/da/thunderbird-78.5.1.tar.bz2";
+ locale = "da";
+ arch = "linux-i686";
+ sha256 = "2425487caaab7979f504d37cf6b100c7cb030e8e5495b6723fa4f953348e4f40";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/de/thunderbird-78.5.1.tar.bz2";
+ locale = "de";
+ arch = "linux-i686";
+ sha256 = "81df3e5ba46fe5959f785c06bef0b70daa55e8f8721cfff0bf55a76f7343b32f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/dsb/thunderbird-78.5.1.tar.bz2";
+ locale = "dsb";
+ arch = "linux-i686";
+ sha256 = "995d3aaf3df22aa3166f161b98113fc25b813dc7cee2743b2bdd6913b4a620c4";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/el/thunderbird-78.5.1.tar.bz2";
+ locale = "el";
+ arch = "linux-i686";
+ sha256 = "ad5162a76dba9c37e2542fa7ed08c63edce9955600e9b50889abb03e352ddf23";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/en-CA/thunderbird-78.5.1.tar.bz2";
+ locale = "en-CA";
+ arch = "linux-i686";
+ sha256 = "c605520e5e65449855c355147f18b813f66d38dce52e8d3a23b90afbec5bcbf1";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/en-GB/thunderbird-78.5.1.tar.bz2";
+ locale = "en-GB";
+ arch = "linux-i686";
+ sha256 = "63b0d984ee8296c5185ed1aab279a0ef065986d989edbd0a7683b9db6a6d94bb";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/en-US/thunderbird-78.5.1.tar.bz2";
+ locale = "en-US";
+ arch = "linux-i686";
+ sha256 = "b5404037f2678d36acbb225f43d426a86db9a4828a69b1beaf44dc3b5264ae7e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/es-AR/thunderbird-78.5.1.tar.bz2";
+ locale = "es-AR";
+ arch = "linux-i686";
+ sha256 = "cefe0ff79bacc9c16fe649c0d7b4f932afca6ebb10c8426fac527485e92f4422";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/es-ES/thunderbird-78.5.1.tar.bz2";
+ locale = "es-ES";
+ arch = "linux-i686";
+ sha256 = "de7c6685c4e73ee334faf83c809b2f45d55c971282ba99aecfd5d1c8b05577da";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/et/thunderbird-78.5.1.tar.bz2";
+ locale = "et";
+ arch = "linux-i686";
+ sha256 = "e5174b12c61221436a5926224f61f218bfe762086f1d5bb814af5f7708592392";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/eu/thunderbird-78.5.1.tar.bz2";
+ locale = "eu";
+ arch = "linux-i686";
+ sha256 = "66bfbb4edc775117a6f048f52084fff9828633166ac6234a7c1dc0d67311677f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/fa/thunderbird-78.5.1.tar.bz2";
+ locale = "fa";
+ arch = "linux-i686";
+ sha256 = "072163a9d1a94b1f5c297c794791b4bd3e7f7e6897e7f7615df59a9dd2232a52";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/fi/thunderbird-78.5.1.tar.bz2";
+ locale = "fi";
+ arch = "linux-i686";
+ sha256 = "9c269f267251bee9828acfd78d04bf149767dfe5247ae4f53ec5b0bd65c410ba";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/fr/thunderbird-78.5.1.tar.bz2";
+ locale = "fr";
+ arch = "linux-i686";
+ sha256 = "6ccfac2b5d96491c4d5dc7b00e4458617ca68fe07917941559534a31424c977c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/fy-NL/thunderbird-78.5.1.tar.bz2";
+ locale = "fy-NL";
+ arch = "linux-i686";
+ sha256 = "1b470c45c9d52a8a84c59dbb4ed0e6966d124ffdc3ea865e4d02289bd39b346f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ga-IE/thunderbird-78.5.1.tar.bz2";
+ locale = "ga-IE";
+ arch = "linux-i686";
+ sha256 = "a1cbb9a4c1bf91f920da9e4e0e39e6ecff0a8c87413898c1930ce69dadad9a26";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/gd/thunderbird-78.5.1.tar.bz2";
+ locale = "gd";
+ arch = "linux-i686";
+ sha256 = "909be2cc362ed839f373eb22d27c5f3c569b1c82fc2ba5aaf270d605029d336c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/gl/thunderbird-78.5.1.tar.bz2";
+ locale = "gl";
+ arch = "linux-i686";
+ sha256 = "8ffadcffd16aca8befd4b9c230b7da750e6a694add7ee465227a0c3f31a5c655";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/he/thunderbird-78.5.1.tar.bz2";
+ locale = "he";
+ arch = "linux-i686";
+ sha256 = "a9242889345131a405d138d0ec8e470eb49c59ada18b1e8f78004f307ceb41b1";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/hr/thunderbird-78.5.1.tar.bz2";
+ locale = "hr";
+ arch = "linux-i686";
+ sha256 = "eb1f5496811677e28b2ed034da40ebf1fef324673e0f3acb2c21f0db5c71f592";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/hsb/thunderbird-78.5.1.tar.bz2";
+ locale = "hsb";
+ arch = "linux-i686";
+ sha256 = "643a2b11a0775a71a8fa6c25097cfe297e6bc190fb29eee18ddd3d16fb61d989";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/hu/thunderbird-78.5.1.tar.bz2";
+ locale = "hu";
+ arch = "linux-i686";
+ sha256 = "61d91bed542a7e014a8d11e46e1b3d97e8bef1303bba397b3d4da0585b1e68af";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/hy-AM/thunderbird-78.5.1.tar.bz2";
+ locale = "hy-AM";
+ arch = "linux-i686";
+ sha256 = "2e6739d14a45529ed2a68abb8ed03ad901b4e7770efebd382f6e9626c86da036";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/id/thunderbird-78.5.1.tar.bz2";
+ locale = "id";
+ arch = "linux-i686";
+ sha256 = "8753bc4c7292cd0c6ee382bb5572e432222e7c39ed739904d91ed1ece5a8197e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/is/thunderbird-78.5.1.tar.bz2";
+ locale = "is";
+ arch = "linux-i686";
+ sha256 = "4f624262b72fce7d258b6f7c264f7d2266ebcfdd59fce895e4e85c72fa784637";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/it/thunderbird-78.5.1.tar.bz2";
+ locale = "it";
+ arch = "linux-i686";
+ sha256 = "6298ce45c4a659e47877302d61a50dfc7e0634e7c3e7036aeec49da5a2839073";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ja/thunderbird-78.5.1.tar.bz2";
+ locale = "ja";
+ arch = "linux-i686";
+ sha256 = "85a7b01f65c79b0e13c4f8a18f3950f0a250f380fc8756b8fb1709680a148554";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ka/thunderbird-78.5.1.tar.bz2";
+ locale = "ka";
+ arch = "linux-i686";
+ sha256 = "f7b18243b9985b54eb8684b62bad47b7b021eb959f467fec9876c866d92b1727";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/kab/thunderbird-78.5.1.tar.bz2";
+ locale = "kab";
+ arch = "linux-i686";
+ sha256 = "cc8eb77d0d0ea95a1e2b13db51da4f18a9500aeacee1cbe505da67f2b6a9b979";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/kk/thunderbird-78.5.1.tar.bz2";
+ locale = "kk";
+ arch = "linux-i686";
+ sha256 = "6999faf34774806e1e4257a139dd97dd50a889a7729fef4f51a8b41bb4ad169e";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ko/thunderbird-78.5.1.tar.bz2";
+ locale = "ko";
+ arch = "linux-i686";
+ sha256 = "42b0bf1ebfce252fdfca3ed8de9f227bbb054bf591e6155b716b18e9613a9cff";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/lt/thunderbird-78.5.1.tar.bz2";
+ locale = "lt";
+ arch = "linux-i686";
+ sha256 = "6ffe9b52189579bee34604499649901be5c8be2a026eb70a33ac9eb4e3b21880";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ms/thunderbird-78.5.1.tar.bz2";
+ locale = "ms";
+ arch = "linux-i686";
+ sha256 = "640942eb04d84d24bd28cf5e49e57497934810394b50693bad591cf3b783e1bf";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/nb-NO/thunderbird-78.5.1.tar.bz2";
+ locale = "nb-NO";
+ arch = "linux-i686";
+ sha256 = "c0d35274192ae664314e91fd9364609cbbf142f8177d37210c9c49fdf8d31086";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/nl/thunderbird-78.5.1.tar.bz2";
+ locale = "nl";
+ arch = "linux-i686";
+ sha256 = "864ac834a0f44ce112deb107abce170802abaa63556f0aad88ee828bf3f8a98c";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/nn-NO/thunderbird-78.5.1.tar.bz2";
+ locale = "nn-NO";
+ arch = "linux-i686";
+ sha256 = "e821eaf0388885e3b5e88001a2c4410cdf065059b79a3581c324f53d1cf59eb5";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/pa-IN/thunderbird-78.5.1.tar.bz2";
+ locale = "pa-IN";
+ arch = "linux-i686";
+ sha256 = "5a0afbf815683afd24c258ac66a45dc300028b4d41a9950784355645874459ed";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/pl/thunderbird-78.5.1.tar.bz2";
+ locale = "pl";
+ arch = "linux-i686";
+ sha256 = "cebdc0a0188edc63fce0b4fe0a4a3f22ab792ad486bd1e10e635ac8f641f1b5d";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/pt-BR/thunderbird-78.5.1.tar.bz2";
+ locale = "pt-BR";
+ arch = "linux-i686";
+ sha256 = "7bbf9aa4d48bf84a7455dcebc6b7476e4c1ffa085c1771fbdf302f71d10e4825";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/pt-PT/thunderbird-78.5.1.tar.bz2";
+ locale = "pt-PT";
+ arch = "linux-i686";
+ sha256 = "b84c28dfb5d677768a6e0f69c8ea63fcaf884839739789ac72f50e7b8884f8ca";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/rm/thunderbird-78.5.1.tar.bz2";
+ locale = "rm";
+ arch = "linux-i686";
+ sha256 = "f34eea430a9e929c25ad961b1c92724c5539a46cbbfb9a97a5c7edca4996115a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ro/thunderbird-78.5.1.tar.bz2";
+ locale = "ro";
+ arch = "linux-i686";
+ sha256 = "115cd666282822f35924d4de3b33fd0dd3d790d278bb35849ada579d43d5ac54";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ru/thunderbird-78.5.1.tar.bz2";
+ locale = "ru";
+ arch = "linux-i686";
+ sha256 = "961eb62e639f8f7c7c5695bd39df50fe4b3401e7aeade8281600779bb8edd374";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/si/thunderbird-78.5.1.tar.bz2";
+ locale = "si";
+ arch = "linux-i686";
+ sha256 = "0887999609e47839a0f7600215c3083ce939fe13abc0c38cf701449224dbc87a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sk/thunderbird-78.5.1.tar.bz2";
+ locale = "sk";
+ arch = "linux-i686";
+ sha256 = "a3b9281efc4c0cd6cb454f2c5b97567b4d2c6567076cee188e85c30a45213f98";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sl/thunderbird-78.5.1.tar.bz2";
+ locale = "sl";
+ arch = "linux-i686";
+ sha256 = "141e9a41dba4c2a3eee4370d2db6e14f8805fee2d70c20ecbb9865b7a0dcaa77";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sq/thunderbird-78.5.1.tar.bz2";
+ locale = "sq";
+ arch = "linux-i686";
+ sha256 = "6a50fdac7993294937756a169b4b0ac7fe021611c5c6a730ea194ee7302c95dc";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sr/thunderbird-78.5.1.tar.bz2";
+ locale = "sr";
+ arch = "linux-i686";
+ sha256 = "2ec4c2f367bceb3f05c75e55366cc66fae6593fc35c79d7bea57f34f93d79dba";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sv-SE/thunderbird-78.5.1.tar.bz2";
+ locale = "sv-SE";
+ arch = "linux-i686";
+ sha256 = "4a9027f9aa74bd9c6e3cbf02ac1918f1b9dfbda57ed0344a99fccad9fa271f79";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/th/thunderbird-78.5.1.tar.bz2";
+ locale = "th";
+ arch = "linux-i686";
+ sha256 = "f394b18a364fa84ff5eeeee00c841248ba4095285833ce625b700fd500b9c0cc";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/tr/thunderbird-78.5.1.tar.bz2";
+ locale = "tr";
+ arch = "linux-i686";
+ sha256 = "9f180c1b6b604fc597bf1ecb10e3521c70953cb70d4292105cb3bc7cbeb806c0";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/uk/thunderbird-78.5.1.tar.bz2";
+ locale = "uk";
+ arch = "linux-i686";
+ sha256 = "f828ac8f52bda71f913462e60fb7ea2221de4f824063b95b85709320a820db8a";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/uz/thunderbird-78.5.1.tar.bz2";
+ locale = "uz";
+ arch = "linux-i686";
+ sha256 = "8d3dd4a1bbe008e4d346c22c01bafe988dde88fa6c9919c50194b9b155bc821f";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/vi/thunderbird-78.5.1.tar.bz2";
+ locale = "vi";
+ arch = "linux-i686";
+ sha256 = "4db40b3debca281c59e926bd0f9cb4e5cd2150bf27235f1178ed8e497616a031";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/zh-CN/thunderbird-78.5.1.tar.bz2";
+ locale = "zh-CN";
+ arch = "linux-i686";
+ sha256 = "399707f970a01e2f3c2eacc81f2f3bb33b1f49433c3ba6c49f4615b499f0c246";
+ }
+ { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/zh-TW/thunderbird-78.5.1.tar.bz2";
+ locale = "zh-TW";
+ arch = "linux-i686";
+ sha256 = "27ad21908069582a4a7641dc9a7d9acc69d4842382499cef2cee2f84d0fc3856";
+ }
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix
new file mode 100644
index 000000000000..60dc12054841
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix
@@ -0,0 +1,343 @@
+# This pakcage is keeped until Thunderbird 78 supports OpenPGP.
+# https://www.thunderbird.net/en-US/thunderbird/78.0.1/releasenotes/
+{ autoconf213
+, bzip2
+, cargo
+, common-updater-scripts
+, copyDesktopItems
+, coreutils
+, curl
+, dbus
+, dbus-glib
+, fetchurl
+, file
+, fontconfig
+, freetype
+, glib
+, gnugrep
+, gnused
+, icu
+, jemalloc
+, lib
+, libGL
+, libGLU
+, libevent
+, libjpeg
+, libnotify
+, libpng
+, libstartup_notification
+, libvpx
+, libwebp
+, llvmPackages
+, m4
+, makeDesktopItem
+, nasm
+, nodejs
+, nspr
+, nss
+, pango
+, perl
+, pkgconfig
+, python2
+, python3
+, runtimeShell
+, rust-cbindgen
+, rustc
+, sqlite
+, stdenv
+, systemd
+, unzip
+, which
+, writeScript
+, xidel
+, xorg
+, yasm
+, zip
+, zlib
+
+, debugBuild ? false
+
+, alsaSupport ? stdenv.isLinux, alsaLib
+, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
+, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
+, waylandSupport ? true
+, libxkbcommon, calendarSupport ? true
+
+# Use official trademarked branding. Permission obtained at:
+# https://github.com/NixOS/nixpkgs/pull/94880#issuecomment-675907971
+, enableOfficialBranding ? true
+}:
+
+assert waylandSupport -> gtk3Support == true;
+
+stdenv.mkDerivation rec {
+ pname = "thunderbird";
+ version = "68.12.0";
+
+ src = fetchurl {
+ url =
+ "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
+ sha512 =
+ "33350vjgzvsg6sdhdld92z75k1xcf1wmngdcvzsj4f3y3aal73pyw03mlvgg6y36bm0j8fhaxvgbbg5zm7hxhn779z78970m4v9amg7";
+ };
+
+ nativeBuildInputs = [
+ autoconf213
+ cargo
+ copyDesktopItems
+ gnused
+ llvmPackages.llvm
+ m4
+ nasm
+ nodejs
+ perl
+ pkgconfig
+ python2
+ python3
+ rust-cbindgen
+ rustc
+ which
+ yasm
+ ] ++ lib.optional gtk3Support wrapGAppsHook;
+
+ buildInputs = [
+ bzip2
+ dbus
+ dbus-glib
+ file
+ fontconfig
+ freetype
+ glib
+ gtk2
+ icu
+ jemalloc
+ libGL
+ libGLU
+ libevent
+ libjpeg
+ libnotify
+ libpng
+ libstartup_notification
+ libvpx
+ libwebp
+ nspr
+ nss
+ pango
+ perl
+ sqlite
+ unzip
+ xorg.libX11
+ xorg.libXScrnSaver
+ xorg.libXcursor
+ xorg.libXext
+ xorg.libXft
+ xorg.libXi
+ xorg.libXrender
+ xorg.libXt
+ xorg.pixman
+ xorg.xorgproto
+ zip
+ zlib
+ ] ++ lib.optional alsaSupport alsaLib
+ ++ lib.optional gtk3Support gtk3
+ ++ lib.optional pulseaudioSupport libpulseaudio
+ ++ lib.optional waylandSupport libxkbcommon;
+
+ NIX_CFLAGS_COMPILE =[
+ "-I${glib.dev}/include/gio-unix-2.0"
+ "-I${nss.dev}/include/nss"
+ ];
+
+ patches = [
+ ./no-buildconfig-68.patch
+ ];
+
+ postPatch = ''
+ rm -rf obj-x86_64-pc-linux-gnu
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ preConfigure = ''
+ # remove distributed configuration files
+ rm -f configure
+ rm -f js/src/configure
+ rm -f .mozconfig*
+
+ configureScript="$(realpath ./mach) configure"
+ # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
+ unset AS
+
+ export MOZCONFIG=$(pwd)/mozconfig
+
+ # Set C flags for Rust's bindgen program. Unlike ordinary C
+ # compilation, bindgen does not invoke $CC directly. Instead it
+ # uses LLVM's libclang. To make sure all necessary flags are
+ # included we need to look in a few places.
+ # TODO: generalize this process for other use-cases.
+
+ BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \
+ $(< ${stdenv.cc}/nix-support/cc-cflags) \
+ $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \
+ ${
+ lib.optionalString stdenv.cc.isClang
+ "-idirafter ${stdenv.cc.cc}/lib/clang/${
+ lib.getVersion stdenv.cc.cc
+ }/include"
+ } \
+ ${
+ lib.optionalString stdenv.cc.isGNU
+ "-isystem ${stdenv.cc.cc}/include/c++/${
+ lib.getVersion stdenv.cc.cc
+ } -isystem ${stdenv.cc.cc}/include/c++/${
+ lib.getVersion stdenv.cc.cc
+ }/${stdenv.hostPlatform.config}"
+ } \
+ $NIX_CFLAGS_COMPILE"
+
+ echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
+ '';
+
+ configureFlags = let
+ toolkitSlug = if gtk3Support then
+ "3${lib.optionalString waylandSupport "-wayland"}"
+ else
+ "2";
+ toolkitValue = "cairo-gtk${toolkitSlug}";
+ in [
+ "--enable-application=comm/mail"
+
+ "--with-system-bz2"
+ "--with-system-icu"
+ "--with-system-jpeg"
+ "--with-system-libevent"
+ "--with-system-nspr"
+ "--with-system-nss"
+ "--with-system-png" # needs APNG support
+ "--with-system-icu"
+ "--with-system-zlib"
+ "--with-system-webp"
+ "--with-system-libvpx"
+
+ "--enable-rust-simd"
+ "--enable-crashreporter"
+ "--enable-default-toolkit=${toolkitValue}"
+ "--enable-js-shell"
+ "--enable-necko-wifi"
+ "--enable-startup-notification"
+ "--enable-system-ffi"
+ "--enable-system-pixman"
+ "--enable-system-sqlite"
+
+ "--disable-gconf"
+ "--disable-tests"
+ "--disable-updater"
+ "--enable-jemalloc"
+ ] ++ (if debugBuild then [
+ "--enable-debug"
+ "--enable-profiling"
+ ] else [
+ "--disable-debug"
+ "--enable-release"
+ "--disable-debug-symbols"
+ "--enable-optimize"
+ "--enable-strip"
+ ]) ++ lib.optionals (!stdenv.hostPlatform.isi686) [
+ # on i686-linux: --with-libclang-path is not available in this configuration
+ "--with-libclang-path=${llvmPackages.libclang}/lib"
+ "--with-clang-path=${llvmPackages.clang}/bin/clang"
+ ] ++ lib.optional alsaSupport "--enable-alsa"
+ ++ lib.optional calendarSupport "--enable-calendar"
+ ++ lib.optional enableOfficialBranding "--enable-official-branding"
+ ++ lib.optional pulseaudioSupport "--enable-pulseaudio";
+
+ enableParallelBuilding = true;
+
+ postConfigure = ''
+ cd obj-*
+ '';
+
+ makeFlags = lib.optionals enableOfficialBranding [
+ "MOZILLA_OFFICIAL=1"
+ "BUILD_OFFICIAL=1"
+ ];
+
+ doCheck = false;
+
+ desktopItems = [
+ (makeDesktopItem {
+ categories = lib.concatStringsSep ";" [ "Application" "Network" ];
+ desktopName = "Thunderbird";
+ genericName = "Mail Reader";
+ name = "thunderbird";
+ exec = "thunderbird %U";
+ icon = "$out/lib/thunderbird/chrome/icons/default/default256.png";
+ mimeType = lib.concatStringsSep ";" [
+ # Email
+ "x-scheme-handler/mailto"
+ "message/rfc822"
+ # Feeds
+ "x-scheme-handler/feed"
+ "application/rss+xml"
+ "application/x-extension-rss"
+ # Newsgroups
+ "x-scheme-handler/news"
+ "x-scheme-handler/snews"
+ "x-scheme-handler/nntp"
+ ];
+ })
+ ];
+ postInstall = ''
+ # TODO: Move to a dev output?
+ rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl
+ '';
+
+ preFixup = ''
+ # Needed to find Mozilla runtime
+ gappsWrapperArgs+=(
+ --argv0 "$out/bin/thunderbird"
+ --set MOZ_APP_LAUNCHER thunderbird
+ # https://github.com/NixOS/nixpkgs/pull/61980
+ --set SNAP_NAME "thunderbird"
+ --set MOZ_LEGACY_PROFILES 1
+ --set MOZ_ALLOW_DOWNGRADE 1
+ )
+ '';
+
+ # FIXME: The XUL portion of this can probably be removed as soon as we
+ # package a Thunderbird >=71.0 since XUL shouldn't be anymore (in use)?
+ postFixup = ''
+ local xul="$out/lib/thunderbird/libxul.so"
+ patchelf --set-rpath "${libnotify}/lib:${lib.getLib systemd}/lib:$(patchelf --print-rpath $xul)" $xul
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ "$out/bin/thunderbird" --version
+ '';
+
+ disallowedRequisites = [
+ stdenv.cc
+ ];
+
+ passthru.updateScript = import ./../../browsers/firefox/update.nix {
+ attrPath = "thunderbird";
+ baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
+ inherit writeScript lib common-updater-scripts xidel coreutils gnused
+ gnugrep curl runtimeShell;
+ };
+
+ meta = with stdenv.lib; {
+ description = "A full-featured e-mail client";
+ homepage = "https://www.thunderbird.net";
+ maintainers = with maintainers; [
+ eelco
+ lovesegfault
+ pierron
+ vcunat
+ ];
+ platforms = platforms.linux;
+ license = licenses.mpl20;
+ knownVulnerabilities = [ "Support ended around Semptember 2020." ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
new file mode 100644
index 000000000000..58eae867487f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -0,0 +1,340 @@
+{ autoconf213
+, bzip2
+, cargo
+, common-updater-scripts
+, copyDesktopItems
+, coreutils
+, curl
+, dbus
+, dbus-glib
+, fetchpatch
+, fetchurl
+, file
+, fontconfig
+, freetype
+, glib
+, gnugrep
+, gnused
+, icu
+, jemalloc
+, lib
+, libGL
+, libGLU
+, libevent
+, libjpeg
+, libnotify
+, libpng
+, libstartup_notification
+, libvpx
+, libwebp
+, llvmPackages
+, m4
+, makeDesktopItem
+, nasm
+, nodejs
+, nspr
+, nss_3_53
+, pango
+, perl
+, pkgconfig
+, python2
+, python3
+, runtimeShell
+, rust-cbindgen
+, rustc
+, sqlite
+, stdenv
+, systemd
+, unzip
+, which
+, writeScript
+, xidel
+, xorg
+, yasm
+, zip
+, zlib
+
+, debugBuild ? false
+
+, alsaSupport ? stdenv.isLinux, alsaLib
+, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
+, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
+, waylandSupport ? true
+, libxkbcommon, calendarSupport ? true
+
+# Use official trademarked branding. Permission obtained at:
+# https://github.com/NixOS/nixpkgs/pull/94880#issuecomment-675907971
+, enableOfficialBranding ? true
+}:
+
+assert waylandSupport -> gtk3Support == true;
+
+stdenv.mkDerivation rec {
+ pname = "thunderbird";
+ version = "78.5.1";
+
+ src = fetchurl {
+ url =
+ "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
+ sha512 =
+ "202s2h9fsvg4chy93rgxdf4vlavf3wbp9vqgh0nrgk5wcdhz17144vhw1bmxia8hf99snq2a3ix6haidwl8d2n6l2nfsjzcnphhxd9z";
+ };
+
+ nativeBuildInputs = [
+ autoconf213
+ cargo
+ copyDesktopItems
+ gnused
+ llvmPackages.llvm
+ m4
+ nasm
+ nodejs
+ perl
+ pkgconfig
+ python2
+ python3
+ rust-cbindgen
+ rustc
+ which
+ yasm
+ ] ++ lib.optional gtk3Support wrapGAppsHook;
+
+ buildInputs = [
+ bzip2
+ dbus
+ dbus-glib
+ file
+ fontconfig
+ freetype
+ glib
+ gtk2
+ icu
+ jemalloc
+ libGL
+ libGLU
+ libevent
+ libjpeg
+ libnotify
+ libpng
+ libstartup_notification
+ libvpx
+ libwebp
+ nspr
+ nss_3_53
+ pango
+ perl
+ sqlite
+ unzip
+ xorg.libX11
+ xorg.libXScrnSaver
+ xorg.libXcursor
+ xorg.libXext
+ xorg.libXft
+ xorg.libXi
+ xorg.libXrender
+ xorg.libXt
+ xorg.pixman
+ xorg.xorgproto
+ zip
+ zlib
+ ] ++ lib.optional alsaSupport alsaLib
+ ++ lib.optional gtk3Support gtk3
+ ++ lib.optional pulseaudioSupport libpulseaudio
+ ++ lib.optional waylandSupport libxkbcommon;
+
+ NIX_CFLAGS_COMPILE =[
+ "-I${glib.dev}/include/gio-unix-2.0"
+ "-I${nss_3_53.dev}/include/nss"
+ ];
+
+ patches = [
+ ./no-buildconfig.patch
+ ];
+
+ postPatch = ''
+ rm -rf obj-x86_64-pc-linux-gnu
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ preConfigure = ''
+ # remove distributed configuration files
+ rm -f configure
+ rm -f js/src/configure
+ rm -f .mozconfig*
+
+ configureScript="$(realpath ./mach) configure"
+ # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
+ unset AS
+
+ export MOZCONFIG=$(pwd)/mozconfig
+
+ # Set C flags for Rust's bindgen program. Unlike ordinary C
+ # compilation, bindgen does not invoke $CC directly. Instead it
+ # uses LLVM's libclang. To make sure all necessary flags are
+ # included we need to look in a few places.
+ # TODO: generalize this process for other use-cases.
+
+ BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-crt1-cflags) \
+ $(< ${stdenv.cc}/nix-support/libc-cflags) \
+ $(< ${stdenv.cc}/nix-support/cc-cflags) \
+ $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \
+ ${
+ lib.optionalString stdenv.cc.isClang
+ "-idirafter ${stdenv.cc.cc}/lib/clang/${
+ lib.getVersion stdenv.cc.cc
+ }/include"
+ } \
+ ${
+ lib.optionalString stdenv.cc.isGNU
+ "-isystem ${stdenv.cc.cc}/include/c++/${
+ lib.getVersion stdenv.cc.cc
+ } -isystem ${stdenv.cc.cc}/include/c++/${
+ lib.getVersion stdenv.cc.cc
+ }/${stdenv.hostPlatform.config}"
+ } \
+ $NIX_CFLAGS_COMPILE"
+
+ echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
+ '';
+
+ configureFlags = let
+ toolkitSlug = if gtk3Support then
+ "3${lib.optionalString waylandSupport "-wayland"}"
+ else
+ "2";
+ toolkitValue = "cairo-gtk${toolkitSlug}";
+ in [
+ "--enable-application=comm/mail"
+
+ "--with-system-icu"
+ "--with-system-jpeg"
+ "--with-system-libevent"
+ "--with-system-nspr"
+ "--with-system-nss"
+ "--with-system-png" # needs APNG support
+ "--with-system-zlib"
+ "--with-system-webp"
+ "--with-system-libvpx"
+
+ "--enable-rust-simd"
+ "--enable-crashreporter"
+ "--enable-default-toolkit=${toolkitValue}"
+ "--enable-js-shell"
+ "--enable-necko-wifi"
+ "--enable-system-ffi"
+ "--enable-system-pixman"
+
+ "--disable-tests"
+ "--disable-updater"
+ "--enable-jemalloc"
+ ] ++ (if debugBuild then [
+ "--enable-debug"
+ "--enable-profiling"
+ ] else [
+ "--disable-debug"
+ "--enable-release"
+ "--disable-debug-symbols"
+ "--enable-optimize"
+ "--enable-strip"
+ ]) ++ lib.optionals (!stdenv.hostPlatform.isi686) [
+ # on i686-linux: --with-libclang-path is not available in this configuration
+ "--with-libclang-path=${llvmPackages.libclang}/lib"
+ "--with-clang-path=${llvmPackages.clang}/bin/clang"
+ ] ++ lib.optional alsaSupport "--enable-alsa"
+ ++ lib.optional calendarSupport "--enable-calendar"
+ ++ lib.optional enableOfficialBranding "--enable-official-branding"
+ ++ lib.optional pulseaudioSupport "--enable-pulseaudio";
+
+ enableParallelBuilding = true;
+
+ postConfigure = ''
+ cd obj-*
+ '';
+
+ makeFlags = lib.optionals enableOfficialBranding [
+ "MOZILLA_OFFICIAL=1"
+ "BUILD_OFFICIAL=1"
+ ];
+
+ doCheck = false;
+
+ desktopItems = [
+ (makeDesktopItem {
+ categories = lib.concatStringsSep ";" [ "Application" "Network" ];
+ desktopName = "Thunderbird";
+ genericName = "Mail Reader";
+ name = "thunderbird";
+ exec = "thunderbird %U";
+ icon = "$out/lib/thunderbird/chrome/icons/default/default256.png";
+ mimeType = lib.concatStringsSep ";" [
+ # Email
+ "x-scheme-handler/mailto"
+ "message/rfc822"
+ # Feeds
+ "x-scheme-handler/feed"
+ "application/rss+xml"
+ "application/x-extension-rss"
+ # Newsgroups
+ "x-scheme-handler/news"
+ "x-scheme-handler/snews"
+ "x-scheme-handler/nntp"
+ ];
+ })
+ ];
+
+ postInstall = ''
+ # TODO: Move to a dev output?
+ rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl
+ '';
+
+ preFixup = ''
+ # Needed to find Mozilla runtime
+ gappsWrapperArgs+=(
+ --argv0 "$out/bin/thunderbird"
+ --set MOZ_APP_LAUNCHER thunderbird
+ # https://github.com/NixOS/nixpkgs/pull/61980
+ --set SNAP_NAME "thunderbird"
+ --set MOZ_LEGACY_PROFILES 1
+ --set MOZ_ALLOW_DOWNGRADE 1
+ )
+ '';
+
+ # FIXME: The XUL portion of this can probably be removed as soon as we
+ # package a Thunderbird >=71.0 since XUL shouldn't be anymore (in use)?
+ postFixup = ''
+ local xul="$out/lib/thunderbird/libxul.so"
+ patchelf --set-rpath "${libnotify}/lib:${lib.getLib systemd}/lib:$(patchelf --print-rpath $xul)" $xul
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ "$out/bin/thunderbird" --version
+ '';
+
+ disallowedRequisites = [
+ stdenv.cc
+ ];
+
+ passthru.updateScript = import ./../../browsers/firefox/update.nix {
+ attrPath = "thunderbird-78";
+ baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
+ inherit writeScript lib common-updater-scripts xidel coreutils gnused
+ gnugrep curl runtimeShell;
+ };
+
+ requiredSystemFeatures = [ "big-parallel" ];
+
+ meta = with stdenv.lib; {
+ description = "A full-featured e-mail client";
+ homepage = "https://www.thunderbird.net";
+ maintainers = with maintainers; [
+ eelco
+ lovesegfault
+ pierron
+ vcunat
+ ];
+ platforms = platforms.linux;
+ license = licenses.mpl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch
new file mode 100644
index 000000000000..482c10bd1cfc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch
@@ -0,0 +1,36 @@
+Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies.
+diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
+--- a/docshell/base/nsAboutRedirector.cpp 2017-07-31 18:20:51.000000000 +0200
++++ b/docshell/base/nsAboutRedirector.cpp 2017-09-26 22:02:00.814151731 +0200
+@@ -32,8 +32,6 @@
+ {"about", "chrome://global/content/aboutAbout.xhtml", 0},
+ {"addons", "chrome://mozapps/content/extensions/extensions.xul",
+ nsIAboutModule::ALLOW_SCRIPT},
+- {"buildconfig", "chrome://global/content/buildconfig.html",
+- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
+ {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::ALLOW_SCRIPT},
+diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn
+--- a/toolkit/content/jar.mn 2017-07-31 18:20:52.000000000 +0200
++++ b/toolkit/content/jar.mn 2017-09-26 22:01:42.383350314 +0200
+@@ -39,7 +39,6 @@
+ content/global/plugins.css
+ content/global/browser-child.js
+ content/global/browser-content.js
+-* content/global/buildconfig.html
+ content/global/buildconfig.css
+ content/global/contentAreaUtils.js
+ content/global/datepicker.xhtml
+--- a/comm/mail/base/jar.mn
++++ b/comm/mail/base/jar.mn
+@@ -117,9 +117,7 @@
+ % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
+ % override chrome://mozapps/content/profile/profileDowngrade.xul chrome://messenger/content/profileDowngrade.xul
+
+-* content/messenger/buildconfig.html (content/buildconfig.html)
+ content/messenger/buildconfig.css (content/buildconfig.css)
+-% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html
+ % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css
+
+ # L10n resources and overrides.
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
new file mode 100644
index 000000000000..d413a06475d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
@@ -0,0 +1,37 @@
+Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies.
+diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
+--- a/docshell/base/nsAboutRedirector.cpp
++++ b/docshell/base/nsAboutRedirector.cpp
+@@ -63,8 +63,6 @@
+ {"about", "chrome://global/content/aboutAbout.html", 0},
+ {"addons", "chrome://mozapps/content/extensions/extensions.xhtml",
+ nsIAboutModule::ALLOW_SCRIPT},
+- {"buildconfig", "chrome://global/content/buildconfig.html",
+- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
+ {"checkerboard", "chrome://global/content/aboutCheckerboard.html",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::ALLOW_SCRIPT},
+diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn
+--- a/toolkit/content/jar.mn
++++ b/toolkit/content/jar.mn
+@@ -35,7 +35,6 @@
+ content/global/plugins.js
+ content/global/browser-child.js
+ content/global/browser-content.js
+-* content/global/buildconfig.html
+ content/global/buildconfig.css
+ content/global/contentAreaUtils.js
+ content/global/datepicker.xhtml
+diff -ru -x '*~' a/comm/mail/base/jar.mn b/comm/mail/base/jar.mn
+--- a/comm/mail/base/jar.mn
++++ b/comm/mail/base/jar.mn
+@@ -119,9 +119,7 @@
+ % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
+ % override chrome://mozapps/content/profile/profileDowngrade.xhtml chrome://messenger/content/profileDowngrade.xhtml
+
+-* content/messenger/buildconfig.html (content/buildconfig.html)
+ content/messenger/buildconfig.css (content/buildconfig.css)
+-% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html
+ % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css
+
+ # L10n resources and overrides.
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix
new file mode 100644
index 000000000000..51f6b4e06229
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix
@@ -0,0 +1,83 @@
+{ akonadi-contacts
+, cmake
+, fetchgit
+, fetchsvn
+, gnupg
+, gpgme
+, kcontacts
+, kf5gpgmepp
+, lib
+, libsecret
+, mimetic
+, mkDerivation
+, pkgconfig
+, qgpgme
+, qtbase
+, qtkeychain
+, qttools
+, qtwebkit
+, qttranslations
+, substituteAll
+, withI18n ? false
+}:
+
+let
+ l10n = fetchsvn {
+ url = "svn://anonsvn.kde.org/home/kde/trunk/l10n-kf5";
+ rev = "1566642";
+ sha256 = "0y45fjib153za085la3hqpryycx33dkj3cz8kwzn2w31kvldfl1q";
+ };
+in mkDerivation rec {
+ pname = "trojita";
+ version = "unstable-2020-07-06";
+
+ src = fetchgit {
+ url = "https://anongit.kde.org/trojita.git";
+ rev = "e973a5169f18ca862ceb8ad749c93cd621d86e14";
+ sha256 = "0r8nmlqwgsqkk0k8xh32fkwvv6iylj35xq2h8b7l3g03yc342kbn";
+ };
+
+ patches = (substituteAll {
+ # See https://github.com/NixOS/nixpkgs/issues/86054
+ src = ./fix-qttranslations-path.patch;
+ inherit qttranslations;
+ });
+
+ buildInputs = [
+ akonadi-contacts
+ gpgme
+ kcontacts
+ libsecret
+ mimetic
+ qgpgme
+ qtbase
+ qtkeychain
+ qtwebkit
+ mimetic
+ kf5gpgmepp
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ qttools
+ gnupg
+ ];
+
+ postPatch = "echo ${version} > src/trojita-version"
+ + lib.optionalString withI18n ''
+ mkdir -p po
+ for f in `find ${l10n} -name "trojita_common.po"`; do
+ cp $f po/trojita_common_$(echo $f | cut -d/ -f5).po
+ done
+ '';
+
+ meta = with lib; {
+ description = "A Qt IMAP e-mail client";
+ homepage = "http://trojita.flaska.net/";
+ license = with licenses; [ gpl2 gpl3 ];
+ maintainers = with maintainers; [ ehmry ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch
new file mode 100644
index 000000000000..c4eac3956508
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch
@@ -0,0 +1,13 @@
+diff --git i/src/Gui/main.cpp w/src/Gui/main.cpp
+index 851db4f1..e997f46e 100644
+--- i/src/Gui/main.cpp
++++ w/src/Gui/main.cpp
+@@ -52,7 +52,7 @@ int main(int argc, char **argv)
+
+ QTranslator qtTranslator;
+ qtTranslator.load(QLatin1String("qt_") + QLocale::system().name(),
+- QLibraryInfo::location(QLibraryInfo::TranslationsPath));
++ QLatin1String("@qttranslations@/translations"));
+ app.installTranslator(&qtTranslator);
+
+ QLatin1String localeSuffix("/locale");
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mkchromecast/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mkchromecast/default.nix
new file mode 100644
index 000000000000..34f5be71ef35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mkchromecast/default.nix
@@ -0,0 +1,84 @@
+{ stdenv
+, fetchFromGitHub
+, python3Packages
+, sox
+, flac
+, lame
+, wrapQtAppsHook
+, ffmpeg
+, vorbis-tools
+, pulseaudio
+, nodejs
+, youtube-dl
+, opusTools
+, gst_all_1
+}:
+let packages = [
+ vorbis-tools
+ sox
+ flac
+ lame
+ opusTools
+ gst_all_1.gstreamer
+ nodejs
+ ffmpeg
+ youtube-dl
+] ++ stdenv.lib.optionals stdenv.isLinux [ pulseaudio ];
+
+in
+python3Packages.buildPythonApplication rec {
+ pname = "mkchromecast-unstable";
+ version = "2020-10-17";
+
+ src = fetchFromGitHub rec {
+ owner = "muammar";
+ repo = "mkchromecast";
+ rev = "eb9da74d887acd70ed179e6e4c0cbed4ff83de04";
+ sha256 = "1l565n3rmyghc4vzh80gazvdks1i97j1h94x33pkmxxlf9a9rncj";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ PyChromecast
+ psutil
+ mutagen
+ flask
+ netifaces
+ requests
+ pyqt5
+ ];
+
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace 'platform.system() == "Darwin"' 'False' \
+ --replace 'platform.system() == "Linux"' 'True'
+ '';
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+
+ # Relies on an old version (0.7.7) of PyChromecast unavailable in Nixpkgs.
+ # Is also I/O bound and impure, testing an actual device, so we disable.
+ doCheck = false;
+
+ dontWrapQtApps = true;
+
+ makeWrapperArgs = [
+ "\${qtWrapperArgs[@]}"
+ "--prefix PATH : ${stdenv.lib.makeBinPath packages}"
+ ];
+
+ postInstall = ''
+ substituteInPlace $out/lib/${python3Packages.python.libPrefix}/site-packages/mkchromecast/video.py \
+ --replace '/usr/share/mkchromecast/nodejs/' '${placeholder "out"}/share/mkchromecast/nodejs/'
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ install -Dm 755 -t $out/bin bin/audiodevice
+ substituteInPlace $out/lib/${python3Packages.python.libPrefix}/site-packages/mkchromecast/audio_devices.py \
+ --replace './bin/audiodevice' '${placeholder "out"}/bin/audiodevice'
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://mkchromecast.com/";
+ description = "Cast macOS and Linux Audio/Video to your Google Cast and Sonos Devices";
+ license = licenses.mit;
+ maintainers = with maintainers; [ shou ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
new file mode 100644
index 000000000000..64b1be363f34
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, pkgconfig
+, python3
+, fetchFromGitLab
+, gtk3
+, glib
+, gdbm
+, gtkspell3
+, ofono
+, itstool
+, libayatana-appindicator-gtk3
+, perlPackages
+, glibcLocales
+, meson
+, ninja
+}:
+
+stdenv.mkDerivation rec {
+ pname = "modem-manager-gui";
+ version = "0.0.20";
+
+ src = fetchFromGitLab {
+ domain = "salsa.debian.org";
+ owner = "debian";
+ repo = "modem-manager-gui";
+ rev = "upstream%2F${version}";
+ sha256 = "1pjx4rbsxa7gcs628yjkwb0zqrm5xq8pkmp0cfk4flfk1ryflmgr";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ python3
+ perlPackages.Po4a
+ itstool
+ meson
+ ninja
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ gdbm
+ gtkspell3
+ ofono
+ libayatana-appindicator-gtk3
+ ];
+
+ postPatch = ''
+ patchShebangs man/manhelper.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An app to send/receive SMS, make USSD requests, control mobile data usage and more";
+ longDescription = ''
+ A simple GTK based GUI compatible with Modem manager, Wader and oFono
+ system services able to control EDGE/3G/4G broadband modem specific
+ functions. You can check balance of your SIM card, send or receive SMS
+ messages, control mobile traffic consumption and more.
+ '';
+ homepage = "https://linuxonly.ru/page/modem-manager-gui";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ahuzik galagora ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mpop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mpop/default.nix
new file mode 100644
index 000000000000..e2f1f0e828d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mpop/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, gnutls, gsasl, libidn, Security }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "mpop";
+ version = "1.4.11";
+
+ src = fetchurl {
+ url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
+ sha256 = "1gcxvhin5y0q47svqbf90r5aip0cgywm8sq6m84ygda7km8xylwv";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gnutls gsasl libidn ]
+ ++ optional stdenv.isDarwin Security;
+
+ configureFlags = optional stdenv.isDarwin [ "--with-macosx-keyring" ];
+
+ meta = {
+ description = "POP3 mail retrieval agent";
+ homepage = "https://marlam.de/mpop";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/msmtp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/msmtp/default.nix
new file mode 100644
index 000000000000..bfa98b94d0a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/msmtp/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig, texinfo
+, netcat-gnu, gnutls, gsasl, libidn2, Security
+, withKeyring ? true, libsecret ? null
+, systemd ? null }:
+
+let
+ tester = "n"; # {x| |p|P|n|s}
+ journal = if stdenv.isLinux then "y" else "n";
+
+in stdenv.mkDerivation rec {
+ pname = "msmtp";
+ version = "1.8.13";
+
+ src = fetchurl {
+ url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
+ sha256 = "1fcv99nis7c6yc63n04cncjysv9jndrp469gcfxh54aiinmlbadd";
+ };
+
+ patches = [
+ ./paths.patch
+ ];
+
+ buildInputs = [ gnutls gsasl libidn2 ]
+ ++ stdenv.lib.optional stdenv.isDarwin Security
+ ++ stdenv.lib.optional withKeyring libsecret;
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig texinfo ];
+
+ configureFlags =
+ [ "--sysconfdir=/etc" ] ++ stdenv.lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
+
+ postInstall = ''
+ install -d $out/share/doc/${pname}/scripts
+ cp -r scripts/{find_alias,msmtpqueue,msmtpq,set_sendmail} $out/share/doc/${pname}/scripts
+ install -Dm644 doc/*.example $out/share/doc/${pname}
+
+ substitute scripts/msmtpq/msmtpq $out/bin/msmtpq \
+ --replace @msmtp@ $out/bin/msmtp \
+ --replace @nc@ ${netcat-gnu}/bin/nc \
+ --replace @journal@ ${journal} \
+ ${lib.optionalString (journal == "y") "--replace @systemdcat@ ${systemd}/bin/systemd-cat" } \
+ --replace @test@ ${tester}
+
+ substitute scripts/msmtpq/msmtp-queue $out/bin/msmtp-queue \
+ --replace @msmtpq@ $out/bin/msmtpq
+
+ ln -s msmtp $out/bin/sendmail
+
+ chmod +x $out/bin/*
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple and easy to use SMTP client with excellent sendmail compatibility";
+ homepage = "https://marlam.de/msmtp/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/msmtp/paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/msmtp/paths.patch
new file mode 100644
index 000000000000..707163bff0c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/msmtp/paths.patch
@@ -0,0 +1,97 @@
+diff --git a/scripts/msmtpq/msmtp-queue b/scripts/msmtpq/msmtp-queue
+index 1dc220d..d834241 100755
+--- a/scripts/msmtpq/msmtp-queue
++++ b/scripts/msmtpq/msmtp-queue
+@@ -27,4 +27,4 @@
+ ## change the below line to be
+ ## exec /path/to/msmtpq --q-mgmt
+
+-exec msmtpq --q-mgmt "$1"
++exec @msmtpq@ --q-mgmt "$1"
+diff --git a/scripts/msmtpq/msmtpq b/scripts/msmtpq/msmtpq
+index bdb4fb8..1363a67 100755
+--- a/scripts/msmtpq/msmtpq
++++ b/scripts/msmtpq/msmtpq
+@@ -59,7 +59,7 @@ err() { dsp '' "$@" '' ; exit 1 ; }
+ ## enter the location of the msmtp executable (no quotes !!)
+ ## e.g. ( MSMTP=/path/to/msmtp )
+ ## and uncomment the test for its existence
+-MSMTP=msmtp
++MSMTP=@msmtp@
+ #[ -x "$MSMTP" ] || \
+ # log -e 1 "msmtpq : can't find the msmtp executable [ $MSMTP ]" # if not found - complain ; quit
+ ##
+@@ -70,9 +70,8 @@ MSMTP=msmtp
+ ## ( chmod 0700 msmtp.queue )
+ ##
+ ## the queue dir - modify this to reflect where you'd like it to be (no quotes !!)
+-Q=~/.msmtp.queue
+-[ -d "$Q" ] || \
+- err '' "msmtpq : can't find msmtp queue directory [ $Q ]" '' # if not present - complain ; quit
++Q=${MSMTP_QUEUE:-~/.msmtp.queue}
++test -d "$Q" || mkdir -p "$Q"
+ ##
+ ## set the queue log file var to the location of the msmtp queue log file
+ ## where it is or where you'd like it to be
+@@ -84,7 +83,10 @@ Q=~/.msmtp.queue
+ ## (doing so would be inadvisable under most conditions, however)
+ ##
+ ## the queue log file - modify (or comment out) to taste (but no quotes !!)
+-LOG=~/log/msmtp.queue.log
++LOG=${MSMTP_LOG:-~/log/msmtp.queue.log}
++test -d "$(dirname $LOG)" || mkdir -p "$(dirname $LOG)"
++
++JOURNAL=@journal@
+ ## ======================================================================================
+
+ ## msmtpq can use the following environment variables :
+@@ -108,7 +110,7 @@ LOG=~/log/msmtp.queue.log
+ ##
+ #EMAIL_CONN_NOTEST=y # deprecated ; use below var
+ #EMAIL_CONN_TEST={x| |p|P|n|s} # see settings above for EMAIL_CONN_TEST
+-EMAIL_CONN_TEST=n
++EMAIL_CONN_TEST=@test@
+ #EMAIL_QUEUE_QUIET=t
+ ## ======================================================================================
+
+@@ -138,6 +140,7 @@ on_exit() { # unlock the queue on exit if the lock was
+ ## display msg to user, as well
+ ##
+ log() {
++ local NAME=msmtpq
+ local ARG RC PFX
+ PFX="$('date' +'%Y %d %b %H:%M:%S')"
+ # time stamp prefix - "2008 13 Mar 03:59:45 "
+ if [ "$1" = '-e' ] ; then # there's an error exit code
+@@ -154,10 +157,19 @@ log() {
+ done
+ fi
+
++ if [ "$JOURNAL" == "y" ] ; then
++ for ARG ; do
++ [ -n "$ARG" ] && \
++ echo "$PFX : $ARG" | @systemdcat@ -t $NAME -p info
++ done
++ fi
++
+ if [ -n "$RC" ] ; then # an error ; leave w/error return
+ [ -n "$LKD" ] && lock_queue -u # unlock here (if locked)
+ [ -n "$LOG" ] && \
+ echo " exit code = $RC" >> "$LOG" # logging ok ; send exit code to log
++ [ "$JOURNAL" == "y" ] && \
++ echo "exit code= $RC" | @systemdcat@ -t $NAME -p emerg
+ exit $RC # exit w/return code
+ fi
+ }
+@@ -207,10 +219,7 @@ connect_test() {
+ ping -qnc1 -w4 8.8.8.8 >/dev/null 2>&1 || return 1
+
+ elif [ "$EMAIL_CONN_TEST" = 'n' ] ; then # use netcat (nc) test
+- # must, of course, have netcat (nc) installed
+- which nc >/dev/null 2>&1 || \
+- log -e 1 "msmtpq : can't find netcat executable [ nc ]" # if not found - complain ; quit
+- 'nc' -vz www.debian.org 80 >/dev/null 2>&1 || return 1
++ @nc@ -vz www.debian.org 80 >/dev/null 2>&1 || return 1
+
+ elif [ "$EMAIL_CONN_TEST" = 's' ] ; then # use sh sockets test
+ # note that this does not work on debian systems
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
new file mode 100644
index 000000000000..e6f5d6ac4ea2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, lib, makeWrapper, fetchurl, dpkg
+, alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype
+, gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3
+, xorg, autoPatchelfHook, systemd, libnotify, libappindicator
+}:
+
+let deps = [
+ alsaLib
+ atk
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gnome2.GConf
+ pango
+ gtk3
+ libappindicator
+ libnotify
+ xorg.libX11
+ xorg.libXScrnSaver
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXtst
+ xorg.libxcb
+ nspr
+ nss
+ systemd
+ ];
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "mullvad-vpn";
+ version = "2020.7";
+
+ src = fetchurl {
+ url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb";
+ sha256 = "07vryz1nq8r4m5y9ry0d0v62ykz1cnnsv628x34yvwiyazbav4ri";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ dpkg
+ ];
+
+ buildInputs = deps;
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = "dpkg-deb -x $src .";
+
+ runtimeDependencies = [ (lib.getLib systemd) libnotify libappindicator ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/mullvad $out/bin
+
+ mv usr/share/* $out/share
+ mv usr/bin/* $out/bin
+ mv opt/Mullvad\ VPN/* $out/share/mullvad
+
+ sed -i 's|\/opt\/Mullvad.*VPN|'$out'/bin|g' $out/share/applications/mullvad-vpn.desktop
+
+ ln -s $out/share/mullvad/mullvad-{gui,vpn} $out/bin/
+ ln -s $out/share/mullvad/resources/mullvad-daemon $out/bin/mullvad-daemon
+ ln -sf $out/share/mullvad/resources/mullvad-problem-report $out/bin/mullvad-problem-report
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mullvad/mullvadvpn-app";
+ description = "Client for Mullvad VPN";
+ changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
+ license = licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ Br1ght0ne ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/default.nix
new file mode 100644
index 000000000000..fd2fb4a8fb7b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/default.nix
@@ -0,0 +1,150 @@
+{ stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkgconfig, qt5
+, avahi, boost, libopus, libsndfile, protobuf, speex, libcap
+, alsaLib, python
+, rnnoise
+, jackSupport ? false, libjack2 ? null
+, speechdSupport ? false, speechd ? null
+, pulseSupport ? false, libpulseaudio ? null
+, iceSupport ? false, zeroc-ice ? null
+, grpcSupport ? false, grpc ? null, c-ares ? null, abseil-cpp ? null, which ? null
+, nixosTests
+}:
+
+assert jackSupport -> libjack2 != null;
+assert speechdSupport -> speechd != null;
+assert pulseSupport -> libpulseaudio != null;
+assert iceSupport -> zeroc-ice != null;
+assert grpcSupport -> (grpc != null && c-ares != null && abseil-cpp != null && which != null);
+
+with stdenv.lib;
+let
+ generic = overrides: source: qt5.mkDerivation (source // overrides // {
+ pname = overrides.type;
+ version = source.version;
+
+ patches = (source.patches or [])
+ ++ [ ./fix-rnnoise-argument.patch ];
+
+ nativeBuildInputs = [ pkgconfig python qt5.qmake ]
+ ++ (overrides.nativeBuildInputs or [ ]);
+
+ buildInputs = [ boost protobuf avahi ]
+ ++ (overrides.buildInputs or [ ]);
+
+ qmakeFlags = [
+ "CONFIG+=c++11"
+ "CONFIG+=shared"
+ "CONFIG+=no-g15"
+ "CONFIG+=packaged"
+ "CONFIG+=no-update"
+ "CONFIG+=no-embed-qt-translations"
+ "CONFIG+=bundled-celt"
+ "CONFIG+=no-bundled-opus"
+ "CONFIG+=no-bundled-speex"
+ "DEFINES+=PLUGIN_PATH=${placeholder "out"}/lib/mumble"
+ ] ++ optional (!speechdSupport) "CONFIG+=no-speechd"
+ ++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
+ ++ (overrides.configureFlags or [ ]);
+
+ preConfigure = ''
+ patchShebangs scripts
+ '';
+
+ makeFlags = [ "release" ];
+
+ installPhase = ''
+ runHook preInstall
+
+ ${overrides.installPhase}
+
+ # doc stuff
+ mkdir -p $out/share/man/man1
+ install -Dm644 man/mum* $out/share/man/man1/
+
+ runHook postInstall
+ '';
+
+ enableParallelBuilding = true;
+
+ passthru.tests.connectivity = nixosTests.mumble;
+
+ meta = {
+ description = "Low-latency, high quality voice chat software";
+ homepage = "https://mumble.info";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ petabyteboy infinisil ];
+ platforms = platforms.linux;
+ };
+ });
+
+ client = source: generic {
+ type = "mumble";
+
+ nativeBuildInputs = [ qt5.qttools ];
+ buildInputs = [ libopus libsndfile speex qt5.qtsvg rnnoise ]
+ ++ optional stdenv.isLinux alsaLib
+ ++ optional jackSupport libjack2
+ ++ optional speechdSupport speechd
+ ++ optional pulseSupport libpulseaudio;
+
+ configureFlags = [
+ "CONFIG+=no-server"
+ ];
+
+ NIX_CFLAGS_COMPILE = optional speechdSupport "-I${speechd}/include/speech-dispatcher";
+
+ installPhase = ''
+ # bin stuff
+ install -Dm755 release/mumble $out/bin/mumble
+ install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay
+
+ # lib stuff
+ mkdir -p $out/lib/mumble
+ cp -P release/libmumble.so* $out/lib
+ cp -P release/libcelt* $out/lib/mumble
+ cp -P release/plugins/* $out/lib/mumble
+
+ # icons
+ install -Dm644 scripts/mumble.desktop $out/share/applications/mumble.desktop
+ install -Dm644 icons/mumble.svg $out/share/icons/hicolor/scalable/apps/mumble.svg
+ '';
+ } source;
+
+ server = source: generic {
+ type = "murmur";
+
+ postPatch = optional iceSupport ''
+ grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc-ice.dev}/share/ice/,g'
+ '';
+
+ configureFlags = [
+ "CONFIG+=no-client"
+ ] ++ optional (!iceSupport) "CONFIG+=no-ice"
+ ++ optional grpcSupport "CONFIG+=grpc";
+
+ buildInputs = [ libcap ]
+ ++ optional iceSupport zeroc-ice
+ ++ optionals grpcSupport [ grpc c-ares abseil-cpp which ];
+
+ installPhase = ''
+ # bin stuff
+ install -Dm755 release/murmurd $out/bin/murmurd
+ '';
+ } source;
+
+ source = rec {
+ version = "1.3.3";
+
+ # Needs submodules
+ src = fetchFromGitHub {
+ owner = "mumble-voip";
+ repo = "mumble";
+ rev = version;
+ sha256 = "1jaq5bl5gdpzd4pskpcd2j93g2w320znn4s8ck8f4jz5f46da1bj";
+ fetchSubmodules = true;
+ };
+ };
+in {
+ mumble = client source;
+ murmur = server source;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/fix-rnnoise-argument.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/fix-rnnoise-argument.patch
new file mode 100644
index 000000000000..78e8ed24d58f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/fix-rnnoise-argument.patch
@@ -0,0 +1,16 @@
+nixpkgs has a more recent rnnoise than the one used by mumble, and rnnoise
+changed the argument rnnoise_create[1],
+
+[1] https://github.com/xiph/rnnoise/commit/231b9c02d14a74cb449a98004cb7a2cf1bdeca2f
+
+--- old/src/mumble/AudioInput.cpp 2020-02-18 22:55:32.000000000 -0500
++++ new/src/mumble/AudioInput.cpp 2020-02-18 22:58:08.000000000 -0500
+@@ -106,7 +106,7 @@
+ #endif
+
+ #ifdef USE_RNNOISE
+- denoiseState = rnnoise_create();
++ denoiseState = rnnoise_create(NULL);
+ #endif
+
+ qWarning("AudioInput: %d bits/s, %d hz, %d sample", iAudioQuality, iSampleRate, iFrameSize);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/overlay.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/overlay.nix
new file mode 100644
index 000000000000..d3af518a3c54
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/mumble/overlay.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, which, file, mumble, mumble_i686
+}:
+
+let
+ binPath = lib.makeBinPath [ which file ];
+in stdenv.mkDerivation {
+ name = "mumble-overlay-${mumble.version}";
+
+ inherit (mumble) src;
+
+ phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/lib
+ ln -s ${mumble}/lib/libmumble.so.1 $out/lib/
+
+ ${lib.optionalString (mumble_i686 != null) ''
+ mkdir -p $out/lib32
+ ln -s ${mumble_i686}/lib/libmumble.so.1 $out/lib32/
+ ''}
+
+ install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay
+ sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay
+ sed -i '2iPATH="${binPath}:$PATH"' $out/bin/mumble-overlay
+ '';
+
+ meta = {
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/default.nix
new file mode 100644
index 000000000000..94305a8cfeea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/default.nix
@@ -0,0 +1,18 @@
+{ pkgs, nodejs, stdenv, lib, ... }:
+
+let
+ nodePackages = import ./node-composition.nix {
+ inherit pkgs nodejs;
+ inherit (stdenv.hostPlatform) system;
+ };
+in
+nodePackages.n8n.override {
+ nativeBuildInputs = with pkgs.nodePackages; [
+ node-pre-gyp
+ ];
+ meta = with lib; {
+ description = "Free and open fair-code licensed node based Workflow Automation Tool";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh
new file mode 100755
index 000000000000..292811669184
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix
+
+node2nix \
+ --node-env node-env.nix \
+ --input package.json \
+ --output node-packages.nix \
+ --composition node-composition.nix
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix
new file mode 100644
index 000000000000..c970861a86f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+ inherit system;
+ }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+ nodeEnv = import ./node-env.nix {
+ inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
+ inherit nodejs;
+ libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+ };
+in
+import ./node-packages.nix {
+ inherit (pkgs) fetchurl fetchgit;
+ inherit nodeEnv;
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-env.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-env.nix
new file mode 100644
index 000000000000..e1abf5304935
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-env.nix
@@ -0,0 +1,542 @@
+# This file originates from node2nix
+
+{stdenv, nodejs, python2, utillinux, libtool, runCommand, writeTextFile}:
+
+let
+ python = if nodejs ? python then nodejs.python else python2;
+
+ # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+ tarWrapper = runCommand "tarWrapper" {} ''
+ mkdir -p $out/bin
+
+ cat > $out/bin/tar <<EOF
+ #! ${stdenv.shell} -e
+ $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
+ EOF
+
+ chmod +x $out/bin/tar
+ '';
+
+ # Function that generates a TGZ file from a NPM project
+ buildNodeSourceDist =
+ { name, version, src, ... }:
+
+ stdenv.mkDerivation {
+ name = "node-tarball-${name}-${version}";
+ inherit src;
+ buildInputs = [ nodejs ];
+ buildPhase = ''
+ export HOME=$TMPDIR
+ tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
+ '';
+ installPhase = ''
+ mkdir -p $out/tarballs
+ mv $tgzFile $out/tarballs
+ mkdir -p $out/nix-support
+ echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
+ '';
+ };
+
+ includeDependencies = {dependencies}:
+ stdenv.lib.optionalString (dependencies != [])
+ (stdenv.lib.concatMapStrings (dependency:
+ ''
+ # Bundle the dependencies of the package
+ mkdir -p node_modules
+ cd node_modules
+
+ # Only include dependencies if they don't exist. They may also be bundled in the package.
+ if [ ! -e "${dependency.name}" ]
+ then
+ ${composePackage dependency}
+ fi
+
+ cd ..
+ ''
+ ) dependencies);
+
+ # Recursively composes the dependencies of a package
+ composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+ builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+ DIR=$(pwd)
+ cd $TMPDIR
+
+ unpackFile ${src}
+
+ # Make the base dir in which the target dependency resides first
+ mkdir -p "$(dirname "$DIR/${packageName}")"
+
+ if [ -f "${src}" ]
+ then
+ # Figure out what directory has been unpacked
+ packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+ # Restore write permissions to make building work
+ find "$packageDir" -type d -exec chmod u+x {} \;
+ chmod -R u+w "$packageDir"
+
+ # Move the extracted tarball into the output folder
+ mv "$packageDir" "$DIR/${packageName}"
+ elif [ -d "${src}" ]
+ then
+ # Get a stripped name (without hash) of the source directory.
+ # On old nixpkgs it's already set internally.
+ if [ -z "$strippedName" ]
+ then
+ strippedName="$(stripHash ${src})"
+ fi
+
+ # Restore write permissions to make building work
+ chmod -R u+w "$strippedName"
+
+ # Move the extracted directory into the output folder
+ mv "$strippedName" "$DIR/${packageName}"
+ fi
+
+ # Unset the stripped name to not confuse the next unpack step
+ unset strippedName
+
+ # Include the dependencies of the package
+ cd "$DIR/${packageName}"
+ ${includeDependencies { inherit dependencies; }}
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ '';
+
+ pinpointDependencies = {dependencies, production}:
+ let
+ pinpointDependenciesFromPackageJSON = writeTextFile {
+ name = "pinpointDependencies.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function resolveDependencyVersion(location, name) {
+ if(location == process.env['NIX_STORE']) {
+ return null;
+ } else {
+ var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+ if(fs.existsSync(dependencyPackageJSON)) {
+ var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+ if(dependencyPackageObj.name == name) {
+ return dependencyPackageObj.version;
+ }
+ } else {
+ return resolveDependencyVersion(path.resolve(location, ".."), name);
+ }
+ }
+ }
+
+ function replaceDependencies(dependencies) {
+ if(typeof dependencies == "object" && dependencies !== null) {
+ for(var dependency in dependencies) {
+ var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+ if(resolvedVersion === null) {
+ process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+ } else {
+ dependencies[dependency] = resolvedVersion;
+ }
+ }
+ }
+ }
+
+ /* Read the package.json configuration */
+ var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+ /* Pinpoint all dependencies */
+ replaceDependencies(packageObj.dependencies);
+ if(process.argv[2] == "development") {
+ replaceDependencies(packageObj.devDependencies);
+ }
+ replaceDependencies(packageObj.optionalDependencies);
+
+ /* Write the fixed package.json file */
+ fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+ '';
+ };
+ in
+ ''
+ node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+ ${stdenv.lib.optionalString (dependencies != [])
+ ''
+ if [ -d node_modules ]
+ then
+ cd node_modules
+ ${stdenv.lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+ cd ..
+ fi
+ ''}
+ '';
+
+ # Recursively traverses all dependencies of a package and pinpoints all
+ # dependencies in the package.json file to the versions that are actually
+ # being used.
+
+ pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+ ''
+ if [ -d "${packageName}" ]
+ then
+ cd "${packageName}"
+ ${pinpointDependencies { inherit dependencies production; }}
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ fi
+ '';
+
+ # Extract the Node.js source code which is used to compile packages with
+ # native bindings
+ nodeSources = runCommand "node-sources" {} ''
+ tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+ mv node-* $out
+ '';
+
+ # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+ addIntegrityFieldsScript = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function augmentDependencies(baseDir, dependencies) {
+ for(var dependencyName in dependencies) {
+ var dependency = dependencies[dependencyName];
+
+ // Open package.json and augment metadata fields
+ var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+ var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+ if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+ console.log("Adding metadata fields to: "+packageJSONPath);
+ var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+ if(dependency.integrity) {
+ packageObj["_integrity"] = dependency.integrity;
+ } else {
+ packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+ }
+
+ if(dependency.resolved) {
+ packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+ } else {
+ packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+ }
+
+ if(dependency.from !== undefined) { // Adopt from property if one has been provided
+ packageObj["_from"] = dependency.from;
+ }
+
+ fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+ }
+
+ // Augment transitive dependencies
+ if(dependency.dependencies !== undefined) {
+ augmentDependencies(packageJSONDir, dependency.dependencies);
+ }
+ }
+ }
+
+ if(fs.existsSync("./package-lock.json")) {
+ var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+ if(packageLock.lockfileVersion !== 1) {
+ process.stderr.write("Sorry, I only understand lock file version 1!\n");
+ process.exit(1);
+ }
+
+ if(packageLock.dependencies !== undefined) {
+ augmentDependencies(".", packageLock.dependencies);
+ }
+ }
+ '';
+ };
+
+ # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+ reconstructPackageLock = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+ var lockObj = {
+ name: packageObj.name,
+ version: packageObj.version,
+ lockfileVersion: 1,
+ requires: true,
+ dependencies: {}
+ };
+
+ function augmentPackageJSON(filePath, dependencies) {
+ var packageJSON = path.join(filePath, "package.json");
+ if(fs.existsSync(packageJSON)) {
+ var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+ dependencies[packageObj.name] = {
+ version: packageObj.version,
+ integrity: "sha1-000000000000000000000000000=",
+ dependencies: {}
+ };
+ processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
+ }
+ }
+
+ function processDependencies(dir, dependencies) {
+ if(fs.existsSync(dir)) {
+ var files = fs.readdirSync(dir);
+
+ files.forEach(function(entry) {
+ var filePath = path.join(dir, entry);
+ var stats = fs.statSync(filePath);
+
+ if(stats.isDirectory()) {
+ if(entry.substr(0, 1) == "@") {
+ // When we encounter a namespace folder, augment all packages belonging to the scope
+ var pkgFiles = fs.readdirSync(filePath);
+
+ pkgFiles.forEach(function(entry) {
+ if(stats.isDirectory()) {
+ var pkgFilePath = path.join(filePath, entry);
+ augmentPackageJSON(pkgFilePath, dependencies);
+ }
+ });
+ } else {
+ augmentPackageJSON(filePath, dependencies);
+ }
+ }
+ });
+ }
+ }
+
+ processDependencies("node_modules", lockObj.dependencies);
+
+ fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+ '';
+ };
+
+ prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
+ let
+ forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+ in
+ ''
+ # Pinpoint the versions of all dependencies to the ones that are actually being used
+ echo "pinpointing versions of dependencies..."
+ source $pinpointDependenciesScriptPath
+
+ # Patch the shebangs of the bundled modules to prevent them from
+ # calling executables outside the Nix store as much as possible
+ patchShebangs .
+
+ # Deploy the Node.js package by running npm install. Since the
+ # dependencies have been provided already by ourselves, it should not
+ # attempt to install them again, which is good, because we want to make
+ # it Nix's responsibility. If it needs to install any dependencies
+ # anyway (e.g. because the dependency parameters are
+ # incomplete/incorrect), it fails.
+ #
+ # The other responsibilities of NPM are kept -- version checks, build
+ # steps, postprocessing etc.
+
+ export HOME=$TMPDIR
+ cd "${packageName}"
+ runHook preRebuild
+
+ ${stdenv.lib.optionalString bypassCache ''
+ ${stdenv.lib.optionalString reconstructLock ''
+ if [ -f package-lock.json ]
+ then
+ echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+ echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+ rm package-lock.json
+ else
+ echo "No package-lock.json file found, reconstructing..."
+ fi
+
+ node ${reconstructPackageLock}
+ ''}
+
+ node ${addIntegrityFieldsScript}
+ ''}
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
+
+ if [ "''${dontNpmInstall-}" != "1" ]
+ then
+ # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+ rm -f npm-shrinkwrap.json
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
+ fi
+ '';
+
+ # Builds and composes an NPM package including all its dependencies
+ buildNodePackage =
+ { name
+ , packageName
+ , version
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , preRebuild ? ""
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+ in
+ stdenv.mkDerivation ({
+ name = "node_${name}-${version}";
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ stdenv.lib.optional (stdenv.isLinux) utillinux
+ ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit nodejs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+ compositionScript = composePackage args;
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ # Create and enter a root node_modules/ folder
+ mkdir -p $out/lib/node_modules
+ cd $out/lib/node_modules
+
+ # Compose the package and all its dependencies
+ source $compositionScriptPath
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Create symlink to the deployed executable folder, if applicable
+ if [ -d "$out/lib/node_modules/.bin" ]
+ then
+ ln -s $out/lib/node_modules/.bin $out/bin
+ fi
+
+ # Create symlinks to the deployed manual page folders, if applicable
+ if [ -d "$out/lib/node_modules/${packageName}/man" ]
+ then
+ mkdir -p $out/share
+ for dir in "$out/lib/node_modules/${packageName}/man/"*
+ do
+ mkdir -p $out/share/man/$(basename "$dir")
+ for page in "$dir"/*
+ do
+ ln -s $page $out/share/man/$(basename "$dir")
+ done
+ done
+ fi
+
+ # Run post install hook, if provided
+ runHook postInstall
+ '';
+ } // extraArgs);
+
+ # Builds a development shell
+ buildNodeShell =
+ { name
+ , packageName
+ , version
+ , src
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+
+ nodeDependencies = stdenv.mkDerivation ({
+ name = "node-dependencies-${name}-${version}";
+
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ stdenv.lib.optional (stdenv.isLinux) utillinux
+ ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall unpackPhase buildPhase;
+
+ includeScript = includeDependencies { inherit dependencies; };
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ mkdir -p $out/${packageName}
+ cd $out/${packageName}
+
+ source $includeScriptPath
+
+ # Create fake package.json to make the npm commands work properly
+ cp ${src}/package.json .
+ chmod 644 package.json
+ ${stdenv.lib.optionalString bypassCache ''
+ if [ -f ${src}/package-lock.json ]
+ then
+ cp ${src}/package-lock.json .
+ fi
+ ''}
+
+ # Go to the parent folder to make sure that all packages are pinpointed
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Expose the executables that were installed
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ mv ${packageName} lib
+ ln -s $out/lib/node_modules/.bin $out/bin
+ '';
+ } // extraArgs);
+ in
+ stdenv.mkDerivation {
+ name = "node-shell-${name}-${version}";
+
+ buildInputs = [ python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
+ buildCommand = ''
+ mkdir -p $out/bin
+ cat > $out/bin/shell <<EOF
+ #! ${stdenv.shell} -e
+ $shellHook
+ exec ${stdenv.shell}
+ EOF
+ chmod +x $out/bin/shell
+ '';
+
+ # Provide the dependencies in a development shell through the NODE_PATH environment variable
+ inherit nodeDependencies;
+ shellHook = stdenv.lib.optionalString (dependencies != []) ''
+ export NODE_PATH=${nodeDependencies}/lib/node_modules
+ export PATH="${nodeDependencies}/bin:$PATH"
+ '';
+ };
+in
+{
+ buildNodeSourceDist = stdenv.lib.makeOverridable buildNodeSourceDist;
+ buildNodePackage = stdenv.lib.makeOverridable buildNodePackage;
+ buildNodeShell = stdenv.lib.makeOverridable buildNodeShell;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix
new file mode 100644
index 000000000000..7a77dcff11bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix
@@ -0,0 +1,6929 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {
+ "@azure/ms-rest-azure-env-1.1.2" = {
+ name = "_at_azure_slash_ms-rest-azure-env";
+ packageName = "@azure/ms-rest-azure-env";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@azure/ms-rest-azure-env/-/ms-rest-azure-env-1.1.2.tgz";
+ sha512 = "l7z0DPCi2Hp88w12JhDTtx5d0Y3+vhfE7JKJb9O7sEz71Cwp053N8piTtTnnk/tUor9oZHgEKi/p3tQQmLPjvA==";
+ };
+ };
+ "@azure/ms-rest-js-1.9.0" = {
+ name = "_at_azure_slash_ms-rest-js";
+ packageName = "@azure/ms-rest-js";
+ version = "1.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-1.9.0.tgz";
+ sha512 = "cB4Z2Mg7eBmet1rfbf0QSO1XbhfknRW7B+mX3IHJq0KGHaGJvCPoVTgdsJdCkazEMK1jtANFNEDDzSQacxyzbA==";
+ };
+ };
+ "@azure/ms-rest-nodeauth-2.0.2" = {
+ name = "_at_azure_slash_ms-rest-nodeauth";
+ packageName = "@azure/ms-rest-nodeauth";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@azure/ms-rest-nodeauth/-/ms-rest-nodeauth-2.0.2.tgz";
+ sha512 = "KmNNICOxt3EwViAJI3iu2VH8t8BQg5J2rSAyO4IUYLF9ZwlyYsP419pdvl4NBUhluAP2cgN7dfD2V6E6NOMZlQ==";
+ };
+ };
+ "@icetee/ftp-0.3.15" = {
+ name = "_at_icetee_slash_ftp";
+ packageName = "@icetee/ftp";
+ version = "0.3.15";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@icetee/ftp/-/ftp-0.3.15.tgz";
+ sha512 = "RxSa9VjcDWgWCYsaLdZItdCnJj7p4LxggaEk+Y3MP0dHKoxez8ioG07DVekVbZZqccsrL+oPB/N9AzVPxj4blg==";
+ };
+ };
+ "@nodelib/fs.scandir-2.1.3" = {
+ name = "_at_nodelib_slash_fs.scandir";
+ packageName = "@nodelib/fs.scandir";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
+ sha512 = "eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==";
+ };
+ };
+ "@nodelib/fs.stat-2.0.3" = {
+ name = "_at_nodelib_slash_fs.stat";
+ packageName = "@nodelib/fs.stat";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
+ sha512 = "bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==";
+ };
+ };
+ "@nodelib/fs.walk-1.2.4" = {
+ name = "_at_nodelib_slash_fs.walk";
+ packageName = "@nodelib/fs.walk";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
+ sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
+ };
+ };
+ "@oclif/command-1.8.0" = {
+ name = "_at_oclif_slash_command";
+ packageName = "@oclif/command";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz";
+ sha512 = "5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==";
+ };
+ };
+ "@oclif/config-1.17.0" = {
+ name = "_at_oclif_slash_config";
+ packageName = "@oclif/config";
+ version = "1.17.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@oclif/config/-/config-1.17.0.tgz";
+ sha512 = "Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA==";
+ };
+ };
+ "@oclif/errors-1.3.4" = {
+ name = "_at_oclif_slash_errors";
+ packageName = "@oclif/errors";
+ version = "1.3.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.4.tgz";
+ sha512 = "pJKXyEqwdfRTUdM8n5FIHiQQHg5ETM0Wlso8bF9GodczO40mF5Z3HufnYWJE7z8sGKxOeJCdbAVZbS8Y+d5GCw==";
+ };
+ };
+ "@oclif/linewrap-1.0.0" = {
+ name = "_at_oclif_slash_linewrap";
+ packageName = "@oclif/linewrap";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz";
+ sha512 = "Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==";
+ };
+ };
+ "@oclif/parser-3.8.5" = {
+ name = "_at_oclif_slash_parser";
+ packageName = "@oclif/parser";
+ version = "3.8.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.5.tgz";
+ sha512 = "yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg==";
+ };
+ };
+ "@oclif/plugin-help-3.2.0" = {
+ name = "_at_oclif_slash_plugin-help";
+ packageName = "@oclif/plugin-help";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.0.tgz";
+ sha512 = "7jxtpwVWAVbp1r46ZnTK/uF+FeZc6y4p1XcGaIUuPAp7wx6NJhIRN/iMT9UfNFX/Cz7mq+OyJz+E+i0zrik86g==";
+ };
+ };
+ "@servie/events-1.0.0" = {
+ name = "_at_servie_slash_events";
+ packageName = "@servie/events";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@servie/events/-/events-1.0.0.tgz";
+ sha512 = "sBSO19KzdrJCM3gdx6eIxV8M9Gxfgg6iDQmH5TIAGaUu+X9VDdsINXJOnoiZ1Kx3TrHdH4bt5UVglkjsEGBcvw==";
+ };
+ };
+ "@sqltools/formatter-1.2.2" = {
+ name = "_at_sqltools_slash_formatter";
+ packageName = "@sqltools/formatter";
+ version = "1.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.2.tgz";
+ sha512 = "/5O7Fq6Vnv8L6ucmPjaWbVG1XkP4FO+w5glqfkIsq3Xw4oyNAdJddbnYodNDAfjVUvo/rrSCTom4kAND7T1o5Q==";
+ };
+ };
+ "@tokenizer/token-0.1.1" = {
+ name = "_at_tokenizer_slash_token";
+ packageName = "@tokenizer/token";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz";
+ sha512 = "XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==";
+ };
+ };
+ "@types/bluebird-3.5.33" = {
+ name = "_at_types_slash_bluebird";
+ packageName = "@types/bluebird";
+ version = "3.5.33";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.33.tgz";
+ sha512 = "ndEo1xvnYeHxm7I/5sF6tBvnsA4Tdi3zj1keRKRs12SP+2ye2A27NDJ1B6PqkfMbGAcT+mqQVqbZRIrhfOp5PQ==";
+ };
+ };
+ "@types/body-parser-1.19.0" = {
+ name = "_at_types_slash_body-parser";
+ packageName = "@types/body-parser";
+ version = "1.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz";
+ sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
+ };
+ };
+ "@types/connect-3.4.33" = {
+ name = "_at_types_slash_connect";
+ packageName = "@types/connect";
+ version = "3.4.33";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz";
+ sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==";
+ };
+ };
+ "@types/debug-4.1.5" = {
+ name = "_at_types_slash_debug";
+ packageName = "@types/debug";
+ version = "4.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz";
+ sha512 = "Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==";
+ };
+ };
+ "@types/express-4.17.9" = {
+ name = "_at_types_slash_express";
+ packageName = "@types/express";
+ version = "4.17.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz";
+ sha512 = "SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==";
+ };
+ };
+ "@types/express-jwt-0.0.42" = {
+ name = "_at_types_slash_express-jwt";
+ packageName = "@types/express-jwt";
+ version = "0.0.42";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz";
+ sha512 = "WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag==";
+ };
+ };
+ "@types/express-serve-static-core-4.17.14" = {
+ name = "_at_types_slash_express-serve-static-core";
+ packageName = "@types/express-serve-static-core";
+ version = "4.17.14";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz";
+ sha512 = "uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==";
+ };
+ };
+ "@types/express-unless-0.5.1" = {
+ name = "_at_types_slash_express-unless";
+ packageName = "@types/express-unless";
+ version = "0.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.1.tgz";
+ sha512 = "5fuvg7C69lemNgl0+v+CUxDYWVPSfXHhJPst4yTLcqi4zKJpORCxnDrnnilk3k0DTq/WrAUdvXFs01+vUqUZHw==";
+ };
+ };
+ "@types/ftp-0.3.31" = {
+ name = "_at_types_slash_ftp";
+ packageName = "@types/ftp";
+ version = "0.3.31";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/ftp/-/ftp-0.3.31.tgz";
+ sha512 = "J30a1yD9avBsFahvmGoeumWUZ5YnGRj/7u0aKSa3dGxyaguU+14WkHmVzZYToK7vX0ADfyAXBUQlaQ20PTHhAA==";
+ };
+ };
+ "@types/glob-7.1.3" = {
+ name = "_at_types_slash_glob";
+ packageName = "@types/glob";
+ version = "7.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+ sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
+ };
+ };
+ "@types/jsonwebtoken-8.5.0" = {
+ name = "_at_types_slash_jsonwebtoken";
+ packageName = "@types/jsonwebtoken";
+ version = "8.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.0.tgz";
+ sha512 = "9bVao7LvyorRGZCw0VmH/dr7Og+NdjYSsKAxB43OQoComFbBgsEpoR9JW6+qSq/ogwVBg8GI2MfAlk4SYI4OLg==";
+ };
+ };
+ "@types/mime-2.0.3" = {
+ name = "_at_types_slash_mime";
+ packageName = "@types/mime";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz";
+ sha512 = "Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==";
+ };
+ };
+ "@types/minimatch-3.0.3" = {
+ name = "_at_types_slash_minimatch";
+ packageName = "@types/minimatch";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
+ sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
+ };
+ };
+ "@types/node-12.19.8" = {
+ name = "_at_types_slash_node";
+ packageName = "@types/node";
+ version = "12.19.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz";
+ sha512 = "D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==";
+ };
+ };
+ "@types/node-14.14.10" = {
+ name = "_at_types_slash_node";
+ packageName = "@types/node";
+ version = "14.14.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz";
+ sha512 = "J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==";
+ };
+ };
+ "@types/node-8.10.66" = {
+ name = "_at_types_slash_node";
+ packageName = "@types/node";
+ version = "8.10.66";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz";
+ sha512 = "tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==";
+ };
+ };
+ "@types/promise-ftp-1.3.4" = {
+ name = "_at_types_slash_promise-ftp";
+ packageName = "@types/promise-ftp";
+ version = "1.3.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/promise-ftp/-/promise-ftp-1.3.4.tgz";
+ sha512 = "fCIX7I84e25RX6bZ+qiIv0Puu5axWhCj9+El+4Kz1gZZyO/NvwdGTNQ33y6jdrPuTn3Df3kg7nMi1HohjNQLog==";
+ };
+ };
+ "@types/promise-ftp-common-1.1.0" = {
+ name = "_at_types_slash_promise-ftp-common";
+ packageName = "@types/promise-ftp-common";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/promise-ftp-common/-/promise-ftp-common-1.1.0.tgz";
+ sha512 = "mqo6D4qdiJdzeqlzFwEIchQQZk2hZacjssmjoAX7nClcREmRUUsnmgbWXEfA2qK986rwOPqepfRoSu7rsjAKag==";
+ };
+ };
+ "@types/qs-6.9.5" = {
+ name = "_at_types_slash_qs";
+ packageName = "@types/qs";
+ version = "6.9.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz";
+ sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==";
+ };
+ };
+ "@types/range-parser-1.2.3" = {
+ name = "_at_types_slash_range-parser";
+ packageName = "@types/range-parser";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz";
+ sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
+ };
+ };
+ "@types/readable-stream-2.3.9" = {
+ name = "_at_types_slash_readable-stream";
+ packageName = "@types/readable-stream";
+ version = "2.3.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.9.tgz";
+ sha512 = "sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw==";
+ };
+ };
+ "@types/serve-static-1.13.8" = {
+ name = "_at_types_slash_serve-static";
+ packageName = "@types/serve-static";
+ version = "1.13.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz";
+ sha512 = "MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==";
+ };
+ };
+ "@types/tough-cookie-2.3.7" = {
+ name = "_at_types_slash_tough-cookie";
+ packageName = "@types/tough-cookie";
+ version = "2.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.7.tgz";
+ sha512 = "rMQbgMGxnLsdn8e9aPVyuN+zMQLrZ2QW8xlv7eWS1mydfGXN+tsTKffcIzd8rGCcLdmi3xvQw2MDaZI1bBNTaw==";
+ };
+ };
+ "@types/tunnel-0.0.0" = {
+ name = "_at_types_slash_tunnel";
+ packageName = "@types/tunnel";
+ version = "0.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.0.tgz";
+ sha512 = "FGDp0iBRiBdPjOgjJmn1NH0KDLN+Z8fRmo+9J7XGBhubq1DPrGrbmG4UTlGzrpbCpesMqD0sWkzi27EYkOMHyg==";
+ };
+ };
+ "abbrev-1.1.1" = {
+ name = "abbrev";
+ packageName = "abbrev";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+ sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+ };
+ };
+ "accepts-1.3.7" = {
+ name = "accepts";
+ packageName = "accepts";
+ version = "1.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
+ sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+ };
+ };
+ "access-control-1.0.1" = {
+ name = "access-control";
+ packageName = "access-control";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/access-control/-/access-control-1.0.1.tgz";
+ sha512 = "H5aqjkogmFxfaOrfn/e42vyspHVXuJ8er63KuljJXpOyJ1ZO/U5CrHfO8BLKIy2w7mBM02L5quL0vbfQqrGQbA==";
+ };
+ };
+ "adal-node-0.1.28" = {
+ name = "adal-node";
+ packageName = "adal-node";
+ version = "0.1.28";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/adal-node/-/adal-node-0.1.28.tgz";
+ sha1 = "468c4bb3ebbd96b1270669f4b9cba4e0065ea485";
+ };
+ };
+ "adler-32-1.2.0" = {
+ name = "adler-32";
+ packageName = "adler-32";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz";
+ sha1 = "6a3e6bf0a63900ba15652808cb15c6813d1a5f25";
+ };
+ };
+ "ajv-6.12.6" = {
+ name = "ajv";
+ packageName = "ajv";
+ version = "6.12.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz";
+ sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
+ };
+ };
+ "ansi-escapes-4.3.1" = {
+ name = "ansi-escapes";
+ packageName = "ansi-escapes";
+ version = "4.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
+ sha512 = "JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==";
+ };
+ };
+ "ansi-regex-2.1.1" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ };
+ "ansi-regex-3.0.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ };
+ "ansi-regex-4.1.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+ sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+ };
+ };
+ "ansi-regex-5.0.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+ sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+ };
+ };
+ "ansi-styles-2.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "2.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ };
+ "ansi-styles-3.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "3.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+ };
+ };
+ "ansi-styles-4.3.0" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
+ sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+ };
+ };
+ "ansicolors-0.3.2" = {
+ name = "ansicolors";
+ packageName = "ansicolors";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz";
+ sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979";
+ };
+ };
+ "any-promise-1.3.0" = {
+ name = "any-promise";
+ packageName = "any-promise";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz";
+ sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f";
+ };
+ };
+ "app-root-path-3.0.0" = {
+ name = "app-root-path";
+ packageName = "app-root-path";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz";
+ sha512 = "qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==";
+ };
+ };
+ "aproba-1.2.0" = {
+ name = "aproba";
+ packageName = "aproba";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+ sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+ };
+ };
+ "are-we-there-yet-1.1.5" = {
+ name = "are-we-there-yet";
+ packageName = "are-we-there-yet";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==";
+ };
+ };
+ "argparse-1.0.10" = {
+ name = "argparse";
+ packageName = "argparse";
+ version = "1.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+ sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+ };
+ };
+ "array-flatten-1.1.1" = {
+ name = "array-flatten";
+ packageName = "array-flatten";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ };
+ "array-parallel-0.1.3" = {
+ name = "array-parallel";
+ packageName = "array-parallel";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz";
+ sha1 = "8f785308926ed5aa478c47e64d1b334b6c0c947d";
+ };
+ };
+ "array-series-0.1.5" = {
+ name = "array-series";
+ packageName = "array-series";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz";
+ sha1 = "df5d37bfc5c2ef0755e2aa4f92feae7d4b5a972f";
+ };
+ };
+ "array-union-2.1.0" = {
+ name = "array-union";
+ packageName = "array-union";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
+ sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
+ };
+ };
+ "asn1-0.2.4" = {
+ name = "asn1";
+ packageName = "asn1";
+ version = "0.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
+ sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+ };
+ };
+ "assert-options-0.6.2" = {
+ name = "assert-options";
+ packageName = "assert-options";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-options/-/assert-options-0.6.2.tgz";
+ sha512 = "KP9S549XptFAPGYmLRnIjQBL4/Ry8Jx5YNLQZ/l+eejqbTidBMnw4uZSAsUrzBq/lgyqDYqxcTF7cOxZb9gyEw==";
+ };
+ };
+ "assert-plus-1.0.0" = {
+ name = "assert-plus";
+ packageName = "assert-plus";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ };
+ "async-3.2.0" = {
+ name = "async";
+ packageName = "async";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+ sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
+ };
+ };
+ "asynckit-0.4.0" = {
+ name = "asynckit";
+ packageName = "asynckit";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ };
+ "aws-sign2-0.7.0" = {
+ name = "aws-sign2";
+ packageName = "aws-sign2";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ };
+ "aws4-1.11.0" = {
+ name = "aws4";
+ packageName = "aws4";
+ version = "1.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz";
+ sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==";
+ };
+ };
+ "axios-0.19.0" = {
+ name = "axios";
+ packageName = "axios";
+ version = "0.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz";
+ sha512 = "1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==";
+ };
+ };
+ "axios-0.19.2" = {
+ name = "axios";
+ packageName = "axios";
+ version = "0.19.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz";
+ sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==";
+ };
+ };
+ "balanced-match-1.0.0" = {
+ name = "balanced-match";
+ packageName = "balanced-match";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ };
+ "base64-js-1.5.1" = {
+ name = "base64-js";
+ packageName = "base64-js";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
+ sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
+ };
+ };
+ "basic-auth-2.0.1" = {
+ name = "basic-auth";
+ packageName = "basic-auth";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz";
+ sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
+ };
+ };
+ "bcrypt-pbkdf-1.0.2" = {
+ name = "bcrypt-pbkdf";
+ packageName = "bcrypt-pbkdf";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ };
+ "bcryptjs-2.4.3" = {
+ name = "bcryptjs";
+ packageName = "bcryptjs";
+ version = "2.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz";
+ sha1 = "9ab5627b93e60621ff7cdac5da9733027df1d0cb";
+ };
+ };
+ "bl-2.2.1" = {
+ name = "bl";
+ packageName = "bl";
+ version = "2.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz";
+ sha512 = "6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==";
+ };
+ };
+ "bl-3.0.1" = {
+ name = "bl";
+ packageName = "bl";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bl/-/bl-3.0.1.tgz";
+ sha512 = "jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==";
+ };
+ };
+ "bl-4.0.3" = {
+ name = "bl";
+ packageName = "bl";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz";
+ sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==";
+ };
+ };
+ "bluebird-2.11.0" = {
+ name = "bluebird";
+ packageName = "bluebird";
+ version = "2.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz";
+ sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
+ };
+ };
+ "body-parser-1.19.0" = {
+ name = "body-parser";
+ packageName = "body-parser";
+ version = "1.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
+ sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+ };
+ };
+ "body-parser-xml-1.1.0" = {
+ name = "body-parser-xml";
+ packageName = "body-parser-xml";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/body-parser-xml/-/body-parser-xml-1.1.0.tgz";
+ sha1 = "7b56bef1cd7d266c13602b4c1daf4f511d26447c";
+ };
+ };
+ "boolbase-1.0.0" = {
+ name = "boolbase";
+ packageName = "boolbase";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz";
+ sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+ };
+ };
+ "brace-expansion-1.1.11" = {
+ name = "brace-expansion";
+ packageName = "brace-expansion";
+ version = "1.1.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+ };
+ };
+ "braces-3.0.2" = {
+ name = "braces";
+ packageName = "braces";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+ sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+ };
+ };
+ "bson-1.1.5" = {
+ name = "bson";
+ packageName = "bson";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bson/-/bson-1.1.5.tgz";
+ sha512 = "kDuEzldR21lHciPQAIulLs1LZlCXdLziXI6Mb/TDkwXhb//UORJNPXgcRs2CuO4H0DcMkpfT3/ySsP3unoZjBg==";
+ };
+ };
+ "buffer-5.7.1" = {
+ name = "buffer";
+ packageName = "buffer";
+ version = "5.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz";
+ sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
+ };
+ };
+ "buffer-equal-constant-time-1.0.1" = {
+ name = "buffer-equal-constant-time";
+ packageName = "buffer-equal-constant-time";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz";
+ sha1 = "f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819";
+ };
+ };
+ "buffer-from-1.1.1" = {
+ name = "buffer-from";
+ packageName = "buffer-from";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
+ sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
+ };
+ };
+ "buffer-writer-2.0.0" = {
+ name = "buffer-writer";
+ packageName = "buffer-writer";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
+ sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
+ };
+ };
+ "byte-length-1.0.2" = {
+ name = "byte-length";
+ packageName = "byte-length";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/byte-length/-/byte-length-1.0.2.tgz";
+ sha512 = "ovBpjmsgd/teRmgcPh23d4gJvxDoXtAzEL9xTfMU8Yc2kqCDb7L9jAG0XHl1nzuGl+h3ebCIF1i62UFyA9V/2Q==";
+ };
+ };
+ "bytes-3.0.0" = {
+ name = "bytes";
+ packageName = "bytes";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+ };
+ };
+ "bytes-3.1.0" = {
+ name = "bytes";
+ packageName = "bytes";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
+ sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+ };
+ };
+ "callback-stream-1.1.0" = {
+ name = "callback-stream";
+ packageName = "callback-stream";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz";
+ sha1 = "4701a51266f06e06eaa71fc17233822d875f4908";
+ };
+ };
+ "camel-case-4.1.2" = {
+ name = "camel-case";
+ packageName = "camel-case";
+ version = "4.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz";
+ sha512 = "gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==";
+ };
+ };
+ "camelcase-5.3.1" = {
+ name = "camelcase";
+ packageName = "camelcase";
+ version = "5.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+ sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+ };
+ };
+ "capital-case-1.0.4" = {
+ name = "capital-case";
+ packageName = "capital-case";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz";
+ sha512 = "ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==";
+ };
+ };
+ "cardinal-2.1.1" = {
+ name = "cardinal";
+ packageName = "cardinal";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz";
+ sha1 = "7cc1055d822d212954d07b085dea251cc7bc5505";
+ };
+ };
+ "caseless-0.12.0" = {
+ name = "caseless";
+ packageName = "caseless";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ };
+ "cfb-1.2.0" = {
+ name = "cfb";
+ packageName = "cfb";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz";
+ sha512 = "sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==";
+ };
+ };
+ "chalk-1.1.3" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ };
+ "chalk-2.4.2" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "2.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+ sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+ };
+ };
+ "chalk-4.1.0" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+ sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+ };
+ };
+ "change-case-4.1.2" = {
+ name = "change-case";
+ packageName = "change-case";
+ version = "4.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz";
+ sha512 = "bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==";
+ };
+ };
+ "chardet-0.7.0" = {
+ name = "chardet";
+ packageName = "chardet";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz";
+ sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==";
+ };
+ };
+ "cheerio-1.0.0-rc.3" = {
+ name = "cheerio";
+ packageName = "cheerio";
+ version = "1.0.0-rc.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz";
+ sha512 = "0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==";
+ };
+ };
+ "chownr-1.1.4" = {
+ name = "chownr";
+ packageName = "chownr";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
+ sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+ };
+ };
+ "clean-stack-3.0.1" = {
+ name = "clean-stack";
+ packageName = "clean-stack";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz";
+ sha512 = "lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==";
+ };
+ };
+ "cli-cursor-3.1.0" = {
+ name = "cli-cursor";
+ packageName = "cli-cursor";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz";
+ sha512 = "I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==";
+ };
+ };
+ "cli-highlight-2.1.9" = {
+ name = "cli-highlight";
+ packageName = "cli-highlight";
+ version = "2.1.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.9.tgz";
+ sha512 = "t8RNIZgiI24i/mslZ8XT8o660RUj5ZbUJpEZrZa/BNekTzdC2LfMRAnt0Y7sgzNM4FGW5tmWg/YnbTH8o1eIOQ==";
+ };
+ };
+ "cli-width-3.0.0" = {
+ name = "cli-width";
+ packageName = "cli-width";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz";
+ sha512 = "FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==";
+ };
+ };
+ "client-oauth2-4.3.3" = {
+ name = "client-oauth2";
+ packageName = "client-oauth2";
+ version = "4.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/client-oauth2/-/client-oauth2-4.3.3.tgz";
+ sha512 = "k8AvUYJon0vv75ufoVo4nALYb/qwFFicO3I0+39C6xEdflqVtr+f9cy+0ZxAduoVSTfhP5DX2tY2XICAd5hy6Q==";
+ };
+ };
+ "cliui-5.0.0" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
+ sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
+ };
+ };
+ "cliui-6.0.0" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
+ sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+ };
+ };
+ "cliui-7.0.4" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "7.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz";
+ sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==";
+ };
+ };
+ "code-point-at-1.1.0" = {
+ name = "code-point-at";
+ packageName = "code-point-at";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ };
+ "codepage-1.14.0" = {
+ name = "codepage";
+ packageName = "codepage";
+ version = "1.14.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz";
+ sha1 = "8cbe25481323559d7d307571b0fff91e7a1d2f99";
+ };
+ };
+ "color-3.0.0" = {
+ name = "color";
+ packageName = "color";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz";
+ sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==";
+ };
+ };
+ "color-convert-1.9.3" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "1.9.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+ sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+ };
+ };
+ "color-convert-2.0.1" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+ sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+ };
+ };
+ "color-name-1.1.3" = {
+ name = "color-name";
+ packageName = "color-name";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ };
+ "color-name-1.1.4" = {
+ name = "color-name";
+ packageName = "color-name";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+ sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+ };
+ };
+ "color-string-1.5.4" = {
+ name = "color-string";
+ packageName = "color-string";
+ version = "1.5.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz";
+ sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==";
+ };
+ };
+ "colornames-1.1.1" = {
+ name = "colornames";
+ packageName = "colornames";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz";
+ sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
+ };
+ };
+ "colorspace-1.1.2" = {
+ name = "colorspace";
+ packageName = "colorspace";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz";
+ sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==";
+ };
+ };
+ "combined-stream-1.0.8" = {
+ name = "combined-stream";
+ packageName = "combined-stream";
+ version = "1.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+ sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+ };
+ };
+ "commander-2.14.1" = {
+ name = "commander";
+ packageName = "commander";
+ version = "2.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz";
+ sha512 = "+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==";
+ };
+ };
+ "commander-2.17.1" = {
+ name = "commander";
+ packageName = "commander";
+ version = "2.17.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz";
+ sha512 = "wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==";
+ };
+ };
+ "commist-1.1.0" = {
+ name = "commist";
+ packageName = "commist";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz";
+ sha512 = "rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==";
+ };
+ };
+ "compressible-2.0.18" = {
+ name = "compressible";
+ packageName = "compressible";
+ version = "2.0.18";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz";
+ sha512 = "AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==";
+ };
+ };
+ "compression-1.7.4" = {
+ name = "compression";
+ packageName = "compression";
+ version = "1.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz";
+ sha512 = "jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==";
+ };
+ };
+ "concat-map-0.0.1" = {
+ name = "concat-map";
+ packageName = "concat-map";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ };
+ "concat-stream-1.6.2" = {
+ name = "concat-stream";
+ packageName = "concat-stream";
+ version = "1.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
+ sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
+ };
+ };
+ "concat-stream-2.0.0" = {
+ name = "concat-stream";
+ packageName = "concat-stream";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz";
+ sha512 = "MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==";
+ };
+ };
+ "connect-history-api-fallback-1.6.0" = {
+ name = "connect-history-api-fallback";
+ packageName = "connect-history-api-fallback";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
+ sha512 = "e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==";
+ };
+ };
+ "console-control-strings-1.1.0" = {
+ name = "console-control-strings";
+ packageName = "console-control-strings";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ };
+ "constant-case-3.0.4" = {
+ name = "constant-case";
+ packageName = "constant-case";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz";
+ sha512 = "I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==";
+ };
+ };
+ "content-disposition-0.5.3" = {
+ name = "content-disposition";
+ packageName = "content-disposition";
+ version = "0.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
+ sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+ };
+ };
+ "content-type-1.0.4" = {
+ name = "content-type";
+ packageName = "content-type";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+ sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
+ };
+ };
+ "convict-5.2.0" = {
+ name = "convict";
+ packageName = "convict";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/convict/-/convict-5.2.0.tgz";
+ sha512 = "C3cdUwo47cCikZNzu5Vv8AL0MuXVVeg9t/Gyr9qyK5ZpCjOkMPmJ85KUF3CowNeSfj4UtztHxS+hoO9wGRh6kg==";
+ };
+ };
+ "cookie-0.4.0" = {
+ name = "cookie";
+ packageName = "cookie";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
+ sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+ };
+ };
+ "cookie-signature-1.0.6" = {
+ name = "cookie-signature";
+ packageName = "cookie-signature";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ };
+ "core-util-is-1.0.2" = {
+ name = "core-util-is";
+ packageName = "core-util-is";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ };
+ "crc-32-1.2.0" = {
+ name = "crc-32";
+ packageName = "crc-32";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz";
+ sha512 = "1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==";
+ };
+ };
+ "cron-1.8.2" = {
+ name = "cron";
+ packageName = "cron";
+ version = "1.8.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz";
+ sha512 = "Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==";
+ };
+ };
+ "cross-spawn-4.0.2" = {
+ name = "cross-spawn";
+ packageName = "cross-spawn";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz";
+ sha1 = "7b9247621c23adfdd3856004a823cbe397424d41";
+ };
+ };
+ "crypto-js-4.0.0" = {
+ name = "crypto-js";
+ packageName = "crypto-js";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz";
+ sha512 = "bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==";
+ };
+ };
+ "csrf-3.1.0" = {
+ name = "csrf";
+ packageName = "csrf";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz";
+ sha512 = "uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==";
+ };
+ };
+ "css-select-1.2.0" = {
+ name = "css-select";
+ packageName = "css-select";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz";
+ sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858";
+ };
+ };
+ "css-what-2.1.3" = {
+ name = "css-what";
+ packageName = "css-what";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz";
+ sha512 = "a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==";
+ };
+ };
+ "d-1.0.1" = {
+ name = "d";
+ packageName = "d";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
+ sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
+ };
+ };
+ "dashdash-1.14.1" = {
+ name = "dashdash";
+ packageName = "dashdash";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ };
+ "date-utils-1.2.21" = {
+ name = "date-utils";
+ packageName = "date-utils";
+ version = "1.2.21";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz";
+ sha1 = "61fb16cdc1274b3c9acaaffe9fc69df8720a2b64";
+ };
+ };
+ "debug-2.6.9" = {
+ name = "debug";
+ packageName = "debug";
+ version = "2.6.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+ sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+ };
+ };
+ "debug-3.1.0" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
+ sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
+ };
+ };
+ "debug-3.2.7" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz";
+ sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==";
+ };
+ };
+ "debug-4.1.1" = {
+ name = "debug";
+ packageName = "debug";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
+ sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+ };
+ };
+ "debug-4.3.1" = {
+ name = "debug";
+ packageName = "debug";
+ version = "4.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz";
+ sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==";
+ };
+ };
+ "decamelize-1.2.0" = {
+ name = "decamelize";
+ packageName = "decamelize";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ };
+ "deep-extend-0.6.0" = {
+ name = "deep-extend";
+ packageName = "deep-extend";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+ };
+ };
+ "delayed-stream-1.0.0" = {
+ name = "delayed-stream";
+ packageName = "delayed-stream";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ };
+ "delegates-1.0.0" = {
+ name = "delegates";
+ packageName = "delegates";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ };
+ "denque-1.4.1" = {
+ name = "denque";
+ packageName = "denque";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz";
+ sha512 = "OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==";
+ };
+ };
+ "depd-1.1.2" = {
+ name = "depd";
+ packageName = "depd";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ };
+ "depd-2.0.0" = {
+ name = "depd";
+ packageName = "depd";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
+ sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
+ };
+ };
+ "destroy-1.0.4" = {
+ name = "destroy";
+ packageName = "destroy";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ };
+ "detect-libc-1.0.3" = {
+ name = "detect-libc";
+ packageName = "detect-libc";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ };
+ "diagnostics-1.1.1" = {
+ name = "diagnostics";
+ packageName = "diagnostics";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz";
+ sha512 = "8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==";
+ };
+ };
+ "dir-glob-3.0.1" = {
+ name = "dir-glob";
+ packageName = "dir-glob";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
+ sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
+ };
+ };
+ "dom-serializer-0.1.1" = {
+ name = "dom-serializer";
+ packageName = "dom-serializer";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz";
+ sha512 = "l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==";
+ };
+ };
+ "domelementtype-1.3.1" = {
+ name = "domelementtype";
+ packageName = "domelementtype";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz";
+ sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
+ };
+ };
+ "domhandler-2.4.2" = {
+ name = "domhandler";
+ packageName = "domhandler";
+ version = "2.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz";
+ sha512 = "JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==";
+ };
+ };
+ "domutils-1.5.1" = {
+ name = "domutils";
+ packageName = "domutils";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz";
+ sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
+ };
+ };
+ "dot-case-3.0.4" = {
+ name = "dot-case";
+ packageName = "dot-case";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz";
+ sha512 = "Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==";
+ };
+ };
+ "dotenv-8.2.0" = {
+ name = "dotenv";
+ packageName = "dotenv";
+ version = "8.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz";
+ sha512 = "8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==";
+ };
+ };
+ "double-ended-queue-2.1.0-0" = {
+ name = "double-ended-queue";
+ packageName = "double-ended-queue";
+ version = "2.1.0-0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz";
+ sha1 = "103d3527fd31528f40188130c841efdd78264e5c";
+ };
+ };
+ "duplexify-3.7.1" = {
+ name = "duplexify";
+ packageName = "duplexify";
+ version = "3.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz";
+ sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==";
+ };
+ };
+ "ecc-jsbn-0.1.2" = {
+ name = "ecc-jsbn";
+ packageName = "ecc-jsbn";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ };
+ "ecdsa-sig-formatter-1.0.11" = {
+ name = "ecdsa-sig-formatter";
+ packageName = "ecdsa-sig-formatter";
+ version = "1.0.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz";
+ sha512 = "nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==";
+ };
+ };
+ "ee-first-1.1.1" = {
+ name = "ee-first";
+ packageName = "ee-first";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ };
+ "emoji-regex-7.0.3" = {
+ name = "emoji-regex";
+ packageName = "emoji-regex";
+ version = "7.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+ sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+ };
+ };
+ "emoji-regex-8.0.0" = {
+ name = "emoji-regex";
+ packageName = "emoji-regex";
+ version = "8.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+ sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+ };
+ };
+ "enabled-1.0.2" = {
+ name = "enabled";
+ packageName = "enabled";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz";
+ sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
+ };
+ };
+ "encodeurl-1.0.2" = {
+ name = "encodeurl";
+ packageName = "encodeurl";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ };
+ "encoding-japanese-1.0.30" = {
+ name = "encoding-japanese";
+ packageName = "encoding-japanese";
+ version = "1.0.30";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-1.0.30.tgz";
+ sha512 = "bd/DFLAoJetvv7ar/KIpE3CNO8wEuyrt9Xuw6nSMiZ+Vrz/Q21BPsMHvARL2Wz6IKHKXgb+DWZqtRg1vql9cBg==";
+ };
+ };
+ "end-of-stream-1.4.4" = {
+ name = "end-of-stream";
+ packageName = "end-of-stream";
+ version = "1.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+ sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+ };
+ };
+ "entities-1.1.2" = {
+ name = "entities";
+ packageName = "entities";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz";
+ sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
+ };
+ };
+ "entities-2.1.0" = {
+ name = "entities";
+ packageName = "entities";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz";
+ sha512 = "hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==";
+ };
+ };
+ "env-variable-0.0.6" = {
+ name = "env-variable";
+ packageName = "env-variable";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz";
+ sha512 = "bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==";
+ };
+ };
+ "es5-ext-0.10.53" = {
+ name = "es5-ext";
+ packageName = "es5-ext";
+ version = "0.10.53";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz";
+ sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==";
+ };
+ };
+ "es6-iterator-2.0.3" = {
+ name = "es6-iterator";
+ packageName = "es6-iterator";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz";
+ sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+ };
+ };
+ "es6-map-0.1.5" = {
+ name = "es6-map";
+ packageName = "es6-map";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz";
+ sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
+ };
+ };
+ "es6-set-0.1.5" = {
+ name = "es6-set";
+ packageName = "es6-set";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz";
+ sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
+ };
+ };
+ "es6-symbol-3.1.1" = {
+ name = "es6-symbol";
+ packageName = "es6-symbol";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz";
+ sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
+ };
+ };
+ "es6-symbol-3.1.3" = {
+ name = "es6-symbol";
+ packageName = "es6-symbol";
+ version = "3.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz";
+ sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==";
+ };
+ };
+ "escalade-3.1.1" = {
+ name = "escalade";
+ packageName = "escalade";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz";
+ sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==";
+ };
+ };
+ "escape-html-1.0.3" = {
+ name = "escape-html";
+ packageName = "escape-html";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ };
+ "escape-string-regexp-1.0.5" = {
+ name = "escape-string-regexp";
+ packageName = "escape-string-regexp";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ };
+ "escape-string-regexp-4.0.0" = {
+ name = "escape-string-regexp";
+ packageName = "escape-string-regexp";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+ sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+ };
+ };
+ "eslint-config-riot-1.0.0" = {
+ name = "eslint-config-riot";
+ packageName = "eslint-config-riot";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/eslint-config-riot/-/eslint-config-riot-1.0.0.tgz";
+ sha1 = "fbd65386980b30fbcd0e1305d4c3fb8614ef2119";
+ };
+ };
+ "esprima-4.0.1" = {
+ name = "esprima";
+ packageName = "esprima";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+ sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+ };
+ };
+ "etag-1.8.1" = {
+ name = "etag";
+ packageName = "etag";
+ version = "1.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ };
+ "event-emitter-0.3.5" = {
+ name = "event-emitter";
+ packageName = "event-emitter";
+ version = "0.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz";
+ sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
+ };
+ };
+ "eventsource-1.0.7" = {
+ name = "eventsource";
+ packageName = "eventsource";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz";
+ sha512 = "4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==";
+ };
+ };
+ "exit-on-epipe-1.0.1" = {
+ name = "exit-on-epipe";
+ packageName = "exit-on-epipe";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz";
+ sha512 = "h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==";
+ };
+ };
+ "express-4.17.1" = {
+ name = "express";
+ packageName = "express";
+ version = "4.17.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
+ sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+ };
+ };
+ "ext-1.4.0" = {
+ name = "ext";
+ packageName = "ext";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
+ sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==";
+ };
+ };
+ "extend-3.0.2" = {
+ name = "extend";
+ packageName = "extend";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+ sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+ };
+ };
+ "external-editor-3.1.0" = {
+ name = "external-editor";
+ packageName = "external-editor";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz";
+ sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==";
+ };
+ };
+ "extsprintf-1.3.0" = {
+ name = "extsprintf";
+ packageName = "extsprintf";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ };
+ "fast-deep-equal-3.1.3" = {
+ name = "fast-deep-equal";
+ packageName = "fast-deep-equal";
+ version = "3.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+ sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
+ };
+ };
+ "fast-glob-3.2.4" = {
+ name = "fast-glob";
+ packageName = "fast-glob";
+ version = "3.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
+ sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
+ };
+ };
+ "fast-json-stable-stringify-2.1.0" = {
+ name = "fast-json-stable-stringify";
+ packageName = "fast-json-stable-stringify";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+ sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+ };
+ };
+ "fastq-1.9.0" = {
+ name = "fastq";
+ packageName = "fastq";
+ version = "1.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz";
+ sha512 = "i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==";
+ };
+ };
+ "fflate-0.3.11" = {
+ name = "fflate";
+ packageName = "fflate";
+ version = "0.3.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz";
+ sha512 = "Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A==";
+ };
+ };
+ "figlet-1.5.0" = {
+ name = "figlet";
+ packageName = "figlet";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/figlet/-/figlet-1.5.0.tgz";
+ sha512 = "ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww==";
+ };
+ };
+ "figures-3.2.0" = {
+ name = "figures";
+ packageName = "figures";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz";
+ sha512 = "yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==";
+ };
+ };
+ "file-type-14.7.1" = {
+ name = "file-type";
+ packageName = "file-type";
+ version = "14.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-type/-/file-type-14.7.1.tgz";
+ sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==";
+ };
+ };
+ "fill-range-7.0.1" = {
+ name = "fill-range";
+ packageName = "fill-range";
+ version = "7.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+ sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+ };
+ };
+ "finalhandler-1.1.2" = {
+ name = "finalhandler";
+ packageName = "finalhandler";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+ sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+ };
+ };
+ "find-up-3.0.0" = {
+ name = "find-up";
+ packageName = "find-up";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+ sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+ };
+ };
+ "find-up-4.1.0" = {
+ name = "find-up";
+ packageName = "find-up";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
+ sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+ };
+ };
+ "flatted-2.0.2" = {
+ name = "flatted";
+ packageName = "flatted";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz";
+ sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==";
+ };
+ };
+ "follow-redirects-1.5.10" = {
+ name = "follow-redirects";
+ packageName = "follow-redirects";
+ version = "1.5.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
+ sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==";
+ };
+ };
+ "forever-agent-0.6.1" = {
+ name = "forever-agent";
+ packageName = "forever-agent";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ };
+ "form-data-2.3.3" = {
+ name = "form-data";
+ packageName = "form-data";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
+ sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
+ };
+ };
+ "formidable-1.2.2" = {
+ name = "formidable";
+ packageName = "formidable";
+ version = "1.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz";
+ sha512 = "V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==";
+ };
+ };
+ "forwarded-0.1.2" = {
+ name = "forwarded";
+ packageName = "forwarded";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ };
+ "frac-1.1.2" = {
+ name = "frac";
+ packageName = "frac";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz";
+ sha512 = "w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==";
+ };
+ };
+ "fresh-0.5.2" = {
+ name = "fresh";
+ packageName = "fresh";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ };
+ "fs-extra-8.1.0" = {
+ name = "fs-extra";
+ packageName = "fs-extra";
+ version = "8.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
+ sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
+ };
+ };
+ "fs-minipass-1.2.7" = {
+ name = "fs-minipass";
+ packageName = "fs-minipass";
+ version = "1.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
+ sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
+ };
+ };
+ "fs.realpath-1.0.0" = {
+ name = "fs.realpath";
+ packageName = "fs.realpath";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ };
+ "gauge-2.7.4" = {
+ name = "gauge";
+ packageName = "gauge";
+ version = "2.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ };
+ "generate-function-2.3.1" = {
+ name = "generate-function";
+ packageName = "generate-function";
+ version = "2.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz";
+ sha512 = "eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==";
+ };
+ };
+ "get-caller-file-2.0.5" = {
+ name = "get-caller-file";
+ packageName = "get-caller-file";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+ sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+ };
+ };
+ "get-system-fonts-2.0.2" = {
+ name = "get-system-fonts";
+ packageName = "get-system-fonts";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-system-fonts/-/get-system-fonts-2.0.2.tgz";
+ sha512 = "zzlgaYnHMIEgHRrfC7x0Qp0Ylhw/sHpM6MHXeVBTYIsvGf5GpbnClB+Q6rAPdn+0gd2oZZIo6Tj3EaWrt4VhDQ==";
+ };
+ };
+ "getpass-0.1.7" = {
+ name = "getpass";
+ packageName = "getpass";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ };
+ "glob-7.1.6" = {
+ name = "glob";
+ packageName = "glob";
+ version = "7.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+ sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+ };
+ };
+ "glob-parent-3.1.0" = {
+ name = "glob-parent";
+ packageName = "glob-parent";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
+ sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+ };
+ };
+ "glob-parent-5.1.1" = {
+ name = "glob-parent";
+ packageName = "glob-parent";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
+ sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+ };
+ };
+ "glob-promise-3.4.0" = {
+ name = "glob-promise";
+ packageName = "glob-promise";
+ version = "3.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz";
+ sha512 = "q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==";
+ };
+ };
+ "glob-stream-6.1.0" = {
+ name = "glob-stream";
+ packageName = "glob-stream";
+ version = "6.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz";
+ sha1 = "7045c99413b3eb94888d83ab46d0b404cc7bdde4";
+ };
+ };
+ "globby-11.0.1" = {
+ name = "globby";
+ packageName = "globby";
+ version = "11.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz";
+ sha512 = "iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==";
+ };
+ };
+ "gm-1.23.1" = {
+ name = "gm";
+ packageName = "gm";
+ version = "1.23.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/gm/-/gm-1.23.1.tgz";
+ sha1 = "2edeeb958084d0f8ea7988e5d995b1c7dfc14777";
+ };
+ };
+ "google-timezones-json-1.0.2" = {
+ name = "google-timezones-json";
+ packageName = "google-timezones-json";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/google-timezones-json/-/google-timezones-json-1.0.2.tgz";
+ sha512 = "UWXQ7BpSCW8erDespU2I4cri22xsKgwOCyhsJal0OJhi2tFpwJpsYNJt4vCiFPL1p2HzCGiS713LKpNR25n9Kg==";
+ };
+ };
+ "graceful-fs-4.2.4" = {
+ name = "graceful-fs";
+ packageName = "graceful-fs";
+ version = "4.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+ sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
+ };
+ };
+ "har-schema-2.0.0" = {
+ name = "har-schema";
+ packageName = "har-schema";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ };
+ "har-validator-5.1.5" = {
+ name = "har-validator";
+ packageName = "har-validator";
+ version = "5.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+ sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
+ };
+ };
+ "has-ansi-2.0.0" = {
+ name = "has-ansi";
+ packageName = "has-ansi";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ };
+ "has-flag-3.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ };
+ "has-flag-4.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+ sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+ };
+ };
+ "has-unicode-2.0.1" = {
+ name = "has-unicode";
+ packageName = "has-unicode";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ };
+ "he-1.2.0" = {
+ name = "he";
+ packageName = "he";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+ sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+ };
+ };
+ "header-case-2.0.4" = {
+ name = "header-case";
+ packageName = "header-case";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz";
+ sha512 = "H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==";
+ };
+ };
+ "help-me-1.1.0" = {
+ name = "help-me";
+ packageName = "help-me";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz";
+ sha1 = "8f2d508d0600b4a456da2f086556e7e5c056a3c6";
+ };
+ };
+ "highlight.js-10.4.1" = {
+ name = "highlight.js";
+ packageName = "highlight.js";
+ version = "10.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz";
+ sha512 = "yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg==";
+ };
+ };
+ "html-to-text-5.1.1" = {
+ name = "html-to-text";
+ packageName = "html-to-text";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/html-to-text/-/html-to-text-5.1.1.tgz";
+ sha512 = "Bci6bD/JIfZSvG4s0gW/9mMKwBRoe/1RWLxUME/d6WUSZCdY7T60bssf/jFf7EYXRyqU4P5xdClVqiYU0/ypdA==";
+ };
+ };
+ "htmlparser2-3.10.1" = {
+ name = "htmlparser2";
+ packageName = "htmlparser2";
+ version = "3.10.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz";
+ sha512 = "IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==";
+ };
+ };
+ "http-errors-1.7.2" = {
+ name = "http-errors";
+ packageName = "http-errors";
+ version = "1.7.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
+ sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
+ };
+ };
+ "http-signature-1.2.0" = {
+ name = "http-signature";
+ packageName = "http-signature";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ };
+ "iconv-lite-0.4.24" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.4.24";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+ };
+ };
+ "iconv-lite-0.5.0" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz";
+ sha512 = "NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==";
+ };
+ };
+ "iconv-lite-0.5.2" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz";
+ sha512 = "kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==";
+ };
+ };
+ "iconv-lite-0.6.2" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz";
+ sha512 = "2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==";
+ };
+ };
+ "ieee754-1.2.1" = {
+ name = "ieee754";
+ packageName = "ieee754";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
+ sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
+ };
+ };
+ "ignore-5.1.8" = {
+ name = "ignore";
+ packageName = "ignore";
+ version = "5.1.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+ sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+ };
+ };
+ "ignore-walk-3.0.3" = {
+ name = "ignore-walk";
+ packageName = "ignore-walk";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
+ sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
+ };
+ };
+ "imap-0.8.19" = {
+ name = "imap";
+ packageName = "imap";
+ version = "0.8.19";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz";
+ sha1 = "3678873934ab09cea6ba48741f284da2af59d8d5";
+ };
+ };
+ "imap-simple-4.3.0" = {
+ name = "imap-simple";
+ packageName = "imap-simple";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/imap-simple/-/imap-simple-4.3.0.tgz";
+ sha512 = "SW3LtfEJFjlJKS/h2CmpX2IKpya2RXobR3ENJJW4iMQ3QYPxWxf5oeaz1K3P4eGUwfGEndkqt7uVDKnEyG9zeQ==";
+ };
+ };
+ "indent-string-4.0.0" = {
+ name = "indent-string";
+ packageName = "indent-string";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz";
+ sha512 = "EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==";
+ };
+ };
+ "inflight-1.0.6" = {
+ name = "inflight";
+ packageName = "inflight";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ };
+ "inherits-2.0.3" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ };
+ "inherits-2.0.4" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+ sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+ };
+ };
+ "ini-1.3.5" = {
+ name = "ini";
+ packageName = "ini";
+ version = "1.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
+ sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+ };
+ };
+ "inquirer-7.3.3" = {
+ name = "inquirer";
+ packageName = "inquirer";
+ version = "7.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz";
+ sha512 = "JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==";
+ };
+ };
+ "ip-regex-2.1.0" = {
+ name = "ip-regex";
+ packageName = "ip-regex";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz";
+ sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+ };
+ };
+ "ipaddr.js-1.9.1" = {
+ name = "ipaddr.js";
+ packageName = "ipaddr.js";
+ version = "1.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+ sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
+ };
+ };
+ "is-absolute-1.0.0" = {
+ name = "is-absolute";
+ packageName = "is-absolute";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz";
+ sha512 = "dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==";
+ };
+ };
+ "is-arrayish-0.3.2" = {
+ name = "is-arrayish";
+ packageName = "is-arrayish";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
+ sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
+ };
+ };
+ "is-buffer-2.0.5" = {
+ name = "is-buffer";
+ packageName = "is-buffer";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz";
+ sha512 = "i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==";
+ };
+ };
+ "is-docker-2.1.1" = {
+ name = "is-docker";
+ packageName = "is-docker";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz";
+ sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==";
+ };
+ };
+ "is-extglob-2.1.1" = {
+ name = "is-extglob";
+ packageName = "is-extglob";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ };
+ "is-fullwidth-code-point-1.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ };
+ "is-fullwidth-code-point-2.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ };
+ "is-fullwidth-code-point-3.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+ sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+ };
+ };
+ "is-glob-3.1.0" = {
+ name = "is-glob";
+ packageName = "is-glob";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
+ sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+ };
+ };
+ "is-glob-4.0.1" = {
+ name = "is-glob";
+ packageName = "is-glob";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+ sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+ };
+ };
+ "is-negated-glob-1.0.0" = {
+ name = "is-negated-glob";
+ packageName = "is-negated-glob";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz";
+ sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2";
+ };
+ };
+ "is-number-7.0.0" = {
+ name = "is-number";
+ packageName = "is-number";
+ version = "7.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+ sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+ };
+ };
+ "is-promise-1.0.1" = {
+ name = "is-promise";
+ packageName = "is-promise";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz";
+ sha1 = "31573761c057e33c2e91aab9e96da08cefbe76e5";
+ };
+ };
+ "is-property-1.0.2" = {
+ name = "is-property";
+ packageName = "is-property";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz";
+ sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
+ };
+ };
+ "is-relative-1.0.0" = {
+ name = "is-relative";
+ packageName = "is-relative";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz";
+ sha512 = "Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==";
+ };
+ };
+ "is-typedarray-1.0.0" = {
+ name = "is-typedarray";
+ packageName = "is-typedarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ };
+ "is-unc-path-1.0.0" = {
+ name = "is-unc-path";
+ packageName = "is-unc-path";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz";
+ sha512 = "mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==";
+ };
+ };
+ "is-windows-1.0.2" = {
+ name = "is-windows";
+ packageName = "is-windows";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
+ sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
+ };
+ };
+ "is-wsl-2.2.0" = {
+ name = "is-wsl";
+ packageName = "is-wsl";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz";
+ sha512 = "fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==";
+ };
+ };
+ "isarray-0.0.1" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ };
+ "isarray-1.0.0" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ };
+ "isexe-2.0.0" = {
+ name = "isexe";
+ packageName = "isexe";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ };
+ "iso-639-1-2.1.4" = {
+ name = "iso-639-1";
+ packageName = "iso-639-1";
+ version = "2.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.4.tgz";
+ sha512 = "pwJRHnpz1sCR5saQ+Hm1E2YESw2eLGKP5TzsYKXuQ7SIfvKWMRb9CHhptqunYpCIcRCpq3LgLuhYG5hiLPRbFQ==";
+ };
+ };
+ "isstream-0.1.2" = {
+ name = "isstream";
+ packageName = "isstream";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ };
+ "js-yaml-3.14.0" = {
+ name = "js-yaml";
+ packageName = "js-yaml";
+ version = "3.14.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
+ sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
+ };
+ };
+ "jsbi-3.1.4" = {
+ name = "jsbi";
+ packageName = "jsbi";
+ version = "3.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsbi/-/jsbi-3.1.4.tgz";
+ sha512 = "52QRRFSsi9impURE8ZUbzAMCLjPm4THO7H2fcuIvaaeFTbSysvkodbQQXIVsNgq/ypDbq6dJiuGKL0vZ/i9hUg==";
+ };
+ };
+ "jsbn-0.1.1" = {
+ name = "jsbn";
+ packageName = "jsbn";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ };
+ "json-schema-0.2.3" = {
+ name = "json-schema";
+ packageName = "json-schema";
+ version = "0.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ };
+ "json-schema-traverse-0.4.1" = {
+ name = "json-schema-traverse";
+ packageName = "json-schema-traverse";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
+ };
+ };
+ "json-stable-stringify-without-jsonify-1.0.1" = {
+ name = "json-stable-stringify-without-jsonify";
+ packageName = "json-stable-stringify-without-jsonify";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+ sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+ };
+ };
+ "json-stringify-safe-5.0.1" = {
+ name = "json-stringify-safe";
+ packageName = "json-stringify-safe";
+ version = "5.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ };
+ "json5-2.1.0" = {
+ name = "json5";
+ packageName = "json5";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz";
+ sha512 = "8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==";
+ };
+ };
+ "jsonfile-4.0.0" = {
+ name = "jsonfile";
+ packageName = "jsonfile";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
+ sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+ };
+ };
+ "jsonwebtoken-8.5.1" = {
+ name = "jsonwebtoken";
+ packageName = "jsonwebtoken";
+ version = "8.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz";
+ sha512 = "XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==";
+ };
+ };
+ "jsprim-1.4.1" = {
+ name = "jsprim";
+ packageName = "jsprim";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ };
+ "jwa-1.4.1" = {
+ name = "jwa";
+ packageName = "jwa";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz";
+ sha512 = "qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==";
+ };
+ };
+ "jwks-rsa-1.9.0" = {
+ name = "jwks-rsa";
+ packageName = "jwks-rsa";
+ version = "1.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-1.9.0.tgz";
+ sha512 = "UPCfQQg0s2kF2Ju6UFJrQH73f7MaVN/hKBnYBYOp+X9KN4y6TLChhLtaXS5nRKbZqshwVdrZ9OY63m/Q9CLqcg==";
+ };
+ };
+ "jws-3.2.2" = {
+ name = "jws";
+ packageName = "jws";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz";
+ sha512 = "YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==";
+ };
+ };
+ "kafkajs-1.15.0" = {
+ name = "kafkajs";
+ packageName = "kafkajs";
+ version = "1.15.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kafkajs/-/kafkajs-1.15.0.tgz";
+ sha512 = "yjPyEnQCkPxAuQLIJnY5dI+xnmmgXmhuOQ1GVxClG5KTOV/rJcW1qA3UfvyEJKTp/RTSqQnUR3HJsKFvHyTpNg==";
+ };
+ };
+ "kuler-1.0.1" = {
+ name = "kuler";
+ packageName = "kuler";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz";
+ sha512 = "J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==";
+ };
+ };
+ "leven-2.1.0" = {
+ name = "leven";
+ packageName = "leven";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz";
+ sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+ };
+ };
+ "libbase64-1.2.1" = {
+ name = "libbase64";
+ packageName = "libbase64";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/libbase64/-/libbase64-1.2.1.tgz";
+ sha512 = "l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==";
+ };
+ };
+ "libmime-4.2.1" = {
+ name = "libmime";
+ packageName = "libmime";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/libmime/-/libmime-4.2.1.tgz";
+ sha512 = "09y7zjSc5im1aNsq815zgo4/G3DnIzym3aDOHsGq4Ee5vrX4PdgQRybAsztz9Rv0NhO+J5C0llEUloa3sUmjmA==";
+ };
+ };
+ "libmime-5.0.0" = {
+ name = "libmime";
+ packageName = "libmime";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/libmime/-/libmime-5.0.0.tgz";
+ sha512 = "2Bm96d5ktnE217Ib1FldvUaPAaOst6GtZrsxJCwnJgi9lnsoAKIHyU0sae8rNx6DNYbjdqqh8lv5/b9poD8qOg==";
+ };
+ };
+ "libqp-1.1.0" = {
+ name = "libqp";
+ packageName = "libqp";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz";
+ sha1 = "f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8";
+ };
+ };
+ "limiter-1.1.5" = {
+ name = "limiter";
+ packageName = "limiter";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz";
+ sha512 = "FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==";
+ };
+ };
+ "linkify-it-3.0.2" = {
+ name = "linkify-it";
+ packageName = "linkify-it";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz";
+ sha512 = "gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==";
+ };
+ };
+ "localtunnel-2.0.0" = {
+ name = "localtunnel";
+ packageName = "localtunnel";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.0.tgz";
+ sha512 = "g6E0aLgYYDvQDxIjIXkgJo2+pHj3sGg4Wz/XP3h2KtZnRsWPbOQY+hw1H8Z91jep998fkcVE9l+kghO+97vllg==";
+ };
+ };
+ "locate-path-3.0.0" = {
+ name = "locate-path";
+ packageName = "locate-path";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+ sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+ };
+ };
+ "locate-path-5.0.0" = {
+ name = "locate-path";
+ packageName = "locate-path";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
+ sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+ };
+ };
+ "lodash-4.17.20" = {
+ name = "lodash";
+ packageName = "lodash";
+ version = "4.17.20";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+ sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+ };
+ };
+ "lodash._reinterpolate-3.0.0" = {
+ name = "lodash._reinterpolate";
+ packageName = "lodash._reinterpolate";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz";
+ sha1 = "0ccf2d89166af03b3663c796538b75ac6e114d9d";
+ };
+ };
+ "lodash.clonedeep-4.5.0" = {
+ name = "lodash.clonedeep";
+ packageName = "lodash.clonedeep";
+ version = "4.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+ sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+ };
+ };
+ "lodash.get-4.4.2" = {
+ name = "lodash.get";
+ packageName = "lodash.get";
+ version = "4.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz";
+ sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+ };
+ };
+ "lodash.includes-4.3.0" = {
+ name = "lodash.includes";
+ packageName = "lodash.includes";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz";
+ sha1 = "60bb98a87cb923c68ca1e51325483314849f553f";
+ };
+ };
+ "lodash.isboolean-3.0.3" = {
+ name = "lodash.isboolean";
+ packageName = "lodash.isboolean";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz";
+ sha1 = "6c2e171db2a257cd96802fd43b01b20d5f5870f6";
+ };
+ };
+ "lodash.isinteger-4.0.4" = {
+ name = "lodash.isinteger";
+ packageName = "lodash.isinteger";
+ version = "4.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz";
+ sha1 = "619c0af3d03f8b04c31f5882840b77b11cd68343";
+ };
+ };
+ "lodash.isnumber-3.0.3" = {
+ name = "lodash.isnumber";
+ packageName = "lodash.isnumber";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz";
+ sha1 = "3ce76810c5928d03352301ac287317f11c0b1ffc";
+ };
+ };
+ "lodash.isplainobject-4.0.6" = {
+ name = "lodash.isplainobject";
+ packageName = "lodash.isplainobject";
+ version = "4.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
+ sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+ };
+ };
+ "lodash.isstring-4.0.1" = {
+ name = "lodash.isstring";
+ packageName = "lodash.isstring";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz";
+ sha1 = "d527dfb5456eca7cc9bb95d5daeaf88ba54a5451";
+ };
+ };
+ "lodash.once-4.1.1" = {
+ name = "lodash.once";
+ packageName = "lodash.once";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz";
+ sha1 = "0dd3971213c7c56df880977d504c88fb471a97ac";
+ };
+ };
+ "lodash.set-4.3.2" = {
+ name = "lodash.set";
+ packageName = "lodash.set";
+ version = "4.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz";
+ sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23";
+ };
+ };
+ "lodash.template-4.5.0" = {
+ name = "lodash.template";
+ packageName = "lodash.template";
+ version = "4.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz";
+ sha512 = "84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==";
+ };
+ };
+ "lodash.templatesettings-4.2.0" = {
+ name = "lodash.templatesettings";
+ packageName = "lodash.templatesettings";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz";
+ sha512 = "stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==";
+ };
+ };
+ "lodash.unset-4.5.2" = {
+ name = "lodash.unset";
+ packageName = "lodash.unset";
+ version = "4.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.unset/-/lodash.unset-4.5.2.tgz";
+ sha1 = "370d1d3e85b72a7e1b0cdf2d272121306f23e4ed";
+ };
+ };
+ "long-4.0.0" = {
+ name = "long";
+ packageName = "long";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/long/-/long-4.0.0.tgz";
+ sha512 = "XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==";
+ };
+ };
+ "lower-case-2.0.2" = {
+ name = "lower-case";
+ packageName = "lower-case";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz";
+ sha512 = "7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==";
+ };
+ };
+ "lru-cache-4.0.2" = {
+ name = "lru-cache";
+ packageName = "lru-cache";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz";
+ sha1 = "1d17679c069cda5d040991a09dbc2c0db377e55e";
+ };
+ };
+ "lru-cache-4.1.5" = {
+ name = "lru-cache";
+ packageName = "lru-cache";
+ version = "4.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+ sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
+ };
+ };
+ "lru-cache-5.1.1" = {
+ name = "lru-cache";
+ packageName = "lru-cache";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz";
+ sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==";
+ };
+ };
+ "lru-cache-6.0.0" = {
+ name = "lru-cache";
+ packageName = "lru-cache";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
+ sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
+ };
+ };
+ "lru-memoizer-2.1.2" = {
+ name = "lru-memoizer";
+ packageName = "lru-memoizer";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.1.2.tgz";
+ sha512 = "N5L5xlnVcbIinNn/TJ17vHBZwBMt9t7aJDz2n97moWubjNl6VO9Ao2XuAGBBddkYdjrwR9HfzXbT6NfMZXAZ/A==";
+ };
+ };
+ "mailparser-2.8.1" = {
+ name = "mailparser";
+ packageName = "mailparser";
+ version = "2.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mailparser/-/mailparser-2.8.1.tgz";
+ sha512 = "H/CYAO9dsw6SFNbEGGpZsejVSWDcFlyHjb1OkHUWg0wggUekva1tNc28trB155nSqM8rhtbwTKt//orX0AmJxQ==";
+ };
+ };
+ "mailsplit-5.0.0" = {
+ name = "mailsplit";
+ packageName = "mailsplit";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mailsplit/-/mailsplit-5.0.0.tgz";
+ sha512 = "HeXA0eyCKBtZqbr7uoeb3Nn2L7VV8Vm27x6/YBb0ZiNzRzLoNS2PqRgGYADwh0cBzLYtqddq40bSSirqLO2LGw==";
+ };
+ };
+ "make-error-1.3.6" = {
+ name = "make-error";
+ packageName = "make-error";
+ version = "1.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
+ sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
+ };
+ };
+ "make-error-cause-2.3.0" = {
+ name = "make-error-cause";
+ packageName = "make-error-cause";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/make-error-cause/-/make-error-cause-2.3.0.tgz";
+ sha512 = "etgt+n4LlOkGSJbBTV9VROHA5R7ekIPS4vfh+bCAoJgRrJWdqJCBbpS3osRJ/HrT7R68MzMiY3L3sDJ/Fd8aBg==";
+ };
+ };
+ "media-typer-0.3.0" = {
+ name = "media-typer";
+ packageName = "media-typer";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ };
+ "memory-pager-1.5.0" = {
+ name = "memory-pager";
+ packageName = "memory-pager";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz";
+ sha512 = "ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==";
+ };
+ };
+ "merge-descriptors-1.0.1" = {
+ name = "merge-descriptors";
+ packageName = "merge-descriptors";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ };
+ "merge2-1.4.1" = {
+ name = "merge2";
+ packageName = "merge2";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+ sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
+ };
+ };
+ "methods-1.1.2" = {
+ name = "methods";
+ packageName = "methods";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ };
+ "micromatch-4.0.2" = {
+ name = "micromatch";
+ packageName = "micromatch";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
+ sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+ };
+ };
+ "millisecond-0.1.2" = {
+ name = "millisecond";
+ packageName = "millisecond";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/millisecond/-/millisecond-0.1.2.tgz";
+ sha1 = "6cc5ad386241cab8e78aff964f87028eec92dac5";
+ };
+ };
+ "mime-1.6.0" = {
+ name = "mime";
+ packageName = "mime";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+ sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+ };
+ };
+ "mime-db-1.44.0" = {
+ name = "mime-db";
+ packageName = "mime-db";
+ version = "1.44.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
+ sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
+ };
+ };
+ "mime-types-2.1.27" = {
+ name = "mime-types";
+ packageName = "mime-types";
+ version = "2.1.27";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+ sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
+ };
+ };
+ "mimic-fn-2.1.0" = {
+ name = "mimic-fn";
+ packageName = "mimic-fn";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
+ sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
+ };
+ };
+ "minimatch-3.0.4" = {
+ name = "minimatch";
+ packageName = "minimatch";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+ sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+ };
+ };
+ "minimist-1.2.5" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "1.2.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+ sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+ };
+ };
+ "minipass-2.9.0" = {
+ name = "minipass";
+ packageName = "minipass";
+ version = "2.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
+ sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
+ };
+ };
+ "minizlib-1.3.3" = {
+ name = "minizlib";
+ packageName = "minizlib";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
+ sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
+ };
+ };
+ "mkdirp-0.5.5" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "0.5.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+ sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+ };
+ };
+ "mkdirp-1.0.4" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
+ sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
+ };
+ };
+ "moment-2.24.0" = {
+ name = "moment";
+ packageName = "moment";
+ version = "2.24.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
+ sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==";
+ };
+ };
+ "moment-2.28.0" = {
+ name = "moment";
+ packageName = "moment";
+ version = "2.28.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/moment/-/moment-2.28.0.tgz";
+ sha512 = "Z5KOjYmnHyd/ukynmFd/WwyXHd7L4J9vTI/nn5Ap9AVUgaAE15VvQ9MOGmJJygEUklupqIrFnor/tjTwRU+tQw==";
+ };
+ };
+ "moment-timezone-0.5.32" = {
+ name = "moment-timezone";
+ packageName = "moment-timezone";
+ version = "0.5.32";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.32.tgz";
+ sha512 = "Z8QNyuQHQAmWucp8Knmgei8YNo28aLjJq6Ma+jy1ZSpSk5nyfRT8xgUbSQvD2+2UajISfenndwvFuH3NGS+nvA==";
+ };
+ };
+ "mongodb-3.6.3" = {
+ name = "mongodb";
+ packageName = "mongodb";
+ version = "3.6.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz";
+ sha512 = "rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w==";
+ };
+ };
+ "mqtt-4.2.1" = {
+ name = "mqtt";
+ packageName = "mqtt";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mqtt/-/mqtt-4.2.1.tgz";
+ sha512 = "Iv893r+jWlo5GkNcPOfCGwW8M49IixwHiKLFFYTociEymSibUVCORVEjPXWPGzSxhn7BdlUeHicbRmWiv0Crkg==";
+ };
+ };
+ "mqtt-packet-6.6.0" = {
+ name = "mqtt-packet";
+ packageName = "mqtt-packet";
+ version = "6.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.6.0.tgz";
+ sha512 = "LvghnKMFC70hKWMVykmhJarlO5e7lT3t9s9A2qPCUx+lazL3Mq55U+eCV0eLi7/nRRQYvEUWo/2tTo89EjnCJQ==";
+ };
+ };
+ "ms-2.0.0" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ };
+ "ms-2.1.1" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+ sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+ };
+ };
+ "ms-2.1.2" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+ sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+ };
+ };
+ "mssql-6.2.3" = {
+ name = "mssql";
+ packageName = "mssql";
+ version = "6.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mssql/-/mssql-6.2.3.tgz";
+ sha512 = "4TW/fA9UgzmVTNgjl65r6ISr6aL5QHnlptEt1A3jIpdzkNbFPIkRbUNz90324HIdE+5pKc3VqikOImcTrhd4og==";
+ };
+ };
+ "mute-stream-0.0.8" = {
+ name = "mute-stream";
+ packageName = "mute-stream";
+ version = "0.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz";
+ sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==";
+ };
+ };
+ "mysql2-2.1.0" = {
+ name = "mysql2";
+ packageName = "mysql2";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mysql2/-/mysql2-2.1.0.tgz";
+ sha512 = "9kGVyi930rG2KaHrz3sHwtc6K+GY9d8wWk1XRSYxQiunvGcn4DwuZxOwmK11ftuhhwrYDwGx9Ta4VBwznJn36A==";
+ };
+ };
+ "mz-2.7.0" = {
+ name = "mz";
+ packageName = "mz";
+ version = "2.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz";
+ sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
+ };
+ };
+ "n8n-core-0.54.0" = {
+ name = "n8n-core";
+ packageName = "n8n-core";
+ version = "0.54.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.54.0.tgz";
+ sha512 = "07Fts2MSm5acbsFPEVU7RXx38K5ryGVy6OE1g+Nbr8B0LuQiTEhCzC7x+AIfFDQlt/cQQEiPejaBGDZZm0kdpA==";
+ };
+ };
+ "n8n-editor-ui-0.66.0" = {
+ name = "n8n-editor-ui";
+ packageName = "n8n-editor-ui";
+ version = "0.66.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.66.0.tgz";
+ sha512 = "BZTaiYffZ2+dbPOp0JjV+pZ4S7iD7r2oYTylwFbNRpEbIc4a0l8JbU0HRqHESdPR3yYDdUTmVXqk1fWfc8IgYw==";
+ };
+ };
+ "n8n-nodes-base-0.91.0" = {
+ name = "n8n-nodes-base";
+ packageName = "n8n-nodes-base";
+ version = "0.91.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.91.0.tgz";
+ sha512 = "75DVfQS/AkZBB6lIAAWHhM4wRkhHXCNf/30Fi0Cc+cihw7GW3O4bdXNhZKFwDTf70DYNATM0kBBEbSHvQusuCw==";
+ };
+ };
+ "n8n-workflow-0.47.0" = {
+ name = "n8n-workflow";
+ packageName = "n8n-workflow";
+ version = "0.47.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.47.0.tgz";
+ sha512 = "1CbSOvVSf1KNM5izOEVsuMMEkuwiqezVH4hWS1Ts7pSdgSi8TrFCi4CE1J8qA0KBmWq5APh3vEJGFyvkLX6BOg==";
+ };
+ };
+ "named-placeholders-1.1.2" = {
+ name = "named-placeholders";
+ packageName = "named-placeholders";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz";
+ sha512 = "wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==";
+ };
+ };
+ "nan-2.14.2" = {
+ name = "nan";
+ packageName = "nan";
+ version = "2.14.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz";
+ sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
+ };
+ };
+ "native-duplexpair-1.0.0" = {
+ name = "native-duplexpair";
+ packageName = "native-duplexpair";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/native-duplexpair/-/native-duplexpair-1.0.0.tgz";
+ sha1 = "7899078e64bf3c8a3d732601b3d40ff05db58fa0";
+ };
+ };
+ "needle-2.5.2" = {
+ name = "needle";
+ packageName = "needle";
+ version = "2.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz";
+ sha512 = "LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==";
+ };
+ };
+ "negotiator-0.6.2" = {
+ name = "negotiator";
+ packageName = "negotiator";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
+ sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+ };
+ };
+ "next-tick-1.0.0" = {
+ name = "next-tick";
+ packageName = "next-tick";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz";
+ sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+ };
+ };
+ "no-case-3.0.4" = {
+ name = "no-case";
+ packageName = "no-case";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz";
+ sha512 = "fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==";
+ };
+ };
+ "node-ensure-0.0.0" = {
+ name = "node-ensure";
+ packageName = "node-ensure";
+ version = "0.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz";
+ sha1 = "ecae764150de99861ec5c810fd5d096b183932a7";
+ };
+ };
+ "node-pre-gyp-0.11.0" = {
+ name = "node-pre-gyp";
+ packageName = "node-pre-gyp";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
+ sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==";
+ };
+ };
+ "nodeify-1.0.1" = {
+ name = "nodeify";
+ packageName = "nodeify";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz";
+ sha1 = "64ab69a7bdbaf03ce107b4f0335c87c0b9e91b1d";
+ };
+ };
+ "nodemailer-6.4.11" = {
+ name = "nodemailer";
+ packageName = "nodemailer";
+ version = "6.4.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.11.tgz";
+ sha512 = "BVZBDi+aJV4O38rxsUh164Dk1NCqgh6Cm0rQSb9SK/DHGll/DrCMnycVDD7msJgZCnmVa8ASo8EZzR7jsgTukQ==";
+ };
+ };
+ "nodemailer-6.4.16" = {
+ name = "nodemailer";
+ packageName = "nodemailer";
+ version = "6.4.16";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.16.tgz";
+ sha512 = "68K0LgZ6hmZ7PVmwL78gzNdjpj5viqBdFqKrTtr9bZbJYj6BRj5W6WGkxXrEnUl3Co3CBXi3CZBUlpV/foGnOQ==";
+ };
+ };
+ "nopt-4.0.3" = {
+ name = "nopt";
+ packageName = "nopt";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
+ sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+ };
+ };
+ "npm-bundled-1.1.1" = {
+ name = "npm-bundled";
+ packageName = "npm-bundled";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
+ sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
+ };
+ };
+ "npm-normalize-package-bin-1.0.1" = {
+ name = "npm-normalize-package-bin";
+ packageName = "npm-normalize-package-bin";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
+ sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
+ };
+ };
+ "npm-packlist-1.4.8" = {
+ name = "npm-packlist";
+ packageName = "npm-packlist";
+ version = "1.4.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
+ sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
+ };
+ };
+ "npmlog-4.1.2" = {
+ name = "npmlog";
+ packageName = "npmlog";
+ version = "4.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
+ sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+ };
+ };
+ "nth-check-1.0.2" = {
+ name = "nth-check";
+ packageName = "nth-check";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz";
+ sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
+ };
+ };
+ "number-is-nan-1.0.1" = {
+ name = "number-is-nan";
+ packageName = "number-is-nan";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ };
+ "oauth-1.0a-2.2.6" = {
+ name = "oauth-1.0a";
+ packageName = "oauth-1.0a";
+ version = "2.2.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/oauth-1.0a/-/oauth-1.0a-2.2.6.tgz";
+ sha512 = "6bkxv3N4Gu5lty4viIcIAnq5GbxECviMBeKR3WX/q87SPQ8E8aursPZUtsXDnxCs787af09WPRBLqYrf/lwoYQ==";
+ };
+ };
+ "oauth-sign-0.9.0" = {
+ name = "oauth-sign";
+ packageName = "oauth-sign";
+ version = "0.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+ };
+ };
+ "object-assign-4.1.1" = {
+ name = "object-assign";
+ packageName = "object-assign";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ };
+ "on-finished-2.3.0" = {
+ name = "on-finished";
+ packageName = "on-finished";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ };
+ "on-headers-1.0.2" = {
+ name = "on-headers";
+ packageName = "on-headers";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
+ sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
+ };
+ };
+ "once-1.4.0" = {
+ name = "once";
+ packageName = "once";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ };
+ "onetime-5.1.2" = {
+ name = "onetime";
+ packageName = "onetime";
+ version = "5.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
+ sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
+ };
+ };
+ "open-7.3.0" = {
+ name = "open";
+ packageName = "open";
+ version = "7.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/open/-/open-7.3.0.tgz";
+ sha512 = "mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==";
+ };
+ };
+ "openurl-1.1.1" = {
+ name = "openurl";
+ packageName = "openurl";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz";
+ sha1 = "3875b4b0ef7a52c156f0db41d4609dbb0f94b387";
+ };
+ };
+ "ordered-read-streams-1.0.1" = {
+ name = "ordered-read-streams";
+ packageName = "ordered-read-streams";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz";
+ sha1 = "77c0cb37c41525d64166d990ffad7ec6a0e1363e";
+ };
+ };
+ "original-1.0.2" = {
+ name = "original";
+ packageName = "original";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz";
+ sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==";
+ };
+ };
+ "os-homedir-1.0.2" = {
+ name = "os-homedir";
+ packageName = "os-homedir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ };
+ "os-tmpdir-1.0.2" = {
+ name = "os-tmpdir";
+ packageName = "os-tmpdir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ };
+ "osenv-0.1.5" = {
+ name = "osenv";
+ packageName = "osenv";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
+ sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+ };
+ };
+ "p-cancelable-2.0.0" = {
+ name = "p-cancelable";
+ packageName = "p-cancelable";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz";
+ sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==";
+ };
+ };
+ "p-limit-2.3.0" = {
+ name = "p-limit";
+ packageName = "p-limit";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+ sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+ };
+ };
+ "p-locate-3.0.0" = {
+ name = "p-locate";
+ packageName = "p-locate";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+ sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+ };
+ };
+ "p-locate-4.1.0" = {
+ name = "p-locate";
+ packageName = "p-locate";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
+ sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
+ };
+ };
+ "p-try-2.2.0" = {
+ name = "p-try";
+ packageName = "p-try";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+ sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+ };
+ };
+ "packet-reader-1.0.0" = {
+ name = "packet-reader";
+ packageName = "packet-reader";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
+ sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
+ };
+ };
+ "param-case-3.0.4" = {
+ name = "param-case";
+ packageName = "param-case";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz";
+ sha512 = "RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==";
+ };
+ };
+ "parent-require-1.0.0" = {
+ name = "parent-require";
+ packageName = "parent-require";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz";
+ sha1 = "746a167638083a860b0eef6732cb27ed46c32977";
+ };
+ };
+ "parse5-3.0.3" = {
+ name = "parse5";
+ packageName = "parse5";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz";
+ sha512 = "rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==";
+ };
+ };
+ "parse5-5.1.1" = {
+ name = "parse5";
+ packageName = "parse5";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz";
+ sha512 = "ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==";
+ };
+ };
+ "parse5-6.0.1" = {
+ name = "parse5";
+ packageName = "parse5";
+ version = "6.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz";
+ sha512 = "Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==";
+ };
+ };
+ "parse5-htmlparser2-tree-adapter-6.0.1" = {
+ name = "parse5-htmlparser2-tree-adapter";
+ packageName = "parse5-htmlparser2-tree-adapter";
+ version = "6.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz";
+ sha512 = "qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==";
+ };
+ };
+ "parseurl-1.3.3" = {
+ name = "parseurl";
+ packageName = "parseurl";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+ sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+ };
+ };
+ "pascal-case-3.1.2" = {
+ name = "pascal-case";
+ packageName = "pascal-case";
+ version = "3.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz";
+ sha512 = "uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==";
+ };
+ };
+ "path-case-3.0.4" = {
+ name = "path-case";
+ packageName = "path-case";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz";
+ sha512 = "qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==";
+ };
+ };
+ "path-dirname-1.0.2" = {
+ name = "path-dirname";
+ packageName = "path-dirname";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
+ sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+ };
+ };
+ "path-exists-3.0.0" = {
+ name = "path-exists";
+ packageName = "path-exists";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+ sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+ };
+ };
+ "path-exists-4.0.0" = {
+ name = "path-exists";
+ packageName = "path-exists";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+ sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+ };
+ };
+ "path-is-absolute-1.0.1" = {
+ name = "path-is-absolute";
+ packageName = "path-is-absolute";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ };
+ "path-to-regexp-0.1.7" = {
+ name = "path-to-regexp";
+ packageName = "path-to-regexp";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ };
+ "path-type-4.0.0" = {
+ name = "path-type";
+ packageName = "path-type";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
+ sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+ };
+ };
+ "pdf-parse-1.1.1" = {
+ name = "pdf-parse";
+ packageName = "pdf-parse";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pdf-parse/-/pdf-parse-1.1.1.tgz";
+ sha512 = "v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A==";
+ };
+ };
+ "peek-readable-3.1.0" = {
+ name = "peek-readable";
+ packageName = "peek-readable";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.0.tgz";
+ sha512 = "KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA==";
+ };
+ };
+ "performance-now-2.1.0" = {
+ name = "performance-now";
+ packageName = "performance-now";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ };
+ "pg-8.5.1" = {
+ name = "pg";
+ packageName = "pg";
+ version = "8.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz";
+ sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==";
+ };
+ };
+ "pg-connection-string-2.4.0" = {
+ name = "pg-connection-string";
+ packageName = "pg-connection-string";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
+ sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==";
+ };
+ };
+ "pg-int8-1.0.1" = {
+ name = "pg-int8";
+ packageName = "pg-int8";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
+ sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
+ };
+ };
+ "pg-minify-1.6.1" = {
+ name = "pg-minify";
+ packageName = "pg-minify";
+ version = "1.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.1.tgz";
+ sha512 = "ujanxJJB9CSDUvlAOshtjdKAywOPR2vY0a7D+vvgk5rbrYcthZA7TjpN+Z+UwZsz/G/bUexYDT6huE33vYVN0g==";
+ };
+ };
+ "pg-pool-3.2.2" = {
+ name = "pg-pool";
+ packageName = "pg-pool";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz";
+ sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==";
+ };
+ };
+ "pg-promise-10.8.1" = {
+ name = "pg-promise";
+ packageName = "pg-promise";
+ version = "10.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.8.1.tgz";
+ sha512 = "xRW3PBopAAPlSmOutfpxwrd0i1wfiVoJjkRC2xYzwk0PwWGLEOVKoDEHX4VoqjfIJ+SEEiILy5B5nUVvXpFFVA==";
+ };
+ };
+ "pg-protocol-1.4.0" = {
+ name = "pg-protocol";
+ packageName = "pg-protocol";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz";
+ sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==";
+ };
+ };
+ "pg-types-2.2.0" = {
+ name = "pg-types";
+ packageName = "pg-types";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
+ sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
+ };
+ };
+ "pgpass-1.0.4" = {
+ name = "pgpass";
+ packageName = "pgpass";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz";
+ sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==";
+ };
+ };
+ "picomatch-2.2.2" = {
+ name = "picomatch";
+ packageName = "picomatch";
+ version = "2.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
+ sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+ };
+ };
+ "popsicle-12.1.0" = {
+ name = "popsicle";
+ packageName = "popsicle";
+ version = "12.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/popsicle/-/popsicle-12.1.0.tgz";
+ sha512 = "muNC/cIrWhfR6HqqhHazkxjob3eyECBe8uZYSQ/N5vixNAgssacVleerXnE8Are5fspR0a+d2qWaBR1g7RYlmw==";
+ };
+ };
+ "popsicle-content-encoding-1.0.0" = {
+ name = "popsicle-content-encoding";
+ packageName = "popsicle-content-encoding";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/popsicle-content-encoding/-/popsicle-content-encoding-1.0.0.tgz";
+ sha512 = "4Df+vTfM8wCCJVTzPujiI6eOl3SiWQkcZg0AMrOkD1enMXsF3glIkFUZGvour1Sj7jOWCsNSEhBxpbbhclHhzw==";
+ };
+ };
+ "popsicle-cookie-jar-1.0.0" = {
+ name = "popsicle-cookie-jar";
+ packageName = "popsicle-cookie-jar";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/popsicle-cookie-jar/-/popsicle-cookie-jar-1.0.0.tgz";
+ sha512 = "vrlOGvNVELko0+J8NpGC5lHWDGrk8LQJq9nwAMIVEVBfN1Lib3BLxAaLRGDTuUnvl45j5N9dT2H85PULz6IjjQ==";
+ };
+ };
+ "popsicle-redirects-1.1.0" = {
+ name = "popsicle-redirects";
+ packageName = "popsicle-redirects";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/popsicle-redirects/-/popsicle-redirects-1.1.0.tgz";
+ sha512 = "XCpzVjVk7tty+IJnSdqWevmOr1n8HNDhL86v7mZ6T1JIIf2KGybxUk9mm7ZFOhWMkGB0e8XkacHip7BV8AQWQA==";
+ };
+ };
+ "popsicle-transport-http-1.0.9" = {
+ name = "popsicle-transport-http";
+ packageName = "popsicle-transport-http";
+ version = "1.0.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/popsicle-transport-http/-/popsicle-transport-http-1.0.9.tgz";
+ sha512 = "55Os0JdCs35FI8cAsgMoKG6XXKR4Wh8qZIbL3rY5+IZqqjMIo3/3q3wSE98mUhHyLgjg9HQ6ep5wNfhbYCI7GQ==";
+ };
+ };
+ "popsicle-transport-xhr-2.0.0" = {
+ name = "popsicle-transport-xhr";
+ packageName = "popsicle-transport-xhr";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/popsicle-transport-xhr/-/popsicle-transport-xhr-2.0.0.tgz";
+ sha512 = "5Sbud4Widngf1dodJE5cjEYXkzEUIl8CzyYRYR57t6vpy9a9KPGQX6KBKdPjmBZlR5A06pOBXuJnVr23l27rtA==";
+ };
+ };
+ "popsicle-user-agent-1.0.0" = {
+ name = "popsicle-user-agent";
+ packageName = "popsicle-user-agent";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/popsicle-user-agent/-/popsicle-user-agent-1.0.0.tgz";
+ sha512 = "epKaq3TTfTzXcxBxjpoKYMcTTcAX8Rykus6QZu77XNhJuRHSRxMd+JJrbX/3PFI0opFGSN0BabbAYCbGxbu0mA==";
+ };
+ };
+ "postgres-array-2.0.0" = {
+ name = "postgres-array";
+ packageName = "postgres-array";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
+ sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
+ };
+ };
+ "postgres-bytea-1.0.0" = {
+ name = "postgres-bytea";
+ packageName = "postgres-bytea";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+ sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+ };
+ };
+ "postgres-date-1.0.7" = {
+ name = "postgres-date";
+ packageName = "postgres-date";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz";
+ sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==";
+ };
+ };
+ "postgres-interval-1.2.0" = {
+ name = "postgres-interval";
+ packageName = "postgres-interval";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
+ sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
+ };
+ };
+ "printj-1.1.2" = {
+ name = "printj";
+ packageName = "printj";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz";
+ sha512 = "zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==";
+ };
+ };
+ "process-nextick-args-2.0.1" = {
+ name = "process-nextick-args";
+ packageName = "process-nextick-args";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+ };
+ };
+ "promise-1.3.0" = {
+ name = "promise";
+ packageName = "promise";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/promise/-/promise-1.3.0.tgz";
+ sha1 = "e5cc9a4c8278e4664ffedc01c7da84842b040175";
+ };
+ };
+ "promise-ftp-1.3.5" = {
+ name = "promise-ftp";
+ packageName = "promise-ftp";
+ version = "1.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/promise-ftp/-/promise-ftp-1.3.5.tgz";
+ sha512 = "v368jPSqzmjjKDIyggulC+dRFcpAOEX7aFdEWkFYQp8Ao3P2N4Y6XnFFdKgK7PtkylwvGQkZR/65HZuzmq0V7A==";
+ };
+ };
+ "promise-ftp-common-1.1.5" = {
+ name = "promise-ftp-common";
+ packageName = "promise-ftp-common";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/promise-ftp-common/-/promise-ftp-common-1.1.5.tgz";
+ sha1 = "b4f8082a74035647703506763edb14230d9865da";
+ };
+ };
+ "proxy-addr-2.0.6" = {
+ name = "proxy-addr";
+ packageName = "proxy-addr";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
+ sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
+ };
+ };
+ "pseudomap-1.0.2" = {
+ name = "pseudomap";
+ packageName = "pseudomap";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ };
+ "psl-1.8.0" = {
+ name = "psl";
+ packageName = "psl";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+ sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+ };
+ };
+ "pump-2.0.1" = {
+ name = "pump";
+ packageName = "pump";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz";
+ sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==";
+ };
+ };
+ "pump-3.0.0" = {
+ name = "pump";
+ packageName = "pump";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+ sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+ };
+ };
+ "pumpify-1.5.1" = {
+ name = "pumpify";
+ packageName = "pumpify";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz";
+ sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==";
+ };
+ };
+ "punycode-2.1.1" = {
+ name = "punycode";
+ packageName = "punycode";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+ sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+ };
+ };
+ "qs-6.5.2" = {
+ name = "qs";
+ packageName = "qs";
+ version = "6.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
+ sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+ };
+ };
+ "qs-6.7.0" = {
+ name = "qs";
+ packageName = "qs";
+ version = "6.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
+ sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+ };
+ };
+ "querystringify-2.2.0" = {
+ name = "querystringify";
+ packageName = "querystringify";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz";
+ sha512 = "FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==";
+ };
+ };
+ "quoted-printable-1.0.1" = {
+ name = "quoted-printable";
+ packageName = "quoted-printable";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/quoted-printable/-/quoted-printable-1.0.1.tgz";
+ sha1 = "9eebf5eb3d11eef022b264fd2d2b6b2bb3b84cc3";
+ };
+ };
+ "random-bytes-1.0.0" = {
+ name = "random-bytes";
+ packageName = "random-bytes";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz";
+ sha1 = "4f68a1dc0ae58bd3fb95848c30324db75d64360b";
+ };
+ };
+ "range-parser-1.2.1" = {
+ name = "range-parser";
+ packageName = "range-parser";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+ sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
+ };
+ };
+ "raw-body-2.4.0" = {
+ name = "raw-body";
+ packageName = "raw-body";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
+ sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+ };
+ };
+ "rc-1.2.8" = {
+ name = "rc";
+ packageName = "rc";
+ version = "1.2.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+ sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+ };
+ };
+ "readable-stream-1.1.14" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "1.1.14";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
+ sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+ };
+ };
+ "readable-stream-2.3.7" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "2.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+ sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+ };
+ };
+ "readable-stream-3.6.0" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "3.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+ sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+ };
+ };
+ "readable-web-to-node-stream-2.0.0" = {
+ name = "readable-web-to-node-stream";
+ packageName = "readable-web-to-node-stream";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-2.0.0.tgz";
+ sha512 = "+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA==";
+ };
+ };
+ "redeyed-2.1.1" = {
+ name = "redeyed";
+ packageName = "redeyed";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz";
+ sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
+ };
+ };
+ "redis-2.8.0" = {
+ name = "redis";
+ packageName = "redis";
+ version = "2.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz";
+ sha512 = "M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==";
+ };
+ };
+ "redis-commands-1.6.0" = {
+ name = "redis-commands";
+ packageName = "redis-commands";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/redis-commands/-/redis-commands-1.6.0.tgz";
+ sha512 = "2jnZ0IkjZxvguITjFTrGiLyzQZcTvaw8DAaCXxZq/dsHXz7KfMQ3OUJy7Tz9vnRtZRVz6VRCPDvruvU8Ts44wQ==";
+ };
+ };
+ "redis-parser-2.6.0" = {
+ name = "redis-parser";
+ packageName = "redis-parser";
+ version = "2.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz";
+ sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b";
+ };
+ };
+ "reflect-metadata-0.1.13" = {
+ name = "reflect-metadata";
+ packageName = "reflect-metadata";
+ version = "0.1.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz";
+ sha512 = "Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==";
+ };
+ };
+ "reinterval-1.1.0" = {
+ name = "reinterval";
+ packageName = "reinterval";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz";
+ sha1 = "3361ecfa3ca6c18283380dd0bb9546f390f5ece7";
+ };
+ };
+ "remove-trailing-separator-1.1.0" = {
+ name = "remove-trailing-separator";
+ packageName = "remove-trailing-separator";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ };
+ "request-2.88.2" = {
+ name = "request";
+ packageName = "request";
+ version = "2.88.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
+ sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
+ };
+ };
+ "request-promise-core-1.1.4" = {
+ name = "request-promise-core";
+ packageName = "request-promise-core";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz";
+ sha512 = "TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==";
+ };
+ };
+ "request-promise-native-1.0.9" = {
+ name = "request-promise-native";
+ packageName = "request-promise-native";
+ version = "1.0.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz";
+ sha512 = "wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==";
+ };
+ };
+ "require-directory-2.1.1" = {
+ name = "require-directory";
+ packageName = "require-directory";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ };
+ "require-main-filename-2.0.0" = {
+ name = "require-main-filename";
+ packageName = "require-main-filename";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+ sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+ };
+ };
+ "require_optional-1.0.1" = {
+ name = "require_optional";
+ packageName = "require_optional";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz";
+ sha512 = "qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==";
+ };
+ };
+ "requires-port-1.0.0" = {
+ name = "requires-port";
+ packageName = "requires-port";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz";
+ sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+ };
+ };
+ "resolve-from-2.0.0" = {
+ name = "resolve-from";
+ packageName = "resolve-from";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz";
+ sha1 = "9480ab20e94ffa1d9e80a804c7ea147611966b57";
+ };
+ };
+ "restore-cursor-3.1.0" = {
+ name = "restore-cursor";
+ packageName = "restore-cursor";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz";
+ sha512 = "l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==";
+ };
+ };
+ "retry-0.12.0" = {
+ name = "retry";
+ packageName = "retry";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
+ sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+ };
+ };
+ "reusify-1.0.4" = {
+ name = "reusify";
+ packageName = "reusify";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
+ sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
+ };
+ };
+ "rhea-1.0.24" = {
+ name = "rhea";
+ packageName = "rhea";
+ version = "1.0.24";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rhea/-/rhea-1.0.24.tgz";
+ sha512 = "PEl62U2EhxCO5wMUZ2/bCBcXAVKN9AdMSNQOrp3+R5b77TEaOSiy16MQ0sIOmzj/iqsgIAgPs1mt3FYfu1vIXA==";
+ };
+ };
+ "rimraf-2.7.1" = {
+ name = "rimraf";
+ packageName = "rimraf";
+ version = "2.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
+ sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+ };
+ };
+ "rimraf-3.0.2" = {
+ name = "rimraf";
+ packageName = "rimraf";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
+ sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+ };
+ };
+ "riot-tmpl-3.0.8" = {
+ name = "riot-tmpl";
+ packageName = "riot-tmpl";
+ version = "3.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/riot-tmpl/-/riot-tmpl-3.0.8.tgz";
+ sha1 = "dd654e72a3a1520cb009cbef70c73856ded584a6";
+ };
+ };
+ "rndm-1.2.0" = {
+ name = "rndm";
+ packageName = "rndm";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz";
+ sha1 = "f33fe9cfb52bbfd520aa18323bc65db110a1b76c";
+ };
+ };
+ "rss-parser-3.9.0" = {
+ name = "rss-parser";
+ packageName = "rss-parser";
+ version = "3.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.9.0.tgz";
+ sha512 = "wlRSfGrotOXuWo19Dtl2KmQt7o9i5zzCExUrxpechE0O54BAx7JD+xhWyGumPPqiJj771ndflV3sE3bTHen0HQ==";
+ };
+ };
+ "run-async-2.4.1" = {
+ name = "run-async";
+ packageName = "run-async";
+ version = "2.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz";
+ sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
+ };
+ };
+ "run-parallel-1.1.10" = {
+ name = "run-parallel";
+ packageName = "run-parallel";
+ version = "1.1.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz";
+ sha512 = "zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==";
+ };
+ };
+ "rxjs-6.6.3" = {
+ name = "rxjs";
+ packageName = "rxjs";
+ version = "6.6.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz";
+ sha512 = "trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==";
+ };
+ };
+ "safe-buffer-5.1.2" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+ };
+ };
+ "safe-buffer-5.2.1" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+ sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
+ };
+ };
+ "safer-buffer-2.1.2" = {
+ name = "safer-buffer";
+ packageName = "safer-buffer";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+ };
+ };
+ "saslprep-1.0.3" = {
+ name = "saslprep";
+ packageName = "saslprep";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz";
+ sha512 = "/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==";
+ };
+ };
+ "sax-1.2.4" = {
+ name = "sax";
+ packageName = "sax";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
+ sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+ };
+ };
+ "semver-5.3.0" = {
+ name = "semver";
+ packageName = "semver";
+ version = "5.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz";
+ sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+ };
+ };
+ "semver-5.7.1" = {
+ name = "semver";
+ packageName = "semver";
+ version = "5.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+ sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+ };
+ };
+ "semver-7.3.4" = {
+ name = "semver";
+ packageName = "semver";
+ version = "7.3.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz";
+ sha512 = "tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==";
+ };
+ };
+ "send-0.17.1" = {
+ name = "send";
+ packageName = "send";
+ version = "0.17.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+ sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+ };
+ };
+ "sentence-case-3.0.4" = {
+ name = "sentence-case";
+ packageName = "sentence-case";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz";
+ sha512 = "8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==";
+ };
+ };
+ "seq-queue-0.0.5" = {
+ name = "seq-queue";
+ packageName = "seq-queue";
+ version = "0.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz";
+ sha1 = "d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e";
+ };
+ };
+ "serve-static-1.14.1" = {
+ name = "serve-static";
+ packageName = "serve-static";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+ sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+ };
+ };
+ "servie-4.3.3" = {
+ name = "servie";
+ packageName = "servie";
+ version = "4.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/servie/-/servie-4.3.3.tgz";
+ sha512 = "b0IrY3b1gVMsWvJppCf19g1p3JSnS0hQi6xu4Hi40CIhf0Lx8pQHcvBL+xunShpmOiQzg1NOia812NAWdSaShw==";
+ };
+ };
+ "set-blocking-2.0.0" = {
+ name = "set-blocking";
+ packageName = "set-blocking";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ };
+ "setheader-1.0.2" = {
+ name = "setheader";
+ packageName = "setheader";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/setheader/-/setheader-1.0.2.tgz";
+ sha512 = "A704nIwzqGed0CnJZIqDE+0udMPS839ocgf1R9OJ8aq8vw4U980HWeNaD9ec8VnmBni9lyGEWDedOWXT/C5kxA==";
+ };
+ };
+ "setprototypeof-1.1.1" = {
+ name = "setprototypeof";
+ packageName = "setprototypeof";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+ sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+ };
+ };
+ "sha.js-2.4.11" = {
+ name = "sha.js";
+ packageName = "sha.js";
+ version = "2.4.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz";
+ sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==";
+ };
+ };
+ "signal-exit-3.0.3" = {
+ name = "signal-exit";
+ packageName = "signal-exit";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+ sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+ };
+ };
+ "simple-swizzle-0.2.2" = {
+ name = "simple-swizzle";
+ packageName = "simple-swizzle";
+ version = "0.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+ sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+ };
+ };
+ "slash-3.0.0" = {
+ name = "slash";
+ packageName = "slash";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
+ sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+ };
+ };
+ "snake-case-3.0.4" = {
+ name = "snake-case";
+ packageName = "snake-case";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz";
+ sha512 = "LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==";
+ };
+ };
+ "sparse-bitfield-3.0.3" = {
+ name = "sparse-bitfield";
+ packageName = "sparse-bitfield";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz";
+ sha1 = "ff4ae6e68656056ba4b3e792ab3334d38273ca11";
+ };
+ };
+ "spex-3.0.2" = {
+ name = "spex";
+ packageName = "spex";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spex/-/spex-3.0.2.tgz";
+ sha512 = "ZNCrOso+oNv5P01HCO4wuxV9Og5rS6ms7gGAqugfBPjx1QwfNXJI3T02ldfaap1O0dlT1sB0Rk+mhDqxt3Z27w==";
+ };
+ };
+ "split2-3.2.2" = {
+ name = "split2";
+ packageName = "split2";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz";
+ sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
+ };
+ };
+ "sprintf-js-1.0.3" = {
+ name = "sprintf-js";
+ packageName = "sprintf-js";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ };
+ "sprintf-js-1.1.2" = {
+ name = "sprintf-js";
+ packageName = "sprintf-js";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz";
+ sha512 = "VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==";
+ };
+ };
+ "sqlite3-4.2.0" = {
+ name = "sqlite3";
+ packageName = "sqlite3";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz";
+ sha512 = "roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==";
+ };
+ };
+ "sqlstring-2.3.2" = {
+ name = "sqlstring";
+ packageName = "sqlstring";
+ version = "2.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz";
+ sha512 = "vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==";
+ };
+ };
+ "sse-channel-3.1.1" = {
+ name = "sse-channel";
+ packageName = "sse-channel";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sse-channel/-/sse-channel-3.1.1.tgz";
+ sha512 = "vgf4QFh60vlAMX0vGJpn6S+7gTO3ckRn7xq4DOgQGcgDs7ULBkaQFQxy4b3vj/umyk0ydhGu7i4A1nHQc5HcYw==";
+ };
+ };
+ "ssf-0.11.2" = {
+ name = "ssf";
+ packageName = "ssf";
+ version = "0.11.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz";
+ sha512 = "+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==";
+ };
+ };
+ "ssh2-0.8.9" = {
+ name = "ssh2";
+ packageName = "ssh2";
+ version = "0.8.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ssh2/-/ssh2-0.8.9.tgz";
+ sha512 = "GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw==";
+ };
+ };
+ "ssh2-sftp-client-5.3.2" = {
+ name = "ssh2-sftp-client";
+ packageName = "ssh2-sftp-client";
+ version = "5.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ssh2-sftp-client/-/ssh2-sftp-client-5.3.2.tgz";
+ sha512 = "YD38WQKleuapAZyvqRJq7PN8pC6GnzWdWcnZN4vsPXMHtZpjcg/ipBcFGtDsC5rkHp5qXgRu56WPcDUkM87FiA==";
+ };
+ };
+ "ssh2-streams-0.4.10" = {
+ name = "ssh2-streams";
+ packageName = "ssh2-streams";
+ version = "0.4.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.4.10.tgz";
+ sha512 = "8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ==";
+ };
+ };
+ "sshpk-1.16.1" = {
+ name = "sshpk";
+ packageName = "sshpk";
+ version = "1.16.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
+ sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+ };
+ };
+ "statuses-1.5.0" = {
+ name = "statuses";
+ packageName = "statuses";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ };
+ "stealthy-require-1.1.1" = {
+ name = "stealthy-require";
+ packageName = "stealthy-require";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz";
+ sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+ };
+ };
+ "stream-shift-1.0.1" = {
+ name = "stream-shift";
+ packageName = "stream-shift";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz";
+ sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==";
+ };
+ };
+ "streamsearch-0.1.2" = {
+ name = "streamsearch";
+ packageName = "streamsearch";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz";
+ sha1 = "808b9d0e56fc273d809ba57338e929919a1a9f1a";
+ };
+ };
+ "string-width-1.0.2" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ };
+ "string-width-2.1.1" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+ sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+ };
+ };
+ "string-width-3.1.0" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+ sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+ };
+ };
+ "string-width-4.2.0" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
+ sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
+ };
+ };
+ "string_decoder-0.10.31" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "0.10.31";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ };
+ "string_decoder-1.1.1" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+ };
+ };
+ "strip-ansi-3.0.1" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ };
+ "strip-ansi-4.0.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ };
+ "strip-ansi-5.2.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+ sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+ };
+ };
+ "strip-ansi-6.0.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+ sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+ };
+ };
+ "strip-json-comments-2.0.1" = {
+ name = "strip-json-comments";
+ packageName = "strip-json-comments";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ };
+ "strtok3-6.0.4" = {
+ name = "strtok3";
+ packageName = "strtok3";
+ version = "6.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strtok3/-/strtok3-6.0.4.tgz";
+ sha512 = "rqWMKwsbN9APU47bQTMEYTPcwdpKDtmf1jVhHzNW2cL1WqAxaM9iBb9t5P2fj+RV2YsErUWgQzHD5JwV0uCTEQ==";
+ };
+ };
+ "supports-color-2.0.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ };
+ "supports-color-5.5.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "5.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+ sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+ };
+ };
+ "supports-color-7.2.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "7.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+ sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+ };
+ };
+ "tar-4.4.13" = {
+ name = "tar";
+ packageName = "tar";
+ version = "4.4.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
+ sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==";
+ };
+ };
+ "tarn-1.1.5" = {
+ name = "tarn";
+ packageName = "tarn";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tarn/-/tarn-1.1.5.tgz";
+ sha512 = "PMtJ3HCLAZeedWjJPgGnCvcphbCOMbtZpjKgLq3qM5Qq9aQud+XHrL0WlrlgnTyS8U+jrjGbEXprFcQrxPy52g==";
+ };
+ };
+ "tedious-6.7.0" = {
+ name = "tedious";
+ packageName = "tedious";
+ version = "6.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tedious/-/tedious-6.7.0.tgz";
+ sha512 = "8qr7+sB0h4SZVQBRWUgHmYuOEflAOl2eihvxk0fVNvpvGJV4V5UC/YmSvebyfgyfwWcPO22/AnSbYVZZqf9wuQ==";
+ };
+ };
+ "text-hex-1.0.0" = {
+ name = "text-hex";
+ packageName = "text-hex";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz";
+ sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
+ };
+ };
+ "thenify-3.3.1" = {
+ name = "thenify";
+ packageName = "thenify";
+ version = "3.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz";
+ sha512 = "RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==";
+ };
+ };
+ "thenify-all-1.6.0" = {
+ name = "thenify-all";
+ packageName = "thenify-all";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz";
+ sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
+ };
+ };
+ "through-2.3.8" = {
+ name = "through";
+ packageName = "through";
+ version = "2.3.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ };
+ "through2-2.0.5" = {
+ name = "through2";
+ packageName = "through2";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
+ sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+ };
+ };
+ "through2-filter-3.0.0" = {
+ name = "through2-filter";
+ packageName = "through2-filter";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz";
+ sha512 = "jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==";
+ };
+ };
+ "throwback-4.1.0" = {
+ name = "throwback";
+ packageName = "throwback";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/throwback/-/throwback-4.1.0.tgz";
+ sha512 = "dLFe8bU8SeH0xeqeKL7BNo8XoPC/o91nz9/ooeplZPiso+DZukhoyZcSz9TFnUNScm+cA9qjU1m1853M6sPOng==";
+ };
+ };
+ "tlds-1.208.0" = {
+ name = "tlds";
+ packageName = "tlds";
+ version = "1.208.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tlds/-/tlds-1.208.0.tgz";
+ sha512 = "6kbY7GJpRQXwBddSOAbVUZXjObbCGFXliWWN+kOSEoRWIOyRWLB6zdeKC/Tguwwenl/KsUx016XR50EdHYsxZw==";
+ };
+ };
+ "tmp-0.0.33" = {
+ name = "tmp";
+ packageName = "tmp";
+ version = "0.0.33";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz";
+ sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
+ };
+ };
+ "tmp-0.2.1" = {
+ name = "tmp";
+ packageName = "tmp";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz";
+ sha512 = "76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==";
+ };
+ };
+ "tmp-promise-3.0.2" = {
+ name = "tmp-promise";
+ packageName = "tmp-promise";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.2.tgz";
+ sha512 = "OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA==";
+ };
+ };
+ "to-absolute-glob-2.0.2" = {
+ name = "to-absolute-glob";
+ packageName = "to-absolute-glob";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz";
+ sha1 = "1865f43d9e74b0822db9f145b78cff7d0f7c849b";
+ };
+ };
+ "to-regex-range-5.0.1" = {
+ name = "to-regex-range";
+ packageName = "to-regex-range";
+ version = "5.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+ sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+ };
+ };
+ "toidentifier-1.0.0" = {
+ name = "toidentifier";
+ packageName = "toidentifier";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+ sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+ };
+ };
+ "token-types-2.0.0" = {
+ name = "token-types";
+ packageName = "token-types";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/token-types/-/token-types-2.0.0.tgz";
+ sha512 = "WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==";
+ };
+ };
+ "tough-cookie-2.5.0" = {
+ name = "tough-cookie";
+ packageName = "tough-cookie";
+ version = "2.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
+ sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+ };
+ };
+ "tough-cookie-3.0.1" = {
+ name = "tough-cookie";
+ packageName = "tough-cookie";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz";
+ sha512 = "yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==";
+ };
+ };
+ "ts-expect-1.1.0" = {
+ name = "ts-expect";
+ packageName = "ts-expect";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ts-expect/-/ts-expect-1.1.0.tgz";
+ sha512 = "cKoBZ47X85x/Qh7taf30m3BhOJOhtNbb7KFHz9CCuWeRSAh0wzprnmiN9TSOQ0FWp3+qDWS5f2FDnxkY93Kdfw==";
+ };
+ };
+ "tslib-1.11.2" = {
+ name = "tslib";
+ packageName = "tslib";
+ version = "1.11.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz";
+ sha512 = "tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==";
+ };
+ };
+ "tslib-1.14.1" = {
+ name = "tslib";
+ packageName = "tslib";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz";
+ sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
+ };
+ };
+ "tslib-2.0.3" = {
+ name = "tslib";
+ packageName = "tslib";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz";
+ sha512 = "uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==";
+ };
+ };
+ "tsscmp-1.0.6" = {
+ name = "tsscmp";
+ packageName = "tsscmp";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz";
+ sha512 = "LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==";
+ };
+ };
+ "tunnel-0.0.6" = {
+ name = "tunnel";
+ packageName = "tunnel";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz";
+ sha512 = "1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==";
+ };
+ };
+ "tunnel-agent-0.6.0" = {
+ name = "tunnel-agent";
+ packageName = "tunnel-agent";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ };
+ "tweetnacl-0.14.5" = {
+ name = "tweetnacl";
+ packageName = "tweetnacl";
+ version = "0.14.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ };
+ "type-1.2.0" = {
+ name = "type";
+ packageName = "type";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz";
+ sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
+ };
+ };
+ "type-2.1.0" = {
+ name = "type";
+ packageName = "type";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type/-/type-2.1.0.tgz";
+ sha512 = "G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==";
+ };
+ };
+ "type-fest-0.11.0" = {
+ name = "type-fest";
+ packageName = "type-fest";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz";
+ sha512 = "OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==";
+ };
+ };
+ "type-is-1.6.18" = {
+ name = "type-is";
+ packageName = "type-is";
+ version = "1.6.18";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
+ sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+ };
+ };
+ "typedarray-0.0.6" = {
+ name = "typedarray";
+ packageName = "typedarray";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+ sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+ };
+ };
+ "typedarray-to-buffer-3.1.5" = {
+ name = "typedarray-to-buffer";
+ packageName = "typedarray-to-buffer";
+ version = "3.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+ sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
+ };
+ };
+ "typeorm-0.2.29" = {
+ name = "typeorm";
+ packageName = "typeorm";
+ version = "0.2.29";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typeorm/-/typeorm-0.2.29.tgz";
+ sha512 = "ih1vrTe3gEAGKRcWlcsTRxTL7gNjacQE498wVGuJ3ZRujtMqPZlbAWuC7xDzWCRjQnkZYNwZQeG9UgKfxSHB5g==";
+ };
+ };
+ "uc.micro-1.0.6" = {
+ name = "uc.micro";
+ packageName = "uc.micro";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz";
+ sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==";
+ };
+ };
+ "uid-safe-2.1.5" = {
+ name = "uid-safe";
+ packageName = "uid-safe";
+ version = "2.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz";
+ sha512 = "KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==";
+ };
+ };
+ "unc-path-regex-0.1.2" = {
+ name = "unc-path-regex";
+ packageName = "unc-path-regex";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz";
+ sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
+ };
+ };
+ "underscore-1.12.0" = {
+ name = "underscore";
+ packageName = "underscore";
+ version = "1.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz";
+ sha512 = "21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==";
+ };
+ };
+ "unique-stream-2.3.1" = {
+ name = "unique-stream";
+ packageName = "unique-stream";
+ version = "2.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz";
+ sha512 = "2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==";
+ };
+ };
+ "universalify-0.1.2" = {
+ name = "universalify";
+ packageName = "universalify";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
+ sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
+ };
+ };
+ "unpipe-1.0.0" = {
+ name = "unpipe";
+ packageName = "unpipe";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ };
+ "upper-case-2.0.2" = {
+ name = "upper-case";
+ packageName = "upper-case";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz";
+ sha512 = "KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==";
+ };
+ };
+ "upper-case-first-2.0.2" = {
+ name = "upper-case-first";
+ packageName = "upper-case-first";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz";
+ sha512 = "514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==";
+ };
+ };
+ "uri-js-4.4.0" = {
+ name = "uri-js";
+ packageName = "uri-js";
+ version = "4.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz";
+ sha512 = "B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==";
+ };
+ };
+ "url-parse-1.4.7" = {
+ name = "url-parse";
+ packageName = "url-parse";
+ version = "1.4.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz";
+ sha512 = "d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==";
+ };
+ };
+ "utf7-1.0.2" = {
+ name = "utf7";
+ packageName = "utf7";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz";
+ sha1 = "955f490aae653ba220b9456a0a8776c199360991";
+ };
+ };
+ "utf8-2.1.2" = {
+ name = "utf8";
+ packageName = "utf8";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz";
+ sha1 = "1fa0d9270e9be850d9b05027f63519bf46457d96";
+ };
+ };
+ "util-deprecate-1.0.2" = {
+ name = "util-deprecate";
+ packageName = "util-deprecate";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ };
+ "utils-merge-1.0.1" = {
+ name = "utils-merge";
+ packageName = "utils-merge";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ };
+ "uuencode-0.0.4" = {
+ name = "uuencode";
+ packageName = "uuencode";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uuencode/-/uuencode-0.0.4.tgz";
+ sha1 = "c8d50370885663879385ab37e333c7e8e3b0218c";
+ };
+ };
+ "uuid-3.4.0" = {
+ name = "uuid";
+ packageName = "uuid";
+ version = "3.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+ sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+ };
+ };
+ "validator-11.1.0" = {
+ name = "validator";
+ packageName = "validator";
+ version = "11.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/validator/-/validator-11.1.0.tgz";
+ sha512 = "qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg==";
+ };
+ };
+ "vary-1.1.2" = {
+ name = "vary";
+ packageName = "vary";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ };
+ "verror-1.10.0" = {
+ name = "verror";
+ packageName = "verror";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ };
+ "vm2-3.9.2" = {
+ name = "vm2";
+ packageName = "vm2";
+ version = "3.9.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vm2/-/vm2-3.9.2.tgz";
+ sha512 = "nzyFmHdy2FMg7mYraRytc2jr4QBaUY3TEGe3q3bK8EgS9WC98wxn2jrPxS/ruWm+JGzrEIIeufKweQzVoQEd+Q==";
+ };
+ };
+ "which-1.3.1" = {
+ name = "which";
+ packageName = "which";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
+ sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+ };
+ };
+ "which-module-2.0.0" = {
+ name = "which-module";
+ packageName = "which-module";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+ sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+ };
+ };
+ "wide-align-1.1.3" = {
+ name = "wide-align";
+ packageName = "wide-align";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+ sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+ };
+ };
+ "widest-line-3.1.0" = {
+ name = "widest-line";
+ packageName = "widest-line";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz";
+ sha512 = "NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==";
+ };
+ };
+ "wmf-1.0.2" = {
+ name = "wmf";
+ packageName = "wmf";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz";
+ sha512 = "/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==";
+ };
+ };
+ "word-0.3.0" = {
+ name = "word";
+ packageName = "word";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/word/-/word-0.3.0.tgz";
+ sha512 = "OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==";
+ };
+ };
+ "wrap-ansi-4.0.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz";
+ sha512 = "uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==";
+ };
+ };
+ "wrap-ansi-5.1.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "5.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+ sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
+ };
+ };
+ "wrap-ansi-6.2.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "6.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+ sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
+ };
+ };
+ "wrap-ansi-7.0.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "7.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
+ sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==";
+ };
+ };
+ "wrappy-1.0.2" = {
+ name = "wrappy";
+ packageName = "wrappy";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ };
+ "ws-7.4.1" = {
+ name = "ws";
+ packageName = "ws";
+ version = "7.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz";
+ sha512 = "pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==";
+ };
+ };
+ "xlsx-0.16.9" = {
+ name = "xlsx";
+ packageName = "xlsx";
+ version = "0.16.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xlsx/-/xlsx-0.16.9.tgz";
+ sha512 = "gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw==";
+ };
+ };
+ "xml2js-0.4.23" = {
+ name = "xml2js";
+ packageName = "xml2js";
+ version = "0.4.23";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz";
+ sha512 = "ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==";
+ };
+ };
+ "xmlbuilder-11.0.1" = {
+ name = "xmlbuilder";
+ packageName = "xmlbuilder";
+ version = "11.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz";
+ sha512 = "fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==";
+ };
+ };
+ "xmldom-0.4.0" = {
+ name = "xmldom";
+ packageName = "xmldom";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xmldom/-/xmldom-0.4.0.tgz";
+ sha512 = "2E93k08T30Ugs+34HBSTQLVtpi6mCddaY8uO+pMNk1pqSjV5vElzn4mmh6KLxN3hki8rNcHSYzILoh3TEWORvA==";
+ };
+ };
+ "xpath.js-1.1.0" = {
+ name = "xpath.js";
+ packageName = "xpath.js";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xpath.js/-/xpath.js-1.1.0.tgz";
+ sha512 = "jg+qkfS4K8E7965sqaUl8mRngXiKb3WZGfONgE18pr03FUQiuSV6G+Ej4tS55B+rIQSFEIw3phdVAQ4pPqNWfQ==";
+ };
+ };
+ "xregexp-2.0.0" = {
+ name = "xregexp";
+ packageName = "xregexp";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz";
+ sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
+ };
+ };
+ "xtend-4.0.2" = {
+ name = "xtend";
+ packageName = "xtend";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+ sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+ };
+ };
+ "y18n-4.0.1" = {
+ name = "y18n";
+ packageName = "y18n";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz";
+ sha512 = "wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==";
+ };
+ };
+ "y18n-5.0.5" = {
+ name = "y18n";
+ packageName = "y18n";
+ version = "5.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz";
+ sha512 = "hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==";
+ };
+ };
+ "yallist-2.1.2" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ };
+ "yallist-3.1.1" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
+ sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+ };
+ };
+ "yallist-4.0.0" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
+ sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
+ };
+ };
+ "yargonaut-1.1.4" = {
+ name = "yargonaut";
+ packageName = "yargonaut";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz";
+ sha512 = "rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==";
+ };
+ };
+ "yargs-13.3.0" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "13.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz";
+ sha512 = "2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==";
+ };
+ };
+ "yargs-15.4.1" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "15.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+ sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
+ };
+ };
+ "yargs-16.1.1" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "16.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-16.1.1.tgz";
+ sha512 = "hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w==";
+ };
+ };
+ "yargs-parser-13.0.0" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "13.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz";
+ sha512 = "w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==";
+ };
+ };
+ "yargs-parser-13.1.2" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "13.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
+ sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
+ };
+ };
+ "yargs-parser-18.1.3" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "18.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+ sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+ };
+ };
+ "yargs-parser-20.2.4" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "20.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz";
+ sha512 = "WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==";
+ };
+ };
+ };
+in
+{
+ n8n = nodeEnv.buildNodePackage {
+ name = "n8n";
+ packageName = "n8n";
+ version = "0.96.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/n8n/-/n8n-0.96.0.tgz";
+ sha512 = "HllfTHaD5g98YeGRsGQEeOg1WUUxQr5jnYEWD1qjIWkTVYqVrtEWaEdOxDxnko3Fw7sh2XqtWk1HZHNCRSTQuA==";
+ };
+ dependencies = [
+ sources."@azure/ms-rest-azure-env-1.1.2"
+ (sources."@azure/ms-rest-js-1.9.0" // {
+ dependencies = [
+ sources."tough-cookie-2.5.0"
+ ];
+ })
+ sources."@azure/ms-rest-nodeauth-2.0.2"
+ (sources."@icetee/ftp-0.3.15" // {
+ dependencies = [
+ sources."isarray-0.0.1"
+ sources."readable-stream-1.1.14"
+ sources."string_decoder-0.10.31"
+ ];
+ })
+ sources."@nodelib/fs.scandir-2.1.3"
+ sources."@nodelib/fs.stat-2.0.3"
+ sources."@nodelib/fs.walk-1.2.4"
+ sources."@oclif/command-1.8.0"
+ (sources."@oclif/config-1.17.0" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ (sources."@oclif/errors-1.3.4" // {
+ dependencies = [
+ sources."ansi-styles-4.3.0"
+ sources."color-convert-2.0.1"
+ sources."color-name-1.1.4"
+ sources."wrap-ansi-7.0.0"
+ ];
+ })
+ sources."@oclif/linewrap-1.0.0"
+ sources."@oclif/parser-3.8.5"
+ sources."@oclif/plugin-help-3.2.0"
+ sources."@servie/events-1.0.0"
+ sources."@sqltools/formatter-1.2.2"
+ sources."@tokenizer/token-0.1.1"
+ sources."@types/bluebird-3.5.33"
+ sources."@types/body-parser-1.19.0"
+ sources."@types/connect-3.4.33"
+ sources."@types/debug-4.1.5"
+ sources."@types/express-4.17.9"
+ sources."@types/express-jwt-0.0.42"
+ sources."@types/express-serve-static-core-4.17.14"
+ sources."@types/express-unless-0.5.1"
+ sources."@types/ftp-0.3.31"
+ sources."@types/glob-7.1.3"
+ sources."@types/jsonwebtoken-8.5.0"
+ sources."@types/mime-2.0.3"
+ sources."@types/minimatch-3.0.3"
+ sources."@types/node-14.14.10"
+ sources."@types/promise-ftp-1.3.4"
+ sources."@types/promise-ftp-common-1.1.0"
+ sources."@types/qs-6.9.5"
+ sources."@types/range-parser-1.2.3"
+ sources."@types/readable-stream-2.3.9"
+ sources."@types/serve-static-1.13.8"
+ sources."@types/tough-cookie-2.3.7"
+ sources."@types/tunnel-0.0.0"
+ sources."abbrev-1.1.1"
+ sources."accepts-1.3.7"
+ sources."access-control-1.0.1"
+ (sources."adal-node-0.1.28" // {
+ dependencies = [
+ sources."@types/node-8.10.66"
+ ];
+ })
+ sources."adler-32-1.2.0"
+ sources."ajv-6.12.6"
+ sources."ansi-escapes-4.3.1"
+ sources."ansi-regex-5.0.0"
+ sources."ansi-styles-3.2.1"
+ sources."ansicolors-0.3.2"
+ sources."any-promise-1.3.0"
+ sources."app-root-path-3.0.0"
+ sources."aproba-1.2.0"
+ sources."are-we-there-yet-1.1.5"
+ (sources."argparse-1.0.10" // {
+ dependencies = [
+ sources."sprintf-js-1.0.3"
+ ];
+ })
+ sources."array-flatten-1.1.1"
+ sources."array-parallel-0.1.3"
+ sources."array-series-0.1.5"
+ sources."array-union-2.1.0"
+ sources."asn1-0.2.4"
+ sources."assert-options-0.6.2"
+ sources."assert-plus-1.0.0"
+ sources."async-3.2.0"
+ sources."asynckit-0.4.0"
+ sources."aws-sign2-0.7.0"
+ sources."aws4-1.11.0"
+ sources."axios-0.19.2"
+ sources."balanced-match-1.0.0"
+ sources."base64-js-1.5.1"
+ sources."basic-auth-2.0.1"
+ sources."bcrypt-pbkdf-1.0.2"
+ sources."bcryptjs-2.4.3"
+ sources."bl-2.2.1"
+ sources."bluebird-2.11.0"
+ (sources."body-parser-1.19.0" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ sources."ms-2.0.0"
+ ];
+ })
+ sources."body-parser-xml-1.1.0"
+ sources."boolbase-1.0.0"
+ sources."brace-expansion-1.1.11"
+ sources."braces-3.0.2"
+ sources."bson-1.1.5"
+ sources."buffer-5.7.1"
+ sources."buffer-equal-constant-time-1.0.1"
+ sources."buffer-from-1.1.1"
+ sources."buffer-writer-2.0.0"
+ sources."byte-length-1.0.2"
+ sources."bytes-3.1.0"
+ sources."callback-stream-1.1.0"
+ (sources."camel-case-4.1.2" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."camelcase-5.3.1"
+ (sources."capital-case-1.0.4" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."cardinal-2.1.1"
+ sources."caseless-0.12.0"
+ sources."cfb-1.2.0"
+ sources."chalk-2.4.2"
+ (sources."change-case-4.1.2" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."chardet-0.7.0"
+ sources."cheerio-1.0.0-rc.3"
+ sources."chownr-1.1.4"
+ (sources."clean-stack-3.0.1" // {
+ dependencies = [
+ sources."escape-string-regexp-4.0.0"
+ ];
+ })
+ sources."cli-cursor-3.1.0"
+ (sources."cli-highlight-2.1.9" // {
+ dependencies = [
+ sources."ansi-styles-4.3.0"
+ sources."chalk-4.1.0"
+ sources."cliui-6.0.0"
+ sources."color-convert-2.0.1"
+ sources."color-name-1.1.4"
+ sources."find-up-4.1.0"
+ sources."has-flag-4.0.0"
+ sources."locate-path-5.0.0"
+ sources."p-locate-4.1.0"
+ sources."parse5-5.1.1"
+ sources."path-exists-4.0.0"
+ sources."supports-color-7.2.0"
+ sources."wrap-ansi-6.2.0"
+ sources."yargs-15.4.1"
+ sources."yargs-parser-18.1.3"
+ ];
+ })
+ sources."cli-width-3.0.0"
+ (sources."client-oauth2-4.3.3" // {
+ dependencies = [
+ sources."safe-buffer-5.2.1"
+ ];
+ })
+ (sources."cliui-5.0.0" // {
+ dependencies = [
+ sources."ansi-regex-4.1.0"
+ sources."emoji-regex-7.0.3"
+ sources."is-fullwidth-code-point-2.0.0"
+ sources."string-width-3.1.0"
+ sources."strip-ansi-5.2.0"
+ sources."wrap-ansi-5.1.0"
+ ];
+ })
+ sources."code-point-at-1.1.0"
+ (sources."codepage-1.14.0" // {
+ dependencies = [
+ sources."commander-2.14.1"
+ ];
+ })
+ sources."color-3.0.0"
+ sources."color-convert-1.9.3"
+ sources."color-name-1.1.3"
+ sources."color-string-1.5.4"
+ sources."colornames-1.1.1"
+ sources."colorspace-1.1.2"
+ sources."combined-stream-1.0.8"
+ sources."commander-2.17.1"
+ sources."commist-1.1.0"
+ sources."compressible-2.0.18"
+ (sources."compression-1.7.4" // {
+ dependencies = [
+ sources."bytes-3.0.0"
+ sources."debug-2.6.9"
+ sources."ms-2.0.0"
+ ];
+ })
+ sources."concat-map-0.0.1"
+ sources."concat-stream-1.6.2"
+ sources."connect-history-api-fallback-1.6.0"
+ sources."console-control-strings-1.1.0"
+ (sources."constant-case-3.0.4" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."content-disposition-0.5.3"
+ sources."content-type-1.0.4"
+ sources."convict-5.2.0"
+ sources."cookie-0.4.0"
+ sources."cookie-signature-1.0.6"
+ sources."core-util-is-1.0.2"
+ sources."crc-32-1.2.0"
+ sources."cron-1.8.2"
+ (sources."cross-spawn-4.0.2" // {
+ dependencies = [
+ sources."lru-cache-4.1.5"
+ sources."yallist-2.1.2"
+ ];
+ })
+ sources."crypto-js-4.0.0"
+ sources."csrf-3.1.0"
+ sources."css-select-1.2.0"
+ sources."css-what-2.1.3"
+ sources."d-1.0.1"
+ sources."dashdash-1.14.1"
+ sources."date-utils-1.2.21"
+ sources."debug-4.3.1"
+ sources."decamelize-1.2.0"
+ sources."deep-extend-0.6.0"
+ sources."delayed-stream-1.0.0"
+ sources."delegates-1.0.0"
+ sources."denque-1.4.1"
+ sources."depd-1.1.2"
+ sources."destroy-1.0.4"
+ sources."detect-libc-1.0.3"
+ sources."diagnostics-1.1.1"
+ sources."dir-glob-3.0.1"
+ sources."dom-serializer-0.1.1"
+ sources."domelementtype-1.3.1"
+ sources."domhandler-2.4.2"
+ sources."domutils-1.5.1"
+ (sources."dot-case-3.0.4" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."dotenv-8.2.0"
+ sources."double-ended-queue-2.1.0-0"
+ sources."duplexify-3.7.1"
+ sources."ecc-jsbn-0.1.2"
+ sources."ecdsa-sig-formatter-1.0.11"
+ sources."ee-first-1.1.1"
+ sources."emoji-regex-8.0.0"
+ sources."enabled-1.0.2"
+ sources."encodeurl-1.0.2"
+ sources."encoding-japanese-1.0.30"
+ sources."end-of-stream-1.4.4"
+ sources."entities-1.1.2"
+ sources."env-variable-0.0.6"
+ sources."es5-ext-0.10.53"
+ sources."es6-iterator-2.0.3"
+ sources."es6-map-0.1.5"
+ (sources."es6-set-0.1.5" // {
+ dependencies = [
+ sources."es6-symbol-3.1.1"
+ ];
+ })
+ sources."es6-symbol-3.1.3"
+ sources."escalade-3.1.1"
+ sources."escape-html-1.0.3"
+ sources."escape-string-regexp-1.0.5"
+ sources."eslint-config-riot-1.0.0"
+ sources."esprima-4.0.1"
+ sources."etag-1.8.1"
+ sources."event-emitter-0.3.5"
+ sources."eventsource-1.0.7"
+ sources."exit-on-epipe-1.0.1"
+ (sources."express-4.17.1" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ sources."ms-2.0.0"
+ ];
+ })
+ (sources."ext-1.4.0" // {
+ dependencies = [
+ sources."type-2.1.0"
+ ];
+ })
+ sources."extend-3.0.2"
+ sources."external-editor-3.1.0"
+ sources."extsprintf-1.3.0"
+ sources."fast-deep-equal-3.1.3"
+ sources."fast-glob-3.2.4"
+ sources."fast-json-stable-stringify-2.1.0"
+ sources."fastq-1.9.0"
+ sources."fflate-0.3.11"
+ sources."figlet-1.5.0"
+ sources."figures-3.2.0"
+ sources."file-type-14.7.1"
+ sources."fill-range-7.0.1"
+ (sources."finalhandler-1.1.2" // {
+ dependencies = [
+ sources."debug-2.6.9"
+ sources."ms-2.0.0"
+ ];
+ })
+ sources."find-up-3.0.0"
+ sources."flatted-2.0.2"
+ (sources."follow-redirects-1.5.10" // {
+ dependencies = [
+ sources."debug-3.1.0"
+ sources."ms-2.0.0"
+ ];
+ })
+ sources."forever-agent-0.6.1"
+ sources."form-data-2.3.3"
+ sources."formidable-1.2.2"
+ sources."forwarded-0.1.2"
+ sources."frac-1.1.2"
+ sources."fresh-0.5.2"
+ sources."fs-extra-8.1.0"
+ sources."fs-minipass-1.2.7"
+ sources."fs.realpath-1.0.0"
+ (sources."gauge-2.7.4" // {
+ dependencies = [
+ sources."ansi-regex-2.1.1"
+ sources."is-fullwidth-code-point-1.0.0"
+ sources."string-width-1.0.2"
+ sources."strip-ansi-3.0.1"
+ ];
+ })
+ sources."generate-function-2.3.1"
+ sources."get-caller-file-2.0.5"
+ sources."get-system-fonts-2.0.2"
+ sources."getpass-0.1.7"
+ sources."glob-7.1.6"
+ sources."glob-parent-5.1.1"
+ sources."glob-promise-3.4.0"
+ (sources."glob-stream-6.1.0" // {
+ dependencies = [
+ sources."glob-parent-3.1.0"
+ sources."is-glob-3.1.0"
+ ];
+ })
+ sources."globby-11.0.1"
+ (sources."gm-1.23.1" // {
+ dependencies = [
+ sources."debug-3.2.7"
+ ];
+ })
+ sources."google-timezones-json-1.0.2"
+ sources."graceful-fs-4.2.4"
+ sources."har-schema-2.0.0"
+ sources."har-validator-5.1.5"
+ (sources."has-ansi-2.0.0" // {
+ dependencies = [
+ sources."ansi-regex-2.1.1"
+ ];
+ })
+ sources."has-flag-3.0.0"
+ sources."has-unicode-2.0.1"
+ sources."he-1.2.0"
+ (sources."header-case-2.0.4" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."help-me-1.1.0"
+ sources."highlight.js-10.4.1"
+ sources."html-to-text-5.1.1"
+ (sources."htmlparser2-3.10.1" // {
+ dependencies = [
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."http-errors-1.7.2"
+ sources."http-signature-1.2.0"
+ sources."iconv-lite-0.4.24"
+ sources."ieee754-1.2.1"
+ sources."ignore-5.1.8"
+ sources."ignore-walk-3.0.3"
+ (sources."imap-0.8.19" // {
+ dependencies = [
+ sources."isarray-0.0.1"
+ sources."readable-stream-1.1.14"
+ sources."string_decoder-0.10.31"
+ ];
+ })
+ sources."imap-simple-4.3.0"
+ sources."indent-string-4.0.0"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.3"
+ sources."ini-1.3.5"
+ (sources."inquirer-7.3.3" // {
+ dependencies = [
+ sources."ansi-styles-4.3.0"
+ sources."chalk-4.1.0"
+ sources."color-convert-2.0.1"
+ sources."color-name-1.1.4"
+ sources."has-flag-4.0.0"
+ sources."supports-color-7.2.0"
+ ];
+ })
+ sources."ip-regex-2.1.0"
+ sources."ipaddr.js-1.9.1"
+ sources."is-absolute-1.0.0"
+ sources."is-arrayish-0.3.2"
+ sources."is-buffer-2.0.5"
+ sources."is-docker-2.1.1"
+ sources."is-extglob-2.1.1"
+ sources."is-fullwidth-code-point-3.0.0"
+ sources."is-glob-4.0.1"
+ sources."is-negated-glob-1.0.0"
+ sources."is-number-7.0.0"
+ sources."is-promise-1.0.1"
+ sources."is-property-1.0.2"
+ sources."is-relative-1.0.0"
+ sources."is-typedarray-1.0.0"
+ sources."is-unc-path-1.0.0"
+ sources."is-windows-1.0.2"
+ sources."is-wsl-2.2.0"
+ sources."isarray-1.0.0"
+ sources."isexe-2.0.0"
+ sources."iso-639-1-2.1.4"
+ sources."isstream-0.1.2"
+ sources."js-yaml-3.14.0"
+ sources."jsbi-3.1.4"
+ sources."jsbn-0.1.1"
+ sources."json-schema-0.2.3"
+ sources."json-schema-traverse-0.4.1"
+ sources."json-stable-stringify-without-jsonify-1.0.1"
+ sources."json-stringify-safe-5.0.1"
+ sources."json5-2.1.0"
+ sources."jsonfile-4.0.0"
+ (sources."jsonwebtoken-8.5.1" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."jsprim-1.4.1"
+ sources."jwa-1.4.1"
+ sources."jwks-rsa-1.9.0"
+ sources."jws-3.2.2"
+ sources."kafkajs-1.15.0"
+ sources."kuler-1.0.1"
+ sources."leven-2.1.0"
+ sources."libbase64-1.2.1"
+ (sources."libmime-5.0.0" // {
+ dependencies = [
+ sources."iconv-lite-0.6.2"
+ ];
+ })
+ sources."libqp-1.1.0"
+ sources."limiter-1.1.5"
+ sources."linkify-it-3.0.2"
+ (sources."localtunnel-2.0.0" // {
+ dependencies = [
+ sources."axios-0.19.0"
+ sources."debug-4.1.1"
+ ];
+ })
+ sources."locate-path-3.0.0"
+ sources."lodash-4.17.20"
+ sources."lodash._reinterpolate-3.0.0"
+ sources."lodash.clonedeep-4.5.0"
+ sources."lodash.get-4.4.2"
+ sources."lodash.includes-4.3.0"
+ sources."lodash.isboolean-3.0.3"
+ sources."lodash.isinteger-4.0.4"
+ sources."lodash.isnumber-3.0.3"
+ sources."lodash.isplainobject-4.0.6"
+ sources."lodash.isstring-4.0.1"
+ sources."lodash.once-4.1.1"
+ sources."lodash.set-4.3.2"
+ sources."lodash.template-4.5.0"
+ sources."lodash.templatesettings-4.2.0"
+ sources."lodash.unset-4.5.2"
+ sources."long-4.0.0"
+ (sources."lower-case-2.0.2" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."lru-cache-6.0.0"
+ (sources."lru-memoizer-2.1.2" // {
+ dependencies = [
+ sources."lru-cache-4.0.2"
+ sources."yallist-2.1.2"
+ ];
+ })
+ (sources."mailparser-2.8.1" // {
+ dependencies = [
+ sources."iconv-lite-0.6.2"
+ sources."nodemailer-6.4.11"
+ ];
+ })
+ (sources."mailsplit-5.0.0" // {
+ dependencies = [
+ sources."iconv-lite-0.5.0"
+ sources."libmime-4.2.1"
+ ];
+ })
+ sources."make-error-1.3.6"
+ sources."make-error-cause-2.3.0"
+ sources."media-typer-0.3.0"
+ sources."memory-pager-1.5.0"
+ sources."merge-descriptors-1.0.1"
+ sources."merge2-1.4.1"
+ sources."methods-1.1.2"
+ sources."micromatch-4.0.2"
+ sources."millisecond-0.1.2"
+ sources."mime-1.6.0"
+ sources."mime-db-1.44.0"
+ sources."mime-types-2.1.27"
+ sources."mimic-fn-2.1.0"
+ sources."minimatch-3.0.4"
+ sources."minimist-1.2.5"
+ (sources."minipass-2.9.0" // {
+ dependencies = [
+ sources."yallist-3.1.1"
+ ];
+ })
+ sources."minizlib-1.3.3"
+ sources."mkdirp-0.5.5"
+ sources."moment-2.24.0"
+ sources."moment-timezone-0.5.32"
+ sources."mongodb-3.6.3"
+ sources."mqtt-4.2.1"
+ (sources."mqtt-packet-6.6.0" // {
+ dependencies = [
+ sources."bl-4.0.3"
+ sources."inherits-2.0.4"
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."ms-2.1.2"
+ sources."mssql-6.2.3"
+ sources."mute-stream-0.0.8"
+ (sources."mysql2-2.1.0" // {
+ dependencies = [
+ sources."iconv-lite-0.5.2"
+ sources."lru-cache-5.1.1"
+ sources."yallist-3.1.1"
+ ];
+ })
+ sources."mz-2.7.0"
+ sources."n8n-core-0.54.0"
+ sources."n8n-editor-ui-0.66.0"
+ (sources."n8n-nodes-base-0.91.0" // {
+ dependencies = [
+ sources."moment-2.28.0"
+ ];
+ })
+ sources."n8n-workflow-0.47.0"
+ (sources."named-placeholders-1.1.2" // {
+ dependencies = [
+ sources."lru-cache-4.1.5"
+ sources."yallist-2.1.2"
+ ];
+ })
+ sources."nan-2.14.2"
+ sources."native-duplexpair-1.0.0"
+ (sources."needle-2.5.2" // {
+ dependencies = [
+ sources."debug-3.2.7"
+ ];
+ })
+ sources."negotiator-0.6.2"
+ sources."next-tick-1.0.0"
+ (sources."no-case-3.0.4" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."node-ensure-0.0.0"
+ (sources."node-pre-gyp-0.11.0" // {
+ dependencies = [
+ sources."rimraf-2.7.1"
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."nodeify-1.0.1"
+ sources."nodemailer-6.4.16"
+ sources."nopt-4.0.3"
+ sources."npm-bundled-1.1.1"
+ sources."npm-normalize-package-bin-1.0.1"
+ sources."npm-packlist-1.4.8"
+ sources."npmlog-4.1.2"
+ sources."nth-check-1.0.2"
+ sources."number-is-nan-1.0.1"
+ sources."oauth-1.0a-2.2.6"
+ sources."oauth-sign-0.9.0"
+ sources."object-assign-4.1.1"
+ sources."on-finished-2.3.0"
+ sources."on-headers-1.0.2"
+ sources."once-1.4.0"
+ sources."onetime-5.1.2"
+ sources."open-7.3.0"
+ sources."openurl-1.1.1"
+ sources."ordered-read-streams-1.0.1"
+ sources."original-1.0.2"
+ sources."os-homedir-1.0.2"
+ sources."os-tmpdir-1.0.2"
+ sources."osenv-0.1.5"
+ sources."p-cancelable-2.0.0"
+ sources."p-limit-2.3.0"
+ sources."p-locate-3.0.0"
+ sources."p-try-2.2.0"
+ sources."packet-reader-1.0.0"
+ (sources."param-case-3.0.4" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."parent-require-1.0.0"
+ sources."parse5-3.0.3"
+ (sources."parse5-htmlparser2-tree-adapter-6.0.1" // {
+ dependencies = [
+ sources."parse5-6.0.1"
+ ];
+ })
+ sources."parseurl-1.3.3"
+ (sources."pascal-case-3.1.2" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ (sources."path-case-3.0.4" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."path-dirname-1.0.2"
+ sources."path-exists-3.0.0"
+ sources."path-is-absolute-1.0.1"
+ sources."path-to-regexp-0.1.7"
+ sources."path-type-4.0.0"
+ (sources."pdf-parse-1.1.1" // {
+ dependencies = [
+ sources."debug-3.2.7"
+ ];
+ })
+ sources."peek-readable-3.1.0"
+ sources."performance-now-2.1.0"
+ sources."pg-8.5.1"
+ sources."pg-connection-string-2.4.0"
+ sources."pg-int8-1.0.1"
+ sources."pg-minify-1.6.1"
+ sources."pg-pool-3.2.2"
+ sources."pg-promise-10.8.1"
+ sources."pg-protocol-1.4.0"
+ sources."pg-types-2.2.0"
+ sources."pgpass-1.0.4"
+ sources."picomatch-2.2.2"
+ sources."popsicle-12.1.0"
+ sources."popsicle-content-encoding-1.0.0"
+ sources."popsicle-cookie-jar-1.0.0"
+ sources."popsicle-redirects-1.1.0"
+ sources."popsicle-transport-http-1.0.9"
+ sources."popsicle-transport-xhr-2.0.0"
+ sources."popsicle-user-agent-1.0.0"
+ sources."postgres-array-2.0.0"
+ sources."postgres-bytea-1.0.0"
+ sources."postgres-date-1.0.7"
+ sources."postgres-interval-1.2.0"
+ sources."printj-1.1.2"
+ sources."process-nextick-args-2.0.1"
+ sources."promise-1.3.0"
+ sources."promise-ftp-1.3.5"
+ sources."promise-ftp-common-1.1.5"
+ sources."proxy-addr-2.0.6"
+ sources."pseudomap-1.0.2"
+ sources."psl-1.8.0"
+ sources."pump-3.0.0"
+ (sources."pumpify-1.5.1" // {
+ dependencies = [
+ sources."pump-2.0.1"
+ ];
+ })
+ sources."punycode-2.1.1"
+ sources."qs-6.7.0"
+ sources."querystringify-2.2.0"
+ sources."quoted-printable-1.0.1"
+ sources."random-bytes-1.0.0"
+ sources."range-parser-1.2.1"
+ sources."raw-body-2.4.0"
+ sources."rc-1.2.8"
+ sources."readable-stream-2.3.7"
+ sources."readable-web-to-node-stream-2.0.0"
+ sources."redeyed-2.1.1"
+ sources."redis-2.8.0"
+ sources."redis-commands-1.6.0"
+ sources."redis-parser-2.6.0"
+ sources."reflect-metadata-0.1.13"
+ sources."reinterval-1.1.0"
+ sources."remove-trailing-separator-1.1.0"
+ (sources."request-2.88.2" // {
+ dependencies = [
+ sources."qs-6.5.2"
+ sources."tough-cookie-2.5.0"
+ ];
+ })
+ sources."request-promise-core-1.1.4"
+ (sources."request-promise-native-1.0.9" // {
+ dependencies = [
+ sources."tough-cookie-2.5.0"
+ ];
+ })
+ sources."require-directory-2.1.1"
+ sources."require-main-filename-2.0.0"
+ (sources."require_optional-1.0.1" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."requires-port-1.0.0"
+ sources."resolve-from-2.0.0"
+ sources."restore-cursor-3.1.0"
+ sources."retry-0.12.0"
+ sources."reusify-1.0.4"
+ (sources."rhea-1.0.24" // {
+ dependencies = [
+ sources."debug-3.2.7"
+ ];
+ })
+ sources."rimraf-3.0.2"
+ sources."riot-tmpl-3.0.8"
+ sources."rndm-1.2.0"
+ (sources."rss-parser-3.9.0" // {
+ dependencies = [
+ sources."entities-2.1.0"
+ ];
+ })
+ sources."run-async-2.4.1"
+ sources."run-parallel-1.1.10"
+ sources."rxjs-6.6.3"
+ sources."safe-buffer-5.1.2"
+ sources."safer-buffer-2.1.2"
+ sources."saslprep-1.0.3"
+ sources."sax-1.2.4"
+ sources."semver-7.3.4"
+ (sources."send-0.17.1" // {
+ dependencies = [
+ (sources."debug-2.6.9" // {
+ dependencies = [
+ sources."ms-2.0.0"
+ ];
+ })
+ sources."ms-2.1.1"
+ ];
+ })
+ (sources."sentence-case-3.0.4" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."seq-queue-0.0.5"
+ sources."serve-static-1.14.1"
+ sources."servie-4.3.3"
+ sources."set-blocking-2.0.0"
+ sources."setheader-1.0.2"
+ sources."setprototypeof-1.1.1"
+ sources."sha.js-2.4.11"
+ sources."signal-exit-3.0.3"
+ sources."simple-swizzle-0.2.2"
+ sources."slash-3.0.0"
+ (sources."snake-case-3.0.4" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."sparse-bitfield-3.0.3"
+ sources."spex-3.0.2"
+ (sources."split2-3.2.2" // {
+ dependencies = [
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."sprintf-js-1.1.2"
+ sources."sqlite3-4.2.0"
+ sources."sqlstring-2.3.2"
+ sources."sse-channel-3.1.1"
+ sources."ssf-0.11.2"
+ sources."ssh2-0.8.9"
+ (sources."ssh2-sftp-client-5.3.2" // {
+ dependencies = [
+ sources."concat-stream-2.0.0"
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."ssh2-streams-0.4.10"
+ sources."sshpk-1.16.1"
+ sources."statuses-1.5.0"
+ sources."stealthy-require-1.1.1"
+ sources."stream-shift-1.0.1"
+ sources."streamsearch-0.1.2"
+ sources."string-width-4.2.0"
+ sources."string_decoder-1.1.1"
+ sources."strip-ansi-6.0.0"
+ sources."strip-json-comments-2.0.1"
+ sources."strtok3-6.0.4"
+ sources."supports-color-5.5.0"
+ (sources."tar-4.4.13" // {
+ dependencies = [
+ sources."yallist-3.1.1"
+ ];
+ })
+ sources."tarn-1.1.5"
+ (sources."tedious-6.7.0" // {
+ dependencies = [
+ sources."@types/node-12.19.8"
+ sources."bl-3.0.1"
+ sources."depd-2.0.0"
+ sources."iconv-lite-0.5.2"
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."text-hex-1.0.0"
+ sources."thenify-3.3.1"
+ sources."thenify-all-1.6.0"
+ sources."through-2.3.8"
+ sources."through2-2.0.5"
+ sources."through2-filter-3.0.0"
+ sources."throwback-4.1.0"
+ sources."tlds-1.208.0"
+ sources."tmp-0.0.33"
+ (sources."tmp-promise-3.0.2" // {
+ dependencies = [
+ sources."tmp-0.2.1"
+ ];
+ })
+ sources."to-absolute-glob-2.0.2"
+ sources."to-regex-range-5.0.1"
+ sources."toidentifier-1.0.0"
+ sources."token-types-2.0.0"
+ sources."tough-cookie-3.0.1"
+ sources."ts-expect-1.1.0"
+ sources."tslib-1.11.2"
+ sources."tsscmp-1.0.6"
+ sources."tunnel-0.0.6"
+ sources."tunnel-agent-0.6.0"
+ sources."tweetnacl-0.14.5"
+ sources."type-1.2.0"
+ sources."type-fest-0.11.0"
+ sources."type-is-1.6.18"
+ sources."typedarray-0.0.6"
+ sources."typedarray-to-buffer-3.1.5"
+ (sources."typeorm-0.2.29" // {
+ dependencies = [
+ sources."ansi-styles-4.3.0"
+ sources."chalk-4.1.0"
+ sources."cliui-7.0.4"
+ sources."color-convert-2.0.1"
+ sources."color-name-1.1.4"
+ sources."has-flag-4.0.0"
+ sources."mkdirp-1.0.4"
+ sources."supports-color-7.2.0"
+ sources."tslib-1.14.1"
+ sources."wrap-ansi-7.0.0"
+ sources."y18n-5.0.5"
+ sources."yargs-16.1.1"
+ sources."yargs-parser-20.2.4"
+ ];
+ })
+ sources."uc.micro-1.0.6"
+ sources."uid-safe-2.1.5"
+ sources."unc-path-regex-0.1.2"
+ sources."underscore-1.12.0"
+ sources."unique-stream-2.3.1"
+ sources."universalify-0.1.2"
+ sources."unpipe-1.0.0"
+ (sources."upper-case-2.0.2" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ (sources."upper-case-first-2.0.2" // {
+ dependencies = [
+ sources."tslib-2.0.3"
+ ];
+ })
+ sources."uri-js-4.4.0"
+ sources."url-parse-1.4.7"
+ (sources."utf7-1.0.2" // {
+ dependencies = [
+ sources."semver-5.3.0"
+ ];
+ })
+ sources."utf8-2.1.2"
+ sources."util-deprecate-1.0.2"
+ sources."utils-merge-1.0.1"
+ sources."uuencode-0.0.4"
+ sources."uuid-3.4.0"
+ sources."validator-11.1.0"
+ sources."vary-1.1.2"
+ sources."verror-1.10.0"
+ sources."vm2-3.9.2"
+ sources."which-1.3.1"
+ sources."which-module-2.0.0"
+ (sources."wide-align-1.1.3" // {
+ dependencies = [
+ sources."ansi-regex-3.0.0"
+ sources."is-fullwidth-code-point-2.0.0"
+ sources."string-width-2.1.1"
+ sources."strip-ansi-4.0.0"
+ ];
+ })
+ sources."widest-line-3.1.0"
+ sources."wmf-1.0.2"
+ sources."word-0.3.0"
+ (sources."wrap-ansi-4.0.0" // {
+ dependencies = [
+ sources."ansi-regex-3.0.0"
+ sources."is-fullwidth-code-point-2.0.0"
+ sources."string-width-2.1.1"
+ sources."strip-ansi-4.0.0"
+ ];
+ })
+ sources."wrappy-1.0.2"
+ sources."ws-7.4.1"
+ sources."xlsx-0.16.9"
+ sources."xml2js-0.4.23"
+ sources."xmlbuilder-11.0.1"
+ sources."xmldom-0.4.0"
+ sources."xpath.js-1.1.0"
+ sources."xregexp-2.0.0"
+ sources."xtend-4.0.2"
+ sources."y18n-4.0.1"
+ sources."yallist-4.0.0"
+ (sources."yargonaut-1.1.4" // {
+ dependencies = [
+ sources."ansi-regex-2.1.1"
+ sources."ansi-styles-2.2.1"
+ sources."chalk-1.1.3"
+ sources."strip-ansi-3.0.1"
+ sources."supports-color-2.0.0"
+ ];
+ })
+ (sources."yargs-13.3.0" // {
+ dependencies = [
+ sources."ansi-regex-4.1.0"
+ sources."emoji-regex-7.0.3"
+ sources."is-fullwidth-code-point-2.0.0"
+ sources."string-width-3.1.0"
+ sources."strip-ansi-5.2.0"
+ sources."yargs-parser-13.1.2"
+ ];
+ })
+ sources."yargs-parser-13.0.0"
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "n8n Workflow Automation Tool";
+ homepage = https://n8n.io/;
+ license = "SEE LICENSE IN LICENSE.md";
+ };
+ production = true;
+ bypassCache = true;
+ reconstructLock = true;
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/package.json b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/package.json
new file mode 100644
index 000000000000..ac8d49dfaa41
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/n8n/package.json
@@ -0,0 +1,3 @@
+[
+ "n8n"
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ncgopher/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
new file mode 100644
index 000000000000..2e5e840d50dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, ncurses6
+, openssl
+, sqlite
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "ncgopher";
+ version = "0.1.5";
+
+ src = fetchFromGitHub {
+ owner = "jansc";
+ repo = "ncgopher";
+ rev = "v${version}";
+ sha256 = "1mv89sanmr49b9za95jl5slpq960b246j2054r8xfafzqmbp44af";
+ };
+
+ cargoSha256 = "12r4vgrg2bkr3p61yxcsg02kppg84vn956l0v1vb08i94rxzc8zk";
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [
+ ncurses6
+ openssl
+ sqlite
+ ];
+
+ meta = with lib; {
+ description = "A gopher and gemini client for the modern internet";
+ homepage = "https://github.com/jansc/ncgopher";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ shamilton ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ndppd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ndppd/default.nix
new file mode 100644
index 000000000000..931453624811
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ndppd/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, gzip }:
+
+stdenv.mkDerivation rec {
+ pname = "ndppd";
+ version = "0.2.5";
+
+ src = fetchFromGitHub {
+ owner = "DanielAdolfsson";
+ repo = "ndppd";
+ rev = version;
+ sha256 = "0niri5q9qyyyw5lmjpxk19pv3v4srjvmvyd5k6ks99mvqczjx9c0";
+ };
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ ];
+
+ preConfigure = ''
+ substituteInPlace Makefile --replace /bin/gzip ${gzip}/bin/gzip
+ '';
+
+ postInstall = ''
+ mkdir -p $out/etc
+ cp ndppd.conf-dist $out/etc/ndppd.conf
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
+ homepage = "https://github.com/DanielAdolfsson/ndppd";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fadenb globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/netperf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/netperf/default.nix
new file mode 100644
index 000000000000..c2e51ee743b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/netperf/default.nix
@@ -0,0 +1,30 @@
+{ libsmbios, stdenv, autoreconfHook, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "netperf";
+ version = "20180613";
+
+ src = fetchFromGitHub {
+ owner = "HewlettPackard";
+ repo = "netperf";
+ rev = "bcb868bde7f0203bbab69609f65d4088ba7398db";
+ sha256 = "1wbbgdvhadd3qs3afv6i777argdpcyxkwz4yv6aqp223n8ki6dm8";
+ };
+
+ buildInputs = stdenv.lib.optional (stdenv.hostPlatform.isx86) libsmbios;
+ nativeBuildInputs = [ autoreconfHook ];
+ autoreconfPhase = ''
+ autoreconf -i -I src/missing/m4
+ '';
+ configureFlags = [ "--enable-demo" ];
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Benchmark to measure the performance of many different types of networking";
+ homepage = "http://www.netperf.org/netperf/";
+ license = "Hewlett-Packard BSD-like license";
+
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.mmlb ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
new file mode 100644
index 000000000000..8ec460802375
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -0,0 +1,86 @@
+{ stdenv
+, fetchurl
+, pkg-config
+, intltool
+, python3Packages
+, wrapGAppsHook
+, glib
+, libxml2
+, libxslt
+, sqlite
+, libsoup
+, webkitgtk
+, json-glib
+, gst_all_1
+, libnotify
+, gtk3
+, gsettings-desktop-schemas
+, libpeas
+, libsecret
+, gobject-introspection
+, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+ pname = "liferea";
+ version = "1.12.9";
+
+ src = fetchurl {
+ url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
+ sha256 = "06ybr1wjlfir8iqjx6x0v1knd4b2hsy30qmkk4kssy6ky2ahc66q";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ python3Packages.wrapPython
+ intltool
+ pkg-config
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ webkitgtk
+ libxml2
+ libxslt
+ sqlite
+ libsoup
+ libpeas
+ gsettings-desktop-schemas
+ json-glib
+ gobject-introspection
+ libsecret
+ glib-networking
+ libnotify
+ ] ++ (with gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ ]);
+
+ pythonPath = with python3Packages; [
+ pygobject3
+ pycairo
+ ];
+
+ preFixup = ''
+ buildPythonPath "$out $pythonPath"
+ gappsWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A GTK-based news feed aggregator";
+ homepage = "http://lzone.de/liferea/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ romildo ];
+ platforms = platforms.linux;
+
+ longDescription = ''
+ Liferea (Linux Feed Reader) is an RSS/RDF feed reader.
+ It's intended to be a clone of the Windows-only FeedReader.
+ It can be used to maintain a list of subscribed feeds,
+ browse through their items, and show their contents.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix
new file mode 100644
index 000000000000..6dc0630d2db2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix
@@ -0,0 +1,47 @@
+{ spellChecking ? true
+, stdenv, fetchurl, pkgconfig, gtk3, gtkspell3 ? null
+, gmime2, gettext, intltool, itstool, libxml2, libnotify, gnutls
+, makeWrapper, gnupg
+, gnomeSupport ? true, libsecret, gcr
+}:
+
+assert spellChecking -> gtkspell3 != null;
+
+let version = "0.146"; in
+
+stdenv.mkDerivation {
+ pname = "pan";
+ inherit version;
+
+ src = fetchurl {
+ url = "http://pan.rebelbase.com/download/releases/${version}/source/pan-${version}.tar.bz2";
+ sha256 = "17agd27sn4a7nahvkpg0w39kv74njgdrrygs74bbvpaj8rk2hb55";
+ };
+
+ nativeBuildInputs = [ pkgconfig gettext intltool itstool libxml2 makeWrapper ];
+ buildInputs = [ gtk3 gmime2 libnotify gnutls ]
+ ++ stdenv.lib.optional spellChecking gtkspell3
+ ++ stdenv.lib.optionals gnomeSupport [ libsecret gcr ];
+
+ configureFlags = [
+ "--with-dbus"
+ "--with-gtk3"
+ "--with-gnutls"
+ "--enable-libnotify"
+ ] ++ stdenv.lib.optional spellChecking "--with-gtkspell"
+ ++ stdenv.lib.optional gnomeSupport "--enable-gkr";
+
+ postInstall = ''
+ wrapProgram $out/bin/pan --suffix PATH : ${gnupg}/bin
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A GTK-based Usenet newsreader good at both text and binaries";
+ homepage = "http://pan.rebelbase.com/";
+ maintainers = [ maintainers.eelco ];
+ platforms = platforms.linux;
+ license = with licenses; [ gpl2 fdl11 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix
new file mode 100644
index 000000000000..1cc4be8cb27a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, qmake, pkg-config, wrapQtAppsHook
+, qtbase, qttools, qtwebkit, sqlite
+}:
+
+stdenv.mkDerivation rec {
+ pname = "quiterss";
+ version = "0.19.4";
+
+ src = fetchFromGitHub {
+ owner = "QuiteRSS";
+ repo = "quiterss";
+ rev = version;
+ sha256 = "1cgvl67vhn5y7bj5gbjbgk26bhb0196bgrgsp3r5fmrislarj8s6";
+ };
+
+ nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ];
+ buildInputs = [ qtbase qttools qtwebkit sqlite.dev ];
+
+ meta = with stdenv.lib; {
+ description = "A Qt-based RSS/Atom news feed reader";
+ longDescription = ''
+ QuiteRSS is a open-source cross-platform RSS/Atom news feeds reader
+ written on Qt/C++
+ '';
+ homepage = "https://quiterss.org";
+ changelog = "https://github.com/QuiteRSS/quiterss/blob/${version}/CHANGELOG";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix
new file mode 100644
index 000000000000..1cc9c39c991d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl
+, slang, ncurses, openssl }:
+
+stdenv.mkDerivation rec {
+ pname = "slrn";
+ version = "1.0.3a";
+
+ src = fetchurl {
+ url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2";
+ sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v";
+ };
+
+ preConfigure = ''
+ sed -i -e "s|-ltermcap|-lncurses|" configure
+ sed -i autoconf/Makefile.in src/Makefile.in \
+ -e "s|/bin/cp|cp|" \
+ -e "s|/bin/rm|rm|"
+ '';
+
+ configureFlags = [
+ "--with-slang=${slang.dev}"
+ "--with-ssl=${openssl.dev}"
+ ];
+
+ buildInputs = [ slang ncurses openssl ];
+
+ meta = with stdenv.lib; {
+ description = "The slrn (S-Lang read news) newsreader";
+ homepage = "http://slrn.sourceforge.net/index.html";
+ maintainers = with maintainers; [ ehmry ];
+ license = licenses.gpl2;
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch
new file mode 100644
index 000000000000..ab7cb9bffa45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch
@@ -0,0 +1,25 @@
+From bbd366348d1f0e334d4604d04e293a046070e666 Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Fri, 23 Aug 2019 00:19:20 +0200
+Subject: [PATCH] Explicitly copy dbus files into the store dir
+
+---
+ shell_integration/libcloudproviders/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/shell_integration/libcloudproviders/CMakeLists.txt b/shell_integration/libcloudproviders/CMakeLists.txt
+index 1f35335..7f76951 100644
+--- a/shell_integration/libcloudproviders/CMakeLists.txt
++++ b/shell_integration/libcloudproviders/CMakeLists.txt
+@@ -19,7 +19,7 @@ MACRO(PKGCONFIG_GETVAR _package _var _output_variable)
+ ENDMACRO(PKGCONFIG_GETVAR _package _var _output_variable)
+
+ macro(dbus_add_activation_service _sources)
+- PKGCONFIG_GETVAR(dbus-1 session_bus_services_dir _install_dir)
++ set(_install_dir "${CMAKE_INSTALL_DATADIR}/dbus-1/service")
+ foreach (_i ${_sources})
+ get_filename_component(_service_file ${_i} ABSOLUTE)
+ string(REGEX REPLACE "\\.service.*$" ".service" _output_file ${_i})
+--
+2.19.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
new file mode 100644
index 000000000000..bfc928cfbc60
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, inotify-tools
+, libcloudproviders
+, libsecret
+, openssl
+, pcre
+, pkgconfig
+, qtbase
+, qtkeychain
+, qttools
+, qtwebengine
+, qtquickcontrols2
+, qtgraphicaleffects
+, sqlite
+}:
+
+mkDerivation rec {
+ pname = "nextcloud-client";
+ version = "3.0.3";
+
+ src = fetchFromGitHub {
+ owner = "nextcloud";
+ repo = "desktop";
+ rev = "v${version}";
+ sha256 = "0idh8i71jivdjjs2y62l22yl3qxwgcr0hf53dad587bzgkkkr223";
+ };
+
+ patches = [
+ ./0001-Explicitly-copy-dbus-files-into-the-store-dir.patch
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ cmake
+ ];
+
+ buildInputs = [
+ inotify-tools
+ libcloudproviders
+ openssl
+ pcre
+ qtbase
+ qtkeychain
+ qttools
+ qtwebengine
+ qtquickcontrols2
+ qtgraphicaleffects
+ sqlite
+ ];
+
+ qtWrapperArgs = [
+ "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH
+ "-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit
+ ];
+
+ meta = with lib; {
+ description = "Nextcloud themed desktop client";
+ homepage = "https://nextcloud.com";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ caugner ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/nextdns/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/nextdns/default.nix
new file mode 100644
index 000000000000..dfe816fbf934
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/nextdns/default.nix
@@ -0,0 +1,26 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "nextdns";
+ version = "1.9.4";
+
+ src = fetchFromGitHub {
+ owner = "nextdns";
+ repo = "nextdns";
+ rev = "v${version}";
+ sha256 = "0bd3nvisdg64wcy5syb1iyrv3vy4c6j8gy68dbf141hn1qiah1bg";
+ };
+
+ vendorSha256 = "09whpzsn16znyrknfm5zlhla253r69j6d751czza4c83m4r36swj";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ meta = with lib; {
+ description = "NextDNS DNS/53 to DoH Proxy";
+ homepage = "https://nextdns.io";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pnelson ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/nload/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/nload/default.nix
new file mode 100644
index 000000000000..85a39f7e656a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/nload/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, fetchpatch, ncurses }:
+
+stdenv.mkDerivation rec {
+ version = "0.7.4";
+ pname = "nload";
+
+ src = fetchurl {
+ url = "http://www.roland-riegel.de/nload/${pname}-${version}.tar.gz";
+ sha256 = "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61";
+ };
+
+ patches = [
+ # Fixes an ugly bug of graphs scrolling to the side, corrupting the view.
+ # There is an upstream fix, but not a new upstream release that includes it.
+ # Other distributions like Gentoo also patch this as a result; see:
+ # https://github.com/rolandriegel/nload/issues/3#issuecomment-427579143
+ # TODO Remove when https://github.com/rolandriegel/nload/issues/3 is merged and available
+ (fetchpatch {
+ url = "https://github.com/rolandriegel/nload/commit/8a93886e0fb33a81b8fe32e88ee106a581fedd34.patch";
+ name = "nload-0.7.4-Eliminate-flicker-on-some-terminals.patch";
+ sha256 = "10yppy5l50wzpcvagsqkbyf1rcan6aj30am4rw8hmkgnbidf4zbq";
+ })
+ ];
+
+ buildInputs = [ ncurses ];
+
+ meta = {
+ description = "Monitors network traffic and bandwidth usage with ncurses graphs";
+ longDescription = ''
+ nload is a console application which monitors network traffic and
+ bandwidth usage in real time. It visualizes the in- and outgoing traffic
+ using two graphs and provides additional info like total amount of
+ transfered data and min/max network usage.
+ '';
+ homepage = "http://www.roland-riegel.de/nload/index.html";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.devhell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix
new file mode 100644
index 000000000000..3986f2b67cb2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, libconfig, pkgconfig, libevent, openssl }:
+
+stdenv.mkDerivation {
+ pname = "nntp-proxy";
+ version = "2014-01-06";
+
+ src = fetchFromGitHub {
+ owner = "nieluj";
+ repo = "nntp-proxy";
+ rev = "0358e7ad6c4676f90ac5074320b16e1461b0011a";
+ sha256 = "0jwxh71am83fbnq9mn06jl06rq8qybm506js79xmmc3xbk5pqvy4";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libconfig libevent openssl ];
+
+ installFlags = [ "INSTALL_DIR=$(out)/bin/" ];
+
+ prePatch = ''
+ mkdir -p $out/bin
+ substituteInPlace Makefile \
+ --replace /usr/bin/install $(type -P install) \
+ --replace gcc cc
+ '';
+
+ meta = {
+ description = "Simple NNTP proxy with SSL support";
+ homepage = "https://github.com/nieluj/nntp-proxy";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.fadenb ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/nym/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/nym/default.nix
new file mode 100644
index 000000000000..d85266f68d6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/nym/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkgconfig
+, openssl
+, libredirect
+, writeText
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "nym";
+ version = "0.8.1";
+
+ src = fetchFromGitHub {
+ owner = "nymtech";
+ repo = "nym";
+ rev = "v${version}";
+ sha256 = "0wzk9qzjyax73lfjbbag412vw1fgk2wmhhry5hdlvdbkim42m5bn";
+ };
+
+ # fix outdated Cargo.lock
+ cargoPatches = [ (writeText "fix-nym-cargo-lock.patch" ''
+ --- a/Cargo.lock
+ +++ b/Cargo.lock
+ @@ -1826 +1826 @@
+ -version = "0.8.0"
+ +version = "0.8.1"
+ '') ];
+
+ cargoSha256 = "0zr5nzmglmvn6xfqgvipbzy8nw5cl3nf7zjmghkqdwi6zj9p9272";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ openssl ];
+
+ checkType = "debug";
+
+ passthru.updateScript = ./update.sh;
+
+ meta = with lib; {
+ description = "A mixnet providing IP-level privacy";
+ longDescription = ''
+ Nym routes IP packets through other participating nodes to hide their source and destination.
+ In contrast with Tor, it prevents timing attacks at the cost of latency.
+ '';
+ homepage = "https://nymtech.net";
+ license = licenses.asl20;
+ maintainers = [ maintainers.ehmry ];
+ platforms = with platforms; intersectLists (linux ++ darwin) (concatLists [ x86 x86_64 aarch64 arm ]);
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/nym/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/networking/nym/update.sh
new file mode 100755
index 000000000000..0c65521c7f80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/nym/update.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq nix-prefetch
+
+# adapted from rust-analyzer
+
+set -euo pipefail
+cd "$(dirname "$0")"
+nixpkgs=../../../..
+
+owner=$(sed -nE 's/.*\bowner = "(.*)".*/\1/p' ./default.nix)
+repo=$(sed -nE 's/.*\brepo = "(.*)".*/\1/p' ./default.nix)
+rev=$(
+ curl -s "https://api.github.com/repos/$owner/$repo/releases" |
+ jq 'map(select(.prerelease | not)) | .[0].tag_name' --raw-output
+)
+version=${rev:1}
+old_version=$(sed -nE 's/.*\bversion = "(.*)".*/\1/p' ./default.nix)
+if grep -q 'cargoSha256 = ""' ./default.nix; then
+ old_version='broken'
+fi
+if [[ "$version" == "$old_version" ]]; then
+ echo "Up to date: $version"
+ exit
+fi
+echo "$old_version -> $version"
+
+sha256=$(nix-prefetch -f "$nixpkgs" nym.src --rev "$rev")
+# Clear cargoSha256 to avoid inconsistency.
+sed -e "s/version = \".*\"/version = \"$version\"/" \
+ -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" \
+ -e "s/cargoSha256 = \".*\"/cargoSha256 = \"\"/" \
+ --in-place ./default.nix
+
+echo "Prebuilding for cargoSha256"
+cargo_sha256=$(nix-prefetch "{ sha256 }: (import $nixpkgs {}).nym.cargoDeps.overrideAttrs (_: { outputHash = sha256; })")
+sed "s/cargoSha256 = \".*\"/cargoSha256 = \"$cargo_sha256\"/" \
+ --in-place ./default.nix
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/offrss/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/offrss/default.nix
new file mode 100644
index 000000000000..03159a61a404
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/offrss/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, curl, libmrss, podofo, libiconv }:
+
+stdenv.mkDerivation {
+ name = "offrss-1.3";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp offrss $out/bin
+ '';
+
+ buildInputs = [ curl libmrss ]
+ ++ stdenv.lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) podofo
+ ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
+
+ configurePhase = ''
+ substituteInPlace Makefile \
+ --replace '$(CC) $(CFLAGS) $(LDFLAGS)' '$(CXX) $(CFLAGS) $(LDFLAGS)'
+ '' + stdenv.lib.optionalString (!stdenv.isLinux) ''
+ sed 's/#EXTRA/EXTRA/' -i Makefile
+ '' + stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ sed 's/^PDF/#PDF/' -i Makefile
+ '';
+
+ src = fetchurl {
+ url = "http://vicerveza.homeunix.net/~viric/soft/offrss/offrss-1.3.tar.gz";
+ sha256 = "1akw1x84jj2m9z60cvlvmz21qwlaywmw18pl7lgp3bj5nw6250p6";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "http://vicerveza.homeunix.net/~viric/cgi-bin/offrss";
+ description = "Offline RSS/Atom reader";
+ license = licenses.agpl3Plus;
+ maintainers = with maintainers; [ viric ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/omping/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/omping/default.nix
new file mode 100644
index 000000000000..33d5a5f51111
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/omping/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "omping";
+ version = "0.0.5";
+
+ src = fetchFromGitHub {
+ owner = "troglobit";
+ repo = "omping";
+ rev = version;
+ sha256 = "1f0vsbnhxp7bbgdnfqshryx3nhz2sqdnxdj068s0nmzsh53ckbf7";
+ };
+
+ patches = [
+ # This can go in 0.0.6+
+ (fetchpatch {
+ url = "https://github.com/troglobit/omping/commit/08a31ec1a6eb4e8f88c301ef679c3b6f9893f333.patch";
+ sha256 = "1xafyvd46bq53w2zvjw8bdw7vjqbrcrr21cyh6d0zfcn4gif1k0f";
+ name = "fix_manpage_install.patch";
+ })
+ ];
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Open Multicast Ping (omping) is a tool for testing IPv4/IPv6 multicast connectivity on a LAN";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ inherit (src.meta) homepage;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/onionshare/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/onionshare/default.nix
new file mode 100644
index 000000000000..77d08692f625
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/onionshare/default.nix
@@ -0,0 +1,113 @@
+{
+ lib,
+ buildPythonApplication,
+ stdenv,
+ substituteAll,
+ fetchFromGitHub,
+ isPy3k,
+ flask,
+ flask-httpauth,
+ stem,
+ pyqt5,
+ pycrypto,
+ pysocks,
+ pytest,
+ qt5,
+ requests,
+ tor,
+ obfs4,
+}:
+
+let
+ version = "2.2";
+ src = fetchFromGitHub {
+ owner = "micahflee";
+ repo = "onionshare";
+ rev = "v${version}";
+ sha256 = "0m8ygxcyp3nfzzhxs2dfnpqwh1vx0aws44lszpnnczz4fks3a5j4";
+ };
+ meta = with lib; {
+ description = "Securely and anonymously send and receive files";
+ longDescription = ''
+ OnionShare is an open source tool for securely and anonymously sending
+ and receiving files using Tor onion services. It works by starting a web
+ server directly on your computer and making it accessible as an
+ unguessable Tor web address that others can load in Tor Browser to
+ download files from you, or upload files to you. It doesn't require
+ setting up a separate server, using a third party file-sharing service,
+ or even logging into an account.
+
+ Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly
+ any other way people typically send files to each other, when you use
+ OnionShare you don't give any companies access to the files that you're
+ sharing. So long as you share the unguessable web address in a secure way
+ (like pasting it in an encrypted messaging app), no one but you and the
+ person you're sharing with can access the files.
+ '';
+
+ homepage = "https://onionshare.org/";
+
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ lourkeur ];
+ };
+
+ common = buildPythonApplication {
+ pname = "onionshare-common";
+ inherit version meta src;
+
+ disable = !isPy3k;
+ propagatedBuildInputs = [
+ flask
+ flask-httpauth
+ stem
+ pyqt5
+ pycrypto
+ pysocks
+ requests
+ ];
+ buildInputs = [
+ tor
+ obfs4
+ ];
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ inherit tor obfs4;
+ inherit (tor) geoip;
+ })
+ ];
+ postPatch = "substituteInPlace onionshare/common.py --subst-var-by common $out";
+
+ doCheck = false;
+ };
+in
+{
+ onionshare = stdenv.mkDerivation {
+ pname = "onionshare";
+ inherit version meta;
+
+ dontUnpack = true;
+
+ inherit common;
+ installPhase = ''
+ mkdir -p $out/bin
+ cp $common/bin/onionshare -t $out/bin
+ '';
+ };
+ onionshare-gui = stdenv.mkDerivation {
+ pname = "onionshare-gui";
+ inherit version meta;
+
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+
+ dontUnpack = true;
+
+ inherit common;
+ installPhase = ''
+ mkdir -p $out/bin
+ cp $common/bin/onionshare-gui -t $out/bin
+ wrapQtApp $out/bin/onionshare-gui
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch
new file mode 100644
index 000000000000..ddd0c75334bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch
@@ -0,0 +1,134 @@
+diff --git a/onionshare/common.py b/onionshare/common.py
+index 3373462..7fd245b 100644
+--- a/onionshare/common.py
++++ b/onionshare/common.py
+@@ -87,66 +87,16 @@ class Common(object):
+ ),
+ "share",
+ )
+- if not os.path.exists(prefix):
+- # While running tests during stdeb bdist_deb, look 3 directories up for the share folder
+- prefix = os.path.join(
+- os.path.dirname(
+- os.path.dirname(os.path.dirname(os.path.dirname(prefix)))
+- ),
+- "share",
+- )
+-
+- elif self.platform == "BSD" or self.platform == "Linux":
+- # Assume OnionShare is installed systemwide in Linux, since we're not running in dev mode
+- prefix = os.path.join(sys.prefix, "share/onionshare")
+-
+- elif getattr(sys, "frozen", False):
+- # Check if app is "frozen"
+- # https://pythonhosted.org/PyInstaller/#run-time-information
+- if self.platform == "Darwin":
+- prefix = os.path.join(sys._MEIPASS, "share")
+- elif self.platform == "Windows":
+- prefix = os.path.join(os.path.dirname(sys.executable), "share")
++ else:
++ prefix = "@common@/share/onionshare"
+
+ return os.path.join(prefix, filename)
+
+ def get_tor_paths(self):
+- if self.platform == "Linux":
+- tor_path = "/usr/bin/tor"
+- tor_geo_ip_file_path = "/usr/share/tor/geoip"
+- tor_geo_ipv6_file_path = "/usr/share/tor/geoip6"
+- obfs4proxy_file_path = "/usr/bin/obfs4proxy"
+- elif self.platform == "Windows":
+- base_path = os.path.join(
+- os.path.dirname(os.path.dirname(self.get_resource_path(""))), "tor"
+- )
+- tor_path = os.path.join(os.path.join(base_path, "Tor"), "tor.exe")
+- obfs4proxy_file_path = os.path.join(
+- os.path.join(base_path, "Tor"), "obfs4proxy.exe"
+- )
+- tor_geo_ip_file_path = os.path.join(
+- os.path.join(os.path.join(base_path, "Data"), "Tor"), "geoip"
+- )
+- tor_geo_ipv6_file_path = os.path.join(
+- os.path.join(os.path.join(base_path, "Data"), "Tor"), "geoip6"
+- )
+- elif self.platform == "Darwin":
+- base_path = os.path.dirname(
+- os.path.dirname(os.path.dirname(self.get_resource_path("")))
+- )
+- tor_path = os.path.join(base_path, "Resources", "Tor", "tor")
+- tor_geo_ip_file_path = os.path.join(base_path, "Resources", "Tor", "geoip")
+- tor_geo_ipv6_file_path = os.path.join(
+- base_path, "Resources", "Tor", "geoip6"
+- )
+- obfs4proxy_file_path = os.path.join(
+- base_path, "Resources", "Tor", "obfs4proxy"
+- )
+- elif self.platform == "BSD":
+- tor_path = "/usr/local/bin/tor"
+- tor_geo_ip_file_path = "/usr/local/share/tor/geoip"
+- tor_geo_ipv6_file_path = "/usr/local/share/tor/geoip6"
+- obfs4proxy_file_path = "/usr/local/bin/obfs4proxy"
++ tor_path = "@tor@/bin/tor"
++ tor_geo_ip_file_path = "@geoip@/share/tor/geoip"
++ tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6"
++ obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy"
+
+ return (
+ tor_path,
+diff --git a/setup.py b/setup.py
+index 9af72fc..53ca47b 100644
+--- a/setup.py
++++ b/setup.py
+@@ -70,41 +70,41 @@ classifiers = [
+ ]
+ data_files = [
+ (
+- os.path.join(sys.prefix, "share/applications"),
++ "share/applications",
+ ["install/org.onionshare.OnionShare.desktop"],
+ ),
+ (
+- os.path.join(sys.prefix, "share/icons/hicolor/scalable/apps"),
++ "share/icons/hicolor/scalable/apps",
+ ["install/org.onionshare.OnionShare.svg"],
+ ),
+ (
+- os.path.join(sys.prefix, "share/metainfo"),
++ "share/metainfo",
+ ["install/org.onionshare.OnionShare.appdata.xml"],
+ ),
+- (os.path.join(sys.prefix, "share/onionshare"), file_list("share")),
+- (os.path.join(sys.prefix, "share/onionshare/images"), file_list("share/images")),
+- (os.path.join(sys.prefix, "share/onionshare/locale"), file_list("share/locale")),
++ ( "share/onionshare", file_list("share")),
++ ( "share/onionshare/images", file_list("share/images")),
++ ( "share/onionshare/locale", file_list("share/locale")),
+ (
+- os.path.join(sys.prefix, "share/onionshare/templates"),
++ "share/onionshare/templates",
+ file_list("share/templates"),
+ ),
+ (
+- os.path.join(sys.prefix, "share/onionshare/static/css"),
++ "share/onionshare/static/css",
+ file_list("share/static/css"),
+ ),
+ (
+- os.path.join(sys.prefix, "share/onionshare/static/img"),
++ "share/onionshare/static/img",
+ file_list("share/static/img"),
+ ),
+ (
+- os.path.join(sys.prefix, "share/onionshare/static/js"),
++ "share/onionshare/static/js",
+ file_list("share/static/js"),
+ ),
+ ]
+ if not platform.system().endswith("BSD") and platform.system() != "DragonFly":
+ data_files.append(
+ (
+- "/usr/share/nautilus-python/extensions/",
++ "share/nautilus-python/extensions/",
+ ["install/scripts/onionshare-nautilus.py"],
+ )
+ )
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/openbazaar/client.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/openbazaar/client.nix
new file mode 100644
index 000000000000..c890329771fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/openbazaar/client.nix
@@ -0,0 +1,60 @@
+{ stdenv
+, fetchurl
+, gcc-unwrapped
+, dpkg
+, bash
+, nodePackages
+, makeWrapper
+, electron_6
+}:
+
+let
+ electron = electron_6;
+in
+stdenv.mkDerivation rec {
+ pname = "openbazaar-client";
+ version = "2.4.8";
+
+ src = fetchurl {
+ url = "https://github.com/OpenBazaar/openbazaar-desktop/releases/download/v${version}/openbazaar2client_${version}_amd64.deb";
+ sha256 = "0c8ar0rd4yydy4rd4hqafljrhi40v3cwhc9v7fjbrfhcx1ikmf64";
+ };
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ unpackPhase = ''
+ ${dpkg}/bin/dpkg-deb -x $src .
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/share/{${pname},applications,pixmaps}
+
+ cp -a usr/lib/openbazaar2client/{locales,resources} $out/share/${pname}
+ cp -a usr/share/applications/openbazaar2client.desktop $out/share/applications/${pname}.desktop
+ cp -a usr/share/pixmaps/openbazaar2client.png $out/share/pixmaps/${pname}.png
+
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace 'openbazaar2client' 'openbazaar-client'
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+ --add-flags $out/share/${pname}/resources/app \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Decentralized Peer to Peer Marketplace for Bitcoin - client";
+ homepage = "https://www.openbazaar.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ prusnak ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/openbazaar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/openbazaar/default.nix
new file mode 100644
index 000000000000..aa341b292245
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/openbazaar/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "openbazaar";
+ version = "0.14.3";
+
+ suffix = {
+ i686-linux = "linux-386";
+ x86_64-darwin = "darwin-10.6-amd64";
+ x86_64-linux = "linux-amd64";
+ }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+ src = fetchurl {
+ url = "https://github.com/OpenBazaar/openbazaar-go/releases/download/v${version}/${pname}-go-${suffix}";
+ sha256 = {
+ i686-linux = "098dgxpz9m4rfswc9yg77s3bvaifd4453s20n8kmh55g5ipgs2x1";
+ x86_64-darwin = "0q989m4zj7x9d6vimmpfkla78hmx2zr7bxm9yg61ir00w60l14jx";
+ x86_64-linux = "093rwn4nfirknbxz58n16v0l0apj2h0yr63f64fqysmy78883al2";
+ }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+ };
+
+ dontUnpack = true;
+ dontConfigure = true;
+ dontBuild = true;
+ dontStrip = true;
+ dontPatchELF = true;
+ preferLocalBuild = true;
+
+ installPhase = ''
+ install -D $src $out/bin/openbazaard
+ '';
+
+ postFixup = stdenv.lib.optionalString (!stdenv.isDarwin) ''
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ $out/bin/openbazaard
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Decentralized Peer to Peer Marketplace for Bitcoin - daemon";
+ homepage = "https://www.openbazaar.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ prusnak ];
+ platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ostinato/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ostinato/default.nix
new file mode 100644
index 000000000000..0719c137aba5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ostinato/default.nix
@@ -0,0 +1,73 @@
+{ lib, mkDerivation, fetchFromGitHub, fetchurl, qmake, makeDesktopItem
+, qtbase, qtscript, protobuf, libpcap, wireshark, gzip, diffutils, gawk
+, libnl
+}:
+
+mkDerivation rec {
+ pname = "ostinato";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "pstavirs";
+ repo = "ostinato";
+ rev = "v${version}";
+ sha256 = "0B3jOj5rA3/rD2gXS2praZImeP34zN06fOPy/IswXOg=";
+ };
+
+ ostinatoIcon = fetchurl {
+ url = "https://ostinato.org/images/site-logo.png";
+ sha256 = "f5c067823f2934e4d358d76f65a343efd69ad783a7aeabd7ab4ce3cd03490d70";
+ };
+
+ buildInputs = [ qtbase protobuf libpcap qtscript libnl ];
+
+ nativeBuildInputs = [ qmake ];
+
+ patches = [ ./drone_ini.patch ];
+ prePatch = ''
+ sed -i 's|/usr/include/libnl3|${libnl.dev}/include/libnl3|' server/drone.pro
+ '';
+
+ desktopItem = makeDesktopItem {
+ type = "Application";
+ name = "ostinato";
+ desktopName = "Ostinato";
+ genericName = "Packet/Traffic Generator and Analyzer";
+ comment = "Network packet and traffic generator and analyzer with a friendly GUI";
+ categories = "Network";
+ terminal = "false";
+ startupNotify = "true";
+ exec = "$out/bin/ostinato";
+ icon = ostinatoIcon;
+ extraEntries = ''
+ GenericName[it]=Generatore ed Analizzatore di pacchetti di rete
+ Comment[it]=Generatore ed Analizzatore di pacchetti di rete con interfaccia amichevole
+ '';
+ fileValidation = false;
+ };
+
+ postInstall = ''
+ mkdir -p $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications/
+
+ cat > $out/bin/ostinato.ini <<EOF
+ WiresharkPath=${wireshark}/bin/wireshark
+ TsharkPath=${wireshark}/bin/tshark
+ GzipPath=${gzip}/bin/gzip
+ DiffPath=${diffutils}/bin/diff
+ AwkPath=${gawk}/bin/awk
+ EOF
+ '';
+
+ # `cd common; qmake ostproto.pro; make pdmlreader.o`:
+ # pdmlprotocol.h:23:25: fatal error: protocol.pb.h: No such file or directory
+ enableParallelBuilding = false;
+
+ meta = with lib; {
+ description = "A packet traffic generator and analyzer";
+ homepage = "https://ostinato.org";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ rick68 ];
+ platforms = with platforms; linux ++ darwin ++ cygwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch
new file mode 100644
index 000000000000..5818f4e94c30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch
@@ -0,0 +1,14 @@
+diff -Nru ostinato-414d89860de0987843295d149bcabeac7c6fd9e5/server/drone_main.cpp ostinato-414d89860de0987843295d149bcabeac7c6fd9e5.new/server/drone_main.cpp
+--- ostinato-414d89860de0987843295d149bcabeac7c6fd9e5/server/drone_main.cpp 2015-12-24 16:46:35.000000000 +0800
++++ ostinato-414d89860de0987843295d149bcabeac7c6fd9e5.new/server/drone_main.cpp 2015-12-30 20:59:04.319199699 +0800
+@@ -62,8 +62,8 @@
+ /* (Portable Mode) If we have a .ini file in the same directory as the
+ executable, we use that instead of the platform specific location
+ and format for the settings */
+- QString portableIni = QCoreApplication::applicationDirPath()
+- + "/drone.ini";
++ QString portableIni = argc > 2 ? argv[2] :
++ QCoreApplication::applicationDirPath() + "/drone.ini";
+ if (QFile::exists(portableIni))
+ appSettings = new QSettings(portableIni, QSettings::IniFormat);
+ else
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/owamp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/owamp/default.nix
new file mode 100644
index 000000000000..3608ef982a9b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/owamp/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchFromGitHub
+, autoconf, automake, mandoc }:
+
+stdenv.mkDerivation rec {
+ pname = "owamp";
+ version = "3.5.6";
+ buildInputs = [ autoconf automake mandoc ];
+ src = fetchFromGitHub {
+ owner = "perfsonar";
+ repo = "owamp";
+ rev = version;
+ sha256="019rcshmrqk8pfp510j5jvazdcnz0igfkwv44mfxb5wirzj9p6s7";
+ fetchSubmodules = true;
+ };
+
+ preConfigure = ''
+ I2util/bootstrap.sh
+ ./bootstrap
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://software.internet2.edu/owamp/";
+ description = ''A tool for performing one-way active measurements'';
+ platforms = platforms.linux;
+ maintainers = [maintainers.teto];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
new file mode 100644
index 000000000000..d990dfb39d2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, mkDerivation, cmake, pkgconfig, qtbase, qtkeychain, sqlite, libsecret }:
+
+mkDerivation rec {
+ pname = "owncloud-client";
+ version = "2.6.3.14058";
+
+ src = fetchurl {
+ url = "https://download.owncloud.com/desktop/stable/owncloudclient-${version}.tar.xz";
+ sha256 = "1xcklhvbyg34clm9as2rjnjfwxpwq77lmdxj6qc0w7q43viqvlz3";
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [ qtbase qtkeychain sqlite ];
+
+ qtWrapperArgs = [
+ "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
+ ];
+
+ cmakeFlags = [
+ "-UCMAKE_INSTALL_LIBDIR"
+ "-DNO_SHIBBOLETH=1"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Synchronise your ownCloud with your computer using this desktop client";
+ homepage = "https://owncloud.org";
+ maintainers = [ maintainers.qknight ];
+ platforms = platforms.unix;
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/deluge/1/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/deluge/1/default.nix
new file mode 100644
index 000000000000..cafba65c788b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/deluge/1/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, fetchpatch, intltool, libtorrentRasterbar, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+ pname = "deluge";
+ version = "1.3.15";
+
+ src = fetchurl {
+ url = "http://download.deluge-torrent.org/source/${pname}-${version}.tar.bz2";
+ sha256 = "1467b9hmgw59gf398mhbf40ggaka948yz3afh6022v753c9j7y6w";
+ };
+
+ patches = [
+ # Fix preferences when built against libtorrent >=0.16
+ (fetchpatch {
+ url = "https://git.deluge-torrent.org/deluge/patch/?id=38d7b7cdfde3c50d6263602ffb03af92fcbfa52e";
+ sha256 = "0la3i0lkj6yv4725h4kbd07mhfwcb34w7prjl9gxg12q7px6c31d";
+ })
+ ];
+
+ propagatedBuildInputs = with pythonPackages; [
+ pyGtkGlade twisted Mako chardet pyxdg pyopenssl service-identity
+ libtorrentRasterbar.dev libtorrentRasterbar.python setuptools
+ ];
+
+ nativeBuildInputs = [ intltool ];
+
+ postInstall = ''
+ mkdir -p $out/share/applications
+ cp -R deluge/data/pixmaps $out/share/
+ cp -R deluge/data/icons $out/share/
+ cp deluge/data/share/applications/deluge.desktop $out/share/applications
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://deluge-torrent.org";
+ description = "Torrent client";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ domenkozar ebzzry ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/deluge/2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/deluge/2/default.nix
new file mode 100644
index 000000000000..2e9f08ce98a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/deluge/2/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, intltool, libtorrentRasterbar, pythonPackages
+, gtk3, glib, gobject-introspection, librsvg, wrapGAppsHook }:
+
+pythonPackages.buildPythonPackage rec {
+ pname = "deluge";
+ version = "2.0.3";
+
+ src = fetchurl {
+ url = "http://download.deluge-torrent.org/source/2.0/${pname}-${version}.tar.xz";
+ sha256 = "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [
+ twisted Mako chardet pyxdg pyopenssl service-identity
+ libtorrentRasterbar.dev libtorrentRasterbar.python setuptools
+ setproctitle pillow rencode six zope_interface
+ dbus-python pygobject3 pycairo
+ gtk3 gobject-introspection librsvg
+ ];
+
+ nativeBuildInputs = [ intltool wrapGAppsHook glib ];
+
+ checkInputs = with pythonPackages; [
+ pytest /* pytest-twisted */ pytestcov mock
+ mccabe pylint
+ ];
+
+ doCheck = false; # until pytest-twisted is packaged
+
+ postInstall = ''
+ mkdir -p $out/share/applications
+ cp -R deluge/ui/data/pixmaps $out/share/
+ cp -R deluge/ui/data/icons $out/share/
+ cp deluge/ui/data/share/applications/deluge.desktop $out/share/applications
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://deluge-torrent.org";
+ description = "Torrent client";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ domenkozar ebzzry ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
new file mode 100644
index 000000000000..9355bfa5b8d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, qt4, boost, bzip2, libX11
+, fetchpatch, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "eiskaltdcpp";
+ version = "2.2.10";
+
+ src = fetchFromGitHub {
+ owner = "eiskaltdcpp";
+ repo = "eiskaltdcpp";
+ rev = "v${version}";
+ sha256 = "1mqz0g69njmlghcra3izarjxbxi1jrhiwn4ww94b8jv8xb9cv682";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ qt4 boost bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext ]
+ ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b7b56bd7060b426b1f1bfded392ae6853644e2e.patch";
+ sha256 = "1rqjdsvirn3ks9w9qn893fb73mz84xm04wl13fvsvj8p42i5cjas";
+ })
+ (fetchpatch {
+ url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/bb9eb364a943fe2a67b3ea52ec6a3f9e911f07dc.patch";
+ sha256 = "1hjhf9a9j4z8v24g5qh5mcg3n0540lbn85y7kvxsh3khc5v3cywx";
+ })
+ (fetchpatch {
+ url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/ef4426f1f9a8255e335b0862234e6cc28befef5e.patch";
+ sha256 = "13j018c499n4b5as2n39ws64yj0cf4fskxbqab309vmnjkirxv6x";
+ })
+ (fetchpatch {
+ url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/a9c136c8707280d0eeb66be6b289d9718287c55c.patch";
+ sha256 = "0w8v4mbrzk7pmzc475ff96mzzwlh8a0p62kk7p829m5yqdwj4sc9";
+ })
+ (fetchpatch {
+ url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b9c502ff5c98856d4f8fdb7ed3c6ef34448bfb7.patch";
+ sha256 = "0fjwaq0wd9a164k5ysdjy89hx0ixnxc6q7cvyn1ba28snm0pgxb8";
+ })
+ ];
+
+ cmakeFlags = [
+ "-DUSE_ASPELL=ON"
+ "-DUSE_QT_QML=ON"
+ "-DFREE_SPACE_BAR_C=ON"
+ "-DUSE_MINIUPNP=ON"
+ "-DLOCAL_MINIUPNP=ON"
+ "-DDBUS_NOTIFY=ON"
+ "-DUSE_JS=ON"
+ "-DPERL_REGEX=ON"
+ "-DUSE_CLI_XMLRPC=ON"
+ "-DWITH_SOUNDS=ON"
+ "-DLUA_SCRIPT=ON"
+ "-DWITH_LUASCRIPTS=ON"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A cross-platform program that uses the Direct Connect and ADC protocols";
+ homepage = "https://github.com/eiskaltdcpp/eiskaltdcpp";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix
new file mode 100644
index 000000000000..d50f5a679316
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, fetchurl, fetchFromGitHub, ant, jdk, bash, coreutils, substituteAll }:
+
+let
+ freenet_ext = fetchurl {
+ url = "https://downloads.freenetproject.org/latest/freenet-ext.jar";
+ sha256 = "17ypljdvazgx2z6hhswny1lxfrknysz3x6igx8vl3xgdpvbb7wij";
+ };
+
+ bcprov_version = "jdk15on-154";
+ bcprov = fetchurl {
+ url = "https://www.bouncycastle.org/download/bcprov-ext-${bcprov_version}.jar";
+ sha256 = "0abmhg2h44g8c5p7skzqwfxj8xwcjh9vs84mc0hr78k1am0633jk";
+ };
+ seednodes = fetchurl {
+ url = "https://downloads.freenetproject.org/alpha/opennet/seednodes.fref";
+ sha256 = "08awwr8n80b4cdzzb3y8hf2fzkr1f2ly4nlq779d6pvi5jymqdvv";
+ };
+ version = "build01475";
+
+ freenet-jars = stdenv.mkDerivation {
+ pname = "freenet-jars";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "freenet";
+ repo = "fred";
+ rev = version;
+ sha256 = "0k02fna9x219j7dhginbnf27i36bibb0rmm4qdwr5xm28hy1nd08";
+ };
+
+ patchPhase = ''
+ cp ${freenet_ext} lib/freenet/freenet-ext.jar
+ cp ${bcprov} lib/bcprov-${bcprov_version}.jar
+
+ sed '/antcall.*-ext/d' -i build.xml
+ sed 's/@unknown@/${version}/g' -i build-clean.xml
+ '';
+
+ buildInputs = [ ant jdk ];
+
+ buildPhase = "ant package-only";
+
+ installPhase = ''
+ mkdir -p $out/share/freenet
+ cp lib/bcprov-${bcprov_version}.jar $out/share/freenet
+ cp lib/freenet/freenet-ext.jar $out/share/freenet
+ cp dist/freenet.jar $out/share/freenet
+ '';
+ };
+
+in stdenv.mkDerivation {
+ name = "freenet-${version}";
+ inherit version;
+
+ src = substituteAll {
+ src = ./freenetWrapper;
+ inherit bash coreutils seednodes bcprov_version;
+ freenet = freenet-jars;
+ jre = jdk.jre;
+ };
+
+ jars = freenet-jars;
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp $src $out/bin/freenet
+ chmod +x $out/bin/freenet
+ ln -s ${freenet-jars}/share $out/share
+ '';
+
+ meta = {
+ description = "Decentralised and censorship-resistant network";
+ homepage = "https://freenetproject.org/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper
new file mode 100755
index 000000000000..f3106265801f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper
@@ -0,0 +1,18 @@
+#! @bash@/bin/bash
+
+PATH=@coreutils@/bin:$PATH
+
+export FREENET_HOME="$HOME/.local/share/freenet"
+if [ -n "$XDG_DATA_HOME" ]
+ then export FREENET_HOME="$XDG_DATA_HOME/freenet"
+fi
+
+if [ ! -d $FREENET_HOME ]; then
+ mkdir -p $FREENET_HOME
+fi
+
+cp -u @seednodes@ $FREENET_HOME/seednodes.fref
+chmod u+rw $FREENET_HOME/seednodes.fref
+
+cd $FREENET_HOME
+@jre@/bin/java -cp @freenet@/share/freenet/bcprov-@bcprov_version@.jar:@freenet@/share/freenet/freenet-ext.jar:@freenet@/share/freenet/freenet.jar -Xmx1024M freenet.node.NodeStarter
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix
new file mode 100644
index 000000000000..65e2165f64ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix
@@ -0,0 +1,94 @@
+{ stdenv, fetchFromGitHub, gradle, perl, jre, makeWrapper, makeDesktopItem, mplayer }:
+
+let
+ version = "6.6.7-build-529";
+ name = "frostwire-desktop-${version}";
+
+ src = fetchFromGitHub {
+ owner = "frostwire";
+ repo = "frostwire";
+ rev = name;
+ sha256 = "03wdj2kr8akzx8m1scvg98132zbaxh81qjdsxn2645b3gahjwz0m";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "frostwire";
+ desktopName = "FrostWire";
+ genericName = "P2P Bittorrent client";
+ exec = "frostwire";
+ icon = "frostwire";
+ comment = "Search and explore all kinds of files on the Bittorrent network";
+ categories = "Network;FileTransfer;P2P;";
+ };
+
+ # fake build to pre-download deps into fixed-output derivation
+ deps = stdenv.mkDerivation {
+ name = "${name}-deps";
+ inherit src;
+ buildInputs = [ gradle perl ];
+ buildPhase = ''
+ export GRADLE_USER_HOME=$(mktemp -d)
+ ( cd desktop
+ gradle --no-daemon build
+ )
+ '';
+ # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
+ installPhase = ''
+ find $GRADLE_USER_HOME -type f -regex '.*\.\(jar\|pom\)' \
+ | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
+ | sh
+ '';
+ outputHashAlgo = "sha256";
+ outputHashMode = "recursive";
+ outputHash = "11zd98g0d0fdgls4lsskkagwfxyh26spfd6c6g9cahl89czvlg3c";
+ };
+
+in stdenv.mkDerivation {
+ inherit name src;
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ gradle ];
+
+ buildPhase = ''
+ export GRADLE_USER_HOME=$(mktemp -d)
+ ( cd desktop
+
+ # disable auto-update (anyway it won't update frostwire installed in nix store)
+ substituteInPlace src/com/frostwire/gui/updates/UpdateManager.java \
+ --replace 'um.checkForUpdates' '// um.checkForUpdates'
+
+ # fix path to mplayer
+ substituteInPlace src/com/frostwire/gui/player/MediaPlayerLinux.java \
+ --replace /usr/bin/mplayer ${mplayer}/bin/mplayer
+
+ substituteInPlace build.gradle \
+ --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }'
+ gradle --offline --no-daemon build
+ )
+ '';
+
+ installPhase = ''
+ mkdir -p $out/lib $out/share/java
+
+ cp desktop/build/libs/frostwire.jar $out/share/java/frostwire.jar
+
+ cp ${ { x86_64-darwin = "desktop/lib/native/*.dylib";
+ x86_64-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}.so";
+ i686-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}X86.so";
+ }.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}")
+ } $out/lib
+
+ cp -dpR ${desktopItem}/share $out
+
+ makeWrapper ${jre}/bin/java $out/bin/frostwire \
+ --add-flags "-Djava.library.path=$out/lib -jar $out/share/java/frostwire.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.frostwire.com/";
+ description = "BitTorrent Client and Cloud File Downloader";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ gavin ];
+ platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
new file mode 100644
index 000000000000..364aeac550e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ version = "6.8.8";
+ pname = "frostwire";
+
+ src = fetchurl {
+ url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
+ sha256 = "0zxk0nv7m1k4n8n82h1rkh239a58s7j643lgqbw3qx45bdy4sf4k";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/share/java
+ mv $(ls */*.jar) $out/share/java
+
+ makeWrapper $out/share/java/frostwire $out/bin/frostwire \
+ --prefix PATH : ${jre}/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.frostwire.com/";
+ description = "BitTorrent Client and Cloud File Downloader";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ gavin ];
+ platforms = [ "x86_64-linux"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
new file mode 100644
index 000000000000..618ca0749125
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor
+, libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring
+, makeWrapper, ncurses, pkgconfig, libxml2, sqlite, zlib
+, libpulseaudio, libopus, libogg, jansson, libsodium }:
+
+stdenv.mkDerivation rec {
+ pname = "gnunet";
+ version = "0.13.2";
+
+ src = fetchurl {
+ url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
+ sha256 = "0b4a6bxwhpmj274d281vhny7i5rwydrdmab76xk6ji8vf0p705dn";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig libtool makeWrapper ];
+ buildInputs = [
+ adns curl gmp gnutls libextractor libgcrypt libgnurl libidn
+ libmicrohttpd libunistring libxml2 ncurses gettext libsodium
+ sqlite zlib libpulseaudio libopus libogg jansson
+ ];
+
+ preConfigure = ''
+ # Brute force: since nix-worker chroots don't provide
+ # /etc/{resolv.conf,hosts}, replace all references to `localhost'
+ # by their IPv4 equivalent.
+ find . \( -name \*.c -or -name \*.conf \) | \
+ xargs sed -ie 's|\<localhost\>|127.0.0.1|g'
+
+ # Make sure the tests don't rely on `/tmp', for the sake of chroot
+ # builds.
+ find . \( -iname \*test\*.c -or -name \*.conf \) | \
+ xargs sed -ie "s|/tmp|$TMPDIR|g"
+
+ sed -ie 's|@LDFLAGS@|@LDFLAGS@ $(Z_LIBS)|g' \
+ src/regex/Makefile.in \
+ src/fs/Makefile.in
+ '';
+
+ # unfortunately, there's still a few failures with impure tests
+ doCheck = false;
+ checkPhase = ''
+ export GNUNET_PREFIX="$out"
+ export PATH="$out/bin:$PATH"
+ make -k check
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GNU's decentralized anonymous and censorship-resistant P2P framework";
+
+ longDescription = ''
+ GNUnet is a framework for secure peer-to-peer networking that
+ does not use any centralized or otherwise trusted services. A
+ first service implemented on top of the networking layer
+ allows anonymous censorship-resistant file-sharing. Anonymity
+ is provided by making messages originating from a peer
+ indistinguishable from messages that the peer is routing. All
+ peers act as routers and use link-encrypted connections with
+ stable bandwidth utilization to communicate with each other.
+ GNUnet uses a simple, excess-based economic model to allocate
+ resources. Peers in GNUnet monitor each others behavior with
+ respect to resource usage; peers that contribute to the
+ network are rewarded with better service.
+ '';
+
+ homepage = "https://gnunet.org/";
+ license = licenses.agpl3Plus;
+ maintainers = with maintainers; [ pstn vrthra ];
+ platforms = platforms.gnu ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
new file mode 100644
index 000000000000..4090814b3da8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl
+, gnome3
+, gnunet
+, gnutls
+, gtk3
+, libextractor
+, libgcrypt
+, libxml2
+, pkg-config
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnunet-gtk";
+ version = "0.13.1";
+
+ src = fetchurl {
+ url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
+ sha256 = "1zdzgq16h77w6ybwg3lqjsjr965np6iqvncqvkbj07glqd4wss0j";
+ };
+
+ nativeBuildInputs= [
+ pkg-config
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gnome3.glade
+ gnunet
+ gnutls
+ gtk3
+ libextractor
+ libgcrypt
+ libxml2
+ ];
+
+ patchPhase = "patchShebangs pixmaps/icon-theme-installer";
+
+ meta = gnunet.meta // {
+ description = "GNUnet GTK User Interface";
+ homepage = "https://git.gnunet.org/gnunet-gtk.git";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix
new file mode 100644
index 000000000000..19be24bd1b18
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix
@@ -0,0 +1,34 @@
+{ mkDerivation, lib, fetchurl, fetchpatch, cmake
+, extra-cmake-modules, qtbase, qtscript
+, karchive, kcrash, kdnssd, ki18n, kio, knotifications, knotifyconfig
+, kdoctools, kross, kcmutils, kwindowsystem
+, libktorrent, taglib, libgcrypt, kplotting
+}:
+
+mkDerivation rec {
+ pname = "ktorrent";
+ version = "${libktorrent.mainVersion}";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/ktorrent/${libktorrent.mainVersion}/${pname}-${version}.tar.xz";
+ sha256 = "0kwd0npxfg4mdh7f3xadd2zjlqalpb1jxk61505qpcgcssijf534";
+ };
+
+ nativeBuildInputs = [ cmake kdoctools extra-cmake-modules ];
+
+ buildInputs = [
+ qtbase qtscript
+ karchive kcrash kdnssd ki18n kio knotifications knotifyconfig kross kcmutils kwindowsystem
+ libktorrent taglib libgcrypt kplotting
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "KDE integrated BtTorrent client";
+ homepage = "https://www.kde.org/applications/internet/ktorrent/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ eelco ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
new file mode 100644
index 000000000000..124e3492c8cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, buildGoModule, go-bindata }:
+
+buildGoModule rec {
+ pname = "magnetico";
+ version = "0.12.0";
+
+ src = fetchFromGitHub {
+ owner = "boramalper";
+ repo = "magnetico";
+ rev = "v${version}";
+ sha256 = "1avqnfn4llmc9xmpsjfc9ivki0cfvd8sljfzd9yac94xcj581s83";
+ };
+
+ vendorSha256 = "087kikj6sjhjxqymnj7bpxawfmwckihi6mbmi39w0bn2040aflx5";
+
+ nativeBuildInputs = [ go-bindata ];
+ buildPhase = ''
+ make magneticow magneticod
+ '';
+
+ checkPhase = ''
+ make test
+ '';
+
+ meta = with lib; {
+ description = "Autonomous (self-hosted) BitTorrent DHT search engine suite";
+ homepage = "https://github.com/boramalper/magnetico";
+ license = licenses.agpl3;
+ badPlatforms = platforms.darwin;
+ maintainers = with maintainers; [ rnhmjoj ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
new file mode 100644
index 000000000000..786ba434b928
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ocamlPackages, zlib, bzip2, ncurses, file, gd, libpng, libjpeg }:
+
+stdenv.mkDerivation ({
+ name = "mldonkey-3.1.6";
+
+ src = fetchurl {
+ url = "https://github.com/ygrek/mldonkey/releases/download/release-3-1-6/mldonkey-3.1.6.tar.bz2";
+ sha256 = "0g84islkj72ymp0zzppcj9n4r21h0vlghnq87hv2wg580mybadhv";
+ };
+
+ preConfigure = stdenv.lib.optionalString (ocamlPackages.camlp4 != null) ''
+ substituteInPlace Makefile --replace '+camlp4' \
+ '${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4'
+ '';
+
+ buildInputs = [ zlib ncurses bzip2 file gd libpng libjpeg ] ++
+ (with ocamlPackages; [ ocaml camlp4 ]);
+ configureFlags = [ "--disable-gui" ];
+
+ meta = {
+ description = "Client for many p2p networks, with multiple frontends";
+ homepage = "http://mldonkey.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ };
+} // (if !ocamlPackages.ocaml.nativeCompilers then
+{
+ # Byte code compilation (the ocaml opt compiler is not supported in some platforms)
+ buildPhase = "make mlnet.byte";
+ installPhase = ''
+ mkdir -p $out/bin
+ cp mlnet.byte $out/bin/mlnet
+ '';
+
+ # ocaml bytecode selfcontained binaries loose the bytecode if stripped
+ dontStrip = true;
+} else {}))
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
new file mode 100644
index 000000000000..c956f26b1165
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkgconfig, glib, gnutls }:
+
+stdenv.mkDerivation rec {
+ pname = "ncdc";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "https://dev.yorhel.nl/download/ncdc-${version}.tar.gz";
+ sha256 = "1bdgqd07f026qk6vpbxqsin536znd33931m3b4z44prlm9wd6pyi";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ ncurses zlib bzip2 sqlite glib gnutls ];
+
+ meta = with stdenv.lib; {
+ description = "Modern and lightweight direct connect client with a friendly ncurses interface";
+ homepage = "https://dev.yorhel.nl/ncdc";
+ license = licenses.mit;
+ platforms = platforms.linux; # arbitrary
+ maintainers = with maintainers; [ ehmry ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix
new file mode 100644
index 000000000000..82480b1ed21d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, libowfat, zlib }:
+
+stdenv.mkDerivation {
+ name = "opentracker-2018-05-26";
+
+ src = fetchgit {
+ url = "https://erdgeist.org/gitweb/opentracker";
+ rev = "6411f1567f64248b0d145493c2e61004d2822623";
+ sha256 = "110nfb6n4clykwdzpk54iccsfjawq0krjfqhg114i1z0ri5dyl8j";
+ };
+
+ buildInputs = [ libowfat zlib ];
+
+ installPhase = ''
+ runHook preInstall
+ install -D opentracker $out/bin/opentracker
+ install -D opentracker.conf.sample $out/share/doc/opentracker.conf.sample
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://erdgeist.org/arts/software/opentracker/";
+ license = licenses.beerware;
+ platforms = platforms.linux;
+ description = "Bittorrent tracker project which aims for minimal resource usage and is intended to run at your wlan router";
+ maintainers = with maintainers; [ makefu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
new file mode 100644
index 000000000000..9b6a8bd707d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -0,0 +1,47 @@
+{ mkDerivation, lib, fetchFromGitHub, pkgconfig
+, boost, libtorrentRasterbar, qtbase, qttools, qtsvg
+, debugSupport ? false # Debugging
+, guiSupport ? true, dbus ? null # GUI (disable to run headless)
+, webuiSupport ? true # WebUI
+}:
+
+assert guiSupport -> (dbus != null);
+with lib;
+
+mkDerivation rec {
+ pname = "qbittorrent";
+ version = "4.3.0.1";
+
+ src = fetchFromGitHub {
+ owner = "qbittorrent";
+ repo = "qbittorrent";
+ rev = "release-${version}";
+ sha256 = "068sf24mjvc2idimgpzvf7gjk8n9xrr3qqlqfx5j3j598ckm3yfp";
+ };
+
+ # NOTE: 2018-05-31: CMake is working but it is not officially supported
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ boost libtorrentRasterbar qtbase qttools qtsvg ]
+ ++ optional guiSupport dbus; # D(esktop)-Bus depends on GUI support
+
+ # Otherwise qm_gen.pri assumes lrelease-qt5, which does not exist.
+ QMAKE_LRELEASE = "lrelease";
+
+ configureFlags = [
+ "--with-boost-libdir=${boost.out}/lib"
+ "--with-boost=${boost.dev}" ]
+ ++ optionals (!guiSupport) [ "--disable-gui" "--enable-systemd" ] # Also place qbittorrent-nox systemd service files
+ ++ optional (!webuiSupport) "--disable-webui"
+ ++ optional debugSupport "--enable-debug";
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Featureful free software BitTorrent client";
+ homepage = "https://www.qbittorrent.org/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ Anton-Latukha ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix
new file mode 100644
index 000000000000..a6a0ab272873
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchFromGitHub, libupnp, gpgme, gnome3, glib, libssh, pkgconfig, protobuf, bzip2
+, libXScrnSaver, speex, curl, libxml2, libxslt, sqlcipher, libmicrohttpd, opencv, qmake, ffmpeg_3
+, qtmultimedia, qtx11extras, qttools }:
+
+stdenv.mkDerivation rec {
+ pname = "retroshare";
+ version = "0.6.2";
+
+ src = fetchFromGitHub {
+ owner = "RetroShare";
+ repo = "RetroShare";
+ rev = "v${version}";
+ sha256 = "0hly2x87wdvqzzwf3wjzi7092bj8fk4xs6302rkm8gp9bkkmiiw8";
+ };
+
+ # NIX_CFLAGS_COMPILE = [ "-I${glib.dev}/include/glib-2.0" "-I${glib.dev}/lib/glib-2.0/include" "-I${libxml2.dev}/include/libxml2" "-I${sqlcipher}/include/sqlcipher" ];
+
+ patchPhase = ''
+ # Fix build error
+ sed -i 's/UpnpString_get_String(es_event->PublisherUrl)/es_event->PublisherUrl/' \
+ libretroshare/src/upnp/UPnPBase.cpp
+ '';
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ buildInputs = [
+ speex libupnp gpgme gnome3.libgnome-keyring glib libssh qtmultimedia qtx11extras qttools
+ protobuf bzip2 libXScrnSaver curl libxml2 libxslt sqlcipher libmicrohttpd opencv ffmpeg_3
+ ];
+
+ preConfigure = ''
+ qmakeFlags="$qmakeFlags DESTDIR=$out"
+ '';
+
+ # gui/settings/PluginsPage.h:25:28: fatal error: ui_PluginsPage.h: No such file or directory
+ enableParallelBuilding = false;
+
+ postInstall = ''
+ mkdir -p $out/bin
+ mv $out/RetroShare06-nogui $out/bin/RetroShare-nogui
+ mv $out/RetroShare06 $out/bin/Retroshare
+ ln -s $out/bin/RetroShare-nogui $out/bin/retroshare-nogui
+
+ # plugins
+ mkdir -p $out/share/retroshare
+ mv $out/lib* $out/share/retroshare
+
+ # BT DHT bootstrap
+ cp libbitdht/src/bitdht/bdboot.txt $out/share/retroshare
+ '';
+
+ meta = with stdenv.lib; {
+ description = "";
+ homepage = "http://retroshare.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.domenkozar ];
+ broken = true; # broken by libupnp: 1.6.21 -> 1.8.3 (#41684)
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix
new file mode 100644
index 000000000000..0d2fc0fd833c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, fetchzip, mkDerivation
+, appimageTools
+, autoPatchelfHook
+, desktop-file-utils
+, imagemagick
+, qtmultimedia
+}:
+
+mkDerivation rec {
+ pname = "soulseekqt";
+ version = "2018-1-30";
+ name="${pname}-${version}";
+
+ src = fetchzip {
+ url = "https://www.slsknet.org/SoulseekQt/Linux/SoulseekQt-${version}-64bit-appimage.tgz";
+ sha256 = "16ncnvv8h33f161mgy7qc0wjvvqahsbwvby65qhgfh9pbbgb4xgg";
+ };
+
+ appextracted = appimageTools.extractType2 {
+ inherit name;
+ src="${src}/SoulseekQt-2018-1-30-64bit.AppImage";
+ };
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ nativeBuildInputs = [ imagemagick autoPatchelfHook desktop-file-utils ];
+ buildInputs = [ qtmultimedia stdenv.cc.cc ];
+
+ installPhase = ''
+ # directory in /nix/store so readonly
+ cd $appextracted
+
+ binary="$(readlink AppRun)"
+ install -Dm755 $binary -t $out/bin
+
+ # fixup and install desktop file
+ desktop-file-install --dir $out/share/applications \
+ --set-key Exec --set-value $binary \
+ --set-key Comment --set-value "${meta.description}" \
+ --set-key Categories --set-value Network default.desktop
+ mv $out/share/applications/default.desktop $out/share/applications/SoulseekQt.desktop
+
+ #TODO: write generic code to read icon path from $binary.desktop
+ icon="$(readlink .DirIcon)"
+ for size in 16 32 48 64 72 96 128 192 256 512 1024; do
+ mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
+ convert -resize "$size"x"$size" $icon $out/share/icons/hicolor/"$size"x"$size"/apps/$icon
+ done
+ '';
+
+ meta = with lib; {
+ description = "Official Qt SoulSeek client";
+ homepage = "https://www.slsknet.org";
+ license = licenses.unfree;
+ maintainers = [ ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
new file mode 100644
index 000000000000..276cabfa2aa9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "stig";
+ # This project has a different concept for pre release / alpha,
+ # Read the project's README for details: https://github.com/rndusr/stig#stig
+ version = "0.11.2a0";
+
+ src = fetchFromGitHub {
+ owner = "rndusr";
+ repo = "stig";
+ rev = "v${version}";
+ sha256 = "05dn6mr86ly65gdqarl16a2jk1bwiw5xa6r4kyag3s6lqsv66iw8";
+ };
+
+ # urwidtrees 1.0.3 is requested by the developer because 1.0.2 (which is packaged
+ # in nixpkgs) is not uploaded to pypi and 1.0.1 has a problematic `setup.py`.
+ # As long as we don't have any problems installing it, no special features / specific bugs
+ # were fixed in 1.0.3 that aren't available in 1.0.2 are used by stig.
+ # See https://github.com/rndusr/stig/issues/120
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace "urwidtrees>=1.0.3dev0" "urwidtrees"
+ '';
+
+ propagatedBuildInputs = with python3Packages; [
+ urwid
+ urwidtrees
+ aiohttp
+ async-timeout
+ pyxdg
+ blinker
+ natsort
+ setproctitle
+ ];
+
+ checkInputs = with python3Packages; [
+ asynctest
+ pytestCheckHook
+ ];
+
+ dontUseSetuptoolsCheck = true;
+
+ preCheck = ''
+ export LC_ALL=C
+ '';
+
+ pytestFlagsArray = [
+ "tests"
+ # test_string__month_day_hour_minute_second fails on darwin
+ "--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second"
+ # TestScrollBarWithScrollable.test_wrapping_bug fails
+ "--deselect=tests/tui_test/scroll_test.py::TestScrollBarWithScrollable::test_wrapping_bug"
+ ];
+
+ meta = with lib; {
+ description = "TUI and CLI for the BitTorrent client Transmission";
+ homepage = "https://github.com/rndusr/stig";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ doronbehar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
new file mode 100644
index 000000000000..e2847d88f8a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, CoreServices, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "synapse-bt";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "Luminarys";
+ repo = "synapse";
+ rev = version;
+ sha256 = "01npv3zwia5d534zdwisd9xfng507adv4qkljf8z0zm0khqqn71a";
+ };
+
+ cargoSha256 = "0lhhdzq4sadnp2pnbq309d1mb7ggbf24k5ivlchrjhllbim1wmdz";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
+
+ cargoBuildFlags = [ "--all" ];
+
+ meta = with stdenv.lib; {
+ description = "Flexible and fast BitTorrent daemon";
+ homepage = "https://synapse-bt.org/";
+ license = licenses.isc;
+ maintainers = with maintainers; [ dywedir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
new file mode 100644
index 000000000000..f8a70d322f03
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, glib, zlib, dbus, dbus-glib, gtk2, gdk-pixbuf, cairo, pango }:
+
+stdenv.mkDerivation rec {
+ pname = "tixati";
+ version = "2.74";
+
+ src = fetchurl {
+ url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
+ sha256 = "1slsrqv97hnj1vxx3hw32dhqckbr05w622samjbrimh4dv8yrd29";
+ };
+
+ installPhase = ''
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${stdenv.lib.makeLibraryPath [ glib zlib dbus dbus-glib gtk2 gdk-pixbuf cairo pango ]} \
+ tixati
+ install -D tixati $out/bin/tixati
+ install -D tixati.desktop $out/share/applications/tixati.desktop
+ install -D tixati.png $out/share/icons/tixati.png
+ '';
+
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ description = "Torrent client";
+ homepage = "http://www.tixati.com";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ volth ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix
new file mode 100644
index 000000000000..d62e3b3b5a3f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, cmake
+, pkgconfig
+, vala_0_40
+, pantheon
+, curl
+, glib
+, gtk3
+, libb64
+, libevent
+, libgee
+, libnatpmp
+, libunity
+, miniupnpc
+, openssl
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "torrential";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "davidmhewitt";
+ repo = "torrential";
+ rev = version;
+ fetchSubmodules = true;
+ sha256 = "17aby0c17ybyzyzyc1cg1j6q1a186801fy84avlaxahqp7vdammx";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ vala_0_40 # https://github.com/davidmhewitt/torrential/issues/135
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ curl
+ glib
+ gtk3
+ libb64
+ libevent
+ libgee
+ libnatpmp
+ libunity
+ miniupnpc
+ openssl
+ pantheon.granite
+ ];
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Download torrents in style with this speedy, minimalist torrent client for elementary OS";
+ homepage = "https://github.com/davidmhewitt/torrential";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
new file mode 100644
index 000000000000..dbe3bb50e6d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchFromGitHub, pkgconfig, makeDesktopItem, unzip, fpc, lazarus,
+libX11, glib, gtk2, gdk-pixbuf, pango, atk, cairo, openssl }:
+
+stdenv.mkDerivation rec {
+ pname = "transgui";
+ version = "5.18.0";
+
+ src = fetchFromGitHub {
+ owner = "transmission-remote-gui";
+ repo = "transgui";
+ rev = "v${version}";
+ sha256 = "1dyx778756zhvz5sxgdvy49p2c0x44w4nmcfd90wqrmgfknncnf5";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ unzip fpc lazarus stdenv.cc
+ libX11 glib gtk2 gdk-pixbuf pango atk cairo openssl
+ ];
+
+ NIX_LDFLAGS = "
+ -L${stdenv.cc.cc.lib}/lib
+ -lX11 -lglib-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0
+ -lgdk_pixbuf-2.0 -lpango-1.0 -latk-1.0 -lcairo -lc -lcrypto
+ ";
+
+ prePatch = ''
+ substituteInPlace restranslator.pas --replace /usr/ $out/
+ '';
+
+ preBuild = ''
+ lazbuild -B transgui.lpr --lazarusdir=${lazarus}/share/lazarus
+ '';
+
+ makeFlags = [
+ "FPC=fpc"
+ "PP=fpc"
+ "INSTALL_PREFIX=$(out)"
+ ];
+
+ LCL_PLATFORM = "gtk2";
+
+ desktopItem = makeDesktopItem rec {
+ name = "transgui";
+ exec = name + " %U";
+ icon = name;
+ type = "Application";
+ comment = meta.description;
+ desktopName = "Transmission Remote GUI";
+ genericName = "BitTorrent Client";
+ categories = stdenv.lib.concatStringsSep ";" [
+ "Application" "Network" "FileTransfer" "P2P" "GTK"
+ ];
+ startupNotify = "true";
+ mimeType = stdenv.lib.concatStringsSep ";" [
+ "application/x-bittorrent" "x-scheme-handler/magnet"
+ ];
+ };
+
+ postInstall = ''
+ mkdir -p "$out/share/applications"
+ cp $desktopItem/share/applications/* $out/share/applications
+ mkdir -p "$out/share/icons/hicolor/48x48/apps"
+ cp transgui.png "$out/share/icons/hicolor/48x48/apps"
+ mkdir -p "$out/share/transgui"
+ cp -r "./lang" "$out/share/transgui"
+ '';
+
+ meta = {
+ description = "A cross platform front-end for the Transmission Bit-Torrent client";
+ homepage = "https://sourceforge.net/p/transgui";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ ramkromberg ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
new file mode 100644
index 000000000000..8e74b82b69d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, autoconf, automake, libtool, wrapGAppsHook, fetchFromGitHub, pkgconfig
+, intltool, gtk3, json-glib, curl, glib, autoconf-archive, appstream-glib, fetchpatch }:
+
+
+stdenv.mkDerivation rec {
+ pname = "transmission-remote-gtk";
+ version = "1.4.1";
+
+ src = fetchFromGitHub {
+ owner = "transmission-remote-gtk";
+ repo = "transmission-remote-gtk";
+ rev = version;
+ sha256 = "1pipc1f94jdppv597mqmcj2kw2rdvaqcbl512v7z8vir76p1a7gk";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/transmission-remote-gtk/transmission-remote-gtk/commit/0f5cc8a9942e220ea0f7d0b17db4a78d094e3b65.patch";
+ sha256 = "195rsjpbc0gzmr9bycvq4mra7abp3hd9by3a5vvcmxsh5ipikycf";
+ })
+ ];
+
+ preConfigure = "./autogen.sh";
+
+ nativeBuildInputs= [
+ autoconf automake libtool wrapGAppsHook
+ pkgconfig intltool autoconf-archive
+ appstream-glib
+ ];
+
+ buildInputs = [ gtk3 json-glib curl glib ];
+
+ doCheck = false; # fails with style validation error
+
+ meta = with stdenv.lib; {
+ description = "GTK remote control for the Transmission BitTorrent client";
+ homepage = "https://github.com/ajf8/transmission-remote-gtk";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.ehmry ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
new file mode 100644
index 000000000000..ab4fc0908ba8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
@@ -0,0 +1,94 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, openssl
+, curl
+, libevent
+, inotify-tools
+, systemd
+, zlib
+, pcre
+ # Build options
+, enableGTK3 ? false
+, gnome3
+, xorg
+, wrapGAppsHook
+, enableQt ? false
+, qt5
+, enableSystemd ? stdenv.isLinux
+, enableDaemon ? true
+, enableCli ? true
+}:
+
+let
+ version = "3.00";
+
+in stdenv.mkDerivation {
+ pname = "transmission";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "transmission";
+ repo = "transmission";
+ rev = version;
+ sha256 = "0ccg0km54f700x9p0jsnncnwvfnxfnxf7kcm7pcx1cj0vw78924z";
+ fetchSubmodules = true;
+ };
+
+ cmakeFlags =
+ let
+ mkFlag = opt: if opt then "ON" else "OFF";
+ in
+ [
+ "-DENABLE_MAC=OFF" # requires xcodebuild
+ "-DENABLE_GTK=${mkFlag enableGTK3}"
+ "-DENABLE_QT=${mkFlag enableQt}"
+ "-DENABLE_DAEMON=${mkFlag enableDaemon}"
+ "-DENABLE_CLI=${mkFlag enableCli}"
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ cmake
+ ]
+ ++ lib.optionals enableGTK3 [ wrapGAppsHook ]
+ ++ lib.optionals enableQt [ qt5.wrapQtAppsHook ]
+ ;
+
+ buildInputs = [
+ openssl
+ curl
+ libevent
+ zlib
+ pcre
+ ]
+ ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ]
+ ++ lib.optionals enableGTK3 [ gnome3.gtk xorg.libpthreadstubs ]
+ ++ lib.optionals enableSystemd [ systemd ]
+ ++ lib.optionals stdenv.isLinux [ inotify-tools ]
+ ;
+
+ NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation";
+
+ meta = {
+ description = "A fast, easy and free BitTorrent client";
+ longDescription = ''
+ Transmission is a BitTorrent client which features a simple interface
+ on top of a cross-platform back-end.
+ Feature spotlight:
+ * Uses fewer resources than other clients
+ * Native Mac, GTK and Qt GUI clients
+ * Daemon ideal for servers, embedded systems, and headless use
+ * All these can be remote controlled by Web and Terminal clients
+ * Bluetack (PeerGuardian) blocklists with automatic updates
+ * Full encryption, DHT, and PEX support
+ '';
+ homepage = "http://www.transmissionbt.com/";
+ license = lib.licenses.gpl2; # parts are under MIT
+ maintainers = with lib.maintainers; [ astsmtl vcunat wizeman ];
+ platforms = lib.platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
new file mode 100644
index 000000000000..485366afe939
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, python3Packages
+, x11Support ? !stdenv.isDarwin
+, xclip ? null
+, pbcopy ? null
+, useGeoIP ? false # Require /var/lib/geoip-databases/GeoIP.dat
+}:
+let
+ wrapperPath = with stdenv.lib; makeBinPath (
+ optional x11Support xclip ++
+ optional stdenv.isDarwin pbcopy
+ );
+in
+python3Packages.buildPythonApplication rec {
+ pname = "tremc";
+ version = "0.9.2";
+
+ src = fetchFromGitHub {
+ owner = "tremc";
+ repo = pname;
+ rev = version;
+ sha256 = "1fqspp2ckafplahgba54xmx0sjidx1pdzyjaqjhz0ivh98dkx2n5";
+ };
+
+ buildInputs = with python3Packages; [
+ python
+ wrapPython
+ ];
+
+ pythonPath = with python3Packages; [
+ ipy
+ pyperclip
+ ] ++
+ stdenv.lib.optional useGeoIP GeoIP;
+
+ phases = [ "unpackPhase" "installPhase" ];
+
+ makeWrapperArgs = ["--prefix PATH : ${wrapperPath}"];
+
+ installPhase = ''
+ make DESTDIR=$out install
+ wrapPythonPrograms
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Curses interface for transmission";
+ homepage = "https://github.com/tremc/tremc";
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
new file mode 100644
index 000000000000..5cab23ecd710
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchurl, pkgs, python3Packages, makeWrapper
+, enablePlayer ? true, libvlc ? null, qt5, lib }:
+
+stdenv.mkDerivation rec {
+ pname = "tribler";
+ version = "7.4.4";
+
+ src = fetchurl {
+ url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz";
+ sha256 = "0hxiyf1k07ngym2p8r1b5mcx1y2crkyz43gi9sgvsvsyijyaff3p";
+ };
+
+ nativeBuildInputs = [
+ python3Packages.wrapPython
+ makeWrapper
+ ];
+
+ buildInputs = [
+ python3Packages.python
+ ];
+
+ pythonPath = [
+ python3Packages.libtorrentRasterbar
+ python3Packages.twisted
+ python3Packages.netifaces
+ python3Packages.pycrypto
+ python3Packages.pyasn1
+ python3Packages.requests
+ python3Packages.m2crypto
+ python3Packages.pyqt5
+ python3Packages.chardet
+ python3Packages.cherrypy
+ python3Packages.cryptography
+ python3Packages.libnacl
+ python3Packages.configobj
+ python3Packages.decorator
+ python3Packages.feedparser
+ python3Packages.service-identity
+ python3Packages.psutil
+ python3Packages.pillow
+ python3Packages.networkx
+ python3Packages.pony
+ python3Packages.lz4
+ python3Packages.pyqtgraph
+
+ # there is a BTC feature, but it requires some unclear version of
+ # bitcoinlib, so this doesn't work right now.
+ # python3Packages.bitcoinlib
+ ];
+
+ postPatch = ''
+ ${stdenv.lib.optionalString enablePlayer ''
+ substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${libvlc}/lib/libvlc.so')"
+ substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "if vlc and vlc.plugin_path" "if vlc"
+ substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${libvlc}/lib/vlc/plugins'"
+ ''}
+ '';
+
+ installPhase = ''
+ mkdir -pv $out
+ # Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH.
+ wrapPythonPrograms
+ cp -prvd ./* $out/
+ makeWrapper ${python3Packages.python}/bin/python $out/bin/tribler \
+ --set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \
+ --set _TRIBLERPATH $out \
+ --set PYTHONPATH $out:$program_PYTHONPATH \
+ --set NO_AT_BRIDGE 1 \
+ --run 'cd $_TRIBLERPATH' \
+ --add-flags "-O $out/run_tribler.py" \
+ ${stdenv.lib.optionalString enablePlayer ''
+ --prefix LD_LIBRARY_PATH : ${libvlc}/lib
+ ''}
+
+ mkdir -p $out/share/applications $out/share/icons $out/share/man/man1
+ cp $out/Tribler/Main/Build/Ubuntu/tribler.desktop $out/share/applications/tribler.desktop
+ cp $out/Tribler/Main/Build/Ubuntu/tribler_big.xpm $out/share/icons/tribler.xpm
+ cp $out/Tribler/Main/Build/Ubuntu/tribler.1 $out/share/man/man1/tribler.1
+ '';
+
+ meta = with stdenv.lib; {
+ maintainers = with maintainers; [ xvapx ];
+ homepage = "https://www.tribler.org/";
+ description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix
new file mode 100644
index 000000000000..03cb381f5eb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pkgconfig, python2
+, boost, db, openssl, geoip, libiconv, miniupnpc
+, srcOnly, fetchgit
+}:
+
+let
+ twisterHTML = srcOnly {
+ name = "twister-html";
+ src = fetchgit {
+ url = "git://github.com/miguelfreitas/twister-html.git";
+ rev = "01e7f7ca9b7e42ed90f91bc42da2c909ca5c0b9b";
+ sha256 = "0scjbin6s1kmi0bqq0dx0qyjw4n5xgmj567n0156i39f9h0dabqy";
+ };
+ };
+
+ boostPython = boost.override { enablePython = true; };
+
+in stdenv.mkDerivation rec {
+ pname = "twister";
+ version = "2019-08-19";
+
+ src = fetchFromGitHub {
+ owner = "miguelfreitas";
+ repo = "twister-core";
+ rev = "31faf3f63e461ea0a9b23081567a4a552cf06873";
+ sha256 = "0xh1lgnl9nd86jr0mp7m8bkd7r5j4d6chd0y73h2xv4aq5sld0sp";
+ };
+
+ configureFlags = [
+ "--with-libgeoip"
+ "--with-libiconv"
+ "--disable-deprecated-functions"
+ "--enable-tests"
+ "--enable-python-binding"
+ "--with-boost-libdir=${boostPython.out}/lib"
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ autoconf automake libtool python2
+ boostPython db openssl geoip miniupnpc libiconv
+ ];
+
+ postPatch = ''
+ sed -i -e '/-htmldir/s|(default: [^)]*)|(default: ${twisterHTML})|' \
+ src/init.cpp
+ sed -i -e '/GetDataDir.*html/s|path *= *[^;]*|path = "${twisterHTML}"|' \
+ src/util.cpp
+ '';
+
+ preConfigure = ''
+ sh autotool.sh
+ '';
+
+ installPhase = ''
+ install -vD twisterd "$out/bin/twisterd"
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "http://www.twister.net.co/";
+ description = "Peer-to-peer microblogging";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
new file mode 100644
index 000000000000..be2421ef4d26
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchsvn, jdk, jre, ant, swt, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "vuze";
+ version = "5750";
+
+ src = fetchsvn {
+ url = "http://svn.vuze.com/public/client/tags/RELEASE_${version}";
+ sha256 = "07w6ipyiy8hi88d6yxbbf3vkv26mj7dcz9yr8141hb2ig03v0h0p";
+ };
+
+ buildInputs = [ makeWrapper jdk ant ];
+
+ buildPhase = "ant";
+
+ installPhase = ''
+ install -D dist/Vuze_0000-00.jar $out/share/java/Vuze_${version}-00.jar
+ makeWrapper ${jre}/bin/java $out/bin/vuze \
+ --add-flags "-Xmx256m -Djava.library.path=${swt}/lib -cp $out/share/java/Vuze_${version}-00.jar:${swt}/jars/swt.jar org.gudy.azureus2.ui.swt.Main"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Torrent client";
+ homepage = "http://www.vuze.com";
+ license = licenses.unfree;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ volth ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix
new file mode 100644
index 000000000000..ce5a99b1e5fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "zeronet";
+ version = "0.7.1";
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "HelloZeroNet";
+ repo = "ZeroNet";
+ rev = "v${version}";
+ sha256 = "04prgicm0yjh2klcxdgwx1mvlsxxi2bdkzfcvysvixbgq20wjvdk";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket_client
+ gevent-websocket rencode bitcoinlib maxminddb pyopenssl
+ ];
+
+ buildPhase = ''
+ ${python3Packages.python.interpreter} -O -m compileall .
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share
+ cp -r plugins src tools *.py $out/share/
+ '';
+
+ postFixup = ''
+ makeWrapper "$out/share/zeronet.py" "$out/bin/zeronet" \
+ --set PYTHONPATH "$PYTHONPATH" \
+ --set PATH ${python3Packages.python}/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Decentralized websites using Bitcoin crypto and BitTorrent network";
+ homepage = "https://zeronet.io/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ fgaz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/pcloud/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/pcloud/default.nix
new file mode 100644
index 000000000000..7db633737d99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/pcloud/default.nix
@@ -0,0 +1,110 @@
+# Even though pCloud Drive is redistributed as a plug-n-play AppImage, it
+# requires a little bit more love because of the way Nix launches those types
+# of applications.
+#
+# What Nix does, simplifying a bit, is that it extracts an AppImage and starts
+# it via buildFHSUserEnv - this is totally fine for majority of apps, but makes
+# it by-design *impossible* to launch SUID wrappers [^1]; in case of pCloud,
+# it's fusermount.
+# (so pCloud starts, but silently fails to mount the FUSE drive.)
+#
+# To overcome this issue, we're manually extracting the AppImage and then treat
+# it as if it was a regular, good-ol' application requiring some standard path
+# fixes.
+#
+# ^1 https://github.com/NixOS/nixpkgs/issues/69338
+
+{
+ # Build dependencies
+ appimageTools, autoPatchelfHook, fetchzip, stdenv,
+
+ # Runtime dependencies;
+ # A few additional ones (e.g. Node) are already shipped together with the
+ # AppImage, so we don't have to duplicate them here.
+ alsaLib, dbus-glib, fuse, gnome3, libdbusmenu-gtk2, udev, nss
+}:
+
+let
+ pname = "pcloud";
+ version = "1.8.8";
+ name = "${pname}-${version}";
+
+ # Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive
+ src = fetchzip {
+ url = "https://api.pcloud.com/getpubzip?code=XZpnMpXZPWyhRfdvXUhyY6XpdfmQmJiLRmmV&filename=${name}.zip";
+ hash = "sha256-z9OeFkH6EVthg5Dz2mN3jlBTMhiMt/6bUIYFeMO6EXk=";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name;
+ src = "${src}/pcloud";
+ };
+
+in stdenv.mkDerivation {
+ inherit pname version;
+
+ src = appimageContents;
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ ];
+
+ buildInputs = [
+ alsaLib
+ dbus-glib
+ fuse
+ gnome3.gtk
+ libdbusmenu-gtk2
+ nss
+ udev
+ ];
+
+ installPhase = ''
+ mkdir "$out"
+ cp -ar . "$out/app"
+ cd "$out"
+
+ # Remove the AppImage runner, since users are not supposed to use it; the
+ # actual entry point is the `pcloud` binary
+ rm app/AppRun
+
+ # Adjust directory structure, so that the `.desktop` etc. files are
+ # properly detected
+ mkdir bin
+ mv app/usr/share .
+ mv app/usr/lib .
+
+ # Adjust the `.desktop` file
+ mkdir share/applications
+
+ substitute \
+ app/pcloud.desktop \
+ share/applications/pcloud.desktop \
+ --replace "Name=pcloud" "Name=pCloud" \
+ --replace "Exec=AppRun" "Exec=$out/bin/pcloud"
+
+ # Build the main executable
+ cat > bin/pcloud <<EOF
+ #! $SHELL -e
+
+ # This is required for the file picker dialog - otherwise pcloud just
+ # crashes
+ export XDG_DATA_DIRS="${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome3.gsettings-desktop-schemas.name}:${gnome3.gtk}/share/gsettings-schemas/${gnome3.gtk.name}:$XDG_DATA_DIRS"
+
+ exec "$out/app/pcloud"
+ EOF
+
+ chmod +x bin/pcloud
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Secure and simple to use cloud storage for your files; pCloud Drive, Electron Edition";
+ homepage = "https://www.pcloud.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ patryk27 ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ping/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ping/default.nix
new file mode 100644
index 000000000000..8e4125ac72aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ping/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, vala
+, pkgconfig
+, pantheon
+, python3
+, glib
+, gtk3
+, gtksourceview
+, json-glib
+, libsoup
+, libgee
+, wrapGAppsHook
+, vala_0_40
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ping";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "jeremyvaartjes";
+ repo = "ping";
+ rev = version;
+ sha256 = "1h9cdy2jxa2ffykjg89j21hazls32z9yyv3g0x07x3vizzl5xcij";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ vala_0_40
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ gtksourceview
+ json-glib
+ libgee
+ libsoup
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "A helpful tool that lets you debug what part of your API is causing you issues";
+ homepage = "https://github.com/jeremyvaartjes/ping";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/pjsip/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/pjsip/default.nix
new file mode 100644
index 000000000000..7319dd4a44fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/pjsip/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, openssl, libsamplerate, alsaLib, AppKit }:
+
+stdenv.mkDerivation rec {
+ pname = "pjsip";
+ version = "2.10";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = "pjproject";
+ rev = version;
+ sha256 = "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0";
+ };
+
+ patches = [
+ ./fix-aarch64.patch
+ ];
+
+ buildInputs = [ openssl libsamplerate ]
+ ++ stdenv.lib.optional stdenv.isLinux alsaLib
+ ++ stdenv.lib.optional stdenv.isDarwin AppKit;
+
+ preConfigure = ''
+ export LD=$CC
+ '' # Fixed on master, remove with 2.11
+ + stdenv.lib.optionalString stdenv.isDarwin ''
+ NIX_CFLAGS_COMPILE+=" -framework Security"
+ '';
+
+ postInstall = ''
+ mkdir -p $out/bin
+ cp pjsip-apps/bin/pjsua-* $out/bin/pjsua
+ mkdir -p $out/share/${pname}-${version}/samples
+ cp pjsip-apps/bin/samples/*/* $out/share/${pname}-${version}/samples
+ '';
+
+ # We need the libgcc_s.so.1 loadable (for pthread_cancel to work)
+ dontPatchELF = true;
+
+ meta = with stdenv.lib; {
+ description = "A multimedia communication library written in C, implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE";
+ homepage = "https://pjsip.org/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ olynch ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch
new file mode 100644
index 000000000000..f4aabf7a9bb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch
@@ -0,0 +1,13 @@
+--- a/aconfigure
++++ b/aconfigure
+@@ -8945,6 +8945,10 @@
+ ac_webrtc_instset=neon
+ ac_webrtc_cflags="-DWEBRTC_ARCH_ARMV7 -mfloat-abi=hard -mfpu=neon"
+ ;;
++ arm64*|aarch64*)
++ ac_webrtc_instset=neon
++ ac_webrtc_cflags="-DWEBRTC_ARCH_ARM64"
++ ;;
+ *)
+ ac_webrtc_instset=sse2
+ ;;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/protocol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/protocol/default.nix
new file mode 100644
index 000000000000..31b1bd6086ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/protocol/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub }:
+
+buildPythonApplication {
+ pname = "protocol-unstable";
+ version = "2019-03-28";
+
+ src = fetchFromGitHub {
+ owner = "luismartingarcia";
+ repo = "protocol";
+ rev = "4e8326ea6c2d288be5464c3a7d9398df468c0ada";
+ sha256 = "13l10jhf4vghanmhh3pn91b2jdciispxy0qadz4n08blp85qn9cm";
+ };
+
+ meta = with stdenv.lib; {
+ description = "An ASCII Header Generator for Network Protocols";
+ homepage = "https://github.com/luismartingarcia/protocol";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ teto ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
new file mode 100644
index 000000000000..9b86c0847e3c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -0,0 +1,42 @@
+{ lib, buildGoModule, fetchFromGitHub, pkg-config, libsecret }:
+
+buildGoModule rec {
+ pname = "protonmail-bridge";
+ version = "1.5.0";
+
+ src = fetchFromGitHub {
+ owner = "ProtonMail";
+ repo = "proton-bridge";
+ rev = "br-${version}";
+ sha256 = "lHqwKlFwz9iO7LJMGFTGCauw12z/BKnQte2sVoVkOaY=";
+ };
+
+ vendorSha256 = "eP+7fqBctX9XLCoHVJDI/qaa5tocgg3F5nfUM6dzNRg=";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ libsecret ];
+
+ buildPhase = ''
+ make BUILD_TIME= build-nogui
+ '';
+
+ installPhase = ''
+ install -Dm555 Desktop-Bridge $out/bin/protonmail-bridge
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/ProtonMail/proton-bridge";
+ changelog = "https://github.com/ProtonMail/proton-bridge/blob/master/Changelog.md";
+ downloadPage = "https://github.com/ProtonMail/proton-bridge/releases";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ lightdiscord ];
+ description = "Use your ProtonMail account with your local e-mail client";
+ longDescription = ''
+ An application that runs on your computer in the background and seamlessly encrypts
+ and decrypts your mail as it enters and leaves your computer.
+
+ To work, gnome-keyring service must be enabled.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix
new file mode 100644
index 000000000000..1c72d4ef88c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, python3Packages, openvpn, dialog, iptables }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "protonvpn-linux-cli";
+ version = "2.2.4";
+
+ src = fetchFromGitHub {
+ owner = "protonvpn";
+ repo = "linux-cli";
+ rev = "v${version}";
+ sha256 = "08yca0a0prrnrc7ir7ajd56yxvxpcs4m1k8f5kf273f5whgr7wzw";
+ };
+
+ propagatedBuildInputs = (with python3Packages; [
+ requests
+ docopt
+ setuptools
+ jinja2
+ pythondialog
+ ]) ++ [
+ dialog
+ openvpn
+ iptables
+ ];
+
+ # No tests
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Linux command-line client for ProtonVPN";
+ homepage = "https://github.com/protonvpn/linux-cli";
+ maintainers = with maintainers; [ jtcoolen jefflabonte ];
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix
new file mode 100644
index 000000000000..c2d7fbd10b15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix
@@ -0,0 +1,86 @@
+{ lib, fetchFromGitHub, makeDesktopItem, makeWrapper, imagemagick
+, python3Packages, wrapGAppsHook, protonvpn-cli, gtk3, pango
+, gobject-introspection, libnotify, libappindicator-gtk3
+, procps, openvpn }:
+
+let
+ extraPath = lib.makeBinPath [ procps openvpn ];
+
+in python3Packages.buildPythonApplication rec {
+ pname = "protonvpn-linux-gui";
+ version = "2.1.1";
+
+ src = fetchFromGitHub {
+ owner = "protonvpn";
+ repo = "linux-gui";
+ rev = "v${version}";
+ sha256 = "avo5/2eq53HSHCnnjtxrsmpURtHvxmLZn2BxActImGY=";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "ProtonVPN";
+ desktopName = "ProtonVPN GUI";
+ type = "Application";
+ exec = "protonvpn-gui";
+ icon = "protonvpn";
+ categories = "Network;";
+ terminal = "false";
+ };
+
+ trayDesktopItem = makeDesktopItem {
+ name = "ProtonVPN Tray";
+ desktopName = "ProtonVPN Tray";
+ type = "Application";
+ exec = "protonvpn-tray";
+ icon = "protonvpn";
+ categories = "Network;";
+ terminal = "false";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook makeWrapper imagemagick ];
+
+ propagatedBuildInputs = (with python3Packages; [
+ pygobject3
+ pycairo
+ requests
+ configparser
+ ]) ++ [
+ protonvpn-cli
+ gtk3
+ gobject-introspection
+ libnotify
+ libappindicator-gtk3
+ ];
+
+ prePatch = ''
+ # if pkexec is used, we want to have more time to enter password
+ substituteInPlace linux_gui/services/login_service.py --replace 'timeout=8' 'timeout=30'
+ '';
+
+ postInstall = ''
+ # wrap binaries with extra required path
+ wrapProgram "$out/bin/protonvpn-tray" --prefix PATH ":" ${extraPath}
+ wrapProgram "$out/bin/protonvpn-gui" --prefix PATH ":" ${extraPath}
+
+ # install desktop files
+ mkdir -p $out/share/applications
+ cp "$desktopItem/share/applications/ProtonVPN.desktop" $out/share/applications/protonvpn-gui.desktop
+ cp "$trayDesktopItem/share/applications/ProtonVPN Tray.desktop" $out/share/applications/protonvpn-tray.desktop
+
+ # create icons
+ for size in 16 32 48 64 72 96 128 192 512 1024; do
+ mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
+ convert -resize "$size"x"$size" \
+ linux_gui/resources/img/logo/protonvpn_logo.png \
+ $out/share/icons/hicolor/"$size"x"$size"/apps/protonvpn.png
+ done
+ '';
+
+ meta = with lib; {
+ description = "Linux GUI for ProtonVPN, written in Python";
+ homepage = "https://github.com/ProtonVPN/linux-gui";
+ maintainers = with maintainers; [ offline ];
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ps2client/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ps2client/default.nix
new file mode 100644
index 000000000000..444a6dcf45c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ps2client/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ version = "unstable-2018-10-18";
+ pname = "ps2client";
+
+ src = fetchFromGitHub {
+ owner = "ps2dev";
+ repo = "ps2client";
+ rev = "92fcaf18aabf74daaed40bd50d428cce326a87c0";
+ sha256 = "1rlmns44pxm6dkh6d3cz9sw8v7pvi53r7r5r3kgwdzkhixjj0cdg";
+ };
+
+ patchPhase = ''
+ sed -i -e "s|-I/usr/include||g" -e "s|-I/usr/local/include||g" Makefile
+ '';
+
+ installPhase = ''
+ make PREFIX=$out install
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Desktop clients to interact with ps2link and ps2netfs";
+ homepage = "https://github.com/ps2dev/ps2client";
+ license = licenses.bsd3;
+ maintainers = [ ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix
new file mode 100644
index 000000000000..8eb0c2298fd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix
@@ -0,0 +1,20 @@
+{ pythonPackages, isPy3k, pkgs }:
+
+pythonPackages.buildPythonPackage {
+ name = "beautifulsoup-3.2.1";
+ disabled = isPy3k;
+
+ src = pkgs.fetchurl {
+ url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz";
+ sha256 = "1nshbcpdn0jpcj51x0spzjp519pkmqz0n0748j7dgpz70zlqbfpm";
+ };
+
+ # error: invalid command 'test'
+ doCheck = false;
+
+ meta = {
+ homepage = "http://www.crummy.com/software/BeautifulSoup/";
+ license = "bsd";
+ description = "Undemanding HTML/XML parser";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/pyload/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/pyload/default.nix
new file mode 100644
index 000000000000..e81b8dc37ca5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/pyload/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, fetchpatch, pythonPackages, gocr, unrar, rhino, spidermonkey_38 }:
+
+let
+ beautifulsoup = pythonPackages.callPackage ./beautifulsoup.nix {
+ inherit pythonPackages;
+ };
+
+in pythonPackages.buildPythonApplication rec {
+ version = "0.4.9-next";
+ name = "pyLoad-" + version;
+
+ src = fetchFromGitHub {
+ owner = "pyload";
+ repo = "pyload";
+ rev = "721ea9f089217b9cb0f2799c051116421faac081";
+ sha256 = "1ad4r9slx1wgvd2fs4plfbpzi4i2l2bk0lybzsb2ncgh59m87h54";
+ };
+
+ patches =
+ let
+ # gets merged in next release version of pyload
+ configParserPatch = fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/pyload/pyload/pull/2625.diff";
+ sha256 = "1bisgx78kcr5c0x0i3h0ch5mykns5wx5wx7gvjj0pc71lfzlxzb9";
+ };
+ setupPyPatch = fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/pyload/pyload/pull/2638.diff";
+ sha256 = "006g4qbl582262ariflbyfrszcx8ck2ac1cpry1f82f76p4cgf6z";
+ };
+ in [ configParserPatch setupPyPatch ];
+
+ buildInputs = [
+ unrar rhino spidermonkey_38 gocr pythonPackages.paver
+ ];
+
+ propagatedBuildInputs = with pythonPackages; [
+ pycurl jinja2 beaker thrift simplejson pycrypto feedparser tkinter
+ beautifulsoup send2trash
+ ];
+
+ #remove this once the PR patches above are merged. Needed because githubs diff endpoint
+ #does not support diff -N
+ prePatch = ''
+ touch module/config/__init__.py
+ '';
+
+ preBuild = ''
+ ${pythonPackages.paver}/bin/paver generate_setup
+ '';
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Free and open source downloader for 1-click-hosting sites";
+ homepage = "https://github.com/pyload/pyload";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.mahe ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/qv2ray/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/qv2ray/default.nix
new file mode 100644
index 000000000000..f4d41ee79e6d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/qv2ray/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, qmake
+, qttools
+, cmake
+, clang
+, grpc
+, protobuf
+, openssl
+, pkgconfig
+, c-ares
+, abseil-cpp
+, libGL
+, zlib
+}:
+
+mkDerivation rec {
+ pname = "qv2ray";
+ version = "2.6.3";
+
+ src = fetchFromGitHub {
+ owner = "Qv2ray";
+ repo = "Qv2ray";
+ rev = "v${version}";
+ sha256 = "sha256-zf3IlpRbZGDZMEny0jp7S+kWtcE1Z10U9GzKC0W0mZI=";
+ fetchSubmodules = true;
+ };
+
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DQV2RAY_DISABLE_AUTO_UPDATE=on"
+ "-DQV2RAY_TRANSLATION_PATH=${placeholder "out"}/share/qv2ray/lang"
+ ];
+
+ preConfigure = ''
+ export _QV2RAY_BUILD_INFO_="Qv2ray Nixpkgs"
+ export _QV2RAY_BUILD_EXTRA_INFO_="(Nixpkgs build) nixpkgs"
+ '';
+
+ buildInputs = [
+ libGL
+ zlib
+ grpc
+ protobuf
+ openssl
+ abseil-cpp
+ c-ares
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ clang
+ pkgconfig
+ qmake
+ qttools
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An GUI frontend to v2ray";
+ homepage = "https://qv2ray.github.io/en/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ poscat ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
new file mode 100644
index 000000000000..643efd0f0f27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
@@ -0,0 +1,89 @@
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem
+, atk, cairo, gdk-pixbuf, glib, gnome2, gtk2, libGLU, libGL, pango, xorg
+, lsb-release, freetype, fontconfig, polkit, polkit_gnome
+, pulseaudio }:
+
+let
+ sha256 = {
+ x86_64-linux = "19751ygq1ng79aniqx91qawc0cw07cwdjdjd88azc9ww6z6nv0mp";
+ i386-linux = "0dwc7v4p1dz51444zwn0kds23yi87r4h2d3isfj9xwkn90pxb7in";
+ }.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported");
+
+ arch = {
+ x86_64-linux = "amd64";
+ i386-linux = "i386";
+ }.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported");
+
+ description = "Desktop sharing application, providing remote support and online meetings";
+
+ desktopItem = makeDesktopItem {
+ name = "AnyDesk";
+ exec = "@out@/bin/anydesk";
+ icon = "anydesk";
+ desktopName = "AnyDesk";
+ genericName = description;
+ categories = "Network;";
+ startupNotify = "false";
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "anydesk";
+ version = "6.0.1";
+
+ src = fetchurl {
+ urls = [
+ "https://download.anydesk.com/linux/${pname}-${version}-${arch}.tar.gz"
+ "https://download.anydesk.com/linux/generic-linux/${pname}-${version}-${arch}.tar.gz"
+ ];
+ inherit sha256;
+ };
+
+ buildInputs = [
+ atk cairo gdk-pixbuf glib gtk2 stdenv.cc.cc pango
+ gnome2.gtkglext libGLU libGL freetype fontconfig
+ polkit polkit_gnome pulseaudio
+ ] ++ (with xorg; [
+ libxcb libxkbfile libX11 libXdamage libXext libXfixes libXi libXmu
+ libXrandr libXtst libXt libICE libSM libXrender
+ ]);
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/share/{applications,doc/anydesk,icons/hicolor}
+ install -m755 anydesk $out/bin/anydesk
+ cp copyright README $out/share/doc/anydesk
+ cp -r icons/hicolor/* $out/share/icons/hicolor/
+ cp ${desktopItem}/share/applications/*.desktop $out/share/applications
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ --set-rpath "${stdenv.lib.makeLibraryPath buildInputs}" \
+ $out/bin/anydesk
+
+ # pangox is not actually necessary (it was only added as a part of gtkglext)
+ patchelf \
+ --remove-needed libpangox-1.0.so.0 \
+ $out/bin/anydesk
+
+ wrapProgram $out/bin/anydesk \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ lsb-release ]}
+
+ substituteInPlace $out/share/applications/*.desktop \
+ --subst-var out
+ '';
+
+ meta = with stdenv.lib; {
+ inherit description;
+ homepage = "https://www.anydesk.com";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ shyim ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
new file mode 100644
index 000000000000..3a6054db3543
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
@@ -0,0 +1,25 @@
+{ lib, callPackage }:
+
+# For detailed information about the Citrix source-tarball, please refer to the OEM
+# reference guide: https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/
+
+let
+ inherit (callPackage ./sources.nix { }) supportedVersions unsupportedVersions;
+ mkCitrix = callPackage ./generic.nix { };
+
+ toAttrName = x: "citrix_workspace_${builtins.replaceStrings [ "." ] [ "_" ] x}";
+
+ unsupported = lib.listToAttrs (
+ map (x: lib.nameValuePair (toAttrName x) (throw ''
+ Citrix Workspace at version ${x} is not supported anymore!
+
+ Actively supported releases are listed here:
+ https://www.citrix.com/en-gb/support/product-lifecycle/milestones/receiver.html
+ '')) unsupportedVersions
+ );
+
+ supported = lib.mapAttrs' (
+ attr: versionInfo: lib.nameValuePair (toAttrName attr) (callPackage ./generic.nix versionInfo)
+ ) supportedVersions;
+in
+ supported // unsupported
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
new file mode 100644
index 000000000000..c0dc438daacd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -0,0 +1,210 @@
+{ stdenv, requireFile, makeWrapper, autoPatchelfHook, wrapGAppsHook, which, more
+, file, atk, alsaLib, cairo, fontconfig, gdk-pixbuf, glib, gnome3, gtk2-x11, gtk3
+, heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
+, gnome2, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
+, libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin
+, libpulseaudio, pcsclite
+
+, homepage, version, prefix, hash
+
+, extraCerts ? []
+}:
+
+let
+ inherit (stdenv) lib;
+
+ openssl' = symlinkJoin {
+ name = "openssl-backwards-compat";
+ nativeBuildInputs = [ makeWrapper ];
+ paths = [ openssl.out ];
+ postBuild = ''
+ ln -sf $out/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
+ ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
+ '';
+ };
+in
+
+stdenv.mkDerivation rec {
+ pname = "citrix-workspace";
+ inherit version;
+
+ src = requireFile rec {
+ name = "${prefix}-${version}.tar.gz";
+ sha256 = hash;
+
+ message = ''
+ In order to use Citrix Workspace, you need to comply with the Citrix EULA and download
+ the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from:
+
+ ${homepage}
+
+ (if you do not find version ${version} there, try at
+ https://www.citrix.com/downloads/workspace-app/
+
+ Once you have downloaded the file, please use the following command and re-run the
+ installation:
+
+ nix-prefetch-url file://\$PWD/${name}
+ '';
+ };
+
+ dontBuild = true;
+ dontConfigure = true;
+ sourceRoot = ".";
+ preferLocalBuild = true;
+ passthru.icaroot = "${placeholder "out"}/opt/citrix-icaclient";
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ file
+ makeWrapper
+ more
+ which
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ alsaLib
+ atk
+ cairo
+ dconf
+ fontconfig
+ freetype
+ gdk-pixbuf
+ gnome2.gtkglext
+ gnome3.webkitgtk
+ gtk2
+ gtk2-x11
+ gtk3
+ gtk_engines
+ heimdal
+ krb5
+ libcxx
+ libcxxabi
+ libjpeg
+ libpng12
+ libsoup
+ libvorbis
+ libxml2
+ nspr
+ nss
+ openssl'
+ pango
+ speex
+ (lib.getLib systemd)
+ stdenv.cc.cc
+ xorg.libXaw
+ xorg.libXmu
+ xorg.libXScrnSaver
+ xorg.libXtst
+ zlib
+ ] ++ lib.optional (lib.versionOlder version "20.04") e2fsprogs
+ ++ lib.optional (lib.versionAtLeast version "20.10") libpulseaudio;
+
+ runtimeDependencies = [
+ glib
+ pcsclite
+
+ xorg.libX11
+ xorg.libXScrnSaver
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXinerama
+ xorg.libXmu
+ xorg.libXrender
+ xorg.libXtst
+ xorg.libxcb
+ ];
+
+ installPhase = let
+ icaFlag = program:
+ if (builtins.match "selfservice(.*)" program) != null then "--icaroot"
+ else "-icaroot";
+ wrap = program: ''
+ wrapProgram $out/opt/citrix-icaclient/${program} \
+ --add-flags "${icaFlag program} $ICAInstDir" \
+ --set ICAROOT "$ICAInstDir" \
+ --prefix LD_LIBRARY_PATH : "$ICAInstDir:$ICAInstDir/lib" \
+ --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+ --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
+ '';
+ wrapLink = program: ''
+ ${wrap program}
+ ln -sf $out/opt/citrix-icaclient/${program} $out/bin/${baseNameOf program}
+ '';
+
+ copyCert = path: ''
+ cp -v ${path} $out/opt/citrix-icaclient/keystore/cacerts/${baseNameOf path}
+ '';
+
+ mkWrappers = lib.concatMapStringsSep "\n";
+
+ toWrap = [ "wfica" "selfservice" "util/configmgr" "util/conncenter" "util/ctx_rehash" ]
+ ++ lib.optional (lib.versionOlder version "20.06") "selfservice_old";
+ in ''
+ runHook preInstall
+
+ mkdir -p $out/{bin,share/applications}
+ export ICAInstDir="$out/opt/citrix-icaclient"
+ export HOME=$(mktemp -d)
+
+ # Run upstream installer in the store-path.
+ sed -i -e 's,^ANSWER="",ANSWER="$INSTALLER_YES",g' -e 's,/bin/true,true,g' ./${prefix}/hinst
+ ${stdenv.shell} ${prefix}/hinst CDROM "$(pwd)"
+
+ if [ -f "$ICAInstDir/util/setlog" ]; then
+ chmod +x "$ICAInstDir/util/setlog"
+ ln -sf "$ICAInstDir/util/setlog" "$out/bin/citrix-setlog"
+ fi
+ ${mkWrappers wrapLink toWrap}
+ ${mkWrappers wrap [ "PrimaryAuthManager" "ServiceRecord" "AuthManagerDaemon" "util/ctxwebhelper" ]}
+
+ ln -sf $ICAInstDir/util/storebrowse $out/bin/storebrowse
+
+ # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
+ echo "Expanding certificates..."
+ pushd "$ICAInstDir/keystore/cacerts"
+ awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' \
+ < ${cacert}/etc/ssl/certs/ca-bundle.crt
+ popd
+
+ ${mkWrappers copyCert extraCerts}
+
+ # See https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/reference-information/#library-files
+ # Those files are fallbacks to support older libwekit.so and libjpeg.so
+ rm $out/opt/citrix-icaclient/lib/ctxjpeg_fb_8.so || true
+ rm $out/opt/citrix-icaclient/lib/UIDialogLibWebKit.so || true
+
+ # We support only Gstreamer 1.0
+ rm $ICAInstDir/util/{gst_aud_{play,read},gst_*0.10,libgstflatstm0.10.so}
+ ln -sf $ICAInstDir/util/gst_play1.0 $ICAInstDir/util/gst_play
+ ln -sf $ICAInstDir/util/gst_read1.0 $ICAInstDir/util/gst_read
+
+ echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
+ echo UTC > "$ICAInstDir/timezone"
+
+ echo "Copy .desktop files."
+ cp $out/opt/citrix-icaclient/desktop/* $out/share/applications/
+
+ # We introduce a dependency on the source file so that it need not be redownloaded everytime
+ echo $src >> "$out/share/workspace_dependencies.pin"
+
+ runHook postInstall
+ '';
+
+ # Make sure that `autoPatchelfHook` is executed before
+ # running `ctx_rehash`.
+ dontAutoPatchelf = true;
+ postFixup = ''
+ autoPatchelf -- "$out"
+ $out/opt/citrix-icaclient/util/ctx_rehash
+ '';
+
+ meta = with lib; {
+ license = licenses.unfree;
+ description = "Citrix Workspace";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ma27 ];
+ inherit homepage;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
new file mode 100644
index 000000000000..bbeed5b779c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -0,0 +1,69 @@
+{ stdenv, lib }:
+
+let
+ mkVersionInfo = _: { major, minor, patch, x64hash, x86hash, x64suffix, x86suffix, homepage }:
+ { inherit homepage;
+ version = "${major}.${minor}.${patch}.${if stdenv.is64bit then x64suffix else x86suffix}";
+ prefix = "linuxx${if stdenv.is64bit then "64" else "86"}";
+ hash = if stdenv.is64bit then x64hash else x86hash;
+ };
+
+ # Attribute-set with all actively supported versions of the Citrix workspace app
+ # for Linux.
+ #
+ # The latest versions can be found at https://www.citrix.com/de-de/downloads/workspace-app/linux/
+ supportedVersions = lib.mapAttrs mkVersionInfo {
+ "20.04.0" = {
+ major = "20";
+ minor = "04";
+ patch = "0";
+ x64hash = "E923592216F9541173846F932784E6C062CB09C9E8858219C7489607BF82A0FB";
+ x86hash = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F";
+ x64suffix = "21";
+ x86suffix = "21";
+ homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2004.html";
+ };
+
+ "20.06.0" = {
+ major = "20";
+ minor = "06";
+ patch = "0";
+ x64hash = "1kpfcfg95mpprlca6cccnjlsqbj3xvv77cn3fc5msd304nsi9x1v";
+ x86hash = "1di29hrimbw3myjnf2nn26a14klidhdwvjqla6yxhwd3s6lil194";
+ x64suffix = "15";
+ x86suffix = "15";
+ homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2006.html";
+ };
+
+ "20.09.0" = {
+ major = "20";
+ minor = "9";
+ patch = "0";
+ x64hash = "15gjq1vk1y76c39p72xnam9h9rnr0632i4n11l6xbjnfnad8d4pr";
+ x86hash = "1b4gdmnnpa61ydiv2fnmap8cnfhskrq6swcs6i1nqrp5zvvkqrv4";
+ x64suffix = "15";
+ x86suffix = "15";
+ homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2009.html";
+ };
+
+ "20.10.0" = {
+ major = "20";
+ minor = "10";
+ patch = "0";
+ x64hash = "13g7r92mhwqwqkm6a4k4yn232ighkmxifs7j8wdi1yva0dvklqdf";
+ x86hash = "04cr2da25v8x098ccyjwa47d4krk3jpldqkyf4kk2j3hwzbqh9yx";
+ x64suffix = "6";
+ x86suffix = "6";
+ homepage = "https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+ };
+ };
+
+ # Retain attribute-names for abandoned versions of Citrix workspace to
+ # provide a meaningful error-message if it's attempted to use such an old one.
+ #
+ # The lifespans of Citrix products can be found here:
+ # https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
+ unsupportedVersions = [ ];
+in {
+ inherit supportedVersions unsupportedVersions;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
new file mode 100644
index 000000000000..a81356da252d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
@@ -0,0 +1,115 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, alsaLib, ffmpeg, glib, openssl
+, pcre, zlib, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama
+, libXrandr, libXrender, libXv, libXtst, libxkbcommon, libxkbfile, wayland
+, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc, libxslt, cairo
+, libusb1, libpulseaudio, cups, pcsclite, systemd, libjpeg_turbo
+, buildServer ? true, nocaps ? false
+}:
+
+let
+ cmFlag = flag: if flag then "ON" else "OFF";
+ disabledTests = [
+ # this one is probably due to our sandbox
+ {
+ dir = "libfreerdp/crypto/test";
+ file = "Test_x509_cert_info.c";
+ }
+ ];
+
+in stdenv.mkDerivation rec {
+ pname = "freerdp";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "FreeRDP";
+ repo = "FreeRDP";
+ rev = version;
+ sha256 = "02zlg5r704zbryx09a5rjjf7q137kj16i9qh25dw9q1y69ri619n";
+ };
+
+ postPatch = ''
+ export HOME=$TMP
+
+ # failing test(s)
+ ${lib.concatMapStringsSep "\n" (e: ''
+ substituteInPlace ${e.dir}/CMakeLists.txt \
+ --replace ${e.file} ""
+ rm ${e.dir}/${e.file}
+ '') disabledTests}
+
+ substituteInPlace "libfreerdp/freerdp.pc.in" \
+ --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@"
+ '' + lib.optionalString (pcsclite != null) ''
+ substituteInPlace "winpr/libwinpr/smartcard/smartcard_pcsc.c" \
+ --replace "libpcsclite.so" "${lib.getLib pcsclite}/lib/libpcsclite.so"
+ '' + lib.optionalString nocaps ''
+ substituteInPlace "libfreerdp/locale/keyboard_xkbfile.c" \
+ --replace "RDP_SCANCODE_CAPSLOCK" "RDP_SCANCODE_LCONTROL"
+ '';
+
+ buildInputs = with lib;
+ [
+ alsaLib
+ cairo
+ cups
+ ffmpeg
+ glib
+ gst-plugins-base
+ gst-plugins-good
+ gstreamer
+ libX11
+ libXcursor
+ libXdamage
+ libXext
+ libXi
+ libXinerama
+ libXrandr
+ libXrender
+ libXtst
+ libXv
+ libjpeg_turbo
+ libpulseaudio
+ libunwind
+ libusb1
+ libxkbcommon
+ libxkbfile
+ libxslt
+ openssl
+ orc
+ pcre
+ pcsclite
+ wayland
+ zlib
+ ] ++ optional stdenv.isLinux systemd;
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ doCheck = true;
+
+ cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ]
+ ++ lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") {
+ BUILD_TESTING = doCheck;
+ WITH_CUNIT = doCheck;
+ WITH_CUPS = (cups != null);
+ WITH_OSS = false;
+ WITH_PCSC = (pcsclite != null);
+ WITH_PULSE = (libpulseaudio != null);
+ WITH_SERVER = buildServer;
+ WITH_SSE2 = stdenv.isx86_64;
+ WITH_VAAPI = true;
+ WITH_JPEG = (libjpeg_turbo != null);
+ WITH_CAIRO = (cairo != null);
+ };
+
+ meta = with lib; {
+ description = "A Remote Desktop Protocol Client";
+ longDescription = ''
+ FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
+ following the Microsoft Open Specifications.
+ '';
+ homepage = "https://www.freerdp.com/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ peterhoeg lheckemann ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/putty/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/putty/default.nix
new file mode 100644
index 000000000000..61e82726f353
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/putty/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, lib, fetchurl, autoconf, automake, pkgconfig, libtool
+, gtk2, halibut, ncurses, perl, darwin
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.74";
+ pname = "putty";
+
+ src = fetchurl {
+ urls = [
+ "https://the.earth.li/~sgtatham/putty/${version}/${pname}-${version}.tar.gz"
+ "ftp://ftp.wayne.edu/putty/putty-website-mirror/${version}/${pname}-${version}.tar.gz"
+ ];
+ sha256 = "0zc43g8ycyf712cdrja4k8ih5s3agw1k0nq0jkifdn8xwn4d7mfx";
+ };
+
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
+
+ preConfigure = lib.optionalString stdenv.hostPlatform.isUnix ''
+ perl mkfiles.pl
+ ( cd doc ; make );
+ ./mkauto.sh
+ cd unix
+ '' + lib.optionalString stdenv.hostPlatform.isWindows ''
+ cd windows
+ '';
+
+ TOOLPATH = stdenv.cc.targetPrefix;
+ makefile = if stdenv.hostPlatform.isWindows then "Makefile.mgw" else null;
+
+ installPhase = if stdenv.hostPlatform.isWindows then ''
+ for exe in *.exe; do
+ install -D $exe $out/bin/$exe
+ done
+ '' else null;
+
+ nativeBuildInputs = [ autoconf automake halibut libtool perl pkgconfig ];
+ buildInputs = lib.optionals stdenv.hostPlatform.isUnix [
+ gtk2 ncurses
+ ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.libs.utmp;
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "A Free Telnet/SSH Client";
+ longDescription = ''
+ PuTTY is a free implementation of Telnet and SSH for Windows and Unix
+ platforms, along with an xterm terminal emulator.
+ It is written and maintained primarily by Simon Tatham.
+ '';
+ homepage = "https://www.chiark.greenend.org.uk/~sgtatham/putty/";
+ license = licenses.mit;
+ platforms = platforms.unix ++ platforms.windows;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
new file mode 100644
index 000000000000..4c67105dafc2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchFromGitHub, openssl, libX11, krb5, libXcursor, libtasn1, nettle, gnutls, pkgconfig, autoreconfHook
+, enableCredssp ? (!stdenv.isDarwin)
+} :
+
+stdenv.mkDerivation (rec {
+ pname = "rdesktop";
+ version = "1.9.0";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1s6k1jwd28y38ymk3lfv76ch4arpfwrbdhpkbnwwy3fc4617gb78";
+ };
+
+ nativeBuildInputs = [pkgconfig autoreconfHook];
+ buildInputs = [openssl libX11 libXcursor libtasn1 nettle gnutls]
+ ++ stdenv.lib.optional enableCredssp krb5;
+
+ configureFlags = [
+ "--with-ipv6"
+ "--with-openssl=${openssl.dev}"
+ "--disable-smartcard"
+ ] ++ stdenv.lib.optional (!enableCredssp) "--disable-credssp";
+
+ meta = {
+ description = "Open source client for Windows Terminal Services";
+ homepage = "http://www.rdesktop.org/";
+ platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+ license = stdenv.lib.licenses.gpl2;
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
new file mode 100644
index 000000000000..feb707412468
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitLab, cmake, ninja, pkgconfig, wrapGAppsHook
+, glib, gtk3, gettext, libxkbfile, libX11
+, freerdp, libssh, libgcrypt, gnutls
+, pcre, libdbusmenu-gtk3, libappindicator-gtk3
+, libvncserver, libpthreadstubs, libXdmcp, libxkbcommon
+, libsecret, libsoup, spice-protocol, spice-gtk, epoxy, at-spi2-core
+, openssl, gsettings-desktop-schemas, json-glib, libsodium, webkitgtk, harfbuzz
+# The themes here are soft dependencies; only icons are missing without them.
+, gnome3
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "remmina";
+ version = "1.4.7";
+
+ src = fetchFromGitLab {
+ owner = "Remmina";
+ repo = "Remmina";
+ rev = "v${version}";
+ sha256 = "0h09f2amj7ab78fzil2w7cr22d21ad5mp1r2fa70w26g7ra3jzk9";
+ };
+
+ nativeBuildInputs = [ cmake ninja pkgconfig wrapGAppsHook ];
+ buildInputs = [
+ gsettings-desktop-schemas
+ glib gtk3 gettext libxkbfile libX11
+ freerdp libssh libgcrypt gnutls
+ pcre libdbusmenu-gtk3 libappindicator-gtk3
+ libvncserver libpthreadstubs libXdmcp libxkbcommon
+ libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core
+ openssl gnome3.adwaita-icon-theme json-glib libsodium webkitgtk
+ harfbuzz
+ ];
+
+ cmakeFlags = [
+ "-DWITH_VTE=OFF"
+ "-DWITH_TELEPATHY=OFF"
+ "-DWITH_AVAHI=OFF"
+ "-DFREERDP_LIBRARY=${freerdp}/lib/libfreerdp2.so"
+ "-DFREERDP_CLIENT_LIBRARY=${freerdp}/lib/libfreerdp-client2.so"
+ "-DFREERDP_WINPR_LIBRARY=${freerdp}/lib/libwinpr2.so"
+ "-DWINPR_INCLUDE_DIR=${freerdp}/include/winpr2"
+ ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix LD_LIBRARY_PATH : "${libX11.out}/lib"
+ )
+ '';
+
+ meta = {
+ license = licenses.gpl2;
+ homepage = "https://gitlab.com/Remmina/Remmina";
+ description = "Remote desktop client written in GTK";
+ maintainers = with maintainers; [ melsigl ryantm ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
new file mode 100644
index 000000000000..9c3ed826a2d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -0,0 +1,66 @@
+{ mkDerivation, lib, fetchurl, autoPatchelfHook, makeWrapper, xdg_utils, dbus
+, qtbase, qtwebkit, qtx11extras, qtquickcontrols, glibc
+, libXrandr, libX11, libXext, libXdamage, libXtst, libSM, libXfixes
+, wrapQtAppsHook
+}:
+
+mkDerivation rec {
+ pname = "teamviewer";
+ version = "15.8.3";
+
+ src = fetchurl {
+ url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
+ sha256 = "1c947yxgs0mv5x6qvy40dypbbhhjbglma1pwl66z39gzg51n2dmc";
+ };
+
+ unpackPhase = ''
+ ar x $src
+ tar xf data.tar.*
+ '';
+
+ nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapQtAppsHook ];
+ buildInputs = [ dbus qtbase qtwebkit qtx11extras libX11 ];
+ propagatedBuildInputs = [ qtquickcontrols ];
+
+ installPhase = ''
+ mkdir -p $out/share/teamviewer $out/bin $out/share/applications
+ cp -a opt/teamviewer/* $out/share/teamviewer
+ rm -R \
+ $out/share/teamviewer/logfiles \
+ $out/share/teamviewer/config \
+ $out/share/teamviewer/tv_bin/xdg-utils \
+ $out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,libdepend,tv-delayed-start.sh}
+
+ ln -s $out/share/teamviewer/tv_bin/script/teamviewer $out/bin
+ ln -s $out/share/teamviewer/tv_bin/teamviewerd $out/bin
+ ln -s $out/share/teamviewer/tv_bin/desktop/com.teamviewer.*.desktop $out/share/applications
+ ln -s /var/lib/teamviewer $out/share/teamviewer/config
+ ln -s /var/log/teamviewer $out/share/teamviewer/logfiles
+ ln -s ${xdg_utils}/bin $out/share/teamviewer/tv_bin/xdg-utils
+
+ sed -i "s,/opt/teamviewer,$out/share/teamviewer,g" $out/share/teamviewer/tv_bin/desktop/com.teamviewer.*.desktop
+
+ substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_aux \
+ --replace '/lib64/ld-linux-x86-64.so.2' '${glibc.out}/lib/ld-linux-x86-64.so.2'
+ substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_config \
+ --replace '/var/run/' '/run/'
+
+ wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
+ wrapProgram $out/share/teamviewer/tv_bin/teamviewerd --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
+ wrapProgram $out/share/teamviewer/tv_bin/TeamViewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
+ wrapProgram $out/share/teamviewer/tv_bin/TeamViewer_Desktop --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [libXrandr libX11 libXext libXdamage libXtst libSM libXfixes ]}"
+
+ wrapQtApp $out/bin/teamviewer
+ '';
+
+ dontStrip = true;
+ preferLocalBuild = true;
+
+ meta = with lib; {
+ homepage = "http://www.teamviewer.com";
+ license = licenses.unfree;
+ description = "Desktop sharing application, providing remote support and online meetings";
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ jagajaga dasuxullebt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
new file mode 100644
index 000000000000..09b7011c3164
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, buildFHSUserEnv, fetchurl, makeWrapper, makeDesktopItem, libxslt, atk
+, fontconfig, freetype, gdk-pixbuf, glib, gtk2, libudev0-shim, libxml2
+, pango, pixman, libX11, libXext, libXinerama, libXrandr , libXrender
+, libXtst, libXcursor, libXi, libxkbfile , libXScrnSaver, zlib, liberation_ttf
+, libtiff, dbus, at-spi2-atk, harfbuzz, gtk3-x11, libuuid, pcsclite
+}:
+
+let
+ version = "2006";
+
+ sysArch =
+ if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
+ else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+ # The downloaded archive also contains i386 and ARM binaries, but these have not been tested.
+
+ vmwareHorizonClientFiles = stdenv.mkDerivation {
+ name = "vmwareHorizonClientFiles";
+ inherit version;
+ src = fetchurl {
+ url = https://download3.vmware.com/software/view/viewclients/CART21FQ2/vmware-view-client-linux-2006-8.0.0-16522670.tar.gz;
+ sha256 = "8c46d49fea42f8c1f7cf32a5f038f5a47d2b304743b1e4f4c68c658621b0e79c";
+ };
+ buildInputs = [ makeWrapper ];
+ installPhase = ''
+ mkdir ext $out
+ find ${sysArch} -type f -print0 | xargs -0n1 tar -Cext --strip-components=1 -xf
+ mv ext/bin ext/lib ext/share "$out"/
+
+ # Horizon includes a copy of libstdc++ which is loaded via $LD_LIBRARY_PATH
+ # when it cannot detect a new enough version already present on the system.
+ # The checks are distribution-specific and do not function correctly on NixOS.
+ # Deleting the bundled library is the simplest way to force it to use our version.
+ rm -f "$out/lib/vmware/gcc/libstdc++.so.6"
+
+ # Force the default GTK theme (Adwaita) because Horizon is prone to
+ # UI usability issues when using non-default themes, such as Adwaita-dark.
+ makeWrapper "$out/bin/vmware-view" "$out/bin/vmware-view_wrapper" \
+ --set GTK_THEME Adwaita \
+ --suffix LD_LIBRARY_PATH : "$out/lib/vmware/view/crtbora:$out/lib/vmware"
+ '';
+ };
+
+ vmwareFHSUserEnv = buildFHSUserEnv {
+ name = "vmware-view";
+
+ runScript = "${vmwareHorizonClientFiles}/bin/vmware-view_wrapper";
+
+ targetPkgs = pkgs: [
+ pcsclite dbus vmwareHorizonClientFiles atk fontconfig freetype gdk-pixbuf glib gtk2
+ libudev0-shim libxml2 pango pixman liberation_ttf libX11 libXext libXinerama
+ libXrandr libXrender libXtst libXcursor libXi libxkbfile at-spi2-atk libXScrnSaver
+ zlib libtiff harfbuzz gtk3-x11 libuuid
+ ];
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "vmware-view";
+ desktopName = "VMware Horizon Client";
+ icon = "${vmwareHorizonClientFiles}/share/icons/vmware-view.png";
+ exec = "${vmwareFHSUserEnv}/bin/vmware-view %u";
+ mimeType = "x-scheme-handler/vmware-view";
+ };
+
+in stdenv.mkDerivation {
+ name = "vmware-view";
+ dontUnpack = true;
+ installPhase = ''
+ mkdir -p $out/bin $out/share/applications
+ cp "${desktopItem}"/share/applications/* $out/share/applications/
+ ln -s "${vmwareFHSUserEnv}/bin/vmware-view" "$out/bin/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Allows you to connect to your VMware Horizon virtual desktop";
+ homepage = "https://www.vmware.com/go/viewclients";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ buckley310 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
new file mode 100644
index 000000000000..2c91d6496a0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitLab
+, meson, ninja, pkg-config, scdoc
+, openssh
+, mesa, lz4, zstd, ffmpeg, libva
+}:
+
+stdenv.mkDerivation rec {
+ pname = "waypipe-unstable";
+ version = "0.7.1";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.freedesktop.org";
+ owner = "mstoeckl";
+ repo = "waypipe";
+ rev = "v${version}";
+ sha256 = "00skyxmbssfxksb8wlqdr8gajpysadirjcn230fd5gaf5msvllx7";
+ };
+
+ postPatch = ''
+ substituteInPlace src/waypipe.c \
+ --replace "/usr/bin/ssh" "${openssh}/bin/ssh"
+ '';
+
+ nativeBuildInputs = [ meson ninja pkg-config scdoc ];
+
+ buildInputs = [
+ # Optional dependencies:
+ mesa lz4 zstd ffmpeg libva
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A network proxy for Wayland clients (applications)";
+ longDescription = ''
+ waypipe is a proxy for Wayland clients. It forwards Wayland messages and
+ serializes changes to shared memory buffers over a single socket. This
+ makes application forwarding similar to ssh -X feasible.
+ '';
+ homepage = "https://mstoeckl.com/notes/gsoc/blog.html";
+ changelog = "https://gitlab.freedesktop.org/mstoeckl/waypipe/-/releases#v${version}";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
new file mode 100644
index 000000000000..e8fbec0d91a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, meson, pkg-config, ninja, scdoc
+, pixman, libxkbcommon, wayland, neatvnc, libdrm, libX11, aml
+}:
+
+stdenv.mkDerivation rec {
+ pname = "wayvnc";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "any1";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1vlrk6zdkv0kl1ckxv65nay9vm6yjrs4kadsdvp42nryiifrdhad";
+ };
+
+ nativeBuildInputs = [ meson pkg-config ninja scdoc wayland ];
+ buildInputs = [ pixman libxkbcommon wayland neatvnc libdrm libX11 aml ];
+
+ meta = with stdenv.lib; {
+ description = "A VNC server for wlroots based Wayland compositors";
+ longDescription = ''
+ This is a VNC server for wlroots based Wayland compositors. It attaches
+ to a running Wayland session, creates virtual input devices and exposes a
+ single display via the RFB protocol. The Wayland session may be a
+ headless one, so it is also possible to run wayvnc without a physical
+ display attached.
+ '';
+ inherit (src.meta) homepage;
+ changelog = "https://github.com/any1/wayvnc/releases/tag/v${version}";
+ license = licenses.isc;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix
new file mode 100644
index 000000000000..047458067357
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchgit, cups, libssh, libXpm, nx-libs, openldap, openssh
+, mkDerivation, qtbase, qtsvg, qtx11extras, qttools, phonon, pkgconfig }:
+
+mkDerivation {
+ pname = "x2goclient";
+ version = "unstable-2019-07-24";
+
+ src = fetchgit {
+ url = "git://code.x2go.org/x2goclient.git";
+ rev = "704c4ab92d20070dd160824c9b66a6d1c56dcc49";
+ sha256 = "1pndp3lfzwifyxqq0gps3p1bwakw06clbk6n8viv020l4bsfmq5f";
+ };
+
+ buildInputs = [ cups libssh libXpm nx-libs openldap openssh
+ qtbase qtsvg qtx11extras qttools phonon pkgconfig ];
+
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace "SHELL=/bin/bash" "SHELL=$SHELL" \
+ --replace "lrelease-qt4" "${qttools.dev}/bin/lrelease" \
+ --replace "qmake-qt4" "${qtbase.dev}/bin/qmake" \
+ --replace "-o root -g root" ""
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" "ETCDIR=$(out)/etc" "build_client" "build_man" ];
+
+ enableParallelBuilding = true;
+
+ installTargets = [ "install_client" "install_man" ];
+
+ qtWrapperArgs = [ ''--suffix PATH : ${nx-libs}/bin:${openssh}/libexec'' ];
+
+ meta = with stdenv.lib; {
+ description = "Graphical NoMachine NX3 remote desktop client";
+ homepage = "http://x2go.org/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix
new file mode 100644
index 000000000000..1c20bd8b7a82
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, lib, fetchurl, perlPackages, makeWrapper, perl, which, nx-libs
+, util-linux, coreutils, glibc, gawk, gnused, gnugrep, findutils, xorg
+, nettools, iproute, bc, procps, psmisc, lsof, pwgen, openssh, sshfs, bash
+}:
+
+let
+ pname = "x2goserver";
+ version = "4.1.0.3";
+
+ src = fetchurl {
+ url = "http://code.x2go.org/releases/source/x2goserver/${pname}-${version}.tar.gz";
+ sha256 = "1l6wd708kbipib4ldprfiihqmj4895nifg0bkws4x97majislxk7";
+ };
+
+ x2go-perl = perlPackages.buildPerlPackage rec {
+ pname = "X2Go";
+ inherit version src;
+ makeFlags = [ "-f" "Makefile.perl" ];
+ patchPhase = ''
+ substituteInPlace X2Go/Config.pm --replace '/etc/x2go' '/var/lib/x2go/conf'
+ substituteInPlace X2Go/Server/DB.pm \
+ --replace '$x2go_lib_path/libx2go-server-db-sqlite3-wrapper' \
+ '/run/wrappers/bin/x2gosqliteWrapper'
+ substituteInPlace X2Go/Server/DB/SQLite3.pm --replace "user='x2gouser'" "user='x2go'"
+ '';
+ };
+
+ perlEnv = perl.withPackages (p: with p; [
+ x2go-perl DBI DBDSQLite FileBaseDir TryTiny CaptureTiny ConfigSimple Switch
+ ]);
+
+ binaryDeps = [
+ perlEnv which nx-libs util-linux coreutils glibc.bin gawk gnused gnugrep
+ findutils nettools iproute bc procps psmisc lsof pwgen openssh sshfs
+ xorg.xauth xorg.xinit xorg.xrandr xorg.xmodmap xorg.xwininfo xorg.fontutil
+ xorg.xkbcomp xorg.setxkbmap
+ ];
+in
+stdenv.mkDerivation rec {
+ inherit pname version src;
+
+ buildInputs = [ perlEnv bash ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ prePatch = ''
+ patchShebangs .
+ sed -i '/Makefile.PL\|Makefile.perl/d' Makefile
+ for i in */Makefile; do
+ substituteInPlace "$i" --replace "-o root -g root " ""
+ done
+ substituteInPlace libx2go-server-db-perl/Makefile --replace "chmod 2755" "chmod 755"
+ for i in x2goserver/sbin/x2godbadmin x2goserver/bin/x2go*
+ do
+ substituteInPlace $i --replace '/etc/x2go' '/var/lib/x2go/conf'
+ done
+ substituteInPlace x2goserver/sbin/x2gocleansessions \
+ --replace '/var/run/x2goserver.pid' '/var/run/x2go/x2goserver.pid'
+ substituteInPlace x2goserver/sbin/x2godbadmin --replace 'user="x2gouser"' 'user="x2go"'
+ substituteInPlace x2goserver-xsession/etc/Xsession \
+ --replace "SSH_AGENT /bin/bash -c" "SSH_AGENT ${bash}/bin/bash -c" \
+ --replace "[ -f /etc/redhat-release ]" "[ -d /etc/nix ] || [ -f /etc/redhat-release ]"
+ '';
+
+ makeFlags = [ "PREFIX=/" "NXLIBDIR=${nx-libs}/lib/nx" ];
+
+ installFlags = [ "DESTDIR=$(out)" ];
+
+ postInstall = ''
+ mv $out/etc/x2go/x2goserver.conf{,.example}
+ mv $out/etc/x2go/x2goagent.options{,.example}
+ ln -sf ${nx-libs}/bin/nxagent $out/bin/x2goagent
+ for i in $out/sbin/x2go* $(find $out/bin -type f) \
+ $(ls $out/lib/x2go/x2go* | grep -v x2gocheckport)
+ do
+ wrapProgram $i --prefix PATH : ${lib.makeBinPath binaryDeps}:$out
+ done
+ # We're patching @INC of the setgid wrapper, because we can't mix
+ # the perl wrapper (for PERL5LIB) with security.wrappers (for setgid)
+ sed -ie "s,.\+bin/perl,#!${perl}/bin/perl -I ${perlEnv}/lib/perl5/site_perl," \
+ $out/lib/x2go/libx2go-server-db-sqlite3-wrapper.pl
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Remote desktop application, server component";
+ homepage = "http://x2go.org/";
+ platforms = stdenv.lib.platforms.linux;
+ license = licenses.gpl2;
+ maintainers = [ maintainers.averelld ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix
new file mode 100644
index 000000000000..9941951225ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix
@@ -0,0 +1,105 @@
+{ stdenv, fetchFromGitHub, pkgconfig, which, perl, autoconf, automake, libtool, openssl, systemd, pam, fuse, libjpeg, libopus, nasm, xorg }:
+
+let
+ xorgxrdp = stdenv.mkDerivation rec {
+ pname = "xorgxrdp";
+ version = "0.2.9";
+
+ src = fetchFromGitHub {
+ owner = "neutrinolabs";
+ repo = "xorgxrdp";
+ rev = "v${version}";
+ sha256 = "1bhp5x47hajhinvglmc4vxxnpjvfjm6369njb3ghqfr7c5xypvzr";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoconf automake which libtool nasm ];
+
+ buildInputs = [ xorg.xorgserver ];
+
+ postPatch = ''
+ # patch from Debian, allows to run xrdp daemon under unprivileged user
+ substituteInPlace module/rdpClientCon.c \
+ --replace 'g_sck_listen(dev->listen_sck);' 'g_sck_listen(dev->listen_sck); g_chmod_hex(dev->uds_data, 0x0660);'
+
+ substituteInPlace configure.ac \
+ --replace 'moduledir=`pkg-config xorg-server --variable=moduledir`' "moduledir=$out/lib/xorg/modules" \
+ --replace 'sysconfdir="/etc"' "sysconfdir=$out/etc"
+ '';
+
+ preConfigure = "./bootstrap";
+
+ configureFlags = [ "XRDP_CFLAGS=-I${xrdp.src}/common" ];
+
+ enableParallelBuilding = true;
+ };
+
+ xrdp = stdenv.mkDerivation rec {
+ version = "0.9.9";
+ pname = "xrdp";
+
+ src = fetchFromGitHub {
+ owner = "volth";
+ repo = "xrdp";
+ rev = "refs/tags/runtime-cfg-path-${version}"; # Fixes https://github.com/neutrinolabs/xrdp/issues/609; not a patch on top of the official repo because "xorgxrdp.configureFlags" above includes "xrdp.src" which must be patched already
+ fetchSubmodules = true;
+ sha256 = "0ynj6pml4f38y8571ryhifza57wfqg4frdrjcwzw3fmryiznfm1z";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoconf automake which libtool nasm ];
+
+ buildInputs = [ openssl systemd pam fuse libjpeg libopus xorg.libX11 xorg.libXfixes xorg.libXrandr ];
+
+ postPatch = ''
+ substituteInPlace sesman/xauth.c --replace "xauth -q" "${xorg.xauth}/bin/xauth -q"
+ '';
+
+ preConfigure = ''
+ (cd librfxcodec && ./bootstrap && ./configure --prefix=$out --enable-static --disable-shared)
+ ./bootstrap
+ '';
+ dontDisableStatic = true;
+ configureFlags = [ "--with-systemdsystemunitdir=/var/empty" "--enable-ipv6" "--enable-jpeg" "--enable-fuse" "--enable-rfxcodec" "--enable-opus" ];
+
+ installFlags = [ "DESTDIR=$(out)" "prefix=" ];
+
+ postInstall = ''
+ # remove generated keys (as non-determenistic) and upstart script
+ rm $out/etc/xrdp/{rsakeys.ini,key.pem,cert.pem,xrdp.sh}
+
+ cp $src/keygen/openssl.conf $out/share/xrdp/openssl.conf
+
+ substituteInPlace $out/etc/xrdp/sesman.ini --replace /etc/xrdp/pulse $out/etc/xrdp/pulse
+
+ # remove all session types except Xorg (they are not supported by this setup)
+ ${perl}/bin/perl -i -ne 'print unless /\[(X11rdp|Xvnc|console|vnc-any|sesman-any|rdp-any|neutrinordp-any)\]/ .. /^$/' $out/etc/xrdp/xrdp.ini
+
+ # remove all session types and then add Xorg
+ ${perl}/bin/perl -i -ne 'print unless /\[(X11rdp|Xvnc|Xorg)\]/ .. /^$/' $out/etc/xrdp/sesman.ini
+
+ cat >> $out/etc/xrdp/sesman.ini <<EOF
+
+ [Xorg]
+ param=${xorg.xorgserver}/bin/Xorg
+ param=-modulepath
+ param=${xorgxrdp}/lib/xorg/modules,${xorg.xorgserver}/lib/xorg/modules
+ param=-config
+ param=${xorgxrdp}/etc/X11/xrdp/xorg.conf
+ param=-noreset
+ param=-nolisten
+ param=tcp
+ param=-logfile
+ param=.xorgxrdp.%s.log
+ EOF
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "An open source RDP server";
+ homepage = "https://github.com/neutrinolabs/xrdp";
+ license = licenses.asl20;
+ maintainers = [ maintainers.volth ];
+ platforms = platforms.linux;
+ };
+ };
+in xrdp
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
new file mode 100644
index 000000000000..537e0fc81800
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, ... }:
+
+let
+ arch = {
+ x86_64-linux = "x64";
+ i686-linux = "i386";
+ aarch64-linux = "arm64";
+ }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+ libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.libc ];
+
+in stdenv.mkDerivation rec {
+ pname = "resilio-sync";
+ version = "2.7.2";
+
+ src = fetchurl {
+ url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
+ sha256 = {
+ x86_64-linux = "0gar5lzv1v4yqmypwqsjnfb64vffzn8mw9vnjr733fgf1pmr57hf";
+ i686-linux = "1bws7r86h1vysjkhyvp2zk8yvxazmlczvhjlcayldskwq48iyv6w";
+ aarch64-linux = "0j8wk5cf8bcaaqxi8gnqf1mpv8nyfjyr4ibls7jnn2biqq767af2";
+ }.${stdenv.hostPlatform.system};
+ };
+
+ dontStrip = true; # Don't strip, otherwise patching the rpaths breaks
+ sourceRoot = ".";
+
+ installPhase = ''
+ install -D rslsync "$out/bin/rslsync"
+ patchelf \
+ --interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${libPath} "$out/bin/rslsync"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automatically sync files via secure, distributed technology";
+ homepage = "https://www.resilio.com/";
+ license = licenses.unfreeRedistributable;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ domenkozar thoughtpolice cwoac ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/scaleft/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/scaleft/default.nix
new file mode 100644
index 000000000000..b1a754193ebf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/scaleft/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, rpmextract, patchelf, bash }:
+
+stdenv.mkDerivation rec {
+ pname = "scaleft";
+ version = "1.45.4";
+
+ src =
+ fetchurl {
+ url = "http://pkg.scaleft.com/rpm/scaleft-client-tools-${version}-1.x86_64.rpm";
+ sha256 = "1yskybjba9ljy1wazddgrm7a4cc72i1xbk7sxnjpcq4hdy3b50l0";
+ };
+
+ nativeBuildInputs = [ patchelf rpmextract ];
+
+ libPath =
+ stdenv.lib.makeLibraryPath
+ [ stdenv.cc stdenv.cc.cc.lib ];
+
+ buildCommand = ''
+ mkdir -p $out/bin/
+ cd $out
+ rpmextract $src
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ usr/bin/sft
+ patchelf \
+ --set-rpath ${libPath} \
+ usr/bin/sft
+ ln -s $out/usr/bin/sft $out/bin/sft
+ chmod +x $out/bin/sft
+ patchShebangs $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "ScaleFT provides Zero Trust software which you can use to secure your internal servers and services";
+ homepage = "https://www.scaleft.com";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ jloyet ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/seafile-client/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
new file mode 100644
index 000000000000..69b7b432b0a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
@@ -0,0 +1,34 @@
+{ mkDerivation, lib, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools
+, seafile-shared, ccnet, jansson, libsearpc
+, withShibboleth ? true, qtwebengine }:
+
+mkDerivation rec {
+ pname = "seafile-client";
+ version = "7.0.9";
+
+ src = fetchFromGitHub {
+ owner = "haiwen";
+ repo = "seafile-client";
+ rev = "v${version}";
+ sha256 = "0pcn6lfzma2hvpwsp9q0002wvym7zabpp8fvq29l101gzirn79m9";
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [ qtbase qttools seafile-shared jansson libsearpc ]
+ ++ lib.optional withShibboleth qtwebengine;
+
+ cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ]
+ ++ lib.optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON";
+
+ qtWrapperArgs = [
+ "--suffix PATH : ${lib.makeBinPath [ ccnet seafile-shared ]}"
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/haiwen/seafile-client";
+ description = "Desktop client for Seafile, the Next-generation Open Source Cloud Storage";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
new file mode 100644
index 000000000000..d0a396d6a907
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "seaweedfs";
+ version = "2.13";
+
+ src = fetchFromGitHub {
+ owner = "chrislusf";
+ repo = "seaweedfs";
+ rev = version;
+ sha256 = "0w41p2fm26ml5dvdg2cnxcw0xzsbjq26chpa3bkn1adpazlpivp4";
+ };
+
+ vendorSha256 = "0g344dj325d35i0myrzhg5chspqnly40qp910ml6zrmp7iszc1mw";
+
+ subPackages = [ "weed" ];
+
+ meta = with lib; {
+ description = "Simple and highly scalable distributed file system";
+ homepage = "https://github.com/chrislusf/seaweedfs";
+ maintainers = [ maintainers.raboof ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix
new file mode 100644
index 000000000000..c81cc78a9b55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, makeWrapper, perlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "sieve-connect";
+ version = "0.90";
+
+ src = fetchFromGitHub {
+ owner = "philpennock";
+ repo = "sieve-connect";
+ rev = "v${version}";
+ sha256 = "1ghvfa5ifa68b6imh85bkmy00r93c5f9hs6d039axb73gmma580p";
+ };
+
+ buildInputs = [ perlPackages.perl ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ preBuild = ''
+ # Fixes failing build when not building in git repo
+ mkdir .git
+ touch .git/HEAD
+ echo "${version}" > versionfile
+ echo "$(date +%Y-%m-%d)" > datefile
+ '';
+
+ buildFlags = [ "PERL5LIB=${perlPackages.makePerlPath [ perlPackages.FileSlurp ]}" "bin" "man" ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/man/man1
+ install -m 755 sieve-connect $out/bin
+ gzip -c sieve-connect.1 > $out/share/man/man1/sieve-connect.1.gz
+
+ wrapProgram $out/bin/sieve-connect \
+ --prefix PERL5LIB : "${with perlPackages; makePerlPath [
+ AuthenSASL Socket6 IOSocketInet6 IOSocketSSL NetSSLeay NetDNS
+ TermReadKey TermReadLineGnu ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A client for the MANAGESIEVE Protocol";
+ longDescription = ''
+ This is sieve-connect. A client for the ManageSieve protocol,
+ as specifed in RFC 5804. Historically, this was MANAGESIEVE as
+ implemented by timsieved in Cyrus IMAP.
+ '';
+ homepage = "https://github.com/philpennock/sieve-connect";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ das_j ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch
new file mode 100644
index 000000000000..69a3e3287371
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch
@@ -0,0 +1,14 @@
+diff --git a/src/dejitter.c b/src/dejitter.c
+index 1904ab3..cb3624d 100644
+--- a/src/dejitter.c
++++ b/src/dejitter.c
+@@ -22,6 +22,8 @@
+
+ #include <errno.h>
+
++#include <string.h>
++#include <sys/time.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/siproxd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/siproxd/default.nix
new file mode 100644
index 000000000000..e664ee20c237
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/siproxd/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libosip }:
+
+stdenv.mkDerivation rec {
+ name = "siproxd-0.8.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/siproxd/${name}.tar.gz";
+ sha256 = "1l6cyxxhra825jiiw9npa7jrbfgbyfpk4966cqkrw66cn28y8v2j";
+ };
+
+ patches = [ ./cheaders.patch ];
+
+ buildInputs = [ libosip ];
+
+ meta = {
+ homepage = "http://siproxd.sourceforge.net/";
+ description = "A masquerading SIP Proxy Server";
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix
new file mode 100644
index 000000000000..4cc4487c90ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, libtool, gtk3, libpcap, goocanvas2,
+popt, itstool, libxml2 }:
+
+stdenv.mkDerivation rec {
+ name = "etherape-0.9.19";
+ src = fetchurl {
+ url = "mirror://sourceforge/etherape/${name}.tar.gz";
+ sha256 = "0w63vg2q6if3wvy2md66in8b6cdw9q40hny5xy6yrxky58l4kmg7";
+ };
+
+ nativeBuildInputs = [ itstool pkgconfig (stdenv.lib.getBin libxml2) ];
+ buildInputs = [
+ libtool gtk3 libpcap goocanvas2 popt
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://etherape.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = with platforms; linux;
+ maintainers = with maintainers; [ symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix
new file mode 100644
index 000000000000..8489b414cbc5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre
+, openssl, ncurses, glib, gtk3, atk, pango, flex, bison, geoip, harfbuzz
+, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "ettercap";
+ version = "0.8.3.1";
+
+ src = fetchFromGitHub {
+ owner = "Ettercap";
+ repo = "ettercap";
+ rev = "v${version}";
+ sha256 = "1sdf1ssa81ib6k0mc5m2jzbjl4jd1yv6ahv5dwx2x9w4b2pyqg1c";
+ };
+
+ strictDeps = true;
+ nativeBuildInputs = [ cmake flex bison pkgconfig ];
+ buildInputs = [
+ libpcap libnet zlib curl pcre openssl ncurses
+ glib gtk3 atk pango geoip harfbuzz
+ ];
+
+ preConfigure = ''
+ substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc \
+ --replace /usr \$\{INSTALL_PREFIX\}
+ '';
+
+ cmakeFlags = [
+ "-DBUNDLED_LIBS=Off"
+ "-DGTK3_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
+ ];
+
+ # TODO: Remove after the next release (0.8.4 should work without this):
+ NIX_CFLAGS_COMPILE = [ "-I${harfbuzz.dev}/include/harfbuzz" ];
+
+ meta = with stdenv.lib; {
+ description = "Comprehensive suite for man in the middle attacks";
+ longDescription = ''
+ Ettercap is a comprehensive suite for man in the middle attacks. It
+ features sniffing of live connections, content filtering on the fly and
+ many other interesting tricks. It supports active and passive dissection
+ of many protocols and includes many features for network and host
+ analysis.
+ '';
+ homepage = "https://www.ettercap-project.org/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix
new file mode 100644
index 000000000000..61d149ba5b8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, pkgconfig, libpcap, pcre, libnl, zlib, libmicrohttpd
+, sqlite, protobuf, protobufc, libusb1, libcap, binutils, elfutils
+, withNetworkManager ? false, glib, networkmanager
+, withPython ? false, python3
+, withSensors ? false, lm_sensors}:
+
+# couldn't get python modules to build correctly,
+# waiting for some other volunteer to fix it
+assert !withPython;
+
+stdenv.mkDerivation rec {
+ pname = "kismet";
+ version = "2020-09-R2";
+
+ src = fetchurl {
+ url = "https://www.kismetwireless.net/code/${pname}-${version}.tar.xz";
+ sha256 = "1n6y6sgqf50bng8n0mhs2r1w0ak14mv654sqay72a78wh2s7ywzg";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [
+ libpcap pcre libmicrohttpd libnl zlib sqlite protobuf protobufc
+ libusb1 libcap binutils elfutils
+ ] ++ stdenv.lib.optionals withNetworkManager [ networkmanager glib ]
+ ++ stdenv.lib.optional withSensors lm_sensors
+ ++ stdenv.lib.optional withPython (python3.withPackages(ps: [ ps.setuptools ps.protobuf
+ ps.numpy ps.pyserial ]));
+
+ configureFlags = []
+ ++ stdenv.lib.optional (!withNetworkManager) "--disable-libnm"
+ ++ stdenv.lib.optional (!withPython) "--disable-python-tools"
+ ++ stdenv.lib.optional (!withSensors) "--disable-lmsensors";
+
+ postConfigure = ''
+ sed -e 's/-o $(INSTUSR)//' \
+ -e 's/-g $(INSTGRP)//' \
+ -e 's/-g $(MANGRP)//' \
+ -e 's/-g $(SUIDGROUP)//' \
+ -i Makefile
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Wireless network sniffer";
+ homepage = "https://www.kismetwireless.net/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
new file mode 100644
index 000000000000..9dda62b3badb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, autoconf, automake, fetchFromGitHub, libpcap, ncurses, openssl, pcre }:
+
+stdenv.mkDerivation rec {
+ pname = "sngrep";
+ version = "1.4.8";
+
+ src = fetchFromGitHub {
+ owner = "irontec";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0lnwsw9x4y4lr1yh749y24f71p5zsghwh5lp28zqfanw025mipf2";
+ };
+
+ buildInputs = [
+ libpcap ncurses pcre openssl ncurses
+ ];
+
+ nativeBuildInputs = [
+ autoconf automake
+ ];
+
+ configureFlags = [
+ "--with-pcre"
+ "--enable-unicode"
+ "--enable-ipv6"
+ "--enable-eep"
+ ];
+
+ preConfigure = "./bootstrap.sh";
+
+ meta = with stdenv.lib; {
+ description = "A tool for displaying SIP calls message flows from terminal";
+ homepage = "https://github.com/irontec/sngrep";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ jorise ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix
new file mode 100644
index 000000000000..d2e5803d58a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libusb1 }:
+
+stdenv.mkDerivation rec {
+ pname = "whsniff";
+ version = "1.3";
+
+ src = fetchFromGitHub {
+ owner = "homewsn";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "000l5vk9c0332m35lndk8892ivdr445lgg25hmq1lajn24cash5w";
+ };
+
+ buildInputs = [ libusb1 ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/homewsn/whsniff";
+ description = "Packet sniffer for 802.15.4 wireless networks";
+ maintainers = with maintainers; [ snicket2100 ];
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
new file mode 100644
index 000000000000..d906b4459009
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -0,0 +1,122 @@
+{ stdenv, fetchurl, pkgconfig, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
+, gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, python3, libcap, glib
+, libssh, nghttp2, zlib, cmake, fetchpatch, makeWrapper
+, withQt ? true, qt5 ? null
+, ApplicationServices, SystemConfiguration, gmp
+}:
+
+assert withQt -> qt5 != null;
+
+with stdenv.lib;
+
+let
+ version = "3.4.0";
+ variant = if withQt then "qt" else "cli";
+ pcap = libpcap.override { withBluez = stdenv.isLinux; };
+
+in stdenv.mkDerivation {
+ pname = "wireshark-${variant}";
+ inherit version;
+ outputs = [ "out" "dev" ];
+
+ src = fetchurl {
+ url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
+ sha256 = "1bm8jj2rviis9j9l6nixvhxcfx362y9iphkxssgmiz2kj6yypr37";
+ };
+
+ cmakeFlags = [
+ "-DBUILD_wireshark=${if withQt then "ON" else "OFF"}"
+ "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}"
+ # Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ ];
+
+ # Avoid referencing -dev paths because of debug assertions.
+ NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ];
+
+ nativeBuildInputs = [
+ bison cmake flex pkgconfig
+ ] ++ optional withQt qt5.wrapQtAppsHook;
+
+ buildInputs = [
+ gettext pcre perl pcap lua5 libssh nghttp2 openssl libgcrypt
+ libgpgerror gnutls geoip c-ares python3 glib zlib makeWrapper
+ ] ++ optionals withQt (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
+ ++ optionals stdenv.isLinux [ libcap libnl ]
+ ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ]
+ ++ optionals (withQt && stdenv.isDarwin) (with qt5; [ qtmacextras ]);
+
+ patches = [ ./wireshark-lookup-dumpcap-in-path.patch ]
+ # https://code.wireshark.org/review/#/c/23728/
+ ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
+ name = "fix-timeout.patch";
+ url = "https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commitdiff_plain;h=8b5b843fcbc3e03e0fc45f3caf8cf5fc477e8613;hp=94af9724d140fd132896b650d10c4d060788e4f0";
+ sha256 = "1g2dm7lwsnanwp68b9xr9swspx7hfj4v3z44sz3yrfmynygk8zlv";
+ });
+
+ postPatch = ''
+ sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt
+ '';
+
+ preBuild = ''
+ export LD_LIBRARY_PATH="$PWD/run"
+ '';
+
+ postInstall = ''
+ # to remove "cycle detected in the references"
+ mkdir -p $dev/lib/wireshark
+ mv $out/lib/wireshark/cmake $dev/lib/wireshark
+ '' + (if stdenv.isDarwin && withQt then ''
+ mkdir -p $out/Applications
+ mv $out/bin/Wireshark.app $out/Applications/Wireshark.app
+
+ for f in $(find $out/Applications/Wireshark.app/Contents/PlugIns -name "*.so"); do
+ for dylib in $(otool -L $f | awk '/^\t*lib/ {print $1}'); do
+ install_name_tool -change "$dylib" "$out/lib/$dylib" "$f"
+ done
+ done
+
+ wrapQtApp $out/Applications/Wireshark.app/Contents/MacOS/Wireshark
+ '' else optionalString withQt ''
+ install -Dm644 -t $out/share/applications ../wireshark.desktop
+
+ substituteInPlace $out/share/applications/*.desktop \
+ --replace "Exec=wireshark" "Exec=$out/bin/wireshark"
+
+ install -Dm644 ../image/wsicon.svg $out/share/icons/wireshark.svg
+ mkdir $dev/include/{epan/{wmem,ftypes,dfilter},wsutil,wiretap} -pv
+
+ cp config.h $dev/include/
+ cp ../ws_*.h $dev/include
+ cp ../epan/*.h $dev/include/epan/
+ cp ../epan/wmem/*.h $dev/include/epan/wmem/
+ cp ../epan/ftypes/*.h $dev/include/epan/ftypes/
+ cp ../epan/dfilter/*.h $dev/include/epan/dfilter/
+ cp ../wsutil/*.h $dev/include/wsutil/
+ cp ../wiretap/*.h $dev/include/wiretap
+ '');
+
+ enableParallelBuilding = true;
+
+ dontFixCmake = true;
+
+ shellHook = ''
+ # to be able to run the resulting binary
+ export WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.wireshark.org/";
+ description = "Powerful network protocol analyzer";
+ license = licenses.gpl2;
+
+ longDescription = ''
+ Wireshark (formerly known as "Ethereal") is a powerful network
+ protocol analyzer developed by an international team of networking
+ experts. It runs on UNIX, macOS and Windows.
+ '';
+
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ bjornfor fpletz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch
new file mode 100644
index 000000000000..549da5436e60
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch
@@ -0,0 +1,63 @@
+From 5bef9deeff8a2e4401de0f45c9701cd6f98f29d8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com>
+Date: Thu, 26 Nov 2015 21:03:35 +0100
+Subject: [PATCH] Lookup dumpcap in PATH
+
+NixOS patch: Look for dumpcap in PATH first, because there may be a
+dumpcap wrapper that we want to use instead of the default
+non-setuid dumpcap binary.
+
+Also change execv() to execvp() because we've set argv[0] to "dumpcap"
+and have to enable PATH lookup. Wireshark is not a setuid program, so
+looking in PATH is not a security issue.
+
+Signed-off-by: Franz Pletz <fpletz@fnordicwalking.de>
+---
+ capchild/capture_sync.c | 17 ++++++++++++++---
+ 1 file changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/capchild/capture_sync.c b/capchild/capture_sync.c
+index 970688e..49914d5 100644
+--- a/capchild/capture_sync.c
++++ b/capchild/capture_sync.c
+@@ -332,7 +332,18 @@ init_pipe_args(int *argc) {
+ #ifdef _WIN32
+ exename = g_strdup_printf("%s\\dumpcap.exe", progfile_dir);
+ #else
+- exename = g_strdup_printf("%s/dumpcap", progfile_dir);
++ /*
++ * NixOS patch: Look for dumpcap in PATH first, because there may be a
++ * dumpcap wrapper that we want to use instead of the default
++ * non-setuid dumpcap binary.
++ */
++ if (system("command -v dumpcap >/dev/null") == 0) {
++ /* Found working dumpcap */
++ exename = g_strdup_printf("dumpcap");
++ } else {
++ /* take Wireshark's absolute program path and replace "Wireshark" with "dumpcap" */
++ exename = g_strdup_printf("%s/dumpcap", progfile_dir);
++ }
+ #endif
+
+ /* Make that the first argument in the argument list (argv[0]). */
+@@ -729,7 +740,7 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, voi
+ */
+ dup2(sync_pipe[PIPE_WRITE], 2);
+ ws_close(sync_pipe[PIPE_READ]);
+- execv(argv[0], argv);
++ execvp(argv[0], argv);
+ g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s",
+ argv[0], g_strerror(errno));
+ sync_pipe_errmsg_to_parent(2, errmsg, "");
+@@ -997,7 +1008,7 @@ sync_pipe_open_command(char** argv, int *data_read_fd,
+ dup2(sync_pipe[PIPE_WRITE], 2);
+ ws_close(sync_pipe[PIPE_READ]);
+ ws_close(sync_pipe[PIPE_WRITE]);
+- execv(argv[0], argv);
++ execvp(argv[0], argv);
+ g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s",
+ argv[0], g_strerror(errno));
+ sync_pipe_errmsg_to_parent(2, errmsg, "");
+--
+2.6.3
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sniproxy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniproxy/default.nix
new file mode 100644
index 000000000000..301802d322bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sniproxy/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, gettext, libev, pcre, pkgconfig, udns }:
+
+stdenv.mkDerivation rec {
+ pname = "sniproxy";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "dlundquist";
+ repo = "sniproxy";
+ rev = version;
+ sha256 = "0isgl2lyq8vz5kkxpgyh1sgjlb6sqqybakr64w2mfh29k5ls8xzm";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ gettext libev pcre udns ];
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Transparent TLS and HTTP layer 4 proxy with SNI support";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.womfoo ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/soapui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/soapui/default.nix
new file mode 100644
index 000000000000..32a6423243e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/soapui/default.nix
@@ -0,0 +1,51 @@
+{ fetchurl, stdenv, writeText, jdk, maven, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "soapui";
+ version = "5.5.0";
+
+ src = fetchurl {
+ url = "https://s3.amazonaws.com/downloads.eviware/soapuios/${version}/SoapUI-${version}-linux-bin.tar.gz";
+ sha256 = "0v1wiy61jgvlxjk8qdvcnyn1gh2ysxf266zln7r4wpzwd5gc3dpw";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jdk maven ];
+
+ installPhase = ''
+ mkdir -p $out/share/java
+ cp -R bin lib $out/share/java
+
+ makeWrapper $out/share/java/bin/soapui.sh $out/bin/soapui --set SOAPUI_HOME $out/share/java
+ '';
+
+ patches = [
+ (writeText "soapui-${version}.patch" ''
+ --- a/bin/soapui.sh
+ +++ b/bin/soapui.sh
+ @@ -34,7 +34,7 @@ SOAPUI_CLASSPATH=$SOAPUI_HOME/bin/soapui-${version}.jar:$SOAPUI_HOME/lib/*
+ export SOAPUI_CLASSPATH
+
+ JAVA_OPTS="-Xms128m -Xmx1024m -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -Dsoapui.properties=soapui.properties -Dsoapui.home=$SOAPUI_HOME/bin -splash:SoapUI-Spashscreen.png"
+ -JFXRTPATH=`java -cp $SOAPUI_CLASSPATH com.eviware.soapui.tools.JfxrtLocator`
+ +JFXRTPATH=`${jdk}/bin/java -cp $SOAPUI_CLASSPATH com.eviware.soapui.tools.JfxrtLocator`
+ SOAPUI_CLASSPATH=$JFXRTPATH:$SOAPUI_CLASSPATH
+
+ if $darwin
+ @@ -69,4 +69,4 @@ echo = SOAPUI_HOME = $SOAPUI_HOME
+ echo =
+ echo ================================
+
+ -java $JAVA_OPTS -cp $SOAPUI_CLASSPATH com.eviware.soapui.SoapUI "$@"
+ +${jdk}/bin/java $JAVA_OPTS -cp $SOAPUI_CLASSPATH com.eviware.soapui.SoapUI "$@"
+ '')
+ ];
+
+ meta = with stdenv.lib; {
+ description = "The Most Advanced REST & SOAP Testing Tool in the World";
+ homepage = "https://www.soapui.org/";
+ license = "SoapUI End User License Agreement";
+ maintainers = with maintainers; [ gerschtli ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
new file mode 100644
index 000000000000..d673917af316
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, python27Packages, geoip }:
+
+with stdenv.lib;
+
+python27Packages.buildPythonApplication {
+ pname = "nicotine-plus";
+ version = "1.4.1";
+
+ src = fetchFromGitHub {
+ owner = "Nicotine-Plus";
+ repo = "nicotine-plus";
+ rev = "4e057d64184885c63488d4213ade3233bd33e67b";
+ sha256 = "11j2qm67sszfqq730czsr2zmpgkghsb50556ax1vlpm7rw3gm33c";
+ };
+
+ propagatedBuildInputs = with python27Packages; [
+ pygtk
+ miniupnpc
+ mutagen
+ notify
+ (GeoIP.override { inherit geoip; })
+ ];
+
+ # Insert real docs directory.
+ # os.getcwd() is not needed
+ postPatch = ''
+ substituteInPlace ./pynicotine/gtkgui/frame.py \
+ --replace "paths.append(os.getcwd())" "paths.append('"$out"/doc')"
+ '';
+
+ postFixup = ''
+ mkdir -p $out/doc/
+ mv ./doc/NicotinePlusGuide $out/doc/
+ mv $out/bin/nicotine $out/bin/nicotine-plus
+ '';
+
+ meta = {
+ description = "A graphical client for the SoulSeek peer-to-peer system";
+ homepage = "https://www.nicotine-plus.org";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ klntsky ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/spideroak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/spideroak/default.nix
new file mode 100644
index 000000000000..90d8ea553318
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/spideroak/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, makeWrapper, patchelf
+, fontconfig, freetype, glib, libICE, libSM
+, libX11, libXext, libXrender, zlib
+}:
+
+let
+ sha256 = "6d6ca2b383bcc81af1217c696eb77864a2b6db7428f4b5bde5b5913ce705eec5";
+
+ ldpath = stdenv.lib.makeLibraryPath [
+ fontconfig freetype glib libICE libSM
+ libX11 libXext libXrender zlib
+ ];
+
+ version = "7.5.0";
+
+in stdenv.mkDerivation {
+ pname = "spideroak";
+ inherit version;
+
+ src = fetchurl {
+ name = "SpiderOakONE-${version}-slack_tar_x64.tgz";
+ url = "https://spideroak.com/release/spideroak/slack_tar_x64";
+ inherit sha256;
+ };
+
+ sourceRoot = ".";
+
+ unpackCmd = "tar -xzf $curSrc";
+
+ installPhase = ''
+ mkdir "$out"
+ cp -r "./"* "$out"
+ mkdir "$out/bin"
+ rm "$out/usr/bin/SpiderOakONE"
+ rmdir $out/usr/bin || true
+ mv $out/usr/share $out/
+
+ rm -f $out/opt/SpiderOakONE/lib/libz*
+
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2 \
+ "$out/opt/SpiderOakONE/lib/SpiderOakONE"
+
+ RPATH=$out/opt/SpiderOakONE/lib:${ldpath}
+ makeWrapper $out/opt/SpiderOakONE/lib/SpiderOakONE $out/bin/spideroak --set LD_LIBRARY_PATH $RPATH \
+ --set QT_PLUGIN_PATH $out/opt/SpiderOakONE/lib/plugins/ \
+ --set SpiderOak_EXEC_SCRIPT $out/bin/spideroak
+
+ sed -i 's/^Exec=.*/Exec=spideroak/' $out/share/applications/SpiderOakONE.desktop
+ '';
+
+ nativeBuildInputs = [ patchelf makeWrapper ];
+
+ meta = {
+ homepage = "https://spideroak.com";
+ description = "Secure online backup and sychronization";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ amorsillo ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
new file mode 100644
index 000000000000..7bc5563d4709
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
@@ -0,0 +1,53 @@
+{ appimageTools, symlinkJoin, lib, fetchurl, makeDesktopItem }:
+
+let
+ pname = "ssb-patchwork";
+ version = "3.18.0";
+ name = "Patchwork-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage";
+ sha256 = "1sb9q1qj5mj4cf8d9dsc498mg8a1ri2y0p9qbh44i8ykby8jkgjc";
+ };
+
+ binary = appimageTools.wrapType2 {
+ name = pname;
+ inherit src;
+ };
+ # we only use this to extract the icon
+ appimage-contents = appimageTools.extractType2 {
+ inherit name src;
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "ssb-patchwork";
+ exec = "${binary}/bin/ssb-patchwork";
+ icon = "ssb-patchwork.png";
+ comment = "Client for the decentralized social network Secure Scuttlebutt";
+ desktopName = "Patchwork";
+ genericName = "Patchwork";
+ categories = "Network;";
+ };
+
+in
+ symlinkJoin {
+ inherit name;
+ paths = [ binary ];
+
+ postBuild = ''
+ mkdir -p $out/share/pixmaps/ $out/share/applications
+ cp ${appimage-contents}/ssb-patchwork.png $out/share/pixmaps
+ cp ${desktopItem}/share/applications/* $out/share/applications/
+ '';
+
+ meta = with lib; {
+ description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
+ longDescription = ''
+ sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
+ '';
+ homepage = "https://www.scuttlebutt.nz/";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ asymmetric ninjatrappeur ];
+ platforms = [ "x86_64-linux" ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/station/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/station/default.nix
new file mode 100644
index 000000000000..b0e53a054d28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/station/default.nix
@@ -0,0 +1,42 @@
+{ appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, lib }:
+
+let
+ pname = "station";
+ version = "1.52.2";
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/getstation/desktop-app-releases/releases/download/${version}/Station-${version}-x86_64.AppImage";
+ sha256 = "0lhiwvnf94is9klvzrqv2wri53gj8nms9lg2678bs4y58pvjxwid";
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+in appimageTools.wrapType2 rec {
+ inherit name src;
+
+ profile = ''
+ export LC_ALL=C.UTF-8
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null;
+ extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+ extraInstallCommands = ''
+ mv $out/bin/{${name},${pname}}
+ install -m 444 -D ${appimageContents}/browserx.desktop $out/share/applications/browserx.desktop
+ install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/browserx.png \
+ $out/share/icons/hicolor/512x512/apps/browserx.png
+ substituteInPlace $out/share/applications/browserx.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with lib; {
+ description = "A single place for all of your web applications";
+ homepage = "https://getstation.com";
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ lattfein ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/super-productivity/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/super-productivity/default.nix
new file mode 100644
index 000000000000..3c4c0f0df3c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/super-productivity/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchurl, dpkg, makeWrapper
+, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
+, gnome2, gtk3, gdk-pixbuf, libnotify, libxcb, nspr, nss, pango
+, systemd, xorg, xprintidle-ng }:
+
+let
+
+ version = "1.10.45";
+
+ rpath = stdenv.lib.makeLibraryPath [
+ alsaLib
+ atk
+ cairo
+ cups
+ curl
+ dbus
+ expat
+ fontconfig
+ freetype
+ glib
+ gnome2.GConf
+ gdk-pixbuf
+ gtk3
+ pango
+ libnotify
+ libxcb
+ nspr
+ nss
+ stdenv.cc.cc
+ systemd
+
+ xorg.libxkbfile
+ xorg.libX11
+ xorg.libXcomposite
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXext
+ xorg.libXfixes
+ xorg.libXi
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXtst
+ xorg.libXScrnSaver
+ ] + ":${stdenv.cc.cc.lib}/lib64";
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity_${version}_amd64.deb";
+ sha256 = "0jfi0lfijnhij9jvkhxgyvq8m1jzaym8n1c7707fv3hjh1h0vxn1";
+ }
+ else
+ throw "super-productivity is not supported on ${stdenv.hostPlatform.system}";
+
+in stdenv.mkDerivation {
+ pname = "super-productivity";
+ inherit version;
+
+ inherit src;
+
+ buildInputs = [
+ dpkg
+ gtk3 # needed for GSETTINGS_SCHEMAS_PATH
+ ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ unpackPhase = "dpkg -x $src .";
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out
+
+ cp -R usr/share $out/share
+ cp -R opt $out/libexec
+
+ # Otherwise it looks "suspicious"
+ chmod -R g-w $out
+
+ # set linker and rpath
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/libexec/superProductivity/superproductivity"
+ patchelf --set-rpath ${rpath}:$out/libexec/superProductivity "$out/libexec/superProductivity/superproductivity"
+
+ # wrapper for xdg_data_dirs and xprintidle path
+ makeWrapper $out/libexec/superProductivity/superproductivity $out/bin/superproductivity \
+ --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
+ --prefix PATH : "${xprintidle-ng}/bin"
+
+ # Fix the desktop link
+ substituteInPlace $out/share/applications/superproductivity.desktop \
+ --replace /opt/superProductivity/ $out/bin/
+
+ runHook postInstall
+ '';
+
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ description = "To Do List / Time Tracker with Jira Integration";
+ homepage = "https://super-productivity.com";
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ offline ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix
new file mode 100644
index 000000000000..c95647c78405
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, buildPythonApplication, fuse
+, appdirs, colorama, dateutil, requests, requests_toolbelt
+, fusepy, sqlalchemy }:
+
+buildPythonApplication rec {
+ pname = "acd_cli";
+ version = "0.3.2";
+
+ doCheck = false;
+
+ src = fetchFromGitHub {
+ owner = "yadayada";
+ repo = pname;
+ rev = version;
+ sha256 = "0a0fr632l24a3jmgla3b1vcm50ayfa9hdbp677ch1chwj5dq4zfp";
+ };
+
+ propagatedBuildInputs = [ appdirs colorama dateutil fusepy requests
+ requests_toolbelt sqlalchemy ];
+
+ makeWrapperArgs = [ "--prefix LIBFUSE_PATH : ${fuse}/lib/libfuse.so" ];
+
+ postFixup = ''
+ function lnOverBin() {
+ rm -f $out/bin/{$2,.$2-wrapped}
+ ln -s $out/bin/$1 $out/bin/$2
+ }
+ lnOverBin acd_cli.py acd-cli
+ lnOverBin acd_cli.py acd_cli
+ lnOverBin acd_cli.py acdcli
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A command line interface and FUSE filesystem for Amazon Cloud Drive";
+ homepage = "https://github.com/yadayada/acd_cli";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix
new file mode 100644
index 000000000000..73b40ea111a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix
@@ -0,0 +1,52 @@
+{stdenv, lib, fetchFromGitHub, makeWrapper, gettext,
+python3, rsync, cron, openssh, sshfs-fuse, encfs }:
+
+let
+ python' = python3.withPackages (ps: with ps; [ dbus-python keyring ]);
+
+ apps = lib.makeBinPath [ openssh python' cron rsync sshfs-fuse encfs ];
+in stdenv.mkDerivation rec {
+ pname = "backintime-common";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "bit-team";
+ repo = "backintime";
+ rev = "v${version}";
+ sha256 = "mBjheLY7DHs995heZmxVnDdvABkAROCjRJ4a/uJmJcg=";
+ };
+
+ nativeBuildInputs = [ makeWrapper gettext ];
+ buildInputs = [ python' ];
+
+ installFlags = [ "DEST=$(out)" ];
+
+ preConfigure = ''
+ cd common
+ substituteInPlace configure \
+ --replace "/.." "" \
+ --replace "share/backintime" "${python'.sitePackages}/backintime"
+ substituteInPlace "backintime" \
+ --replace "share" "${python'.sitePackages}"
+ '';
+
+ dontAddPrefix = true;
+
+ preFixup = ''
+ wrapProgram "$out/bin/backintime" \
+ --prefix PATH : ${apps}
+ '';
+
+ meta = {
+ homepage = "https://github.com/bit-team/backintime";
+ description = "Simple backup tool for Linux";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.all;
+ longDescription = ''
+ Back In Time is a simple backup tool (on top of rsync) for Linux
+ inspired from “flyback project” and “TimeVault”. The backup is
+ done by taking snapshots of a specified set of directories.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/backintime/qt.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/backintime/qt.nix
new file mode 100644
index 000000000000..a48d6d8804fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/backintime/qt.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, backintime-common, python3 }:
+
+let
+ python' = python3.withPackages (ps: with ps; [ pyqt5 backintime-common ]);
+in
+mkDerivation {
+ inherit (backintime-common)
+ version src installFlags meta dontAddPrefix nativeBuildInputs;
+
+ pname = "backintime-qt";
+
+ buildInputs = [ python' backintime-common ];
+
+ preConfigure = ''
+ cd qt
+ substituteInPlace configure \
+ --replace '"/../etc' '"/etc'
+ substituteInPlace qttools.py \
+ --replace "__file__, os.pardir, os.pardir" '"${backintime-common}/${python'.sitePackages}/backintime"'
+ '';
+
+ preFixup = ''
+ wrapQtApp "$out/bin/backintime-qt" \
+ --prefix PATH : "${backintime-common}/bin:$PATH"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/casync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/casync/default.nix
new file mode 100644
index 000000000000..461de492ae2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/casync/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkgconfig, python3, sphinx
+, acl, curl, fuse, libselinux, udev, xz, zstd
+, fuseSupport ? true
+, selinuxSupport ? true
+, udevSupport ? true
+, glibcLocales, rsync
+}:
+
+stdenv.mkDerivation {
+ pname = "casync";
+ version = "2-219-ga8f6c84";
+
+ src = fetchFromGitHub {
+ owner = "systemd";
+ repo = "casync";
+ rev = "a8f6c841ccfe59ca8c68aad64df170b64042dce8";
+ sha256 = "1i3c9wmpabpmx2wfbcyabmwfa66vz92iq5dlbm89v5mvgavz7bws";
+ };
+
+ buildInputs = [ acl curl xz zstd ]
+ ++ stdenv.lib.optionals (fuseSupport) [ fuse ]
+ ++ stdenv.lib.optionals (selinuxSupport) [ libselinux ]
+ ++ stdenv.lib.optionals (udevSupport) [ udev ];
+ nativeBuildInputs = [ meson ninja pkgconfig python3 sphinx ];
+ checkInputs = [ glibcLocales rsync ];
+
+ postPatch = ''
+ for f in test/test-*.sh.in; do
+ patchShebangs $f
+ done
+ patchShebangs test/http-server.py
+ '';
+
+ PKG_CONFIG_UDEV_UDEVDIR = "lib/udev";
+ mesonFlags = stdenv.lib.optionals (!fuseSupport) [ "-Dfuse=false" ]
+ ++ stdenv.lib.optionals (!udevSupport) [ "-Dudev=false" ]
+ ++ stdenv.lib.optionals (!selinuxSupport) [ "-Dselinux=false" ];
+
+ doCheck = true;
+ preCheck = ''
+ export LC_ALL="en_US.utf-8"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Content-Addressable Data Synchronizer";
+ homepage = "https://github.com/systemd/casync";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ flokli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/desync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/desync/default.nix
new file mode 100644
index 000000000000..9831ab34b2eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/desync/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "desync";
+ version = "0.4.0";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/folbricht/desync";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "folbricht";
+ repo = "desync";
+ sha256 = "17qh0g1paa7212j761q9z246k10a3xrwd8fgiizw3lr9adn50kdk";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "Content-addressed binary distribution system";
+ longDescription = "An alternate implementation of the casync protocol and storage mechanism with a focus on production-readiness";
+ homepage = "https://github.com/folbricht/desync";
+ license = licenses.bsd3;
+ platforms = platforms.unix; # *may* work on Windows, but varies between releases.
+ maintainers = [ maintainers.chaduffy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix
new file mode 100644
index 000000000000..7f5f3251d162
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix
@@ -0,0 +1,312 @@
+[
+
+ {
+ goPackagePath = "github.com/datadog/zstd";
+ fetch = {
+ type = "git";
+ url = "https://github.com/datadog/zstd";
+ rev = "v1.3.4";
+ sha256 = "06wphl43ji23c0cmmm6fd3wszbwq36mdp1jarak2a6hmxl6yf0b8";
+ };
+ }
+
+ {
+ 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/dchest/siphash";
+ fetch = {
+ type = "git";
+ url = "https://github.com/dchest/siphash";
+ rev = "v1.2.0";
+ sha256 = "01qhv9zd9l6p7pwf1fj022mp9s5496rk4lnm3yvpjsiwp6k4af8c";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/fatih/color";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fatih/color";
+ rev = "v1.7.0";
+ sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/folbricht/tempfile";
+ fetch = {
+ type = "git";
+ url = "https://github.com/folbricht/tempfile";
+ rev = "v0.0.1";
+ sha256 = "0vz08qvbniqxc24vhmcbq5ncnz97ncp4jbxgcf0hziazxfp114z3";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/go-ini/ini";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-ini/ini";
+ rev = "v1.38.2";
+ sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/gopherjs/gopherjs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gopherjs/gopherjs";
+ rev = "0210a2f0f73c";
+ sha256 = "1n80xjfc1dkxs8h8mkpw83n89wi5n7hzc3rxhwjs76rkxpq3rc9j";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/hanwen/go-fuse";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hanwen/go-fuse";
+ rev = "1d35017e9701";
+ sha256 = "11rggvkd6lc5lcpsfvc9iip4z9cingzpkpshaskv2cirbxdynyi8";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/inconshreveable/mousetrap";
+ fetch = {
+ type = "git";
+ url = "https://github.com/inconshreveable/mousetrap";
+ rev = "v1.0.0";
+ sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/jtolds/gls";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jtolds/gls";
+ rev = "v4.2.1";
+ sha256 = "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/kr/fs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/fs";
+ rev = "v0.1.0";
+ sha256 = "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q";
+ };
+ }
+
+ {
+ 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.3";
+ sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/minio/minio-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/minio/minio-go";
+ rev = "v6.0.6";
+ sha256 = "0bgivqw1n1189lksp85djw1rqcan2axyh4jv9q54iclrjkpbab37";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/mitchellh/go-homedir";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/go-homedir";
+ rev = "v1.0.0";
+ sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "v0.8.0";
+ sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/pkg/sftp";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/sftp";
+ rev = "v1.8.2";
+ sha256 = "040flbir6sv213xzs75vkd5fd7bmm3fqxfcnsx8fr77zkn52hm4m";
+ };
+ }
+
+ {
+ 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/smartystreets/assertions";
+ fetch = {
+ type = "git";
+ url = "https://github.com/smartystreets/assertions";
+ rev = "7c9eb446e3cf";
+ sha256 = "1dix6qgaj6kw38hicy3zs3lvacl1kn0n267b3xw0vvdkqf1v0395";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/smartystreets/goconvey";
+ fetch = {
+ type = "git";
+ url = "https://github.com/smartystreets/goconvey";
+ rev = "ef6db91d284a";
+ sha256 = "16znlpsms8z2qc3airawyhzvrzcp70p9bx375i19bg489hgchxb7";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/spf13/cobra";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cobra";
+ rev = "v0.0.3";
+ sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "v1.0.2";
+ sha256 = "005598piihl3l83a71ahj10cpq9pbhjck4xishx1b4dzc02r9xr2";
+ };
+ }
+
+ {
+ goPackagePath = "github.com/stretchr/testify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/testify";
+ rev = "v1.2.2";
+ sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+ };
+ }
+
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "0709b304e793";
+ sha256 = "0i05s09y5pavmfh71fgih7syxg58x7a4krgd8am6d3mnahnmab5c";
+ };
+ }
+
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "161cd47e91fd";
+ sha256 = "0254ld010iijygbzykib2vags1dc0wlmcmhgh4jl8iny159lhbcv";
+ };
+ }
+
+ {
+ goPackagePath = "golang.org/x/sync";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sync";
+ rev = "1d60e4601c6f";
+ sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
+ };
+ }
+
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "49385e6e1522";
+ sha256 = "0spbldahns09fdxkxflb1x24f8k2awdlnr6k5i7ci4fqd19r1dv4";
+ };
+ }
+
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "v0.3.0";
+ sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+ };
+ }
+
+ {
+ goPackagePath = "gopkg.in/cheggaaa/pb.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/cheggaaa/pb.v1";
+ rev = "v1.0.25";
+ sha256 = "0vxqiw6f3xyv0zy3g4lksf8za0z8i0hvfpw92hqimsy84f79j3dp";
+ };
+ }
+
+ {
+ goPackagePath = "gopkg.in/ini.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/ini.v1";
+ rev = "v1.38.2";
+ sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix
new file mode 100644
index 000000000000..9573e1717de9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, lua, pkgconfig, rsync,
+ asciidoc, libxml2, docbook_xml_dtd_45, docbook_xsl, libxslt }:
+
+stdenv.mkDerivation rec {
+ pname = "lsyncd";
+ version = "2.2.3";
+
+ src = fetchFromGitHub {
+ owner = "axkibe";
+ repo = "lsyncd";
+ rev = "release-${version}";
+ sha256 = "1hbsih5hfq9lhgnxm0wb5mrj6xmlk2l0i9a79wzd5f6cnjil9l3x";
+ };
+
+ patches = [
+ (fetchpatch {
+ sha256 = "0b0h2qxh73l502p7phf6qgl8576nf6fvqqp2x5wy3nz7sc9qb1z8";
+ name = "fix-non-versioned-lua-not-search-in-cmake.patch";
+ url = "https://github.com/axkibe/lsyncd/pull/500/commits/0af99d8d5ba35118e8799684a2d4a8ea4b0c6957.patch";
+ })
+ ];
+
+ postPatch = ''
+ substituteInPlace default-rsync.lua \
+ --replace "/usr/bin/rsync" "${rsync}/bin/rsync"
+ '';
+
+ dontUseCmakeBuildDir = true;
+
+ buildInputs = [
+ rsync
+ cmake lua pkgconfig
+ asciidoc libxml2 docbook_xml_dtd_45 docbook_xsl libxslt
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/axkibe/lsyncd";
+ description = "A utility that synchronizes local directories with remote targets";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ bobvanderlinden ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
new file mode 100644
index 000000000000..be255a6c1465
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, ldc, installShellFiles, pkgconfig
+, curl, sqlite, libnotify
+, withSystemd ? stdenv.isLinux, systemd ? null }:
+
+stdenv.mkDerivation rec {
+ pname = "onedrive";
+ version = "2.4.2";
+
+ src = fetchFromGitHub {
+ owner = "abraunegg";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "10s33p1xzq9c5n1bxv9n7n31afxgx9i6c17w0xgxdrma75micm3a";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkgconfig ];
+
+ buildInputs = [
+ curl sqlite libnotify
+ ] ++ lib.optional withSystemd systemd;
+
+ configureFlags = [
+ "--enable-notifications"
+ ] ++ lib.optionals withSystemd [
+ "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+ "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
+ ];
+
+ # we could also pass --enable-completions to configure but we would then have to
+ # figure out the paths manually and pass those along.
+ postInstall = ''
+ installShellCompletion --bash --name ${pname} contrib/completions/complete.bash
+ installShellCompletion --zsh --name _${pname} contrib/completions/complete.zsh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A complete tool to interact with OneDrive on Linux";
+ homepage = "https://github.com/abraunegg/onedrive";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ srgom ianmjones ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix
new file mode 100644
index 000000000000..fb2020f0d3a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cmake, wrapQtAppsHook, qtbase }:
+
+stdenv.mkDerivation rec {
+ pname = "rclone-browser";
+ version = "1.8.0";
+
+ src = fetchFromGitHub {
+ owner = "kapitainsky";
+ repo = "RcloneBrowser";
+ rev = version;
+ sha256 = "14ckkdypkfyiqpnz0y2b73wh1py554iyc3gnymj4smy0kg70ai33";
+ };
+
+ nativeBuildInputs = [ cmake wrapQtAppsHook ];
+
+ buildInputs = [ qtbase ];
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Graphical Frontend to Rclone written in Qt";
+ license = licenses.unlicense;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ dotlambda ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
new file mode 100644
index 000000000000..2f0a9a044f24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles }:
+
+buildGoModule rec {
+ pname = "rclone";
+ version = "1.53.3";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "10nimrq8nmpmfk2d4fx0yp916wk5q027m283izpshrbwvx7l6xx0";
+ };
+
+ vendorSha256 = "1l4iz31k1pylvf0zrp4nhxna70s1ma4981x6q1s3dhszjxil5c88";
+
+ subPackages = [ "." ];
+
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/rclone/rclone/fs.Version=${version}" ];
+
+ postInstall =
+ let
+ rcloneBin =
+ if stdenv.buildPlatform == stdenv.hostPlatform
+ then "$out"
+ else stdenv.lib.getBin buildPackages.rclone;
+ in
+ ''
+ installManPage rclone.1
+ for shell in bash zsh fish; do
+ ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
+ installShellCompletion rclone.$shell
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command line program to sync files and directories to and from major cloud storage";
+ homepage = "https://rclone.org";
+ license = licenses.mit;
+ maintainers = with maintainers; [ danielfullmer marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix
new file mode 100644
index 000000000000..da00b4cbc2ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+rec {
+ version = "3.2.3";
+ src = fetchurl {
+ # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
+ url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
+ sha256 = "03p5dha9g9krq61mdbcrjkpz5nglri0009ks2vs9k97f9i83rk5y";
+ };
+ upstreamPatchTarball = fetchurl {
+ # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
+ url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
+ sha256 = "1wj21v57v135n6fnmlm2dxmb9lhrrg62jgkggldp1gb7d6s4arny";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Fast incremental file transfer utility";
+ homepage = "https://rsync.samba.org/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
new file mode 100644
index 000000000000..e07fecbf8936
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, perl, libiconv, zlib, popt
+, enableACLs ? !(stdenv.isDarwin || stdenv.isSunOS || stdenv.isFreeBSD), acl ? null
+, enableLZ4 ? true, lz4 ? null
+, enableOpenSSL ? true, openssl ? null
+, enableXXHash ? true, xxHash ? null
+, enableZstd ? true, zstd ? null
+, enableCopyDevicesPatch ? false
+, nixosTests
+}:
+
+assert enableACLs -> acl != null;
+assert enableLZ4 -> lz4 != null;
+assert enableOpenSSL -> openssl != null;
+assert enableXXHash -> xxHash != null;
+assert enableZstd -> zstd != null;
+
+let
+ base = import ./base.nix { inherit stdenv fetchurl; };
+in
+stdenv.mkDerivation rec {
+ name = "rsync-${base.version}";
+
+ mainSrc = base.src;
+
+ patchesSrc = base.upstreamPatchTarball;
+
+ srcs = [mainSrc] ++ stdenv.lib.optional enableCopyDevicesPatch patchesSrc;
+ patches = stdenv.lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff";
+
+ buildInputs = [libiconv zlib popt]
+ ++ stdenv.lib.optional enableACLs acl
+ ++ stdenv.lib.optional enableZstd zstd
+ ++ stdenv.lib.optional enableLZ4 lz4
+ ++ stdenv.lib.optional enableOpenSSL openssl
+ ++ stdenv.lib.optional enableXXHash xxHash;
+ nativeBuildInputs = [perl];
+
+ configureFlags = [
+ "--with-nobody-group=nogroup"
+
+ # disable the included zlib explicitly as it otherwise still compiles and
+ # links them even.
+ "--with-included-zlib=no"
+ ]
+ # Work around issue with cross-compilation:
+ # configure.sh: error: cannot run test program while cross compiling
+ # Remove once 3.2.4 or more recent is released.
+ # The following PR should fix the cross-compilation issue.
+ # Test using `nix-build -A pkgsCross.aarch64-multiplatform.rsync`.
+ # https://github.com/WayneD/rsync/commit/b7fab6f285ff0ff3816b109a8c3131b6ded0b484
+ ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--enable-simd=no"
+ ;
+
+ passthru.tests = { inherit (nixosTests) rsyncd; };
+
+ meta = base.meta // {
+ description = "A fast incremental file transfer utility";
+ maintainers = with stdenv.lib.maintainers; [ peti ehmry kampfschlaefer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
new file mode 100644
index 000000000000..19be478b0f1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, perl, rsync }:
+
+let
+ base = import ./base.nix { inherit stdenv fetchurl; };
+in
+stdenv.mkDerivation {
+ name = "rrsync-${base.version}";
+
+ src = base.src;
+
+ buildInputs = [ rsync perl ];
+
+ # Skip configure and build phases.
+ # We just want something from the support directory
+ dontConfigure = true;
+ dontBuild = true;
+
+ postPatch = ''
+ substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp support/rrsync $out/bin
+ chmod a+x $out/bin/rrsync
+ '';
+
+ meta = base.meta // {
+ description = "A helper to run rsync-only environments from ssh-logins";
+ maintainers = [ stdenv.lib.maintainers.kampfschlaefer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/unison/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
new file mode 100644
index 000000000000..36e803509262
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
@@ -0,0 +1,49 @@
+{stdenv, fetchFromGitHub, ocamlPackages, fontschumachermisc, xset, makeWrapper, ncurses, gnugrep
+, enableX11 ? true}:
+
+let inherit (ocamlPackages) ocaml lablgtk; in
+
+stdenv.mkDerivation (rec {
+
+ pname = "unison";
+ version = "2.51.3";
+ src = fetchFromGitHub {
+ owner = "bcpierce00";
+ repo = "unison";
+ rev = "v${version}";
+ sha256 = "sha256-42hmdMwOYSWGiDCmhuqtpCWtvtyD2l+kA/bhHD/Qh5Y=";
+ };
+
+ buildInputs = [ ocaml makeWrapper ncurses ];
+
+ preBuild = (if enableX11 then ''
+ sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml
+ '' else "") + ''
+ echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> src/fsmonitor/linux/Makefile
+ '';
+
+ makeFlags = [
+ "INSTALLDIR=$(out)/bin/"
+ "UISTYLE=${if enableX11 then "gtk2" else "text"}"
+ ] ++ stdenv.lib.optional (!ocaml.nativeCompilers) "NATIVE=false";
+
+ preInstall = "mkdir -p $out/bin";
+
+ postInstall = if enableX11 then ''
+ for i in $(cd $out/bin && ls); do
+ wrapProgram $out/bin/$i \
+ --run "[ -n \"\$DISPLAY\" ] && (${xset}/bin/xset q | ${gnugrep}/bin/grep -q \"${fontschumachermisc}\" || ${xset}/bin/xset +fp \"${fontschumachermisc}/lib/X11/fonts/misc\")"
+ done
+ '' else "";
+
+ dontStrip = !ocaml.nativeCompilers;
+
+ meta = {
+ homepage = "https://www.cis.upenn.edu/~bcpierce/unison/";
+ description = "Bidirectional file synchronizer";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; unix;
+ };
+
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/syncplay/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncplay/default.nix
new file mode 100644
index 000000000000..da4551d7f555
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncplay/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, buildPythonApplication, pyside2, shiboken2, twisted, certifi, qt5 }:
+
+buildPythonApplication rec {
+ pname = "syncplay";
+ version = "1.6.6";
+
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "Syncplay";
+ repo = "syncplay";
+ rev = "v${version}";
+ sha256 = "1wkxdp7dv5y1100awy949higvs5035ylfyl83qrp4lnimy3imw09";
+ };
+
+ propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls;
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+
+ makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ];
+
+ postFixup = ''
+ wrapQtApp $out/bin/syncplay
+ '';
+
+ meta = with lib; {
+ homepage = "https://syncplay.pl/";
+ description = "Free software that synchronises media players";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ enzime ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix
new file mode 100644
index 000000000000..e432b3795172
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall
+, gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook
+, gnome3, buildPythonApplication, dateutil, pyinotify, pygobject3
+, bcrypt, gobject-introspection, gsettings-desktop-schemas
+, pango, gdk-pixbuf, atk }:
+
+buildPythonApplication rec {
+ version = "0.9.4.4";
+ pname = "syncthing-gtk";
+
+ src = fetchFromGitHub {
+ owner = "syncthing";
+ repo = "syncthing-gtk";
+ rev = "v${version}";
+ sha256 = "0nc0wd7qvyri7841c3dd9in5d7367hys0isyw8znv5fj4c0a6v1f";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ # For setup hook populating GI_TYPELIB_PATH
+ gobject-introspection
+ pango gdk-pixbuf atk libnotify
+ ];
+
+ buildInputs = [
+ gtk3 librsvg libappindicator-gtk3
+ libnotify gnome3.adwaita-icon-theme
+ # Schemas with proxy configuration
+ gsettings-desktop-schemas
+ ];
+
+ propagatedBuildInputs = [
+ dateutil pyinotify pygobject3 bcrypt
+ ];
+
+ patches = [
+ (substituteAll {
+ src = ./paths.patch;
+ killall = "${killall}/bin/killall";
+ syncthing = "${syncthing}/bin/syncthing";
+ })
+ ];
+
+ # repo doesn't have any tests
+ doCheck = false;
+
+ setupPyBuildFlags = [ "build_py" "--nofinddaemon" "--nostdownloader" ];
+
+ postPatch = ''
+ substituteInPlace setup.py --replace "version = get_version()" "version = '${version}'"
+ substituteInPlace scripts/syncthing-gtk --replace "/usr/share" "$out/share"
+ substituteInPlace syncthing_gtk/app.py --replace "/usr/share" "$out/share"
+ substituteInPlace syncthing_gtk/uisettingsdialog.py --replace "/usr/share" "$out/share"
+ substituteInPlace syncthing_gtk/wizard.py --replace "/usr/share" "$out/share"
+ substituteInPlace syncthing-gtk.desktop --replace "/usr/bin/syncthing-gtk" "$out/bin/syncthing-gtk"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GTK3 & python based GUI for Syncthing";
+ homepage = "https://github.com/syncthing/syncthing-gtk";
+ license = licenses.gpl2;
+ broken = true;
+ maintainers = with maintainers; [ ];
+ platforms = syncthing.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch
new file mode 100644
index 000000000000..0ba5a4f2db84
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch
@@ -0,0 +1,22 @@
+--- a/syncthing_gtk/configuration.py
++++ b/syncthing_gtk/configuration.py
+@@ -30,7 +30,7 @@
+ "autokill_daemon" : (int, 2), # 0 - never kill, 1 - always kill, 2 - ask
+ "daemon_priority" : (int, 0), # uses nice values
+ "max_cpus" : (int, 0), # 0 for all cpus
+- "syncthing_binary" : (str, "/usr/bin/syncthing"),
++ "syncthing_binary" : (str, "@syncthing@"),
+ "syncthing_arguments" : (str, ""),
+ "minimize_on_start" : (bool, False),
+ "folder_as_path" : (bool, True),
+--- a/syncthing_gtk/tools.py
++++ b/syncthing_gtk/tools.py
+@@ -303,7 +303,7 @@
+ return False
+ # signal 0 doesn't kill anything, but killall exits with 1 if
+ # named process is not found
+- p = Popen(["killall", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"])
++ p = Popen(["@killall@", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"])
+ p.communicate()
+ return p.returncode == 0
+ else:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch
new file mode 100644
index 000000000000..07b5e334b2c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch
@@ -0,0 +1,17 @@
+diff --git a/build.go b/build.go
+index c8a5c1cf..d75a8491 100644
+--- a/build.go
++++ b/build.go
+@@ -202,6 +202,12 @@ var targets = map[string]target{
+ {src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-relaypoolsrv/AUTHORS.txt", perm: 0644},
+ },
+ },
++ "stcli": {
++ name: "stcli",
++ description: "Syncthing CLI",
++ buildPkgs: []string{"github.com/syncthing/syncthing/cmd/stcli"},
++ binaryName: "stcli",
++ },
+ }
+
+ // These are repos we need to clone to run "go generate"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing/default.nix
new file mode 100644
index 000000000000..84b571a20f0c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/syncthing/default.nix
@@ -0,0 +1,109 @@
+{ buildGoModule, stdenv, lib, procps, fetchFromGitHub, nixosTests }:
+
+let
+ common = { stname, target, postInstall ? "" }:
+ buildGoModule rec {
+ version = "1.12.0";
+ name = "${stname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "syncthing";
+ repo = "syncthing";
+ rev = "v${version}";
+ sha256 = "09kqc66pnklhmlcn66c5zydnvy2mfs2hqzd1465ydww8bbgcncss";
+ };
+
+ vendorSha256 = "1jw0k1wm9mfsa2yr2fi2j8mrlykrlcwfnii07rafv9dnnwabs022";
+
+ doCheck = false;
+
+ patches = [
+ ./add-stcli-target.patch
+ ];
+ BUILD_USER="nix";
+ BUILD_HOST="nix";
+
+ buildPhase = ''
+ runHook preBuild
+ go run build.go -no-upgrade -version v${version} build ${target}
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm755 ${target} $out/bin/${target}
+ runHook postInstall
+ '';
+
+ inherit postInstall;
+
+ passthru.tests = with nixosTests; {
+ init = syncthing-init;
+ relay = syncthing-relay;
+ };
+
+ meta = with lib; {
+ homepage = "https://syncthing.net/";
+ description = "Open Source Continuous File Synchronization";
+ changelog = "https://github.com/syncthing/syncthing/releases/tag/v${version}";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ pshendry joko peterhoeg andrew-d ];
+ platforms = platforms.unix;
+ };
+ };
+
+in {
+ syncthing = common {
+ stname = "syncthing";
+ target = "syncthing";
+
+ postInstall = ''
+ # This installs man pages in the correct directory according to the suffix
+ # on the filename
+ for mf in man/*.[1-9]; do
+ mantype="$(echo "$mf" | awk -F"." '{print $NF}')"
+ mandir="$out/share/man/man$mantype"
+ install -Dm644 "$mf" "$mandir/$(basename "$mf")"
+ done
+
+ '' + lib.optionalString (stdenv.isLinux) ''
+ mkdir -p $out/lib/systemd/{system,user}
+
+ substitute etc/linux-systemd/system/syncthing-resume.service \
+ $out/lib/systemd/system/syncthing-resume.service \
+ --replace /usr/bin/pkill ${procps}/bin/pkill
+
+ substitute etc/linux-systemd/system/syncthing@.service \
+ $out/lib/systemd/system/syncthing@.service \
+ --replace /usr/bin/syncthing $out/bin/syncthing
+
+ substitute etc/linux-systemd/user/syncthing.service \
+ $out/lib/systemd/user/syncthing.service \
+ --replace /usr/bin/syncthing $out/bin/syncthing
+ '';
+ };
+
+ syncthing-cli = common {
+ stname = "syncthing-cli";
+
+ target = "stcli";
+ };
+
+ syncthing-discovery = common {
+ stname = "syncthing-discovery";
+ target = "stdiscosrv";
+ };
+
+ syncthing-relay = common {
+ stname = "syncthing-relay";
+ target = "strelaysrv";
+
+ postInstall = lib.optionalString (stdenv.isLinux) ''
+ mkdir -p $out/lib/systemd/system
+
+ substitute cmd/strelaysrv/etc/linux-systemd/strelaysrv.service \
+ $out/lib/systemd/system/strelaysrv.service \
+ --replace /usr/bin/strelaysrv $out/bin/strelaysrv
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/tcpkali/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/tcpkali/default.nix
new file mode 100644
index 000000000000..fae3bde72f02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/tcpkali/default.nix
@@ -0,0 +1,26 @@
+{stdenv, autoreconfHook, fetchFromGitHub, bison}:
+
+let version = "1.1.1"; in
+
+stdenv.mkDerivation rec {
+ pname = "tcpkali";
+ inherit version;
+ src = fetchFromGitHub {
+ owner = "machinezone";
+ repo = "tcpkali";
+ rev = "v${version}";
+ sha256 = "09ky3cccaphcqc6nhfs00pps99lasmzc2pf5vk0gi8hlqbbhilxf";
+ };
+ postPatch = ''
+ sed -ie '/sys\/sysctl\.h/d' src/tcpkali_syslimits.c
+ '';
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ bison];
+ meta = {
+ description = "High performance TCP and WebSocket load generator and sink";
+ license = stdenv.lib.licenses.bsd2;
+ inherit (src.meta) homepage;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ ethercrow ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/termius/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/termius/default.nix
new file mode 100644
index 000000000000..b4907cc8bdae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/termius/default.nix
@@ -0,0 +1,69 @@
+{ atomEnv
+, autoPatchelfHook
+, dpkg
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, stdenv
+, lib
+, udev
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "termius";
+ version = "7.1.0";
+
+ src = fetchurl {
+ url = "https://deb.termius.com/pool/main/t/termius-app/termius-app_${version}_amd64.deb";
+ sha256 = "801579b931ca0ad5340085df8863042336e2b609dd1cd6771260c873f3d2bb73";
+ };
+
+ desktopItem = makeDesktopItem {
+ categories = "Network;";
+ comment = "The SSH client that works on Desktop and Mobile";
+ desktopName = "Termius";
+ exec = "termius-app";
+ genericName = "Cross-platform SSH client";
+ icon = "termius-app";
+ name = "termius-app";
+ };
+
+ dontBuild = true;
+ dontConfigure = true;
+ dontPatchELF = true;
+ dontWrapGApps = true;
+
+ nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper wrapGAppsHook ];
+
+ buildInputs = atomEnv.packages;
+
+ unpackPhase = "dpkg-deb -x $src .";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp -R "opt" "$out"
+ cp -R "usr/share" "$out/share"
+ chmod -R g-w "$out"
+ # Desktop file
+ mkdir -p "$out/share/applications"
+ cp "${desktopItem}/share/applications/"* "$out/share/applications"
+ '';
+
+ runtimeDependencies = [ (lib.getLib udev) ];
+
+ postFixup = ''
+ makeWrapper $out/opt/Termius/termius-app $out/bin/termius-app \
+ "''${gappsWrapperArgs[@]}"
+ '';
+
+ meta = with stdenv.lib; {
+ broken = true;
+ description = "A cross-platform SSH client with cloud data sync and more";
+ homepage = "https://termius.com/";
+ downloadPage = "https://termius.com/linux/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ Br1ght0ne th0rgal ];
+ platforms = [ "x86_64-linux" ];
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/testssl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/testssl/default.nix
new file mode 100644
index 000000000000..0e0727d464f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/testssl/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, makeWrapper, lib
+, dnsutils, coreutils, openssl, nettools, util-linux, procps }:
+
+stdenv.mkDerivation rec {
+ pname = "testssl.sh";
+ version = "3.0.2";
+
+ src = fetchFromGitHub {
+ owner = "drwetter";
+ repo = pname;
+ rev = version;
+ sha256 = "0vfpj3g3il3imbydx3j8gx1pgzrxi0czcl9jmi749vnkf5mkmh8w";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [
+ coreutils # for pwd and printf
+ dnsutils # for dig
+ nettools # for hostname
+ openssl # for openssl
+ procps # for ps
+ util-linux # for hexdump
+ ];
+
+ postPatch = ''
+ substituteInPlace testssl.sh \
+ --replace /bin/pwd pwd \
+ --replace TESTSSL_INSTALL_DIR:-\"\" TESTSSL_INSTALL_DIR:-\"$out\" \
+ --replace PROG_NAME=\"\$\(basename\ \"\$0\"\)\" PROG_NAME=\"testssl.sh\"
+ '';
+
+ installPhase = ''
+ install -D testssl.sh $out/bin/testssl.sh
+ cp -r etc $out
+
+ wrapProgram $out/bin/testssl.sh --prefix PATH ':' ${lib.makeBinPath buildInputs}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "CLI tool to check a server's TLS/SSL capabilities";
+ longDescription = ''
+ CLI tool which checks a server's service on any port for the support of
+ TLS/SSL ciphers, protocols as well as recent cryptographic flaws and more.
+ '';
+ homepage = "https://testssl.sh/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ etu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/trebleshot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/trebleshot/default.nix
new file mode 100644
index 000000000000..82f91ddef8b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/trebleshot/default.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, lib, fetchFromGitHub
+, cmake, qtbase, kdnssd
+}:
+
+mkDerivation rec {
+ pname = "trebleshot";
+ version = "0.1.0-alpha2-15-ga7ac23c";
+ # name="${pname}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "genonbeta";
+ repo = "TrebleShot-Desktop";
+ rev = version;
+ sha256 = "1k8wagw6arsi1lqkhn1nl6j11mb122vi1qs0q2np6nznwfy7pn1k";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ qtbase kdnssd ];
+
+ meta = with lib; {
+ description = "Android file transferring tool for desktop";
+ homepage = "https://github.com/genonbeta/TrebleShot-Desktop";
+ license = licenses.gpl2;
+
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ woffs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/tsung/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/tsung/default.nix
new file mode 100644
index 000000000000..7b142249687d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/tsung/default.nix
@@ -0,0 +1,50 @@
+{ fetchurl, stdenv, lib, makeWrapper,
+ erlang,
+ python2, python2Packages,
+ perlPackages,
+ gnuplot }:
+
+stdenv.mkDerivation rec {
+ pname = "tsung";
+ version = "1.7.0";
+ src = fetchurl {
+ url = "http://tsung.erlang-projects.org/dist/tsung-${version}.tar.gz";
+ sha256 = "6394445860ef34faedf8c46da95a3cb206bc17301145bc920151107ffa2ce52a";
+ };
+
+ buildInputs = [ makeWrapper ];
+ propagatedBuildInputs = [
+ erlang
+ gnuplot
+ perlPackages.perl
+ perlPackages.TemplateToolkit
+ python2
+ python2Packages.matplotlib
+ ];
+
+
+ postFixup = ''
+ # Make tsung_stats.pl accessible
+ # Leaving .pl at the end since all of tsung documentation is refering to it
+ # as tsung_stats.pl
+ ln -s $out/lib/tsung/bin/tsung_stats.pl $out/bin/tsung_stats.pl
+
+ # Add Template Toolkit and gnuplot to tsung_stats.pl
+ wrapProgram $out/bin/tsung_stats.pl \
+ --prefix PATH : ${lib.makeBinPath [ gnuplot ]} \
+ --set PERL5LIB "${perlPackages.makePerlPath [ perlPackages.TemplateToolkit ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://tsung.erlang-projects.org/";
+ description = "A high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc";
+ longDescription = ''
+ Tsung is a distributed load testing tool. It is protocol-independent and
+ can currently be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL,
+ AMQP, MQTT, LDAP and Jabber/XMPP servers.
+ '';
+ license = licenses.gpl2;
+ maintainers = [ maintainers.uskudnik ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/twtxt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/twtxt/default.nix
new file mode 100644
index 000000000000..98877880255a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/twtxt/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "twtxt";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "jointwt";
+ repo = pname;
+ rev = version;
+ sha256 = "15jhfnhpk34nmad04f7xz1w041dba8cn17hq46p9n5sarjgkjiiw";
+ };
+
+ vendorSha256 = "1lnf8wd2rv9d292rp8jndfdg0rjs6gfw0yg49l9spw4yzifnd7f7";
+
+ subPackages = [ "cmd/twt" "cmd/twtd" ];
+
+ meta = with lib; {
+ description = "Self-hosted, Twitter-like decentralised microblogging platform";
+ homepage = "https://github.com/jointwt/twtxt";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/umurmur/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/umurmur/default.nix
new file mode 100644
index 000000000000..d16c1bb944a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/umurmur/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, openssl, protobufc, libconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "umurmur";
+ version = "0.2.17";
+
+ src = fetchFromGitHub {
+ owner = "umurmur";
+ repo = "umurmur";
+ rev = version;
+ sha256 = "074px4ygmv4ydy2pqwxwnz17f0hfswqkz5kc9qfz0iby3h5i3fyl";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ openssl protobufc libconfig ];
+
+ configureFlags = [
+ "--with-ssl=openssl"
+ "--enable-shmapi"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Minimalistic Murmur (Mumble server)";
+ license = licenses.bsd3;
+ homepage = "https://github.com/umurmur/umurmur";
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/utahfs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/utahfs/default.nix
new file mode 100644
index 000000000000..b6bae284dcd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/utahfs/default.nix
@@ -0,0 +1,23 @@
+{ buildGoPackage, lib, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "utahfs";
+ version = "1.0";
+ src = fetchFromGitHub {
+ owner = "cloudflare";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1hpwch5fsqlxwpk5afawa1k5s0bx5c1cw0hvdllp7257lgly19fb";
+ };
+
+ goPackagePath = "github.com/cloudflare/utahfs";
+
+ meta = with lib; {
+ homepage = "https://github.com/cloudflare/utahfs";
+ description =
+ "Encrypted storage system that provides a user-friendly FUSE drive backed by cloud storage";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.snglth ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/versus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/versus/default.nix
new file mode 100644
index 000000000000..1d2875e44e64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/versus/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "versus";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "INFURA";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0j5mj9gwwvgx7r1svlg14dpcqlj8mhwlf7sampkkih6bv92qfzcd";
+ };
+
+ vendorSha256 = "1d12jcd8crxcgp5m8ga691wivim4cg8cbz4pzgxp0jhzg9jplpbv";
+
+ meta = with stdenv.lib; {
+ description = "Benchmark multiple API endpoints against each other";
+ homepage = "https://github.com/INFURA/versus";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mmahut ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/vnstat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/vnstat/default.nix
new file mode 100644
index 000000000000..cd0f65d4d454
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/vnstat/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pkgconfig, gd, ncurses, sqlite, check }:
+
+stdenv.mkDerivation rec {
+ pname = "vnstat";
+ version = "2.6";
+
+ src = fetchurl {
+ sha256 = "1xvzkxkq1sq33r2s4f1967f4gnca4xw411sbapdkx541f856w9w9";
+ url = "https://humdi.net/${pname}/${pname}-${version}.tar.gz";
+ };
+
+ postPatch = ''
+ substituteInPlace src/cfg.c --replace /usr/local $out
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gd ncurses sqlite ];
+
+ checkInputs = [ check ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Console-based network statistics utility for Linux";
+ longDescription = ''
+ vnStat is a console-based network traffic monitor for Linux and BSD that
+ keeps a log of network traffic for the selected interface(s). It uses the
+ network interface statistics provided by the kernel as information source.
+ This means that vnStat won't actually be sniffing any traffic and also
+ ensures light use of system resources.
+ '';
+ homepage = "https://humdi.net/vnstat/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile
new file mode 100644
index 000000000000..e519efbf5701
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+source 'https://rubygems.org' do
+ gem 'wayback_machine_downloader'
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock
new file mode 100644
index 000000000000..4534beb20c39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ wayback_machine_downloader (2.2.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ wayback_machine_downloader!
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix
new file mode 100644
index 000000000000..49471ebf7e39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix
@@ -0,0 +1,16 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+bundlerApp {
+ pname = "wayback_machine_downloader";
+ exes = [ "wayback_machine_downloader" ];
+ gemdir = ./.;
+
+ passthru.updateScript = bundlerUpdateScript "wayback_machine_downloader";
+
+ meta = with lib; {
+ description = "Download websites from the Internet Archive Wayback Machine";
+ homepage = "https://github.com/hartator/wayback-machine-downloader";
+ license = licenses.mit;
+ maintainers = [ maintainers.manveru ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix
new file mode 100644
index 000000000000..615570f1f09f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix
@@ -0,0 +1,12 @@
+{
+ wayback_machine_downloader = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12kb1qmvmmsaihqab1prn6cmynkn6cgb4vf41mgv22wkcgv5wgk2";
+ type = "gem";
+ };
+ version = "2.2.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
new file mode 100644
index 000000000000..c0591f24c96d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, gtk3
+, json-glib, libsoup, webkitgtk, geocode-glib, nix-update-script
+, libappindicator, desktop-file-utils, appstream, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "meteo";
+ version = "0.9.8";
+
+ src = fetchFromGitLab {
+ owner = "bitseater";
+ repo = pname;
+ rev = version;
+ sha256 = "1ll5fja0dqxcr6hrh2dk4hgw9gf8ms9bcp1ifznd21byxzyhdlr0";
+ };
+
+ nativeBuildInputs = [
+ appstream
+ desktop-file-utils
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ geocode-glib
+ gtk3
+ json-glib
+ libappindicator
+ libsoup
+ webkitgtk
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+
+ meta = with stdenv.lib; {
+ description = "Know the forecast of the next hours & days";
+ homepage = "https://gitlab.com/bitseater/meteo";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/websocketd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/websocketd/default.nix
new file mode 100644
index 000000000000..c287abb0de24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/websocketd/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "websocketd";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "joewalnes";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1qc4yi4kwy7bfi3fb17w58ff0i95yi6m4syldh8j79930syr5y8q";
+ };
+
+ vendorSha256 = "05k31z4h3b327mh940zh52im4xfk7kf5phb8b7xp4l9bgckhz4lb";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Turn any program that uses STDIN/STDOUT into a WebSocket server";
+ homepage = "http://websocketd.com/";
+ maintainers = [ maintainers.bjornfor ];
+ license = licenses.bsd2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/wg-bond/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
new file mode 100644
index 000000000000..32ffbde400b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
@@ -0,0 +1,29 @@
+{ pkgs, lib, rustPlatform, fetchFromGitLab, wireguard-tools, makeWrapper }:
+rustPlatform.buildRustPackage rec {
+ pname = "wg-bond";
+ version = "0.2.0";
+
+ src = fetchFromGitLab {
+ owner = "cab404";
+ repo = "wg-bond";
+ rev = "v${version}";
+ hash = "sha256:04k0maxy39k7qzcsqsv1byddsmjszmnyjffrf22nzbvml83p3l0y";
+ };
+
+ cargoSha256 = "1v2az0v6l8mqryvq3898hm7bpvqdd2c4kpv6ck7932jfjyna512k";
+
+ buildInputs = [ makeWrapper ];
+ postInstall = ''
+ wrapProgram $out/bin/wg-bond --set PATH ${
+ lib.makeBinPath [ wireguard-tools ]
+ }
+ '';
+
+ meta = with lib; {
+ description = "Wireguard configuration manager";
+ homepage = "https://gitlab.com/cab404/wg-bond";
+ changelog = "https://gitlab.com/cab404/wg-bond/-/releases#v${version}";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ cab404 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/znc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/znc/default.nix
new file mode 100644
index 000000000000..3487c72d4087
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/znc/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, openssl, pkgconfig
+, withPerl ? false, perl
+, withPython ? false, python3
+, withTcl ? false, tcl
+, withCyrus ? true, cyrus_sasl
+, withUnicode ? true, icu
+, withZlib ? true, zlib
+, withIPv6 ? true
+, withDebug ? false
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "znc";
+ version = "1.8.2";
+
+ src = fetchurl {
+ url = "https://znc.in/releases/archive/${pname}-${version}.tar.gz";
+ sha256 = "03fyi0j44zcanj1rsdx93hkdskwfvhbywjiwd17f9q1a7yp8l8zz";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ openssl ]
+ ++ optional withPerl perl
+ ++ optional withPython python3
+ ++ optional withTcl tcl
+ ++ optional withCyrus cyrus_sasl
+ ++ optional withUnicode icu
+ ++ optional withZlib zlib;
+
+ configureFlags = [
+ (stdenv.lib.enableFeature withPerl "perl")
+ (stdenv.lib.enableFeature withPython "python")
+ (stdenv.lib.enableFeature withTcl "tcl")
+ (stdenv.lib.withFeatureAs withTcl "tcl" "${tcl}/lib")
+ (stdenv.lib.enableFeature withCyrus "cyrus")
+ ] ++ optional (!withIPv6) [ "--disable-ipv6" ]
+ ++ optional withDebug [ "--enable-debug" ];
+
+ meta = with stdenv.lib; {
+ description = "Advanced IRC bouncer";
+ homepage = "https://wiki.znc.in/ZNC";
+ maintainers = with maintainers; [ schneefux lnl7 ];
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/networking/znc/modules.nix b/infra/libkookie/nixpkgs/pkgs/applications/networking/znc/modules.nix
new file mode 100644
index 000000000000..c045598fc3b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/networking/znc/modules.nix
@@ -0,0 +1,198 @@
+{ stdenv, fetchFromGitHub, znc }:
+
+let
+ zncDerivation = a@{
+ name, src, module_name,
+ buildPhase ? "${znc}/bin/znc-buildmod ${module_name}.cpp",
+ installPhase ? "install -D ${module_name}.so $out/lib/znc/${module_name}.so", ...
+ } : stdenv.mkDerivation (a // {
+ inherit buildPhase;
+ inherit installPhase;
+
+ buildInputs = znc.buildInputs;
+
+ meta = a.meta // { platforms = stdenv.lib.platforms.unix; };
+ passthru.module_name = module_name;
+ });
+
+in {
+
+ backlog = zncDerivation rec {
+ name = "znc-backlog-${version}";
+ version = "git-2017-06-13";
+ module_name = "backlog";
+
+ src = fetchFromGitHub {
+ owner = "FruitieX";
+ repo = "znc-backlog";
+ rev = "42e8f439808882d2dae60f2a161eabead14e4b0d";
+ sha256 = "1k7ifpqqzzf2j7w795q4mx1nvmics2higzjqr3mid3lp43sqg5s6";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Request backlog for IRC channels.";
+ homepage = "https://github.com/fruitiex/znc-backlog/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ infinisil ];
+ };
+ };
+
+ clientbuffer = zncDerivation rec {
+ name = "znc-clientbuffer-${version}";
+ version = "git-2020-04-24";
+ module_name = "clientbuffer";
+
+ src = fetchFromGitHub {
+ owner = "CyberShadow";
+ repo = "znc-clientbuffer";
+ rev = "2e32d508aa975c0a307d09575a0198f8c56c11fa";
+ sha256 = "1jaspnrbv3pzsnbysqygc8s8g3q07zx5nlrdpgwv9j8aryg0pcnh";
+ };
+
+ meta = with stdenv.lib; {
+ description = "ZNC module for client specific buffers";
+ homepage = "https://github.com/CyberShadow/znc-clientbuffer";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ hrdinka szlend ];
+ };
+ };
+
+ clientaway = zncDerivation rec {
+ name = "znc-clientaway-${version}";
+ version = "git-2017-04-28";
+ module_name = "clientaway";
+
+ src = fetchFromGitHub {
+ owner = "kylef";
+ repo = "znc-contrib";
+ rev = "f6724a4a3b16b050088adde0cbeed74f189e5044";
+ sha256 = "0ikd3dzjjlr0gs0ikqfk50msm6mij99ln2rjzqavh58iwzr7n5r8";
+ };
+
+ meta = with stdenv.lib; {
+ description = "ZNC clientaway module";
+ homepage = "https://github.com/kylef/znc-contrib";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ kiwi ];
+ };
+ };
+
+ fish = zncDerivation rec {
+ name = "znc-fish-${version}";
+ version = "git-2017-06-26";
+ module_name = "fish";
+
+ src = fetchFromGitHub {
+ # this fork works with ZNC 1.7
+ owner = "oilslump";
+ repo = "znc-fish";
+ rev = "7d91467dbb195f7b591567911210523c6087662e";
+ sha256 = "1ky5xg17k5f393whrv5iv8zsmdvdyk2f7z5qdsmxcwy3pdxy6vsm";
+ };
+
+ meta = {
+ description = "ZNC FiSH module";
+ homepage = "https://github.com/dctrwatson/znc-fish";
+ maintainers = [ stdenv.lib.maintainers.offline ];
+ };
+ };
+
+ ignore = zncDerivation rec {
+ name = "znc-ignore-${version}";
+ version = "git-2017-04-28";
+ module_name = "ignore";
+
+ src = fetchFromGitHub {
+ owner = "kylef";
+ repo = "znc-contrib";
+ rev = "f6724a4a3b16b050088adde0cbeed74f189e5044";
+ sha256 = "0ikd3dzjjlr0gs0ikqfk50msm6mij99ln2rjzqavh58iwzr7n5r8";
+ };
+
+ meta = with stdenv.lib; {
+ description = "ZNC ignore module";
+ homepage = "https://github.com/kylef/znc-contrib";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ kiwi ];
+ };
+ };
+
+ palaver = zncDerivation rec {
+ name = "znc-palaver-${version}";
+ version = "2018-09-18";
+ module_name = "palaver";
+
+ src = fetchFromGitHub {
+ owner = "cocodelabs";
+ repo = "znc-palaver";
+ rev = "c70e8112686f917d39197d582db36c3ea37a4cb6";
+ sha256 = "1gjr8yqgpkpcc18rf0zfgil3rcd1ihqk0q9f8rwbfvs5381h3c58";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Palaver ZNC module";
+ homepage = "https://github.com/cocodelabs/znc-palaver";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kiwi ];
+ };
+ };
+
+ playback = zncDerivation rec {
+ name = "znc-playback-${version}";
+ version = "git-2015-08-04";
+ module_name = "playback";
+
+ src = fetchFromGitHub {
+ owner = "jpnurmi";
+ repo = "znc-playback";
+ rev = "8691abf75becc1f3d7b5bb5ad68dad17cd21863b";
+ sha256 = "0mgfajljy035051b2sx70i8xrb51zw9q2z64kf85zw1lynihzyh4";
+ };
+
+ meta = with stdenv.lib; {
+ description = "An advanced playback module for ZNC";
+ homepage = "https://github.com/jpnurmi/znc-playback";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ hrdinka ];
+ };
+ };
+
+ privmsg = zncDerivation rec {
+ name = "znc-privmsg-${version}";
+ version = "git-2015-02-22";
+ module_name = "privmsg";
+
+ src = fetchFromGitHub {
+ owner = "kylef";
+ repo = "znc-contrib";
+ rev = "9f1f98db56cbbea96d83e6628f657e0d62cd9517";
+ sha256 = "0n82z87gdxxragcaixjc80z8bw4bmfwbk0jrf9zs8kk42phlkkc2";
+ };
+
+ meta = {
+ description = "ZNC privmsg module";
+ homepage = "https://github.com/kylef/znc-contrib";
+ };
+ };
+
+ push = zncDerivation rec {
+ name = "znc-push-${version}";
+ version = "git-2016-10-12";
+ module_name = "push";
+
+ src = fetchFromGitHub {
+ owner = "jreese";
+ repo = "znc-push";
+ rev = "cf08b9e0f483f03c28d72dd78df932cbef141f10";
+ sha256 = "0xpwjw8csyrg736g1jc1n8d6804x6kbdkrvldzhk9ldj4iwqz7ay";
+ };
+
+ meta = {
+ description = "Push notification service module for ZNC";
+ homepage = "https://github.com/jreese/znc-push";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ offline schneefux ];
+ };
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/abiword/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/abiword/default.nix
new file mode 100644
index 000000000000..4aa3f936b539
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/abiword/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, fribidi
+, libpng, popt, libgsf, enchant, wv, librsvg, bzip2, libjpeg, perl
+, boost, libxslt, goffice, wrapGAppsHook, gnome3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "abiword";
+ version = "3.0.4";
+
+ src = fetchurl {
+ url = "https://www.abisource.com/downloads/abiword/${version}/source/${pname}-${version}.tar.gz";
+ sha256 = "1mx5l716n0z5788i19qmad30cck4v9ggr071cafw2nrf375rcc79";
+ };
+
+ enableParallelBuilding = true;
+
+ patches = [
+ # Switch to using enchant2; note by the next update enchant2 should be
+ # default and this patch can be removed.
+ # https://github.com/NixOS/nixpkgs/issues/38506
+ (fetchurl {
+ url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/enchant-2.1.patch?h=packages/abiword";
+ sha256 = "444dc2aadea3c80310a509b690097541573f6d2652c573d04da66a0f385fcfb2";
+ })
+ ];
+
+ postPatch = ''
+ substituteInPlace configure --replace 'enchant >=' 'enchant-2 >='
+ '';
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+
+ buildInputs = [
+ gtk3 librsvg bzip2 fribidi libpng popt
+ libgsf enchant wv libjpeg perl boost libxslt goffice gnome3.adwaita-icon-theme
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Word processing program, similar to Microsoft Word";
+ homepage = "https://www.abisource.com/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ylwghst sna ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/aesop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/aesop/default.nix
new file mode 100644
index 000000000000..0e76c101545b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/aesop/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, vala, fetchFromGitHub, nix-update-script, pantheon, pkgconfig, meson, ninja, python3, gtk3
+, desktop-file-utils, json-glib, libsoup, libgee, poppler, wrapGAppsHook, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "aesop";
+ version = "1.2.5";
+
+ src = fetchFromGitHub {
+ owner = "lainsce";
+ repo = pname;
+ rev = version;
+ sha256 = "1zxyyxl959rqhyz871dyyccqga2ydybkfcpyjq4vmvdn2g9mvmb0";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ pantheon.elementary-icon-theme
+ libgee
+ pantheon.granite
+ gtk3
+ json-glib
+ libsoup
+ poppler
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "The simplest PDF viewer around";
+ homepage = "https://github.com/lainsce/aesop";
+ license = licenses.gpl2Plus;
+ maintainers = pantheon.maintainers;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/agenda/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/agenda/default.nix
new file mode 100644
index 000000000000..32cb2988ae30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/agenda/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, pantheon
+, meson
+, ninja
+, python3
+, pkg-config
+, vala
+, gettext
+, glib
+, gtk3
+, libgee
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "agenda";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "dahenson";
+ repo = pname;
+ rev = version;
+ sha256 = "0yfapapsanqacaa83iagar88i335yy2jvay8y6z7gkri7avbs4am";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ glib # for glib-compile-schemas
+ meson
+ ninja
+ pkg-config
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ libgee
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ doCheck = true;
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "A simple, fast, no-nonsense to-do (task) list designed for elementary OS";
+ homepage = "https://github.com/dahenson/agenda";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c_CVE-2014-8123.patch b/infra/libkookie/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c_CVE-2014-8123.patch
new file mode 100644
index 000000000000..ebf2f0900d98
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c_CVE-2014-8123.patch
@@ -0,0 +1,18 @@
+Description: Add check for buffer overflow with malformed input files
+Author: <eriks@debian.org>
+Bug-Debian: http://bugs.debian.org/407015
+Last-Update: 2009-06-03
+
+--- antiword-0.37~/wordole.c 2005-08-26 21:49:57.000000000 +0200
++++ antiword-0.37/wordole.c 2009-06-03 22:31:15.948014682 +0200
+@@ -259,6 +259,10 @@
+ }
+ tNameSize = (size_t)usGetWord(0x40, aucBytes);
+ tNameSize = (tNameSize + 1) / 2;
++ if ( tNameSize > sizeof(atPPSlist[iIndex].szName)) {
++ werr(0, "Name Size of PPS %d is too large", iIndex);
++ tNameSize = sizeof(atPPSlist[iIndex].szName);
++ }
+ vName2String(atPPSlist[iIndex].szName, aucBytes, tNameSize);
+ atPPSlist[iIndex].ucType = ucGetByte(0x42, aucBytes);
+ if (atPPSlist[iIndex].ucType == 5) {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/antiword/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/antiword/default.nix
new file mode 100644
index 000000000000..c8cb294b0dc0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/antiword/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv }:
+
+let
+ name = "antiword-0.37";
+in
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "http://www.winfield.demon.nl/linux/${name}.tar.gz";
+ sha256 = "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f";
+ };
+
+ prePatch = ''
+ sed -i -e "s|/usr/local/bin|$out/bin|g" -e "s|/usr/share|$out/share|g" Makefile antiword.h
+ substituteInPlace Makefile --replace "gcc" "cc"
+ '';
+
+ patches = [ ./10_fix_buffer_overflow_wordole_c_CVE-2014-8123.patch ];
+
+ installTargets = [ "global_install" ];
+
+ meta = {
+ homepage = "http://www.winfield.demon.nl/";
+ description = "Convert MS Word documents to plain text or PostScript";
+ license = stdenv.lib.licenses.gpl2;
+
+ maintainers = [ stdenv.lib.maintainers.peti ];
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix
new file mode 100644
index 000000000000..ec8e2b396c58
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchzip, jre }:
+
+stdenv.mkDerivation rec {
+ pname = "atlassian-cli";
+ version = "9.4.0";
+
+ src = fetchzip {
+ url = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip";
+ sha256 = "091dhjkx7fdn23cj7c4071swncsbmknpvidmmjzhc0355l3p4k2g";
+ };
+
+ tools = [
+ "agile"
+ "bamboo"
+ "bitbucket"
+ "confluence"
+ "csv"
+ "hipchat"
+ "jira"
+ "servicedesk"
+ "structure"
+ "tempo"
+ "trello"
+ "upm"
+ ];
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/doc/atlassian-cli}
+ cp -r lib $out/share/java
+ cp -r README.txt license $out/share/doc/atlassian-cli
+ for tool in $tools
+ do
+ substitute ${./wrapper.sh} $out/bin/$tool \
+ --subst-var out \
+ --subst-var-by jre ${jre} \
+ --subst-var-by tool $tool
+ chmod +x $out/bin/$tool
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An integrated family of CLI’s for various Atlassian applications";
+ homepage = "https://bobswift.atlassian.net/wiki/spaces/ACLI/overview";
+ license = licenses.unfreeRedistributable;
+ maintainers = with maintainers; [ twey ];
+ inherit (jre.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/atlassian-cli/wrapper.sh b/infra/libkookie/nixpkgs/pkgs/applications/office/atlassian-cli/wrapper.sh
new file mode 100755
index 000000000000..80b60dbc468c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/atlassian-cli/wrapper.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+tool=@tool@
+user=ATLASSIAN_${tool^^}_USER
+host=ATLASSIAN_${tool^^}_HOST
+pass=ATLASSIAN_${tool^^}_PASS
+
+[ -f ~/.atlassian-cli ] && source ~/.atlassian-cli
+if [ x = ${!user-x} ] || [ x = ${!host-x} ] || [ x = ${!pass-x} ]
+then
+ >&2 echo please define $user, $host, and $pass in '~/.atlassian-cli'
+ exit 1
+fi
+
+@jre@/bin/java \
+ -jar @out@/share/java/@tool@-cli-* \
+ --server "${!host}" \
+ --user "${!user}" \
+ --password "${!pass}" \
+ "$@"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/autokey/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/autokey/default.nix
new file mode 100644
index 000000000000..441a9a98e972
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/autokey/default.nix
@@ -0,0 +1,38 @@
+{ lib, python3Packages, fetchFromGitHub, wrapGAppsHook, gobject-introspection
+, gtksourceview3, libappindicator-gtk3, libnotify }:
+
+python3Packages.buildPythonApplication rec {
+ name = "autokey-${version}";
+ version = "0.94.1";
+
+ src = fetchFromGitHub {
+ owner = "autokey";
+ repo = "autokey";
+ rev = "v${version}";
+ sha256 = "1syxyciyxzs0khbfs9wjgj03q967p948kipw27j1031q0b5z3jxr";
+ };
+
+ # Arch requires a similar work around—see
+ # https://aur.archlinux.org/packages/autokey-py3/?comments=all
+ patches = [ ./remove-requires-dbus-python.patch ];
+
+ # Tests appear to be broken with import errors within the project structure
+ doCheck = false;
+
+ # Note: no dependencies included for Qt GUI because Qt ui is poorly
+ # maintained—see https://github.com/autokey/autokey/issues/51
+
+ buildInputs = [ wrapGAppsHook gobject-introspection gtksourceview3
+ libappindicator-gtk3 libnotify ];
+
+ propagatedBuildInputs = with python3Packages; [
+ dbus-python pyinotify xlib pygobject3 ];
+
+ meta = {
+ homepage = "https://github.com/autokey/autokey";
+ description = "Desktop automation utility for Linux and X11";
+ license = with lib.licenses; [ gpl3 ];
+ maintainers = with lib.maintainers; [ pneumaticat ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/autokey/remove-requires-dbus-python.patch b/infra/libkookie/nixpkgs/pkgs/applications/office/autokey/remove-requires-dbus-python.patch
new file mode 100644
index 000000000000..73372e435291
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/autokey/remove-requires-dbus-python.patch
@@ -0,0 +1,11 @@
+--- a/setup.py
++++ b/setup.py
+@@ -71,7 +71,7 @@
+ 'console_scripts': ['autokey-gtk=autokey.gtkui.__main__:main']
+ },
+ scripts=['autokey-qt', 'autokey-run', 'autokey-shell'],
+- install_requires=['dbus-python', 'pyinotify', 'python3-xlib'],
++ install_requires=['pyinotify', 'python-xlib'],
+ classifiers=[
+ 'Development Status :: 4 - Beta',
+ 'Intended Audience :: Developers',
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
new file mode 100644
index 000000000000..cd15d3723d11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, mkDerivation, fetchFromGitHub, installShellFiles,
+ qmake, qtbase, poppler, qtmultimedia }:
+
+mkDerivation rec {
+ pname = "beamerpresenter";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "stiglers-eponym";
+ repo = "BeamerPresenter";
+ rev = "v${version}";
+ sha256 = "12xngnhwa3haf0pdxczgvhq1j20zbsr30y2bfn9qwmlhbwklhkj2";
+ };
+
+ nativeBuildInputs = [ qmake installShellFiles ];
+ buildInputs = [ qtbase qtmultimedia poppler ];
+
+ postPatch = ''
+ # Fix location of poppler-*.h
+ shopt -s globstar
+ for f in **/*.{h,cpp}; do
+ substituteInPlace $f --replace '#include <poppler-' '#include <poppler/qt5/poppler-'
+ done
+ '';
+
+ installPhase = ''
+ install -m755 beamerpresenter -Dt $out/bin/
+ install -m644 src/icons/beamerpresenter.svg -Dt $out/share/icons/hicolor/scalable/apps/
+ install -m644 share/applications/beamerpresenter.desktop -Dt $out/share/applications/
+ installManPage man/*.{1,5}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple dual screen pdf presentation software";
+ homepage = "https://github.com/stiglers-eponym/BeamerPresenter";
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ pacien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/beancount/bean-add.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
new file mode 100644
index 000000000000..916d13e7a83a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+stdenv.mkDerivation {
+ name = "bean-add-2018-01-08";
+
+ src = fetchFromGitHub {
+ owner = "simon-v";
+ repo = "bean-add";
+ rev = "660c657f295b019d8dbc26375924eb17bf654341";
+ sha256 = "0vzff2hdng8ybwd5frflhxpak0yqg0985p1dy7vpvhr8kbqqzwdz";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ python ];
+
+ installPhase = ''
+ mkdir -p $out/bin/
+ cp bean-add $out/bin/bean-add
+ chmod +x $out/bin/bean-add
+ '';
+
+ meta = {
+ homepage = "https://github.com/simon-v/bean-add/";
+ description = "beancount transaction entry assistant";
+
+ # The (only) source file states:
+ # License: "Do what you feel is right, but don't be a jerk" public license.
+
+ maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/bookworm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/bookworm/default.nix
new file mode 100644
index 000000000000..90b6c2fefc53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/bookworm/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk, libgee
+, gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook
+, appstream, desktop-file-utils }:
+
+stdenv.mkDerivation rec {
+ pname = "bookworm";
+ version = "1.1.2";
+
+ src = fetchFromGitHub {
+ owner = "babluboy";
+ repo = pname;
+ rev = version;
+ sha256 = "0w0rlyahpgx0l6inkbj106agbnr2czil0vdcy1zzv70apnjz488j";
+ };
+
+ nativeBuildInputs = [
+ bash
+ gobject-introspection
+ libxml2
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ pantheon.elementary-icon-theme
+ pantheon.granite
+ glib
+ libgee
+ gtk3
+ html2text
+ poppler
+ python2
+ sqlite
+ webkitgtk
+ appstream
+ desktop-file-utils
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ # These programs are expected in PATH from the source code and scripts
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : "${stdenv.lib.makeBinPath [ unzip unar poppler_utils html2text coreutils curl gnugrep ]}"
+ --prefix PATH : $out/bin
+ )
+ '';
+
+ postFixup = ''
+ patchShebangs $out/share/bookworm/scripts/mobi_lib/*.py
+ patchShebangs $out/share/bookworm/scripts/tasks/*.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple, focused eBook reader";
+ longDescription = ''
+ Read the books you love without having to worry about different format complexities like epub, pdf, mobi, cbr, etc.
+ '';
+ homepage = "https://babluboy.github.io/bookworm/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/calligra/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/calligra/default.nix
new file mode 100644
index 000000000000..a8ca37df36ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/calligra/default.nix
@@ -0,0 +1,61 @@
+{
+ mkDerivation, lib, fetchurl, extra-cmake-modules, kdoctools, makeWrapper,
+ boost, qtwebkit, qtx11extras, shared-mime-info,
+ breeze-icons, kactivities, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets,
+ kcoreaddons, kdbusaddons, kdiagram, kguiaddons, khtml, ki18n,
+ kiconthemes, kitemviews, kjobwidgets, kcmutils, kdelibs4support, kio, kross,
+ knotifications, knotifyconfig, kparts, ktextwidgets, kwallet, kwidgetsaddons,
+ kwindowsystem, kxmlgui, sonnet, threadweaver,
+ kcontacts, akonadi, akonadi-calendar, akonadi-contacts,
+ eigen, git, gsl, ilmbase, kproperty, kreport, lcms2, marble, pcre, libgit2, libodfgen,
+ librevenge, libvisio, libwpd, libwpg, libwps, okular, openexr, openjpeg, phonon,
+ poppler, pstoedit, qca-qt5, vc
+# TODO: package Spnav, m2mml LibEtonyek, Libqgit2
+}:
+
+mkDerivation rec {
+ pname = "calligra";
+ version = "3.2.1";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+ sha256 = "0iqi6z6gkck2afgy200dacgcspq7i7887alcj0pklm08hbmsdy5i";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+
+ buildInputs = [
+ boost qtwebkit qtx11extras shared-mime-info
+ kactivities karchive kcodecs kcompletion kconfig kconfigwidgets kcoreaddons
+ kdbusaddons kdiagram kguiaddons khtml ki18n kiconthemes kitemviews
+ kjobwidgets kcmutils kdelibs4support kio kross knotifications knotifyconfig kparts
+ ktextwidgets kwallet kwidgetsaddons kwindowsystem kxmlgui sonnet threadweaver
+ kcontacts akonadi akonadi-calendar akonadi-contacts
+ eigen git gsl ilmbase kproperty kreport lcms2 marble pcre libgit2 libodfgen librevenge
+ libvisio libwpd libwpg libwps okular openexr openjpeg phonon poppler qca-qt5 vc
+ ];
+
+ propagatedUserEnvPkgs = [ kproperty ];
+
+ NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
+
+ qtWrapperArgs = [
+ "--prefix PATH : ${lib.getBin pstoedit}/bin"
+ "--prefix XDG_DATA_DIRS : ${breeze-icons}/share"
+ ];
+
+ meta = with lib; {
+ description = "A suite of productivity applications";
+ longDescription = ''
+ Calligra Suite is a set of applications written to help
+ you to accomplish your work. Calligra includes efficient
+ and capable office components: Words for text processing,
+ Sheets for computations, Plan for planning, and Karbon for
+ vector graphics.
+ '';
+ homepage = "https://www.calligra.org/";
+ maintainers = with maintainers; [ phreedom ebzzry zraexy ];
+ platforms = platforms.linux;
+ license = with licenses; [ gpl2 lgpl2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/calligra/qt5_11.patch b/infra/libkookie/nixpkgs/pkgs/applications/office/calligra/qt5_11.patch
new file mode 100644
index 000000000000..66ff8c6eedcd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/calligra/qt5_11.patch
@@ -0,0 +1,98 @@
+diff --git a/libs/widgets/KoCsvImportDialog.cpp b/libs/widgets/KoCsvImportDialog.cpp
+index 0ffdcf6..cdca006 100644
+--- a/libs/widgets/KoCsvImportDialog.cpp
++++ b/libs/widgets/KoCsvImportDialog.cpp
+@@ -21,6 +21,7 @@
+ #include "KoCsvImportDialog.h"
+
+ // Qt
++#include <QButtonGroup>
+ #include <QTextCodec>
+ #include <QTextStream>
+
+diff --git a/libs/widgets/KoPageLayoutWidget.cpp b/libs/widgets/KoPageLayoutWidget.cpp
+index f91555c..a3816f9 100644
+--- a/libs/widgets/KoPageLayoutWidget.cpp
++++ b/libs/widgets/KoPageLayoutWidget.cpp
+@@ -23,6 +23,8 @@
+
+ #include <KoUnit.h>
+
++#include <QButtonGroup>
++
+ class Q_DECL_HIDDEN KoPageLayoutWidget::Private
+ {
+ public:
+diff --git a/plugins/chartshape/dialogs/TableEditorDialog.cpp b/plugins/chartshape/dialogs/TableEditorDialog.cpp
+index c0d5136..d2a772e 100644
+--- a/plugins/chartshape/dialogs/TableEditorDialog.cpp
++++ b/plugins/chartshape/dialogs/TableEditorDialog.cpp
+@@ -24,6 +24,7 @@
+
+ // Qt
+ #include <QAbstractItemModel>
++#include <QAction>
+
+ // Calligra
+ #include <KoIcon.h>
+diff --git a/plugins/formulashape/FormulaToolWidget.cpp b/plugins/formulashape/FormulaToolWidget.cpp
+index ed10919..8f52177 100644
+--- a/plugins/formulashape/FormulaToolWidget.cpp
++++ b/plugins/formulashape/FormulaToolWidget.cpp
+@@ -30,6 +30,7 @@
+ #include <QWidgetAction>
+ #include <QTableWidget>
+ #include <QAction>
++#include <QHeaderView>
+ #include <QMenu>
+
+ FormulaToolWidget::FormulaToolWidget( KoFormulaTool* tool, QWidget* parent )
+diff --git a/sheets/dialogs/LayoutDialog.cpp b/sheets/dialogs/LayoutDialog.cpp
+index a0a9832..7d7db53 100644
+--- a/sheets/dialogs/LayoutDialog.cpp
++++ b/sheets/dialogs/LayoutDialog.cpp
+@@ -36,6 +36,7 @@
+ #include <math.h>
+
+ #include <QIntValidator>
++#include <QButtonGroup>
+ #include <QCheckBox>
+ #include <QFrame>
+ #include <QLabel>
+diff --git a/words/part/dialogs/KWAnchoringProperties.cpp b/words/part/dialogs/KWAnchoringProperties.cpp
+index d64208c..bfddb3a 100644
+--- a/words/part/dialogs/KWAnchoringProperties.cpp
++++ b/words/part/dialogs/KWAnchoringProperties.cpp
+@@ -35,6 +35,7 @@
+
+ #include <kundo2command.h>
+
++#include <QButtonGroup>
+ #include <QComboBox>
+
+ const int KWAnchoringProperties::vertRels[4][20] = {
+diff --git a/words/part/dialogs/KWRunAroundProperties.cpp b/words/part/dialogs/KWRunAroundProperties.cpp
+index e38599a..7e8b2d5 100644
+--- a/words/part/dialogs/KWRunAroundProperties.cpp
++++ b/words/part/dialogs/KWRunAroundProperties.cpp
+@@ -28,6 +28,8 @@
+
+ #include <kundo2command.h>
+
++#include <QButtonGroup>
++
+ KWRunAroundProperties::KWRunAroundProperties(FrameConfigSharedState *state)
+ : m_state(state)
+ {
+diff --git a/stage/part/KPrPresentationTool.cpp b/stage/part/KPrPresentationTool.cpp
+index ae743da..3007f91 100644
+--- a/stage/part/KPrPresentationTool.cpp
++++ b/stage/part/KPrPresentationTool.cpp
+@@ -32,6 +32,7 @@
+ #include <QDesktopServices>
+ #include <QUrl>
+ #include <QDBusConnection>
++#include <QFrame>
+
+ #include <KoShape.h>
+ #include <KoShapeManager.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/cb2bib/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/cb2bib/default.nix
new file mode 100644
index 000000000000..f5b8b437249f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/cb2bib/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, qmake, qtbase, qtwebkit, qtx11extras, lzo, libX11 }:
+
+stdenv.mkDerivation rec {
+ pname = "cb2bib";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://www.molspaces.com/dl/progs/${pname}-${version}.tar.gz";
+ sha256 = "0gv7cnxi84lr6d5y71pd67h0ilmf5c88j1jxgyn9dvj19smrv99h";
+ };
+ buildInputs = [ qtbase qtwebkit qtx11extras lzo libX11 ];
+ nativeBuildInputs = [ qmake ];
+
+ configurePhase = ''
+ runHook preConfigure
+ ./configure --prefix $out --qmakepath $QMAKE
+ runHook postConfigure
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Rapidly extract unformatted, or unstandardized bibliographic references from email alerts, journal Web pages and PDF files";
+ homepage = "http://www.molspaces.com/d_cb2bib-overview.php";
+ maintainers = with maintainers; [ edwtjo ];
+ license = licenses.gpl3;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/csv2odf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/csv2odf/default.nix
new file mode 100644
index 000000000000..7bab06ed4ab9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/csv2odf/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3, fetchurl }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "csv2odf";
+ version = "2.09";
+ src = fetchurl {
+ url = "mirror://sourceforge/project/${pname}/${pname}-${version}/${pname}-${version}.tar.gz";
+ sha256 = "09l0yfay89grjdzap2h11f0hcyn49np5zizg2yyp2aqgjs8ki57p";
+ };
+
+ meta = with lib; {
+ homepage = "https://sourceforge.net/p/csv2odf/wiki/Main_Page/";
+ description = "Convert csv files to OpenDocument Format";
+ longDescription = ''
+ csv2odf is a command line tool that can convert a comma separated value
+ (csv) file to an odf, ods, html, xlsx, or docx document that can be viewed in
+ LibreOffice and other office productivity programs. csv2odf is useful for
+ creating reports from databases and other data sources that produce csv files.
+ csv2odf can be combined with cron and shell scripts to automatically generate
+ business reports.
+
+ The output format (fonts, number formatting, etc.) is controlled by a
+ template file that you can design in your office application of choice.
+ '';
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ leenaars ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/docear/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/docear/default.nix
new file mode 100644
index 000000000000..fb9578c909df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/docear/default.nix
@@ -0,0 +1,44 @@
+{stdenv, fetchurl, runtimeShell, makeWrapper
+, oraclejre
+, antialiasFont ? true
+}:
+
+stdenv.mkDerivation {
+ pname = "docear";
+ version = "1.2";
+
+ src = fetchurl {
+ url = "http://docear.org/downloads/docear_linux.tar.gz";
+ sha256 = "1g5n7r2x4gas6dl2fbyh7v9yxdcb6bzml8n3ldmpzv1rncgjcdp4";
+ };
+
+ buildInputs = [ oraclejre makeWrapper ];
+
+ buildPhase = "";
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share
+ cp -R * $out/share
+ chmod 0755 $out/share/ -R
+
+ # The wrapper ensures oraclejre is used
+ makeWrapper ${runtimeShell} $out/bin/docear \
+ --set _JAVA_OPTIONS "${stdenv.lib.optionalString antialiasFont ''-Dswing.aatext=TRUE -Dawt.useSystemAAFontSettings=on''}" \
+ --set JAVA_HOME ${oraclejre.home} \
+ --add-flags "$out/share/docear.sh"
+
+ chmod 0755 $out/bin/docear
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A unique solution to academic literature management";
+ homepage = "http://www.docear.org/";
+ # Licenses at: http://www.docear.org/software/download/
+ license = with licenses; [
+ gpl2 # for the main software and some dependencies
+ bsd3 # for one of its dependencies
+ ];
+ maintainers = with maintainers; [ unode ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/elementary-planner/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
new file mode 100644
index 000000000000..671613ddd32e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkgconfig
+, desktop-file-utils
+, python3
+, vala
+, wrapGAppsHook
+, evolution-data-server
+, libical
+, libgee
+, json-glib
+, glib
+, sqlite
+, libsoup
+, gtk3
+, pantheon /* granite, icons, maintainers */
+, webkitgtk
+}:
+
+stdenv.mkDerivation rec {
+ pname = "elementary-planner";
+ version = "2.5.4";
+
+ src = fetchFromGitHub {
+ owner = "alainm23";
+ repo = "planner";
+ rev = version;
+ sha256 = "0q5zmjh0d1mapgqb2a38spss280jkkc2n835kc7grzvs9jgq1k1k";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ evolution-data-server
+ glib
+ gtk3
+ json-glib
+ libgee
+ libical
+ libsoup
+ pantheon.elementary-icon-theme
+ pantheon.granite
+ sqlite
+ webkitgtk
+ ];
+
+ postPatch = ''
+ chmod +x build-aux/meson/post_install.py
+ patchShebangs build-aux/meson/post_install.py
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ # the theme is hardcoded
+ --prefix XDG_DATA_DIRS : "${pantheon.elementary-gtk-theme}/share"
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Task manager with Todoist support designed for GNU/Linux 🚀️";
+ homepage = "https://planner-todo.web.app";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ dtzWill ] ++ pantheon.maintainers;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/envelope/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/envelope/default.nix
new file mode 100644
index 000000000000..450b52bc0ca1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/envelope/default.nix
@@ -0,0 +1,81 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, fetchpatch
+, meson
+, ninja
+, pkgconfig
+, pantheon
+, python3
+, vala
+, appstream-glib
+, desktop-file-utils
+, gettext
+, glib
+, gtk3
+, libgee
+, sqlite
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "envelope";
+ version = "0.0.4";
+
+ src = fetchFromGitHub {
+ owner = "cjfloss";
+ repo = pname;
+ rev = version;
+ sha256 = "111lq1gijcm7qwpac09q11ymwiw2x3m12a28ki52f28fb1amvffc";
+ };
+
+ nativeBuildInputs = [
+ appstream-glib
+ desktop-file-utils
+ gettext
+ meson
+ ninja
+ vala
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ libgee
+ pantheon.granite
+ sqlite
+ ];
+
+ doCheck = true;
+
+ patches = [
+ # Fix AppData Validation.
+ # https://github.com/cjfloss/envelope/pull/59
+ (fetchpatch {
+ url = "https://github.com/cjfloss/envelope/commit/b6a28eced89b8f944479fcc695aebfb9aae0c691.patch";
+ sha256 = "11znc8z52kl893n3gmmdpnp3y4vpzmb263m5gp0qxbl3xykq2wzr";
+ })
+ ];
+
+ postPatch = ''
+ chmod +x data/post_install.py
+ patchShebangs data/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Personal finance manager for elementary OS";
+ homepage = "https://github.com/cjfloss/envelope";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/espanso/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/espanso/default.nix
new file mode 100644
index 000000000000..14ac9ccbb30e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/espanso/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkgconfig
+, extra-cmake-modules
+, libX11
+, libXi
+, libXtst
+, libnotify
+, openssl
+, xclip
+, xdotool
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "espanso";
+ version = "0.7.3";
+
+ src = fetchFromGitHub {
+ owner = "federico-terzi";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1q47r43midkq9574gl8gdv3ylvrnbhdc39rrw4y4yk6jbdf5wwkm";
+ };
+
+ cargoSha256 = "0mxksifjagx25qkyg6ym0zlhal8014j8iim54cd44ndbkkiqlyxc";
+
+ nativeBuildInputs = [
+ extra-cmake-modules
+ pkgconfig
+ ];
+
+ buildInputs = [
+ libX11
+ libXtst
+ libXi
+ libnotify
+ openssl
+ xdotool
+ ];
+
+ # Some tests require networking
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Cross-platform Text Expander written in Rust";
+ homepage = "https://espanso.org";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ kimat ];
+
+ longDescription = ''
+ Espanso detects when you type a keyword and replaces it while you're typing.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/fava/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/fava/default.nix
new file mode 100644
index 000000000000..cee8098f4515
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/fava/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, python3, beancount }:
+
+let
+ inherit (python3.pkgs) buildPythonApplication fetchPypi;
+in
+buildPythonApplication rec {
+ pname = "fava";
+ version = "1.17";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "efad3a4b5697b9d7ee29eff5dc0c8367fc1df37b1abacc8d0b2071602e94a6cd";
+ };
+
+ checkInputs = [ python3.pkgs.pytest ];
+ propagatedBuildInputs = with python3.pkgs;
+ [
+ Babel
+ cheroot
+ flaskbabel
+ flask
+ jinja2
+ beancount
+ click
+ markdown2
+ ply
+ simplejson
+ werkzeug
+ jaraco_functools
+ ];
+
+ # CLI test expects fava on $PATH. Not sure why static_url fails.
+ # the entry_slices and render_entries requires other files to pass
+ checkPhase = ''
+ py.test tests -k 'not cli and not static_url and not entry_slice and not render_entries'
+ '';
+
+ meta = {
+ homepage = "https://beancount.github.io/fava";
+ description = "Web interface for beancount";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/flexibee/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/flexibee/default.nix
new file mode 100644
index 000000000000..52e58c5c9ccb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/flexibee/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+let
+ version = "2020.2.6";
+ majorVersion = builtins.substring 0 6 version;
+in
+
+stdenv.mkDerivation rec {
+ pname = "flexibee";
+ inherit version;
+
+ src = fetchurl {
+ url = "http://download.flexibee.eu/download/${majorVersion}/${version}/${pname}-${version}.tar.gz";
+ sha256 = "0vscz24sabk9xafywnx41rqhq6300ddsw1x95ibc7ghsgbkq80ja";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ prePatch = ''
+ substituteInPlace usr/sbin/flexibee-server \
+ --replace "/usr/share/flexibee" $out \
+ --replace "/var/run" "/run"
+ '';
+
+
+ installPhase = ''
+ runHook preInstall
+ cp -R usr/share/flexibee/ $out/
+ install -Dm755 usr/bin/flexibee $out/bin/flexibee
+ install -Dm755 usr/sbin/flexibee-server $out/bin/flexibee-server
+ wrapProgram $out/bin/flexibee --set JAVA_HOME "${jre}"
+ wrapProgram $out/bin/flexibee-server --set JAVA_HOME "${jre}"
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Client for an accouting economic system";
+ homepage = "https://www.flexibee.eu/";
+ license = licenses.unfree;
+ maintainers = [ maintainers.mmahut ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/gnucash/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/gnucash/default.nix
new file mode 100644
index 000000000000..29a96aac5c46
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/gnucash/default.nix
@@ -0,0 +1,108 @@
+{ fetchurl, stdenv, pkgconfig, makeWrapper, cmake, gtest
+, boost, icu, libxml2, libxslt, gettext, swig, isocodes, gtk3, glibcLocales
+, webkitgtk, dconf, hicolor-icon-theme, libofx, aqbanking, gwenhywfar, libdbi
+, libdbiDrivers, guile, perl, perlPackages
+}:
+
+let
+
+ # Enable gnc-fq-* to run in command line.
+ perlWrapper = stdenv.mkDerivation {
+ name = perl.name + "-wrapper-for-gnucash";
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ perl ] ++ (with perlPackages; [ FinanceQuote DateManip ]);
+ phases = [ "installPhase" ];
+ installPhase = ''
+ mkdir -p $out/bin
+ for script in ${perl}/bin/*; do
+ makeWrapper $script $out''${script#${perl}} \
+ --prefix "PERL5LIB" ":" "$PERL5LIB"
+ done
+ '';
+ };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "gnucash";
+ version = "4.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gnucash/${pname}-${version}.tar.bz2";
+ sha256 = "020k1mm909dcgs52ls4v7xx3yn8gqazi9awyr81l6y7pkq1spn2n";
+ };
+
+ nativeBuildInputs = [ pkgconfig makeWrapper cmake gtest ];
+
+ buildInputs = [
+ boost icu libxml2 libxslt gettext swig isocodes gtk3 glibcLocales
+ webkitgtk dconf libofx aqbanking gwenhywfar libdbi
+ libdbiDrivers guile
+ perlWrapper perl
+ ] ++ (with perlPackages; [ FinanceQuote DateManip ]);
+
+ propagatedUserEnvPkgs = [ dconf ];
+
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
+
+ postPatch = ''
+ patchShebangs .
+ '';
+
+ makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+
+ postInstall = ''
+ # Auto-updaters don't make sense in Nix.
+ rm $out/bin/gnc-fq-update
+
+ # Unnecessary in the release build.
+ rm $out/bin/gnucash-valgrind
+
+ wrapProgram "$out/bin/gnucash" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${pname}-${version}" \
+ --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
+ --prefix PERL5LIB ":" "$PERL5LIB" \
+ --set GNC_DBD_DIR ${libdbiDrivers}/lib/dbd \
+ --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
+ '';
+
+ # TODO: The following tests FAILED:
+ # 70 - test-load-c (Failed)
+ # 71 - test-modsysver (Failed)
+ # 72 - test-incompatdep (Failed)
+ # 73 - test-agedver (Failed)
+ # 77 - test-gnc-module-swigged-c (Failed)
+ # 78 - test-gnc-module-load-deps (Failed)
+ # 80 - test-gnc-module-scm-module (Failed)
+ # 81 - test-gnc-module-scm-multi (Failed)
+ preCheck = ''
+ export LD_LIBRARY_PATH=$PWD/lib:$PWD/lib/gnucash:$PWD/lib/gnucash/test''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
+ export NIX_CFLAGS_LINK="-lgtest -lgtest_main"
+ '';
+ doCheck = false;
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Personal and small-business financial-accounting application";
+
+ longDescription = ''
+ GnuCash is personal and small-business financial-accounting software,
+ freely licensed under the GNU GPL and available for GNU/Linux, BSD,
+ Solaris, macOS and Microsoft Windows.
+
+ Designed to be easy to use, yet powerful and flexible, GnuCash allows
+ you to track bank accounts, stocks, income and expenses. As quick and
+ intuitive to use as a checkbook register, it is based on professional
+ accounting principles to ensure balanced books and accurate reports.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ homepage = "http://www.gnucash.org/";
+
+ maintainers = [ stdenv.lib.maintainers.peti stdenv.lib.maintainers.domenkozar ];
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/gnumeric/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/gnumeric/default.nix
new file mode 100644
index 000000000000..b0609863c5ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/gnumeric/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, pkg-config, intltool, perlPackages
+, goffice, gnome3, wrapGAppsHook, gtk3, bison, python3Packages
+, itstool
+}:
+
+let
+ inherit (python3Packages) python pygobject3;
+in stdenv.mkDerivation rec {
+ pname = "gnumeric";
+ version = "1.12.48";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p";
+ };
+
+ configureFlags = [ "--disable-component" ];
+
+ nativeBuildInputs = [ pkg-config intltool bison itstool wrapGAppsHook ];
+
+ # ToDo: optional libgda, introspection?
+ buildInputs = [
+ goffice gtk3 gnome3.adwaita-icon-theme
+ python pygobject3
+ ] ++ (with perlPackages; [ perl XMLParser ]);
+
+ enableParallelBuilding = true;
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "The GNOME Office Spreadsheet";
+ license = stdenv.lib.licenses.gpl2Plus;
+ homepage = "http://projects.gnome.org/gnumeric/";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.vcunat ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/grisbi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/grisbi/default.nix
new file mode 100644
index 000000000000..812218d0a38f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/grisbi/default.nix
@@ -0,0 +1,47 @@
+{ fetchurl
+, stdenv
+, gtk
+, pkgconfig
+, libgsf
+, libofx
+, intltool
+, wrapGAppsHook
+, libsoup
+, gnome3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "grisbi";
+ version = "1.2.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/grisbi/${pname}-${version}.tar.bz2";
+ sha256 = "1piiyyxjsjbw9gcqydvknzxmmfgh8kdqal12ywrxyxih2afwnvbw";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+ buildInputs = [
+ gtk
+ libgsf
+ libofx
+ intltool
+ libsoup
+ gnome3.adwaita-icon-theme
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A personnal accounting application";
+ longDescription = ''
+ Grisbi is an application written by French developers, so it perfectly
+ respects French accounting rules. Grisbi can manage multiple accounts,
+ currencies and users. It manages third party, expenditure and receipt
+ categories, budgetary lines, financial years, budget estimates, bankcard
+ management and other information that make Grisbi adapted for
+ associations.
+ '';
+ homepage = "https://grisbi.org";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ layus ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/gtg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/gtg/default.nix
new file mode 100644
index 000000000000..31266bf6142b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/gtg/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, python3Packages
+, ninja
+, gtk3
+, wrapGAppsHook
+, glib
+, itstool
+, gettext
+, pango
+, gdk-pixbuf
+, gobject-introspection
+, xvfb_run
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "gtg";
+ version = "unstable-2020-10-22";
+
+ src = fetchFromGitHub {
+ owner = "getting-things-gnome";
+ repo = "gtg";
+ rev = "144814c16723fa9d00e17e047df5d79ab443fc5f";
+ sha256 = "1lpanfbj8y8b6cqp92lgbvfs8irrc5bsdffzcjcycazv19qm7z2n";
+ };
+
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ itstool
+ gettext
+ wrapGAppsHook
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ pango
+ gdk-pixbuf
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pycairo
+ pygobject3
+ lxml
+ gst-python
+ liblarch
+ ];
+
+ checkInputs = with python3Packages; [
+ nose
+ mock
+ xvfb_run
+ ];
+
+ format = "other";
+ strictDeps = false; # gobject-introspection does not run with strictDeps (https://github.com/NixOS/nixpkgs/issues/56943)
+
+ checkPhase = "xvfb-run python3 ../run-tests";
+
+ meta = with stdenv.lib; {
+ description = " A personal tasks and TODO-list items organizer";
+ longDescription = ''
+ "Getting Things GNOME" (GTG) is a personal tasks and ToDo list organizer inspired by the "Getting Things Done" (GTD) methodology.
+ GTG is intended to help you track everything you need to do and need to know, from small tasks to large projects.
+ '';
+ homepage = "https://wiki.gnome.org/Apps/GTG";
+ downloadPage = "https://github.com/getting-things-gnome/gtg/releases";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ oyren ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/homebank/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/homebank/default.nix
new file mode 100644
index 000000000000..dcda1c41e3c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/homebank/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, gtk, pkgconfig, libofx, intltool, wrapGAppsHook
+, libsoup, gnome3 }:
+
+stdenv.mkDerivation rec {
+ name = "homebank-5.4.3";
+ src = fetchurl {
+ url = "http://homebank.free.fr/public/${name}.tar.gz";
+ sha256 = "02wd569viwy6ncy0144z9nxr3zmpl4shkqhz7zzwyky4gknxf8lj";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+ buildInputs = [ gtk libofx intltool libsoup
+ gnome3.adwaita-icon-theme ];
+
+ meta = with stdenv.lib; {
+ description = "Free, easy, personal accounting for everyone";
+ homepage = "http://homebank.free.fr/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/ib/controller/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/ib/controller/default.nix
new file mode 100644
index 000000000000..7be7e4467b52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/ib/controller/default.nix
@@ -0,0 +1,162 @@
+{ stdenv, fetchurl, unzip, jdk, ib-tws, xpra }:
+
+stdenv.mkDerivation rec {
+ version = "2.14.0";
+ pname = "ib-controller";
+
+ src = fetchurl {
+ url = "https://github.com/ib-controller/ib-controller/archive/${version}.tar.gz";
+ sha256 = "17a8bcgg9z3b4y38k035hm2lgvhmf8srlz59c7n2q3fdw2i95i68";
+ };
+
+ phases = [ "unpackPhase" "installPhase" ];
+
+ buildInputs = [ unzip jdk ib-tws ];
+
+ installPhase = ''
+ mkdir -p $out $out/bin $out/etc/ib/controller $out/share/IBController
+ cp resources/*.jar $out/share/IBController/.
+ cp resources/*.ini $out/etc/ib/controller/.
+ classpath=""
+ for jar in ${ib-tws}/share/IBJts/*.jar; do
+ classpath="$classpath:$jar"
+ done
+ for jar in $out/share/IBController/*.jar; do
+ classpath="$classpath:$jar"
+ done
+ # strings to use below; separated to avoid nix specific substitutions
+ javaOptions={JAVA_OPTIONS:--Xmx1024M}
+ ibProfileDir={IB_PROFILE_DIR:-~/IB/}
+ cat<<EOF > $out/bin/ib-tws-c
+ #!$SHELL
+ if [[ \$1 == /* ]] || [[ \$1 == ./* ]]; then
+ IB_USER_PROFILE=\`realpath \$1\`
+ IB_USER_PROFILE_TITLE=\`basename \$1\`
+ else
+ if [[ x\$1 != "x" ]] && [[ \$1 != -* ]]; then
+ IB_USER_PROFILE=\`realpath \$$ibProfileDir\$1\`
+ IB_USER_PROFILE_TITLE=\$1
+ else
+ echo "ERROR: \"\$1\" is not a valid name of a profile."
+ exit 1
+ fi
+ fi
+ shift
+ if [ ! -e \$IB_USER_PROFILE ]; then mkdir -p \$IB_USER_PROFILE; fi
+ if [ ! -d \$IB_USER_PROFILE ]; then echo "ERROR: \$IB_USER_PROFILE must be a directory!" && echo 1; fi
+ if [ ! -e \$IB_USER_PROFILE/jts.ini ]; then cp ${ib-tws}/etc/ib/tws/jts.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/jts.ini; fi
+ if [ ! -e \$IB_USER_PROFILE/IBController.ini ]; then cp $out/etc/ib/controller/IBController.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/IBController.ini; fi
+ if [[ \$1 == "-q" ]]; then
+ if [ -f \$IB_USER_PROFILE/xpra/run ]; then
+ ${xpra}/bin/xpra stop \`cat \$IB_USER_PROFILE/xpra/run\` --socket-dir=\$IB_USER_PROFILE/xpra/ &> /dev/null
+ fi
+ exit 0
+ fi
+ if [[ \$1 == "-d" ]] && [ ! -f \$IB_USER_PROFILE/xpra/run ]; then
+ ( sleep infinity ) &
+ WAIT_DUMMY_PID=\$!
+ ( trap "" INT;
+ DISPLAYNUM=100
+ while [ -f /tmp/.X\$DISPLAYNUM-lock ]; do DISPLAYNUM=\$((\$DISPLAYNUM + 1)); done
+ mkdir -p \$IB_USER_PROFILE/xpra
+ cd \$IB_USER_PROFILE
+ nohup ${xpra}/bin/xpra start :\$DISPLAYNUM \
+ --socket-dir=\$IB_USER_PROFILE/xpra/ \
+ --start-child="echo -n :\$DISPLAYNUM > \$IB_USER_PROFILE/xpra/run \
+ && kill \$WAIT_DUMMY_PID &> /dev/null \
+ && ${jdk}/bin/java -cp $classpath \$$javaOptions ibcontroller.IBController \$IB_USER_PROFILE/IBController.ini" \
+ --exit-with-children \
+ --no-pulseaudio \
+ --no-mdns \
+ --no-notification \
+ --no-daemon \
+ &> \$IB_USER_PROFILE/xpra/server.log
+ rm -f \$IB_USER_PROFILE/xpra/run
+ rm -f /tmp/.X\$DISPLAYNUM-lock
+ ) &
+ wait \$WAIT_DUMMY_PID
+ exit 0
+ fi
+ if [ -f \$IB_USER_PROFILE/xpra/run ]; then
+ ${xpra}/bin/xpra attach \`cat \$IB_USER_PROFILE/xpra/run\` --socket-dir=\$IB_USER_PROFILE/xpra/ \
+ --windows \
+ --no-speaker \
+ --no-microphone \
+ --no-tray \
+ --title="\$IB_USER_PROFILE_TITLE: @title@" \
+ &> \$IB_USER_PROFILE/xpra/client.log
+ fi
+ EOF
+ chmod u+x $out/bin/ib-tws-c
+ cat<<EOF > $out/bin/ib-gw-c
+ #!$SHELL
+ if [[ \$1 == /* ]] || [[ \$1 == ./* ]]; then
+ IB_USER_PROFILE=\`realpath \$1\`
+ IB_USER_PROFILE_TITLE=\`basename \$1\`
+ else
+ if [[ x\$1 != "x" ]] && [[ \$1 != -* ]]; then
+ IB_USER_PROFILE=\`realpath \$$ibProfileDir\$1\`
+ IB_USER_PROFILE_TITLE=\$1
+ else
+ echo "ERROR: \"\$1\" is not a valid name of a profile."
+ exit 1
+ fi
+ fi
+ shift
+ if [ ! -e \$IB_USER_PROFILE ]; then mkdir -p \$IB_USER_PROFILE; fi
+ if [ ! -d \$IB_USER_PROFILE ]; then echo "ERROR: \$IB_USER_PROFILE must be a directory!" && echo 1; fi
+ if [ ! -e \$IB_USER_PROFILE/jts.ini ]; then cp ${ib-tws}/etc/ib/tws/jts.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/jts.ini; fi
+ if [ ! -e \$IB_USER_PROFILE/IBController.ini ]; then cp $out/etc/ib/controller/IBController.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/IBController.ini; fi
+ if [[ \$1 == "-q" ]]; then
+ if [ -f \$IB_USER_PROFILE/xpra/run ]; then
+ ${xpra}/bin/xpra stop \`cat \$IB_USER_PROFILE/xpra/run\` --socket-dir=\$IB_USER_PROFILE/xpra/ &> /dev/null
+ fi
+ exit 0
+ fi
+ if [[ \$1 == "-d" ]] && [ ! -f \$IB_USER_PROFILE/xpra/run ]; then
+ ( sleep infinity ) &
+ WAIT_DUMMY_PID=\$!
+ ( trap "" INT;
+ DISPLAYNUM=100
+ while [ -f /tmp/.X\$DISPLAYNUM-lock ]; do DISPLAYNUM=\$((\$DISPLAYNUM + 1)); done
+ mkdir -p \$IB_USER_PROFILE/xpra
+ cd \$IB_USER_PROFILE
+ nohup ${xpra}/bin/xpra start :\$DISPLAYNUM \
+ --socket-dir=\$IB_USER_PROFILE/xpra/ \
+ --start-child="echo -n :\$DISPLAYNUM > \$IB_USER_PROFILE/xpra/run \
+ && kill \$WAIT_DUMMY_PID &> /dev/null \
+ && ${jdk}/bin/java -cp $classpath \$$javaOptions ibcontroller.IBGatewayController \$IB_USER_PROFILE/IBController.ini" \
+ --exit-with-children \
+ --no-pulseaudio \
+ --no-mdns \
+ --no-notification \
+ --no-daemon \
+ &> \$IB_USER_PROFILE/xpra/server.log
+ rm -f \$IB_USER_PROFILE/xpra/run
+ rm -f /tmp/.X\$DISPLAYNUM-lock
+ ) &
+ wait \$WAIT_DUMMY_PID
+ exit 0
+ fi
+ if [ -f \$IB_USER_PROFILE/xpra/run ]; then
+ ${xpra}/bin/xpra attach \`cat \$IB_USER_PROFILE/xpra/run\` --socket-dir=\$IB_USER_PROFILE/xpra/ \
+ --windows \
+ --no-speaker \
+ --no-microphone \
+ --no-tray \
+ --title="\$IB_USER_PROFILE_TITLE: @title@" \
+ &> \$IB_USER_PROFILE/xpra/client.log
+ fi
+ EOF
+ chmod u+x $out/bin/ib-gw-c
+ '';
+
+
+ meta = with stdenv.lib; {
+ description = "Automation Controller for the Trader Work Station of Interactive Brokers";
+ homepage = "https://github.com/ib-controller/ib-controller";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.tstrobel ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/ib/tws/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/ib/tws/default.nix
new file mode 100644
index 000000000000..b8b31bed7c5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/ib/tws/default.nix
@@ -0,0 +1,96 @@
+{ stdenv, requireFile, jdk }:
+
+stdenv.mkDerivation rec {
+ version = "9542";
+ pname = "ib-tws";
+
+ src = requireFile rec {
+ name = "ibtws_${version}.jar";
+ message = ''
+ This nix expression requires that ${name} is already part of the store.
+ Download the TWS from
+ https://download2.interactivebrokers.com/download/unixmacosx_latest.jar,
+ rename the file to ${name}, and add it to the nix store with
+ "nix-prefetch-url file://\$PWD/${name}".
+ '';
+ sha256 = "1a2jiwwnr5g3xfba1a89c257bdbnq4zglri8hz021vk7f6s4rlrf";
+ };
+
+ phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+
+ buildInputs = [ jdk ];
+
+ buildPhase = ''
+ jar -xf IBJts/jts.jar
+ cp trader/common/images/ibapp_icon.gif ibtws_icon.gif
+ '';
+
+ unpackPhase = ''
+ jar xf ${src}
+ '';
+
+ installPhase = ''
+ mkdir -p $out $out/bin $out/etc/ib/tws $out/share/IBJts $out/share/icons
+ cp IBJts/*.jar $out/share/IBJts/.
+ cp IBJts/*.ini $out/etc/ib/tws/.
+ cp ibtws_icon.gif $out/share/icons/.
+ classpath=""
+ for jar in $out/share/IBJts/*.jar; do
+ classpath="$classpath:$jar"
+ done
+ # strings to use below; separated to avoid nix specific substitutions
+ javaOptions={JAVA_OPTIONS:-'-Xmx1024M -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.xrender=True -Dsun.java2d.opengl=False'}
+ # OTHER JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java
+ ibProfileDir={IB_PROFILE_DIR:-~/IB/}
+ cat<<EOF > $out/bin/ib-tws
+ #!$SHELL
+ if [[ \$1 == /* ]] || [[ \$1 == ./* ]]; then
+ IB_USER_PROFILE=\`realpath \$1\`
+ IB_USER_PROFILE_TITLE=\`basename \$1\`
+ else
+ if [[ x\$1 != "x" ]] && [[ \$1 != -* ]]; then
+ IB_USER_PROFILE=\`realpath \$$ibProfileDir\$1\`
+ IB_USER_PROFILE_TITLE=\$1
+ else
+ echo "ERROR: \"\$1\" is not a valid name of a profile."
+ exit 1
+ fi
+ fi
+ shift
+ if [ ! -e \$IB_USER_PROFILE ]; then mkdir -p \$IB_USER_PROFILE; fi
+ if [ ! -d \$IB_USER_PROFILE ]; then echo "ERROR: \$IB_USER_PROFILE must be a directory!" && echo 1; fi
+ if [ ! -e \$IB_USER_PROFILE/jts.ini ]; then cp $out/etc/ib/tws/jts.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/jts.ini; fi
+ ${jdk}/bin/java -cp $classpath \$$javaOptions jclient.LoginFrame \$IB_USER_PROFILE
+ EOF
+ chmod u+x $out/bin/ib-tws
+ cat<<EOF > $out/bin/ib-gw
+ #!$SHELL
+ if [[ \$1 == /* ]] || [[ \$1 == ./* ]]; then
+ IB_USER_PROFILE=\`realpath \$1\`
+ IB_USER_PROFILE_TITLE=\`basename \$1\`
+ else
+ if [[ x\$1 != "x" ]] && [[ \$1 != -* ]]; then
+ IB_USER_PROFILE=\`realpath \$$ibProfileDir\$1\`
+ IB_USER_PROFILE_TITLE=\$1
+ else
+ echo "ERROR: \"\$1\" is not a valid name of a profile."
+ exit 1
+ fi
+ fi
+ shift
+ if [ ! -e \$IB_USER_PROFILE ]; then mkdir -p \$IB_USER_PROFILE; fi
+ if [ ! -d \$IB_USER_PROFILE ]; then echo "ERROR: \$IB_USER_PROFILE must be a directory!" && echo 1; fi
+ if [ ! -e \$IB_USER_PROFILE/jts.ini ]; then cp $out/etc/ib/tws/jts.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/jts.ini; fi
+ ${jdk}/bin/java -cp $classpath -Dsun.java2d.noddraw=true \$$javaOptions ibgateway.GWClient \$IB_USER_PROFILE
+ EOF
+ chmod u+x $out/bin/ib-gw
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Trader Work Station of Interactive Brokers";
+ homepage = "https://www.interactivebrokers.com";
+ license = licenses.unfree;
+ maintainers = [ maintainers.tstrobel ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/impressive/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/impressive/default.nix
new file mode 100644
index 000000000000..ed8cc1dd50a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/impressive/default.nix
@@ -0,0 +1,69 @@
+{ fetchurl, stdenv, python2, makeWrapper, lib
+, SDL, ghostscript, pdftk, dejavu_fonts }:
+
+let
+ version = "0.12.1";
+ pythonEnv = python2.withPackages (ps: with ps; [pyopengl pygame pillow]);
+in stdenv.mkDerivation {
+ # This project was formerly known as KeyJNote.
+ # See http://keyj.emphy.de/apple-lawsuit/ for details.
+
+ pname = "impressive";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/impressive/Impressive-${version}.tar.gz";
+ sha256 = "1r7ihv41awnlnlry1kymb8fka053wdhzibfwcarn78rr3vs338vl";
+ };
+
+ buildInputs = [ makeWrapper pythonEnv ];
+
+ configurePhase = ''
+ # Let's fail at build time if the library we're substituting in doesn't
+ # exist/isn't marked as executable
+ test -x ${SDL}/lib/libSDL.so
+ sed -i "impressive.py" \
+ -e '/^__website__/a SDL_LIBRARY = "${SDL}/lib/libSDL.so"' \
+ -e 's/sdl = CDLL.*/sdl = CDLL(SDL_LIBRARY)/' \
+ -e 's^FontPath =.*/usr/.*$^FontPath = ["${dejavu_fonts}/share/fonts", ""]^'
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/bin" "$out/share/doc/impressive" "$out/share/man/man1"
+ mv impressive.py "$out/bin/impressive"
+ mv impressive.1 "$out/share/man/man1"
+ mv changelog.txt impressive.html license.txt "$out/share/doc/impressive"
+
+ wrapProgram "$out/bin/impressive" \
+ --prefix PATH ":" "${ghostscript}/bin:${pdftk}/bin"
+ '';
+
+ meta = {
+ description = "Impressive, an effect-rich presentation tool for PDFs";
+
+ longDescription = ''
+ Impressive is a program that displays presentation slides.
+ But unlike OpenOffice.org Impress or other similar
+ applications, it does so with style. Smooth alpha-blended
+ slide transitions are provided for the sake of eye candy, but
+ in addition to this, Impressive offers some unique tools that
+ are really useful for presentations. Read below if you want
+ to know more about these features.
+
+ Creating presentations for Impressive is very simple: You just
+ need to export a PDF file from your presentation software.
+ This means that you can create slides in the application of
+ your choice and use Impressive for displaying them. If your
+ application does not support PDF output, you can alternatively
+ use a set of pre-rendered image files – or you use Impressive
+ to make a slideshow with your favorite photos.
+ '';
+
+ homepage = "http://impressive.sourceforge.net/";
+
+ license = stdenv.lib.licenses.gpl2;
+
+ maintainers = with lib.maintainers; [ lheckemann ];
+ platforms = stdenv.lib.platforms.mesaPlatforms;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/jabref/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/jabref/default.nix
new file mode 100644
index 000000000000..03da2170b3d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/jabref/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem, wrapGAppsHook, gtk3, gsettings-desktop-schemas
+, zlib , libX11, libXext, libXi, libXrender, libXtst, libGL, alsaLib, libav, cairo, freetype, pango, gdk-pixbuf, glib }:
+
+stdenv.mkDerivation rec {
+ version = "5.1";
+ pname = "jabref";
+
+ src = fetchurl {
+ url = "https://github.com/JabRef/jabref/releases/download/v${version}/JabRef-${version}-portable_linux.tar.gz";
+ sha256 = "04f612byrq3agzy26byg1sgrjyhcpa8xfj0ssh8dl8d8vnhx9742";
+ };
+
+ preferLocalBuild = true;
+
+ desktopItem = makeDesktopItem {
+ comment = meta.description;
+ name = "jabref";
+ desktopName = "JabRef";
+ genericName = "Bibliography manager";
+ categories = "Office;";
+ icon = "jabref";
+ exec = "jabref";
+ };
+
+ nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+ buildInputs = [ gsettings-desktop-schemas ] ++ systemLibs;
+
+ systemLibs = [ gtk3 zlib libX11 libXext libXi libXrender libXtst libGL alsaLib libav cairo freetype pango gdk-pixbuf glib ];
+ systemLibPaths = stdenv.lib.makeLibraryPath systemLibs;
+
+ installPhase = ''
+ mkdir -p $out/share/java $out/share/icons
+
+ cp -r lib $out/lib
+
+ for f in $out/lib/runtime/bin/j*; do
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${ stdenv.lib.makeLibraryPath [ zlib ]}:$out/lib/runtime/lib:$out/lib/runtime/lib/server" $f
+ done
+
+ for f in $out/lib/runtime/lib/*.so; do
+ patchelf \
+ --set-rpath "${systemLibPaths}:$out/lib/runtime/lib:$out/lib/runtime/lib/server" $f
+ done
+
+ # patching the libs in the JImage runtime image is quite impossible as there is no documented way
+ # of rebuilding the image after it has been extracted
+ # the image format itself is "intendedly not documented" - maybe one of the reasons the
+ # devolpers constantly broke "jimage recreate" and dropped it in OpenJDK 9 Build 116 Early Access
+ # so, for now just copy the image and provide our lib paths through the wrapper
+
+ makeWrapper $out/lib/runtime/bin/java $out/bin/jabref \
+ --add-flags '-Djava.library.path=${systemLibPaths}' --add-flags "-p $out/lib/app -m org.jabref/org.jabref.JabRefLauncher" \
+ --run 'export LD_LIBRARY_PATH=${systemLibPaths}:$LD_LIBRARY_PATH'
+
+ cp -r ${desktopItem}/share/applications $out/share/
+
+ # we still need to unpack the runtime image to get the icon
+ mkdir unpacked
+ $out/lib/runtime/bin/jimage extract --dir=./unpacked lib/runtime/lib/modules
+ cp unpacked/org.jabref/icons/jabref.svg $out/share/icons/jabref.svg
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Open source bibliography reference manager";
+ homepage = "https://www.jabref.org";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/jameica/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/jameica/default.nix
new file mode 100644
index 000000000000..6dc124c6a200
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/jameica/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, ant, jdk, jre, gtk2, glib, xorg, Cocoa }:
+
+let
+ _version = "2.8.6";
+ _build = "455";
+ version = "${_version}-${_build}";
+ name = "jameica-${version}";
+
+ swtSystem = if stdenv.hostPlatform.system == "i686-linux" then "linux"
+ else if stdenv.hostPlatform.system == "x86_64-linux" then "linux64"
+ else if stdenv.hostPlatform.system == "x86_64-darwin" then "macos64"
+ else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+ desktopItem = makeDesktopItem {
+ name = "jameica";
+ exec = "jameica";
+ comment = "Free Runtime Environment for Java Applications.";
+ desktopName = "Jameica";
+ genericName = "Jameica";
+ categories = "Office;";
+ };
+in
+stdenv.mkDerivation rec {
+ inherit name version;
+
+ nativeBuildInputs = [ ant jdk makeWrapper ];
+ buildInputs = stdenv.lib.optionals stdenv.isLinux [ gtk2 glib xorg.libXtst ]
+ ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
+
+ src = fetchFromGitHub {
+ owner = "willuhn";
+ repo = "jameica";
+ rev = "V_${builtins.replaceStrings ["."] ["_"] _version}_BUILD_${_build}";
+ sha256 = "1pndklxsvixy6zyblqr62ki3pqaq8lfrzgasrvhclqxxh76gjlss";
+ };
+
+ # there is also a build.gradle, but it only seems to be used to vendor 3rd party libraries
+ # and is not able to build the application itself
+ buildPhase = ''
+ (cd build; ant -Dsystem.version=${version} init compile jar)
+ '';
+
+ installPhase = ''
+ mkdir -p $out/libexec $out/lib $out/bin $out/share/{applications,${name},java}/
+
+ # copy libraries except SWT
+ cp $(find lib -type f -iname '*.jar' | grep -ve 'swt/.*/swt.jar') $out/share/${name}/
+ # copy platform-specific SWT
+ cp lib/swt/${swtSystem}/swt.jar $out/share/${name}/
+
+ install -Dm644 releases/${_version}-*/jameica/jameica.jar $out/share/java/
+ install -Dm644 plugin.xml $out/share/java/
+ install -Dm644 build/jameica-icon.png $out/share/pixmaps/jameica.png
+ cp ${desktopItem}/share/applications/* $out/share/applications/
+
+ makeWrapper ${jre}/bin/java $out/bin/jameica \
+ --add-flags "-cp $out/share/java/jameica.jar:$out/share/${name}/* ${
+ stdenv.lib.optionalString stdenv.isDarwin ''-Xdock:name="Jameica" -XstartOnFirstThread''
+ } de.willuhn.jameica.Main" \
+ --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath buildInputs} \
+ --run "cd $out/share/java/"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.willuhn.de/products/jameica/";
+ description = "Free Runtime Environment for Java Applications";
+ longDescription = ''
+ Runtime Environment for plugins like Hibiscus (HBCI Online Banking),
+ SynTAX (accounting) and JVerein (club management).
+ '';
+ license = licenses.gpl2Plus;
+ platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+ maintainers = with maintainers; [ flokli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/keepnote/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/keepnote/default.nix
new file mode 100644
index 000000000000..cf1b5125adf9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/keepnote/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, python2Packages }:
+
+python2Packages.buildPythonApplication {
+ name = "keepnote-0.7.8";
+ namePrefix = "";
+
+ src = fetchurl {
+ url = "http://keepnote.org/download/keepnote-0.7.8.tar.gz";
+ sha256 = "0nhkkv1n0lqf3zn17pxg5cgryv1wwlj4hfmhixwd76rcy8gs45dh";
+ };
+
+ propagatedBuildInputs = with python2Packages; [ pyGtkGlade ];
+
+ # Testing fails.
+ doCheck = false;
+
+ meta = {
+ description = "Note taking application";
+ homepage = "http://keepnote.org";
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/kexi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/kexi/default.nix
new file mode 100644
index 000000000000..4900dafb08e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/kexi/default.nix
@@ -0,0 +1,57 @@
+{
+ mkDerivation, lib, fetchurl, fetchpatch, extra-cmake-modules, kdoctools,
+ boost, qttools, qtwebkit,
+ breeze-icons, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
+ kcrash, kguiaddons, ki18n, kiconthemes, kitemviews, kio, ktexteditor, ktextwidgets,
+ kwidgetsaddons, kxmlgui,
+ kdb, kproperty, kreport, lcms2, libmysqlclient, marble, postgresql
+}:
+
+mkDerivation rec {
+ pname = "kexi";
+ version = "3.2.0";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/src/${pname}-${version}.tar.xz";
+ sha256 = "1zy1q7q9rfdaws3rwf3my22ywkn6g747s3ixfcg9r80mm2g3z0bs";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+
+ buildInputs = [
+ boost qttools qtwebkit
+ breeze-icons karchive kcodecs kcompletion kconfig kconfigwidgets kcoreaddons
+ kcrash kguiaddons ki18n kiconthemes kitemviews kio ktexteditor ktextwidgets
+ kwidgetsaddons kxmlgui
+ kdb kproperty kreport lcms2 libmysqlclient marble postgresql
+ ];
+
+ propagatedUserEnvPkgs = [ kproperty ];
+
+ patches = [
+ # Changes in Qt 5.13 mean that QDate isn't exported from certain places,
+ # which the build was relying on. This patch explicitly imports QDate where
+ # needed.
+ # Should be unnecessary with kexi >= 3.3
+ (fetchpatch {
+ url = "https://cgit.kde.org/kexi.git/patch/src/plugins/forms/widgets/kexidbdatepicker.cpp?id=511d99b7745a6ce87a208bdbf69e631f1f136d53";
+ sha256 = "0m5cwq2v46gb1b12p7acck6dadvn7sw4xf8lkqikj9hvzq3r1dnj";
+ })
+ ];
+
+ meta = with lib; {
+ description = "A open source visual database applications creator, a long-awaited competitor for programs like MS Access or Filemaker";
+ longDescription = ''
+ Kexi is a visual database applications creator.
+ It can be used for creating database schemas,
+ inserting data, performing queries, and processing data.
+ Forms can be created to provide a custom interface to your data.
+ All database objects - tables, queries and forms - are stored in the database,
+ making it easy to share data and design.
+ '';
+ homepage = "http://kexi-project.org/";
+ maintainers = with maintainers; [ zraexy ];
+ platforms = platforms.linux;
+ license = with licenses; [ gpl2 lgpl2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/khronos/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/khronos/default.nix
new file mode 100644
index 000000000000..b5cb94cda9b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/khronos/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, vala
+, pkg-config
+, desktop-file-utils
+, pantheon
+, python3
+, glib
+, gtk3
+, json-glib
+, libgee
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "khronos";
+ version = "1.0.8";
+
+ src = fetchFromGitHub {
+ owner = "lainsce";
+ repo = pname;
+ rev = version;
+ sha256 = "0d5ma1d86lh2apagwrwk0d1v1cm3fifjivhf530nlznb67vi1x80";
+ };
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ meson
+ ninja
+ vala
+ pkg-config
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ json-glib
+ libgee
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Track each task's time in a simple inobtrusive way";
+ homepage = "https://github.com/lainsce/khronos";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/kmymoney/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/kmymoney/default.nix
new file mode 100644
index 000000000000..e15615f78a34
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/kmymoney/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, lib, fetchurl, doxygen, extra-cmake-modules, graphviz, kdoctools
+, wrapQtAppsHook
+
+, akonadi, alkimia, aqbanking, gmp, gwenhywfar, kactivities, karchive
+, kcmutils, kcontacts, kdewebkit, kdiagram, kholidays, kidentitymanagement
+, kitemmodels, libical, libofx, qgpgme
+
+, sqlcipher
+
+# Needed for running tests:
+, qtbase, xvfb_run
+
+, python2, python3Packages
+}:
+
+stdenv.mkDerivation rec {
+ pname = "kmymoney";
+ version = "5.1.0";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/kmymoney/${version}/src/${pname}-${version}.tar.xz";
+ sha256 = "0l8kywq77yaf1bqgdqswrai9ws6a2l11drg0wgyi7f8js7qnif9d";
+ };
+
+ # Hidden dependency that wasn't included in CMakeLists.txt:
+ NIX_CFLAGS_COMPILE = "-I${kitemmodels.dev}/include/KF5";
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [
+ doxygen extra-cmake-modules graphviz kdoctools python2
+ python3Packages.wrapPython wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ akonadi alkimia aqbanking gmp gwenhywfar kactivities karchive kcmutils
+ kcontacts kdewebkit kdiagram kholidays kidentitymanagement kitemmodels
+ libical libofx qgpgme
+ sqlcipher
+
+ # Put it into buildInputs so that CMake can find it, even though we patch
+ # it into the interface later.
+ python3Packages.weboob
+ ];
+
+ weboobPythonPath = [ python3Packages.weboob ];
+
+ postInstall = ''
+ buildPythonPath "$weboobPythonPath"
+ patchPythonScript "$out/share/kmymoney/weboob/kmymoneyweboob.py"
+
+ # Within the embedded Python interpreter, sys.argv is unavailable, so let's
+ # assign it to a dummy value so that the assignment of sys.argv[0] injected
+ # by patchPythonScript doesn't fail:
+ sed -i -e '1i import sys; sys.argv = [""]' \
+ "$out/share/kmymoney/weboob/kmymoneyweboob.py"
+ '';
+
+ doInstallCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+ installCheckInputs = [ xvfb_run ];
+ installCheckPhase =
+ lib.optionalString doInstallCheck ''
+ xvfb-run -s '-screen 0 1024x768x24' make test \
+ ARGS="-E '(reports-chart-test)'" # Test fails, so exclude it for now.
+ '';
+
+ meta = {
+ description = "Personal finance manager for KDE";
+ homepage = "https://kmymoney.org/";
+ platforms = lib.platforms.linux;
+ license = lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/ktimetracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/ktimetracker/default.nix
new file mode 100644
index 000000000000..8a40a3f4f69d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/ktimetracker/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, lib, fetchurl, cmake, pkgconfig, extra-cmake-modules,
+kconfig, kconfigwidgets, kdbusaddons, kdoctools, ki18n, kidletime,
+kjobwidgets, kio, knotifications, kwindowsystem, kxmlgui, ktextwidgets,
+kcalendarcore
+}:
+
+mkDerivation rec {
+ pname = "ktimetracker";
+ version = "5.0.1";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
+ sha256 = "0jp63fby052rapjjaz413b1wjz4qsgpxh82y2d75jzimch0n5s02";
+ };
+
+ nativeBuildInputs = [
+ cmake pkgconfig extra-cmake-modules
+ ];
+
+ buildInputs = [
+ kconfig kconfigwidgets kdbusaddons kdoctools ki18n kidletime kjobwidgets
+kio knotifications kwindowsystem kxmlgui ktextwidgets
+ kcalendarcore
+ ];
+
+ meta = with lib; {
+ description = "Todo management and time tracking application";
+ license = licenses.gpl2;
+ homepage = "https://userbase.kde.org/KTimeTracker";
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-autosync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-autosync/default.nix
new file mode 100644
index 000000000000..3a0f362dcf72
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-autosync/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, python3Packages, fetchFromGitHub, ledger, hledger, useLedger ? true, useHledger ? true }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "ledger-autosync";
+ version = "1.0.2";
+
+# no tests included in PyPI tarball
+ src = fetchFromGitHub {
+ owner = "egh";
+ repo = "ledger-autosync";
+ rev = "v${version}";
+ sha256 = "0sh32jcf8iznnbg1kqlrswbzfmn4h3gkw32q20xwxzz4935pz1qk";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ asn1crypto
+ beautifulsoup4
+ cffi
+ cryptography
+ entrypoints
+ fuzzywuzzy
+ idna
+ jeepney
+ keyring
+ lxml
+ mock
+ nose
+ ofxclient
+ ofxhome
+ ofxparse
+ pbr
+ pycparser
+ secretstorage
+ six
+ ] ++ stdenv.lib.optional useLedger ledger
+ ++ stdenv.lib.optional useHledger hledger;
+
+ # Checks require ledger as a python package,
+ # ledger does not support python3 while ledger-autosync requires it.
+ checkInputs = with python3Packages; [ ledger hledger nose mock ];
+ checkPhase = ''
+ nosetests -a generic -a ledger -a hledger
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/egh/ledger-autosync";
+ description = "OFX/CSV autosync for ledger and hledger";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ eamsden ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/Gemfile
new file mode 100644
index 000000000000..77e8024da3a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'ledger_web'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/Gemfile.lock
new file mode 100644
index 000000000000..b12a8600ed20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/Gemfile.lock
@@ -0,0 +1,61 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ backports (3.14.0)
+ database_cleaner (1.7.0)
+ diff-lcs (1.3)
+ directory_watcher (1.5.1)
+ ledger_web (1.5.2)
+ database_cleaner
+ directory_watcher (~> 1.5.1)
+ pg
+ rack (>= 1.3.6)
+ rspec
+ sequel
+ sinatra
+ sinatra-contrib
+ sinatra-session
+ multi_json (1.13.1)
+ mustermann (1.0.3)
+ pg (1.1.4)
+ rack (2.0.7)
+ rack-protection (2.0.5)
+ rack
+ rspec (3.8.0)
+ rspec-core (~> 3.8.0)
+ rspec-expectations (~> 3.8.0)
+ rspec-mocks (~> 3.8.0)
+ rspec-core (3.8.0)
+ rspec-support (~> 3.8.0)
+ rspec-expectations (3.8.3)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.8.0)
+ rspec-mocks (3.8.0)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.8.0)
+ rspec-support (3.8.0)
+ sequel (5.19.0)
+ sinatra (2.0.5)
+ mustermann (~> 1.0)
+ rack (~> 2.0)
+ rack-protection (= 2.0.5)
+ tilt (~> 2.0)
+ sinatra-contrib (2.0.5)
+ backports (>= 2.8.2)
+ multi_json
+ mustermann (~> 1.0)
+ rack-protection (= 2.0.5)
+ sinatra (= 2.0.5)
+ tilt (>= 1.3, < 3)
+ sinatra-session (1.0.0)
+ sinatra (>= 1.0)
+ tilt (2.0.9)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ ledger_web
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/default.nix
new file mode 100644
index 000000000000..ce8b401cb6b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/default.nix
@@ -0,0 +1,23 @@
+{ lib, bundlerApp, bundlerUpdateScript
+, withPostgresql ? true, postgresql
+, withSqlite ? false, sqlite
+}:
+
+bundlerApp {
+ pname = "ledger_web";
+ gemdir = ./.;
+ exes = [ "ledger_web" ];
+
+ buildInputs = lib.optional withPostgresql postgresql
+ ++ lib.optional withSqlite sqlite;
+
+ passthru.updateScript = bundlerUpdateScript "ledger-web";
+
+ meta = with lib; {
+ description = "A web frontend to the Ledger CLI tool";
+ homepage = "https://github.com/peterkeen/ledger-web";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg manveru nicknovitski ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/gemset.nix
new file mode 100644
index 000000000000..71a959c0a86a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger-web/gemset.nix
@@ -0,0 +1,211 @@
+{
+ backports = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17j5pf0b69bkn043wi4xd530ky53jbbnljr4bsjzlm4k8bzlknfn";
+ type = "gem";
+ };
+ version = "3.14.0";
+ };
+ database_cleaner = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ diff-lcs = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ directory_watcher = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fwc2shba7vks262ind74y3g76qp7znjq5q8b2dvza0yidgywhcq";
+ type = "gem";
+ };
+ version = "1.5.1";
+ };
+ ledger_web = {
+ dependencies = ["database_cleaner" "directory_watcher" "pg" "rack" "rspec" "sequel" "sinatra" "sinatra-contrib" "sinatra-session"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0i4vagaiyayymlr41rsy4lg2cl1r011ib0ql9dgjadfy6imb4kqh";
+ type = "gem";
+ };
+ version = "1.5.2";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ mustermann = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ pg = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ rack = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z90vflxbgjy2n84r7mbyax3i2vyvvrxxrf86ljzn5rw65jgnn2i";
+ type = "gem";
+ };
+ version = "2.0.7";
+ };
+ rack-protection = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk";
+ type = "gem";
+ };
+ version = "2.0.5";
+ };
+ rspec = {
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15ppasvb9qrscwlyjz67ppw1lnxiqnkzx5vkx1bd8x5n3dhikxc3";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-core = {
+ dependencies = ["rspec-support"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p1s5bnbqp3sxk67y0fh0x884jjym527r0vgmhbm81w7aq6b7l4p";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-expectations = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c4gs5ybf7km0qshdm92p38zvg32n1j2kr5fgs2icacz7xf2y6fy";
+ type = "gem";
+ };
+ version = "3.8.3";
+ };
+ rspec-mocks = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06y508cjqycb4yfhxmb3nxn0v9xqf17qbd46l1dh4xhncinr4fyp";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-support = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p3m7drixrlhvj2zpc38b11x145bvm311x6f33jjcxmvcm0wq609";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ sequel = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lwkc9kf4jn1x1ph4mgy4saiw2dirq6fhnkpyd0zq8rj1d0nay9a";
+ type = "gem";
+ };
+ version = "5.19.0";
+ };
+ sinatra = {
+ dependencies = ["mustermann" "rack" "rack-protection" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gasgn5f15myv08k10i16p326pchxjsy37pgqfw0xm66kcc5d7ry";
+ type = "gem";
+ };
+ version = "2.0.5";
+ };
+ sinatra-contrib = {
+ dependencies = ["backports" "multi_json" "mustermann" "rack-protection" "sinatra" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "093blvpfy5n7s8knaav9a4pm4j7kck9zidwz942qqd4g99fnk443";
+ type = "gem";
+ };
+ version = "2.0.5";
+ };
+ sinatra-session = {
+ dependencies = ["sinatra"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "183xl8i4d2hc03afd1i52gwn2xi3vzrv02g22llhfy5wkmm44gmq";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ tilt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz";
+ type = "gem";
+ };
+ version = "2.0.9";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/ledger/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger/default.nix
new file mode 100644
index 000000000000..543545de2631
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/ledger/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, lib, fetchFromGitHub, cmake, boost, gmp, mpfr, libedit, python
+, texinfo, gnused, usePython ? true }:
+
+stdenv.mkDerivation rec {
+ pname = "ledger";
+ version = "3.2.1";
+
+ src = fetchFromGitHub {
+ owner = "ledger";
+ repo = "ledger";
+ rev = "v${version}";
+ sha256 = "0x6jxwss3wwzbzlwmnwb8yzjk8f9wfawif4f1b74z2qg6hc4r7f6";
+ };
+
+ outputs = [ "out" "dev" ];
+
+ buildInputs = [
+ (boost.override { enablePython = usePython; })
+ gmp mpfr libedit python gnused
+ ];
+
+ nativeBuildInputs = [ cmake texinfo ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ "-DBUILD_DOCS:BOOL=ON"
+ (lib.optionalString usePython "-DUSE_PYTHON=true")
+ ];
+
+ # by default, it will query the python interpreter for it's sitepackages location
+ # however, that would write to a different nixstore path, pass our own sitePackages location
+ prePatch = lib.optionalString usePython ''
+ substituteInPlace src/CMakeLists.txt \
+ --replace 'DESTINATION ''${Python_SITEARCH}' 'DESTINATION "${python.sitePackages}"'
+ '';
+
+ installTargets = [ "doc" "install" ];
+
+ meta = with lib; {
+ homepage = "https://ledger-cli.org/";
+ description = "A double-entry accounting system with a command-line reporting interface";
+ license = licenses.bsd3;
+
+ longDescription = ''
+ Ledger is a powerful, double-entry accounting system that is accessed
+ from the UNIX command-line. This may put off some users, as there is
+ no flashy UI, but for those who want unparalleled reporting access to
+ their data, there really is no alternative.
+ '';
+
+ platforms = platforms.all;
+ maintainers = with maintainers; [ jwiegley ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/README.md b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/README.md
new file mode 100644
index 000000000000..a084572d2177
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/README.md
@@ -0,0 +1,9 @@
+LibreOffice
+===========
+
+To generate `src-$VARIANT/download.nix`, i.e. list of additional sources that
+the libreoffice build process needs to download:
+
+ nix-shell gen-shell.nix --argstr variant VARIANT --run generate
+
+Where VARIANT is either `still` or `fresh`.
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/default.nix
new file mode 100644
index 000000000000..a8c0d4117a33
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/default.nix
@@ -0,0 +1,431 @@
+{ stdenv, fetchurl, fetchpatch, lib, pam, python3, libxslt, perl, ArchiveZip, gettext
+, IOCompress, zlib, libjpeg, expat, freetype, libwpd
+, libxml2, db, curl, fontconfig, libsndfile, neon
+, bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which
+, icu, boost, jdk, ant, cups, xorg, libcmis, fontforge
+, openssl, gperf, cppunit, poppler, util-linux
+, librsvg, libGLU, libGL, bsh, CoinMP, libwps, libabw, libmysqlclient
+, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
+, libwpg, dbus-glib, clucene_core, libcdr, lcms
+, unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
+, fontsConf, pkgconfig, bluez5, libtool, carlito
+, libatomic_ops, graphite2, harfbuzz, libodfgen, libzmf
+, librevenge, libe-book, libmwaw, glm, gst_all_1
+, gdb, commonsLogging, librdf_rasqal, wrapGAppsHook
+, gnome3, glib, ncurses, epoxy, gpgme
+, langs ? [ "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "zh-CN" ]
+, withHelp ? true
+, kdeIntegration ? false, mkDerivation ? null, qtbase ? null, qtx11extras ? null
+, ki18n ? null, kconfig ? null, kcoreaddons ? null, kio ? null, kwindowsystem ? null
+, wrapQtAppsHook ? null
+, variant ? "fresh"
+} @ args:
+
+assert builtins.elem variant [ "fresh" "still" ];
+
+let
+ importVariant = f: import (./. + "/src-${variant}/${f}");
+
+ primary-src = importVariant "primary.nix" { inherit fetchurl; };
+
+ inherit (primary-src) major minor subdir version;
+
+ langsSpaces = lib.concatStringsSep " " langs;
+
+ mkDrv = if kdeIntegration then mkDerivation else stdenv.mkDerivation;
+
+ srcs = {
+ third_party =
+ map (x : ((fetchurl {inherit (x) url sha256 name;}) // {inherit (x) md5name md5;}))
+ (importVariant "download.nix" ++ [
+ (rec {
+ name = "unowinreg.dll";
+ url = "https://dev-www.libreoffice.org/extern/${md5name}";
+ sha256 = "1infwvv1p6i21scywrldsxs22f62x85mns4iq8h6vr6vlx3fdzga";
+ md5 = "185d60944ea767075d27247c3162b3bc";
+ md5name = "${md5}-${name}";
+ })
+ ]);
+
+ translations = primary-src.translations;
+ help = primary-src.help;
+ };
+in (mkDrv rec {
+ pname = "libreoffice";
+ inherit version;
+
+ inherit (primary-src) src;
+
+ outputs = [ "out" "dev" ];
+
+ # For some reason librdf_redland sometimes refers to rasqal.h instead
+ # of rasqal/rasqal.h
+ NIX_CFLAGS_COMPILE = [
+ "-I${librdf_rasqal}/include/rasqal"
+ ] ++ lib.optionals stdenv.isx86_64 [ "-mno-fma" "-mno-avx" ]
+ # https://bugs.documentfoundation.org/show_bug.cgi?id=78174#c10
+ ++ [ "-fno-visibility-inlines-hidden" ];
+
+ patches = [
+ ./xdg-open-brief.patch
+ ];
+
+ tarballPath = "external/tarballs";
+
+ postUnpack = ''
+ mkdir -v $sourceRoot/${tarballPath}
+ '' + (lib.flip lib.concatMapStrings srcs.third_party (f: ''
+ ln -sfv ${f} $sourceRoot/${tarballPath}/${f.md5name}
+ ln -sfv ${f} $sourceRoot/${tarballPath}/${f.name}
+ ''))
+ + ''
+ ln -sv ${srcs.help} $sourceRoot/${tarballPath}/${srcs.help.name}
+ ln -svf ${srcs.translations} $sourceRoot/${tarballPath}/${srcs.translations.name}
+ tar -xf ${srcs.help}
+ tar -xf ${srcs.translations}
+ '';
+
+ ### QT/KDE
+ #
+ # We have to resort to the ugly patching of configure.ac as it assumes that
+ # the first directory that contains headers and libraries during the check
+ # contains all the relevant headers/libs which doesn't work with both as they
+ # are in multiple directories due to each having their own derivation.
+ postPatch = let
+ inc = e: path:
+ "${lib.getDev e}/include/KF5/${path}";
+ libs = list:
+ lib.concatMapStringsSep " " (e: "-L${lib.getLib e}/lib") list;
+ in ''
+ substituteInPlace shell/source/unix/exec/shellexec.cxx \
+ --replace /usr/bin/xdg-open ${if kdeIntegration then "kde-open5" else "xdg-open"}
+
+ # configure checks for header 'gpgme++/gpgmepp_version.h',
+ # and if it is found (no matter where) uses a hardcoded path
+ # in what presumably is an effort to make it possible to write
+ # '#include <context.h>' instead of '#include <gpgmepp/context.h>'.
+ #
+ # Fix this path to point to where the headers can actually be found instead.
+ substituteInPlace configure.ac --replace \
+ 'GPGMEPP_CFLAGS=-I/usr/include/gpgme++' \
+ 'GPGMEPP_CFLAGS=-I${gpgme.dev}/include/gpgme++'
+ '' + lib.optionalString kdeIntegration ''
+ substituteInPlace configure.ac \
+ --replace '$QT5INC' ${qtbase.dev}/include \
+ --replace '$QT5LIB' ${qtbase.out}/lib \
+ --replace '-I$qt5_incdir ' '-I${qtx11extras.dev}/include '\
+ --replace '-L$qt5_libdir ' '${libs [ qtbase qtx11extras ]} ' \
+ --replace '$KF5INC' ${kcoreaddons.dev}/include \
+ --replace '$KF5LIB' ${kcoreaddons.out}/lib \
+ --replace '$kf5_incdir/KCore' ${inc kcoreaddons "KCore"} \
+ --replace '$kf5_incdir/KI18n' ${inc ki18n "KI18n"} \
+ --replace '$kf5_incdir/KConfig' ${inc kconfig "KConfig"} \
+ --replace '$kf5_incdir/KWindow' ${inc kwindowsystem "KWindow"} \
+ --replace '$kf5_incdir/KIO' ${inc kio "KIO"} \
+ --replace '-L$kf5_libdir ' '${libs [ kconfig kcoreaddons ki18n kio kwindowsystem ]} '
+ '';
+
+ dontUseCmakeConfigure = true;
+ dontUseCmakeBuildDir = true;
+
+ preConfigure = ''
+ configureFlagsArray=(
+ "--with-parallelism=$NIX_BUILD_CORES"
+ "--with-lang=${langsSpaces}"
+ );
+
+ chmod a+x ./bin/unpack-sources
+ patchShebangs .
+
+ # This is required as some cppunittests require fontconfig configured
+ cp "${fontsConf}" fonts.conf
+ sed -e '/include/i<include>${carlito}/etc/fonts/conf.d</include>' -i fonts.conf
+ export FONTCONFIG_FILE="$PWD/fonts.conf"
+
+ NOCONFIGURE=1 ./autogen.sh
+ '';
+
+ postConfigure =
+ # fetch_Download_item tries to interpret the name as a variable name, let it do so...
+ ''
+ sed -e '1ilibreoffice-translations-${version}.tar.xz=libreoffice-translations-${version}.tar.xz' -i Makefile
+ sed -e '1ilibreoffice-help-${version}.tar.xz=libreoffice-help-${version}.tar.xz' -i Makefile
+ ''
+ # Test fixups
+ # May need to be revisited/pruned, left alone for now.
+ + ''
+ # unit test sd_tiledrendering seems to be fragile
+ # https://nabble.documentfoundation.org/libreoffice-5-0-failure-in-CUT-libreofficekit-tiledrendering-td4150319.html
+ echo > ./sd/CppunitTest_sd_tiledrendering.mk
+ sed -e /CppunitTest_sd_tiledrendering/d -i sd/Module_sd.mk
+ # Pivot chart tests. Fragile.
+ sed -e '/CPPUNIT_TEST(testRoundtrip)/d' -i chart2/qa/extras/PivotChartTest.cxx
+ sed -e '/CPPUNIT_TEST(testPivotTableMedianODS)/d' -i sc/qa/unit/pivottable_filters_test.cxx
+ # one more fragile test?
+ sed -e '/CPPUNIT_TEST(testTdf96536);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
+ # this I actually hate, this should be a data consistency test!
+ sed -e '/CPPUNIT_TEST(testTdf115013);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
+ # rendering-dependent test
+ sed -e '/CPPUNIT_ASSERT_EQUAL(11148L, pOleObj->GetLogicRect().getWidth());/d ' -i sc/qa/unit/subsequent_filters-test.cxx
+ # tilde expansion in path processing checks the existence of $HOME
+ sed -e 's@OString sSysPath("~/tmp");@& return ; @' -i sal/qa/osl/file/osl_File.cxx
+ # fails on systems using ZFS, see https://github.com/NixOS/nixpkgs/issues/19071
+ sed -e '/CPPUNIT_TEST(getSystemPathFromFileURL_005);/d' -i './sal/qa/osl/file/osl_File.cxx'
+ # rendering-dependent: on my computer the test table actually doesn't fit…
+ # interesting fact: test disabled on macOS by upstream
+ sed -re '/DECLARE_WW8EXPORT_TEST[(]testTableKeep, "tdf91083.odt"[)]/,+5d' -i ./sw/qa/extras/ww8export/ww8export.cxx
+ # Segfault on DB access — maybe temporarily acceptable for a new version of Fresh?
+ sed -e 's/CppunitTest_dbaccess_empty_stdlib_save//' -i ./dbaccess/Module_dbaccess.mk
+ # one more fragile test?
+ sed -e '/CPPUNIT_TEST(testTdf77014);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
+ # rendering-dependent tests
+ sed -e '/CPPUNIT_TEST(testCustomColumnWidthExportXLSX)/d' -i sc/qa/unit/subsequent_export-test.cxx
+ sed -e '/CPPUNIT_TEST(testColumnWidthExportFromODStoXLSX)/d' -i sc/qa/unit/subsequent_export-test.cxx
+ sed -e '/CPPUNIT_TEST(testChartImportXLS)/d' -i sc/qa/unit/subsequent_filters-test.cxx
+ sed -e '/CPPUNIT_TEST(testLegacyCellAnchoredRotatedShape)/d' -i sc/qa/unit/filters-test.cxx
+ sed -zre 's/DesktopLOKTest::testGetFontSubset[^{]*[{]/& return; /' -i desktop/qa/desktop_lib/test_desktop_lib.cxx
+ sed -z -r -e 's/DECLARE_OOXMLEXPORT_TEST[(]testFlipAndRotateCustomShape,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
+ sed -z -r -e 's/DECLARE_OOXMLEXPORT_TEST[(]tdf105490_negativeMargins,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
+ sed -z -r -e 's/DECLARE_OOXMLIMPORT_TEST[(]testTdf112443,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+ sed -z -r -e 's/DECLARE_RTFIMPORT_TEST[(]testTdf108947,[^)]*[)].[{]/& return;/' -i sw/qa/extras/rtfimport/rtfimport.cxx
+ # not sure about this fragile test
+ sed -z -r -e 's/DECLARE_OOXMLEXPORT_TEST[(]testTDF87348,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
+ # bunch of new Fresh failures. Sigh.
+ sed -e '/CPPUNIT_TEST(testDocumentLayout);/d' -i './sd/qa/unit/import-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testErrorBarDataRangeODS);/d' -i './chart2/qa/extras/chart2export.cxx'
+ sed -e '/CPPUNIT_TEST(testLabelStringODS);/d' -i './chart2/qa/extras/chart2export.cxx'
+ sed -e '/CPPUNIT_TEST(testAxisNumberFormatODS);/d' -i './chart2/qa/extras/chart2export.cxx'
+ sed -e '/CPPUNIT_TEST(testBackgroundImage);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testFdo84043);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf97630);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf80020);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf62176);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTransparentBackground);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testEmbeddedPdf);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testEmbeddedText);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf98477);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testAuthorField);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf50499);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf100926);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testPageWithTransparentBackground);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTextRotation);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf113818);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf119629);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf113822);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(test);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testConditionalFormatExportODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testProtectionKeyODS_UTF16LErtlSHA1);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testProtectionKeyODS_UTF8SHA1);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testProtectionKeyODS_UTF8SHA256ODF12);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testProtectionKeyODS_UTF8SHA256W3C);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testProtectionKeyODS_XL_SHA1);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testColorScaleExportODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testDataBarExportODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testNamedRangeBugfdo62729);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testRichTextExportODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testFormulaRefSheetNameODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testCellValuesExportODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testCellNoteExportODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testFormatExportODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testEmbeddedChartODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testCellAnchoredGroupXLS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testCeilingFloorODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testRelativePathsODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testSheetProtectionODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testSwappedOutImageExport);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testLinkedGraphicRT);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testImageWithSpecialID);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testAbsNamedRangeHTML);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testMoveCellAnchoredShapesODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testRefStringUnspecified);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testHeaderImageODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf88657ODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testExponentWithoutSignFormatXLSX);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testHiddenRepeatedRowsODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testHyperlinkTargetFrameODS);/d' -i './sc/qa/unit/subsequent_export-test.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf105739);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
+ sed -e '/CPPUNIT_TEST(testPageBitmapWithTransparency);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf115005);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf115005_FallBack_Images_On);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf115005_FallBack_Images_Off);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf44774);/d' -i './sd/qa/unit/misc-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf38225);/d' -i './sd/qa/unit/misc-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testAuthorField);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
+ sed -e '/CPPUNIT_TEST(testAuthorField);/d' -i './sd/qa/unit/export-tests.cxx'
+ sed -e '/CPPUNIT_TEST(testFdo85554);/d' -i './sw/qa/extras/uiwriter/uiwriter.cxx'
+ sed -e '/CPPUNIT_TEST(testEmbeddedDataSource);/d' -i './sw/qa/extras/uiwriter/uiwriter.cxx'
+ sed -e '/CPPUNIT_TEST(testTdf96479);/d' -i './sw/qa/extras/uiwriter/uiwriter.cxx'
+ sed -e '/CPPUNIT_TEST(testInconsistentBookmark);/d' -i './sw/qa/extras/uiwriter/uiwriter.cxx'
+ sed -e "s/DECLARE_SW_ROUNDTRIP_TEST(\([_a-zA-Z0-9.]\+\)[, ].*, *\([_a-zA-Z0-9.]\+\))/class \\1: public \\2 { public: void verify() override; }; void \\1::verify() /" -i "sw/qa/extras/ooxmlexport/ooxmlexport9.cxx"
+ sed -e "s/DECLARE_SW_ROUNDTRIP_TEST(\([_a-zA-Z0-9.]\+\)[, ].*, *\([_a-zA-Z0-9.]\+\))/class \\1: public \\2 { public: void verify() override; }; void \\1::verify() /" -i "sw/qa/extras/ooxmlexport/ooxmlencryption.cxx"
+ sed -e "s/DECLARE_SW_ROUNDTRIP_TEST(\([_a-zA-Z0-9.]\+\)[, ].*, *\([_a-zA-Z0-9.]\+\))/class \\1: public \\2 { public: void verify() override; }; void \\1::verify() /" -i "sw/qa/extras/odfexport/odfexport.cxx"
+ sed -e "s/DECLARE_SW_ROUNDTRIP_TEST(\([_a-zA-Z0-9.]\+\)[, ].*, *\([_a-zA-Z0-9.]\+\))/class \\1: public \\2 { public: void verify() override; }; void \\1::verify() /" -i "sw/qa/extras/unowriter/unowriter.cxx"
+ ''
+ # This to avoid using /lib:/usr/lib at linking
+ + ''
+ sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
+
+ find -name "*.cmd" -exec sed -i s,/lib:/usr/lib,, {} \;
+ '';
+
+ makeFlags = [ "SHELL=${bash}/bin/bash" ];
+
+ enableParallelBuilding = true;
+
+ buildPhase = ''
+ make build-nocheck
+ '';
+
+ doCheck = true;
+
+ # It installs only things to $out/lib/libreoffice
+ postInstall = ''
+ mkdir -p $out/bin $out/share/desktop
+
+ mkdir -p "$out/share/gsettings-schemas/collected-for-libreoffice/glib-2.0/schemas/"
+
+ for a in sbase scalc sdraw smath swriter simpress soffice unopkg; do
+ ln -s $out/lib/libreoffice/program/$a $out/bin/$a
+ done
+
+ ln -s $out/bin/soffice $out/bin/libreoffice
+ ln -s $out/lib/libreoffice/share/xdg $out/share/applications
+
+ for f in $out/share/applications/*.desktop; do
+ substituteInPlace "$f" \
+ --replace "Exec=libreofficedev${major}.${minor}" "Exec=libreoffice" \
+ --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
+ done
+
+ cp -r sysui/desktop/icons "$out/share"
+ sed -re 's@Icon=libreoffice(dev)?[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
+
+ qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH")
+
+ mkdir -p $dev
+ cp -r include $dev
+ '' + lib.optionalString kdeIntegration ''
+ for prog in $out/bin/*
+ do
+ wrapQtApp $prog
+ done
+ '';
+
+ dontWrapQtApps = true;
+
+ configureFlags = [
+ (if withHelp then "" else "--without-help")
+ "--with-boost=${boost.dev}"
+ "--with-boost-libdir=${boost.out}/lib"
+ "--with-beanshell-jar=${bsh}"
+ "--with-vendor=NixOS"
+ "--with-commons-logging-jar=${commonsLogging}/share/java/commons-logging-1.2.jar"
+ "--disable-report-builder"
+ "--disable-online-update"
+ "--enable-python=system"
+ "--enable-dbus"
+ "--enable-release-build"
+ "--enable-epm"
+ "--with-jdk-home=${jdk.home}"
+ "--with-ant-home=${ant}/lib/ant"
+ "--with-system-cairo"
+ "--with-system-libs"
+ "--with-system-headers"
+ "--with-system-openssl"
+ "--with-system-libabw"
+ "--with-system-libcmis"
+ "--with-system-libwps"
+ "--with-system-openldap"
+ "--with-system-coinmp"
+
+ # Without these, configure does not finish
+ "--without-junit"
+
+ # Schema files for validation are not included in the source tarball
+ "--without-export-validation"
+
+ # We do tarball prefetching ourselves
+ "--disable-fetch-external"
+ "--enable-build-opensymbol"
+
+ # I imagine this helps. Copied from go-oo.
+ # Modified on every upgrade, though
+ "--disable-odk"
+ "--disable-postgresql-sdbc"
+ "--disable-firebird-sdbc"
+ "--without-fonts"
+ "--without-myspell-dicts"
+ "--without-doxygen"
+
+ # TODO: package these as system libraries
+ "--with-system-beanshell"
+ "--without-system-hsqldb"
+ "--without-system-altlinuxhyph"
+ "--without-system-lpsolve"
+ "--without-system-libetonyek"
+ "--without-system-libfreehand"
+ "--without-system-liblangtag"
+ "--without-system-libmspub"
+ "--without-system-libnumbertext"
+ "--without-system-libpagemaker"
+ "--without-system-libstaroffice"
+ "--without-system-libepubgen"
+ "--without-system-libqxp"
+ "--without-system-mdds" # we have mdds but our version is too new
+ # https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
+ "--without-system-orcus"
+ "--without-system-qrcodegen"
+ "--without-system-xmlsec"
+ ] ++ lib.optionals kdeIntegration [
+ "--enable-kf5"
+ "--enable-qt5"
+ "--enable-gtk3-kde5"
+ ] ++ lib.optional (lib.versionOlder version "6.4") "--disable-gtk"; # disables GTK2, GTK3 is still there
+
+ checkPhase = ''
+ make unitcheck
+ make slowcheck
+ '';
+
+ nativeBuildInputs = [
+ gdb fontforge autoconf automake bison pkgconfig libtool
+ ] ++ lib.optional (!kdeIntegration) wrapGAppsHook
+ ++ lib.optional kdeIntegration wrapQtAppsHook;
+
+ buildInputs = with xorg;
+ [ ant ArchiveZip boost cairo clucene_core
+ IOCompress cppunit cups curl db dbus-glib expat file flex fontconfig
+ freetype getopt gperf gtk3
+ hunspell icu jdk lcms libcdr libexttextcat unixODBC libjpeg
+ libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
+ libXaw libXext libXi libXinerama libxml2 libxslt libXtst
+ libXdmcp libpthreadstubs libGLU libGL mythes
+ glib libmysqlclient
+ neon nspr nss openldap openssl pam perl pkgconfig poppler
+ python3 sane-backends unzip which zip zlib
+ mdds bluez5 libcmis libwps libabw libzmf
+ libxshmfence libatomic_ops graphite2 harfbuzz gpgme util-linux
+ librevenge libe-book libmwaw glm ncurses epoxy
+ libodfgen CoinMP librdf_rasqal gnome3.adwaita-icon-theme gettext
+ ]
+ ++ (with gst_all_1; [
+ gstreamer
+ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly
+ gst-libav
+ ])
+ ++ lib.optional kdeIntegration [ qtbase qtx11extras kcoreaddons kio ];
+
+ passthru = {
+ inherit srcs jdk;
+ };
+
+ requiredSystemFeatures = [ "big-parallel" ];
+
+ meta = with lib; {
+ description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org";
+ homepage = "https://libreoffice.org/";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ raskin ];
+ platforms = platforms.linux;
+ };
+}).overrideAttrs ((importVariant "override.nix") (args // { inherit kdeIntegration; }))
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/download-list-builder.sh b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/download-list-builder.sh
new file mode 100644
index 000000000000..c054e2c72cbe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/download-list-builder.sh
@@ -0,0 +1,3 @@
+source $stdenv/setup
+
+tar --extract --file=$src libreoffice-$version/download.lst -O > $out
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/gen-shell.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/gen-shell.nix
new file mode 100644
index 000000000000..7429bb0cb382
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/gen-shell.nix
@@ -0,0 +1,29 @@
+{ pkgs ? (import <nixpkgs> {}), variant }:
+
+with pkgs;
+
+let
+
+ primary-src = callPackage (./. + "/src-${variant}/primary.nix") {};
+
+in
+
+stdenv.mkDerivation {
+ name = "generate-libreoffice-srcs-shell";
+
+ buildCommand = "exit 1";
+
+ downloadList = stdenv.mkDerivation {
+ name = "libreoffice-${primary-src.version}-download-list";
+ inherit (primary-src) src version;
+ builder = ./download-list-builder.sh;
+ };
+
+ buildInputs = [ python3 ];
+
+ shellHook = ''
+ function generate {
+ python3 generate-libreoffice-srcs.py ${variant} > src-${variant}/download.nix
+ }
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py
new file mode 100755
index 000000000000..c4d15927f380
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py
@@ -0,0 +1,328 @@
+#!/usr/bin/env python3
+
+"""
+Converts the LibreOffice `download.lst` file into a Nix expression.
+
+Requires an environment variable named `downloadList` identifying the path
+of the input file, and writes the result to stdout.
+
+todo - Ideally we would move as much as possible into derivation dependencies.
+"""
+import collections, itertools, json, re, subprocess, sys, os
+
+def main():
+
+ packages = list(get_packages())
+
+ for x in packages:
+ print(x, file=sys.stderr)
+
+ print('[')
+
+ for x in packages:
+
+ md5 = x['md5']
+ upstream_sha256 = x['sha256']
+ if upstream_sha256:
+ hash = upstream_sha256
+ hashtype = 'sha256'
+ else:
+ hash = md5
+ hashtype = 'md5'
+ tarball = x['tarball']
+
+ url = construct_url(x)
+ print('url: {}'.format(url), file=sys.stderr)
+
+ path = download(url, tarball, hash, hashtype)
+ print('path: {}'.format(path), file=sys.stderr)
+
+ sha256 = get_sha256(path)
+ print('sha256: {}'.format(sha256), file=sys.stderr)
+
+ print(' {')
+ print(' name = "{}";'.format(tarball))
+ print(' url = "{}";'.format(url))
+ print(' sha256 = "{}";'.format(sha256))
+ print(' md5 = "{}";'.format(md5))
+ print(' md5name = "{}-{}";'.format(md5 or upstream_sha256,tarball))
+ print(' }')
+
+ print(']')
+
+
+def construct_url(x):
+ if x['brief']:
+ return 'https://dev-www.libreoffice.org/src/{}{}'.format(
+ x.get('subdir', ''), x['tarball'])
+ else:
+ return 'https://dev-www.libreoffice.org/src/{}{}-{}'.format(
+ x.get('subdir', ''), x['md5'], x['tarball'])
+
+
+def download(url, name, hash, hashtype):
+ cmd = ['nix-prefetch-url', url, hash, '--print-path',
+ '--type', hashtype, '--name', name]
+ proc = subprocess.run(cmd, stdout=subprocess.PIPE, check=True,
+ universal_newlines=True)
+ return proc.stdout.split('\n')[1].strip()
+
+
+def get_sha256(path):
+ cmd = ['sha256sum', path]
+ proc = subprocess.run(cmd, stdout=subprocess.PIPE, check=True,
+ universal_newlines=True)
+ return proc.stdout.split(' ')[0].strip()
+
+
+def get_packages():
+ """
+ All of the package data: What's parsed from download.lst,
+ plus our additions.
+ """
+ return apply_additions(get_packages_from_download_list(),
+ get_additions())
+
+
+def get_additions():
+ """
+ A mapping from package name (the all-caps identifiers used in
+ `download.lst`) to a dict of additional attributes to set on the package.
+ """
+ with open('./libreoffice-srcs-additions.json') as f:
+ return json.load(f)
+
+
+def apply_additions(xs, additions):
+ for x in xs:
+ yield dict_merge([x,
+ additions.get(x['name'], {})])
+
+
+def get_packages_from_download_list():
+ """
+ The result of parsing `download.lst`: A list of dicts containing keys
+ 'name', 'tarball', 'md5', 'brief'.
+ """
+
+ def lines():
+ for x in sub_symbols(parse_lines(get_lines())):
+
+ interpretation = interpret(x)
+
+ if interpretation == 'unrecognized':
+ print_skipped_line(x)
+ else:
+ yield dict_merge([x,
+ interpretation])
+
+ def cluster(xs):
+ """
+ Groups lines according to their order within the file, to support
+ packages that are listed in `download.lst` more than once.
+ """
+ keys = ['tarball', 'md5', 'sha256', 'brief']
+ a = {k: [x for x in xs if k in x['attrs']] for k in keys}
+ return zip(*[a[k] for k in keys])
+
+ def packages():
+ for (name, group) in groupby(lines(), lambda x: x['name']):
+ for xs in cluster(group):
+ yield {'name': name,
+ 'attrs': dict_merge(x['attrs'] for x in xs),
+ 'index': min(x['index'] for x in xs)}
+
+ for x in sorted(packages(), key=lambda x: x['index']):
+ yield dict_merge([{'name': x['name']},
+ x['attrs']])
+
+
+def dict_merge(xs):
+ """
+ >>> dict_merge([{1: 2}, {3: 4}, {3: 5}])
+ {1: 2, 3: 4}
+ """
+ return dict(collections.ChainMap(*xs))
+
+
+def groupby(xs, f):
+ """
+ >>> groupby([1, 2, 3, 4], lambda x: x % 2)
+ [(0, [2, 4]), (1, [1, 3])]
+ """
+ for (k, iter) in itertools.groupby(sorted(xs, key=f), f):
+ group = list(iter)
+ yield (f(group[0]), group)
+
+
+def get_lines():
+
+ download_list = os.getenv('downloadList')
+
+ with open(download_list) as f:
+ return f.read().splitlines()
+
+
+def print_skipped_line(x):
+
+ print('Skipped line {}: {}'.format(x['index'],
+ x['original']),
+ file=sys.stderr)
+
+
+def parse_lines(lines):
+ """
+ Input: List of strings (the lines from `download.lst`
+ Output: Iterator of dicts with keys 'key', 'value', and 'index'
+ """
+ for (index, line) in enumerate(lines):
+
+ x = { 'index': index, 'original': line }
+
+ result = parse_line(line)
+
+ if result == 'nothing':
+ pass
+ elif result == 'unrecognized':
+ print_skipped_line(x)
+ else:
+ yield dict_merge([x,
+ result])
+
+
+def parse_line(line):
+ """
+ Input: A string
+ Output: One of 1. A dict with keys 'key', 'value'
+ 2. 'nothing' (if the line contains no information)
+ 2. 'unrecognized' (if parsing failed)
+ """
+
+ if re.match('\s*(#.*)?$', line):
+ return 'nothing'
+
+ match = re.match('\s*export\s+([^:\s]+)\s*:=\s*(.*)$', line)
+
+ if match:
+ return {
+ 'key': match.group(1),
+ 'value': match.group(2).strip()
+ }
+ else:
+ return 'unrecognized'
+
+
+def sub_symbols(xs):
+ """
+ Do substitution of variables across all lines.
+
+ >>> sub_symbols([{'key': 'a', 'value': 'x'},
+ ... {'key': 'c': 'value': '$(a)yz'}])
+ [{'key': 'a', 'value': 'x'}, {'key': 'c': 'value': 'xyz'}]
+ """
+
+ xs = list(xs)
+
+ symbols = {x['key']: x for x in xs}
+
+ def get_value(k):
+ x = symbols.get(k)
+ return x['value'] if x is not None else ''
+
+ for x in xs:
+ yield dict_merge([{'value': sub_str(x['value'], get_value)},
+ x])
+
+
+def sub_str(string, func):
+ """
+ Do substitution of variables in a single line.
+
+ >>> sub_str("x = $(x)", lambda k: {'x': 'a'}[k])
+ "x = a"
+ """
+
+ def func2(m):
+ x = m.group(1)
+ result = func(x)
+ return result if result is not None else x
+
+ return re.sub(r'\$\(([^\$\(\)]+)\)', func2, string)
+
+
+def interpret(x):
+ """
+ Input: Dict with keys 'key' and 'value'
+ Output: One of 1. Dict with keys 'name' and 'attrs'
+ 2. 'unrecognized' (if interpretation failed)
+ """
+ for f in [interpret_md5, interpret_sha256, interpret_tarball_with_md5, interpret_tarball, interpret_jar]:
+ result = f(x)
+ if result is not None:
+ return result
+
+ return 'unrecognized'
+
+
+def interpret_md5(x):
+ """
+ >>> interpret_md5("ODFGEN_MD5SUM", "32572ea48d9021bbd6fa317ddb697abc")
+ {'name': 'ODFGEN', 'attrs': {'md5': '32572ea48d9021bbd6fa317ddb697abc'}}
+ """
+
+ match = re.match('^(.*)_MD5SUM$', x['key'])
+
+ if match:
+ return {'name': match.group(1),
+ 'attrs': {'md5': x['value'], 'sha256': ''}}
+
+def interpret_sha256(x):
+ match = re.match('^(.*)_SHA256SUM$', x['key'])
+
+ if match:
+ return {'name': match.group(1),
+ 'attrs': {'sha256': x['value'], 'md5': ''}}
+
+def interpret_tarball(x):
+ """
+ >>> interpret_tarball("FREEHAND_TARBALL", "libfreehand-0.1.1.tar.bz2")
+ {'name': 'FREEHAND',
+ 'attrs': {'tarball': 'libfreehand-0.1.1.tar.bz2', 'brief': True}}
+ """
+
+ match = re.match('^(.*)_TARBALL$', x['key'])
+
+ if match:
+ return {'name': match.group(1),
+ 'attrs': {'tarball': x['value'], 'brief': True}}
+
+def interpret_jar(x):
+ match = re.match('^(.*)_JAR$', x['key'])
+
+ if match:
+ return {'name': match.group(1),
+ 'attrs': {'tarball': x['value'], 'brief': True}}
+
+
+def interpret_tarball_with_md5(x):
+ """
+ >>> interpret_tarball_with_md5("CLUCENE_TARBALL",\
+ "48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz")
+ {'name': 'CLUCENE',
+ 'attrs': {'tarball': 'clucene-core-2.3.3.4.tar.gz',
+ 'md5': '48d647fbd8ef8889e5a7f422c1bfda94', 'brief': False}}
+ """
+
+ match = {'key': re.match('^(.*)_(TARBALL|JAR)$', x['key']),
+ 'value': re.match('(?P<md5>[0-9a-fA-F]{32})-(?P<tarball>.+)$',
+ x['value'])}
+
+ if match['key'] and match['value']:
+ return {'name': match['key'].group(1),
+ 'attrs': {'tarball': match['value'].group('tarball'),
+ 'md5': match['value'].group('md5'),
+ 'sha256': '',
+ 'brief': False}}
+
+
+main()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-additions.json b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-additions.json
new file mode 100644
index 000000000000..5b4363189f7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-additions.json
@@ -0,0 +1,5 @@
+{
+ "LIBGLTF": {"subdir": "libgltf/"},
+ "ODFVALIDATOR": {"subdir": "../extern/"},
+ "OFFICEOTRON": {"subdir": "../extern/"}
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
new file mode 100644
index 000000000000..e26081a02980
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -0,0 +1,884 @@
+[
+ {
+ name = "libabw-0.1.3.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libabw-0.1.3.tar.xz";
+ sha256 = "e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed";
+ md5 = "";
+ md5name = "e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed-libabw-0.1.3.tar.xz";
+ }
+ {
+ name = "commons-logging-1.2-src.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/commons-logging-1.2-src.tar.gz";
+ sha256 = "49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81";
+ md5 = "";
+ md5name = "49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81-commons-logging-1.2-src.tar.gz";
+ }
+ {
+ name = "apr-1.5.2.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/apr-1.5.2.tar.gz";
+ sha256 = "1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb";
+ md5 = "";
+ md5name = "1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb-apr-1.5.2.tar.gz";
+ }
+ {
+ name = "apr-util-1.5.4.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/apr-util-1.5.4.tar.gz";
+ sha256 = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19";
+ md5 = "";
+ md5name = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19-apr-util-1.5.4.tar.gz";
+ }
+ {
+ name = "boost_1_71_0.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/boost_1_71_0.tar.xz";
+ sha256 = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543";
+ md5 = "";
+ md5name = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543-boost_1_71_0.tar.xz";
+ }
+ {
+ name = "breakpad.zip";
+ url = "https://dev-www.libreoffice.org/src/breakpad.zip";
+ sha256 = "7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9";
+ md5 = "";
+ md5name = "7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9-breakpad.zip";
+ }
+ {
+ name = "bsh-2.0b6-src.zip";
+ url = "https://dev-www.libreoffice.org/src/beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
+ sha256 = "9e93c73e23aff644b17dfff656444474c14150e7f3b38b19635e622235e01c96";
+ md5 = "beeca87be45ec87d241ddd0e1bad80c1";
+ md5name = "beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
+ }
+ {
+ name = "bzip2-1.0.6.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+ sha256 = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd";
+ md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
+ md5name = "00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+ }
+ {
+ name = "cairo-1.16.0.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/cairo-1.16.0.tar.xz";
+ sha256 = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331";
+ md5 = "";
+ md5name = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331-cairo-1.16.0.tar.xz";
+ }
+ {
+ name = "libcdr-0.1.6.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libcdr-0.1.6.tar.xz";
+ sha256 = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861";
+ md5 = "";
+ md5name = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861-libcdr-0.1.6.tar.xz";
+ }
+ {
+ name = "clucene-core-2.3.3.4.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+ sha256 = "ddfdc433dd8ad31b5c5819cc4404a8d2127472a3b720d3e744e8c51d79732eab";
+ md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
+ md5name = "48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+ }
+ {
+ name = "dtoa-20180411.tgz";
+ url = "https://dev-www.libreoffice.org/src/dtoa-20180411.tgz";
+ sha256 = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4";
+ md5 = "";
+ md5name = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4-dtoa-20180411.tgz";
+ }
+ {
+ name = "libcmis-0.5.2.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libcmis-0.5.2.tar.xz";
+ sha256 = "d7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2";
+ md5 = "";
+ md5name = "d7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2-libcmis-0.5.2.tar.xz";
+ }
+ {
+ name = "CoinMP-1.7.6.tgz";
+ url = "https://dev-www.libreoffice.org/src/CoinMP-1.7.6.tgz";
+ sha256 = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f";
+ md5 = "";
+ md5name = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f-CoinMP-1.7.6.tgz";
+ }
+ {
+ name = "cppunit-1.15.1.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/cppunit-1.15.1.tar.gz";
+ sha256 = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7";
+ md5 = "";
+ md5name = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7-cppunit-1.15.1.tar.gz";
+ }
+ {
+ name = "converttexttonumber-1-5-0.oxt";
+ url = "https://dev-www.libreoffice.org/src/1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
+ sha256 = "71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3";
+ md5 = "1f467e5bb703f12cbbb09d5cf67ecf4a";
+ md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
+ }
+ {
+ name = "curl-7.71.0.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/curl-7.71.0.tar.xz";
+ sha256 = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772";
+ md5 = "";
+ md5name = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772-curl-7.71.0.tar.xz";
+ }
+ {
+ name = "libe-book-0.1.3.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libe-book-0.1.3.tar.xz";
+ sha256 = "7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9";
+ md5 = "";
+ md5name = "7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9-libe-book-0.1.3.tar.xz";
+ }
+ {
+ name = "libepoxy-1.5.3.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libepoxy-1.5.3.tar.xz";
+ sha256 = "002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d";
+ md5 = "";
+ md5name = "002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d-libepoxy-1.5.3.tar.xz";
+ }
+ {
+ name = "epm-3.7.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+ sha256 = "b3fc4c5445de6c9a801504a3ea3efb2d4ea9d5a622c9427e716736e7713ddb91";
+ md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
+ md5name = "3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+ }
+ {
+ name = "libepubgen-0.1.1.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libepubgen-0.1.1.tar.xz";
+ sha256 = "03e084b994cbeffc8c3dd13303b2cb805f44d8f2c3b79f7690d7e3fc7f6215ad";
+ md5 = "";
+ md5name = "03e084b994cbeffc8c3dd13303b2cb805f44d8f2c3b79f7690d7e3fc7f6215ad-libepubgen-0.1.1.tar.xz";
+ }
+ {
+ name = "libetonyek-0.1.9.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libetonyek-0.1.9.tar.xz";
+ sha256 = "e61677e8799ce6e55b25afc11aa5339113f6a49cff031f336e32fa58635b1a4a";
+ md5 = "";
+ md5name = "e61677e8799ce6e55b25afc11aa5339113f6a49cff031f336e32fa58635b1a4a-libetonyek-0.1.9.tar.xz";
+ }
+ {
+ name = "expat-2.2.8.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/expat-2.2.8.tar.bz2";
+ sha256 = "9a130948b05a82da34e4171d5f5ae5d321d9630277af02c8fa51e431f6475102";
+ md5 = "";
+ md5name = "9a130948b05a82da34e4171d5f5ae5d321d9630277af02c8fa51e431f6475102-expat-2.2.8.tar.bz2";
+ }
+ {
+ name = "Firebird-3.0.0.32483-0.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/Firebird-3.0.0.32483-0.tar.bz2";
+ sha256 = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860";
+ md5 = "";
+ md5name = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860-Firebird-3.0.0.32483-0.tar.bz2";
+ }
+ {
+ name = "fontconfig-2.13.91.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/fontconfig-2.13.91.tar.gz";
+ sha256 = "19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5";
+ md5 = "";
+ md5name = "19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5-fontconfig-2.13.91.tar.gz";
+ }
+ {
+ name = "crosextrafonts-20130214.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+ sha256 = "c48d1c2fd613c9c06c959c34da7b8388059e2408d2bb19845dc3ed35f76e4d09";
+ md5 = "368f114c078f94214a308a74c7e991bc";
+ md5name = "368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+ }
+ {
+ name = "crosextrafonts-carlito-20130920.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+ sha256 = "4bd12b6cbc321c1cf16da76e2c585c925ce956a08067ae6f6c64eff6ccfdaf5a";
+ md5 = "c74b7223abe75949b4af367942d96c7a";
+ md5name = "c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+ }
+ {
+ name = "dejavu-fonts-ttf-2.37.zip";
+ url = "https://dev-www.libreoffice.org/src/33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip";
+ sha256 = "7576310b219e04159d35ff61dd4a4ec4cdba4f35c00e002a136f00e96a908b0a";
+ md5 = "33e1e61fab06a547851ed308b4ffef42";
+ md5name = "33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip";
+ }
+ {
+ name = "GentiumBasic_1102.zip";
+ url = "https://dev-www.libreoffice.org/src/1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip";
+ sha256 = "2f1a2c5491d7305dffd3520c6375d2f3e14931ee35c6d8ae1e8f098bf1a7b3cc";
+ md5 = "1725634df4bb3dcb1b2c91a6175f8789";
+ md5name = "1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip";
+ }
+ {
+ name = "liberation-narrow-fonts-ttf-1.07.6.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/liberation-narrow-fonts-ttf-1.07.6.tar.gz";
+ sha256 = "8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3";
+ md5 = "";
+ md5name = "8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3-liberation-narrow-fonts-ttf-1.07.6.tar.gz";
+ }
+ {
+ name = "liberation-fonts-ttf-2.00.4.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/liberation-fonts-ttf-2.00.4.tar.gz";
+ sha256 = "c40e95fc5e0ecb73d4be565ae2afc1114e2bc7dc5253e00ee92d8fd6cc4adf45";
+ md5 = "";
+ md5name = "c40e95fc5e0ecb73d4be565ae2afc1114e2bc7dc5253e00ee92d8fd6cc4adf45-liberation-fonts-ttf-2.00.4.tar.gz";
+ }
+ {
+ name = "LinLibertineG-20120116.zip";
+ url = "https://dev-www.libreoffice.org/src/e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+ sha256 = "54adcb2bc8cac0927a647fbd9362f45eff48130ce6e2379dc3867643019e08c5";
+ md5 = "e7a384790b13c29113e22e596ade9687";
+ md5name = "e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+ }
+ {
+ name = "source-code-pro-2.030R-ro-1.050R-it.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/907d6e99f241876695c19ff3db0b8923-source-code-pro-2.030R-ro-1.050R-it.tar.gz";
+ sha256 = "09466dce87653333f189acd8358c60c6736dcd95f042dee0b644bdcf65b6ae2f";
+ md5 = "907d6e99f241876695c19ff3db0b8923";
+ md5name = "907d6e99f241876695c19ff3db0b8923-source-code-pro-2.030R-ro-1.050R-it.tar.gz";
+ }
+ {
+ name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+ sha256 = "e7bc9a1fec787a529e49f5a26b93dcdcf41506449dfc70f92cdef6d17eb6fb61";
+ md5 = "edc4d741888bc0d38e32dbaa17149596";
+ md5name = "edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+ }
+ {
+ name = "source-serif-pro-3.000R.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/source-serif-pro-3.000R.tar.gz";
+ sha256 = "826a2b784d5cdb4c2bbc7830eb62871528360a61a52689c102a101623f1928e3";
+ md5 = "";
+ md5name = "826a2b784d5cdb4c2bbc7830eb62871528360a61a52689c102a101623f1928e3-source-serif-pro-3.000R.tar.gz";
+ }
+ {
+ name = "EmojiOneColor-SVGinOT-1.3.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/EmojiOneColor-SVGinOT-1.3.tar.gz";
+ sha256 = "d1a08f7c10589f22740231017694af0a7a270760c8dec33d8d1c038e2be0a0c7";
+ md5 = "";
+ md5name = "d1a08f7c10589f22740231017694af0a7a270760c8dec33d8d1c038e2be0a0c7-EmojiOneColor-SVGinOT-1.3.tar.gz";
+ }
+ {
+ name = "noto-fonts-20171024.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/noto-fonts-20171024.tar.gz";
+ sha256 = "29acc15a4c4d6b51201ba5d60f303dfbc2e5acbfdb70413c9ae1ed34fa259994";
+ md5 = "";
+ md5name = "29acc15a4c4d6b51201ba5d60f303dfbc2e5acbfdb70413c9ae1ed34fa259994-noto-fonts-20171024.tar.gz";
+ }
+ {
+ name = "culmus-0.131.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/culmus-0.131.tar.gz";
+ sha256 = "dcf112cfcccb76328dcfc095f4d7c7f4d2f7e48d0eed5e78b100d1d77ce2ed1b";
+ md5 = "";
+ md5name = "dcf112cfcccb76328dcfc095f4d7c7f4d2f7e48d0eed5e78b100d1d77ce2ed1b-culmus-0.131.tar.gz";
+ }
+ {
+ name = "libre-hebrew-1.0.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/libre-hebrew-1.0.tar.gz";
+ sha256 = "f596257c1db706ce35795b18d7f66a4db99d427725f20e9384914b534142579a";
+ md5 = "";
+ md5name = "f596257c1db706ce35795b18d7f66a4db99d427725f20e9384914b534142579a-libre-hebrew-1.0.tar.gz";
+ }
+ {
+ name = "alef-1.001.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/alef-1.001.tar.gz";
+ sha256 = "b98b67602a2c8880a1770f0b9e37c190f29a7e2ade5616784f0b89fbdb75bf52";
+ md5 = "";
+ md5name = "b98b67602a2c8880a1770f0b9e37c190f29a7e2ade5616784f0b89fbdb75bf52-alef-1.001.tar.gz";
+ }
+ {
+ name = "Amiri-0.111.zip";
+ url = "https://dev-www.libreoffice.org/src/Amiri-0.111.zip";
+ sha256 = "1fbfccced6348b5db2c1c21d5b319cd488e14d055702fa817a0f6cb83d882166";
+ md5 = "";
+ md5name = "1fbfccced6348b5db2c1c21d5b319cd488e14d055702fa817a0f6cb83d882166-Amiri-0.111.zip";
+ }
+ {
+ name = "ttf-kacst_2.01+mry.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/ttf-kacst_2.01+mry.tar.gz";
+ sha256 = "dca00f5e655f2f217a766faa73a81f542c5c204aa3a47017c3c2be0b31d00a56";
+ md5 = "";
+ md5name = "dca00f5e655f2f217a766faa73a81f542c5c204aa3a47017c3c2be0b31d00a56-ttf-kacst_2.01+mry.tar.gz";
+ }
+ {
+ name = "ReemKufi-0.7.zip";
+ url = "https://dev-www.libreoffice.org/src/ReemKufi-0.7.zip";
+ sha256 = "f60c6508d209ce4236d2d7324256c2ffddd480be7e3d6023770b93dc391a605f";
+ md5 = "";
+ md5name = "f60c6508d209ce4236d2d7324256c2ffddd480be7e3d6023770b93dc391a605f-ReemKufi-0.7.zip";
+ }
+ {
+ name = "Scheherazade-2.100.zip";
+ url = "https://dev-www.libreoffice.org/src/Scheherazade-2.100.zip";
+ sha256 = "251c8817ceb87d9b661ce1d5b49e732a0116add10abc046be4b8ba5196e149b5";
+ md5 = "";
+ md5name = "251c8817ceb87d9b661ce1d5b49e732a0116add10abc046be4b8ba5196e149b5-Scheherazade-2.100.zip";
+ }
+ {
+ name = "libfreehand-0.1.2.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libfreehand-0.1.2.tar.xz";
+ sha256 = "0e422d1564a6dbf22a9af598535425271e583514c0f7ba7d9091676420de34ac";
+ md5 = "";
+ md5name = "0e422d1564a6dbf22a9af598535425271e583514c0f7ba7d9091676420de34ac-libfreehand-0.1.2.tar.xz";
+ }
+ {
+ name = "freetype-2.9.1.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/freetype-2.9.1.tar.bz2";
+ sha256 = "db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d";
+ md5 = "";
+ md5name = "db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d-freetype-2.9.1.tar.bz2";
+ }
+ {
+ name = "glm-0.9.9.7.zip";
+ url = "https://dev-www.libreoffice.org/src/glm-0.9.9.7.zip";
+ sha256 = "c5e167c042afd2d7ad642ace6b643863baeb33880781983563e1ab68a30d3e95";
+ md5 = "";
+ md5name = "c5e167c042afd2d7ad642ace6b643863baeb33880781983563e1ab68a30d3e95-glm-0.9.9.7.zip";
+ }
+ {
+ name = "gpgme-1.9.0.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/gpgme-1.9.0.tar.bz2";
+ sha256 = "1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb";
+ md5 = "";
+ md5name = "1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb-gpgme-1.9.0.tar.bz2";
+ }
+ {
+ name = "graphite2-minimal-1.3.14.tgz";
+ url = "https://dev-www.libreoffice.org/src/graphite2-minimal-1.3.14.tgz";
+ sha256 = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc";
+ md5 = "";
+ md5name = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc-graphite2-minimal-1.3.14.tgz";
+ }
+ {
+ name = "harfbuzz-2.6.0.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/harfbuzz-2.6.0.tar.xz";
+ sha256 = "9cf7d117548265f95ca884e2f4c9fafaf4e17d45a67b11107147b79eed76c966";
+ md5 = "";
+ md5name = "9cf7d117548265f95ca884e2f4c9fafaf4e17d45a67b11107147b79eed76c966-harfbuzz-2.6.0.tar.xz";
+ }
+ {
+ name = "hsqldb_1_8_0.zip";
+ url = "https://dev-www.libreoffice.org/src/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+ sha256 = "d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370";
+ md5 = "17410483b5b5f267aa18b7e00b65e6e0";
+ md5name = "17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+ }
+ {
+ name = "hunspell-1.7.0.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/hunspell-1.7.0.tar.gz";
+ sha256 = "57be4e03ae9dd62c3471f667a0d81a14513e314d4d92081292b90435944ff951";
+ md5 = "";
+ md5name = "57be4e03ae9dd62c3471f667a0d81a14513e314d4d92081292b90435944ff951-hunspell-1.7.0.tar.gz";
+ }
+ {
+ name = "hyphen-2.8.8.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+ sha256 = "304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705";
+ md5 = "5ade6ae2a99bc1e9e57031ca88d36dad";
+ md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+ }
+ {
+ name = "icu4c-67_1-src.tgz";
+ url = "https://dev-www.libreoffice.org/src/icu4c-67_1-src.tgz";
+ sha256 = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc";
+ md5 = "";
+ md5name = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc-icu4c-67_1-src.tgz";
+ }
+ {
+ name = "icu4c-67_1-data.zip";
+ url = "https://dev-www.libreoffice.org/src/icu4c-67_1-data.zip";
+ sha256 = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e";
+ md5 = "";
+ md5name = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e-icu4c-67_1-data.zip";
+ }
+ {
+ name = "flow-engine-0.9.4.zip";
+ url = "https://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+ sha256 = "233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd";
+ md5 = "ba2930200c9f019c2d93a8c88c651a0f";
+ md5name = "ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+ }
+ {
+ name = "flute-1.1.6.zip";
+ url = "https://dev-www.libreoffice.org/src/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+ sha256 = "1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133";
+ md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
+ md5name = "d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+ }
+ {
+ name = "libbase-1.1.6.zip";
+ url = "https://dev-www.libreoffice.org/src/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+ sha256 = "75c80359c9ce343c20aab8a36a45cb3b9ee7c61cf92c13ae45399d854423a9ba";
+ md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
+ md5name = "eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+ }
+ {
+ name = "libfonts-1.1.6.zip";
+ url = "https://dev-www.libreoffice.org/src/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+ sha256 = "e0531091787c0f16c83965fdcbc49162c059d7f0c64669e7f119699321549743";
+ md5 = "3bdf40c0d199af31923e900d082ca2dd";
+ md5name = "3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+ }
+ {
+ name = "libformula-1.1.7.zip";
+ url = "https://dev-www.libreoffice.org/src/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+ sha256 = "5826d1551bf599b85742545f6e01a0079b93c1b2c8434bf409eddb3a29e4726b";
+ md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+ md5name = "3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+ }
+ {
+ name = "liblayout-0.2.10.zip";
+ url = "https://dev-www.libreoffice.org/src/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+ sha256 = "e1fb87f3f7b980d33414473279615c4644027e013012d156efa538bc2b031772";
+ md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+ md5name = "db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+ }
+ {
+ name = "libloader-1.1.6.zip";
+ url = "https://dev-www.libreoffice.org/src/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+ sha256 = "3d853b19b1d94a6efa69e7af90f7f2b09ecf302913bee3da796c15ecfebcfac8";
+ md5 = "97b2d4dba862397f446b217e2b623e71";
+ md5name = "97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+ }
+ {
+ name = "librepository-1.1.6.zip";
+ url = "https://dev-www.libreoffice.org/src/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+ sha256 = "abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095";
+ md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+ md5name = "8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+ }
+ {
+ name = "libserializer-1.1.6.zip";
+ url = "https://dev-www.libreoffice.org/src/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+ sha256 = "05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343";
+ md5 = "f94d9870737518e3b597f9265f4e9803";
+ md5name = "f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+ }
+ {
+ name = "libxml-1.1.7.zip";
+ url = "https://dev-www.libreoffice.org/src/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+ sha256 = "7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66";
+ md5 = "ace6ab49184e329db254e454a010f56d";
+ md5name = "ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+ }
+ {
+ name = "sacjava-1.3.zip";
+ url = "https://dev-www.libreoffice.org/src/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+ sha256 = "085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045";
+ md5 = "39bb3fcea1514f1369fcfc87542390fd";
+ md5name = "39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+ }
+ {
+ name = "libjpeg-turbo-1.5.3.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/libjpeg-turbo-1.5.3.tar.gz";
+ sha256 = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523";
+ md5 = "";
+ md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
+ }
+ {
+ name = "language-subtag-registry-2020-04-01.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2020-04-01.tar.bz2";
+ sha256 = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da";
+ md5 = "";
+ md5name = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da-language-subtag-registry-2020-04-01.tar.bz2";
+ }
+ {
+ name = "JLanguageTool-1.7.0.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2";
+ sha256 = "48c87e41636783bba438b65fd895821e369ed139e1465fac654323ad93c5a82d";
+ md5 = "b63e6340a02ff1cacfeadb2c42286161";
+ md5name = "b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2";
+ }
+ {
+ name = "lcms2-2.9.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/lcms2-2.9.tar.gz";
+ sha256 = "48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20";
+ md5 = "";
+ md5name = "48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20-lcms2-2.9.tar.gz";
+ }
+ {
+ name = "libassuan-2.5.1.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/libassuan-2.5.1.tar.bz2";
+ sha256 = "47f96c37b4f2aac289f0bc1bacfa8bd8b4b209a488d3d15e2229cb6cc9b26449";
+ md5 = "";
+ md5name = "47f96c37b4f2aac289f0bc1bacfa8bd8b4b209a488d3d15e2229cb6cc9b26449-libassuan-2.5.1.tar.bz2";
+ }
+ {
+ name = "libatomic_ops-7.6.8.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/libatomic_ops-7.6.8.tar.gz";
+ sha256 = "1d6a279edf81767e74d2ad2c9fce09459bc65f12c6525a40b0cb3e53c089f665";
+ md5 = "";
+ md5name = "1d6a279edf81767e74d2ad2c9fce09459bc65f12c6525a40b0cb3e53c089f665-libatomic_ops-7.6.8.tar.gz";
+ }
+ {
+ name = "libeot-0.01.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/libeot-0.01.tar.bz2";
+ sha256 = "cf5091fa8e7dcdbe667335eb90a2cfdd0a3fe8f8c7c8d1ece44d9d055736a06a";
+ md5 = "";
+ md5name = "cf5091fa8e7dcdbe667335eb90a2cfdd0a3fe8f8c7c8d1ece44d9d055736a06a-libeot-0.01.tar.bz2";
+ }
+ {
+ name = "libexttextcat-3.4.5.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libexttextcat-3.4.5.tar.xz";
+ sha256 = "13fdbc9d4c489a4d0519e51933a1aa21fe3fb9eb7da191b87f7a63e82797dac8";
+ md5 = "";
+ md5name = "13fdbc9d4c489a4d0519e51933a1aa21fe3fb9eb7da191b87f7a63e82797dac8-libexttextcat-3.4.5.tar.xz";
+ }
+ {
+ name = "libffi-3.3.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/libffi-3.3.tar.gz";
+ sha256 = "72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056";
+ md5 = "";
+ md5name = "72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056-libffi-3.3.tar.gz";
+ }
+ {
+ name = "libgpg-error-1.27.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/libgpg-error-1.27.tar.bz2";
+ sha256 = "4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2";
+ md5 = "";
+ md5name = "4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2-libgpg-error-1.27.tar.bz2";
+ }
+ {
+ name = "liblangtag-0.6.2.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/liblangtag-0.6.2.tar.bz2";
+ sha256 = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e";
+ md5 = "";
+ md5name = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e-liblangtag-0.6.2.tar.bz2";
+ }
+ {
+ name = "libnumbertext-1.0.6.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libnumbertext-1.0.6.tar.xz";
+ sha256 = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57";
+ md5 = "";
+ md5name = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57-libnumbertext-1.0.6.tar.xz";
+ }
+ {
+ name = "ltm-1.0.zip";
+ url = "https://dev-www.libreoffice.org/src/ltm-1.0.zip";
+ sha256 = "083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483";
+ md5 = "";
+ md5name = "083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483-ltm-1.0.zip";
+ }
+ {
+ name = "xmlsec1-1.2.30.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/xmlsec1-1.2.30.tar.gz";
+ sha256 = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8";
+ md5 = "";
+ md5name = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8-xmlsec1-1.2.30.tar.gz";
+ }
+ {
+ name = "libxml2-2.9.10.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/libxml2-2.9.10.tar.gz";
+ sha256 = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f";
+ md5 = "";
+ md5name = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f-libxml2-2.9.10.tar.gz";
+ }
+ {
+ name = "libxslt-1.1.34.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/libxslt-1.1.34.tar.gz";
+ sha256 = "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f";
+ md5 = "";
+ md5name = "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f-libxslt-1.1.34.tar.gz";
+ }
+ {
+ name = "lp_solve_5.5.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+ sha256 = "171816288f14215c69e730f7a4f1c325739873e21f946ff83884b350574e6695";
+ md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
+ md5name = "26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+ }
+ {
+ name = "lxml-4.1.1.tgz";
+ url = "https://dev-www.libreoffice.org/src/lxml-4.1.1.tgz";
+ sha256 = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e";
+ md5 = "";
+ md5name = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e-lxml-4.1.1.tgz";
+ }
+ {
+ name = "mariadb-connector-c-3.1.8-src.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/mariadb-connector-c-3.1.8-src.tar.gz";
+ sha256 = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b";
+ md5 = "";
+ md5name = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b-mariadb-connector-c-3.1.8-src.tar.gz";
+ }
+ {
+ name = "mdds-1.6.0.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/mdds-1.6.0.tar.bz2";
+ sha256 = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d";
+ md5 = "";
+ md5name = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d-mdds-1.6.0.tar.bz2";
+ }
+ {
+ name = "mDNSResponder-878.200.35.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/mDNSResponder-878.200.35.tar.gz";
+ sha256 = "e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0";
+ md5 = "";
+ md5name = "e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0-mDNSResponder-878.200.35.tar.gz";
+ }
+ {
+ name = "libmspub-0.1.4.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libmspub-0.1.4.tar.xz";
+ sha256 = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba";
+ md5 = "";
+ md5name = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba-libmspub-0.1.4.tar.xz";
+ }
+ {
+ name = "libmwaw-0.3.16.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libmwaw-0.3.16.tar.xz";
+ sha256 = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868";
+ md5 = "";
+ md5name = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868-libmwaw-0.3.16.tar.xz";
+ }
+ {
+ name = "mythes-1.2.4.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
+ sha256 = "1e81f395d8c851c3e4e75b568e20fa2fa549354e75ab397f9de4b0e0790a305f";
+ md5 = "a8c2c5b8f09e7ede322d5c602ff6a4b6";
+ md5name = "a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
+ }
+ {
+ name = "neon-0.30.2.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/neon-0.30.2.tar.gz";
+ sha256 = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca";
+ md5 = "";
+ md5name = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca-neon-0.30.2.tar.gz";
+ }
+ {
+ name = "nss-3.55-with-nspr-4.27.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/nss-3.55-with-nspr-4.27.tar.gz";
+ sha256 = "ec6032d78663c6ef90b4b83eb552dedf721d2bce208cec3bf527b8f637db7e45";
+ md5 = "";
+ md5name = "ec6032d78663c6ef90b4b83eb552dedf721d2bce208cec3bf527b8f637db7e45-nss-3.55-with-nspr-4.27.tar.gz";
+ }
+ {
+ name = "libodfgen-0.1.6.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/libodfgen-0.1.6.tar.bz2";
+ sha256 = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2";
+ md5 = "";
+ md5name = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2-libodfgen-0.1.6.tar.bz2";
+ }
+ {
+ name = "odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+ url = "https://dev-www.libreoffice.org/src/../extern/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+ sha256 = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0";
+ md5 = "";
+ md5name = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0-odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+ }
+ {
+ name = "officeotron-0.7.4-master.jar";
+ url = "https://dev-www.libreoffice.org/src/../extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
+ sha256 = "f2443f27561af52324eee03a1892d9f569adc8db9e7bca55614898bc2a13a770";
+ md5 = "8249374c274932a21846fa7629c2aa9b";
+ md5name = "8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
+ }
+ {
+ name = "openldap-2.4.45.tgz";
+ url = "https://dev-www.libreoffice.org/src/openldap-2.4.45.tgz";
+ sha256 = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824";
+ md5 = "";
+ md5name = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824-openldap-2.4.45.tgz";
+ }
+ {
+ name = "openssl-1.0.2t.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/openssl-1.0.2t.tar.gz";
+ sha256 = "14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc";
+ md5 = "";
+ md5name = "14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc-openssl-1.0.2t.tar.gz";
+ }
+ {
+ name = "liborcus-0.15.4.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/liborcus-0.15.4.tar.bz2";
+ sha256 = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61";
+ md5 = "";
+ md5name = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61-liborcus-0.15.4.tar.bz2";
+ }
+ {
+ name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+ sha256 = "b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb";
+ md5 = "";
+ md5name = "b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb-owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+ }
+ {
+ name = "libpagemaker-0.0.4.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libpagemaker-0.0.4.tar.xz";
+ sha256 = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d";
+ md5 = "";
+ md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
+ }
+ {
+ name = "pdfium-4137.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/pdfium-4137.tar.bz2";
+ sha256 = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6";
+ md5 = "";
+ md5name = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6-pdfium-4137.tar.bz2";
+ }
+ {
+ name = "pixman-0.34.0.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz";
+ sha256 = "21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e";
+ md5 = "e80ebae4da01e77f68744319f01d52a3";
+ md5name = "e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz";
+ }
+ {
+ name = "libpng-1.6.37.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libpng-1.6.37.tar.xz";
+ sha256 = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca";
+ md5 = "";
+ md5name = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca-libpng-1.6.37.tar.xz";
+ }
+ {
+ name = "poppler-0.82.0.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/poppler-0.82.0.tar.xz";
+ sha256 = "234f8e573ea57fb6a008e7c1e56bfae1af5d1adf0e65f47555e1ae103874e4df";
+ md5 = "";
+ md5name = "234f8e573ea57fb6a008e7c1e56bfae1af5d1adf0e65f47555e1ae103874e4df-poppler-0.82.0.tar.xz";
+ }
+ {
+ name = "postgresql-9.2.24.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/postgresql-9.2.24.tar.bz2";
+ sha256 = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126";
+ md5 = "";
+ md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2";
+ }
+ {
+ name = "Python-3.7.7.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/Python-3.7.7.tar.xz";
+ sha256 = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136";
+ md5 = "";
+ md5name = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136-Python-3.7.7.tar.xz";
+ }
+ {
+ name = "QR-Code-generator-1.4.0.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/QR-Code-generator-1.4.0.tar.gz";
+ sha256 = "fcdf9fd69fde07ae4dca2351d84271a9de8093002f733b77c70f52f1630f6e4a";
+ md5 = "";
+ md5name = "fcdf9fd69fde07ae4dca2351d84271a9de8093002f733b77c70f52f1630f6e4a-QR-Code-generator-1.4.0.tar.gz";
+ }
+ {
+ name = "libqxp-0.0.2.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libqxp-0.0.2.tar.xz";
+ sha256 = "e137b6b110120a52c98edd02ebdc4095ee08d0d5295a94316a981750095a945c";
+ md5 = "";
+ md5name = "e137b6b110120a52c98edd02ebdc4095ee08d0d5295a94316a981750095a945c-libqxp-0.0.2.tar.xz";
+ }
+ {
+ name = "raptor2-2.0.15.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz";
+ sha256 = "ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed";
+ md5 = "a39f6c07ddb20d7dd2ff1f95fa21e2cd";
+ md5name = "a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz";
+ }
+ {
+ name = "rasqal-0.9.33.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz";
+ sha256 = "6924c9ac6570bd241a9669f83b467c728a322470bf34f4b2da4f69492ccfd97c";
+ md5 = "1f5def51ca0026cd192958ef07228b52";
+ md5name = "1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz";
+ }
+ {
+ name = "redland-1.0.17.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz";
+ sha256 = "de1847f7b59021c16bdc72abb4d8e2d9187cd6124d69156f3326dd34ee043681";
+ md5 = "e5be03eda13ef68aabab6e42aa67715e";
+ md5name = "e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz";
+ }
+ {
+ name = "librevenge-0.0.4.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/librevenge-0.0.4.tar.bz2";
+ sha256 = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf";
+ md5 = "";
+ md5name = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf-librevenge-0.0.4.tar.bz2";
+ }
+ {
+ name = "rhino1_5R5.zip";
+ url = "https://dev-www.libreoffice.org/src/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+ sha256 = "1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753";
+ md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+ md5name = "798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+ }
+ {
+ name = "serf-1.2.1.tar.bz2";
+ url = "https://dev-www.libreoffice.org/src/serf-1.2.1.tar.bz2";
+ sha256 = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700";
+ md5 = "";
+ md5name = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700-serf-1.2.1.tar.bz2";
+ }
+ {
+ name = "skia-m85-e684c6daef6bfb774a325a069eda1f76ca6ac26c.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/skia-m85-e684c6daef6bfb774a325a069eda1f76ca6ac26c.tar.xz";
+ sha256 = "3294877fa2b61b220d98a0f7bfc11325429b13edd2cf455444c703ee3a14d760";
+ md5 = "";
+ md5name = "3294877fa2b61b220d98a0f7bfc11325429b13edd2cf455444c703ee3a14d760-skia-m85-e684c6daef6bfb774a325a069eda1f76ca6ac26c.tar.xz";
+ }
+ {
+ name = "libstaroffice-0.0.7.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libstaroffice-0.0.7.tar.xz";
+ sha256 = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db";
+ md5 = "";
+ md5name = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db-libstaroffice-0.0.7.tar.xz";
+ }
+ {
+ name = "swingExSrc.zip";
+ url = "https://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+ sha256 = "64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1";
+ md5 = "35c94d2df8893241173de1d16b6034c0";
+ md5name = "35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+ }
+ {
+ name = "twaindsm_2.4.1.orig.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/twaindsm_2.4.1.orig.tar.gz";
+ sha256 = "82c818be771f242388457aa8c807e4b52aa84dc22b21c6c56184a6b4cbb085e6";
+ md5 = "";
+ md5name = "82c818be771f242388457aa8c807e4b52aa84dc22b21c6c56184a6b4cbb085e6-twaindsm_2.4.1.orig.tar.gz";
+ }
+ {
+ name = "ucpp-1.3.2.tar.gz";
+ url = "https://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz";
+ sha256 = "983941d31ee8d366085cadf28db75eb1f5cb03ba1e5853b98f12f7f51c63b776";
+ md5 = "0168229624cfac409e766913506961a8";
+ md5name = "0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz";
+ }
+ {
+ name = "libvisio-0.1.7.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libvisio-0.1.7.tar.xz";
+ sha256 = "8faf8df870cb27b09a787a1959d6c646faa44d0d8ab151883df408b7166bea4c";
+ md5 = "";
+ md5name = "8faf8df870cb27b09a787a1959d6c646faa44d0d8ab151883df408b7166bea4c-libvisio-0.1.7.tar.xz";
+ }
+ {
+ name = "libwpd-0.10.3.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libwpd-0.10.3.tar.xz";
+ sha256 = "2465b0b662fdc5d4e3bebcdc9a79027713fb629ca2bff04a3c9251fdec42dd09";
+ md5 = "";
+ md5name = "2465b0b662fdc5d4e3bebcdc9a79027713fb629ca2bff04a3c9251fdec42dd09-libwpd-0.10.3.tar.xz";
+ }
+ {
+ name = "libwpg-0.3.3.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libwpg-0.3.3.tar.xz";
+ sha256 = "99b3f7f8832385748582ab8130fbb9e5607bd5179bebf9751ac1d51a53099d1c";
+ md5 = "";
+ md5name = "99b3f7f8832385748582ab8130fbb9e5607bd5179bebf9751ac1d51a53099d1c-libwpg-0.3.3.tar.xz";
+ }
+ {
+ name = "libwps-0.4.11.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libwps-0.4.11.tar.xz";
+ sha256 = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1";
+ md5 = "";
+ md5name = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1-libwps-0.4.11.tar.xz";
+ }
+ {
+ name = "xsltml_2.1.2.zip";
+ url = "https://dev-www.libreoffice.org/src/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+ sha256 = "75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870";
+ md5 = "a7983f859eafb2677d7ff386a023bc40";
+ md5name = "a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+ }
+ {
+ name = "zlib-1.2.11.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/zlib-1.2.11.tar.xz";
+ sha256 = "4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066";
+ md5 = "";
+ md5name = "4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066-zlib-1.2.11.tar.xz";
+ }
+ {
+ name = "libzmf-0.0.2.tar.xz";
+ url = "https://dev-www.libreoffice.org/src/libzmf-0.0.2.tar.xz";
+ sha256 = "27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22";
+ md5 = "";
+ md5name = "27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22-libzmf-0.0.2.tar.xz";
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/override.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/override.nix
new file mode 100644
index 000000000000..60e08735d2e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/override.nix
@@ -0,0 +1,10 @@
+{ stdenv, kdeIntegration, ... }:
+attrs:
+{
+ postConfigure = attrs.postConfigure + ''
+ sed -e '/CPPUNIT_TEST(Import_Export_Import);/d' -i './sw/qa/inc/swmodeltestbase.hxx'
+ '';
+ configureFlags = attrs.configureFlags ++ [
+ (stdenv.lib.enableFeature kdeIntegration "kf5")
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
new file mode 100644
index 000000000000..dbfd249901e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -0,0 +1,36 @@
+{ fetchurl }:
+
+rec {
+ fetchSrc = {name, sha256}: fetchurl {
+ url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
+ inherit sha256;
+ };
+
+ major = "7";
+ minor = "0";
+ patch = "3";
+ tweak = "1";
+
+ subdir = "${major}.${minor}.${patch}";
+
+ version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
+
+ src = fetchurl {
+ url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
+ sha256 = "0b998k2dxbbj7hn3srn07fgsah236h14ncyyahamdff6h3hvqrk5";
+ };
+
+ # FIXME rename
+ translations = fetchSrc {
+ name = "translations";
+ sha256 = "0s3ic79q0c16hbd6r06mwkyqhw4fdfy9z3xbqvdxp7jl64cjlaj4";
+ };
+
+ # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
+ # it and LibreOffice can use these by pointing DICPATH environment variable at the hunspell directory
+
+ help = fetchSrc {
+ name = "help";
+ sha256 = "14wjkcdmcflfcc7264jx64s6clk5rdsprx7nkbv08z0bp6ff677b";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix
new file mode 100644
index 000000000000..78482326be23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix
@@ -0,0 +1,856 @@
+[
+ {
+ name = "libabw-0.1.3.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libabw-0.1.3.tar.xz";
+ sha256 = "e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed";
+ md5 = "";
+ md5name = "e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed-libabw-0.1.3.tar.xz";
+ }
+ {
+ name = "commons-logging-1.2-src.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/commons-logging-1.2-src.tar.gz";
+ sha256 = "49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81";
+ md5 = "";
+ md5name = "49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81-commons-logging-1.2-src.tar.gz";
+ }
+ {
+ name = "apr-1.5.2.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/apr-1.5.2.tar.gz";
+ sha256 = "1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb";
+ md5 = "";
+ md5name = "1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb-apr-1.5.2.tar.gz";
+ }
+ {
+ name = "apr-util-1.5.4.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/apr-util-1.5.4.tar.gz";
+ sha256 = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19";
+ md5 = "";
+ md5name = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19-apr-util-1.5.4.tar.gz";
+ }
+ {
+ name = "boost_1_69_0.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/boost_1_69_0.tar.bz2";
+ sha256 = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406";
+ md5 = "";
+ md5name = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406-boost_1_69_0.tar.bz2";
+ }
+ {
+ name = "breakpad.zip";
+ url = "http://dev-www.libreoffice.org/src/breakpad.zip";
+ sha256 = "7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9";
+ md5 = "";
+ md5name = "7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9-breakpad.zip";
+ }
+ {
+ name = "bsh-2.0b6-src.zip";
+ url = "http://dev-www.libreoffice.org/src/beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
+ sha256 = "9e93c73e23aff644b17dfff656444474c14150e7f3b38b19635e622235e01c96";
+ md5 = "beeca87be45ec87d241ddd0e1bad80c1";
+ md5name = "beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
+ }
+ {
+ name = "bzip2-1.0.6.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+ sha256 = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd";
+ md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
+ md5name = "00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+ }
+ {
+ name = "cairo-1.16.0.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/cairo-1.16.0.tar.xz";
+ sha256 = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331";
+ md5 = "";
+ md5name = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331-cairo-1.16.0.tar.xz";
+ }
+ {
+ name = "libcdr-0.1.5.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libcdr-0.1.5.tar.xz";
+ sha256 = "6ace5c499a8be34ad871e825442ce388614ae2d8675c4381756a7319429e3a48";
+ md5 = "";
+ md5name = "6ace5c499a8be34ad871e825442ce388614ae2d8675c4381756a7319429e3a48-libcdr-0.1.5.tar.xz";
+ }
+ {
+ name = "clucene-core-2.3.3.4.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+ sha256 = "ddfdc433dd8ad31b5c5819cc4404a8d2127472a3b720d3e744e8c51d79732eab";
+ md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
+ md5name = "48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+ }
+ {
+ name = "libcmis-0.5.2.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libcmis-0.5.2.tar.xz";
+ sha256 = "d7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2";
+ md5 = "";
+ md5name = "d7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2-libcmis-0.5.2.tar.xz";
+ }
+ {
+ name = "CoinMP-1.7.6.tgz";
+ url = "http://dev-www.libreoffice.org/src/CoinMP-1.7.6.tgz";
+ sha256 = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f";
+ md5 = "";
+ md5name = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f-CoinMP-1.7.6.tgz";
+ }
+ {
+ name = "cppunit-1.14.0.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/cppunit-1.14.0.tar.gz";
+ sha256 = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780";
+ md5 = "";
+ md5name = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780-cppunit-1.14.0.tar.gz";
+ }
+ {
+ name = "converttexttonumber-1-5-0.oxt";
+ url = "http://dev-www.libreoffice.org/src/1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
+ sha256 = "71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3";
+ md5 = "1f467e5bb703f12cbbb09d5cf67ecf4a";
+ md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
+ }
+ {
+ name = "curl-7.65.0.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/curl-7.65.0.tar.xz";
+ sha256 = "7766d263929404f693905b5e5222aa0f2bdf8c66ab4b8758f0c0820a42b966cd";
+ md5 = "";
+ md5name = "7766d263929404f693905b5e5222aa0f2bdf8c66ab4b8758f0c0820a42b966cd-curl-7.65.0.tar.xz";
+ }
+ {
+ name = "libe-book-0.1.3.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libe-book-0.1.3.tar.xz";
+ sha256 = "7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9";
+ md5 = "";
+ md5name = "7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9-libe-book-0.1.3.tar.xz";
+ }
+ {
+ name = "libepoxy-1.5.3.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libepoxy-1.5.3.tar.xz";
+ sha256 = "002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d";
+ md5 = "";
+ md5name = "002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d-libepoxy-1.5.3.tar.xz";
+ }
+ {
+ name = "epm-3.7.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+ sha256 = "b3fc4c5445de6c9a801504a3ea3efb2d4ea9d5a622c9427e716736e7713ddb91";
+ md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
+ md5name = "3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+ }
+ {
+ name = "libepubgen-0.1.1.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libepubgen-0.1.1.tar.xz";
+ sha256 = "03e084b994cbeffc8c3dd13303b2cb805f44d8f2c3b79f7690d7e3fc7f6215ad";
+ md5 = "";
+ md5name = "03e084b994cbeffc8c3dd13303b2cb805f44d8f2c3b79f7690d7e3fc7f6215ad-libepubgen-0.1.1.tar.xz";
+ }
+ {
+ name = "libetonyek-0.1.9.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libetonyek-0.1.9.tar.xz";
+ sha256 = "e61677e8799ce6e55b25afc11aa5339113f6a49cff031f336e32fa58635b1a4a";
+ md5 = "";
+ md5name = "e61677e8799ce6e55b25afc11aa5339113f6a49cff031f336e32fa58635b1a4a-libetonyek-0.1.9.tar.xz";
+ }
+ {
+ name = "expat-2.2.8.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/expat-2.2.8.tar.bz2";
+ sha256 = "9a130948b05a82da34e4171d5f5ae5d321d9630277af02c8fa51e431f6475102";
+ md5 = "";
+ md5name = "9a130948b05a82da34e4171d5f5ae5d321d9630277af02c8fa51e431f6475102-expat-2.2.8.tar.bz2";
+ }
+ {
+ name = "Firebird-3.0.0.32483-0.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/Firebird-3.0.0.32483-0.tar.bz2";
+ sha256 = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860";
+ md5 = "";
+ md5name = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860-Firebird-3.0.0.32483-0.tar.bz2";
+ }
+ {
+ name = "fontconfig-2.12.6.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/fontconfig-2.12.6.tar.bz2";
+ sha256 = "cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017";
+ md5 = "";
+ md5name = "cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017-fontconfig-2.12.6.tar.bz2";
+ }
+ {
+ name = "crosextrafonts-20130214.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+ sha256 = "c48d1c2fd613c9c06c959c34da7b8388059e2408d2bb19845dc3ed35f76e4d09";
+ md5 = "368f114c078f94214a308a74c7e991bc";
+ md5name = "368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+ }
+ {
+ name = "crosextrafonts-carlito-20130920.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+ sha256 = "4bd12b6cbc321c1cf16da76e2c585c925ce956a08067ae6f6c64eff6ccfdaf5a";
+ md5 = "c74b7223abe75949b4af367942d96c7a";
+ md5name = "c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+ }
+ {
+ name = "dejavu-fonts-ttf-2.37.zip";
+ url = "http://dev-www.libreoffice.org/src/33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip";
+ sha256 = "7576310b219e04159d35ff61dd4a4ec4cdba4f35c00e002a136f00e96a908b0a";
+ md5 = "33e1e61fab06a547851ed308b4ffef42";
+ md5name = "33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip";
+ }
+ {
+ name = "GentiumBasic_1102.zip";
+ url = "http://dev-www.libreoffice.org/src/1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip";
+ sha256 = "2f1a2c5491d7305dffd3520c6375d2f3e14931ee35c6d8ae1e8f098bf1a7b3cc";
+ md5 = "1725634df4bb3dcb1b2c91a6175f8789";
+ md5name = "1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip";
+ }
+ {
+ name = "liberation-narrow-fonts-ttf-1.07.6.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/liberation-narrow-fonts-ttf-1.07.6.tar.gz";
+ sha256 = "8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3";
+ md5 = "";
+ md5name = "8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3-liberation-narrow-fonts-ttf-1.07.6.tar.gz";
+ }
+ {
+ name = "liberation-fonts-ttf-2.00.4.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/liberation-fonts-ttf-2.00.4.tar.gz";
+ sha256 = "c40e95fc5e0ecb73d4be565ae2afc1114e2bc7dc5253e00ee92d8fd6cc4adf45";
+ md5 = "";
+ md5name = "c40e95fc5e0ecb73d4be565ae2afc1114e2bc7dc5253e00ee92d8fd6cc4adf45-liberation-fonts-ttf-2.00.4.tar.gz";
+ }
+ {
+ name = "LinLibertineG-20120116.zip";
+ url = "http://dev-www.libreoffice.org/src/e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+ sha256 = "54adcb2bc8cac0927a647fbd9362f45eff48130ce6e2379dc3867643019e08c5";
+ md5 = "e7a384790b13c29113e22e596ade9687";
+ md5name = "e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+ }
+ {
+ name = "source-code-pro-2.030R-ro-1.050R-it.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/907d6e99f241876695c19ff3db0b8923-source-code-pro-2.030R-ro-1.050R-it.tar.gz";
+ sha256 = "09466dce87653333f189acd8358c60c6736dcd95f042dee0b644bdcf65b6ae2f";
+ md5 = "907d6e99f241876695c19ff3db0b8923";
+ md5name = "907d6e99f241876695c19ff3db0b8923-source-code-pro-2.030R-ro-1.050R-it.tar.gz";
+ }
+ {
+ name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+ sha256 = "e7bc9a1fec787a529e49f5a26b93dcdcf41506449dfc70f92cdef6d17eb6fb61";
+ md5 = "edc4d741888bc0d38e32dbaa17149596";
+ md5name = "edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+ }
+ {
+ name = "source-serif-pro-3.000R.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/source-serif-pro-3.000R.tar.gz";
+ sha256 = "826a2b784d5cdb4c2bbc7830eb62871528360a61a52689c102a101623f1928e3";
+ md5 = "";
+ md5name = "826a2b784d5cdb4c2bbc7830eb62871528360a61a52689c102a101623f1928e3-source-serif-pro-3.000R.tar.gz";
+ }
+ {
+ name = "EmojiOneColor-SVGinOT-1.3.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/EmojiOneColor-SVGinOT-1.3.tar.gz";
+ sha256 = "d1a08f7c10589f22740231017694af0a7a270760c8dec33d8d1c038e2be0a0c7";
+ md5 = "";
+ md5name = "d1a08f7c10589f22740231017694af0a7a270760c8dec33d8d1c038e2be0a0c7-EmojiOneColor-SVGinOT-1.3.tar.gz";
+ }
+ {
+ name = "noto-fonts-20171024.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/noto-fonts-20171024.tar.gz";
+ sha256 = "29acc15a4c4d6b51201ba5d60f303dfbc2e5acbfdb70413c9ae1ed34fa259994";
+ md5 = "";
+ md5name = "29acc15a4c4d6b51201ba5d60f303dfbc2e5acbfdb70413c9ae1ed34fa259994-noto-fonts-20171024.tar.gz";
+ }
+ {
+ name = "culmus-0.131.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/culmus-0.131.tar.gz";
+ sha256 = "dcf112cfcccb76328dcfc095f4d7c7f4d2f7e48d0eed5e78b100d1d77ce2ed1b";
+ md5 = "";
+ md5name = "dcf112cfcccb76328dcfc095f4d7c7f4d2f7e48d0eed5e78b100d1d77ce2ed1b-culmus-0.131.tar.gz";
+ }
+ {
+ name = "libre-hebrew-1.0.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/libre-hebrew-1.0.tar.gz";
+ sha256 = "f596257c1db706ce35795b18d7f66a4db99d427725f20e9384914b534142579a";
+ md5 = "";
+ md5name = "f596257c1db706ce35795b18d7f66a4db99d427725f20e9384914b534142579a-libre-hebrew-1.0.tar.gz";
+ }
+ {
+ name = "alef-1.001.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/alef-1.001.tar.gz";
+ sha256 = "b98b67602a2c8880a1770f0b9e37c190f29a7e2ade5616784f0b89fbdb75bf52";
+ md5 = "";
+ md5name = "b98b67602a2c8880a1770f0b9e37c190f29a7e2ade5616784f0b89fbdb75bf52-alef-1.001.tar.gz";
+ }
+ {
+ name = "Amiri-0.111.zip";
+ url = "http://dev-www.libreoffice.org/src/Amiri-0.111.zip";
+ sha256 = "1fbfccced6348b5db2c1c21d5b319cd488e14d055702fa817a0f6cb83d882166";
+ md5 = "";
+ md5name = "1fbfccced6348b5db2c1c21d5b319cd488e14d055702fa817a0f6cb83d882166-Amiri-0.111.zip";
+ }
+ {
+ name = "ttf-kacst_2.01+mry.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/ttf-kacst_2.01+mry.tar.gz";
+ sha256 = "dca00f5e655f2f217a766faa73a81f542c5c204aa3a47017c3c2be0b31d00a56";
+ md5 = "";
+ md5name = "dca00f5e655f2f217a766faa73a81f542c5c204aa3a47017c3c2be0b31d00a56-ttf-kacst_2.01+mry.tar.gz";
+ }
+ {
+ name = "ReemKufi-0.7.zip";
+ url = "http://dev-www.libreoffice.org/src/ReemKufi-0.7.zip";
+ sha256 = "f60c6508d209ce4236d2d7324256c2ffddd480be7e3d6023770b93dc391a605f";
+ md5 = "";
+ md5name = "f60c6508d209ce4236d2d7324256c2ffddd480be7e3d6023770b93dc391a605f-ReemKufi-0.7.zip";
+ }
+ {
+ name = "Scheherazade-2.100.zip";
+ url = "http://dev-www.libreoffice.org/src/Scheherazade-2.100.zip";
+ sha256 = "251c8817ceb87d9b661ce1d5b49e732a0116add10abc046be4b8ba5196e149b5";
+ md5 = "";
+ md5name = "251c8817ceb87d9b661ce1d5b49e732a0116add10abc046be4b8ba5196e149b5-Scheherazade-2.100.zip";
+ }
+ {
+ name = "libfreehand-0.1.2.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libfreehand-0.1.2.tar.xz";
+ sha256 = "0e422d1564a6dbf22a9af598535425271e583514c0f7ba7d9091676420de34ac";
+ md5 = "";
+ md5name = "0e422d1564a6dbf22a9af598535425271e583514c0f7ba7d9091676420de34ac-libfreehand-0.1.2.tar.xz";
+ }
+ {
+ name = "freetype-2.9.1.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/freetype-2.9.1.tar.bz2";
+ sha256 = "db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d";
+ md5 = "";
+ md5name = "db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d-freetype-2.9.1.tar.bz2";
+ }
+ {
+ name = "glm-0.9.4.6-libreoffice.zip";
+ url = "http://dev-www.libreoffice.org/src/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
+ sha256 = "d0312c360efe04dd048b3311fe375ff36f1993b4c2e3cb58c81062990532904a";
+ md5 = "bae83fa5dc7f081768daace6e199adc3";
+ md5name = "bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
+ }
+ {
+ name = "gpgme-1.9.0.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/gpgme-1.9.0.tar.bz2";
+ sha256 = "1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb";
+ md5 = "";
+ md5name = "1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb-gpgme-1.9.0.tar.bz2";
+ }
+ {
+ name = "graphite2-minimal-1.3.13.tgz";
+ url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.13.tgz";
+ sha256 = "d47d387161db7f7ebade1920aa7cbdc797e79772597d8b55e80b58d1071bcc36";
+ md5 = "";
+ md5name = "d47d387161db7f7ebade1920aa7cbdc797e79772597d8b55e80b58d1071bcc36-graphite2-minimal-1.3.13.tgz";
+ }
+ {
+ name = "harfbuzz-2.3.1.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/harfbuzz-2.3.1.tar.bz2";
+ sha256 = "f205699d5b91374008d6f8e36c59e419ae2d9a7bb8c5d9f34041b9a5abcae468";
+ md5 = "";
+ md5name = "f205699d5b91374008d6f8e36c59e419ae2d9a7bb8c5d9f34041b9a5abcae468-harfbuzz-2.3.1.tar.bz2";
+ }
+ {
+ name = "hsqldb_1_8_0.zip";
+ url = "http://dev-www.libreoffice.org/src/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+ sha256 = "d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370";
+ md5 = "17410483b5b5f267aa18b7e00b65e6e0";
+ md5name = "17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+ }
+ {
+ name = "hunspell-1.7.0.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/hunspell-1.7.0.tar.gz";
+ sha256 = "57be4e03ae9dd62c3471f667a0d81a14513e314d4d92081292b90435944ff951";
+ md5 = "";
+ md5name = "57be4e03ae9dd62c3471f667a0d81a14513e314d4d92081292b90435944ff951-hunspell-1.7.0.tar.gz";
+ }
+ {
+ name = "hyphen-2.8.8.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+ sha256 = "304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705";
+ md5 = "5ade6ae2a99bc1e9e57031ca88d36dad";
+ md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+ }
+ {
+ name = "icu4c-63_1-src.tgz";
+ url = "http://dev-www.libreoffice.org/src/icu4c-63_1-src.tgz";
+ sha256 = "05c490b69454fce5860b7e8e2821231674af0a11d7ef2febea9a32512998cb9d";
+ md5 = "";
+ md5name = "05c490b69454fce5860b7e8e2821231674af0a11d7ef2febea9a32512998cb9d-icu4c-63_1-src.tgz";
+ }
+ {
+ name = "icu4c-63_1-data.zip";
+ url = "http://dev-www.libreoffice.org/src/icu4c-63_1-data.zip";
+ sha256 = "9bef2bf28ec4fdc86a3bd88d7ac4d509fef6dfbe9c6798299e55b9d4343e960c";
+ md5 = "";
+ md5name = "9bef2bf28ec4fdc86a3bd88d7ac4d509fef6dfbe9c6798299e55b9d4343e960c-icu4c-63_1-data.zip";
+ }
+ {
+ name = "flow-engine-0.9.4.zip";
+ url = "http://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+ sha256 = "233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd";
+ md5 = "ba2930200c9f019c2d93a8c88c651a0f";
+ md5name = "ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+ }
+ {
+ name = "flute-1.1.6.zip";
+ url = "http://dev-www.libreoffice.org/src/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+ sha256 = "1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133";
+ md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
+ md5name = "d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+ }
+ {
+ name = "libbase-1.1.6.zip";
+ url = "http://dev-www.libreoffice.org/src/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+ sha256 = "75c80359c9ce343c20aab8a36a45cb3b9ee7c61cf92c13ae45399d854423a9ba";
+ md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
+ md5name = "eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+ }
+ {
+ name = "libfonts-1.1.6.zip";
+ url = "http://dev-www.libreoffice.org/src/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+ sha256 = "e0531091787c0f16c83965fdcbc49162c059d7f0c64669e7f119699321549743";
+ md5 = "3bdf40c0d199af31923e900d082ca2dd";
+ md5name = "3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+ }
+ {
+ name = "libformula-1.1.7.zip";
+ url = "http://dev-www.libreoffice.org/src/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+ sha256 = "5826d1551bf599b85742545f6e01a0079b93c1b2c8434bf409eddb3a29e4726b";
+ md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+ md5name = "3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+ }
+ {
+ name = "liblayout-0.2.10.zip";
+ url = "http://dev-www.libreoffice.org/src/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+ sha256 = "e1fb87f3f7b980d33414473279615c4644027e013012d156efa538bc2b031772";
+ md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+ md5name = "db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+ }
+ {
+ name = "libloader-1.1.6.zip";
+ url = "http://dev-www.libreoffice.org/src/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+ sha256 = "3d853b19b1d94a6efa69e7af90f7f2b09ecf302913bee3da796c15ecfebcfac8";
+ md5 = "97b2d4dba862397f446b217e2b623e71";
+ md5name = "97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+ }
+ {
+ name = "librepository-1.1.6.zip";
+ url = "http://dev-www.libreoffice.org/src/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+ sha256 = "abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095";
+ md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+ md5name = "8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+ }
+ {
+ name = "libserializer-1.1.6.zip";
+ url = "http://dev-www.libreoffice.org/src/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+ sha256 = "05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343";
+ md5 = "f94d9870737518e3b597f9265f4e9803";
+ md5name = "f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+ }
+ {
+ name = "libxml-1.1.7.zip";
+ url = "http://dev-www.libreoffice.org/src/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+ sha256 = "7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66";
+ md5 = "ace6ab49184e329db254e454a010f56d";
+ md5name = "ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+ }
+ {
+ name = "sacjava-1.3.zip";
+ url = "http://dev-www.libreoffice.org/src/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+ sha256 = "085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045";
+ md5 = "39bb3fcea1514f1369fcfc87542390fd";
+ md5name = "39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+ }
+ {
+ name = "libjpeg-turbo-1.5.3.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/libjpeg-turbo-1.5.3.tar.gz";
+ sha256 = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523";
+ md5 = "";
+ md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
+ }
+ {
+ name = "language-subtag-registry-2019-09-16.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2019-09-16.tar.bz2";
+ sha256 = "07b66bc0f2786fde55f6bbcbcb4a455a846eb8e2351c8ce3d0a219a73693736a";
+ md5 = "";
+ md5name = "07b66bc0f2786fde55f6bbcbcb4a455a846eb8e2351c8ce3d0a219a73693736a-language-subtag-registry-2019-09-16.tar.bz2";
+ }
+ {
+ name = "JLanguageTool-1.7.0.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2";
+ sha256 = "48c87e41636783bba438b65fd895821e369ed139e1465fac654323ad93c5a82d";
+ md5 = "b63e6340a02ff1cacfeadb2c42286161";
+ md5name = "b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2";
+ }
+ {
+ name = "lcms2-2.9.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/lcms2-2.9.tar.gz";
+ sha256 = "48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20";
+ md5 = "";
+ md5name = "48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20-lcms2-2.9.tar.gz";
+ }
+ {
+ name = "libassuan-2.5.1.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/libassuan-2.5.1.tar.bz2";
+ sha256 = "47f96c37b4f2aac289f0bc1bacfa8bd8b4b209a488d3d15e2229cb6cc9b26449";
+ md5 = "";
+ md5name = "47f96c37b4f2aac289f0bc1bacfa8bd8b4b209a488d3d15e2229cb6cc9b26449-libassuan-2.5.1.tar.bz2";
+ }
+ {
+ name = "libatomic_ops-7.6.8.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/libatomic_ops-7.6.8.tar.gz";
+ sha256 = "1d6a279edf81767e74d2ad2c9fce09459bc65f12c6525a40b0cb3e53c089f665";
+ md5 = "";
+ md5name = "1d6a279edf81767e74d2ad2c9fce09459bc65f12c6525a40b0cb3e53c089f665-libatomic_ops-7.6.8.tar.gz";
+ }
+ {
+ name = "libeot-0.01.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/libeot-0.01.tar.bz2";
+ sha256 = "cf5091fa8e7dcdbe667335eb90a2cfdd0a3fe8f8c7c8d1ece44d9d055736a06a";
+ md5 = "";
+ md5name = "cf5091fa8e7dcdbe667335eb90a2cfdd0a3fe8f8c7c8d1ece44d9d055736a06a-libeot-0.01.tar.bz2";
+ }
+ {
+ name = "libexttextcat-3.4.5.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libexttextcat-3.4.5.tar.xz";
+ sha256 = "13fdbc9d4c489a4d0519e51933a1aa21fe3fb9eb7da191b87f7a63e82797dac8";
+ md5 = "";
+ md5name = "13fdbc9d4c489a4d0519e51933a1aa21fe3fb9eb7da191b87f7a63e82797dac8-libexttextcat-3.4.5.tar.xz";
+ }
+ {
+ name = "libgpg-error-1.27.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/libgpg-error-1.27.tar.bz2";
+ sha256 = "4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2";
+ md5 = "";
+ md5name = "4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2-libgpg-error-1.27.tar.bz2";
+ }
+ {
+ name = "liblangtag-0.6.2.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/liblangtag-0.6.2.tar.bz2";
+ sha256 = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e";
+ md5 = "";
+ md5name = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e-liblangtag-0.6.2.tar.bz2";
+ }
+ {
+ name = "libnumbertext-1.0.5.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libnumbertext-1.0.5.tar.xz";
+ sha256 = "e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7";
+ md5 = "";
+ md5name = "e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7-libnumbertext-1.0.5.tar.xz";
+ }
+ {
+ name = "ltm-1.0.zip";
+ url = "http://dev-www.libreoffice.org/src/ltm-1.0.zip";
+ sha256 = "083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483";
+ md5 = "";
+ md5name = "083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483-ltm-1.0.zip";
+ }
+ {
+ name = "xmlsec1-1.2.28.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/xmlsec1-1.2.28.tar.gz";
+ sha256 = "13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4";
+ md5 = "";
+ md5name = "13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4-xmlsec1-1.2.28.tar.gz";
+ }
+ {
+ name = "libxml2-2.9.10.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/libxml2-2.9.10.tar.gz";
+ sha256 = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f";
+ md5 = "";
+ md5name = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f-libxml2-2.9.10.tar.gz";
+ }
+ {
+ name = "libxslt-1.1.34.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/libxslt-1.1.34.tar.gz";
+ sha256 = "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f";
+ md5 = "";
+ md5name = "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f-libxslt-1.1.34.tar.gz";
+ }
+ {
+ name = "lp_solve_5.5.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+ sha256 = "171816288f14215c69e730f7a4f1c325739873e21f946ff83884b350574e6695";
+ md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
+ md5name = "26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+ }
+ {
+ name = "lxml-4.1.1.tgz";
+ url = "http://dev-www.libreoffice.org/src/lxml-4.1.1.tgz";
+ sha256 = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e";
+ md5 = "";
+ md5name = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e-lxml-4.1.1.tgz";
+ }
+ {
+ name = "mariadb_client-2.0.0-src.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
+ sha256 = "fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60";
+ md5 = "a233181e03d3c307668b4c722d881661";
+ md5name = "a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
+ }
+ {
+ name = "mdds-1.4.3.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/mdds-1.4.3.tar.bz2";
+ sha256 = "25ce3d5af9f6609e1de05bb22b2316e57b74a72a5b686fbb2da199da72349c81";
+ md5 = "";
+ md5name = "25ce3d5af9f6609e1de05bb22b2316e57b74a72a5b686fbb2da199da72349c81-mdds-1.4.3.tar.bz2";
+ }
+ {
+ name = "mDNSResponder-878.200.35.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/mDNSResponder-878.200.35.tar.gz";
+ sha256 = "e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0";
+ md5 = "";
+ md5name = "e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0-mDNSResponder-878.200.35.tar.gz";
+ }
+ {
+ name = "libmspub-0.1.4.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libmspub-0.1.4.tar.xz";
+ sha256 = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba";
+ md5 = "";
+ md5name = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba-libmspub-0.1.4.tar.xz";
+ }
+ {
+ name = "libmwaw-0.3.15.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.15.tar.xz";
+ sha256 = "0440bb09f05e3419423d8dfa36ee847056ebfd837f9cbc091fdb5b057daab0b1";
+ md5 = "";
+ md5name = "0440bb09f05e3419423d8dfa36ee847056ebfd837f9cbc091fdb5b057daab0b1-libmwaw-0.3.15.tar.xz";
+ }
+ {
+ name = "mythes-1.2.4.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
+ sha256 = "1e81f395d8c851c3e4e75b568e20fa2fa549354e75ab397f9de4b0e0790a305f";
+ md5 = "a8c2c5b8f09e7ede322d5c602ff6a4b6";
+ md5name = "a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
+ }
+ {
+ name = "neon-0.30.2.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/neon-0.30.2.tar.gz";
+ sha256 = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca";
+ md5 = "";
+ md5name = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca-neon-0.30.2.tar.gz";
+ }
+ {
+ name = "nss-3.47.1-with-nspr-4.23.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/nss-3.47.1-with-nspr-4.23.tar.gz";
+ sha256 = "07d4276168f59bb3038c7826dabb5fbfbab8336ddf65e4e6e43bce89ada78c64";
+ md5 = "";
+ md5name = "07d4276168f59bb3038c7826dabb5fbfbab8336ddf65e4e6e43bce89ada78c64-nss-3.47.1-with-nspr-4.23.tar.gz";
+ }
+ {
+ name = "libodfgen-0.1.6.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/libodfgen-0.1.6.tar.bz2";
+ sha256 = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2";
+ md5 = "";
+ md5name = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2-libodfgen-0.1.6.tar.bz2";
+ }
+ {
+ name = "odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
+ url = "http://dev-www.libreoffice.org/src/../extern/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
+ sha256 = "984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504";
+ md5 = "";
+ md5name = "984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504-odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
+ }
+ {
+ name = "officeotron-0.7.4-master.jar";
+ url = "http://dev-www.libreoffice.org/src/../extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
+ sha256 = "f2443f27561af52324eee03a1892d9f569adc8db9e7bca55614898bc2a13a770";
+ md5 = "8249374c274932a21846fa7629c2aa9b";
+ md5name = "8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
+ }
+ {
+ name = "openldap-2.4.45.tgz";
+ url = "http://dev-www.libreoffice.org/src/openldap-2.4.45.tgz";
+ sha256 = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824";
+ md5 = "";
+ md5name = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824-openldap-2.4.45.tgz";
+ }
+ {
+ name = "openssl-1.0.2t.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/openssl-1.0.2t.tar.gz";
+ sha256 = "14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc";
+ md5 = "";
+ md5name = "14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc-openssl-1.0.2t.tar.gz";
+ }
+ {
+ name = "liborcus-0.14.1.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/liborcus-0.14.1.tar.gz";
+ sha256 = "3f48cfbc21ad74787218284939c04d42cb836c73bc393f27f538b668e4d78a5f";
+ md5 = "";
+ md5name = "3f48cfbc21ad74787218284939c04d42cb836c73bc393f27f538b668e4d78a5f-liborcus-0.14.1.tar.gz";
+ }
+ {
+ name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+ sha256 = "b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb";
+ md5 = "";
+ md5name = "b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb-owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+ }
+ {
+ name = "libpagemaker-0.0.4.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libpagemaker-0.0.4.tar.xz";
+ sha256 = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d";
+ md5 = "";
+ md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
+ }
+ {
+ name = "pdfium-3794.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/pdfium-3794.tar.bz2";
+ sha256 = "e3faddcf741336c64ca2e6f72b23e9e60979969b2cf67c878c9a5bc38328cfc4";
+ md5 = "";
+ md5name = "e3faddcf741336c64ca2e6f72b23e9e60979969b2cf67c878c9a5bc38328cfc4-pdfium-3794.tar.bz2";
+ }
+ {
+ name = "pixman-0.34.0.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz";
+ sha256 = "21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e";
+ md5 = "e80ebae4da01e77f68744319f01d52a3";
+ md5name = "e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz";
+ }
+ {
+ name = "libpng-1.6.37.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libpng-1.6.37.tar.xz";
+ sha256 = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca";
+ md5 = "";
+ md5name = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca-libpng-1.6.37.tar.xz";
+ }
+ {
+ name = "poppler-0.82.0.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/poppler-0.82.0.tar.xz";
+ sha256 = "234f8e573ea57fb6a008e7c1e56bfae1af5d1adf0e65f47555e1ae103874e4df";
+ md5 = "";
+ md5name = "234f8e573ea57fb6a008e7c1e56bfae1af5d1adf0e65f47555e1ae103874e4df-poppler-0.82.0.tar.xz";
+ }
+ {
+ name = "postgresql-9.2.24.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/postgresql-9.2.24.tar.bz2";
+ sha256 = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126";
+ md5 = "";
+ md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2";
+ }
+ {
+ name = "Python-3.5.9.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/Python-3.5.9.tar.xz";
+ sha256 = "c24a37c63a67f53bdd09c5f287b5cff8e8b98f857bf348c577d454d3f74db049";
+ md5 = "";
+ md5name = "c24a37c63a67f53bdd09c5f287b5cff8e8b98f857bf348c577d454d3f74db049-Python-3.5.9.tar.xz";
+ }
+ {
+ name = "libqxp-0.0.2.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libqxp-0.0.2.tar.xz";
+ sha256 = "e137b6b110120a52c98edd02ebdc4095ee08d0d5295a94316a981750095a945c";
+ md5 = "";
+ md5name = "e137b6b110120a52c98edd02ebdc4095ee08d0d5295a94316a981750095a945c-libqxp-0.0.2.tar.xz";
+ }
+ {
+ name = "raptor2-2.0.15.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz";
+ sha256 = "ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed";
+ md5 = "a39f6c07ddb20d7dd2ff1f95fa21e2cd";
+ md5name = "a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz";
+ }
+ {
+ name = "rasqal-0.9.33.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz";
+ sha256 = "6924c9ac6570bd241a9669f83b467c728a322470bf34f4b2da4f69492ccfd97c";
+ md5 = "1f5def51ca0026cd192958ef07228b52";
+ md5name = "1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz";
+ }
+ {
+ name = "redland-1.0.17.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz";
+ sha256 = "de1847f7b59021c16bdc72abb4d8e2d9187cd6124d69156f3326dd34ee043681";
+ md5 = "e5be03eda13ef68aabab6e42aa67715e";
+ md5name = "e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz";
+ }
+ {
+ name = "librevenge-0.0.4.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/librevenge-0.0.4.tar.bz2";
+ sha256 = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf";
+ md5 = "";
+ md5name = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf-librevenge-0.0.4.tar.bz2";
+ }
+ {
+ name = "rhino1_5R5.zip";
+ url = "http://dev-www.libreoffice.org/src/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+ sha256 = "1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753";
+ md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+ md5name = "798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+ }
+ {
+ name = "serf-1.2.1.tar.bz2";
+ url = "http://dev-www.libreoffice.org/src/serf-1.2.1.tar.bz2";
+ sha256 = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700";
+ md5 = "";
+ md5name = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700-serf-1.2.1.tar.bz2";
+ }
+ {
+ name = "libstaroffice-0.0.6.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libstaroffice-0.0.6.tar.xz";
+ sha256 = "6b00e1ed8194e6072be4441025d1b888e39365727ed5b23e0e8c92c4009d1ec4";
+ md5 = "";
+ md5name = "6b00e1ed8194e6072be4441025d1b888e39365727ed5b23e0e8c92c4009d1ec4-libstaroffice-0.0.6.tar.xz";
+ }
+ {
+ name = "swingExSrc.zip";
+ url = "http://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+ sha256 = "64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1";
+ md5 = "35c94d2df8893241173de1d16b6034c0";
+ md5name = "35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+ }
+ {
+ name = "twaindsm_2.4.1.orig.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/twaindsm_2.4.1.orig.tar.gz";
+ sha256 = "82c818be771f242388457aa8c807e4b52aa84dc22b21c6c56184a6b4cbb085e6";
+ md5 = "";
+ md5name = "82c818be771f242388457aa8c807e4b52aa84dc22b21c6c56184a6b4cbb085e6-twaindsm_2.4.1.orig.tar.gz";
+ }
+ {
+ name = "ucpp-1.3.2.tar.gz";
+ url = "http://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz";
+ sha256 = "983941d31ee8d366085cadf28db75eb1f5cb03ba1e5853b98f12f7f51c63b776";
+ md5 = "0168229624cfac409e766913506961a8";
+ md5name = "0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz";
+ }
+ {
+ name = "libvisio-0.1.7.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libvisio-0.1.7.tar.xz";
+ sha256 = "8faf8df870cb27b09a787a1959d6c646faa44d0d8ab151883df408b7166bea4c";
+ md5 = "";
+ md5name = "8faf8df870cb27b09a787a1959d6c646faa44d0d8ab151883df408b7166bea4c-libvisio-0.1.7.tar.xz";
+ }
+ {
+ name = "libwpd-0.10.3.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libwpd-0.10.3.tar.xz";
+ sha256 = "2465b0b662fdc5d4e3bebcdc9a79027713fb629ca2bff04a3c9251fdec42dd09";
+ md5 = "";
+ md5name = "2465b0b662fdc5d4e3bebcdc9a79027713fb629ca2bff04a3c9251fdec42dd09-libwpd-0.10.3.tar.xz";
+ }
+ {
+ name = "libwpg-0.3.3.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libwpg-0.3.3.tar.xz";
+ sha256 = "99b3f7f8832385748582ab8130fbb9e5607bd5179bebf9751ac1d51a53099d1c";
+ md5 = "";
+ md5name = "99b3f7f8832385748582ab8130fbb9e5607bd5179bebf9751ac1d51a53099d1c-libwpg-0.3.3.tar.xz";
+ }
+ {
+ name = "libwps-0.4.10.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libwps-0.4.10.tar.xz";
+ sha256 = "1421e034286a9f96d3168a1c54ea570ee7aa008ca07b89de005ad5ce49fb29ca";
+ md5 = "";
+ md5name = "1421e034286a9f96d3168a1c54ea570ee7aa008ca07b89de005ad5ce49fb29ca-libwps-0.4.10.tar.xz";
+ }
+ {
+ name = "xsltml_2.1.2.zip";
+ url = "http://dev-www.libreoffice.org/src/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+ sha256 = "75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870";
+ md5 = "a7983f859eafb2677d7ff386a023bc40";
+ md5name = "a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+ }
+ {
+ name = "zlib-1.2.11.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/zlib-1.2.11.tar.xz";
+ sha256 = "4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066";
+ md5 = "";
+ md5name = "4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066-zlib-1.2.11.tar.xz";
+ }
+ {
+ name = "libzmf-0.0.2.tar.xz";
+ url = "http://dev-www.libreoffice.org/src/libzmf-0.0.2.tar.xz";
+ sha256 = "27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22";
+ md5 = "";
+ md5name = "27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22-libzmf-0.0.2.tar.xz";
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix
new file mode 100644
index 000000000000..54935dd7072d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix
@@ -0,0 +1,19 @@
+{ stdenv, kdeIntegration, fetchpatch, ... }:
+attrs:
+{
+ patches = attrs.patches or [ ] ++ [
+ (fetchpatch {
+ url = "https://git.pld-linux.org/gitweb.cgi?p=packages/libreoffice.git;a=blob_plain;f=poppler-0.86.patch;h=76b8356d5f22ef537a83b0f9b0debab591f152fe;hb=a2737a61353e305a9ee69640fb20d4582c218008";
+ name = "poppler-0.86.patch";
+ sha256 = "0q6k4l8imgp8ailcv0qx5l83afyw44hah24fi7gjrm9xgv5sbb8j";
+ })
+ ];
+ postConfigure = attrs.postConfigure + ''
+ sed -e '/CPPUNIT_TEST(Import_Export_Import);/d' -i './sw/qa/extras/inc/swmodeltestbase.hxx'
+ '';
+ configureFlags = stdenv.lib.remove "--without-system-qrcodegen"
+ (attrs.configureFlags ++ [
+ (stdenv.lib.enableFeature kdeIntegration "kde5")
+ ]);
+ meta = attrs.meta // { description = "Comprehensive, professional-quality productivity suite (Still/Stable release)"; };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix
new file mode 100644
index 000000000000..36deae53670a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix
@@ -0,0 +1,36 @@
+{ fetchurl }:
+
+rec {
+ fetchSrc = {name, sha256}: fetchurl {
+ url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
+ inherit sha256;
+ };
+
+ major = "6";
+ minor = "3";
+ patch = "5";
+ tweak = "2";
+
+ subdir = "${major}.${minor}.${patch}";
+
+ version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
+
+ src = fetchurl {
+ url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
+ sha256 = "0jnayv1i0iq1gpf3q3z9nfq6jid77d0c76675lkqb3gi07f63nzz";
+ };
+
+ # FIXME rename
+ translations = fetchSrc {
+ name = "translations";
+ sha256 = "01g09bbn1ixrsfj4l0x6x8p06dz9hnlrhnr3f3xb42drmi9ipvjv";
+ };
+
+ # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
+ # it and LibreOffice can use these by pointing DICPATH environment variable at the hunspell directory
+
+ help = fetchSrc {
+ name = "help";
+ sha256 = "1p38wlclv6cbjpkkq7n2mjpxy84pxi4vxc9s5kjp4dm63zzxafd6";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/wrapper.nix
new file mode 100644
index 000000000000..08b01a4a051b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/wrapper.nix
@@ -0,0 +1,19 @@
+{ libreoffice, runCommand, dbus, bash }:
+let
+ jdk = libreoffice.jdk;
+in
+(runCommand libreoffice.name {
+ inherit dbus libreoffice jdk bash;
+} ''
+ mkdir -p "$out/bin"
+ ln -s "${libreoffice}/share" "$out/share"
+ substituteAll "${./wrapper.sh}" "$out/bin/soffice"
+ chmod a+x "$out/bin/soffice"
+
+ for i in $(ls "${libreoffice}/bin/"); do
+ test "$i" = "soffice" || ln -s soffice "$out/bin/$(basename "$i")"
+ done
+'') // {
+ inherit libreoffice dbus;
+ meta = libreoffice.meta;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/wrapper.sh b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/wrapper.sh
new file mode 100644
index 000000000000..806dd0806ad5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/wrapper.sh
@@ -0,0 +1,31 @@
+#!@bash@/bin/bash
+export JAVA_HOME="${JAVA_HOME:-@jdk@}"
+#export SAL_USE_VCLPLUGIN="${SAL_USE_VCLPLUGIN:-gen}"
+
+if uname | grep Linux > /dev/null &&
+ ! ( test -n "$DBUS_SESSION_BUS_ADDRESS" ); then
+ dbus_tmp_dir="/run/user/$(id -u)/libreoffice-dbus"
+ if ! test -d "$dbus_tmp_dir" && test -d "/run"; then
+ mkdir -p "$dbus_tmp_dir"
+ fi
+ if ! test -d "$dbus_tmp_dir"; then
+ dbus_tmp_dir="/tmp/libreoffice-$(id -u)/libreoffice-dbus"
+ mkdir -p "$dbus_tmp_dir"
+ fi
+ dbus_socket_dir="$(mktemp -d -p "$dbus_tmp_dir")"
+ "@dbus@"/bin/dbus-daemon --nopidfile --nofork --config-file "@dbus@"/share/dbus-1/session.conf --address "unix:path=$dbus_socket_dir/session" &> /dev/null &
+ export DBUS_SESSION_BUS_ADDRESS="unix:path=$dbus_socket_dir/session"
+fi
+
+for PROFILE in $NIX_PROFILES; do
+ HDIR="$PROFILE/share/hunspell"
+ if [ -d "$HDIR" ]; then
+ export DICPATH=$DICPATH''${DICPATH:+:}$HDIR
+ fi
+done
+
+"@libreoffice@/bin/$(basename "$0")" "$@"
+code="$?"
+
+test -n "$dbus_socket_dir" && rm -rf "$dbus_socket_dir"
+exit "$code"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/xdg-open-brief.patch b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/xdg-open-brief.patch
new file mode 100644
index 000000000000..0a2f02e71fed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/libreoffice/xdg-open-brief.patch
@@ -0,0 +1,13 @@
+diff --git a/shell/source/unix/misc/senddoc.sh b/shell/source/unix/misc/senddoc.sh
+index 4519e01f26e2..8985711a2c01 100755
+--- a/shell/source/unix/misc/senddoc.sh
++++ b/shell/source/unix/misc/senddoc.sh
+@@ -393,6 +393,8 @@ case `basename "$MAILER" | sed 's/-.*$//'` in
+ MAILER=/usr/bin/kde-open
+ elif [ -x /usr/bin/xdg-open ] ; then
+ MAILER=/usr/bin/xdg-open
++ elif type -p xdg-open >/dev/null 2>&1 ; then
++ MAILER="$(type -p xdg-open)"
+ else
+ echo "Unsupported mail client: `basename $MAILER | sed 's/-.*^//'`"
+ exit 2
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/marp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/marp/default.nix
new file mode 100644
index 000000000000..5b05a9f164b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/marp/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, atomEnv, libXScrnSaver, gtk2 }:
+
+stdenv.mkDerivation rec {
+ pname = "marp";
+ version = "0.0.14";
+
+ src = fetchurl {
+ url = "https://github.com/yhatt/marp/releases/download/v${version}/${version}-Marp-linux-x64.tar.gz";
+ sha256 = "0nklzxwdx5llzfwz1hl2jpp2kwz78w4y63h5l00fh6fv6zisw6j4";
+ };
+
+ unpackPhase = ''
+ mkdir {locales,resources}
+ tar --delay-directory-restore -xf $src
+ chmod u+x {locales,resources}
+ '';
+
+ installPhase = ''
+ mkdir -p $out/lib/marp $out/bin
+ cp -r ./* $out/lib/marp
+ ln -s $out/lib/marp/Marp $out/bin
+ '';
+
+ postFixup = ''
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${atomEnv.libPath}:${stdenv.lib.makeLibraryPath [ libXScrnSaver gtk2 ]}:$out/lib/marp" \
+ $out/bin/Marp
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Markdown presentation writer, powered by Electron";
+ homepage = "https://yhatt.github.io/marp/";
+ license = licenses.mit;
+ maintainers = [ maintainers.puffnfresh ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/default.nix
new file mode 100644
index 000000000000..192585bd4b5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/default.nix
@@ -0,0 +1,147 @@
+{ fetchurl, stdenv, mkDerivation, dpkg, which
+, makeWrapper
+, alsaLib
+, desktop-file-utils
+, dbus
+, libcap
+, fontconfig
+, freetype
+, gcc
+, gconf
+, glib
+, icu
+, libxml2
+, libxslt
+, orc
+, nss
+, nspr
+, qtbase
+, qtsvg
+, qtdeclarative
+, qtwebchannel
+, qtquickcontrols
+, qtwebkit
+, qtwebengine
+, sqlite
+, xorg
+, zlib
+# The provided wrapper does this, but since we don't use it
+# we emulate the behavior. The downside is that this
+# will leave entries on your system after uninstalling mendeley.
+# (they can be removed by running '$out/bin/install-mendeley-link-handler.sh -u')
+, autorunLinkHandler ? true
+# Update script
+, writeScript
+, runtimeShell
+}:
+
+let
+ arch32 = "i686-linux";
+
+ arch = if stdenv.hostPlatform.system == arch32
+ then "i386"
+ else "amd64";
+
+ shortVersion = "1.19.5-stable";
+
+ version = "${shortVersion}_${arch}";
+
+ url = "http://desktop-download.mendeley.com/download/apt/pool/main/m/mendeleydesktop/mendeleydesktop_${version}.deb";
+ sha256 = if stdenv.hostPlatform.system == arch32
+ then "01x83a44qlxi937b128y8y0px0q4w37g72z652lc42kv50dhyy3f"
+ else "1cagqq0xziznaj97z30bqfhrwjv3a4h83ckhwigq35nhk1ggq1ry";
+
+ deps = [
+ qtbase
+ qtsvg
+ qtdeclarative
+ qtwebchannel
+ qtquickcontrols
+ qtwebkit
+ qtwebengine
+ alsaLib
+ dbus
+ freetype
+ fontconfig
+ gcc.cc
+ gconf
+ glib
+ icu
+ libcap
+ libxml2
+ libxslt
+ nspr
+ nss
+ orc
+ sqlite
+ xorg.libX11
+ xorg.xcbutilkeysyms
+ xorg.libxcb
+ xorg.libXcomposite
+ xorg.libXext
+ xorg.libXrender
+ xorg.libXi
+ xorg.libXcursor
+ xorg.libXtst
+ xorg.libXrandr
+ xorg.xcbutilimage
+ zlib
+ ];
+
+in
+
+mkDerivation {
+ pname = "mendeley";
+ inherit version;
+
+ src = fetchurl {
+ url = url;
+ sha256 = sha256;
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ dpkg which ] ++ deps;
+
+ propagatedUserEnvPkgs = [ gconf ];
+
+ dontUnpack = true;
+
+ dontWrapQtApps = true;
+
+ installPhase = ''
+ dpkg-deb -x $src $out
+ mv $out/opt/mendeleydesktop/{bin,lib,share} $out
+
+ interpreter=$(patchelf --print-interpreter $(readlink -f $(which patchelf)))
+ patchelf --set-interpreter $interpreter \
+ --set-rpath ${stdenv.lib.makeLibraryPath deps}:$out/lib \
+ $out/bin/mendeleydesktop
+
+ wrapQtApp $out/bin/mendeleydesktop \
+ --add-flags "--unix-distro-build" \
+ ${stdenv.lib.optionalString autorunLinkHandler # ignore errors installing the link handler
+ ''--run "$out/bin/install-mendeley-link-handler.sh $out/bin/mendeleydesktop ||:"''}
+
+ # Remove bundled qt bits
+ rm -rf $out/lib/qt
+ rm $out/bin/qt* $out/bin/Qt*
+
+ # Patch up link handler script
+ wrapProgram $out/bin/install-mendeley-link-handler.sh \
+ --prefix PATH ':' ${stdenv.lib.makeBinPath [ which gconf desktop-file-utils ] }
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ updateScript = import ./update.nix { inherit writeScript runtimeShell; };
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.mendeley.com";
+ description = "A reference manager and academic social network";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = with maintainers; [ dtzWill ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix
new file mode 100644
index 000000000000..56becea9959a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix
@@ -0,0 +1,61 @@
+{ writeScript, runtimeShell }:
+
+writeScript "update-mendeley" ''
+ #!${runtimeShell}
+ function follow() {
+ local URL=$1
+ while true; do
+ NEWURL=$(curl -m20 -sI "$URL" -o /dev/null -w '%{redirect_url}')
+ [ -z "$NEWURL" ] && break
+ [[ $NEWURL = $URL ]] && (echo "redirect loop?!"; exit 1)
+ echo "Following $URL -> $NEWURL ..." >&2
+ URL=$NEWURL
+ done
+
+ echo $URL
+ }
+
+ amd64URL=$(follow https://www.mendeley.com/repositories/ubuntu/stable/amd64/mendeleydesktop-latest)
+ amd64V=$(basename $amd64URL|grep -m1 -o "[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?")
+ i386URL=$(follow https://www.mendeley.com/repositories/ubuntu/stable/i386/mendeleydesktop-latest)
+ i386V=$(basename $i386URL|grep -m1 -o "[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?")
+
+ echo "amd64 version: $amd64V"
+ echo "i386 version: $i386V"
+ if [[ $amd64V != $i386V ]]; then
+ echo "Versions not the same!"
+ exit 1
+ fi
+
+ if grep -q -F "$amd64V" ${./default.nix}; then
+ echo "No new version yet, nothing to do."
+ echo "Have a nice day!"
+ exit 0
+ fi
+
+ amd64OldHash=$(nix-instantiate --eval --strict -A "mendeley.src.drvAttrs.outputHash" --argstr system "x86_64-linux"| tr -d '"')
+ i386OldHash=$(nix-instantiate --eval --strict -A "mendeley.src.drvAttrs.outputHash" --argstr system "i686-linux"| tr -d '"')
+
+ echo "Prefetching amd64..."
+ amd64NewHash=$(nix-prefetch-url $amd64URL)
+ echo "Prefetching i386..."
+ i386NewHash=$(nix-prefetch-url $i386URL)
+
+ # Don't actually update, just report that an update is available
+ cat <<EOF
+
+
+ Time to update to $amd64V !
+
+ 32bit (i386):
+ Old: $i386OldHash
+ New: $i386NewHash
+ 64bit (amd64):
+ Old: $amd64OldHash
+ New: $amd64NewHash
+
+ Exiting so this information is seen...
+ (no update is actually performed here)
+ EOF
+ exit 1
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/minetime/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/minetime/default.nix
new file mode 100644
index 000000000000..1241b97b427f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/minetime/default.nix
@@ -0,0 +1,50 @@
+{ appimageTools, fetchurl, lib, runCommandNoCC, stdenv, gsettings-desktop-schemas, gtk3, zlib }:
+
+let
+ name = "${pname}-${version}";
+ pname = "minetime";
+ version = "1.8.10";
+ appimage = fetchurl {
+ url = "https://github.com/marcoancona/MineTime/releases/download/v${version}/${name}.AppImage";
+ sha256 = "1a80lgk6v9kv9xb2y3i08gk25jm0pqyl57kfr5p1rbc33prhmcgw";
+ };
+ extracted = appimageTools.extractType2 {
+ inherit name;
+ src = appimage;
+ };
+ patched = runCommandNoCC "minetime-patchelf" {} ''
+ cp -av ${extracted} $out
+
+ x=$out/resources/app.asar.unpacked/services/scheduling/dist/MinetimeSchedulingService
+ chmod +w $x
+
+ patchelf \
+ --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
+ --replace-needed libz.so.1 ${zlib}/lib/libz.so.1 \
+ $x
+ '';
+in
+appimageTools.wrapAppImage rec {
+ inherit name;
+ src = patched;
+
+ profile = ''
+ export LC_ALL=C.UTF-8
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null; # no 32bit needed
+ extraPkgs = ps:
+ appimageTools.defaultFhsEnvArgs.multiPkgs ps
+ ++ (with ps; [ at-spi2-core at-spi2-atk libsecret libnotify ]);
+ extraInstallCommands = "mv $out/bin/{${name},${pname}}";
+
+ meta = with lib; {
+ description = "Modern, intuitive and smart calendar application";
+ homepage = "https://minetime.ai";
+ license = licenses.unfree;
+ # Should be cross-platform, but for now we just grab the appimage
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/mmex/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/mmex/default.nix
new file mode 100644
index 000000000000..6d430a286bd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/mmex/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, sqlite, wxGTK30, gettext, wrapGAppsHook }:
+
+
+let
+ version = "1.3.3";
+in
+ stdenv.mkDerivation {
+ pname = "money-manager-ex";
+ inherit version;
+
+ src = fetchgit {
+ url = "https://github.com/moneymanagerex/moneymanagerex.git";
+ rev = "refs/tags/v${version}";
+ sha256 = "0r4n93z3scv0i0zqflsxwv7j4yl8jy3gr0m4l30y1q8qv0zj9n74";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gettext
+ sqlite
+ wxGTK30
+ wxGTK30.gtk
+ ];
+
+ meta = {
+ description = "Easy-to-use personal finance software";
+ homepage = "https://www.moneymanagerex.org/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/moneyplex/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/moneyplex/default.nix
new file mode 100644
index 000000000000..85d9715bf396
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/moneyplex/default.nix
@@ -0,0 +1,122 @@
+{ stdenv, fetchurl, patchelf, coreutils, pcsclite
+, zlib, glib, gdk-pixbuf, gtk2, cairo, pango, libX11, atk, openssl
+, runtimeShell }:
+
+let
+ libPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc zlib glib gdk-pixbuf gtk2 cairo pango libX11 atk openssl
+ ];
+
+ src_i686 = {
+ url = "http://www.matrica.com/download/distribution/moneyplex_16_install32_22424.tar.gz";
+ sha256 = "0yfpc6s85r08g796dycl378kagkma865vp7j72npia3hjc4vwamr";
+ };
+
+ src_x86_64 = {
+ url = "http://www.matrica.com/download/distribution/moneyplex_16_install64_22424.tar.gz";
+ sha256 = "03vxbg1yp8qyvcn6bw2a5s134nxzq9cn0vqbmlld7hh4knbsfqzw";
+ };
+in
+
+stdenv.mkDerivation {
+ pname = "moneyplex";
+ version = "16.0.22424";
+
+ src = fetchurl (if stdenv.hostPlatform.system == "i686-linux" then src_i686
+ else if stdenv.hostPlatform.system == "x86_64-linux" then src_x86_64
+ else throw "moneyplex requires i686-linux or x86_64-linux");
+
+
+ phases = [ "unpackPhase" "installPhase" "postInstall" ];
+
+ buildInputs = [ ];
+
+ installPhase =
+ ''
+ mkdir -p "$out/opt/moneyplex"
+ cp -r . $out/opt/moneyplex
+
+ mkdir "$out/bin"
+
+ cat > $out/bin/moneyplex <<EOF
+ #!${runtimeShell}
+
+ if [ -z "\$XDG_DATA_HOME" ]; then
+ MDIR=\$HOME/.local/share/moneyplex
+ else
+ MDIR=\$XDG_DATA_HOME/moneyplex
+ fi
+
+ if [ ! -d "\$MDIR" ]; then
+ ${coreutils}/bin/mkdir -p \$MDIR
+ ${coreutils}/bin/cp -r $out/opt/moneyplex/* \$MDIR
+ ${coreutils}/bin/chmod 0644 \$MDIR/*
+ ${coreutils}/bin/chmod 0755 \$MDIR/system
+ ${coreutils}/bin/chmod 0644 \$MDIR/system/*
+ ${coreutils}/bin/chmod 0755 \$MDIR/reports
+ ${coreutils}/bin/chmod 0644 \$MDIR/reports/*
+ ${coreutils}/bin/chmod 0755 \$MDIR/moneyplex
+ ${coreutils}/bin/chmod 0755 \$MDIR/prestart
+ ${coreutils}/bin/chmod 0755 \$MDIR/mpxalarm
+ fi
+
+ if [ ! -d "\$MDIR/pcsc" ]; then
+ ${coreutils}/bin/mkdir -p \$MDIR/pcsc
+ fi
+ if [ ! -e "\$MDIR/pcsc/libpcsclite.so.1" ] || [ ! \`${coreutils}/bin/readlink -f "\$MDIR/pcsc/libpcsclite.so.1"\` -ef "${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so.1" ]; then
+ ${coreutils}/bin/ln -sf "${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so.1" "\$MDIR/pcsc/libpcsclite.so.1"
+ fi
+
+
+ if [ -e "\$MDIR/rup/rupremote.lst" ]; then
+ for i in \`${coreutils}/bin/cat "\$MDIR/rup/rupremote.lst"\`; do
+ ${coreutils}/bin/mv "\$MDIR/rup/"\`${coreutils}/bin/basename \$i\` "\$MDIR/\$i"
+ done
+ rm -r "\$MDIR/rup/rupremote.lst"
+ fi
+
+ if [ ! -e "\$MDIR/moneyplex.patched" ] || [ "\$MDIR/moneyplex" -nt "\$MDIR/moneyplex.patched" ]; then
+ ${coreutils}/bin/cp "\$MDIR/moneyplex" "\$MDIR/moneyplex.patched"
+ ${coreutils}/bin/chmod 0755 "\$MDIR/moneyplex.patched"
+ fi
+ if [ ! \`${patchelf}/bin/patchelf --print-interpreter \$MDIR/moneyplex.patched\` = $(cat $NIX_CC/nix-support/dynamic-linker) ] ||
+ [ ! \`${patchelf}/bin/patchelf --print-rpath \$MDIR/moneyplex.patched\` = "${libPath}" ]; then
+ ${patchelf}/bin/patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath "${libPath}" "\$MDIR/moneyplex.patched"
+ fi
+
+ exec \$MDIR/moneyplex.patched
+ EOF
+
+ chmod +x $out/bin/moneyplex
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/icons
+ cp -r $out/opt/moneyplex/system/mpx256.png $out/share/icons/moneyplex.png
+
+ mkdir -p $out/share/applications
+ cat > $out/share/applications/moneyplex.desktop <<EOF
+ [Desktop Entry]
+ Type=Application
+ Encoding=UTF-8
+ Name=Moneyplex
+ GenericName=Moneyplex online banking software
+ Comment=Online banking software
+ Icon=$out/share/icons/moneyplex.png
+ Exec=$out/bin/moneyplex
+ Terminal=false
+ Categories=Application;
+ StartupNotify=true
+ EOF
+ '';
+
+
+ meta = with stdenv.lib; {
+ description = "Moneyplex online banking software";
+ maintainers = with maintainers; [ tstrobel ];
+ platforms = platforms.linux;
+ license = licenses.unfree;
+ downloadPage = "http://matrica.de/download/download.html";
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/mytetra/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/mytetra/default.nix
new file mode 100644
index 000000000000..45d9e29ebe9a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/mytetra/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, mkDerivation, fetchurl, qmake, qtsvg, makeWrapper, xdg_utils }:
+
+let
+ version = "1.44.55";
+in mkDerivation {
+ pname = "mytetra";
+ inherit version;
+ src = fetchurl {
+ url = "https://github.com/xintrea/mytetra_dev/archive/v.${version}.tar.gz";
+ sha256 = "13lmfvschm1xwr0ys2ykhs0bb83m2f39rk1jdd7zf8yxlqki4i6l";
+ };
+
+ nativeBuildInputs = [ qmake makeWrapper ];
+ buildInputs = [ qtsvg ];
+
+ hardeningDisable = [ "format" ];
+
+ preBuild = ''
+ substituteInPlace app/app.pro \
+ --replace /usr/local/bin $out/bin \
+ --replace /usr/share $out/share
+
+ substituteInPlace app/src/views/mainWindow/MainWindow.cpp \
+ --replace ":/resource/pic/logo.svg" "$out/share/icons/hicolor/48x48/apps/mytetra.png"
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/mytetra \
+ --prefix PATH : ${xdg_utils}/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Smart manager for information collecting";
+ homepage = "https://webhamster.ru/site/page/index/articles/projectcode/138";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.gnidorah ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/notes-up/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/notes-up/default.nix
new file mode 100644
index 000000000000..6936387fb3cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/notes-up/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, pantheon
+, pkgconfig
+, vala_0_46
+, cmake
+, ninja
+, gtk3
+, gtksourceview3
+, webkitgtk
+, gtkspell3
+, glib
+, libgee
+, sqlite
+, discount
+, wrapGAppsHook
+, withPantheon ? false }:
+
+stdenv.mkDerivation rec {
+ pname = "notes-up";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "Philip-Scott";
+ repo = "Notes-up";
+ rev = version;
+ sha256 = "0bklgp8qrrj9y5m77xqbpy1ld2d9ya3rlxklgzx3alffq5312i4s";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ # fails with newer vala: https://github.com/Philip-Scott/Notes-up/issues/349
+ vala_0_46
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ discount
+ glib
+ gtk3
+ gtksourceview3
+ gtkspell3
+ libgee
+ pantheon.granite
+ sqlite
+ webkitgtk
+ ];
+
+ # Whether to build with contractor support (Pantheon specific)
+ cmakeFlags = stdenv.lib.optional (!withPantheon) "-Dnoele=yes";
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Markdown notes editor and manager designed for elementary OS"
+ + stdenv.lib.optionalString withPantheon " - built with Contractor support";
+ homepage = "https://github.com/Philip-Scott/Notes-up";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ davidak worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/osmo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/osmo/default.nix
new file mode 100644
index 000000000000..507acb862a92
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/osmo/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, libxml2, gettext, libical, libnotify
+, libarchive, gspell, webkitgtk, libgringotts, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "osmo";
+ version = "0.4.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/osmo-pim/${pname}-${version}.tar.gz";
+ sha256 = "19h3dnjgqbawnvgnycyp4n5b6mjsp5zghn3b69b6f3xa3fyi32qy";
+ };
+
+ nativeBuildInputs = [ pkgconfig gettext wrapGAppsHook ];
+ buildInputs = [ gtk3 libxml2 libical libnotify libarchive
+ gspell webkitgtk libgringotts ];
+
+ meta = with stdenv.lib; {
+ description = "A handy personal organizer";
+ homepage = "http://clayo.org/osmo/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/p3x-onenote/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/p3x-onenote/default.nix
new file mode 100644
index 000000000000..55854be1020f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/p3x-onenote/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, appimageTools, desktop-file-utils, fetchurl }:
+
+let
+ version = "2020.10.111";
+ name = "p3x-onenote-${version}";
+
+ plat = {
+ aarch64-linux = "-arm64";
+ armv7l-linux = "-armv7l";
+ i386-linux = "-i386";
+ i686-linux = "-i386";
+ x86_64-linux = "";
+ }.${stdenv.hostPlatform.system};
+
+ sha256 = {
+ aarch64-linux = "0a3c0w1312l6k2jvn7cn8priibnh8wg0184zjcli29f9ds1afl5s";
+ armv7l-linux = "172m2d94zzm8q61pvnjy01cl5fg11ad9hfh1han0gycnv3difniy";
+ i386-linux = "12m0i5sb15sbysp5fvhbj4k36950m7kpjr12n88r5fpkyh13ihsp";
+ i686-linux = "12m0i5sb15sbysp5fvhbj4k36950m7kpjr12n88r5fpkyh13ihsp";
+ x86_64-linux = "0bn48r55l5dh8zcf8ijh3z6hlyp3s6fvfyqc1csvnslm63dfkzcq";
+ }.${stdenv.hostPlatform.system};
+
+ src = fetchurl {
+ url = "https://github.com/patrikx3/onenote/releases/download/v${version}/P3X-OneNote-${version}${plat}.AppImage";
+ inherit sha256;
+ };
+
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+in
+appimageTools.wrapType2 rec {
+ inherit name src;
+
+ extraInstallCommands = ''
+ mkdir -p $out/share/pixmaps $out/share/licenses/p3x-onenote
+ cp ${appimageContents}/p3x-onenote.png $out/share/pixmaps/
+ cp ${appimageContents}/p3x-onenote.desktop $out
+ cp ${appimageContents}/LICENSE.electron.txt $out/share/licenses/p3x-onenote/LICENSE
+ mv $out/bin/${name} $out/bin/p3x-onenote
+
+ ${desktop-file-utils}/bin/desktop-file-install --dir $out/share/applications \
+ --set-key Exec --set-value $out/bin/p3x-onenote \
+ --set-key Comment --set-value "P3X OneNote Linux" \
+ --delete-original $out/p3x-onenote.desktop
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/patrikx3/onenote";
+ description = "Linux Electron Onenote - A Linux compatible version of OneNote";
+ license = licenses.mit;
+ maintainers = with maintainers; [ tiagolobocastro ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/default.nix
new file mode 100644
index 000000000000..ebd057da5ce1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/default.nix
@@ -0,0 +1,174 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, makeWrapper
+, callPackage
+
+, python3
+, imagemagick7
+, ghostscript
+, optipng
+, tesseract
+, unpaper
+}:
+
+## Usage
+
+# ${paperless}/bin/paperless wraps manage.py
+
+# ${paperless}/share/paperless/setup-env.sh can be sourced from a
+# shell script to setup a Paperless environment
+
+# paperless.withConfig is a convenience function to setup a
+# configured Paperless instance. (See ./withConfig.nix)
+
+# For WSGI with gunicorn, use a shell script like this:
+# let
+# pythonEnv = paperless.python.withPackages (ps: paperless.runtimePackages ++ [ ps.gunicorn ]);
+# in
+# writers.writeBash "run-gunicorn" ''
+# source ${paperless}/share/paperless/setup-env.sh
+# PYTHONPATH=$paperlessSrc ${pythonEnv}/bin/gunicorn paperless.wsgi
+# ''
+
+let
+ paperless = stdenv.mkDerivation rec {
+ pname = "paperless";
+ version = "2.7.0";
+
+ src = fetchFromGitHub {
+ owner = "the-paperless-project";
+ repo = "paperless";
+ rev = version;
+ sha256 = "0pkmyky1crjnsg7r0gfk0fadisfsgzlsq6afpz16wx4hp6yvkkf7";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ doCheck = true;
+ dontInstall = true;
+
+ pythonEnv = python.withPackages (_: runtimePackages);
+ pythonCheckEnv = python.withPackages (_: (runtimePackages ++ checkPackages));
+
+ unpackPhase = ''
+ srcDir=$out/share/paperless
+ mkdir -p $srcDir
+ cp -r --no-preserve=mode $src/src/* $src/LICENSE $srcDir
+ '';
+
+ postPatch = ''
+ # django-cors-headers 3.x requires a scheme for allowed hosts
+ substituteInPlace $out/share/paperless/paperless/settings.py \
+ --replace "localhost:8080" "http://localhost:8080"
+ '';
+
+ buildPhase = let
+ # Paperless has explicit runtime checks that expect these binaries to be in PATH
+ extraBin = lib.makeBinPath [ imagemagick7 ghostscript optipng tesseract unpaper ];
+ in ''
+ ${python.interpreter} -m compileall $srcDir
+
+ makeWrapper $pythonEnv/bin/python $out/bin/paperless \
+ --set PATH ${extraBin} --add-flags $out/share/paperless/manage.py
+
+ # A shell snippet that can be sourced to setup a paperless env
+ cat > $out/share/paperless/setup-env.sh <<EOF
+ export PATH="$pythonEnv/bin:${extraBin}''${PATH:+:}$PATH"
+ export paperlessSrc=$out/share/paperless
+ EOF
+ '';
+
+ checkPhase = ''
+ source $out/share/paperless/setup-env.sh
+ tmpDir=$(realpath testsTmp)
+ mkdir $tmpDir
+ export HOME=$tmpDir
+ export PAPERLESS_MEDIADIR=$tmpDir
+ cd $paperlessSrc
+ # Prevent tests from writing to the derivation output
+ chmod -R -w $out
+ # Disable cache to silence a pytest warning ("could not create cache")
+ $pythonCheckEnv/bin/pytest -p no:cacheprovider
+ '';
+
+ passthru = {
+ withConfig = callPackage ./withConfig.nix {};
+ inherit python runtimePackages checkPackages tesseract;
+ };
+
+ meta = with lib; {
+ description = "Scan, index, and archive all of your paper documents";
+ homepage = "https://github.com/the-paperless-project/paperless";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.earvstedt ];
+ };
+ };
+
+ python = python3.override {
+ packageOverrides = self: super: let
+ customPkgs = import ./python-modules super fetchFromGitHub; in
+ {
+ pyocr = pyocrWithUserTesseract super;
+
+ # Paperless only supports Django 2.0
+ django = customPkgs.django_2_0;
+
+ # Paperless is incompatible with factory_boy >= 3
+ factory_boy = customPkgs.factory_boy_2_12_0;
+
+ # The current version of django_extensions is incompatible with django 2.0
+ django_extensions = customPkgs.django_extensions_2_2_8;
+
+ # These are pre-release versions, hence they are private to this pkg
+ django-filter = self.callPackage ./python-modules/django-filter.nix {};
+ django-crispy-forms = self.callPackage ./python-modules/django-crispy-forms.nix {};
+ };
+ };
+
+ runtimePackages = with python.pkgs; [
+ dateparser
+ dateutil
+ django
+ django-cors-headers
+ django-crispy-forms
+ django-filter
+ django_extensions
+ djangoql
+ djangorestframework
+ factory_boy
+ filemagic
+ fuzzywuzzy
+ langdetect
+ pdftotext
+ pillow
+ psycopg2
+ pyocr
+ python-dotenv
+ python-gnupg
+ pytz
+ termcolor
+ ] ++ (lib.optional stdenv.isLinux inotify-simple);
+
+ checkPackages = with python.pkgs; [
+ pytest
+ pytest-django
+ pytest-env
+ pytest_xdist
+ ];
+
+ pyocrWithUserTesseract = pyPkgs:
+ let
+ pyocr = pyPkgs.pyocr.override { inherit tesseract; };
+ in
+ if pyocr.outPath == pyPkgs.pyocr.outPath then
+ pyocr
+ else
+ # The user has provided a custom tesseract derivation that might be
+ # missing some languages that are required for PyOCR's tests. Disable them to
+ # avoid build errors.
+ pyocr.overridePythonAttrs (attrs: {
+ doCheck = false;
+ });
+in
+ paperless
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/default.nix
new file mode 100644
index 000000000000..4c5510ebb743
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/default.nix
@@ -0,0 +1,30 @@
+pyPkgs: fetchFromGitHub:
+{
+ django_2_0 = pyPkgs.django_2.overridePythonAttrs (old: rec {
+ version = "2.0.12";
+ src = pyPkgs.fetchPypi {
+ inherit (old) pname;
+ inherit version;
+ sha256 = "15s8z54k0gf9brnz06521bikm60ddw5pn6v3nbvnl47j1jjsvwz2";
+ };
+ });
+
+ django_extensions_2_2_8 = pyPkgs.django_extensions.overridePythonAttrs (old: rec {
+ version = "2.2.8";
+ src = fetchFromGitHub {
+ owner = old.pname;
+ repo = old.pname;
+ rev = version;
+ sha256 = "1gd3nykwzh3azq1p9cvgkc3l5dwrv7y86sfjxd9llbyj8ky71iaj";
+ };
+ });
+
+ factory_boy_2_12_0 = pyPkgs.factory_boy.overridePythonAttrs (old: rec {
+ version = "2.12.0";
+ src = pyPkgs.fetchPypi {
+ inherit (old) pname;
+ inherit version;
+ sha256 = "0w53hjgag6ad5i2vmrys8ysk54agsqvgbjy9lg8g0d8pi9h8vx7s";
+ };
+ });
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix
new file mode 100644
index 000000000000..c470a56b8a11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, pytest_4, pytest-django, django }:
+
+buildPythonPackage {
+ pname = "django-crispy-forms";
+ version = "2019.04.21";
+
+ src = fetchFromGitHub {
+ owner = "django-crispy-forms";
+ repo = "django-crispy-forms";
+ rev = "e25a5326697e5b545689b3a914e516404a6911bb";
+ sha256 = "12zqa76q6i7j47aqvhilivpbdplgp9zw2q8zfcjzlgclrqafaj39";
+ };
+
+ # For reasons unknown, the source dir must contain a dash
+ # for the tests to run successfully
+ postUnpack = ''
+ mv $sourceRoot source-
+ export sourceRoot=source-
+ '';
+
+ checkInputs = [ pytest_4 pytest-django django ];
+
+ checkPhase = ''
+ PYTHONPATH="$(pwd):$PYTHONPATH" \
+ DJANGO_SETTINGS_MODULE=crispy_forms.tests.test_settings \
+ pytest crispy_forms/tests
+ '';
+
+ meta = with lib; {
+ description = "The best way to have DRY Django forms";
+ homepage = "https://github.com/maraujop/django-crispy-forms";
+ license = licenses.mit;
+ maintainers = with maintainers; [ earvstedt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/django-filter.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/django-filter.nix
new file mode 100644
index 000000000000..d7f20bd9d37d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/python-modules/django-filter.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, python, pythonOlder, fetchFromGitHub
+, django, django-crispy-forms, djangorestframework, mock, pytz }:
+
+buildPythonPackage rec {
+ pname = "django-filter";
+ version = "2.1.0-pre";
+ disabled = pythonOlder "3.4";
+
+ src = fetchFromGitHub {
+ owner = "carltongibson";
+ repo = pname;
+ rev = "24adad8c48bc9e7c7539b6510ffde4ce4effdc29";
+ sha256 = "0hv4w95jnlzp9vdximl6bb27fyi75001jhvsbs0ikkd8amq8iaj7";
+ };
+
+ checkInputs = [ django django-crispy-forms djangorestframework mock pytz ];
+
+ checkPhase = "${python.interpreter} runtests.py";
+
+ meta = with lib; {
+ description = "A reusable Django application for allowing users to filter querysets dynamically.";
+ homepage = "https://github.com/carltongibson/django-filter";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ earvstedt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/withConfig.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/withConfig.nix
new file mode 100644
index 000000000000..652d1478c0ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperless/withConfig.nix
@@ -0,0 +1,68 @@
+{ paperless, lib, writers }:
+
+## Usage
+#
+# nix-build --out-link ./paperless -E '
+# (import <nixpkgs> {}).paperless.withConfig {
+# dataDir = /tmp/paperless-data;
+# config = {
+# PAPERLESS_DISABLE_LOGIN = "true";
+# };
+# }'
+#
+# Setup DB
+# ./paperless migrate
+#
+# Consume documents in ${dataDir}/consume
+# ./paperless document_consumer --oneshot
+#
+# Start web interface
+# ./paperless runserver --noreload localhost:8000
+
+{ config ? {}, dataDir ? null, ocrLanguages ? null
+, paperlessPkg ? paperless, extraCmds ? "" }:
+with lib;
+let
+ paperless = if ocrLanguages == null then
+ paperlessPkg
+ else
+ (paperlessPkg.override {
+ tesseract = paperlessPkg.tesseract.override {
+ enableLanguages = ocrLanguages;
+ };
+ }).overrideDerivation (_: {
+ # `ocrLanguages` might be missing some languages required by the tests.
+ doCheck = false;
+ });
+
+ envVars = (optionalAttrs (dataDir != null) {
+ PAPERLESS_CONSUMPTION_DIR = "${dataDir}/consume";
+ PAPERLESS_MEDIADIR = "${dataDir}/media";
+ PAPERLESS_STATICDIR = "${dataDir}/static";
+ PAPERLESS_DBDIR = dataDir;
+ }) // config;
+
+ envVarDefs = mapAttrsToList (n: v: ''export ${n}="${toString v}"'') envVars;
+ setupEnvVars = builtins.concatStringsSep "\n" envVarDefs;
+
+ setupEnv = ''
+ source ${paperless}/share/paperless/setup-env.sh
+ ${setupEnvVars}
+ ${optionalString (dataDir != null) ''
+ mkdir -p "$PAPERLESS_CONSUMPTION_DIR" \
+ "$PAPERLESS_MEDIADIR" \
+ "$PAPERLESS_STATICDIR" \
+ "$PAPERLESS_DBDIR"
+ ''}
+ '';
+
+ runPaperless = writers.writeBash "paperless" ''
+ set -e
+ ${setupEnv}
+ ${extraCmds}
+ exec python $paperlessSrc/manage.py "$@"
+ '';
+in
+ runPaperless // {
+ inherit paperless setupEnv;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/openpaperwork-core.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/openpaperwork-core.nix
new file mode 100644
index 000000000000..cae55ae95f1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/openpaperwork-core.nix
@@ -0,0 +1,42 @@
+{ buildPythonPackage, lib, fetchFromGitLab
+
+, isPy3k, isPyPy
+
+, distro, setuptools
+
+, pkgs
+}:
+
+buildPythonPackage rec {
+ pname = "openpaperwork-core";
+ inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
+
+ sourceRoot = "source/openpaperwork-core";
+
+ # Python 2.x is not supported.
+ disabled = !isPy3k && !isPyPy;
+
+ patchPhase = ''
+ echo 'version = "${version}"' > src/openpaperwork_core/_version.py
+ chmod a+w -R ..
+ patchShebangs ../tools
+ '';
+
+ propagatedBuildInputs = [
+ distro
+ setuptools
+ ];
+
+ nativeBuildInputs = [ pkgs.gettext pkgs.which ];
+
+ preBuild = ''
+ make l10n_compile
+ '';
+
+ meta = {
+ description = "Backend part of Paperwork (Python API, no UI)";
+ homepage = "https://openpaper.work/";
+ license = lib.licenses.gpl3Plus;
+ maintainers = with lib.maintainers; [ aszlig symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/openpaperwork-gtk.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/openpaperwork-gtk.nix
new file mode 100644
index 000000000000..5dae745ce2eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/openpaperwork-gtk.nix
@@ -0,0 +1,52 @@
+{ buildPythonPackage
+, lib
+, fetchFromGitLab
+
+, isPy3k
+, isPyPy
+
+, openpaperwork-core
+, pillow
+, pygobject3
+, distro
+
+, pkgs
+}:
+
+buildPythonPackage rec {
+ pname = "openpaperwork-gtk";
+ inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
+
+ sourceRoot = "source/openpaperwork-gtk";
+
+ # Python 2.x is not supported.
+ disabled = !isPy3k && !isPyPy;
+
+ patchPhase = ''
+ echo 'version = "${version}"' > src/openpaperwork_gtk/_version.py
+ chmod a+w -R ..
+ patchShebangs ../tools
+ '';
+
+ nativeBuildInputs = [ pkgs.gettext pkgs.which ];
+ preBuild = ''
+ make l10n_compile
+ '';
+
+ propagatedBuildInputs = [
+ pillow
+ pygobject3
+ pkgs.poppler_gi
+ pkgs.gtk3
+ distro
+ pkgs.pango
+ openpaperwork-core
+ ];
+
+ meta = {
+ description = "Reusable GTK components of Paperwork";
+ homepage = "https://openpaper.work/";
+ license = lib.licenses.gpl3Plus;
+ maintainers = with lib.maintainers; [ aszlig symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-backend.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-backend.nix
new file mode 100644
index 000000000000..a033bd695db6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-backend.nix
@@ -0,0 +1,77 @@
+{ buildPythonPackage
+, lib
+, fetchFromGitLab
+
+, isPy3k
+, isPyPy
+
+, pyenchant
+, simplebayes
+, pypillowfight
+, pycountry
+, whoosh
+, termcolor
+, python-Levenshtein
+, pygobject3
+, pyocr
+, natsort
+, libinsane
+, distro
+, openpaperwork-core
+, openpaperwork-gtk
+, psutil
+
+, pkgs
+}:
+
+buildPythonPackage rec {
+ pname = "paperwork-backend";
+ inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
+
+ sourceRoot = "source/paperwork-backend";
+
+ # Python 2.x is not supported.
+ disabled = !isPy3k && !isPyPy;
+
+ patchPhase = ''
+ echo 'version = "${version}"' > src/paperwork_backend/_version.py
+ chmod a+w -R ..
+ patchShebangs ../tools
+ '';
+
+ propagatedBuildInputs = [
+ pyenchant
+ simplebayes
+ pypillowfight
+ pycountry
+ whoosh
+ termcolor
+ python-Levenshtein
+ libinsane
+ pygobject3
+ pyocr
+ natsort
+ pkgs.poppler_gi
+ pkgs.gtk3
+ distro
+ openpaperwork-core
+ ];
+
+ preCheck = ''
+ export HOME=$(mktemp -d)
+ '';
+
+ nativeBuildInputs = [ pkgs.gettext pkgs.which ];
+ preBuild = ''
+ make l10n_compile
+ '';
+
+ checkInputs = [ openpaperwork-gtk psutil ];
+
+ meta = {
+ description = "Backend part of Paperwork (Python API, no UI)";
+ homepage = "https://openpaper.work/";
+ license = lib.licenses.gpl3Plus;
+ maintainers = with lib.maintainers; [ aszlig symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-gtk.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-gtk.nix
new file mode 100644
index 000000000000..c493421dd11b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-gtk.nix
@@ -0,0 +1,105 @@
+{ lib
+, python3Packages
+, gtk3
+, cairo
+, aspellDicts
+, buildEnv
+, gnome3
+, librsvg
+, xvfb_run
+, dbus
+, libnotify
+, wrapGAppsHook
+, fetchFromGitLab
+, which
+, gettext
+, gobject-introspection
+}:
+
+python3Packages.buildPythonApplication rec {
+ inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
+ pname = "paperwork";
+
+ sourceRoot = "source/paperwork-gtk";
+
+ # Patch out a few paths that assume that we're using the FHS:
+ postPatch = ''
+ chmod a+w -R ..
+ patchShebangs ../tools
+
+ export HOME=$(mktemp -d)
+
+ cat - ../AUTHORS.py > src/paperwork_gtk/_version.py <<EOF
+ # -*- coding: utf-8 -*-
+ version = "${version}"
+ authors_code=""
+ EOF
+ '';
+
+ preBuild = ''
+ make l10n_compile
+ '';
+
+ ASPELL_CONF = "dict-dir ${buildEnv {
+ name = "aspell-all-dicts";
+ paths = lib.collect lib.isDerivation aspellDicts;
+ }}/lib/aspell";
+
+ postInstall = ''
+ # paperwork-shell needs to be re-wrapped with access to paperwork
+ cp ${python3Packages.paperwork-shell}/bin/.paperwork-cli-wrapped $out/bin/paperwork-cli
+ # install desktop files and icons
+ XDG_DATA_HOME=$out/share $out/bin/paperwork-gtk install --user
+ '';
+
+ checkInputs = [ xvfb_run dbus.daemon ];
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ gobject-introspection
+ (lib.getBin gettext)
+ which
+ ];
+
+ buildInputs = [
+ gnome3.adwaita-icon-theme
+ libnotify
+ librsvg
+ gtk3
+ cairo
+ ];
+
+ dontWrapGApps = true;
+
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ # A few parts of chkdeps need to have a display and a dbus session, so we not
+ # only need to run a virtual X server + dbus but also have a large enough
+ # resolution, because the Cairo test tries to draw a 200x200 window.
+ preCheck = ''
+ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+ --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+ $out/bin/paperwork-gtk chkdeps
+ '';
+
+ propagatedBuildInputs = with python3Packages; [
+ paperwork-backend
+ paperwork-shell
+ openpaperwork-gtk
+ openpaperwork-core
+ pypillowfight
+ pyxdg
+ dateutil
+ setuptools
+ ];
+
+ meta = {
+ description = "A personal document manager for scanned documents";
+ homepage = "https://openpaper.work/";
+ license = lib.licenses.gpl3Plus;
+ maintainers = with lib.maintainers; [ aszlig symphorien ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-shell.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-shell.nix
new file mode 100644
index 000000000000..1be6f329e3cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/paperwork-shell.nix
@@ -0,0 +1,59 @@
+{ buildPythonPackage
+, lib
+, fetchFromGitLab
+
+, isPy3k
+, isPyPy
+
+, openpaperwork-core
+, openpaperwork-gtk
+, paperwork-backend
+, fabulous
+, getkey
+
+, pkgs
+}:
+
+buildPythonPackage rec {
+ pname = "paperwork-shell";
+ inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
+
+ sourceRoot = "source/paperwork-shell";
+
+ # Python 2.x is not supported.
+ disabled = !isPy3k && !isPyPy;
+
+ patchPhase = ''
+ echo 'version = "${version}"' > src/paperwork_shell/_version.py
+ chmod a+w -R ..
+ patchShebangs ../tools
+ '';
+
+ propagatedBuildInputs = [
+ openpaperwork-core
+ paperwork-backend
+ fabulous
+ getkey
+ ];
+
+ checkInputs = [
+ openpaperwork-gtk
+ ];
+
+ nativeBuildInputs = [ pkgs.gettext pkgs.which ];
+ preBuild = ''
+ make l10n_compile
+ '';
+
+ preCheck = ''
+ export HOME=$(mktemp -d)
+ "$out/bin/paperwork-cli" chkdeps
+ '';
+
+ meta = {
+ description = "CLI for Paperwork";
+ homepage = "https://openpaper.work/";
+ license = lib.licenses.gpl3Plus;
+ maintainers = with lib.maintainers; [ aszlig symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/src.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/src.nix
new file mode 100644
index 000000000000..70770676edde
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/paperwork/src.nix
@@ -0,0 +1,12 @@
+{fetchFromGitLab}:
+rec {
+ version = "2.0.1";
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ repo = "paperwork";
+ group = "World";
+ owner = "OpenPaperwork";
+ rev = version;
+ sha256 = "16pc4drwpjl4937wdavs6wk0j1qs474b072wplhs8ywxfgqip1h4";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/pinpoint/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/pinpoint/default.nix
new file mode 100644
index 000000000000..ce175d8517f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/pinpoint/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, pkgconfig, autoconf, automake, clutter, clutter-gst
+, gdk-pixbuf, cairo, clutter-gtk }:
+
+stdenv.mkDerivation rec {
+ pname = "pinpoint";
+ version = "0.1.8";
+ src = fetchurl {
+ url = "http://ftp.gnome.org/pub/GNOME/sources/pinpoint/0.1/${pname}-${version}.tar.xz";
+ sha256 = "1jp8chr9vjlpb5lybwp5cg6g90ak5jdzz9baiqkbg0anlg8ps82s";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ autoconf automake clutter clutter-gst gdk-pixbuf
+ cairo clutter-gtk ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/action/show/Apps/Pinpoint";
+ description = "A tool for making hackers do excellent presentations";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/planner/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/planner/default.nix
new file mode 100644
index 000000000000..f33946d6b5a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/planner/default.nix
@@ -0,0 +1,79 @@
+{ stdenv
+, fetchFromGitLab
+, pkgconfig
+, intltool
+, automake111x
+, autoconf
+, libtool
+, gnome2
+, libxslt
+, python2
+}:
+
+let version = "unstable-2019-02-13";
+
+in stdenv.mkDerivation {
+ pname = "planner";
+ inherit version;
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "GNOME";
+ repo = "planner";
+ rev = "76d31defae4979aa51dd37e8888f61e9a6a51367";
+ sha256 = "0lbch4drg6005216hgcys93rq92p7zd20968x0gk254kckd9ag5w";
+ };
+
+ nativeBuildInputs = with gnome2; [
+ pkgconfig
+ intltool
+ automake111x
+ autoconf
+ libtool
+ gnome-common
+ gtk-doc
+ scrollkeeper
+ ];
+
+ buildInputs = with gnome2; [
+ GConf
+ gtk
+ libgnomecanvas
+ libgnomeui
+ libglade
+ libxslt
+ python2.pkgs.pygtk
+ ];
+
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
+
+ preConfigure = ''./autogen.sh'';
+ configureFlags = [
+ "--enable-python"
+ "--enable-python-plugin"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/Apps/Planner";
+ description = "Project management application for GNOME";
+ longDescription = ''
+ Planner is the GNOME project management tool.
+ Its goal is to be an easy-to-use no-nonsense cross-platform
+ project management application.
+
+ Planner is a GTK application written in C and licensed under the
+ GPLv2 or any later version. It can store its data in either xml
+ files or in a postgresql database. Projects can also be printed
+ to PDF or exported to HTML for easy viewing from any web browser.
+
+ Planner was originally created by Richard Hult and Mikael Hallendal
+ at Imendio.
+ '';
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ rasendubi amiloradovsky ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/portfolio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/portfolio/default.nix
new file mode 100644
index 000000000000..d89284f90e5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/portfolio/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, autoPatchelfHook
+, fetchurl
+, glibc
+, gcc-unwrapped
+, gtk3
+, jre
+, libsecret
+, makeDesktopItem
+, webkitgtk
+, wrapGAppsHook
+}:
+let
+ desktopItem = makeDesktopItem {
+ name = "Portfolio";
+ exec = "portfolio";
+ icon = "portfolio";
+ comment = "Calculate Investment Portfolio Performance";
+ desktopName = "Portfolio Performance";
+ categories = "Office;";
+ };
+
+ runtimeLibs = stdenv.lib.makeLibraryPath [ gtk3 webkitgtk ];
+in
+stdenv.mkDerivation rec {
+ pname = "PortfolioPerformance";
+ version = "0.49.3";
+
+ src = fetchurl {
+ url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
+ sha256 = "1j8d3bih2hs1c1a6pjqpmdlh2hbj76s00srl0f850d06jhldg3p6";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glibc
+ gcc-unwrapped
+ libsecret
+ ];
+
+ installPhase = ''
+ mkdir -p $out/portfolio
+ cp -av ./* $out/portfolio
+
+ makeWrapper $out/portfolio/PortfolioPerformance $out/bin/portfolio \
+ --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
+ --prefix PATH : ${jre}/bin
+
+ # Create desktop item
+ mkdir -p $out/share/applications
+ cp ${desktopItem}/share/applications/* $out/share/applications
+ mkdir -p $out/share/pixmaps
+ ln -s $out/portfolio/icon.xpm $out/share/pixmaps/portfolio.xpm
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple tool to calculate the overall performance of an investment portfolio";
+ homepage = "https://www.portfolio-performance.info/";
+ license = licenses.epl10;
+ maintainers = with maintainers; [ elohmeier oyren ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/pympress/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/pympress/default.nix
new file mode 100644
index 000000000000..b4307eb286e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/pympress/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, python3Packages
+, wrapGAppsHook
+, xvfb_run
+, gtk3
+, gobject-introspection
+, libcanberra-gtk3
+, dbus
+, poppler_gi
+, python3
+ }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "pympress";
+ version = "1.5.1";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "173d9scf2z29qg279jf33zcl7sgc3wp662fgpm943bn9667q18wf";
+ };
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ gobject-introspection
+ libcanberra-gtk3
+ poppler_gi
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ pycairo
+ pygobject3
+ python-vlc
+ watchdog
+ ];
+
+ doCheck = false; # there are no tests
+
+ meta = with lib; {
+ description = "Simple yet powerful PDF reader designed for dual-screen presentations";
+ license = licenses.gpl2Plus;
+ homepage = "https://cimbali.github.io/pympress/";
+ maintainers = [ maintainers.tbenst ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/qnotero/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/qnotero/default.nix
new file mode 100644
index 000000000000..7821b041064a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/qnotero/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
+
+python3Packages.buildPythonPackage rec {
+ pname = "qnotero";
+
+ version = "2.1.1";
+
+ src = fetchFromGitHub {
+ owner = "ealbiter";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "16ckcjxa3dgmz1y8gd57q2h84akra3j4bgl4fwv4m05bam3ml1xs";
+ };
+
+ propagatedBuildInputs = [ python3Packages.pyqt5 wrapQtAppsHook ];
+
+ patchPhase = ''
+ substituteInPlace ./setup.py \
+ --replace "/usr/share" "usr/share"
+
+ substituteInPlace ./libqnotero/_themes/light.py \
+ --replace "/usr/share" "$out/usr/share"
+ '';
+
+ preFixup = ''
+ wrapQtApp "$out"/bin/qnotero
+ '';
+
+ meta = {
+ description = "Quick access to Zotero references";
+ homepage = "http://www.cogsci.nl/software/qnotero";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.nico202 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/qownnotes/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/qownnotes/default.nix
new file mode 100644
index 000000000000..99b021429a65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/qownnotes/default.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, lib, fetchurl, qmake, qttools, qtbase, qtsvg, qtdeclarative, qtxmlpatterns, qtwayland, qtwebsockets, stdenv /* for isLinux */ }:
+
+mkDerivation rec {
+ pname = "qownnotes";
+ version = "20.2.5";
+
+ src = fetchurl {
+ url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
+ # Can grab official version like so:
+ # $ curl https://download.tuxfamily.org/qownnotes/src/qownnotes-20.2.5.tar.xz.sha256
+ sha256 = "c26d2a86a521cd243ec0a4788e7627e91cb5877dace73d93dd7d35dd02e9e4c5";
+ };
+
+ nativeBuildInputs = [ qmake qttools ];
+ buildInputs = [
+ qtbase qtsvg qtdeclarative qtxmlpatterns qtwebsockets
+ ] ++ lib.optional stdenv.isLinux qtwayland;
+
+ meta = with lib; {
+ description = "Plain-text file notepad and todo-list manager with markdown support and ownCloud / Nextcloud integration";
+
+ homepage = "https://www.qownnotes.org/";
+ platforms = platforms.all;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/scribus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/scribus/default.nix
new file mode 100644
index 000000000000..779a5cb0fea3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/scribus/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, pkgconfig, freetype, lcms, libtiff, libxml2
+, libart_lgpl, qt4, python2, cups, fontconfig, libjpeg
+, zlib, libpng, xorg, cairo, podofo, hunspell, boost, cmake, imagemagick, ghostscript }:
+
+let
+ icon = fetchurl {
+ url = "https://gist.githubusercontent.com/ejpcmac/a74b762026c9bc4000be624c3d085517/raw/18edc497c5cb6fdeef1c8aede37a0ee68413f9d3/scribus-icon-centered.svg";
+ sha256 = "0hq3i7c2l50445an9glhhg47kj26y16svfajc6naqn307ph9vzc3";
+ };
+
+ pythonEnv = python2.withPackages(ps: [ps.tkinter ps.pillow]);
+in stdenv.mkDerivation rec {
+ pname = "scribus";
+ version = "1.4.8";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}/${pname}-${version}.tar.xz";
+ sha256 = "0bq433myw6h1siqlsakxv6ghb002rp3mfz5k12bg68s0k6skn992";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = with xorg;
+ [ freetype lcms libtiff libxml2 libart_lgpl qt4
+ pythonEnv cups fontconfig
+ libjpeg zlib libpng podofo hunspell cairo
+ boost # for internal 2geom library
+ libXaw libXext libX11 libXtst libXi libXinerama
+ libpthreadstubs libXau libXdmcp
+ imagemagick # To build the icon
+ ];
+
+ postPatch = ''
+ substituteInPlace scribus/util_ghostscript.cpp \
+ --replace 'QString gsName("gs");' \
+ 'QString gsName("${ghostscript}/bin/gs");'
+ '';
+
+ postInstall = ''
+ for i in 16 24 48 64 96 128 256 512; do
+ mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
+ convert -background none -resize ''${i}x''${i} ${icon} $out/share/icons/hicolor/''${i}x''${i}/apps/scribus.png
+ done
+ '';
+
+ meta = {
+ maintainers = [ stdenv.lib.maintainers.marcweber ];
+ platforms = stdenv.lib.platforms.linux;
+ description = "Desktop Publishing (DTP) and Layout program for Linux";
+ homepage = "https://www.scribus.net";
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/scribus/unstable.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/scribus/unstable.nix
new file mode 100644
index 000000000000..c2c300b87486
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/scribus/unstable.nix
@@ -0,0 +1,91 @@
+{ boost
+, cairo
+, cmake
+, cups
+, fetchpatch
+, fetchurl
+, fontconfig
+, freetype
+, harfbuzzFull
+, hunspell
+, lcms2
+, libjpeg
+, libtiff
+, libxml2
+, mkDerivation
+, pixman
+, pkgconfig
+, podofo
+, poppler
+, poppler_data
+, python3
+, qtbase
+, qtimageformats
+, qttools
+, stdenv
+}:
+
+let
+ pythonEnv = python3.withPackages (
+ ps: [
+ ps.pillow
+ ps.tkinter
+ ]
+ );
+in
+mkDerivation rec {
+ pname = "scribus";
+
+ version = "1.5.6.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-devel/${pname}-${version}.tar.xz";
+ sha256 = "sha256-1CV2lVOc+kDerYq9rwTFHjTU10vK1aLJNNCObp1Dt6s=";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ ];
+
+ buildInputs = [
+ boost
+ cairo
+ cups
+ fontconfig
+ freetype
+ harfbuzzFull
+ hunspell
+ lcms2
+ libjpeg
+ libtiff
+ libxml2
+ pixman
+ podofo
+ poppler
+ poppler_data
+ pythonEnv
+ qtbase
+ qtimageformats
+ qttools
+ ];
+
+ meta = with stdenv.lib; {
+ maintainers = with maintainers; [
+ erictapen
+ kiwi
+ ];
+ platforms = platforms.linux;
+ description = "Desktop Publishing (DTP) and Layout program for Linux";
+ homepage = "https://www.scribus.net";
+ # There are a lot of licenses... https://github.com/scribusproject/scribus/blob/20508d69ca4fc7030477db8dee79fd1e012b52d2/COPYING#L15-L19
+ license = with licenses; [
+ bsd3
+ gpl2
+ mit
+ publicDomain
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/skanlite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/skanlite/default.nix
new file mode 100644
index 000000000000..8e583f99a1a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/skanlite/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, mkDerivation, fetchurl, cmake, extra-cmake-modules, qtbase,
+ kcoreaddons, kdoctools, ki18n, kio, kxmlgui, ktextwidgets,
+ libksane
+}:
+
+let
+ minorVersion = "2.2";
+in mkDerivation rec {
+ name = "skanlite-2.2.0";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/skanlite/${minorVersion}/${name}.tar.xz";
+ sha256 = "VP7MOZdUe64XIVr3r0aKIl1IPds3vjBTZzOS3N3VhOQ=";
+ };
+
+ nativeBuildInputs = [ cmake kdoctools extra-cmake-modules ];
+
+ buildInputs = [
+ qtbase
+ kcoreaddons kdoctools ki18n kio kxmlgui ktextwidgets
+ libksane
+ ];
+
+ meta = with stdenv.lib; {
+ description = "KDE simple image scanning application";
+ homepage = "http://www.kde.org/applications/graphics/skanlite/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pshendry ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/skrooge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/skrooge/default.nix
new file mode 100644
index 000000000000..067b06747d77
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/skrooge/default.nix
@@ -0,0 +1,42 @@
+{ mkDerivation, lib, fetchpatch, fetchurl,
+ cmake, extra-cmake-modules, qtwebengine, qtscript, grantlee,
+ kxmlgui, kwallet, kparts, kdoctools, kjobwidgets, kdesignerplugin,
+ kiconthemes, knewstuff, sqlcipher, qca-qt5, kactivities, karchive,
+ kguiaddons, knotifyconfig, krunner, kwindowsystem, libofx, shared-mime-info
+}:
+
+mkDerivation rec {
+ pname = "skrooge";
+ version = "2.23.0";
+
+ src = fetchurl {
+ url = "http://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
+ sha256 = "10k3j67x5xm5whsvb84k9p70bkn4jbbbvdfan7q49dh2mmpair5a";
+ };
+
+ nativeBuildInputs = [
+ cmake extra-cmake-modules kdoctools shared-mime-info
+ ];
+
+ buildInputs = [
+ qtwebengine qtscript grantlee kxmlgui kwallet kparts
+ kjobwidgets kdesignerplugin kiconthemes knewstuff sqlcipher qca-qt5
+ kactivities karchive kguiaddons knotifyconfig krunner kwindowsystem libofx
+ ];
+
+ # SKG_DESIGNER must be used to generate the needed library for QtDesigner.
+ # This is needed ONLY for developers. So NOT NEEDED for end user.
+ # Source: https://forum.kde.org/viewtopic.php?f=210&t=143375#p393675
+ cmakeFlags = [
+ "-DSKG_DESIGNER=OFF"
+ "-DSKG_WEBENGINE=ON"
+ "-DBUILD_TESTS=ON"
+ ];
+
+ meta = with lib; {
+ description = "A personal finances manager, powered by KDE";
+ license = with licenses; [ gpl3 ];
+ maintainers = with maintainers; [ joko ];
+ homepage = "https://skrooge.org/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/desktop_items.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/desktop_items.nix
new file mode 100644
index 000000000000..614c6574faa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/desktop_items.nix
@@ -0,0 +1,42 @@
+{ makeDesktopItem, pname, suiteName }:
+
+{
+ planmaker = makeDesktopItem {
+ name = "${pname}-planmaker";
+ desktopName = "${suiteName} PlanMaker";
+ icon = "${pname}-pml";
+ categories = "Office;";
+ exec = "${pname}-planmaker %F";
+ mimeType = "application/x-pmd;application/x-pmdx;application/x-pmv;application/excel;application/x-excel;application/x-ms-excel;application/x-msexcel;application/x-sylk;application/x-xls;application/xls;application/vnd.ms-excel;application/vnd.stardivision.calc;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.sheet.macroenabled.12;application/vnd.ms-excel.template.macroEnabled.12;application/x-dif;text/spreadsheet;text/csv;application/x-prn;application/vnd.ms-excel.sheet.binary.macroenabled.12;";
+ extraEntries = ''
+ TryExec=${pname}-planmaker
+ StartupWMClass=pm
+ '';
+ };
+
+ presentations = makeDesktopItem {
+ name = "${pname}-presentations";
+ desktopName = "${suiteName} Presentations";
+ icon = "${pname}-prl";
+ categories = "Office;";
+ exec = "${pname}-presentations %F";
+ mimeType = "application/x-prdx;application/x-prvx;application/x-prsx;application/x-prd;application/x-prv;application/x-prs;application/ppt;application/mspowerpoint;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.ms-powerpoint.presentation.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.ms-powerpoint.template.macroEnabled.12;application/vnd.ms-powerpoint.slideshow.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.slideshow;";
+ extraEntries = ''
+ TryExec=${pname}-presentations
+ StartupWMClass=pr
+ '';
+ };
+
+ textmaker = makeDesktopItem {
+ name = "${pname}-textmaker";
+ desktopName = "${suiteName} TextMaker";
+ icon = "${pname}-tml";
+ categories = "Office;";
+ exec = "${pname}-textmaker %F";
+ mimeType = "application/x-tmdx;application/x-tmvx;application/x-tmd;application/x-tmv;application/msword;application/vnd.ms-word;application/x-doc;text/rtf;application/rtf;application/vnd.oasis.opendocument.text;application/vnd.oasis.opendocument.text-template;application/vnd.stardivision.writer;application/vnd.sun.xml.writer;application/vnd.sun.xml.writer.template;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-word.document.macroenabled.12;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.template.macroenabled.12;application/x-pocket-word;application/x-dbf;application/msword-template;";
+ extraEntries = ''
+ TryExec=${pname}-textmaker
+ StartupWMClass=tm
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix
new file mode 100644
index 000000000000..bdd90fecb8ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix
@@ -0,0 +1,27 @@
+{ callPackage
+, fetchurl
+
+ # This is a bit unusual, but makes version and hash easily
+ # overridable. This is useful when the upstream archive was replaced
+ # and nixpkgs is not in sync yet.
+, officeVersion ? {
+ version = "980";
+ edition = "2018";
+ sha256 = "19pgil86aagiz6z4kx22gd4cxbbmrx42ix42arkfb6p6hav1plby";
+}
+
+, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+ inherit (officeVersion) version edition;
+
+ pname = "freeoffice";
+ suiteName = "FreeOffice";
+
+ src = fetchurl {
+ inherit (officeVersion) sha256;
+ url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
+ };
+
+ archive = "freeoffice${edition}.tar.lzma";
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/generic.nix
new file mode 100644
index 000000000000..fbde26058e1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/generic.nix
@@ -0,0 +1,129 @@
+{ stdenv, fetchurl, autoPatchelfHook, makeDesktopItem, makeWrapper, copyDesktopItems
+
+ # Dynamic Libraries
+, curl, libGL, libX11, libXext, libXmu, libXrandr, libXrender
+
+ # For fixing up execution of /bin/ls, which is necessary for
+ # product unlocking.
+, coreutils, libredirect
+
+ # Extra utilities used by the SoftMaker applications.
+, gnugrep, util-linux, which
+
+, pname, version, edition, suiteName, src, archive
+
+, ...
+}:
+
+let
+ desktopItems = import ./desktop_items.nix {
+ inherit makeDesktopItem pname suiteName;
+ };
+ shortEdition = builtins.substring 2 2 edition;
+in stdenv.mkDerivation {
+ inherit pname src;
+
+ version = "${edition}.${version}";
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ copyDesktopItems
+ makeWrapper
+ ];
+
+ buildInputs = [
+ curl
+ libGL
+ libX11
+ libXext
+ libXmu
+ libXrandr
+ libXrender
+ stdenv.cc.cc.lib
+ ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ unpackPhase = ''
+ runHook preUnpack
+
+ mkdir installer
+ tar -C installer -xf ${src}
+ mkdir ${pname}
+ tar -C ${pname} -xf installer/${archive}
+
+ runHook postUnpack
+ '';
+
+ installPhase = let
+ # SoftMaker/FreeOffice collects some system information upon
+ # unlocking the product. But in doing so, it attempts to execute
+ # /bin/ls. If the execve syscall fails, the whole unlock
+ # procedure fails. This works around that by rewriting /bin/ls
+ # to the proper path.
+ #
+ # In addition, it expects some common utilities (which, whereis)
+ # to be in the path.
+ #
+ # SoftMaker Office restarts itself upon some operations, such
+ # changing the theme and unlocking. Unfortunately, we do not
+ # have control over its environment then and it will fail
+ # with an error.
+ extraWrapperArgs = ''
+ --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+ --set NIX_REDIRECTS "/bin/ls=${coreutils}/bin/ls" \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ coreutils gnugrep util-linux which ]}"
+ '';
+ in ''
+ runHook preInstall
+
+ mkdir -p $out/share
+ cp -r ${pname} $out/share/${pname}${edition}
+
+ # Wrap rather than symlinking, so that the programs can determine
+ # their resource path.
+ mkdir -p $out/bin
+ makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker \
+ ${extraWrapperArgs}
+ makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations \
+ ${extraWrapperArgs}
+ makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker \
+ ${extraWrapperArgs}
+
+ for size in 16 32 48 64 96 128 256 512 1024; do
+ mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
+
+ for app in pml prl tml; do
+ ln -s $out/share/${pname}${edition}/icons/''${app}_''${size}.png \
+ $out/share/icons/hicolor/''${size}x''${size}/apps/${pname}-''${app}.png
+ done
+
+ mkdir -p $out/share/icons/hicolor/''${size}x''${size}/mimetypes
+
+ for mimetype in pmd prd tmd; do
+ ln -s $out/share/${pname}${edition}/icons/''${mimetype}_''${size}.png \
+ $out/share/icons/hicolor/''${size}x''${size}/mimetypes/application-x-''${mimetype}.png
+ done
+ done
+
+ # freeoffice 973 misses the 96x96 application icons, giving broken symbolic links
+ # remove broken symbolic links
+ find $out -xtype l -ls -exec rm {} \;
+
+ # Add mime types
+ install -D -t $out/share/mime/packages ${pname}/mime/softmaker-*office*${shortEdition}.xml
+
+ runHook postInstall
+ '';
+
+ desktopItems = builtins.attrValues desktopItems;
+
+ meta = with stdenv.lib; {
+ description = "An office suite with a word processor, spreadsheet and presentation program";
+ homepage = "https://www.softmaker.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ danieldk ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
new file mode 100644
index 000000000000..d0eb2ffdc935
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
@@ -0,0 +1,28 @@
+{ callPackage
+, fetchurl
+
+ # This is a bit unusual, but makes version and hash easily
+ # overridable. This is useful when people have an older version of
+ # Softmaker Office or when the upstream archive was replaced and
+ # nixpkgs is not in sync yet.
+, officeVersion ? {
+ version = "1020";
+ edition = "2021";
+ sha256 = "1v227pih1p33x7axsw7wz8pz5walpbqnk0iqng711ixk883nqxn5";
+}
+
+, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+ inherit (officeVersion) version edition;
+
+ pname = "softmaker-office";
+ suiteName = "SoftMaker Office";
+
+ src = fetchurl {
+ inherit (officeVersion) sha256;
+ url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
+ };
+
+ archive = "office${edition}.tar.lzma";
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/spice-up/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/spice-up/default.nix
new file mode 100644
index 000000000000..0cf7e8c53f14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/spice-up/default.nix
@@ -0,0 +1,78 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, fetchpatch
+, cmake
+, gdk-pixbuf
+, gtk3
+, vala
+, gettext
+, ninja
+, pantheon
+, pkgconfig
+, json-glib
+, libgudev
+, libevdev
+, libgee
+, libsoup
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "spice-up";
+ version = "1.8.2";
+
+ src = fetchFromGitHub {
+ owner = "Philip-Scott";
+ repo = "Spice-up";
+ rev = version;
+ sha256 = "1pix911l4ddn50026a5sbpqfzba6fmw40m1yzbknmkgd2ny28f0m";
+ };
+
+ USER = "pbuilder";
+
+ nativeBuildInputs = [
+ cmake
+ gettext
+ ninja
+ pkgconfig
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ pantheon.elementary-icon-theme
+ pantheon.granite
+ gdk-pixbuf
+ gtk3
+ json-glib
+ libevdev
+ libgee
+ libgudev
+ libsoup
+ ];
+
+ patches = [
+ # Fix build with Vala 0.46
+ # https://github.com/Philip-Scott/Spice-up/pull/288
+ (fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/Philip-Scott/Spice-up/pull/288.patch";
+ sha256 = "0kyfd8v2sk4cvcq1j8ysp64snfjhnpr3iz7l04lx7if7h372xj39";
+ })
+ ];
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Create simple and beautiful presentations";
+ homepage = "https://github.com/Philip-Scott/Spice-up";
+ maintainers = with maintainers; [ samdroid-apps xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ # The COPYING file has GPLv3; some files have GPLv2+ and some have GPLv3+
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/tagainijisho/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/tagainijisho/default.nix
new file mode 100644
index 000000000000..d826b9f54f6a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/tagainijisho/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, qt4, cmake, sqlite }:
+
+stdenv.mkDerivation {
+ name = "tagainijisho-1.0.3";
+ src = fetchurl {
+ url = "https://github.com/Gnurou/tagainijisho/releases/download/1.0.3/tagainijisho-1.0.3.tar.gz";
+ sha256 = "0kmg1940yiqfm4vpifyj680283ids4nsij9s750nrshwxiwwbqvg";
+ };
+
+ buildInputs = [ qt4 cmake sqlite ];
+
+ meta = with stdenv.lib; {
+ description = "A free, open-source Japanese dictionary and kanji lookup tool";
+ homepage = "https://www.tagaini.net/";
+ license = with licenses; [
+ /* program */ gpl3Plus
+ /* data */ cc-by-sa-30
+ ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/timekeeper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/timekeeper/default.nix
new file mode 100644
index 000000000000..60b4bad60bb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/timekeeper/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, poco
+, pkg-config
+, gnome2
+, gtkmm2
+, lib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "timekeeper";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "bburdette";
+ repo = "TimeKeeper";
+ rev = "v${version}";
+ fetchSubmodules = true;
+ sha256 = "03rvzkygnn7igcindbb5bcmfy0l83n0awkzprsnhlb6ndxax3k9w";
+ };
+
+ nativeBuildInputs = [
+ poco
+ pkg-config
+ ];
+
+ buildInputs = [
+ gtkmm2
+ gnome2.libglademm
+ gnome2.libglade
+ ];
+
+ installPhase = ''
+ install -Dm755 TimeKeeper/TimeKeeper $out/bin/timekeeper
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Log hours worked and make reports";
+ homepage = "https://github.com/bburdette/TimeKeeper";
+ maintainers = with maintainers; [ bburdette ];
+ platforms = [ "x86_64-linux" ];
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/timetable/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/timetable/default.nix
new file mode 100644
index 000000000000..838b1724ee86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/timetable/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, glib
+, gtk3
+, vala
+, json-glib
+, libgee
+, meson
+, ninja
+, pkgconfig
+, pantheon
+, python3
+, wrapGAppsHook
+}:
+
+
+stdenv.mkDerivation rec {
+ pname = "timetable";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "lainsce";
+ repo = pname;
+ rev = version;
+ sha256 = "12c8kdrbz6x2mlrvr0nq9y5khj0qiiwlxf7aqc2z3dnrawjgy1rb";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkgconfig
+ vala
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ json-glib
+ libgee
+ pantheon.granite
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Plot out your own timetable for the week and organize it";
+ homepage = "https://github.com/lainsce/timetable";
+ maintainers = [ maintainers.xiorcale ] ++ pantheon.maintainers;
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/Gemfile
new file mode 100644
index 000000000000..3ce845d11c10
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'timetrap'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock
new file mode 100644
index 000000000000..30e48b7febbe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock
@@ -0,0 +1,19 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ chronic (0.10.2)
+ sequel (5.30.0)
+ sqlite3 (1.4.2)
+ timetrap (1.15.2)
+ chronic (~> 0.10.2)
+ sequel (~> 5.30.0)
+ sqlite3 (~> 1.4.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ timetrap
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/default.nix
new file mode 100644
index 000000000000..579c9e115be8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "timetrap";
+ gemdir = ./.;
+ exes = [ "t" "timetrap" ];
+
+ passthru.updateScript = bundlerUpdateScript "timetrap";
+
+ meta = with lib; {
+ description = "A simple command line time tracker written in ruby";
+ homepage = "https://github.com/samg/timetrap";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jerith666 manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/gemset.nix
new file mode 100644
index 000000000000..65ab4ade9e0a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/timetrap/gemset.nix
@@ -0,0 +1,43 @@
+{
+ chronic = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
+ type = "gem";
+ };
+ version = "0.10.2";
+ };
+ sequel = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gqqnqrfayhwhkp0vy3frv68sgc7klyd6mfisx1j3djjvlyc7hmr";
+ type = "gem";
+ };
+ version = "5.30.0";
+ };
+ sqlite3 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lja01cp9xd5m6vmx99zwn4r7s97r1w5cb76gqd8xhbm1wxyzf78";
+ type = "gem";
+ };
+ version = "1.4.2";
+ };
+ timetrap = {
+ dependencies = ["chronic" "sequel" "sqlite3"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pfg5c3kmh1jfaaszw253bi93ixa6cznqmsafrcpccrdg9r8j2k8";
+ type = "gem";
+ };
+ version = "1.15.2";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/timeular/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/timeular/default.nix
new file mode 100644
index 000000000000..f0fc5c3738cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/timeular/default.nix
@@ -0,0 +1,45 @@
+{
+ stdenv,
+ fetchurl,
+ appimageTools,
+ libsecret
+}:
+
+let
+ version = "3.4.1";
+ pname = "timeular";
+ name = "${pname}-${version}";
+ src = fetchurl {
+ url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
+ sha256 = "1s5jjdl1nzq9yd582lqs904yl10mp0s25897zmifmcbw1vz38bar";
+ };
+ appimageContents = appimageTools.extractType2 {
+ inherit name src;
+ };
+in appimageTools.wrapType2 rec {
+ inherit name src;
+
+ extraPkgs = pkgs: with pkgs; [
+ libsecret
+ ];
+
+ extraInstallCommands = ''
+ mv $out/bin/{${name},${pname}}
+ install -m 444 -D ${appimageContents}/timeular.desktop $out/share/applications/timeular.desktop
+ install -m 444 -D ${appimageContents}/timeular.png $out/share/icons/hicolor/512x512/apps/timeular.png
+ substituteInPlace $out/share/applications/timeular.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Timetracking by flipping 8-sided dice";
+ longDescription = ''
+ The Timeular Tracker is an 8-sided dice that sits on your desk.
+ Assign an activity to each side and flip to start tracking your time.
+ The desktop app tell you where every minute of your day is spent.
+ '';
+ homepage = https://timeular.com;
+ license = licenses.unfree;
+ maintainers = with maintainers; [ ktor ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix
new file mode 100644
index 000000000000..8db5691ed84d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+let
+ version = "2.12.0";
+in stdenv.mkDerivation {
+ pname = "todo.txt-cli";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/ginatrapani/todo.txt-cli/releases/download/v${version}/todo.txt_cli-${version}.tar.gz";
+ sha256 = "0gni8nj3wwdf7nl98d1bpx064bz5xari65hb998qqr92h0n9pnp6";
+ };
+
+ installPhase = ''
+ install -vd $out/bin
+ install -vm 755 todo.sh $out/bin
+ install -vd $out/share/bash-completion/completions
+ install -vm 644 todo_completion $out/share/bash-completion/completions/todo
+ install -vd $out/etc/todo
+ install -vm 644 todo.cfg $out/etc/todo/config
+ '';
+
+ meta = {
+ description = "Simple plaintext todo list manager";
+ homepage = "http://todotxt.com";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/todoman/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/todoman/default.nix
new file mode 100644
index 000000000000..1c536458369d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/todoman/default.nix
@@ -0,0 +1,83 @@
+{ stdenv
+, python3
+, glibcLocales
+, installShellFiles
+, jq
+}:
+
+let
+ inherit (python3.pkgs) buildPythonApplication fetchPypi;
+in
+buildPythonApplication rec {
+ pname = "todoman";
+ version = "3.9.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "e7e5cab13ecce0562b1f13f46ab8cbc079caed4b462f2371929f8a4abff2bcbe";
+ };
+
+ nativeBuildInputs = [
+ installShellFiles
+ ];
+ propagatedBuildInputs = with python3.pkgs; [
+ atomicwrites
+ click
+ click-log
+ click-repl
+ configobj
+ humanize
+ icalendar
+ parsedatetime
+ python-dateutil
+ pyxdg
+ tabulate
+ urwid
+ ];
+
+ checkInputs = with python3.pkgs; [
+ flake8
+ flake8-import-order
+ freezegun
+ hypothesis
+ pytest
+ pytestrunner
+ pytestcov
+ glibcLocales
+ ];
+
+ LC_ALL = "en_US.UTF-8";
+
+ postInstall = ''
+ installShellCompletion --bash contrib/completion/bash/_todo
+ substituteInPlace contrib/completion/zsh/_todo --replace "jq " "${jq}/bin/jq "
+ installShellCompletion --zsh contrib/completion/zsh/_todo
+ '';
+
+ preCheck = ''
+ # Remove one failing test that only checks whether the command line works
+ rm tests/test_main.py
+ rm tests/test_cli.py
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pimutils/todoman";
+ description = "Standards-based task manager based on iCalendar";
+ longDescription = ''
+ Todoman is a simple, standards-based, cli todo (aka: task) manager. Todos
+ are stored into icalendar files, which means you can sync them via CalDAV
+ using, for example, vdirsyncer.
+
+ Todos are read from individual ics files from the configured directory.
+ This matches the vdir specification. There’s support for the most common TODO
+ features for now (summary, description, location, due date and priority) for
+ now. Runs on any Unix-like OS. It’s been tested on GNU/Linux, BSD and macOS.
+ Unsupported fields may not be shown but are never deleted or altered.
+
+ Todoman is part of the pimutils project
+ '';
+ license = licenses.isc;
+ maintainers = with maintainers; [ leenaars ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/treesheets/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/treesheets/default.nix
new file mode 100644
index 000000000000..d316d4287072
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/treesheets/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, wxGTK, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "treesheets";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "aardappel";
+ repo = "treesheets";
+ rev = "v${version}";
+ sha256 = "0krsj7i5yr76imf83krz2lmlmpbsvpwqg2d4r0jwxiydjfyj4qr4";
+ };
+
+ buildInputs = [ wxGTK makeWrapper ];
+
+ preConfigure = "cd src";
+
+ postInstall = ''
+ mkdir "$out/share" -p
+ cp -av ../TS "$out/share/libexec"
+
+ mkdir "$out/bin" -p
+ makeWrapper "$out/share/libexec/treesheets" "$out/bin/treesheets"
+
+ mkdir "$out/share/doc" -p
+
+ for f in readme.html docs examples
+ do
+ mv -v "$out/share/libexec/$f" "$out/share/doc"
+ ln -sv "$out/share/doc/$f" "$out/share/libexec/$f"
+ done
+
+ mkdir "$out/share/applications" -p
+ mv -v "$out/share/libexec/treesheets.desktop" "$out/share/applications"
+ substituteInPlace "$out/share/applications/treesheets.desktop" \
+ --replace "Icon=images/treesheets.svg" "Icon=$out/share/libexec/images/treesheets.svg"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Free Form Data Organizer";
+
+ longDescription = ''
+ The ultimate replacement for spreadsheets, mind mappers, outliners,
+ PIMs, text editors and small databases.
+
+ Suitable for any kind of data organization, such as Todo lists,
+ calendars, project management, brainstorming, organizing ideas,
+ planning, requirements gathering, presentation of information, etc.
+ '';
+
+ homepage = "http://strlen.com/treesheets/";
+ maintainers = with maintainers; [ obadz avery ];
+ platforms = platforms.linux;
+ license = licenses.zlib;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch b/infra/libkookie/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
new file mode 100644
index 000000000000..1a4350ca71a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
@@ -0,0 +1,69 @@
+From 5be803a1171855f976a5b607970fa3949db72181 Mon Sep 17 00:00:00 2001
+From: Christian Kampka <christian@kampka.net>
+Date: Mon, 9 Dec 2019 19:40:27 +0100
+Subject: [PATCH] Use console logger instead of rolling files
+
+---
+ src/services/log.js | 26 +++-----------------------
+ 1 file changed, 3 insertions(+), 23 deletions(-)
+
+diff --git a/src/services/log.js b/src/services/log.js
+index 1514c209..456c3749 100644
+--- a/src/services/log.js
++++ b/src/services/log.js
+@@ -1,35 +1,15 @@
+ "use strict";
+
+-const fs = require('fs');
+-const dataDir = require('./data_dir');
+-
+-if (!fs.existsSync(dataDir.LOG_DIR)) {
+- fs.mkdirSync(dataDir.LOG_DIR, 0o700);
+-}
+-
+-const logger = require('simple-node-logger').createRollingFileLogger({
+- errorEventName: 'error',
+- logDirectory: dataDir.LOG_DIR,
+- fileNamePattern: 'trilium-<DATE>.log',
+- dateFormat:'YYYY-MM-DD'
+-});
+-
+ function info(message) {
+ // info messages are logged asynchronously
+ setTimeout(() => {
+ console.log(message);
+-
+- logger.info(message);
+ }, 0);
+ }
+
+ function error(message) {
+ message = "ERROR: " + message;
+
+- // we're using .info() instead of .error() because simple-node-logger emits weird error for showError()
+- // errors are logged synchronously to make sure it doesn't get lost in case of crash
+- logger.info(message);
+-
+ console.trace(message);
+ }
+
+@@ -45,12 +25,12 @@ function request(req) {
+ if (req.url.includes(".js.map") || req.url.includes(".css.map")) {
+ return;
+ }
+-
+- logger.info(req.method + " " + req.url);
++ if(process.env.DEBUG)
++ console.log(req.method + " " + req.url);
+ }
+
+ module.exports = {
+ info,
+ error,
+ request
+-};
+\ No newline at end of file
++};
+--
+2.23.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/trilium/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/trilium/default.nix
new file mode 100644
index 000000000000..217f1fd85d62
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/trilium/default.nix
@@ -0,0 +1,119 @@
+{ stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, wrapGAppsHook, zlib, libxkbfile }:
+
+let
+ description = "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases";
+ desktopItem = makeDesktopItem {
+ name = "Trilium";
+ exec = "trilium";
+ icon = "trilium";
+ comment = description;
+ desktopName = "Trilium Notes";
+ categories = "Office";
+ };
+
+ meta = with stdenv.lib; {
+ inherit description;
+ homepage = "https://github.com/zadam/trilium";
+ license = licenses.agpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ emmanuelrosa dtzWill kampka ];
+ };
+
+ version = "0.43.3";
+
+ desktopSource = {
+ url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
+ sha256 = "1k9vcs7pwa89bzivqp0gfs45jzqw216fpypg3ja4n2dzn4qkv2as";
+ };
+
+ serverSource = {
+ url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
+ sha256 = "1n3v7wdav6mvgcy72mmfhncsa74i0ax1ij5rjczgfjjyiyc5y0rk";
+ };
+
+in {
+
+ trilium-desktop = stdenv.mkDerivation rec {
+ pname = "trilium-desktop";
+ inherit version;
+ inherit meta;
+
+ src = fetchurl desktopSource;
+
+ # Fetch from source repo, no longer included in release.
+ # (they did special-case icon.png but we want the scalable svg)
+ # Use the version here to ensure we get any changes.
+ trilium_svg = fetchurl {
+ url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/images/trilium.svg";
+ sha256 = "1rgj7pza20yndfp8n12k93jyprym02hqah36fkk2b3if3kcmwnfg";
+ };
+
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ buildInputs = atomEnv.packages ++ [ gtk3 ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/trilium
+ mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
+
+ cp -r ./* $out/share/trilium
+ ln -s $out/share/trilium/trilium $out/bin/trilium
+
+ ln -s ${trilium_svg} $out/share/icons/hicolor/scalable/apps/trilium.svg
+ cp ${desktopItem}/share/applications/* $out/share/applications
+ '';
+
+ # LD_LIBRARY_PATH "shouldn't" be needed, remove when possible :)
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${atomEnv.libPath})
+ '';
+
+ dontStrip = true;
+ };
+
+
+ trilium-server = stdenv.mkDerivation rec {
+ pname = "trilium-server";
+ inherit version;
+ inherit meta;
+
+ src = fetchurl serverSource;
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ ];
+
+ buildInputs = [
+ stdenv.cc.cc.lib
+ zlib
+ libxkbfile
+ ];
+
+ patches = [ ./0001-Use-console-logger-instead-of-rolling-files.patch ] ;
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/trilium-server
+
+ cp -r ./* $out/share/trilium-server
+ '';
+
+ postFixup = ''
+ cat > $out/bin/trilium-server <<EOF
+ #!${stdenv.cc.shell}
+ cd $out/share/trilium-server
+ exec ./node/bin/node src/www
+ EOF
+ chmod a+x $out/bin/trilium-server
+ '';
+
+ passthru.tests = {
+ trilium-server = nixosTests.trilium-server;
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/tryton/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/tryton/default.nix
new file mode 100644
index 000000000000..d0c5eb4e7b2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/tryton/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, python3Packages
+, pkgconfig
+, librsvg
+, gobject-introspection
+, atk
+, gtk3
+, gtkspell3
+, gnome3
+, glib
+, goocanvas2
+, gdk-pixbuf
+, pango
+, fontconfig
+, freetype
+, wrapGAppsHook
+}:
+
+with stdenv.lib;
+
+python3Packages.buildPythonApplication rec {
+ pname = "tryton";
+ version = "5.4.2";
+
+ disabled = !python3Packages.isPy3k;
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "1rca19krvmycdhmi1vb4ixwq0cagmrkhbqry4f19b725nlp8cv0q";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ dateutil
+ pygobject3
+ goocalendar
+ pycairo
+ ];
+
+ buildInputs = [
+ atk
+ gdk-pixbuf
+ glib
+ gnome3.adwaita-icon-theme
+ goocanvas2
+ fontconfig
+ freetype
+ gtk3
+ gtkspell3
+ librsvg
+ pango
+ ];
+
+ strictDeps = false;
+
+ doCheck = false;
+
+ meta = {
+ description = "The client of the Tryton application platform";
+ longDescription = ''
+ The client for Tryton, a three-tier high-level general purpose
+ application platform under the license GPL-3 written in Python and using
+ PostgreSQL as database engine.
+
+ It is the core base of a complete business solution providing
+ modularity, scalability and security.
+ '';
+ homepage = "http://www.tryton.org/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ johbo udono ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/tudu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/tudu/default.nix
new file mode 100644
index 000000000000..6094e02c5c1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/tudu/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "tudu";
+ version = "0.10.4";
+
+ src = fetchurl {
+ url = "https://code.meskio.net/tudu/${pname}-${version}.tar.gz";
+ sha256 = "14srqn968ii3sr4v6xc5zzs50dmm9am22lrm57j7n0rhjclwbssy";
+ };
+
+ buildInputs = [ ncurses ];
+
+ preConfigure = stdenv.lib.optionalString stdenv.cc.isClang ''
+ substituteInPlace configure \
+ --replace 'echo "main()' 'echo "int main()'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "ncurses-based hierarchical todo list manager with vim-like keybindings";
+ homepage = "https://code.meskio.net/tudu/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/tusk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/tusk/default.nix
new file mode 100644
index 000000000000..d54f27f9bbf3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/tusk/default.nix
@@ -0,0 +1,54 @@
+{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3
+, makeDesktopItem
+}:
+
+let
+ pname = "tusk";
+ version = "0.23.0";
+
+ icon = fetchurl {
+ url = "https://raw.githubusercontent.com/klaussinani/tusk/v${version}/static/Icon.png";
+ sha256 = "1jqclyrjgg6hir45spg75plfmd8k9nrsrzw3plbcg43s5m1qzihb";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = pname;
+ icon = icon;
+ desktopName = pname;
+ genericName = "Evernote desktop app";
+ categories = "Application";
+ };
+
+in appimageTools.wrapType2 rec {
+ name = "${pname}-v${version}";
+ src = fetchurl {
+ url = "https://github.com/klaussinani/tusk/releases/download/v${version}/${pname}-${version}-x86_64.AppImage";
+ sha256 = "02q7wsnhlyq8z74avflrm7805ny8fzlmsmz4bmafp4b4pghjh5ky";
+ };
+
+
+ profile = ''
+ export LC_ALL=C.UTF-8
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ multiPkgs = null; # no 32bit needed
+ extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+ extraInstallCommands = ''
+ mv $out/bin/{${name},${pname}}
+ mkdir "$out/share"
+ ln -s "${desktopItem}/share/applications" "$out/share/"
+ '';
+
+ meta = with lib; {
+ description = "Refined Evernote desktop app";
+ longDescription = ''
+ Tusk is an unofficial, featureful, open source, community-driven, free Evernote app used by people in more than 140 countries. Tusk is indicated by Evernote as an alternative client for Linux environments trusted by the open source community.
+ '';
+ homepage = "https://klaussinani.github.io/tusk/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ tbenst ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/vnote/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/vnote/default.nix
new file mode 100644
index 000000000000..b266ce86e2ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/vnote/default.nix
@@ -0,0 +1,27 @@
+{ lib, mkDerivation, fetchFromGitHub, qmake, qtbase, qtwebengine }:
+
+let
+ description = "A note-taking application that knows programmers and Markdown better";
+in mkDerivation rec {
+ version = "2.10";
+ pname = "vnote";
+
+ src = fetchFromGitHub {
+ owner = "tamlok";
+ repo = "vnote";
+ fetchSubmodules = true;
+ rev = "v${version}";
+ sha256 = "EeeVGnKI0irLO1zJQxlVlIUhqG987JIgxNvKpUgLxUQ=";
+ };
+
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [ qtbase qtwebengine ];
+
+ meta = with lib; {
+ inherit description;
+ homepage = "https://tamlok.github.io/vnote";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.kuznero ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/watson/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/watson/default.nix
new file mode 100644
index 000000000000..00fa9416e172
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/watson/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, pythonPackages, installShellFiles }:
+
+with pythonPackages;
+
+buildPythonApplication rec {
+ pname = "watson";
+ version = "1.10.0";
+
+ src = fetchFromGitHub {
+ owner = "TailorDev";
+ repo = "Watson";
+ rev = version;
+ sha256 = "1s0k86ldqky6avwjaxkw1y02wyf59qwqldcahy3lhjn1b5dgsb3s";
+ };
+
+ checkPhase = ''
+ pytest -vs tests
+ '';
+
+ postInstall = ''
+ installShellCompletion --bash --name watson watson.completion
+ installShellCompletion --zsh --name _watson watson.zsh-completion
+ '';
+
+ checkInputs = [ py pytest pytest-datafiles pytest-mock pytestrunner ];
+ propagatedBuildInputs = [ arrow click click-didyoumean requests ];
+ nativeBuildInputs = [ installShellFiles ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://tailordev.github.io/Watson/";
+ description = "A wonderful CLI to track your time!";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mguentner nathyong oxzi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/wordgrinder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/wordgrinder/default.nix
new file mode 100644
index 000000000000..e50e319f319c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/wordgrinder/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, pkgconfig, makeWrapper
+, lua52Packages, libXft, ncurses, ninja, readline, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "wordgrinder";
+ version = "0.8";
+
+ src = fetchFromGitHub {
+ repo = "wordgrinder";
+ owner = "davidgiven";
+ rev = version;
+ sha256 = "124d1bnn2aqs6ik8pdazzni6a0583prz9lfdjrbwyb97ipqga9pm";
+ };
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "LUA_INCLUDE=${lua52Packages.lua}/include"
+ "LUA_LIB=${lua52Packages.lua}/lib/liblua.so"
+ "OBJDIR=$TMP/wg-build"
+ ];
+
+ preBuild = stdenv.lib.optionalString stdenv.isLinux ''
+ makeFlagsArray+=('XFT_PACKAGE=--cflags={} --libs={-lX11 -lXft}')
+ '';
+
+ dontUseNinjaBuild = true;
+ dontUseNinjaInstall = true;
+ dontConfigure = true;
+
+ nativeBuildInputs = [
+ pkgconfig
+ makeWrapper
+ ninja
+ ];
+
+ buildInputs = [
+ lua52Packages.lua
+ ncurses
+ readline
+ zlib
+ ] ++ stdenv.lib.optionals stdenv.isLinux [
+ libXft
+ ];
+
+ # To be able to find <Xft.h>
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isLinux "-I${libXft.dev}/include/X11";
+
+ # Binaries look for LuaFileSystem library (lfs.so) at runtime
+ postInstall = ''
+ wrapProgram $out/bin/wordgrinder --set LUA_CPATH "${lua52Packages.luafilesystem}/lib/lua/5.2/lfs.so";
+ '' + stdenv.lib.optionalString stdenv.isLinux ''
+ wrapProgram $out/bin/xwordgrinder --set LUA_CPATH "${lua52Packages.luafilesystem}/lib/lua/5.2/lfs.so";
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Text-based word processor";
+ homepage = "https://cowlark.com/wordgrinder";
+ license = licenses.mit;
+ maintainers = with maintainers; [ matthiasbeyer ];
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/wpsoffice/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
new file mode 100644
index 000000000000..9ab7446fe3c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
@@ -0,0 +1,173 @@
+{ stdenv
+, mkDerivation
+, fetchurl
+, autoPatchelfHook
+, dpkg
+, wrapGAppsHook
+, wrapQtAppsHook
+, alsaLib
+, atk
+, bzip2
+, cairo
+, cups
+, dbus
+, expat
+, ffmpeg
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gperftools
+, gtk2-x11
+, libpng12
+, libtool
+, libuuid
+, libxml2
+, lzma
+, nspr
+, nss
+, openssl
+, pango
+, qt4
+, qtbase
+, sqlite
+, unixODBC
+, xorg
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "wpsoffice";
+ version = "11.1.0.9615";
+
+ src = fetchurl {
+ url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/9615/wps-office_11.1.0.9615.XA_amd64.deb";
+ sha256 = "0dpd4njpizclllps3qagipycfws935rhj9k5gmdhjfgsk0ns188w";
+ };
+ unpackCmd = "dpkg -x $src .";
+ sourceRoot = ".";
+
+ postUnpack = stdenv.lib.optionalString (version == "11.1.0.9505") ''
+ # distribution is missing libjsapiservice.so, so we should not let
+ # autoPatchelfHook fail on the following dead libraries
+ rm opt/kingsoft/wps-office/office6/{libjsetapi.so,libjswppapi.so,libjswpsapi.so}
+ '';
+
+ nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook wrapQtAppsHook ];
+
+ meta = {
+ description = "Office program originally named Kingsoft Office";
+ homepage = "http://wps-community.org/";
+ platforms = [ "x86_64-linux" ];
+ hydraPlatforms = [];
+ license = stdenv.lib.licenses.unfreeRedistributable;
+ maintainers = with stdenv.lib.maintainers; [ mlatus th0rgal ];
+ };
+
+ buildInputs = with xorg; [
+ alsaLib
+ atk
+ bzip2
+ cairo
+ dbus.lib
+ expat
+ ffmpeg
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gperftools
+ gtk2-x11
+ libICE
+ libSM
+ libX11
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXtst
+ libpng12
+ libtool
+ libuuid
+ libxcb
+ libxml2
+ lzma
+ nspr
+ nss
+ openssl
+ pango
+ qt4
+ qtbase
+ sqlite
+ unixODBC
+ zlib
+ ];
+
+ dontPatchELF = true;
+
+ # wpsoffice uses `/build` in its own build system making nix things there
+ # references to nix own build directory
+ noAuditTmpdir = true;
+
+ unvendoredLibraries = [
+ # Have to use parts of the vendored qt4
+ #"Qt"
+ "SDL2"
+ "bz2"
+ "avcodec"
+ "avdevice"
+ "avformat"
+ "avutil"
+ "swresample"
+ "swscale"
+ "jpeg"
+ "png"
+ # File saving breaks unless we are using vendored llvmPackages_8.libcxx
+ #"c++"
+ "ssl" "crypto"
+ "nspr"
+ "nss"
+ "odbc"
+ "tcmalloc" # gperftools
+ ];
+
+ installPhase = ''
+ prefix=$out/opt/kingsoft/wps-office
+ mkdir -p $out
+ cp -r opt $out
+ cp -r usr/* $out
+ for lib in $unvendoredLibraries; do
+ rm -v "$prefix/office6/lib$lib"*.so{,.*}
+ done
+ for i in wps wpp et wpspdf; do
+ substituteInPlace $out/bin/$i \
+ --replace /opt/kingsoft/wps-office $prefix
+ done
+ for i in $out/share/applications/*;do
+ substituteInPlace $i \
+ --replace /usr/bin $out/bin
+ done
+ '';
+
+ runtimeLibPath = stdenv.lib.makeLibraryPath [
+ cups.lib
+ ];
+
+ dontWrapQtApps = true;
+ dontWrapGApps = true;
+ postFixup = ''
+ for f in "$out"/bin/*; do
+ echo "Wrapping $f"
+ wrapProgram "$f" \
+ "''${gappsWrapperArgs[@]}" \
+ "''${qtWrapperArgs[@]}" \
+ --suffix LD_LIBRARY_PATH : "$runtimeLibPath"
+ done
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/zanshin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/zanshin/default.nix
new file mode 100644
index 000000000000..e3b9408ed96d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/zanshin/default.nix
@@ -0,0 +1,53 @@
+{ mkDerivation
+, lib
+, fetchurl
+, extra-cmake-modules
+, qtbase
+, boost
+, akonadi-calendar
+, akonadi-notes
+, akonadi-search
+, kidentitymanagement
+, kontactinterface
+, kldap
+, krunner
+, kwallet
+, kcalendarcore
+}:
+
+mkDerivation rec {
+ pname = "zanshin";
+ version = "0.5.71";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz";
+ sha256 = "0b316ddcd46sawva84x5d8nsp19v66gbm83djrra7fv3k8nkv4xh";
+ };
+
+ nativeBuildInputs = [
+ extra-cmake-modules
+ ];
+
+ buildInputs = [
+ qtbase
+ boost
+ akonadi-calendar
+ akonadi-notes
+ akonadi-search
+ kidentitymanagement
+ kontactinterface
+ kldap
+ krunner
+ kwallet
+ kcalendarcore
+ ];
+
+ meta = with lib; {
+ description = "A powerful yet simple application to manage your day to day actions, getting your mind like water";
+ homepage = "https://zanshin.kde.org/";
+ maintainers = with maintainers; [ zraexy ];
+ platforms = platforms.linux;
+ license = licenses.gpl2Plus;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/zim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/zim/default.nix
new file mode 100644
index 000000000000..05a3c2de9b47
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/zim/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, python3Packages, gtk3, gobject-introspection, wrapGAppsHook, gnome3 }:
+
+#
+# TODO: Declare configuration options for the following optional dependencies:
+# - File stores: hg, git, bzr
+# - Included plugins depenencies: dot, ditaa, dia, any other?
+# - pyxdg: Need to make it work first (see setupPyInstallFlags).
+#
+
+python3Packages.buildPythonApplication rec {
+ name = "zim-${version}";
+ version = "0.73.1";
+
+ src = fetchurl {
+ url = "https://zim-wiki.org/downloads/${name}.tar.gz";
+ sha256 = "13vhwsgv6mscgixypc0ixkgj0y7cpcm7z7wn1vmdrwp7kn8m3xgx";
+ };
+
+ buildInputs = [ gtk3 gobject-introspection wrapGAppsHook gnome3.adwaita-icon-theme ];
+ propagatedBuildInputs = with python3Packages; [ pyxdg pygobject3 ];
+
+
+ preFixup = ''
+ export makeWrapperArgs="--prefix XDG_DATA_DIRS : $out/share --argv0 $out/bin/.zim-wrapped"
+ '';
+
+ # RuntimeError: could not create GtkClipboard object
+ doCheck = false;
+
+ checkPhase = ''
+ python test.py
+ '';
+
+
+ meta = with stdenv.lib; {
+ description = "A desktop wiki";
+ homepage = "http://zim-wiki.org";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ pSub ];
+ broken = stdenv.isDarwin; # https://github.com/NixOS/nixpkgs/pull/52658#issuecomment-449565790
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/zotero/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/zotero/default.nix
new file mode 100644
index 000000000000..d615f2a06f11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/zotero/default.nix
@@ -0,0 +1,147 @@
+{ stdenv, fetchurl, wrapGAppsHook, makeDesktopItem
+, atk
+, cairo
+, coreutils
+, curl
+, cups
+, dbus-glib
+, dbus
+, dconf
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, glibc
+, gtk3
+, libX11
+, libXScrnSaver
+, libxcb
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrender
+, libXt
+, libnotify
+, gnome3
+, libGLU, libGL
+, nspr
+, nss
+, pango
+, gsettings-desktop-schemas
+}:
+
+stdenv.mkDerivation rec {
+ pname = "zotero";
+ version = "5.0.89";
+
+ src = fetchurl {
+ url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
+ sha256 = "18p4qnnfx9f2frk7f2nk1d7jr4cjzg9z7lfzrk7vq11qgbjdpqbl";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+ buildInputs= [ gsettings-desktop-schemas glib gtk3 gnome3.adwaita-icon-theme dconf ];
+
+ dontConfigure = true;
+ dontBuild = true;
+ dontStrip = true;
+ dontPatchELF = true;
+
+ libPath = stdenv.lib.makeLibraryPath
+ [ stdenv.cc.cc
+ atk
+ cairo
+ curl
+ cups
+ dbus-glib
+ dbus
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ glibc
+ gtk3
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libxcb
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXinerama
+ libXrender
+ libXt
+ libnotify
+ libGLU libGL
+ nspr
+ nss
+ pango
+ ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
+ stdenv.cc.cc
+ ];
+
+ patchPhase = ''
+ sed -i '/pref("app.update.enabled", true);/c\pref("app.update.enabled", false);' defaults/preferences/prefs.js
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "zotero-${version}";
+ exec = "zotero -url %U";
+ icon = "zotero";
+ type = "Application";
+ comment = meta.description;
+ desktopName = "Zotero";
+ genericName = "Reference Management";
+ categories = "Office;Database;";
+ startupNotify = "true";
+ mimeType = "text/plain";
+ };
+
+ installPhase =
+ ''
+ mkdir -p "$prefix/usr/lib/zotero-bin-${version}"
+ cp -r * "$prefix/usr/lib/zotero-bin-${version}"
+ mkdir -p "$out/bin"
+ ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/"
+
+ # install desktop file and icons.
+ mkdir -p $out/share/applications
+ cp ${desktopItem}/share/applications/* $out/share/applications/
+ for size in 16 32 48 256; do
+ install -Dm444 chrome/icons/default/default$size.png \
+ $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
+ done
+
+ for executable in \
+ zotero-bin plugin-container \
+ updater minidump-analyzer
+ do
+ if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ "$out/usr/lib/zotero-bin-${version}/$executable"
+ fi
+ done
+ find . -executable -type f -exec \
+ patchelf --set-rpath "$libPath" \
+ "$out/usr/lib/zotero-bin-${version}/{}" \;
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils ]}
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.zotero.org";
+ description = "Collect, organize, cite, and share your research sources";
+ license = licenses.agpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/zotero/zotero.sh b/infra/libkookie/nixpkgs/pkgs/applications/office/zotero/zotero.sh
new file mode 100644
index 000000000000..8941097fc422
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/office/zotero/zotero.sh
@@ -0,0 +1,3 @@
+#!@bash@/bin/bash
+
+exec "@firefox@/bin/firefox" -app "@out@/libexec/zotero/application.ini" "${@}"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
new file mode 100644
index 000000000000..f4d1b27478d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, fetchFromGitHub
+, xen_4_10
+}:
+
+stdenv.mkDerivation rec {
+ pname = "qubes-core-vchan-xen";
+ version = "4.1.4";
+
+ src = fetchFromGitHub {
+ owner = "QubesOS";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256:02l1vs5c2jfw22gxvl2fb66m0d99n8ya1i7rphsb5cxsljvxary0";
+ };
+
+ buildInputs = [ xen_4_10 ];
+
+ buildPhase = ''
+ make all PREFIX=/ LIBDIR="$out/lib" INCLUDEDIR="$out/include"
+ '';
+
+ installPhase = ''
+ make install DESTDIR=$out PREFIX=/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Libraries required for the higher-level Qubes daemons and tools";
+ homepage = "https://qubes-os.org";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ _0x4A6F ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/airspy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/airspy/default.nix
new file mode 100644
index 000000000000..67a59b68cd5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/airspy/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, fetchFromGitHub
+, cmake , pkgconfig, libusb1
+}:
+
+stdenv.mkDerivation rec {
+ pname = "airspy";
+ version = "1.0.9";
+
+ src = fetchFromGitHub {
+ owner = "airspy";
+ repo = "airspyone_host";
+ rev = "v${version}";
+ sha256 = "04kx2p461sqd4q354n1a99zcabg9h29dwcnyhakykq8bpg3mgf1x";
+ };
+
+ postPatch = ''
+ substituteInPlace airspy-tools/CMakeLists.txt --replace "/etc/udev/rules.d" "$out/etc/udev/rules.d"
+ '';
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ libusb1 ];
+
+ cmakeFlags =
+ lib.optionals stdenv.isLinux [ "-DINSTALL_UDEV_RULES=ON" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/airspy/airspyone_host";
+ description = "Host tools and driver library for the AirSpy SDR";
+ license = licenses.bsd3;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ markuskowa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/aldo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/aldo/default.nix
new file mode 100644
index 000000000000..83bb520272ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/aldo/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit, libao, autoreconfHook }:
+
+let
+ pname = "aldo";
+ version = "0.7.8";
+in stdenv.mkDerivation {
+ inherit pname version;
+
+ src = fetchgit {
+ url = "git://git.savannah.gnu.org/${pname}.git";
+ rev = "v${version}";
+ sha256 = "0swvdq0pw1msy40qkpn1ar9kacqjyrw2azvf2fy38y0svyac8z2i";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = [ libao ];
+
+ meta = with stdenv.lib; {
+ description = "Morse code training program";
+ homepage = "http://aldo.nongnu.org/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ etu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/chirp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/chirp/default.nix
new file mode 100644
index 000000000000..8fb719567d55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/chirp/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, fetchurl
+, python2
+}:
+python2.pkgs.buildPythonApplication rec {
+ pname = "chirp-daily";
+ version = "20200807";
+
+ src = fetchurl {
+ url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
+ sha256 = "60b682793698e6427ad485546eae3a044b8290a220f190633158a2fb0e942fa0";
+ };
+
+ propagatedBuildInputs = with python2.pkgs; [
+ pygtk pyserial libxml2 future
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A free, open-source tool for programming your amateur radio";
+ homepage = "https://chirp.danplanet.com/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/cubicsdr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/cubicsdr/default.nix
new file mode 100644
index 000000000000..c0dd4346d40a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/cubicsdr/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
+ pkgconfig, soapysdr-with-plugins, wxGTK31-gtk3, enableDigitalLab ? false }:
+
+stdenv.mkDerivation rec {
+ pname = "cubicsdr";
+ version = "0.2.5";
+
+ src = fetchFromGitHub {
+ owner = "cjcliffe";
+ repo = "CubicSDR";
+ rev = version;
+ sha256 = "1ihbn18bzdcdvwpa4hnb55ns38bj4b8xy53hkmra809f9qpbcjhn";
+ };
+
+ # Allow cubicsdr 0.2.5 to build with wxGTK 3.1.3
+ # these come from cubicsdr's master branch, subsequent releases may include them
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/cjcliffe/CubicSDR/commit/65a160fa356ce9665dfe05c6bfc6754535e16743.patch";
+ sha256 = "0vbr5x9fnm09bws5crqcm6kkhr1bg5r0bc1pxnwwjyc6jpvqi6ad";
+ })
+ (fetchpatch {
+ url = "https://github.com/cjcliffe/CubicSDR/commit/f449a65457e35bf8260d0b16b8a47b6bc0ea2c7e.patch";
+ sha256 = "1zjvjmhm8ybi6i9pq7by3fj3mvx37dy7gj4gk23d79yrnl9mk25p";
+ })
+ (fetchpatch {
+ url = "https://github.com/cjcliffe/CubicSDR/commit/0540d08c2dea79b668b32b1a6d58f235d65ce9d2.patch";
+ sha256 = "07l7b82f779sbcj0jza0mg463ac1153bs9hn6ai388j7dm3lvasn";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [ fftw hamlib libpulseaudio libGL libX11 liquid-dsp soapysdr-with-plugins wxGTK31-gtk3 ];
+
+ cmakeFlags = [ "-DUSE_HAMLIB=ON" ]
+ ++ stdenv.lib.optional enableDigitalLab "-DENABLE_DIGITAL_LAB=ON";
+
+ meta = with stdenv.lib; {
+ homepage = "https://cubicsdr.com";
+ description = "Software Defined Radio application";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ lasandell ];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/dablin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/dablin/default.nix
new file mode 100644
index 000000000000..287649ddbe1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/dablin/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, mpg123, SDL2, gnome3, faad2, pcre
+} :
+
+stdenv.mkDerivation rec {
+ pname = "dablin";
+ version = "1.13.0";
+
+ src = fetchFromGitHub {
+ owner = "Opendigitalradio";
+ repo = "dablin";
+ rev = version;
+ sha256 = "0143jnhwwh4din6mlrkbm8m2wm8vnrlk0yk9r5qcvj70r2314bgq";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [ faad2 mpg123 SDL2 gnome3.gtkmm pcre ];
+
+ meta = with stdenv.lib; {
+ description = "Play DAB/DAB+ from ETI-NI aligned stream";
+ homepage = "https://github.com/Opendigitalradio/dablin";
+ license = with licenses; [ gpl3 lgpl21 ];
+ platforms = platforms.linux;
+ maintainers = [ maintainers.markuskowa ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/dabtools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/dabtools/default.nix
new file mode 100644
index 000000000000..401e207ba4f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/dabtools/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, libusb1, rtl-sdr, fftw
+} :
+
+stdenv.mkDerivation {
+ pname = "dabtools";
+ version = "20180405";
+
+ src = fetchFromGitHub {
+ owner = "Opendigitalradio";
+ repo = "dabtools";
+ rev = "8b0b2258b02020d314efd4d0d33a56c8097de0d1";
+ sha256 = "18nkdybgg2w6zh56g6xwmg49sifalvraz4rynw8w5d8cqi3dm9sm";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ rtl-sdr fftw libusb1 ];
+
+ meta = with stdenv.lib; {
+ description = "Commandline tools for DAB and DAB+ digital radio broadcasts";
+ homepage = "https://github.com/Opendigitalradio/dabtools";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.markuskowa ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/direwolf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/direwolf/default.nix
new file mode 100644
index 000000000000..321b103c7f7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/direwolf/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, alsaLib, espeak, glibc, gpsd
+, hamlib, perl, python, udev }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "direwolf";
+ version = "1.6";
+
+ src = fetchFromGitHub {
+ owner = "wb2osz";
+ repo = "direwolf";
+ rev = version;
+ sha256 = "0xmz64m02knbrpasfij4rrq53ksxna5idxwgabcw4n2b1ig7pyx5";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ espeak gpsd hamlib perl python
+ ] ++ (optionals stdenv.isLinux [alsaLib udev]);
+
+ patches = [
+ ./udev-fix.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace src/symbols.c \
+ --replace /usr/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt \
+ --replace /opt/local/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt
+ substituteInPlace src/decode_aprs.c \
+ --replace /usr/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt \
+ --replace /opt/local/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt
+ substituteInPlace scripts/dwespeak.sh \
+ --replace espeak ${espeak}/bin/espeak
+ substituteInPlace cmake/cpack/direwolf.desktop.in \
+ --replace 'Terminal=false' 'Terminal=true' \
+ --replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf' \
+ '';
+
+ meta = {
+ description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway";
+ homepage = "https://github.com/wb2osz/direwolf/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ lasandell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/direwolf/udev-fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/radio/direwolf/udev-fix.patch
new file mode 100644
index 000000000000..cff17fb88621
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/direwolf/udev-fix.patch
@@ -0,0 +1,11 @@
+--- direwolf/conf/CMakeLists.txt.orig 2020-12-04 11:12:59.739390894 -0600
++++ direwolf/conf/CMakeLists.txt 2020-12-04 11:23:09.146594795 -0600
+@@ -26,7 +26,7 @@
+
+ # install udev rules for CM108
+ if(LINUX)
+- install(FILES "${CUSTOM_CONF_DIR}/99-direwolf-cmedia.rules" DESTINATION /etc/udev/rules.d/)
++ install(FILES "${CUSTOM_CONF_DIR}/99-direwolf-cmedia.rules" DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d/")
+ endif()
+
+ install(FILES "${CMAKE_BINARY_DIR}/direwolf.conf" DESTINATION ${INSTALL_CONF_DIR})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/dmrconfig/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/dmrconfig/default.nix
new file mode 100644
index 000000000000..47b72669f8fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/dmrconfig/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub
+, libusb1, systemd }:
+
+stdenv.mkDerivation rec {
+ pname = "dmrconfig";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "sergev";
+ repo = "dmrconfig";
+ rev = version;
+ sha256 = "1qwix75z749628w583fwp7m7kxbj0k3g159sxb7vgqxbadqqz1ab";
+ };
+
+ buildInputs = [
+ libusb1 systemd
+ ];
+
+ preConfigure = ''
+ substituteInPlace Makefile \
+ --replace /usr/local/bin/dmrconfig $out/bin/dmrconfig
+ '';
+
+ makeFlags = [ "VERSION=${version}" "GITCOUNT=0" ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib/udev/rules.d
+ make install
+ install 99-dmr.rules $out/lib/udev/rules.d/99-dmr.rules
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Configuration utility for DMR radios";
+ longDescription = ''
+ DMRconfig is a utility for programming digital radios via USB programming cable.
+ '';
+ homepage = "https://github.com/sergev/dmrconfig";
+ license = licenses.asl20;
+ maintainers = [ maintainers.etu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/dsd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/dsd/default.nix
new file mode 100644
index 000000000000..a369486278be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/dsd/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, cmake
+, mbelib, libsndfile, itpp
+, portaudioSupport ? true, portaudio ? null
+}:
+
+assert portaudioSupport -> portaudio != null;
+
+stdenv.mkDerivation rec {
+ pname = "dsd";
+ version = "2018-07-01";
+
+ src = fetchFromGitHub {
+ owner = "szechyjs";
+ repo = "dsd";
+ rev = "f175834e45a1a190171dff4597165b27d6b0157b";
+ sha256 = "0w4r13sxvjwacdwxr326zr6p77a8p6ny0g6im574jliw5j3shlhr";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [
+ mbelib libsndfile itpp
+ ] ++ stdenv.lib.optionals portaudioSupport [ portaudio ];
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+ preCheck = ''
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
+ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Digital Speech Decoder";
+ longDescription = ''
+ DSD is able to decode several digital voice formats from discriminator
+ tap audio and synthesize the decoded speech. Speech synthesis requires
+ mbelib, which is a separate package.
+ '';
+ homepage = https://github.com/szechyjs/dsd;
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ andrew-d ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/dump1090/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/dump1090/default.nix
new file mode 100644
index 000000000000..6e70a9f8d032
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/dump1090/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, libbladeRF
+, libusb1
+, ncurses
+, rtl-sdr
+}:
+
+stdenv.mkDerivation rec {
+ pname = "dump1090";
+ version = "4.0";
+
+ src = fetchFromGitHub {
+ owner = "flightaware";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1zacsqaqsiapljhzw31dwc4nld2rp98jm3ivkyznrhzk9n156p42";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [
+ libbladeRF
+ libusb1
+ ncurses
+ rtl-sdr
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share
+ cp -v dump1090 view1090 $out/bin
+ cp -vr public_html $out/share/dump1090
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple Mode S decoder for RTLSDR devices";
+ homepage = "https://github.com/flightaware/dump1090";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ earldouglas ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/ebook2cw/Makefile.patch b/infra/libkookie/nixpkgs/pkgs/applications/radio/ebook2cw/Makefile.patch
new file mode 100644
index 000000000000..be6c32e41470
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/ebook2cw/Makefile.patch
@@ -0,0 +1,12 @@
+diff --git a/Makefile b/Makefile
+index 005d60d..f69c7fe 100644
+--- a/Makefile
++++ b/Makefile
+@@ -41,6 +41,7 @@ install:
+ install -d -v $(DESTDIR)/bin/
+ install -d -v $(DESTDIR)/share/doc/ebook2cw/
+ install -d -v $(DESTDIR)/share/doc/ebook2cw/examples/
++ install -d -v $(DESTDIR)/share/locale/de/LC_MESSAGES/
+ install -s -m 0755 ebook2cw $(DESTDIR)/bin/
+ install -m 0644 ebook2cw.1 $(DESTDIR)/share/man/man1/
+ install -m 0644 README $(DESTDIR)/share/doc/ebook2cw/
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/ebook2cw/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/ebook2cw/default.nix
new file mode 100644
index 000000000000..5bd9e47ab716
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/ebook2cw/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit, lame, libvorbis, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "ebook2cw";
+ version = "0.8.3";
+
+ src = fetchgit {
+ url = "https://git.fkurz.net/dj1yfk/ebook2cw.git";
+ rev = "${pname}-${version}";
+ sha256 = "0jqmnjblv3wzr0ppqzndzd8wg02nlkvzg1fqw14vyyp76sdjsh46";
+ };
+
+ buildInputs = [ lame libvorbis gettext ];
+
+ patches = [ ./Makefile.patch ];
+
+ makeFlags = [ "DESTDIR=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Convert ebooks to Morse MP3s/OGGs";
+ homepage = "http://fkurz.net/ham/ebook2cw.html";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ earldouglas ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/fldigi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/fldigi/default.nix
new file mode 100644
index 000000000000..07e9647f2c3f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/fldigi/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, hamlib, fltk14, libjpeg, libpng, portaudio, libsndfile,
+ libsamplerate, libpulseaudio, libXinerama, gettext, pkgconfig, alsaLib }:
+
+stdenv.mkDerivation rec {
+ version = "4.1.17";
+ pname = "fldigi";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "1gzff60sn3h05279f9mdi1rkdws52m28shcil16911lvlq6ki13m";
+ };
+
+ buildInputs = [ libXinerama gettext hamlib fltk14 libjpeg libpng portaudio
+ libsndfile libsamplerate libpulseaudio pkgconfig alsaLib ];
+
+ meta = {
+ description = "Digital modem program";
+ homepage = "https://sourceforge.net/projects/fldigi/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [ relrod ftrvxmtrx ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/fllog/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/fllog/default.nix
new file mode 100644
index 000000000000..649caae09021
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/fllog/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.2.6";
+ pname = "fllog";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
+ sha256 = "18nwqbbg5khpkwlr7dn41g6zf7ms2wzxykd42fwdsj4m4z0ysyyg";
+ };
+
+ buildInputs = [
+ fltk13
+ libjpeg
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ meta = {
+ description = "Digital modem log program";
+ homepage = "https://sourceforge.net/projects/fldigi/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [ dysinger ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/flmsg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/flmsg/default.nix
new file mode 100644
index 000000000000..fa3f175fcc56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/flmsg/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ version = "4.0.17";
+ pname = "flmsg";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
+ sha256 = "09xf3f65d3qi69frznf4fdznbfbc7kmgxw716q2c7ccsmh9c5q44";
+ };
+
+ buildInputs = [
+ fltk13
+ libjpeg
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ meta = {
+ description = "Digital modem message program";
+ homepage = "https://sourceforge.net/projects/fldigi/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [ dysinger ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/flrig/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/flrig/default.nix
new file mode 100644
index 000000000000..322f2eb9a3b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/flrig/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.3.53";
+ pname = "flrig";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
+ sha256 = "1m0fa891scpaf719002w9gpg1famx84kpzav1mw1fafmbzyvjw1i";
+ };
+
+ buildInputs = [
+ fltk13
+ libjpeg
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ meta = {
+ description = "Digital modem rig control program";
+ homepage = "https://sourceforge.net/projects/fldigi/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [ dysinger ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/flwrap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/flwrap/default.nix
new file mode 100644
index 000000000000..889c212de4e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/flwrap/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.3.5";
+ pname = "flwrap";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
+ sha256 = "0qqivqkkravcg7j45740xfky2q3k7czqpkj6y364qff424q2pppg";
+ };
+
+ buildInputs = [
+ fltk13
+ libjpeg
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ meta = {
+ description = "Digital modem file transfer program";
+ homepage = "https://sourceforge.net/projects/fldigi/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [ dysinger ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix
new file mode 100644
index 000000000000..d7e2d44c75ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchFromGitHub
+, armadillo
+, boost
+, cmake
+, glog
+, gmock
+, openssl
+, gflags
+, gnuradio
+, orc
+, pkgconfig
+, pythonPackages
+, uhd
+, log4cpp
+, blas, lapack
+, matio
+, pugixml
+, protobuf
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnss-sdr";
+ version = "0.0.13";
+
+ src = fetchFromGitHub {
+ owner = "gnss-sdr";
+ repo = "gnss-sdr";
+ rev = "v${version}";
+ sha256 = "0a3k47fl5dizzhbqbrbmckl636lznyjby2d2nz6fz21637hvrnby";
+ };
+
+ buildInputs = [
+ armadillo
+ boost.dev
+ cmake
+ glog
+ gmock
+ openssl.dev
+ gflags
+ gnuradio
+ orc
+ pkgconfig
+ pythonPackages.Mako
+ pythonPackages.six
+
+ # UHD support is optional, but gnuradio is built with it, so there's
+ # nothing to be gained by leaving it out.
+ uhd
+ log4cpp
+ blas lapack
+ matio
+ pugixml
+ protobuf
+ ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [
+ "-DGFlags_ROOT_DIR=${gflags}/lib"
+ "-DGLOG_INCLUDE_DIR=${glog}/include"
+ "-DENABLE_UNIT_TESTING=OFF"
+
+ # gnss-sdr doesn't truly depend on BLAS or LAPACK, as long as
+ # armadillo is built using both, so skip checking for them.
+ "-DBLAS=YES"
+ "-DLAPACK=YES"
+ "-DBLAS_LIBRARIES=-lblas"
+ "-DLAPACK_LIBRARIES=-llapack"
+
+ # Similarly, it doesn't actually use gfortran despite checking for
+ # its presence.
+ "-DGFORTRAN=YES"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An open source Global Navigation Satellite Systems software-defined receiver";
+ homepage = "https://gnss-sdr.org/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix
new file mode 100644
index 000000000000..54fb0d7d66cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix
@@ -0,0 +1,295 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+# Remove gcc and python references
+, removeReferencesTo
+, pkgconfig
+, cppunit
+, swig
+, orc
+, boost
+, log4cpp
+, mpir
+, doxygen
+, python
+, codec2
+, gsm
+, fftwFloat
+, alsaLib
+, libjack2
+, CoreAudio
+, uhd
+, comedilib
+, libusb1
+, SDL
+, gsl
+, cppzmq
+, zeromq
+# GUI related
+, gtk2
+, pango
+, cairo
+, qt4
+, qwt6_qt4
+# Features available to override, the list of them is in featuresInfo. They
+# are all turned on by default
+, features ? {}
+# If one wishes to use a different src or name for a very custom build
+, overrideSrc ? {}
+, pname ? "gnuradio"
+, versionAttr ? {
+ major = "3.7";
+ minor = "14";
+ patch = "0";
+}
+, fetchSubmodules ? true
+}:
+
+let
+ sourceSha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc";
+ featuresInfo = {
+ # Needed always
+ basic = {
+ native = [
+ cmake
+ pkgconfig
+ orc
+ ];
+ runtime = [ boost log4cpp mpir ];
+ pythonNative = with python.pkgs; [ Mako six ];
+ };
+ volk = {
+ cmakeEnableFlag = "VOLK";
+ };
+ doxygen = {
+ native = [ doxygen ];
+ cmakeEnableFlag = "DOXYGEN";
+ };
+ sphinx = {
+ pythonNative = with python.pkgs; [ sphinx ];
+ cmakeEnableFlag = "SPHINX";
+ };
+ python-support = {
+ pythonRuntime = [ python.pkgs.six ];
+ native = [
+ swig
+ python
+ ];
+ cmakeEnableFlag = "PYTHON";
+ };
+ testing-support = {
+ native = [ cppunit ];
+ cmakeEnableFlag = "TESTING";
+ };
+ gnuradio-runtime = {
+ cmakeEnableFlag = "GNURADIO_RUNTIME";
+ };
+ gr-ctrlport = {
+ cmakeEnableFlag = "GR_CTRLPORT";
+ native = [
+ swig
+ ];
+ };
+ gnuradio-companion = {
+ pythonRuntime = with python.pkgs; [
+ pyyaml
+ cheetah
+ lxml
+ pygtk
+ numpy
+ # propagated by pygtk, but since wrapping is done externally, it help
+ # the wrapper if it's here
+ pycairo
+ pygobject2
+ ];
+ runtime = [
+ gtk2
+ pango
+ cairo
+ ];
+ cmakeEnableFlag = "GRC";
+ };
+ gr-blocks = {
+ cmakeEnableFlag = "GR_BLOCKS";
+ };
+ gr-fec = {
+ cmakeEnableFlag = "GR_FEC";
+ };
+ gr-fft = {
+ runtime = [ fftwFloat ];
+ cmakeEnableFlag = "GR_FFT";
+ };
+ gr-filter = {
+ runtime = [ fftwFloat ];
+ cmakeEnableFlag = "GR_FILTER";
+ };
+ gr-analog = {
+ cmakeEnableFlag = "GR_ANALOG";
+ };
+ gr-digital = {
+ cmakeEnableFlag = "GR_DIGITAL";
+ };
+ gr-dtv = {
+ cmakeEnableFlag = "GR_DTV";
+ };
+ gr-atsc = {
+ cmakeEnableFlag = "GR_ATSC";
+ };
+ gr-audio = {
+ runtime = []
+ ++ stdenv.lib.optionals stdenv.isLinux [ alsaLib libjack2 ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ CoreAudio ]
+ ;
+ cmakeEnableFlag = "GR_AUDIO";
+ };
+ gr-comedi = {
+ runtime = [ comedilib ];
+ cmakeEnableFlag = "GR_COMEDI";
+ };
+ gr-channels = {
+ cmakeEnableFlag = "GR_CHANNELS";
+ };
+ gr-noaa = {
+ cmakeEnableFlag = "GR_NOAA";
+ };
+ gr-pager = {
+ cmakeEnableFlag = "GR_PAGER";
+ };
+ gr-qtgui = {
+ runtime = [ qt4 qwt6_qt4 ];
+ pythonRuntime = [ python.pkgs.pyqt4 ];
+ cmakeEnableFlag = "GR_QTGUI";
+ };
+ gr-trellis = {
+ cmakeEnableFlag = "GR_TRELLIS";
+ };
+ gr-uhd = {
+ runtime = [ uhd ];
+ cmakeEnableFlag = "GR_UHD";
+ };
+ gr-utils = {
+ cmakeEnableFlag = "GR_UTILS";
+ };
+ gr-video-sdl = {
+ runtime = [ SDL ];
+ cmakeEnableFlag = "GR_VIDEO_SDL";
+ };
+ gr-vocoder = {
+ runtime = [ codec2 gsm ];
+ cmakeEnableFlag = "GR_VOCODER";
+ };
+ gr-fcd = {
+ runtime = [ libusb1 ];
+ cmakeEnableFlag = "GR_FCD";
+ };
+ gr-wavelet = {
+ cmakeEnableFlag = "GR_WAVELET";
+ runtime = [ gsl ];
+ };
+ gr-zeromq = {
+ runtime = [ cppzmq zeromq ];
+ cmakeEnableFlag = "GR_ZEROMQ";
+ };
+ gr-wxgui = {
+ pythonRuntime = with python.pkgs; [ numpy wxPython ];
+ cmakeEnableFlag = "GR_WXGUI";
+ };
+ };
+ shared = (import ./shared.nix {
+ inherit
+ stdenv
+ python
+ removeReferencesTo
+ featuresInfo
+ features
+ versionAttr
+ sourceSha256
+ overrideSrc
+ fetchFromGitHub
+ fetchSubmodules
+ ;
+ qt = qt4;
+ gtk = gtk2;
+ });
+ inherit (shared)
+ version
+ src
+ hasFeature # function
+ nativeBuildInputs
+ buildInputs
+ disallowedReferences
+ postInstall
+ passthru
+ doCheck
+ dontWrapPythonPrograms
+ meta
+ ;
+ cmakeFlags = shared.cmakeFlags
+ # From some reason, if these are not set, libcodec2 and gsm are
+ # not detected properly (slightly different then what's in
+ # ./default.nix).
+ ++ stdenv.lib.optionals (hasFeature "gr-vocoder" features) [
+ "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
+ "-DLIBCODEC2_INCLUDE_DIR=${codec2}/include"
+ "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
+ "-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm"
+ ]
+ ;
+ stripDebugList = shared.stripDebugList
+ # gr-fcd feature was dropped in 3.8
+ ++ stdenv.lib.optionals (hasFeature "gr-fcd" features) [ "share/gnuradio/examples/fcd" ]
+ ;
+ preConfigure = ''
+ ''
+ # wxgui and pygtk are not looked up properly, so we force them to be
+ # detected as found, if they are requested by the `features` attrset.
+ + stdenv.lib.optionalString (hasFeature "gr-wxgui" features) ''
+ sed -i 's/.*wx\.version.*/set(WX_FOUND TRUE)/g' gr-wxgui/CMakeLists.txt
+ ''
+ + stdenv.lib.optionalString (hasFeature "gnuradio-companion" features) ''
+ sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
+ ''
+ # If python-support is disabled, don't install volk's (git submodule)
+ # volk_modtool - it references python.
+ #
+ # NOTE: The same is done for 3.8, but we don't put this string in
+ # ./shared.nix since on the next release of 3.8 it won't be needed there,
+ # but it will be needed for 3.7, probably for ever.
+ + stdenv.lib.optionalString (!hasFeature "python-support" features) ''
+ sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
+ ''
+ ;
+ patches = [
+ # Don't install python referencing files if python support is disabled.
+ # See: https://github.com/gnuradio/gnuradio/pull/3856
+ (fetchpatch {
+ url = "https://github.com/gnuradio/gnuradio/commit/acef55433d15c231661fa44751f9a2d90a4baa4b.diff";
+ sha256 = "2CEX44Ll8frfLXTIWjdDhKl7aXcjiAWsezVdwrynelE=";
+ })
+ (fetchpatch {
+ url = "https://github.com/gnuradio/gnuradio/commit/a2681edcfaabcb1ecf878ae861161b6a6bf8459d.diff";
+ sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8=";
+ })
+ ];
+in
+
+stdenv.mkDerivation rec {
+ inherit
+ pname
+ version
+ src
+ nativeBuildInputs
+ buildInputs
+ cmakeFlags
+ preConfigure
+ # disallowedReferences
+ stripDebugList
+ patches
+ postInstall
+ passthru
+ doCheck
+ dontWrapPythonPrograms
+ meta
+ ;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/ais.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/ais.nix
new file mode 100644
index 000000000000..46d46d1c3255
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/ais.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio
+, makeWrapper, cppunit, gr-osmosdr, log4cpp
+, pythonSupport ? true, python, swig
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation {
+ pname = "gr-ais";
+ version = "2015-12-20";
+
+ src = fetchFromGitHub {
+ owner = "bistromath";
+ repo = "gr-ais";
+ # Upstream PR: https://github.com/bistromath/gr-ais/commit/8502d0252a2a1a9b8d1a71795eaeb5d820684054
+ rev = "8502d0252a2a1a9b8d1a71795eaeb5d820684054";
+ sha256 = "1b9j0kc74cw12a7jv4lii77dgzqzg2s8ndzp4xmisxksgva1qfvh";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cmake boost gnuradio makeWrapper cppunit gr-osmosdr log4cpp
+ ] ++ stdenv.lib.optionals pythonSupport [ python swig ];
+
+ postInstall = ''
+ for prog in "$out"/bin/*; do
+ wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Gnuradio block for ais";
+ homepage = "https://github.com/bistromath/gr-ais";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ mog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
new file mode 100644
index 000000000000..811eb37f4f31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
@@ -0,0 +1,288 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+# Remove gcc and python references
+, removeReferencesTo
+, pkgconfig
+, cppunit
+, swig
+, orc
+, boost
+, log4cpp
+, mpir
+, doxygen
+, python
+, codec2
+, gsm
+, fftwFloat
+, alsaLib
+, libjack2
+, CoreAudio
+, uhd
+, SDL
+, gsl
+, cppzmq
+, zeromq
+# GUI related
+, gtk3
+, pango
+, gobject-introspection
+, cairo
+, qt5
+, libsForQt5
+# Features available to override, the list of them is in featuresInfo. They
+# are all turned on by default.
+, features ? {}
+# If one wishes to use a different src or name for a very custom build
+, overrideSrc ? {}
+, pname ? "gnuradio"
+, versionAttr ? {
+ major = "3.8";
+ minor = "2";
+ patch = "0";
+}
+# Should be false on the release after 3.8.2.0
+, fetchSubmodules ? true
+}:
+
+let
+ sourceSha256 = "1mnfwdy7w3160vi6110x2qkyq8l78qi8771zwak9n72bl7lhhpnf";
+ featuresInfo = {
+ # Needed always
+ basic = {
+ native = [
+ cmake
+ pkgconfig
+ orc
+ ];
+ runtime = [
+ boost
+ log4cpp
+ mpir
+ ];
+ pythonNative = with python.pkgs; [
+ Mako
+ six
+ ];
+ };
+ # NOTE: Should be removed on the release after 3.8.2.0, see:
+ # https://github.com/gnuradio/gnuradio/commit/80c04479d
+ volk = {
+ cmakeEnableFlag = "VOLK";
+ };
+ doxygen = {
+ native = [ doxygen ];
+ cmakeEnableFlag = "DOXYGEN";
+ };
+ sphinx = {
+ pythonNative = with python.pkgs; [ sphinx ];
+ cmakeEnableFlag = "SPHINX";
+ };
+ python-support = {
+ pythonRuntime = [ python.pkgs.six ];
+ native = [
+ swig
+ python
+ ];
+ cmakeEnableFlag = "PYTHON";
+ };
+ testing-support = {
+ native = [ cppunit ];
+ cmakeEnableFlag = "TESTING";
+ };
+ gnuradio-runtime = {
+ cmakeEnableFlag = "GNURADIO_RUNTIME";
+ };
+ gr-ctrlport = {
+ # Thrift support is not really working well, and even the patch they
+ # recommend applying on 0.9.2 won't apply. See:
+ # https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
+ cmakeEnableFlag = "GR_CTRLPORT";
+ native = [
+ swig
+ ];
+ };
+ gnuradio-companion = {
+ pythonRuntime = with python.pkgs; [
+ pyyaml
+ Mako
+ numpy
+ pygobject3
+ ];
+ runtime = [
+ gtk3
+ pango
+ gobject-introspection
+ cairo
+ ];
+ cmakeEnableFlag = "GRC";
+ };
+ gr-blocks = {
+ cmakeEnableFlag = "GR_BLOCKS";
+ };
+ gr-fec = {
+ cmakeEnableFlag = "GR_FEC";
+ };
+ gr-fft = {
+ runtime = [ fftwFloat ];
+ cmakeEnableFlag = "GR_FFT";
+ };
+ gr-filter = {
+ runtime = [ fftwFloat ];
+ cmakeEnableFlag = "GR_FILTER";
+ };
+ gr-analog = {
+ cmakeEnableFlag = "GR_ANALOG";
+ };
+ gr-digital = {
+ cmakeEnableFlag = "GR_DIGITAL";
+ };
+ gr-dtv = {
+ cmakeEnableFlag = "GR_DTV";
+ };
+ gr-audio = {
+ runtime = []
+ ++ stdenv.lib.optionals stdenv.isLinux [ alsaLib libjack2 ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ CoreAudio ]
+ ;
+ cmakeEnableFlag = "GR_AUDIO";
+ };
+ gr-channels = {
+ cmakeEnableFlag = "GR_CHANNELS";
+ };
+ gr-qtgui = {
+ runtime = [ qt5.qtbase libsForQt5.qwt ];
+ pythonRuntime = [ python.pkgs.pyqt5 ];
+ cmakeEnableFlag = "GR_QTGUI";
+ };
+ gr-trellis = {
+ cmakeEnableFlag = "GR_TRELLIS";
+ };
+ gr-uhd = {
+ runtime = [ uhd ];
+ cmakeEnableFlag = "GR_UHD";
+ };
+ gr-utils = {
+ cmakeEnableFlag = "GR_UTILS";
+ };
+ gr-modtool = {
+ pythonRuntime = with python.pkgs; [
+ click
+ click-plugins
+ ];
+ cmakeEnableFlag = "GR_MODTOOL";
+ };
+ gr-video-sdl = {
+ runtime = [ SDL ];
+ cmakeEnableFlag = "GR_VIDEO_SDL";
+ };
+ gr-vocoder = {
+ runtime = [ codec2 gsm ];
+ cmakeEnableFlag = "GR_VOCODER";
+ };
+ gr-wavelet = {
+ cmakeEnableFlag = "GR_WAVELET";
+ runtime = [ gsl ];
+ };
+ gr-zeromq = {
+ runtime = [ cppzmq zeromq ];
+ cmakeEnableFlag = "GR_ZEROMQ";
+ };
+ };
+ shared = (import ./shared.nix {
+ inherit
+ stdenv
+ python
+ removeReferencesTo
+ featuresInfo
+ features
+ versionAttr
+ sourceSha256
+ overrideSrc
+ fetchFromGitHub
+ fetchSubmodules
+ ;
+ qt = qt5;
+ gtk = gtk3;
+ });
+ inherit (shared)
+ version
+ src
+ hasFeature # function
+ nativeBuildInputs
+ buildInputs
+ disallowedReferences
+ stripDebugList
+ passthru
+ doCheck
+ dontWrapPythonPrograms
+ meta
+ ;
+ cmakeFlags = shared.cmakeFlags
+ # From some reason, if these are not set, libcodec2 and gsm are not
+ # detected properly. NOTE: qradiolink needs libcodec2 to be detected in
+ # order to build, see https://github.com/qradiolink/qradiolink/issues/67
+ ++ stdenv.lib.optionals (hasFeature "gr-vocoder" features) [
+ "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
+ "-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
+ "-DLIBCODEC2_HAS_FREEDV_API=ON"
+ "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
+ "-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
+ ]
+ ;
+
+ postInstall = shared.postInstall
+ # This is the only python reference worth removing, if needed (3.7 doesn't
+ # set that reference).
+ + stdenv.lib.optionalString (!hasFeature "python-support" features) ''
+ ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
+ ''
+ ;
+ preConfigure = ''
+ ''
+ # If python-support is disabled, don't install volk's (git submodule)
+ # volk_modtool - it references python.
+ #
+ # NOTE: on the next release, volk will always be required to be installed
+ # externally (submodule removed upstream). Hence this hook will fail and
+ # we'll need to package volk while able to tell it to install or not
+ # install python referencing files. When we'll be there, this will help:
+ # https://github.com/gnuradio/volk/pull/404
+ + stdenv.lib.optionalString (!hasFeature "python-support" features) ''
+ sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
+ ''
+ ;
+ patches = [
+ # Don't install python referencing files if python support is disabled.
+ # See: https://github.com/gnuradio/gnuradio/pull/3839
+ (fetchpatch {
+ url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff";
+ sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q=";
+ })
+ (fetchpatch {
+ url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff";
+ sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4=";
+ })
+ ];
+in
+
+stdenv.mkDerivation rec {
+ inherit
+ pname
+ version
+ src
+ nativeBuildInputs
+ buildInputs
+ cmakeFlags
+ preConfigure
+ # disallowedReferences
+ stripDebugList
+ patches
+ postInstall
+ passthru
+ doCheck
+ dontWrapPythonPrograms
+ meta
+ ;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/gsm.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/gsm.nix
new file mode 100644
index 000000000000..4e2406fc07a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/gsm.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio, log4cpp
+, makeWrapper, cppunit, libosmocore, gr-osmosdr
+, pythonSupport ? true, python, swig
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation {
+ pname = "gr-gsm";
+ version = "2016-08-25";
+
+ src = fetchFromGitHub {
+ owner = "ptrkrysik";
+ repo = "gr-gsm";
+ rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
+ sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cmake boost gnuradio makeWrapper cppunit libosmocore gr-osmosdr log4cpp
+ ] ++ stdenv.lib.optionals pythonSupport [ python swig ];
+
+ postInstall = ''
+ for prog in "$out"/bin/*; do
+ wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:${gr-osmosdr}/lib/${python.libPrefix}/site-packages:$(toPythonPath "$out")
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Gnuradio block for gsm";
+ homepage = "https://github.com/ptrkrysik/gr-gsm";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/limesdr.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/limesdr.nix
new file mode 100644
index 000000000000..b2f99164bec6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/limesdr.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio
+, pythonSupport ? true, python, swig, limesuite, log4cpp
+} :
+
+assert pythonSupport -> python != null && swig != null;
+
+let
+ version = "2.0.0";
+
+in stdenv.mkDerivation {
+ pname = "gr-limesdr";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "myriadrf";
+ repo = "gr-limesdr";
+ rev = "v${version}";
+ sha256 = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ ] ++ stdenv.lib.optionals pythonSupport [ swig ];
+
+ buildInputs = [
+ boost gnuradio limesuite log4cpp
+ ] ++ stdenv.lib.optionals pythonSupport [ python ];
+
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Gnuradio source and sink blocks for LimeSDR";
+ homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.markuskowa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/nacl.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/nacl.nix
new file mode 100644
index 000000000000..3435d5cdb4f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/nacl.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio, uhd
+, makeWrapper, libsodium, cppunit, log4cpp
+, pythonSupport ? true, python, swig
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation {
+ pname = "gr-nacl";
+ version = "2017-04-10";
+
+ src = fetchFromGitHub {
+ owner = "stwunsch";
+ repo = "gr-nacl";
+ rev = "15276bb0fcabf5fe4de4e58df3d579b5be0e9765";
+ sha256 = "018np0qlk61l7mlv3xxx5cj1rax8f1vqrsrch3higsl25yydbv7v";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cmake boost gnuradio uhd makeWrapper libsodium cppunit log4cpp
+ ] ++ stdenv.lib.optionals pythonSupport [ python swig ];
+
+ postInstall = ''
+ for prog in "$out"/bin/*; do
+ wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Gnuradio block for encryption";
+ homepage = "https://github.com/stwunsch/gr-nacl";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ mog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/osmosdr.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/osmosdr.nix
new file mode 100644
index 000000000000..9eb6fe648d02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/osmosdr.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchgit, cmake, pkgconfig, makeWrapper
+, boost
+, pythonSupport ? true, python, swig
+, airspy
+, gnuradio
+, hackrf
+, libbladeRF
+, rtl-sdr
+, soapysdr-with-plugins
+, uhd
+, log4cpp
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation rec {
+ pname = "gr-osmosdr";
+ version = "0.1.5";
+
+ src = fetchgit {
+ url = "git://git.osmocom.org/gr-osmosdr";
+ rev = "v${version}";
+ sha256 = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cmake makeWrapper boost log4cpp
+ airspy gnuradio hackrf libbladeRF rtl-sdr uhd
+ ] ++ stdenv.lib.optionals stdenv.isLinux [ soapysdr-with-plugins ]
+ ++ stdenv.lib.optionals pythonSupport [ python swig python.pkgs.cheetah ];
+
+ postInstall = ''
+ for prog in "$out"/bin/*; do
+ wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Gnuradio block for OsmoSDR and rtl-sdr";
+ homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/rds.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/rds.nix
new file mode 100644
index 000000000000..72838569bb3b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/rds.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio, log4cpp
+, makeWrapper, pythonSupport ? true, python, swig
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation rec {
+ pname = "gr-rds";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "bastibl";
+ repo = "gr-rds";
+ rev = "v${version}";
+ sha256 = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cmake boost gnuradio makeWrapper log4cpp
+ ] ++ stdenv.lib.optionals pythonSupport [ python swig ];
+
+ postInstall = ''
+ for prog in "$out"/bin/*; do
+ wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Gnuradio block for radio data system";
+ homepage = "https://github.com/bastibl/gr-rds";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ mog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix
new file mode 100644
index 000000000000..66ce0a5f5132
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix
@@ -0,0 +1,135 @@
+{ stdenv
+, python
+, qt
+, gtk
+, removeReferencesTo
+, featuresInfo
+, features
+, versionAttr
+, sourceSha256
+# If overriden. No need to set default values, as they are given defaults in
+# the main expressions
+, overrideSrc
+, fetchFromGitHub
+, fetchSubmodules
+}:
+
+let
+ lib = stdenv.lib;
+in rec {
+ version = builtins.concatStringsSep "." (
+ lib.attrVals [ "major" "minor" "patch" ] versionAttr
+ );
+ src = if overrideSrc != {} then
+ overrideSrc
+ else
+ fetchFromGitHub {
+ repo = "gnuradio";
+ owner = "gnuradio";
+ rev = "v${version}";
+ sha256 = sourceSha256;
+ inherit fetchSubmodules;
+ }
+ ;
+ # Check if a feature is enabled, while defaulting to true if feat is not
+ # specified.
+ hasFeature = feat: features: (
+ if builtins.hasAttr feat features then
+ features.${feat}
+ else
+ true
+ );
+ nativeBuildInputs = lib.flatten (lib.mapAttrsToList (
+ feat: info: (
+ if hasFeature feat features then
+ (if builtins.hasAttr "native" info then info.native else []) ++
+ (if builtins.hasAttr "pythonNative" info then info.pythonNative else [])
+ else
+ []
+ )
+ ) featuresInfo);
+ buildInputs = lib.flatten (lib.mapAttrsToList (
+ feat: info: (
+ if hasFeature feat features then
+ (if builtins.hasAttr "runtime" info then info.runtime else []) ++
+ (if builtins.hasAttr "pythonRuntime" info then info.pythonRuntime else [])
+ else
+ []
+ )
+ ) featuresInfo);
+ cmakeFlags = lib.mapAttrsToList (
+ feat: info: (
+ if feat == "basic" then
+ # Abuse this unavoidable "iteration" to set this flag which we want as
+ # well - it means: Don't turn on features just because their deps are
+ # satisfied, let only our cmakeFlags decide.
+ "-DENABLE_DEFAULT=OFF"
+ else
+ if hasFeature feat features then
+ "-DENABLE_${info.cmakeEnableFlag}=ON"
+ else
+ "-DENABLE_${info.cmakeEnableFlag}=OFF"
+ )) featuresInfo
+ ;
+ disallowedReferences = [
+ # TODO: Should this be conditional?
+ stdenv.cc
+ stdenv.cc.cc
+ ]
+ # If python-support is disabled, we probably don't want it referenced
+ ++ lib.optionals (!hasFeature "python-support" features) [ python ]
+ ;
+ # Gcc references from examples
+ stripDebugList = [ "lib" "bin" ]
+ ++ lib.optionals (hasFeature "gr-audio" features) [ "share/gnuradio/examples/audio" ]
+ ++ lib.optionals (hasFeature "gr-uhd" features) [ "share/gnuradio/examples/uhd" ]
+ ++ lib.optionals (hasFeature "gr-qtgui" features) [ "share/gnuradio/examples/qt-gui" ]
+ ;
+ postInstall = ''
+ ''
+ # Gcc references
+ + lib.optionalString (hasFeature "volk" features) ''
+ ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so)
+ ''
+ + lib.optionalString (hasFeature "gnuradio-runtime" features) ''
+ ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so)
+ ''
+ ;
+ # NOTE: Outputs are disabled due to upstream not using GNU InstallDIrs cmake
+ # module. It's not that bad since it's a development package for most
+ # purposes. If closure size needs to be reduced, features should be disabled
+ # via an override.
+ passthru = {
+ inherit
+ hasFeature
+ versionAttr
+ features
+ featuresInfo
+ python
+ qt
+ gtk
+ ;
+ };
+ # Wrapping is done with an external wrapper
+ dontWrapPythonPrograms = true;
+ # Tests should succeed, but it's hard to get LD_LIBRARY_PATH right in order
+ # for it to happen.
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Software Defined Radio (SDR) software";
+ longDescription = ''
+ GNU Radio is a free & open-source software development toolkit that
+ provides signal processing blocks to implement software radios. It can be
+ used with readily-available low-cost external RF hardware to create
+ software-defined radios, or without hardware in a simulation-like
+ environment. It is widely used in hobbyist, academic and commercial
+ environments to support both wireless communications research and
+ real-world radio systems.
+ '';
+ homepage = "https://www.gnuradio.org";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ doronbehar bjornfor fpletz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix
new file mode 100644
index 000000000000..6b854918f571
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix
@@ -0,0 +1,134 @@
+{ stdenv
+, unwrapped
+, makeWrapper
+# For lndir
+, xorg
+# For Emulating wrapGAppsHook
+, gsettings-desktop-schemas
+, glib
+, hicolor-icon-theme
+, pango
+, json-glib
+, dconf
+, gobject-introspection
+, librsvg
+, gdk-pixbuf
+, harfbuzz
+, at-spi2-core
+, atk
+# For Adding additional GRC blocks
+, extraPackages ? []
+# For Adding additional python packaages
+, extraPythonPackages ? []
+# Allow to add whatever you want to the wrapper
+, extraMakeWrapperArgs ? []
+}:
+
+let
+ pythonPkgs = extraPythonPackages
+ # Add the extraPackages as python modules as well
+ ++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages)
+ ++ stdenv.lib.flatten (stdenv.lib.mapAttrsToList (
+ feat: info: (
+ if unwrapped.hasFeature feat unwrapped.features then
+ (if builtins.hasAttr "pythonRuntime" info then info.pythonRuntime else [])
+ else
+ []
+ )
+ ) unwrapped.featuresInfo)
+ ++ stdenv.lib.optionals (unwrapped.hasFeature "python-support" unwrapped.features) [
+ # Add unwrapped itself as a python module
+ (unwrapped.python.pkgs.toPythonModule unwrapped)
+ ]
+ ;
+ python3Env = unwrapped.python.withPackages(ps: pythonPkgs);
+
+ name = (stdenv.lib.appendToName "wrapped" unwrapped).name;
+ makeWrapperArgs = builtins.concatStringsSep " " ([
+ ]
+ # Emulating wrapGAppsHook & wrapQtAppsHook working together
+ ++ stdenv.lib.optionals (
+ (unwrapped.hasFeature "gnuradio-companion" unwrapped.features)
+ || (unwrapped.hasFeature "gr-qtgui" unwrapped.features)
+ ) [
+ "--prefix" "XDG_DATA_DIRS" ":" "$out/share"
+ "--prefix" "XDG_DATA_DIRS" ":" "$out/share/gsettings-schemas/${name}"
+ "--prefix" "XDG_DATA_DIRS" ":" "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"
+ "--prefix" "XDG_DATA_DIRS" ":" "${hicolor-icon-theme}/share"
+ # Needs to run `gsettings` on startup, see:
+ # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1764890.html
+ "--prefix" "PATH" ":" "${stdenv.lib.getBin glib}/bin"
+ ]
+ ++ stdenv.lib.optionals (unwrapped.hasFeature "gnuradio-companion" unwrapped.features) [
+ "--set" "GDK_PIXBUF_MODULE_FILE" "${librsvg}/${gdk-pixbuf.moduleDir}.cache"
+ "--prefix" "GIO_EXTRA_MODULES" ":" "${stdenv.lib.getLib dconf}/lib/gio/modules"
+ "--prefix" "XDG_DATA_DIRS" ":" "${unwrapped.gtk}/share"
+ "--prefix" "XDG_DATA_DIRS" ":" "${unwrapped.gtk}/share/gsettings-schemas/${unwrapped.gtk.name}"
+ "--prefix" "GI_TYPELIB_PATH" ":" "${stdenv.lib.makeSearchPath "lib/girepository-1.0" [
+ unwrapped.gtk
+ gsettings-desktop-schemas
+ atk
+ # From some reason, if .out is not used, .bin is used, and we want
+ # what's in `.out`.
+ pango.out
+ gdk-pixbuf
+ json-glib
+ harfbuzz
+ librsvg
+ gobject-introspection
+ at-spi2-core
+ ]}"
+ ]
+ ++ stdenv.lib.optionals (extraPackages != []) [
+ "--prefix" "GRC_BLOCKS_PATH" ":" "${stdenv.lib.makeSearchPath "share/gnuradio/grc/blocks" extraPackages}"
+ ]
+ ++ stdenv.lib.optionals (unwrapped.hasFeature "gr-qtgui" unwrapped.features)
+ # 3.7 builds with qt4
+ (if unwrapped.versionAttr.major == "3.8" then
+ [
+ "--prefix" "QT_PLUGIN_PATH" ":"
+ "${stdenv.lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtPluginPrefix}"
+ "--prefix" "QML2_IMPORT_PATH" ":"
+ "${stdenv.lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtQmlPrefix}"
+ ]
+ else
+ # TODO: Add here qt4 related environment for 3.7?
+ [
+
+ ]
+ )
+ ++ extraMakeWrapperArgs
+ );
+in
+stdenv.mkDerivation {
+ inherit name;
+
+ buildInputs = [
+ makeWrapper
+ xorg.lndir
+ ];
+
+ passthru = {
+ inherit python3Env pythonPkgs unwrapped;
+ };
+
+ buildCommand = ''
+ mkdir $out
+ cd $out
+ lndir -silent ${unwrapped}
+ for i in $out/bin/*; do
+ if [[ ! -x "$i" ]]; then
+ continue
+ fi
+ cp -L "$i" "$i".tmp
+ mv -f "$i".tmp "$i"
+ if head -1 "$i" | grep -q ${unwrapped.python}; then
+ substituteInPlace "$i" \
+ --replace ${unwrapped.python} ${python3Env}
+ fi
+ wrapProgram "$i" ${makeWrapperArgs}
+ done
+ '';
+
+ inherit (unwrapped) meta;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/gqrx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/gqrx/default.nix
new file mode 100644
index 000000000000..b2402aad33eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/gqrx/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, qtbase, qtsvg, gnuradio, boost, gr-osmosdr
+, mkDerivation
+# drivers (optional):
+, rtl-sdr, hackrf
+, pulseaudioSupport ? true, libpulseaudio
+}:
+
+assert pulseaudioSupport -> libpulseaudio != null;
+
+mkDerivation rec {
+ pname = "gqrx";
+ version = "2.14.2";
+
+ src = fetchFromGitHub {
+ owner = "csete";
+ repo = "gqrx";
+ rev = "v${version}";
+ sha256 = "15xlzfgmffq43wn74xjqc5p2m21i3lh28qqskd2jf2hhvanpcwcp";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [
+ qtbase qtsvg gnuradio boost gr-osmosdr rtl-sdr hackrf
+ ] ++ stdenv.lib.optionals pulseaudioSupport [ libpulseaudio ];
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ install -vD $src/gqrx.desktop -t "$out/share/applications/"
+ install -vD $src/resources/icons/gqrx.svg -t "$out/share/icons/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Software defined radio (SDR) receiver";
+ longDescription = ''
+ Gqrx is a software defined radio receiver powered by GNU Radio and the Qt
+ GUI toolkit. It can process I/Q data from many types of input devices,
+ including Funcube Dongle Pro/Pro+, rtl-sdr, HackRF, and Universal
+ Software Radio Peripheral (USRP) devices.
+ '';
+ homepage = "https://gqrx.dk/";
+ # Some of the code comes from the Cutesdr project, with a BSD license, but
+ # it's currently unknown which version of the BSD license that is.
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux; # should work on Darwin / macOS too
+ maintainers = with maintainers; [ bjornfor fpletz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/hackrf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/hackrf/default.nix
new file mode 100644
index 000000000000..b0aaddcdc6b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/hackrf/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libusb1, fftwSinglePrec }:
+
+stdenv.mkDerivation rec {
+ pname = "hackrf";
+ version = "2018.01.1";
+
+ src = fetchFromGitHub {
+ owner = "mossmann";
+ repo = "hackrf";
+ rev = "v${version}";
+ sha256 = "0idh983xh6gndk9kdgx5nzz76x3mxb42b02c5xvdqahadsfx3b9w";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ ];
+
+ buildInputs = [
+ libusb1
+ fftwSinglePrec
+ ];
+
+ cmakeFlags = [ "-DUDEV_RULES_GROUP=plugdev" "-DUDEV_RULES_PATH=lib/udev/rules.d" ];
+
+ preConfigure = ''
+ cd host
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An open source SDR platform";
+ homepage = "https://greatscottgadgets.com/hackrf/";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ sjmackenzie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/inspectrum/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
new file mode 100644
index 000000000000..cf4ddd5b6e86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, cmake
+, boost
+, fftwFloat
+, gnuradio
+, liquid-dsp
+, qtbase
+, wrapQtAppsHook
+}:
+
+mkDerivation rec {
+ pname = "inspectrum";
+ version = "0.2.3";
+
+ src = fetchFromGitHub {
+ owner = "miek";
+ repo = "inspectrum";
+ rev = "v${version}";
+ sha256 = "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
+ buildInputs = [
+ fftwFloat
+ boost
+ gnuradio
+ liquid-dsp
+ qtbase
+ ];
+
+ meta = with lib; {
+ description = "Tool for analysing captured signals from sdr receivers";
+ homepage = "https://github.com/miek/inspectrum";
+ maintainers = with maintainers; [ mog ];
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/kalibrate-hackrf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/kalibrate-hackrf/default.nix
new file mode 100644
index 000000000000..273d2d8c8e37
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/kalibrate-hackrf/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, fftw, hackrf, libusb1 }:
+
+stdenv.mkDerivation {
+ name = "kalibrate-hackrf-unstable-20160827";
+
+ # There are no tags/releases, so use the latest commit from git master.
+ # Currently, the latest commit is from 2016-07-03.
+ src = fetchFromGitHub {
+ owner = "scateu";
+ repo = "kalibrate-hackrf";
+ rev = "2492c20822ca6a49dce97967caf394b1d4b2c43e";
+ sha256 = "1jvn1qx7csgycxpx1k804sm9gk5a0c65z9gh8ybp9awq3pziv0nx";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ buildInputs = [ fftw hackrf libusb1 ];
+
+ postInstall = ''
+ mv $out/bin/kal $out/bin/kal-hackrf
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Calculate local oscillator frequency offset in hackrf devices";
+ longDescription = ''
+ Kalibrate, or kal, can scan for GSM base stations in a given frequency
+ band and can use those GSM base stations to calculate the local
+ oscillator frequency offset.
+
+ This package is for hackrf devices.
+ '';
+ homepage = "https://github.com/scateu/kalibrate-hackrf";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.mog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/kalibrate-rtl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/kalibrate-rtl/default.nix
new file mode 100644
index 000000000000..38913e827d09
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/kalibrate-rtl/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, autoreconfHook, pkgconfig, fftw, rtl-sdr, libusb1 }:
+
+stdenv.mkDerivation {
+ name = "kalibrate-rtl-20131214";
+
+ # There are no tags/releases, so use the latest commit from git master.
+ # Currently, the latest commit is from 2013-12-14.
+ src = fetchgit {
+ url = "https://github.com/steve-m/kalibrate-rtl.git";
+ rev = "aae11c8a8dc79692a94ccfee39ba01e8c8c05d38";
+ sha256 = "1spbfflkqnw9s8317ppsf7b1nnkicqsmaqsnz1zf8i49ix70i6kn";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ fftw rtl-sdr libusb1 ];
+
+ meta = with stdenv.lib; {
+ description = "Calculate local oscillator frequency offset in RTL-SDR devices";
+ longDescription = ''
+ Kalibrate, or kal, can scan for GSM base stations in a given frequency
+ band and can use those GSM base stations to calculate the local
+ oscillator frequency offset.
+
+ This package is for RTL-SDR devices.
+ '';
+ homepage = "https://github.com/steve-m/kalibrate-rtl";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/limesuite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/limesuite/default.nix
new file mode 100644
index 000000000000..25f49c3a2d65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/limesuite/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake
+, sqlite, wxGTK30-gtk3, libusb1, soapysdr
+, mesa_glu, libX11, gnuplot, fltk
+} :
+
+stdenv.mkDerivation rec {
+ pname = "limesuite";
+ version = "20.10.0";
+
+ src = fetchFromGitHub {
+ owner = "myriadrf";
+ repo = "LimeSuite";
+ rev = "v${version}";
+ sha256 = "04wzfhzqmxjsa6bgcr4zd518fln9rbwnbabf48kha84d70vzkdlx";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ cmakeFlags = [
+ "-DOpenGL_GL_PREFERENCE=GLVND"
+ ];
+
+ buildInputs = [
+ libusb1
+ sqlite
+ wxGTK30-gtk3
+ fltk
+ gnuplot
+ libusb1
+ soapysdr
+ mesa_glu
+ libX11
+ ];
+
+ postInstall = ''
+ install -Dm444 -t $out/lib/udev/rules.d ../udev-rules/64-limesuite.rules
+ install -Dm444 -t $out/share/limesuite bin/Release/lms7suite_mcu/*
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Driver and GUI for LMS7002M-based SDR platforms";
+ homepage = "https://github.com/myriadrf/LimeSuite";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ markuskowa ];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/minimodem/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/minimodem/default.nix
new file mode 100644
index 000000000000..e94561e46dc8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/minimodem/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoconf, automake, libtool
+, fftw, fftwSinglePrec, alsaLib, libsndfile, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.24-1";
+ pname = "minimodem";
+
+ src = fetchFromGitHub {
+ owner = "kamalmostafa";
+ repo = "minimodem";
+ rev = "${pname}-${version}";
+ sha256 = "1b5xy36fjcp7vkp115dpx4mlmqg2fc7xvxdy648fb8im953bw7ql";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoconf automake libtool ];
+ buildInputs = [ fftw fftwSinglePrec alsaLib libsndfile libpulseaudio ];
+
+ preConfigure = ''
+ aclocal \
+ && autoheader \
+ && automake --gnu --add-missing \
+ && autoconf
+ '';
+
+ meta = {
+ description = "General-purpose software audio FSK modem";
+ longDescription = ''
+ Minimodem is a command-line program which decodes (or generates) audio
+ modem tones at any specified baud rate, using various framing protocols. It
+ acts a general-purpose software FSK modem, and includes support for various
+ standard FSK protocols such as Bell103, Bell202, RTTY, NOAA SAME, and
+ Caller-ID.
+ '';
+ homepage = "http://www.whence.com/minimodem/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = with stdenv.lib.platforms; linux;
+ maintainers = with stdenv.lib.maintainers; [ relrod ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
new file mode 100644
index 000000000000..a51a67135c05
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, qt4, qmake4Hook, libpulseaudio }:
+let
+ version = "1.1.9";
+in
+stdenv.mkDerivation {
+ pname = "multimon-ng";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "EliasOenal";
+ repo = "multimon-ng";
+ rev = version;
+ sha256 = "01716cfhxfzsab9zjply9giaa4nn4b7rm3p3vizrwi7n253yiwm2";
+ };
+
+ buildInputs = [ qt4 libpulseaudio ];
+
+ nativeBuildInputs = [ qmake4Hook ];
+
+ qmakeFlags = [ "multimon-ng.pro" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp multimon-ng $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Multimon is a digital baseband audio protocol decoder";
+ longDescription = ''
+ multimon-ng a fork of multimon, a digital baseband audio
+ protocol decoder for common signaling modes in commercial and
+ amateur radio data services. It decodes the following digital
+ transmission modes:
+
+ POCSAG512 POCSAG1200 POCSAG2400 EAS UFSK1200 CLIPFSK AFSK1200
+ AFSK2400 AFSK2400_2 AFSK2400_3 HAPN4800 FSK9600 DTMF ZVEI1 ZVEI2
+ ZVEI3 DZVEI PZVEI EEA EIA CCIR MORSE CW
+ '';
+ homepage = "https://github.com/EliasOenal/multimon-ng";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix
new file mode 100644
index 000000000000..01dc7b5c30db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, atk
+, cairo
+, gdk-pixbuf
+, glib
+, gtk3
+, openssl
+, pango
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "noaa-apt";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "martinber";
+ repo = "noaa-apt";
+ rev = "v${version}";
+ sha256 = "0fmbg6lw7lmm402hzddpzgi7y9mc6kic14x8rif7fampk20mv3ms";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ ];
+
+ buildInputs = [
+ atk
+ cairo
+ gdk-pixbuf
+ glib
+ gtk3
+ openssl
+ pango
+ ];
+
+ cargoSha256 = "0w4rbbz8lsh31xkgibzndiic47690nfcjrn1411dskf7ali6djy8";
+
+ preBuild = ''
+ # Used by macro pointing to resource location at compile time.
+ export NOAA_APT_RES_DIR=$out/share/noaa-apt
+ '';
+
+ postInstall = ''
+ # Resources.
+ mkdir -p $out/share/noaa-apt
+ cp -R $src/res/* $out/share/noaa-apt/
+
+ # Desktop icon.
+ install -Dm644 -t $out/share/applications $src/debian/ar.com.mbernardi.noaa-apt.desktop
+ install -Dm644 -t $out/share/icons/hicolor/48x48/apps $src/debian/noaa-apt.png
+ install -Dm644 -t $out/share/icons/hicolor/scalable/apps $src/debian/noaa-apt.svg
+ '';
+
+ meta = with lib; {
+ description = "NOAA APT image decoder";
+ homepage = "https://noaa-apt.mbernardi.com.ar/";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ trepetti ];
+ platforms = platforms.all;
+ changelog = "https://github.com/martinber/noaa-apt/releases/tag/v${version}";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/pyradio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/pyradio/default.nix
new file mode 100644
index 000000000000..f23359688c6c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/pyradio/default.nix
@@ -0,0 +1,24 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "pyradio";
+ version = "0.8.7.2";
+
+ src = fetchFromGitHub {
+ owner = "coderholic";
+ repo = pname;
+ rev = version;
+ sha256 = "0h2sxaqpmc1d1kpvpbcs9wymgzhx25x0x9p7dbyfw9r90i6123q1";
+ };
+
+ checkPhase = ''
+ $out/bin/pyradio --help
+ '';
+
+ meta = with lib; {
+ homepage = "http://www.coderholic.com/pyradio/";
+ description = "Curses based internet radio player";
+ license = licenses.mit;
+ maintainers = with maintainers; [ contrun ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/qradiolink/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
new file mode 100644
index 000000000000..4c792811dc59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, alsaLib, boost
+, qt4, libpulseaudio, codec2, libconfig
+, gnuradio, gr-osmosdr, gsm
+, libopus, libjpeg, protobuf, qwt, speex
+} :
+
+let
+ version = "0.5.0";
+
+in stdenv.mkDerivation {
+ pname = "qradiolink";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "kantooon";
+ repo = "qradiolink";
+ rev = version;
+ sha256 = "0xhg5zhjznmls5m3rhpk1qx0dipxmca12s85w15d0i7qwva2f1gi";
+ };
+
+ preBuild = ''
+ cd ext
+ protoc --cpp_out=. Mumble.proto
+ protoc --cpp_out=. QRadioLink.proto
+ cd ..
+ qmake
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp qradiolink $out/bin
+ '';
+
+ buildInputs = [
+ qt4
+ alsaLib
+ boost
+ libpulseaudio
+ codec2
+ libconfig
+ gsm
+ gnuradio
+ gr-osmosdr
+ libopus
+ libjpeg
+ protobuf
+ speex
+ qwt
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "SDR transceiver application for analog and digital modes";
+ homepage = "http://qradiolink.org/";
+ license = licenses.agpl3;
+ maintainers = [ maintainers.markuskowa ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/qsstv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/qsstv/default.nix
new file mode 100644
index 000000000000..d5d12a714031
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/qsstv/default.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, stdenv, fetchurl, qtbase, qmake, openjpeg, pkgconfig, fftw,
+ libpulseaudio, alsaLib, hamlib, libv4l, fftwFloat }:
+
+mkDerivation rec {
+ version = "9.4.4";
+ pname = "qsstv";
+
+ src = fetchurl {
+ url = "http://users.telenet.be/on4qz/qsstv/downloads/qsstv_${version}.tar.gz";
+ sha256 = "0f9hx6sy418cb23fadll298pqbc5l2lxsdivi4vgqbkvx7sw58zi";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [
+ qmake
+ pkgconfig
+ ];
+
+ buildInputs = [ qtbase openjpeg fftw libpulseaudio alsaLib hamlib libv4l
+ fftwFloat ];
+
+ postInstall = ''
+ # Install desktop icon
+ install -D qsstv/icons/qsstv.png $out/share/pixmaps/qsstv.png
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Qt-based slow-scan TV and fax";
+ homepage = "http://users.telenet.be/on4qz/";
+ platforms = platforms.linux;
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ hax404 ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/quisk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/quisk/default.nix
new file mode 100644
index 000000000000..86edfadcce11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/quisk/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, python38Packages, fetchPypi
+, fftw, alsaLib, pulseaudio, wxPython_4_0 }:
+
+python38Packages.buildPythonApplication rec {
+ pname = "quisk";
+ version = "4.1.73";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "37dfb02a32341025c086b07d66ddf1608d4ee1ae1c62fb51f87c97662f13e0d8";
+ };
+
+ buildInputs = [ fftw alsaLib pulseaudio ];
+
+ propagatedBuildInputs = [ wxPython_4_0 ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A SDR transceiver for radios that use the Hermes protocol";
+ longDescription = ''
+ QUISK is a Software Defined Radio (SDR) transceiver. You supply radio
+ hardware that converts signals at the antenna to complex (I/Q) data at an
+ intermediate frequency (IF). Data can come from a sound card, Ethernet or
+ USB. Quisk then filters and demodulates the data and sends the audio to
+ your speakers or headphones. For transmit, Quisk takes the microphone
+ signal, converts it to I/Q data and sends it to the hardware.
+
+ Quisk can be used with SoftRock, Hermes Lite 2, HiQSDR, Odyssey and many
+ radios that use the Hermes protocol. Quisk can connect to digital
+ programs like Fldigi and WSJT-X. Quisk can be connected to other software
+ like N1MM+ and software that uses Hamlib.
+ '';
+ license = licenses.gpl2Plus;
+ homepage = "https://james.ahlstrom.name/quisk/";
+ maintainers = with maintainers; [ pulsation ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/rtl-ais/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/rtl-ais/default.nix
new file mode 100644
index 000000000000..f806f07d597d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/rtl-ais/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libusb1, rtl-sdr }:
+
+stdenv.mkDerivation {
+ name = "rtl-ais";
+ version = "0.8.1";
+ buildInputs = [ pkgconfig rtl-sdr libusb1 ];
+
+ src = fetchFromGitHub {
+ owner = "dgiardini";
+ repo = "rtl-ais";
+ rev = "0e85f4e5f9ce7378834c3129bc894580efc24291";
+ sha256 = "0wm4zai1vs89mf0zgz52q5w5rj8f3i3v6zg42hfb7aqabi25r3jf";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "A simple AIS tuner and generic dual-frequency FM demodulator";
+ homepage = "https://github.com/dgiardini/rtl-ais";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ mgdm ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix
new file mode 100644
index 000000000000..7e044296b02c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchgit, fetchpatch, cmake, pkgconfig, libusb1 }:
+
+stdenv.mkDerivation rec {
+ pname = "rtl-sdr";
+ version = "0.6.0";
+
+ src = fetchgit {
+ url = "git://git.osmocom.org/rtl-sdr.git";
+ rev = "refs/tags/${version}";
+ sha256 = "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k";
+ };
+
+ patches = [ (fetchpatch {
+ name = "hardened-udev-rules.patch";
+ url = "https://osmocom.org/projects/rtl-sdr/repository/revisions/b2814731563be4d5a0a68554ece6454a2c63af12/diff?format=diff";
+ sha256 = "0ns740s2rys4glq4la4bh0sxfv1mn61yfjns2yllhx70rsb2fqrn";
+ }) ];
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [ libusb1 ];
+
+ # TODO: get these fixes upstream:
+ # * Building with -DINSTALL_UDEV_RULES=ON tries to install udev rules to
+ # /etc/udev/rules.d/, and there is no option to install elsewhere. So install
+ # rules manually.
+ # * Propagate libusb-1.0 dependency in pkg-config file.
+ postInstall = stdenv.lib.optionalString stdenv.isLinux ''
+ mkdir -p "$out/etc/udev/rules.d/"
+ cp ../rtl-sdr.rules "$out/etc/udev/rules.d/99-rtl-sdr.rules"
+
+ pcfile="$out"/lib/pkgconfig/librtlsdr.pc
+ grep -q "Requires:" "$pcfile" && { echo "Upstream has added 'Requires:' in $(basename "$pcfile"); update nix expression."; exit 1; }
+ echo "Requires: libusb-1.0" >> "$pcfile"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Turns your Realtek RTL2832 based DVB dongle into a SDR receiver";
+ homepage = "http://sdr.osmocom.org/trac/wiki/rtl-sdr";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/rtl_433/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/rtl_433/default.nix
new file mode 100644
index 000000000000..c84160c19eae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/rtl_433/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, libusb1, rtl-sdr, soapysdr-with-plugins
+}:
+
+stdenv.mkDerivation rec {
+ version = "20.11";
+ pname = "rtl_433";
+
+ src = fetchFromGitHub {
+ owner = "merbanan";
+ repo = "rtl_433";
+ rev = version;
+ sha256 = "093bxjxkg7yf78wqj5gpijbfa2p05ny09qqsj84kzi1svnzsa369";
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+
+ buildInputs = [ libusb1 rtl-sdr soapysdr-with-plugins ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Decode traffic from devices that broadcast on 433.9 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz";
+ homepage = "https://github.com/merbanan/rtl_433";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ earldouglas ];
+ platforms = platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/sdrangel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
new file mode 100644
index 000000000000..dd8c56610c28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
@@ -0,0 +1,69 @@
+{
+airspy,
+boost,
+cm256cc,
+cmake,
+codec2,
+fetchFromGitHub,
+fftwFloat,
+glew,
+hackrf,
+lib,
+libav,
+libiio,
+libopus,
+libpulseaudio,
+libusb1,
+limesuite,
+libbladeRF,
+mkDerivation,
+ocl-icd,
+opencv3,
+pkgconfig,
+qtbase,
+qtmultimedia,
+qtserialport,
+qtwebsockets,
+rtl-sdr,
+serialdv,
+uhd
+}:
+
+mkDerivation rec {
+ pname = "sdrangel";
+ version = "4.21.1";
+
+ src = fetchFromGitHub {
+ owner = "f4exb";
+ repo = "sdrangel";
+ rev = "v${version}";
+ sha256 = "y6BVwnSJXiapgm9pAuby1DLLeU5MSyB4uqEa3oS35/U=";
+ fetchSubmodules = false;
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [
+ glew opencv3 libusb1 boost libopus limesuite libav libiio libpulseaudio
+ qtbase qtwebsockets qtmultimedia rtl-sdr airspy hackrf
+ fftwFloat codec2 cm256cc serialdv qtserialport
+ libbladeRF uhd
+ ];
+ cmakeFlags = [
+ "-DLIBSERIALDV_INCLUDE_DIR:PATH=${serialdv}/include/serialdv"
+ "-DLIMESUITE_INCLUDE_DIR:PATH=${limesuite}/include"
+ "-DLIMESUITE_LIBRARY:FILEPATH=${limesuite}/lib/libLimeSuite.so"
+ ];
+
+ LD_LIBRARY_PATH = "${ocl-icd}/lib";
+
+ meta = with lib; {
+ description = "Software defined radio (SDR) software";
+ longDescription = ''
+ SDRangel is an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
+ '';
+ homepage = "https://github.com/f4exb/sdrangel";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ alkeryn ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyairspy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyairspy/default.nix
new file mode 100644
index 000000000000..4a69e52741e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyairspy/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake
+, airspy, soapysdr
+} :
+
+let
+ version = "0.1.2";
+
+in stdenv.mkDerivation {
+ pname = "soapyairspy";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "pothosware";
+ repo = "SoapyAirspy";
+ rev = "soapy-airspy-${version}";
+ sha256 = "061r77vs6ywxbxfif12y6v5xkz6gcvbz9k060q12vmdh6sisdwk2";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ airspy soapysdr ];
+
+ cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pothosware/SoapyAirspy";
+ description = "SoapySDR plugin for Airspy devices";
+ license = licenses.mit;
+ maintainers = with maintainers; [ markuskowa ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/soapybladerf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapybladerf/default.nix
new file mode 100644
index 000000000000..7e2e17a84558
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapybladerf/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, libbladeRF, soapysdr
+} :
+
+let
+ version = "0.4.1";
+
+in stdenv.mkDerivation {
+ pname = "soapybladerf";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "pothosware";
+ repo = "SoapyBladeRF";
+ rev = "soapy-bladerf-${version}";
+ sha256 = "02wh09850vinqg248fw4lxmx7y857cqmnnb8jm9zhyrsggal0hki";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ libbladeRF soapysdr ];
+
+ cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
+
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pothosware/SoapyBladeRF";
+ description = "SoapySDR plugin for BladeRF devices";
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ markuskowa ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyhackrf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyhackrf/default.nix
new file mode 100644
index 000000000000..e472b1cc3ae9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyhackrf/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, hackrf, soapysdr
+} :
+
+let
+ version = "0.3.3";
+
+in stdenv.mkDerivation {
+ pname = "soapyhackrf";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "pothosware";
+ repo = "SoapyHackRF";
+ rev = "soapy-hackrf-${version}";
+ sha256 = "1awn89z462500gb3fjb7x61b1znkjri9n1d39bqfip1qk4s11pxc";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ hackrf soapysdr ];
+
+ cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pothosware/SoapyHackRF";
+ description = "SoapySDR plugin for HackRF devices";
+ license = licenses.mit;
+ maintainers = with maintainers; [ markuskowa ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyremote/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyremote/default.nix
new file mode 100644
index 000000000000..b49debdb1af0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyremote/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, cmake, soapysdr, avahi }:
+
+let
+ version = "0.5.2";
+
+in stdenv.mkDerivation {
+ pname = "soapyremote";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "pothosware";
+ repo = "SoapyRemote";
+ rev = "soapy-remote-${version}";
+ sha256 = "124sy9v08fm51ds1yzrxspychn34y0rl6y48mzariianazvzmfax";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ soapysdr avahi ];
+
+ cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pothosware/SoapyRemote";
+ description = "SoapySDR plugin for remote access to SDRs";
+ license = licenses.boost;
+ maintainers = with maintainers; [ markuskowa ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyrtlsdr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyrtlsdr/default.nix
new file mode 100644
index 000000000000..8f342190ba7e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyrtlsdr/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, rtl-sdr, soapysdr
+} :
+
+let
+ version = "0.3.0";
+
+in stdenv.mkDerivation {
+ pname = "soapyrtlsdr";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "pothosware";
+ repo = "SoapyRTLSDR";
+ rev = "soapy-rtlsdr-${version}";
+ sha256 = "15j0s7apbg9cjr6rcbr058kl0r3szwzf00ixcbykxb77fh7c6r9w";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ rtl-sdr soapysdr ];
+
+ cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pothosware/SoapyRTLSDR";
+ description = "SoapySDR plugin for RTL-SDR devices";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ragge ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/soapysdr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapysdr/default.nix
new file mode 100644
index 000000000000..676f7d3c839e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapysdr/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, lib, lndir, makeWrapper
+, fetchFromGitHub, cmake
+, libusb-compat-0_1, pkgconfig
+, usePython ? false
+, python, ncurses, swig2
+, extraPackages ? []
+} :
+
+let
+
+ version = "0.7.2";
+ modulesVersion = with lib; versions.major version + "." + versions.minor version;
+ modulesPath = "lib/SoapySDR/modules" + modulesVersion;
+ extraPackagesSearchPath = lib.makeSearchPath modulesPath extraPackages;
+
+in stdenv.mkDerivation {
+ pname = "soapysdr";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "pothosware";
+ repo = "SoapySDR";
+ rev = "soapy-sdr-${version}";
+ sha256 = "102wnpjxrwba20pzdh1vvx0yg1h8vqd8z914idxflg9p14r6v5am";
+ };
+
+ nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
+ buildInputs = [ libusb-compat-0_1 ncurses ]
+ ++ lib.optionals usePython [ python swig2 ];
+
+ propagatedBuildInputs = lib.optional usePython python.pkgs.numpy;
+
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=Release"
+ ] ++ lib.optional usePython "-DUSE_PYTHON_CONFIG=ON";
+
+ postFixup = lib.optionalString (lib.length extraPackages != 0) ''
+ # Join all plugins via symlinking
+ for i in ${toString extraPackages}; do
+ ${lndir}/bin/lndir -silent $i $out
+ done
+ # Needed for at least the remote plugin server
+ for file in $out/bin/*; do
+ wrapProgram "$file" --prefix SOAPY_SDR_PLUGIN_PATH : ${extraPackagesSearchPath}
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pothosware/SoapySDR";
+ description = "Vendor and platform neutral SDR support library";
+ license = licenses.boost;
+ maintainers = with maintainers; [ markuskowa ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyuhd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyuhd/default.nix
new file mode 100644
index 000000000000..a169116c29a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/soapyuhd/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, uhd, boost, soapysdr
+} :
+
+let
+ version = "0.3.6";
+
+in stdenv.mkDerivation {
+ pname = "soapyuhd";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "pothosware";
+ repo = "SoapyUHD";
+ rev = "soapy-uhd-${version}";
+ sha256 = "11kp5iv21k8lqwjjydzqmcxdgpm6yicw6d3jhzvcvwcavd41crs7";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ uhd boost soapysdr ];
+
+ cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
+
+ postPatch = ''
+ sed -i "s:DESTINATION .*uhd/modules:DESTINATION $out/lib/uhd/modules:" CMakeLists.txt
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pothosware/SoapyAirspy";
+ description = "SoapySDR plugin for UHD devices";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ markuskowa ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/svxlink/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/svxlink/default.nix
new file mode 100644
index 000000000000..e06fcb5d3e67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/svxlink/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, cmake, pkgconfig, fetchFromGitHub, makeDesktopItem, alsaLib, speex
+, libopus, curl, gsm, libgcrypt, libsigcxx, popt, qtbase, qttools
+, wrapQtAppsHook, rtl-sdr, tcl, doxygen, groff }:
+
+let
+ desktopItem = makeDesktopItem rec {
+ name = "Qtel";
+ exec = "qtel";
+ icon = "qtel";
+ desktopName = name;
+ genericName = "EchoLink Client";
+ categories = "HamRadio;Qt;Network;";
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "svxlink";
+ version = "19.09.1";
+
+ src = fetchFromGitHub {
+ owner = "sm0svx";
+ repo = pname;
+ rev = version;
+ sha256 = "0xmbac821w9kl7imlz0mra19mlhi0rlpbyyay26w1y7h98j4g4yp";
+ };
+
+ cmakeFlags = [
+ "-DDO_INSTALL_CHOWN=NO"
+ "-DRTLSDR_LIBRARIES=${rtl-sdr}/lib/librtlsdr.so"
+ "-DRTLSDR_INCLUDE_DIRS=${rtl-sdr}/include"
+ "../src"
+ ];
+ enableParallelBuilding = true;
+ dontWrapQtApps = true;
+
+ nativeBuildInputs = [ cmake pkgconfig doxygen groff wrapQtAppsHook ];
+
+ buildInputs = [
+ alsaLib
+ curl
+ gsm
+ libgcrypt
+ libsigcxx
+ libopus
+ popt
+ qtbase
+ qttools
+ rtl-sdr
+ speex
+ tcl
+ ];
+
+ postInstall = ''
+ rm -f $out/share/applications/*
+ cp -v ${desktopItem}/share/applications/* $out/share/applications
+ mv $out/share/icons/link.xpm $out/share/icons/qtel.xpm
+
+ wrapQtApp $out/bin/qtel
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Advanced repeater controller and EchoLink software";
+ longDescription = ''
+ Advanced repeater controller and EchoLink software for Linux including a
+ GUI, Qtel - The Qt EchoLink client
+ '';
+ homepage = "http://www.svxlink.org/";
+ license = with licenses; [ gpl2 ];
+ maintainers = with maintainers; [ zaninime ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/tlf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/tlf/default.nix
new file mode 100644
index 000000000000..fd9ab82b321c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/tlf/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, autoconf, automake, pkgconfig, glib
+, perl, ncurses5, hamlib, xmlrpc_c }:
+
+stdenv.mkDerivation rec {
+ pname = "tlf";
+ version = "1.4.1";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "${pname}-${version}";
+ sha256 = "1xpgs4k27pjd9mianfknknp6mf34365bcp96wrv5xh4dhph573rj";
+ };
+
+ nativeBuildInputs = [ autoreconfHook autoconf automake pkgconfig perl ];
+ buildInputs = [ glib ncurses5 hamlib xmlrpc_c ];
+
+ configureFlags = [ "--enable-hamlib" "--enable-fldigi-xmlrpc" ];
+
+ postInstall = ''
+ mkdir -p $out/lib
+ ln -s ${ncurses5.out}/lib/libtinfo.so.5 $out/lib/libtinfo.so.5
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Advanced ham radio logging and contest program";
+ longDescription = ''
+ TLF is a curses based console mode general logging and contest program for
+ amateur radio.
+
+ It supports the CQWW, the WPX, the ARRL-DX, the ARRL-FD, the PACC and the
+ EU SPRINT shortwave contests (single operator) as well as a LOT MORE basic
+ contests, general QSO and DXpedition mode.
+ '';
+ homepage = "https://tlf.github.io/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ etu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/tqsl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/tqsl/default.nix
new file mode 100644
index 000000000000..fd5f5505a672
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/tqsl/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, makeWrapper, cmake, expat, openssl, zlib, db, curl, wxGTK }:
+
+stdenv.mkDerivation rec {
+ pname = "tqsl";
+ version = "2.5.1";
+
+ src = fetchurl {
+ url = "https://www.arrl.org/files/file/LoTW%20Instructions/${pname}-${version}.tar.gz";
+ sha256 = "00v4n8pvi5qi2psjnrw611w5gg5bdlaxbsny535fsci3smyygpc0";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [
+ cmake
+ expat
+ openssl
+ zlib
+ db
+ curl
+ wxGTK
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Software for using the ARRL Logbook of the World";
+ homepage = "https://www.arrl.org/tqsl-download";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.dpflug ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/uhd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/uhd/default.nix
new file mode 100644
index 000000000000..e7ddb5787fac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/uhd/default.nix
@@ -0,0 +1,160 @@
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, cmake
+, pkgconfig
+# See https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html for dependencies explanations
+, boost
+, enableLibuhd_C_api ? true
+# requires numpy
+, enableLibuhd_Python_api ? false
+, python3 ? null
+, enableExamples ? false
+, enableUtils ? false
+, enableLiberio ? false
+, liberio ? null
+, libusb1 ? null
+, enableDpdk ? false
+, dpdk ? null
+# Devices
+, enableOctoClock ? true
+, enableMpmd ? true
+, enableB100 ? true
+, enableB200 ? true
+, enableUsrp1 ? true
+, enableUsrp2 ? true
+, enableX300 ? true
+, enableN230 ? true
+, enableN300 ? true
+, enableN320 ? true
+, enableE300 ? true
+, enableE320 ? true
+}:
+
+let
+ onOffBool = b: if b then "ON" else "OFF";
+ inherit (stdenv.lib) optionals;
+in
+
+stdenv.mkDerivation rec {
+ pname = "uhd";
+ # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
+ # and xxx.yyy.zzz. Hrmpf... style keeps changing
+ version = "3.15.0.0";
+
+ src = fetchFromGitHub {
+ owner = "EttusResearch";
+ repo = "uhd";
+ rev = "v${version}";
+ sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf";
+ };
+ # Firmware images are downloaded (pre-built) from the respective release on Github
+ uhdImagesSrc = fetchurl {
+ url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
+ sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp";
+ };
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [
+ "-DENABLE_LIBUHD=ON"
+ "-DENABLE_USB=ON"
+ "-DENABLE_TESTS=ON" # This installs tests as well so we delete them via postPhases
+ "-DENABLE_EXAMPLES=${onOffBool enableExamples}"
+ "-DENABLE_UTILS=${onOffBool enableUtils}"
+ "-DENABLE_LIBUHD_C_API=${onOffBool enableLibuhd_C_api}"
+ "-DENABLE_LIBUHD_PYTHON_API=${onOffBool enableLibuhd_Python_api}"
+ "-DENABLE_LIBERIO=${onOffBool enableLiberio}"
+ "-DENABLE_DPDK=${onOffBool enableDpdk}"
+ # Devices
+ "-DENABLE_OCTOCLOCK=${onOffBool enableOctoClock}"
+ "-DENABLE_MPMD=${onOffBool enableMpmd}"
+ "-DENABLE_B100=${onOffBool enableB100}"
+ "-DENABLE_B200=${onOffBool enableB200}"
+ "-DENABLE_USRP1=${onOffBool enableUsrp1}"
+ "-DENABLE_USRP2=${onOffBool enableUsrp2}"
+ "-DENABLE_X300=${onOffBool enableX300}"
+ "-DENABLE_N230=${onOffBool enableN230}"
+ "-DENABLE_N300=${onOffBool enableN300}"
+ "-DENABLE_N320=${onOffBool enableN320}"
+ "-DENABLE_E300=${onOffBool enableE300}"
+ "-DENABLE_E320=${onOffBool enableE320}"
+ ]
+ # TODO: Check if this still needed
+ # ABI differences GCC 7.1
+ # /nix/store/wd6r25miqbk9ia53pp669gn4wrg9n9cj-gcc-7.3.0/include/c++/7.3.0/bits/vector.tcc:394:7: note: parameter passing for argument of type 'std::vector<uhd::range_t>::iterator {aka __gnu_cxx::__normal_iterator<uhd::range_t*, std::vector<uhd::range_t> >}' changed in GCC 7.1
+ ++ [ (stdenv.lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ]
+ ;
+
+ # Python + Mako are always required for the build itself but not necessary for runtime.
+ pythonEnv = python3.withPackages (ps: with ps; [ Mako ]
+ ++ optionals (enableLibuhd_Python_api) [ numpy setuptools ]
+ ++ optionals (enableUtils) [ requests six ]
+ );
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ ]
+ # If both enableLibuhd_Python_api and enableUtils are off, we don't need
+ # pythonEnv in buildInputs as it's a 'build' dependency and not a runtime
+ # dependency
+ ++ optionals (!enableLibuhd_Python_api && !enableUtils) [ pythonEnv ]
+ ;
+ buildInputs = [
+ boost
+ libusb1
+ ]
+ # However, if enableLibuhd_Python_api *or* enableUtils is on, we need
+ # pythonEnv for runtime as well. The utilities' runtime dependencies are
+ # handled at the environment
+ ++ optionals (enableLibuhd_Python_api || enableUtils) [ pythonEnv ]
+ ++ optionals (enableLiberio) [ liberio ]
+ ++ optionals (enableDpdk) [ dpdk ]
+ ;
+
+ doCheck = true;
+
+ # Build only the host software
+ preConfigure = "cd host";
+ # TODO: Check if this still needed, perhaps relevant:
+ # https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html#build_instructions_unix_arm
+ patches = if stdenv.isAarch32 then ./neon.patch else null;
+
+ postPhases = [ "installFirmware" "removeInstalledTests" ]
+ ++ optionals (enableUtils) [ "moveUdevRules" ]
+ ;
+
+ # UHD expects images in `$CMAKE_INSTALL_PREFIX/share/uhd/images`
+ installFirmware = ''
+ mkdir -p "$out/share/uhd/images"
+ tar --strip-components=1 -xvf "${uhdImagesSrc}" -C "$out/share/uhd/images"
+ '';
+
+ # -DENABLE_TESTS=ON installs the tests, we don't need them in the output
+ removeInstalledTests = ''
+ rm -r $out/lib/uhd/tests
+ '';
+
+ # Moves the udev rules to the standard location, needed only if utils are
+ # enabled
+ moveUdevRules = ''
+ mkdir -p $out/lib/udev/rules.d
+ mv $out/lib/uhd/utils/uhd-usrp.rules $out/lib/udev/rules.d/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "USRP Hardware Driver (for Software Defined Radio)";
+ longDescription = ''
+ The USRP Hardware Driver (UHD) software is the hardware driver for all
+ USRP (Universal Software Radio Peripheral) devices.
+
+ USRP devices are designed and sold by Ettus Research, LLC and its parent
+ company, National Instruments.
+ '';
+ homepage = "https://uhd.ettus.com/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ bjornfor fpletz tomberek ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/uhd/neon.patch b/infra/libkookie/nixpkgs/pkgs/applications/radio/uhd/neon.patch
new file mode 100644
index 000000000000..18ec59c1d64b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/uhd/neon.patch
@@ -0,0 +1,19 @@
+Description: When building for armhf, enable NEON
+ NEON is part of the armhf baseline, so this will always be enabled on
+ armhf.
+Author: Paul Tagliamonte <paultag@debian.org>
+Bug-Debian: https://bugs.debian.org/873608
+Origin: vendor
+Last-Update: 2017-08-29
+
+--- uhd-3.10.2.0.orig/host/lib/convert/CMakeLists.txt
++++ uhd-3.10.2.0/host/lib/convert/CMakeLists.txt
+@@ -67,6 +67,8 @@ IF(HAVE_ARM_NEON_H AND (${CMAKE_SIZEOF_V
+ ${CMAKE_CURRENT_SOURCE_DIR}/convert_with_neon.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/convert_neon.S
+ )
++
++ SET ( CMAKE_CXX_FLAGS "-mfpu=neon" )
+ ENDIF()
+
+ ########################################################################
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/unixcw/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/unixcw/default.nix
new file mode 100644
index 000000000000..fe31fd133e79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/unixcw/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, libpulseaudio, alsaLib , pkgconfig, qt5}:
+stdenv.mkDerivation rec {
+ pname = "unixcw";
+ version = "3.5.1";
+ src = fetchurl {
+ url = "mirror://sourceforge/unixcw/unixcw_${version}.orig.tar.gz";
+ sha256 ="5f3aacd8a26e16e6eff437c7ae1e9b389956fb137eeb3de24670ce05de479e7a";
+ };
+ patches = [
+ ./remove-use-of-dlopen.patch
+ ];
+ buildInputs = [libpulseaudio alsaLib pkgconfig qt5.qtbase];
+ CFLAGS ="-lasound -lpulse-simple";
+
+ meta = with stdenv.lib; {
+ description = "sound characters as Morse code on the soundcard or console speaker";
+ longDescription = ''
+ unixcw is a project providing libcw library and a set of programs
+ using the library: cw, cwgen, cwcp and xcwcp.
+ The programs are intended for people who want to learn receiving
+ and sending Morse code.
+ unixcw is developed and tested primarily on GNU/Linux system.
+
+ cw reads characters from an input file, or from standard input,
+ and sounds each valid character as Morse code on either the system sound card,
+ or the system console speaker.
+ After it sounds a character, cw echoes it to standard output.
+ The input stream can contain embedded command strings.
+ These change the parameters used when sounding the Morse code.
+ cw reports any errors in embedded commands
+ '';
+ homepage = "http://unixcw.sourceforge.net";
+ maintainers = [ maintainers.mafo ];
+ license = licenses.gpl2;
+ platforms=platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/unixcw/remove-use-of-dlopen.patch b/infra/libkookie/nixpkgs/pkgs/applications/radio/unixcw/remove-use-of-dlopen.patch
new file mode 100644
index 000000000000..0475c008ba22
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/unixcw/remove-use-of-dlopen.patch
@@ -0,0 +1,677 @@
+From e4b91b5a7943a3b54f555ff2e0029b83bd96b131 Mon Sep 17 00:00:00 2001
+From: MarcFontaine <MarcFontaine@users.noreply.github.com>
+Date: Sat, 9 Jun 2018 11:02:11 +0200
+Subject: [PATCH] remove use of dlopen
+
+---
+ src/libcw/libcw_alsa.c | 215 ++++++++++---------------------------------------
+ src/libcw/libcw_pa.c | 118 ++++-----------------------
+ 2 files changed, 56 insertions(+), 277 deletions(-)
+
+diff --git a/src/libcw/libcw_alsa.c b/src/libcw/libcw_alsa.c
+index a669c6e..17c306d 100644
+--- a/src/libcw/libcw_alsa.c
++++ b/src/libcw/libcw_alsa.c
+@@ -35,7 +35,6 @@
+
+
+
+-#include <dlfcn.h> /* dlopen() and related symbols */
+ #include <alsa/asoundlib.h>
+
+
+@@ -65,7 +64,6 @@ static const snd_pcm_format_t CW_ALSA_SAMPLE_FORMAT = SND_PCM_FORMAT_S16; /* "Si
+
+
+ static int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *params);
+-static int cw_alsa_dlsym_internal(void *handle);
+ static int cw_alsa_write_internal(cw_gen_t *gen);
+ static int cw_alsa_debug_evaluate_write_internal(cw_gen_t *gen, int rv);
+ static int cw_alsa_open_device_internal(cw_gen_t *gen);
+@@ -80,56 +78,6 @@ static int cw_alsa_print_params_internal(snd_pcm_hw_params_t *hw_params);
+
+
+
+-static struct {
+- void *handle;
+-
+- int (* snd_pcm_open)(snd_pcm_t **pcm, const char *name, snd_pcm_stream_t stream, int mode);
+- int (* snd_pcm_close)(snd_pcm_t *pcm);
+- int (* snd_pcm_prepare)(snd_pcm_t *pcm);
+- int (* snd_pcm_drop)(snd_pcm_t *pcm);
+- snd_pcm_sframes_t (* snd_pcm_writei)(snd_pcm_t *pcm, const void *buffer, snd_pcm_uframes_t size);
+-
+- const char *(* snd_strerror)(int errnum);
+-
+- int (* snd_pcm_hw_params_malloc)(snd_pcm_hw_params_t **ptr);
+- int (* snd_pcm_hw_params_any)(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
+- int (* snd_pcm_hw_params_set_format)(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_t val);
+- int (* snd_pcm_hw_params_set_rate_near)(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir);
+- int (* snd_pcm_hw_params_set_access)(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t _access);
+- int (* snd_pcm_hw_params_set_channels)(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val);
+- int (* snd_pcm_hw_params)(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
+- int (* snd_pcm_hw_params_get_periods)(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir);
+- int (* snd_pcm_hw_params_get_period_size)(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *frames, int *dir);
+- int (* snd_pcm_hw_params_get_period_size_min)(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *frames, int *dir);
+- int (* snd_pcm_hw_params_get_buffer_size)(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val);
+-} cw_alsa = {
+- .handle = NULL,
+-
+- .snd_pcm_open = NULL,
+- .snd_pcm_close = NULL,
+- .snd_pcm_prepare = NULL,
+- .snd_pcm_drop = NULL,
+- .snd_pcm_writei = NULL,
+-
+- .snd_strerror = NULL,
+-
+- .snd_pcm_hw_params_malloc = NULL,
+- .snd_pcm_hw_params_any = NULL,
+- .snd_pcm_hw_params_set_format = NULL,
+- .snd_pcm_hw_params_set_rate_near = NULL,
+- .snd_pcm_hw_params_set_access = NULL,
+- .snd_pcm_hw_params_set_channels = NULL,
+- .snd_pcm_hw_params = NULL,
+- .snd_pcm_hw_params_get_periods = NULL,
+- .snd_pcm_hw_params_get_period_size = NULL,
+- .snd_pcm_hw_params_get_period_size_min = NULL,
+- .snd_pcm_hw_params_get_buffer_size = NULL
+-};
+-
+-
+-
+-
+-
+
+ /**
+ \brief Check if it is possible to open ALSA output
+@@ -144,34 +92,19 @@ static struct {
+ */
+ bool cw_is_alsa_possible(const char *device)
+ {
+- const char *library_name = "libasound.so.2";
+- if (!cw_dlopen_internal(library_name, &(cw_alsa.handle))) {
+- cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't access ALSA library \"%s\"", library_name);
+- return false;
+- }
+-
+- int rv = cw_alsa_dlsym_internal(cw_alsa.handle);
+- if (rv < 0) {
+- cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: failed to resolve ALSA symbol #%d, can't correctly load ALSA library", rv);
+- dlclose(cw_alsa.handle);
+- return false;
+- }
+-
+- const char *dev = device ? device : CW_DEFAULT_ALSA_DEVICE;
++ int rv;
++ const char *dev = device ? device : CW_DEFAULT_ALSA_DEVICE;
+ snd_pcm_t *alsa_handle;
+- rv = cw_alsa.snd_pcm_open(&alsa_handle,
++ rv = snd_pcm_open(&alsa_handle,
+ dev, /* name */
+ SND_PCM_STREAM_PLAYBACK, /* stream (playback/capture) */
+ 0); /* mode, 0 | SND_PCM_NONBLOCK | SND_PCM_ASYNC */
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+ "cw_alsa: can't open ALSA device \"%s\"", dev);
+- dlclose(cw_alsa.handle);
+ return false;
+ } else {
+- cw_alsa.snd_pcm_close(alsa_handle);
++ snd_pcm_close(alsa_handle);
+ return true;
+ }
+ }
+@@ -204,7 +137,7 @@ int cw_alsa_write_internal(cw_gen_t *gen)
+ /* Send audio buffer to ALSA.
+ Size of correct and current data in the buffer is the same as
+ ALSA's period, so there should be no underruns */
+- int rv = cw_alsa.snd_pcm_writei(gen->alsa_data.handle, gen->buffer, gen->buffer_n_samples);
++ int rv = snd_pcm_writei(gen->alsa_data.handle, gen->buffer, gen->buffer_n_samples);
+ cw_alsa_debug_evaluate_write_internal(gen, rv);
+ /*
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+@@ -231,7 +164,7 @@ int cw_alsa_write_internal(cw_gen_t *gen)
+ */
+ int cw_alsa_open_device_internal(cw_gen_t *gen)
+ {
+- int rv = cw_alsa.snd_pcm_open(&gen->alsa_data.handle,
++ int rv = snd_pcm_open(&gen->alsa_data.handle,
+ gen->audio_device, /* name */
+ SND_PCM_STREAM_PLAYBACK, /* stream (playback/capture) */
+ 0); /* mode, 0 | SND_PCM_NONBLOCK | SND_PCM_ASYNC */
+@@ -251,7 +184,7 @@ int cw_alsa_open_device_internal(cw_gen_t *gen)
+ /* TODO: move this to cw_alsa_set_hw_params_internal(),
+ deallocate hw_params */
+ snd_pcm_hw_params_t *hw_params = NULL;
+- rv = cw_alsa.snd_pcm_hw_params_malloc(&hw_params);
++ rv = snd_pcm_hw_params_malloc(&hw_params);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+ "cw_alsa: can't allocate memory for ALSA hw params");
+@@ -265,7 +198,7 @@ int cw_alsa_open_device_internal(cw_gen_t *gen)
+ return CW_FAILURE;
+ }
+
+- rv = cw_alsa.snd_pcm_prepare(gen->alsa_data.handle);
++ rv = snd_pcm_prepare(gen->alsa_data.handle);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+ "cw_alsa: can't prepare ALSA handler");
+@@ -275,7 +208,7 @@ int cw_alsa_open_device_internal(cw_gen_t *gen)
+ /* Get size for data buffer */
+ snd_pcm_uframes_t frames; /* period size in frames */
+ int dir = 1;
+- rv = cw_alsa.snd_pcm_hw_params_get_period_size_min(hw_params, &frames, &dir);
++ rv = snd_pcm_hw_params_get_period_size_min(hw_params, &frames, &dir);
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+ "cw_alsa: rv = %d, ALSA buffer size would be %u frames", rv, (unsigned int) frames);
+
+@@ -305,14 +238,11 @@ int cw_alsa_open_device_internal(cw_gen_t *gen)
+ void cw_alsa_close_device_internal(cw_gen_t *gen)
+ {
+ /* "Stop a PCM dropping pending frames. " */
+- cw_alsa.snd_pcm_drop(gen->alsa_data.handle);
+- cw_alsa.snd_pcm_close(gen->alsa_data.handle);
++ snd_pcm_drop(gen->alsa_data.handle);
++ snd_pcm_close(gen->alsa_data.handle);
+
+ gen->audio_device_is_open = false;
+
+- if (cw_alsa.handle) {
+- dlclose(cw_alsa.handle);
+- }
+
+ #if CW_DEV_RAW_SINK
+ if (gen->dev_raw_sink != -1) {
+@@ -332,11 +262,11 @@ int cw_alsa_debug_evaluate_write_internal(cw_gen_t *gen, int rv)
+ if (rv == -EPIPE) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_WARNING,
+ "cw_alsa: underrun");
+- cw_alsa.snd_pcm_prepare(gen->alsa_data.handle);
++ snd_pcm_prepare(gen->alsa_data.handle);
+ } else if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_WARNING,
+- "cw_alsa: writei: %s", cw_alsa.snd_strerror(rv));
+- cw_alsa.snd_pcm_prepare(gen->alsa_data.handle);
++ "cw_alsa: writei: %s", snd_strerror(rv));
++ snd_pcm_prepare(gen->alsa_data.handle);
+ } else if (rv != gen->buffer_n_samples) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_WARNING,
+ "cw_alsa: short write, %d != %d", rv, gen->buffer_n_samples);
+@@ -363,19 +293,19 @@ int cw_alsa_debug_evaluate_write_internal(cw_gen_t *gen, int rv)
+ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params)
+ {
+ /* Get current hw configuration. */
+- int rv = cw_alsa.snd_pcm_hw_params_any(gen->alsa_data.handle, hw_params);
++ int rv = snd_pcm_hw_params_any(gen->alsa_data.handle, hw_params);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: get current hw params: %s", cw_alsa.snd_strerror(rv));
++ "cw_alsa: get current hw params: %s", snd_strerror(rv));
+ return CW_FAILURE;
+ }
+
+
+ /* Set the sample format */
+- rv = cw_alsa.snd_pcm_hw_params_set_format(gen->alsa_data.handle, hw_params, CW_ALSA_SAMPLE_FORMAT);
++ rv = snd_pcm_hw_params_set_format(gen->alsa_data.handle, hw_params, CW_ALSA_SAMPLE_FORMAT);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't set sample format: %s", cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't set sample format: %s", snd_strerror(rv));
+ return CW_FAILURE;
+ }
+
+@@ -387,7 +317,7 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+ bool success = false;
+ for (int i = 0; cw_supported_sample_rates[i]; i++) {
+ rate = cw_supported_sample_rates[i];
+- int rv = cw_alsa.snd_pcm_hw_params_set_rate_near(gen->alsa_data.handle, hw_params, &rate, &dir);
++ int rv = snd_pcm_hw_params_set_rate_near(gen->alsa_data.handle, hw_params, &rate, &dir);
+ if (!rv) {
+ if (rate != cw_supported_sample_rates[i]) {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_WARNING, "cw_alsa: imprecise sample rate:");
+@@ -402,7 +332,7 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+
+ if (!success) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't get sample rate: %s", cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't get sample rate: %s", snd_strerror(rv));
+ return CW_FAILURE;
+ } else {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+@@ -410,18 +340,18 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+ }
+
+ /* Set PCM access type */
+- rv = cw_alsa.snd_pcm_hw_params_set_access(gen->alsa_data.handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED);
++ rv = snd_pcm_hw_params_set_access(gen->alsa_data.handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't set access type: %s", cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't set access type: %s", snd_strerror(rv));
+ return CW_FAILURE;
+ }
+
+ /* Set number of channels */
+- rv = cw_alsa.snd_pcm_hw_params_set_channels(gen->alsa_data.handle, hw_params, CW_AUDIO_CHANNELS);
++ rv = snd_pcm_hw_params_set_channels(gen->alsa_data.handle, hw_params, CW_AUDIO_CHANNELS);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't set number of channels: %s", cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't set number of channels: %s", snd_strerror(rv));
+ return CW_FAILURE;
+ }
+
+@@ -496,7 +426,7 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+ snd_pcm_uframes_t accepted = 0; /* buffer size in frames */
+ dir = 0;
+ for (snd_pcm_uframes_t val = 0; val < 10000; val++) {
+- rv = cw_alsa.snd_pcm_hw_params_test_buffer_size(gen->alsa_data.handle, hw_params, val);
++ rv = snd_pcm_hw_params_test_buffer_size(gen->alsa_data.handle, hw_params, val);
+ if (rv == 0) {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+ "cw_alsa: accepted buffer size: %u", (unsigned int) accepted);
+@@ -507,10 +437,10 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+ }
+
+ if (accepted > 0) {
+- rv = cw_alsa.snd_pcm_hw_params_set_buffer_size(gen->alsa_data.handle, hw_params, accepted);
++ rv = snd_pcm_hw_params_set_buffer_size(gen->alsa_data.handle, hw_params, accepted);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't set accepted buffer size %u: %s", (unsigned int) accepted, cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't set accepted buffer size %u: %s", (unsigned int) accepted, snd_strerror(rv));
+ }
+ } else {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+@@ -526,7 +456,7 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+ /* this limit should be enough, "accepted" on my machine is 8 */
+ const unsigned int n_periods_max = 30;
+ for (unsigned int val = 1; val < n_periods_max; val++) {
+- rv = cw_alsa.snd_pcm_hw_params_test_periods(gen->alsa_data.handle, hw_params, val, dir);
++ rv = snd_pcm_hw_params_test_periods(gen->alsa_data.handle, hw_params, val, dir);
+ if (rv == 0) {
+ accepted = val;
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+@@ -534,10 +464,10 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+ }
+ }
+ if (accepted > 0) {
+- rv = cw_alsa.snd_pcm_hw_params_set_periods(gen->alsa_data.handle, hw_params, accepted, dir);
++ rv = snd_pcm_hw_params_set_periods(gen->alsa_data.handle, hw_params, accepted, dir);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't set accepted number of periods %d: %s", accepted, cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't set accepted number of periods %d: %s", accepted, snd_strerror(rv));
+ }
+ } else {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+@@ -549,7 +479,7 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+ /* Test period size */
+ dir = 0;
+ for (snd_pcm_uframes_t val = 0; val < 100000; val++) {
+- rv = cw_alsa.snd_pcm_hw_params_test_period_size(gen->alsa_data.handle, hw_params, val, dir);
++ rv = snd_pcm_hw_params_test_period_size(gen->alsa_data.handle, hw_params, val, dir);
+ if (rv == 0) {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+ "cw_alsa: accepted period size: %lu", val);
+@@ -562,7 +492,7 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+ /* Test buffer time */
+ dir = 0;
+ for (unsigned int val = 0; val < 100000; val++) {
+- rv = cw_alsa.snd_pcm_hw_params_test_buffer_time(gen->alsa_data.handle, hw_params, val, dir);
++ rv = snd_pcm_hw_params_test_buffer_time(gen->alsa_data.handle, hw_params, val, dir);
+ if (rv == 0) {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+ "cw_alsa: accepted buffer time: %d", val);
+@@ -573,10 +503,10 @@ int cw_alsa_set_hw_params_internal(cw_gen_t *gen, snd_pcm_hw_params_t *hw_params
+ #endif /* #if CW_ALSA_HW_BUFFER_CONFIG */
+
+ /* Save hw parameters to device */
+- rv = cw_alsa.snd_pcm_hw_params(gen->alsa_data.handle, hw_params);
++ rv = snd_pcm_hw_params(gen->alsa_data.handle, hw_params);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't save hw parameters: %s", cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't save hw parameters: %s", snd_strerror(rv));
+ return CW_FAILURE;
+ } else {
+ return CW_SUCCESS;
+@@ -600,30 +530,30 @@ int cw_alsa_print_params_internal(snd_pcm_hw_params_t *hw_params)
+ unsigned int val = 0;
+ int dir = 0;
+
+- int rv = cw_alsa.snd_pcm_hw_params_get_periods(hw_params, &val, &dir);
++ int rv = snd_pcm_hw_params_get_periods(hw_params, &val, &dir);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't get 'periods': %s", cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't get 'periods': %s", snd_strerror(rv));
+ } else {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+ "cw_alsa: 'periods' = %u", val);
+ }
+
+ snd_pcm_uframes_t period_size = 0;
+- rv = cw_alsa.snd_pcm_hw_params_get_period_size(hw_params, &period_size, &dir);
++ rv = snd_pcm_hw_params_get_period_size(hw_params, &period_size, &dir);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't get 'period size': %s", cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't get 'period size': %s", snd_strerror(rv));
+ } else {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+ "cw_alsa: 'period size' = %u", (unsigned int) period_size);
+ }
+
+ snd_pcm_uframes_t buffer_size;
+- rv = cw_alsa.snd_pcm_hw_params_get_buffer_size(hw_params, &buffer_size);
++ rv = snd_pcm_hw_params_get_buffer_size(hw_params, &buffer_size);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "cw_alsa: can't get buffer size: %s", cw_alsa.snd_strerror(rv));
++ "cw_alsa: can't get buffer size: %s", snd_strerror(rv));
+ } else {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO,
+ "cw_alsa: 'buffer size' = %u", (unsigned int) buffer_size);
+@@ -642,70 +572,9 @@ int cw_alsa_print_params_internal(snd_pcm_hw_params_t *hw_params)
+
+
+
+-/**
+- \brief Resolve/get symbols from ALSA library
+-
+- Function resolves/gets addresses of few ALSA functions used by
+- libcw and stores them in cw_alsa global variable.
+-
+- On failure the function returns negative value, different for every
+- symbol that the funciton failed to resolve. Function stops and returns
+- on first failure.
+-
+- \param handle - handle to open ALSA library
+-
+- \return 0 on success
+- \return negative value on failure
+-*/
+-static int cw_alsa_dlsym_internal(void *handle)
+-{
+- *(void **) &(cw_alsa.snd_pcm_open) = dlsym(handle, "snd_pcm_open");
+- if (!cw_alsa.snd_pcm_open) return -1;
+- *(void **) &(cw_alsa.snd_pcm_close) = dlsym(handle, "snd_pcm_close");
+- if (!cw_alsa.snd_pcm_close) return -2;
+- *(void **) &(cw_alsa.snd_pcm_prepare) = dlsym(handle, "snd_pcm_prepare");
+- if (!cw_alsa.snd_pcm_prepare) return -3;
+- *(void **) &(cw_alsa.snd_pcm_drop) = dlsym(handle, "snd_pcm_drop");
+- if (!cw_alsa.snd_pcm_drop) return -4;
+- *(void **) &(cw_alsa.snd_pcm_writei) = dlsym(handle, "snd_pcm_writei");
+- if (!cw_alsa.snd_pcm_writei) return -5;
+-
+- *(void **) &(cw_alsa.snd_strerror) = dlsym(handle, "snd_strerror");
+- if (!cw_alsa.snd_strerror) return -10;
+-
+- *(void **) &(cw_alsa.snd_pcm_hw_params_malloc) = dlsym(handle, "snd_pcm_hw_params_malloc");
+- if (!cw_alsa.snd_pcm_hw_params_malloc) return -20;
+- *(void **) &(cw_alsa.snd_pcm_hw_params_any) = dlsym(handle, "snd_pcm_hw_params_any");
+- if (!cw_alsa.snd_pcm_hw_params_any) return -21;
+- *(void **) &(cw_alsa.snd_pcm_hw_params_set_format) = dlsym(handle, "snd_pcm_hw_params_set_format");
+- if (!cw_alsa.snd_pcm_hw_params_set_format) return -22;
+- *(void **) &(cw_alsa.snd_pcm_hw_params_set_rate_near) = dlsym(handle, "snd_pcm_hw_params_set_rate_near");
+- if (!cw_alsa.snd_pcm_hw_params_set_rate_near) return -23;
+- *(void **) &(cw_alsa.snd_pcm_hw_params_set_access) = dlsym(handle, "snd_pcm_hw_params_set_access");
+- if (!cw_alsa.snd_pcm_hw_params_set_access) return -24;
+- *(void **) &(cw_alsa.snd_pcm_hw_params_set_channels) = dlsym(handle, "snd_pcm_hw_params_set_channels");
+- if (!cw_alsa.snd_pcm_hw_params_set_channels) return -25;
+- *(void **) &(cw_alsa.snd_pcm_hw_params) = dlsym(handle, "snd_pcm_hw_params");
+- if (!cw_alsa.snd_pcm_hw_params) return -26;
+- *(void **) &(cw_alsa.snd_pcm_hw_params_get_periods) = dlsym(handle, "snd_pcm_hw_params_get_periods");
+- if (!cw_alsa.snd_pcm_hw_params_get_periods) return -27;
+- *(void **) &(cw_alsa.snd_pcm_hw_params_get_period_size) = dlsym(handle, "snd_pcm_hw_params_get_period_size");
+- if (!cw_alsa.snd_pcm_hw_params_get_period_size) return -28;
+- *(void **) &(cw_alsa.snd_pcm_hw_params_get_period_size_min) = dlsym(handle, "snd_pcm_hw_params_get_period_size_min");
+- if (!cw_alsa.snd_pcm_hw_params_get_period_size_min) return -29;
+- *(void **) &(cw_alsa.snd_pcm_hw_params_get_buffer_size) = dlsym(handle, "snd_pcm_hw_params_get_buffer_size");
+- if (!cw_alsa.snd_pcm_hw_params_get_buffer_size) return -30;
+-
+- return 0;
+-}
+-
+-
+-
+-
+-
+ void cw_alsa_drop(cw_gen_t *gen)
+ {
+- cw_alsa.snd_pcm_drop(gen->alsa_data.handle);
++ snd_pcm_drop(gen->alsa_data.handle);
+
+ return;
+ }
+@@ -721,7 +590,7 @@ void cw_alsa_drop(cw_gen_t *gen)
+
+
+ #include <stdbool.h>
+-#include "libcw_alsa.h"
++#include "libh"
+
+
+
+diff --git a/src/libcw/libcw_pa.c b/src/libcw/libcw_pa.c
+index 8269e9d..e190200 100644
+--- a/src/libcw/libcw_pa.c
++++ b/src/libcw/libcw_pa.c
+@@ -39,7 +39,6 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <stdbool.h>
+-#include <dlfcn.h> /* dlopen() and related symbols */
+ #include <string.h>
+ #include <assert.h>
+ #include <sys/types.h>
+@@ -63,39 +62,12 @@ extern cw_debug_t cw_debug_object_dev;
+
+
+ static pa_simple *cw_pa_simple_new_internal(pa_sample_spec *ss, pa_buffer_attr *ba, const char *device, const char *stream_name, int *error);
+-static int cw_pa_dlsym_internal(void *handle);
+ static int cw_pa_open_device_internal(cw_gen_t *gen);
+ static void cw_pa_close_device_internal(cw_gen_t *gen);
+ static int cw_pa_write_internal(cw_gen_t *gen);
+
+
+
+-static struct {
+- void *handle;
+-
+- pa_simple *(* pa_simple_new)(const char *server, const char *name, pa_stream_direction_t dir, const char *dev, const char *stream_name, const pa_sample_spec *ss, const pa_channel_map *map, const pa_buffer_attr *attr, int *error);
+- void (* pa_simple_free)(pa_simple *s);
+- int (* pa_simple_write)(pa_simple *s, const void *data, size_t bytes, int *error);
+- pa_usec_t (* pa_simple_get_latency)(pa_simple *s, int *error);
+- int (* pa_simple_drain)(pa_simple *s, int *error);
+-
+- size_t (* pa_usec_to_bytes)(pa_usec_t t, const pa_sample_spec *spec);
+- char *(* pa_strerror)(int error);
+-} cw_pa = {
+- .handle = NULL,
+-
+- .pa_simple_new = NULL,
+- .pa_simple_free = NULL,
+- .pa_simple_write = NULL,
+- .pa_simple_get_latency = NULL,
+- .pa_simple_drain = NULL,
+-
+- .pa_usec_to_bytes = NULL,
+- .pa_strerror = NULL
+-};
+-
+-
+-
+
+ static const pa_sample_format_t CW_PA_SAMPLE_FORMAT = PA_SAMPLE_S16LE; /* Signed 16 bit, Little Endian */
+ static const int CW_PA_BUFFER_N_SAMPLES = 1024;
+@@ -117,21 +89,6 @@ static const int CW_PA_BUFFER_N_SAMPLES = 1024;
+ */
+ bool cw_is_pa_possible(const char *device)
+ {
+- const char *library_name = "libpulse-simple.so";
+- if (!cw_dlopen_internal(library_name, &(cw_pa.handle))) {
+- cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "libcw_pa: can't access PulseAudio library \"%s\"", library_name);
+- return false;
+- }
+-
+- int rv = cw_pa_dlsym_internal(cw_pa.handle);
+- if (rv < 0) {
+- cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "libcw_pa: failed to resolve PulseAudio symbol #%d, can't correctly load PulseAudio library", rv);
+- dlclose(cw_pa.handle);
+- return false;
+- }
+-
+ const char *dev = (char *) NULL;
+ if (device && strcmp(device, CW_DEFAULT_PA_DEVICE)) {
+ dev = device;
+@@ -145,13 +102,10 @@ bool cw_is_pa_possible(const char *device)
+
+ if (!s) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "libcw_pa: can't connect to PulseAudio server: %s", cw_pa.pa_strerror(error));
+- if (cw_pa.handle) {
+- dlclose(cw_pa.handle);
+- }
++ "libcw_pa: can't connect to PulseAudio server: %s", pa_strerror(error));
+ return false;
+ } else {
+- cw_pa.pa_simple_free(s);
++ pa_simple_free(s);
+ s = NULL;
+ return true;
+ }
+@@ -186,10 +140,10 @@ int cw_pa_write_internal(cw_gen_t *gen)
+
+ int error = 0;
+ size_t n_bytes = sizeof (gen->buffer[0]) * gen->buffer_n_samples;
+- int rv = cw_pa.pa_simple_write(gen->pa_data.s, gen->buffer, n_bytes, &error);
++ int rv = pa_simple_write(gen->pa_data.s, gen->buffer, n_bytes, &error);
+ if (rv < 0) {
+ cw_debug_msg ((&cw_debug_object), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "libcw_pa: pa_simple_write() failed: %s", cw_pa.pa_strerror(error));
++ "libcw_pa: pa_simple_write() failed: %s", pa_strerror(error));
+ } else {
+ //cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_INFO, "libcw_pa: written %d samples with PulseAudio", gen->buffer_n_samples);
+ }
+@@ -237,13 +191,13 @@ pa_simple *cw_pa_simple_new_internal(pa_sample_spec *ss, pa_buffer_attr *ba, con
+ }
+
+ // http://www.mail-archive.com/pulseaudio-tickets@mail.0pointer.de/msg03295.html
+- ba->tlength = cw_pa.pa_usec_to_bytes(50*1000, ss);
+- ba->minreq = cw_pa.pa_usec_to_bytes(0, ss);
+- ba->maxlength = cw_pa.pa_usec_to_bytes(50*1000, ss);
++ ba->tlength = pa_usec_to_bytes(50*1000, ss);
++ ba->minreq = pa_usec_to_bytes(0, ss);
++ ba->maxlength = pa_usec_to_bytes(50*1000, ss);
+ /* ba->prebuf = ; */ /* ? */
+ /* ba->fragsize = sizeof(uint32_t) -1; */ /* not relevant to playback */
+
+- pa_simple *s = cw_pa.pa_simple_new(NULL, /* server name (NULL for default) */
++ pa_simple *s = pa_simple_new(NULL, /* server name (NULL for default) */
+ "libcw", /* descriptive name of client (application name etc.) */
+ PA_STREAM_PLAYBACK, /* stream direction */
+ dev, /* device/sink name (NULL for default) */
+@@ -258,47 +212,6 @@ pa_simple *cw_pa_simple_new_internal(pa_sample_spec *ss, pa_buffer_attr *ba, con
+
+
+
+-
+-
+-/**
+- \brief Resolve/get symbols from PulseAudio library
+-
+- Function resolves/gets addresses of few PulseAudio functions used by
+- libcw and stores them in cw_pa global variable.
+-
+- On failure the function returns negative value, different for every
+- symbol that the funciton failed to resolve. Function stops and returns
+- on first failure.
+-
+- \param handle - handle to open PulseAudio library
+-
+- \return 0 on success
+- \return negative value on failure
+-*/
+-int cw_pa_dlsym_internal(void *handle)
+-{
+- *(void **) &(cw_pa.pa_simple_new) = dlsym(handle, "pa_simple_new");
+- if (!cw_pa.pa_simple_new) return -1;
+- *(void **) &(cw_pa.pa_simple_free) = dlsym(handle, "pa_simple_free");
+- if (!cw_pa.pa_simple_free) return -2;
+- *(void **) &(cw_pa.pa_simple_write) = dlsym(handle, "pa_simple_write");
+- if (!cw_pa.pa_simple_write) return -3;
+- *(void **) &(cw_pa.pa_strerror) = dlsym(handle, "pa_strerror");
+- if (!cw_pa.pa_strerror) return -4;
+- *(void **) &(cw_pa.pa_simple_get_latency) = dlsym(handle, "pa_simple_get_latency");
+- if (!cw_pa.pa_simple_get_latency) return -5;
+- *(void **) &(cw_pa.pa_simple_drain) = dlsym(handle, "pa_simple_drain");
+- if (!cw_pa.pa_simple_drain) return -6;
+- *(void **) &(cw_pa.pa_usec_to_bytes) = dlsym(handle, "pa_usec_to_bytes");
+- if (!cw_pa.pa_usec_to_bytes) return -7;
+-
+- return 0;
+-}
+-
+-
+-
+-
+-
+ /**
+ \brief Open PulseAudio output, associate it with given generator
+
+@@ -325,16 +238,16 @@ int cw_pa_open_device_internal(cw_gen_t *gen)
+
+ if (!gen->pa_data.s) {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "libcw_pa: can't connect to PulseAudio server: %s", cw_pa.pa_strerror(error));
++ "libcw_pa: can't connect to PulseAudio server: %s", pa_strerror(error));
+ return false;
+ }
+
+ gen->buffer_n_samples = CW_PA_BUFFER_N_SAMPLES;
+ gen->sample_rate = gen->pa_data.ss.rate;
+
+- if ((gen->pa_data.latency_usecs = cw_pa.pa_simple_get_latency(gen->pa_data.s, &error)) == (pa_usec_t) -1) {
++ if ((gen->pa_data.latency_usecs = pa_simple_get_latency(gen->pa_data.s, &error)) == (pa_usec_t) -1) {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "libcw_pa: pa_simple_get_latency() failed: %s", cw_pa.pa_strerror(error));
++ "libcw_pa: pa_simple_get_latency() failed: %s", pa_strerror(error));
+ }
+
+ #if CW_DEV_RAW_SINK
+@@ -357,20 +270,17 @@ void cw_pa_close_device_internal(cw_gen_t *gen)
+ if (gen->pa_data.s) {
+ /* Make sure that every single sample was played */
+ int error;
+- if (cw_pa.pa_simple_drain(gen->pa_data.s, &error) < 0) {
++ if (pa_simple_drain(gen->pa_data.s, &error) < 0) {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_ERROR,
+- "libcw_pa: pa_simple_drain() failed: %s", cw_pa.pa_strerror(error));
++ "libcw_pa: pa_simple_drain() failed: %s", pa_strerror(error));
+ }
+- cw_pa.pa_simple_free(gen->pa_data.s);
++ pa_simple_free(gen->pa_data.s);
+ gen->pa_data.s = NULL;
+ } else {
+ cw_debug_msg ((&cw_debug_object_dev), CW_DEBUG_SOUND_SYSTEM, CW_DEBUG_WARNING,
+ "libcw_pa: called the function for NULL PA sink");
+ }
+
+- if (cw_pa.handle) {
+- dlclose(cw_pa.handle);
+- }
+
+ #if CW_DEV_RAW_SINK
+ if (gen->dev_raw_sink != -1) {
+--
+2.16.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/urh/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/urh/default.nix
new file mode 100644
index 000000000000..5411571113d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/urh/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub, python3Packages
+, hackrf, rtl-sdr, airspy, limesuite, libiio
+, qt5
+, USRPSupport ? false, uhd }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "urh";
+ version = "2.9.0";
+
+ src = fetchFromGitHub {
+ owner = "jopohl";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1pcyj1vzv51j8rgi0hh9chw3vfkfi03bg1rg7gs4nk95ffmwx4pd";
+ };
+
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+ buildInputs = [ hackrf rtl-sdr airspy limesuite libiio ]
+ ++ lib.optional USRPSupport uhd;
+
+ propagatedBuildInputs = with python3Packages; [
+ pyqt5 numpy psutil cython pyzmq pyaudio setuptools
+ ];
+
+ postFixup = ''
+ wrapQtApp $out/bin/urh
+ '';
+
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = "https://github.com/jopohl/urh";
+ description = "Universal Radio Hacker: investigate wireless protocols like a boss";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fpletz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/welle-io/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/welle-io/default.nix
new file mode 100644
index 000000000000..77969c5ca3f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/welle-io/default.nix
@@ -0,0 +1,51 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
+, qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects
+, faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123 }:
+let
+
+ version = "2.2";
+
+in mkDerivation {
+
+ pname = "welle-io";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "AlbrechtL";
+ repo = "welle.io";
+ rev = "v${version}";
+ sha256 = "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ faad2
+ fftwSinglePrec
+ lame
+ libusb-compat-0_1
+ mpg123
+ qtbase
+ qtcharts
+ qtmultimedia
+ qtquickcontrols
+ qtquickcontrols2
+ qtgraphicaleffects
+ rtl-sdr
+ soapysdr-with-plugins
+ ];
+
+ cmakeFlags = [
+ "-DRTLSDR=true" "-DSOAPYSDR=true"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "A DAB/DAB+ Software Radio";
+ homepage = "https://www.welle.io/";
+ maintainers = with maintainers; [ ck3d markuskowa ];
+ license = licenses.gpl2;
+ platforms = with platforms; [ "x86_64-linux" "i686-linux" ] ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/wsjtx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/wsjtx/default.nix
new file mode 100644
index 000000000000..b11b6b474c64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/wsjtx/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, asciidoc, asciidoctor, autoconf, automake, cmake,
+ docbook_xsl, fftw, fftwFloat, gfortran, libtool, libusb1, qtbase,
+ qtmultimedia, qtserialport, qttools, texinfo, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "wsjtx";
+ version = "2.2.2";
+
+ # This is a "superbuild" tarball containing both wsjtx and a hamlib fork
+ src = fetchurl {
+ url = "http://physics.princeton.edu/pulsar/k1jt/wsjtx-${version}.tgz";
+ sha256 = "17agyrhclqyahgdwba8vi9sl7vq03sm00jlyrmjgv34a4czidg0w";
+ };
+
+ # Hamlib builds with autotools, wsjtx builds with cmake
+ # Omitting pkgconfig because it causes issues locating the built hamlib
+ nativeBuildInputs = [
+ asciidoc asciidoctor autoconf automake cmake docbook_xsl gfortran libtool
+ qttools texinfo wrapQtAppsHook
+ ];
+ buildInputs = [ fftw fftwFloat libusb1 qtbase qtmultimedia qtserialport ];
+
+ # Remove Git dependency from superbuild since sources are included
+ patches = [ ./super.patch ];
+
+ meta = with stdenv.lib; {
+ description = "Weak-signal digital communication modes for amateur radio";
+ longDescription = ''
+ WSJT-X implements communication protocols or "modes" called FT4, FT8, JT4,
+ JT9, JT65, QRA64, ISCAT, MSK144, and WSPR, as well as one called Echo for
+ detecting and measuring your own radio signals reflected from the Moon.
+ These modes were all designed for making reliable, confirmed ham radio
+ contacts under extreme weak-signal conditions.
+ '';
+ homepage = "https://physics.princeton.edu/pulsar/k1jt/wsjtx.html";
+ # Older licenses are for the statically-linked hamlib
+ license = with licenses; [ gpl3Plus gpl2Plus lgpl21Plus ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ lasandell ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/wsjtx/super.patch b/infra/libkookie/nixpkgs/pkgs/applications/radio/wsjtx/super.patch
new file mode 100644
index 000000000000..2d72fcddf0dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/wsjtx/super.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 84fa38a..87e31bb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -24,7 +24,6 @@ source tarball." )
+ #
+ # Find_library (USB_LIBRARY NAMES libusb.a usb)
+ Find_program (PATCH_EXECUTABLE patch REQUIRED)
+-Find_package (Git REQUIRED)
+
+ #
+ # extra C flags to minimize hamlib excutable sizes
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/radio/xlog/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/radio/xlog/default.nix
new file mode 100644
index 000000000000..e92c216466fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/radio/xlog/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, glib, gtk2, pkgconfig, hamlib }:
+stdenv.mkDerivation rec {
+ pname = "xlog";
+ version = "2.0.19";
+
+ src = fetchurl {
+ url = "https://download.savannah.gnu.org/releases/xlog/${pname}-${version}.tar.gz";
+ sha256 = "0y38gkcm4mgv6wn31pjq6d5bm22m63rpwa55qjmrlywrmw76rppy";
+ };
+
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
+
+ buildInputs = [ glib pkgconfig gtk2 hamlib ];
+
+ meta = with stdenv.lib; {
+ description = "An amateur radio logging program";
+ longDescription =
+ '' Xlog is an amateur radio logging program.
+ It supports cabrillo, ADIF, trlog (format also used by tlf),
+ and EDI (ARRL VHF/UHF contest format) and can import twlog, editest and OH1AA logbook files.
+ Xlog is able to do DXCC lookups and will display country information, CQ and ITU zone,
+ location in latitude and longitude and distance and heading in kilometers or miles,
+ both for short and long path.
+ '';
+ homepage = "https://www.nongnu.org/xlog";
+ maintainers = [ maintainers.mafo ];
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/astrolabe-generator/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
new file mode 100644
index 000000000000..4a6bdd9d1e9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, jre, makeWrapper, unzip }:
+
+stdenv.mkDerivation rec {
+ pname = "astrolabe-generator";
+ version = "3.3";
+
+ src = fetchurl {
+ url = "https://github.com/wymarc/astrolabe-generator/releases/download/v${version}/AstrolabeGenerator-${version}.zip";
+ sha256 = "141gfmrqa1mf2qas87qig4phym9fg9gbrcfl2idzd5gi91824dn9";
+ };
+
+ buildInputs = [ jre ];
+ nativeBuildInputs = [ makeWrapper unzip ];
+ sourceRoot = ".";
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/java}
+ cp AstrolabeGenerator-${version}.jar $out/share/java
+
+ makeWrapper ${jre}/bin/java $out/bin/AstrolabeGenerator \
+ --add-flags "-jar $out/share/java/AstrolabeGenerator-${version}.jar"
+ '';
+
+ meta = with stdenv.lib;{
+ homepage = "https://www.astrolabeproject.com";
+ description = "A Java-based tool for generating EPS files for constructing astrolabes and related tools";
+ license = licenses.gpl3;
+ maintainers = [ ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
new file mode 100644
index 000000000000..340641917e4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl, freeglut, gtk2, gtkglext, libjpeg_turbo, libtheora, libXmu
+, lua, libGLU, libGL, pkgconfig, perl, autoreconfHook
+}:
+
+let
+ name = "celestia-1.6.1";
+
+ gcc46Patch = fetchurl {
+ url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-gcc46.patch?h=packages/celestia";
+ sha256 = "0my7dpyh5wpz5df7bjhwb4db3ci2rn8ib1nkjv15fbp1g76bxfaz";
+ name = "celestia-1.6.1-gcc46.patch";
+ };
+
+ libpng15Patch = fetchurl {
+ url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-libpng15.patch?h=packages/celestia";
+ sha256 = "1jrmbwmvs9b6k2b2g4104q22v4vqi0wfpz6hmfhniaq34626jcms";
+ name = "celestia-1.6.1-libpng15.patch";
+ };
+
+ libpng16Patch = fetchurl {
+ url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-libpng16.patch?h=packages/celestia";
+ sha256 = "1q85prw4ci6d50lri8w1jm19pghxw96qizf5dl4g0j86rlhlkc8f";
+ name = "celestia-1.6.1-libpng16.patch";
+ };
+
+ linkingPatch = fetchurl {
+ url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-linking.patch?h=packages/celestia";
+ sha256 = "1m8xyq26nm352828bp12c3b8f6m9bys9fwfxbfzqppllk7il2f24";
+ name = "celestia-1.6.1-linking.patch";
+ };
+
+ gcc47Patch = fetchurl {
+ url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/gcc-4.7-fixes.diff?h=packages/celestia";
+ sha256 = "1na26c7pv9qfv8a981m1zvglhv05r3h8513xqjra91qhhzx8wr8n";
+ name = "gcc-4.7-fixes.diff";
+ };
+in
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/celestia/${name}.tar.gz";
+ sha256 = "1i1lvhbgllsh2z8i6jj4mvrjak4a7r69psvk7syw03s4p7670mfk";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ freeglut gtk2 gtkglext libjpeg_turbo libtheora libXmu libGLU libGL lua
+ perl autoreconfHook ];
+
+ patchPhase = ''
+ patch -Np0 -i "${gcc46Patch}"
+ patch -Np0 -i "${libpng15Patch}"
+ patch -Np2 -i "${libpng16Patch}"
+ patch -Np1 -i "${linkingPatch}"
+ patch -Np1 -i "${gcc47Patch}"
+ '';
+
+ configureFlags = [
+ "--with-gtk"
+ "--with-lua=${lua}"
+ ];
+
+ installPhase = ''make MKDIR_P="mkdir -p" install'';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Free space simulation";
+ homepage = "https://celestia.space/";
+ license = stdenv.lib.licenses.gpl2;
+
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.peti ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/aarch64.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/aarch64.patch
new file mode 100644
index 000000000000..40696a03dec7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/aarch64.patch
@@ -0,0 +1,12 @@
+diff -ruN gildas-src-jul18a/admin/define-system.sh gildas-src-jul18a.aarch64/admin/define-system.sh
+--- gildas-src-jul18a/admin/define-system.sh 2018-06-12 15:22:32.000000000 +0200
++++ gildas-src-jul18a.aarch64/admin/define-system.sh 2018-07-21 13:05:52.000000000 +0200
+@@ -174,7 +174,7 @@
+ DEFAULT_CONFIG= # Default config is empty
+ case `uname` in
+ Linux)
+- if [ `uname -m | grep -c "x86_64"` -ne 0 ]; then
++ if [ `uname -m | grep -c "64"` -ne 0 ]; then
+ GAG_MACHINE=x86_64
+ else
+ GAG_MACHINE=pc
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/clang.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/clang.patch
new file mode 100644
index 000000000000..4d6654a99aee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/clang.patch
@@ -0,0 +1,22 @@
+diff -ruN gildas-src-jun18a/admin/define-system.sh gildas-src-jun18a.clang/admin/define-system.sh
+--- gildas-src-jun18a/admin/define-system.sh 2018-03-12 11:07:57.000000000 +0100
++++ gildas-src-jun18a.clang/admin/define-system.sh 2018-06-12 14:56:14.000000000 +0200
+@@ -218,13 +218,13 @@
+ else
+ GAG_MACHINE=pc
+ fi
+- if which gcc > /dev/null 2>&1; then
+- DEFAULT_CCOMPILER=gcc
++ if which clang > /dev/null 2>&1; then
++ DEFAULT_CCOMPILER=clang
+ fi
+- if which g++ > /dev/null 2>&1; then
+- DEFAULT_CXXCOMPILER=g++
+- elif which clang++ > /dev/null 2>&1; then
++ if which clang++ > /dev/null 2>&1; then
+ DEFAULT_CXXCOMPILER=clang++
++ elif which g++ > /dev/null 2>&1; then
++ DEFAULT_CXXCOMPILER=g++
+ fi
+ if which ifort > /dev/null 2>&1; then
+ DEFAULT_FCOMPILER=ifort
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
new file mode 100644
index 000000000000..e84a542f1a6d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl, gtk2-x11 , pkgconfig , python3 , gfortran , lesstif
+, cfitsio , getopt , perl , groff , which, darwin, ncurses
+}:
+
+let
+ python3Env = python3.withPackages(ps: with ps; [ numpy ]);
+in
+
+stdenv.mkDerivation rec {
+ srcVersion = "sep20a";
+ version = "20200901_a";
+ pname = "gildas";
+
+ src = fetchurl {
+ # For each new release, the upstream developers of Gildas move the
+ # source code of the previous release to a different directory
+ urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
+ "http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
+ sha256 = "9faa0b3e674b5ffe5b1aee88027d7401a46ae28cd0b306595300547605d6222a";
+ };
+
+ nativeBuildInputs = [ pkgconfig groff perl getopt gfortran which ];
+
+ buildInputs = [ gtk2-x11 lesstif cfitsio python3Env ncurses ]
+ ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ CoreFoundation ]);
+
+ patches = [ ./wrapper.patch ./clang.patch ./aarch64.patch ];
+
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument";
+
+ NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin (with darwin.apple_sdk.frameworks; "-F${CoreFoundation}/Library/Frameworks");
+
+ configurePhase=''
+ substituteInPlace admin/wrapper.sh --replace '%%OUT%%' $out
+ substituteInPlace admin/wrapper.sh --replace '%%PYTHONHOME%%' ${python3Env}
+ substituteInPlace utilities/main/gag-makedepend.pl --replace '/usr/bin/perl' ${perl}/bin/perl
+ source admin/gildas-env.sh -c gfortran -o openmp
+ echo "gag_doc: $out/share/doc/" >> kernel/etc/gag.dico.lcl
+ '';
+
+ postInstall=''
+ mkdir -p $out/bin
+ cp -a ../gildas-exe-${srcVersion}/* $out
+ mv $out/$GAG_EXEC_SYSTEM $out/libexec
+ cp admin/wrapper.sh $out/bin/gildas-wrapper.sh
+ chmod 755 $out/bin/gildas-wrapper.sh
+ for i in $out/libexec/bin/* ; do
+ ln -s $out/bin/gildas-wrapper.sh $out/bin/$(basename "$i")
+ done
+ '';
+
+ meta = {
+ description = "Radioastronomy data analysis software";
+ longDescription = ''
+ GILDAS is a collection of state-of-the-art software
+ oriented toward (sub-)millimeter radioastronomical
+ applications (either single-dish or interferometer).
+ It is daily used to reduce all data acquired with the
+ IRAM 30M telescope and Plateau de Bure Interferometer
+ PDBI (except VLBI observations). GILDAS is easily
+ extensible. GILDAS is written in Fortran-90, with a
+ few parts in C/C++ (mainly keyboard interaction,
+ plotting, widgets).'';
+ homepage = "http://www.iram.fr/IRAMFR/GILDAS/gildas.html";
+ license = stdenv.lib.licenses.free;
+ maintainers = [ stdenv.lib.maintainers.bzizou stdenv.lib.maintainers.smaret ];
+ platforms = stdenv.lib.platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch
new file mode 100644
index 000000000000..3843937bf1bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch
@@ -0,0 +1,20 @@
+diff --new-file -r -u gildas-src-feb17d.orig/admin/wrapper.sh gildas-src-feb17d/admin/wrapper.sh
+--- gildas-src-feb17d.orig/admin/wrapper.sh 1970-01-01 01:00:00.000000000 +0100
++++ gildas-src-feb17d/admin/wrapper.sh 2017-05-18 21:00:01.660778782 +0200
+@@ -0,0 +1,16 @@
++#!/bin/sh -e
++
++export GAG_ROOT_DIR="%%OUT%%"
++export GAG_PATH="${GAG_ROOT_DIR}/etc"
++export GAG_EXEC_SYSTEM="libexec"
++export GAG_GAG="${HOME}/.gag"
++export PYTHONHOME="%%PYTHONHOME%%"
++if [ -z "\$PYTHONPATH" ]; then
++ PYTHONPATH="${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/python"
++else
++ PYTHONPATH="${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/python:${PYTHONPATH}"
++fi
++export PYTHONPATH
++export LD_LIBRARY_PATH=${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/lib/
++me=`basename $0`
++exec ${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/bin/${me} ${*}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix
new file mode 100644
index 000000000000..1ae80c0b0aa6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, intltool
+, gtk3, glib, curl, goocanvas2, gpsd
+, hamlib, wrapGAppsHook
+}:
+
+let
+ version = "2.2.1";
+in stdenv.mkDerivation {
+ pname = "gpredict";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/csete/gpredict/releases/download/v${version}/gpredict-${version}.tar.bz2";
+ sha256 = "0hwf97kng1zy8rxyglw04x89p0bg07zq30hgghm20yxiw2xc8ng7";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+ buildInputs = [ curl glib gtk3 goocanvas2 gpsd hamlib ];
+
+ meta = with stdenv.lib; {
+ description = "Real time satellite tracking and orbit prediction";
+ longDescription = ''
+ Gpredict is a real time satellite tracking and orbit prediction program
+ written using the GTK widgets. Gpredict is targetted mainly towards ham radio
+ operators but others interested in satellite tracking may find it useful as
+ well. Gpredict uses the SGP4/SDP4 algorithms, which are compatible with the
+ NORAD Keplerian elements.
+ '';
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ homepage = "http://gpredict.oz9aec.net/";
+ maintainers = [ maintainers.markuskowa maintainers.cmcdragonkai ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
new file mode 100644
index 000000000000..0a98563ed0e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, libSM, libICE, libGLU, libGL, libpng, lua5, autoconf, automake }:
+
+stdenv.mkDerivation rec {
+ name = "gravit-0.5.1";
+
+ src = fetchurl {
+ url = "https://gravit.slowchop.com/media/downloads/${name}.tgz";
+ sha256 = "14vf7zj2bgrl96wsl3f1knsggc8h9624354ajzd72l46y09x5ky7";
+ };
+
+ buildInputs = [ libGLU libGL SDL SDL_ttf SDL_image lua5 libpng libSM libICE ];
+
+ nativeBuildInputs = [ autoconf automake ];
+
+ preConfigure = ''
+ ./autogen.sh
+
+ # Build fails on Linux with windres.
+ export ac_cv_prog_WINDRES=
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "https://gravit.slowchop.com";
+ description = "Beautiful OpenGL-based gravity simulator";
+ license = stdenv.lib.licenses.gpl2;
+
+ longDescription = ''
+ Gravit is a gravity simulator which runs under Linux, Windows and
+ macOS. It uses Newtonian physics using the Barnes-Hut N-body
+ algorithm. Although the main goal of Gravit is to be as accurate
+ as possible, it also creates beautiful looking gravity patterns.
+ It records the history of each particle so it can animate and
+ display a path of its travels. At any stage you can rotate your
+ view in 3D and zoom in and out.
+ '';
+
+ platforms = stdenv.lib.platforms.mesaPlatforms;
+ hydraPlatforms = stdenv.lib.platforms.linux; # darwin times out
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
new file mode 100644
index 000000000000..fde8df610485
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
@@ -0,0 +1,55 @@
+{
+ stdenv, extra-cmake-modules, fetchurl,
+
+ kconfig, kdoctools, kguiaddons, ki18n, kinit, kiconthemes, kio,
+ knewstuff, kplotting, kwidgetsaddons, kxmlgui, wrapQtAppsHook,
+
+ qtx11extras, qtwebsockets,
+
+ eigen, zlib,
+
+ cfitsio, indilib, xplanet, libnova, gsl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "kstars";
+ version = "3.4.3";
+
+ src = fetchurl {
+ url = "https://mirrors.mit.edu/kde/stable/kstars/kstars-${version}.tar.xz";
+ sha256 = "0j5yxg6ay6sic194skz6vjzg6yvrpb3gvypvs0frjrcjbsl1j4f8";
+ };
+
+ patches = [
+ ./indi-fix.patch
+ ];
+
+ nativeBuildInputs = [ extra-cmake-modules kdoctools wrapQtAppsHook ];
+ buildInputs = [
+ kconfig kdoctools kguiaddons ki18n kinit kiconthemes kio
+ knewstuff kplotting kwidgetsaddons kxmlgui
+
+ qtx11extras qtwebsockets
+
+ eigen zlib
+
+ cfitsio indilib xplanet libnova gsl
+ ];
+
+ cmakeFlags = [
+ "-DINDI_NIX_ROOT=${indilib}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Virtual planetarium astronomy software";
+ homepage = "https://kde.org/applications/education/org.kde.kstars";
+ longDescription = ''
+ It provides an accurate graphical simulation of the night sky, from any location on Earth, at any date and time.
+ The display includes up to 100 million stars, 13.000 deep-sky objects, all 8 planets, the Sun and Moon, and thousands of comets, asteroids, supernovae, and satellites.
+ For students and teachers, it supports adjustable simulation speeds in order to view phenomena that happen over long timescales, the KStars Astrocalculator to predict conjunctions, and many common astronomical calculations.
+ '';
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ timput ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/kstars/indi-fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/kstars/indi-fix.patch
new file mode 100644
index 000000000000..9ff9f8a31dd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/kstars/indi-fix.patch
@@ -0,0 +1,50 @@
+--- CMakeLists.txt 2020-11-02 13:58:06.119743710 -0600
++++ kstars-3.4.3/CMakeLists.txt 2020-11-02 14:05:01.707799274 -0600
+@@ -4,5 +4,7 @@
+ set (KStars_VERSION_REVISION 3)
+ set (CMAKE_CXX_STANDARD 11)
+
++add_definitions(-DINDI_NIX_ROOT=${INDI_NIX_ROOT})
++
+ # Build KStars Lite with -DBUILD_KSTARS_LITE=ON
+ option(BUILD_KSTARS_LITE "Build KStars Lite" OFF)
+
+--- ksutils.cpp 2020-11-02 13:47:44.883596916 -0600
++++ kstars-3.4.3/kstars/auxiliary/ksutils.cpp 2020-11-02 17:41:44.961937090 -0600
+@@ -1076,6 +1076,9 @@
+ {
+ QString snap = QProcessEnvironment::systemEnvironment().value("SNAP");
+ QString flat = QProcessEnvironment::systemEnvironment().value("FLATPAK_DEST");
++#define STR_EXPAND(x) #x
++#define STR(x) STR_EXPAND(x)
++ QString nix = QString(STR(INDI_NIX_ROOT));
+
+ if (option == "fitsDir")
+ {
+@@ -1089,7 +1091,7 @@
+ if (flat.isEmpty() == false)
+ return flat + "/bin/indiserver";
+ else
+- return snap + "/usr/bin/indiserver";
++ return nix + "/bin/indiserver";
+ }
+ else if (option == "INDIHubAgent")
+ {
+@@ -1099,7 +1101,7 @@
+ if (flat.isEmpty() == false)
+ return flat + "/bin/indihub-agent";
+ else
+- return snap + "/usr/bin/indihub-agent";
++ return nix + "/bin/indihub-agent";
+ }
+ else if (option == "indiDriversDir")
+ {
+@@ -1109,7 +1111,7 @@
+ if (flat.isEmpty() == false)
+ return flat + "/share/indi";
+ else
+- return snap + "/usr/share/indi";
++ return nix + "/share/indi";
+ #else
+ return QStandardPaths::locate(QStandardPaths::GenericDataLocation, "indi", QStandardPaths::LocateDirectory);
+ #endif
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/assets.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/assets.patch
new file mode 100644
index 000000000000..38c17ad4593a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/assets.patch
@@ -0,0 +1,100 @@
+diff --git a/data/assets/scene/solarsystem/planets/jupiter/jup310.asset b/data/assets/scene/solarsystem/planets/jupiter/jup310.asset
+index c15f6d9..1f8ddaf 100755
+--- a/data/assets/scene/solarsystem/planets/jupiter/jup310.asset
++++ b/data/assets/scene/solarsystem/planets/jupiter/jup310.asset
+@@ -1,8 +1,8 @@
+-local Kernels = asset.syncedResource({
+- Name = "Jupiter Spice Kernels (jup310)",
+- Type = "TorrentSynchronization",
+- Identifier = "jup310",
+- Magnet = "magnet:?xt=urn:btih:E8B7D7E136DE1C6249158B254BFC8B9ECE2A0539&dn=jup310.bsp&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.ccc.de%3a80%2fannounce"
+-})
++-- local Kernels = asset.syncedResource({
++-- Name = "Jupiter Spice Kernels (jup310)",
++-- Type = "TorrentSynchronization",
++-- Identifier = "jup310",
++-- Magnet = "magnet:?xt=urn:btih:E8B7D7E136DE1C6249158B254BFC8B9ECE2A0539&dn=jup310.bsp&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.ccc.de%3a80%2fannounce"
++-- })
+
+-asset.export("Kernels", Kernels .. '/jup310.bsp')
++-- asset.export("Kernels", Kernels .. '/jup310.bsp')
+diff --git a/data/assets/scene/solarsystem/planets/mars/mar097.asset b/data/assets/scene/solarsystem/planets/mars/mar097.asset
+index e77d67d..8d738a6 100755
+--- a/data/assets/scene/solarsystem/planets/mars/mar097.asset
++++ b/data/assets/scene/solarsystem/planets/mars/mar097.asset
+@@ -1,8 +1,8 @@
+-local Kernels = asset.syncedResource({
+- Name = "Mars Spice Kernels",
+- Type = "TorrentSynchronization",
+- Identifier = "mat097",
+- Magnet = "magnet:?xt=urn:btih:308F326B9AF864294D73042FBBED33B17291E27E&dn=mar097.bsp&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.ccc.de%3a80%2fannounce"
+-})
++-- local Kernels = asset.syncedResource({
++-- Name = "Mars Spice Kernels",
++-- Type = "TorrentSynchronization",
++-- Identifier = "mat097",
++-- Magnet = "magnet:?xt=urn:btih:308F326B9AF864294D73042FBBED33B17291E27E&dn=mar097.bsp&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.ccc.de%3a80%2fannounce"
++-- })
+
+-asset.export("Kernels", Kernels .. '/mar097.bsp')
++-- asset.export("Kernels", Kernels .. '/mar097.bsp')
+diff --git a/data/assets/scene/solarsystem/planets/neptune/nep081.asset b/data/assets/scene/solarsystem/planets/neptune/nep081.asset
+index e9c49ce..cfb5fac 100755
+--- a/data/assets/scene/solarsystem/planets/neptune/nep081.asset
++++ b/data/assets/scene/solarsystem/planets/neptune/nep081.asset
+@@ -1,8 +1,8 @@
+-local Kernels = asset.syncedResource({
+- Name = "Neptune Spice Kernels (nep081)",
+- Type = "TorrentSynchronization",
+- Identifier = "nep081",
+- Magnet = "magnet:?xt=urn:btih:A6079CF8D4BF3B6BB38F4F9F633CB7724FF91693&dn=nep081.bsp&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.ccc.de%3a80%2fannounce"
+-})
++-- local Kernels = asset.syncedResource({
++-- Name = "Neptune Spice Kernels (nep081)",
++-- Type = "TorrentSynchronization",
++-- Identifier = "nep081",
++-- Magnet = "magnet:?xt=urn:btih:A6079CF8D4BF3B6BB38F4F9F633CB7724FF91693&dn=nep081.bsp&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.ccc.de%3a80%2fannounce"
++-- })
+
+-asset.export("Kernels", Kernels .. '/nep081.bsp')
++-- asset.export("Kernels", Kernels .. '/nep081.bsp')
+diff --git a/data/assets/scene/solarsystem/planets/saturn/sat375.asset b/data/assets/scene/solarsystem/planets/saturn/sat375.asset
+index a55f2ed..f904b3c 100755
+--- a/data/assets/scene/solarsystem/planets/saturn/sat375.asset
++++ b/data/assets/scene/solarsystem/planets/saturn/sat375.asset
+@@ -1,8 +1,8 @@
+-local Kernels = asset.syncedResource({
+- Name = "Saturn Spice Kernels (sat375)",
+- Type = "TorrentSynchronization",
+- Identifier = "sat375",
+- Magnet = "magnet:?xt=urn:btih:79083d2069df389e65d7688bb326c7aaf1953845&dn=sat375.bsp"
+-})
++-- local Kernels = asset.syncedResource({
++-- Name = "Saturn Spice Kernels (sat375)",
++-- Type = "TorrentSynchronization",
++-- Identifier = "sat375",
++-- Magnet = "magnet:?xt=urn:btih:79083d2069df389e65d7688bb326c7aaf1953845&dn=sat375.bsp"
++-- })
+
+-asset.export("Kernels", Kernels .. '/sat375.bsp')
++-- asset.export("Kernels", Kernels .. '/sat375.bsp')
+diff --git a/data/assets/scene/solarsystem/planets/uranus/ura111.asset b/data/assets/scene/solarsystem/planets/uranus/ura111.asset
+index 665d059..8f95f34 100755
+--- a/data/assets/scene/solarsystem/planets/uranus/ura111.asset
++++ b/data/assets/scene/solarsystem/planets/uranus/ura111.asset
+@@ -1,8 +1,8 @@
+-local Kernels = asset.syncedResource({
+- Name = "Uranus Spice Kernels (ura111)",
+- Type = "TorrentSynchronization",
+- Identifier = "ura111",
+- Magnet = "magnet:?xt=urn:btih:26C4903D1A12AE439480F31B45BAEB5781D2B305&dn=ura111.bsp&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.ccc.de%3a80%2fannounce"
+-})
++-- local Kernels = asset.syncedResource({
++-- Name = "Uranus Spice Kernels (ura111)",
++-- Type = "TorrentSynchronization",
++-- Identifier = "ura111",
++-- Magnet = "magnet:?xt=urn:btih:26C4903D1A12AE439480F31B45BAEB5781D2B305&dn=ura111.bsp&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.ccc.de%3a80%2fannounce"
++-- })
+
+-asset.export("Kernels", Kernels .. '/ura111.bsp')
++-- asset.export("Kernels", Kernels .. '/ura111.bsp')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/config.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/config.patch
new file mode 100644
index 000000000000..826edea09071
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/config.patch
@@ -0,0 +1,49 @@
+diff --git a/openspace.cfg b/openspace.cfg
+index c86830b..e7f89d9 100755
+--- a/openspace.cfg
++++ b/openspace.cfg
+@@ -2,18 +2,21 @@
+ -- require('scripts/configuration_helper.lua')
+ -- which defines helper functions useful to customize the configuration
+
++userdir = os.getenv("HOME") .. "/.openspace/"
++os.execute("mkdir -p " .. userdir)
++
+ return {
+ -- Determines which SGCT configuration file is loaded, that is, if there rendering
+ -- occurs in a single window, a fisheye projection, or a dome cluster system
+
+ -- A regular 1280x720 window
+- SGCTConfig = sgct.config.single{},
++ -- SGCTConfig = sgct.config.single{},
+
+ -- A regular 1920x1080 window
+ -- SGCTConfig = sgct.config.single{1920, 1080},
+
+ -- A windowed 1920x1080 fullscreen
+- -- SGCTConfig = sgct.config.single{1920, 1080, border=false, windowPos={0,0}, shared=true, name="WV_OBS_SPOUT1"},
++ SGCTConfig = sgct.config.single{1920, 1080, border=false, windowPos={0,0}, shared=true, name="WV_OBS_SPOUT1"},
+
+ -- A 1k fisheye rendering
+ -- SGCTConfig = sgct.config.fisheye{1024, 1024},
+@@ -53,15 +56,15 @@ return {
+ TASKS = "${DATA}/tasks",
+ WEB = "${DATA}/web",
+
+- CACHE = "${BASE}/cache",
++ CACHE = userdir .. "cache",
+ CONFIG = "${BASE}/config",
+- DOCUMENTATION = "${BASE}/documentation",
+- LOGS = "${BASE}/logs",
++ DOCUMENTATION = userdir .. "documentation",
++ LOGS = userdir .. "logs",
+ MODULES = "${BASE}/modules",
+ SCRIPTS = "${BASE}/scripts",
+ SHADERS = "${BASE}/shaders",
+- SYNC = "${BASE}/sync",
+- TESTDIR = "${BASE}/tests"
++ SYNC = userdir .. "sync",
++ TESTDIR = userdir .. "tests"
+ },
+ Fonts = {
+ Mono = "${FONTS}/Bitstream-Vera-Sans-Mono/VeraMono.ttf",
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/constexpr.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/constexpr.patch
new file mode 100644
index 000000000000..d9fc91d7c277
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/constexpr.patch
@@ -0,0 +1,91 @@
+diff --git a/include/openspace/util/distanceconversion.h b/include/openspace/util/distanceconversion.h
+index 80a3a96..7059752 100755
+--- a/include/openspace/util/distanceconversion.h
++++ b/include/openspace/util/distanceconversion.h
+@@ -159,24 +159,34 @@ constexpr const char* nameForDistanceUnit(DistanceUnit unit, bool pluralForm = f
+ }
+
+ constexpr DistanceUnit distanceUnitFromString(const char* unitName) {
++ int result = -1;
++
+ int i = 0;
+ for (const char* val : DistanceUnitNamesSingular) {
+ if (ghoul::equal(unitName, val)) {
+- return static_cast<DistanceUnit>(i);
++ result = i;
++ break;
+ }
+ ++i;
+ }
+
+- i = 0;
+- for (const char* val : DistanceUnitNamesPlural) {
+- if (ghoul::equal(unitName, val)) {
+- return static_cast<DistanceUnit>(i);
++ if (result == -1) {
++ i = 0;
++ for (const char* val : DistanceUnitNamesPlural) {
++ if (ghoul::equal(unitName, val)) {
++ result = i;
++ break;
++ }
++ ++i;
+ }
+- ++i;
+ }
+
+- ghoul_assert(false, "Unit name is not a valid name");
+- throw ghoul::MissingCaseException();
++ if (result != -1)
++ return static_cast<DistanceUnit>(result);
++ else {
++ ghoul_assert(false, "Unit name is not a valid name");
++ throw ghoul::MissingCaseException();
++ }
+ }
+
+
+diff --git a/include/openspace/util/timeconversion.h b/include/openspace/util/timeconversion.h
+index a36c92a..699bca9 100755
+--- a/include/openspace/util/timeconversion.h
++++ b/include/openspace/util/timeconversion.h
+@@ -142,23 +142,32 @@ constexpr const char* nameForTimeUnit(TimeUnit unit, bool pluralForm = false) {
+ }
+
+ constexpr TimeUnit timeUnitFromString(const char* unitName) {
++ int result = -1;
++
+ int i = 0;
+ for (const char* val : TimeUnitNamesSingular) {
+ if (ghoul::equal(unitName, val)) {
+- return static_cast<TimeUnit>(i);
++ result = i;
++ break;
+ }
+ ++i;
+ }
+
+- i = 0;
+- for (const char* val : TimeUnitNamesPlural) {
+- if (ghoul::equal(unitName, val)) {
+- return static_cast<TimeUnit>(i);
++ if (result == -1) {
++ i = 0;
++ for (const char* val : TimeUnitNamesPlural) {
++ if (ghoul::equal(unitName, val)) {
++ result = i;
++ break;
++ }
++ ++i;
+ }
+- ++i;
+ }
+
+- throw ghoul::MissingCaseException();
++ if (result != -1)
++ return static_cast<TimeUnit>(result);
++ else
++ throw ghoul::MissingCaseException();
+ }
+
+ std::pair<double, std::string> simplifyTime(double seconds,
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/default.nix
new file mode 100644
index 000000000000..566fd61f1a7b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, fetchFromGitHub, fetchurl, makeWrapper, cmake
+, curl, boost, gdal, glew, soil
+, libX11, libXi, libXxf86vm, libXcursor, libXrandr, libXinerama }:
+
+stdenv.mkDerivation rec {
+ version = "0.11.1";
+ pname = "openspace";
+
+ src = fetchFromGitHub {
+ owner = "OpenSpace";
+ repo = "OpenSpace";
+ rev = "a65eea61a1b8807ce3d69e9925e75f8e3dfb085d";
+ sha256 = "0msqixf30r0d41xmfmzkdfw6w9jkx2ph5clq8xiwrg1jc3z9q7nv";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [
+ makeWrapper cmake
+ curl boost gdal glew soil
+ libX11 libXi libXxf86vm libXcursor libXrandr libXinerama
+ ];
+
+ glmPlatformH = fetchurl {
+ url = "https://raw.githubusercontent.com/g-truc/glm/dd48b56e44d699a022c69155c8672caacafd9e8a/glm/simd/platform.h";
+ sha256 = "0y91hlbgn5va7ijg5mz823gqkq9hqxl00lwmdwnf8q2g086rplzw";
+ };
+
+ # See <https://github.com/g-truc/glm/issues/726>
+ prePatch = ''
+ cp ${glmPlatformH} ext/sgct/include/glm/simd/platform.h
+ cp ${glmPlatformH} ext/ghoul/ext/glm/glm/simd/platform.h
+ '';
+
+ patches = [
+ # See <https://github.com/opensgct/sgct/issues/13>
+ ./vrpn.patch
+
+ ./constexpr.patch
+ ./config.patch
+
+ # WARNING: This patch disables some slow torrents in a very dirty way.
+ ./assets.patch
+ ];
+
+ bundle = "$out/usr/share/openspace";
+
+ preConfigure = ''
+ cmakeFlagsArray=(
+ $cmakeFlagsArray
+ "-DCMAKE_BUILD_TYPE="
+ "-DCMAKE_INSTALL_PREFIX=${bundle}"
+ )
+ '';
+
+ preInstall = ''
+ mkdir -p $out/bin
+ mkdir -p ${bundle}
+ '';
+
+ postInstall = ''
+ cp ext/spice/libSpice.so ${bundle}/lib
+ cp ext/ghoul/ext/lua/libLua.so ${bundle}/lib
+ '';
+
+ postFixup = ''
+ for bin in ${bundle}/bin/*
+ do
+ rpath=$(patchelf --print-rpath $bin)
+ patchelf --set-rpath $rpath:${bundle}/lib $bin
+
+ name=$(basename $bin)
+ makeWrapper $bin $out/bin/$name --run "cd ${bundle}"
+ done
+ '';
+
+ meta = {
+ description = "Open-source astrovisualization project";
+ longDescription = ''
+ OpenSpace is open source interactive data visualization software
+ designed to visualize the entire known universe and portray our
+ ongoing efforts to investigate the cosmos.
+
+ WARNING: This build is not very usable for now.
+ '';
+ homepage = "https://www.openspaceproject.com/";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.linux;
+ broken = true; # fails to build
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/vrpn.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/vrpn.patch
new file mode 100644
index 000000000000..9386d0257b7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/openspace/vrpn.patch
@@ -0,0 +1,13 @@
+diff --git a/ext/sgct/src/deps/vrpn/vrpn_Connection.C b/ext/sgct/src/deps/vrpn/vrpn_Connection.C
+index d6ffdc5..f90a2b2 100755
+--- a/ext/sgct/src/deps/vrpn/vrpn_Connection.C
++++ b/ext/sgct/src/deps/vrpn/vrpn_Connection.C
+@@ -2489,7 +2489,7 @@ static int vrpn_start_server(const char *machine, char *server_name, char *args,
+ #if defined(sparc) || defined(FreeBSD) || defined(_AIX) || defined(__ANDROID__)
+ int status; // doesn't exist on sparc_solaris or FreeBSD
+ #else
+- union wait status;
++ int status;
+ #endif
+
+ /* Check to see if they called back yet. */
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/phd2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/phd2/default.nix
new file mode 100644
index 000000000000..98afba77c4f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/phd2/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pkg-config, cmake, gtk3,
+ wxGTK30-gtk3, curl, gettext, glib, indilib, libnova }:
+
+stdenv.mkDerivation rec {
+ pname = "phd2";
+ version = "2.6.9dev1";
+
+ src = fetchFromGitHub {
+ owner = "OpenPHDGuiding";
+ repo = "phd2";
+ rev = "v${version}";
+ sha256 = "1ih7m9lilh12xbhmwm9kkicaqy72mi3firl6df7m5x38n2zj3zm4";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+ buildInputs = [ gtk3 wxGTK30-gtk3 curl gettext glib indilib libnova ];
+
+ cmakeFlags = [
+ "-DOPENSOURCE_ONLY=1"
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://openphdguiding.org/";
+ description = "Telescope auto-guidance application";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ hjones2199 ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
new file mode 100644
index 000000000000..4c773208d560
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, mkDerivation, fetchFromGitHub
+, cmake, freetype, libpng, libGLU, libGL, openssl, perl, libiconv
+, qtscript, qtserialport, qttools
+, qtmultimedia, qtlocation, qtbase, wrapQtAppsHook
+}:
+
+mkDerivation rec {
+ pname = "stellarium";
+ version = "0.20.3";
+
+ src = fetchFromGitHub {
+ owner = "Stellarium";
+ repo = "stellarium";
+ rev = "v${version}";
+ sha256 = "08abrshrzhdfcg3b2vzfmnq8fhzrasadg1ajs81kcw96yjc59vak";
+ };
+
+ nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
+
+ buildInputs = [
+ freetype libpng libGLU libGL openssl libiconv qtscript qtserialport qttools
+ qtmultimedia qtlocation qtbase
+ ];
+
+ preConfigure = lib.optionalString stdenv.isDarwin ''
+ substituteInPlace CMakeLists.txt \
+ --replace 'SET(CMAKE_INSTALL_PREFIX "''${PROJECT_BINARY_DIR}/Stellarium.app/Contents")' \
+ 'SET(CMAKE_INSTALL_PREFIX "${placeholder "out"}/Stellarium.app/Contents")'
+ '';
+
+ postFixup = lib.optionalString stdenv.isDarwin ''
+ wrapQtApp "$out"/Stellarium.app/Contents/MacOS/stellarium
+ '';
+
+ meta = with lib; {
+ description = "Free open-source planetarium";
+ homepage = "http://stellarium.org/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ peti ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix
new file mode 100644
index 000000000000..752e25b4d8d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, imake, gccmakedep, libXt, libXext }:
+
+stdenv.mkDerivation rec {
+ pname = "xearth";
+ version = "1.1";
+
+ src = fetchurl {
+ url = "http://xearth.org/${pname}-${version}.tar.gz";
+ sha256 = "bcb1407cc35b3f6dd3606b2c6072273b6a912cbd9ed1ae22fb2d26694541309c";
+ };
+
+ nativeBuildInputs = [ imake gccmakedep ];
+ buildInputs = [ libXt libXext ];
+
+ installFlags = [ "DESTDIR=$(out)/" "BINDIR=bin" "MANDIR=man/man1"];
+ installTargets = [ "install" "install.man" ];
+
+ meta = with stdenv.lib; {
+ description = "sets the X root window to an image of the Earth";
+ homepage = "http://xplanet.org";
+ longDescription =
+ '' Xearth sets the X root window to an image of the Earth, as seen from your favorite vantage point in space,
+ correctly shaded for the current position of the Sun.
+ By default, xearth updates the displayed image every five minutes.
+ '';
+ maintainers = [ maintainers.mafo ];
+ license = "xearth";
+ platforms=platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix
new file mode 100644
index 000000000000..a314678b6ea3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, fetchpatch, pkgconfig, freetype, pango, libpng, libtiff
+, giflib, libjpeg, netpbm}:
+
+stdenv.mkDerivation rec {
+ pname = "xplanet";
+ version = "1.3.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xplanet/${pname}-${version}.tar.gz";
+ sha256 = "1rzc1alph03j67lrr66499zl0wqndiipmj99nqgvh9xzm1qdb023";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ freetype pango libpng libtiff giflib libjpeg netpbm ];
+
+ patches = [
+ (fetchpatch {
+ name = "giflib6.patch";
+ url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/giflib6.patch?h=packages/xplanet&id=ce6f25eb369dc011161613894f01fd0a6ae85a09";
+ sha256 = "173l0xkqq0v2bpaff7hhwc7y2aw5cclqw8988k1nalhyfbrjb8bl";
+ })
+ (fetchpatch {
+ name = "xplanet-c++11.patch";
+ url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/xplanet-c++11.patch?h=packages/xplanet&id=ce6f25eb369dc011161613894f01fd0a6ae85a09";
+ sha256 = "0vldai78ixw49bxch774pps6pq4sp0p33qvkvxywcz7p8kzpg8q2";
+ })
+ ];
+
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing";
+
+ meta = with stdenv.lib; {
+ description = "Renders an image of the earth or other planets into the X root window";
+ homepage = "http://xplanet.sourceforge.net";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ lassulus sander ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix
new file mode 100644
index 000000000000..a9661ee2db78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libminc, bicpl, itk4, fftwFloat, gsl }:
+
+stdenv.mkDerivation rec {
+ pname = "EZminc";
+ version = "unstable-2019-03-12";
+
+ src = fetchFromGitHub {
+ owner = "BIC-MNI";
+ repo = pname;
+ rev = "5e3333ee356f914d34d66d33ea8df809c7f7fa51";
+ sha256 = "0wy8cppf5xpgfqvgb3mqs1cjh81n6qzkk6zxv29wvng8nar9wsy4";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ itk4 libminc bicpl fftwFloat gsl ];
+
+ cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake"
+ "-DEZMINC_BUILD_TOOLS=TRUE"
+ "-DEZMINC_BUILD_MRFSEG=TRUE"
+ "-DEZMINC_BUILD_DD=TRUE" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/BIC-MNI/${pname}";
+ description = "Collection of Perl and shell scripts for processing MINC files";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/N3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/N3/default.nix
new file mode 100644
index 000000000000..13ffc305d392
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/N3/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper,
+ perlPackages,
+ libminc, EBTKS }:
+
+stdenv.mkDerivation rec {
+ pname = "N3";
+ version = "unstable-2018-08-09";
+
+ src = fetchFromGitHub {
+ owner = "BIC-MNI";
+ repo = pname;
+ rev = "010fc2ac58ce1d67b8e6a863fac0809d3203cb9b";
+ sha256 = "06hci7gzhy8p34ggvx7gah2k9yxpwhgmq1cgw8pcd1r82g4rg6kd";
+ };
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+ buildInputs = [ libminc EBTKS ];
+ propagatedBuildInputs = with perlPackages; [ perl MNI-Perllib GetoptTabular ];
+
+ cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" "-DEBTKS_DIR=${EBTKS}/lib/" ];
+
+ postFixup = ''
+ for p in $out/bin/*; do
+ wrapProgram $p --prefix PERL5LIB : $PERL5LIB
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/BIC-MNI/N3";
+ description = "MRI non-uniformity correction for MINC files";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/ants/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/ants/default.nix
new file mode 100644
index 000000000000..ece218eea37d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/ants/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, makeWrapper, itk4, vtk_7, Cocoa }:
+
+stdenv.mkDerivation rec {
+ pname = "ANTs";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "ANTsX";
+ repo = "ANTs";
+ rev = "37ad4e20be3a5ecd26c2e4e41b49e778a0246c3d";
+ sha256 = "1hrdwv3m9xh3yf7l0rm2ggxc2xzckfb8srs88g485ibfszx7i03q";
+ };
+
+ patches = [
+ # Fix build with gcc8
+ (fetchpatch {
+ url = "https://github.com/ANTsX/ANTs/commit/89af9b2694715bf8204993e032fa132f80cf37bd.patch";
+ sha256 = "1glkrwa1jmxxbmzihycxr576azjqby31jwpj165qc54c91pn0ams";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+ buildInputs = [ itk4 vtk_7 ] ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ];
+
+ cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE" ];
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ for file in $out/bin/*; do
+ wrapProgram $file --set ANTSPATH "$out/bin"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ANTsX/ANTs";
+ description = "Advanced normalization toolkit for medical image registration and other processing";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
new file mode 100644
index 000000000000..168bd5c6aa68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ version = "1.2.38";
+ pname = "aragorn";
+
+ src = fetchurl {
+ url = "http://mbio-serv2.mbioekol.lu.se/ARAGORN/Downloads/${pname}${version}.tgz";
+ sha256 = "09i1rg716smlbnixfm7q1ml2mfpaa2fpn3hwjg625ysmfwwy712b";
+ };
+
+ buildPhase = ''
+ $CC -O3 -ffast-math -finline-functions -o aragorn aragorn${version}.c
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin && cp aragorn $out/bin
+ mkdir -p $out/man/1 && cp aragorn.1 $out/man/1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Detects tRNA, mtRNA, and tmRNA genes in nucleotide sequences";
+ homepage = "http://mbio-serv2.mbioekol.lu.se/ARAGORN/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bayescan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bayescan/default.nix
new file mode 100644
index 000000000000..4e216fbdbe63
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bayescan/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, unzip, llvmPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "bayescan";
+ version = "2.1";
+
+ src = fetchurl {
+ url = "http://cmpg.unibe.ch/software/BayeScan/files/BayeScan${version}.zip";
+ sha256 = "0ismima8j8z0zj9yc267rpf7z90w57b2pbqzjnayhc3ab8mcbfy6";
+ };
+
+ nativeBuildInputs = [ unzip ];
+ buildInputs = stdenv.lib.optional stdenv.cc.isClang llvmPackages.openmp;
+
+ # Disable FORTIFY_SOURCE or the binary fails with "buffer overflow"
+ hardeningDisable = [ "fortify" ];
+
+ sourceRoot = "BayeScan${version}/source";
+
+ postPatch = ''
+ substituteInPlace Makefile --replace "-static" "" \
+ --replace "g++" "c++"
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/doc/bayescan
+ cp bayescan_${version} $out/bin
+ cp -r ../*pdf ../input_examples ../"R functions" $out/share/doc/bayescan
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Detecting natural selection from population-based genetic data";
+ homepage = "http://cmpg.unibe.ch/software/BayeScan";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.bzizou ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
new file mode 100644
index 000000000000..d1b033dc4e23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, htslib, zlib, bzip2, lzma, curl, perl, python, bash }:
+
+stdenv.mkDerivation rec {
+ pname = "bcftools";
+ version = "1.11";
+
+ src = fetchurl {
+ url = "https://github.com/samtools/bcftools/releases/download/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "0r508mp15pqzf8r1269kb4v5naw9zsvbwd3cz8s1yj7carsf9viw";
+ };
+
+ buildInputs = [ htslib zlib bzip2 lzma curl perl python ];
+
+ makeFlags = [
+ "HSTDIR=${htslib}"
+ "prefix=$(out)"
+ "CC=cc"
+ ];
+
+ preCheck = ''
+ patchShebangs misc/
+ patchShebangs test/
+ sed -ie 's|/bin/bash|${bash}/bin/bash|' test/test.pl
+ '';
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Tools for manipulating BCF2/VCF/gVCF format, SNP and short indel sequence variants";
+ license = licenses.mit;
+ homepage = "http://www.htslib.org/";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.mimame ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix
new file mode 100644
index 000000000000..f92e912f6800
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchFromGitHub, zlib, python, bzip2, lzma}:
+
+stdenv.mkDerivation rec {
+ pname = "bedtools";
+ version = "2.29.2";
+
+ src = fetchFromGitHub {
+ owner = "arq5x";
+ repo = "bedtools2";
+ rev = "v${version}";
+ sha256 = "015qq3pwrwgnyxyi959niijjlswl231b3wxlsm3l8msv6fdhmkz8";
+ };
+
+ buildInputs = [ zlib python bzip2 lzma ];
+ cxx = if stdenv.cc.isClang then "clang++" else "g++";
+ cc = if stdenv.cc.isClang then "clang" else "gcc";
+ buildPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cxx} CC=${cc} -j $NIX_BUILD_CORES";
+ installPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cxx} CC=${cc} install";
+
+ meta = with stdenv.lib; {
+ description = "A powerful toolset for genome arithmetic";
+ license = licenses.gpl2;
+ homepage = "https://bedtools.readthedocs.io/en/latest/";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bftools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bftools/default.nix
new file mode 100644
index 000000000000..2ecefee340fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bftools/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, makeWrapper, fetchzip, jre }:
+
+stdenv.mkDerivation rec {
+ pname = "bftools";
+ version = "6.3.0";
+
+ src = fetchzip {
+ url = "http://downloads.openmicroscopy.org/bio-formats/${version}/artifacts/bftools.zip";
+ sha256 = "02nvvmpfglpah1ihd08aw65g1794w588c988cdar1hfl4s80qwhb";
+ };
+
+ installPhase = ''
+ find . -maxdepth 1 -perm -111 -type f -not -name "*.sh" \
+ -exec install -vD {} "$out"/bin/{} \;
+
+ mkdir $out/libexec
+ mkdir -p $out/share/java
+
+ cp ./*.sh $out/libexec
+ cp ./*.jar $out/share/java
+
+ for file in $out/bin/*; do
+ substituteInPlace $file --replace "\$BF_DIR" $out/libexec
+ done
+ substituteInPlace $out/libexec/bf.sh --replace "\$BF_JAR_DIR" $out/share/java
+ '';
+
+ postFixup = ''
+ wrapProgram $out/libexec/bf.sh --prefix PATH : "${lib.makeBinPath [ jre ]}"
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ meta = with stdenv.lib; {
+ description = "A bundle of scripts for using Bio-Formats on the command line with bioformats_package.jar already included";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ homepage = "https://www.openmicroscopy.org/bio-formats/";
+ maintainers = [ maintainers.tbenst ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/blast/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/blast/default.nix
new file mode 100644
index 000000000000..95a1b905e9e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/blast/default.nix
@@ -0,0 +1,108 @@
+{ lib, stdenv, fetchurl, zlib, bzip2, perl, cpio, gawk, coreutils, ApplicationServices }:
+
+stdenv.mkDerivation rec {
+ pname = "blast";
+ version = "2.10.0";
+
+ src = fetchurl {
+ url = "ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${version}/ncbi-blast-${version}+-src.tar.gz";
+ sha256 = "09nry5knj5hhxpn0a5ww1gb1704grd4r1y7adbjl6kqwq37dkk9s";
+ };
+
+ sourceRoot = "ncbi-blast-${version}+-src/c++";
+
+ configureFlags = [
+ # With flat Makefile we can use all_projects in order not to build extra.
+ # These extra cause clang to hang on Darwin.
+ "--with-flat-makefile"
+ "--without-makefile-auto-update"
+ "--with-dll" # build dynamic libraries (static are default)
+ ];
+
+ makeFlags = [ "all_projects=app/" ];
+
+ preConfigure = ''
+ export NCBICXX_RECONF_POLICY=warn
+ export PWD=$(pwd)
+ export HOME=$PWD
+
+ # The configure scripts wants to set AR="ar cr" unless it is already set in
+ # the environment. Because stdenv sets AR="ar", the result is a bad call to
+ # the assembler later in the process. Thus, we need to unset AR
+ unset AR
+
+ for awks in scripts/common/impl/is_log_interesting.awk \
+ scripts/common/impl/report_duplicates.awk; do
+
+ substituteInPlace $awks \
+ --replace /usr/bin/awk ${gawk}/bin/awk
+ done
+
+ for mk in src/build-system/Makefile.meta.in \
+ src/build-system/helpers/run_with_lock.c ; do
+
+ substituteInPlace $mk \
+ --replace /bin/rm ${coreutils}/bin/rm
+ done
+
+ for mk in src/build-system/Makefile.meta.gmake=no \
+ src/build-system/Makefile.meta_l \
+ src/build-system/Makefile.meta_r \
+ src/build-system/Makefile.requirements \
+ src/build-system/Makefile.rules_with_autodep.in; do
+
+ substituteInPlace $mk \
+ --replace /bin/echo ${coreutils}/bin/echo
+ done
+ for mk in src/build-system/Makefile.meta_p \
+ src/build-system/Makefile.rules_with_autodep.in \
+ src/build-system/Makefile.protobuf.in ; do
+
+ substituteInPlace $mk \
+ --replace /bin/mv ${coreutils}/bin/mv
+ done
+
+
+ substituteInPlace src/build-system/configure \
+ --replace /bin/pwd ${coreutils}/bin/pwd \
+ --replace /bin/ln ${coreutils}/bin/ln
+
+ substituteInPlace src/build-system/configure.ac \
+ --replace /bin/pwd ${coreutils}/bin/pwd \
+ --replace /bin/ln ${coreutils}/bin/ln
+
+ substituteInPlace src/build-system/Makefile.meta_l \
+ --replace /bin/date ${coreutils}/bin/date
+ '';
+
+ nativeBuildInputs = [ perl ];
+
+ # perl is necessary in buildInputs so that installed perl scripts get patched
+ # correctly
+ buildInputs = [ coreutils perl gawk zlib bzip2 cpio ]
+ ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
+ hardeningDisable = [ "format" ];
+
+ postInstall = ''
+ substituteInPlace $out/bin/get_species_taxids.sh \
+ --replace /bin/rm ${coreutils}/bin/rm
+ '';
+ patches = [ ./no_slash_bin.patch ];
+
+ enableParallelBuilding = true;
+
+ # Many tests require either network access or locally available databases
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = ''Basic Local Alignment Search Tool (BLAST) finds regions of
+ similarity between biological sequences'';
+ homepage = "https://blast.ncbi.nlm.nih.gov/Blast.cgi";
+ license = licenses.publicDomain;
+
+ # Version 2.10.0 fails on Darwin
+ # See https://github.com/NixOS/nixpkgs/pull/61430
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ luispedro ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/blast/no_slash_bin.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/blast/no_slash_bin.patch
new file mode 100644
index 000000000000..9b78ac579264
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/blast/no_slash_bin.patch
@@ -0,0 +1,184 @@
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/collect_outside_libs.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/collect_outside_libs.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/collect_outside_libs.sh 2014-08-01 22:01:17.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/collect_outside_libs.sh 2019-05-15 12:40:44.145239480 +0800
+@@ -1,8 +1,5 @@
+ #!/bin/sh
+ set -e
+-PATH=/bin:/usr/bin
+-export PATH
+-unset CDPATH
+
+ base=$1
+ search=`echo ${2-$LD_LIBRARY_PATH} | tr : ' '`
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/create_flat_tuneups.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/create_flat_tuneups.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/create_flat_tuneups.sh 2011-08-17 02:55:10.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/create_flat_tuneups.sh 2019-05-15 12:40:48.449276574 +0800
+@@ -1,9 +1,6 @@
+ #!/bin/sh
+ id='$Id: create_flat_tuneups.sh 331412 2011-08-16 18:55:10Z ucko $'
+
+-PATH=/bin:/usr/bin
+-export PATH
+-
+ exec > auto_flat_tuneups.mk
+
+ cat <<EOF
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/get_lock.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/get_lock.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/get_lock.sh 2011-08-20 04:12:28.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/get_lock.sh 2019-05-15 12:40:52.901315000 +0800
+@@ -1,7 +1,5 @@
+ #!/bin/sh
+
+-PATH=/bin:/usr/bin
+-export PATH
+
+ dir=$1.lock
+
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/if_diff.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/if_diff.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/if_diff.sh 2014-07-30 22:06:45.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/if_diff.sh 2019-05-15 12:42:57.298410841 +0800
+@@ -4,9 +4,6 @@
+ # Author: Denis Vakatov (vakatov@ncbi.nlm.nih.gov)
+ #################################
+
+-orig_PATH=$PATH
+-PATH=/bin:/usr/bin
+-
+ script_name=`basename $0`
+ script_args="$*"
+
+@@ -16,7 +13,7 @@
+ base_action=`basename "$action"`
+ case "$base_action" in
+ cp | cp\ * | ln | ln\ * )
+- action=/bin/$base_action
++ action=$base_action
+ rm="rm -f"
+ ;;
+ * )
+@@ -58,10 +55,8 @@
+ shift
+ cmd="$* $dest_file"
+ test "$quiet" = yes || echo "$cmd"
+- PATH=$orig_PATH
+ "$@" "$dest"
+ status=$?
+- PATH=/bin:/usr/bin
+ return $status
+ }
+
+@@ -74,7 +69,7 @@
+ case "$base_action" in
+ ln | ln\ -f )
+ test "$quiet" = yes || echo "failed; trying \"cp -p ...\" instead"
+- cmd="/bin/cp -p $src_file $dest_file"
++ cmd="cp -p $src_file $dest_file"
+ ExecHelper "$dest_file" /bin/cp -p "$src_file" ||
+ Usage "\"$cmd\" failed"
+ ;;
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/make_lock_map.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/make_lock_map.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/make_lock_map.sh 2011-11-17 04:43:52.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/make_lock_map.sh 2019-05-15 12:40:56.769348434 +0800
+@@ -1,8 +1,6 @@
+ #!/bin/sh
+ # $Id: make_lock_map.sh 344587 2011-11-16 20:43:52Z ucko $
+
+-PATH=/bin:/usr/bin
+-export PATH
+
+ act=false
+ cache_dir='.#SRC-cache'
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/run_with_lock.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/run_with_lock.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/run_with_lock.sh 2015-10-29 22:36:05.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/run_with_lock.sh 2019-05-15 12:41:53.401842849 +0800
+@@ -1,10 +1,6 @@
+ #!/bin/sh
+ # $Id: run_with_lock.sh 483249 2015-10-29 14:36:05Z ucko $
+
+-orig_PATH=$PATH
+-PATH=/bin:/usr/bin
+-export PATH
+-
+ base=
+ logfile=
+ map=
+@@ -23,7 +19,7 @@
+ : ${base:=`basename "$1"`}
+
+ clean_up () {
+- /bin/rm -rf "$base.lock"
++ rm -rf "$base.lock"
+ }
+
+ case $0 in
+@@ -45,7 +41,7 @@
+ trap "clean_up; exit $error_status" 1 2 15
+ if [ -n "$logfile" ]; then
+ status_file=$base.lock/status
+- (PATH=$orig_PATH; export PATH; "$@"; echo $? > "$status_file") 2>&1 \
++ ("$@"; echo $? > "$status_file") 2>&1 \
+ | tee "$logfile.new"
+ # Emulate egrep -q to avoid having to move from under scripts.
+ if [ ! -f "$logfile" ] \
+@@ -58,8 +54,6 @@
+ status=1
+ fi
+ else
+- PATH=$orig_PATH
+- export PATH
+ "$@"
+ status=$?
+ fi
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/strip_for_install.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/strip_for_install.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/strip_for_install.sh 2013-09-24 03:06:51.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/strip_for_install.sh 2019-05-15 12:40:13.272975092 +0800
+@@ -1,8 +1,5 @@
+ #!/bin/sh
+
+-PATH=/bin:/usr/bin:/usr/ccs/bin
+-export PATH
+-
+ case "$1" in
+ --dirs )
+ shift
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/update_configurable.sh 2017-07-13 22:53:24.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/update_configurable.sh 2019-05-15 15:03:35.861276083 +0800
+@@ -1,6 +1,4 @@
+ #!/bin/sh
+-PATH=/bin:/usr/bin
+-export PATH
+
+ script_name=`basename $0`
+ script_dir=`dirname $0`
+--- ncbi-blast-2.9.0+-src/src/build-system/Makefile.mk.in 2019-01-04 01:38:37.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/src/build-system/Makefile.mk.in 2019-05-15 15:14:41.749416495 +0800
+@@ -50,12 +50,12 @@
+
+ ### Auxiliary commands, filters
+
+-RM = /bin/rm -f
+-RMDIR = /bin/rm -rf
+-COPY = /bin/cp -p
++RM = rm -f
++RMDIR = rm -rf
++COPY = cp -p
+ BINCOPY = @BINCOPY@
+ TOUCH = @TOUCH@
+-MKDIR = /bin/mkdir
++MKDIR = mkdir
+ BINTOUCH = $(TOUCH)
+ LN_S = @LN_S@
+ GREP = @GREP@
+--- ncbi-blast-2.9.0+-src/src/build-system/configure 2019-03-05 00:49:08.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/src/build-system/configure 2019-05-15 16:55:40.711795042 +0800
+@@ -10417,10 +10417,6 @@
+ echo "${ECHO_T}no, using $LN_S" >&6; }
+ fi
+
+-case "$LN_S" in
+- /*) ;;
+- * ) LN_S=/bin/$LN_S ;;
+-esac
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix
new file mode 100644
index 000000000000..dc818e2fb868
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, zlib, tbb, python, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "bowtie2";
+ version = "2.3.5.1";
+
+ src = fetchFromGitHub {
+ owner = "BenLangmead";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1l1f0yhjqqvy4lpxfml1xwv7ayimwbpzazvp0281gb4jb5f5mr1a";
+ };
+
+ buildInputs = [ zlib tbb python perl ];
+
+ installFlags = [ "prefix=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "An ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences";
+ license = licenses.gpl3;
+ homepage = "http://bowtie-bio.sf.net/bowtie2";
+ maintainers = with maintainers; [ rybern ];
+ platforms = platforms.all;
+ broken = stdenv.isAarch64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bppsuite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bppsuite/default.nix
new file mode 100644
index 000000000000..564a38708bcd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bppsuite/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, cmake, bpp-core, bpp-seq, bpp-phyl, bpp-popgen }:
+
+stdenv.mkDerivation rec {
+ pname = "bppsuite";
+
+ inherit (bpp-core) version;
+
+ src = fetchFromGitHub {
+ owner = "BioPP";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1wdwcgczqbc3m116vakvi0129wm3acln3cfc7ivqnalwvi6lrpds";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ bpp-core bpp-seq bpp-phyl bpp-popgen ];
+
+ meta = bpp-core.meta // {
+ changelog = "https://github.com/BioPP/bppsuite/blob/master/ChangeLog";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bwa/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
new file mode 100644
index 000000000000..10859d9e8c13
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "bwa";
+ version = "0.7.17";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/bio-bwa/${pname}-${version}.tar.bz2";
+ sha256 = "1zfhv2zg9v1icdlq4p9ssc8k01mca5d1bd87w71py2swfi74s6yy";
+ };
+
+ buildInputs = [ zlib ];
+
+ # Avoid hardcoding gcc to allow environments with a different
+ # C compiler to build
+ preConfigure = ''
+ sed -i '/^CC/d' Makefile
+ '';
+
+ # it's unclear which headers are intended to be part of the public interface
+ # so we may find ourselves having to add more here over time
+ installPhase = ''
+ install -vD -t $out/bin bwa
+ install -vD -t $out/lib libbwa.a
+ install -vD -t $out/include bntseq.h
+ install -vD -t $out/include bwa.h
+ install -vD -t $out/include bwamem.h
+ install -vD -t $out/include bwt.h
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A software package for mapping low-divergent sequences against a large reference genome, such as the human genome";
+ license = licenses.gpl3;
+ homepage = "http://bio-bwa.sourceforge.net/";
+ maintainers = with maintainers; [ luispedro ];
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix
new file mode 100644
index 000000000000..0db788b0f743
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, makeWrapper, zlib, perl, perlPackages }:
+
+stdenv.mkDerivation rec {
+ version = "4.8.1";
+ pname = "cd-hit";
+
+ src = fetchFromGitHub {
+ owner = "weizhongli";
+ repo = "cdhit";
+ rev = "V${version}";
+ sha256 = "032nva6iiwmw59gjipm1mv0xlcckhxsf45mc2qbnv19lbis0q22i";
+ };
+
+ propagatedBuildInputs = [ perl perlPackages.TextNSP perlPackages.PerlMagick perlPackages.Storable ];
+
+ nativeBuildInputs = [ zlib makeWrapper ];
+
+ makeFlags = [ "PREFIX=$(out)/bin" ];
+
+ preInstall = "mkdir -p $out/bin";
+
+ postFixup = ''
+ wrapProgram $out/bin/FET.pl --prefix PERL5LIB : $PERL5LIB
+ wrapProgram $out/bin/plot_2d.pl --prefix PERL5LIB : $PERL5LIB
+ wrapProgram $out/bin/clstr_list_sort.pl --prefix PERL5LIB : $PERL5LIB
+ '';
+ meta = with stdenv.lib; {
+ description = "Clustering and comparing protein or nucleotide sequences";
+ homepage = "http://weizhongli-lab.org/cd-hit/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix
new file mode 100644
index 000000000000..71cf87985376
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, argtable }:
+
+stdenv.mkDerivation rec {
+ version = "1.2.4";
+ pname = "clustal-omega";
+
+ src = fetchurl {
+ url = "http://www.clustal.org/omega/${pname}-${version}.tar.gz";
+ sha256 = "1vm30mzncwdv881vrcwg11vzvrsmwy4wg80j5i0lcfk6dlld50w6";
+ };
+
+ buildInputs = [ argtable ];
+
+ preConfigure = ''
+ for f in configure \
+ src/clustal-omega-config.h \
+ src/clustal-omega-config.h \
+ src/config.h.in \
+ src/mymain.c
+ do
+ sed -i -re 's/argtable2/argtable3/g' $f
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "General purpose multiple sequence alignment program for protein and DNA/RNA";
+ homepage = "http://www.clustal.org/omega/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
new file mode 100644
index 000000000000..41805c15aed5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, cmake}:
+
+stdenv.mkDerivation {
+ name = "cmtk-3.3.1";
+
+ src = fetchurl {
+ name = "cmtk-source.tar.gz";
+ url = "https://www.nitrc.org/frs/download.php/8198/CMTK-3.3.1-Source.tar.gz//?i_agree=1&download_now=1";
+ sha256 = "1nmsga9m7vcc4y4a6zl53ra3mwlgjwdgsq1j291awkn7zr1az6qs";
+ };
+
+ buildInputs = [cmake];
+
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing";
+
+ meta = with stdenv.lib; {
+ description = "Computational Morphometry Toolkit ";
+ longDescription = ''A software toolkit for computational morphometry of
+ biomedical images, CMTK comprises a set of command line tools and a
+ back-end general-purpose library for processing and I/O'';
+ maintainers = with maintainers; [ tbenst ];
+ platforms = platforms.all;
+ license = licenses.gpl3;
+ homepage = "https://www.nitrc.org/projects/cmtk/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix
new file mode 100644
index 000000000000..8fb8e17eef86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, coreutils, perlPackages, bicpl, libminc, zlib, minc_tools,
+ makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "conglomerate";
+ version = "unstable-2017-09-10";
+
+ src = fetchFromGitHub {
+ owner = "BIC-MNI";
+ repo = pname;
+ rev = "7343238bc6215942c7ecc885a224f24433a291b0";
+ sha256 = "1mlqgmy3jc13bv7d01rjwldxq0p4ayqic85xcl222hhifi3w2prr";
+ };
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+ buildInputs = [ libminc zlib bicpl ];
+ propagatedBuildInputs = [ coreutils minc_tools ] ++ (with perlPackages; [ perl GetoptTabular MNI-Perllib ]);
+
+ cmakeFlags = [
+ "-DLIBMINC_DIR=${libminc}/lib/cmake"
+ "-DBICPL_DIR=${bicpl}/lib"
+ ];
+
+ postFixup = ''
+ for p in $out/bin/*; do
+ wrapProgram $p --prefix PERL5LIB : $PERL5LIB --set PATH "${stdenv.lib.makeBinPath [ coreutils minc_tools ]}";
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/BIC-MNI/conglomerate";
+ description = "More command-line utilities for working with MINC files";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
new file mode 100644
index 000000000000..cfd1206f2314
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, libyamlcpp
+, git
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.0.20200331";
+ pname = "dcm2niix";
+
+ src = fetchFromGitHub {
+ owner = "rordenlab";
+ repo = "dcm2niix";
+ rev = "v${version}";
+ sha256 = "1cncfwhyhmg18n970lkn6yvp0i74ajznsl8dqz00asqfzmg681n1";
+ };
+
+ enableParallelBuilding = true;
+ nativeBuildInputs = [ cmake git ];
+ buildInputs = [ libyamlcpp ];
+
+ meta = with stdenv.lib; {
+ description = "DICOM to NIfTI converter";
+ longDescription = ''
+ dcm2niix is a designed to convert neuroimaging data from the
+ DICOM format to the NIfTI format.
+ '';
+ homepage = "https://www.nitrc.org/projects/dcm2nii";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.ashgillman ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix
new file mode 100644
index 000000000000..2621c5bbf037
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix
@@ -0,0 +1,42 @@
+{ lib, python, fetchFromGitHub }:
+with python.pkgs;
+buildPythonApplication rec {
+ pname = "deepTools";
+ version = "3.5.0";
+
+ src = fetchFromGitHub {
+ owner = "deeptools";
+ repo = "deepTools";
+ rev = version;
+ sha256 = "1bz8ln32mfc9k8l9wgp034vw80dxh6f92dfqxhcrpggk4akwj6ml";
+ };
+
+ propagatedBuildInputs = [
+ numpy
+ numpydoc
+ scipy
+ py2bit
+ pybigwig
+ pysam
+ matplotlib
+ plotly
+ deeptoolsintervals
+ ];
+
+ checkInputs = [ nose ];
+
+ meta = with lib; {
+ homepage = "https://deeptools.readthedocs.io/en/develop";
+ description = "Tools for exploring deep DNA sequencing data";
+ longDescription = ''
+ deepTools contains useful modules to process the mapped reads data for multiple
+ quality checks, creating normalized coverage files in standard bedGraph and bigWig
+ file formats, that allow comparison between different files (for example, treatment and control).
+ Finally, using such normalized and standardized files, deepTools can create many
+ publication-ready visualizations to identify enrichments and for functional
+ annotations of the genome.
+ '';
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ scalavision ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/delly/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/delly/default.nix
new file mode 100644
index 000000000000..6acdc53544c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/delly/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchpatch, fetchFromGitHub, htslib, zlib, bzip2, lzma, ncurses, boost }:
+
+stdenv.mkDerivation rec {
+ pname = "delly";
+ version = "0.8.5";
+
+ src = fetchFromGitHub {
+ owner = "dellytools";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1af1y20hd8x2yvix0gjvx038w7chf4fiyr68ny5yvrx5b2gw0vbq";
+ };
+
+ buildInputs = [ zlib htslib bzip2 lzma ncurses boost ];
+
+ EBROOTHTSLIB = htslib;
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm555 src/delly $out/bin/delly
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Structural variant caller for mapped DNA sequenced data";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ scalavision ];
+ platforms = platforms.linux;
+ longDescription = ''
+ Delly is an integrated structural variant (SV) prediction method
+ that can discover, genotype and visualize deletions, tandem duplications,
+ inversions and translocations at single-nucleotide resolution in
+ short-read massively parallel sequencing data. It uses paired-ends,
+ split-reads and read-depth to sensitively and accurately delineate
+ genomic rearrangements throughout the genome.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/diamond/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
new file mode 100644
index 000000000000..dd1e13ec7162
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, cmake, zlib }:
+
+stdenv.mkDerivation {
+ name = "diamond-0.8.36";
+
+ src = fetchurl {
+ url = "https://github.com/bbuchfink/diamond/archive/v0.8.36.tar.gz";
+ sha256 = "092smzzjcg51n3x4h84k52ijpz9m40ri838j9k2i463ribc3c8rh";
+ };
+
+ patches = [
+ ./diamond-0.8.36-no-warning.patch
+ ];
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ zlib ];
+
+ meta = with stdenv.lib; {
+ description = "Accelerated BLAST compatible local sequence aligner";
+ longDescription = ''
+ A sequence aligner for protein and translated DNA
+ searches and functions as a drop-in replacement for the NCBI BLAST
+ software tools. It is suitable for protein-protein search as well as
+ DNA-protein search on short reads and longer sequences including contigs
+ and assemblies, providing a speedup of BLAST ranging up to x20,000.
+
+ DIAMOND is developed by Benjamin Buchfink. Feel free to contact him for support (Email Twitter).
+
+ If you use DIAMOND in published research, please cite
+ B. Buchfink, Xie C., D. Huson,
+ "Fast and sensitive protein alignment using DIAMOND",
+ Nature Methods 12, 59-60 (2015).
+ '';
+ homepage = "https://github.com/bbuchfink/diamond";
+ license = {
+ fullName = "University of Tuebingen, Benjamin Buchfink";
+ url = "https://raw.githubusercontent.com/bbuchfink/diamond/master/src/COPYING";
+ };
+ maintainers = [ maintainers.metabar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/diamond/diamond-0.8.36-no-warning.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/diamond/diamond-0.8.36-no-warning.patch
new file mode 100644
index 000000000000..a16d475c5564
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/diamond/diamond-0.8.36-no-warning.patch
@@ -0,0 +1,20 @@
+diff -u -r diamond-0.8.36/src/dp/scalar_traceback.h diamond-0.8.36-patched/src/dp/scalar_traceback.h
+--- diamond-0.8.36/src/dp/scalar_traceback.h 2017-02-06 16:32:05.000000000 +0100
++++ diamond-0.8.36-patched/src/dp/scalar_traceback.h 2017-02-23 15:13:24.000000000 +0100
+@@ -19,6 +19,7 @@
+ #ifndef SCALAR_TRACEBACK_H_
+ #define SCALAR_TRACEBACK_H_
+
++#include <cmath>
+ #include <exception>
+ #include "../basic/score_matrix.h"
+
+@@ -31,7 +32,7 @@
+ template<>
+ inline bool almost_equal<float>(float x, float y)
+ {
+- return abs(x - y) < 0.001f;
++ return std::abs(x - y) < 0.001f;
+ }
+
+ template<typename _score>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix
new file mode 100644
index 000000000000..2e744c7b2b9e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, gcc, zlib, python27 }:
+
+stdenv.mkDerivation rec {
+ name = "ecopcr-0.8.0";
+
+ src = fetchurl {
+ url = "https://git.metabarcoding.org/obitools/ecopcr/uploads/6f37991b325c8c171df7e79e6ae8d080/${name}.tar.gz";
+ sha256 = "10c58hj25z78jh0g3zcbx4890yd2qrvaaanyx8mn9p49mmyf5pk6";
+ };
+
+ sourceRoot = "ecoPCR/src";
+
+ buildInputs = [ gcc python27 zlib ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -v ecoPCR $out/bin
+ cp -v ecogrep $out/bin
+ cp -v ecofind $out/bin
+ cp -v ../tools/ecoPCRFormat.py $out/bin/ecoPCRFormat
+ chmod a+x $out/bin/ecoPCRFormat
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Electronic PCR software tool";
+ longDescription = ''
+ ecoPCR is an electronic PCR software developed by the LECA. It
+ helps you estimate Barcode primers quality. In conjunction with
+ OBITools, you can postprocess ecoPCR output to compute barcode
+ coverage and barcode specificity. New barcode primers can be
+ developed using the ecoPrimers software.
+ '';
+ homepage = "https://git.metabarcoding.org/obitools/ecopcr/wikis/home";
+ license = licenses.cecill20;
+ maintainers = [ maintainers.metabar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix
new file mode 100644
index 000000000000..3ef52e543933
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, fetchpatch, makeWrapper, python27Packages, wget, diamond, hmmer }:
+
+python27Packages.buildPythonApplication rec {
+ pname = "eggnog-mapper";
+ version = "1.0.3";
+
+ src = fetchFromGitHub {
+ owner = "eggnogdb";
+ repo = "eggnog-mapper";
+ rev = version;
+ sha256 = "1aaaflppy84bhkh2hb5gnzm4xgrz0rz0cgfpadr9w8cva8p0sqdv";
+ };
+
+ patches = (fetchpatch {
+ url = "https://github.com/eggnogdb/eggnog-mapper/commit/6972f601ade85b65090efca747d2302acb58507f.patch";
+ sha256 = "0abnmn0bh11jihf5d3cggiild1ykawzv5f5fhb4cyyi8fvy4hcxf";
+ });
+
+ buildInputs = [ makeWrapper ];
+ propagatedBuildInputs = [ python27Packages.biopython wget diamond hmmer ];
+
+ # make emapper find diamond & hmmer
+ makeWrapperArgs = [
+ ''--prefix PATH ':' "${diamond}/bin"''
+ ''--prefix PATH ':' "${hmmer}/bin"''
+ ];
+
+ # Tests rely on some of the databases being available, which is not bundled
+ # with this package as (1) in total, they represent >100GB of data, and (2)
+ # the user can download only those that interest them.
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Fast genome-wide functional annotation through orthology assignment";
+ license = licenses.gpl2;
+ homepage = "https://github.com/eggnogdb/eggnog-mapper/wiki";
+ maintainers = with maintainers; [ luispedro ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/emboss/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
new file mode 100644
index 000000000000..2eeb17520f20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, readline, perl, libharu, libX11, libpng, libXt, zlib}:
+
+stdenv.mkDerivation {
+ name = "emboss-6.6.0";
+ src = fetchurl {
+ url = "ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-6.6.0.tar.gz";
+ sha256 = "7184a763d39ad96bb598bfd531628a34aa53e474db9e7cac4416c2a40ab10c6e";
+ };
+
+ buildInputs = [ readline perl libharu libpng libX11 libXt zlib ];
+
+ configureFlags = [ "--with-hpdf=${libharu}" "--with-pngdriver=${zlib}" ];
+
+ postConfigure = ''
+ sed -i 's@$(bindir)/embossupdate@true@' Makefile
+ '';
+
+ meta = {
+ description = "The European Molecular Biology Open Software Suite";
+ longDescription = ''EMBOSS is a free Open Source software analysis package
+ specially developed for the needs of the molecular biology (e.g. EMBnet)
+ user community, including libraries. The software automatically copes with
+ data in a variety of formats and even allows transparent retrieval of
+ sequence data from the web.'';
+ license = stdenv.lib.licenses.gpl2;
+ homepage = "http://emboss.sourceforge.net/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
new file mode 100644
index 000000000000..1b15c06c670a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, gsl }:
+
+stdenv.mkDerivation rec {
+ pname = "est-sfs";
+ version = "2.03";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/est-usfs/${pname}-release-${version}.tar.gz";
+ sha256 = "1hvamrgagz0xi89w8qafyd9mjrdpyika8zm22drddnjkp4sdj65n";
+ };
+
+ buildInputs = [ gsl ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/doc/${pname}
+ cp est-sfs $out/bin
+ cp est-sfs-documentation.pdf $out/share/doc/${pname}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/projects/est-usfs";
+ description = "Estimate the unfolded site frequency spectrum and ancestral states";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/exonerate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/exonerate/default.nix
new file mode 100644
index 000000000000..b2c49ab00767
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/exonerate/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, glib, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ version = "2.4.0";
+ pname = "exonerate";
+
+ src = fetchurl {
+ url = "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/${pname}-${version}.tar.gz";
+ sha256 = "0hj0m9xygiqsdxvbg79wq579kbrx1mdrabi2bzqz2zn9qwfjcjgq";
+ };
+
+ doCheck = true;
+
+ buildInputs = [ glib ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with stdenv.lib; {
+ description = "Generic tool for sequence alignment";
+ homepage = "https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.unix ;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix
new file mode 100644
index 000000000000..bd80df56cb90
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, zlib, bzip2, lzma }:
+
+stdenv.mkDerivation rec {
+ pname = "freebayes";
+ version = "1.3.1";
+
+ src = fetchFromGitHub {
+ name = "freebayes-${version}-src";
+ owner = "ekg";
+ repo = "freebayes";
+ rev = "v${version}";
+ sha256 = "035nriknjqq8gvil81vvsmvqwi35v80q8h1cw24vd1gdyn1x7bys";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [ zlib bzip2 lzma ];
+
+ installPhase = ''
+ install -vD bin/freebayes bin/bamleftalign scripts/* -t $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Bayesian haplotype-based polymorphism discovery and genotyping";
+ license = licenses.mit;
+ homepage = "https://github.com/ekg/freebayes";
+ maintainers = with maintainers; [ jdagilliland ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix
new file mode 100644
index 000000000000..e641489b86c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix
@@ -0,0 +1,46 @@
+{stdenv, fetchFromGitHub, unzip, which, python3, perl}:
+
+stdenv.mkDerivation rec {
+ pname = "hisat2";
+ version = "2.2.1";
+
+ src = fetchFromGitHub {
+ owner = "DaehwanKimLab";
+ repo = "hisat2";
+ rev = "v${version}";
+ sha256 = "0lmzdhzjkvxw7n5w40pbv5fgzd4cz0f9pxczswn3d4cr0k10k754";
+ };
+
+ nativeBuildInputs = [ unzip which ];
+ buildInputs = [ python3 perl ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp hisat2 \
+ hisat2-inspect-l \
+ hisat2-build-s \
+ hisat2-align-l \
+ hisat2-inspect \
+ hisat2-align-s \
+ hisat2-inspect-s \
+ hisat2-build-l \
+ hisat2-build \
+ extract_exons.py \
+ extract_splice_sites.py \
+ hisat2_extract_exons.py \
+ hisat2_extract_snps_haplotypes_UCSC.py \
+ hisat2_extract_snps_haplotypes_VCF.py \
+ hisat2_extract_splice_sites.py \
+ hisat2_simulate_reads.py \
+ $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Graph based aligner";
+ license = licenses.gpl3;
+ homepage = "https://ccb.jhu.edu/software/hisat2/index.shtml";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
new file mode 100644
index 000000000000..3b1420a18819
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ version = "3.3.2";
+ pname = "hmmer";
+
+ src = fetchurl {
+ url = "http://eddylab.org/software/hmmer/${pname}-${version}.tar.gz";
+ sha256 = "0s9wf6n0qanbx8qs6igfl3vyjikwbrvh4d9d6mv54yp3xysykzlj";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Biosequence analysis using profile hidden Markov models";
+ longDescription = ''
+ HMMER is used for searching sequence databases for sequence homologs, and for making sequence alignments. It implements methods using probabilistic models called profile hidden Markov models (profile HMMs).
+ HMMER is often used together with a profile database, such as Pfam or many of the databases that participate in Interpro. But HMMER can also work with query sequences, not just profiles, just like BLAST. For example, you can search a protein query sequence against a database with phmmer, or do an iterative search with jackhmmer.
+ HMMER is designed to detect remote homologs as sensitively as possible, relying on the strength of its underlying probability models. In the past, this strength came at significant computational expense, but as of the new HMMER3 project, HMMER is now essentially as fast as BLAST.
+ HMMER can be downloaded and installed as a command line tool on your own hardware, and now it is also more widely accessible to the scientific community via new search servers at the European Bioinformatics Institute.
+ '';
+ homepage = "http://hmmer.org/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.iimog ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/igv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/igv/default.nix
new file mode 100644
index 000000000000..3f9cb1a288b3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/igv/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip, jdk11 }:
+
+stdenv.mkDerivation rec {
+ pname = "igv";
+ version = "2.8.13";
+ src = fetchzip {
+ url = "https://data.broadinstitute.org/igv/projects/downloads/2.8/IGV_${version}.zip";
+ sha256 = "0sab478jq96iw3fv0560hrrj8qbh40r8m4ncypdb7991j9haxl09";
+ };
+
+ installPhase = ''
+ mkdir -pv $out/{share,bin}
+ cp -Rv * $out/share/
+
+ sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igv.sh
+ sed -i 's#java#${jdk11}/bin/java#g' $out/share/igv.sh
+
+ sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igvtools
+ sed -i 's#java#${jdk11}/bin/java#g' $out/share/igvtools
+
+ ln -s $out/share/igv.sh $out/bin/igv
+ ln -s $out/share/igvtools $out/bin/igvtools
+
+ chmod +x $out/bin/igv
+ chmod +x $out/bin/igvtools
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.broadinstitute.org/igv/";
+ description = "A visualization tool for interactive exploration of genomic datasets";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.mimame ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix
new file mode 100644
index 000000000000..e6293bb90ef3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper,
+ perlPackages,
+ libminc, EBTKS }:
+
+stdenv.mkDerivation rec {
+ pname = "inormalize";
+ name = "${pname}-2014-10-21";
+
+ src = fetchFromGitHub {
+ owner = "BIC-MNI";
+ repo = pname;
+ rev = "79cea9cdfe7b99abfd40afda89ab2253b596ad2f";
+ sha256 = "1ahqv5q0ljvji99a5q8azjkdf6bgp6nr8lwivkqwqs3jm0k5clq7";
+ };
+
+ patches = [ ./lgmask-interp.patch ./nu_correct_norm-interp.patch ];
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+ buildInputs = [ libminc EBTKS ];
+ propagatedBuildInputs = with perlPackages; [ perl GetoptTabular MNI-Perllib ];
+
+ cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" "-DEBTKS_DIR=${EBTKS}/lib/" ];
+
+ postFixup = ''
+ for p in $out/bin/*; do
+ wrapProgram $p --prefix PERL5LIB : $PERL5LIB
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/BIC-MNI/${pname}";
+ description = "Program to normalize intensity of MINC files";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch
new file mode 100644
index 000000000000..953bce9a1848
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch
@@ -0,0 +1,10 @@
+diff --git a/lgmask.in b/lgmask.in
+index 17dbe4d..2195d91 100644
+--- a/lgmask.in
++++ b/lgmask.in
+@@ -1,4 +1,4 @@
+-#! @PERL@
++#! /usr/bin/env perl
+
+ #---------------------------------------------------------------------------
+ #@COPYRIGHT :
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch
new file mode 100644
index 000000000000..75dc46a799ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch
@@ -0,0 +1,10 @@
+diff --git a/nu_correct_norm.in b/nu_correct_norm.in
+index 1dc84ac..1bc6235 100644
+--- a/nu_correct_norm.in
++++ b/nu_correct_norm.in
+@@ -1,4 +1,4 @@
+-#! @PERL@
++#! /usr/bin/perl
+
+ #---------------------------------------------------------------------------
+ #@COPYRIGHT :
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/itsx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
new file mode 100644
index 000000000000..6f66cfc9cc37
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, hmmer, perl }:
+
+stdenv.mkDerivation rec {
+ version = "1.1.1";
+ pname = "itsx";
+
+ src = fetchurl {
+ url = "http://microbiology.se/sw/ITSx_${version}.tar.gz";
+ sha256 = "0lrmy2n3ax7f208k0k8l3yz0j5cpz05hv4hx1nnxzn0c51z1pc31";
+ };
+
+ buildInputs = [ hmmer perl ];
+
+ buildPhase = ''
+ sed -e "s,profileDB = .*,profileDB = \"$out/share/ITSx_db/HMMs\";," -i ITSx
+ sed "3 a \$ENV{\'PATH\'}='${hmmer}/bin:'.\"\$ENV{\'PATH\'}\";" -i ITSx
+ mkdir bin
+ mv ITSx bin
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/doc && cp -a bin $out/
+ cp *pdf $out/share/doc
+ cp -r ITSx_db $out/share
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Improved software detection and extraction of ITS1 and ITS2 from ribosomal ITS sequences of fungi and other eukaryotes for use in environmental sequencing";
+ homepage = "https://microbiology.se/software/itsx/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/iv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/iv/default.nix
new file mode 100644
index 000000000000..82fe36940081
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/iv/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, neuron-version
+, libX11, libXext, patchelf
+}:
+
+stdenv.mkDerivation rec
+ { name = "iv-19";
+ src = fetchurl
+ { url = "https://www.neuron.yale.edu/ftp/neuron/versions/v${neuron-version}/${name}.tar.gz";
+ sha256 = "07a3g8zzay4h0bls7fh89dd0phn7s34c2g15pij6dsnwpmjg06yx";
+ };
+ nativeBuildInputs = [ patchelf ];
+ buildInputs = [ libXext ];
+ propagatedBuildInputs = [ libX11 ];
+ hardeningDisable = [ "format" ];
+ postInstall = ''
+ for dir in $out/*; do # */
+ if [ -d $dir/lib ]; then
+ mv $dir/* $out # */
+ rmdir $dir
+ break
+ fi
+ done
+ '' + stdenv.lib.optionalString stdenv.isLinux ''
+ patchelf --add-needed ${libX11}/lib/libX11.so $out/lib/libIVhines.so
+ '';
+ meta = with stdenv.lib;
+ { description = "InterViews graphical library for Neuron";
+ license = licenses.bsd3;
+ homepage = "http://www.neuron.yale.edu/neuron";
+ platforms = platforms.all;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
new file mode 100644
index 000000000000..014ae14cc794
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoconf, cmake, hdf5, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "kallisto";
+ version = "0.46.2";
+
+ src = fetchFromGitHub {
+ repo = "kallisto";
+ owner = "pachterlab";
+ rev = "v${version}";
+ sha256 = "0m0r2820ca3rch99md1zzbgkilmlfkhdkpys2lfnb87qxmf1jnmb";
+ };
+
+ nativeBuildInputs = [ autoconf cmake ];
+
+ buildInputs = [ hdf5 zlib ];
+
+ cmakeFlags = [ "-DUSE_HDF5=ON" ];
+
+ # Parallel build fails in some cases: https://github.com/pachterlab/kallisto/issues/160
+ enableParallelBuilding = false;
+
+ meta = with stdenv.lib; {
+ description = "Program for quantifying abundances of transcripts from RNA-Seq data";
+ homepage = "https://pachterlab.github.io/kallisto";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ arcadio ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/kent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/kent/default.nix
new file mode 100644
index 000000000000..2ca5ad191d92
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/kent/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, libpng
+, libuuid
+, zlib
+, bzip2
+, lzma
+, openssl
+, curl
+, libmysqlclient
+, bash
+, fetchFromGitHub
+, which
+}:
+stdenv.mkDerivation rec {
+ pname = "kent";
+ version = "404";
+
+ src = fetchFromGitHub {
+ owner = "ucscGenomeBrowser";
+ repo = pname;
+ rev = "v${version}_base";
+ sha256 = "0l5lmqqc6sqkf4hyk3z4825ly0vdlj5xdfad6zd0708cb1v81nbx";
+ };
+
+ buildInputs = [ libpng libuuid zlib bzip2 lzma openssl curl libmysqlclient ];
+
+ patchPhase = ''
+ substituteInPlace ./src/checkUmask.sh \
+ --replace "/bin/bash" "${bash}/bin/bash"
+
+ substituteInPlace ./src/hg/sqlEnvTest.sh \
+ --replace "which mysql_config" "${which}/bin/which ${libmysqlclient}/bin/mysql_config"
+ '';
+
+ buildPhase = ''
+ export MACHTYPE=$(uname -m)
+ export CFLAGS="-fPIC"
+ export MYSQLINC=$(mysql_config --include | sed -e 's/^-I//g')
+ export MYSQLLIBS=$(mysql_config --libs)
+ export DESTBINDIR=$NIX_BUILD_TOP/bin
+ export HOME=$NIX_BUILD_TOP
+
+ cd ./src
+ chmod +x ./checkUmask.sh
+ ./checkUmask.sh
+
+ mkdir -p $NIX_BUILD_TOP/lib
+ mkdir -p $NIX_BUILD_TOP/bin/x86_64
+
+ make libs
+ cd jkOwnLib
+ make
+
+ cp ../lib/x86_64/jkOwnLib.a $NIX_BUILD_TOP/lib
+ cp ../lib/x86_64/jkweb.a $NIX_BUILD_TOP/lib
+
+ cd ../utils
+ make
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/lib
+ cp $NIX_BUILD_TOP/lib/jkOwnLib.a $out/lib
+ cp $NIX_BUILD_TOP/lib/jkweb.a $out/lib
+ cp $NIX_BUILD_TOP/bin/x86_64/* $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "UCSC Genome Bioinformatics Group's suite of biological analysis tools, i.e. the kent utilities";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ scalavision ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/kssd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/kssd/default.nix
new file mode 100644
index 000000000000..621a8ce15765
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/kssd/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, zlib, automake, autoconf, libtool }:
+
+stdenv.mkDerivation rec {
+ pname = "kssd";
+ version = "1.1";
+
+ src = fetchurl {
+ url = "https://github.com/yhg926/public_${pname}/archive/v${version}.tar.gz";
+ sha256 = "1x3v31cxnww4w5zn15vy0bwk53llsa0f97ma6qbw89h152d2mx5x";
+ };
+
+ buildInputs = [ zlib automake autoconf libtool ];
+
+ installPhase = ''
+ install -vD kssd $out/bin/kssd
+ '';
+
+ meta = with stdenv.lib; {
+ description = "K-mer substring space decomposition";
+ license = licenses.asl20;
+ homepage = "https://github.com/yhg926/public_kssd";
+ maintainers = with maintainers; [ unode ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/last/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/last/default.nix
new file mode 100644
index 000000000000..0976e5a10802
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/last/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, unzip, zlib, python3, parallel }:
+
+stdenv.mkDerivation rec {
+ pname = "last";
+ version = "1145";
+
+ src = fetchurl {
+ url = "http://last.cbrc.jp/last-${version}.zip";
+ sha256 = "0g54nmxxrirgid1i1k5i6rf7vnjpk9548sy06yqb4fj7vdzqgq99";
+ };
+
+ nativeBuildInputs = [ unzip ];
+ buildInputs = [ zlib python3 ];
+
+ makeFlags = [ "prefix=${placeholder "out"}" ];
+
+ postFixup = ''
+ for f in $out/bin/parallel-* ; do
+ sed -i 's|parallel |${parallel}/bin/parallel |' $f
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Genomic sequence aligner";
+ homepage = "http://last.cbrc.jp/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/lumpy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/lumpy/default.nix
new file mode 100644
index 000000000000..f6267a2e017f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/lumpy/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, htslib, zlib, curl, openssl, samblaster, sambamba
+, samtools, hexdump, python2Packages, which }:
+
+let
+ python =
+ python2Packages.python.withPackages (pkgs: with pkgs; [ pysam numpy ]);
+
+in stdenv.mkDerivation rec {
+ pname = "lumpy";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "arq5x";
+ repo = "lumpy-sv";
+ rev = "v${version}";
+ sha256 = "0r71sg7qch8r6p6dw995znrqdj6q49hjdylhzbib2qmv8nvglhs9";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ which ];
+ buildInputs =
+ [ htslib zlib curl openssl python samblaster sambamba samtools hexdump ];
+
+ preConfigure = ''
+ patchShebangs ./.
+
+ # Use Nix htslib over bundled version
+ sed -i 's/lumpy_filter: htslib/lumpy_filter:/' Makefile
+ sed -i 's|../../lib/htslib/libhts.a|-lhts|' src/filter/Makefile
+ # Also make sure we use the includes from Nix's htslib
+ sed -i 's|../../lib/htslib/|${htslib}|' src/filter/Makefile
+ '';
+
+ # Upstream's makefile doesn't have an install target
+ installPhase = ''
+ mkdir -p $out
+ cp -r bin $out
+ cp -r scripts $out
+ sed -i 's|/build/source|'$out'|' $out/bin/lumpyexpress.config
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Probabilistic structural variant caller";
+ homepage = "https://github.com/arq5x/lumpy-sv";
+ maintainers = with maintainers; [ jbedo ];
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/macse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/macse/default.nix
new file mode 100644
index 000000000000..59938addbe82
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/macse/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "macse";
+ version = "2.03";
+
+ src = fetchurl {
+ url = "https://bioweb.supagro.inra.fr/${pname}/releases/${pname}_v${version}.jar";
+ sha256 = "0jnjyz4f255glg37rawzdv4m6nfs7wfwc5dny7afvx4dz2sv4ssh";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+ unpackPhase = ":";
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/share/java
+ cp -s $src $out/share/java/macse.jar
+ makeWrapper ${jre}/bin/java $out/bin/macse --add-flags "-jar $out/share/java/macse.jar"
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Multiple alignment of coding sequences";
+ homepage = "https://bioweb.supagro.inra.fr/macse/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/manta/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/manta/default.nix
new file mode 100644
index 000000000000..f0f0575e055a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/manta/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, zlib, python2 }:
+
+stdenv.mkDerivation rec {
+ pname = "manta";
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "Illumina";
+ repo = "manta";
+ rev = "v${version}";
+ sha256 = "1711xkcw8rpw9xv3bbm7v1aryjz4r341rkq5255192dg38sgq7w2";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ zlib python2 ];
+ postFixup = ''
+ sed -i 's|/usr/bin/env python2|${python2.interpreter}|' $out/lib/python/makeRunScript.py
+ sed -i 's|/usr/bin/env python|${python2.interpreter}|' $out/lib/python/pyflow/pyflow.py
+ sed -i 's|/bin/bash|${stdenv.shell}|' $out/lib/python/pyflow/pyflowTaskWrapper.py
+ '';
+ doInstallCheck = true;
+ installCheckPhase = ''
+ rm $out/lib/python/**/*.pyc
+ PYTHONPATH=$out/lib/python:$PYTHONPATH python -c 'import makeRunScript'
+ PYTHONPATH=$out/lib/python/pyflow:$PYTHONPATH python -c 'import pyflowTaskWrapper; import pyflow'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Structural variant caller";
+ license = licenses.gpl3;
+ homepage = "https://github.com/Illumina/manta";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/megahit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/megahit/default.nix
new file mode 100644
index 000000000000..35ef280ed676
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/megahit/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "megahit";
+ version = "1.2.9";
+
+ src = fetchFromGitHub {
+ owner = "voutcn";
+ repo = "megahit";
+ rev = "v${version}";
+ sha256 = "1r5d9nkdmgjsbrpj43q9hy3s8jwsabaz3ji561v18hy47v58923c";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ zlib ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "An ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph";
+ license = licenses.gpl3;
+ homepage = "https://github.com/voutcn/megahit";
+ maintainers = with maintainers; [ luispedro ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix
new file mode 100644
index 000000000000..201e38cfc538
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, cmake, gcc, gcc-unwrapped }:
+
+stdenv.mkDerivation rec {
+ version = "3.2.1";
+ pname = "messer-slim";
+
+ src = fetchurl {
+ url = "https://github.com/MesserLab/SLiM/archive/v${version}.tar.gz";
+ sha256 = "1j3ssjvxpsc21mmzj59kwimglz8pdazi5w6wplmx11x744k77wa1";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ cmake gcc gcc-unwrapped ];
+
+ cmakeFlags = [ "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
+ "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib" ];
+
+ meta = {
+ description = "An evolutionary simulation framework";
+ homepage = "https://messerlab.org/slim/";
+ license = with stdenv.lib.licenses; [ gpl3 ];
+ maintainers = with stdenv.lib.maintainers; [ bzizou ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/migrate/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/migrate/default.nix
new file mode 100644
index 000000000000..0e2aa1c1a791
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/migrate/default.nix
@@ -0,0 +1,24 @@
+{ gccStdenv, fetchurl, zlib, openmpi }:
+
+gccStdenv.mkDerivation rec {
+ version = "3.7.2";
+ pname = "migrate";
+
+ src = fetchurl {
+ url = "https://peterbeerli.com/migrate-html5/download_version3/${pname}-${version}.src.tar.gz";
+ sha256 = "1p2364ffjc56i82snzvjpy6pkf6wvqwvlvlqxliscx2c303fxs8v";
+ };
+
+ buildInputs = [ zlib openmpi ];
+ setSourceRoot = ''sourceRoot=$(echo */src)'';
+ buildFlags = [ "thread" "mpis" ];
+ preInstall = "mkdir -p $out/man/man1";
+
+ meta = with gccStdenv.lib; {
+ description = "Estimates population size, migration, population splitting parameters using genetic/genomic data";
+ homepage = "https://peterbeerli.com/migrate-html5/index.html";
+ license = licenses.mit;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix
new file mode 100644
index 000000000000..c594897f4b6f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, flex, bison, perl, TextFormat,
+ libminc, libjpeg, nifticlib, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "minc-tools";
+ version = "unstable-2020-07-25";
+
+ src = fetchFromGitHub {
+ owner = "BIC-MNI";
+ repo = pname;
+ rev = "fb0a68a07d281e4e099c5d54df29925240de14c1";
+ sha256 = "0zcv2sdj3k6k0xjqdq8j5bxq8smm48dzai90vwsmz8znmbbm6kvw";
+ };
+
+ nativeBuildInputs = [ cmake flex bison makeWrapper ];
+ buildInputs = [ libminc libjpeg nifticlib zlib ];
+ propagatedBuildInputs = [ perl TextFormat ];
+
+ cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake"
+ "-DZNZ_INCLUDE_DIR=${nifticlib}/include/nifti"
+ "-DNIFTI_INCLUDE_DIR=${nifticlib}/include/nifti" ];
+
+ postFixup = ''
+ for prog in minccomplete minchistory mincpik; do
+ wrapProgram $out/bin/$prog --prefix PERL5LIB : $PERL5LIB
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/BIC-MNI/minc-tools";
+ description = "Command-line utilities for working with MINC files";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix
new file mode 100644
index 000000000000..497c39a52a4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper,
+ perlPackages,
+ libminc, octave, coreutils, minc_tools }:
+
+stdenv.mkDerivation rec {
+ pname = "minc-widgets";
+ name = "${pname}-2016-04-20";
+
+
+ src = fetchFromGitHub {
+ owner = "BIC-MNI";
+ repo = pname;
+ rev = "f08b643894c81a1a2e0fbfe595a17a42ba8906db";
+ sha256 = "1b9g6lf37wpp211ikaji4rf74rl9xcmrlyqcw1zq3z12ji9y33bm";
+ };
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+ buildInputs = [ libminc ];
+ propagatedBuildInputs = (with perlPackages; [ perl GetoptTabular MNI-Perllib ]) ++ [ octave coreutils minc_tools ];
+
+ postFixup = ''
+ for p in $out/bin/*; do
+ wrapProgram $p --prefix PERL5LIB : $PERL5LIB --set PATH "${stdenv.lib.makeBinPath [ coreutils minc_tools ]}";
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/BIC-MNI/${pname}";
+ description = "Collection of Perl and shell scripts for processing MINC files";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minia/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minia/default.nix
new file mode 100644
index 000000000000..2a80de733b08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minia/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, hdf5, boost }:
+
+stdenv.mkDerivation rec {
+ pname = "minia";
+ version = "3.2.1";
+
+ src = fetchFromGitHub {
+ owner = "GATB";
+ repo = "minia";
+ rev = "v${version}";
+ sha256 = "0bmfrywixaaql898l0ixsfkhxjf2hb08ssnqzlzacfizxdp46siq";
+ fetchSubmodules = true;
+ };
+
+ patches = [ ./no-bundle.patch ];
+
+ NIX_CFLAGS_COMPILE = [ "-Wformat" ];
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ hdf5 boost ];
+
+ prePatch = ''
+ rm -rf thirdparty/gatb-core/gatb-core/thirdparty/{hdf5,boost}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Short read genome assembler";
+ homepage = "https://github.com/GATB/minia";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ jbedo ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minia/no-bundle.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minia/no-bundle.patch
new file mode 100644
index 000000000000..21d12c7f6f2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minia/no-bundle.patch
@@ -0,0 +1,222 @@
+diff --git a/thirdparty/gatb-core/gatb-core/CMakeLists.txt b/thirdparty/gatb-core/gatb-core/CMakeLists.txt
+index f48a70b..0e11ece 100644
+--- a/thirdparty/gatb-core/gatb-core/CMakeLists.txt
++++ b/thirdparty/gatb-core/gatb-core/CMakeLists.txt
+@@ -257,7 +257,6 @@ ADD_SUBDIRECTORY(thirdparty)
+ # DEPENDENCIES
+ ################################################################################
+ # we must be sure that hdf5 is built and installed before building gatb-core
+-ADD_DEPENDENCIES (gatbcore-static hdf5 hdf5_postbuild)
+
+ ################################################################################
+ # DOCUMENTATION GENERATION
+@@ -288,7 +287,6 @@ IF (NOT DEFINED GATB_CORE_INSTALL_EXCLUDE)
+ INSTALL (FILES ${PROJECT_SOURCE_DIR}/doc/misc/README.txt DESTINATION . OPTIONAL)
+ INSTALL (FILES ${PROJECT_SOURCE_DIR}/LICENCE DESTINATION . OPTIONAL)
+ INSTALL (FILES ${PROJECT_SOURCE_DIR}/THIRDPARTIES.md DESTINATION . OPTIONAL)
+- INSTALL (DIRECTORY ${PROJECT_SOURCE_DIR}/thirdparty/boost DESTINATION ./include)
+ ENDIF()
+
+ ################################################################################
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp
+index dfeee1c..d5553a2 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp
+@@ -35,7 +35,7 @@
+ #include <stdint.h>
+ #include <algorithm>
+ #include <iostream>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ #include <gatb/system/api/Exception.hpp>
+ #include <gatb/system/api/config.hpp>
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp
+index 60be5d5..25ae75e 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp
+@@ -33,7 +33,7 @@
+ /********************************************************************************/
+
+ #include <iostream>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp
+index 6a71bb0..b9205df 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp
+@@ -31,7 +31,7 @@
+ #include <iostream>
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ /********************************************************************************/
+ namespace gatb {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp
+index c22b892..62e6586 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp
+@@ -31,7 +31,7 @@
+ #include <iostream>
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ /********************************************************************************/
+ namespace gatb {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp
+index c06aaab..e0befba 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp
+@@ -31,7 +31,7 @@
+ #include <iostream>
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ extern const unsigned char revcomp_4NT[];
+ extern const unsigned char comp_NT [];
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp
+index 9659874..0c79ff6 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp
+@@ -31,7 +31,7 @@
+ #include <iostream>
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ /********************************************************************************/
+ namespace gatb {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp
+index 3cb84f8..cd5d382 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp
+@@ -31,7 +31,7 @@
+ /********************************************************************************/
+
+ #include <sys/types.h>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ /********************************************************************************/
+ namespace gatb {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp
+index b8f6c79..a040832 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp
+@@ -28,7 +28,7 @@
+
+ #include <gatb/system/api/ISmartPointer.hpp>
+ #include <gatb/tools/storage/impl/Storage.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ /********************************************************************************/
+ namespace gatb {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp
+index 2645abd..fad48c0 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp
+@@ -40,7 +40,7 @@
+ #include <string>
+ #include <vector>
+ #include <stdarg.h>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ /********************************************************************************/
+ namespace gatb {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp
+index a92b729..66d552f 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp
+@@ -40,7 +40,7 @@
+ #include <string>
+ #include <vector>
+ #include <stdarg.h>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+
+ /********************************************************************************/
+ namespace gatb {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp
+index 29e0949..0565cc4 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp
+@@ -33,7 +33,7 @@
+ #include <gatb/tools/storage/impl/CollectionHDF5.hpp>
+ #include <gatb/tools/storage/impl/CollectionHDF5Patch.hpp>
+ #include <gatb/system/impl/System.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ #include <sstream>
+
+ /********************************************************************************/
+diff --git a/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt b/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt
+index 6e0b5c4..34aef28 100644
+--- a/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt
++++ b/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt
+@@ -1,54 +1,3 @@
+-################################################################################
+-# HDF5 GENERATION
+-################################################################################
+-
+-#SET (HDF5_ENABLE_THREADSAFE ON)
+-#SET (H5_HAVE_THREADSAFE 1)
+-
+-########## MOMENTARY DEACTIVATED => CRASH ON MACOS TO BE INVESTIGATED ##########
+-SET (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools")
+-#SET (CMAKE_EXE_LINKER_FLAGS "-lpthread -lz")
+-
+-SET (HDF5_EXTERNALLY_CONFIGURED ON)
+-
+-#SET (HDF5_INSTALL_BIN_DIR ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})
+-#SET (HDF5_INSTALL_LIB_DIR ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
+-SET (HDF5_INSTALL_BIN_DIR bin)
+-SET (HDF5_INSTALL_LIB_DIR lib)
+-
+-SET (HDF5_INSTALL_INCLUDE_DIR ${PROJECT_BINARY_DIR}/include/${CMAKE_BUILD_TYPE}/hdf5)
+-SET (HDF5_INSTALL_DATA_DIR ${PROJECT_BINARY_DIR}/share/${CMAKE_BUILD_TYPE})
+-SET (HDF5_INSTALL_CMAKE_DIR ${PROJECT_BINARY_DIR}/share/${CMAKE_BUILD_TYPE})
+-
+-IF (NOT DEFINED GATB_CORE_INSTALL_EXCLUDE)
+- SET (HDF5_EXPORTED_TARGETS "gatb-hdf5")
+-ENDIF()
+-
+-IF (NOT DEFINED GATB_CORE_EXCLUDE_HDF5_ZLIB)
+- OPTION (HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON)
+-ENDIF()
+-
+-# We don't want warnings from HDF5 compilation
+-set (COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS} -w")
+-add_definitions (${COMPILE_DEFINITIONS})
+-
+-# add HDF5 generation
+-ADD_SUBDIRECTORY (hdf5)
+-
+-# We add a custom target for copying header files.
+-add_custom_target (hdf5_postbuild ALL)
+-
+-# We build the output directory
+-add_custom_command (TARGET hdf5_postbuild POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${HDF5_INSTALL_INCLUDE_DIR})
+-
+-# We define all the header files to be copied
+-file (GLOB headerfiles ${PROJECT_SOURCE_DIR}/thirdparty/hdf5/src/*.h ${PROJECT_BINARY_DIR}/thirdparty/hdf5/H5pubconf.h)
+-
+-# We copy each header file
+-foreach (header ${headerfiles})
+- add_custom_command (TARGET hdf5_postbuild POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${header} ${HDF5_INSTALL_INCLUDE_DIR} )
+-endforeach()
+-
+ # include other smaller libraries (json, Boophf)
+
+ add_custom_target (thirdparty_copy ALL)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix
new file mode 100644
index 000000000000..e33a17537910
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "minimap2";
+ version = "2.17";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "lh3";
+ rev = "v${version}";
+ sha256 = "0qdwlkib3aa6112372hdgvnvk86hsjjkhjar0p53pq4ajrr2cdlb";
+ };
+
+ buildInputs = [ zlib ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp minimap2 $out/bin
+ mkdir -p $out/share/man/man1
+ cp minimap2.1 $out/share/man/man1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A versatile pairwise aligner for genomic and spliced nucleotide sequences";
+ homepage = "https://lh3.github.io/minimap2";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.arcadio ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix
new file mode 100644
index 000000000000..40ec9e0de6d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, perlPackages, libminc }:
+
+stdenv.mkDerivation rec {
+ pname = "mni_autoreg";
+ version = "unstable-2017-09-22";
+
+ src = fetchFromGitHub {
+ owner = "BIC-MNI";
+ repo = pname;
+ rev = "ab99e29987dc029737785baebf24896ec37a2d76";
+ sha256 = "0axl069nv57vmb2wvqq7s9v3bfxwspzmk37bxm4973ai1irgppjq";
+ };
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+ buildInputs = [ libminc ];
+ propagatedBuildInputs = with perlPackages; [ perl GetoptTabular MNI-Perllib ];
+
+ cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" ];
+ # testing broken: './minc_wrapper: Permission denied' from Testing/ellipse0.mnc
+
+ postFixup = ''
+ for prog in autocrop mritoself mritotal xfmtool; do
+ echo $out/bin/$prog
+ wrapProgram $out/bin/$prog --prefix PERL5LIB : $PERL5LIB;
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/BIC-MNI/mni_autoreg";
+ description = "Tools for automated registration using the MINC image format";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix
new file mode 100644
index 000000000000..d2b05943f7ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix
@@ -0,0 +1,46 @@
+{stdenv, fetchFromGitHub, nim, htslib, pcre}:
+
+let
+ hts-nim = fetchFromGitHub {
+ owner = "brentp";
+ repo = "hts-nim";
+ rev = "v0.3.4";
+ sha256 = "0670phk1bq3l9j2zaa8i5wcpc5dyfrc0l2a6c21g0l2mmdczffa7";
+ };
+
+ docopt = fetchFromGitHub {
+ owner = "docopt";
+ repo = "docopt.nim";
+ rev = "v0.6.7";
+ sha256 = "1ga7ckg21fzwwvh26jp2phn2h3pvkn8g8sm13dxif33rp471bv37";
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "mosdepth";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "brentp";
+ repo = "mosdepth";
+ rev = "v${version}";
+ sha256 = "1kcrvamrafz1m0s7mlbhaay8jyg97l1w37p6syl36r2m1plmwxjd";
+ };
+
+ nativeBuildInputs = [ nim ];
+ buildInputs = [ htslib pcre ];
+
+ buildPhase = ''
+ HOME=$TMPDIR
+ nim -p:${hts-nim}/src -p:${docopt}/src c --nilseqs:on -d:release mosdepth.nim
+ '';
+
+ installPhase = "install -Dt $out/bin mosdepth";
+
+ meta = with stdenv.lib; {
+ description = "fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing";
+ license = licenses.mit;
+ homepage = "https://github.com/brentp/mosdepth";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrbayes/builder.sh b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrbayes/builder.sh
new file mode 100644
index 000000000000..5b3a54946fc9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrbayes/builder.sh
@@ -0,0 +1,9 @@
+# builder for mrbayes - note: only builds on Unix
+
+source $stdenv/setup
+
+tar xvfz $src
+cd mrbayes-*
+make
+mkdir -p $out/bin
+cp -v mb $out/bin
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
new file mode 100644
index 000000000000..0ebd14411216
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, readline}:
+
+stdenv.mkDerivation rec {
+ # FIXME: replace Makefile so we can build MPI & MAC support
+
+ name = "mrbayes-3.1.2";
+ src = fetchurl {
+ url = "mirror://sourceforge/mrbayes/${name}.tar.gz";
+ sha256 = "1x7j8ca5wjrqrxmcpvd375ydm3s2pbkzykv8xfhg1jc037g560n6";
+ };
+ builder = ./builder.sh;
+ buildInputs = [readline];
+
+ meta = with stdenv.lib; {
+ description = "Bayesian Inference of Phylogeny";
+ longDescription = ''
+ Bayesian inference of phylogeny is based upon a
+ quantity called the posterior probability distribution of trees, which is
+ the probability of a tree conditioned on the observations. The conditioning
+ is accomplished using Bayes's theorem. The posterior probability
+ distribution of trees is impossible to calculate analytically; instead,
+ MrBayes uses a simulation technique called Markov chain Monte Carlo (or
+ MCMC) to approximate the posterior probabilities of trees.
+ '';
+ license = licenses.gpl2;
+ homepage = "http://mrbayes.csit.fsu.edu/";
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix
new file mode 100644
index 000000000000..e0b122778d1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, lib, fetchFromGitHub, python, makeWrapper
+, eigen, fftw, libtiff, libpng, zlib, ants, bc
+, qt5, libGL, libGLU, libX11, libXext
+, withGui ? true }:
+
+stdenv.mkDerivation rec {
+ pname = "mrtrix";
+ version = "3.0.2";
+
+ src = fetchFromGitHub {
+ owner = "MRtrix3";
+ repo = "mrtrix3";
+ rev = version;
+ sha256 = "0p4d1230j6664rnb9l65cpyfj9ncbcm39yv1r9y77br9rkkv1za3";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ eigen makeWrapper ] ++ lib.optional withGui qt5.wrapQtAppsHook;
+
+ buildInputs = [
+ ants
+ python
+ fftw
+ libtiff
+ libpng
+ zlib
+ ] ++ lib.optionals withGui [
+ libGL
+ libGLU
+ libX11
+ libXext
+ qt5.qtbase
+ qt5.qtsvg
+ ];
+
+ installCheckInputs = [ bc ];
+
+ postPatch = ''
+ patchShebangs ./build ./configure ./run_tests ./bin/*
+
+ # patching interpreters before fixup is needed for tests:
+ patchShebangs ./bin/*
+ patchShebangs testing/binaries/data/vectorstats/*py
+
+ substituteInPlace ./run_tests \
+ --replace 'git submodule update --init $datadir >> $LOGFILE 2>&1' ""
+ '';
+
+ configurePhase = ''
+ export EIGEN_CFLAGS="-isystem ${eigen}/include/eigen3"
+ unset LD # similar to https://github.com/MRtrix3/mrtrix3/issues/1519
+ ./configure ${lib.optionalString (!withGui) "-nogui"};
+ '';
+
+ buildPhase = ''
+ ./build
+ (cd testing && ../build)
+ '';
+
+ installCheckPhase = ''
+ ./run_tests units
+ ./run_tests binaries
+
+ # can also `./run_tests scripts`, but this fails due to lack of FSL package
+ # (and there's no convenient way to disable individual tests)
+ '';
+ doInstallCheck = true;
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out
+ cp -ar lib $out/lib
+ cp -ar bin $out/bin
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ for prog in $out/bin/*; do
+ if [[ -x "$prog" ]]; then
+ wrapProgram $prog --prefix PATH : ${lib.makeBinPath [ ants ]}
+ fi
+ done
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/MRtrix3/mrtrix3";
+ description = "Suite of tools for diffusion imaging";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.linux;
+ license = licenses.mpl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/muscle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/muscle/default.nix
new file mode 100644
index 000000000000..7ed18349259e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/muscle/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ _name = "muscle";
+ name = "${_name}-${version}";
+ version = "3.8.31";
+
+ src = fetchurl {
+ url = "https://www.drive5.com/muscle/downloads${version}/${_name}${version}_src.tar.gz";
+ sha256 = "1b89z0x7h098g99g00nqadgjnb2r5wpi9s11b7ddffqkh9m9dia3";
+ };
+
+ patches = [
+ ./muscle-3.8.31-no-static.patch
+ ];
+
+ preBuild = ''
+ cd ./src/
+ patchShebangs mk
+ '';
+
+ installPhase = ''
+ install -vD muscle $out/bin/muscle
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A multiple sequence alignment method with reduced time and space complexity";
+ license = licenses.publicDomain;
+ homepage = "https://www.drive5.com/muscle/";
+ maintainers = [ maintainers.unode ];
+ # NOTE: Supposed to be compatible with darwin/intel & PPC but currently fails.
+ # Anyone with access to these platforms is welcome to give it a try
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/muscle/muscle-3.8.31-no-static.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/muscle/muscle-3.8.31-no-static.patch
new file mode 100644
index 000000000000..7f4b2129518d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/muscle/muscle-3.8.31-no-static.patch
@@ -0,0 +1,21 @@
+--- a/src/mk 2010-05-02 01:15:42.000000000 +0200
++++ b/src/mk 2018-01-27 17:07:23.539092748 +0100
+@@ -5,14 +5,14 @@
+ rm -f *.o muscle.make.stdout.txt muscle.make.stderr.txt
+ for CPPName in $CPPNames
+ do
+- echo $CPPName >> /dev/tty
++ echo $CPPName
+ g++ $ENV_GCC_OPTS -c -O3 -msse2 -mfpmath=sse -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 $CPPName.cpp -o $CPPName.o >> muscle.make.stdout.txt 2>> muscle.make.stderr.txt
+ done
+
+ LINK_OPTS=
+-if [ `uname -s` == Linux ] ; then
+- LINK_OPTS=-static
+-fi
++#if [ `uname -s` == Linux ] ; then
++# LINK_OPTS=-static
++#fi
+ g++ $LINK_OPTS $ENV_LINK_OPTS -g -o muscle $ObjNames >> muscle.make.stdout.txt 2>> muscle.make.stderr.txt
+ tail muscle.make.stderr.txt
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/ncbi-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/ncbi-tools/default.nix
new file mode 100644
index 000000000000..cc8ebf7f37d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/ncbi-tools/default.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchurl, cpio}:
+
+# The NCBI package only builds on 32bits - on 64bits it breaks because
+# of position dependent code. Debian packagers have written replacement
+# make files(!). Either we use these, or negotiate a version which can
+# be pushed upstream to NCBI.
+#
+# Another note: you may want the older and deprecated C-libs at ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools++/2008/Mar_17_2008/NCBI_C_Toolkit/ncbi_c--Mar_17_2008.tar.gz
+
+stdenv.mkDerivation rec {
+ name = "ncbi_tools";
+ ncbi_version = "Dec_31_2008";
+ src = fetchurl {
+ url = "ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools++/2008/${ncbi_version}/ncbi_cxx--${ncbi_version}.tar.gz";
+ sha256 = "1b2v0dcdqn3bysgdkj57sxmd6s0hc9wpnxssviz399g6plhxggbr";
+ };
+
+ configureFlags = [
+ "--without-debug"
+ "--with-bin-release"
+ "--with-dll"
+ "--without-static"
+ ];
+ buildInputs = [ cpio ];
+
+ meta = {
+ description = ''NCBI Bioinformatics toolbox (incl. BLAST)'';
+ longDescription = ''The NCBI Bioinformatics toolsbox, including command-line utilties, libraries and include files. No X11 support'';
+ homepage = "http://www.ncbi.nlm.nih.gov/IEB/ToolBox/";
+ license = "GPL";
+ priority = 5; # zlib.so gives a conflict with zlib
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/neuron/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/neuron/default.nix
new file mode 100644
index 000000000000..8cad5f466c5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/neuron/default.nix
@@ -0,0 +1,87 @@
+{ stdenv
+, fetchurl
+, pkgconfig
+, automake
+, autoconf
+, libtool
+, ncurses
+, readline
+, which
+, python ? null
+, mpi ? null
+, iv
+}:
+
+stdenv.mkDerivation rec {
+ pname = "neuron";
+ version = "7.5";
+
+ nativeBuildInputs = [ which pkgconfig automake autoconf libtool ];
+ buildInputs = [ ncurses readline python mpi iv ];
+
+ src = fetchurl {
+ url = "https://www.neuron.yale.edu/ftp/neuron/versions/v${version}/nrn-${version}.tar.gz";
+ sha256 = "0f26v3qvzblcdjg7isq0m9j2q8q7x3vhmkfllv8lsr3gyj44lljf";
+ };
+
+ patches = (stdenv.lib.optional (stdenv.isDarwin) [ ./neuron-carbon-disable.patch ]);
+
+ # With LLVM 3.8 and above, clang (really libc++) gets upset if you attempt to redefine these...
+ postPatch = stdenv.lib.optionalString stdenv.cc.isClang ''
+ substituteInPlace src/gnu/neuron_gnu_builtin.h \
+ --replace 'double abs(double arg);' "" \
+ --replace 'float abs(float arg);' "" \
+ --replace 'short abs(short arg);' "" \
+ --replace 'long abs(long arg);' ""
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ # we are darwin, but we don't have all the quirks the source wants to compensate for
+ substituteInPlace src/nrnpython/setup.py.in --replace 'readline="edit"' 'readline="readline"'
+ for f in src/nrnpython/*.[ch] ; do
+ substituteInPlace $f --replace "<Python/Python.h>" "<Python.h>"
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ ## neuron install by default everything under prefix/${host_arch}/*
+ ## override this to support nix standard file hierarchy
+ ## without issues: install everything under prefix/
+ preConfigure = ''
+ ./build.sh
+ export prefix="''${prefix} --exec-prefix=''${out}"
+ '';
+
+ configureFlags = with stdenv.lib;
+ [ "--with-readline=${readline}" "--with-iv=${iv}" ]
+ ++ optionals (python != null) [ "--with-nrnpython=${python.interpreter}" ]
+ ++ (if mpi != null then ["--with-mpi" "--with-paranrn"]
+ else ["--without-mpi"]);
+
+
+ postInstall = stdenv.lib.optionals (python != null) [ ''
+ ## standardise python neuron install dir if any
+ if [[ -d $out/lib/python ]]; then
+ mkdir -p ''${out}/${python.sitePackages}
+ mv ''${out}/lib/python/* ''${out}/${python.sitePackages}/
+ fi
+ ''];
+
+ propagatedBuildInputs = [ readline ncurses which libtool ];
+
+ meta = with stdenv.lib; {
+ description = "Simulation environment for empirically-based simulations of neurons and networks of neurons";
+
+ longDescription = "NEURON is a simulation environment for developing and exercising models of
+ neurons and networks of neurons. It is particularly well-suited to problems where
+ cable properties of cells play an important role, possibly including extracellular
+ potential close to the membrane), and where cell membrane properties are complex,
+ involving many ion-specific channels, ion accumulation, and second messengers";
+
+ license = licenses.bsd3;
+ homepage = "http://www.neuron.yale.edu/neuron";
+ maintainers = [ maintainers.adev ];
+ # source claims it's only tested for x86 and powerpc
+ platforms = platforms.x86_64 ++ platforms.i686;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch
new file mode 100644
index 000000000000..923bffb1c338
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch
@@ -0,0 +1,21 @@
+--- nrn-7.4/src/mac/Makefile.am 2015-11-12 21:42:45.000000000 +0100
++++ nrn-7.4.new/src/mac/Makefile.am 2016-08-24 17:43:39.000000000 +0200
+@@ -15,18 +15,8 @@
+ host_cpu = @host_cpu@
+
+ if MAC_DARWIN
+-carbon = @enable_carbon@
+ bin_SCRIPTS = $(launch_scripts)
+ install: install-am
+-if UniversalMacBinary
+- $(CC) -arch ppc -o aoutppc -Dcpu="\"$(host_cpu)\"" -I. $(srcdir)/launch.c $(srcdir)/mac2uxarg.c -framework Carbon
+- $(CC) -arch i386 -o aouti386 -Dcpu="\"$(host_cpu)\"" -I. $(srcdir)/launch.c $(srcdir)/mac2uxarg.c -framework Carbon
+- lipo aouti386 aoutppc -create -output a.out
+-else
+- gcc -g -arch i386 -Dncpu="\"$(host_cpu)\"" -I. $(srcdir)/launch.c $(srcdir)/mac2uxarg.c -framework Carbon
+-
+-endif
+- carbon=$(carbon) sh $(srcdir)/launch_inst.sh "$(host_cpu)" "$(DESTDIR)$(prefix)" "$(srcdir)"
+ for i in $(S) ; do \
+ sed "s/^CPU.*/CPU=\"$(host_cpu)\"/" < $(DESTDIR)$(bindir)/$$i > temp; \
+ mv temp $(DESTDIR)$(bindir)/$$i; \
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix
new file mode 100644
index 000000000000..fd7dc4f1fbb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "niftyreg";
+ version = "1.3.9";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/nifty_reg-${version}/nifty_reg-${version}.tar.gz";
+ sha256 = "07v9v9s41lvw72wpb1jgh2nzanyc994779bd35p76vg8mzifmprl";
+ };
+
+ NIX_CFLAGS_COMPILE = [ "-Wno-error=narrowing" ];
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ zlib ];
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://cmictig.cs.ucl.ac.uk/wiki/index.php/NiftyReg";
+ description = "Medical image registration software";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = [ "x86_64-linux" ];
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix
new file mode 100644
index 000000000000..38194697223d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, cmake, eigen, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "niftyseg";
+ version = "1.0";
+ src = fetchurl {
+ url = "https://github.com/KCL-BMEIS/NiftySeg/archive/v${version}.tar.gz";
+ sha256 = "11q6yldsxp3k6gfp94c0xhcan2y3finzv8lzizmrc79yps3wjkn0";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ eigen zlib ];
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://cmictig.cs.ucl.ac.uk/research/software/software-nifty/niftyseg";
+ description = "Software for medical image segmentation, bias field correction, and cortical thickness calculation";
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ license = licenses.bsd3;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
new file mode 100644
index 000000000000..076e459c8f0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, python3Packages, cmake, python3 }:
+
+let
+ pythonPackages = python3Packages;
+in
+
+pythonPackages.buildPythonApplication rec {
+ pname = "obitools3";
+ version = "3.0.0-beta14";
+
+ src = fetchurl {
+ url = "https://git.metabarcoding.org/obitools/${pname}/repository/v${version}/archive.tar.gz";
+ sha256 = "17krklxfvxl6baf2m394gm1a88y0lg0bwqx20cf5q39zyw04z442";
+ };
+
+ preBuild = ''
+ substituteInPlace src/CMakeLists.txt --replace \$'{PYTHONLIB}' "$out/lib/${python3.libPrefix}/site-packages";
+ export NIX_CFLAGS_COMPILE="-L $out/lib/${python3.libPrefix}/site-packages $NIX_CFLAGS_COMPILE"
+ '';
+
+ disabled = !pythonPackages.isPy3k;
+
+ nativeBuildInputs = [ pythonPackages.cython cmake ];
+
+ dontConfigure = true;
+
+ doCheck = true;
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib ; {
+ description = "Management of analyses and data in DNA metabarcoding";
+ homepage = "https://git.metabarcoding.org/obitools/obitools3";
+ license = licenses.cecill20;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/octopus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
new file mode 100644
index 000000000000..7dee07275a0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, lzma, pkg-config}:
+
+stdenv.mkDerivation rec {
+ pname = "octopus";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "luntergroup";
+ repo = "octopus";
+ rev = "v${version}";
+ sha256 = "0y3g0xc3x3adbcmds6hh60023pfv1qrz6ak7jd88fg9vxi9bdrfb";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+ buildInputs = [ boost gmp htslib zlib lzma ];
+
+ postInstall = ''
+ mkdir $out/bin
+ mv $out/octopus $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Bayesian haplotype-based mutation calling";
+ license = licenses.mit;
+ homepage = "https://github.com/luntergroup/octopus";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/paml/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/paml/default.nix
new file mode 100644
index 000000000000..7a2dc2782ab0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/paml/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ version = "4.9j";
+ pname = "paml";
+ src = fetchurl {
+ url = "http://abacus.gene.ucl.ac.uk/software/paml${version}.tgz";
+ sha256 = "0qflf3i27x6jwks3c6q560m1q8r043ja96syah145113iz5wdalp";
+ };
+
+ preBuild = ''
+ cd ./src/
+ '';
+ installPhase = ''
+ mkdir -pv $out/bin
+ cp -v codeml $out/bin
+ cp -v baseml $out/bin
+ cp -v basemlg $out/bin
+ cp -v chi2 $out/bin
+ cp -v codeml $out/bin
+ cp -v evolver $out/bin
+ cp -v mcmctree $out/bin
+ cp -v pamp $out/bin
+ cp -v yn00 $out/bin
+ '';
+
+ meta = {
+ description = "Phylogenetic Analysis by Maximum Likelihood (PAML)";
+ longDescription = ''PAML is a package of programs for phylogenetic analyses of DNA or protein sequences using maximum likelihood. It is maintained and distributed for academic use free of charge by Ziheng Yang. ANSI C source codes are distributed for UNIX/Linux/Mac OSX, and executables are provided for MS Windows. PAML is not good for tree making. It may be used to estimate parameters and test hypotheses to study the evolutionary process, when you have reconstructed trees using other programs such as PAUP*, PHYLIP, MOLPHY, PhyML, RaxML, etc.'';
+ license = "non-commercial";
+ homepage = "http://abacus.gene.ucl.ac.uk/software/paml.html";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
new file mode 100644
index 000000000000..0353f2e7cebd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, jre, makeWrapper}:
+
+stdenv.mkDerivation rec {
+ pname = "picard-tools";
+ version = "2.23.8";
+
+ src = fetchurl {
+ url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
+ sha256 = "0aflbsxzc2pcp195bbgwk6zqabq0pszc41s1pw17khn8ywl2jjr2";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jre ];
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/libexec/picard
+ cp $src $out/libexec/picard/picard.jar
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/picard --add-flags "-jar $out/libexec/picard/picard.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tools for high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF";
+ license = licenses.mit;
+ homepage = "https://broadinstitute.github.io/picard/";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/platypus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/platypus/default.nix
new file mode 100644
index 000000000000..30e45d5af0ec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/platypus/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchFromGitHub, python27, htslib, zlib, makeWrapper}:
+
+let python = python27.withPackages (ps: with ps; [ cython ]);
+
+in stdenv.mkDerivation {
+ pname = "platypus-unstable";
+ version = "2018-07-22";
+
+ src = fetchFromGitHub {
+ owner = "andyrimmer";
+ repo = "Platypus";
+ rev = "3e72641c69800da0cd4906b090298e654d316ee1";
+ sha256 = "0nah6r54b8xm778gqyb8b7rsd76z8ji4g73sm6rvpw5s96iib1vw";
+ };
+
+ buildInputs = [ htslib python zlib makeWrapper ];
+
+ buildPhase = ''
+ patchShebangs .
+ make
+ '';
+
+ installPhase = ''
+ mkdir -p $out/libexec/platypus
+ cp -r ./* $out/libexec/platypus
+
+ mkdir -p $out/bin
+ makeWrapper ${python}/bin/python $out/bin/platypus --add-flags "$out/libexec/platypus/bin/Platypus.py"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The Platypus variant caller";
+ license = licenses.gpl3;
+ homepage = "https://github.com/andyrimmer/Platypus";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix
new file mode 100644
index 000000000000..0a31ff6ba4fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, zlib, blas, lapack, darwin}:
+
+stdenv.mkDerivation rec {
+ pname = "plink-ng";
+ version = "1.90b3";
+
+ src = fetchFromGitHub {
+ owner = "chrchang";
+ repo = "plink-ng";
+ rev = "v${version}";
+ sha256 = "1zhffjbwpd50dxywccbnv1rxy9njwz73l4awc5j7i28rgj3davcq";
+ };
+
+ buildInputs = [ zlib ] ++ (if stdenv.isDarwin then [ darwin.apple_sdk.frameworks.Accelerate ] else [ blas lapack ]) ;
+
+ preBuild = ''
+ sed -i 's|zlib-1.2.8/zlib.h|zlib.h|g' *.c *.h
+ ${if stdenv.cc.isClang then "sed -i 's|g++|clang++|g' Makefile.std" else ""}
+
+ makeFlagsArray+=(
+ ZLIB=-lz
+ BLASFLAGS="-lblas -lcblas -llapack"
+ );
+ '';
+
+ makefile = "Makefile.std";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp plink $out/bin
+ '';
+
+ meta = {
+ description = "A comprehensive update to the PLINK association analysis toolset";
+ homepage = "https://www.cog-genomics.org/plink2";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/poretools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/poretools/default.nix
new file mode 100755
index 000000000000..a9f3fdb24672
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/poretools/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, pythonPackages, fetchFromGitHub }:
+
+pythonPackages.buildPythonPackage rec {
+ pname = "poretools";
+ version = "unstable-2016-07-10";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "arq5x";
+ rev = "e426b1f09e86ac259a00c261c79df91510777407";
+ sha256 = "0bglj833wxpp3cq430p1d3xp085ls221js2y90w7ir2x5ay8l7am";
+ };
+
+ propagatedBuildInputs = [pythonPackages.h5py pythonPackages.matplotlib pythonPackages.seaborn pythonPackages.pandas];
+
+ meta = {
+ description = "a toolkit for working with nanopore sequencing data from Oxford Nanopore";
+ license = stdenv.lib.licenses.mit;
+ homepage = "https://poretools.readthedocs.io/en/latest/";
+ maintainers = [stdenv.lib.maintainers.rybern];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
new file mode 100644
index 000000000000..ba51c93c38c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "prodigal";
+ version = "2.6.3";
+
+ src = fetchFromGitHub {
+ repo = "Prodigal";
+ owner = "hyattpd";
+ rev = "v${version}";
+ sha256 = "1fs1hqk83qjbjhrvhw6ni75zakx5ki1ayy3v6wwkn3xvahc9hi5s";
+ };
+
+ makeFlags = [
+ "CC=cc"
+ "INSTALLDIR=$(out)/bin"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Fast, reliable protein-coding gene prediction for prokaryotic genomes";
+ homepage = "https://github.com/hyattpd/Prodigal";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ luispedro ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/quast/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/quast/default.nix
new file mode 100644
index 000000000000..e3c3ea23c2c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/quast/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, python3Packages, zlib, bash, coreutils }:
+
+let
+ pythonPackages = python3Packages;
+ inherit (pythonPackages) python;
+in
+
+pythonPackages.buildPythonApplication rec {
+ pname = "quast";
+ version = "5.0.2";
+
+ src = fetchurl {
+ url = "https://github.com/ablab/quast/releases/download/${pname}_${version}/${pname}-${version}.tar.gz";
+ sha256 = "13ml8qywbb4cc7wf2x7z5mz1rjqg51ab8wkizwcg4f6c40zgif6d";
+ };
+
+ pythonPath = with pythonPackages; [ simplejson joblib setuptools matplotlib ];
+
+ nativeBuildInputs = [ coreutils ];
+
+ buildInputs = [ zlib ] ++ pythonPath;
+
+ dontConfigure = true;
+
+ dontBuild = true;
+
+ installPhase = ''
+ substituteInPlace quast_libs/bedtools/Makefile \
+ --replace "/bin/bash" "${bash}/bin/bash"
+ mkdir -p "$out/${python.sitePackages}"
+ export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
+ ${python.interpreter} setup.py install \
+ --install-lib=$out/${python.sitePackages} \
+ --prefix="$out"
+ '';
+
+ postFixup = ''
+ for file in $(find $out -type f -type f -perm /0111); do
+ old_rpath=$(patchelf --print-rpath $file) && \
+ patchelf --set-rpath $old_rpath:${stdenv.cc.cc.lib}/lib $file || true
+ done
+ # Link to the master program
+ ln -s $out/bin/quast.py $out/bin/quast
+ '';
+
+ dontPatchELF = true;
+
+ # Tests need to download data files, so manual run after packaging is needed
+ doCheck = false;
+
+ meta = with stdenv.lib ; {
+ description = "Evaluates genome assemblies by computing various metrics";
+ homepage = "https://github.com/ablab/quast";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/raxml/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/raxml/default.nix
new file mode 100644
index 000000000000..5c7353af9315
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/raxml/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitHub
+, pkgs
+, mpi ? false
+}:
+
+stdenv.mkDerivation rec {
+ pname = "RAxML";
+ version = "8.2.12";
+
+ src = fetchFromGitHub {
+ owner = "stamatak";
+ repo = "standard-${pname}";
+ rev = "v${version}";
+ sha256 = "1jqjzhch0rips0vp04prvb8vmc20c5pdmsqn8knadcf91yy859fh";
+ };
+
+ buildInputs = if mpi then [ pkgs.openmpi ] else [];
+
+ # TODO darwin, AVX and AVX2 makefile targets
+ buildPhase = if mpi then ''
+ make -f Makefile.MPI.gcc
+ '' else ''
+ make -f Makefile.SSE3.PTHREADS.gcc
+ '';
+
+ installPhase = if mpi then ''
+ mkdir -p $out/bin && cp raxmlHPC-MPI $out/bin
+ '' else ''
+ mkdir -p $out/bin && cp raxmlHPC-PTHREADS-SSE3 $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool for Phylogenetic Analysis and Post-Analysis of Large Phylogenies";
+ license = licenses.gpl3;
+ homepage = "https://sco.h-its.org/exelixis/web/software/raxml/";
+ maintainers = [ maintainers.unode ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
new file mode 100644
index 000000000000..7e33a6612189
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3, which, dmd, ldc, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "sambamba";
+ version = "0.7.1";
+
+ src = fetchFromGitHub {
+ owner = "biod";
+ repo = "sambamba";
+ rev = "v${version}";
+ sha256 = "0k5wy06zrbsc40x6answgz7rz2phadyqwlhi9nqxbfqanbg9kq20";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ which python3 dmd ldc ];
+ buildInputs = [ zlib ];
+
+ # Upstream's install target is broken; copy manually
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/sambamba-${version} $out/bin/sambamba
+ '';
+
+ meta = with stdenv.lib; {
+ description = "SAM/BAM processing tool";
+ homepage = "https://lomereiter.github.io/sambamba/";
+ maintainers = with maintainers; [ jbedo ];
+ license = with licenses; gpl2;
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
new file mode 100644
index 000000000000..6846e3c84fae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "samblaster";
+ version = "0.1.26";
+
+ src = fetchFromGitHub {
+ owner = "GregoryFaust";
+ repo = "samblaster";
+ rev = "v.${version}";
+ sha256 = "0g24fq5hplnfgqkh3xqpg3lgx3wmxwnh9c7m6yw7pbi40lmgl1jv";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp samblaster $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tool for marking duplicates and extracting discordant/split reads from SAM/BAM files";
+ maintainers = with maintainers; [ jbedo ];
+ license = licenses.mit;
+ homepage = "https://github.com/GregoryFaust/samblaster";
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
new file mode 100644
index 000000000000..27ed79a1f6ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, zlib, htslib, perl, ncurses ? null }:
+
+stdenv.mkDerivation rec {
+ pname = "samtools";
+ version = "1.11";
+
+ src = fetchurl {
+ url = "https://github.com/samtools/samtools/releases/download/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "1dp5wknak4arnw5ghhif9mmljlfnw5bgm91wib7z0j8wdjywx0z2";
+ };
+
+ nativeBuildInputs = [ perl ];
+
+ buildInputs = [ zlib ncurses htslib ];
+
+ configureFlags = [ "--with-htslib=${htslib}" ]
+ ++ stdenv.lib.optional (ncurses == null) "--without-curses";
+
+ preCheck = ''
+ patchShebangs test/
+ '';
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Tools for manipulating SAM/BAM/CRAM format";
+ license = licenses.mit;
+ homepage = "http://www.htslib.org/";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ mimame unode ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch
new file mode 100644
index 000000000000..a7782a1a0264
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch
@@ -0,0 +1,22 @@
+diff --git a/Makefile b/Makefile
+index 2f51bfc..395d6f1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ CC= gcc
+ CFLAGS= -g -Wall -O2
+ #LDFLAGS= -Wl,-rpath,\$$ORIGIN/../lib
+-DFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1
++DFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE # -D_CURSES_LIB=1
+ KNETFILE_O= knetfile.o
+ LOBJS= bgzf.o kstring.o bam_aux.o bam.o bam_import.o sam.o bam_index.o \
+ bam_pileup.o bam_lpileup.o bam_md.o razf.o faidx.o bedidx.o \
+@@ -15,7 +15,7 @@ PROG= samtools
+ INCLUDES= -I.
+ SUBDIRS= . bcftools misc
+ LIBPATH=
+-LIBCURSES= -lcurses # -lXCurses
++LIBCURSES= # -lcurses # -lXCurses
+
+ .SUFFIXES:.c .o
+ .PHONY: all lib
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix
new file mode 100644
index 000000000000..d62c2a1fe7b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "samtools";
+ version = "0.1.19";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/samtools/${pname}-${version}.tar.bz2";
+ sha256 = "d080c9d356e5f0ad334007e4461cbcee3c4ca97b8a7a5a48c44883cf9dee63d4";
+ };
+
+ patches = [
+ ./samtools-0.1.19-no-curses.patch
+ ];
+
+ buildInputs = [ zlib ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/man
+
+ cp samtools $out/bin
+ cp samtools.1 $out/share/man
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tools for manipulating SAM/BAM/CRAM format";
+ license = licenses.mit;
+ homepage = "http://samtools.sourceforge.net/";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.unode ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/seaview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
new file mode 100644
index 000000000000..dfee97947825
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, coreutils, fltk, libjpeg }:
+
+stdenv.mkDerivation rec {
+ version = "5.0.4";
+ pname = "seaview";
+
+ src = fetchurl {
+ url = "ftp://pbil.univ-lyon1.fr/pub/mol_phylogeny/seaview/archive/seaview_${version}.tar.gz";
+ sha256 = "09yp8467h49qnj7gg0mbcdha4ai3bn6vgs00gb76dd6h3pzfflz1";
+ };
+
+ buildInputs = [ fltk libjpeg ];
+
+ patchPhase = "sed -i 's#PATH=/bin:/usr/bin rm#'${coreutils}/bin/rm'#' seaview.cxx";
+ installPhase = "mkdir -p $out/bin; cp seaview $out/bin";
+
+ meta = with stdenv.lib; {
+ description = "GUI for molecular phylogeny";
+ longDescription = ''
+ SeaView is a multiplatform, graphical user interface for multiple sequence alignment and molecular phylogeny.
+ - SeaView reads and writes various file formats (NEXUS, MSF, CLUSTAL, FASTA, PHYLIP, MASE, Newick) of DNA and protein sequences and of phylogenetic trees.
+ - SeaView drives programs muscle or Clustal Omega for multiple sequence alignment, and also allows to use any external alignment algorithm able to read and write FASTA-formatted files.
+ - Seaview drives the Gblocks program to select blocks of evolutionarily conserved sites.
+ - SeaView computes phylogenetic trees by
+ + parsimony, using PHYLIP's dnapars/protpars algorithm,
+ + distance, with NJ or BioNJ algorithms on a variety of evolutionary distances,
+ + maximum likelihood, driving program PhyML 3.1.
+ - Seaview can use the Transfer Bootstrap Expectation method to compute the bootstrap support of PhyML and distance trees.
+ - SeaView prints and draws phylogenetic trees on screen, SVG, PDF or PostScript files.
+ - SeaView allows to download sequences from EMBL/GenBank/UniProt using the Internet.
+
+ Seaview is published in:
+
+ Gouy M., Guindon S. & Gascuel O. (2010) SeaView version 4 : a multiplatform graphical user interface for sequence alignment and phylogenetic tree building. Molecular Biology and Evolution 27(2):221-224.
+ '';
+ homepage = "http://doua.prabi.fr/software/seaview";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.iimog ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix
new file mode 100644
index 000000000000..941f107a580f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, jre, unzip, makeWrapper}:
+
+stdenv.mkDerivation rec {
+ pname = "snpeff";
+ version = "4.3t";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/snpeff/snpEff_v${builtins.replaceStrings [ "." ] [ "_" ] version}_core.zip";
+ sha256 = "0i12mv93bfv8xjwc3rs2x73d6hkvi7kgbbbx3ry984l3ly4p6nnm";
+ };
+
+ buildInputs = [ unzip jre makeWrapper ];
+
+ sourceRoot = "snpEff";
+
+ installPhase = ''
+ mkdir -p $out/libexec/snpeff
+ cp *.jar *.config $out/libexec/snpeff
+
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/snpeff --add-flags "-jar $out/libexec/snpeff/snpEff.jar"
+ makeWrapper ${jre}/bin/java $out/bin/snpsift --add-flags "-jar $out/libexec/snpeff/SnpSift.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Genetic variant annotation and effect prediction toolbox";
+ license = licenses.lgpl3;
+ homepage = "http://snpeff.sourceforge.net/";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix
new file mode 100644
index 000000000000..17d9c3dbb55c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchFromGitHub, cmake, zlib, ncurses}:
+
+stdenv.mkDerivation rec {
+ pname = "somatic-sniper";
+ version = "1.0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "genome";
+ repo = "somatic-sniper";
+ rev = "v${version}";
+ sha256 = "0lk7p9sp6mp50f6w1nppqhr40fcwy1asw06ivw8w8jvvnwaqf987";
+ };
+
+ patches = [ ./somatic-sniper.patch ];
+
+ buildInputs = [ cmake zlib ncurses ];
+
+ enableParallelBuilding = false;
+
+ meta = with stdenv.lib; {
+ description = "Identify single nucleotide positions that are different between tumor and normal";
+ license = licenses.mit;
+ homepage = "https://github.com/genome/somatic-sniper";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch
new file mode 100644
index 000000000000..9af04c0a0696
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch
@@ -0,0 +1,26 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6d5a180..7254292 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,7 +11,7 @@ set(CMAKE_MODULE_PATH
+ )
+
+ include(TestHelper)
+-include(VersionHelper)
++#include(VersionHelper)
+ include(ProjectHelper)
+
+ # NOTE: for sniper we want the exe suffix to be like 0.7.4, not just 0.7
+diff --git a/vendor/samtools.patch b/vendor/samtools.patch
+index f173017..654f878 100644
+--- a/vendor/samtools.patch
++++ b/vendor/samtools.patch
+@@ -6,7 +6,7 @@ diff -Nuar a/Makefile b/Makefile
+
+ samtools:lib $(AOBJS)
+ - $(CC) $(CFLAGS) -o $@ $(AOBJS) -lm $(LIBPATH) $(LIBCURSES) -lz -L. -lbam
+-+ $(CC) $(CFLAGS) -o $@ $(AOBJS) -lm $(LIBPATH) $(LIBCURSES) -L. -lbam -lz
+++ $(CC) $(CFLAGS) -o $@ $(AOBJS) -lm $(LIBPATH) -lncurses -L. -lbam -lz
+
+ razip:razip.o razf.o
+ $(CC) $(CFLAGS) -o $@ razf.o razip.o -lz
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
new file mode 100644
index 000000000000..4e32669dfca9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, cmake, rocksdb, rapidjson, pkgconfig, fetchFromGitHub, fetchpatch, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "sortmerna";
+ version = "4.2.0";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "biocore";
+ rev = "v${version}";
+ sha256 = "0r91viylzr069jm7kpcgb45kagvf8sqcj5zc1af4arl9sgfs1f3j";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ zlib rocksdb rapidjson ];
+
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DPORTABLE=off"
+ "-DRAPIDJSON_HOME=${rapidjson}"
+ "-DROCKSDB_HOME=${rocksdb}"
+ "-DROCKSDB_STATIC=off"
+ "-DZLIB_STATIC=off"
+ ];
+
+ postPatch = ''
+ # Fix formatting string error:
+ # https://github.com/biocore/sortmerna/issues/255
+ substituteInPlace src/sortmerna/indexdb.cpp \
+ --replace 'is_verbose, ss' 'is_verbose, "%s", ss'
+
+ # Fix missing pthread dependency for the main binary.
+ substituteInPlace src/sortmerna/CMakeLists.txt \
+ --replace "target_link_libraries(sortmerna" \
+ "target_link_libraries(sortmerna Threads::Threads"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tools for filtering, mapping, and OTU-picking from shotgun genomics data";
+ license = licenses.lgpl3;
+ platforms = platforms.x86_64;
+ homepage = "https://bioinfo.lifl.fr/RNA/sortmerna/";
+ maintainers = with maintainers; [ luispedro ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/spades/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/spades/default.nix
new file mode 100644
index 000000000000..d555f2873a67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/spades/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, zlib, bzip2, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "SPAdes";
+ version = "3.14.1";
+
+ src = fetchurl {
+ url = "http://cab.spbu.ru/files/release${version}/${pname}-${version}.tar.gz";
+ sha256 = "1ji3afn6yvx7ysg7p9j0d1g28zrnxg1b7x90mhs2bj3lgs7vfafn";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ zlib bzip2 ];
+
+ doCheck = true;
+
+ sourceRoot = "${pname}-${version}/src";
+
+ meta = with stdenv.lib; {
+ description = "St. Petersburg genome assembler: assembly toolkit containing various assembly pipelines";
+ license = licenses.gpl2;
+ homepage = "http://cab.spbu.ru/software/spades/";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.bzizou ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/stacks/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/stacks/default.nix
new file mode 100644
index 000000000000..12c865162425
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/stacks/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "stacks";
+ version = "2.53";
+ src = fetchurl {
+ url = "http://catchenlab.life.illinois.edu/stacks/source/${pname}-${version}.tar.gz";
+ sha256 = "1zchds205nwdqch1246953dr8c0019yas178qbq3jypbxvmgq7pf";
+ };
+
+ buildInputs = [ zlib ];
+
+ meta = {
+ description = "Software pipeline for building loci from short-read sequences";
+ homepage = "http://catchenlab.life.illinois.edu/stacks/";
+ maintainers = [ stdenv.lib.maintainers.bzizou ];
+ license = stdenv.lib.licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/star/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/star/default.nix
new file mode 100644
index 000000000000..f2e1a2a8fee5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/star/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "star";
+ version = "2.7.6a";
+
+ src = fetchFromGitHub {
+ repo = "STAR";
+ owner = "alexdobin";
+ rev = version;
+ sha256 = "1zw9f4jbhz0y51namnmid42pa7pviviy94q9db8w0774nksdf8is";
+ };
+
+ sourceRoot = "source/source";
+
+ postPatch = ''
+ substituteInPlace Makefile --replace "/bin/rm" "rm"
+ '';
+
+ buildInputs = [ zlib ];
+
+ buildFlags = [ "STAR" "STARlong" ];
+
+ enableParallelBuilding = true;
+
+ installPhase = ''
+ runHook preInstall
+ install -D STAR STARlong -t $out/bin
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Spliced Transcripts Alignment to a Reference";
+ homepage = "https://github.com/alexdobin/STAR";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.arcadio ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/strelka/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/strelka/default.nix
new file mode 100644
index 000000000000..a32eddcb1cd9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/strelka/default.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchFromGitHub, cmake, zlib, python2}:
+
+stdenv.mkDerivation rec {
+ pname = "strelka";
+ version = "2.9.10";
+
+ src = fetchFromGitHub {
+ owner = "Illumina";
+ repo = "strelka";
+ rev = "v${version}";
+ sha256 = "1nykbmim1124xh22nrhrsn8xgjb3s2y7akrdapn9sl1gdych4ppf";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ zlib python2 ];
+
+ NIX_CFLAGS_COMPILE = [
+ "-Wno-error=maybe-uninitialized"
+ "-Wno-error=pessimizing-move"
+ ];
+
+ preConfigure = ''
+ sed -i 's|/usr/bin/env python|${python2}/bin/python|' src/python/lib/makeRunScript.py
+ patchShebangs .
+ '';
+
+ postFixup = ''
+ pushd $out/lib/python/pyflow
+ sed -i 's|/bin/bash|${stdenv.shell}|' pyflowTaskWrapper.py
+ rm pyflowTaskWrapper.pyc
+ echo "import pyflowTaskWrapper" | python2
+ popd
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Germline and small variant caller";
+ license = licenses.gpl3;
+ homepage = "https://github.com/Illumina/strelka";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = [ "x86_64-linux" ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/sumatools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/sumatools/default.nix
new file mode 100644
index 000000000000..1e3b479d54fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/sumatools/default.nix
@@ -0,0 +1,68 @@
+{ gccStdenv, fetchFromGitLab, zlib }:
+
+let
+ stdenv = gccStdenv;
+ meta = with stdenv.lib; {
+ description = "Fast and exact comparison and clustering of sequences";
+ homepage = "https://metabarcoding.org/sumatra";
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.unix;
+ };
+
+in rec {
+
+ # Suma library
+ sumalibs = stdenv.mkDerivation rec {
+ version = "1.0.34";
+ pname = "sumalibs";
+ src = fetchFromGitLab {
+ domain = "git.metabarcoding.org";
+ owner = "obitools";
+ repo = pname;
+ rev = "sumalib_v${version}";
+ sha256 = "0hwkrxzfz7m5wdjvmrhkjg8kis378iaqr5n4nhdhkwwhn8x1jn5a";
+ };
+ makeFlags = [ "PREFIX=$(out)" ];
+ inherit meta;
+ };
+
+ # Sumatra
+ sumatra = stdenv.mkDerivation rec {
+ version = "1.0.34";
+ pname = "sumatra";
+ src = fetchFromGitLab {
+ domain = "git.metabarcoding.org";
+ owner = "obitools";
+ repo = pname;
+ rev = "${pname}_v${version}";
+ sha256 = "1bbpbdkshdc3xffqnr1qfy8qk64ldsmdc3s8mrcrlx132rgbi5f6";
+ };
+ buildInputs = [ sumalibs zlib ];
+ makeFlags = [
+ "LIBSUMA=${sumalibs}/lib/libsuma.a"
+ "LIBSUMAPATH=-L${sumalibs}"
+ "PREFIX=$(out)"
+ ];
+ inherit meta;
+ };
+
+ # Sumaclust
+ sumaclust = stdenv.mkDerivation rec {
+ version = "1.0.34";
+ pname = "sumaclust";
+ src = fetchFromGitLab {
+ domain = "git.metabarcoding.org";
+ owner = "obitools";
+ repo = pname;
+ rev = "${pname}_v${version}";
+ sha256 = "0x8yi3k3jxhmv2krp4rcjlj2f9zg0qrk7gx4kpclf9c3yxgsgrds";
+ };
+ buildInputs = [ sumalibs ];
+ makeFlags = [
+ "LIBSUMA=${sumalibs}/lib/libsuma.a"
+ "LIBSUMAPATH=-L${sumalibs}"
+ "PREFIX=$(out)"
+ ];
+ inherit meta;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/svaba/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
new file mode 100644
index 000000000000..ae8dc95d6fea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, zlib, bzip2, lzma, fetchFromGitHub } :
+
+stdenv.mkDerivation rec {
+ version = "1.1.0";
+ pname = "svaba";
+
+ src = fetchFromGitHub {
+ owner = "walaj";
+ repo = pname;
+ rev = version;
+ sha256 = "1vv5mc9z5d22kgdy7mm27ya5aahnqgkcrskdr2405058ikk9g8kp";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [ zlib bzip2 lzma ];
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm555 src/svaba/svaba $out/bin/svaba
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Structural variant and INDEL caller for DNA sequencing data, using genome-wide local assembly";
+ license = licenses.gpl3;
+ homepage = "https://github.com/walaj/svaba";
+ maintainers = with maintainers; [ scalavision ];
+ platforms = platforms.linux;
+ longDescription = ''
+ SvABA is a method for detecting structural variants in sequencing data
+ using genome-wide local assembly. Under the hood, SvABA uses a custom
+ implementation of SGA (String Graph Assembler) by Jared Simpson,
+ and BWA-MEM by Heng Li. Contigs are assembled for every 25kb window
+ (with some small overlap) for every region in the genome.
+ The default is to use only clipped, discordant, unmapped and indel reads,
+ although this can be customized to any set of reads at the command line using VariantBam rules.
+ These contigs are then immediately aligned to the reference with BWA-MEM and parsed to identify variants.
+ Sequencing reads are then realigned to the contigs with BWA-MEM, and variants are scored by their read support.
+ '';
+
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
new file mode 100644
index 000000000000..82c624ba7cd9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, last, exonerate, minia, python3Packages, bwa
+, samtools, findutils, python }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "tebreak";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "adamewing";
+ repo = "tebreak";
+ rev = version;
+ sha256 = "13mgh775d8hkl340923lfwwm4r5ps70girn8d6wgfxzwzxylz8iz";
+ };
+
+ nativeBuildInputs = [ findutils python3Packages.cython ];
+ propagatedBuildInputs = with python3Packages; [
+ pysam
+ scipy
+ bx-python
+ scikit-bio
+ ];
+
+ preConfigure = ''
+ # patch the paths to all required software
+ for f in $(find . -type f) ; do
+ sed -i "s|'bwa'|'${bwa}/bin/bwa'|" $f
+ sed -i "s|'minia'|'${minia}/bin/minia'|" $f
+ sed -i "s|'exonerate'|'${exonerate}/bin/exonerate'|" $f
+ sed -i "s|'samtools'|'${samtools}/bin/samtools'|" $f
+ sed -i "s|'lastal'|'${last}/bin/lastal'|" $f
+ sed -i "s|'lastdb'|'${last}/bin/lastdb'|" $f
+ done
+ '';
+
+ checkPhase = ''
+ $out/bin/tebreak -b test/data/example.ins.bam -r test/data/Homo_sapiens_chr4_50000000-60000000_assembly19.fasta -p 4 --pickle test/example.pickle --detail_out test/example.tebreak.detail.out -i lib/teref.human.fa
+ pushd test
+ ${python.interpreter} checktest.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Find and characterise transposable element insertions";
+ homepage = "https://github.com/adamewing/tebreak";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/trimal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/trimal/default.nix
new file mode 100755
index 000000000000..8d7e62b61431
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/trimal/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "trimal";
+ version = "1.4.1";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "scapella";
+ rev = "v${version}";
+ sha256 = "0isc7s3514di4z953xq53ncjkbi650sh4q9yyw5aag1n9hqnh7k0";
+ };
+
+ postUnpack = ''
+ sourceRoot=''${sourceRoot}/source
+ echo Source root reset to ''${sourceRoot}
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -a trimal readal statal $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool for the automated removal of spurious sequences or poorly aligned regions from a multiple sequence alignment";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ homepage = "http://trimal.cgenomics.org";
+ maintainers = [ maintainers.bzizou ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/truvari/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/truvari/default.nix
new file mode 100644
index 000000000000..fffeca2c740c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/truvari/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "truvari";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "spiralgenetics";
+ repo = "truvari";
+ rev = "v${version}";
+ sha256 = "0lp1wnldjv92k4ncga1h0icb0dpjsrx427vggg40x04a7kp9lwx0";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ pyvcf
+ python-Levenshtein
+ progressbar2
+ pysam
+ pyfaidx
+ intervaltree
+ pytabix
+ acebinf
+ bwapy
+ joblib
+ pandas
+ ];
+
+ # no tests
+ doCheck = false;
+ pythonImportsCheck = [ "truvari" ];
+
+ meta = with lib; {
+ description = "Structural variant comparison tool for VCFs";
+ homepage = "https://github.com/spiralgenetics/truvari";
+ license = licenses.mit;
+ maintainers = with maintainers; [ scalavision ];
+ longDescription = ''
+ Truvari is a benchmarking tool for comparison sets of SVs.
+ It can calculate the recall, precision, and f-measure of a
+ vcf from a given structural variant caller. The tool
+ is created by Spiral Genetics.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/varscan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/varscan/default.nix
new file mode 100644
index 000000000000..e97c8f14451f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/varscan/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, jre, makeWrapper}:
+
+stdenv.mkDerivation rec {
+ pname = "varscan";
+ version = "2.4.2";
+
+ src = fetchurl {
+ url = "https://github.com/dkoboldt/varscan/releases/download/${version}/VarScan.v${version}.jar";
+ sha256 = "0cfhshinyqgwc6i7zf8lhbfybyly2x5anrz824zyvdhzz5i69zrl";
+ };
+
+ buildInputs = [ jre makeWrapper ];
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/libexec/varscan
+ cp $src $out/libexec/varscan/varscan.jar
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/varscan --add-flags "-jar $out/libexec/varscan/varscan.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Variant calling and somatic mutation/CNV detection for next-generation sequencing data";
+ # VarScan 2 is free for non-commercial use by academic,
+ # government, and non-profit/not-for-profit institutions. A
+ # commercial version of the software is available, and licensed
+ # through the Office of Technology Management at Washington
+ # University School of Medicine.
+ license = licenses.unfree;
+ homepage = "https://github.com/dkoboldt/varscan";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix
new file mode 100755
index 000000000000..52957b58bc92
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, zlib, autoreconfHook, pkgconfig, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "vcftools";
+ version = "0.1.16";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "vcftools";
+ rev = "v${version}";
+ sha256 = "0msb09d2cnm8rlpg8bsc1lhjddvp3kf3i9dsj1qs4qgsdlzhxkyx";
+ };
+
+ buildInputs = [ autoreconfHook pkgconfig zlib perl ];
+
+ meta = with stdenv.lib; {
+ description = "A set of tools written in Perl and C++ for working with VCF files, such as those generated by the 1000 Genomes Project";
+ license = licenses.lgpl3;
+ platforms = platforms.linux;
+ homepage = "https://vcftools.github.io/index.html";
+ maintainers = [ maintainers.rybern ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/whisper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/whisper/default.nix
new file mode 100644
index 000000000000..9e336600202b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/whisper/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "whisper";
+ version = "2.0.1";
+
+ src = fetchFromGitHub {
+ owner = "refresh-bio";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0wpx1w1mar2d6zq2v14vy6nn896ds1n3zshxhhrrj5d528504iyw";
+ };
+
+ preConfigure = ''
+ cd src
+
+ # disable default static linking
+ sed -i 's/ -static / /' makefile
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -Dt $out/bin whisper whisper-index
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Short read sequence mapper";
+ license = licenses.gpl3;
+ homepage = "https://github.com/refresh-bio/whisper";
+ maintainers = with maintainers; [ jbedo ];
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/biology/xenomapper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/xenomapper/default.nix
new file mode 100644
index 000000000000..f5e538c70961
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/biology/xenomapper/default.nix
@@ -0,0 +1,23 @@
+{buildPythonPackage, lib, fetchFromGitHub, statistics}:
+
+buildPythonPackage rec {
+ pname = "xenomapper";
+ version = "1.0.2";
+
+ src = fetchFromGitHub {
+ owner = "genomematt";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0mnmfzlq5mhih6z8dq5bkx95vb8whjycz9mdlqwbmlqjb3gb3zhr";
+ };
+
+ propagatedBuildInputs = [ statistics ];
+
+ meta = with lib; {
+ homepage = "https://github.com/genomematt/xenomapper";
+ description = "A utility for post processing mapped reads that have been aligned to a primary genome and a secondary genome and binning reads into species specific, multimapping in each species, unmapped and unassigned bins";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.jbedo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix
new file mode 100644
index 000000000000..96dea10333b3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, cmake, qt4, zlib, eigen, openbabel, pkgconfig, libGLU, libGL, libX11, doxygen }:
+
+stdenv.mkDerivation rec {
+ name = "avogadro-1.1.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/avogadro/${name}.tar.bz2";
+ sha256 = "050ag9p4vg7jg8hj1wqfv7lsm6ar2isxjw2vw85s49vsl7g7nvzy";
+ };
+
+ buildInputs = [ qt4 eigen zlib openbabel libGL libGLU libX11 ];
+
+ nativeBuildInputs = [ cmake pkgconfig doxygen ];
+
+ NIX_CFLAGS_COMPILE = "-include ${libGLU.dev}/include/GL/glu.h";
+
+ patches = [
+ (fetchurl {
+ url = "https://data.gpo.zugaina.org/fusion809/sci-chemistry/avogadro/files/avogadro-1.1.0-xlibs.patch";
+ sha256 = "1p113v19z3zwr9gxj2k599f8p97a8rwm93pa4amqvd0snn31mw0k";
+ })
+ ];
+
+ meta = {
+ description = "Molecule editor and visualizer";
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.mesaPlatforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix
new file mode 100644
index 000000000000..1c6395637573
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix
@@ -0,0 +1,34 @@
+{ clangStdenv, stdenv, fetchFromGitHub, catch2, rang, fmt, libyamlcpp, cmake
+, eigen, lua, luaPackages, liblapack, blas, lib, boost, gsl }:
+
+clangStdenv.mkDerivation rec {
+ version = "v1.0.1";
+ pname = "d-SEAMS";
+
+ src = fetchFromGitHub {
+ owner = "d-SEAMS";
+ repo = "seams-core";
+ rev = "v1.0.1";
+ sha256 = "03zhhl9vhi3rhc3qz1g3zb89jksgpdlrk15fcr8xcz8pkj6r5b1i";
+ };
+
+ enableParallelBuilding = true;
+ nativeBuildInputs = [ cmake lua luaPackages.luafilesystem ];
+ buildInputs = [ fmt rang libyamlcpp eigen catch2 boost gsl liblapack blas ];
+
+ meta = with stdenv.lib; {
+ description =
+ "d-SEAMS: Deferred Structural Elucidation Analysis for Molecular Simulations";
+ longDescription = ''
+ d-SEAMS, is a free and open-source postprocessing engine for the analysis
+ of molecular dynamics trajectories, which is specifically able to
+ qualitatively classify ice structures in both strong-confinement and bulk
+ systems. The engine is in C++, with extensions via the Lua scripting
+ interface.
+ '';
+ homepage = "https://dseams.info";
+ license = licenses.gpl3Plus;
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ maintainers.HaoZeke ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/gwyddion/codegen.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/gwyddion/codegen.patch
new file mode 100644
index 000000000000..eb306d99f8a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/gwyddion/codegen.patch
@@ -0,0 +1,22 @@
+--- gwyddion-2.55.orig/configure 2019-11-04 01:25:31.000000000 -0800
++++ gwyddion-2.55/configure 2020-03-20 18:49:43.860452655 -0700
+@@ -18560,7 +18560,7 @@
+ fi
+ if test "x$embed_pygtk" = xno; then
+ if test "x$PYGTK_CODEGENDIR" = 'x'; then
+- PYGTK_CODEGENDIR=`$PKG_CONFIG --variable=codegendir pygtk-2.0`
++ PYGTK_CODEGENDIR=`$PKG_CONFIG --variable=codegendir pygobject-2.0`
+ fi
+ else
+ # Some silly OSes want to remove pygtk2. We can build pygwy without
+--- gwyddion-2.55.orig/configure.ac 2019-11-04 01:25:16.000000000 -0800
++++ gwyddion-2.55/configure.ac 2020-03-20 18:52:55.042724547 -0700
+@@ -270,7 +270,7 @@
+ [embed_pygtk=yes; pygwy_warn=" (embedded pygtk2)"])
+ if test "x$embed_pygtk" = xno; then
+ if test "x$PYGTK_CODEGENDIR" = 'x'; then
+- PYGTK_CODEGENDIR=`$PKG_CONFIG --variable=codegendir pygtk-2.0`
++ PYGTK_CODEGENDIR=`$PKG_CONFIG --variable=codegendir pygobject-2.0`
+ fi
+ else
+ # Some silly OSes want to remove pygtk2. We can build pygwy without
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
new file mode 100644
index 000000000000..bdebfc72e471
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchurl, gtk2, pkg-config, fftw, file,
+ pythonSupport ? false, pythonPackages ? null,
+ gnome2 ? null,
+ openexrSupport ? true, openexr ? null,
+ libzipSupport ? true, libzip ? null,
+ libxml2Support ? true, libxml2 ? null,
+ libwebpSupport ? true, libwebp ? null,
+ # libXmu is not used if libunique is.
+ libXmuSupport ? false, xorg ? null,
+ libxsltSupport ? true, libxslt ? null,
+ fitsSupport ? true, cfitsio ? null,
+ zlibSupport ? true, zlib ? null,
+ libuniqueSupport ? true, libunique ? null,
+ libpngSupport ? true, libpng ? null,
+ openglSupport ? !stdenv.isDarwin
+}:
+
+assert openexrSupport -> openexr != null;
+assert libzipSupport -> libzip != null;
+assert libxml2Support -> libxml2 != null;
+assert libwebpSupport -> libwebp != null;
+assert libXmuSupport -> xorg != null;
+assert libxsltSupport -> libxslt != null;
+assert fitsSupport -> cfitsio != null;
+assert zlibSupport -> zlib != null;
+assert libuniqueSupport -> libunique != null;
+assert libpngSupport -> libpng != null;
+assert openglSupport -> gnome2 != null;
+assert pythonSupport -> (pythonPackages != null && gnome2 != null);
+
+let
+ inherit (pythonPackages) pygtk pygobject2 python;
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "gwyddion";
+ version = "2.56";
+ src = fetchurl {
+ url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
+ sha256 = "0z83p3ifdkv5dds8s6fqqbycql1zmgppdc7ygqmm12z5zlrl9p12";
+ };
+
+ nativeBuildInputs = [ pkg-config file ];
+
+ buildInputs = with stdenv.lib;
+ [ gtk2 fftw ] ++
+ optional openglSupport gnome2.gtkglext ++
+ optional openexrSupport openexr ++
+ optional libXmuSupport xorg.libXmu ++
+ optional fitsSupport cfitsio ++
+ optional libpngSupport libpng ++
+ optional libxsltSupport libxslt ++
+ optional libxml2Support libxml2 ++
+ optional libwebpSupport libwebp ++
+ optional zlibSupport zlib ++
+ optional libuniqueSupport libunique ++
+ optional libzipSupport libzip;
+
+ propagatedBuildInputs = with stdenv.lib;
+ optionals pythonSupport [ pygtk pygobject2 python gnome2.gtksourceview ];
+
+ # This patch corrects problems with python support, but should apply cleanly
+ # regardless of whether python support is enabled, and have no effects if
+ # it is disabled.
+ patches = [ ./codegen.patch ];
+ meta = {
+ homepage = "http://gwyddion.net/";
+
+ description = "Scanning probe microscopy data visualization and analysis";
+
+ longDescription = ''
+ A modular program for SPM (scanning probe microscopy) data
+ visualization and analysis. Primarily it is intended for the
+ analysis of height fields obtained by scanning probe microscopy
+ techniques (AFM, MFM, STM, SNOM/NSOM) and it supports a lot of
+ SPM data formats. However, it can be used for general height
+ field and (greyscale) image processing, for instance for the
+ analysis of profilometry data or thickness maps from imaging
+ spectrophotometry.
+ '';
+ license = stdenv.lib.licenses.gpl2;
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ maintainers = [ stdenv.lib.maintainers.cge ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
new file mode 100644
index 000000000000..e09abccad121
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, lib
+, fetchurl
+, unzip
+, makeDesktopItem
+, jre
+}:
+
+let
+ desktopItem = makeDesktopItem {
+ name = "jmol";
+ exec = "jmol";
+ desktopName = "JMol";
+ genericName = "Molecular Modeler";
+ mimeType = "chemical/x-pdb;chemical/x-mdl-molfile;chemical/x-mol2;chemical/seq-aa-fasta;chemical/seq-na-fasta;chemical/x-xyz;chemical/x-mdl-sdf;";
+ categories = "Graphics;Education;Science;Chemistry;";
+ };
+in
+stdenv.mkDerivation rec {
+ version = "14.31.18";
+ pname = "jmol";
+
+ src = let
+ baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
+ in fetchurl {
+ url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
+ sha256 = "0hkc7c08azbw3k91ygwz6r5y4yw6k8l7h4gcq5p71knd5k1fa5jd";
+ };
+
+ patchPhase = ''
+ sed -i -e "4s:.*:command=${jre}/bin/java:" -e "10s:.*:jarpath=$out/share/jmol/Jmol.jar:" -e "11,21d" jmol
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/share/jmol" "$out/bin"
+
+ ${unzip}/bin/unzip jsmol.zip -d "$out/share/"
+
+ cp *.jar jmol.sh "$out/share/jmol"
+ cp -r ${desktopItem}/share/applications $out/share
+ cp jmol $out/bin
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A Java 3D viewer for chemical structures";
+ homepage = "https://sourceforge.net/projects/jmol";
+ license = licenses.lgpl2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ mounium ] ++ teams.sage.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/LicenseManager.desktop b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/LicenseManager.desktop
new file mode 100755
index 000000000000..90b8ed7d20a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/LicenseManager.desktop
@@ -0,0 +1,9 @@
+#!/usr/bin/env xdg-open
+[Desktop Entry]
+Type=Application
+Name=ChemAxon License Manager
+Exec=@out@/bin/LicenseManager
+Icon=LicenseManager
+Categories=Education;Science;Chemistry;
+StartupWMClass=com-install4j-runtime-launcher-UnixLauncher
+Comment=License manager for ChemAxon software like MarvinSketch
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/MarvinSketch.desktop b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/MarvinSketch.desktop
new file mode 100755
index 000000000000..d6e0343a78c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/MarvinSketch.desktop
@@ -0,0 +1,10 @@
+#!/usr/bin/env xdg-open
+[Desktop Entry]
+Type=Application
+Name=MarvinSketch
+Exec=@out@/bin/msketch %f
+Icon=MarvinSketch
+MimeType=text/xml;text/plain;chemical/x-cml;chemical/x-mdl-molfile;chemical/x-mdl-sdfile;chemical/x-mol2;chemical/x-pdb;chemical/x-xyz;chemical/x-mdl-rdfile;chemical/x-mdl-rxnfile;chemical/x-inchi;
+Categories=Education;Science;Chemistry;
+StartupWMClass=com-install4j-runtime-launcher-UnixLauncher
+Comment=Molecular modelling, analysis and structure drawing program
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/MarvinView.desktop b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/MarvinView.desktop
new file mode 100755
index 000000000000..07a3c3c7cf33
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/MarvinView.desktop
@@ -0,0 +1,10 @@
+#!/usr/bin/env xdg-open
+[Desktop Entry]
+Type=Application
+Name=MarvinView
+Exec=@out@/bin/mview %f
+Icon=MarvinView
+Comment=Molecule viewing program
+MimeType=text/xml;text/plain;chemical/x-cml;chemical/x-mdl-molfile;chemical/x-mdl-sdfile;chemical/x-mol2;chemical/x-pdb;chemical/x-xyz;chemical/x-mdl-rdfile;chemical/x-mdl-rxnfile;chemical/x-inchi;
+Categories=Education;Science;Chemistry;
+StartupWMClass=com-install4j-runtime-launcher-UnixLauncher
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
new file mode 100644
index 000000000000..ddab526ebe79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, dpkg, makeWrapper, coreutils, gawk, gnugrep, gnused, jre }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "marvin";
+ version = "20.20.0";
+
+ src = fetchurl {
+ name = "marvin-${version}.deb";
+ url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
+ sha256 = "1a8b0drb0c95c8arm3aa0z0sbdm9ilj4h1g90i0qyn4g2wk2xsal";
+ };
+
+ nativeBuildInputs = [ dpkg makeWrapper ];
+
+ unpackPhase = ''
+ dpkg-deb -x $src opt
+ '';
+
+ installPhase = ''
+ wrapBin() {
+ makeWrapper $1 $out/bin/$(basename $1) \
+ --set INSTALL4J_JAVA_HOME "${jre}" \
+ --prefix PATH : ${makeBinPath [ coreutils gawk gnugrep gnused ]}
+ }
+ cp -r opt $out
+ mkdir -p $out/bin $out/share/pixmaps $out/share/applications
+ for name in LicenseManager MarvinSketch MarvinView; do
+ wrapBin $out/opt/chemaxon/marvinsuite/$name
+ ln -s {$out/opt/chemaxon/marvinsuite/.install4j,$out/share/pixmaps}/$name.png
+ done
+ for name in cxcalc cxtrain evaluate molconvert mview msketch; do
+ wrapBin $out/opt/chemaxon/marvinsuite/bin/$name
+ done
+ ${concatStrings (map (name: ''
+ substitute ${./. + "/${name}.desktop"} $out/share/applications/${name}.desktop --subst-var out
+ '') [ "LicenseManager" "MarvinSketch" "MarvinView" ])}
+ '';
+
+ meta = {
+ description = "A chemical modelling, analysis and structure drawing program";
+ homepage = "https://chemaxon.com/products/marvin";
+ maintainers = with maintainers; [ fusion809 ];
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix
new file mode 100644
index 000000000000..0d7e81cd9dab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, which, gfortran, libGLU, xorg } :
+
+stdenv.mkDerivation rec {
+ version = "6.3";
+ pname = "molden";
+
+ src = fetchurl {
+ url = "ftp://ftp.cmbi.ru.nl/pub/molgraph/molden/molden${version}.tar.gz";
+ sha256 = "02qi16pz2wffn3cc47dpjqhfafzwfmb79waw4nnhfyir8a4h3cq1";
+ };
+
+ nativeBuildInputs = [ which ];
+ buildInputs = [ gfortran libGLU xorg.libX11 xorg.libXmu ];
+
+ patches = [ ./dont_register_file_types.patch ];
+
+ postPatch = ''
+ substituteInPlace ./makefile --replace '-L/usr/X11R6/lib' "" \
+ --replace '-I/usr/X11R6/include' "" \
+ --replace '/usr/local/' $out/ \
+ --replace 'sudo' "" \
+ --replace '-C surf depend' '-C surf'
+ sed -in '/^# DO NOT DELETE THIS LINE/q;' surf/Makefile
+ '';
+
+ preInstall = ''
+ mkdir -p $out/bin
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Display and manipulate molecular structures";
+ homepage = "http://www.cmbi.ru.nl/molden/";
+ license = {
+ fullName = "Free for academic/non-profit use";
+ url = "http://www.cmbi.ru.nl/molden/CopyRight.html";
+ free = false;
+ };
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ markuskowa ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/molden/dont_register_file_types.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/molden/dont_register_file_types.patch
new file mode 100644
index 000000000000..75ce593ed29a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/molden/dont_register_file_types.patch
@@ -0,0 +1,29 @@
+diff --git a/makefile b/makefile
+index 58a9e74..64615b6 100644
+--- a/makefile
++++ b/makefile
+@@ -32,8 +32,6 @@ os :=
+ ifeq ($(uname), Linux)
+ os := $(shell head -n 1 /etc/issue | cut -d" " -f1)
+ ifeq ($(os), Ubuntu)
+- EXTEN = exten
+- EXTENZ = exten2
+ LIBSG = -L/usr/X11R6/lib -lGLU -lGL -lX11 -lm
+ endif
+ ifeq ($(os), Debian)
+@@ -278,7 +276,7 @@ LIBSOGL = -lglut -lGLU -lGL -lXmu -lX11 -lm
+ #
+ #LIBSG = -L/usr/X11R6/lib -Wl,-framework -Wl,GLUT -Wl,-framework -Wl,OpenGL -Wl,-framework -Wl,Cocoa -lGLU -lGL -lXmu -lX11 -lm
+
+-all: molden gmolden ambfor/ambfor ambfor/ambmd surf/surf $(EXTEN)
++all: molden gmolden ambfor/ambfor ambfor/ambmd surf/surf
+ xwin.o: xwin.c rots.h
+ xwingl.o: xwin.c rots.h
+
+@@ -344,5 +342,5 @@ exten:
+ exten2:
+ ./register_extension.sh /usr/local/bin
+
+-install: $(EXTENZ)
++install:
+ sudo install -t /usr/local/bin -m 755 molden gmolden ambfor/ambfor ambfor/ambmd surf/surf
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
new file mode 100644
index 000000000000..f8eb064e1fd7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitLab, symlinkJoin, gfortran, perl, procps
+, libyaml, libxc, fftw, blas, lapack, gsl, netcdf, arpack, autoreconfHook
+}:
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+stdenv.mkDerivation rec {
+ pname = "octopus";
+ version = "10.0";
+
+ src = fetchFromGitLab {
+ owner = "octopus-code";
+ repo = "octopus";
+ rev = version;
+ sha256 = "1c6q20y0x9aacwa7vp6gj3yvfzain7hnk6skxmvg3wazp02l91kn";
+ };
+
+ nativeBuildInputs = [ perl procps autoreconfHook ];
+ buildInputs = [ libyaml gfortran libxc blas lapack gsl fftw netcdf arpack ];
+
+ configureFlags = [
+ "--with-yaml-prefix=${libyaml}"
+ "--with-blas=-lblas"
+ "--with-lapack=-llapack"
+ "--with-fftw-prefix=${fftw.dev}"
+ "--with-gsl-prefix=${gsl}"
+ "--with-libxc-prefix=${libxc}"
+ ];
+
+ doCheck = false;
+ checkTarget = "check-short";
+
+ postPatch = ''
+ patchShebangs ./
+ '';
+
+ postConfigure = ''
+ patchShebangs testsuite/oct-run_testsuite.sh
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Real-space time dependent density-functional theory code";
+ homepage = "https://octopus-code.org";
+ maintainers = with maintainers; [ markuskowa ];
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
new file mode 100644
index 000000000000..d432e66a19f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, fetchFromGitLab, cmake, gfortran, perl
+, openblas, blas, lapack, hdf5-cpp, python3, texlive
+, armadillo, openmpi, globalarrays, openssh
+, makeWrapper, fetchpatch
+} :
+
+assert blas.implementation == "openblas" && lapack.implementation == "openblas";
+
+let
+ version = "20.10";
+ gitLabRev = "v${version}";
+
+ python = python3.withPackages (ps : with ps; [ six pyparsing ]);
+
+in stdenv.mkDerivation {
+ pname = "openmolcas";
+ inherit version;
+
+ src = fetchFromGitLab {
+ owner = "Molcas";
+ repo = "OpenMolcas";
+ rev = gitLabRev;
+ sha256 = "0xr9plgb0cfmxxqmd3wrhvl0hv2jqqfqzxwzs1jysq2m9cxl314v";
+ };
+
+ patches = [
+ # Required to handle openblas multiple outputs
+ ./openblasPath.patch
+];
+
+ nativeBuildInputs = [ perl cmake texlive.combined.scheme-minimal makeWrapper ];
+ buildInputs = [
+ gfortran
+ openblas
+ hdf5-cpp
+ python
+ armadillo
+ openmpi
+ globalarrays
+ openssh
+ ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [
+ "-DOPENMP=ON"
+ "-DGA=ON"
+ "-DMPI=ON"
+ "-DLINALG=OpenBLAS"
+ "-DTOOLS=ON"
+ "-DHDF5=ON"
+ "-DFDE=ON"
+ "-DOPENBLASROOT=${openblas.dev}"
+ ];
+
+ GAROOT=globalarrays;
+
+ postConfigure = ''
+ # The Makefile will install pymolcas during the build grrr.
+ mkdir -p $out/bin
+ export PATH=$PATH:$out/bin
+ '';
+
+ postFixup = ''
+ # Wrong store path in shebang (no Python pkgs), force re-patching
+ sed -i "1s:/.*:/usr/bin/env python:" $out/bin/pymolcas
+ patchShebangs $out/bin
+
+ wrapProgram $out/bin/pymolcas --set MOLCAS $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Advanced quantum chemistry software package";
+ homepage = "https://gitlab.com/Molcas/OpenMolcas";
+ maintainers = [ maintainers.markuskowa ];
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/openmolcas/openblasPath.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/openmolcas/openblasPath.patch
new file mode 100644
index 000000000000..e47adcc3e9a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/openmolcas/openblasPath.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 276ae4e2..db13e6e3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1507,7 +1507,6 @@ if (LINALG STREQUAL "OpenBLAS")
+ NAMES openblas
+ PATHS ${OPENBLASROOT}
+ PATH_SUFFIXES lib
+- NO_DEFAULT_PATH
+ )
+
+ if (NOT LIBOPENBLAS)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix
new file mode 100644
index 000000000000..474986901225
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, fetchurl, fetchFromGitHub, makeDesktopItem
+, python3, python3Packages
+, glew, glm, freeglut, libpng, libxml2, tk, freetype, msgpack }:
+
+
+let
+ pname = "pymol";
+ description = "A Python-enhanced molecular graphics tool";
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = pname;
+ desktopName = "PyMol Molecular Graphics System";
+ genericName = "Molecular Modeler";
+ comment = description;
+ icon = pname;
+ mimeType = "chemical/x-pdb;chemical/x-mdl-molfile;chemical/x-mol2;chemical/seq-aa-fasta;chemical/seq-na-fasta;chemical/x-xyz;chemical/x-mdl-sdf;";
+ categories = "Graphics;Education;Science;Chemistry;";
+ };
+in
+python3Packages.buildPythonApplication rec {
+ inherit pname;
+ version = "2.3.0";
+ src = fetchFromGitHub {
+ owner = "schrodinger";
+ repo = "pymol-open-source";
+ rev = "v${version}";
+ sha256 = "175cqi6gfmvv49i3ws19254m7ljs53fy6y82fm1ywshq2h2c93jh";
+ };
+
+ buildInputs = [ python3Packages.numpy glew glm freeglut libpng libxml2 tk freetype msgpack ];
+ NIX_CFLAGS_COMPILE = "-I ${libxml2.dev}/include/libxml2";
+ hardeningDisable = [ "format" ];
+
+ setupPyBuildFlags = [ "--glut" ];
+
+ installPhase = ''
+ python setup.py install --home="$out"
+ runHook postInstall
+ '';
+
+ postInstall = with python3Packages; ''
+ wrapProgram $out/bin/pymol \
+ --prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages [ Pmw tkinter ]}
+
+ mkdir -p "$out/share/icons/"
+ ln -s ../../lib/python/pymol/pymol_path/data/pymol/icons/icon2.svg "$out/share/icons/pymol.svg"
+ cp -r "${desktopItem}/share/applications/" "$out/share/"
+ '';
+
+ meta = with lib; {
+ description = description;
+ homepage = "https://www.pymol.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ samlich ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
new file mode 100644
index 000000000000..2443e6b23aba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl
+, gfortran, fftw, blas, lapack
+, mpi ? null
+}:
+
+stdenv.mkDerivation rec {
+ version = "6.5";
+ pname = "quantum-espresso";
+
+ src = fetchurl {
+ url = "https://gitlab.com/QEF/q-e/-/archive/qe-${version}/q-e-qe-${version}.tar.gz";
+ sha256 = "00nnsq1vq579xsmkvwrgs6bdqdcbdlsmcp4yfynnvs40ca52m2r5";
+ };
+
+ passthru = {
+ inherit mpi;
+ };
+
+ preConfigure = ''
+ patchShebangs configure
+ '';
+
+ buildInputs = [ fftw blas lapack gfortran ]
+ ++ (stdenv.lib.optionals (mpi != null) [ mpi ]);
+
+configureFlags = if (mpi != null) then [ "LD=${mpi}/bin/mpif90" ] else [ "LD=${gfortran}/bin/gfortran" ];
+
+ makeFlags = [ "all" ];
+
+ meta = with stdenv.lib; {
+ description = "Electronic-structure calculations and materials modeling at the nanoscale";
+ longDescription = ''
+ Quantum ESPRESSO is an integrated suite of Open-Source computer codes for
+ electronic-structure calculations and materials modeling at the
+ nanoscale. It is based on density-functional theory, plane waves, and
+ pseudopotentials.
+ '';
+ homepage = "https://www.quantum-espresso.org/";
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ maintainers.costrouc ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix
new file mode 100644
index 000000000000..c053c0a09cdf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl
+, gfortran, blas, lapack
+, mpi ? null, scalapack
+}:
+
+stdenv.mkDerivation {
+ version = "4.1-b3";
+ pname = "siesta";
+
+ src = fetchurl {
+ url = "https://launchpad.net/siesta/4.1/4.1-b3/+download/siesta-4.1-b3.tar.gz";
+ sha256 = "1450jsxj5aifa0b5fcg7mxxq242fvqnp4zxpgzgbkdp99vrp06gm";
+ };
+
+ passthru = {
+ inherit mpi;
+ };
+
+ buildInputs = [ blas lapack gfortran ]
+ ++ (stdenv.lib.optionals (mpi != null) [ mpi scalapack ]);
+
+ enableParallelBuilding = true;
+
+ # Must do manualy becuase siesta does not do the regular
+ # ./configure; make; make install
+ configurePhase = ''
+ cd Obj
+ sh ../Src/obj_setup.sh
+ cp gfortran.make arch.make
+ '';
+
+ preBuild = if (mpi != null) then ''
+ makeFlagsArray=(
+ CC="mpicc" FC="mpifort"
+ FPPFLAGS="-DMPI" MPI_INTERFACE="libmpi_f90.a" MPI_INCLUDE="."
+ COMP_LIBS="" LIBS="-lblas -llapack -lscalapack"
+ );
+ '' else ''
+ makeFlagsArray=(
+ COMP_LIBS="" LIBS="-lblas -llapack"
+ );
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -a siesta $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A first-principles materials simulation code using DFT";
+ longDescription = ''
+ SIESTA is both a method and its computer program
+ implementation, to perform efficient electronic structure
+ calculations and ab initio molecular dynamics simulations of
+ molecules and solids. SIESTA's efficiency stems from the use
+ of strictly localized basis sets and from the implementation
+ of linear-scaling algorithms which can be applied to suitable
+ systems. A very important feature of the code is that its
+ accuracy and cost can be tuned in a wide range, from quick
+ exploratory calculations to highly accurate simulations
+ matching the quality of other approaches, such as plane-wave
+ and all-electron methods.
+ '';
+ homepage = "https://www.quantum-espresso.org/";
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ maintainers.costrouc ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/adms/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/adms/default.nix
new file mode 100644
index 000000000000..0fcf4d25e2de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/adms/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, flex, bison, gperf,
+ libxml2, perl, perlPackages, gd }:
+
+stdenv.mkDerivation rec {
+ version = "2.3.7";
+ pname = "adms";
+
+ src = fetchFromGitHub {
+ owner = "Qucs";
+ repo = "adms";
+ rev = "release-${version}";
+ sha256 = "0i37c9k6q1iglmzp9736rrgsnx7sw8xn3djqbbjw29zsyl3pf62c";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ flex bison gperf libxml2 perl gd perlPackages.XMLLibXML ];
+ configureFlags = [ "--enable-maintainer-mode" ];
+
+ meta = {
+ description = "automatic device model synthesizer";
+ homepage = "https://github.com/Qucs/adms";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [disassembler];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/alliance/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/alliance/default.nix
new file mode 100644
index 000000000000..861f6cea0b4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/alliance/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchurl
+, xorgproto, motif, libX11, libXt, libXpm, bison
+, flex, automake, autoconf, libtool, runtimeShell
+}:
+
+stdenv.mkDerivation rec {
+ pname = "alliance";
+ version = "5.1.1";
+
+ src = fetchurl {
+ url = "http://www-asim.lip6.fr/pub/alliance/distribution/5.0/${pname}-${version}.tar.bz2";
+ sha256 = "046c9qwl1vbww0ljm4xyxf5jpz9nq62b2q0wdz9xjimgh4c207w1";
+ };
+
+
+ nativeBuildInputs = [ libtool automake autoconf flex ];
+ buildInputs = [ xorgproto motif libX11 libXt libXpm bison ];
+
+ sourceRoot = "alliance/src/";
+
+ configureFlags = [
+ "--prefix=$(out)"
+ ];
+
+ preConfigure = ''
+ mkdir -p $out/etc
+
+ #texlive for docs seems extreme
+ mkdir -p $out/share/alliance
+ mv ./documentation $out/share/alliance
+ substituteInPlace autostuff \
+ --replace "$newdirs documentation" "$newdirs" \
+ --replace documentation Solaris
+
+ substituteInPlace sea/src/DEF_grammar_lex.l \
+ --replace "ifndef FLEX_BETA" "if (YY_FLEX_MAJOR_VERSION <= 2) && (YY_FLEX_MINOR_VERSION < 6)"
+ ./autostuff
+ '';
+
+ allianceInstaller = ''
+ #!${runtimeShell}
+ cp -v -r -n --no-preserve=mode $out/etc/* /etc/ > /etc/alliance-install.log
+ '';
+
+ allianceUnInstaller = ''
+ #!${runtimeShell}
+ awk '{print \$3}' /etc/alliance-install.log | xargs rm
+ awk '{print \$3}' /etc/alliance-install.log | xargs rmdir
+ rm /etc/alliance-install.log
+ '';
+
+ postInstall = ''
+ sed -i "s|ALLIANCE_TOP|$out|" distrib/*.desktop
+ mkdir -p $out/share/applications
+ cp -p distrib/*.desktop $out/share/applications/
+ mkdir -p $out/icons/hicolor/48x48/apps/
+ cp -p distrib/*.png $out/icons/hicolor/48x48/apps/
+
+ echo "${allianceInstaller}" > $out/bin/alliance-install
+ chmod +x $out/bin/alliance-install
+
+ echo "${allianceUnInstaller}" > $out/bin/alliance-uninstall
+ chmod +x $out/bin/alliance-uninstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Complete set of free CAD tools and portable libraries for VLSI design";
+ homepage = "http://www-asim.lip6.fr/recherche/alliance/";
+ license = with licenses; gpl2Plus;
+ maintainers = with maintainers; [ ];
+ platforms = with platforms; linux;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix
new file mode 100644
index 000000000000..c2d7cefec9b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, csxcad
+, qcsxcad
+, hdf5
+, vtkWithQt5
+, qtbase
+, wrapQtAppsHook
+, fparser
+, tinyxml
+, cgal
+, boost
+}:
+
+mkDerivation {
+ pname = "appcsxcad";
+ version = "unstable-2020-01-04";
+
+ src = fetchFromGitHub {
+ owner = "thliebig";
+ repo = "AppCSXCAD";
+ rev = "de8c271ec8b57e80233cb2a432e3d7fd54d30876";
+ sha256 = "0shnfa0if3w588a68gr82qi6k7ldg1j2921fnzji90mmay21birp";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ];
+
+ buildInputs = [
+ csxcad
+ qcsxcad
+ hdf5
+ vtkWithQt5
+ qtbase
+ fparser
+ tinyxml
+ cgal
+ boost
+ ];
+
+ postFixup = ''
+ rm $out/bin/AppCSXCAD.sh
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Minimal Application using the QCSXCAD library";
+ homepage = "https://github.com/thliebig/AppCSXCAD";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ matthuszagh ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix
new file mode 100644
index 000000000000..1377231c152b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ name = "archimedes-2.0.1";
+
+ src = fetchurl {
+ url = "mirror://gnu/archimedes/${name}.tar.gz";
+ sha256 = "0jfpnd3pns5wxcxbiw49v5sgpmm5b4v8s4q1a5292hxxk2hzmb3z";
+ };
+
+ meta = {
+ description = "GNU package for semiconductor device simulations";
+ homepage = "https://www.gnu.org/software/archimedes";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix
new file mode 100644
index 000000000000..acbdeb8cfaa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix
@@ -0,0 +1,64 @@
+{ atk
+, buildFHSUserEnv
+, cairo
+, dpkg
+, gdk-pixbuf
+, glib
+, gtk2-x11
+, makeWrapper
+, pango
+, stdenv
+, xorg
+}:
+
+{ src, toolName, version, ... } @ attrs:
+let
+ wrapBinary = libPaths: binaryName: ''
+ wrapProgram "$out/bin/${binaryName}" \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath libPaths}"
+ '';
+ pkg = stdenv.mkDerivation (rec {
+ inherit (attrs) version src;
+
+ name = "${toolName}-${version}";
+
+ meta = with stdenv.lib; {
+ homepage = "http://bitscope.com/software/";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [
+ vidbina
+ ];
+ } // (attrs.meta or {});
+
+ buildInputs = [
+ dpkg
+ makeWrapper
+ ];
+
+ libs = attrs.libs or [
+ atk
+ cairo
+ gdk-pixbuf
+ glib
+ gtk2-x11
+ pango
+ xorg.libX11
+ ];
+
+ dontBuild = true;
+
+ unpackPhase = attrs.unpackPhase or ''
+ dpkg-deb -x ${attrs.src} ./
+ '';
+
+ installPhase = attrs.installPhase or ''
+ mkdir -p "$out/bin"
+ cp -a usr/* "$out/"
+ ${(wrapBinary libs) attrs.toolName}
+ '';
+ });
+in buildFHSUserEnv {
+ name = "${attrs.toolName}-${attrs.version}";
+ runScript = "${pkg.outPath}/bin/${attrs.toolName}";
+} // { inherit (pkg) meta name; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/bitscope/packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/bitscope/packages.nix
new file mode 100644
index 000000000000..11e1ed524ed2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/bitscope/packages.nix
@@ -0,0 +1,146 @@
+{ callPackage
+, fetchurl
+}:
+
+let
+ mkBitscope = callPackage (import ./common.nix) { };
+in {
+ chart = let
+ toolName = "bitscope-chart";
+ version = "2.0.FK22M";
+ in mkBitscope {
+ inherit toolName version;
+
+ meta = {
+ description = "Multi-channel waveform data acquisition and chart recording application";
+ homepage = "http://bitscope.com/software/chart/";
+ };
+
+ src = fetchurl {
+ url = "http://bitscope.com/download/files/${toolName}_${version}_amd64.deb";
+ sha256 = "08mc82pjamyyyhh15sagsv0sc7yx5v5n54bg60fpj7v41wdwrzxw";
+ };
+ };
+
+ console = let
+ toolName = "bitscope-console";
+ version = "1.0.FK29A";
+ in mkBitscope {
+ # NOTE: this is meant as a demo by BitScope
+ inherit toolName version;
+
+ meta = {
+ description = "Demonstrative communications program designed to make it easy to talk to any model BitScope";
+ };
+
+ src = fetchurl {
+ url = "http://bitscope.com/download/files/${toolName}_${version}_amd64.deb";
+ sha256 = "00b4gxwz7w6pmfrcz14326b24kl44hp0gzzqcqxwi5vws3f0y49d";
+ };
+ };
+
+ display = let
+ toolName = "bitscope-display";
+ version = "1.0.EC17A";
+ in mkBitscope {
+ inherit toolName version;
+
+ meta = {
+ description = "Display diagnostic application for BitScope";
+ homepage = "http://bitscope.com/software/display/";
+ };
+
+ src = fetchurl {
+ url = "http://bitscope.com/download/files/${toolName}_${version}_amd64.deb";
+ sha256 = "05xr5mnka1v3ibcasg74kmj6nlv1nmn3lca1wv77whkq85cmz0s1";
+ };
+ };
+
+ dso = let
+ toolName = "bitscope-dso";
+ version = "2.8.FE22H";
+ in mkBitscope {
+ inherit toolName version;
+
+ meta = {
+ description = "Test and measurement software for BitScope";
+ homepage = "http://bitscope.com/software/dso/";
+ };
+
+ src = fetchurl {
+ url = "http://bitscope.com/download/files/${toolName}_${version}_amd64.deb";
+ sha256 = "0fc6crfkprj78dxxhvhbn1dx1db5chm0cpwlqpqv8sz6whp12mcj";
+ };
+ };
+
+ logic = let
+ toolName = "bitscope-logic";
+ version = "1.2.FC20C";
+ in mkBitscope {
+ inherit toolName version;
+
+ meta = {
+ description = "Mixed signal logic timing and serial protocol analysis software for BitScope";
+ homepage = "http://bitscope.com/software/logic/";
+ };
+
+ src = fetchurl {
+ url = "http://bitscope.com/download/files/${toolName}_${version}_amd64.deb";
+ sha256 = "0lkb7z9gfkiyxdwh4dq1zxfls8gzdw0na1vrrbgnxfg3klv4xns3";
+ };
+ };
+
+ meter = let
+ toolName = "bitscope-meter";
+ version = "2.0.FK22G";
+ in mkBitscope {
+ inherit toolName version;
+
+ meta = {
+ description = "Automated oscilloscope, voltmeter and frequency meter for BitScope";
+ homepage = "http://bitscope.com/software/logic/";
+ };
+
+ src = fetchurl {
+ url = "http://bitscope.com/download/files/${toolName}_${version}_amd64.deb";
+ sha256 = "0nirbci6ymhk4h4bck2s4wbsl5r9yndk2jvvv72zwkg21248mnbp";
+ };
+ };
+
+ proto = let
+ toolName = "bitscope-proto";
+ version = "0.9.FG13B";
+ in mkBitscope {
+ inherit toolName version;
+ # NOTE: this is meant as a demo by BitScope
+ # NOTE: clicking on logo produces error
+ # TApplication.HandleException Executable not found: "http://bitscope.com/blog/DK/?p=DK15A"
+
+ meta = {
+ description = "Demonstrative prototype oscilloscope built using the BitScope Library";
+ homepage = "http://bitscope.com/blog/DK/?p=DK15A";
+ };
+
+ src = fetchurl {
+ url = "http://bitscope.com/download/files/${toolName}_${version}_amd64.deb";
+ sha256 = "1ybjfbh3narn29ll4nci4b7rnxy0hj3wdfm4v8c6pjr8pfvv9spy";
+ };
+ };
+
+ server = let
+ toolName = "bitscope-server";
+ version = "1.0.FK26A";
+ in mkBitscope {
+ inherit toolName version;
+
+ meta = {
+ description = "Remote access server solution for any BitScope";
+ homepage = "http://bitscope.com/software/server/";
+ };
+
+ src = fetchurl {
+ url = "http://bitscope.com/download/files/${toolName}_${version}_amd64.deb";
+ sha256 = "1079n7msq6ks0n4aasx40rd4q99w8j9hcsaci71nd2im2jvjpw9a";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix
new file mode 100644
index 000000000000..c90ceac6788f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, stdenv, fetchFromGitHub, cmake, qtbase, qttools, qtsvg, qwt }:
+
+mkDerivation rec {
+ pname = "caneda";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "Caneda";
+ repo = "Caneda";
+ rev = version;
+ sha256 = "0hx8qid50j9xvg2kpbpqmbdyakgyjn6m373m1cvhp70v2gp1v8l2";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ qtbase qttools qtsvg qwt ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Open source EDA software focused on easy of use and portability";
+ homepage = "http://caneda.org";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/caneda/gcc6.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/caneda/gcc6.patch
new file mode 100644
index 000000000000..04c8f4502b2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/caneda/gcc6.patch
@@ -0,0 +1,13 @@
+diff --git c/src/cgraphicsscene.cpp i/src/cgraphicsscene.cpp
+index ac2929a..c399706 100644
+--- c/src/cgraphicsscene.cpp
++++ i/src/cgraphicsscene.cpp
+@@ -1436,7 +1436,7 @@ namespace Caneda
+ QPointF newPos = m_currentWiringWire->mapFromScene(pos);
+ QPointF refPos = m_currentWiringWire->port1()->pos();
+
+- if( abs(refPos.x()-newPos.x()) > abs(refPos.y()-newPos.y()) ) {
++ if( (refPos.x()-newPos.x()) > (refPos.y()-newPos.y()) ) {
+ m_currentWiringWire->movePort2(QPointF(newPos.x(), refPos.y()));
+ }
+ else {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix
new file mode 100644
index 000000000000..adc6a60be853
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, fparser
+, tinyxml
+, hdf5
+, cgal_5
+, vtk
+, boost
+, gmp
+, mpfr
+}:
+
+stdenv.mkDerivation rec {
+ pname = "csxcad";
+ version = "unstable-2020-02-08";
+
+ src = fetchFromGitHub {
+ owner = "thliebig";
+ repo = "CSXCAD";
+ rev = "ef6e40931dbd80e0959f37c8e9614c437bf7e518";
+ sha256 = "072s765jyzpdq8qqysdy0dld17m6sr9zfcs0ip2zk8c4imxaysnb";
+ };
+
+ patches = [./searchPath.patch ];
+
+ buildInputs = [
+ cgal_5
+ boost
+ gmp
+ mpfr
+ vtk
+ fparser
+ tinyxml
+ hdf5
+ ];
+
+ nativeBuildInputs = [ cmake ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A C++ library to describe geometrical objects";
+ homepage = "https://github.com/thliebig/CSXCAD";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ matthuszagh ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/csxcad/searchPath.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/csxcad/searchPath.patch
new file mode 100644
index 000000000000..2fc0d77b3202
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/csxcad/searchPath.patch
@@ -0,0 +1,11 @@
+--- CSXCAD/matlab/searchBinary.m 2019-07-14 09:24:02.154291745 -0700
++++ CSXCAD/matlab/searchBinary.m 2019-07-14 09:20:20.900248280 -0700
+@@ -33,7 +33,7 @@
+
+ % try all search paths
+ for n=1:numel(searchpath)
+- binary_location = [searchpath{n} name];
++ binary_location = [searchpath{n} filesep name];
+ if exist(binary_location, 'file')
+ return
+ end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
new file mode 100644
index 000000000000..e61017ea330d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
@@ -0,0 +1,46 @@
+{ lib, mkDerivation, fetchFromGitHub, pkgconfig, cmake
+, libzip, boost, fftw, qtbase, libusb1, libsigrok4dsl
+, libsigrokdecode4dsl, python3, fetchpatch
+}:
+
+mkDerivation rec {
+ pname = "dsview";
+
+ version = "1.12";
+
+ src = fetchFromGitHub {
+ owner = "DreamSourceLab";
+ repo = "DSView";
+ rev = "v${version}";
+ sha256 = "q7F4FuK/moKkouXTNPZDVon/W/ZmgtNHJka4MiTxA0U=";
+ };
+
+ sourceRoot = "source/DSView";
+
+ patches = [
+ # Fix absolute install paths
+ ./install.patch
+
+ # Fix buld with Qt5.15 already merged upstream for future release
+ # Using local file instead of content of commit #33e3d896a47 because
+ # sourceRoot make it unappliable
+ ./qt515.patch
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ boost fftw qtbase libusb1 libzip libsigrokdecode4dsl libsigrok4dsl
+ python3
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "A GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc";
+ homepage = "https://www.dreamsourcelab.com/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ bachp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/install.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/install.patch
new file mode 100644
index 000000000000..75c3e9628656
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/install.patch
@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c1c33e1..208a184 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -427,8 +427,8 @@
+ install(FILES ../NEWS31 DESTINATION share/${PROJECT_NAME} RENAME NEWS31)
+ install(FILES ../ug25.pdf DESTINATION share/${PROJECT_NAME} RENAME ug25.pdf)
+ install(FILES ../ug31.pdf DESTINATION share/${PROJECT_NAME} RENAME ug31.pdf)
+-install(FILES DreamSourceLab.rules DESTINATION /etc/udev/rules.d/)
+-install(FILES DSView.desktop DESTINATION /usr/share/applications/)
++install(FILES DreamSourceLab.rules DESTINATION etc/udev/rules.d/)
++install(FILES DSView.desktop DESTINATION share/applications/)
+
+ #===============================================================================
+ #= Packaging (handled by CPack)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix
new file mode 100644
index 000000000000..7915cb0ba4ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix
@@ -0,0 +1,28 @@
+{ stdenv, pkgconfig, autoreconfHook,
+glib, libzip, libserialport, check, libusb1, libftdi,
+systemd, alsaLib, dsview
+}:
+
+stdenv.mkDerivation {
+ inherit (dsview) version src;
+
+ pname = "libsigrok4dsl";
+
+ postUnpack = ''
+ export sourceRoot=$sourceRoot/libsigrok4DSL
+ '';
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+
+ buildInputs = [
+ glib libzip libserialport libusb1 libftdi systemd check alsaLib
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A fork of the sigrok library for usage with DSView";
+ homepage = "https://www.dreamsourcelab.com/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bachp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrokdecode4dsl.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrokdecode4dsl.nix
new file mode 100644
index 000000000000..72b2fa1b6854
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrokdecode4dsl.nix
@@ -0,0 +1,27 @@
+{ stdenv, pkgconfig, autoreconfHook,
+glib, check, python3, dsview
+}:
+
+stdenv.mkDerivation {
+ inherit (dsview) version src;
+
+ pname = "libsigrokdecode4dsl";
+
+ postUnpack = ''
+ export sourceRoot=$sourceRoot/libsigrokdecode4DSL
+ '';
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+
+ buildInputs = [
+ python3 glib check
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A fork of the sigrokdecode library for usage with DSView";
+ homepage = "https://www.dreamsourcelab.com/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bachp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/qt515.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/qt515.patch
new file mode 100644
index 000000000000..552f2062ec57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/dsview/qt515.patch
@@ -0,0 +1,13 @@
+diff --git a/pv/view/viewport.cpp b/pv/view/viewport.cpp
+index 921d3db..16cdce9 100755
+--- a/pv/view/viewport.cpp
++++ b/pv/view/viewport.cpp
+@@ -37,7 +37,7 @@
+
+ #include <QMouseEvent>
+ #include <QStyleOption>
+-
++#include <QPainterPath>
+
+ #include <math.h>
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
new file mode 100644
index 000000000000..400e5e300975
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -0,0 +1,80 @@
+{ stdenv, mkDerivation, fetchurl, makeDesktopItem
+, libXrender, libXrandr, libXcursor, libX11, libXext, libXi, libxcb
+ , libGL, glib, nss, nspr, expat, alsaLib
+, qtbase, qtdeclarative, qtsvg, qtlocation, qtwebchannel, qtwebengine
+}:
+
+let
+ libPath = stdenv.lib.makeLibraryPath
+ [ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
+ libGL glib nss nspr expat alsaLib
+ qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
+ ];
+ in
+ mkDerivation rec {
+ pname = "eagle";
+ version = "9.6.2";
+
+ src = fetchurl {
+ url = "https://eagle-updates.circuits.io/downloads/${builtins.replaceStrings ["."] ["_"] version}/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
+ sha256 = "18syygnskl286kn8aqfzzdsyzq59d2w19y1h1ynyxsnrvkyv71h0";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "eagle";
+ exec = "eagle";
+ icon = "eagle";
+ comment = "Schematic capture and PCB layout";
+ desktopName = "Eagle";
+ genericName = "Schematic editor";
+ categories = "Development;";
+ };
+
+ buildInputs =
+ [ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
+ libGL glib nss nspr expat alsaLib
+ qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
+ ];
+
+ installPhase = ''
+ # Extract eagle tarball
+ mkdir "$out"
+ tar -xzf "$src" -C "$out"
+
+ # Install manpage
+ mkdir -p "$out"/share/man/man1
+ ln -s "$out"/eagle-${version}/doc/eagle.1 "$out"/share/man/man1/eagle.1
+
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${libPath}:$out/eagle-${version}/lib:${stdenv.cc.cc.lib}/lib" \
+ "$out"/eagle-${version}/eagle
+
+ mkdir -p "$out"/bin
+ ln -s "$out"/eagle-${version}/eagle "$out"/bin/eagle
+
+ # Remove bundled libraries that are available in nixpkgs
+ # TODO: There still may be unused bundled libraries
+ rm "$out"/eagle-${version}/lib/libQt5*.so.5
+ rm "$out"/eagle-${version}/lib/{libxcb-*.so.*,libX*.so.*,libxshmfence.so.1}
+ rm "$out"/eagle-${version}/lib/{libEGL.so.1,libglapi.so.0,libgbm.so.1}
+
+ # No longer needed (we don't use the bundled Qt libraries)
+ rm -r "$out"/eagle-${version}/libexec
+ rm -r "$out"/eagle-${version}/plugins
+
+ # Make desktop item
+ mkdir -p "$out"/share/applications
+ cp "$desktopItem"/share/applications/* "$out"/share/applications/
+ mkdir -p "$out"/share/icons
+ ln -s "$out/eagle-${version}/bin/eagle-logo.png" "$out"/share/icons/eagle.png
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Schematic editor and PCB layout tool from Autodesk (formerly CadSoft)";
+ homepage = "https://www.autodesk.com/products/eagle/overview";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ maintainers.rittelle ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix
new file mode 100644
index 000000000000..5546bb910455
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix
@@ -0,0 +1,97 @@
+{ stdenv, fetchurl, makeDesktopItem, patchelf, zlib, freetype, fontconfig
+, openssl, libXrender, libXrandr, libXcursor, libX11, libXext, libXi
+, libxcb, cups, xkeyboardconfig, runtimeShell
+}:
+
+let
+
+ libPath = stdenv.lib.makeLibraryPath
+ [ zlib freetype fontconfig openssl libXrender libXrandr libXcursor libX11
+ libXext libXi libxcb cups
+ ];
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "eagle";
+ version = "7.7.0";
+
+ src =
+ if stdenv.hostPlatform.system == "i686-linux" then
+ fetchurl {
+ url = "ftp://ftp.cadsoft.de/eagle/program/7.7/eagle-lin32-${version}.run";
+ sha256 = "16fa66p77xigc7zvzfm7737mllrcs6nrgk2p7wvkjw3p9lvbz7z1";
+ }
+ else if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "ftp://ftp.cadsoft.de/eagle/program/7.7/eagle-lin64-${version}.run";
+ sha256 = "18dcn6wqph1sqh0ah98qzfi05wip8a8ifbkaq79iskbrsi8iqnrg";
+ }
+ else
+ throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+ desktopItem = makeDesktopItem {
+ name = "eagle";
+ exec = "eagle";
+ icon = "eagle";
+ comment = "Schematic capture and PCB layout";
+ desktopName = "Eagle";
+ genericName = "Schematic editor";
+ categories = "Development;";
+ };
+
+ buildInputs =
+ [ patchelf zlib freetype fontconfig openssl libXrender libXrandr libXcursor
+ libX11 libXext libXi
+ ];
+
+ phases = [ "installPhase" ];
+
+ # NOTES:
+ # Eagle for Linux comes as a self-extracting shell script with embedded
+ # tarball. The tarball data (.tar.bz2) starts after a __DATA__ marker.
+ #
+ # Eagle apparently doesn't like binary patching. This is what happens:
+ # $ ./result/eagle-6.4.0/bin/eagle
+ # argv[0] (/home/bfo/nixpkgs/result/eagle-6.4.0/bin/eagle) is not the currently executed program version!
+ installPhase = ''
+ # Extract eagle tarball
+ mkdir "$out"
+ sed '1,/^__DATA__$/d' "$src" | tar -xjf - -C "$out"
+
+ # Install manpage
+ mkdir -p "$out"/share/man/man1
+ ln -s "$out"/eagle-${version}/doc/eagle.1 "$out"/share/man/man1/eagle.1
+
+ # Build LD_PRELOAD library that redirects license file access to the home
+ # directory of the user
+ mkdir -p "$out"/lib
+ gcc -shared -fPIC -DEAGLE_PATH=\"$out/eagle-${version}\" ${./eagle7_fixer.c} -o "$out"/lib/eagle_fixer.so -ldl
+
+ # Make wrapper script
+ dynlinker="$(cat $NIX_CC/nix-support/dynamic-linker)"
+ mkdir -p "$out"/bin
+ cat > "$out"/bin/eagle << EOF
+ #!${runtimeShell}
+ export LD_LIBRARY_PATH="${stdenv.cc.cc.lib}/lib:${libPath}"
+ export LD_PRELOAD="$out/lib/eagle_fixer.so"
+ export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"
+ exec "$dynlinker" "$out/eagle-${version}/bin/eagle" "\$@"
+ EOF
+ chmod a+x "$out"/bin/eagle
+
+ # Make desktop item
+ mkdir -p "$out"/share/applications
+ cp "$desktopItem"/share/applications/* "$out"/share/applications/
+ mkdir -p "$out"/share/icons
+ ln -s "$out/eagle-${version}/bin/eagleicon50.png" "$out"/share/icons/eagle.png
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Schematic editor and PCB layout tool from CadSoft";
+ homepage = "http://www.cadsoftusa.com/";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7_fixer.c b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7_fixer.c
new file mode 100644
index 000000000000..da9da4dcbd3a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7_fixer.c
@@ -0,0 +1,134 @@
+/*
+ * LD_PRELOAD trick to make Eagle (schematic editor and PCB layout tool from
+ * CadSoft) work from a read-only installation directory.
+ *
+ * When Eagle starts, it looks for the license file in <eagle>/bin/eagle.key
+ * (where <eagle> is the install path). If eagle.key is not found, Eagle checks
+ * for write access to <eagle>/bin/, shows a license dialog to the user and
+ * then attempts to write a license file to <eagle>/bin/.
+ *
+ * This will of course fail when Eagle is installed in the read-only Nix store.
+ * Hence this library that redirects accesses to the those paths in the
+ * following way:
+ *
+ * <eagle>/bin => $HOME
+ * <eagle>/bin/eagle.key => $HOME/.eagle.key
+ *
+ * Also, if copying an example project to ~/eagle/ (in the Eagle GUI), Eagle
+ * chmod's the destination with read-only permission bits (presumably because
+ * the source is read-only) and fails to complete the copy operation.
+ * Therefore, the mode argument in calls to chmod() is OR'ed with the S_IWUSR
+ * bit (write by owner).
+ *
+ * Usage:
+ * gcc -shared -fPIC -DEAGLE_PATH="$out/eagle-${version}" eagle_fixer.c -o eagle_fixer.so -ldl
+ * LD_PRELOAD=$PWD/eagle_fixer.so ./result/bin/eagle
+ *
+ * To see the paths that are modified at runtime, set the environment variable
+ * EAGLE_FIXER_DEBUG to 1.
+ */
+
+#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>
+
+#ifndef EAGLE_PATH
+#error Missing EAGLE_PATH, path to the eagle-${version} installation directory.
+#endif
+
+typedef FILE *(*fopen_func_t)(const char *path, const char *mode);
+typedef int (*access_func_t)(const char *pathname, int mode);
+typedef int (*chmod_func_t)(const char *path, mode_t mode);
+
+/*
+ * Map <eagle>/bin to $HOME and <eagle>/bin/eagle.key to $HOME/.eagle.key
+ *
+ * Path is truncated if bigger than PATH_MAX. It's not threadsafe, but that's
+ * OK.
+ */
+static const char *redirect(const char *pathname)
+{
+ static char buffer[PATH_MAX];
+ const char *homepath;
+ const char *new_path;
+ static int have_warned;
+
+ homepath = getenv("HOME");
+ if (!homepath) {
+ homepath = "/";
+ if (!have_warned && getenv("EAGLE_FIXER_DEBUG")) {
+ fprintf(stderr, "eagle_fixer: HOME is unset, using \"/\" (root) instead.\n");
+ have_warned = 1;
+ }
+ }
+
+ new_path = pathname;
+ if (strcmp(EAGLE_PATH "/bin", pathname) == 0) {
+ /* redirect to $HOME */
+ new_path = homepath;
+ } else if (strcmp(EAGLE_PATH "/bin/eagle.key", pathname) == 0) {
+ /* redirect to $HOME/.eagle.key */
+ snprintf(buffer, PATH_MAX, "%s/.eagle.key", homepath);
+ buffer[PATH_MAX-1] = '\0';
+ new_path = buffer;
+ }
+
+ return new_path;
+}
+
+FILE *fopen(const char *pathname, const char *mode)
+{
+ FILE *fp;
+ const char *path;
+ fopen_func_t orig_fopen;
+
+ orig_fopen = (fopen_func_t)dlsym(RTLD_NEXT, "fopen");
+ path = redirect(pathname);
+ fp = orig_fopen(path, mode);
+
+ if (path != pathname && getenv("EAGLE_FIXER_DEBUG")) {
+ fprintf(stderr, "eagle_fixer: fopen(\"%s\", \"%s\") => \"%s\": fp=%p\n", pathname, mode, path, fp);
+ }
+
+ return fp;
+}
+
+int access(const char *pathname, int mode)
+{
+ int ret;
+ const char *path;
+ access_func_t orig_access;
+
+ orig_access = (access_func_t)dlsym(RTLD_NEXT, "access");
+ path = redirect(pathname);
+ ret = orig_access(path, mode);
+
+ if (path != pathname && getenv("EAGLE_FIXER_DEBUG")) {
+ fprintf(stderr, "eagle_fixer: access(\"%s\", %d) => \"%s\": ret=%d\n", pathname, mode, path, ret);
+ }
+
+ return ret;
+}
+
+int chmod(const char *pathname, mode_t mode)
+{
+ int ret;
+ mode_t new_mode;
+ chmod_func_t orig_chmod;
+
+ orig_chmod = (chmod_func_t)dlsym(RTLD_NEXT, "chmod");
+ new_mode = mode | S_IWUSR;
+ ret = orig_chmod(pathname, new_mode);
+
+ if (getenv("EAGLE_FIXER_DEBUG")) {
+ fprintf(stderr, "eagle_fixer: chmod(\"%s\", %o) => %o: ret=%d\n", pathname, mode, new_mode, ret);
+ }
+
+ return ret;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/flatcam/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/flatcam/default.nix
new file mode 100644
index 000000000000..b8a80c5e9c11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/flatcam/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, python3Packages
+, fetchFromBitbucket
+, fetchpatch
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "flatcam";
+ version = "8.5";
+
+ src = fetchFromBitbucket {
+ owner = "jpcgt";
+ repo = pname;
+ rev = "533afd6a1772857cb633c011b5e0a15b60b1e92e"; # 8.5 with Red Hat packaging.
+ sha256 = "199kiiml18k34z1zhk2hbhibphmnv0kb11kxiajq52alps0mjb3m";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ matplotlib
+ numpy
+ pyqt4
+ Rtree
+ scipy
+ setuptools
+ shapely
+ simplejson
+ six
+ svg-path
+ ];
+
+ packaging_fix_pull_request_patch = fetchpatch {
+ name = "packaging_fix_pull_request.patch";
+ url = "https://bitbucket.org/trepetti/flatcam/commits/5591ed889d1f48a5190fe237b562cb932cb5876c/raw";
+ sha256 = "19rhjdrf1n1q29cgpcry6pl2kl90zq0d613hhkwdir9bhq5bkknp";
+ };
+
+ patches = [
+ packaging_fix_pull_request_patch
+ ./release.patch
+ ];
+
+ # Only non-GUI tests can be run deterministically in the Nix build environment.
+ checkPhase = ''
+ python -m unittest tests.test_excellon
+ python -m unittest tests.test_gerber_buffer
+ python -m unittest tests.test_paint
+ python -m unittest tests.test_pathconnect
+ '';
+
+ meta = with lib; {
+ description = "2-D post processing for PCB fabrication on CNC routers";
+ homepage = "https://bitbucket.org/jpcgt/flatcam";
+ license = licenses.mit;
+ maintainers = with maintainers; [ trepetti ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/flatcam/release.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/flatcam/release.patch
new file mode 100644
index 000000000000..945228e35bab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/flatcam/release.patch
@@ -0,0 +1,13 @@
+diff --git a/FlatCAMVersion.py b/FlatCAMVersion.py
+index ba9e04a5..2c64d5a6 100644
+--- a/FlatCAMVersion.py
++++ b/FlatCAMVersion.py
+@@ -16,7 +16,7 @@ version = {
+ "number": 8.5,
+ "date": (2016, 7, 1), # Year, Month, Day
+ "name": None,
+- "release": False,
++ "release": True,
+ }
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fparser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fparser/default.nix
new file mode 100644
index 000000000000..55e40ca2b00b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fparser/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+ pname = "fparser";
+ version = "unstable-2015-09-25";
+
+ src = fetchFromGitHub {
+ owner = "thliebig";
+ repo = "fparser";
+ rev = "a59e1f51e32096bfe2a0a2640d5dffc7ae6ba37b";
+ sha256 = "0wayml1mlyi922gp6am3fsidhzsilziksdn5kbnpcln01h8555ad";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "C++ Library for Evaluating Mathematical Functions";
+ homepage = "https://github.com/thliebig/fparser";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ matthuszagh ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fped/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fped/default.nix
new file mode 100644
index 000000000000..9ef47ae26346
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fped/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchgit
+, flex, bison, fig2dev, imagemagick, netpbm, gtk2
+, pkgconfig
+}:
+
+with lib;
+stdenv.mkDerivation {
+ pname = "fped";
+ version = "unstable-2017-05-11";
+
+ src = fetchgit {
+ url = "git://projects.qi-hardware.com/fped.git";
+ rev = "fa98e58157b6f68396d302c32421e882ac87f45b";
+ sha256 = "0xv364a00zwxhd9kg1z9sch5y0cxnrhk546asspyb9bh58sdzfy7";
+ };
+
+ # This uses '/bin/bash', '/usr/local' and 'lex' by default
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "LEX=flex"
+ "RGBDEF=${netpbm.out}/share/netpbm/misc/rgb.txt"
+ ];
+
+ nativeBuildInputs = [
+ flex
+ bison
+ pkgconfig
+ imagemagick
+ fig2dev
+ netpbm
+ ];
+
+ buildInputs = [
+ gtk2
+ ];
+
+ meta = {
+ description = "An editor that allows the interactive creation of footprints electronic components";
+ homepage = "http://projects.qi-hardware.com/index.php/p/fped/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ expipiplus1 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
new file mode 100644
index 000000000000..f8a0adea482b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
@@ -0,0 +1,86 @@
+{ mkDerivation, stdenv, fetchpatch, fetchFromGitHub, qmake, pkgconfig
+, qtbase, qtsvg, qttools, qtserialport, boost, libgit2
+}:
+
+let
+ # build number corresponding to a release, has no further relation
+ # see https://github.com/fritzing/fritzing-app/releases/tag/CD-498
+ fritzingBuild = "498";
+ # SHA256 of the fritzing-parts HEAD on the master branch,
+ # which contains the latest stable parts definitions
+ partsSha = "e79a69765026f3fda8aab1b3e7a4952c28047a62";
+in
+
+mkDerivation rec {
+ pname = "fritzing";
+ version = "0.9.4-${fritzingBuild}";
+
+ src = fetchFromGitHub {
+ owner = "fritzing";
+ repo = "fritzing-app";
+ rev = "CD-${fritzingBuild}";
+ sha256 = "0aljj2wbmm1vd64nhj6lh9qy856pd5avlgydsznya2vylyz20p34";
+ };
+
+ parts = fetchFromGitHub {
+ owner = "fritzing";
+ repo = "fritzing-parts";
+ name = "fritzing-parts";
+ rev = partsSha;
+ sha256 = "0spka33a5qq34aq79j01arw1aly4vh0hzv7mahryhdlcdk22qqvc";
+ };
+
+ buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ];
+
+ nativeBuildInputs = [ qmake pkgconfig qttools ];
+
+ patches = [(fetchpatch {
+ name = "fix-libgit2-version.patch";
+ url = "https://github.com/fritzing/fritzing-app/commit/472951243d70eeb40a53b1f7e16e6eab0588d079.patch";
+ sha256 = "0v1zi609cjnqac80xgnk23n54z08g1lia37hbzfl8jcq9sn9adak";
+ })];
+
+ postPatch = ''
+ substituteInPlace phoenix.pro \
+ --replace 'LIBGIT_STATIC = true' 'LIBGIT_STATIC = false'
+
+ substituteInPlace tools/linux_release_script/release.sh \
+ --replace 'git status' 'echo >/dev/null' \
+ --replace 'git clean' 'echo >/dev/null' \
+ --replace 'git clone' 'echo >/dev/null' \
+ --replace 'release_folder="' 'release_folder="$out" #' \
+ --replace './Fritzing -db' '# run after fixup'
+
+ substituteInPlace src/fapplication.cpp \
+ --replace 'PartsChecker::getSha(dir.absolutePath());' '"${partsSha}";'
+ '';
+
+ buildPhase = ''
+ bash tools/linux_release_script/release.sh ${version}
+ '';
+
+ installPhase = ''
+ rm "$out/Fritzing" # remove script file
+ mkdir "$out/bin"
+ mv "$out/lib/Fritzing" "$out/bin/Fritzing"
+ mkdir --parents "$out/share/applications" "$out/share/metainfo"
+ mv --target-directory="$out/share/applications" "$out/org.fritzing.Fritzing.desktop"
+ mv --target-directory="$out/share/metainfo" "$out/org.fritzing.Fritzing.appdata.xml"
+ cp --recursive --no-target-directory "$parts" "$out/fritzing-parts"
+ '';
+
+ postFixup = ''
+ # generate the parts.db file
+ QT_QPA_PLATFORM=offscreen "$out/bin/Fritzing" -db "$out/fritzing-parts/parts.db" -pp "$out/fritzing-parts" -folder "$out"
+ '';
+
+ qmakeFlags = [ "phoenix.pro" ];
+
+ meta = {
+ description = "An open source prototyping tool for Arduino-based projects";
+ homepage = "https://fritzing.org/";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.robberer ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/geda/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/geda/default.nix
new file mode 100644
index 000000000000..54ab7ec57e27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/geda/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, guile, gtk2, flex, gawk, perl }:
+
+stdenv.mkDerivation {
+ pname = "geda";
+ version = "1.8.2-20130925";
+
+ src = fetchurl {
+ url = "http://ftp.geda-project.org/geda-gaf/stable/v1.8/1.8.2/geda-gaf-1.8.2.tar.gz";
+ sha256 = "08dpa506xk4gjbbi8vnxcb640wq4ihlgmhzlssl52nhvxwx7gx5v";
+ };
+
+ configureFlags = [
+ "--disable-update-xdg-database"
+ ];
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ guile gtk2 flex gawk perl ];
+
+ meta = with stdenv.lib; {
+ description = "Full GPL'd suite of Electronic Design Automation tools";
+ homepage = "http://www.geda-project.org/";
+ maintainers = with maintainers; [ pjones ];
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix
new file mode 100644
index 000000000000..b0317551df8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, pkgconfig, gettext, libtool, automake, autoconf, cairo, gtk2, autoreconfHook }:
+
+stdenv.mkDerivation {
+ pname = "gerbv";
+ version = "2015-10-08";
+
+ src = fetchgit {
+ url = "git://git.geda-project.org/gerbv.git";
+ rev = "76b8b67bfa10823ce98f1c4c3b49a2afcadf7659";
+ sha256 = "00jn1xhf6kblxc5gac1wvk8zm12fy6sk81nj3jwdag0z6wk3z446";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ gettext libtool automake autoconf cairo gtk2 ];
+
+ configureFlags = ["--disable-update-desktop-database"];
+
+ meta = with stdenv.lib; {
+ description = "A Gerber (RS-274X) viewer";
+ homepage = "http://gerbv.geda-project.org/";
+ maintainers = with maintainers; [ mog ];
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
new file mode 100644
index 000000000000..ad5e9e55c575
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, glib, gtk3, gperf, pkgconfig, bzip2, tcl, tk, wrapGAppsHook, judy, xz }:
+
+stdenv.mkDerivation rec {
+ pname = "gtkwave";
+ version = "3.3.107";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
+ sha256 = "0ma30jyc94iid3v3m8aw4i2lyiqfxkpsdvdmmaibynk400cbzivl";
+ };
+
+ nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+ buildInputs = [ glib gtk3 gperf bzip2 tcl tk judy xz ];
+
+ configureFlags = [
+ "--with-tcl=${tcl}/lib"
+ "--with-tk=${tk}/lib"
+ "--enable-judy"
+ "--enable-gtk3"
+ ];
+
+ meta = {
+ description = "VCD/Waveform viewer for Unix and Win32";
+ homepage = "http://gtkwave.sourceforge.net";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
new file mode 100644
index 000000000000..06053a8f356b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, python3Packages
+, boost, rapidjson, qtbase, qtsvg, igraph, spdlog, wrapQtAppsHook
+, llvmPackages ? null
+}:
+
+stdenv.mkDerivation rec {
+ version = "2.0.0";
+ pname = "hal-hardware-analyzer";
+
+ src = fetchFromGitHub {
+ owner = "emsec";
+ repo = "hal";
+ rev = "v${version}";
+ sha256 = "11xmqxnryksl645wmm1d69k1b5zwvxxf0admk4iblzaa3ggf7cv1";
+ };
+ # make sure bundled dependencies don't get in the way - install also otherwise
+ # copies them in full to the output, bloating the package
+ postPatch = ''
+ rm -rf deps/*/*
+ substituteInPlace cmake/detect_dependencies.cmake \
+ --replace 'spdlog 1.4.2 EXACT' 'spdlog 1.4.2 REQUIRED'
+ '';
+
+ nativeBuildInputs = [ cmake ninja pkgconfig ];
+ buildInputs = [ qtbase qtsvg boost rapidjson igraph spdlog wrapQtAppsHook ]
+ ++ (with python3Packages; [ python pybind11 ])
+ ++ stdenv.lib.optional stdenv.cc.isClang llvmPackages.openmp;
+
+ cmakeFlags = with stdenv.lib.versions; [
+ "-DHAL_VERSION_RETURN=${version}"
+ "-DHAL_VERSION_MAJOR=${major version}"
+ "-DHAL_VERSION_MINOR=${minor version}"
+ "-DHAL_VERSION_PATCH=${patch version}"
+ "-DHAL_VERSION_TWEAK=0"
+ "-DHAL_VERSION_ADDITIONAL_COMMITS=0"
+ "-DHAL_VERSION_DIRTY=false"
+ "-DHAL_VERSION_BROKEN=false"
+ "-DENABLE_INSTALL_LDCONFIG=off"
+ "-DBUILD_ALL_PLUGINS=on"
+ ];
+ # needed for macos build - this is why we use wrapQtAppsHook instead of
+ # the qt mkDerivation - the latter forcibly overrides this.
+ cmakeBuildType = "MinSizeRel";
+
+ meta = {
+ description = "A comprehensive reverse engineering and manipulation framework for gate-level netlists";
+ homepage = "https://github.com/emsec/hal";
+ license = stdenv.lib.licenses.mit;
+ platforms = with stdenv.lib.platforms; unix;
+ maintainers = with stdenv.lib.maintainers; [ ris ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix
new file mode 100644
index 000000000000..6b9f07ee68f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/horizon-eda/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, boost
+, coreutils
+, cppzmq
+, curl
+, epoxy
+, fetchFromGitHub
+, glm
+, gnome3
+, lib
+, libgit2
+, librsvg
+, libuuid
+, libzip
+, opencascade
+, pkgconfig
+, podofo
+, python3
+, sqlite
+, wrapGAppsHook
+, zeromq
+}:
+
+stdenv.mkDerivation rec {
+ pname = "horizon-eda";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "horizon-eda";
+ repo = "horizon";
+ rev = "v${version}";
+ sha256 = "13c4p60vrmwmnrv2jcr2gc1cxnimy7j8yp1p6434pbbk2py9k8mx";
+ };
+
+ buildInputs = [
+ cppzmq
+ curl
+ epoxy
+ glm
+ gnome3.gtkmm
+ libgit2
+ librsvg
+ libuuid
+ libzip
+ opencascade
+ podofo
+ python3
+ sqlite
+ zeromq
+ ];
+
+ nativeBuildInputs = [
+ boost.dev
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ CASROOT = opencascade;
+
+ installFlags = [
+ "INSTALL=${coreutils}/bin/install"
+ "DESTDIR=$(out)"
+ "PREFIX="
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "A free EDA software to develop printed circuit boards";
+ homepage = "https://horizon-eda.org";
+ maintainers = with maintainers; [ guserav ];
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix
new file mode 100644
index 000000000000..154b68dd5aa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, fetchFromGitHub
+, bison
+, flex
+, gengetopt
+, help2man
+, groff
+, libharu
+, autoreconfHook
+, pkgconfig
+, libpng
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "hyp2mat";
+ version = "0.0.18";
+
+ src = fetchFromGitHub {
+ owner = "koendv";
+ repo = "hyp2mat";
+ rev = "v${version}";
+ sha256 = "03ibk51swxfl7pfrhcrfiffdi4mnf8kla0g1xj1lsrvrjwapfx03";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ ];
+
+ buildInputs = [
+ libharu
+ libpng
+ zlib
+ bison
+ flex
+ gengetopt
+ help2man
+ groff
+ ];
+
+ configureFlags = [ "--enable-library" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Import Hyperlynx Boardsim files to openEMS, an open source 3D full-wave electromagnetic field solver";
+ homepage = "https://github.com/koendv/hyp2mat";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ matthuszagh ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
new file mode 100644
index 000000000000..7f11f483a9d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
@@ -0,0 +1,146 @@
+{ stdenv
+, fetchFromGitLab
+, cmake
+, libGLU
+, libGL
+, zlib
+, wxGTK
+, libX11
+, gettext
+, glew
+, glm
+, cairo
+, curl
+, openssl
+, boost
+, pkgconfig
+, doxygen
+, pcre
+, libpthreadstubs
+, libXdmcp
+, fetchpatch
+, lndir
+, callPackage
+
+, stable
+, baseName
+, kicadSrc
+, kicadVersion
+, i18n
+, withOCE
+, opencascade
+, withOCC
+, opencascade-occt
+, withNgspice
+, libngspice
+, withScripting
+, swig
+, python
+, wxPython
+, debug
+, valgrind
+, withI18n
+, gtk3
+}:
+
+assert stdenv.lib.asserts.assertMsg (!(withOCE && stdenv.isAarch64)) "OCE fails a test on Aarch64";
+assert stdenv.lib.asserts.assertMsg (!(withOCC && withOCE))
+ "Only one of OCC and OCE may be enabled";
+let
+ inherit (stdenv.lib) optional optionals;
+in
+stdenv.mkDerivation rec {
+ pname = "kicad-base";
+ version = kicadVersion;
+
+ src = kicadSrc;
+
+ # tagged releases don't have "unknown"
+ # kicad nightlies use git describe --dirty
+ # nix removes .git, so its approximated here
+ # "-1" appended to indicate we're adding a patch
+ postPatch = ''
+ substituteInPlace CMakeModules/KiCadVersion.cmake \
+ --replace "unknown" "${builtins.substring 0 10 src.rev}-1" \
+ --replace "${version}" "${version}-1"
+ '';
+
+ makeFlags = optional (debug) [ "CFLAGS+=-Og" "CFLAGS+=-ggdb" ];
+
+ cmakeFlags =
+ optionals (withScripting) [
+ "-DKICAD_SCRIPTING=ON"
+ "-DKICAD_SCRIPTING_MODULES=ON"
+ "-DKICAD_SCRIPTING_PYTHON3=ON"
+ "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
+ ]
+ ++ optional (!withScripting)
+ "-DKICAD_SCRIPTING=OFF"
+ ++ optional (withNgspice) "-DKICAD_SPICE=ON"
+ ++ optional (!withOCE) "-DKICAD_USE_OCE=OFF"
+ ++ optional (!withOCC) "-DKICAD_USE_OCC=OFF"
+ ++ optionals (withOCE) [
+ "-DKICAD_USE_OCE=ON"
+ "-DOCE_DIR=${opencascade}"
+ ]
+ ++ optionals (withOCC) [
+ "-DKICAD_USE_OCC=ON"
+ "-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade"
+ ]
+ ++ optionals (debug) [
+ "-DCMAKE_BUILD_TYPE=Debug"
+ "-DKICAD_STDLIB_DEBUG=ON"
+ "-DKICAD_USE_VALGRIND=ON"
+ ]
+ ;
+
+ nativeBuildInputs = [ cmake doxygen pkgconfig lndir ];
+
+ buildInputs = [
+ libGLU
+ libGL
+ zlib
+ libX11
+ wxGTK
+ pcre
+ libXdmcp
+ gettext
+ glew
+ glm
+ libpthreadstubs
+ cairo
+ curl
+ openssl
+ boost
+ gtk3
+ ]
+ ++ optionals (withScripting) [ swig python wxPython ]
+ ++ optional (withNgspice) libngspice
+ ++ optional (withOCE) opencascade
+ ++ optional (withOCC) opencascade-occt
+ ++ optional (debug) valgrind
+ ;
+
+ # debug builds fail all but the python test
+ # 5.1.x fails the eeschema test
+ doInstallCheck = !debug && !stable;
+ installCheckTarget = "test";
+
+ dontStrip = debug;
+
+ postInstall = optional (withI18n) ''
+ mkdir -p $out/share
+ lndir ${i18n}/share $out/share
+ '';
+
+ meta = {
+ description = "Just the built source without the libraries";
+ longDescription = ''
+ Just the build products, optionally with the i18n linked in
+ the libraries are passed via an env var in the wrapper, default.nix
+ '';
+ homepage = "https://www.kicad-pcb.org/";
+ license = stdenv.lib.licenses.agpl3;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
new file mode 100644
index 000000000000..48a5779d207a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
@@ -0,0 +1,272 @@
+{ stdenv
+, fetchFromGitLab
+, gnome3
+, wxGTK30
+, wxGTK31
+, makeWrapper
+, gsettings-desktop-schemas
+, hicolor-icon-theme
+, callPackage
+, callPackages
+, librsvg
+, cups
+
+, pname ? "kicad"
+, stable ? true
+, oceSupport ? false
+, withOCE ? false
+, opencascade
+, withOCCT ? false
+, withOCC ? true
+, opencascade-occt
+, ngspiceSupport ? false
+, withNgspice ? true
+, libngspice
+, scriptingSupport ? false
+, withScripting ? true
+, swig
+, python3
+, debug ? false
+, valgrind
+, with3d ? true
+, withI18n ? true
+, srcs ? { }
+}:
+
+# The `srcs` parameter can be used to override the kicad source code
+# and all libraries (including i18n), which are otherwise inaccessible
+# to overlays since most of the kicad build expression has been
+# refactored into base.nix, most of the library build expressions have
+# been refactored into libraries.nix, and most the i18n build
+# expression has been refactored into i18n.nix. Overrides are only
+# applied when building `kicad-unstable`. The `srcs` parameter has no
+# effect for stable `kicad`. `srcs` takes an attribute set in which
+# any of the following attributes are meaningful (though none are
+# mandatory): "kicad", "kicadVersion", "i18n", "symbols", "templates",
+# "footprints", "packages3d", and "libVersion". "kicadVersion" and
+# "libVersion" should be set to a string with the desired value for
+# the version attribute in kicad's `mkDerivation` and the version
+# attribute in any of the library's or i18n's `mkDerivation`,
+# respectively. "kicad", "i18n", "symbols", "templates", "footprints",
+# and "packages3d" should be set to an appropriate fetcher (e.g.,
+# `fetchFromGitLab`). So, for example, a possible overlay for kicad
+# is:
+#
+# final: prev:
+
+# {
+# kicad-unstable = (prev.kicad-unstable.override {
+# srcs = {
+# kicadVersion = "2020-10-08";
+# kicad = prev.fetchFromGitLab {
+# group = "kicad";
+# owner = "code";
+# repo = "kicad";
+# rev = "fd22fe8e374ce71d57e9f683ba996651aa69fa4e";
+# sha256 = "sha256-F8qugru/jU3DgZSpQXQhRGNFSk0ybFRkpyWb7HAGBdc=";
+# };
+# };
+# });
+# }
+
+assert withNgspice -> libngspice != null;
+assert stdenv.lib.assertMsg (!ngspiceSupport)
+ "`nspiceSupport` was renamed to `withNgspice` for the sake of consistency with other kicad nix arguments.";
+assert stdenv.lib.assertMsg (!oceSupport)
+ "`oceSupport` was renamed to `withOCE` for the sake of consistency with other kicad nix arguments.";
+assert stdenv.lib.assertMsg (!scriptingSupport)
+ "`scriptingSupport` was renamed to `withScripting` for the sake of consistency with other kicad nix arguments.";
+assert stdenv.lib.assertMsg (!withOCCT)
+ "`withOCCT` was renamed to `withOCC` for the sake of consistency with upstream cmake options.";
+let
+ baseName = if (stable) then "kicad" else "kicad-unstable";
+ versionsImport = import ./versions.nix;
+
+ # versions.nix does not provide us with version, src and rev. We
+ # need to turn this into approprate fetcher calls.
+ kicadSrcFetch = fetchFromGitLab {
+ group = "kicad";
+ owner = "code";
+ repo = "kicad";
+ rev = versionsImport.${baseName}.kicadVersion.src.rev;
+ sha256 = versionsImport.${baseName}.kicadVersion.src.sha256;
+ };
+
+ i18nSrcFetch = fetchFromGitLab {
+ group = "kicad";
+ owner = "code";
+ repo = "kicad-i18n";
+ rev = versionsImport.${baseName}.libVersion.libSources.i18n.rev;
+ sha256 = versionsImport.${baseName}.libVersion.libSources.i18n.sha256;
+ };
+
+ libSrcFetch = name: fetchFromGitLab {
+ group = "kicad";
+ owner = "libraries";
+ repo = "kicad-${name}";
+ rev = versionsImport.${baseName}.libVersion.libSources.${name}.rev;
+ sha256 = versionsImport.${baseName}.libVersion.libSources.${name}.sha256;
+ };
+
+ # only override `src` or `version` if building `kicad-unstable` with
+ # the appropriate attribute defined in `srcs`.
+ srcOverridep = attr: (!stable && builtins.hasAttr attr srcs);
+
+ # use default source and version (as defined in versions.nix) by
+ # default, or use the appropriate attribute from `srcs` if building
+ # unstable with `srcs` properly defined.
+ kicadSrc =
+ if srcOverridep "kicad" then srcs.kicad
+ else kicadSrcFetch;
+ kicadVersion =
+ if srcOverridep "kicadVersion" then srcs.kicadVersion
+ else versionsImport.${baseName}.kicadVersion.version;
+
+ i18nSrc = if srcOverridep "i18n" then srcs.i18n else i18nSrcFetch;
+ i18nVersion =
+ if srcOverridep "i18nVersion" then srcs.i18nVersion
+ else versionsImport.${baseName}.libVersion.version;
+
+ libSrc = name: if srcOverridep name then srcs.${name} else libSrcFetch name;
+ # TODO does it make sense to only have one version for all libs?
+ libVersion =
+ if srcOverridep "libVersion" then srcs.libVersion
+ else versionsImport.${baseName}.libVersion.version;
+
+ wxGTK =
+ if (stable)
+ # wxGTK3x may default to withGtk2 = false, see #73145
+ then
+ wxGTK30.override
+ {
+ withGtk2 = false;
+ }
+ # wxGTK31 currently introduces an issue with opening the python interpreter in pcbnew
+ # but brings high DPI support?
+ else
+ wxGTK31.override {
+ withGtk2 = false;
+ };
+
+ python = python3;
+ wxPython = python.pkgs.wxPython_4_0;
+
+ inherit (stdenv.lib) concatStringsSep flatten optionalString optionals;
+in
+stdenv.mkDerivation rec {
+
+ # Common libraries, referenced during runtime, via the wrapper.
+ passthru.libraries = callPackages ./libraries.nix { inherit libSrc libVersion; };
+ passthru.i18n = callPackage ./i18n.nix {
+ src = i18nSrc;
+ version = i18nVersion;
+ };
+ base = callPackage ./base.nix {
+ inherit stable baseName;
+ inherit kicadSrc kicadVersion;
+ inherit (passthru) i18n;
+ inherit wxGTK python wxPython;
+ inherit debug withI18n withOCC withOCE withNgspice withScripting;
+ };
+
+ inherit pname;
+ version = kicadVersion;
+
+ src = base;
+ dontUnpack = true;
+ dontConfigure = true;
+ dontBuild = true;
+ dontFixup = true;
+
+ pythonPath = optionals (withScripting)
+ [ wxPython python.pkgs.six ];
+
+ nativeBuildInputs = [ makeWrapper ]
+ ++ optionals (withScripting)
+ [ python.pkgs.wrapPython ];
+
+ # We are emulating wrapGAppsHook, along with other variables to the
+ # wrapper
+ makeWrapperArgs = with passthru.libraries; [
+ "--prefix XDG_DATA_DIRS : ${base}/share"
+ "--prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share"
+ "--prefix XDG_DATA_DIRS : ${gnome3.defaultIconTheme}/share"
+ "--prefix XDG_DATA_DIRS : ${wxGTK.gtk}/share/gsettings-schemas/${wxGTK.gtk.name}"
+ "--prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"
+ # wrapGAppsHook did these two as well, no idea if it matters...
+ "--prefix XDG_DATA_DIRS : ${cups}/share"
+ "--prefix GIO_EXTRA_MODULES : ${gnome3.dconf}/lib/gio/modules"
+
+ "--set-default KISYSMOD ${footprints}/share/kicad/modules"
+ "--set-default KICAD_SYMBOL_DIR ${symbols}/share/kicad/library"
+ "--set-default KICAD_TEMPLATE_DIR ${templates}/share/kicad/template"
+ "--prefix KICAD_TEMPLATE_DIR : ${symbols}/share/kicad/template"
+ "--prefix KICAD_TEMPLATE_DIR : ${footprints}/share/kicad/template"
+ ]
+ ++ optionals (with3d) [ "--set-default KISYS3DMOD ${packages3d}/share/kicad/modules/packages3d" ]
+ ++ optionals (withNgspice) [ "--prefix LD_LIBRARY_PATH : ${libngspice}/lib" ]
+
+ # infinisil's workaround for #39493
+ ++ [ "--set GDK_PIXBUF_MODULE_FILE ${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ]
+ ;
+
+ # why does $makeWrapperArgs have to be added explicitly?
+ # $out and $program_PYTHONPATH don't exist when makeWrapperArgs gets set?
+ installPhase =
+ let
+ tools = [ "kicad" "pcbnew" "eeschema" "gerbview" "pcb_calculator" "pl_editor" "bitmap2component" ];
+ utils = [ "dxf2idf" "idf2vrml" "idfcyl" "idfrect" "kicad2step" ];
+ in
+ (concatStringsSep "\n"
+ (flatten [
+ (optionalString (withScripting) "buildPythonPath \"${base} $pythonPath\" \n")
+
+ # wrap each of the directly usable tools
+ (map
+ (tool: "makeWrapper ${base}/bin/${tool} $out/bin/${tool} $makeWrapperArgs"
+ + optionalString (withScripting) " --set PYTHONPATH \"$program_PYTHONPATH\""
+ )
+ tools)
+
+ # link in the CLI utils
+ (map (util: "ln -s ${base}/bin/${util} $out/bin/${util}") utils)
+ ])
+ )
+ ;
+
+ # can't run this for each pname
+ # stable and unstable are in the same versions.nix
+ # and kicad-small reuses stable
+ # with "all" it updates both, run it manually if you don't want that
+ # and can't git commit if this could be running in parallel with other scripts
+ passthru.updateScript = [ ./update.sh "all" ];
+
+ meta = rec {
+ description = (if (stable)
+ then "Open Source Electronics Design Automation suite"
+ else "Open Source EDA suite, development build")
+ + (if (!with3d) then ", without 3D models" else "");
+ homepage = "https://www.kicad-pcb.org/";
+ longDescription = ''
+ KiCad is an open source software suite for Electronic Design Automation.
+ The Programs handle Schematic Capture, and PCB Layout with Gerber output.
+ '';
+ license = stdenv.lib.licenses.agpl3;
+ # berce seems inactive...
+ maintainers = with stdenv.lib.maintainers; [ evils kiwi berce ];
+ # kicad is cross platform
+ platforms = stdenv.lib.platforms.all;
+ # despite that, nipkgs' wxGTK for darwin is "wxmac"
+ # and wxPython_4_0 does not account for this
+ # adjusting this package to downgrade to python2Packages.wxPython (wxPython 3),
+ # seems like more trouble than fixing wxPython_4_0 would be
+ # additionally, libngspice is marked as linux only, though it should support darwin
+
+ hydraPlatforms = if (with3d) then [ ] else platforms;
+ # We can't download the 3d models on Hydra,
+ # they are a ~1 GiB download and they occupy ~5 GiB in store.
+ # as long as the base and libraries (minus 3d) are build,
+ # this wrapper does not need to get built
+ # the kicad-*small "packages" cause this to happen
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/i18n.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/i18n.nix
new file mode 100644
index 000000000000..95cea4fd7fc4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/i18n.nix
@@ -0,0 +1,18 @@
+{ stdenv
+, cmake
+, gettext
+, src
+, version
+}:
+
+stdenv.mkDerivation {
+ inherit src version;
+
+ pname = "kicad-i18n";
+
+ nativeBuildInputs = [ cmake gettext ];
+ meta = with stdenv.lib; {
+ license = licenses.gpl2; # https://github.com/KiCad/kicad-i18n/issues/3
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix
new file mode 100644
index 000000000000..b045a7d1068b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, cmake
+, gettext
+, libSrc
+, libVersion
+}:
+let
+ mkLib = name:
+ stdenv.mkDerivation {
+ pname = "kicad-${name}";
+ version = libVersion;
+
+ src = libSrc name;
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = rec {
+ license = stdenv.lib.licenses.cc-by-sa-40;
+ platforms = stdenv.lib.platforms.all;
+ # the 3d models are a ~1 GiB download and occupy ~5 GiB in store.
+ # this would exceed the hydra output limit
+ hydraPlatforms = if (name == "packages3d") then [ ] else platforms;
+ };
+ };
+in
+{
+ symbols = mkLib "symbols";
+ templates = mkLib "templates";
+ footprints = mkLib "footprints";
+ packages3d = mkLib "packages3d";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/update.sh
new file mode 100755
index 000000000000..cfd78323b77a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/update.sh
@@ -0,0 +1,193 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p coreutils git nix curl
+
+set -e
+
+# this script will generate versions.nix in the right location
+# this should contain the versions' revs and hashes
+# the stable revs are stored only for ease of skipping
+
+# by default nix-prefetch-url uses XDG_RUNTIME_DIR as tmp
+# which is /run/user/1000, which defaults to 10% of your RAM
+# unless you have over 64GB of ram that'll be insufficient
+# resulting in "tar: no space left on device" for packages3d
+# hence:
+export TMPDIR=/tmp
+
+# if something goes unrepairably wrong, run 'update.sh all clean'
+
+# TODO
+# support parallel instances for each pname
+# currently risks reusing old data
+# no getting around manually checking if the build product works...
+# if there is, default to commiting?
+# won't work when running in parallel?
+# remove items left in /nix/store?
+
+# get the latest tag that isn't an RC or *.99
+latest_tag="$(git ls-remote --tags --sort -version:refname \
+ https://gitlab.com/kicad/code/kicad.git \
+ | grep -o 'refs/tags/[0-9]*\.[0-9]*\.[0-9]*$' \
+ | grep -v ".99" | head -n 1 | cut -d '/' -f 3)"
+
+all_versions=( "${latest_tag}" master )
+
+prefetch="nix-prefetch-url --unpack --quiet"
+
+clean=""
+check_stable=""
+check_unstable=1
+commit=""
+
+for arg in "$@"; do
+ case "${arg}" in
+ help|-h|--help) echo "Read me!" >&2; exit 1; ;;
+ kicad|release|tag|stable|*small|5*|6*) check_stable=1; check_unstable="" ;;
+ all|both|full) check_stable=1; check_unstable=1 ;;
+ commit) commit=1 ;;
+ clean|fix|*fuck) check_stable=1; check_unstable=1; clean=1 ;;
+ master|*unstable|latest|now|today) check_unstable=1 ;;
+ *) ;;
+ esac
+done
+
+here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+now=$(date --iso-8601 --utc)
+
+file="${here}/versions.nix"
+# just in case this runs in parallel
+tmp="${here}/,versions.nix.${RANDOM}"
+
+libs=( symbols templates footprints packages3d )
+
+get_rev="git ls-remote --heads --tags"
+
+gitlab="https://gitlab.com/kicad"
+# append commit hash or tag
+gitlab_pre="https://gitlab.com/api/v4/projects/kicad%2Fcode%2Fkicad/repository/archive.tar.gz?sha="
+
+# not a lib, but separate and already moved to gitlab
+i18n="${gitlab}/code/kicad-i18n.git"
+i18n_pre="https://gitlab.com/api/v4/projects/kicad%2Fcode%2Fkicad-i18n/repository/archive.tar.gz?sha="
+
+count=0
+
+printf "Latest tag is\t%s\n" "${latest_tag}" >&2
+
+if [[ ! -f ${file} ]]; then
+ echo "No existing file, generating from scratch" >&2
+ check_stable=1; check_unstable=1; clean=1
+fi
+
+printf "Writing %s\n" "${tmp}" >&2
+
+# not a dangling brace, grouping the output to redirect to file
+{
+
+printf "# This file was generated by update.sh\n\n"
+printf "{\n"
+
+for version in "${all_versions[@]}"; do
+
+ if [[ ${version} == "master" ]]; then
+ pname="kicad-unstable"
+ today="${now}"
+ else
+ pname="kicad"
+ today="${version}"
+ fi
+ # skip a version if we don't want to check it
+ if [[ (${version} != "master" && -n ${check_stable}) \
+ || (${version} == "master" && -n ${check_unstable}) ]]; then
+
+ printf "\nChecking %s\n" "${pname}" >&2
+
+ printf "%2s\"%s\" = {\n" "" "${pname}"
+ printf "%4skicadVersion = {\n" ""
+ printf "%6sversion =\t\t\t\"%s\";\n" "" "${today}"
+ printf "%6ssrc = {\n" ""
+
+ echo "Checking src" >&2
+ src_rev="$(${get_rev} "${gitlab}"/code/kicad.git "${version}" | cut -f1)"
+ has_rev="$(grep -sm 1 "\"${pname}\"" -A 4 "${file}" | grep -sm 1 "${src_rev}" || true)"
+ has_hash="$(grep -sm 1 "\"${pname}\"" -A 5 "${file}" | grep -sm 1 "sha256" || true)"
+ if [[ -n ${has_rev} && -n ${has_hash} && -z ${clean} ]]; then
+ echo "Reusing old ${pname}.src.sha256, already latest .rev" >&2
+ grep -sm 1 "\"${pname}\"" -A 5 "${file}" | grep -sm 1 "rev" -A 1
+ else
+ printf "%8srev =\t\t\t\"%s\";\n" "" "${src_rev}"
+ printf "%8ssha256 =\t\t\"%s\";\n" \
+ "" "$(${prefetch} "${gitlab_pre}${src_rev}")"
+ count=$((count+1))
+ fi
+ printf "%6s};\n" ""
+ printf "%4s};\n" ""
+
+ printf "%4slibVersion = {\n" ""
+ printf "%6sversion =\t\t\t\"%s\";\n" "" "${today}"
+ printf "%6slibSources = {\n" ""
+
+ echo "Checking i18n" >&2
+ i18n_rev="$(${get_rev} "${i18n}" "${version}" | cut -f1)"
+ has_rev="$(grep -sm 1 "\"${pname}\"" -A 11 "${file}" | grep -sm 1 "${i18n_rev}" || true)"
+ has_hash="$(grep -sm 1 "\"${pname}\"" -A 12 "${file}" | grep -sm 1 "i18n.sha256" || true)"
+ if [[ -n ${has_rev} && -n ${has_hash} && -z ${clean} ]]; then
+ echo "Reusing old kicad-i18n-${today}.src.sha256, already latest .rev" >&2
+ grep -sm 1 "\"${pname}\"" -A 12 "${file}" | grep -sm 1 "i18n" -A 1
+ else
+ printf "%8si18n.rev =\t\t\"%s\";\n" "" "${i18n_rev}"
+ printf "%8si18n.sha256 =\t\t\"%s\";\n" "" \
+ "$(${prefetch} "${i18n_pre}${i18n_rev}")"
+ count=$((count+1))
+ fi
+
+ for lib in "${libs[@]}"; do
+ echo "Checking ${lib}" >&2
+ url="${gitlab}/libraries/kicad-${lib}.git"
+ lib_rev="$(${get_rev} "${url}" "${version}" | cut -f1 | head -n1)"
+ has_rev="$(grep -sm 1 "\"${pname}\"" -A 19 "${file}" | grep -sm 1 "${lib_rev}" || true)"
+ has_hash="$(grep -sm 1 "\"${pname}\"" -A 20 "${file}" | grep -sm 1 "${lib}.sha256" || true)"
+ if [[ -n ${has_rev} && -n ${has_hash} && -z ${clean} ]]; then
+ echo "Reusing old kicad-${lib}-${today}.src.sha256, already latest .rev" >&2
+ grep -sm 1 "\"${pname}\"" -A 20 "${file}" | grep -sm 1 "${lib}" -A 1
+ else
+ printf "%8s%s.rev =\t" "" "${lib}"
+ case "${lib}" in
+ symbols|templates) printf "\t" ;; *) ;;
+ esac
+ printf "\"%s\";\n" "${lib_rev}"
+ printf "%8s%s.sha256 =\t\"%s\";\n" "" \
+ "${lib}" "$(${prefetch} "https://gitlab.com/api/v4/projects/kicad%2Flibraries%2Fkicad-${lib}/repository/archive.tar.gz?sha=${lib_rev}")"
+ count=$((count+1))
+ fi
+ done
+ printf "%6s};\n" ""
+ printf "%4s};\n" ""
+ printf "%2s};\n" ""
+ else
+ printf "\nReusing old %s\n" "${pname}" >&2
+ grep -sm 1 "\"${pname}\"" -A 23 "${file}"
+ fi
+done
+printf "}\n"
+} > "${tmp}"
+
+if grep '""' "${tmp}"; then
+ echo "empty value detected, out of space?" >&2
+ exit "1"
+fi
+
+mv "${tmp}" "${file}"
+
+printf "\nFinished\nMoved output to %s\n\n" "${file}" >&2
+
+if [[ ${count} -gt 0 ]]; then
+ if [[ ${count} -gt 1 ]]; then s="s"; else s=""; fi
+ echo "${count} revision${s} changed" >&2
+ if [[ -n ${commit} ]]; then
+ git commit -am "$(printf "kicad: automatic update of %s item%s\n" "${count}" "${s}")"
+ fi
+ echo "Please confirm the new versions.nix works before making a PR." >&2
+else
+ echo "No changes, those checked are up to date" >&2
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
new file mode 100644
index 000000000000..9f00f3fa8ba8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
@@ -0,0 +1,52 @@
+# This file was generated by update.sh
+
+{
+ "kicad" = {
+ kicadVersion = {
+ version = "5.1.8";
+ src = {
+ rev = "db9833491010954bc27fac92c83d2864bd95c23c";
+ sha256 = "08ni9j2lw2hjc1csk6rkydcxwdal6da17ch60zkjij5vfsif2hix";
+ };
+ };
+ libVersion = {
+ version = "5.1.8";
+ libSources = {
+ i18n.rev = "78adcd19e7ed53f4889d6db65a33dd8ec2d323e9";
+ i18n.sha256 = "0x0w2m6d3xfm22y4anp5j2j67iwzby149ynj6qjlw2kcsi8kwk1j";
+ symbols.rev = "bf475af94877e8fd9cf80e667578ff61835e02bb";
+ symbols.sha256 = "1ii3r813653ng2ycggnknqx4g3ja7dbm4qyxrf9aq48ws0xkvhx3";
+ templates.rev = "1ccbaf3704e8ff4030d0915f71e051af621ef7d7";
+ templates.sha256 = "1a8xfcbdbb4ylrb5m7n2jjk9kwvgmlx1pmnn2cwj327a2b3m4jjs";
+ footprints.rev = "302ac78bac21825532f970fb92714fa5973ad79b";
+ footprints.sha256 = "0gyqxryda273hjn2rv8dha461j9bjh054y5dlpiw1wiha65lrf9i";
+ packages3d.rev = "7abe02f30fd79b8f4f66c01589861df7f8f72f04";
+ packages3d.sha256 = "1szcin52fcsyb55bj7xq7lz6ig187dpz3lk7blwab7b9c4dn3c3y";
+ };
+ };
+ };
+ "kicad-unstable" = {
+ kicadVersion = {
+ version = "2020-12-01";
+ src = {
+ rev = "3c521942ed52e83482c82d426170b4fbf327f846";
+ sha256 = "sha256:09qab69sy3n44kjlzxxx7gbksyr1kg8n14kz0zf8n71zfcqagci4";
+ };
+ };
+ libVersion = {
+ version = "2020-12-01";
+ libSources = {
+ i18n.rev = "e89d9a89bec59199c1ade56ee2556591412ab7b0";
+ i18n.sha256 = "sha256:04zaqyhj3qr4ymyd3k5vjpcna64j8klpsygcgjcv29s3rdi8glfl";
+ symbols.rev = "e538abb015b4f289910a6f26b2f1b9cb8bf2efdb";
+ symbols.sha256 = "sha256:117y4cm46anlrnw6y6mdjgl1a5gab6h6m7cwx3q7qb284m9bs5gi";
+ templates.rev = "32a4f6fab863976fdcfa232e3e08fdcf3323a954";
+ templates.sha256 = "sha256:13r94dghrh9slpj7nkzv0zqv5hk49s6pxm4q5ndqx0y8037ivmhk";
+ footprints.rev = "15ffd67e01257d4d8134dbd6708cb58977eeccbe";
+ footprints.sha256 = "sha256:1ad5k3wh2zqfibrar7pd3g363jk2q51dvraxnq3zlxa2x4znh7mw";
+ packages3d.rev = "d8b7e8c56d535f4d7e46373bf24c754a8403da1f";
+ packages3d.sha256 = "sha256:0dh8ixg0w43wzj5h3164dz6l1vl4llwxhi3qcdgj1lgvrs28aywd";
+ };
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
new file mode 100644
index 000000000000..4b0a4108ab22
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, lib, fetchFromGitHub
+, qtbase, qttools, qmake, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "librepcb";
+ version = "0.1.5";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "0ag8h3id2c1k9ds22rfrvyhf2vjhkv82xnrdrz4n1hnlr9566vcx";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
+ buildInputs = [ qtbase ];
+
+ qmakeFlags = ["-r"];
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ mkdir -p $out/share/librepcb/fontobene
+ cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
+ '';
+
+ # the build system tries to use 'git' at build time to find the HEAD hash.
+ # that's a no-no, so replace it with a quick hack. NOTE: the # adds a comment
+ # at the end of the line to remove the git call.
+ patchPhase = ''
+ substituteInPlace ./libs/librepcb/common/common.pro \
+ --replace 'GIT_COMMIT_SHA' 'GIT_COMMIT_SHA="\\\"${src.rev}\\\"" # '
+ '';
+
+ preFixup = ''
+ wrapQtApp $out/bin/librepcb
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A free EDA software to develop printed circuit boards";
+ homepage = "https://librepcb.org/";
+ maintainers = with maintainers; [ luz thoughtpolice ];
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/0001-strip-bin-prefix.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/0001-strip-bin-prefix.patch
new file mode 100644
index 000000000000..1cef96ea1408
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/0001-strip-bin-prefix.patch
@@ -0,0 +1,10 @@
+diff --git a/scripts/makedbh b/scripts/makedbh
+index 01e4fa5..d6299c6 100755
+--- a/scripts/makedbh
++++ b/scripts/makedbh
+@@ -1,4 +1,4 @@
+-#!/bin/csh -f
++#!/usr/bin/env tcsh
+ #
+ # makes the "database.h" (1st argument, $1) file from "database.h.in"
+ # (2nd argument, $2), setting various mask operation definitions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/0002-fix-format-security.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/0002-fix-format-security.patch
new file mode 100644
index 000000000000..37ae35195503
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/0002-fix-format-security.patch
@@ -0,0 +1,19 @@
+diff --git a/database/DBio.c b/database/DBio.c
+index 93c4b0b..292ea5f 100644
+--- a/database/DBio.c
++++ b/database/DBio.c
+@@ -2378,12 +2378,12 @@ DBCellWriteFile(cellDef, f)
+
+ #define FPRINTF(f,s)\
+ {\
+- if (fprintf(f,s) == EOF) goto ioerror;\
++ if (fprintf(f,"%s",s) == EOF) goto ioerror;\
+ DBFileOffset += strlen(s);\
+ }
+ #define FPRINTR(f,s)\
+ {\
+- if (fprintf(f,s) == EOF) return 1;\
++ if (fprintf(f,"%s",s) == EOF) return 1;\
+ DBFileOffset += strlen(s);\
+ }
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix
new file mode 100644
index 000000000000..6667f2be9c3d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl
+, m4, tcsh, libX11, tcl, tk
+, cairo, ncurses, mesa_glu, python3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "magic-vlsi";
+ version = "8.3.80";
+
+ src = fetchurl {
+ url = "http://opencircuitdesign.com/magic/archive/magic-${version}.tgz";
+ sha256 = "0a5x4sh5xsr79pqbgv6221jc4fvaxkg2pvrdhy1cs4bmsc1sbm9j";
+ };
+
+ buildInputs = [ m4 tcsh libX11 tcl tk cairo ncurses mesa_glu ];
+ nativeBuildInputs = [ python3 ];
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-tcl=${tcl}"
+ "--with-tk=${tk}"
+ "--disable-werror"
+ ];
+
+ postPatch = ''
+ patchShebangs scripts/*
+ '';
+
+ NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration";
+
+ patches = [
+ ./0001-strip-bin-prefix.patch
+ ./0002-fix-format-security.patch
+ ];
+
+ meta = with stdenv.lib; {
+ description = "VLSI layout tool written in Tcl";
+ homepage = "http://opencircuitdesign.com/magic/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ anna328p thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/nanovna-saver/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/nanovna-saver/default.nix
new file mode 100644
index 000000000000..62bda91e5008
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/nanovna-saver/default.nix
@@ -0,0 +1,51 @@
+{ lib, mkDerivationWith, wrapQtAppsHook, python3Packages, fetchFromGitHub
+, qtbase }:
+
+let
+ version = "0.3.7";
+ pname = "nanovna-saver";
+
+in mkDerivationWith python3Packages.buildPythonApplication {
+ inherit pname version;
+
+ src = fetchFromGitHub {
+ owner = "NanoVNA-Saver";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0c22ckyypg91gfb2sdc684msw28nnb6r8cq3b362gafvv00a35mi";
+ };
+
+ nativeBuildInputs = [ wrapQtAppsHook ];
+
+ propagatedBuildInputs = with python3Packages; [
+ cython
+ scipy_1_4
+ pyqt5
+ pyserial
+ numpy
+ ];
+
+ doCheck = false;
+
+ dontWrapGApps = true;
+ dontWrapQtApps = true;
+
+ postFixup = ''
+ wrapProgram $out/bin/NanoVNASaver \
+ "''${gappsWrapperArgs[@]}" \
+ "''${qtWrapperArgs[@]}"
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/NanoVNA-Saver/nanovna-saver";
+ description =
+ "A tool for reading, displaying and saving data from the NanoVNA";
+ longDescription = ''
+ A multiplatform tool to save Touchstone files from the NanoVNA, sweep
+ frequency spans in segments to gain more than 101 data points, and
+ generally display and analyze the resulting data.
+ '';
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ zaninime ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix
new file mode 100644
index 000000000000..5113dc778f62
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, fetchurl
+, bison
+, flex
+, readline
+, libX11
+, libICE
+, libXaw
+, libXmu
+, libXext
+, libXt
+, fftw
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ngspice";
+ version = "33";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/ngspice/ngspice-${version}.tar.gz";
+ sha256 = "1wa1hmpn13spmxqgbb1m7vgy32mwvjqwrxhymzll8z65q5nbd7dr";
+ };
+
+ nativeBuildInputs = [ flex bison ];
+ buildInputs = [ readline libX11 libICE libXaw libXmu libXext libXt fftw ];
+
+ configureFlags = [ "--enable-x" "--with-x" "--with-readline" "--enable-xspice" "--enable-cider" ];
+
+ meta = with stdenv.lib; {
+ description = "The Next Generation Spice (Electronic Circuit Simulator)";
+ homepage = "http://ngspice.sourceforge.net";
+ license = with licenses; [ "BSD" gpl2 ];
+ maintainers = with maintainers; [ bgamari rongcuid ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/openems/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/openems/default.nix
new file mode 100644
index 000000000000..f7c8dd7467a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/openems/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, csxcad
+, fparser
+, tinyxml
+, hdf5
+, vtk
+, boost
+, zlib
+, cmake
+, octave
+, gl2ps
+, withQcsxcad ? true
+, withMPI ? false
+, withHyp2mat ? true
+, qcsxcad ? null
+, openmpi ? null
+, hyp2mat ? null
+}:
+
+assert withQcsxcad -> qcsxcad != null;
+assert withMPI -> openmpi != null;
+assert withHyp2mat -> hyp2mat != null;
+
+stdenv.mkDerivation {
+ pname = "openems";
+ version = "unstable-2020-02-15";
+
+ src = fetchFromGitHub {
+ owner = "thliebig";
+ repo = "openEMS";
+ rev = "ba793ac84e2f78f254d6d690bb5a4c626326bbfd";
+ sha256 = "1dca6b6ccy771irxzsj075zvpa3dlzv4mjb8xyg9d889dqlgyl45";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ];
+
+ cmakeFlags = lib.optionals withMPI [ "-DWITH_MPI=ON" ];
+
+ buildInputs = [
+ fparser
+ tinyxml
+ hdf5
+ vtk
+ boost
+ zlib
+ csxcad
+ (octave.override { inherit hdf5; }) ]
+ ++ lib.optionals withQcsxcad [ qcsxcad ]
+ ++ lib.optionals withMPI [ openmpi ]
+ ++ lib.optionals withHyp2mat [ hyp2mat ];
+
+ postFixup = ''
+ substituteInPlace $out/share/openEMS/matlab/setup.m \
+ --replace /usr/lib ${hdf5}/lib \
+ --replace /usr/include ${hdf5}/include
+
+ ${octave}/bin/mkoctfile -L${hdf5}/lib -I${hdf5}/include \
+ -lhdf5 $out/share/openEMS/matlab/h5readatt_octave.cc \
+ -o $out/share/openEMS/matlab/h5readatt_octave.oct
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Open Source Electromagnetic Field Solver";
+ homepage = "http://openems.de/index.php/Main_Page.html";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ matthuszagh ];
+ platforms = platforms.linux;
+ badPlatforms = platforms.aarch64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix
new file mode 100644
index 000000000000..acdac346fd3b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, lib, fetchFromGitHub, makeWrapper, cmake, qtbase, qttools, fftw, libusb1, libglvnd }:
+
+mkDerivation rec {
+ pname = "openhantek6022";
+ version = "3.1.3";
+
+ src = fetchFromGitHub {
+ owner = "OpenHantek";
+ repo = "OpenHantek6022";
+ rev = version;
+ sha256 = "1n4l8ks5808d99zj1vj0ck0v1lb9s7iv3ahww7ximbf9iha39pbm";
+ };
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+ buildInputs = [ fftw libusb1 libglvnd qtbase qttools ];
+
+ postPatch = ''
+ # Fix up install paths & checks
+ sed -i 's#if(EXISTS ".*")#if(1)#g' CMakeLists.txt
+ sed -i 's#/lib/udev#lib/udev#g' CMakeLists.txt
+ sed -i 's#/usr/share#share#g' CMakeLists.txt
+ '';
+
+ meta = with lib; {
+ description = "Free software for Hantek and compatible (Voltcraft/Darkwire/Protek/Acetech) USB digital signal oscilloscopes";
+ homepage = "https://github.com/OpenHantek/OpenHantek6022";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ baracoder ];
+ platforms = qtbase.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix
new file mode 100644
index 000000000000..4309f52e8b15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, fetchurl
+, pkgconfig
+, gtk2
+, bison
+, intltool
+, flex
+, netpbm
+, imagemagick
+, dbus
+, xlibsWrapper
+, libGLU
+, libGL
+, shared-mime-info
+, tcl
+, tk
+, gnome2
+, gd
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+ pname = "pcb";
+ version = "4.2.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/pcb/${pname}-${version}.tar.gz";
+ sha256 = "0pbfyfadbia1jf9ywkf02j8mfdh8c3mj390c2jdqnl70vcdszvhw";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ bison
+ intltool
+ flex
+ netpbm
+ imagemagick
+ ];
+
+ buildInputs = [
+ gtk2
+ dbus
+ xlibsWrapper
+ libGLU
+ libGL
+ tcl
+ shared-mime-info
+ tk
+ gnome2.gtkglext
+ gd
+ xorg.libXmu
+ ];
+
+ configureFlags = [
+ "--disable-update-desktop-database"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Printed Circuit Board editor";
+ homepage = "http://pcb.geda-project.org/";
+ maintainers = with maintainers; [ mog ];
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
new file mode 100644
index 000000000000..f43717389b53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, lib, fetchurl, pkgconfig, cmake, glib, boost, libsigrok
+, libsigrokdecode, libserialport, libzip, udev, libusb1, libftdi1, glibmm
+, pcre, librevisa, python3, qtbase, qtsvg
+}:
+
+mkDerivation rec {
+ pname = "pulseview";
+ version = "0.4.1";
+
+ src = fetchurl {
+ url = "https://sigrok.org/download/source/pulseview/${pname}-${version}.tar.gz";
+ sha256 = "0bvgmkgz37n2bi9niskpl05hf7rsj1lj972fbrgnlz25s4ywxrwy";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ glib boost libsigrok libsigrokdecode libserialport libzip udev libusb1 libftdi1 glibmm
+ pcre librevisa python3
+ qtbase qtsvg
+ ];
+
+ meta = with lib; {
+ description = "Qt-based LA/scope/MSO GUI for sigrok (a signal analysis software suite)";
+ homepage = "https://sigrok.org/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ bjornfor ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix
new file mode 100644
index 000000000000..9b6e75c77ba8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, qt4, cmake, graphviz, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ name = "qfsm-0.54.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/qfsm/${name}-Source.tar.bz2";
+ sha256 = "0rl7bc5cr29ng67yij4akciyid9z7npal812ys4c3m229vjvflrb";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ qt4 cmake graphviz ];
+
+ patches = [
+ ./drop-hardcoded-prefix.patch
+ ./gcc6-fixes.patch
+ ];
+
+ hardeningDisable = [ "format" ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Graphical editor for finite state machines";
+ homepage = "http://qfsm.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/drop-hardcoded-prefix.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/drop-hardcoded-prefix.patch
new file mode 100644
index 000000000000..965d67ac5526
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/drop-hardcoded-prefix.patch
@@ -0,0 +1,20 @@
+diff -ubrw qfsm-0.53.0-Source-orig/CMakeLists.txt qfsm-0.53.0-Source-new/CMakeLists.txt
+--- qfsm-0.53.0-Source-orig/CMakeLists.txt 2012-11-11 20:13:01.935856229 +0100
++++ qfsm-0.53.0-Source-new/CMakeLists.txt 2012-11-11 20:13:24.962930007 +0100
+@@ -406,10 +406,6 @@
+
+
+ IF(UNIX AND NOT WIN32)
+- SET(CMAKE_INSTALL_PREFIX "/usr")
+-ENDIF(UNIX AND NOT WIN32)
+-
+-IF(UNIX AND NOT WIN32)
+ ADD_DEFINITIONS(-DQFSM_LANGUAGE_DIR="${CMAKE_INSTALL_PREFIX}/share/qfsm/")
+ ADD_DEFINITIONS(-DQFSM_HELP_DIR="${CMAKE_INSTALL_PREFIX}/share/doc/qfsm/")
+ ELSE(UNIX AND NOT WIN32)
+@@ -472,5 +468,3 @@
+ )
+
+ ENDIF(UNIX AND NOT WIN32)
+-
+-
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/gcc6-fixes.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/gcc6-fixes.patch
new file mode 100644
index 000000000000..5cedc6476397
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qfsm/gcc6-fixes.patch
@@ -0,0 +1,20 @@
+--- qfsm-0.54.0-Source-orig/src/FileIO.cpp 2015-01-02 19:01:46.000000000 +0100
++++ qfsm-0.54.0-Source/src/FileIO.cpp 2017-09-11 19:53:30.579488402 +0200
+@@ -1617,7 +1617,7 @@
+ QString ext;
+
+ if (!imp)
+- return FALSE;
++ return NULL;
+
+ Project* p=NULL;
+ importdlg->setAcceptMode(QFileDialog::AcceptOpen);
+@@ -1641,7 +1641,7 @@
+ ifstream fin(act_importfile);
+
+ if (!fin)
+- return FALSE;
++ return NULL;
+
+ emit setWaitCursor();
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qucs/cmakelists.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qucs/cmakelists.patch
new file mode 100644
index 000000000000..27066f09c84e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qucs/cmakelists.patch
@@ -0,0 +1,34 @@
+diff --git i/qucs-core/CMakeLists.txt w/qucs-core/CMakeLists.txt
+index 2dbbd41..d174b50 100644
+--- i/qucs-core/CMakeLists.txt
++++ w/qucs-core/CMakeLists.txt
+@@ -158,26 +158,9 @@ ENDIF()
+
+ #
+ # Need Bison
+-#
+-# This is a HACK to get arround a PATH issue with Qt Creator on OSX.
+-# It seams impossible to pass a custom PATH to Qt Creator on OSX, ie, cannot prepend `/usr/local/bin/` for intance.
+-# The FIND_PACKAGE fails. For now we provide a fallback with a custom FIND_PROGRAM. The variable BISON_DIR is also available.
+-IF(WIN32)
+- FIND_PACKAGE(BISON 2.4 REQUIRED)
+- IF(BISON_FOUND)
+- #MESSAGE(STATUS "Found bison: ${BISON_EXECUTABLE} / Version: ${BISON_VERSION}" )
+- ENDIF()
+-ELSE() # Linux, OSX
+- # use -DBISON_DIR=/path/ to provide the path to bison
+- FIND_PROGRAM( BISON_EXECUTABLE bison
+- PATHS /usr/local/bin/ /opt/local/bin/ /usr/bin ${BISON_DIR}
+- DOC "bison path"
+- NO_DEFAULT_PATH )
+- IF(BISON_EXECUTABLE )
+- MESSAGE(STATUS "Found bison: " ${BISON_EXECUTABLE})
+- ELSE()
+- MESSAGE(FATAL_ERROR "Unable to find bison. Try to provide -DBISON_DIR=[path]")
+- ENDIF()
++FIND_PACKAGE(BISON 2.4 REQUIRED)
++IF(BISON_FOUND)
++ #MESSAGE(STATUS "Found bison: ${BISON_EXECUTABLE} / Version: ${BISON_VERSION}" )
+ ENDIF()
+
+ #
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qucs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qucs/default.nix
new file mode 100644
index 000000000000..62a9ae8b73be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/qucs/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchFromGitHub, flex, bison, qt4, libX11, cmake, gperf, adms }:
+
+stdenv.mkDerivation rec {
+ version = "0.0.19";
+ pname = "qucs";
+
+ src = fetchFromGitHub {
+ owner = "Qucs";
+ repo = "qucs";
+ rev = "qucs-${version}";
+ sha256 = "106h3kjyg7c0hkmzkin7h8fcl32n60835121b2qqih8ixi6r5id6";
+ };
+
+ QTDIR=qt4;
+
+ patches = [
+ ./cmakelists.patch
+ ];
+
+ buildInputs = [ flex bison qt4 libX11 cmake gperf adms ];
+
+ meta = {
+ description = "Integrated circuit simulator";
+ homepage = "http://qucs.sourceforge.net";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
new file mode 100644
index 000000000000..e6f912616034
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, tcl, tk, libX11, glibc, which, yacc, flex, imake, xorgproto, gccmakedep }:
+
+let
+ libiconvInc = stdenv.lib.optionalString stdenv.isLinux "${glibc.dev}/include";
+ libiconvLib = stdenv.lib.optionalString stdenv.isLinux "${glibc.out}/lib";
+in
+stdenv.mkDerivation rec {
+ name = "tkgate-1.8.7";
+
+ src = fetchurl {
+ url = "http://www.tkgate.org/downloads/${name}.tgz";
+ sha256 = "1pqywkidfpdbj18i03h97f4cimld4fb3mqfy8jjsxs12kihm18fs";
+ };
+
+ nativeBuildInputs = [ which yacc flex imake gccmakedep ];
+ buildInputs = [ tcl tk libX11 xorgproto ];
+ dontUseImakeConfigure = true;
+
+ patchPhase = ''
+ sed -i config.h \
+ -e 's|.*#define.*TKGATE_TCLTK_VERSIONS.*|#define TKGATE_TCLTK_VERSIONS "${tcl.release}"|' \
+ -e 's|.*#define.*TKGATE_INCDIRS.*|#define TKGATE_INCDIRS "${tcl}/include ${tk}/include ${libiconvInc} ${libX11.dev}/include"|' \
+ -e 's|.*#define.*TKGATE_LIBDIRS.*|#define TKGATE_LIBDIRS "${tcl}/lib ${tk}/lib ${libiconvLib} ${libX11.out}/lib"|' \
+ \
+ -e '20 i #define TCL_LIBRARY "${tcl}/lib"' \
+ -e '20 i #define TK_LIBRARY "${tk}/lib/${tk.libPrefix}"' \
+ -e '20 i #define USE_ICONV 1' \
+ \
+ -e "s|.*#define.*TKGATE_HOMEDIRBASE.*|#define TKGATE_HOMEDIRBASE \\\"$out/lib\\\"|" \
+ -e "s|.*#define.*TKGATE_BINDIR.*|#define TKGATE_BINDIR \\\"$out/bin\\\"|" \
+ -e "s|.*#define.*TKGATE_MANDIR.*|#define TKGATE_MANDIR \\\"$out/share/man/man1\\\"|" \
+ -e "s|file:/usr/X11R6/lib/tkgate-|file://$out/lib/tkgate-|"
+ '';
+
+ meta = {
+ description = "Event driven digital circuit simulator with a TCL/TK-based graphical editor";
+ homepage = "http://www.tkgate.org/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.peti ];
+ hydraPlatforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
new file mode 100644
index 000000000000..ce8ebe42ea87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl
+, perl, flex, bison
+}:
+
+stdenv.mkDerivation rec {
+ pname = "verilator";
+ version = "4.100";
+
+ src = fetchurl {
+ url = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
+ sha256 = "0vg1gk1hqlnz74gfpf57588758myxvhqzi37yl4vqjcq40r83nr2";
+ };
+
+ enableParallelBuilding = true;
+ buildInputs = [ perl ];
+ nativeBuildInputs = [ flex bison ];
+
+ # these tests need some interpreter paths patched early on...
+ doCheck = false;
+ checkTarget = "test";
+
+ meta = with stdenv.lib; {
+ description = "Fast and robust (System)Verilog simulator/compiler";
+ homepage = "https://www.veripool.org/wiki/verilator";
+ license = licenses.lgpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix
new file mode 100644
index 000000000000..6217df2db8f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, fetchFromGitHub
+, autoconf
+, bison
+, bzip2
+, flex
+, gperf
+, ncurses
+, perl
+, readline
+, zlib
+}:
+
+let
+ iverilog-test = fetchFromGitHub {
+ owner = "steveicarus";
+ repo = "ivtest";
+ rev = "253609b89576355b3bef2f91e90db62223ecf2be";
+ sha256 = "18i7jlr2csp7mplcrwjhllwvb6w3v7x7mnx7vdw48nd3g5scrydx";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "iverilog";
+ version = "11.0";
+
+ src = fetchFromGitHub {
+ owner = "steveicarus";
+ repo = pname;
+ rev = "v${stdenv.lib.replaceStrings ["."] ["_"] version}";
+ sha256 = "0nzcyi6l2zv9wxzsv9i963p3igyjds0n55x0ph561mc3pfbc7aqp";
+ };
+
+ nativeBuildInputs = [ autoconf bison flex gperf ];
+
+ buildInputs = [ bzip2 ncurses readline zlib ];
+
+ preConfigure = "sh autoconf.sh";
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ installCheckInputs = [ perl ];
+
+ installCheckPhase = ''
+ # copy tests to allow writing results
+ export TESTDIR=$(mktemp -d)
+ cp -r ${iverilog-test}/* $TESTDIR
+
+ pushd $TESTDIR
+
+ # Run & check tests
+ PATH=$out/bin:$PATH perl vvp_reg.pl
+ # Check the tests, will error if unexpected tests fail. Some failures MIGHT be normal.
+ diff regression_report-devel.txt regression_report.txt
+ PATH=$out/bin:$PATH perl vpi_reg.pl
+
+ popd
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Icarus Verilog compiler";
+ homepage = "http://iverilog.icarus.com/"; # https does not work
+ license = with licenses; [ gpl2Plus lgpl21Plus ];
+ maintainers = with maintainers; [ winden thoughtpolice ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix
new file mode 100644
index 000000000000..be9e890fc8d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, bison
+, flex
+, verilog
+}:
+
+stdenv.mkDerivation rec {
+ pname = "vhd2vl";
+ version = "unstable-2018-09-01";
+
+ src = fetchFromGitHub {
+ owner = "ldoolitt";
+ repo = pname;
+ rev = "37e3143395ce4e7d2f2e301e12a538caf52b983c";
+ sha256 = "17va2pil4938j8c93anhy45zzgnvq3k71a7glj02synfrsv6fs8n";
+ };
+
+ patches = stdenv.lib.optionals (!stdenv.isAarch64) [
+ # fix build with verilog 11.0 - https://github.com/ldoolitt/vhd2vl/pull/15
+ # for some strange reason, this is not needed for aarch64
+ (fetchpatch {
+ url = "https://github.com/ldoolitt/vhd2vl/commit/ce9b8343ffd004dfe8779a309f4b5a594dbec45e.patch";
+ sha256 = "1qaqhm2mk66spb2dir9n91b385rarglc067js1g6pcg8mg5v3hhf";
+ })
+ ];
+
+ nativeBuildInputs = [
+ bison
+ flex
+ ];
+
+ buildInputs = [
+ verilog
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp src/vhd2vl $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "VHDL to Verilog converter";
+ homepage = "https://github.com/ldoolitt/vhd2vl";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ matthuszagh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix
new file mode 100644
index 000000000000..52fe9b037414
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, autoreconfHook, automake, pkgconfig
+, cairo, ghostscript, ngspice, tcl, tk, xorg, zlib }:
+
+let
+ version = "3.10.12";
+ name = "xcircuit-${version}";
+ inherit (stdenv.lib) getBin;
+
+in stdenv.mkDerivation {
+ inherit name version;
+
+ src = fetchurl {
+ url = "http://opencircuitdesign.com/xcircuit/archive/${name}.tgz";
+ sha256 = "1h1ywc3mr7plvwnhdii2zgnnv5ih2nhyl4qbdjpi83dq0aq1s2mn";
+ };
+
+ nativeBuildInputs = [ autoreconfHook automake pkgconfig ];
+ hardeningDisable = [ "format" ];
+
+ configureFlags = [
+ "--with-tcl=${tcl}/lib"
+ "--with-tk=${tk}/lib"
+ "--with-ngspice=${getBin ngspice}/bin/ngspice"
+ ];
+
+ buildInputs = with xorg; [ cairo ghostscript libSM libXt libICE libX11 libXpm tcl tk zlib ];
+
+ meta = with stdenv.lib; {
+ description = "Generic drawing program tailored to circuit diagrams";
+ homepage = "http://opencircuitdesign.com/xcircuit";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ spacefrogg thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix
new file mode 100644
index 000000000000..f8a68f31f464
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, gtk2, pkgconfig}:
+
+stdenv.mkDerivation rec {
+ name = "xoscope-2.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xoscope/${name}.tgz";
+ sha256 = "00xlvvqyw6l1ljbsx1vgx2v1jfh0xacz1a0yhq1dj6yxf5wh58x8";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 ];
+
+ # from: https://aur.archlinux.org/packages.php?ID=12140&detail=1
+ patches = [ ./gtkdepre.diff ];
+
+ meta = {
+ description = "Oscilloscope through the sound card";
+ homepage = "http://xoscope.sourceforge.net";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xoscope/gtkdepre.diff b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xoscope/gtkdepre.diff
new file mode 100644
index 000000000000..993df9cb5503
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/electronics/xoscope/gtkdepre.diff
@@ -0,0 +1,58 @@
+diff -ru xoscope-2.0-old//gtkdatabox-0.6.0.0/gtk/gtkdatabox.c xoscope-2.0/gtkdatabox-0.6.0.0/gtk/gtkdatabox.c
+--- xoscope-2.0-old//gtkdatabox-0.6.0.0/gtk/gtkdatabox.c 2010-06-07 10:42:24.000000000 +0200
++++ xoscope-2.0/gtkdatabox-0.6.0.0/gtk/gtkdatabox.c 2010-06-07 10:45:40.000000000 +0200
+@@ -661,7 +661,7 @@
+ static void
+ gtk_databox_calculate_hcanvas (GtkDatabox *box)
+ {
+- if (!GTK_WIDGET_VISIBLE (box))
++ if (!gtk_widget_get_visible (box))
+ return;
+
+ if (box->priv->adjX->page_size == 1.0)
+@@ -698,7 +698,7 @@
+ static void
+ gtk_databox_calculate_vcanvas (GtkDatabox *box)
+ {
+- if (!GTK_WIDGET_VISIBLE (box))
++ if (!gtk_widget_get_visible (box))
+ return;
+
+ if (box->priv->adjY->page_size == 1.0)
+@@ -780,7 +780,7 @@
+ gtk_databox_draw (box, event);
+
+ gdk_draw_drawable (widget->window,
+- widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
++ widget->style->fg_gc[gtk_widget_get_state (widget)],
+ box->priv->canvas.pixmap, event->area.x, event->area.y,
+ event->area.x, event->area.y, event->area.width,
+ event->area.height);
+@@ -940,7 +940,7 @@
+ GtkWidget *widget = GTK_WIDGET (box);
+
+ g_return_if_fail (GTK_IS_DATABOX (box));
+- g_return_if_fail (GTK_WIDGET_VISIBLE (widget));
++ g_return_if_fail (gtk_widget_get_visible (widget));
+
+ gdk_draw_rectangle (box->priv->canvas.pixmap, widget->style->bg_gc[0],
+ TRUE, 0, 0,
+@@ -1150,7 +1150,7 @@
+ /* Copy a part of the pixmap to the screen */
+ if (pixmapCopyRect)
+ gdk_draw_drawable (widget->window,
+- widget->style->fg_gc[GTK_WIDGET_STATE (box)],
++ widget->style->fg_gc[gtk_widget_get_state (box)],
+ box->priv->canvas.pixmap,
+ pixmapCopyRect->x,
+ pixmapCopyRect->y,
+--- xoscope-2.0-old//gtkdatabox-0.6.0.0/gtk/Makefile.in 2011-09-02 16:43:43.000000000 +0200
++++ xoscope-2.0/gtkdatabox-0.6.0.0/gtk/Makefile.in 2011-09-02 16:43:57.000000000 +0200
+@@ -196,7 +196,6 @@
+ -DG_DISABLE_DEPRECATED\
+ -DGDK_DISABLE_DEPRECATED\
+ -DGDK_PIXBUF_DISABLE_DEPRECATED\
+- -DGTK_DISABLE_DEPRECATED\
+ `pkg-config gtk+-2.0 --cflags`
+
+ all: all-am
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/antiprism/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/antiprism/default.nix
new file mode 100644
index 000000000000..4691291a4257
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/antiprism/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, libX11
+, libGL
+, libGLU
+, freeglut }:
+
+stdenv.mkDerivation rec {
+ pname = "antiprism";
+ version = "0.26";
+
+ src = fetchFromGitHub {
+ owner = "antiprism";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-5FE6IbYKk7eMT985R9NCX3GDXE8SrdVHFcCpKeJvKtQ=";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ libX11 libGLU libGL.dev freeglut.dev ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.antiprism.com";
+ description = "A collection of programs for generating, manipulating, transforming and viewing polyhedra";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/drgeo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/drgeo/default.nix
new file mode 100644
index 000000000000..7bae3d414cbf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/drgeo/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libglade, gtk2, guile, libxml2, perl
+, intltool, libtool, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "drgeo";
+ version = "1.1.0";
+
+ hardeningDisable = [ "format" ];
+
+ src = fetchurl {
+ url = "mirror://sourceforge/ofset/${pname}-${version}.tar.gz";
+ sha256 = "05i2czgzhpzi80xxghinvkyqx4ym0gm9f38fz53idjhigiivp4wc";
+ };
+ patches = [ ./struct.patch ];
+
+ buildInputs = [libglade gtk2 guile libxml2
+ perl intltool libtool pkgconfig];
+
+ prebuild = ''
+ cp drgeo.desktop.in drgeo.desktop
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Interactive geometry program";
+ homepage = "https://sourceforge.net/projects/ofset";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/drgeo/struct.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/drgeo/struct.patch
new file mode 100644
index 000000000000..7364cae5f58d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/drgeo/struct.patch
@@ -0,0 +1,68 @@
+-- drgeo-1.1.0/debian/patches/00list
+++ drgeo-1.1.0/debian/patches/00list
+@ -7 +7 @@
+
+07-fix_ftbfs-gcc-4.5.dpatch
+nly in patch2:
+nchanged:
+-- drgeo-1.1.0.orig/debian/patches/07-fix_ftbfs-gcc-4.5.dpatch
+++ drgeo-1.1.0/debian/patches/07-fix_ftbfs-gcc-4.5.dpatch
+@ -0,0 +1,58 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 07-fix_ftbfs-gcc-4.5.dpatch by Fabrice Coutadeur <fabric...@ubuntu.com>
+##
+## Description: fix FTBFS with gcc 4.5 with undefined reference to
+## `drgeoDialogData'
+## Author: Petr Gajdos <pgaj...@suse.cz>
+## Origin: https://build.opensuse.org/package/files?package=drgeo&project=openSUSE%3A11.3%3AContrib
+
+...@dpatch@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' drgeo-1.1.0~/geo/drgeo_dialog.cc drgeo-1.1.0/geo/drgeo_dialog.cc
+--- drgeo-1.1.0~/geo/drgeo_dialog.cc 2003-10-27 10:17:25.000000000 +0000
++++ drgeo-1.1.0/geo/drgeo_dialog.cc 2010-11-13 07:26:03.258908003 +0000
+@@ -38,12 +38,7 @@
+ // Used in the style dialod callback, I know it's ugly, but so easy
+ static drgeoFigure *selected_figure;
+
+-struct
+-{
+- drgeoPoint mouse;
+- drgeoFigure *figure;
+-}
+-drgeoDialogData;
++DialogData drgeoDialogData;
+
+
+ static void drgeo_edit_dialog_cb (GtkWidget * dialog,
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' drgeo-1.1.0~/geo/drgeo_dialog.h drgeo-1.1.0/geo/drgeo_dialog.h
+--- drgeo-1.1.0~/geo/drgeo_dialog.h 2003-06-12 22:30:23.000000000 +0000
++++ drgeo-1.1.0/geo/drgeo_dialog.h 2010-11-13 07:26:03.258908003 +0000
+@@ -34,4 +34,11 @@
+ }
+
+ #endif /* __cplusplus */
++
++typedef struct
++{
++ drgeoPoint mouse;
++ drgeoFigure *figure;
++} DialogData;
++
+ #endif
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' drgeo-1.1.0~/geo/drgeo_figure.cc drgeo-1.1.0/geo/drgeo_figure.cc
+--- drgeo-1.1.0~/geo/drgeo_figure.cc 2005-07-14 07:30:01.000000000 +0000
++++ drgeo-1.1.0/geo/drgeo_figure.cc 2010-11-13 07:26:03.258908003 +0000
+@@ -48,12 +48,7 @@
+ #include "drgeo_dialog.h"
+ #include "traite.h"
+
+-extern struct
+-{
+- drgeoPoint mouse;
+- drgeoFigure *figure;
+-}
+-drgeoDialogData;
++extern DialogData drgeoDialogData;
+
+ typedef struct drgeoSearchValue
+ {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/gama/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/gama/default.nix
new file mode 100644
index 000000000000..fe606125c552
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/gama/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, lib, expat, octave, libxml2, texinfo }:
+stdenv.mkDerivation rec {
+ pname = "gama";
+ version = "2.09";
+
+ src = fetchurl {
+ url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "0c1b28frl6109arj09v4zr1xs859krn8871mkvis517g5pb55dc9";
+ };
+
+ buildInputs = [ expat ];
+
+ nativeBuildInputs = [ texinfo ];
+
+ checkInputs = [ octave libxml2 ];
+ doCheck = true;
+
+ meta = with lib ; {
+ description = "Tools for adjustment of geodetic networks";
+ homepage = "https://www.gnu.org/software/gama/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix
new file mode 100644
index 000000000000..9dd254736834
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ name = "tetgen-1.4.3";
+
+ src = fetchurl {
+ url = "${meta.homepage}/files/tetgen1.4.3.tar.gz";
+ sha256 = "0d70vjqdapmy1ghlsxjlvl5z9yp310zw697bapc4zxmp0sxi29wm";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp tetgen $out/bin
+ '';
+
+ meta = {
+ description = "Quality Tetrahedral Mesh Generator and 3D Delaunay Triangulator";
+ homepage = "http://tetgen.org/";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix
new file mode 100644
index 000000000000..d12e8e35844f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl}:
+
+let version = "1.5.1"; in
+stdenv.mkDerivation {
+ pname = "tetgen";
+ inherit version;
+
+ src = fetchurl {
+ url = "http://wias-berlin.de/software/tetgen/1.5/src/tetgen${version}.tar.gz";
+ sha256 = "0l5q066crs4cjj7qr0r2gnz8ajkgighngwglr1201h77lcs48sp4";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp tetgen $out/bin
+ '';
+
+ meta = {
+ inherit version;
+ description = "Quality Tetrahedral Mesh Generator and 3D Delaunay Triangulator";
+ homepage = "http://tetgen.org/";
+ license = stdenv.lib.licenses.agpl3Plus;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/abc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/abc/default.nix
new file mode 100644
index 000000000000..426c5a9df323
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/abc/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub
+, readline, cmake
+}:
+
+stdenv.mkDerivation rec {
+ pname = "abc-verifier";
+ version = "2020.11.24";
+
+ src = fetchFromGitHub {
+ owner = "yosyshq";
+ repo = "abc";
+ rev = "4f5f73d18b137930fb3048c0b385c82fa078db38";
+ sha256 = "0z1kp223kix7i4r7mbj2bzawkdzc55nsgc41m85dmbajl9fsj1m0";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ readline ];
+
+ enableParallelBuilding = true;
+ installPhase = "mkdir -p $out/bin && mv abc $out/bin";
+
+ # needed by yosys
+ passthru.rev = src.rev;
+
+ meta = with stdenv.lib; {
+ description = "A tool for squential logic synthesis and formal verification";
+ homepage = "https://people.eecs.berkeley.edu/~alanmi/abc";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/abella/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/abella/default.nix
new file mode 100644
index 000000000000..3d9a2e9bd67b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/abella/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, rsync, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "abella";
+ version = "2.0.6";
+
+ src = fetchurl {
+ url = "http://abella-prover.org/distributions/${pname}-${version}.tar.gz";
+ sha256 = "164q9gngckg6q69k13lwx2pq3cnc9ckw1qi8dnpxqfjgwfqr7xyi";
+ };
+
+ buildInputs = [ rsync ] ++ (with ocamlPackages; [ ocaml ocamlbuild findlib ]);
+
+ installPhase = ''
+ mkdir -p $out/bin
+ rsync -av abella $out/bin/
+
+ mkdir -p $out/share/emacs/site-lisp/abella/
+ rsync -av emacs/ $out/share/emacs/site-lisp/abella/
+
+ mkdir -p $out/share/abella/examples
+ rsync -av examples/ $out/share/abella/examples/
+ '';
+
+ meta = {
+ description = "Interactive theorem prover";
+ longDescription = ''
+ Abella is an interactive theorem prover based on lambda-tree syntax.
+ This means that Abella is well-suited for reasoning about the meta-theory
+ of programming languages and other logical systems which manipulate
+ objects with binding.
+ '';
+ homepage = "http://abella-prover.org/";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ bcdarwin ciil ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
new file mode 100644
index 000000000000..ccd080005076
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, dune, ocamlPackages }:
+
+stdenv.mkDerivation {
+
+ pname = "acgtk";
+ version = "1.5.1";
+
+ src = fetchurl {
+ url = "https://acg.loria.fr/software/acg-1.5.1-20191113.tar.gz";
+ sha256 = "17595qfwhzz5q091ak6i6bg5wlppbn8zfn58x3hmmmjvx2yfajn1";
+ };
+
+ buildInputs = [ dune ] ++ (with ocamlPackages; [
+ ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir mtime yojson
+ ]);
+
+ buildPhase = "dune build";
+
+ inherit (dune) installPhase;
+
+ meta = with stdenv.lib; {
+ homepage = "https://acg.loria.fr/";
+ description = "A toolkit for developing ACG signatures and lexicon";
+ license = licenses.cecill20;
+ inherit (ocamlPackages.ocaml.meta) platforms;
+ maintainers = [ maintainers.jirkamarsik ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/aiger/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/aiger/default.nix
new file mode 100644
index 000000000000..aa5a59ed298a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/aiger/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, picosat }:
+
+stdenv.mkDerivation rec {
+ pname = "aiger";
+ version = "1.9.9";
+
+ src = fetchurl {
+ url = "http://fmv.jku.at/aiger/${pname}-${version}.tar.gz";
+ sha256 = "1ish0dw0nf9gyghxsdhpy1jjiy5wp54c993swp85xp7m6vdx6l0y";
+ };
+
+ enableParallelBuilding = true;
+
+ configurePhase = ''
+ # Set up picosat, so we can build 'aigbmc'
+ mkdir ../picosat
+ ln -s ${picosat}/include/picosat/picosat.h ../picosat/picosat.h
+ ln -s ${picosat}/lib/picosat.o ../picosat/picosat.o
+ ln -s ${picosat}/share/picosat.version ../picosat/VERSION
+ ./configure.sh
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $dev/include $lib/lib
+
+ # Do the installation manually, as the Makefile has odd
+ # cyrillic characters, and this is easier than adding
+ # a whole .patch file.
+ BINS=( \
+ aigand aigdd aigflip aigfuzz aiginfo aigjoin \
+ aigmiter aigmove aignm aigor aigreset aigsim \
+ aigsplit aigstrip aigtoaig aigtoblif aigtocnf \
+ aigtodot aigtosmv aigunconstraint aigunroll \
+ andtoaig bliftoaig smvtoaig soltostim wrapstim \
+ aigbmc aigdep
+ )
+
+ for x in ''${BINS[*]}; do
+ install -m 755 -s $x $out/bin/$x
+ done
+
+ cp -v aiger.o $lib/lib
+ cp -v aiger.h $dev/include
+ '';
+
+ outputs = [ "out" "dev" "lib" ];
+
+ meta = {
+ description = "And-Inverter Graph (AIG) utilities";
+ homepage = "http://fmv.jku.at/aiger/";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
new file mode 100644
index 000000000000..519b1f98138e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
@@ -0,0 +1,45 @@
+{ fetchurl, lib, which, ocamlPackages }:
+
+let
+ pname = "alt-ergo";
+ version = "2.3.3";
+
+ src = fetchurl {
+ url = "https://alt-ergo.ocamlpro.com/http/alt-ergo-${version}/alt-ergo-${version}.tar.gz";
+ sha256 = "124k2a4ikk4wdpmvgjpgl97x9skvr9qznk8m68dzsynzpv6yksaj";
+ };
+
+ nativeBuildInputs = [ which ];
+
+in
+
+let alt-ergo-lib = ocamlPackages.buildDunePackage rec {
+ pname = "alt-ergo-lib";
+ inherit version src nativeBuildInputs;
+ configureFlags = pname;
+ propagatedBuildInputs = with ocamlPackages; [ num ocplib-simplex stdlib-shims zarith ];
+}; in
+
+let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
+ pname = "alt-ergo-parsers";
+ inherit version src nativeBuildInputs;
+ configureFlags = pname;
+ buildInputs = with ocamlPackages; [ menhir ];
+ propagatedBuildInputs = [ alt-ergo-lib ] ++ (with ocamlPackages; [ camlzip psmt2-frontend ]);
+}; in
+
+ocamlPackages.buildDunePackage {
+
+ inherit pname version src nativeBuildInputs;
+
+ configureFlags = pname;
+
+ buildInputs = [ alt-ergo-parsers ocamlPackages.menhir ];
+
+ meta = {
+ description = "High-performance theorem prover and SMT solver";
+ homepage = "https://alt-ergo.ocamlpro.com/";
+ license = lib.licenses.ocamlpro_nc;
+ maintainers = [ lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/aspino/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/aspino/default.nix
new file mode 100644
index 000000000000..c1cf9034c02a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/aspino/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, fetchFromGitHub, zlib, boost }:
+
+let
+ glucose' = fetchurl {
+ url = "http://www.labri.fr/perso/lsimon/downloads/softwares/glucose-syrup.tgz";
+ sha256 = "0bq5l2jabhdfhng002qfk0mcj4pfi1v5853x3c7igwfrgx0jmfld";
+ };
+in
+
+stdenv.mkDerivation {
+ name = "aspino-unstable-2017-03-09";
+
+ src = fetchFromGitHub {
+ owner = "alviano";
+ repo = "aspino";
+ rev = "e31c3b4e5791a454e6602439cb26bd98d23c4e78";
+ sha256 = "0annsjs2prqmv1lbs0lxr7yclfzh47xg9zyiq6mdxcc02rxsi14f";
+ };
+
+ buildInputs = [ zlib boost ];
+
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace "GCC = g++" "GCC = c++"
+
+ patchShebangs .
+ '';
+
+ preBuild = ''
+ cp ${glucose'} patches/glucose-syrup.tgz
+ ./bootstrap.sh
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ install -m0755 build/release/{aspino,fairino-{bs,ls,ps},maxino-2015-{k16,kdyn}} $out/bin
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "SAT/PseudoBoolean/MaxSat/ASP solver using glucose";
+ maintainers = with maintainers; [ gebner ];
+ platforms = platforms.unix;
+ license = licenses.asl20;
+ homepage = "https://alviano.net/software/maxino/";
+ # See pkgs/applications/science/logic/glucose/default.nix
+ badPlatforms = [ "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/default.nix
new file mode 100644
index 000000000000..6b48c1e34488
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchgit, cmake, zlib, boost }:
+
+stdenv.mkDerivation rec {
+ pname = "avy";
+ version = "2019.05.01"; # date of cav19 tag
+
+ src = fetchgit {
+ url = "https://bitbucket.org/arieg/extavy";
+ rev = "cav19";
+ sha256 = "0qdzy9srxp5f38x4dbb3prnr9il6cy0kz80avrvd7fxqzy7wdlwy";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [ cmake zlib boost.out boost.dev ];
+ NIX_CFLAGS_COMPILE = toString ([ "-Wno-narrowing" ]
+ # Squelch endless stream of warnings on same few things
+ ++ stdenv.lib.optionals stdenv.cc.isClang [
+ "-Wno-empty-body"
+ "-Wno-tautological-compare"
+ "-Wc++11-compat-deprecated-writable-strings"
+ "-Wno-deprecated"
+ ]);
+
+ prePatch = ''
+ sed -i -e '1i#include <stdint.h>' abc/src/bdd/dsd/dsd.h
+ substituteInPlace abc/src/bdd/dsd/dsd.h --replace \
+ '((Child = Dsd_NodeReadDec(Node,Index))>=0);' \
+ '((intptr_t)(Child = Dsd_NodeReadDec(Node,Index))>=0);'
+
+ patch -p1 -d minisat -i ${./minisat-fenv.patch}
+ patch -p1 -d glucose -i ${./glucose-fenv.patch}
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp avy/src/{avy,avybmc} $out/bin/
+ '';
+
+ meta = {
+ description = "AIGER model checking for Property Directed Reachability";
+ homepage = "https://arieg.bitbucket.io/avy/";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+ platforms = stdenv.lib.platforms.linux;
+ # See pkgs/applications/science/logic/glucose/default.nix
+ # (The error is different due to glucose-fenv.patch, but the same)
+ badPlatforms = [ "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/glucose-fenv.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/glucose-fenv.patch
new file mode 100644
index 000000000000..dd19f7ec80e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/glucose-fenv.patch
@@ -0,0 +1,65 @@
+From d6e0cb60270e8653bda3f339e3a07ce2cd2d6eb0 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Tue, 17 Oct 2017 23:01:36 -0500
+Subject: [PATCH] glucose: use fenv to set double precision
+
+---
+ core/Main.cc | 8 ++++++--
+ simp/Main.cc | 8 ++++++--
+ utils/System.h | 2 +-
+ 3 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/core/Main.cc b/core/Main.cc
+index c96aadd..994132b 100644
+--- a/core/Main.cc
++++ b/core/Main.cc
+@@ -96,8 +96,12 @@ int main(int argc, char** argv)
+ // printf("This is MiniSat 2.0 beta\n");
+
+ #if defined(__linux__)
+- fpu_control_t oldcw, newcw;
+- _FPU_GETCW(oldcw); newcw = (oldcw & ~_FPU_EXTENDED) | _FPU_DOUBLE; _FPU_SETCW(newcw);
++ fenv_t fenv;
++
++ fegetenv(&fenv);
++ fenv.__control_word &= ~0x300; /* _FPU_EXTENDED */
++ fenv.__control_word |= 0x200; /* _FPU_DOUBLE */
++ fesetenv(&fenv);
+ printf("c WARNING: for repeatability, setting FPU to use double precision\n");
+ #endif
+ // Extra options:
+diff --git a/simp/Main.cc b/simp/Main.cc
+index 4f4772d..70c2e4b 100644
+--- a/simp/Main.cc
++++ b/simp/Main.cc
+@@ -97,8 +97,12 @@ int main(int argc, char** argv)
+
+
+ #if defined(__linux__)
+- fpu_control_t oldcw, newcw;
+- _FPU_GETCW(oldcw); newcw = (oldcw & ~_FPU_EXTENDED) | _FPU_DOUBLE; _FPU_SETCW(newcw);
++ fenv_t fenv;
++
++ fegetenv(&fenv);
++ fenv.__control_word &= ~0x300; /* _FPU_EXTENDED */
++ fenv.__control_word |= 0x200; /* _FPU_DOUBLE */
++ fesetenv(&fenv);
+ printf("WARNING: for repeatability, setting FPU to use double precision\n");
+ #endif
+ // Extra options:
+diff --git a/utils/System.h b/utils/System.h
+index 004d498..a768e99 100644
+--- a/utils/System.h
++++ b/utils/System.h
+@@ -22,7 +22,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
+ #define Glucose_System_h
+
+ #if defined(__linux__)
+-#include <fpu_control.h>
++#include <fenv.h>
+ #endif
+
+ #include "glucose/mtl/IntTypes.h"
+--
+2.14.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/minisat-fenv.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/minisat-fenv.patch
new file mode 100644
index 000000000000..686d5a1c5b49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/avy/minisat-fenv.patch
@@ -0,0 +1,65 @@
+From 7f1016ceab9b0f57a935bd51ca6df3d18439b472 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Tue, 17 Oct 2017 22:57:02 -0500
+Subject: [PATCH] use fenv instead of non-standard fpu_control
+
+---
+ core/Main.cc | 8 ++++++--
+ simp/Main.cc | 8 ++++++--
+ utils/System.h | 2 +-
+ 3 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/core/Main.cc b/core/Main.cc
+index 2b0d97b..8ad95fb 100644
+--- a/core/Main.cc
++++ b/core/Main.cc
+@@ -78,8 +78,12 @@ int main(int argc, char** argv)
+ // printf("This is MiniSat 2.0 beta\n");
+
+ #if defined(__linux__)
+- fpu_control_t oldcw, newcw;
+- _FPU_GETCW(oldcw); newcw = (oldcw & ~_FPU_EXTENDED) | _FPU_DOUBLE; _FPU_SETCW(newcw);
++ fenv_t fenv;
++
++ fegetenv(&fenv);
++ fenv.__control_word &= ~0x300; /* _FPU_EXTENDED */
++ fenv.__control_word |= 0x200; /* _FPU_DOUBLE */
++ fesetenv(&fenv);
+ printf("WARNING: for repeatability, setting FPU to use double precision\n");
+ #endif
+ // Extra options:
+diff --git a/simp/Main.cc b/simp/Main.cc
+index 2804d7f..39bfb71 100644
+--- a/simp/Main.cc
++++ b/simp/Main.cc
+@@ -79,8 +79,12 @@ int main(int argc, char** argv)
+ // printf("This is MiniSat 2.0 beta\n");
+
+ #if defined(__linux__)
+- fpu_control_t oldcw, newcw;
+- _FPU_GETCW(oldcw); newcw = (oldcw & ~_FPU_EXTENDED) | _FPU_DOUBLE; _FPU_SETCW(newcw);
++ fenv_t fenv;
++
++ fegetenv(&fenv);
++ fenv.__control_word &= ~0x300; /* _FPU_EXTENDED */
++ fenv.__control_word |= 0x200; /* _FPU_DOUBLE */
++ fesetenv(&fenv);
+ printf("WARNING: for repeatability, setting FPU to use double precision\n");
+ #endif
+ // Extra options:
+diff --git a/utils/System.h b/utils/System.h
+index 1758192..c0ad13a 100644
+--- a/utils/System.h
++++ b/utils/System.h
+@@ -22,7 +22,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
+ #define Minisat_System_h
+
+ #if defined(__linux__)
+-#include <fpu_control.h>
++#include <fenv.h>
+ #endif
+
+ #include "mtl/IntTypes.h"
+--
+2.14.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/beluga/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/beluga/default.nix
new file mode 100644
index 000000000000..44478a032b38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/beluga/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchFromGitHub, ocamlPackages, rsync }:
+
+ocamlPackages.buildDunePackage {
+ pname = "beluga";
+ version = "unstable-2020-03-11";
+
+ src = fetchFromGitHub {
+ owner = "Beluga-lang";
+ repo = "Beluga";
+ rev = "6133b2f572219333f304bb4f77c177592324c55b";
+ sha256 = "0sy6mi50z3mvs5z7dx38piydapk89all81rh038x3559b5fsk68q";
+ };
+
+ useDune2 = true;
+
+ buildInputs = with ocamlPackages; [
+ gen sedlex_2 ocaml_extlib dune-build-info linenoise
+ ];
+
+ postPatch = ''
+ patchShebangs ./TEST ./run_harpoon_test.sh
+ '';
+
+ checkPhase = "./TEST";
+ checkInputs = [ rsync ];
+ doCheck = true;
+
+ postInstall = ''
+ mkdir -p $out/share/emacs/site-lisp/beluga/
+ cp -r tools/beluga-mode.el $out/share/emacs/site-lisp/beluga
+ '';
+
+ meta = with lib; {
+ description = "A functional language for reasoning about formal systems";
+ homepage = "http://complogic.cs.mcgill.ca/beluga/";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.bcdarwin ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/boolector/cmake-gtest.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/boolector/cmake-gtest.patch
new file mode 100644
index 000000000000..61a64d3abbbf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/boolector/cmake-gtest.patch
@@ -0,0 +1,16 @@
+diff --git a/cmake/googletest-download.cmake b/cmake/googletest-download.cmake
+index 0ec4d558..d0910313 100644
+--- a/cmake/googletest-download.cmake
++++ b/cmake/googletest-download.cmake
+@@ -9,10 +9,7 @@ ExternalProject_Add(
+ googletest
+ SOURCE_DIR "@GOOGLETEST_DOWNLOAD_ROOT@/googletest-src"
+ BINARY_DIR "@GOOGLETEST_DOWNLOAD_ROOT@/googletest-build"
+- GIT_REPOSITORY
+- https://github.com/google/googletest.git
+- GIT_TAG
+- release-1.10.0
++ URL REPLACEME
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/boolector/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/boolector/default.nix
new file mode 100644
index 000000000000..0364a76639aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/boolector/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchFromGitHub, fetchpatch, lib, python3
+, cmake, lingeling, btor2tools, gtest, gmp
+}:
+
+stdenv.mkDerivation rec {
+ pname = "boolector";
+ version = "3.2.1";
+
+ src = fetchFromGitHub {
+ owner = "boolector";
+ repo = "boolector";
+ rev = "refs/tags/${version}";
+ sha256 = "0jkmaw678njqgkflzj9g374yk1mci8yqvsxkrqzlifn6bwhwb7ci";
+ };
+
+ # excludes development artifacts from install, will be included in next release
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/Boolector/boolector/commit/4d240436e34e65096671099766344dd9126145b1.patch";
+ sha256 = "1girsbvlhkkl1hldl2gsjynwc3m92jskn798qhx0ydg6whrfgcgw";
+ })
+ ];
+
+ postPatch = ''
+ sed s@REPLACEME@file://${gtest.src}@ ${./cmake-gtest.patch} | patch -p1
+ '';
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ lingeling btor2tools gmp ];
+
+ cmakeFlags =
+ [ "-DBUILD_SHARED_LIBS=ON"
+ "-DUSE_LINGELING=YES"
+ ] ++ (lib.optional (gmp != null) "-DUSE_GMP=YES");
+
+ checkInputs = [ python3 ];
+ doCheck = true;
+ preCheck =
+ let var = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
+ in
+ # tests modelgen and modelgensmt2 spawn boolector in another processes and
+ # macOS strips DYLD_LIBRARY_PATH, hardcode it for testing
+ stdenv.lib.optionalString stdenv.isDarwin ''
+ cp -r bin bin.back
+ install_name_tool -change libboolector.dylib $(pwd)/lib/libboolector.dylib bin/boolector
+ '' + ''
+ export ${var}=$(readlink -f lib)
+ patchShebangs ..
+ '';
+
+ postCheck = stdenv.lib.optionalString stdenv.isDarwin ''
+ rm -rf bin
+ mv bin.back bin
+ '';
+
+ # this is what haskellPackages.boolector expects
+ postInstall = ''
+ cp $out/include/boolector/boolector.h $out/include/boolector.h
+ cp $out/include/boolector/btortypes.h $out/include/btortypes.h
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An extremely fast SMT solver for bit-vectors and arrays";
+ homepage = "https://boolector.github.io";
+ license = licenses.mit;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/btor2tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/btor2tools/default.nix
new file mode 100644
index 000000000000..7d2aed7596e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/btor2tools/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, cmake, fetchFromGitHub, fixDarwinDylibNames }:
+
+stdenv.mkDerivation rec {
+ pname = "btor2tools";
+ version = "1.0.0-pre_${src.rev}";
+
+ src = fetchFromGitHub {
+ owner = "boolector";
+ repo = "btor2tools";
+ rev = "9831f9909fb283752a3d6d60d43613173bd8af42";
+ sha256 = "0mfqmkgvyw8fa2c09kww107dmk180ch1hp98r5kv41vnc04iqb0s";
+ };
+
+ nativeBuildInputs = [ cmake ] ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+ installPhase = ''
+ mkdir -p $out $dev/include/btor2parser/ $lib/lib
+
+ cp -vr bin $out
+ cp -v ../src/btor2parser/btor2parser.h $dev/include/btor2parser
+ cp -v lib/libbtor2parser.* $lib/lib
+ '';
+
+ outputs = [ "out" "dev" "lib" ];
+
+ meta = with stdenv.lib; {
+ description = "A generic parser and tool package for the BTOR2 format";
+ homepage = "https://github.com/Boolector/btor2tools";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cadical/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cadical/default.nix
new file mode 100644
index 000000000000..e3707ff7dab1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cadical/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "cadical";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "arminbiere";
+ repo = "cadical";
+ rev = "rel-${version}";
+ sha256 = "05lvnvapjawgkky38xknb9lgaliiwan4kggmb9yggl4ifpjrh8qf";
+ };
+
+ doCheck = true;
+ dontAddPrefix = true;
+
+ installPhase = ''
+ install -Dm0755 build/cadical "$out/bin/cadical"
+ install -Dm0755 build/mobical "$out/bin/mobical"
+ mkdir -p "$out/share/doc/${pname}-${version}/"
+ install -Dm0755 {LICEN?E,README*,VERSION} "$out/share/doc/${pname}-${version}/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simplified Satisfiability Solver";
+ maintainers = with maintainers; [ shnarazk ];
+ platforms = platforms.unix;
+ license = licenses.mit;
+ homepage = "http://fmv.jku.at/cadical";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cedille/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cedille/default.nix
new file mode 100644
index 000000000000..2ac96df66a68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cedille/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, alex
+, happy
+, Agda
+, buildPlatform
+, buildPackages
+, ghcWithPackages
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.1.1";
+ pname = "cedille";
+
+ src = fetchFromGitHub {
+ owner = "cedille";
+ repo = "cedille";
+ rev = "v${version}";
+ sha256 = "16pc72wz6kclq9yv2r8hx85mkp0s125h12snrhcjxkbl41xx2ynb";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ alex happy ];
+ buildInputs = [ Agda (ghcWithPackages (ps: [ps.ieee])) ];
+
+ LANG = "en_US.UTF-8";
+ LOCALE_ARCHIVE =
+ lib.optionalString (buildPlatform.libc == "glibc")
+ "${buildPackages.glibcLocales}/lib/locale/locale-archive";
+
+ postPatch = ''
+ patchShebangs create-libraries.sh
+ '';
+
+ installPhase = ''
+ install -Dm755 -t $out/bin/ cedille
+ install -Dm755 -t $out/bin/ core/cedille-core
+ install -Dm644 -t $out/share/info docs/info/cedille-info-main.info
+
+ mkdir -p $out/lib/
+ cp -r lib/ $out/lib/cedille/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An interactive theorem-prover and dependently typed programming language, based on extrinsic (aka Curry-style) type theory";
+ homepage = "https://cedille.github.io/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ marsam mpickering ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/celf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/celf/default.nix
new file mode 100644
index 000000000000..9dc20a61a4d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/celf/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, smlnj }:
+
+stdenv.mkDerivation rec {
+ pname = "celf";
+ pversion = "2013-07-25";
+ name = "${pname}-${pversion}";
+
+ src = fetchFromGitHub {
+ owner = "clf";
+ repo = pname;
+ rev = "d61d95900ab316468ae850fa34a2fe9488bc5b59";
+ sha256 = "0slrwcxglp0sdbp6wr65cdkl5wcap2i0fqxbwqfi1q3cpb6ph6hq";
+ };
+
+ buildInputs = [ smlnj ];
+
+ # (can also build with MLton)
+ buildPhase = ''
+ export SMLNJ_HOME=${smlnj}
+ sml < main-export.sml
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp .heap* $out/bin/
+ ./.mkexec ${smlnj}/bin/sml $out/bin celf
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Linear logic programming system";
+ homepage = "https://github.com/clf/celf";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ bcdarwin ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/clprover/clprover.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/clprover/clprover.nix
new file mode 100644
index 000000000000..e53bbe688371
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/clprover/clprover.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation {
+ pname = "clprover";
+ version = "1.0.3";
+
+ src = fetchzip {
+ url = "http://cgi.csc.liv.ac.uk/~ullrich/CLProver++/CLProver++-v1.0.3-18-04-2015.zip";
+ sha256 = "10kmlg4m572qwfzi6hkyb0ypb643xw8sfb55xx7866lyh37w1q3s";
+ stripRoot = false;
+ };
+
+ installPhase = ''
+ mkdir $out
+ cp -r bin $out/bin
+ mkdir -p $out/share/clprover
+ cp -r examples $out/share/clprover/examples
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Resolution-based theorem prover for Coalition Logic implemented in C++";
+ homepage = "http://cgi.csc.liv.ac.uk/~ullrich/CLProver++/";
+ license = licenses.gpl3; # Note that while the website states that it is GPLv2 but the file in the zip as well as the comments in the source state it is GPLv3
+ maintainers = with maintainers; [ mgttlinger ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/coq/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/coq/default.nix
new file mode 100644
index 000000000000..dc9e40912d53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/coq/default.nix
@@ -0,0 +1,175 @@
+# - coqide compilation can be disabled by setting buildIde to false
+# - The csdp program used for the Micromega tactic is statically referenced.
+# However, coq can build without csdp by setting it to null.
+# In this case some Micromega tactics will search the user's path for the csdp program and will fail if it is not found.
+# - The exact version can be specified through the `version` argument to
+# the derivation; it defaults to the latest stable version.
+
+{ stdenv, fetchFromGitHub, writeText, pkgconfig, gnumake42
+, ocamlPackages, ncurses
+, buildIde ? !(stdenv.isDarwin && stdenv.lib.versionAtLeast version "8.10")
+, glib, gnome3, wrapGAppsHook
+, csdp ? null
+, version
+}:
+
+let
+ sha256 = {
+ "8.5pl1" = "1976ki5xjg2r907xj9p7gs0kpdinywbwcqlgxqw75dgp0hkgi00n";
+ "8.5pl2" = "109rrcrx7mz0fj7725kjjghfg5ydwb24hjsa5hspa27b4caah7rh";
+ "8.5pl3" = "15c3rdk59nifzihsp97z4vjxis5xmsnrvpb86qiazj143z2fmdgw";
+ "8.6" = "148mb48zpdax56c0blfi7v67lx014lnmrvxxasi28hsibyz2lvg4";
+ "8.6.1" = "0llrxcxwy5j87vbbjnisw42rfw1n1pm5602ssx64xaxx3k176g6l";
+ "8.7.0" = "1h18b7xpnx3ix9vsi5fx4zdcbxy7bhra7gd5c5yzxmk53cgf1p9m";
+ "8.7.1" = "0gjn59jkbxwrihk8fx9d823wjyjh5m9gvj9l31nv6z6bcqhgdqi8";
+ "8.7.2" = "0a0657xby8wdq4aqb2xsxp3n7pmc2w4yxjmrb2l4kccs1aqvaj4w";
+ "8.8.0" = "13a4fka22hdxsjk11mgjb9ffzplfxyxp1sg5v1c8nk1grxlscgw8";
+ "8.8.1" = "1hlf58gwazywbmfa48219amid38vqdl94yz21i11b4map6jfwhbk";
+ "8.8.2" = "1lip3xja924dm6qblisk1bk0x8ai24s5xxqxphbdxj6djglj68fd";
+ "8.9.0" = "1dkgdjc4n1m15m1p724hhi5cyxpqbjw6rxc5na6fl3v4qjjfnizh";
+ "8.9.1" = "1xrq6mkhpq994bncmnijf8jwmwn961kkpl4mwwlv7j3dgnysrcv2";
+ "8.10.0" = "138jw94wp4mg5dgjc2asn8ng09ayz1mxdznq342n0m469j803gzg";
+ "8.10.1" = "072v2zkjzf7gj48137wpr3c9j0hg9pdhlr5l8jrgrwynld8fp7i4";
+ "8.10.2" = "0znxmpy71bfw0p6x47i82jf5k7v41zbz9bdpn901ysn3ir8l3wrz";
+ "8.11.0" = "1rfdic6mp7acx2zfwz7ziqk12g95bl9nyj68z4n20a5bcjv2pxpn";
+ "8.11.1" = "0qriy9dy36dajsv5qmli8gd6v55mah02ya334nw49ky19v7518m0";
+ "8.11.2" = "0f77ccyxdgbf1nrj5fa8qvrk1cyfy06fv8gj9kzfvlcgn0cf48sa";
+ "8.12.0" = "18dc7k0piv6v064zgdadpw6mkkxk7j663hb3svgj5236fihjr0cz";
+ "8.12.1" = "1rkcyjjrzcqw9xk93hsq0vvji4f8r5iq0f739mghk60bghkpnb7q";
+ }.${version};
+ coq-version = stdenv.lib.versions.majorMinor version;
+ versionAtLeast = stdenv.lib.versionAtLeast coq-version;
+ ideFlags = stdenv.lib.optionalString (buildIde && !versionAtLeast "8.10")
+ "-lablgtkdir ${ocamlPackages.lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt";
+ csdpPatch = if csdp != null then ''
+ substituteInPlace plugins/micromega/sos.ml --replace "; csdp" "; ${csdp}/bin/csdp"
+ substituteInPlace plugins/micromega/coq_micromega.ml --replace "System.is_in_system_path \"csdp\"" "true"
+ '' else "";
+self = stdenv.mkDerivation {
+ pname = "coq";
+ inherit version;
+
+ passthru = {
+ inherit coq-version;
+ inherit ocamlPackages;
+ # For compatibility
+ inherit (ocamlPackages) ocaml camlp5 findlib num;
+ emacsBufferSetup = pkgs: ''
+ ; Propagate coq paths to children
+ (inherit-local-permanent coq-prog-name "${self}/bin/coqtop")
+ (inherit-local-permanent coq-dependency-analyzer "${self}/bin/coqdep")
+ (inherit-local-permanent coq-compiler "${self}/bin/coqc")
+ ; If the coq-library path was already set, re-set it based on our current coq
+ (when (fboundp 'get-coq-library-directory)
+ (inherit-local-permanent coq-library-directory (get-coq-library-directory))
+ (coq-prog-args))
+ (mapc (lambda (arg)
+ (when (file-directory-p (concat arg "/lib/coq/${coq-version}/user-contrib"))
+ (setenv "COQPATH" (concat (getenv "COQPATH") ":" arg "/lib/coq/${coq-version}/user-contrib")))) '(${stdenv.lib.concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)}))
+ ; TODO Abstract this pattern from here and nixBufferBuilders.withPackages!
+ (defvar nixpkgs--coq-buffer-count 0)
+ (when (eq nixpkgs--coq-buffer-count 0)
+ (make-variable-buffer-local 'nixpkgs--is-nixpkgs-coq-buffer)
+ (defun nixpkgs--coq-inherit (buf)
+ (inherit-local-inherit-child buf)
+ (with-current-buffer buf
+ (setq nixpkgs--coq-buffer-count (1+ nixpkgs--coq-buffer-count))
+ (add-hook 'kill-buffer-hook 'nixpkgs--decrement-coq-buffer-count nil t))
+ buf)
+ ; When generating a scomint buffer, do inherit-local inheritance and make it a nixpkgs-coq buffer
+ (defun nixpkgs--around-scomint-make (orig &rest r)
+ (if nixpkgs--is-nixpkgs-coq-buffer
+ (progn
+ (advice-add 'get-buffer-create :filter-return #'nixpkgs--coq-inherit)
+ (apply orig r)
+ (advice-remove 'get-buffer-create #'nixpkgs--coq-inherit))
+ (apply orig r)))
+ (advice-add 'scomint-make :around #'nixpkgs--around-scomint-make)
+ ; When we have no more coq buffers, tear down the buffer handling
+ (defun nixpkgs--decrement-coq-buffer-count ()
+ (setq nixpkgs--coq-buffer-count (1- nixpkgs--coq-buffer-count))
+ (when (eq nixpkgs--coq-buffer-count 0)
+ (advice-remove 'scomint-make #'nixpkgs--around-scomint-make)
+ (fmakunbound 'nixpkgs--around-scomint-make)
+ (fmakunbound 'nixpkgs--coq-inherit)
+ (fmakunbound 'nixpkgs--decrement-coq-buffer-count))))
+ (setq nixpkgs--coq-buffer-count (1+ nixpkgs--coq-buffer-count))
+ (add-hook 'kill-buffer-hook 'nixpkgs--decrement-coq-buffer-count nil t)
+ (setq nixpkgs--is-nixpkgs-coq-buffer t)
+ (inherit-local 'nixpkgs--is-nixpkgs-coq-buffer)
+ '';
+ };
+
+ src = fetchFromGitHub {
+ owner = "coq";
+ repo = "coq";
+ rev = "V${version}";
+ inherit sha256;
+ };
+
+ nativeBuildInputs = [ pkgconfig ]
+ ++ stdenv.lib.optional (!versionAtLeast "8.6") gnumake42
+ ;
+ buildInputs = [ ncurses ocamlPackages.ocaml ocamlPackages.findlib ]
+ ++ stdenv.lib.optional (!versionAtLeast "8.10") ocamlPackages.camlp5
+ ++ stdenv.lib.optional (!versionAtLeast "8.12") ocamlPackages.num
+ ++ stdenv.lib.optionals buildIde
+ (if versionAtLeast "8.10"
+ then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.defaultIconTheme wrapGAppsHook ]
+ else [ ocamlPackages.lablgtk ]);
+
+ propagatedBuildInputs = stdenv.lib.optional (versionAtLeast "8.12") ocamlPackages.num;
+
+ postPatch = ''
+ UNAME=$(type -tp uname)
+ RM=$(type -tp rm)
+ substituteInPlace configure --replace "/bin/uname" "$UNAME"
+ substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
+ substituteInPlace configure.ml --replace '"md5 -q"' '"md5sum"'
+ ${csdpPatch}
+ '';
+
+ setupHook = writeText "setupHook.sh" ''
+ addCoqPath () {
+ if test -d "''$1/lib/coq/${coq-version}/user-contrib"; then
+ export COQPATH="''${COQPATH-}''${COQPATH:+:}''$1/lib/coq/${coq-version}/user-contrib/"
+ fi
+ }
+
+ addEnvHooks "$targetOffset" addCoqPath
+ '';
+
+ preConfigure = if versionAtLeast "8.10" then ''
+ patchShebangs dev/tools/
+ '' else ''
+ configureFlagsArray=(
+ ${ideFlags}
+ )
+ '';
+
+ prefixKey = "-prefix ";
+
+ buildFlags = [ "revision" "coq" "coqide" "bin/votour" ];
+
+ createFindlibDestdir = true;
+
+ postInstall = ''
+ cp bin/votour $out/bin/
+ ln -s $out/lib/coq $OCAMLFIND_DESTDIR/coq
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Coq proof assistant";
+ longDescription = ''
+ Coq is a formal proof management system. It provides a formal language
+ to write mathematical definitions, executable algorithms and theorems
+ together with an environment for semi-interactive development of
+ machine-checked proofs.
+ '';
+ homepage = "http://coq.inria.fr";
+ license = licenses.lgpl21;
+ branch = coq-version;
+ maintainers = with maintainers; [ roconnor thoughtpolice vbgl Zimmi48 ];
+ platforms = platforms.unix;
+ };
+}; in self
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix
new file mode 100644
index 000000000000..e53e8e7392c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchgit, ocaml }:
+
+let
+ version = "20170720";
+in
+
+stdenv.mkDerivation {
+ pname = "coq2html";
+ inherit version;
+
+ src = fetchgit {
+ url = "https://github.com/xavierleroy/coq2html";
+ rev = "e2b94093c6b9a877717f181765e30577de22439e";
+ sha256 = "1x466j0pyjggyz0870pdllv9f5vpnfrgkd0w7ajvm9rkwyp3f610";
+ };
+
+ buildInputs = [ ocaml ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp coq2html $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "HTML documentation generator for Coq source files";
+ longDescription = ''
+ coq2html is an HTML documentation generator for Coq source files. It is
+ an alternative to the standard coqdoc documentation generator
+ distributed along with Coq. The major feature of coq2html is its ability
+ to fold proof scripts: in the generated HTML, proof scripts are
+ initially hidden, but can be revealed one by one by clicking on the
+ "Proof" keyword.
+ '';
+ homepage = "https://github.com/xavierleroy/coq2html";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ jwiegley ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
new file mode 100644
index 000000000000..ddbb140c9baa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake, python3, xxd, boost, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "cryptominisat";
+ version = "5.8.0";
+
+ src = fetchFromGitHub {
+ owner = "msoos";
+ repo = "cryptominisat";
+ rev = version;
+ sha256 = "00hmxdlyhn7pwk9jlvc5g0l5z5xqfchjzf5jgn3pkj9xhl8yqq50";
+ };
+
+ patches = [
+ (fetchpatch {
+ # https://github.com/msoos/cryptominisat/pull/621
+ url = "https://github.com/msoos/cryptominisat/commit/11a97003b0bfbfb61ed6c4e640212110d390c28c.patch";
+ sha256 = "0hdy345bwcbxz0jl1jdxfa6mmfh77s2pz9rnncsr0jzk11b3j0cw";
+ })
+ ];
+
+ buildInputs = [ python3 boost ];
+ nativeBuildInputs = [ cmake xxd ];
+
+ meta = with stdenv.lib; {
+ description = "An advanced SAT Solver";
+ homepage = "https://github.com/msoos/cryptominisat";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mic92 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix
new file mode 100644
index 000000000000..28295ea28922
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ocaml }:
+
+stdenv.mkDerivation rec {
+ pname = "cryptoverif";
+ version = "2.03pl1";
+
+ src = fetchurl {
+ url = "http://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/cryptoverif${version}.tar.gz";
+ sha256 = "0q7qa1qm7mbky3m36445gdmgmkb9mrhrdsk7mmwn8fzw0rfc6z00";
+ };
+
+ buildInputs = [ ocaml ];
+
+ /* Fix up the frontend to load the 'default' cryptoverif library
+ ** from under $out/libexec. By default, it expects to find the files
+ ** in $CWD which doesn't work. */
+ patchPhase = ''
+ substituteInPlace ./src/settings.ml \
+ --replace \"default\" \"$out/libexec/default\"
+ '';
+
+ buildPhase = "./build";
+ installPhase = ''
+ mkdir -p $out/bin $out/libexec
+ cp ./cryptoverif $out/bin
+ cp ./default.cvl $out/libexec
+ cp ./default.ocvl $out/libexec
+ '';
+
+ meta = {
+ description = "Cryptographic protocol verifier in the computational model";
+ homepage = "https://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/";
+ license = stdenv.lib.licenses.cecill-b;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix
new file mode 100644
index 000000000000..bfb6a57fb33a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "cubicle";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "http://cubicle.lri.fr/cubicle-${version}.tar.gz";
+ sha256 = "10kk80jdmpdvql88sdjsh7vqzlpaphd8vip2lp47aarxjkwjlz1q";
+ };
+
+ postPatch = ''
+ substituteInPlace Makefile.in --replace "\\n" ""
+ '';
+
+ buildInputs = with ocamlPackages; [ ocaml findlib functory ];
+
+ meta = with stdenv.lib; {
+ description = "An open source model checker for verifying safety properties of array-based systems";
+ homepage = "http://cubicle.lri.fr/";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ dwarfmaster ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc3/cvc3-2.4.1-gccv6-fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc3/cvc3-2.4.1-gccv6-fix.patch
new file mode 100644
index 000000000000..1fb3516b8c27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc3/cvc3-2.4.1-gccv6-fix.patch
@@ -0,0 +1,76 @@
+commit 4eb28b907e89be05d92eb704115f821b9b848e60
+Author: Matthew Dawson <matthew@mjdsystems.ca>
+Date: Sun Oct 16 22:06:03 2016 -0400
+
+ Fix gcc v6 compile failures.
+
+ * Use std::hash<const char*> over std::hash<char *>, as throwing away the const is not allowed.
+ * Use Hash::hash by default in CDMap over std::hash, to get Hash::hash<CVC3::expr>
+
+diff --git a/src/expr/expr_value.cpp b/src/expr/expr_value.cpp
+index 0c85ff6..e4dd251 100644
+--- a/src/expr/expr_value.cpp
++++ b/src/expr/expr_value.cpp
+@@ -29,7 +29,7 @@ namespace CVC3 {
+ // Class ExprValue static members
+ ////////////////////////////////////////////////////////////////////////
+
+-std::hash<char*> ExprValue::s_charHash;
++std::hash<const char*> ExprValue::s_charHash;
+ std::hash<long int> ExprValue::s_intHash;
+
+ ////////////////////////////////////////////////////////////////////////
+diff --git a/src/include/cdmap.h b/src/include/cdmap.h
+index faf682a..c3b094c 100644
+--- a/src/include/cdmap.h
++++ b/src/include/cdmap.h
+@@ -43,9 +43,9 @@ namespace CVC3 {
+ // Auxiliary class: almost the same as CDO (see cdo.h), but on
+ // setNull() call it erases itself from the map.
+
+-template <class Key, class Data, class HashFcn = std::hash<Key> > class CDMap;
++template <class Key, class Data, class HashFcn = Hash::hash<Key> > class CDMap;
+
+-template <class Key, class Data, class HashFcn = std::hash<Key> >
++template <class Key, class Data, class HashFcn = Hash::hash<Key> >
+ class CDOmap :public ContextObj {
+ Key d_key;
+ Data d_data;
+diff --git a/src/include/expr_hash.h b/src/include/expr_hash.h
+index b2107d7..baa2eab 100644
+--- a/src/include/expr_hash.h
++++ b/src/include/expr_hash.h
+@@ -20,7 +20,6 @@
+ * hash_set over Expr class.
+ */
+ /*****************************************************************************/
+-
+ #ifndef _cvc3__expr_h_
+ #include "expr.h"
+ #endif
+diff --git a/src/include/expr_value.h b/src/include/expr_value.h
+index 95102b2..f53aa4d 100644
+--- a/src/include/expr_value.h
++++ b/src/include/expr_value.h
+@@ -179,7 +179,7 @@ protected:
+ // Static hash functions. They don't depend on the context
+ // (ExprManager and such), so it is still thread-safe to have them
+ // static.
+- static std::hash<char*> s_charHash;
++ static std::hash<const char*> s_charHash;
+ static std::hash<long int> s_intHash;
+
+ static size_t pointerHash(void* p) { return s_intHash((long int)p); }
+diff --git a/src/theory_core/theory_core.cpp b/src/theory_core/theory_core.cpp
+index df5289f..37ccab9 100644
+--- a/src/theory_core/theory_core.cpp
++++ b/src/theory_core/theory_core.cpp
+@@ -710,7 +710,7 @@ TheoryCore::TheoryCore(ContextManager* cm,
+ // d_termTheorems(cm->getCurrentContext()),
+ d_predicates(cm->getCurrentContext()),
+ d_solver(NULL),
+- d_simplifyInPlace(false),
++ d_simplifyInPlace(NULL),
+ d_currentRecursiveSimplifier(NULL),
+ d_resourceLimit(0),
+ d_timeBase(0),
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
new file mode 100644
index 000000000000..be80565115fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, flex, bison, gmp, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "cvc3";
+ version = "2.4.1";
+
+ src = fetchurl {
+ url = "http://www.cs.nyu.edu/acsys/cvc3/releases/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1xxcwhz3y6djrycw8sm6xz83wb4hb12rd1n0skvc7fng0rh1snym";
+ };
+
+ buildInputs = [ gmp flex bison perl ];
+
+ patches = [ ./cvc3-2.4.1-gccv6-fix.patch ];
+
+ postPatch = ''
+ sed -e "s@ /bin/bash@bash@g" -i Makefile.std
+ find . -exec sed -e "s@/usr/bin/perl@${perl}/bin/perl@g" -i '{}' ';'
+
+ # bison 3.7 workaround
+ for f in parsePL parseLisp parsesmtlib parsesmtlib2 ; do
+ ln -s ../parser/''${f}_defs.h src/include/''${f}.hpp
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A prover for satisfiability modulo theory (SMT)";
+ maintainers = with maintainers;
+ [ raskin ];
+ platforms = platforms.unix;
+ license = licenses.free;
+ homepage = "http://www.cs.nyu.edu/acsys/cvc3/index.html";
+ };
+ passthru = {
+ updateInfo = {
+ downloadPage = "http://www.cs.nyu.edu/acsys/cvc3/download.html";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
new file mode 100644
index 000000000000..54a2f0225518
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, cln, gmp, git, swig, pkgconfig
+, readline, libantlr3c, boost, jdk, python3, antlr3_4
+}:
+
+stdenv.mkDerivation rec {
+ pname = "cvc4";
+ version = "1.8";
+
+ src = fetchFromGitHub {
+ owner = "cvc4";
+ repo = "cvc4";
+ rev = version;
+ sha256 = "1rhs4pvzaa1wk00czrczp58b2cxfghpsnq534m0l3snnya2958jp";
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+ buildInputs = [ gmp git python3.pkgs.toml cln readline swig libantlr3c antlr3_4 boost jdk python3 ];
+ configureFlags = [
+ "--enable-language-bindings=c,c++,java"
+ "--enable-gpl"
+ "--with-cln"
+ "--with-readline"
+ "--with-boost=${boost.dev}"
+ ];
+
+ prePatch = ''
+ patch -p1 -i ${./minisat-fenv.patch} -d src/prop/minisat
+ patch -p1 -i ${./minisat-fenv.patch} -d src/prop/bvminisat
+ '';
+
+ preConfigure = ''
+ patchShebangs ./src/
+ '';
+ cmakeFlags = [
+ "-DCMAKE_BUILD_TYPE=Production"
+ ];
+
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A high-performance theorem prover and SMT solver";
+ homepage = "http://cvc4.cs.stanford.edu/web/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ vbgl thoughtpolice gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc4/minisat-fenv.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc4/minisat-fenv.patch
new file mode 100644
index 000000000000..686d5a1c5b49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/cvc4/minisat-fenv.patch
@@ -0,0 +1,65 @@
+From 7f1016ceab9b0f57a935bd51ca6df3d18439b472 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Tue, 17 Oct 2017 22:57:02 -0500
+Subject: [PATCH] use fenv instead of non-standard fpu_control
+
+---
+ core/Main.cc | 8 ++++++--
+ simp/Main.cc | 8 ++++++--
+ utils/System.h | 2 +-
+ 3 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/core/Main.cc b/core/Main.cc
+index 2b0d97b..8ad95fb 100644
+--- a/core/Main.cc
++++ b/core/Main.cc
+@@ -78,8 +78,12 @@ int main(int argc, char** argv)
+ // printf("This is MiniSat 2.0 beta\n");
+
+ #if defined(__linux__)
+- fpu_control_t oldcw, newcw;
+- _FPU_GETCW(oldcw); newcw = (oldcw & ~_FPU_EXTENDED) | _FPU_DOUBLE; _FPU_SETCW(newcw);
++ fenv_t fenv;
++
++ fegetenv(&fenv);
++ fenv.__control_word &= ~0x300; /* _FPU_EXTENDED */
++ fenv.__control_word |= 0x200; /* _FPU_DOUBLE */
++ fesetenv(&fenv);
+ printf("WARNING: for repeatability, setting FPU to use double precision\n");
+ #endif
+ // Extra options:
+diff --git a/simp/Main.cc b/simp/Main.cc
+index 2804d7f..39bfb71 100644
+--- a/simp/Main.cc
++++ b/simp/Main.cc
+@@ -79,8 +79,12 @@ int main(int argc, char** argv)
+ // printf("This is MiniSat 2.0 beta\n");
+
+ #if defined(__linux__)
+- fpu_control_t oldcw, newcw;
+- _FPU_GETCW(oldcw); newcw = (oldcw & ~_FPU_EXTENDED) | _FPU_DOUBLE; _FPU_SETCW(newcw);
++ fenv_t fenv;
++
++ fegetenv(&fenv);
++ fenv.__control_word &= ~0x300; /* _FPU_EXTENDED */
++ fenv.__control_word |= 0x200; /* _FPU_DOUBLE */
++ fesetenv(&fenv);
+ printf("WARNING: for repeatability, setting FPU to use double precision\n");
+ #endif
+ // Extra options:
+diff --git a/utils/System.h b/utils/System.h
+index 1758192..c0ad13a 100644
+--- a/utils/System.h
++++ b/utils/System.h
+@@ -22,7 +22,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
+ #define Minisat_System_h
+
+ #if defined(__linux__)
+-#include <fpu_control.h>
++#include <fenv.h>
+ #endif
+
+ #include "mtl/IntTypes.h"
+--
+2.14.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix
new file mode 100644
index 000000000000..81e20df33424
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "drat-trim-unstable";
+ version = "2020-06-05";
+
+ src = fetchFromGitHub {
+ owner = "marijnheule";
+ repo = "drat-trim";
+ rev = "9afad0f7156a1e9c6ce19dce5d72cf1cb9a3ef27";
+ sha256 = "1zq585igfaknwqbvv2cji744016zxadbvr0ifr5l6yq13m0vvn3b";
+ };
+
+ postPatch = ''
+ substituteInPlace Makefile --replace gcc cc
+ '';
+
+ installPhase = ''
+ install -Dt $out/bin drat-trim lrat-check
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A proof checker for unSAT proofs";
+ longDescription = ''
+ DRAT-trim is a satisfiability proof checking and trimming
+ utility designed to validate proofs for all known satisfiability
+ solving and preprocessing techniques. DRAT-trim can also emit
+ trimmed formulas, optimized proofs, and TraceCheck+ dependency
+ graphs.
+
+ DRAT-trim has been used as part of the judging process in the
+ annual SAT Competition in recent years, in order to check
+ competing SAT solvers' work when they claim that a SAT instance
+ is unsatisfiable.
+
+ This package also contains the related tool LRAT-check, which checks a
+ proof format called LRAT which extends DRAT with hint statements to speed
+ up the checking process.
+ '';
+ homepage = "https://www.cs.utexas.edu/~marijn/drat-trim/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kini ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.nix
new file mode 100644
index 000000000000..e1eb9a2dcc3b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, ocaml, perl}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="ekrhyper";
+ version="1_4_21022014";
+ name="${baseName}-${version}";
+ hash="14xaaxyvfli1nd4vd9fp4j1s8k76z2bhazxzzc7br3q6hc6b8ivw";
+ url="http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/ekrh_1_4_21022014.tar.gz";
+ sha256="14xaaxyvfli1nd4vd9fp4j1s8k76z2bhazxzzc7br3q6hc6b8ivw";
+ };
+ buildInputs = [
+ ocaml perl
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+ setSourceRoot = "export sourceRoot=$(echo */ekrh/src/)";
+ preInstall = "export INSTALLDIR=$out";
+ postInstall = ''for i in "$out/casc"/*; do ln -s "$i" "$out/bin/ekrh-casc-$(basename $i)"; done '';
+ meta = {
+ inherit (s) version;
+ description = "Automated first-order theorem prover";
+ license = stdenv.lib.licenses.gpl2 ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.upstream b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.upstream
new file mode 100644
index 000000000000..310e93ea53fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.upstream
@@ -0,0 +1,3 @@
+url http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/
+ensure_choice
+version '.*[^0-9]_([-0-9_]+)[.].*' '\1'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/elan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/elan/default.nix
new file mode 100644
index 000000000000..7a7da2c5f5d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/elan/default.nix
@@ -0,0 +1,44 @@
+{ lib, pkgconfig, curl, openssl, zlib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "elan";
+ version = "0.10.2";
+
+ src = fetchFromGitHub {
+ owner = "kha";
+ repo = "elan";
+ rev = "v${version}";
+ sha256 = "0ycw1r364g5gwh8796dpv1israpg7zqwx8mcvnacv2lqj5iijmby";
+ };
+
+ cargoSha256 = "0hcaiy046d2gnkp6sfpnkkprb3nd94i9q8dgqxxpwrc1j157x6z9";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ curl zlib openssl ];
+
+ cargoBuildFlags = [ "--features no-self-update" ];
+
+ postInstall = ''
+ pushd $out/bin
+ mv elan-init elan
+ for link in lean leanpkg leanchecker leanc leanmake; do
+ ln -s elan $link
+ done
+ popd
+
+ # tries to create .elan
+ export HOME=$(mktemp -d)
+ mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
+ $out/bin/elan completions bash > "$out/share/bash-completion/completions/elan"
+ $out/bin/elan completions fish > "$out/share/fish/vendor_completions.d/elan.fish"
+ $out/bin/elan completions zsh > "$out/share/zsh/site-functions/_elan"
+ '';
+
+ meta = with lib; {
+ description = "Small tool to manage your installations of the Lean theorem prover";
+ homepage = "https://github.com/Kha/elan";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/eprover/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
new file mode 100644
index 000000000000..a3844dc3700b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, which }:
+
+stdenv.mkDerivation rec {
+ pname = "eprover";
+ version = "2.5";
+
+ src = fetchurl {
+ url = "https://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_${version}/E.tgz";
+ sha256 = "0jj0zkiqpcx9xp16spkskrv3jycprz7jg1g97i67j43c4yvxylwa";
+ };
+
+ buildInputs = [ which ];
+
+ preConfigure = ''
+ sed -e 's/ *CC *= *gcc$//' -i Makefile.vars
+ '';
+ configureFlags = [
+ "--exec-prefix=$(out)"
+ "--man-prefix=$(out)/share/man"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Automated theorem prover for full first-order logic with equality";
+ homepage = "http://www.eprover.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ raskin gebner ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix
new file mode 100644
index 000000000000..a46542095373
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, lib, fetchhg, cmake, which, python3, osi, cplex }:
+
+stdenv.mkDerivation {
+ version = "19.12";
+ pname = "fast-downward";
+
+ src = fetchhg {
+ url = "http://hg.fast-downward.org/";
+ rev = "41688a4f16b3";
+ sha256 = "08m4k1mkx4sz7c2ab7xh7ip6b67zxv7kl68xrvwa83xw1yigqkna";
+ };
+
+ nativeBuildInputs = [ cmake which ];
+ buildInputs = [ python3 python3.pkgs.wrapPython osi ];
+
+ cmakeFlags =
+ lib.optional osi.withCplex [ "-DDOWNWARD_CPLEX_ROOT=${cplex}/cplex" ];
+
+ enableParallelBuilding = true;
+
+ configurePhase = ''
+ python build.py release
+ '';
+
+ postPatch = ''
+ # Needed because the package tries to be too smart.
+ export CC="$(which $CC)"
+ export CXX="$(which $CXX)"
+ '';
+
+ installPhase = ''
+ install -Dm755 builds/release/bin/downward $out/libexec/fast-downward/downward
+ cp -r builds/release/bin/translate $out/libexec/fast-downward/
+ install -Dm755 fast-downward.py $out/bin/fast-downward
+ mkdir -p $out/${python3.sitePackages}
+ cp -r driver $out/${python3.sitePackages}
+
+ wrapPythonProgramsIn $out/bin "$out $pythonPath"
+ wrapPythonProgramsIn $out/libexec/fast-downward/translate "$out $pythonPath"
+ # Because fast-downward calls `python translate.py` we need to return wrapped scripts back.
+ for i in $out/libexec/fast-downward/translate/.*-wrapped; do
+ name="$(basename "$i")"
+ name1="''${name#.}"
+ name2="''${name1%-wrapped}"
+ dir="$(dirname "$i")"
+ dest="$dir/$name2"
+ echo "Moving $i to $dest"
+ mv "$i" "$dest"
+ done
+
+ substituteInPlace $out/${python3.sitePackages}/driver/arguments.py \
+ --replace 'args.build = "release"' "args.build = \"$out/libexec/fast-downward\""
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A domain-independent planning system";
+ homepage = "http://www.fast-downward.org/";
+ license = licenses.gpl3Plus;
+ platforms = with platforms; (linux ++ darwin);
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/gappa/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
new file mode 100644
index 000000000000..2ca1bcd30981
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, gmp, mpfr, boost }:
+
+stdenv.mkDerivation {
+ name = "gappa-1.3.5";
+
+ src = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/file/38044/gappa-1.3.5.tar.gz";
+ sha256 = "0q1wdiwqj6fsbifaayb1zkp20bz8a1my81sqjsail577jmzwi07w";
+ };
+
+ buildInputs = [ gmp mpfr boost.dev ];
+
+ buildPhase = "./remake";
+ installPhase = "./remake install";
+
+ meta = {
+ homepage = "http://gappa.gforge.inria.fr/";
+ description = "Verifying and formally proving properties on numerical programs dealing with floating-point or fixed-point arithmetic";
+ license = with stdenv.lib.licenses; [ cecill20 gpl2 ];
+ maintainers = with stdenv.lib.maintainers; [ vbgl ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/glucose/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/glucose/default.nix
new file mode 100644
index 000000000000..0a8fad484da7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/glucose/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, zlib }:
+stdenv.mkDerivation rec {
+ pname = "glucose";
+ version = "4.1";
+
+ src = fetchurl {
+ url = "http://www.labri.fr/perso/lsimon/downloads/softwares/glucose-syrup-${version}.tgz";
+ sha256 = "0aahrkaq7n0z986fpqz66yz946nxardfi6dh8calzcfjpvqiraji";
+ };
+
+ buildInputs = [ zlib ];
+
+ sourceRoot = "glucose-syrup-${version}/simp";
+ makeFlags = [ "r" ];
+ installPhase = ''
+ install -Dm0755 glucose_release $out/bin/glucose
+ mkdir -p "$out/share/doc/${pname}-${version}/"
+ install -Dm0755 ../{LICEN?E,README*,Changelog*} "$out/share/doc/${pname}-${version}/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Modern, parallel SAT solver (sequential version)";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ gebner ];
+ # Build uses _FPU_EXTENDED macro
+ badPlatforms = [ "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/glucose/syrup.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/glucose/syrup.nix
new file mode 100644
index 000000000000..816f8504a52e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/glucose/syrup.nix
@@ -0,0 +1,24 @@
+{ stdenv, zlib, glucose }:
+stdenv.mkDerivation rec {
+ pname = "glucose-syrup";
+ version = glucose.version;
+
+ src = glucose.src;
+
+ buildInputs = [ zlib ];
+
+ sourceRoot = "glucose-syrup-${version}/parallel";
+ makeFlags = [ "r" ];
+ installPhase = ''
+ install -Dm0755 glucose-syrup_release $out/bin/glucose-syrup
+ mkdir -p "$out/share/doc/${pname}-${version}/"
+ install -Dm0755 ../{LICEN?E,README*,Changelog*} "$out/share/doc/${pname}-${version}/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Modern, parallel SAT solver (parallel version)";
+ license = licenses.unfreeRedistributable;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/hol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/hol/default.nix
new file mode 100644
index 000000000000..dbafee7d6000
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/hol/default.nix
@@ -0,0 +1,88 @@
+{stdenv, pkgs, fetchurl, graphviz, fontconfig, liberation_ttf,
+ experimentalKernel ? true}:
+
+let
+ pname = "hol4";
+ vnum = "10";
+in
+
+let
+ version = "k.${vnum}";
+ longVersion = "kananaskis-${vnum}";
+ holsubdir = "hol-${longVersion}";
+ kernelFlag = if experimentalKernel then "-expk" else "-stdknl";
+in
+
+let
+ polymlEnableShared = with pkgs; lib.overrideDerivation polyml (attrs: {
+ configureFlags = [ "--enable-shared" ];
+ });
+in
+
+stdenv.mkDerivation {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/hol/hol/${longVersion}/${holsubdir}.tar.gz";
+ sha256 = "0x2wxksr305h1lrbklf6p42lp09rbhb4rsh74g0l70sgapyiac9b";
+ };
+
+ buildInputs = [polymlEnableShared graphviz fontconfig liberation_ttf];
+
+ buildCommand = ''
+
+ mkdir chroot-fontconfig
+ cat ${fontconfig.out}/etc/fonts/fonts.conf > chroot-fontconfig/fonts.conf
+ sed -e 's@</fontconfig>@@' -i chroot-fontconfig/fonts.conf
+ echo "<dir>${liberation_ttf}</dir>" >> chroot-fontconfig/fonts.conf
+ echo "</fontconfig>" >> chroot-fontconfig/fonts.conf
+
+ export FONTCONFIG_FILE=$(pwd)/chroot-fontconfig/fonts.conf
+
+ mkdir -p "$out/src"
+ cd "$out/src"
+
+ tar -xzf "$src"
+ cd ${holsubdir}
+
+ substituteInPlace tools/Holmake/Holmake_types.sml \
+ --replace "\"/bin/mv\"" "\"mv\"" \
+ --replace "\"/bin/cp\"" "\"cp\""
+
+ for f in tools/buildutils.sml help/src-sml/DOT;
+ do
+ substituteInPlace $f --replace "\"/usr/bin/dot\"" "\"${graphviz}/bin/dot\""
+ done
+
+ #sed -ie "/compute/,999 d" tools/build-sequence # for testing
+
+ poly < tools/smart-configure.sml
+
+ bin/build ${kernelFlag} -symlink
+
+ mkdir -p "$out/bin"
+ ln -st $out/bin $out/src/${holsubdir}/bin/*
+ # ln -s $out/src/hol4.${version}/bin $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Interactive theorem prover based on Higher-Order Logic";
+ longDescription = ''
+ HOL4 is the latest version of the HOL interactive proof
+ assistant for higher order logic: a programming environment in
+ which theorems can be proved and proof tools
+ implemented. Built-in decision procedures and theorem provers
+ can automatically establish many simple theorems (users may have
+ to prove the hard theorems themselves!) An oracle mechanism
+ gives access to external programs such as SMT and BDD
+ engines. HOL4 is particularly suitable as a platform for
+ implementing combinations of deduction, execution and property
+ checking.
+ '';
+ homepage = "http://hol.sourceforge.net/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ mudri ];
+ platforms = with platforms; linux;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix
new file mode 100644
index 000000000000..9c3030517e32
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, runtimeShell, fetchFromGitHub, fetchpatch, ocaml, num, camlp5 }:
+
+let
+ load_num =
+ if num == null then "" else
+ ''
+ -I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
+ -I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
+ -I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
+ '';
+
+ start_script =
+ ''
+ #!${runtimeShell}
+ cd $out/lib/hol_light
+ exec ${ocaml}/bin/ocaml \
+ -I \`${camlp5}/bin/camlp5 -where\` \
+ ${load_num} \
+ -init make.ml
+ '';
+in
+
+stdenv.mkDerivation {
+ name = "hol_light-2019-10-06";
+
+ src = fetchFromGitHub {
+ owner = "jrh13";
+ repo = "hol-light";
+ rev = "5c91b2ded8a66db571824ecfc18b4536c103b23e";
+ sha256 = "0sxsk8z08ba0q5aixdyczcx5l29lb51ba4ip3d2fry7y604kjsx6";
+ };
+
+ patches = [(fetchpatch {
+ url = "https://salsa.debian.org/ocaml-team/hol-light/-/raw/master/debian/patches/0004-Fix-compilation-with-camlp5-7.11.patch";
+ sha256 = "180qmxbrk3vb1ix7j77hcs8vsar91rs11s5mm8ir5352rz7ylicr";
+ })];
+
+ buildInputs = [ ocaml camlp5 ];
+ propagatedBuildInputs = [ num ];
+
+ installPhase = ''
+ mkdir -p "$out/lib/hol_light" "$out/bin"
+ cp -a . $out/lib/hol_light
+ echo "${start_script}" > "$out/bin/hol_light"
+ chmod a+x "$out/bin/hol_light"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Interactive theorem prover based on Higher-Order Logic";
+ homepage = "http://www.cl.cam.ac.uk/~jrh13/hol-light/";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice maggesi vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/iprover/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/iprover/default.nix
new file mode 100644
index 000000000000..310a95d7e7a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/iprover/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, ocaml, eprover, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "iprover";
+ version = "3.1";
+
+ src = fetchurl {
+ url = "http://www.cs.man.ac.uk/~korovink/iprover/iprover-v${version}.tar.gz";
+ sha256 = "0lik8p7ayhjwpkln1iwf0ri84ramhch74j5nj6z7ph6wfi92pgg8";
+ };
+
+ buildInputs = [ ocaml eprover zlib ];
+
+ preConfigure = ''patchShebangs .'';
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp iproveropt "$out/bin"
+
+ mkdir -p "$out/share/${pname}-${version}"
+ cp *.p "$out/share/${pname}-${version}"
+ echo -e "#! ${stdenv.shell}\\n$out/bin/iproveropt --clausifier \"${eprover}/bin/eprover\" --clausifier_options \" --tstp-format --silent --cnf \" \"\$@\"" > "$out"/bin/iprover
+ chmod a+x "$out"/bin/iprover
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An automated first-order logic theorem prover";
+ homepage = "http://www.cs.man.ac.uk/~korovink/iprover/";
+ maintainers = with maintainers; [ raskin gebner ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
new file mode 100644
index 000000000000..a12d75eabbe9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, fetchurl, perl, nettools, java, polyml, z3, rlwrap }:
+# nettools needed for hostname
+
+stdenv.mkDerivation rec {
+ pname = "isabelle";
+ version = "2020";
+
+ dirname = "Isabelle${version}";
+
+ src = if stdenv.isDarwin
+ then fetchurl {
+ url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
+ sha256 = "1sfr5filsaqj93g5y4p9n8g5652dhr4whj25x4lifdxr2pp560xx";
+ }
+ else fetchurl {
+ url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
+ sha256 = "1bibabhlsvf6qsjjkgxcpq3cvl1z7r8yfcgqbhbvsiv69n3gyfk3";
+ };
+
+ buildInputs = [ perl polyml z3 ]
+ ++ stdenv.lib.optionals (!stdenv.isDarwin) [ nettools java ];
+
+ sourceRoot = dirname;
+
+ postPatch = ''
+ patchShebangs .
+
+ cat >contrib/z3*/etc/settings <<EOF
+ Z3_HOME=${z3}
+ Z3_VERSION=${z3.version}
+ Z3_SOLVER=${z3}/bin/z3
+ Z3_INSTALLED=yes
+ EOF
+
+ cat >contrib/polyml-*/etc/settings <<EOF
+ ML_SYSTEM_64=true
+ ML_SYSTEM=${polyml.name}
+ ML_PLATFORM=${stdenv.system}
+ ML_HOME=${polyml}/bin
+ ML_OPTIONS="--minheap 1000"
+ POLYML_HOME="\$COMPONENT"
+ ML_SOURCES="\$POLYML_HOME/src"
+ EOF
+
+ cat >contrib/jdk*/etc/settings <<EOF
+ ISABELLE_JAVA_PLATFORM=${stdenv.system}
+ ISABELLE_JDK_HOME=${java}
+ EOF
+
+ echo ISABELLE_LINE_EDITOR=${rlwrap}/bin/rlwrap >>etc/settings
+
+ for comp in contrib/jdk* contrib/polyml-* contrib/z3-*; do
+ rm -rf $comp/x86*
+ done
+ '' + (if ! stdenv.isLinux then "" else ''
+ arch=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64-linux" else "x86-linux"}
+ for f in contrib/*/$arch/{bash_process,epclextract,eprover,nunchaku,SPASS}; do
+ patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f"
+ done
+ '');
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv $TMP/$dirname $out
+ cd $out/$dirname
+ bin/isabelle install $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A generic proof assistant";
+
+ longDescription = ''
+ Isabelle is a generic proof assistant. It allows mathematical formulas
+ to be expressed in a formal language and provides tools for proving those
+ formulas in a logical calculus.
+ '';
+ homepage = "https://isabelle.in.tum.de/";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.jwiegley ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/jonprl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/jonprl/default.nix
new file mode 100644
index 000000000000..3ee05a478bc2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/jonprl/default.nix
@@ -0,0 +1,35 @@
+{ fetchgit, stdenv, smlnj, which }:
+
+stdenv.mkDerivation rec {
+ pname = "jonprl";
+ version = "0.1.0";
+
+ src = fetchgit {
+ url = "https://github.com/jonsterling/JonPRL.git";
+ deepClone = true;
+ rev = "refs/tags/v${version}";
+ sha256 = "0czs13syvnw8fz24d075n4pmsyfs8rs8c7ksmvd7cgb3h55fvp4p";
+ };
+
+ buildInputs = [ smlnj which ];
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp bin/.heapimg.* "$out/bin/"
+ build/mkexec.sh "${smlnj}/bin/sml" "$out" jonprl
+ '';
+
+ meta = {
+ description = "Proof Refinement Logic - Computational Type Theory";
+ longDescription = ''
+ An proof refinement logic for computational type theory
+ based on Brouwer-realizability & meaning explanations.
+ Inspired by Nuprl
+ '';
+ homepage = "https://github.com/jonsterling/JonPRL";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ puffnfresh ];
+ platforms = stdenv.lib.platforms.linux;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/key/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/key/default.nix
new file mode 100644
index 000000000000..b08c4d84d1fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/key/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchurl
+, unzip
+, jdk
+, ant
+, jre
+, makeWrapper
+, runCommand
+, key
+}:
+
+# get this from the download URL when changing version
+let gitRevision = "7d3deab0763c88edee4f7a08e604661e0dbdd450";
+
+in stdenv.mkDerivation rec {
+ pname = "key";
+ version = "2.6.3";
+
+ src = fetchurl {
+ url = "https://formal.iti.kit.edu/key/releases/${version}/key-src-${version}_${gitRevision}.zip";
+ sha256 = "1dr5jmrqs0iy76wdsfiv5hx929i24yzm1xypzqqvx7afc7apyawy";
+ };
+
+ sourceRoot = "key";
+
+ nativeBuildInputs = [
+ unzip
+ jdk
+ ant
+ makeWrapper
+ ];
+
+ buildPhase = ''
+ ant -buildfile scripts/build.xml \
+ -Dgit.revision=${gitRevision} \
+ compileAll deployAll
+ '';
+
+ postCheck = ''
+ ant -buildfile scripts/build.xml \
+ -Dgit.revision=${gitRevision} \
+ compileAllTests runAllTests test-deploy-all
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/java
+ # Wrong version in the code. On next version change 2.5 to ${version}:
+ unzip deployment/key-2.5_${gitRevision}.zip -d $out/share/java
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/KeY \
+ --add-flags "-cp $out/share/java/KeY.jar de.uka.ilkd.key.core.Main"
+ '';
+
+ passthru.tests.check-version = runCommand "key-help" {} ''
+ ${key}/bin/KeY --help | grep 2.5 # Wrong version in the code. On next version change to ${version}
+ touch $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Java formal verification tool";
+ homepage = "https://www.key-project.org"; # also https://formal.iti.kit.edu/key/
+ longDescription = ''
+ The KeY System is a formal software development tool that aims to
+ integrate design, implementation, formal specification, and formal
+ verification of object-oriented software as seamlessly as possible.
+ At the core of the system is a novel theorem prover for the first-order
+ Dynamic Logic for Java with a user-friendly graphical interface.
+ '';
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lci/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lci/default.nix
new file mode 100644
index 000000000000..4775384a3ddc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lci/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl, readline}:
+stdenv.mkDerivation rec {
+ version = "0.6";
+ pname = "lci";
+ src = fetchurl {
+ url = "mirror://sourceforge/lci/${pname}-${version}.tar.gz";
+ sha256="204f1ca5e2f56247d71ab320246811c220ed511bf08c9cb7f305cf180a93948e";
+ };
+ buildInputs = [readline];
+ meta = {
+ description = ''Lambda calculus interpreter'';
+ maintainers = with stdenv.lib.maintainers; [raskin];
+ platforms = with stdenv.lib.platforms; linux;
+ license = stdenv.lib.licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lean/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lean/default.nix
new file mode 100644
index 000000000000..88e1b4fbc0e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lean/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, cmake, gmp, coreutils }:
+
+stdenv.mkDerivation rec {
+ pname = "lean";
+ version = "3.23.0";
+
+ src = fetchFromGitHub {
+ owner = "leanprover-community";
+ repo = "lean";
+ rev = "v${version}";
+ sha256 = "09mklc1p6ms1jayg2f89hqfmhca3h5744lli936l38ypn1d00sxx";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ gmp ];
+ enableParallelBuilding = true;
+
+ cmakeDir = "../src";
+
+ # Running the tests is required to build the *.olean files for the core
+ # library.
+ doCheck = true;
+
+ postPatch = "patchShebangs .";
+
+ postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace $out/bin/leanpkg \
+ --replace "greadlink" "${coreutils}/bin/readlink"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automatic and interactive theorem prover";
+ homepage = "https://leanprover.github.io/";
+ changelog = "https://github.com/leanprover-community/lean/blob/v${version}/doc/changes.md";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice gebner ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lean2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lean2/default.nix
new file mode 100644
index 000000000000..612c9d6f92a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lean2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, gmp, mpfr, python
+, gperftools, ninja, makeWrapper }:
+
+stdenv.mkDerivation {
+ pname = "lean2";
+ version = "2017-07-22";
+
+ src = fetchFromGitHub {
+ owner = "leanprover";
+ repo = "lean2";
+ rev = "34dbd6c3ae612186b8f0f80d12fbf5ae7a059ec9";
+ sha256 = "1xv3j487zhh1zf2b4v19xzw63s2sgjhg8d62a0kxxyknfmdf3khl";
+ };
+
+ buildInputs = [ gmp mpfr cmake python gperftools ninja makeWrapper ];
+ enableParallelBuilding = true;
+
+ preConfigure = ''
+ patchShebangs bin/leantags
+ cd src
+ '';
+
+ cmakeFlags = [ "-GNinja" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/linja --prefix PATH : $out/bin:${ninja}/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automatic and interactive theorem prover (version with HoTT support)";
+ homepage = "http://leanprover.github.io";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice gebner ];
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
new file mode 100644
index 000000000000..b43bfb801358
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, makeWrapper, eprover, ocaml, perl, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "leo2";
+ version = "1.6.2";
+
+ src = fetchurl {
+ url = "https://page.mi.fu-berlin.de/cbenzmueller/leo/leo2_v${version}.tgz";
+ sha256 = "1wjpmizb181iygnd18lx7p77fwaci2clgzs5ix5j51cc8f3pazmv";
+ };
+
+ buildInputs = [ makeWrapper eprover ocaml perl zlib ];
+
+ sourceRoot = "leo2/src";
+
+ preConfigure = "patchShebangs configure";
+
+ buildFlags = [ "opt" ];
+
+ preInstall = "mkdir -p $out/bin";
+
+ postInstall = ''
+ mkdir -p "$out/etc"
+ echo -e "e = ${eprover}/bin/eprover\\nepclextract = ${eprover}/bin/epclextract" > "$out/etc/leoatprc"
+
+ wrapProgram $out/bin/leo \
+ --add-flags "--atprc $out/etc/leoatprc"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A high-performance typed higher order prover";
+ maintainers = [ maintainers.raskin ];
+ platforms = platforms.linux;
+ license = licenses.bsd3;
+ homepage = "http://www.leoprover.org/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo2/default.upstream b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo2/default.upstream
new file mode 100644
index 000000000000..52b8ed1cdaa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo2/default.upstream
@@ -0,0 +1,6 @@
+url http://page.mi.fu-berlin.de/cbenzmueller/leo/download.html
+version_link '[.]tgz'
+version '.*_v([0-9.]+)[.][a-z0-9]+$' '\1'
+do_overwrite () {
+ do_overwrite_just_version
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix
new file mode 100644
index 000000000000..29a9adf94c4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, openjdk, runtimeShell}:
+stdenv.mkDerivation rec {
+ pname = "leo3";
+ version = "1.2";
+
+ jar = fetchurl {
+ url = "https://github.com/leoprover/Leo-III/releases/download/v${version}/leo3.jar";
+ sha256 = "1lgwxbr1rnk72rnvc8raq5i1q71ckhn998pwd9xk6zf27wlzijk7";
+ };
+
+ phases=["installPhase" "fixupPhase"];
+
+ installPhase = ''
+ mkdir -p "$out"/{bin,lib/java/leo3}
+ cp "${jar}" "$out/lib/java/leo3/leo3.jar"
+ echo "#!${runtimeShell}" > "$out/bin/leo3"
+ echo "'${openjdk}/bin/java' -jar '$out/lib/java/leo3/leo3.jar' \"\$@\"" >> "$out/bin/leo3"
+ chmod a+x "$out/bin/leo3"
+ '';
+
+ meta = {
+ inherit version;
+ description = "An automated theorem prover for classical higher-order logic with choice";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ homepage = "https://page.mi.fu-berlin.de/lex/leo3/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix
new file mode 100644
index 000000000000..1805f6cdcc89
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub
+, aiger
+}:
+
+stdenv.mkDerivation {
+ pname = "lingeling";
+ # This is the version used in satcomp2018, which was
+ # relicensed, and also known as version 'bcj'
+ version = "pre1_03b4860d";
+
+ src = fetchFromGitHub {
+ owner = "arminbiere";
+ repo = "lingeling";
+ rev = "03b4860d14016f42213ea271014f2f13d181f504";
+ sha256 = "1lw1yfy219p7rrk88sbq4zl24b70040zapbjdrpv5a6i0jsblksx";
+ };
+
+ configurePhase = ''
+ ./configure.sh
+
+ # Rather than patch ./configure, just sneak in use of aiger here, since it
+ # doesn't handle real build products very well (it works on a build-time
+ # dir, not installed copy)... This is so we can build 'blimc'
+ substituteInPlace ./makefile \
+ --replace 'targets: liblgl.a' 'targets: liblgl.a blimc' \
+ --replace '$(AIGER)/aiger.o' '${aiger.lib}/lib/aiger.o' \
+ --replace '$(AIGER)/aiger.h' '${aiger.dev}/include/aiger.h' \
+ --replace '-I$(AIGER)' '-I${aiger.dev}/include'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $lib/lib $dev/include
+
+ cp lglib.h $dev/include
+ cp liblgl.a $lib/lib
+
+ cp lingeling plingeling treengeling ilingeling blimc $out/bin
+ '';
+
+ outputs = [ "out" "dev" "lib" ];
+
+ meta = with stdenv.lib; {
+ description = "Fast SAT solver";
+ homepage = "http://fmv.jku.at/lingeling/";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/logisim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/logisim/default.nix
new file mode 100644
index 000000000000..ce86b2523116
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/logisim/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+let version = "2.7.1"; in
+
+stdenv.mkDerivation {
+ pname = "logisim";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/circuit/2.7.x/${version}/logisim-generic-${version}.jar";
+ sha256 = "1hkvc9zc7qmvjbl9579p84hw3n8wl3275246xlzj136i5b0phain";
+ };
+
+ phases = [ "installPhase" ];
+
+ nativeBuildInputs = [makeWrapper];
+
+ installPhase = ''
+ mkdir -pv $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/logisim --add-flags "-jar $src"
+ '';
+
+ meta = {
+ homepage = "http://ozark.hendrix.edu/~burch/logisim";
+ description = "Educational tool for designing and simulating digital logic circuits";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
new file mode 100644
index 000000000000..b5d13db3b9a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+ pname = "ltl2ba";
+ version = "1.3";
+
+ src = fetchurl {
+ url = "http://www.lsv.ens-cachan.fr/~gastin/ltl2ba/${pname}-${version}.tar.gz";
+ sha256 = "1bz9gjpvby4mnvny0nmxgd81rim26mqlcnjlznnxxk99575pfa4i";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ preConfigure = ''
+ substituteInPlace Makefile \
+ --replace "CC=gcc" ""
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv ltl2ba $out/bin
+ '';
+
+ meta = {
+ description = "Fast translation from LTL formulae to Buchi automata";
+ homepage = "http://www.lsv.ens-cachan.fr/~gastin/ltl2ba";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.darwin ++ stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix
new file mode 100644
index 000000000000..eb83eaf79c55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, cmake, libGLU, libGL, qt5, boost}:
+
+stdenv.mkDerivation rec {
+ version = "201707";
+ build_nr = "1";
+ pname = "mcrl2";
+
+ src = fetchurl {
+ url = "https://www.mcrl2.org/download/release/mcrl2-${version}.${build_nr}.tar.gz";
+ sha256 = "1c8h94ja7271ph61zrcgnjgblxppld6v22f7f900prjgzbcfy14m";
+ };
+
+ buildInputs = [ cmake libGLU libGL qt5.qtbase boost ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A toolset for model-checking concurrent systems and protocols";
+ longDescription = ''
+ A formal specification language with an associated toolset,
+ that can be used for modelling, validation and verification of
+ concurrent systems and protocols
+ '';
+ homepage = "https://www.mcrl2.org/";
+ license = licenses.boost;
+ maintainers = with maintainers; [ moretea ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/mcy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/mcy/default.nix
new file mode 100644
index 000000000000..eba910e07eb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/mcy/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub
+, yosys, symbiyosys, python3
+}:
+
+let
+ python = python3.withPackages (p: with p; [ flask ]);
+in
+stdenv.mkDerivation {
+ pname = "mcy";
+ version = "2020.08.03";
+
+ src = fetchFromGitHub {
+ owner = "YosysHQ";
+ repo = "mcy";
+ rev = "62048e69df13f8e03670424626755ae8ef4c36ff";
+ sha256 = "15xxgzx1zxzx5kshqyrxnfx33cz6cjzxcdcn6z98jhs9bwyvf96f";
+ };
+
+ buildInputs = [ python ];
+ patchPhase = ''
+ chmod +x scripts/create_mutated.sh
+ patchShebangs .
+
+ substituteInPlace mcy.py \
+ --replace yosys '${yosys}/bin/yosys' \
+ --replace 'os.execvp("mcy-dash"' "os.execvp(\"$out/bin/mcy-dash\""
+ substituteInPlace mcy-dash.py \
+ --replace 'app.run(debug=True)' 'app.run(host="0.0.0.0",debug=True)' \
+ --replace 'subprocess.Popen(["mcy"' "subprocess.Popen([\"$out/bin/mcy\""
+ substituteInPlace scripts/create_mutated.sh \
+ --replace yosys '${yosys}/bin/yosys'
+ '';
+
+ # the build needs a bit of work...
+ buildPhase = "true";
+ installPhase = ''
+ mkdir -p $out/bin $out/share/mcy/{dash,scripts}
+ install mcy.py $out/bin/mcy && chmod +x $out/bin/mcy
+ install mcy-dash.py $out/bin/mcy-dash && chmod +x $out/bin/mcy-dash
+ cp -r dash/. $out/share/mcy/dash/.
+ cp -r scripts/. $out/share/mcy/scripts/.
+ '';
+
+ meta = {
+ description = "Mutation-based coverage testing for hardware designs, with Yosys";
+ homepage = "https://github.com/YosysHQ/mcy";
+ license = stdenv.lib.licenses.isc;
+ maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix
new file mode 100644
index 000000000000..5755abfd9078
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, perl, mlton }:
+
+stdenv.mkDerivation {
+ pname = "metis-prover";
+ version = "2.3.20160713";
+
+ src = fetchFromGitHub {
+ owner = "gilith";
+ repo = "metis";
+ rev = "f0b1a17cd57eb098077e963ab092477aee9fb340";
+ sha256 = "1i7paax7b4byk8110f5zk4071mh5603r82bq7hbprqzljvsiipk7";
+ };
+
+ nativeBuildInputs = [ perl ];
+ buildInputs = [ mlton ];
+
+ patchPhase = "patchShebangs .";
+
+ buildPhase = "make mlton";
+
+ installPhase = ''
+ install -Dm0755 bin/mlton/metis $out/bin/metis
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automatic theorem prover for first-order logic with equality";
+ homepage = "http://www.gilith.com/research/metis/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ gebner ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/minisat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/minisat/default.nix
new file mode 100644
index 000000000000..df1800e6c31b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/minisat/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "minisat";
+ version = "2.2.1";
+
+ src = fetchFromGitHub {
+ owner = "stp";
+ repo = pname;
+ rev = "releases/${version}";
+ sha256 = "14vcbjnlia00lpyv2fhbmw3wbc9bk9h7bln9zpyc3nwiz5cbjz4a";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ zlib ];
+
+ meta = with stdenv.lib; {
+ description = "Compact and readable SAT solver";
+ maintainers = with maintainers; [ gebner raskin ];
+ platforms = platforms.unix;
+ license = licenses.mit;
+ homepage = "http://minisat.se/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/monosat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
new file mode 100644
index 000000000000..63440213920c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchpatch, fetchFromGitHub, cmake, zlib, gmp, jdk8,
+ # The JDK we use on Darwin currenly makes extensive use of rpaths which are
+ # annoying and break the python library, so let's not bother for now
+ includeJava ? !stdenv.hostPlatform.isDarwin, includeGplCode ? true }:
+
+with stdenv.lib;
+
+let
+ boolToCmake = x: if x then "ON" else "OFF";
+
+ rev = "1.8.0";
+ sha256 = "0q3a8x3iih25xkp2bm842sm2hxlb8hxlls4qmvj7vzwrh4lvsl7b";
+
+ pname = "monosat";
+ version = rev;
+
+ src = fetchFromGitHub {
+ owner = "sambayless";
+ repo = pname;
+ inherit rev sha256;
+ };
+
+ patches = [
+ # Python 3.8 compatibility
+ (fetchpatch {
+ url = "https://github.com/sambayless/monosat/commit/a5079711d0df0451f9840f3a41248e56dbb03967.patch";
+ sha256 = "1p2y0jw8hb9c90nbffhn86k1dxd6f6hk5v70dfmpzka3y6g1ksal";
+ })
+ ];
+
+ core = stdenv.mkDerivation {
+ name = "${pname}-${version}";
+ inherit src patches;
+ buildInputs = [ cmake zlib gmp jdk8 ];
+
+ cmakeFlags = [
+ "-DBUILD_STATIC=OFF"
+ "-DJAVA=${boolToCmake includeJava}"
+ "-DGPL=${boolToCmake includeGplCode}"
+ ];
+
+ postInstall = optionalString includeJava ''
+ mkdir -p $out/share/java
+ cp monosat.jar $out/share/java
+ '';
+
+ passthru = { inherit python; };
+
+ meta = {
+ description = "SMT solver for Monotonic Theories";
+ platforms = platforms.unix;
+ license = if includeGplCode then licenses.gpl2 else licenses.mit;
+ homepage = "https://github.com/sambayless/monosat";
+ maintainers = [ maintainers.acairncross ];
+ };
+ };
+
+ python = { buildPythonPackage, cython }: buildPythonPackage {
+ inherit pname version src patches;
+
+ propagatedBuildInputs = [ core cython ];
+
+ # This tells setup.py to use cython, which should produce faster bindings
+ MONOSAT_CYTHON = true;
+
+ # After patching src, move to where the actually relevant source is. This could just be made
+ # the sourceRoot if it weren't for the patch.
+ postPatch = ''
+ cd src/monosat/api/python
+ '' +
+ # The relative paths here don't make sense for our Nix build
+ # TODO: do we want to just reference the core monosat library rather than copying the
+ # shared lib? The current setup.py copies the .dylib/.so...
+ ''
+ substituteInPlace setup.py \
+ --replace 'library_dir = "../../../../"' 'library_dir = "${core}/lib/"'
+ '';
+ };
+in core
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
new file mode 100644
index 000000000000..c314127e74bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, zlib, gmp }:
+
+stdenv.mkDerivation {
+ name = "open-wbo-2.0";
+
+ src = fetchFromGitHub {
+ owner = "sat-group";
+ repo = "open-wbo";
+ rev = "f193a3bd802551b13d6424bc1baba6ad35ec6ba6";
+ sha256 = "1742i15qfsbf49c4r837wz35c1p7yafvz7ar6vmgcj6cmfwr8jb4";
+ };
+
+ buildInputs = [ zlib gmp ];
+
+ makeFlags = [ "r" ];
+ installPhase = ''
+ install -Dm0755 open-wbo_release $out/bin/open-wbo
+ '';
+
+ meta = with stdenv.lib; {
+ description = "State-of-the-art MaxSAT and Pseudo-Boolean solver";
+ maintainers = with maintainers; [ gebner ];
+ platforms = platforms.unix;
+ license = licenses.mit;
+ homepage = "http://sat.inesc-id.pt/open-wbo/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix
new file mode 100644
index 000000000000..03b3ce4ff0b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, automake, libtool, autoconf, intltool, perl
+, gmpxx, flex, bison
+}:
+
+stdenv.mkDerivation rec {
+ pname = "opensmt";
+ version = "20101017";
+
+ src = fetchurl {
+ url = "http://opensmt.googlecode.com/files/opensmt_src_${version}.tgz";
+ sha256 = "0xrky7ixjaby5x026v7hn72xh7d401w9jhccxjn0khhn1x87p2w1";
+ };
+
+ buildInputs = [ automake libtool autoconf intltool perl gmpxx flex bison ];
+
+ meta = with stdenv.lib; {
+ description = "A satisfiability modulo theory (SMT) solver";
+ maintainers = [ maintainers.raskin ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ homepage = "http://code.google.com/p/opensmt/";
+ broken = true;
+ downloadPage = "http://code.google.com/p/opensmt/downloads/list";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ott/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ott/default.nix
new file mode 100644
index 000000000000..48ad63eaa993
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/ott/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, pkgconfig, ocaml, opaline }:
+
+stdenv.mkDerivation rec {
+ pname = "ott";
+ version = "0.31";
+
+ src = fetchFromGitHub {
+ owner = "ott-lang";
+ repo = "ott";
+ rev = version;
+ sha256 = "0l81126i2qkz11fs5yrjdgymnqgjcs5avb7f951h61yh1s68jpnn";
+ };
+
+ nativeBuildInputs = [ pkgconfig opaline ];
+ buildInputs = [ ocaml ];
+
+ installTargets = "ott.install";
+
+ postInstall = "opaline -prefix $out";
+
+ meta = {
+ description = "A tool for the working semanticist";
+ longDescription = ''
+ Ott is a tool for writing definitions of programming languages and
+ calculi. It takes as input a definition of a language syntax and
+ semantics, in a concise and readable ASCII notation that is close to
+ what one would write in informal mathematics. It generates LaTeX to
+ build a typeset version of the definition, and Coq, HOL, and Isabelle
+ versions of the definition. Additionally, it can be run as a filter,
+ taking a LaTeX/Coq/Isabelle/HOL source file with embedded (symbolic)
+ terms of the defined language, parsing them and replacing them by
+ target-system terms.
+ '';
+ homepage = "http://www.cl.cam.ac.uk/~pes20/ott";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = with stdenv.lib.maintainers; [ jwiegley ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/otter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/otter/default.nix
new file mode 100644
index 000000000000..a7eec20548c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/otter/default.nix
@@ -0,0 +1,53 @@
+{stdenv, fetchurl, tcsh, libXaw, libXt, libX11}:
+let
+ s = # Generated upstream information
+ rec {
+ version = "3.3f";
+ name = "otter";
+ url = "https://www.cs.unm.edu/~mccune/otter/otter-${version}.tar.gz";
+ sha256 = "16mc1npl7sk9cmqhrf3ghfmvx29inijw76f1b1lsykllaxjqqb1r";
+ };
+ buildInputs = [
+ tcsh libXaw libXt libX11
+ ];
+in
+stdenv.mkDerivation {
+ name = "${s.name}-${s.version}";
+ inherit buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+
+ hardeningDisable = [ "format" ];
+
+ buildPhase = ''
+ find . -name Makefile | xargs sed -i -e "s@/bin/rm@$(type -P rm)@g"
+ find . -name Makefile | xargs sed -i -e "s@/bin/mv@$(type -P mv)@g"
+ find . -perm -0100 -type f | xargs sed -i -e "s@/bin/csh@$(type -P csh)@g"
+ find . -perm -0100 -type f | xargs sed -i -e "s@/bin/rm@$(type -P rm)@g"
+ find . -perm -0100 -type f | xargs sed -i -e "s@/bin/mv@$(type -P mv)@g"
+
+ sed -i -e "s/^XLIBS *=.*/XLIBS=-lXaw -lXt -lX11/" source/formed/Makefile
+
+ make all
+ make -C examples all
+ make -C examples-mace2 all
+ make -C source/formed realclean
+ make -C source/formed formed
+ '';
+
+ installPhase = ''
+ mkdir -p "$out"/{bin,share/otter}
+ cp bin/* source/formed/formed "$out/bin/"
+ cp -r examples examples-mace2 documents README* Legal Changelog Contents index.html "$out/share/otter/"
+ '';
+
+ meta = {
+ inherit (s) version;
+ description = "A reliable first-order theorem prover";
+ license = stdenv.lib.licenses.publicDomain ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/default.nix
new file mode 100644
index 000000000000..d277e0e1521a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, callPackage, buildPackages
+, async, base, bytestring, containers, fetchFromGitLab, mtl
+, parallel-io, parsec, stdenv, stm, transformers
+}:
+let
+ z3 = callPackage ./z3.nix { gomp = null; z3 = buildPackages.z3; };
+in let
+ sbv = callPackage ./sbv-7.13.nix { inherit z3; };
+in
+mkDerivation rec {
+ pname = "petrinizer";
+ version = "0.9.1.1";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.lrz.de";
+ owner = "i7";
+ repo = pname;
+ rev = version;
+ sha256 = "1n7fzm96gq5rxm2f8w8sr1yzm1zcxpf0b473c6xnhsgqsis5j4xw";
+ };
+
+ isLibrary = false;
+ isExecutable = true;
+ executableHaskellDepends = [
+ async base bytestring containers mtl parallel-io parsec sbv stm
+ transformers
+ ];
+ description = "Safety and Liveness Analysis of Petri Nets with SMT solvers";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ raskin ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/sbv-7.13.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/sbv-7.13.nix
new file mode 100644
index 000000000000..ed10e9f3db19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/sbv-7.13.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, array, async, base, bytestring, containers
+, crackNum, deepseq, directory, doctest, filepath, generic-deriving
+, ghc, Glob, hlint, mtl, pretty, process, QuickCheck, random
+, stdenv, syb, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
+, template-haskell, time, z3
+}:
+mkDerivation {
+ pname = "sbv";
+ version = "7.13";
+ sha256 = "0bk400swnb4s98c5p71ml1px6jndaiqhf5dj7zmnliyplqcgpfik";
+ enableSeparateDataOutput = true;
+ libraryHaskellDepends = [
+ array async base containers crackNum deepseq directory filepath
+ generic-deriving ghc mtl pretty process QuickCheck random syb
+ template-haskell time
+ ];
+ testHaskellDepends = [
+ base bytestring containers crackNum directory doctest filepath Glob
+ hlint mtl QuickCheck random syb tasty tasty-golden tasty-hunit
+ tasty-quickcheck template-haskell
+ ];
+ testSystemDepends = [ z3 ];
+ homepage = "http://leventerkok.github.com/sbv/";
+ description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
+ license = stdenv.lib.licenses.bsd3;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/z3.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/z3.nix
new file mode 100644
index 000000000000..4d868054c09b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/petrinizer/z3.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, fetchpatch
+, base, containers, gomp, hspec, QuickCheck, stdenv
+, transformers, z3
+}:
+mkDerivation {
+ pname = "z3";
+ version = "408.0";
+ sha256 = "13qkzy9wc17rm60i24fa9sx15ywbxq4a80g33w20887gvqyc0q53";
+ isLibrary = true;
+ isExecutable = true;
+ libraryHaskellDepends = [ base containers transformers ];
+ librarySystemDepends = [ gomp z3 ];
+ testHaskellDepends = [ base hspec QuickCheck ];
+ homepage = "https://github.com/IagoAbal/haskell-z3";
+ description = "Bindings for the Z3 Theorem Prover";
+ license = stdenv.lib.licenses.bsd3;
+ doCheck = false;
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/IagoAbal/haskell-z3/commit/b10e09b8a809fb5bbbb1ef86aeb62109ece99cae.patch";
+ sha256 = "13fnrs27mg3985r3lwks8fxfxr5inrayy2cyx2867d92pnl3yry4";
+ })
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/picosat/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/picosat/default.nix
new file mode 100644
index 000000000000..b13d871580c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/picosat/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "picosat";
+ version = "965";
+
+ src = fetchurl {
+ url = "http://fmv.jku.at/picosat/${pname}-${version}.tar.gz";
+ sha256 = "0m578rpa5rdn08d10kr4lbsdwp4402hpavrz6n7n53xs517rn5hm";
+ };
+
+ prePatch = ''
+ substituteInPlace picosat.c --replace "sys/unistd.h" "unistd.h"
+
+ substituteInPlace makefile.in \
+ --replace 'ar rc' '$(AR) rc' \
+ --replace 'ranlib' '$(RANLIB)'
+ '';
+
+ configurePhase = "./configure.sh --shared --trace";
+
+ makeFlags = stdenv.lib.optional stdenv.isDarwin
+ "SONAME=-Wl,-install_name,$(out)/lib/libpicosat.so";
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib $out/share $out/include/picosat
+ cp picomus picomcs picosat picogcnf "$out"/bin
+
+ cp VERSION "$out"/share/picosat.version
+ cp picosat.o "$out"/lib
+ cp libpicosat.a "$out"/lib
+ cp libpicosat.so "$out"/lib
+
+ cp picosat.h "$out"/include/picosat
+ '';
+
+ meta = {
+ description = "SAT solver with proof and core support";
+ homepage = "http://fmv.jku.at/picosat/";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ roconnor thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/poly/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/poly/default.nix
new file mode 100644
index 000000000000..ee50a2d85040
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/poly/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchFromGitHub, gmp, cmake, python}:
+
+stdenv.mkDerivation rec {
+ pname = "libpoly";
+ version = "0.1.8";
+
+ src = fetchFromGitHub {
+ owner = "SRI-CSL";
+ repo = "libpoly";
+ # they've pushed to the release branch, use explicit tag
+ rev = "refs/tags/v${version}";
+ sha256 = "1n3gijksnl2ybznq4lkwm2428f82423sxq18gnb2g1kiwqlzdaa3";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ gmp python ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/SRI-CSL/libpoly";
+ description = "C library for manipulating polynomials";
+ license = licenses.lgpl3;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingcon.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingcon.nix
new file mode 100644
index 000000000000..b74583ca1a2c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingcon.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, bison
+, re2c
+}:
+
+stdenv.mkDerivation rec {
+ pname = "clingcon";
+ version = "3.3.0";
+
+ src = fetchFromGitHub {
+ owner = "potassco";
+ repo = pname;
+ rev = "v${version}";
+ fetchSubmodules = true;
+ sha256 = "1q7517h10jfvjdk2czq8d6y57r8kr1j1jj2k2ip2qxkpyfigk4rs";
+ };
+
+ # deal with clingcon through git submodules recursively importing
+ # an outdated version of libpotassco which uses deprecated <xlocale.h> header in .cpp files
+ postPatch = ''
+ find ./ -type f -exec sed -i 's/<xlocale.h>/<locale.h>/g' {} \;
+ '';
+
+ nativeBuildInputs = [ cmake bison re2c ];
+
+ cmakeFlags = [
+ "-DCLINGCON_MANAGE_RPATH=ON"
+ "-DCLINGO_BUILD_WITH_PYTHON=OFF"
+ "-DCLINGO_BUILD_WITH_LUA=OFF"
+ ];
+
+ meta = {
+ inherit version;
+ description = "Extension of clingo to handle constraints over integers";
+ license = stdenv.lib.licenses.gpl3; # for now GPL3, next version MIT!
+ platforms = stdenv.lib.platforms.unix;
+ homepage = "https://potassco.org/";
+ downloadPage = "https://github.com/potassco/clingcon/releases/";
+ changelog = "https://github.com/potassco/clingcon/releases/tag/v${version}";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix
new file mode 100644
index 000000000000..7c1ee8099e2c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "clingo";
+ version = "5.4.0";
+
+ src = fetchzip {
+ url = "https://github.com/potassco/clingo/archive/v${version}.tar.gz";
+ sha256 = "0gfqlgwg3qx042w6hdc9qpmr50n4vci3p0ddk28f3kqacf6q9q7m";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ cmakeFlags = [ "-DCLINGO_BUILD_WITH_PYTHON=OFF" ];
+
+ meta = {
+ inherit version;
+ description = "ASP system to ground and solve logic programs";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.unix;
+ homepage = "https://potassco.org/";
+ downloadPage = "https://github.com/potassco/clingo/releases/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingo.upstream b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingo.upstream
new file mode 100644
index 000000000000..062577d1451b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/potassco/clingo.upstream
@@ -0,0 +1,6 @@
+target clingo.nix
+attribute_name clingo
+url https://github.com/potassco/clingo/releases/
+ensure_choice
+version '.*/v([0-9.]+)[.]tar[.].*' '\1'
+minimize_overwrite
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix
new file mode 100644
index 000000000000..98313e48cb27
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, pkgconfig, ncurses, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "prooftree";
+ version = "0.13";
+
+ src = fetchurl {
+ url = "https://askra.de/software/prooftree/releases/prooftree-${version}.tar.gz";
+ sha256 = "0z1z4wqbqwgppkh2bm89fgy07a0y2m6g4lvcyzs09sm1ysklk2dh";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ ncurses ] ++ (with ocamlPackages; [
+ ocaml findlib camlp5 lablgtk ]);
+
+ dontAddPrefix = true;
+ configureFlags = [ "--prefix" "$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "A program for proof-tree visualization";
+ longDescription = ''
+ Prooftree is a program for proof-tree visualization during interactive
+ proof development in a theorem prover. It is currently being developed
+ for Coq and Proof General. Prooftree helps against getting lost between
+ different subgoals in interactive proof development. It clearly shows
+ where the current subgoal comes from and thus helps in developing the
+ right plan for solving it.
+
+ Prooftree uses different colors for the already proven subgoals, the
+ current branch in the proof and the still open subgoals. Sequent texts
+ are not displayed in the proof tree itself, but they are shown as a
+ tool-tip when the mouse rests over a sequent symbol. Long proof commands
+ are abbreviated in the tree display, but show up in full length as
+ tool-tip. Both, sequents and proof commands, can be shown in the display
+ below the tree (on single click) or in a separate window (on double or
+ shift-click).
+ '';
+ homepage = "http://askra.de/software/prooftree";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.jwiegley ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/prover9/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/prover9/default.nix
new file mode 100644
index 000000000000..fcdff8558483
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/prover9/default.nix
@@ -0,0 +1,45 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+ name = "prover9-2009-11a";
+
+ src = fetchurl {
+ url = "https://www.cs.unm.edu/~mccune/mace4/download/LADR-2009-11A.tar.gz";
+ sha256 = "1l2i3d3h5z7nnbzilb6z92r0rbx0kh6yaxn2c5qhn3000xcfsay3";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ patchPhase = ''
+ RM=$(type -tp rm)
+ MV=$(type -tp mv)
+ CP=$(type -tp cp)
+ for f in Makefile */Makefile; do
+ substituteInPlace $f --replace "/bin/rm" "$RM" \
+ --replace "/bin/mv" "$MV" \
+ --replace "/bin/cp" "$CP";
+ done
+ '';
+
+ buildFlags = [ "all" ];
+
+ checkPhase = "make test1";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/* $out/bin
+ '';
+
+ meta = {
+ homepage = "https://www.cs.unm.edu/~mccune/mace4/";
+ license = "GPL";
+ description = "Automated theorem prover for first-order and equational logic";
+ longDescription = ''
+ Prover9 is a resolution/paramodulation automated theorem prover
+ for first-order and equational logic. Prover9 is a successor of
+ the Otter Prover. This is the LADR command-line version.
+ '';
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/proverif/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
new file mode 100644
index 000000000000..4242bb0599e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "proverif";
+ version = "2.02pl1";
+
+ src = fetchurl {
+ url = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
+ sha256 = "1jmzfpx0hdgfmkq0jp6i3k5av9xxgndjaj743wfy37svn0ga4jjx";
+ };
+
+ buildInputs = with ocamlPackages; [ ocaml findlib lablgtk ];
+
+ buildPhase = "./build";
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ./proverif $out/bin
+ cp ./proveriftotex $out/bin
+ install -D -t $out/share/emacs/site-lisp/ emacs/proverif.el
+ '';
+
+ meta = {
+ description = "Cryptographic protocol verifier in the Dolev-Yao model";
+ homepage = "https://prosecco.gforge.inria.fr/personal/bblanche/proverif/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/redprl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/redprl/default.nix
new file mode 100644
index 000000000000..49245c73f2c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/redprl/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, mlton }:
+stdenv.mkDerivation {
+ name = "redprl-2017-03-28";
+ src = fetchgit {
+ url = "https://github.com/RedPRL/sml-redprl.git";
+ rev = "bdf027de732e4a8d10f9f954389dfff0c822f18b";
+ sha256 = "0cihwnd78d3ksxp6mppifm7xpi3fsii5mixvicajy87ggw8z305c";
+ fetchSubmodules = true;
+ };
+ buildInputs = [ mlton ];
+ patchPhase = ''
+ patchShebangs ./script/
+ '';
+ buildPhase = ''
+ ./script/mlton.sh
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ mv ./bin/redprl $out/bin
+ '';
+ meta = {
+ description = "A proof assistant for Nominal Computational Type Theory";
+ homepage = "http://www.redprl.org/";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.acowley ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/default.nix
new file mode 100644
index 000000000000..77613a135710
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, haskell, spass }:
+
+stdenv.mkDerivation {
+ name = "system-for-automated-deduction-2.3.25";
+ src = fetchurl {
+ url = "http://nevidal.org/download/sad-2.3-25.tar.gz";
+ sha256 = "10jd93xgarik7xwys5lq7fx4vqp7c0yg1gfin9cqfch1k1v8ap4b";
+ };
+ buildInputs = [ haskell.compiler.ghc844 spass ];
+ patches = [
+ ./patch.patch
+ # Since the LTS 12.0 update, <> is an operator in Prelude, colliding with
+ # the <> operator with a different meaning defined by this package
+ ./monoid.patch
+ ];
+ postPatch = ''
+ substituteInPlace Alice/Main.hs --replace init.opt $out/init.opt
+ '';
+ installPhase = ''
+ mkdir -p $out/{bin,provers}
+ install alice $out/bin
+ install provers/moses $out/provers
+ substituteAll provers/provers.dat $out/provers/provers.dat
+ substituteAll init.opt $out/init.opt
+ cp -r examples $out
+ '';
+ inherit spass;
+ meta = {
+ description = "A program for automated proving of mathematical texts";
+ longDescription = ''
+ The system for automated deduction is intended for automated processing of formal mathematical texts
+ written in a special language called ForTheL (FORmal THEory Language) or in a traditional first-order language
+ '';
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = [ stdenv.lib.maintainers.schmitthenner ];
+ homepage = "http://nevidal.org/sad.en.html";
+ platforms = stdenv.lib.platforms.linux;
+ broken = true; # ghc-8.4.4 is gone from Nixpkgs
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/monoid.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/monoid.patch
new file mode 100644
index 000000000000..da9c21bcae91
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/monoid.patch
@@ -0,0 +1,51 @@
+diff --git a/Alice/Core/Check.hs b/Alice/Core/Check.hs
+index 0700fa0388f..69815864710 100644
+--- a/Alice/Core/Check.hs
++++ b/Alice/Core/Check.hs
+@@ -18,8 +18,12 @@
+ - along with this program. If not, see <http://www.gnu.org/licenses/>.
+ -}
+
++{-# LANGUAGE NoImplicitPrelude #-}
++
+ module Alice.Core.Check (fillDef) where
+
++import Prelude hiding ((<>))
++
+ import Control.Monad
+ import Data.Maybe
+
+diff --git a/Alice/Core/Reason.hs b/Alice/Core/Reason.hs
+index c361bcf220d..4e493d8c91b 100644
+--- a/Alice/Core/Reason.hs
++++ b/Alice/Core/Reason.hs
+@@ -17,9 +17,12 @@
+ - You should have received a copy of the GNU General Public License
+ - along with this program. If not, see <http://www.gnu.org/licenses/>.
+ -}
++{-# LANGUAGE NoImplicitPrelude #-}
+
+ module Alice.Core.Reason where
+
++import Prelude hiding ((<>))
++
+ import Control.Monad
+
+ import Alice.Core.Base
+diff --git a/Alice/Core/Verify.hs b/Alice/Core/Verify.hs
+index 4f8550bdf11..0f59d135b16 100644
+--- a/Alice/Core/Verify.hs
++++ b/Alice/Core/Verify.hs
+@@ -18,8 +18,12 @@
+ - along with this program. If not, see <http://www.gnu.org/licenses/>.
+ -}
+
++{-# LANGUAGE NoImplicitPrelude #-}
++
+ module Alice.Core.Verify (verify) where
+
++import Prelude hiding ((<>))
++
+ import Control.Monad
+ import Data.IORef
+ import Data.Maybe
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/patch.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/patch.patch
new file mode 100644
index 000000000000..a5b1d6177083
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/sad/patch.patch
@@ -0,0 +1,200 @@
+diff -aur serious/sad-2.3-25/Alice/Core/Base.hs sad-2.3-25/Alice/Core/Base.hs
+--- serious/sad-2.3-25/Alice/Core/Base.hs 2008-03-29 18:24:12.000000000 +0000
++++ sad-2.3-25/Alice/Core/Base.hs 2015-11-27 06:38:28.740840823 +0000
+@@ -21,6 +21,7 @@
+ module Alice.Core.Base where
+
+ import Control.Monad
++import Control.Applicative
+ import Data.IORef
+ import Data.List
+ import Data.Time
+@@ -61,10 +62,21 @@
+ type CRMC a b = IORef RState -> IO a -> (b -> IO a) -> IO a
+ newtype CRM b = CRM { runCRM :: forall a . CRMC a b }
+
++instance Functor CRM where
++ fmap = liftM
++
++instance Applicative CRM where
++ pure = return
++ (<*>) = ap
++
+ instance Monad CRM where
+ return r = CRM $ \ _ _ k -> k r
+ m >>= n = CRM $ \ s z k -> runCRM m s z (\ r -> runCRM (n r) s z k)
+
++instance Alternative CRM where
++ (<|>) = mplus
++ empty = mzero
++
+ instance MonadPlus CRM where
+ mzero = CRM $ \ _ z _ -> z
+ mplus m n = CRM $ \ s z k -> runCRM m s (runCRM n s z k) k
+diff -aur serious/sad-2.3-25/Alice/Core/Thesis.hs sad-2.3-25/Alice/Core/Thesis.hs
+--- serious/sad-2.3-25/Alice/Core/Thesis.hs 2008-03-05 13:10:50.000000000 +0000
++++ sad-2.3-25/Alice/Core/Thesis.hs 2015-11-27 06:35:08.311015166 +0000
+@@ -21,6 +21,7 @@
+ module Alice.Core.Thesis (thesis) where
+
+ import Control.Monad
++import Control.Applicative
+ import Data.List
+ import Data.Maybe
+
+@@ -126,11 +127,22 @@
+
+ newtype TM res = TM { runTM :: [String] -> [([String], res)] }
+
++instance Functor TM where
++ fmap = liftM
++
++instance Applicative TM where
++ pure = return
++ (<*>) = ap
++
+ instance Monad TM where
+ return r = TM $ \ s -> [(s, r)]
+ m >>= k = TM $ \ s -> concatMap apply (runTM m s)
+ where apply (s, r) = runTM (k r) s
+
++instance Alternative TM where
++ (<|>) = mplus
++ empty = mzero
++
+ instance MonadPlus TM where
+ mzero = TM $ \ _ -> []
+ mplus m k = TM $ \ s -> runTM m s ++ runTM k s
+diff -aur serious/sad-2.3-25/Alice/Export/Base.hs sad-2.3-25/Alice/Export/Base.hs
+--- serious/sad-2.3-25/Alice/Export/Base.hs 2008-03-09 09:36:39.000000000 +0000
++++ sad-2.3-25/Alice/Export/Base.hs 2015-11-27 06:32:47.782738005 +0000
+@@ -39,7 +39,7 @@
+ -- Database reader
+
+ readPrDB :: String -> IO [Prover]
+-readPrDB file = do inp <- catch (readFile file) $ die . ioeGetErrorString
++readPrDB file = do inp <- catchIOError (readFile file) $ die . ioeGetErrorString
+
+ let dws = dropWhile isSpace
+ cln = reverse . dws . reverse . dws
+diff -aur serious/sad-2.3-25/Alice/Export/Prover.hs sad-2.3-25/Alice/Export/Prover.hs
+--- serious/sad-2.3-25/Alice/Export/Prover.hs 2008-03-09 09:36:39.000000000 +0000
++++ sad-2.3-25/Alice/Export/Prover.hs 2015-11-27 06:36:47.632919161 +0000
+@@ -60,7 +60,7 @@
+ when (askIB IBPdmp False ins) $ putStrLn tsk
+
+ seq (length tsk) $ return $
+- do (wh,rh,eh,ph) <- catch run
++ do (wh,rh,eh,ph) <- catchIOError run
+ $ \ e -> die $ "run error: " ++ ioeGetErrorString e
+
+ hPutStrLn wh tsk ; hClose wh
+diff -aur serious/sad-2.3-25/Alice/ForTheL/Base.hs sad-2.3-25/Alice/ForTheL/Base.hs
+--- serious/sad-2.3-25/Alice/ForTheL/Base.hs 2008-03-09 09:36:39.000000000 +0000
++++ sad-2.3-25/Alice/ForTheL/Base.hs 2015-11-27 06:31:51.921230428 +0000
+@@ -226,7 +226,7 @@
+ varlist = do vs <- chainEx (char ',') var
+ nodups vs ; return vs
+
+-nodups vs = unless (null $ dups vs) $
++nodups vs = unless ((null :: [a] -> Bool) $ dups vs) $
+ fail $ "duplicate names: " ++ show vs
+
+ hidden = askPS psOffs >>= \ n -> return ('h':show n)
+diff -aur serious/sad-2.3-25/Alice/Import/Reader.hs sad-2.3-25/Alice/Import/Reader.hs
+--- serious/sad-2.3-25/Alice/Import/Reader.hs 2008-03-09 09:36:39.000000000 +0000
++++ sad-2.3-25/Alice/Import/Reader.hs 2015-11-27 06:36:41.818866167 +0000
+@@ -24,7 +24,7 @@
+ import Control.Monad
+ import System.IO
+ import System.IO.Error
+-import System.Exit
++import System.Exit hiding (die)
+
+ import Alice.Data.Text
+ import Alice.Data.Instr
+@@ -44,7 +44,7 @@
+ readInit "" = return []
+
+ readInit file =
+- do input <- catch (readFile file) $ die file . ioeGetErrorString
++ do input <- catchIOError (readFile file) $ die file . ioeGetErrorString
+ let tkn = tokenize input ; ips = initPS ()
+ inp = ips { psRest = tkn, psFile = file, psLang = "Init" }
+ liftM fst $ fireLPM instf inp
+@@ -74,7 +74,7 @@
+ reader lb fs (ps:ss) [TI (InStr ISfile file)] =
+ do let gfl = if null file then hGetContents stdin
+ else readFile file
+- input <- catch gfl $ die file . ioeGetErrorString
++ input <- catchIOError gfl $ die file . ioeGetErrorString
+ let tkn = tokenize input
+ ips = initPS $ (psProp ps) { tvr_expr = [] }
+ sps = ips { psRest = tkn, psFile = file, psOffs = psOffs ps }
+diff -aur serious/sad-2.3-25/Alice/Parser/Base.hs sad-2.3-25/Alice/Parser/Base.hs
+--- serious/sad-2.3-25/Alice/Parser/Base.hs 2008-03-09 09:36:40.000000000 +0000
++++ sad-2.3-25/Alice/Parser/Base.hs 2015-11-27 06:14:28.616734527 +0000
+@@ -20,6 +20,7 @@
+
+ module Alice.Parser.Base where
+
++import Control.Applicative
+ import Control.Monad
+ import Data.List
+
+@@ -45,11 +46,22 @@
+ type CPMC a b c = (c -> CPMS a b) -> (String -> CPMS a b) -> CPMS a b
+ newtype CPM a c = CPM { runCPM :: forall b . CPMC a b c }
+
++instance Functor (CPM a) where
++ fmap = liftM
++
++instance Applicative (CPM a) where
++ pure = return
++ (<*>) = ap
++
+ instance Monad (CPM a) where
+ return r = CPM $ \ k _ -> k r
+ m >>= n = CPM $ \ k l -> runCPM m (\ b -> runCPM (n b) k l) l
+ fail e = CPM $ \ _ l -> l e
+
++instance Alternative (CPM a) where
++ (<|>) = mplus
++ empty = mzero
++
+ instance MonadPlus (CPM a) where
+ mzero = CPM $ \ _ _ _ z -> z
+ mplus m n = CPM $ \ k l s -> runCPM m k l s . runCPM n k l s
+diff -aur serious/sad-2.3-25/init.opt sad-2.3-25/init.opt
+--- serious/sad-2.3-25/init.opt 2007-10-11 15:25:45.000000000 +0000
++++ sad-2.3-25/init.opt 2015-11-27 07:23:41.372816854 +0000
+@@ -1,6 +1,6 @@
+ # Alice init options
+-[library examples]
+-[provers provers/provers.dat]
++[library @out@/examples]
++[provers @out@/provers/provers.dat]
+ [prover spass]
+ [timelimit 3]
+ [depthlimit 7]
+diff -aur serious/sad-2.3-25/provers/provers.dat sad-2.3-25/provers/provers.dat
+--- serious/sad-2.3-25/provers/provers.dat 2008-08-26 21:20:25.000000000 +0000
++++ sad-2.3-25/provers/provers.dat 2015-11-27 07:24:18.878169702 +0000
+@@ -3,7 +3,7 @@
+ Pmoses
+ LMoses
+ Fmoses
+-Cprovers/moses
++C@out@/provers/moses
+ Yproved in
+ Nfound unprovable in
+ Utimeout in
+@@ -12,7 +12,7 @@
+ Pspass
+ LSPASS
+ Fdfg
+-Cprovers/SPASS -CNFOptSkolem=0 -PProblem=0 -PGiven=0 -Stdin -TimeLimit=%d
++C@spass@/bin/SPASS -CNFOptSkolem=0 -PProblem=0 -PGiven=0 -Stdin -TimeLimit=%d
+ YSPASS beiseite: Proof found.
+ NSPASS beiseite: Completion found.
+ USPASS beiseite: Ran out of time.
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/satallax/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
new file mode 100644
index 000000000000..6c2b03b5b37d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
@@ -0,0 +1,71 @@
+{stdenv, fetchurl, ocaml, zlib, which, eprover, makeWrapper, coq}:
+stdenv.mkDerivation rec {
+ pname = "satallax";
+ version = "2.7";
+
+ buildInputs = [ocaml zlib which eprover makeWrapper coq];
+ src = fetchurl {
+ url = "https://www.ps.uni-saarland.de/~cebrown/satallax/downloads/${pname}-${version}.tar.gz";
+ sha256 = "1kvxn8mc35igk4vigi5cp7w3wpxk2z3bgwllfm4n3h2jfs0vkpib";
+ };
+
+ patches = [
+ # GCC9 doesn't allow default value in friend declaration.
+ ./fix-declaration-gcc9.patch
+ ];
+
+ preConfigure = ''
+ mkdir fake-tools
+ echo "echo 'Nix-build-host.localdomain'" > fake-tools/hostname
+ chmod a+x fake-tools/hostname
+ export PATH="$PATH:$PWD/fake-tools"
+
+ (
+ cd picosat-*
+ ./configure
+ make
+ )
+ export PATH="$PATH:$PWD/libexec/satallax"
+
+ mkdir -p "$out/libexec/satallax"
+ cp picosat-*/picosat picosat-*/picomus "$out/libexec/satallax"
+
+ (
+ cd minisat
+ export MROOT=$PWD
+ cd core
+ make
+ cd ../simp
+ make
+ )
+ '';
+
+ postBuild = "echo testing; ! (bash ./test | grep ERROR)";
+
+ installPhase = ''
+ mkdir -p "$out/share/doc/satallax" "$out/bin" "$out/lib" "$out/lib/satallax"
+ cp bin/satallax.opt "$out/bin/satallax"
+ wrapProgram "$out/bin/satallax" \
+ --suffix PATH : "${stdenv.lib.makeBinPath [ coq eprover ]}:$out/libexec/satallax" \
+ --add-flags "-M" --add-flags "$out/lib/satallax/modes"
+
+ cp LICENSE README "$out/share/doc/satallax"
+
+ cp bin/*.so "$out/lib"
+
+ cp -r modes "$out/lib/satallax/"
+ cp -r problems "$out/lib/satallax/"
+ cp -r coq* "$out/lib/satallax/"
+ '';
+
+ meta = {
+ inherit version;
+ description = ''Automated theorem prover for higher-order logic'';
+ license = stdenv.lib.licenses.mit ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ downloadPage = "http://www.ps.uni-saarland.de/~cebrown/satallax/downloads.php";
+ homepage = "http://www.ps.uni-saarland.de/~cebrown/satallax/index.php";
+ updateWalker = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/satallax/fix-declaration-gcc9.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/satallax/fix-declaration-gcc9.patch
new file mode 100644
index 000000000000..1933fc25c4da
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/satallax/fix-declaration-gcc9.patch
@@ -0,0 +1,21 @@
+diff --git i/minisat/core/SolverTypes.h w/minisat/core/SolverTypes.h
+--- i/minisat/core/SolverTypes.h
++++ w/minisat/core/SolverTypes.h
+@@ -47,7 +47,7 @@ struct Lit {
+ int x;
+
+ // Use this as a constructor:
+- friend Lit mkLit(Var var, bool sign = false);
++ friend Lit mkLit(Var var, bool sign);
+
+ bool operator == (Lit p) const { return x == p.x; }
+ bool operator != (Lit p) const { return x != p.x; }
+@@ -55,7 +55,7 @@ struct Lit {
+ };
+
+
+-inline Lit mkLit (Var var, bool sign) { Lit p; p.x = var + var + (int)sign; return p; }
++inline Lit mkLit (Var var, bool sign = false) { Lit p; p.x = var + var + (int)sign; return p; }
+ inline Lit operator ~(Lit p) { Lit q; q.x = p.x ^ 1; return q; }
+ inline Lit operator ^(Lit p, bool b) { Lit q; q.x = p.x ^ (unsigned int)b; return q; }
+ inline bool sign (Lit p) { return p.x & 1; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/saw-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/saw-tools/default.nix
new file mode 100644
index 000000000000..71b26f8023a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/saw-tools/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, gmp4, ncurses, zlib, clang }:
+
+let
+ libPath = stdenv.lib.makeLibraryPath
+ [ stdenv.cc.libc
+ stdenv.cc.cc
+ gmp4
+ ncurses
+ zlib
+ ] + ":${stdenv.cc.cc.lib}/lib64";
+
+ url = "https://github.com/GaloisInc/saw-script/releases/download";
+
+ saw-bin =
+ if stdenv.hostPlatform.system == "i686-linux"
+ then fetchurl {
+ url = url + "/v0.1.1-dev/saw-0.1.1-dev-2015-07-31-CentOS6-32.tar.gz";
+ sha256 = "126iag5nnvndi78c921z7vjrjfwcspn1hlxwwhzmqm4rvbhhr9v9";
+ }
+ else fetchurl {
+ url = url + "/v0.1.1-dev/saw-0.1.1-dev-2015-07-31-CentOS6-64.tar.gz";
+ sha256 = "07gyf319v6ama6n1aj96403as04bixi8mbisfy7f7va689zklflr";
+ };
+in
+stdenv.mkDerivation {
+ pname = "saw-tools";
+ version = "0.1.1-20150731";
+
+ src = saw-bin;
+
+ installPhase = ''
+ mkdir -p $out/lib $out/share
+
+ mv bin $out/bin
+ mv doc $out/share
+
+ ln -s ${ncurses.out}/lib/libtinfo.so.5 $out/lib/libtinfo.so.5
+ ln -s ${stdenv.cc.libc}/lib/libpthread.so.0 $out/lib/libpthread.so.0
+
+ # Add a clang symlink for easy building with a suitable compiler.
+ ln -s ${clang}/bin/clang $out/bin/saw-clang
+ '';
+
+ fixupPhase = ''
+ for x in bin/bcdump bin/extcore-info bin/jss bin/llvm-disasm bin/lss bin/saw; do
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$out/lib:${libPath}" $out/$x;
+ done
+ '';
+
+ phases = "unpackPhase installPhase fixupPhase";
+
+ meta = {
+ description = "Tools for software verification and analysis";
+ homepage = "https://saw.galois.com";
+ license = stdenv.lib.licenses.unfreeRedistributable;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/spass/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/spass/default.nix
new file mode 100644
index 000000000000..ece6f0b9f6a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/spass/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, bison, flex }:
+
+let
+ baseVersion="3";
+ minorVersion="9";
+
+ extraTools = "FLOTTER prolog2dfg dfg2otter dfg2dimacs dfg2tptp"
+ + " dfg2ascii dfg2dfg tptp2dfg dimacs2dfg pgen rescmp";
+in
+
+stdenv.mkDerivation {
+ pname = "spass";
+ version = "${baseVersion}.${minorVersion}";
+
+ src = fetchurl {
+ url = "http://www.spass-prover.org/download/sources/spass${baseVersion}${minorVersion}.tgz";
+ sha256 = "11cyn3kcff4r79rsw2s0xm6rdb8bi0kpkazv2b48jhcms7xw75qp";
+ };
+
+ sourceRoot = ".";
+
+ nativeBuildInputs = [ bison flex ];
+
+ buildPhase = ''
+ make RM="rm -f" proparser.c ${extraTools} opt
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ install -m0755 SPASS ${extraTools} $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automated theorem prover for first-order logic";
+ maintainers = with maintainers;
+ [
+ raskin
+ ];
+ platforms = platforms.unix;
+ license = licenses.bsd2;
+ downloadPage = "http://www.spass-prover.org/download/index.html";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/statverif/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/statverif/default.nix
new file mode 100644
index 000000000000..e0efb28819d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/statverif/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, ocaml }:
+
+stdenv.mkDerivation rec {
+ pname = "statverif";
+ version = "1.86pl4";
+
+ src = fetchurl {
+ url = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
+ sha256 = "163vdcixs764jj8xa08w80qm4kcijf7xj911yp8jvz6pi1q5g13i";
+ };
+
+ pf-patch = fetchurl {
+ url = "http://markryan.eu/research/statverif/files/proverif-${version}-statverif-2657ab4.patch";
+ sha256 = "113jjhi1qkcggbsmbw8fa9ln8vs7vy2r288szks7rn0jjn0wxmbw";
+ };
+
+ buildInputs = [ ocaml ];
+
+ patchPhase = "patch -p1 < ${pf-patch}";
+ buildPhase = "./build";
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ./proverif $out/bin/statverif
+ cp ./proveriftotex $out/bin/statveriftotex
+ '';
+
+ meta = {
+ description = "Verification of stateful processes (via Proverif)";
+ homepage = "https://markryan.eu/research/statverif/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/stp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/stp/default.nix
new file mode 100644
index 000000000000..dd00eda1b571
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/stp/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, cmake, boost, bison, flex, fetchFromGitHub, perl
+, python3, python3Packages, zlib, minisat, cryptominisat }:
+
+stdenv.mkDerivation rec {
+ pname = "stp";
+ version = "2.3.3";
+
+ src = fetchFromGitHub {
+ owner = "stp";
+ repo = "stp";
+ rev = version;
+ sha256 = "1yg2v4wmswh1sigk47drwsxyayr472mf4i47lqmlcgn9hhbx1q87";
+ };
+
+ buildInputs = [ boost zlib minisat cryptominisat python3 ];
+ nativeBuildInputs = [ cmake bison flex perl ];
+ preConfigure = ''
+ python_install_dir=$out/${python3Packages.python.sitePackages}
+ mkdir -p $python_install_dir
+ cmakeFlagsArray=(
+ $cmakeFlagsArray
+ "-DBUILD_SHARED_LIBS=ON"
+ "-DPYTHON_LIB_INSTALL_DIR=$python_install_dir"
+ )
+ '';
+
+ # seems to build fine now, may revert if concurrency does become an issue
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Simple Theorem Prover";
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
new file mode 100644
index 000000000000..9cf8b0845d43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub
+, bash, python3, yosys
+, yices, boolector, z3, aiger
+}:
+
+stdenv.mkDerivation {
+ pname = "symbiyosys";
+ version = "2020.08.22";
+
+ src = fetchFromGitHub {
+ owner = "YosysHQ";
+ repo = "SymbiYosys";
+ rev = "33b0bb7d836fe2a73dc7b10587222f2a718beef4";
+ sha256 = "03rbrbwsji1sqcp2yhgbc0fca04zsryv2g4izjhdzv64nqjzjyhn";
+ };
+
+ buildInputs = [ ];
+ patchPhase = ''
+ patchShebangs .
+
+ # Fix up Yosys imports
+ substituteInPlace sbysrc/sby.py \
+ --replace "##yosys-sys-path##" \
+ "sys.path += [p + \"/share/yosys/python3/\" for p in [\"$out\", \"${yosys}\"]]"
+
+ # Fix various executable references
+ substituteInPlace sbysrc/sby_core.py \
+ --replace '"/usr/bin/env", "bash"' '"${bash}/bin/bash"' \
+ --replace ', "btormc"' ', "${boolector}/bin/btormc"' \
+ --replace ', "aigbmc"' ', "${aiger}/bin/aigbmc"'
+
+ substituteInPlace sbysrc/sby_core.py \
+ --replace '##yosys-program-prefix##' '"${yosys}/bin/"'
+ '';
+
+ buildPhase = "true";
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/yosys/python3
+
+ cp sbysrc/sby_*.py $out/share/yosys/python3/
+ cp sbysrc/sby.py $out/bin/sby
+
+ chmod +x $out/bin/sby
+ '';
+
+ doCheck = false; # not all provers are yet packaged...
+ checkInputs = [ python3 yosys boolector yices z3 aiger ];
+ checkPhase = "make test";
+
+ meta = {
+ description = "Tooling for Yosys-based verification flows";
+ homepage = "https://symbiyosys.readthedocs.io/";
+ license = stdenv.lib.licenses.isc;
+ maintainers = with stdenv.lib.maintainers; [ thoughtpolice emily ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix
new file mode 100644
index 000000000000..d217e2b9b505
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix
@@ -0,0 +1,95 @@
+{ haskellPackages, mkDerivation, fetchFromGitHub, lib
+# the following are non-haskell dependencies
+, makeWrapper, which, maude, graphviz
+}:
+
+let
+ version = "1.6.0";
+ src = fetchFromGitHub {
+ owner = "tamarin-prover";
+ repo = "tamarin-prover";
+ rev = version;
+ sha256 = "1pl3kz7gyw9g6s4x5j90z4snd10vq6296g3ajlr8d4n53p3c9i3w";
+ };
+
+ # tamarin has its own dependencies, but they're kept inside the repo,
+ # no submodules. this factors out the common metadata among all derivations
+ common = pname: src: {
+ inherit pname version src;
+
+ license = lib.licenses.gpl3;
+ homepage = "https://tamarin-prover.github.io";
+ description = "Security protocol verification in the symbolic model";
+ maintainers = [ lib.maintainers.thoughtpolice ];
+ };
+
+ # tamarin use symlinks to the LICENSE and Setup.hs files, so for these sublibraries
+ # we set the patchPhase to fix that. otherwise, cabal cries a lot.
+ replaceSymlinks = ''
+ cp --remove-destination ${src}/LICENSE .;
+ cp --remove-destination ${src}/Setup.hs .;
+ '';
+
+ tamarin-prover-utils = mkDerivation (common "tamarin-prover-utils" (src + "/lib/utils") // {
+ postPatch = replaceSymlinks;
+ libraryHaskellDepends = with haskellPackages; [
+ base64-bytestring blaze-builder
+ dlist exceptions fclabels safe SHA syb
+ ];
+ });
+
+ tamarin-prover-term = mkDerivation (common "tamarin-prover-term" (src + "/lib/term") // {
+ postPatch = replaceSymlinks;
+ libraryHaskellDepends = (with haskellPackages; [
+ attoparsec HUnit
+ ]) ++ [ tamarin-prover-utils ];
+ });
+
+ tamarin-prover-theory = mkDerivation (common "tamarin-prover-theory" (src + "/lib/theory") // {
+ postPatch = replaceSymlinks;
+ doHaddock = false; # broken
+ libraryHaskellDepends = (with haskellPackages; [
+ aeson aeson-pretty parallel uniplate
+ ]) ++ [ tamarin-prover-utils tamarin-prover-term ];
+ });
+
+ tamarin-prover-sapic = mkDerivation (common "tamarin-prover-sapic" (src + "/lib/sapic") // {
+ postPatch = "cp --remove-destination ${src}/LICENSE .";
+ doHaddock = false; # broken
+ libraryHaskellDepends = (with haskellPackages; [
+ raw-strings-qq
+ ]) ++ [ tamarin-prover-theory ];
+ });
+
+in
+mkDerivation (common "tamarin-prover" src // {
+ isLibrary = false;
+ isExecutable = true;
+
+ # strip out unneeded deps manually
+ doHaddock = false;
+ enableSharedExecutables = false;
+ postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
+
+ # wrap the prover to be sure it can find maude, sapic, etc
+ executableToolDepends = [ makeWrapper which maude graphviz ];
+ postInstall = ''
+ wrapProgram $out/bin/tamarin-prover \
+ --prefix PATH : ${lib.makeBinPath [ which maude graphviz ]}
+ # so that the package can be used as a vim plugin to install syntax coloration
+ install -Dt $out/share/vim-plugins/tamarin-prover/syntax/ etc/syntax/spthy.vim
+ install etc/filetype.vim -D $out/share/vim-plugins/tamarin-prover/ftdetect/tamarin.vim
+ '';
+
+ checkPhase = "./dist/build/tamarin-prover/tamarin-prover test";
+
+ executableHaskellDepends = (with haskellPackages; [
+ binary-instances binary-orphans blaze-html conduit file-embed
+ gitrev http-types lifted-base monad-control monad-unlift
+ resourcet shakespeare threads wai warp yesod-core yesod-static
+ ]) ++ [ tamarin-prover-utils
+ tamarin-prover-sapic
+ tamarin-prover-term
+ tamarin-prover-theory
+ ];
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
new file mode 100644
index 000000000000..14944f5e19b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, adoptopenjdk-bin, jre, ant
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tlaplus";
+ version = "1.7.0";
+
+ src = fetchFromGitHub {
+ owner = "tlaplus";
+ repo = "tlaplus";
+ rev = "refs/tags/v${version}";
+ sha256 = "1mm6r9bq79zks50yk0agcpdkw9yy994m38ibmgpb3bi3wkpq9891";
+ };
+
+ buildInputs = [ makeWrapper adoptopenjdk-bin ant ];
+
+ buildPhase = "ant -f tlatools/org.lamport.tlatools/customBuild.xml compile dist";
+ installPhase = ''
+ mkdir -p $out/share/java $out/bin
+ cp tlatools/org.lamport.tlatools/dist/*.jar $out/share/java
+
+ makeWrapper ${jre}/bin/java $out/bin/tlc2 \
+ --add-flags "-cp $out/share/java/tla2tools.jar tlc2.TLC"
+ makeWrapper ${jre}/bin/java $out/bin/tla2sany \
+ --add-flags "-cp $out/share/java/tla2tools.jar tla2sany.SANY"
+ makeWrapper ${jre}/bin/java $out/bin/pcal \
+ --add-flags "-cp $out/share/java/tla2tools.jar pcal.trans"
+ makeWrapper ${jre}/bin/java $out/bin/tla2tex \
+ --add-flags "-cp $out/share/java/tla2tools.jar tla2tex.TLA"
+ '';
+
+ meta = {
+ description = "An algorithm specification language with model checking tools";
+ homepage = "http://lamport.azurewebsites.net/tla/tla.html";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix
new file mode 100644
index 000000000000..3872d3a9826b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix
@@ -0,0 +1,54 @@
+{ fetchurl
+, stdenv
+, ocaml, isabelle, cvc3, perl, wget, which
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tlaps";
+ version = "1.4.3";
+ src = fetchurl {
+ url = "https://tla.msr-inria.inria.fr/tlaps/dist/current/tlaps-${version}.tar.gz";
+ sha256 = "1w5z3ns5xxmhmp8r4x2kjmy3clqam935gmvx82imyxrr1bamx6gf";
+ };
+
+ buildInputs = [ ocaml isabelle cvc3 perl wget which ];
+
+ phases = [ "unpackPhase" "installPhase" ];
+
+ installPhase = ''
+ mkdir -pv "$out"
+ export HOME="$out"
+ export PATH=$out/bin:$PATH
+
+ pushd zenon
+ ./configure --prefix $out
+ make
+ make install
+ popd
+
+ pushd isabelle
+ isabelle build -b Pure
+ popd
+
+ pushd tlapm
+ ./configure --prefix $out
+ make all
+ make install
+ '';
+
+ meta = {
+ description = "Mechanically check TLA+ proofs";
+ longDescription = ''
+ TLA+ is a general-purpose formal specification language that is
+ particularly useful for describing concurrent and distributed
+ systems. The TLA+ proof language is declarative, hierarchical,
+ and scalable to large system specifications. It provides a
+ consistent abstraction over the various “backend” verifiers.
+ '';
+ homepage = "https://tla.msr-inria.inria.fr/tlaps/content/Home.html";
+ license = stdenv.lib.licenses.bsd2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
new file mode 100644
index 000000000000..c9e97375b6c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -0,0 +1,81 @@
+{ lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
+, gtk, libXtst, glib, zlib
+}:
+
+let
+ version = "1.7.0";
+ arch = "x86_64";
+
+ desktopItem = makeDesktopItem rec {
+ name = "TLA+Toolbox";
+ exec = "tla-toolbox";
+ icon = "tla-toolbox";
+ comment = "IDE for TLA+";
+ desktopName = name;
+ genericName = comment;
+ categories = "Development";
+ extraEntries = ''
+ StartupWMClass=TLA+ Toolbox
+ '';
+ };
+
+
+in stdenv.mkDerivation {
+ pname = "tla-toolbox";
+ inherit version;
+ src = fetchzip {
+ url = "https://tla.msr-inria.inria.fr/tlatoolbox/products/TLAToolbox-${version}-linux.gtk.${arch}.zip";
+ sha256 = "0v15wscawair5bghr5ixb4i062kmh9by1m0hnz2r1sawlqyafz02";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp -r "$src" "$out/toolbox"
+ chmod -R +w "$out/toolbox"
+
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ "$out/toolbox/toolbox"
+
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ "$(find "$out/toolbox" -name java)"
+
+ makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
+ --run "set -x; cd $out/toolbox" \
+ --add-flags "-data ~/.tla-toolbox" \
+ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk libXtst glib zlib ]}"
+
+ echo -e "\nCreating TLA Toolbox icons..."
+ pushd "$src"
+ for icon_in in $(find . -path "./plugins/*/icons/full/etool16/tla_launch_check_wiz_*.png")
+ do
+ icon_size=$(echo $icon_in | grep -Po "wiz_\K[0-9]+")
+ icon_out="$out/share/icons/hicolor/$icon_size""x$icon_size/apps/tla-toolbox.png"
+ mkdir -p "$(dirname $icon_out)"
+ cp "$icon_in" "$icon_out"
+ done
+ popd
+
+ echo -e "\nCreating TLA Toolbox desktop entry..."
+ cp -r "${desktopItem}/share/applications"* "$out/share/applications"
+ '';
+
+ meta = {
+ homepage = "http://research.microsoft.com/en-us/um/people/lamport/tla/toolbox.html";
+ description = "IDE for the TLA+ tools";
+ longDescription = ''
+ Integrated development environment for the TLA+ tools, based on Eclipse. You can use it
+ to create and edit your specs, run the PlusCal translator, view the pretty-printed
+ versions of your modules, run the TLC model checker, and run TLAPS, the TLA+ proof system.
+ '';
+ # http://lamport.azurewebsites.net/tla/license.html
+ license = with lib.licenses; [ mit ];
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tptp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tptp/default.nix
new file mode 100644
index 000000000000..4c63f8e72a36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/tptp/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, yap, tcsh, perl, patchelf }:
+
+stdenv.mkDerivation rec {
+ pname = "TPTP";
+ version = "7.2.0";
+
+ src = fetchurl {
+ urls = [
+ "http://tptp.cs.miami.edu/TPTP/Distribution/TPTP-v${version}.tgz"
+ "http://tptp.cs.miami.edu/TPTP/Archive/TPTP-v${version}.tgz"
+ ];
+ sha256 = "0yq8452b6mym4yscy46pshg0z2my8xi74b5bp2qlxd5bjwcrg6rl";
+ };
+
+ nativeBuildInputs = [ patchelf ];
+ buildInputs = [ tcsh yap perl ];
+
+ installPhase = ''
+ sharedir=$out/share/tptp
+
+ mkdir -p $sharedir
+ cp -r ./ $sharedir
+
+ export TPTP=$sharedir
+
+ tcsh $sharedir/Scripts/tptp2T_install -default
+
+ substituteInPlace $sharedir/TPTP2X/tptp2X_install --replace /bin/mv mv
+ tcsh $sharedir/TPTP2X/tptp2X_install -default
+
+ patchelf --interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $sharedir/Scripts/tptp4X
+
+ mkdir -p $out/bin
+ ln -s $sharedir/TPTP2X/tptp2X $out/bin
+ ln -s $sharedir/Scripts/tptp2T $out/bin
+ ln -s $sharedir/Scripts/tptp4X $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Thousands of problems for theorem provers and tools";
+ maintainers = with maintainers; [ raskin gebner ];
+ # 6.3 GiB of data. Installation is unpacking and editing a few files.
+ # No sense in letting Hydra build it.
+ # Also, it is unclear what is covered by "verbatim" - we will edit configs
+ hydraPlatforms = [];
+ platforms = platforms.all;
+ license = licenses.unfreeRedistributable;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/twelf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/twelf/default.nix
new file mode 100644
index 000000000000..975b989bd94c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/twelf/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, pkgconfig, smlnj, rsync }:
+
+stdenv.mkDerivation rec {
+ pname = "twelf";
+ version = "1.7.1";
+
+ src = fetchurl {
+ url = "http://twelf.plparty.org/releases/twelf-src-${version}.tar.gz";
+ sha256 = "0fi1kbs9hrdrm1x4k13angpjasxlyd1gc3ys8ah54i75qbcd9c4i";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ smlnj rsync ];
+
+ buildPhase = ''
+ export SMLNJ_HOME=${smlnj}
+ make smlnj
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ rsync -av bin/{*,.heap} $out/bin/
+ bin/.mkexec ${smlnj}/bin/sml $out/ twelf-server twelf-server
+
+ substituteInPlace emacs/twelf-init.el \
+ --replace '(concat twelf-root "emacs")' '(concat twelf-root "share/emacs/site-lisp/twelf")'
+
+ mkdir -p $out/share/emacs/site-lisp/twelf/
+ rsync -av emacs/ $out/share/emacs/site-lisp/twelf/
+
+ mkdir -p $out/share/twelf/examples
+ rsync -av examples/ $out/share/twelf/examples/
+ mkdir -p $out/share/twelf/vim
+ rsync -av vim/ $out/share/twelf/vim/
+ '';
+
+ meta = {
+ description = "Logic proof assistant";
+ longDescription = ''
+ Twelf is a language used to specify, implement, and prove properties of
+ deductive systems such as programming languages and logics. Large
+ research projects using Twelf include the TALT typed assembly language,
+ a foundational proof-carrying-code system, and a type safety proof for
+ Standard ML.
+ '';
+ homepage = "http://twelf.org/wiki/Main_Page";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ jwiegley ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/vampire/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
new file mode 100644
index 000000000000..dca03823e9ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, fetchpatch, z3, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "vampire";
+ version = "4.5.1";
+
+ src = fetchFromGitHub {
+ owner = "vprover";
+ repo = "vampire";
+ rev = version;
+ sha256 = "0q9gqyq96amdnhxgwjyv0r2sxakikp3jvmizgj2h0spfz643p8db";
+ };
+
+ buildInputs = [ z3 zlib ];
+
+ makeFlags = [ "vampire_z3_rel" "CC:=$(CC)" "CXX:=$(CXX)" ];
+
+ patches = [
+ # https://github.com/vprover/vampire/pull/54
+ (fetchpatch {
+ name = "fix-apple-cygwin-defines.patch";
+ url = "https://github.com/vprover/vampire/pull/54.patch";
+ sha256 = "0i6nrc50wlg1dqxq38lkpx4rmfb3lf7s8f95l4jkvqp0nxa20cza";
+ })
+ # https://github.com/vprover/vampire/pull/55
+ (fetchpatch {
+ name = "fix-wait-any.patch";
+ url = "https://github.com/vprover/vampire/pull/55.patch";
+ sha256 = "1pwfpwpl23bqsgkmmvw6bnniyvp5j9v8l3z9s9pllfabnfcrcz9l";
+ })
+ # https://github.com/vprover/vampire/pull/56
+ (fetchpatch {
+ name = "fenv.patch";
+ url = "https://github.com/vprover/vampire/pull/56.patch";
+ sha256 = "0xl3jcyqmk146mg3qj5hdd0pbja6wbq3250zmfhbxqrjh40mm40g";
+ })
+ ];
+
+ enableParallelBuilding = true;
+
+ fixupPhase = ''
+ rm -rf z3
+ '';
+
+ installPhase = ''
+ install -m0755 -D vampire_z3_rel* $out/bin/vampire
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://vprover.github.io/";
+ description = "The Vampire Theorem Prover";
+ platforms = platforms.unix;
+ license = licenses.unfree;
+ maintainers = with maintainers; [ gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/verifast/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/verifast/default.nix
new file mode 100644
index 000000000000..49618d2586b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/verifast/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, gtk2, gdk-pixbuf, atk, pango, glib, cairo, freetype
+, fontconfig, libxml2, gnome2 }:
+
+let
+
+ libPath = stdenv.lib.makeLibraryPath
+ [ stdenv.cc.libc stdenv.cc.cc gtk2 gdk-pixbuf atk pango glib cairo
+ freetype fontconfig libxml2 gnome2.gtksourceview
+ ] + ":${stdenv.cc.cc.lib}/lib64:$out/libexec";
+
+ patchExe = x: ''
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${libPath} ${x}
+ '';
+
+ patchLib = x: ''
+ patchelf --set-rpath ${libPath} ${x}
+ '';
+
+in
+stdenv.mkDerivation rec {
+ pname = "verifast";
+ version = "19.12";
+
+ src = fetchurl {
+ url = "https://github.com/verifast/verifast/releases/download/${version}/${pname}-${version}-linux.tar.gz";
+ sha256 = "169kshjq4cf4i9v92azv0xaflrnik5686w7fwcgdhd6qkbzflzl6";
+ };
+
+ dontStrip = true;
+ phases = "unpackPhase installPhase";
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -R bin $out/libexec
+
+ ${patchExe "$out/libexec/verifast"}
+ ${patchExe "$out/libexec/vfide"}
+ ${patchLib "$out/libexec/libz3.so"}
+ ln -s $out/libexec/verifast $out/bin/verifast
+ ln -s $out/libexec/vfide $out/bin/vfide
+ '';
+
+ meta = {
+ description = "Verification for C and Java programs via separation logic";
+ homepage = "http://people.cs.kuleuven.be/~bart.jacobs/verifast/";
+ license = stdenv.lib.licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/verit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/verit/default.nix
new file mode 100644
index 000000000000..f20a83241571
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/verit/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, autoreconfHook, gmp, flex, bison }:
+
+stdenv.mkDerivation {
+ pname = "veriT";
+ version = "2016";
+
+ src = fetchurl {
+ url = "http://www.verit-solver.org/distrib/veriT-stable2016.tar.gz";
+ sha256 = "0gvp4diz0qjg0y5ry0p1z7dkdkxw8l7jb8cdhvcnhl06jx977v4b";
+ };
+
+ nativeBuildInputs = [ autoreconfHook flex bison ];
+ buildInputs = [ gmp ];
+
+ # --disable-static actually enables static linking here...
+ dontDisableStatic = true;
+
+ makeFlags = [ "LEX=${flex}/bin/flex" ];
+
+ preInstall = ''
+ mkdir -p $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An open, trustable and efficient SMT-solver";
+ homepage = "http://www.verit-solver.org/";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/default.nix
new file mode 100644
index 000000000000..eacff32bdf62
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/default.nix
@@ -0,0 +1,49 @@
+{ callPackage, fetchurl, fetchpatch, stdenv
+, ocamlPackages, coqPackages, rubber, hevea, emacs }:
+
+stdenv.mkDerivation {
+ pname = "why3";
+ version = "1.3.3";
+
+ src = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/file/38367/why3-1.3.3.tar.gz";
+ sha256 = "1n0a2nn1gnk0zg339lh698g4wpk7m8m1vyi2yvifd5adqvk4milw";
+ };
+
+ buildInputs = with ocamlPackages; [
+ ocaml findlib ocamlgraph zarith menhir
+ # Compressed Sessions
+ # Emacs compilation of why3.el
+ emacs
+ # Documentation
+ rubber hevea
+ # GUI
+ lablgtk
+ # WebIDE
+ js_of_ocaml js_of_ocaml-ppx
+ # Coq Support
+ coqPackages.coq coqPackages.flocq ocamlPackages.camlp5
+ ];
+
+ propagatedBuildInputs = with ocamlPackages; [ camlzip num ];
+
+ enableParallelBuilding = true;
+
+ postPatch = ''
+ substituteInPlace Makefile.in --replace js_of_ocaml.ppx js_of_ocaml-ppx
+ '';
+
+ configureFlags = [ "--enable-verbose-make" ];
+
+ installTargets = [ "install" "install-lib" ];
+
+ passthru.withProvers = callPackage ./with-provers.nix {};
+
+ meta = with stdenv.lib; {
+ description = "A platform for deductive program verification";
+ homepage = "http://why3.lri.fr/";
+ license = licenses.lgpl21;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix
new file mode 100644
index 000000000000..3528dbd3a647
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix
@@ -0,0 +1,30 @@
+{ stdenv, makeWrapper, runCommand, symlinkJoin, why3 }:
+provers:
+let configAwkScript = runCommand "why3-conf.awk" { inherit provers; }
+ ''
+ for p in $provers; do
+ for b in $p/bin/*; do
+ BASENAME=$(basename $b)
+ echo "/^command =/{ gsub(\"$BASENAME\", \"$b\") }" >> $out
+ done
+ done
+ echo '{ print }' >> $out
+ '';
+in stdenv.mkDerivation {
+ name = "${why3.name}-with-provers";
+
+ phases = [ "buildPhase" "installPhase" ];
+
+ buildInputs = [ why3 makeWrapper ] ++ provers;
+
+ buildPhase = ''
+ mkdir -p $out/share/why3/
+ why3 config --detect-provers -C $out/share/why3/why3.conf
+ awk -i inplace -f ${configAwkScript} $out/share/why3/why3.conf
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ makeWrapper ${why3}/bin/why3 $out/bin/why3 --add-flags "--extra-config $out/share/why3/why3.conf"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
new file mode 100644
index 000000000000..9ce6592d9989
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "workcraft";
+ version = "3.3.2";
+
+ src = fetchurl {
+ url = "https://github.com/workcraft/workcraft/releases/download/v${version}/workcraft-v${version}-linux.tar.gz";
+ sha256 = "0v71x3fph2j3xrnysvkm7zsgnbxisfbdfgxzvzxxfdg59a6l3xid";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/share
+ cp -r * $out/share
+ mkdir $out/bin
+ makeWrapper $out/share/workcraft $out/bin/workcraft \
+ --set JAVA_HOME "${jre}" \
+ --set _JAVA_OPTIONS '-Dawt.useSystemAAFontSettings=gasp';
+ '';
+
+ meta = {
+ homepage = "https://workcraft.org/";
+ description = "Framework for interpreted graph modeling, verification and synthesis";
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ timor ];
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/yices/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/yices/default.nix
new file mode 100644
index 000000000000..b8dd528a11c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/yices/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, gmp-static, gperf, autoreconfHook, libpoly }:
+
+stdenv.mkDerivation rec {
+ pname = "yices";
+ version = "2.6.1";
+
+ src = fetchFromGitHub {
+ owner = "SRI-CSL";
+ repo = "yices2";
+ rev = "Yices-${version}";
+ sha256 = "04vf468spsh00jh7gj94cjnq8kjyfwy9l6r4z7l2pm0zgwkqgyhm";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ gmp-static gperf libpoly ];
+ configureFlags =
+ [ "--with-static-gmp=${gmp-static.out}/lib/libgmp.a"
+ "--with-static-gmp-include-dir=${gmp-static.dev}/include"
+ "--enable-mcsat"
+ ];
+
+ enableParallelBuilding = true;
+ doCheck = true;
+
+ # Usual shenanigans
+ patchPhase = ''patchShebangs tests/regress/check.sh'';
+
+ # Includes a fix for the embedded soname being libyices.so.2.5, but
+ # only installing the libyices.so.2.5.x file.
+ installPhase = let
+ ver_XdotY = stdenv.lib.versions.majorMinor version;
+ in ''
+ make install LDCONFIG=true
+ ln -sfr $out/lib/libyices.so.{${version},${ver_XdotY}}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A high-performance theorem prover and SMT solver";
+ homepage = "http://yices.csl.sri.com";
+ license = licenses.gpl3;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/4.4.0.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/4.4.0.nix
new file mode 100644
index 000000000000..a5388572db61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/4.4.0.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, python }:
+
+stdenv.mkDerivation rec {
+ name = "z3-${version}";
+ version = "4.4.0";
+
+ src = fetchFromGitHub {
+ owner = "Z3Prover";
+ repo = "z3";
+ rev = "7f6ef0b6c0813f2e9e8f993d45722c0e5b99e152";
+ sha256 = "1xllvq9fcj4cz34biq2a9dn2sj33bdgrzyzkj26hqw70wkzv1kzx";
+ };
+
+ buildInputs = [ python ];
+ enableParallelBuilding = true;
+
+ configurePhase = "python scripts/mk_make.py --prefix=$out && cd build";
+
+ # z3's install phase is stupid because it tries to calculate the
+ # python package store location itself, meaning it'll attempt to
+ # write files into the nix store, and fail.
+ soext = if stdenv.system == "x86_64-darwin" then ".dylib" else ".so";
+ installPhase = ''
+ mkdir -p $out/bin $out/lib/${python.libPrefix}/site-packages $out/include
+ cp ../src/api/z3*.h $out/include
+ cp ../src/api/c++/z3*.h $out/include
+ cp z3 $out/bin
+ cp libz3${soext} $out/lib
+ cp libz3${soext} $out/lib/${python.libPrefix}/site-packages
+ cp z3*.pyc $out/lib/${python.libPrefix}/site-packages
+ cp ../src/api/python/*.py $out/lib/${python.libPrefix}/site-packages
+ '';
+
+ meta = {
+ description = "A high-performance theorem prover and SMT solver";
+ homepage = "https://github.com/Z3Prover/z3";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.x86_64;
+ maintainers = with stdenv.lib.maintainers; [ thoughtpolice ttuegel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/default.nix
new file mode 100644
index 000000000000..48512eff5300
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchFromGitHub, python, fixDarwinDylibNames
+, javaBindings ? false
+, ocamlBindings ? false
+, pythonBindings ? true
+, jdk ? null
+, ocaml ? null, findlib ? null, zarith ? null
+}:
+
+assert javaBindings -> jdk != null;
+assert ocamlBindings -> ocaml != null && findlib != null && zarith != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "z3";
+ version = "4.8.9";
+
+ src = fetchFromGitHub {
+ owner = "Z3Prover";
+ repo = pname;
+ rev = "z3-${version}";
+ sha256 = "1hnbzq10d23drd7ksm3c1n2611c3kd0q0yxgz8y78zaafwczvwxx";
+ };
+
+ nativeBuildInputs = optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+ buildInputs = [ python ]
+ ++ optional javaBindings jdk
+ ++ optionals ocamlBindings [ ocaml findlib zarith ]
+ ;
+ propagatedBuildInputs = [ python.pkgs.setuptools ];
+ enableParallelBuilding = true;
+
+ postPatch = optionalString ocamlBindings ''
+ export OCAMLFIND_DESTDIR=$ocaml/lib/ocaml/${ocaml.version}/site-lib
+ mkdir -p $OCAMLFIND_DESTDIR/stublibs
+ '';
+
+ configurePhase = concatStringsSep " " (
+ [ "${python.interpreter} scripts/mk_make.py --prefix=$out" ]
+ ++ optional javaBindings "--java"
+ ++ optional ocamlBindings "--ml"
+ ++ optional pythonBindings "--python --pypkgdir=$out/${python.sitePackages}"
+ ) + "\n" + "cd build";
+
+ postInstall = ''
+ mkdir -p $dev $lib
+ mv $out/lib $lib/lib
+ mv $out/include $dev/include
+ '' + optionalString pythonBindings ''
+ mkdir -p $python/lib
+ mv $lib/lib/python* $python/lib/
+ ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
+ '';
+
+ outputs = [ "out" "lib" "dev" "python" ]
+ ++ optional ocamlBindings "ocaml"
+ ;
+
+ meta = {
+ description = "A high-performance theorem prover and SMT solver";
+ homepage = "https://github.com/Z3Prover/z3";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ thoughtpolice ttuegel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/tptp.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/tptp.nix
new file mode 100644
index 000000000000..34449542abb2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/z3/tptp.nix
@@ -0,0 +1,31 @@
+{stdenv, z3, cmake}:
+stdenv.mkDerivation rec {
+ pname = "z3-tptp";
+ version = z3.version;
+
+ src = z3.src;
+
+ sourceRoot = "source/examples/tptp";
+
+ nativeBuildInputs = [cmake];
+ buildInputs = [z3];
+
+ preConfigure = ''
+ echo 'set(Z3_LIBRARIES "-lz3")' >> CMakeLists.new
+ cat CMakeLists.txt | grep -E 'add_executable|project|link_libraries' >> CMakeLists.new
+ mv CMakeLists.new CMakeLists.txt
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp "z3_tptp5" "$out/bin/"
+ ln -s "z3_tptp5" "$out/bin/z3-tptp"
+ '';
+
+ meta = {
+ inherit version;
+ inherit (z3.meta) license homepage platforms;
+ description = ''TPTP wrapper for Z3 prover'';
+ maintainers = [stdenv.lib.maintainers.raskin];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/fasttext/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/fasttext/default.nix
new file mode 100644
index 000000000000..64124594e1e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/fasttext/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchFromGitHub, cmake}:
+
+stdenv.mkDerivation rec {
+ pname = "fasttext";
+ version = "0.9.2";
+
+ src = fetchFromGitHub {
+ owner = "facebookresearch";
+ repo = "fastText";
+ rev = "v${version}";
+ sha256 = "07cz2ghfq6amcljaxpdr5chbd64ph513y8zqmibfx2xwfp74xkhn";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "Library for text classification and representation learning";
+ homepage = "https://fasttext.cc/";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.danieldk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
new file mode 100644
index 000000000000..f1a2dbaa54fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, pkg-config
+, libiconv
+, openssl
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "finalfrontier";
+ version = "0.9.4";
+
+ src = fetchFromGitHub {
+ owner = "finalfusion";
+ repo = pname;
+ rev = version;
+ sha256 = "1lvwv238p8hrl4sc5pmnvaargl2dd25p44gxl3kibq5ng03afd0n";
+ };
+
+ cargoSha256 = "1ibn22v24brdlrar6j7fryiwimbbw7byak265hrw7a5agf1799x0";
+
+ nativeBuildInputs = [
+ installShellFiles
+ pkg-config
+ ];
+
+ buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
+ libiconv
+ Security
+ ];
+
+ postInstall = ''
+ installManPage man/*.1
+
+ # Install shell completions
+ for shell in bash fish zsh; do
+ $out/bin/finalfrontier completions $shell > finalfrontier.$shell
+ done
+ installShellCompletion finalfrontier.{bash,fish,zsh}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Utility for training word and subword embeddings";
+ homepage = "https://github.com/finalfusion/finalfrontier/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ danieldk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
new file mode 100644
index 000000000000..eeeafdd3d98c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, blas
+, gfortran
+, lapack
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "finalfusion-utils";
+ version = "0.12.0";
+
+ src = fetchFromGitHub {
+ owner = "finalfusion";
+ repo = pname;
+ rev = version;
+ sha256 = "0gxcjrhfa86kz5qmdf5h278ydc3nc0nfj61brnykb723mg45jj41";
+ };
+
+ cargoSha256 = "03p786hh54zql61vhmsqcdgvz23v2rm12cgwf7clfmk6a6yj6ibx";
+
+ # Enables build against a generic BLAS.
+ cargoBuildFlags = [
+ "--features"
+ "netlib"
+ ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildInputs = [
+ blas
+ gfortran.cc.lib
+ lapack
+ ] ++ lib.optionals stdenv.isDarwin [
+ Security
+ ];
+
+ postInstall = ''
+ # Install shell completions
+ for shell in bash fish zsh; do
+ $out/bin/finalfusion completions $shell > finalfusion.$shell
+ done
+ installShellCompletion finalfusion.{bash,fish,zsh}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Utility for converting, quantizing, and querying word embeddings";
+ homepage = "https://github.com/finalfusion/finalfusion-utils/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ danieldk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
new file mode 100644
index 000000000000..18c304e83165
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, python3Packages, fetchFromGitHub, qt5 }:
+ python3Packages.buildPythonApplication rec {
+ pname = "labelImg";
+ version = "1.8.3";
+ src = fetchFromGitHub {
+ owner = "tzutalin";
+ repo = "labelImg";
+ rev = "v${version}";
+ sha256 = "07v106fzlmxrbag4xm06m4mx9m0gckb27vpwsn7sap1bbgc1pap5";
+ };
+ nativeBuildInputs = with python3Packages; [
+ pyqt5
+ qt5.wrapQtAppsHook
+ ];
+ propagatedBuildInputs = with python3Packages; [
+ pyqt5
+ lxml
+ sip
+ ];
+ preBuild = ''
+ make qt5py3
+ '';
+ postInstall = ''
+ cp libs/resources.py $out/${python3Packages.python.sitePackages}/libs
+ '';
+ dontWrapQtApps = true;
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+ meta = with stdenv.lib; {
+ description = "A graphical image annotation tool and label object bounding boxes in images";
+ homepage = "https://github.com/tzutalin/labelImg";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.cmcdragonkai ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/default.nix
new file mode 100644
index 000000000000..7bcc915daec9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/default.nix
@@ -0,0 +1,61 @@
+{ config, stdenv
+, callPackage
+, lib
+, fetchurl
+, unzip
+, licenseAccepted ? config.sc2-headless.accept_license or false
+}:
+
+if !licenseAccepted then throw ''
+ You must accept the Blizzard® Starcraft® II AI and Machine Learning License at
+ https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html
+ by setting nixpkgs config option 'sc2-headless.accept_license = true;'
+ ''
+else assert licenseAccepted;
+let maps = callPackage ./maps.nix {};
+in stdenv.mkDerivation rec {
+ version = "4.7.1";
+ pname = "sc2-headless";
+
+ src = fetchurl {
+ url = "https://blzdistsc2-a.akamaihd.net/Linux/SC2.${version}.zip";
+ sha256 = "0q1ry9bd3dm8y4hvh57yfq7s05hl2k2sxi2wsl6h0r3w690v1kdd";
+ };
+
+ unpackCmd = ''
+ unzip -P 'iagreetotheeula' $curSrc
+ '';
+
+ nativeBuildInputs = [ unzip ];
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r . "$out"
+ rm -r $out/Libs
+
+ cp -ur "${maps.minigames}"/* "${maps.melee}"/* "${maps.ladder2017season1}"/* "${maps.ladder2017season2}"/* "${maps.ladder2017season3}"/* \
+ "${maps.ladder2017season4}"/* "${maps.ladder2018season1}"/* "${maps.ladder2018season2}"/* \
+ "${maps.ladder2018season3}"/* "${maps.ladder2018season4}"/* "${maps.ladder2019season1}"/* "$out"/Maps/
+ '';
+
+ preFixup = ''
+ find $out -type f -print0 | while IFS=''' read -d ''' -r file; do
+ isELF "$file" || continue
+ patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${lib.makeLibraryPath [stdenv.cc.cc stdenv.cc.libc]} \
+ "$file"
+ done
+ '';
+
+ meta = {
+ platforms = stdenv.lib.platforms.linux;
+ description = "Starcraft II headless linux client for machine learning research";
+ license = {
+ fullName = "BLIZZARD® STARCRAFT® II AI AND MACHINE LEARNING LICENSE";
+ url = "https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html";
+ free = false;
+ };
+ maintainers = with lib.maintainers; [ danharaj ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/maps.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/maps.nix
new file mode 100644
index 000000000000..6eec10e958c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/maps.nix
@@ -0,0 +1,63 @@
+{ fetchzip
+}:
+let
+ fetchzip' = args: (fetchzip args).overrideAttrs (old: { UNZIP = "-j -P iagreetotheeula"; });
+in
+{
+ minigames = fetchzip {
+ url = "https://github.com/deepmind/pysc2/releases/download/v1.2/mini_games.zip";
+ sha256 = "19f873ilcdsf50g2v0s2zzmxil1bqncsk8nq99bzy87h0i7khkla";
+ stripRoot = false;
+ };
+
+ melee = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Melee.zip";
+ sha256 = "0z44pgy10jklsvgpr0kcn4c2mz3hw7nlcmvsy6a6lzpi3dvzf33i";
+ stripRoot = false;
+ };
+ ladder2017season1 = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2017Season1.zip";
+ sha256 = "0ngg4g74s2ryhylny93fm8yq9rlrhphwnjg2s6f3qr85a2b3zdpd";
+ stripRoot = false;
+ };
+ ladder2017season2 = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2017Season2.zip";
+ sha256 = "01kycnvqagql9pkjkcgngfcnry2pc4kcygdkk511m0qr34909za5";
+ stripRoot = false;
+ };
+ ladder2017season3 = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2017Season3_Updated.zip";
+ sha256 = "0wix3lwmbyxfgh8ldg0n66i21p0dbavk2dxjngz79rx708m8qvld";
+ stripRoot = false;
+ };
+ ladder2017season4 = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2017Season4.zip";
+ sha256 = "1sidnmk2rc9j5fd3a4623pvaika1mm1rwhznb2qklsqsq1x2qckp";
+ stripRoot = false;
+ };
+ ladder2018season1 = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2018Season1.zip";
+ sha256 = "0mp0ilcq0gmd7ahahc5i8c7bdr3ivk6skx0b2cgb1z89l5d76irq";
+ stripRoot = false;
+ };
+ ladder2018season2 = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2018Season2_Updated.zip";
+ sha256 = "176rs848cx5src7qbr6dnn81bv1i86i381fidk3v81q9bxlmc2rv";
+ stripRoot = false;
+ };
+ ladder2018season3 = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2018Season3.zip";
+ sha256 = "1r3wv4w53g9zq6073ajgv74prbdsd1x3zfpyhv1kpxbffyr0x0zp";
+ stripRoot = false;
+ };
+ ladder2018season4 = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2018Season4.zip";
+ sha256 = "0k47rr6pzxbanlqnhliwywkvf0w04c8hxmbanksbz6aj5wpkcn1s";
+ stripRoot = false;
+ };
+ ladder2019season1 = fetchzip' {
+ url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2019Season1.zip";
+ sha256 = "1dlk9zza8h70lbjvg2ykc5wr9vsvvdk02szwrkgdw26mkssl2rg9";
+ stripRoot = false;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
new file mode 100644
index 000000000000..a2c26de7a2dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -0,0 +1,98 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, ctags, swig
+# data, compression
+, bzip2, curl, hdf5, json_c, lzma, lzo, protobuf, snappy
+# maths
+, blas, lapack, eigen, nlopt, lp_solve, colpack, glpk
+# libraries
+, libarchive, libxml2
+# extra support
+, pythonSupport ? true, pythonPackages ? null
+, opencvSupport ? false, opencv ? null
+}:
+
+assert pythonSupport -> pythonPackages != null;
+assert opencvSupport -> opencv != null;
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+let
+ pname = "shogun";
+ version = "6.1.4";
+ rxcppVersion = "4.0.0";
+ gtestVersion = "1.8.0";
+ srcs = {
+ toolbox = fetchFromGitHub {
+ owner = pname + "-toolbox";
+ repo = pname;
+ rev = pname + "_" + version;
+ sha256 = "05s9dclmk7x5d7wnnj4qr6r6c827m72a44gizcv09lxr28pr9inz";
+ fetchSubmodules = true;
+ };
+ # we need the packed archive
+ rxcpp = fetchurl {
+ url = "https://github.com/Reactive-Extensions/RxCpp/archive/v${rxcppVersion}.tar.gz";
+ sha256 = "0y2isr8dy2n1yjr9c5570kpc9lvdlch6jv0jvw000amwn5d3krsh";
+ };
+ gtest = fetchurl {
+ url = "https://github.com/google/googletest/archive/release-${gtestVersion}.tar.gz";
+ sha256 = "1n5p1m2m3fjrjdj752lf92f9wq3pl5cbsfrb49jqbg52ghkz99jq";
+ };
+ };
+in
+
+stdenv.mkDerivation rec {
+
+ inherit pname version;
+
+ src = srcs.toolbox;
+
+ postUnpack = ''
+ mkdir -p $sourceRoot/third_party/{rxcpp,gtest}
+ ln -s ${srcs.rxcpp} $sourceRoot/third_party/rxcpp/v${rxcppVersion}.tar.gz
+ ln -s ${srcs.gtest} $sourceRoot/third_party/gtest/release-${gtestVersion}.tar.gz
+ '';
+
+ # broken
+ doCheck = false;
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/awild82/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
+ sha256 = "158hqv4xzw648pmjbwrhxjp7qcppqa7kvriif87gn3zdn711c49s";
+ })
+ ];
+
+ CCACHE_DISABLE="1";
+ CCACHE_DIR=".ccache";
+
+ buildInputs = with lib; [
+ blas lapack bzip2 cmake colpack curl ctags eigen hdf5 json_c lp_solve lzma lzo
+ protobuf nlopt snappy swig (libarchive.dev) libxml2 lapack glpk
+ ]
+ ++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
+ ++ optional (opencvSupport) opencv;
+
+ NIX_CFLAGS_COMPILE="-faligned-new";
+
+ cmakeFlags =
+ let
+ onOff = b: if b then "ON" else "OFF";
+ flag = n: b: "-D"+n+"="+onOff b;
+ in
+ with lib; [
+ (flag "ENABLE_TESTING" doCheck)
+ (flag "BUILD_META_EXAMPLES" doCheck)
+ (flag "CMAKE_VERBOSE_MAKEFILE:BOOL" doCheck)
+ (flag "PythonModular" pythonSupport)
+ (flag "OpenCV" opencvSupport)
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A toolbox which offers a wide range of efficient and unified machine learning methods";
+ homepage = "http://shogun-toolbox.org/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/streamlit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/streamlit/default.nix
new file mode 100644
index 000000000000..26b241ff0ada
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/machine-learning/streamlit/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonApplication, fetchPypi
+ , altair, astor, base58, blinker, boto3, botocore, click, enum-compat
+ , future, pillow, protobuf, requests, toml, tornado_5, tzlocal, validators, watchdog
+ , jinja2, setuptools
+}:
+
+buildPythonApplication rec {
+ pname = "streamlit";
+ version = "0.50.2";
+ format = "wheel"; # the only distribution available
+
+ src = fetchPypi {
+ inherit pname version format;
+ sha256 = "1wymv7qckafs0p2jdjlxjaf1xrhm3iyd185jkldanbb0na5n3ndz";
+ };
+
+ propagatedBuildInputs = [
+ altair astor base58 blinker boto3 botocore click enum-compat
+ future pillow protobuf requests toml tornado_5 tzlocal validators watchdog
+ jinja2 setuptools
+ ];
+
+ postInstall = ''
+ rm $out/bin/streamlit.cmd # remove windows helper
+ '';
+
+ meta = with lib; {
+ homepage = "https://streamlit.io/";
+ description = "The fastest way to build custom ML tools";
+ maintainers = with maintainers; [ yrashk ];
+ license = licenses.asl20;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/LiE/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/LiE/default.nix
new file mode 100644
index 000000000000..f5f3bb0a42b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/LiE/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl
+, bison, readline }:
+
+stdenv.mkDerivation {
+ version = "2.2.2";
+ # The current version of LiE is 2.2.2, which is more or less unchanged
+ # since about the year 2000. Minor bugfixes do get applied now and then.
+ pname = "lie";
+
+ meta = {
+ description = "A Computer algebra package for Lie group computations";
+ homepage = "http://wwwmathlabo.univ-poitiers.fr/~maavl/LiE/";
+ license = stdenv.lib.licenses.lgpl3; # see the website
+
+ longDescription = ''
+ LiE is a computer algebra system that is specialised in computations
+ involving (reductive) Lie groups and their representations. It is
+ publically available for free in source code. For a description of its
+ characteristics, we refer to the following sources of information.
+ ''; # take from the website
+
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ ]; # this package is probably not going to change anyway
+ };
+
+ src = fetchurl {
+ url = "http://wwwmathlabo.univ-poitiers.fr/~maavl/LiE/conLiE.tar.gz";
+ sha256 = "07lbj75qqr4pq1j1qz8fyfnmrz1gnk92lnsshxycfavxl5zzdmn4";
+ };
+
+ buildInputs = [ bison readline ];
+
+ patchPhase = ''
+ substituteInPlace make_lie \
+ --replace \`/bin/pwd\` $out
+ '';
+
+ installPhase = ''
+ mkdir -vp $out/bin
+
+ cp -v Lie.exe $out
+ cp -v lie $out/bin
+
+ cp -v LEARN* $out
+ cp -v INFO* $out
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/default.nix
new file mode 100644
index 000000000000..e4fbe8a7f2de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/default.nix
@@ -0,0 +1,118 @@
+{ stdenv, fetchurl, bzip2, gfortran, libX11, libXmu, libXt, libjpeg, libpng
+, libtiff, ncurses, pango, pcre2, perl, readline, tcl, texLive, tk, xz, zlib
+, less, texinfo, graphviz, icu, pkgconfig, bison, imake, which, jdk, blas, lapack
+, curl, Cocoa, Foundation, libobjc, libcxx, tzdata, fetchpatch
+, withRecommendedPackages ? true
+, enableStrictBarrier ? false
+# R as of writing does not support outputting both .so and .a files; it outputs:
+# --enable-R-static-lib conflicts with --enable-R-shlib and will be ignored
+, static ? false
+}:
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+stdenv.mkDerivation rec {
+ name = "R-4.0.3";
+
+ src = fetchurl {
+ url = "https://cran.r-project.org/src/base/R-4/${name}.tar.gz";
+ sha256 = "03cypg2qf7v9mq9mr9alz9w5y9m5kdgwbc97bp26pyymg253m609";
+ };
+
+ dontUseImakeConfigure = true;
+
+ buildInputs = [
+ bzip2 gfortran libX11 libXmu libXt libXt libjpeg libpng libtiff ncurses
+ pango pcre2 perl readline texLive xz zlib less texinfo graphviz icu
+ pkgconfig bison imake which blas lapack curl tcl tk jdk
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa Foundation libobjc libcxx ];
+
+ patches = [
+ ./no-usr-local-search-paths.patch
+ ./fix-failing-test.patch
+ ];
+
+ prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace configure --replace "-install_name libR.dylib" "-install_name $out/lib/R/lib/libR.dylib"
+ '';
+
+ dontDisableStatic = static;
+
+ preConfigure = ''
+ configureFlagsArray=(
+ --disable-lto
+ --with${stdenv.lib.optionalString (!withRecommendedPackages) "out"}-recommended-packages
+ --with-blas="-L${blas}/lib -lblas"
+ --with-lapack="-L${lapack}/lib -llapack"
+ --with-readline
+ --with-tcltk --with-tcl-config="${tcl}/lib/tclConfig.sh" --with-tk-config="${tk}/lib/tkConfig.sh"
+ --with-cairo
+ --with-libpng
+ --with-jpeglib
+ --with-libtiff
+ --with-ICU
+ ${stdenv.lib.optionalString enableStrictBarrier "--enable-strict-barrier"}
+ ${if static then "--enable-R-static-lib" else "--enable-R-shlib"}
+ AR=$(type -p ar)
+ AWK=$(type -p gawk)
+ CC=$(type -p cc)
+ CXX=$(type -p c++)
+ FC="${gfortran}/bin/gfortran" F77="${gfortran}/bin/gfortran"
+ JAVA_HOME="${jdk}"
+ RANLIB=$(type -p ranlib)
+ R_SHELL="${stdenv.shell}"
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ --disable-R-framework
+ OBJC="clang"
+ CPPFLAGS="-isystem ${libcxx}/include/c++/v1"
+ LDFLAGS="-L${libcxx}/lib"
+ '' + ''
+ )
+ echo >>etc/Renviron.in "TCLLIBPATH=${tk}/lib"
+ echo >>etc/Renviron.in "TZDIR=${tzdata}/share/zoneinfo"
+ '';
+
+ installTargets = [ "install" "install-info" "install-pdf" ];
+
+ # The store path to "which" is baked into src/library/base/R/unix/system.unix.R,
+ # but Nix cannot detect it as a run-time dependency because the installed file
+ # is compiled and compressed, which hides the store path.
+ postFixup = "echo ${which} > $out/nix-support/undetected-runtime-dependencies";
+
+ doCheck = true;
+ preCheck = "export TZ=CET; bin/Rscript -e 'sessionInfo()'";
+
+ enableParallelBuilding = true;
+
+ setupHook = ./setup-hook.sh;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.r-project.org/";
+ description = "Free software environment for statistical computing and graphics";
+ license = licenses.gpl2Plus;
+
+ longDescription = ''
+ GNU R is a language and environment for statistical computing and
+ graphics that provides a wide variety of statistical (linear and
+ nonlinear modelling, classical statistical tests, time-series
+ analysis, classification, clustering, ...) and graphical
+ techniques, and is highly extensible. One of R's strengths is the
+ ease with which well-designed publication-quality plots can be
+ produced, including mathematical symbols and formulae where
+ needed. R is an integrated suite of software facilities for data
+ manipulation, calculation and graphical display. It includes an
+ effective data handling and storage facility, a suite of operators
+ for calculations on arrays, in particular matrices, a large,
+ coherent, integrated collection of intermediate tools for data
+ analysis, graphical facilities for data analysis and display
+ either on-screen or on hardcopy, and a well-developed, simple and
+ effective programming language which includes conditionals, loops,
+ user-defined recursive functions and input and output facilities.
+ '';
+
+ platforms = platforms.all;
+ hydraPlatforms = platforms.linux;
+
+ maintainers = with maintainers; [ peti ] ++ teams.sage.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/fix-failing-test.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/fix-failing-test.patch
new file mode 100644
index 000000000000..5fb3b3b9c317
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/fix-failing-test.patch
@@ -0,0 +1,25 @@
+From e8f54bc562eb301d204b5f880614be58a2b39a2b Mon Sep 17 00:00:00 2001
+From: maechler <maechler@00db46b3-68df-0310-9c12-caf00c1e9a41>
+Date: Mon, 30 Mar 2020 19:15:59 +0000
+Subject: [PATCH] no longer fail in norm() check for broken OpenBLAS Lapack
+ 3.9.0
+
+git-svn-id: https://svn.r-project.org/R/trunk@78112 00db46b3-68df-0310-9c12-caf00c1e9a41
+---
+ tests/reg-tests-1d.R | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tests/reg-tests-1d.R b/tests/reg-tests-1d.R
+index 6b7de765a95..fafd6911e7a 100644
+--- a/tests/reg-tests-1d.R
++++ b/tests/reg-tests-1d.R
+@@ -3836,7 +3836,8 @@ stopifnot(is.na( norm(diag(c(1, NA)), "2") ))
+ ## norm(<matrix-w-NA>, "F")
+ (m <- cbind(0, c(NA, 0), 0:-1))
+ nTypes <- eval(formals(base::norm)$type) # "O" "I" "F" "M" "2"
+-stopifnot(is.na( print(vapply(nTypes, norm, 0., x = m)) )) # print(): show NA *or* NaN
++print( # stopifnot( -- for now, as Lapack is still broken in some OpenBLAS -- FIXME
++ is.na( print(vapply(nTypes, norm, 0., x = m)) )) # print(): show NA *or* NaN
+ ## "F" gave non-NA with LAPACK 3.9.0, before our patch in R-devel and R-patched
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/no-usr-local-search-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/no-usr-local-search-paths.patch
new file mode 100644
index 000000000000..6c7f6d4ee02a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/no-usr-local-search-paths.patch
@@ -0,0 +1,24 @@
+diff -ubr R-3.0.1-orig/configure R-3.0.1/configure
+--- R-3.0.1-orig/configure 2013-07-04 10:46:42.336133947 +0200
++++ R-3.0.1/configure 2013-07-04 10:46:17.181919960 +0200
+@@ -3800,13 +3800,13 @@
+ : ${LIBnn=$libnn}
+ ## We provide these defaults so that headers and libraries in
+ ## '/usr/local' are found (by the native tools, mostly).
+-if test -f "/sw/etc/fink.conf"; then
+- : ${CPPFLAGS="-I/sw/include -I/usr/local/include"}
+- : ${LDFLAGS="-L/sw/lib -L/usr/local/lib"}
+-else
+- : ${CPPFLAGS="-I/usr/local/include"}
+- : ${LDFLAGS="-L/usr/local/${LIBnn}"}
+-fi
++# if test -f "/sw/etc/fink.conf"; then
++# : ${CPPFLAGS="-I/sw/include -I/usr/local/include"}
++# : ${LDFLAGS="-L/sw/lib -L/usr/local/lib"}
++# else
++# : ${CPPFLAGS="-I/usr/local/include"}
++# : ${LDFLAGS="-L/usr/local/${LIBnn}"}
++# fi
+
+ ## take care not to override the command-line setting
+ if test "${libdir}" = '${exec_prefix}/lib'; then
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/setup-hook.sh
new file mode 100644
index 000000000000..6951e2a4b61b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/R/setup-hook.sh
@@ -0,0 +1,7 @@
+addRLibPath () {
+ if [[ -d "$1/library" ]]; then
+ addToSearchPath R_LIBS_SITE "$1/library"
+ fi
+}
+
+addEnvHooks "$targetOffset" addRLibPath
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/almonds/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/almonds/default.nix
new file mode 100644
index 000000000000..9edb0747b31e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/almonds/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, python3, fetchFromGitHub, ncurses }:
+
+with python3.pkgs; buildPythonApplication rec {
+ pname = "almonds";
+ version = "1.25b";
+
+ src = fetchFromGitHub {
+ owner = "Tenchi2xh";
+ repo = "Almonds";
+ rev = version;
+ sha256 = "0j8d8jizivnfx8lpc4w6sbqj5hq35nfz0vdg7ld80sc5cs7jr3ws";
+ };
+
+ nativeBuildInputs = [ pytest ];
+ buildInputs = [ ncurses ];
+ propagatedBuildInputs = [ pillow ];
+
+ checkPhase = "py.test";
+
+ meta = with stdenv.lib; {
+ description = "Terminal Mandelbrot fractal viewer";
+ homepage = "https://github.com/Tenchi2xh/Almonds";
+ license = licenses.mit;
+ maintainers = with maintainers; [ infinisil ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/bcal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/bcal/default.nix
new file mode 100644
index 000000000000..18b6e051b3f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/bcal/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, python3Packages, readline }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "bcal";
+ version = "1.9";
+
+ src = fetchFromGitHub {
+ owner = "jarun";
+ repo = "bcal";
+ rev = "v${version}";
+ sha256 = "0h6qi5rvzl6c6fsfdpdb3l4jcgip03l18i0b1x08z1y89i56y8mm";
+ };
+
+ nativeBuildInputs = [ python3Packages.pytest ];
+
+ buildInputs = [ readline ];
+
+ doCheck = true;
+ checkPhase = ''
+ python3 -m pytest test.py
+ '';
+
+ installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
+
+ meta = {
+ description = "Storage conversion and expression calculator";
+ homepage = "https://github.com/jarun/bcal";
+ license = licenses.gpl3;
+ platforms = [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/bliss/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/bliss/default.nix
new file mode 100644
index 000000000000..9ab90134aad4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/bliss/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, unzip, doxygen }:
+
+stdenv.mkDerivation rec {
+ pname = "bliss";
+ version = "0.73";
+
+ src = fetchurl {
+ url = "http://www.tcs.hut.fi/Software/bliss/${pname}-${version}.zip";
+ sha256 = "f57bf32804140cad58b1240b804e0dbd68f7e6bf67eba8e0c0fa3a62fd7f0f84";
+ };
+
+ patches = fetchurl {
+ url = "http://scip.zib.de/download/bugfixes/scip-5.0.1/bliss-0.73.patch";
+ sha256 = "815868d6586bcd49ff3c28e14ccb536d38b2661151088fe08187c13909c5dab0";
+ };
+
+ nativeBuildInputs = [ unzip doxygen ];
+
+ preBuild = ''
+ doxygen Doxyfile
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/doc/bliss $out/lib $out/include/bliss
+ mv bliss $out/bin
+ mv html/* COPYING* $out/share/doc/bliss
+ mv *.a $out/lib
+ mv *.h *.hh $out/include/bliss
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An open source tool for computing automorphism groups and canonical forms of graphs. It has both a command line user interface as well as C++ and C programming language APIs";
+ homepage = "http://www.tcs.hut.fi/Software/bliss/";
+ license = licenses.lgpl3;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/darwin.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/darwin.patch
new file mode 100644
index 000000000000..e8fa6a683f73
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/darwin.patch
@@ -0,0 +1,47 @@
+diff --git a/Makefile b/Makefile
+index c823f66e..65b90c5e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -32,9 +32,9 @@ SRC_DIRS := $(shell find * -type d -exec bash -c "find {} -maxdepth 1 \
+ LIBRARY_NAME := $(PROJECT)
+ LIB_BUILD_DIR := $(BUILD_DIR)/lib
+ STATIC_NAME := $(LIB_BUILD_DIR)/lib$(LIBRARY_NAME).a
+-DYNAMIC_VERSION_MAJOR := 1
+-DYNAMIC_VERSION_MINOR := 0
+-DYNAMIC_VERSION_REVISION := 0
++DYNAMIC_VERSION_MAJOR := 1
++DYNAMIC_VERSION_MINOR := 0
++DYNAMIC_VERSION_REVISION := 0
+ DYNAMIC_NAME_SHORT := lib$(LIBRARY_NAME).so
+ #DYNAMIC_SONAME_SHORT := $(DYNAMIC_NAME_SHORT).$(DYNAMIC_VERSION_MAJOR)
+ DYNAMIC_VERSIONED_NAME_SHORT := $(DYNAMIC_NAME_SHORT).$(DYNAMIC_VERSION_MAJOR).$(DYNAMIC_VERSION_MINOR).$(DYNAMIC_VERSION_REVISION)
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index c48255c8..cf4c580e 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -105,7 +105,6 @@ if(USE_OPENCV)
+ endif()
+
+ # ---[ BLAS
+-if(NOT APPLE)
+ set(BLAS "Atlas" CACHE STRING "Selected BLAS library")
+ set_property(CACHE BLAS PROPERTY STRINGS "Atlas;Open;MKL")
+
+@@ -123,17 +122,6 @@ if(NOT APPLE)
+ list(APPEND Caffe_LINKER_LIBS PUBLIC ${MKL_LIBRARIES})
+ list(APPEND Caffe_DEFINITIONS PUBLIC -DUSE_MKL)
+ endif()
+-elseif(APPLE)
+- find_package(vecLib REQUIRED)
+- list(APPEND Caffe_INCLUDE_DIRS PUBLIC ${vecLib_INCLUDE_DIR})
+- list(APPEND Caffe_LINKER_LIBS PUBLIC ${vecLib_LINKER_LIBS})
+-
+- if(VECLIB_FOUND)
+- if(NOT vecLib_INCLUDE_DIR MATCHES "^/System/Library/Frameworks/vecLib.framework.*")
+- list(APPEND Caffe_DEFINITIONS PUBLIC -DUSE_ACCELERATE)
+- endif()
+- endif()
+-endif()
+
+ # ---[ Python
+ if(BUILD_python)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/default.nix
new file mode 100644
index 000000000000..4a6a2dc6c7e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/default.nix
@@ -0,0 +1,142 @@
+{ config, stdenv, lib
+, fetchFromGitHub
+, fetchurl
+, cmake
+, boost
+, gflags
+, glog
+, hdf5-cpp
+, opencv3
+, protobuf
+, doxygen
+, blas
+, Accelerate, CoreGraphics, CoreVideo
+, lmdbSupport ? true, lmdb
+, leveldbSupport ? true, leveldb, snappy
+, cudaSupport ? config.cudaSupport or false, cudatoolkit
+, cudnnSupport ? cudaSupport, cudnn ? null
+, ncclSupport ? false, nccl ? null
+, pythonSupport ? false, python ? null, numpy ? null
+, substituteAll
+}:
+
+assert leveldbSupport -> (leveldb != null && snappy != null);
+assert cudnnSupport -> cudaSupport;
+assert ncclSupport -> cudaSupport;
+assert pythonSupport -> (python != null && numpy != null);
+
+let
+ toggle = bool: if bool then "ON" else "OFF";
+
+ test_model_weights = fetchurl {
+ url = "http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel";
+ sha256 = "472d4a06035497b180636d8a82667129960371375bd10fcb6df5c6c7631f25e0";
+ };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "caffe";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "BVLC";
+ repo = "caffe";
+ rev = version;
+ sha256 = "104jp3cm823i3cdph7hgsnj6l77ygbwsy35mdmzhmsi4jxprd9j3";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ cmake doxygen ];
+
+ cmakeFlags =
+ # It's important that caffe is passed the major and minor version only because that's what
+ # boost_python expects
+ [ (if pythonSupport then "-Dpython_version=${python.pythonVersion}" else "-DBUILD_python=OFF")
+ "-DBLAS=open"
+ ] ++ (if cudaSupport then [
+ "-DCUDA_ARCH_NAME=All"
+ "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
+ ] else [ "-DCPU_ONLY=ON" ])
+ ++ ["-DUSE_NCCL=${toggle ncclSupport}"]
+ ++ ["-DUSE_LEVELDB=${toggle leveldbSupport}"]
+ ++ ["-DUSE_LMDB=${toggle lmdbSupport}"];
+
+ buildInputs = [ boost gflags glog protobuf hdf5-cpp opencv3 blas ]
+ ++ lib.optional cudaSupport cudatoolkit
+ ++ lib.optional cudnnSupport cudnn
+ ++ lib.optional lmdbSupport lmdb
+ ++ lib.optional ncclSupport nccl
+ ++ lib.optionals leveldbSupport [ leveldb snappy ]
+ ++ lib.optionals pythonSupport [ python numpy ]
+ ++ lib.optionals stdenv.isDarwin [ Accelerate CoreGraphics CoreVideo ]
+ ;
+
+ propagatedBuildInputs = lib.optionals pythonSupport (
+ # requirements.txt
+ let pp = python.pkgs; in ([
+ pp.numpy pp.scipy pp.scikitimage pp.h5py
+ pp.matplotlib pp.ipython pp.networkx pp.nose
+ pp.pandas pp.dateutil pp.protobuf pp.gflags
+ pp.pyyaml pp.pillow pp.six
+ ] ++ lib.optional leveldbSupport pp.leveldb)
+ );
+
+ outputs = [ "bin" "out" ];
+ propagatedBuildOutputs = []; # otherwise propagates out -> bin cycle
+
+ patches = [
+ ./darwin.patch
+ ] ++ lib.optional pythonSupport (substituteAll {
+ src = ./python.patch;
+ inherit (python.sourceVersion) major minor; # Should be changed in case of PyPy
+ });
+
+ postPatch = lib.optionalString (cudaSupport && lib.versionAtLeast cudatoolkit.version "9.0") ''
+ # CUDA 9.0 doesn't support sm_20
+ sed -i 's,20 21(20) ,,' cmake/Cuda.cmake
+ '';
+
+ preConfigure = lib.optionalString pythonSupport ''
+ # We need this when building with Python bindings
+ export BOOST_LIBRARYDIR="${boost.out}/lib";
+ '';
+
+ postInstall = ''
+ # Internal static library.
+ rm $out/lib/libproto.a
+
+ # Install models
+ cp -a ../models $out/share/Caffe/models
+
+ moveToOutput "bin" "$bin"
+ '' + lib.optionalString pythonSupport ''
+ mkdir -p $out/${python.sitePackages}
+ mv $out/python/caffe $out/${python.sitePackages}
+ rm -rf $out/python
+ '';
+
+ doInstallCheck = false; # build takes more than 30 min otherwise
+ installCheckPhase = ''
+ model=bvlc_reference_caffenet
+ m_path="$out/share/Caffe/models/$model"
+ $bin/bin/caffe test \
+ -model "$m_path/deploy.prototxt" \
+ -solver "$m_path/solver.prototxt" \
+ -weights "${test_model_weights}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Deep learning framework";
+ longDescription = ''
+ Caffe is a deep learning framework made with expression, speed, and
+ modularity in mind. It is developed by the Berkeley Vision and Learning
+ Center (BVLC) and by community contributors.
+ '';
+ homepage = "http://caffe.berkeleyvision.org/";
+ maintainers = with maintainers; [ jb55 ];
+ license = licenses.bsd2;
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/python.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/python.patch
new file mode 100644
index 000000000000..dac5071aa08c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/caffe/python.patch
@@ -0,0 +1,70 @@
+commit b14ca23651d390fcae4a929dedc7c33a83453a66
+Author: Frederik Rietdijk <fridh@fridh.nl>
+Date: Sun Feb 17 08:41:27 2019 +0100
+
+ Find boost_pythonXX
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 08f56a33..0a04592a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -99,10 +99,10 @@ add_subdirectory(docs)
+ add_custom_target(lint COMMAND ${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/cmake/lint.cmake)
+
+ # ---[ pytest target
+-if(BUILD_python)
+- add_custom_target(pytest COMMAND python${python_version} -m unittest discover -s caffe/test WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/python )
+- add_dependencies(pytest pycaffe)
+-endif()
++# if(BUILD_python)
++# add_custom_target(pytest COMMAND python${python_version} -m unittest discover -s caffe/test WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/python )
++# add_dependencies(pytest pycaffe)
++# endif()
+
+ # ---[ uninstall target
+ configure_file(
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index 4a5bac47..be026d43 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -141,37 +141,14 @@ if(BUILD_python)
+ # use python3
+ find_package(PythonInterp 3.0)
+ find_package(PythonLibs 3.0)
+- find_package(NumPy 1.7.1)
+- # Find the matching boost python implementation
+- set(version ${PYTHONLIBS_VERSION_STRING})
+-
+- STRING( REGEX REPLACE "[^0-9]" "" boost_py_version ${version} )
+- find_package(Boost 1.46 COMPONENTS "python-py${boost_py_version}")
+- set(Boost_PYTHON_FOUND ${Boost_PYTHON-PY${boost_py_version}_FOUND})
+-
+- while(NOT "${version}" STREQUAL "" AND NOT Boost_PYTHON_FOUND)
+- STRING( REGEX REPLACE "([0-9.]+).[0-9]+" "\\1" version ${version} )
+-
+- STRING( REGEX REPLACE "[^0-9]" "" boost_py_version ${version} )
+- find_package(Boost 1.46 COMPONENTS "python-py${boost_py_version}")
+- set(Boost_PYTHON_FOUND ${Boost_PYTHON-PY${boost_py_version}_FOUND})
+-
+- STRING( REGEX MATCHALL "([0-9.]+).[0-9]+" has_more_version ${version} )
+- if("${has_more_version}" STREQUAL "")
+- break()
+- endif()
+- endwhile()
+- if(NOT Boost_PYTHON_FOUND)
+- find_package(Boost 1.46 COMPONENTS python)
+- endif()
+ else()
+ # disable Python 3 search
+ find_package(PythonInterp 2.7)
+ find_package(PythonLibs 2.7)
+- find_package(NumPy 1.7.1)
+- find_package(Boost 1.46 COMPONENTS python)
+ endif()
+- if(PYTHONLIBS_FOUND AND NUMPY_FOUND AND Boost_PYTHON_FOUND)
++ find_package(NumPy 1.7.1)
++ find_package(Boost 1.46 REQUIRED COMPONENTS python@major@@minor@)
++ if(PYTHONLIBS_FOUND AND NUMPY_FOUND AND Boost_PYTHON@major@@minor@_FOUND)
+ set(HAVE_PYTHON TRUE)
+ if(BUILD_python_layer)
+ list(APPEND Caffe_DEFINITIONS PRIVATE -DWITH_PYTHON_LAYER)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/calc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/calc/default.nix
new file mode 100644
index 000000000000..e770cff2da9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/calc/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, fetchurl, util-linux, makeWrapper
+, enableReadline ? true, readline, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "calc";
+ version = "2.12.7.2";
+
+ src = fetchurl {
+ urls = [
+ "https://github.com/lcn2/calc/releases/download/${version}/${pname}-${version}.tar.bz2"
+ "http://www.isthe.com/chongo/src/calc/${pname}-${version}.tar.bz2"
+ ];
+ sha256 = "147wmbajcxv6wp92j6pizq4plrr1sb7jirifr1477bx33hc49bsp";
+ };
+
+ patchPhase = ''
+ substituteInPlace Makefile \
+ --replace '-install_name ''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' \
+ --replace '-install_name ''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}'
+ '';
+
+ buildInputs = [ util-linux makeWrapper ]
+ ++ lib.optionals enableReadline [ readline ncurses ];
+
+ makeFlags = [
+ "T=$(out)"
+ "INCDIR="
+ "BINDIR=/bin"
+ "LIBDIR=/lib"
+ "CALC_SHAREDIR=/share/calc"
+ "CALC_INCDIR=/include"
+ "MANDIR=/share/man/man1"
+
+ # Handle LDFLAGS defaults in calc
+ "DEFAULT_LIB_INSTALL_PATH=$(out)/lib"
+ ] ++ lib.optionals enableReadline [
+ "READLINE_LIB=-lreadline"
+ "USE_READLINE=-DUSE_READLINE"
+ ];
+
+ meta = with lib; {
+ description = "C-style arbitrary precision calculator";
+ homepage = "http://www.isthe.com/chongo/tech/comp/calc/";
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ matthewbauer ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/calculix/calculix.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/calculix/calculix.patch
new file mode 100644
index 000000000000..2334d54711e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/calculix/calculix.patch
@@ -0,0 +1,22 @@
+diff -Naur a/ccx_2.17/src/Makefile b/ccx_2.17/src/Makefile
+--- a/ccx_2.17/src/Makefile 2020-07-23 21:41:38.507761972 +0200
++++ b/ccx_2.17/src/Makefile 2020-08-22 16:53:50.004938281 +0200
+@@ -18,15 +18,10 @@
+ OCCXC = $(SCCXC:.c=.o)
+ OCCXMAIN = $(SCCXMAIN:.c=.o)
+
+-DIR=../../../SPOOLES.2.2
++LIBS = -lpthread -lm -lc -lspooles -larpack -lblas -llapack
+
+-LIBS = \
+- $(DIR)/spooles.a \
+- ../../../ARPACK/libarpack_INTEL.a \
+- -lpthread -lm -lc
+-
+-ccx_2.17: $(OCCXMAIN) ccx_2.17.a $(LIBS)
+- ./date.pl; $(CC) $(CFLAGS) -c ccx_2.17.c; $(FC) -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
++ccx_2.17: $(OCCXMAIN) ccx_2.17.a
++ $(CC) $(CFLAGS) -c ccx_2.17.c; $(FC) -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
+
+ ccx_2.17.a: $(OCCXF) $(OCCXC)
+ ar vr $@ $?
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/calculix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/calculix/default.nix
new file mode 100644
index 000000000000..e37e9d0910c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/calculix/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, gfortran, arpack, spooles, blas, lapack }:
+
+stdenv.mkDerivation rec {
+ pname = "calculix";
+ version = "2.17";
+
+ src = fetchurl {
+ url = "http://www.dhondt.de/ccx_${version}.src.tar.bz2";
+ sha256 = "0l3fizxfdj2mpdp62wnk9v47q2yc3cy39fpsm629z7bjmba8lw6a";
+ };
+
+ nativeBuildInputs = [ gfortran ];
+
+ buildInputs = [ arpack spooles blas lapack ];
+
+ NIX_CFLAGS_COMPILE = "-I${spooles}/include/spooles";
+
+ patches = [
+ ./calculix.patch
+ ];
+
+ postPatch = ''
+ cd ccx*/src
+ '';
+
+ installPhase = ''
+ install -Dm0755 ccx_${version} $out/bin/ccx
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.calculix.de/";
+ description = "Three-dimensional structural finite element program";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ gebner ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/cbc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/cbc/default.nix
new file mode 100644
index 000000000000..b75f3d3f7868
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/cbc/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, zlib, bzip2 }:
+
+stdenv.mkDerivation rec {
+ pname = "cbc";
+ version = "2.10.3";
+
+ src = fetchurl {
+ url = "https://www.coin-or.org/download/source/Cbc/Cbc-${version}.tgz";
+ sha256 = "1zzcg40ky5v96s7br2hqlkqdspwrn43kf3757g6c35wl29bq6f5d";
+ };
+
+ configureFlags = [ "-C" ];
+
+ enableParallelBuilding = true;
+
+ hardeningDisable = [ "format" ];
+
+ buildInputs = [ zlib bzip2 ];
+
+ # FIXME: move share/coin/Data to a separate output?
+
+ meta = {
+ homepage = "https://projects.coin-or.org/Cbc";
+ license = lib.licenses.epl10;
+ maintainers = [ lib.maintainers.eelco ];
+ platforms = lib.platforms.linux ++ lib.platforms.darwin;
+ broken = stdenv.isAarch64; # Missing <immintrin.h> after 2.10.0
+ description = "A mixed integer programming solver";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/cemu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/cemu/default.nix
new file mode 100644
index 000000000000..b41135229dd7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/cemu/default.nix
@@ -0,0 +1,53 @@
+{ fetchFromGitHub
+, stdenv
+, mkDerivation
+, SDL2
+, libGL
+, libarchive
+, libusb-compat-0_1
+, qtbase
+, qmake
+, git
+, libpng_apng
+, pkgconfig
+}:
+
+mkDerivation rec {
+ pname = "CEmu";
+ version = "1.3";
+ src = fetchFromGitHub {
+ owner = "CE-Programming";
+ repo = "CEmu";
+ rev = "v${version}";
+ sha256 = "1wcdnzcqscawj6jfdj5wwmw9g9vsd6a1rx0rrramakxzf8b7g47r";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ qmake
+ git
+ pkgconfig
+ ];
+
+ buildInputs = [
+ SDL2
+ libGL
+ libarchive
+ libusb-compat-0_1
+ qtbase
+ libpng_apng
+ ];
+
+ qmakeFlags = [
+ "gui/qt"
+ ];
+
+ meta = with stdenv.lib; {
+ changelog = "https://github.com/CE-Programming/CEmu/releases/tag/v${version}";
+ description = "Third-party TI-84 Plus CE / TI-83 Premium CE emulator, focused on developer features";
+ homepage = "https://ce-programming.github.io/CEmu";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ luc65r ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/clp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/clp/default.nix
new file mode 100644
index 000000000000..97ef3dd7543f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/clp/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+ version = "1.17.6";
+ pname = "clp";
+ src = fetchurl {
+ url = "https://www.coin-or.org/download/source/Clp/Clp-${version}.tgz";
+ sha256 = "0ap1f0lxppa6pnbc4bg7ih7a96avwaki482nig8w5fr3vg9wvkzr";
+ };
+
+ propagatedBuildInputs = [ zlib ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ license = licenses.epl10;
+ homepage = "https://github.com/coin-or/Clp";
+ description = "An open-source linear programming solver written in C++";
+ platforms = platforms.darwin ++ [ "x86_64-linux" ];
+ maintainers = [ maintainers.vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/cntk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/cntk/default.nix
new file mode 100644
index 000000000000..401454a6b69b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/cntk/default.nix
@@ -0,0 +1,105 @@
+{ lib, stdenv, fetchgit, fetchFromGitHub, cmake
+, openblas, blas, lapack, opencv3, libzip, boost, protobuf, openmpi
+, onebitSGDSupport ? false
+, cudaSupport ? false, addOpenGLRunpath, cudatoolkit, nvidia_x11
+, cudnnSupport ? cudaSupport, cudnn
+}:
+
+assert cudnnSupport -> cudaSupport;
+assert blas.implementation == "openblas" && lapack.implementation == "openblas";
+
+let
+ # Old specific version required for CNTK.
+ cub = fetchFromGitHub {
+ owner = "NVlabs";
+ repo = "cub";
+ rev = "1.7.4";
+ sha256 = "0ksd5n1lxqhm5l5cd2lps4cszhjkf6gmzahaycs7nxb06qci8c66";
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "CNTK";
+ version = "2.7";
+
+ # Submodules
+ src = fetchgit {
+ url = "https://github.com/Microsoft/CNTK";
+ rev = "v${version}";
+ sha256 = "18l9k7s966a26ywcf7flqyhm61788pcb9fj3wk61jrmgkhy2pcns";
+ };
+
+ nativeBuildInputs = [ cmake ] ++ lib.optional cudaSupport addOpenGLRunpath;
+
+ # Force OpenMPI to use g++ in PATH.
+ OMPI_CXX = "g++";
+
+ buildInputs = [ openblas opencv3 libzip boost protobuf openmpi ]
+ ++ lib.optional cudaSupport cudatoolkit
+ ++ lib.optional cudnnSupport cudnn;
+
+ configureFlags = [
+ "--with-opencv=${opencv3}"
+ "--with-libzip=${libzip.dev}"
+ "--with-openblas=${openblas}"
+ "--with-boost=${boost.dev}"
+ "--with-protobuf=${protobuf}"
+ "--with-mpi=${openmpi}"
+ "--cuda=${if cudaSupport then "yes" else "no"}"
+ # FIXME
+ "--asgd=no"
+ ] ++ lib.optionals cudaSupport [
+ "--with-cuda=${cudatoolkit}"
+ "--with-gdk-include=${cudatoolkit}/include"
+ "--with-gdk-nvml-lib=${nvidia_x11}/lib"
+ "--with-cub=${cub}"
+ ] ++ lib.optional onebitSGDSupport "--1bitsgd=yes";
+
+ configurePhase = ''
+ sed -i \
+ -e 's,^GIT_STATUS=.*,GIT_STATUS=,' \
+ -e 's,^GIT_COMMIT=.*,GIT_COMMIT=v${version},' \
+ -e 's,^GIT_BRANCH=.*,GIT_BRANCH=v${version},' \
+ -e 's,^BUILDER=.*,BUILDER=nixbld,' \
+ -e 's,^BUILDMACHINE=.*,BUILDMACHINE=machine,' \
+ -e 's,^BUILDPATH=.*,BUILDPATH=/homeless-shelter,' \
+ -e '/git does not exist/d' \
+ Tools/generate_build_info
+
+ patchShebangs .
+ mkdir build
+ cd build
+ ${lib.optionalString cudnnSupport ''
+ mkdir cuda
+ ln -s ${cudnn}/include cuda
+ export configureFlags="$configureFlags --with-cudnn=$PWD"
+ ''}
+
+ ../configure $configureFlags
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ # Moving to make patchelf remove references later.
+ mv lib $out
+ cp bin/cntk $out/bin
+ '';
+
+ postFixup = lib.optionalString cudaSupport ''
+ for lib in $out/lib/*; do
+ addOpenGLRunpath "$lib"
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ # Newer cub is included with cudatoolkit now and it breaks the build.
+ # https://github.com/Microsoft/CNTK/issues/3191
+ broken = cudaSupport;
+ homepage = "https://github.com/Microsoft/CNTK";
+ description = "An open source deep-learning toolkit";
+ license = if onebitSGDSupport then licenses.unfreeRedistributable else licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/colpack/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/colpack/default.nix
new file mode 100644
index 000000000000..13a75ce4db2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/colpack/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, gettext }:
+
+stdenv.mkDerivation rec {
+
+ pname = "ColPack";
+ version = "1.0.10";
+
+ src = fetchFromGitHub {
+ owner = "CSCsw";
+ repo = pname;
+ rev = "v" + version;
+ sha256 = "1p05vry940mrjp6236c0z83yizmw9pk6ly2lb7d8rpb7j9h03glr";
+ };
+
+ buildInputs = [ autoconf automake gettext libtool ];
+
+ configurePhase = ''
+ autoreconf -vif
+ ./configure --prefix=$out --enable-openmp
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A package comprising of implementations of algorithms for
+ vertex coloring and derivative computation";
+ homepage = "http://cscapes.cs.purdue.edu/coloringpage/software.htm#functionalities";
+ license = licenses.lgpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/cplex/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/cplex/default.nix
new file mode 100644
index 000000000000..ec13f5252f13
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/cplex/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, makeWrapper, openjdk, gtk2, xorg, glibcLocales, releasePath ? null }:
+
+# To use this package, you need to download your own cplex installer from IBM
+# and override the releasePath attribute to point to the location of the file.
+#
+# Note: cplex creates an individual build for each license which screws
+# somewhat with the use of functions like requireFile as the hash will be
+# different for every user.
+
+stdenv.mkDerivation rec {
+ pname = "cplex";
+ version = "128";
+
+ src =
+ if releasePath == null then
+ throw ''
+ This nix expression requires that the cplex installer is already
+ downloaded to your machine. Get it from IBM:
+ https://developer.ibm.com/docloud/blog/2017/12/20/cplex-optimization-studio-12-8-now-available/
+
+ Set `cplex.releasePath = /path/to/download;` in your
+ ~/.config/nixpkgs/config.nix for `nix-*` commands, or
+ `config.cplex.releasePath = /path/to/download;` in your
+ `configuration.nix` for NixOS.
+ ''
+ else
+ releasePath;
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ openjdk gtk2 xorg.libXtst glibcLocales ];
+
+ unpackPhase = "cp $src $name";
+
+ patchPhase = ''
+ sed -i -e 's|/usr/bin/tr"|tr" |' $name
+ '';
+
+ buildPhase = ''
+ sh $name -i silent -DLICENSE_ACCEPTED=TRUE -DUSER_INSTALL_DIR=$out
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ ln -s $out/opl/bin/x86-64_linux/oplrun\
+ $out/opl/bin/x86-64_linux/oplrunjava\
+ $out/opl/oplide/oplide\
+ $out/cplex/bin/x86-64_linux/cplex\
+ $out/cpoptimizer/bin/x86-64_linux/cpoptimizer\
+ $out/bin
+ '';
+
+ fixupPhase =
+ let
+ libraryPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc gtk2 xorg.libXtst ];
+ in ''
+ interpreter=${stdenv.glibc}/lib/ld-linux-x86-64.so.2
+
+ for pgm in $out/opl/bin/x86-64_linux/oplrun $out/opl/bin/x86-64_linux/oplrunjava $out/opl/oplide/oplide;
+ do
+ patchelf --set-interpreter "$interpreter" $pgm;
+ wrapProgram $pgm \
+ --prefix LD_LIBRARY_PATH : $out/opl/bin/x86-64_linux:${libraryPath} \
+ --set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive;
+ done
+
+ for pgm in $out/cplex/bin/x86-64_linux/cplex $out/cpoptimizer/bin/x86-64_linux/cpoptimizer $out/opl/oplide/jre/bin/*;
+ do
+ if grep ELF $pgm > /dev/null;
+ then
+ patchelf --set-interpreter "$interpreter" $pgm;
+ fi
+ done
+ '';
+
+ passthru = {
+ libArch = "x86-64_linux";
+ libSuffix = "${version}0";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Optimization solver for mathematical programming";
+ homepage = "https://www.ibm.com/be-en/marketplace/ibm-ilog-cplex";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ bfortz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/csdp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/csdp/default.nix
new file mode 100644
index 000000000000..ef9d5e733ca7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/csdp/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchurl, blas, gfortran, lapack }:
+
+stdenv.mkDerivation {
+ name = "csdp-6.1.1";
+
+ src = fetchurl {
+ url = "https://www.coin-or.org/download/source/Csdp/Csdp-6.1.1.tgz";
+ sha256 = "1f9ql6cjy2gwiyc51ylfan24v1ca9sjajxkbhszlds1lqmma8n05";
+ };
+
+ buildInputs = [ blas gfortran.cc.lib lapack ];
+
+ postPatch = ''
+ substituteInPlace Makefile --replace /usr/local/bin $out/bin
+ '';
+
+ preInstall = ''
+ rm -f INSTALL
+ mkdir -p $out/bin
+ '';
+
+ meta = {
+ homepage = "https://projects.coin-or.org/Csdp";
+ license = lib.licenses.cpl10;
+ maintainers = [ lib.maintainers.roconnor ];
+ description = "A C Library for Semidefinite Programming";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/ecm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ecm/default.nix
new file mode 100644
index 000000000000..3e8e5879950b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ecm/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, gmp, m4 }:
+
+let
+ pname = "ecm";
+ version = "7.0.4";
+ name = "${pname}-${version}";
+in
+
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "http://gforge.inria.fr/frs/download.php/file/36224/ecm-${version}.tar.gz";
+ sha256 = "0hxs24c2m3mh0nq1zz63z3sb7dhy1rilg2s1igwwcb26x3pb7xqc";
+ };
+
+ # See https://trac.sagemath.org/ticket/19233
+ configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-asm-redc";
+
+ buildInputs = [ m4 gmp ];
+
+ doCheck = true;
+
+ meta = {
+ description = "Elliptic Curve Method for Integer Factorization";
+ license = stdenv.lib.licenses.gpl2Plus;
+ homepage = "http://ecm.gforge.inria.fr/";
+ maintainers = [ stdenv.lib.maintainers.roconnor ];
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/eukleides/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/eukleides/default.nix
new file mode 100644
index 000000000000..879ad96a9367
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/eukleides/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, bison, flex, texinfo, readline, texLive }:
+
+let
+ name = "eukleides";
+ version = "1.5.4";
+in
+stdenv.mkDerivation {
+ name = "${name}-${version}";
+
+ src = fetchurl {
+ url = "http://www.eukleides.org/files/${name}-${version}.tar.bz2";
+ sha256 = "0s8cyh75hdj89v6kpm3z24i48yzpkr8qf0cwxbs9ijxj1i38ki0q";
+ };
+
+ buildInputs = [bison flex texinfo readline texLive];
+
+ preConfigure = "sed -i 's/ginstall-info/install-info/g' doc/Makefile";
+ installPhase = "mkdir -p $out/bin ; make PREFIX=$out install";
+
+ meta = {
+ description = "Geometry Drawing Language";
+ homepage = "http://www.eukleides.org/";
+ license = stdenv.lib.licenses.gpl2;
+
+ longDescription = ''
+ Eukleides is a computer language devoted to elementary plane
+ geometry. It aims to be a fairly comprehensive system to create
+ geometric figures, either static or dynamic. Eukleides allows to
+ handle basic types of data: numbers and strings, as well as
+ geometric types of data: points, vectors, sets (of points), lines,
+ circles and conics.
+ '';
+
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.peti ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/form/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/form/default.nix
new file mode 100644
index 000000000000..091372792901
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/form/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, gmp, zlib }:
+
+stdenv.mkDerivation {
+ version = "4.2.1";
+ pname = "form";
+
+ # This tarball is released by author, it is not downloaded from tag, so can't use fetchFromGitHub
+ src = fetchurl {
+ url = "https://github.com/vermaseren/form/releases/download/v4.2.1/form-4.2.1.tar.gz";
+ sha256 = "0a0smc10gm85vxd85942n5azy88w5qs5avbqrw0lw0yb9injswpj";
+ };
+
+ buildInputs = [ gmp zlib ];
+
+ meta = with stdenv.lib; {
+ description = "The FORM project for symbolic manipulation of very big expressions";
+ homepage = "https://www.nikhef.nl/~form/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.veprbl ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/fricas/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/fricas/default.nix
new file mode 100644
index 000000000000..39ca53c47e6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/fricas/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
+
+let
+ version = "1.3.4";
+ name = "fricas-" + version;
+in
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/fricas/files/fricas/${version}/${name}-full.tar.bz2";
+ sha256 = "156k9az1623y5808j845c56z2nvvdrm48dzg1v0ivpplyl7vp57x";
+ };
+
+ buildInputs = [ sbcl libX11 libXpm libICE libSM libXt libXau libXdmcp ];
+
+ dontStrip = true;
+
+ meta = {
+ homepage = "http://fricas.sourceforge.net/";
+ description = "An advanced computer algebra system";
+ license = stdenv.lib.licenses.bsd3;
+
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.sprock ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/gap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gap/default.nix
new file mode 100644
index 000000000000..04a49becc973
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gap/default.nix
@@ -0,0 +1,185 @@
+{ stdenv
+, lib
+, fetchurl
+, fetchpatch
+, makeWrapper
+, readline
+, gmp
+# one of
+# - "minimal" (~400M):
+# Install the bare minimum of packages required by gap to start.
+# This is likely to break a lot of stuff. Do not expect upstream support with
+# this configuration.
+# - "standard" (~700M):
+# Install the "standard packages" which gap autoloads by default. These
+# packages are effectively considered a part of gap.
+# - "full" (~1.7G):
+# Install all available packages. This takes a lot of space.
+, packageSet ? "standard"
+# Kept for backwards compatibility. Overrides packageSet to "full".
+, keepAllPackages ? false
+}:
+let
+ # packages absolutely required for gap to start
+ # `*` represents the version where applicable
+ requiredPackages = [
+ "GAPDoc-*"
+ "primgrp-*"
+ "SmallGrp-*"
+ "transgrp"
+ ];
+ # packages autoloaded by default if available
+ autoloadedPackages = [
+ "atlasrep"
+ "autpgrp-*"
+ "alnuth-*"
+ "crisp-*"
+ "ctbllib"
+ "FactInt-*"
+ "fga"
+ "irredsol-*"
+ "laguna-*"
+ "polenta-*"
+ "polycyclic-*"
+ "resclasses-*"
+ "sophus-*"
+ "tomlib-*"
+ ];
+ keepAll = keepAllPackages || (packageSet == "full");
+ packagesToKeep = requiredPackages ++ lib.optionals (packageSet == "standard") autoloadedPackages;
+
+ # Generate bash script that removes all packages from the `pkg` subdirectory
+ # that are not on the whitelist. The whitelist consists of strings expected by
+ # `find`'s `-name`.
+ removeNonWhitelistedPkgs = whitelist: ''
+ find pkg -type d -maxdepth 1 -mindepth 1 \
+ '' + (lib.concatStringsSep "\n" (map (str: "-not -name '${str}' \\") whitelist)) + ''
+ -exec echo "Removing package {}" \; \
+ -exec rm -r '{}' \;
+ '';
+in
+stdenv.mkDerivation rec {
+ pname = "gap";
+ # https://www.gap-system.org/Releases/
+ version = "4.10.2";
+
+ src = fetchurl {
+ url = "https://files.gap-system.org/gap-${lib.versions.major version}.${lib.versions.minor version}/tar.bz2/gap-${version}.tar.bz2";
+ sha256 = "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94";
+ };
+
+ # remove all non-essential packages (which take up a lot of space)
+ preConfigure = lib.optionalString (!keepAll) (removeNonWhitelistedPkgs packagesToKeep) + ''
+ patchShebangs .
+ '';
+
+ buildInputs = [
+ readline
+ gmp
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ patches = [
+ # https://github.com/gap-system/gap/pull/3294
+ (fetchpatch {
+ name = "add-make-install-targets.patch";
+ url = "https://github.com/gap-system/gap/commit/3361c172e6c5ff3bb3f01ba9d6f1dd4ad42cea80.patch";
+ sha256 = "1kwp9qnfvmlbpf1c3rs6j5m2jz22rj7a4hb5x1gj9vkpiyn5pdyj";
+ })
+
+ # Fix for locale specific tests causing issues. Already upstream.
+ # Backport of https://github.com/gap-system/gap/pull/4022
+ # WHEN REMOVING: also remove the`rm tst/testinstall/strings.tst` line in
+ # `postPatch` below. That line is necessary since the patch is not intended
+ # for gap 4.10.
+ (fetchpatch {
+ name = "remove-locale-specific-tests.patch";
+ url = "https://github.com/gap-system/gap/commit/c18b0c4215b5212a2cc4f305e2d5b94ba716bee8.patch";
+ excludes = ["tst/testinstall/stringobj.tst"];
+ sha256 = "1mz5b4mbw2jdd1ypp5s0dy6pp0jsvwsxr2dm4kbkls20r1r192sc";
+ })
+ ];
+
+ postPatch = ''
+ # File not covered by the remove-locale-specific-tests.patch patch above.
+ rm tst/testinstall/strings.tst
+ '';
+
+ # "teststandard" is a superset of testinstall. It takes ~1h instead of ~1min.
+ # tests are run twice, once with all packages loaded and once without
+ # checkTarget = "teststandard";
+
+ doInstallCheck = true;
+ installCheckTarget = "check";
+
+ preInstallCheck = ''
+ # gap tests check that the home directory exists
+ export HOME="$TMP/gap-home"
+ mkdir -p "$HOME"
+
+ # make sure gap is in PATH
+ export PATH="$out/bin:$PATH"
+
+ # make sure we don't accidentally use the wrong gap binary
+ rm -r bin
+
+ # like the defaults the Makefile, but use gap from PATH instead of the
+ # one from builddir
+ installCheckFlagsArray+=(
+ "TESTGAP=gap --quitonbreak -b -m 100m -o 1g -q -x 80 -r -A"
+ "TESTGAPauto=gap --quitonbreak -b -m 100m -o 1g -q -x 80 -r"
+ )
+ '';
+
+ postBuild = ''
+ pushd pkg
+ bash ../bin/BuildPackages.sh
+ popd
+ '';
+
+ installTargets = [
+ "install-libgap"
+ "install-headers"
+ ];
+
+ # full `make install` is not yet implemented, just for libgap and headers
+ postInstall = ''
+ # Install config.h, which is not currently handled by `make install-headers`
+ cp gen/config.h "$out/include/gap"
+
+ mkdir -p "$out/bin" "$out/share/gap/"
+
+ mkdir -p "$out/share/gap"
+ echo "Copying files to target directory"
+ cp -ar . "$out/share/gap/build-dir"
+
+ makeWrapper "$out/share/gap/build-dir/bin/gap.sh" "$out/bin/gap" \
+ --set GAP_DIR $out/share/gap/build-dir
+ '';
+
+ preFixup = ''
+ # patchelf won't strip references to the build dir if it still exists
+ rm -rf pkg
+ '';
+
+ meta = with lib; {
+ description = "Computational discrete algebra system";
+ maintainers = with maintainers;
+ [
+ raskin
+ chrisjefferson
+ timokau
+ ];
+ platforms = platforms.all;
+ broken = stdenv.isDarwin;
+ # keeping all packages increases the package size considerably, which is
+ # why a local build is preferable in that situation. The timeframe is
+ # reasonable and that way the binary cache doesn't get overloaded.
+ hydraPlatforms = lib.optionals (!keepAllPackages) meta.platforms;
+ license = licenses.gpl2;
+ homepage = "https://www.gap-system.org";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/geogebra/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
new file mode 100644
index 000000000000..a6950ad3451c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
@@ -0,0 +1,89 @@
+{ stdenv, fetchurl, jre, makeDesktopItem, makeWrapper, unzip, language ? "en_US" }:
+let
+ pname = "geogebra";
+ version = "5-0-609-0";
+
+ srcIcon = fetchurl {
+ url = "http://static.geogebra.org/images/geogebra-logo.svg";
+ sha256 = "01sy7ggfvck350hwv0cla9ynrvghvssqm3c59x4q5lwsxjsxdpjm";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "geogebra";
+ exec = "geogebra";
+ icon = "geogebra";
+ desktopName = "Geogebra";
+ genericName = "Geogebra";
+ comment = meta.description;
+ categories = "Education;Science;Math;";
+ mimeType = "application/vnd.geogebra.file;application/vnd.geogebra.tool;";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Dynamic mathematics software with graphics, algebra and spreadsheets";
+ longDescription = ''
+ Dynamic mathematics software for all levels of education that brings
+ together geometry, algebra, spreadsheets, graphing, statistics and
+ calculus in one easy-to-use package.
+ '';
+ homepage = "https://www.geogebra.org/";
+ maintainers = with maintainers; [ ma27 ];
+ license = with licenses; [ gpl3 cc-by-nc-sa-30 geogebra ];
+ platforms = with platforms; linux ++ darwin;
+ hydraPlatforms = [];
+ };
+
+ linuxPkg = stdenv.mkDerivation {
+ inherit pname version meta srcIcon desktopItem;
+
+ preferLocalBuild = true;
+
+ src = fetchurl {
+ urls = [
+ "https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
+ "http://web.archive.org/web/20201022200454/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
+ ];
+ sha256 = "0xbhg8hm3dqm3qkraj48pqwslrnjyxpq9mcgylr2m8i1gmqw7xwf";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ install -D geogebra/* -t "$out/libexec/geogebra/"
+
+ makeWrapper "$out/libexec/geogebra/geogebra" "$out/bin/geogebra" \
+ --set JAVACMD "${jre}/bin/java" \
+ --set GG_PATH "$out/libexec/geogebra" \
+ --add-flags "--language=${language}"
+
+ install -Dm644 "${desktopItem}/share/applications/"* \
+ -t $out/share/applications/
+
+ install -Dm644 "${srcIcon}" \
+ "$out/share/icons/hicolor/scalable/apps/geogebra.svg"
+ '';
+ };
+
+ darwinPkg = stdenv.mkDerivation {
+ inherit pname version meta;
+
+ preferLocalBuild = true;
+
+ src = fetchurl {
+ url = "https://download.geogebra.org/installers/5.0/GeoGebra-MacOS-Installer-withJava-${version}.zip";
+ sha256 = "16fgqwxz31cfmia0pyzpk05aqzrqr11sjbw37q9zb3xfh3p1r4gz";
+ };
+
+ dontUnpack = true;
+
+ nativeBuildInputs = [ unzip ];
+
+ installPhase = ''
+ install -dm755 $out/Applications
+ unzip $src -d $out/Applications
+ '';
+ };
+in
+if stdenv.isDarwin
+then darwinPkg
+else linuxPkg
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
new file mode 100644
index 000000000000..7bd582648937
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -0,0 +1,70 @@
+{ stdenv, unzip, fetchurl, electron_6, makeWrapper, geogebra }:
+let
+ pname = "geogebra";
+ version = "6-0-609-0";
+
+ srcIcon = geogebra.srcIcon;
+ desktopItem = geogebra.desktopItem;
+
+ meta = with stdenv.lib; geogebra.meta // {
+ license = licenses.geogebra;
+ maintainers = with maintainers; [ voidless ];
+ platforms = with platforms; linux ++ darwin;
+ };
+
+ linuxPkg = stdenv.mkDerivation {
+ inherit pname version meta;
+
+ src = fetchurl {
+ urls = [
+ "https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+ "https://web.archive.org/web/20201022200156/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+ ];
+ sha256 = "0rzcbq587x8827g9v03awa9hz27vyfjc0cz45ymbchqp31lsx49b";
+ };
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ nativeBuildInputs = [
+ unzip
+ makeWrapper
+ ];
+
+ unpackPhase = ''
+ unzip $src
+ '';
+
+ installPhase = ''
+ mkdir -p $out/libexec/geogebra/ $out/bin
+ cp -r GeoGebra-linux-x64/{resources,locales} "$out/"
+ makeWrapper ${stdenv.lib.getBin electron_6}/bin/electron $out/bin/geogebra --add-flags "$out/resources/app"
+ install -Dm644 "${desktopItem}/share/applications/"* \
+ -t $out/share/applications/
+
+ install -Dm644 "${srcIcon}" \
+ "$out/share/icons/hicolor/scalable/apps/geogebra.svg"
+ '';
+ };
+
+ darwinPkg = stdenv.mkDerivation {
+ inherit pname version meta;
+
+ src = fetchurl {
+ url = "https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip";
+ sha256 = "0275869zgwbl1qjj593q6629hnxbwk9c15rkm29a3lh10pinb099";
+ };
+
+ dontUnpack = true;
+
+ nativeBuildInputs = [ unzip ];
+
+ installPhase = ''
+ install -dm755 $out/Applications
+ unzip $src -d $out/Applications
+ '';
+ };
+in
+if stdenv.isDarwin
+then darwinPkg
+else linuxPkg
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/getdp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/getdp/default.nix
new file mode 100644
index 000000000000..ae93e89f1416
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/getdp/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, cmake, gfortran, blas, lapack, openmpi, petsc, python3 }:
+
+stdenv.mkDerivation rec {
+ name = "getdp-${version}";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "http://getdp.info/src/getdp-${version}-source.tgz";
+ sha256 = "1pfviy2bw8z5y6c15czvlvyjjg9pvpgrj9fr54xfi2gmvs7zkgpf";
+ };
+
+ nativeBuildInputs = [ cmake gfortran ];
+ buildInputs = [ blas lapack openmpi petsc python3 ];
+
+ meta = with stdenv.lib; {
+ description = "A General Environment for the Treatment of Discrete Problems";
+ longDescription = ''
+ GetDP is a free finite element solver using mixed elements to discretize
+ de Rham-type complexes in one, two and three dimensions. The main
+ feature of GetDP is the closeness between the input data defining
+ discrete problems (written by the user in ASCII data files) and the
+ symbolic mathematical expressions of these problems.
+ '';
+ homepage = "http://getdp.info/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ wucke13 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/gfan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gfan/default.nix
new file mode 100644
index 000000000000..7e2a4625d301
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gfan/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, gmp, mpir, cddlib}:
+stdenv.mkDerivation rec {
+ pname = "gfan";
+ version = "0.6.2";
+
+ src = fetchurl {
+ url = "http://home.math.au.dk/jensen/software/gfan/gfan${version}.tar.gz";
+ sha256 = "02pihqb1lb76a0xbfwjzs1cd6ay3ldfxsm8dvsbl6qs3vkjxax56";
+ };
+
+ patches = [
+ ./gfan-0.6.2-cddlib-prefix.patch
+ ];
+
+ postPatch = stdenv.lib.optionalString stdenv.cc.isClang ''
+ substituteInPlace Makefile --replace "-fno-guess-branch-probability" ""
+ '';
+
+ buildFlags = [ "CC=cc" "CXX=c++" ];
+ installFlags = [ ''PREFIX=$(out)'' ];
+ buildInputs = [ gmp mpir cddlib ];
+
+ meta = {
+ inherit version;
+ description = ''A software package for computing Gröbner fans and tropical varieties'';
+ license = stdenv.lib.licenses.gpl2 ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.unix;
+ homepage = "http://home.math.au.dk/jensen/software/gfan/gfan.html";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/gfan/gfan-0.6.2-cddlib-prefix.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gfan/gfan-0.6.2-cddlib-prefix.patch
new file mode 100644
index 000000000000..8a96a991cf75
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gfan/gfan-0.6.2-cddlib-prefix.patch
@@ -0,0 +1,55 @@
+diff -ru gfan0.6.2.orig/src/app_librarytest.cpp gfan0.6.2/src/app_librarytest.cpp
+--- gfan0.6.2.orig/src/app_librarytest.cpp 2020-10-19 08:41:27.981863500 +0900
++++ gfan0.6.2/src/app_librarytest.cpp 2020-10-19 08:42:44.551863500 +0900
+@@ -12,8 +12,8 @@
+ #include "setoper.h"
+ #include "cdd.h"
+ #else
+-#include "cdd/setoper.h"
+-#include "cdd/cdd.h"
++#include "cddlib/setoper.h"
++#include "cddlib/cdd.h"
+ #endif
+ #include <iostream>
+ #include <fstream>
+diff -ru gfan0.6.2.orig/src/gfanlib_zcone.cpp gfan0.6.2/src/gfanlib_zcone.cpp
+--- gfan0.6.2.orig/src/gfanlib_zcone.cpp 2020-10-19 08:41:27.981863500 +0900
++++ gfan0.6.2/src/gfanlib_zcone.cpp 2020-10-19 08:42:44.571863500 +0900
+@@ -16,8 +16,8 @@
+ #include "setoper.h"
+ #include "cdd.h"
+ #else
+-#include "cdd/setoper.h"
+-#include "cdd/cdd.h"
++#include "cddlib/setoper.h"
++#include "cddlib/cdd.h"
+ #endif
+ //}
+
+@@ -52,8 +52,8 @@
+ "dd_free_global_constants()\n"
+ "in your deinitialisation code (only available for cddlib version>=094d).\n"
+ "This requires the header includes:\n"
+- "#include \"cdd/setoper.h\"\n"
+- "#include \"cdd/cdd.h\"\n"
++ "#include \"cddlib/setoper.h\"\n"
++ "#include \"cddlib/cdd.h\"\n"
+ "\n"
+ "Alternatively, you may call gfan:initializeCddlibIfRequired() and deinitializeCddlibIfRequired()\n"
+ "if gfanlib is the only code using cddlib. If at some point cddlib is no longer required by gfanlib\n"
+diff -ru gfan0.6.2.orig/src/lp_cdd.cpp gfan0.6.2/src/lp_cdd.cpp
+--- gfan0.6.2.orig/src/lp_cdd.cpp 2020-10-19 08:41:27.991863500 +0900
++++ gfan0.6.2/src/lp_cdd.cpp 2020-10-19 08:42:44.571863500 +0900
+@@ -5,9 +5,9 @@
+ #include "cdd.h"
+ #include "cdd_f.h"
+ #else
+-#include "cdd/setoper.h"
+-#include "cdd/cdd.h"
+-#include "cdd/cdd_f.h"
++#include "cddlib/setoper.h"
++#include "cddlib/cdd.h"
++#include "cddlib/cdd_f.h"
+ #endif
+ //}
+ #include "termorder.h"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/giac/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/giac/default.nix
new file mode 100644
index 000000000000..ea9c921f19e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/giac/default.nix
@@ -0,0 +1,110 @@
+{ stdenv, lib, fetchurl, fetchpatch, texlive, bison, flex, lapack, blas
+, gmp, mpfr, pari, ntl, gsl, mpfi, ecm, glpk, nauty
+, readline, gettext, libpng, libao, gfortran, perl
+, enableGUI ? false, libGL ? null, libGLU ? null, xorg ? null, fltk ? null
+}:
+
+assert enableGUI -> libGLU != null && libGL != null && xorg != null && fltk != null;
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+stdenv.mkDerivation rec {
+ pname = "giac${lib.optionalString enableGUI "-with-xcas"}";
+ version = "1.5.0-21"; # TODO try to remove preCheck phase on upgrade
+
+ src = fetchurl {
+ url = "https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac_${version}.tar.gz";
+ sha256 = "1b9khiv0mk2xzw1rblm2jy6qsf8y6f9k7qy15sxpb21d72hzzbl2";
+ };
+
+ patches = stdenv.lib.optionals (!enableGUI) [
+ # when enableGui is false, giac is compiled without fltk. That means some
+ # outputs differ in the make check. Patch around this:
+ (fetchpatch {
+ url = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/nofltk-check.patch?id=7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26";
+ sha256 = "0xkmfc028vg5w6va04gp2x2iv31n8v4shd6vbyvk4blzgfmpj2cw";
+ })
+ ];
+
+ postPatch = ''
+ for i in doc/*/Makefile*; do
+ substituteInPlace "$i" --replace "/bin/cp" "cp";
+ done;
+ '';
+
+ nativeBuildInputs = [
+ texlive.combined.scheme-small bison flex
+ ];
+
+ # perl is only needed for patchShebangs fixup.
+ buildInputs = [
+ gmp mpfr pari ntl gsl blas mpfi glpk nauty
+ readline gettext libpng libao perl ecm
+ # gfortran.cc default output contains static libraries compiled without -fPIC
+ # we want libgfortran.so.3 instead
+ (stdenv.lib.getLib gfortran.cc)
+ lapack blas
+ ] ++ stdenv.lib.optionals enableGUI [
+ libGL libGLU fltk xorg.libX11
+ ];
+
+ /* fixes:
+ configure:16211: checking for main in -lntl
+ configure:16230: g++ -o conftest -g -O2 conftest.cpp -lntl -llapack -lblas -lgfortran -ldl -lpng16 -lm -lmpfi -lmpfr -lgmp >&5
+ /nix/store/y9c1v4x7y39j2rfbg17agjwqdzxpsn18-ntl-11.3.2/lib/libntl.so: undefined reference to `pthread_key_create'
+ */
+ NIX_CFLAGS_LINK="-lpthread";
+
+ # xcas Phys and Turtle menus are broken with split outputs
+ # and interactive use is likely to need docs
+ outputs = [ "out" ] ++ stdenv.lib.optional (!enableGUI) "doc";
+
+ doCheck = true;
+ preCheck = ''
+ # One test in this file fails. That test just tests a part of the pari
+ # interface that isn't actually used in giac. Of course it would be better
+ # to only remove that one test, but that would require a patch.
+ # Removing the whole test set should be good enough for now.
+ # Upstream report: https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=4&t=2102#p10326
+ echo > check/chk_fhan11
+ '';
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--enable-gc" "--enable-png" "--enable-gsl" "--enable-lapack"
+ "--enable-pari" "--enable-ntl" "--enable-gmpxx" # "--enable-cocoa"
+ "--enable-ao" "--enable-ecm" "--enable-glpk"
+ ] ++ stdenv.lib.optionals enableGUI [
+ "--enable-gui" "--with-x"
+ ];
+
+ postInstall = ''
+ # example Makefiles contain the full path to some commands
+ # notably texlive, and we don't want texlive to become a runtime
+ # dependency
+ for file in $(find $out -name Makefile) ; do
+ sed -i "s@/nix/store/[^/]*/bin/@@" "$file" ;
+ done;
+
+ # reference cycle
+ rm "$out/share/giac/doc/el/"{casinter,tutoriel}/Makefile
+
+ if [ -n "$doc" ]; then
+ mkdir -p "$doc/share/giac"
+ mv "$out/share/giac/doc" "$doc/share/giac"
+ mv "$out/share/giac/examples" "$doc/share/giac"
+ fi
+ '' + stdenv.lib.optionalString (!enableGUI) ''
+ for i in pixmaps application-registry applications icons; do
+ rm -r "$out/share/$i";
+ done;
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A free computer algebra system (CAS)";
+ homepage = "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ (optionals (!enableGUI) platforms.darwin);
+ maintainers = [ maintainers.symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/ginac/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ginac/default.nix
new file mode 100644
index 000000000000..3c129e8033bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ginac/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, cln, pkgconfig, readline, gmp, python }:
+
+stdenv.mkDerivation rec {
+ name = "ginac-1.8.0";
+
+ src = fetchurl {
+ url = "${meta.homepage}/${name}.tar.bz2";
+ sha256 = "0l9byzfxq3f9az5pcdldnl95ws8mpirkqky46f973mvxi5541d24";
+ };
+
+ propagatedBuildInputs = [ cln ];
+
+ buildInputs = [ readline ] ++ stdenv.lib.optional stdenv.isDarwin gmp;
+
+ nativeBuildInputs = [ pkgconfig python ];
+
+ preConfigure = "patchShebangs ginsh";
+
+ configureFlags = [ "--disable-rpath" ];
+
+ meta = with stdenv.lib; {
+ description = "GiNaC is Not a CAS";
+ homepage = "http://www.ginac.de/";
+ maintainers = with maintainers; [ lovek323 ];
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/glsurf/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
new file mode 100644
index 000000000000..09d0d5241687
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, ocamlPackages, libGLU, libGL, freeglut
+, libmysqlclient, mpfr, gmp, libtiff, libjpeg, libpng, giflib
+}:
+
+stdenv.mkDerivation {
+ name = "glsurf-3.3.1";
+
+ src = fetchurl {
+ url = "https://raffalli.eu/~christophe/glsurf/glsurf-3.3.1.tar.gz";
+ sha256 = "0w8xxfnw2snflz8wdr2ca9f5g91w5vbyp1hwlx1v7vg83d4bwqs7";
+ };
+
+ buildInputs = [ freeglut libGLU libGL libmysqlclient mpfr gmp
+ libtiff libjpeg libpng giflib ]
+ ++ (with ocamlPackages; [
+ ocaml findlib ocaml_mysql lablgl camlimages_4_0 mlgmpidl
+ ]);
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/doc/glsurf
+ cp ./src/glsurf.opt $out/bin/glsurf
+ cp ./doc/doc.pdf $out/share/doc/glsurf
+ cp -r ./examples $out/share/doc/glsurf
+ '';
+
+ meta = {
+ homepage = "https://raffalli.eu/~christophe/glsurf/";
+ description = "A program to draw implicit surfaces and curves";
+ license = stdenv.lib.licenses.lgpl21;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/gmsh/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
new file mode 100644
index 000000000000..1b6dc2ae0076
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, cmake, blas, lapack, gfortran, gmm, fltk, libjpeg
+, zlib, libGL, libGLU, xorg, opencascade-occt }:
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+stdenv.mkDerivation rec {
+ pname = "gmsh";
+ version = "4.7.1";
+
+ src = fetchurl {
+ url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
+ sha256 = "0shwi41van3k0z6rnpl3sz5nh46xbyyljwfpcp8pwxbc26aw5169";
+ };
+
+ buildInputs = [ blas lapack gmm fltk libjpeg zlib libGLU libGL
+ libGLU xorg.libXrender xorg.libXcursor xorg.libXfixes xorg.libXext
+ xorg.libXft xorg.libXinerama xorg.libX11 xorg.libSM xorg.libICE
+ opencascade-occt
+ ];
+
+ nativeBuildInputs = [ cmake gfortran ];
+
+ meta = {
+ description = "A three-dimensional finite element mesh generator";
+ homepage = "http://gmsh.info/";
+ platforms = [ "x86_64-linux" ];
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/gretl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gretl/default.nix
new file mode 100644
index 000000000000..7d77453cbab0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gretl/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, curl, fftw, gmp, gnuplot, gtk3, gtksourceview3, json-glib
+, lapack, libxml2, mpfr, openblas, pkg-config, readline }:
+
+stdenv.mkDerivation rec {
+ pname = "gretl";
+ version = "2020e";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gretl/${pname}-${version}.tar.xz";
+ sha256 = "105y5hkzgyvad6wc3y7nn327bvrsch6jp03ckkn0w0hpnhiywzx7";
+ };
+
+ buildInputs = [
+ curl
+ fftw
+ gmp
+ gnuplot
+ gtk3
+ gtksourceview3
+ json-glib
+ lapack
+ libxml2
+ mpfr
+ openblas
+ readline
+ ];
+
+ nativeBuildInputs = [ pkg-config ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A software package for econometric analysis";
+ longDescription = ''
+ gretl is a cross-platform software package for econometric analysis,
+ written in the C programming language.
+ '';
+ homepage = "http://gretl.sourceforge.net";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ dmrauh ];
+ platforms = with platforms; all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/gurobi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gurobi/default.nix
new file mode 100644
index 000000000000..1aa7bce07c5d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/gurobi/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, lib, fetchurl, autoPatchelfHook, python }:
+
+let
+ majorVersion = "8.1";
+in stdenv.mkDerivation rec {
+ pname = "gurobi";
+ version = "${majorVersion}.0";
+
+ src = with stdenv.lib; fetchurl {
+ url = "http://packages.gurobi.com/${versions.majorMinor version}/gurobi${version}_linux64.tar.gz";
+ sha256 = "1yjqbzqnq4jjkjm616d36bgd3rmqr0a1ii17n0prpdjzmdlq63dz";
+ };
+
+ sourceRoot = "gurobi${builtins.replaceStrings ["."] [""] version}/linux64";
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+ buildInputs = [ (python.withPackages (ps: [ ps.gurobipy ])) ];
+
+ buildPhase = ''
+ cd src/build
+ make
+ cd ../..
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/* $out/bin/
+ rm $out/bin/gurobi.env
+ rm $out/bin/gurobi.sh
+ rm $out/bin/python2.7
+
+ cp lib/gurobi.py $out/bin/gurobi.sh
+
+ mkdir -p $out/include
+ cp include/gurobi*.h $out/include/
+
+ mkdir -p $out/lib
+ cp lib/*.jar $out/lib/
+ cp lib/libGurobiJni*.so $out/lib/
+ cp lib/libgurobi*.so* $out/lib/
+ cp lib/libgurobi*.a $out/lib/
+ cp src/build/*.a $out/lib/
+
+ mkdir -p $out/share/java
+ ln -s $out/lib/gurobi.jar $out/share/java/
+ ln -s $out/lib/gurobi-javadoc.jar $out/share/java/
+ '';
+
+ passthru.libSuffix = lib.replaceStrings ["."] [""] majorVersion;
+
+ meta = with stdenv.lib; {
+ description = "Optimization solver for mathematical programming";
+ homepage = "https://www.gurobi.com";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/hmetis/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/hmetis/default.nix
new file mode 100644
index 000000000000..b5e99a8dd75b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/hmetis/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, ghostscript }:
+
+stdenv.mkDerivation rec {
+ pname = "hmetis";
+ version = "1.5";
+
+ src = fetchurl {
+ url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/hmetis/hmetis-${version}-linux.tar.gz";
+ sha256 = "e835a098c046e9c26cecb8addfea4d18ff25214e49585ffd87038e72819be7e1";
+ };
+
+ nativeBuildInputs = [ ghostscript ];
+
+ binaryFiles = "hmetis khmetis shmetis";
+
+ patchPhase = ''
+ for binaryfile in $binaryFiles; do
+ patchelf \
+ --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 \
+ --set-rpath ${stdenv.glibc}/lib \
+ $binaryfile
+ done
+ '';
+
+ buildPhase = ''
+ gs -sOutputFile=manual.pdf -sDEVICE=pdfwrite -SNOPAUSE -dBATCH manual.ps
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/doc/hmetis $out/lib
+ mv $binaryFiles $out/bin
+ mv manual.pdf $out/share/doc/hmetis
+ mv libhmetis.a $out/lib
+ '';
+
+ meta = with stdenv.lib; {
+ description = "hMETIS is a set of programs for partitioning hypergraphs";
+ homepage = "http://glaros.dtc.umn.edu/gkhome/metis/hmetis/overview";
+ license = licenses.unfree;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/jags/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/jags/default.nix
new file mode 100644
index 000000000000..122c62888476
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/jags/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, gfortran, blas, lapack}:
+
+stdenv.mkDerivation rec {
+ name = "JAGS-4.3.0";
+ src = fetchurl {
+ url = "mirror://sourceforge/mcmc-jags/${name}.tar.gz";
+ sha256 = "1z3icccg2ic56vmhyrpinlsvpq7kcaflk1731rgpvz9bk1bxvica";
+ };
+ buildInputs = [gfortran blas lapack];
+ configureFlags = [ "--with-blas=-lblas" "--with-lapack=-llapack" ];
+
+ meta = with stdenv.lib; {
+ description = "Just Another Gibbs Sampler";
+ license = licenses.gpl2;
+ homepage = "http://mcmc-jags.sourceforge.net";
+ maintainers = [ maintainers.andres ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
new file mode 100644
index 000000000000..673c28ffa77f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+
+ pname = "lp_solve";
+ version = "5.5.2.5";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/lpsolve/lpsolve/${version}/lp_solve_${version}_source.tar.gz";
+ sha256 = "12pj1idjz31r7c2mb5w03vy1cmvycvbkx9z29s40qdmkp1i7q6i0";
+ };
+
+ patches = [ ./isnan.patch ];
+
+ buildCommand = ''
+ . $stdenv/setup
+ tar xvfz $src
+ (
+ cd lp_solve*
+ eval patchPhase
+ )
+ (
+ cd lp_solve*/lpsolve55
+ bash ccc
+ mkdir -pv $out/lib
+ find bin -type f -exec cp -v "{}" $out/lib \;
+ )
+ (
+ cd lp_solve*/lp_solve
+ bash ccc
+ mkdir -pv $out/bin
+ find bin -type f -exec cp -v "{}" $out/bin \;
+ )
+ (
+ mkdir -pv $out/include
+ cp -v lp_solve*/*.h $out/include
+ )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Mixed Integer Linear Programming (MILP) solver";
+ homepage = "http://lpsolve.sourceforge.net";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ smironov ];
+ platforms = platforms.unix;
+ };
+
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/lp_solve/isnan.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/lp_solve/isnan.patch
new file mode 100644
index 000000000000..bc1983d4423d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/lp_solve/isnan.patch
@@ -0,0 +1,13 @@
+diff -u a/lp_lib.h b/lp_lib.h
+--- a/lp_lib.h 2016-05-04 19:45:15.753143720 +0900
++++ b/lp_lib.h 2016-05-04 19:53:59.536920722 +0900
+@@ -59,9 +59,6 @@
+ # if defined _WIN32 && !defined __GNUC__
+ # define isnan _isnan
+ # endif
+-#if defined NOISNAN
+-# define isnan(x) FALSE
+-#endif
+
+ #define SETMASK(variable, mask) variable |= mask
+ #define CLEARMASK(variable, mask) variable &= ~(mask)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/lrcalc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/lrcalc/default.nix
new file mode 100644
index 000000000000..ddd470e621a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/lrcalc/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromBitbucket
+, fetchpatch
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.2";
+ pname = "lrcalc";
+
+ src = fetchFromBitbucket {
+ owner = "asbuch";
+ repo = "lrcalc";
+ rev = "lrcalc-${version}";
+ sha256 = "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss";
+ };
+
+ doCheck = true;
+
+ nativeBuildInputs = [
+ autoreconfHook
+ ];
+
+ patches = [
+ # Fix include syntax:
+ # For private includes, use `#include "..."` instead of `#include <...>`
+ (fetchpatch {
+ url = "https://bitbucket.org/asbuch/lrcalc/commits/226981a0/raw/";
+ sha256 = "02kaqx5s3l642rhh28kn2wg9wr098vzpknxyl4pv627lqa3lv9vm";
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Littlewood-Richardson calculator";
+ homepage = "http://math.rutgers.edu/~asbuch/lrcalc/";
+ license = licenses.gpl2Plus;
+ maintainers = teams.sage.members;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/10.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/10.nix
new file mode 100644
index 000000000000..277fb1984c44
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/10.nix
@@ -0,0 +1,136 @@
+{ stdenv
+, coreutils
+, patchelf
+, requireFile
+, alsaLib
+, fontconfig
+, freetype
+, gcc
+, glib
+, ncurses
+, opencv2
+, openssl
+, unixODBC
+, xorg
+, libxml2
+, libuuid
+}:
+
+let
+ platform =
+ if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" then
+ "Linux"
+ else
+ throw "Mathematica requires i686-linux or x86_64 linux";
+in
+stdenv.mkDerivation rec {
+ version = "10.0.2";
+
+ pname = "mathematica";
+
+ src = requireFile rec {
+ name = "Mathematica_${version}_LINUX.sh";
+ message = ''
+ This nix expression requires that ${name} is
+ already part of the store. Find the file on your Mathematica CD
+ and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
+ '';
+ sha256 = "1d2yaiaikzcacjamlw64g3xkk81m3pb4vz4an12cv8nb7kb20x9l";
+ };
+
+ buildInputs = [
+ coreutils
+ patchelf
+ alsaLib
+ coreutils
+ fontconfig
+ freetype
+ gcc.cc
+ gcc.libc
+ glib
+ ncurses
+ opencv2
+ openssl
+ unixODBC
+ libxml2
+ libuuid
+ ] ++ (with xorg; [
+ libX11
+ libXext
+ libXtst
+ libXi
+ libXmu
+ libXrender
+ libxcb
+ libXcursor
+ libXfixes
+ libXrandr
+ libICE
+ libSM
+ ]);
+
+ ldpath = stdenv.lib.makeLibraryPath buildInputs
+ + stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
+ (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs);
+
+ phases = "unpackPhase installPhase fixupPhase";
+
+ unpackPhase = ''
+ echo "=== Extracting makeself archive ==="
+ # find offset from file
+ offset=$(${stdenv.shell} -c "$(grep -axm1 -e 'offset=.*' $src); echo \$offset" $src)
+ dd if="$src" ibs=$offset skip=1 | tar -xf -
+ cd Unix
+ '';
+
+ installPhase = ''
+ cd Installer
+ # don't restrict PATH, that has already been done
+ sed -i -e 's/^PATH=/# PATH=/' MathInstaller
+
+ echo "=== Running MathInstaller ==="
+ ./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/Mathematica -platforms=${platform} -silent
+ '';
+
+ preFixup = ''
+ echo "=== PatchElfing away ==="
+ # This code should be a bit forgiving of errors, unfortunately
+ set +e
+ find $out/libexec/Mathematica/SystemFiles -type f -perm -0100 | while read f; do
+ type=$(readelf -h "$f" 2>/dev/null | grep 'Type:' | sed -e 's/ *Type: *\([A-Z]*\) (.*/\1/')
+ if [ -z "$type" ]; then
+ :
+ elif [ "$type" == "EXEC" ]; then
+ echo "patching $f executable <<"
+ patchelf --shrink-rpath "$f"
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
+ "$f" \
+ && patchelf --shrink-rpath "$f" \
+ || echo unable to patch ... ignoring 1>&2
+ elif [ "$type" == "DYN" ]; then
+ echo "patching $f library <<"
+ patchelf \
+ --set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
+ "$f" \
+ && patchelf --shrink-rpath "$f" \
+ || echo unable to patch ... ignoring 1>&2
+ else
+ echo "not patching $f <<: unknown elf type"
+ fi
+ done
+ '';
+
+ # all binaries are already stripped
+ dontStrip = true;
+
+ # we did this in prefixup already
+ dontPatchELF = true;
+
+ meta = {
+ description = "Wolfram Mathematica computational software system";
+ homepage = "http://www.wolfram.com/mathematica/";
+ license = stdenv.lib.licenses.unfree;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/11.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/11.nix
new file mode 100644
index 000000000000..1c698a5e5428
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/11.nix
@@ -0,0 +1,150 @@
+{ stdenv
+, coreutils
+, patchelf
+, requireFile
+, callPackage
+, alsaLib
+, dbus
+, fontconfig
+, freetype
+, gcc
+, glib
+, ncurses
+, opencv2
+, openssl
+, unixODBC
+, xkeyboard_config
+, xorg
+, zlib
+, libxml2
+, libuuid
+, lang ? "en"
+, libGL
+, libGLU
+}:
+
+let
+ l10n =
+ import ./l10ns.nix {
+ lib = stdenv.lib;
+ inherit requireFile lang;
+ majorVersion = "11";
+ };
+in
+stdenv.mkDerivation rec {
+ inherit (l10n) version name src;
+
+ buildInputs = [
+ coreutils
+ patchelf
+ alsaLib
+ coreutils
+ dbus
+ fontconfig
+ freetype
+ gcc.cc
+ gcc.libc
+ glib
+ ncurses
+ opencv2
+ openssl
+ unixODBC
+ xkeyboard_config
+ libxml2
+ libuuid
+ zlib
+ libGL
+ libGLU
+ ] ++ (with xorg; [
+ libX11
+ libXext
+ libXtst
+ libXi
+ libXmu
+ libXrender
+ libxcb
+ libXcursor
+ libXfixes
+ libXrandr
+ libICE
+ libSM
+ ]);
+
+ ldpath = stdenv.lib.makeLibraryPath buildInputs
+ + stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
+ (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs);
+
+ phases = "unpackPhase installPhase fixupPhase";
+
+ unpackPhase = ''
+ echo "=== Extracting makeself archive ==="
+ # find offset from file
+ offset=$(${stdenv.shell} -c "$(grep -axm1 -e 'offset=.*' $src); echo \$offset" $src)
+ dd if="$src" ibs=$offset skip=1 | tar -xf -
+ cd Unix
+ '';
+
+ installPhase = ''
+ cd Installer
+ # don't restrict PATH, that has already been done
+ sed -i -e 's/^PATH=/# PATH=/' MathInstaller
+ sed -i -e 's/\/bin\/bash/\/bin\/sh/' MathInstaller
+
+ echo "=== Running MathInstaller ==="
+ ./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/Mathematica -silent
+
+ # Fix library paths
+ cd $out/libexec/Mathematica/Executables
+ for path in mathematica MathKernel Mathematica WolframKernel wolfram math; do
+ sed -i -e 's#export LD_LIBRARY_PATH$#export LD_LIBRARY_PATH=${zlib}/lib:\''${LD_LIBRARY_PATH}#' $path
+ done
+
+ # Fix xkeyboard config path for Qt
+ for path in mathematica Mathematica; do
+ line=$(grep -n QT_PLUGIN_PATH $path | sed 's/:.*//')
+ sed -i -e "$line iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"" $path
+ done
+ '';
+
+ preFixup = ''
+ echo "=== PatchElfing away ==="
+ # This code should be a bit forgiving of errors, unfortunately
+ set +e
+ find $out/libexec/Mathematica/SystemFiles -type f -perm -0100 | while read f; do
+ type=$(readelf -h "$f" 2>/dev/null | grep 'Type:' | sed -e 's/ *Type: *\([A-Z]*\) (.*/\1/')
+ if [ -z "$type" ]; then
+ :
+ elif [ "$type" == "EXEC" ]; then
+ echo "patching $f executable <<"
+ patchelf --shrink-rpath "$f"
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
+ "$f" \
+ && patchelf --shrink-rpath "$f" \
+ || echo unable to patch ... ignoring 1>&2
+ elif [ "$type" == "DYN" ]; then
+ echo "patching $f library <<"
+ patchelf \
+ --set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
+ "$f" \
+ && patchelf --shrink-rpath "$f" \
+ || echo unable to patch ... ignoring 1>&2
+ else
+ echo "not patching $f <<: unknown elf type"
+ fi
+ done
+ '';
+
+ # all binaries are already stripped
+ dontStrip = true;
+
+ # we did this in prefixup already
+ dontPatchELF = true;
+
+ meta = {
+ description = "Wolfram Mathematica computational software system";
+ homepage = "http://www.wolfram.com/mathematica/";
+ license = stdenv.lib.licenses.unfree;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/9.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
new file mode 100644
index 000000000000..d0967485c01f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
@@ -0,0 +1,122 @@
+{ stdenv
+, coreutils
+, patchelf
+, requireFile
+, alsaLib
+, fontconfig
+, freetype
+, gcc
+, glib
+, ncurses
+, opencv2
+, openssl
+, unixODBC
+, xorg
+}:
+
+let
+ platform =
+ if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" then
+ "Linux"
+ else
+ throw "Mathematica requires i686-linux or x86_64 linux";
+in
+stdenv.mkDerivation rec {
+
+ name = "mathematica-9.0.0";
+
+ src = requireFile {
+ name = "Mathematica_9.0.0_LINUX.sh";
+ message = ''
+ This nix expression requires that Mathematica_9.0.0_LINUX.sh is
+ already part of the store. Find the file on your Mathematica CD
+ and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
+ '';
+ sha256 = "106zfaplhwcfdl9rdgs25x83xra9zcny94gb22wncbfxvrsk3a4q";
+ };
+
+ buildInputs = [
+ coreutils
+ patchelf
+ alsaLib
+ coreutils
+ fontconfig
+ freetype
+ gcc.cc
+ gcc.libc
+ glib
+ ncurses
+ opencv2
+ openssl
+ unixODBC
+ ] ++ (with xorg; [
+ libX11
+ libXext
+ libXtst
+ libXi
+ libXmu
+ libXrender
+ libxcb
+ ]);
+
+ ldpath = stdenv.lib.makeLibraryPath buildInputs
+ + stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
+ (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs);
+
+ phases = "unpackPhase installPhase fixupPhase";
+
+ unpackPhase = ''
+ echo "=== Extracting makeself archive ==="
+ # find offset from file
+ offset=$(${stdenv.shell} -c "$(grep -axm1 -e 'offset=.*' $src); echo \$offset" $src)
+ dd if="$src" ibs=$offset skip=1 | tar -xf -
+ cd Unix
+ '';
+
+ installPhase = ''
+ cd Installer
+ # don't restrict PATH, that has already been done
+ sed -i -e 's/^PATH=/# PATH=/' MathInstaller
+
+ echo "=== Running MathInstaller ==="
+ ./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/Mathematica -platforms=${platform} -silent
+ '';
+
+ preFixup = ''
+ echo "=== PatchElfing away ==="
+ find $out/libexec/Mathematica/SystemFiles -type f -perm -0100 | while read f; do
+ type=$(readelf -h "$f" 2>/dev/null | grep 'Type:' | sed -e 's/ *Type: *\([A-Z]*\) (.*/\1/')
+ if [ -z "$type" ]; then
+ :
+ elif [ "$type" == "EXEC" ]; then
+ echo "patching $f executable <<"
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${ldpath}" \
+ "$f"
+ patchelf --shrink-rpath "$f"
+ elif [ "$type" == "DYN" ]; then
+ echo "patching $f library <<"
+ patchelf \
+ --set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
+ "$f" \
+ && patchelf --shrink-rpath "$f" \
+ || echo unable to patch ... ignoring 1>&2
+ else
+ echo "not patching $f <<: unknown elf type"
+ fi
+ done
+ '';
+
+ # all binaries are already stripped
+ dontStrip = true;
+
+ # we did this in prefixup already
+ dontPatchELF = true;
+
+ meta = {
+ description = "Wolfram Mathematica computational software system";
+ homepage = "http://www.wolfram.com/mathematica/";
+ license = stdenv.lib.licenses.unfree;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
new file mode 100644
index 000000000000..d04a89bd8842
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
@@ -0,0 +1,164 @@
+{ stdenv
+, coreutils
+, patchelf
+, requireFile
+, callPackage
+, makeWrapper
+, alsaLib
+, dbus
+, fontconfig
+, freetype
+, gcc
+, glib
+, libssh2
+, ncurses
+, opencv2
+, openssl
+, unixODBC
+, xkeyboard_config
+, xorg
+, zlib
+, libxml2
+, libuuid
+, lang ? "en"
+, libGL
+, libGLU
+}:
+
+let
+ l10n =
+ import ./l10ns.nix {
+ lib = stdenv.lib;
+ inherit requireFile lang;
+ };
+in
+stdenv.mkDerivation rec {
+ inherit (l10n) version name src;
+
+ buildInputs = [
+ coreutils
+ patchelf
+ makeWrapper
+ alsaLib
+ coreutils
+ dbus
+ fontconfig
+ freetype
+ gcc.cc
+ gcc.libc
+ glib
+ libssh2
+ ncurses
+ opencv2
+ openssl
+ stdenv.cc.cc.lib
+ unixODBC
+ xkeyboard_config
+ libxml2
+ libuuid
+ zlib
+ libGL
+ libGLU
+ ] ++ (with xorg; [
+ libX11
+ libXext
+ libXtst
+ libXi
+ libXmu
+ libXrender
+ libxcb
+ libXcursor
+ libXfixes
+ libXrandr
+ libICE
+ libSM
+ ]);
+
+ ldpath = stdenv.lib.makeLibraryPath buildInputs
+ + stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
+ (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs);
+
+ unpackPhase = ''
+ echo "=== Extracting makeself archive ==="
+ # find offset from file
+ offset=$(${stdenv.shell} -c "$(grep -axm1 -e 'offset=.*' $src); echo \$offset" $src)
+ dd if="$src" ibs=$offset skip=1 | tar -xf -
+ cd Unix
+ '';
+
+ installPhase = ''
+ cd Installer
+ # don't restrict PATH, that has already been done
+ sed -i -e 's/^PATH=/# PATH=/' MathInstaller
+ sed -i -e 's/\/bin\/bash/\/bin\/sh/' MathInstaller
+
+ echo "=== Running MathInstaller ==="
+ ./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/Mathematica -silent
+
+ # Fix library paths
+ cd $out/libexec/Mathematica/Executables
+ for path in mathematica MathKernel Mathematica WolframKernel wolfram math; do
+ sed -i -e "2iexport LD_LIBRARY_PATH=${zlib}/lib:${stdenv.cc.cc.lib}/lib:${libssh2}/lib:\''${LD_LIBRARY_PATH}\n" $path
+ done
+
+ # Fix xkeyboard config path for Qt
+ for path in mathematica Mathematica; do
+ sed -i -e "2iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"\n" $path
+ done
+
+ # Remove some broken libraries
+ rm -f $out/libexec/Mathematica/SystemFiles/Libraries/Linux-x86-64/libz.so*
+
+ # Set environment variable to fix libQt errors - see https://github.com/NixOS/nixpkgs/issues/96490
+ wrapProgram $out/bin/mathematica --set USE_WOLFRAM_LD_LIBRARY_PATH 1
+ '';
+
+ preFixup = ''
+ echo "=== PatchElfing away ==="
+ # This code should be a bit forgiving of errors, unfortunately
+ set +e
+ find $out/libexec/Mathematica/SystemFiles -type f -perm -0100 | while read f; do
+ type=$(readelf -h "$f" 2>/dev/null | grep 'Type:' | sed -e 's/ *Type: *\([A-Z]*\) (.*/\1/')
+ if [ -z "$type" ]; then
+ :
+ elif [ "$type" == "EXEC" ]; then
+ echo "patching $f executable <<"
+ patchelf --shrink-rpath "$f"
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
+ "$f" \
+ && patchelf --shrink-rpath "$f" \
+ || echo unable to patch ... ignoring 1>&2
+ elif [ "$type" == "DYN" ]; then
+ echo "patching $f library <<"
+ patchelf \
+ --set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
+ "$f" \
+ && patchelf --shrink-rpath "$f" \
+ || echo unable to patch ... ignoring 1>&2
+ else
+ echo "not patching $f <<: unknown elf type"
+ fi
+ done
+ '';
+
+ dontBuild = true;
+
+ # This is primarily an IO bound build; there's little benefit to building remotely.
+ preferLocalBuild = true;
+
+ # all binaries are already stripped
+ dontStrip = true;
+
+ # we did this in prefixup already
+ dontPatchELF = true;
+
+ meta = with stdenv.lib; {
+ description = "Wolfram Mathematica computational software system";
+ homepage = "http://www.wolfram.com/mathematica/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ herberteuler ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
new file mode 100644
index 000000000000..8ec6ac5048d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
@@ -0,0 +1,66 @@
+{ lib
+, requireFile
+, lang
+, majorVersion ? null
+}:
+
+let allVersions = with lib; flip map
+ # N.B. Versions in this list should be ordered from newest to oldest.
+ [
+ {
+ version = "12.1.1";
+ lang = "en";
+ language = "English";
+ sha256 = "02mk8gmv8idnakva1nc7r7mx8ld02lk7jgsj1zbn962aps3bhixd";
+ }
+ {
+ version = "12.1.0";
+ lang = "en";
+ language = "English";
+ sha256 = "15m9l20jvkxh5w6mbp81ys7mx2lx5j8acw5gz0il89lklclgb8z7";
+ }
+ {
+ version = "12.0.0";
+ lang = "en";
+ language = "English";
+ sha256 = "b9fb71e1afcc1d72c200196ffa434512d208fa2920e207878433f504e58ae9d7";
+ }
+ {
+ version = "11.3.0";
+ lang = "en";
+ language = "English";
+ sha256 = "0fcfe208c1eac8448e7be3af0bdb84370b17bd9c5d066c013928c8ee95aed10e";
+ }
+ {
+ version = "11.2.0";
+ lang = "ja";
+ language = "Japanese";
+ sha256 = "916392edd32bed8622238df435dd8e86426bb043038a3336f30df10d819b49b1";
+ }
+ ]
+ ({ version, lang, language, sha256 }: {
+ inherit version lang;
+ name = "mathematica-${version}" + optionalString (lang != "en") "-${lang}";
+ src = requireFile rec {
+ name = "Mathematica_${version}" + optionalString (lang != "en") "_${language}" + "_LINUX.sh";
+ message = ''
+ This nix expression requires that ${name} is
+ already part of the store. Find the file on your Mathematica CD
+ and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
+ '';
+ inherit sha256;
+ };
+ });
+minVersion =
+ with lib;
+ if majorVersion == null
+ then elemAt (builtins.splitVersion (elemAt allVersions 0).version) 0
+ else majorVersion;
+maxVersion = toString (1 + builtins.fromJSON minVersion);
+in
+with lib;
+findFirst (l: (l.lang == lang
+ && l.version >= minVersion
+ && l.version < maxVersion))
+ (throw "Version ${minVersion} in language ${lang} not supported")
+ allVersions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/maxima/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/maxima/default.nix
new file mode 100644
index 000000000000..1bf7d16f2904
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/maxima/default.nix
@@ -0,0 +1,105 @@
+{ stdenv, fetchurl, fetchpatch, sbcl, texinfo, perl, python, makeWrapper, autoreconfHook
+, rlwrap ? null, tk ? null, gnuplot ? null, ecl ? null, ecl-fasl ? false
+}:
+
+let
+ name = "maxima";
+ version = "5.44.0";
+
+ searchPath =
+ stdenv.lib.makeBinPath
+ (stdenv.lib.filter (x: x != null) [ sbcl ecl rlwrap tk gnuplot ]);
+in
+stdenv.mkDerivation ({
+ inherit version;
+ name = "${name}-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
+ sha256 = "1v6jr5s6hhj6r18gfk6hgxk2qd6z1dxkrjq9ss2z1y6sqi45wgyr";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = stdenv.lib.filter (x: x != null) [
+ sbcl ecl texinfo perl python makeWrapper
+ gnuplot # required in the test suite
+ ];
+
+ postPatch = ''
+ substituteInPlace doc/info/Makefile.am --replace "/usr/bin/env perl" "${perl}/bin/perl"
+ '';
+
+ postInstall = ''
+ # Make sure that maxima can find its runtime dependencies.
+ for prog in "$out/bin/"*; do
+ wrapProgram "$prog" --prefix PATH ":" "$out/bin:${searchPath}"
+ done
+ # Move emacs modules and documentation into the right place.
+ mkdir -p $out/share/emacs $out/share/doc
+ ln -s ../maxima/${version}/emacs $out/share/emacs/site-lisp
+ ln -s ../maxima/${version}/doc $out/share/doc/maxima
+ ''
+ + (stdenv.lib.optionalString ecl-fasl ''
+ cp src/binary-ecl/maxima.fas* "$out/lib/maxima/${version}/binary-ecl/"
+ '')
+ ;
+
+ patches = [
+ # fix path to info dir (see https://trac.sagemath.org/ticket/11348)
+ (fetchpatch {
+ url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/infodir.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+ sha256 = "09v64n60f7i6frzryrj0zd056lvdpms3ajky4f9p6kankhbiv21x";
+ })
+
+ # fix https://sourceforge.net/p/maxima/bugs/2596/
+ (fetchpatch {
+ url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/matrixexp.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+ sha256 = "06961hn66rhjijfvyym21h39wk98sfxhp051da6gz0n9byhwc6zg";
+ })
+
+ # undo https://sourceforge.net/p/maxima/code/ci/f5e9b0f7eb122c4e48ea9df144dd57221e5ea0ca, see see https://trac.sagemath.org/ticket/13364#comment:93
+ (fetchpatch {
+ url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/undoing_true_false_printing_patch.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+ sha256 = "0fvi3rcjv6743sqsbgdzazy9jb6r1p1yq63zyj9fx42wd1hgf7yx";
+ })
+ ] ++ stdenv.lib.optionals ecl-fasl [
+ # build fasl, needed for ECL support
+ (fetchpatch {
+ url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/maxima.system.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+ sha256 = "18zafig8vflhkr80jq2ivk46k92dkszqlyq8cfmj0b2vcfjwwbar";
+ })
+ ];
+
+ # The test suite is disabled since 5.42.2 because of the following issues:
+ #
+ # Error(s) found:
+ # /build/maxima-5.44.0/share/linearalgebra/rtest_matrixexp.mac problems:
+ # (20 21 22)
+ # Tests that were expected to fail but passed:
+ # /build/maxima-5.44.0/share/vector/rtest_vect.mac problem:
+ # (19)
+ # 3 tests failed out of 16,184 total tests.
+ #
+ # These failures don't look serious. It would be nice to fix them, but I
+ # don't know how and probably won't have the time to find out.
+ doCheck = false; # try to re-enable after next version update
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Computer algebra system";
+ homepage = "http://maxima.sourceforge.net";
+ license = stdenv.lib.licenses.gpl2;
+
+ longDescription = ''
+ Maxima is a fairly complete computer algebra system written in
+ lisp with an emphasis on symbolic computation. It is based on
+ DOE-MACSYMA and licensed under the GPL. Its abilities include
+ symbolic integration, 3D plotting, and an ODE solver.
+ '';
+
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.peti ];
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/msieve/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/msieve/default.nix
new file mode 100644
index 000000000000..db7a1c149068
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/msieve/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, zlib, gmp, ecm }:
+
+stdenv.mkDerivation {
+ name = "msieve-1.53";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/msieve/msieve/Msieve%20v1.53/msieve153_src.tar.gz";
+ sha256 = "1d1vv7j4rh3nnxsmvafi73qy7lw7n3akjlm5pjl3m936yapvmz65";
+ };
+
+ buildInputs = [ zlib gmp ecm ];
+
+ ECM = if ecm == null then "0" else "1";
+
+ # Doesn't hurt Linux but lets clang-based platforms like Darwin work fine too
+ makeFlags = [ "CC=cc" "all" ];
+
+ installPhase = ''
+ mkdir -p $out/bin/
+ cp msieve $out/bin/
+ '';
+
+ meta = {
+ description = "A C library implementing a suite of algorithms to factor large integers";
+ license = stdenv.lib.licenses.publicDomain;
+ homepage = "http://msieve.sourceforge.net/";
+ maintainers = [ stdenv.lib.maintainers.roconnor ];
+ platforms = [ "x86_64-linux" ] ++ stdenv.lib.platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/mxnet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mxnet/default.nix
new file mode 100644
index 000000000000..3d74421669ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/mxnet/default.nix
@@ -0,0 +1,55 @@
+{ config, stdenv, lib, fetchurl, bash, cmake
+, opencv3, gtest, blas, perl
+, cudaSupport ? config.cudaSupport or false, cudatoolkit, nvidia_x11
+, cudnnSupport ? cudaSupport, cudnn
+}:
+
+assert cudnnSupport -> cudaSupport;
+
+stdenv.mkDerivation rec {
+ pname = "mxnet";
+ version = "1.6.0";
+
+ src = fetchurl {
+ url = "https://github.com/apache/incubator-mxnet/releases/download/${version}/apache-mxnet-src-${version}-incubating.tar.gz";
+ sha256 = "1vvdb7pfh63kb9fzs6gqp95q550a3ck4cj9mqxlk9wwhkh30dsq1";
+ };
+
+ nativeBuildInputs = [ cmake perl ];
+
+ buildInputs = [ opencv3 gtest blas.provider ]
+ ++ lib.optionals cudaSupport [ cudatoolkit nvidia_x11 ]
+ ++ lib.optional cudnnSupport cudnn;
+
+ cmakeFlags =
+ [ "-DUSE_MKL_IF_AVAILABLE=OFF" ]
+ ++ (if cudaSupport then [
+ "-DUSE_OLDCMAKECUDA=ON" # see https://github.com/apache/incubator-mxnet/issues/10743
+ "-DCUDA_ARCH_NAME=All"
+ "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
+ ] else [ "-DUSE_CUDA=OFF" ])
+ ++ lib.optional (!cudnnSupport) "-DUSE_CUDNN=OFF";
+
+ postPatch = ''
+ substituteInPlace 3rdparty/mkldnn/tests/CMakeLists.txt \
+ --replace "/bin/bash" "${bash}/bin/bash"
+
+ # Build against the system version of OpenMP.
+ # https://github.com/apache/incubator-mxnet/pull/12160
+ rm -rf 3rdparty/openmp
+ '';
+
+ postInstall = ''
+ rm "$out"/lib/*.a
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler";
+ homepage = "https://mxnet.incubator.apache.org/";
+ maintainers = with maintainers; [ abbradar ];
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/nasc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/nasc/default.nix
new file mode 100644
index 000000000000..9d14df5a7988
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/nasc/default.nix
@@ -0,0 +1,87 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, python3
+, meson
+, ninja
+, vala
+, gtk3
+, glib
+, pantheon
+, libsoup
+, gtksourceview
+, libgee
+, nix-update-script
+, webkitgtk
+, libqalculate
+, intltool
+, gnuplot
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "nasc";
+ version = "0.7.5";
+
+ src = fetchFromGitHub {
+ owner = "parnold-x";
+ repo = pname;
+ rev = version;
+ sha256 = "kSRc5RLkI6SBJirUYw6swZi8IJhaL3y74b2Zw8kh2XA=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ glib # post_install.py
+ gtk3 # post_install.py
+ intltool # for libqalculate
+ meson
+ ninja
+ pkgconfig
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gtk3
+ gtksourceview
+ libgee
+ pantheon.elementary-icon-theme
+ pantheon.granite
+ webkitgtk
+ # We add libqalculate's runtime dependencies because nasc has it as a modified subproject.
+ ] ++ libqalculate.buildInputs ++ libqalculate.propagatedBuildInputs;
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+
+ # patch subproject. same code in libqalculate expression
+ substituteInPlace subprojects/libqalculate/libqalculate/Calculator-plot.cc \
+ --replace 'commandline = "gnuplot"' 'commandline = "${gnuplot}/bin/gnuplot"' \
+ --replace '"gnuplot - ' '"${gnuplot}/bin/gnuplot - '
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Do maths like a normal person, designed for elementary OS";
+ longDescription = ''
+ It’s an app where you do maths like a normal person. It lets you
+ type whatever you want and smartly figures out what is math and
+ spits out an answer on the right pane. Then you can plug those
+ answers in to future equations and if that answer changes, so does
+ the equations it’s used in.
+ '';
+ homepage = "https://github.com/parnold-x/nasc";
+ maintainers = pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/nauty/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/nauty/default.nix
new file mode 100644
index 000000000000..76e7c796a138
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/nauty/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, lib
+, fetchurl
+}:
+stdenv.mkDerivation rec {
+ pname = "nauty";
+ version = "27r1";
+ src = fetchurl {
+ url = "http://pallini.di.uniroma1.it/nauty${version}.tar.gz";
+ sha256 = "1nym0p2djws8ylkpr0kgpxfa6fxdlh46cmvz0gn5vd02jzgs0aww";
+ };
+ outputs = [ "out" "dev" ];
+ configureFlags = [
+ # Prevent nauty from sniffing some cpu features. While those are very
+ # widely available, it can lead to nasty bugs when they are not available:
+ # https://groups.google.com/forum/#!topic/sage-packaging/Pe4SRDNYlhA
+ "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-popcnt"
+ "--${if stdenv.hostPlatform.sse4_aSupport then "enable" else "disable"}-clz"
+ ];
+ installPhase = ''
+ mkdir -p "$out"/{bin,share/doc/nauty} "$dev"/{lib,include/nauty}
+
+ find . -type f -perm -111 \! -name '*.*' \! -name configure -exec cp '{}' "$out/bin" \;
+ cp [Rr][Ee][Aa][Dd]* COPYRIGHT This* [Cc]hange* "$out/share/doc/nauty"
+
+ cp *.h "$dev/include/nauty"
+ for i in *.a; do
+ cp "$i" "$dev/lib/lib$i";
+ done
+ '';
+ checkTarget = "checks";
+ meta = with lib; {
+ inherit version;
+ description = ''Programs for computing automorphism groups of graphs and digraphs'';
+ license = licenses.asl20;
+ maintainers = teams.sage.members;
+ platforms = platforms.unix;
+ # I'm not sure if the filename will remain the same for future changelog or
+ # if it will track changes to minor releases. Lets see. Better than nothing
+ # in any case.
+ changelog = "http://pallini.di.uniroma1.it/changes24-27.txt";
+ homepage = "http://pallini.di.uniroma1.it/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/nota/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/nota/default.nix
new file mode 100644
index 000000000000..897785ef6e8b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/nota/default.nix
@@ -0,0 +1,40 @@
+{ mkDerivation, haskellPackages, fetchurl, lib }:
+
+mkDerivation rec {
+ pname = "nota";
+ version = "1.0";
+
+ # Can't use fetchFromGitLab since codes.kary.us doesn't support https
+ src = fetchurl {
+ url = "http://codes.kary.us/nota/nota/-/archive/V${version}/nota-V${version}.tar.bz2";
+ sha256 = "0bbs6bm9p852hvqadmqs428ir7m65h2prwyma238iirv42pk04v8";
+ };
+
+ postUnpack = ''
+ export sourceRoot=$sourceRoot/source
+ '';
+
+ isLibrary = false;
+ isExecutable = true;
+
+ libraryHaskellDepends = with haskellPackages; [
+ base
+ bytestring
+ array
+ split
+ scientific
+ parsec
+ ansi-terminal
+ regex-compat
+ containers
+ terminal-size
+ numbers
+ text
+ time
+ ];
+
+ description = "The most beautiful command line calculator";
+ homepage = "https://kary.us/nota";
+ license = lib.licenses.mpl20;
+ maintainers = with lib.maintainers; [ dtzWill ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/palp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/palp/default.nix
new file mode 100644
index 000000000000..9ae4fe1ba920
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/palp/default.nix
@@ -0,0 +1,90 @@
+{ stdenv
+, fetchurl
+, dimensions ? 6 # works for <= dimensions dimensions, but is only optimized for that exact value
+, doSymlink ? true # symlink the executables to the default location (without dimension postfix)
+}:
+
+let
+ dim = toString dimensions;
+in
+stdenv.mkDerivation rec {
+ pname = "palp";
+ version = "2.11";
+
+ src = fetchurl {
+ url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/palp-${version}.tar.gz";
+ sha256 = "00jpm73fw9jjq58z6rysr1mwv489j6rpfqqlhm9ab0dln4kyhh05";
+ };
+
+ hardeningDisable = [
+ "format"
+ ];
+
+ patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace GNUmakefile --replace gcc cc
+ '';
+
+ preBuild = ''
+ echo Building PALP optimized for ${dim} dimensions
+ sed -i "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax ${dim}/" Global.h
+ '';
+
+ # palp has no tests of its own. This test is an adapted sage test that failed
+ # when #28029 was merged.
+ doCheck = true;
+ checkPhase = ''
+ ./nef.x -f -N << EOF | grep -q 'np='
+ 3 6
+ 1 0 0 -1 0 0
+ 0 1 0 0 -1 0
+ 0 0 1 0 0 -1
+ EOF
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ for file in poly class cws nef mori; do
+ cp -p $file.x "$out/bin/$file-${dim}d.x"
+ done
+ '' + stdenv.lib.optionalString doSymlink ''
+ cd "$out/bin"
+ for file in poly class cws nef mori; do
+ ln -sf $file-6d.x $file.x
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Package for Analyzing Lattice Polytopes";
+ longDescription = ''
+ A Package for Analyzing Lattice Polytopes (PALP) is a set of C
+ programs for calculations with lattice polytopes and applications to
+ toric geometry.
+
+ It contains routines for vertex and facet enumeration, computation of
+ incidences and symmetries, as well as completion of the set of lattice
+ points in the convex hull of a given set of points. In addition, there
+ are procedures specialised to reflexive polytopes such as the
+ enumeration of reflexive subpolytopes, and applications to toric
+ geometry and string theory, like the computation of Hodge data and
+ fibration structures for toric Calabi-Yau varieties. The package is
+ well tested and optimised in speed as it was used for time consuming
+ tasks such as the classification of reflexive polyhedra in 4
+ dimensions and the creation and manipulation of very large lists of
+ 5-dimensional polyhedra.
+
+ While originally intended for low-dimensional applications, the
+ algorithms work in any dimension and our key routine for vertex and
+ facet enumeration compares well with existing packages.
+ '';
+ homepage = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/CYpalp.html";
+ # Not really a changelog, but a one-line summary of each update that should
+ # be reviewed on update.
+ changelog = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/CYpalp.html";
+ # Just a link on the website pointing to gpl -- now gplv3. When the last
+ # version was released that pointed to gplv2 however, so thats probably
+ # the right license.
+ license = licenses.gpl2;
+ maintainers = teams.sage.members;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/pari/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pari/default.nix
new file mode 100644
index 000000000000..a3e2f99ab274
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pari/default.nix
@@ -0,0 +1,81 @@
+{ stdenv
+, fetchurl
+, gmp
+, readline
+, libX11
+, tex
+, perl
+, withThread ? true, libpthreadstubs
+}:
+
+assert withThread -> libpthreadstubs != null;
+
+stdenv.mkDerivation rec {
+ pname = "pari";
+ version = "2.11.4";
+
+ src = fetchurl {
+ url = "https://pari.math.u-bordeaux.fr/pub/pari/unix/${pname}-${version}.tar.gz";
+ sha256 = "sha256-v8iPxPc1L0hA5uNSxy8DacvqikVAOxg0piafNwmXCxw=";
+ };
+
+ buildInputs = [
+ gmp
+ readline
+ libX11
+ tex
+ perl
+ ] ++ stdenv.lib.optionals withThread [
+ libpthreadstubs
+ ];
+
+ configureScript = "./Configure";
+ configureFlags = [
+ "--with-gmp=${gmp.dev}"
+ "--with-readline=${readline.dev}"
+ ] ++ stdenv.lib.optional stdenv.isDarwin "--host=x86_64-darwin"
+ ++ stdenv.lib.optional withThread "--mt=pthread";
+
+ preConfigure = ''
+ export LD=$CC
+ '';
+
+ postConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+ echo 'echo x86_64-darwin' > config/arch-osname
+ '';
+
+ makeFlags = [ "all" ];
+
+ meta = with stdenv.lib; {
+ description = "Computer algebra system for high-performance number theory computations";
+ longDescription = ''
+ PARI/GP is a widely used computer algebra system designed for fast
+ computations in number theory (factorizations, algebraic number theory,
+ elliptic curves...), but also contains a large number of other useful
+ functions to compute with mathematical entities such as matrices,
+ polynomials, power series, algebraic numbers etc., and a lot of
+ transcendental functions. PARI is also available as a C library to allow
+ for faster computations.
+
+ Originally developed by Henri Cohen and his co-workers (Université
+ Bordeaux I, France), PARI is now under the GPL and maintained by Karim
+ Belabas with the help of many volunteer contributors.
+
+ - PARI is a C library, allowing fast computations.
+ - gp is an easy-to-use interactive shell giving access to the PARI
+ functions.
+ - GP is the name of gp's scripting language.
+ - gp2c, the GP-to-C compiler, combines the best of both worlds by
+ compiling GP scripts to the C language and transparently loading the
+ resulting functions into gp. (gp2c-compiled scripts will typically run
+ 3 or 4 times faster.) gp2c currently only understands a subset of the
+ GP language.
+ '';
+ homepage = "http://pari.math.u-bordeaux.fr";
+ downloadPage = "http://pari.math.u-bordeaux.fr/download.html";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ ertes AndersonTorres ] ++ teams.sage.members;
+ platforms = platforms.linux ++ platforms.darwin;
+ updateWalker = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix
new file mode 100644
index 000000000000..082ff60c3e8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, pari
+, fetchurl
+, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "gp2c";
+ version = "0.0.12";
+
+ src = fetchurl {
+ url = "https://pari.math.u-bordeaux.fr/pub/pari/GP2C/${pname}-${version}.tar.gz";
+ sha256 = "039ip7qkwwv46wrcdrz7y12m30kazzkjr44kqbc0h137g4wzd7zf";
+ };
+
+ buildInputs = [ pari perl ];
+
+ configureFlags = [
+ "--with-paricfg=${pari}/lib/pari/pari.cfg"
+ "--with-perl=${perl}/bin/perl" ];
+
+ meta = with stdenv.lib; {
+ description = "A compiler to translate GP scripts to PARI programs";
+ homepage = "http://pari.math.u-bordeaux.fr/";
+ downloadPage = "http://pari.math.u-bordeaux.fr/download.html";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/pcalc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pcalc/default.nix
new file mode 100644
index 000000000000..f372357fe7d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pcalc/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit, bison, flex }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "pcalc";
+ version = "20141224";
+
+ src = fetchgit {
+ url = "git://git.code.sf.net/p/pcalc/code";
+ rev = "181d60d3c880da4344fef7138065943eb3b9255f";
+ sha256 = "1hd5bh20j5xzvv6qa0fmzmv0h8sf38r7zgi7y0b6nk17pjq33v90";
+ };
+
+ makeFlags = [ "DESTDIR= BINDIR=$(out)/bin" ];
+ buildInputs = [ bison flex ];
+
+ meta = {
+ homepage = "http://pcalc.sourceforge.net/";
+ description = "Programmer's calculator";
+ license = licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ ftrvxmtrx ];
+ platforms = stdenv.lib.platforms.linux;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/perseus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/perseus/default.nix
new file mode 100644
index 000000000000..55293e6c8a79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/perseus/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation {
+ name = "perseus-4-beta";
+ version = "4-beta";
+ buildInputs = [ unzip ];
+
+ hardeningDisable = [ "stackprotector" ];
+
+ src = fetchurl {
+ url = "http://www.sas.upenn.edu/~vnanda/source/perseus_4_beta.zip";
+ sha256 = "09brijnqabhgfjlj5wny0bqm5dwqcfkp1x5wif6yzdmqh080jybj";
+ };
+
+ sourceRoot = ".";
+
+ buildPhase = ''
+ g++ Pers.cpp -O3 -fpermissive -o perseus
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp perseus $out/bin
+ '';
+
+ meta = {
+ description = "The Persistent Homology Software";
+ longDescription = ''
+ Persistent homology - or simply, persistence - is an algebraic
+ topological invariant of a filtered cell complex. Perseus
+ computes this invariant for a wide class of filtrations built
+ around datasets arising from point samples, images, distance
+ matrices and so forth.
+ '';
+ homepage = "http://www.sas.upenn.edu/~vnanda/perseus/index.html";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [erikryb];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/polymake/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/polymake/default.nix
new file mode 100644
index 000000000000..d4f13f84f81c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/polymake/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl
+, ninja, libxml2, libxslt, readline, perl, gmp, mpfr, boost
+, bliss, ppl, singular, cddlib, lrs, nauty
+, ant, openjdk
+, perlPackages
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "polymake";
+ version = "3.2.rc4";
+
+ src = fetchurl {
+ url = "https://polymake.org/lib/exe/fetch.php/download/polymake-3.2r4.tar.bz2";
+ sha256 = "02jpkvy1cc6kc23vkn7nkndzr40fq1gkb3v257bwyi1h5d37fyqy";
+ };
+
+ buildInputs = [
+ libxml2 libxslt readline perl gmp mpfr boost
+ bliss ppl singular cddlib lrs nauty
+ openjdk
+ ] ++
+ (with perlPackages; [
+ XMLLibXML XMLLibXSLT XMLWriter TermReadLineGnu TermReadKey
+ ]);
+
+ nativeBuildInputs = [
+ makeWrapper ninja ant perl
+ ];
+
+ ninjaFlags = [ "-C" "build/Opt" ];
+
+ postInstall = ''
+ for i in "$out"/bin/*; do
+ wrapProgram "$i" --prefix PERL5LIB : "$PERL5LIB"
+ done
+ '';
+
+ meta = {
+ inherit version;
+ description = "Software for research in polyhedral geometry";
+ license = stdenv.lib.licenses.gpl2 ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ homepage = "https://www.polymake.org/doku.php";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/pspp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pspp/default.nix
new file mode 100644
index 000000000000..d6c5b58f0d56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pspp/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, libxml2, readline, zlib, perl, cairo, gtk3, gsl
+, pkgconfig, gtksourceview, pango, gettext, dconf
+, makeWrapper, gsettings-desktop-schemas, hicolor-icon-theme
+, texinfo, ssw, python3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "pspp";
+ version = "1.4.1";
+
+ src = fetchurl {
+ url = "mirror://gnu/pspp/${pname}-${version}.tar.gz";
+ sha256 = "0lqrash677b09zxdlxp89z6k02y4i23mbqg83956dwl69wc53dan";
+ };
+
+ nativeBuildInputs = [ pkgconfig texinfo python3 ];
+ buildInputs = [ libxml2 readline zlib perl cairo gtk3 gsl
+ gtksourceview pango gettext
+ makeWrapper gsettings-desktop-schemas hicolor-icon-theme ssw
+ ];
+
+ doCheck = false;
+
+ enableParallelBuilding = true;
+
+ preFixup = ''
+ wrapProgram "$out/bin/psppire" \
+ --prefix XDG_DATA_DIRS : "$out/share" \
+ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+ --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
+ '';
+
+ meta = {
+ homepage = "https://www.gnu.org/software/pspp/";
+ description = "A free replacement for SPSS, a program for statistical analysis of sampled data";
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ longDescription = ''
+ PSPP is a program for statistical analysis of sampled data. It is
+ a Free replacement for the proprietary program SPSS.
+
+ PSPP can perform descriptive statistics, T-tests, anova, linear
+ and logistic regression, cluster analysis, factor analysis,
+ non-parametric tests and more. Its backend is designed to perform
+ its analyses as fast as possible, regardless of the size of the
+ input data. You can use PSPP with its graphical interface or the
+ more traditional syntax commands.
+ '';
+
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/pynac/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pynac/default.nix
new file mode 100644
index 000000000000..87fb205174bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/pynac/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, flint
+, gmp
+, python3
+, singular
+, ncurses
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.7.26";
+ pname = "pynac";
+
+ src = fetchFromGitHub {
+ owner = "pynac";
+ repo = "pynac";
+ rev = "pynac-${version}";
+ sha256 = "09d2p74x1arkydlxy6pw4p4byi7r8q7f29w373h4d8a215kadc6d";
+ };
+
+ buildInputs = [
+ flint
+ gmp
+ singular
+ python3
+ ncurses
+ ];
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Python is Not a CAS -- modified version of Ginac";
+ longDescription = ''
+ Pynac -- "Python is Not a CAS" is a modified version of Ginac that
+ replaces the depency of GiNaC on CLN by a dependency instead of Python.
+ It is a lite version of GiNaC as well, not implementing all the features
+ of the full GiNaC, and it is *only* meant to be used as a Python library.
+ '';
+ homepage = "http://pynac.org";
+ license = licenses.gpl3;
+ maintainers = teams.sage.members;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
new file mode 100644
index 000000000000..09ead07dc09d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, intltool, autoreconfHook, pkgconfig, libqalculate, gtk3, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "qalculate-gtk";
+ version = "3.15.0";
+
+ src = fetchFromGitHub {
+ owner = "qalculate";
+ repo = "qalculate-gtk";
+ rev = "v${version}";
+ sha256 = "1w0r9vv1h3zbfdvk8965g5plfkz5clf81riil5b394ms9vsw0bx5";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ nativeBuildInputs = [ intltool pkgconfig autoreconfHook wrapGAppsHook ];
+ buildInputs = [ libqalculate gtk3 ];
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "The ultimate desktop calculator";
+ homepage = "http://qalculate.github.io";
+ maintainers = with maintainers; [ gebner ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
new file mode 100644
index 000000000000..fb205a69f038
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, fetchpatch, gmp }:
+stdenv.mkDerivation rec {
+ pname = "ratpoints";
+ version = "2.1.3.p4";
+
+ src = fetchurl {
+ url = "http://www.mathe2.uni-bayreuth.de/stoll/programs/ratpoints-${version}.tar.gz";
+ sha256 = "0zhad84sfds7izyksbqjmwpfw4rvyqk63yzdjd3ysd32zss5bgf4";
+ };
+
+ enableParallelBuilding = true;
+
+ patches = [
+ (fetchpatch {
+ url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ratpoints/patches/sturm_and_rp_private.patch?id=1615f58890e8f9881c4228c78a6b39b9aab1303a";
+ sha256 = "0q3wajncyfr3gahd8gwk9x7g56zw54lpywrl63lqk7drkf60mrcl";
+ })
+ ];
+
+ buildInputs = [ gmp ];
+
+ makeFlags = [ "CC=cc" ];
+ buildFlags = stdenv.lib.optional stdenv.isDarwin ["CCFLAGS2=-lgmp -lc -lm" "CCFLAGS=-UUSE_SSE"];
+ installFlags = [ "INSTALL_DIR=$(out)" ];
+
+ preInstall = ''mkdir -p "$out"/{bin,share,lib,include}'';
+
+ meta = {
+ inherit version;
+ description = ''A program to find rational points on hyperelliptic curves'';
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.unix;
+ homepage = "http://www.mathe2.uni-bayreuth.de/stoll/programs/";
+ updateWalker = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/ries/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ries/default.nix
new file mode 100644
index 000000000000..4adf3ef2096e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ries/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchzip }:
+stdenv.mkDerivation {
+ name = "ries-2018-04-11";
+
+ # upstream does not provide a stable link
+ src = fetchzip {
+ url = "https://salsa.debian.org/debian/ries/-/archive/debian/2018.04.11-1/ries-debian-2018.04.11-1.zip";
+ sha256 = "1h2wvd4k7f0l0i1vm9niz453xdbcs3nxccmri50qyrzzzc1b0842";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://mrob.com/pub/ries/";
+ description = "Tool to produce a list of equations that approximately solve to a given number";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ symphorien ];
+ license = licenses.gpl3Plus;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/ripser/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ripser/default.nix
new file mode 100644
index 000000000000..1c8ced5ed222
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/ripser/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, fetchFromGitHub
+, assembleReductionMatrix ? false
+, useCoefficients ? false
+, indicateProgress ? false
+, useGoogleHashmap ? false, sparsehash ? null
+, fileFormat ? "lowerTriangularCsv"
+}:
+
+with stdenv.lib;
+
+assert assertOneOf "fileFormat" fileFormat
+ ["lowerTriangularCsv" "upperTriangularCsv" "dipha"];
+assert useGoogleHashmap -> sparsehash != null;
+
+let
+ inherit (stdenv.lib) optional;
+ version = "1.0";
+in
+stdenv.mkDerivation {
+ pname = "ripser";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "Ripser";
+ repo = "ripser";
+ rev = "f69c6af6ca6883dd518c48faf41cf8901c379598";
+ sha256 = "1mw2898s7l29hgajsaf75bs9bjn2sn4g2mvmh41a602jpwp9r0rz";
+ };
+
+ #Patch from dev branch to make compilation work.
+ #Will be removed when it gets merged into master.
+ patches = [(fetchurl {
+ url = "https://github.com/Ripser/ripser/commit/dc78d8ce73ee35f3828f0aad67a4e53620277ebf.patch";
+ sha256 = "1y93aqpqz8fm1cxxrf90dhh67im3ndkr8dnxgbw5y96296n4r924";
+ })];
+
+ buildInputs = optional useGoogleHashmap sparsehash;
+
+ buildFlags = [
+ "-std=c++11"
+ "-Ofast"
+ "-D NDEBUG"
+ ]
+ ++ optional assembleReductionMatrix "-D ASSEMBLE_REDUCTION_MATRIX"
+ ++ optional useCoefficients "-D USE_COEFFICIENTS"
+ ++ optional indicateProgress "-D INDICATE_PROGRESS"
+ ++ optional useGoogleHashmap "-D USE_GOOGLE_HASHMAP"
+ ++ optional (fileFormat == "lowerTriangularCsv") "-D FILE_FORMAT_LOWER_TRIANGULAR_CSV"
+ ++ optional (fileFormat == "upperTriangularCsv") "-D FILE_FORMAT_UPPER_TRIANGULAR_CSV"
+ ++ optional (fileFormat == "dipha") "-D FILE_FORMAT_DIPHA"
+ ;
+
+ buildPhase = "c++ ripser.cpp -o ripser $buildFlags";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp ripser $out/bin
+ '';
+
+ meta = {
+ description = "A lean C++ code for the computation of Vietoris–Rips persistence barcodes";
+ homepage = "https://github.com/Ripser/ripser";
+ license = stdenv.lib.licenses.lgpl3;
+ maintainers = with stdenv.lib.maintainers; [erikryb];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/rofi-calc/0001-Patch-plugindir-to-output.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/rofi-calc/0001-Patch-plugindir-to-output.patch
new file mode 100644
index 000000000000..197d1347d535
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/rofi-calc/0001-Patch-plugindir-to-output.patch
@@ -0,0 +1,25 @@
+From 0eaef67b683683fb423fcb2d5096b3cdf9a4a9cd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Sun, 22 Mar 2020 12:26:10 +0100
+Subject: [PATCH] Patch plugindir to output
+
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 50edb74..639ee86 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -50,7 +50,7 @@ PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.40 gio-unix-2.0 gmodule-2.0 ])
+ PKG_CHECK_MODULES([cairo], [cairo])
+ PKG_CHECK_MODULES([rofi], [rofi >= 1.5.4])
+
+-[rofi_PLUGIN_INSTALL_DIR]="`$PKG_CONFIG --variable=pluginsdir rofi`"
++[rofi_PLUGIN_INSTALL_DIR]="`echo $out/lib/rofi`"
+ AC_SUBST([rofi_PLUGIN_INSTALL_DIR])
+
+ LT_INIT([disable-static])
+--
+2.25.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/rofi-calc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/rofi-calc/default.nix
new file mode 100644
index 000000000000..ebf2d2f0475d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/rofi-calc/default.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, rofi-unwrapped
+, libqalculate
+, glib
+, cairo
+, gobject-introspection
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "rofi-calc";
+ version = "1.9";
+
+ src = fetchFromGitHub {
+ owner = "svenstaro";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "ZGY4ZtAG/ZnEnC80modZBV4RdRQElbkjeoKCEFVrncE=";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ rofi-unwrapped
+ libqalculate
+ glib
+ cairo
+ ];
+
+ patches = [
+ ./0001-Patch-plugindir-to-output.patch
+ ];
+
+ postPatch = ''
+ sed "s|qalc_binary = \"qalc\"|qalc_binary = \"${libqalculate}/bin/qalc\"|" -i src/calc.c
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Do live calculations in rofi!";
+ homepage = "https://github.com/svenstaro/rofi-calc";
+ license = licenses.mit;
+ maintainers = with maintainers; [ luc65r albakham ];
+ platforms = with platforms; linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/README.md b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/README.md
new file mode 100644
index 000000000000..26e91fc63133
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/README.md
@@ -0,0 +1,78 @@
+# Sage on nixos
+
+Sage is a pretty complex package that depends on many other complex packages and patches some of those. As a result, the sage nix package is also quite complex.
+
+Don't feel discouraged to fix, simplify or improve things though. The individual files have comments explaining their purpose. The most importent ones are `default.nix` linking everything together, `sage-src.nix` adding patches and `sagelib.nix` building the actual sage package.
+
+## The sage build is broken
+
+First you should find out which change to nixpkgs is at fault (if you don't already know). You can use `git-bisect` for that (see the manpage).
+
+If the build broke as a result of a package update, try those solutions in order:
+
+- search the [sage trac](https://trac.sagemath.org/) for keywords like "Upgrade <package>". Maybe somebody has already proposed a patch that fixes the issue. You can then add a `fetchpatch` to `sage-src.nix`.
+
+- check if [gentoo](https://github.com/cschwan/sage-on-gentoo/tree/master/sci-mathematics/sage), [debian](https://salsa.debian.org/science-team/sagemath/tree/master/debian) or [arch linux](https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/sagemath) already solved the problem. You can then again add a `fetchpatch` to `sage-src.nix`. If applicable you should also [propose the patch upstream](#proposing-a-sage-patch).
+
+- fix the problem yourself. First clone the sagemath source and then check out the sage version you want to patch:
+
+```
+[user@localhost ~]$ git clone git://github.com/sagemath/sage.git
+[user@localhost ~]$ cd sage
+[user@localhost sage]$ git checkout 8.2 # substitute the relevant version here
+```
+
+Then make the needed changes and generate a patch with `git diff`:
+
+```
+[user@localhost ~]$ <make changes>
+[user@localhost ~]$ git diff -u > /path/to/nixpkgs/pkgs/applications/science/math/sage/patches/name-of-patch.patch
+```
+
+Now just add the patch to `sage-src.nix` and test your changes. If they fix the problem, [propose them upstream](#proposing-a-sage-patch) and add a link to the trac ticket.
+
+- pin the package version in `default.nix` and add a note that explains why that is necessary.
+
+
+## Proposing a sage patch
+
+You can [login the sage trac using GitHub](https://trac.sagemath.org/login). Your username will then be `gh-<your-github-name>`. The only other way is to request a trac account via email. After that refer to [git the hard way](http://doc.sagemath.org/html/en/developer/manual_git.html#chapter-manual-git) in the sage documentation. The "easy way" requires a non-GitHub account (requested via email) and a special tool. The "hard way" is really not all that hard if you're a bit familiar with git.
+
+Here's the gist, assuming you want to use ssh key authentication. First, [add your public ssh key](https://trac.sagemath.org/prefs/sshkeys). Then:
+
+```
+[user@localhost ~]$ git clone git://github.com/sagemath/sage.git
+[user@localhost ~]$ cd sage
+[user@localhost sage]$ git remote add trac git@trac.sagemath.org:sage.git -t master
+[user@localhost sage]$ git checkout -b u/gh-<your-github-username>/<your-branch-name> develop
+[user@localhost sage]$ <make changes>
+[user@localhost sage]$ git add .
+[user@localhost sage]$ git commit
+[user@localhost sage]$ git show # review your changes
+[user@localhost sage]$ git push --set-upstream trac u/gh-<your-github-username>/<your-branch-name>
+```
+
+You now created a branch on the trac server (you *must* follow the naming scheme as you only have push access to branches with the `u/gh-<your-github-username>/` prefix).
+Now you can [create a new trac ticket](https://trac.sagemath.org/newticket).
+- Write a description of the change
+- set the type and component as appropriate
+- write your real name in the "Authors" field
+- write `u/gh-<your-github-username>/<your-branch-name>` in the "Branch" field
+- click "Create ticket"
+- click "Modify" on the top right of your ticket (for some reason you can only change the ticket status after you have created it)
+- set the ticket status from `new` to `needs_review`
+- click "Save changes"
+
+Refer to sages [Developer's Guide](http://doc.sagemath.org/html/en/developer/index.html) for further details.
+
+## I want to update sage
+
+You'll need to change the `version` field in `sage-src.nix`. Afterwards just try to build and let nix tell you which patches no longer apply (hopefully because they were adopted upstream). Remove those.
+
+Hopefully the build will succeed now. If it doesn't and the problem is obvious, fix it as described in [The sage build is broken](#the-sage-build-is-broken).
+If the problem is not obvious, you can try to first update sage to an intermediate version (remember that you can also set the `version` field to any git revision of sage) and locate the sage commit that introduced the issue. You can even use `git-bisect` for that (it will only be a bit tricky to keep track of which patches to apply). Hopefully after that the issue will be obvious.
+
+## Well, that didn't help!
+
+If you couldn't fix the problem, create a GitHub issue on the nixpkgs repo and ping @timokau (or whoever is listed in the `maintainers` list of the sage package).
+Describe what you did and why it didn't work. Afterwards it would be great if you help the next guy out and improve this documentation!
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/default.nix
new file mode 100644
index 000000000000..caf51c3da251
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/default.nix
@@ -0,0 +1,172 @@
+{ pkgs
+, withDoc ? false
+}:
+
+# Here sage and its dependencies are put together. Some dependencies may be pinned
+# as a last resort. Patching sage for compatibility with newer dependency versions
+# is always preferred, see `sage-src.nix` for that.
+
+let
+ inherit (pkgs) symlinkJoin callPackage nodePackages;
+
+ # https://trac.sagemath.org/ticket/15980 for tracking of python3 support
+ python = pkgs.python2.override {
+ packageOverrides = self: super: {
+ # python packages that appear unmaintained and were not accepted into the nixpkgs
+ # tree because of that. These packages are only dependencies of the more-or-less
+ # deprecated sagenb. However sagenb is still a default dependency and the doctests
+ # depend on it.
+ # See https://github.com/NixOS/nixpkgs/pull/38787 for a discussion.
+ # The dependency on the sage notebook (and therefore these packages) will be
+ # removed in the future:
+ # https://trac.sagemath.org/ticket/25837
+ flask-oldsessions = self.callPackage ./flask-oldsessions.nix {};
+ flask-openid = self.callPackage ./flask-openid.nix {};
+ python-openid = self.callPackage ./python-openid.nix {};
+ sagenb = self.callPackage ./sagenb.nix {
+ mathjax = nodePackages.mathjax;
+ };
+
+ # Package with a cyclic dependency with sage
+ pybrial = self.callPackage ./pybrial.nix {};
+
+ # `sagelib`, i.e. all of sage except some wrappers and runtime dependencies
+ sagelib = self.callPackage ./sagelib.nix {
+ inherit flint ecl arb;
+ inherit sage-src env-locations pynac singular;
+ linbox = pkgs.linbox.override { withSage = true; };
+ pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
+ };
+ };
+ };
+
+ jupyter-kernel-definition = {
+ displayName = "SageMath ${sage-src.version}";
+ argv = [
+ "${sage-with-env}/bin/sage" # FIXME which sage
+ "--python"
+ "-m"
+ "sage.repl.ipython_kernel"
+ "-f"
+ "{connection_file}"
+ ];
+ language = "sagemath";
+ # just one 16x16 logo is available
+ logo32 = "${sage-src}/doc/common/themes/sage/static/sageicon.png";
+ logo64 = "${sage-src}/doc/common/themes/sage/static/sageicon.png";
+ };
+
+ # A bash script setting various environment variables to tell sage where
+ # the files its looking fore are located. Also see `sage-env`.
+ env-locations = callPackage ./env-locations.nix {
+ inherit pari_data ecl;
+ inherit singular maxima-ecl;
+ cysignals = python.pkgs.cysignals;
+ three = nodePackages.three;
+ mathjax = nodePackages.mathjax;
+ };
+
+ # The shell file that gets sourced on every sage start. Will also source
+ # the env-locations file.
+ sage-env = callPackage ./sage-env.nix {
+ sagelib = python.pkgs.sagelib;
+ inherit env-locations;
+ inherit python ecl singular palp flint pynac pythonEnv maxima-ecl;
+ pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
+ };
+
+ # The documentation for sage, building it takes a lot of ram.
+ sagedoc = callPackage ./sagedoc.nix {
+ inherit sage-with-env;
+ inherit python maxima-ecl;
+ };
+
+ # sagelib with added wrappers and a dependency on sage-tests to make sure thet tests were run.
+ sage-with-env = callPackage ./sage-with-env.nix {
+ inherit pythonEnv;
+ inherit sage-env;
+ inherit pynac singular maxima-ecl;
+ pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
+ three = nodePackages.three;
+ };
+
+ # Doesn't actually build anything, just runs sages testsuite. This is a
+ # separate derivation to make it possible to re-run the tests without
+ # rebuilding sagelib (which takes ~30 minutes).
+ # Running the tests should take something in the order of 1h.
+ sage-tests = callPackage ./sage-tests.nix {
+ inherit sage-with-env;
+ };
+
+ sage-src = callPackage ./sage-src.nix {};
+
+ pythonRuntimeDeps = with python.pkgs; [
+ sagelib
+ pybrial
+ sagenb
+ cvxopt
+ networkx
+ service-identity
+ psutil
+ sympy
+ fpylll
+ matplotlib
+ tkinter # optional, as a matplotlib backend (use with `%matplotlib tk`)
+ scipy
+ ipywidgets
+ rpy2
+ sphinx
+ typing
+ pillow
+ ];
+
+ pythonEnv = python.buildEnv.override {
+ extraLibs = pythonRuntimeDeps;
+ ignoreCollisions = true;
+ } // { extraLibs = pythonRuntimeDeps; }; # make the libs accessible
+
+ arb = pkgs.arb.override { inherit flint; };
+
+ singular = pkgs.singular.override { inherit flint; };
+
+ # https://trac.sagemath.org/ticket/26625
+ maxima-ecl = pkgs.maxima-ecl;
+
+ # *not* to confuse with the python package "pynac"
+ pynac = pkgs.pynac.override { inherit singular flint; };
+
+ # With openblas (64 bit), the tests fail the same way as when sage is build with
+ # openblas instead of openblasCompat. Apparently other packages somehow use flints
+ # blas when it is available. Alternative would be to override flint to use
+ # openblasCompat.
+ flint = pkgs.flint.override { withBlas = false; };
+
+ # Multiple palp dimensions need to be available and sage expects them all to be
+ # in the same folder.
+ palp = symlinkJoin {
+ name = "palp-${pkgs.palp.version}";
+ paths = [
+ (pkgs.palp.override { dimensions = 4; doSymlink = false; })
+ (pkgs.palp.override { dimensions = 5; doSymlink = false; })
+ (pkgs.palp.override { dimensions = 6; doSymlink = true; })
+ (pkgs.palp.override { dimensions = 11; doSymlink = false; })
+ ];
+ };
+
+ # Sage expects those in the same directory.
+ pari_data = symlinkJoin {
+ name = "pari_data";
+ paths = with pkgs; [
+ pari-galdata
+ pari-seadata-small
+ ];
+ };
+
+ # https://trac.sagemath.org/ticket/22191
+ ecl = pkgs.ecl_16_1_2;
+in
+# A wrapper around sage that makes sure sage finds its docs (if they were build).
+callPackage ./sage.nix {
+ inherit sage-tests sage-with-env sagedoc jupyter-kernel-definition;
+ inherit withDoc;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/dist-tests.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/dist-tests.nix
new file mode 100644
index 000000000000..24a86a8f37a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/dist-tests.nix
@@ -0,0 +1,17 @@
+# Lists past failures and files associated with it. The intention is to build
+# up a subset of a testsuite that catches 95% of failures that are relevant for
+# distributions while only taking ~5m to run. This in turn makes it more
+# reasonable to re-test sage on dependency changes and makes it easier for
+# users to override the sage derivation.
+# This is an experiment for now. If it turns out that there really is a small
+# subset of files responsible for the vast majority of packaging tests, we can
+# think about moving this upstream.
+[
+ "src/sage/env.py" # [1]
+ "src/sage/misc/persist.pyx" # [1]
+ "src/sage/misc/inline_fortran.py" # [1]
+ "src/sage/repl/ipython_extension.py" # [1]
+]
+
+# Numbered list of past failures to annotate files with
+# [1] PYTHONPATH related issue https://github.com/NixOS/nixpkgs/commit/ec7f569211091282410050e89e68832d4fe60528
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
new file mode 100644
index 000000000000..bda2d23b9e52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
@@ -0,0 +1,49 @@
+{ writeTextFile
+, pari_data
+, pari
+, singular
+, maxima-ecl
+, conway_polynomials
+, graphs
+, elliptic_curves
+, polytopes_db
+, gap
+, ecl
+, combinatorial_designs
+, jmol
+, mathjax
+, three
+, cysignals
+}:
+
+# A bash script setting various environment variables to tell sage where
+# the files its looking fore are located. Also see `sage-env`.
+writeTextFile rec {
+ name = "sage-env-locations";
+ destination = "/${name}";
+ text = ''
+ export GP_DATA_DIR="${pari_data}/share/pari"
+ export PARI_DATA_DIR="${pari_data}"
+ export GPHELP="${pari}/bin/gphelp"
+ export GPDOCDIR="${pari}/share/pari/doc"
+ export SINGULARPATH='${singular}/share/singular'
+ export SINGULAR_SO='${singular}/lib/libSingular.so'
+ export GAP_SO='${gap}/lib/libgap.so'
+ export SINGULAR_EXECUTABLE='${singular}/bin/Singular'
+ export MAXIMA_FAS='${maxima-ecl}/lib/maxima/${maxima-ecl.version}/binary-ecl/maxima.fas'
+ export MAXIMA_PREFIX="${maxima-ecl}"
+ export CONWAY_POLYNOMIALS_DATA_DIR='${conway_polynomials}/share/conway_polynomials'
+ export GRAPHS_DATA_DIR='${graphs}/share/graphs'
+ export ELLCURVE_DATA_DIR='${elliptic_curves}/share/ellcurves'
+ export POLYTOPE_DATA_DIR='${polytopes_db}/share/reflexive_polytopes'
+ export GAP_ROOT_DIR='${gap}/share/gap/build-dir'
+ export ECLDIR='${ecl}/lib/ecl-${ecl.version}/'
+ export COMBINATORIAL_DESIGN_DATA_DIR="${combinatorial_designs}/share/combinatorial_designs"
+ export CREMONA_MINI_DATA_DIR="${elliptic_curves}/share/cremona"
+ export JMOL_DIR="${jmol}/share/jmol" # point to the directory that contains JmolData.jar
+ export JSMOL_DIR="${jmol}/share/jsmol"
+ export MATHJAX_DIR="${mathjax}/lib/node_modules/mathjax"
+ export THREEJS_DIR="${three}/lib/node_modules/three"
+ export SAGE_INCLUDE_DIRECTORIES="${cysignals}/lib/python2.7/site-packages"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/flask-oldsessions.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/flask-oldsessions.nix
new file mode 100644
index 000000000000..86fe9912c19e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/flask-oldsessions.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, python
+, flask
+}:
+
+buildPythonPackage rec {
+ pname = "Flask-OldSessions";
+ version = "0.10";
+
+ # no artifact on pypi: https://github.com/mitsuhiko/flask-oldsessions/issues/1
+ src = fetchFromGitHub {
+ owner = "mitsuhiko";
+ repo = "flask-oldsessions";
+ rev = version;
+ sha256 = "04b5m8njjiwld9a0zw55iqwvyjgwcpdbhz1cic8nyhgcmypbicqn";
+ };
+
+ propagatedBuildInputs = [
+ flask
+ ];
+
+ # missing module flask.testsuite, probably assumes an old version of flask
+ doCheck = false;
+ checkPhase = ''
+ ${python.interpreter} run-tests.py
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Provides a session class that works like the one in Flask before 0.10.";
+ license = licenses.bsd2;
+ maintainers = teams.sage.members;
+ homepage = "https://github.com/mitsuhiko/flask-oldsessions";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/flask-openid.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/flask-openid.nix
new file mode 100644
index 000000000000..900b033429ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/flask-openid.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, flask
+, python-openid
+}:
+
+buildPythonPackage rec {
+ pname = "Flask-OpenID";
+ version = "1.2.5";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1aycwmwi7ilcaa5ab8hm0bp6323zl8z25q9ha0gwrl8aihfgx3ss";
+ };
+
+ propagatedBuildInputs = [
+ flask
+ python-openid
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Adds openid support to flask applications";
+ license = licenses.bsd2;
+ maintainers = teams.sage.members;
+ homepage = "https://pythonhosted.org/Flask-OpenID/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
new file mode 100644
index 000000000000..8cd80281d0e4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
@@ -0,0 +1,35 @@
+From 8218bd4fdeb4c92de8af0d3aabec55980fc4fb3d Mon Sep 17 00:00:00 2001
+From: Timo Kaufmann <timokau@zoho.com>
+Date: Sun, 21 Oct 2018 17:52:40 +0200
+Subject: [PATCH] Only test py2/py3 optional tests when all of sage is tested
+
+---
+ src/sage/doctest/control.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py
+index bf18df8b2b..935c67abf7 100644
+--- a/src/sage/doctest/control.py
++++ b/src/sage/doctest/control.py
+@@ -362,7 +362,8 @@ class DocTestController(SageObject):
+ if not optionaltag_regex.search(o):
+ raise ValueError('invalid optional tag {!r}'.format(o))
+
+- options.optional |= auto_optional_tags
++ if "sage" in options.optional:
++ options.optional |= auto_optional_tags
+
+ self.options = options
+
+@@ -765,7 +766,7 @@ class DocTestController(SageObject):
+ sage: DC = DocTestController(DD, [dirname])
+ sage: DC.expand_files_into_sources()
+ sage: sorted(DC.sources[0].options.optional) # abs tol 1
+- ['guava', 'magma', 'py2']
++ ['guava', 'magma']
+
+ We check that files are skipped appropriately::
+
+--
+2.18.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
new file mode 100644
index 000000000000..e687281ad1a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
@@ -0,0 +1,19 @@
+diff --git a/src/sage/repl/configuration.py b/src/sage/repl/configuration.py
+index 67d7d2accf..18279581e2 100644
+--- a/src/sage/repl/configuration.py
++++ b/src/sage/repl/configuration.py
+@@ -9,10 +9,11 @@ the IPython simple prompt is being used::
+ sage: cmd = 'print([sys.stdin.isatty(), sys.stdout.isatty()])'
+ sage: import pexpect
+ sage: output = pexpect.run(
+- ....: 'bash -c \'echo "{0}" | sage\''.format(cmd),
++ ....: 'bash -c \'export SAGE_BANNER=no; echo "{0}" | sage\''.format(cmd),
+ ....: ).decode('utf-8', 'surrogateescape')
+- sage: 'sage: [False, True]' in output
+- True
++ sage: print(output)
++ sage...[False, True]
++ sage...Exiting Sage ...
+ """
+
+ #*****************************************************************************
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
new file mode 100644
index 000000000000..3f844e1b1ef5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
@@ -0,0 +1,95 @@
+diff --git a/src/sage/env.py b/src/sage/env.py
+index 061b94f3f1..67cd091540 100644
+--- a/src/sage/env.py
++++ b/src/sage/env.py
+@@ -189,88 +189,13 @@ var('MAXIMA_FAS')
+ var('SAGE_BANNER', '')
+ var('SAGE_IMPORTALL', 'yes')
+
+-
+-def _get_shared_lib_filename(libname, *additional_libnames):
+- """
+- Return the full path to a shared library file installed in the standard
+- location for the system within the ``LIBDIR`` prefix (or
+- ``$SAGE_LOCAL/lib`` in the case of manual build of Sage).
+-
+- This can also be passed more than one library name (e.g. for cases where
+- some library may have multiple names depending on the platform) in which
+- case the first one found is returned.
+-
+- This supports most *NIX variants (in which ``lib<libname>.so`` is found
+- under ``$SAGE_LOCAL/lib``), macOS (same, but with the ``.dylib``
+- extension), and Cygwin (under ``$SAGE_LOCAL/bin/cyg<libname>.dll``,
+- or ``$SAGE_LOCAL/bin/cyg<libname>-*.dll`` for versioned DLLs).
+-
+- For distributions like Debian that use a multiarch layout, we also try the
+- multiarch lib paths (i.e. ``/usr/lib/<arch>/``).
+-
+- Returns ``None`` if the file does not exist.
+-
+- EXAMPLES::
+-
+- sage: import sys
+- sage: from fnmatch import fnmatch
+- sage: from sage.env import _get_shared_lib_filename
+- sage: lib_filename = _get_shared_lib_filename("Singular",
+- ....: "singular-Singular")
+- sage: if sys.platform == 'cygwin':
+- ....: pattern = "*/cygSingular-*.dll"
+- ....: elif sys.platform == 'darwin':
+- ....: pattern = "*/libSingular.dylib"
+- ....: else:
+- ....: pattern = "*/lib*Singular.so"
+- sage: fnmatch(lib_filename, pattern)
+- True
+- sage: _get_shared_lib_filename("an_absurd_lib") is None
+- True
+- """
+-
+- for libname in (libname,) + additional_libnames:
+- if sys.platform == 'cygwin':
+- bindir = sysconfig.get_config_var('BINDIR')
+- pats = ['cyg{}.dll'.format(libname), 'cyg{}-*.dll'.format(libname)]
+- filenames = []
+- for pat in pats:
+- filenames += glob.glob(os.path.join(bindir, pat))
+-
+- # Note: This is not very robust, since if there are multi DLL
+- # versions for the same library this just selects one more or less
+- # at arbitrary. However, practically speaking, on Cygwin, there
+- # will only ever be one version
+- if filenames:
+- return filenames[-1]
+- else:
+- if sys.platform == 'darwin':
+- ext = 'dylib'
+- else:
+- ext = 'so'
+-
+- libdirs = [sysconfig.get_config_var('LIBDIR')]
+- multilib = sysconfig.get_config_var('MULTILIB')
+- if multilib:
+- libdirs.insert(0, os.path.join(libdirs[0], multilib))
+-
+- for libdir in libdirs:
+- basename = 'lib{}.{}'.format(libname, ext)
+- filename = os.path.join(libdir, basename)
+- if os.path.exists(filename):
+- return filename
+-
+- # Just return None if no files were found
+- return None
+-
+-
+ # locate singular shared object
+ # On Debian it's libsingular-Singular so try that as well
+-SINGULAR_SO = _get_shared_lib_filename('Singular', 'singular-Singular')
++SINGULAR_SO = '/default'
+ var('SINGULAR_SO', SINGULAR_SO)
+
+ # locate libgap shared object
+-GAP_SO= _get_shared_lib_filename('gap','')
++GAP_SO= '/default'
+ var('GAP_SO', GAP_SO)
+
+ # post process
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/docutils-0.15.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/docutils-0.15.patch
new file mode 100644
index 000000000000..63f5d2e146dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/docutils-0.15.patch
@@ -0,0 +1,24 @@
+diff --git a/src/sage/misc/sphinxify.py b/src/sage/misc/sphinxify.py
+index 4849c2bffa..76b7bc8602 100644
+--- a/src/sage/misc/sphinxify.py
++++ b/src/sage/misc/sphinxify.py
+@@ -25,6 +25,7 @@ from __future__ import absolute_import, print_function
+ import os
+ import re
+ import shutil
++import warnings
+ from tempfile import mkdtemp
+ from sphinx.application import Sphinx
+
+@@ -120,7 +121,10 @@ smart_quotes = no""")
+ # buildername, confoverrides, status, warning, freshenv).
+ sphinx_app = Sphinx(srcdir, confdir, outdir, doctreedir, format,
+ confoverrides, None, None, True)
+- sphinx_app.build(None, [rst_name])
++ with warnings.catch_warnings():
++ # Quick and dirty workaround for https://trac.sagemath.org/ticket/28856#comment:19
++ warnings.simplefilter("ignore")
++ sphinx_app.build(None, [rst_name])
+ sys.path = old_sys_path
+
+ # We need to remove "_" from __builtin__ that the gettext module installs
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/fix-ecl-race.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/fix-ecl-race.patch
new file mode 100644
index 000000000000..6056416c3a28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/fix-ecl-race.patch
@@ -0,0 +1,19 @@
+diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py
+index 02e18e67e7..2ebf6eb35f 100644
+--- a/src/sage/doctest/forker.py
++++ b/src/sage/doctest/forker.py
+@@ -1075,6 +1075,14 @@ class SageDocTestRunner(doctest.DocTestRunner, object):
+ sage: set(ex2.predecessors) == set([ex0,ex1])
+ True
+ """
++
++ # Fix ECL dir race conditions by using a separate dir for each process
++ # (https://trac.sagemath.org/ticket/26968)
++ os.environ['MAXIMA_USERDIR'] = "{}/sage-maxima-{}".format(
++ tempfile.gettempdir(),
++ os.getpid()
++ )
++
+ if isinstance(globs, RecordingDict):
+ globs.start()
+ example.sequence_number = len(self.history)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
new file mode 100644
index 000000000000..11ca74819615
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
@@ -0,0 +1,24 @@
+diff --git a/src/sage/tests/cmdline.py b/src/sage/tests/cmdline.py
+index bd6b76ab82..ccf1203dec 100644
+--- a/src/sage/tests/cmdline.py
++++ b/src/sage/tests/cmdline.py
+@@ -837,8 +837,6 @@ def test_executable(args, input="", timeout=100.0, **kwds):
+ ///
+ 4
+ }}}
+- sage: err # py2
+- ''
+ sage: ret
+ 0
+
+@@ -871,8 +869,8 @@ def test_executable(args, input="", timeout=100.0, **kwds):
+ sage: output = tmp_filename(ext='.sws')
+ sage: with open(input, 'w') as F:
+ ....: _ = F.write(s)
+- sage: test_executable(["sage", "--rst2sws", input, output]) # py2
+- ('', '', 0)
++ sage: test_executable(["sage", "--rst2sws", input, output])[2] # py2
++ 0
+ sage: import tarfile # py2
+ sage: f = tarfile.open(output, 'r') # py2
+ sage: print(f.extractfile('sage_worksheet/worksheet.html').read()) # py2
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch
new file mode 100644
index 000000000000..c5f95b498d53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch
@@ -0,0 +1,12 @@
+diff --git a/src/sage/all.py b/src/sage/all.py
+index c87c9372e9..862fca4fcc 100644
+--- a/src/sage/all.py
++++ b/src/sage/all.py
+@@ -306,6 +306,7 @@ warnings.filters.remove(('ignore', None, DeprecationWarning, None, 0))
+ # Ignore all deprecations from IPython etc.
+ warnings.filterwarnings('ignore', category=DeprecationWarning,
+ module='.*(IPython|ipykernel|jupyter_client|jupyter_core|nbformat|notebook|ipywidgets|storemagic)')
++warnings.filterwarnings('ignore', category=DeprecationWarning, message=r".*The import 'werkzeug.ImmutableDict' is deprecated")
+ # Ignore collections.abc warnings, there are a lot of them but they are
+ # harmless.
+ warnings.filterwarnings('ignore', category=DeprecationWarning,
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch
new file mode 100644
index 000000000000..49cdfd189b92
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch
@@ -0,0 +1,20 @@
+diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py
+index 6bdc9a0..31fc780 100644
+--- a/src/sage/doctest/parsing.py
++++ b/src/sage/doctest/parsing.py
+@@ -40,6 +40,7 @@ from .external import available_software
+
+ float_regex = re.compile('\s*([+-]?\s*((\d*\.?\d+)|(\d+\.?))([eE][+-]?\d+)?)')
+ optional_regex = re.compile(r'(py2|py3|long time|not implemented|not tested|known bug)|([^ a-z]\s*optional\s*[:-]*((\s|\w)*))')
++pari_stack_warning_regex = re.compile(r'\s*\*\*\*.*(Warning: increasing stack size to )\d+\.')
+ find_sage_prompt = re.compile(r"^(\s*)sage: ", re.M)
+ find_sage_continuation = re.compile(r"^(\s*)\.\.\.\.:", re.M)
+ random_marker = re.compile('.*random', re.I)
+@@ -935,6 +936,7 @@ class SageOutputChecker(doctest.OutputChecker):
+ <type 'float'>
+ """
+ got = self.human_readable_escape_sequences(got)
++ got = pari_stack_warning_regex.sub('', got)
+ if isinstance(want, MarkedOutput):
+ if want.random:
+ return True
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch
new file mode 100644
index 000000000000..1b64f39fe60f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch
@@ -0,0 +1,28 @@
+diff --git a/src/sage/all.py b/src/sage/all.py
+index ca309ef..be3186b 100644
+--- a/src/sage/all.py
++++ b/src/sage/all.py
+@@ -298,6 +298,23 @@ warnings.filterwarnings('ignore', module='matplotlib[.]font_manager')
+ warnings.filterwarnings('default',
+ '[\s\S]*See http://trac.sagemath.org/[0-9]* for details.')
+
++# Hotpatch around https://bugs.python.org/issue5755 which won't be fixed for
++# python 2.7. Idea by https://stackoverflow.com/a/36293331.
++from distutils.command.build_ext import build_ext
++from distutils.sysconfig import customize_compiler
++
++_build_extensions = build_ext.build_extensions
++
++def build_extensions_patched(self):
++ customize_compiler(self.compiler)
++ try:
++ self.compiler.compiler_so.remove("-Wstrict-prototypes")
++ except (AttributeError, ValueError):
++ pass
++ _build_extensions(self)
++
++build_ext.build_extensions = build_extensions_patched
++
+
+ # Set a new random number seed as the very last thing
+ # (so that printing initial_seed() and using that seed
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch
new file mode 100644
index 000000000000..9f502a669517
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch
@@ -0,0 +1,13 @@
+diff --git a/sagenb/__init__.py b/sagenb/__init__.py
+index 4db0d2cb..2fc5f01e 100644
+--- a/sagenb/__init__.py
++++ b/sagenb/__init__.py
+@@ -1,3 +1,8 @@
+ # -*- coding: utf-8 -*
+ # init
++import warnings
+ from . import storage
++
++# deprecation in attrs, needs to be fixed in twisted
++warnings.filterwarnings('ignore', category=DeprecationWarning,
++ message=r'The usage of `cmp` is deprecated and will be removed.*')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
new file mode 100644
index 000000000000..56f092796229
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
@@ -0,0 +1,58 @@
+diff --git a/src/sage_setup/docbuild/__init__.py b/src/sage_setup/docbuild/__init__.py
+index 73a078e619..059125c59f 100644
+--- a/src/sage_setup/docbuild/__init__.py
++++ b/src/sage_setup/docbuild/__init__.py
+@@ -86,27 +86,6 @@ def builder_helper(type):
+ """
+ Returns a function which builds the documentation for
+ output type ``type``.
+-
+- TESTS:
+-
+- Check that :trac:`25161` has been resolved::
+-
+- sage: from sage_setup.docbuild import DocBuilder, setup_parser
+- sage: DocBuilder._options = setup_parser().parse_args([])[0] # builder_helper needs _options to be set
+-
+- sage: import sage_setup.docbuild.sphinxbuild
+- sage: def raiseBaseException():
+- ....: raise BaseException("abort pool operation")
+- sage: original_runsphinx, sage_setup.docbuild.sphinxbuild.runsphinx = sage_setup.docbuild.sphinxbuild.runsphinx, raiseBaseException
+-
+- sage: from sage_setup.docbuild import builder_helper, build_ref_doc
+- sage: from sage_setup.docbuild import _build_many as build_many
+- sage: helper = builder_helper("html")
+- sage: try:
+- ....: build_many(build_ref_doc, [("docname", "en", "html", {})])
+- ....: except Exception as E:
+- ....: "Non-exception during docbuild: abort pool operation" in str(E)
+- True
+ """
+ def f(self, *args, **kwds):
+ output_dir = self._output_dir(type)
+@@ -128,10 +107,9 @@ def builder_helper(type):
+ logger.debug(build_command)
+
+ # Run Sphinx with Sage's special logger
+- sys.argv = ["sphinx-build"] + build_command.split()
+- from .sphinxbuild import runsphinx
++ args = "python -um sage_setup.docbuild.sphinxbuild -N".split() + build_command.split()
+ try:
+- runsphinx()
++ subprocess.check_call(args)
+ except Exception:
+ if ABORT_ON_ERROR:
+ raise
+diff --git a/src/sage_setup/docbuild/sphinxbuild.py b/src/sage_setup/docbuild/sphinxbuild.py
+index fe7eba43b2..463790965c 100644
+--- a/src/sage_setup/docbuild/sphinxbuild.py
++++ b/src/sage_setup/docbuild/sphinxbuild.py
+@@ -321,3 +321,8 @@ def runsphinx():
+ sys.stderr = saved_stderr
+ sys.stdout.flush()
+ sys.stderr.flush()
++
++if __name__ == '__main__':
++ import sys
++ sys.argv[0] = "sphinx-build"
++ runsphinx()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sympow-cache.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sympow-cache.patch
new file mode 100644
index 000000000000..20020d610f80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/patches/sympow-cache.patch
@@ -0,0 +1,21 @@
+diff --git a/src/sage/lfunctions/sympow.py b/src/sage/lfunctions/sympow.py
+index 1640ac4f6a..03578be7b8 100644
+--- a/src/sage/lfunctions/sympow.py
++++ b/src/sage/lfunctions/sympow.py
+@@ -50,6 +50,7 @@ from __future__ import print_function, absolute_import
+
+ import os
+
++from sage.env import DOT_SAGE
+ from sage.structure.sage_object import SageObject
+ from sage.misc.all import pager, verbose
+ import sage.rings.all
+@@ -76,7 +77,7 @@ class Sympow(SageObject):
+ """
+ Used to call sympow with given args
+ """
+- cmd = 'sympow %s'%args
++ cmd = 'env SYMPOW_CACHEDIR="%s/sympow///" sympow %s' % (DOT_SAGE, args)
+ v = os.popen(cmd).read().strip()
+ verbose(v, level=2)
+ return v
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/pybrial.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/pybrial.nix
new file mode 100644
index 000000000000..5fc8a4aa6f48
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/pybrial.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, brial
+}:
+# This has a cyclic dependency with sage. I don't include sage in the
+# buildInputs and let python figure it out at runtime. Because of this,
+# I don't include the package in the main nipxkgs tree. It wouldn't be useful
+# outside of sage anyways (as you could just directly depend on sage and use
+# it).
+buildPythonPackage rec {
+ pname = "pyBRiAl";
+ version = brial.version;
+
+ # included with BRiAl source
+ src = brial.src;
+
+ sourceRoot = "source/sage-brial";
+
+ meta = with stdenv.lib; {
+ description = "python implementation of BRiAl";
+ license = licenses.gpl2;
+ maintainers = teams.sage.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/python-openid.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/python-openid.nix
new file mode 100644
index 000000000000..1e8a908ac79a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/python-openid.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, django
+, nose
+, twill
+, pycrypto
+}:
+
+buildPythonPackage rec {
+ pname = "python-openid";
+ version = "2.2.5";
+
+ disabled = isPy3k;
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1vvhxlghjan01snfdc4k7ykd80vkyjgizwgg9bncnin8rqz1ricj";
+ };
+
+ propagatedBuildInputs = [
+ pycrypto
+ ];
+
+ # Cannot access the djopenid example module.
+ # I don't know how to fix that (adding the examples dir to PYTHONPATH doesn't work)
+ doCheck = false;
+ checkInputs = [ nose django twill ];
+ checkPhase = ''
+ nosetests
+ '';
+
+ meta = with stdenv.lib; {
+ description = "OpenID library for Python";
+ license = licenses.asl20;
+ maintainers = teams.sage.members;
+ homepage = "https://github.com/openid/python-openid/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
new file mode 100644
index 000000000000..ba7f6ccd18b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
@@ -0,0 +1,189 @@
+{ stdenv
+, lib
+, writeTextFile
+, python
+, sagelib
+, env-locations
+, gfortran
+, bash
+, coreutils
+, gnused
+, gnugrep
+, binutils
+, pythonEnv
+, python3
+, pkg-config
+, pari
+, gap
+, ecl
+, maxima-ecl
+, singular
+, fflas-ffpack
+, givaro
+, gd
+, libpng
+, linbox
+, m4ri
+, giac
+, palp
+, rWrapper
+, gfan
+, cddlib
+, jmol
+, tachyon
+, glpk
+, eclib
+, sympow
+, nauty
+, sqlite
+, ppl
+, ecm
+, lcalc
+, rubiks
+, flintqs
+, blas
+, lapack
+, flint
+, gmp
+, mpfr
+, pynac
+, zlib
+, gsl
+, ntl
+, jdk8
+, less
+}:
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+# This generates a `sage-env` shell file that will be sourced by sage on startup.
+# It sets up various environment variables, telling sage where to find its
+# dependencies.
+
+let
+ jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+
+ runtimepath = (lib.makeBinPath ([
+ "@sage-local@"
+ "@sage-local@/build"
+ pythonEnv
+ # empty python env to add python wrapper that clears PYTHONHOME (see
+ # wrapper.nix). This is necessary because sage will call the python3 binary
+ # (from python2 code). The python2 PYTHONHOME (again set in wrapper.nix)
+ # will then confuse python3, if it is not overwritten.
+ python3.buildEnv
+ gfortran # for inline fortran
+ stdenv.cc # for cython
+ bash
+ coreutils
+ gnused
+ gnugrep
+ binutils.bintools
+ pkg-config
+ pari
+ gap
+ ecl
+ maxima-ecl
+ singular
+ giac
+ palp
+ # needs to be rWrapper since the default `R` doesn't include R's default libraries
+ rWrapper
+ gfan
+ cddlib
+ jmol
+ tachyon
+ glpk
+ eclib
+ sympow
+ nauty
+ sqlite
+ ppl
+ ecm
+ lcalc
+ rubiks
+ flintqs
+ jdk # only needed for `jmol` which may be replaced in the future
+ less # needed to prevent transient test errors until https://github.com/ipython/ipython/pull/11864 is resolved
+ ]
+ ));
+in
+writeTextFile rec {
+ name = "sage-env";
+ destination = "/${name}";
+ text = ''
+ export PKG_CONFIG_PATH='${lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
+ # This should only be needed during build. However, since the doctests
+ # also test the cython build (for example in src/sage/misc/cython.py),
+ # it is also needed for the testsuite to pass. We could fix the
+ # testsuite instead, but since all the packages are also runtime
+ # dependencies it doesn't really hurt to include them here.
+ singular
+ blas lapack
+ fflas-ffpack givaro
+ gd
+ libpng zlib
+ gsl
+ linbox
+ m4ri
+ ]
+ }'
+ export SAGE_ROOT='${sagelib.src}'
+ export SAGE_LOCAL='@sage-local@'
+ export SAGE_SHARE='${sagelib}/share'
+ orig_path="$PATH"
+ export PATH='${runtimepath}'
+
+ # set dependent vars, like JUPYTER_CONFIG_DIR
+ source "${sagelib.src}/src/bin/sage-env"
+ export PATH="$RUNTIMEPATH_PREFIX:${runtimepath}:$orig_path" # sage-env messes with PATH
+
+ export SAGE_LOGS="$TMPDIR/sage-logs"
+ export SAGE_DOC="''${SAGE_DOC_OVERRIDE:-doc-placeholder}"
+ export SAGE_DOC_SRC="''${SAGE_DOC_SRC_OVERRIDE:-${sagelib.src}/src/doc}"
+
+ # set locations of dependencies
+ . ${env-locations}/sage-env-locations
+
+ # needed for cython
+ export CC='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc'
+ # cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar
+ export LDFLAGS='${
+ lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [
+ flint
+ gap
+ glpk
+ gmp
+ mpfr
+ pari
+ pynac
+ zlib
+ eclib
+ gsl
+ ntl
+ jmol
+ sympow
+ ])
+ }'
+ export CFLAGS='${
+ lib.concatStringsSep " " (map (pkg: "-isystem ${pkg}/include") [
+ singular
+ gmp.dev
+ glpk
+ flint
+ gap
+ pynac
+ mpfr.dev
+ ])
+ }'
+
+ export SAGE_LIB='${sagelib}/${python.sitePackages}'
+
+ export SAGE_EXTCODE='${sagelib.src}/src/ext'
+
+ # for find_library
+ export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular]}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
+ '';
+} // {
+ lib = sagelib; # equivalent of `passthru`, which `writeTextFile` doesn't support
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
new file mode 100644
index 000000000000..4791d12450a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
@@ -0,0 +1,179 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, runtimeShell
+}:
+
+# This file is responsible for fetching the sage source and adding necessary patches.
+# It does not actually build anything, it just copies the patched sources to $out.
+# This is done because multiple derivations rely on these sources and they should
+# all get the same sources with the same patches applied.
+
+stdenv.mkDerivation rec {
+ version = "8.9";
+ pname = "sage-src";
+
+ src = fetchFromGitHub {
+ owner = "sagemath";
+ repo = "sage";
+ rev = version;
+ sha256 = "1bwga58x3s8z42w5h51c232f91ndsc1861dlb1glhax3pn0rhn3a";
+ };
+
+ # Patches needed because of particularities of nix or the way this is packaged.
+ # The goal is to upstream all of them and get rid of this list.
+ nixPatches = [
+ # https://trac.sagemath.org/ticket/25358
+ (fetchpatch {
+ name = "safe-directory-test-without-patch.patch";
+ url = "https://git.sagemath.org/sage.git/patch?id2=8bdc326ba57d1bb9664f63cf165a9e9920cc1afc&id=dc673c17555efca611f68398d5013b66e9825463";
+ sha256 = "1hhannz7xzprijakn2w2d0rhd5zv2zikik9p51i87bas3nc658f7";
+ })
+
+ # `is_unitary` test in `matrix_double_dense.pyx` fails with some BLAS implementations
+ # https://trac.sagemath.org/ticket/29297 should be included in 9.1
+ (fetchpatch {
+ name = "is_unitary-special-case.patch";
+ url = "https://git.sagemath.org/sage.git/patch?id=cc3eb9ffa991e328b09028d32aab7e7cc2ddbb6a";
+ sha256 = "0jq4w8hnp5c9q99011ldr4n3knvm1rx2g85z0hidv3i9x868p0ay";
+ })
+
+ # Unfortunately inclusion in upstream sage was rejected. Instead the bug was
+ # fixed in python, but of course not backported to 2.7. So we'll probably
+ # have to keep this around until 2.7 is deprecated.
+ # https://trac.sagemath.org/ticket/25316
+ # https://github.com/python/cpython/pull/7476
+ ./patches/python-5755-hotpatch.patch
+
+ # Make sure py2/py3 tests are only run when their expected context (all "sage"
+ # tests) are also run. That is necessary to test dochtml individually. See
+ # https://trac.sagemath.org/ticket/26110 for an upstream discussion.
+ ./patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
+
+ # Fixes a potential race condition which can lead to transient doctest failures.
+ ./patches/fix-ecl-race.patch
+
+ # Not necessary since library location is set explicitly
+ # https://trac.sagemath.org/ticket/27660#ticket
+ ./patches/do-not-test-find-library.patch
+
+ # Parallelize docubuild using subprocesses, fixing an isolation issue. See
+ # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE
+ ./patches/sphinx-docbuild-subprocesses.patch
+
+ # Fix doctest failures with docutils 0.15:
+ # https://nix-cache.s3.amazonaws.com/log/dzmzrb2zvardsmpy7idg7djkizmkzdhs-sage-tests-8.9.drv
+ # https://trac.sagemath.org/ticket/28856#comment:19
+ ./patches/docutils-0.15.patch
+ ];
+
+ # Since sage unfortunately does not release bugfix releases, packagers must
+ # fix those bugs themselves. This is for critical bugfixes, where "critical"
+ # == "causes (transient) doctest failures / somebody complained".
+ bugfixPatches = [
+ # To help debug the transient error in
+ # https://trac.sagemath.org/ticket/23087 when it next occurs.
+ ./patches/configurationpy-error-verbose.patch
+ ];
+
+ # Patches needed because of package updates. We could just pin the versions of
+ # dependencies, but that would lead to rebuilds, confusion and the burdons of
+ # maintaining multiple versions of dependencies. Instead we try to make sage
+ # compatible with never dependency versions when possible. All these changes
+ # should come from or be proposed to upstream. This list will probably never
+ # be empty since dependencies update all the time.
+ packageUpgradePatches = let
+ # Fetch a diff between `base` and `rev` on sage's git server.
+ # Used to fetch trac tickets by setting the `base` to the last release and the
+ # `rev` to the last commit of the ticket.
+ fetchSageDiff = { base, rev, name ? "sage-diff-${base}-${rev}.patch", ...}@args: (
+ fetchpatch ({
+ inherit name;
+ url = "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}";
+ # We don't care about sage's own build system (which builds all its dependencies).
+ # Exclude build system changes to avoid conflicts.
+ excludes = [ "build/*" ];
+ } // builtins.removeAttrs args [ "rev" "base" ])
+ );
+ in [
+ # New glpk version has new warnings, filter those out until upstream sage has found a solution
+ # Should be fixed with glpk > 4.65.
+ # https://trac.sagemath.org/ticket/24824
+ ./patches/pari-stackwarn.patch # not actually necessary since the pari upgrade, but necessary for the glpk patch to apply
+ (fetchpatch {
+ url = "https://salsa.debian.org/science-team/sagemath/raw/58bbba93a807ca2933ca317501d093a1bb4b84db/debian/patches/dt-version-glpk-4.65-ignore-warnings.patch";
+ sha256 = "0b9293v73wb4x13wv5zwyjgclc01zn16msccfzzi6znswklgvddp";
+ stripLen = 1;
+ })
+
+ # After updating smypow to (https://trac.sagemath.org/ticket/3360) we can
+ # now set the cache dir to be withing the .sage directory. This is not
+ # strictly necessary, but keeps us from littering in the user's HOME.
+ ./patches/sympow-cache.patch
+
+ # https://trac.sagemath.org/ticket/28472
+ (fetchpatch {
+ name = "eclib-20190909.patch";
+ url = "https://git.sagemath.org/sage.git/patch?id=d27dc479a5772d59e4bc85d805b6ffd595284f1d";
+ sha256 = "1nf1s9y7n30lhlbdnam7sghgaq9nasmv96415gl5jlcf7a3hlxk3";
+ })
+
+ # ignore a deprecation warning for usage of `cmp` in the attrs library in the doctests
+ ./patches/ignore-cmp-deprecation.patch
+
+ # Werkzeug has deprecated ImmutableDict, but it is still used in legacy
+ # sagenb. That's no big issue since sagenb will be removed soon anyways.
+ ./patches/ignore-werkzeug-immutable-dict-deprecation.patch
+
+ # threejs r109 (#28560)
+ (fetchpatch {
+ name = "threejs-r109.patch";
+ url = "https://git.sagemath.org/sage.git/patch?id=fcc11d6effa39f375bc5f4ea5831fb7a2f2767da";
+ sha256 = "0hnmc8ld3bblks0hcjvjjaydkgwdr1cs3dbl2ys4gfq964pjgqwc";
+ })
+
+ # https://trac.sagemath.org/ticket/28911
+ (fetchpatch {
+ name = "sympy-1.5.patch";
+ url = "https://git.sagemath.org/sage.git/patch/?h=c6d0308db15efd611211d26cfcbefbd180fc0831";
+ sha256 = "0nwai2jr22h49km4hx3kwafs3mzsc5kwsv7mqwjf6ibwfx2bbgyq";
+ })
+
+ # https://trac.sagemath.org/ticket/29313 (patch from ArchLinux)
+ (fetchpatch {
+ name = "pari-2.11.3.patch";
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/sagemath-pari-2.11.3.patch?h=sagemath-git&id=02e1d58bd1cd70935d69a4990469d18be6bd2c43";
+ sha256 = "0z07444zvijyw96d11q7j81pvg7ysd6ycf1bbbjr6za9y74hv7d2";
+ })
+ ];
+
+ patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
+
+ postPatch = ''
+ # make sure shebangs etc are fixed, but sage-python23 still works
+ find . -type f -exec sed \
+ -e 's/sage-python23/python/g' \
+ -i {} \;
+
+ echo '#!${runtimeShell}
+ python "$@"' > build/bin/sage-python23
+
+ # Make sure sage can at least be imported without setting any environment
+ # variables. It won't be close to feature complete though.
+ sed -i \
+ "s|var('SAGE_LOCAL',.*|var('SAGE_LOCAL', '$out/src')|" \
+ src/sage/env.py
+
+ # Do not use sage-env-config (generated by ./configure).
+ # Instead variables are set manually.
+ echo '# do nothing' > src/bin/sage-env-config
+ '';
+
+ configurePhase = "# do nothing";
+
+ buildPhase = "# do nothing";
+
+ installPhase = ''
+ cp -r . "$out"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-tests.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-tests.nix
new file mode 100644
index 000000000000..451edb8f085e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-tests.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, lib
+, sage-with-env
+, makeWrapper
+, files ? null # "null" means run all tests
+, longTests ? true # run tests marked as "long time" (roughly doubles runtime)
+# Run as many tests as possible in approximately n seconds. This will give each
+# file to test a "time budget" and stop tests if it is exceeded. 300 is the
+# upstream default value.
+# https://trac.sagemath.org/ticket/25270 for details.
+, timeLimit ? null
+}:
+
+# for a quick test of some source files:
+# nix-build -E 'with (import ./. {}); sage.tests.override { files = [ "src/sage/misc/cython.py" ];}'
+
+let
+ src = sage-with-env.env.lib.src;
+ runAllTests = files == null;
+ testArgs = if runAllTests then "--all" else testFileList;
+ patienceSpecifier = if longTests then "--long" else "";
+ timeSpecifier = if timeLimit == null then "" else "--short ${toString timeLimit}";
+ relpathToArg = relpath: lib.escapeShellArg "${src}/${relpath}"; # paths need to be absolute
+ testFileList = lib.concatStringsSep " " (map relpathToArg files);
+in
+stdenv.mkDerivation {
+ version = src.version;
+ pname = "sage-tests";
+ inherit src;
+
+ buildInputs = [
+ makeWrapper
+ sage-with-env
+ ];
+
+ dontUnpack = true;
+ configurePhase = "#do nothing";
+ buildPhase = "#do nothing";
+
+ installPhase = ''
+ # This output is not actually needed for anything, the package just
+ # exists to decouple the sage build from its t ests.
+
+ mkdir -p "$out/bin"
+ # Like a symlink, but make sure that $0 points to the original.
+ makeWrapper "${sage-with-env}/bin/sage" "$out/bin/sage"
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ export HOME="$TMPDIR/sage-home"
+ mkdir -p "$HOME"
+
+ # avoid running out of memory with many threads in subprocesses, see
+ # https://github.com/NixOS/nixpkgs/pull/65802
+ export GLIBC_TUNABLES=glibc.malloc.arena_max=4
+
+ echo "Running sage tests with arguments ${timeSpecifier} ${patienceSpecifier} ${testArgs}"
+ "sage" -t --timeout=0 --nthreads "$NIX_BUILD_CORES" --optional=sage ${timeSpecifier} ${patienceSpecifier} ${testArgs}
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
new file mode 100644
index 000000000000..87c1e07f5307
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
@@ -0,0 +1,137 @@
+{ stdenv
+, lib
+, makeWrapper
+, sage-env
+, blas
+, lapack
+, pkg-config
+, three
+, singular
+, gap
+, giac
+, maxima-ecl
+, pari
+, gmp
+, gfan
+, python2
+, flintqs
+, eclib
+, ntl
+, ecm
+, pynac
+, pythonEnv
+}:
+
+# lots of segfaults with (64 bit) blas
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+# Wrapper that combined `sagelib` with `sage-env` to produce an actually
+# executable sage. No tests are run yet and no documentation is built.
+
+let
+ buildInputs = [
+ pythonEnv # for patchShebangs
+ makeWrapper
+ pkg-config
+ blas lapack
+ singular
+ three
+ pynac
+ giac
+ gap
+ pari
+ gmp
+ gfan
+ maxima-ecl
+ eclib
+ flintqs
+ ntl
+ ecm
+ ];
+
+ # remove python prefix, replace "-" in the name by "_", apply patch_names
+ # python2.7-some-pkg-1.0 -> some_pkg-1.0
+ pkg_to_spkg_name = pkg: patch_names: let
+ parts = lib.splitString "-" pkg.name;
+ # remove python2.7-
+ stripped_parts = if (builtins.head parts) == python2.libPrefix then builtins.tail parts else parts;
+ version = lib.last stripped_parts;
+ orig_pkgname = lib.init stripped_parts;
+ pkgname = patch_names (lib.concatStringsSep "_" orig_pkgname);
+ in pkgname + "-" + version;
+
+
+ # return the names of all dependencies in the transitive closure
+ transitiveClosure = dep:
+ if dep == null then
+ # propagatedBuildInputs might contain null
+ # (although that might be considered a programming error in the derivation)
+ []
+ else
+ [ dep ] ++ (
+ if builtins.hasAttr "propagatedBuildInputs" dep then
+ lib.unique (builtins.concatLists (map transitiveClosure dep.propagatedBuildInputs))
+ else
+ []
+ );
+
+ allInputs = lib.remove null (buildInputs ++ pythonEnv.extraLibs);
+ transitiveDeps = lib.unique (builtins.concatLists (map transitiveClosure allInputs ));
+ # fix differences between spkg and sage names
+ # (could patch sage instead, but this is more lightweight and also works for packages depending on sage)
+ patch_names = builtins.replaceStrings [
+ "zope.interface"
+ "node_three"
+ ] [
+ "zope_interface"
+ "threejs"
+ ];
+ # spkg names (this_is_a_package-version) of all transitive deps
+ input_names = map (dep: pkg_to_spkg_name dep patch_names) transitiveDeps;
+in
+stdenv.mkDerivation rec {
+ version = src.version;
+ pname = "sage-with-env";
+ src = sage-env.lib.src;
+
+ inherit buildInputs;
+
+ configurePhase = "#do nothing";
+
+ buildPhase = ''
+ mkdir installed
+ for pkg in ${lib.concatStringsSep " " input_names}; do
+ touch "installed/$pkg"
+ done
+
+ # threejs version is in format 0.<version>.minor, but sage currently still
+ # relies on installed_packages for the online version of threejs to work
+ # and expects the format r<version>. This is a hotfix for now.
+ # upstream: https://trac.sagemath.org/ticket/26434
+ rm "installed/threejs"*
+ touch "installed/threejs-r${lib.versions.minor three.version}"
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/var/lib/sage"
+ cp -r installed "$out/var/lib/sage"
+
+ mkdir -p "$out/etc"
+ # sage tests will try to create this file if it doesn't exist
+ touch "$out/etc/sage-started.txt"
+
+ mkdir -p "$out/build"
+
+ # the scripts in src/bin will find the actual sage source files using environment variables set in `sage-env`
+ cp -r src/bin "$out/bin"
+ cp -r build/bin "$out/build/bin"
+
+ cp -f '${sage-env}/sage-env' "$out/bin/sage-env"
+ substituteInPlace "$out/bin/sage-env" \
+ --subst-var-by sage-local "$out"
+ '';
+
+ passthru = {
+ env = sage-env;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage.nix
new file mode 100644
index 000000000000..a21bffea14cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sage.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, makeWrapper
+, sage-tests
+, sage-with-env
+, jupyter-kernel-definition
+, jupyter-kernel
+, sagedoc
+, withDoc
+}:
+
+# A wrapper that makes sure sage finds its docs (if they were build) and the
+# jupyter kernel spec.
+
+let
+ # generate kernel spec + default kernels
+ kernel-specs = jupyter-kernel.create {
+ definitions = jupyter-kernel.default // {
+ sagemath = jupyter-kernel-definition;
+ };
+ };
+in
+stdenv.mkDerivation rec {
+ version = src.version;
+ pname = "sage";
+ src = sage-with-env.env.lib.src;
+
+ buildInputs = [
+ makeWrapper
+
+ # This is a hack to make sure sage-tests is evaluated. It doesn't acutally
+ # produce anything of value, it just decouples the tests from the build.
+ sage-tests
+ ];
+
+ dontUnpack = true;
+ configurePhase = "#do nothing";
+ buildPhase = "#do nothing";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ makeWrapper "${sage-with-env}/bin/sage" "$out/bin/sage" \
+ --set SAGE_DOC_SRC_OVERRIDE "${src}/src/doc" ${
+ stdenv.lib.optionalString withDoc "--set SAGE_DOC_OVERRIDE ${sagedoc}/share/doc/sage"
+ } \
+ --prefix JUPYTER_PATH : "${kernel-specs}"
+ '';
+
+ doInstallCheck = withDoc;
+ installCheckPhase = ''
+ export HOME="$TMPDIR/sage-home"
+ mkdir -p "$HOME"
+ "$out/bin/sage" -c 'browse_sage_doc._open("reference", testing=True)'
+ '';
+
+ passthru = {
+ tests = sage-tests;
+ quicktest = sage-tests.override { longTests = false; timeLimit = 600; }; # as many tests as possible in ~10m
+ doc = sagedoc;
+ lib = sage-with-env.env.lib;
+ kernelspec = jupyter-kernel-definition;
+ };
+
+ meta = with stdenv.lib; {
+ broken = true;
+ description = "Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab";
+ license = licenses.gpl2;
+ maintainers = teams.sage.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
new file mode 100644
index 000000000000..bf618fe64f45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
@@ -0,0 +1,84 @@
+{ stdenv
+, sage-with-env
+, python
+, maxima-ecl
+, tachyon
+, jmol
+, cddlib
+}:
+
+stdenv.mkDerivation rec {
+ version = src.version;
+ pname = "sagedoc";
+ src = sage-with-env.env.lib.src;
+
+
+ # Building the documentation has many dependencies, because all documented
+ # modules are imported and because matplotlib is used to produce plots.
+ buildInputs = [
+ sage-with-env.env.lib
+ python
+ maxima-ecl
+ tachyon
+ jmol
+ cddlib
+ ] ++ (with python.pkgs; [
+ psutil
+ future
+ sphinx
+ sagenb
+ scipy
+ sympy
+ matplotlib
+ pillow
+ networkx
+ ipykernel
+ ipywidgets
+ jupyter_client
+ typing
+ pybrial
+ ]);
+
+ unpackPhase = ''
+ export SAGE_DOC_OVERRIDE="$PWD/share/doc/sage"
+ export SAGE_DOC_SRC_OVERRIDE="$PWD/docsrc"
+
+ cp -r "${src}/src/doc" "$SAGE_DOC_SRC_OVERRIDE"
+ chmod -R 755 "$SAGE_DOC_SRC_OVERRIDE"
+ '';
+
+ buildPhase = ''
+ export SAGE_NUM_THREADS="$NIX_BUILD_CORES"
+ export HOME="$TMPDIR/sage_home"
+ mkdir -p "$HOME"
+
+ # needed to link them in the sage docs using intersphinx
+ export PPLPY_DOCS=${python.pkgs.pplpy.doc}/share/doc/pplpy
+
+ ${sage-with-env}/bin/sage -python -m sage_setup.docbuild \
+ --mathjax \
+ --no-pdf-links \
+ all html
+ '';
+
+ installPhase = ''
+ cd "$SAGE_DOC_OVERRIDE"
+
+ mkdir -p "$out/share/doc/sage"
+ cp -r html "$out"/share/doc/sage
+
+ # Replace duplicated files by symlinks (Gentoo)
+ cd "$out"/share/doc/sage
+ mv html/en/_static{,.tmp}
+ for _dir in `find -name _static` ; do
+ rm -r $_dir
+ ln -s /share/doc/sage/html/en/_static $_dir
+ done
+ mv html/en/_static{.tmp,}
+ '';
+
+ doCheck = true;
+ checkPhase = ''
+ ${sage-with-env}/bin/sage -t --optional=dochtml --all
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
new file mode 100644
index 000000000000..830d806a8bcd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
@@ -0,0 +1,156 @@
+{ sage-src
+, env-locations
+, perl
+, buildPythonPackage
+, arb
+, blas
+, lapack
+, brial
+, cliquer
+, cypari2
+, cysignals
+, cython
+, ecl
+, eclib
+, ecm
+, flint
+, gd
+, givaro
+, glpk
+, gsl
+, iml
+, jinja2
+, lcalc
+, lrcalc
+, gap
+, linbox
+, m4ri
+, m4rie
+, libmpc
+, mpfi
+, ntl
+, numpy
+, pari
+, pkgconfig
+, pkg-config
+, planarity
+, ppl
+, pynac
+, python
+, ratpoints
+, readline
+, rankwidth
+, symmetrica
+, zn_poly
+, fflas-ffpack
+, boost
+, singular
+, pip
+, jupyter_core
+, libhomfly
+, libbraiding
+, gmpy2
+, pplpy
+}:
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+# This is the core sage python package. Everything else is just wrappers gluing
+# stuff together. It is not very useful on its own though, since it will not
+# find many of its dependencies without `sage-env`, will not be tested without
+# `sage-tests` and will not have html docs without `sagedoc`.
+
+buildPythonPackage rec {
+ format = "other";
+ version = src.version;
+ pname = "sagelib";
+ src = sage-src;
+
+ nativeBuildInputs = [
+ iml
+ perl
+ jupyter_core
+ pkg-config
+ pip # needed to query installed packages
+ ];
+
+ buildInputs = [
+ gd
+ readline
+ iml
+ ];
+
+ propagatedBuildInputs = [
+ cypari2
+ jinja2
+ numpy
+ pkgconfig
+ boost
+ arb
+ brial
+ cliquer
+ ecl
+ eclib
+ ecm
+ fflas-ffpack
+ flint
+ givaro
+ glpk
+ gsl
+ lcalc
+ gap
+ libmpc
+ linbox
+ lrcalc
+ m4ri
+ m4rie
+ mpfi
+ ntl
+ blas
+ lapack
+ pari
+ planarity
+ ppl
+ pynac
+ rankwidth
+ ratpoints
+ singular
+ symmetrica
+ zn_poly
+ pip
+ cython
+ cysignals
+ libhomfly
+ libbraiding
+ gmpy2
+ pplpy
+ ];
+
+ buildPhase = ''
+ export SAGE_ROOT="$PWD"
+ export SAGE_LOCAL="$SAGE_ROOT"
+ export SAGE_SHARE="$SAGE_LOCAL/share"
+
+ # set locations of dependencies (needed for nbextensions like threejs)
+ . ${env-locations}/sage-env-locations
+
+ export JUPYTER_PATH="$SAGE_LOCAL/jupyter"
+ export PATH="$SAGE_ROOT/build/bin:$SAGE_ROOT/src/bin:$PATH"
+
+ export SAGE_NUM_THREADS="$NIX_BUILD_CORES"
+
+ mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython"
+ mkdir -p "var/lib/sage/installed"
+
+ source build/bin/sage-dist-helpers
+ cd src
+
+ ${python.interpreter} -u setup.py --no-user-cfg build
+ '';
+
+ installPhase = ''
+ ${python.interpreter} -u setup.py --no-user-cfg install --prefix=$out
+
+ rm -r "$out/${python.sitePackages}/sage/cython_debug"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagenb.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagenb.nix
new file mode 100644
index 000000000000..ad5c53b6c118
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/sage/sagenb.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, python
+, buildPythonPackage
+, fetchFromGitHub
+, mathjax
+, twisted
+, flask
+, flask-oldsessions
+, flask-openid
+, flask-autoindex
+, flask-babel
+}:
+
+# Has a cyclic dependency with sage (not expressed here) and is not useful outside of sage.
+# Deprecated, hopefully soon to be removed. See
+# https://trac.sagemath.org/ticket/25837
+
+buildPythonPackage rec {
+ pname = "sagenb";
+ version = "1.1.2";
+
+ src = fetchFromGitHub {
+ owner = "sagemath";
+ repo = "sagenb";
+ rev = version;
+ sha256 = "0bxvhr03qh2nsjdfc4pyfiqrn9jhp3vf7irsc9gqx0185jlblbxs";
+ };
+
+ patches = [
+ # cmp deprecation in attrs needs to be handled in twisted
+ ./patches/sagenb-cmp-deprecation.patch
+ ];
+
+ propagatedBuildInputs = [
+ twisted
+ flask
+ flask-oldsessions
+ flask-openid
+ flask-autoindex
+ flask-babel
+ ];
+
+ # tests depend on sage
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Sage Notebook";
+ license = licenses.gpl3Plus;
+ maintainers = teams.sage.members;
+ };
+
+ # let sagenb use mathjax
+ postInstall = ''
+ mkdir -p "$out/${python.sitePackages}/sagenb/data"
+ ln -s ${mathjax}/lib/node_modules/mathjax "$out/${python.sitePackages}/sagenb/data/mathjax"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/scilab-bin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/scilab-bin/default.nix
new file mode 100644
index 000000000000..f9abdee2d148
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/scilab-bin/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchurl, lib, xorg }:
+
+let
+ name = "scilab-bin-${ver}";
+
+ ver = "6.0.2";
+
+ badArch = throw "${name} requires i686-linux or x86_64-linux";
+
+ architecture =
+ if stdenv.hostPlatform.system == "i686-linux" then
+ "i686"
+ else if stdenv.hostPlatform.system == "x86_64-linux" then
+ "x86_64"
+ else
+ badArch;
+in
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "https://www.scilab.org/download/${ver}/scilab-${ver}.bin.linux-${architecture}.tar.gz";
+ sha256 =
+ if stdenv.hostPlatform.system == "i686-linux" then
+ "0fgjc2ak3b2qi6yin3fy50qwk2bcj0zbz1h4lyyic9n1n1qcliib"
+ else if stdenv.hostPlatform.system == "x86_64-linux" then
+ "05clcdgry90drirl3swbxn5q36fmgknnhs6h5pr7mmrzfr6r818w"
+ else
+ badArch;
+ };
+
+ libPath = lib.makeLibraryPath [
+ stdenv.cc.cc
+ xorg.libX11
+ xorg.libXext
+ xorg.libXi
+ xorg.libXrender
+ xorg.libXtst
+ xorg.libXxf86vm
+ ];
+
+ phases = [ "unpackPhase" "fixupPhase" "installPhase" ];
+
+ fixupPhase = ''
+ sed -i 's|\$(/bin/|$(|g' bin/scilab
+ sed -i 's|/usr/bin/||g' bin/scilab
+
+ sci="$out/opt/scilab-${ver}"
+ fullLibPath="$sci/lib/scilab:$sci/lib/thirdparty:$libPath"
+ fullLibPath="$fullLibPath:$sci/lib/thirdparty/redist"
+
+ patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ --set-rpath "$fullLibPath" bin/scilab-bin
+ find . -name '*.so' -type f | while read file; do
+ patchelf --set-rpath "$fullLibPath" "$file" 2>/dev/null
+ done
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/opt/scilab-${ver}"
+ cp -r . "$out/opt/scilab-${ver}/"
+
+ # Create bin/ dir
+ mkdir "$out/bin"
+
+ # Creating executable symlinks
+ ln -s "$out/opt/scilab-${ver}/bin/scilab" "$out/bin/scilab"
+ ln -s "$out/opt/scilab-${ver}/bin/scilab-cli" "$out/bin/scilab-cli"
+ ln -s "$out/opt/scilab-${ver}/bin/scilab-adv-cli" "$out/bin/scilab-adv-cli"
+
+ # Creating desktop config dir
+ mkdir -p "$out/share/applications"
+
+ # Moving desktop config files
+ mv $out/opt/scilab-${ver}/share/applications/*.desktop $out/share/applications
+
+ # Fixing Exec paths and launching each app with a terminal
+ sed -i -e "s|Exec=|Exec=$out/opt/scilab-${ver}/bin/|g" \
+ -e "s|Terminal=.*$|Terminal=true|g" $out/share/applications/*.desktop
+
+ # Moving icons to the appropriate locations
+ for path in $out/opt/scilab-${ver}/share/icons/hicolor/*/*/*
+ do
+ newpath=$(echo $path | sed 's|/opt/scilab-${ver}||g')
+ filename=$(echo $path | sed 's|.*/||g')
+ dir=$(echo $newpath | sed "s|$filename||g")
+ mkdir -p $dir
+ mv $path $newpath
+ done
+
+ # Removing emptied folders
+ rm -rf $out/opt/scilab-${ver}/share/{applications,icons}
+
+ # Moving other share/ folders
+ mv $out/opt/scilab-${ver}/share/{appdata,locale,mime} $out/share
+ '';
+
+ meta = {
+ homepage = "http://www.scilab.org/";
+ description = "Scientific software package for numerical computations (Matlab lookalike)";
+ # see http://www.scilab.org/legal_notice
+ license = "Scilab";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/scilab/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/scilab/default.nix
new file mode 100644
index 000000000000..24b3feef51e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/scilab/default.nix
@@ -0,0 +1,66 @@
+{stdenv, fetchurl, lib, gfortran
+, ncurses
+, withXaw3d ? false
+#, withPVMlib ? false
+, tcl, tk, withTk ? true
+, gtk2, withGtk ? false # working ?
+#, withF2c ? false
+, ocaml, withOCaml ? true
+#, withJava ? false
+#, atlasMath, withAtlas ? false
+, xlibsWrapper, withX ? true
+}:
+
+stdenv.mkDerivation rec {
+ version = "4.1.2";
+ pname = "scilab";
+ src = fetchurl {
+ url = "https://www.scilab.org/download/${version}/${pname}-${version}-src.tar.gz";
+ sha256 = "1adk6jqlj7i3gjklvlf1j3il1nb22axnp4rvwl314an62siih0sc";
+ };
+
+ buildInputs = [gfortran ncurses]
+ ++ lib.optionals withGtk [gtk2]
+ ++ lib.optionals withOCaml [ocaml]
+ ++ lib.optional withX xlibsWrapper
+ ;
+
+
+/*
+ --with-atlas-library=DIR Atlas library files are in DIR and we use Atlas
+*/
+ configureFlags = [
+ # use gcc C compiler and gnu Fortran compiler (g77 or gfortran)
+ "--with-gcc" "--with-g77"
+ # do not compile with PVM library
+ "--without-pvm"
+ # compile with GTK
+ (stdenv.lib.enableFeature withGtk "gtk")
+ (stdenv.lib.enableFeature withGtk "gtk2")
+ # compile with ocaml
+ (stdenv.lib.withFeature withOCaml "ocaml")
+ # do not compile Java interface
+ "--without-java"
+ # use the X Window System
+ (stdenv.lib.withFeature withX "x")
+ # compile with TCL/TK
+ ] ++ lib.optionals withTk [
+ "--with-tk"
+ "--with-tcl-library=${tcl}/lib"
+ "--with-tcl-include=${tcl}/include"
+ "--with-tk-library=${tk}/lib"
+ "--with-tk-include=${tk}/include"
+ ] # use Xaw3d widgets given with Scilab
+ ++ lib.optional (!withXaw3d) "--with-local-xaw"
+ ;
+
+ makeFlags = [ "all" ];
+
+ meta = {
+ homepage = "http://www.scilab.org/";
+ description = "Scientific software package for numerical computations (Matlab lookalike)";
+ # see http://www.scilab.org/legal
+ license = "SciLab";
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/scotch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/scotch/default.nix
new file mode 100644
index 000000000000..75a6b2dba68c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/scotch/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, bison, openmpi, flex, zlib}:
+
+stdenv.mkDerivation rec {
+ version = "6.0.4";
+ pname = "scotch";
+ src_name = "scotch_${version}";
+
+ buildInputs = [ bison openmpi flex zlib ];
+
+ src = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/file/34618/${src_name}.tar.gz";
+ sha256 = "f53f4d71a8345ba15e2dd4e102a35fd83915abf50ea73e1bf6efe1bc2b4220c7";
+ };
+
+ sourceRoot = "${src_name}/src";
+
+ preConfigure = ''
+ ln -s Make.inc/Makefile.inc.x86-64_pc_linux2 Makefile.inc
+ '';
+
+ buildFlags = [ "scotch ptscotch" ];
+ installFlags = [ "prefix=\${out}" ];
+
+ meta = {
+ description = "Graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering";
+ longDescription = ''
+ Scotch is a software package for graph and mesh/hypergraph partitioning, graph clustering,
+ and sparse matrix ordering.
+ '';
+ homepage = "http://www.labri.fr/perso/pelegrin/scotch";
+ license = stdenv.lib.licenses.cecill-c;
+ maintainers = [ stdenv.lib.maintainers.bzizou ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/singular/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/singular/default.nix
new file mode 100644
index 000000000000..8c5eac2c06d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/singular/default.nix
@@ -0,0 +1,118 @@
+{ stdenv, fetchurl, gmp, bison, perl, ncurses, readline, coreutils, pkgconfig
+, lib
+, fetchpatch
+, autoreconfHook
+, file
+, flint
+, ntl
+, cddlib
+, enableFactory ? true
+, enableGfanlib ? true
+}:
+
+stdenv.mkDerivation rec {
+ pname = "singular";
+ version = "4.1.1p2";
+
+ src = let
+ # singular sorts its tarballs in directories by base release (without patch version)
+ # for example 4.1.1p1 will be in the directory 4-1-1
+ baseVersion = builtins.head (lib.splitString "p" version);
+ urlVersion = builtins.replaceStrings [ "." ] [ "-" ] baseVersion;
+ in
+ fetchurl {
+ url = "http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/${urlVersion}/singular-${version}.tar.gz";
+ sha256 = "07x9kri8vl4galik7lr6pscq3c51n8570pyw64i7gbj0m706f7wf";
+ };
+
+ configureFlags = [
+ "--with-ntl=${ntl}"
+ ] ++ lib.optionals enableFactory [
+ "--enable-factory"
+ ] ++ lib.optionals enableGfanlib [
+ "--enable-gfanlib"
+ ];
+
+ postUnpack = ''
+ patchShebangs .
+ '';
+
+ patches = [
+ # NTL error handler was introduced in the library part, preventing users of
+ # the library from implementing their own error handling
+ # https://www.singular.uni-kl.de/forum/viewtopic.php?t=2769
+ (fetchpatch {
+ name = "move_error_handler_out_of_libsingular.patch";
+ # rebased version of https://github.com/Singular/Sources/commit/502cf86d0bb2a96715be6764774b64a69c1ca34c.patch
+ url = "https://git.sagemath.org/sage.git/plain/build/pkgs/singular/patches/singular-ntl-error-handler.patch?h=50b9ae2fd233c30860e1cbb3e63a26f2cc10560a";
+ sha256 = "0vgh4m9zn1kjl0br68n04j4nmn5i1igfn28cph0chnwf7dvr9194";
+ })
+ ];
+
+ # For reference (last checked on commit 75f460d):
+ # https://github.com/Singular/Sources/blob/spielwiese/doc/Building-Singular-from-source.md
+ # https://github.com/Singular/Sources/blob/spielwiese/doc/external-packages-dynamic-modules.md
+ buildInputs = [
+ # necessary
+ gmp
+ # by upstream recommended but optional
+ ncurses
+ readline
+ ntl
+ flint
+ ] ++ lib.optionals enableGfanlib [
+ cddlib
+ ];
+ nativeBuildInputs = [
+ bison
+ perl
+ pkgconfig
+ autoreconfHook
+ ];
+
+ preAutoreconf = ''
+ find . -type f -readable -writable -exec sed \
+ -e 's@/bin/rm@${coreutils}&@g' \
+ -e 's@/bin/uname@${coreutils}&@g' \
+ -e 's@/usr/bin/file@${file}/bin/file@g' \
+ -i '{}' ';'
+ '';
+
+ hardeningDisable = lib.optional stdenv.isi686 "stackprotector";
+
+ # The Makefile actually defaults to `make install` anyway
+ buildPhase = ''
+ # do nothing
+ '';
+
+ installPhase = ''
+ mkdir -p "$out"
+ cp -r Singular/LIB "$out/lib"
+ make install
+
+ # Make sure patchelf picks up the right libraries
+ rm -rf libpolys factory resources omalloc Singular
+ '';
+
+ # simple test to make sure singular starts and finds its libraries
+ doInstallCheck = true;
+ installCheckPhase = ''
+ "$out/bin/Singular" -c 'LIB "freegb.lib"; exit;'
+ if [ $? -ne 0 ]; then
+ echo >&2 "Error loading the freegb library in Singular."
+ exit 1
+ fi
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "A CAS for polynomial computations";
+ maintainers = teams.sage.members;
+ # 32 bit x86 fails with some link error: `undefined reference to `__divmoddi4@GCC_7.0.0'`
+ platforms = subtractLists platforms.i686 platforms.unix;
+ license = licenses.gpl3; # Or GPLv2 at your option - but not GPLv4
+ homepage = "http://www.singular.uni-kl.de";
+ downloadPage = "http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix
new file mode 100644
index 000000000000..4bb39ab73f5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, lib, fetchgit, cmake, qtbase, qttools }:
+
+mkDerivation rec {
+ pname = "speedcrunch";
+ version = "0.12.0";
+
+ src = fetchgit {
+ # the tagging is not standard, so you probably need to check this when updating
+ rev = "refs/tags/release-${version}";
+ url = "https://bitbucket.org/heldercorreia/speedcrunch";
+ sha256 = "0vh7cd1915bjqzkdp3sk25ngy8cq624mkh8c53c5bnzk357kb0fk";
+ };
+
+ buildInputs = [ qtbase qttools ];
+
+ nativeBuildInputs = [ cmake ];
+
+ preConfigure = ''
+ cd src
+ '';
+
+ meta = with lib; {
+ homepage = "http://speedcrunch.org";
+ license = licenses.gpl2Plus;
+ description = "A fast power user calculator";
+ longDescription = ''
+ SpeedCrunch is a fast, high precision and powerful desktop calculator.
+ Among its distinctive features are a scrollable display, up to 50 decimal
+ precisions, unlimited variable storage, intelligent automatic completion
+ full keyboard-friendly and more than 15 built-in math function.
+ '';
+ maintainers = with maintainers; [ gebner ];
+ inherit (qtbase.meta) platforms;
+ # works with qt 5.6 and qt 5.8
+ broken = builtins.compareVersions qtbase.version "5.7.0" == 0;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/symmetrica/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/symmetrica/default.nix
new file mode 100644
index 000000000000..ca752259797f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/symmetrica/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, fetchpatch
+, autoreconfHook
+}:
+stdenv.mkDerivation rec {
+ pname = "symmetrica";
+ version = "3.0.1";
+
+ # Fork of the original symmetrica, which can be found here
+ # http://www.algorithm.uni-bayreuth.de/en/research/SYMMETRICA/index.html
+ # "This fork was created to modernize the codebase, and to resume making
+ # releases with the fixes that have accrued over the years."
+ # Also see https://trac.sagemath.org/ticket/29061#comment:3.
+ src = fetchFromGitLab {
+ owner = "sagemath";
+ repo = "symmetrica";
+ rev = version;
+ sha256 = "0wfmrzw82f5i91d7rf24mcdqcj2fmgrgy02pw4pliz7ncwaq14w3";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = ''A collection of routines for representation theory and combinatorics'';
+ license = licenses.isc;
+ maintainers = teams.sage.members;
+ platforms = platforms.unix;
+ homepage = "https://gitlab.com/sagemath/symmetrica";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/weka/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/weka/default.nix
new file mode 100644
index 000000000000..c4fc19d6c6b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/weka/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, jre, unzip, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "weka";
+ version = "3.9.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/weka/${stdenv.lib.replaceChars ["."]["-"] "${pname}-${version}"}.zip";
+ sha256 = "0zwmhspmqb0a7cm6k6i0s6q3w19ws1g9dx3cp2v3g3vsif6cdh31";
+ };
+
+ buildInputs = [ unzip makeWrapper ];
+
+ # The -Xmx1000M comes suggested from their download page:
+ # http://www.cs.waikato.ac.nz/ml/weka/downloading.html
+ installPhase = ''
+ mkdir -pv $out/share/weka
+ cp -Rv * $out/share/weka
+
+ makeWrapper ${jre}/bin/java $out/bin/weka \
+ --add-flags "-Xmx1000M -jar $out/share/weka/weka.jar"
+ '';
+
+ meta = {
+ homepage = "http://www.cs.waikato.ac.nz/ml/weka/";
+ description = "Collection of machine learning algorithms for data mining tasks";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.mimame ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
new file mode 100644
index 000000000000..7a81a0d679a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub
+, wrapGAppsHook, cmake, gettext
+, maxima, wxGTK, gnome3 }:
+
+stdenv.mkDerivation rec {
+ pname = "wxmaxima";
+ version = "20.06.6";
+
+ src = fetchFromGitHub {
+ owner = "wxMaxima-developers";
+ repo = "wxmaxima";
+ rev = "Version-${version}";
+ sha256 = "054f7n5kx75ng5j20rd5q27n9xxk03mrd7sbxyym1lsswzimqh4w";
+ };
+
+ buildInputs = [ wxGTK maxima gnome3.adwaita-icon-theme ];
+
+ nativeBuildInputs = [ wrapGAppsHook cmake gettext ];
+
+ preConfigure = ''
+ gappsWrapperArgs+=(--prefix PATH ":" ${maxima}/bin)
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Cross platform GUI for the computer algebra system Maxima";
+ license = licenses.gpl2;
+ homepage = "https://wxmaxima-developers.github.io/wxmaxima/";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.peti ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/yacas/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/yacas/default.nix
new file mode 100644
index 000000000000..06aab669df5a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/yacas/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, cmake, perl
+, enableGui ? false, qt5
+, enableJupyter ? false, boost, jsoncpp, openssl, zmqpp
+}:
+
+stdenv.mkDerivation rec {
+ pname = "yacas";
+ version = "1.9.1";
+
+ src = fetchFromGitHub {
+ owner = "grzegorzmazur";
+ repo = "yacas";
+ rev = "v${version}";
+ sha256 = "0dqgqvsb6ggr8jb3ngf0jwfkn6xwj2knhmvqyzx3amc74yd3ckqx";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ cmakeFlags = [
+ "-DENABLE_CYACAS_GUI=${if enableGui then "ON" else "OFF"}"
+ "-DENABLE_CYACAS_KERNEL=${if enableJupyter then "ON" else "OFF"}"
+ ];
+
+ # Perl is only for the documentation
+ nativeBuildInputs = [ cmake perl ];
+ buildInputs = [
+ ] ++ stdenv.lib.optionals enableGui (with qt5; [ qtbase qtwebkit ])
+ ++ stdenv.lib.optionals enableJupyter [ boost jsoncpp openssl zmqpp ]
+ ;
+
+ meta = {
+ description = "Easy to use, general purpose Computer Algebra System";
+ homepage = "http://www.yacas.org/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ broken = enableGui || enableJupyter;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/math/zegrapher/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/math/zegrapher/default.nix
new file mode 100644
index 000000000000..c9eb72cca433
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/math/zegrapher/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, fetchFromGitHub
+, qmake
+, wrapQtAppsHook
+, boost }:
+
+stdenv.mkDerivation rec {
+ pname = "zegrapher";
+ version = "3.1.1";
+
+ src = fetchFromGitHub {
+ owner = "AdelKS";
+ repo = "ZeGrapher";
+ rev = "v${version}";
+ sha256 = "sha256-OSQXm0gDI1zM2MBM4iiY43dthJcAZJkprklolsNMEvk=";
+ };
+
+ nativeBuildInputs = [
+ qmake
+ wrapQtAppsHook
+ ];
+ buildInputs = [
+ boost
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://zegrapher.com/";
+ description = "An open source math plotter";
+ longDescription = ''
+ An open source, free and easy to use math plotter. It can plot functions,
+ sequences, parametric equations and data on the plane.
+ '';
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
new file mode 100644
index 000000000000..b4e56591f9c8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, rpmextract, makeWrapper, patchelf, qt4, zlib, libX11, libXt, libSM, libICE, libXext, libGLU, libGL }:
+
+with stdenv.lib;
+stdenv.mkDerivation {
+ pname = "aliza";
+ version = "1.98.32";
+ src = fetchurl {
+ # See https://www.aliza-dicom-viewer.com/download
+ url = "https://drive.google.com/uc?export=download&id=1nggavPhY_633T-AW9PdkcAgbWtzv3QKG";
+ sha256 = "00vbgv8ca9ckgkicyyngrb01yhhcqc8hygg2bls7b44c47hcc8zz";
+ name = "aliza.rpm";
+ };
+
+ buildInputs = [ rpmextract makeWrapper ];
+
+ unpackCmd = "rpmextract $curSrc";
+
+ patchPhase = ''
+ sed -i 's/^Exec.*$/Exec=aliza %F/' share/applications/aliza.desktop
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r bin share $out
+
+ runHook postInstall
+ '';
+
+ postInstall = let
+ libs = stdenv.lib.makeLibraryPath [ qt4 zlib stdenv.cc.cc libSM libICE libX11 libXext libXt libGLU libGL ];
+ in ''
+ ${patchelf}/bin/patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ $out/bin/aliza
+
+ ${patchelf}/bin/patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ $out/bin/aliza-vtkvol
+
+ wrapProgram $out/bin/aliza \
+ --prefix LD_LIBRARY_PATH : ${libs}
+
+ wrapProgram $out/bin/aliza-vtkvol \
+ --prefix LD_LIBRARY_PATH : ${libs}
+ '';
+
+ meta = {
+ description = "Medical imaging software with 2D, 3D and 4D capabilities";
+ homepage = "https://www.aliza-dicom-viewer.com";
+ license = licenses.unfreeRedistributable;
+ maintainers = with maintainers; [ mounium ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/medicine/dcmtk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/medicine/dcmtk/default.nix
new file mode 100644
index 000000000000..817ab578a82d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/medicine/dcmtk/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, zlib, libtiff, libxml2, openssl, libiconv, libpng, cmake }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "dcmtk";
+ version = "3.6.5";
+ src = fetchFromGitHub {
+ owner = "DCMTK";
+ repo = pname;
+ rev = "DCMTK-${version}";
+ sha256 = "0i38k1s0wdpbxxpiwsx490mszhxi45wp0z67iksvh60wfkaw54na";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libpng zlib libtiff libxml2 openssl libiconv ];
+
+ meta = {
+ description = "Collection of libraries and applications implementing large parts of the DICOM standard";
+ longDescription = ''
+ DCMTK is a collection of libraries and applications implementing large parts of the DICOM standard.
+ It includes software for examining, constructing and converting DICOM image files, handling offline media,
+ sending and receiving images over a network connection, as well as demonstrative image storage and worklist servers.
+ DCMTK is is written in a mixture of ANSI C and C++.
+ It comes in complete source code and is made available as "open source" software.
+ '';
+ homepage = "https://dicom.offis.de/dcmtk";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ iimog ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/boinc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/boinc/default.nix
new file mode 100644
index 000000000000..802abae80e1d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/boinc/default.nix
@@ -0,0 +1,46 @@
+{ fetchFromGitHub, stdenv, autoconf, automake, pkgconfig, m4, curl,
+libGLU, libGL, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK30, xcbutil,
+sqlite, gtk2, patchelf, libXScrnSaver, libnotify, libX11, libxcb }:
+
+let
+ majorVersion = "7.14";
+ minorVersion = "2";
+in
+
+stdenv.mkDerivation rec {
+ version = "${majorVersion}.${minorVersion}";
+ pname = "boinc";
+
+ src = fetchFromGitHub {
+ name = "${pname}-${version}-src";
+ owner = "BOINC";
+ repo = "boinc";
+ rev = "client_release/${majorVersion}/${version}";
+ sha256 = "0nicpkag18xq0libfqqvs0im22mijpsxzfk272iwdd9l0lmgfvyd";
+ };
+
+ nativeBuildInputs = [ libtool automake autoconf m4 pkgconfig ];
+
+ buildInputs = [
+ curl libGLU libGL libXmu libXi freeglut libjpeg wxGTK30 sqlite gtk2 libXScrnSaver
+ libnotify patchelf libX11 libxcb xcbutil
+ ];
+
+ NIX_LDFLAGS = "-lX11";
+
+ preConfigure = ''
+ ./_autosetup
+ configureFlags="$configureFlags --sysconfdir=$out/etc"
+ '';
+
+ enableParallelBuilding = true;
+
+ configureFlags = [ "--disable-server" ];
+
+ meta = {
+ description = "Free software for distributed and grid computing";
+ homepage = "https://boinc.berkeley.edu/";
+ license = stdenv.lib.licenses.lgpl2Plus;
+ platforms = stdenv.lib.platforms.linux; # arbitrary choice
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/colmap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/colmap/default.nix
new file mode 100644
index 000000000000..83dff3e08f15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/colmap/default.nix
@@ -0,0 +1,44 @@
+{ mkDerivation, lib, fetchpatch, fetchFromGitHub, cmake, boost17x, ceres-solver, eigen,
+ freeimage, glog, libGLU, glew, qtbase,
+ cudaSupport ? false, cudatoolkit ? null }:
+
+assert !cudaSupport || cudatoolkit != null;
+
+let boost_static = boost17x.override { enableStatic = true; };
+in
+mkDerivation rec {
+ version = "3.5";
+ pname = "colmap";
+ src = fetchFromGitHub {
+ owner = "colmap";
+ repo = "colmap";
+ rev = version;
+ sha256 = "1vnb62p0y2bnga173wmjs0lnyqdjikv0fkcxjzxm8187khk2lly8";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/colmap/colmap/commit/6af3d8b0048cecc3b9fc6f4e78c3214dd038180b.patch";
+ sha256 = "1zv5girmv4hv78w1xn131v8njwhpbyylc1m15731lnhrs8bri0jq";
+ })
+ ];
+
+ buildInputs = [
+ boost_static ceres-solver eigen
+ freeimage glog libGLU glew qtbase
+ ] ++ lib.optional cudaSupport cudatoolkit;
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with lib; {
+ description = "COLMAP - Structure-From-Motion and Multi-View Stereo pipeline";
+ longDescription = ''
+ COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline
+ with a graphical and command-line interface.
+ '';
+ homepage = "https://colmap.github.io/index.html";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ lebastr ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/convertall/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/convertall/default.nix
new file mode 100644
index 000000000000..63ed18c89b2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/convertall/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, python3, wrapQtAppsHook }:
+
+let
+ inherit (python3.pkgs) wrapPython pyqt5;
+in stdenv.mkDerivation rec {
+ pname = "convertall";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "doug-101";
+ repo = "ConvertAll";
+ rev = "v${version}";
+ sha256 = "02xxasgbjbivsbhyfpn3cpv52lscdx5kc95s6ns1dvnmdg0fpng0";
+ };
+
+ nativeBuildInputs = [ python3 wrapPython wrapQtAppsHook ];
+
+ propagatedBuildInputs = [ pyqt5 ];
+
+ installPhase = ''
+ python3 install.py -p $out -x
+ '';
+
+ postFixup = ''
+ buildPythonPath $out
+ patchPythonScript $out/share/convertall/convertall.py
+ makeQtWrapper $out/share/convertall/convertall.py $out/bin/convertall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://convertall.bellz.org/";
+ description = "Graphical unit converter";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = pyqt5.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
new file mode 100644
index 000000000000..647492bbe318
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, jre, makeWrapper, substituteAll, coreutils }:
+
+stdenv.mkDerivation rec {
+ pname = "cytoscape";
+ version = "3.8.2";
+
+ src = fetchurl {
+ url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-unix-${version}.tar.gz";
+ sha256 = "0zgsq9qnyvmq96pgf7372r16rm034fd0r4qa72xi9zbd4f2r7z8w";
+ };
+
+ patches = [
+ # By default, gen_vmoptions.sh tries to store custom options in $out/share
+ # at run time. This patch makes sure $HOME is used instead.
+ (substituteAll {
+ src = ./gen_vmoptions_to_homedir.patch;
+ inherit coreutils;
+ })
+ ];
+
+ buildInputs = [jre makeWrapper];
+
+ installPhase = ''
+ mkdir -pv $out/{share,bin}
+ cp -Rv * $out/share/
+
+ ln -s $out/share/cytoscape.sh $out/bin/cytoscape
+
+ wrapProgram $out/share/cytoscape.sh \
+ --set JAVA_HOME "${jre}" \
+ --set JAVA "${jre}/bin/java"
+
+ chmod +x $out/bin/cytoscape
+ '';
+
+ meta = {
+ homepage = "http://www.cytoscape.org";
+ description = "A general platform for complex network analysis and visualization";
+ license = stdenv.lib.licenses.lgpl21;
+ maintainers = [stdenv.lib.maintainers.mimame];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/cytoscape/gen_vmoptions_to_homedir.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/cytoscape/gen_vmoptions_to_homedir.patch
new file mode 100644
index 000000000000..e31681e8541f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/cytoscape/gen_vmoptions_to_homedir.patch
@@ -0,0 +1,19 @@
+diff -Nur a/gen_vmoptions.sh b/gen_vmoptions.sh
+--- a/gen_vmoptions.sh 2020-03-30 21:57:47.000000000 +0100
++++ b/gen_vmoptions.sh 2020-05-05 09:49:57.974989824 +0100
+@@ -1,13 +1,10 @@
+ #!/bin/sh
+ # Generates the Cytoscape.vmoptions file
+
+-script_path="$(dirname -- $0)"
+-
+-#vm_options_path="$HOME/.cytoscape"
+-vm_options_path=$script_path
++vm_options_path="$HOME/.cytoscape"
+
+ if [ ! -e $vm_options_path ]; then
+- /bin/mkdir $vm_options_path
++ @coreutils@/bin/mkdir $vm_options_path
+ fi
+
+ # Determine amount of physical memory present:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/fityk/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/fityk/default.nix
new file mode 100644
index 000000000000..18def1d24e2f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/fityk/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, wxGTK30, boost, lua, zlib, bzip2
+, xylib, readline, gnuplot, swig3 }:
+
+let
+ name = "fityk";
+ version = "1.3.1";
+in
+stdenv.mkDerivation {
+ name = "${name}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "wojdyr";
+ repo = "fityk";
+ rev = "v${version}";
+ sha256 = "0kmrjjjwrh6xgw590awcd52b86kksmv6rfgih75zvpiavr1ygwsi";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ wxGTK30 boost lua zlib bzip2 xylib readline
+ gnuplot swig3 ];
+
+ meta = {
+ description = "Curve fitting and peak fitting software";
+ license = stdenv.lib.licenses.gpl2;
+ homepage = "http://fityk.nieto.pl/";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix
new file mode 100644
index 000000000000..bf7145113f51
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, autoPatchelfHook
+, buildFHSUserEnv
+, dpkg
+, fetchurl
+, gcc-unwrapped
+, ocl-icd
+, zlib
+, extraPkgs ? []
+}:
+let
+ majMin = stdenv.lib.versions.majorMinor version;
+ version = "7.6.13";
+
+ fahclient = stdenv.mkDerivation rec {
+ inherit version;
+ pname = "fahclient";
+
+ src = fetchurl {
+ url = "https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v${majMin}/fahclient_${version}_amd64.deb";
+ sha256 = "1j2cnsyassvifp6ymwd9kxwqw09hks24834gf7nljfncyy9g4g0i";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ dpkg
+ ];
+
+ buildInputs = [
+ gcc-unwrapped.lib
+ zlib
+ ];
+
+ unpackPhase = "dpkg-deb -x ${src} ./";
+ installPhase = "cp -ar usr $out";
+ };
+in
+buildFHSUserEnv {
+ name = fahclient.name;
+
+ targetPkgs = pkgs': [
+ fahclient
+ ocl-icd
+ ] ++ extraPkgs;
+
+ runScript = "/bin/FAHClient";
+
+ extraInstallCommands = ''
+ mv $out/bin/$name $out/bin/FAHClient
+ '';
+
+ meta = {
+ description = "Folding@home client";
+ homepage = "https://foldingathome.org/";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = [ stdenv.lib.maintainers.zimbatm ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/control.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/control.nix
new file mode 100644
index 000000000000..85be61f6686d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/control.nix
@@ -0,0 +1,60 @@
+{ stdenv
+, autoPatchelfHook
+, dpkg
+, fahviewer
+, fetchurl
+, makeWrapper
+, python2
+}:
+let
+ majMin = stdenv.lib.versions.majorMinor version;
+ version = "7.6.21";
+
+ python = python2.withPackages
+ (
+ ps: [
+ ps.pycairo
+ ps.pygobject2
+ ps.pygtk
+ ]
+ );
+in
+stdenv.mkDerivation rec {
+ inherit version;
+ pname = "fahcontrol";
+
+ src = fetchurl {
+ url = "https://download.foldingathome.org/releases/public/release/fahcontrol/debian-stable-64bit/v${majMin}/fahcontrol_${version}-1_all.deb";
+ sha256 = "1vfrdqkrvdlyxaw3f6z92w5dllrv6810lmf8yhcmjcwmphipvf71";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ makeWrapper
+ ];
+
+ buildInputs = [ fahviewer python ];
+
+ doBuild = false;
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ '';
+
+ installPhase = "cp -ar usr $out";
+
+ postFixup = ''
+ sed -e 's|/usr/bin|$out/bin|g' -i $out/share/applications/FAHControl.desktop
+ wrapProgram "$out/bin/FAHControl" \
+ --suffix PATH : "${fahviewer.outPath}/bin" \
+ --set PYTHONPATH "$out/lib/python2.7/dist-packages"
+ '';
+
+ meta = {
+ description = "Folding@home control";
+ homepage = "https://foldingathome.org/";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = [ stdenv.lib.maintainers.zimbatm ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/viewer.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/viewer.nix
new file mode 100644
index 000000000000..a383de621f29
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/foldingathome/viewer.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, autoPatchelfHook
+, dpkg
+, fetchurl
+, freeglut
+, gcc-unwrapped
+, libGL
+, libGLU
+, makeWrapper
+, zlib
+}:
+let
+ majMin = stdenv.lib.versions.majorMinor version;
+ version = "7.6.21";
+in
+stdenv.mkDerivation rec {
+ inherit version;
+ pname = "fahviewer";
+
+ src = fetchurl {
+ url = "https://download.foldingathome.org/releases/public/release/fahviewer/debian-stable-64bit/v${majMin}/fahviewer_${version}_amd64.deb";
+ sha256 = "00fd00pf6fcpplcaahvy9ir60mk69d9rcmwsyq3jrv9mxqm9aq7p";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ dpkg
+ makeWrapper
+ ];
+
+ buildInputs = [
+ freeglut
+ gcc-unwrapped.lib
+ libGL
+ libGLU
+ zlib
+ ];
+
+ unpackPhase = ''
+ dpkg-deb -x ${src} ./
+ sed -e 's|/usr/bin|$out/bin|g' -i usr/share/applications/FAHViewer.desktop
+ '';
+
+ installPhase = ''
+ cp -ar usr $out
+ '';
+
+ meta = {
+ description = "Folding@home viewer";
+ homepage = "https://foldingathome.org/";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = [ stdenv.lib.maintainers.zimbatm ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/gephi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/gephi/default.nix
new file mode 100644
index 000000000000..b6b53013cb4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/gephi/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, jdk, maven, javaPackages }:
+
+let
+ version = "0.9.2";
+
+ src = fetchFromGitHub {
+ owner = "gephi";
+ repo = "gephi";
+ rev = "v${version}";
+ sha256 = "0kqp2nvnsb55j1axb6hk0mlw5alyaiyb70z0mdybhpqqxyw2da2r";
+ };
+
+ # perform fake build to make a fixed-output derivation out of the files downloaded from maven central (120MB)
+ deps = stdenv.mkDerivation {
+ name = "gephi-${version}-deps";
+ inherit src;
+ buildInputs = [ jdk maven ];
+ buildPhase = ''
+ while mvn package -Dmaven.repo.local=$out/.m2 -Dmaven.wagon.rto=5000; [ $? = 1 ]; do
+ echo "timeout, restart maven to continue downloading"
+ done
+ '';
+ # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
+ installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete'';
+ outputHashAlgo = "sha256";
+ outputHashMode = "recursive";
+ outputHash = "1p7yf97dn0nvr005cbs6vdk3i341s8fya4kfccj8qqad2qgxflif";
+ };
+in
+stdenv.mkDerivation {
+ pname = "gephi";
+ inherit version;
+
+ inherit src;
+
+ buildInputs = [ jdk maven ];
+
+ buildPhase = ''
+ # 'maven.repo.local' must be writable so copy it out of nix store
+ mvn package --offline -Dmaven.repo.local=$(cp -dpR ${deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
+ '';
+
+ installPhase = ''
+ cp -r modules/application/target/gephi $out
+
+ # remove garbage
+ find $out -type f -name .lastModified -delete
+ find $out -type f -regex '.+\.exe' -delete
+
+ # use self-compiled JOGL to avoid patchelf'ing .so inside jars
+ rm $out/gephi/modules/ext/org.gephi.visualization/org-jogamp-{jogl,gluegen}/*.jar
+ cp ${javaPackages.jogl_2_3_2}/share/java/jogl*.jar $out/gephi/modules/ext/org.gephi.visualization/org-jogamp-jogl/
+ cp ${javaPackages.jogl_2_3_2}/share/java/glue*.jar $out/gephi/modules/ext/org.gephi.visualization/org-jogamp-gluegen/
+
+ echo "jdkhome=${jdk}" >> $out/etc/gephi.conf
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A platform for visualizing and manipulating large graphs";
+ homepage = "https://gephi.org";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.taeer ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/beta.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/beta.nix
new file mode 100644
index 000000000000..36de6a1d4c50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/beta.nix
@@ -0,0 +1,51 @@
+{stdenv, fetchgit
+, wxGTK, perl, python2, zlib, libGLU, libGL, libX11
+, automake, autoconf
+}:
+
+stdenv.mkDerivation rec {
+ pname = "golly";
+ version = "2.8.99.2.20161122";
+ #src = fetchurl {
+ # url="mirror://sourceforge/project/golly/golly/golly-2.8/golly-2.8-src.tar.gz";
+ # sha256="0a4vn2hm7h4b47v2iwip1z3n9y8isf79v08aipl2iqms2m3p5204";
+ #};
+ src = fetchgit {
+ url = "git://git.code.sf.net/p/golly/code";
+ rev = "93495edf3c9639332c6eb43ca7149c69629ee5d8";
+ sha256 = "1j308s9zlqkr3wnl1l32s5zk7r3g4ijwawkkysl8j5ik9sibi2gk";
+ };
+
+ setSourceRoot = ''
+ export sourceRoot="$(echo */gui-wx/configure)"
+ '';
+
+ nativeBuildInputs = [autoconf automake];
+
+ buildInputs = [
+ wxGTK perl python2 zlib libGLU libGL libX11
+ ];
+
+ # Link against Python explicitly as it is needed for scripts
+ makeFlags=[
+ "AM_LDFLAGS="
+ ];
+ NIX_LDFLAGS="-l${python2.libPrefix} -lperl -ldl -lGL";
+ preConfigure=''
+ export NIX_LDFLAGS="$NIX_LDFLAGS -L$(dirname "$(find ${perl} -name libperl.so)")"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE
+ -DPYTHON_SHLIB=$(basename "$(
+ readlink -f ${python2}/lib/libpython*.so)")"
+
+ sh autogen.sh
+ '';
+
+ meta = {
+ inherit version;
+ description = "Cellular automata simulation program";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ downloadPage = "https://sourceforge.net/projects/golly/files/golly";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/default.nix
new file mode 100644
index 000000000000..1478bb643181
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/default.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU, libGL, libX11}:
+stdenv.mkDerivation rec {
+ pname = "golly";
+ version = "3.3";
+
+ src = fetchurl {
+ sha256 = "1j3ksnar4rdam4xiyspgyrs1pifbvxfxkrn65brkwxpx39mpgzc8";
+ url="mirror://sourceforge/project/golly/golly/golly-${version}/golly-${version}-src.tar.gz";
+ };
+
+ buildInputs = [
+ wxGTK perl python2 zlib libGLU libGL libX11
+ ];
+
+ setSourceRoot = ''
+ sourceRoot=$(echo */gui-wx/configure)
+ '';
+
+ # Link against Python explicitly as it is needed for scripts
+ makeFlags=[
+ "AM_LDFLAGS="
+ ];
+ NIX_LDFLAGS="-l${python2.libPrefix} -lperl";
+ preConfigure=''
+ export NIX_LDFLAGS="$NIX_LDFLAGS -L$(dirname "$(find ${perl} -name libperl.so)")"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE
+ -DPYTHON_SHLIB=$(basename "$(
+ readlink -f ${python2}/lib/libpython*.so)")"
+ '';
+
+ meta = {
+ inherit version;
+ description = "Cellular automata simulation program";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ downloadPage = "https://sourceforge.net/projects/golly/files/golly";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/default.upstream b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/default.upstream
new file mode 100644
index 000000000000..e8ce81586a8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/golly/default.upstream
@@ -0,0 +1,5 @@
+url https://sourceforge.net/projects/golly/files/golly/
+version_link '[-][0-9.]+/$'
+SF_version_tarball 'src'
+SF_redirect
+minimize_overwrite
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/gplates/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
new file mode 100644
index 000000000000..4bef967bc08a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, qt4, qwt6_qt4, libGLU, libGL, glew, gdal, cgal
+, proj, boost, cmake, python2, doxygen, graphviz, gmp, mpfr }:
+
+stdenv.mkDerivation rec {
+ pname = "gplates";
+ version = "2.2.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gplates/${pname}-${version}-unixsrc.tar.bz2";
+ sha256 = "1jrcv498vpcs8xklhbsgg12yfa90f96p2mwq6x5sjnrlpf8mh50b";
+ };
+
+ buildInputs = [
+ qt4 qwt6_qt4 libGLU libGL glew gdal cgal proj cmake python2
+ doxygen graphviz gmp mpfr
+ (boost.override {
+ enablePython = true;
+ python = python2;
+ })
+ ];
+
+ NIX_CFLAGS_LINK="-ldl -lpthread -lutil";
+
+ meta = with stdenv.lib; {
+ description = "Desktop software for the interactive visualisation of plate-tectonics";
+ homepage = "https://www.gplates.org";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/default.nix
new file mode 100644
index 000000000000..8bb64932f20e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/default.nix
@@ -0,0 +1,47 @@
+{ fetchurl, stdenv, ocaml, makeWrapper, ncurses }:
+
+let version = "0.92"; in
+stdenv.mkDerivation {
+ pname = "megam";
+ inherit version;
+
+ src = fetchurl {
+ url = "http://hal3.name/megam/megam_src.tgz";
+ sha256 = "dc0e9f59ff8513449fe3bd40b260141f89c88a4edf6ddc8b8a394c758e49724e";
+ };
+
+ patches = [ ./ocaml-includes.patch ./ocaml-3.12.patch ];
+
+ buildInputs = [ ocaml ncurses ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ makeFlags = [ "CAML_INCLUDES=${ocaml}/lib/ocaml/caml" ];
+
+ # see https://bugzilla.redhat.com/show_bug.cgi?id=435559
+ dontStrip = true;
+
+ installPhase = ''
+ mkdir -pv $out/bin
+ cp -Rv megam $out/bin
+ '';
+
+
+ meta = {
+ description = "MEGA Model Optimization Package";
+
+ longDescription =
+ '' The software here is an implementation of maximum likelihood
+ and maximum a posterior optimization of the parameters of
+ these models. The algorithms used are much more efficient
+ than the iterative scaling techniques used in almost every
+ other maxent package out there. '';
+
+ homepage = "http://www.umiacs.umd.edu/~hal/megam";
+
+ license = "non-commercial";
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # arbitrary choice
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/ocaml-3.12.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/ocaml-3.12.patch
new file mode 100644
index 000000000000..8265acf6e4a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/ocaml-3.12.patch
@@ -0,0 +1,12 @@
+diff -ru megam_0.92/Makefile megam_0.92-b/Makefile
+--- megam_0.92/Makefile 2007-10-08 18:06:04.000000000 +0100
++++ megam_0.92-b/Makefile 2013-11-25 10:14:20.000000000 +0000
+@@ -59,7 +59,7 @@
+
+ WITHUNIX =unix.cma -cclib -lunix
+
+-WITHSTR =str.cma -cclib -lstr
++WITHSTR =str.cma -cclib -lcamlstr
+
+ WITHBIGARRAY =bigarray.cma -cclib -lbigarray
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/ocaml-includes.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/ocaml-includes.patch
new file mode 100644
index 000000000000..b3a56643448c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/megam/ocaml-includes.patch
@@ -0,0 +1,21 @@
+diff -ru megam_0.92/Makefile megam_0.92-b/Makefile
+--- megam_0.92/Makefile 2007-10-08 18:06:04.000000000 +0100
++++ megam_0.92-b/Makefile 2013-11-25 10:14:20.000000000 +0000
+@@ -41,7 +41,7 @@
+ #
+ # The Caml compilers. #
+ # You may fix here the path to access the Caml compiler on your machine
+-CAMLC = ocamlc -g
++CAMLC = ocamlc -g $(WITHCLIBS)
+ CAMLOPT = ocamlopt -unsafe -ccopt -O4 -ccopt -ffast-math -inline 99999
+ CAMLDEP = ocamldep
+ CAMLLEX = ocamllex
+@@ -70,7 +70,7 @@
+ WITHDBM =dbm.cma -cclib -lmldbm -cclib -lndbm
+
+ #WITHCLIBS =-I /usr/lib/ocaml/3.09.2/caml
+-WITHCLIBS =-I /usr/lib/ocaml/caml
++WITHCLIBS =-I $(CAML_INCLUDES)
+
+ ################ End of user's variables #####################
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix
new file mode 100644
index 000000000000..af892441a472
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix
@@ -0,0 +1,58 @@
+{ jre, stdenv, fetchurl, makeWrapper, makeDesktopItem }:
+
+let
+
+ desktopItem = makeDesktopItem rec {
+ name = "netlogo";
+ exec = name;
+ icon = name;
+ comment = "A multi-agent programmable modeling environment";
+ desktopName = "NetLogo";
+ categories = "Science;";
+ };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "netlogo";
+ version = "6.1.1";
+
+ src = fetchurl {
+ url = "https://ccl.northwestern.edu/netlogo/${version}/NetLogo-${version}-64.tgz";
+ sha256 = "1j08df68pgggxqkmpzd369w4h97q0pivmmljdb48hjghx7hacblp";
+ };
+
+ src1 = fetchurl {
+ name = "netlogo.png";
+ url = "https://netlogoweb.org/assets/images/desktopicon.png";
+ sha256 = "1i43lhr31lzva8d2r0dxpcgr58x496gb5vmb0h2da137ayvifar8";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -pv $out/share/netlogo $out/share/icons/hicolor/256x256/apps $out/share/applications $out/share/doc
+ cp -rv app $out/share/netlogo
+ cp -v readme.md $out/share/doc/
+
+ # launcher with `cd` is required b/c otherwise the model library isn't usable
+ makeWrapper "${jre}/bin/java" "$out/bin/netlogo" \
+ --run "cd $out/share/netlogo/app" \
+ --add-flags "-jar netlogo-${version}.jar"
+
+ cp $src1 $out/share/icons/hicolor/256x256/apps/netlogo.png
+ cp ${desktopItem}/share/applications/* $out/share/applications
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A multi-agent programmable modeling environment";
+ longDescription = ''
+ NetLogo is a multi-agent programmable modeling environment. It is used by
+ many tens of thousands of students, teachers and researchers worldwide.
+ '';
+ homepage = "https://ccl.northwestern.edu/netlogo/index.shtml";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.dpaetzel ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/nextinspace/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/nextinspace/default.nix
new file mode 100644
index 000000000000..390b2c58ca68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/nextinspace/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchPypi, python3Packages }:
+
+python3Packages.buildPythonPackage rec {
+ pname = "nextinspace";
+ version = "1.0.6";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1h3dksxyy5gq071fa7i2p73s50918y1bkk38hgfwr4226c3wipvg";
+ };
+
+ pythonPath = with python3Packages; [
+ requests
+ tzlocal
+ colorama
+ ];
+
+ meta = with lib; {
+ description = "Print upcoming space-related events in your terminal";
+ homepage = "https://github.com/The-Kid-Gid/nextinspace";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ penguwin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/default.nix
new file mode 100644
index 000000000000..268ae53401f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/default.nix
@@ -0,0 +1,55 @@
+{stdenv, fetchgit, fetchsvn, autoconf, automake, libtool, gfortran, clang, cmake, gnumake,
+hwloc, jre, lapack, blas, hdf5, expat, ncurses, readline, qt4, webkitgtk, which,
+lp_solve, omniorb, sqlite, libatomic_ops, pkgconfig, file, gettext, flex, bison,
+doxygen, boost, openscenegraph, gnome2, xorg, git, bash, gtk2, makeWrapper }:
+
+let
+
+ fakegit = import ./fakegit.nix {inherit stdenv fetchgit fetchsvn bash;} ;
+
+in
+
+stdenv.mkDerivation {
+ name = "openmodelica";
+
+ src = fetchgit (import ./src-main.nix);
+
+ buildInputs = [autoconf cmake automake libtool gfortran clang gnumake
+ hwloc jre lapack blas hdf5 expat ncurses readline qt4 webkitgtk which
+ lp_solve omniorb sqlite libatomic_ops pkgconfig file gettext flex bison
+ doxygen boost openscenegraph gnome2.gtkglext xorg.libXmu
+ git gtk2 makeWrapper];
+
+ hardeningDisable = [ "format" ];
+
+ enableParallelBuilding = true;
+
+ patchPhase = ''
+ cp -fv ${fakegit}/bin/checkout-git.sh libraries/checkout-git.sh
+ cp -fv ${fakegit}/bin/checkout-svn.sh libraries/checkout-svn.sh
+ '';
+
+ configurePhase = ''
+ export NIX_LDFLAGS="$NIX_LDFLAGS -L${gfortran.cc.lib}/lib"
+
+ autoconf
+ ./configure CC=${clang}/bin/clang CXX=${clang}/bin/clang++ --prefix=$out
+ '';
+
+ postFixup = ''
+ for e in $(cd $out/bin && ls); do
+ wrapProgram $out/bin/$e \
+ --prefix PATH : "${gnumake}/bin" \
+ --prefix LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ lapack blas ]}"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An open-source Modelica-based modeling and simulation environment";
+ homepage = "https://openmodelica.org";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ smironov ];
+ platforms = platforms.linux;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/fakegit.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/fakegit.nix
new file mode 100644
index 000000000000..de69626cd3ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/fakegit.nix
@@ -0,0 +1,81 @@
+{stdenv, fetchgit, fetchsvn, bash } :
+
+let
+ mkscript = path : text : ''
+ mkdir -pv `dirname ${path}`
+ cat > ${path} <<"EOF"
+ #!${bash}/bin/bash
+ ME=`basename ${path}`
+ ${text}
+ EOF
+ sed -i "s@%out@$out@g" ${path}
+ chmod +x ${path}
+ '';
+
+ hashname = r: let
+ rpl = stdenv.lib.replaceChars [":" "/"] ["_" "_"];
+ in
+ (rpl r.url) + "-" + (rpl r.rev);
+
+in
+
+stdenv.mkDerivation {
+ name = "fakegit";
+
+ buildCommand = ''
+ mkdir -pv $out/repos
+ ${stdenv.lib.concatMapStrings
+ (r : ''
+ cp -r ${fetchgit r} $out/repos/${hashname r}
+ ''
+ ) (import ./src-libs-git.nix)
+ }
+
+ ${mkscript "$out/bin/checkout-git.sh" ''
+ if test "$#" -ne 4; then
+ echo "Usage: $0 DESTINATION URL GITBRANCH HASH"
+ exit 1
+ fi
+ DEST=$1
+ URL=`echo $2 | tr :/ __`
+ GITBRANCH=$3
+ REVISION=$4
+
+ L=`echo $REVISION | wc -c`
+ if expr $L '<' 10 >/dev/null; then
+ REVISION=refs/tags/$REVISION
+ fi
+
+ REVISION=`echo $REVISION | tr :/ __`
+
+ rm -rf $DEST
+ mkdir -pv $DEST
+ echo "FAKEGIT cp -r %out/repos/$URL-$REVISION $DEST" >&2
+ cp -r %out/repos/$URL-$REVISION/* $DEST
+ chmod u+w -R $DEST
+ ''}
+
+ ${stdenv.lib.concatMapStrings
+ (r : ''
+ cp -r ${fetchsvn r} $out/repos/${hashname r}
+ ''
+ ) (import ./src-libs-svn.nix)
+ }
+
+ ${mkscript "$out/bin/checkout-svn.sh" ''
+ if test "$#" -ne 3; then
+ echo "Usage: $0 DESTINATION URL REVISION"
+ exit 1
+ fi
+ DEST=$1
+ URL=`echo $2 | tr :/ __`
+ REVISION=`echo $4 | tr :/ __`
+
+ rm -rf $DEST
+ mkdir -pv $DEST
+ echo "FAKE COPY %out/repos/$URL-$REVISION $DEST"
+ cp -r %out/repos/$URL-$REVISION/* $DEST
+ chmod u+w -R $DEST
+ ''}
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-git.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-git.nix
new file mode 100644
index 000000000000..aae5ab321fbe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-git.nix
@@ -0,0 +1,71 @@
+[
+{ url = "https://github.com/modelica-3rdparty/ADGenKinetics.git"; rev = "42428db6e84bcde28543a3bba9bccee581309bb1"; sha256="14l005jwj1wz35gq8xlbzfz0bpsx99rs4q3dxkfh76yhnv1jh9h3"; }
+{ url = "https://github.com/modelica-3rdparty/ADMSL.git"; rev = "ed0305603f86b46d9af03e7d37dcb8b6704915b4"; sha256="15b0nqxyh8444az56ydjn594jikdl1ina5wamabk3nzm1yx218cl"; }
+{ url = "https://github.com/iea-annex60/modelica-annex60.git"; rev = "8015a01591bb24d219f57e7b69cdfcde66e39b47"; sha256="05k4pa007a6p628fq1xac0cfv8g8dnpy2bgy8h99rqpmlaa072z7"; }
+{ url = "https://github.com/OpenModelica/BioChem.git"; rev = "b5f3cb999f3cfad2bbb6fb429b496f61ecf2f628"; sha256="1l52dg888vwx4668spn59hqvfkpl9g06g8n2cdxiap7lvsyh6w9x"; }
+{ url = "https://github.com/modelica-3rdparty/BondGraph.git"; rev = "20c23e60d12989bd4668ccac47659d82d39d29cc"; sha256="1i9cmiy1ya04h2ld0gy0x2gvdrfksl66fmcrgdm1vpsnbb6pviv9"; }
+{ url = "https://github.com/modelica-3rdparty/BondLib.git"; rev = "df7a40fe612617da22e27d39edfa4b27d65f23d0"; sha256="005djwxd568zyk3ndss9hv165dci9x0dgjmcdjhnqmsap3w83hlz"; }
+{ url = "https://github.com/modelica-3rdparty/BrineProp.git"; rev = "fed013cdeec0fb9552964376b575a8e3635539ab"; sha256="020hm2q65d5iv3h8b3lhgl6j930vi2pbh4lvxv3b3k7i9z02q43a"; }
+{ url = "https://github.com/lbl-srg/modelica-buildings.git"; rev = "ef89361cc8673b077b9221efbf78aa63b4d7babd"; sha256="04gclknhl2f5z7w9fsbhwawisd0ibmvwpplx0siqwzvjx7nsmdg4"; }
+{ url = "https://github.com/lbl-srg/modelica-buildings.git"; rev = "444aa231f423b8d04225bf8672e3212d089fbfe4"; sha256="0q754mlkwqj0jcqsmxksvcz4ak2i86f9s41fhffh5jvra27cvq01"; }
+{ url = "https://github.com/modelica-3rdparty/Chemical.git"; rev = "aa2642608e587ddb6897e8c3ffabb3aa099510bd"; sha256="0y46spcb6rw0jpj4v20nlw8xlvi5kypij46f1msvwgr7dfgy4gl4"; }
+{ url = "https://github.com/modelica-3rdparty/ComplexLib.git"; rev = "0b78942ee4fa95ae71347a0d552dd869fdf4c708"; sha256="18llf5ccrq3b0f4cjznfycskwf78pik8370xv45w9gb51gamszrn"; }
+{ url = "https://github.com/lochel/ConPNlib.git"; rev = "bbf6e9711665d55e5a8cf2f7235fa013c2315104"; sha256="0g3ll44sn2ff14qxwdyakw9h5b8b7vzabxp8cb8km16wcdqzgcxx"; }
+{ url = "https://github.com/modelica-3rdparty/DESLib.git"; rev = "7a473d8d16b118c3ea05761c6f43b17fd9838e4e"; sha256="19f2121n8rdc9svcjk8irivsd9wqcb9ai9jx72s2r85fkbvm8jc3"; }
+{ url = "https://github.com/modelica-3rdparty/ExtendedPetriNets.git"; rev = "2f4eac0651c1ab0ed56b75ec61424e0ef15181d3"; sha256="0wwj756pg33qwb90ycbfkrk5xsiwsbrqvq3i16i4pisi21vl6jk9"; }
+{ url = "https://github.com/modelica-3rdparty/ExternData.git"; rev = "396164fa708cc7c7e64da55ac0b3cba23939f790"; sha256="09052qmv91a9wawsl93b5b3q47awrxhnsbb9mrv39kpnwygfh7dq"; }
+{ url = "https://github.com/modelica/ExternalMedia.git"; rev = "1b77869b31dc3509defeccb1236db4b05d2f6f5b"; sha256="05sszn4bn8r78syydyjq8csn9xv4az56mm9lrarqykqdh78pvlqp"; }
+{ url = "https://github.com/kdavies4/FCSys.git"; rev = "cb4b17f34313b9d8f2d4223d5365684b4dc1ab65"; sha256="114p7ja6b3fwlkvkkjhbx78fxc7v4af2sbs783hkdga86m1v4ib6"; }
+{ url = "https://github.com/modelica-3rdparty/FastBuildings.git"; rev = "1f5cfebc2f42c13e272bff639ffa3449d5740bf7"; sha256="0sry1n2pliddz0pjv8dp899fx98f16n1arc8zvq36k5grvi52fby"; }
+{ url = "https://github.com/modelica-3rdparty/FaultTriggering.git"; rev = "10c226b7e5b2af901b356ac437c90d6616a6e9a4"; sha256="0a9j18qjwigq11nghl97syxa9bscs1aj6vwpkldh50csnj5h6g2s"; }
+{ url = "https://github.com/modelica-3rdparty/FuzzyControl.git"; rev = "19ff67ff129a440482cc85f216f287b05ea6ec0d"; sha256="0ijcqns7pijsavijn4wlrdsz64k5ks626sly7r28wvrk9af2m2cx"; }
+{ url = "https://github.com/modelica-3rdparty/HelmholtzMedia.git"; rev = "e54fcd0e436d65c85de6c6b935983e363cdc9f6c"; sha256="05afh0379fx4mjjn7jb8j5p4am6qi62hjxvasb38b6fcp9rnysn4"; }
+{ url = "https://github.com/modelica-3rdparty/IdealizedContact.git"; rev = "8ebac550d913f6d2b3af4d1aea5044e72c7eb6b0"; sha256="03gh2a7hf44clshwkiyz786w847hmyr3bicdqd9969fbirgcqn6m"; }
+{ url = "https://github.com/modelica-3rdparty/IndustrialControlSystems.git"; rev = "6a2414307d5998c6d081efe803c2b575a532b3ba"; sha256="09la9h07x8bkh7zhrwykgj1467qdryjvxhvnnm8qvsim0dl9inc4"; }
+{ url = "https://github.com/modelica-3rdparty/LinearMPC.git"; rev = "1e91a5dcaa662cd30c5b09a9d0267289703f933b"; sha256="12094fqmwi65h0mc65b96krbj6b8dgn6jiww3fnv6khglb21kwvd"; }
+{ url = "https://github.com/modelica/Modelica.git"; rev = "refs/tags/v1.6"; sha256="106w83ylgbxf63wr7p9z5q8vqz2qcsaw0zwaad7d3saq6rdbj30c"; }
+{ url = "https://github.com/modelica/Modelica.git"; rev = "d442bcd461b8db9873e33b6141bdbd37bcff9de8"; sha256="1icnd0fxix5khnsvdhy7kmzn6lnqkggbvfrbln98a2h5zqd6s32w"; }
+{ url = "https://github.com/modelica/Modelica.git"; rev = "af2a3e1597d648d6826665c89cf9eaf5c2a632bc"; sha256="0ryk0iwakdazhsjqvan41w6f9bvgl329zkqchcdg6nkidiigziwh"; }
+{ url = "https://github.com/modelica/Modelica.git"; rev = "48943d87db45a6c312b5a5789d384acde44a934b"; sha256="1hi2vkpmx734baa9m1lqzallcykhh3snd68r387gndiv96f6zx3n"; }
+{ url = "https://github.com/modelica/Modelica.git"; rev = "164af873cc5955c50f9592a7d2f3c155f703849c"; sha256="071svqwd72sy85sngbg5r22ab693c0gw2xx29gk1sqrk2nchmvia"; }
+{ url = "https://github.com/OpenModelica/modelica3d.git"; rev = "daf5669b03ad33fc6999671d1c0e7521134a282b"; sha256="1scs6v2cp2r4jz4diszwbqf9kvzf49pid50dmpsz0gfhx06j9y2v"; }
+{ url = "https://github.com/modelica-deprecated/ModelicaAdditions.git"; rev = "568db43766186826b880f9d4bfafeff25cc2c4ab"; sha256="1py5i3afxdvz1dmxxwb2mqj8kyzdhg4jnnqwl8h50akizg4i49pl"; }
+{ url = "https://github.com/xogeny/ModelicaBook.git"; rev = "0e670cfae4db653bd34ea777d6b56423e9be2c9f"; sha256="0lxh08w6nii4p5yk7c0xmfi5y4xkjkzz4hirr3kqdhdfybcwq824"; }
+{ url = "https://github.com/modelica-compliance/compliance.git"; rev = "ca5092c14bb7af4507a10700ee49181a3a3ee199"; sha256="12ja6dhwlbq412kxjdviypgchipxpsg8l0sf6r17g6lbsi19i2b6"; }
+{ url = "https://github.com/modelica-3rdparty/ModelicaDEVS.git"; rev = "a987aa9552fbbe71b2ee2e8c28958f9d213087ae"; sha256="0qcw7vw28xadim0h8kr2km09d8vdj05ibdpzcnpny9n43pm9s5hx"; }
+{ url = "https://github.com/modelica/Modelica_DeviceDrivers.git"; rev = "db912ba7e1317b8f6a776ccf9a19f69c77a9c477"; sha256="052h2lr7xgfag5fks19wbldqmb985kxlc5fzysl7c9w3fnijp0ml"; }
+{ url = "https://github.com/modelica/Modelica_EnergyStorages.git"; rev = "9f057365232364e31a31a8e525f96284b98c7de3"; sha256="195m5b3z8qgg9kih9zsdx1h8zgrm37q63890r59akka05a97j48h"; }
+{ url = "https://github.com/modelica/Modelica_LinearSystems2.git"; rev = "18916fdc485285baab12481701b53d4eb606a3f1"; sha256="0fhvdwcgk8q3z1a98l2bxv8a6dysrs4ll6xfyzpni7yq8gp4mg4q"; }
+{ url = "https://github.com/modelica/Modelica_Synchronous.git"; rev = "d0f5ee57bc7b639738e88026674a87343b33dbe1"; sha256="0l75v4d0fgf07ify0h3skh4y9pfw9gxh9hbj1lbsdgglmzlrcvbg"; }
+{ url = "https://github.com/modelica-3rdparty/MotorcycleDynamics.git"; rev = "2be2667f9936d88ffb9b8a8246c5af9ccb0b307f"; sha256="0jazwmpqpyhhgs9qdn9drmplgp2yjs0ky7wll5x9929dkgy80m6x"; }
+{ url = "https://github.com/modelica-3rdparty/NCLib.git"; rev = "ed3d72f176ac6b7031ce73be9d80101141e74a69"; sha256="1pbpv8w1lsa9vdwp7qbih8iim91ms22b01wz376b548d0x2r95la"; }
+{ url = "https://github.com/modelica-3rdparty/NeuralNetwork.git"; rev = "c44e4d1fe97fd4f86dafcd05ad3713692e3f1806"; sha256="0s1v8k71zq1s9gjlvi3zr23nwfknp4x17cxm64a0y3vsi3kahj2s"; }
+{ url = "https://github.com/DLR-SR/Noise.git"; rev = "9b57476845539e56769cf76ea0fe7bf3c7eb5d11"; sha256="0icrb63f6dm4gww2nyby9i7s7qxvhvialp36xzcgmi7nlq7crjr2"; }
+{ url = "https://github.com/modelica-3rdparty/ObjectStab.git"; rev = "2a723e0b223af50f4ffdd62f8ac901e0f87b9323"; sha256="1b6zi27slzzfbkmbcqxygsn5i5w0zkq0hfrfb72vf7mbgz07j19j"; }
+{ url = "https://github.com/cparedis/OpenHydraulics.git"; rev = "d3173d1f06f7d14c9d7c41769f143617ff03a3ad"; sha256="1hn5rcnmzcbiaqdnxfn02wddmrpj9bcdi9p680f31hbh3vb0i3r6"; }
+{ url = "https://github.com/lochel/PNlib.git"; rev = "44c7d277980b7a88b449b72edec0a56416b40fa9"; sha256="026wdhbxnzarmj8gw0as70vj8f1gwc51z38hjqpswxkl0xd6mfvp"; }
+{ url = "https://github.com/MarekMatejak/Physiolibrary.git"; rev = "49d59060f6e5b4cb68560c6d7467e84ea4318056"; sha256="0klqs2axjm3s780sq4plq4wmbf9mszz2jmq9fprgxy9pw7iszbhc"; }
+{ url = "https://github.com/dzimmer/PlanarMechanics.git"; rev = "d998a1b27355e83d2ff4849d71281a919a3234aa"; sha256="0vyq6mninn38wy2d60rk753xbkfqim2y6y31py7kq2mm170jfqf4"; }
+{ url = "https://github.com/modelica/PowerSystems.git"; rev = "7b551888089277a0dd979db636d47aba0279e8f0"; sha256="0y13f1nllc7riksnly25wmmp6mc30c1b48dbq2lr1nag6yg3blwm"; }
+{ url = "https://github.com/modelica/PowerSystems.git"; rev = "3abd48aa53bbcd3f3e2ddfa2371680febf8baf48"; sha256="1nr2nbpaxywk8cpwnk9rr2zr87mm2gb9b4plqipjdlrrkjlk9fka"; }
+{ url = "https://github.com/modelica-3rdparty/PraxisSimulationstechnik.git"; rev = "f7db177786f84033f3a50b7474988b190a1dfb46"; sha256="08bdm7k7w35kg9gkrvcn382zkwf5h3iwkkx60d5fj64j5d5klray"; }
+{ url = "https://github.com/modelica-3rdparty/QCalc.git"; rev = "af6c34dda691a9bdf7ca1de10650974b2d5cecf5"; sha256="0p0zhl27cnr492byrzib0dyn7zp5yb7wcr0spv10ngm6j90cij6y"; }
+{ url = "https://github.com/modelica-3rdparty/QSSFluidFlow.git"; rev = "d84a2c107132f2cd47ea3c3751238d69e4b1f64b"; sha256="02cdvv33pi0qlmg8n401s4cxf59l9b4ff4ixf7gwn4w4n1y9bw0g"; }
+{ url = "https://github.com/modelica-3rdparty/RealTimeCoordinationLibrary.git"; rev = "655ac1a22aa6deb04ea8e3869dd0aa9fb9540754"; sha256="19crf8pl9vpqq3pq1rhcbl49kkmnm4jrzpwrpqp8qc6dj8096za4"; }
+{ url = "https://github.com/modelica-3rdparty/ScalableTestSuite.git"; rev = "c6319908d45ac97ffb10e96cd42654bce36ffb97"; sha256="1g79d88bfmzcqvaghyyj86ajs38v0qnmjxbj8d53yp6nmgnaasx5"; }
+{ url = "https://github.com/modelica-3rdparty/Servomechanisms.git"; rev = "22e1874ef9ad46156617817c67a4fb1238621bf5"; sha256="0nwb7apayk7ba9iv27yv67wi4b934dy57kkvn0acxy393jhd8jqd"; }
+{ url = "https://openmodelica.org/git/SiemensPower.git"; rev = "73a3bfc6d2ddd72165bb0f3e7e9df48b643a5ed0"; sha256="0mvrkpkmr0bx2cvsb23syg7cs8k6a15vjf4n1hivdcigq4x8g2nc"; }
+{ url = "https://openmodelica.org/git/SiemensPower.git"; rev = "5ef2e38b64ff481801c0db19d52f0bef21f85f77"; sha256="1llnpl2x1g28gari1rk34hdnnwf7a4fwwxlf7i18d8bl1vsrfaja"; }
+{ url = "https://openmodelica.org/git/SiemensPower.git"; rev = "2bd9e367baaa8d44946897c3c3a32a4050ad2a2a"; sha256="1shm9blpn9m87ci6wwkinpmihr1fik9j0a0pj2nxy0cjrr2jzbn4"; }
+{ url = "https://github.com/modelica-3rdparty/Spot.git"; rev = "2f74417f1681570900a1ed373dcbe4b42634ec7b"; sha256="0k5h2k6x98zvvsafpw7y16xs9d6lxz0csa0mlm4wwggaywadn255"; }
+{ url = "https://github.com/modelica-3rdparty/SystemDynamics.git"; rev = "c58a26dc3e62a50e64fd336dc4aa499b2d5ad314"; sha256="0ra3a2vgqmry92kmm060gfa41mrpkgbs4swzl78ih3icawfzjz8q"; }
+{ url = "https://github.com/modelica-3rdparty/ThermoPower.git"; rev = "e012268625dd1645fe5570cf31d64129d83a8192"; sha256="1rlkli48kc9hnkplgb0bjkb6ajn7agiw4yh9l5sfvlv7k7k2gc8l"; }
+{ url = "https://openmodelica.org/git/ThermoSysPro.git"; rev = "d4f9c3ed35f7520f82439eb6e9f4057ae0f82b73"; sha256="0hxbn26g479qkr6rrglx9ljdxnpzd5ll1sf2v08skghrdjjb8jcx"; }
+{ url = "https://openmodelica.org/git/ThermoSysPro.git"; rev = "51e7ea2d2e121ee640e7897335c294923f8eaeb0"; sha256="0l11mzjkaxndsqrnnr0z7qvk08svv229119qkm81yb53ich9wnyw"; }
+{ url = "https://github.com/modelica/VehicleInterfaces.git"; rev = "ad956a35643d53e207ee126d67ea1f3f38337a39"; sha256="0g90cqwjpi06gn7vca5kqnz56im76s2hrdqjhsj2bl43rza8mhr0"; }
+{ url = "https://github.com/modelica-3rdparty/WasteWater.git"; rev = "90ff44ac791ba5ed98444c8597efbd2a2af01cad"; sha256="1icrn0y389rhxmf6i0mnsfgw9v9j5innpkz3q069rfm2ji268b12"; }
+{ url = "https://github.com/xogeny/XogenyTest.git"; rev = "9b98981e8ff0f440dd319d1a806e1fd2f0ab3436"; sha256="18glaxrlxfml26w7ljlf0yj3ah1fnhpbg01py28nplsgnrfwfwqj"; }
+{ url = "https://github.com/modelica-3rdparty/msgpack-modelica.git"; rev = "6ce2ca600c4902038c0f20b43ed442f1ee204310"; sha256="01x5a9y11yf62sc0j2y49yxwm24imj2lfl3z5mwvi9038gwn0lkx"; }
+{ url = "https://github.com/modelica-3rdparty/netCDF-DataReader.git"; rev = "3d2cc8272abfbc4b667d8868f851bf3e11c6f00e"; sha256="194810a4rn0flxgirrlnxsbxarnm97309dkp1w7nva9zv1q3wj7h"; }
+{ url = "https://github.com/joewa/open-bldc-modelica.git"; rev = "7817cd703b88fc1f433269d32c31e75eb50a21c6"; sha256="1plkxkx51f9yi99ysarmx2ymldizvyr0m66k996y5lj5h81jv8a8"; }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-svn.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-svn.nix
new file mode 100644
index 000000000000..244da64fb4e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-svn.nix
@@ -0,0 +1,5 @@
+[
+{ url = "https://svn.modelica.org/projects/Modelica_ElectricalSystems/InstantaneousSymmetricalComponents"; rev = "7978"; sha256="0f100c7bz4ai3ryhpkbbszw8z6mykvg40p03ic92n2qq58wjk37z"; }
+{ url = "https://svn.modelica.org/projects/Modelica_EmbeddedSystems/trunk/Modelica_StateGraph2"; rev = "8121"; sha256="1cys57nc1yzkr5admc139qs5pa48rj3g69pb3j3s9xcmpd483hzp"; }
+{ url = "https://svn.modelica.org/projects/Modelica_ElectricalSystems/Modelica_PowerFlow/trunk"; rev = "3174"; sha256="0yviw1b8psn8vfyl4q1naylak3lcqi2q1bqplqg3gg9iw4aiymxl"; }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-main.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-main.nix
new file mode 100644
index 000000000000..99e82259bfe6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/src-main.nix
@@ -0,0 +1,6 @@
+{
+ url = "https://openmodelica.org/git-readonly/OpenModelica.git";
+ fetchSubmodules = true;
+ rev = "8c5d48eb31a638d5220621b20377bfe6f9e9535e";
+ sha256 = "0i5cznkh4wwayjqms14f3phizqm493nrr1yjgs9747nfw7vnwsff";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-git.sh b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-git.sh
new file mode 100755
index 000000000000..481a89796415
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-git.sh
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+CWD=`pwd`
+
+chko() { (
+T=`mktemp -d`
+trap "rm -rf $T" EXIT INT PIPE
+cd $T
+cat >check.nix <<EOF
+with import <nixpkgs> {};
+fetchgit `cat $CWD/src-main.nix`
+EOF
+nix-build check.nix
+cat result/libraries/Makefile.libs
+) }
+
+getsha256() { (
+T=`mktemp -d`
+trap "rm -rf $T" EXIT INT PIPE
+cd $T
+
+L=`echo $2 | wc -c`
+if expr $L '<' 10 >/dev/null; then
+T=`echo $2 | sed 's@"\(.*\)"@"refs/tags/\1"@'`
+cat >check.nix <<EOF
+with import <nixpkgs> {};
+fetchgit {
+ url = $1;
+ rev = $T;
+ sha256 = "0000000000000000000000000000000000000000000000000000";
+}
+EOF
+SHA=`nix-build check.nix 2>&1 | sed -n 's/.*instead has ‘\(.*\)’.*/\1/g p'`
+echo "{ url = $1; rev = $T; sha256=\"$SHA\"; }"
+else
+cat >check.nix <<EOF
+with import <nixpkgs> {};
+fetchgit {
+ url = $1;
+ rev = $2;
+ sha256 = "0000000000000000000000000000000000000000000000000000";
+}
+EOF
+SHA=`nix-build check.nix 2>&1 | sed -n 's/.*instead has ‘\(.*\)’.*/\1/g p'`
+echo "{ url = $1; rev = $2; sha256=\"$SHA\"; }"
+fi
+
+# nix-build check.nix
+) }
+
+OUT=src-libs-git.nix
+
+echo '[' > $OUT
+
+chko |
+grep checkout-git.sh |
+tr \' \" |
+while read NM TGT URL BR REV ; do
+ echo Trying $TGT $URL $REV >&2
+ getsha256 $URL $REV >> $OUT || exit 1
+done
+
+echo ']' >> $OUT
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-svn.sh b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-svn.sh
new file mode 100755
index 000000000000..972bc7d61f13
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-svn.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+CWD=`pwd`
+
+chko() { (
+T=`mktemp -d`
+trap "rm -rf $T" EXIT INT PIPE
+cd $T
+cat >check.nix <<EOF
+with import <nixpkgs> {};
+fetchgit `cat $CWD/src-main.nix`
+EOF
+nix-build check.nix
+cat result/libraries/Makefile.libs
+) }
+
+getsha256() { (
+T=`mktemp -d`
+trap "rm -rf $T" EXIT INT PIPE
+cd $T
+
+L=`echo $2 | wc -c`
+cat >check.nix <<EOF
+with import <nixpkgs> {};
+fetchsvn {
+ url = $1;
+ rev = $2;
+ sha256 = "0000000000000000000000000000000000000000000000000000";
+}
+EOF
+SHA=`nix-build check.nix 2>&1 | sed -n 's/.*instead has ‘\(.*\)’.*/\1/g p'`
+echo "{ url = $1; rev = $2; sha256=\"$SHA\"; }"
+
+# nix-build check.nix
+) }
+
+OUT=src-libs-svn.nix
+
+echo '[' > $OUT
+
+chko |
+grep checkout-svn.sh |
+tr \' \" |
+while read NM TGT URL REV ; do
+ echo Trying $TGT $URL $REV >&2
+ getsha256 $URL $REV >> $OUT || exit 1
+done
+
+echo ']' >> $OUT
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix
new file mode 100644
index 000000000000..5db6092fa36d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake
+, libjpeg ? null
+, zlib ? null
+, libpng ? null
+, eigen ? null
+, libtiff ? null
+, enableExamples ? false
+, enableDocs ? false }:
+
+stdenv.mkDerivation rec {
+ version = "1.6";
+ pname = "openmvg";
+
+ src = fetchFromGitHub {
+ owner = "openmvg";
+ repo = "openmvg";
+ rev = "v${version}";
+ sha256 = "0mrsi0dzgi7cjzn13r9xv7rnc8c9a4h8ip78xy88m9xsyr21wd1h";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [ libjpeg zlib libpng eigen libtiff ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ cmakeFlags = [
+ "-DCMAKE_CXX_FLAGS=-std=c++11"
+ "-DOpenMVG_BUILD_EXAMPLES=${if enableExamples then "ON" else "OFF"}"
+ "-DOpenMVG_BUILD_DOC=${if enableDocs then "ON" else "OFF"}"
+ ];
+
+ cmakeDir = "./src";
+
+ dontUseCmakeBuildDir = true;
+
+ # This can be enabled, but it will exhause virtual memory on most machines.
+ enableParallelBuilding = false;
+
+ # Without hardeningDisable, certain flags are passed to the compile that break the build (primarily string format errors)
+ hardeningDisable = [ "all" ];
+
+ meta = {
+ description = "A library for computer-vision scientists and targeted for the Multiple View Geometry community";
+ homepage = "https://openmvg.readthedocs.io/en/latest/";
+ license = stdenv.lib.licenses.mpl20;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ mdaiter ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix
new file mode 100644
index 000000000000..efdd86f0ab2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake
+, eigen, opencv, ceres-solver, cgal, boost, vcg
+, gmp, mpfr, glog, gflags, libjpeg_turbo }:
+
+stdenv.mkDerivation {
+ name = "openmvs-unstable-2018-05-26";
+
+ src = fetchFromGitHub {
+ owner = "cdcseacave";
+ repo = "openmvs";
+ rev = "939033c55b50478339084431aac2c2318041afad";
+ sha256 = "12dgkwwfdp24581y3i41gsd1k9hq0aw917q0ja5s0if4qbmc8pni";
+ };
+
+ buildInputs = [ eigen opencv ceres-solver cgal boost vcg gmp mpfr glog gflags libjpeg_turbo ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ preConfigure = ''
+ cmakeFlagsArray=(
+ $cmakeFlagsArray
+ "-DCMAKE_CXX_FLAGS=-std=c++11"
+ "-DBUILD_SHARED_LIBS=ON"
+ "-DBUILD_STATIC_RUNTIME=ON"
+ "-DINSTALL_BIN_DIR=$out/bin"
+ "-DVCG_DIR=${vcg}"
+ "-DCGAL_ROOT=${cgal}/lib/cmake/CGAL"
+ "-DCERES_DIR=${ceres-solver}/lib/cmake/Ceres/"
+ )
+ '';
+
+ postFixup = ''
+ rp=$(patchelf --print-rpath $out/bin/DensifyPointCloud)
+ patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/DensifyPointCloud
+
+ rp=$(patchelf --print-rpath $out/bin/InterfaceVisualSFM)
+ patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/InterfaceVisualSFM
+
+ rp=$(patchelf --print-rpath $out/bin/ReconstructMesh)
+ patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/ReconstructMesh
+
+ rp=$(patchelf --print-rpath $out/bin/RefineMesh)
+ patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/RefineMesh
+
+ rp=$(patchelf --print-rpath $out/bin/TextureMesh)
+ patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/TextureMesh
+ '';
+
+ cmakeDir = "./";
+
+ dontUseCmakeBuildDir = true;
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A library for computer-vision scientists and especially targeted to the Multi-View Stereo reconstruction community";
+ homepage = "http://cdcseacave.github.io/openMVS/";
+ license = licenses.agpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mdaiter ];
+ # 20190414-174115: CMake cannot find CGAL which is passed as build input
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/rink/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/rink/default.nix
new file mode 100644
index 000000000000..0b1ef2b16ea9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/rink/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses }:
+
+rustPlatform.buildRustPackage rec {
+ version = "0.5.1";
+ pname = "rink";
+
+ src = fetchFromGitHub {
+ owner = "tiffany352";
+ repo = "rink-rs";
+ rev = "v${version}";
+ sha256 = "1s67drjzd4cf93hpm7b2facfd6y1x0s60aq6pygj7i02bm0cb9l9";
+ };
+
+ cargoSha256 = "1wd70y13lly7nccaqlv7w8znxfal0fzyf9d67y5c3aikj7hkzfin";
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ openssl ncurses ];
+
+ # Some tests fail and/or attempt to use internet servers.
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Unit-aware calculator";
+ homepage = "https://rinkcalc.app";
+ license = with licenses; [ mpl20 gpl3 ];
+ maintainers = with maintainers; [ sb0 Br1ght0ne ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/5.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/5.nix
new file mode 100644
index 000000000000..cab26577bd0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/5.nix
@@ -0,0 +1,91 @@
+{ stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2
+, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lz4, lzma, gsl_1, xxHash
+, Cocoa, OpenGL, noSplash ? false }:
+
+stdenv.mkDerivation rec {
+ pname = "root";
+ version = "5.34.38";
+
+ src = fetchurl {
+ url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
+ sha256 = "1ln448lszw4d6jmbdphkr2plwxxlhmjkla48vmmq750xc1lxlfrc";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ cmake pcre python2 zlib libxml2 lz4 lzma gsl_1 xxHash ]
+ ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
+ ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
+ ;
+
+ patches = [
+ ./sw_vers_root5.patch
+
+ # prevents rootcint from looking in /usr/includes and such
+ ./purify_include_paths_root5.patch
+
+ # disable dictionary generation for stuff that includes libc headers
+ # our glibc requires a modern compiler
+ ./disable_libc_dicts_root5.patch
+ ];
+
+ preConfigure = ''
+ patchShebangs build/unix/
+ ln -s ${stdenv.lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/
+ ''
+ # Fix CINTSYSDIR for "build" version of rootcint
+ # This is probably a bug that breaks out-of-source builds
+ + ''
+ substituteInPlace cint/cint/src/loadfile.cxx\
+ --replace 'env = "cint";' 'env = "'`pwd`'/cint";'
+ '' + stdenv.lib.optionalString noSplash ''
+ substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true"
+ '';
+
+ cmakeFlags = [
+ "-Drpath=ON"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ "-DCMAKE_INSTALL_INCLUDEDIR=include"
+ "-Dalien=OFF"
+ "-Dbonjour=OFF"
+ "-Dcastor=OFF"
+ "-Dchirp=OFF"
+ "-Ddavix=OFF"
+ "-Ddcache=OFF"
+ "-Dfftw3=OFF"
+ "-Dfitsio=OFF"
+ "-Dfortran=OFF"
+ "-Dgfal=OFF"
+ "-Dgsl_shared=ON"
+ "-Dgviz=OFF"
+ "-Dhdfs=OFF"
+ "-Dkrb5=OFF"
+ "-Dldap=OFF"
+ "-Dmathmore=ON"
+ "-Dmonalisa=OFF"
+ "-Dmysql=OFF"
+ "-Dodbc=OFF"
+ "-Dopengl=ON"
+ "-Doracle=OFF"
+ "-Dpgsql=OFF"
+ "-Dpythia6=OFF"
+ "-Dpythia8=OFF"
+ "-Drfio=OFF"
+ "-Dsqlite=OFF"
+ "-Dssl=OFF"
+ "-Dxml=ON"
+ "-Dxrootd=OFF"
+ ]
+ ++ stdenv.lib.optional stdenv.isDarwin "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks";
+
+ enableParallelBuilding = true;
+
+ setupHook = ./setup-hook.sh;
+
+ meta = with stdenv.lib; {
+ homepage = "https://root.cern.ch/";
+ description = "A data analysis framework";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ veprbl ];
+ license = licenses.lgpl21;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/default.nix
new file mode 100644
index 000000000000..97d8d4e7cee5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, lib, fetchurl, makeWrapper, cmake, gl2ps, gsl, libX11, libXpm, libXft
+, libXext, libGLU, libGL, libxml2, lz4, lzma, pcre, pkgconfig, python, xxHash
+, zlib
+, Cocoa, OpenGL, noSplash ? false }:
+
+stdenv.mkDerivation rec {
+ pname = "root";
+ version = "6.18.04";
+
+ src = fetchurl {
+ url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
+ sha256 = "196ghma6g5a7sqz52wyjkgvmh4hj4vqwppm0zwdypy33hgy8anii";
+ };
+
+ nativeBuildInputs = [ makeWrapper cmake pkgconfig ];
+ buildInputs = [ gl2ps pcre zlib libxml2 lz4 lzma gsl xxHash python.pkgs.numpy ]
+ ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
+ ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
+ ;
+
+ patches = [
+ ./sw_vers.patch
+ ];
+
+ preConfigure = ''
+ rm -rf builtins/*
+ substituteInPlace cmake/modules/SearchInstalledSoftware.cmake \
+ --replace 'set(lcgpackages ' '#set(lcgpackages '
+
+ patchShebangs build/unix/
+ '' + stdenv.lib.optionalString noSplash ''
+ substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true"
+ '';
+
+ cmakeFlags = [
+ "-Drpath=ON"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ "-DCMAKE_INSTALL_INCLUDEDIR=include"
+ "-Dalien=OFF"
+ "-Dbonjour=OFF"
+ "-Dcastor=OFF"
+ "-Dchirp=OFF"
+ "-Dclad=OFF"
+ "-Ddavix=OFF"
+ "-Ddcache=OFF"
+ "-Dfail-on-missing=ON"
+ "-Dfftw3=OFF"
+ "-Dfitsio=OFF"
+ "-Dfortran=OFF"
+ "-Dimt=OFF"
+ "-Dgfal=OFF"
+ "-Dgviz=OFF"
+ "-Dhdfs=OFF"
+ "-Dkrb5=OFF"
+ "-Dldap=OFF"
+ "-Dmonalisa=OFF"
+ "-Dmysql=OFF"
+ "-Dodbc=OFF"
+ "-Dopengl=ON"
+ "-Doracle=OFF"
+ "-Dpgsql=OFF"
+ "-Dpythia6=OFF"
+ "-Dpythia8=OFF"
+ "-Drfio=OFF"
+ "-Dsqlite=OFF"
+ "-Dssl=OFF"
+ "-Dvdt=OFF"
+ "-Dxml=ON"
+ "-Dxrootd=OFF"
+ ]
+ ++ stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.lib.getDev stdenv.cc.libc}/include"
+ ++ stdenv.lib.optional stdenv.isDarwin "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks";
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ for prog in rootbrowse rootcp rooteventselector rootls rootmkdir rootmv rootprint rootrm rootslimtree; do
+ wrapProgram "$out/bin/$prog" \
+ --prefix PYTHONPATH : "$out/lib"
+ done
+ '';
+
+ setupHook = ./setup-hook.sh;
+
+ meta = with stdenv.lib; {
+ homepage = "https://root.cern.ch/";
+ description = "A data analysis framework";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.veprbl ];
+ license = licenses.lgpl21;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/disable_libc_dicts_root5.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/disable_libc_dicts_root5.patch
new file mode 100644
index 000000000000..abd6222847ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/disable_libc_dicts_root5.patch
@@ -0,0 +1,27 @@
+diff --git a/cint/ROOT/CMakeLists.txt b/cint/ROOT/CMakeLists.txt
+--- a/cint/ROOT/CMakeLists.txt
++++ b/cint/ROOT/CMakeLists.txt
+@@ -47,21 +47,13 @@ set(CINTSTLDLLHEADERS
+ ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdcxxfunc.h
+ )
+ set(CINTINCDLLNAMES
+- stdfunc
++# stdfunc
+ # stdcxxfunc
+ )
+ set(CINTINCDLLHEADERS
+- ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdfunc.h
++# ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdfunc.h
+ # ${CMAKE_SOURCE_DIR}/cint/cint/lib/stdstrct/stdcxxfunc.h
+ )
+-if(NOT WIN32)
+- set(CINTSTLDLLNAMES ${CINTSTLDLLNAMES} valarray)
+- set(CINTSTLDLLHEADERS ${CINTSTLDLLHEADERS} ${CINTDLLDIR}/vary.h)
+- set(CINTINCDLLNAMES ${CINTINCDLLNAMES} posix ipc)
+- set(CINTINCDLLHEADERS ${CINTINCDLLHEADERS}
+- ${CMAKE_SOURCE_DIR}/cint/cint/lib/posix/exten.h
+- ${CMAKE_SOURCE_DIR}/cint/cint/lib/ipc/ipcif.h)
+-endif()
+
+ set(CINTBUILDLOADER
+ vector
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/purify_include_paths_root5.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/purify_include_paths_root5.patch
new file mode 100644
index 000000000000..6773603b8ad3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/purify_include_paths_root5.patch
@@ -0,0 +1,204 @@
+diff --git a/cint/cint/src/loadfile.cxx b/cint/cint/src/loadfile.cxx
+--- a/cint/cint/src/loadfile.cxx
++++ b/cint/cint/src/loadfile.cxx
+@@ -1365,92 +1365,6 @@ int G__statfilename(const char *filenamein, struct stat *statBuf,
+ }
+ }
+ #endif /* G__EDU_VERSION */
+-
+-#ifdef G__VISUAL
+- /**********************************************
+- * try /msdev/include
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- workname.Format("/msdev/include/%s%s",filename(),addpost[i2]);
+- res = stat( workname, statBuf );
+- if (res==0) {
+- if (fullPath) fullPath->Swap(workname);
+- return res;
+- }
+- }
+-#endif /* G__VISUAL */
+-
+-#ifdef G__SYMANTEC
+- /**********************************************
+- * try /sc/include
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- workname.Format("/sc/include/%s%s",filename(),addpost[i2]);
+- res = stat( workname, statBuf );
+- if (res==0) {
+- if (fullPath) fullPath->Swap(workname);
+- return res;
+- }
+- }
+-#endif // G__SYMANTEC
+-
+-#ifndef G__WIN32
+- /**********************************************
+- * try /usr/include/filename
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- workname.Format("/usr/include/%s%s",filename(),addpost[i2]);
+- res = stat( workname, statBuf );
+- if (res==0) {
+- if (fullPath) fullPath->Swap(workname);
+- return res;
+- }
+- }
+-#endif
+-
+-#ifdef __GNUC__
+- /**********************************************
+- * try /usr/include/g++/filename
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- workname.Format("/usr/include/g++/%s%s",filename(),addpost[i2]);
+- res = stat( workname, statBuf );
+- if (res==0) {
+- if (fullPath) fullPath->Swap(workname);
+- return res;
+- }
+- }
+-#endif /* __GNUC__ */
+-
+-#ifndef G__WIN32
+- /* #ifdef __hpux */
+- /**********************************************
+- * try /usr/include/CC/filename
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- workname.Format("/usr/include/CC/%s%s",filename(),addpost[i2]);
+- res = stat( workname, statBuf );
+- if (res==0) {
+- if (fullPath) fullPath->Swap(workname);
+- return res;
+- }
+- }
+-#endif
+-
+-#ifndef G__WIN32
+- /**********************************************
+- * try /usr/include/codelibs/filename
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- workname.Format("/usr/include/codelibs/%s%s"
+- ,filename(),addpost[i2]);
+- res = stat( workname, statBuf );
+- if (res==0) {
+- if (fullPath) fullPath->Swap(workname);
+- return res;
+- }
+- }
+-#endif
+ }
+ return -1;
+ }
+@@ -1960,107 +1874,6 @@ int G__loadfile(const char *filenamein)
+ }
+ if(G__ifile.fp) break;
+ #endif /* G__EDU_VERSION */
+-
+-#ifdef G__VISUAL
+- /**********************************************
+- * try /msdev/include
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- G__snprintf(G__ifile.name,G__MAXFILENAME,"/msdev/include/%s%s",filename(),addpost[i2]);
+-#ifndef G__WIN32
+- G__ifile.fp = fopen(G__ifile.name,"r");
+-#else
+- G__ifile.fp = fopen(G__ifile.name,"rb");
+-#endif
+- G__globalcomp=G__store_globalcomp;
+- }
+- if(G__ifile.fp) break;
+-#endif /* G__VISUAL */
+-
+-#ifdef G__SYMANTEC
+- /**********************************************
+- * try /sc/include
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- G__snprintf(G__ifile.name,G__MAXFILENAME,"/sc/include/%s%s",filename(),addpost[i2]);
+-#ifndef G__WIN32
+- G__ifile.fp = fopen(G__ifile.name,"r");
+-#else
+- G__ifile.fp = fopen(G__ifile.name,"rb");
+-#endif
+- G__globalcomp=G__store_globalcomp;
+- }
+- if(G__ifile.fp) break;
+-#endif /* G__SYMANTEC */
+-
+-#ifndef G__WIN32
+- /**********************************************
+- * try /usr/include/filename
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/%s%s",filename(),addpost[i2]);
+-#ifndef G__WIN32
+- G__ifile.fp = fopen(G__ifile.name,"r");
+-#else
+- G__ifile.fp = fopen(G__ifile.name,"rb");
+-#endif
+- G__globalcomp=G__store_globalcomp;
+- }
+- if(G__ifile.fp) break;
+-#endif
+-
+-#ifdef __GNUC__
+- /**********************************************
+- * try /usr/include/g++/filename
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/g++/%s%s",filename(),addpost[i2]);
+-#ifndef G__WIN32
+- G__ifile.fp = fopen(G__ifile.name,"r");
+-#else
+- G__ifile.fp = fopen(G__ifile.name,"rb");
+-#endif
+- G__globalcomp=G__store_globalcomp;
+- }
+- if(G__ifile.fp) break;
+-#endif /* __GNUC__ */
+-
+-#ifndef G__WIN32
+-/* #ifdef __hpux */
+- /**********************************************
+- * try /usr/include/CC/filename
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/CC/%s%s",filename(),addpost[i2]);
+-#ifndef G__WIN32
+- G__ifile.fp = fopen(G__ifile.name,"r");
+-#else
+- G__ifile.fp = fopen(G__ifile.name,"rb");
+-#endif
+- G__globalcomp=G__store_globalcomp;
+- }
+- if(G__ifile.fp) break;
+-/* #endif __hpux */
+-#endif
+-
+-#ifndef G__WIN32
+-/* #ifdef __hpux */
+- /**********************************************
+- * try /usr/include/codelibs/filename
+- **********************************************/
+- if('\0'!=G__cintsysdir[0]) {
+- G__snprintf(G__ifile.name,G__MAXFILENAME,"/usr/include/codelibs/%s%s"
+- ,filename(),addpost[i2]);
+-#ifndef G__WIN32
+- G__ifile.fp = fopen(G__ifile.name,"r");
+-#else
+- G__ifile.fp = fopen(G__ifile.name,"rb");
+-#endif
+- G__globalcomp=G__store_globalcomp;
+- }
+- if(G__ifile.fp) break;
+-/* #endif __hpux */
+-#endif
+ }
+ }
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/setup-hook.sh
new file mode 100644
index 000000000000..b26cf9b779f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/setup-hook.sh
@@ -0,0 +1,13 @@
+thisroot () {
+ # Workaround thisroot.sh dependency on man
+ if [ -z "${MANPATH-}" ]; then
+ MANPATH=:
+ fi
+ local oldOpts="-u"
+ shopt -qo nounset || oldOpts="+u"
+ set +u
+ source @out@/bin/thisroot.sh
+ set "$oldOpts"
+}
+
+postHooks+=(thisroot)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch
new file mode 100644
index 000000000000..34af132c11f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch
@@ -0,0 +1,101 @@
+diff a/build/unix/compiledata.sh b/build/unix/compiledata.sh
+--- a/build/unix/compiledata.sh
++++ b/build/unix/compiledata.sh
+@@ -47,7 +47,7 @@ fi
+
+ if [ "$ARCH" = "macosx" ] || [ "$ARCH" = "macosx64" ] || \
+ [ "$ARCH" = "macosxicc" ]; then
+- macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
++ macosx_minor=12
+ SOEXT="so"
+ if [ $macosx_minor -ge 5 ]; then
+ if [ "x`echo $SOFLAGS | grep -- '-install_name'`" != "x" ]; then
+diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
+--- a/cmake/modules/SetUpMacOS.cmake
++++ b/cmake/modules/SetUpMacOS.cmake
+@@ -2,17 +2,8 @@ set(ROOT_ARCHITECTURE macosx)
+ set(ROOT_PLATFORM macosx)
+
+ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+- EXECUTE_PROCESS(COMMAND sw_vers "-productVersion"
+- COMMAND cut -d . -f 1-2
+- OUTPUT_VARIABLE MACOSX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+-
+- MESSAGE(STATUS "Found a Mac OS X System ${MACOSX_VERSION}")
+-
+- if(MACOSX_VERSION VERSION_GREATER 10.7 AND ${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
+ set(libcxx ON CACHE BOOL "Build using libc++" FORCE)
+- endif()
+
+- if(MACOSX_VERSION VERSION_GREATER 10.4)
+ #TODO: check haveconfig and rpath -> set rpath true
+ #TODO: check Thread, define link command
+ #TODO: more stuff check configure script
+@@ -25,23 +16,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
+ SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -m64")
+- else()
+- MESSAGE(STATUS "Found a 32bit system")
+- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
+- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
+- SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -m32")
+- endif()
+- endif()
+-
+- if(MACOSX_VERSION VERSION_GREATER 10.6)
+- set(MACOSX_SSL_DEPRECATED ON)
+- endif()
+- if(MACOSX_VERSION VERSION_GREATER 10.7)
+- set(MACOSX_ODBC_DEPRECATED ON)
+- endif()
+- if(MACOSX_VERSION VERSION_GREATER 10.8)
+- set(MACOSX_GLU_DEPRECATED ON)
+- endif()
++ endif()
+
+ if (CMAKE_COMPILER_IS_GNUCXX)
+ message(STATUS "Found GNU compiler collection")
+@@ -104,7 +79,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+ endif()
+
+ #---Set Linker flags----------------------------------------------------------------------
+- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mmacosx-version-min=${MACOSX_VERSION}")
+ else (CMAKE_SYSTEM_NAME MATCHES Darwin)
+ MESSAGE(FATAL_ERROR "There is no setup for this this Apple system up to now. Don't know waht to do. Stop cmake at this point.")
+ endif (CMAKE_SYSTEM_NAME MATCHES Darwin)
+diff a/config/root-config.in b/config/root-config.in
+--- a/config/root-config.in
++++ b/config/root-config.in
+@@ -306,12 +306,6 @@ macosxicc)
+ auxlibs="-lm -ldl"
+ ;;
+ macosx64)
+- # MacOS X with gcc (GNU cc v4.x) in 64 bit mode
+- macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
+- # cannot find the one linked to libGraf if relocated after built
+- if [ $macosx_minor -le 4 ]; then
+- rootlibs="$rootlibs -lfreetype"
+- fi
+ auxcflags="${cxxversionflag} -m64"
+ auxldflags="-m64"
+ auxlibs="-lm -ldl"
+@@ -375,18 +369,11 @@ freebsd* | openbsd* | linux*)
+ macosx*)
+ for f in $features ; do
+ if test "x$f" = "xthread" ; then
+- if [ $macosx_minor -ge 5 ]; then
+ auxcflags="-pthread $auxcflags"
+ auxlibs="-lpthread $auxlibs"
+- else
+- auxcflags="-D_REENTRANT $auxcflags"
+- auxlibs="-lpthread $auxlibs"
+- fi
+ fi
+ if test "x$f" = "xrpath" ; then
+- if [ $macosx_minor -ge 5 ]; then
+ auxlibs="-Wl,-rpath,$libdir $auxlibs"
+- fi
+ fi
+ if test "x$f" = "xlibcxx" ; then
+ auxcflags="-stdlib=libc++ $auxcflags"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/sw_vers_root5.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/sw_vers_root5.patch
new file mode 100644
index 000000000000..f044bed91f3d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/root/sw_vers_root5.patch
@@ -0,0 +1,104 @@
+diff --git a/build/unix/compiledata.sh b/build/unix/compiledata.sh
+--- a/build/unix/compiledata.sh
++++ b/build/unix/compiledata.sh
+@@ -49,7 +49,7 @@ fi
+
+ if [ "$ARCH" = "macosx" ] || [ "$ARCH" = "macosx64" ] || \
+ [ "$ARCH" = "macosxicc" ]; then
+- macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
++ macosx_minor=7
+ SOEXT="so"
+ if [ $macosx_minor -ge 5 ]; then
+ if [ "x`echo $SOFLAGS | grep -- '-install_name'`" != "x" ]; then
+diff --git a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
+--- a/cmake/modules/SetUpMacOS.cmake
++++ b/cmake/modules/SetUpMacOS.cmake
+@@ -12,25 +12,11 @@ set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /usr/X11R6)
+ #---------------------------------------------------------------------------------------------------------
+
+ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+- EXECUTE_PROCESS(COMMAND sw_vers "-productVersion"
+- COMMAND cut -d . -f 1-2
+- OUTPUT_VARIABLE MACOSX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+- MESSAGE(STATUS "Found a Mac OS X System ${MACOSX_VERSION}")
+- EXECUTE_PROCESS(COMMAND sw_vers "-productVersion"
+- COMMAND cut -d . -f 2
+- OUTPUT_VARIABLE MACOSX_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE)
+-
+- if(MACOSX_VERSION VERSION_GREATER 10.7 AND ${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
+ set(libcxx ON CACHE BOOL "Build using libc++" FORCE)
+- endif()
+
+- if(${MACOSX_MINOR} GREATER 4)
+ #TODO: check haveconfig and rpath -> set rpath true
+ #TODO: check Thread, define link command
+ #TODO: more stuff check configure script
+- execute_process(COMMAND /usr/sbin/sysctl machdep.cpu.extfeatures OUTPUT_VARIABLE SYSCTL_OUTPUT)
+- if(${SYSCTL_OUTPUT} MATCHES 64)
+- MESSAGE(STATUS "Found a 64bit system")
+ set(ROOT_ARCHITECTURE macosx64)
+ SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
+ SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -m64")
+@@ -38,28 +24,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
+ SET(CMAKE_FORTRAN_FLAGS "${CMAKE_FORTRAN_FLAGS} -m64")
+- else(${SYSCTL_OUTPUT} MATCHES 64)
+- MESSAGE(STATUS "Found a 32bit system")
+- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
+- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
+- SET(CMAKE_FORTRAN_FLAGS "${CMAKE_FORTRAN_FLAGS} -m32")
+- endif(${SYSCTL_OUTPUT} MATCHES 64)
+- endif()
+-
+- if(MACOSX_VERSION VERSION_GREATER 10.6)
+- set(MACOSX_SSL_DEPRECATED ON)
+- endif()
+- if(MACOSX_VERSION VERSION_GREATER 10.7)
+- set(MACOSX_ODBC_DEPRECATED ON)
+- endif()
+- if(MACOSX_VERSION VERSION_GREATER 10.8)
+- set(MACOSX_GLU_DEPRECATED ON)
+- set(MACOSX_KRB5_DEPRECATED ON)
+- set(MACOSX_TMPNAM_DEPRECATED ON)
+- endif()
+- if(MACOSX_VERSION VERSION_GREATER 10.9)
+- set(MACOSX_LDAP_DEPRECATED ON)
+- endif()
+
+ if (CMAKE_COMPILER_IS_GNUCXX)
+ message(STATUS "Found GNU compiler collection")
+@@ -132,7 +96,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+ endif()
+
+ #---Set Linker flags----------------------------------------------------------------------
+- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mmacosx-version-min=${MACOSX_VERSION} -Wl,-rpath,@loader_path/../lib")
++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,@loader_path/../lib")
+
+
+ else (CMAKE_SYSTEM_NAME MATCHES Darwin)
+diff --git a/config/root-config.in b/config/root-config.in
+--- a/config/root-config.in
++++ b/config/root-config.in
+@@ -391,7 +391,7 @@ macosxicc)
+ ;;
+ macosx64)
+ # MacOS X with gcc (GNU cc v4.x) in 64 bit mode
+- macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
++ macosx_minor=7
+ # cannot find the one linked to libGraf if relocated after built
+ if [ $macosx_minor -le 4 ]; then
+ rootlibs="$rootlibs -lfreetype"
+diff --git a/cint/ROOT/CMakeLists.txt b/cint/ROOT/CMakeLists.txt
+--- a/cint/ROOT/CMakeLists.txt
++++ b/cint/ROOT/CMakeLists.txt
+@@ -232,9 +232,7 @@ foreach(_name ${CINTINCDLLNAMES})
+ DEPENDS ${HEADER_OUTPUT_PATH}/systypes.h
+ )
+
+- if(MACOSX_MINOR GREATER 4)
+ set(_ExtraFlag "-D__DARWIN_UNIX03")
+- endif()
+
+ add_custom_command(OUTPUT ${OutFileName}
+ COMMAND cint_tmp -K -w1 -z${_name} -n${OutFileName} -D__MAKECINT__ -DG__MAKECINT ${_ExtraFlag} -c-2 -Z0 ${InFileName} ${AdditionalHeaderFiles} ${CMAKE_BINARY_DIR}/cint/cint/include/sys/types.h ${CMAKE_SOURCE_DIR}/cint/cint/lib/posix/posix.h \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/default.nix
new file mode 100644
index 000000000000..bbbe80eb6568
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/default.nix
@@ -0,0 +1,75 @@
+{ lib, fetchFromGitHub, gcc, python }:
+
+let
+ xhtml2pdf = import ./xhtml2pdf.nix {
+ inherit lib;
+ fetchPypi = python.pkgs.fetchPypi;
+ buildPythonPackage = python.pkgs.buildPythonPackage;
+ html5lib = python.pkgs.html5lib;
+ httplib2 = python.pkgs.httplib2;
+ nose = python.pkgs.nose;
+ pillow = python.pkgs.pillow;
+ pypdf2 = python.pkgs.pypdf2;
+ reportlab = python.pkgs.reportlab;
+ };
+
+in
+
+python.pkgs.buildPythonApplication rec {
+ pname = "sasview";
+ version = "4.2.0";
+
+ checkInputs = with python.pkgs; [
+ pytest
+ unittest-xml-reporting
+ ];
+
+ checkPhase = ''
+ # fix the following error:
+ # imported module 'sas.sascalc.data_util.uncertainty' has this __file__ attribute:
+ # /build/source/build/lib.linux-x86_64-2.7/sas/sascalc/data_util/uncertainty.py
+ # which is not the same as the test file we want to collect:
+ # /build/source/dist/tmpbuild/sasview/sas/sascalc/data_util/uncertainty.py
+ rm -r dist/tmpbuild
+
+ HOME=$(mktemp -d) py.test
+ '';
+
+ propagatedBuildInputs = with python.pkgs; [
+ bumps
+ gcc
+ h5py
+ libxslt
+ lxml
+ matplotlib
+ numpy
+ pyparsing
+ periodictable
+ pillow
+ pylint
+ pyopencl
+ reportlab
+ sasmodels
+ scipy
+ six
+ sphinx
+ wxPython
+ xhtml2pdf
+ ];
+
+ src = fetchFromGitHub {
+ owner = "SasView";
+ repo = "sasview";
+ rev = "v${version}";
+ sha256 = "0k3486h46k6406h0vla8h68fd78wh3dcaq5w6f12jh6g4cjxv9qa";
+ };
+
+ patches = [ ./pyparsing-fix.patch ./local_config.patch ];
+
+ meta = with lib; {
+ homepage = "https://www.sasview.org";
+ description = "Fitting and data analysis for small angle scattering data";
+ maintainers = with maintainers; [ rprospero ];
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/local_config.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/local_config.patch
new file mode 100644
index 000000000000..5b6c3436494a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/local_config.patch
@@ -0,0 +1,22 @@
+diff --git a/src/sas/_config.py b/src/sas/_config.py
+index ece08fd4c..926768593 100644
+--- a/src/sas/_config.py
++++ b/src/sas/_config.py
+@@ -67,8 +67,8 @@ def load_local_config(app_dir):
+ logger.info("GuiManager loaded %s", path)
+ return module
+ except Exception as exc:
+- logger.critical("Error loading %s: %s", path, exc)
+- sys.exit()
++ import sas.sasview.local_config
++ return sas.sasview.local_config
+
+ def make_custom_config_path(user_dir):
+ """
+@@ -116,4 +116,4 @@ def load_custom_config(path):
+
+ from sas.sasview import custom_config
+ logger.info("GuiManager custom_config defaults to sas.sasview.custom_config")
+- return custom_config
+\ No newline at end of file
++ return custom_config
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/pyparsing-fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/pyparsing-fix.patch
new file mode 100644
index 000000000000..c3cd164a899a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/pyparsing-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index 866ab7e36..78727b276 100755
+--- a/setup.py
++++ b/setup.py
+@@ -401,7 +401,7 @@ package_data['sas.sasview'] = ['images/*',
+ packages.append("sas.sasview")
+
+ required = [
+- 'bumps>=0.7.5.9', 'periodictable>=1.5.0', 'pyparsing>=2.0.0',
++ 'bumps>=0.7.5.9', 'periodictable>=1.5.0',
+
+ # 'lxml>=2.2.2',
+ 'lxml', 'h5py',
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/xhtml2pdf.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/xhtml2pdf.nix
new file mode 100644
index 000000000000..41d15e2f1bab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/sasview/xhtml2pdf.nix
@@ -0,0 +1,33 @@
+{lib, fetchPypi, buildPythonPackage, html5lib, httplib2, nose, pillow, pypdf2, reportlab}:
+
+let
+ #xhtml2pdf specifically requires version "1.0b10" of html5lib
+ html5 = html5lib.overrideAttrs( oldAttrs: rec {
+ name = "${oldAttrs.pname}-${version}";
+ version = "1.0b10";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "1yd068a5c00wd0ajq0hqimv7fd82lhrw0w3s01vbhy9bbd6xapqd";
+ };
+ });
+in
+
+buildPythonPackage rec {
+ pname = "xhtml2pdf";
+ version = "0.2.1";
+
+ buildInputs = [html5];
+ propagatedBuildInputs = [httplib2 nose pillow pypdf2 reportlab html5];
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1n9r8zdk9gc2x539fq60bhszmd421ipj8g78zmsn3njvma1az9k1";
+ };
+
+ meta = {
+ description = "A pdf converter for the ReportLab Toolkit";
+ homepage = "https://github.com/xhtml2pdf/xhtml2pdf";
+ license = lib.licenses.asl20;
+ maintainers = with lib.maintainers; [ rprospero ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
new file mode 100644
index 000000000000..0ba1cd0d2faf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
@@ -0,0 +1,112 @@
+{ stdenv, fetchFromGitLab, cmake, perl, python3, boost, valgrind
+# Optional requirements
+# Lua 5.3 needed and not available now
+#, luaSupport ? false, lua5
+, fortranSupport ? false, gfortran
+, buildDocumentation ? false, transfig, ghostscript, doxygen
+, buildJavaBindings ? false, openjdk
+, modelCheckingSupport ? false, libunwind, libevent, elfutils # Inside elfutils: libelf and libdw
+, debug ? false
+, moreTests ? false
+}:
+
+with stdenv.lib;
+
+let
+ optionOnOff = option: if option then "on" else "off";
+in
+
+stdenv.mkDerivation rec {
+ pname = "simgrid";
+ version = "3.25";
+
+ src = fetchFromGitLab {
+ domain = "framagit.org";
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "019fgryfwpcrkv1f3271v7qxk0mfw2w990vgnk1cqhmr9i1f17gs";
+ };
+
+ nativeBuildInputs = [ cmake perl python3 boost valgrind ]
+ ++ optionals fortranSupport [ gfortran ]
+ ++ optionals buildJavaBindings [ openjdk ]
+ ++ optionals buildDocumentation [ transfig ghostscript doxygen ]
+ ++ optionals modelCheckingSupport [ libunwind libevent elfutils ];
+
+ #buildInputs = optional luaSupport lua5;
+
+ # Make it so that libsimgrid.so will be found when running programs from
+ # the build dir.
+ preConfigure = ''
+ export LD_LIBRARY_PATH="$PWD/build/lib"
+ '';
+
+ # Release mode is not supported in SimGrid
+ cmakeBuildType = "Debug";
+
+ # Disable/Enable functionality
+ # Note: those packages are not packaged in Nixpkgs yet so some options
+ # are disabled:
+ # - papi: for enable_smpi_papi
+ # - ns3: for enable_ns3
+ # - lua53: for enable_lua
+ #
+ # For more information see:
+ # https://simgrid.org/doc/3.22/Installing_SimGrid.html#simgrid-compilation-options)
+ cmakeFlags = [
+ "-Denable_documentation=${optionOnOff buildDocumentation}"
+ "-Denable_java=${optionOnOff buildJavaBindings}"
+ "-Denable_fortran=${optionOnOff fortranSupport}"
+ "-Denable_model-checking=${optionOnOff modelCheckingSupport}"
+ "-Denable_ns3=off"
+ "-Denable_lua=off"
+ "-Denable_lib_in_jar=off"
+ "-Denable_maintainer_mode=off"
+ "-Denable_mallocators=on"
+ "-Denable_debug=on"
+ "-Denable_smpi=on"
+ "-Denable_smpi_ISP_testsuite=${optionOnOff moreTests}"
+ "-Denable_smpi_MPICH3_testsuite=${optionOnOff moreTests}"
+ "-Denable_compile_warnings=${optionOnOff debug}"
+ "-Denable_compile_optimizations=${optionOnOff (!debug)}"
+ "-Denable_lto=${optionOnOff (!debug)}"
+ # "-Denable_lua=${optionOnOff luaSupport}"
+ # "-Denable_smpi_papi=${optionOnOff moreTests}"
+ ];
+
+ makeFlags = optional debug "VERBOSE=1";
+
+ # Some Perl scripts are called to generate test during build which
+ # is before the fixupPhase, so do this manualy here:
+ preBuild = ''
+ patchShebangs ..
+ '';
+
+ doCheck = true;
+
+ # Prevent the execution of tests known to fail.
+ preCheck = ''
+ cat <<EOW >CTestCustom.cmake
+ SET(CTEST_CUSTOM_TESTS_IGNORE smpi-replay-multiple)
+ EOW
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Framework for the simulation of distributed applications";
+ longDescription = ''
+ SimGrid is a toolkit that provides core functionalities for the
+ simulation of distributed applications in heterogeneous distributed
+ environments. The specific goal of the project is to facilitate
+ research in the area of distributed and parallel application
+ scheduling on distributed computing platforms ranging from simple
+ network of workstations to Computational Grids.
+ '';
+ homepage = "https://simgrid.org/";
+ license = licenses.lgpl2Plus;
+ maintainers = with maintainers; [ mickours mpoquet ];
+ platforms = ["x86_64-linux"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
new file mode 100644
index 000000000000..a03f7682a51c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "snakemake";
+ version = "5.28.0";
+
+ propagatedBuildInputs = with python3Packages; [
+ appdirs
+ ConfigArgParse
+ datrie
+ docutils
+ GitPython
+ jsonschema
+ nbformat
+ psutil
+ pulp
+ pyyaml
+ ratelimiter
+ requests
+ toposort
+ wrapt
+ ];
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "2367ce91baf7f8fa7738d33aff9670ffdf5410bbac49aeb209f73b45a3425046";
+ };
+
+ doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
+
+ meta = with stdenv.lib; {
+ homepage = "https://snakemake.readthedocs.io";
+ license = licenses.mit;
+ description = "Python-based execution environment for make-like workflows";
+ longDescription = ''
+ Snakemake is a workflow management system that aims to reduce the complexity of
+ creating workflows by providing a fast and comfortable execution environment,
+ together with a clean and readable specification language in Python style. Snakemake
+ workflows are essentially Python scripts extended by declarative code to define
+ rules. Rules describe how to create output files from input files.
+ '';
+ maintainers = with maintainers; [ helkafen renatoGarcia veprbl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/tulip/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/tulip/default.nix
new file mode 100644
index 000000000000..f29cd41169d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/tulip/default.nix
@@ -0,0 +1,39 @@
+{ fetchurl, stdenv, libxml2, freetype, libGLU, libGL, glew, qt4
+, cmake, makeWrapper, libjpeg, python }:
+
+let version = "5.2.1"; in
+stdenv.mkDerivation rec {
+ pname = "tulip";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/auber/${pname}-${version}_src.tar.gz";
+ sha256 = "0bqmqy6sri87a8xv5xf7ffaq5zin4hiaa13g0l64b84i7yckfwky";
+ };
+
+ buildInputs = [ libxml2 freetype glew libGLU libGL qt4 libjpeg python ];
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+
+ # FIXME: "make check" needs Docbook's DTD 4.4, among other things.
+ doCheck = false;
+
+ meta = {
+ description = "A visualization framework for the analysis and visualization of relational data";
+
+ longDescription =
+ '' Tulip is an information visualization framework dedicated to the
+ analysis and visualization of relational data. Tulip aims to
+ provide the developer with a complete library, supporting the design
+ of interactive information visualization applications for relational
+ data that can be tailored to the problems he or she is addressing.
+ '';
+
+ homepage = "http://tulip.labri.fr/";
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # arbitrary choice
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/misc/vite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/vite/default.nix
new file mode 100644
index 000000000000..0d749bb9be4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/misc/vite/default.nix
@@ -0,0 +1,44 @@
+{ fetchsvn, stdenv, cmake, qt4, libGLU, libGL }:
+
+# ViTE 1.1 has several bugs, so use the SVN version.
+let
+ rev = "1543";
+ externals = fetchsvn {
+ url = "svn://scm.gforge.inria.fr/svn/vite/externals";
+ sha256 = "1a422n3dp72v4visq5b1i21cf8sj12903sgg5v2hah3sgk02dnyz";
+ inherit rev;
+ };
+in
+stdenv.mkDerivation {
+ name = "vite-1.2pre${rev}";
+
+ src = fetchsvn {
+ url = "svn://scm.gforge.inria.fr/svn/vite/trunk";
+ sha256 = "02479dv96h29d0w0svp42mjjrxhmv8lkkqp30w7mlx5gr2g0v7lf";
+ inherit rev;
+ };
+
+ preConfigure = ''
+ rm -rv externals
+ ln -sv "${externals}" externals
+ '';
+
+ buildInputs = [ cmake qt4 libGLU libGL ];
+
+ NIX_LDFLAGS = "-lGLU";
+
+ meta = {
+ description = "Visual Trace Explorer (ViTE), a tool to visualize execution traces";
+
+ longDescription = ''
+ ViTE is a trace explorer. It is a tool to visualize execution
+ traces in Pajé or OTF format for debugging and profiling
+ parallel or distributed applications.
+ '';
+
+ homepage = "http://vite.gforge.inria.fr/";
+ license = stdenv.lib.licenses.cecill20;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
new file mode 100644
index 000000000000..51978e95766d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl
+, gfortran, mpi
+}:
+
+stdenv.mkDerivation {
+ version = "1.10";
+ pname = "DL_POLY_Classic";
+
+ src = fetchurl {
+ url = "https://ccpforge.cse.rl.ac.uk/gf/download/frsrelease/574/8924/dl_class_1.10.tar.gz";
+ sha256 = "1r76zvln3bwycxlmqday0sqzv5j260y7mdh66as2aqny6jzd5ld7";
+ };
+
+ buildInputs = [ mpi gfortran ];
+
+ configurePhase = ''
+ cd source
+ cp -v ../build/MakePAR Makefile
+ '';
+
+ buildPhase = ''
+ make dlpoly
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -v ../execute/DLPOLY.X $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.ccp5.ac.uk/DL_POLY_C";
+ description = "DL_POLY Classic is a general purpose molecular dynamics simulation package";
+ license = licenses.bsdOriginal;
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ maintainers.costrouc ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
new file mode 100644
index 000000000000..bfa4a1f43391
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchurl
+, cmake
+, singlePrec ? true
+, mpiEnabled ? false
+, fftw
+, openmpi
+, perl
+}:
+
+stdenv.mkDerivation {
+ name = "gromacs-2020.4";
+
+ src = fetchurl {
+ url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2020.4.tar.gz";
+ sha256 = "1rplvgna60nqyb8nspaz3bfkwb044kv3zxdaa5whql5m441nj6am";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ fftw perl ]
+ ++ (stdenv.lib.optionals mpiEnabled [ openmpi ]);
+
+ cmakeFlags = (
+ if singlePrec then [
+ "-DGMX_DOUBLE=OFF"
+ ] else [
+ "-DGMX_DOUBLE=ON"
+ "-DGMX_DEFAULT_SUFFIX=OFF"
+ ]
+ ) ++ (
+ if mpiEnabled then [
+ "-DGMX_MPI:BOOL=TRUE"
+ "-DGMX_CPU_ACCELERATION:STRING=SSE4.1"
+ "-DGMX_OPENMP:BOOL=TRUE"
+ "-DGMX_THREAD_MPI:BOOL=FALSE"
+ ] else [
+ "-DGMX_MPI:BOOL=FALSE"
+ ]
+ );
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.gromacs.org";
+ license = licenses.gpl2;
+ description = "Molecular dynamics software package";
+ longDescription = ''
+ GROMACS is a versatile package to perform molecular dynamics,
+ i.e. simulate the Newtonian equations of motion for systems
+ with hundreds to millions of particles.
+
+ It is primarily designed for biochemical molecules like
+ proteins, lipids and nucleic acids that have a lot of
+ complicated bonded interactions, but since GROMACS is
+ extremely fast at calculating the nonbonded interactions (that
+ usually dominate simulations) many groups are also using it
+ for research on non-biological systems, e.g. polymers.
+
+ GROMACS supports all the usual algorithms you expect from a
+ modern molecular dynamics implementation, (check the online
+ reference or manual for details), but there are also quite a
+ few features that make it stand out from the competition.
+
+ See: http://www.gromacs.org/About_Gromacs for details.
+ '';
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
new file mode 100644
index 000000000000..5dc31695c60d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchFromGitHub
+, libpng, gzip, fftw, blas, lapack
+, mpi ? null
+}:
+let packages = [
+ "asphere" "body" "class2" "colloid" "compress" "coreshell"
+ "dipole" "granular" "kspace" "manybody" "mc" "misc" "molecule"
+ "opt" "peri" "qeq" "replica" "rigid" "shock" "snap" "srd" "user-reaxc"
+ ];
+ lammps_includes = "-DLAMMPS_EXCEPTIONS -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64";
+ withMPI = (mpi != null);
+in
+stdenv.mkDerivation rec {
+ # LAMMPS has weird versioning converted to ISO 8601 format
+ version = "stable_22Aug2018";
+ pname = "lammps";
+
+ src = fetchFromGitHub {
+ owner = "lammps";
+ repo = "lammps";
+ rev = version;
+ sha256 = "1dlifm9wm1jcw2zwal3fnzzl41ng08c7v48w6hx2mz84zljg1nsj";
+ };
+
+ passthru = {
+ inherit mpi;
+ inherit packages;
+ };
+
+ buildInputs = [ fftw libpng blas lapack gzip ]
+ ++ (stdenv.lib.optionals withMPI [ mpi ]);
+
+ configurePhase = ''
+ cd src
+ for pack in ${stdenv.lib.concatStringsSep " " packages}; do make "yes-$pack" SHELL=$SHELL; done
+ '';
+
+ # Must do manual build due to LAMMPS requiring a seperate build for
+ # the libraries and executable. Also non-typical make script
+ buildPhase = ''
+ make mode=exe ${if withMPI then "mpi" else "serial"} SHELL=$SHELL LMP_INC="${lammps_includes}" FFT_PATH=-DFFT_FFTW3 FFT_LIB=-lfftw3 JPG_LIB=-lpng
+ make mode=shlib ${if withMPI then "mpi" else "serial"} SHELL=$SHELL LMP_INC="${lammps_includes}" FFT_PATH=-DFFT_FFTW3 FFT_LIB=-lfftw3 JPG_LIB=-lpng
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/include $out/lib
+
+ cp -v lmp_* $out/bin/
+ cp -v *.h $out/include/
+ cp -v liblammps* $out/lib/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Classical Molecular Dynamics simulation code";
+ longDescription = ''
+ LAMMPS is a classical molecular dynamics simulation code designed to
+ run efficiently on parallel computers. It was developed at Sandia
+ National Laboratories, a US Department of Energy facility, with
+ funding from the DOE. It is an open-source code, distributed freely
+ under the terms of the GNU Public License (GPL).
+ '';
+ homepage = "http://lammps.sandia.gov";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.costrouc ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/elmerfem/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/elmerfem/default.nix
new file mode 100644
index 000000000000..a76fe3a72774
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/elmerfem/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, cmake, git, gfortran, openmpi, blas, liblapack, qt4, qwt6_qt4, pkg-config }:
+
+stdenv.mkDerivation rec {
+ pname = "elmerfem";
+ version = "8.4";
+
+ src = fetchFromGitHub {
+ owner = "elmercsc";
+ repo = "elmerfem";
+ rev = "release-${version}";
+ sha256 = "0vk31lplxlng173q8jjcpbyj1gaf98jvkqjvi9077d1nslya7vpm";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ nativeBuildInputs = [ cmake pkg-config git ];
+ buildInputs = [ gfortran openmpi blas liblapack qt4 qwt6_qt4 ];
+
+ preConfigure = ''
+ patchShebangs ./
+ '';
+
+ storepath = placeholder "out";
+
+ cmakeFlags = [
+ "-DELMER_INSTALL_LIB_DIR=${storepath}/lib"
+ "-DWITH_OpenMP:BOOLEAN=TRUE"
+ "-DWITH_MPI:BOOLEAN=TRUE"
+ "-DWITH_ELMERGUI:BOOLEAN=TRUE"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ "-DCMAKE_INSTALL_INCLUDEDIR=include"
+ "-DCMAKE_OpenGL_GL_PREFERENCE=GLVND"
+ ];
+
+ patches = [
+ ./fix-cmake.patch
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://elmerfem.org/";
+ description = "A finite element software for multiphysical problems";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.wulfsta ];
+ license = licenses.lgpl21;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/elmerfem/fix-cmake.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/elmerfem/fix-cmake.patch
new file mode 100644
index 000000000000..098f65207330
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/elmerfem/fix-cmake.patch
@@ -0,0 +1,13 @@
+diff --exclude '*~' -ruN A/torch/CMakeLists.txt B/torch/CMakeLists.txt
+--- A/fem/tests/CMakeLists.txt 2020-04-23 02:35:03.243388917 -0400
++++ B/fem/tests/CMakeLists.txt 2018-12-19 20:18:40.671857320 -0400
+@@ -14,7 +14,7 @@
+ SET(MESH2D_BIN "${CMAKE_BINARY_DIR}/meshgen2d/src/Mesh2D")
+
+ MACRO(SUBDIRLIST result curdir depth)
+ set(glob_pattern "*")
+- FOREACH(D RANGE 1 depth)
++ FOREACH(D RANGE 1 ${depth})
+ FILE(GLOB children RELATIVE ${curdir} ${glob_pattern})
+ FOREACH(child ${children})
+ IF(IS_DIRECTORY ${curdir}/${child})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix
new file mode 100644
index 000000000000..a9c83310b2ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "quantomatic";
+ version = "0.7";
+
+ src = fetchurl {
+ url = "https://github.com/Quantomatic/quantomatic/releases/download/v${version}/Quantomatic-v${version}.jar";
+ sha256 = "04dd5p73a7plb4l4x2balam8j7mxs8df06rjkalxycrr1id52q4r";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jre ];
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/libexec/quantomatic
+ cp $src $out/libexec/quantomatic/quantomatic.jar
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/quantomatic --add-flags "-jar $out/libexec/quantomatic/quantomatic.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A piece of software for reasoning about monoidal theories; in particular, quantum information processing";
+ license = licenses.gpl3;
+ homepage = "https://quantomatic.github.io/";
+ maintainers = with maintainers; [ nickhu ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/compat.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/compat.patch
new file mode 100644
index 000000000000..c66b91b76280
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/compat.patch
@@ -0,0 +1,12 @@
+diff --git a/src/PythiaMain.cxx b/src/PythiaMain.cxx
+index 0e5ddd2..2b626ab 100644
+--- a/src/PythiaMain.cxx
++++ b/src/PythiaMain.cxx
+@@ -96,7 +96,6 @@ int main(int argc, char **argv){
+ HepMCConverter pythiaToHepMC;
+
+ pythiaToHepMC.set_store_pdf(true);
+- pythiaToHepMC.set_crash_on_problem(true);
+
+ if(photosHandler.isEnabled()){
+ photosHandler.initialise();
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix
new file mode 100644
index 000000000000..2c4757d92e49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, boost, hepmc2, lhapdf, pythia, makeWrapper }:
+
+stdenv.mkDerivation {
+ pname = "sacrifice";
+ version = "1.0.0";
+
+ src = fetchurl {
+ url = "https://www.hepforge.org/archive/agile/Sacrifice-1.0.0.tar.gz";
+ sha256 = "10bvpq63kmszy1habydwncm0j1dgvam0fkrmvkgbkvf804dcjp6g";
+ };
+
+ buildInputs = [ boost hepmc2 lhapdf pythia ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ patches = [
+ ./compat.patch
+ ./pythia83xx.patch
+ ];
+
+ preConfigure = ''
+ substituteInPlace configure --replace HAVE_LCG=yes HAVE_LCG=no
+ ''
+ + stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace configure --replace LIB_SUFFIX=\"so\" LIB_SUFFIX=\"dylib\"
+ '';
+
+ configureFlags = [
+ "--with-HepMC=${hepmc2}"
+ "--with-pythia=${pythia}"
+ ];
+
+ postInstall = if stdenv.isDarwin then ''
+ install_name_tool -add_rpath ${pythia}/lib "$out"/bin/run-pythia
+ '' else ''
+ wrapProgram $out/bin/run-pythia \
+ --prefix LD_LIBRARY_PATH : "${pythia}/lib"
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "A standalone contribution to AGILe for steering Pythia 8";
+ license = stdenv.lib.licenses.gpl2;
+ homepage = "https://agile.hepforge.org/trac/wiki/Sacrifice";
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ veprbl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/pythia83xx.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/pythia83xx.patch
new file mode 100644
index 000000000000..ea162e30c9a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sacrifice/pythia83xx.patch
@@ -0,0 +1,55 @@
+diff --git a/include/Sacrifice/UserHooksFactory.hh b/include/Sacrifice/UserHooksFactory.hh
+index 04b105b..19f2b4f 100644
+--- a/include/Sacrifice/UserHooksFactory.hh
++++ b/include/Sacrifice/UserHooksFactory.hh
+@@ -12,7 +12,7 @@
+
+ namespace Sacrifice{
+
+- using Pythia8::UserHooks;
++ using Pythia8::UserHooksPtr;
+ using std::string;
+ using std::map;
+
+@@ -21,7 +21,7 @@ namespace Sacrifice{
+
+ public:
+
+- static UserHooks* create(const string &hookName);
++ static UserHooksPtr create(const string &hookName);
+
+ /**
+ * Loads a library of UserHooks
+@@ -39,7 +39,7 @@ namespace Sacrifice{
+
+ class ICreator{
+ public:
+- virtual UserHooks *create() const = 0;
++ virtual UserHooksPtr create() const = 0;
+ virtual ~ICreator(){};
+ };
+
+@@ -61,8 +61,8 @@ namespace Sacrifice{
+ }
+ }
+
+- UserHooks *create()const{
+- return new T;
++ UserHooksPtr create()const{
++ return std::make_shared<T>();
+ }
+
+ private:
+diff --git a/src/UserHooksFactory.cxx b/src/UserHooksFactory.cxx
+index 84a485b..5274119 100644
+--- a/src/UserHooksFactory.cxx
++++ b/src/UserHooksFactory.cxx
+@@ -11,7 +11,7 @@ namespace Sacrifice{
+ using std::ifstream;
+
+ //////////////////////////////////////////////////////////////////////////////
+- UserHooks *UserHooksFactory::create(const string &name){
++ UserHooksPtr UserHooksFactory::create(const string &name){
+ map<string, const ICreator*>::const_iterator it = s_creators().find(name);
+ if(it == s_creators().end()){
+ //eek!
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix
new file mode 100644
index 000000000000..93e402ec3ceb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, gfortran, hepmc2, fastjet, lhapdf, rivet, sqlite }:
+
+stdenv.mkDerivation rec {
+ pname = "sherpa";
+ version = "2.2.10";
+
+ src = fetchurl {
+ url = "https://www.hepforge.org/archive/sherpa/SHERPA-MC-${version}.tar.gz";
+ sha256 = "1iwa17s8ipj6a2b8zss5csb1k5y9s5js38syvq932rxcinbyjsl4";
+ };
+
+ postPatch = ''
+ sed -ie '/sys\/sysctl.h/d' ATOOLS/Org/Run_Parameter.C
+ '';
+
+ buildInputs = [ gfortran sqlite lhapdf rivet ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-sqlite3=${sqlite.dev}"
+ "--enable-hepmc2=${hepmc2}"
+ "--enable-fastjet=${fastjet}"
+ "--enable-lhapdf=${lhapdf}"
+ "--enable-rivet=${rivet}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Simulation of High-Energy Reactions of PArticles in lepton-lepton, lepton-photon, photon-photon, lepton-hadron and hadron-hadron collisions";
+ license = licenses.gpl2;
+ homepage = "https://gitlab.com/sherpa-team/sherpa";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ veprbl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix
new file mode 100644
index 000000000000..cbb097350c71
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, apfel, apfelgrid, applgrid, blas, gfortran, lhapdf, lapack, libyaml, lynx
+, mela, root5, qcdnum, which, libtirpc
+}:
+
+stdenv.mkDerivation rec {
+ pname = "xfitter";
+ version = "2.0.1";
+
+ src = fetchurl {
+ name = "${pname}-${version}.tgz";
+ url = "https://www.xfitter.org/xFitter/xFitter/DownloadPage?action=AttachFile&do=get&target=${pname}-${version}.tgz";
+ sha256 = "0kmgc67nw5flp92yw5x6l2vsnhwsfi5z2a20404anisdgdjs8zc6";
+ };
+
+ patches = [
+ ./undefined_behavior.patch
+ ];
+
+ # patch needs to updated due to version bump
+ #CXXFLAGS = "-Werror=return-type";
+
+ preConfigure =
+ # Fix F77LD to workaround for a following build error:
+ #
+ # gfortran: error: unrecognized command line option '-stdlib=libc++'
+ #
+ stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace src/Makefile.in \
+ --replace "F77LD = \$(F77)" "F77LD = \$(CXXLD)" \
+ '';
+
+ configureFlags = [
+ "--enable-apfel"
+ "--enable-apfelgrid"
+ "--enable-applgrid"
+ "--enable-mela"
+ "--enable-lhapdf"
+ ];
+
+ nativeBuildInputs = [ gfortran which ];
+ buildInputs =
+ [ apfel apfelgrid applgrid blas lhapdf lapack mela root5 qcdnum libtirpc ]
+ # pdf2yaml requires fmemopen and open_memstream which are not readily available on Darwin
+ ++ stdenv.lib.optional (!stdenv.isDarwin) libyaml
+ ;
+ propagatedBuildInputs = [ lynx ];
+
+ enableParallelBuilding = true;
+
+ hardeningDisable = [ "format" ];
+
+ NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
+ NIX_LDFLAGS = [ "-ltirpc" ];
+
+ meta = with stdenv.lib; {
+ description = "The xFitter project is an open source QCD fit framework ready to extract PDFs and assess the impact of new data";
+ license = licenses.gpl3;
+ homepage = "https://www.xfitter.org/xFitter";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ veprbl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/xfitter/undefined_behavior.patch b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/xfitter/undefined_behavior.patch
new file mode 100644
index 000000000000..53278527a807
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/xfitter/undefined_behavior.patch
@@ -0,0 +1,454 @@
+diff --git a/DY/src/finterface.cc b/DY/src/finterface.cc
+--- a/DY/src/finterface.cc
++++ b/DY/src/finterface.cc
+@@ -14,17 +14,17 @@
+ using namespace std;
+
+ extern "C" {
+- int dy_create_calc_(const int *ds_id, const int *chg_prod,
++ void dy_create_calc_(const int *ds_id, const int *chg_prod,
+ const double *beam_en, const char *boz,
+ const double *ranges, const char *var_name,
+ const int *n_bins, const double *bin_edges);
+
+- int dy_do_calc_();
++ void dy_do_calc_();
+
+- int dy_get_res_(const int *ds_id, double *calc_res);
++ void dy_get_res_(const int *ds_id, double *calc_res);
+
+- int dy_release_();
+- int dy_set_ewpars_();
++ void dy_release_();
++ void dy_set_ewpars_();
+ }
+
+ typedef map <int, DYcalc* > DCmap;
+@@ -34,7 +34,7 @@ vector<BinMatrix*> gBinMatrices;
+
+ // initializes Drell-Yan LO calculations with info on
+ // beam, process, kinematic cuts, and bins.
+-int dy_create_calc_(const int *ds_id, const int *chg_prod,
++void dy_create_calc_(const int *ds_id, const int *chg_prod,
+ const double *beam_en, const char *boz,
+ const double *ranges, const char *var_name,
+ const int *n_bins, const double *bin_edges)
+@@ -99,13 +99,11 @@ int dy_create_calc_(const int *ds_id, const int *chg_prod,
+ // create calculator and put to map
+ DYcalc * dc = new DYcalc(bm, pc, int_steps);
+ gCalcs.insert( pair<int,DYcalc*>( *ds_id,dc ) );
+-
+- return 1;
+ }
+
+
+ // calculate Drell-Yan LO cross sections for all data sets
+-int dy_do_calc_()
++void dy_do_calc_()
+ {
+ // evolve convolutions
+ vector<PDFconv*>::iterator ipc = gPDFconvs.begin();
+@@ -118,28 +116,24 @@ int dy_do_calc_()
+ if ( true != idc->second->Integrate() ) {
+ cout << "Something is wrong with DY integration for "
+ << idc->first << " data set." << endl;
+- return 0;
++ return;
+ }
+ }
+-
+- return 1;
+ }
+
+
+ // return DY calculations for data set ds_name
+-int dy_get_res_(const int *ds_id, double *calc_res)
++void dy_get_res_(const int *ds_id, double *calc_res)
+ {
+ DYcalc * dc = gCalcs.find(*ds_id)->second;
+ dc->getCalcRes(calc_res);
+-
+- return 1;
+ }
+
+-int dy_set_ewpars_(){
++void dy_set_ewpars_(){
+ PhysPar::setPhysPar();
+ }
+
+-int dy_release_()
++void dy_release_()
+ {
+ vector<PDFconv*>::iterator ipc = gPDFconvs.begin();
+ for (; ipc!=gPDFconvs.end(); ipc++){
+@@ -155,6 +149,4 @@ int dy_release_()
+ for (; idc != gCalcs.end() ; idc++){
+ delete (idc->second);
+ }
+-
+- return 1;
+ }
+diff --git a/DiffDIS/include/DataTable.h b/DiffDIS/include/DataTable.h
+--- a/DiffDIS/include/DataTable.h
++++ b/DiffDIS/include/DataTable.h
+@@ -307,6 +307,7 @@ class DataTable_t {
+ for(ic=0; ic < GetNcols(); ic++) {
+ for(ir=0; ir < npt; ir++) Data[ic][ir] = A.Data[ic][ir];
+ }
++ return *this;
+ }
+
+ //@}
+diff --git a/FastNLO/src/FastNLOInterface.cc b/FastNLO/src/FastNLOInterface.cc
+--- a/FastNLO/src/FastNLOInterface.cc
++++ b/FastNLO/src/FastNLOInterface.cc
+@@ -39,14 +39,14 @@ void gauleg(double x1,double x2,double *x,double *w, int n);
+
+
+ extern "C" {
+- int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale);
+- int fastnlocalc_(const int *idataset, double *xsec);
+- int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt);
+- int fastnlopointskip_(const int *idataset, int *point, int *npoints);
+- int hf_errlog_(const int* ID, const char* TEXT, long length);
+- int hf_stop_();
++ void fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale);
++ void fastnlocalc_(const int *idataset, double *xsec);
++ void fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt);
++ void fastnlopointskip_(const int *idataset, int *point, int *npoints);
++ void hf_errlog_(const int* ID, const char* TEXT, long length);
++ void hf_stop_();
+ double interp_(double *A, double *xx1, double *x, int *NGrid1, double *res);
+- int setfastnlotoppar_(const int *idataset);
++ void setfastnlotoppar_(const int *idataset);
+ }
+
+
+@@ -58,7 +58,7 @@ map<int, FastNLOxFitter*> gFastNLO_array;
+ map<int, BoolArray*> gUsedPoints_array;
+ int CreateUsedPointsArray(int idataset, int npoints);
+
+-int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale) {
++void fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale) {
+
+
+ map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
+@@ -67,7 +67,7 @@ int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_
+ const char* text = "I: Double initialization of the same fastnlo data set!";
+ hf_errlog_(&id, text, (long)strlen(text));
+ //hf_stop_();
+- return 1;
++ return;
+ }
+
+ FastNLOxFitter* fnloreader = new FastNLOxFitter( thfile );
+@@ -112,10 +112,9 @@ int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_
+ }
+
+ gFastNLO_array.insert(pair<int, FastNLOxFitter*>(*idataset, fnloreader) );
+- return 0;
+ }
+
+-int setfastnlotoppar_(const int *idataset) {
++void setfastnlotoppar_(const int *idataset) {
+ //!< Dedicated settings for difftop
+ map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
+ map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
+@@ -130,11 +129,9 @@ int setfastnlotoppar_(const int *idataset) {
+ fnloreader->SetExternalFuncForMuF( &Function_Mu );
+ fnloreader->SetExternalFuncForMuR( &Function_Mu);
+ //fnloreader->SetScaleFactorsMuRMuF(1.0,1.0); //Be reminded that muR and muF scales are hard coded (that's not true!)
+-
+- return 0;
+ }
+
+-int fastnlocalc_(const int *idataset, double *xsec) {
++void fastnlocalc_(const int *idataset, double *xsec) {
+
+ map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
+ map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
+@@ -176,13 +173,10 @@ int fastnlocalc_(const int *idataset, double *xsec) {
+ outputidx++;
+ }
+ }
+-
+-
+- return 0;
+ }
+
+ //MK14 New function for Difftop calculation: it is called in trunk/src/difftop_fastnlo.f
+-int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt){
++void fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt){
+
+ map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
+ map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
+@@ -262,10 +256,6 @@ int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *to
+ Total += interpC(xsec,xg[k],thbin,Nthpoints)*wg[k];
+
+ *tot = Total;
+-
+-
+-
+- return 0;
+ }
+
+
+@@ -277,7 +267,7 @@ int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *to
+
+
+
+-int fastnlopointskip_(const int *idataset, int *point, int *npoints) {
++void fastnlopointskip_(const int *idataset, int *point, int *npoints) {
+ map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
+ if(UsedPointsIterator == gUsedPoints_array.end( ))
+ CreateUsedPointsArray(*idataset, *npoints);
+@@ -292,8 +282,6 @@ int fastnlopointskip_(const int *idataset, int *point, int *npoints) {
+
+ BoolArray* usedpoints = UsedPointsIterator->second;
+ usedpoints->at(*point-1) = false;
+-
+- return 0;
+ }
+
+ int CreateUsedPointsArray(int idataset, int npoints) {
+diff --git a/Hathor/src/HathorInterface.cc b/Hathor/src/HathorInterface.cc
+--- a/Hathor/src/HathorInterface.cc
++++ b/Hathor/src/HathorInterface.cc
+@@ -6,9 +6,9 @@
+ #include "../interface/xFitterPdf.h"
+
+ extern "C" {
+- int hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
++ void hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
+ const unsigned int& pertubOrder, const unsigned int& precisionLevel);
+- int hathorcalc_(const int *idataset, double *xsec);
++ void hathorcalc_(const int *idataset, double *xsec);
+ }
+
+ extern "C" {
+@@ -19,7 +19,7 @@ extern "C" {
+ }
+
+ extern "C" {
+- int hf_errlog_(const int* ID, const char* TEXT, long length);
++ void hf_errlog_(const int* ID, const char* TEXT, long length);
+ }
+
+ // FIXME: delete pointers at the end! (in some hathordestroy_ or so)
+@@ -28,7 +28,7 @@ xFitterPdf* pdf;
+ int* rndStore;
+ double mtop;
+
+-int hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
++void hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
+ const unsigned int& pertubOrder, const unsigned int& precisionLevel) {
+
+ if(hathor_array.size()==0) {
+@@ -69,7 +69,7 @@ int hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, con
+ return 0;
+ }
+
+-int hathorcalc_(const int *idataset, double *xsec) {
++void hathorcalc_(const int *idataset, double *xsec) {
+ rlxd_reset(rndStore);
+
+ std::map<int, Hathor*>::const_iterator hathorIter = hathor_array.find(*idataset);
+diff --git a/src/TheorEval.cc b/src/TheorEval.cc
+--- a/src/TheorEval.cc
++++ b/src/TheorEval.cc
+@@ -62,6 +62,7 @@ TheorEval::initTheory()
+ list<tToken> sl;
+ this->assignTokens(sl);
+ this->convertToRPN(sl);
++ return 0;
+ }
+
+ int
+@@ -167,6 +168,7 @@ TheorEval::assignTokens(list<tToken> &sl)
+ sl.push_back(t);
+ }
+ }
++ return 0;
+ }
+
+ int
+@@ -217,6 +219,7 @@ TheorEval::convertToRPN(list<tToken> &sl)
+ cout << endl;
+ */
+
++ return 0;
+ }
+
+ int
+@@ -236,6 +239,7 @@ TheorEval::initTerm(int iterm, valarray<double> *val)
+ hf_errlog_(id, text, textlen);
+ return -1;
+ }
++ return 0;
+ }
+
+ int
+@@ -348,6 +352,7 @@ TheorEval::initGridTerm(int iterm, valarray<double> *val)
+
+ // associate grid and valarray pointers in token
+ _mapGridToken[g] = val;
++ return 0;
+ }
+
+ int
+@@ -430,6 +435,7 @@ TheorEval::initKfTerm(int iterm, valarray<double> *val)
+
+ // write k-factor array to the token valarray
+ *val = valarray<double>(vkf.data(), vkf.size());
++ return 0;
+ }
+
+ int
+@@ -465,6 +471,7 @@ TheorEval::setCKM(const vector<double> &v_ckm)
+ int textlen = strlen(text);
+ hf_errlog_(id, text, textlen);
+ #endif
++ return 0;
+ }
+
+ int
+@@ -531,6 +538,7 @@ TheorEval::Evaluate(valarray<double> &vte )
+ }
+ //vte /= _units;
+ }
++ return 0;
+ }
+
+ int
+@@ -555,6 +563,7 @@ TheorEval::getGridValues()
+
+
+ }
++ return 0;
+ }
+
+ int
+diff --git a/src/ftheor_eval.cc b/src/ftheor_eval.cc
+--- a/src/ftheor_eval.cc
++++ b/src/ftheor_eval.cc
+@@ -19,15 +19,15 @@
+ using namespace std;
+
+ extern "C" {
+- int set_theor_eval_(int *dsId);//, int *nTerms, char **TermName, char **TermType,
++ void set_theor_eval_(int *dsId);//, int *nTerms, char **TermName, char **TermType,
+ // char **TermSource, char *TermExpr);
+- int set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags,
++ void set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags,
+ double *allBins);
+ // int set_theor_units_(int *dsId, double *units);
+- int init_theor_eval_(int *dsId);
+- int update_theor_ckm_();
+- int get_theor_eval_(int *dsId, int* np, int* idx);
+- int close_theor_eval_();
++ void init_theor_eval_(int *dsId);
++ void update_theor_ckm_();
++ void get_theor_eval_(int *dsId, int* np, int* idx);
++ void close_theor_eval_();
+ }
+
+ /// global dataset to theory evaluation pointer map
+@@ -59,7 +59,7 @@ extern struct ord_scales {
+ dataset ID.
+ write details on argumets
+ */
+-int set_theor_eval_(int *dsId)//, int *nTerms, char **TermName, char **TermType,
++void set_theor_eval_(int *dsId)//, int *nTerms, char **TermName, char **TermType,
+ // char **TermSource, char *TermExpr)
+ {
+ // convert fortran strings to c++
+@@ -90,15 +90,13 @@ int set_theor_eval_(int *dsId)//, int *nTerms, char **TermName, char **TermType,
+ << " already exists." << endl;
+ exit(1); // make proper exit later
+ }
+-
+- return 1;
+ }
+
+ /*!
+ Sets datasets bins in theory evaluations.
+ write details on argumets
+ */
+-int set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags,
++void set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags,
+ double *allBins)
+ {
+ tTEmap::iterator it = gTEmap.find(*dsId);
+@@ -110,7 +108,6 @@ int set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags,
+
+ TheorEval *te = gTEmap.at(*dsId);
+ te->setBins(*nBinDimension, *nPoints, binFlags, allBins);
+- return 1;
+ }
+
+ /*
+@@ -132,7 +129,7 @@ int set_theor_units_(int *dsId, double *units)
+ /*!
+ Initializes theory for requested dataset.
+ */
+-int init_theor_eval_(int *dsId)
++void init_theor_eval_(int *dsId)
+ {
+ tTEmap::iterator it = gTEmap.find(*dsId);
+ if (it == gTEmap.end() ) {
+@@ -148,7 +145,7 @@ int init_theor_eval_(int *dsId)
+ /*!
+ Updates the CKM matrix to all the initialized appl grids
+ */
+-int update_theor_ckm_()
++void update_theor_ckm_()
+ {
+ double a_ckm[] = { ckm_matrix_.Vud, ckm_matrix_.Vus, ckm_matrix_.Vub,
+ ckm_matrix_.Vcd, ckm_matrix_.Vcs, ckm_matrix_.Vcb,
+@@ -164,7 +161,7 @@ int update_theor_ckm_()
+ /*!
+ Evaluates theory for requested dataset and writes it to the global THEO array.
+ */
+-int get_theor_eval_(int *dsId, int *np, int*idx)
++void get_theor_eval_(int *dsId, int *np, int*idx)
+ {
+
+ tTEmap::iterator it = gTEmap.find(*dsId);
+@@ -194,11 +191,11 @@ int get_theor_eval_(int *dsId, int *np, int*idx)
+ // write the predictions to THEO array
+ if( ip != *np ){
+ cout << "ERROR in get_theor_eval_: number of points mismatch" << endl;
+- return -1;
++ return;
+ }
+ }
+
+-int close_theor_eval_()
++void close_theor_eval_()
+ {
+ tTEmap::iterator it = gTEmap.begin();
+ for (; it!= gTEmap.end(); it++){
+diff --git a/src/lhapdf6_output.c b/src/lhapdf6_output.c
+--- a/src/lhapdf6_output.c
++++ b/src/lhapdf6_output.c
+@@ -64,7 +64,7 @@ extern double bvalij_(int *,int *,int *,int *,int *);
+ extern double bvalxq_(int *,int *,double *,double *,int *);
+ extern double hf_get_alphas_(double *);
+ extern int getord_(int *);
+-extern int grpars_(int *, double *, double *, int *, double *, double *, int *);
++extern void grpars_(int *, double *, double *, int *, double *, double *, int *);
+ extern int getcbt_(int *, double *, double *, double *);
+ extern void getpdfunctype_heraf_(int *mc, int *asymh, int *symh, char *name, size_t size);
+ extern void hf_errlog_(int *, char *, size_t);
+diff --git a/tools/draw/include/FileOpener.h b/tools/draw/include/FileOpener.h
+--- a/tools/draw/include/FileOpener.h
++++ b/tools/draw/include/FileOpener.h
+@@ -61,7 +61,7 @@ class InFileOpener_t {
+ string GetPath() const {return ind < 0 ? "" : Flist[ind];}
+
+ // ==================================
+- int Add(const string& fname) {
++ void Add(const string& fname) {
+ Flist.push_back(fname);
+ }
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix
new file mode 100644
index 000000000000..5ae56528f964
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, fetchurl, qmake }:
+
+mkDerivation rec {
+ pname = "xflr5";
+ version = "6.47";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xflr5/${pname}_v${version}_src.tar.gz";
+ sha256 = "02x3r9iv3ndwxa65mxn9m5dlhcrnjiq7cffi6rmb456gs3v3dnav";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ qmake ];
+
+ meta = with lib; {
+ description = "An analysis tool for airfoils, wings and planes";
+ homepage = https://sourceforge.net/projects/xflr5/;
+ license = licenses.gpl3;
+ maintainers = [ maintainers.esclear ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/programming/fdr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/fdr/default.nix
new file mode 100644
index 000000000000..4eeca5c1759b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/fdr/default.nix
@@ -0,0 +1,68 @@
+{stdenv, fetchurl, qtbase, qtx11extras, ncurses5, xorg, zlib, python27Packages}:
+stdenv.mkDerivation {
+ name = "fdr-4.2.3";
+ src = fetchurl {
+ url = "https://www.cs.ox.ac.uk/projects/fdr/downloads/fdr-3789-linux-x86_64.tar.gz";
+ sha256 = "0n2yqichym5xdawlgk3r7yha88k7ycnx6585jfrcm7043sls1i88";
+ };
+
+ libPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc
+ python27Packages.python
+ qtbase
+ qtx11extras
+ ncurses5
+ xorg.libX11
+ xorg.libXft
+ zlib
+ ];
+
+ phases = [ "unpackPhase" "installPhase" ];
+ installPhase = ''
+ mkdir -p "$out"
+
+ # shipped Qt is buggy
+ rm lib/libQt*
+ rm -r lib/qt_plugins
+
+ cp -r * "$out"
+ ln -s ${ncurses5.out}/lib/libtinfo.so.5 $out/lib/libtinfo.so.5
+ ln -s ${qtbase.bin}/${qtbase.qtPluginPrefix} $out/lib/qt_plugins
+ ln -s ${zlib.out}/lib/libz.so.1 $out/lib/libz.so.1
+
+ for b in fdr4 _fdr4 refines _refines cspmprofiler cspmexplorerprof
+ do
+ patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ --set-rpath "$libPath:$out/lib" \
+ "$out/bin/$b"
+ done
+
+ for l in corei7/librefines.so \
+ libcspm_process_compiler.so \
+ libcsp_operators.so \
+ _fdr.so \
+ libfdr.so \
+ libfdr_java.so \
+ libprocess_compiler.so \
+ librefines_gui.so \
+ librefines_licensing.so \
+ libboost_date_time.so.1.60.0 \
+ libboost_filesystem.so.1.60.0 \
+ libboost_iostreams.so.1.60.0 \
+ libboost_program_options.so.1.60.0 \
+ libboost_serialization.so.1.60.0 \
+ libboost_system.so.1.60.0
+ do
+ patchelf --set-rpath "$libPath:$out/lib" \
+ "$out/lib/$l"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.cs.ox.ac.uk/projects/fdr/";
+ description = "The CSP refinement checker";
+ license = licenses.unfreeRedistributable;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ nickhu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/programming/groove/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/groove/default.nix
new file mode 100644
index 000000000000..87b7b02317a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/groove/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, unzip, makeWrapper, makeDesktopItem, icoutils, jre }:
+
+let
+ desktopItem = makeDesktopItem {
+ name = "groove-simulator";
+ exec = "groove-simulator";
+ icon = "groove";
+ desktopName = "GROOVE Simulator";
+ comment = "GRaphs for Object-Oriented VErification";
+ categories = "Science;ComputerScience;";
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "groove";
+ version = "5.7.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/groove/groove/${version}/${pname}-${builtins.replaceStrings ["."] ["_"] version}-bin.zip";
+ sha256 = "1cl3xzl3n8b9a7h5pvnv31bab9j9zaw07ppk8whk8h865dcq1d10";
+ };
+
+ nativeBuildInputs = [ unzip makeWrapper icoutils ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/share/groove
+ cp -r bin lib $out/share/groove/
+
+ mkdir -p $out/share/doc/groove
+ cp CHANGES README *.pdf $out/share/doc/groove/
+
+ mkdir -p $out/bin
+ for bin in Generator Imager ModelChecker PrologChecker Simulator Viewer; do
+ makeWrapper ${jre}/bin/java $out/bin/groove-''${bin,,} \
+ --add-flags "-jar $out/share/groove/bin/$bin.jar"
+ done
+
+ mkdir -p $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications/
+
+ mkdir -p $out/share/icons/hicolor/{16x16,32x32}/apps
+ icotool -x -i 1 -o $out/share/icons/hicolor/32x32/apps/groove.png groove-green-g.ico
+ icotool -x -i 2 -o $out/share/icons/hicolor/16x16/apps/groove.png groove-green-g.ico
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GRaphs for Object-Oriented VErification";
+ homepage = "http://groove.cs.utwente.nl/";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/programming/plm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/plm/default.nix
new file mode 100644
index 000000000000..ebfb6471c632
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/plm/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, makeWrapper, jre, gcc, valgrind}:
+# gcc and valgrind are not strict dependencies, they could be made
+# optional. They are here because plm can only help you learn C if you
+# have them installed.
+stdenv.mkDerivation rec {
+ major = "2";
+ minor = "5";
+ version = "${major}-${minor}";
+ pname = "plm";
+
+ src = fetchurl {
+ url = "http://webloria.loria.fr/~quinson/Teaching/PLM/plm-${major}_${minor}.jar";
+ sha256 = "0m17cxa3nxi2cbswqvlfzp0mlfi3wrkw8ry2xhkxy6aqzm2mlgcc";
+ name = "${pname}-${version}.jar";
+ };
+
+ buildInputs = [ makeWrapper jre gcc valgrind ];
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -p "$prefix/bin"
+
+ makeWrapper ${jre}/bin/java $out/bin/plm \
+ --add-flags "-jar $src" \
+ --prefix PATH : "$PATH"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Free cross-platform programming exerciser";
+ license = licenses.gpl3;
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.all;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/programming/scyther/cli.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/scyther/cli.nix
new file mode 100644
index 000000000000..6623f5def4cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/scyther/cli.nix
@@ -0,0 +1,33 @@
+{ stdenv, glibc, flex, bison, cmake
+, version, src, meta }:
+stdenv.mkDerivation {
+ pname = "scyther-cli";
+ inherit version;
+
+ inherit src meta;
+
+ buildInputs = [
+ cmake
+ glibc.static
+ flex
+ bison
+ ];
+
+ patchPhase = ''
+ # Since we're not in a git dir, the normal command this project uses to create this file wouldn't work
+ printf "%s\n" "#define TAGVERSION \"${version}\"" > src/version.h
+ '';
+
+ configurePhase = ''
+ (cd src && cmakeConfigurePhase)
+ '';
+
+ dontUseCmakeBuildDir = true;
+ cmakeFlags = [ "-DCMAKE_C_FLAGS=-std=gnu89" ];
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mv src/scyther-linux "$out/bin/scyther-cli"
+ ln -s "$out/bin/scyther-cli" "$out/bin/scyther-linux"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/programming/scyther/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/scyther/default.nix
new file mode 100644
index 000000000000..ca6b57de611d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/programming/scyther/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, lib, buildEnv, pkgsi686Linux, fetchFromGitHub, python27Packages, graphviz
+, includeGUI ? true
+, includeProtocols ? true
+}:
+let
+ version = "1.1.3";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ sha256 = "0rb4ha5bnjxnwj4f3hciq7kyj96fhw14hqbwl5kr9cdw8q62mx0h";
+ owner = "cascremers";
+ repo = "scyther";
+ };
+
+ meta = with lib; {
+ description = "A tool for the automatic verification of security protocols";
+ homepage = "https://www.cs.ox.ac.uk/people/cas.cremers/scyther/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ infinisil ];
+ platforms = platforms.linux;
+ };
+
+ cli = pkgsi686Linux.callPackage ./cli.nix {
+ inherit version src meta;
+ };
+
+ gui = stdenv.mkDerivation {
+ pname = "scyther-gui";
+ inherit version;
+ inherit src meta;
+ buildInputs = [
+ python27Packages.wrapPython
+ ];
+
+ patchPhase = ''
+ file=gui/Scyther/Scyther.py
+
+ # By default the scyther binary is looked for in the directory of the python script ($out/gui), but we want to have it look where our cli package is
+ substituteInPlace $file --replace "return getMyDir()" "return \"${cli}/bin\""
+
+ # Removes the Shebang from the file, as this would be wrapped wrongly
+ sed -i -e "1d" $file
+ '';
+
+ dontBuild = true;
+
+ propagatedBuildInputs = [
+ python27Packages.wxPython
+ graphviz
+ ];
+
+ installPhase = ''
+ mkdir -p "$out"/gui "$out"/bin
+ cp -r gui/* "$out"/gui
+ ln -s "$out"/gui/scyther-gui.py "$out/bin/scyther-gui"
+ '';
+
+ postFixup = ''
+ wrapPythonProgramsIn "$out/gui" "$out $pythonPath"
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ "$out/gui/scyther.py" "$src/gui/Protocols/Demo/ns3.spdl"
+ '';
+ };
+in
+ buildEnv {
+ name = "scyther-${version}";
+ inherit meta;
+ paths = [ cli ] ++ lib.optional includeGUI gui;
+ pathsToLink = [ "/bin" ];
+
+ postBuild = ''
+ rm "$out/bin/scyther-linux"
+ '' + lib.optionalString includeProtocols ''
+ mkdir -p "$out/protocols"
+ cp -rv ${src}/protocols/* "$out/protocols"
+ '';
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
new file mode 100644
index 000000000000..e6d1c544ee4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
@@ -0,0 +1,45 @@
+{ lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake
+, qtbase, qtscript, qtwebkit, qtserialport, qtsvg, qtdeclarative, qtquickcontrols2
+, alsaLib, libsndfile, flite, openssl, udev, SDL2
+}:
+
+mkDerivation rec {
+ pname = "apmplanner2";
+ version = "2.0.28-rc1";
+
+ src = fetchFromGitHub {
+ owner = "ArduPilot";
+ repo = "apm_planner";
+ rev = version;
+ sha256 = "18yn8bdz5hmgb0m5hlk8bibz4cj4g25w75pm1rvc4ds0mr1qgyjd";
+ };
+
+ buildInputs = [
+ alsaLib libsndfile flite openssl udev SDL2
+ qtbase qtscript qtwebkit qtserialport qtsvg qtdeclarative qtquickcontrols2
+ ];
+
+ nativeBuildInputs = [ qmake ];
+
+ qmakeFlags = [ "apm_planner.pro" ];
+
+ # this ugly hack is necessary, as `bin/apmplanner2` needs the contents of `share/APMPlanner2` inside of `bin/`
+ preFixup = ''
+ ln --relative --symbolic $out/share/APMPlanner2/* $out/bin/
+ substituteInPlace $out/share/applications/apmplanner2.desktop \
+ --replace /usr $out
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Ground station software for autonomous vehicles";
+ longDescription = ''
+ A GUI ground control station for autonomous vehicles using the MAVLink protocol.
+ Includes support for the APM and PX4 based controllers.
+ '';
+ homepage = "https://ardupilot.org/planner2/";
+ license = lib.licenses.gpl3;
+ maintainers = with lib.maintainers; [ wucke13 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
new file mode 100644
index 000000000000..66b9a1ef63a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -0,0 +1,49 @@
+{stdenv, fetchurl, unzip, makeDesktopItem, nwjs, wrapGAppsHook, gsettings-desktop-schemas, gtk3 }:
+
+let
+ pname = "betaflight-configurator";
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = pname;
+ icon = pname;
+ comment = "Betaflight configuration tool";
+ desktopName = "Betaflight Configurator";
+ genericName = "Flight controller configuration tool";
+ };
+in
+stdenv.mkDerivation rec {
+ inherit pname;
+ version = "10.7.0";
+ src = fetchurl {
+ url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64.zip";
+ sha256 = "07r60n9422g5sm7x5b62p044cp961l51vx0s8ig2hy24s74hkam1";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+
+ buildInputs = [ unzip gsettings-desktop-schemas gtk3 ];
+
+ installPhase = ''
+ mkdir -p $out/bin \
+ $out/opt/${pname}
+
+ cp -r . $out/opt/${pname}/
+ install -m 444 -D icon/bf_icon_128.png $out/share/icons/hicolor/128x128/apps/${pname}.png
+ cp -r ${desktopItem}/share/applications $out/share/
+
+ makeWrapper ${nwjs}/bin/nw $out/bin/${pname} --add-flags $out/opt/${pname}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The Betaflight flight control system configuration tool";
+ longDescription = ''
+ A crossplatform configuration tool for the Betaflight flight control system.
+ Various types of aircraft are supported by the tool and by Betaflight, e.g.
+ quadcopters, hexacopters, octocopters and fixed-wing aircraft.
+ '';
+ homepage = "https://github.com/betaflight/betaflight/wiki";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ wucke13 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix
new file mode 100644
index 000000000000..a71ddc874c9d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonApplication, fetchPypi, matplotlib, numpy, pymavlink, pyserial
+, setuptools, wxPython_4_0 }:
+
+buildPythonApplication rec {
+ pname = "MAVProxy";
+ version = "1.8.29";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "8f5900dc0a404ab9cf5a00155f83e9aaeab18161ce21a352dfdcf2d7abf5d78e";
+ };
+
+ propagatedBuildInputs = [
+ matplotlib
+ numpy
+ pymavlink
+ pyserial
+ setuptools
+ wxPython_4_0
+ ];
+
+ # No tests
+ doCheck = false;
+
+ meta = with lib; {
+ description = "MAVLink proxy and command line ground station";
+ homepage = "https://github.com/ArduPilot/MAVProxy";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ lopsided98 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
new file mode 100644
index 000000000000..8710b88ced36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -0,0 +1,76 @@
+{ lib, mkDerivation, fetchFromGitHub, SDL2
+, qtbase, qtcharts, qtlocation, qtserialport, qtsvg, qtquickcontrols2
+, qtgraphicaleffects, qtspeech, qtx11extras, qmake, qttools
+, gst_all_1, wayland, pkgconfig
+}:
+
+mkDerivation rec {
+ pname = "qgroundcontrol";
+ version = "4.0.10";
+
+ qtInputs = [
+ qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
+ qtgraphicaleffects qtspeech qtx11extras
+ ];
+
+ gstInputs = with gst_all_1; [
+ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad wayland
+ ];
+
+ enableParallelBuilding = true;
+ buildInputs = [ SDL2 ] ++ gstInputs ++ qtInputs;
+ nativeBuildInputs = [ pkgconfig qmake qttools ];
+
+ preConfigure = ''
+ mkdir build
+ cd build
+ '';
+
+ qmakeFlags = [
+ # Default install tries to copy Qt files into package
+ "CONFIG+=QGC_DISABLE_BUILD_SETUP"
+ "../qgroundcontrol.pro"
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ cd ..
+
+ mkdir -p $out/share/applications
+ sed 's/Exec=.*$/Exec=QGroundControl/g' --in-place deploy/qgroundcontrol.desktop
+ cp -v deploy/qgroundcontrol.desktop $out/share/applications
+
+ mkdir -p $out/bin
+ cp -v build/release/QGroundControl "$out/bin/"
+
+ mkdir -p $out/share/qgroundcontrol
+ cp -rv resources/ $out/share/qgroundcontrol
+
+ mkdir -p $out/share/pixmaps
+ cp -v resources/icons/qgroundcontrol.png $out/share/pixmaps
+
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+ '';
+
+ # TODO: package mavlink so we can build from a normal source tarball
+ src = fetchFromGitHub {
+ owner = "mavlink";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1jmhhd2nwxq3m9rzzmrjls8f6hhj52ia71b1sv4vvcjh802cha8g";
+ fetchSubmodules = true;
+ };
+
+ meta = with lib; {
+ description = "Provides full ground station support and configuration for the PX4 and APM Flight Stacks";
+ homepage = "http://qgroundcontrol.org/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ lopsided98 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix
new file mode 100644
index 000000000000..68b91dafb736
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial }:
+
+stdenv.mkDerivation rec {
+ pname = "sumorobot-manager";
+ version = "0.9.0";
+
+ src = fetchFromGitHub {
+ owner = "robokoding";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "03zhb54c259a66hsahmv2ajbzwcjnfjj050wbjhw51zqzxinlgqr";
+ };
+
+ buildInputs = [ python3 ];
+ pythonPath = [
+ pyqt5 pyserial
+ ];
+
+ nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook ];
+
+ buildPhase = "true";
+
+ installPhase = ''
+ mkdir -p $out/opt/sumorobot-manager
+ cp -r main.py lib res $out/opt/sumorobot-manager
+ chmod -R 644 $out/opt/sumorobot-manager/lib/*
+ mkdir $out/bin
+ makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \
+ --run "cd $out/opt/sumorobot-manager"
+ '';
+
+ preFixup = ''
+ patchShebangs $out/opt/sumorobot-manager/main.py
+ wrapPythonProgramsIn "$out/opt" "$pythonPath"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Desktop App for managing SumoRobots";
+ homepage = "https://www.robokoding.com/kits/sumorobot/sumomanager/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/yarp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/yarp/default.nix
new file mode 100644
index 000000000000..df2c569a31c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/science/robotics/yarp/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, ace
+}:
+
+stdenv.mkDerivation rec {
+ pname = "yarp";
+ version = "2.3.70.2";
+ src = fetchFromGitHub {
+ owner = "robotology";
+ repo = "yarp";
+ rev = "v${version}";
+ sha256 = "0mphh899niy30xbjjwi9xpsliq8mladfldbbbjfngdrqfhiray1a";
+ };
+
+ buildInputs = [ cmake ace ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [
+ "-DYARP_COMPILE_UNMAINTAINED:BOOL=ON"
+ "-DCREATE_YARPC:BOOL=ON"
+ "-DCREATE_YARPCXX:BOOL=ON"
+ ];
+
+ # since we cant expand $out in cmakeFlags
+ preConfigure = ''cmakeFlags="$cmakeFlags -DCMAKE_INSTALL_LIBDIR=$out/lib"'';
+
+ postInstall = "mv ./$out/lib/*.so $out/lib/";
+
+ meta = {
+ description = "Yet Another Robot Platform";
+ homepage = "http://yarp.it";
+ license = stdenv.lib.licenses.lgpl21;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.nico202 ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/search/doodle/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/search/doodle/default.nix
new file mode 100644
index 000000000000..9bf00801600f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/search/doodle/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libextractor, gettext }:
+
+stdenv.mkDerivation rec {
+ name = "doodle-0.7.1";
+
+ buildInputs = [ libextractor gettext ];
+
+ src = fetchurl {
+ url = "https://grothoff.org/christian/doodle/download/${name}.tar.gz";
+ sha256 = "086va4q8swiablv5x72yikrdh5swhy7kzmg5wlszi5a7vjya29xw";
+ };
+
+ meta = {
+ homepage = "https://grothoff.org/christian/doodle/";
+ description = "Tool to quickly index and search documents on a computer";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/search/grepcidr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/search/grepcidr/default.nix
new file mode 100644
index 000000000000..125e67938ecd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/search/grepcidr/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "grepcidr";
+ version = "2.0";
+
+ src = fetchurl {
+ url = "http://www.pc-tools.net/files/unix/${pname}-${version}.tar.gz";
+ sha256 = "1yzpa1nigmmp4hir6377hrkpp0z6jnxgccaw2jbqgydbglvnm231";
+ };
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Filter IPv4 and IPv6 addresses matching CIDR patterns";
+ homepage = "http://www.pc-tools.net/unix/grepcidr/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.fadenb ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/search/grepm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/search/grepm/default.nix
new file mode 100644
index 000000000000..d03d26d00004
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/search/grepm/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, perlPackages, mutt }:
+
+stdenv.mkDerivation {
+ pname = "grepm";
+ version = "0.6";
+
+ src = fetchurl {
+ url = "http://www.barsnick.net/sw/grepm";
+ sha256 = "0ppprhfw06779hz1b10qvq62gsw73shccsav982dyi6xmqb6jqji";
+ };
+
+ phases = [ "installPhase" ];
+
+ buildInputs = [ perlPackages.grepmail mutt ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -a $src $out/bin/grepm
+ chmod +x $out/bin/grepm
+ sed -i \
+ -e "s:^grepmail:${perlPackages.grepmail}/bin/grepmail:" \
+ -e "s:^\( *\)mutt:\1${mutt}/bin/mutt:" \
+ $out/bin/grepm
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Wrapper for grepmail utilizing mutt";
+ homepage = "http://www.barsnick.net/sw/grepm.html";
+ license = licenses.free;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/search/recoll/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/search/recoll/default.nix
new file mode 100644
index 000000000000..4939fcf56627
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/search/recoll/default.nix
@@ -0,0 +1,105 @@
+{ stdenv
+, fetchurl
+, lib
+, mkDerivation
+, antiword
+, bison
+, catdoc
+, chmlib
+, djvulibre
+, file
+, gawk
+, ghostscript
+, gnugrep
+, gnused
+, gnutar
+, groff
+, gzip
+, libiconv
+, libwpd
+, libxslt
+, lyx
+, perl
+, pkg-config
+, poppler_utils
+, python3Packages
+, qtbase
+, unrtf
+, untex
+, unzip
+, which
+, xapian
+, zlib
+, withGui ? true
+}:
+
+assert stdenv.hostPlatform.system != "powerpc-linux";
+
+mkDerivation rec {
+ pname = "recoll";
+ version = "1.27.12";
+
+ src = fetchurl {
+ url = "https://www.lesbonscomptes.com/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "0bgadm8p319fws66ca4rpv9fx2bllbphgn892rh78db81lz20i5v";
+ };
+
+ configureFlags = [ "--enable-recollq" "--disable-webkit" ]
+ ++ lib.optionals (!withGui) [ "--disable-qtgui" "--disable-x11mon" ]
+ ++ (if stdenv.isLinux then [ "--with-inotify" ] else [ "--without-inotify" ]);
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = with python3Packages; [
+ bison chmlib file python setuptools which xapian zlib
+ ] ++ lib.optional withGui qtbase
+ ++ lib.optional stdenv.isDarwin libiconv;
+
+ # the filters search through ${PATH} using a sh proc 'checkcmds' for the
+ # filtering utils. Short circuit this by replacing the filtering command with
+ # the absolute path to the filtering command.
+ postInstall = ''
+ substituteInPlace $out/lib/*/site-packages/recoll/rclconfig.py --replace /usr/share/recoll $out/share/recoll
+ substituteInPlace $out/share/recoll/filters/rclconfig.py --replace /usr/share/recoll $out/share/recoll
+ for f in $out/share/recoll/filters/* ; do
+ if [[ ! "$f" =~ \.zip$ ]]; then
+ substituteInPlace $f --replace '"antiword"' '"${lib.getBin antiword}/bin/antiword"'
+ substituteInPlace $f --replace '"awk"' '"${lib.getBin gawk}/bin/awk"'
+ substituteInPlace $f --replace '"catppt"' '"${lib.getBin catdoc}/bin/catppt"'
+ substituteInPlace $f --replace '"djvused"' '"${lib.getBin djvulibre}/bin/djvused"'
+ substituteInPlace $f --replace '"djvutxt"' '"${lib.getBin djvulibre}/bin/djvutxt"'
+ substituteInPlace $f --replace '"egrep"' '"${lib.getBin gnugrep}/bin/egrep"'
+ substituteInPlace $f --replace '"groff"' '"${lib.getBin groff}/bin/groff"'
+ substituteInPlace $f --replace '"gunzip"' '"${lib.getBin gzip}/bin/gunzip"'
+ substituteInPlace $f --replace '"iconv"' '"${lib.getBin libiconv}/bin/iconv"'
+ substituteInPlace $f --replace '"pdftotext"' '"${lib.getBin poppler_utils}/bin/pdftotext"'
+ substituteInPlace $f --replace '"pstotext"' '"${lib.getBin ghostscript}/bin/ps2ascii"'
+ substituteInPlace $f --replace '"sed"' '"${lib.getBin gnused}/bin/sed"'
+ substituteInPlace $f --replace '"tar"' '"${lib.getBin gnutar}/bin/tar"'
+ substituteInPlace $f --replace '"unzip"' '"${lib.getBin unzip}/bin/unzip"'
+ substituteInPlace $f --replace '"xls2csv"' '"${lib.getBin catdoc}/bin/xls2csv"'
+ substituteInPlace $f --replace '"xsltproc"' '"${lib.getBin libxslt}/bin/xsltproc"'
+ substituteInPlace $f --replace '"unrtf"' '"${lib.getBin unrtf}/bin/unrtf"'
+ substituteInPlace $f --replace '"untex"' '"${lib.getBin untex}/bin/untex"'
+ substituteInPlace $f --replace '"wpd2html"' '"${lib.getBin libwpd}/bin/wpd2html"'
+ substituteInPlace $f --replace /usr/bin/perl ${lib.getBin perl}/bin/perl
+ fi
+ done
+ '' + stdenv.lib.optionalString stdenv.isLinux ''
+ substituteInPlace $f --replace '"lyx"' '"${lib.getBin lyx}/bin/lyx"'
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A full-text search tool";
+ longDescription = ''
+ Recoll is an Xapian frontend that can search through files, archive
+ members, email attachments.
+ '';
+ homepage = "https://www.lesbonscomptes.com/recoll/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.jcumming ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/system/glances/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/system/glances/default.nix
new file mode 100644
index 000000000000..b0bd5cc8b150
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/system/glances/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, fetchpatch, isPyPy, lib
+, future, psutil, setuptools
+# Optional dependencies:
+, bottle, pysnmp
+, hddtemp
+, netifaces # IP module
+, py-cpuinfo
+}:
+
+buildPythonApplication rec {
+ pname = "glances";
+ version = "3.1.5";
+ disabled = isPyPy;
+
+ src = fetchFromGitHub {
+ owner = "nicolargo";
+ repo = "glances";
+ rev = "v${version}";
+ sha256 = "0l91nvlwyabxlsy5p533dqnc68mmvykfsrcsnxylcpjjl1nzy931";
+ };
+
+ # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
+ patches = lib.optional (doCheck && stdenv.isLinux) ./skip-failing-tests.patch;
+
+ # On Darwin this package segfaults due to mismatch of pure and impure
+ # CoreFoundation. This issues was solved for binaries but for interpreted
+ # scripts a workaround below is still required.
+ # Relevant: https://github.com/NixOS/nixpkgs/issues/24693
+ makeWrapperArgs = lib.optionals stdenv.isDarwin [
+ "--set" "DYLD_FRAMEWORK_PATH" "/System/Library/Frameworks"
+ ];
+
+ doCheck = true;
+ preCheck = lib.optional stdenv.isDarwin ''
+ export DYLD_FRAMEWORK_PATH=/System/Library/Frameworks
+ '';
+
+ propagatedBuildInputs = [
+ bottle
+ future
+ netifaces
+ psutil
+ pysnmp
+ setuptools
+ py-cpuinfo
+ ] ++ lib.optional stdenv.isLinux hddtemp;
+
+ preConfigure = ''
+ sed -i 's/data_files\.append((conf_path/data_files.append(("etc\/glances"/' setup.py;
+ '';
+
+ meta = with lib; {
+ homepage = "https://nicolargo.github.io/glances/";
+ description = "Cross-platform curses-based monitoring tool";
+ changelog = "https://github.com/nicolargo/glances/releases/tag/v${version}";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ jonringer primeos koral ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/system/glances/skip-failing-tests.patch b/infra/libkookie/nixpkgs/pkgs/applications/system/glances/skip-failing-tests.patch
new file mode 100644
index 000000000000..f47f1218aea5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/system/glances/skip-failing-tests.patch
@@ -0,0 +1,52 @@
+diff --git a/unitest.py b/unitest.py
+--- a/unitest.py
++++ b/unitest.py
+@@ -59,6 +59,7 @@ class TestGlances(unittest.TestCase):
+ """The function is called *every time* before test_*."""
+ print('\n' + '=' * 78)
+
++ @unittest.skip("Requires access to /etc/mtab")
+ def test_000_update(self):
+ """Update stats (mandatory step for all the stats).
+
+@@ -87,6 +88,7 @@ class TestGlances(unittest.TestCase):
+ for plugin in plugins_to_check:
+ self.assertTrue(plugin in plugins_list)
+
++ @unittest.skip("Fails on NixOS")
+ def test_002_system(self):
+ """Check SYSTEM plugin."""
+ stats_to_check = ['hostname', 'os_name']
+@@ -97,6 +99,7 @@ class TestGlances(unittest.TestCase):
+ self.assertTrue(stat in stats_grab, msg='Cannot find key: %s' % stat)
+ print('INFO: SYSTEM stats: %s' % stats_grab)
+
++ @unittest.skip("Fails on NixOS")
+ def test_003_cpu(self):
+ """Check CPU plugin."""
+ stats_to_check = ['system', 'user', 'idle']
+@@ -110,7 +113,7 @@ class TestGlances(unittest.TestCase):
+ self.assertLessEqual(stats_grab[stat], 100)
+ print('INFO: CPU stats: %s' % stats_grab)
+
+- @unittest.skipIf(WINDOWS, "Load average not available on Windows")
++ @unittest.skip("Fails on NixOS")
+ def test_004_load(self):
+ """Check LOAD plugin."""
+ stats_to_check = ['cpucore', 'min1', 'min5', 'min15']
+@@ -123,6 +126,7 @@ class TestGlances(unittest.TestCase):
+ self.assertGreaterEqual(stats_grab[stat], 0)
+ print('INFO: LOAD stats: %s' % stats_grab)
+
++ @unittest.skip("Fails on NixOS")
+ def test_005_mem(self):
+ """Check MEM plugin."""
+ stats_to_check = ['available', 'used', 'free', 'total']
+@@ -135,6 +139,7 @@ class TestGlances(unittest.TestCase):
+ self.assertGreaterEqual(stats_grab[stat], 0)
+ print('INFO: MEM stats: %s' % stats_grab)
+
++ @unittest.skip("Fails on NixOS")
+ def test_006_swap(self):
+ """Check MEMSWAP plugin."""
+ stats_to_check = ['used', 'free', 'total']
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/system/monitor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/system/monitor/default.nix
new file mode 100644
index 000000000000..30ae9e51e9eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/system/monitor/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, vala
+, pkg-config
+, pantheon
+, python3
+, gettext
+, glib
+, gtk3
+, bamf
+, libwnck3
+, libgee
+, libgtop
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "monitor";
+ version = "0.8.1";
+
+ src = fetchFromGitHub {
+ owner = "stsdc";
+ repo = "monitor";
+ rev = version;
+ sha256 = "111g2f3y5lmz91m755jz0x8yx5cx9ym484gch8wcv80dmr7ilb1y";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ gettext
+ meson
+ ninja
+ vala
+ pkg-config
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ bamf
+ glib
+ gtk3
+ pantheon.granite
+ pantheon.wingpanel
+ libgee
+ libgtop
+ libwnck3
+ ];
+
+ postPatch = ''
+ chmod +x meson/post_install.py
+ patchShebangs meson/post_install.py
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Manage processes and monitor system resources";
+ longDescription = ''
+ Manage processes and monitor system resources.
+ To use the wingpanel indicator in this application, see the Pantheon
+ section in the NixOS manual.
+ '';
+ homepage = "https://github.com/stsdc/monitor";
+ maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers;
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
new file mode 100644
index 000000000000..cd372b79c26b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
@@ -0,0 +1,142 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+
+, cmake
+, gzip
+, installShellFiles
+, makeWrapper
+, ncurses
+, pkgconfig
+, python3
+
+, expat
+, fontconfig
+, freetype
+, libGL
+, libX11
+, libXcursor
+, libXi
+, libXrandr
+, libXxf86vm
+, libxcb
+, libxkbcommon
+, wayland
+, xdg_utils
+
+ # Darwin Frameworks
+, AppKit
+, CoreGraphics
+, CoreServices
+, CoreText
+, Foundation
+, OpenGL
+}:
+let
+ rpathLibs = [
+ expat
+ fontconfig
+ freetype
+ libGL
+ libX11
+ libXcursor
+ libXi
+ libXrandr
+ libXxf86vm
+ libxcb
+ ] ++ lib.optionals stdenv.isLinux [
+ libxkbcommon
+ wayland
+ ];
+in
+rustPlatform.buildRustPackage rec {
+ pname = "alacritty";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "alacritty";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "vQdNwNiUvoJWRT1foPRadirI2zWjnzU3sGnIxeHKlj8=";
+ };
+
+ cargoSha256 = "1PQSg6EmwVMZj2ALw6qsbtPMCtALVHx5TR05FjGD/QE=";
+
+ nativeBuildInputs = [
+ cmake
+ gzip
+ installShellFiles
+ makeWrapper
+ ncurses
+ pkgconfig
+ python3
+ ];
+
+ buildInputs = rpathLibs
+ ++ lib.optionals stdenv.isDarwin [
+ AppKit
+ CoreGraphics
+ CoreServices
+ CoreText
+ Foundation
+ OpenGL
+ ];
+
+ outputs = [ "out" "terminfo" ];
+
+ postPatch = ''
+ substituteInPlace alacritty/src/config/mouse.rs \
+ --replace xdg-open ${xdg_utils}/bin/xdg-open
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -D $releaseDir/alacritty $out/bin/alacritty
+
+ '' + (
+ if stdenv.isDarwin then ''
+ mkdir $out/Applications
+ cp -r extra/osx/Alacritty.app $out/Applications
+ ln -s $out/bin $out/Applications/Alacritty.app/Contents/MacOS
+ '' else ''
+ install -D extra/linux/Alacritty.desktop -t $out/share/applications/
+ install -D extra/logo/compat/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg
+
+ # patchelf generates an ELF that binutils' "strip" doesn't like:
+ # strip: not enough room for program headers, try linking with -N
+ # As a workaround, strip manually before running patchelf.
+ strip -S $out/bin/alacritty
+
+ patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty
+ ''
+ ) + ''
+
+ installShellCompletion --zsh extra/completions/_alacritty
+ installShellCompletion --bash extra/completions/alacritty.bash
+ installShellCompletion --fish extra/completions/alacritty.fish
+
+ install -dm 755 "$out/share/man/man1"
+ gzip -c extra/alacritty.man > "$out/share/man/man1/alacritty.1.gz"
+
+ install -Dm 644 alacritty.yml $out/share/doc/alacritty.yml
+
+ install -dm 755 "$terminfo/share/terminfo/a/"
+ tic -xe alacritty,alacritty-direct -o "$terminfo/share/terminfo" extra/alacritty.info
+ mkdir -p $out/nix-support
+ echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
+
+ runHook postInstall
+ '';
+
+ dontPatchELF = true;
+
+ meta = with lib; {
+ description = "A cross-platform, GPU-accelerated terminal emulator";
+ homepage = "https://github.com/alacritty/alacritty";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Br1ght0ne mic92 cole-h ma27 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/aminal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/aminal/default.nix
new file mode 100644
index 000000000000..7f04a93d6a32
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/aminal/default.nix
@@ -0,0 +1,69 @@
+{ buildGoPackage
+, Carbon
+, Cocoa
+, Kernel
+, fetchFromGitHub
+, lib
+, mesa_glu
+, stdenv
+, xorg
+}:
+
+buildGoPackage rec {
+ pname = "aminal";
+ version = "0.9.0";
+
+ goPackagePath = "github.com/liamg/aminal";
+
+ buildInputs =
+ lib.optionals stdenv.isLinux [
+ mesa_glu
+ xorg.libX11
+ xorg.libXcursor
+ xorg.libXi
+ xorg.libXinerama
+ xorg.libXrandr
+ xorg.libXxf86vm
+ ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa Kernel ];
+
+ src = fetchFromGitHub {
+ owner = "liamg";
+ repo = "aminal";
+ rev = "v${version}";
+ sha256 = "0syv9md7blnl6i19zf8s1xjx5vfz6s755fxyg2ply0qc1pwhsj8n";
+ };
+
+ preBuild = ''
+ buildFlagsArray=("-ldflags=-X ${goPackagePath}/version.Version=${version}")
+ '';
+
+ meta = with lib; {
+ description = "Golang terminal emulator from scratch";
+ longDescription = ''
+ Aminal is a modern terminal emulator for Mac/Linux implemented in Golang
+ and utilising OpenGL.
+
+ The project is experimental at the moment, so you probably won't want to
+ rely on Aminal as your main terminal for a while.
+
+ Features:
+ - Unicode support
+ - OpenGL rendering
+ - Customisation options
+ - True colour support
+ - Support for common ANSI escape sequences a la xterm
+ - Scrollback buffer
+ - Clipboard access
+ - Clickable URLs
+ - Multi platform support (Windows coming soon...)
+ - Sixel support
+ - Hints/overlays
+ - Built-in patched fonts for powerline
+ - Retina display support
+ '';
+ homepage = "https://github.com/liamg/aminal";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/cool-retro-term/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/cool-retro-term/default.nix
new file mode 100644
index 000000000000..739ad07adbf3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/cool-retro-term/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, mkDerivation, qtbase, qtquick1, qmltermwidget
+, qtquickcontrols, qtgraphicaleffects, qmake }:
+
+mkDerivation rec {
+ version = "1.1.1";
+ pname = "cool-retro-term";
+
+ src = fetchFromGitHub {
+ owner = "Swordfish90";
+ repo = "cool-retro-term";
+ rev = version;
+ sha256 = "0mird4k88ml6y61hky2jynrjmnxl849fvhsr5jfdlnv0i7r5vwi5";
+ };
+
+ patchPhase = ''
+ sed -i -e '/qmltermwidget/d' cool-retro-term.pro
+ '';
+
+ buildInputs = [ qtbase qtquick1 qmltermwidget qtquickcontrols qtgraphicaleffects ];
+ nativeBuildInputs = [ qmake ];
+
+ installFlags = [ "INSTALL_ROOT=$(out)" ];
+
+ preFixup = ''
+ mv $out/usr/share $out/share
+ mv $out/usr/bin $out/bin
+ rmdir $out/usr
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ ln -s $out/bin/cool-retro-term.app/Contents/MacOS/cool-retro-term $out/bin/cool-retro-term
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Terminal emulator which mimics the old cathode display";
+ longDescription = ''
+ cool-retro-term is a terminal emulator which tries to mimic the look and
+ feel of the old cathode tube screens. It has been designed to be
+ eye-candy, customizable, and reasonably lightweight.
+ '';
+ homepage = "https://github.com/Swordfish90/cool-retro-term";
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ maintainers = with stdenv.lib.maintainers; [ skeidel ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/eterm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/eterm/default.nix
new file mode 100644
index 000000000000..b51acd9fa728
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/eterm/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl
+, libX11, libXext, libXaw
+, pkgconfig, imlib2, libast }:
+
+stdenv.mkDerivation rec {
+ pname = "eterm";
+ version = "0.9.6";
+ srcName = "Eterm-${version}";
+
+ src = fetchurl {
+ url = "http://www.eterm.org/download/${srcName}.tar.gz";
+ sha256 = "0g71szjklkiczxwzbjjfm59y6v9w4hp8mg7cy99z1g7qcjm0gfbj";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libX11 libXext libXaw imlib2 ];
+ propagatedBuildInputs = [ libast ];
+
+ meta = with stdenv.lib; {
+ description = "Terminal emulator";
+ homepage = "http://www.eterm.org";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/evilvte/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/evilvte/default.nix
new file mode 100644
index 000000000000..7a5284a527a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/evilvte/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, makeWrapper, pkgconfig,
+ gnome2, glib, pango, cairo, gdk-pixbuf, atk, freetype, xorg,
+ configH ? ""
+}:
+
+stdenv.mkDerivation {
+ pname = "evilvte";
+ version = "0.5.2-20140827";
+
+ src = fetchgit {
+ url = "https://github.com/caleb-/evilvte.git";
+ rev = "8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a";
+ sha256 = "70f1d4234d077121e2223a735d749d1b53f0b84393507b635b8a37c3716e94d3";
+ };
+
+ buildInputs = [
+ gnome2.vte glib pango gnome2.gtk cairo gdk-pixbuf atk freetype xorg.libX11
+ xorg.xorgproto xorg.libXext makeWrapper pkgconfig
+ ];
+
+ buildPhase = ''
+ cat >src/config.h <<EOF
+ ${configH}
+ EOF
+ make
+ '';
+
+ meta = with stdenv.lib; {
+ description = "VTE based, highly customizable terminal emulator";
+ homepage = "http://www.calno.com/evilvte";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bodil ];
+ platforms = platforms.linux;
+ knownVulnerabilities = [
+ "https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=854585"
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
new file mode 100644
index 000000000000..3d95f7c5772d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit
+, fcft, freetype, pixman, libxkbcommon, fontconfig, wayland
+, meson, ninja, ncurses, scdoc, tllist, wayland-protocols, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+ pname = "foot";
+ version = "1.5.1";
+
+ src = fetchgit {
+ url = "https://codeberg.org/dnkl/foot.git";
+ rev = version;
+ sha256 = "sha256-GAk2qkrgCNILJOeRcn1NT4t3w+R6WFTZ1goOhBEwKwc=";
+ };
+
+ nativeBuildInputs = [
+ meson ninja ncurses scdoc tllist wayland-protocols pkg-config
+ ];
+ buildInputs = [
+ fontconfig freetype pixman wayland libxkbcommon fcft
+ ];
+
+ # recommended build flags for foot as per INSTALL.md
+ # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#user-content-release-build
+ preConfigure = ''
+ export CFLAGS+="-O3 -fno-plt"
+ '';
+
+ mesonFlags = [ "--buildtype=release" "-Db_lto=true" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://codeberg.org/dnkl/foot/";
+ description = "A fast, lightweight and minimalistic Wayland terminal emulator";
+ license = licenses.mit;
+ maintainers = [ maintainers.sternenseemann ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/guake/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/guake/default.nix
new file mode 100644
index 000000000000..d403ddc8b26c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/guake/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchFromGitHub
+, python3
+, gettext
+, gobject-introspection
+, wrapGAppsHook
+, gtk3
+, keybinder3
+, libnotify
+, libutempter
+, vte
+, libwnck3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "guake";
+ version = "3.6.3";
+
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "Guake";
+ repo = "guake";
+ rev = version;
+ sha256 = "13ipnmqcyixpa6qv83m0f91za4kar14s5jpib68b32z65x1h0j3b";
+ };
+
+ # Strict deps breaks guake
+ # See https://github.com/NixOS/nixpkgs/issues/59930
+ # and https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ nativeBuildInputs = [
+ gettext
+ gobject-introspection
+ wrapGAppsHook
+ python3.pkgs.pip
+ ];
+
+ buildInputs = [
+ gtk3
+ keybinder3
+ libnotify
+ libwnck3
+ python3
+ vte
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ dbus-python
+ pbr
+ pycairo
+ pygobject3
+ setuptools
+ ];
+
+ PBR_VERSION = version; # pbr needs either .git directory, sdist, or env var
+
+ makeFlags = [
+ "prefix=${placeholder ''out''}"
+ ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libutempter ]}")
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Drop-down terminal for GNOME";
+ homepage = "http://guake-project.org";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.msteen ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/havoc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/havoc/default.nix
new file mode 100644
index 000000000000..a6d5278fc3c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/havoc/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, libxkbcommon, wayland, wayland-protocols }:
+
+stdenv.mkDerivation rec {
+
+ pname = "havoc";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "ii8";
+ repo = pname;
+ rev = version;
+ sha256 = "1g05r9j6srwz1krqvzckx80jn8fm48rkb4xp68953gy9yp2skg3k";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libxkbcommon wayland wayland-protocols ];
+
+ dontConfigure = true;
+
+ installFlags = [ "PREFIX=$$out" ];
+
+ postInstall = ''
+ install -D -m 644 havoc.cfg -t $out/etc/${pname}/
+ install -D -m 644 README.md -t $out/share/doc/${pname}-${version}/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A minimal terminal emulator for Wayland";
+ homepage = "https://github.com/ii8/havoc";
+ license = with licenses; [ mit publicDomain ];
+ platforms = with platforms; unix;
+ maintainers = with maintainers; [ AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
new file mode 100644
index 000000000000..e5ea0a67f93a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, fetchurl, dpkg, atk, glib, pango, gdk-pixbuf, gnome2, gtk2, cairo
+, freetype, fontconfig, dbus, libXi, libXcursor, libXdamage, libXrandr
+, libXcomposite, libXext, libXfixes, libXrender, libX11, libXtst, libXScrnSaver
+, libxcb, nss, nspr, alsaLib, cups, expat, udev, libpulseaudio }:
+
+let
+ libPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc gtk2 gnome2.GConf atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
+ libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb
+ libXrender libX11 libXtst libXScrnSaver nss nspr alsaLib cups expat udev libpulseaudio
+ ];
+in
+stdenv.mkDerivation rec {
+ version = "3.0.2";
+ pname = "hyper";
+ src = fetchurl {
+ url = "https://github.com/zeit/hyper/releases/download/${version}/hyper_${version}_amd64.deb";
+ sha256 = "0fv4wv5f8nc739bna83qxmgrvvbyq4w9ch764q2f12wjygrz336p";
+ };
+ buildInputs = [ dpkg ];
+ unpackPhase = ''
+ mkdir pkg
+ dpkg-deb -x $src pkg
+ sourceRoot=pkg
+ '';
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mv opt "$out/"
+ ln -s "$out/opt/Hyper/hyper" "$out/bin/hyper"
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${libPath}:\$ORIGIN" "$out/opt/Hyper/hyper"
+ mv usr/* "$out/"
+ '';
+ dontPatchELF = true;
+ meta = with lib; {
+ description = "A terminal built on web technologies";
+ homepage = "https://hyper.is/";
+ maintainers = with maintainers; [ puffnfresh ];
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/iterm2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/iterm2/default.nix
new file mode 100644
index 000000000000..e273eda45c31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/iterm2/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub }:
+
+ /*
+ This derivation is impure: it relies on an Xcode toolchain being installed
+ and available in the expected place. The values of sandboxProfile
+ are copied pretty directly from the MacVim derivation, which
+ is also impure. In order to build you at least need the `sandbox`
+ option set to `relaxed` or `false`.
+ */
+
+stdenv.mkDerivation rec {
+ pname = "iterm2";
+ version = "3.3.9";
+
+ src = fetchFromGitHub {
+ owner = "gnachman";
+ repo = "iTerm2";
+ rev = "v${version}";
+ sha256 = "06mq3gfjgy8jw2f3fzdsi3pbfkdijfzzlhlw6ixa5bfb4hbcgn5j";
+ };
+
+ patches = [ ./disable_updates.patch ];
+ postPatch = ''
+ sed -i -e 's/CODE_SIGN_IDENTITY = "Developer ID Application"/CODE_SIGN_IDENTITY = ""/g' ./iTerm2.xcodeproj/project.pbxproj
+ '';
+
+ preConfigure = "LD=$CC";
+ makeFlagsArray = ["Nix"];
+ installPhase = ''
+ mkdir -p $out/Applications
+ mv Build/Products/Deployment/iTerm2.app $out/Applications/iTerm.app
+ '';
+
+ 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 stdenv.lib; {
+ description = "A replacement for Terminal and the successor to iTerm";
+ homepage = "https://www.iterm2.com/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ tricktron ];
+ platforms = platforms.darwin;
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/iterm2/disable_updates.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/iterm2/disable_updates.patch
new file mode 100644
index 000000000000..e717c58f30f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/iterm2/disable_updates.patch
@@ -0,0 +1,11 @@
+--- iTerm2/sources/iTermPreferences.m 2016-06-23 16:55:28.000000000 +0200
++++ iTerm2/sources/iTermPreferences.m 2016-06-23 16:55:42.000000000 +0200
+@@ -189,7 +189,7 @@
+ kPreferenceKeyInstantReplayMemoryMegabytes: @4,
+ kPreferenceKeySavePasteAndCommandHistory: @NO,
+ kPreferenceKeyAddBonjourHostsToProfiles: @NO,
+- kPreferenceKeyCheckForUpdatesAutomatically: @YES,
++ kPreferenceKeyCheckForUpdatesAutomatically: @NO,
+ kPreferenceKeyCheckForTestReleases: @NO,
+ kPreferenceKeyLoadPrefsFromCustomFolder: @NO,
+ kPreferenceKeyNeverRemindPrefsChangesLostForFileHaveSelection: @NO,
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
new file mode 100644
index 000000000000..b6a93aefb594
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -0,0 +1,143 @@
+{ stdenv, substituteAll, fetchFromGitHub, python3Packages, libunistring,
+ harfbuzz, fontconfig, pkgconfig, ncurses, imagemagick, xsel,
+ libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor,
+ libxkbcommon, libXi, libXext, wayland-protocols, wayland,
+ lcms2,
+ installShellFiles,
+ dbus,
+ Cocoa,
+ CoreGraphics,
+ Foundation,
+ IOKit,
+ Kernel,
+ OpenGL,
+ libcanberra,
+ libicns,
+ libpng,
+ python3,
+ zlib,
+}:
+
+with python3Packages;
+buildPythonApplication rec {
+ pname = "kitty";
+ version = "0.19.2";
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "kovidgoyal";
+ repo = "kitty";
+ rev = "v${version}";
+ sha256 = "06mlrc283k5f75y36fmmaxnj29jfc1s8vaykjph6a86m1gcl5wgi";
+ };
+
+ buildInputs = [
+ harfbuzz
+ ncurses
+ lcms2
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ Cocoa
+ CoreGraphics
+ Foundation
+ IOKit
+ Kernel
+ OpenGL
+ libpng
+ python3
+ zlib
+ ] ++ stdenv.lib.optionals stdenv.isLinux [
+ fontconfig libunistring libcanberra libX11
+ libXrandr libXinerama libXcursor libxkbcommon libXi libXext
+ wayland-protocols wayland dbus
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig sphinx ncurses
+ installShellFiles
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ imagemagick
+ libicns # For the png2icns tool.
+ ];
+
+ propagatedBuildInputs = stdenv.lib.optional stdenv.isLinux libGL;
+
+ outputs = [ "out" "terminfo" ];
+
+ patches = [
+ ./fix-paths.patch
+ ];
+
+ # Causes build failure due to warning
+ hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "strictoverflow";
+
+ dontConfigure = true;
+
+ buildPhase = if stdenv.isDarwin then ''
+ ${python.interpreter} setup.py kitty.app \
+ --update-check-interval=0 \
+ --disable-link-time-optimization
+ make man
+ '' else ''
+ ${python.interpreter} setup.py linux-package \
+ --update-check-interval=0 \
+ --egl-library='${stdenv.lib.getLib libGL}/lib/libEGL.so.1' \
+ --startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
+ --canberra-library='${libcanberra}/lib/libcanberra.so'
+ '';
+
+ checkInputs = [ pillow ];
+
+ checkPhase =
+ let buildBinPath =
+ if stdenv.isDarwin
+ then "kitty.app/Contents/MacOS"
+ else "linux-package/bin";
+ in
+ ''
+ env PATH="${buildBinPath}:$PATH" ${python.interpreter} test.py
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out
+ ${if stdenv.isDarwin then ''
+ mkdir "$out/bin"
+ ln -s ../Applications/kitty.app/Contents/MacOS/kitty "$out/bin/kitty"
+ mkdir "$out/Applications"
+ cp -r kitty.app "$out/Applications/kitty.app"
+
+ installManPage 'docs/_build/man/kitty.1'
+ '' else ''
+ cp -r linux-package/{bin,share,lib} $out
+ ''}
+ wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick xsel ncurses.dev ]}"
+ runHook postInstall
+
+ installShellCompletion --cmd kitty \
+ --bash <("$out/bin/kitty" + complete setup bash) \
+ --fish <("$out/bin/kitty" + complete setup fish) \
+ --zsh <("$out/bin/kitty" + complete setup zsh)
+ '';
+
+ postInstall = ''
+ terminfo_src=${if stdenv.isDarwin then
+ ''"$out/Applications/kitty.app/Contents/Resources/terminfo"''
+ else
+ "$out/share/terminfo"}
+
+ mkdir -p $terminfo/share
+ mv "$terminfo_src" $terminfo/share/terminfo
+
+ mkdir -p $out/nix-support
+ echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/kovidgoyal/kitty";
+ description = "A modern, hackable, featureful, OpenGL based terminal emulator";
+ license = licenses.gpl3;
+ changelog = "https://sw.kovidgoyal.net/kitty/changelog.html";
+ platforms = platforms.darwin ++ platforms.linux;
+ maintainers = with maintainers; [ tex rvolosatovs Luflosi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/kitty/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/kitty/fix-paths.patch
new file mode 100644
index 000000000000..380f6d749146
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/kitty/fix-paths.patch
@@ -0,0 +1,16 @@
+--- a/docs/Makefile
++++ b/docs/Makefile
+@@ -3,7 +3,7 @@
+# Patching is needed here for the following reason:
+# * importing the `constants` package from Kitty has a side effect that it
+# creates the user configuration directory. This package gets imported
+# while sphinx scans the code for documentation strings.
+#
+
+ # You can set these variables from the command line.
+ SPHINXOPTS = -j auto -T $(FAIL_WARN)
+-SPHINXBUILD = sphinx-build
++SPHINXBUILD = PYTHONPATH=${PYTHONPATH}:.. HOME=${TMPDIR}/kitty-build-home sphinx-build
+ SPHINXPROJ = kitty
+ SOURCEDIR = .
+ BUILDDIR = _build
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lilyterm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lilyterm/default.nix
new file mode 100644
index 000000000000..28f9625b5b66
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lilyterm/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, lib, fetchurl, fetchFromGitHub
+, pkgconfig
+, autoconf, automake, intltool, gettext
+, gtk, vte
+, flavour ? "stable"
+}:
+
+assert lib.assertOneOf "flavour" flavour [ "stable" "git" ];
+
+let
+ pname = "lilyterm";
+ stuff =
+ if flavour == "stable"
+ then rec {
+ version = "0.9.9.4";
+ src = fetchurl {
+ url = "https://lilyterm.luna.com.tw/file/${pname}-${version}.tar.gz";
+ sha256 = "0x2x59qsxq6d6xg5sd5lxbsbwsdvkwqlk17iw3h4amjg3m1jc9mp";
+ };
+ }
+ else {
+ version = "2019-07-25";
+ src = fetchFromGitHub {
+ owner = "Tetralet";
+ repo = pname;
+ rev = "faf1254f46049edfb1fd6e9191e78b1b23b9c51d";
+ sha256 = "054450gk237c62b677365bcwrijr63gd9xm8pv68br371wdzylz7";
+ };
+ };
+
+in
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ inherit pname;
+
+ inherit (stuff) src version;
+
+ nativeBuildInputs = [ pkgconfig autoconf automake intltool gettext ];
+ buildInputs = [ gtk vte ];
+
+ preConfigure = "sh autogen.sh";
+
+ configureFlags = [
+ "--enable-nls"
+ "--enable-safe-mode"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A fast, lightweight terminal emulator";
+ longDescription = ''
+ LilyTerm is a terminal emulator based off of libvte that aims to be fast and lightweight.
+ '';
+ homepage = "https://lilyterm.luna.com.tw/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ AndersonTorres Profpatsch ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lxterminal/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lxterminal/default.nix
new file mode 100644
index 000000000000..8c002bd14b08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lxterminal/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, automake, autoconf, intltool, pkgconfig, gtk3, vte, wrapGAppsHook
+, libxslt, docbook_xml_dtd_412, docbook_xsl, libxml2, findXMLCatalogs
+}:
+
+let version = "0.3.2"; in
+
+stdenv.mkDerivation {
+ pname = "lxterminal";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/lxde/lxterminal/archive/${version}.tar.gz";
+ sha256 = "1iafqmccsm3nnzwp6pb2c04iniqqnscj83bq1rvf58ppzk0bvih3";
+ };
+
+ configureFlags = [
+ "--enable-man"
+ "--enable-gtk3"
+ ];
+
+ nativeBuildInputs = [
+ automake autoconf intltool pkgconfig wrapGAppsHook
+ libxslt docbook_xml_dtd_412 docbook_xsl libxml2 findXMLCatalogs
+ ];
+
+ buildInputs = [ gtk3 vte ];
+
+ patches = [
+ ./respect-xml-catalog-files-var.patch
+ ];
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ doCheck = true;
+
+ meta = {
+ description = "The standard terminal emulator of LXDE";
+ longDescription = ''
+ LXTerminal is the standard terminal emulator of LXDE. The terminal is a
+ desktop-independent VTE-based terminal emulator for LXDE without any
+ unnecessary dependencies.
+ '';
+ homepage = "https://wiki.lxde.org/en/LXTerminal";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.velovix ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lxterminal/respect-xml-catalog-files-var.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lxterminal/respect-xml-catalog-files-var.patch
new file mode 100644
index 000000000000..598f506118f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/lxterminal/respect-xml-catalog-files-var.patch
@@ -0,0 +1,15 @@
+diff --git a/acinclude.m4 b/acinclude.m4
+index be626c5..b449b1b 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -40,8 +40,8 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
+ [
+ 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/applications/terminal-emulators/microcom/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/microcom/default.nix
new file mode 100644
index 000000000000..8377505ec1c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/microcom/default.nix
@@ -0,0 +1,29 @@
+{ stdenv,
+ lib,
+ fetchFromGitHub,
+ readline,
+ autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "microcom";
+ version = "2019.01.0";
+
+ src = fetchFromGitHub {
+ owner = "pengutronix";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "056v28hvagnzns6p8i3bq8609k82d3w1ab2lab5dr4cdfwhs4pqj";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ readline ];
+
+ meta = with lib; {
+ description = "A minimalistic terminal program for communicating
+ with devices over a serial connection";
+ inherit (src.meta) homepage;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ emantor ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/mlterm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/mlterm/default.nix
new file mode 100644
index 000000000000..9c01430d6dfc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/mlterm/default.nix
@@ -0,0 +1,122 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, autoconf, makeDesktopItem
+, libX11, gdk-pixbuf, cairo, libXft, gtk3, vte
+, harfbuzz #substituting glyphs with opentype fonts
+, fribidi, m17n_lib #bidi and encoding
+, openssl, libssh2 #build-in ssh
+, fcitx, ibus, uim #IME
+, wrapGAppsHook #color picker in mlconfig
+, Cocoa #Darwin
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mlterm";
+ version = "3.9.1";
+
+ src = fetchFromGitHub {
+ owner = "arakiken";
+ repo = pname;
+ rev = "rel-${lib.replaceStrings [ "." ] [ "_" ] version}"; # 3.9.1 -> rel-3_9_1
+ sha256 = "1hh196kz2n3asv8r8r2bdk5b2w93zq7rw4880ciiq1554h0ib7fj";
+ };
+
+ nativeBuildInputs = [ pkgconfig autoconf wrapGAppsHook ];
+ buildInputs = [
+ libX11
+ gdk-pixbuf.dev
+ cairo
+ libXft
+ gtk3
+ harfbuzz
+ fribidi
+ ] ++ lib.optionals (!stdenv.isDarwin) [
+ # need linker magic, not adapted for Darwin yet
+ openssl
+ libssh2
+
+ # Not supported on Darwin
+ vte
+ m17n_lib
+
+ fcitx
+ ibus
+ uim
+ ];
+
+ #bad configure.ac and Makefile.in everywhere
+ preConfigure = ''
+ sed -ie 's;-L/usr/local/lib -R/usr/local/lib;;g' \
+ main/Makefile.in \
+ tool/mlfc/Makefile.in \
+ tool/mlimgloader/Makefile.in \
+ tool/mlconfig/Makefile.in \
+ uitoolkit/libtype/Makefile.in \
+ uitoolkit/libotl/Makefile.in
+ sed -ie 's;cd ..srcdir. && rm -f ...lang..gmo.*;;g' \
+ tool/mlconfig/po/Makefile.in.in
+ #utmp and mlterm-fb
+ substituteInPlace configure.in \
+ --replace "-m 2755 -g utmp" " " \
+ --replace "-m 4755 -o root" " "
+ substituteInPlace configure \
+ --replace "-m 2755 -g utmp" " " \
+ --replace "-m 4755 -o root" " "
+ '';
+ NIX_LDFLAGS = lib.optionalString (!stdenv.isDarwin) "
+ -L${stdenv.cc.cc.lib}/lib
+ -lX11 -lgdk_pixbuf-2.0 -lcairo -lfontconfig -lfreetype -lXft
+ -lvte-2.91 -lgtk-3 -lharfbuzz -lfribidi -lm17n
+ " + lib.optionalString (openssl != null) "
+ -lcrypto
+ " + lib.optionalString (libssh2 != null) "
+ -lssh2
+ ";
+
+ configureFlags = [
+ "--with-imagelib=gdk-pixbuf" #or mlimgloader depending on your bugs of choice
+ "--with-type-engines=cairo,xft,xcore"
+ "--with-gtk=3.0"
+ "--enable-ind" #indic scripts
+ "--enable-fribidi" #bidi scripts
+ "--with-tools=mlclient,mlconfig,mlcc,mlterm-menu,mlimgloader,registobmp,mlfc"
+ #mlterm-menu and mlconfig depend on enabling gnome3.at-spi2-core
+ #and configuring ~/.mlterm/key correctly.
+ ] ++ lib.optionals (!stdenv.isDarwin) [
+ "--with-x=yes"
+ "--with-gui=xlib,fb"
+ "--enable-m17nlib" #character encodings
+ ] ++ lib.optionals stdenv.isDarwin [
+ "--with-gui=quartz"
+ ] ++ lib.optionals (libssh2 == null) [ " --disable-ssh2" ];
+
+ postInstall = ''
+ install -D contrib/icon/mlterm-icon.svg "$out/share/icons/hicolor/scalable/apps/mlterm.svg"
+ install -D contrib/icon/mlterm-icon-gnome2.png "$out/share/icons/hicolor/48x48/apps/mlterm.png"
+ install -D -t $out/share/applications $desktopItem/share/applications/*
+ '' + lib.optionalString stdenv.isDarwin ''
+ mkdir -p $out/Applications/
+ cp -a cocoa/mlterm.app $out/Applications/
+ install $out/bin/mlterm -Dt $out/Applications/mlterm.app/Contents/MacOS/
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "mlterm";
+ exec = "mlterm %U";
+ icon = "mlterm";
+ type = "Application";
+ comment = "Terminal emulator";
+ desktopName = "mlterm";
+ genericName = "Terminal emulator";
+ categories = lib.concatStringsSep ";" [
+ "Application" "System" "TerminalEmulator"
+ ];
+ startupNotify = "false";
+ };
+
+ meta = with lib; {
+ description = "Multi Lingual TERMinal emulator";
+ homepage = "http://mlterm.sourceforge.net/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ vrthra ramkromberg atemu ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix
new file mode 100644
index 000000000000..4dc70133ec47
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, libX11, libXft, libXi, xorgproto, libSM, libICE
+, freetype, pkgconfig, which }:
+
+stdenv.mkDerivation {
+ name = "mrxvt-0.5.4";
+
+ buildInputs =
+ [ libX11 libXft libXi xorgproto libSM libICE freetype pkgconfig which ];
+
+ configureFlags = [
+ "--with-x"
+ "--enable-frills"
+ "--enable-xft"
+ "--enable-xim"
+ # "--with-term=xterm"
+ "--with-max-profiles=100"
+ "--with-max-term=100"
+ "--with-save-lines=10000"
+ ];
+
+ preConfigure = ''
+ NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype.dev}/include/freetype2";
+ '';
+
+ src = fetchurl {
+ url = "mirror://sourceforge/materm/mrxvt-0.5.4.tar.gz";
+ sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Lightweight multitabbed feature-rich X11 terminal emulator";
+ longDescription = "
+ Multitabbed lightweight terminal emulator based on rxvt.
+ Supports transparency, backgroundimages, freetype fonts, ...
+ ";
+ homepage = "https://sourceforge.net/projects/materm";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/nimmm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/nimmm/default.nix
new file mode 100644
index 000000000000..383057ca6551
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/nimmm/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, nim, termbox, pcre }:
+
+let
+ noise = fetchFromGitHub {
+ owner = "jangko";
+ repo = "nim-noise";
+ rev = "db1e86e312413e4348fa82c02340784316a89cc1";
+ sha256 = "0n9l2dww5smrsl1xfqxjnxz3f1srb72lc1wl3pdvs6xfyf44qzlh";
+ };
+
+ nimbox = fetchFromGitHub {
+ owner = "dom96";
+ repo = "nimbox";
+ rev = "6a56e76c01481176f16ae29b7d7c526bd83f229b";
+ sha256 = "15x1sdfxa1xcqnr68705jfnlv83lm0xnp2z9iz3pgc4bz5vwn4x1";
+ };
+
+ lscolors = fetchFromGitHub {
+ owner = "joachimschmidt557";
+ repo = "nim-lscolors";
+ rev = "v0.3.3";
+ sha256 = "0526hqh46lcfsvymb67ldsc8xbfn24vicn3b8wrqnh6mag8wynf4";
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "nimmm";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "joachimschmidt557";
+ repo = "nimmm";
+ rev = "v${version}";
+ sha256 = "1zpq181iz6g7yfi298gjwv33b89l4fpnkjprimykah7py5cpw67w";
+ };
+
+ nativeBuildInputs = [ nim ];
+ buildInputs = [ termbox pcre ];
+
+ buildPhase = ''
+ export HOME=$TMPDIR;
+ nim -p:${noise} -p:${nimbox} -p:${lscolors}/src c -d:release src/nimmm.nim
+ '';
+
+ installPhase = ''
+ install -Dt $out/bin src/nimmm
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Terminal file manager written in nim";
+ homepage = "https://github.com/joachimschmidt557/nimmm";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.joachimschmidt557 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/roxterm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/roxterm/default.nix
new file mode 100644
index 000000000000..88ff0dc460ec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/roxterm/default.nix
@@ -0,0 +1,47 @@
+{ at-spi2-core, cmake, dbus, dbus-glib, docbook_xsl, epoxy, fetchpatch, fetchFromGitHub
+, glib, gtk3, harfbuzz, libXdmcp, libXtst, libpthreadstubs
+, libselinux, libsepol, libtasn1, libxkbcommon, libxslt, p11-kit, pcre2
+, pkgconfig, stdenv, util-linuxMinimal, vte, wrapGAppsHook, xmlto
+}:
+
+stdenv.mkDerivation rec {
+ pname = "roxterm";
+ version = "3.7.5";
+
+ src = fetchFromGitHub {
+ owner = "realh";
+ repo = "roxterm";
+ rev = version;
+ sha256 = "042hchvgk9jzz035zsgnfhh8105zvspbzz6b78waylsdlgqn0pp1";
+ };
+
+ patches = [
+ # This is the commit directly after v3.7.5. It is needed to get roxterm to
+ # build correctly. It can be removed when v3.7.6 (or v3.8.0) has been
+ # released.
+ (fetchpatch {
+ url = "https://github.com/realh/roxterm/commit/f7c38fd48bd1810e16d82794bdfb61a9760a2fe1.patch";
+ sha256 = "1v77b7ilgf8zy1npxxcyc06mq6lck6bi6lw4aksnq3mi61n5znmx";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook libxslt ];
+
+ buildInputs =
+ [ gtk3 dbus dbus-glib vte pcre2 harfbuzz libpthreadstubs libXdmcp
+ util-linuxMinimal glib docbook_xsl xmlto libselinux
+ libsepol libxkbcommon epoxy at-spi2-core libXtst libtasn1 p11-kit
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/realh/roxterm";
+ license = licenses.gpl3;
+ description = "Tabbed, VTE-based terminal emulator";
+ longDescription = ''
+ Tabbed, VTE-based terminal emulator. Similar to gnome-terminal without
+ the dependencies on Gnome.
+ '';
+ maintainers = with maintainers; [ cdepillabout ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/default.nix
new file mode 100644
index 000000000000..74bfbe83e91f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/default.nix
@@ -0,0 +1,22 @@
+{ callPackage }:
+
+{
+ autocomplete-all-the-things = callPackage ./urxvt-autocomplete-all-the-things { };
+
+ bidi = callPackage ./urxvt-bidi { };
+
+ font-size = callPackage ./urxvt-font-size { };
+
+ perl = callPackage ./urxvt-perl { };
+
+ perls = callPackage ./urxvt-perls { };
+
+ resize-font = callPackage ./urxvt-resize-font { };
+
+ tabbedex = callPackage ./urxvt-tabbedex { };
+
+ theme-switch = callPackage ./urxvt-theme-switch { };
+
+ vtwheel = callPackage ./urxvt-vtwheel { };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-autocomplete-all-the-things/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-autocomplete-all-the-things/default.nix
new file mode 100644
index 000000000000..a4e03fa347f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-autocomplete-all-the-things/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "urxvt-autocomplete-all-the-things";
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "Vifon";
+ repo = "autocomplete-ALL-the-things";
+ rev = version;
+ sha256 = "06xd59c6gd9rglwq4km93n2p078k7v4x300lqrg1f32vvnjvs7sr";
+ };
+
+ installPhase = ''
+ mkdir -p $out/lib/urxvt/perl
+ cp autocomplete-ALL-the-things $out/lib/urxvt/perl
+ '';
+
+ meta = with stdenv.lib; {
+ description = "urxvt plugin allowing user to easily complete arbitrary text";
+ homepage = "https://github.com/Vifon/autocomplete-ALL-the-things";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ nickhu ];
+ platforms = with platforms; unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-bidi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-bidi/default.nix
new file mode 100644
index 000000000000..4b6b4eb8184c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-bidi/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchurl, perlPackages, pkgconfig, fribidi }:
+
+perlPackages.buildPerlPackage rec {
+ pname = "urxvt-bidi";
+ version = "2.15";
+
+ src = fetchurl {
+ url = "mirror://cpan/authors/id/K/KA/KAMENSKY/Text-Bidi-${version}.tar.gz";
+ sha256 = "1w65xbi4mw5acsrpv3phyzv82ghb29kpbb3b1b1gcinlfxl6f61m";
+ };
+
+ nativeBuildInputs = [ pkgconfig perlPackages.ExtUtilsPkgConfig ];
+ buildInputs = [ fribidi ];
+
+ postInstall = ''
+ install -Dm555 misc/bidi "$out/lib/urxvt/perl/bidi"
+ '';
+
+ passthru.perlPackages = [ "self" ];
+
+ meta = with lib; {
+ description = "Text::Bidi Perl package using fribidi, providing a urxvt plugin";
+ homepage = "https://github.com/mkamensky/Text-Bidi";
+ maintainers = with maintainers; [ doronbehar ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-font-size/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-font-size/default.nix
new file mode 100644
index 000000000000..f81709b97390
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-font-size/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, xrdb, xlsfonts }:
+
+stdenv.mkDerivation {
+ name = "urxvt-font-size-2015-05-22";
+ dontPatchShebangs = true;
+
+ src = fetchFromGitHub {
+ owner = "majutsushi";
+ repo = "urxvt-font-size";
+ rev = "fd5b09c10798c6723bbf771d4d8881cf6563bc69";
+ sha256 = "16m3kkypg3y00x597zx05zy167a0kaqpawz0l591wzb2bv1dz55z";
+ };
+
+ installPhase = ''
+ substituteInPlace font-size \
+ --replace "xrdb -merge" "${xrdb}/bin/xrdb -merge" \
+ --replace "xlsfonts" "${xlsfonts}/bin/xlsfonts"
+
+ mkdir -p $out/lib/urxvt/perl
+ cp font-size $out/lib/urxvt/perl
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Change the urxvt font size on the fly";
+ homepage = "https://github.com/majutsushi/urxvt-font-size";
+ license = licenses.mit;
+ maintainers = with maintainers; [ cstrahan ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix
new file mode 100644
index 000000000000..0c95acd72057
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perl/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, wmctrl }:
+
+stdenv.mkDerivation {
+ name = "urxvt-perl-2015-01-16";
+
+ src = fetchFromGitHub {
+ owner = "effigies";
+ repo = "urxvt-perl";
+ rev = "c3beb9ff09a7139591416c61f8e9458c8a23bea5";
+ sha256 = "1w1p8ng7bwq5hnaprjl1zf073y5l3hdsj7sz7cll6isjswcm6r0s";
+ };
+
+ installPhase = ''
+ substituteInPlace fullscreen \
+ --replace "wmctrl" "${wmctrl}/bin/wmctrl"
+
+ mkdir -p $out/lib/urxvt/perl
+ cp fullscreen $out/lib/urxvt/perl
+ cp newterm $out/lib/urxvt/perl
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Perl extensions for the rxvt-unicode terminal emulator";
+ homepage = "https://github.com/effigies/urxvt-perl";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ cstrahan ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perls/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perls/default.nix
new file mode 100644
index 000000000000..53bb938c3330
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-perls/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "urxvt-perls";
+ version = "2.3";
+
+ src = fetchFromGitHub {
+ owner = "muennich";
+ repo = "urxvt-perls";
+ rev = version;
+ sha256 = "0xvwfw7965ghhd9g6rl6y6fgpd444l46rjqmlgg0rfjypbh6c0p1";
+ };
+
+ installPhase = ''
+ mkdir -p $out/lib/urxvt/perl
+ cp keyboard-select $out/lib/urxvt/perl
+ cp deprecated/clipboard \
+ deprecated/url-select \
+ $out/lib/urxvt/perl
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Perl extensions for the rxvt-unicode terminal emulator";
+ homepage = "https://github.com/muennich/urxvt-perls";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ abbradar ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-resize-font/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-resize-font/default.nix
new file mode 100644
index 000000000000..a056e603f004
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-resize-font/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "urxvt-resize-font";
+ version = "2019-10-05";
+ dontPatchShebangs = true;
+
+ src = fetchFromGitHub {
+ owner = "simmel";
+ repo = "urxvt-resize-font";
+ rev = "e966a5d77264e9263bfc8a51e160fad24055776b";
+ sha256 = "18ab3bsfdkzzh1n9fpi2al5bksvv2b7fjmvxpx6fzqcy4bc64vkh";
+ };
+
+ installPhase = ''
+ mkdir -p $out/lib/urxvt/perl
+ cp resize-font $out/lib/urxvt/perl
+ '';
+
+ meta = with stdenv.lib; {
+ description = "URxvt Perl extension for resizing the font";
+ homepage = "https://github.com/simmel/urxvt-resize-font";
+ license = licenses.mit;
+ maintainers = with maintainers; [ rnhmjoj ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-tabbedex/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-tabbedex/default.nix
new file mode 100644
index 000000000000..71a55f9293c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-tabbedex/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "urxvt-tabbedex";
+ version = "19.21";
+
+ src = fetchFromGitHub {
+ owner = "mina86";
+ repo = "urxvt-tabbedex";
+ rev = "v${version}";
+ sha256 = "06msd156h6r8ss7qg66sjz5jz8613qfq2yvp0pc24i6mxzj8vl77";
+ };
+
+ nativeBuildInputs = [ perl ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Tabbed plugin for rxvt-unicode with many enhancements (mina86's fork)";
+ homepage = "https://github.com/mina86/urxvt-tabbedex";
+ maintainers = with maintainers; [ abbradar ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
new file mode 100644
index 000000000000..5a84a9b472a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ rev = "cfcbcc3dd5a5b09a3fec0f6a1fea95f4a36a48c4";
+ name = "urxvt-theme-switch-2014-12-21_rev${builtins.substring 0 1 rev}";
+ dontPatchShebangs = true;
+
+ src = fetchFromGitHub {
+ owner = "felixr";
+ repo = "urxvt-theme-switch";
+ inherit rev;
+ sha256 = "0x27m1vdqprn3lqpwgxvffill7prmaj6j9rhgvkvi13mzl5wmlli";
+ };
+
+ installPhase = ''
+ mkdir -p $out/lib/urxvt/perl
+ sed -i -e "s|/usr/bin/env||" color-themes
+ cp color-themes $out/lib/urxvt/perl
+ '';
+
+ meta = with stdenv.lib; {
+ description = "urxvt plugin that allows to switch color themes during runtime";
+ homepage = "https://github.com/felixr/urxvt-theme-switch";
+ license = "CCBYNC";
+ maintainers = with maintainers; [ ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix
new file mode 100644
index 000000000000..eb520f38bedb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-vtwheel/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchgit, perl }:
+
+stdenv.mkDerivation {
+
+ name = "rxvt-unicode-vtwheel-0.3.2";
+
+ src = fetchgit {
+ url = "https://aur.archlinux.org/urxvt-vtwheel.git";
+ rev = "36d3e861664aeae36a45f96100f10f8fe2218035";
+ sha256 = "1h3vrsbli5q9kr84j5ijbivlhpwlh3l8cv233pg362v2zz4ja8i7";
+ };
+
+ installPhase = ''
+ sed -i 's|#! perl|#! ${perl}/bin/perl|g' vtwheel
+ mkdir -p $out/lib/urxvt/perl
+ cp vtwheel $out/lib/urxvt/perl
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Pass mouse wheel commands to secondary screens (screen, less, nano, etc)";
+ homepage = "https://aur.archlinux.org/packages/urxvt-vtwheel";
+ license = licenses.mit;
+ maintainers = with maintainers; [ danbst ];
+ platforms = with platforms; unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
new file mode 100644
index 000000000000..6512f402ffbd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchurl, makeDesktopItem
+, libX11, libXt, libXft, libXrender
+, ncurses, fontconfig, freetype
+, pkgconfig, gdk-pixbuf, perl
+, perlSupport ? true
+, gdkPixbufSupport ? true
+, unicode3Support ? true
+}:
+
+let
+ pname = "rxvt-unicode";
+ version = "9.22";
+ description = "A clone of the well-known terminal emulator rxvt";
+
+ desktopItem = makeDesktopItem {
+ name = pname;
+ exec = "urxvt";
+ icon = "utilities-terminal";
+ comment = description;
+ desktopName = "URxvt";
+ genericName = pname;
+ categories = "System;TerminalEmulator;";
+ };
+in
+
+with stdenv.lib;
+
+stdenv.mkDerivation {
+ name = "${pname}-unwrapped-${version}";
+ inherit pname version;
+
+ src = fetchurl {
+ url = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${version}.tar.bz2";
+ sha256 = "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9";
+ };
+
+ buildInputs =
+ [ libX11 libXt libXft ncurses # required to build the terminfo file
+ fontconfig freetype pkgconfig libXrender
+ ] ++ optional perlSupport perl
+ ++ optional gdkPixbufSupport gdk-pixbuf;
+
+ outputs = [ "out" "terminfo" ];
+
+ patches = [
+ ./patches/9.06-font-width.patch
+ ./patches/256-color-resources.patch
+ ] ++ optional stdenv.isDarwin ./patches/makefile-phony.patch;
+
+
+ configureFlags = [
+ "--with-terminfo=$terminfo/share/terminfo"
+ "--enable-256-color"
+ (enableFeature perlSupport "perl")
+ (enableFeature unicode3Support "unicode3")
+ ];
+
+ LDFLAGS = [ "-lfontconfig" "-lXrender" "-lpthread" ];
+ CFLAGS = [ "-I${freetype.dev}/include/freetype2" ];
+
+ preConfigure =
+ ''
+ # without this the terminfo won't be compiled by tic, see man tic
+ mkdir -p $terminfo/share/terminfo
+ export TERMINFO=$terminfo/share/terminfo
+ ''
+ + stdenv.lib.optionalString perlSupport ''
+ # make urxvt find its perl file lib/perl5/site_perl
+ # is added to PERL5LIB automatically
+ mkdir -p $out/$(dirname ${perl.libPrefix})
+ ln -s $out/lib/urxvt $out/${perl.libPrefix}
+ '';
+
+ postInstall = ''
+ mkdir -p $out/nix-support
+ echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
+ cp -r ${desktopItem}/share/applications/ $out/share/
+ '';
+
+ meta = {
+ inherit description;
+ homepage = "http://software.schmorp.de/pkg/rxvt-unicode.html";
+ downloadPage = "http://dist.schmorp.de/rxvt-unicode/Attic/";
+ maintainers = with maintainers; [ rnhmjoj ];
+ platforms = platforms.unix;
+ license = licenses.gpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/256-color-resources.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/256-color-resources.patch
new file mode 100644
index 000000000000..c8d2acfbdc51
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/256-color-resources.patch
@@ -0,0 +1,255 @@
+diff --git a/src/xdefaults.C b/src/xdefaults.C
+index 23b6822..382f3b1 100644
+--- a/src/xdefaults.C
++++ b/src/xdefaults.C
+@@ -155,6 +155,250 @@ optList[] = {
+ RSTRG (Rs_color + minCOLOR + 5, "color5", "color"),
+ RSTRG (Rs_color + minCOLOR + 6, "color6", "color"),
+ RSTRG (Rs_color + minCOLOR + 7, "color7", "color"),
++ // 88 xterm colors
++ RSTRG (Rs_color + minCOLOR + 16, "color16", "color"),
++ RSTRG (Rs_color + minCOLOR + 17, "color17", "color"),
++ RSTRG (Rs_color + minCOLOR + 18, "color18", "color"),
++ RSTRG (Rs_color + minCOLOR + 19, "color19", "color"),
++ RSTRG (Rs_color + minCOLOR + 20, "color20", "color"),
++ RSTRG (Rs_color + minCOLOR + 21, "color21", "color"),
++ RSTRG (Rs_color + minCOLOR + 22, "color22", "color"),
++ RSTRG (Rs_color + minCOLOR + 23, "color23", "color"),
++ RSTRG (Rs_color + minCOLOR + 24, "color24", "color"),
++ RSTRG (Rs_color + minCOLOR + 25, "color25", "color"),
++ RSTRG (Rs_color + minCOLOR + 26, "color26", "color"),
++ RSTRG (Rs_color + minCOLOR + 27, "color27", "color"),
++ RSTRG (Rs_color + minCOLOR + 28, "color28", "color"),
++ RSTRG (Rs_color + minCOLOR + 29, "color29", "color"),
++ RSTRG (Rs_color + minCOLOR + 30, "color30", "color"),
++ RSTRG (Rs_color + minCOLOR + 31, "color31", "color"),
++ RSTRG (Rs_color + minCOLOR + 32, "color32", "color"),
++ RSTRG (Rs_color + minCOLOR + 33, "color33", "color"),
++ RSTRG (Rs_color + minCOLOR + 34, "color34", "color"),
++ RSTRG (Rs_color + minCOLOR + 35, "color35", "color"),
++ RSTRG (Rs_color + minCOLOR + 36, "color36", "color"),
++ RSTRG (Rs_color + minCOLOR + 37, "color37", "color"),
++ RSTRG (Rs_color + minCOLOR + 38, "color38", "color"),
++ RSTRG (Rs_color + minCOLOR + 39, "color39", "color"),
++ RSTRG (Rs_color + minCOLOR + 40, "color40", "color"),
++ RSTRG (Rs_color + minCOLOR + 41, "color41", "color"),
++ RSTRG (Rs_color + minCOLOR + 42, "color42", "color"),
++ RSTRG (Rs_color + minCOLOR + 43, "color43", "color"),
++ RSTRG (Rs_color + minCOLOR + 44, "color44", "color"),
++ RSTRG (Rs_color + minCOLOR + 45, "color45", "color"),
++ RSTRG (Rs_color + minCOLOR + 46, "color46", "color"),
++ RSTRG (Rs_color + minCOLOR + 47, "color47", "color"),
++ RSTRG (Rs_color + minCOLOR + 48, "color48", "color"),
++ RSTRG (Rs_color + minCOLOR + 49, "color49", "color"),
++ RSTRG (Rs_color + minCOLOR + 50, "color50", "color"),
++ RSTRG (Rs_color + minCOLOR + 51, "color51", "color"),
++ RSTRG (Rs_color + minCOLOR + 52, "color52", "color"),
++ RSTRG (Rs_color + minCOLOR + 53, "color53", "color"),
++ RSTRG (Rs_color + minCOLOR + 54, "color54", "color"),
++ RSTRG (Rs_color + minCOLOR + 55, "color55", "color"),
++ RSTRG (Rs_color + minCOLOR + 56, "color56", "color"),
++ RSTRG (Rs_color + minCOLOR + 57, "color57", "color"),
++ RSTRG (Rs_color + minCOLOR + 58, "color58", "color"),
++ RSTRG (Rs_color + minCOLOR + 59, "color59", "color"),
++ RSTRG (Rs_color + minCOLOR + 60, "color60", "color"),
++ RSTRG (Rs_color + minCOLOR + 61, "color61", "color"),
++ RSTRG (Rs_color + minCOLOR + 62, "color62", "color"),
++ RSTRG (Rs_color + minCOLOR + 63, "color63", "color"),
++ RSTRG (Rs_color + minCOLOR + 64, "color64", "color"),
++ RSTRG (Rs_color + minCOLOR + 65, "color65", "color"),
++ RSTRG (Rs_color + minCOLOR + 66, "color66", "color"),
++ RSTRG (Rs_color + minCOLOR + 67, "color67", "color"),
++ RSTRG (Rs_color + minCOLOR + 68, "color68", "color"),
++ RSTRG (Rs_color + minCOLOR + 69, "color69", "color"),
++ RSTRG (Rs_color + minCOLOR + 70, "color70", "color"),
++ RSTRG (Rs_color + minCOLOR + 71, "color71", "color"),
++ RSTRG (Rs_color + minCOLOR + 72, "color72", "color"),
++ RSTRG (Rs_color + minCOLOR + 73, "color73", "color"),
++ RSTRG (Rs_color + minCOLOR + 74, "color74", "color"),
++ RSTRG (Rs_color + minCOLOR + 75, "color75", "color"),
++ RSTRG (Rs_color + minCOLOR + 76, "color76", "color"),
++ RSTRG (Rs_color + minCOLOR + 77, "color77", "color"),
++ RSTRG (Rs_color + minCOLOR + 78, "color78", "color"),
++ RSTRG (Rs_color + minCOLOR + 79, "color79", "color"),
++ RSTRG (Rs_color + minCOLOR + 80, "color80", "color"),
++ RSTRG (Rs_color + minCOLOR + 81, "color81", "color"),
++ RSTRG (Rs_color + minCOLOR + 82, "color82", "color"),
++ RSTRG (Rs_color + minCOLOR + 83, "color83", "color"),
++ RSTRG (Rs_color + minCOLOR + 84, "color84", "color"),
++ RSTRG (Rs_color + minCOLOR + 85, "color85", "color"),
++ RSTRG (Rs_color + minCOLOR + 86, "color86", "color"),
++ RSTRG (Rs_color + minCOLOR + 87, "color87", "color"),
++#if USE_256_COLORS
++ // 256 xterm colors
++ RSTRG (Rs_color + minCOLOR + 88, "color88", "color"),
++ RSTRG (Rs_color + minCOLOR + 89, "color89", "color"),
++ RSTRG (Rs_color + minCOLOR + 90, "color90", "color"),
++ RSTRG (Rs_color + minCOLOR + 91, "color91", "color"),
++ RSTRG (Rs_color + minCOLOR + 92, "color92", "color"),
++ RSTRG (Rs_color + minCOLOR + 93, "color93", "color"),
++ RSTRG (Rs_color + minCOLOR + 94, "color94", "color"),
++ RSTRG (Rs_color + minCOLOR + 95, "color95", "color"),
++ RSTRG (Rs_color + minCOLOR + 96, "color96", "color"),
++ RSTRG (Rs_color + minCOLOR + 97, "color97", "color"),
++ RSTRG (Rs_color + minCOLOR + 98, "color98", "color"),
++ RSTRG (Rs_color + minCOLOR + 99, "color99", "color"),
++ RSTRG (Rs_color + minCOLOR + 100, "color100", "color"),
++ RSTRG (Rs_color + minCOLOR + 101, "color101", "color"),
++ RSTRG (Rs_color + minCOLOR + 102, "color102", "color"),
++ RSTRG (Rs_color + minCOLOR + 103, "color103", "color"),
++ RSTRG (Rs_color + minCOLOR + 104, "color104", "color"),
++ RSTRG (Rs_color + minCOLOR + 105, "color105", "color"),
++ RSTRG (Rs_color + minCOLOR + 106, "color106", "color"),
++ RSTRG (Rs_color + minCOLOR + 107, "color107", "color"),
++ RSTRG (Rs_color + minCOLOR + 108, "color108", "color"),
++ RSTRG (Rs_color + minCOLOR + 109, "color109", "color"),
++ RSTRG (Rs_color + minCOLOR + 110, "color110", "color"),
++ RSTRG (Rs_color + minCOLOR + 111, "color111", "color"),
++ RSTRG (Rs_color + minCOLOR + 112, "color112", "color"),
++ RSTRG (Rs_color + minCOLOR + 113, "color113", "color"),
++ RSTRG (Rs_color + minCOLOR + 114, "color114", "color"),
++ RSTRG (Rs_color + minCOLOR + 115, "color115", "color"),
++ RSTRG (Rs_color + minCOLOR + 116, "color116", "color"),
++ RSTRG (Rs_color + minCOLOR + 117, "color117", "color"),
++ RSTRG (Rs_color + minCOLOR + 118, "color118", "color"),
++ RSTRG (Rs_color + minCOLOR + 119, "color119", "color"),
++ RSTRG (Rs_color + minCOLOR + 120, "color120", "color"),
++ RSTRG (Rs_color + minCOLOR + 121, "color121", "color"),
++ RSTRG (Rs_color + minCOLOR + 122, "color122", "color"),
++ RSTRG (Rs_color + minCOLOR + 123, "color123", "color"),
++ RSTRG (Rs_color + minCOLOR + 124, "color124", "color"),
++ RSTRG (Rs_color + minCOLOR + 125, "color125", "color"),
++ RSTRG (Rs_color + minCOLOR + 126, "color126", "color"),
++ RSTRG (Rs_color + minCOLOR + 127, "color127", "color"),
++ RSTRG (Rs_color + minCOLOR + 128, "color128", "color"),
++ RSTRG (Rs_color + minCOLOR + 129, "color129", "color"),
++ RSTRG (Rs_color + minCOLOR + 130, "color130", "color"),
++ RSTRG (Rs_color + minCOLOR + 131, "color131", "color"),
++ RSTRG (Rs_color + minCOLOR + 132, "color132", "color"),
++ RSTRG (Rs_color + minCOLOR + 133, "color133", "color"),
++ RSTRG (Rs_color + minCOLOR + 134, "color134", "color"),
++ RSTRG (Rs_color + minCOLOR + 135, "color135", "color"),
++ RSTRG (Rs_color + minCOLOR + 136, "color136", "color"),
++ RSTRG (Rs_color + minCOLOR + 137, "color137", "color"),
++ RSTRG (Rs_color + minCOLOR + 138, "color138", "color"),
++ RSTRG (Rs_color + minCOLOR + 139, "color139", "color"),
++ RSTRG (Rs_color + minCOLOR + 140, "color140", "color"),
++ RSTRG (Rs_color + minCOLOR + 141, "color141", "color"),
++ RSTRG (Rs_color + minCOLOR + 142, "color142", "color"),
++ RSTRG (Rs_color + minCOLOR + 143, "color143", "color"),
++ RSTRG (Rs_color + minCOLOR + 144, "color144", "color"),
++ RSTRG (Rs_color + minCOLOR + 145, "color145", "color"),
++ RSTRG (Rs_color + minCOLOR + 146, "color146", "color"),
++ RSTRG (Rs_color + minCOLOR + 147, "color147", "color"),
++ RSTRG (Rs_color + minCOLOR + 148, "color148", "color"),
++ RSTRG (Rs_color + minCOLOR + 149, "color149", "color"),
++ RSTRG (Rs_color + minCOLOR + 150, "color150", "color"),
++ RSTRG (Rs_color + minCOLOR + 151, "color151", "color"),
++ RSTRG (Rs_color + minCOLOR + 152, "color152", "color"),
++ RSTRG (Rs_color + minCOLOR + 153, "color153", "color"),
++ RSTRG (Rs_color + minCOLOR + 154, "color154", "color"),
++ RSTRG (Rs_color + minCOLOR + 155, "color155", "color"),
++ RSTRG (Rs_color + minCOLOR + 156, "color156", "color"),
++ RSTRG (Rs_color + minCOLOR + 157, "color157", "color"),
++ RSTRG (Rs_color + minCOLOR + 158, "color158", "color"),
++ RSTRG (Rs_color + minCOLOR + 159, "color159", "color"),
++ RSTRG (Rs_color + minCOLOR + 160, "color160", "color"),
++ RSTRG (Rs_color + minCOLOR + 161, "color161", "color"),
++ RSTRG (Rs_color + minCOLOR + 162, "color162", "color"),
++ RSTRG (Rs_color + minCOLOR + 163, "color163", "color"),
++ RSTRG (Rs_color + minCOLOR + 164, "color164", "color"),
++ RSTRG (Rs_color + minCOLOR + 165, "color165", "color"),
++ RSTRG (Rs_color + minCOLOR + 166, "color166", "color"),
++ RSTRG (Rs_color + minCOLOR + 167, "color167", "color"),
++ RSTRG (Rs_color + minCOLOR + 168, "color168", "color"),
++ RSTRG (Rs_color + minCOLOR + 169, "color169", "color"),
++ RSTRG (Rs_color + minCOLOR + 170, "color170", "color"),
++ RSTRG (Rs_color + minCOLOR + 171, "color171", "color"),
++ RSTRG (Rs_color + minCOLOR + 172, "color172", "color"),
++ RSTRG (Rs_color + minCOLOR + 173, "color173", "color"),
++ RSTRG (Rs_color + minCOLOR + 174, "color174", "color"),
++ RSTRG (Rs_color + minCOLOR + 175, "color175", "color"),
++ RSTRG (Rs_color + minCOLOR + 176, "color176", "color"),
++ RSTRG (Rs_color + minCOLOR + 177, "color177", "color"),
++ RSTRG (Rs_color + minCOLOR + 178, "color178", "color"),
++ RSTRG (Rs_color + minCOLOR + 179, "color179", "color"),
++ RSTRG (Rs_color + minCOLOR + 180, "color180", "color"),
++ RSTRG (Rs_color + minCOLOR + 181, "color181", "color"),
++ RSTRG (Rs_color + minCOLOR + 182, "color182", "color"),
++ RSTRG (Rs_color + minCOLOR + 183, "color183", "color"),
++ RSTRG (Rs_color + minCOLOR + 184, "color184", "color"),
++ RSTRG (Rs_color + minCOLOR + 185, "color185", "color"),
++ RSTRG (Rs_color + minCOLOR + 186, "color186", "color"),
++ RSTRG (Rs_color + minCOLOR + 187, "color187", "color"),
++ RSTRG (Rs_color + minCOLOR + 188, "color188", "color"),
++ RSTRG (Rs_color + minCOLOR + 189, "color189", "color"),
++ RSTRG (Rs_color + minCOLOR + 190, "color190", "color"),
++ RSTRG (Rs_color + minCOLOR + 191, "color191", "color"),
++ RSTRG (Rs_color + minCOLOR + 192, "color192", "color"),
++ RSTRG (Rs_color + minCOLOR + 193, "color193", "color"),
++ RSTRG (Rs_color + minCOLOR + 194, "color194", "color"),
++ RSTRG (Rs_color + minCOLOR + 195, "color195", "color"),
++ RSTRG (Rs_color + minCOLOR + 196, "color196", "color"),
++ RSTRG (Rs_color + minCOLOR + 197, "color197", "color"),
++ RSTRG (Rs_color + minCOLOR + 198, "color198", "color"),
++ RSTRG (Rs_color + minCOLOR + 199, "color199", "color"),
++ RSTRG (Rs_color + minCOLOR + 200, "color200", "color"),
++ RSTRG (Rs_color + minCOLOR + 201, "color201", "color"),
++ RSTRG (Rs_color + minCOLOR + 202, "color202", "color"),
++ RSTRG (Rs_color + minCOLOR + 203, "color203", "color"),
++ RSTRG (Rs_color + minCOLOR + 204, "color204", "color"),
++ RSTRG (Rs_color + minCOLOR + 205, "color205", "color"),
++ RSTRG (Rs_color + minCOLOR + 206, "color206", "color"),
++ RSTRG (Rs_color + minCOLOR + 207, "color207", "color"),
++ RSTRG (Rs_color + minCOLOR + 208, "color208", "color"),
++ RSTRG (Rs_color + minCOLOR + 209, "color209", "color"),
++ RSTRG (Rs_color + minCOLOR + 210, "color210", "color"),
++ RSTRG (Rs_color + minCOLOR + 211, "color211", "color"),
++ RSTRG (Rs_color + minCOLOR + 212, "color212", "color"),
++ RSTRG (Rs_color + minCOLOR + 213, "color213", "color"),
++ RSTRG (Rs_color + minCOLOR + 214, "color214", "color"),
++ RSTRG (Rs_color + minCOLOR + 215, "color215", "color"),
++ RSTRG (Rs_color + minCOLOR + 216, "color216", "color"),
++ RSTRG (Rs_color + minCOLOR + 217, "color217", "color"),
++ RSTRG (Rs_color + minCOLOR + 218, "color218", "color"),
++ RSTRG (Rs_color + minCOLOR + 219, "color219", "color"),
++ RSTRG (Rs_color + minCOLOR + 220, "color220", "color"),
++ RSTRG (Rs_color + minCOLOR + 221, "color221", "color"),
++ RSTRG (Rs_color + minCOLOR + 222, "color222", "color"),
++ RSTRG (Rs_color + minCOLOR + 223, "color223", "color"),
++ RSTRG (Rs_color + minCOLOR + 224, "color224", "color"),
++ RSTRG (Rs_color + minCOLOR + 225, "color225", "color"),
++ RSTRG (Rs_color + minCOLOR + 226, "color226", "color"),
++ RSTRG (Rs_color + minCOLOR + 227, "color227", "color"),
++ RSTRG (Rs_color + minCOLOR + 228, "color228", "color"),
++ RSTRG (Rs_color + minCOLOR + 229, "color229", "color"),
++ RSTRG (Rs_color + minCOLOR + 230, "color230", "color"),
++ RSTRG (Rs_color + minCOLOR + 231, "color231", "color"),
++ RSTRG (Rs_color + minCOLOR + 232, "color232", "color"),
++ RSTRG (Rs_color + minCOLOR + 233, "color233", "color"),
++ RSTRG (Rs_color + minCOLOR + 234, "color234", "color"),
++ RSTRG (Rs_color + minCOLOR + 235, "color235", "color"),
++ RSTRG (Rs_color + minCOLOR + 236, "color236", "color"),
++ RSTRG (Rs_color + minCOLOR + 237, "color237", "color"),
++ RSTRG (Rs_color + minCOLOR + 238, "color238", "color"),
++ RSTRG (Rs_color + minCOLOR + 239, "color239", "color"),
++ RSTRG (Rs_color + minCOLOR + 240, "color240", "color"),
++ RSTRG (Rs_color + minCOLOR + 241, "color241", "color"),
++ RSTRG (Rs_color + minCOLOR + 242, "color242", "color"),
++ RSTRG (Rs_color + minCOLOR + 243, "color243", "color"),
++ RSTRG (Rs_color + minCOLOR + 244, "color244", "color"),
++ RSTRG (Rs_color + minCOLOR + 245, "color245", "color"),
++ RSTRG (Rs_color + minCOLOR + 246, "color246", "color"),
++ RSTRG (Rs_color + minCOLOR + 247, "color247", "color"),
++ RSTRG (Rs_color + minCOLOR + 248, "color248", "color"),
++ RSTRG (Rs_color + minCOLOR + 249, "color249", "color"),
++ RSTRG (Rs_color + minCOLOR + 250, "color250", "color"),
++ RSTRG (Rs_color + minCOLOR + 251, "color251", "color"),
++ RSTRG (Rs_color + minCOLOR + 252, "color252", "color"),
++ RSTRG (Rs_color + minCOLOR + 253, "color253", "color"),
++ RSTRG (Rs_color + minCOLOR + 254, "color254", "color"),
++ RSTRG (Rs_color + minCOLOR + 255, "color255", "color"),
++#endif
+ RSTRG (Rs_color + minBrightCOLOR + 0, "color8", "color"),
+ RSTRG (Rs_color + minBrightCOLOR + 1, "color9", "color"),
+ RSTRG (Rs_color + minBrightCOLOR + 2, "color10", "color"),
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/9.06-font-width.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/9.06-font-width.patch
new file mode 100644
index 000000000000..636083218fa5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/9.06-font-width.patch
@@ -0,0 +1,21 @@
+--- a/src/rxvtfont.C 2008-07-09 12:21:45.000000000 +0400
++++ b/src/rxvtfont.C 2009-10-30 14:32:53.000000000 +0300
+@@ -1195,12 +1195,14 @@
+ XGlyphInfo g;
+ XftTextExtents16 (disp, f, &ch, 1, &g);
+
+- g.width -= g.x;
+-
++/*
++ * bukind: don't use g.width as a width of a character!
++ * instead use g.xOff, see e.g.: http://keithp.com/~keithp/render/Xft.tutorial
++ */
+ int wcw = WCWIDTH (ch);
+- if (wcw > 0) g.width = (g.width + wcw - 1) / wcw;
++ if (wcw > 1) g.xOff = g.xOff / wcw;
++ if (width < g.xOff) width = g.xOff;
+
+- if (width < g.width ) width = g.width;
+ if (height < g.height ) height = g.height;
+ if (glheight < g.height - g.y) glheight = g.height - g.y;
+ } \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/makefile-phony.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/makefile-phony.patch
new file mode 100644
index 000000000000..5e42e17c156a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/patches/makefile-phony.patch
@@ -0,0 +1,10 @@
+--- a/Makefile.in 2015-01-13 08:52:30.000000000 +0100
++++ b/Makefile.in 2015-01-13 08:52:58.000000000 +0100
+@@ -30,6 +30,7 @@
+ subdirs = src doc
+
+ RECURSIVE_TARGETS = all allbin alldoc tags clean distclean realclean install
++.PHONY: $(RECURSIVE_TARGETS)
+
+ #-------------------------------------------------------------------------
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix
new file mode 100644
index 000000000000..b03acb99530a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix
@@ -0,0 +1,58 @@
+{ callPackage
+, symlinkJoin
+, makeWrapper
+, lib
+, rxvt-unicode-unwrapped
+, rxvt-unicode-plugins
+, perlPackages
+, configure ? { availablePlugins, ... }:
+ { plugins = builtins.attrValues availablePlugins;
+ extraDeps = [ ];
+ perlDeps = [ ];
+ }
+}:
+
+let
+ availablePlugins = rxvt-unicode-plugins;
+
+ # Transform the string "self" to the plugin itself.
+ # It's needed for plugins like bidi who depends on the perl
+ # package they provide themself.
+ mkPerlDeps = p:
+ let deps = p.perlPackages or [ ];
+ in map (x: if x == "self" then p else x) deps;
+
+ # The wrapper is called with a `configure` function
+ # that takes the urxvt plugins as input and produce
+ # the configuration of the wrapper: list of plugins,
+ # extra dependencies and perl dependencies.
+ # This provides simple way to customize urxvt using
+ # the `.override` mechanism.
+ wrapper = { configure, ... }:
+ let
+ config = configure { inherit availablePlugins; };
+ plugins = config.plugins or (builtins.attrValues availablePlugins);
+ extraDeps = config.extraDeps or [ ];
+ perlDeps = (config.perlDeps or [ ]) ++ lib.concatMap mkPerlDeps plugins;
+ in
+ symlinkJoin {
+ name = "rxvt-unicode-${rxvt-unicode-unwrapped.version}";
+
+ paths = [ rxvt-unicode-unwrapped ] ++ plugins ++ extraDeps;
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/urxvt \
+ --prefix PERL5LIB : "${perlPackages.makePerlPath perlDeps}" \
+ --suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl"
+ wrapProgram $out/bin/urxvtd \
+ --prefix PERL5LIB : "${perlPackages.makePerlPath perlDeps}" \
+ --suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl"
+ '';
+
+ passthru.plugins = plugins;
+ };
+
+in
+ lib.makeOverridable wrapper { inherit configure; }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt/default.nix
new file mode 100644
index 000000000000..c71973da13be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/rxvt/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl
+, pkgconfig, libtool
+, libX11, libXt, libXpm }:
+
+stdenv.mkDerivation rec {
+ pname = "rxvt";
+ version = "2.7.10";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/rxvt/${pname}-${version}.tar.gz";
+ sha256 = "0jfl71gz3k7zh3kxdb8lxi06kajjnx7bq1rxjgk680l209jxask1";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libtool libX11 libXt libXpm ];
+
+ configurePhase = ''
+ LIBTOOL=${libtool}/bin/libtool ./configure --prefix=$out --enable-everything --enable-smart-resize --enable-256-color
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://rxvt.sourceforge.net/";
+ description = "Colour vt102 terminal emulator with less features and lower memory consumption";
+ longDescription = ''
+ rxvt (acronym for our extended virtual terminal) is a terminal
+ emulator for the X Window System, originally written by Rob Nation
+ as an extended version of the older xvt terminal by John Bovey of
+ University of Kent. Mark Olesen extensively modified it later and
+ took over maintenance for several years.
+
+ rxvt is intended to be a slimmed-down alternate for xterm,
+ omitting some of its little-used features, like Tektronix 4014
+ emulation and toolkit-style configurability.
+ '';
+ maintainers = with maintainers; [ AndersonTorres ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/sakura/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/sakura/default.nix
new file mode 100644
index 000000000000..7cccec3b72fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/sakura/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, fetchurl
+, cmake
+, pkgconfig
+, gtk3
+, perl
+, vte
+, pcre2
+, glib
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sakura";
+ version = "3.7.1";
+
+ src = fetchurl {
+ url = "https://launchpad.net/${pname}/trunk/${version}/+download/${pname}-${version}.tar.bz2";
+ sha256 = "sha256-cppODnUKQpS9kFkkOqxU3yqAElAVn8VQtQsP4Carkos=";
+ };
+
+ nativeBuildInputs = [ cmake perl pkgconfig makeWrapper ];
+
+ buildInputs = [ gtk3 vte pcre2 glib ];
+
+ # Set path to gsettings-schemata so sakura knows
+ # where to find colorchooser, fontchooser etc.
+ postInstall = ''
+ wrapProgram $out/bin/sakura \
+ --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.pleyades.net/david/projects/sakura";
+ description = "A terminal emulator based on GTK and VTE";
+ longDescription = ''
+ sakura is a terminal emulator based on GTK and VTE. It's a terminal
+ emulator with few dependencies, so you don't need a full GNOME desktop
+ installed to have a decent terminal emulator. Current terminal emulators
+ based on VTE are gnome-terminal, XFCE Terminal, TermIt and a small
+ sample program included in the vte sources. The differences between
+ sakura and the last one are that it uses a notebook to provide several
+ terminals in one window and adds a contextual menu with some basic
+ options. No more no less.
+ '';
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ astsmtl codyopel AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/st/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/st/default.nix
new file mode 100644
index 000000000000..a91229f2921e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/st/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, writeText, libX11, ncurses
+, libXft, conf ? null, patches ? [], extraLibs ? []}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "st";
+ version = "0.8.4";
+
+ src = fetchurl {
+ url = "https://dl.suckless.org/st/${pname}-${version}.tar.gz";
+ sha256 = "19j66fhckihbg30ypngvqc9bcva47mp379ch5vinasjdxgn3qbfl";
+ };
+
+ inherit patches;
+
+ configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+
+ postPatch = optionalString (conf!=null) "cp ${configFile} config.def.h"
+ + optionalString stdenv.isDarwin ''
+ substituteInPlace config.mk --replace "-lrt" ""
+ '';
+
+ nativeBuildInputs = [ pkgconfig ncurses ];
+ buildInputs = [ libX11 libXft ] ++ extraLibs;
+
+ installPhase = ''
+ TERMINFO=$out/share/terminfo make install PREFIX=$out
+ '';
+
+ meta = {
+ homepage = "https://st.suckless.org/";
+ description = "Simple Terminal for X from Suckless.org Community";
+ license = licenses.mit;
+ maintainers = with maintainers; [ andsild ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/st/xst.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/st/xst.nix
new file mode 100644
index 000000000000..3e29abee5d65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/st/xst.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libX11, ncurses, libXext, libXft, fontconfig }:
+
+with stdenv.lib;
+
+let
+ version = "0.7.2";
+ name = "xst-${version}";
+in stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchFromGitHub {
+ owner = "gnotclub";
+ repo = "xst";
+ rev = "v${version}";
+ sha256 = "1fplgy30gyrwkjsw3z947327r98i13zd1whwkplpj9fzckhb9vs9";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libX11 ncurses libXext libXft fontconfig ];
+
+ installPhase = ''
+ TERMINFO=$out/share/terminfo make install PREFIX=$out
+ '';
+
+ meta = {
+ homepage = "https://github.com/neeasade/xst";
+ description = "Simple terminal fork that can load config from Xresources";
+ license = licenses.mit;
+ maintainers = [ maintainers.vyp ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/stupidterm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/stupidterm/default.nix
new file mode 100644
index 000000000000..2016059d81e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/stupidterm/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, pkgconfig, vte, gtk, pcre2 }:
+
+stdenv.mkDerivation {
+ pname = "stupidterm";
+ version = "2019-03-26";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ vte gtk pcre2 ];
+
+ src = fetchFromGitHub {
+ owner = "esmil";
+ repo = "stupidterm";
+ rev = "f824e41c2ca9016db73556c5d2f5a2861e235c8e";
+ sha256 = "1f73wvqqvj5pr3fvb7jjc4bi1iwgkkknz24k8n69mdb75jnfjipp";
+ };
+
+ makeFlags = [ "PKGCONFIG=${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config" "binary=stupidterm" ];
+
+ installPhase = ''
+ install -D stupidterm $out/bin/stupidterm
+ install -D -m 644 stupidterm.desktop $out/share/applications/stupidterm.desktop
+ install -D -m 644 stupidterm.ini $out/share/stupidterm/stupidterm.ini
+
+ substituteInPlace $out/share/applications/stupidterm.desktop \
+ --replace "Exec=st" "Exec=$out/bin/stupidterm"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple wrapper around the VTE terminal emulator widget for GTK";
+ homepage = "https://github.com/esmil/stupidterm";
+ license = licenses.lgpl3Plus;
+ maintainers = [ maintainers.etu ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix
new file mode 100644
index 000000000000..5de8109e3a4d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, fetchFromGitHub
+, python3
+, keybinder3
+, intltool
+, file
+, gtk3
+, gobject-introspection
+, libnotify
+, wrapGAppsHook
+, vte
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "terminator";
+ version = "1.92";
+
+ src = fetchFromGitHub {
+ owner = "gnome-terminator";
+ repo = "terminator";
+ rev = "v${version}";
+ sha256 = "105f660wzf9cpn24xzwaaa09igg5h3qhchafv190v5nqck6g1ssh";
+ };
+
+ nativeBuildInputs = [
+ file
+ intltool
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943
+ keybinder3
+ libnotify
+ python3
+ vte
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ configobj
+ dbus-python
+ pygobject3
+ psutil
+ pycairo
+ ];
+
+ postPatch = ''
+ patchShebangs run_tests tests po
+ # dbus-python is correctly passed in propagatedBuildInputs, but for some reason setup.py complains.
+ # The wrapped terminator has the correct path added, so ignore this.
+ substituteInPlace setup.py --replace "'dbus-python'," ""
+ '';
+
+ checkPhase = ''
+ runHook preCheck
+
+ ./run_tests
+
+ runHook postCheck
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Terminal emulator with support for tiling and tabs";
+ longDescription = ''
+ The goal of this project is to produce a useful tool for arranging
+ terminals. It is inspired by programs such as gnome-multi-term,
+ quadkonsole, etc. in that the main focus is arranging terminals in grids
+ (tabs is the most common default method, which Terminator also supports).
+ '';
+ homepage = "https://github.com/gnome-terminator/terminator";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ bjornfor ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix
new file mode 100644
index 000000000000..4c38e530247e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, fetchurl, dpkg, gnome2, gtk2, atk, glib, pango, gdk-pixbuf, cairo
+, freetype, fontconfig, dbus, libXi, libXcursor, libXdamage, libXrandr
+, libXcomposite, libXext, libXfixes, libXrender, libX11, libXtst, libXScrnSaver
+, libxcb, makeWrapper, nodejs
+, nss, nspr, alsaLib, cups, expat, systemd, libpulseaudio }:
+
+let
+ libPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc gtk2 atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
+ libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb
+ libXrender libX11 libXtst libXScrnSaver gnome2.GConf nss nspr alsaLib cups expat systemd libpulseaudio
+ ];
+in
+stdenv.mkDerivation rec {
+ version = "1.0.0-alpha.42";
+ pname = "terminus";
+ src = fetchurl {
+ url = "https://github.com/Eugeny/terminus/releases/download/v${version}/terminus_${version}_amd64.deb";
+ sha256 = "1r5n75n71zwahg4rxlnf9qzrb0651gxv0987m6bykqmfpnw91nmb";
+ };
+ buildInputs = [ dpkg makeWrapper ];
+ unpackPhase = ''
+ mkdir pkg
+ dpkg-deb -x $src pkg
+ sourceRoot=pkg
+ '';
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mv opt "$out/"
+ ln -s "$out/opt/Terminus/terminus" "$out/bin/terminus"
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${libPath}:\$ORIGIN" "$out/opt/Terminus/terminus"
+ mv usr/* "$out/"
+ wrapProgram $out/bin/terminus --prefix PATH : ${lib.makeBinPath [ nodejs ]}
+ '';
+ dontPatchELF = true;
+ meta = with lib; {
+ description = "A terminal for a more modern age";
+ homepage = "https://eugeny.github.io/terminus/";
+ maintainers = with maintainers; [ jlesquembre ];
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/add_errno_header.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/add_errno_header.patch
new file mode 100644
index 000000000000..81283f86a21d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/add_errno_header.patch
@@ -0,0 +1,24 @@
+From 95c90f302c384f410dc92e64468ac7061b57fe2d Mon Sep 17 00:00:00 2001
+From: Michael Hoang <enzime@users.noreply.github.com>
+Date: Fri, 13 Jul 2018 19:03:09 +1000
+Subject: [PATCH] Add errno.h header which isn't always included automatically.
+
+---
+ termite.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/termite.cc b/termite.cc
+index 160fe82..13e2572 100644
+--- a/termite.cc
++++ b/termite.cc
+@@ -21,6 +21,7 @@
+ #include <cstdlib>
+ #include <cstring>
+ #include <cmath>
++#include <errno.h>
+ #include <functional>
+ #include <limits>
+ #include <map>
+--
+2.17.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/default.nix
new file mode 100644
index 000000000000..2f991ca1c7e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, vte, gtk3, ncurses, pcre2, wrapGAppsHook }:
+
+let
+
+ # termite requires VTE with some internals exposed
+ # https://github.com/thestinger/vte-ng
+ #
+ # three of the patches have been locally modified to cleanly apply on 0.62
+ vte-ng = vte.overrideAttrs (attrs: {
+ patches = attrs.patches or [] ++ [
+ (fetchpatch {
+ name = "0001-expose-functions-for-pausing-unpausing-output.patch";
+ url = "https://github.com/thestinger/vte-ng/commit/342e26574f50dcd40bbeaad9e839c2a6144d0c1c.patch";
+ sha256 = "1b0k9ys545q85vfki417p21kis9f36yd0hyp12phayynss6fn715";
+ })
+ # Derived from https://github.com/thestinger/vte-ng/commit/5ae3acb69474fe5bc43767a4a3625e9ed23607a1.patch
+ ./vte-ng-modified-patches/vte-0002-expose-function-for-setting-cursor-position.patch
+ # Derived from https://github.com/thestinger/vte-ng/commit/742d57ecf15e24f6a5f2133a81b6c70acc8ff03c.patch
+ ./vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch
+ (fetchpatch {
+ name = "0004-add-functions-to-get-set-block-selection-mode.patch";
+ url = "https://github.com/thestinger/vte-ng/commit/08748fd9cb82bd191e5c476b1682ca71f7732572.patch";
+ sha256 = "1cnhd8f7ywdgcyd6xmcd2nn39jjxzkxp4d0zsj2k7m5v74nhcs1g";
+ })
+ # Derived from "https://github.com/thestinger/vte-ng/commit/dd74ae7c06e8888af2fc090ac6f8920a9d8227fb.patch";
+ ./vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch
+ ];
+ });
+
+in stdenv.mkDerivation rec {
+ pname = "termite";
+ version = "15";
+
+ src = fetchFromGitHub {
+ owner = "thestinger";
+ repo = "termite";
+ rev = "v${version}";
+ sha256 = "0hp1x6lj098m3jgna274wv5dv60lnzg22297di68g4hw9djjyd2k";
+ fetchSubmodules = true;
+ };
+
+ # https://github.com/thestinger/termite/pull/516
+ patches = [ ./url_regexp_trailing.patch ./add_errno_header.patch
+ # Fix off-by-one in select_text() on libvte >= 0.55.0
+ # Expected to be included in next release (16).
+ (fetchpatch {
+ url = "https://github.com/thestinger/termite/commit/7e9a93b421b9596f8980645a46ac2ad5468dac06.patch";
+ sha256 = "0vph2m5919f7w1xnc8i6z0j44clsm1chxkfg7l71nahxyfw5yh4j";
+ })
+ ] ++ stdenv.lib.optional stdenv.isDarwin ./remove_ldflags_macos.patch;
+
+ makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ];
+
+ buildInputs = [ vte-ng gtk3 ncurses pcre2 ];
+
+ nativeBuildInputs = [ wrapGAppsHook pkgconfig ];
+
+ outputs = [ "out" "terminfo" ];
+
+ passthru = { inherit vte-ng; };
+
+ postInstall = ''
+ mkdir -p $terminfo/share
+ mv $out/share/terminfo $terminfo/share/terminfo
+
+ mkdir -p $out/nix-support
+ echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple VTE-based terminal";
+ license = licenses.lgpl2Plus;
+ homepage = "https://github.com/thestinger/termite/";
+ maintainers = with maintainers; [ koral ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/remove_ldflags_macos.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/remove_ldflags_macos.patch
new file mode 100644
index 000000000000..f8c68518bb4d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/remove_ldflags_macos.patch
@@ -0,0 +1,25 @@
+From 1b5a6934635c55472eb7949bd87ab3f45fa1b2f3 Mon Sep 17 00:00:00 2001
+From: Michael Hoang <enzime@users.noreply.github.com>
+Date: Fri, 13 Jul 2018 19:01:51 +1000
+Subject: [PATCH] Remove --as-needed flag from ld to fix compilation on macOS.
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index b115f42..ab301ba 100644
+--- a/Makefile
++++ b/Makefile
+@@ -29,7 +29,7 @@ ifeq (${CXX}, clang++)
+ CXXFLAGS += -Wimplicit-fallthrough
+ endif
+
+-LDFLAGS := -s -Wl,--as-needed ${LDFLAGS}
++LDFLAGS := -s -Wl ${LDFLAGS}
+ LDLIBS := ${shell pkg-config --libs ${GTK} ${VTE}}
+
+ termite: termite.cc url_regex.hh util/clamp.hh util/maybe.hh util/memory.hh
+--
+2.17.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/url_regexp_trailing.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/url_regexp_trailing.patch
new file mode 100644
index 000000000000..96deaa073d71
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/url_regexp_trailing.patch
@@ -0,0 +1,27 @@
+Based on https://github.com/thestinger/termite/pull/516
+Modified to apply to v13
+
+From 65a454ffa8e681f3f14729cba7c42e1570a85e8a Mon Sep 17 00:00:00 2001
+From: Paul Baecher <pbaecher@gmail.com>
+Date: Thu, 7 Sep 2017 22:58:51 +0200
+Subject: [PATCH] Do not match punctuation at the end of URLs
+
+Punctuation at the end of URLs is most likely part of natural language
+or markup (for example in Markdown). Do not match it as part of the URL.
+---
+ url_regex.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/url_regex.hh b/url_regex.hh
+index 2ec6be8..3039b53 100644
+--- a/url_regex.hh
++++ b/url_regex.hh
+@@ -9,7 +9,7 @@
+ #define PORT "(?:\\:[[:digit:]]{1,5})?"
+ #define SCHEME "(?:[[:alpha:]][+-.[:alnum:]]*:)"
+ #define USERPASS USERCHARS_CLASS "+(?:\\:" PASSCHARS_CLASS "+)?"
+-#define URLPATH "(?:/[[:alnum:]\\Q-_.!~*'();/?:@&=+$,#%\\E]*)?"
++#define URLPATH "(?:/[[:alnum:]\\Q-_.!~*'();/?:@&=+$,#%\\E]*(?<![\\Q.,:;()!?\\E]))?"
+
+ const char * const url_regex = SCHEME "//(?:" USERPASS "\\@)?" HOST PORT URLPATH;
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0002-expose-function-for-setting-cursor-position.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0002-expose-function-for-setting-cursor-position.patch
new file mode 100644
index 000000000000..8f5c0dab39ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0002-expose-function-for-setting-cursor-position.patch
@@ -0,0 +1,61 @@
+From 5ae3acb69474fe5bc43767a4a3625e9ed23607a1 Mon Sep 17 00:00:00 2001
+From: Jelle van der Waa <jelle@vdwaa.nl>
+Date: Sat, 13 Feb 2016 22:18:01 +0100
+Subject: [PATCH] expose function for setting cursor position
+
+---
+ src/vte/vteterminal.h | 5 +++++
+ src/vtegtk.cc | 24 ++++++++++++++++++++++++
+ 2 files changed, 29 insertions(+)
+
+diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
+index a607e5da..9701320d 100644
+--- a/src/vte/vteterminal.h
++++ b/src/vte/vteterminal.h
+@@ -378,6 +378,11 @@ _VTE_PUBLIC
+ void vte_terminal_get_cursor_position(VteTerminal *terminal,
+ glong *column,
+ glong *row) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1);
++_VTE_PUBLIC
++void vte_terminal_set_cursor_position(VteTerminal *terminal,
++ glong column,
++ glong row) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1);
++
+
+ _VTE_PUBLIC
+ char *vte_terminal_hyperlink_check_event(VteTerminal *terminal,
+diff --git a/src/vtegtk.cc b/src/vtegtk.cc
+index b11b780b..bdf36eac 100644
+--- a/src/vtegtk.cc
++++ b/src/vtegtk.cc
+@@ -2415,6 +2415,30 @@ vte_terminal_get_cursor_position(VteTerminal *terminal,
+ }
+ }
+
++/**
++ * vte_terminal_set_cursor_position
++ * @terminal: a #VteTerminal
++ * @column: the new cursor column
++ * @row: the new cursor row
++ *
++ * Set the location of the cursor.
++ */
++void
++vte_terminal_set_cursor_position(VteTerminal *terminal,
++ long column, long row) noexcept
++{
++ g_return_if_fail(VTE_IS_TERMINAL(terminal));
++
++ auto impl = IMPL(terminal);
++ impl->invalidate_cursor_once(FALSE);
++ impl->m_screen->cursor.col = column;
++ impl->m_screen->cursor.row = row;
++ impl->invalidate_cursor_once(FALSE);
++ impl->check_cursor_blink();
++ impl->queue_cursor_moved();
++
++}
++
+ /**
+ * vte_terminal_pty_new_sync:
+ * @terminal: a #VteTerminal
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch
new file mode 100644
index 000000000000..203228dae34d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch
@@ -0,0 +1,56 @@
+From 742d57ecf15e24f6a5f2133a81b6c70acc8ff03c Mon Sep 17 00:00:00 2001
+From: Jelle van der Waa <jelle@vdwaa.nl>
+Date: Sat, 13 Feb 2016 22:25:19 +0100
+Subject: [PATCH] add function for setting the text selections
+
+---
+ src/vte/vteterminal.h | 4 ++++
+ src/vtegtk.cc | 20 ++++++++++++++++++++
+ 2 files changed, 24 insertions(+)
+
+diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
+index 9701320d..a11b4cb7 100644
+--- a/src/vte/vteterminal.h
++++ b/src/vte/vteterminal.h
+@@ -196,6 +196,10 @@ _VTE_PUBLIC
+ void vte_terminal_select_all(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1);
+ _VTE_PUBLIC
+ void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1);
++_VTE_PUBLIC
++void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row,
++ long end_col, long end_row) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1);
++
+
+ /* By-word selection */
+ _VTE_PUBLIC
+diff --git a/src/vtegtk.cc b/src/vtegtk.cc
+index bdf36eac..d9e9f2ed 100644
+--- a/src/vtegtk.cc
++++ b/src/vtegtk.cc
+@@ -2390,6 +2390,26 @@ vte_terminal_unselect_all(VteTerminal *terminal)
+ IMPL(terminal)->deselect_all();
+ }
+
++/**
++ * vte_terminal_select_text:
++ * @terminal: a #VteTerminal
++ * @start_col: the starting column for the selection
++ * @start_row: the starting row for the selection
++ * @end_col: the end column for the selection
++ * @end_row: the end row for the selection
++ *
++ * Sets the current selection region.
++ */
++void
++vte_terminal_select_text(VteTerminal *terminal,
++ long start_col, long start_row,
++ long end_col, long end_row) noexcept
++{
++ g_return_if_fail (VTE_IS_TERMINAL (terminal));
++
++ IMPL(terminal)->select_text(start_col, start_row, end_col, end_row);
++}
++
+ /**
+ * vte_terminal_get_cursor_position:
+ * @terminal: a #VteTerminal
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch
new file mode 100644
index 000000000000..0a2c52722268
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch
@@ -0,0 +1,29 @@
+--- a/src/vte/vteterminal.h
++++ b/src/vte/vteterminal.h
+@@ -204,7 +204,9 @@
+ _VTE_PUBLIC
+ void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row,
+ long end_col, long end_row) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1);
+-
++_VTE_PUBLIC
++char *
++vte_terminal_get_selection(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1);
+
+ /* By-word selection */
+ _VTE_PUBLIC
+--- a/src/vtegtk.cc
++++ b/src/vtegtk.cc
+@@ -2435,6 +2435,13 @@
+ IMPL(terminal)->select_text(start_col, start_row, end_col, end_row);
+ }
+
++char *
++vte_terminal_get_selection(VteTerminal *terminal) noexcept
++{
++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
++ return g_strdup (IMPL(terminal)->m_selection[VTE_SELECTION_PRIMARY]->str);
++}
++
+ /**
+ * vte_terminal_get_cursor_position:
+ * @terminal: a #VteTerminal
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/wrapper.nix
new file mode 100644
index 000000000000..379223d9076d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termite/wrapper.nix
@@ -0,0 +1,15 @@
+{ makeWrapper, symlinkJoin, configFile ? null, termite }:
+
+if configFile == null then termite else symlinkJoin {
+ name = "termite-with-config-${termite.version}";
+
+ paths = [ termite ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/termite \
+ --add-flags "--config ${configFile}"
+ '';
+
+ passthru.terminfo = termite.terminfo;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termonad/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termonad/default.nix
new file mode 100644
index 000000000000..4388cbcfb441
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/termonad/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, ghcWithPackages, makeWrapper, packages ? (pkgSet: []) }:
+
+let
+ termonadEnv = ghcWithPackages (self: [ self.termonad ] ++ packages self);
+in stdenv.mkDerivation {
+ name = "termonad-with-packages-${termonadEnv.version}";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ mkdir -p $out/bin $out/share
+ makeWrapper ${termonadEnv}/bin/termonad $out/bin/termonad \
+ --set NIX_GHC "${termonadEnv}/bin/ghc"
+ '';
+
+ # trivial derivation
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/tilda/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/tilda/default.nix
new file mode 100644
index 000000000000..0a672b039f6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/tilda/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, pkgconfig
+, autoreconfHook, gettext, expat, pcre2
+, libconfuse, vte, gtk
+, makeWrapper }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+ pname = "tilda";
+ version = "1.5.2";
+
+ src = fetchFromGitHub {
+ owner = "lanoxx";
+ repo = "tilda";
+ rev = "${pname}-${version}";
+ sha256 = "0psq0f4s0s92bba6wwcf6b0j7i59b76svqxhvpavwv53yvhmmamn";
+ };
+
+ nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
+ buildInputs = [ gettext pcre2 libconfuse vte gtk ];
+
+ LD_LIBRARY_PATH = "${expat.out}/lib"; # ugly hack for xgettext to work during build
+
+ # The config locking scheme relies on the binary being called "tilda",
+ # (`pgrep -C tilda`), so a simple `wrapProgram` won't suffice:
+ postInstall = ''
+ mkdir $out/bin/wrapped
+ mv "$out/bin/tilda" "$out/bin/wrapped/tilda"
+ makeWrapper "$out/bin/wrapped/tilda" "$out/bin/tilda" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+ '';
+
+ meta = {
+ description = "A Gtk based drop down terminal for Linux and Unix";
+ homepage = "https://github.com/lanoxx/tilda/";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
new file mode 100644
index 000000000000..4707685e3dab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, meson
+, ninja
+, python3
+, pkgconfig
+, dmd
+, dconf
+, dbus
+, gsettings-desktop-schemas
+, desktop-file-utils
+, gettext
+, gtkd
+, libsecret
+, glib
+, wrapGAppsHook
+, libunwind
+}:
+
+stdenv.mkDerivation {
+ pname = "tilix";
+ version = "unstable-2019-10-02";
+
+ src = fetchFromGitHub {
+ owner = "gnunn1";
+ repo = "tilix";
+ rev = "ffcd31e3c0e1a560ce89468152d8726065e8fb1f";
+ sha256 = "1bzv7xiqhyblz1rw8ln4zpspmml49vnshn1zsv9di5q7kfgpqrgq";
+ };
+
+ # Default upstream else LDC fails to link
+ mesonBuildType = [
+ "debugoptimized"
+ ];
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ dmd
+ meson
+ ninja
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ dbus
+ gettext
+ dconf
+ gsettings-desktop-schemas
+ gtkd
+ libsecret
+ libunwind
+ ];
+
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ '';
+
+ preFixup = ''
+ substituteInPlace $out/share/applications/com.gexperts.Tilix.desktop \
+ --replace "Exec=tilix" "Exec=$out/bin/tilix"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tiling terminal emulator following the Gnome Human Interface Guidelines";
+ homepage = "https://gnunn1.github.io/tilix-web";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ midchildan worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/wayst/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/wayst/default.nix
new file mode 100644
index 000000000000..99ee326aebf2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/wayst/default.nix
@@ -0,0 +1,91 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, pkgconfig
+, freetype
+, fontconfig
+, libGL
+, libX11
+, libXrandr
+, libxcb
+, libxkbcommon
+, utf8proc
+, wayland
+
+, libnotify
+, xdg_utils
+, makeDesktopItem
+}:
+
+let
+ desktopItem = makeDesktopItem {
+ desktopName = "Wayst";
+ name = "wayst";
+ exec = "wayst";
+ icon = "wayst";
+ terminal = "false";
+ categories = "System;TerminalEmulator";
+ comment = "A simple terminal emulator";
+ extraEntries = ''
+ GenericName=Terminal
+ Keywords=wayst;terminal;
+ '';
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "wayst";
+ version = "unstable-2020-10-12";
+
+ src = fetchFromGitHub {
+ owner = "91861";
+ repo = pname;
+ rev = "b8c7ca00a785a748026ed1ba08bf3d19916ced18";
+ hash = "sha256-wHAU1yxukxApzhLLLctZ/AYqF7t21HQc5omPBZyxra0=";
+ };
+
+ makeFlags = [ "INSTALL_DIR=\${out}/bin" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [
+ fontconfig
+ libX11
+ freetype
+ libGL
+ libxcb
+ libxkbcommon
+ libXrandr
+ utf8proc
+ wayland
+ ];
+
+ # This patch forces the Makefile to use utf8proc
+ # The makefile relies on ldconfig to find the utf8proc libraries
+ # which is not possible on nixpkgs
+ patches = [ ./utf8proc.patch ];
+
+ postPatch = ''
+ substituteInPlace src/settings.c \
+ --replace xdg-open ${xdg_utils}/bin/xdg-open
+ substituteInPlace src/main.c \
+ --replace notify-send ${libnotify}/bin/notify-send
+ '';
+
+ preInstall = ''
+ mkdir -p $out/bin
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications
+ install -D icons/wayst.svg $out/share/icons/hicolor/scalable/apps/wayst.svg
+ '';
+
+ meta = with lib; {
+ description = "A simple terminal emulator";
+ homepage = "https://github.com/91861/wayst";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ berbiche ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/wayst/utf8proc.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/wayst/utf8proc.patch
new file mode 100644
index 000000000000..0923c5dbe18d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/wayst/utf8proc.patch
@@ -0,0 +1,24 @@
+commit caa5a6bed31937f2d1b322da204e11eae57a720f
+Author: Nicolas Berbiche <nicolas@normie.dev>
+Date: Tue Oct 20 18:14:44 2020 -0400
+
+ PATCH: use nixpkgs utf8proc
+
+ This patch forces the Makefile to use utf8proc from `buildInputs`.
+ The Makefile relies on ldconfig to find the utf8proc libraries,
+ which is not possible with nixpkgs.
+
+diff --git a/Makefile b/Makefile
+index caccdf7..90b11ea 100644
+--- a/Makefile
++++ b/Makefile
+@@ -29,7 +29,7 @@ else
+ LDFLAGS = -O2 -flto
+ endif
+
+-ifeq ($(shell ldconfig -p | grep libutf8proc.so > /dev/null || echo fail),fail)
++ifeq (false,fail)
+ $(info libutf8proc not found. Support for language-specific combining characters and unicode normalization will be disabled.)
+ CFLAGS += -DNOUTF8PROC
+ else
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/x3270/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/x3270/default.nix
new file mode 100644
index 000000000000..747d26538764
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/x3270/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, openssl, m4, expat
+, libX11, libXt, libXaw, libXmu, bdftopcf, mkfontdir
+, fontadobe100dpi, fontadobeutopia100dpi, fontbh100dpi
+, fontbhlucidatypewriter100dpi, fontbitstream100dpi
+, tcl
+, ncurses }:
+
+let
+ majorVersion = "4";
+ minorVersion = "0";
+ versionSuffix = "ga9";
+in stdenv.mkDerivation rec {
+ pname = "x3270";
+ version = "${majorVersion}.${minorVersion}${versionSuffix}";
+
+ src = fetchurl {
+ url = "http://x3270.bgp.nu/download/0${majorVersion}.0${minorVersion}/suite3270-${version}-src.tgz";
+ sha256 = "0km24rgll0s4ji6iz8lvy5ra76ds162s95y33w5px6697cwqkp9j";
+ };
+
+ buildFlags = "unix";
+
+ postConfigure = ''
+ pushd c3270 ; ./configure ; popd
+ '';
+
+ nativeBuildInputs = [ m4 ];
+ buildInputs = [
+ expat
+ libX11 libXt libXaw libXmu bdftopcf mkfontdir
+ fontadobe100dpi fontadobeutopia100dpi fontbh100dpi
+ fontbhlucidatypewriter100dpi fontbitstream100dpi
+ tcl
+ ncurses
+ expat
+ ];
+
+ meta = with stdenv.lib; {
+ description = "IBM 3270 terminal emulator for the X Window System";
+ homepage = "http://x3270.bgp.nu/index.html";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.anna328p ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix
new file mode 100644
index 000000000000..1ec704f5d438
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix
@@ -0,0 +1,119 @@
+{ stdenv, fetchurl, fetchpatch, xorg, ncurses, freetype, fontconfig, pkgconfig
+, makeWrapper, nixosTests, writeScript, common-updater-scripts, git, nixfmt, nix
+, gnused, coreutils, enableDecLocator ? true }:
+
+stdenv.mkDerivation rec {
+ pname = "xterm";
+ version = "362";
+
+ src = fetchurl {
+ urls = [
+ "ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
+ "https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
+ ];
+ sha256 = "HU/+Im+o8CGFm7wwB3iP9jpGoxJC2b2ae9fr4k6BrKI=";
+ };
+
+ buildInputs = [
+ xorg.libXaw
+ xorg.xorgproto
+ xorg.libXt
+ xorg.libXext
+ xorg.libX11
+ xorg.libSM
+ xorg.libICE
+ ncurses
+ freetype
+ fontconfig
+ pkgconfig
+ xorg.libXft
+ xorg.luit
+ makeWrapper
+ ];
+
+ patches = [ ./sixel-256.support.patch ]
+ ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
+ name = "posix-ptys.patch";
+ url =
+ "https://git.alpinelinux.org/aports/plain/community/xterm/posix-ptys.patch?id=3aa532e77875fa1db18c7fcb938b16647031bcc1";
+ sha256 = "0czgnsxkkmkrk1idw69qxbprh0jb4sw3c24zpnqq2v76jkl7zvlr";
+ });
+
+ configureFlags = [
+ "--enable-wide-chars"
+ "--enable-256-color"
+ "--enable-sixel-graphics"
+ "--enable-regis-graphics"
+ "--enable-load-vt-fonts"
+ "--enable-i18n"
+ "--enable-doublechars"
+ "--enable-luit"
+ "--enable-mini-luit"
+ "--with-tty-group=tty"
+ "--with-app-defaults=$(out)/lib/X11/app-defaults"
+ ] ++ stdenv.lib.optional enableDecLocator "--enable-dec-locator";
+
+ # Work around broken "plink.sh".
+ NIX_LDFLAGS = "-lXmu -lXt -lICE -lX11 -lfontconfig";
+
+ # Hack to get xterm built with the feature of releasing a possible setgid of 'utmp',
+ # decided by the sysadmin to allow the xterm reporting to /var/run/utmp
+ # If we used the configure option, that would have affected the xterm installation,
+ # (setgid with the given group set), and at build time the environment even doesn't have
+ # groups, and the builder will end up removing any setgid.
+ postConfigure = ''
+ echo '#define USE_UTMP_SETGID 1'
+ '';
+
+ postInstall = ''
+ for bin in $out/bin/*; do
+ wrapProgram $bin --set XAPPLRESDIR $out/lib/X11/app-defaults/
+ done
+
+ install -D -t $out/share/applications xterm.desktop
+ install -D -t $out/share/icons/hicolor/48x48/apps icons/xterm-color_48x48.xpm
+ '';
+
+ passthru = {
+ tests = { inherit (nixosTests) xterm; };
+
+ updateScript = let
+ # Tags that end in letters are unstable
+ suffixes = stdenv.lib.concatStringsSep " "
+ (map (c: "-c versionsort.suffix='${c}'")
+ (stdenv.lib.stringToCharacters "abcdefghijklmnopqrstuvwxyz"));
+ in writeScript "update.sh" ''
+ #!${stdenv.shell}
+ set -o errexit
+ PATH=${
+ stdenv.lib.makeBinPath [
+ common-updater-scripts
+ git
+ nixfmt
+ nix
+ coreutils
+ gnused
+ ]
+ }
+
+ oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
+ latestTag="$(git ${suffixes} ls-remote --exit-code --refs --sort='version:refname' --tags git@github.com:ThomasDickey/xterm-snapshots.git 'xterm-*' | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^xterm-||g')"
+
+ if [ ! "$oldVersion" = "$latestTag" ]; then
+ update-source-version ${pname} "$latestTag" --version-key=version --print-changes
+ nixpkgs="$(git rev-parse --show-toplevel)"
+ default_nix="$nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix"
+ nixfmt "$default_nix"
+ else
+ echo "${pname} is already up-to-date"
+ fi
+ '';
+ };
+
+ meta = {
+ homepage = "https://invisible-island.net/xterm";
+ license = with stdenv.lib.licenses; [ mit ];
+ maintainers = with stdenv.lib.maintainers; [ nequissimus vrthra ];
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xterm/sixel-256.support.patch b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xterm/sixel-256.support.patch
new file mode 100644
index 000000000000..480e67e89ca3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xterm/sixel-256.support.patch
@@ -0,0 +1,11 @@
+--- xterm-325/graphics.c 2016-05-17 03:04:40.000000000 -0700
++++ xterm-325/graphics.c 2016-06-11 16:37:29.552584281 -0700
+@@ -667,7 +667,7 @@
+ case 330:
+ return 4U;
+ case 340:
+- return 16U;
++ return 256U;
+ case 382:
+ return 2U;
+ default:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xtermcontrol/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xtermcontrol/default.nix
new file mode 100644
index 000000000000..f7c0edf22420
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/xtermcontrol/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ version = "3.7";
+ pname = "xtermcontrol";
+
+ src = fetchurl {
+ url = "https://thrysoee.dk/xtermcontrol/xtermcontrol-${version}.tar.gz";
+ sha256 = "04m12ddaps5sdbqvkwkp6lh81i8vh5ya5gzcxkrkilsga3m6qff2";
+ };
+
+ meta = {
+ description = "Enables dynamic control of xterm properties";
+ longDescription = ''
+ Enables dynamic control of xterm properties.
+ It makes it easy to change colors, title, font and geometry of a running xterm, as well as to report the current settings of these properties.
+ Window manipulations de-/iconify, raise/lower, maximize/restore and reset are also supported.
+ To complete the feature set; xtermcontrol lets advanced users issue any xterm control sequence of their choosing.
+ '';
+ homepage = "http://thrysoee.dk/xtermcontrol";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.derchris ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/yaft/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/yaft/default.nix
new file mode 100644
index 000000000000..e66f397a3830
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/yaft/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+ version = "0.2.9";
+ pname = "yaft";
+
+ src = fetchFromGitHub {
+ owner = "uobikiemukot";
+ repo = "yaft";
+ rev = "v${version}";
+ sha256 = "0l1ig8wm545kpn4l7186rymny83jkahnjim290wsl7hsszfq1ckd";
+ };
+
+ buildInputs = [ ncurses ];
+
+ installFlags = [ "PREFIX=$(out)" "MANPREFIX=$(out)/share/man" ];
+
+ meta = {
+ homepage = "https://github.com/uobikiemukot/yaft";
+ description = "Yet another framebuffer terminal";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch
new file mode 100644
index 000000000000..2b39322ca22f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch
@@ -0,0 +1,11 @@
+--- tla-1.3.5/src/build-tools/auto-conf-lib/gnu-patch-test 2006-07-20 08:34:28.000000000 +0200
++++ tla-1.3.5/src/build-tools/auto-conf-lib/gnu-patch-test 2008-02-17 13:00:07.000000000 +0100
+@@ -27,7 +27,7 @@ else
+ fi
+
+ CMP='cmp' # we require a working 'cmp' utility
+-TMPDIR="/tmp/,patch-test.$$"
++TMPDIR="${TMPDIR:-/tmp}/,patch-test.$$"
+
+ ORIG_A="$TMPDIR/to-patch_a"
+ ORIG_PRISTINE_A="$TMPDIR/to-patch_a.the-original"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/arch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/arch/default.nix
new file mode 100644
index 000000000000..c161d8446acf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/arch/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, which, diffutils, gnupatch, gnutar }:
+
+stdenv.mkDerivation rec {
+ pname = "tla";
+ version = "1.3.5";
+
+ src = fetchurl {
+ url = "https://ftp.gnu.org/old-gnu/gnu-arch/tla-${version}.tar.gz";
+ sha256 = "01mfzj1i6p4s8191cgd5850hds1zls88hkf9rb6qx1vqjv585aj0";
+ };
+
+ patches = [ ./configure-tmpdir.patch ];
+
+ buildInputs = [ which ];
+
+ propagatedBuildInputs = [ diffutils gnupatch gnutar ];
+
+ # Instead of GNU Autoconf, tla uses Tom Lord's now
+ # defunct `package-framework'.
+ buildPhase = ''
+ mkdir +build && cd +build && \
+ ../src/configure --prefix="$out" && \
+ make install
+ '';
+
+ meta = {
+ description = "GNU Arch (aka. `tla'), a distributed revision control system";
+ homepage = "https://www.gnu.org/software/gnu-arch/";
+ license = "GPL";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/bcompare/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
new file mode 100644
index 000000000000..5da3aee5d7b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
@@ -0,0 +1,65 @@
+{ autoPatchelfHook, bzip2, cairo, coreutils, fetchurl, gdk-pixbuf, pango, gtk2, kcoreaddons, ki18n, kio, kservice, lib, qt4, qtbase, stdenv, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ pname = "bcompare";
+ version = "4.3.7.25118";
+
+ src = fetchurl {
+ url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb";
+ sha256 = "165d6d81vy29pr62y4rcvl4abqqhfwdzcsx77p0dqlzgqswj88v8";
+ };
+
+ unpackPhase = ''
+ ar x $src
+ tar xfz data.tar.gz
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib $out/share
+ cp -R usr/share $out/
+ cp -R usr/lib $out/
+ cp -R usr/bin $out/
+
+ # Remove library that refuses to be autoPatchelf'ed
+ rm $out/lib/beyondcompare/ext/bcompare_ext_kde.amd64.so
+
+ substituteInPlace $out/bin/bcompare \
+ --replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \
+ --replace "/bin/bash" "${runtimeShell}"
+
+ # Create symlink bzip2 library
+ ln -s ${bzip2.out}/lib/libbz2.so.1 $out/lib/beyondcompare/libbz2.so.1.0
+ '';
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+
+ buildInputs = [
+ stdenv.cc.cc.lib
+ gtk2
+ pango
+ cairo
+ kio
+ kservice
+ ki18n
+ kcoreaddons
+ gdk-pixbuf
+ bzip2
+ ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ meta = with stdenv.lib; {
+ description = "GUI application that allows to quickly and easily compare files and folders";
+ longDescription = ''
+ Beyond Compare is focused. Beyond Compare allows you to quickly and easily compare your files and folders.
+ By using simple, powerful commands you can focus on the differences you're interested in and ignore those you're not.
+ You can then merge the changes, synchronize your files, and generate reports for your records.
+ '';
+ homepage = "https://www.scootersoftware.com";
+ license = licenses.unfree;
+ maintainers = [ maintainers.ktor ];
+ platforms = [ "x86_64-linux" ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix
new file mode 100644
index 000000000000..78f62ebcf25c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, perl, gperf, bison, groff
+, pkgconfig, libXft, pcre
+, libtomcrypt, libtommath, lz4 }:
+
+stdenv.mkDerivation rec {
+ pname = "bitkeeper";
+ version = "7.3.1ce";
+
+ src = fetchurl {
+ url = "https://www.bitkeeper.org/downloads/${version}/bk-${version}.src.tar.gz";
+ sha256 = "0l6jwvcg4s1q00vb01hdv58jgv03l8x5mhjl73cwgfiff80zx147";
+ };
+
+ hardeningDisable = [ "fortify" ];
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ perl gperf bison groff libXft
+ pcre libtomcrypt libtommath lz4
+ ];
+
+ postPatch = ''
+ substituteInPlace port/unix_platform.sh \
+ --replace /bin/rm rm
+ substituteInPlace ./undo.c \
+ --replace /bin/cat cat
+ '';
+
+ sourceRoot = "bk-${version}/src";
+ buildPhase = ''
+ make -j6 V=1 p
+ make image
+ '';
+
+ installPhase = ''
+ ./utils/bk-* $out/bitkeeper
+ mkdir -p $out/bin
+ $out/bitkeeper/bk links $out/bin
+ chmod g-w $out
+ '';
+
+ meta = {
+ description = "A distributed version control system";
+ longDescription = ''
+ BitKeeper is a fast, enterprise-ready, distributed SCM that
+ scales up to very large projects and down to tiny ones.
+ '';
+ homepage = "https://www.bitkeeper.org/";
+ license = stdenv.lib.licenses.asl20;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ wscott thoughtpolice ];
+ broken = true; # seems to fail on recent glibc versions
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/blackbox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/blackbox/default.nix
new file mode 100644
index 000000000000..8c28a6789624
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/blackbox/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ version = "1.20181219";
+ pname = "blackbox";
+
+ src = fetchFromGitHub {
+ owner = "stackexchange";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1lpwwwc3rf992vdf3iy1ds07n1xkmad065im2bqzc6kdsbkn7rjx";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin && cp -r bin/* $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Safely store secrets in a VCS repo";
+ maintainers = with maintainers; [ ericsagnes ];
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/bumpver/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/bumpver/default.nix
new file mode 100644
index 000000000000..6aa4bcc52bc3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/bumpver/default.nix
@@ -0,0 +1,29 @@
+{ lib, python3, git, mercurial}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "bumpver";
+ version = "2020.1107";
+
+ src = python3.pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "75704333a8d1699e2cadcf1fcd3027a2cab6837ae343af10a61c6eef4e0313d7";
+ };
+
+ prePatch = ''
+ substituteInPlace setup.py \
+ --replace "if any(arg.startswith(\"bdist\") for arg in sys.argv):" ""\
+ --replace "import lib3to6" ""\
+ --replace "package_dir = lib3to6.fix(package_dir)" ""
+ '';
+
+ propagatedBuildInputs = with python3.pkgs; [ pathlib2 click toml lexid colorama setuptools ];
+
+ checkInputs = [ python3.pkgs.pytestCheckHook git mercurial];
+
+ meta = with lib; {
+ description = "Bump version numbers in project files";
+ homepage = "https://pypi.org/project/bumpver/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kfollesdal ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/default.nix
new file mode 100644
index 000000000000..c673fd6d0c9a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/default.nix
@@ -0,0 +1,17 @@
+{ pkgs, nodejs, stdenv, lib, ... }:
+
+let
+ nodePackages = import ./node-composition.nix {
+ inherit pkgs nodejs;
+ inherit (stdenv.hostPlatform) system;
+ };
+in
+nodePackages.commitizen.override {
+ meta = with lib; {
+ description = "The commitizen command line utility";
+ homepage = "https://commitizen.github.io/cz-cli";
+ maintainers = with maintainers; [ freezeboy ];
+ license = licenses.mit;
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh
new file mode 100755
index 000000000000..7111289d2909
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix
+
+node2nix \
+ --node-env node-env.nix \
+ --development \
+ --input package.json \
+ --output node-packages.nix \
+ --composition node-composition.nix
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix
new file mode 100644
index 000000000000..17879f381d57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+ inherit system;
+ }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+ nodeEnv = import ./node-env.nix {
+ inherit (pkgs) stdenv python2 util-linux runCommand writeTextFile;
+ inherit nodejs;
+ libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+ };
+in
+import ./node-packages.nix {
+ inherit (pkgs) fetchurl fetchgit;
+ inherit nodeEnv;
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix
new file mode 100644
index 000000000000..04e3ee097fae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix
@@ -0,0 +1,542 @@
+# This file originates from node2nix
+
+{stdenv, nodejs, python2, util-linux, libtool, runCommand, writeTextFile}:
+
+let
+ python = if nodejs ? python then nodejs.python else python2;
+
+ # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+ tarWrapper = runCommand "tarWrapper" {} ''
+ mkdir -p $out/bin
+
+ cat > $out/bin/tar <<EOF
+ #! ${stdenv.shell} -e
+ $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
+ EOF
+
+ chmod +x $out/bin/tar
+ '';
+
+ # Function that generates a TGZ file from a NPM project
+ buildNodeSourceDist =
+ { name, version, src, ... }:
+
+ stdenv.mkDerivation {
+ name = "node-tarball-${name}-${version}";
+ inherit src;
+ buildInputs = [ nodejs ];
+ buildPhase = ''
+ export HOME=$TMPDIR
+ tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
+ '';
+ installPhase = ''
+ mkdir -p $out/tarballs
+ mv $tgzFile $out/tarballs
+ mkdir -p $out/nix-support
+ echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
+ '';
+ };
+
+ includeDependencies = {dependencies}:
+ stdenv.lib.optionalString (dependencies != [])
+ (stdenv.lib.concatMapStrings (dependency:
+ ''
+ # Bundle the dependencies of the package
+ mkdir -p node_modules
+ cd node_modules
+
+ # Only include dependencies if they don't exist. They may also be bundled in the package.
+ if [ ! -e "${dependency.name}" ]
+ then
+ ${composePackage dependency}
+ fi
+
+ cd ..
+ ''
+ ) dependencies);
+
+ # Recursively composes the dependencies of a package
+ composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+ builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+ DIR=$(pwd)
+ cd $TMPDIR
+
+ unpackFile ${src}
+
+ # Make the base dir in which the target dependency resides first
+ mkdir -p "$(dirname "$DIR/${packageName}")"
+
+ if [ -f "${src}" ]
+ then
+ # Figure out what directory has been unpacked
+ packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+ # Restore write permissions to make building work
+ find "$packageDir" -type d -exec chmod u+x {} \;
+ chmod -R u+w "$packageDir"
+
+ # Move the extracted tarball into the output folder
+ mv "$packageDir" "$DIR/${packageName}"
+ elif [ -d "${src}" ]
+ then
+ # Get a stripped name (without hash) of the source directory.
+ # On old nixpkgs it's already set internally.
+ if [ -z "$strippedName" ]
+ then
+ strippedName="$(stripHash ${src})"
+ fi
+
+ # Restore write permissions to make building work
+ chmod -R u+w "$strippedName"
+
+ # Move the extracted directory into the output folder
+ mv "$strippedName" "$DIR/${packageName}"
+ fi
+
+ # Unset the stripped name to not confuse the next unpack step
+ unset strippedName
+
+ # Include the dependencies of the package
+ cd "$DIR/${packageName}"
+ ${includeDependencies { inherit dependencies; }}
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ '';
+
+ pinpointDependencies = {dependencies, production}:
+ let
+ pinpointDependenciesFromPackageJSON = writeTextFile {
+ name = "pinpointDependencies.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function resolveDependencyVersion(location, name) {
+ if(location == process.env['NIX_STORE']) {
+ return null;
+ } else {
+ var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+ if(fs.existsSync(dependencyPackageJSON)) {
+ var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+ if(dependencyPackageObj.name == name) {
+ return dependencyPackageObj.version;
+ }
+ } else {
+ return resolveDependencyVersion(path.resolve(location, ".."), name);
+ }
+ }
+ }
+
+ function replaceDependencies(dependencies) {
+ if(typeof dependencies == "object" && dependencies !== null) {
+ for(var dependency in dependencies) {
+ var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+ if(resolvedVersion === null) {
+ process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+ } else {
+ dependencies[dependency] = resolvedVersion;
+ }
+ }
+ }
+ }
+
+ /* Read the package.json configuration */
+ var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+ /* Pinpoint all dependencies */
+ replaceDependencies(packageObj.dependencies);
+ if(process.argv[2] == "development") {
+ replaceDependencies(packageObj.devDependencies);
+ }
+ replaceDependencies(packageObj.optionalDependencies);
+
+ /* Write the fixed package.json file */
+ fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+ '';
+ };
+ in
+ ''
+ node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+ ${stdenv.lib.optionalString (dependencies != [])
+ ''
+ if [ -d node_modules ]
+ then
+ cd node_modules
+ ${stdenv.lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+ cd ..
+ fi
+ ''}
+ '';
+
+ # Recursively traverses all dependencies of a package and pinpoints all
+ # dependencies in the package.json file to the versions that are actually
+ # being used.
+
+ pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+ ''
+ if [ -d "${packageName}" ]
+ then
+ cd "${packageName}"
+ ${pinpointDependencies { inherit dependencies production; }}
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ fi
+ '';
+
+ # Extract the Node.js source code which is used to compile packages with
+ # native bindings
+ nodeSources = runCommand "node-sources" {} ''
+ tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+ mv node-* $out
+ '';
+
+ # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+ addIntegrityFieldsScript = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function augmentDependencies(baseDir, dependencies) {
+ for(var dependencyName in dependencies) {
+ var dependency = dependencies[dependencyName];
+
+ // Open package.json and augment metadata fields
+ var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+ var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+ if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+ console.log("Adding metadata fields to: "+packageJSONPath);
+ var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+ if(dependency.integrity) {
+ packageObj["_integrity"] = dependency.integrity;
+ } else {
+ packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+ }
+
+ if(dependency.resolved) {
+ packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+ } else {
+ packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+ }
+
+ if(dependency.from !== undefined) { // Adopt from property if one has been provided
+ packageObj["_from"] = dependency.from;
+ }
+
+ fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+ }
+
+ // Augment transitive dependencies
+ if(dependency.dependencies !== undefined) {
+ augmentDependencies(packageJSONDir, dependency.dependencies);
+ }
+ }
+ }
+
+ if(fs.existsSync("./package-lock.json")) {
+ var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+ if(packageLock.lockfileVersion !== 1) {
+ process.stderr.write("Sorry, I only understand lock file version 1!\n");
+ process.exit(1);
+ }
+
+ if(packageLock.dependencies !== undefined) {
+ augmentDependencies(".", packageLock.dependencies);
+ }
+ }
+ '';
+ };
+
+ # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+ reconstructPackageLock = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+ var lockObj = {
+ name: packageObj.name,
+ version: packageObj.version,
+ lockfileVersion: 1,
+ requires: true,
+ dependencies: {}
+ };
+
+ function augmentPackageJSON(filePath, dependencies) {
+ var packageJSON = path.join(filePath, "package.json");
+ if(fs.existsSync(packageJSON)) {
+ var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+ dependencies[packageObj.name] = {
+ version: packageObj.version,
+ integrity: "sha1-000000000000000000000000000=",
+ dependencies: {}
+ };
+ processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
+ }
+ }
+
+ function processDependencies(dir, dependencies) {
+ if(fs.existsSync(dir)) {
+ var files = fs.readdirSync(dir);
+
+ files.forEach(function(entry) {
+ var filePath = path.join(dir, entry);
+ var stats = fs.statSync(filePath);
+
+ if(stats.isDirectory()) {
+ if(entry.substr(0, 1) == "@") {
+ // When we encounter a namespace folder, augment all packages belonging to the scope
+ var pkgFiles = fs.readdirSync(filePath);
+
+ pkgFiles.forEach(function(entry) {
+ if(stats.isDirectory()) {
+ var pkgFilePath = path.join(filePath, entry);
+ augmentPackageJSON(pkgFilePath, dependencies);
+ }
+ });
+ } else {
+ augmentPackageJSON(filePath, dependencies);
+ }
+ }
+ });
+ }
+ }
+
+ processDependencies("node_modules", lockObj.dependencies);
+
+ fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+ '';
+ };
+
+ prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
+ let
+ forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+ in
+ ''
+ # Pinpoint the versions of all dependencies to the ones that are actually being used
+ echo "pinpointing versions of dependencies..."
+ source $pinpointDependenciesScriptPath
+
+ # Patch the shebangs of the bundled modules to prevent them from
+ # calling executables outside the Nix store as much as possible
+ patchShebangs .
+
+ # Deploy the Node.js package by running npm install. Since the
+ # dependencies have been provided already by ourselves, it should not
+ # attempt to install them again, which is good, because we want to make
+ # it Nix's responsibility. If it needs to install any dependencies
+ # anyway (e.g. because the dependency parameters are
+ # incomplete/incorrect), it fails.
+ #
+ # The other responsibilities of NPM are kept -- version checks, build
+ # steps, postprocessing etc.
+
+ export HOME=$TMPDIR
+ cd "${packageName}"
+ runHook preRebuild
+
+ ${stdenv.lib.optionalString bypassCache ''
+ ${stdenv.lib.optionalString reconstructLock ''
+ if [ -f package-lock.json ]
+ then
+ echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+ echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+ rm package-lock.json
+ else
+ echo "No package-lock.json file found, reconstructing..."
+ fi
+
+ node ${reconstructPackageLock}
+ ''}
+
+ node ${addIntegrityFieldsScript}
+ ''}
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
+
+ if [ "''${dontNpmInstall-}" != "1" ]
+ then
+ # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+ rm -f npm-shrinkwrap.json
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
+ fi
+ '';
+
+ # Builds and composes an NPM package including all its dependencies
+ buildNodePackage =
+ { name
+ , packageName
+ , version
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , preRebuild ? ""
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+ in
+ stdenv.mkDerivation ({
+ name = "node_${name}-${version}";
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ stdenv.lib.optional (stdenv.isLinux) util-linux
+ ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit nodejs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+ compositionScript = composePackage args;
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ # Create and enter a root node_modules/ folder
+ mkdir -p $out/lib/node_modules
+ cd $out/lib/node_modules
+
+ # Compose the package and all its dependencies
+ source $compositionScriptPath
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Create symlink to the deployed executable folder, if applicable
+ if [ -d "$out/lib/node_modules/.bin" ]
+ then
+ ln -s $out/lib/node_modules/.bin $out/bin
+ fi
+
+ # Create symlinks to the deployed manual page folders, if applicable
+ if [ -d "$out/lib/node_modules/${packageName}/man" ]
+ then
+ mkdir -p $out/share
+ for dir in "$out/lib/node_modules/${packageName}/man/"*
+ do
+ mkdir -p $out/share/man/$(basename "$dir")
+ for page in "$dir"/*
+ do
+ ln -s $page $out/share/man/$(basename "$dir")
+ done
+ done
+ fi
+
+ # Run post install hook, if provided
+ runHook postInstall
+ '';
+ } // extraArgs);
+
+ # Builds a development shell
+ buildNodeShell =
+ { name
+ , packageName
+ , version
+ , src
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+
+ nodeDependencies = stdenv.mkDerivation ({
+ name = "node-dependencies-${name}-${version}";
+
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ stdenv.lib.optional (stdenv.isLinux) util-linux
+ ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall unpackPhase buildPhase;
+
+ includeScript = includeDependencies { inherit dependencies; };
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ mkdir -p $out/${packageName}
+ cd $out/${packageName}
+
+ source $includeScriptPath
+
+ # Create fake package.json to make the npm commands work properly
+ cp ${src}/package.json .
+ chmod 644 package.json
+ ${stdenv.lib.optionalString bypassCache ''
+ if [ -f ${src}/package-lock.json ]
+ then
+ cp ${src}/package-lock.json .
+ fi
+ ''}
+
+ # Go to the parent folder to make sure that all packages are pinpointed
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Expose the executables that were installed
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ mv ${packageName} lib
+ ln -s $out/lib/node_modules/.bin $out/bin
+ '';
+ } // extraArgs);
+ in
+ stdenv.mkDerivation {
+ name = "node-shell-${name}-${version}";
+
+ buildInputs = [ python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) util-linux ++ buildInputs;
+ buildCommand = ''
+ mkdir -p $out/bin
+ cat > $out/bin/shell <<EOF
+ #! ${stdenv.shell} -e
+ $shellHook
+ exec ${stdenv.shell}
+ EOF
+ chmod +x $out/bin/shell
+ '';
+
+ # Provide the dependencies in a development shell through the NODE_PATH environment variable
+ inherit nodeDependencies;
+ shellHook = stdenv.lib.optionalString (dependencies != []) ''
+ export NODE_PATH=${nodeDependencies}/lib/node_modules
+ export PATH="${nodeDependencies}/bin:$PATH"
+ '';
+ };
+in
+{
+ buildNodeSourceDist = stdenv.lib.makeOverridable buildNodeSourceDist;
+ buildNodePackage = stdenv.lib.makeOverridable buildNodePackage;
+ buildNodeShell = stdenv.lib.makeOverridable buildNodeShell;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-packages.nix
new file mode 100644
index 000000000000..df50c8e473ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/node-packages.nix
@@ -0,0 +1,9071 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {
+ "@babel/cli-7.11.6" = {
+ name = "_at_babel_slash_cli";
+ packageName = "@babel/cli";
+ version = "7.11.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/cli/-/cli-7.11.6.tgz";
+ sha512 = "+w7BZCvkewSmaRM6H4L2QM3RL90teqEIHDIFXAmrW33+0jhlymnDAEdqVeCZATvxhQuio1ifoGVlJJbIiH9Ffg==";
+ };
+ };
+ "@babel/code-frame-7.10.4" = {
+ name = "_at_babel_slash_code-frame";
+ packageName = "@babel/code-frame";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+ sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
+ };
+ };
+ "@babel/compat-data-7.11.0" = {
+ name = "_at_babel_slash_compat-data";
+ packageName = "@babel/compat-data";
+ version = "7.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz";
+ sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
+ };
+ };
+ "@babel/core-7.11.6" = {
+ name = "_at_babel_slash_core";
+ packageName = "@babel/core";
+ version = "7.11.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz";
+ sha512 = "Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==";
+ };
+ };
+ "@babel/generator-7.11.6" = {
+ name = "_at_babel_slash_generator";
+ packageName = "@babel/generator";
+ version = "7.11.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz";
+ sha512 = "DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==";
+ };
+ };
+ "@babel/helper-annotate-as-pure-7.10.4" = {
+ name = "_at_babel_slash_helper-annotate-as-pure";
+ packageName = "@babel/helper-annotate-as-pure";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
+ sha512 = "XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==";
+ };
+ };
+ "@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" = {
+ name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
+ packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
+ sha512 = "L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==";
+ };
+ };
+ "@babel/helper-compilation-targets-7.10.4" = {
+ name = "_at_babel_slash_helper-compilation-targets";
+ packageName = "@babel/helper-compilation-targets";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
+ sha512 = "a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==";
+ };
+ };
+ "@babel/helper-create-class-features-plugin-7.10.5" = {
+ name = "_at_babel_slash_helper-create-class-features-plugin";
+ packageName = "@babel/helper-create-class-features-plugin";
+ version = "7.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz";
+ sha512 = "0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==";
+ };
+ };
+ "@babel/helper-create-regexp-features-plugin-7.10.4" = {
+ name = "_at_babel_slash_helper-create-regexp-features-plugin";
+ packageName = "@babel/helper-create-regexp-features-plugin";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
+ sha512 = "2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==";
+ };
+ };
+ "@babel/helper-define-map-7.10.5" = {
+ name = "_at_babel_slash_helper-define-map";
+ packageName = "@babel/helper-define-map";
+ version = "7.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz";
+ sha512 = "fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==";
+ };
+ };
+ "@babel/helper-explode-assignable-expression-7.11.4" = {
+ name = "_at_babel_slash_helper-explode-assignable-expression";
+ packageName = "@babel/helper-explode-assignable-expression";
+ version = "7.11.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz";
+ sha512 = "ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==";
+ };
+ };
+ "@babel/helper-function-name-7.10.4" = {
+ name = "_at_babel_slash_helper-function-name";
+ packageName = "@babel/helper-function-name";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+ sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==";
+ };
+ };
+ "@babel/helper-get-function-arity-7.10.4" = {
+ name = "_at_babel_slash_helper-get-function-arity";
+ packageName = "@babel/helper-get-function-arity";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+ sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==";
+ };
+ };
+ "@babel/helper-hoist-variables-7.10.4" = {
+ name = "_at_babel_slash_helper-hoist-variables";
+ packageName = "@babel/helper-hoist-variables";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
+ sha512 = "wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==";
+ };
+ };
+ "@babel/helper-member-expression-to-functions-7.11.0" = {
+ name = "_at_babel_slash_helper-member-expression-to-functions";
+ packageName = "@babel/helper-member-expression-to-functions";
+ version = "7.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+ sha512 = "JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==";
+ };
+ };
+ "@babel/helper-module-imports-7.10.4" = {
+ name = "_at_babel_slash_helper-module-imports";
+ packageName = "@babel/helper-module-imports";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+ sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
+ };
+ };
+ "@babel/helper-module-transforms-7.11.0" = {
+ name = "_at_babel_slash_helper-module-transforms";
+ packageName = "@babel/helper-module-transforms";
+ version = "7.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+ sha512 = "02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==";
+ };
+ };
+ "@babel/helper-optimise-call-expression-7.10.4" = {
+ name = "_at_babel_slash_helper-optimise-call-expression";
+ packageName = "@babel/helper-optimise-call-expression";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+ sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
+ };
+ };
+ "@babel/helper-plugin-utils-7.10.4" = {
+ name = "_at_babel_slash_helper-plugin-utils";
+ packageName = "@babel/helper-plugin-utils";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+ sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
+ };
+ };
+ "@babel/helper-regex-7.10.5" = {
+ name = "_at_babel_slash_helper-regex";
+ packageName = "@babel/helper-regex";
+ version = "7.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+ sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
+ };
+ };
+ "@babel/helper-remap-async-to-generator-7.11.4" = {
+ name = "_at_babel_slash_helper-remap-async-to-generator";
+ packageName = "@babel/helper-remap-async-to-generator";
+ version = "7.11.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz";
+ sha512 = "tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==";
+ };
+ };
+ "@babel/helper-replace-supers-7.10.4" = {
+ name = "_at_babel_slash_helper-replace-supers";
+ packageName = "@babel/helper-replace-supers";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+ sha512 = "sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==";
+ };
+ };
+ "@babel/helper-simple-access-7.10.4" = {
+ name = "_at_babel_slash_helper-simple-access";
+ packageName = "@babel/helper-simple-access";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+ sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
+ };
+ };
+ "@babel/helper-skip-transparent-expression-wrappers-7.11.0" = {
+ name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
+ packageName = "@babel/helper-skip-transparent-expression-wrappers";
+ version = "7.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz";
+ sha512 = "0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==";
+ };
+ };
+ "@babel/helper-split-export-declaration-7.11.0" = {
+ name = "_at_babel_slash_helper-split-export-declaration";
+ packageName = "@babel/helper-split-export-declaration";
+ version = "7.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
+ sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==";
+ };
+ };
+ "@babel/helper-validator-identifier-7.10.4" = {
+ name = "_at_babel_slash_helper-validator-identifier";
+ packageName = "@babel/helper-validator-identifier";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+ sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
+ };
+ };
+ "@babel/helper-wrap-function-7.10.4" = {
+ name = "_at_babel_slash_helper-wrap-function";
+ packageName = "@babel/helper-wrap-function";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+ sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
+ };
+ };
+ "@babel/helpers-7.10.4" = {
+ name = "_at_babel_slash_helpers";
+ packageName = "@babel/helpers";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+ sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
+ };
+ };
+ "@babel/highlight-7.10.4" = {
+ name = "_at_babel_slash_highlight";
+ packageName = "@babel/highlight";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+ sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
+ };
+ };
+ "@babel/parser-7.11.5" = {
+ name = "_at_babel_slash_parser";
+ packageName = "@babel/parser";
+ version = "7.11.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz";
+ sha512 = "X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==";
+ };
+ };
+ "@babel/plugin-proposal-async-generator-functions-7.10.5" = {
+ name = "_at_babel_slash_plugin-proposal-async-generator-functions";
+ packageName = "@babel/plugin-proposal-async-generator-functions";
+ version = "7.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
+ sha512 = "cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==";
+ };
+ };
+ "@babel/plugin-proposal-class-properties-7.10.4" = {
+ name = "_at_babel_slash_plugin-proposal-class-properties";
+ packageName = "@babel/plugin-proposal-class-properties";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz";
+ sha512 = "vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==";
+ };
+ };
+ "@babel/plugin-proposal-dynamic-import-7.10.4" = {
+ name = "_at_babel_slash_plugin-proposal-dynamic-import";
+ packageName = "@babel/plugin-proposal-dynamic-import";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
+ sha512 = "up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==";
+ };
+ };
+ "@babel/plugin-proposal-export-namespace-from-7.10.4" = {
+ name = "_at_babel_slash_plugin-proposal-export-namespace-from";
+ packageName = "@babel/plugin-proposal-export-namespace-from";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz";
+ sha512 = "aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==";
+ };
+ };
+ "@babel/plugin-proposal-json-strings-7.10.4" = {
+ name = "_at_babel_slash_plugin-proposal-json-strings";
+ packageName = "@babel/plugin-proposal-json-strings";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
+ sha512 = "fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==";
+ };
+ };
+ "@babel/plugin-proposal-logical-assignment-operators-7.11.0" = {
+ name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
+ packageName = "@babel/plugin-proposal-logical-assignment-operators";
+ version = "7.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz";
+ sha512 = "/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==";
+ };
+ };
+ "@babel/plugin-proposal-nullish-coalescing-operator-7.10.4" = {
+ name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
+ packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
+ sha512 = "wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==";
+ };
+ };
+ "@babel/plugin-proposal-numeric-separator-7.10.4" = {
+ name = "_at_babel_slash_plugin-proposal-numeric-separator";
+ packageName = "@babel/plugin-proposal-numeric-separator";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
+ sha512 = "73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==";
+ };
+ };
+ "@babel/plugin-proposal-object-rest-spread-7.11.0" = {
+ name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+ packageName = "@babel/plugin-proposal-object-rest-spread";
+ version = "7.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz";
+ sha512 = "wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==";
+ };
+ };
+ "@babel/plugin-proposal-object-rest-spread-7.9.0" = {
+ name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+ packageName = "@babel/plugin-proposal-object-rest-spread";
+ version = "7.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz";
+ sha512 = "UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==";
+ };
+ };
+ "@babel/plugin-proposal-optional-catch-binding-7.10.4" = {
+ name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
+ packageName = "@babel/plugin-proposal-optional-catch-binding";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
+ sha512 = "LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==";
+ };
+ };
+ "@babel/plugin-proposal-optional-chaining-7.11.0" = {
+ name = "_at_babel_slash_plugin-proposal-optional-chaining";
+ packageName = "@babel/plugin-proposal-optional-chaining";
+ version = "7.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz";
+ sha512 = "v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==";
+ };
+ };
+ "@babel/plugin-proposal-private-methods-7.10.4" = {
+ name = "_at_babel_slash_plugin-proposal-private-methods";
+ packageName = "@babel/plugin-proposal-private-methods";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz";
+ sha512 = "wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==";
+ };
+ };
+ "@babel/plugin-proposal-unicode-property-regex-7.10.4" = {
+ name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
+ packageName = "@babel/plugin-proposal-unicode-property-regex";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
+ sha512 = "H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==";
+ };
+ };
+ "@babel/plugin-syntax-async-generators-7.8.4" = {
+ name = "_at_babel_slash_plugin-syntax-async-generators";
+ packageName = "@babel/plugin-syntax-async-generators";
+ version = "7.8.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
+ sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==";
+ };
+ };
+ "@babel/plugin-syntax-class-properties-7.10.4" = {
+ name = "_at_babel_slash_plugin-syntax-class-properties";
+ packageName = "@babel/plugin-syntax-class-properties";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz";
+ sha512 = "GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==";
+ };
+ };
+ "@babel/plugin-syntax-dynamic-import-7.8.3" = {
+ name = "_at_babel_slash_plugin-syntax-dynamic-import";
+ packageName = "@babel/plugin-syntax-dynamic-import";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
+ sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
+ };
+ };
+ "@babel/plugin-syntax-export-namespace-from-7.8.3" = {
+ name = "_at_babel_slash_plugin-syntax-export-namespace-from";
+ packageName = "@babel/plugin-syntax-export-namespace-from";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz";
+ sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==";
+ };
+ };
+ "@babel/plugin-syntax-json-strings-7.8.3" = {
+ name = "_at_babel_slash_plugin-syntax-json-strings";
+ packageName = "@babel/plugin-syntax-json-strings";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
+ sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
+ };
+ };
+ "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = {
+ name = "_at_babel_slash_plugin-syntax-logical-assignment-operators";
+ packageName = "@babel/plugin-syntax-logical-assignment-operators";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz";
+ sha512 = "d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==";
+ };
+ };
+ "@babel/plugin-syntax-nullish-coalescing-operator-7.8.3" = {
+ name = "_at_babel_slash_plugin-syntax-nullish-coalescing-operator";
+ packageName = "@babel/plugin-syntax-nullish-coalescing-operator";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
+ sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
+ };
+ };
+ "@babel/plugin-syntax-numeric-separator-7.10.4" = {
+ name = "_at_babel_slash_plugin-syntax-numeric-separator";
+ packageName = "@babel/plugin-syntax-numeric-separator";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz";
+ sha512 = "9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==";
+ };
+ };
+ "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
+ name = "_at_babel_slash_plugin-syntax-object-rest-spread";
+ packageName = "@babel/plugin-syntax-object-rest-spread";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+ sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==";
+ };
+ };
+ "@babel/plugin-syntax-optional-catch-binding-7.8.3" = {
+ name = "_at_babel_slash_plugin-syntax-optional-catch-binding";
+ packageName = "@babel/plugin-syntax-optional-catch-binding";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
+ sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==";
+ };
+ };
+ "@babel/plugin-syntax-optional-chaining-7.8.3" = {
+ name = "_at_babel_slash_plugin-syntax-optional-chaining";
+ packageName = "@babel/plugin-syntax-optional-chaining";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
+ sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
+ };
+ };
+ "@babel/plugin-syntax-top-level-await-7.10.4" = {
+ name = "_at_babel_slash_plugin-syntax-top-level-await";
+ packageName = "@babel/plugin-syntax-top-level-await";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
+ sha512 = "ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==";
+ };
+ };
+ "@babel/plugin-transform-arrow-functions-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-arrow-functions";
+ packageName = "@babel/plugin-transform-arrow-functions";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
+ sha512 = "9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==";
+ };
+ };
+ "@babel/plugin-transform-async-to-generator-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-async-to-generator";
+ packageName = "@babel/plugin-transform-async-to-generator";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
+ sha512 = "F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==";
+ };
+ };
+ "@babel/plugin-transform-block-scoped-functions-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-block-scoped-functions";
+ packageName = "@babel/plugin-transform-block-scoped-functions";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
+ sha512 = "WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==";
+ };
+ };
+ "@babel/plugin-transform-block-scoping-7.11.1" = {
+ name = "_at_babel_slash_plugin-transform-block-scoping";
+ packageName = "@babel/plugin-transform-block-scoping";
+ version = "7.11.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz";
+ sha512 = "00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==";
+ };
+ };
+ "@babel/plugin-transform-classes-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-classes";
+ packageName = "@babel/plugin-transform-classes";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
+ sha512 = "2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==";
+ };
+ };
+ "@babel/plugin-transform-computed-properties-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-computed-properties";
+ packageName = "@babel/plugin-transform-computed-properties";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
+ sha512 = "JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==";
+ };
+ };
+ "@babel/plugin-transform-destructuring-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-destructuring";
+ packageName = "@babel/plugin-transform-destructuring";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
+ sha512 = "+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==";
+ };
+ };
+ "@babel/plugin-transform-dotall-regex-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-dotall-regex";
+ packageName = "@babel/plugin-transform-dotall-regex";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
+ sha512 = "ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==";
+ };
+ };
+ "@babel/plugin-transform-duplicate-keys-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-duplicate-keys";
+ packageName = "@babel/plugin-transform-duplicate-keys";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
+ sha512 = "GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==";
+ };
+ };
+ "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-exponentiation-operator";
+ packageName = "@babel/plugin-transform-exponentiation-operator";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
+ sha512 = "S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==";
+ };
+ };
+ "@babel/plugin-transform-for-of-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-for-of";
+ packageName = "@babel/plugin-transform-for-of";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
+ sha512 = "ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==";
+ };
+ };
+ "@babel/plugin-transform-function-name-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-function-name";
+ packageName = "@babel/plugin-transform-function-name";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
+ sha512 = "OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==";
+ };
+ };
+ "@babel/plugin-transform-literals-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-literals";
+ packageName = "@babel/plugin-transform-literals";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
+ sha512 = "Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==";
+ };
+ };
+ "@babel/plugin-transform-member-expression-literals-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-member-expression-literals";
+ packageName = "@babel/plugin-transform-member-expression-literals";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
+ sha512 = "0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==";
+ };
+ };
+ "@babel/plugin-transform-modules-amd-7.10.5" = {
+ name = "_at_babel_slash_plugin-transform-modules-amd";
+ packageName = "@babel/plugin-transform-modules-amd";
+ version = "7.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
+ sha512 = "elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==";
+ };
+ };
+ "@babel/plugin-transform-modules-commonjs-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-modules-commonjs";
+ packageName = "@babel/plugin-transform-modules-commonjs";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+ sha512 = "Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==";
+ };
+ };
+ "@babel/plugin-transform-modules-systemjs-7.10.5" = {
+ name = "_at_babel_slash_plugin-transform-modules-systemjs";
+ packageName = "@babel/plugin-transform-modules-systemjs";
+ version = "7.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
+ sha512 = "f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==";
+ };
+ };
+ "@babel/plugin-transform-modules-umd-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-modules-umd";
+ packageName = "@babel/plugin-transform-modules-umd";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
+ sha512 = "mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==";
+ };
+ };
+ "@babel/plugin-transform-named-capturing-groups-regex-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
+ packageName = "@babel/plugin-transform-named-capturing-groups-regex";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
+ sha512 = "V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==";
+ };
+ };
+ "@babel/plugin-transform-new-target-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-new-target";
+ packageName = "@babel/plugin-transform-new-target";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
+ sha512 = "YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==";
+ };
+ };
+ "@babel/plugin-transform-object-super-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-object-super";
+ packageName = "@babel/plugin-transform-object-super";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
+ sha512 = "5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==";
+ };
+ };
+ "@babel/plugin-transform-parameters-7.10.5" = {
+ name = "_at_babel_slash_plugin-transform-parameters";
+ packageName = "@babel/plugin-transform-parameters";
+ version = "7.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
+ sha512 = "xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==";
+ };
+ };
+ "@babel/plugin-transform-property-literals-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-property-literals";
+ packageName = "@babel/plugin-transform-property-literals";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
+ sha512 = "ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==";
+ };
+ };
+ "@babel/plugin-transform-regenerator-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-regenerator";
+ packageName = "@babel/plugin-transform-regenerator";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+ sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
+ };
+ };
+ "@babel/plugin-transform-reserved-words-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-reserved-words";
+ packageName = "@babel/plugin-transform-reserved-words";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
+ sha512 = "hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==";
+ };
+ };
+ "@babel/plugin-transform-shorthand-properties-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-shorthand-properties";
+ packageName = "@babel/plugin-transform-shorthand-properties";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
+ sha512 = "AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==";
+ };
+ };
+ "@babel/plugin-transform-spread-7.11.0" = {
+ name = "_at_babel_slash_plugin-transform-spread";
+ packageName = "@babel/plugin-transform-spread";
+ version = "7.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz";
+ sha512 = "UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==";
+ };
+ };
+ "@babel/plugin-transform-sticky-regex-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-sticky-regex";
+ packageName = "@babel/plugin-transform-sticky-regex";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
+ sha512 = "Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==";
+ };
+ };
+ "@babel/plugin-transform-template-literals-7.10.5" = {
+ name = "_at_babel_slash_plugin-transform-template-literals";
+ packageName = "@babel/plugin-transform-template-literals";
+ version = "7.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
+ sha512 = "V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==";
+ };
+ };
+ "@babel/plugin-transform-typeof-symbol-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-typeof-symbol";
+ packageName = "@babel/plugin-transform-typeof-symbol";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
+ sha512 = "QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==";
+ };
+ };
+ "@babel/plugin-transform-unicode-escapes-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-unicode-escapes";
+ packageName = "@babel/plugin-transform-unicode-escapes";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz";
+ sha512 = "y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==";
+ };
+ };
+ "@babel/plugin-transform-unicode-regex-7.10.4" = {
+ name = "_at_babel_slash_plugin-transform-unicode-regex";
+ packageName = "@babel/plugin-transform-unicode-regex";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
+ sha512 = "wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==";
+ };
+ };
+ "@babel/preset-env-7.11.5" = {
+ name = "_at_babel_slash_preset-env";
+ packageName = "@babel/preset-env";
+ version = "7.11.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz";
+ sha512 = "kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==";
+ };
+ };
+ "@babel/preset-modules-0.1.4" = {
+ name = "_at_babel_slash_preset-modules";
+ packageName = "@babel/preset-modules";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+ sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
+ };
+ };
+ "@babel/register-7.11.5" = {
+ name = "_at_babel_slash_register";
+ packageName = "@babel/register";
+ version = "7.11.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz";
+ sha512 = "CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w==";
+ };
+ };
+ "@babel/runtime-7.11.2" = {
+ name = "_at_babel_slash_runtime";
+ packageName = "@babel/runtime";
+ version = "7.11.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz";
+ sha512 = "TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==";
+ };
+ };
+ "@babel/template-7.10.4" = {
+ name = "_at_babel_slash_template";
+ packageName = "@babel/template";
+ version = "7.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+ sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
+ };
+ };
+ "@babel/traverse-7.11.5" = {
+ name = "_at_babel_slash_traverse";
+ packageName = "@babel/traverse";
+ version = "7.11.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz";
+ sha512 = "EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==";
+ };
+ };
+ "@babel/types-7.11.5" = {
+ name = "_at_babel_slash_types";
+ packageName = "@babel/types";
+ version = "7.11.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz";
+ sha512 = "bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==";
+ };
+ };
+ "@commitlint/execute-rule-11.0.0" = {
+ name = "_at_commitlint_slash_execute-rule";
+ packageName = "@commitlint/execute-rule";
+ version = "11.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-11.0.0.tgz";
+ sha512 = "g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ==";
+ };
+ };
+ "@commitlint/load-11.0.0" = {
+ name = "_at_commitlint_slash_load";
+ packageName = "@commitlint/load";
+ version = "11.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@commitlint/load/-/load-11.0.0.tgz";
+ sha512 = "t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg==";
+ };
+ };
+ "@commitlint/resolve-extends-11.0.0" = {
+ name = "_at_commitlint_slash_resolve-extends";
+ packageName = "@commitlint/resolve-extends";
+ version = "11.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-11.0.0.tgz";
+ sha512 = "WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw==";
+ };
+ };
+ "@commitlint/types-11.0.0" = {
+ name = "_at_commitlint_slash_types";
+ packageName = "@commitlint/types";
+ version = "11.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz";
+ sha512 = "VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==";
+ };
+ };
+ "@istanbuljs/load-nyc-config-1.1.0" = {
+ name = "_at_istanbuljs_slash_load-nyc-config";
+ packageName = "@istanbuljs/load-nyc-config";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
+ sha512 = "VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==";
+ };
+ };
+ "@istanbuljs/nyc-config-babel-2.1.1" = {
+ name = "_at_istanbuljs_slash_nyc-config-babel";
+ packageName = "@istanbuljs/nyc-config-babel";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-2.1.1.tgz";
+ sha512 = "cWcUCqHOYB+Mpumsv03uaE7rMvtmJn7pZ3llc+9gyqMFC93IVcUuuJ/mknoWsiuajcEjRCqKmhGaiAaXG6kzLA==";
+ };
+ };
+ "@istanbuljs/schema-0.1.2" = {
+ name = "_at_istanbuljs_slash_schema";
+ packageName = "@istanbuljs/schema";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz";
+ sha512 = "tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==";
+ };
+ };
+ "@nodelib/fs.scandir-2.1.3" = {
+ name = "_at_nodelib_slash_fs.scandir";
+ packageName = "@nodelib/fs.scandir";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
+ sha512 = "eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==";
+ };
+ };
+ "@nodelib/fs.stat-2.0.3" = {
+ name = "_at_nodelib_slash_fs.stat";
+ packageName = "@nodelib/fs.stat";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
+ sha512 = "bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==";
+ };
+ };
+ "@nodelib/fs.walk-1.2.4" = {
+ name = "_at_nodelib_slash_fs.walk";
+ packageName = "@nodelib/fs.walk";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
+ sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
+ };
+ };
+ "@octokit/auth-token-2.4.2" = {
+ name = "_at_octokit_slash_auth-token";
+ packageName = "@octokit/auth-token";
+ version = "2.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz";
+ sha512 = "jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==";
+ };
+ };
+ "@octokit/endpoint-6.0.6" = {
+ name = "_at_octokit_slash_endpoint";
+ packageName = "@octokit/endpoint";
+ version = "6.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.6.tgz";
+ sha512 = "7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ==";
+ };
+ };
+ "@octokit/plugin-paginate-rest-1.1.2" = {
+ name = "_at_octokit_slash_plugin-paginate-rest";
+ packageName = "@octokit/plugin-paginate-rest";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz";
+ sha512 = "jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==";
+ };
+ };
+ "@octokit/plugin-request-log-1.0.0" = {
+ name = "_at_octokit_slash_plugin-request-log";
+ packageName = "@octokit/plugin-request-log";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz";
+ sha512 = "ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==";
+ };
+ };
+ "@octokit/plugin-rest-endpoint-methods-2.4.0" = {
+ name = "_at_octokit_slash_plugin-rest-endpoint-methods";
+ packageName = "@octokit/plugin-rest-endpoint-methods";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz";
+ sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
+ };
+ };
+ "@octokit/request-5.4.8" = {
+ name = "_at_octokit_slash_request";
+ packageName = "@octokit/request";
+ version = "5.4.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.8.tgz";
+ sha512 = "mWbxjsARJzAq5xp+ZrQfotc+MHFz3/Am2qATJwflv4PZ1TjhgIJnr60PCVdZT9Z/tl+uPXooaVgeviy1KkDlLQ==";
+ };
+ };
+ "@octokit/request-error-1.2.1" = {
+ name = "_at_octokit_slash_request-error";
+ packageName = "@octokit/request-error";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz";
+ sha512 = "+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==";
+ };
+ };
+ "@octokit/request-error-2.0.2" = {
+ name = "_at_octokit_slash_request-error";
+ packageName = "@octokit/request-error";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz";
+ sha512 = "2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==";
+ };
+ };
+ "@octokit/rest-16.43.2" = {
+ name = "_at_octokit_slash_rest";
+ packageName = "@octokit/rest";
+ version = "16.43.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz";
+ sha512 = "ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==";
+ };
+ };
+ "@octokit/types-2.16.2" = {
+ name = "_at_octokit_slash_types";
+ packageName = "@octokit/types";
+ version = "2.16.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz";
+ sha512 = "O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==";
+ };
+ };
+ "@octokit/types-5.4.1" = {
+ name = "_at_octokit_slash_types";
+ packageName = "@octokit/types";
+ version = "5.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@octokit/types/-/types-5.4.1.tgz";
+ sha512 = "OlMlSySBJoJ6uozkr/i03nO5dlYQyE05vmQNZhAh9MyO4DPBP88QlwsDVLmVjIMFssvIZB6WO0ctIGMRG+xsJQ==";
+ };
+ };
+ "@semantic-release/commit-analyzer-6.3.3" = {
+ name = "_at_semantic-release_slash_commit-analyzer";
+ packageName = "@semantic-release/commit-analyzer";
+ version = "6.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.3.tgz";
+ sha512 = "Pyv1ZL2u5AIOY4YbxFCAB5J1PEh5yON8ylbfiPiriDGGW6Uu1U3Y8lysMtWu+FUD5x7tSnyIzhqx0+fxPxqbgw==";
+ };
+ };
+ "@semantic-release/error-2.2.0" = {
+ name = "_at_semantic-release_slash_error";
+ packageName = "@semantic-release/error";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz";
+ sha512 = "9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==";
+ };
+ };
+ "@semantic-release/github-5.5.8" = {
+ name = "_at_semantic-release_slash_github";
+ packageName = "@semantic-release/github";
+ version = "5.5.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@semantic-release/github/-/github-5.5.8.tgz";
+ sha512 = "YxbBXbCThs/Xk3E4QU01AMIUM8eb0UTvjHJtclTDR3/DEW7kUpmXQqBMnSh3qCTuk4scRFIoaF0fGU/0xByZug==";
+ };
+ };
+ "@semantic-release/npm-5.3.5" = {
+ name = "_at_semantic-release_slash_npm";
+ packageName = "@semantic-release/npm";
+ version = "5.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.3.5.tgz";
+ sha512 = "AOREQ6rUT8OAiqXvWCp0kMNjcdnLLq1JdP0voZL4l5zf6Tgs/65YA7ctP+9shthW01Ps85Nu0pILW3p9GkaYuw==";
+ };
+ };
+ "@semantic-release/release-notes-generator-7.3.5" = {
+ name = "_at_semantic-release_slash_release-notes-generator";
+ packageName = "@semantic-release/release-notes-generator";
+ version = "7.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.3.5.tgz";
+ sha512 = "LGjgPBGjjmjap/76O0Md3wc04Y7IlLnzZceLsAkcYRwGQdRPTTFUJKqDQTuieWTs7zfHzQoZqsqPfFxEN+g2+Q==";
+ };
+ };
+ "@sinonjs/commons-1.8.1" = {
+ name = "_at_sinonjs_slash_commons";
+ packageName = "@sinonjs/commons";
+ version = "1.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz";
+ sha512 = "892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==";
+ };
+ };
+ "@sinonjs/formatio-3.2.2" = {
+ name = "_at_sinonjs_slash_formatio";
+ packageName = "@sinonjs/formatio";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz";
+ sha512 = "B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==";
+ };
+ };
+ "@sinonjs/samsam-2.1.3" = {
+ name = "_at_sinonjs_slash_samsam";
+ packageName = "@sinonjs/samsam";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.3.tgz";
+ sha512 = "8zNeBkSKhU9a5cRNbpCKau2WWPfan+Q2zDlcXvXyhn9EsMqgYs4qzo0XHNVlXC6ABQL8fT6nV+zzo5RTHJzyXw==";
+ };
+ };
+ "@sinonjs/samsam-3.3.3" = {
+ name = "_at_sinonjs_slash_samsam";
+ packageName = "@sinonjs/samsam";
+ version = "3.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz";
+ sha512 = "bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==";
+ };
+ };
+ "@sinonjs/text-encoding-0.7.1" = {
+ name = "_at_sinonjs_slash_text-encoding";
+ packageName = "@sinonjs/text-encoding";
+ version = "0.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz";
+ sha512 = "+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==";
+ };
+ };
+ "@types/color-name-1.1.1" = {
+ name = "_at_types_slash_color-name";
+ packageName = "@types/color-name";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz";
+ sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
+ };
+ };
+ "@types/glob-7.1.3" = {
+ name = "_at_types_slash_glob";
+ packageName = "@types/glob";
+ version = "7.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+ sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
+ };
+ };
+ "@types/minimatch-3.0.3" = {
+ name = "_at_types_slash_minimatch";
+ packageName = "@types/minimatch";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
+ sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
+ };
+ };
+ "@types/minimist-1.2.0" = {
+ name = "_at_types_slash_minimist";
+ packageName = "@types/minimist";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "69a23a3ad29caf0097f06eda59b361ee2f0639f6";
+ };
+ };
+ "@types/node-14.10.0" = {
+ name = "_at_types_slash_node";
+ packageName = "@types/node";
+ version = "14.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/node/-/node-14.10.0.tgz";
+ sha512 = "SOIyrdADB4cq6eY1F+9iU48iIomFAPltu11LCvA9PKcyEwHadjCFzNVPotAR+oEJA0bCP4Xvvgy+vwu1ZjVh8g==";
+ };
+ };
+ "@types/normalize-package-data-2.4.0" = {
+ name = "_at_types_slash_normalize-package-data";
+ packageName = "@types/normalize-package-data";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+ sha512 = "f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==";
+ };
+ };
+ "@types/parse-json-4.0.0" = {
+ name = "_at_types_slash_parse-json";
+ packageName = "@types/parse-json";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz";
+ sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==";
+ };
+ };
+ "@types/retry-0.12.0" = {
+ name = "_at_types_slash_retry";
+ packageName = "@types/retry";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz";
+ sha512 = "wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==";
+ };
+ };
+ "JSONStream-1.3.5" = {
+ name = "JSONStream";
+ packageName = "JSONStream";
+ version = "1.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz";
+ sha512 = "E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==";
+ };
+ };
+ "abbrev-1.1.1" = {
+ name = "abbrev";
+ packageName = "abbrev";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+ sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+ };
+ };
+ "agent-base-5.1.1" = {
+ name = "agent-base";
+ packageName = "agent-base";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz";
+ sha512 = "TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==";
+ };
+ };
+ "aggregate-error-3.1.0" = {
+ name = "aggregate-error";
+ packageName = "aggregate-error";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz";
+ sha512 = "4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==";
+ };
+ };
+ "ansi-align-2.0.0" = {
+ name = "ansi-align";
+ packageName = "ansi-align";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz";
+ sha1 = "c36aeccba563b89ceb556f3690f0b1d9e3547f7f";
+ };
+ };
+ "ansi-colors-3.2.3" = {
+ name = "ansi-colors";
+ packageName = "ansi-colors";
+ version = "3.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz";
+ sha512 = "LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==";
+ };
+ };
+ "ansi-escapes-3.2.0" = {
+ name = "ansi-escapes";
+ packageName = "ansi-escapes";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
+ sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==";
+ };
+ };
+ "ansi-regex-2.1.1" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ };
+ "ansi-regex-3.0.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ };
+ "ansi-regex-4.1.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+ sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+ };
+ };
+ "ansi-regex-5.0.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+ sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+ };
+ };
+ "ansi-styles-3.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "3.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+ };
+ };
+ "ansi-styles-4.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz";
+ sha512 = "9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==";
+ };
+ };
+ "ansicolors-0.3.2" = {
+ name = "ansicolors";
+ packageName = "ansicolors";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz";
+ sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979";
+ };
+ };
+ "anymatch-2.0.0" = {
+ name = "anymatch";
+ packageName = "anymatch";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
+ sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
+ };
+ };
+ "append-transform-2.0.0" = {
+ name = "append-transform";
+ packageName = "append-transform";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz";
+ sha512 = "7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==";
+ };
+ };
+ "archy-1.0.0" = {
+ name = "archy";
+ packageName = "archy";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz";
+ sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+ };
+ };
+ "argparse-1.0.10" = {
+ name = "argparse";
+ packageName = "argparse";
+ version = "1.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+ sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+ };
+ };
+ "argv-formatter-1.0.0" = {
+ name = "argv-formatter";
+ packageName = "argv-formatter";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz";
+ sha1 = "a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9";
+ };
+ };
+ "arr-diff-4.0.0" = {
+ name = "arr-diff";
+ packageName = "arr-diff";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz";
+ sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+ };
+ };
+ "arr-flatten-1.1.0" = {
+ name = "arr-flatten";
+ packageName = "arr-flatten";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
+ sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
+ };
+ };
+ "arr-union-3.1.0" = {
+ name = "arr-union";
+ packageName = "arr-union";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz";
+ sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+ };
+ };
+ "array-from-2.1.1" = {
+ name = "array-from";
+ packageName = "array-from";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz";
+ sha1 = "cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195";
+ };
+ };
+ "array-ify-1.0.0" = {
+ name = "array-ify";
+ packageName = "array-ify";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz";
+ sha1 = "9e528762b4a9066ad163a6962a364418e9626ece";
+ };
+ };
+ "array-union-2.1.0" = {
+ name = "array-union";
+ packageName = "array-union";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
+ sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
+ };
+ };
+ "array-unique-0.3.2" = {
+ name = "array-unique";
+ packageName = "array-unique";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz";
+ sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+ };
+ };
+ "arrify-1.0.1" = {
+ name = "arrify";
+ packageName = "arrify";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz";
+ sha1 = "898508da2226f380df904728456849c1501a4b0d";
+ };
+ };
+ "asn1-0.1.11" = {
+ name = "asn1";
+ packageName = "asn1";
+ version = "0.1.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz";
+ sha1 = "559be18376d08a4ec4dbe80877d27818639b2df7";
+ };
+ };
+ "assert-plus-0.1.5" = {
+ name = "assert-plus";
+ packageName = "assert-plus";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz";
+ sha1 = "ee74009413002d84cec7219c6ac811812e723160";
+ };
+ };
+ "assertion-error-1.1.0" = {
+ name = "assertion-error";
+ packageName = "assertion-error";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz";
+ sha512 = "jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==";
+ };
+ };
+ "assign-symbols-1.0.0" = {
+ name = "assign-symbols";
+ packageName = "assign-symbols";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz";
+ sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+ };
+ };
+ "async-0.9.2" = {
+ name = "async";
+ packageName = "async";
+ version = "0.9.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async/-/async-0.9.2.tgz";
+ sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+ };
+ };
+ "async-each-1.0.3" = {
+ name = "async-each";
+ packageName = "async-each";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
+ sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
+ };
+ };
+ "atob-2.1.2" = {
+ name = "atob";
+ packageName = "atob";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
+ sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
+ };
+ };
+ "atob-lite-2.0.0" = {
+ name = "atob-lite";
+ packageName = "atob-lite";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz";
+ sha1 = "0fef5ad46f1bd7a8502c65727f0367d5ee43d696";
+ };
+ };
+ "aws-sign2-0.5.0" = {
+ name = "aws-sign2";
+ packageName = "aws-sign2";
+ version = "0.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz";
+ sha1 = "c57103f7a17fc037f02d7c2e64b602ea223f7d63";
+ };
+ };
+ "axios-0.19.0" = {
+ name = "axios";
+ packageName = "axios";
+ version = "0.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz";
+ sha512 = "1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==";
+ };
+ };
+ "babel-plugin-dynamic-import-node-2.3.3" = {
+ name = "babel-plugin-dynamic-import-node";
+ packageName = "babel-plugin-dynamic-import-node";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+ sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==";
+ };
+ };
+ "babel-plugin-istanbul-5.2.0" = {
+ name = "babel-plugin-istanbul";
+ packageName = "babel-plugin-istanbul";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz";
+ sha512 = "5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==";
+ };
+ };
+ "balanced-match-1.0.0" = {
+ name = "balanced-match";
+ packageName = "balanced-match";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ };
+ "base-0.11.2" = {
+ name = "base";
+ packageName = "base";
+ version = "0.11.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
+ sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
+ };
+ };
+ "before-after-hook-2.1.0" = {
+ name = "before-after-hook";
+ packageName = "before-after-hook";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz";
+ sha512 = "IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==";
+ };
+ };
+ "binary-extensions-1.13.1" = {
+ name = "binary-extensions";
+ packageName = "binary-extensions";
+ version = "1.13.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
+ sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
+ };
+ };
+ "bindings-1.5.0" = {
+ name = "bindings";
+ packageName = "bindings";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+ sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+ };
+ };
+ "bl-0.9.5" = {
+ name = "bl";
+ packageName = "bl";
+ version = "0.9.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz";
+ sha1 = "c06b797af085ea00bc527afc8efcf11de2232054";
+ };
+ };
+ "boom-0.4.2" = {
+ name = "boom";
+ packageName = "boom";
+ version = "0.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz";
+ sha1 = "7a636e9ded4efcefb19cef4947a3c67dfaee911b";
+ };
+ };
+ "bottleneck-2.19.5" = {
+ name = "bottleneck";
+ packageName = "bottleneck";
+ version = "2.19.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz";
+ sha512 = "VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==";
+ };
+ };
+ "boxen-1.3.0" = {
+ name = "boxen";
+ packageName = "boxen";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz";
+ sha512 = "TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==";
+ };
+ };
+ "brace-expansion-1.1.11" = {
+ name = "brace-expansion";
+ packageName = "brace-expansion";
+ version = "1.1.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+ };
+ };
+ "braces-2.3.2" = {
+ name = "braces";
+ packageName = "braces";
+ version = "2.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
+ sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
+ };
+ };
+ "braces-3.0.2" = {
+ name = "braces";
+ packageName = "braces";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+ sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+ };
+ };
+ "browser-stdout-1.3.1" = {
+ name = "browser-stdout";
+ packageName = "browser-stdout";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
+ sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
+ };
+ };
+ "browserslist-4.14.2" = {
+ name = "browserslist";
+ packageName = "browserslist";
+ version = "4.14.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz";
+ sha512 = "HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==";
+ };
+ };
+ "btoa-lite-1.0.0" = {
+ name = "btoa-lite";
+ packageName = "btoa-lite";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz";
+ sha1 = "337766da15801210fdd956c22e9c6891ab9d0337";
+ };
+ };
+ "buffer-from-1.1.1" = {
+ name = "buffer-from";
+ packageName = "buffer-from";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
+ sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
+ };
+ };
+ "cache-base-1.0.1" = {
+ name = "cache-base";
+ packageName = "cache-base";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
+ sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
+ };
+ };
+ "cachedir-2.2.0" = {
+ name = "cachedir";
+ packageName = "cachedir";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz";
+ sha512 = "VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==";
+ };
+ };
+ "caching-transform-4.0.0" = {
+ name = "caching-transform";
+ packageName = "caching-transform";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz";
+ sha512 = "kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==";
+ };
+ };
+ "caller-callsite-2.0.0" = {
+ name = "caller-callsite";
+ packageName = "caller-callsite";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz";
+ sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+ };
+ };
+ "caller-path-2.0.0" = {
+ name = "caller-path";
+ packageName = "caller-path";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz";
+ sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+ };
+ };
+ "callsites-2.0.0" = {
+ name = "callsites";
+ packageName = "callsites";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz";
+ sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+ };
+ };
+ "callsites-3.1.0" = {
+ name = "callsites";
+ packageName = "callsites";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
+ sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
+ };
+ };
+ "camelcase-4.1.0" = {
+ name = "camelcase";
+ packageName = "camelcase";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz";
+ sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+ };
+ };
+ "camelcase-5.3.1" = {
+ name = "camelcase";
+ packageName = "camelcase";
+ version = "5.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+ sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+ };
+ };
+ "camelcase-keys-6.2.2" = {
+ name = "camelcase-keys";
+ packageName = "camelcase-keys";
+ version = "6.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz";
+ sha512 = "YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==";
+ };
+ };
+ "caniuse-lite-1.0.30001125" = {
+ name = "caniuse-lite";
+ packageName = "caniuse-lite";
+ version = "1.0.30001125";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001125.tgz";
+ sha512 = "9f+r7BW8Qli917mU3j0fUaTweT3f3vnX/Lcs+1C73V+RADmFme+Ih0Br8vONQi3X0lseOe6ZHfsZLCA8MSjxUA==";
+ };
+ };
+ "capture-stack-trace-1.0.1" = {
+ name = "capture-stack-trace";
+ packageName = "capture-stack-trace";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz";
+ sha512 = "mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==";
+ };
+ };
+ "cardinal-2.1.1" = {
+ name = "cardinal";
+ packageName = "cardinal";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz";
+ sha1 = "7cc1055d822d212954d07b085dea251cc7bc5505";
+ };
+ };
+ "caseless-0.6.0" = {
+ name = "caseless";
+ packageName = "caseless";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz";
+ sha1 = "8167c1ab8397fb5bb95f96d28e5a81c50f247ac4";
+ };
+ };
+ "chai-4.2.0" = {
+ name = "chai";
+ packageName = "chai";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz";
+ sha512 = "XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==";
+ };
+ };
+ "chalk-2.4.2" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "2.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+ sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+ };
+ };
+ "chalk-4.1.0" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+ sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+ };
+ };
+ "chardet-0.7.0" = {
+ name = "chardet";
+ packageName = "chardet";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz";
+ sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==";
+ };
+ };
+ "charenc-0.0.2" = {
+ name = "charenc";
+ packageName = "charenc";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz";
+ sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
+ };
+ };
+ "check-error-1.0.2" = {
+ name = "check-error";
+ packageName = "check-error";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz";
+ sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
+ };
+ };
+ "chokidar-2.1.8" = {
+ name = "chokidar";
+ packageName = "chokidar";
+ version = "2.1.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
+ sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
+ };
+ };
+ "ci-info-1.6.0" = {
+ name = "ci-info";
+ packageName = "ci-info";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz";
+ sha512 = "vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==";
+ };
+ };
+ "class-utils-0.3.6" = {
+ name = "class-utils";
+ packageName = "class-utils";
+ version = "0.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz";
+ sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
+ };
+ };
+ "clean-stack-2.2.0" = {
+ name = "clean-stack";
+ packageName = "clean-stack";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
+ sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
+ };
+ };
+ "cli-boxes-1.0.0" = {
+ name = "cli-boxes";
+ packageName = "cli-boxes";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz";
+ sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
+ };
+ };
+ "cli-cursor-2.1.0" = {
+ name = "cli-cursor";
+ packageName = "cli-cursor";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz";
+ sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+ };
+ };
+ "cli-table-0.3.1" = {
+ name = "cli-table";
+ packageName = "cli-table";
+ version = "0.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz";
+ sha1 = "f53b05266a8b1a0b934b3d0821e6e2dc5914ae23";
+ };
+ };
+ "cli-width-2.2.1" = {
+ name = "cli-width";
+ packageName = "cli-width";
+ version = "2.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz";
+ sha512 = "GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==";
+ };
+ };
+ "cliui-4.1.0" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz";
+ sha512 = "4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==";
+ };
+ };
+ "cliui-6.0.0" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
+ sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+ };
+ };
+ "code-point-at-1.1.0" = {
+ name = "code-point-at";
+ packageName = "code-point-at";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ };
+ "codecov.io-0.1.6" = {
+ name = "codecov.io";
+ packageName = "codecov.io";
+ version = "0.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/codecov.io/-/codecov.io-0.1.6.tgz";
+ sha1 = "59dfd02da1ff31c2fb2b952ad8ad16fd3781b728";
+ };
+ };
+ "collection-visit-1.0.0" = {
+ name = "collection-visit";
+ packageName = "collection-visit";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz";
+ sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+ };
+ };
+ "color-convert-1.9.3" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "1.9.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+ sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+ };
+ };
+ "color-convert-2.0.1" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+ sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+ };
+ };
+ "color-name-1.1.3" = {
+ name = "color-name";
+ packageName = "color-name";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ };
+ "color-name-1.1.4" = {
+ name = "color-name";
+ packageName = "color-name";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+ sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+ };
+ };
+ "colors-0.6.2" = {
+ name = "colors";
+ packageName = "colors";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz";
+ sha1 = "2423fe6678ac0c5dae8852e5d0e5be08c997abcc";
+ };
+ };
+ "colors-1.0.3" = {
+ name = "colors";
+ packageName = "colors";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz";
+ sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
+ };
+ };
+ "combined-stream-0.0.7" = {
+ name = "combined-stream";
+ packageName = "combined-stream";
+ version = "0.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz";
+ sha1 = "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f";
+ };
+ };
+ "commander-2.1.0" = {
+ name = "commander";
+ packageName = "commander";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz";
+ sha1 = "d121bbae860d9992a3d517ba96f56588e47c6781";
+ };
+ };
+ "commander-2.9.0" = {
+ name = "commander";
+ packageName = "commander";
+ version = "2.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz";
+ sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+ };
+ };
+ "commander-4.1.1" = {
+ name = "commander";
+ packageName = "commander";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz";
+ sha512 = "NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==";
+ };
+ };
+ "commitizen-4.2.1" = {
+ name = "commitizen";
+ packageName = "commitizen";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commitizen/-/commitizen-4.2.1.tgz";
+ sha512 = "nZsp8IThkDu7C+93BFD/mLShb9Gd6Wsaf90tpKE3x/6u5y/Q52kzanIJpGr0qvIsJ5bCMpgKtr3Lbu3miEJfaA==";
+ };
+ };
+ "commondir-1.0.1" = {
+ name = "commondir";
+ packageName = "commondir";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz";
+ sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+ };
+ };
+ "compare-func-2.0.0" = {
+ name = "compare-func";
+ packageName = "compare-func";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz";
+ sha512 = "zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==";
+ };
+ };
+ "component-emitter-1.3.0" = {
+ name = "component-emitter";
+ packageName = "component-emitter";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz";
+ sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
+ };
+ };
+ "concat-map-0.0.1" = {
+ name = "concat-map";
+ packageName = "concat-map";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ };
+ "configstore-3.1.5" = {
+ name = "configstore";
+ packageName = "configstore";
+ version = "3.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/configstore/-/configstore-3.1.5.tgz";
+ sha512 = "nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==";
+ };
+ };
+ "conventional-changelog-angular-5.0.11" = {
+ name = "conventional-changelog-angular";
+ packageName = "conventional-changelog-angular";
+ version = "5.0.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.11.tgz";
+ sha512 = "nSLypht/1yEflhuTogC03i7DX7sOrXGsRn14g131Potqi6cbGbGEE9PSDEHKldabB6N76HiSyw9Ph+kLmC04Qw==";
+ };
+ };
+ "conventional-changelog-writer-4.0.17" = {
+ name = "conventional-changelog-writer";
+ packageName = "conventional-changelog-writer";
+ version = "4.0.17";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.17.tgz";
+ sha512 = "IKQuK3bib/n032KWaSb8YlBFds+aLmzENtnKtxJy3+HqDq5kohu3g/UdNbIHeJWygfnEbZjnCKFxAW0y7ArZAw==";
+ };
+ };
+ "conventional-commit-types-2.3.0" = {
+ name = "conventional-commit-types";
+ packageName = "conventional-commit-types";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.3.0.tgz";
+ sha512 = "6iB39PrcGYdz0n3z31kj6/Km6mK9hm9oMRhwcLnKxE7WNoeRKZbTAobliKrbYZ5jqyCvtcVEfjCiaEzhL3AVmQ==";
+ };
+ };
+ "conventional-commit-types-3.0.0" = {
+ name = "conventional-commit-types";
+ packageName = "conventional-commit-types";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz";
+ sha512 = "SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==";
+ };
+ };
+ "conventional-commits-filter-2.0.6" = {
+ name = "conventional-commits-filter";
+ packageName = "conventional-commits-filter";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz";
+ sha512 = "4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw==";
+ };
+ };
+ "conventional-commits-parser-3.1.0" = {
+ name = "conventional-commits-parser";
+ packageName = "conventional-commits-parser";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz";
+ sha512 = "RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA==";
+ };
+ };
+ "convert-source-map-1.7.0" = {
+ name = "convert-source-map";
+ packageName = "convert-source-map";
+ version = "1.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
+ sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+ };
+ };
+ "copy-descriptor-0.1.1" = {
+ name = "copy-descriptor";
+ packageName = "copy-descriptor";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+ sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+ };
+ };
+ "core-js-compat-3.6.5" = {
+ name = "core-js-compat";
+ packageName = "core-js-compat";
+ version = "3.6.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz";
+ sha512 = "7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==";
+ };
+ };
+ "core-util-is-1.0.2" = {
+ name = "core-util-is";
+ packageName = "core-util-is";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ };
+ "cosmiconfig-5.2.1" = {
+ name = "cosmiconfig";
+ packageName = "cosmiconfig";
+ version = "5.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
+ sha512 = "H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==";
+ };
+ };
+ "cosmiconfig-7.0.0" = {
+ name = "cosmiconfig";
+ packageName = "cosmiconfig";
+ version = "7.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
+ sha512 = "pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==";
+ };
+ };
+ "create-error-class-3.0.2" = {
+ name = "create-error-class";
+ packageName = "create-error-class";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz";
+ sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
+ };
+ };
+ "cross-spawn-5.1.0" = {
+ name = "cross-spawn";
+ packageName = "cross-spawn";
+ version = "5.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz";
+ sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+ };
+ };
+ "cross-spawn-6.0.5" = {
+ name = "cross-spawn";
+ packageName = "cross-spawn";
+ version = "6.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
+ sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
+ };
+ };
+ "cross-spawn-7.0.3" = {
+ name = "cross-spawn";
+ packageName = "cross-spawn";
+ version = "7.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+ sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
+ };
+ };
+ "crypt-0.0.2" = {
+ name = "crypt";
+ packageName = "crypt";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz";
+ sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
+ };
+ };
+ "cryptiles-0.2.2" = {
+ name = "cryptiles";
+ packageName = "cryptiles";
+ version = "0.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz";
+ sha1 = "ed91ff1f17ad13d3748288594f8a48a0d26f325c";
+ };
+ };
+ "crypto-random-string-1.0.0" = {
+ name = "crypto-random-string";
+ packageName = "crypto-random-string";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz";
+ sha1 = "a230f64f568310e1498009940790ec99545bca7e";
+ };
+ };
+ "ctype-0.5.3" = {
+ name = "ctype";
+ packageName = "ctype";
+ version = "0.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz";
+ sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f";
+ };
+ };
+ "cz-conventional-changelog-3.2.0" = {
+ name = "cz-conventional-changelog";
+ packageName = "cz-conventional-changelog";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz";
+ sha512 = "yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==";
+ };
+ };
+ "cz-conventional-changelog-default-export-0.0.0-semantically-released.1" = {
+ name = "cz-conventional-changelog-default-export";
+ packageName = "cz-conventional-changelog-default-export";
+ version = "0.0.0-semantically-released.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cz-conventional-changelog-default-export/-/cz-conventional-changelog-default-export-0.0.0-semantically-released.1.tgz";
+ sha1 = "522fbf6a54110d34152636cb5e7476899d68cd46";
+ };
+ };
+ "dateformat-3.0.3" = {
+ name = "dateformat";
+ packageName = "dateformat";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz";
+ sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
+ };
+ };
+ "debug-2.6.9" = {
+ name = "debug";
+ packageName = "debug";
+ version = "2.6.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+ sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+ };
+ };
+ "debug-3.1.0" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
+ sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
+ };
+ };
+ "debug-3.2.6" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.2.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
+ sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+ };
+ };
+ "debug-4.2.0" = {
+ name = "debug";
+ packageName = "debug";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
+ sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
+ };
+ };
+ "decamelize-1.2.0" = {
+ name = "decamelize";
+ packageName = "decamelize";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ };
+ "decamelize-keys-1.1.0" = {
+ name = "decamelize-keys";
+ packageName = "decamelize-keys";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz";
+ sha1 = "d171a87933252807eb3cb61dc1c1445d078df2d9";
+ };
+ };
+ "decode-uri-component-0.2.0" = {
+ name = "decode-uri-component";
+ packageName = "decode-uri-component";
+ version = "0.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+ sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+ };
+ };
+ "dedent-0.7.0" = {
+ name = "dedent";
+ packageName = "dedent";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz";
+ sha1 = "2495ddbaf6eb874abb0e1be9df22d2e5a544326c";
+ };
+ };
+ "deep-eql-3.0.1" = {
+ name = "deep-eql";
+ packageName = "deep-eql";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz";
+ sha512 = "+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==";
+ };
+ };
+ "deep-equal-0.1.2" = {
+ name = "deep-equal";
+ packageName = "deep-equal";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz";
+ sha1 = "b246c2b80a570a47c11be1d9bd1070ec878b87ce";
+ };
+ };
+ "deep-extend-0.6.0" = {
+ name = "deep-extend";
+ packageName = "deep-extend";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+ };
+ };
+ "default-require-extensions-3.0.0" = {
+ name = "default-require-extensions";
+ packageName = "default-require-extensions";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz";
+ sha512 = "ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==";
+ };
+ };
+ "define-properties-1.1.3" = {
+ name = "define-properties";
+ packageName = "define-properties";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
+ sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+ };
+ };
+ "define-property-0.2.5" = {
+ name = "define-property";
+ packageName = "define-property";
+ version = "0.2.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz";
+ sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+ };
+ };
+ "define-property-1.0.0" = {
+ name = "define-property";
+ packageName = "define-property";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz";
+ sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+ };
+ };
+ "define-property-2.0.2" = {
+ name = "define-property";
+ packageName = "define-property";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
+ sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
+ };
+ };
+ "defined-0.0.0" = {
+ name = "defined";
+ packageName = "defined";
+ version = "0.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz";
+ sha1 = "f35eea7d705e933baf13b2f03b3f83d921403b3e";
+ };
+ };
+ "delayed-stream-0.0.5" = {
+ name = "delayed-stream";
+ packageName = "delayed-stream";
+ version = "0.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz";
+ sha1 = "d4b1f43a93e8296dfe02694f4680bc37a313c73f";
+ };
+ };
+ "deprecation-2.3.1" = {
+ name = "deprecation";
+ packageName = "deprecation";
+ version = "2.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz";
+ sha512 = "xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==";
+ };
+ };
+ "detect-file-1.0.0" = {
+ name = "detect-file";
+ packageName = "detect-file";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz";
+ sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
+ };
+ };
+ "detect-indent-6.0.0" = {
+ name = "detect-indent";
+ packageName = "detect-indent";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz";
+ sha512 = "oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==";
+ };
+ };
+ "diff-3.5.0" = {
+ name = "diff";
+ packageName = "diff";
+ version = "3.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz";
+ sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==";
+ };
+ };
+ "dir-glob-3.0.1" = {
+ name = "dir-glob";
+ packageName = "dir-glob";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
+ sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
+ };
+ };
+ "dot-prop-4.2.1" = {
+ name = "dot-prop";
+ packageName = "dot-prop";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz";
+ sha512 = "l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==";
+ };
+ };
+ "dot-prop-5.3.0" = {
+ name = "dot-prop";
+ packageName = "dot-prop";
+ version = "5.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz";
+ sha512 = "QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==";
+ };
+ };
+ "duplexer-0.1.2" = {
+ name = "duplexer";
+ packageName = "duplexer";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz";
+ sha512 = "jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==";
+ };
+ };
+ "duplexer2-0.1.4" = {
+ name = "duplexer2";
+ packageName = "duplexer2";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz";
+ sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
+ };
+ };
+ "duplexer3-0.1.4" = {
+ name = "duplexer3";
+ packageName = "duplexer3";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz";
+ sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+ };
+ };
+ "electron-to-chromium-1.3.565" = {
+ name = "electron-to-chromium";
+ packageName = "electron-to-chromium";
+ version = "1.3.565";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.565.tgz";
+ sha512 = "me5dGlHFd8Q7mKhqbWRLIYnKjw4i0fO6hmW0JBxa7tM87fBfNEjWokRnDF7V+Qme/9IYpwhfMn+soWs40tXWqg==";
+ };
+ };
+ "emoji-regex-7.0.3" = {
+ name = "emoji-regex";
+ packageName = "emoji-regex";
+ version = "7.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+ sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+ };
+ };
+ "emoji-regex-8.0.0" = {
+ name = "emoji-regex";
+ packageName = "emoji-regex";
+ version = "8.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+ sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+ };
+ };
+ "end-of-stream-1.4.4" = {
+ name = "end-of-stream";
+ packageName = "end-of-stream";
+ version = "1.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+ sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+ };
+ };
+ "env-ci-4.5.2" = {
+ name = "env-ci";
+ packageName = "env-ci";
+ version = "4.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/env-ci/-/env-ci-4.5.2.tgz";
+ sha512 = "lS+edpNp2+QXEPkx6raEMIjKxKKWnJ4+VWzovYJ2NLYiJAYenSAXotFfVdgaFxdbVnvAbUI8epQDa1u12ERxfQ==";
+ };
+ };
+ "error-ex-1.3.2" = {
+ name = "error-ex";
+ packageName = "error-ex";
+ version = "1.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
+ sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
+ };
+ };
+ "es-abstract-1.17.6" = {
+ name = "es-abstract";
+ packageName = "es-abstract";
+ version = "1.17.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+ sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
+ };
+ };
+ "es-to-primitive-1.2.1" = {
+ name = "es-to-primitive";
+ packageName = "es-to-primitive";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+ sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+ };
+ };
+ "es6-error-4.1.1" = {
+ name = "es6-error";
+ packageName = "es6-error";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz";
+ sha512 = "Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==";
+ };
+ };
+ "escalade-3.0.2" = {
+ name = "escalade";
+ packageName = "escalade";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz";
+ sha512 = "gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==";
+ };
+ };
+ "escape-string-regexp-1.0.5" = {
+ name = "escape-string-regexp";
+ packageName = "escape-string-regexp";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ };
+ "esprima-4.0.1" = {
+ name = "esprima";
+ packageName = "esprima";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+ sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+ };
+ };
+ "esutils-2.0.3" = {
+ name = "esutils";
+ packageName = "esutils";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+ sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+ };
+ };
+ "execa-0.7.0" = {
+ name = "execa";
+ packageName = "execa";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz";
+ sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777";
+ };
+ };
+ "execa-1.0.0" = {
+ name = "execa";
+ packageName = "execa";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
+ sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
+ };
+ };
+ "execa-3.4.0" = {
+ name = "execa";
+ packageName = "execa";
+ version = "3.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz";
+ sha512 = "r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==";
+ };
+ };
+ "expand-brackets-2.1.4" = {
+ name = "expand-brackets";
+ packageName = "expand-brackets";
+ version = "2.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz";
+ sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+ };
+ };
+ "expand-tilde-2.0.2" = {
+ name = "expand-tilde";
+ packageName = "expand-tilde";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz";
+ sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
+ };
+ };
+ "extend-shallow-2.0.1" = {
+ name = "extend-shallow";
+ packageName = "extend-shallow";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ };
+ "extend-shallow-3.0.2" = {
+ name = "extend-shallow";
+ packageName = "extend-shallow";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz";
+ sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+ };
+ };
+ "external-editor-3.1.0" = {
+ name = "external-editor";
+ packageName = "external-editor";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz";
+ sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==";
+ };
+ };
+ "extglob-2.0.4" = {
+ name = "extglob";
+ packageName = "extglob";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
+ sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
+ };
+ };
+ "fast-glob-3.2.4" = {
+ name = "fast-glob";
+ packageName = "fast-glob";
+ version = "3.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
+ sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
+ };
+ };
+ "fastq-1.8.0" = {
+ name = "fastq";
+ packageName = "fastq";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz";
+ sha512 = "SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==";
+ };
+ };
+ "figures-2.0.0" = {
+ name = "figures";
+ packageName = "figures";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz";
+ sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+ };
+ };
+ "figures-3.2.0" = {
+ name = "figures";
+ packageName = "figures";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz";
+ sha512 = "yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==";
+ };
+ };
+ "file-uri-to-path-1.0.0" = {
+ name = "file-uri-to-path";
+ packageName = "file-uri-to-path";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+ sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+ };
+ };
+ "fill-keys-1.0.2" = {
+ name = "fill-keys";
+ packageName = "fill-keys";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz";
+ sha1 = "9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20";
+ };
+ };
+ "fill-range-4.0.0" = {
+ name = "fill-range";
+ packageName = "fill-range";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz";
+ sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+ };
+ };
+ "fill-range-7.0.1" = {
+ name = "fill-range";
+ packageName = "fill-range";
+ version = "7.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+ sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+ };
+ };
+ "find-cache-dir-2.1.0" = {
+ name = "find-cache-dir";
+ packageName = "find-cache-dir";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+ sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==";
+ };
+ };
+ "find-cache-dir-3.3.1" = {
+ name = "find-cache-dir";
+ packageName = "find-cache-dir";
+ version = "3.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
+ sha512 = "t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==";
+ };
+ };
+ "find-node-modules-2.0.0" = {
+ name = "find-node-modules";
+ packageName = "find-node-modules";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.0.0.tgz";
+ sha512 = "8MWIBRgJi/WpjjfVXumjPKCtmQ10B+fjx6zmSA+770GMJirLhWIzg8l763rhjl9xaeaHbnxPNRQKq2mgMhr+aw==";
+ };
+ };
+ "find-root-1.1.0" = {
+ name = "find-root";
+ packageName = "find-root";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz";
+ sha512 = "NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==";
+ };
+ };
+ "find-up-2.1.0" = {
+ name = "find-up";
+ packageName = "find-up";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz";
+ sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+ };
+ };
+ "find-up-3.0.0" = {
+ name = "find-up";
+ packageName = "find-up";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+ sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+ };
+ };
+ "find-up-4.1.0" = {
+ name = "find-up";
+ packageName = "find-up";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
+ sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+ };
+ };
+ "find-versions-3.2.0" = {
+ name = "find-versions";
+ packageName = "find-versions";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz";
+ sha512 = "P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==";
+ };
+ };
+ "findup-0.1.5" = {
+ name = "findup";
+ packageName = "findup";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz";
+ sha1 = "8ad929a3393bac627957a7e5de4623b06b0e2ceb";
+ };
+ };
+ "findup-sync-3.0.0" = {
+ name = "findup-sync";
+ packageName = "findup-sync";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz";
+ sha512 = "YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==";
+ };
+ };
+ "flat-4.1.0" = {
+ name = "flat";
+ packageName = "flat";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz";
+ sha512 = "Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==";
+ };
+ };
+ "follow-redirects-1.5.10" = {
+ name = "follow-redirects";
+ packageName = "follow-redirects";
+ version = "1.5.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
+ sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==";
+ };
+ };
+ "for-in-1.0.2" = {
+ name = "for-in";
+ packageName = "for-in";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz";
+ sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+ };
+ };
+ "foreground-child-2.0.0" = {
+ name = "foreground-child";
+ packageName = "foreground-child";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz";
+ sha512 = "dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==";
+ };
+ };
+ "forever-agent-0.5.2" = {
+ name = "forever-agent";
+ packageName = "forever-agent";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz";
+ sha1 = "6d0e09c4921f94a27f63d3b49c5feff1ea4c5130";
+ };
+ };
+ "form-data-0.1.4" = {
+ name = "form-data";
+ packageName = "form-data";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz";
+ sha1 = "91abd788aba9702b1aabfa8bc01031a2ac9e3b12";
+ };
+ };
+ "fragment-cache-0.2.1" = {
+ name = "fragment-cache";
+ packageName = "fragment-cache";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz";
+ sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+ };
+ };
+ "from2-2.3.0" = {
+ name = "from2";
+ packageName = "from2";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz";
+ sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+ };
+ };
+ "fromentries-1.2.1" = {
+ name = "fromentries";
+ packageName = "fromentries";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fromentries/-/fromentries-1.2.1.tgz";
+ sha512 = "Xu2Qh8yqYuDhQGOhD5iJGninErSfI9A3FrriD3tjUgV5VbJFeH8vfgZ9HnC6jWN80QDVNQK5vmxRAmEAp7Mevw==";
+ };
+ };
+ "fs-extra-8.1.0" = {
+ name = "fs-extra";
+ packageName = "fs-extra";
+ version = "8.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
+ sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
+ };
+ };
+ "fs-readdir-recursive-1.1.0" = {
+ name = "fs-readdir-recursive";
+ packageName = "fs-readdir-recursive";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz";
+ sha512 = "GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==";
+ };
+ };
+ "fs.realpath-1.0.0" = {
+ name = "fs.realpath";
+ packageName = "fs.realpath";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ };
+ "fsevents-1.2.13" = {
+ name = "fsevents";
+ packageName = "fsevents";
+ version = "1.2.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
+ sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
+ };
+ };
+ "function-bind-1.1.1" = {
+ name = "function-bind";
+ packageName = "function-bind";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+ sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+ };
+ };
+ "gensync-1.0.0-beta.1" = {
+ name = "gensync";
+ packageName = "gensync";
+ version = "1.0.0-beta.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz";
+ sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==";
+ };
+ };
+ "get-caller-file-1.0.3" = {
+ name = "get-caller-file";
+ packageName = "get-caller-file";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz";
+ sha512 = "3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==";
+ };
+ };
+ "get-caller-file-2.0.5" = {
+ name = "get-caller-file";
+ packageName = "get-caller-file";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+ sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+ };
+ };
+ "get-func-name-2.0.0" = {
+ name = "get-func-name";
+ packageName = "get-func-name";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz";
+ sha1 = "ead774abee72e20409433a066366023dd6887a41";
+ };
+ };
+ "get-package-type-0.1.0" = {
+ name = "get-package-type";
+ packageName = "get-package-type";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz";
+ sha512 = "pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==";
+ };
+ };
+ "get-stream-3.0.0" = {
+ name = "get-stream";
+ packageName = "get-stream";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz";
+ sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+ };
+ };
+ "get-stream-4.1.0" = {
+ name = "get-stream";
+ packageName = "get-stream";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
+ sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
+ };
+ };
+ "get-stream-5.2.0" = {
+ name = "get-stream";
+ packageName = "get-stream";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+ sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
+ };
+ };
+ "get-value-2.0.6" = {
+ name = "get-value";
+ packageName = "get-value";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz";
+ sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+ };
+ };
+ "ghooks-2.0.4" = {
+ name = "ghooks";
+ packageName = "ghooks";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ghooks/-/ghooks-2.0.4.tgz";
+ sha1 = "fd50e040ff548906ae42cb51793a01bfe24567b9";
+ };
+ };
+ "git-log-parser-1.2.0" = {
+ name = "git-log-parser";
+ packageName = "git-log-parser";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz";
+ sha1 = "2e6a4c1b13fc00028207ba795a7ac31667b9fd4a";
+ };
+ };
+ "glob-7.1.3" = {
+ name = "glob";
+ packageName = "glob";
+ version = "7.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz";
+ sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==";
+ };
+ };
+ "glob-7.1.4" = {
+ name = "glob";
+ packageName = "glob";
+ version = "7.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz";
+ sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==";
+ };
+ };
+ "glob-7.1.6" = {
+ name = "glob";
+ packageName = "glob";
+ version = "7.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+ sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+ };
+ };
+ "glob-parent-3.1.0" = {
+ name = "glob-parent";
+ packageName = "glob-parent";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
+ sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+ };
+ };
+ "glob-parent-5.1.1" = {
+ name = "glob-parent";
+ packageName = "glob-parent";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
+ sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+ };
+ };
+ "global-dirs-0.1.1" = {
+ name = "global-dirs";
+ packageName = "global-dirs";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz";
+ sha1 = "b319c0dd4607f353f3be9cca4c72fc148c49f445";
+ };
+ };
+ "global-modules-1.0.0" = {
+ name = "global-modules";
+ packageName = "global-modules";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz";
+ sha512 = "sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==";
+ };
+ };
+ "global-prefix-1.0.2" = {
+ name = "global-prefix";
+ packageName = "global-prefix";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz";
+ sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
+ };
+ };
+ "globals-11.12.0" = {
+ name = "globals";
+ packageName = "globals";
+ version = "11.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
+ sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
+ };
+ };
+ "globby-10.0.2" = {
+ name = "globby";
+ packageName = "globby";
+ version = "10.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz";
+ sha512 = "7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==";
+ };
+ };
+ "got-6.7.1" = {
+ name = "got";
+ packageName = "got";
+ version = "6.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/got/-/got-6.7.1.tgz";
+ sha1 = "240cd05785a9a18e561dc1b44b41c763ef1e8db0";
+ };
+ };
+ "graceful-fs-4.2.4" = {
+ name = "graceful-fs";
+ packageName = "graceful-fs";
+ version = "4.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+ sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
+ };
+ };
+ "graceful-readlink-1.0.1" = {
+ name = "graceful-readlink";
+ packageName = "graceful-readlink";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+ sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+ };
+ };
+ "growl-1.10.5" = {
+ name = "growl";
+ packageName = "growl";
+ version = "1.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
+ sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==";
+ };
+ };
+ "handlebars-4.7.6" = {
+ name = "handlebars";
+ packageName = "handlebars";
+ version = "4.7.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz";
+ sha512 = "1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==";
+ };
+ };
+ "hard-rejection-2.1.0" = {
+ name = "hard-rejection";
+ packageName = "hard-rejection";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz";
+ sha512 = "VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==";
+ };
+ };
+ "has-1.0.3" = {
+ name = "has";
+ packageName = "has";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+ sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+ };
+ };
+ "has-flag-2.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz";
+ sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51";
+ };
+ };
+ "has-flag-3.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ };
+ "has-flag-4.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+ sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+ };
+ };
+ "has-symbols-1.0.1" = {
+ name = "has-symbols";
+ packageName = "has-symbols";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
+ sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+ };
+ };
+ "has-value-0.3.1" = {
+ name = "has-value";
+ packageName = "has-value";
+ version = "0.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz";
+ sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+ };
+ };
+ "has-value-1.0.0" = {
+ name = "has-value";
+ packageName = "has-value";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz";
+ sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+ };
+ };
+ "has-values-0.1.4" = {
+ name = "has-values";
+ packageName = "has-values";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz";
+ sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+ };
+ };
+ "has-values-1.0.0" = {
+ name = "has-values";
+ packageName = "has-values";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz";
+ sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+ };
+ };
+ "hasha-5.2.0" = {
+ name = "hasha";
+ packageName = "hasha";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz";
+ sha512 = "2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==";
+ };
+ };
+ "hawk-1.1.1" = {
+ name = "hawk";
+ packageName = "hawk";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz";
+ sha1 = "87cd491f9b46e4e2aeaca335416766885d2d1ed9";
+ };
+ };
+ "he-1.2.0" = {
+ name = "he";
+ packageName = "he";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+ sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+ };
+ };
+ "hoek-0.9.1" = {
+ name = "hoek";
+ packageName = "hoek";
+ version = "0.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz";
+ sha1 = "3d322462badf07716ea7eb85baf88079cddce505";
+ };
+ };
+ "homedir-polyfill-1.0.3" = {
+ name = "homedir-polyfill";
+ packageName = "homedir-polyfill";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
+ sha512 = "eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==";
+ };
+ };
+ "hook-std-2.0.0" = {
+ name = "hook-std";
+ packageName = "hook-std";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz";
+ sha512 = "zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==";
+ };
+ };
+ "hosted-git-info-2.8.8" = {
+ name = "hosted-git-info";
+ packageName = "hosted-git-info";
+ version = "2.8.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+ sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+ };
+ };
+ "html-escaper-2.0.2" = {
+ name = "html-escaper";
+ packageName = "html-escaper";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz";
+ sha512 = "H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==";
+ };
+ };
+ "http-proxy-agent-3.0.0" = {
+ name = "http-proxy-agent";
+ packageName = "http-proxy-agent";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-3.0.0.tgz";
+ sha512 = "uGuJaBWQWDQCJI5ip0d/VTYZW0nRrlLWXA4A7P1jrsa+f77rW2yXz315oBt6zGCF6l8C2tlMxY7ffULCj+5FhA==";
+ };
+ };
+ "http-signature-0.10.1" = {
+ name = "http-signature";
+ packageName = "http-signature";
+ version = "0.10.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz";
+ sha1 = "4fbdac132559aa8323121e540779c0a012b27e66";
+ };
+ };
+ "https-proxy-agent-4.0.0" = {
+ name = "https-proxy-agent";
+ packageName = "https-proxy-agent";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz";
+ sha512 = "zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==";
+ };
+ };
+ "human-signals-1.1.1" = {
+ name = "human-signals";
+ packageName = "human-signals";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz";
+ sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==";
+ };
+ };
+ "iconv-lite-0.4.24" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.4.24";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+ };
+ };
+ "ignore-5.1.8" = {
+ name = "ignore";
+ packageName = "ignore";
+ version = "5.1.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+ sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+ };
+ };
+ "ignore-by-default-1.0.1" = {
+ name = "ignore-by-default";
+ packageName = "ignore-by-default";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz";
+ sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
+ };
+ };
+ "import-fresh-2.0.0" = {
+ name = "import-fresh";
+ packageName = "import-fresh";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz";
+ sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+ };
+ };
+ "import-fresh-3.2.1" = {
+ name = "import-fresh";
+ packageName = "import-fresh";
+ version = "3.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz";
+ sha512 = "6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==";
+ };
+ };
+ "import-from-3.0.0" = {
+ name = "import-from";
+ packageName = "import-from";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz";
+ sha512 = "CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==";
+ };
+ };
+ "import-lazy-2.1.0" = {
+ name = "import-lazy";
+ packageName = "import-lazy";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz";
+ sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+ };
+ };
+ "imurmurhash-0.1.4" = {
+ name = "imurmurhash";
+ packageName = "imurmurhash";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+ sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+ };
+ };
+ "in-publish-2.0.1" = {
+ name = "in-publish";
+ packageName = "in-publish";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz";
+ sha512 = "oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==";
+ };
+ };
+ "indent-string-4.0.0" = {
+ name = "indent-string";
+ packageName = "indent-string";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz";
+ sha512 = "EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==";
+ };
+ };
+ "inflight-1.0.6" = {
+ name = "inflight";
+ packageName = "inflight";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ };
+ "inherits-2.0.4" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+ sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+ };
+ };
+ "ini-1.3.5" = {
+ name = "ini";
+ packageName = "ini";
+ version = "1.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
+ sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+ };
+ };
+ "inquirer-6.5.2" = {
+ name = "inquirer";
+ packageName = "inquirer";
+ version = "6.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz";
+ sha512 = "cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==";
+ };
+ };
+ "into-stream-5.1.1" = {
+ name = "into-stream";
+ packageName = "into-stream";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz";
+ sha512 = "krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==";
+ };
+ };
+ "invariant-2.2.4" = {
+ name = "invariant";
+ packageName = "invariant";
+ version = "2.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz";
+ sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
+ };
+ };
+ "invert-kv-2.0.0" = {
+ name = "invert-kv";
+ packageName = "invert-kv";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz";
+ sha512 = "wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==";
+ };
+ };
+ "is-accessor-descriptor-0.1.6" = {
+ name = "is-accessor-descriptor";
+ packageName = "is-accessor-descriptor";
+ version = "0.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+ sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+ };
+ };
+ "is-accessor-descriptor-1.0.0" = {
+ name = "is-accessor-descriptor";
+ packageName = "is-accessor-descriptor";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+ sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
+ };
+ };
+ "is-arrayish-0.2.1" = {
+ name = "is-arrayish";
+ packageName = "is-arrayish";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
+ sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+ };
+ };
+ "is-binary-path-1.0.1" = {
+ name = "is-binary-path";
+ packageName = "is-binary-path";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
+ sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+ };
+ };
+ "is-buffer-1.1.6" = {
+ name = "is-buffer";
+ packageName = "is-buffer";
+ version = "1.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
+ };
+ };
+ "is-buffer-2.0.4" = {
+ name = "is-buffer";
+ packageName = "is-buffer";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz";
+ sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==";
+ };
+ };
+ "is-callable-1.2.1" = {
+ name = "is-callable";
+ packageName = "is-callable";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.1.tgz";
+ sha512 = "wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg==";
+ };
+ };
+ "is-ci-1.2.1" = {
+ name = "is-ci";
+ packageName = "is-ci";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz";
+ sha512 = "s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==";
+ };
+ };
+ "is-data-descriptor-0.1.4" = {
+ name = "is-data-descriptor";
+ packageName = "is-data-descriptor";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+ sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+ };
+ };
+ "is-data-descriptor-1.0.0" = {
+ name = "is-data-descriptor";
+ packageName = "is-data-descriptor";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+ sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
+ };
+ };
+ "is-date-object-1.0.2" = {
+ name = "is-date-object";
+ packageName = "is-date-object";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
+ sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+ };
+ };
+ "is-descriptor-0.1.6" = {
+ name = "is-descriptor";
+ packageName = "is-descriptor";
+ version = "0.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
+ sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
+ };
+ };
+ "is-descriptor-1.0.2" = {
+ name = "is-descriptor";
+ packageName = "is-descriptor";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
+ sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
+ };
+ };
+ "is-directory-0.3.1" = {
+ name = "is-directory";
+ packageName = "is-directory";
+ version = "0.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz";
+ sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+ };
+ };
+ "is-extendable-0.1.1" = {
+ name = "is-extendable";
+ packageName = "is-extendable";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ };
+ "is-extendable-1.0.1" = {
+ name = "is-extendable";
+ packageName = "is-extendable";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
+ sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
+ };
+ };
+ "is-extglob-2.1.1" = {
+ name = "is-extglob";
+ packageName = "is-extglob";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ };
+ "is-fullwidth-code-point-1.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ };
+ "is-fullwidth-code-point-2.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ };
+ "is-fullwidth-code-point-3.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+ sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+ };
+ };
+ "is-glob-3.1.0" = {
+ name = "is-glob";
+ packageName = "is-glob";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
+ sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+ };
+ };
+ "is-glob-4.0.1" = {
+ name = "is-glob";
+ packageName = "is-glob";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+ sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+ };
+ };
+ "is-installed-globally-0.1.0" = {
+ name = "is-installed-globally";
+ packageName = "is-installed-globally";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz";
+ sha1 = "0dfd98f5a9111716dd535dda6492f67bf3d25a80";
+ };
+ };
+ "is-npm-1.0.0" = {
+ name = "is-npm";
+ packageName = "is-npm";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz";
+ sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4";
+ };
+ };
+ "is-number-3.0.0" = {
+ name = "is-number";
+ packageName = "is-number";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz";
+ sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+ };
+ };
+ "is-number-7.0.0" = {
+ name = "is-number";
+ packageName = "is-number";
+ version = "7.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+ sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+ };
+ };
+ "is-obj-1.0.1" = {
+ name = "is-obj";
+ packageName = "is-obj";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz";
+ sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+ };
+ };
+ "is-obj-2.0.0" = {
+ name = "is-obj";
+ packageName = "is-obj";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz";
+ sha512 = "drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==";
+ };
+ };
+ "is-object-1.0.1" = {
+ name = "is-object";
+ packageName = "is-object";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz";
+ sha1 = "8952688c5ec2ffd6b03ecc85e769e02903083470";
+ };
+ };
+ "is-path-inside-1.0.1" = {
+ name = "is-path-inside";
+ packageName = "is-path-inside";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz";
+ sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036";
+ };
+ };
+ "is-plain-obj-1.1.0" = {
+ name = "is-plain-obj";
+ packageName = "is-plain-obj";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+ sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+ };
+ };
+ "is-plain-object-2.0.4" = {
+ name = "is-plain-object";
+ packageName = "is-plain-object";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz";
+ sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
+ };
+ };
+ "is-plain-object-5.0.0" = {
+ name = "is-plain-object";
+ packageName = "is-plain-object";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz";
+ sha512 = "VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==";
+ };
+ };
+ "is-redirect-1.0.0" = {
+ name = "is-redirect";
+ packageName = "is-redirect";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz";
+ sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
+ };
+ };
+ "is-regex-1.1.1" = {
+ name = "is-regex";
+ packageName = "is-regex";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz";
+ sha512 = "1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==";
+ };
+ };
+ "is-retry-allowed-1.2.0" = {
+ name = "is-retry-allowed";
+ packageName = "is-retry-allowed";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
+ sha512 = "RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==";
+ };
+ };
+ "is-stream-1.1.0" = {
+ name = "is-stream";
+ packageName = "is-stream";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
+ sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+ };
+ };
+ "is-stream-2.0.0" = {
+ name = "is-stream";
+ packageName = "is-stream";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+ sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+ };
+ };
+ "is-symbol-1.0.3" = {
+ name = "is-symbol";
+ packageName = "is-symbol";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
+ sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+ };
+ };
+ "is-text-path-1.0.1" = {
+ name = "is-text-path";
+ packageName = "is-text-path";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz";
+ sha1 = "4e1aa0fb51bfbcb3e92688001397202c1775b66e";
+ };
+ };
+ "is-typedarray-1.0.0" = {
+ name = "is-typedarray";
+ packageName = "is-typedarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ };
+ "is-utf8-0.2.1" = {
+ name = "is-utf8";
+ packageName = "is-utf8";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz";
+ sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+ };
+ };
+ "is-windows-1.0.2" = {
+ name = "is-windows";
+ packageName = "is-windows";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
+ sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
+ };
+ };
+ "isarray-0.0.1" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ };
+ "isarray-1.0.0" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ };
+ "isexe-2.0.0" = {
+ name = "isexe";
+ packageName = "isexe";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ };
+ "isobject-2.1.0" = {
+ name = "isobject";
+ packageName = "isobject";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz";
+ sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+ };
+ };
+ "isobject-3.0.1" = {
+ name = "isobject";
+ packageName = "isobject";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz";
+ sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+ };
+ };
+ "issue-parser-5.0.0" = {
+ name = "issue-parser";
+ packageName = "issue-parser";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/issue-parser/-/issue-parser-5.0.0.tgz";
+ sha512 = "q/16W7EPHRL0FKVz9NU++TUsoygXGj6JOi88oulyAcQG+IEZ0T6teVdE+VLbe19OfL/tbV8Wi3Dfo0HedeHW0Q==";
+ };
+ };
+ "istanbul-lib-coverage-2.0.5" = {
+ name = "istanbul-lib-coverage";
+ packageName = "istanbul-lib-coverage";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
+ sha512 = "8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==";
+ };
+ };
+ "istanbul-lib-coverage-3.0.0" = {
+ name = "istanbul-lib-coverage";
+ packageName = "istanbul-lib-coverage";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
+ sha512 = "UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==";
+ };
+ };
+ "istanbul-lib-hook-3.0.0" = {
+ name = "istanbul-lib-hook";
+ packageName = "istanbul-lib-hook";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz";
+ sha512 = "Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==";
+ };
+ };
+ "istanbul-lib-instrument-3.3.0" = {
+ name = "istanbul-lib-instrument";
+ packageName = "istanbul-lib-instrument";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
+ sha512 = "5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==";
+ };
+ };
+ "istanbul-lib-instrument-4.0.3" = {
+ name = "istanbul-lib-instrument";
+ packageName = "istanbul-lib-instrument";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
+ sha512 = "BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==";
+ };
+ };
+ "istanbul-lib-processinfo-2.0.2" = {
+ name = "istanbul-lib-processinfo";
+ packageName = "istanbul-lib-processinfo";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz";
+ sha512 = "kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==";
+ };
+ };
+ "istanbul-lib-report-3.0.0" = {
+ name = "istanbul-lib-report";
+ packageName = "istanbul-lib-report";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+ sha512 = "wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==";
+ };
+ };
+ "istanbul-lib-source-maps-4.0.0" = {
+ name = "istanbul-lib-source-maps";
+ packageName = "istanbul-lib-source-maps";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
+ sha512 = "c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==";
+ };
+ };
+ "istanbul-reports-3.0.2" = {
+ name = "istanbul-reports";
+ packageName = "istanbul-reports";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
+ sha512 = "9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==";
+ };
+ };
+ "java-properties-1.0.2" = {
+ name = "java-properties";
+ packageName = "java-properties";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz";
+ sha512 = "qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==";
+ };
+ };
+ "js-tokens-4.0.0" = {
+ name = "js-tokens";
+ packageName = "js-tokens";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+ sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+ };
+ };
+ "js-yaml-3.13.1" = {
+ name = "js-yaml";
+ packageName = "js-yaml";
+ version = "3.13.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
+ sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+ };
+ };
+ "jsesc-0.5.0" = {
+ name = "jsesc";
+ packageName = "jsesc";
+ version = "0.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz";
+ sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+ };
+ };
+ "jsesc-2.5.2" = {
+ name = "jsesc";
+ packageName = "jsesc";
+ version = "2.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+ sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+ };
+ };
+ "json-parse-better-errors-1.0.2" = {
+ name = "json-parse-better-errors";
+ packageName = "json-parse-better-errors";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+ sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
+ };
+ };
+ "json-parse-even-better-errors-2.3.1" = {
+ name = "json-parse-even-better-errors";
+ packageName = "json-parse-even-better-errors";
+ version = "2.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
+ sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
+ };
+ };
+ "json-stringify-safe-5.0.1" = {
+ name = "json-stringify-safe";
+ packageName = "json-stringify-safe";
+ version = "5.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ };
+ "json5-2.1.3" = {
+ name = "json5";
+ packageName = "json5";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
+ sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
+ };
+ };
+ "jsonfile-4.0.0" = {
+ name = "jsonfile";
+ packageName = "jsonfile";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
+ sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+ };
+ };
+ "jsonify-0.0.0" = {
+ name = "jsonify";
+ packageName = "jsonify";
+ version = "0.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
+ sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+ };
+ };
+ "jsonparse-1.3.1" = {
+ name = "jsonparse";
+ packageName = "jsonparse";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz";
+ sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+ };
+ };
+ "just-extend-4.1.0" = {
+ name = "just-extend";
+ packageName = "just-extend";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/just-extend/-/just-extend-4.1.0.tgz";
+ sha512 = "ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==";
+ };
+ };
+ "kind-of-3.2.2" = {
+ name = "kind-of";
+ packageName = "kind-of";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ };
+ "kind-of-4.0.0" = {
+ name = "kind-of";
+ packageName = "kind-of";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz";
+ sha1 = "20813df3d712928b207378691a45066fae72dd57";
+ };
+ };
+ "kind-of-5.1.0" = {
+ name = "kind-of";
+ packageName = "kind-of";
+ version = "5.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
+ sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
+ };
+ };
+ "kind-of-6.0.3" = {
+ name = "kind-of";
+ packageName = "kind-of";
+ version = "6.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";
+ sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
+ };
+ };
+ "latest-version-3.1.0" = {
+ name = "latest-version";
+ packageName = "latest-version";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz";
+ sha1 = "a205383fea322b33b5ae3b18abee0dc2f356ee15";
+ };
+ };
+ "lcid-2.0.0" = {
+ name = "lcid";
+ packageName = "lcid";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz";
+ sha512 = "avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==";
+ };
+ };
+ "leven-3.1.0" = {
+ name = "leven";
+ packageName = "leven";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz";
+ sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==";
+ };
+ };
+ "levenary-1.1.1" = {
+ name = "levenary";
+ packageName = "levenary";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz";
+ sha512 = "mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==";
+ };
+ };
+ "lines-and-columns-1.1.6" = {
+ name = "lines-and-columns";
+ packageName = "lines-and-columns";
+ version = "1.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
+ sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+ };
+ };
+ "load-json-file-4.0.0" = {
+ name = "load-json-file";
+ packageName = "load-json-file";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz";
+ sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
+ };
+ };
+ "locate-path-2.0.0" = {
+ name = "locate-path";
+ packageName = "locate-path";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz";
+ sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+ };
+ };
+ "locate-path-3.0.0" = {
+ name = "locate-path";
+ packageName = "locate-path";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+ sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+ };
+ };
+ "locate-path-5.0.0" = {
+ name = "locate-path";
+ packageName = "locate-path";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
+ sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+ };
+ };
+ "lodash-4.17.20" = {
+ name = "lodash";
+ packageName = "lodash";
+ version = "4.17.20";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+ sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+ };
+ };
+ "lodash._baseclone-4.5.7" = {
+ name = "lodash._baseclone";
+ packageName = "lodash._baseclone";
+ version = "4.5.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz";
+ sha1 = "ce42ade08384ef5d62fa77c30f61a46e686f8434";
+ };
+ };
+ "lodash.capitalize-4.2.1" = {
+ name = "lodash.capitalize";
+ packageName = "lodash.capitalize";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz";
+ sha1 = "f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9";
+ };
+ };
+ "lodash.clone-4.3.2" = {
+ name = "lodash.clone";
+ packageName = "lodash.clone";
+ version = "4.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.3.2.tgz";
+ sha1 = "e56b176b6823a7dde38f7f2bf58de7d5971200e9";
+ };
+ };
+ "lodash.clone-4.5.0" = {
+ name = "lodash.clone";
+ packageName = "lodash.clone";
+ version = "4.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz";
+ sha1 = "195870450f5a13192478df4bc3d23d2dea1907b6";
+ };
+ };
+ "lodash.escaperegexp-4.1.2" = {
+ name = "lodash.escaperegexp";
+ packageName = "lodash.escaperegexp";
+ version = "4.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz";
+ sha1 = "64762c48618082518ac3df4ccf5d5886dae20347";
+ };
+ };
+ "lodash.flattendeep-4.4.0" = {
+ name = "lodash.flattendeep";
+ packageName = "lodash.flattendeep";
+ version = "4.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
+ sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
+ };
+ };
+ "lodash.get-4.4.2" = {
+ name = "lodash.get";
+ packageName = "lodash.get";
+ version = "4.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz";
+ sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+ };
+ };
+ "lodash.ismatch-4.4.0" = {
+ name = "lodash.ismatch";
+ packageName = "lodash.ismatch";
+ version = "4.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz";
+ sha1 = "756cb5150ca3ba6f11085a78849645f188f85f37";
+ };
+ };
+ "lodash.isplainobject-4.0.6" = {
+ name = "lodash.isplainobject";
+ packageName = "lodash.isplainobject";
+ version = "4.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
+ sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+ };
+ };
+ "lodash.isstring-4.0.1" = {
+ name = "lodash.isstring";
+ packageName = "lodash.isstring";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz";
+ sha1 = "d527dfb5456eca7cc9bb95d5daeaf88ba54a5451";
+ };
+ };
+ "lodash.map-4.6.0" = {
+ name = "lodash.map";
+ packageName = "lodash.map";
+ version = "4.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz";
+ sha1 = "771ec7839e3473d9c4cde28b19394c3562f4f6d3";
+ };
+ };
+ "lodash.set-4.3.2" = {
+ name = "lodash.set";
+ packageName = "lodash.set";
+ version = "4.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz";
+ sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23";
+ };
+ };
+ "lodash.toarray-4.4.0" = {
+ name = "lodash.toarray";
+ packageName = "lodash.toarray";
+ version = "4.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz";
+ sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
+ };
+ };
+ "lodash.uniq-4.5.0" = {
+ name = "lodash.uniq";
+ packageName = "lodash.uniq";
+ version = "4.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+ sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+ };
+ };
+ "lodash.uniqby-4.7.0" = {
+ name = "lodash.uniqby";
+ packageName = "lodash.uniqby";
+ version = "4.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz";
+ sha1 = "d99c07a669e9e6d24e1362dfe266c67616af1302";
+ };
+ };
+ "log-symbols-2.2.0" = {
+ name = "log-symbols";
+ packageName = "log-symbols";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz";
+ sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==";
+ };
+ };
+ "lolex-2.7.5" = {
+ name = "lolex";
+ packageName = "lolex";
+ version = "2.7.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz";
+ sha512 = "l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==";
+ };
+ };
+ "lolex-5.1.2" = {
+ name = "lolex";
+ packageName = "lolex";
+ version = "5.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz";
+ sha512 = "h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==";
+ };
+ };
+ "longest-1.0.1" = {
+ name = "longest";
+ packageName = "longest";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
+ sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
+ };
+ };
+ "longest-2.0.1" = {
+ name = "longest";
+ packageName = "longest";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz";
+ sha1 = "781e183296aa94f6d4d916dc335d0d17aefa23f8";
+ };
+ };
+ "loose-envify-1.4.0" = {
+ name = "loose-envify";
+ packageName = "loose-envify";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
+ sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
+ };
+ };
+ "lowercase-keys-1.0.1" = {
+ name = "lowercase-keys";
+ packageName = "lowercase-keys";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+ sha512 = "G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==";
+ };
+ };
+ "lru-cache-4.1.5" = {
+ name = "lru-cache";
+ packageName = "lru-cache";
+ version = "4.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+ sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
+ };
+ };
+ "macos-release-2.4.1" = {
+ name = "macos-release";
+ packageName = "macos-release";
+ version = "2.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz";
+ sha512 = "H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==";
+ };
+ };
+ "make-dir-1.3.0" = {
+ name = "make-dir";
+ packageName = "make-dir";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz";
+ sha512 = "2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==";
+ };
+ };
+ "make-dir-2.1.0" = {
+ name = "make-dir";
+ packageName = "make-dir";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
+ sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
+ };
+ };
+ "make-dir-3.1.0" = {
+ name = "make-dir";
+ packageName = "make-dir";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz";
+ sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
+ };
+ };
+ "manage-path-2.0.0" = {
+ name = "manage-path";
+ packageName = "manage-path";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz";
+ sha1 = "f4cf8457b926eeee2a83b173501414bc76eb9597";
+ };
+ };
+ "map-age-cleaner-0.1.3" = {
+ name = "map-age-cleaner";
+ packageName = "map-age-cleaner";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+ sha512 = "bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==";
+ };
+ };
+ "map-cache-0.2.2" = {
+ name = "map-cache";
+ packageName = "map-cache";
+ version = "0.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz";
+ sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+ };
+ };
+ "map-obj-1.0.1" = {
+ name = "map-obj";
+ packageName = "map-obj";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz";
+ sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+ };
+ };
+ "map-obj-4.1.0" = {
+ name = "map-obj";
+ packageName = "map-obj";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz";
+ sha512 = "glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==";
+ };
+ };
+ "map-visit-1.0.0" = {
+ name = "map-visit";
+ packageName = "map-visit";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz";
+ sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+ };
+ };
+ "marked-0.6.3" = {
+ name = "marked";
+ packageName = "marked";
+ version = "0.6.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz";
+ sha512 = "Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==";
+ };
+ };
+ "marked-terminal-3.3.0" = {
+ name = "marked-terminal";
+ packageName = "marked-terminal";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.3.0.tgz";
+ sha512 = "+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==";
+ };
+ };
+ "md5-2.3.0" = {
+ name = "md5";
+ packageName = "md5";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz";
+ sha512 = "T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==";
+ };
+ };
+ "mem-4.3.0" = {
+ name = "mem";
+ packageName = "mem";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz";
+ sha512 = "qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==";
+ };
+ };
+ "meow-7.1.1" = {
+ name = "meow";
+ packageName = "meow";
+ version = "7.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz";
+ sha512 = "GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==";
+ };
+ };
+ "merge-1.2.1" = {
+ name = "merge";
+ packageName = "merge";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz";
+ sha512 = "VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==";
+ };
+ };
+ "merge-descriptors-1.0.1" = {
+ name = "merge-descriptors";
+ packageName = "merge-descriptors";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ };
+ "merge-stream-2.0.0" = {
+ name = "merge-stream";
+ packageName = "merge-stream";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz";
+ sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==";
+ };
+ };
+ "merge2-1.4.1" = {
+ name = "merge2";
+ packageName = "merge2";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+ sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
+ };
+ };
+ "micromatch-3.1.10" = {
+ name = "micromatch";
+ packageName = "micromatch";
+ version = "3.1.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
+ sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
+ };
+ };
+ "micromatch-4.0.2" = {
+ name = "micromatch";
+ packageName = "micromatch";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
+ sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+ };
+ };
+ "mime-1.2.11" = {
+ name = "mime";
+ packageName = "mime";
+ version = "1.2.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz";
+ sha1 = "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10";
+ };
+ };
+ "mime-2.4.6" = {
+ name = "mime";
+ packageName = "mime";
+ version = "2.4.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz";
+ sha512 = "RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==";
+ };
+ };
+ "mime-types-1.0.2" = {
+ name = "mime-types";
+ packageName = "mime-types";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz";
+ sha1 = "995ae1392ab8affcbfcb2641dd054e943c0d5dce";
+ };
+ };
+ "mimic-fn-1.2.0" = {
+ name = "mimic-fn";
+ packageName = "mimic-fn";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz";
+ sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==";
+ };
+ };
+ "mimic-fn-2.1.0" = {
+ name = "mimic-fn";
+ packageName = "mimic-fn";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
+ sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
+ };
+ };
+ "min-indent-1.0.1" = {
+ name = "min-indent";
+ packageName = "min-indent";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz";
+ sha512 = "I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==";
+ };
+ };
+ "minimatch-3.0.4" = {
+ name = "minimatch";
+ packageName = "minimatch";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+ sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+ };
+ };
+ "minimist-0.0.8" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "0.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ };
+ "minimist-1.2.5" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "1.2.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+ sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+ };
+ };
+ "minimist-options-4.1.0" = {
+ name = "minimist-options";
+ packageName = "minimist-options";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz";
+ sha512 = "Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==";
+ };
+ };
+ "mixin-deep-1.3.2" = {
+ name = "mixin-deep";
+ packageName = "mixin-deep";
+ version = "1.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
+ sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
+ };
+ };
+ "mkdirp-0.5.1" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "0.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ };
+ "mocha-6.2.0" = {
+ name = "mocha";
+ packageName = "mocha";
+ version = "6.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz";
+ sha512 = "qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==";
+ };
+ };
+ "mocha-junit-reporter-1.23.3" = {
+ name = "mocha-junit-reporter";
+ packageName = "mocha-junit-reporter";
+ version = "1.23.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.3.tgz";
+ sha512 = "ed8LqbRj1RxZfjt/oC9t12sfrWsjZ3gNnbhV1nuj9R/Jb5/P3Xb4duv2eCfCDMYH+fEu0mqca7m4wsiVjsxsvA==";
+ };
+ };
+ "mocha-multi-reporters-1.1.7" = {
+ name = "mocha-multi-reporters";
+ packageName = "mocha-multi-reporters";
+ version = "1.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mocha-multi-reporters/-/mocha-multi-reporters-1.1.7.tgz";
+ sha1 = "cc7f3f4d32f478520941d852abb64d9988587d82";
+ };
+ };
+ "modify-values-1.0.1" = {
+ name = "modify-values";
+ packageName = "modify-values";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz";
+ sha512 = "xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==";
+ };
+ };
+ "module-not-found-error-1.0.1" = {
+ name = "module-not-found-error";
+ packageName = "module-not-found-error";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz";
+ sha1 = "cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0";
+ };
+ };
+ "ms-2.0.0" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ };
+ "ms-2.1.1" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+ sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+ };
+ };
+ "ms-2.1.2" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+ sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+ };
+ };
+ "mute-stream-0.0.7" = {
+ name = "mute-stream";
+ packageName = "mute-stream";
+ version = "0.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz";
+ sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
+ };
+ };
+ "nan-2.14.1" = {
+ name = "nan";
+ packageName = "nan";
+ version = "2.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
+ sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
+ };
+ };
+ "nanomatch-1.2.13" = {
+ name = "nanomatch";
+ packageName = "nanomatch";
+ version = "1.2.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
+ sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
+ };
+ };
+ "neo-async-2.6.2" = {
+ name = "neo-async";
+ packageName = "neo-async";
+ version = "2.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+ sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
+ };
+ };
+ "nerf-dart-1.0.0" = {
+ name = "nerf-dart";
+ packageName = "nerf-dart";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz";
+ sha1 = "e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a";
+ };
+ };
+ "nice-try-1.0.5" = {
+ name = "nice-try";
+ packageName = "nice-try";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
+ sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
+ };
+ };
+ "nise-1.5.3" = {
+ name = "nise";
+ packageName = "nise";
+ version = "1.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz";
+ sha512 = "Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==";
+ };
+ };
+ "node-emoji-1.10.0" = {
+ name = "node-emoji";
+ packageName = "node-emoji";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz";
+ sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==";
+ };
+ };
+ "node-environment-flags-1.0.5" = {
+ name = "node-environment-flags";
+ packageName = "node-environment-flags";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz";
+ sha512 = "VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==";
+ };
+ };
+ "node-fetch-2.6.1" = {
+ name = "node-fetch";
+ packageName = "node-fetch";
+ version = "2.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz";
+ sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==";
+ };
+ };
+ "node-modules-regexp-1.0.0" = {
+ name = "node-modules-regexp";
+ packageName = "node-modules-regexp";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
+ sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
+ };
+ };
+ "node-preload-0.2.1" = {
+ name = "node-preload";
+ packageName = "node-preload";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz";
+ sha512 = "RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==";
+ };
+ };
+ "node-releases-1.1.61" = {
+ name = "node-releases";
+ packageName = "node-releases";
+ version = "1.1.61";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz";
+ sha512 = "DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==";
+ };
+ };
+ "node-uuid-1.4.8" = {
+ name = "node-uuid";
+ packageName = "node-uuid";
+ version = "1.4.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz";
+ sha1 = "b040eb0923968afabf8d32fb1f17f1167fdab907";
+ };
+ };
+ "nodemon-1.19.1" = {
+ name = "nodemon";
+ packageName = "nodemon";
+ version = "1.19.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nodemon/-/nodemon-1.19.1.tgz";
+ sha512 = "/DXLzd/GhiaDXXbGId5BzxP1GlsqtMGM9zTmkWrgXtSqjKmGSbLicM/oAy4FR0YWm14jCHRwnR31AHS2dYFHrg==";
+ };
+ };
+ "nopt-1.0.10" = {
+ name = "nopt";
+ packageName = "nopt";
+ version = "1.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz";
+ sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+ };
+ };
+ "normalize-package-data-2.5.0" = {
+ name = "normalize-package-data";
+ packageName = "normalize-package-data";
+ version = "2.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+ sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
+ };
+ };
+ "normalize-path-2.1.1" = {
+ name = "normalize-path";
+ packageName = "normalize-path";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz";
+ sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+ };
+ };
+ "normalize-path-3.0.0" = {
+ name = "normalize-path";
+ packageName = "normalize-path";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+ sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+ };
+ };
+ "normalize-url-4.5.0" = {
+ name = "normalize-url";
+ packageName = "normalize-url";
+ version = "4.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz";
+ sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==";
+ };
+ };
+ "npm-6.14.8" = {
+ name = "npm";
+ packageName = "npm";
+ version = "6.14.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm/-/npm-6.14.8.tgz";
+ sha512 = "HBZVBMYs5blsj94GTeQZel7s9odVuuSUHy1+AlZh7rPVux1os2ashvEGLy/STNK7vUjbrCg5Kq9/GXisJgdf6A==";
+ };
+ };
+ "npm-run-path-2.0.2" = {
+ name = "npm-run-path";
+ packageName = "npm-run-path";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz";
+ sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+ };
+ };
+ "npm-run-path-4.0.1" = {
+ name = "npm-run-path";
+ packageName = "npm-run-path";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz";
+ sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==";
+ };
+ };
+ "number-is-nan-1.0.1" = {
+ name = "number-is-nan";
+ packageName = "number-is-nan";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ };
+ "nyc-15.1.0" = {
+ name = "nyc";
+ packageName = "nyc";
+ version = "15.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz";
+ sha512 = "jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==";
+ };
+ };
+ "oauth-sign-0.4.0" = {
+ name = "oauth-sign";
+ packageName = "oauth-sign";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz";
+ sha1 = "f22956f31ea7151a821e5f2fb32c113cad8b9f69";
+ };
+ };
+ "object-copy-0.1.0" = {
+ name = "object-copy";
+ packageName = "object-copy";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz";
+ sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+ };
+ };
+ "object-inspect-1.8.0" = {
+ name = "object-inspect";
+ packageName = "object-inspect";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+ sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
+ };
+ };
+ "object-keys-1.1.1" = {
+ name = "object-keys";
+ packageName = "object-keys";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
+ sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+ };
+ };
+ "object-visit-1.0.1" = {
+ name = "object-visit";
+ packageName = "object-visit";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz";
+ sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+ };
+ };
+ "object.assign-4.1.0" = {
+ name = "object.assign";
+ packageName = "object.assign";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
+ sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
+ };
+ };
+ "object.getownpropertydescriptors-2.1.0" = {
+ name = "object.getownpropertydescriptors";
+ packageName = "object.getownpropertydescriptors";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
+ sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
+ };
+ };
+ "object.pick-1.3.0" = {
+ name = "object.pick";
+ packageName = "object.pick";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz";
+ sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+ };
+ };
+ "octokit-pagination-methods-1.1.0" = {
+ name = "octokit-pagination-methods";
+ packageName = "octokit-pagination-methods";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz";
+ sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
+ };
+ };
+ "once-1.4.0" = {
+ name = "once";
+ packageName = "once";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ };
+ "onetime-2.0.1" = {
+ name = "onetime";
+ packageName = "onetime";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz";
+ sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+ };
+ };
+ "onetime-5.1.2" = {
+ name = "onetime";
+ packageName = "onetime";
+ version = "5.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
+ sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
+ };
+ };
+ "opt-cli-1.5.1" = {
+ name = "opt-cli";
+ packageName = "opt-cli";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/opt-cli/-/opt-cli-1.5.1.tgz";
+ sha1 = "04db447b13c96b992eb31685266f4ed0d9736dc2";
+ };
+ };
+ "os-locale-3.1.0" = {
+ name = "os-locale";
+ packageName = "os-locale";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz";
+ sha512 = "Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==";
+ };
+ };
+ "os-name-3.1.0" = {
+ name = "os-name";
+ packageName = "os-name";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz";
+ sha512 = "h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==";
+ };
+ };
+ "os-tmpdir-1.0.2" = {
+ name = "os-tmpdir";
+ packageName = "os-tmpdir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ };
+ "p-defer-1.0.0" = {
+ name = "p-defer";
+ packageName = "p-defer";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz";
+ sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+ };
+ };
+ "p-filter-2.1.0" = {
+ name = "p-filter";
+ packageName = "p-filter";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz";
+ sha512 = "ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==";
+ };
+ };
+ "p-finally-1.0.0" = {
+ name = "p-finally";
+ packageName = "p-finally";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
+ sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+ };
+ };
+ "p-finally-2.0.1" = {
+ name = "p-finally";
+ packageName = "p-finally";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz";
+ sha512 = "vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==";
+ };
+ };
+ "p-is-promise-2.1.0" = {
+ name = "p-is-promise";
+ packageName = "p-is-promise";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz";
+ sha512 = "Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==";
+ };
+ };
+ "p-is-promise-3.0.0" = {
+ name = "p-is-promise";
+ packageName = "p-is-promise";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz";
+ sha512 = "Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==";
+ };
+ };
+ "p-limit-1.3.0" = {
+ name = "p-limit";
+ packageName = "p-limit";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz";
+ sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==";
+ };
+ };
+ "p-limit-2.3.0" = {
+ name = "p-limit";
+ packageName = "p-limit";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+ sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+ };
+ };
+ "p-locate-2.0.0" = {
+ name = "p-locate";
+ packageName = "p-locate";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz";
+ sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+ };
+ };
+ "p-locate-3.0.0" = {
+ name = "p-locate";
+ packageName = "p-locate";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+ sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+ };
+ };
+ "p-locate-4.1.0" = {
+ name = "p-locate";
+ packageName = "p-locate";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
+ sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
+ };
+ };
+ "p-map-2.1.0" = {
+ name = "p-map";
+ packageName = "p-map";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz";
+ sha512 = "y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==";
+ };
+ };
+ "p-map-3.0.0" = {
+ name = "p-map";
+ packageName = "p-map";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz";
+ sha512 = "d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==";
+ };
+ };
+ "p-reduce-2.1.0" = {
+ name = "p-reduce";
+ packageName = "p-reduce";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz";
+ sha512 = "2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==";
+ };
+ };
+ "p-retry-4.2.0" = {
+ name = "p-retry";
+ packageName = "p-retry";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz";
+ sha512 = "jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==";
+ };
+ };
+ "p-try-1.0.0" = {
+ name = "p-try";
+ packageName = "p-try";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz";
+ sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+ };
+ };
+ "p-try-2.2.0" = {
+ name = "p-try";
+ packageName = "p-try";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+ sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+ };
+ };
+ "package-hash-4.0.0" = {
+ name = "package-hash";
+ packageName = "package-hash";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz";
+ sha512 = "whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==";
+ };
+ };
+ "package-json-4.0.1" = {
+ name = "package-json";
+ packageName = "package-json";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz";
+ sha1 = "8869a0401253661c4c4ca3da6c2121ed555f5eed";
+ };
+ };
+ "pad-right-0.2.2" = {
+ name = "pad-right";
+ packageName = "pad-right";
+ version = "0.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz";
+ sha1 = "6fbc924045d244f2a2a244503060d3bfc6009774";
+ };
+ };
+ "parent-module-1.0.1" = {
+ name = "parent-module";
+ packageName = "parent-module";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz";
+ sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
+ };
+ };
+ "parse-json-4.0.0" = {
+ name = "parse-json";
+ packageName = "parse-json";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz";
+ sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+ };
+ };
+ "parse-json-5.1.0" = {
+ name = "parse-json";
+ packageName = "parse-json";
+ version = "5.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz";
+ sha512 = "+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==";
+ };
+ };
+ "parse-passwd-1.0.0" = {
+ name = "parse-passwd";
+ packageName = "parse-passwd";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz";
+ sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
+ };
+ };
+ "pascalcase-0.1.1" = {
+ name = "pascalcase";
+ packageName = "pascalcase";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz";
+ sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+ };
+ };
+ "path-dirname-1.0.2" = {
+ name = "path-dirname";
+ packageName = "path-dirname";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
+ sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+ };
+ };
+ "path-exists-3.0.0" = {
+ name = "path-exists";
+ packageName = "path-exists";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+ sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+ };
+ };
+ "path-exists-4.0.0" = {
+ name = "path-exists";
+ packageName = "path-exists";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+ sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+ };
+ };
+ "path-is-absolute-1.0.1" = {
+ name = "path-is-absolute";
+ packageName = "path-is-absolute";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ };
+ "path-is-inside-1.0.2" = {
+ name = "path-is-inside";
+ packageName = "path-is-inside";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz";
+ sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+ };
+ };
+ "path-key-2.0.1" = {
+ name = "path-key";
+ packageName = "path-key";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz";
+ sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+ };
+ };
+ "path-key-3.1.1" = {
+ name = "path-key";
+ packageName = "path-key";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
+ sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
+ };
+ };
+ "path-parse-1.0.6" = {
+ name = "path-parse";
+ packageName = "path-parse";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+ sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+ };
+ };
+ "path-to-regexp-1.8.0" = {
+ name = "path-to-regexp";
+ packageName = "path-to-regexp";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz";
+ sha512 = "n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==";
+ };
+ };
+ "path-type-3.0.0" = {
+ name = "path-type";
+ packageName = "path-type";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz";
+ sha512 = "T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==";
+ };
+ };
+ "path-type-4.0.0" = {
+ name = "path-type";
+ packageName = "path-type";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
+ sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+ };
+ };
+ "pathval-1.1.0" = {
+ name = "pathval";
+ packageName = "pathval";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz";
+ sha1 = "b942e6d4bde653005ef6b71361def8727d0645e0";
+ };
+ };
+ "picomatch-2.2.2" = {
+ name = "picomatch";
+ packageName = "picomatch";
+ version = "2.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
+ sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+ };
+ };
+ "pify-3.0.0" = {
+ name = "pify";
+ packageName = "pify";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+ sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+ };
+ };
+ "pify-4.0.1" = {
+ name = "pify";
+ packageName = "pify";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
+ sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==";
+ };
+ };
+ "pirates-4.0.1" = {
+ name = "pirates";
+ packageName = "pirates";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz";
+ sha512 = "WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==";
+ };
+ };
+ "pkg-conf-2.1.0" = {
+ name = "pkg-conf";
+ packageName = "pkg-conf";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz";
+ sha1 = "2126514ca6f2abfebd168596df18ba57867f0058";
+ };
+ };
+ "pkg-dir-3.0.0" = {
+ name = "pkg-dir";
+ packageName = "pkg-dir";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz";
+ sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==";
+ };
+ };
+ "pkg-dir-4.2.0" = {
+ name = "pkg-dir";
+ packageName = "pkg-dir";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz";
+ sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
+ };
+ };
+ "posix-character-classes-0.1.1" = {
+ name = "posix-character-classes";
+ packageName = "posix-character-classes";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+ sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+ };
+ };
+ "prepend-http-1.0.4" = {
+ name = "prepend-http";
+ packageName = "prepend-http";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz";
+ sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+ };
+ };
+ "process-nextick-args-2.0.1" = {
+ name = "process-nextick-args";
+ packageName = "process-nextick-args";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+ };
+ };
+ "process-on-spawn-1.0.0" = {
+ name = "process-on-spawn";
+ packageName = "process-on-spawn";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz";
+ sha512 = "1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==";
+ };
+ };
+ "proxyquire-2.1.3" = {
+ name = "proxyquire";
+ packageName = "proxyquire";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz";
+ sha512 = "BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==";
+ };
+ };
+ "pseudomap-1.0.2" = {
+ name = "pseudomap";
+ packageName = "pseudomap";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ };
+ "psl-1.8.0" = {
+ name = "psl";
+ packageName = "psl";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+ sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+ };
+ };
+ "pstree.remy-1.1.8" = {
+ name = "pstree.remy";
+ packageName = "pstree.remy";
+ version = "1.1.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz";
+ sha512 = "77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==";
+ };
+ };
+ "pump-3.0.0" = {
+ name = "pump";
+ packageName = "pump";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+ sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+ };
+ };
+ "punycode-2.1.1" = {
+ name = "punycode";
+ packageName = "punycode";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+ sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+ };
+ };
+ "q-1.5.1" = {
+ name = "q";
+ packageName = "q";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/q/-/q-1.5.1.tgz";
+ sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
+ };
+ };
+ "qs-1.2.2" = {
+ name = "qs";
+ packageName = "qs";
+ version = "1.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz";
+ sha1 = "19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88";
+ };
+ };
+ "quick-lru-4.0.1" = {
+ name = "quick-lru";
+ packageName = "quick-lru";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz";
+ sha512 = "ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==";
+ };
+ };
+ "rc-1.2.8" = {
+ name = "rc";
+ packageName = "rc";
+ version = "1.2.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+ sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+ };
+ };
+ "read-pkg-3.0.0" = {
+ name = "read-pkg";
+ packageName = "read-pkg";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz";
+ sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+ };
+ };
+ "read-pkg-5.2.0" = {
+ name = "read-pkg";
+ packageName = "read-pkg";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz";
+ sha512 = "Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==";
+ };
+ };
+ "read-pkg-up-4.0.0" = {
+ name = "read-pkg-up";
+ packageName = "read-pkg-up";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
+ sha512 = "6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==";
+ };
+ };
+ "read-pkg-up-6.0.0" = {
+ name = "read-pkg-up";
+ packageName = "read-pkg-up";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-6.0.0.tgz";
+ sha512 = "odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw==";
+ };
+ };
+ "read-pkg-up-7.0.1" = {
+ name = "read-pkg-up";
+ packageName = "read-pkg-up";
+ version = "7.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
+ sha512 = "zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==";
+ };
+ };
+ "readable-stream-1.0.34" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "1.0.34";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz";
+ sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+ };
+ };
+ "readable-stream-2.3.7" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "2.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+ sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+ };
+ };
+ "readdirp-2.2.1" = {
+ name = "readdirp";
+ packageName = "readdirp";
+ version = "2.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
+ sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
+ };
+ };
+ "redent-3.0.0" = {
+ name = "redent";
+ packageName = "redent";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz";
+ sha512 = "6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==";
+ };
+ };
+ "redeyed-2.1.1" = {
+ name = "redeyed";
+ packageName = "redeyed";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz";
+ sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
+ };
+ };
+ "regenerate-1.4.1" = {
+ name = "regenerate";
+ packageName = "regenerate";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz";
+ sha512 = "j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==";
+ };
+ };
+ "regenerate-unicode-properties-8.2.0" = {
+ name = "regenerate-unicode-properties";
+ packageName = "regenerate-unicode-properties";
+ version = "8.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
+ sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
+ };
+ };
+ "regenerator-runtime-0.13.7" = {
+ name = "regenerator-runtime";
+ packageName = "regenerator-runtime";
+ version = "0.13.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+ sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+ };
+ };
+ "regenerator-transform-0.14.5" = {
+ name = "regenerator-transform";
+ packageName = "regenerator-transform";
+ version = "0.14.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+ sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
+ };
+ };
+ "regex-not-1.0.2" = {
+ name = "regex-not";
+ packageName = "regex-not";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
+ sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
+ };
+ };
+ "regexpu-core-4.7.0" = {
+ name = "regexpu-core";
+ packageName = "regexpu-core";
+ version = "4.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz";
+ sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
+ };
+ };
+ "registry-auth-token-3.4.0" = {
+ name = "registry-auth-token";
+ packageName = "registry-auth-token";
+ version = "3.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz";
+ sha512 = "4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==";
+ };
+ };
+ "registry-auth-token-4.2.0" = {
+ name = "registry-auth-token";
+ packageName = "registry-auth-token";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz";
+ sha512 = "P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==";
+ };
+ };
+ "registry-url-3.1.0" = {
+ name = "registry-url";
+ packageName = "registry-url";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz";
+ sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+ };
+ };
+ "regjsgen-0.5.2" = {
+ name = "regjsgen";
+ packageName = "regjsgen";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz";
+ sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
+ };
+ };
+ "regjsparser-0.6.4" = {
+ name = "regjsparser";
+ packageName = "regjsparser";
+ version = "0.6.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz";
+ sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
+ };
+ };
+ "release-zalgo-1.0.0" = {
+ name = "release-zalgo";
+ packageName = "release-zalgo";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz";
+ sha1 = "09700b7e5074329739330e535c5a90fb67851730";
+ };
+ };
+ "remove-trailing-separator-1.1.0" = {
+ name = "remove-trailing-separator";
+ packageName = "remove-trailing-separator";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ };
+ "repeat-element-1.1.3" = {
+ name = "repeat-element";
+ packageName = "repeat-element";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
+ sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
+ };
+ };
+ "repeat-string-1.6.1" = {
+ name = "repeat-string";
+ packageName = "repeat-string";
+ version = "1.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ };
+ "request-2.42.0" = {
+ name = "request";
+ packageName = "request";
+ version = "2.42.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request/-/request-2.42.0.tgz";
+ sha1 = "572bd0148938564040ac7ab148b96423a063304a";
+ };
+ };
+ "require-directory-2.1.1" = {
+ name = "require-directory";
+ packageName = "require-directory";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ };
+ "require-main-filename-1.0.1" = {
+ name = "require-main-filename";
+ packageName = "require-main-filename";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz";
+ sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+ };
+ };
+ "require-main-filename-2.0.0" = {
+ name = "require-main-filename";
+ packageName = "require-main-filename";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+ sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+ };
+ };
+ "resolve-1.17.0" = {
+ name = "resolve";
+ packageName = "resolve";
+ version = "1.17.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+ sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
+ };
+ };
+ "resolve-dir-1.0.1" = {
+ name = "resolve-dir";
+ packageName = "resolve-dir";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz";
+ sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
+ };
+ };
+ "resolve-from-3.0.0" = {
+ name = "resolve-from";
+ packageName = "resolve-from";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz";
+ sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+ };
+ };
+ "resolve-from-4.0.0" = {
+ name = "resolve-from";
+ packageName = "resolve-from";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz";
+ sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
+ };
+ };
+ "resolve-from-5.0.0" = {
+ name = "resolve-from";
+ packageName = "resolve-from";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz";
+ sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==";
+ };
+ };
+ "resolve-global-1.0.0" = {
+ name = "resolve-global";
+ packageName = "resolve-global";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz";
+ sha512 = "zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==";
+ };
+ };
+ "resolve-url-0.2.1" = {
+ name = "resolve-url";
+ packageName = "resolve-url";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz";
+ sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+ };
+ };
+ "restore-cursor-2.0.0" = {
+ name = "restore-cursor";
+ packageName = "restore-cursor";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz";
+ sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+ };
+ };
+ "resumer-0.0.0" = {
+ name = "resumer";
+ packageName = "resumer";
+ version = "0.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
+ sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
+ };
+ };
+ "ret-0.1.15" = {
+ name = "ret";
+ packageName = "ret";
+ version = "0.1.15";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
+ sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
+ };
+ };
+ "retry-0.12.0" = {
+ name = "retry";
+ packageName = "retry";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
+ sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+ };
+ };
+ "reusify-1.0.4" = {
+ name = "reusify";
+ packageName = "reusify";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
+ sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
+ };
+ };
+ "right-pad-1.0.1" = {
+ name = "right-pad";
+ packageName = "right-pad";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz";
+ sha1 = "8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0";
+ };
+ };
+ "rimraf-3.0.2" = {
+ name = "rimraf";
+ packageName = "rimraf";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
+ sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+ };
+ };
+ "run-async-2.4.1" = {
+ name = "run-async";
+ packageName = "run-async";
+ version = "2.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz";
+ sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
+ };
+ };
+ "run-parallel-1.1.9" = {
+ name = "run-parallel";
+ packageName = "run-parallel";
+ version = "1.1.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz";
+ sha512 = "DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==";
+ };
+ };
+ "rxjs-6.6.3" = {
+ name = "rxjs";
+ packageName = "rxjs";
+ version = "6.6.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz";
+ sha512 = "trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==";
+ };
+ };
+ "safe-buffer-5.1.2" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+ };
+ };
+ "safe-regex-1.1.0" = {
+ name = "safe-regex";
+ packageName = "safe-regex";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
+ sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+ };
+ };
+ "safer-buffer-2.1.2" = {
+ name = "safer-buffer";
+ packageName = "safer-buffer";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+ };
+ };
+ "semantic-release-15.13.18" = {
+ name = "semantic-release";
+ packageName = "semantic-release";
+ version = "15.13.18";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.18.tgz";
+ sha512 = "JtfdrhF1zRm91nJH/Rg3taftbWGwktJqqrJJdbmZGKYx63cfC4PoaS0jxRifGJUdmmgW/Kxz8f5bhtB+p1bu8A==";
+ };
+ };
+ "semver-5.7.1" = {
+ name = "semver";
+ packageName = "semver";
+ version = "5.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+ sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+ };
+ };
+ "semver-6.3.0" = {
+ name = "semver";
+ packageName = "semver";
+ version = "6.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+ sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+ };
+ };
+ "semver-7.0.0" = {
+ name = "semver";
+ packageName = "semver";
+ version = "7.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz";
+ sha512 = "+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==";
+ };
+ };
+ "semver-diff-2.1.0" = {
+ name = "semver-diff";
+ packageName = "semver-diff";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz";
+ sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36";
+ };
+ };
+ "semver-regex-2.0.0" = {
+ name = "semver-regex";
+ packageName = "semver-regex";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz";
+ sha512 = "mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==";
+ };
+ };
+ "set-blocking-2.0.0" = {
+ name = "set-blocking";
+ packageName = "set-blocking";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ };
+ "set-value-2.0.1" = {
+ name = "set-value";
+ packageName = "set-value";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz";
+ sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==";
+ };
+ };
+ "shebang-command-1.2.0" = {
+ name = "shebang-command";
+ packageName = "shebang-command";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
+ sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+ };
+ };
+ "shebang-command-2.0.0" = {
+ name = "shebang-command";
+ packageName = "shebang-command";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
+ sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
+ };
+ };
+ "shebang-regex-1.0.0" = {
+ name = "shebang-regex";
+ packageName = "shebang-regex";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz";
+ sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+ };
+ };
+ "shebang-regex-3.0.0" = {
+ name = "shebang-regex";
+ packageName = "shebang-regex";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
+ sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
+ };
+ };
+ "signal-exit-3.0.3" = {
+ name = "signal-exit";
+ packageName = "signal-exit";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+ sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+ };
+ };
+ "signale-1.4.0" = {
+ name = "signale";
+ packageName = "signale";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz";
+ sha512 = "iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==";
+ };
+ };
+ "sinon-6.3.5" = {
+ name = "sinon";
+ packageName = "sinon";
+ version = "6.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sinon/-/sinon-6.3.5.tgz";
+ sha512 = "xgoZ2gKjyVRcF08RrIQc+srnSyY1JDJtxu3Nsz07j1ffjgXoY6uPLf/qja6nDBZgzYYEovVkFryw2+KiZz11xQ==";
+ };
+ };
+ "slash-2.0.0" = {
+ name = "slash";
+ packageName = "slash";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz";
+ sha512 = "ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==";
+ };
+ };
+ "slash-3.0.0" = {
+ name = "slash";
+ packageName = "slash";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
+ sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+ };
+ };
+ "snapdragon-0.8.2" = {
+ name = "snapdragon";
+ packageName = "snapdragon";
+ version = "0.8.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
+ sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
+ };
+ };
+ "snapdragon-node-2.1.1" = {
+ name = "snapdragon-node";
+ packageName = "snapdragon-node";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+ sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
+ };
+ };
+ "snapdragon-util-3.0.1" = {
+ name = "snapdragon-util";
+ packageName = "snapdragon-util";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+ sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
+ };
+ };
+ "sntp-0.2.4" = {
+ name = "sntp";
+ packageName = "sntp";
+ version = "0.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz";
+ sha1 = "fb885f18b0f3aad189f824862536bceeec750900";
+ };
+ };
+ "source-map-0.5.7" = {
+ name = "source-map";
+ packageName = "source-map";
+ version = "0.5.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ };
+ "source-map-0.6.1" = {
+ name = "source-map";
+ packageName = "source-map";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+ sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+ };
+ };
+ "source-map-resolve-0.5.3" = {
+ name = "source-map-resolve";
+ packageName = "source-map-resolve";
+ version = "0.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+ sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
+ };
+ };
+ "source-map-support-0.5.19" = {
+ name = "source-map-support";
+ packageName = "source-map-support";
+ version = "0.5.19";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
+ sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
+ };
+ };
+ "source-map-url-0.4.0" = {
+ name = "source-map-url";
+ packageName = "source-map-url";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz";
+ sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+ };
+ };
+ "spawn-command-0.0.2" = {
+ name = "spawn-command";
+ packageName = "spawn-command";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz";
+ sha1 = "9544e1a43ca045f8531aac1a48cb29bdae62338e";
+ };
+ };
+ "spawn-command-0.0.2-1" = {
+ name = "spawn-command";
+ packageName = "spawn-command";
+ version = "0.0.2-1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz";
+ sha1 = "62f5e9466981c1b796dc5929937e11c9c6921bd0";
+ };
+ };
+ "spawn-error-forwarder-1.0.0" = {
+ name = "spawn-error-forwarder";
+ packageName = "spawn-error-forwarder";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz";
+ sha1 = "1afd94738e999b0346d7b9fc373be55e07577029";
+ };
+ };
+ "spawn-wrap-2.0.0" = {
+ name = "spawn-wrap";
+ packageName = "spawn-wrap";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz";
+ sha512 = "EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==";
+ };
+ };
+ "spdx-correct-3.1.1" = {
+ name = "spdx-correct";
+ packageName = "spdx-correct";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
+ sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
+ };
+ };
+ "spdx-exceptions-2.3.0" = {
+ name = "spdx-exceptions";
+ packageName = "spdx-exceptions";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+ sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
+ };
+ };
+ "spdx-expression-parse-3.0.1" = {
+ name = "spdx-expression-parse";
+ packageName = "spdx-expression-parse";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+ sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
+ };
+ };
+ "spdx-license-ids-3.0.5" = {
+ name = "spdx-license-ids";
+ packageName = "spdx-license-ids";
+ version = "3.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+ sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==";
+ };
+ };
+ "split-0.2.10" = {
+ name = "split";
+ packageName = "split";
+ version = "0.2.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split/-/split-0.2.10.tgz";
+ sha1 = "67097c601d697ce1368f418f06cd201cf0521a57";
+ };
+ };
+ "split-1.0.1" = {
+ name = "split";
+ packageName = "split";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split/-/split-1.0.1.tgz";
+ sha512 = "mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==";
+ };
+ };
+ "split-string-3.1.0" = {
+ name = "split-string";
+ packageName = "split-string";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz";
+ sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==";
+ };
+ };
+ "split2-1.0.0" = {
+ name = "split2";
+ packageName = "split2";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz";
+ sha1 = "52e2e221d88c75f9a73f90556e263ff96772b314";
+ };
+ };
+ "split2-2.2.0" = {
+ name = "split2";
+ packageName = "split2";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz";
+ sha512 = "RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==";
+ };
+ };
+ "sprintf-js-1.0.3" = {
+ name = "sprintf-js";
+ packageName = "sprintf-js";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ };
+ "static-extend-0.1.2" = {
+ name = "static-extend";
+ packageName = "static-extend";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz";
+ sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+ };
+ };
+ "stream-combiner-0.0.4" = {
+ name = "stream-combiner";
+ packageName = "stream-combiner";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz";
+ sha1 = "4d5e433c185261dde623ca3f44c586bcf5c4ad14";
+ };
+ };
+ "stream-combiner2-1.1.1" = {
+ name = "stream-combiner2";
+ packageName = "stream-combiner2";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz";
+ sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
+ };
+ };
+ "string-width-1.0.2" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ };
+ "string-width-2.1.1" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+ sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+ };
+ };
+ "string-width-3.1.0" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+ sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+ };
+ };
+ "string-width-4.2.0" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
+ sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
+ };
+ };
+ "string.prototype.trimend-1.0.1" = {
+ name = "string.prototype.trimend";
+ packageName = "string.prototype.trimend";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+ sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
+ };
+ };
+ "string.prototype.trimstart-1.0.1" = {
+ name = "string.prototype.trimstart";
+ packageName = "string.prototype.trimstart";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+ sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==";
+ };
+ };
+ "string_decoder-0.10.31" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "0.10.31";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ };
+ "string_decoder-1.1.1" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+ };
+ };
+ "stringstream-0.0.6" = {
+ name = "stringstream";
+ packageName = "stringstream";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz";
+ sha512 = "87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==";
+ };
+ };
+ "strip-ansi-3.0.1" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ };
+ "strip-ansi-4.0.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ };
+ "strip-ansi-5.2.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+ sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+ };
+ };
+ "strip-ansi-6.0.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+ sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+ };
+ };
+ "strip-bom-3.0.0" = {
+ name = "strip-bom";
+ packageName = "strip-bom";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
+ sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+ };
+ };
+ "strip-bom-4.0.0" = {
+ name = "strip-bom";
+ packageName = "strip-bom";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz";
+ sha512 = "3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==";
+ };
+ };
+ "strip-eof-1.0.0" = {
+ name = "strip-eof";
+ packageName = "strip-eof";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz";
+ sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+ };
+ };
+ "strip-final-newline-2.0.0" = {
+ name = "strip-final-newline";
+ packageName = "strip-final-newline";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+ sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==";
+ };
+ };
+ "strip-indent-3.0.0" = {
+ name = "strip-indent";
+ packageName = "strip-indent";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz";
+ sha512 = "laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==";
+ };
+ };
+ "strip-json-comments-2.0.1" = {
+ name = "strip-json-comments";
+ packageName = "strip-json-comments";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ };
+ "strip-json-comments-3.0.1" = {
+ name = "strip-json-comments";
+ packageName = "strip-json-comments";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz";
+ sha512 = "VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==";
+ };
+ };
+ "supports-color-5.5.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "5.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+ sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+ };
+ };
+ "supports-color-6.0.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz";
+ sha512 = "on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==";
+ };
+ };
+ "supports-color-7.2.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "7.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+ sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+ };
+ };
+ "supports-hyperlinks-1.0.1" = {
+ name = "supports-hyperlinks";
+ packageName = "supports-hyperlinks";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz";
+ sha512 = "HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==";
+ };
+ };
+ "tape-2.3.0" = {
+ name = "tape";
+ packageName = "tape";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tape/-/tape-2.3.0.tgz";
+ sha1 = "0dfeec709227fbcc9170abe7f046962b271431db";
+ };
+ };
+ "temp-dir-1.0.0" = {
+ name = "temp-dir";
+ packageName = "temp-dir";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz";
+ sha1 = "0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d";
+ };
+ };
+ "tempy-0.3.0" = {
+ name = "tempy";
+ packageName = "tempy";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz";
+ sha512 = "WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==";
+ };
+ };
+ "term-size-1.2.0" = {
+ name = "term-size";
+ packageName = "term-size";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz";
+ sha1 = "458b83887f288fc56d6fffbfad262e26638efa69";
+ };
+ };
+ "test-exclude-5.2.3" = {
+ name = "test-exclude";
+ packageName = "test-exclude";
+ version = "5.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz";
+ sha512 = "M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==";
+ };
+ };
+ "test-exclude-6.0.0" = {
+ name = "test-exclude";
+ packageName = "test-exclude";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz";
+ sha512 = "cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==";
+ };
+ };
+ "text-extensions-1.9.0" = {
+ name = "text-extensions";
+ packageName = "text-extensions";
+ version = "1.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz";
+ sha512 = "wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==";
+ };
+ };
+ "through-2.3.8" = {
+ name = "through";
+ packageName = "through";
+ version = "2.3.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ };
+ "through2-2.0.5" = {
+ name = "through2";
+ packageName = "through2";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
+ sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+ };
+ };
+ "through2-3.0.2" = {
+ name = "through2";
+ packageName = "through2";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz";
+ sha512 = "enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==";
+ };
+ };
+ "timed-out-4.0.1" = {
+ name = "timed-out";
+ packageName = "timed-out";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz";
+ sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+ };
+ };
+ "tmp-0.0.33" = {
+ name = "tmp";
+ packageName = "tmp";
+ version = "0.0.33";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz";
+ sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
+ };
+ };
+ "to-fast-properties-2.0.0" = {
+ name = "to-fast-properties";
+ packageName = "to-fast-properties";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+ sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+ };
+ };
+ "to-object-path-0.3.0" = {
+ name = "to-object-path";
+ packageName = "to-object-path";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz";
+ sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+ };
+ };
+ "to-regex-3.0.2" = {
+ name = "to-regex";
+ packageName = "to-regex";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
+ sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
+ };
+ };
+ "to-regex-range-2.1.1" = {
+ name = "to-regex-range";
+ packageName = "to-regex-range";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz";
+ sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+ };
+ };
+ "to-regex-range-5.0.1" = {
+ name = "to-regex-range";
+ packageName = "to-regex-range";
+ version = "5.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+ sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+ };
+ };
+ "touch-3.1.0" = {
+ name = "touch";
+ packageName = "touch";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz";
+ sha512 = "WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==";
+ };
+ };
+ "tough-cookie-4.0.0" = {
+ name = "tough-cookie";
+ packageName = "tough-cookie";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz";
+ sha512 = "tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==";
+ };
+ };
+ "traverse-0.6.6" = {
+ name = "traverse";
+ packageName = "traverse";
+ version = "0.6.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz";
+ sha1 = "cbdf560fd7b9af632502fed40f918c157ea97137";
+ };
+ };
+ "trim-newlines-3.0.0" = {
+ name = "trim-newlines";
+ packageName = "trim-newlines";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz";
+ sha512 = "C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==";
+ };
+ };
+ "trim-off-newlines-1.0.1" = {
+ name = "trim-off-newlines";
+ packageName = "trim-off-newlines";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz";
+ sha1 = "9f9ba9d9efa8764c387698bcbfeb2c848f11adb3";
+ };
+ };
+ "tslib-1.13.0" = {
+ name = "tslib";
+ packageName = "tslib";
+ version = "1.13.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+ sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
+ };
+ };
+ "tunnel-agent-0.4.3" = {
+ name = "tunnel-agent";
+ packageName = "tunnel-agent";
+ version = "0.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz";
+ sha1 = "6373db76909fe570e08d73583365ed828a74eeeb";
+ };
+ };
+ "type-detect-4.0.8" = {
+ name = "type-detect";
+ packageName = "type-detect";
+ version = "4.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz";
+ sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
+ };
+ };
+ "type-fest-0.13.1" = {
+ name = "type-fest";
+ packageName = "type-fest";
+ version = "0.13.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz";
+ sha512 = "34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==";
+ };
+ };
+ "type-fest-0.3.1" = {
+ name = "type-fest";
+ packageName = "type-fest";
+ version = "0.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz";
+ sha512 = "cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==";
+ };
+ };
+ "type-fest-0.5.2" = {
+ name = "type-fest";
+ packageName = "type-fest";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz";
+ sha512 = "DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==";
+ };
+ };
+ "type-fest-0.6.0" = {
+ name = "type-fest";
+ packageName = "type-fest";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz";
+ sha512 = "q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==";
+ };
+ };
+ "type-fest-0.8.1" = {
+ name = "type-fest";
+ packageName = "type-fest";
+ version = "0.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+ sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+ };
+ };
+ "typedarray-to-buffer-3.1.5" = {
+ name = "typedarray-to-buffer";
+ packageName = "typedarray-to-buffer";
+ version = "3.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+ sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
+ };
+ };
+ "uglify-js-3.10.4" = {
+ name = "uglify-js";
+ packageName = "uglify-js";
+ version = "3.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.4.tgz";
+ sha512 = "kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw==";
+ };
+ };
+ "undefsafe-2.0.3" = {
+ name = "undefsafe";
+ packageName = "undefsafe";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz";
+ sha512 = "nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==";
+ };
+ };
+ "unicode-canonical-property-names-ecmascript-1.0.4" = {
+ name = "unicode-canonical-property-names-ecmascript";
+ packageName = "unicode-canonical-property-names-ecmascript";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+ sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
+ };
+ };
+ "unicode-match-property-ecmascript-1.0.4" = {
+ name = "unicode-match-property-ecmascript";
+ packageName = "unicode-match-property-ecmascript";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+ sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
+ };
+ };
+ "unicode-match-property-value-ecmascript-1.2.0" = {
+ name = "unicode-match-property-value-ecmascript";
+ packageName = "unicode-match-property-value-ecmascript";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
+ sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==";
+ };
+ };
+ "unicode-property-aliases-ecmascript-1.1.0" = {
+ name = "unicode-property-aliases-ecmascript";
+ packageName = "unicode-property-aliases-ecmascript";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
+ sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==";
+ };
+ };
+ "union-value-1.0.1" = {
+ name = "union-value";
+ packageName = "union-value";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz";
+ sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==";
+ };
+ };
+ "unique-string-1.0.0" = {
+ name = "unique-string";
+ packageName = "unique-string";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz";
+ sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+ };
+ };
+ "universal-user-agent-4.0.1" = {
+ name = "universal-user-agent";
+ packageName = "universal-user-agent";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz";
+ sha512 = "LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==";
+ };
+ };
+ "universal-user-agent-6.0.0" = {
+ name = "universal-user-agent";
+ packageName = "universal-user-agent";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz";
+ sha512 = "isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==";
+ };
+ };
+ "universalify-0.1.2" = {
+ name = "universalify";
+ packageName = "universalify";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
+ sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
+ };
+ };
+ "unset-value-1.0.0" = {
+ name = "unset-value";
+ packageName = "unset-value";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz";
+ sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+ };
+ };
+ "unzip-response-2.0.1" = {
+ name = "unzip-response";
+ packageName = "unzip-response";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz";
+ sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
+ };
+ };
+ "upath-1.2.0" = {
+ name = "upath";
+ packageName = "upath";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
+ sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
+ };
+ };
+ "update-notifier-2.5.0" = {
+ name = "update-notifier";
+ packageName = "update-notifier";
+ version = "2.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz";
+ sha512 = "gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==";
+ };
+ };
+ "urix-0.1.0" = {
+ name = "urix";
+ packageName = "urix";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz";
+ sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+ };
+ };
+ "url-join-4.0.1" = {
+ name = "url-join";
+ packageName = "url-join";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz";
+ sha512 = "jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==";
+ };
+ };
+ "url-parse-lax-1.0.0" = {
+ name = "url-parse-lax";
+ packageName = "url-parse-lax";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz";
+ sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73";
+ };
+ };
+ "urlgrey-0.4.0" = {
+ name = "urlgrey";
+ packageName = "urlgrey";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.0.tgz";
+ sha1 = "f065357040fb35c3b311d4e5dc36484d96dbea06";
+ };
+ };
+ "use-3.1.1" = {
+ name = "use";
+ packageName = "use";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
+ sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
+ };
+ };
+ "util-deprecate-1.0.2" = {
+ name = "util-deprecate";
+ packageName = "util-deprecate";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ };
+ "uuid-3.3.2" = {
+ name = "uuid";
+ packageName = "uuid";
+ version = "3.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz";
+ sha512 = "yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==";
+ };
+ };
+ "uuid-3.4.0" = {
+ name = "uuid";
+ packageName = "uuid";
+ version = "3.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+ sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+ };
+ };
+ "validate-npm-package-license-3.0.4" = {
+ name = "validate-npm-package-license";
+ packageName = "validate-npm-package-license";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+ sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==";
+ };
+ };
+ "which-1.3.1" = {
+ name = "which";
+ packageName = "which";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
+ sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+ };
+ };
+ "which-2.0.2" = {
+ name = "which";
+ packageName = "which";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
+ sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
+ };
+ };
+ "which-module-2.0.0" = {
+ name = "which-module";
+ packageName = "which-module";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+ sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+ };
+ };
+ "wide-align-1.1.3" = {
+ name = "wide-align";
+ packageName = "wide-align";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+ sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+ };
+ };
+ "widest-line-2.0.1" = {
+ name = "widest-line";
+ packageName = "widest-line";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz";
+ sha512 = "Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==";
+ };
+ };
+ "windows-release-3.3.3" = {
+ name = "windows-release";
+ packageName = "windows-release";
+ version = "3.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz";
+ sha512 = "OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==";
+ };
+ };
+ "word-wrap-1.2.3" = {
+ name = "word-wrap";
+ packageName = "word-wrap";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+ sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+ };
+ };
+ "wordwrap-1.0.0" = {
+ name = "wordwrap";
+ packageName = "wordwrap";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
+ sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+ };
+ };
+ "wrap-ansi-2.1.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+ sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+ };
+ };
+ "wrap-ansi-6.2.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "6.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+ sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
+ };
+ };
+ "wrappy-1.0.2" = {
+ name = "wrappy";
+ packageName = "wrappy";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ };
+ "write-file-atomic-2.4.3" = {
+ name = "write-file-atomic";
+ packageName = "write-file-atomic";
+ version = "2.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz";
+ sha512 = "GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==";
+ };
+ };
+ "write-file-atomic-3.0.3" = {
+ name = "write-file-atomic";
+ packageName = "write-file-atomic";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+ sha512 = "AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==";
+ };
+ };
+ "xdg-basedir-3.0.0" = {
+ name = "xdg-basedir";
+ packageName = "xdg-basedir";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz";
+ sha1 = "496b2cc109eca8dbacfe2dc72b603c17c5870ad4";
+ };
+ };
+ "xml-1.0.1" = {
+ name = "xml";
+ packageName = "xml";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz";
+ sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
+ };
+ };
+ "xtend-4.0.2" = {
+ name = "xtend";
+ packageName = "xtend";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+ sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+ };
+ };
+ "y18n-4.0.0" = {
+ name = "y18n";
+ packageName = "y18n";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
+ sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
+ };
+ };
+ "yallist-2.1.2" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ };
+ "yaml-1.10.0" = {
+ name = "yaml";
+ packageName = "yaml";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz";
+ sha512 = "yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==";
+ };
+ };
+ "yargs-12.0.5" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "12.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz";
+ sha512 = "Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==";
+ };
+ };
+ "yargs-13.2.2" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "13.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz";
+ sha512 = "WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==";
+ };
+ };
+ "yargs-15.4.1" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "15.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+ sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
+ };
+ };
+ "yargs-parser-11.1.1" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "11.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz";
+ sha512 = "C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==";
+ };
+ };
+ "yargs-parser-13.0.0" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "13.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz";
+ sha512 = "w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==";
+ };
+ };
+ "yargs-parser-18.1.3" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "18.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+ sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+ };
+ };
+ "yargs-unparser-1.5.0" = {
+ name = "yargs-unparser";
+ packageName = "yargs-unparser";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz";
+ sha512 = "HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==";
+ };
+ };
+ };
+in
+{
+ commitizen = nodeEnv.buildNodePackage {
+ name = "commitizen";
+ packageName = "commitizen";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commitizen/-/commitizen-4.2.1.tgz";
+ sha512 = "nZsp8IThkDu7C+93BFD/mLShb9Gd6Wsaf90tpKE3x/6u5y/Q52kzanIJpGr0qvIsJ5bCMpgKtr3Lbu3miEJfaA==";
+ };
+ dependencies = [
+ sources."@babel/cli-7.11.6"
+ sources."@babel/code-frame-7.10.4"
+ (sources."@babel/compat-data-7.11.0" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ (sources."@babel/core-7.11.6" // {
+ dependencies = [
+ sources."debug-4.2.0"
+ sources."ms-2.1.2"
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."@babel/generator-7.11.6"
+ sources."@babel/helper-annotate-as-pure-7.10.4"
+ sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+ (sources."@babel/helper-compilation-targets-7.10.4" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."@babel/helper-create-class-features-plugin-7.10.5"
+ sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+ sources."@babel/helper-define-map-7.10.5"
+ sources."@babel/helper-explode-assignable-expression-7.11.4"
+ sources."@babel/helper-function-name-7.10.4"
+ sources."@babel/helper-get-function-arity-7.10.4"
+ sources."@babel/helper-hoist-variables-7.10.4"
+ sources."@babel/helper-member-expression-to-functions-7.11.0"
+ sources."@babel/helper-module-imports-7.10.4"
+ sources."@babel/helper-module-transforms-7.11.0"
+ sources."@babel/helper-optimise-call-expression-7.10.4"
+ sources."@babel/helper-plugin-utils-7.10.4"
+ sources."@babel/helper-regex-7.10.5"
+ sources."@babel/helper-remap-async-to-generator-7.11.4"
+ sources."@babel/helper-replace-supers-7.10.4"
+ sources."@babel/helper-simple-access-7.10.4"
+ sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+ sources."@babel/helper-split-export-declaration-7.11.0"
+ sources."@babel/helper-validator-identifier-7.10.4"
+ sources."@babel/helper-wrap-function-7.10.4"
+ sources."@babel/helpers-7.10.4"
+ sources."@babel/highlight-7.10.4"
+ sources."@babel/parser-7.11.5"
+ sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+ sources."@babel/plugin-proposal-class-properties-7.10.4"
+ sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+ sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+ sources."@babel/plugin-proposal-json-strings-7.10.4"
+ sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+ sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+ sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+ sources."@babel/plugin-proposal-object-rest-spread-7.9.0"
+ sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+ sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+ sources."@babel/plugin-proposal-private-methods-7.10.4"
+ sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
+ sources."@babel/plugin-syntax-async-generators-7.8.4"
+ sources."@babel/plugin-syntax-class-properties-7.10.4"
+ sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+ sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+ sources."@babel/plugin-syntax-json-strings-7.8.3"
+ sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+ sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+ sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+ sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+ sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+ sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+ sources."@babel/plugin-syntax-top-level-await-7.10.4"
+ sources."@babel/plugin-transform-arrow-functions-7.10.4"
+ sources."@babel/plugin-transform-async-to-generator-7.10.4"
+ sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+ sources."@babel/plugin-transform-block-scoping-7.11.1"
+ sources."@babel/plugin-transform-classes-7.10.4"
+ sources."@babel/plugin-transform-computed-properties-7.10.4"
+ sources."@babel/plugin-transform-destructuring-7.10.4"
+ sources."@babel/plugin-transform-dotall-regex-7.10.4"
+ sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+ sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+ sources."@babel/plugin-transform-for-of-7.10.4"
+ sources."@babel/plugin-transform-function-name-7.10.4"
+ sources."@babel/plugin-transform-literals-7.10.4"
+ sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+ sources."@babel/plugin-transform-modules-amd-7.10.5"
+ sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+ sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+ sources."@babel/plugin-transform-modules-umd-7.10.4"
+ sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+ sources."@babel/plugin-transform-new-target-7.10.4"
+ sources."@babel/plugin-transform-object-super-7.10.4"
+ sources."@babel/plugin-transform-parameters-7.10.5"
+ sources."@babel/plugin-transform-property-literals-7.10.4"
+ sources."@babel/plugin-transform-regenerator-7.10.4"
+ sources."@babel/plugin-transform-reserved-words-7.10.4"
+ sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+ sources."@babel/plugin-transform-spread-7.11.0"
+ sources."@babel/plugin-transform-sticky-regex-7.10.4"
+ sources."@babel/plugin-transform-template-literals-7.10.5"
+ sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+ sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+ sources."@babel/plugin-transform-unicode-regex-7.10.4"
+ (sources."@babel/preset-env-7.11.5" // {
+ dependencies = [
+ sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."@babel/preset-modules-0.1.4"
+ sources."@babel/register-7.11.5"
+ sources."@babel/runtime-7.11.2"
+ sources."@babel/template-7.10.4"
+ (sources."@babel/traverse-7.11.5" // {
+ dependencies = [
+ sources."debug-4.2.0"
+ sources."ms-2.1.2"
+ ];
+ })
+ sources."@babel/types-7.11.5"
+ sources."@commitlint/execute-rule-11.0.0"
+ (sources."@commitlint/load-11.0.0" // {
+ dependencies = [
+ sources."ansi-styles-4.2.1"
+ sources."chalk-4.1.0"
+ sources."color-convert-2.0.1"
+ sources."color-name-1.1.4"
+ sources."has-flag-4.0.0"
+ sources."supports-color-7.2.0"
+ ];
+ })
+ sources."@commitlint/resolve-extends-11.0.0"
+ sources."@commitlint/types-11.0.0"
+ (sources."@istanbuljs/load-nyc-config-1.1.0" // {
+ dependencies = [
+ sources."find-up-4.1.0"
+ sources."locate-path-5.0.0"
+ sources."p-locate-4.1.0"
+ sources."path-exists-4.0.0"
+ ];
+ })
+ sources."@istanbuljs/nyc-config-babel-2.1.1"
+ sources."@istanbuljs/schema-0.1.2"
+ sources."@nodelib/fs.scandir-2.1.3"
+ sources."@nodelib/fs.stat-2.0.3"
+ sources."@nodelib/fs.walk-1.2.4"
+ sources."@octokit/auth-token-2.4.2"
+ (sources."@octokit/endpoint-6.0.6" // {
+ dependencies = [
+ sources."is-plain-object-5.0.0"
+ sources."universal-user-agent-6.0.0"
+ ];
+ })
+ (sources."@octokit/plugin-paginate-rest-1.1.2" // {
+ dependencies = [
+ sources."@octokit/types-2.16.2"
+ ];
+ })
+ sources."@octokit/plugin-request-log-1.0.0"
+ (sources."@octokit/plugin-rest-endpoint-methods-2.4.0" // {
+ dependencies = [
+ sources."@octokit/types-2.16.2"
+ ];
+ })
+ (sources."@octokit/request-5.4.8" // {
+ dependencies = [
+ sources."@octokit/request-error-2.0.2"
+ sources."is-plain-object-5.0.0"
+ sources."universal-user-agent-6.0.0"
+ ];
+ })
+ (sources."@octokit/request-error-1.2.1" // {
+ dependencies = [
+ sources."@octokit/types-2.16.2"
+ ];
+ })
+ sources."@octokit/rest-16.43.2"
+ sources."@octokit/types-5.4.1"
+ (sources."@semantic-release/commit-analyzer-6.3.3" // {
+ dependencies = [
+ sources."debug-4.2.0"
+ sources."ms-2.1.2"
+ ];
+ })
+ sources."@semantic-release/error-2.2.0"
+ (sources."@semantic-release/github-5.5.8" // {
+ dependencies = [
+ sources."debug-4.2.0"
+ sources."mime-2.4.6"
+ sources."ms-2.1.2"
+ ];
+ })
+ (sources."@semantic-release/npm-5.3.5" // {
+ dependencies = [
+ sources."cross-spawn-7.0.3"
+ sources."execa-3.4.0"
+ sources."get-stream-5.2.0"
+ sources."is-stream-2.0.0"
+ sources."mimic-fn-2.1.0"
+ sources."npm-run-path-4.0.1"
+ sources."onetime-5.1.2"
+ sources."p-finally-2.0.1"
+ sources."path-key-3.1.1"
+ sources."read-pkg-5.2.0"
+ sources."registry-auth-token-4.2.0"
+ sources."shebang-command-2.0.0"
+ sources."shebang-regex-3.0.0"
+ sources."type-fest-0.6.0"
+ sources."which-2.0.2"
+ ];
+ })
+ (sources."@semantic-release/release-notes-generator-7.3.5" // {
+ dependencies = [
+ sources."debug-4.2.0"
+ sources."find-up-4.1.0"
+ sources."get-stream-5.2.0"
+ sources."locate-path-5.0.0"
+ sources."ms-2.1.2"
+ sources."p-locate-4.1.0"
+ sources."path-exists-4.0.0"
+ sources."read-pkg-5.2.0"
+ sources."read-pkg-up-7.0.1"
+ sources."type-fest-0.6.0"
+ ];
+ })
+ sources."@sinonjs/commons-1.8.1"
+ (sources."@sinonjs/formatio-3.2.2" // {
+ dependencies = [
+ sources."@sinonjs/samsam-3.3.3"
+ ];
+ })
+ sources."@sinonjs/samsam-2.1.3"
+ sources."@sinonjs/text-encoding-0.7.1"
+ sources."@types/color-name-1.1.1"
+ sources."@types/glob-7.1.3"
+ sources."@types/minimatch-3.0.3"
+ sources."@types/minimist-1.2.0"
+ sources."@types/node-14.10.0"
+ sources."@types/normalize-package-data-2.4.0"
+ sources."@types/parse-json-4.0.0"
+ sources."@types/retry-0.12.0"
+ sources."JSONStream-1.3.5"
+ sources."abbrev-1.1.1"
+ sources."agent-base-5.1.1"
+ sources."aggregate-error-3.1.0"
+ sources."ansi-align-2.0.0"
+ sources."ansi-colors-3.2.3"
+ sources."ansi-escapes-3.2.0"
+ sources."ansi-regex-3.0.0"
+ sources."ansi-styles-3.2.1"
+ sources."ansicolors-0.3.2"
+ (sources."anymatch-2.0.0" // {
+ dependencies = [
+ sources."normalize-path-2.1.1"
+ ];
+ })
+ sources."append-transform-2.0.0"
+ sources."archy-1.0.0"
+ sources."argparse-1.0.10"
+ sources."argv-formatter-1.0.0"
+ sources."arr-diff-4.0.0"
+ sources."arr-flatten-1.1.0"
+ sources."arr-union-3.1.0"
+ sources."array-from-2.1.1"
+ sources."array-ify-1.0.0"
+ sources."array-union-2.1.0"
+ sources."array-unique-0.3.2"
+ sources."arrify-1.0.1"
+ sources."asn1-0.1.11"
+ sources."assert-plus-0.1.5"
+ sources."assertion-error-1.1.0"
+ sources."assign-symbols-1.0.0"
+ sources."async-0.9.2"
+ sources."async-each-1.0.3"
+ sources."atob-2.1.2"
+ sources."atob-lite-2.0.0"
+ sources."aws-sign2-0.5.0"
+ (sources."axios-0.19.0" // {
+ dependencies = [
+ sources."is-buffer-2.0.4"
+ ];
+ })
+ sources."babel-plugin-dynamic-import-node-2.3.3"
+ sources."babel-plugin-istanbul-5.2.0"
+ sources."balanced-match-1.0.0"
+ (sources."base-0.11.2" // {
+ dependencies = [
+ sources."define-property-1.0.0"
+ ];
+ })
+ sources."before-after-hook-2.1.0"
+ sources."binary-extensions-1.13.1"
+ sources."bindings-1.5.0"
+ (sources."bl-0.9.5" // {
+ dependencies = [
+ sources."isarray-0.0.1"
+ sources."readable-stream-1.0.34"
+ sources."string_decoder-0.10.31"
+ ];
+ })
+ sources."boom-0.4.2"
+ sources."bottleneck-2.19.5"
+ (sources."boxen-1.3.0" // {
+ dependencies = [
+ sources."camelcase-4.1.0"
+ ];
+ })
+ sources."brace-expansion-1.1.11"
+ (sources."braces-2.3.2" // {
+ dependencies = [
+ sources."extend-shallow-2.0.1"
+ ];
+ })
+ sources."browser-stdout-1.3.1"
+ sources."browserslist-4.14.2"
+ sources."btoa-lite-1.0.0"
+ sources."buffer-from-1.1.1"
+ sources."cache-base-1.0.1"
+ sources."cachedir-2.2.0"
+ (sources."caching-transform-4.0.0" // {
+ dependencies = [
+ sources."make-dir-3.1.0"
+ sources."write-file-atomic-3.0.3"
+ ];
+ })
+ (sources."caller-callsite-2.0.0" // {
+ dependencies = [
+ sources."callsites-2.0.0"
+ ];
+ })
+ sources."caller-path-2.0.0"
+ sources."callsites-3.1.0"
+ sources."camelcase-5.3.1"
+ sources."camelcase-keys-6.2.2"
+ sources."caniuse-lite-1.0.30001125"
+ sources."capture-stack-trace-1.0.1"
+ sources."cardinal-2.1.1"
+ sources."caseless-0.6.0"
+ sources."chai-4.2.0"
+ sources."chalk-2.4.2"
+ sources."chardet-0.7.0"
+ sources."charenc-0.0.2"
+ sources."check-error-1.0.2"
+ sources."chokidar-2.1.8"
+ sources."ci-info-1.6.0"
+ (sources."class-utils-0.3.6" // {
+ dependencies = [
+ sources."define-property-0.2.5"
+ (sources."is-accessor-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ (sources."is-data-descriptor-0.1.4" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."is-descriptor-0.1.6"
+ sources."kind-of-5.1.0"
+ ];
+ })
+ sources."clean-stack-2.2.0"
+ sources."cli-boxes-1.0.0"
+ sources."cli-cursor-2.1.0"
+ (sources."cli-table-0.3.1" // {
+ dependencies = [
+ sources."colors-1.0.3"
+ ];
+ })
+ sources."cli-width-2.2.1"
+ (sources."cliui-4.1.0" // {
+ dependencies = [
+ sources."strip-ansi-4.0.0"
+ ];
+ })
+ sources."code-point-at-1.1.0"
+ sources."codecov.io-0.1.6"
+ sources."collection-visit-1.0.0"
+ sources."color-convert-1.9.3"
+ sources."color-name-1.1.3"
+ sources."colors-0.6.2"
+ sources."combined-stream-0.0.7"
+ sources."commander-4.1.1"
+ sources."commitizen-4.2.1"
+ sources."commondir-1.0.1"
+ (sources."compare-func-2.0.0" // {
+ dependencies = [
+ sources."dot-prop-5.3.0"
+ sources."is-obj-2.0.0"
+ ];
+ })
+ sources."component-emitter-1.3.0"
+ sources."concat-map-0.0.1"
+ (sources."configstore-3.1.5" // {
+ dependencies = [
+ sources."make-dir-1.3.0"
+ sources."pify-3.0.0"
+ ];
+ })
+ sources."conventional-changelog-angular-5.0.11"
+ (sources."conventional-changelog-writer-4.0.17" // {
+ dependencies = [
+ sources."split-1.0.1"
+ ];
+ })
+ sources."conventional-commit-types-3.0.0"
+ sources."conventional-commits-filter-2.0.6"
+ sources."conventional-commits-parser-3.1.0"
+ sources."convert-source-map-1.7.0"
+ sources."copy-descriptor-0.1.1"
+ (sources."core-js-compat-3.6.5" // {
+ dependencies = [
+ sources."semver-7.0.0"
+ ];
+ })
+ sources."core-util-is-1.0.2"
+ sources."cosmiconfig-7.0.0"
+ sources."create-error-class-3.0.2"
+ (sources."cross-spawn-6.0.5" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."crypt-0.0.2"
+ sources."cryptiles-0.2.2"
+ sources."crypto-random-string-1.0.0"
+ sources."ctype-0.5.3"
+ sources."cz-conventional-changelog-3.2.0"
+ (sources."cz-conventional-changelog-default-export-0.0.0-semantically-released.1" // {
+ dependencies = [
+ sources."conventional-commit-types-2.3.0"
+ sources."longest-1.0.1"
+ ];
+ })
+ sources."dateformat-3.0.3"
+ sources."debug-2.6.9"
+ sources."decamelize-1.2.0"
+ (sources."decamelize-keys-1.1.0" // {
+ dependencies = [
+ sources."map-obj-1.0.1"
+ ];
+ })
+ sources."decode-uri-component-0.2.0"
+ sources."dedent-0.7.0"
+ sources."deep-eql-3.0.1"
+ sources."deep-equal-0.1.2"
+ sources."deep-extend-0.6.0"
+ sources."default-require-extensions-3.0.0"
+ sources."define-properties-1.1.3"
+ sources."define-property-2.0.2"
+ sources."defined-0.0.0"
+ sources."delayed-stream-0.0.5"
+ sources."deprecation-2.3.1"
+ sources."detect-file-1.0.0"
+ sources."detect-indent-6.0.0"
+ sources."diff-3.5.0"
+ sources."dir-glob-3.0.1"
+ sources."dot-prop-4.2.1"
+ sources."duplexer-0.1.2"
+ sources."duplexer2-0.1.4"
+ sources."duplexer3-0.1.4"
+ sources."electron-to-chromium-1.3.565"
+ sources."emoji-regex-7.0.3"
+ sources."end-of-stream-1.4.4"
+ (sources."env-ci-4.5.2" // {
+ dependencies = [
+ sources."cross-spawn-7.0.3"
+ sources."execa-3.4.0"
+ sources."get-stream-5.2.0"
+ sources."is-stream-2.0.0"
+ sources."mimic-fn-2.1.0"
+ sources."npm-run-path-4.0.1"
+ sources."onetime-5.1.2"
+ sources."p-finally-2.0.1"
+ sources."path-key-3.1.1"
+ sources."shebang-command-2.0.0"
+ sources."shebang-regex-3.0.0"
+ sources."which-2.0.2"
+ ];
+ })
+ sources."error-ex-1.3.2"
+ sources."es-abstract-1.17.6"
+ sources."es-to-primitive-1.2.1"
+ sources."es6-error-4.1.1"
+ sources."escalade-3.0.2"
+ sources."escape-string-regexp-1.0.5"
+ sources."esprima-4.0.1"
+ sources."esutils-2.0.3"
+ sources."execa-1.0.0"
+ (sources."expand-brackets-2.1.4" // {
+ dependencies = [
+ sources."define-property-0.2.5"
+ sources."extend-shallow-2.0.1"
+ (sources."is-accessor-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ (sources."is-data-descriptor-0.1.4" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."is-descriptor-0.1.6"
+ sources."kind-of-5.1.0"
+ ];
+ })
+ sources."expand-tilde-2.0.2"
+ (sources."extend-shallow-3.0.2" // {
+ dependencies = [
+ sources."is-extendable-1.0.1"
+ ];
+ })
+ sources."external-editor-3.1.0"
+ (sources."extglob-2.0.4" // {
+ dependencies = [
+ sources."define-property-1.0.0"
+ sources."extend-shallow-2.0.1"
+ ];
+ })
+ (sources."fast-glob-3.2.4" // {
+ dependencies = [
+ sources."braces-3.0.2"
+ sources."fill-range-7.0.1"
+ sources."glob-parent-5.1.1"
+ sources."is-number-7.0.0"
+ sources."micromatch-4.0.2"
+ sources."to-regex-range-5.0.1"
+ ];
+ })
+ sources."fastq-1.8.0"
+ sources."figures-2.0.0"
+ sources."file-uri-to-path-1.0.0"
+ sources."fill-keys-1.0.2"
+ (sources."fill-range-4.0.0" // {
+ dependencies = [
+ sources."extend-shallow-2.0.1"
+ ];
+ })
+ sources."find-cache-dir-2.1.0"
+ sources."find-node-modules-2.0.0"
+ sources."find-root-1.1.0"
+ sources."find-up-3.0.0"
+ sources."find-versions-3.2.0"
+ (sources."findup-0.1.5" // {
+ dependencies = [
+ sources."commander-2.1.0"
+ ];
+ })
+ sources."findup-sync-3.0.0"
+ (sources."flat-4.1.0" // {
+ dependencies = [
+ sources."is-buffer-2.0.4"
+ ];
+ })
+ (sources."follow-redirects-1.5.10" // {
+ dependencies = [
+ sources."debug-3.1.0"
+ ];
+ })
+ sources."for-in-1.0.2"
+ (sources."foreground-child-2.0.0" // {
+ dependencies = [
+ sources."cross-spawn-7.0.3"
+ sources."path-key-3.1.1"
+ sources."shebang-command-2.0.0"
+ sources."shebang-regex-3.0.0"
+ sources."which-2.0.2"
+ ];
+ })
+ sources."forever-agent-0.5.2"
+ sources."form-data-0.1.4"
+ sources."fragment-cache-0.2.1"
+ sources."from2-2.3.0"
+ sources."fromentries-1.2.1"
+ sources."fs-extra-8.1.0"
+ sources."fs-readdir-recursive-1.1.0"
+ sources."fs.realpath-1.0.0"
+ sources."fsevents-1.2.13"
+ sources."function-bind-1.1.1"
+ sources."gensync-1.0.0-beta.1"
+ sources."get-caller-file-2.0.5"
+ sources."get-func-name-2.0.0"
+ sources."get-package-type-0.1.0"
+ sources."get-stream-4.1.0"
+ sources."get-value-2.0.6"
+ sources."ghooks-2.0.4"
+ (sources."git-log-parser-1.2.0" // {
+ dependencies = [
+ sources."split2-1.0.0"
+ sources."through2-2.0.5"
+ ];
+ })
+ sources."glob-7.1.4"
+ (sources."glob-parent-3.1.0" // {
+ dependencies = [
+ sources."is-glob-3.1.0"
+ ];
+ })
+ sources."global-dirs-0.1.1"
+ sources."global-modules-1.0.0"
+ sources."global-prefix-1.0.2"
+ sources."globals-11.12.0"
+ (sources."globby-10.0.2" // {
+ dependencies = [
+ sources."slash-3.0.0"
+ ];
+ })
+ (sources."got-6.7.1" // {
+ dependencies = [
+ sources."get-stream-3.0.0"
+ ];
+ })
+ sources."graceful-fs-4.2.4"
+ sources."graceful-readlink-1.0.1"
+ sources."growl-1.10.5"
+ (sources."handlebars-4.7.6" // {
+ dependencies = [
+ sources."source-map-0.6.1"
+ ];
+ })
+ sources."hard-rejection-2.1.0"
+ sources."has-1.0.3"
+ sources."has-flag-3.0.0"
+ sources."has-symbols-1.0.1"
+ sources."has-value-1.0.0"
+ (sources."has-values-1.0.0" // {
+ dependencies = [
+ sources."kind-of-4.0.0"
+ ];
+ })
+ (sources."hasha-5.2.0" // {
+ dependencies = [
+ sources."is-stream-2.0.0"
+ ];
+ })
+ sources."hawk-1.1.1"
+ sources."he-1.2.0"
+ sources."hoek-0.9.1"
+ sources."homedir-polyfill-1.0.3"
+ sources."hook-std-2.0.0"
+ sources."hosted-git-info-2.8.8"
+ sources."html-escaper-2.0.2"
+ (sources."http-proxy-agent-3.0.0" // {
+ dependencies = [
+ sources."debug-4.2.0"
+ sources."ms-2.1.2"
+ ];
+ })
+ sources."http-signature-0.10.1"
+ (sources."https-proxy-agent-4.0.0" // {
+ dependencies = [
+ sources."debug-4.2.0"
+ sources."ms-2.1.2"
+ ];
+ })
+ sources."human-signals-1.1.1"
+ sources."iconv-lite-0.4.24"
+ sources."ignore-5.1.8"
+ sources."ignore-by-default-1.0.1"
+ (sources."import-fresh-3.2.1" // {
+ dependencies = [
+ sources."resolve-from-4.0.0"
+ ];
+ })
+ sources."import-from-3.0.0"
+ sources."import-lazy-2.1.0"
+ sources."imurmurhash-0.1.4"
+ sources."in-publish-2.0.1"
+ sources."indent-string-4.0.0"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.4"
+ sources."ini-1.3.5"
+ sources."inquirer-6.5.2"
+ (sources."into-stream-5.1.1" // {
+ dependencies = [
+ sources."p-is-promise-3.0.0"
+ ];
+ })
+ sources."invariant-2.2.4"
+ sources."invert-kv-2.0.0"
+ sources."is-accessor-descriptor-1.0.0"
+ sources."is-arrayish-0.2.1"
+ sources."is-binary-path-1.0.1"
+ sources."is-buffer-1.1.6"
+ sources."is-callable-1.2.1"
+ sources."is-ci-1.2.1"
+ sources."is-data-descriptor-1.0.0"
+ sources."is-date-object-1.0.2"
+ sources."is-descriptor-1.0.2"
+ sources."is-directory-0.3.1"
+ sources."is-extendable-0.1.1"
+ sources."is-extglob-2.1.1"
+ sources."is-fullwidth-code-point-2.0.0"
+ sources."is-glob-4.0.1"
+ sources."is-installed-globally-0.1.0"
+ sources."is-npm-1.0.0"
+ (sources."is-number-3.0.0" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."is-obj-1.0.1"
+ sources."is-object-1.0.1"
+ sources."is-path-inside-1.0.1"
+ sources."is-plain-obj-1.1.0"
+ sources."is-plain-object-2.0.4"
+ sources."is-redirect-1.0.0"
+ sources."is-regex-1.1.1"
+ sources."is-retry-allowed-1.2.0"
+ sources."is-stream-1.1.0"
+ sources."is-symbol-1.0.3"
+ sources."is-text-path-1.0.1"
+ sources."is-typedarray-1.0.0"
+ sources."is-utf8-0.2.1"
+ sources."is-windows-1.0.2"
+ sources."isarray-1.0.0"
+ sources."isexe-2.0.0"
+ sources."isobject-3.0.1"
+ sources."issue-parser-5.0.0"
+ sources."istanbul-lib-coverage-2.0.5"
+ sources."istanbul-lib-hook-3.0.0"
+ sources."istanbul-lib-instrument-3.3.0"
+ (sources."istanbul-lib-processinfo-2.0.2" // {
+ dependencies = [
+ sources."cross-spawn-7.0.3"
+ sources."istanbul-lib-coverage-3.0.0"
+ sources."make-dir-3.1.0"
+ sources."path-key-3.1.1"
+ sources."shebang-command-2.0.0"
+ sources."shebang-regex-3.0.0"
+ sources."uuid-3.4.0"
+ sources."which-2.0.2"
+ ];
+ })
+ (sources."istanbul-lib-report-3.0.0" // {
+ dependencies = [
+ sources."has-flag-4.0.0"
+ sources."istanbul-lib-coverage-3.0.0"
+ sources."make-dir-3.1.0"
+ sources."supports-color-7.2.0"
+ ];
+ })
+ (sources."istanbul-lib-source-maps-4.0.0" // {
+ dependencies = [
+ sources."debug-4.2.0"
+ sources."istanbul-lib-coverage-3.0.0"
+ sources."ms-2.1.2"
+ sources."source-map-0.6.1"
+ ];
+ })
+ sources."istanbul-reports-3.0.2"
+ sources."java-properties-1.0.2"
+ sources."js-tokens-4.0.0"
+ sources."js-yaml-3.13.1"
+ sources."jsesc-2.5.2"
+ sources."json-parse-better-errors-1.0.2"
+ sources."json-parse-even-better-errors-2.3.1"
+ sources."json-stringify-safe-5.0.1"
+ sources."json5-2.1.3"
+ sources."jsonfile-4.0.0"
+ sources."jsonify-0.0.0"
+ sources."jsonparse-1.3.1"
+ sources."just-extend-4.1.0"
+ sources."kind-of-6.0.3"
+ sources."latest-version-3.1.0"
+ sources."lcid-2.0.0"
+ sources."leven-3.1.0"
+ sources."levenary-1.1.1"
+ sources."lines-and-columns-1.1.6"
+ (sources."load-json-file-4.0.0" // {
+ dependencies = [
+ sources."parse-json-4.0.0"
+ sources."pify-3.0.0"
+ sources."strip-bom-3.0.0"
+ ];
+ })
+ sources."locate-path-3.0.0"
+ sources."lodash-4.17.20"
+ sources."lodash._baseclone-4.5.7"
+ sources."lodash.capitalize-4.2.1"
+ sources."lodash.clone-4.5.0"
+ sources."lodash.escaperegexp-4.1.2"
+ sources."lodash.flattendeep-4.4.0"
+ sources."lodash.get-4.4.2"
+ sources."lodash.ismatch-4.4.0"
+ sources."lodash.isplainobject-4.0.6"
+ sources."lodash.isstring-4.0.1"
+ sources."lodash.map-4.6.0"
+ sources."lodash.set-4.3.2"
+ sources."lodash.toarray-4.4.0"
+ sources."lodash.uniq-4.5.0"
+ sources."lodash.uniqby-4.7.0"
+ sources."log-symbols-2.2.0"
+ sources."lolex-2.7.5"
+ sources."longest-2.0.1"
+ sources."loose-envify-1.4.0"
+ sources."lowercase-keys-1.0.1"
+ sources."lru-cache-4.1.5"
+ sources."macos-release-2.4.1"
+ (sources."make-dir-2.1.0" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."manage-path-2.0.0"
+ sources."map-age-cleaner-0.1.3"
+ sources."map-cache-0.2.2"
+ sources."map-obj-4.1.0"
+ sources."map-visit-1.0.0"
+ sources."marked-0.6.3"
+ sources."marked-terminal-3.3.0"
+ sources."md5-2.3.0"
+ (sources."mem-4.3.0" // {
+ dependencies = [
+ sources."mimic-fn-2.1.0"
+ ];
+ })
+ (sources."meow-7.1.1" // {
+ dependencies = [
+ sources."find-up-4.1.0"
+ sources."locate-path-5.0.0"
+ sources."p-locate-4.1.0"
+ sources."path-exists-4.0.0"
+ (sources."read-pkg-5.2.0" // {
+ dependencies = [
+ sources."type-fest-0.6.0"
+ ];
+ })
+ (sources."read-pkg-up-7.0.1" // {
+ dependencies = [
+ sources."type-fest-0.8.1"
+ ];
+ })
+ sources."type-fest-0.13.1"
+ sources."yargs-parser-18.1.3"
+ ];
+ })
+ sources."merge-1.2.1"
+ sources."merge-descriptors-1.0.1"
+ sources."merge-stream-2.0.0"
+ sources."merge2-1.4.1"
+ sources."micromatch-3.1.10"
+ sources."mime-1.2.11"
+ sources."mime-types-1.0.2"
+ sources."mimic-fn-1.2.0"
+ sources."min-indent-1.0.1"
+ sources."minimatch-3.0.4"
+ sources."minimist-1.2.5"
+ sources."minimist-options-4.1.0"
+ (sources."mixin-deep-1.3.2" // {
+ dependencies = [
+ sources."is-extendable-1.0.1"
+ ];
+ })
+ (sources."mkdirp-0.5.1" // {
+ dependencies = [
+ sources."minimist-0.0.8"
+ ];
+ })
+ (sources."mocha-6.2.0" // {
+ dependencies = [
+ sources."debug-3.2.6"
+ sources."glob-7.1.3"
+ sources."ms-2.1.1"
+ sources."strip-json-comments-2.0.1"
+ sources."supports-color-6.0.0"
+ ];
+ })
+ (sources."mocha-junit-reporter-1.23.3" // {
+ dependencies = [
+ sources."strip-ansi-4.0.0"
+ ];
+ })
+ (sources."mocha-multi-reporters-1.1.7" // {
+ dependencies = [
+ sources."debug-3.2.6"
+ sources."ms-2.1.2"
+ ];
+ })
+ sources."modify-values-1.0.1"
+ sources."module-not-found-error-1.0.1"
+ sources."ms-2.0.0"
+ sources."mute-stream-0.0.7"
+ sources."nan-2.14.1"
+ sources."nanomatch-1.2.13"
+ sources."neo-async-2.6.2"
+ sources."nerf-dart-1.0.0"
+ sources."nice-try-1.0.5"
+ (sources."nise-1.5.3" // {
+ dependencies = [
+ sources."lolex-5.1.2"
+ ];
+ })
+ sources."node-emoji-1.10.0"
+ (sources."node-environment-flags-1.0.5" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."node-fetch-2.6.1"
+ sources."node-modules-regexp-1.0.0"
+ sources."node-preload-0.2.1"
+ sources."node-releases-1.1.61"
+ sources."node-uuid-1.4.8"
+ (sources."nodemon-1.19.1" // {
+ dependencies = [
+ sources."debug-3.2.6"
+ sources."ms-2.1.2"
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."nopt-1.0.10"
+ (sources."normalize-package-data-2.5.0" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."normalize-path-3.0.0"
+ sources."normalize-url-4.5.0"
+ sources."npm-6.14.8"
+ sources."npm-run-path-2.0.2"
+ sources."number-is-nan-1.0.1"
+ (sources."nyc-15.1.0" // {
+ dependencies = [
+ sources."ansi-regex-5.0.0"
+ sources."ansi-styles-4.2.1"
+ sources."cliui-6.0.0"
+ sources."color-convert-2.0.1"
+ sources."color-name-1.1.4"
+ sources."emoji-regex-8.0.0"
+ sources."find-cache-dir-3.3.1"
+ sources."find-up-4.1.0"
+ sources."glob-7.1.6"
+ sources."is-fullwidth-code-point-3.0.0"
+ sources."istanbul-lib-coverage-3.0.0"
+ sources."istanbul-lib-instrument-4.0.3"
+ sources."locate-path-5.0.0"
+ sources."make-dir-3.1.0"
+ sources."p-locate-4.1.0"
+ sources."path-exists-4.0.0"
+ sources."pkg-dir-4.2.0"
+ sources."string-width-4.2.0"
+ sources."strip-ansi-6.0.0"
+ sources."test-exclude-6.0.0"
+ sources."wrap-ansi-6.2.0"
+ sources."yargs-15.4.1"
+ sources."yargs-parser-18.1.3"
+ ];
+ })
+ sources."oauth-sign-0.4.0"
+ (sources."object-copy-0.1.0" // {
+ dependencies = [
+ sources."define-property-0.2.5"
+ sources."is-accessor-descriptor-0.1.6"
+ sources."is-data-descriptor-0.1.4"
+ (sources."is-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-5.1.0"
+ ];
+ })
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."object-inspect-1.8.0"
+ sources."object-keys-1.1.1"
+ sources."object-visit-1.0.1"
+ sources."object.assign-4.1.0"
+ sources."object.getownpropertydescriptors-2.1.0"
+ sources."object.pick-1.3.0"
+ sources."octokit-pagination-methods-1.1.0"
+ sources."once-1.4.0"
+ sources."onetime-2.0.1"
+ (sources."opt-cli-1.5.1" // {
+ dependencies = [
+ sources."commander-2.9.0"
+ sources."lodash.clone-4.3.2"
+ sources."spawn-command-0.0.2-1"
+ ];
+ })
+ sources."os-locale-3.1.0"
+ sources."os-name-3.1.0"
+ sources."os-tmpdir-1.0.2"
+ sources."p-defer-1.0.0"
+ (sources."p-filter-2.1.0" // {
+ dependencies = [
+ sources."p-map-2.1.0"
+ ];
+ })
+ sources."p-finally-1.0.0"
+ sources."p-is-promise-2.1.0"
+ sources."p-limit-2.3.0"
+ sources."p-locate-3.0.0"
+ sources."p-map-3.0.0"
+ sources."p-reduce-2.1.0"
+ sources."p-retry-4.2.0"
+ sources."p-try-2.2.0"
+ sources."package-hash-4.0.0"
+ (sources."package-json-4.0.1" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."pad-right-0.2.2"
+ sources."parent-module-1.0.1"
+ sources."parse-json-5.1.0"
+ sources."parse-passwd-1.0.0"
+ sources."pascalcase-0.1.1"
+ sources."path-dirname-1.0.2"
+ sources."path-exists-3.0.0"
+ sources."path-is-absolute-1.0.1"
+ sources."path-is-inside-1.0.2"
+ sources."path-key-2.0.1"
+ sources."path-parse-1.0.6"
+ (sources."path-to-regexp-1.8.0" // {
+ dependencies = [
+ sources."isarray-0.0.1"
+ ];
+ })
+ sources."path-type-4.0.0"
+ sources."pathval-1.1.0"
+ sources."picomatch-2.2.2"
+ sources."pify-4.0.1"
+ sources."pirates-4.0.1"
+ (sources."pkg-conf-2.1.0" // {
+ dependencies = [
+ sources."find-up-2.1.0"
+ sources."locate-path-2.0.0"
+ sources."p-limit-1.3.0"
+ sources."p-locate-2.0.0"
+ sources."p-try-1.0.0"
+ ];
+ })
+ sources."pkg-dir-3.0.0"
+ sources."posix-character-classes-0.1.1"
+ sources."prepend-http-1.0.4"
+ sources."process-nextick-args-2.0.1"
+ sources."process-on-spawn-1.0.0"
+ sources."proxyquire-2.1.3"
+ sources."pseudomap-1.0.2"
+ sources."psl-1.8.0"
+ sources."pstree.remy-1.1.8"
+ sources."pump-3.0.0"
+ sources."punycode-2.1.1"
+ sources."q-1.5.1"
+ sources."qs-1.2.2"
+ sources."quick-lru-4.0.1"
+ (sources."rc-1.2.8" // {
+ dependencies = [
+ sources."strip-json-comments-2.0.1"
+ ];
+ })
+ (sources."read-pkg-3.0.0" // {
+ dependencies = [
+ sources."path-type-3.0.0"
+ sources."pify-3.0.0"
+ ];
+ })
+ sources."read-pkg-up-4.0.0"
+ sources."readable-stream-2.3.7"
+ sources."readdirp-2.2.1"
+ sources."redent-3.0.0"
+ sources."redeyed-2.1.1"
+ sources."regenerate-1.4.1"
+ sources."regenerate-unicode-properties-8.2.0"
+ sources."regenerator-runtime-0.13.7"
+ sources."regenerator-transform-0.14.5"
+ sources."regex-not-1.0.2"
+ sources."regexpu-core-4.7.0"
+ sources."registry-auth-token-3.4.0"
+ sources."registry-url-3.1.0"
+ sources."regjsgen-0.5.2"
+ (sources."regjsparser-0.6.4" // {
+ dependencies = [
+ sources."jsesc-0.5.0"
+ ];
+ })
+ sources."release-zalgo-1.0.0"
+ sources."remove-trailing-separator-1.1.0"
+ sources."repeat-element-1.1.3"
+ sources."repeat-string-1.6.1"
+ sources."request-2.42.0"
+ sources."require-directory-2.1.1"
+ sources."require-main-filename-2.0.0"
+ sources."resolve-1.17.0"
+ sources."resolve-dir-1.0.1"
+ sources."resolve-from-5.0.0"
+ sources."resolve-global-1.0.0"
+ sources."resolve-url-0.2.1"
+ sources."restore-cursor-2.0.0"
+ sources."resumer-0.0.0"
+ sources."ret-0.1.15"
+ sources."retry-0.12.0"
+ sources."reusify-1.0.4"
+ sources."right-pad-1.0.1"
+ sources."rimraf-3.0.2"
+ sources."run-async-2.4.1"
+ sources."run-parallel-1.1.9"
+ sources."rxjs-6.6.3"
+ sources."safe-buffer-5.1.2"
+ sources."safe-regex-1.1.0"
+ sources."safer-buffer-2.1.2"
+ (sources."semantic-release-15.13.18" // {
+ dependencies = [
+ sources."cosmiconfig-5.2.1"
+ sources."debug-4.2.0"
+ sources."figures-3.2.0"
+ sources."find-up-4.1.0"
+ sources."get-stream-5.2.0"
+ (sources."import-fresh-2.0.0" // {
+ dependencies = [
+ sources."resolve-from-3.0.0"
+ ];
+ })
+ sources."locate-path-5.0.0"
+ sources."ms-2.1.2"
+ sources."p-locate-4.1.0"
+ sources."parse-json-4.0.0"
+ sources."path-exists-4.0.0"
+ (sources."read-pkg-5.2.0" // {
+ dependencies = [
+ sources."parse-json-5.1.0"
+ sources."type-fest-0.6.0"
+ ];
+ })
+ sources."read-pkg-up-6.0.0"
+ sources."type-fest-0.5.2"
+ ];
+ })
+ sources."semver-6.3.0"
+ (sources."semver-diff-2.1.0" // {
+ dependencies = [
+ sources."semver-5.7.1"
+ ];
+ })
+ sources."semver-regex-2.0.0"
+ sources."set-blocking-2.0.0"
+ (sources."set-value-2.0.1" // {
+ dependencies = [
+ sources."extend-shallow-2.0.1"
+ ];
+ })
+ sources."shebang-command-1.2.0"
+ sources."shebang-regex-1.0.0"
+ sources."signal-exit-3.0.3"
+ sources."signale-1.4.0"
+ sources."sinon-6.3.5"
+ sources."slash-2.0.0"
+ (sources."snapdragon-0.8.2" // {
+ dependencies = [
+ sources."define-property-0.2.5"
+ sources."extend-shallow-2.0.1"
+ (sources."is-accessor-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ (sources."is-data-descriptor-0.1.4" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."is-descriptor-0.1.6"
+ sources."kind-of-5.1.0"
+ ];
+ })
+ (sources."snapdragon-node-2.1.1" // {
+ dependencies = [
+ sources."define-property-1.0.0"
+ ];
+ })
+ (sources."snapdragon-util-3.0.1" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."sntp-0.2.4"
+ sources."source-map-0.5.7"
+ sources."source-map-resolve-0.5.3"
+ (sources."source-map-support-0.5.19" // {
+ dependencies = [
+ sources."source-map-0.6.1"
+ ];
+ })
+ sources."source-map-url-0.4.0"
+ sources."spawn-command-0.0.2"
+ sources."spawn-error-forwarder-1.0.0"
+ (sources."spawn-wrap-2.0.0" // {
+ dependencies = [
+ sources."make-dir-3.1.0"
+ sources."which-2.0.2"
+ ];
+ })
+ sources."spdx-correct-3.1.1"
+ sources."spdx-exceptions-2.3.0"
+ sources."spdx-expression-parse-3.0.1"
+ sources."spdx-license-ids-3.0.5"
+ sources."split-0.2.10"
+ sources."split-string-3.1.0"
+ (sources."split2-2.2.0" // {
+ dependencies = [
+ sources."through2-2.0.5"
+ ];
+ })
+ sources."sprintf-js-1.0.3"
+ (sources."static-extend-0.1.2" // {
+ dependencies = [
+ sources."define-property-0.2.5"
+ (sources."is-accessor-descriptor-0.1.6" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ (sources."is-data-descriptor-0.1.4" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."is-descriptor-0.1.6"
+ sources."kind-of-5.1.0"
+ ];
+ })
+ sources."stream-combiner-0.0.4"
+ sources."stream-combiner2-1.1.1"
+ (sources."string-width-2.1.1" // {
+ dependencies = [
+ sources."strip-ansi-4.0.0"
+ ];
+ })
+ sources."string.prototype.trimend-1.0.1"
+ sources."string.prototype.trimstart-1.0.1"
+ sources."string_decoder-1.1.1"
+ sources."stringstream-0.0.6"
+ (sources."strip-ansi-5.2.0" // {
+ dependencies = [
+ sources."ansi-regex-4.1.0"
+ ];
+ })
+ sources."strip-bom-4.0.0"
+ sources."strip-eof-1.0.0"
+ sources."strip-final-newline-2.0.0"
+ sources."strip-indent-3.0.0"
+ sources."strip-json-comments-3.0.1"
+ sources."supports-color-5.5.0"
+ (sources."supports-hyperlinks-1.0.1" // {
+ dependencies = [
+ sources."has-flag-2.0.0"
+ ];
+ })
+ sources."tape-2.3.0"
+ sources."temp-dir-1.0.0"
+ (sources."tempy-0.3.0" // {
+ dependencies = [
+ sources."type-fest-0.3.1"
+ ];
+ })
+ (sources."term-size-1.2.0" // {
+ dependencies = [
+ sources."cross-spawn-5.1.0"
+ sources."execa-0.7.0"
+ sources."get-stream-3.0.0"
+ ];
+ })
+ sources."test-exclude-5.2.3"
+ sources."text-extensions-1.9.0"
+ sources."through-2.3.8"
+ sources."through2-3.0.2"
+ sources."timed-out-4.0.1"
+ sources."tmp-0.0.33"
+ sources."to-fast-properties-2.0.0"
+ (sources."to-object-path-0.3.0" // {
+ dependencies = [
+ sources."kind-of-3.2.2"
+ ];
+ })
+ sources."to-regex-3.0.2"
+ sources."to-regex-range-2.1.1"
+ sources."touch-3.1.0"
+ sources."tough-cookie-4.0.0"
+ sources."traverse-0.6.6"
+ sources."trim-newlines-3.0.0"
+ sources."trim-off-newlines-1.0.1"
+ sources."tslib-1.13.0"
+ sources."tunnel-agent-0.4.3"
+ sources."type-detect-4.0.8"
+ sources."type-fest-0.8.1"
+ sources."typedarray-to-buffer-3.1.5"
+ sources."uglify-js-3.10.4"
+ sources."undefsafe-2.0.3"
+ sources."unicode-canonical-property-names-ecmascript-1.0.4"
+ sources."unicode-match-property-ecmascript-1.0.4"
+ sources."unicode-match-property-value-ecmascript-1.2.0"
+ sources."unicode-property-aliases-ecmascript-1.1.0"
+ sources."union-value-1.0.1"
+ sources."unique-string-1.0.0"
+ sources."universal-user-agent-4.0.1"
+ sources."universalify-0.1.2"
+ (sources."unset-value-1.0.0" // {
+ dependencies = [
+ (sources."has-value-0.3.1" // {
+ dependencies = [
+ sources."isobject-2.1.0"
+ ];
+ })
+ sources."has-values-0.1.4"
+ ];
+ })
+ sources."unzip-response-2.0.1"
+ sources."upath-1.2.0"
+ sources."update-notifier-2.5.0"
+ sources."urix-0.1.0"
+ sources."url-join-4.0.1"
+ sources."url-parse-lax-1.0.0"
+ sources."urlgrey-0.4.0"
+ sources."use-3.1.1"
+ sources."util-deprecate-1.0.2"
+ sources."uuid-3.3.2"
+ sources."validate-npm-package-license-3.0.4"
+ sources."which-1.3.1"
+ sources."which-module-2.0.0"
+ sources."wide-align-1.1.3"
+ sources."widest-line-2.0.1"
+ sources."windows-release-3.3.3"
+ sources."word-wrap-1.2.3"
+ sources."wordwrap-1.0.0"
+ (sources."wrap-ansi-2.1.0" // {
+ dependencies = [
+ sources."ansi-regex-2.1.1"
+ sources."is-fullwidth-code-point-1.0.0"
+ sources."string-width-1.0.2"
+ sources."strip-ansi-3.0.1"
+ ];
+ })
+ sources."wrappy-1.0.2"
+ sources."write-file-atomic-2.4.3"
+ sources."xdg-basedir-3.0.0"
+ sources."xml-1.0.1"
+ sources."xtend-4.0.2"
+ sources."y18n-4.0.0"
+ sources."yallist-2.1.2"
+ sources."yaml-1.10.0"
+ (sources."yargs-13.2.2" // {
+ dependencies = [
+ sources."string-width-3.1.0"
+ ];
+ })
+ sources."yargs-parser-13.0.0"
+ (sources."yargs-unparser-1.5.0" // {
+ dependencies = [
+ sources."get-caller-file-1.0.3"
+ sources."require-main-filename-1.0.1"
+ sources."yargs-12.0.5"
+ sources."yargs-parser-11.1.1"
+ ];
+ })
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Git commit, but play nice with conventions.";
+ homepage = https://github.com/commitizen/cz-cli;
+ license = "MIT";
+ };
+ production = false;
+ bypassCache = true;
+ reconstructLock = true;
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/package.json b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/package.json
new file mode 100644
index 000000000000..c3e3b5ab29e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/commitizen/package.json
@@ -0,0 +1,3 @@
+[
+ "commitizen"
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix
new file mode 100644
index 000000000000..cbd630094f0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix
@@ -0,0 +1,50 @@
+{stdenv, fetchurl, makeWrapper, flex, bison,
+ asciidoc, docbook_xml_dtd_45, docbook_xsl,
+ libxml2, libxslt,
+ python3, rcs, cvs, git,
+ coreutils, rsync}:
+with stdenv; with lib;
+mkDerivation rec {
+ name = "cvs-fast-export-${meta.version}";
+ meta = {
+ version = "1.55";
+ description = "Export an RCS or CVS history as a fast-import stream";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ dfoxfranke ];
+ homepage = "http://www.catb.org/esr/cvs-fast-export/";
+ platforms = platforms.all;
+ };
+
+ src = fetchurl {
+ url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-1.55.tar.gz";
+ sha256 = "06y2myhhv2ap08bq7d7shq0b7lq6wgznwrpz6622xq66cxkf2n5g";
+ };
+
+ buildInputs = [
+ flex bison asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
+ python3 rcs cvs git makeWrapper
+ ];
+
+ postPatch = "patchShebangs .";
+
+ preBuild = ''
+ makeFlagsArray=(
+ XML_CATALOG_FILES="${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml"
+ LIBS=""
+ prefix="$out"
+ )
+ '';
+
+ doCheck = true;
+
+ postInstall =
+ let
+ binpath = makeBinPath [ out rcs cvs git coreutils rsync ];
+ in ''
+ for prog in cvs-fast-export cvsconvert cvssync; do
+ wrapProgram $out/bin/$prog \
+ --prefix PATH : ${binpath}
+ done
+ ''
+ ;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch
new file mode 100644
index 000000000000..cd2b324729fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch
@@ -0,0 +1,16 @@
+diff --git a/src/client.c b/src/client.c
+index 751406b..b45d89c 100644
+--- a/src/client.c
++++ b/src/client.c
+@@ -3558,9 +3558,9 @@ connect_to_pserver (cvsroot_t *root, struct buffer **to_server_p,
+ * code.
+ */
+ read_line_via (from_server, to_server, &read_buf);
+- sscanf (read_buf, "%s %d", write_buf, &codenum);
++ count = sscanf (read_buf, "%*s %d", &codenum);
+
+- if ((codenum / 100) != 2)
++ if (count != 1 || (codenum / 100) != 2)
+ error (1, 0, "proxy server %s:%d does not support http tunnelling",
+ root->proxy_hostname, proxy_port_number);
+ free (read_buf);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch
new file mode 100644
index 000000000000..950079423685
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch
@@ -0,0 +1,29 @@
+--- a/src/rsh-client.c.orig 2005-10-02 17:17:21.000000000 +0200
++++ b/src/rsh-client.c 2017-11-07 16:56:06.957370469 +0100
+@@ -53,7 +53,7 @@
+ char *cvs_server = (root->cvs_server != NULL
+ ? root->cvs_server : getenv ("CVS_SERVER"));
+ int i = 0;
+- /* This needs to fit "rsh", "-b", "-l", "USER", "host",
++ /* This needs to fit "rsh", "-b", "-l", "USER", "--", "host",
+ "cmd (w/ args)", and NULL. We leave some room to grow. */
+ char *rsh_argv[10];
+
+@@ -97,6 +97,9 @@
+ rsh_argv[i++] = root->username;
+ }
+
++ /* Only non-option arguments from here. (CVE-2017-12836) */
++ rsh_argv[i++] = "--";
++
+ rsh_argv[i++] = root->hostname;
+ rsh_argv[i++] = cvs_server;
+ rsh_argv[i++] = "server";
+@@ -171,6 +174,7 @@
+ *p++ = root->username;
+ }
+
++ *p++ = "--";
+ *p++ = root->hostname;
+ *p++ = command;
+ *p++ = NULL;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/default.nix
new file mode 100644
index 000000000000..07a6b7c993c8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, fetchpatch, nano }:
+
+stdenv.mkDerivation {
+ name = "cvs-1.12.13";
+
+ src = fetchurl {
+ url = "mirror://savannah/cvs/source/feature/1.12.13/cvs-1.12.13.tar.bz2";
+ sha256 = "0pjir8cwn0087mxszzbsi1gyfc6373vif96cw4q3m1x6p49kd1bq";
+ };
+
+ patches = [
+ ./getcwd-chroot.patch
+ ./CVE-2012-0804.patch
+ ./CVE-2017-12836.patch
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/Homebrew/formula-patches/24118ec737c7/cvs/vasnprintf-high-sierra-fix.diff";
+ sha256 = "1ql6aaia7xkfq3vqhlw5bd2z2ywka82zk01njs1b2szn699liymg";
+ })
+ ];
+
+ hardeningDisable = [ "fortify" "format" ];
+
+ preConfigure = ''
+ # Apply the Debian patches.
+ for p in "debian/patches/"*; do
+ echo "applying \`$p' ..."
+ patch --verbose -p1 < "$p"
+ done
+ '';
+
+ buildInputs = [ nano ];
+
+ doCheck = false; # fails 1 of 1 tests
+
+ meta = with stdenv.lib; {
+ homepage = "http://cvs.nongnu.org";
+ description = "Concurrent Versions System - a source control system";
+ license = licenses.gpl2; # library is GPLv2, main is GPLv1
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch
new file mode 100644
index 000000000000..3f827a1e6981
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch
@@ -0,0 +1,302 @@
+Fix Gnulib's getcwd in chroots.
+From Debian bug #456164, http://bugs.debian.org/456164 .
+
+--- cvs-1.12.13.orig/debian/patches/20_readdir_errno
++++ cvs-1.12.13/debian/patches/20_readdir_errno
+@@ -0,0 +1,121 @@
++# From Gnulib:
++# http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=0b78641d85af3b72e3b9d94cb7b94e45f3c08ee5
++# We don't need this directly, but it's required so that 21_getcwd_chroot
++# applies cleanly.
++#
++# 2005-10-29 Paul Eggert <eggert@cs.ucla.edu>
++#
++# * getcwd.c (__getcwd): Don't assume that system calls after readdir
++# leave errno alone. Problem reported by Dmitry V. Levin.
++
++--- cvs-1.12.13-old/lib/getcwd.c
+++++ cvs-1.12.13/lib/getcwd.c
++@@ -201,6 +201,8 @@ __getcwd (char *buf, size_t size)
++ ino_t dotino;
++ bool mount_point;
++ int parent_status;
+++ size_t dirroom;
+++ size_t namlen;
++
++ /* Look at the parent directory. */
++ #ifdef AT_FDCWD
++@@ -241,11 +243,20 @@ __getcwd (char *buf, size_t size)
++ goto lose;
++ dotlist[dotlen++] = '/';
++ #endif
++- /* Clear errno to distinguish EOF from error if readdir returns
++- NULL. */
++- __set_errno (0);
++- while ((d = __readdir (dirstream)) != NULL)
+++ for (;;)
++ {
+++ /* Clear errno to distinguish EOF from error if readdir returns
+++ NULL. */
+++ __set_errno (0);
+++ d = __readdir (dirstream);
+++ if (d == NULL)
+++ {
+++ if (errno == 0)
+++ /* EOF on dirstream, which means that the current directory
+++ has been removed. */
+++ __set_errno (ENOENT);
+++ goto lose;
+++ }
++ if (d->d_name[0] == '.' &&
++ (d->d_name[1] == '\0' ||
++ (d->d_name[1] == '.' && d->d_name[2] == '\0')))
++@@ -303,48 +314,38 @@ __getcwd (char *buf, size_t size)
++ break;
++ }
++ }
++- if (d == NULL)
++- {
++- if (errno == 0)
++- /* EOF on dirstream, which means that the current directory
++- has been removed. */
++- __set_errno (ENOENT);
++- goto lose;
++- }
++- else
++- {
++- size_t dirroom = dirp - dir;
++- size_t namlen = _D_EXACT_NAMLEN (d);
++
++- if (dirroom <= namlen)
+++ dirroom = dirp - dir;
+++ namlen = _D_EXACT_NAMLEN (d);
+++
+++ if (dirroom <= namlen)
+++ {
+++ if (size != 0)
++ {
++- if (size != 0)
++- {
++- __set_errno (ERANGE);
++- goto lose;
++- }
++- else
++- {
++- char *tmp;
++- size_t oldsize = allocated;
+++ __set_errno (ERANGE);
+++ goto lose;
+++ }
+++ else
+++ {
+++ char *tmp;
+++ size_t oldsize = allocated;
++
++- allocated += MAX (allocated, namlen);
++- if (allocated < oldsize
++- || ! (tmp = realloc (dir, allocated)))
++- goto memory_exhausted;
+++ allocated += MAX (allocated, namlen);
+++ if (allocated < oldsize
+++ || ! (tmp = realloc (dir, allocated)))
+++ goto memory_exhausted;
++
++- /* Move current contents up to the end of the buffer.
++- This is guaranteed to be non-overlapping. */
++- dirp = memcpy (tmp + allocated - (oldsize - dirroom),
++- tmp + dirroom,
++- oldsize - dirroom);
++- dir = tmp;
++- }
+++ /* Move current contents up to the end of the buffer.
+++ This is guaranteed to be non-overlapping. */
+++ dirp = memcpy (tmp + allocated - (oldsize - dirroom),
+++ tmp + dirroom,
+++ oldsize - dirroom);
+++ dir = tmp;
++ }
++- dirp -= namlen;
++- memcpy (dirp, d->d_name, namlen);
++- *--dirp = '/';
++ }
+++ dirp -= namlen;
+++ memcpy (dirp, d->d_name, namlen);
+++ *--dirp = '/';
++
++ thisdev = dotdev;
++ thisino = dotino;
+--- cvs-1.12.13.orig/debian/patches/21_getcwd_chroot
++++ cvs-1.12.13/debian/patches/21_getcwd_chroot
+@@ -0,0 +1,172 @@
++# From Gnulib:
++# http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=79c0a43808d9ca85acd04600149fc1a9b75bd1b9
++#
++# 2006-07-03 Paul Eggert <eggert@cs.ucla.edu>
++#
++# Merge from coreutils.
++#
++# 2006-03-19 Jim Meyering <jim@meyering.net>
++#
++# Work even in a chroot where d_ino values for entries in "/"
++# don't match the stat.st_ino values for the same names.
++# * getcwd.c (__getcwd): When no d_ino value matches the target inode
++# number, iterate through all entries again, using lstat instead.
++# Reported by Kenshi Muto in http://bugs.debian.org/355810, and by
++# Zouhir Hafidi in https://bugzilla.redhat.com/bugzilla/190656.
++#
++# * getcwd.c (__getcwd): Clarify a comment.
++# Use memcpy in place of a call to strcpy.
++
++--- cvs-1.12.13-old/lib/getcwd.c
+++++ cvs-1.12.13/lib/getcwd.c
++@@ -211,6 +211,7 @@ __getcwd (char *buf, size_t size)
++ int parent_status;
++ size_t dirroom;
++ size_t namlen;
+++ bool use_d_ino = true;
++
++ /* Look at the parent directory. */
++ #ifdef AT_FDCWD
++@@ -257,11 +258,26 @@ __getcwd (char *buf, size_t size)
++ NULL. */
++ __set_errno (0);
++ d = __readdir (dirstream);
+++
+++ /* When we've iterated through all directory entries without finding
+++ one with a matching d_ino, rewind the stream and consider each
+++ name again, but this time, using lstat. This is necessary in a
+++ chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where
+++ .., ../.., ../../.., etc. all had the same device number, yet the
+++ d_ino values for entries in / did not match those obtained
+++ via lstat. */
+++ if (d == NULL && errno == 0 && use_d_ino)
+++ {
+++ use_d_ino = false;
+++ rewinddir (dirstream);
+++ d = __readdir (dirstream);
+++ }
+++
++ if (d == NULL)
++ {
++ if (errno == 0)
++- /* EOF on dirstream, which means that the current directory
++- has been removed. */
+++ /* EOF on dirstream, which can mean e.g., that the current
+++ directory has been removed. */
++ __set_errno (ENOENT);
++ goto lose;
++ }
++@@ -269,58 +285,65 @@ __getcwd (char *buf, size_t size)
++ (d->d_name[1] == '\0' ||
++ (d->d_name[1] == '.' && d->d_name[2] == '\0')))
++ continue;
++- if (MATCHING_INO (d, thisino) || mount_point)
+++
+++ if (use_d_ino)
++ {
++- int entry_status;
+++ bool match = (MATCHING_INO (d, thisino) || mount_point);
+++ if (! match)
+++ continue;
+++ }
+++
+++ {
+++ int entry_status;
++ #ifdef AT_FDCWD
++- entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
+++ entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
++ #else
++- /* Compute size needed for this file name, or for the file
++- name ".." in the same directory, whichever is larger.
++- Room for ".." might be needed the next time through
++- the outer loop. */
++- size_t name_alloc = _D_ALLOC_NAMLEN (d);
++- size_t filesize = dotlen + MAX (sizeof "..", name_alloc);
++-
++- if (filesize < dotlen)
++- goto memory_exhausted;
++-
++- if (dotsize < filesize)
++- {
++- /* My, what a deep directory tree you have, Grandma. */
++- size_t newsize = MAX (filesize, dotsize * 2);
++- size_t i;
++- if (newsize < dotsize)
++- goto memory_exhausted;
++- if (dotlist != dots)
++- free (dotlist);
++- dotlist = malloc (newsize);
++- if (dotlist == NULL)
++- goto lose;
++- dotsize = newsize;
++-
++- i = 0;
++- do
++- {
++- dotlist[i++] = '.';
++- dotlist[i++] = '.';
++- dotlist[i++] = '/';
++- }
++- while (i < dotlen);
++- }
++-
++- strcpy (dotlist + dotlen, d->d_name);
++- entry_status = __lstat (dotlist, &st);
+++ /* Compute size needed for this file name, or for the file
+++ name ".." in the same directory, whichever is larger.
+++ Room for ".." might be needed the next time through
+++ the outer loop. */
+++ size_t name_alloc = _D_ALLOC_NAMLEN (d);
+++ size_t filesize = dotlen + MAX (sizeof "..", name_alloc);
+++
+++ if (filesize < dotlen)
+++ goto memory_exhausted;
+++
+++ if (dotsize < filesize)
+++ {
+++ /* My, what a deep directory tree you have, Grandma. */
+++ size_t newsize = MAX (filesize, dotsize * 2);
+++ size_t i;
+++ if (newsize < dotsize)
+++ goto memory_exhausted;
+++ if (dotlist != dots)
+++ free (dotlist);
+++ dotlist = malloc (newsize);
+++ if (dotlist == NULL)
+++ goto lose;
+++ dotsize = newsize;
+++
+++ i = 0;
+++ do
+++ {
+++ dotlist[i++] = '.';
+++ dotlist[i++] = '.';
+++ dotlist[i++] = '/';
+++ }
+++ while (i < dotlen);
+++ }
+++
+++ memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d));
+++ entry_status = __lstat (dotlist, &st);
++ #endif
++- /* We don't fail here if we cannot stat() a directory entry.
++- This can happen when (network) file systems fail. If this
++- entry is in fact the one we are looking for we will find
++- out soon as we reach the end of the directory without
++- having found anything. */
++- if (entry_status == 0 && S_ISDIR (st.st_mode)
++- && st.st_dev == thisdev && st.st_ino == thisino)
++- break;
++- }
+++ /* We don't fail here if we cannot stat() a directory entry.
+++ This can happen when (network) file systems fail. If this
+++ entry is in fact the one we are looking for we will find
+++ out soon as we reach the end of the directory without
+++ having found anything. */
+++ if (entry_status == 0 && S_ISDIR (st.st_mode)
+++ && st.st_dev == thisdev && st.st_ino == thisino)
+++ break;
+++ }
++ }
++
++ dirroom = dirp - dir;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix
new file mode 100644
index 000000000000..ae1929565b6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchurl, makeWrapper
+, python2Packages
+, cvs, subversion, git, breezy
+}:
+
+python2Packages.buildPythonApplication rec {
+ pname = "cvs2svn";
+ version = "2.5.0";
+
+ src = fetchurl {
+ url = "http://cvs2svn.tigris.org/files/documents/1462/49543/${pname}-${version}.tar.gz";
+ sha256 = "1ska0z15sjhyfi860rjazz9ya1gxbf5c0h8dfqwz88h7fccd22b4";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ checkInputs = [ subversion git breezy ];
+
+ checkPhase = "python run-tests.py";
+
+ doCheck = false; # Couldn't find node 'transaction...' in expected output tree
+
+ postInstall = ''
+ for i in bzr svn git; do
+ wrapProgram $out/bin/cvs2$i \
+ --prefix PATH : "${lib.makeBinPath [ cvs ]}"
+ done
+ '';
+
+ meta = with lib; {
+ description = "A tool to convert CVS repositories to Subversion repositories";
+ homepage = "http://cvs2svn.tigris.org/";
+ maintainers = [ maintainers.makefu ];
+ platforms = platforms.unix;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvsps/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvsps/default.nix
new file mode 100644
index 000000000000..133d8d7cbb4e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvsps/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, fetchpatch, cvs, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "cvsps";
+ version = "2.1";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/c/cvsps/cvsps_${version}.orig.tar.gz";
+ sha256 = "0nh7q7zcmagx0i63h6fqqkkq9i55k77myvb8h6jn2f266f5iklwi";
+ };
+
+ # Patches from https://sources.debian.net/src/cvsps/2.1-7/debian/patches
+ patches =
+ [ (fetchpatch {
+ url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/01_ignoretrunk.patch";
+ sha256 = "1gzb97dw2a6bm0bmim7p7wvsn0r82y3a8n22ln6rbbkkd8vlnzcb";
+ })
+
+ (fetchpatch {
+ url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/02_dynamicbufferalloc.patch";
+ sha256 = "0dm7azxnw0g9pdqkb3y4y2h047zgrclbh40av6c868wfp2j6l9sc";
+ })
+
+ (fetchpatch {
+ url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/03_diffoptstypo.patch";
+ sha256 = "06n8652g7inpv8cgqir7ijq00qw1fr0v44m2pbmgx7ilmna2vrcw";
+ })
+
+ (fetchpatch {
+ url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/05-inet_addr_fix.patch";
+ sha256 = "10w6px96dz8bb69asjzshvp787ccazmqnjsggqc4gwdal95q3cn7";
+ })
+
+ (fetchpatch {
+ url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/fix-makefile";
+ sha256 = "0m92b55hgldwg6lwdaybbj0n3lw1b3wj2xkk1cz1ywq073bpf3jm";
+ })
+
+ (fetchpatch {
+ url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/fix-manpage";
+ sha256 = "0gky14rhx82wv0gj8bkc74ki5xilhv5i3k1jc7khklr4lb6mmhpx";
+ })
+ ];
+
+ buildInputs = [ cvs zlib ];
+
+ installFlags = [ "prefix=$(out)" ];
+
+ meta = {
+ description = ''A tool to generate CVS patch set information'';
+ longDescription = ''
+ CVSps is a program for generating `patchset' information from a
+ CVS repository. A patchset in this case is defined as a set of
+ changes made to a collection of files, and all committed at the
+ same time (using a single "cvs commit" command).
+ '';
+ homepage = "http://www.cobite.com/cvsps/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvsq/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvsq/default.nix
new file mode 100644
index 000000000000..a39c9ede5243
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/cvsq/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchurl
+, makeWrapper
+, cvs
+, perl
+, nettools
+, findutils
+, rsync
+, coreutils
+, diffutils
+} :
+
+stdenv.mkDerivation rec {
+ pname = "cvsq";
+ version = "1.11";
+
+ src = fetchurl {
+ url = "http://www.linta.de/~aehlig/cvsq/cvsq-${version}.tgz";
+ sha256 = "0491k4skk3jyyd6plp2kcihmxxav9rsch7vd1yi697m2fqckp5ws";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ cvs perl nettools findutils rsync coreutils diffutils ];
+
+
+ makeFlags = [ "prefix=$(out)" ];
+
+ postInstall = ''
+ substituteInPlace $out/bin/cvsq --replace "/bin/sh" "${stdenv.shell}"
+ substituteInPlace $out/bin/lcvs --replace "/bin/sh" "${stdenv.shell}"
+ wrapProgram $out/bin/cvsq --prefix PATH : ${stdenv.lib.makeBinPath
+ [ cvs nettools findutils rsync coreutils diffutils ]}
+ wrapProgram $out/bin/cvsq-branch --prefix PATH : ${stdenv.lib.makeBinPath
+ [ cvs nettools findutils rsync coreutils diffutils ]}
+ wrapProgram $out/bin/cvsq-merge --prefix PATH : ${stdenv.lib.makeBinPath
+ [ cvs nettools findutils rsync coreutils diffutils ]}
+ wrapProgram $out/bin/cvsq-switch --prefix PATH : ${stdenv.lib.makeBinPath
+ [ cvs nettools findutils rsync coreutils diffutils ]}
+ wrapProgram $out/bin/lcvs --prefix PATH : ${stdenv.lib.makeBinPath
+ [ cvs nettools findutils rsync coreutils diffutils ]}
+ '';
+
+ meta = {
+ description = ''A collection of tools to work locally with CVS'';
+ longDescription = ''
+ cvsq is a collection of tools to work locally with CVS.
+
+ cvsq queues commits and other cvs commands in a queue to be executed later,
+ when the machine is online again. In case of a commit (the default action)
+ an actual copy of the working directory is made, so that you can continue
+ editing without affecting the scheduled commit. You can even schedule
+ several successive commits to the same file and they will be correctly
+ committed as successive commits at the time of upload. This is different
+ from an earlier script also named cvsq that you might have seen elsewhere.
+
+ lcvs uses rsync to maintain a local copy of a cvs repository. It also
+ gives a convenient interface to call cvs in such a way that it believes the
+ current working directory refers to the local copy rather than to the actual
+ repository. This is useful for commands like log, diff, etc; however it cannot
+ be used for commits (that's what cvsq is for).
+ '';
+ homepage = "https://www.linta.de/~aehlig/cvsq/";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = with stdenv.lib.maintainers; [ clkamp ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/dvc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/dvc/default.nix
new file mode 100644
index 000000000000..b9ac8b139cbb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/dvc/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, enableGoogle ? false
+, enableAWS ? false
+, enableAzure ? false
+, enableSSH ? false
+}:
+
+with python3Packages;
+buildPythonApplication rec {
+ pname = "dvc";
+ version = "0.24.3";
+
+ # PyPi only has wheel
+ src = fetchFromGitHub {
+ owner = "iterative";
+ repo = "dvc";
+ rev = version;
+ sha256 = "1wqq4i23hppilp20fx5a5nj93xwf3wwwr2f8aasvn6jkv2l22vpl";
+ };
+
+ propagatedBuildInputs = [
+ ply
+ configparser
+ zc_lockfile
+ future
+ colorama
+ configobj
+ networkx
+ pyyaml
+ GitPython
+ setuptools
+ nanotime
+ pyasn1
+ schema
+ jsonpath_rw
+ requests
+ grandalf
+ asciimatics
+ distro
+ appdirs
+ ]
+ ++ lib.optional enableGoogle google_cloud_storage
+ ++ lib.optional enableAWS boto3
+ ++ lib.optional enableAzure azure-storage-blob
+ ++ lib.optional enableSSH paramiko;
+
+ # tests require access to real cloud services
+ # nix build tests have to be isolated and run locally
+ doCheck = false;
+
+ patches = [ ./dvc-daemon.patch ];
+
+ postPatch = ''
+ substituteInPlace dvc/daemon.py --subst-var-by dvc "$out/bin/dcv"
+ '';
+
+ meta = with lib; {
+ description = "Version Control System for Machine Learning Projects";
+ license = licenses.asl20;
+ homepage = "https://dvc.org";
+ maintainers = with maintainers; [ cmcdragonkai ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/dvc/dvc-daemon.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/dvc/dvc-daemon.patch
new file mode 100644
index 000000000000..5c2d363b17f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/dvc/dvc-daemon.patch
@@ -0,0 +1,21 @@
+diff --git a/dvc/daemon.py b/dvc/daemon.py
+index 1d67a37..7ce6fde 100644
+--- a/dvc/daemon.py
++++ b/dvc/daemon.py
+@@ -67,14 +67,8 @@ def daemon(args):
+ Args:
+ args (list): list of arguments to append to `dvc daemon` command.
+ """
+- cmd = [sys.executable]
+- if not is_binary():
+- cmd += ['-m', 'dvc']
+- cmd += ['daemon', '-q'] + args
+-
+- env = fix_env()
+- file_path = os.path.abspath(inspect.stack()[0][1])
+- env['PYTHONPATH'] = os.path.dirname(os.path.dirname(file_path))
++ cmd = [ "@dvc@" , "daemon", "-q"] + args
++ env = None
+
+ logger.debug("Trying to spawn '{}' with env '{}'".format(cmd, env))
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/fossil/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/fossil/default.nix
new file mode 100644
index 000000000000..f8ad81c60581
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/fossil/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, installShellFiles
+, tcl
+, libiconv
+, fetchurl
+, zlib
+, openssl
+, readline
+, sqlite
+, ed
+, which
+, tcllib
+, withJson ? true
+}:
+
+stdenv.mkDerivation rec {
+ pname = "fossil";
+ version = "2.12.1";
+
+ src = fetchurl {
+ urls =
+ [
+ "https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
+ ];
+ name = "${pname}-${version}.tar.gz";
+ sha256 = "00v6gmn2wpfms5jzf103hkm5s8i3bfs5mzacmznlhdzdrzzjc8w2";
+ };
+
+ nativeBuildInputs = [ installShellFiles tcl ];
+
+ buildInputs = [ zlib openssl readline sqlite which ed ]
+ ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+
+ doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+
+ configureFlags = [ "--disable-internal-sqlite" ]
+ ++ stdenv.lib.optional withJson "--json";
+
+ preCheck = ''
+ export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}"
+ '';
+
+ preBuild = ''
+ export USER=nonexistent-but-specified-user
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ INSTALLDIR=$out/bin make install
+
+ installManPage fossil.1
+ installShellCompletion --name fossil.bash tools/fossil-autocomplete.bash
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple, high-reliability, distributed software configuration management";
+ longDescription = ''
+ Fossil is a software configuration management system. Fossil is
+ software that is designed to control and track the development of a
+ software project and to record the history of the project. There are
+ many such systems in use today. Fossil strives to distinguish itself
+ from the others by being extremely simple to setup and operate.
+ '';
+ homepage = "http://www.fossil-scm.org/";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ maggesi viric ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gerrit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
new file mode 100644
index 000000000000..5b4808e87a6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "gerrit";
+ version = "3.2.3";
+
+ src = fetchurl {
+ url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
+ sha256 = "0hdxbn5qqqjzpqfcydz33nc351zanxp0j2k0ivizx4dn40fnavd7";
+ };
+
+ buildCommand = ''
+ mkdir -p "$out"/webapps/
+ ln -s ${src} "$out"/webapps/gerrit-${version}.war
+ '';
+
+ passthru = {
+ # A list of plugins that are part of the gerrit.war file.
+ # Use `java -jar gerrit.war ls | grep plugins/` to generate that list.
+ plugins = [
+ "codemirror-editor"
+ "commit-message-length-validator"
+ "delete-project"
+ "download-commands"
+ "gitiles"
+ "hooks"
+ "plugin-manager"
+ "replication"
+ "reviewnotes"
+ "singleusergroup"
+ "webhooks"
+ ];
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.gerritcodereview.com/index.md";
+ license = licenses.asl20;
+ description = "A web based code review and repository management for the git version control system";
+ maintainers = with maintainers; [ flokli jammerful zimbatm ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
new file mode 100644
index 000000000000..99c6323217ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+let
+ version = "1.13.0";
+ jarName = "bfg-${version}.jar";
+ mavenUrl = "mirror://maven/com/madgag/bfg/${version}/${jarName}";
+in
+ stdenv.mkDerivation {
+ inherit version jarName;
+
+ name = "bfg-repo-cleaner-${version}";
+
+ src = fetchurl {
+ url = mavenUrl;
+ sha256 = "1kn84rsvms1v5l1j2xgrk7dc7mnsmxkc6sqd94mnim22vnwvl8mz";
+ };
+
+ buildInputs = [ jre makeWrapper ];
+
+ phases = "installPhase";
+
+ installPhase = ''
+ mkdir -p $out/share/java
+ mkdir -p $out/bin
+ cp $src $out/share/java/$jarName
+ makeWrapper "${jre}/bin/java" $out/bin/bfg --add-flags "-cp $out/share/java/$jarName com.madgag.git.bfg.cli.Main"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://rtyley.github.io/bfg-repo-cleaner/";
+ # Descriptions taken with minor modification from the homepage of bfg-repo-cleaner
+ description = "Removes large or troublesome blobs in a git repository like git-filter-branch does, but faster";
+ longDescription = ''
+ The BFG is a simpler, faster alternative to git-filter-branch for
+ cleansing bad data out of your Git repository history, in particular removing
+ crazy big files and removing passwords, credentials, and other private data.
+
+ The git-filter-branch command is enormously powerful and can do things
+ that the BFG can't - but the BFG is much better for the tasks above, because
+ it's faster (10-720x), simpler (dedicated to just removing things), and
+ beautiful (can use Scala instead of bash to script customizations).
+ '';
+ license = licenses.gpl3;
+ maintainers = [ maintainers.changlinli ];
+ platforms = platforms.unix;
+ downloadPage = "https://mvnrepository.com/artifact/com.madgag/bfg/${version}";
+ };
+
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile
new file mode 100644
index 000000000000..8ed325154711
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'atlassian-stash'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock
new file mode 100644
index 000000000000..27a6e2c8dd03
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock
@@ -0,0 +1,27 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.5.0)
+ public_suffix (~> 2.0, >= 2.0.2)
+ atlassian-stash (0.7.0)
+ commander (~> 4.1.2)
+ git (>= 1.2.5)
+ json (>= 1.7.5)
+ launchy (~> 2.4.2)
+ commander (4.1.6)
+ highline (~> 1.6.11)
+ git (1.3.0)
+ highline (1.6.21)
+ json (2.0.2)
+ launchy (2.4.3)
+ addressable (~> 2.3)
+ public_suffix (2.0.5)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ atlassian-stash
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
new file mode 100644
index 000000000000..68edb8503bfc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
@@ -0,0 +1,21 @@
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
+
+bundlerEnv rec {
+ name = "bitbucket-server-cli-${version}";
+
+ version = (import ./gemset.nix).atlassian-stash.version;
+ inherit ruby;
+ gemdir = ./.;
+
+ pname = "atlassian-stash";
+
+ passthru.updateScript = bundlerUpdateScript "gitAndTools.bitbucket-server-cli";
+
+ meta = with lib; {
+ description = "A command line interface to interact with BitBucket Server (formerly Atlassian Stash)";
+ homepage = "https://bitbucket.org/atlassian/bitbucket-server-cli";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jgertm nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix
new file mode 100644
index 000000000000..a7c1406665e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix
@@ -0,0 +1,66 @@
+{
+ addressable = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1j5r0anj8m4qlf2psnldip4b8ha2bsscv11lpdgnfh4nnchzjnxw";
+ type = "gem";
+ };
+ version = "2.5.0";
+ };
+ atlassian-stash = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rsf9h5w5wiglwv0fqwp45fq06fxbg68cqkc3bpqvps1i1qm0p6i";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
+ commander = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x9i8hf083wjlgj09nl1p9j8sr5g7amq0fdmxjqs4cxdbg3wpmsb";
+ type = "gem";
+ };
+ version = "4.1.6";
+ };
+ git = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1waikaggw7a1d24nw0sh8fd419gbf7awh000qhsf411valycj6q3";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ highline = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06bml1fjsnrhd956wqq5k3w8cyd09rv1vixdpa3zzkl6xs72jdn1";
+ type = "gem";
+ };
+ version = "1.6.21";
+ };
+ json = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lhinj9vj7mw59jqid0bjn2hlfcnq02bnvsx9iv81nl2han603s0";
+ type = "gem";
+ };
+ version = "2.0.2";
+ };
+ launchy = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+ type = "gem";
+ };
+ version = "2.4.3";
+ };
+ public_suffix = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q";
+ type = "gem";
+ };
+ version = "2.0.5";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bump2version/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bump2version/default.nix
new file mode 100644
index 000000000000..eb44f6d412b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/bump2version/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, isPy27, pytest, testfixtures, lib }:
+
+buildPythonApplication rec {
+ pname = "bump2version";
+ version = "1.0.0";
+ disabled = isPy27;
+
+ src = fetchFromGitHub {
+ owner = "c4urself";
+ repo = pname;
+ rev = "refs/tags/v${version}";
+ sha256 = "10p7rg569rk3qvzs5kjj17894bqlsg3ihhbln6ciwwfhkfq1kpja";
+ };
+
+ checkInputs = [ pytest testfixtures ];
+ # X's in pytest are git tests which won't run in sandbox
+ checkPhase = ''
+ pytest tests/ -k 'not usage_string_fork'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Version-bump your software with a single command";
+ longDescription = ''
+ A small command line tool to simplify releasing software by updating
+ all version strings in your source code by the correct increment.
+ '';
+ homepage = "https://github.com/c4urself/bump2version";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jefflabonte ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix
new file mode 100644
index 000000000000..79c118a200c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, fetchurl, openssl, zlib, asciidoc, libxml2, libxslt
+, docbook_xsl, pkgconfig, luajit
+, coreutils, gnused, groff, docutils
+, gzip, bzip2, lzip, xz, zstd
+, python, wrapPython, pygments, markdown
+}:
+
+stdenv.mkDerivation rec {
+ pname = "cgit";
+ version = "1.2.3";
+
+ src = fetchurl {
+ url = "https://git.zx2c4.com/cgit/snapshot/${pname}-${version}.tar.xz";
+ sha256 = "193d990ym10qlslk0p8mjwp2j6rhqa7fq0y1iff65lvbyv914pss";
+ };
+
+ # cgit is tightly coupled with git and needs a git source tree to build.
+ # IMPORTANT: Remember to check which git version cgit needs on every version
+ # bump (look for "GIT_VER" in the top-level Makefile).
+ gitSrc = fetchurl {
+ url = "mirror://kernel/software/scm/git/git-2.25.1.tar.xz";
+ sha256 = "09lzwa183nblr6l8ib35g2xrjf9wm9yhk3szfvyzkwivdv69c9r2";
+ };
+
+ nativeBuildInputs = [ pkgconfig ] ++ [ python wrapPython ];
+ buildInputs = [
+ openssl zlib asciidoc libxml2 libxslt docbook_xsl luajit
+ ];
+ pythonPath = [ pygments markdown ];
+
+ postPatch = ''
+ sed -e 's|"gzip"|"${gzip}/bin/gzip"|' \
+ -e 's|"bzip2"|"${bzip2.bin}/bin/bzip2"|' \
+ -e 's|"lzip"|"${lzip}/bin/lzip"|' \
+ -e 's|"xz"|"${xz.bin}/bin/xz"|' \
+ -e 's|"zstd"|"${zstd}/bin/zstd"|' \
+ -i ui-snapshot.c
+
+ substituteInPlace filters/html-converters/man2html \
+ --replace 'groff' '${groff}/bin/groff'
+
+ substituteInPlace filters/html-converters/rst2html \
+ --replace 'rst2html.py' '${docutils}/bin/rst2html.py'
+ '';
+
+ # Give cgit a git source tree and pass configuration parameters (as make
+ # variables).
+ preBuild = ''
+ mkdir -p git
+ tar --strip-components=1 -xf "$gitSrc" -C git
+
+ makeFlagsArray+=(prefix="$out" CGIT_SCRIPT_PATH="$out/cgit/")
+ '';
+
+ # Install manpage.
+ postInstall = ''
+ # xmllint fails:
+ #make install-man
+
+ # bypassing xmllint works:
+ a2x --no-xmllint -f manpage cgitrc.5.txt
+ mkdir -p "$out/share/man/man5"
+ cp cgitrc.5 "$out/share/man/man5"
+
+ wrapPythonProgramsIn "$out/lib/cgit/filters" "$out $pythonPath"
+
+ for script in $out/lib/cgit/filters/*.sh $out/lib/cgit/filters/html-converters/txt2html; do
+ wrapProgram $script --prefix PATH : '${stdenv.lib.makeBinPath [ coreutils gnused ]}'
+ done
+ '';
+
+ stripDebugList = [ "cgit" ];
+
+ meta = {
+ homepage = "https://git.zx2c4.com/cgit/about/";
+ repositories.git = "git://git.zx2c4.com/cgit";
+ description = "Web frontend for git repositories";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix
new file mode 100644
index 000000000000..22d289d549af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, fetchgit, ruby, gnugrep, diffutils, git, darcs }:
+
+stdenv.mkDerivation {
+ pname = "darcs-to-git";
+ version = "2015-06-04";
+
+ src = fetchgit {
+ url = "git://github.com/purcell/darcs-to-git.git";
+ rev = "e5fee32495908fe0f7d700644c7b37347b7a0a5b";
+ sha256 = "0lxcx0x0m1cv2j4x9ykpjf6r2zg6lh5rya016x93vkmlzxm3f0ji";
+ };
+
+ patchPhase = let
+ matchExecution = ''(\<(output_of|system|run)\([^"%]*("|%w\()|^[^"`]*`)'';
+ in ''
+ sed -r -i \
+ -e '1s|^#!.*|#!${ruby}/bin/ruby|' \
+ -e 's!${matchExecution}git\>!\1${git}/bin/git!' \
+ -e 's!${matchExecution}darcs\>!\1${darcs}/bin/darcs!' \
+ -e 's!${matchExecution}diff\>!\1${diffutils}/bin/diff!' \
+ -e 's!\<egrep\>!${gnugrep}/bin/egrep!g' \
+ -e 's!%w\(darcs init\)!%w(${darcs}/bin/darcs init)!' \
+ darcs-to-git
+ '';
+
+ installPhase = ''
+ install -vD darcs-to-git "$out/bin/darcs-to-git"
+ '';
+
+ doCheck = true;
+
+ checkPhase = ''
+ orig_dir="$(pwd)"
+ darcs_repos="$(pwd)/darcs_test_repos"
+ git_repos="$(pwd)/git_test_repos"
+ test_home="$(pwd)/test_home"
+ mkdir "$darcs_repos" "$git_repos" "$test_home"
+ cd "$darcs_repos"
+ ${darcs}/bin/darcs init
+ echo "this is a test file" > new_file1
+ ${darcs}/bin/darcs add new_file1
+ HOME="$test_home" ${darcs}/bin/darcs record -a -m c1 -A none
+ echo "testfile1" > new_file1
+ echo "testfile2" > new_file2
+ ${darcs}/bin/darcs add new_file2
+ HOME="$test_home" ${darcs}/bin/darcs record -a -m c2 -A none
+ ${darcs}/bin/darcs mv new_file2 only_one_file
+ rm -f new_file1
+ HOME="$test_home" ${darcs}/bin/darcs record -a -m c3 -A none
+ cd "$git_repos"
+ HOME="$test_home" PATH= "$orig_dir/darcs-to-git" "$darcs_repos"
+ assertFileContents() {
+ echo -n "File $1 contains '$2'..." >&2
+ if [ "x$(cat "$1")" = "x$2" ]; then
+ echo " passed." >&2
+ return 0
+ else
+ echo " failed: '$(cat "$1")' != '$2'" >&2
+ return 1
+ fi
+ }
+ echo "Checking if converted repository matches original repository:" >&2
+ assertFileContents only_one_file testfile2
+ ${git}/bin/git reset --hard HEAD^
+ assertFileContents new_file1 testfile1
+ assertFileContents new_file2 testfile2
+ ${git}/bin/git reset --hard HEAD^
+ assertFileContents new_file1 "this is a test file"
+ echo "All checks passed." >&2
+ cd "$orig_dir"
+ rm -rf "$darcs_repos" "$git_repos" "$test_home"
+ '';
+
+ meta = {
+ description = "Converts a Darcs repository into a Git repository";
+ homepage = "http://www.sanityinc.com/articles/converting-darcs-repositories-to-git";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix
new file mode 100644
index 000000000000..bf6591a8cb9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix
@@ -0,0 +1,265 @@
+/* All git-relates tools live here, in a separate attribute set so that users
+ * can get a fast overview over what's available.
+ */
+args @ {config, lib, pkgs}: with args; with pkgs;
+let
+ gitBase = callPackage ./git {
+ svnSupport = false; # for git-svn support
+ guiSupport = false; # requires tcl/tk
+ sendEmailSupport = false; # requires plenty of perl libraries
+ perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey];
+ smtpPerlLibs = [
+ perlPackages.libnet perlPackages.NetSMTPSSL
+ perlPackages.IOSocketSSL perlPackages.NetSSLeay
+ perlPackages.AuthenSASL perlPackages.DigestHMAC
+ ];
+ };
+
+ self = rec {
+ # Try to keep this generally alphabetized
+
+ bfg-repo-cleaner = callPackage ./bfg-repo-cleaner { };
+
+ bitbucket-server-cli = callPackage ./bitbucket-server-cli { };
+
+ bump2version = pkgs.python37Packages.callPackage ./bump2version { };
+
+ darcs-to-git = callPackage ./darcs-to-git { };
+
+ delta = callPackage ./delta {
+ inherit (darwin.apple_sdk.frameworks) Security;
+ };
+
+ diff-so-fancy = callPackage ./diff-so-fancy { };
+
+ gh = callPackage ./gh { };
+
+ ghorg = callPackage ./ghorg { };
+
+ ghq = callPackage ./ghq { };
+
+ git = appendToName "minimal" gitBase;
+
+ git-absorb = callPackage ./git-absorb {
+ inherit (darwin.apple_sdk.frameworks) Security;
+ };
+
+ git-annex = pkgs.haskellPackages.git-annex;
+
+ git-annex-metadata-gui = libsForQt5.callPackage ./git-annex-metadata-gui {
+ inherit (python3Packages) buildPythonApplication pyqt5 git-annex-adapter;
+ };
+
+ git-annex-remote-b2 = callPackage ./git-annex-remote-b2 { };
+
+ git-annex-remote-dbx = callPackage ./git-annex-remote-dbx {
+ inherit (python3Packages)
+ buildPythonApplication
+ fetchPypi
+ dropbox
+ annexremote
+ humanfriendly;
+ };
+
+ git-annex-remote-rclone = callPackage ./git-annex-remote-rclone { };
+
+ git-annex-utils = callPackage ./git-annex-utils { };
+
+ git-brunch = pkgs.haskellPackages.git-brunch;
+
+ git-appraise = callPackage ./git-appraise {};
+
+ git-bug = callPackage ./git-bug { };
+
+ # support for bugzilla
+ git-bz = callPackage ./git-bz { };
+
+ git-chglog = callPackage ./git-chglog { };
+
+ git-cinnabar = callPackage ./git-cinnabar { };
+
+ git-codeowners = callPackage ./git-codeowners { };
+
+ git-codereview = callPackage ./git-codereview { };
+
+ git-cola = callPackage ./git-cola { };
+
+ git-crypt = callPackage ./git-crypt { };
+
+ git-delete-merged-branches = callPackage ./git-delete-merged-branches { };
+
+ git-dit = callPackage ./git-dit {
+ inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+ };
+
+ git-doc = lib.addMetaAttrs {
+ description = "Additional documentation for Git";
+ longDescription = ''
+ This package contains additional documentation (HTML and text files) that
+ is referenced in the man pages of Git.
+ '';
+ } gitFull.doc;
+
+ git-extras = callPackage ./git-extras { };
+
+ git-fame = callPackage ./git-fame {};
+
+ git-fast-export = callPackage ./fast-export { mercurial = mercurial_4; };
+
+ git-filter-repo = callPackage ./git-filter-repo {
+ pythonPackages = python3Packages;
+ };
+
+ git-gone = callPackage ./git-gone {
+ inherit (darwin.apple_sdk.frameworks) Security;
+ };
+
+ git-hub = callPackage ./git-hub { };
+
+ git-ignore = callPackage ./git-ignore { };
+
+ git-imerge = python3Packages.callPackage ./git-imerge { };
+
+ git-interactive-rebase-tool = callPackage ./git-interactive-rebase-tool {
+ inherit (darwin.apple_sdk.frameworks) Security;
+ };
+
+ git-machete = python3Packages.callPackage ./git-machete { };
+
+ git-my = callPackage ./git-my { };
+
+ git-octopus = callPackage ./git-octopus { };
+
+ git-open = callPackage ./git-open { };
+
+ git-radar = callPackage ./git-radar { };
+
+ git-recent = callPackage ./git-recent {
+ util-linux = if stdenv.isLinux then util-linuxMinimal else util-linux;
+ };
+
+ git-remote-codecommit = python3Packages.callPackage ./git-remote-codecommit { };
+
+ git-remote-gcrypt = callPackage ./git-remote-gcrypt { };
+
+ git-remote-hg = callPackage ./git-remote-hg { };
+
+ git-reparent = callPackage ./git-reparent { };
+
+ git-secret = callPackage ./git-secret { };
+
+ git-secrets = callPackage ./git-secrets { };
+
+ git-standup = callPackage ./git-standup { };
+
+ git-stree = callPackage ./git-stree { };
+
+ git-subrepo = callPackage ./git-subrepo { };
+
+ git-subset = callPackage ./git-subset {
+ inherit (darwin.apple_sdk.frameworks) Security;
+ };
+
+ git-subtrac = callPackage ./git-subtrac { };
+
+ git-sync = callPackage ./git-sync { };
+
+ git-test = callPackage ./git-test { };
+
+ git-trim = callPackage ./git-trim {
+ inherit (darwin.apple_sdk.frameworks) Security;
+ };
+
+ git-workspace = callPackage ./git-workspace {
+ inherit (darwin.apple_sdk.frameworks) Security;
+ };
+
+ git2cl = callPackage ./git2cl { };
+
+ # The full-featured Git.
+ gitFull = gitBase.override {
+ svnSupport = true;
+ guiSupport = true;
+ sendEmailSupport = true;
+ withLibsecret = !stdenv.isDarwin;
+ };
+
+ # Git with SVN support, but without GUI.
+ gitSVN = lowPrio (appendToName "with-svn" (gitBase.override {
+ svnSupport = true;
+ }));
+
+ gita = python3Packages.callPackage ./gita {};
+
+ gitbatch = callPackage ./gitbatch { };
+
+ gitflow = callPackage ./gitflow { };
+
+ gitin = callPackage ./gitin { };
+
+ gitstatus = callPackage ./gitstatus { };
+
+ gitui = callPackage ./gitui {
+ inherit (darwin.apple_sdk.frameworks) Security AppKit;
+ };
+
+ glab = callPackage ./glab { };
+
+ grv = callPackage ./grv { };
+
+ hub = callPackage ./hub { };
+
+ lab = callPackage ./lab { };
+
+ lefthook = callPackage ./lefthook {
+ # Please use empty attrset once upstream bugs have been fixed
+ # https://github.com/Arkweid/lefthook/issues/151
+ buildGoModule = buildGo114Module;
+ };
+
+ legit = callPackage ./legit { };
+
+ pass-git-helper = python3Packages.callPackage ./pass-git-helper { };
+
+ pre-commit = pkgs.python3Packages.toPythonApplication pkgs.python3Packages.pre-commit;
+
+ qgit = qt5.callPackage ./qgit { };
+
+ rs-git-fsmonitor = callPackage ./rs-git-fsmonitor { };
+
+ scmpuff = callPackage ./scmpuff { };
+
+ stgit = callPackage ./stgit { };
+
+ subgit = callPackage ./subgit { };
+
+ svn-all-fast-export = libsForQt5.callPackage ./svn-all-fast-export { };
+
+ svn2git = callPackage ./svn2git {
+ git = gitSVN;
+ };
+
+ thicket = callPackage ./thicket { };
+
+ tig = callPackage ./tig { };
+
+ top-git = callPackage ./topgit { };
+
+ transcrypt = callPackage ./transcrypt { };
+
+ git-vanity-hash = callPackage ./git-vanity-hash { };
+
+ ydiff = pkgs.python3.pkgs.toPythonApplication pkgs.python3.pkgs.ydiff;
+
+} // lib.optionalAttrs (config.allowAliases or true) (with self; {
+ # aliases
+ darcsToGit = darcs-to-git;
+ gitAnnex = git-annex;
+ gitBrunch = git-brunch;
+ gitFastExport = git-fast-export;
+ gitRemoteGcrypt = git-remote-gcrypt;
+ svn_all_fast_export = svn-all-fast-export;
+ topGit = top-git;
+});
+in
+ self
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
new file mode 100644
index 000000000000..f667a7b6d8c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, installShellFiles
+, libiconv
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "delta";
+ version = "0.4.4";
+
+ src = fetchFromGitHub {
+ owner = "dandavison";
+ repo = pname;
+ rev = version;
+ sha256 = "1ng22g9h1l1v2yav8zh6w4nn6ifv8sfz8566m8155d0cza2iimw6";
+ };
+
+ cargoSha256 = "0b3qv1ksk8fmpawih2qrz29wlpj1gvq9hw4yqm7hdk6awl5h8lvv";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+ postInstall = ''
+ installShellCompletion --bash --name delta.bash etc/completion/completion.bash
+ installShellCompletion --zsh --name _delta etc/completion/completion.zsh
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/dandavison/delta";
+ description = "A syntax-highlighting pager for git";
+ changelog = "https://github.com/dandavison/delta/releases/tag/${version}";
+ license = licenses.mit;
+ maintainers = with maintainers; [ marsam ma27 zowoq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
new file mode 100644
index 000000000000..ffdb788745a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
@@ -0,0 +1,57 @@
+{stdenv, git, perl, ncurses, coreutils, fetchFromGitHub, makeWrapper, ...}:
+
+stdenv.mkDerivation rec {
+ pname = "diff-so-fancy";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "so-fancy";
+ repo = "diff-so-fancy";
+ rev = "v${version}";
+ sha256 = "0aavxahzha2mms4vdwysk79pa6wzswpfwgsq2hwaxnaf66maahfl";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ buildInputs = [
+ perl # needed for patchShebangs
+ ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/lib/diff-so-fancy
+
+ # diff-so-fancy executable searches for it's library relative to
+ # itself, so we are copying executable to lib, and only symlink it
+ # from bin/
+ cp diff-so-fancy $out/lib/diff-so-fancy
+ cp -r lib $out/lib/diff-so-fancy
+ ln -s $out/lib/diff-so-fancy/diff-so-fancy $out/bin
+
+ # ncurses is needed for `tput`
+ wrapProgram $out/lib/diff-so-fancy/diff-so-fancy \
+ --prefix PATH : "${git}/share/git/contrib/diff-highlight" \
+ --prefix PATH : "${git}/bin" \
+ --prefix PATH : "${coreutils}/bin" \
+ --prefix PATH : "${ncurses.out}/bin"
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/so-fancy/diff-so-fancy";
+ description = "Good-looking diffs filter for git";
+ license = licenses.mit;
+ platforms = platforms.all;
+ longDescription = ''
+ diff-so-fancy builds on the good-lookin' output of git contrib's
+ diff-highlight to upgrade your diffs' appearances.
+ '';
+ maintainers = with maintainers; [ fpletz globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
new file mode 100644
index 000000000000..80f048d05752
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
@@ -0,0 +1,66 @@
+{stdenv, fetchFromGitHub, git, mercurial, makeWrapper}:
+
+stdenv.mkDerivation rec {
+ pname = "fast-export";
+ version = "200213";
+
+ src = fetchFromGitHub {
+ owner = "frej";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0hzyh66rlawxip4n2pvz7pbs0cq82clqv1d6c7hf60v1drjxw287";
+ };
+
+ buildInputs = [mercurial.python mercurial makeWrapper];
+
+ installPhase = ''
+ binPath=$out/bin
+ libexecPath=$out/libexec/${pname}
+ sitepackagesPath=$out/${mercurial.python.sitePackages}
+ mkdir -p $binPath $libexecPath $sitepackagesPath
+
+ # Patch shell scripts so they can execute the Python scripts
+ sed -i "s|ROOT=.*|ROOT=$libexecPath|" *.sh
+
+ mv hg-fast-export.sh hg-reset.sh $binPath
+ mv hg-fast-export.py hg-reset.py $libexecPath
+ mv hg2git.py pluginloader plugins $sitepackagesPath
+
+ for script in $out/bin/*.sh; do
+ wrapProgram $script \
+ --prefix PATH : "${git}/bin":"${mercurial.python}/bin":$libexec \
+ --prefix PYTHONPATH : "${mercurial}/${mercurial.python.sitePackages}":$sitepackagesPath
+ done
+ '';
+
+ doInstallCheck = true;
+ # deliberately not adding git or hg into installCheckInputs - package should
+ # be able to work without them in runtime env
+ installCheckPhase = ''
+ mkdir repo-hg
+ pushd repo-hg
+ ${mercurial}/bin/hg init
+ echo foo > bar
+ ${mercurial}/bin/hg add bar
+ ${mercurial}/bin/hg commit --message "baz"
+ popd
+
+ mkdir repo-git
+ pushd repo-git
+ ${git}/bin/git init
+ ${git}/bin/git config core.ignoreCase false # for darwin
+ $out/bin/hg-fast-export.sh -r ../repo-hg/ --hg-hash
+ for s in "foo" "bar" "baz" ; do
+ (${git}/bin/git show | grep $s > /dev/null) && echo $s found
+ done
+ popd
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Import mercurial into git";
+ homepage = "https://repo.or.cz/w/fast-export.git";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.koral ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
new file mode 100644
index 000000000000..830d189665c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -0,0 +1,42 @@
+{ lib, fetchFromGitHub, buildGoModule, installShellFiles }:
+
+buildGoModule rec {
+ pname = "gh";
+ version = "1.3.1";
+
+ src = fetchFromGitHub {
+ owner = "cli";
+ repo = "cli";
+ rev = "v${version}";
+ sha256 = "1j1nyx4ly87g0hk3hfw3qbykb64hrg3vg4r52z1w146v6ln7lm7h";
+ };
+
+ vendorSha256 = "19gv7ggbry46h40d9sc5cqba95vjfknzdd1cn3xa5409qaczg9lg";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildPhase = ''
+ export GO_LDFLAGS="-s -w"
+ make GH_VERSION=${version} bin/gh manpages
+ '';
+
+ installPhase = ''
+ install -Dm755 bin/gh -t $out/bin
+ installManPage share/man/*/*.[1-9]
+
+ for shell in bash fish zsh; do
+ $out/bin/gh completion -s $shell > gh.$shell
+ installShellCompletion gh.$shell
+ done
+ '';
+
+ # fails with `unable to find git executable in PATH`
+ doCheck = false;
+
+ meta = with lib; {
+ description = "GitHub CLI tool";
+ homepage = "https://cli.github.com/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ zowoq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
new file mode 100644
index 000000000000..30049e845877
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "ghorg";
+ version = "1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "gabrie30";
+ repo = "ghorg";
+ rev = version;
+ sha256 = "0diwndkckv6fga45j9zngizycn5m71r67cziv0zrx6c66ssbj49w";
+ };
+
+ doCheck = false;
+ vendorSha256 = null;
+
+ subPackages = [ "." ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ meta = with stdenv.lib; {
+ description = "Quickly clone an entire org/users repositories into one directory";
+ longDescription = ''
+ ghorg allows you to quickly clone all of an orgs, or users repos into a
+ single directory. This can be useful in many situations including
+ - Searching an orgs/users codebase with ack, silver searcher, grep etc..
+ - Bash scripting
+ - Creating backups
+ - Onboarding
+ - Performing Audits
+ '';
+ homepage = "https://github.com/gabrie30/ghorg";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ vidbina ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
new file mode 100644
index 000000000000..96f72f2d69c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "ghq";
+ version = "1.1.5";
+
+ src = fetchFromGitHub {
+ owner = "x-motemen";
+ repo = "ghq";
+ rev = "v${version}";
+ sha256 = "098fik155viylq07az7crzbgswcvhpx0hr68xpvyx0rpri792jbq";
+ };
+
+ vendorSha256 = "0gll132g111vn1hdmdjpkha9rbyppz0qj1ld89gwlk2mqd57jxkd";
+
+ doCheck = false;
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X=main.Version=${version}
+ '';
+
+ postInstall = ''
+ install -m 444 -D ${src}/misc/zsh/_ghq $out/share/zsh/site-functions/_ghq
+ install -m 444 -D ${src}/misc/bash/_ghq $out/share/bash-completion/completions/_ghq
+ '';
+
+ meta = {
+ description = "Remote repository management made easy";
+ homepage = "https://github.com/x-motemen/ghq";
+ maintainers = with stdenv.lib.maintainers; [ sigma ];
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
new file mode 100644
index 000000000000..d8e34f570058
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, rustPlatform, installShellFiles, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-absorb";
+ version = "0.6.6";
+
+ src = fetchFromGitHub {
+ owner = "tummychow";
+ repo = pname;
+ rev = "refs/tags/${version}";
+ sha256 = "04v10bn24acify34vh5ayymsr1flcyb05f3az9k1s2m6nlxy5gb9";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+ cargoSha256 = "0h0vlz4qd8i9bf1mgjr618zbdwfp6bmy7ql9a1xzjmfdpkl3cgk9";
+
+ postInstall = ''
+ installManPage Documentation/git-absorb.1
+ for shell in bash zsh fish; do
+ $out/bin/git-absorb --gen-completions $shell > git-absorb.$shell
+ installShellCompletion git-absorb.$shell
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/tummychow/git-absorb";
+ description = "git commit --fixup, but automatic";
+ license = [ licenses.bsd3 ];
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix
new file mode 100644
index 000000000000..cb0103df227a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, pyqt5, qt5, git-annex-adapter }:
+
+buildPythonApplication rec {
+ pname = "git-annex-metadata-gui";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "alpernebbi";
+ repo = "git-annex-metadata-gui";
+ rev = "v${version}";
+ sha256 = "03kch67k0q9lcs817906g864wwabkn208aiqvbiyqp1qbg99skam";
+ };
+
+ prePatch = ''
+ substituteInPlace setup.py --replace "'PyQt5', " ""
+ '';
+
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ '';
+
+ propagatedBuildInputs = [ pyqt5 git-annex-adapter ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/alpernebbi/git-annex-metadata-gui";
+ description = "Graphical interface for git-annex metadata commands";
+ maintainers = with maintainers; [ dotlambda ];
+ license = licenses.gpl3Plus;
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix
new file mode 100644
index 000000000000..55a9dd18f720
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "git-annex-remote-b2";
+ version = "20151212-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "4db46b9fc9ef7b3f4851c2a6b061cb8f90f553ba";
+
+ goPackagePath = "github.com/encryptio/git-annex-remote-b2";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/encryptio/git-annex-remote-b2";
+ sha256 = "1139rzdvlj3hanqsccfinprvrzf4qjc5n4f0r21jp9j24yhjs6j2";
+ };
+
+ goDeps = ./deps.nix;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix
new file mode 100644
index 000000000000..479b3e7d6372
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "github.com/pquerna/ffjson";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pquerna/ffjson";
+ rev = "674bc015b5b3f50f9bb2561179778586b9af68c5";
+ sha256 = "0l53q7b1g25hfjm1iyynfs413rpav4c51yvdr244ivw1x3hksa7a";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/kothar/go-backblaze.v0";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/kothar/go-backblaze.v0";
+ rev = "373819725fc560fa962c6cd883b533d2ebec4844";
+ sha256 = "1kmlwfnnfd4h46bb9pz2gw1hxqm1pzkwvidfmnc0zkrilaywk6fx";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-dbx/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-dbx/default.nix
new file mode 100644
index 000000000000..addfd1f5041b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-dbx/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, dropbox
+, annexremote
+, humanfriendly
+}:
+
+buildPythonApplication rec {
+ pname = "git-annex-remote-dbx";
+ version = "1.0.3";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "5b6f8025ed1e9877f06882ddbd81f701a8e094647ab97595e2afc09016835a7c";
+ };
+
+ propagatedBuildInputs = [ dropbox annexremote humanfriendly ];
+
+ meta = with lib; {
+ description = "A git-annex special remote for Dropbox";
+ homepage = "https://pypi.org/project/git-annex-remote-dbx/";
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix
new file mode 100644
index 000000000000..260e8024a8cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, rclone, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "git-annex-remote-rclone";
+ version = "0.6";
+ rev = "v${version}";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "DanielDent";
+ repo = "git-annex-remote-rclone";
+ sha256 = "0j0hlxji8d974fq7zd4xc02n0jpi31ylhxc7z4zp8iiwad5mkpxp";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp git-annex-remote-rclone $out/bin
+ wrapProgram "$out/bin/git-annex-remote-rclone" \
+ --prefix PATH ":" "${stdenv.lib.makeBinPath [ rclone ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/DanielDent/git-annex-remote-rclone";
+ description = "Use rclone supported cloud storage providers with git-annex";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.montag451 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
new file mode 100644
index 000000000000..bcfc33e55e4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, autoconf, automake, libtool, gmp }:
+
+stdenv.mkDerivation rec {
+ pname = "git-annex-utils";
+ version = "0.04-3-g531bb33";
+ src = fetchgit {
+ url = "http://git.mysteryvortex.com/repositories/git-annex-utils.git";
+ rev = "531bb33";
+ sha256 = "1sv7s2ykc840cjwbfn7ayy743643x9i1lvk4cd55w9l052xvzj65";
+ };
+ buildInputs = [ autoconf automake libtool gmp ];
+ preConfigure = "./autogen.sh";
+
+ meta = {
+ description = "gadu, a du like utility for annexed files";
+ longDescription = ''
+ This is a set of utilities that are handy to use with git-annex repositories.
+ Currently there is only one utility gadu, a du like utility for annexed files.
+ '';
+ homepage = "http://git-annex.mysteryvortex.com/git-annex-utils.html";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = with stdenv.lib.maintainers; [ woffs ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
new file mode 100644
index 000000000000..4895a2e399bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "git-appraise-unstable";
+ version = "2018-02-26";
+ rev = "2414523905939525559e4b2498c5597f86193b61";
+
+ goPackagePath = "github.com/google/git-appraise";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "google";
+ repo = "git-appraise";
+ sha256 = "04xkp1jpas1dfms6i9j09bgkydih0q10nhwn75w9ds8hi2qaa3sa";
+ };
+
+ meta = {
+ description = "Distributed code review system for Git repos";
+ homepage = "https://github.com/google/git-appraise";
+ license = stdenv.lib.licenses.asl20;
+ maintainers = [ stdenv.lib.maintainers.vdemeester ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix
new file mode 100644
index 000000000000..cd35c98a9696
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix
@@ -0,0 +1,30 @@
+{ fetchFromGitHub, python2Packages, stdenv, git, graphviz }:
+
+python2Packages.buildPythonApplication rec {
+ pname = "git-big-picture";
+ version = "0.10.1";
+
+ src = fetchFromGitHub {
+ owner = "esc";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0b0zdq7d7k7f6p3wwc799347fraphbr20rxd1ysnc4xi1cj4wpmi";
+ };
+
+ buildInputs = [ git graphviz ];
+
+ checkInputs = [ git ];
+
+ postFixup = ''
+ wrapProgram $out/bin/git-big-picture \
+ --prefix PATH ":" ${ stdenv.lib.makeBinPath buildInputs }
+ '';
+
+ meta = {
+ description = "Tool for visualization of Git repositories";
+ homepage = "https://github.com/esc/git-big-picture";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.nthorne ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
new file mode 100644
index 000000000000..7c345639e9f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "git-bug";
+ version = "0.7.1"; # the `rev` below pins the version of the source to get
+ rev = "2d64b85db71a17ff3277bbbf7ac9d8e81f8e416c";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "MichaelMure";
+ repo = "git-bug";
+ sha256 = "01ab3mlwh5g1vr3x85fppflg18gb8ip9mjfsp2b5rfigd9lxyyns";
+ };
+
+ vendorSha256 = "0c8b47lj4wl3s21lm0vx4z7hznylm8c4fb8b8gxm278kn3zys607";
+
+ doCheck = false;
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X github.com/MichaelMure/git-bug/commands.GitCommit=${rev}
+ -X github.com/MichaelMure/git-bug/commands.GitLastTag=${version}
+ -X github.com/MichaelMure/git-bug/commands.GitExactTag=${version}
+ '';
+
+ postInstall = ''
+ install -D -m 0644 misc/bash_completion/git-bug "$out/share/bash-completion/completions/git-bug"
+ install -D -m 0644 misc/zsh_completion/git-bug "$out/share/zsh/site-functions/git-bug"
+ install -D -m 0644 -t "$out/share/man/man1" doc/man/*
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Distributed bug tracker embedded in Git";
+ homepage = "https://github.com/MichaelMure/git-bug";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ royneary ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix
new file mode 100644
index 000000000000..7f199894924e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchgit
+, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxslt, makeWrapper, xmlto
+, pythonPackages }:
+
+stdenv.mkDerivation {
+ pname = "git-bz";
+ version = "3.2015-09-08";
+
+ src = fetchgit {
+ sha256 = "146z57m8nblgsxm4z6qnsvcy81p11d0w88v93ybacc6w21plh8hc";
+ rev = "e17bbae7a2ce454d9f69c32fc40066995d44913d";
+ url = "git://git.fishsoup.net/git-bz";
+ };
+
+ nativeBuildInputs = [
+ asciidoc docbook_xml_dtd_45 docbook_xsl libxslt makeWrapper xmlto
+ ];
+ buildInputs = []
+ ++ (with pythonPackages; [ python pysqlite ]);
+
+ postPatch = ''
+ patchShebangs configure
+
+ # Don't create a .html copy of the man page that isn't installed anyway:
+ substituteInPlace Makefile --replace "git-bz.html" ""
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/git-bz \
+ --prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pycrypto}")" \
+ --prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pysqlite}")"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Bugzilla integration for git";
+ longDescription = ''
+ git-bz is a tool for integrating the Git command line with the
+ Bugzilla bug-tracking system. Operations such as attaching patches to
+ bugs, applying patches in bugs to your current tree, and closing bugs
+ once you've pushed the fixes publicly can be done completely from
+ the command line without having to go to your web browser.
+
+ Authentication for git-bz is done by reading the cookies for the
+ Bugzilla host from your web browser. In order to do this, git-bz needs
+ to know how to access the cookies for your web browser; git-bz
+ currently is able to do this for Firefox, Epiphany, Galeon and
+ Chromium on Linux.
+ '';
+ license = licenses.gpl2Plus;
+ homepage = "http://git.fishsoup.net/cgit/git-bz/";
+
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix
new file mode 100644
index 000000000000..05d5dfe96056
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "git-chglog";
+ version = "0.9.1";
+
+ goPackagePath = "github.com/git-chglog/git-chglog";
+
+ src = fetchFromGitHub {
+ owner = "git-chglog";
+ repo = "git-chglog";
+ rev = version;
+ sha256 = "08x7w1jlvxxvwnz6pvkjmfd3nqayd8n15r9jbqi2amrp31z0gq0p";
+ };
+
+ meta = with lib; {
+ description = "CHANGELOG generator implemented in Go (Golang)";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ldenefle ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cinnabar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cinnabar/default.nix
new file mode 100644
index 000000000000..679e8dbdf507
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cinnabar/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, lib, fetchFromGitHub, autoconf, makeWrapper
+, curl, libiconv, mercurial, zlib
+}:
+
+let
+ python3 = mercurial.python;
+in
+
+stdenv.mkDerivation rec {
+ pname = "git-cinnabar";
+ version = "0.5.4";
+
+ src = fetchFromGitHub {
+ owner = "glandium";
+ repo = "git-cinnabar";
+ rev = version;
+ sha256 = "1cjn2cc6mj4m736wxab9s6qx83p5n5ha8cr3x84s9ra6rxs8d7pi";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ autoconf makeWrapper ];
+ buildInputs = [ curl zlib ] ++ lib.optional stdenv.isDarwin libiconv;
+
+ # Ignore submodule status failing due to no git in environment.
+ makeFlags = [ "SUBMODULE_STATUS=yes" ];
+
+ enableParallelBuilding = true;
+
+ installPhase = ''
+ mkdir -p $out/bin $out/libexec
+ install git-cinnabar-helper $out/bin
+ install git-cinnabar git-remote-hg $out/libexec
+ cp -r cinnabar mercurial $out/libexec
+
+ for pythonBin in git-cinnabar git-remote-hg; do
+ makeWrapper $out/libexec/$pythonBin $out/bin/$pythonBin \
+ --prefix PATH : ${lib.getBin python3}/bin \
+ --prefix GIT_CINNABAR_EXPERIMENTS , python3 \
+ --set PYTHONPATH ${mercurial}/${python3.sitePackages}
+ done
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/glandium/git-cinnabar";
+ description = "git remote helper to interact with mercurial repositories";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ qyliss ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix
new file mode 100644
index 000000000000..2517e20ce9d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix
@@ -0,0 +1,21 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+rustPlatform.buildRustPackage rec {
+ pname = "git-codeowners";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "softprops";
+ repo = "git-codeowners";
+ rev = "v${version}";
+ sha256 = "0bzq4ridzb4l1zqrj1r0vlzkjpgfaqwky5jf49cwjhz4ybwrfpkq";
+ };
+
+ cargoSha256 = "0r0hyp15knbbs4l9rcn395pzrx2vbibmwvs4pmga363irmi8mcy5";
+
+ meta = with lib; {
+ homepage = "https://github.com/softprops/git-codeowners";
+ description = "a git extension to work with CODEOWNERS files";
+ license = licenses.mit;
+ maintainers = with maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codereview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codereview/default.nix
new file mode 100644
index 000000000000..902814078485
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codereview/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage {
+ pname = "git-codereview";
+ version = "2020-01-15";
+ goPackagePath = "golang.org/x/review";
+
+ src = fetchFromGitHub {
+ owner = "golang";
+ repo = "review";
+ rev = "f51a73253c4da005cfdf18a036e11185c04c8ce3";
+ sha256 = "0c4vsyy5zp7pngqn4q87xipndghxyw2x57dkv1kxnrffckx1s3pc";
+ };
+
+ meta = with lib; {
+ description = "Manage the code review process for Git changes using a Gerrit server";
+ homepage = "https://golang.org/x/review/git-codereview";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.edef ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
new file mode 100644
index 000000000000..fa77b5307a37
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, python3Packages, gettext, git, qt5 }:
+
+let
+ inherit (python3Packages) buildPythonApplication pyqt5 sip pyinotify;
+
+in buildPythonApplication rec {
+ pname = "git-cola";
+ version = "3.8";
+
+ src = fetchFromGitHub {
+ owner = "git-cola";
+ repo = "git-cola";
+ rev = "v${version}";
+ sha256 = "1qxv2k8lxcxpqx46ka7f042xk90xns5w9lc4009cxmsqvcdba03a";
+ };
+
+ buildInputs = [ git gettext ];
+ propagatedBuildInputs = [ pyqt5 sip pyinotify ];
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+
+ doCheck = false;
+
+ postFixup = ''
+ wrapQtApp $out/bin/git-cola
+ wrapQtApp $out/bin/git-dag
+
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/git-cola/git-cola";
+ description = "A sleek and powerful Git GUI";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bobvanderlinden ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
new file mode 100644
index 000000000000..487f9b9625f4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
@@ -0,0 +1,55 @@
+{ fetchFromGitHub, git, gnupg, makeWrapper, openssl, stdenv
+, libxslt, docbook_xsl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "git-crypt";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "AGWA";
+ repo = pname;
+ rev = version;
+ sha256 = "13m9y0m6gc3mlw3pqv9x4i0him2ycbysizigdvdanhh514kga602";
+ };
+
+ nativeBuildInputs = [ libxslt ];
+
+ buildInputs = [ openssl makeWrapper ];
+
+ patchPhase = ''
+ substituteInPlace commands.cpp \
+ --replace '(escape_shell_arg(our_exe_path()))' '= "git-crypt"'
+ '';
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "ENABLE_MAN=yes"
+ "DOCBOOK_XSL=${docbook_xsl}/share/xml/docbook-xsl-nons/manpages/docbook.xsl"
+ ];
+
+ postFixup = ''
+ wrapProgram $out/bin/git-crypt --prefix PATH : $out/bin:${git}/bin:${gnupg}/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.agwa.name/projects/git-crypt";
+ description = "Transparent file encryption in git";
+ longDescription = ''
+ git-crypt enables transparent encryption and decryption of files in a git
+ repository. Files which you choose to protect are encrypted when
+ committed, and decrypted when checked out. git-crypt lets you freely
+ share a repository containing a mix of public and private
+ content. git-crypt gracefully degrades, so developers without the secret
+ key can still clone and commit to a repository with encrypted files. This
+ lets you store your secret material (such as keys or passwords) in the
+ same repository as your code, without requiring you to lock down your
+ entire repository.
+ '';
+ downloadPage = "https://github.com/AGWA/git-crypt/releases";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.dochang ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix
new file mode 100644
index 000000000000..d5abd0a59761
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3Packages, fetchFromGitHub, git }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "git-delete-merged-branches";
+ version = "6.0.5";
+
+ src = fetchFromGitHub {
+ owner = "hartwork";
+ repo = pname;
+ rev = version;
+ sha256 = "1mlmikcpm94nymid35v9rx9dyprhwidgwbdfd5zhsw502d40v0xp";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ colorama
+ clintermission
+ ];
+
+ checkInputs = [ git ]
+ ++ (with python3Packages; [ parameterized ]);
+
+ meta = with lib; {
+ description = "Command-line tool to delete merged Git branches";
+ homepage = "https://pypi.org/project/git-delete-merged-branches/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ SuperSandro2000 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix
new file mode 100644
index 000000000000..9ec4e2530424
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, fetchFromGitHub
+, openssl_1_0_2
+, zlib
+, libssh
+, cmake
+, perl
+, pkgconfig
+, rustPlatform
+, curl
+, libiconv
+, CoreFoundation
+, Security
+}:
+
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "git-dit";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "neithernut";
+ repo = "git-dit";
+ rev = "v${version}";
+ sha256 = "1sx6sc2dj3l61gbiqz8vfyhw5w4xjdyfzn1ixz0y8ipm579yc7a2";
+ };
+
+ cargoSha256 = "1wjbwd3scx71l2fpxgvgwaw05lkpw13rm6d2i1x5crhs7py96ky6";
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ perl
+ ];
+
+ buildInputs = [
+ openssl_1_0_2
+ libssh
+ zlib
+ ] ++ stdenv.lib.optionals (stdenv.isDarwin) [
+ curl
+ libiconv
+ CoreFoundation
+ Security
+ ];
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Decentralized Issue Tracking for git";
+ # This has not had a release in years and its cargo vendored dependencies
+ # fail to compile. It also depends on an unsupported openssl:
+ # https://github.com/NixOS/nixpkgs/issues/77503
+ broken = true;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ Profpatsch matthiasbeyer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
new file mode 100644
index 000000000000..d322a141cd94
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchzip, unixtools, which }:
+
+stdenv.mkDerivation rec {
+ pname = "git-extras";
+ version = "6.1.0";
+
+ src = fetchzip {
+ url = "https://github.com/tj/git-extras/archive/${version}.tar.gz";
+ sha256 = "12ff9rhgqd71xm72r385hx0h8g75hz0ag0adzqcwfa54k0lhrrrz";
+ };
+
+ nativeBuildInputs = [ unixtools.column which ];
+
+ dontBuild = true;
+
+ preInstall = ''
+ patchShebangs .
+ '';
+
+ installFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ postInstall = ''
+ # bash completion is already handled by make install
+ install -D etc/git-extras-completion.zsh $out/share/zsh/site-functions/_git_extras
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/tj/git-extras";
+ description = "GIT utilities -- repo summary, repl, changelog population, author commit percentages and more";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.spwhitt maintainers.cko ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile
new file mode 100644
index 000000000000..17373f02b44d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile
@@ -0,0 +1,4 @@
+source 'https://rubygems.org'
+
+# Specify your gem's dependencies in git_fame.gemspec
+gem "git_fame"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock
new file mode 100644
index 000000000000..12c58d72103a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock
@@ -0,0 +1,26 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ git_fame (2.5.2)
+ hirb (~> 0.7.3)
+ memoist (~> 0.14.0)
+ method_profiler (~> 2.0.1)
+ progressbar (~> 0.21.0)
+ scrub_rb (~> 1.0.1)
+ trollop (~> 2.1.2)
+ hirb (0.7.3)
+ memoist (0.14.0)
+ method_profiler (2.0.1)
+ hirb (>= 0.6.0)
+ progressbar (0.21.0)
+ scrub_rb (1.0.1)
+ trollop (2.1.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ git_fame
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix
new file mode 100644
index 000000000000..782579c70446
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, bundlerEnv, ruby, bundlerUpdateScript }:
+
+bundlerEnv {
+ inherit ruby;
+
+ pname = "git_fame";
+
+ gemdir = ./.;
+
+ passthru.updateScript = bundlerUpdateScript "gitAndTools.git-fame";
+
+ meta = with stdenv.lib; {
+ description = ''
+ A command-line tool that helps you summarize and pretty-print collaborators based on contributions
+ '';
+ homepage = "http://oleander.io/git-fame-rb";
+ license = licenses.mit;
+ maintainers = with maintainers; [ expipiplus1 nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix
new file mode 100644
index 000000000000..49b4af4ef6d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix
@@ -0,0 +1,60 @@
+{
+ git_fame = {
+ dependencies = ["hirb" "memoist" "method_profiler" "progressbar" "scrub_rb" "trollop"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02k5ls5zyif8skdbnym6zw9y76whlnksw2m94jsh2n1ygk98izdd";
+ type = "gem";
+ };
+ version = "2.5.2";
+ };
+ hirb = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mzch3c2lvmf8gskgzlx6j53d10j42ir6ik2dkrl27sblhy76cji";
+ type = "gem";
+ };
+ version = "0.7.3";
+ };
+ memoist = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03d3h6kp16bf0crqg1cxdgp1d2iyzn53d3phbmjh4pjybqls0gcm";
+ type = "gem";
+ };
+ version = "0.14.0";
+ };
+ method_profiler = {
+ dependencies = ["hirb"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ax04qrrv7fqp5ayxaxhn72660pybdkpkvmgiwbg7bs7x5ijjzd8";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ progressbar = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17haw9c6c9q6imsn83pii32jnihpg76jgd09x7y4hjqq45n3qcdh";
+ type = "gem";
+ };
+ version = "0.21.0";
+ };
+ scrub_rb = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dwg33w83w17aiij9kcbi7irj7lh045nh9prjgkzjya3f1j60d3x";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ trollop = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0415y63df86sqj43c0l82and65ia5h64if7n0znkbrmi6y0jwhl8";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
new file mode 100644
index 000000000000..c642f062c7b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "git-filter-repo";
+ version = "2.29.0";
+
+ src = fetchurl {
+ url = "https://github.com/newren/git-filter-repo/releases/download/v${version}/${pname}-${version}.tar.xz";
+ sha256 = "00nn7k9jqrybb762486fmigsnbcn9lbvimgpfvvarz4ikdp9y9pb";
+ };
+
+ buildInputs = [ pythonPackages.python ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -Dm755 -t $out/bin git-filter-repo
+ install -Dm644 -t $out/share/man/man1 Documentation/man1/git-filter-repo.1
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/newren/git-filter-repo";
+ description = "Quickly rewrite git repository history (filter-branch replacement)";
+ license = licenses.mit;
+ inherit (pythonPackages.python.meta) platforms;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-gone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
new file mode 100644
index 000000000000..13411ed4c41b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, makeWrapper, openssl, git, libiconv, Security, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-gone";
+ version = "0.3.7";
+
+ src = fetchFromGitHub {
+ owner = "lunaryorn";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0hhy1yazda9r4n753a5m9jf31fbzmm4v8wvl3pksspj2syglmll8";
+ };
+
+ cargoSha256 = "1g2jijx8y34lid9qwa26v4svab5v9ki6gn9vcfiy61dqa964c3l9";
+
+ nativeBuildInputs = [ pkgconfig makeWrapper installShellFiles ];
+
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+ postInstall = ''
+ installManPage git-gone.1
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/git-gone --prefix PATH : "${stdenv.lib.makeBinPath [ git ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Cleanup stale Git branches of pull requests";
+ homepage = "https://github.com/lunaryorn/git-gone";
+ license = licenses.asl20;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix
new file mode 100644
index 000000000000..33b3d0bc167c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, gitMinimal, python2Packages }:
+
+stdenv.mkDerivation rec {
+ pname = "git-hub";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "sociomantic-tsunami";
+ repo = "git-hub";
+ rev = "v${version}";
+ sha256 = "0jkzg7vjvgb952qncndhki7n70714w61flbzf4mdcjc286lqjvwb";
+ };
+
+ buildInputs = [ python2Packages.python ];
+ nativeBuildInputs = [
+ gitMinimal # Used during build to generate Bash completion.
+ python2Packages.docutils
+ ];
+
+ postPatch = ''
+ patchShebangs .
+ '';
+
+ enableParallelBuilding = true;
+
+ installFlags = [ "prefix=$(out)" "sysconfdir=$(out)/etc" ];
+
+ postInstall = ''
+ # Remove inert ftdetect vim plugin and a README that's a man page subset:
+ rm -r $out/share/{doc,vim}
+ '';
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Git command line interface to GitHub";
+ longDescription = ''
+ A simple command line interface to GitHub, enabling most useful GitHub
+ tasks (like creating and listing pull request or issues) to be accessed
+ directly through the Git command line.
+ '';
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
new file mode 100644
index 000000000000..a2f319d82b0d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, installShellFiles, rustPlatform, pkgconfig, openssl, darwin }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "git-ignore";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "sondr3";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0krz50pw9bkyzl78bvppk6skbpjp8ga7bd34jya4ha1xfmd8p89c";
+ };
+
+ cargoSha256 = "0vcg2pl0s329fr8p23pwdx2jy7qahbr7n337ib61f69aaxi1xmq0";
+
+ nativeBuildInputs = [ pkgconfig installShellFiles ];
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [
+ darwin.apple_sdk.frameworks.Security
+ ];
+
+ outputs = [ "out" "man" ];
+ preFixup = ''
+ installManPage $releaseDir/build/git-ignore-*/out/git-ignore.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Quickly and easily fetch .gitignore templates from gitignore.io";
+ homepage = "https://github.com/sondr3/git-ignore";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.sondr3 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix
new file mode 100644
index 000000000000..e1caede77d8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonApplication, fetchPypi, installShellFiles }:
+
+buildPythonApplication rec {
+ pname = "git-imerge";
+ version = "1.2.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "df5818f40164b916eb089a004a47e5b8febae2b4471a827e3aaa4ebec3831a3f";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ installShellCompletion --bash completions/git-imerge
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/mhagger/git-imerge";
+ description = "Perform a merge between two branches incrementally";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.spwhitt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
new file mode 100644
index 000000000000..1edd48f92f15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, ncurses5, fetchFromGitHub, rustPlatform, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-interactive-rebase-tool";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "MitMaro";
+ repo = pname;
+ rev = version;
+ sha256 = "10z3di2qypgsmg2z7xfs9nlrf9vng5i7l8dvqadv1l4lb9zz7i8q";
+ };
+
+ cargoSha256 = "0jc6mhszxmwsdjk73wkfi0jjp9vkzzl9kk0dbnry6w7dyr5if8cc";
+
+ buildInputs = [ ncurses5 ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+ cargoParallelTestThreads = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/MitMaro/git-interactive-rebase-tool";
+ description = "Native cross platform full feature terminal based sequence editor for git interactive rebase";
+ changelog = "https://github.com/MitMaro/git-interactive-rebase-tool/releases/tag/${version}";
+ license = licenses.mit;
+ maintainers = with maintainers; [ masaeedu zowoq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
new file mode 100644
index 000000000000..dac3c54a16a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildPythonApplication, fetchPypi
+, installShellFiles, pbr
+, flake8, mock, pycodestyle, pylint, tox }:
+
+buildPythonApplication rec {
+ pname = "git-machete";
+ version = "2.15.7";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0djbl4s9i7bs7kkldr7453yayi38s8mx0i41mkd0j2cvv5r9himr";
+ };
+
+ nativeBuildInputs = [ installShellFiles pbr ];
+
+ # TODO: Add missing check inputs (2019-11-22):
+ # - stestr
+ doCheck = false;
+ checkInputs = [ flake8 mock pycodestyle pylint tox ];
+
+ postInstall = ''
+ installShellCompletion --bash --name git-machete completion/git-machete.completion.bash
+ installShellCompletion --zsh --name _git-machete completion/git-machete.completion.zsh
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/VirtusLab/git-machete";
+ description = "Git repository organizer and rebase/merge workflow automation tool";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.blitz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-my/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-my/default.nix
new file mode 100644
index 000000000000..2a8a262bf304
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-my/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "git-my";
+ version = "1.1.2";
+
+ src = fetchFromGitHub {
+ owner = "davidosomething";
+ repo = "git-my";
+ rev = version;
+ sha256 = "0jji5zw25jygj7g4f6f3k0p0s9g37r8iad8pa0s67cxbq2v4sc0v";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -Dm755 -t "$out"/bin ./git-my
+ '';
+
+ meta = with stdenv.lib; {
+ description =
+ "List remote branches if they're merged and/or available locally";
+ homepage = "https://github.com/davidosomething/git-my";
+ license = licenses.free;
+ maintainers = with maintainers; [ bb010g ];
+ platforms = platforms.all;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix
new file mode 100644
index 000000000000..d5278d9d2417
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, git, perl, makeWrapper }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "git-octopus";
+ version = "1.4";
+
+ installFlags = [ "prefix=$(out)" ];
+
+ buildInputs = [ makeWrapper ];
+
+ # perl provides shasum
+ postInstall = ''
+ for f in $out/bin/*; do
+ wrapProgram $f --prefix PATH : ${makeBinPath [ git perl ]}
+ done
+ '';
+
+ src = fetchFromGitHub {
+ owner = "lesfurets";
+ repo = "git-octopus";
+ rev = "v${version}";
+ sha256 = "14p61xk7jankp6gc26xciag9fnvm7r9vcbhclcy23f4ghf4q4sj1";
+ };
+
+ meta = {
+ homepage = "https://github.com/lesfurets/git-octopus";
+ description = "The continuous merge workflow";
+ license = licenses.lgpl3;
+ platforms = platforms.unix;
+ maintainers = [maintainers.mic92];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix
new file mode 100644
index 000000000000..f7b2120cca02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix
@@ -0,0 +1,32 @@
+{stdenv, git, xdg_utils, gnugrep, fetchFromGitHub, makeWrapper}:
+
+stdenv.mkDerivation rec {
+ pname = "git-open";
+ version = "2.1.0";
+
+ src = fetchFromGitHub {
+ owner = "paulirish";
+ repo = "git-open";
+ rev = "v${version}";
+ sha256 = "11n46bngvca5wbdbfcxzjhjbfdbad7sgf7h9gf956cb1q8swsdm0";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ buildPhase = null;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp git-open $out/bin
+ wrapProgram $out/bin/git-open \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ git xdg_utils gnugrep ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/paulirish/git-open";
+ description = "Open the GitHub page or website for a repository in your browser";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.jlesquembre ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix
new file mode 100644
index 000000000000..fc4b5850f5c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchFromGitHub}:
+
+stdenv.mkDerivation rec {
+ pname = "git-radar";
+ version = "0.6";
+
+ src = fetchFromGitHub {
+ owner = "michaeldfallen";
+ repo = "git-radar";
+ rev = "v${version}";
+ sha256 = "0c3zp8s4w7m4s71qgwk1jyfc8yzw34f2hi43x1w437ypgabwg81j";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp git-radar fetch.sh prompt.bash prompt.zsh radar-base.sh $out
+ ln -s $out/git-radar $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/michaeldfallen/git-radar";
+ license = licenses.mit;
+ description = "A tool you can add to your prompt to provide at-a-glance information on your git repo";
+ platforms = with platforms; linux ++ darwin;
+ maintainers = with maintainers; [ kamilchm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
new file mode 100644
index 000000000000..a01b84a948ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
@@ -0,0 +1,35 @@
+{stdenv, git, less, fetchFromGitHub, makeWrapper
+# util-linuxMinimal is included because we need the column command
+, util-linux
+}:
+
+stdenv.mkDerivation rec {
+ pname = "git-recent";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "paulirish";
+ repo = "git-recent";
+ rev = "v${version}";
+ sha256 = "1g8i6vpjnnfh7vc1269c91bap267w4bxdqqwnzb8x18vqgn2fx8i";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ buildPhase = null;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp git-recent $out/bin
+ wrapProgram $out/bin/git-recent \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ git less util-linux ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/paulirish/git-recent";
+ description = "See your latest local git branches, formatted real fancy";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.jlesquembre ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-codecommit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-codecommit/default.nix
new file mode 100644
index 000000000000..e5e41ac7232a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-codecommit/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonApplication, fetchFromGitHub, isPy3k, botocore, pytest, mock
+, flake8, tox, awscli }:
+
+buildPythonApplication rec {
+ pname = "git-remote-codecommit";
+ version = "1.15.1";
+ disabled = !isPy3k;
+
+ src = fetchFromGitHub {
+ owner = "aws";
+ repo = pname;
+ rev = version;
+ sha256 = "1vvp7i8ghmq72v57f6smh441h35xnr5ar628q2mr40bzvcifwymw";
+ };
+
+ propagatedBuildInputs = [ botocore ];
+
+ checkInputs = [ pytest mock flake8 tox awscli ];
+
+ checkPhase = ''
+ pytest
+ '';
+
+ meta = {
+ description =
+ "Git remote prefix to simplify pushing to and pulling from CodeCommit";
+ maintainers = [ lib.maintainers.zaninime ];
+ homepage = "https://github.com/awslabs/git-remote-codecommit";
+ license = lib.licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix
new file mode 100644
index 000000000000..04787b0ce25b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, docutils, makeWrapper
+, gnupg, curl, rsync, coreutils
+, gawk, gnused, gnugrep
+}:
+
+stdenv.mkDerivation rec {
+ pname = "git-remote-gcrypt";
+ version = "1.3";
+ rev = version;
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "spwhitton";
+ repo = "git-remote-gcrypt";
+ sha256 = "0n8fzvr6y0pxrbvkywlky2bd8jvi0ayp4n9hwi84l1ldmv4a40dh";
+ };
+
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ docutils makeWrapper ];
+
+ installPhase = ''
+ prefix="$out" ./install.sh
+ wrapProgram "$out/bin/git-remote-gcrypt" \
+ --prefix PATH ":" "${stdenv.lib.makeBinPath [ gnupg curl rsync coreutils
+ gawk gnused gnugrep ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://spwhitton.name/tech/code/git-remote-gcrypt";
+ description = "A git remote helper for GPG-encrypted remotes";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ellis montag451 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
new file mode 100644
index 000000000000..dd4e6e011a6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub, python3Packages
+, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "git-remote-hg";
+ version = "unstable-2020-06-12";
+
+ src = fetchFromGitHub {
+ owner = "mnauw";
+ repo = "git-remote-hg";
+ rev = "28ed63b707919734d230cb13bff7d231dfeee8fc";
+ sha256 = "0dw48vbnk7pp0w6fzgl29mq8fyn52pacbya2w14z9c6jfvh5sha1";
+ };
+
+ nativeBuildInputs = [
+ asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt libxml2
+ ];
+ propagatedBuildInputs = with python3Packages; [ mercurial ];
+
+ postInstall = ''
+ make install-doc prefix=$out
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/mnauw/git-remote-hg";
+ description = "Semi-official Mercurial bridge from Git project";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ qyliss ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
new file mode 100644
index 000000000000..c0de46264d05
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, makeWrapper, git, gnused }:
+
+stdenv.mkDerivation rec {
+ pname = "git-reparent";
+ version = "unstable-2017-09-03";
+
+ src = fetchFromGitHub {
+ owner = "MarkLodato";
+ repo = "git-reparent";
+ rev = "a99554a32524a86421659d0f61af2a6c784b7715";
+ sha256 = "0v0yxydpw6r4awy0hb7sbnh520zsk86ibzh1xjf3983yhsvkfk5v";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -m755 -Dt $out/bin git-reparent
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/git-reparent --prefix PATH : "${stdenv.lib.makeBinPath [ git gnused ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Git command to recommit HEAD with a new set of parents";
+ maintainers = [ maintainers.marsam ];
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
new file mode 100644
index 000000000000..fe67aca55d14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }:
+
+let
+ version = "0.3.3";
+ repo = "git-secret";
+
+in stdenv.mkDerivation {
+ name = "${repo}-${version}";
+
+ src = fetchFromGitHub {
+ inherit repo;
+ owner = "sobolevn";
+ rev = "v${version}";
+ sha256 = "0hc7yavcp8jmn6b7wngjqhy8kl7f4191sfpik8ycvqghkvvimxj4";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ install -D git-secret $out/bin/git-secret
+
+ wrapProgram $out/bin/git-secret \
+ --prefix PATH : "${lib.makeBinPath [ git gnupg gawk ]}"
+
+ mkdir $out/share
+ cp -r man $out/share
+ '';
+
+ meta = {
+ description = "A bash-tool to store your private data inside a git repository";
+ homepage = "https://git-secret.io";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.lo1tuma ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix
new file mode 100644
index 000000000000..1beff2a118df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, makeWrapper, git, coreutils }:
+
+stdenv.mkDerivation rec {
+ pname = "git-secrets";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "awslabs";
+ repo = "git-secrets";
+ rev = version;
+ sha256 = "10lnxg0q855zi3d6804ivlrn6dc817kilzdh05mmz8a0ccvm2qc7";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -m755 -Dt $out/bin git-secrets
+ install -m444 -Dt $out/share/man/man1 git-secrets.1
+
+ wrapProgram $out/bin/git-secrets \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ git coreutils ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Prevents you from committing secrets and credentials into git repositories";
+ homepage = "https://github.com/awslabs/git-secrets";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-standup/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-standup/default.nix
new file mode 100644
index 000000000000..ceb734f0f67f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-standup/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, makeWrapper, git }:
+
+stdenv.mkDerivation rec {
+ pname = "git-standup";
+ version = "2.3.2";
+
+ src = fetchFromGitHub {
+ owner = "kamranahmedse";
+ repo = pname;
+ rev = version;
+ sha256 = "1xnn0jjha56v7l2vj45zzxncl6m5x2hq6nkffgc1bcikhp1pidn7";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -Dm755 -t $out/bin git-standup
+
+ wrapProgram $out/bin/git-standup \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ git ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Recall what you did on the last working day";
+ homepage = "https://github.com/kamranahmedse/git-standup";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix
new file mode 100644
index 000000000000..aa53529933ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchFromGitHub, ... }:
+
+stdenv.mkDerivation {
+ pname = "git-stree";
+ version = "0.4.5";
+
+ src = fetchFromGitHub {
+ owner = "tdd";
+ repo = "git-stree";
+ rev = "0.4.5";
+ sha256 = "0y5h44n38w6rhy9m591dvibxpfggj3q950ll7y4h49bhpks4m0l9";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/bash-completion/completions
+ install -m 0755 git-stree $out/bin/
+ install -m 0644 git-stree-completion.bash $out/share/bash-completion/completions/
+ '';
+
+ meta = with lib; {
+ description = "A better Git subtree helper command";
+ homepage = "http://deliciousinsights.github.io/git-stree";
+ license = licenses.mit;
+ maintainers = [ maintainers.benley ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
new file mode 100644
index 000000000000..708014e4af8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, git, makeWrapper, which }:
+
+stdenv.mkDerivation rec {
+ pname = "git-subrepo";
+ version = "0.4.1";
+
+ src = fetchFromGitHub {
+ owner = "ingydotnet";
+ repo = "git-subrepo";
+ rev = version;
+ sha256 = "0n10qnc8kyms6cv65k1n5xa9nnwpwbjn9h2cq47llxplawzqgrvp";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper
+ which
+ ];
+
+ buildInputs = [
+ git
+ ];
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "INSTALL_LIB=${placeholder "out"}/bin"
+ "INSTALL_MAN=${placeholder "out"}/share/man/man1"
+ ];
+
+ patches = [
+ # Allow zsh completion to work even though we aren't installing from a git
+ # clone. Also submitted upstream as
+ # https://github.com/ingydotnet/git-subrepo/pull/420
+ ./zsh-completion.patch
+ ];
+
+ postInstall = ''
+ ZSH_COMP_DIR="$out/share/zsh/vendor-completions"
+ mkdir -p "$ZSH_COMP_DIR"
+ cp share/zsh-completion/_git-subrepo "$ZSH_COMP_DIR/"
+
+ BASH_COMP_DIR="$out/share/bash-completion/completions"
+ mkdir -p "$BASH_COMP_DIR"
+ cp share/completion.bash "$BASH_COMP_DIR/git-subrepo"
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/git-subrepo \
+ --prefix PATH : "${git}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ingydotnet/git-subrepo";
+ description = "Git submodule alternative";
+ license = licenses.mit;
+ platforms = platforms.unix ++ platforms.darwin;
+ maintainers = [ maintainers.ryantrinkle ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/zsh-completion.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/zsh-completion.patch
new file mode 100644
index 000000000000..dcba5ba6eea1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/zsh-completion.patch
@@ -0,0 +1,32 @@
+diff --git a/pkg/bin/generate-completion.pl b/pkg/bin/generate-completion.pl
+index 85ae3b8..d3e423c 100644
+--- a/pkg/bin/generate-completion.pl
++++ b/pkg/bin/generate-completion.pl
+@@ -82,11 +82,6 @@ sub generate_zsh {
+
+ # DO NOT EDIT. This file generated by pkg/bin/generate-completion.pl.
+
+-if [[ -z $GIT_SUBREPO_ROOT ]]; then
+- echo 'GIT_SUBREPO_ROOT is null; has `/path/to/git-subrepo/.rc` been sourced?'
+- return 3
+-fi
+-
+ _git-subrepo() {
+ typeset -A opt_args
+ local curcontext="$curcontext" state line context
+diff --git a/share/zsh-completion/_git-subrepo b/share/zsh-completion/_git-subrepo
+index fc82be2..a8069d9 100644
+--- a/share/zsh-completion/_git-subrepo
++++ b/share/zsh-completion/_git-subrepo
+@@ -3,11 +3,6 @@
+
+ # DO NOT EDIT. This file generated by pkg/bin/generate-completion.pl.
+
+-if [[ -z $GIT_SUBREPO_ROOT ]]; then
+- echo 'GIT_SUBREPO_ROOT is null; has `/path/to/git-subrepo/.rc` been sourced?'
+- return 3
+-fi
+-
+ _git-subrepo() {
+ typeset -A opt_args
+ local curcontext="$curcontext" state line context
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subset/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subset/default.nix
new file mode 100644
index 000000000000..9893e6dd7844
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subset/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, curl, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-subset";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "jasonwhite";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "02z2r0kcd0nnn1zjslp6xxam5ddbhrmzn67qzxhlamsw0p9vvkbb";
+ };
+
+ cargoSha256 = "1ydrrq35h1h5s59mx8kwwf3bp7lsmla3jl53ccdlsq29x0rj2jhs";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ curl libiconv Security ];
+
+ meta = with stdenv.lib; {
+ description = "Super fast Git tree filtering";
+ homepage = "https://github.com/jasonwhite/git-subset";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix
new file mode 100644
index 000000000000..4e9c3b7a5ccc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "git-subtrac";
+ version = "0.04";
+
+ src = fetchFromGitHub {
+ owner = "apenwarr";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0p1n29k2a2rpznwxlwzkmx38ic6g041k9vx7msvick7cydn417fx";
+ };
+
+ vendorSha256 = "0m64grnmhjvfsw7a56474s894sgd24rvcp5kamhzzyc4q556hqny";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Keep the content for your git submodules all in one place: the parent repo";
+ homepage = "https://github.com/apenwarr/git-subtrac";
+ license = licenses.asl20;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
new file mode 100644
index 000000000000..bba355095558
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, coreutils, gnugrep, gnused, makeWrapper, git
+}:
+
+stdenv.mkDerivation rec {
+ pname = "git-sync";
+ version = "20151024";
+
+ src = fetchFromGitHub {
+ owner = "simonthum";
+ repo = "git-sync";
+ rev = "eb9adaf2b5fd65aac1e83d6544b9076aae6af5b7";
+ sha256 = "01if8y93wa0mwbkzkzx2v1vqh47zlz4k1dysl6yh5rmppd1psknz";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -a git-sync $out/bin/git-sync
+ '';
+
+ wrapperPath = with stdenv.lib; makeBinPath [
+ coreutils
+ git
+ gnugrep
+ gnused
+ ];
+
+ fixupPhase = ''
+ patchShebangs $out/bin
+
+ wrapProgram $out/bin/git-sync \
+ --prefix PATH : "${wrapperPath}"
+ '';
+
+ meta = {
+ description = "A script to automatically synchronize a git repository";
+ homepage = "https://github.com/simonthum/git-sync";
+ maintainers = with stdenv.lib.maintainers; [ imalison ];
+ license = stdenv.lib.licenses.cc0;
+ platforms = with stdenv.lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix
new file mode 100644
index 000000000000..27f9bcffa34e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, makeWrapper, git }:
+
+stdenv.mkDerivation rec {
+ pname = "git-test";
+ version = "1.0.4";
+
+ src = fetchFromGitHub {
+ owner = "spotify";
+ repo = "git-test";
+ rev = "v${version}";
+ sha256 = "01h3f0andv1p7pwir3k6n01v92hgr5zbjadfwl144yjw9x37fm2f";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ install -m755 -Dt $out/bin git-test
+ install -m444 -Dt $out/share/man/man1 git-test.1
+
+ wrapProgram $out/bin/git-test \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ git ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Test your commits";
+ homepage = "https://github.com/spotify/git-test";
+ license = licenses.asl20;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-trim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-trim/default.nix
new file mode 100644
index 000000000000..33534334bea7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-trim/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-trim";
+ version = "0.4.2";
+
+ src = fetchFromGitHub {
+ owner = "foriequal0";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1rb9dhj7b7mjrhsvm9vw5gzjfxj10idnzv488jkfdz7sfhd3fcvz";
+ };
+
+ cargoSha256 = "1q62gqqhf78ljcvzp7yrnr0vk65rif2f7axzjq0b87prbcsr7ij4";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+ postInstall = ''
+ install -Dm644 -t $out/share/man/man1/ docs/git-trim.1
+ '';
+
+ # fails with sandbox
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Automatically trims your branches whose tracking remote refs are merged or gone";
+ homepage = "https://github.com/foriequal0/git-trim";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vanity-hash/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vanity-hash/default.nix
new file mode 100644
index 000000000000..839acc5cca59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vanity-hash/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-vanity-hash";
+ version = "2020-02-26-unstable";
+
+ src = fetchFromGitHub {
+ owner = "prasmussen";
+ repo = "git-vanity-hash";
+ rev = "000004122124005af8d118a3f379bfc6ecc1e7c7";
+ sha256 = "1wf342zawbphlzvji0yba0qg4f6v67h81nhxqcsir132jv397ma7";
+ };
+
+ cargoSha256 = "0mbdis1kxmgj3wlgznr9bqf5yv0jwlj2f63gr5c99ja0ijccp99h";
+
+ postInstall = ''
+ mkdir -p $out/share/doc/git-vanity-hash
+ cp README.md $out/share/doc/git-vanity-hash
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/prasmussen/git-vanity-hash";
+ description = "Tool for creating commit hashes with a specific prefix";
+ license = [ licenses.mit ];
+ maintainers = [ maintainers.kaction ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
new file mode 100644
index 000000000000..674bdd14247a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+, pkgconfig, openssl
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-workspace";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "orf";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ckfk221ag6yhbqxfz432wpgbhddgzgdsaxhl1ymw90pwpnz717y";
+ };
+
+ cargoSha256 = "0zkns037vgy96ybmn80px515ivz6yhj5br5mwbvxgl73va92wd9v";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
+
+ meta = with stdenv.lib; {
+ description = "Sync personal and work git repositories from multiple providers";
+ homepage = "https://github.com/orf/git-workspace";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ misuzu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
new file mode 100644
index 000000000000..57f6703762d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -0,0 +1,353 @@
+{ fetchurl, stdenv, buildPackages
+, fetchpatch
+, curl, openssl, zlib, expat, perlPackages, python3, gettext, cpio
+, gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
+, openssh, pcre2
+, asciidoctor, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xsl_ns, docbook_xml_dtd_45
+, libxslt, tcl, tk, makeWrapper, libiconv
+, svnSupport, subversionClient, perlLibs, smtpPerlLibs
+, perlSupport ? true
+, nlsSupport ? true
+, guiSupport
+, withManual ? true
+, pythonSupport ? true
+, withpcre2 ? true
+, sendEmailSupport
+, darwin
+, withLibsecret ? false
+, pkgconfig, glib, libsecret
+, gzip # needed at runtime by gitweb.cgi
+}:
+
+assert sendEmailSupport -> perlSupport;
+assert svnSupport -> perlSupport;
+
+let
+ version = "2.29.2";
+ svn = subversionClient.override { perlBindings = perlSupport; };
+
+ gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
+in
+
+stdenv.mkDerivation {
+ pname = "git";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
+ sha256 = "1h87yv117ypnc0yi86941089c14n91gixk8b6shj2y35prp47z7j";
+ };
+
+ outputs = [ "out" ] ++ stdenv.lib.optional withManual "doc";
+
+ hardeningDisable = [ "format" ];
+
+ enableParallelBuilding = true;
+
+ ## Patch
+
+ patches = [
+ ./docbook2texi.patch
+ ./git-sh-i18n.patch
+ ./ssh-path.patch
+ ./git-send-email-honor-PATH.patch
+ ./installCheck-path.patch
+ (fetchpatch {
+ # https://github.com/git/git/pull/925
+ name = "make-manual-reproducible.patch";
+ url = "https://github.com/git/git/commit/7a68e9e0b8eda91eb576bbbc5ed66298f3ab761c.patch";
+ sha256 = "02naws82pd3vvwrrgqn91kid8qkjihyjaz1ahgjz8qlmnn2avf5n";
+ })
+ ];
+
+ postPatch = ''
+ for x in connect.c git-gui/lib/remote_add.tcl ; do
+ substituteInPlace "$x" \
+ --subst-var-by ssh "${openssh}/bin/ssh"
+ done
+
+ # Fix references to gettext introduced by ./git-sh-i18n.patch
+ substituteInPlace git-sh-i18n.sh \
+ --subst-var-by gettext ${gettext}
+ '';
+
+ nativeBuildInputs = [ gettext perlPackages.perl ]
+ ++ stdenv.lib.optionals withManual [ asciidoctor texinfo xmlto docbook2x
+ docbook_xsl docbook_xsl_ns docbook_xml_dtd_45 libxslt ];
+ buildInputs = [curl openssl zlib expat cpio makeWrapper libiconv]
+ ++ stdenv.lib.optionals perlSupport [ perlPackages.perl ]
+ ++ stdenv.lib.optionals guiSupport [tcl tk]
+ ++ stdenv.lib.optionals withpcre2 [ pcre2 ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ]
+ ++ stdenv.lib.optionals withLibsecret [ pkgconfig glib libsecret ];
+
+ # required to support pthread_cancel()
+ NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
+ + stdenv.lib.optionalString (stdenv.isFreeBSD) "-lthr";
+
+ configureFlags = stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+ "ac_cv_fread_reads_directories=yes"
+ "ac_cv_snprintf_returns_bogus=no"
+ "ac_cv_iconv_omits_bom=no"
+ "ac_cv_prog_CURL_CONFIG=${curl.dev}/bin/curl-config"
+ ];
+
+ preBuild = ''
+ makeFlagsArray+=( perllibdir=$out/$(perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}') )
+ '';
+
+ makeFlags = [
+ "prefix=\${out}"
+ "SHELL_PATH=${stdenv.shell}"
+ ]
+ ++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"])
+ ++ (if pythonSupport then ["PYTHON_PATH=${python3}/bin/python"] else ["NO_PYTHON=1"])
+ ++ stdenv.lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
+ ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc"])
+ ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
+ ++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1"
+ ++ stdenv.lib.optional (!nlsSupport) "NO_GETTEXT=1"
+ # git-gui refuses to start with the version of tk distributed with
+ # macOS Catalina. We can prevent git from building the .app bundle
+ # by specifying an invalid tk framework. The postInstall step will
+ # then ensure that git-gui uses tcl/tk from nixpkgs, which is an
+ # acceptable version.
+ #
+ # See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706
+ ++ stdenv.lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent";
+
+
+ postBuild = ''
+ make -C contrib/subtree
+ '' + (stdenv.lib.optionalString perlSupport ''
+ make -C contrib/diff-highlight
+ '') + (stdenv.lib.optionalString stdenv.isDarwin ''
+ make -C contrib/credential/osxkeychain
+ '') + (stdenv.lib.optionalString withLibsecret ''
+ make -C contrib/credential/libsecret
+ '');
+
+
+ ## Install
+
+ # WARNING: Do not `rm` or `mv` files from the source tree; use `cp` instead.
+ # We need many of these files during the installCheckPhase.
+
+ installFlags = [ "NO_INSTALL_HARDLINKS=1" ];
+
+ preInstall = (stdenv.lib.optionalString stdenv.isDarwin ''
+ mkdir -p $out/bin
+ ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/
+ rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o
+ '') + (stdenv.lib.optionalString withLibsecret ''
+ mkdir -p $out/bin
+ ln -s $out/share/git/contrib/credential/libsecret/git-credential-libsecret $out/bin/
+ rm -f $PWD/contrib/credential/libsecret/git-credential-libsecret.o
+ '');
+
+ postInstall =
+ ''
+ notSupported() {
+ unlink $1 || true
+ }
+
+ # Install git-subtree.
+ make -C contrib/subtree install ${stdenv.lib.optionalString withManual "USE_ASCIIDOCTOR=1 install-doc"}
+ rm -rf contrib/subtree
+
+ # Install contrib stuff.
+ mkdir -p $out/share/git
+ cp -a contrib $out/share/git/
+ mkdir -p $out/share/bash-completion/completions
+ ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/git
+ mkdir -p $out/share/bash-completion/completions
+ ln -s $out/share/git/contrib/completion/git-prompt.sh $out/share/bash-completion/completions/
+
+ # grep is a runtime dependency, need to patch so that it's found
+ substituteInPlace $out/libexec/git-core/git-sh-setup \
+ --replace ' grep' ' ${gnugrep}/bin/grep' \
+ --replace ' egrep' ' ${gnugrep}/bin/egrep'
+
+ # Fix references to the perl, sed, awk and various coreutil binaries used by
+ # shell scripts that git calls (e.g. filter-branch)
+ SCRIPT="$(cat <<'EOS'
+ BEGIN{
+ @a=(
+ '${gnugrep}/bin/grep', '${gnused}/bin/sed', '${gawk}/bin/awk',
+ '${coreutils}/bin/cut', '${coreutils}/bin/basename', '${coreutils}/bin/dirname',
+ '${coreutils}/bin/wc', '${coreutils}/bin/tr'
+ ${stdenv.lib.optionalString perlSupport ", '${perlPackages.perl}/bin/perl'"}
+ );
+ }
+ foreach $c (@a) {
+ $n=(split("/", $c))[-1];
+ s|(?<=[^#][^/.-])\b''${n}(?=\s)|''${c}|g
+ }
+ EOS
+ )"
+ perl -0777 -i -pe "$SCRIPT" \
+ $out/libexec/git-core/git-{sh-setup,filter-branch,merge-octopus,mergetool,quiltimport,request-pull,submodule,subtree,web--browse}
+
+
+ # Also put git-http-backend into $PATH, so that we can use smart
+ # HTTP(s) transports for pushing
+ ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend
+ '' + stdenv.lib.optionalString perlSupport ''
+ # wrap perl commands
+ makeWrapper "$out/share/git/contrib/credential/netrc/git-credential-netrc.perl" $out/bin/git-credential-netrc \
+ --set PERL5LIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
+ wrapProgram $out/libexec/git-core/git-cvsimport \
+ --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
+ wrapProgram $out/libexec/git-core/git-add--interactive \
+ --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
+ wrapProgram $out/libexec/git-core/git-archimport \
+ --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
+ wrapProgram $out/libexec/git-core/git-instaweb \
+ --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
+ wrapProgram $out/libexec/git-core/git-cvsexportcommit \
+ --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
+
+ # gzip (and optionally bzip2, xz, zip) are runtime dependencies for
+ # gitweb.cgi, need to patch so that it's found
+ sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \
+ $out/share/gitweb/gitweb.cgi
+ # Give access to CGI.pm and friends (was removed from perl core in 5.22)
+ for p in ${stdenv.lib.concatStringsSep " " gitwebPerlLibs}; do
+ sed -i -e "/use CGI /i use lib \"$p/${perlPackages.perl.libPrefix}\";" \
+ "$out/share/gitweb/gitweb.cgi"
+ done
+ ''
+
+ + (if svnSupport then ''
+ # wrap git-svn
+ wrapProgram $out/libexec/git-core/git-svn \
+ --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath (perlLibs ++ [svn.out])}" \
+ --prefix PATH : "${svn.out}/bin" ''
+ else '' # replace git-svn by notification script
+ notSupported $out/libexec/git-core/git-svn
+ '')
+
+ + (if sendEmailSupport then ''
+ # wrap git-send-email
+ wrapProgram $out/libexec/git-core/git-send-email \
+ --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath smtpPerlLibs}"
+ '' else ''
+ # replace git-send-email by notification script
+ notSupported $out/libexec/git-core/git-send-email
+ '')
+
+ + stdenv.lib.optionalString withManual ''# Install man pages
+ make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES USE_ASCIIDOCTOR=1 PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \
+ -C Documentation ''
+
+ + (if guiSupport then ''
+ # Wrap Tcl/Tk programs
+ for prog in bin/gitk libexec/git-core/{git-gui,git-citool,git-gui--askpass}; do
+ sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \
+ -e "s|exec wish|exec '${tk}/bin/wish'|g" \
+ "$out/$prog"
+ done
+ ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/gitk
+ '' else ''
+ # Don't wrap Tcl/Tk, replace them by notification scripts
+ for prog in bin/gitk libexec/git-core/git-gui; do
+ notSupported "$out/$prog"
+ done
+ '')
+ + stdenv.lib.optionalString stdenv.isDarwin ''
+ # enable git-credential-osxkeychain by default if darwin
+ mkdir -p $out/etc
+ cat > $out/etc/gitconfig << EOF
+ [credential]
+ helper = osxkeychain
+ EOF
+ '';
+
+
+ ## InstallCheck
+
+ doCheck = false;
+ doInstallCheck = true;
+
+ installCheckTarget = "test";
+
+ # see also installCheckFlagsArray
+ installCheckFlags = [
+ "DEFAULT_TEST_TARGET=prove"
+ "PERL_PATH=${buildPackages.perl}/bin/perl"
+ ];
+
+ preInstallCheck = ''
+ installCheckFlagsArray+=(
+ GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save"
+ GIT_TEST_INSTALLED=$out/bin
+ ${stdenv.lib.optionalString (!svnSupport) "NO_SVN_TESTS=y"}
+ )
+
+ function disable_test {
+ local test=$1 pattern=$2
+ if [ $# -eq 1 ]; then
+ mv t/{,skip-}$test.sh || true
+ else
+ sed -i t/$test.sh \
+ -e "/^\s*test_expect_.*$pattern/,/^\s*' *\$/{s/^/: #/}"
+ fi
+ }
+
+ # Shared permissions are forbidden in sandbox builds.
+ disable_test t0001-init shared
+ disable_test t1301-shared-repo
+ disable_test t5324-split-commit-graph 'split commit-graph respects core.sharedrepository'
+
+ # Our patched gettext never fallbacks
+ disable_test t0201-gettext-fallbacks
+
+ ${stdenv.lib.optionalString (!sendEmailSupport) ''
+ # Disable sendmail tests
+ disable_test t9001-send-email
+ ''}
+
+ # XXX: I failed to understand why this one fails.
+ # Could someone try to re-enable it on the next release ?
+ # Tested to fail: 2.18.0 and 2.19.0
+ disable_test t1700-split-index "null sha1"
+
+ # Tested to fail: 2.18.0
+ disable_test t9902-completion "sourcing the completion script clears cached --options"
+
+ ${stdenv.lib.optionalString (!perlSupport) ''
+ # request-pull is a Bash script that invokes Perl, so it is not available
+ # when NO_PERL=1, and the test should be skipped, but the test suite does
+ # not check for the Perl prerequisite.
+ disable_test t5150-request-pull
+ ''}
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ # XXX: Some tests added in 2.24.0 fail.
+ # Please try to re-enable on the next release.
+ disable_test t7816-grep-binary-pattern
+ '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+ # Test fails (as of 2.17.0, musl 1.1.19)
+ disable_test t3900-i18n-commit
+ # Fails largely due to assumptions about BOM
+ # Tested to fail: 2.18.0
+ disable_test t0028-working-tree-encoding
+ '';
+
+ stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ];
+
+
+ meta = {
+ homepage = "https://git-scm.com/";
+ description = "Distributed version control system";
+ license = stdenv.lib.licenses.gpl2;
+ changelog = "https://raw.githubusercontent.com/git/git/${version}/Documentation/RelNotes/${version}.txt";
+
+ longDescription = ''
+ Git, a popular distributed version control system designed to
+ handle very large projects with speed and efficiency.
+ '';
+
+ platforms = stdenv.lib.platforms.all;
+ maintainers = with stdenv.lib.maintainers; [ primeos peti wmertens globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch
new file mode 100644
index 000000000000..f8f8ab86a9ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch
@@ -0,0 +1,38 @@
+This patch does two things: (1) use the right name for `docbook2texi',
+and (2) make sure `gitman.info' isn't produced since it's broken (duplicate
+node names).
+
+diff --git a/Documentation/Makefile b/Documentation/Makefile
+index 26a2342bea..ceccd67ebb 100644
+--- a/Documentation/Makefile
++++ b/Documentation/Makefile
+@@ -132,7 +132,7 @@ HTML_REPO = ../../git-htmldocs
+
+ MAKEINFO = makeinfo
+ INSTALL_INFO = install-info
+-DOCBOOK2X_TEXI = docbook2x-texi
++DOCBOOK2X_TEXI = docbook2texi
+ DBLATEX = dblatex
+ ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex
+ DBLATEX_COMMON = -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty
+@@ -250,7 +250,7 @@ man1: $(DOC_MAN1)
+ man5: $(DOC_MAN5)
+ man7: $(DOC_MAN7)
+
+-info: git.info gitman.info
++info: git.info
+
+ pdf: user-manual.pdf
+
+@@ -266,10 +266,9 @@ install-man: man
+
+ install-info: info
+ $(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
+- $(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir)
++ $(INSTALL) -m 644 git.info $(DESTDIR)$(infodir)
+ if test -r $(DESTDIR)$(infodir)/dir; then \
+ $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\
+- $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\
+ else \
+ echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
+ fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch
new file mode 100644
index 000000000000..9603d8e27c5c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch
@@ -0,0 +1,28 @@
+diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
+index 1afe9fc858..05dd7c3a90 100644
+--- a/Documentation/git-send-email.txt
++++ b/Documentation/git-send-email.txt
+@@ -215,8 +215,7 @@ a password is obtained using 'git-credential'.
+ specify a full pathname of a sendmail-like program instead;
+ the program must support the `-i` option. Default value can
+ be specified by the `sendemail.smtpServer` configuration
+- option; the built-in default is to search for `sendmail` in
+- `/usr/sbin`, `/usr/lib` and $PATH if such program is
++ option; the built-in default is to search in $PATH if such program is
+ available, falling back to `localhost` otherwise.
+
+ --smtp-server-port=<port>::
+diff --git a/git-send-email.perl b/git-send-email.perl
+index 8eb63b5a2f..74a61d8213 100755
+--- a/git-send-email.perl
++++ b/git-send-email.perl
+@@ -956,8 +956,7 @@ sub expand_one_alias {
+ }
+
+ if (!defined $smtp_server) {
+- my @sendmail_paths = qw( /usr/sbin/sendmail /usr/lib/sendmail );
+- push @sendmail_paths, map {"$_/sendmail"} split /:/, $ENV{PATH};
++ my @sendmail_paths = map {"$_/sendmail"} split /:/, $ENV{PATH};
+ foreach (@sendmail_paths) {
+ if (-x $_) {
+ $smtp_server = $_;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch
new file mode 100644
index 000000000000..721f2aa099c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch
@@ -0,0 +1,23 @@
+diff --git a/git-sh-i18n.sh b/git-sh-i18n.sh
+index e1d917fd27..e90f8e1414 100644
+--- a/git-sh-i18n.sh
++++ b/git-sh-i18n.sh
+@@ -26,7 +26,7 @@ then
+ elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"
+ then
+ : no probing necessary
+-elif type gettext.sh >/dev/null 2>&1
++elif type @gettext@/bin/gettext.sh >/dev/null 2>&1
+ then
+ # GNU libintl's gettext.sh
+ GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
+@@ -43,7 +43,8 @@ export GIT_INTERNAL_GETTEXT_SH_SCHEME
+ case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in
+ gnu)
+ # Use libintl's gettext.sh, or fall back to English if we can't.
+- . gettext.sh
++ . @gettext@/bin/gettext.sh
++ export PATH=@gettext@/bin:$PATH
+ ;;
+ gettext_without_eval_gettext)
+ # Solaris has a gettext(1) but no eval_gettext(1)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch
new file mode 100644
index 000000000000..4b73d11744ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch
@@ -0,0 +1,13 @@
+diff --git a/t/test-lib.sh b/t/test-lib.sh
+index 8665b0a9b6..8bb892b1af 100644
+--- a/t/test-lib.sh
++++ b/t/test-lib.sh
+@@ -1227,7 +1227,7 @@ elif test -n "$GIT_TEST_INSTALLED"
+ then
+ GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) ||
+ error "Cannot run git from $GIT_TEST_INSTALLED."
+- PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$PATH
++ PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$GIT_BUILD_DIR:$PATH
+ GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH}
+ else # normal case, use ../bin-wrappers only unless $with_dashes:
+ if test -n "$no_bin_wrappers"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch
new file mode 100644
index 000000000000..71cdc694ac31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch
@@ -0,0 +1,26 @@
+diff --git a/connect.c b/connect.c
+index 4813f005ab..b3f12f3268 100644
+--- a/connect.c
++++ b/connect.c
+@@ -1183,7 +1183,7 @@ static void fill_ssh_args(struct child_process *conn, const char *ssh_host,
+
+ ssh = getenv("GIT_SSH");
+ if (!ssh)
+- ssh = "ssh";
++ ssh = "@ssh@";
+ variant = determine_ssh_variant(ssh, 0);
+ }
+
+diff --git a/git-gui/lib/remote_add.tcl b/git-gui/lib/remote_add.tcl
+index 480a6b30d0..7817204241 100644
+--- a/git-gui/lib/remote_add.tcl
++++ b/git-gui/lib/remote_add.tcl
+@@ -139,7 +139,7 @@ method _add {} {
+ # Parse the location
+ if { [regexp {(?:git\+)?ssh://([^/]+)(/.+)} $location xx host path]
+ || [regexp {([^:][^:]+):(.+)} $location xx host path]} {
+- set ssh ssh
++ set ssh @ssh@
+ if {[info exists env(GIT_SSH)]} {
+ set ssh $env(GIT_SSH)
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/update.sh
new file mode 100755
index 000000000000..54574722b02b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git/update.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts jq git
+
+set -eu -o pipefail
+
+oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion git" | tr -d '"')"
+latestTag="$(git ls-remote --tags --sort="v:refname" https://github.com/git/git.git | grep -v '\{\}' | grep -v '\-rc' | tail -1 | sed 's|^.*/v\(.*\)|\1|')"
+targetVersion="${1:-$latestTag}"
+
+if [ ! "${oldVersion}" = "${targetVersion}" ]; then
+ update-source-version git "${targetVersion}"
+ nixpkgs="$(git rev-parse --show-toplevel)"
+ default_nix="$nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix"
+ nix-build -A git
+ git add "${default_nix}"
+ git commit -m "git: ${oldVersion} -> ${targetVersion}"
+else
+ echo "git is already up-to-date"
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
new file mode 100644
index 000000000000..34417cfaa8c8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
@@ -0,0 +1,23 @@
+{ fetchgit, stdenv, perl }:
+
+stdenv.mkDerivation {
+ name = "git2cl-20080827";
+
+ src = fetchgit {
+ url = "git://repo.or.cz/git2cl.git";
+ rev = "8373c9f74993e218a08819cbcdbab3f3564bbeba";
+ sha256 = "b0d39379640c8a12821442431e2121f7908ce1cc88ec8ec6bede218ea8c21f2f";
+ };
+
+ buildInputs = [ perl ];
+ installPhase = ''
+ install -D -m755 git2cl $out/bin/git2cl
+ install -D -m644 README $out/share/doc/git2cl/README
+ '';
+
+ meta = {
+ homepage = "https://savannah.nongnu.org/projects/git2cl";
+ description = "Convert git logs to GNU style ChangeLog files";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gita/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gita/default.nix
new file mode 100644
index 000000000000..3e07a93458b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gita/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, git
+, pytest
+, pyyaml
+, setuptools
+, installShellFiles
+}:
+
+buildPythonApplication rec {
+ version = "0.10.10";
+ pname = "gita";
+
+ src = fetchFromGitHub {
+ sha256 = "0k7hicncbrqvhmpq1w3v1309bqij6izw31xs8xcb8is85dvi754h";
+ rev = "v${version}";
+ repo = "gita";
+ owner = "nosarthur";
+ };
+
+ propagatedBuildInputs = [
+ pyyaml
+ setuptools
+ ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postUnpack = ''
+ for case in "\n" ""; do
+ substituteInPlace source/tests/test_main.py \
+ --replace "'gita$case'" "'source$case'"
+ done
+ '';
+
+ checkInputs = [
+ git
+ pytest
+ ];
+
+ checkPhase = ''
+ git init
+ pytest tests
+ '';
+
+ postInstall = ''
+ installShellCompletion --bash --name gita ${src}/.gita-completion.bash
+ installShellCompletion --zsh --name gita ${src}/.gita-completion.zsh
+ '';
+
+ meta = with lib; {
+ description = "A command-line tool to manage multiple git repos";
+ homepage = "https://github.com/nosarthur/gita";
+ license = licenses.mit;
+ maintainers = with maintainers; [ seqizz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitbatch/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitbatch/default.nix
new file mode 100644
index 000000000000..99a127f3d8f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitbatch/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gitbatch-unstable";
+ version = "2019-12-19";
+
+ goPackagePath = "github.com/isacikgoz/gitbatch";
+
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "isacikgoz";
+ repo = "gitbatch";
+ rev = "381b0df7f86056c625c0d4d2d979733c1ee5def7";
+ sha256 = "0613vfqdn3k0w7fm25rqnqdr67w9vii3i56dfslqcn1vqjfrff3q";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Running git UI commands";
+ homepage = "https://github.com/isacikgoz/gitbatch";
+ license = licenses.mit;
+ maintainers = with maintainers; [ teto ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitbatch/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitbatch/deps.nix
new file mode 100644
index 000000000000..53784b4eacf0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitbatch/deps.nix
@@ -0,0 +1,543 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "github.com/alcortesm/tgz";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alcortesm/tgz";
+ rev = "9c5fe88206d7";
+ sha256 = "04dcwnz2c2i4wbq2vx3g2wrdgqpncr2r1h6p1k08rdwk4bq1h8c5";
+ };
+ }
+ {
+ 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/anmitsu/go-shlex";
+ fetch = {
+ type = "git";
+ url = "https://github.com/anmitsu/go-shlex";
+ rev = "648efa622239";
+ sha256 = "10rgdp5d106iisgz25ic8k6f44s9adh4sjh6fyxq9ccm21gw49b7";
+ };
+ }
+ {
+ goPackagePath = "github.com/armon/consul-api";
+ fetch = {
+ type = "git";
+ url = "https://github.com/armon/consul-api";
+ rev = "eb2c6b5be1b6";
+ sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
+ };
+ }
+ {
+ goPackagePath = "github.com/coreos/etcd";
+ fetch = {
+ type = "git";
+ url = "https://github.com/coreos/etcd";
+ rev = "v3.3.10";
+ sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl";
+ };
+ }
+ {
+ goPackagePath = "github.com/coreos/go-etcd";
+ fetch = {
+ type = "git";
+ url = "https://github.com/coreos/go-etcd";
+ rev = "v2.0.0";
+ sha256 = "1xb34hzaa1lkbq5vkzy9vcz6gqwj7hp6cdbvyack2bf28dwn33jj";
+ };
+ }
+ {
+ goPackagePath = "github.com/coreos/go-semver";
+ fetch = {
+ type = "git";
+ url = "https://github.com/coreos/go-semver";
+ rev = "v0.2.0";
+ sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
+ };
+ }
+ {
+ 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/emirpasic/gods";
+ fetch = {
+ type = "git";
+ url = "https://github.com/emirpasic/gods";
+ rev = "v1.9.0";
+ sha256 = "1zhkppqzy149fp561pif8d5d92jd9chl3l9z4yi5f8n60ibdmmjf";
+ };
+ }
+ {
+ goPackagePath = "github.com/fatih/color";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fatih/color";
+ rev = "v1.7.0";
+ sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
+ };
+ }
+ {
+ goPackagePath = "github.com/flynn/go-shlex";
+ fetch = {
+ type = "git";
+ url = "https://github.com/flynn/go-shlex";
+ rev = "3f9db97f8568";
+ sha256 = "1j743lysygkpa2s2gii2xr32j7bxgc15zv4113b0q9jhn676ysia";
+ };
+ }
+ {
+ goPackagePath = "github.com/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "github.com/gliderlabs/ssh";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gliderlabs/ssh";
+ rev = "v0.1.1";
+ sha256 = "0bylkc7yg8bxxffhchikcnzwli5n95cfmbji6v2a4mn1h5n36mdm";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/go-cmp";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/go-cmp";
+ rev = "v0.2.0";
+ sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/hcl";
+ rev = "v1.0.0";
+ sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
+ };
+ }
+ {
+ goPackagePath = "github.com/jbenet/go-context";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jbenet/go-context";
+ rev = "d14ea06fba99";
+ sha256 = "0q91f5549n81w3z5927n4a1mdh220bdmgl42zi3h992dcc4ls0sl";
+ };
+ }
+ {
+ goPackagePath = "github.com/jessevdk/go-flags";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jessevdk/go-flags";
+ rev = "v1.4.0";
+ sha256 = "0algnnigph27spgn655zm4723yfjxjjvlf4k14z9drj3682df25a";
+ };
+ }
+ {
+ goPackagePath = "github.com/jroimartin/gocui";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jroimartin/gocui";
+ rev = "v0.4.0";
+ sha256 = "1b1cbjg925l1c5v3ls8amni9716190yzf847cqs9wjnj82z8qa47";
+ };
+ }
+ {
+ goPackagePath = "github.com/kevinburke/ssh_config";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kevinburke/ssh_config";
+ rev = "81db2a75821e";
+ sha256 = "0hwmv2h83aa7r6l7yqwsxdyldnlhb4gbbkc3ww9nys7impjcjnsp";
+ };
+ }
+ {
+ goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
+ fetch = {
+ type = "git";
+ url = "https://github.com/konsorten/go-windows-terminal-sequences";
+ rev = "v1.0.1";
+ sha256 = "1lchgf27n276vma6iyxa0v1xds68n2g8lih5lavqnx5x6q5pw2ip";
+ };
+ }
+ {
+ goPackagePath = "github.com/kr/pretty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/pretty";
+ rev = "v0.1.0";
+ sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
+ };
+ }
+ {
+ goPackagePath = "github.com/kr/pty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/pty";
+ rev = "v1.1.1";
+ sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
+ };
+ }
+ {
+ goPackagePath = "github.com/kr/text";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/text";
+ rev = "v0.1.0";
+ sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
+ };
+ }
+ {
+ goPackagePath = "github.com/magiconair/properties";
+ fetch = {
+ type = "git";
+ url = "https://github.com/magiconair/properties";
+ rev = "v1.8.0";
+ sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-colorable";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-colorable";
+ rev = "v0.1.1";
+ sha256 = "0l640974j804c1yyjfgyxqlsivz0yrzmbql4mhcw2azryigkp08p";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "v0.0.7";
+ sha256 = "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd";
+ };
+ }
+ {
+ 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/mitchellh/go-homedir";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/go-homedir";
+ rev = "v1.0.0";
+ sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/mapstructure";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/mapstructure";
+ rev = "v1.1.2";
+ sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
+ };
+ }
+ {
+ goPackagePath = "github.com/nsf/termbox-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/nsf/termbox-go";
+ rev = "288510b9734e";
+ sha256 = "0hdyisfaf8yb55h3p03p4sbq19546mp9fy28f2kn659mycmhxqk4";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-buffruneio";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-buffruneio";
+ rev = "v0.2.0";
+ sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-toml";
+ rev = "v1.2.0";
+ sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "v0.8.0";
+ sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+ };
+ }
+ {
+ 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/sirupsen/logrus";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sirupsen/logrus";
+ rev = "v1.4.0";
+ sha256 = "1y1qjcg19z7q9sy32rhc148kdql2aw7xkcm9d6r1blrl0mdgpx0w";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/afero";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/afero";
+ rev = "v1.1.2";
+ sha256 = "0miv4faf5ihjfifb1zv6aia6f6ik7h1s4954kcb8n6ixzhx9ck6k";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cast";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cast";
+ rev = "v1.3.0";
+ sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/jwalterweatherman";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/jwalterweatherman";
+ rev = "v1.0.0";
+ sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "v1.0.3";
+ sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/viper";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/viper";
+ rev = "v1.3.2";
+ sha256 = "1829hvf805kda65l59r17wvid7y0vr390s23zfhf4w7vdb4wp3zh";
+ };
+ }
+ {
+ goPackagePath = "github.com/src-d/gcfg";
+ fetch = {
+ type = "git";
+ url = "https://github.com/src-d/gcfg";
+ rev = "v1.4.0";
+ sha256 = "044j95skmyrwjw5fwjk6ka32rjgsg0ar0mfp9np19sh1acwv4x4r";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/objx";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/objx";
+ rev = "v0.1.1";
+ sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/testify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/testify";
+ rev = "v1.2.2";
+ sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+ };
+ }
+ {
+ goPackagePath = "github.com/ugorji/go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ugorji/go";
+ rev = "d75b2dcb6bc8";
+ sha256 = "0di1k35gpq9bp958ywranpbskx2vdwlb38s22vl9rybm3wa5g3ps";
+ };
+ }
+ {
+ goPackagePath = "github.com/xanzy/ssh-agent";
+ fetch = {
+ type = "git";
+ url = "https://github.com/xanzy/ssh-agent";
+ rev = "v0.2.0";
+ sha256 = "069nlriymqswg52ggiwi60qhwrin9nzhd2g65a7h59z2qbcvk2hy";
+ };
+ }
+ {
+ goPackagePath = "github.com/xordataexchange/crypt";
+ fetch = {
+ type = "git";
+ url = "https://github.com/xordataexchange/crypt";
+ rev = "b2862e3d0a77";
+ sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "505ab145d0a9";
+ sha256 = "1vbsvcvmjz6c00p5vf8ls533p52fx2y3gy6v4k5qrdlzl4wf0i5s";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "161cd47e91fd";
+ sha256 = "0254ld010iijygbzykib2vags1dc0wlmcmhgh4jl8iny159lhbcv";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sync";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sync";
+ rev = "e225da77a7e6";
+ sha256 = "0bh3583smcfw6jw3w6lp0za93rz7hpxfdz8vhxng75b7a6vdlw4p";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "a9d3bda3a223";
+ sha256 = "1w45zc13xrjzl19s1sx74r5mg3lf2z2nm13wygcdq5r5pyjlhdz9";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "v0.3.0";
+ sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/alecthomas/kingpin.v2";
+ rev = "v2.2.6";
+ sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/check.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/check.v1";
+ rev = "788fd7840127";
+ sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/src-d/go-billy.v4";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/src-d/go-billy.v4";
+ rev = "v4.2.1";
+ sha256 = "1n8nc0m2hidbrlcl643cd0bdm07pjr0qji47gbfpfj99791sv1d1";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/src-d/go-git-fixtures.v3";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/src-d/go-git-fixtures.v3";
+ rev = "v3.1.1";
+ sha256 = "1fq3j5chck6883jbn33gwm6dxdgzsphjq97psyn81hz9bc1ili8p";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/src-d/go-git.v4";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/src-d/go-git.v4";
+ rev = "v4.10.0";
+ sha256 = "18bx3m5ddvb20figd8pc3lgf9hn85pifc6xy72bb83lv2nxii2rx";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/warnings.v0";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/warnings.v0";
+ rev = "v0.1.2";
+ sha256 = "1kzj50jn708cingn7a13c2wdlzs6qv89dr2h4zj8d09647vlnd81";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "v2.2.2";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
new file mode 100644
index 000000000000..1307573990a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
@@ -0,0 +1,41 @@
+{ pkgs, stdenv, fetchFromGitHub }:
+
+with pkgs.lib;
+
+stdenv.mkDerivation rec {
+ pname = "gitflow";
+ version = "1.12.2";
+
+ src = fetchFromGitHub {
+ owner = "petervanderdoes";
+ repo = pname;
+ rev = version;
+ sha256 = "0smwlc1wa4ndvspc9x6f4jwnzr58achysrhhip402j98d7di8hw5";
+ };
+
+ buildInputs = [ pkgs.makeWrapper ];
+
+ preBuild = ''
+ makeFlagsArray+=(prefix="$out")
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/git-flow \
+ --set FLAGS_GETOPT_CMD ${pkgs.getopt}/bin/getopt \
+ --suffix PATH : ${pkgs.git}/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/petervanderdoes/gitflow";
+ description = "Extend git with the Gitflow branching model";
+ longDescription = ''
+ A set of scripts that provide high-level repository operations
+ for managing feature/release/hotfix branches in a Git repository,
+ particularly suited to be utilised to follow Vincent Driessen's
+ branching model.
+ '';
+ license = licenses.bsd2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ offline ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/default.nix
new file mode 100644
index 000000000000..af9aef6d39c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildGoPackage
+, fetchFromGitHub
+, pkgconfig
+, libgit2_0_27
+}:
+
+buildGoPackage rec {
+ version = "0.2.3";
+ pname = "gitin";
+
+ goPackagePath = "github.com/isacikgoz/gitin";
+
+ src = fetchFromGitHub {
+ owner = "isacikgoz";
+ repo = "gitin";
+ rev = "v${version}";
+ sha256 = "00z6i0bjk3hdxbc0cy12ss75b41yvzyl5pm6rdrvsjhzavry2fa3";
+ };
+
+ goDeps = ./deps.nix;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libgit2_0_27 ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/isacikgoz/gitin";
+ description = "Text-based user interface for git";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ kimat ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/deps.nix
new file mode 100644
index 000000000000..908665693b81
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/deps.nix
@@ -0,0 +1,121 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "github.com/alecthomas/template";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/template";
+ rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
+ sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/units";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/units";
+ rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
+ sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
+ };
+ }
+ {
+ goPackagePath = "github.com/fatih/color";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fatih/color";
+ rev = "daf2830f2741ebb735b21709a520c5f37d642d85";
+ sha256 = "086z8ssmr1fn9ba4mqnw7pnccfpys6l5yfhvycv1gdrsk7n27mvs";
+ };
+ }
+ {
+ goPackagePath = "github.com/isacikgoz/gia";
+ fetch = {
+ type = "git";
+ url = "https://github.com/isacikgoz/gia";
+ rev = "00556493579ec25f4e199b85ee1e2a73c98d15bb";
+ sha256 = "16nqi4z1pgybcw05wbp3qnbbq407smcr56hq7npnhkirngc5j822";
+ };
+ }
+ {
+ goPackagePath = "github.com/jroimartin/gocui";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jroimartin/gocui";
+ rev = "c055c87ae801372cd74a0839b972db4f7697ae5f";
+ sha256 = "1b1cbjg925l1c5v3ls8amni9716190yzf847cqs9wjnj82z8qa47";
+ };
+ }
+ {
+ goPackagePath = "github.com/justincampbell/timeago";
+ fetch = {
+ type = "git";
+ url = "https://github.com/justincampbell/timeago";
+ rev = "027f40306f1dbe89d24087611680ef95543bf876";
+ sha256 = "1p3va1cn9x5pyvq7k64mnvbxp5zy7h9z49syjyglixgg6avdbp1v";
+ };
+ }
+ {
+ goPackagePath = "github.com/kelseyhightower/envconfig";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kelseyhightower/envconfig";
+ rev = "0b417c4ec4a8a82eecc22a1459a504aa55163d61";
+ sha256 = "1a7b35njpqz94gbd7wvsl3wjzpd5y1fj1lrg2sdh00yq0nax1qj9";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "14e809f6d78fcf9f48ff9b70981472b64c05f754";
+ sha256 = "1mvlxcdwr0vwp8b2wqs6y7hk72y28sqh03dz5x0xkg48d4y9cplj";
+ };
+ }
+ {
+ goPackagePath = "github.com/nsf/termbox-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/nsf/termbox-go";
+ rev = "38ba6e5628f1d70bac606cfd210b9ad1a16c3027";
+ sha256 = "03xx5vbnavklsk6wykcc7qhmhvn2074sx0ql06b51vqsxwsa6zw2";
+ };
+ }
+ {
+ goPackagePath = "github.com/sahilm/fuzzy";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sahilm/fuzzy";
+ rev = "d88f8cb825ddd46a2ce86b60382e11645220ee33";
+ sha256 = "0nl4l02s3961p11aj1vgajfy28rqlya2z6af2xjncra59gfhqvlq";
+ };
+ }
+ {
+ goPackagePath = "github.com/waigani/diffparser";
+ fetch = {
+ type = "git";
+ url = "https://github.com/waigani/diffparser";
+ rev = "7391f219313d9175703f67561b222fd2a81bca30";
+ sha256 = "0h3y3ivlghdvkyqsh5lcidqdajhc9g7m1xqm73j9a0ayby0sx1ql";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/alecthomas/kingpin.v2";
+ rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
+ sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/libgit2/git2go.v27";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/libgit2/git2go.v27";
+ rev = "6cc7d3dc6aec2781fe0239315da215f49c76e2f8";
+ sha256 = "0b2m4rjadngyd675bi1k21pyi9r91dsxngzd4mikacpd7yshgvaq";
+ };
+ }
+]
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
new file mode 100644
index 000000000000..a99ff3c2e08c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
@@ -0,0 +1,82 @@
+{ callPackage, stdenv, fetchFromGitHub, git, zsh, ...}:
+
+stdenv.mkDerivation rec {
+ pname = "gitstatus";
+ version = "1.4.3";
+
+ src = fetchFromGitHub {
+ owner = "romkatv";
+ repo = "gitstatus";
+ rev = "v${version}";
+ sha256 = "0skpi22plzb9r9cgqfnjzpaz856q9f4n0gd5i97nv8bfny8hl30z";
+ };
+
+ buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ];
+ patchPhase = ''
+ sed -i '1i GITSTATUS_AUTO_INSTALL=''${GITSTATUS_AUTO_INSTALL-0}' gitstatus.plugin.sh
+ sed -i '1i GITSTATUS_AUTO_INSTALL=''${GITSTATUS_AUTO_INSTALL-0}' gitstatus.plugin.zsh
+ sed -i "1a GITSTATUS_DAEMON=$out/bin/gitstatusd" install
+ '';
+ installPhase = ''
+ install -Dm755 usrbin/gitstatusd $out/bin/gitstatusd
+ install -Dm444 gitstatus.plugin.sh $out
+ install -Dm444 gitstatus.plugin.zsh $out
+ install -Dm555 install $out
+ install -Dm444 build.info $out
+ '';
+ # Don't install the "install" and "build.info" files, which the end user
+ # should not need to worry about.
+ pathsToLink = [
+ "/bin/gitstatusd"
+ "/gitstatus.plugin.sh"
+ "/gitstatus.plugin.zsh"
+ ];
+
+ # The install check sets up an empty Git repository and a minimal zshrc that
+ # invokes gitstatus.plugin.zsh. It runs zsh against this zshrc and verifies
+ # that the script was sourced successfully and that the "gitstatus_query"
+ # command ran successfully. This tests the binary itself and the zsh
+ # integration.
+ installCheckInputs = [ git zsh ];
+ doInstallCheck = true;
+ installCheckPhase = ''
+ TEMP=$(mktemp -d)
+ cd "$TEMP"
+
+ git init
+
+ echo '
+ GITSTATUS_LOG_LEVEL=DEBUG
+ . $out/gitstatus.plugin.zsh || exit 1
+
+ gitstatus_stop NIX_TEST && gitstatus_start NIX_TEST
+ gitstatus_query NIX_TEST
+ if [[ $? -ne 0 ]]; then
+ print -- "Something went wrong with gitstatus"
+ exit 1
+ elif [[ $VCS_STATUS_RESULT != "ok-sync" ]]; then
+ print -- "Not in a Git repo"
+ exit 1
+ else
+ print -- "OK"
+ exit 0
+ fi
+ ' > .zshrc
+
+ # If we try to run zsh like "zsh -i -c true" or "zsh -i > output" then job
+ # control will be disabled in the shell and the gitstatus plugin script
+ # will fail when it tries to set the MONITOR option. As a workaround, we
+ # run zsh as a full-fledged independent process and then wait for it to
+ # exit. (The "exit" statements in the zshrc ensure that zsh will exit
+ # almost immediately after starting.)
+ ZDOTDIR=. zsh -i &
+ wait $!
+ '';
+
+ meta = with stdenv.lib; {
+ description = "10x faster implementation of `git status` command";
+ homepage = "https://github.com/romkatv/gitstatus";
+ license = [ licenses.gpl3 ];
+ maintainers = with maintainers; [ mmlb hexa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/romkatv_libgit2.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/romkatv_libgit2.nix
new file mode 100644
index 000000000000..9c74fa35752f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/romkatv_libgit2.nix
@@ -0,0 +1,22 @@
+{ fetchFromGitHub, libgit2, ...}:
+
+libgit2.overrideAttrs (oldAttrs: {
+ cmakeFlags = oldAttrs.cmakeFlags ++ [
+ "-DBUILD_CLAR=OFF"
+ "-DBUILD_SHARED_LIBS=OFF"
+ "-DREGEX_BACKEND=builtin"
+ "-DUSE_BUNDLED_ZLIB=ON"
+ "-DUSE_GSSAPI=OFF"
+ "-DUSE_HTTPS=OFF"
+ "-DUSE_HTTP_PARSER=builtin" # overwritten from libgit2
+ "-DUSE_NTLMCLIENT=OFF"
+ "-DUSE_SSH=OFF"
+ "-DZERO_NSEC=ON"
+ ];
+ src = fetchFromGitHub {
+ owner = "romkatv";
+ repo = "libgit2";
+ rev = "tag-82cefe2b42300224ad3c148f8b1a569757cc617a";
+ sha256 = "1vhnqynqyxizzkq1h5dfjm75f0jm5637jh0gypwqqz2yjqrscza0";
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
new file mode 100644
index 000000000000..21e382a44bc8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, rustPlatform, fetchFromGitHub, libiconv, xorg, python3, Security, AppKit }:
+rustPlatform.buildRustPackage rec {
+ pname = "gitui";
+ version = "0.10.1";
+
+ src = fetchFromGitHub {
+ owner = "extrawurst";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ifwbi6nydh66z6cprjmz2qvy9z52rj9jg2xf054i249gy955hah";
+ };
+
+ cargoSha256 = "1454dn7k1fc4yxhbcmx0z3hj9d9srnlc2k1qp707h1vq46ib1rsf";
+
+ nativeBuildInputs = [ python3 ];
+ buildInputs = [ ]
+ ++ stdenv.lib.optional stdenv.isLinux xorg.libxcb
+ ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security AppKit ];
+
+ meta = with stdenv.lib; {
+ description = "Blazing fast terminal-ui for git written in rust";
+ homepage = "https://github.com/extrawurst/gitui";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Br1ght0ne yanganto ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
new file mode 100644
index 000000000000..b6659b5f539f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildEnv, git, fetchFromGitHub
+, gitwebTheme ? false }:
+
+let
+ gitwebThemeSrc = fetchFromGitHub {
+ owner = "kogakure";
+ repo = "gitweb-theme";
+ rev = "049b88e664a359f8ec25dc6f531b7e2aa60dd1a2";
+ extraPostFetch = ''
+ mkdir -p "$TMPDIR/gitwebTheme"
+ mv "$out"/* "$TMPDIR/gitwebTheme/"
+ mkdir "$out/static"
+ mv "$TMPDIR/gitwebTheme"/* "$out/static/"
+ '';
+ sha256 = "17hypq6jvhy6zhh26lp3nyi52npfd5wy5752k6sq0shk4na2acqi";
+ };
+in buildEnv {
+ name = "gitweb-${stdenv.lib.getVersion git}";
+
+ ignoreCollisions = true;
+ paths = stdenv.lib.optional gitwebTheme gitwebThemeSrc
+ ++ [ "${git}/share/gitweb" ];
+
+ meta = git.meta // {
+ maintainers = with stdenv.lib.maintainers; [ gnidorah ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix
new file mode 100644
index 000000000000..9c2e4f00ca7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "glab";
+ version = "1.11.1";
+
+ src = fetchFromGitHub {
+ owner = "profclems";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "mmrTuldU2WDe9t2nC3DYfqwb28uh6qjAaaveR221mjw=";
+ };
+
+ vendorSha256 = "B4RKcKUTdGkonsKhL7NIKzVpZq6XD6cMMWed4wr/Moc=";
+ runVend = true;
+
+ # Tests are trying to access /homeless-shelter
+ doCheck = false;
+
+ subPackages = [ "cmd/glab" ];
+
+ meta = with lib; {
+ description = "An open-source GitLab command line tool";
+ license = licenses.mit;
+ homepage = "https://glab.readthedocs.io/";
+ maintainers = with maintainers; [ freezeboy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix
new file mode 100644
index 000000000000..64a4f8a823ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, curl, ncurses, pkgconfig, readline
+, cmake }:
+let
+ version = "0.3.2";
+in
+buildGoPackage {
+ pname = "grv";
+ inherit version;
+
+ buildInputs = [ ncurses readline curl ];
+ nativeBuildInputs = [ pkgconfig cmake ];
+
+ goPackagePath = "github.com/rgburke/grv";
+
+ src = fetchFromGitHub {
+ owner = "rgburke";
+ repo = "grv";
+ rev = "v${version}";
+ sha256 = "0bpjsk35rlp56z8149z890adnhmxyh743vsls3q86j4682b83kyf";
+ fetchSubmodules = true;
+ };
+
+ postPatch = ''
+ rm util/update_latest_release.go
+ '';
+
+ postConfigure = ''
+ cd $NIX_BUILD_TOP/go/src/$goPackagePath
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+ make build-only
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -D grv $out/bin/grv
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GRV is a terminal interface for viewing Git repositories";
+ homepage = "https://github.com/rgburke/grv";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ andir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix
new file mode 100644
index 000000000000..be8136427971
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, groff, installShellFiles, util-linux }:
+
+buildGoPackage rec {
+ pname = "hub";
+ version = "2.14.2";
+
+ goPackagePath = "github.com/github/hub";
+
+ # Only needed to build the man-pages
+ excludedPackages = [ "github.com/github/hub/md2roff-bin" ];
+
+ src = fetchFromGitHub {
+ owner = "github";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1qjab3dpia1jdlszz3xxix76lqrm4zbmqzd9ymld7h06awzsg2vh";
+ };
+
+ nativeBuildInputs = [ groff installShellFiles util-linux ];
+
+ postPatch = ''
+ patchShebangs .
+ '';
+
+ postInstall = ''
+ cd go/src/${goPackagePath}
+ installShellCompletion --zsh --name _hub etc/hub.zsh_completion
+ installShellCompletion --bash --name hub etc/hub.bash_completion.sh
+ installShellCompletion --fish --name hub.fish etc/hub.fish_completion
+
+ LC_ALL=C.UTF8 \
+ make man-pages
+ installManPage share/man/man[1-9]/*.[1-9]
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command-line wrapper for git that makes you better at GitHub";
+ license = licenses.mit;
+ homepage = "https://hub.github.com/";
+ maintainers = with maintainers; [ globin ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
new file mode 100644
index 000000000000..3459f5099c97
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, xdg_utils }:
+
+buildGoModule rec {
+ pname = "lab";
+ version = "0.17.2";
+
+ src = fetchFromGitHub {
+ owner = "zaquestion";
+ repo = "lab";
+ rev = "v${version}";
+ sha256 = "0zkwvmzgj7h8lc8jkg2a81392b28c8hkwqzj6dds6q4asbmymx5c";
+ };
+
+ subPackages = [ "." ];
+
+ vendorSha256 = "1lrmafvv5zfn9kc0p8g5vdz351n1zbaqwhwk861fxys0rdpqskyc";
+
+ doCheck = false;
+
+ buildInputs = [ makeWrapper ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ postInstall = ''
+ mkdir -p "$out/share/bash-completion/completions" "$out/share/zsh/site-functions"
+ export LAB_CORE_HOST=a LAB_CORE_USER=b LAB_CORE_TOKEN=c
+ $out/bin/lab completion bash > $out/share/bash-completion/completions/lab
+ $out/bin/lab completion zsh > $out/share/zsh/site-functions/_lab
+ wrapProgram $out/bin/lab --prefix PATH ":" "${lib.makeBinPath [ xdg_utils ]}";
+ '';
+
+ meta = with lib; {
+ description = "Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab";
+ homepage = "https://zaquestion.github.io/lab";
+ license = licenses.cc0;
+ maintainers = with maintainers; [ marsam dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
new file mode 100644
index 000000000000..a13e4b33d38e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+# Currently `buildGo114Module` is passed as `buildGoModule` from
+# `../default.nix`. Please remove the fixed 1.14 once a new release has been
+# made and the issue linked below has been closed upstream.
+
+# https://github.com/Arkweid/lefthook/issues/151
+
+buildGoModule rec {
+ pname = "lefthook";
+ version = "0.7.2";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "Arkweid";
+ repo = "lefthook";
+ sha256 = "1ciyxjx3r3dcl8xas49kqsjshs1bv4pafmfmhdfyfdvlaj374hgj";
+ };
+
+ vendorSha256 = "1pdrw4vwbj9cka2pjbjvxviigfvnrf8sgws27ixwwiblbkj4isc8";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Fast and powerful Git hooks manager for any type of projects";
+ homepage = "https://github.com/Arkweid/lefthook";
+ license = licenses.mit;
+ maintainers = with maintainers; [ rencire ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/legit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/legit/default.nix
new file mode 100644
index 000000000000..7dbdd6071a57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/legit/default.nix
@@ -0,0 +1,30 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "legit";
+ version = "1.2.0";
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "0ngh3ar6v15516f52j21k6qz7hykmxfjadhb2rakvl27b5xvjy1c";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ click
+ clint
+ crayons
+ GitPython
+ six
+ ];
+
+ # Prevent tests from trying to create configuration in /homeless-shelter.
+ preCheck = ''
+ export HOME=$PWD/test-home
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/frostming/legit";
+ description = "Git for Humans, Inspired by GitHub for Mac";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ ryneeverett ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix
new file mode 100644
index 000000000000..5914378f5b35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, pyxdg, pytest }:
+
+buildPythonApplication rec {
+ pname = "pass-git-helper";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "languitar";
+ repo = "pass-git-helper";
+ rev = "v${version}";
+ sha256 = "18nvwlp0w4aqj268wly60rnjzqw2d8jl0hbs6bkwp3hpzzz5g6yd";
+ };
+
+ propagatedBuildInputs = [ pyxdg ];
+ checkInputs = [ pytest ];
+ preCheck = ''
+ export HOME=$(mktemp -d)
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/languitar/pass-git-helper";
+ description = "A git credential helper interfacing with pass, the standard unix password manager";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ vanzef ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix
new file mode 100644
index 000000000000..24743b21a4dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, qtbase }:
+
+mkDerivation rec {
+ pname = "qgit";
+ version = "2.9";
+
+ src = fetchFromGitHub {
+ owner = "tibirna";
+ repo = "qgit";
+ rev = "${pname}-${version}";
+ sha256 = "0n4dq9gffm9yd7n5p5qcdfgrmg2kwnfd51hfx10adgj9ibxlnc3z";
+ };
+
+ buildInputs = [ qtbase ];
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with lib; {
+ license = licenses.gpl2;
+ homepage = "https://github.com/tibirna/qgit";
+ description = "Graphical front-end to Git";
+ maintainers = with maintainers; [ peterhoeg markuskowa ];
+ inherit (qtbase.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix
new file mode 100644
index 000000000000..6968508f8c9a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, makeWrapper
+, watchman
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "rs-git-fsmonitor";
+ version = "0.1.3";
+
+ src = fetchFromGitHub {
+ owner = "jgavris";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "021vdk5i7yyrnh4apn0gnsh6ycnx15wm3g2jrfsg7fycnq8167wc";
+ };
+
+ cargoSha256 = "0kfj09xq1g866507k3gcbm30pyi1xzfr7gca6dab7sjlvf83h9xs";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ fixupPhase = ''
+ wrapProgram $out/bin/rs-git-fsmonitor --prefix PATH ":" "${lib.makeBinPath [ watchman ]}" ;
+ '';
+
+ meta = with lib; {
+ description = "A fast git core.fsmonitor hook written in Rust";
+ homepage = "https://github.com/jgavris/rs-git-fsmonitor";
+ license = licenses.mit;
+ maintainers = [ maintainers.SuperSandro2000 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix
new file mode 100644
index 000000000000..de8cb396b7fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "scmpuff";
+ version = "0.3.0";
+ goPackagePath = "github.com/mroth/scmpuff";
+
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "mroth";
+ repo = pname;
+ rev = "56dc2041f2c45ab15d41e63058c1c44fff905e81";
+ sha256 = "0zrzzcs0i13pfwcqh8qb0sji54vh37rdr7qasg57y56cqpx16vl3";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Add numbered shortcuts to common git commands";
+ homepage = "https://github.com/mroth/scmpuff";
+ license = licenses.mit;
+ maintainers = with maintainers; [ cpcloud ];
+ platforms = concatLists (with platforms; [ linux darwin windows ]);
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix
new file mode 100644
index 000000000000..da9052f9bb7b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix
@@ -0,0 +1,273 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "github.com/BurntSushi/toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/BurntSushi/toml";
+ rev = "v0.3.1";
+ sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+ };
+ }
+ {
+ goPackagePath = "github.com/armon/consul-api";
+ fetch = {
+ type = "git";
+ url = "https://github.com/armon/consul-api";
+ rev = "eb2c6b5be1b6";
+ sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
+ };
+ }
+ {
+ goPackagePath = "github.com/coreos/etcd";
+ fetch = {
+ type = "git";
+ url = "https://github.com/coreos/etcd";
+ rev = "v3.3.10";
+ sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl";
+ };
+ }
+ {
+ goPackagePath = "github.com/coreos/go-etcd";
+ fetch = {
+ type = "git";
+ url = "https://github.com/coreos/go-etcd";
+ rev = "v2.0.0";
+ sha256 = "1xb34hzaa1lkbq5vkzy9vcz6gqwj7hp6cdbvyack2bf28dwn33jj";
+ };
+ }
+ {
+ goPackagePath = "github.com/coreos/go-semver";
+ fetch = {
+ type = "git";
+ url = "https://github.com/coreos/go-semver";
+ rev = "v0.2.0";
+ sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
+ };
+ }
+ {
+ goPackagePath = "github.com/cpuguy83/go-md2man";
+ fetch = {
+ type = "git";
+ url = "https://github.com/cpuguy83/go-md2man";
+ rev = "v1.0.10";
+ sha256 = "1bqkf2bvy1dns9zd24k81mh2p1zxsx2nhq5cj8dz2vgkv1xkh60i";
+ };
+ }
+ {
+ 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/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/hcl";
+ rev = "v1.0.0";
+ sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
+ };
+ }
+ {
+ goPackagePath = "github.com/inconshreveable/mousetrap";
+ fetch = {
+ type = "git";
+ url = "https://github.com/inconshreveable/mousetrap";
+ rev = "v1.0.0";
+ sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
+ };
+ }
+ {
+ goPackagePath = "github.com/magiconair/properties";
+ fetch = {
+ type = "git";
+ url = "https://github.com/magiconair/properties";
+ rev = "v1.8.0";
+ sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/go-homedir";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/go-homedir";
+ rev = "v1.1.0";
+ sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/mapstructure";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/mapstructure";
+ rev = "v1.1.2";
+ sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-toml";
+ rev = "v1.2.0";
+ sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
+ };
+ }
+ {
+ goPackagePath = "github.com/pmezard/go-difflib";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pmezard/go-difflib";
+ rev = "v1.0.0";
+ sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+ };
+ }
+ {
+ goPackagePath = "github.com/russross/blackfriday";
+ fetch = {
+ type = "git";
+ url = "https://github.com/russross/blackfriday";
+ rev = "v1.5.2";
+ sha256 = "0jzbfzcywqcrnym4gxlz6nphmm1grg6wsl4f0r9x384rn83wkj7c";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/afero";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/afero";
+ rev = "v1.1.2";
+ sha256 = "0miv4faf5ihjfifb1zv6aia6f6ik7h1s4954kcb8n6ixzhx9ck6k";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cast";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cast";
+ rev = "v1.3.0";
+ sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cobra";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cobra";
+ rev = "v0.0.4";
+ sha256 = "1k7dq78fjz94lzifsprkmiv93swwzwcbg1vd64v20wvnga8v254b";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/jwalterweatherman";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/jwalterweatherman";
+ rev = "v1.0.0";
+ sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "v1.0.3";
+ sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/viper";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/viper";
+ rev = "v1.3.2";
+ sha256 = "1829hvf805kda65l59r17wvid7y0vr390s23zfhf4w7vdb4wp3zh";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/testify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/testify";
+ rev = "v1.2.2";
+ sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+ };
+ }
+ {
+ goPackagePath = "github.com/ugorji/go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ugorji/go";
+ rev = "d75b2dcb6bc8";
+ sha256 = "0di1k35gpq9bp958ywranpbskx2vdwlb38s22vl9rybm3wa5g3ps";
+ };
+ }
+ {
+ goPackagePath = "github.com/xordataexchange/crypt";
+ fetch = {
+ type = "git";
+ url = "https://github.com/xordataexchange/crypt";
+ rev = "b2862e3d0a77";
+ sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "505ab145d0a9";
+ sha256 = "1vbsvcvmjz6c00p5vf8ls533p52fx2y3gy6v4k5qrdlzl4wf0i5s";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "a5c9d58dba9a";
+ sha256 = "02qv5i7yps35p7fa81345qz7k8i73gkigj69anwmpw9rhpmzayf9";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "v0.3.0";
+ sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/check.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/check.v1";
+ rev = "20d25e280405";
+ sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "v2.2.2";
+ sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
new file mode 100644
index 000000000000..1bad72296b4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, python3Packages, fetchFromGitHub, git, installShellFiles }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "stgit";
+ version = "0.23";
+
+ src = fetchFromGitHub {
+ owner = "ctmarinas";
+ repo = "stgit";
+ rev = "v${version}";
+ sha256 = "1r9y8qnl6kdvq61788pnfhhgyv2xrnyrizbhy4qz4l1bpqkwfr2r";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ checkInputs = [ git ];
+
+ postInstall = ''
+ installShellCompletion $out/share/stgit/completion/stg.fish
+ installShellCompletion --name stg $out/share/stgit/completion/stgit.bash
+ installShellCompletion --name _stg $out/share/stgit/completion/stgit.zsh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A patch manager implemented on top of Git";
+ homepage = "http://procode.org/stgit/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
new file mode 100644
index 000000000000..11189e02c8ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, unzip, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+ name = "subgit-3.3.10";
+
+ meta = {
+ description = "A tool for a smooth, stress-free SVN to Git migration";
+ longDescription = "Create writable Git mirror of a local or remote Subversion repository and use both Subversion and Git as long as you like. You may also do a fast one-time import from Subversion to Git.";
+ homepage = "http://subgit.com";
+ license = stdenv.lib.licenses.unfree;
+ platforms = stdenv.lib.platforms.all;
+ };
+
+ nativeBuildInputs = [ unzip makeWrapper ];
+
+ installPhase = ''
+ mkdir $out;
+ cp -r bin lib $out;
+ wrapProgram $out/bin/subgit --set JAVA_HOME ${jre};
+ '';
+
+ src = fetchurl {
+ url = "https://subgit.com/download/${name}.zip";
+ sha256 = "1z7cmaghfy5yjs50b3y6av9h2d6xmpamyxql7vvr3dy6kflvv8fk";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
new file mode 100644
index 000000000000..75f6a9608412
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, qmake, qtbase, qttools, subversion, apr }:
+
+let
+ version = "1.0.18";
+in
+stdenv.mkDerivation {
+ pname = "svn-all-fast-export";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "svn-all-fast-export";
+ repo = "svn2git";
+ rev = version;
+ sha256 = "1b5yx2316hbyvw3v30vn1ljma9yd21nd59wis1gi34g92lgvqcd6";
+ };
+
+ nativeBuildInputs = [ qmake qttools ];
+ buildInputs = [ apr.dev subversion.dev qtbase ];
+
+ qmakeFlags = [
+ "VERSION=${version}"
+ "APR_INCLUDE=${apr.dev}/include/apr-1"
+ "SVN_INCLUDE=${subversion.dev}/include/subversion-1"
+ ];
+
+ NIX_LDFLAGS = "-lsvn_fs-1";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/svn-all-fast-export/svn2git";
+ description = "A fast-import based converter for an svn repo to git repos";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.flokli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
new file mode 100644
index 000000000000..b61ae80bbee1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, ruby, makeWrapper, git }:
+
+let
+ version = "2.4.0";
+in
+stdenv.mkDerivation {
+ pname = "svn2git";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/nirvdrum/svn2git/archive/v${version}.tar.gz";
+ sha256 = "0ly2vrv6q31n0xhciwb7a1ilr5c6ndyi3bg81yfp4axiypps7l41";
+ };
+
+ buildInputs = [ ruby makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r lib $out/
+
+ mkdir -p $out/bin
+ substituteInPlace bin/svn2git --replace '/usr/bin/env ruby' ${ruby}/bin/ruby
+ cp bin/svn2git $out/bin/
+ chmod +x $out/bin/svn2git
+
+ wrapProgram $out/bin/svn2git \
+ --set RUBYLIB $out/lib \
+ --prefix PATH : ${git}/bin
+ '';
+
+ meta = {
+ homepage = "https://github.com/nirvdrum/svn2git";
+ description = "Tool for importing Subversion repositories into git";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/thicket/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/thicket/default.nix
new file mode 100644
index 000000000000..3abfd3a31392
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/thicket/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, crystal_0_33
+}:
+
+let
+ crystal = crystal_0_33;
+
+in crystal.buildCrystalPackage rec {
+ pname = "thicket";
+ version = "0.1.3";
+
+ src = fetchFromGitHub {
+ owner = "taylorthurlow";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0hkmmssiwipx373d0zw9a2yn72gqzqzcvwkqbs522m5adz6qmkzw";
+ };
+
+ format = "shards";
+
+ shardsFile = ./shards.nix;
+ crystalBinaries.thicket.src = "src/thicket.cr";
+
+ # there is one test that tries to clone a repo
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A better one-line git log";
+ homepage = "https://github.com/taylorthurlow/thicket";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Br1ght0ne ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/thicket/shards.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/thicket/shards.nix
new file mode 100644
index 000000000000..c8839651a26d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/thicket/shards.nix
@@ -0,0 +1,8 @@
+{
+ ameba = {
+ owner = "veelenga";
+ repo = "ameba";
+ rev = "v0.10.0";
+ sha256 = "1yjxzwdhigsyjn0qp362jkj85qvg4dsyzal00pgr1srnh2xry912";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
new file mode 100644
index 000000000000..9415c0eecf16
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, ncurses, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45
+, readline, makeWrapper, git, libiconv, autoreconfHook, findXMLCatalogs, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tig";
+ version = "2.5.1";
+
+ src = fetchFromGitHub {
+ owner = "jonas";
+ repo = pname;
+ rev = "${pname}-${version}";
+ sha256 = "0wxcbfqsk8p84zizy6lf3gp5j122wrf8c7xlipki6nhcfhksn33b";
+ };
+
+ nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkgconfig ];
+
+ autoreconfFlags = "-I tools -v";
+
+ buildInputs = [ ncurses readline git ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ];
+
+ # those files are inherently impure, we'll handle the corresponding dependencies.
+ postPatch = ''
+ rm -f contrib/config.make-*
+ '';
+
+ enableParallelBuilding = true;
+
+ installPhase = ''
+ make install
+ make install-doc
+
+ # fixes tig-completion __git-complete dependency
+ sed -i '1s;^;source ${git}/share/bash-completion/completions/git\n;' contrib/tig-completion.bash
+
+ install -D contrib/tig-completion.bash $out/share/bash-completion/completions/tig
+ cp contrib/vim.tigrc $out/etc/
+
+ # Note: Until https://github.com/jonas/tig/issues/940 is resolved it is best
+ # not to install the ZSH completion so that the fallback implemenation from
+ # ZSH can be used (Completion/Unix/Command/_git: "_tig () { _git-log }"):
+ #install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig
+
+ wrapProgram $out/bin/tig \
+ --prefix PATH ':' "${git}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://jonas.github.io/tig/";
+ description = "Text-mode interface for git";
+ maintainers = with maintainers; [ bjornfor domenkozar qknight globin ];
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix
new file mode 100644
index 000000000000..9577b56b6c73
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, git, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "topgit";
+ version = "0.19.12";
+
+ src = fetchFromGitHub {
+ owner = "mackyle";
+ repo = "topgit";
+ rev = "${pname}-${version}";
+ sha256 = "1wvf8hmwwl7a2fr17cfs3pbxjccdsjw9ngzivxlgja0gvfz4hjd5";
+ };
+
+ makeFlags = [ "prefix=${placeholder "out"}" ];
+
+ nativeBuildInputs = [ perl git ];
+
+ postInstall = ''
+ install -Dm644 README -t "$out/share/doc/${pname}-${version}/"
+ install -Dm755 contrib/tg-completion.bash -t "$out/share/bash-completion/completions/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "TopGit manages large amount of interdependent topic branches";
+ homepage = "https://github.com/mackyle/topgit";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ marcweber ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
new file mode 100644
index 000000000000..c99c70379df4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, git, makeWrapper, openssl, coreutils, util-linux, gnugrep, gnused, gawk }:
+
+stdenv.mkDerivation rec {
+ pname = "transcrypt";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "elasticdog";
+ repo = "transcrypt";
+ rev = "v${version}";
+ sha256 = "1dkr69plk16wllk5bzlkchrzw63pk239dgbjhrb3mb61i065jdam";
+ };
+
+ buildInputs = [ makeWrapper git openssl coreutils util-linux gnugrep gnused gawk ];
+
+ patches = [ ./helper-scripts_depspathprefix.patch ];
+
+ installPhase = ''
+ install -m 755 -D transcrypt $out/bin/transcrypt
+ install -m 644 -D man/transcrypt.1 $out/share/man/man1/transcrypt.1
+ install -m 644 -D contrib/bash/transcrypt $out/share/bash-completion/completions/transcrypt
+ install -m 644 -D contrib/zsh/_transcrypt $out/share/zsh/site-functions/_transcrypt
+
+ wrapProgram $out/bin/transcrypt \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ git openssl coreutils util-linux gnugrep gnused gawk ]}"
+
+ cat > $out/bin/transcrypt-depspathprefix << EOF
+ #!${stdenv.shell}
+ echo "${stdenv.lib.makeBinPath [ git openssl coreutils gawk ]}:"
+ EOF
+ chmod +x $out/bin/transcrypt-depspathprefix
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Transparently encrypt files within a Git repository";
+ longDescription = ''
+ A script to configure transparent encryption of sensitive files stored in
+ a Git repository. Files that you choose will be automatically encrypted
+ when you commit them, and automatically decrypted when you check them
+ out. The process will degrade gracefully, so even people without your
+ encryption password can safely commit changes to the repository's
+ non-encrypted files.
+ '';
+ homepage = "https://github.com/elasticdog/transcrypt";
+ license = licenses.mit;
+ maintainers = [ maintainers.elasticdog ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch
new file mode 100644
index 000000000000..925aadab3dd5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch
@@ -0,0 +1,37 @@
+diff --git a/transcrypt b/transcrypt
+index a0b562d..7888f5d 100755
+--- a/transcrypt
++++ b/transcrypt
+@@ -278,6 +278,7 @@ save_helper_scripts() {
+
+ cat <<-'EOF' > "${GIT_DIR}/crypt/clean"
+ #!/usr/bin/env bash
++ PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH"
+ filename=$1
+ # ignore empty files
+ if [[ -s $filename ]]; then
+@@ -300,6 +301,7 @@ save_helper_scripts() {
+
+ cat <<-'EOF' > "${GIT_DIR}/crypt/smudge"
+ #!/usr/bin/env bash
++ PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH"
+ tempfile=$(mktemp 2> /dev/null || mktemp -t tmp)
+ trap 'rm -f "$tempfile"' EXIT
+ cipher=$(git config --get --local transcrypt.cipher)
+@@ -309,6 +311,7 @@ save_helper_scripts() {
+
+ cat <<-'EOF' > "${GIT_DIR}/crypt/textconv"
+ #!/usr/bin/env bash
++ PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH"
+ filename=$1
+ # ignore empty files
+ if [[ -s $filename ]]; then
+@@ -351,7 +354,7 @@ save_configuration() {
+ git config merge.renormalize 'true'
+
+ # add a git alias for listing encrypted files
+- git config alias.ls-crypt "!git ls-files | git check-attr --stdin filter | awk 'BEGIN { FS = \":\" }; /crypt$/{ print \$1 }'"
++ git config alias.ls-crypt "!PATH=\"\$(transcrypt-depspathprefix 2>/dev/null)\$PATH\"; git ls-files | git check-attr --stdin filter | awk 'BEGIN { FS = \":\" }; /crypt$/{ print \$1 }'"
+ }
+
+ # display the current configuration settings
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-backup/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-backup/default.nix
new file mode 100644
index 000000000000..d65e2cf6ebff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-backup/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "git-backup";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "jsdw";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0h31j8clvk4gkw4mgva9p0ypf26zhf7f0y564fdmzyw6rsz9wzcj";
+ };
+
+ cargoSha256 = "09nfvzvgpdl5glzjays4lm50iwvjzbz364y6agya1a94qqwkaj7f";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jsdw/git-backup";
+ description = "A tool to help you backup your git repositories from services like GitHub";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix
new file mode 100644
index 000000000000..9481f3ebd928
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "git-crecord";
+ version = "20161216.0";
+
+ src = fetchFromGitHub {
+ owner = "andrewshadura";
+ repo = "git-crecord";
+ rev = version;
+ sha256 = "0v3y90zi43myyi4k7q3892dcrbyi9dn2q6xgk12nw9db9zil269i";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [ docutils ];
+
+ meta = {
+ homepage = "https://github.com/andrewshadura/git-crecord";
+ description = "Git subcommand to interactively select changes to commit or stage";
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix
new file mode 100644
index 000000000000..5b2a9906a4f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "git-lfs";
+ version = "1.5.6";
+ rev = "0d02fb7d9a1c599bbf8c55e146e2845a908e04e0";
+
+ goPackagePath = "github.com/git-lfs/git-lfs";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "git-lfs";
+ repo = "git-lfs";
+ sha256 = "0wddry1lqjccf4522fvhx6grx8h57xsz17lkaf5aybnrgw677w3d";
+ };
+
+ subPackages = [ "." ];
+
+ preBuild = ''
+ pushd go/src/github.com/git-lfs/git-lfs
+ go generate ./commands
+ popd
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Git extension for versioning large files";
+ homepage = "https://git-lfs.github.com/";
+ license = [ licenses.mit ];
+ maintainers = [ maintainers.twey ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
new file mode 100644
index 000000000000..bd6c5f5cc678
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, ronn, installShellFiles }:
+
+buildGoPackage rec {
+ pname = "git-lfs";
+ version = "2.12.1";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "git-lfs";
+ repo = "git-lfs";
+ sha256 = "1x8s1w8yqhj5nm20knr2gkb59rwzx220nf099lgd62cajzsdpjx5";
+ };
+
+ goPackagePath = "github.com/git-lfs/git-lfs";
+
+ nativeBuildInputs = [ ronn installShellFiles ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/config.Vendor=${version} -X ${goPackagePath}/config.GitCommit=${src.rev}" ];
+
+ subPackages = [ "." ];
+
+ postBuild = ''
+ make -C go/src/${goPackagePath} man
+ '';
+
+ postInstall = ''
+ installManPage go/src/${goPackagePath}/man/*.{1,5}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Git extension for versioning large files";
+ homepage = "https://git-lfs.github.com/";
+ changelog = "https://github.com/git-lfs/git-lfs/releases/tag/v${version}";
+ license = [ licenses.mit ];
+ maintainers = [ maintainers.twey maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-repo/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
new file mode 100644
index 000000000000..db18e765b009
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, python3, git, gnupg, less
+}:
+
+stdenv.mkDerivation rec {
+ pname = "git-repo";
+ version = "2.10";
+
+ src = fetchFromGitHub {
+ owner = "android";
+ repo = "tools_repo";
+ rev = "v${version}";
+ sha256 = "0jd28281wys2iy7pbyyrzkzrkzq9ms7p9pbj6j2fha6bg1bh7rkz";
+ };
+
+ patches = [ ./import-ssl-module.patch ];
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ python3 ];
+
+ postPatch = ''
+ substituteInPlace repo --replace \
+ 'urllib.request.urlopen(url)' \
+ 'urllib.request.urlopen(url, context=ssl.create_default_context())'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp repo $out/bin/repo
+ '';
+
+ # Important runtime dependencies
+ postFixup = ''
+ wrapProgram $out/bin/repo --prefix PATH ":" \
+ "${stdenv.lib.makeBinPath [ git gnupg less ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Android's repo management tool";
+ longDescription = ''
+ Repo is a Python script based on Git that helps manage many Git
+ repositories, does the uploads to revision control systems, and automates
+ parts of the development workflow. Repo is not meant to replace Git, only
+ to make it easier to work with Git.
+ '';
+ homepage = "https://android.googlesource.com/tools/repo";
+ license = licenses.asl20;
+ maintainers = [ maintainers.primeos ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch
new file mode 100644
index 000000000000..f1ec4e3a7ddb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch
@@ -0,0 +1,12 @@
+diff --git a/repo b/repo
+index 8b05def..f394b3e 100755
+--- a/repo
++++ b/repo
+@@ -236,6 +236,7 @@ import optparse
+ import re
+ import shutil
+ import stat
++import ssl
+
+ if sys.version_info[0] == 3:
+ import urllib.request
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-review/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-review/default.nix
new file mode 100644
index 000000000000..d0bbca15ea17
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-review/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchurl, buildPythonApplication, pbr, requests, setuptools }:
+
+buildPythonApplication rec {
+ pname = "git-review";
+ version = "1.28.0";
+
+ # Manually set version because prb wants to get it from the git
+ # upstream repository (and we are installing from tarball instead)
+ PBR_VERSION = version;
+
+ src = fetchurl {
+ url = "https://opendev.org/opendev/${pname}/archive/${version}.tar.gz";
+ sha256 = "1y1jzb0hlprynwwr4q5y4x06641qrhj0k69mclabnmhfam9g8ygm";
+ };
+
+ propagatedBuildInputs = [ pbr requests setuptools ];
+
+ # Don't do tests because they require gerrit which is not packaged
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = "https://opendev.org/opendev/git-review";
+ description = "Tool to submit code to Gerrit";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ metadark ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix
new file mode 100644
index 000000000000..049a2aa2c1d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "git-sizer";
+ version = "1.3.0";
+
+ goPackagePath = "github.com/github/git-sizer";
+
+ src = fetchFromGitHub {
+ owner = "github";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0kmyvai5xfalm56ywa6mhdvvjnacdzwcyz28bw0pz9a4gyf1mgvh";
+ };
+
+ meta = with lib; {
+ description = "Compute various size metrics for a Git repository";
+ license = licenses.mit;
+ maintainers = with maintainers; [ matthewbauer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-up/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-up/default.nix
new file mode 100644
index 000000000000..2a0a97771cbf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/git-up/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pythonPackages, git }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "git-up";
+ version = "1.6.1";
+
+ src = pythonPackages.fetchPypi {
+ inherit pname version;
+ sha256 = "0gs791yb0cndg9879vayvcj329jwhzpk6wrf9ri12l5hg8g490za";
+ };
+
+ # git should be on path for tool to work correctly
+ propagatedBuildInputs = [ git ] ++ (with pythonPackages; [ click colorama docopt GitPython six termcolor ]);
+
+ checkInputs = [ git pythonPackages.nose ]; # git needs to be on path
+ # 1. git fails to run as it cannot detect the email address, so we set it
+ # 2. $HOME is by default not a valid dir, so we have to set that too
+ # https://github.com/NixOS/nixpkgs/issues/12591
+ preCheck = ''
+ export HOME=$TMPDIR
+ git config --global user.email "nobody@example.com"
+ git config --global user.name "Nobody"
+ '';
+
+ postInstall = ''
+ rm -r $out/${pythonPackages.python.sitePackages}/PyGitUp/tests
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/msiemens/PyGitUp";
+ description = "A git pull replacement that rebases all local branches when pulling";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitea/default.nix
new file mode 100644
index 000000000000..340ab283bf6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitea/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, buildGoPackage, fetchurl, makeWrapper
+, git, bash, gzip, openssh, pam
+, sqliteSupport ? true
+, pamSupport ? true
+}:
+
+with stdenv.lib;
+
+buildGoPackage rec {
+ pname = "gitea";
+ version = "1.13.0";
+
+ src = fetchurl {
+ url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
+ sha256 = "090i4hk9mb66ia14kyp7rqymhc897yi1ifb0skvknylx0sw8vhk9";
+ };
+
+ unpackPhase = ''
+ mkdir source/
+ tar xvf $src -C source/
+ '';
+
+ sourceRoot = "source";
+
+ patches = [
+ ./static-root-path.patch
+ ];
+
+ postPatch = ''
+ patchShebangs .
+ substituteInPlace modules/setting/setting.go --subst-var data
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = optional pamSupport pam;
+
+ preBuild = let
+ tags = optional pamSupport "pam"
+ ++ optional sqliteSupport "sqlite";
+ tagsString = concatStringsSep " " tags;
+ in ''
+ export buildFlagsArray=(
+ -tags="${tagsString}"
+ -ldflags='-X "main.Version=${version}" -X "main.Tags=${tagsString}"'
+ )
+ '';
+
+ outputs = [ "out" "data" ];
+
+ postInstall = ''
+ mkdir $data
+ cp -R ./go/src/${goPackagePath}/{public,templates,options} $data
+ mkdir -p $out
+ cp -R ./go/src/${goPackagePath}/options/locale $out/locale
+
+ wrapProgram $out/bin/gitea \
+ --prefix PATH : ${makeBinPath [ bash git gzip openssh ]}
+ '';
+
+ goPackagePath = "code.gitea.io/gitea";
+
+ meta = {
+ description = "Git with a cup of tea";
+ homepage = "https://gitea.io";
+ license = licenses.mit;
+ maintainers = with maintainers; [ disassembler kolaente ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch
new file mode 100644
index 000000000000..e486397d9cf1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch
@@ -0,0 +1,13 @@
+diff --git a/modules/setting/setting.go b/modules/setting/setting.go
+index 45e55a2..9d18ee4 100644
+--- a/modules/setting/setting.go
++++ b/modules/setting/setting.go
+@@ -667,7 +667,7 @@ func NewContext() {
+ OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
+ DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
+ if len(StaticRootPath) == 0 {
+- StaticRootPath = AppWorkPath
++ StaticRootPath = "@data@"
+ }
+ StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(StaticRootPath)
+ StaticCacheTime = sec.Key("STATIC_CACHE_TIME").MustDuration(6 * time.Hour)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix
new file mode 100644
index 000000000000..ac9670601553
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip, python2Packages}:
+
+python2Packages.buildPythonApplication rec {
+ pname = "gitinspector";
+ version = "0.4.4";
+ namePrefix = "";
+
+ src = fetchzip {
+ url = "https://github.com/ejwa/gitinspector/archive/v${version}.tar.gz";
+ sha256 = "1pfsw6xldm6jigs3nhysvqaxk8a0zf8zczgfkrp920as9sya3c7m";
+ name = "${pname}-${version}" + "-src";
+ };
+
+ checkInputs = with python2Packages; [
+ unittest2
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ejwa/gitinspector";
+ description = "Statistical analysis tool for git repositories";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
new file mode 100644
index 000000000000..4fc84767cd42
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
@@ -0,0 +1,119 @@
+{ stdenv, libXcomposite, libgnome-keyring, makeWrapper, udev, curl, alsaLib
+, libXfixes, atk, gtk3, libXrender, pango, gnome3, cairo, freetype, fontconfig
+, libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
+, nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
+, makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
+, e2fsprogs, krb5, libdrm, mesa
+}:
+
+with stdenv.lib;
+
+let
+ curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; };
+in
+stdenv.mkDerivation rec {
+ pname = "gitkraken";
+ version = "7.4.1";
+
+ src = fetchzip {
+ url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
+ sha256 = "1c9cyxx5sqvnilf6xp3ildq3lwl6mj8v1vl0wzyjpaiqky99lj9p";
+ };
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ libPath = makeLibraryPath [
+ stdenv.cc.cc.lib
+ curlWithGnuTls
+ udev
+ libX11
+ libXext
+ libXcursor
+ libXi
+ libxcb
+ glib
+ libXScrnSaver
+ libxkbfile
+ libXtst
+ nss
+ nspr
+ cups
+ alsaLib
+ expat
+ gdk-pixbuf
+ dbus
+ libXdamage
+ libXrandr
+ atk
+ pango
+ cairo
+ freetype
+ fontconfig
+ libXcomposite
+ libXfixes
+ libXrender
+ gtk3
+ libgnome-keyring
+ openssl
+ at-spi2-atk
+ at-spi2-core
+ libuuid
+ e2fsprogs
+ krb5
+ libdrm
+ mesa
+ ];
+
+ desktopItem = makeDesktopItem {
+ name = "gitkraken";
+ exec = "gitkraken";
+ icon = "gitkraken";
+ desktopName = "GitKraken";
+ genericName = "Git Client";
+ categories = "Development;";
+ comment = "Graphical Git client from Axosoft";
+ };
+
+ nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+ buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/gitkraken/
+ cp -R $src/* $out/share/gitkraken/
+
+ mkdir -p $out/bin
+ ln -s $out/share/gitkraken/gitkraken $out/bin/gitkraken
+
+ mkdir -p $out/share/applications
+ cp ${desktopItem}/share/applications/* $out/share/applications/
+
+ substituteInPlace $out/share/applications/gitkraken.desktop \
+ --replace $out/usr/share/gitkraken $out/bin
+
+ mkdir -p $out/share/pixmaps
+ cp gitkraken.png $out/share/pixmaps/gitkraken.png
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ pushd $out/share/gitkraken
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" gitkraken
+
+ for file in $(find . -type f \( -name \*.node -o -name gitkraken -o -name \*.so\* \) ); do
+ patchelf --set-rpath ${libPath}:$out/share/gitkraken $file || true
+ done
+ popd
+ '';
+
+ meta = {
+ homepage = "https://www.gitkraken.com/";
+ description = "The downright luxurious and most popular Git client for Windows, Mac & Linux";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ xnwdd evanjs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile
new file mode 100644
index 000000000000..7549ada64050
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org' do
+ gem 'gitlab-triage'
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile.lock
new file mode 100644
index 000000000000..adec5b524f34
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile.lock
@@ -0,0 +1,35 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (5.2.4.4)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ concurrent-ruby (1.1.7)
+ gitlab-triage (1.13.0)
+ activesupport (~> 5.1)
+ httparty (~> 0.17)
+ httparty (0.18.1)
+ mime-types (~> 3.0)
+ multi_xml (>= 0.5.2)
+ i18n (1.8.5)
+ concurrent-ruby (~> 1.0)
+ mime-types (3.3.1)
+ mime-types-data (~> 3.2015)
+ mime-types-data (3.2020.0512)
+ minitest (5.14.2)
+ multi_xml (0.6.0)
+ thread_safe (0.3.6)
+ tzinfo (1.2.7)
+ thread_safe (~> 0.1)
+
+PLATFORMS
+ ruby
+ x86_64-linux
+
+DEPENDENCIES
+ gitlab-triage!
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/default.nix
new file mode 100644
index 000000000000..09dfbcbc368b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/default.nix
@@ -0,0 +1,14 @@
+{ lib, bundlerApp }:
+
+bundlerApp {
+ pname = "gitlab-triage";
+ gemdir = ./.;
+ exes = [ "gitlab-triage" ];
+
+ meta = with lib; {
+ description = "GitLab's issues and merge requests triage, automated!";
+ homepage = "https://gitlab.com/gitlab-org/gitlab-triage";
+ license = licenses.mit;
+ maintainers = with maintainers; [ SuperSandro2000 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/gemset.nix
new file mode 100644
index 000000000000..1ce8450bba1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab-triage/gemset.nix
@@ -0,0 +1,118 @@
+{
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dpnk20s754fz6jfz9sp3ri49hn46ksw4hf6ycnlw7s3hsdxqgcd";
+ type = "gem";
+ };
+ version = "5.2.4.4";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+ type = "gem";
+ };
+ version = "1.1.7";
+ };
+ gitlab-triage = {
+ dependencies = ["activesupport" "httparty"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11sas3h3n638gni1mysck1ahyakqnl8gg6g21pc3krs6jrg9qxj9";
+ type = "gem";
+ };
+ version = "1.13.0";
+ };
+ httparty = {
+ dependencies = ["mime-types" "multi_xml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17gpnbf2a7xkvsy20jig3ljvx8hl5520rqm9pffj2jrliq1yi3w7";
+ type = "gem";
+ };
+ version = "0.18.1";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+ type = "gem";
+ };
+ version = "1.8.5";
+ };
+ 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";
+ };
+ minitest = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+ type = "gem";
+ };
+ version = "5.14.2";
+ };
+ multi_xml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ thread_safe = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/data.json
new file mode 100644
index 000000000000..866b7efa4236
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -0,0 +1,13 @@
+{
+ "version": "13.6.1",
+ "repo_hash": "0kfh9ngykrnvvjpx4m69pfyfvsvvqfxzlxhm8dgx9ypz4bpmr947",
+ "owner": "gitlab-org",
+ "repo": "gitlab",
+ "rev": "v13.6.1-ee",
+ "passthru": {
+ "GITALY_SERVER_VERSION": "13.6.1",
+ "GITLAB_PAGES_VERSION": "1.30.0",
+ "GITLAB_SHELL_VERSION": "13.13.0",
+ "GITLAB_WORKHORSE_VERSION": "8.54.0"
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
new file mode 100644
index 000000000000..ee6c8201fa3f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
@@ -0,0 +1,196 @@
+{ stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv
+, ruby, tzdata, git, nettools, nixosTests, nodejs, openssl
+, gitlabEnterprise ? false, callPackage, yarn
+, fixup_yarn_lock, replace
+}:
+
+let
+ data = (builtins.fromJSON (builtins.readFile ./data.json));
+
+ version = data.version;
+ src = fetchFromGitLab {
+ owner = data.owner;
+ repo = data.repo;
+ rev = data.rev;
+ sha256 = data.repo_hash;
+ };
+
+ rubyEnv = bundlerEnv rec {
+ name = "gitlab-env-${version}";
+ inherit ruby;
+ gemdir = ./rubyEnv;
+ gemset =
+ let x = import (gemdir + "/gemset.nix");
+ in x // {
+ # grpc expects the AR environment variable to contain `ar rpc`. See the
+ # discussion in nixpkgs #63056.
+ grpc = x.grpc // {
+ patches = [ ./fix-grpc-ar.patch ];
+ dontBuild = false;
+ };
+ # the openssl needs the openssl include files
+ openssl = x.openssl // {
+ buildInputs = [ openssl ];
+ };
+ };
+ groups = [
+ "default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos"
+ ];
+ # N.B. omniauth_oauth2_generic and apollo_upload_server both provide a
+ # `console` executable.
+ ignoreCollisions = true;
+ };
+
+ yarnOfflineCache = (callPackage ./yarnPkgs.nix {}).offline_cache;
+
+ assets = stdenv.mkDerivation {
+ pname = "gitlab-assets";
+ inherit version src;
+
+ nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git ];
+
+ # Since version 12.6.0, the rake tasks need the location of git,
+ # so we have to apply the location patches here too.
+ patches = [ ./remove-hardcoded-locations.patch ];
+ # One of the patches uses this variable - if it's unset, execution
+ # of rake tasks fails.
+ GITLAB_LOG_PATH = "log";
+ FOSS_ONLY = !gitlabEnterprise;
+
+ configurePhase = ''
+ runHook preConfigure
+
+ # Some rake tasks try to run yarn automatically, which won't work
+ rm lib/tasks/yarn.rake
+
+ # The rake tasks won't run without a basic configuration in place
+ mv config/database.yml.env config/database.yml
+ mv config/gitlab.yml.example config/gitlab.yml
+
+ # Yarn and bundler wants a real home directory to write cache, config, etc to
+ export HOME=$NIX_BUILD_TOP/fake_home
+
+ # Make yarn install packages from our offline cache, not the registry
+ yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
+
+ # Fixup "resolved"-entries in yarn.lock to match our offline cache
+ ${fixup_yarn_lock}/bin/fixup_yarn_lock yarn.lock
+
+ # fixup_yarn_lock currently doesn't correctly fix the dagre-d3
+ # url, so we have to do it manually
+ ${replace}/bin/replace-literal -f -e '"https://codeload.github.com/dagrejs/dagre-d3/tar.gz/e1a00e5cb518f5d2304a35647e024f31d178e55b"' \
+ '"https___codeload.github.com_dagrejs_dagre_d3_tar.gz_e1a00e5cb518f5d2304a35647e024f31d178e55b"' yarn.lock
+
+ yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
+
+ patchShebangs node_modules/
+
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ bundle exec rake gettext:po_to_json RAILS_ENV=production NODE_ENV=production
+ bundle exec rake rake:assets:precompile RAILS_ENV=production NODE_ENV=production
+ bundle exec rake gitlab:assets:compile_webpack_if_needed RAILS_ENV=production NODE_ENV=production
+ bundle exec rake gitlab:assets:fix_urls RAILS_ENV=production NODE_ENV=production
+ bundle exec rake gitlab:assets:check_page_bundle_mixins_css_for_sideeffects RAILS_ENV=production NODE_ENV=production
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mv public/assets $out
+
+ runHook postInstall
+ '';
+ };
+in
+stdenv.mkDerivation {
+ name = "gitlab${lib.optionalString gitlabEnterprise "-ee"}-${version}";
+
+ inherit src;
+
+ buildInputs = [
+ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler tzdata git nettools
+ ];
+
+ patches = [ ./remove-hardcoded-locations.patch ];
+
+ postPatch = ''
+ ${lib.optionalString (!gitlabEnterprise) ''
+ # Remove all proprietary components
+ rm -rf ee
+ ''}
+
+ # For reasons I don't understand "bundle exec" ignores the
+ # RAILS_ENV causing tests to be executed that fail because we're
+ # not installing development and test gems above. Deleting the
+ # tests works though.
+ rm lib/tasks/test.rake
+
+ rm config/initializers/gitlab_shell_secret_token.rb
+
+ sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake
+ sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb
+
+ # Always require lib-files and application.rb through their store
+ # path, not their relative state directory path. This gets rid of
+ # warnings and means we don't have to link back to lib from the
+ # state directory.
+ ${replace}/bin/replace-literal -f -r -e '../lib' "$out/share/gitlab/lib" config
+ ${replace}/bin/replace-literal -f -r -e "require_relative 'application'" "require_relative '$out/share/gitlab/config/application'" config
+ '';
+
+ buildPhase = ''
+ rm -f config/secrets.yml
+ mv config config.dist
+ rm -r tmp
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share
+ cp -r . $out/share/gitlab
+ ln -sf ${assets} $out/share/gitlab/public/assets
+ rm -rf $out/share/gitlab/log
+ ln -sf /run/gitlab/log $out/share/gitlab/log
+ ln -sf /run/gitlab/uploads $out/share/gitlab/public/uploads
+ ln -sf /run/gitlab/config $out/share/gitlab/config
+ ln -sf /run/gitlab/tmp $out/share/gitlab/tmp
+
+ # rake tasks to mitigate CVE-2017-0882
+ # see https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/
+ cp ${./reset_token.rake} $out/share/gitlab/lib/tasks/reset_token.rake
+ '';
+
+ passthru = {
+ inherit rubyEnv assets;
+ ruby = rubyEnv.wrappedRuby;
+ GITALY_SERVER_VERSION = data.passthru.GITALY_SERVER_VERSION;
+ GITLAB_PAGES_VERSION = data.passthru.GITLAB_PAGES_VERSION;
+ GITLAB_SHELL_VERSION = data.passthru.GITLAB_SHELL_VERSION;
+ GITLAB_WORKHORSE_VERSION = data.passthru.GITLAB_WORKHORSE_VERSION;
+ tests = {
+ nixos-test-passes = nixosTests.gitlab;
+ };
+ };
+
+ meta = with lib; {
+ homepage = "http://www.gitlab.com/";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fpletz globin krav talyz ];
+ } // (if gitlabEnterprise then
+ {
+ license = licenses.unfreeRedistributable; # https://gitlab.com/gitlab-org/gitlab-ee/raw/master/LICENSE
+ description = "GitLab Enterprise Edition";
+ }
+ else
+ {
+ license = licenses.mit;
+ description = "GitLab Community Edition";
+ longDescription = "GitLab Community Edition (CE) is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab CE on your own servers, in a container, or on a cloud provider.";
+ });
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/fix-grpc-ar.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/fix-grpc-ar.patch
new file mode 100644
index 000000000000..9b95e668e045
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/fix-grpc-ar.patch
@@ -0,0 +1,10 @@
+--- a/src/ruby/ext/grpc/extconf.rb
++++ b/src/ruby/ext/grpc/extconf.rb
+@@ -27,6 +27,7 @@ ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.7'
+ if ENV['AR'].nil? || ENV['AR'].size == 0
+ ENV['AR'] = RbConfig::CONFIG['AR'] + ' rcs'
+ end
++ENV['AR'] = ENV['AR'] + ' rcs'
+ if ENV['CC'].nil? || ENV['CC'].size == 0
+ ENV['CC'] = RbConfig::CONFIG['CC']
+ end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
new file mode 100644
index 000000000000..d8564dca8779
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -0,0 +1,33 @@
+source 'https://rubygems.org'
+
+gem 'rugged', '~> 0.28'
+gem 'github-linguist', '~> 7.11', require: 'linguist'
+gem 'gitlab-markup', '~> 1.7.1'
+gem 'activesupport', '~> 6.0.3.3'
+gem 'rdoc', '~> 6.0'
+gem 'gitlab-gollum-lib', '~> 4.2.7.9', require: false
+gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.2', require: false
+gem 'grpc', '~> 1.30.2'
+gem 'sentry-raven', '~> 3.0', require: false
+gem 'faraday', '~> 1.0'
+gem 'rbtrace', require: false
+
+# Labkit provides observability functionality
+gem 'gitlab-labkit', '~> 0.13.2'
+
+# Detects the open source license the repository includes
+# This version needs to be in sync with GitLab CE/EE
+gem 'licensee', '~> 8.9.0'
+
+gem 'google-protobuf', '~> 3.12'
+
+group :development, :test do
+ gem 'rubocop', '~> 0.69', require: false
+ gem 'rspec', require: false
+ gem 'rspec-parameterized', require: false
+ gem 'timecop', require: false
+ gem 'factory_bot', require: false
+ gem 'pry', '~> 0.12.2', require: false
+
+ gem 'grpc-tools', '= 1.30.2'
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
new file mode 100644
index 000000000000..a633e067f0d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -0,0 +1,220 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ abstract_type (0.0.7)
+ actionpack (6.0.3.3)
+ actionview (= 6.0.3.3)
+ activesupport (= 6.0.3.3)
+ rack (~> 2.0, >= 2.0.8)
+ rack-test (>= 0.6.3)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
+ actionview (6.0.3.3)
+ activesupport (= 6.0.3.3)
+ builder (~> 3.1)
+ erubi (~> 1.4)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
+ activesupport (6.0.3.3)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ zeitwerk (~> 2.2, >= 2.2.2)
+ adamantium (0.2.0)
+ ice_nine (~> 0.11.0)
+ memoizable (~> 0.4.0)
+ ast (2.4.1)
+ binding_ninja (0.2.3)
+ builder (3.2.4)
+ charlock_holmes (0.7.7)
+ coderay (1.1.2)
+ concord (0.1.5)
+ adamantium (~> 0.2.0)
+ equalizer (~> 0.0.9)
+ concurrent-ruby (1.1.7)
+ crass (1.0.6)
+ diff-lcs (1.3)
+ equalizer (0.0.11)
+ erubi (1.9.0)
+ escape_utils (1.2.1)
+ factory_bot (5.0.2)
+ activesupport (>= 4.2.0)
+ faraday (1.0.1)
+ multipart-post (>= 1.2, < 3)
+ ffi (1.13.1)
+ gemojione (3.3.0)
+ json
+ github-linguist (7.11.0)
+ charlock_holmes (~> 0.7.7)
+ escape_utils (~> 1.2.0)
+ mini_mime (~> 1.0)
+ rugged (>= 0.25.1)
+ github-markup (1.7.0)
+ gitlab-gollum-lib (4.2.7.9)
+ gemojione (~> 3.2)
+ github-markup (~> 1.6)
+ gitlab-gollum-rugged_adapter (~> 0.4.4.2)
+ nokogiri (>= 1.6.1, < 2.0)
+ rouge (~> 3.1)
+ sanitize (~> 4.6.4)
+ stringex (~> 2.6)
+ gitlab-gollum-rugged_adapter (0.4.4.2)
+ mime-types (>= 1.15)
+ rugged (~> 0.25)
+ gitlab-labkit (0.13.2)
+ actionpack (>= 5.0.0, < 6.1.0)
+ activesupport (>= 5.0.0, < 6.1.0)
+ grpc (~> 1.19)
+ jaeger-client (~> 1.1)
+ opentracing (~> 0.4)
+ redis (> 3.0.0, < 5.0.0)
+ gitlab-markup (1.7.1)
+ google-protobuf (3.12.4)
+ googleapis-common-protos-types (1.0.5)
+ google-protobuf (~> 3.11)
+ grpc (1.30.2)
+ google-protobuf (~> 3.12)
+ googleapis-common-protos-types (~> 1.0)
+ grpc-tools (1.30.2)
+ i18n (1.8.5)
+ concurrent-ruby (~> 1.0)
+ ice_nine (0.11.2)
+ jaeger-client (1.1.0)
+ opentracing (~> 0.3)
+ thrift
+ json (2.3.1)
+ licensee (8.9.2)
+ rugged (~> 0.24)
+ loofah (2.7.0)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.5.9)
+ memoizable (0.4.2)
+ thread_safe (~> 0.3, >= 0.3.1)
+ method_source (0.9.2)
+ mime-types (3.3.1)
+ mime-types-data (~> 3.2015)
+ mime-types-data (3.2020.0512)
+ mini_mime (1.0.2)
+ mini_portile2 (2.4.0)
+ minitest (5.14.2)
+ msgpack (1.3.3)
+ multipart-post (2.1.1)
+ nokogiri (1.10.10)
+ mini_portile2 (~> 2.4.0)
+ nokogumbo (1.5.0)
+ nokogiri
+ opentracing (0.5.0)
+ optimist (3.0.1)
+ parallel (1.19.2)
+ parser (2.7.2.0)
+ ast (~> 2.4.1)
+ proc_to_ast (0.1.0)
+ coderay
+ parser
+ unparser
+ procto (0.0.3)
+ pry (0.12.2)
+ coderay (~> 1.1.0)
+ method_source (~> 0.9.0)
+ rack (2.2.3)
+ rack-test (1.1.0)
+ rack (>= 1.0, < 3)
+ rails-dom-testing (2.0.3)
+ activesupport (>= 4.2.0)
+ nokogiri (>= 1.6)
+ rails-html-sanitizer (1.3.0)
+ loofah (~> 2.3)
+ rainbow (3.0.0)
+ rbtrace (0.4.14)
+ ffi (>= 1.0.6)
+ msgpack (>= 0.4.3)
+ optimist (>= 3.0.0)
+ rdoc (6.2.0)
+ redis (4.1.3)
+ regexp_parser (1.8.1)
+ rexml (3.2.4)
+ rouge (3.24.0)
+ rspec (3.8.0)
+ rspec-core (~> 3.8.0)
+ rspec-expectations (~> 3.8.0)
+ rspec-mocks (~> 3.8.0)
+ rspec-core (3.8.0)
+ rspec-support (~> 3.8.0)
+ rspec-expectations (3.8.3)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.8.0)
+ rspec-mocks (3.8.0)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.8.0)
+ rspec-parameterized (0.4.2)
+ binding_ninja (>= 0.2.3)
+ parser
+ proc_to_ast
+ rspec (>= 2.13, < 4)
+ unparser
+ rspec-support (3.8.0)
+ rubocop (0.86.0)
+ parallel (~> 1.10)
+ parser (>= 2.7.0.1)
+ rainbow (>= 2.2.2, < 4.0)
+ regexp_parser (>= 1.7)
+ rexml
+ rubocop-ast (>= 0.0.3, < 1.0)
+ ruby-progressbar (~> 1.7)
+ unicode-display_width (>= 1.4.0, < 2.0)
+ rubocop-ast (0.2.0)
+ parser (>= 2.7.0.1)
+ ruby-progressbar (1.10.1)
+ rugged (0.28.4.1)
+ sanitize (4.6.6)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.4.4)
+ nokogumbo (~> 1.4)
+ sentry-raven (3.0.4)
+ faraday (>= 1.0)
+ stringex (2.8.5)
+ thread_safe (0.3.6)
+ thrift (0.11.0.0)
+ timecop (0.9.1)
+ tzinfo (1.2.7)
+ thread_safe (~> 0.1)
+ unicode-display_width (1.7.0)
+ unparser (0.4.7)
+ abstract_type (~> 0.0.7)
+ adamantium (~> 0.2.0)
+ concord (~> 0.1.5)
+ diff-lcs (~> 1.3)
+ equalizer (~> 0.0.9)
+ parser (>= 2.6.5)
+ procto (~> 0.0.2)
+ zeitwerk (2.4.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ activesupport (~> 6.0.3.3)
+ factory_bot
+ faraday (~> 1.0)
+ github-linguist (~> 7.11)
+ gitlab-gollum-lib (~> 4.2.7.9)
+ gitlab-gollum-rugged_adapter (~> 0.4.4.2)
+ gitlab-labkit (~> 0.13.2)
+ gitlab-markup (~> 1.7.1)
+ google-protobuf (~> 3.12)
+ grpc (~> 1.30.2)
+ grpc-tools (= 1.30.2)
+ licensee (~> 8.9.0)
+ pry (~> 0.12.2)
+ rbtrace
+ rdoc (~> 6.0)
+ rspec
+ rspec-parameterized
+ rubocop (~> 0.69)
+ rugged (~> 0.28)
+ sentry-raven (~> 3.0)
+ timecop
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
new file mode 100644
index 000000000000..57465f808df5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchFromGitLab, fetchFromGitHub, buildGoModule, ruby
+, bundlerEnv, pkgconfig
+# libgit2 + dependencies
+, libgit2, openssl, zlib, pcre, http-parser }:
+
+let
+ rubyEnv = bundlerEnv rec {
+ name = "gitaly-env";
+ inherit ruby;
+ copyGemFiles = true;
+ gemdir = ./.;
+ gemset =
+ let x = import (gemdir + "/gemset.nix");
+ in x // {
+ # grpc expects the AR environment variable to contain `ar rpc`. See the
+ # discussion in nixpkgs #63056.
+ grpc = x.grpc // {
+ patches = [ ../fix-grpc-ar.patch ];
+ dontBuild = false;
+ };
+ };
+ };
+in buildGoModule rec {
+ version = "13.6.1";
+ pname = "gitaly";
+
+ src = fetchFromGitLab {
+ owner = "gitlab-org";
+ repo = "gitaly";
+ rev = "v${version}";
+ sha256 = "02w7pf7l9sr2nk8ky9b0d5b4syx3d9my65h2kzvh2afk7kv35h5y";
+ };
+
+ vendorSha256 = "15mx5g2wa93sajbdwh58wcspg0n51d1ciwb7f15d0nm5hspz3w9r";
+
+ passthru = {
+ inherit rubyEnv;
+ };
+
+ buildFlags = [ "-tags=static,system_libgit2" ];
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ rubyEnv.wrappedRuby libgit2 openssl zlib pcre http-parser ];
+ doCheck = false;
+
+ postInstall = ''
+ mkdir -p $ruby
+ cp -rv $src/ruby/{bin,lib,proto,git-hooks} $ruby
+ '';
+
+ outputs = [ "out" "ruby" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitlab.com/gitlab-org/gitaly";
+ description = "A Git RPC service for handling all the git calls made by GitLab";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ roblabla globin fpletz talyz ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
new file mode 100644
index 000000000000..9cdadec5d4fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -0,0 +1,858 @@
+{
+ abstract_type = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+ type = "gem";
+ };
+ version = "0.0.7";
+ };
+ actionpack = {
+ dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p873nqwmpsvmkb5n86d70wndx1qhy15pc9mbcd1mc8sj174578b";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ actionview = {
+ dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08pvmjddlw01q5r9zdfgddwp4csndpf5i2w47677z5r36jznz36q";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dmkqbvndbz011a1byg6f990936vfadbnwjwjw9vjzr4kd8bxk96";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ adamantium = {
+ dependencies = ["ice_nine" "memoizable"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ ast = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+ type = "gem";
+ };
+ version = "2.4.1";
+ };
+ binding_ninja = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17fa3sv6p2fw9g8fxpwx1kjhhs28aw41akkba0hlgvk60055b1aa";
+ type = "gem";
+ };
+ version = "0.2.3";
+ };
+ builder = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ charlock_holmes = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p";
+ type = "gem";
+ };
+ version = "0.7.7";
+ };
+ coderay = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ concord = {
+ dependencies = ["adamantium" "equalizer"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
+ type = "gem";
+ };
+ version = "0.1.5";
+ };
+ concurrent-ruby = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+ type = "gem";
+ };
+ version = "1.1.7";
+ };
+ crass = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
+ type = "gem";
+ };
+ version = "1.0.6";
+ };
+ diff-lcs = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ equalizer = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+ type = "gem";
+ };
+ version = "0.0.11";
+ };
+ erubi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ escape_utils = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ factory_bot = {
+ dependencies = ["activesupport"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02ijqa3g6lb8l8mvi40z1zgh9bb3gr08p2r2ym159ghhfbcrmbwk";
+ type = "gem";
+ };
+ version = "5.0.2";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ gemojione = {
+ dependencies = ["json"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ github-linguist = {
+ dependencies = ["charlock_holmes" "escape_utils" "mini_mime" "rugged"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12vwx6msqqdyf10zrrp2zdwr8ixrb82phriyin16rsmndb93cijv";
+ type = "gem";
+ };
+ version = "7.11.0";
+ };
+ github-markup = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ gitlab-gollum-lib = {
+ dependencies = ["gemojione" "github-markup" "gitlab-gollum-rugged_adapter" "nokogiri" "rouge" "sanitize" "stringex"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y21k8bix3h2qdys2kz2z831cclmx3zc15x67cp8s945dkmh39sj";
+ type = "gem";
+ };
+ version = "4.2.7.9";
+ };
+ gitlab-gollum-rugged_adapter = {
+ dependencies = ["mime-types" "rugged"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d32d3yfadzwrarv0biwbfbkz2bqcc0dc3q0imnk962jaay19gc4";
+ type = "gem";
+ };
+ version = "0.4.4.2";
+ };
+ gitlab-labkit = {
+ dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "redis"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vgd61xdclihifcdivddfs1gipxy1ql0kf9q47k9h0xisscyjhd2";
+ type = "gem";
+ };
+ version = "0.13.2";
+ };
+ gitlab-markup = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xnlra517pfj3hx07kasbqlcw51ix4xajr6bsd3mwg8bc92dlwy7";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ google-protobuf = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m3la0yid3bqx9b30raisqbp27d0q7vdrlslazrdasf8v1vhifxj";
+ type = "gem";
+ };
+ version = "3.12.4";
+ };
+ googleapis-common-protos-types = {
+ dependencies = ["google-protobuf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1aava1b75n056s24gn7ajrkmm6s3xa3swl62dl5q9apw4marghji";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ grpc = {
+ dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rsglf7ag17n465iff7vlw83pn2rpl4kv9sb1rpf17nx6xpi7yl5";
+ type = "gem";
+ };
+ version = "1.30.2";
+ };
+ grpc-tools = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0k9zhsqhamp02ryzgfb4y2bbick151vlhrhj0kqbbz9lyhms0bd4";
+ type = "gem";
+ };
+ version = "1.30.2";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+ type = "gem";
+ };
+ version = "1.8.5";
+ };
+ ice_nine = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+ type = "gem";
+ };
+ version = "0.11.2";
+ };
+ jaeger-client = {
+ dependencies = ["opentracing" "thrift"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a2qlkc1hkr5hkj2574l1a63sm04bdx98gfhh9m8vvp6psdrnpnb";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ json = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ licensee = {
+ dependencies = ["rugged"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+ type = "gem";
+ };
+ version = "8.9.2";
+ };
+ loofah = {
+ dependencies = ["crass" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1alz1x6rkhbw10qpszr384299rf52rcyasn0619a9p50vzs8vczq";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ memoizable = {
+ dependencies = ["thread_safe"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ method_source = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ 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";
+ };
+ mini_mime = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ mini_portile2 = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ minitest = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+ type = "gem";
+ };
+ version = "5.14.2";
+ };
+ msgpack = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lva6bkvb4mfa0m3bqn4lm4s4gi81c40jvdcsrxr6vng49q9daih";
+ type = "gem";
+ };
+ version = "1.3.3";
+ };
+ multipart-post = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+ type = "gem";
+ };
+ version = "1.10.10";
+ };
+ nokogumbo = {
+ dependencies = ["nokogiri"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ opentracing = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11lj1d8vq0hkb5hjz8q4lm82cddrggpbb33dhqfn7rxhwsmxgdfy";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ optimist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
+ type = "gem";
+ };
+ version = "3.0.1";
+ };
+ parallel = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17b127xxmm2yqdz146qwbs57046kn0js1h8synv01dwqz2z1kp2l";
+ type = "gem";
+ };
+ version = "1.19.2";
+ };
+ parser = {
+ dependencies = ["ast"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z";
+ type = "gem";
+ };
+ version = "2.7.2.0";
+ };
+ proc_to_ast = {
+ dependencies = ["coderay" "parser" "unparser"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
+ type = "gem";
+ };
+ version = "0.1.0";
+ };
+ procto = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
+ type = "gem";
+ };
+ version = "0.0.3";
+ };
+ pry = {
+ dependencies = ["coderay" "method_source"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ rack = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+ type = "gem";
+ };
+ version = "2.2.3";
+ };
+ rack-test = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ rails-dom-testing = {
+ dependencies = ["activesupport" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ rails-html-sanitizer = {
+ dependencies = ["loofah"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ rainbow = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ rbtrace = {
+ dependencies = ["ffi" "msgpack" "optimist"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn";
+ type = "gem";
+ };
+ version = "0.4.14";
+ };
+ rdoc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gh7sc3xd4rgl9z90181cq580r1xqn063mmv51wdrhhsrkkw2bi9";
+ type = "gem";
+ };
+ version = "6.2.0";
+ };
+ redis = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08v2y91q1pmv12g9zsvwj66w3s8j9d82yrmxgyv4y4gz380j3wyh";
+ type = "gem";
+ };
+ version = "4.1.3";
+ };
+ regexp_parser = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0n9d14ppshnx71i3mi1pnm3hwhcbb6m6vsc0b0dqgsab8r2rs96n";
+ type = "gem";
+ };
+ version = "1.8.1";
+ };
+ rexml = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ rouge = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1igl00gk0vaq4xxk44m7yflqdzsblgxlzcxj8saz96bmx7mg7392";
+ type = "gem";
+ };
+ version = "3.24.0";
+ };
+ rspec = {
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15ppasvb9qrscwlyjz67ppw1lnxiqnkzx5vkx1bd8x5n3dhikxc3";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-core = {
+ dependencies = ["rspec-support"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p1s5bnbqp3sxk67y0fh0x884jjym527r0vgmhbm81w7aq6b7l4p";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-expectations = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c4gs5ybf7km0qshdm92p38zvg32n1j2kr5fgs2icacz7xf2y6fy";
+ type = "gem";
+ };
+ version = "3.8.3";
+ };
+ rspec-mocks = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06y508cjqycb4yfhxmb3nxn0v9xqf17qbd46l1dh4xhncinr4fyp";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-parameterized = {
+ dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c0892jbaznnldk1wi24qxm70g4zhw2idqx516rhgdzgd7yh5j31";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ rspec-support = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p3m7drixrlhvj2zpc38b11x145bvm311x6f33jjcxmvcm0wq609";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rubocop = {
+ dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jl3ghxw1bpj272s5s3gl07l2rbd1vwr9z9jmlxxaa2faldn9gms";
+ type = "gem";
+ };
+ version = "0.86.0";
+ };
+ rubocop-ast = {
+ dependencies = ["parser"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w5rjkwxaxkr2jr1sl5wz0nffal27ik6b1qfzx5skl43vfk2jz97";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ ruby-progressbar = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+ type = "gem";
+ };
+ version = "1.10.1";
+ };
+ rugged = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rdidxgpk1b6y1jq9v77lcx5khq0s9q0s253lr8x57d3hk43iskx";
+ type = "gem";
+ };
+ version = "0.28.4.1";
+ };
+ sanitize = {
+ dependencies = ["crass" "nokogiri" "nokogumbo"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv";
+ type = "gem";
+ };
+ version = "4.6.6";
+ };
+ sentry-raven = {
+ dependencies = ["faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17j4br2lpnd8066d50mkg9kwk9v70hn3zfiqkvysd8p9nffmqnm0";
+ type = "gem";
+ };
+ version = "3.0.4";
+ };
+ stringex = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15ns7j5smw04w6w7bqd5mm2qcl7w9lhwykyb974i4isgg9yc23ys";
+ type = "gem";
+ };
+ version = "2.8.5";
+ };
+ thread_safe = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ thrift = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02p107kwx7jnkh6fpdgvaji0xdg6xkaarngkqjml6s4zny4m8slv";
+ type = "gem";
+ };
+ version = "0.11.0.0";
+ };
+ timecop = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ unicode-display_width = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ unparser = {
+ dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qg1apxlnf4kxfj9jpm6hhv73jsncbs4zpsgyan32p5r331q1gmx";
+ type = "gem";
+ };
+ version = "0.4.7";
+ };
+ zeitwerk = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
new file mode 100644
index 000000000000..e2dd35ff3319
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitLab, buildGoModule, ruby }:
+
+buildGoModule rec {
+ pname = "gitlab-shell";
+ version = "13.13.0";
+ src = fetchFromGitLab {
+ owner = "gitlab-org";
+ repo = "gitlab-shell";
+ rev = "v${version}";
+ sha256 = "1zx7x3g18xzw7fs7cayd20llxabv5r93m2mp6ixgr99ksvi6zix7";
+ };
+
+ buildInputs = [ ruby ];
+
+ patches = [ ./remove-hardcoded-locations.patch ];
+
+ vendorSha256 = "16fa3bka0008x2yazahc6xxcv4fa6yqg74kk64v8lrp7snbvjf4d";
+
+ postInstall = ''
+ cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin
+ cp -r "$NIX_BUILD_TOP/source"/{support,VERSION} $out/
+ '';
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "SSH access and repository management app for GitLab";
+ homepage = "http://www.gitlab.com/";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fpletz globin talyz ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
new file mode 100644
index 000000000000..888994adc927
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
@@ -0,0 +1,60 @@
+diff --git a/internal/config/config.go b/internal/config/config.go
+index 79c2a36..12ba31e 100644
+--- a/internal/config/config.go
++++ b/internal/config/config.go
+@@ -3,7 +3,6 @@ package config
+ import (
+ "io/ioutil"
+ "net/url"
+- "os"
+ "path"
+ "path/filepath"
+
+@@ -59,16 +58,13 @@ func (c *Config) GetHttpClient() *client.HttpClient {
+ }
+
+ func New() (*Config, error) {
+- dir, err := os.Getwd()
+- if err != nil {
+- return nil, err
+- }
++ dir := "/run/gitlab"
+
+ return NewFromDir(dir)
+ }
+
+ func NewFromDir(dir string) (*Config, error) {
+- return newFromFile(path.Join(dir, configFile))
++ return newFromFile("/run/gitlab/shell-config.yml")
+ }
+
+ func newFromFile(filename string) (*Config, error) {
+diff --git a/internal/keyline/key_line.go b/internal/keyline/key_line.go
+index c6f2422..fb0426b 100644
+--- a/internal/keyline/key_line.go
++++ b/internal/keyline/key_line.go
+@@ -37,7 +37,7 @@ func NewPrincipalKeyLine(keyId, principal string, config *config.Config) (*KeyLi
+ }
+
+ func (k *KeyLine) ToString() string {
+- command := fmt.Sprintf("%s %s-%s", path.Join(k.Config.RootDir, executable.BinDir, executable.GitlabShell), k.Prefix, k.Id)
++ command := fmt.Sprintf("%s %s-%s", path.Join("/run/current-system/sw/bin", executable.GitlabShell), k.Prefix, k.Id)
+
+ return fmt.Sprintf(`command="%s",%s %s`, command, SshOptions, k.Value)
+ }
+diff --git a/support/gitlab_config.rb b/support/gitlab_config.rb
+index 52ac5ee..d96baa3 100644
+--- a/support/gitlab_config.rb
++++ b/support/gitlab_config.rb
+@@ -7,7 +7,7 @@ class GitlabConfig
+ attr_reader :config
+
+ def initialize
+- @config = YAML.load_file(File.join(ROOT_PATH, 'config.yml'))
++ @config = YAML.load_file('/run/gitlab/shell-config.yml')
+ end
+
+ def auth_file
+--
+2.28.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
new file mode 100644
index 000000000000..a0f80533caa0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitLab, git, buildGoModule }:
+
+buildGoModule rec {
+ pname = "gitlab-workhorse";
+
+ version = "8.54.0";
+
+ src = fetchFromGitLab {
+ owner = "gitlab-org";
+ repo = "gitlab-workhorse";
+ rev = "v${version}";
+ sha256 = "0fz00sl9q4d3vbslh7y9nsnhjshgfg0x7mv7b7a9sc3mxmabp7gz";
+ };
+
+ vendorSha256 = "0wi6vj9phwh0bsdk2lrgq807nb90iivlm0bkdjkim06jq068mizj";
+ buildInputs = [ git ];
+ buildFlagsArray = "-ldflags=-X main.Version=${version}";
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.gitlab.com/";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ fpletz globin talyz ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
new file mode 100644
index 000000000000..fcb954e38843
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
@@ -0,0 +1,163 @@
+diff --git a/config/environments/production.rb b/config/environments/production.rb
+index c5cbfcf64c..4d01f6fab8 100644
+--- a/config/environments/production.rb
++++ b/config/environments/production.rb
+@@ -70,10 +70,10 @@ Rails.application.configure do
+
+ config.action_mailer.delivery_method = :sendmail
+ # Defaults to:
+- # # config.action_mailer.sendmail_settings = {
+- # # location: '/usr/sbin/sendmail',
+- # # arguments: '-i -t'
+- # # }
++ config.action_mailer.sendmail_settings = {
++ location: '/usr/sbin/sendmail',
++ arguments: '-i -t'
++ }
+ config.action_mailer.perform_deliveries = true
+ config.action_mailer.raise_delivery_errors = true
+
+diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
+index bd696a7f2c..44e3863736 100644
+--- a/config/gitlab.yml.example
++++ b/config/gitlab.yml.example
+@@ -590,7 +590,7 @@ production: &base
+ # CAUTION!
+ # Use the default values unless you really know what you are doing
+ git:
+- bin_path: /usr/bin/git
++ bin_path: git
+
+ ## Webpack settings
+ # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
+diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
+index 0bea8a4f4b..290248547b 100644
+--- a/config/initializers/1_settings.rb
++++ b/config/initializers/1_settings.rb
+@@ -177,7 +177,7 @@ Settings.gitlab['ssh_user'] ||= Settings.gitlab['user']
+ Settings.gitlab['user_home'] ||= begin
+ Etc.getpwnam(Settings.gitlab['user']).dir
+ rescue ArgumentError # no user configured
+- '/home/' + Settings.gitlab['user']
++ '/homeless-shelter'
+ end
+ Settings.gitlab['time_zone'] ||= nil
+ Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
+@@ -507,7 +507,7 @@ Settings.backup['upload']['storage_class'] ||= nil
+ # Git
+ #
+ Settings['git'] ||= Settingslogic.new({})
+-Settings.git['bin_path'] ||= '/usr/bin/git'
++Settings.git['bin_path'] ||= 'git'
+
+ # Important: keep the satellites.path setting until GitLab 9.0 at
+ # least. This setting is fed to 'rm -rf' in
+diff --git a/lib/api/api.rb b/lib/api/api.rb
+index e953f3d2ec..3a8d9f076b 100644
+--- a/lib/api/api.rb
++++ b/lib/api/api.rb
+@@ -2,7 +2,7 @@ module API
+ class API < Grape::API
+ include APIGuard
+
+- LOG_FILENAME = Rails.root.join("log", "api_json.log")
++ LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log")
+
+ NO_SLASH_URL_PART_REGEX = %r{[^/]+}
+ PROJECT_ENDPOINT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze
+diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb
+index a42e312b5d..ccaab9229e 100644
+--- a/lib/gitlab/logger.rb
++++ b/lib/gitlab/logger.rb
+@@ -26,7 +26,7 @@ module Gitlab
+ end
+
+ def self.full_log_path
+- Rails.root.join("log", file_name)
++ File.join(ENV["GITLAB_LOG_PATH"], file_name)
+ end
+
+ def self.cache_key
+diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb
+index 7d7400bdab..cb25211d44 100644
+--- a/lib/gitlab/uploads_transfer.rb
++++ b/lib/gitlab/uploads_transfer.rb
+@@ -1,7 +1,7 @@
+ module Gitlab
+ class UploadsTransfer < ProjectTransfer
+ def root_dir
+- FileUploader.root
++ ENV['GITLAB_UPLOADS_PATH'] || FileUploader.root
+ end
+ end
+ end
+diff --git a/lib/system_check/app/log_writable_check.rb b/lib/system_check/app/log_writable_check.rb
+index 3e0c436d6e..28cefc5514 100644
+--- a/lib/system_check/app/log_writable_check.rb
++++ b/lib/system_check/app/log_writable_check.rb
+@@ -21,7 +21,7 @@ module SystemCheck
+ private
+
+ def log_path
+- Rails.root.join('log')
++ ENV["GITLAB_LOG_PATH"]
+ end
+ end
+ end
+diff --git a/lib/system_check/app/uploads_directory_exists_check.rb b/lib/system_check/app/uploads_directory_exists_check.rb
+index 7026d0ba07..c56e1f7ed9 100644
+--- a/lib/system_check/app/uploads_directory_exists_check.rb
++++ b/lib/system_check/app/uploads_directory_exists_check.rb
+@@ -4,12 +4,13 @@ module SystemCheck
+ set_name 'Uploads directory exists?'
+
+ def check?
+- File.directory?(Rails.root.join('public/uploads'))
++ File.directory?(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads'))
+ end
+
+ def show_error
++ uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')
+ try_fixing_it(
+- "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads"
++ "sudo -u #{gitlab_user} mkdir #{uploads_dir}"
+ )
+ for_more_information(
+ see_installation_guide_section 'GitLab'
+diff --git a/lib/system_check/app/uploads_path_permission_check.rb b/lib/system_check/app/uploads_path_permission_check.rb
+index 7df6c06025..bb447c16b2 100644
+--- a/lib/system_check/app/uploads_path_permission_check.rb
++++ b/lib/system_check/app/uploads_path_permission_check.rb
+@@ -25,7 +25,7 @@ module SystemCheck
+ private
+
+ def rails_uploads_path
+- Rails.root.join('public/uploads')
++ ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')
+ end
+
+ def uploads_fullpath
+diff --git a/lib/system_check/app/uploads_path_tmp_permission_check.rb b/lib/system_check/app/uploads_path_tmp_permission_check.rb
+index b276a81eac..070e3ebd81 100644
+--- a/lib/system_check/app/uploads_path_tmp_permission_check.rb
++++ b/lib/system_check/app/uploads_path_tmp_permission_check.rb
+@@ -33,7 +33,7 @@ module SystemCheck
+ end
+
+ def uploads_fullpath
+- File.realpath(Rails.root.join('public/uploads'))
++ File.realpath(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads'))
+ end
+ end
+ end
+--- a/lib/gitlab/authorized_keys.rb
++++ b/lib/gitlab/authorized_keys.rb
+@@ -157,7 +157,7 @@
+ raise KeyError, "Invalid ID: #{id.inspect}"
+ end
+
+- "#{File.join(Gitlab.config.gitlab_shell.path, 'bin', 'gitlab-shell')} #{id}"
++ "#{File.join('/run/current-system/sw/bin', 'gitlab-shell')} #{id}"
+ end
+
+ def strip(key)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake
new file mode 100644
index 000000000000..705b5830edfc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake
@@ -0,0 +1,43 @@
+# Taken from:
+# https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/
+
+# lib/tasks/reset_token.rake
+require_relative '../../app/models/concerns/token_authenticatable.rb'
+
+STDOUT.sync = true
+
+namespace :tokens do
+ desc "Reset all GitLab user auth tokens"
+ task reset_all: :environment do
+ reset_all_users_token(:reset_authentication_token!)
+ end
+
+ desc "Reset all GitLab email tokens"
+ task reset_all_email: :environment do
+ reset_all_users_token(:reset_incoming_email_token!)
+ end
+
+ def reset_all_users_token(token)
+ TmpUser.find_in_batches do |batch|
+ puts "Processing batch starting with user ID: #{batch.first.id}"
+
+ batch.each(&token)
+ end
+ end
+end
+
+class TmpUser < ActiveRecord::Base
+ include TokenAuthenticatable
+
+ self.table_name = 'users'
+
+ def reset_authentication_token!
+ write_new_token(:authentication_token)
+ save!(validate: false)
+ end
+
+ def reset_incoming_email_token!
+ write_new_token(:incoming_email_token)
+ save!(validate: false)
+ end
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
new file mode 100644
index 000000000000..d60fefe29dca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -0,0 +1,520 @@
+source 'https://rubygems.org'
+
+gem 'rails', '~> 6.0.3.1'
+
+gem 'bootsnap', '~> 1.4.6'
+
+# Improves copy-on-write performance for MRI
+gem 'nakayoshi_fork', '~> 0.0.4'
+
+# Responders respond_to and respond_with
+gem 'responders', '~> 3.0'
+
+gem 'sprockets', '~> 3.7.0'
+
+# Default values for AR models
+gem 'default_value_for', '~> 3.3.0'
+
+# Supported DBs
+gem 'pg', '~> 1.1'
+
+gem 'rugged', '~> 0.28'
+gem 'grape-path-helpers', '~> 1.5'
+
+gem 'faraday', '~> 1.0'
+gem 'marginalia', '~> 1.9.0'
+
+# Authentication libraries
+gem 'devise', '~> 4.7.2'
+# TODO: verify ARM compile issue on 3.1.13+ version (see https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18828)
+gem 'bcrypt', '3.1.12'
+gem 'doorkeeper', '~> 5.3.0'
+gem 'doorkeeper-openid_connect', '~> 1.7.4'
+gem 'omniauth', '~> 1.8'
+gem 'omniauth-auth0', '~> 2.0.0'
+gem 'omniauth-azure-oauth2', '~> 0.0.9'
+gem 'omniauth-cas3', '~> 1.1.4'
+gem 'omniauth-facebook', '~> 4.0.0'
+gem 'omniauth-github', '~> 1.4'
+gem 'omniauth-gitlab', '~> 1.0.2'
+gem 'omniauth-google-oauth2', '~> 0.6.0'
+gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos
+gem 'omniauth-oauth2-generic', '~> 0.2.2'
+gem 'omniauth-saml', '~> 1.10'
+gem 'omniauth-shibboleth', '~> 1.3.0'
+gem 'omniauth-twitter', '~> 1.4'
+gem 'omniauth_crowd', '~> 2.4.0'
+gem 'omniauth-authentiq', '~> 0.3.3'
+gem 'omniauth_openid_connect', '~> 0.3.5'
+gem 'omniauth-salesforce', '~> 1.0.5'
+gem 'omniauth-atlassian-oauth2', '~> 0.2.0'
+gem 'rack-oauth2', '~> 1.16.0'
+gem 'jwt', '~> 2.1.0'
+
+# Kerberos authentication. EE-only
+gem 'gssapi', group: :kerberos
+
+# Spam and anti-bot protection
+gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails'
+gem 'akismet', '~> 3.0'
+gem 'invisible_captcha', '~> 0.12.1'
+
+# Two-factor authentication
+gem 'devise-two-factor', '~> 3.1.0'
+gem 'rqrcode-rails3', '~> 0.1.7'
+gem 'attr_encrypted', '~> 3.1.0'
+gem 'u2f', '~> 0.2.1'
+
+# GitLab Pages
+gem 'validates_hostname', '~> 1.0.10'
+gem 'rubyzip', '~> 2.0.0', require: 'zip'
+# GitLab Pages letsencrypt support
+gem 'acme-client', '~> 2.0', '>= 2.0.6'
+
+# Browser detection
+gem 'browser', '~> 4.2'
+
+# GPG
+gem 'gpgme', '~> 2.0.19'
+
+# LDAP Auth
+# GitLab fork with several improvements to original library. For full list of changes
+# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
+gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap'
+gem 'net-ldap'
+
+# API
+# Locked at Grape v1.4.0 until https://github.com/ruby-grape/grape/pull/2088 is merged
+# Remove config/initializers/grape_patch.rb
+gem 'grape', '= 1.4.0'
+gem 'grape-entity', '~> 0.7.1'
+gem 'rack-cors', '~> 1.0.6', require: 'rack/cors'
+
+# GraphQL API
+gem 'graphql', '~> 1.11.4'
+# NOTE: graphiql-rails v1.5+ doesn't work: https://gitlab.com/gitlab-org/gitlab/issues/31771
+# TODO: remove app/views/graphiql/rails/editors/show.html.erb when https://github.com/rmosolgo/graphiql-rails/pull/71 is released:
+# https://gitlab.com/gitlab-org/gitlab/issues/31747
+gem 'graphiql-rails', '~> 1.4.10'
+gem 'apollo_upload_server', '~> 2.0.2'
+gem 'graphql-docs', '~> 1.6.0', group: [:development, :test]
+gem 'graphlient', '~> 0.4.0' # Used by BulkImport feature (group::import)
+
+gem 'hashie'
+# Disable strong_params so that Mash does not respond to :permitted?
+gem 'hashie-forbidden_attributes'
+
+# Pagination
+gem 'kaminari', '~> 1.0'
+
+# HAML
+gem 'hamlit', '~> 2.11.0'
+
+# Files attachments
+gem 'carrierwave', '~> 1.3'
+gem 'mini_magick', '~> 4.10.1'
+
+# for backups
+gem 'fog-aws', '~> 3.5'
+# Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
+# Also see config/initializers/fog_core_patch.rb.
+gem 'fog-core', '= 2.1.0'
+gem 'fog-google', '~> 1.11'
+gem 'fog-local', '~> 0.6'
+gem 'fog-openstack', '~> 1.0'
+gem 'fog-rackspace', '~> 0.1.1'
+gem 'fog-aliyun', '~> 0.3'
+gem 'gitlab-fog-azure-rm', '~> 1.0', require: false
+
+# for Google storage
+gem 'google-api-client', '~> 0.33'
+
+# for aws storage
+gem 'unf', '~> 0.1.4'
+
+# Seed data
+gem 'seed-fu', '~> 2.3.7'
+
+# Search
+gem 'elasticsearch-model', '~> 6.1'
+gem 'elasticsearch-rails', '~> 6.1', require: 'elasticsearch/rails/instrumentation'
+gem 'elasticsearch-api', '~> 6.8.2'
+gem 'aws-sdk-core', '~> 3'
+gem 'aws-sdk-cloudformation', '~> 1'
+gem 'aws-sdk-s3', '~> 1'
+gem 'faraday_middleware-aws-sigv4', '~>0.3.0'
+
+# Markdown and HTML processing
+gem 'html-pipeline', '~> 2.12'
+gem 'deckar01-task_list', '2.3.1'
+gem 'gitlab-markup', '~> 1.7.1'
+gem 'github-markup', '~> 1.7.0', require: 'github/markup'
+gem 'commonmarker', '~> 0.20'
+gem 'kramdown', '~> 2.3.0'
+gem 'RedCloth', '~> 4.3.2'
+gem 'rdoc', '~> 6.1.2'
+gem 'org-ruby', '~> 0.9.12'
+gem 'creole', '~> 0.5.0'
+gem 'wikicloth', '0.8.1'
+gem 'asciidoctor', '~> 2.0.10'
+gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
+gem 'asciidoctor-plantuml', '~> 0.0.12'
+gem 'rouge', '~> 3.25.0'
+gem 'truncato', '~> 0.7.11'
+gem 'bootstrap_form', '~> 4.2.0'
+gem 'nokogiri', '~> 1.10.9'
+gem 'escape_utils', '~> 1.1'
+
+# Calendar rendering
+gem 'icalendar'
+
+# Diffs
+gem 'diffy', '~> 3.3'
+gem 'diff_match_patch', '~> 0.1.0'
+
+# Application server
+gem 'rack', '~> 2.2.3'
+# https://github.com/sharpstone/rack-timeout/blob/master/README.md#rails-apps-manually
+gem 'rack-timeout', '~> 0.5.1', require: 'rack/timeout/base'
+
+group :unicorn do
+ gem 'unicorn', '~> 5.5'
+ gem 'unicorn-worker-killer', '~> 0.4.4'
+end
+
+group :puma do
+ gem 'gitlab-puma', '~> 4.3.3.gitlab.2', require: false
+ gem 'gitlab-puma_worker_killer', '~> 0.1.1.gitlab.1', require: false
+end
+
+# State machine
+gem 'state_machines-activerecord', '~> 0.6.0'
+
+# Issue tags
+gem 'acts-as-taggable-on', '~> 6.0'
+
+# Background jobs
+gem 'sidekiq', '~> 5.2.7'
+gem 'sidekiq-cron', '~> 1.0'
+gem 'redis-namespace', '~> 1.7.0'
+gem 'gitlab-sidekiq-fetcher', '0.5.2', require: 'sidekiq-reliable-fetch'
+
+# Cron Parser
+gem 'fugit', '~> 1.2.1'
+
+# HTTP requests
+gem 'httparty', '~> 0.16.4'
+
+# Colored output to console
+gem 'rainbow', '~> 3.0'
+
+# Progress bar
+gem 'ruby-progressbar'
+
+# GitLab settings
+gem 'settingslogic', '~> 2.0.9'
+
+# Linear-time regex library for untrusted regular expressions
+gem 're2', '~> 1.2.0'
+
+# Misc
+
+gem 'version_sorter', '~> 2.2.4'
+
+# Export Ruby Regex to Javascript
+gem 'js_regex', '~> 3.4'
+
+# User agent parsing
+gem 'device_detector'
+
+# Redis
+gem 'redis', '~> 4.0'
+gem 'connection_pool', '~> 2.0'
+
+# Redis session store
+gem 'redis-rails', '~> 5.0.2'
+
+# Discord integration
+gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
+
+# HipChat integration
+gem 'hipchat', '~> 1.5.0'
+
+# Jira integration
+gem 'jira-ruby', '~> 2.0.0'
+gem 'atlassian-jwt', '~> 0.2.0'
+
+# Flowdock integration
+gem 'flowdock', '~> 0.7'
+
+# Slack integration
+gem 'slack-messenger', '~> 2.3.4'
+
+# Hangouts Chat integration
+gem 'hangouts-chat', '~> 0.0.5'
+
+# Asana integration
+gem 'asana', '0.10.2'
+
+# FogBugz integration
+gem 'ruby-fogbugz', '~> 0.2.1'
+
+# Kubernetes integration
+gem 'kubeclient', '~> 4.9.1'
+
+# Sanitize user input
+gem 'sanitize', '~> 5.2.1'
+gem 'babosa', '~> 1.0.2'
+
+# Sanitizes SVG input
+gem 'loofah', '~> 2.2'
+
+# Working with license
+gem 'licensee', '~> 8.9'
+
+# Detect and convert string character encoding
+gem 'charlock_holmes', '~> 0.7.7'
+
+# Detect mime content type from content
+gem 'mimemagic', '~> 0.3.2'
+
+# Faster blank
+gem 'fast_blank'
+
+# Parse time & duration
+gem 'gitlab-chronic', '~> 0.10.5'
+gem 'gitlab_chronic_duration', '~> 0.10.6.2'
+
+gem 'rack-proxy', '~> 0.6.0'
+
+gem 'sassc-rails', '~> 2.1.0'
+gem 'terser', '1.0.2'
+
+gem 'addressable', '~> 2.7'
+gem 'font-awesome-rails', '~> 4.7'
+gem 'gemojione', '~> 3.3'
+gem 'gon', '~> 6.2'
+gem 'request_store', '~> 1.5'
+gem 'base32', '~> 0.3.0'
+
+gem "gitlab-license", "~> 1.0"
+
+# Protect against bruteforcing
+gem 'rack-attack', '~> 6.3.0'
+
+# Sentry integration
+gem 'sentry-raven', '~> 3.0'
+
+# PostgreSQL query parsing
+gem 'gitlab-pg_query', '~> 1.3', require: 'pg_query'
+
+gem 'premailer-rails', '~> 1.10.3'
+
+# LabKit: Tracing and Correlation
+gem 'gitlab-labkit', '0.13.1'
+
+# I18n
+gem 'ruby_parser', '~> 3.15', require: false
+gem 'rails-i18n', '~> 6.0'
+gem 'gettext_i18n_rails', '~> 1.8.0'
+gem 'gettext_i18n_rails_js', '~> 1.3'
+gem 'gettext', '~> 3.3', require: false, group: :development
+
+gem 'batch-loader', '~> 1.4.0'
+
+# Perf bar
+gem 'peek', '~> 1.1'
+
+# Snowplow events tracking
+gem 'snowplow-tracker', '~> 0.6.1'
+
+# Metrics
+group :metrics do
+ gem 'method_source', '~> 1.0', require: false
+
+ # Prometheus
+ gem 'prometheus-client-mmap', '~> 0.12.0'
+ gem 'raindrops', '~> 0.18'
+end
+
+group :development do
+ gem 'brakeman', '~> 4.2', require: false
+ gem 'danger', '~> 8.0.6', require: false
+
+ gem 'letter_opener_web', '~> 1.3.4'
+
+ # Better errors handler
+ gem 'better_errors', '~> 2.7.1'
+
+ # thin instead webrick
+ gem 'thin', '~> 1.7.0'
+end
+
+group :development, :test do
+ gem 'bullet', '~> 6.1.0'
+ gem 'pry-byebug', '~> 3.9.0', platform: :mri
+ gem 'pry-rails', '~> 0.3.9'
+
+ gem 'awesome_print', require: false
+
+ gem 'database_cleaner', '~> 1.7.0'
+ gem 'factory_bot_rails', '~> 5.1.0'
+ gem 'rspec-rails', '~> 4.0.0'
+
+ # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
+ gem 'minitest', '~> 5.11.0'
+
+ # Generate Fake data
+ gem 'ffaker', '~> 2.10'
+
+ gem 'spring', '~> 2.1.0'
+ gem 'spring-commands-rspec', '~> 1.0.4'
+
+ gem 'gitlab-styles', '~> 5.1.0', require: false
+
+ gem 'scss_lint', '~> 0.59.0', require: false
+ gem 'haml_lint', '~> 0.36.0', require: false
+ gem 'bundler-audit', '~> 0.6.1', require: false
+
+ gem 'benchmark-ips', '~> 2.3.0', require: false
+
+ gem 'knapsack', '~> 1.17'
+ gem 'crystalball', '~> 0.7.0', require: false
+
+ gem 'simple_po_parser', '~> 1.1.2', require: false
+
+ gem 'timecop', '~> 0.9.1'
+
+ gem 'png_quantizator', '~> 0.2.1', require: false
+
+ gem 'parallel', '~> 1.19', require: false
+
+ gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
+end
+
+group :development, :test, :coverage do
+ gem 'simplecov', '~> 0.18.5', require: false
+ gem 'simplecov-cobertura', '~> 1.3.1', require: false
+end
+
+# Gems required in omnibus-gitlab pipeline
+group :development, :test, :omnibus do
+ gem 'license_finder', '~> 6.0', require: false
+end
+
+group :test do
+ gem 'fuubar', '~> 2.2.0'
+ gem 'rspec-retry', '~> 0.6.1'
+ gem 'rspec_profiling', '~> 0.0.6'
+ gem 'rspec-parameterized', require: false
+
+ gem 'capybara', '~> 3.33.0'
+ gem 'capybara-screenshot', '~> 1.0.22'
+ gem 'selenium-webdriver', '~> 3.142'
+
+ gem 'shoulda-matchers', '~> 4.0.1', require: false
+ gem 'email_spec', '~> 2.2.0'
+ gem 'webmock', '~> 3.9.1'
+ gem 'rails-controller-testing'
+ gem 'concurrent-ruby', '~> 1.1'
+ gem 'test-prof', '~> 0.12.0'
+ gem 'rspec_junit_formatter'
+ gem 'guard-rspec'
+
+ # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
+ gem 'derailed_benchmarks', require: false
+end
+
+gem 'octokit', '~> 4.15'
+
+# https://gitlab.com/gitlab-org/gitlab/issues/207207
+gem 'gitlab-mail_room', '~> 0.0.7', require: 'mail_room'
+
+gem 'email_reply_trimmer', '~> 0.1'
+gem 'html2text'
+
+gem 'ruby-prof', '~> 1.3.0'
+gem 'stackprof', '~> 0.2.15', require: false
+gem 'rbtrace', '~> 0.4', require: false
+gem 'memory_profiler', '~> 0.9', require: false
+gem 'benchmark-memory', '~> 0.1', require: false
+gem 'activerecord-explain-analyze', '~> 0.1', require: false
+
+# OAuth
+gem 'oauth2', '~> 1.4'
+
+# Health check
+gem 'health_check', '~> 3.0'
+
+# System information
+gem 'vmstat', '~> 2.3.0'
+gem 'sys-filesystem', '~> 1.1.6'
+
+# NTP client
+gem 'net-ntp'
+
+# SSH host key support
+gem 'net-ssh', '~> 6.0'
+gem 'sshkey', '~> 2.0'
+
+# Required for ED25519 SSH host key support
+group :ed25519 do
+ gem 'ed25519', '~> 1.2'
+ gem 'bcrypt_pbkdf', '~> 1.0'
+end
+
+# Gitaly GRPC protocol definitions
+gem 'gitaly', '~> 13.5.0-rc2'
+
+gem 'grpc', '~> 1.30.2'
+
+gem 'google-protobuf', '~> 3.12'
+
+gem 'toml-rb', '~> 1.0.0'
+
+# Feature toggles
+gem 'flipper', '~> 0.17.1'
+gem 'flipper-active_record', '~> 0.17.1'
+gem 'flipper-active_support_cache_store', '~> 0.17.1'
+gem 'unleash', '~> 0.1.5'
+
+# Structured logging
+gem 'lograge', '~> 0.5'
+gem 'grape_logging', '~> 1.7'
+
+# DNS Lookup
+gem 'gitlab-net-dns', '~> 0.9.1'
+
+# Countries list
+gem 'countries', '~> 3.0'
+
+gem 'retriable', '~> 3.1.2'
+
+# LRU cache
+gem 'lru_redux'
+
+gem 'erubi', '~> 1.9.0'
+
+# Locked as long as quoted-printable encoding issues are not resolved
+# Monkey-patched in `config/initializers/mail_encoding_patch.rb`
+# See https://gitlab.com/gitlab-org/gitlab/issues/197386
+gem 'mail', '= 2.7.1'
+
+# File encryption
+gem 'lockbox', '~> 0.3.3'
+
+# Email validation
+gem 'valid_email', '~> 0.1'
+
+# JSON
+gem 'json', '~> 2.3.0'
+gem 'json-schema', '~> 2.8.0'
+gem 'json_schemer', '~> 0.2.12'
+gem 'oj', '~> 3.10.6'
+gem 'multi_json', '~> 1.14.1'
+gem 'yajl-ruby', '~> 1.4.1', require: 'yajl'
+
+gem 'webauthn', '~> 2.3'
+
+# IPAddress utilities
+gem 'ipaddress', '~> 0.8.3'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
new file mode 100644
index 000000000000..64179847dd8c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -0,0 +1,1527 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ RedCloth (4.3.2)
+ abstract_type (0.0.7)
+ acme-client (2.0.6)
+ faraday (>= 0.17, < 2.0.0)
+ actioncable (6.0.3.3)
+ actionpack (= 6.0.3.3)
+ nio4r (~> 2.0)
+ websocket-driver (>= 0.6.1)
+ actionmailbox (6.0.3.3)
+ actionpack (= 6.0.3.3)
+ activejob (= 6.0.3.3)
+ activerecord (= 6.0.3.3)
+ activestorage (= 6.0.3.3)
+ activesupport (= 6.0.3.3)
+ mail (>= 2.7.1)
+ actionmailer (6.0.3.3)
+ actionpack (= 6.0.3.3)
+ actionview (= 6.0.3.3)
+ activejob (= 6.0.3.3)
+ mail (~> 2.5, >= 2.5.4)
+ rails-dom-testing (~> 2.0)
+ actionpack (6.0.3.3)
+ actionview (= 6.0.3.3)
+ activesupport (= 6.0.3.3)
+ rack (~> 2.0, >= 2.0.8)
+ rack-test (>= 0.6.3)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
+ actiontext (6.0.3.3)
+ actionpack (= 6.0.3.3)
+ activerecord (= 6.0.3.3)
+ activestorage (= 6.0.3.3)
+ activesupport (= 6.0.3.3)
+ nokogiri (>= 1.8.5)
+ actionview (6.0.3.3)
+ activesupport (= 6.0.3.3)
+ builder (~> 3.1)
+ erubi (~> 1.4)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
+ activejob (6.0.3.3)
+ activesupport (= 6.0.3.3)
+ globalid (>= 0.3.6)
+ activemodel (6.0.3.3)
+ activesupport (= 6.0.3.3)
+ activerecord (6.0.3.3)
+ activemodel (= 6.0.3.3)
+ activesupport (= 6.0.3.3)
+ activerecord-explain-analyze (0.1.0)
+ activerecord (>= 4)
+ pg
+ activestorage (6.0.3.3)
+ actionpack (= 6.0.3.3)
+ activejob (= 6.0.3.3)
+ activerecord (= 6.0.3.3)
+ marcel (~> 0.3.1)
+ activesupport (6.0.3.3)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ zeitwerk (~> 2.2, >= 2.2.2)
+ acts-as-taggable-on (6.5.0)
+ activerecord (>= 5.0, < 6.1)
+ adamantium (0.2.0)
+ ice_nine (~> 0.11.0)
+ memoizable (~> 0.4.0)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ aes_key_wrap (1.1.0)
+ akismet (3.0.0)
+ android_key_attestation (0.3.0)
+ apollo_upload_server (2.0.2)
+ graphql (>= 1.8)
+ rails (>= 4.2)
+ asana (0.10.2)
+ faraday (~> 1.0)
+ faraday_middleware (~> 1.0)
+ faraday_middleware-multi_json (~> 0.0)
+ oauth2 (~> 1.4)
+ asciidoctor (2.0.10)
+ asciidoctor-include-ext (0.3.1)
+ asciidoctor (>= 1.5.6, < 3.0.0)
+ asciidoctor-plantuml (0.0.12)
+ asciidoctor (>= 1.5.6, < 3.0.0)
+ ast (2.4.1)
+ atlassian-jwt (0.2.0)
+ jwt (~> 2.1.0)
+ attr_encrypted (3.1.0)
+ encryptor (~> 3.0.0)
+ attr_required (1.0.1)
+ awesome_print (1.8.0)
+ awrence (1.1.1)
+ aws-eventstream (1.1.0)
+ aws-partitions (1.345.0)
+ aws-sdk-cloudformation (1.41.0)
+ aws-sdk-core (~> 3, >= 3.99.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-core (3.104.3)
+ aws-eventstream (~> 1, >= 1.0.2)
+ aws-partitions (~> 1, >= 1.239.0)
+ aws-sigv4 (~> 1.1)
+ jmespath (~> 1.0)
+ aws-sdk-kms (1.36.0)
+ aws-sdk-core (~> 3, >= 3.99.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-s3 (1.75.0)
+ aws-sdk-core (~> 3, >= 3.104.1)
+ aws-sdk-kms (~> 1)
+ aws-sigv4 (~> 1.1)
+ aws-sigv4 (1.2.1)
+ aws-eventstream (~> 1, >= 1.0.2)
+ azure-storage-blob (2.0.0)
+ azure-storage-common (~> 2.0)
+ nokogiri (~> 1.10.4)
+ azure-storage-common (2.0.1)
+ faraday (~> 1.0)
+ faraday_middleware (~> 1.0.0.rc1)
+ nokogiri (~> 1.10.4)
+ babosa (1.0.2)
+ base32 (0.3.2)
+ batch-loader (1.4.0)
+ bcrypt (3.1.12)
+ bcrypt_pbkdf (1.0.0)
+ benchmark-ips (2.3.0)
+ benchmark-memory (0.1.2)
+ memory_profiler (~> 0.9)
+ better_errors (2.7.1)
+ coderay (>= 1.0.0)
+ erubi (>= 1.0.0)
+ rack (>= 0.9.0)
+ bindata (2.4.8)
+ binding_ninja (0.2.3)
+ bootsnap (1.4.6)
+ msgpack (~> 1.0)
+ bootstrap_form (4.2.0)
+ actionpack (>= 5.0)
+ activemodel (>= 5.0)
+ brakeman (4.2.1)
+ browser (4.2.0)
+ builder (3.2.4)
+ bullet (6.1.0)
+ activesupport (>= 3.0.0)
+ uniform_notifier (~> 1.11)
+ bundler-audit (0.6.1)
+ bundler (>= 1.2.0, < 3)
+ thor (~> 0.18)
+ byebug (11.1.3)
+ capybara (3.33.0)
+ addressable
+ mini_mime (>= 0.1.3)
+ nokogiri (~> 1.8)
+ rack (>= 1.6.0)
+ rack-test (>= 0.6.3)
+ regexp_parser (~> 1.5)
+ xpath (~> 3.2)
+ capybara-screenshot (1.0.22)
+ capybara (>= 1.0, < 4)
+ launchy
+ carrierwave (1.3.1)
+ activemodel (>= 4.0.0)
+ activesupport (>= 4.0.0)
+ mime-types (>= 1.16)
+ cbor (0.5.9.6)
+ character_set (1.4.0)
+ charlock_holmes (0.7.7)
+ childprocess (3.0.0)
+ chunky_png (1.3.5)
+ citrus (3.0.2)
+ claide (1.0.3)
+ claide-plugins (0.9.2)
+ cork
+ nap
+ open4 (~> 1.3)
+ coderay (1.1.3)
+ colored2 (3.1.2)
+ commonmarker (0.20.1)
+ ruby-enum (~> 0.5)
+ concord (0.1.5)
+ adamantium (~> 0.2.0)
+ equalizer (~> 0.0.9)
+ concurrent-ruby (1.1.7)
+ connection_pool (2.2.2)
+ contracts (0.11.0)
+ cork (0.3.0)
+ colored2 (~> 3.1)
+ cose (1.0.0)
+ cbor (~> 0.5.9)
+ openssl-signature_algorithm (~> 0.4.0)
+ countries (3.0.0)
+ i18n_data (~> 0.8.0)
+ sixarm_ruby_unaccent (~> 1.1)
+ unicode_utils (~> 1.4)
+ crack (0.4.3)
+ safe_yaml (~> 1.0.0)
+ crass (1.0.6)
+ creole (0.5.0)
+ crystalball (0.7.0)
+ git
+ css_parser (1.7.0)
+ addressable
+ daemons (1.2.6)
+ danger (8.0.6)
+ claide (~> 1.0)
+ claide-plugins (>= 0.9.2)
+ colored2 (~> 3.1)
+ cork (~> 0.1)
+ faraday (>= 0.9.0, < 2.0)
+ faraday-http-cache (~> 2.0)
+ git (~> 1.7)
+ kramdown (~> 2.3)
+ kramdown-parser-gfm (~> 1.0)
+ no_proxy_fix
+ octokit (~> 4.7)
+ terminal-table (~> 1)
+ database_cleaner (1.7.0)
+ debugger-ruby_core_source (1.3.8)
+ deckar01-task_list (2.3.1)
+ html-pipeline
+ declarative (0.0.10)
+ declarative-option (0.1.0)
+ default_value_for (3.3.0)
+ activerecord (>= 3.2.0, < 6.1)
+ derailed_benchmarks (1.7.0)
+ benchmark-ips (~> 2)
+ get_process_mem (~> 0)
+ heapy (~> 0)
+ memory_profiler (~> 0)
+ mini_histogram (~> 0)
+ rack (>= 1)
+ rake (> 10, < 14)
+ ruby-statistics (>= 2.1)
+ thor (>= 0.19, < 2)
+ unicode_plot (>= 0.0.4, < 1.0.0)
+ device_detector (1.0.0)
+ devise (4.7.3)
+ bcrypt (~> 3.0)
+ orm_adapter (~> 0.1)
+ railties (>= 4.1.0)
+ responders
+ warden (~> 1.2.3)
+ devise-two-factor (3.1.0)
+ activesupport (< 6.1)
+ attr_encrypted (>= 1.3, < 4, != 2)
+ devise (~> 4.0)
+ railties (< 6.1)
+ rotp (~> 2.0)
+ diff-lcs (1.3)
+ diff_match_patch (0.1.0)
+ diffy (3.3.0)
+ discordrb-webhooks-blackst0ne (3.3.0)
+ rest-client (~> 2.0)
+ docile (1.3.2)
+ domain_name (0.5.20190701)
+ unf (>= 0.0.5, < 1.0.0)
+ doorkeeper (5.3.3)
+ railties (>= 5)
+ doorkeeper-openid_connect (1.7.4)
+ doorkeeper (>= 5.2, < 5.5)
+ json-jwt (>= 1.11.0)
+ dry-configurable (0.11.5)
+ concurrent-ruby (~> 1.0)
+ dry-core (~> 0.4, >= 0.4.7)
+ dry-equalizer (~> 0.2)
+ dry-container (0.7.2)
+ concurrent-ruby (~> 1.0)
+ dry-configurable (~> 0.1, >= 0.1.3)
+ dry-core (0.4.9)
+ concurrent-ruby (~> 1.0)
+ dry-equalizer (0.3.0)
+ dry-inflector (0.2.0)
+ dry-logic (1.0.6)
+ concurrent-ruby (~> 1.0)
+ dry-core (~> 0.2)
+ dry-equalizer (~> 0.2)
+ dry-types (1.4.0)
+ concurrent-ruby (~> 1.0)
+ dry-container (~> 0.3)
+ dry-core (~> 0.4, >= 0.4.4)
+ dry-equalizer (~> 0.3)
+ dry-inflector (~> 0.1, >= 0.1.2)
+ dry-logic (~> 1.0, >= 1.0.2)
+ ecma-re-validator (0.2.1)
+ regexp_parser (~> 1.2)
+ ed25519 (1.2.4)
+ elasticsearch (6.8.2)
+ elasticsearch-api (= 6.8.2)
+ elasticsearch-transport (= 6.8.2)
+ elasticsearch-api (6.8.2)
+ multi_json
+ elasticsearch-model (6.1.1)
+ activesupport (> 3)
+ elasticsearch (~> 6)
+ hashie
+ elasticsearch-rails (6.1.1)
+ elasticsearch-transport (6.8.2)
+ faraday (~> 1)
+ multi_json
+ email_reply_trimmer (0.1.6)
+ email_spec (2.2.0)
+ htmlentities (~> 4.3.3)
+ launchy (~> 2.1)
+ mail (~> 2.7)
+ encryptor (3.0.0)
+ enumerable-statistics (2.0.1)
+ equalizer (0.0.11)
+ erubi (1.9.0)
+ escape_utils (1.2.1)
+ et-orbi (1.2.1)
+ tzinfo
+ eventmachine (1.2.7)
+ excon (0.71.1)
+ execjs (2.7.0)
+ expression_parser (0.9.0)
+ extended-markdown-filter (0.6.0)
+ html-pipeline (~> 2.0)
+ factory_bot (5.1.0)
+ activesupport (>= 4.2.0)
+ factory_bot_rails (5.1.0)
+ factory_bot (~> 5.1.0)
+ railties (>= 4.2.0)
+ faraday (1.0.1)
+ multipart-post (>= 1.2, < 3)
+ faraday-cookie_jar (0.0.7)
+ faraday (>= 0.8.0)
+ http-cookie (~> 1.0.0)
+ faraday-http-cache (2.2.0)
+ faraday (>= 0.8)
+ faraday_middleware (1.0.0)
+ faraday (~> 1.0)
+ faraday_middleware-aws-sigv4 (0.3.0)
+ aws-sigv4 (~> 1.0)
+ faraday (>= 0.15)
+ faraday_middleware-multi_json (0.0.6)
+ faraday_middleware
+ multi_json
+ fast_blank (1.0.0)
+ fast_gettext (1.6.0)
+ ffaker (2.10.0)
+ ffi (1.13.1)
+ ffi-compiler (1.0.1)
+ ffi (>= 1.0.0)
+ rake
+ flipper (0.17.1)
+ flipper-active_record (0.17.1)
+ activerecord (>= 4.2, < 7)
+ flipper (~> 0.17.1)
+ flipper-active_support_cache_store (0.17.1)
+ activesupport (>= 4.2, < 7)
+ flipper (~> 0.17.1)
+ flowdock (0.7.1)
+ httparty (~> 0.7)
+ multi_json
+ fog-aliyun (0.3.3)
+ fog-core
+ fog-json
+ ipaddress (~> 0.8)
+ xml-simple (~> 1.1)
+ fog-aws (3.5.2)
+ fog-core (~> 2.1)
+ fog-json (~> 1.1)
+ fog-xml (~> 0.1)
+ ipaddress (~> 0.8)
+ fog-core (2.1.0)
+ builder
+ excon (~> 0.58)
+ formatador (~> 0.2)
+ mime-types
+ fog-google (1.11.0)
+ fog-core (<= 2.1.0)
+ fog-json (~> 1.2)
+ fog-xml (~> 0.1.0)
+ google-api-client (>= 0.32, < 0.34)
+ google-cloud-env (~> 1.2)
+ fog-json (1.2.0)
+ fog-core
+ multi_json (~> 1.10)
+ fog-local (0.6.0)
+ fog-core (>= 1.27, < 3.0)
+ fog-openstack (1.0.8)
+ fog-core (~> 2.1)
+ fog-json (>= 1.0)
+ ipaddress (>= 0.8)
+ fog-rackspace (0.1.1)
+ fog-core (>= 1.35)
+ fog-json (>= 1.0)
+ fog-xml (>= 0.1)
+ ipaddress (>= 0.8)
+ fog-xml (0.1.3)
+ fog-core
+ nokogiri (>= 1.5.11, < 2.0.0)
+ font-awesome-rails (4.7.0.5)
+ railties (>= 3.2, < 6.1)
+ formatador (0.2.5)
+ fugit (1.2.1)
+ et-orbi (~> 1.1, >= 1.1.8)
+ raabro (~> 1.1)
+ fuubar (2.2.0)
+ rspec-core (~> 3.0)
+ ruby-progressbar (~> 1.4)
+ gemoji (3.0.1)
+ gemojione (3.3.0)
+ json
+ get_process_mem (0.2.5)
+ ffi (~> 1.0)
+ gettext (3.3.6)
+ locale (>= 2.0.5)
+ text (>= 1.3.0)
+ gettext_i18n_rails (1.8.0)
+ fast_gettext (>= 0.9.0)
+ gettext_i18n_rails_js (1.3.0)
+ gettext (>= 3.0.2)
+ gettext_i18n_rails (>= 0.7.1)
+ po_to_json (>= 1.0.0)
+ rails (>= 3.2.0)
+ git (1.7.0)
+ rchardet (~> 1.8)
+ gitaly (13.5.0.pre.rc2)
+ grpc (~> 1.0)
+ github-markup (1.7.0)
+ gitlab-chronic (0.10.5)
+ numerizer (~> 0.2)
+ gitlab-fog-azure-rm (1.0.0)
+ azure-storage-blob (~> 2.0)
+ azure-storage-common (~> 2.0)
+ fog-core (= 2.1.0)
+ fog-json (~> 1.2.0)
+ mime-types
+ ms_rest_azure (~> 0.12.0)
+ gitlab-labkit (0.13.1)
+ actionpack (>= 5.0.0, < 6.1.0)
+ activesupport (>= 5.0.0, < 6.1.0)
+ grpc (~> 1.19)
+ jaeger-client (~> 1.1)
+ opentracing (~> 0.4)
+ redis (> 3.0.0, < 5.0.0)
+ gitlab-license (1.0.0)
+ gitlab-mail_room (0.0.7)
+ gitlab-markup (1.7.1)
+ gitlab-net-dns (0.9.1)
+ gitlab-pg_query (1.3.0)
+ gitlab-puma (4.3.5.gitlab.3)
+ nio4r (~> 2.0)
+ gitlab-puma_worker_killer (0.1.1.gitlab.1)
+ get_process_mem (~> 0.2)
+ gitlab-puma (>= 2.7, < 5)
+ gitlab-sidekiq-fetcher (0.5.2)
+ sidekiq (~> 5)
+ gitlab-styles (5.1.0)
+ rubocop (~> 0.89.1)
+ rubocop-gitlab-security (~> 0.1.0)
+ rubocop-performance (~> 1.8.1)
+ rubocop-rails (~> 2.8)
+ rubocop-rspec (~> 1.44)
+ gitlab_chronic_duration (0.10.6.2)
+ numerizer (~> 0.2)
+ gitlab_omniauth-ldap (2.1.1)
+ net-ldap (~> 0.16)
+ omniauth (~> 1.3)
+ pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
+ rubyntlm (~> 0.5)
+ globalid (0.4.2)
+ activesupport (>= 4.2.0)
+ gon (6.2.0)
+ actionpack (>= 3.0)
+ multi_json
+ request_store (>= 1.0)
+ google-api-client (0.33.2)
+ 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)
+ google-cloud-env (1.4.0)
+ faraday (>= 0.17.3, < 2.0)
+ google-protobuf (3.12.4)
+ googleapis-common-protos-types (1.0.5)
+ google-protobuf (~> 3.11)
+ googleauth (0.12.0)
+ faraday (>= 0.17.3, < 2.0)
+ jwt (>= 1.4, < 3.0)
+ memoist (~> 0.16)
+ multi_json (~> 1.11)
+ os (>= 0.9, < 2.0)
+ signet (~> 0.14)
+ gpgme (2.0.20)
+ mini_portile2 (~> 2.3)
+ grape (1.4.0)
+ activesupport
+ builder
+ dry-types (>= 1.1)
+ mustermann-grape (~> 1.0.0)
+ rack (>= 1.3.0)
+ rack-accept
+ grape-entity (0.7.1)
+ activesupport (>= 4.0)
+ multi_json (>= 1.3.2)
+ grape-path-helpers (1.5.0)
+ activesupport
+ grape (~> 1.3)
+ rake (> 12)
+ grape_logging (1.8.3)
+ grape
+ rack
+ graphiql-rails (1.4.10)
+ railties
+ sprockets-rails
+ graphlient (0.4.0)
+ faraday (>= 1.0)
+ faraday_middleware
+ graphql-client
+ graphql (1.11.4)
+ graphql-client (0.16.0)
+ activesupport (>= 3.0)
+ graphql (~> 1.8)
+ graphql-docs (1.6.0)
+ commonmarker (~> 0.16)
+ escape_utils (~> 1.2)
+ extended-markdown-filter (~> 0.4)
+ gemoji (~> 3.0)
+ graphql (~> 1.6)
+ html-pipeline (~> 2.8)
+ sass (~> 3.4)
+ grpc (1.30.2)
+ google-protobuf (~> 3.12)
+ googleapis-common-protos-types (~> 1.0)
+ gssapi (1.2.0)
+ ffi (>= 1.0.1)
+ guard (2.16.2)
+ formatador (>= 0.2.4)
+ listen (>= 2.7, < 4.0)
+ lumberjack (>= 1.0.12, < 2.0)
+ nenv (~> 0.1)
+ notiffany (~> 0.0)
+ pry (>= 0.9.12)
+ shellany (~> 0.0)
+ thor (>= 0.18.1)
+ guard-compat (1.2.1)
+ guard-rspec (4.7.3)
+ guard (~> 2.1)
+ guard-compat (~> 1.1)
+ rspec (>= 2.99.0, < 4.0)
+ haml (5.1.2)
+ temple (>= 0.8.0)
+ tilt
+ haml_lint (0.36.0)
+ haml (>= 4.0, < 5.3)
+ parallel (~> 1.10)
+ rainbow
+ rubocop (>= 0.50.0)
+ sysexits (~> 1.1)
+ hamlit (2.11.0)
+ temple (>= 0.8.2)
+ thor
+ tilt
+ hana (1.3.6)
+ hangouts-chat (0.0.5)
+ hashdiff (1.0.1)
+ hashie (3.6.0)
+ hashie-forbidden_attributes (0.1.1)
+ hashie (>= 3.0)
+ health_check (3.0.0)
+ railties (>= 5.0)
+ heapy (0.1.4)
+ hipchat (1.5.2)
+ httparty
+ mimemagic
+ html-pipeline (2.12.2)
+ activesupport (>= 2)
+ nokogiri (>= 1.4)
+ html2text (0.2.0)
+ nokogiri (~> 1.6)
+ htmlentities (4.3.4)
+ http (4.4.1)
+ addressable (~> 2.3)
+ http-cookie (~> 1.0)
+ http-form_data (~> 2.2)
+ http-parser (~> 1.2.0)
+ http-accept (1.7.0)
+ http-cookie (1.0.3)
+ domain_name (~> 0.5)
+ http-form_data (2.3.0)
+ http-parser (1.2.1)
+ ffi-compiler (>= 1.0, < 2.0)
+ httparty (0.16.4)
+ mime-types (~> 3.0)
+ multi_xml (>= 0.5.2)
+ httpclient (2.8.3)
+ i18n (1.8.5)
+ concurrent-ruby (~> 1.0)
+ i18n_data (0.8.0)
+ icalendar (2.4.1)
+ ice_nine (0.11.2)
+ invisible_captcha (0.12.1)
+ rails (>= 3.2.0)
+ ipaddress (0.8.3)
+ jaeger-client (1.1.0)
+ opentracing (~> 0.3)
+ thrift
+ jira-ruby (2.0.0)
+ activesupport
+ atlassian-jwt
+ multipart-post
+ oauth (~> 0.5, >= 0.5.0)
+ jmespath (1.4.0)
+ js_regex (3.4.0)
+ character_set (~> 1.4)
+ regexp_parser (~> 1.5)
+ regexp_property_values (~> 0.3)
+ json (2.3.0)
+ json-jwt (1.13.0)
+ activesupport (>= 4.2)
+ aes_key_wrap
+ bindata
+ json-schema (2.8.0)
+ addressable (>= 2.4)
+ json_schemer (0.2.12)
+ ecma-re-validator (~> 0.2)
+ hana (~> 1.3)
+ regexp_parser (~> 1.5)
+ uri_template (~> 0.7)
+ jsonpath (1.0.5)
+ multi_json
+ to_regexp (~> 0.2.1)
+ jwt (2.1.0)
+ kaminari (1.2.1)
+ activesupport (>= 4.1.0)
+ kaminari-actionview (= 1.2.1)
+ kaminari-activerecord (= 1.2.1)
+ kaminari-core (= 1.2.1)
+ kaminari-actionview (1.2.1)
+ actionview
+ kaminari-core (= 1.2.1)
+ kaminari-activerecord (1.2.1)
+ activerecord
+ kaminari-core (= 1.2.1)
+ kaminari-core (1.2.1)
+ kgio (2.11.3)
+ knapsack (1.17.0)
+ rake
+ kramdown (2.3.0)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ kubeclient (4.9.1)
+ http (>= 3.0, < 5.0)
+ jsonpath (~> 1.0)
+ recursive-open-struct (~> 1.1, >= 1.1.1)
+ rest-client (~> 2.0)
+ launchy (2.4.3)
+ addressable (~> 2.3)
+ letter_opener (1.7.0)
+ launchy (~> 2.2)
+ letter_opener_web (1.3.4)
+ actionmailer (>= 3.2)
+ letter_opener (~> 1.0)
+ railties (>= 3.2)
+ license_finder (6.0.0)
+ bundler
+ rubyzip (>= 1, < 3)
+ thor
+ toml (= 0.2.0)
+ with_env (= 1.1.0)
+ xml-simple
+ licensee (8.9.2)
+ rugged (~> 0.24)
+ listen (3.2.1)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ locale (2.1.3)
+ lockbox (0.3.3)
+ lograge (0.11.2)
+ actionpack (>= 4)
+ activesupport (>= 4)
+ railties (>= 4)
+ request_store (~> 1.0)
+ loofah (2.7.0)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.5.9)
+ lru_redux (1.1.0)
+ lumberjack (1.2.7)
+ mail (2.7.1)
+ mini_mime (>= 0.1.1)
+ marcel (0.3.3)
+ mimemagic (~> 0.3.2)
+ marginalia (1.9.0)
+ actionpack (>= 2.3)
+ activerecord (>= 2.3)
+ memoist (0.16.0)
+ memoizable (0.4.2)
+ thread_safe (~> 0.3, >= 0.3.1)
+ memory_profiler (0.9.14)
+ method_source (1.0.0)
+ mime-types (3.3.1)
+ mime-types-data (~> 3.2015)
+ mime-types-data (3.2020.0512)
+ mimemagic (0.3.5)
+ mini_histogram (0.1.3)
+ mini_magick (4.10.1)
+ mini_mime (1.0.2)
+ mini_portile2 (2.4.0)
+ minitest (5.11.3)
+ ms_rest (0.7.6)
+ concurrent-ruby (~> 1.0)
+ faraday (>= 0.9, < 2.0.0)
+ timeliness (~> 0.3.10)
+ ms_rest_azure (0.12.0)
+ concurrent-ruby (~> 1.0)
+ faraday (>= 0.9, < 2.0.0)
+ faraday-cookie_jar (~> 0.0.6)
+ ms_rest (~> 0.7.6)
+ msgpack (1.3.3)
+ multi_json (1.14.1)
+ multi_xml (0.6.0)
+ multipart-post (2.1.1)
+ murmurhash3 (0.1.6)
+ mustermann (1.1.1)
+ ruby2_keywords (~> 0.0.1)
+ mustermann-grape (1.0.1)
+ mustermann (>= 1.0.0)
+ nakayoshi_fork (0.0.4)
+ nap (1.1.0)
+ nenv (0.3.0)
+ net-ldap (0.16.2)
+ net-ntp (2.1.3)
+ net-ssh (6.0.0)
+ netrc (0.11.0)
+ nio4r (2.5.4)
+ no_proxy_fix (0.1.2)
+ nokogiri (1.10.10)
+ mini_portile2 (~> 2.4.0)
+ nokogumbo (2.0.2)
+ nokogiri (~> 1.8, >= 1.8.4)
+ notiffany (0.1.3)
+ nenv (~> 0.1)
+ shellany (~> 0.0)
+ numerizer (0.2.0)
+ oauth (0.5.4)
+ oauth2 (1.4.4)
+ faraday (>= 0.8, < 2.0)
+ jwt (>= 1.0, < 3.0)
+ multi_json (~> 1.3)
+ multi_xml (~> 0.5)
+ rack (>= 1.2, < 3)
+ octokit (4.15.0)
+ faraday (>= 0.9)
+ sawyer (~> 0.8.0, >= 0.5.3)
+ oj (3.10.6)
+ omniauth (1.9.0)
+ hashie (>= 3.4.6, < 3.7.0)
+ rack (>= 1.6.2, < 3)
+ omniauth-atlassian-oauth2 (0.2.0)
+ omniauth (>= 1.1.1)
+ omniauth-oauth2 (>= 1.5)
+ omniauth-auth0 (2.0.0)
+ omniauth-oauth2 (~> 1.4)
+ omniauth-authentiq (0.3.3)
+ jwt (>= 1.5)
+ omniauth-oauth2 (>= 1.5)
+ omniauth-azure-oauth2 (0.0.10)
+ jwt (>= 1.0, < 3.0)
+ omniauth (~> 1.0)
+ omniauth-oauth2 (~> 1.4)
+ omniauth-cas3 (1.1.4)
+ addressable (~> 2.3)
+ nokogiri (~> 1.7, >= 1.7.1)
+ omniauth (~> 1.2)
+ omniauth-facebook (4.0.0)
+ omniauth-oauth2 (~> 1.2)
+ omniauth-github (1.4.0)
+ omniauth (~> 1.5)
+ omniauth-oauth2 (>= 1.4.0, < 2.0)
+ omniauth-gitlab (1.0.3)
+ omniauth (~> 1.0)
+ omniauth-oauth2 (~> 1.0)
+ omniauth-google-oauth2 (0.6.0)
+ jwt (>= 2.0)
+ omniauth (>= 1.1.1)
+ omniauth-oauth2 (>= 1.5)
+ omniauth-kerberos (0.3.0)
+ omniauth-multipassword
+ timfel-krb5-auth (~> 0.8)
+ omniauth-multipassword (0.4.2)
+ omniauth (~> 1.0)
+ omniauth-oauth (1.1.0)
+ oauth
+ omniauth (~> 1.0)
+ omniauth-oauth2 (1.6.0)
+ oauth2 (~> 1.1)
+ omniauth (~> 1.9)
+ omniauth-oauth2-generic (0.2.2)
+ omniauth-oauth2 (~> 1.0)
+ omniauth-salesforce (1.0.5)
+ omniauth (~> 1.0)
+ omniauth-oauth2 (~> 1.0)
+ omniauth-saml (1.10.0)
+ omniauth (~> 1.3, >= 1.3.2)
+ ruby-saml (~> 1.7)
+ omniauth-shibboleth (1.3.0)
+ omniauth (>= 1.0.0)
+ omniauth-twitter (1.4.0)
+ omniauth-oauth (~> 1.1)
+ rack
+ omniauth_crowd (2.4.0)
+ activesupport
+ nokogiri (>= 1.4.4)
+ omniauth (~> 1.0)
+ omniauth_openid_connect (0.3.5)
+ addressable (~> 2.5)
+ omniauth (~> 1.9)
+ openid_connect (~> 1.1)
+ open4 (1.3.4)
+ openid_connect (1.1.8)
+ activemodel
+ attr_required (>= 1.0.0)
+ json-jwt (>= 1.5.0)
+ rack-oauth2 (>= 1.6.1)
+ swd (>= 1.0.0)
+ tzinfo
+ validate_email
+ validate_url
+ webfinger (>= 1.0.1)
+ openssl (2.2.0)
+ openssl-signature_algorithm (0.4.0)
+ opentracing (0.5.0)
+ optimist (3.0.1)
+ org-ruby (0.9.12)
+ rubypants (~> 0.2)
+ orm_adapter (0.5.0)
+ os (1.0.0)
+ parallel (1.19.2)
+ parser (2.7.2.0)
+ ast (~> 2.4.1)
+ parslet (1.8.2)
+ peek (1.1.0)
+ railties (>= 4.0.0)
+ pg (1.2.3)
+ png_quantizator (0.2.1)
+ po_to_json (1.0.1)
+ json (>= 1.6.0)
+ premailer (1.11.1)
+ addressable
+ css_parser (>= 1.6.0)
+ htmlentities (>= 4.0.0)
+ premailer-rails (1.10.3)
+ actionmailer (>= 3)
+ premailer (~> 1.7, >= 1.7.9)
+ proc_to_ast (0.1.0)
+ coderay
+ parser
+ unparser
+ procto (0.0.3)
+ prometheus-client-mmap (0.12.0)
+ pry (0.13.1)
+ coderay (~> 1.1)
+ method_source (~> 1.0)
+ pry-byebug (3.9.0)
+ byebug (~> 11.0)
+ pry (~> 0.13.0)
+ pry-rails (0.3.9)
+ pry (>= 0.10.4)
+ public_suffix (4.0.6)
+ pyu-ruby-sasl (0.0.3.3)
+ raabro (1.1.6)
+ rack (2.2.3)
+ rack-accept (0.4.5)
+ rack (>= 0.4)
+ rack-attack (6.3.0)
+ rack (>= 1.0, < 3)
+ rack-cors (1.0.6)
+ rack (>= 1.6.0)
+ rack-oauth2 (1.16.0)
+ activesupport
+ attr_required
+ httpclient
+ json-jwt (>= 1.11.0)
+ rack (>= 2.1.0)
+ rack-protection (2.0.5)
+ rack
+ rack-proxy (0.6.0)
+ rack
+ rack-test (1.1.0)
+ rack (>= 1.0, < 3)
+ rack-timeout (0.5.2)
+ rails (6.0.3.3)
+ actioncable (= 6.0.3.3)
+ actionmailbox (= 6.0.3.3)
+ actionmailer (= 6.0.3.3)
+ actionpack (= 6.0.3.3)
+ actiontext (= 6.0.3.3)
+ actionview (= 6.0.3.3)
+ activejob (= 6.0.3.3)
+ activemodel (= 6.0.3.3)
+ activerecord (= 6.0.3.3)
+ activestorage (= 6.0.3.3)
+ activesupport (= 6.0.3.3)
+ bundler (>= 1.3.0)
+ railties (= 6.0.3.3)
+ sprockets-rails (>= 2.0.0)
+ rails-controller-testing (1.0.5)
+ actionpack (>= 5.0.1.rc1)
+ actionview (>= 5.0.1.rc1)
+ activesupport (>= 5.0.1.rc1)
+ rails-dom-testing (2.0.3)
+ activesupport (>= 4.2.0)
+ nokogiri (>= 1.6)
+ rails-html-sanitizer (1.3.0)
+ loofah (~> 2.3)
+ rails-i18n (6.0.0)
+ i18n (>= 0.7, < 2)
+ railties (>= 6.0.0, < 7)
+ railties (6.0.3.3)
+ actionpack (= 6.0.3.3)
+ activesupport (= 6.0.3.3)
+ method_source
+ rake (>= 0.8.7)
+ thor (>= 0.20.3, < 2.0)
+ rainbow (3.0.0)
+ raindrops (0.19.1)
+ rake (13.0.1)
+ rb-fsevent (0.10.4)
+ rb-inotify (0.10.1)
+ ffi (~> 1.0)
+ rblineprof (0.3.6)
+ debugger-ruby_core_source (~> 1.3)
+ rbtrace (0.4.14)
+ ffi (>= 1.0.6)
+ msgpack (>= 0.4.3)
+ optimist (>= 3.0.0)
+ rchardet (1.8.0)
+ rdoc (6.1.2)
+ re2 (1.2.0)
+ recaptcha (4.13.1)
+ json
+ recursive-open-struct (1.1.2)
+ redis (4.1.3)
+ redis-actionpack (5.2.0)
+ actionpack (>= 5, < 7)
+ redis-rack (>= 2.1.0, < 3)
+ redis-store (>= 1.1.0, < 2)
+ redis-activesupport (5.2.0)
+ activesupport (>= 3, < 7)
+ redis-store (>= 1.3, < 2)
+ redis-namespace (1.7.0)
+ redis (>= 3.0.4)
+ redis-rack (2.1.2)
+ rack (>= 2.0.8, < 3)
+ redis-store (>= 1.2, < 2)
+ redis-rails (5.0.2)
+ redis-actionpack (>= 5.0, < 6)
+ redis-activesupport (>= 5.0, < 6)
+ redis-store (>= 1.2, < 2)
+ redis-store (1.8.1)
+ redis (>= 4, < 5)
+ regexp_parser (1.8.2)
+ regexp_property_values (0.3.5)
+ representable (3.0.4)
+ declarative (< 0.1.0)
+ declarative-option (< 0.2.0)
+ uber (< 0.2.0)
+ request_store (1.5.0)
+ rack (>= 1.4)
+ responders (3.0.0)
+ actionpack (>= 5.0)
+ railties (>= 5.0)
+ rest-client (2.1.0)
+ http-accept (>= 1.7.0, < 2.0)
+ http-cookie (>= 1.0.2, < 2.0)
+ mime-types (>= 1.16, < 4.0)
+ netrc (~> 0.8)
+ retriable (3.1.2)
+ rexml (3.2.4)
+ rinku (2.0.0)
+ rotp (2.1.2)
+ rouge (3.25.0)
+ rqrcode (0.7.0)
+ chunky_png
+ rqrcode-rails3 (0.1.7)
+ rqrcode (>= 0.4.2)
+ 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.1)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.9.0)
+ rspec-mocks (3.9.1)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.9.0)
+ rspec-parameterized (0.4.2)
+ binding_ninja (>= 0.2.3)
+ parser
+ proc_to_ast
+ rspec (>= 2.13, < 4)
+ unparser
+ rspec-rails (4.0.0)
+ actionpack (>= 4.2)
+ activesupport (>= 4.2)
+ railties (>= 4.2)
+ rspec-core (~> 3.9)
+ rspec-expectations (~> 3.9)
+ rspec-mocks (~> 3.9)
+ rspec-support (~> 3.9)
+ rspec-retry (0.6.1)
+ rspec-core (> 3.3)
+ rspec-support (3.9.2)
+ rspec_junit_formatter (0.4.1)
+ rspec-core (>= 2, < 4, != 2.12.0)
+ rspec_profiling (0.0.6)
+ activerecord
+ pg
+ rails
+ sqlite3
+ rubocop (0.89.1)
+ parallel (~> 1.10)
+ parser (>= 2.7.1.1)
+ rainbow (>= 2.2.2, < 4.0)
+ regexp_parser (>= 1.7)
+ rexml
+ rubocop-ast (>= 0.3.0, < 1.0)
+ ruby-progressbar (~> 1.7)
+ unicode-display_width (>= 1.4.0, < 2.0)
+ rubocop-ast (0.8.0)
+ parser (>= 2.7.1.5)
+ rubocop-gitlab-security (0.1.1)
+ rubocop (>= 0.51)
+ rubocop-performance (1.8.1)
+ rubocop (>= 0.87.0)
+ rubocop-ast (>= 0.4.0)
+ rubocop-rails (2.8.1)
+ activesupport (>= 4.2.0)
+ rack (>= 1.1)
+ rubocop (>= 0.87.0)
+ rubocop-rspec (1.44.1)
+ rubocop (~> 0.87)
+ rubocop-ast (>= 0.7.1)
+ ruby-enum (0.7.2)
+ i18n
+ ruby-fogbugz (0.2.1)
+ crack (~> 0.4)
+ ruby-prof (1.3.1)
+ ruby-progressbar (1.10.1)
+ ruby-saml (1.7.2)
+ nokogiri (>= 1.5.10)
+ ruby-statistics (2.1.2)
+ ruby2_keywords (0.0.2)
+ ruby_parser (3.15.0)
+ sexp_processor (~> 4.9)
+ rubyntlm (0.6.2)
+ rubypants (0.2.0)
+ rubyzip (2.0.0)
+ rugged (0.28.4.1)
+ safe_yaml (1.0.4)
+ safety_net_attestation (0.4.0)
+ jwt (~> 2.0)
+ sanitize (5.2.1)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.8.0)
+ nokogumbo (~> 2.0)
+ sass (3.5.5)
+ sass-listen (~> 4.0.0)
+ sass-listen (4.0.0)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ sassc (2.0.1)
+ ffi (~> 1.9)
+ rake
+ sassc-rails (2.1.0)
+ railties (>= 4.0.0)
+ sassc (>= 2.0)
+ sprockets (> 3.0)
+ sprockets-rails
+ tilt
+ sawyer (0.8.2)
+ addressable (>= 2.3.5)
+ faraday (> 0.8, < 2.0)
+ scss_lint (0.59.0)
+ sass (~> 3.5, >= 3.5.5)
+ securecompare (1.0.0)
+ seed-fu (2.3.7)
+ activerecord (>= 3.1)
+ activesupport (>= 3.1)
+ selenium-webdriver (3.142.7)
+ childprocess (>= 0.5, < 4.0)
+ rubyzip (>= 1.2.2)
+ sentry-raven (3.0.4)
+ faraday (>= 1.0)
+ settingslogic (2.0.9)
+ sexp_processor (4.15.1)
+ shellany (0.0.1)
+ shoulda-matchers (4.0.1)
+ activesupport (>= 4.2.0)
+ sidekiq (5.2.9)
+ connection_pool (~> 2.2, >= 2.2.2)
+ rack (~> 2.0)
+ rack-protection (>= 1.5.0)
+ redis (>= 3.3.5, < 4.2)
+ sidekiq-cron (1.0.4)
+ fugit (~> 1.1)
+ sidekiq (>= 4.2.1)
+ signet (0.14.0)
+ addressable (~> 2.3)
+ faraday (>= 0.17.3, < 2.0)
+ jwt (>= 1.5, < 3.0)
+ multi_json (~> 1.10)
+ simple_po_parser (1.1.2)
+ simplecov (0.18.5)
+ docile (~> 1.1)
+ simplecov-html (~> 0.11)
+ simplecov-cobertura (1.3.1)
+ simplecov (~> 0.8)
+ simplecov-html (0.12.2)
+ sixarm_ruby_unaccent (1.2.0)
+ slack-messenger (2.3.4)
+ snowplow-tracker (0.6.1)
+ contracts (~> 0.7, <= 0.11)
+ spring (2.1.1)
+ spring-commands-rspec (1.0.4)
+ spring (>= 0.9.1)
+ sprockets (3.7.2)
+ concurrent-ruby (~> 1.0)
+ rack (> 1, < 3)
+ sprockets-rails (3.2.2)
+ actionpack (>= 4.0)
+ activesupport (>= 4.0)
+ sprockets (>= 3.0.0)
+ sqlite3 (1.3.13)
+ sshkey (2.0.0)
+ stackprof (0.2.15)
+ state_machines (0.5.0)
+ state_machines-activemodel (0.7.1)
+ activemodel (>= 4.1)
+ state_machines (>= 0.5.0)
+ state_machines-activerecord (0.6.0)
+ activerecord (>= 4.1)
+ state_machines-activemodel (>= 0.5.0)
+ swd (1.1.2)
+ activesupport (>= 3)
+ attr_required (>= 0.0.5)
+ httpclient (>= 2.4)
+ sys-filesystem (1.1.6)
+ ffi
+ sysexits (1.2.0)
+ temple (0.8.2)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ terser (1.0.2)
+ execjs (>= 0.3.0, < 3)
+ test-prof (0.12.0)
+ text (1.3.1)
+ thin (1.7.2)
+ daemons (~> 1.0, >= 1.0.9)
+ eventmachine (~> 1.0, >= 1.0.4)
+ rack (>= 1, < 3)
+ thor (0.20.3)
+ thread_safe (0.3.6)
+ thrift (0.13.0)
+ tilt (2.0.10)
+ timecop (0.9.1)
+ timeliness (0.3.10)
+ timfel-krb5-auth (0.8.3)
+ to_regexp (0.2.1)
+ toml (0.2.0)
+ parslet (~> 1.8.0)
+ toml-rb (1.0.0)
+ citrus (~> 3.0, > 3.0)
+ tpm-key_attestation (0.9.0)
+ bindata (~> 2.4)
+ openssl-signature_algorithm (~> 0.4.0)
+ truncato (0.7.11)
+ htmlentities (~> 4.3.1)
+ nokogiri (>= 1.7.0, <= 2.0)
+ tzinfo (1.2.8)
+ thread_safe (~> 0.1)
+ u2f (0.2.1)
+ uber (0.1.0)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.7.7)
+ unicode-display_width (1.7.0)
+ unicode_plot (0.0.4)
+ enumerable-statistics (>= 2.0.1)
+ unicode_utils (1.4.0)
+ unicorn (5.5.5)
+ kgio (~> 2.6)
+ raindrops (~> 0.7)
+ unicorn-worker-killer (0.4.4)
+ get_process_mem (~> 0)
+ unicorn (>= 4, < 6)
+ uniform_notifier (1.13.0)
+ unleash (0.1.5)
+ murmurhash3 (~> 0.1.6)
+ unparser (0.4.7)
+ abstract_type (~> 0.0.7)
+ adamantium (~> 0.2.0)
+ concord (~> 0.1.5)
+ diff-lcs (~> 1.3)
+ equalizer (~> 0.0.9)
+ parser (>= 2.6.5)
+ procto (~> 0.0.2)
+ uri_template (0.7.0)
+ valid_email (0.1.3)
+ activemodel
+ mail (>= 2.6.1)
+ validate_email (0.1.6)
+ activemodel (>= 3.0)
+ mail (>= 2.2.5)
+ validate_url (1.0.8)
+ activemodel (>= 3.0.0)
+ public_suffix
+ validates_hostname (1.0.10)
+ activerecord (>= 3.0)
+ activesupport (>= 3.0)
+ version_sorter (2.2.4)
+ vmstat (2.3.0)
+ warden (1.2.8)
+ rack (>= 2.0.6)
+ webauthn (2.3.0)
+ android_key_attestation (~> 0.3.0)
+ awrence (~> 1.1)
+ bindata (~> 2.4)
+ cbor (~> 0.5.9)
+ cose (~> 1.0)
+ openssl (~> 2.0)
+ safety_net_attestation (~> 0.4.0)
+ securecompare (~> 1.0)
+ tpm-key_attestation (~> 0.9.0)
+ webfinger (1.1.0)
+ activesupport
+ httpclient (>= 2.4)
+ webmock (3.9.1)
+ addressable (>= 2.3.6)
+ crack (>= 0.3.2)
+ hashdiff (>= 0.4.0, < 2.0.0)
+ websocket-driver (0.7.3)
+ websocket-extensions (>= 0.1.0)
+ websocket-extensions (0.1.5)
+ wikicloth (0.8.1)
+ builder
+ expression_parser
+ rinku
+ with_env (1.1.0)
+ xml-simple (1.1.5)
+ xpath (3.2.0)
+ nokogiri (~> 1.8)
+ yajl-ruby (1.4.1)
+ zeitwerk (2.4.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ RedCloth (~> 4.3.2)
+ acme-client (~> 2.0, >= 2.0.6)
+ activerecord-explain-analyze (~> 0.1)
+ acts-as-taggable-on (~> 6.0)
+ addressable (~> 2.7)
+ akismet (~> 3.0)
+ apollo_upload_server (~> 2.0.2)
+ asana (= 0.10.2)
+ asciidoctor (~> 2.0.10)
+ asciidoctor-include-ext (~> 0.3.1)
+ asciidoctor-plantuml (~> 0.0.12)
+ atlassian-jwt (~> 0.2.0)
+ attr_encrypted (~> 3.1.0)
+ awesome_print
+ aws-sdk-cloudformation (~> 1)
+ aws-sdk-core (~> 3)
+ aws-sdk-s3 (~> 1)
+ babosa (~> 1.0.2)
+ base32 (~> 0.3.0)
+ batch-loader (~> 1.4.0)
+ bcrypt (= 3.1.12)
+ bcrypt_pbkdf (~> 1.0)
+ benchmark-ips (~> 2.3.0)
+ benchmark-memory (~> 0.1)
+ better_errors (~> 2.7.1)
+ bootsnap (~> 1.4.6)
+ bootstrap_form (~> 4.2.0)
+ brakeman (~> 4.2)
+ browser (~> 4.2)
+ bullet (~> 6.1.0)
+ bundler-audit (~> 0.6.1)
+ capybara (~> 3.33.0)
+ capybara-screenshot (~> 1.0.22)
+ carrierwave (~> 1.3)
+ charlock_holmes (~> 0.7.7)
+ commonmarker (~> 0.20)
+ concurrent-ruby (~> 1.1)
+ connection_pool (~> 2.0)
+ countries (~> 3.0)
+ creole (~> 0.5.0)
+ crystalball (~> 0.7.0)
+ danger (~> 8.0.6)
+ database_cleaner (~> 1.7.0)
+ deckar01-task_list (= 2.3.1)
+ default_value_for (~> 3.3.0)
+ derailed_benchmarks
+ device_detector
+ devise (~> 4.7.2)
+ devise-two-factor (~> 3.1.0)
+ diff_match_patch (~> 0.1.0)
+ diffy (~> 3.3)
+ discordrb-webhooks-blackst0ne (~> 3.3)
+ doorkeeper (~> 5.3.0)
+ doorkeeper-openid_connect (~> 1.7.4)
+ ed25519 (~> 1.2)
+ elasticsearch-api (~> 6.8.2)
+ elasticsearch-model (~> 6.1)
+ elasticsearch-rails (~> 6.1)
+ email_reply_trimmer (~> 0.1)
+ email_spec (~> 2.2.0)
+ erubi (~> 1.9.0)
+ escape_utils (~> 1.1)
+ factory_bot_rails (~> 5.1.0)
+ faraday (~> 1.0)
+ faraday_middleware-aws-sigv4 (~> 0.3.0)
+ fast_blank
+ ffaker (~> 2.10)
+ flipper (~> 0.17.1)
+ flipper-active_record (~> 0.17.1)
+ flipper-active_support_cache_store (~> 0.17.1)
+ flowdock (~> 0.7)
+ fog-aliyun (~> 0.3)
+ fog-aws (~> 3.5)
+ fog-core (= 2.1.0)
+ fog-google (~> 1.11)
+ fog-local (~> 0.6)
+ fog-openstack (~> 1.0)
+ fog-rackspace (~> 0.1.1)
+ font-awesome-rails (~> 4.7)
+ fugit (~> 1.2.1)
+ fuubar (~> 2.2.0)
+ gemojione (~> 3.3)
+ gettext (~> 3.3)
+ gettext_i18n_rails (~> 1.8.0)
+ gettext_i18n_rails_js (~> 1.3)
+ gitaly (~> 13.5.0.pre.rc2)
+ github-markup (~> 1.7.0)
+ gitlab-chronic (~> 0.10.5)
+ gitlab-fog-azure-rm (~> 1.0)
+ gitlab-labkit (= 0.13.1)
+ gitlab-license (~> 1.0)
+ gitlab-mail_room (~> 0.0.7)
+ gitlab-markup (~> 1.7.1)
+ gitlab-net-dns (~> 0.9.1)
+ gitlab-pg_query (~> 1.3)
+ gitlab-puma (~> 4.3.3.gitlab.2)
+ gitlab-puma_worker_killer (~> 0.1.1.gitlab.1)
+ gitlab-sidekiq-fetcher (= 0.5.2)
+ gitlab-styles (~> 5.1.0)
+ gitlab_chronic_duration (~> 0.10.6.2)
+ gitlab_omniauth-ldap (~> 2.1.1)
+ gon (~> 6.2)
+ google-api-client (~> 0.33)
+ google-protobuf (~> 3.12)
+ gpgme (~> 2.0.19)
+ grape (= 1.4.0)
+ grape-entity (~> 0.7.1)
+ grape-path-helpers (~> 1.5)
+ grape_logging (~> 1.7)
+ graphiql-rails (~> 1.4.10)
+ graphlient (~> 0.4.0)
+ graphql (~> 1.11.4)
+ graphql-docs (~> 1.6.0)
+ grpc (~> 1.30.2)
+ gssapi
+ guard-rspec
+ haml_lint (~> 0.36.0)
+ hamlit (~> 2.11.0)
+ hangouts-chat (~> 0.0.5)
+ hashie
+ hashie-forbidden_attributes
+ health_check (~> 3.0)
+ hipchat (~> 1.5.0)
+ html-pipeline (~> 2.12)
+ html2text
+ httparty (~> 0.16.4)
+ icalendar
+ invisible_captcha (~> 0.12.1)
+ ipaddress (~> 0.8.3)
+ jira-ruby (~> 2.0.0)
+ js_regex (~> 3.4)
+ json (~> 2.3.0)
+ json-schema (~> 2.8.0)
+ json_schemer (~> 0.2.12)
+ jwt (~> 2.1.0)
+ kaminari (~> 1.0)
+ knapsack (~> 1.17)
+ kramdown (~> 2.3.0)
+ kubeclient (~> 4.9.1)
+ letter_opener_web (~> 1.3.4)
+ license_finder (~> 6.0)
+ licensee (~> 8.9)
+ lockbox (~> 0.3.3)
+ lograge (~> 0.5)
+ loofah (~> 2.2)
+ lru_redux
+ mail (= 2.7.1)
+ marginalia (~> 1.9.0)
+ memory_profiler (~> 0.9)
+ method_source (~> 1.0)
+ mimemagic (~> 0.3.2)
+ mini_magick (~> 4.10.1)
+ minitest (~> 5.11.0)
+ multi_json (~> 1.14.1)
+ nakayoshi_fork (~> 0.0.4)
+ net-ldap
+ net-ntp
+ net-ssh (~> 6.0)
+ nokogiri (~> 1.10.9)
+ oauth2 (~> 1.4)
+ octokit (~> 4.15)
+ oj (~> 3.10.6)
+ omniauth (~> 1.8)
+ omniauth-atlassian-oauth2 (~> 0.2.0)
+ omniauth-auth0 (~> 2.0.0)
+ omniauth-authentiq (~> 0.3.3)
+ omniauth-azure-oauth2 (~> 0.0.9)
+ omniauth-cas3 (~> 1.1.4)
+ omniauth-facebook (~> 4.0.0)
+ omniauth-github (~> 1.4)
+ omniauth-gitlab (~> 1.0.2)
+ omniauth-google-oauth2 (~> 0.6.0)
+ omniauth-kerberos (~> 0.3.0)
+ omniauth-oauth2-generic (~> 0.2.2)
+ omniauth-salesforce (~> 1.0.5)
+ omniauth-saml (~> 1.10)
+ omniauth-shibboleth (~> 1.3.0)
+ omniauth-twitter (~> 1.4)
+ omniauth_crowd (~> 2.4.0)
+ omniauth_openid_connect (~> 0.3.5)
+ org-ruby (~> 0.9.12)
+ parallel (~> 1.19)
+ peek (~> 1.1)
+ pg (~> 1.1)
+ png_quantizator (~> 0.2.1)
+ premailer-rails (~> 1.10.3)
+ prometheus-client-mmap (~> 0.12.0)
+ pry-byebug (~> 3.9.0)
+ pry-rails (~> 0.3.9)
+ rack (~> 2.2.3)
+ rack-attack (~> 6.3.0)
+ rack-cors (~> 1.0.6)
+ rack-oauth2 (~> 1.16.0)
+ rack-proxy (~> 0.6.0)
+ rack-timeout (~> 0.5.1)
+ rails (~> 6.0.3.1)
+ rails-controller-testing
+ rails-i18n (~> 6.0)
+ rainbow (~> 3.0)
+ raindrops (~> 0.18)
+ rblineprof (~> 0.3.6)
+ rbtrace (~> 0.4)
+ rdoc (~> 6.1.2)
+ re2 (~> 1.2.0)
+ recaptcha (~> 4.11)
+ redis (~> 4.0)
+ redis-namespace (~> 1.7.0)
+ redis-rails (~> 5.0.2)
+ request_store (~> 1.5)
+ responders (~> 3.0)
+ retriable (~> 3.1.2)
+ rouge (~> 3.25.0)
+ rqrcode-rails3 (~> 0.1.7)
+ rspec-parameterized
+ rspec-rails (~> 4.0.0)
+ rspec-retry (~> 0.6.1)
+ rspec_junit_formatter
+ rspec_profiling (~> 0.0.6)
+ ruby-fogbugz (~> 0.2.1)
+ ruby-prof (~> 1.3.0)
+ ruby-progressbar
+ ruby_parser (~> 3.15)
+ rubyzip (~> 2.0.0)
+ rugged (~> 0.28)
+ sanitize (~> 5.2.1)
+ sassc-rails (~> 2.1.0)
+ scss_lint (~> 0.59.0)
+ seed-fu (~> 2.3.7)
+ selenium-webdriver (~> 3.142)
+ sentry-raven (~> 3.0)
+ settingslogic (~> 2.0.9)
+ shoulda-matchers (~> 4.0.1)
+ sidekiq (~> 5.2.7)
+ sidekiq-cron (~> 1.0)
+ simple_po_parser (~> 1.1.2)
+ simplecov (~> 0.18.5)
+ simplecov-cobertura (~> 1.3.1)
+ slack-messenger (~> 2.3.4)
+ snowplow-tracker (~> 0.6.1)
+ spring (~> 2.1.0)
+ spring-commands-rspec (~> 1.0.4)
+ sprockets (~> 3.7.0)
+ sshkey (~> 2.0)
+ stackprof (~> 0.2.15)
+ state_machines-activerecord (~> 0.6.0)
+ sys-filesystem (~> 1.1.6)
+ terser (= 1.0.2)
+ test-prof (~> 0.12.0)
+ thin (~> 1.7.0)
+ timecop (~> 0.9.1)
+ toml-rb (~> 1.0.0)
+ truncato (~> 0.7.11)
+ u2f (~> 0.2.1)
+ unf (~> 0.1.4)
+ unicorn (~> 5.5)
+ unicorn-worker-killer (~> 0.4.4)
+ unleash (~> 0.1.5)
+ valid_email (~> 0.1)
+ validates_hostname (~> 1.0.10)
+ version_sorter (~> 2.2.4)
+ vmstat (~> 2.3.0)
+ webauthn (~> 2.3)
+ webmock (~> 3.9.1)
+ wikicloth (= 0.8.1)
+ yajl-ruby (~> 1.4.1)
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
new file mode 100644
index 000000000000..651b418234c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -0,0 +1,5529 @@
+{
+ abstract_type = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+ type = "gem";
+ };
+ version = "0.0.7";
+ };
+ acme-client = {
+ dependencies = ["faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nwkzjamvg946xh2pv82hkwxb7vqq6gakig014gflss0cwx7bbxp";
+ type = "gem";
+ };
+ version = "2.0.6";
+ };
+ actioncable = {
+ dependencies = ["actionpack" "nio4r" "websocket-driver"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wpmxbprsqclna9xpa6b7sspjb89p6jqfxalasa9f984hx77dx27";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ actionmailbox = {
+ dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0smcxpn3glnmid3v2pk04sb3bdifbw7ad1c7fq6wfijkrpih8jiw";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ actionmailer = {
+ dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1spq0dbfn0qkqg9sq0rsjn360b4j36zly8hawaivkrwr3rsvyz75";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ actionpack = {
+ dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p873nqwmpsvmkb5n86d70wndx1qhy15pc9mbcd1mc8sj174578b";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ actiontext = {
+ dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05ysfz9dwnncdx0g452by7jdr35yryz6lmcrbb4r5wgjm57b4n25";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ actionview = {
+ dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08pvmjddlw01q5r9zdfgddwp4csndpf5i2w47677z5r36jznz36q";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ activejob = {
+ dependencies = ["activesupport" "globalid"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w54ckvc229iaax879hkhyc93j7z8p0v7acp6mk3h8xjfvmwy5jp";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ activemodel = {
+ dependencies = ["activesupport"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "166jlx6kbby01vr37srh081a9fykgsz873yg5i9gl2ar3vw9gs56";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ activerecord = {
+ dependencies = ["activemodel" "activesupport"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y2a4ss6ld6yrhpcbcb3kjn5gj6zk9qklp2aq5rl1awl8vbdbdb7";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ activerecord-explain-analyze = {
+ dependencies = ["activerecord" "pg"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yvz452ww0vn3n6197gx6zklwa591gc7f1m8accvjd9zw8gv3ssx";
+ type = "gem";
+ };
+ version = "0.1.0";
+ };
+ activestorage = {
+ dependencies = ["actionpack" "activejob" "activerecord" "marcel"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nvfjkq979m1h4mk1ys7m4irwpswn4l9arb9yi06ffqpi1lpfl31";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dmkqbvndbz011a1byg6f990936vfadbnwjwjw9vjzr4kd8bxk96";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ acts-as-taggable-on = {
+ dependencies = ["activerecord"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nvhd986xa6llyjnhikq4h1nrcf5b9r9s11if25qsj8358inrpga";
+ type = "gem";
+ };
+ version = "6.5.0";
+ };
+ adamantium = {
+ dependencies = ["ice_nine" "memoizable"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ aes_key_wrap = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19bn0y70qm6mfj4y1m0j3s8ggh6dvxwrwrj5vfamhdrpddsz8ddr";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ akismet = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c5jhqfgvpz84d8jai51hin018ldpfd0civbk7mfwmrj7n71p6bl";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ android_key_attestation = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02spc1sh7zsljl02v9d5rdb717b628vw2k7jkkplifyjk4db0zj6";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ apollo_upload_server = {
+ dependencies = ["graphql" "rails"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xk54h9mmzhrbgbmk33v38pavb8w6421mx2yrgsdarkfl9fr90y3";
+ type = "gem";
+ };
+ version = "2.0.2";
+ };
+ asana = {
+ dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c8n8i3jb2q09l6rgcw0lb4sq85jzz6vywqlrd0ivq989zh3sq2l";
+ type = "gem";
+ };
+ version = "0.10.2";
+ };
+ asciidoctor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b2ajs3sabl0s27r7lhwkacw0yn0zfk4jpmidg9l8lzp2qlgjgbz";
+ type = "gem";
+ };
+ version = "2.0.10";
+ };
+ asciidoctor-include-ext = {
+ dependencies = ["asciidoctor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1alaqfh31hd98yhqq8fsc50zzqw04p3d83pc35gdx3x9p3j1ds7d";
+ type = "gem";
+ };
+ version = "0.3.1";
+ };
+ asciidoctor-plantuml = {
+ dependencies = ["asciidoctor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02knhmyd3h1yryn66xjfciz7jjsq676kl7ama0r0cf92vyyvm12x";
+ type = "gem";
+ };
+ version = "0.0.12";
+ };
+ ast = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+ type = "gem";
+ };
+ version = "2.4.1";
+ };
+ atlassian-jwt = {
+ dependencies = ["jwt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ckfiiwv7dnifra7zhbggj96g0x0kzkv0x9n1is7lb86svlm7rjj";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ attr_encrypted = {
+ dependencies = ["encryptor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ attr_required = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ awesome_print = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ awrence = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zwdli370jfsj6jypv7vrqf4vv4ac4784faw7ar5v88fk4q9rcv";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ aws-eventstream = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ aws-partitions = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12q3swh4f44iqlq2md9lphg8csi0hd35jhgmkkkji9n0mgay4ggh";
+ type = "gem";
+ };
+ version = "1.345.0";
+ };
+ aws-sdk-cloudformation = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09kb3k5vpymg846gajc5d3wznww63yiv3ygdf4v42d4pf4wpbr1i";
+ type = "gem";
+ };
+ version = "1.41.0";
+ };
+ aws-sdk-core = {
+ dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xfv8nfz8n700z29di51mcyyrnmbpq7flff4hx9mm92avnly1ysy";
+ type = "gem";
+ };
+ version = "3.104.3";
+ };
+ aws-sdk-kms = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rpwpj4f4q9wdrbgiqngzwfdaaqyz0iif8sv16z6z0mm6y3cb06q";
+ type = "gem";
+ };
+ version = "1.36.0";
+ };
+ aws-sdk-s3 = {
+ dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "068xx6wp86wkmikdzg4wqxmg570hc3ydp8211j02g13djjr3k28n";
+ type = "gem";
+ };
+ version = "1.75.0";
+ };
+ aws-sigv4 = {
+ dependencies = ["aws-eventstream"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0aknh3q37rq3ixxa84x2p26g8a15zmiig2rm1pmailsb9vqhfh3j";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ azure-storage-blob = {
+ dependencies = ["azure-storage-common" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qpvjyaq8478hw4cxcf8lr303wn8g9mhrfmvihyzn3zn9hll4zvd";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ azure-storage-common = {
+ dependencies = ["faraday" "faraday_middleware" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nhjw77r65xrkdn2h6cd76mglgx676hyr58igyfb9f7zbgvjp69s";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ babosa = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ base32 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk";
+ type = "gem";
+ };
+ version = "0.3.2";
+ };
+ batch-loader = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09jaxxddqpgq8ynwd2gpjq5rkhw00zdjnqisk9qbpjgxzk6f8gwi";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ bcrypt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+ type = "gem";
+ };
+ version = "3.1.12";
+ };
+ bcrypt_pbkdf = {
+ groups = ["ed25519"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ benchmark-ips = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ benchmark-memory = {
+ dependencies = ["memory_profiler"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11qw8k6rl79ri00njrf1x9v6vzwgv12rkcvgzvg0sk8pfrkzwyxa";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ better_errors = {
+ dependencies = ["coderay" "erubi" "rack"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kn7rv81i2r462k56v29i3s8abcmfcpfj9axia736mwjvv0app2k";
+ type = "gem";
+ };
+ version = "2.7.1";
+ };
+ bindata = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bmlqjb5h1ry6wm2d903d6yxibpqzzxwqczvlicsqv0vilaca5ic";
+ type = "gem";
+ };
+ version = "2.4.8";
+ };
+ binding_ninja = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17fa3sv6p2fw9g8fxpwx1kjhhs28aw41akkba0hlgvk60055b1aa";
+ type = "gem";
+ };
+ version = "0.2.3";
+ };
+ bootsnap = {
+ dependencies = ["msgpack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bz62p9vc7lcrmzhiz4pf7myww086mq287cw3jjj7fyc7jhmamw0";
+ type = "gem";
+ };
+ version = "1.4.6";
+ };
+ bootstrap_form = {
+ dependencies = ["actionpack" "activemodel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "044pi097jwh3z68g1zfmbcl9xchqfcsls1j1nvx1bkyj034v6y7m";
+ type = "gem";
+ };
+ version = "4.2.0";
+ };
+ brakeman = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v";
+ type = "gem";
+ };
+ version = "4.2.1";
+ };
+ browser = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q1yzvbqp0mykswipq3w00ljw9fgkhjfrij3hkwi7cx85r14n6gw";
+ type = "gem";
+ };
+ version = "4.2.0";
+ };
+ builder = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ bullet = {
+ dependencies = ["activesupport" "uniform_notifier"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18ifwnvn13755qkfigapyj5bflpby3phxzbb7x5336d0kzv5k7d9";
+ type = "gem";
+ };
+ version = "6.1.0";
+ };
+ bundler-audit = {
+ dependencies = ["thor"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pm22xpn3xyymsainixnrk8v3l3xi9bzwkjkspx00cfzp84xvxbq";
+ type = "gem";
+ };
+ version = "0.6.1";
+ };
+ byebug = {
+ groups = ["default" "development" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194";
+ type = "gem";
+ };
+ version = "11.1.3";
+ };
+ capybara = {
+ dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ji9kyb01dpnjbvpyb0c481cpnisd6wx6div6rywi9fihk66627w";
+ type = "gem";
+ };
+ version = "3.33.0";
+ };
+ capybara-screenshot = {
+ dependencies = ["capybara" "launchy"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x90lh7nf3zi54arjf430s9xdxr3c12xjq1l28izgxqdk8s40q7q";
+ type = "gem";
+ };
+ version = "1.0.22";
+ };
+ carrierwave = {
+ dependencies = ["activemodel" "activesupport" "mime-types"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10rz94kajilffp83sb767lr62b5f8l4jzqq80cr92wqxdgbszdks";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ cbor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3";
+ type = "gem";
+ };
+ version = "0.5.9.6";
+ };
+ character_set = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0affq9n77vwy897ri2zhmfinfagf37hcwwimrccy1bcxan9mj3h3";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ charlock_holmes = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p";
+ type = "gem";
+ };
+ version = "0.7.7";
+ };
+ childprocess = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ chunky_png = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn";
+ type = "gem";
+ };
+ version = "1.3.5";
+ };
+ citrus = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf";
+ type = "gem";
+ };
+ version = "3.0.2";
+ };
+ claide = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ claide-plugins = {
+ dependencies = ["cork" "nap" "open4"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bhw5j985qs48v217gnzva31rw5qvkf7qj8mhp73pcks0sy7isn7";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ coderay = {
+ groups = ["default" "development" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ colored2 = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ commonmarker = {
+ dependencies = ["ruby-enum"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19zd9na1g2d0zzbqhmfj8rjfzcxj34vja3i52gvv859i8fifa461";
+ type = "gem";
+ };
+ version = "0.20.1";
+ };
+ concord = {
+ dependencies = ["adamantium" "equalizer"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
+ type = "gem";
+ };
+ version = "0.1.5";
+ };
+ concurrent-ruby = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+ type = "gem";
+ };
+ version = "1.1.7";
+ };
+ connection_pool = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ contracts = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11kj7hdr94hxgxad9wazncvaxzaxlbvw6laq179ivhw9za746vnz";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ cork = {
+ dependencies = ["colored2"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g6l780z1nj4s3jr11ipwcj8pjbibvli82my396m3y32w98ar850";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ cose = {
+ dependencies = ["cbor" "openssl-signature_algorithm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1h1vcirk1vpr992xmnwf5z77fpizjwn4xzq2vrrjhvdmjynvl3jj";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ countries = {
+ dependencies = ["i18n_data" "sixarm_ruby_unaccent" "unicode_utils"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w278pjhwkbin7jpr7m47wac7gj5n4l2him9k2q4ngzq6rs2id7c";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ crack = {
+ dependencies = ["safe_yaml"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ crass = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
+ type = "gem";
+ };
+ version = "1.0.6";
+ };
+ creole = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ crystalball = {
+ dependencies = ["git"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1why2py76hv2m7i3a1im3zi5zcjcvz2l1nvshzndlwah58vrywkf";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
+ css_parser = {
+ dependencies = ["addressable"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y4vc018b5mzp7winw4pbb22jk0dpxp22pzzxq7w0rgvfxzi89pd";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ daemons = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
+ type = "gem";
+ };
+ version = "1.2.6";
+ };
+ danger = {
+ dependencies = ["claide" "claide-plugins" "colored2" "cork" "faraday" "faraday-http-cache" "git" "kramdown" "kramdown-parser-gfm" "no_proxy_fix" "octokit" "terminal-table"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lrifb0kbjk9033pzjnp8qqqkg2z212h8dgj71k15c6wb6rycqa7";
+ type = "gem";
+ };
+ version = "8.0.6";
+ };
+ database_cleaner = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ debugger-ruby_core_source = {
+ groups = ["default" "development"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd";
+ type = "gem";
+ };
+ version = "1.3.8";
+ };
+ deckar01-task_list = {
+ dependencies = ["html-pipeline"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18bwkvxjr7khxj95xrg1vj7va522vbm2li9wsiiw01cg5b10hni0";
+ type = "gem";
+ };
+ version = "2.3.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";
+ };
+ default_value_for = {
+ dependencies = ["activerecord"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08hwnnqm3bxd4n627isliq79zysdlmfkf813403v0b4mkhika5my";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ derailed_benchmarks = {
+ dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "mini_histogram" "rack" "rake" "ruby-statistics" "thor" "unicode_plot"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03lrvzvdjy6wyrnb3nw7nqn9jbhn6lncach58pj6m4l76b2n6jpr";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ device_detector = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ devise = {
+ dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0syqkh0q9mcdgj68m2cf1innpxb8fv6xsayk1kgsdmq539rkv3ic";
+ type = "gem";
+ };
+ version = "4.7.3";
+ };
+ devise-two-factor = {
+ dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gzk7phrryxlq4k3jrcxm8faifmbqrbfxq7jx089ncsixwd69bn4";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ diff-lcs = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ diff_match_patch = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03n4g4w2pwiygmqq5lfhqrpbs9g6kv0jhb3vrffz3vgaryzmfq5k";
+ type = "gem";
+ };
+ version = "0.1.0";
+ };
+ diffy = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qhx743lcx61r2d3925jk61c6r8clfjmpf5g93cdy5sq00ig76lh";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ discordrb-webhooks-blackst0ne = {
+ dependencies = ["rest-client"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1f0dw6ci5cbrxrvvqw2kqabpzyjisd4hflbi370rpb4cakkzgw39";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ docile = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+ type = "gem";
+ };
+ version = "1.3.2";
+ };
+ domain_name = {
+ dependencies = ["unf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+ type = "gem";
+ };
+ version = "0.5.20190701";
+ };
+ doorkeeper = {
+ dependencies = ["railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01scvhvrw44ksv1aaywpp9kfm4c8qs4gwnnha40r5mq0vpc0qrny";
+ type = "gem";
+ };
+ version = "5.3.3";
+ };
+ doorkeeper-openid_connect = {
+ dependencies = ["doorkeeper" "json-jwt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yylcg4j7msxma0s8rx8990bfgr0c414a7vafs3gpgmbwy47wq45";
+ type = "gem";
+ };
+ version = "1.7.4";
+ };
+ dry-configurable = {
+ dependencies = ["concurrent-ruby" "dry-core" "dry-equalizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "033x4gvynfm33pchmpd5iw9n4c9q46j8vbwbcdmvb8b2r0gpzfdn";
+ type = "gem";
+ };
+ version = "0.11.5";
+ };
+ dry-container = {
+ dependencies = ["concurrent-ruby" "dry-configurable"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1npnhs3x2xcwwijpys5c8rpcvymrlab0y8806nr4h425ld5q4wd0";
+ type = "gem";
+ };
+ version = "0.7.2";
+ };
+ dry-core = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0k9ff2sr4ymiwzg4mchzv66mn6rdsgjlinm6s4x5x91yhd0h4vpk";
+ type = "gem";
+ };
+ version = "0.4.9";
+ };
+ dry-equalizer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rsqpk0gjja6j6pjm0whx2px06cxr3h197vrwxp6k042p52r4v46";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ dry-inflector = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17mkdwglqsd9fg272y3zms7rixjgkb1km1xcb88ir5lxvk1jkky7";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ dry-logic = {
+ dependencies = ["concurrent-ruby" "dry-core" "dry-equalizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cqvylwv71sm9zrb0lpxmghn20zxnjswxwyhaj8y2wfniffyjgkc";
+ type = "gem";
+ };
+ version = "1.0.6";
+ };
+ dry-types = {
+ dependencies = ["concurrent-ruby" "dry-container" "dry-core" "dry-equalizer" "dry-inflector" "dry-logic"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1px1r5khlf4lw32gsrnnnsx7dvl2d94axx3h0b6zwxrhvfq3n038";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ ecma-re-validator = {
+ dependencies = ["regexp_parser"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hjnd6phkhwmd846hqkzbiiyf7n6v9s85agizkxrkha1z0g3q5fc";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ ed25519 = {
+ groups = ["ed25519"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw";
+ type = "gem";
+ };
+ version = "1.2.4";
+ };
+ elasticsearch = {
+ dependencies = ["elasticsearch-api" "elasticsearch-transport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "152z76sp2ymyaqrbm8c6y0p1ydkckwrr6iif66mdsc5s0433va3f";
+ type = "gem";
+ };
+ version = "6.8.2";
+ };
+ elasticsearch-api = {
+ dependencies = ["multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12rjfamnqspvkjs90bvpa5zs7g0nlr9pvlvj228mj71k5pym1x8p";
+ type = "gem";
+ };
+ version = "6.8.2";
+ };
+ elasticsearch-model = {
+ dependencies = ["activesupport" "elasticsearch" "hashie"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q66mp28696qnr6xgsl1dym2l5wk4j2ifd673r09yi70hn9y5ji8";
+ type = "gem";
+ };
+ version = "6.1.1";
+ };
+ elasticsearch-rails = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06k97w4xdkdj982b2mgz4bv0gvkpbscn4wxsrqj6kr1x7dxia394";
+ type = "gem";
+ };
+ version = "6.1.1";
+ };
+ elasticsearch-transport = {
+ dependencies = ["faraday" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02z7b26vl0wmvkzy10qp530vx5c7pdv2ynfsd7mc5qmz6m0z5pxp";
+ type = "gem";
+ };
+ version = "6.8.2";
+ };
+ email_reply_trimmer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz";
+ type = "gem";
+ };
+ version = "0.1.6";
+ };
+ email_spec = {
+ dependencies = ["htmlentities" "launchy" "mail"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+ encryptor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ enumerable-statistics = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ac2f5g4m58l6bmap1ak6vgqykz2hy9n3c8r6dmlr2xjybdryc1f";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ equalizer = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+ type = "gem";
+ };
+ version = "0.0.11";
+ };
+ erubi = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ escape_utils = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ et-orbi = {
+ dependencies = ["tzinfo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1swgjb3h2hs5xflb68837l0vd32masbz9c66b1963mxlnnxf5gsg";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ eventmachine = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ excon = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nn8wk7j22ly4lzdp5pnm7qsrjxbgspiyxkw70g1qf9bn6pslmxr";
+ type = "gem";
+ };
+ version = "0.71.1";
+ };
+ execjs = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ expression_parser = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib";
+ type = "gem";
+ };
+ version = "0.9.0";
+ };
+ extended-markdown-filter = {
+ dependencies = ["html-pipeline"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17mi5qayplfaa6p3mfwa36il84ixr0bimqvl0q73lw5i81blp126";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ factory_bot = {
+ dependencies = ["activesupport"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04mvwcdh1056r79vq969vlncrcy53fkhw0iixpqvp8gnx5ajbsv6";
+ type = "gem";
+ };
+ version = "5.1.0";
+ };
+ factory_bot_rails = {
+ dependencies = ["factory_bot" "railties"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02q7lwfdilwahza2jz0p0kc2rragv617q9r2yy72syv6lfy923sx";
+ type = "gem";
+ };
+ version = "5.1.0";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ faraday-cookie_jar = {
+ dependencies = ["faraday" "http-cookie"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00hligx26w9wdnpgsrf0qdnqld4rdccy8ym6027h5m735mpvxjzk";
+ type = "gem";
+ };
+ version = "0.0.7";
+ };
+ faraday-http-cache = {
+ dependencies = ["faraday"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lhfwlk4mhmw9pdlgdsl2bq4x45w7s51jkxjryf18wym8iiw36g7";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+ faraday_middleware = {
+ dependencies = ["faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ faraday_middleware-aws-sigv4 = {
+ dependencies = ["aws-sigv4" "faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gk2qakcvvbgfvvfd8cgf13sligv5mp816ykmra9llqmbfym8ikl";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ faraday_middleware-multi_json = {
+ dependencies = ["faraday_middleware" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q";
+ type = "gem";
+ };
+ version = "0.0.6";
+ };
+ fast_blank = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ fast_gettext = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ ffaker = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01z5lpssjc0n8lm4xrlja0hh8lv4ngzbybjvd4rdkc5x9ddvh8s3";
+ type = "gem";
+ };
+ version = "2.10.0";
+ };
+ ffi = {
+ groups = ["default" "development" "kerberos" "puma" "test" "unicorn"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ ffi-compiler = {
+ dependencies = ["ffi" "rake"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ flipper = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01gbn1qmcvn49gjcbvd5fga57qc8l3915kb04ikkffvb6n09q7f7";
+ type = "gem";
+ };
+ version = "0.17.1";
+ };
+ flipper-active_record = {
+ dependencies = ["activerecord" "flipper"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "154q9xajqs64gxa9fv4hwpad44x3rmwgpldrb941i8wi37dpzskg";
+ type = "gem";
+ };
+ version = "0.17.1";
+ };
+ flipper-active_support_cache_store = {
+ dependencies = ["activesupport" "flipper"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mkbyn3mx3f411x4z1l1djc9vix3wrfzd5rhrmxb83iqp60r42hg";
+ type = "gem";
+ };
+ version = "0.17.1";
+ };
+ flowdock = {
+ dependencies = ["httparty" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ fog-aliyun = {
+ dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vl5zf9wr6qwm1awxscyifvrrfqnyacidxgzhkba2wqlgizk3anh";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ fog-aws = {
+ dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "086kyvdhf1k8nk7f4gmybjc3k0m88f9pw99frddcy1w96pj5kyg4";
+ type = "gem";
+ };
+ version = "3.5.2";
+ };
+ fog-core = {
+ dependencies = ["builder" "excon" "formatador" "mime-types"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1agd6xgzk0rxrsjdpn94v4hy89s0nm2cs4zg2p880w2dan9xgrak";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ fog-google = {
+ dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client" "google-cloud-env"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1h9apmm2pyb157pbnrqk37wfs2d9f35navsgzs3kclrxhyl2qm5f";
+ type = "gem";
+ };
+ version = "1.11.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-local = {
+ dependencies = ["fog-core"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ba4lln35nryi6dcbz68vxg9ml6v8cc8s8c82f7syfd84bz76x21";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ fog-openstack = {
+ dependencies = ["fog-core" "fog-json" "ipaddress"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "171xnsl6w0j7yi6sp26dcqahx4r4gb2cf359gmy11g5iwnsll5wg";
+ type = "gem";
+ };
+ version = "1.0.8";
+ };
+ fog-rackspace = {
+ dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ fog-xml = {
+ dependencies = ["fog-core" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ font-awesome-rails = {
+ dependencies = ["railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a32q69rdsdw9zhmf2cflvvnikg20amidhn40sv2afw2qk91fcrz";
+ type = "gem";
+ };
+ version = "4.7.0.5";
+ };
+ formatador = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ fugit = {
+ dependencies = ["et-orbi" "raabro"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x5h31hl75x0p5s36hinywg18ijlxjhnlb5p02aqcjjkx777rcav";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ fuubar = {
+ dependencies = ["rspec-core" "ruby-progressbar"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+ gemoji = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0";
+ type = "gem";
+ };
+ version = "3.0.1";
+ };
+ gemojione = {
+ dependencies = ["json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ get_process_mem = {
+ dependencies = ["ffi"];
+ groups = ["default" "puma" "unicorn"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q7pivp9z9pdxc2ha32q7x9zgqy8m9jf87g6n5mvi5l6knxya8sh";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ gettext = {
+ dependencies = ["locale" "text"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04xlj00sm4mbgvyq0qkbxim75i7cpyn6iylpfwnyagl35wdvsszf";
+ type = "gem";
+ };
+ version = "3.3.6";
+ };
+ gettext_i18n_rails = {
+ dependencies = ["fast_gettext"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vs918a03mqvx9aczaqdg9d2q9s3c6swqavzn82qgq5i822czrcm";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ gettext_i18n_rails_js = {
+ dependencies = ["gettext" "gettext_i18n_rails" "po_to_json" "rails"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ git = {
+ dependencies = ["rchardet"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y8n1m2kys3q79b9kp8bs4803isshpf0f401a2hfy4iyh5jwzx11";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ gitaly = {
+ dependencies = ["grpc"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q1l0c1yjnhr451jj845h2vd9s00grjiyj2w9r1b9y3bscsyzs0m";
+ type = "gem";
+ };
+ version = "13.5.0.pre.rc2";
+ };
+ github-markup = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ gitlab-chronic = {
+ dependencies = ["numerizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xf857vj55r1jafbkdpdzq6c22r964rj9186m1q8hw4vd7f1h3zq";
+ type = "gem";
+ };
+ version = "0.10.5";
+ };
+ gitlab-fog-azure-rm = {
+ dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types" "ms_rest_azure"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04l7ps0vvrqq8i25q7ic2zy2n8f8f1l7sn1shf5wccy1cbyj9pig";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ gitlab-labkit = {
+ dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "redis"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cnrpqswicawhpvd4dh4jcma9d4haznc4gyl37ssvj1jkfhc4w40";
+ type = "gem";
+ };
+ version = "0.13.1";
+ };
+ gitlab-license = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q26cgp3ln3b36n3sc69r6hxafkxjwdr3m0d7jlch5j7vyib9bih";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ gitlab-mail_room = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14785l38sqrgf06y45ayhj3nhfqdar8vrsxna764vdsw01dngmin";
+ type = "gem";
+ };
+ version = "0.0.7";
+ };
+ gitlab-markup = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xnlra517pfj3hx07kasbqlcw51ix4xajr6bsd3mwg8bc92dlwy7";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ gitlab-net-dns = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jylfc47477imjmzc4jq7zsxklhrws6q4bb0zzl33drirf6s1ldw";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ gitlab-pg_query = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xvzs8gy6vbddzf9kin92lqb99vzwljikfgqvxbxqm7hzl16dilq";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ gitlab-puma = {
+ dependencies = ["nio4r"];
+ groups = ["puma"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05hazn3cq079zynj0viagly6bgh4x7pb2vqki9rgf2k39ljwrmld";
+ type = "gem";
+ };
+ version = "4.3.5.gitlab.3";
+ };
+ gitlab-puma_worker_killer = {
+ dependencies = ["get_process_mem" "gitlab-puma"];
+ groups = ["puma"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0iagbqh4djbxfd18srvfg9qcxn845ibs3kf0q1sd57k27lxj0har";
+ type = "gem";
+ };
+ version = "0.1.1.gitlab.1";
+ };
+ gitlab-sidekiq-fetcher = {
+ dependencies = ["sidekiq"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dvx2klf1a1xyf15q34fn59291v6jwx3z315rxb2dmkvcr9873m1";
+ type = "gem";
+ };
+ version = "0.5.2";
+ };
+ gitlab-styles = {
+ dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0l24vgcmvval1apqk99c3ifcwlg1fh60vf02ggnc20f65dka81p3";
+ type = "gem";
+ };
+ version = "5.1.0";
+ };
+ gitlab_chronic_duration = {
+ dependencies = ["numerizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yq5a4vs96xz5yxqkfwcvzw0riww7mf87j1s2s7rb6yagpz4rnkd";
+ type = "gem";
+ };
+ version = "0.10.6.2";
+ };
+ gitlab_omniauth-ldap = {
+ dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1f8cjbzlhckarmm59l380jjy33a3hlljg69b3zkh8rhy1xd3xr90";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ globalid = {
+ dependencies = ["activesupport"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ gon = {
+ dependencies = ["actionpack" "multi_json" "request_store"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806";
+ type = "gem";
+ };
+ version = "6.2.0";
+ };
+ google-api-client = {
+ dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "signet"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13y6xara8w211y88pxa8bcbg6y40vkidqk854zl7z4csmgfnplxq";
+ type = "gem";
+ };
+ version = "0.33.2";
+ };
+ google-cloud-env = {
+ dependencies = ["faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bjgxyvagy6hjj8yg7fqq24rwdjxb6hx7fdd1bmn4mwd846lci2i";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ google-protobuf = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m3la0yid3bqx9b30raisqbp27d0q7vdrlslazrdasf8v1vhifxj";
+ type = "gem";
+ };
+ version = "3.12.4";
+ };
+ googleapis-common-protos-types = {
+ dependencies = ["google-protobuf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1aava1b75n056s24gn7ajrkmm6s3xa3swl62dl5q9apw4marghji";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ googleauth = {
+ dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rsk471ld98pxhvzig3lnw9i13454c9nschvzxvq6vjqnn9ip0yh";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ gpgme = {
+ dependencies = ["mini_portile2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xbgh9d8nbvsvyzqnd0mzhz0nr9hx4qn025kmz6d837lry4lc6gw";
+ type = "gem";
+ };
+ version = "2.0.20";
+ };
+ grape = {
+ dependencies = ["activesupport" "builder" "dry-types" "mustermann-grape" "rack" "rack-accept"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03ylzpn9mng9kwk472xbsfnqcbnm0qcjjlscp17hijvpvafd8a09";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ grape-entity = {
+ dependencies = ["activesupport" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ grape-path-helpers = {
+ dependencies = ["activesupport" "grape" "rake"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "131s6a0xa0fj7w5d6xb2p2z3404w6rxbc33v7fcg50jrjgqphrjz";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ grape_logging = {
+ dependencies = ["grape" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x6cmmj0wi1m689r8d4yhyhpl8dwj5skn8b29igm4xvw3swkg94x";
+ type = "gem";
+ };
+ version = "1.8.3";
+ };
+ graphiql-rails = {
+ dependencies = ["railties" "sprockets-rails"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8";
+ type = "gem";
+ };
+ version = "1.4.10";
+ };
+ graphlient = {
+ dependencies = ["faraday" "faraday_middleware" "graphql-client"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04c32rcn3j4d8sh039lkdfzn8xpifsbpsp7f90vlp2s531wbs16a";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ graphql = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01ldxhn59lfg5ivxc9m11v1qhw29ql95qcvwwcap49n0z7d1i3k5";
+ type = "gem";
+ };
+ version = "1.11.4";
+ };
+ graphql-client = {
+ dependencies = ["activesupport" "graphql"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g971rccyrs3rk8812r6az54p28g66m4ngdcbszg31mvddjaqkr4";
+ type = "gem";
+ };
+ version = "0.16.0";
+ };
+ graphql-docs = {
+ dependencies = ["commonmarker" "escape_utils" "extended-markdown-filter" "gemoji" "graphql" "html-pipeline" "sass"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12wzsikbn54b2hcv100hz7isq5gdjm5w5b8xya64ra5sw6sabq8d";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ grpc = {
+ dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rsglf7ag17n465iff7vlw83pn2rpl4kv9sb1rpf17nx6xpi7yl5";
+ type = "gem";
+ };
+ version = "1.30.2";
+ };
+ gssapi = {
+ dependencies = ["ffi"];
+ groups = ["kerberos"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ guard = {
+ dependencies = ["formatador" "listen" "lumberjack" "nenv" "notiffany" "pry" "shellany" "thor"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fwgvkmrg97xfswwgfrfcl1nc937yxwazfvpmf8vxj7cvnx7mfki";
+ type = "gem";
+ };
+ version = "2.16.2";
+ };
+ guard-compat = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ guard-rspec = {
+ dependencies = ["guard" "guard-compat" "rspec"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jkm5xp90gm4c5s51pmf92i9hc10gslwwic6mvk72g0yplya0yx4";
+ type = "gem";
+ };
+ version = "4.7.3";
+ };
+ haml = {
+ dependencies = ["temple" "tilt"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dwarfbc04bblljs4xg9fy57b5y8xrck6slhssa6bd7x58bh222c";
+ type = "gem";
+ };
+ version = "5.1.2";
+ };
+ haml_lint = {
+ dependencies = ["haml" "parallel" "rainbow" "rubocop" "sysexits"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0imdiwxqyca1i158yrqkdv6fa8sdfk8wwx2kaq6ad9i7k7jj365a";
+ type = "gem";
+ };
+ version = "0.36.0";
+ };
+ hamlit = {
+ dependencies = ["temple" "thor" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13wkrvyldk21xlc9illam495fpgf7w7bksaj8y6n00y036wmbg60";
+ type = "gem";
+ };
+ version = "2.11.0";
+ };
+ hana = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ij5clmkfl5ij9wdzr62b0w7j2qg7pb65mhvxa6mf1kv1xp6l585";
+ type = "gem";
+ };
+ version = "1.3.6";
+ };
+ hangouts-chat = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx";
+ type = "gem";
+ };
+ version = "0.0.5";
+ };
+ hashdiff = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ hashie = {
+ groups = ["default" "kerberos"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13bdzfp25c8k51ayzxqkbzag3wj5gc1jd8h7d985nsq6pn57g5xh";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ hashie-forbidden_attributes = {
+ dependencies = ["hashie"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ health_check = {
+ dependencies = ["railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07wrbfsfsprfmykc0qbkkgxpf8vlx4a8sp77acqrjsh395f6qcqv";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ heapy = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r9f38fpgjgaxskkwvsliijj6vfmgsff9pnranvvvzkdl67hk1hw";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ hipchat = {
+ dependencies = ["httparty" "mimemagic"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k";
+ type = "gem";
+ };
+ version = "1.5.2";
+ };
+ html-pipeline = {
+ dependencies = ["activesupport" "nokogiri"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19hc7njr029pzqljpfhzhdi0p2rgn8ihn3bdnai2apy6nj1g1sg2";
+ type = "gem";
+ };
+ version = "2.12.2";
+ };
+ html2text = {
+ dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ htmlentities = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+ type = "gem";
+ };
+ version = "4.3.4";
+ };
+ http = {
+ dependencies = ["addressable" "http-cookie" "http-form_data" "http-parser"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z8vmvnkrllkpzsxi94284di9r63g9v561a16an35izwak8g245y";
+ type = "gem";
+ };
+ version = "4.4.1";
+ };
+ http-accept = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09m1facypsdjynfwrcv19xcb1mqg8z6kk31g8r33pfxzh838c9n6";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ 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 = "1wx591jdhy84901pklh1n9sgh74gnvq1qyqxwchni1yrc49ynknc";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ http-parser = {
+ dependencies = ["ffi-compiler"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10wz818i7dq5zkcll0yf7pbjz1zqvs7mgh3xg3x6www2f2ccwxqj";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ httparty = {
+ dependencies = ["mime-types" "multi_xml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "109xvhl35dsk9zp65n5pdkhiijhqxdyvajbs74nkp4z8yl09vj32";
+ type = "gem";
+ };
+ version = "0.16.4";
+ };
+ httpclient = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+ type = "gem";
+ };
+ version = "2.8.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+ type = "gem";
+ };
+ version = "1.8.5";
+ };
+ i18n_data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v0cdwxiaqdwhaljd7z0fbx29q3r5kjl93xnjm5abi1x37645ncj";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ icalendar = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd";
+ type = "gem";
+ };
+ version = "2.4.1";
+ };
+ ice_nine = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+ type = "gem";
+ };
+ version = "0.11.2";
+ };
+ invisible_captcha = {
+ dependencies = ["rails"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15510dh1vh7l2xs2a4956nhxpnf10168r62i497nmcbyqpp1df88";
+ type = "gem";
+ };
+ version = "0.12.1";
+ };
+ ipaddress = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
+ type = "gem";
+ };
+ version = "0.8.3";
+ };
+ jaeger-client = {
+ dependencies = ["opentracing" "thrift"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a2qlkc1hkr5hkj2574l1a63sm04bdx98gfhh9m8vvp6psdrnpnb";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ jira-ruby = {
+ dependencies = ["activesupport" "atlassian-jwt" "multipart-post" "oauth"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bfqb5qkgbcjrspspa2lha2is0anjnby20x9gp7bfjr5j5j9my32";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ jmespath = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ js_regex = {
+ dependencies = ["character_set" "regexp_parser" "regexp_property_values"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zia0pxa2lrybwv51xzhj26rf3gx8zwg1cghbdk640rbsyr8sf9a";
+ type = "gem";
+ };
+ version = "3.4.0";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ json-jwt = {
+ dependencies = ["activesupport" "aes_key_wrap" "bindata"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nzbk1mrbf9mnvjpn3bxy8a85rjf94qmfdnvk78mjzk8pa0fvgdr";
+ type = "gem";
+ };
+ version = "1.13.0";
+ };
+ json-schema = {
+ dependencies = ["addressable"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz";
+ type = "gem";
+ };
+ version = "2.8.0";
+ };
+ json_schemer = {
+ dependencies = ["ecma-re-validator" "hana" "regexp_parser" "uri_template"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "194898b70ylkjqg7vhy4lps4a5g31n7xxb3vfacwfs40azkn83zm";
+ type = "gem";
+ };
+ version = "0.2.12";
+ };
+ jsonpath = {
+ dependencies = ["multi_json" "to_regexp"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bwgk17dwraaf6grv6v99xjjy3ds1sqsf1v49fnlyfjkniy6ap8q";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ jwt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ kaminari = {
+ dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vxkqciny5v4jgmjxl8qrgbmig2cij2iskqbwh4bfcmpxf467ch3";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ kaminari-actionview = {
+ dependencies = ["actionview" "kaminari-core"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w0p1hyv6lgf6h036cmn2kbkdv4x7g0g9q9kc5gzkpz7amlxr8ri";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ kaminari-activerecord = {
+ dependencies = ["activerecord" "kaminari-core"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02n5xxv6ilh39q2m6vcz7qrdai7ghk3s178dw6f0b3lavwyq49w3";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ kaminari-core = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h04cr4y1jfn81gxy439vmczifghc2cvsyw47aa32is5bbxg1wlz";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ kgio = {
+ groups = ["default" "unicorn"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ai6bzlvxbzpdl466p1qi4dlhx8ri2wcrp6x1l19y3yfs3a29rng";
+ type = "gem";
+ };
+ version = "2.11.3";
+ };
+ knapsack = {
+ dependencies = ["rake"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c69rcwfrdrnx8ddl6k1qxhw9f2dj5x5bbddz435isl2hfr5zh92";
+ type = "gem";
+ };
+ version = "1.17.0";
+ };
+ kramdown = {
+ dependencies = ["rexml"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ kramdown-parser-gfm = {
+ dependencies = ["kramdown"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ kubeclient = {
+ dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07ygwvdrdhqmvqj3g7hsrgwimr1xcphk9d6qjdxr0iynqaahn0l7";
+ type = "gem";
+ };
+ version = "4.9.1";
+ };
+ launchy = {
+ dependencies = ["addressable"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+ type = "gem";
+ };
+ version = "2.4.3";
+ };
+ letter_opener = {
+ dependencies = ["launchy"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09a7kgsmr10a0hrc9bwxglgqvppjxij9w8bxx91mnvh0ivaw0nq9";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ letter_opener_web = {
+ dependencies = ["actionmailer" "letter_opener" "railties"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17qhwrkncrrp1bi2f7fbkm5lpnkdsiwy8jcvgr2wa97ck8y4x2bb";
+ type = "gem";
+ };
+ version = "1.3.4";
+ };
+ license_finder = {
+ dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
+ groups = ["development" "omnibus" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kc4bkaxy6mm6kpbpg8hdjsqpzybh7cy5b45qydc7bfa9c35vr93";
+ type = "gem";
+ };
+ version = "6.0.0";
+ };
+ licensee = {
+ dependencies = ["rugged"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+ type = "gem";
+ };
+ version = "8.9.2";
+ };
+ listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ locale = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0997465kxvpxm92fiwc2b16l49mngk7b68g5k35ify0m3q0yxpdn";
+ type = "gem";
+ };
+ version = "2.1.3";
+ };
+ lockbox = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sgbs0frk601yc7bb33pz5z9cyadvj077vwy9k5zapsbn2rxf5aj";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ lograge = {
+ dependencies = ["actionpack" "activesupport" "railties" "request_store"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vrjm4yqn5l6q5gsl72fmk95fl6j9z1a05gzbrwmsm3gp1a1bgac";
+ type = "gem";
+ };
+ version = "0.11.2";
+ };
+ loofah = {
+ dependencies = ["crass" "nokogiri"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1alz1x6rkhbw10qpszr384299rf52rcyasn0619a9p50vzs8vczq";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ lru_redux = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yxghzg7476sivz8yyr9nkak2dlbls0b89vc2kg52k0nmg6d0wgf";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ lumberjack = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07rvqrizmqzbjzhdsh4l4fyif26a7czb506dvch18kr3nkkamim5";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ mail = {
+ dependencies = ["mini_mime"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+ type = "gem";
+ };
+ version = "2.7.1";
+ };
+ marcel = {
+ dependencies = ["mimemagic"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ marginalia = {
+ dependencies = ["actionpack" "activerecord"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0n870r50z859dkcjz6dqvbvm895rpzw047basvbbfv9gi22rlxlv";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ memoist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+ type = "gem";
+ };
+ version = "0.16.0";
+ };
+ memoizable = {
+ dependencies = ["thread_safe"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ memory_profiler = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04ivhv1bilwqm33jv28gar2vwzsichb5nipaq395d3axabv8qmfy";
+ type = "gem";
+ };
+ version = "0.9.14";
+ };
+ method_source = {
+ groups = ["default" "development" "metrics" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ 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";
+ };
+ mimemagic = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf";
+ type = "gem";
+ };
+ version = "0.3.5";
+ };
+ mini_histogram = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "127vmd85kwi85qjbb1431bi4j5gdy0pp6wrq1f88ja1pf3mlb50y";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ mini_magick = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lpq12z70n10c1qshcddd5nib2pkcbkwzvmiqqzj60l01k3x4fg9";
+ type = "gem";
+ };
+ version = "4.10.1";
+ };
+ mini_mime = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ mini_portile2 = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ minitest = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+ type = "gem";
+ };
+ version = "5.11.3";
+ };
+ ms_rest = {
+ dependencies = ["concurrent-ruby" "faraday" "timeliness"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jiha1bda5knpjqjymwik6i41n69gb0phcrgvmgc5icl4mcisai7";
+ type = "gem";
+ };
+ version = "0.7.6";
+ };
+ ms_rest_azure = {
+ dependencies = ["concurrent-ruby" "faraday" "faraday-cookie_jar" "ms_rest"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06i37b84r2q206kfm5vsi9s1qiiy09091vhvc5pzb7320h0hc1ih";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ msgpack = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lva6bkvb4mfa0m3bqn4lm4s4gi81c40jvdcsrxr6vng49q9daih";
+ type = "gem";
+ };
+ version = "1.3.3";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
+ type = "gem";
+ };
+ version = "1.14.1";
+ };
+ multi_xml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ multipart-post = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ murmurhash3 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1szwcm44z5jg1l4dq73zyjw4rjin23ihkhrw5cpcjrb6cg8hd3y7";
+ type = "gem";
+ };
+ version = "0.1.6";
+ };
+ mustermann = {
+ dependencies = ["ruby2_keywords"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ccm54qgshr1lq3pr1dfh7gphkilc19dp63rw6fcx7460pjwy88a";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ mustermann-grape = {
+ dependencies = ["mustermann"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0djlbi7nh161a5mwjdm1ya4hc6lyzc493ah48gn37gk6vyri5kh0";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ nakayoshi_fork = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mj5czi7rxxmfq4v9qjz74lcqypvnjxhxqfs71zhb2rsfa97a6jg";
+ type = "gem";
+ };
+ version = "0.0.4";
+ };
+ nap = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ nenv = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ net-ldap = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg";
+ type = "gem";
+ };
+ version = "0.16.2";
+ };
+ net-ntp = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z96m7nnb9f634cz4i6p0x89z7g9i9h97cnk5f3x3q5x090kzisv";
+ type = "gem";
+ };
+ version = "2.1.3";
+ };
+ net-ssh = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l0kgd7w08fx2522aw8grlfzwmrgw4jgjakpkgkwm0134g5xv432";
+ type = "gem";
+ };
+ version = "6.0.0";
+ };
+ netrc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ nio4r = {
+ groups = ["default" "puma" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cbwp1kbv6b2qfxv8sarv0d0ilb257jihlvdqj8f5pdm0ksq1sgk";
+ type = "gem";
+ };
+ version = "2.5.4";
+ };
+ no_proxy_fix = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "006dmdb640v1kq0sll3dnlwj1b0kpf3i1p27ygyffv8lpcqlr6sf";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+ type = "gem";
+ };
+ version = "1.10.10";
+ };
+ nokogumbo = {
+ dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sxjnpjvrn10gdmfw2dimhch861lz00f28hvkkz0b1gc2rb65k9s";
+ type = "gem";
+ };
+ version = "2.0.2";
+ };
+ notiffany = {
+ dependencies = ["nenv" "shellany"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f47h3bmg1apr4x51szqfv3rh2vq58z3grh4w02cp3bzbdh6jxnk";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ numerizer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ysxf30qcybh131r98frp38sqqkdhcjwpnajgrxl2w2kxvapd075";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ oauth = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+ type = "gem";
+ };
+ version = "0.5.4";
+ };
+ oauth2 = {
+ dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bhakjh30vi8scqwnhd1c9qkac9r8hh2lr0dbs5ynwmrc5djxknm";
+ type = "gem";
+ };
+ version = "1.4.4";
+ };
+ octokit = {
+ dependencies = ["faraday" "sawyer"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yg6dhd028j74sm8hpw9w7bwfwlkml9wiis7nq20ivfsbcz4g8ac";
+ type = "gem";
+ };
+ version = "4.15.0";
+ };
+ oj = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zik71a9dj2c0cnbqxjfzgrg6r2l3f7584813z6asl50nfdbf7jw";
+ type = "gem";
+ };
+ version = "3.10.6";
+ };
+ omniauth = {
+ dependencies = ["hashie" "rack"];
+ groups = ["default" "kerberos"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ omniauth-atlassian-oauth2 = {
+ dependencies = ["omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jbnbp0pnasyrf0mgyig72hx8bdwhv78na6ffqrs1f4a3155f1zb";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ omniauth-auth0 = {
+ dependencies = ["omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ omniauth-authentiq = {
+ dependencies = ["jwt" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ omniauth-azure-oauth2 = {
+ dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a3iqy63l1jd6na4y0bj4a8mlp7gcn3a0awnz9g79fa8n4v2g8n4";
+ type = "gem";
+ };
+ version = "0.0.10";
+ };
+ omniauth-cas3 = {
+ dependencies = ["addressable" "nokogiri" "omniauth"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ omniauth-facebook = {
+ dependencies = ["omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ omniauth-github = {
+ dependencies = ["omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xbk0dbxqfpyfb33ghz6vrlz3m6442rp18ryf13gwzlnifcawhlb";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ omniauth-gitlab = {
+ dependencies = ["omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ omniauth-google-oauth2 = {
+ dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03v2gqpsbdhkqaxhvzr83za885awm6pgskv3mkyfvang7mr321df";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ omniauth-kerberos = {
+ dependencies = ["omniauth-multipassword" "timfel-krb5-auth"];
+ groups = ["kerberos"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ omniauth-multipassword = {
+ dependencies = ["omniauth"];
+ groups = ["default" "kerberos"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ omniauth-oauth = {
+ dependencies = ["oauth" "omniauth"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ omniauth-oauth2 = {
+ dependencies = ["oauth2" "omniauth"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ omniauth-oauth2-generic = {
+ dependencies = ["omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273";
+ type = "gem";
+ };
+ version = "0.2.2";
+ };
+ omniauth-salesforce = {
+ dependencies = ["omniauth" "omniauth-oauth2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sr7xmffx6dbsrvnh6spka5ljyzf69iac754xw5r1736py41qhpj";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ omniauth-saml = {
+ dependencies = ["omniauth" "ruby-saml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ omniauth-shibboleth = {
+ dependencies = ["omniauth"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ omniauth-twitter = {
+ dependencies = ["omniauth-oauth" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ omniauth_crowd = {
+ dependencies = ["activesupport" "nokogiri" "omniauth"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wiq1vnwjddzw2qzkpr3nqzx6glmcz5pfylw10pc7vkzdcmkpy37";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ omniauth_openid_connect = {
+ dependencies = ["addressable" "omniauth" "openid_connect"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wxf52yggvwmyg6f9fiykh1sk51xx34i6x6m8f06ia56npslc4aw";
+ type = "gem";
+ };
+ version = "0.3.5";
+ };
+ open4 = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1";
+ type = "gem";
+ };
+ version = "1.3.4";
+ };
+ openid_connect = {
+ dependencies = ["activemodel" "attr_required" "json-jwt" "rack-oauth2" "swd" "tzinfo" "validate_email" "validate_url" "webfinger"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r50vwf9hsf6r8gx5mwqs3w3w92l864ikiz9d0fcibqsr1489pbg";
+ type = "gem";
+ };
+ version = "1.1.8";
+ };
+ openssl = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03wbynzkhay7l1x76srjkg91q48mxl575vrxb3blfxlpqwsvvp0w";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+ openssl-signature_algorithm = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14d95jr5z6dgvpwf52p7ckjf3w3cihin2k6g9599711pfxdj4fp5";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ opentracing = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11lj1d8vq0hkb5hjz8q4lm82cddrggpbb33dhqfn7rxhwsmxgdfy";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ optimist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
+ type = "gem";
+ };
+ version = "3.0.1";
+ };
+ org-ruby = {
+ dependencies = ["rubypants"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk";
+ type = "gem";
+ };
+ version = "0.9.12";
+ };
+ orm_adapter = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ os = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ parallel = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17b127xxmm2yqdz146qwbs57046kn0js1h8synv01dwqz2z1kp2l";
+ type = "gem";
+ };
+ version = "1.19.2";
+ };
+ parser = {
+ dependencies = ["ast"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z";
+ type = "gem";
+ };
+ version = "2.7.2.0";
+ };
+ parslet = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88";
+ type = "gem";
+ };
+ version = "1.8.2";
+ };
+ peek = {
+ dependencies = ["railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k1yggixrcj72jlc98hi3jjd04x71dpynn8dxpcdhinyijniwl6n";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ pg = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj";
+ type = "gem";
+ };
+ version = "1.2.3";
+ };
+ png_quantizator = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sqhydp5g9ly1kgfiya1fc6srmhf6avrb74j09z3lp0jck8d88v0";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ po_to_json = {
+ dependencies = ["json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ premailer = {
+ dependencies = ["addressable" "css_parser" "htmlentities"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xrhmialxn5vlp1nmf40a4db9gji4h2wbzd7f43sz64z8lvrjj6h";
+ type = "gem";
+ };
+ version = "1.11.1";
+ };
+ premailer-rails = {
+ dependencies = ["actionmailer" "premailer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bqi7d4f15vy3f1g0xb3bxmncfbzv9dd3ilhqj0plvw64xqbkp3w";
+ type = "gem";
+ };
+ version = "1.10.3";
+ };
+ proc_to_ast = {
+ dependencies = ["coderay" "parser" "unparser"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
+ type = "gem";
+ };
+ version = "0.1.0";
+ };
+ procto = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
+ type = "gem";
+ };
+ version = "0.0.3";
+ };
+ prometheus-client-mmap = {
+ groups = ["metrics"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i0h9ixdvxw1n9ynxsrbc1lkx3dvd6r78iiwgwnqfz3fap6jgd9p";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ pry = {
+ dependencies = ["coderay" "method_source"];
+ groups = ["default" "development" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0iyw4q4an2wmk8v5rn2ghfy2jaz9vmw2nk8415nnpx2s866934qk";
+ type = "gem";
+ };
+ version = "0.13.1";
+ };
+ pry-byebug = {
+ dependencies = ["byebug" "pry"];
+ groups = ["development" "test"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv";
+ type = "gem";
+ };
+ version = "3.9.0";
+ };
+ pry-rails = {
+ dependencies = ["pry"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6";
+ type = "gem";
+ };
+ version = "0.3.9";
+ };
+ public_suffix = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+ type = "gem";
+ };
+ version = "4.0.6";
+ };
+ pyu-ruby-sasl = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn";
+ type = "gem";
+ };
+ version = "0.0.3.3";
+ };
+ raabro = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xzdmbn48753f6k0ckirp8ja5p0xn1a92wbwxfyggyhj0hza9ylq";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ rack = {
+ groups = ["default" "development" "kerberos" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+ type = "gem";
+ };
+ version = "2.2.3";
+ };
+ rack-accept = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936";
+ type = "gem";
+ };
+ version = "0.4.5";
+ };
+ rack-attack = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15b8lk54j2abqhpn588b1wvbzwmxwa7iql6241kxpjc0gyb51p0z";
+ type = "gem";
+ };
+ version = "6.3.0";
+ };
+ rack-cors = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07dppmm1ah1gs31sb5byrkkady9vqzwjmpd92c8425nc6yzwknik";
+ type = "gem";
+ };
+ version = "1.0.6";
+ };
+ rack-oauth2 = {
+ dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b0h0rlfl0p0drymwfc71g87fp66ck3205pl32z89xsgh0lzw25k";
+ type = "gem";
+ };
+ version = "1.16.0";
+ };
+ rack-protection = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk";
+ type = "gem";
+ };
+ version = "2.0.5";
+ };
+ rack-proxy = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ rack-test = {
+ dependencies = ["rack"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ rack-timeout = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d4dgbf8rgqx03lwsm8j6i20lzawk1bsvzfj5bhzrsycfyfk25aj";
+ type = "gem";
+ };
+ version = "0.5.2";
+ };
+ rails = {
+ dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qqsiwsb13sxkvxj54aybjhbxqi45fyiykaz5isc1y9frm2yyw64";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ rails-controller-testing = {
+ dependencies = ["actionpack" "actionview" "activesupport"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "151f303jcvs8s149mhx2g5mn67487x0blrf9dzl76q1nb7dlh53l";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ rails-dom-testing = {
+ dependencies = ["activesupport" "nokogiri"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ rails-html-sanitizer = {
+ dependencies = ["loofah"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ rails-i18n = {
+ dependencies = ["i18n" "railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05mcgv748vppnm3fnml37wjy3dw61wj8vfw14ldaj1yx1bmkhb07";
+ type = "gem";
+ };
+ version = "6.0.0";
+ };
+ railties = {
+ dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05b79r0ms8jrs91zml1190qfxmnmks90g0sd820ks9msyr8xdp7j";
+ type = "gem";
+ };
+ version = "6.0.3.3";
+ };
+ rainbow = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ raindrops = {
+ groups = ["metrics" "unicorn"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zjja00mzgx2lddb7qrn14k7qrnwhf4bpmnlqj78m1pfxh7svync";
+ type = "gem";
+ };
+ version = "0.19.1";
+ };
+ rake = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+ type = "gem";
+ };
+ version = "13.0.1";
+ };
+ rb-fsevent = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
+ type = "gem";
+ };
+ version = "0.10.4";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
+ type = "gem";
+ };
+ version = "0.10.1";
+ };
+ rblineprof = {
+ dependencies = ["debugger-ruby_core_source"];
+ groups = ["development"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ rbtrace = {
+ dependencies = ["ffi" "msgpack" "optimist"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn";
+ type = "gem";
+ };
+ version = "0.4.14";
+ };
+ rchardet = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ rdoc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zh39dpsqlhhi4aba1sbrk504d88p38djk8cansjq0fwndq7w4zb";
+ type = "gem";
+ };
+ version = "6.1.2";
+ };
+ re2 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16q71cc9wx342c697q18pkz19ym4ncjd97hcw4v6f1mgflkdv400";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ recaptcha = {
+ dependencies = ["json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "121pkq8kwqjh4l751xzx15bjp5vmf5pirfmpb11h71zsiavjqv6w";
+ type = "gem";
+ };
+ version = "4.13.1";
+ };
+ recursive-open-struct = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12manni00r5qn50z8w316pnm8mqn858i5kj6s9sr9sfl8qx8ws5g";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ RedCloth = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy";
+ type = "gem";
+ };
+ version = "4.3.2";
+ };
+ redis = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08v2y91q1pmv12g9zsvwj66w3s8j9d82yrmxgyv4y4gz380j3wyh";
+ type = "gem";
+ };
+ version = "4.1.3";
+ };
+ redis-actionpack = {
+ dependencies = ["actionpack" "redis-rack" "redis-store"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c2276zzc0044zh37a8frx1v7hnra7z7k126154ps7njbqngfdv3";
+ type = "gem";
+ };
+ version = "5.2.0";
+ };
+ redis-activesupport = {
+ dependencies = ["activesupport" "redis-store"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14a3z8810j02ysvg53f3mvcfb4rw34m91yfd19zy9y5lb3yv2g59";
+ type = "gem";
+ };
+ version = "5.2.0";
+ };
+ redis-namespace = {
+ dependencies = ["redis"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wb4x8bg2d0plv3izpmi1sd7nd1ix8nxw7b43hd9bac08f4w62mx";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ redis-rack = {
+ dependencies = ["rack" "redis-store"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ldw5sxyd80pv0gr89kvn6ziszlbs8lv1a573fkm6d0f11fps413";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+ redis-rails = {
+ dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
+ type = "gem";
+ };
+ version = "5.0.2";
+ };
+ redis-store = {
+ dependencies = ["redis"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1isqzzds9kszc2nn8jiy8ikry01qspn7637ba9z2k6sk7vky46d9";
+ type = "gem";
+ };
+ version = "1.8.1";
+ };
+ regexp_parser = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x4s82lgf0l71y3xc9gp4qxkrgx1kv8f6avdqd68l46ijbyvicdm";
+ type = "gem";
+ };
+ version = "1.8.2";
+ };
+ regexp_property_values = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iwapp91sbvafqp12cq834rgy1ydrmrsh5w1a0wfsk4scdxcdwlb";
+ type = "gem";
+ };
+ version = "0.3.5";
+ };
+ representable = {
+ dependencies = ["declarative" "declarative-option" "uber"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
+ type = "gem";
+ };
+ version = "3.0.4";
+ };
+ request_store = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ responders = {
+ dependencies = ["actionpack" "railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p7pqcfq33q1z4xlp4qm94w4h3fzc1yvr3cny16d00i8b20v4rx2";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ rest-client = {
+ dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ retriable = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ rexml = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ rinku = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ rotp = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+ rouge = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yvcv901lrh5rfnk1h4h56hf2m6n9pd6w8n96vag74aakgz3gaxn";
+ type = "gem";
+ };
+ version = "3.25.0";
+ };
+ rqrcode = {
+ dependencies = ["chunky_png"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
+ rqrcode-rails3 = {
+ dependencies = ["rqrcode"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg";
+ type = "gem";
+ };
+ version = "0.1.7";
+ };
+ rspec = {
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+ type = "gem";
+ };
+ version = "3.9.0";
+ };
+ rspec-core = {
+ dependencies = ["rspec-support"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qzc1wdjb1qnbimjl8i1q1r1z5hdv2lmcw7ysz7jawj4d1cvpqvd";
+ type = "gem";
+ };
+ version = "3.9.1";
+ };
+ rspec-expectations = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fjbwvq7qaz6h3sh1bs9q2qiy4zwcrc8f7xwv82dx2bc09dmqzhd";
+ type = "gem";
+ };
+ version = "3.9.1";
+ };
+ rspec-mocks = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+ type = "gem";
+ };
+ version = "3.9.1";
+ };
+ rspec-parameterized = {
+ dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c0892jbaznnldk1wi24qxm70g4zhw2idqx516rhgdzgd7yh5j31";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ rspec-rails = {
+ dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01cyd449g4lsgrlck7nn3ynn8c8vwfhjb913y05wil56y77wsfkl";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ rspec-retry = {
+ dependencies = ["rspec-core"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nnqcg2yd3nn187zbvh4cgx8xsvdk56lz1985qy7232v7i8yidw6";
+ type = "gem";
+ };
+ version = "0.6.1";
+ };
+ rspec-support = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zwpyq1na23pvgacpxs2v9nwfbjbw6x3arca5j3l1xagigqmzhc3";
+ type = "gem";
+ };
+ version = "3.9.2";
+ };
+ rspec_junit_formatter = {
+ dependencies = ["rspec-core"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1aynmrgnv26pkprrajvp7advb8nbh0x4pkwk6jwq8qmwzarzk21p";
+ type = "gem";
+ };
+ version = "0.4.1";
+ };
+ rspec_profiling = {
+ dependencies = ["activerecord" "pg" "rails" "sqlite3"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vkfizrwxgs029s9imz8g3p55ggncls709hf98brmv6wg5znjibs";
+ type = "gem";
+ };
+ version = "0.0.6";
+ };
+ rubocop = {
+ dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yh71v5d7aw6jz7505d2sv0n0ldf3wh0ly3lphdanjl0n8b42y9h";
+ type = "gem";
+ };
+ version = "0.89.1";
+ };
+ rubocop-ast = {
+ dependencies = ["parser"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "165ws2vwnw33nlqgzvzzjjp1zhkc712a92lbpbjx8j83g44dmdy4";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ rubocop-gitlab-security = {
+ dependencies = ["rubocop"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ rubocop-performance = {
+ dependencies = ["rubocop" "rubocop-ast"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13v66wi5l56bvp97nlmyxscq8ipkzfha1g7nlhcrbikvmrm3h5kf";
+ type = "gem";
+ };
+ version = "1.8.1";
+ };
+ rubocop-rails = {
+ dependencies = ["activesupport" "rack" "rubocop"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14g703lv0cbqw504cdjsv0yydrsnm61rwg0n0mql4zl5hw1n7lfh";
+ type = "gem";
+ };
+ version = "2.8.1";
+ };
+ rubocop-rspec = {
+ dependencies = ["rubocop" "rubocop-ast"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0albi9zn8zrz1bb105xkcn5xdv6q7i7r34h9m4jsj5ygsvkkh8kv";
+ type = "gem";
+ };
+ version = "1.44.1";
+ };
+ ruby-enum = {
+ dependencies = ["i18n"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
+ type = "gem";
+ };
+ version = "0.7.2";
+ };
+ ruby-fogbugz = {
+ dependencies = ["crack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ ruby-prof = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g1j37fy53ly6351asfcnik033gwkp4kjma7lji1yklmj86d4dg7";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ ruby-progressbar = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+ type = "gem";
+ };
+ version = "1.10.1";
+ };
+ ruby-saml = {
+ dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3";
+ type = "gem";
+ };
+ version = "1.7.2";
+ };
+ ruby-statistics = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xmd9dk1fcmii38apwn3py00qfqxd5yzylafm49n24plzwv913nh";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+ ruby2_keywords = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+ type = "gem";
+ };
+ version = "0.0.2";
+ };
+ ruby_parser = {
+ dependencies = ["sexp_processor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b6l5bxbamaplp904i7f088j806v0pqi0kvhb8xx81v4whl40y2k";
+ type = "gem";
+ };
+ version = "3.15.0";
+ };
+ rubyntlm = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+ type = "gem";
+ };
+ version = "0.6.2";
+ };
+ rubypants = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ rubyzip = {
+ groups = ["default" "development" "omnibus" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gz0ri0pa2xr7b6bf66yjc2wfvk51f4gi6yk7bklwl1nr65zc4gz";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ rugged = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rdidxgpk1b6y1jq9v77lcx5khq0s9q0s253lr8x57d3hk43iskx";
+ type = "gem";
+ };
+ version = "0.28.4.1";
+ };
+ safe_yaml = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ safety_net_attestation = {
+ dependencies = ["jwt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1khq0y5w7lf2b9a220298hphf3pakd216jc9a4x4a9pdwxs2vgln";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ sanitize = {
+ dependencies = ["crass" "nokogiri" "nokogumbo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18m3zcf207gcrmghx288w3n2kpphc22lbmbc1wdx1nzcn8g2yddh";
+ type = "gem";
+ };
+ version = "5.2.1";
+ };
+ sass = {
+ dependencies = ["sass-listen"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v";
+ type = "gem";
+ };
+ version = "3.5.5";
+ };
+ sass-listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ sassc = {
+ dependencies = ["ffi" "rake"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sr4825rlwsrl7xrsm0sgalcpf5zgp4i56dbi3qxfa9lhs8r6zh4";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ sassc-rails = {
+ dependencies = ["railties" "sassc" "sprockets" "sprockets-rails" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18mgdjxdzpbw92zrllynxw7jn7yihi85j3dg7i4f6c39w1scqkbn";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ sawyer = {
+ dependencies = ["addressable" "faraday"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz";
+ type = "gem";
+ };
+ version = "0.8.2";
+ };
+ scss_lint = {
+ dependencies = ["sass"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s6dzk4n9pnmqciliggwpiny43vc3cx3n2d5gqa9aqng77ff7yv7";
+ type = "gem";
+ };
+ version = "0.59.0";
+ };
+ securecompare = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ay65wba4i7bvfqyvf5i4r48q6g70s5m724diz9gdvdavscna36b";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ seed-fu = {
+ dependencies = ["activerecord" "activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi";
+ type = "gem";
+ };
+ version = "2.3.7";
+ };
+ selenium-webdriver = {
+ dependencies = ["childprocess" "rubyzip"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0adcvp86dinaqq3nhf8p3m0rl2g6q0a4h52k0i7kdnsg1qz9k86y";
+ type = "gem";
+ };
+ version = "3.142.7";
+ };
+ sentry-raven = {
+ dependencies = ["faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17j4br2lpnd8066d50mkg9kwk9v70hn3zfiqkvysd8p9nffmqnm0";
+ type = "gem";
+ };
+ version = "3.0.4";
+ };
+ settingslogic = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar";
+ type = "gem";
+ };
+ version = "2.0.9";
+ };
+ sexp_processor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p0jj2la8bhb7kgqmqbksaq7idnpgjv6asgfd18d2l3z4kra14cj";
+ type = "gem";
+ };
+ version = "4.15.1";
+ };
+ shellany = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf";
+ type = "gem";
+ };
+ version = "0.0.1";
+ };
+ shoulda-matchers = {
+ dependencies = ["activesupport"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s6a2i39lsqq8rrkk2pddqcb10bsihxy3v5gpnc2gk8xakj1brdq";
+ type = "gem";
+ };
+ version = "4.0.1";
+ };
+ sidekiq = {
+ dependencies = ["connection_pool" "rack" "rack-protection" "redis"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kw4z9mr8h1rddx6f81gf7glw9pf90w0kvgc2fx4g9hspgh9xh7y";
+ type = "gem";
+ };
+ version = "5.2.9";
+ };
+ sidekiq-cron = {
+ dependencies = ["fugit" "sidekiq"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1aliswahmpxn1ib2brn4126gk97ac3zdnwr71mn8vzbr3vdd7fl0";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ signet = {
+ dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10g2667fvxnc50hcd1aywgsbf8j7nrckg3n7zjvywmyz82pwmpqp";
+ type = "gem";
+ };
+ version = "0.14.0";
+ };
+ simple_po_parser = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ simplecov = {
+ dependencies = ["docile" "simplecov-html"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ycx5q699ycbjhp28sjbkrd62vwxlrb7fh4v2m7sjsp2qhi6cf6r";
+ type = "gem";
+ };
+ version = "0.18.5";
+ };
+ simplecov-cobertura = {
+ dependencies = ["simplecov"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07ikl2y382g6ibzfflsamh13qlsr2769bx09kxdcs894cl882wwv";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ simplecov-html = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1v7b4mf7njw8kv4ghl4q7mwz3q0flbld7v8blp4m4m3n3aq11bn9";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ sixarm_ruby_unaccent = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11237b8r8p7fc0cpn04v9wa7ggzq0xm6flh10h1lnb6zgc3schq0";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ slack-messenger = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1h89asinyyyq88v89fdc3nw0g74vq2f7p59s18jrq3svpv913ij9";
+ type = "gem";
+ };
+ version = "2.3.4";
+ };
+ snowplow-tracker = {
+ dependencies = ["contracts"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05136477ifa567aym9k8nqqmwv3plbczgh9x9fbz86860vym5v4w";
+ type = "gem";
+ };
+ version = "0.6.1";
+ };
+ spring = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x2wz1y2b0kp7mlk9k8zkl39rddk2l3x34b7dar3bh3axd1cs30d";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ spring-commands-rspec = {
+ dependencies = ["spring"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ sprockets = {
+ dependencies = ["concurrent-ruby" "rack"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+ type = "gem";
+ };
+ version = "3.7.2";
+ };
+ sprockets-rails = {
+ dependencies = ["actionpack" "activesupport" "sprockets"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mwmz36265646xqfyczgr1mhkm1hfxgxxvgdgr4xfcbf2g72p1k2";
+ type = "gem";
+ };
+ version = "3.2.2";
+ };
+ sqlite3 = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
+ type = "gem";
+ };
+ version = "1.3.13";
+ };
+ sshkey = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ stackprof = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g2zzasjdr1qnwmpmn28ddv2z9jsnv4w5raiz26y9h1jh03sagqd";
+ type = "gem";
+ };
+ version = "0.2.15";
+ };
+ state_machines = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ state_machines-activemodel = {
+ dependencies = ["activemodel" "state_machines"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05c2dw3115zj3pmyyqh2iypc7afj8ibhrghisg0d61z7gzmir1rd";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ state_machines-activerecord = {
+ dependencies = ["activerecord" "state_machines-activemodel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12g7yqy11fpfiprzc86pwa9jjky1h3haxj37kg47467fgg43p511";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ swd = {
+ dependencies = ["activesupport" "attr_required" "httpclient"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s2vjb6f13za7p1iycl2p73d3p202xa6xny9fjrp8ynwsqix7lyd";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ sys-filesystem = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ sysexits = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ temple = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "060zzj7c2kicdfk6cpnn40n9yjnhfrr13d0rsbdhdij68chp2861";
+ type = "gem";
+ };
+ version = "0.8.2";
+ };
+ terminal-table = {
+ dependencies = ["unicode-display_width"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ terser = {
+ dependencies = ["execjs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13mj7ds6kwl1z5dp8zg6b9l3vq9012g8yr99hlpf3d1dgsyf1hl0";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ test-prof = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pdb0szrj4mbczhlx2inszpj54rgnayvy2f2fff4q7jll2iz61i0";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ text = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ thin = {
+ dependencies = ["daemons" "eventmachine" "rack"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
+ type = "gem";
+ };
+ version = "1.7.2";
+ };
+ thor = {
+ groups = ["default" "development" "omnibus" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+ type = "gem";
+ };
+ version = "0.20.3";
+ };
+ thread_safe = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ thrift = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q";
+ type = "gem";
+ };
+ version = "0.13.0";
+ };
+ tilt = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
+ type = "gem";
+ };
+ version = "2.0.10";
+ };
+ timecop = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ timeliness = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gvp9b7yn4pykn794cibylc9ys1lw7fzv7djx1433icxw4y26my3";
+ type = "gem";
+ };
+ version = "0.3.10";
+ };
+ timfel-krb5-auth = {
+ groups = ["default" "kerberos"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b";
+ type = "gem";
+ };
+ version = "0.8.3";
+ };
+ to_regexp = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rgabfhnql6l4fx09mmj5d0vza924iczqf2blmn82l782b6qqi9v";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ toml = {
+ dependencies = ["parslet"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ toml-rb = {
+ dependencies = ["citrus"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ tpm-key_attestation = {
+ dependencies = ["bindata" "openssl-signature_algorithm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kdqyanz211wmxjzfiz2wg17gj6p4431qvjr0i6sp3d6268sssg4";
+ type = "gem";
+ };
+ version = "0.9.0";
+ };
+ truncato = {
+ dependencies = ["htmlentities" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z36dprfj9l4jwgwb2wv4v3cilm53v7i1ywfmm5f1dl352id3ak4";
+ type = "gem";
+ };
+ version = "0.7.11";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0skr6ih9cr3pwp8l84f0z7fy3q9kiq8hw0sg3zqw0hpbbyj05743";
+ type = "gem";
+ };
+ version = "1.2.8";
+ };
+ u2f = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ 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 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
+ type = "gem";
+ };
+ version = "0.0.7.7";
+ };
+ unicode-display_width = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ unicode_plot = {
+ dependencies = ["enumerable-statistics"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09cv90pi414ns1knbi0zjbn59071qjgym974jpsgj7yjh70dpj0g";
+ type = "gem";
+ };
+ version = "0.0.4";
+ };
+ unicode_utils = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ unicorn = {
+ dependencies = ["kgio" "raindrops"];
+ groups = ["unicorn"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cznkq0agsm7s66nbqbalmq5nlc5cdpd2h88r8jdzsc7wsi5a098";
+ type = "gem";
+ };
+ version = "5.5.5";
+ };
+ unicorn-worker-killer = {
+ dependencies = ["get_process_mem" "unicorn"];
+ groups = ["unicorn"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva";
+ type = "gem";
+ };
+ version = "0.4.4";
+ };
+ uniform_notifier = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vm4aix8jmv42s1x58m3lj3xwkbxyn9qn6lzhhig0d1j8fv6j30c";
+ type = "gem";
+ };
+ version = "1.13.0";
+ };
+ unleash = {
+ dependencies = ["murmurhash3"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xs2ml9cwskddsxick3a9wnasy7q6wmc0dbydfcaspfl2cjmp1rk";
+ type = "gem";
+ };
+ version = "0.1.5";
+ };
+ unparser = {
+ dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qg1apxlnf4kxfj9jpm6hhv73jsncbs4zpsgyan32p5r331q1gmx";
+ type = "gem";
+ };
+ version = "0.4.7";
+ };
+ uri_template = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p8qbxlpmg3msw0ihny6a3gsn0yvydx9ksh5knn8dnq06zhqyb1i";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
+ valid_email = {
+ dependencies = ["activemodel" "mail"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w3587sa7d1a51djyla57pbv9v105jsqvxhkg6vbxi343fsm455q";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ validate_email = {
+ dependencies = ["activemodel" "mail"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r1fz29l699arka177c9xw7409d1a3ff95bf7a6pmc97slb91zlx";
+ type = "gem";
+ };
+ version = "0.1.6";
+ };
+ validate_url = {
+ dependencies = ["activemodel" "public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k0bfxzvdcf1nrqhvnyhijc4mwab9wn4qvqb0ynq6p8dj0f866zi";
+ type = "gem";
+ };
+ version = "1.0.8";
+ };
+ validates_hostname = {
+ dependencies = ["activerecord" "activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "066hkh3ihzhrp5a9knjgqqfi5dyv4z5hfrpdj4fpgxjkvkfaxivy";
+ type = "gem";
+ };
+ version = "1.0.10";
+ };
+ version_sorter = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hbdw3vh856f5yg5mbj4498l6vh90cd3pn22ikr3ranzkrh73l3s";
+ type = "gem";
+ };
+ version = "2.2.4";
+ };
+ vmstat = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ warden = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fr9n9i9r82xb6i61fdw4xgc7zjv7fsdrr4k0njchy87iw9fl454";
+ type = "gem";
+ };
+ version = "1.2.8";
+ };
+ webauthn = {
+ dependencies = ["android_key_attestation" "awrence" "bindata" "cbor" "cose" "openssl" "safety_net_attestation" "securecompare" "tpm-key_attestation"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17nqmi6n4s3i6pmcd7myf7w49q9xd5xlcvz9vbqijlm4yicyxywn";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ webfinger = {
+ dependencies = ["activesupport" "httpclient"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m0jh8k7c0ifh2jhbn7ihqrmn5fi754wflva97zgy70hpdvxyjar";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ webmock = {
+ dependencies = ["addressable" "crack" "hashdiff"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z9k677j9f6jrsj6nkxl2h969q0zyfzqj2ibxldznd5jaqj85xmw";
+ type = "gem";
+ };
+ version = "3.9.1";
+ };
+ websocket-driver = {
+ dependencies = ["websocket-extensions"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i3rs4kcj0jba8idxla3s6xd1xfln3k8b4cb1dik2lda3ifnp3dh";
+ type = "gem";
+ };
+ version = "0.7.3";
+ };
+ websocket-extensions = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw";
+ type = "gem";
+ };
+ version = "0.1.5";
+ };
+ wikicloth = {
+ dependencies = ["builder" "expression_parser" "rinku"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s";
+ type = "gem";
+ };
+ version = "0.8.1";
+ };
+ with_env = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ xml-simple = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8";
+ type = "gem";
+ };
+ version = "1.1.5";
+ };
+ xpath = {
+ dependencies = ["nokogiri"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd";
+ type = "gem";
+ };
+ version = "3.2.0";
+ };
+ yajl-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ zeitwerk = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12n0hiawqayzchi0yga5n19hi63b2snd49fv3n23n2i4pp05jzrp";
+ type = "gem";
+ };
+ version = "2.4.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/update.py b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/update.py
new file mode 100755
index 000000000000..0f215370e184
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/update.py
@@ -0,0 +1,242 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i python3 -p bundix bundler common-updater-scripts nix nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log vgo2nix yarn2nix
+
+import click
+import click_log
+import os
+import re
+import logging
+import subprocess
+import json
+import pathlib
+from distutils.version import LooseVersion
+from typing import Iterable
+
+import requests
+
+logger = logging.getLogger(__name__)
+
+
+class GitLabRepo:
+ version_regex = re.compile(r"^v\d+\.\d+\.\d+(\-rc\d+)?(\-ee)?")
+ def __init__(self, owner: str = 'gitlab-org', repo: str = 'gitlab'):
+ self.owner = owner
+ self.repo = repo
+
+ @property
+ def url(self):
+ return f"https://gitlab.com/{self.owner}/{self.repo}"
+
+ @property
+ def tags(self) -> Iterable[str]:
+ r = requests.get(self.url + "/refs?sort=updated_desc&ref=master").json()
+ tags = r.get("Tags", [])
+
+ # filter out versions not matching version_regex
+ versions = list(filter(self.version_regex.match, tags))
+
+ # sort, but ignore v and -ee for sorting comparisons
+ versions.sort(key=lambda x: LooseVersion(x.replace("v", "").replace("-ee", "")), reverse=True)
+ return versions
+
+ def get_git_hash(self, rev: str):
+ return subprocess.check_output(['nix-universal-prefetch', 'fetchFromGitLab', '--owner', self.owner, '--repo', self.repo, '--rev', rev]).decode('utf-8').strip()
+
+ @staticmethod
+ def rev2version(tag: str) -> str:
+ """
+ normalize a tag to a version number.
+ This obviously isn't very smart if we don't pass something that looks like a tag
+ :param tag: the tag to normalize
+ :return: a normalized version number
+ """
+ # strip v prefix
+ version = re.sub(r"^v", '', tag)
+ # strip -ee suffix
+ return re.sub(r"-ee$", '', version)
+
+ def get_file(self, filepath, rev):
+ """
+ returns file contents at a given rev
+ :param filepath: the path to the file, relative to the repo root
+ :param rev: the rev to fetch at
+ :return:
+ """
+ return requests.get(self.url + f"/raw/{rev}/{filepath}").text
+
+ def get_data(self, rev):
+ version = self.rev2version(rev)
+
+ passthru = {v: self.get_file(v, rev).strip() for v in ['GITALY_SERVER_VERSION', 'GITLAB_PAGES_VERSION',
+ 'GITLAB_SHELL_VERSION', 'GITLAB_WORKHORSE_VERSION']}
+ return dict(version=self.rev2version(rev),
+ repo_hash=self.get_git_hash(rev),
+ owner=self.owner,
+ repo=self.repo,
+ rev=rev,
+ passthru=passthru)
+
+
+def _get_data_json():
+ data_file_path = pathlib.Path(__file__).parent / 'data.json'
+ with open(data_file_path, 'r') as f:
+ return json.load(f)
+
+
+def _call_update_source_version(pkg, version):
+ """calls update-source-version from nixpkgs root dir"""
+ nixpkgs_path = pathlib.Path(__file__).parent / '../../../../'
+ return subprocess.check_output(['update-source-version', pkg, version], cwd=nixpkgs_path)
+
+
+@click_log.simple_verbosity_option(logger)
+@click.group()
+def cli():
+ pass
+
+
+@cli.command('update-data')
+@click.option('--rev', default='latest', help='The rev to use (vX.Y.Z-ee), or \'latest\'')
+def update_data(rev: str):
+ """Update data.nix"""
+ repo = GitLabRepo()
+
+ if rev == 'latest':
+ # filter out pre and re releases
+ rev = next(filter(lambda x: not ('rc' in x or x.endswith('pre')), repo.tags))
+ logger.debug(f"Using rev {rev}")
+
+ version = repo.rev2version(rev)
+ logger.debug(f"Using version {version}")
+
+ data_file_path = pathlib.Path(__file__).parent / 'data.json'
+
+ data = repo.get_data(rev)
+
+ with open(data_file_path.as_posix(), 'w') as f:
+ json.dump(data, f, indent=2)
+ f.write("\n")
+
+
+@cli.command('update-rubyenv')
+def update_rubyenv():
+ """Update rubyEnv"""
+ repo = GitLabRepo()
+ rubyenv_dir = pathlib.Path(__file__).parent / f"rubyEnv"
+
+ # load rev from data.json
+ data = _get_data_json()
+ rev = data['rev']
+
+ for fn in ['Gemfile.lock', 'Gemfile']:
+ with open(rubyenv_dir / fn, 'w') as f:
+ f.write(repo.get_file(fn, rev))
+
+ subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
+ subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+
+
+@cli.command('update-yarnpkgs')
+def update_yarnpkgs():
+ """Update yarnPkgs"""
+
+ repo = GitLabRepo()
+ yarnpkgs_dir = pathlib.Path(__file__).parent
+
+ # load rev from data.json
+ data = _get_data_json()
+ rev = data['rev']
+
+ with open(yarnpkgs_dir / 'yarn.lock', 'w') as f:
+ f.write(repo.get_file('yarn.lock', rev))
+
+ with open(yarnpkgs_dir / 'yarnPkgs.nix', 'w') as f:
+ subprocess.run(['yarn2nix'], cwd=yarnpkgs_dir, check=True, stdout=f)
+
+ os.unlink(yarnpkgs_dir / 'yarn.lock')
+
+
+@cli.command('update-gitaly')
+def update_gitaly():
+ """Update gitaly"""
+ data = _get_data_json()
+ gitaly_server_version = data['passthru']['GITALY_SERVER_VERSION']
+ repo = GitLabRepo(repo='gitaly')
+ gitaly_dir = pathlib.Path(__file__).parent / 'gitaly'
+
+ for fn in ['Gemfile.lock', 'Gemfile']:
+ with open(gitaly_dir / fn, 'w') as f:
+ f.write(repo.get_file(f"ruby/{fn}", f"v{gitaly_server_version}"))
+
+ for fn in ['go.mod', 'go.sum']:
+ with open(gitaly_dir / fn, 'w') as f:
+ f.write(repo.get_file(fn, f"v{gitaly_server_version}"))
+
+ subprocess.check_output(['bundle', 'lock'], cwd=gitaly_dir)
+ subprocess.check_output(['bundix'], cwd=gitaly_dir)
+
+ os.environ['GOROOT'] = ""
+ subprocess.check_output(['vgo2nix', '--keep-going'], cwd=gitaly_dir)
+
+ for fn in ['go.mod', 'go.sum']:
+ os.unlink(gitaly_dir / fn)
+
+ _call_update_source_version('gitaly', gitaly_server_version)
+
+
+@cli.command('update-gitlab-shell')
+def update_gitlab_shell():
+ """Update gitlab-shell"""
+ data = _get_data_json()
+ gitlab_shell_version = data['passthru']['GITLAB_SHELL_VERSION']
+ _call_update_source_version('gitlab-shell', gitlab_shell_version)
+
+ repo = GitLabRepo(repo='gitlab-shell')
+ gitlab_shell_dir = pathlib.Path(__file__).parent / 'gitlab-shell'
+
+ for fn in ['go.mod', 'go.sum']:
+ with open(gitlab_shell_dir / fn, 'w') as f:
+ f.write(repo.get_file(fn, f"v{gitlab_shell_version}"))
+
+ os.environ['GOROOT'] = ""
+ subprocess.check_output(['vgo2nix', '--keep-going'], cwd=gitlab_shell_dir)
+
+ for fn in ['go.mod', 'go.sum']:
+ os.unlink(gitlab_shell_dir / fn)
+
+
+@cli.command('update-gitlab-workhorse')
+def update_gitlab_workhorse():
+ """Update gitlab-workhorse"""
+ data = _get_data_json()
+ gitlab_workhorse_version = data['passthru']['GITLAB_WORKHORSE_VERSION']
+ _call_update_source_version('gitlab-workhorse', gitlab_workhorse_version)
+
+ repo = GitLabRepo('gitlab-org', 'gitlab-workhorse')
+ gitlab_workhorse_dir = pathlib.Path(__file__).parent / 'gitlab-workhorse'
+
+ for fn in ['go.mod', 'go.sum']:
+ with open(gitlab_workhorse_dir / fn, 'w') as f:
+ f.write(repo.get_file(fn, f"v{gitlab_workhorse_version}"))
+
+ os.environ['GOROOT'] = ""
+ subprocess.check_output(['vgo2nix', '--keep-going'], cwd=gitlab_workhorse_dir)
+
+ for fn in ['go.mod', 'go.sum']:
+ os.unlink(gitlab_workhorse_dir / fn)
+
+@cli.command('update-all')
+@click.option('--rev', default='latest', help='The rev to use (vX.Y.Z-ee), or \'latest\'')
+@click.pass_context
+def update_all(ctx, rev: str):
+ """Update all gitlab components to the latest stable release"""
+ ctx.invoke(update_data, rev=rev)
+ ctx.invoke(update_rubyenv)
+ ctx.invoke(update_yarnpkgs)
+ ctx.invoke(update_gitaly)
+ ctx.invoke(update_gitlab_shell)
+ ctx.invoke(update_gitlab_workhorse)
+
+
+if __name__ == '__main__':
+ cli()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
new file mode 100644
index 000000000000..ca504fc231e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -0,0 +1,14149 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+ {
+ name = "_babel_code_frame___code_frame_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_code_frame___code_frame_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
+ sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+ };
+ }
+ {
+ name = "_babel_compat_data___compat_data_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_compat_data___compat_data_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.1.tgz";
+ sha1 = "b1085ffe72cd17bf2c0ee790fc09f9626011b2db";
+ };
+ }
+ {
+ name = "_babel_core___core_7.10.2.tgz";
+ path = fetchurl {
+ name = "_babel_core___core_7.10.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/core/-/core-7.10.2.tgz";
+ sha1 = "bd6786046668a925ac2bd2fd95b579b92a23b36a";
+ };
+ }
+ {
+ name = "_babel_generator___generator_7.11.6.tgz";
+ path = fetchurl {
+ name = "_babel_generator___generator_7.11.6.tgz";
+ url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz";
+ sha1 = "b868900f81b163b4d464ea24545c61cbac4dc620";
+ };
+ }
+ {
+ name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz";
+ sha1 = "f6d08acc6f70bbd59b436262553fb2e259a1a268";
+ };
+ }
+ {
+ name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz";
+ sha1 = "0ec7d9be8174934532661f87783eb18d72290059";
+ };
+ }
+ {
+ name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.2.tgz";
+ path = fetchurl {
+ name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz";
+ sha1 = "a17d9723b6e2c750299d2a14d4637c76936d8285";
+ };
+ }
+ {
+ name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.10.2.tgz";
+ path = fetchurl {
+ name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.10.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz";
+ sha1 = "7474295770f217dbcf288bf7572eb213db46ee67";
+ };
+ }
+ {
+ name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz";
+ sha1 = "1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd";
+ };
+ }
+ {
+ name = "_babel_helper_define_map___helper_define_map_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helper_define_map___helper_define_map_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz";
+ sha1 = "5e69ee8308648470dd7900d159c044c10285221d";
+ };
+ }
+ {
+ name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz";
+ sha1 = "e9d76305ee1162ca467357ae25df94f179af2b7e";
+ };
+ }
+ {
+ name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+ sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+ };
+ }
+ {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+ sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
+ };
+ }
+ {
+ name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz";
+ sha1 = "7e77c82e5dcae1ebf123174c385aaadbf787d077";
+ };
+ }
+ {
+ name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+ sha1 = "ae69c83d84ee82f4b42f96e2a09410935a8f26df";
+ };
+ }
+ {
+ name = "_babel_helper_module_imports___helper_module_imports_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_module_imports___helper_module_imports_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+ sha1 = "4c5c54be04bd31670a7382797d75b9fa2e5b5620";
+ };
+ }
+ {
+ name = "_babel_helper_module_transforms___helper_module_transforms_7.11.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_module_transforms___helper_module_transforms_7.11.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+ sha1 = "b16f250229e47211abdd84b34b64737c2ab2d359";
+ };
+ }
+ {
+ name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+ sha1 = "50dc96413d594f995a77905905b05893cd779673";
+ };
+ }
+ {
+ name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+ sha1 = "2f75a831269d4f677de49986dff59927533cf375";
+ };
+ }
+ {
+ name = "_babel_helper_regex___helper_regex_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helper_regex___helper_regex_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.1.tgz";
+ sha1 = "021cf1a7ba99822f993222a001cc3fec83255b96";
+ };
+ }
+ {
+ name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz";
+ sha1 = "bad6aaa4ff39ce8d4b82ccaae0bfe0f7dbb5f432";
+ };
+ }
+ {
+ name = "_babel_helper_replace_supers___helper_replace_supers_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_replace_supers___helper_replace_supers_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+ sha1 = "d585cd9388ea06e6031e4cd44b6713cbead9e6cf";
+ };
+ }
+ {
+ name = "_babel_helper_simple_access___helper_simple_access_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_simple_access___helper_simple_access_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+ sha1 = "0f5ccda2945277a2a7a2d3a821e15395edcf3461";
+ };
+ }
+ {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
+ sha1 = "f8a491244acf6a676158ac42072911ba83ad099f";
+ };
+ }
+ {
+ name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+ sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+ };
+ }
+ {
+ name = "_babel_helper_wrap_function___helper_wrap_function_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helper_wrap_function___helper_wrap_function_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz";
+ sha1 = "956d1310d6696257a7afd47e4c42dfda5dfcedc9";
+ };
+ }
+ {
+ name = "_babel_helpers___helpers_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_helpers___helpers_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz";
+ sha1 = "a6827b7cb975c9d9cef5fd61d919f60d8844a973";
+ };
+ }
+ {
+ name = "_babel_highlight___highlight_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_highlight___highlight_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
+ sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+ };
+ }
+ {
+ name = "_babel_parser___parser_7.11.5.tgz";
+ path = fetchurl {
+ name = "_babel_parser___parser_7.11.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz";
+ sha1 = "c7ff6303df71080ec7a4f5b8c003c58f1cf51037";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz";
+ sha1 = "6911af5ba2e615c4ff3c497fe2f47b35bf6d7e55";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz";
+ sha1 = "046bc7f6550bb08d9bd1d4f060f5f5a4f1087e01";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz";
+ sha1 = "e36979dc1dc3b73f6d6816fc4951da2363488ef0";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz";
+ sha1 = "b1e691ee24c651b5a5e32213222b2379734aff09";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz";
+ sha1 = "02dca21673842ff2fe763ac253777f235e9bbf78";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz";
+ sha1 = "a9a38bc34f78bdfd981e791c27c6fdcec478c123";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz";
+ sha1 = "cba44908ac9f142650b4a65b8aa06bf3478d5fb6";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz";
+ sha1 = "c9f86d99305f9fa531b568ff5ab8c964b8b223d2";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz";
+ sha1 = "15f5d6d22708629451a91be28f8facc55b0e818c";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz";
+ sha1 = "ed85e8058ab0fe309c3f448e5e1b73ca89cdb598";
+ };
+ }
+ {
+ name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz";
+ sha1 = "dc04feb25e2dd70c12b05d680190e138fa2c0c6f";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
+ sha1 = "a983fb1aeb2ec3f6ed042a210f640e90e786fe0d";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_bigint___plugin_syntax_bigint_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_bigint___plugin_syntax_bigint_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz";
+ sha1 = "4c9a6f669f5d0cdf1b90a1671e9a146be5300cea";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz";
+ sha1 = "d5bc0645913df5b17ad7eda0fa2308330bde34c5";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
+ sha1 = "62bf98b2da3cd21d626154fc96ee5b3cb68eacb3";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz";
+ sha1 = "ee601348c370fa334d2207be158777496521fd51";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
+ sha1 = "01ca21b668cd8218c9e640cb6dd88c5412b2c96a";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.1.tgz";
+ sha1 = "fffee77b4934ce77f3b427649ecdddbec1958550";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
+ sha1 = "167ed70368886081f74b5c36c65a88c03b66d1a9";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz";
+ sha1 = "25761ee7410bc8cf97327ba741ee94e4a61b7d99";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+ sha1 = "60e225edcbd98a640332a2e72dd3e66f1af55871";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
+ sha1 = "6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
+ sha1 = "4f69c2ab95167e0180cd5336613f8c5788f7d48a";
+ };
+ }
+ {
+ name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz";
+ sha1 = "8b8733f8c57397b3eaa47ddba8841586dcaef362";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz";
+ sha1 = "cb5ee3a36f0863c06ead0b409b4cc43a889b295b";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz";
+ sha1 = "e5153eb1a3e028f79194ed8a7a4bf55f862b2062";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz";
+ sha1 = "146856e756d54b20fff14b819456b3e01820b85d";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz";
+ sha1 = "47092d89ca345811451cd0dc5d91605982705d5e";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_classes___plugin_transform_classes_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_classes___plugin_transform_classes_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz";
+ sha1 = "6e11dd6c4dfae70f540480a4702477ed766d733f";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz";
+ sha1 = "59aa399064429d64dce5cf76ef9b90b7245ebd07";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz";
+ sha1 = "abd58e51337815ca3a22a336b85f62b998e71907";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz";
+ sha1 = "920b9fec2d78bb57ebb64a644d5c2ba67cc104ee";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz";
+ sha1 = "c900a793beb096bc9d4d0a9d0cde19518ffc83b9";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz";
+ sha1 = "279c3116756a60dd6e6f5e488ba7957db9c59eb3";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz";
+ sha1 = "ff01119784eb0ee32258e8646157ba2501fcfda5";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz";
+ sha1 = "4ed46fd6e1d8fde2a2ec7b03c66d853d2c92427d";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_literals___plugin_transform_literals_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_literals___plugin_transform_literals_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz";
+ sha1 = "5794f8da82846b22e4e6631ea1658bce708eb46a";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz";
+ sha1 = "90347cba31bca6f394b3f7bd95d2bbfd9fce2f39";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz";
+ sha1 = "65950e8e05797ebd2fe532b96e19fc5482a1d52a";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+ sha1 = "66667c3eeda1ebf7896d41f1f16b17105a2fbca0";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz";
+ sha1 = "9962e4b0ac6aaf2e20431ada3d8ec72082cbffb6";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz";
+ sha1 = "ea080911ffc6eb21840a5197a39ede4ee67b1595";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz";
+ sha1 = "a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz";
+ sha1 = "6ee41a5e648da7632e22b6fb54012e87f612f324";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz";
+ sha1 = "2e3016b0adbf262983bf0d5121d676a5ed9c4fde";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz";
+ sha1 = "b25938a3c5fae0354144a720b07b32766f683ddd";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz";
+ sha1 = "cffc7315219230ed81dc53e4625bf86815b6050d";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz";
+ sha1 = "10e175cbe7bdb63cc9b39f9b3f823c5c7c5c5490";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz";
+ sha1 = "0fc1027312b4d1c3276a57890c8ae3bcc0b64a86";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz";
+ sha1 = "e8b54f238a1ccbae482c4dce946180ae7b3143f3";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_spread___plugin_transform_spread_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_spread___plugin_transform_spread_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz";
+ sha1 = "0c6d618a0c4461a274418460a28c9ccf5239a7c8";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz";
+ sha1 = "90fc89b7526228bed9842cff3588270a7a393b00";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz";
+ sha1 = "914c7b7f4752c570ea00553b4284dad8070e8628";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz";
+ sha1 = "60c0239b69965d166b80a84de7315c1bc7e0bb0e";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz";
+ sha1 = "add0f8483dab60570d9e03cecef6c023aa8c9940";
+ };
+ }
+ {
+ name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.10.1.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.10.1.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz";
+ sha1 = "6b58f2aea7b68df37ac5025d9c88752443a6b43f";
+ };
+ }
+ {
+ name = "_babel_preset_env___preset_env_7.10.2.tgz";
+ path = fetchurl {
+ name = "_babel_preset_env___preset_env_7.10.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.2.tgz";
+ sha1 = "715930f2cf8573b0928005ee562bed52fb65fdfb";
+ };
+ }
+ {
+ name = "_babel_preset_modules___preset_modules_0.1.3.tgz";
+ path = fetchurl {
+ name = "_babel_preset_modules___preset_modules_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz";
+ sha1 = "13242b53b5ef8c883c3cf7dddd55b36ce80fbc72";
+ };
+ }
+ {
+ name = "_babel_runtime_corejs3___runtime_corejs3_7.10.2.tgz";
+ path = fetchurl {
+ name = "_babel_runtime_corejs3___runtime_corejs3_7.10.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz";
+ sha1 = "3511797ddf9a3d6f3ce46b99cc835184817eaa4e";
+ };
+ }
+ {
+ name = "_babel_runtime___runtime_7.11.2.tgz";
+ path = fetchurl {
+ name = "_babel_runtime___runtime_7.11.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz";
+ sha1 = "f549c13c754cc40b87644b9fa9f09a6a95fe0736";
+ };
+ }
+ {
+ name = "_babel_standalone___standalone_7.10.2.tgz";
+ path = fetchurl {
+ name = "_babel_standalone___standalone_7.10.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.10.2.tgz";
+ sha1 = "49dbbadcbc4b199df064d7d8b3e21c915b84abdb";
+ };
+ }
+ {
+ name = "_babel_template___template_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_template___template_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
+ sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+ };
+ }
+ {
+ name = "_babel_traverse___traverse_7.11.5.tgz";
+ path = fetchurl {
+ name = "_babel_traverse___traverse_7.11.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz";
+ sha1 = "be777b93b518eb6d76ee2e1ea1d143daa11e61c3";
+ };
+ }
+ {
+ name = "_babel_types___types_7.11.5.tgz";
+ path = fetchurl {
+ name = "_babel_types___types_7.11.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz";
+ sha1 = "d9de577d01252d77c6800cee039ee64faf75662d";
+ };
+ }
+ {
+ name = "_bcoe_v8_coverage___v8_coverage_0.2.3.tgz";
+ path = fetchurl {
+ name = "_bcoe_v8_coverage___v8_coverage_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz";
+ sha1 = "75a2e8b51cb758a7553d6804a5932d7aace75c39";
+ };
+ }
+ {
+ name = "_braintree_sanitize_url___sanitize_url_3.1.0.tgz";
+ path = fetchurl {
+ name = "_braintree_sanitize_url___sanitize_url_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz";
+ sha1 = "8ff71d51053cd5ee4981e5a501d80a536244f7fd";
+ };
+ }
+ {
+ name = "_cnakazawa_watch___watch_1.0.4.tgz";
+ path = fetchurl {
+ name = "_cnakazawa_watch___watch_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz";
+ sha1 = "f864ae85004d0fcab6f50be9141c4da368d1656a";
+ };
+ }
+ {
+ name = "_gitlab_at.js___at.js_1.5.5.tgz";
+ path = fetchurl {
+ name = "_gitlab_at.js___at.js_1.5.5.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/at.js/-/at.js-1.5.5.tgz";
+ sha1 = "5f6bfe6baaef360daa9b038fa78798d7a6a916b4";
+ };
+ }
+ {
+ name = "_gitlab_eslint_plugin___eslint_plugin_5.0.0.tgz";
+ path = fetchurl {
+ name = "_gitlab_eslint_plugin___eslint_plugin_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-5.0.0.tgz";
+ sha1 = "502eb2bccb55d65d6310ce9ef2da76035b6fc319";
+ };
+ }
+ {
+ name = "_gitlab_svgs___svgs_1.175.0.tgz";
+ path = fetchurl {
+ name = "_gitlab_svgs___svgs_1.175.0.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.175.0.tgz";
+ sha1 = "734f341784af1cd1d62d160a17bcdfb61ff7b04d";
+ };
+ }
+ {
+ name = "_gitlab_ui___ui_23.9.0.tgz";
+ path = fetchurl {
+ name = "_gitlab_ui___ui_23.9.0.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-23.9.0.tgz";
+ sha1 = "e21966130b41e624dbe4505911a79afb731c2d6b";
+ };
+ }
+ {
+ name = "_gitlab_visual_review_tools___visual_review_tools_1.6.1.tgz";
+ path = fetchurl {
+ name = "_gitlab_visual_review_tools___visual_review_tools_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/visual-review-tools/-/visual-review-tools-1.6.1.tgz";
+ sha1 = "0d8f3ff9f51b05f7c80b9a107727703d48997e4e";
+ };
+ }
+ {
+ name = "_gitlab_vue_toasted___vue_toasted_1.3.0.tgz";
+ path = fetchurl {
+ name = "_gitlab_vue_toasted___vue_toasted_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/@gitlab/vue-toasted/-/vue-toasted-1.3.0.tgz";
+ sha1 = "f21550d4ce406ee5f99447a02abf36250ecc922d";
+ };
+ }
+ {
+ name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz";
+ path = fetchurl {
+ name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
+ sha1 = "fd3db1d59ecf7cf121e80650bb86712f9b55eced";
+ };
+ }
+ {
+ name = "_istanbuljs_schema___schema_0.1.2.tgz";
+ path = fetchurl {
+ name = "_istanbuljs_schema___schema_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz";
+ sha1 = "26520bf09abe4a5644cd5414e37125a8954241dd";
+ };
+ }
+ {
+ name = "_jest_console___console_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_console___console_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/console/-/console-26.5.2.tgz";
+ sha1 = "94fc4865b1abed7c352b5e21e6c57be4b95604a6";
+ };
+ }
+ {
+ name = "_jest_core___core_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_core___core_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/core/-/core-26.5.2.tgz";
+ sha1 = "e39f14676f4ba4632ecabfdc374071ab22131f22";
+ };
+ }
+ {
+ name = "_jest_environment___environment_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_environment___environment_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/environment/-/environment-26.5.2.tgz";
+ sha1 = "eba3cfc698f6e03739628f699c28e8a07f5e65fe";
+ };
+ }
+ {
+ name = "_jest_fake_timers___fake_timers_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_fake_timers___fake_timers_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.5.2.tgz";
+ sha1 = "1291ac81680ceb0dc7daa1f92c059307eea6400a";
+ };
+ }
+ {
+ name = "_jest_globals___globals_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_globals___globals_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/globals/-/globals-26.5.2.tgz";
+ sha1 = "c333f82c29e19ecb609a75d1a532915a5c956c59";
+ };
+ }
+ {
+ name = "_jest_reporters___reporters_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_reporters___reporters_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.5.2.tgz";
+ sha1 = "0f1c900c6af712b46853d9d486c9c0382e4050f6";
+ };
+ }
+ {
+ name = "_jest_source_map___source_map_26.5.0.tgz";
+ path = fetchurl {
+ name = "_jest_source_map___source_map_26.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.5.0.tgz";
+ sha1 = "98792457c85bdd902365cd2847b58fff05d96367";
+ };
+ }
+ {
+ name = "_jest_test_result___test_result_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_test_result___test_result_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.5.2.tgz";
+ sha1 = "cc1a44cfd4db2ecee3fb0bc4e9fe087aa54b5230";
+ };
+ }
+ {
+ name = "_jest_test_sequencer___test_sequencer_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_test_sequencer___test_sequencer_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.5.2.tgz";
+ sha1 = "c4559c7e134b27b020317303ee5399bf62917a4b";
+ };
+ }
+ {
+ name = "_jest_transform___transform_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_transform___transform_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/transform/-/transform-26.5.2.tgz";
+ sha1 = "6a0033a1d24316a1c75184d010d864f2c681bef5";
+ };
+ }
+ {
+ name = "_jest_types___types_25.5.0.tgz";
+ path = fetchurl {
+ name = "_jest_types___types_25.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz";
+ sha1 = "4d6a4793f7b9599fc3680877b856a97dbccf2a9d";
+ };
+ }
+ {
+ name = "_jest_types___types_26.5.2.tgz";
+ path = fetchurl {
+ name = "_jest_types___types_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@jest/types/-/types-26.5.2.tgz";
+ sha1 = "44c24f30c8ee6c7f492ead9ec3f3c62a5289756d";
+ };
+ }
+ {
+ name = "_miragejs_pretender_node_polyfill___pretender_node_polyfill_0.1.2.tgz";
+ path = fetchurl {
+ name = "_miragejs_pretender_node_polyfill___pretender_node_polyfill_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/@miragejs/pretender-node-polyfill/-/pretender-node-polyfill-0.1.2.tgz";
+ sha1 = "d26b6b7483fb70cd62189d05c95d2f67153e43f2";
+ };
+ }
+ {
+ name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz";
+ path = fetchurl {
+ name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz";
+ sha1 = "524af240d1a360527b730475ecfa1344aa540dde";
+ };
+ }
+ {
+ name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
+ path = fetchurl {
+ name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz";
+ sha1 = "2b5a3ab3f918cca48a8c754c08168e3f03eba61b";
+ };
+ }
+ {
+ name = "_nuxt_opencollective___opencollective_0.3.0.tgz";
+ path = fetchurl {
+ name = "_nuxt_opencollective___opencollective_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.0.tgz";
+ sha1 = "11d8944dcf2d526e31660bb69570be03f8fb72b7";
+ };
+ }
+ {
+ name = "_rails_actioncable___actioncable_6.0.3_3.tgz";
+ path = fetchurl {
+ name = "_rails_actioncable___actioncable_6.0.3_3.tgz";
+ url = "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.0.3-3.tgz";
+ sha1 = "fb1a46d3d353512764d5fa3cea2f492391601b7a";
+ };
+ }
+ {
+ name = "_rails_ujs___ujs_6.0.3_2.tgz";
+ path = fetchurl {
+ name = "_rails_ujs___ujs_6.0.3_2.tgz";
+ url = "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.0.3-2.tgz";
+ sha1 = "e14c1f29086858215ce7ccd9ad6d8888c458b4a3";
+ };
+ }
+ {
+ name = "_sindresorhus_is___is_0.14.0.tgz";
+ path = fetchurl {
+ name = "_sindresorhus_is___is_0.14.0.tgz";
+ url = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz";
+ sha1 = "9fb3a3cf3132328151f353de4632e01e52102bea";
+ };
+ }
+ {
+ name = "_sinonjs_commons___commons_1.8.1.tgz";
+ path = fetchurl {
+ name = "_sinonjs_commons___commons_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz";
+ sha1 = "e7df00f98a203324f6dc7cc606cad9d4a8ab2217";
+ };
+ }
+ {
+ name = "_sinonjs_fake_timers___fake_timers_6.0.1.tgz";
+ path = fetchurl {
+ name = "_sinonjs_fake_timers___fake_timers_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz";
+ sha1 = "293674fccb3262ac782c7aadfdeca86b10c75c40";
+ };
+ }
+ {
+ name = "_sourcegraph_code_host_integration___code_host_integration_0.0.52.tgz";
+ path = fetchurl {
+ name = "_sourcegraph_code_host_integration___code_host_integration_0.0.52.tgz";
+ url = "https://registry.yarnpkg.com/@sourcegraph/code-host-integration/-/code-host-integration-0.0.52.tgz";
+ sha1 = "3668364647b9248a0c43d738f7b046c551311338";
+ };
+ }
+ {
+ name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
+ path = fetchurl {
+ name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
+ sha1 = "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421";
+ };
+ }
+ {
+ name = "_testing_library_dom___dom_7.24.5.tgz";
+ path = fetchurl {
+ name = "_testing_library_dom___dom_7.24.5.tgz";
+ url = "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.24.5.tgz";
+ sha1 = "862124eec8c37ad184716379f09742476b23815d";
+ };
+ }
+ {
+ name = "_toast_ui_editor___editor_2.5.0.tgz";
+ path = fetchurl {
+ name = "_toast_ui_editor___editor_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@toast-ui/editor/-/editor-2.5.0.tgz";
+ sha1 = "02779b119eaa6dd7601249d75ca031e0b98400f1";
+ };
+ }
+ {
+ name = "_toast_ui_vue_editor___vue_editor_2.5.0.tgz";
+ path = fetchurl {
+ name = "_toast_ui_vue_editor___vue_editor_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/@toast-ui/vue-editor/-/vue-editor-2.5.0.tgz";
+ sha1 = "8094136588b0f726241b5f89d0754a7169f2ffee";
+ };
+ }
+ {
+ name = "_types_aria_query___aria_query_4.2.0.tgz";
+ path = fetchurl {
+ name = "_types_aria_query___aria_query_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.0.tgz";
+ sha1 = "14264692a9d6e2fa4db3df5e56e94b5e25647ac0";
+ };
+ }
+ {
+ name = "_types_babel__core___babel__core_7.1.9.tgz";
+ path = fetchurl {
+ name = "_types_babel__core___babel__core_7.1.9.tgz";
+ url = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.9.tgz";
+ sha1 = "77e59d438522a6fb898fa43dc3455c6e72f3963d";
+ };
+ }
+ {
+ name = "_types_babel__generator___babel__generator_7.0.2.tgz";
+ path = fetchurl {
+ name = "_types_babel__generator___babel__generator_7.0.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz";
+ sha1 = "d2112a6b21fad600d7674274293c85dce0cb47fc";
+ };
+ }
+ {
+ name = "_types_babel__template___babel__template_7.0.2.tgz";
+ path = fetchurl {
+ name = "_types_babel__template___babel__template_7.0.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz";
+ sha1 = "4ff63d6b52eddac1de7b975a5223ed32ecea9307";
+ };
+ }
+ {
+ name = "_types_babel__traverse___babel__traverse_7.0.15.tgz";
+ path = fetchurl {
+ name = "_types_babel__traverse___babel__traverse_7.0.15.tgz";
+ url = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz";
+ sha1 = "db9e4238931eb69ef8aab0ad6523d4d4caa39d03";
+ };
+ }
+ {
+ name = "_types_codemirror___codemirror_0.0.71.tgz";
+ path = fetchurl {
+ name = "_types_codemirror___codemirror_0.0.71.tgz";
+ url = "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.71.tgz";
+ sha1 = "861f1bcb3100c0a064567c5400f2981cf4ae8ca7";
+ };
+ }
+ {
+ name = "_types_color_name___color_name_1.1.1.tgz";
+ path = fetchurl {
+ name = "_types_color_name___color_name_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz";
+ sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0";
+ };
+ }
+ {
+ name = "_types_estree___estree_0.0.44.tgz";
+ path = fetchurl {
+ name = "_types_estree___estree_0.0.44.tgz";
+ url = "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.44.tgz";
+ sha1 = "980cc5a29a3ef3bea6ff1f7d021047d7ea575e21";
+ };
+ }
+ {
+ name = "_types_events___events_1.2.0.tgz";
+ path = fetchurl {
+ name = "_types_events___events_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz";
+ sha1 = "81a6731ce4df43619e5c8c945383b3e62a89ea86";
+ };
+ }
+ {
+ name = "_types_glob___glob_7.1.1.tgz";
+ path = fetchurl {
+ name = "_types_glob___glob_7.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz";
+ sha1 = "aa59a1c6e3fbc421e07ccd31a944c30eba521575";
+ };
+ }
+ {
+ name = "_types_graceful_fs___graceful_fs_4.1.3.tgz";
+ path = fetchurl {
+ name = "_types_graceful_fs___graceful_fs_4.1.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz";
+ sha1 = "039af35fe26bec35003e8d86d2ee9c586354348f";
+ };
+ }
+ {
+ name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.2.tgz";
+ path = fetchurl {
+ name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz";
+ sha1 = "79d7a78bad4219f4c03d6557a1c72d9ca6ba62d5";
+ };
+ }
+ {
+ name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
+ path = fetchurl {
+ name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz";
+ sha1 = "e5471e7fa33c61358dd38426189c037a58433b8c";
+ };
+ }
+ {
+ name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
+ path = fetchurl {
+ name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz";
+ sha1 = "7a8cbf6a406f36c8add871625b278eaf0b0d255a";
+ };
+ }
+ {
+ name = "_types_istanbul_reports___istanbul_reports_3.0.0.tgz";
+ path = fetchurl {
+ name = "_types_istanbul_reports___istanbul_reports_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz";
+ sha1 = "508b13aa344fa4976234e75dddcc34925737d821";
+ };
+ }
+ {
+ name = "_types_jest___jest_26.0.14.tgz";
+ path = fetchurl {
+ name = "_types_jest___jest_26.0.14.tgz";
+ url = "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.14.tgz";
+ sha1 = "078695f8f65cb55c5a98450d65083b2b73e5a3f3";
+ };
+ }
+ {
+ name = "_types_json_schema___json_schema_7.0.4.tgz";
+ path = fetchurl {
+ name = "_types_json_schema___json_schema_7.0.4.tgz";
+ url = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz";
+ sha1 = "38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339";
+ };
+ }
+ {
+ name = "_types_minimatch___minimatch_3.0.3.tgz";
+ path = fetchurl {
+ name = "_types_minimatch___minimatch_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz";
+ sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d";
+ };
+ }
+ {
+ name = "_types_node___node_10.12.9.tgz";
+ path = fetchurl {
+ name = "_types_node___node_10.12.9.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-10.12.9.tgz";
+ sha1 = "a07bfa74331471e1dc22a47eb72026843f7b95c8";
+ };
+ }
+ {
+ name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
+ path = fetchurl {
+ name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+ sha1 = "e486d0d97396d79beedd0a6e33f4534ff6b4973e";
+ };
+ }
+ {
+ name = "_types_parse5___parse5_5.0.0.tgz";
+ path = fetchurl {
+ name = "_types_parse5___parse5_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.0.tgz";
+ sha1 = "9ae2106efc443d7c1e26570aa8247828c9c80f11";
+ };
+ }
+ {
+ name = "_types_prettier___prettier_2.0.2.tgz";
+ path = fetchurl {
+ name = "_types_prettier___prettier_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.0.2.tgz";
+ sha1 = "5bb52ee68d0f8efa9cc0099920e56be6cc4e37f3";
+ };
+ }
+ {
+ name = "_types_stack_utils___stack_utils_2.0.0.tgz";
+ path = fetchurl {
+ name = "_types_stack_utils___stack_utils_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz";
+ sha1 = "7036640b4e21cc2f259ae826ce843d277dad8cff";
+ };
+ }
+ {
+ name = "_types_tern___tern_0.23.3.tgz";
+ path = fetchurl {
+ name = "_types_tern___tern_0.23.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/tern/-/tern-0.23.3.tgz";
+ sha1 = "4b54538f04a88c9ff79de1f6f94f575a7f339460";
+ };
+ }
+ {
+ name = "_types_unist___unist_2.0.3.tgz";
+ path = fetchurl {
+ name = "_types_unist___unist_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz";
+ sha1 = "9c088679876f374eb5983f150d4787aa6fb32d7e";
+ };
+ }
+ {
+ name = "_types_vfile_message___vfile_message_1.0.1.tgz";
+ path = fetchurl {
+ name = "_types_vfile_message___vfile_message_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz";
+ sha1 = "e1e9895cc6b36c462d4244e64e6d0b6eaf65355a";
+ };
+ }
+ {
+ name = "_types_vfile___vfile_3.0.2.tgz";
+ path = fetchurl {
+ name = "_types_vfile___vfile_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz";
+ sha1 = "19c18cd232df11ce6fa6ad80259bc86c366b09b9";
+ };
+ }
+ {
+ name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
+ path = fetchurl {
+ name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
+ sha1 = "cb3f9f741869e20cce330ffbeb9271590483882d";
+ };
+ }
+ {
+ name = "_types_yargs___yargs_15.0.5.tgz";
+ path = fetchurl {
+ name = "_types_yargs___yargs_15.0.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz";
+ sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
+ };
+ }
+ {
+ name = "_types_zen_observable___zen_observable_0.8.0.tgz";
+ path = fetchurl {
+ name = "_types_zen_observable___zen_observable_0.8.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz";
+ sha1 = "8b63ab7f1aa5321248aad5ac890a485656dcea4d";
+ };
+ }
+ {
+ name = "_typescript_eslint_experimental_utils___experimental_utils_2.30.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_experimental_utils___experimental_utils_2.30.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.30.0.tgz";
+ sha1 = "9845e868c01f3aed66472c561d4b6bac44809dd0";
+ };
+ }
+ {
+ name = "_typescript_eslint_typescript_estree___typescript_estree_2.30.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_typescript_estree___typescript_estree_2.30.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.30.0.tgz";
+ sha1 = "1b8e848b55144270255ffbfe4c63291f8f766615";
+ };
+ }
+ {
+ name = "_vue_component_compiler_utils___component_compiler_utils_3.1.1.tgz";
+ path = fetchurl {
+ name = "_vue_component_compiler_utils___component_compiler_utils_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.1.1.tgz";
+ sha1 = "d4ef8f80292674044ad6211e336a302e4d2a6575";
+ };
+ }
+ {
+ name = "_vue_test_utils___test_utils_1.0.0_beta.30.tgz";
+ path = fetchurl {
+ name = "_vue_test_utils___test_utils_1.0.0_beta.30.tgz";
+ url = "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.30.tgz";
+ sha1 = "d5f26d1e2411fdb7fa7fdedb61b4b4ea4194c49d";
+ };
+ }
+ {
+ name = "_webassemblyjs_ast___ast_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_ast___ast_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz";
+ sha1 = "51b1c5fe6576a34953bf4b253df9f0d490d9e359";
+ };
+ }
+ {
+ name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz";
+ sha1 = "1ba926a2923613edce496fd5b02e8ce8a5f49721";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz";
+ sha1 = "c49dad22f645227c5edb610bdb9697f1aab721f7";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz";
+ sha1 = "fea93e429863dd5e4338555f42292385a653f204";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz";
+ sha1 = "9a740ff48e3faa3022b1dff54423df9aa293c25e";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz";
+ sha1 = "ba0b7d3b3f7e4733da6059c9332275d860702452";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz";
+ sha1 = "def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz";
+ sha1 = "537a750eddf5c1e932f3744206551c91c1b93e61";
+ };
+ }
+ {
+ name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz";
+ sha1 = "74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf";
+ };
+ }
+ {
+ name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz";
+ sha1 = "712329dbef240f36bf57bd2f7b8fb9bf4154421e";
+ };
+ }
+ {
+ name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz";
+ sha1 = "044edeb34ea679f3e04cd4fd9824d5e35767ae10";
+ };
+ }
+ {
+ name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz";
+ sha1 = "a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc";
+ };
+ }
+ {
+ name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz";
+ sha1 = "962da12aa5acc1c131c81c4232991c82ce56e01a";
+ };
+ }
+ {
+ name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz";
+ sha1 = "54840766c2c1002eb64ed1abe720aded714f98bc";
+ };
+ }
+ {
+ name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz";
+ sha1 = "b24d9f6ba50394af1349f510afa8ffcb8a63d264";
+ };
+ }
+ {
+ name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz";
+ sha1 = "21576f0ec88b91427357b8536383668ef7c66b8d";
+ };
+ }
+ {
+ name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz";
+ sha1 = "e10eecd542d0e7bd394f6827c49f3df6d4eefb8c";
+ };
+ }
+ {
+ name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz";
+ sha1 = "114bbc481fd10ca0e23b3560fa812748b0bae5bc";
+ };
+ }
+ {
+ name = "_wry_context___context_0.4.4.tgz";
+ path = fetchurl {
+ name = "_wry_context___context_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz";
+ sha1 = "e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8";
+ };
+ }
+ {
+ name = "_wry_equality___equality_0.1.9.tgz";
+ path = fetchurl {
+ name = "_wry_equality___equality_0.1.9.tgz";
+ url = "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.9.tgz";
+ sha1 = "b13e18b7a8053c6858aa6c85b54911fb31e3a909";
+ };
+ }
+ {
+ name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+ path = fetchurl {
+ name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
+ sha1 = "eef014a3145ae477a1cbc00cd1e552336dceb790";
+ };
+ }
+ {
+ name = "_xtuc_long___long_4.2.2.tgz";
+ path = fetchurl {
+ name = "_xtuc_long___long_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz";
+ sha1 = "d291c6a4e97989b5c61d9acf396ae4fe133a718d";
+ };
+ }
+ {
+ 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 = "abab___abab_2.0.5.tgz";
+ path = fetchurl {
+ name = "abab___abab_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz";
+ sha1 = "c0b678fb32d60fc1219c784d6a826fe385aeb79a";
+ };
+ }
+ {
+ 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 = "accepts___accepts_1.3.7.tgz";
+ path = fetchurl {
+ name = "accepts___accepts_1.3.7.tgz";
+ url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
+ sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
+ };
+ }
+ {
+ name = "acorn_globals___acorn_globals_6.0.0.tgz";
+ path = fetchurl {
+ name = "acorn_globals___acorn_globals_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz";
+ sha1 = "46cdd39f0f8ff08a876619b55f5ac8a6dc770b45";
+ };
+ }
+ {
+ name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
+ path = fetchurl {
+ name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz";
+ sha1 = "294adb71b57398b0680015f0a38c563ee1db5384";
+ };
+ }
+ {
+ name = "acorn_walk___acorn_walk_6.2.0.tgz";
+ path = fetchurl {
+ name = "acorn_walk___acorn_walk_6.2.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz";
+ sha1 = "123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c";
+ };
+ }
+ {
+ name = "acorn_walk___acorn_walk_7.2.0.tgz";
+ path = fetchurl {
+ name = "acorn_walk___acorn_walk_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz";
+ sha1 = "0de889a601203909b0fbe07b8938dc21d2e967bc";
+ };
+ }
+ {
+ name = "acorn___acorn_6.3.0.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_6.3.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz";
+ sha1 = "0087509119ffa4fc0a0041d1e93a417e68cb856e";
+ };
+ }
+ {
+ name = "acorn___acorn_7.4.1.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_7.4.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz";
+ sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa";
+ };
+ }
+ {
+ name = "after___after_0.8.2.tgz";
+ path = fetchurl {
+ name = "after___after_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz";
+ sha1 = "fedb394f9f0e02aa9768e702bda23b505fae7e1f";
+ };
+ }
+ {
+ name = "agent_base___agent_base_4.3.0.tgz";
+ path = fetchurl {
+ name = "agent_base___agent_base_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz";
+ sha1 = "8165f01c436009bccad0b1d122f05ed770efc6ee";
+ };
+ }
+ {
+ name = "aggregate_error___aggregate_error_3.0.1.tgz";
+ path = fetchurl {
+ name = "aggregate_error___aggregate_error_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz";
+ sha1 = "db2fe7246e536f40d9b5442a39e117d7dd6a24e0";
+ };
+ }
+ {
+ name = "ajv_errors___ajv_errors_1.0.0.tgz";
+ path = fetchurl {
+ name = "ajv_errors___ajv_errors_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz";
+ sha1 = "ecf021fa108fd17dfb5e6b383f2dd233e31ffc59";
+ };
+ }
+ {
+ name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+ path = fetchurl {
+ name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+ url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
+ sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
+ };
+ }
+ {
+ name = "ajv___ajv_6.12.5.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.12.5.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz";
+ sha1 = "19b0e8bae8f476e5ba666300387775fb1a00a4da";
+ };
+ }
+ {
+ name = "amdefine___amdefine_1.0.1.tgz";
+ path = fetchurl {
+ name = "amdefine___amdefine_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz";
+ sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
+ };
+ }
+ {
+ name = "ansi_align___ansi_align_3.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_align___ansi_align_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz";
+ sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb";
+ };
+ }
+ {
+ name = "ansi_colors___ansi_colors_3.2.4.tgz";
+ path = fetchurl {
+ name = "ansi_colors___ansi_colors_3.2.4.tgz";
+ url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz";
+ sha1 = "e3a3da4bfbae6c86a9c285625de124a234026fbf";
+ };
+ }
+ {
+ name = "ansi_escapes___ansi_escapes_4.3.0.tgz";
+ path = fetchurl {
+ name = "ansi_escapes___ansi_escapes_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz";
+ sha1 = "a4ce2b33d6b214b7950d8595c212f12ac9cc569d";
+ };
+ }
+ {
+ name = "ansi_html___ansi_html_0.0.7.tgz";
+ path = fetchurl {
+ name = "ansi_html___ansi_html_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz";
+ sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
+ };
+ }
+ {
+ 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.1.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
+ sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
+ };
+ }
+ {
+ name = "ansi_regex___ansi_regex_5.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
+ sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
+ };
+ }
+ {
+ 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 = "ansi_styles___ansi_styles_4.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz";
+ sha1 = "90ae75c424d008d2624c5bf29ead3177ebfcf359";
+ };
+ }
+ {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ path = fetchurl {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
+ sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
+ };
+ }
+ {
+ name = "anymatch___anymatch_3.1.1.tgz";
+ path = fetchurl {
+ name = "anymatch___anymatch_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz";
+ sha1 = "c55ecf02185e2469259399310c173ce31233b142";
+ };
+ }
+ {
+ name = "apollo_cache_inmemory___apollo_cache_inmemory_1.6.6.tgz";
+ path = fetchurl {
+ name = "apollo_cache_inmemory___apollo_cache_inmemory_1.6.6.tgz";
+ url = "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz";
+ sha1 = "56d1f2a463a6b9db32e9fa990af16d2a008206fd";
+ };
+ }
+ {
+ name = "apollo_cache___apollo_cache_1.3.5.tgz";
+ path = fetchurl {
+ name = "apollo_cache___apollo_cache_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.5.tgz";
+ sha1 = "9dbebfc8dbe8fe7f97ba568a224bca2c5d81f461";
+ };
+ }
+ {
+ name = "apollo_client___apollo_client_2.6.10.tgz";
+ path = fetchurl {
+ name = "apollo_client___apollo_client_2.6.10.tgz";
+ url = "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.10.tgz";
+ sha1 = "86637047b51d940c8eaa771a4ce1b02df16bea6a";
+ };
+ }
+ {
+ name = "apollo_link_batch_http___apollo_link_batch_http_1.2.14.tgz";
+ path = fetchurl {
+ name = "apollo_link_batch_http___apollo_link_batch_http_1.2.14.tgz";
+ url = "https://registry.yarnpkg.com/apollo-link-batch-http/-/apollo-link-batch-http-1.2.14.tgz";
+ sha1 = "4502109d3f32a94d88eabd3a89274ae3a6e2f56f";
+ };
+ }
+ {
+ name = "apollo_link_batch___apollo_link_batch_1.1.15.tgz";
+ path = fetchurl {
+ name = "apollo_link_batch___apollo_link_batch_1.1.15.tgz";
+ url = "https://registry.yarnpkg.com/apollo-link-batch/-/apollo-link-batch-1.1.15.tgz";
+ sha1 = "3a5b8c7d9cf1b7840ce630238249b95070e75e54";
+ };
+ }
+ {
+ name = "apollo_link_http_common___apollo_link_http_common_0.2.16.tgz";
+ path = fetchurl {
+ name = "apollo_link_http_common___apollo_link_http_common_0.2.16.tgz";
+ url = "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz";
+ sha1 = "756749dafc732792c8ca0923f9a40564b7c59ecc";
+ };
+ }
+ {
+ name = "apollo_link___apollo_link_1.2.14.tgz";
+ path = fetchurl {
+ name = "apollo_link___apollo_link_1.2.14.tgz";
+ url = "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz";
+ sha1 = "3feda4b47f9ebba7f4160bef8b977ba725b684d9";
+ };
+ }
+ {
+ name = "apollo_upload_client___apollo_upload_client_13.0.0.tgz";
+ path = fetchurl {
+ name = "apollo_upload_client___apollo_upload_client_13.0.0.tgz";
+ url = "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-13.0.0.tgz";
+ sha1 = "146d1ddd85d711fcac8ca97a72d3ca6787f2b71b";
+ };
+ }
+ {
+ name = "apollo_utilities___apollo_utilities_1.3.4.tgz";
+ path = fetchurl {
+ name = "apollo_utilities___apollo_utilities_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz";
+ sha1 = "6129e438e8be201b6c55b0f13ce49d2c7175c9cf";
+ };
+ }
+ {
+ name = "append_transform___append_transform_1.0.0.tgz";
+ path = fetchurl {
+ name = "append_transform___append_transform_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz";
+ sha1 = "046a52ae582a228bd72f58acfbe2967c678759ab";
+ };
+ }
+ {
+ name = "aproba___aproba_1.2.0.tgz";
+ path = fetchurl {
+ name = "aproba___aproba_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+ sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+ };
+ }
+ {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ path = fetchurl {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+ };
+ }
+ {
+ 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_4.2.2.tgz";
+ path = fetchurl {
+ name = "aria_query___aria_query_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz";
+ sha1 = "0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b";
+ };
+ }
+ {
+ 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_find_index___array_find_index_1.0.2.tgz";
+ path = fetchurl {
+ name = "array_find_index___array_find_index_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz";
+ sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1";
+ };
+ }
+ {
+ name = "array_find___array_find_1.0.0.tgz";
+ path = fetchurl {
+ name = "array_find___array_find_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz";
+ sha1 = "6c8e286d11ed768327f8e62ecee87353ca3e78b8";
+ };
+ }
+ {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ }
+ {
+ name = "array_flatten___array_flatten_2.1.1.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz";
+ sha1 = "426bb9da84090c1838d812c8150af20a8331e296";
+ };
+ }
+ {
+ 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 = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+ path = fetchurl {
+ name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz";
+ sha1 = "0de82b426b0318dbfdb940089e38b043d37f6c7b";
+ };
+ }
+ {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.7.tgz";
+ path = fetchurl {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz";
+ sha1 = "3bbc4275dd584cc1b10809b89d4e8b63a69e7675";
+ };
+ }
+ {
+ 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 = "asn1.js___asn1.js_4.10.1.tgz";
+ path = fetchurl {
+ name = "asn1.js___asn1.js_4.10.1.tgz";
+ url = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
+ sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
+ };
+ }
+ {
+ name = "asn1___asn1_0.2.4.tgz";
+ path = fetchurl {
+ name = "asn1___asn1_0.2.4.tgz";
+ url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
+ sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+ };
+ }
+ {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ }
+ {
+ name = "assert___assert_1.4.1.tgz";
+ path = fetchurl {
+ name = "assert___assert_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz";
+ sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
+ };
+ }
+ {
+ 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 = "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 = "async_foreach___async_foreach_0.1.3.tgz";
+ path = fetchurl {
+ name = "async_foreach___async_foreach_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz";
+ sha1 = "36121f845c0578172de419a97dbeb1d16ec34542";
+ };
+ }
+ {
+ name = "async_limiter___async_limiter_1.0.0.tgz";
+ path = fetchurl {
+ name = "async_limiter___async_limiter_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz";
+ sha1 = "78faed8c3d074ab81f22b4e985d79e8738f720f8";
+ };
+ }
+ {
+ name = "async___async_2.6.3.tgz";
+ path = fetchurl {
+ name = "async___async_2.6.3.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
+ sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
+ };
+ }
+ {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ path = fetchurl {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ }
+ {
+ 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 = "autoprefixer___autoprefixer_9.6.1.tgz";
+ path = fetchurl {
+ name = "autoprefixer___autoprefixer_9.6.1.tgz";
+ url = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz";
+ sha1 = "51967a02d2d2300bb01866c1611ec8348d355a47";
+ };
+ }
+ {
+ name = "autosize___autosize_4.0.2.tgz";
+ path = fetchurl {
+ name = "autosize___autosize_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/autosize/-/autosize-4.0.2.tgz";
+ sha1 = "073cfd07c8bf45da4b9fd153437f5bafbba1e4c9";
+ };
+ }
+ {
+ name = "aws_sdk___aws_sdk_2.637.0.tgz";
+ path = fetchurl {
+ name = "aws_sdk___aws_sdk_2.637.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.637.0.tgz";
+ sha1 = "810e25e53acf2250d35fc74498f9d4492e154217";
+ };
+ }
+ {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ path = fetchurl {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ }
+ {
+ name = "aws4___aws4_1.10.1.tgz";
+ path = fetchurl {
+ name = "aws4___aws4_1.10.1.tgz";
+ url = "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz";
+ sha1 = "e1e82e4f3e999e2cfd61b161280d16a111f86428";
+ };
+ }
+ {
+ name = "axios_mock_adapter___axios_mock_adapter_1.15.0.tgz";
+ path = fetchurl {
+ name = "axios_mock_adapter___axios_mock_adapter_1.15.0.tgz";
+ url = "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.15.0.tgz";
+ sha1 = "fbc06825d8302c95c3334d21023bba996255d45d";
+ };
+ }
+ {
+ name = "axios___axios_0.20.0.tgz";
+ path = fetchurl {
+ name = "axios___axios_0.20.0.tgz";
+ url = "https://registry.yarnpkg.com/axios/-/axios-0.20.0.tgz";
+ sha1 = "057ba30f04884694993a8cd07fa394cff11c50bd";
+ };
+ }
+ {
+ name = "babel_eslint___babel_eslint_10.0.3.tgz";
+ path = fetchurl {
+ name = "babel_eslint___babel_eslint_10.0.3.tgz";
+ url = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz";
+ sha1 = "81a2c669be0f205e19462fed2482d33e4687a88a";
+ };
+ }
+ {
+ name = "babel_jest___babel_jest_26.5.2.tgz";
+ path = fetchurl {
+ name = "babel_jest___babel_jest_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.5.2.tgz";
+ sha1 = "164f367a35946c6cf54eaccde8762dec50422250";
+ };
+ }
+ {
+ name = "babel_loader___babel_loader_8.0.6.tgz";
+ path = fetchurl {
+ name = "babel_loader___babel_loader_8.0.6.tgz";
+ url = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz";
+ sha1 = "e33bdb6f362b03f4bb141a0c21ab87c501b70dfb";
+ };
+ }
+ {
+ name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz";
+ path = fetchurl {
+ name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+ sha1 = "84fda19c976ec5c6defef57f9427b3def66e17a3";
+ };
+ }
+ {
+ name = "babel_plugin_istanbul___babel_plugin_istanbul_6.0.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_istanbul___babel_plugin_istanbul_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz";
+ sha1 = "e159ccdc9af95e0b570c75b4573b7c34d671d765";
+ };
+ }
+ {
+ name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_26.5.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_26.5.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.5.0.tgz";
+ sha1 = "3916b3a28129c29528de91e5784a44680db46385";
+ };
+ }
+ {
+ name = "babel_plugin_lodash___babel_plugin_lodash_3.3.4.tgz";
+ path = fetchurl {
+ name = "babel_plugin_lodash___babel_plugin_lodash_3.3.4.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz";
+ sha1 = "4f6844358a1340baed182adbeffa8df9967bc196";
+ };
+ }
+ {
+ name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_0.1.4.tgz";
+ path = fetchurl {
+ name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz";
+ sha1 = "826f1f8e7245ad534714ba001f84f7e906c3b615";
+ };
+ }
+ {
+ name = "babel_preset_jest___babel_preset_jest_26.5.0.tgz";
+ path = fetchurl {
+ name = "babel_preset_jest___babel_preset_jest_26.5.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.5.0.tgz";
+ sha1 = "f1b166045cd21437d1188d29f7fba470d5bdb0e7";
+ };
+ }
+ {
+ name = "babylon___babylon_7.0.0_beta.19.tgz";
+ path = fetchurl {
+ name = "babylon___babylon_7.0.0_beta.19.tgz";
+ url = "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz";
+ sha1 = "e928c7e807e970e0536b078ab3e0c48f9e052503";
+ };
+ }
+ {
+ name = "backo2___backo2_1.0.2.tgz";
+ path = fetchurl {
+ name = "backo2___backo2_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz";
+ sha1 = "31ab1ac8b129363463e35b3ebb69f4dfcfba7947";
+ };
+ }
+ {
+ name = "bail___bail_1.0.3.tgz";
+ path = fetchurl {
+ name = "bail___bail_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz";
+ sha1 = "63cfb9ddbac829b02a3128cd53224be78e6c21a3";
+ };
+ }
+ {
+ 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 = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
+ path = fetchurl {
+ name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz";
+ sha1 = "73926771923b5a19747ad666aa5cd4bf9c6e9ce8";
+ };
+ }
+ {
+ name = "base64_js___base64_js_1.2.3.tgz";
+ path = fetchurl {
+ name = "base64_js___base64_js_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz";
+ sha1 = "fb13668233d9614cf5fb4bce95a9ba4096cdf801";
+ };
+ }
+ {
+ name = "base64id___base64id_1.0.0.tgz";
+ path = fetchurl {
+ name = "base64id___base64id_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz";
+ sha1 = "47688cb99bb6804f0e06d3e763b1c32e57d8e6b6";
+ };
+ }
+ {
+ 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 = "batch___batch_0.6.1.tgz";
+ path = fetchurl {
+ name = "batch___batch_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz";
+ sha1 = "dc34314f4e679318093fc760272525f94bf25c16";
+ };
+ }
+ {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ path = fetchurl {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ }
+ {
+ name = "better_assert___better_assert_1.0.2.tgz";
+ path = fetchurl {
+ name = "better_assert___better_assert_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz";
+ sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
+ };
+ }
+ {
+ name = "bfj___bfj_6.1.1.tgz";
+ path = fetchurl {
+ name = "bfj___bfj_6.1.1.tgz";
+ url = "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz";
+ sha1 = "05a3b7784fbd72cfa3c22e56002ef99336516c48";
+ };
+ }
+ {
+ name = "big.js___big.js_5.2.2.tgz";
+ path = fetchurl {
+ name = "big.js___big.js_5.2.2.tgz";
+ url = "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz";
+ sha1 = "65f0af382f578bcdc742bd9c281e9cb2d7768328";
+ };
+ }
+ {
+ name = "binary_extensions___binary_extensions_2.0.0.tgz";
+ path = fetchurl {
+ name = "binary_extensions___binary_extensions_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz";
+ sha1 = "23c0df14f6a88077f5f986c0d167ec03c3d5537c";
+ };
+ }
+ {
+ name = "binaryextensions___binaryextensions_2.1.1.tgz";
+ path = fetchurl {
+ name = "binaryextensions___binaryextensions_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz";
+ sha1 = "3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935";
+ };
+ }
+ {
+ name = "blob___blob_0.0.4.tgz";
+ path = fetchurl {
+ name = "blob___blob_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz";
+ sha1 = "bcf13052ca54463f30f9fc7e95b9a47630a94921";
+ };
+ }
+ {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ path = fetchurl {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ url = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz";
+ sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
+ };
+ }
+ {
+ name = "bluebird___bluebird_3.5.5.tgz";
+ path = fetchurl {
+ name = "bluebird___bluebird_3.5.5.tgz";
+ url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz";
+ sha1 = "a8d0afd73251effbbd5fe384a77d73003c17a71f";
+ };
+ }
+ {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ path = fetchurl {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
+ sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+ };
+ }
+ {
+ name = "body_parser___body_parser_1.19.0.tgz";
+ path = fetchurl {
+ name = "body_parser___body_parser_1.19.0.tgz";
+ url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz";
+ sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a";
+ };
+ }
+ {
+ name = "bonjour___bonjour_3.5.0.tgz";
+ path = fetchurl {
+ name = "bonjour___bonjour_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz";
+ sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
+ };
+ }
+ {
+ name = "bootstrap_vue___bootstrap_vue_2.13.1.tgz";
+ path = fetchurl {
+ name = "bootstrap_vue___bootstrap_vue_2.13.1.tgz";
+ url = "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-2.13.1.tgz";
+ sha1 = "dcefca78f2b0345508fbb85adb0a9897cce65fa1";
+ };
+ }
+ {
+ name = "bootstrap___bootstrap_4.4.1.tgz";
+ path = fetchurl {
+ name = "bootstrap___bootstrap_4.4.1.tgz";
+ url = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.4.1.tgz";
+ sha1 = "8582960eea0c5cd2bede84d8b0baf3789c3e8b01";
+ };
+ }
+ {
+ name = "boxen___boxen_4.2.0.tgz";
+ path = fetchurl {
+ name = "boxen___boxen_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz";
+ sha1 = "e411b62357d6d6d36587c8ac3d5d974daa070e64";
+ };
+ }
+ {
+ 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 = "braces___braces_3.0.2.tgz";
+ path = fetchurl {
+ name = "braces___braces_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
+ sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
+ };
+ }
+ {
+ name = "brorand___brorand_1.1.0.tgz";
+ path = fetchurl {
+ name = "brorand___brorand_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
+ sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+ };
+ }
+ {
+ name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz";
+ path = fetchurl {
+ name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz";
+ sha1 = "3c9b4b7d782c8121e56f10106d84c0d0ffc94626";
+ };
+ }
+ {
+ name = "browserify_aes___browserify_aes_1.1.1.tgz";
+ path = fetchurl {
+ name = "browserify_aes___browserify_aes_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz";
+ sha1 = "38b7ab55edb806ff2dcda1a7f1620773a477c49f";
+ };
+ }
+ {
+ name = "browserify_cipher___browserify_cipher_1.0.0.tgz";
+ path = fetchurl {
+ name = "browserify_cipher___browserify_cipher_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz";
+ sha1 = "9988244874bf5ed4e28da95666dcd66ac8fc363a";
+ };
+ }
+ {
+ name = "browserify_des___browserify_des_1.0.0.tgz";
+ path = fetchurl {
+ name = "browserify_des___browserify_des_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz";
+ sha1 = "daa277717470922ed2fe18594118a175439721dd";
+ };
+ }
+ {
+ name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+ path = fetchurl {
+ name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+ sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+ };
+ }
+ {
+ name = "browserify_sign___browserify_sign_4.0.4.tgz";
+ path = fetchurl {
+ name = "browserify_sign___browserify_sign_4.0.4.tgz";
+ url = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz";
+ sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+ };
+ }
+ {
+ name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+ path = fetchurl {
+ name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+ sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
+ };
+ }
+ {
+ name = "browserslist___browserslist_4.12.0.tgz";
+ path = fetchurl {
+ name = "browserslist___browserslist_4.12.0.tgz";
+ url = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz";
+ sha1 = "06c6d5715a1ede6c51fc39ff67fd647f740b656d";
+ };
+ }
+ {
+ name = "bs_logger___bs_logger_0.2.6.tgz";
+ path = fetchurl {
+ name = "bs_logger___bs_logger_0.2.6.tgz";
+ url = "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz";
+ sha1 = "eb7d365307a72cf974cc6cda76b68354ad336bd8";
+ };
+ }
+ {
+ name = "bser___bser_2.1.1.tgz";
+ path = fetchurl {
+ name = "bser___bser_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz";
+ sha1 = "e6787da20ece9d07998533cfd9de6f5c38f4bc05";
+ };
+ }
+ {
+ 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 = "buffer_indexof___buffer_indexof_1.1.0.tgz";
+ path = fetchurl {
+ name = "buffer_indexof___buffer_indexof_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz";
+ sha1 = "f54f647c4f4e25228baa656a2e57e43d5f270982";
+ };
+ }
+ {
+ name = "buffer_json___buffer_json_2.0.0.tgz";
+ path = fetchurl {
+ name = "buffer_json___buffer_json_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz";
+ sha1 = "f73e13b1e42f196fe2fd67d001c7d7107edd7c23";
+ };
+ }
+ {
+ name = "buffer_xor___buffer_xor_1.0.3.tgz";
+ path = fetchurl {
+ name = "buffer_xor___buffer_xor_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
+ sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+ };
+ }
+ {
+ name = "buffer___buffer_4.9.1.tgz";
+ path = fetchurl {
+ name = "buffer___buffer_4.9.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz";
+ sha1 = "6d1bb601b07a4efced97094132093027c95bc298";
+ };
+ }
+ {
+ name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+ path = fetchurl {
+ name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+ sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+ };
+ }
+ {
+ name = "bytes___bytes_3.0.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+ };
+ }
+ {
+ name = "bytes___bytes_3.1.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz";
+ sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6";
+ };
+ }
+ {
+ name = "cacache___cacache_12.0.3.tgz";
+ path = fetchurl {
+ name = "cacache___cacache_12.0.3.tgz";
+ url = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz";
+ sha1 = "be99abba4e1bf5df461cd5a2c1071fc432573390";
+ };
+ }
+ {
+ name = "cacache___cacache_13.0.1.tgz";
+ path = fetchurl {
+ name = "cacache___cacache_13.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz";
+ sha1 = "a8000c21697089082f85287a1aec6e382024a71c";
+ };
+ }
+ {
+ 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 = "cache_loader___cache_loader_4.1.0.tgz";
+ path = fetchurl {
+ name = "cache_loader___cache_loader_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz";
+ sha1 = "9948cae353aec0a1fcb1eafda2300816ec85387e";
+ };
+ }
+ {
+ name = "cacheable_request___cacheable_request_6.1.0.tgz";
+ path = fetchurl {
+ name = "cacheable_request___cacheable_request_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz";
+ sha1 = "20ffb8bd162ba4be11e9567d823db651052ca912";
+ };
+ }
+ {
+ name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
+ path = fetchurl {
+ name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
+ sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
+ };
+ }
+ {
+ 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_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 = "callsite___callsite_1.0.0.tgz";
+ path = fetchurl {
+ name = "callsite___callsite_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz";
+ sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
+ };
+ }
+ {
+ 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 = "camel_case___camel_case_3.0.0.tgz";
+ path = fetchurl {
+ name = "camel_case___camel_case_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz";
+ sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73";
+ };
+ }
+ {
+ name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
+ path = fetchurl {
+ name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz";
+ sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7";
+ };
+ }
+ {
+ 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_2.1.1.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz";
+ sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
+ };
+ }
+ {
+ 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 = "camelcase___camelcase_5.3.1.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_5.3.1.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
+ sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
+ };
+ }
+ {
+ name = "camelcase___camelcase_6.0.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz";
+ sha1 = "5259f7c30e35e278f1bdc2a4d91230b37cad981e";
+ };
+ }
+ {
+ name = "caniuse_lite___caniuse_lite_1.0.30001081.tgz";
+ path = fetchurl {
+ name = "caniuse_lite___caniuse_lite_1.0.30001081.tgz";
+ url = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz";
+ sha1 = "40615a3c416a047c5a4d45673e5257bf128eb3b5";
+ };
+ }
+ {
+ name = "capture_exit___capture_exit_2.0.0.tgz";
+ path = fetchurl {
+ name = "capture_exit___capture_exit_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz";
+ sha1 = "fb953bfaebeb781f62898239dabb426d08a509a4";
+ };
+ }
+ {
+ name = "caseless___caseless_0.12.0.tgz";
+ path = fetchurl {
+ name = "caseless___caseless_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ }
+ {
+ name = "catharsis___catharsis_0.8.9.tgz";
+ path = fetchurl {
+ name = "catharsis___catharsis_0.8.9.tgz";
+ url = "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz";
+ sha1 = "98cc890ca652dd2ef0e70b37925310ff9e90fc8b";
+ };
+ }
+ {
+ name = "ccount___ccount_1.0.3.tgz";
+ path = fetchurl {
+ name = "ccount___ccount_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz";
+ sha1 = "f1cec43f332e2ea5a569fd46f9f5bde4e6102aff";
+ };
+ }
+ {
+ name = "chalk___chalk_2.4.2.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_2.4.2.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+ sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+ };
+ }
+ {
+ 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_3.0.0.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
+ sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
+ };
+ }
+ {
+ name = "chalk___chalk_4.1.0.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
+ sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
+ };
+ }
+ {
+ name = "char_regex___char_regex_1.0.2.tgz";
+ path = fetchurl {
+ name = "char_regex___char_regex_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz";
+ sha1 = "d744358226217f981ed58f479b1d6bcc29545dcf";
+ };
+ }
+ {
+ name = "character_entities_html4___character_entities_html4_1.1.2.tgz";
+ path = fetchurl {
+ name = "character_entities_html4___character_entities_html4_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz";
+ sha1 = "c44fdde3ce66b52e8d321d6c1bf46101f0150610";
+ };
+ }
+ {
+ name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
+ path = fetchurl {
+ name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz";
+ sha1 = "7c6defb81648498222c9855309953d05f4d63a9c";
+ };
+ }
+ {
+ name = "character_entities___character_entities_1.2.2.tgz";
+ path = fetchurl {
+ name = "character_entities___character_entities_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz";
+ sha1 = "58c8f371c0774ef0ba9b2aca5f00d8f100e6e363";
+ };
+ }
+ {
+ name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
+ path = fetchurl {
+ name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz";
+ sha1 = "21e421ad3d84055952dab4a43a04e73cd425d3ed";
+ };
+ }
+ {
+ 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 = "charenc___charenc_0.0.2.tgz";
+ path = fetchurl {
+ name = "charenc___charenc_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz";
+ sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
+ };
+ }
+ {
+ name = "check_types___check_types_7.3.0.tgz";
+ path = fetchurl {
+ name = "check_types___check_types_7.3.0.tgz";
+ url = "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz";
+ sha1 = "468f571a4435c24248f5fd0cb0e8d87c3c341e7d";
+ };
+ }
+ {
+ name = "chokidar___chokidar_3.4.0.tgz";
+ path = fetchurl {
+ name = "chokidar___chokidar_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz";
+ sha1 = "b30611423ce376357c765b9b8f904b9fba3c0be8";
+ };
+ }
+ {
+ name = "chownr___chownr_1.1.3.tgz";
+ path = fetchurl {
+ name = "chownr___chownr_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz";
+ sha1 = "42d837d5239688d55f303003a508230fa6727142";
+ };
+ }
+ {
+ name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
+ path = fetchurl {
+ name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
+ sha1 = "234090ee97c7d4ad1a2c4beae27505deffc608a4";
+ };
+ }
+ {
+ 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 = "cipher_base___cipher_base_1.0.4.tgz";
+ path = fetchurl {
+ name = "cipher_base___cipher_base_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
+ sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
+ };
+ }
+ {
+ 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 = "clean_css___clean_css_4.2.1.tgz";
+ path = fetchurl {
+ name = "clean_css___clean_css_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz";
+ sha1 = "2d411ef76b8569b6d0c84068dabe85b0aa5e5c17";
+ };
+ }
+ {
+ name = "clean_stack___clean_stack_2.2.0.tgz";
+ path = fetchurl {
+ name = "clean_stack___clean_stack_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz";
+ sha1 = "ee8472dbb129e727b31e8a10a427dee9dfe4008b";
+ };
+ }
+ {
+ name = "cli_boxes___cli_boxes_2.2.0.tgz";
+ path = fetchurl {
+ name = "cli_boxes___cli_boxes_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz";
+ sha1 = "538ecae8f9c6ca508e3c3c95b453fe93cb4c168d";
+ };
+ }
+ {
+ name = "cli_cursor___cli_cursor_3.1.0.tgz";
+ path = fetchurl {
+ name = "cli_cursor___cli_cursor_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
+ sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
+ };
+ }
+ {
+ 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 = "clipboard___clipboard_1.7.1.tgz";
+ path = fetchurl {
+ name = "clipboard___clipboard_1.7.1.tgz";
+ url = "https://registry.yarnpkg.com/clipboard/-/clipboard-1.7.1.tgz";
+ sha1 = "360d6d6946e99a7a1fef395e42ba92b5e9b5a16b";
+ };
+ }
+ {
+ name = "clipboard___clipboard_2.0.6.tgz";
+ path = fetchurl {
+ name = "clipboard___clipboard_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz";
+ sha1 = "52921296eec0fdf77ead1749421b21c968647376";
+ };
+ }
+ {
+ name = "cliui___cliui_4.1.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
+ sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
+ };
+ }
+ {
+ name = "cliui___cliui_5.0.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz";
+ sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5";
+ };
+ }
+ {
+ name = "cliui___cliui_6.0.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz";
+ sha1 = "511d702c0c4e41ca156d7d0e96021f23e13225b1";
+ };
+ }
+ {
+ name = "clone_deep___clone_deep_4.0.1.tgz";
+ path = fetchurl {
+ name = "clone_deep___clone_deep_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz";
+ sha1 = "c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387";
+ };
+ }
+ {
+ name = "clone_regexp___clone_regexp_2.2.0.tgz";
+ path = fetchurl {
+ name = "clone_regexp___clone_regexp_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz";
+ sha1 = "7d65e00885cd8796405c35a737e7a86b7429e36f";
+ };
+ }
+ {
+ name = "clone_response___clone_response_1.0.2.tgz";
+ path = fetchurl {
+ name = "clone_response___clone_response_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz";
+ sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
+ };
+ }
+ {
+ 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 = "codemirror___codemirror_5.53.2.tgz";
+ path = fetchurl {
+ name = "codemirror___codemirror_5.53.2.tgz";
+ url = "https://registry.yarnpkg.com/codemirror/-/codemirror-5.53.2.tgz";
+ sha1 = "9799121cf8c50809cca487304e9de3a74d33f428";
+ };
+ }
+ {
+ name = "codesandbox_api___codesandbox_api_0.0.23.tgz";
+ path = fetchurl {
+ name = "codesandbox_api___codesandbox_api_0.0.23.tgz";
+ url = "https://registry.yarnpkg.com/codesandbox-api/-/codesandbox-api-0.0.23.tgz";
+ sha1 = "bf650a21b5f3c2369e03f0c19d10b4e2ba255b4f";
+ };
+ }
+ {
+ name = "codesandbox_import_util_types___codesandbox_import_util_types_1.2.11.tgz";
+ path = fetchurl {
+ name = "codesandbox_import_util_types___codesandbox_import_util_types_1.2.11.tgz";
+ url = "https://registry.yarnpkg.com/codesandbox-import-util-types/-/codesandbox-import-util-types-1.2.11.tgz";
+ sha1 = "68e812f21d6b309e9a52eec5cf027c3e63b4c703";
+ };
+ }
+ {
+ name = "codesandbox_import_utils___codesandbox_import_utils_1.2.11.tgz";
+ path = fetchurl {
+ name = "codesandbox_import_utils___codesandbox_import_utils_1.2.11.tgz";
+ url = "https://registry.yarnpkg.com/codesandbox-import-utils/-/codesandbox-import-utils-1.2.11.tgz";
+ sha1 = "b88423a4a7c785175c784c84e87f5950820280e1";
+ };
+ }
+ {
+ name = "collapse_white_space___collapse_white_space_1.0.5.tgz";
+ path = fetchurl {
+ name = "collapse_white_space___collapse_white_space_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz";
+ sha1 = "c2495b699ab1ed380d29a1091e01063e75dbbe3a";
+ };
+ }
+ {
+ name = "collect_v8_coverage___collect_v8_coverage_1.0.1.tgz";
+ path = fetchurl {
+ name = "collect_v8_coverage___collect_v8_coverage_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz";
+ sha1 = "cc2c8e94fc18bbdffe64d6534570c8a673b27f59";
+ };
+ }
+ {
+ 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_convert___color_convert_2.0.1.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
+ sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
+ };
+ }
+ {
+ name = "color_convert___color_convert_0.5.3.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz";
+ sha1 = "bdb6c69ce660fadffe0b0007cc447e1b9f7282bd";
+ };
+ }
+ {
+ 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 = "color_name___color_name_1.1.4.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
+ sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
+ };
+ }
+ {
+ name = "colors___colors_1.3.3.tgz";
+ path = fetchurl {
+ name = "colors___colors_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz";
+ sha1 = "39e005d546afe01e01f9c4ca8fa50f686a01205d";
+ };
+ }
+ {
+ name = "combined_stream___combined_stream_1.0.8.tgz";
+ path = fetchurl {
+ name = "combined_stream___combined_stream_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
+ sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
+ };
+ }
+ {
+ name = "commander___commander_2.20.0.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.20.0.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz";
+ sha1 = "d58bb2b5c1ee8f87b0d340027e9e94e222c5a422";
+ };
+ }
+ {
+ name = "commander___commander_2.9.0.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.9.0.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
+ sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+ };
+ }
+ {
+ name = "commondir___commondir_1.0.1.tgz";
+ path = fetchurl {
+ name = "commondir___commondir_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
+ sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+ };
+ }
+ {
+ name = "compare_versions___compare_versions_3.5.1.tgz";
+ path = fetchurl {
+ name = "compare_versions___compare_versions_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.5.1.tgz";
+ sha1 = "26e1f5cf0d48a77eced5046b9f67b6b61075a393";
+ };
+ }
+ {
+ name = "component_bind___component_bind_1.0.0.tgz";
+ path = fetchurl {
+ name = "component_bind___component_bind_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz";
+ sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1";
+ };
+ }
+ {
+ 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 = "component_inherit___component_inherit_0.0.3.tgz";
+ path = fetchurl {
+ name = "component_inherit___component_inherit_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz";
+ sha1 = "645fc4adf58b72b649d5cae65135619db26ff143";
+ };
+ }
+ {
+ name = "compressible___compressible_2.0.17.tgz";
+ path = fetchurl {
+ name = "compressible___compressible_2.0.17.tgz";
+ url = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz";
+ sha1 = "6e8c108a16ad58384a977f3a482ca20bff2f38c1";
+ };
+ }
+ {
+ name = "compression_webpack_plugin___compression_webpack_plugin_3.0.1.tgz";
+ path = fetchurl {
+ name = "compression_webpack_plugin___compression_webpack_plugin_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.1.tgz";
+ sha1 = "be7a343e6dfbccbd64a77c5fbe29627d140fc321";
+ };
+ }
+ {
+ name = "compression___compression_1.7.4.tgz";
+ path = fetchurl {
+ name = "compression___compression_1.7.4.tgz";
+ url = "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz";
+ sha1 = "95523eff170ca57c29a0ca41e6fe131f41e5bb8f";
+ };
+ }
+ {
+ 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 = "condense_newlines___condense_newlines_0.2.1.tgz";
+ path = fetchurl {
+ name = "condense_newlines___condense_newlines_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz";
+ sha1 = "3de985553139475d32502c83b02f60684d24c55f";
+ };
+ }
+ {
+ name = "config_chain___config_chain_1.1.12.tgz";
+ path = fetchurl {
+ name = "config_chain___config_chain_1.1.12.tgz";
+ url = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
+ sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
+ };
+ }
+ {
+ name = "configstore___configstore_5.0.1.tgz";
+ path = fetchurl {
+ name = "configstore___configstore_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz";
+ sha1 = "d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96";
+ };
+ }
+ {
+ name = "confusing_browser_globals___confusing_browser_globals_1.0.9.tgz";
+ path = fetchurl {
+ name = "confusing_browser_globals___confusing_browser_globals_1.0.9.tgz";
+ url = "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz";
+ sha1 = "72bc13b483c0276801681871d4898516f8f54fdd";
+ };
+ }
+ {
+ name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
+ path = fetchurl {
+ name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
+ sha1 = "8b32089359308d111115d81cad3fceab888f97bc";
+ };
+ }
+ {
+ name = "connect___connect_3.6.6.tgz";
+ path = fetchurl {
+ name = "connect___connect_3.6.6.tgz";
+ url = "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz";
+ sha1 = "09eff6c55af7236e137135a72574858b6786f524";
+ };
+ }
+ {
+ name = "consola___consola_2.10.1.tgz";
+ path = fetchurl {
+ name = "consola___consola_2.10.1.tgz";
+ url = "https://registry.yarnpkg.com/consola/-/consola-2.10.1.tgz";
+ sha1 = "4693edba714677c878d520e4c7e4f69306b4b927";
+ };
+ }
+ {
+ name = "console_browserify___console_browserify_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_browserify___console_browserify_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz";
+ sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
+ };
+ }
+ {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ }
+ {
+ name = "consolidate___consolidate_0.15.1.tgz";
+ path = fetchurl {
+ name = "consolidate___consolidate_0.15.1.tgz";
+ url = "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz";
+ sha1 = "21ab043235c71a07d45d9aad98593b0dba56bab7";
+ };
+ }
+ {
+ name = "constants_browserify___constants_browserify_1.0.0.tgz";
+ path = fetchurl {
+ name = "constants_browserify___constants_browserify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
+ sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+ };
+ }
+ {
+ 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 = "content_disposition___content_disposition_0.5.3.tgz";
+ path = fetchurl {
+ name = "content_disposition___content_disposition_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz";
+ sha1 = "e130caf7e7279087c5616c2007d0485698984fbd";
+ };
+ }
+ {
+ name = "content_type___content_type_1.0.4.tgz";
+ path = fetchurl {
+ name = "content_type___content_type_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+ sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+ };
+ }
+ {
+ name = "convert_source_map___convert_source_map_1.7.0.tgz";
+ path = fetchurl {
+ name = "convert_source_map___convert_source_map_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz";
+ sha1 = "17a2cb882d7f77d3490585e2ce6c524424a3a442";
+ };
+ }
+ {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ path = fetchurl {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ }
+ {
+ name = "cookie___cookie_0.3.1.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
+ sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
+ };
+ }
+ {
+ name = "cookie___cookie_0.4.0.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz";
+ sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba";
+ };
+ }
+ {
+ name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+ path = fetchurl {
+ name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+ sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
+ };
+ }
+ {
+ 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 = "copy_to_clipboard___copy_to_clipboard_3.2.0.tgz";
+ path = fetchurl {
+ name = "copy_to_clipboard___copy_to_clipboard_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz";
+ sha1 = "d2724a3ccbfed89706fac8a894872c979ac74467";
+ };
+ }
+ {
+ name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz";
+ path = fetchurl {
+ name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz";
+ sha1 = "5481a03dea1123d88a988c6ff8b78247214f0b88";
+ };
+ }
+ {
+ name = "core_js_compat___core_js_compat_3.6.4.tgz";
+ path = fetchurl {
+ name = "core_js_compat___core_js_compat_3.6.4.tgz";
+ url = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz";
+ sha1 = "938476569ebb6cda80d339bcf199fae4f16fff17";
+ };
+ }
+ {
+ name = "core_js_pure___core_js_pure_3.6.5.tgz";
+ path = fetchurl {
+ name = "core_js_pure___core_js_pure_3.6.5.tgz";
+ url = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz";
+ sha1 = "c79e75f5e38dbc85a662d91eea52b8256d53b813";
+ };
+ }
+ {
+ name = "core_js___core_js_3.6.4.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_3.6.4.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz";
+ sha1 = "440a83536b458114b9cb2ac1580ba377dc470647";
+ };
+ }
+ {
+ name = "core_js___core_js_2.3.0.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz";
+ sha1 = "fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65";
+ };
+ }
+ {
+ 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.2.1.tgz";
+ path = fetchurl {
+ name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
+ url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
+ sha1 = "040f726809c591e77a17c0a3626ca45b4f168b1a";
+ };
+ }
+ {
+ name = "create_ecdh___create_ecdh_4.0.0.tgz";
+ path = fetchurl {
+ name = "create_ecdh___create_ecdh_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz";
+ sha1 = "888c723596cdf7612f6498233eebd7a35301737d";
+ };
+ }
+ {
+ name = "create_hash___create_hash_1.1.3.tgz";
+ path = fetchurl {
+ name = "create_hash___create_hash_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz";
+ sha1 = "606042ac8b9262750f483caddab0f5819172d8fd";
+ };
+ }
+ {
+ name = "create_hmac___create_hmac_1.1.6.tgz";
+ path = fetchurl {
+ name = "create_hmac___create_hmac_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz";
+ sha1 = "acb9e221a4e17bdb076e90657c42b93e3726cf06";
+ };
+ }
+ {
+ name = "cron_validator___cron_validator_1.1.1.tgz";
+ path = fetchurl {
+ name = "cron_validator___cron_validator_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/cron-validator/-/cron-validator-1.1.1.tgz";
+ sha1 = "0a27bb75508c7bc03c8b840d2d9f170eeacb5615";
+ };
+ }
+ {
+ name = "cropper___cropper_2.3.0.tgz";
+ path = fetchurl {
+ name = "cropper___cropper_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/cropper/-/cropper-2.3.0.tgz";
+ sha1 = "607461d4e7aa7a7fe15a26834b14b7f0c2801562";
+ };
+ }
+ {
+ 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 = "cross_spawn___cross_spawn_3.0.1.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz";
+ sha1 = "1256037ecb9f0c5f79e3d6ef135e30770184b982";
+ };
+ }
+ {
+ name = "cross_spawn___cross_spawn_7.0.3.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_7.0.3.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
+ sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
+ };
+ }
+ {
+ name = "crypt___crypt_0.0.2.tgz";
+ path = fetchurl {
+ name = "crypt___crypt_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz";
+ sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
+ };
+ }
+ {
+ name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+ path = fetchurl {
+ name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+ url = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+ sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
+ };
+ }
+ {
+ name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
+ path = fetchurl {
+ name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz";
+ sha1 = "ef2a7a966ec11083388369baa02ebead229b30d5";
+ };
+ }
+ {
+ name = "crypto_random_string___crypto_random_string_3.0.1.tgz";
+ path = fetchurl {
+ name = "crypto_random_string___crypto_random_string_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-3.0.1.tgz";
+ sha1 = "29d7dc759d577a768afb3b7b2765dd9bd7ffe36a";
+ };
+ }
+ {
+ name = "css_b64_images___css_b64_images_0.2.5.tgz";
+ path = fetchurl {
+ name = "css_b64_images___css_b64_images_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/css-b64-images/-/css-b64-images-0.2.5.tgz";
+ sha1 = "42005d83204b2b4a5d93b6b1a5644133b5927a02";
+ };
+ }
+ {
+ name = "css_loader___css_loader_2.1.1.tgz";
+ path = fetchurl {
+ name = "css_loader___css_loader_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz";
+ sha1 = "d8254f72e412bb2238bb44dd674ffbef497333ea";
+ };
+ }
+ {
+ name = "css_selector_parser___css_selector_parser_1.3.0.tgz";
+ path = fetchurl {
+ name = "css_selector_parser___css_selector_parser_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.3.0.tgz";
+ sha1 = "5f1ad43e2d8eefbfdc304fcd39a521664943e3eb";
+ };
+ }
+ {
+ name = "css___css_2.2.4.tgz";
+ path = fetchurl {
+ name = "css___css_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz";
+ sha1 = "c646755c73971f2bba6a601e2cf2fd71b1298929";
+ };
+ }
+ {
+ name = "cssesc___cssesc_3.0.0.tgz";
+ path = fetchurl {
+ name = "cssesc___cssesc_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz";
+ sha1 = "37741919903b868565e1c09ea747445cd18983ee";
+ };
+ }
+ {
+ name = "cssfontparser___cssfontparser_1.2.1.tgz";
+ path = fetchurl {
+ name = "cssfontparser___cssfontparser_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz";
+ sha1 = "f4022fc8f9700c68029d542084afbaf425a3f3e3";
+ };
+ }
+ {
+ name = "cssom___cssom_0.4.4.tgz";
+ path = fetchurl {
+ name = "cssom___cssom_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz";
+ sha1 = "5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10";
+ };
+ }
+ {
+ name = "cssom___cssom_0.3.8.tgz";
+ path = fetchurl {
+ name = "cssom___cssom_0.3.8.tgz";
+ url = "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz";
+ sha1 = "9f1276f5b2b463f2114d3f2c75250af8c1a36f4a";
+ };
+ }
+ {
+ name = "cssstyle___cssstyle_2.3.0.tgz";
+ path = fetchurl {
+ name = "cssstyle___cssstyle_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz";
+ sha1 = "ff665a0ddbdc31864b09647f34163443d90b0852";
+ };
+ }
+ {
+ name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
+ path = fetchurl {
+ name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz";
+ sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
+ };
+ }
+ {
+ name = "custom_event___custom_event_1.0.1.tgz";
+ path = fetchurl {
+ name = "custom_event___custom_event_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz";
+ sha1 = "5d02a46850adf1b4a317946a3928fccb5bfd0425";
+ };
+ }
+ {
+ name = "custom_jquery_matchers___custom_jquery_matchers_2.1.0.tgz";
+ path = fetchurl {
+ name = "custom_jquery_matchers___custom_jquery_matchers_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/custom-jquery-matchers/-/custom-jquery-matchers-2.1.0.tgz";
+ sha1 = "e5988fa9715c416b0986b372563f872d9e91e024";
+ };
+ }
+ {
+ name = "cyclist___cyclist_0.2.2.tgz";
+ path = fetchurl {
+ name = "cyclist___cyclist_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz";
+ sha1 = "1b33792e11e914a2fd6d6ed6447464444e5fa640";
+ };
+ }
+ {
+ name = "d3_array___d3_array_1.2.1.tgz";
+ path = fetchurl {
+ name = "d3_array___d3_array_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz";
+ sha1 = "d1ca33de2f6ac31efadb8e050a021d7e2396d5dc";
+ };
+ }
+ {
+ name = "d3_axis___d3_axis_1.0.8.tgz";
+ path = fetchurl {
+ name = "d3_axis___d3_axis_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.8.tgz";
+ sha1 = "31a705a0b535e65759de14173a31933137f18efa";
+ };
+ }
+ {
+ name = "d3_brush___d3_brush_1.0.4.tgz";
+ path = fetchurl {
+ name = "d3_brush___d3_brush_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.4.tgz";
+ sha1 = "00c2f238019f24f6c0a194a26d41a1530ffe7bc4";
+ };
+ }
+ {
+ name = "d3_chord___d3_chord_1.0.4.tgz";
+ path = fetchurl {
+ name = "d3_chord___d3_chord_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.4.tgz";
+ sha1 = "7dec4f0ba886f713fe111c45f763414f6f74ca2c";
+ };
+ }
+ {
+ name = "d3_collection___d3_collection_1.0.4.tgz";
+ path = fetchurl {
+ name = "d3_collection___d3_collection_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.4.tgz";
+ sha1 = "342dfd12837c90974f33f1cc0a785aea570dcdc2";
+ };
+ }
+ {
+ name = "d3_color___d3_color_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_color___d3_color_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.3.tgz";
+ sha1 = "bc7643fca8e53a8347e2fbdaffa236796b58509b";
+ };
+ }
+ {
+ name = "d3_contour___d3_contour_1.3.2.tgz";
+ path = fetchurl {
+ name = "d3_contour___d3_contour_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz";
+ sha1 = "652aacd500d2264cb3423cee10db69f6f59bead3";
+ };
+ }
+ {
+ name = "d3_dispatch___d3_dispatch_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_dispatch___d3_dispatch_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.3.tgz";
+ sha1 = "46e1491eaa9b58c358fce5be4e8bed626e7871f8";
+ };
+ }
+ {
+ name = "d3_drag___d3_drag_1.2.1.tgz";
+ path = fetchurl {
+ name = "d3_drag___d3_drag_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.1.tgz";
+ sha1 = "df8dd4c502fb490fc7462046a8ad98a5c479282d";
+ };
+ }
+ {
+ name = "d3_dsv___d3_dsv_1.0.8.tgz";
+ path = fetchurl {
+ name = "d3_dsv___d3_dsv_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.8.tgz";
+ sha1 = "907e240d57b386618dc56468bacfe76bf19764ae";
+ };
+ }
+ {
+ name = "d3_ease___d3_ease_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_ease___d3_ease_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.3.tgz";
+ sha1 = "68bfbc349338a380c44d8acc4fbc3304aa2d8c0e";
+ };
+ }
+ {
+ name = "d3_fetch___d3_fetch_1.1.2.tgz";
+ path = fetchurl {
+ name = "d3_fetch___d3_fetch_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.1.2.tgz";
+ sha1 = "957c8fbc6d4480599ba191b1b2518bf86b3e1be2";
+ };
+ }
+ {
+ name = "d3_force___d3_force_1.1.0.tgz";
+ path = fetchurl {
+ name = "d3_force___d3_force_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/d3-force/-/d3-force-1.1.0.tgz";
+ sha1 = "cebf3c694f1078fcc3d4daf8e567b2fbd70d4ea3";
+ };
+ }
+ {
+ name = "d3_format___d3_format_1.2.2.tgz";
+ path = fetchurl {
+ name = "d3_format___d3_format_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.2.tgz";
+ sha1 = "1a39c479c8a57fe5051b2e67a3bee27061a74e7a";
+ };
+ }
+ {
+ name = "d3_geo___d3_geo_1.9.1.tgz";
+ path = fetchurl {
+ name = "d3_geo___d3_geo_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.9.1.tgz";
+ sha1 = "157e3b0f917379d0f73bebfff3be537f49fa7356";
+ };
+ }
+ {
+ name = "d3_hierarchy___d3_hierarchy_1.1.5.tgz";
+ path = fetchurl {
+ name = "d3_hierarchy___d3_hierarchy_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz";
+ sha1 = "a1c845c42f84a206bcf1c01c01098ea4ddaa7a26";
+ };
+ }
+ {
+ name = "d3_interpolate___d3_interpolate_1.1.6.tgz";
+ path = fetchurl {
+ name = "d3_interpolate___d3_interpolate_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz";
+ sha1 = "2cf395ae2381804df08aa1bf766b7f97b5f68fb6";
+ };
+ }
+ {
+ name = "d3_path___d3_path_1.0.5.tgz";
+ path = fetchurl {
+ name = "d3_path___d3_path_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.5.tgz";
+ sha1 = "241eb1849bd9e9e8021c0d0a799f8a0e8e441764";
+ };
+ }
+ {
+ name = "d3_polygon___d3_polygon_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_polygon___d3_polygon_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.3.tgz";
+ sha1 = "16888e9026460933f2b179652ad378224d382c62";
+ };
+ }
+ {
+ name = "d3_quadtree___d3_quadtree_1.0.3.tgz";
+ path = fetchurl {
+ name = "d3_quadtree___d3_quadtree_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.3.tgz";
+ sha1 = "ac7987e3e23fe805a990f28e1b50d38fcb822438";
+ };
+ }
+ {
+ name = "d3_random___d3_random_1.1.0.tgz";
+ path = fetchurl {
+ name = "d3_random___d3_random_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.0.tgz";
+ sha1 = "6642e506c6fa3a648595d2b2469788a8d12529d3";
+ };
+ }
+ {
+ name = "d3_sankey___d3_sankey_0.12.3.tgz";
+ path = fetchurl {
+ name = "d3_sankey___d3_sankey_0.12.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz";
+ sha1 = "b3c268627bd72e5d80336e8de6acbfec9d15d01d";
+ };
+ }
+ {
+ name = "d3_scale_chromatic___d3_scale_chromatic_1.3.3.tgz";
+ path = fetchurl {
+ name = "d3_scale_chromatic___d3_scale_chromatic_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz";
+ sha1 = "dad4366f0edcb288f490128979c3c793583ed3c0";
+ };
+ }
+ {
+ name = "d3_scale___d3_scale_2.2.2.tgz";
+ path = fetchurl {
+ name = "d3_scale___d3_scale_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz";
+ sha1 = "4e880e0b2745acaaddd3ede26a9e908a9e17b81f";
+ };
+ }
+ {
+ name = "d3_selection___d3_selection_1.3.0.tgz";
+ path = fetchurl {
+ name = "d3_selection___d3_selection_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.3.0.tgz";
+ sha1 = "d53772382d3dc4f7507bfb28bcd2d6aed2a0ad6d";
+ };
+ }
+ {
+ name = "d3_shape___d3_shape_1.3.7.tgz";
+ path = fetchurl {
+ name = "d3_shape___d3_shape_1.3.7.tgz";
+ url = "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz";
+ sha1 = "df63801be07bc986bc54f63789b4fe502992b5d7";
+ };
+ }
+ {
+ name = "d3_time_format___d3_time_format_2.1.1.tgz";
+ path = fetchurl {
+ name = "d3_time_format___d3_time_format_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.1.tgz";
+ sha1 = "85b7cdfbc9ffca187f14d3c456ffda268081bb31";
+ };
+ }
+ {
+ name = "d3_time___d3_time_1.0.8.tgz";
+ path = fetchurl {
+ name = "d3_time___d3_time_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.8.tgz";
+ sha1 = "dbd2d6007bf416fe67a76d17947b784bffea1e84";
+ };
+ }
+ {
+ name = "d3_timer___d3_timer_1.0.7.tgz";
+ path = fetchurl {
+ name = "d3_timer___d3_timer_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.7.tgz";
+ sha1 = "df9650ca587f6c96607ff4e60cc38229e8dd8531";
+ };
+ }
+ {
+ name = "d3_transition___d3_transition_1.1.1.tgz";
+ path = fetchurl {
+ name = "d3_transition___d3_transition_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.1.1.tgz";
+ sha1 = "d8ef89c3b848735b060e54a39b32aaebaa421039";
+ };
+ }
+ {
+ name = "d3_voronoi___d3_voronoi_1.1.2.tgz";
+ path = fetchurl {
+ name = "d3_voronoi___d3_voronoi_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.2.tgz";
+ sha1 = "1687667e8f13a2d158c80c1480c5a29cb0d8973c";
+ };
+ }
+ {
+ name = "d3_zoom___d3_zoom_1.7.1.tgz";
+ path = fetchurl {
+ name = "d3_zoom___d3_zoom_1.7.1.tgz";
+ url = "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.1.tgz";
+ sha1 = "02f43b3c3e2db54f364582d7e4a236ccc5506b63";
+ };
+ }
+ {
+ name = "d3___d3_5.16.0.tgz";
+ path = fetchurl {
+ name = "d3___d3_5.16.0.tgz";
+ url = "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz";
+ sha1 = "9c5e8d3b56403c79d4ed42fbd62f6113f199c877";
+ };
+ }
+ {
+ name = "dagre_d3___dagre_d3_0.6.4.tgz";
+ path = fetchurl {
+ name = "dagre_d3___dagre_d3_0.6.4.tgz";
+ url = "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz";
+ sha1 = "0728d5ce7f177ca2337df141ceb60fbe6eeb7b29";
+ };
+ }
+ {
+ name = "dagre___dagre_0.8.5.tgz";
+ path = fetchurl {
+ name = "dagre___dagre_0.8.5.tgz";
+ url = "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz";
+ sha1 = "ba30b0055dac12b6c1fcc247817442777d06afee";
+ };
+ }
+ {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ path = fetchurl {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ }
+ {
+ name = "data_urls___data_urls_2.0.0.tgz";
+ path = fetchurl {
+ name = "data_urls___data_urls_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz";
+ sha1 = "156485a72963a970f5d5821aaf642bef2bf2db9b";
+ };
+ }
+ {
+ name = "date_format___date_format_2.1.0.tgz";
+ path = fetchurl {
+ name = "date_format___date_format_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz";
+ sha1 = "31d5b5ea211cf5fd764cd38baf9d033df7e125cf";
+ };
+ }
+ {
+ name = "date_now___date_now_0.1.4.tgz";
+ path = fetchurl {
+ name = "date_now___date_now_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz";
+ sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
+ };
+ }
+ {
+ name = "dateformat___dateformat_3.0.3.tgz";
+ path = fetchurl {
+ name = "dateformat___dateformat_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz";
+ sha1 = "a6e37499a4d9a9cf85ef5872044d62901c9889ae";
+ };
+ }
+ {
+ name = "de_indent___de_indent_1.0.2.tgz";
+ path = fetchurl {
+ name = "de_indent___de_indent_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz";
+ sha1 = "b2038e846dc33baa5796128d0804b455b8c1e21d";
+ };
+ }
+ {
+ 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.1.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+ sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+ };
+ }
+ {
+ 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_keys___decamelize_keys_1.1.0.tgz";
+ path = fetchurl {
+ name = "decamelize_keys___decamelize_keys_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz";
+ sha1 = "d171a87933252807eb3cb61dc1c1445d078df2d9";
+ };
+ }
+ {
+ 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 = "decimal.js___decimal.js_10.2.1.tgz";
+ path = fetchurl {
+ name = "decimal.js___decimal.js_10.2.1.tgz";
+ url = "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz";
+ sha1 = "238ae7b0f0c793d3e3cea410108b35a2c01426a3";
+ };
+ }
+ {
+ name = "deckar01_task_list___deckar01_task_list_2.3.1.tgz";
+ path = fetchurl {
+ name = "deckar01_task_list___deckar01_task_list_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/deckar01-task_list/-/deckar01-task_list-2.3.1.tgz";
+ sha1 = "f3ffd5319d7b9e27c596dc8d823b13f617ed7db7";
+ };
+ }
+ {
+ 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 = "decompress_response___decompress_response_3.3.0.tgz";
+ path = fetchurl {
+ name = "decompress_response___decompress_response_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz";
+ sha1 = "80a4dd323748384bfa248083622aedec982adff3";
+ };
+ }
+ {
+ 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_extend___deep_extend_0.6.0.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+ };
+ }
+ {
+ name = "deep_extend___deep_extend_0.5.1.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz";
+ sha1 = "b894a9dd90d3023fbf1c55a394fb858eb2066f1f";
+ };
+ }
+ {
+ 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 = "deepmerge___deepmerge_4.2.2.tgz";
+ path = fetchurl {
+ name = "deepmerge___deepmerge_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz";
+ sha1 = "44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955";
+ };
+ }
+ {
+ name = "default_gateway___default_gateway_4.2.0.tgz";
+ path = fetchurl {
+ name = "default_gateway___default_gateway_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz";
+ sha1 = "167104c7500c2115f6dd69b0a536bb8ed720552b";
+ };
+ }
+ {
+ name = "default_require_extensions___default_require_extensions_2.0.0.tgz";
+ path = fetchurl {
+ name = "default_require_extensions___default_require_extensions_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz";
+ sha1 = "f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7";
+ };
+ }
+ {
+ name = "defer_to_connect___defer_to_connect_1.1.3.tgz";
+ path = fetchurl {
+ name = "defer_to_connect___defer_to_connect_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz";
+ sha1 = "331ae050c08dcf789f8c83a7b81f0ed94f4ac591";
+ };
+ }
+ {
+ 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_4.1.1.tgz";
+ path = fetchurl {
+ name = "del___del_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz";
+ sha1 = "9e8f117222ea44a31ff3a156c049b99052a9f0b4";
+ };
+ }
+ {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ }
+ {
+ name = "delegate___delegate_3.1.2.tgz";
+ path = fetchurl {
+ name = "delegate___delegate_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/delegate/-/delegate-3.1.2.tgz";
+ sha1 = "1e1bc6f5cadda6cb6cbf7e6d05d0bcdd5712aebe";
+ };
+ }
+ {
+ name = "delegates___delegates_1.0.0.tgz";
+ path = fetchurl {
+ name = "delegates___delegates_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ }
+ {
+ name = "depd___depd_1.1.1.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz";
+ sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359";
+ };
+ }
+ {
+ name = "depd___depd_1.1.2.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ }
+ {
+ name = "des.js___des.js_1.0.0.tgz";
+ path = fetchurl {
+ name = "des.js___des.js_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz";
+ sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc";
+ };
+ }
+ {
+ name = "destroy___destroy_1.0.4.tgz";
+ path = fetchurl {
+ name = "destroy___destroy_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ }
+ {
+ name = "detect_file___detect_file_1.0.0.tgz";
+ path = fetchurl {
+ name = "detect_file___detect_file_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz";
+ sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
+ };
+ }
+ {
+ name = "detect_newline___detect_newline_3.1.0.tgz";
+ path = fetchurl {
+ name = "detect_newline___detect_newline_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz";
+ sha1 = "576f5dfc63ae1a192ff192d8ad3af6308991b651";
+ };
+ }
+ {
+ name = "detect_node___detect_node_2.0.4.tgz";
+ path = fetchurl {
+ name = "detect_node___detect_node_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz";
+ sha1 = "014ee8f8f669c5c58023da64b8179c083a28c46c";
+ };
+ }
+ {
+ name = "di___di_0.0.1.tgz";
+ path = fetchurl {
+ name = "di___di_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz";
+ sha1 = "806649326ceaa7caa3306d75d985ea2748ba913c";
+ };
+ }
+ {
+ name = "diff_sequences___diff_sequences_25.2.6.tgz";
+ path = fetchurl {
+ name = "diff_sequences___diff_sequences_25.2.6.tgz";
+ url = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz";
+ sha1 = "5f467c00edd35352b7bca46d7927d60e687a76dd";
+ };
+ }
+ {
+ name = "diff_sequences___diff_sequences_26.5.0.tgz";
+ path = fetchurl {
+ name = "diff_sequences___diff_sequences_26.5.0.tgz";
+ url = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.5.0.tgz";
+ sha1 = "ef766cf09d43ed40406611f11c6d8d9dd8b2fefd";
+ };
+ }
+ {
+ name = "diff___diff_3.5.0.tgz";
+ path = fetchurl {
+ name = "diff___diff_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz";
+ sha1 = "800c0dd1e0a8bfbc95835c202ad220fe317e5a12";
+ };
+ }
+ {
+ name = "diffie_hellman___diffie_hellman_5.0.2.tgz";
+ path = fetchurl {
+ name = "diffie_hellman___diffie_hellman_5.0.2.tgz";
+ url = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz";
+ sha1 = "b5835739270cfe26acf632099fded2a07f209e5e";
+ };
+ }
+ {
+ name = "dir_glob___dir_glob_2.2.2.tgz";
+ path = fetchurl {
+ name = "dir_glob___dir_glob_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz";
+ sha1 = "fa09f0694153c8918b18ba0deafae94769fc50c4";
+ };
+ }
+ {
+ name = "dns_equal___dns_equal_1.0.0.tgz";
+ path = fetchurl {
+ name = "dns_equal___dns_equal_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz";
+ sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
+ };
+ }
+ {
+ name = "dns_packet___dns_packet_1.2.2.tgz";
+ path = fetchurl {
+ name = "dns_packet___dns_packet_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.2.2.tgz";
+ sha1 = "a8a26bec7646438963fc86e06f8f8b16d6c8bf7a";
+ };
+ }
+ {
+ name = "dns_txt___dns_txt_2.0.2.tgz";
+ path = fetchurl {
+ name = "dns_txt___dns_txt_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz";
+ sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
+ };
+ }
+ {
+ name = "docdash___docdash_1.0.2.tgz";
+ path = fetchurl {
+ name = "docdash___docdash_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/docdash/-/docdash-1.0.2.tgz";
+ sha1 = "0449a8f6bb247f563020b78a5485dea95ae2e094";
+ };
+ }
+ {
+ 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_3.0.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
+ sha1 = "addebead72a6574db783639dc87a121773973961";
+ };
+ }
+ {
+ name = "document_register_element___document_register_element_1.14.3.tgz";
+ path = fetchurl {
+ name = "document_register_element___document_register_element_1.14.3.tgz";
+ url = "https://registry.yarnpkg.com/document-register-element/-/document-register-element-1.14.3.tgz";
+ sha1 = "3335d4578df6a1536a34595b91cca36dd5db61d7";
+ };
+ }
+ {
+ name = "dom_accessibility_api___dom_accessibility_api_0.5.3.tgz";
+ path = fetchurl {
+ name = "dom_accessibility_api___dom_accessibility_api_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.3.tgz";
+ sha1 = "0ea493c924d4070dfbf531c4aaca3d7a2c601aab";
+ };
+ }
+ {
+ name = "dom_event_types___dom_event_types_1.0.0.tgz";
+ path = fetchurl {
+ name = "dom_event_types___dom_event_types_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz";
+ sha1 = "5830a0a29e1bf837fe50a70cd80a597232813cae";
+ };
+ }
+ {
+ name = "dom_serialize___dom_serialize_2.2.1.tgz";
+ path = fetchurl {
+ name = "dom_serialize___dom_serialize_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz";
+ sha1 = "562ae8999f44be5ea3076f5419dcd59eb43ac95b";
+ };
+ }
+ {
+ name = "dom_serializer___dom_serializer_0.2.2.tgz";
+ path = fetchurl {
+ name = "dom_serializer___dom_serializer_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz";
+ sha1 = "1afb81f533717175d478655debc5e332d9f9bb51";
+ };
+ }
+ {
+ name = "dom_walk___dom_walk_0.1.2.tgz";
+ path = fetchurl {
+ name = "dom_walk___dom_walk_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz";
+ sha1 = "0c548bef048f4d1f2a97249002236060daa3fd84";
+ };
+ }
+ {
+ name = "domain_browser___domain_browser_1.1.7.tgz";
+ path = fetchurl {
+ name = "domain_browser___domain_browser_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz";
+ sha1 = "867aa4b093faa05f1de08c06f4d7b21fdf8698bc";
+ };
+ }
+ {
+ name = "domelementtype___domelementtype_1.3.0.tgz";
+ path = fetchurl {
+ name = "domelementtype___domelementtype_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz";
+ sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2";
+ };
+ }
+ {
+ name = "domelementtype___domelementtype_2.0.1.tgz";
+ path = fetchurl {
+ name = "domelementtype___domelementtype_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz";
+ sha1 = "1f8bdfe91f5a78063274e803b4bdcedf6e94f94d";
+ };
+ }
+ {
+ name = "domexception___domexception_2.0.1.tgz";
+ path = fetchurl {
+ name = "domexception___domexception_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz";
+ sha1 = "fb44aefba793e1574b0af6aed2801d057529f304";
+ };
+ }
+ {
+ name = "domhandler___domhandler_2.4.1.tgz";
+ path = fetchurl {
+ name = "domhandler___domhandler_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz";
+ sha1 = "892e47000a99be55bbf3774ffea0561d8879c259";
+ };
+ }
+ {
+ name = "dompurify___dompurify_2.2.2.tgz";
+ path = fetchurl {
+ name = "dompurify___dompurify_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.2.tgz";
+ sha1 = "cb8c2b1a2f3c8a0b565127504ae4eedec176a972";
+ };
+ }
+ {
+ name = "domutils___domutils_1.6.2.tgz";
+ path = fetchurl {
+ name = "domutils___domutils_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz";
+ sha1 = "1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff";
+ };
+ }
+ {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ path = fetchurl {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
+ sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
+ };
+ }
+ {
+ name = "dot_prop___dot_prop_5.2.0.tgz";
+ path = fetchurl {
+ name = "dot_prop___dot_prop_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz";
+ sha1 = "c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb";
+ };
+ }
+ {
+ name = "dropzone___dropzone_4.2.0.tgz";
+ path = fetchurl {
+ name = "dropzone___dropzone_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dropzone/-/dropzone-4.2.0.tgz";
+ sha1 = "fbe7acbb9918e0706489072ef663effeef8a79f3";
+ };
+ }
+ {
+ name = "duplexer3___duplexer3_0.1.4.tgz";
+ path = fetchurl {
+ name = "duplexer3___duplexer3_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz";
+ sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+ };
+ }
+ {
+ name = "duplexer___duplexer_0.1.1.tgz";
+ path = fetchurl {
+ name = "duplexer___duplexer_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz";
+ sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+ };
+ }
+ {
+ name = "duplexify___duplexify_3.7.1.tgz";
+ path = fetchurl {
+ name = "duplexify___duplexify_3.7.1.tgz";
+ url = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz";
+ sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309";
+ };
+ }
+ {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ path = fetchurl {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ }
+ {
+ name = "echarts___echarts_4.6.0.tgz";
+ path = fetchurl {
+ name = "echarts___echarts_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/echarts/-/echarts-4.6.0.tgz";
+ sha1 = "b5a47a1046cec93ceeef954f9ee54751340558ec";
+ };
+ }
+ {
+ name = "editions___editions_1.3.4.tgz";
+ path = fetchurl {
+ name = "editions___editions_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz";
+ sha1 = "3662cb592347c3168eb8e498a0ff73271d67f50b";
+ };
+ }
+ {
+ name = "editorconfig___editorconfig_0.15.3.tgz";
+ path = fetchurl {
+ name = "editorconfig___editorconfig_0.15.3.tgz";
+ url = "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz";
+ sha1 = "bef84c4e75fb8dcb0ce5cee8efd51c15999befc5";
+ };
+ }
+ {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ path = fetchurl {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ }
+ {
+ name = "ejs___ejs_2.6.1.tgz";
+ path = fetchurl {
+ name = "ejs___ejs_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz";
+ sha1 = "498ec0d495655abc6f23cd61868d926464071aa0";
+ };
+ }
+ {
+ name = "electron_to_chromium___electron_to_chromium_1.3.466.tgz";
+ path = fetchurl {
+ name = "electron_to_chromium___electron_to_chromium_1.3.466.tgz";
+ url = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.466.tgz";
+ sha1 = "89f716db3afc4bb482ea2aaaa16c4808f89f762a";
+ };
+ }
+ {
+ name = "elliptic___elliptic_6.4.0.tgz";
+ path = fetchurl {
+ name = "elliptic___elliptic_6.4.0.tgz";
+ url = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz";
+ sha1 = "cac9af8762c85836187003c8dfe193e5e2eae5df";
+ };
+ }
+ {
+ name = "emittery___emittery_0.7.1.tgz";
+ path = fetchurl {
+ name = "emittery___emittery_0.7.1.tgz";
+ url = "https://registry.yarnpkg.com/emittery/-/emittery-0.7.1.tgz";
+ sha1 = "c02375a927a40948c0345cc903072597f5270451";
+ };
+ }
+ {
+ name = "emoji_regex___emoji_regex_7.0.3.tgz";
+ path = fetchurl {
+ name = "emoji_regex___emoji_regex_7.0.3.tgz";
+ url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
+ sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
+ };
+ }
+ {
+ name = "emoji_regex___emoji_regex_8.0.0.tgz";
+ path = fetchurl {
+ name = "emoji_regex___emoji_regex_8.0.0.tgz";
+ url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
+ sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
+ };
+ }
+ {
+ name = "emoji_unicode_version___emoji_unicode_version_0.2.1.tgz";
+ path = fetchurl {
+ name = "emoji_unicode_version___emoji_unicode_version_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/emoji-unicode-version/-/emoji-unicode-version-0.2.1.tgz";
+ sha1 = "0ebf3666b5414097971d34994e299fce75cdbafc";
+ };
+ }
+ {
+ name = "emojis_list___emojis_list_2.1.0.tgz";
+ path = fetchurl {
+ name = "emojis_list___emojis_list_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz";
+ sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
+ };
+ }
+ {
+ name = "emojis_list___emojis_list_3.0.0.tgz";
+ path = fetchurl {
+ name = "emojis_list___emojis_list_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz";
+ sha1 = "5570662046ad29e2e916e71aae260abdff4f6a78";
+ };
+ }
+ {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ path = fetchurl {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ }
+ {
+ 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 = "engine.io_client___engine.io_client_3.2.1.tgz";
+ path = fetchurl {
+ name = "engine.io_client___engine.io_client_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz";
+ sha1 = "6f54c0475de487158a1a7c77d10178708b6add36";
+ };
+ }
+ {
+ name = "engine.io_parser___engine.io_parser_2.1.2.tgz";
+ path = fetchurl {
+ name = "engine.io_parser___engine.io_parser_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz";
+ sha1 = "4c0f4cff79aaeecbbdcfdea66a823c6085409196";
+ };
+ }
+ {
+ name = "engine.io___engine.io_3.2.0.tgz";
+ path = fetchurl {
+ name = "engine.io___engine.io_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz";
+ sha1 = "54332506f42f2edc71690d2f2a42349359f3bf7d";
+ };
+ }
+ {
+ name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
+ path = fetchurl {
+ name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
+ sha1 = "41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f";
+ };
+ }
+ {
+ name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
+ path = fetchurl {
+ name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
+ url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz";
+ sha1 = "4d6e689b3725f86090927ccc86cd9f1635b89e2e";
+ };
+ }
+ {
+ name = "ent___ent_2.2.0.tgz";
+ path = fetchurl {
+ name = "ent___ent_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz";
+ sha1 = "e964219325a21d05f44466a2f686ed6ce5f5dd1d";
+ };
+ }
+ {
+ name = "entities___entities_1.1.1.tgz";
+ path = fetchurl {
+ name = "entities___entities_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz";
+ sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
+ };
+ }
+ {
+ name = "entities___entities_2.0.3.tgz";
+ path = fetchurl {
+ name = "entities___entities_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz";
+ sha1 = "5c487e5742ab93c15abb5da22759b8590ec03b7f";
+ };
+ }
+ {
+ name = "entity_decode___entity_decode_2.0.2.tgz";
+ path = fetchurl {
+ name = "entity_decode___entity_decode_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/entity-decode/-/entity-decode-2.0.2.tgz";
+ sha1 = "e4f807e52c3294246e9347d1f2b02b07fd5f92e7";
+ };
+ }
+ {
+ name = "errno___errno_0.1.7.tgz";
+ path = fetchurl {
+ name = "errno___errno_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
+ sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
+ };
+ }
+ {
+ 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.17.4.tgz";
+ path = fetchurl {
+ name = "es_abstract___es_abstract_1.17.4.tgz";
+ url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz";
+ sha1 = "e3aedf19706b20e7c2594c35fc0d57605a79e184";
+ };
+ }
+ {
+ name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+ path = fetchurl {
+ name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+ sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
+ };
+ }
+ {
+ name = "es6_promise___es6_promise_4.2.8.tgz";
+ path = fetchurl {
+ name = "es6_promise___es6_promise_4.2.8.tgz";
+ url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz";
+ sha1 = "4eb21594c972bc40553d276e510539143db53e0a";
+ };
+ }
+ {
+ name = "es6_promise___es6_promise_3.0.2.tgz";
+ path = fetchurl {
+ name = "es6_promise___es6_promise_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz";
+ sha1 = "010d5858423a5f118979665f46486a95c6ee2bb6";
+ };
+ }
+ {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ path = fetchurl {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz";
+ sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
+ };
+ }
+ {
+ name = "escape_goat___escape_goat_2.1.1.tgz";
+ path = fetchurl {
+ name = "escape_goat___escape_goat_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz";
+ sha1 = "1b2dc77003676c457ec760b2dc68edb648188675";
+ };
+ }
+ {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ path = fetchurl {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ }
+ {
+ 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 = "escape_string_regexp___escape_string_regexp_2.0.0.tgz";
+ path = fetchurl {
+ name = "escape_string_regexp___escape_string_regexp_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
+ sha1 = "a30304e99daa32e23b2fd20f51babd07cffca344";
+ };
+ }
+ {
+ name = "escaper___escaper_2.5.3.tgz";
+ path = fetchurl {
+ name = "escaper___escaper_2.5.3.tgz";
+ url = "https://registry.yarnpkg.com/escaper/-/escaper-2.5.3.tgz";
+ sha1 = "8b8fe90ba364054151ab7eff18b4ce43b1e13ab5";
+ };
+ }
+ {
+ name = "escodegen___escodegen_1.14.3.tgz";
+ path = fetchurl {
+ name = "escodegen___escodegen_1.14.3.tgz";
+ url = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz";
+ sha1 = "4e7b81fba61581dc97582ed78cab7f0e8d63f503";
+ };
+ }
+ {
+ name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz";
+ sha1 = "8a7bcb9643d13c55df4dd7444f138bf4efa61e17";
+ };
+ }
+ {
+ name = "eslint_config_prettier___eslint_config_prettier_6.10.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_prettier___eslint_config_prettier_6.10.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.0.tgz";
+ sha1 = "7b15e303bf9c956875c948f6b21500e48ded6a7f";
+ };
+ }
+ {
+ name = "eslint_import_resolver_jest___eslint_import_resolver_jest_2.1.2.tgz";
+ path = fetchurl {
+ name = "eslint_import_resolver_jest___eslint_import_resolver_jest_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-import-resolver-jest/-/eslint-import-resolver-jest-2.1.2.tgz";
+ sha1 = "8720fbe8b8498e95cb2bc6ef52b46b713aedaa59";
+ };
+ }
+ {
+ 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_import_resolver_webpack___eslint_import_resolver_webpack_0.12.1.tgz";
+ path = fetchurl {
+ name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.12.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.12.1.tgz";
+ sha1 = "771ae561e887ca4e53ee87605fbb36c5e290b0f5";
+ };
+ }
+ {
+ name = "eslint_module_utils___eslint_module_utils_2.5.2.tgz";
+ path = fetchurl {
+ name = "eslint_module_utils___eslint_module_utils_2.5.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz";
+ sha1 = "7878f7504824e1b857dd2505b59a8e5eda26a708";
+ };
+ }
+ {
+ name = "eslint_plugin_babel___eslint_plugin_babel_5.3.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_babel___eslint_plugin_babel_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.0.tgz";
+ sha1 = "2e7f251ccc249326da760c1a4c948a91c32d0023";
+ };
+ }
+ {
+ name = "eslint_plugin_filenames___eslint_plugin_filenames_1.3.2.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_filenames___eslint_plugin_filenames_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz";
+ sha1 = "7094f00d7aefdd6999e3ac19f72cea058e590cf7";
+ };
+ }
+ {
+ name = "eslint_plugin_import___eslint_plugin_import_2.20.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_import___eslint_plugin_import_2.20.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz";
+ sha1 = "802423196dcb11d9ce8435a5fc02a6d3b46939b3";
+ };
+ }
+ {
+ name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.1.0.tgz";
+ sha1 = "4f6d41b1a8622348c97559cbcd29badffa74dbfa";
+ };
+ }
+ {
+ name = "eslint_plugin_jest___eslint_plugin_jest_23.8.2.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_jest___eslint_plugin_jest_23.8.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz";
+ sha1 = "6f28b41c67ef635f803ebd9e168f6b73858eb8d4";
+ };
+ }
+ {
+ name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.3.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.3.1.tgz";
+ sha1 = "1c364cb863a38cc1570c8020155b6004cca62178";
+ };
+ }
+ {
+ name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz";
+ sha1 = "845fd8b2260ad8f82564c1222fce44ad71d9418a";
+ };
+ }
+ {
+ name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz";
+ sha1 = "27fecd9a3a24789b0f111ecdd540a9e56198e0fe";
+ };
+ }
+ {
+ name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+ path = fetchurl {
+ name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz";
+ sha1 = "79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9";
+ };
+ }
+ {
+ name = "eslint_scope___eslint_scope_4.0.3.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
+ sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
+ };
+ }
+ {
+ name = "eslint_scope___eslint_scope_5.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz";
+ sha1 = "e87c8887c73e8d1ec84f1ca591645c358bfc8fb9";
+ };
+ }
+ {
+ name = "eslint_utils___eslint_utils_1.4.3.tgz";
+ path = fetchurl {
+ name = "eslint_utils___eslint_utils_1.4.3.tgz";
+ url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
+ sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
+ };
+ }
+ {
+ name = "eslint_utils___eslint_utils_2.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_utils___eslint_utils_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz";
+ sha1 = "7be1cc70f27a72a76cd14aa698bcabed6890e1cd";
+ };
+ }
+ {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
+ sha1 = "e2a82cea84ff246ad6fb57f9bde5b46621459ec2";
+ };
+ }
+ {
+ name = "eslint___eslint_6.8.0.tgz";
+ path = fetchurl {
+ name = "eslint___eslint_6.8.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
+ sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
+ };
+ }
+ {
+ name = "espree___espree_6.1.2.tgz";
+ path = fetchurl {
+ name = "espree___espree_6.1.2.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz";
+ sha1 = "6c272650932b4f91c3714e5e7b5f5e2ecf47262d";
+ };
+ }
+ {
+ 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.3.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
+ sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
+ };
+ }
+ {
+ name = "esutils___esutils_2.0.3.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
+ sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
+ };
+ }
+ {
+ name = "etag___etag_1.8.1.tgz";
+ path = fetchurl {
+ name = "etag___etag_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ }
+ {
+ name = "eve_raphael___eve_raphael_0.5.0.tgz";
+ path = fetchurl {
+ name = "eve_raphael___eve_raphael_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz";
+ sha1 = "17c754b792beef3fa6684d79cf5a47c63c4cda30";
+ };
+ }
+ {
+ name = "eventemitter3___eventemitter3_4.0.0.tgz";
+ path = fetchurl {
+ name = "eventemitter3___eventemitter3_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz";
+ sha1 = "d65176163887ee59f386d64c82610b696a4a74eb";
+ };
+ }
+ {
+ name = "events___events_1.1.1.tgz";
+ path = fetchurl {
+ name = "events___events_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz";
+ sha1 = "9ebdb7635ad099c70dcc4c2a1f5004288e8bd924";
+ };
+ }
+ {
+ name = "events___events_3.0.0.tgz";
+ path = fetchurl {
+ name = "events___events_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz";
+ sha1 = "9a0a0dfaf62893d92b875b8f2698ca4114973e88";
+ };
+ }
+ {
+ name = "eventsource___eventsource_1.0.7.tgz";
+ path = fetchurl {
+ name = "eventsource___eventsource_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz";
+ sha1 = "8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0";
+ };
+ }
+ {
+ name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+ path = fetchurl {
+ name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+ sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
+ };
+ }
+ {
+ name = "exec_sh___exec_sh_0.3.4.tgz";
+ path = fetchurl {
+ name = "exec_sh___exec_sh_0.3.4.tgz";
+ url = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz";
+ sha1 = "3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5";
+ };
+ }
+ {
+ 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 = "execa___execa_4.0.3.tgz";
+ path = fetchurl {
+ name = "execa___execa_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz";
+ sha1 = "0a34dabbad6d66100bd6f2c576c8669403f317f2";
+ };
+ }
+ {
+ name = "execall___execall_2.0.0.tgz";
+ path = fetchurl {
+ name = "execall___execall_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz";
+ sha1 = "16a06b5fe5099df7d00be5d9c06eecded1663b45";
+ };
+ }
+ {
+ name = "exit___exit_0.1.2.tgz";
+ path = fetchurl {
+ name = "exit___exit_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz";
+ sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
+ };
+ }
+ {
+ 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 = "expand_tilde___expand_tilde_2.0.2.tgz";
+ path = fetchurl {
+ name = "expand_tilde___expand_tilde_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz";
+ sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
+ };
+ }
+ {
+ name = "expect___expect_26.5.2.tgz";
+ path = fetchurl {
+ name = "expect___expect_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/expect/-/expect-26.5.2.tgz";
+ sha1 = "3e0631c4a657a83dbec769ad246a2998953a55a6";
+ };
+ }
+ {
+ name = "exports_loader___exports_loader_0.7.0.tgz";
+ path = fetchurl {
+ name = "exports_loader___exports_loader_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.7.0.tgz";
+ sha1 = "84881c784dea6036b8e1cd1dac3da9b6409e21a5";
+ };
+ }
+ {
+ name = "express___express_4.17.1.tgz";
+ path = fetchurl {
+ name = "express___express_4.17.1.tgz";
+ url = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz";
+ sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134";
+ };
+ }
+ {
+ 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 = "extend___extend_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend___extend_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+ sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+ };
+ }
+ {
+ name = "external_editor___external_editor_3.1.0.tgz";
+ path = fetchurl {
+ name = "external_editor___external_editor_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
+ sha1 = "cb03f740befae03ea4d283caed2741a83f335495";
+ };
+ }
+ {
+ 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 = "extract_files___extract_files_8.1.0.tgz";
+ path = fetchurl {
+ name = "extract_files___extract_files_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/extract-files/-/extract-files-8.1.0.tgz";
+ sha1 = "46a0690d0fe77411a2e3804852adeaa65cd59288";
+ };
+ }
+ {
+ name = "extract_from_css___extract_from_css_0.4.4.tgz";
+ path = fetchurl {
+ name = "extract_from_css___extract_from_css_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz";
+ sha1 = "1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92";
+ };
+ }
+ {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ }
+ {
+ name = "fake_xml_http_request___fake_xml_http_request_2.1.1.tgz";
+ path = fetchurl {
+ name = "fake_xml_http_request___fake_xml_http_request_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-2.1.1.tgz";
+ sha1 = "279fdac235840d7a4dff77d98ec44bce9fc690a6";
+ };
+ }
+ {
+ name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+ sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
+ };
+ }
+ {
+ name = "fast_glob___fast_glob_2.2.6.tgz";
+ path = fetchurl {
+ name = "fast_glob___fast_glob_2.2.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz";
+ sha1 = "a5d5b697ec8deda468d85a74035290a025a95295";
+ };
+ }
+ {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+ path = fetchurl {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+ sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
+ };
+ }
+ {
+ 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 = "fault___fault_1.0.2.tgz";
+ path = fetchurl {
+ name = "fault___fault_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz";
+ sha1 = "c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa";
+ };
+ }
+ {
+ name = "faye_websocket___faye_websocket_0.10.0.tgz";
+ path = fetchurl {
+ name = "faye_websocket___faye_websocket_0.10.0.tgz";
+ url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz";
+ sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
+ };
+ }
+ {
+ name = "faye_websocket___faye_websocket_0.11.1.tgz";
+ path = fetchurl {
+ name = "faye_websocket___faye_websocket_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz";
+ sha1 = "f0efe18c4f56e4f40afc7e06c719fd5ee6188f38";
+ };
+ }
+ {
+ name = "fb_watchman___fb_watchman_2.0.1.tgz";
+ path = fetchurl {
+ name = "fb_watchman___fb_watchman_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz";
+ sha1 = "fc84fb39d2709cf3ff6d743706157bb5708a8a85";
+ };
+ }
+ {
+ name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ path = fetchurl {
+ name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
+ sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
+ };
+ }
+ {
+ name = "figures___figures_3.2.0.tgz";
+ path = fetchurl {
+ name = "figures___figures_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
+ sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
+ };
+ }
+ {
+ name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+ path = fetchurl {
+ name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
+ sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
+ };
+ }
+ {
+ name = "file_loader___file_loader_5.1.0.tgz";
+ path = fetchurl {
+ name = "file_loader___file_loader_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/file-loader/-/file-loader-5.1.0.tgz";
+ sha1 = "cb56c070efc0e40666424309bd0d9e45ac6f2bb8";
+ };
+ }
+ {
+ name = "fileset___fileset_2.0.3.tgz";
+ path = fetchurl {
+ name = "fileset___fileset_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz";
+ sha1 = "8e7548a96d3cc2327ee5e674168723a333bba2a0";
+ };
+ }
+ {
+ name = "filesize___filesize_3.6.1.tgz";
+ path = fetchurl {
+ name = "filesize___filesize_3.6.1.tgz";
+ url = "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz";
+ sha1 = "090bb3ee01b6f801a8a8be99d31710b3422bb317";
+ };
+ }
+ {
+ 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 = "fill_range___fill_range_7.0.1.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_7.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
+ sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
+ };
+ }
+ {
+ name = "finalhandler___finalhandler_1.1.0.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz";
+ sha1 = "ce0b6855b45853e791b2fcc680046d88253dd7f5";
+ };
+ }
+ {
+ name = "finalhandler___finalhandler_1.1.2.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz";
+ sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d";
+ };
+ }
+ {
+ name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
+ path = fetchurl {
+ name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+ sha1 = "8d0f94cd13fe43c6c7c261a0d86115ca918c05f7";
+ };
+ }
+ {
+ name = "find_cache_dir___find_cache_dir_3.0.0.tgz";
+ path = fetchurl {
+ name = "find_cache_dir___find_cache_dir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz";
+ sha1 = "cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc";
+ };
+ }
+ {
+ name = "find_root___find_root_1.1.0.tgz";
+ path = fetchurl {
+ name = "find_root___find_root_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz";
+ sha1 = "abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4";
+ };
+ }
+ {
+ 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 = "find_up___find_up_4.1.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
+ sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
+ };
+ }
+ {
+ name = "findup_sync___findup_sync_3.0.0.tgz";
+ path = fetchurl {
+ name = "findup_sync___findup_sync_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz";
+ sha1 = "17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1";
+ };
+ }
+ {
+ name = "flat_cache___flat_cache_2.0.1.tgz";
+ path = fetchurl {
+ name = "flat_cache___flat_cache_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
+ sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
+ };
+ }
+ {
+ name = "flatted___flatted_2.0.0.tgz";
+ path = fetchurl {
+ name = "flatted___flatted_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz";
+ sha1 = "55122b6536ea496b4b44893ee2608141d10d9916";
+ };
+ }
+ {
+ name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+ path = fetchurl {
+ name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
+ sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8";
+ };
+ }
+ {
+ name = "follow_redirects___follow_redirects_1.13.0.tgz";
+ path = fetchurl {
+ name = "follow_redirects___follow_redirects_1.13.0.tgz";
+ url = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz";
+ sha1 = "b42e8d93a2a7eea5ed88633676d6597bc8e384db";
+ };
+ }
+ {
+ name = "font_awesome___font_awesome_4.7.0.tgz";
+ path = fetchurl {
+ name = "font_awesome___font_awesome_4.7.0.tgz";
+ url = "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz";
+ sha1 = "8fa8cf0411a1a31afd07b06d2902bb9fc815a133";
+ };
+ }
+ {
+ 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 = "forever_agent___forever_agent_0.6.1.tgz";
+ path = fetchurl {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ }
+ {
+ name = "form_data___form_data_2.3.3.tgz";
+ path = fetchurl {
+ name = "form_data___form_data_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
+ sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+ };
+ }
+ {
+ name = "format___format_0.2.2.tgz";
+ path = fetchurl {
+ name = "format___format_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz";
+ sha1 = "d6170107e9efdc4ed30c9dc39016df942b5cb58b";
+ };
+ }
+ {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ path = fetchurl {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ }
+ {
+ 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 = "fresh___fresh_0.5.2.tgz";
+ path = fetchurl {
+ name = "fresh___fresh_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ }
+ {
+ name = "from2___from2_2.3.0.tgz";
+ path = fetchurl {
+ name = "from2___from2_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
+ sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+ };
+ }
+ {
+ name = "fs_extra___fs_extra_7.0.1.tgz";
+ path = fetchurl {
+ name = "fs_extra___fs_extra_7.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz";
+ sha1 = "4f189c44aa123b895f722804f55ea23eadc348e9";
+ };
+ }
+ {
+ name = "fs_minipass___fs_minipass_2.0.0.tgz";
+ path = fetchurl {
+ name = "fs_minipass___fs_minipass_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz";
+ sha1 = "a6415edab02fae4b9e9230bc87ee2e4472003cd1";
+ };
+ }
+ {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ path = fetchurl {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+ sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+ };
+ }
+ {
+ 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 = "fsevents___fsevents_2.1.3.tgz";
+ path = fetchurl {
+ name = "fsevents___fsevents_2.1.3.tgz";
+ url = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz";
+ sha1 = "fb738703ae8d2f9fe900c33836ddebee8b97f23e";
+ };
+ }
+ {
+ name = "fstream___fstream_1.0.12.tgz";
+ path = fetchurl {
+ name = "fstream___fstream_1.0.12.tgz";
+ url = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz";
+ sha1 = "4e8ba8ee2d48be4f7d0de505455548eae5932045";
+ };
+ }
+ {
+ 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 = "fuzzaldrin_plus___fuzzaldrin_plus_0.6.0.tgz";
+ path = fetchurl {
+ name = "fuzzaldrin_plus___fuzzaldrin_plus_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/fuzzaldrin-plus/-/fuzzaldrin-plus-0.6.0.tgz";
+ sha1 = "832f6489fbe876769459599c914a670ec22947ee";
+ };
+ }
+ {
+ name = "gauge___gauge_2.7.4.tgz";
+ path = fetchurl {
+ name = "gauge___gauge_2.7.4.tgz";
+ url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ }
+ {
+ name = "gaze___gaze_1.1.3.tgz";
+ path = fetchurl {
+ name = "gaze___gaze_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz";
+ sha1 = "c441733e13b927ac8c0ff0b4c3b033f28812924a";
+ };
+ }
+ {
+ name = "gensync___gensync_1.0.0_beta.1.tgz";
+ path = fetchurl {
+ name = "gensync___gensync_1.0.0_beta.1.tgz";
+ url = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz";
+ sha1 = "58f4361ff987e5ff6e1e7a210827aa371eaac269";
+ };
+ }
+ {
+ 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_caller_file___get_caller_file_2.0.5.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
+ sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
+ };
+ }
+ {
+ name = "get_package_type___get_package_type_0.1.0.tgz";
+ path = fetchurl {
+ name = "get_package_type___get_package_type_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz";
+ sha1 = "8de2d803cff44df3bc6c456e6668b36c3926e11a";
+ };
+ }
+ {
+ name = "get_stdin___get_stdin_4.0.1.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz";
+ sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe";
+ };
+ }
+ {
+ 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_stdin___get_stdin_7.0.0.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz";
+ sha1 = "8d5de98f15171a125c5e516643c7a6d0ea8a96f6";
+ };
+ }
+ {
+ 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_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_stream___get_stream_5.2.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz";
+ sha1 = "4966a1795ee5ace65e706c4b7beb71257d6e22d3";
+ };
+ }
+ {
+ 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 = "getpass___getpass_0.1.7.tgz";
+ path = fetchurl {
+ name = "getpass___getpass_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ }
+ {
+ name = "gettext_extractor_vue___gettext_extractor_vue_4.0.2.tgz";
+ path = fetchurl {
+ name = "gettext_extractor_vue___gettext_extractor_vue_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/gettext-extractor-vue/-/gettext-extractor-vue-4.0.2.tgz";
+ sha1 = "16e1cdbdaf37e5bdf3cb0aff63685bdc5e74e906";
+ };
+ }
+ {
+ name = "gettext_extractor___gettext_extractor_3.4.3.tgz";
+ path = fetchurl {
+ name = "gettext_extractor___gettext_extractor_3.4.3.tgz";
+ url = "https://registry.yarnpkg.com/gettext-extractor/-/gettext-extractor-3.4.3.tgz";
+ sha1 = "882679cefc71888eb6e69297e6b2dc14c0384fef";
+ };
+ }
+ {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
+ sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+ };
+ }
+ {
+ name = "glob_parent___glob_parent_5.1.1.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
+ sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
+ };
+ }
+ {
+ name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
+ path = fetchurl {
+ name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz";
+ sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab";
+ };
+ }
+ {
+ name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
+ path = fetchurl {
+ name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
+ sha1 = "c75297087c851b9a578bd217dd59a92f59fe546e";
+ };
+ }
+ {
+ name = "glob___glob_7.1.6.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.6.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
+ sha1 = "141f33b81a7c2492e125594307480c46679278a6";
+ };
+ }
+ {
+ name = "global_dirs___global_dirs_2.0.1.tgz";
+ path = fetchurl {
+ name = "global_dirs___global_dirs_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz";
+ sha1 = "acdf3bb6685bcd55cb35e8a052266569e9469201";
+ };
+ }
+ {
+ name = "global_modules___global_modules_2.0.0.tgz";
+ path = fetchurl {
+ name = "global_modules___global_modules_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
+ sha1 = "997605ad2345f27f51539bea26574421215c7780";
+ };
+ }
+ {
+ name = "global_modules___global_modules_1.0.0.tgz";
+ path = fetchurl {
+ name = "global_modules___global_modules_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz";
+ sha1 = "6d770f0eb523ac78164d72b5e71a8877265cc3ea";
+ };
+ }
+ {
+ name = "global_prefix___global_prefix_1.0.2.tgz";
+ path = fetchurl {
+ name = "global_prefix___global_prefix_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz";
+ sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
+ };
+ }
+ {
+ name = "global_prefix___global_prefix_3.0.0.tgz";
+ path = fetchurl {
+ name = "global_prefix___global_prefix_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz";
+ sha1 = "fc85f73064df69f50421f47f883fe5b913ba9b97";
+ };
+ }
+ {
+ name = "global___global_4.4.0.tgz";
+ path = fetchurl {
+ name = "global___global_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz";
+ sha1 = "3e7b105179006a323ed71aafca3e9c57a5cc6406";
+ };
+ }
+ {
+ name = "globals___globals_11.12.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_11.12.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
+ sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
+ };
+ }
+ {
+ name = "globals___globals_12.3.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_12.3.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz";
+ sha1 = "1e564ee5c4dded2ab098b0f88f24702a3c56be13";
+ };
+ }
+ {
+ 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 = "globby___globby_7.1.1.tgz";
+ path = fetchurl {
+ name = "globby___globby_7.1.1.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz";
+ sha1 = "fb2ccff9401f8600945dfada97440cca972b8680";
+ };
+ }
+ {
+ name = "globby___globby_9.2.0.tgz";
+ path = fetchurl {
+ name = "globby___globby_9.2.0.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz";
+ sha1 = "fd029a706c703d29bdd170f4b6db3a3f7a7cb63d";
+ };
+ }
+ {
+ name = "globjoin___globjoin_0.1.4.tgz";
+ path = fetchurl {
+ name = "globjoin___globjoin_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz";
+ sha1 = "2f4494ac8919e3767c5cbb691e9f463324285d43";
+ };
+ }
+ {
+ name = "globule___globule_1.3.2.tgz";
+ path = fetchurl {
+ name = "globule___globule_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz";
+ sha1 = "d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4";
+ };
+ }
+ {
+ name = "gonzales_pe___gonzales_pe_4.2.3.tgz";
+ path = fetchurl {
+ name = "gonzales_pe___gonzales_pe_4.2.3.tgz";
+ url = "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.3.tgz";
+ sha1 = "41091703625433285e0aee3aa47829fc1fbeb6f2";
+ };
+ }
+ {
+ name = "good_listener___good_listener_1.2.2.tgz";
+ path = fetchurl {
+ name = "good_listener___good_listener_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz";
+ sha1 = "d53b30cdf9313dffb7dc9a0d477096aa6d145c50";
+ };
+ }
+ {
+ name = "got___got_9.6.0.tgz";
+ path = fetchurl {
+ name = "got___got_9.6.0.tgz";
+ url = "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz";
+ sha1 = "edf45e7d67f99545705de1f7bbeeeb121765ed85";
+ };
+ }
+ {
+ name = "graceful_fs___graceful_fs_4.2.4.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.2.4.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
+ sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
+ };
+ }
+ {
+ name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
+ path = fetchurl {
+ name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+ sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+ };
+ }
+ {
+ name = "graphlib___graphlib_2.1.8.tgz";
+ path = fetchurl {
+ name = "graphlib___graphlib_2.1.8.tgz";
+ url = "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz";
+ sha1 = "5761d414737870084c92ec7b5dbcb0592c9d35da";
+ };
+ }
+ {
+ name = "graphql_tag___graphql_tag_2.11.0.tgz";
+ path = fetchurl {
+ name = "graphql_tag___graphql_tag_2.11.0.tgz";
+ url = "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz";
+ sha1 = "1deb53a01c46a7eb401d6cb59dec86fa1cccbffd";
+ };
+ }
+ {
+ name = "graphql___graphql_15.4.0.tgz";
+ path = fetchurl {
+ name = "graphql___graphql_15.4.0.tgz";
+ url = "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz";
+ sha1 = "e459dea1150da5a106486ba7276518b5295a4347";
+ };
+ }
+ {
+ name = "growly___growly_1.3.0.tgz";
+ path = fetchurl {
+ name = "growly___growly_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz";
+ sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
+ };
+ }
+ {
+ name = "gzip_size___gzip_size_5.0.0.tgz";
+ path = fetchurl {
+ name = "gzip_size___gzip_size_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz";
+ sha1 = "a55ecd99222f4c48fd8c01c625ce3b349d0a0e80";
+ };
+ }
+ {
+ name = "handle_thing___handle_thing_2.0.0.tgz";
+ path = fetchurl {
+ name = "handle_thing___handle_thing_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz";
+ sha1 = "0e039695ff50c93fc288557d696f3c1dc6776754";
+ };
+ }
+ {
+ name = "handlebars___handlebars_4.7.2.tgz";
+ path = fetchurl {
+ name = "handlebars___handlebars_4.7.2.tgz";
+ url = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.2.tgz";
+ sha1 = "01127b3840156a0927058779482031afe0e730d7";
+ };
+ }
+ {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ path = fetchurl {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ }
+ {
+ name = "har_validator___har_validator_5.1.5.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_5.1.5.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
+ sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
+ };
+ }
+ {
+ 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_binary2___has_binary2_1.0.2.tgz";
+ path = fetchurl {
+ name = "has_binary2___has_binary2_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz";
+ sha1 = "e83dba49f0b9be4d026d27365350d9f03f54be98";
+ };
+ }
+ {
+ name = "has_cors___has_cors_1.1.0.tgz";
+ path = fetchurl {
+ name = "has_cors___has_cors_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz";
+ sha1 = "5e474793f7ea9843d1bb99c23eef49ff126fff39";
+ };
+ }
+ {
+ 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_flag___has_flag_4.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
+ sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
+ };
+ }
+ {
+ name = "has_symbols___has_symbols_1.0.1.tgz";
+ path = fetchurl {
+ name = "has_symbols___has_symbols_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
+ sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
+ };
+ }
+ {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ path = fetchurl {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ }
+ {
+ 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_yarn___has_yarn_2.1.0.tgz";
+ path = fetchurl {
+ name = "has_yarn___has_yarn_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz";
+ sha1 = "137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77";
+ };
+ }
+ {
+ 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 = "hash_base___hash_base_2.0.2.tgz";
+ path = fetchurl {
+ name = "hash_base___hash_base_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz";
+ sha1 = "66ea1d856db4e8a5470cadf6fce23ae5244ef2e1";
+ };
+ }
+ {
+ name = "hash_base___hash_base_3.0.4.tgz";
+ path = fetchurl {
+ name = "hash_base___hash_base_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz";
+ sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+ };
+ }
+ {
+ name = "hash_sum___hash_sum_1.0.2.tgz";
+ path = fetchurl {
+ name = "hash_sum___hash_sum_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz";
+ sha1 = "33b40777754c6432573c120cc3808bbd10d47f04";
+ };
+ }
+ {
+ name = "hash.js___hash.js_1.1.3.tgz";
+ path = fetchurl {
+ name = "hash.js___hash.js_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz";
+ sha1 = "340dedbe6290187151c1ea1d777a3448935df846";
+ };
+ }
+ {
+ name = "he___he_1.2.0.tgz";
+ path = fetchurl {
+ name = "he___he_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
+ sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
+ };
+ }
+ {
+ name = "highlight.js___highlight.js_9.13.1.tgz";
+ path = fetchurl {
+ name = "highlight.js___highlight.js_9.13.1.tgz";
+ url = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz";
+ sha1 = "054586d53a6863311168488a0f58d6c505ce641e";
+ };
+ }
+ {
+ name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+ path = fetchurl {
+ name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+ sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+ };
+ }
+ {
+ name = "homedir_polyfill___homedir_polyfill_1.0.1.tgz";
+ path = fetchurl {
+ name = "homedir_polyfill___homedir_polyfill_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz";
+ sha1 = "4c2bbc8a758998feebf5ed68580f76d46768b4bc";
+ };
+ }
+ {
+ name = "hoopy___hoopy_0.1.4.tgz";
+ path = fetchurl {
+ name = "hoopy___hoopy_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz";
+ sha1 = "609207d661100033a9a9402ad3dea677381c1b1d";
+ };
+ }
+ {
+ name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+ sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
+ };
+ }
+ {
+ name = "hpack.js___hpack.js_2.1.6.tgz";
+ path = fetchurl {
+ name = "hpack.js___hpack.js_2.1.6.tgz";
+ url = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz";
+ sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2";
+ };
+ }
+ {
+ name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz";
+ path = fetchurl {
+ name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz";
+ sha1 = "42a6dc4fd33f00281176e8b23759ca4e4fa185f3";
+ };
+ }
+ {
+ name = "html_entities___html_entities_1.2.1.tgz";
+ path = fetchurl {
+ name = "html_entities___html_entities_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz";
+ sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
+ };
+ }
+ {
+ name = "html_escaper___html_escaper_2.0.0.tgz";
+ path = fetchurl {
+ name = "html_escaper___html_escaper_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz";
+ sha1 = "71e87f931de3fe09e56661ab9a29aadec707b491";
+ };
+ }
+ {
+ name = "html_minifier___html_minifier_4.0.0.tgz";
+ path = fetchurl {
+ name = "html_minifier___html_minifier_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz";
+ sha1 = "cca9aad8bce1175e02e17a8c33e46d8988889f56";
+ };
+ }
+ {
+ name = "html_tags___html_tags_3.0.0.tgz";
+ path = fetchurl {
+ name = "html_tags___html_tags_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/html-tags/-/html-tags-3.0.0.tgz";
+ sha1 = "41f57708c9e6b7b46a00a22317d614c4a2bab166";
+ };
+ }
+ {
+ name = "htmlparser2___htmlparser2_3.10.0.tgz";
+ path = fetchurl {
+ name = "htmlparser2___htmlparser2_3.10.0.tgz";
+ url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz";
+ sha1 = "5f5e422dcf6119c0d983ed36260ce9ded0bee464";
+ };
+ }
+ {
+ name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
+ path = fetchurl {
+ name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
+ sha1 = "49e91c5cbf36c9b94bcfcd71c23d5249ec74e390";
+ };
+ }
+ {
+ name = "http_deceiver___http_deceiver_1.2.7.tgz";
+ path = fetchurl {
+ name = "http_deceiver___http_deceiver_1.2.7.tgz";
+ url = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz";
+ sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
+ };
+ }
+ {
+ name = "http_errors___http_errors_1.7.2.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.7.2.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz";
+ sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f";
+ };
+ }
+ {
+ name = "http_errors___http_errors_1.6.2.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz";
+ sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736";
+ };
+ }
+ {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ path = fetchurl {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz";
+ sha1 = "e4821beef5b2142a2026bd73926fe537631c5405";
+ };
+ }
+ {
+ name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
+ path = fetchurl {
+ name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz";
+ sha1 = "183c7dc4aa1479150306498c210cdaf96080a43a";
+ };
+ }
+ {
+ name = "http_proxy___http_proxy_1.18.0.tgz";
+ path = fetchurl {
+ name = "http_proxy___http_proxy_1.18.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz";
+ sha1 = "dbe55f63e75a347db7f3d99974f2692a314a6a3a";
+ };
+ }
+ {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ path = fetchurl {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ }
+ {
+ name = "https_browserify___https_browserify_1.0.0.tgz";
+ path = fetchurl {
+ name = "https_browserify___https_browserify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
+ sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+ };
+ }
+ {
+ name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+ path = fetchurl {
+ name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz";
+ sha1 = "4ee7a737abd92678a293d9b34a1af4d0d08c787b";
+ };
+ }
+ {
+ name = "human_signals___human_signals_1.1.1.tgz";
+ path = fetchurl {
+ name = "human_signals___human_signals_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz";
+ sha1 = "c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3";
+ };
+ }
+ {
+ 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 = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
+ path = fetchurl {
+ name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz";
+ sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded";
+ };
+ }
+ {
+ name = "icss_utils___icss_utils_4.1.1.tgz";
+ path = fetchurl {
+ name = "icss_utils___icss_utils_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz";
+ sha1 = "21170b53789ee27447c2f47dd683081403f9a467";
+ };
+ }
+ {
+ name = "ieee754___ieee754_1.1.13.tgz";
+ path = fetchurl {
+ name = "ieee754___ieee754_1.1.13.tgz";
+ url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
+ sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
+ };
+ }
+ {
+ name = "iferr___iferr_0.1.5.tgz";
+ path = fetchurl {
+ name = "iferr___iferr_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
+ sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+ };
+ }
+ {
+ name = "ignore_by_default___ignore_by_default_1.0.1.tgz";
+ path = fetchurl {
+ name = "ignore_by_default___ignore_by_default_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz";
+ sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
+ };
+ }
+ {
+ 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.1.8.tgz";
+ path = fetchurl {
+ name = "ignore___ignore_5.1.8.tgz";
+ url = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz";
+ sha1 = "f150a8b50a34289b33e22f5889abd4d8016f0e57";
+ };
+ }
+ {
+ name = "immediate___immediate_3.0.6.tgz";
+ path = fetchurl {
+ name = "immediate___immediate_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz";
+ sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
+ };
+ }
+ {
+ name = "immer___immer_7.0.7.tgz";
+ path = fetchurl {
+ name = "immer___immer_7.0.7.tgz";
+ url = "https://registry.yarnpkg.com/immer/-/immer-7.0.7.tgz";
+ sha1 = "9dfe713d49bf871cc59aedfce59b1992fa37a977";
+ };
+ }
+ {
+ 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.2.1.tgz";
+ path = fetchurl {
+ name = "import_fresh___import_fresh_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
+ sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
+ };
+ }
+ {
+ name = "import_lazy___import_lazy_2.1.0.tgz";
+ path = fetchurl {
+ name = "import_lazy___import_lazy_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz";
+ sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+ };
+ }
+ {
+ name = "import_lazy___import_lazy_4.0.0.tgz";
+ path = fetchurl {
+ name = "import_lazy___import_lazy_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz";
+ sha1 = "e8eb627483a0a43da3c03f3e35548be5cb0cc153";
+ };
+ }
+ {
+ name = "import_local___import_local_2.0.0.tgz";
+ path = fetchurl {
+ name = "import_local___import_local_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz";
+ sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d";
+ };
+ }
+ {
+ name = "import_local___import_local_3.0.2.tgz";
+ path = fetchurl {
+ name = "import_local___import_local_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz";
+ sha1 = "a8cfd0431d1de4a2199703d003e3e62364fa6db6";
+ };
+ }
+ {
+ name = "imports_loader___imports_loader_0.8.0.tgz";
+ path = fetchurl {
+ name = "imports_loader___imports_loader_0.8.0.tgz";
+ url = "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz";
+ sha1 = "030ea51b8ca05977c40a3abfd9b4088fe0be9a69";
+ };
+ }
+ {
+ 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 = "in_publish___in_publish_2.0.1.tgz";
+ path = fetchurl {
+ name = "in_publish___in_publish_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz";
+ sha1 = "948b1a535c8030561cea522f73f78f4be357e00c";
+ };
+ }
+ {
+ name = "indent_string___indent_string_2.1.0.tgz";
+ path = fetchurl {
+ name = "indent_string___indent_string_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz";
+ sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
+ };
+ }
+ {
+ 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 = "indent_string___indent_string_4.0.0.tgz";
+ path = fetchurl {
+ name = "indent_string___indent_string_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz";
+ sha1 = "624f8f4497d619b2d9768531d58f4122854d7251";
+ };
+ }
+ {
+ name = "indexes_of___indexes_of_1.0.1.tgz";
+ path = fetchurl {
+ name = "indexes_of___indexes_of_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz";
+ sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
+ };
+ }
+ {
+ name = "indexof___indexof_0.0.1.tgz";
+ path = fetchurl {
+ name = "indexof___indexof_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
+ sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+ };
+ }
+ {
+ name = "infer_owner___infer_owner_1.0.4.tgz";
+ path = fetchurl {
+ name = "infer_owner___infer_owner_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz";
+ sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467";
+ };
+ }
+ {
+ name = "inflected___inflected_2.0.4.tgz";
+ path = fetchurl {
+ name = "inflected___inflected_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/inflected/-/inflected-2.0.4.tgz";
+ sha1 = "323770961ccbe992a98ea930512e9a82d3d3ef77";
+ };
+ }
+ {
+ 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 = "inherits___inherits_2.0.1.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
+ sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+ };
+ }
+ {
+ name = "ini___ini_1.3.5.tgz";
+ path = fetchurl {
+ name = "ini___ini_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+ sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+ };
+ }
+ {
+ name = "inquirer___inquirer_7.0.4.tgz";
+ path = fetchurl {
+ name = "inquirer___inquirer_7.0.4.tgz";
+ url = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz";
+ sha1 = "99af5bde47153abca23f5c7fc30db247f39da703";
+ };
+ }
+ {
+ name = "internal_ip___internal_ip_4.3.0.tgz";
+ path = fetchurl {
+ name = "internal_ip___internal_ip_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz";
+ sha1 = "845452baad9d2ca3b69c635a137acb9a0dad0907";
+ };
+ }
+ {
+ name = "interpret___interpret_1.2.0.tgz";
+ path = fetchurl {
+ name = "interpret___interpret_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz";
+ sha1 = "d5061a6224be58e8083985f5014d844359576296";
+ };
+ }
+ {
+ name = "invariant___invariant_2.2.4.tgz";
+ path = fetchurl {
+ name = "invariant___invariant_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz";
+ sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6";
+ };
+ }
+ {
+ name = "invert_kv___invert_kv_2.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
+ sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
+ };
+ }
+ {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ path = fetchurl {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
+ sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+ };
+ }
+ {
+ name = "ip___ip_1.1.5.tgz";
+ path = fetchurl {
+ name = "ip___ip_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+ sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+ };
+ }
+ {
+ name = "ipaddr.js___ipaddr.js_1.9.0.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.9.0.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz";
+ sha1 = "37df74e430a0e47550fe54a2defe30d8acd95f65";
+ };
+ }
+ {
+ name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+ sha1 = "bff38543eeb8984825079ff3a2a8e6cbd46781b3";
+ };
+ }
+ {
+ name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
+ path = fetchurl {
+ name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
+ sha1 = "96c6a22b6a23929b11ea0afb1836c36ad4a5d698";
+ };
+ }
+ {
+ 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_alphabetical___is_alphabetical_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.2.tgz";
+ sha1 = "1fa6e49213cb7885b75d15862fb3f3d96c884f41";
+ };
+ }
+ {
+ name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz";
+ sha1 = "4a9cef71daf4c001c1d81d63d140cf53fd6889f4";
+ };
+ }
+ {
+ name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz";
+ sha1 = "1138e9ae5040158dc6ff76b820acd6b7a181fd40";
+ };
+ }
+ {
+ 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_binary_path___is_binary_path_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_binary_path___is_binary_path_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
+ sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
+ };
+ }
+ {
+ 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_buffer___is_buffer_2.0.3.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz";
+ sha1 = "4ecf3fcf749cbd1e472689e109ac66261a25e725";
+ };
+ }
+ {
+ name = "is_callable___is_callable_1.1.5.tgz";
+ path = fetchurl {
+ name = "is_callable___is_callable_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz";
+ sha1 = "f7e46b596890456db74e7f6e976cb3273d06faab";
+ };
+ }
+ {
+ 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_decimal___is_decimal_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_decimal___is_decimal_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.2.tgz";
+ sha1 = "894662d6a8709d307f3a276ca4339c8fa5dff0ff";
+ };
+ }
+ {
+ 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_docker___is_docker_2.1.1.tgz";
+ path = fetchurl {
+ name = "is_docker___is_docker_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz";
+ sha1 = "4125a88e44e450d384e09047ede71adc2d144156";
+ };
+ }
+ {
+ 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_finite___is_finite_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_finite___is_finite_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz";
+ sha1 = "904135c77fb42c0641d6aa1bcdbc4daa8da082f3";
+ };
+ }
+ {
+ 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_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+ sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
+ };
+ }
+ {
+ name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz";
+ sha1 = "7d140adc389aaf3011a8f2a2a4cfa6faadffb118";
+ };
+ }
+ {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
+ sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+ };
+ }
+ {
+ name = "is_glob___is_glob_4.0.1.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
+ sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+ };
+ }
+ {
+ name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz";
+ sha1 = "b6e710d7d07bb66b98cb8cece5c9b4921deeb835";
+ };
+ }
+ {
+ name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
+ path = fetchurl {
+ name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz";
+ sha1 = "fd3efa79ee670d1187233182d5b0a1dd00313141";
+ };
+ }
+ {
+ name = "is_npm___is_npm_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_npm___is_npm_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz";
+ sha1 = "c90dd8380696df87a7a6d823c20d0b12bbe3c84d";
+ };
+ }
+ {
+ 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_number___is_number_7.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
+ sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
+ };
+ }
+ {
+ 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_obj___is_obj_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_obj___is_obj_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz";
+ sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982";
+ };
+ }
+ {
+ name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
+ path = fetchurl {
+ name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
+ sha1 = "67d43b82664a7b5191fd9119127eb300048a9fdb";
+ };
+ }
+ {
+ name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz";
+ sha1 = "bfe2dca26c69f397265a4009963602935a053acb";
+ };
+ }
+ {
+ name = "is_path_inside___is_path_inside_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_path_inside___is_path_inside_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz";
+ sha1 = "7c9810587d659a40d27bcdb4d5616eab059494b2";
+ };
+ }
+ {
+ name = "is_path_inside___is_path_inside_3.0.2.tgz";
+ path = fetchurl {
+ name = "is_path_inside___is_path_inside_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz";
+ sha1 = "f5220fc82a3e233757291dddc9c5877f2a1f3017";
+ };
+ }
+ {
+ name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+ sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+ };
+ }
+ {
+ 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_potential_custom_element_name___is_potential_custom_element_name_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz";
+ sha1 = "0c52e54bcca391bb2c494b21e8626d7336c6e397";
+ };
+ }
+ {
+ 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.5.tgz";
+ path = fetchurl {
+ name = "is_regex___is_regex_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz";
+ sha1 = "39d589a358bf18967f726967120b8fc1aed74eae";
+ };
+ }
+ {
+ 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_regexp___is_regexp_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_regexp___is_regexp_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz";
+ sha1 = "cd734a56864e23b956bf4e7c66c396a4c0b22c2d";
+ };
+ }
+ {
+ 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_stream___is_stream_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_stream___is_stream_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz";
+ sha1 = "bde9c32680d6fae04129d6ac9d921ce7815f78e3";
+ };
+ }
+ {
+ 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_typedarray___is_typedarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ }
+ {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz";
+ sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+ };
+ }
+ {
+ name = "is_whitespace_character___is_whitespace_character_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_whitespace_character___is_whitespace_character_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz";
+ sha1 = "ede53b4c6f6fb3874533751ec9280d01928d03ed";
+ };
+ }
+ {
+ name = "is_whitespace___is_whitespace_0.3.0.tgz";
+ path = fetchurl {
+ name = "is_whitespace___is_whitespace_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz";
+ sha1 = "1639ecb1be036aec69a54cbb401cfbed7114ab7f";
+ };
+ }
+ {
+ 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 = "is_word_character___is_word_character_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_word_character___is_word_character_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.2.tgz";
+ sha1 = "46a5dac3f2a1840898b91e576cd40d493f3ae553";
+ };
+ }
+ {
+ name = "is_wsl___is_wsl_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_wsl___is_wsl_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz";
+ sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
+ };
+ }
+ {
+ name = "is_wsl___is_wsl_2.2.0.tgz";
+ path = fetchurl {
+ name = "is_wsl___is_wsl_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz";
+ sha1 = "74a4c76e77ca9fd3f932f290c17ea326cd157271";
+ };
+ }
+ {
+ name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
+ path = fetchurl {
+ name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz";
+ sha1 = "d502d3382590ea3004893746754c89139973e232";
+ };
+ }
+ {
+ 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 = "isarray___isarray_2.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz";
+ sha1 = "a37d94ed9cda2d59865c9f76fe596ee1f338741e";
+ };
+ }
+ {
+ name = "isbinaryfile___isbinaryfile_3.0.2.tgz";
+ path = fetchurl {
+ name = "isbinaryfile___isbinaryfile_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz";
+ sha1 = "4a3e974ec0cba9004d3fc6cde7209ea69368a621";
+ };
+ }
+ {
+ 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 = "isstream___isstream_0.1.2.tgz";
+ path = fetchurl {
+ name = "isstream___isstream_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ }
+ {
+ name = "istanbul_api___istanbul_api_2.1.6.tgz";
+ path = fetchurl {
+ name = "istanbul_api___istanbul_api_2.1.6.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.6.tgz";
+ sha1 = "d61702a9d1c66ad89d92e66d401e16b0bda4a35f";
+ };
+ }
+ {
+ name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
+ sha1 = "675f0ab69503fad4b1d849f736baaca803344f49";
+ };
+ }
+ {
+ name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
+ sha1 = "f5944a37c70b550b02a78a5c3b2055b280cec8ec";
+ };
+ }
+ {
+ name = "istanbul_lib_hook___istanbul_lib_hook_2.0.7.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_hook___istanbul_lib_hook_2.0.7.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz";
+ sha1 = "c95695f383d4f8f60df1f04252a9550e15b5b133";
+ };
+ }
+ {
+ name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
+ sha1 = "a5f63d91f0bbc0c3e479ef4c5de027335ec6d630";
+ };
+ }
+ {
+ name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
+ sha1 = "873c6fff897450118222774696a3f28902d77c1d";
+ };
+ }
+ {
+ name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
+ sha1 = "5a8113cd746d43c4889eba36ab10e7d50c9b4f33";
+ };
+ }
+ {
+ name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+ sha1 = "7518fe52ea44de372f460a76b5ecda9ffb73d8a6";
+ };
+ }
+ {
+ name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
+ sha1 = "284997c48211752ec486253da97e3879defba8c8";
+ };
+ }
+ {
+ name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
+ sha1 = "75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9";
+ };
+ }
+ {
+ name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
+ path = fetchurl {
+ name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz";
+ sha1 = "7b4f2660d82b29303a8fe6091f8ca4bf058da1af";
+ };
+ }
+ {
+ name = "istanbul_reports___istanbul_reports_3.0.2.tgz";
+ path = fetchurl {
+ name = "istanbul_reports___istanbul_reports_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
+ sha1 = "d593210e5000683750cb09fc0644e4b6e27fd53b";
+ };
+ }
+ {
+ name = "istextorbinary___istextorbinary_2.2.1.tgz";
+ path = fetchurl {
+ name = "istextorbinary___istextorbinary_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz";
+ sha1 = "a5231a08ef6dd22b268d0895084cf8d58b5bec53";
+ };
+ }
+ {
+ name = "jasmine_core___jasmine_core_2.9.0.tgz";
+ path = fetchurl {
+ name = "jasmine_core___jasmine_core_2.9.0.tgz";
+ url = "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.9.0.tgz";
+ sha1 = "bfbb56defcd30789adec5a3fbba8504233289c72";
+ };
+ }
+ {
+ name = "jasmine_diff___jasmine_diff_0.1.3.tgz";
+ path = fetchurl {
+ name = "jasmine_diff___jasmine_diff_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/jasmine-diff/-/jasmine-diff-0.1.3.tgz";
+ sha1 = "93ccc2dcc41028c5ddd4606558074839f2deeaa8";
+ };
+ }
+ {
+ name = "jasmine_jquery___jasmine_jquery_2.1.1.tgz";
+ path = fetchurl {
+ name = "jasmine_jquery___jasmine_jquery_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jasmine-jquery/-/jasmine-jquery-2.1.1.tgz";
+ sha1 = "d4095e646944a26763235769ab018d9f30f0d47b";
+ };
+ }
+ {
+ name = "jed___jed_1.1.1.tgz";
+ path = fetchurl {
+ name = "jed___jed_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz";
+ sha1 = "7a549bbd9ffe1585b0cd0a191e203055bee574b4";
+ };
+ }
+ {
+ name = "jest_canvas_mock___jest_canvas_mock_2.1.2.tgz";
+ path = fetchurl {
+ name = "jest_canvas_mock___jest_canvas_mock_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.1.2.tgz";
+ sha1 = "0d16c9f91534f773fd132fc289f2e6b6db8faa28";
+ };
+ }
+ {
+ name = "jest_changed_files___jest_changed_files_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_changed_files___jest_changed_files_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.5.2.tgz";
+ sha1 = "330232c6a5c09a7f040a5870e8f0a9c6abcdbed5";
+ };
+ }
+ {
+ name = "jest_cli___jest_cli_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_cli___jest_cli_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.5.2.tgz";
+ sha1 = "0df114399b4036a3f046f0a9f25c50372c76b3a2";
+ };
+ }
+ {
+ name = "jest_config___jest_config_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_config___jest_config_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-config/-/jest-config-26.5.2.tgz";
+ sha1 = "6e828e25f10124433dd008fbd83348636de0972a";
+ };
+ }
+ {
+ name = "jest_diff___jest_diff_25.5.0.tgz";
+ path = fetchurl {
+ name = "jest_diff___jest_diff_25.5.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz";
+ sha1 = "1dd26ed64f96667c068cef026b677dfa01afcfa9";
+ };
+ }
+ {
+ name = "jest_diff___jest_diff_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_diff___jest_diff_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.5.2.tgz";
+ sha1 = "8e26cb32dc598e8b8a1b9deff55316f8313c8053";
+ };
+ }
+ {
+ name = "jest_docblock___jest_docblock_26.0.0.tgz";
+ path = fetchurl {
+ name = "jest_docblock___jest_docblock_26.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz";
+ sha1 = "3e2fa20899fc928cb13bd0ff68bd3711a36889b5";
+ };
+ }
+ {
+ name = "jest_each___jest_each_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_each___jest_each_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-each/-/jest-each-26.5.2.tgz";
+ sha1 = "35e68d6906a7f826d3ca5803cfe91d17a5a34c31";
+ };
+ }
+ {
+ name = "jest_environment_jsdom___jest_environment_jsdom_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_environment_jsdom___jest_environment_jsdom_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.5.2.tgz";
+ sha1 = "5feab05b828fd3e4b96bee5e0493464ddd2bb4bc";
+ };
+ }
+ {
+ name = "jest_environment_node___jest_environment_node_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_environment_node___jest_environment_node_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.5.2.tgz";
+ sha1 = "275a0f01b5e47447056f1541a15ed4da14acca03";
+ };
+ }
+ {
+ name = "jest_get_type___jest_get_type_25.2.6.tgz";
+ path = fetchurl {
+ name = "jest_get_type___jest_get_type_25.2.6.tgz";
+ url = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz";
+ sha1 = "0b0a32fab8908b44d508be81681487dbabb8d877";
+ };
+ }
+ {
+ name = "jest_get_type___jest_get_type_26.3.0.tgz";
+ path = fetchurl {
+ name = "jest_get_type___jest_get_type_26.3.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz";
+ sha1 = "e97dc3c3f53c2b406ca7afaed4493b1d099199e0";
+ };
+ }
+ {
+ name = "jest_haste_map___jest_haste_map_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_haste_map___jest_haste_map_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.5.2.tgz";
+ sha1 = "a15008abfc502c18aa56e4919ed8c96304ceb23d";
+ };
+ }
+ {
+ name = "jest_jasmine2___jest_jasmine2_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_jasmine2___jest_jasmine2_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.5.2.tgz";
+ sha1 = "0e33819d31b1f2aab5efd1e02ce502209c0e64a2";
+ };
+ }
+ {
+ name = "jest_junit___jest_junit_12.0.0.tgz";
+ path = fetchurl {
+ name = "jest_junit___jest_junit_12.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-junit/-/jest-junit-12.0.0.tgz";
+ sha1 = "3ebd4a6a84b50c4ab18323a8f7d9cceb9d845df6";
+ };
+ }
+ {
+ name = "jest_leak_detector___jest_leak_detector_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_leak_detector___jest_leak_detector_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.5.2.tgz";
+ sha1 = "83fcf9a4a6ef157549552cb4f32ca1d6221eea69";
+ };
+ }
+ {
+ name = "jest_matcher_utils___jest_matcher_utils_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_matcher_utils___jest_matcher_utils_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.5.2.tgz";
+ sha1 = "6aa2c76ce8b9c33e66f8856ff3a52bab59e6c85a";
+ };
+ }
+ {
+ name = "jest_message_util___jest_message_util_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_message_util___jest_message_util_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.5.2.tgz";
+ sha1 = "6c4c4c46dcfbabb47cd1ba2f6351559729bc11bb";
+ };
+ }
+ {
+ name = "jest_mock___jest_mock_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_mock___jest_mock_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.5.2.tgz";
+ sha1 = "c9302e8ef807f2bfc749ee52e65ad11166a1b6a1";
+ };
+ }
+ {
+ name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz";
+ path = fetchurl {
+ name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz";
+ sha1 = "b704ac0ae028a89108a4d040b3f919dfddc8e33c";
+ };
+ }
+ {
+ name = "jest_regex_util___jest_regex_util_26.0.0.tgz";
+ path = fetchurl {
+ name = "jest_regex_util___jest_regex_util_26.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz";
+ sha1 = "d25e7184b36e39fd466c3bc41be0971e821fee28";
+ };
+ }
+ {
+ name = "jest_resolve_dependencies___jest_resolve_dependencies_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_resolve_dependencies___jest_resolve_dependencies_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.5.2.tgz";
+ sha1 = "ee30b7cfea81c81bf5e195a9287d7ec07f893170";
+ };
+ }
+ {
+ name = "jest_resolve___jest_resolve_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_resolve___jest_resolve_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.5.2.tgz";
+ sha1 = "0d719144f61944a428657b755a0e5c6af4fc8602";
+ };
+ }
+ {
+ name = "jest_runner___jest_runner_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_runner___jest_runner_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.5.2.tgz";
+ sha1 = "4f9e6b0bb7eb4710c209a9e145b8a10894f4c19f";
+ };
+ }
+ {
+ name = "jest_runtime___jest_runtime_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_runtime___jest_runtime_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.5.2.tgz";
+ sha1 = "b72f5f79eb2fe0c46bfef4cdb9c1e01d1c69ba41";
+ };
+ }
+ {
+ name = "jest_serializer___jest_serializer_26.5.0.tgz";
+ path = fetchurl {
+ name = "jest_serializer___jest_serializer_26.5.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.5.0.tgz";
+ sha1 = "f5425cc4c5f6b4b355f854b5f0f23ec6b962bc13";
+ };
+ }
+ {
+ name = "jest_snapshot___jest_snapshot_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_snapshot___jest_snapshot_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.5.2.tgz";
+ sha1 = "0cf7642eaf8e8d2736bd443f619959bf237f9ccf";
+ };
+ }
+ {
+ name = "jest_transform_graphql___jest_transform_graphql_2.1.0.tgz";
+ path = fetchurl {
+ name = "jest_transform_graphql___jest_transform_graphql_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-transform-graphql/-/jest-transform-graphql-2.1.0.tgz";
+ sha1 = "903cb66bb27bc2772fd3e5dd4f7e9b57230f5829";
+ };
+ }
+ {
+ name = "jest_util___jest_util_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_util___jest_util_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-util/-/jest-util-26.5.2.tgz";
+ sha1 = "8403f75677902cc52a1b2140f568e91f8ed4f4d7";
+ };
+ }
+ {
+ name = "jest_validate___jest_validate_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_validate___jest_validate_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.5.2.tgz";
+ sha1 = "7ea266700b64234cd1c0cee982490c5a80e9b0f0";
+ };
+ }
+ {
+ name = "jest_watcher___jest_watcher_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest_watcher___jest_watcher_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.5.2.tgz";
+ sha1 = "2957f4461007e0769d74b537379ecf6b7c696916";
+ };
+ }
+ {
+ name = "jest_worker___jest_worker_26.5.0.tgz";
+ path = fetchurl {
+ name = "jest_worker___jest_worker_26.5.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz";
+ sha1 = "87deee86dbbc5f98d9919e0dadf2c40e3152fa30";
+ };
+ }
+ {
+ name = "jest___jest_26.5.2.tgz";
+ path = fetchurl {
+ name = "jest___jest_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jest/-/jest-26.5.2.tgz";
+ sha1 = "c6791642b331fe7abd2f993b0a74aa546f7be0fb";
+ };
+ }
+ {
+ name = "jmespath___jmespath_0.15.0.tgz";
+ path = fetchurl {
+ name = "jmespath___jmespath_0.15.0.tgz";
+ url = "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz";
+ sha1 = "a3f222a9aae9f966f5d27c796510e28091764217";
+ };
+ }
+ {
+ name = "jquery.caret___jquery.caret_0.3.1.tgz";
+ path = fetchurl {
+ name = "jquery.caret___jquery.caret_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/jquery.caret/-/jquery.caret-0.3.1.tgz";
+ sha1 = "9c093318faf327eff322e826ca9f3241368bc7b8";
+ };
+ }
+ {
+ name = "jquery.waitforimages___jquery.waitforimages_2.2.0.tgz";
+ path = fetchurl {
+ name = "jquery.waitforimages___jquery.waitforimages_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/jquery.waitforimages/-/jquery.waitforimages-2.2.0.tgz";
+ sha1 = "63f23131055a1b060dc913e6d874bcc9b9e6b16b";
+ };
+ }
+ {
+ name = "jquery___jquery_3.5.1.tgz";
+ path = fetchurl {
+ name = "jquery___jquery_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz";
+ sha1 = "d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5";
+ };
+ }
+ {
+ name = "js_base64___js_base64_2.6.4.tgz";
+ path = fetchurl {
+ name = "js_base64___js_base64_2.6.4.tgz";
+ url = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz";
+ sha1 = "f4e686c5de1ea1f867dbcad3d46d969428df98c4";
+ };
+ }
+ {
+ name = "js_beautify___js_beautify_1.11.0.tgz";
+ path = fetchurl {
+ name = "js_beautify___js_beautify_1.11.0.tgz";
+ url = "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.11.0.tgz";
+ sha1 = "afb873dc47d58986360093dcb69951e8bcd5ded2";
+ };
+ }
+ {
+ name = "js_cookie___js_cookie_2.2.1.tgz";
+ path = fetchurl {
+ name = "js_cookie___js_cookie_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz";
+ sha1 = "69e106dc5d5806894562902aa5baec3744e9b2b8";
+ };
+ }
+ {
+ 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_yaml___js_yaml_3.13.1.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.13.1.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
+ sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+ };
+ }
+ {
+ name = "js2xmlparser___js2xmlparser_3.0.0.tgz";
+ path = fetchurl {
+ name = "js2xmlparser___js2xmlparser_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz";
+ sha1 = "3fb60eaa089c5440f9319f51760ccd07e2499733";
+ };
+ }
+ {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ path = fetchurl {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ }
+ {
+ name = "jsdoc_vue___jsdoc_vue_1.0.0.tgz";
+ path = fetchurl {
+ name = "jsdoc_vue___jsdoc_vue_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsdoc-vue/-/jsdoc-vue-1.0.0.tgz";
+ sha1 = "ff3ac1ba6bc4a74079bb79058a7bf0066e346235";
+ };
+ }
+ {
+ name = "jsdoc___jsdoc_3.5.5.tgz";
+ path = fetchurl {
+ name = "jsdoc___jsdoc_3.5.5.tgz";
+ url = "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz";
+ sha1 = "484521b126e81904d632ff83ec9aaa096708fa4d";
+ };
+ }
+ {
+ name = "jsdom___jsdom_16.4.0.tgz";
+ path = fetchurl {
+ name = "jsdom___jsdom_16.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz";
+ sha1 = "36005bde2d136f73eee1a830c6d45e55408edddb";
+ };
+ }
+ {
+ 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 = "jsesc___jsesc_0.5.0.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
+ sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+ };
+ }
+ {
+ name = "json_buffer___json_buffer_3.0.0.tgz";
+ path = fetchurl {
+ name = "json_buffer___json_buffer_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz";
+ sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898";
+ };
+ }
+ {
+ 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_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
+ path = fetchurl {
+ name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
+ sha1 = "7c47805a94319928e05777405dc12e1f7a4ee02d";
+ };
+ }
+ {
+ 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_schema___json_schema_0.2.3.tgz";
+ path = fetchurl {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ }
+ {
+ 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 = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ path = fetchurl {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ }
+ {
+ name = "json3___json3_3.3.2.tgz";
+ path = fetchurl {
+ name = "json3___json3_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz";
+ sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+ };
+ }
+ {
+ name = "json5___json5_2.1.3.tgz";
+ path = fetchurl {
+ name = "json5___json5_2.1.3.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
+ sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
+ };
+ }
+ {
+ name = "json5___json5_1.0.1.tgz";
+ path = fetchurl {
+ name = "json5___json5_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+ sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+ };
+ }
+ {
+ name = "jsonc_parser___jsonc_parser_2.3.1.tgz";
+ path = fetchurl {
+ name = "jsonc_parser___jsonc_parser_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz";
+ sha1 = "59549150b133f2efacca48fe9ce1ec0659af2342";
+ };
+ }
+ {
+ name = "jsonc_parser___jsonc_parser_2.2.1.tgz";
+ path = fetchurl {
+ name = "jsonc_parser___jsonc_parser_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz";
+ sha1 = "db73cd59d78cce28723199466b2a03d1be1df2bc";
+ };
+ }
+ {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
+ sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+ };
+ }
+ {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ path = fetchurl {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ }
+ {
+ name = "jszip_utils___jszip_utils_0.0.2.tgz";
+ path = fetchurl {
+ name = "jszip_utils___jszip_utils_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/jszip-utils/-/jszip-utils-0.0.2.tgz";
+ sha1 = "457d5cbca60a1c2e0706e9da2b544e8e7bc50bf8";
+ };
+ }
+ {
+ name = "jszip___jszip_3.1.3.tgz";
+ path = fetchurl {
+ name = "jszip___jszip_3.1.3.tgz";
+ url = "https://registry.yarnpkg.com/jszip/-/jszip-3.1.3.tgz";
+ sha1 = "8a920403b2b1651c0fc126be90192d9080957c37";
+ };
+ }
+ {
+ name = "karma_chrome_launcher___karma_chrome_launcher_3.0.0.tgz";
+ path = fetchurl {
+ name = "karma_chrome_launcher___karma_chrome_launcher_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.0.0.tgz";
+ sha1 = "5c3a7f877a304e90781c28fcd9a49e334a890f42";
+ };
+ }
+ {
+ name = "karma_coverage_istanbul_reporter___karma_coverage_istanbul_reporter_2.1.0.tgz";
+ path = fetchurl {
+ name = "karma_coverage_istanbul_reporter___karma_coverage_istanbul_reporter_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.0.tgz";
+ sha1 = "5f1bcc13c5e14ee1d91821ee8946861674f54c75";
+ };
+ }
+ {
+ name = "karma_jasmine___karma_jasmine_1.1.2.tgz";
+ path = fetchurl {
+ name = "karma_jasmine___karma_jasmine_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.2.tgz";
+ sha1 = "394f2b25ffb4a644b9ada6f22d443e2fd08886c3";
+ };
+ }
+ {
+ name = "karma_junit_reporter___karma_junit_reporter_1.2.0.tgz";
+ path = fetchurl {
+ name = "karma_junit_reporter___karma_junit_reporter_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/karma-junit-reporter/-/karma-junit-reporter-1.2.0.tgz";
+ sha1 = "4f9c40cedfb1a395f8aef876abf96189917c6396";
+ };
+ }
+ {
+ name = "karma_mocha_reporter___karma_mocha_reporter_2.2.5.tgz";
+ path = fetchurl {
+ name = "karma_mocha_reporter___karma_mocha_reporter_2.2.5.tgz";
+ url = "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz";
+ sha1 = "15120095e8ed819186e47a0b012f3cd741895560";
+ };
+ }
+ {
+ name = "karma_sourcemap_loader___karma_sourcemap_loader_0.3.7.tgz";
+ path = fetchurl {
+ name = "karma_sourcemap_loader___karma_sourcemap_loader_0.3.7.tgz";
+ url = "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz";
+ sha1 = "91322c77f8f13d46fed062b042e1009d4c4505d8";
+ };
+ }
+ {
+ name = "karma_webpack___karma_webpack_4.0.2.tgz";
+ path = fetchurl {
+ name = "karma_webpack___karma_webpack_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.2.tgz";
+ sha1 = "23219bd95bdda853e3073d3874d34447c77bced0";
+ };
+ }
+ {
+ name = "karma___karma_4.2.0.tgz";
+ path = fetchurl {
+ name = "karma___karma_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/karma/-/karma-4.2.0.tgz";
+ sha1 = "27e88b310cde090d016980ff5444e3a239196fca";
+ };
+ }
+ {
+ name = "katex___katex_0.10.0.tgz";
+ path = fetchurl {
+ name = "katex___katex_0.10.0.tgz";
+ url = "https://registry.yarnpkg.com/katex/-/katex-0.10.0.tgz";
+ sha1 = "da562e5d0d5cc3aa602e27af8a9b8710bfbce765";
+ };
+ }
+ {
+ name = "keyv___keyv_3.1.0.tgz";
+ path = fetchurl {
+ name = "keyv___keyv_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz";
+ sha1 = "ecc228486f69991e49e9476485a5be1e8fc5c4d9";
+ };
+ }
+ {
+ name = "killable___killable_1.0.1.tgz";
+ path = fetchurl {
+ name = "killable___killable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz";
+ sha1 = "4c8ce441187a061c7474fb87ca08e2a638194892";
+ };
+ }
+ {
+ 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 = "klaw___klaw_2.0.0.tgz";
+ path = fetchurl {
+ name = "klaw___klaw_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz";
+ sha1 = "59c128e0dc5ce410201151194eeb9cbf858650f6";
+ };
+ }
+ {
+ name = "kleur___kleur_3.0.3.tgz";
+ path = fetchurl {
+ name = "kleur___kleur_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz";
+ sha1 = "a79c9ecc86ee1ce3fa6206d1216c501f147fc07e";
+ };
+ }
+ {
+ name = "known_css_properties___known_css_properties_0.14.0.tgz";
+ path = fetchurl {
+ name = "known_css_properties___known_css_properties_0.14.0.tgz";
+ url = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.14.0.tgz";
+ sha1 = "d7032b4334a32dc22e6e46b081ec789daf18756c";
+ };
+ }
+ {
+ name = "latest_version___latest_version_5.1.0.tgz";
+ path = fetchurl {
+ name = "latest_version___latest_version_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz";
+ sha1 = "119dfe908fe38d15dfa43ecd13fa12ec8832face";
+ };
+ }
+ {
+ name = "lcid___lcid_2.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
+ sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
+ };
+ }
+ {
+ name = "leven___leven_3.1.0.tgz";
+ path = fetchurl {
+ name = "leven___leven_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz";
+ sha1 = "77891de834064cccba82ae7842bb6b14a13ed7f2";
+ };
+ }
+ {
+ name = "levenary___levenary_1.1.1.tgz";
+ path = fetchurl {
+ name = "levenary___levenary_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz";
+ sha1 = "842a9ee98d2075aa7faeedbe32679e9205f46f77";
+ };
+ }
+ {
+ 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 = "lie___lie_3.1.1.tgz";
+ path = fetchurl {
+ name = "lie___lie_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz";
+ sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
+ };
+ }
+ {
+ name = "lightercollective___lightercollective_0.3.0.tgz";
+ path = fetchurl {
+ name = "lightercollective___lightercollective_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.3.0.tgz";
+ sha1 = "1f07638642ec645d70bdb69ab2777676f35a28f0";
+ };
+ }
+ {
+ name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
+ path = fetchurl {
+ name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
+ sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+ };
+ }
+ {
+ name = "linkify_it___linkify_it_2.1.0.tgz";
+ path = fetchurl {
+ name = "linkify_it___linkify_it_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.1.0.tgz";
+ sha1 = "c4caf38a6cd7ac2212ef3c7d2bde30a91561f9db";
+ };
+ }
+ {
+ name = "linkify_it___linkify_it_3.0.2.tgz";
+ path = fetchurl {
+ name = "linkify_it___linkify_it_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz";
+ sha1 = "f55eeb8bc1d3ae754049e124ab3bb56d97797fb8";
+ };
+ }
+ {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz";
+ sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
+ };
+ }
+ {
+ 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 = "load_json_file___load_json_file_4.0.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz";
+ sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
+ };
+ }
+ {
+ name = "loader_runner___loader_runner_2.4.0.tgz";
+ path = fetchurl {
+ name = "loader_runner___loader_runner_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz";
+ sha1 = "ed47066bfe534d7e84c4c7b9998c2a75607d9357";
+ };
+ }
+ {
+ name = "loader_utils___loader_utils_1.2.3.tgz";
+ path = fetchurl {
+ name = "loader_utils___loader_utils_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz";
+ sha1 = "1ff5dc6911c9f0a062531a4c04b609406108c2c7";
+ };
+ }
+ {
+ name = "loader_utils___loader_utils_1.4.0.tgz";
+ path = fetchurl {
+ name = "loader_utils___loader_utils_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz";
+ sha1 = "c579b5e34cb34b1a74edc6c1fb36bfa371d5a613";
+ };
+ }
+ {
+ 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 = "locate_path___locate_path_5.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
+ sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
+ };
+ }
+ {
+ name = "lodash.assign___lodash.assign_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.assign___lodash.assign_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz";
+ sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7";
+ };
+ }
+ {
+ name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
+ path = fetchurl {
+ name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+ sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+ };
+ }
+ {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+ sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+ };
+ }
+ {
+ name = "lodash.compact___lodash.compact_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash.compact___lodash.compact_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.compact/-/lodash.compact-3.0.1.tgz";
+ sha1 = "540ce3837745975807471e16b4a2ba21e7256ca5";
+ };
+ }
+ {
+ name = "lodash.differencewith___lodash.differencewith_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.differencewith___lodash.differencewith_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz";
+ sha1 = "bafafbc918b55154e179176a00bb0aefaac854b7";
+ };
+ }
+ {
+ name = "lodash.find___lodash.find_4.6.0.tgz";
+ path = fetchurl {
+ name = "lodash.find___lodash.find_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz";
+ sha1 = "cb0704d47ab71789ffa0de8b97dd926fb88b13b1";
+ };
+ }
+ {
+ name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
+ sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+ };
+ }
+ {
+ name = "lodash.forin___lodash.forin_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.forin___lodash.forin_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.forin/-/lodash.forin-4.4.0.tgz";
+ sha1 = "5d3f20ae564011fbe88381f7d98949c9c9519731";
+ };
+ }
+ {
+ name = "lodash.get___lodash.get_4.4.2.tgz";
+ path = fetchurl {
+ name = "lodash.get___lodash.get_4.4.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz";
+ sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+ };
+ }
+ {
+ name = "lodash.has___lodash.has_4.5.2.tgz";
+ path = fetchurl {
+ name = "lodash.has___lodash.has_4.5.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz";
+ sha1 = "d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862";
+ };
+ }
+ {
+ name = "lodash.invokemap___lodash.invokemap_4.6.0.tgz";
+ path = fetchurl {
+ name = "lodash.invokemap___lodash.invokemap_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz";
+ sha1 = "1748cda5d8b0ef8369c4eb3ec54c21feba1f2d62";
+ };
+ }
+ {
+ name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz";
+ sha1 = "6f86cbedd8be4ec987be9aaf33c9684db1b31e7e";
+ };
+ }
+ {
+ name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz";
+ sha1 = "415c4478f2bcc30120c22ce10ed3226f7d3e18e0";
+ };
+ }
+ {
+ name = "lodash.isfunction___lodash.isfunction_3.0.9.tgz";
+ path = fetchurl {
+ name = "lodash.isfunction___lodash.isfunction_3.0.9.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz";
+ sha1 = "06de25df4db327ac931981d1bdb067e5af68d051";
+ };
+ }
+ {
+ name = "lodash.isinteger___lodash.isinteger_4.0.4.tgz";
+ path = fetchurl {
+ name = "lodash.isinteger___lodash.isinteger_4.0.4.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz";
+ sha1 = "619c0af3d03f8b04c31f5882840b77b11cd68343";
+ };
+ }
+ {
+ name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
+ path = fetchurl {
+ name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
+ sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+ };
+ }
+ {
+ name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz";
+ sha1 = "8489b1cb0d29ff88195cceca448ff6d6cc295c36";
+ };
+ }
+ {
+ name = "lodash.lowerfirst___lodash.lowerfirst_4.3.1.tgz";
+ path = fetchurl {
+ name = "lodash.lowerfirst___lodash.lowerfirst_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz";
+ sha1 = "de3c7b12e02c6524a0059c2f6cb7c5c52655a13d";
+ };
+ }
+ {
+ name = "lodash.map___lodash.map_4.6.0.tgz";
+ path = fetchurl {
+ name = "lodash.map___lodash.map_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz";
+ sha1 = "771ec7839e3473d9c4cde28b19394c3562f4f6d3";
+ };
+ }
+ {
+ name = "lodash.mapvalues___lodash.mapvalues_4.6.0.tgz";
+ path = fetchurl {
+ name = "lodash.mapvalues___lodash.mapvalues_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz";
+ sha1 = "1bafa5005de9dd6f4f26668c30ca37230cc9689c";
+ };
+ }
+ {
+ 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.pick___lodash.pick_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.pick___lodash.pick_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz";
+ sha1 = "52f05610fff9ded422611441ed1fc123a03001b3";
+ };
+ }
+ {
+ name = "lodash.snakecase___lodash.snakecase_4.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.snakecase___lodash.snakecase_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz";
+ sha1 = "39d714a35357147837aefd64b5dcbb16becd8f8d";
+ };
+ }
+ {
+ name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
+ path = fetchurl {
+ name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
+ sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+ };
+ }
+ {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+ sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+ };
+ }
+ {
+ name = "lodash.uniqby___lodash.uniqby_4.7.0.tgz";
+ path = fetchurl {
+ name = "lodash.uniqby___lodash.uniqby_4.7.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz";
+ sha1 = "d99c07a669e9e6d24e1362dfe266c67616af1302";
+ };
+ }
+ {
+ name = "lodash.upperfirst___lodash.upperfirst_4.3.1.tgz";
+ path = fetchurl {
+ name = "lodash.upperfirst___lodash.upperfirst_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz";
+ sha1 = "1365edf431480481ef0d1c68957a5ed99d49f7ce";
+ };
+ }
+ {
+ name = "lodash.values___lodash.values_4.3.0.tgz";
+ path = fetchurl {
+ name = "lodash.values___lodash.values_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz";
+ sha1 = "a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347";
+ };
+ }
+ {
+ name = "lodash___lodash_4.17.20.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.20.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
+ sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
+ };
+ }
+ {
+ 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_symbols___log_symbols_3.0.0.tgz";
+ path = fetchurl {
+ name = "log_symbols___log_symbols_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz";
+ sha1 = "f3a08516a5dea893336a7dee14d18a1cfdab77c4";
+ };
+ }
+ {
+ name = "log4js___log4js_4.5.1.tgz";
+ path = fetchurl {
+ name = "log4js___log4js_4.5.1.tgz";
+ url = "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz";
+ sha1 = "e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5";
+ };
+ }
+ {
+ name = "loglevel___loglevel_1.6.7.tgz";
+ path = fetchurl {
+ name = "loglevel___loglevel_1.6.7.tgz";
+ url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz";
+ sha1 = "b3e034233188c68b889f5b862415306f565e2c56";
+ };
+ }
+ {
+ name = "longest_streak___longest_streak_2.0.2.tgz";
+ path = fetchurl {
+ name = "longest_streak___longest_streak_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz";
+ sha1 = "2421b6ba939a443bb9ffebf596585a50b4c38e2e";
+ };
+ }
+ {
+ 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 = "loud_rejection___loud_rejection_1.6.0.tgz";
+ path = fetchurl {
+ name = "loud_rejection___loud_rejection_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz";
+ sha1 = "5b46f80147edee578870f086d04821cf998e551f";
+ };
+ }
+ {
+ name = "lower_case___lower_case_1.1.4.tgz";
+ path = fetchurl {
+ name = "lower_case___lower_case_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz";
+ sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac";
+ };
+ }
+ {
+ name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+ path = fetchurl {
+ name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+ sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f";
+ };
+ }
+ {
+ name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
+ path = fetchurl {
+ name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
+ sha1 = "2603e78b7b4b0006cbca2fbcc8a3202558ac9479";
+ };
+ }
+ {
+ name = "lowlight___lowlight_1.11.0.tgz";
+ path = fetchurl {
+ name = "lowlight___lowlight_1.11.0.tgz";
+ url = "https://registry.yarnpkg.com/lowlight/-/lowlight-1.11.0.tgz";
+ sha1 = "1304d83005126d4e8b1dc0f07981e9b689ec2efc";
+ };
+ }
+ {
+ 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 = "lru_cache___lru_cache_5.1.1.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz";
+ sha1 = "1da27e6710271947695daf6848e847f01d84b920";
+ };
+ }
+ {
+ name = "lz_string___lz_string_1.4.4.tgz";
+ path = fetchurl {
+ name = "lz_string___lz_string_1.4.4.tgz";
+ url = "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz";
+ sha1 = "c0d8eaf36059f705796e1e344811cf4c498d3a26";
+ };
+ }
+ {
+ name = "make_dir___make_dir_2.1.0.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz";
+ sha1 = "5f0310e18b8be898cc07009295a30ae41e91e6f5";
+ };
+ }
+ {
+ name = "make_dir___make_dir_3.0.0.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz";
+ sha1 = "1b5f39f6b9270ed33f9f054c5c0f84304989f801";
+ };
+ }
+ {
+ name = "make_error___make_error_1.3.6.tgz";
+ path = fetchurl {
+ name = "make_error___make_error_1.3.6.tgz";
+ url = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz";
+ sha1 = "2eb2e37ea9b67c4891f684a1394799af484cf7a2";
+ };
+ }
+ {
+ name = "makeerror___makeerror_1.0.11.tgz";
+ path = fetchurl {
+ name = "makeerror___makeerror_1.0.11.tgz";
+ url = "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz";
+ sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
+ };
+ }
+ {
+ name = "mamacro___mamacro_0.0.3.tgz";
+ path = fetchurl {
+ name = "mamacro___mamacro_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz";
+ sha1 = "ad2c9576197c9f1abf308d0787865bd975a3f3e4";
+ };
+ }
+ {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ path = fetchurl {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+ sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
+ };
+ }
+ {
+ 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_1.0.1.tgz";
+ path = fetchurl {
+ name = "map_obj___map_obj_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz";
+ sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+ };
+ }
+ {
+ 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 = "markdown_escapes___markdown_escapes_1.0.2.tgz";
+ path = fetchurl {
+ name = "markdown_escapes___markdown_escapes_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz";
+ sha1 = "e639cbde7b99c841c0bacc8a07982873b46d2122";
+ };
+ }
+ {
+ name = "markdown_it___markdown_it_11.0.0.tgz";
+ path = fetchurl {
+ name = "markdown_it___markdown_it_11.0.0.tgz";
+ url = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-11.0.0.tgz";
+ sha1 = "dbfc30363e43d756ebc52c38586b91b90046b876";
+ };
+ }
+ {
+ name = "markdown_it___markdown_it_8.4.2.tgz";
+ path = fetchurl {
+ name = "markdown_it___markdown_it_8.4.2.tgz";
+ url = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz";
+ sha1 = "386f98998dc15a37722aa7722084f4020bdd9b54";
+ };
+ }
+ {
+ name = "markdown_table___markdown_table_1.1.2.tgz";
+ path = fetchurl {
+ name = "markdown_table___markdown_table_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz";
+ sha1 = "c78db948fa879903a41bce522e3b96f801c63786";
+ };
+ }
+ {
+ name = "markdownlint_cli___markdownlint_cli_0.24.0.tgz";
+ path = fetchurl {
+ name = "markdownlint_cli___markdownlint_cli_0.24.0.tgz";
+ url = "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.24.0.tgz";
+ sha1 = "d1c1d43cd53b87aaec93035b3234eef7097139a8";
+ };
+ }
+ {
+ name = "markdownlint_rule_helpers___markdownlint_rule_helpers_0.12.0.tgz";
+ path = fetchurl {
+ name = "markdownlint_rule_helpers___markdownlint_rule_helpers_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.12.0.tgz";
+ sha1 = "c41d9b990c50911572e8eb2fba3e6975a5514b7e";
+ };
+ }
+ {
+ name = "markdownlint___markdownlint_0.21.1.tgz";
+ path = fetchurl {
+ name = "markdownlint___markdownlint_0.21.1.tgz";
+ url = "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.21.1.tgz";
+ sha1 = "9442afcf12bf65ce9d613212028cf85741677421";
+ };
+ }
+ {
+ name = "marked___marked_0.3.19.tgz";
+ path = fetchurl {
+ name = "marked___marked_0.3.19.tgz";
+ url = "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz";
+ sha1 = "5d47f709c4c9fc3c216b6d46127280f40b39d790";
+ };
+ }
+ {
+ name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
+ path = fetchurl {
+ name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz";
+ sha1 = "6dff66c99d55ecf739ca53c492e626f1d12a33cc";
+ };
+ }
+ {
+ name = "md5.js___md5.js_1.3.4.tgz";
+ path = fetchurl {
+ name = "md5.js___md5.js_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz";
+ sha1 = "e9bdbde94a20a5ac18b04340fc5764d5b09d901d";
+ };
+ }
+ {
+ name = "md5___md5_2.2.1.tgz";
+ path = fetchurl {
+ name = "md5___md5_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz";
+ sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
+ };
+ }
+ {
+ name = "mdast_util_compact___mdast_util_compact_1.0.2.tgz";
+ path = fetchurl {
+ name = "mdast_util_compact___mdast_util_compact_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz";
+ sha1 = "c12ebe16fffc84573d3e19767726de226e95f649";
+ };
+ }
+ {
+ name = "mdurl___mdurl_1.0.1.tgz";
+ path = fetchurl {
+ name = "mdurl___mdurl_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz";
+ sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
+ };
+ }
+ {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ path = fetchurl {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ }
+ {
+ name = "mem___mem_4.3.0.tgz";
+ path = fetchurl {
+ name = "mem___mem_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz";
+ sha1 = "461af497bc4ae09608cdb2e60eefb69bff744178";
+ };
+ }
+ {
+ name = "memory_fs___memory_fs_0.2.0.tgz";
+ path = fetchurl {
+ name = "memory_fs___memory_fs_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz";
+ sha1 = "f2bb25368bc121e391c2520de92969caee0a0290";
+ };
+ }
+ {
+ name = "memory_fs___memory_fs_0.4.1.tgz";
+ path = fetchurl {
+ name = "memory_fs___memory_fs_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz";
+ sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
+ };
+ }
+ {
+ name = "meow___meow_3.7.0.tgz";
+ path = fetchurl {
+ name = "meow___meow_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz";
+ sha1 = "72cb668b425228290abbfa856892587308a801fb";
+ };
+ }
+ {
+ name = "meow___meow_5.0.0.tgz";
+ path = fetchurl {
+ name = "meow___meow_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz";
+ sha1 = "dfc73d63a9afc714a5e371760eb5c88b91078aa4";
+ };
+ }
+ {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ path = fetchurl {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ }
+ {
+ name = "merge_source_map___merge_source_map_1.1.0.tgz";
+ path = fetchurl {
+ name = "merge_source_map___merge_source_map_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz";
+ sha1 = "2fdde7e6020939f70906a68f2d7ae685e4c8c646";
+ };
+ }
+ {
+ name = "merge_stream___merge_stream_2.0.0.tgz";
+ path = fetchurl {
+ name = "merge_stream___merge_stream_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz";
+ sha1 = "52823629a14dd00c9770fb6ad47dc6310f2c1f60";
+ };
+ }
+ {
+ name = "merge2___merge2_1.2.3.tgz";
+ path = fetchurl {
+ name = "merge2___merge2_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz";
+ sha1 = "7ee99dbd69bb6481689253f018488a1b902b0ed5";
+ };
+ }
+ {
+ name = "mermaid___mermaid_8.5.2.tgz";
+ path = fetchurl {
+ name = "mermaid___mermaid_8.5.2.tgz";
+ url = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.5.2.tgz";
+ sha1 = "0f1914cda53d4ea5377380e5ce07a38bef2ea7e8";
+ };
+ }
+ {
+ name = "mersenne_twister___mersenne_twister_1.1.0.tgz";
+ path = fetchurl {
+ name = "mersenne_twister___mersenne_twister_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz";
+ sha1 = "f916618ee43d7179efcf641bec4531eb9670978a";
+ };
+ }
+ {
+ name = "methods___methods_1.1.2.tgz";
+ path = fetchurl {
+ name = "methods___methods_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ }
+ {
+ 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 = "micromatch___micromatch_4.0.2.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz";
+ sha1 = "4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259";
+ };
+ }
+ {
+ name = "miller_rabin___miller_rabin_4.0.1.tgz";
+ path = fetchurl {
+ name = "miller_rabin___miller_rabin_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
+ sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
+ };
+ }
+ {
+ name = "mime_db___mime_db_1.44.0.tgz";
+ path = fetchurl {
+ name = "mime_db___mime_db_1.44.0.tgz";
+ url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz";
+ sha1 = "fa11c5eb0aca1334b4233cb4d52f10c5a6272f92";
+ };
+ }
+ {
+ name = "mime_types___mime_types_2.1.27.tgz";
+ path = fetchurl {
+ name = "mime_types___mime_types_2.1.27.tgz";
+ url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz";
+ sha1 = "47949f98e279ea53119f5722e0f34e529bec009f";
+ };
+ }
+ {
+ name = "mime___mime_1.6.0.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+ sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+ };
+ }
+ {
+ name = "mime___mime_2.4.4.tgz";
+ path = fetchurl {
+ name = "mime___mime_2.4.4.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz";
+ sha1 = "bd7b91135fc6b01cde3e9bae33d659b63d8857e5";
+ };
+ }
+ {
+ name = "mimic_fn___mimic_fn_2.1.0.tgz";
+ path = fetchurl {
+ name = "mimic_fn___mimic_fn_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
+ sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
+ };
+ }
+ {
+ name = "mimic_response___mimic_response_1.0.1.tgz";
+ path = fetchurl {
+ name = "mimic_response___mimic_response_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz";
+ sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b";
+ };
+ }
+ {
+ name = "min_document___min_document_2.19.0.tgz";
+ path = fetchurl {
+ name = "min_document___min_document_2.19.0.tgz";
+ url = "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz";
+ sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685";
+ };
+ }
+ {
+ name = "minify___minify_4.1.2.tgz";
+ path = fetchurl {
+ name = "minify___minify_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/minify/-/minify-4.1.2.tgz";
+ sha1 = "88755f4faa5f7ab6d0c64fdd659aa34ea658f180";
+ };
+ }
+ {
+ name = "minimalistic_assert___minimalistic_assert_1.0.0.tgz";
+ path = fetchurl {
+ name = "minimalistic_assert___minimalistic_assert_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz";
+ sha1 = "702be2dda6b37f4836bcb3f5db56641b64a1d3d3";
+ };
+ }
+ {
+ name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+ path = fetchurl {
+ name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+ sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+ };
+ }
+ {
+ 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_options___minimist_options_3.0.2.tgz";
+ path = fetchurl {
+ name = "minimist_options___minimist_options_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz";
+ sha1 = "fba4c8191339e13ecf4d61beb03f070103f3d954";
+ };
+ }
+ {
+ 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.1.3.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz";
+ sha1 = "3bedfd91a92d39016fcfaa1c681e8faa1a1efda8";
+ };
+ }
+ {
+ name = "minimist___minimist_1.2.5.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+ sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+ };
+ }
+ {
+ name = "minipass_collect___minipass_collect_1.0.2.tgz";
+ path = fetchurl {
+ name = "minipass_collect___minipass_collect_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz";
+ sha1 = "22b813bf745dc6edba2576b940022ad6edc8c617";
+ };
+ }
+ {
+ name = "minipass_flush___minipass_flush_1.0.5.tgz";
+ path = fetchurl {
+ name = "minipass_flush___minipass_flush_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz";
+ sha1 = "82e7135d7e89a50ffe64610a787953c4c4cbb373";
+ };
+ }
+ {
+ name = "minipass_pipeline___minipass_pipeline_1.2.2.tgz";
+ path = fetchurl {
+ name = "minipass_pipeline___minipass_pipeline_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz";
+ sha1 = "3dcb6bb4a546e32969c7ad710f2c79a86abba93a";
+ };
+ }
+ {
+ name = "minipass___minipass_3.1.1.tgz";
+ path = fetchurl {
+ name = "minipass___minipass_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz";
+ sha1 = "7607ce778472a185ad6d89082aa2070f79cedcd5";
+ };
+ }
+ {
+ name = "miragejs___miragejs_0.1.40.tgz";
+ path = fetchurl {
+ name = "miragejs___miragejs_0.1.40.tgz";
+ url = "https://registry.yarnpkg.com/miragejs/-/miragejs-0.1.40.tgz";
+ sha1 = "5bcba7634312c012748ae7f294e1516b74b37182";
+ };
+ }
+ {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ path = fetchurl {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
+ sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
+ };
+ }
+ {
+ name = "mixin_deep___mixin_deep_1.3.2.tgz";
+ path = fetchurl {
+ name = "mixin_deep___mixin_deep_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
+ sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
+ };
+ }
+ {
+ name = "mkdirp___mkdirp_1.0.4.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
+ sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
+ };
+ }
+ {
+ name = "https___registry.npmjs.org_mkdirp___mkdirp_0.5.1.tgz";
+ path = fetchurl {
+ name = "https___registry.npmjs.org_mkdirp___mkdirp_0.5.1.tgz";
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ }
+ {
+ name = "mock_apollo_client___mock_apollo_client_0.4.0.tgz";
+ path = fetchurl {
+ name = "mock_apollo_client___mock_apollo_client_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/mock-apollo-client/-/mock-apollo-client-0.4.0.tgz";
+ sha1 = "556a6090b1816dbf07e51093b652aca84aee979e";
+ };
+ }
+ {
+ name = "moment_mini___moment_mini_2.22.1.tgz";
+ path = fetchurl {
+ name = "moment_mini___moment_mini_2.22.1.tgz";
+ url = "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.22.1.tgz";
+ sha1 = "bc32d73e43a4505070be6b53494b17623183420d";
+ };
+ }
+ {
+ name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.0.tgz";
+ path = fetchurl {
+ name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.0.tgz";
+ url = "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.0.tgz";
+ sha1 = "5b547281b9f404057dc5d8c5722390df9ac90be6";
+ };
+ }
+ {
+ name = "monaco_editor___monaco_editor_0.20.0.tgz";
+ path = fetchurl {
+ name = "monaco_editor___monaco_editor_0.20.0.tgz";
+ url = "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.20.0.tgz";
+ sha1 = "5d5009343a550124426cb4d965a4d27a348b4dea";
+ };
+ }
+ {
+ name = "monaco_yaml___monaco_yaml_2.5.1.tgz";
+ path = fetchurl {
+ name = "monaco_yaml___monaco_yaml_2.5.1.tgz";
+ url = "https://registry.yarnpkg.com/monaco-yaml/-/monaco-yaml-2.5.1.tgz";
+ sha1 = "af9303a4aa6e3b94db62b8a8659362f31944590d";
+ };
+ }
+ {
+ name = "mousetrap___mousetrap_1.6.5.tgz";
+ path = fetchurl {
+ name = "mousetrap___mousetrap_1.6.5.tgz";
+ url = "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz";
+ sha1 = "8a766d8c272b08393d5f56074e0b5ec183485bf9";
+ };
+ }
+ {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ path = fetchurl {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
+ sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+ };
+ }
+ {
+ 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 = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
+ path = fetchurl {
+ name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
+ sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
+ };
+ }
+ {
+ name = "multicast_dns___multicast_dns_6.1.1.tgz";
+ path = fetchurl {
+ name = "multicast_dns___multicast_dns_6.1.1.tgz";
+ url = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz";
+ sha1 = "6e7de86a570872ab17058adea7160bbeca814dde";
+ };
+ }
+ {
+ name = "mute_stream___mute_stream_0.0.8.tgz";
+ path = fetchurl {
+ name = "mute_stream___mute_stream_0.0.8.tgz";
+ url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz";
+ sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d";
+ };
+ }
+ {
+ name = "nan___nan_2.14.1.tgz";
+ path = fetchurl {
+ name = "nan___nan_2.14.1.tgz";
+ url = "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz";
+ sha1 = "d7be34dfa3105b91494c3147089315eff8874b01";
+ };
+ }
+ {
+ 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 = "negotiator___negotiator_0.6.2.tgz";
+ path = fetchurl {
+ name = "negotiator___negotiator_0.6.2.tgz";
+ url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
+ sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
+ };
+ }
+ {
+ name = "neo_async___neo_async_2.6.1.tgz";
+ path = fetchurl {
+ name = "neo_async___neo_async_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz";
+ sha1 = "ac27ada66167fa8849a6addd837f6b189ad2081c";
+ };
+ }
+ {
+ 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 = "no_case___no_case_2.3.2.tgz";
+ path = fetchurl {
+ name = "no_case___no_case_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz";
+ sha1 = "60b813396be39b3f1288a4c1ed5d1e7d28b464ac";
+ };
+ }
+ {
+ name = "node_ensure___node_ensure_0.0.0.tgz";
+ path = fetchurl {
+ name = "node_ensure___node_ensure_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz";
+ sha1 = "ecae764150de99861ec5c810fd5d096b183932a7";
+ };
+ }
+ {
+ name = "node_fetch___node_fetch_2.6.0.tgz";
+ path = fetchurl {
+ name = "node_fetch___node_fetch_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz";
+ sha1 = "e633456386d4aa55863f676a7ab0daa8fdecb0fd";
+ };
+ }
+ {
+ name = "node_forge___node_forge_0.9.0.tgz";
+ path = fetchurl {
+ name = "node_forge___node_forge_0.9.0.tgz";
+ url = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz";
+ sha1 = "d624050edbb44874adca12bb9a52ec63cb782579";
+ };
+ }
+ {
+ name = "node_gyp___node_gyp_3.8.0.tgz";
+ path = fetchurl {
+ name = "node_gyp___node_gyp_3.8.0.tgz";
+ url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz";
+ sha1 = "540304261c330e80d0d5edce253a68cb3964218c";
+ };
+ }
+ {
+ name = "node_int64___node_int64_0.4.0.tgz";
+ path = fetchurl {
+ name = "node_int64___node_int64_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz";
+ sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
+ };
+ }
+ {
+ name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
+ path = fetchurl {
+ name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
+ sha1 = "b64f513d18338625f90346d27b0d235e631f6425";
+ };
+ }
+ {
+ name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
+ path = fetchurl {
+ name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
+ sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
+ };
+ }
+ {
+ name = "node_notifier___node_notifier_8.0.0.tgz";
+ path = fetchurl {
+ name = "node_notifier___node_notifier_8.0.0.tgz";
+ url = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz";
+ sha1 = "a7eee2d51da6d0f7ff5094bc7108c911240c1620";
+ };
+ }
+ {
+ name = "node_releases___node_releases_1.1.58.tgz";
+ path = fetchurl {
+ name = "node_releases___node_releases_1.1.58.tgz";
+ url = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz";
+ sha1 = "8ee20eef30fa60e52755fcc0942def5a734fe935";
+ };
+ }
+ {
+ name = "node_sass___node_sass_4.14.1.tgz";
+ path = fetchurl {
+ name = "node_sass___node_sass_4.14.1.tgz";
+ url = "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz";
+ sha1 = "99c87ec2efb7047ed638fb4c9db7f3a42e2217b5";
+ };
+ }
+ {
+ name = "nodemon___nodemon_2.0.4.tgz";
+ path = fetchurl {
+ name = "nodemon___nodemon_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.4.tgz";
+ sha1 = "55b09319eb488d6394aa9818148c0c2d1c04c416";
+ };
+ }
+ {
+ 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 = "nopt___nopt_4.0.3.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
+ sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
+ };
+ }
+ {
+ name = "nopt___nopt_1.0.10.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz";
+ sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+ };
+ }
+ {
+ name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+ path = fetchurl {
+ name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+ sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
+ };
+ }
+ {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+ sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+ };
+ }
+ {
+ name = "normalize_path___normalize_path_3.0.0.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
+ sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
+ };
+ }
+ {
+ name = "normalize_range___normalize_range_0.1.2.tgz";
+ path = fetchurl {
+ name = "normalize_range___normalize_range_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz";
+ sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
+ };
+ }
+ {
+ name = "normalize_selector___normalize_selector_0.2.0.tgz";
+ path = fetchurl {
+ name = "normalize_selector___normalize_selector_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz";
+ sha1 = "d0b145eb691189c63a78d201dc4fdb1293ef0c03";
+ };
+ }
+ {
+ name = "normalize_url___normalize_url_4.5.0.tgz";
+ path = fetchurl {
+ name = "normalize_url___normalize_url_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz";
+ sha1 = "453354087e6ca96957bd8f5baf753f5982142129";
+ };
+ }
+ {
+ 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_run_path___npm_run_path_4.0.1.tgz";
+ path = fetchurl {
+ name = "npm_run_path___npm_run_path_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz";
+ sha1 = "b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea";
+ };
+ }
+ {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ path = fetchurl {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+ sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
+ };
+ }
+ {
+ name = "num2fraction___num2fraction_1.2.2.tgz";
+ path = fetchurl {
+ name = "num2fraction___num2fraction_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz";
+ sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
+ };
+ }
+ {
+ 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 = "nwsapi___nwsapi_2.2.0.tgz";
+ path = fetchurl {
+ name = "nwsapi___nwsapi_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz";
+ sha1 = "204879a9e3d068ff2a55139c2c772780681a38b7";
+ };
+ }
+ {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ path = fetchurl {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+ };
+ }
+ {
+ 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_component___object_component_0.0.3.tgz";
+ path = fetchurl {
+ name = "object_component___object_component_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz";
+ sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291";
+ };
+ }
+ {
+ 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_inspect___object_inspect_1.7.0.tgz";
+ path = fetchurl {
+ name = "object_inspect___object_inspect_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz";
+ sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67";
+ };
+ }
+ {
+ name = "object_keys___object_keys_1.1.1.tgz";
+ path = fetchurl {
+ name = "object_keys___object_keys_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
+ sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
+ };
+ }
+ {
+ 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.1.tgz";
+ path = fetchurl {
+ name = "object.entries___object.entries_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz";
+ sha1 = "ee1cf04153de02bb093fec33683900f57ce5399b";
+ };
+ }
+ {
+ 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 = "object.values___object.values_1.1.0.tgz";
+ path = fetchurl {
+ name = "object.values___object.values_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz";
+ sha1 = "bf6810ef5da3e5325790eaaa2be213ea84624da9";
+ };
+ }
+ {
+ name = "obuf___obuf_1.1.2.tgz";
+ path = fetchurl {
+ name = "obuf___obuf_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz";
+ sha1 = "09bea3343d41859ebd446292d11c9d4db619084e";
+ };
+ }
+ {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ path = fetchurl {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ }
+ {
+ name = "on_headers___on_headers_1.0.2.tgz";
+ path = fetchurl {
+ name = "on_headers___on_headers_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz";
+ sha1 = "772b0ae6aaa525c399e489adfad90c403eb3c28f";
+ };
+ }
+ {
+ 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_5.1.0.tgz";
+ path = fetchurl {
+ name = "onetime___onetime_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
+ sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
+ };
+ }
+ {
+ name = "opener___opener_1.5.1.tgz";
+ path = fetchurl {
+ name = "opener___opener_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
+ sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
+ };
+ }
+ {
+ name = "opn___opn_5.5.0.tgz";
+ path = fetchurl {
+ name = "opn___opn_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz";
+ sha1 = "fc7164fab56d235904c51c3b27da6758ca3b9bfc";
+ };
+ }
+ {
+ name = "optimism___optimism_0.10.3.tgz";
+ path = fetchurl {
+ name = "optimism___optimism_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/optimism/-/optimism-0.10.3.tgz";
+ sha1 = "163268fdc741dea2fb50f300bedda80356445fd7";
+ };
+ }
+ {
+ name = "optimist___optimist_0.6.1.tgz";
+ path = fetchurl {
+ name = "optimist___optimist_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz";
+ sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
+ };
+ }
+ {
+ name = "optionator___optionator_0.8.3.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.8.3.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
+ sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
+ };
+ }
+ {
+ name = "orderedmap___orderedmap_1.0.0.tgz";
+ path = fetchurl {
+ name = "orderedmap___orderedmap_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.0.0.tgz";
+ sha1 = "d90fc2ba1ed085190907d601dec6e6a53f8d41ba";
+ };
+ }
+ {
+ name = "original___original_1.0.2.tgz";
+ path = fetchurl {
+ name = "original___original_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz";
+ sha1 = "e442a61cffe1c5fd20a65f3261c26663b303f25f";
+ };
+ }
+ {
+ name = "os_browserify___os_browserify_0.3.0.tgz";
+ path = fetchurl {
+ name = "os_browserify___os_browserify_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
+ sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+ };
+ }
+ {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ }
+ {
+ name = "os_locale___os_locale_3.1.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
+ sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
+ };
+ }
+ {
+ 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 = "osenv___osenv_0.1.5.tgz";
+ path = fetchurl {
+ name = "osenv___osenv_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
+ sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
+ };
+ }
+ {
+ name = "p_cancelable___p_cancelable_1.1.0.tgz";
+ path = fetchurl {
+ name = "p_cancelable___p_cancelable_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz";
+ sha1 = "d078d15a3af409220c886f1d9a0ca2e441ab26cc";
+ };
+ }
+ {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
+ sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+ };
+ }
+ {
+ name = "p_each_series___p_each_series_2.1.0.tgz";
+ path = fetchurl {
+ name = "p_each_series___p_each_series_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz";
+ sha1 = "961c8dd3f195ea96c747e636b262b800a6b1af48";
+ };
+ }
+ {
+ 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_is_promise___p_is_promise_2.1.0.tgz";
+ path = fetchurl {
+ name = "p_is_promise___p_is_promise_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz";
+ sha1 = "918cebaea248a62cf7ffab8e3bca8c5f882fc42e";
+ };
+ }
+ {
+ name = "p_limit___p_limit_1.2.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz";
+ sha1 = "0e92b6bedcb59f022c13d0f1949dc82d15909f1c";
+ };
+ }
+ {
+ name = "p_limit___p_limit_2.2.2.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz";
+ sha1 = "61279b67721f5287aa1c13a9a7fbbc48c9291b1e";
+ };
+ }
+ {
+ 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_locate___p_locate_4.1.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
+ sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
+ };
+ }
+ {
+ name = "p_map___p_map_2.1.0.tgz";
+ path = fetchurl {
+ name = "p_map___p_map_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz";
+ sha1 = "310928feef9c9ecc65b68b17693018a665cea175";
+ };
+ }
+ {
+ name = "p_map___p_map_3.0.0.tgz";
+ path = fetchurl {
+ name = "p_map___p_map_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz";
+ sha1 = "d704d9af8a2ba684e2600d9a215983d4141a979d";
+ };
+ }
+ {
+ name = "p_retry___p_retry_3.0.1.tgz";
+ path = fetchurl {
+ name = "p_retry___p_retry_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz";
+ sha1 = "316b4c8893e2c8dc1cfa891f406c4b422bebf328";
+ };
+ }
+ {
+ 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.2.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
+ sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
+ };
+ }
+ {
+ name = "package_json___package_json_6.5.0.tgz";
+ path = fetchurl {
+ name = "package_json___package_json_6.5.0.tgz";
+ url = "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz";
+ sha1 = "6feedaca35e75725876d0b0e64974697fed145b0";
+ };
+ }
+ {
+ name = "pako___pako_1.0.6.tgz";
+ path = fetchurl {
+ name = "pako___pako_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz";
+ sha1 = "0101211baa70c4bca4a0f63f2206e97b7dfaf258";
+ };
+ }
+ {
+ name = "parallel_transform___parallel_transform_1.1.0.tgz";
+ path = fetchurl {
+ name = "parallel_transform___parallel_transform_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz";
+ sha1 = "d410f065b05da23081fcd10f28854c29bda33b06";
+ };
+ }
+ {
+ name = "param_case___param_case_2.1.1.tgz";
+ path = fetchurl {
+ name = "param_case___param_case_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz";
+ sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247";
+ };
+ }
+ {
+ name = "parent_module___parent_module_1.0.1.tgz";
+ path = fetchurl {
+ name = "parent_module___parent_module_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
+ sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
+ };
+ }
+ {
+ name = "parse_asn1___parse_asn1_5.1.0.tgz";
+ path = fetchurl {
+ name = "parse_asn1___parse_asn1_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz";
+ sha1 = "37c4f9b7ed3ab65c74817b5f2480937fbf97c712";
+ };
+ }
+ {
+ name = "parse_color___parse_color_1.0.0.tgz";
+ path = fetchurl {
+ name = "parse_color___parse_color_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz";
+ sha1 = "7b748b95a83f03f16a94f535e52d7f3d94658619";
+ };
+ }
+ {
+ name = "parse_entities___parse_entities_1.2.0.tgz";
+ path = fetchurl {
+ name = "parse_entities___parse_entities_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.0.tgz";
+ sha1 = "9deac087661b2e36814153cb78d7e54a4c5fd6f4";
+ };
+ }
+ {
+ 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 = "parse_json___parse_json_5.1.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz";
+ sha1 = "f96088cdf24a8faa9aea9a009f2d9d942c999646";
+ };
+ }
+ {
+ name = "parse_passwd___parse_passwd_1.0.0.tgz";
+ path = fetchurl {
+ name = "parse_passwd___parse_passwd_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz";
+ sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
+ };
+ }
+ {
+ name = "parse5___parse5_5.1.1.tgz";
+ path = fetchurl {
+ name = "parse5___parse5_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz";
+ sha1 = "f68e4e5ba1852ac2cadc00f4555fff6c2abb6178";
+ };
+ }
+ {
+ name = "parseqs___parseqs_0.0.5.tgz";
+ path = fetchurl {
+ name = "parseqs___parseqs_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz";
+ sha1 = "d5208a3738e46766e291ba2ea173684921a8b89d";
+ };
+ }
+ {
+ name = "parseuri___parseuri_0.0.5.tgz";
+ path = fetchurl {
+ name = "parseuri___parseuri_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz";
+ sha1 = "80204a50d4dbb779bfdc6ebe2778d90e4bce320a";
+ };
+ }
+ {
+ name = "parseurl___parseurl_1.3.3.tgz";
+ path = fetchurl {
+ name = "parseurl___parseurl_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz";
+ sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4";
+ };
+ }
+ {
+ 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_browserify___path_browserify_0.0.1.tgz";
+ path = fetchurl {
+ name = "path_browserify___path_browserify_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz";
+ sha1 = "e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a";
+ };
+ }
+ {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
+ sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+ };
+ }
+ {
+ 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_exists___path_exists_4.0.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
+ sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
+ };
+ }
+ {
+ 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_key___path_key_3.1.1.tgz";
+ path = fetchurl {
+ name = "path_key___path_key_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
+ sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
+ };
+ }
+ {
+ 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_to_regexp___path_to_regexp_0.1.7.tgz";
+ path = fetchurl {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ }
+ {
+ name = "path_type___path_type_1.1.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz";
+ sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
+ };
+ }
+ {
+ 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 = "path_type___path_type_3.0.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz";
+ sha1 = "cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f";
+ };
+ }
+ {
+ name = "pbkdf2___pbkdf2_3.0.14.tgz";
+ path = fetchurl {
+ name = "pbkdf2___pbkdf2_3.0.14.tgz";
+ url = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz";
+ sha1 = "a35e13c64799b06ce15320f459c230e68e73bade";
+ };
+ }
+ {
+ name = "pdfjs_dist___pdfjs_dist_2.1.266.tgz";
+ path = fetchurl {
+ name = "pdfjs_dist___pdfjs_dist_2.1.266.tgz";
+ url = "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-2.1.266.tgz";
+ sha1 = "cded02268b389559e807f410d2a729db62160026";
+ };
+ }
+ {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ }
+ {
+ name = "picomatch___picomatch_2.2.2.tgz";
+ path = fetchurl {
+ name = "picomatch___picomatch_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
+ sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
+ };
+ }
+ {
+ 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 = "pify___pify_4.0.1.tgz";
+ path = fetchurl {
+ name = "pify___pify_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz";
+ sha1 = "4b2cd25c50d598735c50292224fd8c6df41e3231";
+ };
+ }
+ {
+ name = "pikaday___pikaday_1.8.0.tgz";
+ path = fetchurl {
+ name = "pikaday___pikaday_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/pikaday/-/pikaday-1.8.0.tgz";
+ sha1 = "ce930e257042e852e6aadee1115e01554b2d71c5";
+ };
+ }
+ {
+ 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 = "pirates___pirates_4.0.1.tgz";
+ path = fetchurl {
+ name = "pirates___pirates_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz";
+ sha1 = "643a92caf894566f91b2b986d2c66950a8e2fb87";
+ };
+ }
+ {
+ name = "pixelmatch___pixelmatch_4.0.2.tgz";
+ path = fetchurl {
+ name = "pixelmatch___pixelmatch_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz";
+ sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
+ };
+ }
+ {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+ sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+ };
+ }
+ {
+ 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 = "pkg_dir___pkg_dir_4.2.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz";
+ sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3";
+ };
+ }
+ {
+ name = "pkg_up___pkg_up_2.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_up___pkg_up_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz";
+ sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
+ };
+ }
+ {
+ name = "pngjs___pngjs_3.3.3.tgz";
+ path = fetchurl {
+ name = "pngjs___pngjs_3.3.3.tgz";
+ url = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.3.tgz";
+ sha1 = "85173703bde3edac8998757b96e5821d0966a21b";
+ };
+ }
+ {
+ name = "pofile___pofile_1.0.11.tgz";
+ path = fetchurl {
+ name = "pofile___pofile_1.0.11.tgz";
+ url = "https://registry.yarnpkg.com/pofile/-/pofile-1.0.11.tgz";
+ sha1 = "35aff58c17491d127a07336d5522ebc9df57c954";
+ };
+ }
+ {
+ name = "popper.js___popper.js_1.16.1.tgz";
+ path = fetchurl {
+ name = "popper.js___popper.js_1.16.1.tgz";
+ url = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz";
+ sha1 = "2a223cb3dc7b6213d740e40372be40de43e65b1b";
+ };
+ }
+ {
+ name = "portal_vue___portal_vue_2.1.7.tgz";
+ path = fetchurl {
+ name = "portal_vue___portal_vue_2.1.7.tgz";
+ url = "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.7.tgz";
+ sha1 = "ea08069b25b640ca08a5b86f67c612f15f4e4ad4";
+ };
+ }
+ {
+ name = "portfinder___portfinder_1.0.25.tgz";
+ path = fetchurl {
+ name = "portfinder___portfinder_1.0.25.tgz";
+ url = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz";
+ sha1 = "254fd337ffba869f4b9d37edc298059cb4d35eca";
+ };
+ }
+ {
+ 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 = "postcss_html___postcss_html_0.36.0.tgz";
+ path = fetchurl {
+ name = "postcss_html___postcss_html_0.36.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz";
+ sha1 = "b40913f94eaacc2453fd30a1327ad6ee1f88b204";
+ };
+ }
+ {
+ name = "postcss_jsx___postcss_jsx_0.36.2.tgz";
+ path = fetchurl {
+ name = "postcss_jsx___postcss_jsx_0.36.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.2.tgz";
+ sha1 = "34bcd6752426a60b8df73f069e7595383060a794";
+ };
+ }
+ {
+ name = "postcss_less___postcss_less_3.1.4.tgz";
+ path = fetchurl {
+ name = "postcss_less___postcss_less_3.1.4.tgz";
+ url = "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz";
+ sha1 = "369f58642b5928ef898ffbc1a6e93c958304c5ad";
+ };
+ }
+ {
+ name = "postcss_markdown___postcss_markdown_0.36.0.tgz";
+ path = fetchurl {
+ name = "postcss_markdown___postcss_markdown_0.36.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.36.0.tgz";
+ sha1 = "7f22849ae0e3db18820b7b0d5e7833f13a447560";
+ };
+ }
+ {
+ name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
+ path = fetchurl {
+ name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz";
+ sha1 = "27b39c6f4d94f81b1a73b8f76351c609e5cef244";
+ };
+ }
+ {
+ name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
+ sha1 = "818719a1ae1da325f9832446b01136eeb493cd7e";
+ };
+ }
+ {
+ name = "postcss_modules_local_by_default___postcss_modules_local_by_default_2.0.6.tgz";
+ path = fetchurl {
+ name = "postcss_modules_local_by_default___postcss_modules_local_by_default_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz";
+ sha1 = "dd9953f6dd476b5fd1ef2d8830c8929760b56e63";
+ };
+ }
+ {
+ name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz";
+ sha1 = "385cae013cc7743f5a7d7602d1073a89eaae62ee";
+ };
+ }
+ {
+ name = "postcss_modules_values___postcss_modules_values_2.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_values___postcss_modules_values_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz";
+ sha1 = "479b46dc0c5ca3dc7fa5270851836b9ec7152f64";
+ };
+ }
+ {
+ name = "postcss_reporter___postcss_reporter_6.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_reporter___postcss_reporter_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz";
+ sha1 = "7c055120060a97c8837b4e48215661aafb74245f";
+ };
+ }
+ {
+ name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
+ path = fetchurl {
+ name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz";
+ sha1 = "29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e";
+ };
+ }
+ {
+ name = "postcss_safe_parser___postcss_safe_parser_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_safe_parser___postcss_safe_parser_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz";
+ sha1 = "8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea";
+ };
+ }
+ {
+ name = "postcss_sass___postcss_sass_0.3.5.tgz";
+ path = fetchurl {
+ name = "postcss_sass___postcss_sass_0.3.5.tgz";
+ url = "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.5.tgz";
+ sha1 = "6d3e39f101a53d2efa091f953493116d32beb68c";
+ };
+ }
+ {
+ name = "postcss_scss___postcss_scss_2.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_scss___postcss_scss_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz";
+ sha1 = "248b0a28af77ea7b32b1011aba0f738bda27dea1";
+ };
+ }
+ {
+ name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
+ path = fetchurl {
+ name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz";
+ sha1 = "4f875f4afb0c96573d5cf4d74011aee250a7e865";
+ };
+ }
+ {
+ name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
+ path = fetchurl {
+ name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
+ sha1 = "934cf799d016c83411859e09dcecade01286ec5c";
+ };
+ }
+ {
+ name = "postcss_syntax___postcss_syntax_0.36.2.tgz";
+ path = fetchurl {
+ name = "postcss_syntax___postcss_syntax_0.36.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz";
+ sha1 = "f08578c7d95834574e5593a82dfbfa8afae3b51c";
+ };
+ }
+ {
+ name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
+ path = fetchurl {
+ name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
+ sha1 = "9ff822547e2893213cf1c30efa51ac5fd1ba8281";
+ };
+ }
+ {
+ name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz";
+ sha1 = "99a983d365f7b2ad8d0f9b8c3094926eab4b936d";
+ };
+ }
+ {
+ name = "postcss___postcss_7.0.30.tgz";
+ path = fetchurl {
+ name = "postcss___postcss_7.0.30.tgz";
+ url = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.30.tgz";
+ sha1 = "cc9378beffe46a02cbc4506a0477d05fcea9a8e2";
+ };
+ }
+ {
+ 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 = "prepend_http___prepend_http_2.0.0.tgz";
+ path = fetchurl {
+ name = "prepend_http___prepend_http_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz";
+ sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897";
+ };
+ }
+ {
+ name = "pretender___pretender_3.4.3.tgz";
+ path = fetchurl {
+ name = "pretender___pretender_3.4.3.tgz";
+ url = "https://registry.yarnpkg.com/pretender/-/pretender-3.4.3.tgz";
+ sha1 = "a3b4160516007075d29127262f3a0063d19896e9";
+ };
+ }
+ {
+ name = "prettier___prettier_1.18.2.tgz";
+ path = fetchurl {
+ name = "prettier___prettier_1.18.2.tgz";
+ url = "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz";
+ sha1 = "6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea";
+ };
+ }
+ {
+ name = "prettier___prettier_2.0.5.tgz";
+ path = fetchurl {
+ name = "prettier___prettier_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz";
+ sha1 = "d6d56282455243f2f92cc1716692c08aa31522d4";
+ };
+ }
+ {
+ name = "pretty_format___pretty_format_25.5.0.tgz";
+ path = fetchurl {
+ name = "pretty_format___pretty_format_25.5.0.tgz";
+ url = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz";
+ sha1 = "7873c1d774f682c34b8d48b6743a2bf2ac55791a";
+ };
+ }
+ {
+ name = "pretty_format___pretty_format_26.5.2.tgz";
+ path = fetchurl {
+ name = "pretty_format___pretty_format_26.5.2.tgz";
+ url = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.5.2.tgz";
+ sha1 = "5d896acfdaa09210683d34b6dc0e6e21423cd3e1";
+ };
+ }
+ {
+ name = "pretty___pretty_2.0.0.tgz";
+ path = fetchurl {
+ name = "pretty___pretty_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz";
+ sha1 = "adbc7960b7bbfe289a557dc5f737619a220d06a5";
+ };
+ }
+ {
+ name = "prismjs___prismjs_1.21.0.tgz";
+ path = fetchurl {
+ name = "prismjs___prismjs_1.21.0.tgz";
+ url = "https://registry.yarnpkg.com/prismjs/-/prismjs-1.21.0.tgz";
+ sha1 = "36c086ec36b45319ec4218ee164c110f9fc015a3";
+ };
+ }
+ {
+ name = "private___private_0.1.8.tgz";
+ path = fetchurl {
+ name = "private___private_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz";
+ sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff";
+ };
+ }
+ {
+ name = "process_nextick_args___process_nextick_args_1.0.7.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz";
+ sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3";
+ };
+ }
+ {
+ name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
+ };
+ }
+ {
+ name = "process___process_0.11.10.tgz";
+ path = fetchurl {
+ name = "process___process_0.11.10.tgz";
+ url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
+ sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+ };
+ }
+ {
+ 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 = "promise_inflight___promise_inflight_1.0.1.tgz";
+ path = fetchurl {
+ name = "promise_inflight___promise_inflight_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
+ sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+ };
+ }
+ {
+ name = "prompts___prompts_2.3.2.tgz";
+ path = fetchurl {
+ name = "prompts___prompts_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz";
+ sha1 = "480572d89ecf39566d2bd3fe2c9fccb7c4c0b068";
+ };
+ }
+ {
+ name = "prosemirror_commands___prosemirror_commands_1.0.7.tgz";
+ path = fetchurl {
+ name = "prosemirror_commands___prosemirror_commands_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.0.7.tgz";
+ sha1 = "e5a2ba821e29ea7065c88277fe2c3d7f6b0b9d37";
+ };
+ }
+ {
+ name = "prosemirror_dropcursor___prosemirror_dropcursor_1.1.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_dropcursor___prosemirror_dropcursor_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.1.1.tgz";
+ sha1 = "c60ed1ed6c58804a06a75db06a0d993b087b7622";
+ };
+ }
+ {
+ name = "prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.3.tgz";
+ sha1 = "acc6537fc5a35e9b38966f91a199a382dfc715c4";
+ };
+ }
+ {
+ name = "prosemirror_history___prosemirror_history_1.0.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_history___prosemirror_history_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.0.3.tgz";
+ sha1 = "5fb8591adfc272afaaf0b41bec64ee7d9522a118";
+ };
+ }
+ {
+ name = "prosemirror_inputrules___prosemirror_inputrules_1.0.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_inputrules___prosemirror_inputrules_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.0.1.tgz";
+ sha1 = "f63305fd966379f218e82ca76a2a9b328b66dc7b";
+ };
+ }
+ {
+ name = "prosemirror_keymap___prosemirror_keymap_1.0.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_keymap___prosemirror_keymap_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.0.1.tgz";
+ sha1 = "03ef32b828e3a859dfb570eb84928bf2e5330bc2";
+ };
+ }
+ {
+ name = "prosemirror_markdown___prosemirror_markdown_1.3.0.tgz";
+ path = fetchurl {
+ name = "prosemirror_markdown___prosemirror_markdown_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.3.0.tgz";
+ sha1 = "a100d14c27da7d8fb70818230d786898eeadb7fa";
+ };
+ }
+ {
+ name = "prosemirror_model___prosemirror_model_1.6.4.tgz";
+ path = fetchurl {
+ name = "prosemirror_model___prosemirror_model_1.6.4.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.6.4.tgz";
+ sha1 = "2ac37a629448a7dbfd1635450e2fdd63c3450d7d";
+ };
+ }
+ {
+ name = "prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
+ path = fetchurl {
+ name = "prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.0.1.tgz";
+ sha1 = "f216e0cf4809b6074aa27912449ac89897f1ae94";
+ };
+ }
+ {
+ name = "prosemirror_state___prosemirror_state_1.2.2.tgz";
+ path = fetchurl {
+ name = "prosemirror_state___prosemirror_state_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.2.2.tgz";
+ sha1 = "8df26d95fd6fd327c0f9984a760e84d863204154";
+ };
+ }
+ {
+ name = "prosemirror_tables___prosemirror_tables_0.7.10.tgz";
+ path = fetchurl {
+ name = "prosemirror_tables___prosemirror_tables_0.7.10.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-0.7.10.tgz";
+ sha1 = "4b0f623422b4b8f84cdc9c559f8a87579846b3ba";
+ };
+ }
+ {
+ name = "prosemirror_transform___prosemirror_transform_1.1.3.tgz";
+ path = fetchurl {
+ name = "prosemirror_transform___prosemirror_transform_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.1.3.tgz";
+ sha1 = "28cfdf1f9ee514edc40466be7b7db39eed545fdf";
+ };
+ }
+ {
+ name = "prosemirror_utils___prosemirror_utils_0.7.5.tgz";
+ path = fetchurl {
+ name = "prosemirror_utils___prosemirror_utils_0.7.5.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.7.5.tgz";
+ sha1 = "11b477647b672ec8f10679ab298a5823dad6457a";
+ };
+ }
+ {
+ name = "prosemirror_view___prosemirror_view_1.6.8.tgz";
+ path = fetchurl {
+ name = "prosemirror_view___prosemirror_view_1.6.8.tgz";
+ url = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.6.8.tgz";
+ sha1 = "33fc1a6e2731633e5d6dc1af1967378f15810b74";
+ };
+ }
+ {
+ name = "proto_list___proto_list_1.2.4.tgz";
+ path = fetchurl {
+ name = "proto_list___proto_list_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
+ sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+ };
+ }
+ {
+ name = "proxy_addr___proxy_addr_2.0.5.tgz";
+ path = fetchurl {
+ name = "proxy_addr___proxy_addr_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz";
+ sha1 = "34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34";
+ };
+ }
+ {
+ name = "prr___prr_1.0.1.tgz";
+ path = fetchurl {
+ name = "prr___prr_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
+ sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+ };
+ }
+ {
+ 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 = "psl___psl_1.8.0.tgz";
+ path = fetchurl {
+ name = "psl___psl_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz";
+ sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24";
+ };
+ }
+ {
+ name = "pstree.remy___pstree.remy_1.1.8.tgz";
+ path = fetchurl {
+ name = "pstree.remy___pstree.remy_1.1.8.tgz";
+ url = "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz";
+ sha1 = "c242224f4a67c21f686839bbdb4ac282b8373d3a";
+ };
+ }
+ {
+ name = "public_encrypt___public_encrypt_4.0.0.tgz";
+ path = fetchurl {
+ name = "public_encrypt___public_encrypt_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz";
+ sha1 = "39f699f3a46560dd5ebacbca693caf7c65c18cc6";
+ };
+ }
+ {
+ name = "pump___pump_2.0.1.tgz";
+ path = fetchurl {
+ name = "pump___pump_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
+ sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
+ };
+ }
+ {
+ 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 = "pumpify___pumpify_1.5.1.tgz";
+ path = fetchurl {
+ name = "pumpify___pumpify_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
+ sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
+ };
+ }
+ {
+ name = "punycode___punycode_1.3.2.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
+ sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+ };
+ }
+ {
+ 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 = "pupa___pupa_2.0.1.tgz";
+ path = fetchurl {
+ name = "pupa___pupa_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz";
+ sha1 = "dbdc9ff48ffbea4a26a069b6f9f7abb051008726";
+ };
+ }
+ {
+ name = "qjobs___qjobs_1.2.0.tgz";
+ path = fetchurl {
+ name = "qjobs___qjobs_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz";
+ sha1 = "c45e9c61800bd087ef88d7e256423bdd49e5d071";
+ };
+ }
+ {
+ name = "qs___qs_6.7.0.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.7.0.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz";
+ sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc";
+ };
+ }
+ {
+ name = "qs___qs_6.5.2.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.5.2.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+ sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+ };
+ }
+ {
+ name = "querystring_es3___querystring_es3_0.2.1.tgz";
+ path = fetchurl {
+ name = "querystring_es3___querystring_es3_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
+ sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+ };
+ }
+ {
+ name = "querystring___querystring_0.2.0.tgz";
+ path = fetchurl {
+ name = "querystring___querystring_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
+ sha1 = "b209849203bb25df820da756e747005878521620";
+ };
+ }
+ {
+ name = "querystringify___querystringify_2.1.0.tgz";
+ path = fetchurl {
+ name = "querystringify___querystringify_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz";
+ sha1 = "7ded8dfbf7879dcc60d0a644ac6754b283ad17ef";
+ };
+ }
+ {
+ 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 = "randombytes___randombytes_2.0.6.tgz";
+ path = fetchurl {
+ name = "randombytes___randombytes_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
+ sha1 = "d302c522948588848a8d300c932b44c24231da80";
+ };
+ }
+ {
+ name = "randomfill___randomfill_1.0.4.tgz";
+ path = fetchurl {
+ name = "randomfill___randomfill_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
+ sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
+ };
+ }
+ {
+ name = "range_parser___range_parser_1.2.1.tgz";
+ path = fetchurl {
+ name = "range_parser___range_parser_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz";
+ sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031";
+ };
+ }
+ {
+ name = "raphael___raphael_2.2.7.tgz";
+ path = fetchurl {
+ name = "raphael___raphael_2.2.7.tgz";
+ url = "https://registry.yarnpkg.com/raphael/-/raphael-2.2.7.tgz";
+ sha1 = "231b19141f8d086986d8faceb66f8b562ee2c810";
+ };
+ }
+ {
+ name = "raw_body___raw_body_2.4.0.tgz";
+ path = fetchurl {
+ name = "raw_body___raw_body_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz";
+ sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332";
+ };
+ }
+ {
+ name = "raw_loader___raw_loader_4.0.0.tgz";
+ path = fetchurl {
+ name = "raw_loader___raw_loader_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.0.tgz";
+ sha1 = "d639c40fb9d72b5c7f8abc1fb2ddb25b29d3d540";
+ };
+ }
+ {
+ name = "rc___rc_1.2.8.tgz";
+ path = fetchurl {
+ name = "rc___rc_1.2.8.tgz";
+ url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+ sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+ };
+ }
+ {
+ name = "react_is___react_is_16.13.1.tgz";
+ path = fetchurl {
+ name = "react_is___react_is_16.13.1.tgz";
+ url = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
+ sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
+ };
+ }
+ {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
+ sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
+ };
+ }
+ {
+ 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_up___read_pkg_up_3.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz";
+ sha1 = "3ed496685dba0f8fe118d0691dc51f4a1ff96f07";
+ };
+ }
+ {
+ name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
+ sha1 = "f3a6135758459733ae2b95638056e1854e7ef507";
+ };
+ }
+ {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz";
+ sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
+ };
+ }
+ {
+ 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_3.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz";
+ sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+ };
+ }
+ {
+ name = "read_pkg___read_pkg_5.2.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz";
+ sha1 = "7bf295438ca5a33e56cd30e053b34ee7250c93cc";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_2.3.7.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.3.7.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
+ sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_3.0.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz";
+ sha1 = "351302e4c68b5abd6a2ed55376a7f9a25be3057a";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_2.0.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz";
+ sha1 = "8f90341e68a53ccc928788dacfcd11b36eb9b78e";
+ };
+ }
+ {
+ name = "readdir_enhanced___readdir_enhanced_2.2.4.tgz";
+ path = fetchurl {
+ name = "readdir_enhanced___readdir_enhanced_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/readdir-enhanced/-/readdir-enhanced-2.2.4.tgz";
+ sha1 = "773fb8a8de5f645fb13d9403746d490d4facb3e6";
+ };
+ }
+ {
+ name = "readdirp___readdirp_3.4.0.tgz";
+ path = fetchurl {
+ name = "readdirp___readdirp_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz";
+ sha1 = "9fdccdf9e9155805449221ac645e8303ab5b9ada";
+ };
+ }
+ {
+ name = "redent___redent_1.0.0.tgz";
+ path = fetchurl {
+ name = "redent___redent_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz";
+ sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde";
+ };
+ }
+ {
+ name = "redent___redent_2.0.0.tgz";
+ path = fetchurl {
+ name = "redent___redent_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz";
+ sha1 = "c1b2007b42d57eb1389079b3c8333639d5e1ccaa";
+ };
+ }
+ {
+ name = "regenerate_unicode_properties___regenerate_unicode_properties_8.2.0.tgz";
+ path = fetchurl {
+ name = "regenerate_unicode_properties___regenerate_unicode_properties_8.2.0.tgz";
+ url = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
+ sha1 = "e5de7111d655e7ba60c057dbe9ff37c87e65cdec";
+ };
+ }
+ {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ path = fetchurl {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
+ sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
+ };
+ }
+ {
+ name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+ path = fetchurl {
+ name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
+ sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
+ };
+ }
+ {
+ name = "regenerator_transform___regenerator_transform_0.14.4.tgz";
+ path = fetchurl {
+ name = "regenerator_transform___regenerator_transform_0.14.4.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz";
+ sha1 = "5266857896518d1616a78a0479337a30ea974cc7";
+ };
+ }
+ {
+ 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_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 = "regexpu_core___regexpu_core_4.7.0.tgz";
+ path = fetchurl {
+ name = "regexpu_core___regexpu_core_4.7.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz";
+ sha1 = "fcbf458c50431b0bb7b45d6967b8192d91f3d938";
+ };
+ }
+ {
+ name = "registry_auth_token___registry_auth_token_4.1.1.tgz";
+ path = fetchurl {
+ name = "registry_auth_token___registry_auth_token_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz";
+ sha1 = "40a33be1e82539460f94328b0f7f0f84c16d9479";
+ };
+ }
+ {
+ name = "registry_url___registry_url_5.1.0.tgz";
+ path = fetchurl {
+ name = "registry_url___registry_url_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz";
+ sha1 = "e98334b50d5434b81136b44ec638d9c2009c5009";
+ };
+ }
+ {
+ name = "regjsgen___regjsgen_0.5.2.tgz";
+ path = fetchurl {
+ name = "regjsgen___regjsgen_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz";
+ sha1 = "92ff295fb1deecbf6ecdab2543d207e91aa33733";
+ };
+ }
+ {
+ name = "regjsparser___regjsparser_0.6.4.tgz";
+ path = fetchurl {
+ name = "regjsparser___regjsparser_0.6.4.tgz";
+ url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz";
+ sha1 = "a769f8684308401a66e9b529d2436ff4d0666272";
+ };
+ }
+ {
+ name = "relateurl___relateurl_0.2.7.tgz";
+ path = fetchurl {
+ name = "relateurl___relateurl_0.2.7.tgz";
+ url = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz";
+ sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
+ };
+ }
+ {
+ name = "remark_parse___remark_parse_6.0.3.tgz";
+ path = fetchurl {
+ name = "remark_parse___remark_parse_6.0.3.tgz";
+ url = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz";
+ sha1 = "c99131052809da482108413f87b0ee7f52180a3a";
+ };
+ }
+ {
+ name = "remark_stringify___remark_stringify_6.0.4.tgz";
+ path = fetchurl {
+ name = "remark_stringify___remark_stringify_6.0.4.tgz";
+ url = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-6.0.4.tgz";
+ sha1 = "16ac229d4d1593249018663c7bddf28aafc4e088";
+ };
+ }
+ {
+ name = "remark___remark_10.0.1.tgz";
+ path = fetchurl {
+ name = "remark___remark_10.0.1.tgz";
+ url = "https://registry.yarnpkg.com/remark/-/remark-10.0.1.tgz";
+ sha1 = "3058076dc41781bf505d8978c291485fe47667df";
+ };
+ }
+ {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ path = fetchurl {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ }
+ {
+ 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 = "repeating___repeating_2.0.1.tgz";
+ path = fetchurl {
+ name = "repeating___repeating_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz";
+ sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
+ };
+ }
+ {
+ name = "replace_ext___replace_ext_1.0.0.tgz";
+ path = fetchurl {
+ name = "replace_ext___replace_ext_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz";
+ sha1 = "de63128373fcbf7c3ccfa4de5a480c45a67958eb";
+ };
+ }
+ {
+ name = "request_light___request_light_0.2.5.tgz";
+ path = fetchurl {
+ name = "request_light___request_light_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/request-light/-/request-light-0.2.5.tgz";
+ sha1 = "38a3da7b2e56f7af8cbba57e8a94930ee2380746";
+ };
+ }
+ {
+ name = "request_promise_core___request_promise_core_1.1.4.tgz";
+ path = fetchurl {
+ name = "request_promise_core___request_promise_core_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz";
+ sha1 = "3eedd4223208d419867b78ce815167d10593a22f";
+ };
+ }
+ {
+ name = "request_promise_native___request_promise_native_1.0.9.tgz";
+ path = fetchurl {
+ name = "request_promise_native___request_promise_native_1.0.9.tgz";
+ url = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz";
+ sha1 = "e407120526a5efdc9a39b28a5679bf47b9d9dc28";
+ };
+ }
+ {
+ name = "request___request_2.88.2.tgz";
+ path = fetchurl {
+ name = "request___request_2.88.2.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
+ sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
+ };
+ }
+ {
+ 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_main_filename___require_main_filename_2.0.0.tgz";
+ path = fetchurl {
+ name = "require_main_filename___require_main_filename_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
+ sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
+ };
+ }
+ {
+ name = "require_package_name___require_package_name_2.0.1.tgz";
+ path = fetchurl {
+ name = "require_package_name___require_package_name_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz";
+ sha1 = "c11e97276b65b8e2923f75dabf5fb2ef0c3841b9";
+ };
+ }
+ {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ path = fetchurl {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz";
+ sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+ };
+ }
+ {
+ name = "requizzle___requizzle_0.2.1.tgz";
+ path = fetchurl {
+ name = "requizzle___requizzle_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz";
+ sha1 = "6943c3530c4d9a7e46f1cddd51c158fc670cdbde";
+ };
+ }
+ {
+ name = "resize_observer_polyfill___resize_observer_polyfill_1.5.1.tgz";
+ path = fetchurl {
+ name = "resize_observer_polyfill___resize_observer_polyfill_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz";
+ sha1 = "0e9020dd3d21024458d4ebd27e23e40269810464";
+ };
+ }
+ {
+ name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
+ sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
+ };
+ }
+ {
+ name = "resolve_cwd___resolve_cwd_3.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_cwd___resolve_cwd_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz";
+ sha1 = "0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d";
+ };
+ }
+ {
+ name = "resolve_dir___resolve_dir_1.0.1.tgz";
+ path = fetchurl {
+ name = "resolve_dir___resolve_dir_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz";
+ sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
+ };
+ }
+ {
+ 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_from___resolve_from_5.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz";
+ sha1 = "c35225843df8f776df21c57557bc087e9dfdfc69";
+ };
+ }
+ {
+ 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.17.0.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.17.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz";
+ sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444";
+ };
+ }
+ {
+ name = "responselike___responselike_1.0.2.tgz";
+ path = fetchurl {
+ name = "responselike___responselike_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz";
+ sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7";
+ };
+ }
+ {
+ name = "restore_cursor___restore_cursor_3.1.0.tgz";
+ path = fetchurl {
+ name = "restore_cursor___restore_cursor_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
+ sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
+ };
+ }
+ {
+ 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 = "retry___retry_0.12.0.tgz";
+ path = fetchurl {
+ name = "retry___retry_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
+ sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+ };
+ }
+ {
+ name = "rfdc___rfdc_1.1.4.tgz";
+ path = fetchurl {
+ name = "rfdc___rfdc_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz";
+ sha1 = "ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2";
+ };
+ }
+ {
+ name = "rimraf___rimraf_2.7.1.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
+ sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
+ };
+ }
+ {
+ 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 = "rimraf___rimraf_3.0.2.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
+ sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
+ };
+ }
+ {
+ name = "ripemd160___ripemd160_2.0.1.tgz";
+ path = fetchurl {
+ name = "ripemd160___ripemd160_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz";
+ sha1 = "0f4584295c53a3628af7e6d79aca21ce57d1c6e7";
+ };
+ }
+ {
+ name = "rope_sequence___rope_sequence_1.2.2.tgz";
+ path = fetchurl {
+ name = "rope_sequence___rope_sequence_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.2.2.tgz";
+ sha1 = "49c4e5c2f54a48e990b050926771e2871bcb31ce";
+ };
+ }
+ {
+ name = "route_recognizer___route_recognizer_0.3.4.tgz";
+ path = fetchurl {
+ name = "route_recognizer___route_recognizer_0.3.4.tgz";
+ url = "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.3.4.tgz";
+ sha1 = "39ab1ffbce1c59e6d2bdca416f0932611e4f3ca3";
+ };
+ }
+ {
+ name = "rsvp___rsvp_4.8.4.tgz";
+ path = fetchurl {
+ name = "rsvp___rsvp_4.8.4.tgz";
+ url = "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.4.tgz";
+ sha1 = "b50e6b34583f3dd89329a2f23a8a2be072845911";
+ };
+ }
+ {
+ 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_queue___run_queue_1.0.3.tgz";
+ path = fetchurl {
+ name = "run_queue___run_queue_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
+ sha1 = "e848396f057d223f24386924618e25694161ec47";
+ };
+ }
+ {
+ name = "rw___rw_1.3.3.tgz";
+ path = fetchurl {
+ name = "rw___rw_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz";
+ sha1 = "3f862dfa91ab766b14885ef4d01124bfda074fb4";
+ };
+ }
+ {
+ name = "rxjs___rxjs_6.5.4.tgz";
+ path = fetchurl {
+ name = "rxjs___rxjs_6.5.4.tgz";
+ url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz";
+ sha1 = "e0777fe0d184cec7872df147f303572d414e211c";
+ };
+ }
+ {
+ 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 = "sane___sane_4.1.0.tgz";
+ path = fetchurl {
+ name = "sane___sane_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz";
+ sha1 = "ed881fd922733a6c461bc189dc2b6c006f3ffded";
+ };
+ }
+ {
+ name = "sass_graph___sass_graph_2.2.5.tgz";
+ path = fetchurl {
+ name = "sass_graph___sass_graph_2.2.5.tgz";
+ url = "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz";
+ sha1 = "a981c87446b8319d96dce0671e487879bd24c2e8";
+ };
+ }
+ {
+ name = "sax___sax_1.2.1.tgz";
+ path = fetchurl {
+ name = "sax___sax_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz";
+ sha1 = "7b8e656190b228e81a66aea748480d828cd2d37a";
+ };
+ }
+ {
+ name = "saxes___saxes_5.0.1.tgz";
+ path = fetchurl {
+ name = "saxes___saxes_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz";
+ sha1 = "eebab953fa3b7608dbe94e5dadb15c888fa6696d";
+ };
+ }
+ {
+ name = "schema_utils___schema_utils_0.4.5.tgz";
+ path = fetchurl {
+ name = "schema_utils___schema_utils_0.4.5.tgz";
+ url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz";
+ sha1 = "21836f0608aac17b78f9e3e24daff14a5ca13a3e";
+ };
+ }
+ {
+ name = "schema_utils___schema_utils_1.0.0.tgz";
+ path = fetchurl {
+ name = "schema_utils___schema_utils_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz";
+ sha1 = "0b79a93204d7b600d4b2850d1f66c2a34951c770";
+ };
+ }
+ {
+ name = "schema_utils___schema_utils_2.6.4.tgz";
+ path = fetchurl {
+ name = "schema_utils___schema_utils_2.6.4.tgz";
+ url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz";
+ sha1 = "a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53";
+ };
+ }
+ {
+ name = "scope_css___scope_css_1.2.1.tgz";
+ path = fetchurl {
+ name = "scope_css___scope_css_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/scope-css/-/scope-css-1.2.1.tgz";
+ sha1 = "c35768bc900cad030a3e0d663a818c0f6a57f40e";
+ };
+ }
+ {
+ name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
+ path = fetchurl {
+ name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz";
+ sha1 = "8eb06db9a9723333824d3f5530641149847ce5d1";
+ };
+ }
+ {
+ name = "select_hose___select_hose_2.0.0.tgz";
+ path = fetchurl {
+ name = "select_hose___select_hose_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz";
+ sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
+ };
+ }
+ {
+ name = "select2___select2_3.5.2_browserify.tgz";
+ path = fetchurl {
+ name = "select2___select2_3.5.2_browserify.tgz";
+ url = "https://registry.yarnpkg.com/select2/-/select2-3.5.2-browserify.tgz";
+ sha1 = "dc4dafda38d67a734e8a97a46f0d3529ae05391d";
+ };
+ }
+ {
+ name = "select___select_1.1.2.tgz";
+ path = fetchurl {
+ name = "select___select_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz";
+ sha1 = "0e7350acdec80b1108528786ec1d4418d11b396d";
+ };
+ }
+ {
+ name = "selfsigned___selfsigned_1.10.7.tgz";
+ path = fetchurl {
+ name = "selfsigned___selfsigned_1.10.7.tgz";
+ url = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz";
+ sha1 = "da5819fd049d5574f28e88a9bcc6dbc6e6f3906b";
+ };
+ }
+ {
+ name = "semver_diff___semver_diff_3.1.1.tgz";
+ path = fetchurl {
+ name = "semver_diff___semver_diff_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz";
+ sha1 = "05f77ce59f325e00e2706afd67bb506ddb1ca32b";
+ };
+ }
+ {
+ name = "semver___semver_5.7.1.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.7.1.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+ sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+ };
+ }
+ {
+ name = "semver___semver_7.0.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz";
+ sha1 = "5f3ca35761e47e05b206c6daff2cf814f0316b8e";
+ };
+ }
+ {
+ name = "semver___semver_7.3.2.tgz";
+ path = fetchurl {
+ name = "semver___semver_7.3.2.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
+ sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
+ };
+ }
+ {
+ name = "semver___semver_6.3.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_6.3.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
+ sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
+ };
+ }
+ {
+ name = "semver___semver_5.3.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz";
+ sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+ };
+ }
+ {
+ name = "send___send_0.17.1.tgz";
+ path = fetchurl {
+ name = "send___send_0.17.1.tgz";
+ url = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz";
+ sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8";
+ };
+ }
+ {
+ name = "serialize_javascript___serialize_javascript_2.1.2.tgz";
+ path = fetchurl {
+ name = "serialize_javascript___serialize_javascript_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
+ sha1 = "ecec53b0e0317bdc95ef76ab7074b7384785fa61";
+ };
+ }
+ {
+ name = "serve_index___serve_index_1.9.1.tgz";
+ path = fetchurl {
+ name = "serve_index___serve_index_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz";
+ sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
+ };
+ }
+ {
+ name = "serve_static___serve_static_1.14.1.tgz";
+ path = fetchurl {
+ name = "serve_static___serve_static_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz";
+ sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9";
+ };
+ }
+ {
+ 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_2.0.1.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
+ sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
+ };
+ }
+ {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ path = fetchurl {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
+ sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+ };
+ }
+ {
+ name = "setprototypeof___setprototypeof_1.0.3.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz";
+ sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04";
+ };
+ }
+ {
+ name = "setprototypeof___setprototypeof_1.1.1.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
+ sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
+ };
+ }
+ {
+ name = "sha.js___sha.js_2.4.10.tgz";
+ path = fetchurl {
+ name = "sha.js___sha.js_2.4.10.tgz";
+ url = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz";
+ sha1 = "b1fde5cd7d11a5626638a07c604ab909cfa31f9b";
+ };
+ }
+ {
+ name = "shallow_clone___shallow_clone_3.0.1.tgz";
+ path = fetchurl {
+ name = "shallow_clone___shallow_clone_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz";
+ sha1 = "8f2981ad92531f55035b01fb230769a40e02efa3";
+ };
+ }
+ {
+ 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_command___shebang_command_2.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_command___shebang_command_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
+ sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
+ };
+ }
+ {
+ 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 = "shebang_regex___shebang_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_regex___shebang_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
+ sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
+ };
+ }
+ {
+ name = "shellwords___shellwords_0.1.1.tgz";
+ path = fetchurl {
+ name = "shellwords___shellwords_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz";
+ sha1 = "d6b9181c1a48d397324c84871efbcfc73fc0654b";
+ };
+ }
+ {
+ name = "sigmund___sigmund_1.0.1.tgz";
+ path = fetchurl {
+ name = "sigmund___sigmund_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz";
+ sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
+ };
+ }
+ {
+ name = "signal_exit___signal_exit_3.0.3.tgz";
+ path = fetchurl {
+ name = "signal_exit___signal_exit_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
+ sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
+ };
+ }
+ {
+ name = "sisteransi___sisteransi_1.0.5.tgz";
+ path = fetchurl {
+ name = "sisteransi___sisteransi_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz";
+ sha1 = "134d681297756437cc05ca01370d3a7a571075ed";
+ };
+ }
+ {
+ name = "slash___slash_1.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz";
+ sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
+ };
+ }
+ {
+ 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 = "slash___slash_3.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz";
+ sha1 = "6539be870c165adbd5240220dbe361f1bc4d4634";
+ };
+ }
+ {
+ name = "slice_ansi___slice_ansi_2.1.0.tgz";
+ path = fetchurl {
+ name = "slice_ansi___slice_ansi_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
+ sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
+ };
+ }
+ {
+ name = "slugify___slugify_1.3.1.tgz";
+ path = fetchurl {
+ name = "slugify___slugify_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/slugify/-/slugify-1.3.1.tgz";
+ sha1 = "f572127e8535329fbc6c1edb74ab856b61ad7de2";
+ };
+ }
+ {
+ name = "smooshpack___smooshpack_0.0.62.tgz";
+ path = fetchurl {
+ name = "smooshpack___smooshpack_0.0.62.tgz";
+ url = "https://registry.yarnpkg.com/smooshpack/-/smooshpack-0.0.62.tgz";
+ sha1 = "cb31b9f808f73de3146b050f84d044eb353b5503";
+ };
+ }
+ {
+ 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 = "socket.io_adapter___socket.io_adapter_1.1.1.tgz";
+ path = fetchurl {
+ name = "socket.io_adapter___socket.io_adapter_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz";
+ sha1 = "2a805e8a14d6372124dd9159ad4502f8cb07f06b";
+ };
+ }
+ {
+ name = "socket.io_client___socket.io_client_2.1.1.tgz";
+ path = fetchurl {
+ name = "socket.io_client___socket.io_client_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz";
+ sha1 = "dcb38103436ab4578ddb026638ae2f21b623671f";
+ };
+ }
+ {
+ name = "socket.io_parser___socket.io_parser_3.2.0.tgz";
+ path = fetchurl {
+ name = "socket.io_parser___socket.io_parser_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz";
+ sha1 = "e7c6228b6aa1f814e6148aea325b51aa9499e077";
+ };
+ }
+ {
+ name = "socket.io___socket.io_2.1.1.tgz";
+ path = fetchurl {
+ name = "socket.io___socket.io_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz";
+ sha1 = "a069c5feabee3e6b214a75b40ce0652e1cfb9980";
+ };
+ }
+ {
+ name = "sockjs_client___sockjs_client_1.4.0.tgz";
+ path = fetchurl {
+ name = "sockjs_client___sockjs_client_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz";
+ sha1 = "c9f2568e19c8fd8173b4997ea3420e0bb306c7d5";
+ };
+ }
+ {
+ name = "sockjs___sockjs_0.3.19.tgz";
+ path = fetchurl {
+ name = "sockjs___sockjs_0.3.19.tgz";
+ url = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz";
+ sha1 = "d976bbe800af7bd20ae08598d582393508993c0d";
+ };
+ }
+ {
+ name = "sortablejs___sortablejs_1.10.2.tgz";
+ path = fetchurl {
+ name = "sortablejs___sortablejs_1.10.2.tgz";
+ url = "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz";
+ sha1 = "6e40364d913f98b85a14f6678f92b5c1221f5290";
+ };
+ }
+ {
+ name = "source_list_map___source_list_map_2.0.0.tgz";
+ path = fetchurl {
+ name = "source_list_map___source_list_map_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz";
+ sha1 = "aaa47403f7b245a92fbc97ea08f250d6087ed085";
+ };
+ }
+ {
+ name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
+ path = fetchurl {
+ name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+ sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
+ };
+ }
+ {
+ name = "source_map_support___source_map_support_0.5.19.tgz";
+ path = fetchurl {
+ name = "source_map_support___source_map_support_0.5.19.tgz";
+ url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
+ sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+ };
+ }
+ {
+ 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.0.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.0.tgz";
+ sha1 = "0fe96503ac86a5adb5de63f4e412ae4872cdbe86";
+ };
+ }
+ {
+ name = "source_map___source_map_0.5.6.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.6.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz";
+ sha1 = "75ce38f52bf0733c5a7f0c118d81334a2bb5f412";
+ };
+ }
+ {
+ name = "source_map___source_map_0.4.4.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz";
+ sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
+ };
+ }
+ {
+ name = "source_map___source_map_0.6.1.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+ sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+ };
+ }
+ {
+ name = "source_map___source_map_0.7.3.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.7.3.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz";
+ sha1 = "5302f8169031735226544092e64981f751750383";
+ };
+ }
+ {
+ name = "spdx_correct___spdx_correct_3.1.1.tgz";
+ path = fetchurl {
+ name = "spdx_correct___spdx_correct_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz";
+ sha1 = "dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9";
+ };
+ }
+ {
+ name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
+ path = fetchurl {
+ name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+ sha1 = "3f28ce1a77a00372683eade4a433183527a2163d";
+ };
+ }
+ {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
+ path = fetchurl {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+ sha1 = "cf70f50482eefdc98e3ce0a6833e4a53ceeba679";
+ };
+ }
+ {
+ name = "spdx_license_ids___spdx_license_ids_3.0.6.tgz";
+ path = fetchurl {
+ name = "spdx_license_ids___spdx_license_ids_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz";
+ sha1 = "c80757383c28abf7296744998cbc106ae8b854ce";
+ };
+ }
+ {
+ name = "spdy_transport___spdy_transport_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdy_transport___spdy_transport_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz";
+ sha1 = "00d4863a6400ad75df93361a1608605e5dcdcf31";
+ };
+ }
+ {
+ name = "spdy___spdy_4.0.1.tgz";
+ path = fetchurl {
+ name = "spdy___spdy_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz";
+ sha1 = "6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2";
+ };
+ }
+ {
+ name = "specificity___specificity_0.4.1.tgz";
+ path = fetchurl {
+ name = "specificity___specificity_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz";
+ sha1 = "aab5e645012db08ba182e151165738d00887b019";
+ };
+ }
+ {
+ 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 = "sql.js___sql.js_0.4.0.tgz";
+ path = fetchurl {
+ name = "sql.js___sql.js_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/sql.js/-/sql.js-0.4.0.tgz";
+ sha1 = "23be9635520eb0ff43a741e7e830397266e88445";
+ };
+ }
+ {
+ name = "sshpk___sshpk_1.16.1.tgz";
+ path = fetchurl {
+ name = "sshpk___sshpk_1.16.1.tgz";
+ url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
+ sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
+ };
+ }
+ {
+ name = "ssri___ssri_6.0.1.tgz";
+ path = fetchurl {
+ name = "ssri___ssri_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
+ sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+ };
+ }
+ {
+ name = "ssri___ssri_7.1.0.tgz";
+ path = fetchurl {
+ name = "ssri___ssri_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz";
+ sha1 = "92c241bf6de82365b5c7fb4bd76e975522e1294d";
+ };
+ }
+ {
+ name = "stack_utils___stack_utils_2.0.2.tgz";
+ path = fetchurl {
+ name = "stack_utils___stack_utils_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz";
+ sha1 = "5cf48b4557becb4638d0bc4f21d23f5d19586593";
+ };
+ }
+ {
+ name = "state_toggle___state_toggle_1.0.1.tgz";
+ path = fetchurl {
+ name = "state_toggle___state_toggle_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz";
+ sha1 = "c3cb0974f40a6a0f8e905b96789eb41afa1cde3a";
+ };
+ }
+ {
+ 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 = "statuses___statuses_1.5.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ }
+ {
+ name = "statuses___statuses_1.3.1.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz";
+ sha1 = "faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e";
+ };
+ }
+ {
+ name = "stdout_stream___stdout_stream_1.4.1.tgz";
+ path = fetchurl {
+ name = "stdout_stream___stdout_stream_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz";
+ sha1 = "5ac174cdd5cd726104aa0c0b2bd83815d8d535de";
+ };
+ }
+ {
+ name = "stealthy_require___stealthy_require_1.1.1.tgz";
+ path = fetchurl {
+ name = "stealthy_require___stealthy_require_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
+ sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+ };
+ }
+ {
+ name = "stickyfilljs___stickyfilljs_2.1.0.tgz";
+ path = fetchurl {
+ name = "stickyfilljs___stickyfilljs_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/stickyfilljs/-/stickyfilljs-2.1.0.tgz";
+ sha1 = "46dabb599d8275d185bdb97db597f86a2e3afa7b";
+ };
+ }
+ {
+ name = "stream_browserify___stream_browserify_2.0.1.tgz";
+ path = fetchurl {
+ name = "stream_browserify___stream_browserify_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz";
+ sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db";
+ };
+ }
+ {
+ name = "stream_each___stream_each_1.2.2.tgz";
+ path = fetchurl {
+ name = "stream_each___stream_each_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz";
+ sha1 = "8e8c463f91da8991778765873fe4d960d8f616bd";
+ };
+ }
+ {
+ name = "stream_http___stream_http_2.8.2.tgz";
+ path = fetchurl {
+ name = "stream_http___stream_http_2.8.2.tgz";
+ url = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz";
+ sha1 = "4126e8c6b107004465918aa2fc35549e77402c87";
+ };
+ }
+ {
+ name = "stream_shift___stream_shift_1.0.0.tgz";
+ path = fetchurl {
+ name = "stream_shift___stream_shift_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz";
+ sha1 = "d5c752825e5367e786f78e18e445ea223a155952";
+ };
+ }
+ {
+ name = "streamroller___streamroller_1.0.6.tgz";
+ path = fetchurl {
+ name = "streamroller___streamroller_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz";
+ sha1 = "8167d8496ed9f19f05ee4b158d9611321b8cacd9";
+ };
+ }
+ {
+ name = "string_hash___string_hash_1.1.3.tgz";
+ path = fetchurl {
+ name = "string_hash___string_hash_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz";
+ sha1 = "e8aafc0ac1855b4666929ed7dd1275df5d6c811b";
+ };
+ }
+ {
+ name = "string_length___string_length_4.0.1.tgz";
+ path = fetchurl {
+ name = "string_length___string_length_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz";
+ sha1 = "4a973bf31ef77c4edbceadd6af2611996985f8a1";
+ };
+ }
+ {
+ 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_width___string_width_3.1.0.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
+ sha1 = "22767be21b62af1081574306f69ac51b62203961";
+ };
+ }
+ {
+ name = "string_width___string_width_4.2.0.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
+ sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
+ };
+ }
+ {
+ name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
+ sha1 = "9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74";
+ };
+ }
+ {
+ name = "string.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
+ sha1 = "440314b15996c866ce8a0341894d45186200c5d9";
+ };
+ }
+ {
+ 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 = "string_decoder___string_decoder_0.10.31.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ }
+ {
+ name = "stringify_entities___stringify_entities_1.3.2.tgz";
+ path = fetchurl {
+ name = "stringify_entities___stringify_entities_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz";
+ sha1 = "a98417e5471fd227b3e45d3db1861c11caf668f7";
+ };
+ }
+ {
+ 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.2.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
+ sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
+ };
+ }
+ {
+ name = "strip_ansi___strip_ansi_6.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
+ sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
+ };
+ }
+ {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz";
+ sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
+ };
+ }
+ {
+ 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_bom___strip_bom_4.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz";
+ sha1 = "9c3505c1db45bcedca3d9cf7a16f5c5aa3901878";
+ };
+ }
+ {
+ name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
+ path = fetchurl {
+ name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-css-comments/-/strip-css-comments-3.0.0.tgz";
+ sha1 = "7a5625eff8a2b226cf8947a11254da96e13dae89";
+ };
+ }
+ {
+ 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_final_newline___strip_final_newline_2.0.0.tgz";
+ path = fetchurl {
+ name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+ sha1 = "89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad";
+ };
+ }
+ {
+ name = "strip_indent___strip_indent_1.0.1.tgz";
+ path = fetchurl {
+ name = "strip_indent___strip_indent_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz";
+ sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
+ };
+ }
+ {
+ name = "strip_indent___strip_indent_2.0.0.tgz";
+ path = fetchurl {
+ name = "strip_indent___strip_indent_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz";
+ sha1 = "5ef8db295d01e6ed6cbf7aab96998d7822527b68";
+ };
+ }
+ {
+ name = "strip_json_comments___strip_json_comments_3.0.1.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz";
+ sha1 = "85713975a91fb87bf1b305cca77395e40d2a64a7";
+ };
+ }
+ {
+ 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 = "style_loader___style_loader_1.1.3.tgz";
+ path = fetchurl {
+ name = "style_loader___style_loader_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz";
+ sha1 = "9e826e69c683c4d9bf9db924f85e9abb30d5e200";
+ };
+ }
+ {
+ name = "style_search___style_search_0.1.0.tgz";
+ path = fetchurl {
+ name = "style_search___style_search_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz";
+ sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
+ };
+ }
+ {
+ name = "stylelint_config_recommended___stylelint_config_recommended_2.2.0.tgz";
+ path = fetchurl {
+ name = "stylelint_config_recommended___stylelint_config_recommended_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-2.2.0.tgz";
+ sha1 = "46ab139db4a0e7151fd5f94af155512886c96d3f";
+ };
+ }
+ {
+ name = "stylelint_scss___stylelint_scss_3.9.2.tgz";
+ path = fetchurl {
+ name = "stylelint_scss___stylelint_scss_3.9.2.tgz";
+ url = "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.9.2.tgz";
+ sha1 = "5435174a57696ee52eae40146778a4e62f7ed3a3";
+ };
+ }
+ {
+ name = "stylelint___stylelint_10.1.0.tgz";
+ path = fetchurl {
+ name = "stylelint___stylelint_10.1.0.tgz";
+ url = "https://registry.yarnpkg.com/stylelint/-/stylelint-10.1.0.tgz";
+ sha1 = "1bc4c4ce878107e7c396b19226d91ba28268911a";
+ };
+ }
+ {
+ name = "sugarss___sugarss_2.0.0.tgz";
+ path = fetchurl {
+ name = "sugarss___sugarss_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz";
+ sha1 = "ddd76e0124b297d40bf3cca31c8b22ecb43bc61d";
+ };
+ }
+ {
+ name = "supports_color___supports_color_6.1.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
+ sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
+ };
+ }
+ {
+ 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_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 = "supports_color___supports_color_7.2.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
+ sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
+ };
+ }
+ {
+ name = "supports_hyperlinks___supports_hyperlinks_2.1.0.tgz";
+ path = fetchurl {
+ name = "supports_hyperlinks___supports_hyperlinks_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz";
+ sha1 = "f663df252af5f37c5d49bbd7eeefa9e0b9e59e47";
+ };
+ }
+ {
+ name = "svg_tags___svg_tags_1.0.0.tgz";
+ path = fetchurl {
+ name = "svg_tags___svg_tags_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz";
+ sha1 = "58f71cee3bd519b59d4b2a843b6c7de64ac04764";
+ };
+ }
+ {
+ name = "swagger_ui_dist___swagger_ui_dist_3.32.4.tgz";
+ path = fetchurl {
+ name = "swagger_ui_dist___swagger_ui_dist_3.32.4.tgz";
+ url = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.32.4.tgz";
+ sha1 = "6fa920a99e38eaaf129580ac158cf730494a2190";
+ };
+ }
+ {
+ 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 = "symbol_tree___symbol_tree_3.2.4.tgz";
+ path = fetchurl {
+ name = "symbol_tree___symbol_tree_3.2.4.tgz";
+ url = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz";
+ sha1 = "430637d248ba77e078883951fb9aa0eed7c63fa2";
+ };
+ }
+ {
+ name = "table___table_5.4.4.tgz";
+ path = fetchurl {
+ name = "table___table_5.4.4.tgz";
+ url = "https://registry.yarnpkg.com/table/-/table-5.4.4.tgz";
+ sha1 = "6e0f88fdae3692793d1077fd172a4667afe986a6";
+ };
+ }
+ {
+ name = "taffydb___taffydb_2.6.2.tgz";
+ path = fetchurl {
+ name = "taffydb___taffydb_2.6.2.tgz";
+ url = "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz";
+ sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
+ };
+ }
+ {
+ name = "tapable___tapable_0.1.10.tgz";
+ path = fetchurl {
+ name = "tapable___tapable_0.1.10.tgz";
+ url = "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz";
+ sha1 = "29c35707c2b70e50d07482b5d202e8ed446dafd4";
+ };
+ }
+ {
+ name = "tapable___tapable_1.1.3.tgz";
+ path = fetchurl {
+ name = "tapable___tapable_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz";
+ sha1 = "a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2";
+ };
+ }
+ {
+ name = "tar___tar_2.2.2.tgz";
+ path = fetchurl {
+ name = "tar___tar_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz";
+ sha1 = "0ca8848562c7299b8b446ff6a4d60cdbb23edc40";
+ };
+ }
+ {
+ name = "term_size___term_size_2.2.0.tgz";
+ path = fetchurl {
+ name = "term_size___term_size_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz";
+ sha1 = "1f16adedfe9bdc18800e1776821734086fcc6753";
+ };
+ }
+ {
+ name = "terminal_link___terminal_link_2.1.1.tgz";
+ path = fetchurl {
+ name = "terminal_link___terminal_link_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz";
+ sha1 = "14a64a27ab3c0df933ea546fba55f2d078edc994";
+ };
+ }
+ {
+ name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
+ path = fetchurl {
+ name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
+ url = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
+ sha1 = "5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c";
+ };
+ }
+ {
+ name = "terser___terser_4.3.1.tgz";
+ path = fetchurl {
+ name = "terser___terser_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz";
+ sha1 = "09820bcb3398299c4b48d9a86aefc65127d0ed65";
+ };
+ }
+ {
+ name = "test_exclude___test_exclude_6.0.0.tgz";
+ path = fetchurl {
+ name = "test_exclude___test_exclude_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz";
+ sha1 = "04a8698661d805ea6fa293b6cb9e63ac044ef15e";
+ };
+ }
+ {
+ 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 = "textextensions___textextensions_2.2.0.tgz";
+ path = fetchurl {
+ name = "textextensions___textextensions_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/textextensions/-/textextensions-2.2.0.tgz";
+ sha1 = "38ac676151285b658654581987a0ce1a4490d286";
+ };
+ }
+ {
+ name = "three_orbit_controls___three_orbit_controls_82.1.0.tgz";
+ path = fetchurl {
+ name = "three_orbit_controls___three_orbit_controls_82.1.0.tgz";
+ url = "https://registry.yarnpkg.com/three-orbit-controls/-/three-orbit-controls-82.1.0.tgz";
+ sha1 = "11a7f33d0a20ecec98f098b37780f6537374fab4";
+ };
+ }
+ {
+ name = "three_stl_loader___three_stl_loader_1.0.4.tgz";
+ path = fetchurl {
+ name = "three_stl_loader___three_stl_loader_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/three-stl-loader/-/three-stl-loader-1.0.4.tgz";
+ sha1 = "6b3319a31e3b910aab1883d19b00c81a663c3e03";
+ };
+ }
+ {
+ name = "three___three_0.84.0.tgz";
+ path = fetchurl {
+ name = "three___three_0.84.0.tgz";
+ url = "https://registry.yarnpkg.com/three/-/three-0.84.0.tgz";
+ sha1 = "95be85a55a0fa002aa625ed559130957dcffd918";
+ };
+ }
+ {
+ name = "throat___throat_5.0.0.tgz";
+ path = fetchurl {
+ name = "throat___throat_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz";
+ sha1 = "c5199235803aad18754a667d659b5e72ce16764b";
+ };
+ }
+ {
+ name = "throttle_debounce___throttle_debounce_2.1.0.tgz";
+ path = fetchurl {
+ name = "throttle_debounce___throttle_debounce_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz";
+ sha1 = "257e648f0a56bd9e54fe0f132c4ab8611df4e1d5";
+ };
+ }
+ {
+ name = "through2___through2_2.0.5.tgz";
+ path = fetchurl {
+ name = "through2___through2_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
+ sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
+ };
+ }
+ {
+ 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 = "thunky___thunky_0.1.0.tgz";
+ path = fetchurl {
+ name = "thunky___thunky_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz";
+ sha1 = "bf30146824e2b6e67b0f2d7a4ac8beb26908684e";
+ };
+ }
+ {
+ name = "timeago.js___timeago.js_4.0.2.tgz";
+ path = fetchurl {
+ name = "timeago.js___timeago.js_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/timeago.js/-/timeago.js-4.0.2.tgz";
+ sha1 = "724e8c8833e3490676c7bb0a75f5daf20e558028";
+ };
+ }
+ {
+ name = "timers_browserify___timers_browserify_2.0.10.tgz";
+ path = fetchurl {
+ name = "timers_browserify___timers_browserify_2.0.10.tgz";
+ url = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz";
+ sha1 = "1d28e3d2aadf1d5a5996c4e9f95601cd053480ae";
+ };
+ }
+ {
+ name = "timezone_mock___timezone_mock_1.0.8.tgz";
+ path = fetchurl {
+ name = "timezone_mock___timezone_mock_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/timezone-mock/-/timezone-mock-1.0.8.tgz";
+ sha1 = "1b9f7af13f2bf84b7aa3d3d6e24aa17255b6037d";
+ };
+ }
+ {
+ name = "tiny_emitter___tiny_emitter_2.0.2.tgz";
+ path = fetchurl {
+ name = "tiny_emitter___tiny_emitter_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz";
+ sha1 = "82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c";
+ };
+ }
+ {
+ name = "tiptap_commands___tiptap_commands_1.4.0.tgz";
+ path = fetchurl {
+ name = "tiptap_commands___tiptap_commands_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.4.0.tgz";
+ sha1 = "0cfb3ac138ee3099de56114cb119abd841fbcbe7";
+ };
+ }
+ {
+ name = "tiptap_extensions___tiptap_extensions_1.8.0.tgz";
+ path = fetchurl {
+ name = "tiptap_extensions___tiptap_extensions_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.8.0.tgz";
+ sha1 = "3067620a024f1a9e5fae4450790b143d7ebe4394";
+ };
+ }
+ {
+ name = "tiptap_utils___tiptap_utils_1.1.1.tgz";
+ path = fetchurl {
+ name = "tiptap_utils___tiptap_utils_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.1.1.tgz";
+ sha1 = "e7aad3e84eb35f7abed704d15da0420029789d0d";
+ };
+ }
+ {
+ name = "tiptap___tiptap_1.8.0.tgz";
+ path = fetchurl {
+ name = "tiptap___tiptap_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/tiptap/-/tiptap-1.8.0.tgz";
+ sha1 = "c671188075ffa5ee4f86470f95818fd9ce6f1040";
+ };
+ }
+ {
+ 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 = "tmpl___tmpl_1.0.4.tgz";
+ path = fetchurl {
+ name = "tmpl___tmpl_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz";
+ sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
+ };
+ }
+ {
+ name = "to_array___to_array_0.1.4.tgz";
+ path = fetchurl {
+ name = "to_array___to_array_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz";
+ sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890";
+ };
+ }
+ {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ path = fetchurl {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+ sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+ };
+ }
+ {
+ 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_readable_stream___to_readable_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
+ sha1 = "ce0aa0c2f3df6adf852efb404a783e77c0475771";
+ };
+ }
+ {
+ 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_range___to_regex_range_5.0.1.tgz";
+ path = fetchurl {
+ name = "to_regex_range___to_regex_range_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
+ sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
+ };
+ }
+ {
+ 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 = "toggle_selection___toggle_selection_1.0.6.tgz";
+ path = fetchurl {
+ name = "toggle_selection___toggle_selection_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz";
+ sha1 = "6e45b1263f2017fa0acc7d89d78b15b8bf77da32";
+ };
+ }
+ {
+ name = "toidentifier___toidentifier_1.0.0.tgz";
+ path = fetchurl {
+ name = "toidentifier___toidentifier_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz";
+ sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553";
+ };
+ }
+ {
+ name = "touch___touch_3.1.0.tgz";
+ path = fetchurl {
+ name = "touch___touch_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz";
+ sha1 = "fe365f5f75ec9ed4e56825e0bb76d24ab74af83b";
+ };
+ }
+ {
+ name = "tough_cookie___tough_cookie_2.5.0.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
+ sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
+ };
+ }
+ {
+ name = "tough_cookie___tough_cookie_3.0.1.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz";
+ sha1 = "9df4f57e739c26930a018184887f4adb7dca73b2";
+ };
+ }
+ {
+ name = "tr46___tr46_2.0.2.tgz";
+ path = fetchurl {
+ name = "tr46___tr46_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz";
+ sha1 = "03273586def1595ae08fedb38d7733cee91d2479";
+ };
+ }
+ {
+ name = "tributejs___tributejs_5.1.3.tgz";
+ path = fetchurl {
+ name = "tributejs___tributejs_5.1.3.tgz";
+ url = "https://registry.yarnpkg.com/tributejs/-/tributejs-5.1.3.tgz";
+ sha1 = "980600fc72865be5868893078b4bfde721129eae";
+ };
+ }
+ {
+ name = "trim_newlines___trim_newlines_1.0.0.tgz";
+ path = fetchurl {
+ name = "trim_newlines___trim_newlines_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz";
+ sha1 = "5887966bb582a4503a41eb524f7d35011815a613";
+ };
+ }
+ {
+ name = "trim_newlines___trim_newlines_2.0.0.tgz";
+ path = fetchurl {
+ name = "trim_newlines___trim_newlines_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz";
+ sha1 = "b403d0b91be50c331dfc4b82eeceb22c3de16d20";
+ };
+ }
+ {
+ name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
+ path = fetchurl {
+ name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz";
+ sha1 = "e0ec0810fd3c3f1730516b45f49083caaf2774d9";
+ };
+ }
+ {
+ name = "trim___trim_0.0.1.tgz";
+ path = fetchurl {
+ name = "trim___trim_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz";
+ sha1 = "5858547f6b290757ee95cccc666fb50084c460dd";
+ };
+ }
+ {
+ name = "trough___trough_1.0.3.tgz";
+ path = fetchurl {
+ name = "trough___trough_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz";
+ sha1 = "e29bd1614c6458d44869fc28b255ab7857ef7c24";
+ };
+ }
+ {
+ name = "true_case_path___true_case_path_1.0.3.tgz";
+ path = fetchurl {
+ name = "true_case_path___true_case_path_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz";
+ sha1 = "f813b5a8c86b40da59606722b144e3225799f47d";
+ };
+ }
+ {
+ name = "try_catch___try_catch_2.0.0.tgz";
+ path = fetchurl {
+ name = "try_catch___try_catch_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/try-catch/-/try-catch-2.0.0.tgz";
+ sha1 = "a491141d597f8b72b46757fe1c47059341a16aed";
+ };
+ }
+ {
+ name = "try_to_catch___try_to_catch_1.1.1.tgz";
+ path = fetchurl {
+ name = "try_to_catch___try_to_catch_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/try-to-catch/-/try-to-catch-1.1.1.tgz";
+ sha1 = "770162dd13b9a0e55da04db5b7f888956072038a";
+ };
+ }
+ {
+ name = "tryer___tryer_1.0.0.tgz";
+ path = fetchurl {
+ name = "tryer___tryer_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/tryer/-/tryer-1.0.0.tgz";
+ sha1 = "027b69fa823225e551cace3ef03b11f6ab37c1d7";
+ };
+ }
+ {
+ name = "ts_invariant___ts_invariant_0.4.4.tgz";
+ path = fetchurl {
+ name = "ts_invariant___ts_invariant_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz";
+ sha1 = "97a523518688f93aafad01b0e80eb803eb2abd86";
+ };
+ }
+ {
+ name = "ts_jest___ts_jest_26.4.1.tgz";
+ path = fetchurl {
+ name = "ts_jest___ts_jest_26.4.1.tgz";
+ url = "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.1.tgz";
+ sha1 = "08ec0d3fc2c3a39e4a46eae5610b69fafa6babd0";
+ };
+ }
+ {
+ name = "tslib___tslib_1.13.0.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.13.0.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz";
+ sha1 = "c881e13cc7015894ed914862d276436fa9a47043";
+ };
+ }
+ {
+ name = "tsutils___tsutils_3.17.1.tgz";
+ path = fetchurl {
+ name = "tsutils___tsutils_3.17.1.tgz";
+ url = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
+ sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
+ };
+ }
+ {
+ name = "tty_browserify___tty_browserify_0.0.0.tgz";
+ path = fetchurl {
+ name = "tty_browserify___tty_browserify_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz";
+ sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+ };
+ }
+ {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ path = fetchurl {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ }
+ {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ path = fetchurl {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ }
+ {
+ 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 = "type_detect___type_detect_4.0.8.tgz";
+ path = fetchurl {
+ name = "type_detect___type_detect_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz";
+ sha1 = "7646fb5f18871cfbb7749e69bd39a6388eb7450c";
+ };
+ }
+ {
+ name = "type_fest___type_fest_0.5.2.tgz";
+ path = fetchurl {
+ name = "type_fest___type_fest_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz";
+ sha1 = "d6ef42a0356c6cd45f49485c3b6281fc148e48a2";
+ };
+ }
+ {
+ name = "type_fest___type_fest_0.6.0.tgz";
+ path = fetchurl {
+ name = "type_fest___type_fest_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz";
+ sha1 = "8d2a2370d3df886eb5c90ada1c5bf6188acf838b";
+ };
+ }
+ {
+ name = "type_fest___type_fest_0.8.1.tgz";
+ path = fetchurl {
+ name = "type_fest___type_fest_0.8.1.tgz";
+ url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
+ sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
+ };
+ }
+ {
+ name = "type_is___type_is_1.6.18.tgz";
+ path = fetchurl {
+ name = "type_is___type_is_1.6.18.tgz";
+ url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz";
+ sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131";
+ };
+ }
+ {
+ name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+ path = fetchurl {
+ name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+ url = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+ sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
+ };
+ }
+ {
+ 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___typescript_3.9.7.tgz";
+ path = fetchurl {
+ name = "typescript___typescript_3.9.7.tgz";
+ url = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
+ sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
+ };
+ }
+ {
+ name = "uc.micro___uc.micro_1.0.5.tgz";
+ path = fetchurl {
+ name = "uc.micro___uc.micro_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.5.tgz";
+ sha1 = "0c65f15f815aa08b560a61ce8b4db7ffc3f45376";
+ };
+ }
+ {
+ name = "uglify_js___uglify_js_3.6.0.tgz";
+ path = fetchurl {
+ name = "uglify_js___uglify_js_3.6.0.tgz";
+ url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz";
+ sha1 = "704681345c53a8b2079fb6cec294b05ead242ff5";
+ };
+ }
+ {
+ name = "ultron___ultron_1.1.1.tgz";
+ path = fetchurl {
+ name = "ultron___ultron_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz";
+ sha1 = "9fe1536a10a664a65266a1e3ccf85fd36302bc9c";
+ };
+ }
+ {
+ name = "undefsafe___undefsafe_2.0.2.tgz";
+ path = fetchurl {
+ name = "undefsafe___undefsafe_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz";
+ sha1 = "225f6b9e0337663e0d8e7cfd686fc2836ccace76";
+ };
+ }
+ {
+ name = "underscore_contrib___underscore_contrib_0.3.0.tgz";
+ path = fetchurl {
+ name = "underscore_contrib___underscore_contrib_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz";
+ sha1 = "665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7";
+ };
+ }
+ {
+ name = "underscore___underscore_1.6.0.tgz";
+ path = fetchurl {
+ name = "underscore___underscore_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz";
+ sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
+ };
+ }
+ {
+ name = "underscore___underscore_1.8.3.tgz";
+ path = fetchurl {
+ name = "underscore___underscore_1.8.3.tgz";
+ url = "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz";
+ sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
+ };
+ }
+ {
+ name = "unherit___unherit_1.1.1.tgz";
+ path = fetchurl {
+ name = "unherit___unherit_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz";
+ sha1 = "132748da3e88eab767e08fabfbb89c5e9d28628c";
+ };
+ }
+ {
+ name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+ sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818";
+ };
+ }
+ {
+ name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+ sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c";
+ };
+ }
+ {
+ name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.2.0.tgz";
+ path = fetchurl {
+ name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
+ sha1 = "0d91f600eeeb3096aa962b1d6fc88876e64ea531";
+ };
+ }
+ {
+ name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz";
+ sha1 = "5a533f31b4317ea76f17d807fa0d116546111dd0";
+ };
+ }
+ {
+ name = "unified___unified_7.1.0.tgz";
+ path = fetchurl {
+ name = "unified___unified_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz";
+ sha1 = "5032f1c1ee3364bd09da12e27fdd4a7553c7be13";
+ };
+ }
+ {
+ name = "union_value___union_value_1.0.1.tgz";
+ path = fetchurl {
+ name = "union_value___union_value_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
+ sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
+ };
+ }
+ {
+ name = "uniq___uniq_1.0.1.tgz";
+ path = fetchurl {
+ name = "uniq___uniq_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
+ sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+ };
+ }
+ {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ path = fetchurl {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
+ sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
+ };
+ }
+ {
+ name = "unique_slug___unique_slug_2.0.0.tgz";
+ path = fetchurl {
+ name = "unique_slug___unique_slug_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz";
+ sha1 = "db6676e7c7cc0629878ff196097c78855ae9f4ab";
+ };
+ }
+ {
+ name = "unique_string___unique_string_2.0.0.tgz";
+ path = fetchurl {
+ name = "unique_string___unique_string_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz";
+ sha1 = "39c6451f81afb2749de2b233e3f7c5e8843bd89d";
+ };
+ }
+ {
+ name = "unist_util_find_all_after___unist_util_find_all_after_1.0.2.tgz";
+ path = fetchurl {
+ name = "unist_util_find_all_after___unist_util_find_all_after_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz";
+ sha1 = "9be49cfbae5ca1566b27536670a92836bf2f8d6d";
+ };
+ }
+ {
+ name = "unist_util_is___unist_util_is_2.1.2.tgz";
+ path = fetchurl {
+ name = "unist_util_is___unist_util_is_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz";
+ sha1 = "1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db";
+ };
+ }
+ {
+ name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
+ path = fetchurl {
+ name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz";
+ sha1 = "86b5dad104d0bbfbeb1db5f5c92f3570575c12cb";
+ };
+ }
+ {
+ name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
+ path = fetchurl {
+ name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz";
+ sha1 = "3f37fcf351279dcbca7480ab5889bb8a832ee1c6";
+ };
+ }
+ {
+ name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
+ path = fetchurl {
+ name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz";
+ sha1 = "63fffc8929027bee04bfef7d2cce474f71cb6217";
+ };
+ }
+ {
+ name = "unist_util_visit___unist_util_visit_1.4.1.tgz";
+ path = fetchurl {
+ name = "unist_util_visit___unist_util_visit_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz";
+ sha1 = "4724aaa8486e6ee6e26d7ff3c8685960d560b1e3";
+ };
+ }
+ {
+ name = "universalify___universalify_0.1.2.tgz";
+ path = fetchurl {
+ name = "universalify___universalify_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
+ sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+ };
+ }
+ {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ path = fetchurl {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ }
+ {
+ 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 = "update_notifier___update_notifier_4.1.0.tgz";
+ path = fetchurl {
+ name = "update_notifier___update_notifier_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz";
+ sha1 = "4866b98c3bc5b5473c020b1250583628f9a328f3";
+ };
+ }
+ {
+ name = "upper_case___upper_case_1.1.3.tgz";
+ path = fetchurl {
+ name = "upper_case___upper_case_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz";
+ sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
+ };
+ }
+ {
+ name = "uri_js___uri_js_4.4.0.tgz";
+ path = fetchurl {
+ name = "uri_js___uri_js_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz";
+ sha1 = "aa714261de793e8a82347a7bcc9ce74e86f28602";
+ };
+ }
+ {
+ 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 = "url_loader___url_loader_3.0.0.tgz";
+ path = fetchurl {
+ name = "url_loader___url_loader_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/url-loader/-/url-loader-3.0.0.tgz";
+ sha1 = "9f1f11b371acf6e51ed15a50db635e02eec18368";
+ };
+ }
+ {
+ name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
+ path = fetchurl {
+ name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz";
+ sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
+ };
+ }
+ {
+ name = "url_parse___url_parse_1.4.4.tgz";
+ path = fetchurl {
+ name = "url_parse___url_parse_1.4.4.tgz";
+ url = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz";
+ sha1 = "cac1556e95faa0303691fec5cf9d5a1bc34648f8";
+ };
+ }
+ {
+ name = "url_search_params_polyfill___url_search_params_polyfill_5.1.0.tgz";
+ path = fetchurl {
+ name = "url_search_params_polyfill___url_search_params_polyfill_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/url-search-params-polyfill/-/url-search-params-polyfill-5.1.0.tgz";
+ sha1 = "f0405dcc2e921bf7f5fdf8c4e616f1e8088ef31b";
+ };
+ }
+ {
+ name = "url___url_0.10.3.tgz";
+ path = fetchurl {
+ name = "url___url_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz";
+ sha1 = "021e4d9c7705f21bbf37d03ceb58767402774c64";
+ };
+ }
+ {
+ name = "url___url_0.11.0.tgz";
+ path = fetchurl {
+ name = "url___url_0.11.0.tgz";
+ url = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
+ sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+ };
+ }
+ {
+ 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 = "useragent___useragent_2.3.0.tgz";
+ path = fetchurl {
+ name = "useragent___useragent_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz";
+ sha1 = "217f943ad540cb2128658ab23fc960f6a88c9972";
+ };
+ }
+ {
+ 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 = "util___util_0.10.3.tgz";
+ path = fetchurl {
+ name = "util___util_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
+ sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+ };
+ }
+ {
+ name = "util___util_0.11.1.tgz";
+ path = fetchurl {
+ name = "util___util_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz";
+ sha1 = "3236733720ec64bb27f6e26f421aaa2e1b588d61";
+ };
+ }
+ {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ path = fetchurl {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ }
+ {
+ name = "uuid___uuid_3.3.2.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
+ sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
+ };
+ }
+ {
+ name = "uuid___uuid_8.1.0.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-8.1.0.tgz";
+ sha1 = "6f1536eb43249f473abc6bd58ff983da1ca30d8d";
+ };
+ }
+ {
+ name = "uuid___uuid_3.4.0.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
+ sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
+ };
+ }
+ {
+ name = "uuid___uuid_8.3.1.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_8.3.1.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz";
+ sha1 = "2ba2e6ca000da60fce5a196954ab241131e05a31";
+ };
+ }
+ {
+ name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
+ path = fetchurl {
+ name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
+ sha1 = "00f7494d2ae2b688cfe2899df6ed2c54bef91dbe";
+ };
+ }
+ {
+ name = "v8_to_istanbul___v8_to_istanbul_5.0.1.tgz";
+ path = fetchurl {
+ name = "v8_to_istanbul___v8_to_istanbul_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz";
+ sha1 = "0608f5b49a481458625edb058488607f25498ba5";
+ };
+ }
+ {
+ 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 = "vary___vary_1.1.2.tgz";
+ path = fetchurl {
+ name = "vary___vary_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ }
+ {
+ name = "verror___verror_1.10.0.tgz";
+ path = fetchurl {
+ name = "verror___verror_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ }
+ {
+ name = "vfile_location___vfile_location_2.0.4.tgz";
+ path = fetchurl {
+ name = "vfile_location___vfile_location_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.4.tgz";
+ sha1 = "2a5e7297dd0d9e2da4381464d04acc6b834d3e55";
+ };
+ }
+ {
+ name = "vfile_message___vfile_message_1.1.1.tgz";
+ path = fetchurl {
+ name = "vfile_message___vfile_message_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz";
+ sha1 = "5833ae078a1dfa2d96e9647886cd32993ab313e1";
+ };
+ }
+ {
+ name = "vfile___vfile_3.0.1.tgz";
+ path = fetchurl {
+ name = "vfile___vfile_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz";
+ sha1 = "47331d2abe3282424f4a4bb6acd20a44c4121803";
+ };
+ }
+ {
+ name = "visibilityjs___visibilityjs_1.2.4.tgz";
+ path = fetchurl {
+ name = "visibilityjs___visibilityjs_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/visibilityjs/-/visibilityjs-1.2.4.tgz";
+ sha1 = "bff8663da62c8c10ad4ee5ae6a1ae6fac4259d63";
+ };
+ }
+ {
+ name = "vm_browserify___vm_browserify_1.1.0.tgz";
+ path = fetchurl {
+ name = "vm_browserify___vm_browserify_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz";
+ sha1 = "bd76d6a23323e2ca8ffa12028dc04559c75f9019";
+ };
+ }
+ {
+ name = "void_elements___void_elements_2.0.1.tgz";
+ path = fetchurl {
+ name = "void_elements___void_elements_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz";
+ sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
+ };
+ }
+ {
+ name = "vscode_json_languageservice___vscode_json_languageservice_3.9.1.tgz";
+ path = fetchurl {
+ name = "vscode_json_languageservice___vscode_json_languageservice_3.9.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.9.1.tgz";
+ sha1 = "f72b581f8cd2bd9b47445ccf8b0ddcde6aba7483";
+ };
+ }
+ {
+ name = "vscode_jsonrpc___vscode_jsonrpc_4.0.0.tgz";
+ path = fetchurl {
+ name = "vscode_jsonrpc___vscode_jsonrpc_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz";
+ sha1 = "a7bf74ef3254d0a0c272fab15c82128e378b3be9";
+ };
+ }
+ {
+ name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.14.1.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.14.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz";
+ sha1 = "b8aab6afae2849c84a8983d39a1cf742417afe2f";
+ };
+ }
+ {
+ name = "vscode_languageserver_textdocument___vscode_languageserver_textdocument_1.0.1.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_textdocument___vscode_languageserver_textdocument_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz";
+ sha1 = "178168e87efad6171b372add1dea34f53e5d330f";
+ };
+ }
+ {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.14.0.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.14.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz";
+ sha1 = "d3b5952246d30e5241592b6dde8280e03942e743";
+ };
+ }
+ {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.16.0_next.2.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.16.0_next.2.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz";
+ sha1 = "940bd15c992295a65eae8ab6b8568a1e8daa3083";
+ };
+ }
+ {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.15.1.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver_types___vscode_languageserver_types_3.15.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz";
+ sha1 = "17be71d78d2f6236d414f0001ce1ef4d23e6b6de";
+ };
+ }
+ {
+ name = "vscode_languageserver___vscode_languageserver_5.2.1.tgz";
+ path = fetchurl {
+ name = "vscode_languageserver___vscode_languageserver_5.2.1.tgz";
+ url = "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz";
+ sha1 = "0d2feddd33f92aadf5da32450df498d52f6f14eb";
+ };
+ }
+ {
+ name = "vscode_nls___vscode_nls_4.1.2.tgz";
+ path = fetchurl {
+ name = "vscode_nls___vscode_nls_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz";
+ sha1 = "ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167";
+ };
+ }
+ {
+ name = "vscode_nls___vscode_nls_5.0.0.tgz";
+ path = fetchurl {
+ name = "vscode_nls___vscode_nls_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz";
+ sha1 = "99f0da0bd9ea7cda44e565a74c54b1f2bc257840";
+ };
+ }
+ {
+ name = "vscode_uri___vscode_uri_1.0.8.tgz";
+ path = fetchurl {
+ name = "vscode_uri___vscode_uri_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz";
+ sha1 = "9769aaececae4026fb6e22359cb38946580ded59";
+ };
+ }
+ {
+ name = "vscode_uri___vscode_uri_2.1.2.tgz";
+ path = fetchurl {
+ name = "vscode_uri___vscode_uri_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz";
+ sha1 = "c8d40de93eb57af31f3c715dd650e2ca2c096f1c";
+ };
+ }
+ {
+ name = "vue_apollo___vue_apollo_3.0.3.tgz";
+ path = fetchurl {
+ name = "vue_apollo___vue_apollo_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.3.tgz";
+ sha1 = "7f29558df76eec0f03251847eef153816a261827";
+ };
+ }
+ {
+ name = "vue_eslint_parser___vue_eslint_parser_7.0.0.tgz";
+ path = fetchurl {
+ name = "vue_eslint_parser___vue_eslint_parser_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz";
+ sha1 = "a4ed2669f87179dedd06afdd8736acbb3a3864d6";
+ };
+ }
+ {
+ name = "vue_functional_data_merge___vue_functional_data_merge_3.1.0.tgz";
+ path = fetchurl {
+ name = "vue_functional_data_merge___vue_functional_data_merge_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz";
+ sha1 = "08a7797583b7f35680587f8a1d51d729aa1dc657";
+ };
+ }
+ {
+ name = "vue_hot_reload_api___vue_hot_reload_api_2.3.0.tgz";
+ path = fetchurl {
+ name = "vue_hot_reload_api___vue_hot_reload_api_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz";
+ sha1 = "97976142405d13d8efae154749e88c4e358cf926";
+ };
+ }
+ {
+ name = "vue_jest___vue_jest_4.0.0_rc.0.tgz";
+ path = fetchurl {
+ name = "vue_jest___vue_jest_4.0.0_rc.0.tgz";
+ url = "https://registry.yarnpkg.com/vue-jest/-/vue-jest-4.0.0-rc.0.tgz";
+ sha1 = "0ce263c7f923441d0eeb99841620e8e9470336f4";
+ };
+ }
+ {
+ name = "vue_loader___vue_loader_15.9.3.tgz";
+ path = fetchurl {
+ name = "vue_loader___vue_loader_15.9.3.tgz";
+ url = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.3.tgz";
+ sha1 = "0de35d9e555d3ed53969516cac5ce25531299dda";
+ };
+ }
+ {
+ name = "vue_router___vue_router_3.4.5.tgz";
+ path = fetchurl {
+ name = "vue_router___vue_router_3.4.5.tgz";
+ url = "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.5.tgz";
+ sha1 = "d396ec037b35931bdd1e9b7edd86f9788dc15175";
+ };
+ }
+ {
+ name = "vue_runtime_helpers___vue_runtime_helpers_1.1.2.tgz";
+ path = fetchurl {
+ name = "vue_runtime_helpers___vue_runtime_helpers_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vue-runtime-helpers/-/vue-runtime-helpers-1.1.2.tgz";
+ sha1 = "446b7b820888ab0c5264d2c3a32468e72e4100f3";
+ };
+ }
+ {
+ name = "vue_style_loader___vue_style_loader_4.1.0.tgz";
+ path = fetchurl {
+ name = "vue_style_loader___vue_style_loader_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.0.tgz";
+ sha1 = "7588bd778e2c9f8d87bfc3c5a4a039638da7a863";
+ };
+ }
+ {
+ name = "vue_template_compiler___vue_template_compiler_2.6.12.tgz";
+ path = fetchurl {
+ name = "vue_template_compiler___vue_template_compiler_2.6.12.tgz";
+ url = "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz";
+ sha1 = "947ed7196744c8a5285ebe1233fe960437fcc57e";
+ };
+ }
+ {
+ name = "vue_template_es2015_compiler___vue_template_es2015_compiler_1.9.1.tgz";
+ path = fetchurl {
+ name = "vue_template_es2015_compiler___vue_template_es2015_compiler_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz";
+ sha1 = "1ee3bc9a16ecbf5118be334bb15f9c46f82f5825";
+ };
+ }
+ {
+ name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.4.tgz";
+ path = fetchurl {
+ name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.4.tgz";
+ url = "https://registry.yarnpkg.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.4.4.tgz";
+ sha1 = "5fca7a13f785899bbfb70471ec4fe222437d8495";
+ };
+ }
+ {
+ name = "vue___vue_2.6.12.tgz";
+ path = fetchurl {
+ name = "vue___vue_2.6.12.tgz";
+ url = "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz";
+ sha1 = "f5ebd4fa6bd2869403e29a896aed4904456c9123";
+ };
+ }
+ {
+ name = "vuedraggable___vuedraggable_2.23.0.tgz";
+ path = fetchurl {
+ name = "vuedraggable___vuedraggable_2.23.0.tgz";
+ url = "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.23.0.tgz";
+ sha1 = "1f4a5a601675a5dbf0d96ee61aebfffa43445262";
+ };
+ }
+ {
+ name = "vuex___vuex_3.5.1.tgz";
+ path = fetchurl {
+ name = "vuex___vuex_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/vuex/-/vuex-3.5.1.tgz";
+ sha1 = "f1b8dcea649bc25254cf4f4358081dbf5da18b3d";
+ };
+ }
+ {
+ name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
+ path = fetchurl {
+ name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz";
+ sha1 = "0a89cdf5cc15822df9c360543676963e0cc308cd";
+ };
+ }
+ {
+ name = "w3c_keyname___w3c_keyname_1.1.8.tgz";
+ path = fetchurl {
+ name = "w3c_keyname___w3c_keyname_1.1.8.tgz";
+ url = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-1.1.8.tgz";
+ sha1 = "4e2219663760fd6535b7a1550f1552d71fc9372c";
+ };
+ }
+ {
+ name = "w3c_xmlserializer___w3c_xmlserializer_2.0.0.tgz";
+ path = fetchurl {
+ name = "w3c_xmlserializer___w3c_xmlserializer_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz";
+ sha1 = "3e7104a05b75146cc60f564380b7f683acf1020a";
+ };
+ }
+ {
+ name = "walker___walker_1.0.7.tgz";
+ path = fetchurl {
+ name = "walker___walker_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz";
+ sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
+ };
+ }
+ {
+ name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
+ path = fetchurl {
+ name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz";
+ sha1 = "9948a1866cbbd6cb824dea13a7ed691f6c8ddff0";
+ };
+ }
+ {
+ name = "watchpack___watchpack_1.7.2.tgz";
+ path = fetchurl {
+ name = "watchpack___watchpack_1.7.2.tgz";
+ url = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz";
+ sha1 = "c02e4d4d49913c3e7e122c3325365af9d331e9aa";
+ };
+ }
+ {
+ name = "wbuf___wbuf_1.7.3.tgz";
+ path = fetchurl {
+ name = "wbuf___wbuf_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz";
+ sha1 = "c1d8d149316d3ea852848895cb6a0bfe887b87df";
+ };
+ }
+ {
+ name = "web_vitals___web_vitals_0.2.4.tgz";
+ path = fetchurl {
+ name = "web_vitals___web_vitals_0.2.4.tgz";
+ url = "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.4.tgz";
+ sha1 = "ec3df43c834a207fd7cdefd732b2987896e08511";
+ };
+ }
+ {
+ name = "webidl_conversions___webidl_conversions_5.0.0.tgz";
+ path = fetchurl {
+ name = "webidl_conversions___webidl_conversions_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz";
+ sha1 = "ae59c8a00b121543a2acc65c0434f57b0fc11aff";
+ };
+ }
+ {
+ name = "webidl_conversions___webidl_conversions_6.1.0.tgz";
+ path = fetchurl {
+ name = "webidl_conversions___webidl_conversions_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz";
+ sha1 = "9111b4d7ea80acd40f5270d666621afa78b69514";
+ };
+ }
+ {
+ name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
+ path = fetchurl {
+ name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz";
+ sha1 = "39b3a8f829ca044682bc6f9e011c95deb554aefd";
+ };
+ }
+ {
+ name = "webpack_cli___webpack_cli_3.3.11.tgz";
+ path = fetchurl {
+ name = "webpack_cli___webpack_cli_3.3.11.tgz";
+ url = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz";
+ sha1 = "3bf21889bf597b5d82c38f215135a411edfdc631";
+ };
+ }
+ {
+ name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
+ path = fetchurl {
+ name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
+ url = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
+ sha1 = "0019c3db716e3fa5cecbf64f2ab88a74bab331f3";
+ };
+ }
+ {
+ name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
+ path = fetchurl {
+ name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
+ url = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
+ sha1 = "f35945036813e57ef582c2420ef7b470e14d3af0";
+ };
+ }
+ {
+ name = "webpack_log___webpack_log_2.0.0.tgz";
+ path = fetchurl {
+ name = "webpack_log___webpack_log_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz";
+ sha1 = "5b7928e0637593f119d32f6227c1e0ac31e1b47f";
+ };
+ }
+ {
+ name = "webpack_sources___webpack_sources_1.4.3.tgz";
+ path = fetchurl {
+ name = "webpack_sources___webpack_sources_1.4.3.tgz";
+ url = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz";
+ sha1 = "eedd8ec0b928fbf1cbfe994e22d2d890f330a933";
+ };
+ }
+ {
+ name = "webpack_stats_plugin___webpack_stats_plugin_0.3.1.tgz";
+ path = fetchurl {
+ name = "webpack_stats_plugin___webpack_stats_plugin_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.3.1.tgz";
+ sha1 = "1103c39a305a4e6ba15d5078db84bc0b35447417";
+ };
+ }
+ {
+ name = "webpack___webpack_4.42.0.tgz";
+ path = fetchurl {
+ name = "webpack___webpack_4.42.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz";
+ sha1 = "b901635dd6179391d90740a63c93f76f39883eb8";
+ };
+ }
+ {
+ name = "websocket_driver___websocket_driver_0.6.5.tgz";
+ path = fetchurl {
+ name = "websocket_driver___websocket_driver_0.6.5.tgz";
+ url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz";
+ sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
+ };
+ }
+ {
+ name = "websocket_extensions___websocket_extensions_0.1.1.tgz";
+ path = fetchurl {
+ name = "websocket_extensions___websocket_extensions_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz";
+ sha1 = "76899499c184b6ef754377c2dbb0cd6cb55d29e7";
+ };
+ }
+ {
+ name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
+ path = fetchurl {
+ name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
+ sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0";
+ };
+ }
+ {
+ name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
+ path = fetchurl {
+ name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
+ sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf";
+ };
+ }
+ {
+ name = "whatwg_url___whatwg_url_8.1.0.tgz";
+ path = fetchurl {
+ name = "whatwg_url___whatwg_url_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.1.0.tgz";
+ sha1 = "c628acdcf45b82274ce7281ee31dd3c839791771";
+ };
+ }
+ {
+ 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 = "which___which_2.0.2.tgz";
+ path = fetchurl {
+ name = "which___which_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
+ sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
+ };
+ }
+ {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ path = fetchurl {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+ sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+ };
+ }
+ {
+ name = "widest_line___widest_line_3.1.0.tgz";
+ path = fetchurl {
+ name = "widest_line___widest_line_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz";
+ sha1 = "8292333bbf66cb45ff0de1603b136b7ae1496eca";
+ };
+ }
+ {
+ name = "word_wrap___word_wrap_1.2.3.tgz";
+ path = fetchurl {
+ name = "word_wrap___word_wrap_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
+ sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
+ };
+ }
+ {
+ name = "wordwrap___wordwrap_0.0.3.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz";
+ sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
+ };
+ }
+ {
+ name = "worker_farm___worker_farm_1.7.0.tgz";
+ path = fetchurl {
+ name = "worker_farm___worker_farm_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz";
+ sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8";
+ };
+ }
+ {
+ name = "worker_loader___worker_loader_2.0.0.tgz";
+ path = fetchurl {
+ name = "worker_loader___worker_loader_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz";
+ sha1 = "45fda3ef76aca815771a89107399ee4119b430ac";
+ };
+ }
+ {
+ 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_5.1.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+ sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09";
+ };
+ }
+ {
+ name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+ sha1 = "e9393ba07102e6c91a3b221478f0257cd2856e53";
+ };
+ }
+ {
+ 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_file_atomic___write_file_atomic_3.0.3.tgz";
+ path = fetchurl {
+ name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+ sha1 = "56bd5c5a5c70481cd19c571bd39ab965a5de56e8";
+ };
+ }
+ {
+ name = "write___write_1.0.3.tgz";
+ path = fetchurl {
+ name = "write___write_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
+ sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
+ };
+ }
+ {
+ name = "ws___ws_6.2.1.tgz";
+ path = fetchurl {
+ name = "ws___ws_6.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz";
+ sha1 = "442fdf0a47ed64f59b6a5d8ff130f4748ed524fb";
+ };
+ }
+ {
+ name = "ws___ws_7.3.0.tgz";
+ path = fetchurl {
+ name = "ws___ws_7.3.0.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz";
+ sha1 = "4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd";
+ };
+ }
+ {
+ name = "ws___ws_3.3.3.tgz";
+ path = fetchurl {
+ name = "ws___ws_3.3.3.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz";
+ sha1 = "f1cf84fe2d5e901ebce94efaece785f187a228f2";
+ };
+ }
+ {
+ name = "x_is_string___x_is_string_0.1.0.tgz";
+ path = fetchurl {
+ name = "x_is_string___x_is_string_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz";
+ sha1 = "474b50865af3a49a9c4657f05acd145458f77d82";
+ };
+ }
+ {
+ name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
+ path = fetchurl {
+ name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz";
+ sha1 = "4bc8d9984403696225ef83a1573cbbcb4e79db13";
+ };
+ }
+ {
+ name = "xhr_mock___xhr_mock_2.5.1.tgz";
+ path = fetchurl {
+ name = "xhr_mock___xhr_mock_2.5.1.tgz";
+ url = "https://registry.yarnpkg.com/xhr-mock/-/xhr-mock-2.5.1.tgz";
+ sha1 = "c591498a8269cc1ce5fefac20d590357affd348b";
+ };
+ }
+ {
+ name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
+ path = fetchurl {
+ name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
+ sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a";
+ };
+ }
+ {
+ name = "xml2js___xml2js_0.4.19.tgz";
+ path = fetchurl {
+ name = "xml2js___xml2js_0.4.19.tgz";
+ url = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz";
+ sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7";
+ };
+ }
+ {
+ name = "xml___xml_1.0.1.tgz";
+ path = fetchurl {
+ name = "xml___xml_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz";
+ sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
+ };
+ }
+ {
+ name = "xmlbuilder___xmlbuilder_8.2.2.tgz";
+ path = fetchurl {
+ name = "xmlbuilder___xmlbuilder_8.2.2.tgz";
+ url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz";
+ sha1 = "69248673410b4ba42e1a6136551d2922335aa773";
+ };
+ }
+ {
+ name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+ path = fetchurl {
+ name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+ url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
+ sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
+ };
+ }
+ {
+ name = "xmlchars___xmlchars_2.2.0.tgz";
+ path = fetchurl {
+ name = "xmlchars___xmlchars_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz";
+ sha1 = "060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb";
+ };
+ }
+ {
+ name = "xmlcreate___xmlcreate_1.0.2.tgz";
+ path = fetchurl {
+ name = "xmlcreate___xmlcreate_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz";
+ sha1 = "fa6bf762a60a413fb3dd8f4b03c5b269238d308f";
+ };
+ }
+ {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
+ path = fetchurl {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
+ url = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz";
+ sha1 = "c2876b06168aadc40e57d97e81191ac8f4398b3e";
+ };
+ }
+ {
+ name = "xtend___xtend_4.0.2.tgz";
+ path = fetchurl {
+ name = "xtend___xtend_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
+ sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
+ };
+ }
+ {
+ name = "xterm___xterm_3.14.5.tgz";
+ path = fetchurl {
+ name = "xterm___xterm_3.14.5.tgz";
+ url = "https://registry.yarnpkg.com/xterm/-/xterm-3.14.5.tgz";
+ sha1 = "c9d14e48be6873aa46fb429f22f2165557fd2dea";
+ };
+ }
+ {
+ name = "y18n___y18n_4.0.0.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
+ sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
+ };
+ }
+ {
+ 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 = "yallist___yallist_3.0.3.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz";
+ sha1 = "b4b049e314be545e3ce802236d6cd22cd91c3de9";
+ };
+ }
+ {
+ name = "yallist___yallist_4.0.0.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
+ sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
+ };
+ }
+ {
+ name = "yaml_ast_parser_custom_tags___yaml_ast_parser_custom_tags_0.0.43.tgz";
+ path = fetchurl {
+ name = "yaml_ast_parser_custom_tags___yaml_ast_parser_custom_tags_0.0.43.tgz";
+ url = "https://registry.yarnpkg.com/yaml-ast-parser-custom-tags/-/yaml-ast-parser-custom-tags-0.0.43.tgz";
+ sha1 = "46968145ce4e24cb03c3312057f0f141b93a7d02";
+ };
+ }
+ {
+ name = "yaml_language_server___yaml_language_server_0.11.1.tgz";
+ path = fetchurl {
+ name = "yaml_language_server___yaml_language_server_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/yaml-language-server/-/yaml-language-server-0.11.1.tgz";
+ sha1 = "4ddc72eb9a6dd7dc41f31af2a8f5c72cce456cc9";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_20.2.1.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_20.2.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.1.tgz";
+ sha1 = "28f3773c546cdd8a69ddae68116b48a5da328e77";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_10.1.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_10.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz";
+ sha1 = "7202265b89f7e9e9f2e5765e0fe735a905edbaa8";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_11.1.1.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_11.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
+ sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_13.1.2.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_13.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz";
+ sha1 = "130f09702ebaeef2650d54ce6e3e5706f7a4fb38";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_18.1.3.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_18.1.3.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz";
+ sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
+ };
+ }
+ {
+ name = "yargs___yargs_12.0.5.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_12.0.5.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
+ sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
+ };
+ }
+ {
+ name = "yargs___yargs_13.2.4.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_13.2.4.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz";
+ sha1 = "0b562b794016eb9651b98bd37acf364aa5d6dc83";
+ };
+ }
+ {
+ name = "yargs___yargs_13.3.2.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_13.3.2.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz";
+ sha1 = "ad7ffefec1aa59565ac915f82dccb38a9c31a2dd";
+ };
+ }
+ {
+ name = "yargs___yargs_15.4.1.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_15.4.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz";
+ sha1 = "0d87a16de01aee9d8bec2bfbf74f67851730f4f8";
+ };
+ }
+ {
+ name = "yarn_check_webpack_plugin___yarn_check_webpack_plugin_1.2.0.tgz";
+ path = fetchurl {
+ name = "yarn_check_webpack_plugin___yarn_check_webpack_plugin_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/yarn-check-webpack-plugin/-/yarn-check-webpack-plugin-1.2.0.tgz";
+ sha1 = "0eb00cdcdb430f0494222a3eab1d2832737840cc";
+ };
+ }
+ {
+ name = "yarn_deduplicate___yarn_deduplicate_1.1.1.tgz";
+ path = fetchurl {
+ name = "yarn_deduplicate___yarn_deduplicate_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-1.1.1.tgz";
+ sha1 = "19b4a87654b66f55bf3a4bd6b153b4e4ab1b6e6d";
+ };
+ }
+ {
+ name = "yeast___yeast_0.1.2.tgz";
+ path = fetchurl {
+ name = "yeast___yeast_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz";
+ sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419";
+ };
+ }
+ {
+ name = "zen_observable_ts___zen_observable_ts_0.8.21.tgz";
+ path = fetchurl {
+ name = "zen_observable_ts___zen_observable_ts_0.8.21.tgz";
+ url = "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz";
+ sha1 = "85d0031fbbde1eba3cd07d3ba90da241215f421d";
+ };
+ }
+ {
+ name = "zen_observable___zen_observable_0.8.11.tgz";
+ path = fetchurl {
+ name = "zen_observable___zen_observable_0.8.11.tgz";
+ url = "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.11.tgz";
+ sha1 = "d3415885eeeb42ee5abb9821c95bb518fcd6d199";
+ };
+ }
+ {
+ name = "zrender___zrender_4.2.0.tgz";
+ path = fetchurl {
+ name = "zrender___zrender_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/zrender/-/zrender-4.2.0.tgz";
+ sha1 = "d001302e155f28de1f9fc7fcd5c254bad28471cf";
+ };
+ }
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitless/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitless/default.nix
new file mode 100644
index 000000000000..0cead50f0326
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitless/default.nix
@@ -0,0 +1,27 @@
+{ fetchFromGitHub, python, stdenv }:
+
+with python.pkgs;
+buildPythonApplication rec {
+ pname = "gitless";
+ version = "0.8.8";
+
+ src = fetchFromGitHub {
+ owner = "sdg-mit";
+ repo = "gitless";
+ rev = "v${version}";
+ sha256 = "1q6y38f8ap6q1livvfy0pfnjr0l8b68hyhc9r5v87fmdyl7y7y8g";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [ sh pygit2 clint ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://gitless.com/";
+ description = "A version control system built on top of Git";
+ license = licenses.gpl2;
+ platforms = platforms.all;
+ maintainers = [ maintainers.cransom ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitolite/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitolite/default.nix
new file mode 100644
index 000000000000..5e2fdc087fe3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitolite/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, git, lib, makeWrapper, nettools, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "gitolite";
+ version = "3.6.12";
+
+ src = fetchFromGitHub {
+ owner = "sitaramc";
+ repo = "gitolite";
+ rev = "v${version}";
+ sha256 = "05xw1pmagvkrbzga5pgl3xk9qyc6b5x73f842454f3w9ijspa8zy";
+ };
+
+ buildInputs = [ nettools perl ];
+ nativeBuildInputs = [ makeWrapper ];
+ propagatedBuildInputs = [ git ];
+
+ dontBuild = true;
+
+ postPatch = ''
+ substituteInPlace ./install --replace " 2>/dev/null" ""
+ substituteInPlace src/lib/Gitolite/Hooks/PostUpdate.pm \
+ --replace /usr/bin/perl "${perl}/bin/perl"
+ substituteInPlace src/lib/Gitolite/Hooks/Update.pm \
+ --replace /usr/bin/perl "${perl}/bin/perl"
+ substituteInPlace src/lib/Gitolite/Setup.pm \
+ --replace hostname "${nettools}/bin/hostname"
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/gitolite-shell \
+ --prefix PATH : ${lib.makeBinPath [ git perl ]}
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ perl ./install -to $out/bin
+ echo ${version} > $out/bin/VERSION
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Finely-grained git repository hosting";
+ homepage = "https://gitolite.com/gitolite/index.html";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.thoughtpolice maintainers.lassulus maintainers.tomberek ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix
new file mode 100644
index 000000000000..0b9d29bd5251
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix
@@ -0,0 +1,29 @@
+{ lib, rustPlatform, fetchFromGitHub, pkg-config, openssl }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "gitoxide";
+ version = "0.4.3";
+
+ src = fetchFromGitHub {
+ owner = "Byron";
+ repo = "gitoxide";
+ rev = "v${version}";
+ sha256 = "0ap5ih4s99c4ah95mcafqsvy4yhfqab6vg1c6ydzfa4czczgcxff";
+ };
+
+ cargoSha256 = "0vj7g2jhvd5d37rcq02hval9axpciwyqyd10z2a0bsvw0r4bh943";
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ openssl ];
+
+ # Needed to get openssl-sys to use pkgconfig.
+ OPENSSL_NO_VENDOR = 1;
+
+ meta = with lib; {
+ description =
+ "A command-line application for interacting with git repositories";
+ homepage = "https://github.com/Byron/gitoxide";
+ license = with licenses; [ mit /* or */ asl20 ];
+ maintainers = [ maintainers.syberant ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitstats/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
new file mode 100644
index 000000000000..b7432385a232
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchzip, perl, python, gnuplot, coreutils, gnugrep }:
+
+stdenv.mkDerivation rec {
+ pname = "gitstats";
+ version = "2016-01-08";
+
+ # upstream does not make releases
+ src = fetchzip {
+ url = "https://github.com/hoxu/gitstats/archive/55c5c285558c410bb35ebf421245d320ab9ee9fa.zip";
+ sha256 = "1bfcwhksylrpm88vyp33qjby4js31zcxy7w368dzjv4il3fh2i59";
+ name = "${pname}-${version}" + "-src";
+ };
+
+ buildInputs = [ perl python ];
+
+ postPatch = ''
+ sed -e "s|gnuplot_cmd = .*|gnuplot_cmd = '${gnuplot}/bin/gnuplot'|" \
+ -e "s|\<wc\>|${coreutils}/bin/wc|g" \
+ -e "s|\<grep\>|${gnugrep}/bin/grep|g" \
+ -i gitstats
+ '';
+
+ buildPhase = ''
+ make man VERSION="${version}"
+ '';
+
+ installPhase = ''
+ make install PREFIX="$out" VERSION="${version}"
+ install -Dm644 doc/gitstats.1 "$out"/share/man/man1/gitstats.1
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://gitstats.sourceforge.net/";
+ description = "Git history statistics generator";
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gogs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gogs/default.nix
new file mode 100644
index 000000000000..b574c03248f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gogs/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, buildGoModule, fetchFromGitHub, makeWrapper
+, git, bash, gzip, openssh, pam
+, sqliteSupport ? true
+, pamSupport ? true
+}:
+
+with stdenv.lib;
+
+buildGoModule rec {
+ pname = "gogs";
+ version = "0.12.3";
+
+ src = fetchFromGitHub {
+ owner = "gogs";
+ repo = "gogs";
+ rev = "v${version}";
+ sha256 = "0ix3mxy8cpqbx24qffbzyf5z88x7605icm7rk5n54r8bdsr7cckd";
+ };
+
+ vendorSha256 = "0m0g4dsiq8p2ngsbjxfi3wff7x4xpm67qlhgcgf8b48mqai4d2gc";
+
+ subPackages = [ "." ];
+
+ postPatch = ''
+ patchShebangs .
+ '';
+
+ nativeBuildInputs = [ makeWrapper openssh ];
+
+ buildInputs = optional pamSupport pam;
+
+ buildFlags = [ "-tags" ];
+
+ buildFlagsArray =
+ ( optional sqliteSupport "sqlite"
+ ++ optional pamSupport "pam");
+
+ postInstall = ''
+
+ wrapProgram $out/bin/gogs \
+ --prefix PATH : ${makeBinPath [ bash git gzip openssh ]}
+ '';
+
+ meta = {
+ description = "A painless self-hosted Git service";
+ homepage = "https://gogs.io";
+ license = licenses.mit;
+ maintainers = [ maintainers.schneefux ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gomp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gomp/default.nix
new file mode 100644
index 000000000000..efdef3b967f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gomp/default.nix
@@ -0,0 +1,23 @@
+{ lib
+, python3Packages
+ }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "gomp";
+ version = "1.1.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "11nq40igqbyfiygdzb1zyxx1n6d9xkv8vlmprbbi75mq54gfihhb";
+ };
+
+ doCheck = false; # tests require interactive terminal
+
+ meta = with lib; {
+ description = "A tool for comparing Git branches";
+ homepage = "https://github.com/MarkForged/GOMP";
+ license = licenses.mit;
+ maintainers = with maintainers; [ prusnak ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/gource/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gource/default.nix
new file mode 100644
index 000000000000..683ad8711bf0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/gource/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, SDL2, ftgl, pkgconfig, libpng, libjpeg, pcre
+, SDL2_image, freetype, glew, libGLU, libGL, boost, glm
+}:
+
+stdenv.mkDerivation rec {
+ version = "0.51";
+ pname = "gource";
+
+ src = fetchurl {
+ url = "https://github.com/acaudwell/Gource/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
+ sha256 = "16p7b1x4r0915w883lp374jcdqqja37fnb7m8vnsfnl2n64gi8qr";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ glew SDL2 ftgl libpng libjpeg pcre SDL2_image libGLU libGL
+ boost glm freetype
+ ];
+
+ configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://gource.io/";
+ description = "A Software version control visualization tool";
+ license = licenses.gpl3Plus;
+ longDescription = ''
+ Software projects are displayed by Gource as an animated tree with
+ the root directory of the project at its centre. Directories
+ appear as branches with files as leaves. Developers can be seen
+ working on the tree at the times they contributed to the project.
+
+ Currently Gource includes built-in log generation support for Git,
+ Mercurial and Bazaar and SVN. Gource can also parse logs produced
+ by several third party tools for CVS repositories.
+ '';
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/guitone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/guitone/default.nix
new file mode 100644
index 000000000000..1ff1030150f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/guitone/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchmtn, qt4, qmake4Hook, pkgconfig, graphviz }:
+
+let version = "1.0-mtn-head"; in
+stdenv.mkDerivation {
+ pname = "guitone";
+ inherit version;
+
+ #src = fetchurl {
+ # url = "${meta.homepage}/count.php/from=default/${version}/${name}.tgz";
+ # sha256 = "08kcyar6p6v5z4dq6q6c1dhyxc2jj49qcd6lj3rdn1rb9hz4n7ms";
+ #};
+
+ src = fetchmtn {
+ dbs = ["mtn://code.monotone.ca/guitone"];
+ selector = "3a728afdbd3943b1d86c2a249b1e2ede7bf64c27";
+ sha256 = "01vs8m00phs5pl75mjkpdarynfpkqrg0qf4rsn95czi3q6nxiaq5";
+ branch = "net.venge.monotone.guitone";
+ };
+
+ patches = [ ./parallel-building.patch ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ qt4 qmake4Hook graphviz ];
+
+ qmakeFlags = [ "guitone.pro" ];
+
+ meta = {
+ description = "Qt4 based GUI for monotone";
+ homepage = "https://guitone.thomaskeller.biz";
+ downloadPage = "https://code.monotone.ca/p/guitone/";
+ license = stdenv.lib.licenses.gpl3;
+ inherit (qt4.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch
new file mode 100644
index 000000000000..f0e924cbfb81
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch
@@ -0,0 +1,7 @@
+Without this `make tmp/AttributesView.o` fails with
+src/view/dialogs/AddEditAttribute.h:22:35: fatal error: ui_add_edit_attribute.h: No such file or directory
+--- a/guitone.pro
++++ b/guitone.pro
+@@ -215 +215,2 @@ help.commands = @echo Available targets: $${QMAKE_EXTRA_TARGETS}
+ QMAKE_EXTRA_TARGETS += help
++CONFIG += depend_includepath
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/meld/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/meld/default.nix
new file mode 100644
index 000000000000..5068dc15f48a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/meld/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchurl
+, gettext
+, itstool
+, python3
+, meson
+, ninja
+, wrapGAppsHook
+, libxml2
+, pkg-config
+, desktop-file-utils
+, gobject-introspection
+, gtk3
+, gtksourceview4
+, gnome3
+, gsettings-desktop-schemas
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "meld";
+ version = "3.21.0";
+
+ format = "other";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "toARTVq3kzJFSf1Y9OsgLY4oDAYzoLdl7ebfs0FgqBs=";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ gettext
+ itstool
+ libxml2
+ pkg-config
+ desktop-file-utils
+ gobject-introspection
+ wrapGAppsHook
+ gtk3 # for gtk-update-icon-cache
+ ];
+
+ buildInputs = [
+ gtk3
+ gtksourceview4
+ gsettings-desktop-schemas
+ gnome3.adwaita-icon-theme
+ gobject-introspection # fixes https://github.com/NixOS/nixpkgs/issues/56943 for now
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pygobject3
+ pycairo
+ ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Visual diff and merge tool";
+ homepage = "http://meldmerge.org/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ jtojnar mimame ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix
new file mode 100644
index 000000000000..f0918ab69a62
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchurl, python2Packages, makeWrapper, unzip
+, guiSupport ? false, tk ? null
+, ApplicationServices
+, mercurialSrc ? fetchurl rec {
+ meta.name = "mercurial-${meta.version}";
+ meta.version = "4.9.1";
+ url = "https://mercurial-scm.org/release/${meta.name}.tar.gz";
+ sha256 = "0iybbkd9add066729zg01kwz5hhc1s6lhp9rrnsmzq6ihyxj3p8v";
+ }
+}:
+
+let
+ inherit (python2Packages) docutils hg-git dulwich python;
+
+in python2Packages.buildPythonApplication {
+
+ inherit (mercurialSrc.meta) name version;
+ src = mercurialSrc;
+
+ format = "other";
+
+ inherit python; # pass it so that the same version can be used in hg2git
+
+ buildInputs = [ makeWrapper docutils unzip ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices ];
+
+ propagatedBuildInputs = [ hg-git dulwich ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = (stdenv.lib.optionalString guiSupport
+ ''
+ mkdir -p $out/etc/mercurial
+ cp contrib/hgk $out/bin
+ cat >> $out/etc/mercurial/hgrc << EOF
+ [extensions]
+ hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
+ EOF
+ # setting HG so that hgk can be run itself as well (not only hg view)
+ WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
+ --set HG $out/bin/hg
+ --prefix PATH : ${tk}/bin "
+ '') +
+ ''
+ for i in $(cd $out/bin && ls); do
+ wrapProgram $out/bin/$i \
+ $WRAP_TK
+ done
+
+ # copy hgweb.cgi to allow use in apache
+ mkdir -p $out/share/cgi-bin
+ cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
+ chmod u+x $out/share/cgi-bin/hgweb.cgi
+
+ # install bash/zsh completions
+ install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg
+ install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
+ '';
+
+ meta = {
+ inherit (mercurialSrc.meta) version;
+ description = "A fast, lightweight SCM system for very large distributed projects";
+ homepage = "https://www.mercurial-scm.org";
+ downloadPage = "https://www.mercurial-scm.org/release/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.eraserhd ];
+ updateWalker = true;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/mercurial/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
new file mode 100644
index 000000000000..e0400fd46c65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, python3Packages, makeWrapper, unzip
+, guiSupport ? false, tk ? null
+, ApplicationServices
+}:
+
+let
+ inherit (python3Packages) docutils python;
+
+in python3Packages.buildPythonApplication rec {
+ pname = "mercurial";
+ version = "5.6";
+
+ src = fetchurl {
+ url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
+ sha256 = "1hk2y30zzdnlv8f71kabvh0xi9c7qhp28ksh20vpd0r712sv79yz";
+ };
+
+ format = "other";
+
+ passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
+
+ buildInputs = [ makeWrapper docutils unzip ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = (stdenv.lib.optionalString guiSupport ''
+ mkdir -p $out/etc/mercurial
+ cp contrib/hgk $out/bin
+ cat >> $out/etc/mercurial/hgrc << EOF
+ [extensions]
+ hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
+ EOF
+ # setting HG so that hgk can be run itself as well (not only hg view)
+ WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
+ --set HG $out/bin/hg
+ --prefix PATH : ${tk}/bin "
+ '') + ''
+ for i in $(cd $out/bin && ls); do
+ wrapProgram $out/bin/$i \
+ $WRAP_TK
+ done
+
+ # copy hgweb.cgi to allow use in apache
+ mkdir -p $out/share/cgi-bin
+ cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
+ chmod u+x $out/share/cgi-bin/hgweb.cgi
+
+ # install bash/zsh completions
+ install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg
+ install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
+ '';
+
+ meta = {
+ inherit version;
+ description = "A fast, lightweight SCM system for very large distributed projects";
+ homepage = "https://www.mercurial-scm.org";
+ downloadPage = "https://www.mercurial-scm.org/release/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ stdenv.lib.maintainers.eelco ];
+ updateWalker = true;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
new file mode 100644
index 000000000000..03b98694eaf3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, ocamlPackages, gnome2, pkgconfig, makeWrapper, glib
+, libtool, libpng, yacc, expat, fontconfig, gd, pango, libjpeg, libwebp, xlibsWrapper, libXaw
+}:
+# We need an old version of Graphviz for format compatibility reasons.
+# This version is vulnerable, but monotone-viz will never feed it bad input.
+let graphviz_2_0 = import ./graphviz-2.0.nix {
+ inherit stdenv fetchurl pkgconfig xlibsWrapper libpng libjpeg expat libXaw
+ yacc libtool fontconfig pango gd libwebp;
+ }; in
+let inherit (gnome2) libgnomecanvas; in
+let inherit (ocamlPackages) ocaml lablgtk camlp4; in
+stdenv.mkDerivation rec {
+ version = "1.0.2";
+ pname = "monotone-viz";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ocaml lablgtk libgnomecanvas glib graphviz_2_0 makeWrapper camlp4];
+ src = fetchurl {
+ url = "http://oandrieu.nerim.net/monotone-viz/${pname}-${version}-nolablgtk.tar.gz";
+ sha256 = "1l5x4xqz5g1aaqbc1x80mg0yzkiah9ma9k9mivmn08alkjlakkdk";
+ };
+
+ prePatch="ln -s . a; ln -s . b";
+ patchFlags = ["-p0"];
+ patches = [
+ (fetchurl {
+ url = "https://src.fedoraproject.org/cgit/rpms/monotone-viz.git/plain/monotone-viz-1.0.2-dot.patch";
+ sha256 = "0risfy8iqmkr209hmnvpv57ywbd3rvchzzd0jy2lfyqrrrm6zknw";
+ })
+ (fetchurl {
+ url = "https://src.fedoraproject.org/cgit/rpms/monotone-viz.git/plain/monotone-viz-1.0.2-new-stdio.patch";
+ sha256 = "16bj0ppzqd45an154dr7sifjra7lv4m9anxfw3c56y763jq7fafa";
+ })
+ (fetchurl {
+ url = "https://src.fedoraproject.org/cgit/rpms/monotone-viz.git/plain/monotone-viz-1.0.2-typefix.patch";
+ sha256 = "1gfp82rc7pawb5x4hh2wf7xh1l1l54ib75930xgd1y437la4703r";
+ })
+ ];
+
+ preConfigure = ''
+ configureFlags="$configureFlags --with-lablgtk-dir=$(echo ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2)"
+ '';
+
+ postInstall = ''
+ wrapProgram "$out/bin/monotone-viz" --prefix PATH : "${graphviz_2_0}/bin/"
+ '';
+
+ meta = {
+ inherit version;
+ description = ''Monotone ancestry visualiser'';
+ license = stdenv.lib.licenses.gpl2Plus ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
new file mode 100644
index 000000000000..816bfcde67f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, xlibsWrapper, libpng, libjpeg, expat, libXaw
+, yacc, libtool, fontconfig, pango, gd, libwebp
+}:
+
+assert libpng != null && libjpeg != null && expat != null;
+
+stdenv.mkDerivation rec {
+ name = "graphviz-2.0";
+
+ src = fetchurl {
+ url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
+ sha256 = "39b8e1f2ba4cc1f5bdc8e39c7be35e5f831253008e4ee2c176984f080416676c";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ xlibsWrapper libpng libjpeg expat libXaw yacc
+ libtool fontconfig pango gd libwebp
+ ];
+
+ hardeningDisable = [ "format" "fortify" ];
+
+ configureFlags =
+ [ "--with-pngincludedir=${libpng.dev}/include"
+ "--with-pnglibdir=${libpng.out}/lib"
+ "--with-jpegincludedir=${libjpeg.dev}/include"
+ "--with-jpeglibdir=${libjpeg.out}/lib"
+ "--with-expatincludedir=${expat.dev}/include"
+ "--with-expatlibdir=${expat.out}/lib"
+ "--with-ltdl-include=${libtool}/include"
+ "--with-ltdl-lib=${libtool.lib}/lib"
+ ]
+ ++ stdenv.lib.optional (xlibsWrapper == null) "--without-x";
+
+ meta = {
+ description = "A program for visualising graphs";
+ homepage = "http://www.graphviz.org/";
+ branch = "2.0";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/default.nix
new file mode 100644
index 000000000000..bf8e5652d99c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, boost, zlib, botan, libidn
+, lua, pcre, sqlite, perl, pkgconfig, expect
+, bzip2, gmp, openssl
+}:
+
+let
+ version = "1.1";
+ perlVersion = stdenv.lib.getVersion perl;
+in
+
+assert perlVersion != "";
+
+stdenv.mkDerivation rec {
+ pname = "monotone";
+ inherit version;
+
+ src = fetchurl {
+ url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.bz2";
+ sha256 = "124cwgi2q86hagslbk5idxbs9j896rfjzryhr6z63r6l485gcp7r";
+ };
+
+ patches = [ ./monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ boost zlib botan libidn lua pcre sqlite expect
+ openssl gmp bzip2 ];
+
+ postInstall = ''
+ mkdir -p $out/share/${pname}-${version}
+ cp -rv contrib/ $out/share/${pname}-${version}/contrib
+ mkdir -p $out/${perl.libPrefix}/${perlVersion}
+ cp -v contrib/Monotone.pm $out/${perl.libPrefix}/${perlVersion}
+ '';
+
+ #doCheck = true; # some tests fail (and they take VERY long)
+
+ meta = with stdenv.lib; {
+ description = "A free distributed version control system";
+ maintainers = [ maintainers.raskin ];
+ platforms = platforms.unix;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/default.upstream b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/default.upstream
new file mode 100644
index 000000000000..e0d01fb190c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/default.upstream
@@ -0,0 +1,8 @@
+url http://www.monotone.ca/downloads.php
+
+do_overwrite(){
+ ensure_version
+ ensure_hash
+ set_var_value version $CURRENT_VERSION
+ set_var_value sha256 $CURRENT_HASH
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch
new file mode 100644
index 000000000000..1ecda436c251
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch
@@ -0,0 +1,66 @@
+From 70f209ad582121750d54e3692b1e62c7f36af6f9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 7 May 2018 14:09:06 +0200
+Subject: [PATCH] Adapt to changes in pcre-8.42
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+pcre-8.42 replaced internal real_pcre with real_pcre8_or_16. This
+broke monotone that decided not to use the public "pcre" type.
+
+This patch adapts monotone to the pcre >= 8.42.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ src/pcrewrap.cc | 4 ++--
+ src/pcrewrap.hh | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/pcrewrap.cc b/src/pcrewrap.cc
+index 8c0c9d1..30bafff 100644
+--- a/src/pcrewrap.cc
++++ b/src/pcrewrap.cc
+@@ -74,7 +74,7 @@ get_capturecount(void const * bd)
+ namespace pcre
+ {
+ typedef map<char const *,
+- pair<struct real_pcre const *, struct pcre_extra const *> >
++ pair<struct real_pcre8_or_16 const *, struct pcre_extra const *> >
+ regex_cache;
+
+ class regex_cache_manager
+@@ -86,7 +86,7 @@ public:
+ }
+
+ void store(char const * pattern,
+- pair<struct real_pcre const *, struct pcre_extra const *>
++ pair<struct real_pcre8_or_16 const *, struct pcre_extra const *>
+ data)
+ {
+ cache[pattern] = data;
+diff --git a/src/pcrewrap.hh b/src/pcrewrap.hh
+index 3359cdd..5008e88 100644
+--- a/src/pcrewrap.hh
++++ b/src/pcrewrap.hh
+@@ -18,7 +18,7 @@
+ // definitions and so we don't actually expose it here. Unfortunately, this
+ // means we have to hope this pair of forward declarations will not change...
+
+-struct real_pcre;
++struct real_pcre8_or_16;
+ struct pcre_extra;
+
+ namespace pcre
+@@ -61,7 +61,7 @@ namespace pcre
+ regex & operator=(regex const &);
+
+ // data
+- struct real_pcre const * basedat;
++ struct real_pcre8_or_16 const * basedat;
+ struct pcre_extra const * extradat;
+
+ // used by constructors
+--
+2.14.3
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/mr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/mr/default.nix
new file mode 100644
index 000000000000..05ef7021f164
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/mr/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, perl }:
+
+stdenv.mkDerivation {
+ pname = "mr";
+ version = "1.20180726";
+
+ src = fetchgit {
+ url = "git://myrepos.branchable.com/";
+ # the repository moved its tags at least once
+ # when updating please continue using the revision hash here
+ rev = "0ad7a17bb455de1fec3b2375c7aac72ab2a22ac4";
+ sha256 = "0jphw61plm8cgklja6hs639xhdvxgvjwbr6jpvjwpp7hc5gmhms5";
+ };
+
+ postPatch = ''
+ patchShebangs .
+ '';
+
+ buildInputs = [ perl ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = {
+ description = "Multiple Repository management tool";
+ longDescription = ''
+ mr is a tool to manage all your version control repos. It can
+ checkout, update, or perform other actions on a set of
+ repositories as if they were one combined repository. It
+ supports any combination of subversion, git, cvs, mercurial,
+ bzr, darcs, fossil and veracity repositories, and support for
+ other version control systems can easily be added.
+ '';
+ homepage = "http://myrepos.branchable.com/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ antono henrytill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix
new file mode 100644
index 000000000000..3bea6d893341
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix
@@ -0,0 +1,38 @@
+{lib, python, git, mercurial, coreutils}:
+
+with python.pkgs;
+buildPythonApplication rec {
+ version = "0.3.9";
+ pname = "nbstripout";
+
+ # Mercurial should be added as a build input but because it's a Python
+ # application, it would mess up the Python environment. Thus, don't add it
+ # here, instead add it to PATH when running unit tests
+ checkInputs = [ pytest pytest-flake8 git ];
+ nativeBuildInputs = [ pytestrunner ];
+ propagatedBuildInputs = [ ipython nbformat ];
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "b46dddbf78b8b137176bc72729124e378242ef9ce93af63f6e0a8c4850c972e7";
+ };
+
+ # for some reason, darwin uses /bin/sh echo native instead of echo binary, so
+ # force using the echo binary
+ postPatch = ''
+ substituteInPlace tests/test-git.t --replace "echo" "${coreutils}/bin/echo"
+ '';
+
+ # ignore flake8 tests for the nix wrapped setup.py
+ checkPhase = ''
+ PATH=$PATH:$out/bin:${mercurial}/bin pytest .
+ '';
+
+ meta = {
+ inherit version;
+ description = "Strip output from Jupyter and IPython notebooks";
+ homepage = "https://github.com/kynan/nbstripout";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ jluttine ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/nitpick/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/nitpick/default.nix
new file mode 100644
index 000000000000..bcb16ea86788
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/nitpick/default.nix
@@ -0,0 +1,40 @@
+{ fetchFromGitHub
+, buildPythonPackage
+, stdenv
+, isPy27
+}:
+
+buildPythonPackage rec {
+ pname = "nitpick";
+ version = "1.1";
+
+ format = "other";
+ disabled = !isPy27;
+
+ src = fetchFromGitHub {
+ owner = "travisb-ca";
+ repo = pname;
+ rev = version;
+ sha256 = "11gn6nc6ypwivy20bx1r0rm2giblwx6jv485zk875a9pdbcwbrf6";
+ };
+
+ installPhase = ''
+ mkdir -p $out/share/src
+ install -m 755 -t $out/share/src nitpick.py
+
+ mkdir -p $out/bin
+ ln -s $out/share/src/nitpick.py $out/bin/nitpick
+ '';
+
+ meta = {
+ description = "A distributed issue tracker";
+ longDescription = ''
+ Nitpick is a distributed issue tracker. It helps keep track of which nits you
+ should pick. It's intended to be used with source code such that the issues can
+ follow the code via whatever VCS or distribution mechanism.
+ '';
+ homepage = "http://travisbrown.ca/projects/nitpick/docs/nitpick.html";
+ license = with stdenv.lib.licenses; gpl2;
+ maintainers = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/p4/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/p4/default.nix
new file mode 100644
index 000000000000..fd369601c6c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/p4/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, lib, autoPatchelfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "p4";
+ version = "2020.1.2007551";
+
+ src = fetchurl {
+ url = "https://cdist2.perforce.com/perforce/r20.1/bin.linux26x86_64/helix-core-server.tgz";
+ sha256 = "0ly9b838zrpp6841fzapizdd3xmria55bwfrh2j29qwxiwzqj80y";
+ };
+
+ sourceRoot = ".";
+
+ dontBuild = true;
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp p4 p4broker p4d p4p $out/bin
+ '';
+
+ meta = {
+ description = "Perforce Command-Line Client";
+ homepage = "https://www.perforce.com";
+ license = lib.licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with lib.maintainers; [ corngood ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/p4v/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/p4v/default.nix
new file mode 100644
index 000000000000..01ea365b76c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/p4v/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebengine, qtwebkit, openssl, xkeyboard_config, patchelfUnstable, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "p4v";
+ version = "2020.1.1966006";
+
+ src = fetchurl {
+ url = "https://cdist2.perforce.com/perforce/r20.1/bin.linux26x86_64/p4v.tgz";
+ sha256 = "0zc70d7jgdrd2jli338n1h05hgb7jmmv8hvq205wh78vvllrlv10";
+ };
+
+ dontBuild = true;
+ nativeBuildInputs = [ patchelfUnstable wrapQtAppsHook ];
+
+ ldLibraryPath = lib.makeLibraryPath [
+ stdenv.cc.cc.lib
+ qtbase
+ qtmultimedia
+ qtscript
+ qtsensors
+ qtwebengine
+ qtwebkit
+ openssl
+ ];
+
+ dontWrapQtApps = true;
+ installPhase = ''
+ mkdir $out
+ cp -r bin $out
+ mkdir -p $out/lib
+ cp -r lib/P4VResources $out/lib
+
+ for f in $out/bin/*.bin ; do
+ patchelf --set-rpath $ldLibraryPath --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f
+ # combining this with above breaks rpath (patchelf bug?)
+ patchelf --add-needed libstdc++.so $f \
+ --clear-symbol-version _ZNSt20bad_array_new_lengthD1Ev \
+ --clear-symbol-version _ZTVSt20bad_array_new_length \
+ --clear-symbol-version _ZTISt20bad_array_new_length \
+ $f
+ wrapQtApp $f \
+ --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb
+ done
+ '';
+
+ dontFixup = true;
+
+ meta = {
+ description = "Perforce Visual Client";
+ homepage = "https://www.perforce.com";
+ license = stdenv.lib.licenses.unfreeRedistributable;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with stdenv.lib.maintainers; [ nathyong nioncode ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/peru/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/peru/default.nix
new file mode 100644
index 000000000000..4cf2a2e864ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/peru/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "peru";
+ version = "1.2.0";
+
+ disabled = python3Packages.pythonOlder "3.5";
+
+ src = fetchFromGitHub {
+ owner = "buildinspace";
+ repo = "peru";
+ rev = version;
+ sha256 = "0p4j51m89glx12cd65lcnbwpvin0v49wkhrx06755skr7v37pm2a";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ pyyaml docopt ];
+
+ # No tests in archive
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/buildinspace/peru";
+ description = "A tool for including other people's code in your projects";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/pijul/default.nix
new file mode 100644
index 000000000000..0f7e2bc9486c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/pijul/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchCrate
+, rustPlatform
+, pkg-config
+, libsodium
+, openssl
+, xxHash
+, zstd
+, darwin
+, gitImportSupport ? true
+, libgit2 ? null
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "pijul";
+ version = "1.0.0-alpha.17";
+
+ src = fetchCrate {
+ inherit version pname;
+ sha256 = "03r383fkqx17sb2c0kz71lbn0rdas7nd9yw7ni5fbmrq8rlk9brv";
+ };
+
+ cargoSha256 = "0dfmldklklax8nb3pry0h80kih1k1idfjgaxinxkk1iflcm3cwqn";
+
+ cargoBuildFlags = stdenv.lib.optional gitImportSupport "--features=git";
+
+ doCheck = false;
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ openssl libsodium xxHash zstd ]
+ ++ (stdenv.lib.optionals gitImportSupport [ libgit2 ])
+ ++ (stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+ CoreServices Security SystemConfiguration
+ ]));
+
+ meta = with stdenv.lib; {
+ description = "A distributed version control system";
+ homepage = "https://pijul.org";
+ license = with licenses; [ gpl2Plus ];
+ maintainers = with maintainers; [ gal_bolle dywedir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix
new file mode 100644
index 000000000000..0384f9723d56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix
@@ -0,0 +1,44 @@
+{ fetchFromGitHub, lib, python3Packages, meld, subversion, gvfs, xdg_utils, gtk3 }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "rabbitvcs";
+ version = "0.18";
+ namePrefix = "";
+
+ src = fetchFromGitHub {
+ owner = "rabbitvcs";
+ repo = "rabbitvcs";
+ rev = "v${version}";
+ sha256 = "01cr16zf3gzsci1hhfli79m34fcx5m1pvswl16rkxxn212yc9fhy";
+ };
+
+ buildInputs = [ gtk3 ];
+ pythonPath = with python3Packages; [ configobj pygobject3 pysvn dulwich tkinter gvfs xdg_utils ];
+
+ prePatch = ''
+ sed -ie 's|if sys\.argv\[1\] == "install":|if False:|' ./setup.py
+ sed -ie "s|PREFIX = sys.prefix|PREFIX = \"$out\"|" ./setup.py
+ sed -ie 's|/usr/bin/meld|${meld}/bin/meld|' ./rabbitvcs/util/configspec/configspec.ini
+ sed -ie 's|/usr/bin/svnadmin|${subversion.out}/bin/svnadmin|' ./rabbitvcs/ui/create.py
+ sed -ie "s|/usr/share/doc|$out/share/doc|" ./rabbitvcs/ui/about.py
+ sed -ie "s|gnome-open|xdg-open|" ./rabbitvcs/util/helper.py
+ '';
+
+ outputs = [ "out" "cli" ];
+
+ postInstall = ''
+ mkdir -p $cli/bin
+ cp clients/cli/rabbitvcs $cli/bin
+ wrapPythonProgramsIn $cli "$out $pythonPath"
+ '';
+
+ doCheck = false;
+
+ meta = {
+ description = "Graphical tools for working with version control systems";
+ homepage = "http://rabbitvcs.org/";
+ license = lib.licenses.gpl2Plus;
+ platforms = lib.platforms.linux;
+ maintainers = [ lib.maintainers.mathnerd314 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix
new file mode 100644
index 000000000000..fc6a8adc2add
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, wxGTK, subversion, apr, aprutil, python }:
+
+stdenv.mkDerivation rec {
+ pname = "rapidsvn";
+ version = "0.12.1";
+
+ src = fetchurl {
+ url = "http://www.rapidsvn.org/download/release/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1bmcqjc12k5w0z40k7fkk8iysqv4fw33i80gvcmbakby3d4d4i4p";
+ };
+
+ buildInputs = [ wxGTK subversion apr aprutil python ];
+
+ configureFlags = [ "--with-svn-include=${subversion.dev}/include"
+ "--with-svn-lib=${subversion.out}/lib" ];
+
+ patches = [
+ ./fix-build.patch
+ ];
+
+ meta = {
+ description = "Multi-platform GUI front-end for the Subversion revision system";
+ homepage = "http://rapidsvn.tigris.org/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = [ stdenv.lib.maintainers.viric ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch
new file mode 100644
index 000000000000..ca4bc394c2c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch
@@ -0,0 +1,122 @@
+--- a/src/svncpp/client_ls.cpp
++++ b/src/svncpp/client_ls.cpp
+@@ -25,6 +25,7 @@
+ #include "svn_client.h"
+ #include "svn_path.h"
+ #include "svn_sorts.h"
++#include "svn_version.h"
+ //#include "svn_utf.h"
+
+ // svncpp
+@@ -35,6 +36,7 @@
+ #include "m_is_empty.hpp"
+
+
++#if SVN_VER_MAJOR == 1 && SVN_VER_MINOR < 8
+ static int
+ compare_items_as_paths(const svn_sort__item_t *a, const svn_sort__item_t *b)
+ {
+@@ -84,6 +86,72 @@ namespace svn
+ }
+ }
+
++#else
++
++#include <algorithm>
++
++static svn_error_t* store_entry(
++ void *baton,
++ const char *path,
++ const svn_dirent_t *dirent,
++ const svn_lock_t *,
++ const char *abs_path,
++ const char *,
++ const char *,
++ apr_pool_t *scratch_pool)
++{
++ svn::DirEntries *entries = reinterpret_cast<svn::DirEntries*>(baton);
++ if (path[0] == '\0') {
++ if (dirent->kind == svn_node_file) {
++ // for compatibility with svn_client_ls behaviour, listing a file
++ // stores that file name
++ entries->push_back(svn::DirEntry(svn_path_basename(abs_path, scratch_pool), dirent));
++ }
++ } else {
++ entries->push_back(svn::DirEntry(path, dirent));
++ }
++ return SVN_NO_ERROR;
++}
++
++static bool sort_by_path(svn::DirEntry const& a, svn::DirEntry const& b)
++{
++ return svn_path_compare_paths(a.name(), b.name()) < 0;
++}
++
++namespace svn
++{
++ DirEntries
++ Client::list(const char * pathOrUrl,
++ svn_opt_revision_t * revision,
++ bool recurse) throw(ClientException)
++ {
++ Pool pool;
++ DirEntries entries;
++
++ svn_error_t * error =
++ svn_client_list3(pathOrUrl,
++ revision,
++ revision,
++ SVN_DEPTH_INFINITY_OR_IMMEDIATES(recurse),
++ SVN_DIRENT_ALL,
++ FALSE, // fetch locks
++ FALSE, // include externals
++ &store_entry,
++ &entries,
++ *m_context,
++ pool);
++
++ if (error != SVN_NO_ERROR)
++ throw ClientException(error);
++
++ std::sort(entries.begin(), entries.end(), &sort_by_path);
++
++ return entries;
++ }
++}
++
++#endif
++
+ /* -----------------------------------------------------------------
+ * local variables:
+ * eval: (load-file "../../rapidsvn-dev.el")
+--- a/src/svncpp/dirent.cpp 2017-03-19 15:48:58.956827337 +0100
++++ b/src/svncpp/dirent.cpp 2017-03-19 15:50:19.111527279 +0100
+@@ -47,7 +47,7 @@
+ {
+ }
+
+- Data(const char * _name, svn_dirent_t * dirEntry)
++ Data(const char * _name, const svn_dirent_t * dirEntry)
+ : name(_name), kind(dirEntry->kind), size(dirEntry->size),
+ hasProps(dirEntry->has_props != 0),
+ createdRev(dirEntry->created_rev), time(dirEntry->time)
+@@ -78,7 +78,7 @@
+ {
+ }
+
+- DirEntry::DirEntry(const char * name, svn_dirent_t * DirEntry)
++ DirEntry::DirEntry(const char * name, const svn_dirent_t * DirEntry)
+ : m(new Data(name, DirEntry))
+ {
+ }
+--- a/include/svncpp/dirent.hpp 2017-03-19 15:50:54.860506116 +0100
++++ b/include/svncpp/dirent.hpp 2017-03-19 15:50:58.314407598 +0100
+@@ -41,7 +41,7 @@
+ /**
+ * constructor for existing @a svn_dirent_t entries
+ */
+- DirEntry(const char * name, svn_dirent_t * dirEntry);
++ DirEntry(const char * name, const svn_dirent_t * dirEntry);
+
+ /**
+ * copy constructor
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/rcs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rcs/default.nix
new file mode 100644
index 000000000000..404d6ae09bce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rcs/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, fetchpatch, ed }:
+
+stdenv.mkDerivation rec {
+ name = "rcs-5.9.4";
+
+ src = fetchurl {
+ url = "mirror://gnu/rcs/${name}.tar.xz";
+ sha256 = "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86";
+ };
+
+ buildInputs = [ ed ];
+
+ patches = stdenv.lib.optionals stdenv.isDarwin [
+ # This failure appears unrelated to the subject of the test. This
+ # test seems to rely on a bash bug where `test $x -nt $y` ignores
+ # subsecond values in timetamps. This bug has been fixed in Bash
+ # 5, and seemingly doesn't affect Darwin.
+ ./disable-t810.patch
+
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/macports/macports-ports/b76d1e48dac/editors/nano/files/secure_snprintf.patch";
+ extraPrefix = "";
+ sha256 = "1wy9pjw3vvp8fv8a7pmkqmiapgacfx54qj9fvsc5gwry0vv7vnc3";
+ })
+
+ # Expected to appear in the next release
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/Homebrew/formula-patches/3fff7c990b8df4174045834b9c1210e7736ff5a4/rcs/noreturn.patch";
+ sha256 = "10zniqrd6xagf3q03i1vksl0vd9nla3qcj0840n3m8z6jd4aypcx";
+ })
+ ];
+
+ doCheck = true;
+
+ checkFlags = [ "VERBOSE=1" ];
+
+ checkPhase = ''
+ # If neither LOGNAME or USER are set, rcs will default to
+ # getlogin(), which is unreliable on macOS. It will often return
+ # things like `_spotlight`, or `_mbsetupuser`. macOS sets both
+ # environment variables in user sessions, so this is unlikely to
+ # affect regular usage.
+
+ export LOGNAME=$(id -un)
+
+ print_logs_and_fail() {
+ grep -nH -e . -r tests/*.d/{out,err}
+ return 1
+ }
+
+ make $checkFlags check || print_logs_and_fail
+ '';
+
+ NIX_CFLAGS_COMPILE = "-std=c99";
+
+ hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "format";
+
+ meta = {
+ homepage = "https://www.gnu.org/software/rcs/";
+ description = "Revision control system";
+ longDescription =
+ '' The GNU Revision Control System (RCS) manages multiple revisions of
+ files. RCS automates the storing, retrieval, logging,
+ identification, and merging of revisions. RCS is useful for text
+ that is revised frequently, including source code, programs,
+ documentation, graphics, papers, and form letters.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [ eelco ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/rcs/disable-t810.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rcs/disable-t810.patch
new file mode 100644
index 000000000000..745f1868a369
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/rcs/disable-t810.patch
@@ -0,0 +1,10 @@
+--- rcs-5.9.4-orig/tests/Makefile.in 2015-01-22 19:40:36.000000000 +0900
++++ rcs-5.9.4/tests/Makefile.in 2019-04-16 20:04:30.557626000 +0900
+@@ -1372,7 +1372,6 @@
+ t803 \
+ t804 \
+ t805 \
+- t810 \
+ t900 \
+ t999
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
new file mode 100644
index 000000000000..98213c781a1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
@@ -0,0 +1,275 @@
+--- a/lib/redmine/scm/adapters/mercurial/redminehelper.py
++++ b/lib/redmine/scm/adapters/mercurial/redminehelper.py
+@@ -45,17 +45,20 @@ Output example of rhmanifest::
+ </repository>
+ </rhmanifest>
+ """
+-import re, time, cgi, urllib
++import re, time, html, urllib
+ from mercurial import cmdutil, commands, node, error, hg, registrar
+
+ cmdtable = {}
+ command = registrar.command(cmdtable) if hasattr(registrar, 'command') else cmdutil.command(cmdtable)
+
+-_x = cgi.escape
+-_u = lambda s: cgi.escape(urllib.quote(s))
++_x = lambda s: html.escape(s.decode('utf-8')).encode('utf-8')
++_u = lambda s: html.escape(urllib.parse.quote(s)).encode('utf-8')
++
++def unquoteplus(*args, **kwargs):
++ return urllib.parse.unquote_to_bytes(*args, **kwargs).replace(b'+', b' ')
+
+ def _changectx(repo, rev):
+- if isinstance(rev, str):
++ if isinstance(rev, bytes):
+ rev = repo.lookup(rev)
+ if hasattr(repo, 'changectx'):
+ return repo.changectx(rev)
+@@ -70,10 +73,10 @@ def _tip(ui, repo):
+ except TypeError: # Mercurial < 1.1
+ return repo.changelog.count() - 1
+ tipctx = _changectx(repo, tiprev())
+- ui.write('<tip revision="%d" node="%s"/>\n'
++ ui.write(b'<tip revision="%d" node="%s"/>\n'
+ % (tipctx.rev(), _x(node.hex(tipctx.node()))))
+
+-_SPECIAL_TAGS = ('tip',)
++_SPECIAL_TAGS = (b'tip',)
+
+ def _tags(ui, repo):
+ # see mercurial/commands.py:tags
+@@ -84,7 +87,7 @@ def _tags(ui, repo):
+ r = repo.changelog.rev(n)
+ except error.LookupError:
+ continue
+- ui.write('<tag revision="%d" node="%s" name="%s"/>\n'
++ ui.write(b'<tag revision="%d" node="%s" name="%s"/>\n'
+ % (r, _x(node.hex(n)), _x(t)))
+
+ def _branches(ui, repo):
+@@ -104,136 +107,148 @@ def _branches(ui, repo):
+ return repo.branchheads(branch)
+ def lookup(rev, n):
+ try:
+- return repo.lookup(rev)
++ return repo.lookup(str(rev).encode('utf-8'))
+ except RuntimeError:
+ return n
+ for t, n, r in sorted(iterbranches(), key=lambda e: e[2], reverse=True):
+ if lookup(r, n) in branchheads(t):
+- ui.write('<branch revision="%d" node="%s" name="%s"/>\n'
++ ui.write(b'<branch revision="%d" node="%s" name="%s"/>\n'
+ % (r, _x(node.hex(n)), _x(t)))
+
+ def _manifest(ui, repo, path, rev):
+ ctx = _changectx(repo, rev)
+- ui.write('<manifest revision="%d" path="%s">\n'
++ ui.write(b'<manifest revision="%d" path="%s">\n'
+ % (ctx.rev(), _u(path)))
+
+ known = set()
+- pathprefix = (path.rstrip('/') + '/').lstrip('/')
++ pathprefix = (path.decode('utf-8').rstrip('/') + '/').lstrip('/')
+ for f, n in sorted(ctx.manifest().iteritems(), key=lambda e: e[0]):
+- if not f.startswith(pathprefix):
++ fstr = f.decode('utf-8')
++ if not fstr.startswith(pathprefix):
+ continue
+- name = re.sub(r'/.*', '/', f[len(pathprefix):])
++ name = re.sub(r'/.*', '/', fstr[len(pathprefix):])
+ if name in known:
+ continue
+ known.add(name)
+
+ if name.endswith('/'):
+- ui.write('<dir name="%s"/>\n'
++ ui.write(b'<dir name="%s"/>\n'
+ % _x(urllib.quote(name[:-1])))
+ else:
+ fctx = repo.filectx(f, fileid=n)
+ tm, tzoffset = fctx.date()
+- ui.write('<file name="%s" revision="%d" node="%s" '
+- 'time="%d" size="%d"/>\n'
++ ui.write(b'<file name="%s" revision="%d" node="%s" '
++ b'time="%d" size="%d"/>\n'
+ % (_u(name), fctx.rev(), _x(node.hex(fctx.node())),
+ tm, fctx.size(), ))
+
+- ui.write('</manifest>\n')
++ ui.write(b'</manifest>\n')
+
+-@command('rhannotate',
+- [('r', 'rev', '', 'revision'),
+- ('u', 'user', None, 'list the author (long with -v)'),
+- ('n', 'number', None, 'list the revision number (default)'),
+- ('c', 'changeset', None, 'list the changeset'),
++@command(b'rhannotate',
++ [(b'r', b'rev', b'', b'revision'),
++ (b'u', b'user', None, b'list the author (long with -v)'),
++ (b'n', b'number', None, b'list the revision number (default)'),
++ (b'c', b'changeset', None, b'list the changeset'),
+ ],
+- 'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...')
++ b'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...')
+ def rhannotate(ui, repo, *pats, **opts):
+- rev = urllib.unquote_plus(opts.pop('rev', None))
++ rev = unquoteplus(opts.pop('rev', b''))
+ opts['rev'] = rev
+- return commands.annotate(ui, repo, *map(urllib.unquote_plus, pats), **opts)
++ return commands.annotate(ui, repo, *map(unquoteplus, pats), **opts)
+
+-@command('rhcat',
+- [('r', 'rev', '', 'revision')],
+- 'hg rhcat ([-r REV] ...) FILE...')
++@command(b'rhcat',
++ [(b'r', b'rev', b'', b'revision')],
++ b'hg rhcat ([-r REV] ...) FILE...')
+ def rhcat(ui, repo, file1, *pats, **opts):
+- rev = urllib.unquote_plus(opts.pop('rev', None))
++ rev = unquoteplus(opts.pop('rev', b''))
+ opts['rev'] = rev
+- return commands.cat(ui, repo, urllib.unquote_plus(file1), *map(urllib.unquote_plus, pats), **opts)
++ return commands.cat(ui, repo, unquoteplus(file1), *map(unquoteplus, pats), **opts)
+
+-@command('rhdiff',
+- [('r', 'rev', [], 'revision'),
+- ('c', 'change', '', 'change made by revision')],
+- 'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...')
++@command(b'rhdiff',
++ [(b'r', b'rev', [], b'revision'),
++ (b'c', b'change', b'', b'change made by revision')],
++ b'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...')
+ def rhdiff(ui, repo, *pats, **opts):
+ """diff repository (or selected files)"""
+ change = opts.pop('change', None)
+ if change: # add -c option for Mercurial<1.1
+ base = _changectx(repo, change).parents()[0].rev()
+- opts['rev'] = [str(base), change]
++ opts['rev'] = [base, change]
+ opts['nodates'] = True
+- return commands.diff(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+-
+-@command('rhlog',
+- [
+- ('r', 'rev', [], 'show the specified revision'),
+- ('b', 'branch', [],
+- 'show changesets within the given named branch'),
+- ('l', 'limit', '',
+- 'limit number of changes displayed'),
+- ('d', 'date', '',
+- 'show revisions matching date spec'),
+- ('u', 'user', [],
+- 'revisions committed by user'),
+- ('', 'from', '',
+- ''),
+- ('', 'to', '',
+- ''),
+- ('', 'rhbranch', '',
+- ''),
+- ('', 'template', '',
+- 'display with template')],
+- 'hg rhlog [OPTION]... [FILE]')
++ return commands.diff(ui, repo, *map(unquoteplus, pats), **opts)
++
++@command(b'rhlog',
++ [
++ (b'r', b'rev', [], b'show the specified revision'),
++ (b'b', b'branch', [],
++ b'show changesets within the given named branch'),
++ (b'l', b'limit', b'',
++ b'limit number of changes displayed'),
++ (b'd', b'date', b'',
++ b'show revisions matching date spec'),
++ (b'u', b'user', [],
++ b'revisions committed by user'),
++ (b'', b'from', b'',
++ b''),
++ (b'', b'to', b'',
++ b''),
++ (b'', b'rhbranch', b'',
++ b''),
++ (b'', b'template', b'',
++ b'display with template')],
++ b'hg rhlog [OPTION]... [FILE]')
++
+ def rhlog(ui, repo, *pats, **opts):
+ rev = opts.pop('rev')
+ bra0 = opts.pop('branch')
+- from_rev = urllib.unquote_plus(opts.pop('from', None))
+- to_rev = urllib.unquote_plus(opts.pop('to' , None))
+- bra = urllib.unquote_plus(opts.pop('rhbranch', None))
+- from_rev = from_rev.replace('"', '\\"')
+- to_rev = to_rev.replace('"', '\\"')
+- if hg.util.version() >= '1.6':
+- opts['rev'] = ['"%s":"%s"' % (from_rev, to_rev)]
++ from_rev = unquoteplus(opts.pop('from', b''))
++ to_rev = unquoteplus(opts.pop('to' , b''))
++ bra = unquoteplus(opts.pop('rhbranch', b''))
++ from_rev = from_rev.replace(b'"', b'\\"')
++ to_rev = to_rev.replace(b'"', b'\\"')
++ if (from_rev != b'') or (to_rev != b''):
++ if from_rev != b'':
++ quotefrom = b'"%s"' % (from_rev)
++ else:
++ quotefrom = from_rev
++ if to_rev != b'':
++ quoteto = b'"%s"' % (to_rev)
++ else:
++ quoteto = to_rev
++ opts['rev'] = [b'%s:%s' % (quotefrom, quoteto)]
+ else:
+- opts['rev'] = ['%s:%s' % (from_rev, to_rev)]
+- opts['branch'] = [bra]
+- return commands.log(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+-
+-@command('rhmanifest',
+- [('r', 'rev', '', 'show the specified revision')],
+- 'hg rhmanifest [-r REV] [PATH]')
+-def rhmanifest(ui, repo, path='', **opts):
++ opts['rev'] = rev
++ if (bra != b''):
++ opts['branch'] = [bra]
++ return commands.log(ui, repo, *map(unquoteplus, pats), **opts)
++
++
++@command(b'rhmanifest',
++ [(b'r', b'rev', b'', b'show the specified revision')],
++ b'hg rhmanifest -r REV [PATH]')
++def rhmanifest(ui, repo, path=b'', **opts):
+ """output the sub-manifest of the specified directory"""
+- ui.write('<?xml version="1.0"?>\n')
+- ui.write('<rhmanifest>\n')
+- ui.write('<repository root="%s">\n' % _u(repo.root))
++ ui.write(b'<?xml version="1.0"?>\n')
++ ui.write(b'<rhmanifest>\n')
++ ui.write(b'<repository root="%s">\n' % _u(repo.root))
+ try:
+- _manifest(ui, repo, urllib.unquote_plus(path), urllib.unquote_plus(opts.get('rev')))
++ _manifest(ui, repo, unquoteplus(path), unquoteplus(opts.get('rev')))
+ finally:
+- ui.write('</repository>\n')
+- ui.write('</rhmanifest>\n')
++ ui.write(b'</repository>\n')
++ ui.write(b'</rhmanifest>\n')
+
+-@command('rhsummary',[], 'hg rhsummary')
++@command(b'rhsummary',[], b'hg rhsummary')
+ def rhsummary(ui, repo, **opts):
+ """output the summary of the repository"""
+- ui.write('<?xml version="1.0"?>\n')
+- ui.write('<rhsummary>\n')
+- ui.write('<repository root="%s">\n' % _u(repo.root))
++ ui.write(b'<?xml version="1.0"?>\n')
++ ui.write(b'<rhsummary>\n')
++ ui.write(b'<repository root="%s">\n' % _u(repo.root))
+ try:
+ _tip(ui, repo)
+ _tags(ui, repo)
+ _branches(ui, repo)
+ # TODO: bookmarks in core (Mercurial>=1.8)
+ finally:
+- ui.write('</repository>\n')
+- ui.write('</rhsummary>\n')
++ ui.write(b'</repository>\n')
++ ui.write(b'</rhsummary>\n')
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
new file mode 100644
index 000000000000..beff147c374a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
@@ -0,0 +1,75 @@
+source 'https://rubygems.org'
+
+ruby '>= 2.3.0', '< 2.7.0' if Bundler::VERSION >= '1.12.0'
+gem "bundler", ">= 1.5.0"
+
+gem 'rails', '5.2.4.2'
+gem 'sprockets', '~> 3.7.2' if RUBY_VERSION < '2.5'
+gem "rouge", "~> 3.12.0"
+gem "request_store", "~> 1.4.1"
+gem "mini_mime", "~> 1.0.1"
+gem "actionpack-xml_parser"
+gem "roadie-rails", (RUBY_VERSION < "2.5" ? "~> 1.3.0" : "~> 2.1.0")
+gem "mimemagic"
+gem "mail", "~> 2.7.1"
+gem "csv", "~> 3.1.1"
+gem "nokogiri", "~> 1.10.0"
+gem "i18n", "~> 1.6.0"
+gem "rbpdf", "~> 1.20.0"
+
+# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
+gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
+
+# Optional gem for LDAP authentication
+group :ldap do
+ gem "net-ldap", "~> 0.16.0"
+end
+
+# Optional gem for OpenID authentication
+group :openid do
+ gem "ruby-openid", "~> 2.9.2", :require => "openid"
+ gem "rack-openid"
+end
+
+# Optional gem for exporting the gantt to a PNG file
+group :minimagick do
+ gem "mini_magick", "~> 4.9.5"
+end
+
+# Optional Markdown support, not for JRuby
+group :markdown do
+ gem "redcarpet", "~> 3.5.0"
+end
+
+# Include database gems for the database adapters NixOS supports
+gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
+gem "pg", "~> 1.1.4", :platforms => [:mri, :mingw, :x64_mingw]
+
+group :development do
+ gem "yard"
+end
+
+group :test do
+ gem "rails-dom-testing"
+ gem 'mocha', '>= 1.4.0'
+ gem "simplecov", "~> 0.17.0", :require => false
+ gem "ffi", platforms: [:mingw, :x64_mingw, :mswin]
+ # For running system tests
+ gem 'puma', '~> 3.7'
+ gem "capybara", (RUBY_VERSION < "2.4" ? "~> 3.15.1" : "~> 3.25.0")
+ gem "selenium-webdriver"
+ # RuboCop
+ gem 'rubocop', '~> 0.76.0'
+ gem 'rubocop-performance', '~> 1.5.0'
+ gem 'rubocop-rails', '~> 2.3.0'
+end
+
+local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
+if File.exists?(local_gemfile)
+ eval_gemfile local_gemfile
+end
+
+# Load plugins' Gemfiles
+Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file|
+ eval_gemfile file
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
new file mode 100644
index 000000000000..60aed5e17922
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -0,0 +1,231 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ actioncable (5.2.4.2)
+ actionpack (= 5.2.4.2)
+ nio4r (~> 2.0)
+ websocket-driver (>= 0.6.1)
+ actionmailer (5.2.4.2)
+ actionpack (= 5.2.4.2)
+ actionview (= 5.2.4.2)
+ activejob (= 5.2.4.2)
+ mail (~> 2.5, >= 2.5.4)
+ rails-dom-testing (~> 2.0)
+ actionpack (5.2.4.2)
+ actionview (= 5.2.4.2)
+ activesupport (= 5.2.4.2)
+ rack (~> 2.0, >= 2.0.8)
+ rack-test (>= 0.6.3)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
+ actionpack-xml_parser (2.0.1)
+ actionpack (>= 5.0)
+ railties (>= 5.0)
+ actionview (5.2.4.2)
+ activesupport (= 5.2.4.2)
+ builder (~> 3.1)
+ erubi (~> 1.4)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
+ activejob (5.2.4.2)
+ activesupport (= 5.2.4.2)
+ globalid (>= 0.3.6)
+ activemodel (5.2.4.2)
+ activesupport (= 5.2.4.2)
+ activerecord (5.2.4.2)
+ activemodel (= 5.2.4.2)
+ activesupport (= 5.2.4.2)
+ arel (>= 9.0)
+ activestorage (5.2.4.2)
+ actionpack (= 5.2.4.2)
+ activerecord (= 5.2.4.2)
+ marcel (~> 0.3.1)
+ activesupport (5.2.4.2)
+ 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)
+ arel (9.0.0)
+ ast (2.4.0)
+ builder (3.2.4)
+ capybara (3.25.0)
+ addressable
+ mini_mime (>= 0.1.3)
+ nokogiri (~> 1.8)
+ rack (>= 1.6.0)
+ rack-test (>= 0.6.3)
+ regexp_parser (~> 1.5)
+ xpath (~> 3.2)
+ childprocess (3.0.0)
+ concurrent-ruby (1.1.6)
+ crass (1.0.6)
+ css_parser (1.7.1)
+ addressable
+ csv (3.1.2)
+ docile (1.3.2)
+ erubi (1.9.0)
+ globalid (0.4.2)
+ activesupport (>= 4.2.0)
+ htmlentities (4.3.4)
+ i18n (1.6.0)
+ concurrent-ruby (~> 1.0)
+ jaro_winkler (1.5.4)
+ json (2.3.0)
+ loofah (2.5.0)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.5.9)
+ mail (2.7.1)
+ mini_mime (>= 0.1.1)
+ marcel (0.3.3)
+ mimemagic (~> 0.3.2)
+ method_source (1.0.0)
+ mimemagic (0.3.4)
+ mini_magick (4.9.5)
+ mini_mime (1.0.2)
+ mini_portile2 (2.4.0)
+ minitest (5.14.0)
+ mocha (1.11.2)
+ mysql2 (0.5.3)
+ net-ldap (0.16.2)
+ nio4r (2.5.2)
+ nokogiri (1.10.9)
+ mini_portile2 (~> 2.4.0)
+ parallel (1.19.1)
+ parser (2.7.1.0)
+ ast (~> 2.4.0)
+ pg (1.1.4)
+ public_suffix (4.0.4)
+ puma (3.12.4)
+ rack (2.2.2)
+ rack-openid (1.4.2)
+ rack (>= 1.1.0)
+ ruby-openid (>= 2.1.8)
+ rack-test (1.1.0)
+ rack (>= 1.0, < 3)
+ rails (5.2.4.2)
+ actioncable (= 5.2.4.2)
+ actionmailer (= 5.2.4.2)
+ actionpack (= 5.2.4.2)
+ actionview (= 5.2.4.2)
+ activejob (= 5.2.4.2)
+ activemodel (= 5.2.4.2)
+ activerecord (= 5.2.4.2)
+ activestorage (= 5.2.4.2)
+ activesupport (= 5.2.4.2)
+ bundler (>= 1.3.0)
+ railties (= 5.2.4.2)
+ sprockets-rails (>= 2.0.0)
+ rails-dom-testing (2.0.3)
+ activesupport (>= 4.2.0)
+ nokogiri (>= 1.6)
+ rails-html-sanitizer (1.3.0)
+ loofah (~> 2.3)
+ railties (5.2.4.2)
+ actionpack (= 5.2.4.2)
+ activesupport (= 5.2.4.2)
+ method_source
+ rake (>= 0.8.7)
+ thor (>= 0.19.0, < 2.0)
+ rainbow (3.0.0)
+ rake (13.0.1)
+ rbpdf (1.20.1)
+ htmlentities
+ rbpdf-font (~> 1.19.0)
+ rbpdf-font (1.19.1)
+ redcarpet (3.5.0)
+ regexp_parser (1.7.0)
+ request_store (1.4.1)
+ rack (>= 1.4)
+ roadie (4.0.0)
+ css_parser (~> 1.4)
+ nokogiri (~> 1.8)
+ roadie-rails (2.1.1)
+ railties (>= 5.1, < 6.1)
+ roadie (>= 3.1, < 5.0)
+ rouge (3.12.0)
+ rubocop (0.76.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)
+ rubocop-performance (1.5.2)
+ rubocop (>= 0.71.0)
+ rubocop-rails (2.3.2)
+ rack (>= 1.1)
+ rubocop (>= 0.72.0)
+ ruby-openid (2.9.2)
+ ruby-progressbar (1.10.1)
+ rubyzip (2.3.0)
+ selenium-webdriver (3.142.7)
+ childprocess (>= 0.5, < 4.0)
+ rubyzip (>= 1.2.2)
+ simplecov (0.17.1)
+ docile (~> 1.1)
+ json (>= 1.8, < 3)
+ simplecov-html (~> 0.10.0)
+ simplecov-html (0.10.2)
+ sprockets (4.0.0)
+ concurrent-ruby (~> 1.0)
+ rack (> 1, < 3)
+ sprockets-rails (3.2.1)
+ actionpack (>= 4.0)
+ activesupport (>= 4.0)
+ sprockets (>= 3.0.0)
+ thor (1.0.1)
+ thread_safe (0.3.6)
+ tzinfo (1.2.7)
+ thread_safe (~> 0.1)
+ unicode-display_width (1.6.1)
+ websocket-driver (0.7.1)
+ websocket-extensions (>= 0.1.0)
+ websocket-extensions (0.1.4)
+ xpath (3.2.0)
+ nokogiri (~> 1.8)
+ yard (0.9.24)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ actionpack-xml_parser
+ bundler (>= 1.5.0)
+ capybara (~> 3.25.0)
+ csv (~> 3.1.1)
+ ffi
+ i18n (~> 1.6.0)
+ mail (~> 2.7.1)
+ mimemagic
+ mini_magick (~> 4.9.5)
+ mini_mime (~> 1.0.1)
+ mocha (>= 1.4.0)
+ mysql2 (~> 0.5.0)
+ net-ldap (~> 0.16.0)
+ nokogiri (~> 1.10.0)
+ pg (~> 1.1.4)
+ puma (~> 3.7)
+ rack-openid
+ rails (= 5.2.4.2)
+ rails-dom-testing
+ rbpdf (~> 1.20.0)
+ redcarpet (~> 3.5.0)
+ request_store (~> 1.4.1)
+ roadie-rails (~> 2.1.0)
+ rouge (~> 3.12.0)
+ rubocop (~> 0.76.0)
+ rubocop-performance (~> 1.5.0)
+ rubocop-rails (~> 2.3.0)
+ ruby-openid (~> 2.9.2)
+ selenium-webdriver
+ simplecov (~> 0.17.0)
+ tzinfo-data
+ yard
+
+RUBY VERSION
+ ruby 2.6.6p146
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/default.nix
new file mode 100644
index 000000000000..defbf9c2aec4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, bundlerEnv, ruby }:
+
+let
+ version = "4.1.1";
+ rubyEnv = bundlerEnv {
+ name = "redmine-env-${version}";
+
+ inherit ruby;
+ gemdir = ./.;
+ groups = [ "development" "ldap" "markdown" "minimagick" "openid" "test" ];
+ };
+in
+ stdenv.mkDerivation rec {
+ pname = "redmine";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
+ sha256 = "1nndy5hz8zvfglxf1f3bsb1pkrfwinfxzkdan1vjs3rkckkszyh5";
+ };
+
+ buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
+
+ # taken from https://www.redmine.org/issues/33784
+ # can be dropped when the upstream bug is closed and the fix is present in the upstream release
+ patches = [ ./0001-python3.patch ];
+
+ buildPhase = ''
+ mv config config.dist
+ mv public/themes public/themes.dist
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share
+ cp -r . $out/share/redmine
+ for i in config files log plugins public/plugin_assets public/themes tmp; do
+ rm -rf $out/share/redmine/$i
+ ln -fs /run/redmine/$i $out/share/redmine/$i
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.redmine.org/";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.aanderse ];
+ license = licenses.gpl2;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
new file mode 100644
index 000000000000..9a4deb7e155a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
@@ -0,0 +1,878 @@
+{
+ actioncable = {
+ dependencies = ["actionpack" "nio4r" "websocket-driver"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q4by8d41n972j8cdcddrwsh7qphcki50xvgm1syrawyck6w1f5v";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ actionmailer = {
+ dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kg2nayy8wmxhfp52217h80yqr0mcg793xw3cjlfg9lkvdh0nb5z";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ actionpack = {
+ dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w1l9i6q9xns4yl41l582pyc5i1xi40yyyq802drm58gwylv3wax";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ actionpack-xml_parser = {
+ dependencies = ["actionpack" "railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ actionview = {
+ dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fp3my6216lb9gp800s46y0404jwfl6xb3j9rvx4zf087497q8lp";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activejob = {
+ dependencies = ["activesupport" "globalid"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qsvb89rwqrp779mvpn67qbzidg2q6d1fa8kwybvpc93nzb9zpvi";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activemodel = {
+ dependencies = ["activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jcfdv00kmifj86d0z347nw55q1f8vwzr1aa9jrfnwz47ndi22di";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activerecord = {
+ dependencies = ["activemodel" "activesupport" "arel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yaqrh23c8krrjw6rvxv7pvnkpp46nk5aq9z2daby640si4xpmp5";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activestorage = {
+ dependencies = ["actionpack" "activerecord" "marcel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d51zp17c9k4brivm8y46rszcz07s5rb75gmkm0dpzg3rz3v38s9";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y1397g5xxinjyxjsdmp8c92yn0y3bd2hl4wbmmrpd08bggy6flc";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ arel = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0";
+ type = "gem";
+ };
+ version = "9.0.0";
+ };
+ ast = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ builder = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ capybara = {
+ dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bq1y3gy98rqgw8z69b42isc2klb75fvlwvpi36vycf1yk0sfmmx";
+ type = "gem";
+ };
+ version = "3.25.0";
+ };
+ childprocess = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ concurrent-ruby = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ crass = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
+ type = "gem";
+ };
+ version = "1.0.6";
+ };
+ css_parser = {
+ dependencies = ["addressable"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ csv = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00szzw96bqz59r0kaab4p75qb0wq54iahmq37wpdg96bxc8y80f5";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ docile = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+ type = "gem";
+ };
+ version = "1.3.2";
+ };
+ erubi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ globalid = {
+ dependencies = ["activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ htmlentities = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+ type = "gem";
+ };
+ version = "4.3.4";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ jaro_winkler = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
+ type = "gem";
+ };
+ version = "1.5.4";
+ };
+ json = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ loofah = {
+ dependencies = ["crass" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040";
+ type = "gem";
+ };
+ version = "2.5.0";
+ };
+ mail = {
+ dependencies = ["mini_mime"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+ type = "gem";
+ };
+ version = "2.7.1";
+ };
+ marcel = {
+ dependencies = ["mimemagic"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ method_source = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ mimemagic = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0frrfvz52fh4v1sb2xr9pyxhrxm5f7jppqxagpmd7c5ific66l9p";
+ type = "gem";
+ };
+ version = "0.3.4";
+ };
+ mini_magick = {
+ groups = ["minimagick"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4";
+ type = "gem";
+ };
+ version = "4.9.5";
+ };
+ mini_mime = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ mini_portile2 = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ minitest = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+ type = "gem";
+ };
+ version = "5.14.0";
+ };
+ mocha = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hxmkm8qxd04vwj8mqnpyrf2dwy7g1k9zipdfhl4y71cw7ijm9n4";
+ type = "gem";
+ };
+ version = "1.11.2";
+ };
+ mysql2 = {
+ groups = ["default"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mingw";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d14pcy5m4hjig0zdxnl9in5f4izszc7v9zcczf2gyi5kiyxk8jw";
+ type = "gem";
+ };
+ version = "0.5.3";
+ };
+ net-ldap = {
+ groups = ["ldap"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg";
+ type = "gem";
+ };
+ version = "0.16.2";
+ };
+ nio4r = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c";
+ type = "gem";
+ };
+ version = "2.5.2";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+ type = "gem";
+ };
+ version = "1.10.9";
+ };
+ parallel = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2";
+ type = "gem";
+ };
+ version = "1.19.1";
+ };
+ parser = {
+ dependencies = ["ast"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07awrcwm2xibglrh7qwpj24vwzn9p64m7bmfr9xbrlffaznr0ii7";
+ type = "gem";
+ };
+ version = "2.7.1.0";
+ };
+ pg = {
+ groups = ["default"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mingw";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ public_suffix = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l1kqw75asziwmzrig8rywxswxz8l91sc3pvns02ffsqac1a3wiz";
+ type = "gem";
+ };
+ version = "4.0.4";
+ };
+ puma = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mg8yh478mh55pg7pv8z7xyvk35ra98hy61z9lwkfr8fzyyz57zs";
+ type = "gem";
+ };
+ version = "3.12.4";
+ };
+ rack = {
+ groups = ["default" "openid" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ rack-openid = {
+ dependencies = ["rack" "ruby-openid"];
+ groups = ["openid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc";
+ type = "gem";
+ };
+ version = "1.4.2";
+ };
+ rack-test = {
+ dependencies = ["rack"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ rails = {
+ dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x8k6n4yziwf386prhvr9d9plc9fwv0j8spw2bnmkwhf54v2ias4";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ rails-dom-testing = {
+ dependencies = ["activesupport" "nokogiri"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ rails-html-sanitizer = {
+ dependencies = ["loofah"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ railties = {
+ dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p2rnd1xdqlk19k3m5gd058yzvwjj25k5hwn4km683b5dhylpd16";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ rainbow = {
+ groups = ["default" "test"];
+ 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";
+ };
+ rbpdf = {
+ dependencies = ["htmlentities" "rbpdf-font"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sdj8frakpdms820rwlil38h9bh3p24xmwnjrxsjc1p9irc3za71";
+ type = "gem";
+ };
+ version = "1.20.1";
+ };
+ rbpdf-font = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v";
+ type = "gem";
+ };
+ version = "1.19.1";
+ };
+ redcarpet = {
+ groups = ["markdown"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k";
+ type = "gem";
+ };
+ version = "3.5.0";
+ };
+ regexp_parser = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0l2vcj9qffj5b3v9jsyi4k994bdj3rjz7l9ql8x04lndqxfrrrv2";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ request_store = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ roadie = {
+ dependencies = ["css_parser" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01kld3drqfiih5x8c13cvr6dpvdl7jml0v9bcw4fsy322lax3kn0";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ roadie-rails = {
+ dependencies = ["railties" "roadie"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fmn7kkbpgipjsx65rw7hqa3bwinlqykx5qf1x28ya9ag8v2q0ph";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ rouge = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08fpnxbhqv5sqpnfjasl1ysxafssyq4q1yhcqamqqzmb9czj1czw";
+ type = "gem";
+ };
+ version = "3.12.0";
+ };
+ rubocop = {
+ dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07x51ixlx76y194xsszh5lbkaqakz44ykbrjxg3qaggbs18790q0";
+ type = "gem";
+ };
+ version = "0.76.0";
+ };
+ rubocop-performance = {
+ dependencies = ["rubocop"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fk9nd3b24avgsqp726hy2pl1iyfjrh6jni97wkky6kqy0lq6zq2";
+ type = "gem";
+ };
+ version = "1.5.2";
+ };
+ rubocop-rails = {
+ dependencies = ["rack" "rubocop"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q7ffsq1cjm4m949nh935kjzv4zf1pacnrl00siwh8flhcn3mmjf";
+ type = "gem";
+ };
+ version = "2.3.2";
+ };
+ ruby-openid = {
+ groups = ["openid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "190p1m0bxd9xkfk1j6cpcv3x5c367g36nsglg4m1fcwqdd13k3kz";
+ type = "gem";
+ };
+ version = "2.9.2";
+ };
+ ruby-progressbar = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+ type = "gem";
+ };
+ version = "1.10.1";
+ };
+ rubyzip = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ selenium-webdriver = {
+ dependencies = ["childprocess" "rubyzip"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0adcvp86dinaqq3nhf8p3m0rl2g6q0a4h52k0i7kdnsg1qz9k86y";
+ type = "gem";
+ };
+ version = "3.142.7";
+ };
+ simplecov = {
+ dependencies = ["docile" "json" "simplecov-html"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw";
+ type = "gem";
+ };
+ version = "0.17.1";
+ };
+ simplecov-html = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+ type = "gem";
+ };
+ version = "0.10.2";
+ };
+ sprockets = {
+ dependencies = ["concurrent-ruby" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jm37zpvvm1arxjwrd6am0wrdbfhrhc5y0l4p2i3p11z04bsvgap";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ sprockets-rails = {
+ dependencies = ["actionpack" "activesupport" "sprockets"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ thor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ thread_safe = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ unicode-display_width = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x";
+ type = "gem";
+ };
+ version = "1.6.1";
+ };
+ websocket-driver = {
+ dependencies = ["websocket-extensions"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ websocket-extensions = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ xpath = {
+ dependencies = ["nokogiri"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd";
+ type = "gem";
+ };
+ version = "3.2.0";
+ };
+ yard = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g0bw2qcl48fxawrdf68l229508z53mrqisavji2lkxzv4w4j2pp";
+ type = "gem";
+ };
+ version = "0.9.24";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix
new file mode 100644
index 000000000000..f52fd30d8391
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, makeWrapper, python27Packages, git
+, docbook_xml_dtd_412, docbook_xsl, asciidoc, xmlto, pypy
+, breezy ? null, cvs ? null, darcs ? null, fossil ? null
+, mercurial ? null, monotone ? null, rcs ? null
+, subversion ? null, cvs_fast_export ? null }:
+
+with stdenv; with lib;
+let
+ inherit (python27Packages) python;
+in mkDerivation rec {
+ name = "reposurgeon-${meta.version}";
+ meta = {
+ description = "A tool for editing version-control repository history";
+ version = "3.44";
+ license = licenses.bsd3;
+ homepage = "http://www.catb.org/esr/reposurgeon/";
+ maintainers = with maintainers; [ dfoxfranke ];
+ platforms = platforms.all;
+ };
+
+ src = fetchurl {
+ url = "http://www.catb.org/~esr/reposurgeon/reposurgeon-3.44.tar.xz";
+ sha256 = "0il6hwrsm2qgg0vp5fcjh478y2x4zyw3mx2apcwc7svfj86pf7pn";
+ };
+
+ # install fails because the files README.md, NEWS, and TODO were not included in the source distribution
+ patches = [ ./fix-makefile.patch ];
+
+ buildInputs =
+ [ docbook_xml_dtd_412 docbook_xsl asciidoc xmlto makeWrapper pypy ];
+
+ preBuild = ''
+ makeFlagsArray=(
+ XML_CATALOG_FILES="${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml"
+ prefix="$out"
+ pyinclude="-I${python}/include/python2.7"
+ pylib="-L${python}/lib -lpython2.7"
+ )
+ '';
+
+ postInstall =
+ let
+ binpath = makeBinPath (
+ filter (x: x != null)
+ [ out git breezy cvs darcs fossil mercurial
+ monotone rcs src subversion cvs_fast_export ]
+ );
+ pythonpath = makeSearchPathOutput "lib" python.sitePackages (
+ filter (x: x != null)
+ [ python27Packages.readline or null python27Packages.hglib or null ]
+ );
+ in ''
+ for prog in reposurgeon repodiffer repotool; do
+ wrapProgram $out/bin/$prog \
+ --prefix PATH : "${binpath}" \
+ --prefix PYTHONPATH : "${pythonpath}"
+ done
+ ''
+ ;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch
new file mode 100644
index 000000000000..0a659c93406d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch
@@ -0,0 +1,12 @@
+diff -Naur reposurgeon-3.44/Makefile reposurgeon-3.44-new/Makefile
+--- reposurgeon-3.44/Makefile 2018-04-29 12:27:43.000000000 -0700
++++ reposurgeon-3.44-new/Makefile 2018-08-01 17:38:15.582789739 -0700
+@@ -36,7 +36,7 @@
+ MANPAGES = reposurgeon.1 repotool.1 repodiffer.1 repomapper.1 repocutter.1
+ HTMLFILES = $(MANPAGES:.1=.html) \
+ dvcs-migration-guide.html features.html reporting-bugs.html
+-SHARED = README.md NEWS TODO reposurgeon-git-aliases $(HTMLFILES)
++SHARED = reposurgeon-git-aliases $(HTMLFILES)
+
+ all: $(MANPAGES) $(HTMLFILES)
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sit/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sit/default.nix
new file mode 100644
index 000000000000..d19f9862fca8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sit/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, rustPlatform, cmake, libzip, gnupg,
+ # Darwin
+ libiconv, CoreFoundation, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "sit";
+ version = "0.4.1";
+
+ src = fetchFromGitHub {
+ owner = "sit-fyi";
+ repo = "sit";
+ rev = "v${version}";
+ sha256 = "06xkhlfix0h6di6cnvc4blbj3mjy90scbh89dvywbx16wjlc79pf";
+ };
+
+ buildInputs = [ cmake libzip gnupg ] ++
+ (if stdenv.isDarwin then [ libiconv CoreFoundation Security ] else []);
+
+ preCheck = ''
+ export HOME=$(mktemp -d)
+ '';
+
+ cargoSha256 = "092yfpr2svp1qy7xis1q0sdkbsjmmswmdwb0rklrc0yhydcsghp9";
+
+ meta = with stdenv.lib; {
+ description = "Serverless Information Tracker";
+ homepage = "https://sit.fyi/";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ dywedir yrashk ];
+ # Upstream has not had a release in several years, and dependencies no
+ # longer compile with the latest Rust compiler.
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix
new file mode 100644
index 000000000000..51fe70d3952f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix
@@ -0,0 +1,94 @@
+{ stdenv
+, fetchurl
+, makeDesktopItem
+, jre
+, gtk3
+, glib
+, gnome3
+, wrapGAppsHook
+, libXtst
+, which
+}:
+
+stdenv.mkDerivation rec {
+ pname = "smartgithg";
+ version = "19.1.1";
+
+ src = fetchurl {
+ url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.gz";
+ sha256 = "0i0dvyy9d63f4hk8czlyk83ai0ywhqp7wbdkq3s87l7irwgs42jy";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+
+ buildInputs = [ jre gnome3.adwaita-icon-theme gtk3 ];
+
+ preFixup = with stdenv.lib; ''
+ gappsWrapperArgs+=( \
+ --prefix PATH : ${makeBinPath [ jre which ]} \
+ --prefix LD_LIBRARY_PATH : ${makeLibraryPath [
+ gtk3
+ glib
+ libXtst
+ ]} \
+ --prefix JRE_HOME : ${jre} \
+ --prefix JAVA_HOME : ${jre} \
+ --prefix SMARTGITHG_JAVA_HOME : ${jre} \
+ ) \
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ sed -i '/ --login/d' bin/smartgit.sh
+ mkdir -pv $out/{bin,share/applications,share/icons/hicolor/scalable/apps/}
+ cp -av ./{dictionaries,lib} $out/
+ cp -av bin/smartgit.sh $out/bin/smartgit
+ ln -sfv $out/bin/smartgit $out/bin/smartgithg
+
+ cp -av $desktopItem/share/applications/* $out/share/applications/
+ for icon_size in 32 48 64 128 256; do
+ path=$icon_size'x'$icon_size
+ icon=bin/smartgit-$icon_size.png
+ mkdir -p $out/share/icons/hicolor/$path/apps
+ cp $icon $out/share/icons/hicolor/$path/apps/smartgit.png
+ done
+
+ cp -av bin/smartgit.svg $out/share/icons/hicolor/scalable/apps/
+
+ runHook postInstall
+ '';
+
+ desktopItem = with stdenv.lib; makeDesktopItem rec {
+ name = "smartgit";
+ exec = "smartgit";
+ comment = meta.description;
+ icon = "smartgit";
+ desktopName = "SmartGit";
+ categories = concatStringsSep ";" [
+ "Application"
+ "Development"
+ "RevisionControl"
+ ];
+ mimeType = concatStringsSep ";" [
+ "x-scheme-handler/git"
+ "x-scheme-handler/smartgit"
+ "x-scheme-handler/sourcetree"
+ ];
+ startupNotify = "true";
+ extraEntries = ''
+ Keywords=git
+ StartupWMClass=${name}
+ Version=1.0
+ Encoding=UTF-8
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ description = "GUI for Git, Mercurial, Subversion";
+ homepage = "https://www.syntevo.com/smartgit/";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ jraygauthier ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
new file mode 100644
index 000000000000..e5fc7c338604
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, buildGoModule
+, srht, redis, celery, pyyaml, markdown }:
+
+let
+ version = "0.63.4";
+
+ buildWorker = src: buildGoModule {
+ inherit src version;
+ pname = "builds-sr-ht-worker";
+
+ vendorSha256 = "1sbcjp93gb0c4p7dd1gjhmhwr1pygxvrrzp954j2fvxvi38w6571";
+ };
+in buildPythonPackage rec {
+ inherit version;
+ pname = "buildsrht";
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/builds.sr.ht";
+ rev = version;
+ sha256 = "1w3rb685nqg2h0k3ag681svc400si9r1gy0sdim3wa2qh8glbqni";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ redis
+ celery
+ pyyaml
+ markdown
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ postInstall = ''
+ mkdir -p $out/lib
+ mkdir -p $out/bin/builds.sr.ht
+
+ cp -r images $out/lib
+ cp contrib/submit_image_build $out/bin/builds.sr.ht
+ cp ${buildWorker "${src}/worker"}/bin/worker $out/bin/builds.sr.ht-worker
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/builds.sr.ht";
+ description = "Continuous integration service for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix
new file mode 100644
index 000000000000..4252fac1165c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchgit, fetchNodeModules, buildPythonPackage
+, pgpy, flask, bleach, humanize, html5lib, markdown, psycopg2, pygments
+, requests, sqlalchemy, cryptography, beautifulsoup4, sqlalchemy-utils, prometheus_client
+, celery, alembic, importlib-metadata, mistletoe
+, sassc, nodejs
+, writeText }:
+
+buildPythonPackage rec {
+ pname = "srht";
+ version = "0.65.2";
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/core.sr.ht";
+ rev = version;
+ sha256 = "1jfp1vc8mink3c7ccacgnqx8hpkck82ipxiql38q1y9l8xcsah03";
+ };
+
+ node_modules = fetchNodeModules {
+ src = "${src}/srht";
+ nodejs = nodejs;
+ sha256 = "0gwa2xb75g7fclrsr7r131kj8ri5gmhd96yw1iws5pmgsn2rlqi1";
+ };
+
+ patches = [
+ ./disable-npm-install.patch
+ ];
+
+ nativeBuildInputs = [
+ sassc
+ nodejs
+ ];
+
+ propagatedBuildInputs = [
+ pgpy
+ flask
+ bleach
+ humanize
+ html5lib
+ markdown
+ psycopg2
+ pygments
+ requests
+ mistletoe
+ sqlalchemy
+ cryptography
+ beautifulsoup4
+ sqlalchemy-utils
+ prometheus_client
+
+ # Unofficial runtime dependencies?
+ celery
+ alembic
+ importlib-metadata
+ ];
+
+ PKGVER = version;
+
+ preBuild = ''
+ cp -r ${node_modules} srht/node_modules
+ '';
+
+ dontUseSetuptoolsCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/srht";
+ description = "Core modules for sr.ht";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix
new file mode 100644
index 000000000000..8d2e8ceed335
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix
@@ -0,0 +1,41 @@
+{ python38, openssl
+, callPackage, recurseIntoAttrs }:
+
+# To expose the *srht modules, they have to be a python module so we use `buildPythonModule`
+# Then we expose them through all-packages.nix as an application through `toPythonApplication`
+# https://github.com/NixOS/nixpkgs/pull/54425#discussion_r250688781
+
+let
+ fetchNodeModules = callPackage ./fetchNodeModules.nix { };
+
+ python = python38.override {
+ packageOverrides = self: super: {
+ srht = self.callPackage ./core.nix { inherit fetchNodeModules; };
+
+ buildsrht = self.callPackage ./builds.nix { };
+ dispatchsrht = self.callPackage ./dispatch.nix { };
+ gitsrht = self.callPackage ./git.nix { };
+ hgsrht = self.callPackage ./hg.nix { };
+ hubsrht = self.callPackage ./hub.nix { };
+ listssrht = self.callPackage ./lists.nix { };
+ mansrht = self.callPackage ./man.nix { };
+ metasrht = self.callPackage ./meta.nix { };
+ pastesrht = self.callPackage ./paste.nix { };
+ todosrht = self.callPackage ./todo.nix { };
+
+ scmsrht = self.callPackage ./scm.nix { };
+ };
+ };
+in with python.pkgs; recurseIntoAttrs {
+ inherit python;
+ buildsrht = toPythonApplication buildsrht;
+ dispatchsrht = toPythonApplication dispatchsrht;
+ gitsrht = toPythonApplication gitsrht;
+ hgsrht = toPythonApplication hgsrht;
+ hubsrht = toPythonApplication hubsrht;
+ listssrht = toPythonApplication listssrht;
+ mansrht = toPythonApplication mansrht;
+ metasrht = toPythonApplication metasrht;
+ pastesrht = toPythonApplication pastesrht;
+ todosrht = toPythonApplication todosrht;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/disable-npm-install.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/disable-npm-install.patch
new file mode 100644
index 000000000000..3a8d1c82b341
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/disable-npm-install.patch
@@ -0,0 +1,14 @@
+diff --git a/setup.py b/setup.py
+index d63bac8..e1d0c35 100755
+--- a/setup.py
++++ b/setup.py
+@@ -5,9 +5,6 @@ import glob
+ import os
+ import sys
+
+-if subprocess.call(["npm", "i"], cwd="srht") != 0:
+- sys.exit(1)
+-
+ ver = os.environ.get("PKGVER") or subprocess.run(['git', 'describe', '--tags'],
+ stdout=subprocess.PIPE).stdout.decode().strip()
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
new file mode 100644
index 000000000000..fa557ce78aa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, srht, pyyaml, PyGithub }:
+
+buildPythonPackage rec {
+ pname = "dispatchsrht";
+ version = "0.14.9";
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/dispatch.sr.ht";
+ rev = version;
+ sha256 = "JUffuJTKY4I8CrJc8tJWL+CbJCZtiqtUSO9SgYoeux0=";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ pyyaml
+ PyGithub
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://dispatch.sr.ht/~sircmpwn/dispatch.sr.ht";
+ description = "Task dispatcher and service integration tool for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/fetchNodeModules.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/fetchNodeModules.nix
new file mode 100644
index 000000000000..047890a932ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/fetchNodeModules.nix
@@ -0,0 +1,26 @@
+{ stdenv, jq }: { src, nodejs, sha256 }:
+
+# Only npm >= 5.4.2 is deterministic, see:
+# https://github.com/npm/npm/issues/17979#issuecomment-332701215
+assert stdenv.lib.versionAtLeast nodejs.version "8.9.0";
+
+stdenv.mkDerivation {
+ name = "node_modules";
+
+ outputHashAlgo = "sha256";
+ outputHash = sha256;
+ outputHashMode = "recursive";
+
+ nativeBuildInputs = [ jq nodejs ];
+
+ buildCommand = ''
+ cp -r ${src}/* .
+ HOME=. npm install --force --ignore-scripts --only=production
+ for f in $(find node_modules -name package.json); do
+ # https://github.com/npm/npm/issues/10393
+ jq -S 'delpaths(keys | map(select(startswith("_")) | [.]))' $f > $f.tmp
+ mv $f.tmp $f
+ done
+ mv node_modules $out
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
new file mode 100644
index 000000000000..3611ad93e17e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, buildGoModule
+, srht, minio, pygit2, scmsrht }:
+
+let
+ version = "0.61.10";
+
+ buildShell = src: buildGoModule {
+ inherit src version;
+ pname = "gitsrht-shell";
+ vendorSha256 = "1abyv2s5l3bs0iylpgyj3jri2hh1iy8fiadxm7g6l2vl58h0b9ba";
+ };
+
+ buildDispatcher = src: buildGoModule {
+ inherit src version;
+ pname = "gitsrht-dispatcher";
+ vendorSha256 = "1lzkf13m54pq0gnn3bcxc80nfg76hgck4l8q8jpaicrsiwgcyrd9";
+ };
+
+ buildKeys = src: buildGoModule {
+ inherit src version;
+ pname = "gitsrht-keys";
+ vendorSha256 = "1d94cqy7x0q0agwg515xxsbl70b3qrzxbzsyjhn1pbyj532brn7f";
+ };
+
+ buildUpdateHook = src: buildGoModule {
+ inherit src version;
+ pname = "gitsrht-update-hook";
+ vendorSha256 = "0fwzqpjv8x5y3w3bfjd0x0cvqjjak23m0zj88hf32jpw49xmjkih";
+ };
+
+ buildAPI = src: buildGoModule {
+ inherit src version;
+ pname = "gitsrht-api";
+ vendorSha256 = "0d6kmsbsgj2q5nddx4w675zbsiarffj9vqplwvqk7dwz4id2wnif";
+ };
+in buildPythonPackage rec {
+ pname = "gitsrht";
+ inherit version;
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/git.sr.ht";
+ rev = version;
+ sha256 = "0g7aj5wlns0m3kf2aajqjjb5fwk5vbb8frrkdfp4118235h3xcqy";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ minio
+ pygit2
+ scmsrht
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ postInstall = ''
+ mkdir -p $out/bin
+ cp ${buildShell "${src}/gitsrht-shell"}/bin/gitsrht-shell $out/bin/gitsrht-shell
+ cp ${buildDispatcher "${src}/gitsrht-dispatch"}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch
+ cp ${buildKeys "${src}/gitsrht-keys"}/bin/gitsrht-keys $out/bin/gitsrht-keys
+ cp ${buildUpdateHook "${src}/gitsrht-update-hook"}/bin/gitsrht-update-hook $out/bin/gitsrht-update-hook
+ cp ${buildAPI "${src}/api"}/bin/api $out/bin/gitsrht-api
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/git.sr.ht";
+ description = "Git repository hosting service for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
new file mode 100644
index 000000000000..73c9dfeb71e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchhg, buildPythonPackage
+, python
+, srht, hglib, scmsrht, unidiff }:
+
+buildPythonPackage rec {
+ pname = "hgsrht";
+ version = "0.26.19";
+
+ src = fetchhg {
+ url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht";
+ rev = version;
+ sha256 = "0dc0lgqq8zdaywbd50dlxypk1lv0nffvqr3889v10ycy45qcfymv";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ hglib
+ scmsrht
+ unidiff
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/hg.sr.ht";
+ description = "Mercurial repository hosting service for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
new file mode 100644
index 000000000000..5c9736564c39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, srht }:
+
+buildPythonPackage rec {
+ pname = "hubsrht";
+ version = "0.11.5";
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/hub.sr.ht";
+ rev = version;
+ sha256 = "0cysdfy1z69jaizblbq0ywpcvcnx57rlzg42k98kd9w2mqzj5173";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/hub.sr.ht";
+ description = "Project hub service for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
new file mode 100644
index 000000000000..880dc60f0b3a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, srht, asyncpg, aiosmtpd, pygit2, emailthreads }:
+
+buildPythonPackage rec {
+ pname = "listssrht";
+ version = "0.45.15";
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/lists.sr.ht";
+ rev = version;
+ sha256 = "0f3yl5nf385j7mhcrmda7zk58i1y6fm00i479js90xxhjifmqkq6";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ pygit2
+ asyncpg
+ aiosmtpd
+ emailthreads
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/lists.sr.ht";
+ description = "Mailing list service for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
new file mode 100644
index 000000000000..8072c74d2d0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, srht, pygit2 }:
+
+buildPythonPackage rec {
+ pname = "mansrht";
+ version = "0.15.4";
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/man.sr.ht";
+ rev = version;
+ sha256 = "0spi0yy2myxw4kggy54yskda14c4vaq2ng9dd9krqsajnsy7anrw";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ pygit2
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/man.sr.ht";
+ description = "Wiki service for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
new file mode 100644
index 000000000000..6cbae6715172
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, buildGoModule
+, pgpy, srht, redis, bcrypt, qrcode, stripe, zxcvbn, alembic, pystache
+, sshpubkeys, weasyprint }:
+
+let
+ version = "0.51.2";
+
+ buildAPI = src: buildGoModule {
+ inherit src version;
+ pname = "metasrht-api";
+
+ vendorSha256 = "0k7i7j604wqvzjavmcsw7g2x059jkkgrgz1qyvzlqc0y4ws59xkq";
+ };
+in buildPythonPackage rec {
+ pname = "metasrht";
+ inherit version;
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/meta.sr.ht";
+ rev = version;
+ sha256 = "0c9y1hzx3dj0awxrhkzrcsmy6q9fqm6v6dbp9y1ria3v47xa3nv7";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ pgpy
+ srht
+ redis
+ bcrypt
+ qrcode
+ stripe
+ zxcvbn
+ alembic
+ pystache
+ sshpubkeys
+ weasyprint
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ postInstall = ''
+ mkdir -p $out/bin
+ cp ${buildAPI "${src}/api"}/bin/api $out/bin/metasrht-api
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/meta.sr.ht";
+ description = "Account management service for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
new file mode 100644
index 000000000000..a2fdaa05efca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, srht, pyyaml }:
+
+buildPythonPackage rec {
+ pname = "pastesrht";
+ version = "0.11.2";
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/paste.sr.ht";
+ rev = version;
+ sha256 = "15hm5165v8a7ryw6i0vlf189slw4rp22cfgzznih18pbml7d0c8s";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ pyyaml
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/paste.sr.ht";
+ description = "Ad-hoc text file hosting service for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix
new file mode 100644
index 000000000000..08739f6d8ab9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, buildPythonPackage
+, srht, redis, pyyaml, buildsrht
+, writeText }:
+
+buildPythonPackage rec {
+ pname = "scmsrht";
+ version = "0.22.4";
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/scm.sr.ht";
+ rev = version;
+ sha256 = "1djyrwa44wml9lj3njy6qbxyc3g1msswbh0y9jyjzxh2c02bl3jn";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ redis
+ pyyaml
+ buildsrht
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ dontUseSetuptoolsCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.sr.ht/~sircmpwn/git.sr.ht";
+ description = "Shared support code for sr.ht source control services.";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
new file mode 100644
index 000000000000..7528ae534fae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, srht, redis, alembic, pystache
+, pytest, factory_boy, writeText }:
+
+buildPythonPackage rec {
+ pname = "todosrht";
+ version = "0.62.1";
+
+ src = fetchgit {
+ url = "https://git.sr.ht/~sircmpwn/todo.sr.ht";
+ rev = version;
+ sha256 = "17fsv2z37sjzqzpvx39nc36xln1ayivzjg309d2vmb94aaym4nz2";
+ };
+
+ nativeBuildInputs = srht.nativeBuildInputs;
+
+ propagatedBuildInputs = [
+ srht
+ redis
+ alembic
+ pystache
+ ];
+
+ preBuild = ''
+ export PKGVER=${version}
+ '';
+
+ # pytest tests fail
+ checkInputs = [
+ pytest
+ factory_boy
+ ];
+
+ dontUseSetuptoolsCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://todo.sr.ht/~sircmpwn/todo.sr.ht";
+ description = "Ticket tracking service for the sr.ht network";
+ license = licenses.agpl3;
+ maintainers = with maintainers; [ eadwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh
new file mode 100755
index 000000000000..156d4cc35e44
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh
@@ -0,0 +1,54 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p git mercurial common-updater-scripts
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+root=../../../..
+
+default() {
+ (cd "$root" && nix-instantiate --eval --strict -A "sourcehut.python.pkgs.$1.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')
+}
+
+version() {
+ (cd "$root" && nix-instantiate --eval --strict -A "sourcehut.python.pkgs.$1.version" | tr -d '"')
+}
+
+src_url() {
+ (cd "$root" && nix-instantiate --eval --strict -A "sourcehut.python.pkgs.$1.src.drvAttrs.url" | tr -d '"')
+}
+
+get_latest_version() {
+ src="$(src_url "$1")"
+ tmp=$(mktemp -d)
+
+ if [ "$1" = "hgsrht" ]; then
+ hg clone "$src" "$tmp" &> /dev/null
+ printf "%s" "$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')"
+ else
+ git clone "$src" "$tmp"
+ printf "%s" "$(cd "$tmp" && git describe $(git rev-list --tags --max-count=1))"
+ fi
+}
+
+update_version() {
+ default_nix="$(default "$1")"
+ version_old="$(version "$1")"
+ version="$(get_latest_version "$1")"
+
+ (cd "$root" && update-source-version "sourcehut.python.pkgs.$1" "$version")
+
+ git add "$default_nix"
+ git commit -m "$1: $version_old -> $version"
+}
+
+services=( "srht" "buildsrht" "dispatchsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht"
+ "metasrht" "pastesrht" "todosrht" "scmsrht" )
+
+# Whether or not a specific service is requested
+if [ -n "$1" ]; then
+ version="$(get_latest_version "$1")"
+ (cd "$root" && update-source-version "sourcehut.python.pkgs.$1" "$version")
+else
+ for service in "${services[@]}"; do
+ update_version "$service"
+ done
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix
new file mode 100644
index 000000000000..6f639ecd77fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix
@@ -0,0 +1,89 @@
+{
+ appindicator-sharp,
+ coreutils,
+ fetchFromGitHub,
+ git,
+ git-lfs,
+ glib,
+ gtk-sharp-3_0,
+ lib,
+ makeWrapper,
+ meson,
+ mono,
+ ninja,
+ notify-sharp,
+ openssh,
+ openssl,
+ pkg-config,
+ stdenv,
+ symlinkJoin,
+ webkit2-sharp,
+ xdg_utils,
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sparkleshare";
+ version = "3.38";
+
+ src = fetchFromGitHub {
+ owner = "hbons";
+ repo = "SparkleShare";
+ rev = version;
+ sha256 = "1a9csflmj96iyr1l0mdm3ziv1bljfcjnzm9xb2y4qqk7ha2p6fbq";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper
+ meson
+ mono
+ ninja
+ pkg-config
+ ];
+
+ buildInputs = [
+ appindicator-sharp
+ gtk-sharp-3_0
+ notify-sharp
+ webkit2-sharp
+ ];
+
+ patchPhase = ''
+ # Nix will manage the icon cache.
+ echo '#!/bin/sh' >scripts/post-install.sh
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/sparkleshare \
+ --set PATH ${symlinkJoin {
+ name = "mono-path";
+ paths = [
+ coreutils
+ git
+ git-lfs
+ glib
+ mono
+ openssh
+ openssl
+ xdg_utils
+ ];
+ }}/bin \
+ --set MONO_GAC_PREFIX ${lib.concatStringsSep ":" [
+ appindicator-sharp
+ gtk-sharp-3_0
+ webkit2-sharp
+ ]} \
+ --set LD_LIBRARY_PATH ${lib.makeLibraryPath [
+ appindicator-sharp
+ gtk-sharp-3_0.gtk3
+ webkit2-sharp
+ webkit2-sharp.webkitgtk
+ ]}
+ '';
+
+ meta = {
+ description = "Share and collaborate by syncing with any Git repository instantly. Linux, macOS, and Windows";
+ homepage = "https://sparkleshare.org";
+ license = lib.licenses.gpl3;
+ maintainers = with lib.maintainers; [ kevincox ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/src/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/src/default.nix
new file mode 100644
index 000000000000..58549fed73a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/src/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, python, rcs, git, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "src";
+ version = "1.28";
+
+ src = fetchurl {
+ url = "http://www.catb.org/~esr/src/${pname}-${version}.tar.gz";
+ sha256 = "1fkr5z3mlj13djz9w1sb644wc7r1fywz52qq97byw1yyw0bqyi7f";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ python rcs git ];
+
+ preConfigure = ''
+ patchShebangs .
+ '';
+
+ makeFlags = [ "prefix=${placeholder "out"}" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/src \
+ --suffix PATH ":" "${rcs}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple single-file revision control";
+ longDescription = ''
+ SRC, acronym of Simple Revision Control, is RCS/SCCS reloaded with a
+ modern UI, designed to manage single-file solo projects kept more than one
+ to a directory. Use it for FAQs, ~/bin directories, config files, and the
+ like. Features integer sequential revision numbers, a command set that
+ will seem familiar to Subversion/Git/hg users, and no binary blobs
+ anywhere.
+ '';
+ homepage = "http://www.catb.org/esr/src/";
+ changelog = "https://gitlab.com/esr/src/raw/${version}/NEWS";
+ license = licenses.bsd2;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ calvertvl AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/srcml/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/srcml/default.nix
new file mode 100644
index 000000000000..6deca94fc15c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/srcml/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, cmake, libxml2, libxslt, boost, libarchive, python, antlr,
+ curl
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ version = "0.9.5_beta";
+ pname = "srcml";
+
+ src = fetchurl {
+ url = "http://www.sdml.cs.kent.edu/lmcrs/srcML-${version}-src.tar.gz";
+ sha256 = "13pswdi75qjsw7z75lz7l3yjsvb58drihla2mwj0f9wfahaj3pam";
+ };
+
+ prePatch = ''
+ patchShebangs .
+ substituteInPlace CMake/install.cmake --replace /usr/local $out
+ '';
+
+ patches = [
+ ./gcc6.patch
+ ];
+
+ nativeBuildInputs = [ cmake antlr ];
+ buildInputs = [ libxml2 libxslt boost libarchive python curl ];
+
+ meta = {
+ description = "Infrastructure for exploration, analysis, and manipulation of source code";
+ homepage = "https://www.srcml.org";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ leenaars ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch
new file mode 100644
index 000000000000..7cd596d9ea78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch
@@ -0,0 +1,26 @@
+diff --git i/CMake/config.cmake w/CMake/config.cmake
+index 28f8047..c596cf8 100644
+--- i/CMake/config.cmake
++++ w/CMake/config.cmake
+@@ -95,7 +95,7 @@ else()
+ find_package(LibXml2 REQUIRED)
+ find_package(CURL REQUIRED)
+ set(Boost_NO_BOOST_CMAKE ON)
+- set(Boost_USE_STATIC_LIBS ON)
++ set(Boost_USE_STATIC_LIBS OFF)
+ find_package(Boost COMPONENTS program_options filesystem system thread regex date_time REQUIRED)
+
+ # add include directories
+diff --git i/src/libsrcml/srcml_reader_handler.hpp w/src/libsrcml/srcml_reader_handler.hpp
+index 0b23fed..c02dfef 100644
+--- i/src/libsrcml/srcml_reader_handler.hpp
++++ w/src/libsrcml/srcml_reader_handler.hpp
+@@ -456,7 +456,7 @@ public :
+
+ if(uri == SRCML_CPP_NS_URI) {
+
+- if(archive->language != 0) {
++ if(srcml_check_language(archive->language->c_str()) != 0) {
+
+ if(*archive->language == "C++" || *archive->language == "C" || *archive->language == "Objective-C")
+ archive->options |= SRCML_OPTION_CPP | SRCML_OPTION_CPP_NOMACRO;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix
new file mode 100644
index 000000000000..ad540c46411d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix
@@ -0,0 +1,127 @@
+{ buildVersion, sha256, dev ? false }:
+
+{ fetchurl, stdenv, xorg, glib, libGL, glibcLocales, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
+, pkexecPath ? "/run/wrappers/bin/pkexec"
+, writeScript, common-updater-scripts, curl, gnugrep, coreutils
+}:
+
+let
+ pname = "sublime-merge";
+ packageAttribute = "sublime-merge${stdenv.lib.optionalString dev "-dev"}";
+ binaries = [ "sublime_merge" "crash_reporter" "git-credential-sublime" "ssh-askpass-sublime" ];
+ primaryBinary = "sublime_merge";
+ primaryBinaryAliases = [ "smerge" ];
+ downloadUrl = "https://download.sublimetext.com/sublime_merge_build_${buildVersion}_${arch}.tar.xz";
+ versionUrl = "https://www.sublimemerge.com/${if dev then "dev" else "download"}";
+ versionFile = builtins.toString ./default.nix;
+ archSha256 = sha256;
+ arch = "x64";
+
+ libPath = stdenv.lib.makeLibraryPath [ xorg.libX11 glib gtk3 cairo pango ];
+ redirects = [ "/usr/bin/pkexec=${pkexecPath}" "/bin/true=${coreutils}/bin/true" ];
+in let
+ binaryPackage = stdenv.mkDerivation {
+ pname = "${pname}-bin";
+ version = buildVersion;
+
+ src = fetchurl {
+ url = downloadUrl;
+ sha256 = archSha256;
+ };
+
+ dontStrip = true;
+ dontPatchELF = true;
+ buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH
+ nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+
+ buildPhase = ''
+ runHook preBuild
+
+ for binary in ${ builtins.concatStringsSep " " binaries }; do
+ patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${libPath}:${libGL}/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \
+ $binary
+ done
+
+ # Rewrite pkexec argument. Note that we cannot delete bytes in binary.
+ sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' ${primaryBinary}
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out
+ cp -r * $out/
+
+ runHook postInstall
+ '';
+
+ dontWrapGApps = true; # non-standard location, need to wrap the executables manually
+
+ postFixup = ''
+ wrapProgram $out/${primaryBinary} \
+ --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+ --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \
+ --set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \
+ "''${gappsWrapperArgs[@]}"
+
+ # We need to replace the ssh-askpass-sublime executable because the default one
+ # will not function properly, in order to work it needs to pass an argv[0] to
+ # the sublime_merge binary, and the built-in version will will try to call the
+ # sublime_merge wrapper script which cannot pass through the original argv[0] to
+ # the sublime_merge binary. Thankfully the ssh-askpass-sublime functionality is
+ # very simple and can be replaced with a simple wrapper script.
+ rm $out/ssh-askpass-sublime
+ makeWrapper $out/.${primaryBinary}-wrapped $out/ssh-askpass-sublime \
+ --argv0 "/ssh-askpass-sublime"
+ '';
+ };
+in stdenv.mkDerivation (rec {
+ inherit pname;
+ version = buildVersion;
+
+ phases = [ "installPhase" ];
+
+ ${primaryBinary} = binaryPackage;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}"
+ '' + builtins.concatStringsSep "" (map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases) + ''
+ mkdir -p "$out/share/applications"
+ substitute "''$${primaryBinary}/${primaryBinary}.desktop" "$out/share/applications/${primaryBinary}.desktop" --replace "/opt/${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}"
+ for directory in ''$${primaryBinary}/Icon/*; do
+ size=$(basename $directory)
+ mkdir -p "$out/share/icons/hicolor/$size/apps"
+ ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps
+ done
+ '';
+
+ passthru.updateScript = writeScript "${pname}-update-script" ''
+ #!${stdenv.shell}
+ set -o errexit
+ PATH=${stdenv.lib.makeBinPath [ common-updater-scripts curl gnugrep ]}
+
+ latestVersion=$(curl -s ${versionUrl} | grep -Po '(?<=<p class="latest"><i>Version:</i> Build )([0-9]+)')
+
+ for platform in ${stdenv.lib.concatStringsSep " " meta.platforms}; do
+ # The script will not perform an update when the version attribute is up to date from previous platform run
+ # We need to clear it before each run
+ update-source-version ${packageAttribute}.${primaryBinary} 0 0000000000000000000000000000000000000000000000000000000000000000 --file=${versionFile} --version-key=buildVersion --system=$platform
+ update-source-version ${packageAttribute}.${primaryBinary} $latestVersion --file=${versionFile} --version-key=buildVersion --system=$platform
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Git client from the makers of Sublime Text";
+ homepage = "https://www.sublimemerge.com";
+ maintainers = with maintainers; [ zookatron ];
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
new file mode 100644
index 000000000000..7b01ab21f495
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
@@ -0,0 +1,16 @@
+{ callPackage }:
+
+let
+ common = opts: callPackage (import ./common.nix opts);
+in {
+ sublime-merge = common {
+ buildVersion = "2039";
+ sha256 = "0l82408jli7g6nc267bnnnz0zz015lvpwva5fxj53mval32ii4i8";
+ } {};
+
+ sublime-merge-dev = common {
+ buildVersion = "2037";
+ sha256 = "1s0g18l2msmnn6w7f126andh2dygm9l94fxxhsi64v74mkawqg82";
+ dev = true;
+ } {};
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch
new file mode 100644
index 000000000000..240d94f3f977
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch
@@ -0,0 +1,11 @@
+--- a/subversion/bindings/swig/perl/native/Makefile.PL.in
++++ b/subversion/bindings/swig/perl/native/Makefile.PL.in
+@@ -72,7 +72,7 @@
+ # According to the log of r7937, the flags guarded by the conditional break
+ # the build on FreeBSD if not conditionalized.
+ my $apr_ldflags = '@SVN_APR_LIBS@'
+- if $^O eq 'darwin' or $^O eq 'cygwin';
++ if $^O eq 'darwin' or $^O eq 'cygwin' or $^O eq 'linux';
+
+ chomp $apr_shlib_path_var;
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/subversion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/subversion/default.nix
new file mode 100644
index 000000000000..dffe3fadd74b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/subversion/default.nix
@@ -0,0 +1,130 @@
+{ bdbSupport ? true # build support for Berkeley DB repositories
+, httpServer ? false # build Apache DAV module
+, httpSupport ? true # client must support http
+, pythonBindings ? false
+, perlBindings ? false
+, javahlBindings ? false
+, saslSupport ? false
+, stdenv, fetchurl, apr, aprutil, zlib, sqlite, openssl, lz4, utf8proc
+, apacheHttpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null
+, sasl ? null, serf ? null
+}:
+
+assert bdbSupport -> aprutil.bdbSupport;
+assert httpServer -> apacheHttpd != null;
+assert pythonBindings -> swig != null && python != null;
+assert javahlBindings -> jdk != null && perl != null;
+
+let
+
+ common = { version, sha256, extraBuildInputs ? [ ] }: stdenv.mkDerivation (rec {
+ inherit version;
+ pname = "subversion";
+
+ src = fetchurl {
+ url = "mirror://apache/subversion/${pname}-${version}.tar.bz2";
+ inherit sha256;
+ };
+
+ # Can't do separate $lib and $bin, as libs reference bins
+ outputs = [ "out" "dev" "man" ];
+
+ buildInputs = [ zlib apr aprutil sqlite openssl ]
+ ++ extraBuildInputs
+ ++ stdenv.lib.optional httpSupport serf
+ ++ stdenv.lib.optional pythonBindings python
+ ++ stdenv.lib.optional perlBindings perl
+ ++ stdenv.lib.optional saslSupport sasl;
+
+ patches = [ ./apr-1.patch ];
+
+ # We are hitting the following issue even with APR 1.6.x
+ # -> https://issues.apache.org/jira/browse/SVN-4813
+ # "-P" CPPFLAG is needed to build Python bindings and subversionClient
+ CPPFLAGS = [ "-P" ];
+
+ configureFlags = [
+ (stdenv.lib.withFeature bdbSupport "berkeley-db")
+ (stdenv.lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs")
+ (stdenv.lib.withFeatureAs (pythonBindings || perlBindings) "swig" swig)
+ (stdenv.lib.withFeatureAs saslSupport "sasl" sasl)
+ (stdenv.lib.withFeatureAs httpSupport "serf" serf)
+ "--disable-keychain"
+ "--with-zlib=${zlib.dev}"
+ "--with-sqlite=${sqlite.dev}"
+ ] ++ stdenv.lib.optionals javahlBindings [
+ "--enable-javahl"
+ "--with-jdk=${jdk}"
+ ];
+
+ preBuild = ''
+ makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules)
+ '';
+
+ postInstall = ''
+ if test -n "$pythonBindings"; then
+ make swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn
+ make install-swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn
+ fi
+
+ if test -n "$perlBindings"; then
+ make swig-pl-lib
+ make install-swig-pl-lib
+ cd subversion/bindings/swig/perl/native
+ perl Makefile.PL PREFIX=$out
+ make install
+ cd -
+ fi
+
+ mkdir -p $out/share/bash-completion/completions
+ cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion
+
+ for f in $out/lib/*.la $out/lib/python*/site-packages/*/*.la; do
+ substituteInPlace $f \
+ --replace "${expat.dev}/lib" "${expat.out}/lib" \
+ --replace "${zlib.dev}/lib" "${zlib.out}/lib" \
+ --replace "${sqlite.dev}/lib" "${sqlite.out}/lib" \
+ --replace "${openssl.dev}/lib" "${openssl.out}/lib"
+ done
+ '';
+
+ inherit perlBindings pythonBindings;
+
+ enableParallelBuilding = true;
+
+ checkInputs = [ python ];
+ doCheck = false; # fails 10 out of ~2300 tests
+
+ meta = with stdenv.lib; {
+ description = "A version control system intended to be a compelling replacement for CVS in the open source community";
+ license = licenses.asl20;
+ homepage = "http://subversion.apache.org/";
+ maintainers = with maintainers; [ eelco lovek323 ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+
+ } // stdenv.lib.optionalAttrs stdenv.isDarwin {
+ CXX = "clang++";
+ CC = "clang";
+ CPP = "clang -E";
+ CXXCPP = "clang++ -E";
+ });
+
+in {
+ subversion19 = common {
+ version = "1.9.12";
+ sha256 = "15z33gdnfiqblm5515020wfdwnp2837r3hnparava6m2fgyiafiw";
+ };
+
+ subversion_1_10 = common {
+ version = "1.10.6";
+ sha256 = "19zc215mhpnm92mlyl5jbv57r5zqp6cavr3s2g9yglp6j4kfgj0q";
+ extraBuildInputs = [ lz4 utf8proc ];
+ };
+
+ subversion = common {
+ version = "1.12.2";
+ sha256 = "0wgpw3kzsiawzqk4y0xgh1z93kllxydgv4lsviim45y5wk4bbl1v";
+ extraBuildInputs = [ lz4 utf8proc ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/tailor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/tailor/default.nix
new file mode 100644
index 000000000000..c769ec0a66d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/tailor/default.nix
@@ -0,0 +1,19 @@
+{ fetchurl, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+ pname = "tailor";
+ version = "0.9.35";
+
+ src = fetchurl {
+ urls = [
+ "http://darcs.arstecnica.it/tailor/tailor-${version}.tar.gz"
+ "https://src.fedoraproject.org/repo/pkgs/tailor/tailor-${version}.tar.gz/58a6bc1c1d922b0b1e4579c6440448d1/tailor-${version}.tar.gz"
+ ];
+ sha256 = "061acapxxn5ab3ipb5nd3nm8pk2xj67bi83jrfd6lqq3273fmdjh";
+ };
+
+ meta = {
+ description = "Version control tools integration tool";
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix
new file mode 100644
index 000000000000..d2a7299bcd9e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, tcl, tk}:
+
+stdenv.mkDerivation
+{
+ name = "tkcvs-8.2.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/tkcvs/tkcvs_8_2_1.tar.gz";
+ sha256 = "0kvj6rcx1153wq0n1lmd8imbrki6xy5wxghwzlb9i15l65sclg3i";
+ };
+
+ buildInputs = [ tcl tk ];
+
+ patchPhase = ''
+ sed -e 's@exec wish@exec ${tk}/bin/wish@' -i tkcvs/tkcvs.tcl tkdiff/tkdiff
+ '';
+
+ installPhase = ''
+ ./doinstall.tcl $out
+ '';
+
+ meta = {
+ homepage = "https://tkcvs.sourceforge.io";
+ description = "TCL/TK GUI for cvs and subversion";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix
new file mode 100644
index 000000000000..2743d4f827fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix
@@ -0,0 +1,52 @@
+{ lib, fetchurl, python3Packages
+, mercurial, qt5
+}@args:
+let
+ tortoisehgSrc = fetchurl rec {
+ meta.name = "tortoisehg-${meta.version}";
+ meta.version = "5.2.1";
+ url = "https://bitbucket.org/tortoisehg/thg/get/14221e991a5b623e0072d3bd340b759dbe9072ca.tar.gz";
+ sha256 = "01rpzf5z99izcdda1ps9bhqvhw6qghagd8c1y7x19rv223zi05dv";
+ };
+
+ tortoiseMercurial = mercurial.overridePythonAttrs (old: rec {
+ inherit (tortoisehgSrc.meta) version;
+ src = fetchurl {
+ url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
+ sha256 = "1pxkd37b0a1mi2zakk1hi122lgz1ffy2fxdnbs8acwlqpw55bc8q";
+ };
+ });
+
+in python3Packages.buildPythonApplication {
+ inherit (tortoisehgSrc.meta) name version;
+ src = tortoisehgSrc;
+
+ propagatedBuildInputs = with python3Packages; [
+ tortoiseMercurial qscintilla-qt5 iniparse
+ ];
+ nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+
+ doCheck = false; # tests fail with "thg: cannot connect to X server"
+ postInstall = ''
+ mkdir -p $out/share/doc/tortoisehg
+ cp COPYING.txt $out/share/doc/tortoisehg/Copying.txt
+ # convenient alias
+ ln -s $out/bin/thg $out/bin/tortoisehg
+ wrapQtApp $out/bin/thg
+ '';
+
+ checkPhase = ''
+ echo "test: thg version"
+ $out/bin/thg version
+ '';
+
+ passthru.mercurial = tortoiseMercurial;
+
+ meta = {
+ description = "Qt based graphical tool for working with Mercurial";
+ homepage = "https://tortoisehg.bitbucket.io/";
+ license = lib.licenses.gpl2;
+ platforms = lib.platforms.linux;
+ maintainers = with lib.maintainers; [ danbst ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix
new file mode 100644
index 000000000000..85fe83996da3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchhg, autoconf, sqlite }:
+
+stdenv.mkDerivation rec {
+ pname = "vcprompt";
+ version = "1.2.1";
+
+ src = fetchhg {
+ url = "http://hg.gerg.ca/vcprompt/";
+ rev = version;
+ sha256 = "03xqvp6bfl98bpacrw4n82qv9cw6a4fxci802s3vrygas989v1kj";
+ };
+
+ buildInputs = [ sqlite autoconf ];
+
+ preConfigure = ''
+ autoconf
+ makeFlags="$makeFlags PREFIX=$out"
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ A little C program that prints a short string with barebones information
+ about the current working directory for various version control systems
+ '';
+ homepage = "http://hg.gerg.ca/vcprompt";
+ maintainers = with maintainers; [ cstrahan ];
+ platforms = with platforms; linux ++ darwin;
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/vcsh/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/vcsh/default.nix
new file mode 100644
index 000000000000..c4af492decea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/vcsh/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, which, git, ronn, perlPackages }:
+
+stdenv.mkDerivation {
+ version = "1.20170915"; # date of commit we're pulling
+ pname = "vcsh";
+
+ src = fetchFromGitHub {
+ owner = "RichiH";
+ repo = "vcsh";
+ rev = "eadb8df6aa71a76e5be36492edcadb118bd862ac";
+ sha256 = "1wfzp8167lcq6akdpbi8fikjv0z3h1i5minh3423dljc04q0klm1";
+ };
+
+ buildInputs = [ which git ronn ]
+ ++ (with perlPackages; [ perl ShellCommand TestMost TestDifferences TestDeep TestException TestWarn ]);
+
+ installPhase = "make install PREFIX=$out";
+
+ meta = with stdenv.lib; {
+ description = "Version Control System for $HOME";
+ homepage = "https://github.com/RichiH/vcsh";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ ttuegel ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/yadm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/yadm/default.nix
new file mode 100644
index 000000000000..37fd8055662d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/yadm/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, git, gnupg }:
+
+let version = "2.5.0"; in
+stdenv.mkDerivation {
+ pname = "yadm";
+ inherit version;
+
+ buildInputs = [ git gnupg ];
+
+ src = fetchFromGitHub {
+ owner = "TheLocehiliosan";
+ repo = "yadm";
+ rev = version;
+ sha256 = "128qlx8mp7h5ifapqqgsj3fwghn3q6x6ya0y33h5r7gnassd3njr";
+ };
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+ install -Dt $out/bin $src/yadm
+ install -Dt $out/share/man/man1 $src/yadm.1
+ install -D $src/completion/yadm.zsh_completion $out/share/zsh/site-functions/_yadm
+ install -D $src/completion/yadm.bash_completion $out/share/bash-completion/completions/yadm.bash
+ runHook postInstall
+ '';
+
+ meta = {
+ homepage = "https://github.com/TheLocehiliosan/yadm";
+ description = "Yet Another Dotfiles Manager";
+ longDescription = ''
+ yadm is a dotfile management tool with 3 main features:
+ * Manages files across systems using a single Git repository.
+ * Provides a way to use alternate files on a specific OS or host.
+ * Supplies a method of encrypting confidential data so it can safely be stored in your repository.
+ '';
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/aegisub/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/aegisub/default.nix
new file mode 100644
index 000000000000..54dac5c2aa1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/aegisub/default.nix
@@ -0,0 +1,137 @@
+{ config
+, stdenv
+, fetchurl
+, fetchpatch
+, libX11
+, wxGTK
+, libiconv
+, fontconfig
+, freetype
+, libGLU
+, libGL
+, libass
+, fftw
+, ffms
+, ffmpeg_3
+, pkg-config
+, zlib
+, icu
+, boost
+, intltool
+
+, spellcheckSupport ? true
+, hunspell ? null
+
+, automationSupport ? true
+, lua ? null
+
+, openalSupport ? false
+, openal ? null
+
+, alsaSupport ? stdenv.isLinux
+, alsaLib ? null
+
+, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
+, libpulseaudio ? null
+
+, portaudioSupport ? false
+, portaudio ? null
+}:
+
+assert spellcheckSupport -> (hunspell != null);
+assert automationSupport -> (lua != null);
+assert openalSupport -> (openal != null);
+assert alsaSupport -> (alsaLib != null);
+assert pulseaudioSupport -> (libpulseaudio != null);
+assert portaudioSupport -> (portaudio != null);
+
+with stdenv.lib;
+stdenv.mkDerivation
+ rec {
+ pname = "aegisub";
+ version = "3.2.2";
+
+ src = fetchurl {
+ url = "http://ftp.aegisub.org/pub/releases/${pname}-${version}.tar.xz";
+ sha256 = "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5";
+ };
+
+ patches = [
+ # Compatibility with ICU 59
+ (fetchpatch {
+ url = "https://github.com/Aegisub/Aegisub/commit/dd67db47cb2203e7a14058e52549721f6ff16a49.patch";
+ sha256 = "07qqlckiyy64lz8zk1as0vflk9kqnjb340420lp9f0xj93ncssj7";
+ })
+
+ # Compatbility with Boost 1.69
+ (fetchpatch {
+ url = "https://github.com/Aegisub/Aegisub/commit/c3c446a8d6abc5127c9432387f50c5ad50012561.patch";
+ sha256 = "1n8wmjka480j43b1pr30i665z8hdy6n3wdiz1ls81wyv7ai5yygf";
+ })
+
+ # Compatbility with make 4.3
+ (fetchpatch {
+ url = "https://github.com/Aegisub/Aegisub/commit/6bd3f4c26b8fc1f76a8b797fcee11e7611d59a39.patch";
+ sha256 = "1s9cc5rikrqb9ivjbag4b8yxcyjsmmmw744394d5xq8xi4k12vxc";
+ })
+ ];
+
+ nativeBuildInputs = [
+ pkg-config
+ intltool
+ ];
+
+ buildInputs = with stdenv.lib; [
+ libX11
+ wxGTK
+ fontconfig
+ freetype
+ libGLU
+ libGL
+ libass
+ fftw
+ ffms
+ ffmpeg_3
+ zlib
+ icu
+ boost
+ libiconv
+ ]
+ ++ optional spellcheckSupport hunspell
+ ++ optional automationSupport lua
+ ++ optional openalSupport openal
+ ++ optional alsaSupport alsaLib
+ ++ optional pulseaudioSupport libpulseaudio
+ ++ optional portaudioSupport portaudio
+ ;
+
+ enableParallelBuilding = true;
+
+ hardeningDisable = [ "bindnow" "relro" ];
+
+ # compat with icu61+ https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554
+ CXXFLAGS = [ "-DU_USING_ICU_NAMESPACE=1" ];
+
+ # this is fixed upstream though not yet in an officially released version,
+ # should be fine remove on next release (if one ever happens)
+ NIX_LDFLAGS = "-lpthread";
+
+ postInstall = "ln -s $out/bin/aegisub-* $out/bin/aegisub";
+
+ meta = {
+ description = "An advanced subtitle editor";
+ longDescription = ''
+ Aegisub is a free, cross-platform open source tool for creating and
+ modifying subtitles. Aegisub makes it quick and easy to time subtitles to
+ audio, and features many powerful tools for styling them, including a
+ built-in real-time video preview.
+ '';
+ homepage = "http://www.aegisub.org/";
+ # The Aegisub sources are itself BSD/ISC,
+ # but they are linked against GPL'd softwares
+ # - so the resulting program will be GPL
+ license = licenses.bsd3;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/bootstrap_logging.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/bootstrap_logging.patch
new file mode 100644
index 000000000000..8f45251d26c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/bootstrap_logging.patch
@@ -0,0 +1,26 @@
+diff --git a/bootStrap.bash b/bootStrap.bash
+index 646a5e048..6429199ba 100644
+--- a/bootStrap.bash
++++ b/bootStrap.bash
+@@ -4,6 +4,7 @@
+ #
+ # By default we use qt5 now
+ #
++set -e # hard fail if something fails
+ packages_ext=""
+ rebuild=0
+ do_core=1
+@@ -66,10 +67,10 @@ Process()
+ fi
+ cd $BUILDDIR
+ cmake $COMPILER $PKG $FAKEROOT $QT_FLAVOR -DCMAKE_EDIT_COMMAND=vim $INSTALL_PREFIX $EXTRA $BUILD_QUIRKS $ASAN $DEBUG -G "$BUILDER" $SOURCEDIR || fail cmakeZ
+- make $PARAL >& /tmp/log$BUILDDIR || fail "make, result in /tmp/log$BUILDDIR"
+- if [ "x$PKG" != "x" ] ; then
++ make $PARAL
++ if [ "x$PKG" != "x" ] ; then
+ $FAKEROOT_COMMAND make package DESTDIR=$FAKEROOT_DIR/tmp || fail package
+- fi
++ fi
+ # we need the make install so that other packcges can be built against this one
+ make install DESTDIR=$FAKEROOT_DIR
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/default.nix
new file mode 100644
index 000000000000..2dd6b12c14f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/default.nix
@@ -0,0 +1,99 @@
+{ stdenv, lib, fetchurl, cmake, pkgconfig
+, zlib, gettext, libvdpau, libva, libXv, sqlite
+, yasm, freetype, fontconfig, fribidi
+, makeWrapper, libXext, libGLU, qttools, qtbase, wrapQtAppsHook
+, alsaLib
+, withX265 ? true, x265
+, withX264 ? true, x264
+, withXvid ? true, xvidcore
+, withLAME ? true, lame
+, withFAAC ? false, faac
+, withVorbis ? true, libvorbis
+, withPulse ? true, libpulseaudio
+, withFAAD ? true, faad2
+, withOpus ? true, libopus
+, withVPX ? true, libvpx
+, withQT ? true
+, withCLI ? true
+, default ? "qt5"
+, withPlugins ? true
+}:
+
+assert withQT -> qttools != null && qtbase != null;
+assert default != "qt5" -> default == "cli";
+assert !withQT -> default != "qt5";
+
+stdenv.mkDerivation rec {
+ pname = "avidemux";
+ version = "2.7.6";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/avidemux/avidemux/${version}/avidemux_${version}.tar.gz";
+ sha256 = "1kwkn976ppahrcr74bnv6sqx75pzl9y21m1mvr5ksi1m6lgp924s";
+ };
+
+ patches = [
+ ./dynamic_install_dir.patch
+ ./bootstrap_logging.patch
+ ];
+
+ nativeBuildInputs =
+ [ yasm cmake pkgconfig ]
+ ++ lib.optional withQT wrapQtAppsHook;
+ buildInputs = [
+ zlib gettext libvdpau libva libXv sqlite fribidi fontconfig
+ freetype alsaLib libXext libGLU makeWrapper
+ ] ++ lib.optional withX264 x264
+ ++ lib.optional withX265 x265
+ ++ lib.optional withXvid xvidcore
+ ++ lib.optional withLAME lame
+ ++ lib.optional withFAAC faac
+ ++ lib.optional withVorbis libvorbis
+ ++ lib.optional withPulse libpulseaudio
+ ++ lib.optional withFAAD faad2
+ ++ lib.optional withOpus libopus
+ ++ lib.optionals withQT [ qttools qtbase ]
+ ++ lib.optional withVPX libvpx;
+
+ buildCommand = let
+ qtVersion = "5.${stdenv.lib.versions.minor qtbase.version}";
+ wrapWith = makeWrapper: filename:
+ "${makeWrapper} ${filename} --set ADM_ROOT_DIR $out --prefix LD_LIBRARY_PATH : ${libXext}/lib";
+ wrapQtApp = wrapWith "wrapQtApp";
+ wrapProgram = wrapWith "wrapProgram";
+ in ''
+ unpackPhase
+ cd "$sourceRoot"
+ patchPhase
+
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${libXext}/lib"
+ ${stdenv.shell} bootStrap.bash \
+ --with-core \
+ ${if withQT then "--with-qt" else "--without-qt"} \
+ ${if withCLI then "--with-cli" else "--without-cli"} \
+ ${if withPlugins then "--with-plugins" else "--without-plugins"}
+
+ mkdir $out
+ cp -R install/usr/* $out
+
+ ${wrapProgram "$out/bin/avidemux3_cli"}
+
+ ${stdenv.lib.optionalString withQT ''
+ ${wrapQtApp "$out/bin/avidemux3_qt5"}
+ ${wrapQtApp "$out/bin/avidemux3_jobs_qt5"}
+ ''}
+
+ ln -s "$out/bin/avidemux3_${default}" "$out/bin/avidemux"
+
+ fixupPhase
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://fixounet.free.fr/avidemux/";
+ description = "Free video editor designed for simple video editing tasks";
+ maintainers = with maintainers; [ abbradar ma27 ];
+ # "CPU not supported" errors on AArch64
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/dynamic_install_dir.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/dynamic_install_dir.patch
new file mode 100644
index 000000000000..803cde02ec2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/avidemux/dynamic_install_dir.patch
@@ -0,0 +1,12 @@
+diff -ru3 avidemux_2.6.15-old/avidemux_core/ADM_core/src/ADM_folder_linux.cpp avidemux_2.6.15/avidemux_core/ADM_core/src/ADM_folder_linux.cpp
+--- avidemux_2.6.15-old/avidemux_core/ADM_core/src/ADM_folder_linux.cpp 2016-11-23 02:13:41.406566362 +0300
++++ avidemux_2.6.15/avidemux_core/ADM_core/src/ADM_folder_linux.cpp 2016-11-23 02:14:33.433566147 +0300
+@@ -92,7 +92,7 @@
+
+ char *ADM_getInstallRelativePath(const char *base1, const char *base2, const char *base3)
+ {
+- return ADM_getRelativePath(ADM_INSTALL_DIR, base1, base2, base3);
++ return ADM_getRelativePath(getenv("ADM_ROOT_DIR"), base1, base2, base3);
+ }
+ const std::string ADM_getI8NDir(const std::string &flavor)
+ {
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/avxsynth/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/avxsynth/default.nix
new file mode 100644
index 000000000000..e818ef585c17
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/avxsynth/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, cairo, ffmpeg_3, ffms, libjpeg, log4cpp, pango
+, avxeditSupport ? false, qt4 ? null
+}:
+
+let
+ inherit (stdenv.lib) enableFeature optional;
+in
+
+stdenv.mkDerivation {
+ pname = "avxsynth";
+ version = "2015-04-07";
+
+ src = fetchFromGitHub {
+ owner = "avxsynth";
+ repo = "avxsynth";
+ rev = "80dcb7ec8d314bc158130c92803308aa8e5e9242";
+ sha256 = "0kckggvgv68b0qjdi7ms8vi97b46dl63n60qr96d2w67lf2nk87z";
+ };
+
+ configureFlags = [
+ "--enable-autocrop"
+ "--enable-framecapture"
+ "--enable-subtitle"
+ "--enable-ffms2"
+ (enableFeature avxeditSupport "avxedit")
+ "--with-jpeg=${libjpeg.out}/lib"
+ ];
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ buildInputs = [ cairo ffmpeg_3 ffms libjpeg log4cpp pango ]
+ ++ optional avxeditSupport qt4;
+
+ meta = with stdenv.lib; {
+ description = "A script system that allows advanced non-linear editing";
+ homepage = "https://github.com/avxsynth/avxsynth";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ codyopel ];
+ platforms = platforms.linux;
+ broken = true; # 2018-04-10
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/bino3d/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/bino3d/default.nix
new file mode 100644
index 000000000000..4554bea61571
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/bino3d/default.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, lib, fetchurl, pkgconfig, ffmpeg, glew, libass, openal, qtbase }:
+
+mkDerivation rec {
+ pname = "bino";
+ version = "1.6.7";
+
+ src = fetchurl {
+ url = "https://bino3d.org/releases/${pname}-${version}.tar.xz";
+ sha256 = "04yl7ibnhajlli4a5x77az8jxbzw6b2wjay8aa6px551nmiszn9k";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ ffmpeg glew libass openal qtbase ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Stereoscopic 3D and multi-display video player";
+ homepage = "https://bino3d.org/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/bombono/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/bombono/default.nix
new file mode 100644
index 000000000000..05ba5ef19be7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/bombono/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, fetchpatch
+, scons
+, boost
+, dvdauthor
+, dvdplusrwtools
+, enca
+, ffmpeg_3
+, gettext
+, gtk2
+, gtkmm2
+, libdvdread
+, libxmlxx
+, mjpegtools
+, wrapGAppsHook
+}:
+
+let
+ fetchPatchFromAur = {name, sha256}:
+ fetchpatch {
+ inherit name sha256;
+ url = "https://aur.archlinux.org/cgit/aur.git/plain/${name}?h=e6cc6bc80c672aaa1a2260abfe8823da299a192c";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "bombono";
+ version = "1.2.4";
+
+ src = fetchFromGitHub {
+ owner = "bombono-dvd";
+ repo = "bombono-dvd";
+ rev = version;
+ sha256 = "sha256-aRW8H8+ca/61jGLxUs7u3R7yEiulwr5viMEuZWbc4dM=";
+ };
+
+ patches = [
+ (fetchpatch {
+ name = "bombono-dvd-1.2.4-scons3.patch";
+ url = "https://svnweb.mageia.org/packages/cauldron/bombono-dvd/current/SOURCES/bombono-dvd-1.2.4-scons-python3.patch?revision=1447925&view=co&pathrev=1484457";
+ sha256 = "sha256-5OKBWrRZvHem2MTdAObfdw76ig3Z4ZdDFtq4CJoJISA=";
+ })
+ ] ++ (map fetchPatchFromAur [
+ {name="fix_ffmpeg_codecid.patch"; sha256="sha256-58L+1BJy5HK/R+xALbq2z4+Se4i6yp21lo/MjylgTqs=";}
+ {name="fix_ptr2bool_cast.patch"; sha256="sha256-DyqMw/m2Op9+gBq1CTCjSZ1qM9igV5Y6gTOi8VbNH0c=";}
+ {name="fix_c++11_literal_warnings.patch"; sha256="sha256-iZ/CN5+xg7jPXl5r/KGCys+jyPu0/AsSABLcc6IIbv0=";}
+ {name="autoptr2uniqueptr.patch"; sha256="sha256-teGp6uICB4jAJk18pdbBMcDxC/JJJGkdihtXeh3ffCg=";}
+ {name="fix_deprecated_boost_api.patch"; sha256="sha256-qD5QuO/ndEU1N7vueQiNpPVz8OaX6Y6ahjCWxMdvj6A=";}
+ {name="fix_throw_specifications.patch"; sha256="sha256-NjCDGwXRCSLcuW2HbPOpXRgNvNQHy7i7hoOgyvGIr7g=";}
+ {name="fix_operator_ambiguity.patch"; sha256="sha256-xx7WyrxEdDrDuz5YoFrM/u2qJru9u6X/4+Y5rJdmmmQ=";}
+ {name="fix_ffmpeg30.patch"; sha256="sha256-vKEbvbjYVRzEaVYC8XOJBPmk6FDXI/WA0X/dldRRO8c=";}
+ ]);
+
+ nativeBuildInputs = [ wrapGAppsHook scons pkgconfig gettext ];
+
+ buildInputs = [
+ boost
+ dvdauthor
+ dvdplusrwtools
+ enca
+ ffmpeg_3
+ gtk2
+ gtkmm2
+ libdvdread
+ libxmlxx
+ mjpegtools
+ ];
+
+ prefixKey = "PREFIX=";
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "a DVD authoring program for personal computers";
+ homepage = "https://www.bombono.org/";
+ license = licenses.gpl2Only;
+ maintainers = with maintainers; [ symphorien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/bomi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/bomi/default.nix
new file mode 100644
index 000000000000..d812ac488742
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/bomi/default.nix
@@ -0,0 +1,118 @@
+{ mkDerivation, config, stdenv, fetchFromGitHub
+, fetchpatch, pkgconfig, perl, python, which
+, libX11, libxcb, libGLU, libGL
+, qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras, qmake
+, libchardet
+, ffmpeg
+
+, mpg123
+, libass
+, libdvdread
+, libdvdnav
+, icu
+, libquvi
+, alsaLib
+, libvdpau, libva
+, libbluray
+, jackSupport ? false, jack ? null
+, portaudioSupport ? false, portaudio ? null
+, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
+, cddaSupport ? false, libcdda ? null
+, youtubeSupport ? true, youtube-dl ? null
+}:
+
+with stdenv.lib;
+
+assert jackSupport -> jack != null;
+assert portaudioSupport -> portaudio != null;
+assert pulseSupport -> libpulseaudio != null;
+assert cddaSupport -> libcdda != null;
+assert youtubeSupport -> youtube-dl != null;
+
+mkDerivation rec {
+ pname = "bomi";
+ version = "0.9.11";
+
+ src = fetchFromGitHub {
+ owner = "xylosper";
+ repo = "bomi";
+ rev = "v${version}";
+ sha256 = "0a7n46gn3n5098lxxvl3s29s8jlkzss6by9074jx94ncn9cayf2h";
+ };
+
+ patches = [
+ (fetchpatch rec {
+ name = "bomi-compilation-fix.patch";
+ url = "https://svnweb.mageia.org/packages/cauldron/bomi/current/SOURCES/${name}?revision=995725&view=co&pathrev=995725";
+ sha256 = "1dwryya5ljx35dbx6ag9d3rjjazni2mfn3vwirjdijdy6yz22jm6";
+ })
+ (fetchpatch rec {
+ name = "bomi-fix-expected-unqualified-id-before-numeric-constant-unix.patch";
+ url = "https://svnweb.mageia.org/packages/cauldron/bomi/current/SOURCES/${name}?revision=995725&view=co&pathrev=995725";
+ sha256 = "0n3xsrdrggimzw30gxlnrr088ndbdjqlqr46dzmfv8zan79lv5ri";
+ })
+ ];
+
+ buildInputs = with stdenv.lib;
+ [ libX11
+ libxcb
+ libGLU libGL
+ qtbase
+ qtx11extras
+ qtdeclarative
+ qtquickcontrols
+ ffmpeg
+ libchardet
+
+ mpg123
+ libass
+ libdvdread
+ libdvdnav
+ icu
+ libquvi
+ alsaLib
+ libvdpau
+ libva
+ libbluray
+ ]
+ ++ optional jackSupport jack
+ ++ optional portaudioSupport portaudio
+ ++ optional pulseSupport libpulseaudio
+ ++ optional cddaSupport libcdda
+ ;
+
+ preConfigure = ''
+ patchShebangs configure
+ '';
+
+ preBuild = ''
+ patchShebangs src/mpv/waf
+ patchShebangs build-mpv
+ '';
+
+ dontWrapQtApps = true;
+ postInstall = ''
+ wrapQtApp $out/bin/bomi \
+ ${optionalString youtubeSupport "--prefix PATH ':' '${youtube-dl}/bin'"}
+ '';
+
+ dontUseQmakeConfigure = true;
+
+ configureFlags = with stdenv.lib;
+ [ "--qmake=qmake" ]
+ ++ optional jackSupport "--enable-jack"
+ ++ optional portaudioSupport "--enable-portaudio"
+ ++ optional pulseSupport "--enable-pulseaudio"
+ ++ optional cddaSupport "--enable-cdda"
+ ;
+
+ nativeBuildInputs = [ pkgconfig perl python which qttools qmake ];
+
+ meta = with stdenv.lib; {
+ description = "Powerful and easy-to-use multimedia player";
+ homepage = "https://bomi-player.github.io/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.abbradar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/byzanz/add-amflags.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/byzanz/add-amflags.patch
new file mode 100644
index 000000000000..aeaa195798a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/byzanz/add-amflags.patch
@@ -0,0 +1,12 @@
+diff --git a/Makefile.am b/Makefile.am
+index 6eedb51..7b54313 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,5 +1,7 @@
+ SUBDIRS = macros data gifenc src po
+
++ACLOCAL_AMFLAGS = -I macros
++
+ EXTRA_DIST = \
+ MAINTAINERS \
+ depcomp \
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/byzanz/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/byzanz/default.nix
new file mode 100644
index 000000000000..f5d40a5c34cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/byzanz/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, wrapGAppsHook, which, gnome3, glib, intltool, pkgconfig, libtool, cairo, gtk3, gst_all_1, xorg }:
+
+stdenv.mkDerivation {
+ version = "0.2.3.alpha";
+ pname = "byzanz";
+
+ src = fetchgit {
+ url = "git://github.com/GNOME/byzanz";
+ rev = "1875a7f6a3903b83f6b1d666965800f47db9286a";
+ sha256 = "0a72fw2mxl8vdcdnzy0bwis4jk28pd7nc8qgr4vhyw5pd48dynvh";
+ };
+
+ patches = [ ./add-amflags.patch ];
+
+ preBuild = ''
+ ./autogen.sh --prefix=$out
+ '';
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ which gnome3.gnome-common glib intltool libtool cairo gtk3 xorg.xwininfo ]
+ ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-bad gst-plugins-good gst-plugins-ugly gst-libav wrapGAppsHook ]);
+
+ meta = with stdenv.lib; {
+ description = "Tool to record a running X desktop to an animation suitable for presentation in a web browser";
+ homepage = "https://github.com/GNOME/byzanz";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/catt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/catt/default.nix
new file mode 100644
index 000000000000..d22657d651cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/catt/default.nix
@@ -0,0 +1,38 @@
+{ lib, python3 }:
+
+let
+ py = python3.override {
+ packageOverrides = self: super: {
+ PyChromecast = super.PyChromecast.overridePythonAttrs (oldAttrs: rec {
+ version = "6.0.0";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "05f8r3b2pdqbl76hwi5sv2xdi1r7g9lgm69x8ja5g22mn7ysmghm";
+ };
+ });
+ };
+ };
+
+in with py.pkgs; buildPythonApplication rec {
+ pname = "catt";
+ version = "0.11.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1vq1wg79b7855za6v6bsfgypm0v3b4wakap4rash45mhzbgjj0kq";
+ };
+
+ propagatedBuildInputs = [
+ youtube-dl PyChromecast click ifaddr requests
+ ];
+
+ doCheck = false; # attempts to access various URLs
+
+ meta = with lib; {
+ description = "Cast All The Things allows you to send videos from many, many online sources to your Chromecast";
+ homepage = "https://github.com/skorokithakis/catt";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/ccextractor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/ccextractor/default.nix
new file mode 100644
index 000000000000..91c47516521e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/ccextractor/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake
+, glew, glfw3, leptonica, libiconv, tesseract3, zlib }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "ccextractor";
+ version = "0.88";
+
+ src = fetchFromGitHub {
+ owner = "CCExtractor";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1sya45hvv4d46bk7541yimmafgvgyhkpsvwfz9kv6pm4yi1lz6nb";
+ };
+
+ sourceRoot = "source/src";
+
+ nativeBuildInputs = [ pkgconfig cmake ];
+
+ buildInputs = [ glew glfw3 leptonica tesseract3 zlib ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
+
+ meta = {
+ homepage = "https://www.ccextractor.org";
+ description = "Tool that produces subtitles from closed caption data in videos";
+ longDescription = ''
+ A tool that analyzes video files and produces independent subtitle files from
+ closed captions data. CCExtractor is portable, small, and very fast.
+ It works on Linux, Windows, and OSX.
+ '';
+ platforms = platforms.unix;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ titanous ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/celluloid/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/celluloid/default.nix
new file mode 100644
index 000000000000..ca9ecb48188c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/celluloid/default.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, python3
+, gettext
+, pkgconfig
+, desktop-file-utils
+, wrapGAppsHook
+, appstream-glib
+, epoxy
+, glib
+, gtk3
+, mpv
+}:
+
+stdenv.mkDerivation rec {
+ pname = "celluloid";
+ version = "0.20";
+
+ src = fetchFromGitHub {
+ owner = "celluloid-player";
+ repo = "celluloid";
+ rev = "v${version}";
+ hash = "sha256-fEZnH8EqU6CykgKINXnKChuBUlisroa97B1vjcx2cWA=";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ python3
+ appstream-glib
+ gettext
+ pkgconfig
+ desktop-file-utils
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ epoxy
+ glib
+ gtk3
+ mpv
+ ];
+
+ postPatch = ''
+ patchShebangs meson-post-install.py src/generate-authors.py
+ '';
+
+ doCheck = true;
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Simple GTK frontend for the mpv video player";
+ longDescription = ''
+ GNOME MPV interacts with mpv via the client API exported by libmpv,
+ allowing access to mpv's powerful playback capabilities through an
+ easy-to-use user interface.
+ '';
+ homepage = "https://github.com/celluloid-player/celluloid";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/cinelerra/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/cinelerra/default.nix
new file mode 100644
index 000000000000..22533b182a0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/cinelerra/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool
+, pkgconfig, faad2, faac, a52dec, alsaLib, fftw, lame, libavc1394
+, libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg
+, libtiff, freetype, mjpegtools, x264, gettext, openexr
+, libXext, libXxf86vm, libXv, libXi, libX11, libXft, xorgproto, libtheora, libpng
+, libdv, libuuid, file, nasm, perl
+, fontconfig, intltool }:
+
+stdenv.mkDerivation {
+ name = "cinelerra-cv-2018-05-16";
+
+ src = fetchFromGitHub {
+ owner = "ratopi";
+ repo = "CinelerraCV";
+ rev = "d9c0dbf4393717f0a42f4b91c3e1ed5b16f955dc";
+ sha256 = "0a8kfm1v96sv6jh4568crg6nkr6n3579i9xksfj8w199s6yxzsbk";
+ };
+
+ preConfigure = ''
+ find -type f -print0 | xargs --null sed -e "s@/usr/bin/perl@${perl}/bin/perl@" -i
+ ./autogen.sh
+ sed -i -e "s@/usr/bin/file@${file}/bin/file@" ./configure
+ '';
+
+ ## fix bug with parallel building
+ preBuild = ''
+ make -C cinelerra versioninfo.h
+ '';
+ enableParallelBuilding = true;
+
+ buildInputs =
+ [ automake
+ autoconf libtool pkgconfig file
+ faad2 faac
+ a52dec alsaLib fftw lame libavc1394 libiec61883
+ libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype
+ mjpegtools x264 gettext openexr
+ libXext libXxf86vm libXv libXi libX11 libXft xorgproto
+ libtheora libpng libdv libuuid
+ nasm
+ perl
+ fontconfig intltool
+ ];
+
+ meta = {
+ description = "Video Editor";
+ homepage = "http://www.cinelerra.org";
+ maintainers = [ stdenv.lib.maintainers.marcweber ];
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/clickshare-csc1/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/clickshare-csc1/default.nix
new file mode 100644
index 000000000000..e4e72704fb0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/clickshare-csc1/default.nix
@@ -0,0 +1,124 @@
+{ lib
+, stdenv
+, fetchurl
+, alsaLib
+, autoPatchelfHook
+, binutils-unwrapped
+, gnutar
+, libav_0_8
+, libnotify
+, libresample
+, libusb1
+, qt4
+, rpmextract
+, unzip
+, xorg
+, usersGroup ? "clickshare" # for udev access rules
+}:
+
+
+# This fetches the latest firmware version that
+# contains a linux-compatible client binary.
+# Barco no longer supports linux, so updates are unlikely:
+# https://www.barco.com/de/support/clickshare-csc-1/knowledge-base/KB1191
+
+
+stdenv.mkDerivation rec {
+ pname = "clickshare-csc1";
+ version = "01.07.00.033";
+ src = fetchurl {
+ name = "clickshare-csc1-${version}.zip";
+ url = "https://www.barco.com/services/website/de/TdeFiles/Download?FileNumber=R33050020&TdeType=3&MajorVersion=01&MinorVersion=07&PatchVersion=00&BuildVersion=033";
+ sha256 = "0h4jqidqvk4xkaky5bizi7ilz4qzl2mh68401j21y3djnzx09br3";
+ };
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ binutils-unwrapped
+ gnutar
+ rpmextract
+ unzip
+ ];
+ buildInputs = [
+ alsaLib
+ libav_0_8
+ libnotify
+ libresample
+ libusb1
+ qt4
+ xorg.libX11
+ xorg.libXdamage
+ xorg.libXfixes
+ xorg.libXinerama
+ xorg.libXtst
+ ];
+ sourceRoot = ".";
+
+ # The source consists of nested archives.
+ # We extract them archive by archive.
+ # If the filename contains version numbers,
+ # we use a wildcard and check that there
+ # is actually only one file matching.
+ postUnpack =
+ let
+ rpmArch =
+ if stdenv.hostPlatform.isx86_32 then "i386" else
+ if stdenv.hostPlatform.isx86_64 then "x86_64" else
+ throw "unsupported system: ${stdenv.hostPlatform.system}";
+ in
+ ''
+ ls clickshare_baseunit_*.*_all.signed_release.ipk | wc --lines | xargs test 1 =
+ tar --verbose --extract --one-top-level=dir1 < clickshare_baseunit_*.*_all.signed_release.ipk
+ mkdir dir2
+ ( cd dir2 ; ar xv ../dir1/firmware.ipk )
+ tar --verbose --gzip --extract --one-top-level=dir3 --exclude='dev/*' < dir2/data.tar.gz
+ ls dir3/clickshare/clickshare-*-*.${rpmArch}.rpm | wc --lines | xargs test 1 =
+ mkdir dir4
+ cd dir4
+ rpmextract ../dir3/clickshare/clickshare-*-*.${rpmArch}.rpm
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir --verbose --parents $out
+ mv --verbose --target-directory=. usr/*
+ rmdir --verbose usr
+ cp --verbose --recursive --target-directory=$out *
+ runHook postInstall
+ '';
+
+ # Default udev rule restricts access to the
+ # clickshare USB dongle to the `wheel` group.
+ # We replace it with the group
+ # stated in the package arguments.
+ # Also, we patch executable and icon paths in .desktop files.
+ preFixup = ''
+ substituteInPlace \
+ $out/lib/udev/rules.d/99-clickshare.rules \
+ --replace wheel ${usersGroup}
+ substituteInPlace \
+ $out/share/applications/clickshare.desktop \
+ --replace Exec= Exec=$out/bin/ \
+ --replace =/usr =$out
+ substituteInPlace \
+ $out/etc/xdg/autostart/clickshare-launcher.desktop \
+ --replace =/usr =$out
+ '';
+
+ meta = {
+ homepage = "https://www.barco.com/de/support/clickshare-csc-1/drivers";
+ downloadPage = "https://www.barco.com/de/Support/software/R33050020";
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ license = lib.licenses.unfree;
+ maintainers = [ lib.maintainers.yarny ];
+ description = "Linux driver/client for Barco ClickShare CSC-1";
+ longDescription = ''
+ Barco ClickShare is a wireless presentation system
+ where a USB dongle transmits to a base station
+ that is connected with a beamer.
+ The USB dongle requires proprietary software that
+ captures the screen and sends it to the dongle.
+ This package provides the necessary software for Linux.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/clipgrab/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/clipgrab/default.nix
new file mode 100644
index 000000000000..fa6cf88440f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/clipgrab/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, makeDesktopItem, ffmpeg_3
+, qmake, qttools, mkDerivation
+, qtbase, qtdeclarative, qtlocation, qtquickcontrols2, qtwebchannel, qtwebengine
+}:
+
+mkDerivation rec {
+ pname = "clipgrab";
+ version = "3.9.5";
+
+ src = fetchurl {
+ sha256 = "1p8pqa5s70basdm2zpmahc54shsxrr0fr7chvv425n5a9sqba4dh";
+ # The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
+ url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
+ };
+
+ buildInputs = [ ffmpeg_3 qtbase qtdeclarative qtlocation qtquickcontrols2 qtwebchannel qtwebengine ];
+ nativeBuildInputs = [ qmake qttools ];
+
+ postPatch = stdenv.lib.optionalString (ffmpeg_3 != null) ''
+ substituteInPlace converter_ffmpeg.cpp \
+ --replace '"ffmpeg"' '"${ffmpeg_3.bin}/bin/ffmpeg"' \
+ --replace '"ffmpeg ' '"${ffmpeg_3.bin}/bin/ffmpeg '
+ '';
+
+ qmakeFlags = [ "clipgrab.pro" ];
+
+ enableParallelBuilding = true;
+
+ desktopItem = makeDesktopItem rec {
+ name = "clipgrab";
+ exec = name;
+ icon = name;
+ desktopName = "ClipGrab";
+ comment = meta.description;
+ genericName = "Web video downloader";
+ categories = "Qt;AudioVideo;Audio;Video";
+ };
+
+ installPhase = ''
+ install -Dm755 clipgrab $out/bin/clipgrab
+ install -Dm644 icon.png $out/share/pixmaps/clipgrab.png
+ cp -r ${desktopItem}/share/applications $out/share
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Video downloader for YouTube and other sites";
+ longDescription = ''
+ ClipGrab is a free downloader and converter for YouTube, Vimeo, Metacafe,
+ Dailymotion and many other online video sites. It converts downloaded
+ videos to MPEG4, MP3 or other formats in just one easy step.
+ '';
+ homepage = "https://clipgrab.org/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/coriander/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/coriander/default.nix
new file mode 100644
index 000000000000..a094bfd904ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/coriander/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, pkgconfig, glib, gtk2, libgnomeui, libXv, libraw1394, libdc1394
+, SDL, automake, GConf }:
+
+stdenv.mkDerivation {
+ name = "coriander-2.0.1";
+
+ src = fetchurl {
+ url = "http://damien.douxchamps.net/ieee1394/coriander/archives/coriander-2.0.1.tar.gz";
+ sha256 = "0l6hpfgy5r4yardilmdrggsnn1fbfww516sk5a90g1740cd435x5";
+ };
+
+ preConfigure = ''
+ cp ${automake}/share/automake-*/mkinstalldirs .
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib gtk2 libgnomeui libXv libraw1394 libdc1394 SDL GConf ];
+
+ meta = {
+ homepage = "https://damien.douxchamps.net/ieee1394/coriander/";
+ description = "GUI for controlling a Digital Camera through the IEEE1394 bus";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/devede/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/devede/default.nix
new file mode 100644
index 000000000000..921548b5c08c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/devede/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitLab, python3Packages, ffmpeg_3, mplayer, vcdimager, cdrkit, dvdauthor
+, gtk3, gettext, wrapGAppsHook, gdk-pixbuf, gobject-introspection }:
+
+let
+ inherit (python3Packages) dbus-python buildPythonApplication pygobject3 urllib3 setuptools;
+in buildPythonApplication rec {
+ pname = "devede";
+ version = "4.16.0";
+ namePrefix = "";
+
+ src = fetchFromGitLab {
+ owner = "rastersoft";
+ repo = "devedeng";
+ rev = version;
+ sha256 = "1xb7acjphvn4ya8fgjsvag5gzi9a6c2famfl0ffr8nhb9y8ig9mg";
+ };
+
+ # Temporary fix
+ # See https://github.com/NixOS/nixpkgs/issues/61578
+ # and https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ nativeBuildInputs = [
+ gettext wrapGAppsHook
+
+ # Temporary fix
+ # See https://github.com/NixOS/nixpkgs/issues/61578
+ # and https://github.com/NixOS/nixpkgs/issues/56943
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ ffmpeg_3
+ ];
+
+ propagatedBuildInputs = [
+ gtk3 pygobject3 gdk-pixbuf dbus-python ffmpeg_3 mplayer dvdauthor vcdimager cdrkit urllib3 setuptools
+ ];
+
+ postPatch = ''
+ substituteInPlace setup.py --replace "'/usr'," ""
+ substituteInPlace src/devedeng/configuration_data.py \
+ --replace "/usr/share" "$out/share" \
+ --replace "/usr/local/share" "$out/share"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "DVD Creator for Linux";
+ homepage = "http://www.rastersoft.com/programas/devede.html";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.bdimcheff ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix
new file mode 100644
index 000000000000..e35d95d54d6f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, lib, fetchurl, writeScript, cdrtools, dvdauthor, ffmpeg_3, imagemagick, lame, mjpegtools, sox, transcode, vorbis-tools, runtimeShell }:
+
+let
+ binPath = lib.makeBinPath [ cdrtools dvdauthor ffmpeg_3 imagemagick lame mjpegtools sox transcode vorbis-tools ];
+
+ wrapper = writeScript "dvd-slideshow.sh" ''
+ #!${runtimeShell}
+ # wrapper script for dvd-slideshow programs
+ export PATH=${binPath}:$PATH
+
+ dir=`dirname "$0"`
+ exe=`basename "$0"`
+ case "$exe" in
+ dvd-slideshow)
+ # use mpeg2enc by default as ffmpeg is known to crash.
+ # run dvd-slideshow.ffmpeg to force ffmpeg.
+ "$dir/dvd-slideshow.real" -mpeg2enc $@
+ ;;
+
+ dvd-slideshow.ffmpeg)
+ "$dir/dvd-slideshow.real" $@
+ ;;
+
+ *)
+ "$dir/$exe.real" $@
+ ;;
+ esac
+ '';
+
+in stdenv.mkDerivation rec {
+ pname = "dvd-slideshow";
+ version = "0.8.4-2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/dvd-slideshow/files/${pname}-${version}.tar.gz";
+ sha256 = "17c09aqvippiji2sd0pcxjg3nb1mnh9k5nia4gn5lhcvngjcp1q5";
+ };
+
+ patchPhase = ''
+ # fix upstream typos
+ substituteInPlace dvd-slideshow \
+ --replace "version='0.8.4-1'" "version='0.8.4-2'" \
+ --replace "mymyecho" "myecho"
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp dvd-slideshow "$out/bin/dvd-slideshow.real"
+ cp dvd-menu "$out/bin/dvd-menu.real"
+ cp dir2slideshow "$out/bin/dir2slideshow.real"
+ cp gallery1-to-slideshow "$out/bin/gallery1-to-slideshow.real"
+ cp jigl2slideshow "$out/bin/jigl2slideshow.real"
+
+ cp ${wrapper} "$out/bin/dvd-slideshow.sh"
+ ln -s dvd-slideshow.sh "$out/bin/dvd-slideshow"
+ ln -s dvd-slideshow.sh "$out/bin/dvd-slideshow.ffmpeg"
+ ln -s dvd-slideshow.sh "$out/bin/dvd-menu"
+ ln -s dvd-slideshow.sh "$out/bin/dir2slideshow"
+ ln -s dvd-slideshow.sh "$out/bin/gallery1-to-slideshow"
+ ln -s dvd-slideshow.sh "$out/bin/jigl2slideshow"
+
+ cp -a man "$out/"
+ '';
+
+ meta = {
+ description = "Suite of command line programs that creates a slideshow-style video from groups of pictures";
+ homepage = "http://dvd-slideshow.sourceforge.net/wiki/Main_Page";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.robbinch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/default.nix
new file mode 100644
index 000000000000..af1fe24cbbf4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, imagemagick, libdvdread, libxml2, freetype, fribidi, libpng, zlib, pkgconfig
+, flex, bison }:
+
+stdenv.mkDerivation rec {
+ name = "dvdauthor-0.7.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/dvdauthor/${name}.tar.gz";
+ sha256 = "1s8zqlim0s3hk5sbdsilip3qqh0yv05l1jwx49d9rsy614dv27sh";
+ };
+
+ buildInputs = [ libpng freetype libdvdread libxml2 zlib fribidi imagemagick flex bison];
+ nativeBuildInputs = [ pkgconfig ];
+
+ patches = [
+ ./dvdauthor-0.7.1-automake-1.13.patch
+ ./dvdauthor-0.7.1-mga-strndup.patch
+ ./dvdauthor-imagemagick-0.7.0.patch
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Tools for generating DVD files to be played on standalone DVD players";
+ homepage = "http://dvdauthor.sourceforge.net/";
+ license = licenses.gpl2;
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-automake-1.13.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-automake-1.13.patch
new file mode 100644
index 000000000000..786f0c968556
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-automake-1.13.patch
@@ -0,0 +1,10 @@
+--- dvdauthor/configure.ac~ 2013-01-04 08:27:40.713197029 +0800
++++ dvdauthor/configure.ac 2013-01-04 08:27:53.273525273 +0800
+@@ -1,6 +1,6 @@
+ AC_INIT(DVDAuthor,0.7.1,dvdauthor-users@lists.sourceforge.net)
+
+-AM_CONFIG_HEADER(src/config.h)
++AC_CONFIG_HEADERS(src/config.h)
+ AC_CONFIG_AUX_DIR(autotools)
+
+ AM_INIT_AUTOMAKE
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-mga-strndup.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-mga-strndup.patch
new file mode 100644
index 000000000000..5f77a68081a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-mga-strndup.patch
@@ -0,0 +1,24 @@
+Index: dvdauthor/src/dvdvml.l
+===================================================================
+--- dvdauthor/src/dvdvml.l
++++ dvdauthor/src/dvdvml.l 2014-09-14 19:36:05.098847465 +0000
+@@ -19,6 +19,7 @@
+ * USA
+ */
+
++#include "config.h"
+ #include "compat.h" /* needed for bool */
+ #include "dvdvm.h"
+ #include "dvdvmy.h"
+Index: dvdauthor/src/dvdvmy.y
+===================================================================
+--- dvdauthor/src/dvdvmy.y
++++ dvdauthor/src/dvdvmy.y 2014-09-14 19:36:28.251618378 +0000
+@@ -19,6 +19,7 @@
+ * USA
+ */
+
++#include "config.h"
+ #include "compat.h" /* needed for bool */
+ #include "dvdvm.h"
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-imagemagick-0.7.0.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-imagemagick-0.7.0.patch
new file mode 100644
index 000000000000..52b6cc44cd59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-imagemagick-0.7.0.patch
@@ -0,0 +1,11 @@
+--- dvdauthor/configure.ac.orig 2010-10-23 04:26:49.000000000 +0200
++++ dvdauthor/configure.ac 2010-10-24 14:37:45.489064778 +0200
+@@ -31,7 +31,7 @@
+
+ usemagick=0
+
+-AC_CHECK_PROGS(MAGICKCONFIG, [Magick-config])
++AC_CHECK_PROGS(MAGICKCONFIG, [MagickCore-config])
+ if test -n "$MAGICKCONFIG"; then
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ ac_save_LIBS="$LIBS"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/dvdbackup/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdbackup/default.nix
new file mode 100644
index 000000000000..633eea3d282a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdbackup/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, fetchpatch, libdvdread, libdvdcss, dvdauthor }:
+
+stdenv.mkDerivation rec {
+ version = "0.4.2";
+ pname = "dvdbackup";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/dvdbackup/${pname}-${version}.tar.xz";
+ sha256 = "1rl3h7waqja8blmbpmwy01q9fgr5r0c32b8dy3pbf59bp3xmd37g";
+ };
+
+ buildInputs = [ libdvdread libdvdcss dvdauthor ];
+
+ # see https://bugs.launchpad.net/dvdbackup/+bug/1869226
+ patchFlags = [ "-p0" ];
+ patches = [ (fetchpatch {
+ url = "https://git.slackbuilds.org/slackbuilds/plain/multimedia/dvdbackup/patches/dvdbackup-dvdread-6.1.patch";
+ sha256 = "1v3xl01bwq1592i5x5dyh95r0mmm1zvvwf92fgjc0smr0k3davfz";
+ })];
+
+ meta = {
+ description = "A tool to rip video DVDs from the command line";
+ homepage = "http://dvdbackup.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = [ stdenv.lib.maintainers.bradediger ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/dvdstyler/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdstyler/default.nix
new file mode 100644
index 000000000000..b78f9ed816b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/dvdstyler/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, fetchurl, pkgconfig
+, flex, bison, gettext
+, xineUI, wxSVG
+, fontconfig
+, xmlto, docbook5, zip
+, cdrtools, dvdauthor, dvdplusrwtools
+, dvdisasterSupport ? true, dvdisaster ? null
+, thumbnailSupport ? true, libgnomeui ? null
+, udevSupport ? true, udev ? null
+, dbusSupport ? true, dbus ? null
+, makeWrapper }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+ pname = "dvdstyler";
+ srcName = "DVDStyler-${version}";
+ version = "3.1.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/dvdstyler/dvdstyler/${version}/${srcName}.tar.bz2";
+ sha256 = "03lsblqficcadlzkbyk8agh5rqcfz6y6dqvy9y866wqng3163zq4";
+ };
+
+ nativeBuildInputs =
+ [ pkgconfig ];
+
+ packagesToBinPath =
+ [ cdrtools dvdauthor dvdplusrwtools ];
+
+ buildInputs =
+ [ flex bison gettext xineUI
+ wxSVG fontconfig xmlto
+ docbook5 zip makeWrapper ]
+ ++ packagesToBinPath
+ ++ optionals dvdisasterSupport [ dvdisaster ]
+ ++ optionals udevSupport [ udev ]
+ ++ optionals dbusSupport [ dbus ]
+ ++ optionals thumbnailSupport [ libgnomeui ];
+
+ binPath = makeBinPath packagesToBinPath;
+
+ postInstall = ''
+ wrapProgram $out/bin/dvdstyler \
+ --prefix PATH ":" "${binPath}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A DVD authoring software";
+ longDescription = ''
+ DVDStyler is a cross-platform free DVD authoring application for the
+ creation of professional-looking DVDs. It allows not only burning of video
+ files on DVD that can be played practically on any standalone DVD player,
+ but also creation of individually designed DVD menus. It is Open Source
+ Software and is completely free.
+
+ Some of its features include:
+ - create and burn DVD video with interactive menus
+ - design your own DVD menu or select one from the list of ready to use menu
+ templates
+ - create photo slideshow
+ - add multiple subtitle and audio tracks
+ - support of AVI, MOV, MP4, MPEG, OGG, WMV and other file formats
+ - support of MPEG-2, MPEG-4, DivX, Xvid, MP2, MP3, AC-3 and other audio and
+ video formats
+ - support of multi-core processor
+ - use MPEG and VOB files without reencoding
+ - put files with different audio/video format on one DVD (support of
+ titleset)
+ - user-friendly interface with support of drag & drop
+ - flexible menu creation on the basis of scalable vector graphic
+ - import of image file for background
+ - place buttons, text, images and other graphic objects anywhere on the menu
+ screen
+ - change the font/color and other parameters of buttons and graphic objects
+ - scale any button or graphic object
+ - copy any menu object or whole menu
+ - customize navigation using DVD scripting
+ '';
+ homepage = "http://www.dvdstyler.org/";
+ license = with licenses; gpl2;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix
new file mode 100644
index 000000000000..577c85c6b27c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix
@@ -0,0 +1,33 @@
+{ appimageTools, stdenv, fetchurl }:
+let
+ pname = "electronplayer";
+ version = "2.0.8";
+ name = "${pname}-${version}";
+
+ #TODO: remove the -rc4 from the tag in the url when possible
+ src = fetchurl {
+ url = "https://github.com/oscartbeaumont/ElectronPlayer/releases/download/v${version}-rc4/${name}.AppImage";
+ sha256 = "wAsmSFdbRPnYnDyWQSbtyj+GLJLN7ibksUE7cegfkhI=";
+ };
+
+ appimageContents = appimageTools.extractType2 { inherit name src; };
+in appimageTools.wrapType2 {
+ inherit name src;
+
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+
+ install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace 'Exec=AppRun' 'Exec=ElectronPlayer'
+ cp -r ${appimageContents}/usr/share/icons $out/share
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An electron based web video services player";
+ homepage = "https://github.com/oscartbeaumont/ElectronPlayer";
+ license = licenses.mit;
+ maintainers = with maintainers; [ extends ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/default.nix
new file mode 100644
index 000000000000..62aa54ca7844
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/default.nix
@@ -0,0 +1,122 @@
+{ stdenv
+, fetchFromGitHub
+, common-updater-scripts
+, genericUpdater
+, writers
+, makeWrapper
+, bash
+, nodejs
+, nodePackages
+, gzip
+, jq
+}:
+
+let
+ # NOTE: use updateScript to bump the package version
+ pname = "EPGStation";
+ version = "1.7.5";
+ src = fetchFromGitHub {
+ owner = "l3tnun";
+ repo = "EPGStation";
+ rev = "v${version}";
+ sha256 = "06yaf5yb5rp3q0kdhw33df7px7vyfby885ckb6bdzw3wnams5d8m";
+ };
+
+ workaround-opencollective-buildfailures = stdenv.mkDerivation {
+ # FIXME: This should be removed when a complete fix is available
+ # https://github.com/svanderburg/node2nix/issues/145
+ name = "workaround-opencollective-buildfailures";
+ phases = [ "installPhase" ];
+ installPhase = ''
+ mkdir -p $out/bin
+ touch $out/bin/opencollective-postinstall
+ chmod +x $out/bin/opencollective-postinstall
+ '';
+ };
+
+ pkg = nodePackages.epgstation.override (drv: {
+ inherit src;
+
+ buildInputs = [ bash ];
+ nativeBuildInputs = [
+ workaround-opencollective-buildfailures
+ makeWrapper
+ nodePackages.node-pre-gyp
+ ];
+
+ preRebuild = ''
+ # Fix for not being able to connect to mysql using domain sockets.
+ patch -p1 ${./use-mysql-over-domain-socket.patch}
+ '';
+
+ postInstall = let
+ runtimeDeps = [ nodejs bash ];
+ in
+ ''
+ mkdir -p $out/{bin,libexec,share/doc/epgstation,share/man/man1}
+
+ pushd $out/lib/node_modules/EPGStation
+
+ npm run build
+ npm prune --production
+
+ mv config/{enc.sh,enc.js} $out/libexec
+ mv LICENSE Readme.md $out/share/doc/epgstation
+ mv doc/* $out/share/doc/epgstation
+ sed 's/@DESCRIPTION@/${drv.meta.description}/g' ${./epgstation.1} \
+ | ${gzip}/bin/gzip > $out/share/man/man1/epgstation.1.gz
+ rm -rf doc
+
+ # just log to stdout and let journald do its job
+ rm -rf logs
+
+ # Replace the existing configuration and runtime state directories with
+ # symlinks. Without this, they would all be non-writable because they
+ # reside in the Nix store. Note that the source path won't be accessible
+ # at build time.
+ rm -r config data recorded thumbnail
+ ln -sfT /etc/epgstation config
+ ln -sfT /var/lib/epgstation data
+ ln -sfT /var/lib/epgstation/recorded recorded
+ ln -sfT /var/lib/epgstation/thumbnail thumbnail
+
+ makeWrapper ${nodejs}/bin/npm $out/bin/epgstation \
+ --run "cd $out/lib/node_modules/EPGStation" \
+ --prefix PATH : ${stdenv.lib.makeBinPath runtimeDeps}
+
+ popd
+ '';
+
+ # NOTE: this may take a while since it has to update all packages in
+ # nixpkgs.nodePackages
+ passthru.updateScript = import ./update.nix {
+ inherit (stdenv) lib;
+ inherit (src.meta) homepage;
+ inherit
+ pname
+ version
+ common-updater-scripts
+ genericUpdater
+ writers
+ jq;
+ };
+
+ # nodePackages.epgstation is a stub package to fetch npm dependencies and
+ # is marked as broken to prevent users from installing it directly. This
+ # technique ensures epgstation can share npm packages with the rest of
+ # nixpkgs while still allowing us to heavily customize the build. It also
+ # allows us to provide devDependencies for the epgstation build process
+ # without doing the same for all the other node packages.
+ meta = drv.meta // { broken = false; };
+ });
+in
+pkg // {
+ name = "${pname}-${version}";
+
+ meta = with stdenv.lib; pkg.meta // {
+ maintainers = with maintainers; [ midchildan ];
+
+ # NOTE: updateScript relies on this being correct
+ position = toString ./default.nix + ":1";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/epgstation.1 b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/epgstation.1
new file mode 100644
index 000000000000..bb5c02381378
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/epgstation.1
@@ -0,0 +1,52 @@
+.Dd $Mdocdate$
+.Dt EPGSTATION 1
+.Os
+.Sh NAME
+.Nm epgstation
+.Nd @DESCRIPTION@
+.Sh SYNOPSIS
+.Nm
+.Bk -words
+.Op Ar command Op Ar args
+.Ek
+.Sh DESCRIPTION
+.Nm
+is a wrapper command for EPGStation provided by Nix. It's actually a thin
+wrapper around the
+.Xr npm 1
+command line tool which you can use to invoke npm commands from the EPGStation
+project directory. The command line arguments are simply passed as-is to
+.Xr npm 1 .
+.Pp
+On NixOS, it is strongly recommended that you enable the epgstation module
+instead of invoking this command directly to launch EPGStation. On other
+platforms, run
+.Pp
+.Dl $ epgstation start
+.Pp
+to start EPGStation.
+.Sh FILES
+.Bl -tag -width Ds -compact
+.It Pa /etc/epgstation/config.json
+.Nm
+configuration file.
+.El
+.Sh EXAMPLES
+Start EPGStation.
+.Pp
+.Dl $ epgstation start
+.Pp
+Start EPGStation in development mode.
+.Pp
+.Dl $ epgstation run dev-start
+.Pp
+Backup the EPGstation database.
+.Pp
+.Dl $ epgstation run backup /path/to/dst
+.Pp
+Restore the EPGstation database.
+.Pp
+.Dl $ epgstation run restore /path/to/src
+.Pp
+.Sh SEE ALSO
+.Xr npm 1
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/package.json b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/package.json
new file mode 100644
index 000000000000..53b1ebca2da7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/package.json
@@ -0,0 +1,85 @@
+{
+ "name": "EPGStation",
+ "version": "1.7.5",
+ "description": "DTV Software in Japan.",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/l3tnun/EPGStation.git"
+ },
+ "author": "l3tnun",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/l3tnun/EPGStation/issues"
+ },
+ "homepage": "https://github.com/l3tnun/EPGStation#readme",
+ "engines": {
+ "node": "^10.x.x < 11 || ^12.14.0 < 13 || ^14.5.0 < 15"
+ },
+ "dependencies": {
+ "aribts": "^2.1.12",
+ "b24.js": "1.0.3",
+ "basic-auth": "2.0.1",
+ "body-parser": "1.19.0",
+ "chart.js": "2.9.3",
+ "css-ripple-effect": "1.0.5",
+ "diskusage": "1.1.3",
+ "express": "4.17.1",
+ "express-openapi": "7.0.1",
+ "fs-extra": "9.0.1",
+ "hls-b24.js": "0.12.3",
+ "js-yaml": "3.14.0",
+ "lodash": "4.17.20",
+ "log4js": "6.3.0",
+ "material-design-icons": "3.0.1",
+ "material-design-lite": "1.3.0",
+ "minimist": "1.2.5",
+ "mirakurun": "3.3.1",
+ "mithril": "2.0.4",
+ "mkdirp": "1.0.4",
+ "multer": "1.4.2",
+ "mysql": "2.18.1",
+ "openapi-types": "7.0.1",
+ "pg": "8.3.3",
+ "request": "2.88.2",
+ "socket.io": "2.3.0",
+ "socket.io-client": "2.3.0",
+ "sqlite3": "5.0.0",
+ "swagger-ui-dist": "3.34.0",
+ "url-join": "4.0.1",
+ "@types/basic-auth": "1.1.3",
+ "@types/body-parser": "1.19.0",
+ "@types/chart.js": "2.9.24",
+ "@types/express": "4.17.8",
+ "@types/hls.js": "0.13.1",
+ "@types/js-yaml": "3.12.5",
+ "@types/lodash": "4.14.161",
+ "@types/material-design-lite": "1.1.16",
+ "@types/minimist": "1.2.0",
+ "@types/mithril": "2.0.3",
+ "@types/mkdirp": "1.0.1",
+ "@types/multer": "1.4.4",
+ "@types/mysql": "2.15.15",
+ "@types/node": "14.11.1",
+ "@types/pg": "7.14.5",
+ "@types/request": "2.48.5",
+ "@types/socket.io": "2.1.11",
+ "@types/socket.io-client": "1.4.33",
+ "@types/sqlite3": "3.1.6",
+ "@types/url-join": "4.0.0",
+ "del": "5.1.0",
+ "gulp": "4.0.2",
+ "gulp-clean-css": "4.3.0",
+ "gulp-concat": "2.6.1",
+ "gulp-dart-sass": "1.0.2",
+ "gulp-plumber": "1.2.1",
+ "gulp-sourcemaps": "2.6.5",
+ "gulp-tslint": "8.1.4",
+ "gulp-typescript": "5.0.1",
+ "terser-webpack-plugin": "4.2.2",
+ "ts-loader": "8.0.4",
+ "tslint": "6.1.3",
+ "typescript": "4.0.3",
+ "webpack": "4.44.2",
+ "webpack-stream": "6.1.0"
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix
new file mode 100644
index 000000000000..9faa83c64f9e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix
@@ -0,0 +1,66 @@
+{ pname
+, version
+, homepage
+, lib
+, common-updater-scripts
+, genericUpdater
+, writers
+, jq
+}:
+
+let
+ updater = genericUpdater {
+ inherit pname version;
+ attrPath = lib.toLower pname;
+ rev-prefix = "v";
+ versionLister = "${common-updater-scripts}/bin/list-git-tags ${homepage}";
+ };
+ updateScript = builtins.elemAt updater 0;
+ updateArgs = map (lib.escapeShellArg) (builtins.tail updater);
+in writers.writeBash "update-epgstation" ''
+ set -euxo pipefail
+
+ # bump the version
+ ${updateScript} ${lib.concatStringsSep " " updateArgs}
+
+ cd "${toString ./.}"
+
+ # Get the path to the latest source. Note that we can't just pass the value
+ # of epgstation.src directly because it'd be evaluated before we can run
+ # updateScript.
+ SRC="$(nix-build ../../../.. --no-out-link -A epgstation.src)"
+ if [[ "${version}" == "$(${jq}/bin/jq -r .version "$SRC/package.json")" ]]; then
+ echo "[INFO] Already using the latest version of ${pname}" >&2
+ exit
+ fi
+
+ # Regenerate package.json from the latest source.
+ ${jq}/bin/jq '. + {
+ dependencies: (.dependencies + .devDependencies),
+ } | del(.devDependencies, .main, .scripts)' \
+ "$SRC/package.json" \
+ > package.json
+
+ # Regenerate node packages to update the pre-overriden epgstation derivation.
+ # This must come *after* package.json has been regenerated.
+ pushd ../../../development/node-packages
+ ./generate.sh
+ popd
+
+ # Generate default streaming settings for the nixos module.
+ pushd ../../../../nixos/modules/services/video/epgstation
+ ${jq}/bin/jq '
+ { liveHLS
+ , liveMP4
+ , liveWebM
+ , mpegTsStreaming
+ , mpegTsViewer
+ , recordedDownloader
+ , recordedStreaming
+ , recordedHLS
+ , recordedViewer
+ }' \
+ "$SRC/config/config.sample.json" \
+ > streaming.json
+ popd
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/use-mysql-over-domain-socket.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/use-mysql-over-domain-socket.patch
new file mode 100644
index 000000000000..48640f2ba08d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/use-mysql-over-domain-socket.patch
@@ -0,0 +1,17 @@
+diff --git a/src/server/ConfigInterface.ts b/src/server/ConfigInterface.ts
+index d23badd..1dd2b98 100644
+--- a/src/server/ConfigInterface.ts
++++ b/src/server/ConfigInterface.ts
+@@ -11,9 +11,10 @@ interface ConfigInterface {
+ dbPath: string;
+ dbInfoPath: string;
+ mysql: {
+- host: string;
++ host?: string;
++ socketPath?: string;
+ user: string;
+- password: string;
++ password?: string;
+ database: string;
+ connectTimeout: number;
+ connectionLimit: number;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/ffmpeg-normalize/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/ffmpeg-normalize/default.nix
new file mode 100644
index 000000000000..411ab9e6bc28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/ffmpeg-normalize/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, ffmpeg_3
+, tqdm
+}:
+
+buildPythonApplication rec {
+ pname = "ffmpeg-normalize";
+ version = "1.19.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "18dpck9grnr3wgbjvdh4mjlx0zfwcxpy4rnpmc39in0yk3w7li2x";
+ };
+
+ propagatedBuildInputs = [ ffmpeg_3 tqdm ];
+
+ checkPhase = ''
+ $out/bin/ffmpeg-normalize --help > /dev/null
+ '';
+
+ meta = with lib; {
+ description = "Normalize audio via ffmpeg";
+ homepage = "https://github.com/slhck/ffmpeg-normalize";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ prusnak ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/filebot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/filebot/default.nix
new file mode 100644
index 000000000000..e9ae14e19aa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/filebot/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, openjdk11, makeWrapper, autoPatchelfHook
+, zlib, libzen, libmediainfo, curl, libmms, glib
+}:
+
+let
+ # FileBot requires libcurl-gnutls.so to build
+ curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "filebot";
+ version = "4.9.2";
+
+ src = fetchurl {
+ url = "https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
+ sha256 = "0hcyam8l0fzc9fnp1dpawk0s3rwhfph78w99y7zlcv5l4l4h04lz";
+ };
+
+ unpackPhase = "tar xvf $src";
+
+ nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
+
+ buildInputs = [ zlib libzen libmediainfo curlWithGnuTls libmms glib ];
+
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p $out/opt $out/bin
+ # Since FileBot has dependencies on relative paths between files, all required files are copied to the same location as is.
+ cp -r filebot.sh lib/ jar/ $out/opt/
+ # Filebot writes to $APP_DATA, which fails due to read-only filesystem. Using current user .local directory instead.
+ substituteInPlace $out/opt/filebot.sh \
+ --replace 'APP_DATA="$FILEBOT_HOME/data/$(id -u)"' 'APP_DATA=''${XDG_DATA_HOME:-$HOME/.local/share}/filebot/data' \
+ --replace '$FILEBOT_HOME/data/.license' '$APP_DATA/.license'
+ wrapProgram $out/opt/filebot.sh \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ openjdk11 ]}
+ # Expose the binary in bin to make runnable.
+ ln -s $out/opt/filebot.sh $out/bin/filebot
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The ultimate TV and Movie Renamer";
+ longDescription = ''
+ FileBot is the ultimate tool for organizing and renaming your Movies, TV
+ Shows and Anime as well as fetching subtitles and artwork. It's smart and
+ just works.
+ '';
+ homepage = "https://filebot.net";
+ changelog = "https://www.filebot.net/forums/viewforum.php?f=7";
+ license = licenses.unfreeRedistributable;
+ maintainers = with maintainers; [ gleber felschr ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix
new file mode 100644
index 000000000000..3bd7785f201c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix
@@ -0,0 +1,33 @@
+{stdenv, substituteAll, fetchFromGitHub, pkgconfig, gettext, glib, gtk3, gmtk, dbus, dbus-glib
+, libnotify, libpulseaudio, mplayer, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-mplayer";
+ version = "1.0.9";
+
+ src = fetchFromGitHub {
+ owner = "kdekorte";
+ repo = "gnome-mplayer";
+ rev = "v${version}";
+ sha256 = "0qvy9fllvg1mad6y1j79iaqa6khs0q2cb0z62yfg4srbr07fi8xr";
+ };
+
+ nativeBuildInputs = [ pkgconfig gettext wrapGAppsHook ];
+ buildInputs = [ glib gtk3 gmtk dbus dbus-glib libnotify libpulseaudio ];
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ mencoder = "${mplayer}/bin/mencoder";
+ mplayer = "${mplayer}/bin/mplayer";
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Gnome MPlayer, a simple GUI for MPlayer";
+ homepage = "https://sites.google.com/site/kdekorte2/gnomemplayer";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/gnome-mplayer/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/gnome-mplayer/fix-paths.patch
new file mode 100644
index 000000000000..ede4991c4662
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/gnome-mplayer/fix-paths.patch
@@ -0,0 +1,87 @@
+--- a/src/gui.c
++++ b/src/gui.c
+@@ -7470,7 +7470,7 @@
+ filename = g_strdup_printf("%s/00000001.jpg", dirname);
+ g_free(basepath);
+ // run mplayer and try to get the first frame and convert it to a jpeg
+- av[ac++] = g_strdup_printf("mplayer");
++ av[ac++] = g_strdup_printf("@mplayer@");
+ av[ac++] = g_strdup_printf("-vo");
+ av[ac++] = g_strdup_printf("jpeg:outdir=%s", dirname);
+ av[ac++] = g_strdup_printf("-ao");
+--- a/src/property_page_common.c
++++ b/src/property_page_common.c
+@@ -80,7 +80,7 @@
+ MetaData *ret;
+ ret = g_new0(MetaData, 1);
+
+- av[ac++] = g_strdup_printf("mplayer");
++ av[ac++] = g_strdup_printf("@mplayer@");
+ av[ac++] = g_strdup_printf("-vo");
+ av[ac++] = g_strdup_printf("null");
+ av[ac++] = g_strdup_printf("-ao");
+--- a/src/support.c
++++ b/src/support.c
+@@ -566,7 +566,7 @@
+ } else {
+ playlist = FALSE;
+ if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) {
+- av[ac++] = g_strdup_printf("mplayer");
++ av[ac++] = g_strdup_printf("@mplayer@");
+ } else {
+ av[ac++] = g_strdup_printf("%s", mplayer_bin);
+ }
+@@ -728,7 +728,7 @@
+ playlist = FALSE;
+ // run mplayer and try to get the first frame and convert it to a jpeg
+ if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) {
+- av[ac++] = g_strdup_printf("mplayer");
++ av[ac++] = g_strdup_printf("@mplayer@");
+ } else {
+ av[ac++] = g_strdup_printf("%s", mplayer_bin);
+ }
+@@ -825,7 +825,7 @@
+ playlist = FALSE;
+
+ if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) {
+- av[ac++] = g_strdup_printf("mplayer");
++ av[ac++] = g_strdup_printf("@mplayer@");
+ } else {
+ av[ac++] = g_strdup_printf("%s", mplayer_bin);
+ }
+@@ -1251,7 +1251,7 @@
+ gm_log(verbose, G_LOG_LEVEL_INFO, "getting file metadata for %s", name);
+
+ if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) {
+- av[ac++] = g_strdup_printf("mplayer");
++ av[ac++] = g_strdup_printf("@mplayer@");
+ } else {
+ av[ac++] = g_strdup_printf("%s", mplayer_bin);
+ }
+@@ -1532,7 +1532,7 @@
+ return 0;
+
+ if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) {
+- av[ac++] = g_strdup_printf("mplayer");
++ av[ac++] = g_strdup_printf("@mplayer@");
+ } else {
+ av[ac++] = g_strdup_printf("%s", mplayer_bin);
+ }
+@@ -1597,7 +1597,7 @@
+
+ if (control_id == 0) {
+ ac = 0;
+- av[ac++] = g_strdup_printf("mencoder");
++ av[ac++] = g_strdup_printf("@mencoder@");
+ av[ac++] = g_strdup_printf("-ovc");
+ av[ac++] = g_strdup_printf("copy");
+ av[ac++] = g_strdup_printf("-oac");
+@@ -2830,7 +2830,7 @@
+ gboolean ret = TRUE;
+
+ if (mplayer_bin == NULL || !g_file_test(mplayer_bin, G_FILE_TEST_EXISTS)) {
+- av[ac++] = g_strdup_printf("mplayer");
++ av[ac++] = g_strdup_printf("@mplayer@");
+ } else {
+ av[ac++] = g_strdup_printf("%s", mplayer_bin);
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/gnomecast/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/gnomecast/default.nix
new file mode 100644
index 000000000000..e4814e40c1fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/gnomecast/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3Packages, gtk3, gobject-introspection, ffmpeg_3, wrapGAppsHook }:
+
+with python3Packages;
+buildPythonApplication rec {
+ pname = "gnomecast";
+ version = "1.9.11";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "4d8cd7a71f352137252c5a9ee13475bd67fb99594560ecff1efb0f718d8bbaac";
+ };
+
+ nativeBuildInputs = [ wrapGAppsHook ];
+ propagatedBuildInputs = [
+ PyChromecast bottle pycaption paste html5lib pygobject3 dbus-python
+ gtk3 gobject-introspection
+ ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg_3 ]})
+ '';
+
+ meta = with lib; {
+ description = "A native Linux GUI for Chromecasting local files";
+ homepage = "https://github.com/keredson/gnomecast";
+ license = with licenses; [ gpl3 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/go-chromecast/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/go-chromecast/default.nix
new file mode 100644
index 000000000000..89c2eb425ce6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/go-chromecast/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "go-chromecast";
+ version = "0.2.5";
+
+ src = fetchFromGitHub {
+ owner = "vishen";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0y1zwy1bxnjz409vdhqwykvfjhrsyy4j503v3rjrrhkcca6vfbyg";
+ };
+
+ vendorSha256 = "04mgm3afgczq0an6ys8bilxv1hgzfwvgjx21fyl82yxd573rsf5r";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=unknown" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/vishen/go-chromecast";
+ description = "CLI for Google Chromecast, Home devices and Cast Groups";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/gpac/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/gpac/default.nix
new file mode 100644
index 000000000000..aa66155d17ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/gpac/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, pkgconfig, zlib }:
+
+stdenv.mkDerivation rec {
+ version = "1.0.1";
+ pname = "gpac";
+
+ src = fetchFromGitHub {
+ owner = "gpac";
+ repo = "gpac";
+ rev = "v${version}";
+ sha256 = "0gj46jpprfqv3wyagblv3a52chbplyzhvpra66v63czjibqsslm5";
+ };
+
+ postPatch = ''
+ substituteInPlace Makefile --replace 'dh_link' 'ln -s'
+ '';
+
+ # this is the bare minimum configuration, as I'm only interested in MP4Box
+ # For most other functionality, this should probably be extended
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ zlib ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Open Source multimedia framework for research and academic purposes";
+ longDescription = ''
+ GPAC is an Open Source multimedia framework for research and academic purposes.
+ The project covers different aspects of multimedia, with a focus on presentation
+ technologies (graphics, animation and interactivity) and on multimedia packaging
+ formats such as MP4.
+
+ GPAC provides three sets of tools based on a core library called libgpac:
+
+ A multimedia player, called Osmo4 / MP4Client,
+ A multimedia packager, called MP4Box,
+ And some server tools included in MP4Box and MP42TS applications.
+ '';
+ homepage = "https://gpac.wp.imt.fr";
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ bluescreen303 mgdelacroix ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/handbrake/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/handbrake/default.nix
new file mode 100644
index 000000000000..1e4b83da8144
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/handbrake/default.nix
@@ -0,0 +1,149 @@
+# Upstream distributes HandBrake with bundle of according versions of libraries
+# and patches to them. This derivation patches HandBrake to use Nix closure
+# dependencies.
+#
+# NOTE: 2019-07-19: This derivation does not currently support the native macOS
+# GUI--it produces the "HandbrakeCLI" CLI version only. In the future it would
+# be nice to add the native GUI (and/or the GTK GUI) as an option too, but that
+# requires invoking the Xcode build system, which is non-trivial for now.
+
+{ stdenv, lib, fetchFromGitHub,
+ # Main build tools
+ pkgconfig, autoconf, automake, libtool, m4, lzma, python3,
+ numactl,
+ # Processing, video codecs, containers
+ ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora, dav1d,
+ # Codecs, audio
+ libopus, lame, libvorbis, a52dec, speex, libsamplerate,
+ # Text processing
+ libiconv, fribidi, fontconfig, freetype, libass, jansson, libxml2, harfbuzz,
+ # Optical media
+ libdvdread, libdvdnav, libdvdcss, libbluray,
+ # Darwin-specific
+ AudioToolbox ? null,
+ Foundation ? null,
+ libobjc ? null,
+ VideoToolbox ? null,
+ # GTK
+ # NOTE: 2019-07-19: The gtk3 package has a transitive dependency on dbus,
+ # which in turn depends on systemd. systemd is not supported on Darwin, so
+ # for now we disable GTK GUI support on Darwin. (It may be possible to remove
+ # this restriction later.)
+ useGtk ? !stdenv.isDarwin, wrapGAppsHook ? null,
+ intltool ? null,
+ glib ? null,
+ gtk3 ? null,
+ libappindicator-gtk3 ? null,
+ libnotify ? null,
+ gst_all_1 ? null,
+ dbus-glib ? null,
+ udev ? null,
+ libgudev ? null,
+ hicolor-icon-theme ? null,
+ # FDK
+ useFdk ? false, fdk_aac ? null
+}:
+
+stdenv.mkDerivation rec {
+ pname = "handbrake";
+ version = "1.3.3";
+
+ src = fetchFromGitHub {
+ owner = "HandBrake";
+ repo = "HandBrake";
+ rev = version;
+ sha256 = "0bsmk37543zv3p32a7wxnh2w483am23ha2amj339q3nnb4142krn";
+ extraPostFetch = ''
+ echo "DATE=$(date +"%F %T %z" -r $out/NEWS.markdown)" > $out/version.txt
+ '';
+ };
+
+ # we put as little as possible in src.extraPostFetch as it's much easier to
+ # add to it here without having to fiddle with src.sha256
+ # only DATE and HASH are absolutely necessary
+ postPatch = ''
+ cat >> version.txt <<_EOF
+HASH=${src.rev}
+SHORTHASH=${src.rev}
+TAG=${version}
+URL=${src.meta.homepage}
+_EOF
+
+ patchShebangs scripts
+
+ # Force using nixpkgs dependencies
+ sed -i '/MODULES += contrib/d' make/include/main.defs
+ sed -e 's/^[[:space:]]*\(meson\|ninja\|nasm\)[[:space:]]*= ToolProbe.*$//g' \
+ -e '/ ## Additional library and tool checks/,/ ## MinGW specific library and tool checks/d' \
+ -i make/configure.py
+ '' + (lib.optionalString stdenv.isDarwin ''
+ # Use the Nix-provided libxml2 instead of the patched version available on
+ # the Handbrake website.
+ substituteInPlace libhb/module.defs \
+ --replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
+
+ # Prevent the configure script from failing if xcodebuild isn't available,
+ # which it isn't in the Nix context. (The actual build goes fine without
+ # xcodebuild.)
+ sed -e '/xcodebuild = ToolProbe/s/abort=.\+)/abort=False)/' -i make/configure.py
+ '') + (lib.optionalString stdenv.isLinux ''
+ # Use the Nix-provided libxml2 instead of the system-provided one.
+ substituteInPlace libhb/module.defs \
+ --replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
+ '');
+
+ nativeBuildInputs = [
+ pkgconfig autoconf automake libtool m4 python3
+ ] ++ lib.optionals useGtk [ intltool wrapGAppsHook ];
+
+ buildInputs = [
+ ffmpeg-full libogg libtheora x264 x265 libvpx dav1d
+ libopus lame libvorbis a52dec speex libsamplerate
+ libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
+ libdvdread libdvdnav libdvdcss libbluray lzma
+ ] ++ lib.optional (!stdenv.isDarwin) numactl
+ ++ lib.optionals useGtk [
+ glib gtk3 libappindicator-gtk3 libnotify
+ gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev
+ libgudev hicolor-icon-theme
+ ] ++ lib.optional useFdk fdk_aac
+ ++ lib.optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
+ # NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
+ # look at ./make/configure.py search "enable_nvenc"
+ ++ lib.optional stdenv.isLinux nv-codec-headers;
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--disable-df-fetch"
+ "--disable-df-verify"
+ (if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
+ (if useFdk then "--enable-fdk-aac" else "")
+ (if stdenv.isDarwin then "--disable-xcode" else "")
+ ] ++ lib.optional (stdenv.isx86_32 || stdenv.isx86_64) "--harden";
+
+ # NOTE: 2018-12-27: Check NixOS HandBrake test if changing
+ NIX_LDFLAGS = [
+ "-lx265"
+ ];
+
+ preBuild = ''
+ cd build
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://handbrake.fr/";
+ description = "A tool for converting video files and ripping DVDs";
+ longDescription = ''
+ Tool for converting and remuxing video files
+ into selection of modern and widely supported codecs
+ and containers. Very versatile and customizable.
+ Package provides:
+ CLI - `HandbrakeCLI`
+ GTK GUI - `ghb`
+ '';
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ Anton-Latukha wmertens ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix
new file mode 100644
index 000000000000..e1631150b8be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libhdhomerun, gcc, gnumake, pkg-config, gtk2 }:
+
+stdenv.mkDerivation rec {
+ pname = "hdhomerun-config-gui";
+ version = "20200907";
+
+ src = fetchurl {
+ url = "https://download.silicondust.com/hdhomerun/hdhomerun_config_gui_${version}.tgz";
+ sha256 = "17zf0hzw68b0xdkh1maqhl96jb7171mbhd29y64as29nps9x4fmz";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ gtk2 libhdhomerun ];
+
+ configureFlags = [ "CPPFLAGS=-I${libhdhomerun}/include/hdhomerun" ];
+ makeFlags = [ "SUBDIRS=src" ];
+
+ installPhase = ''
+ install -vDm 755 src/hdhomerun_config_gui $out/usr/bin/hdhomerun_config_gui
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GUI for configuring Silicondust HDHomeRun TV tuners";
+ homepage = "https://www.silicondust.com/support/linux";
+ license = licenses.gpl3Only;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.louisdk1 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix
new file mode 100644
index 000000000000..825aac4dad29
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, callPackage
+, mpv, python-mpv-jsonipc, jellyfin-apiclient-python
+, pillow, tkinter, pystray, jinja2, pywebview }:
+
+let
+ shaderPack = callPackage ./shader-pack.nix {};
+in
+buildPythonApplication rec {
+ pname = "jellyfin-mpv-shim";
+ version = "1.7.1";
+
+ src = fetchFromGitHub {
+ owner = "iwalton3";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0alrh5h3f8pq9mrq09jmpqa0yslxsjqwij6kwn24ggbwc10zkq75";
+ fetchSubmodules = true; # needed for display_mirror css file
+ };
+
+ patches = [
+ ./disable-desktop-client.patch
+ ./disable-update-check.patch
+ ];
+
+ # override $HOME directory:
+ # error: [Errno 13] Permission denied: '/homeless-shelter'
+ #
+ # remove jellyfin_mpv_shim/win_utils.py:
+ # ModuleNotFoundError: No module named 'win32gui'
+ preCheck = ''
+ export HOME=$TMPDIR
+
+ rm jellyfin_mpv_shim/win_utils.py
+ '';
+
+ postPatch = ''
+ # link the default shader pack
+ ln -s ${shaderPack} jellyfin_mpv_shim/default_shader_pack
+ '';
+
+ propagatedBuildInputs = [
+ jellyfin-apiclient-python
+ mpv
+ pillow
+ python-mpv-jsonipc
+
+ # gui dependencies
+ pystray
+ tkinter
+
+ # display_mirror dependencies
+ jinja2
+ pywebview
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/iwalton3/jellyfin-mpv-shim";
+ description = "Allows casting of videos to MPV via the jellyfin mobile and web app";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ jojosch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
new file mode 100644
index 000000000000..996225efb3a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
@@ -0,0 +1,12 @@
+diff --git a/setup.py b/setup.py
+index a831959..2206e6e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -25,7 +25,6 @@ setup(
+ entry_points={
+ 'console_scripts': [
+ 'jellyfin-mpv-shim=jellyfin_mpv_shim.mpv_shim:main',
+- 'jellyfin-mpv-desktop=jellyfin_mpv_shim.mpv_shim:main_desktop',
+ ]
+ },
+ classifiers=[
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
new file mode 100644
index 000000000000..6941b956e854
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
@@ -0,0 +1,15 @@
+diff --git a/jellyfin_mpv_shim/conf.py b/jellyfin_mpv_shim/conf.py
+index 0ab9326..ccedc17 100644
+--- a/jellyfin_mpv_shim/conf.py
++++ b/jellyfin_mpv_shim/conf.py
+@@ -88,8 +88,8 @@ class Settings(object):
+ "sync_revert_seek": True,
+ "sync_osd_message": True,
+ "screenshot_menu": True,
+- "check_updates": True,
+- "notify_updates": True,
++ "check_updates": False,
++ "notify_updates": False,
+ "lang": None,
+ "desktop_scale": 1.0,
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
new file mode 100644
index 000000000000..fd33e8c90b52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "jellyfin-mpv-shim-shader-pack";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "iwalton3";
+ repo = "default-shader-pack";
+ rev = "v${version}";
+ sha256 = "04y8gvjy4v3773b1kyan4dxqcf86b56x7v33m2k246jbn0rl2pgr";
+ };
+
+ installPhase = ''
+ mkdir -p $out
+ cp -a . $out
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/iwalton3/default-shader-pack";
+ description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients";
+ license = with licenses; [ mit lgpl3Plus unlicense ];
+ maintainers = with maintainers; [ jojosch ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/jftui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/jftui/default.nix
new file mode 100644
index 000000000000..04ed4c16e2bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/jftui/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, curl
+, mpv
+, yajl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "jftui";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "Aanok";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0riwqfh5lyjg7as75kyx7jw6zq4gikbglhv8s05y7pzgsc9xy75j";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ ];
+
+ buildInputs = [
+ curl
+ mpv
+ yajl
+ ];
+
+ installPhase = ''
+ install -Dm555 build/jftui $out/bin/jftui
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Jellyfin Terminal User Interface ";
+ homepage = "https://github.com/Aanok/jftui";
+ license = licenses.unlicense;
+ maintainers = [ maintainers.nyanloutre ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kazam/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/kazam/default.nix
new file mode 100644
index 000000000000..0cdd3db85257
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kazam/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, substituteAll, python3, gst_all_1, wrapGAppsHook, gobject-introspection
+, gtk3, libwnck3, keybinder3, intltool, libcanberra-gtk3, libappindicator-gtk3, libpulseaudio
+, fetchpatch }:
+
+python3.pkgs.buildPythonApplication rec {
+ name = "kazam-${version}";
+ version = "1.4.5";
+ namePrefix = "";
+
+ src = fetchurl {
+ url = "https://launchpad.net/kazam/stable/${version}/+download/kazam-${version}.tar.gz";
+ sha256 = "1qygnrvm6aqixbyivhssp70hs0llxwk7lh3j7idxa2jbkk06hj4f";
+ };
+
+ nativeBuildInputs = [ gobject-introspection python3.pkgs.distutils_extra intltool wrapGAppsHook ];
+ buildInputs = [
+ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gtk3 libwnck3
+ keybinder3 libappindicator-gtk3
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [ pygobject3 pyxdg pycairo dbus-python ];
+
+ # workaround https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ patches = [
+ # Fix paths
+ (substituteAll {
+ src = ./fix-paths.patch;
+ libcanberra = libcanberra-gtk3;
+ inherit libpulseaudio;
+ })
+ # https://github.com/hzbd/kazam/pull/21
+ (fetchpatch {
+ url = "https://github.com/hzbd/kazam/commit/37e53a5aa61f4223a9ea03ceeda26eeba2b9d37b.patch";
+ sha256 = "1q5dpmdm6cvgzw8xa7bwclnqa05xc73ja1lszwmwv5glyik0fk4z";
+ })
+ ];
+
+ # no tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A screencasting program created with design in mind";
+ homepage = "https://code.launchpad.net/kazam";
+ license = licenses.lgpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.domenkozar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kazam/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/kazam/fix-paths.patch
new file mode 100644
index 000000000000..43e360830ab5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kazam/fix-paths.patch
@@ -0,0 +1,22 @@
+--- a/kazam/backend/grabber.py
++++ b/kazam/backend/grabber.py
+@@ -72,7 +72,7 @@
+ #
+ if prefs.shutter_sound and (not self.god):
+ soundfile = os.path.join(prefs.datadir, 'sounds', prefs.sound_files[prefs.shutter_type])
+- subprocess.call(['/usr/bin/canberra-gtk-play', '-f', soundfile])
++ subprocess.call(['@libcanberra@/bin/canberra-gtk-play', '-f', soundfile])
+
+ if self.xid:
+ if prefs.capture_borders_pic:
+--- a/kazam/pulseaudio/ctypes_pulseaudio.py
++++ b/kazam/pulseaudio/ctypes_pulseaudio.py
+@@ -20,7 +20,7 @@
+ # MA 02110-1301, USA.
+
+ from ctypes import *
+-PA = CDLL('libpulse.so.0')
++PA = CDLL('@libpulseaudio@/lib/libpulse.so.0')
+
+ #
+ # Pulse Audio constants and defines
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kino/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/default.nix
new file mode 100644
index 000000000000..3f41e73dfa75
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/default.nix
@@ -0,0 +1,95 @@
+# is this configure option of interest?
+#--enable-udev-rules-dir=PATH
+# Where to install udev rules (/etc/udev/rules.d)
+
+#TODO shared version?
+
+
+# This is my config output.. Much TODO ?
+#source path /tmp/nix-31998-1/kino-1.2.0/ffmpeg
+#C compiler gcc
+#make make
+#.align is power-of-two no
+#ARCH x86_64 (generic)
+#build suffix -kino
+#big-endian no
+#MMX enabled yes
+#CMOV enabled no
+#CMOV is fast no
+#gprof enabled no
+#debug symbols yes
+#strip symbols yes
+#optimize yes
+#static yes
+#shared no
+#postprocessing support no
+#software scaler enabled yes
+#video hooking no
+#network support no
+#threading support no
+#SDL support no
+#Sun medialib support no
+#AVISynth enabled no
+#liba52 support no
+#liba52 dlopened no
+#libdts support no
+#libfaac enabled no
+#libfaad enabled no
+#faadbin enabled no
+#libgsm enabled no
+#libmp3lame enabled no
+#libnut enabled no
+#libogg enabled no
+#libtheora enabled no
+#libvorbis enabled no
+#x264 enabled no
+#XviD enabled no
+#zlib enabled no
+#AMR-NB float support no
+#AMR-NB fixed support no
+#AMR-WB float support no
+#AMR-WB IF2 support no
+
+{ stdenv, fetchurl, gtk2, libglade, libxml2, libraw1394, libsamplerate, libdv
+, pkgconfig, perlPackages, libavc1394, libiec61883, libXv, gettext
+, libX11, glib, cairo, intltool, ffmpeg, libv4l
+}:
+
+stdenv.mkDerivation {
+ name = "kino-1.3.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/kino/kino-1.3.4.tar.gz";
+ sha256 = "020s05k0ma83rq2kfs8x474pqicaqp9spar81qc816ddfrnh8k8i";
+ };
+
+ buildInputs = [ gtk2 libglade libxml2 libraw1394 libsamplerate libdv
+ pkgconfig libavc1394 libiec61883 intltool libXv gettext libX11 glib cairo ffmpeg libv4l ] # TODOoptional packages
+ ++ (with perlPackages; [ perl XMLParser ]);
+
+ configureFlags = [ "--enable-local-ffmpeg=no" ];
+
+ hardeningDisable = [ "format" ];
+
+ NIX_LDFLAGS = "-lavcodec -lavutil";
+
+ patches = [ ./kino-1.3.4-v4l1.patch ./kino-1.3.4-libav-0.7.patch ./kino-1.3.4-libav-0.8.patch ]; #./kino-1.3.4-libavcodec-pkg-config.patch ];
+
+ postInstall = "
+ rpath=`patchelf --print-rpath \$out/bin/kino`;
+ for i in $buildInputs; do
+ echo adding \$i/lib
+ rpath=\$rpath\${rpath:+:}\$i/lib
+ done
+ for i in \$out/bin/*; do
+ patchelf --set-rpath \"\$rpath\" \"\$i\"
+ done
+ ";
+
+ meta = {
+ description = "Non-linear DV editor for GNU/Linux";
+ homepage = "http://www.kinodv.org/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch
new file mode 100644
index 000000000000..65c5bc38276d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch
@@ -0,0 +1,60 @@
+--- kino-1.3.4.orig/src/frame.cc 2011-07-17 14:54:59.089481638 +0200
++++ kino-1.3.4/src/frame.cc 2011-07-17 15:09:23.199481714 +0200
+@@ -1063,7 +1063,12 @@
+ AVPicture dest;
+ int got_picture;
+
+- avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() );
++ AVPacket pkt;
++ av_init_packet(&pkt);
++ pkt.data = data;
++ pkt.size = GetFrameSize();
++
++ avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
+ if ( got_picture )
+ {
+ avpicture_fill( &dest, static_cast<uint8_t*>( rgb ), PIX_FMT_RGB24, GetWidth(), GetHeight() );
+@@ -1123,7 +1128,12 @@
+ AVPicture output;
+ int got_picture;
+
+- avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() );
++ AVPacket pkt;
++ av_init_packet(&pkt);
++ pkt.data = data;
++ pkt.size = GetFrameSize();
++
++ avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
+ if ( got_picture )
+ {
+ avpicture_fill( &output, static_cast<uint8_t*>( yuv ), PIX_FMT_YUV422, GetWidth(), GetHeight() );
+@@ -1156,7 +1166,12 @@
+ AVFrame *frame = avcodec_alloc_frame();
+ int got_picture;
+
+- avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() );
++ AVPacket pkt;
++ av_init_packet(&pkt);
++ pkt.data = data;
++ pkt.size = GetFrameSize();
++
++ avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
+
+ int width = GetWidth(), height = GetHeight();
+
+@@ -1319,12 +1334,12 @@
+ #if defined(HAVE_LIBAVCODEC)
+ if ( avformatEncoder == NULL )
+ {
+- avformatEncoder = av_alloc_format_context();
++ avformatEncoder = avformat_alloc_context();
+ if ( avformatEncoder )
+ {
+- avformatEncoder->oformat = guess_format( "dv", NULL, NULL );
++ avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL );
+ AVStream* vst = av_new_stream( avformatEncoder, 0 );
+- vst->codec->codec_type = CODEC_TYPE_VIDEO;
++ vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
+ vst->codec->codec_id = CODEC_ID_DVVIDEO;
+ vst->codec->bit_rate = 25000000;
+ vst->start_time = 0;
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch
new file mode 100644
index 000000000000..f98cbda0bc49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch
@@ -0,0 +1,57 @@
+--- kino-1.3.4.orig/src/frame.cc 2012-05-14 19:55:42.153772418 -0700
++++ kino-1.3.4/src/frame.cc 2012-05-14 20:28:34.448838653 -0700
+@@ -101,8 +101,9 @@
+ #if defined(HAVE_LIBAVCODEC)
+ pthread_mutex_lock( &avcodec_mutex );
+ av_register_all();
+- libavcodec = avcodec_alloc_context();
+- avcodec_open( libavcodec, avcodec_find_decoder( CODEC_ID_DVVIDEO ) );
++ libavcodec = avcodec_alloc_context3(NULL);
++ avcodec_open2( libavcodec,
++ avcodec_find_decoder( CODEC_ID_DVVIDEO ), NULL );
+ pthread_mutex_unlock( &avcodec_mutex );
+ data = ( unsigned char* ) av_mallocz( 144000 );
+ #if defined(HAVE_SWSCALE)
+@@ -1338,7 +1339,7 @@
+ if ( avformatEncoder )
+ {
+ avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL );
+- AVStream* vst = av_new_stream( avformatEncoder, 0 );
++ AVStream* vst = avformat_new_stream( avformatEncoder, NULL );
+ vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
+ vst->codec->codec_id = CODEC_ID_DVVIDEO;
+ vst->codec->bit_rate = 25000000;
+@@ -1364,12 +1365,10 @@
+ vst->sample_aspect_ratio = avcodecEncoder->sample_aspect_ratio;
+ #endif
+ avcodecEncoder->thread_count = 2;
+- avcodec_thread_init( avcodecEncoder, avcodecEncoder->thread_count );
+ avcodecEncoder->time_base= isPAL ? ( AVRational ){ 1, 25 } : ( AVRational ){ 1001, 30000 };
+ avcodecEncoder->pix_fmt = isPAL ? PIX_FMT_YUV420P : PIX_FMT_YUV411P;
+ avcodecEncoder->flags |= CODEC_FLAG_INTERLACED_DCT;
+- av_set_parameters( avformatEncoder, NULL );
+- avcodec_open( avcodecEncoder, avcodec_find_encoder( CODEC_ID_DVVIDEO ) );
++ avcodec_open2( avcodecEncoder, avcodec_find_encoder( CODEC_ID_DVVIDEO ), NULL );
+ av_new_packet( &avpacketEncoder, 144000 );
+ tempImage = ( uint8_t* ) av_malloc(
+ avpicture_get_size( avcodecEncoder->pix_fmt, avcodecEncoder->width, avcodecEncoder->height ) );
+@@ -1475,16 +1474,16 @@
+
+ // Encode
+ bytesInFrame = avcodec_encode_video( avcodecEncoder, avpacketEncoder.data, size, output );
+- url_open_buf( &avformatEncoder->pb, data, bytesInFrame, URL_WRONLY );
++ avformatEncoder->pb = avio_alloc_context(data, bytesInFrame, 0, NULL, NULL, NULL, NULL);
+ avpacketEncoder.size = bytesInFrame;
+ if ( !isEncoderHeaderWritten )
+ {
+- av_write_header( avformatEncoder );
++ avformat_write_header( avformatEncoder, NULL );
+ isEncoderHeaderWritten = true;
+ }
+ av_write_frame( avformatEncoder, &avpacketEncoder );
+ #if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(0<<8)+0)
+- url_close_buf( avformatEncoder->pb );
++ avio_close( avformatEncoder->pb );
+ #else
+ url_close_buf( &avformatEncoder->pb );
+ #endif
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch
new file mode 100644
index 000000000000..d6a8953cf00a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch
@@ -0,0 +1,11 @@
+--- a/kino-1.3.4/configure.in 2009-09-08 02:35:23.000000000 -0400
++++ b/kino-1.3.4/configure.in 2014-01-27 14:53:01.366063037 -0500
+@@ -221,7 +221,7 @@
+ if (test "x$avcodec_include" != x) || (test "x$avcodec_lib" != x) ; then
+ local_legacy_ffmpeg_test
+ else
+- PKG_CHECK_MODULES(AVCODEC, libavformat,
++ PKG_CHECK_MODULES(AVCODEC, [libavcodec libavformat libavutil],
+ [
+ AC_DEFINE(HAVE_LIBAVCODEC, 1, [Enable FFMPEG libavcodec])
+ AC_SUBST(AVCODEC_LIBS)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch
new file mode 100644
index 000000000000..05ec7386709e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch
@@ -0,0 +1,21 @@
+no-1.3.3.orig/ffmpeg/libavdevice/v4l.c 2011-05-17 02:20:37.161004916 +0400
++++ kino-1.3.3.orig/ffmpeg/libavdevice/v4l.c 2011-05-17 02:21:57.302377529 +0400
+@@ -26,7 +26,7 @@
+ #include <sys/mman.h>
+ #include <sys/time.h>
+ #define _LINUX_TIME_H 1
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ #include <time.h>
+
+ typedef struct {
+--- kino-1.3.3.orig/src/v4l.h 2011-05-17 02:20:38.896969666 +0400
++++ kino-1.3.3.orig/src/v4l.h 2011-05-17 02:21:39.922730395 +0400
+@@ -40,7 +40,7 @@
+
+ #define _DEVICE_H_
+ #define _LINUX_TIME_H
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+
+ #include "displayer.h"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/default.nix
new file mode 100644
index 000000000000..274ff7cdeab7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/default.nix
@@ -0,0 +1,48 @@
+{
+ mkDerivation, lib, fetchurl,
+ extra-cmake-modules, makeWrapper,
+ libpthreadstubs, libXdmcp,
+ qtsvg, qtx11extras, ki18n, kdelibs4support, kio, kmediaplayer, kwidgetsaddons,
+ phonon, cairo, mplayer
+}:
+
+mkDerivation rec {
+ majorMinorVersion = "0.12";
+ patchVersion = "0b";
+ version = "${majorMinorVersion}.${patchVersion}";
+ pname = "kmplayer";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/kmplayer/${majorMinorVersion}/kmplayer-${version}.tar.bz2";
+ sha256 = "0wzdxym4fc83wvqyhcwid65yv59a2wvp1lq303cn124mpnlwx62y";
+ };
+
+ patches = [
+ ./kmplayer_part-plugin_metadata.patch # Qt 5.9 doesn't like an empty string for the optional "FILE" argument of "Q_PLUGIN_METADATA"
+ ./no-docs.patch # Don't build docs due to errors (kdelibs4support propagates kdoctools)
+ ];
+
+ postPatch = ''
+ sed -i src/kmplayer.desktop \
+ -e "s,^Exec.*,Exec=$out/bin/kmplayer -qwindowtitle %c %i %U,"
+ '';
+
+ nativeBuildInputs = [ extra-cmake-modules makeWrapper ];
+
+ buildInputs = [
+ libpthreadstubs libXdmcp
+ qtsvg qtx11extras ki18n kdelibs4support kio kmediaplayer kwidgetsaddons
+ phonon cairo
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/kmplayer --suffix PATH : ${mplayer}/bin
+ '';
+
+ meta = with lib; {
+ description = "MPlayer front-end for KDE";
+ license = with licenses; [ gpl2 lgpl2 fdl12 ];
+ homepage = "https://kmplayer.kde.org/";
+ maintainers = with maintainers; [ sander zraexy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/kmplayer_part-plugin_metadata.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/kmplayer_part-plugin_metadata.patch
new file mode 100644
index 000000000000..9b6652b0be58
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/kmplayer_part-plugin_metadata.patch
@@ -0,0 +1,11 @@
+--- a/src/kmplayer_part.h
++++ b/src/kmplayer_part.h
+@@ -36,7 +36,7 @@
+
+ class KMPlayerFactory : public KPluginFactory {
+ Q_OBJECT
+- Q_PLUGIN_METADATA(IID "org.kde.KPluginFactory" FILE "")
++ Q_PLUGIN_METADATA(IID "org.kde.KPluginFactory")
+ Q_INTERFACES(KPluginFactory)
+ public:
+ KMPlayerFactory();
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/no-docs.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/no-docs.patch
new file mode 100644
index 000000000000..c93453f908c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kmplayer/no-docs.patch
@@ -0,0 +1,12 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -79,9 +79,6 @@
+
+ add_subdirectory(src)
+ add_subdirectory(icons)
+-if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/doc" AND KF5DocTools_VERSION)
+- add_subdirectory(doc)
+-endif(KF5DocTools_VERSION)
+ add_subdirectory(data)
+
+ if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/default.nix
new file mode 100644
index 000000000000..a60250ee0ff1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/default.nix
@@ -0,0 +1,295 @@
+{ stdenv, lib, fetchpatch, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders
+, pkgconfig, cmake, gnumake, yasm, python2Packages
+, libgcrypt, libgpgerror, libunistring
+, boost, avahi, lame, autoreconfHook
+, gettext, pcre-cpp, yajl, fribidi, which
+, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
+, libxml2, systemd
+, alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl
+, libjpeg, libpng, libtiff
+, libmpeg2, libsamplerate, libmad
+, libogg, libvorbis, flac, libxslt
+, lzo, libcdio, libmodplug, libass, libbluray
+, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
+, curl, bzip2, zip, unzip, glxinfo
+, libcec, libcec_platform, dcadec, libuuid
+, libcrossguid, libmicrohttpd
+, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
+, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
+, lirc
+, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
+, dbusSupport ? true, dbus ? null
+, joystickSupport ? true, cwiid ? null
+, nfsSupport ? true, libnfs ? null
+, pulseSupport ? true, libpulseaudio ? null
+, rtmpSupport ? true, rtmpdump ? null
+, sambaSupport ? true, samba ? null
+, udevSupport ? true, udev ? null
+, usbSupport ? false, libusb-compat-0_1 ? null
+, vdpauSupport ? true, libvdpau ? null
+, useWayland ? false, wayland ? null, wayland-protocols ? null
+, waylandpp ? null, libxkbcommon ? null
+, useGbm ? false, mesa ? null, libinput ? null
+, buildPackages
+}:
+
+assert dbusSupport -> dbus != null;
+assert nfsSupport -> libnfs != null;
+assert pulseSupport -> libpulseaudio != null;
+assert rtmpSupport -> rtmpdump != null;
+assert sambaSupport -> samba != null;
+assert udevSupport -> udev != null;
+assert usbSupport -> libusb-compat-0_1 != null && ! udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
+assert vdpauSupport -> libvdpau != null;
+assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
+
+let
+ kodiReleaseDate = "20200728";
+ kodiVersion = "18.9";
+ rel = "Leia";
+
+ kodi_src = fetchFromGitHub {
+ owner = "xbmc";
+ repo = "xbmc";
+ rev = "${kodiVersion}-${rel}";
+ sha256 = "0nnf7823pixj6n2fkjc8rbdjwayvhlbglij2by4rnjzzfgmqmw20";
+ };
+
+ cmakeProto = fetchurl {
+ url = "https://raw.githubusercontent.com/pramsey/libght/ca9b1121c352ea10170636e170040e1af015bad1/cmake/modules/CheckPrototypeExists.cmake";
+ sha256 = "1zai82gm5x55n3xvdv7mns3ja6a2k81x9zz0nk42j6s2yb0fkjxh";
+ };
+
+ cmakeProtoPatch = ''
+ # get rid of windows headers as they will otherwise be found first
+ rm -rf msvc
+
+ cp ${cmakeProto} cmake/${cmakeProto.name}
+ # we need to enable support for C++ for check_prototype_exists to do its thing
+ substituteInPlace CMakeLists.txt --replace 'LANGUAGES C' 'LANGUAGES C CXX'
+ if [ -f cmake/CheckHeadersSTDC.cmake ]; then
+ sed -i cmake/CheckHeadersSTDC.cmake \
+ -e '7iinclude(CheckPrototypeExists)'
+ fi
+ '';
+
+ kodiDependency = { name, version, rev, sha256, ... } @attrs:
+ let
+ attrs' = builtins.removeAttrs attrs ["name" "version" "rev" "sha256"];
+ in stdenv.mkDerivation ({
+ name = "kodi-${lib.toLower name}-${version}";
+ src = fetchFromGitHub {
+ owner = "xbmc";
+ repo = name;
+ inherit rev sha256;
+ };
+ enableParallelBuilding = true;
+ } // attrs');
+
+ ffmpeg = kodiDependency rec {
+ name = "FFmpeg";
+ version = "4.0.3";
+ rev = "${version}-${rel}-18.2";
+ sha256 = "1krsjlr949iy5l6ljxancza1yi6w1annxc5s6k283i9mb15qy8cy";
+ preConfigure = ''
+ cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
+ sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
+ sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
+ '';
+ cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "-DCROSSCOMPILING=ON"
+ "-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
+ "-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
+ "-DPKG_CONFIG_EXECUTABLE=pkgconfig"
+ ];
+ buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
+ ++ lib.optional vdpauSupport libvdpau;
+ nativeBuildInputs = [ cmake nasm pkgconfig gnutls ];
+ };
+
+ # We can build these externally but FindLibDvd.cmake forces us to build it
+ # them, so we currently just use them for the src.
+ libdvdcss = kodiDependency rec {
+ name = "libdvdcss";
+ version = "1.4.2";
+ rev = "${version}-${rel}-Beta-5";
+ sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
+ buildInputs = [ linuxHeaders ];
+ nativeBuildInputs = [ cmake pkgconfig ];
+ postPatch = ''
+ rm -rf msvc
+
+ substituteInPlace config.h.cm \
+ --replace '#cmakedefine O_BINARY "''${O_BINARY}"' '#define O_BINARY 0'
+ '';
+ cmakeFlags = [
+ "-DBUILD_SHARED_LIBS=1"
+ "-DHAVE_LINUX_DVD_STRUCT=1"
+ ];
+ };
+
+ libdvdnav = kodiDependency rec {
+ name = "libdvdnav";
+ version = "6.0.0";
+ rev = "${version}-${rel}-Alpha-3";
+ sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
+ buildInputs = [ libdvdcss libdvdread ];
+ nativeBuildInputs = [ cmake pkgconfig ];
+ postPatch = cmakeProtoPatch;
+ postInstall = ''
+ mv $out/lib/liblibdvdnav.so $out/lib/libdvdnav.so
+ '';
+ };
+
+ libdvdread = kodiDependency rec {
+ name = "libdvdread";
+ version = "6.0.0";
+ rev = "${version}-${rel}-Alpha-3";
+ sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
+ buildInputs = [ libdvdcss ];
+ nativeBuildInputs = [ cmake pkgconfig ];
+ configureFlags = [ "--with-libdvdcss" ];
+ postPatch = cmakeProtoPatch;
+ };
+
+in stdenv.mkDerivation {
+ name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}";
+
+ src = kodi_src;
+
+ buildInputs = [
+ gnutls libidn libtasn1 nasm p11-kit
+ libxml2 python2Packages.python
+ boost libmicrohttpd
+ gettext pcre-cpp yajl fribidi libva libdrm
+ openssl gperf tinyxml2 taglib libssh
+ alsaLib libGL libGLU fontconfig freetype ftgl
+ libjpeg libpng libtiff
+ libmpeg2 libsamplerate libmad
+ libogg libvorbis flac libxslt systemd
+ lzo libcdio libmodplug libass libbluray
+ sqlite libmysqlclient avahi lame
+ curl bzip2 zip unzip glxinfo
+ libcec libcec_platform dcadec libuuid
+ libgcrypt libgpgerror libunistring
+ libcrossguid libplist
+ bluez giflib glib harfbuzz lcms2 libpthreadstubs
+ ffmpeg flatbuffers fmt fstrcmp rapidjson
+ lirc
+ # libdvdcss libdvdnav libdvdread
+ ]
+ ++ lib.optional x11Support [
+ libX11 xorgproto libXt libXmu libXext.dev libXdmcp
+ libXinerama libXrandr.dev libXtst libXfixes
+ ]
+ ++ lib.optional dbusSupport dbus
+ ++ lib.optional joystickSupport cwiid
+ ++ lib.optional nfsSupport libnfs
+ ++ lib.optional pulseSupport libpulseaudio
+ ++ lib.optional rtmpSupport rtmpdump
+ ++ lib.optional sambaSupport samba
+ ++ lib.optional udevSupport udev
+ ++ lib.optional usbSupport libusb-compat-0_1
+ ++ lib.optional vdpauSupport libvdpau
+ ++ lib.optionals useWayland [
+ wayland
+ waylandpp.dev
+ wayland-protocols
+ # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
+ libxkbcommon.dev
+ ]
+ ++ lib.optional useGbm [
+ libxkbcommon.dev
+ mesa.dev
+ libinput.dev
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ doxygen
+ makeWrapper
+ which
+ pkgconfig gnumake
+ autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
+ jre_headless yasm gettext python2Packages.python flatbuffers
+
+ # for TexturePacker
+ giflib zlib libpng libjpeg lzo
+ ] ++ lib.optionals useWayland [ wayland-protocols waylandpp.bin ];
+
+ depsBuildBuild = [
+ buildPackages.stdenv.cc
+ ];
+
+ cmakeFlags = [
+ "-Dlibdvdcss_URL=${libdvdcss.src}"
+ "-Dlibdvdnav_URL=${libdvdnav.src}"
+ "-Dlibdvdread_URL=${libdvdread.src}"
+ "-DGIT_VERSION=${kodiReleaseDate}"
+ "-DENABLE_EVENTCLIENTS=ON"
+ "-DENABLE_INTERNAL_CROSSGUID=OFF"
+ "-DENABLE_OPTICAL=ON"
+ "-DLIRC_DEVICE=/run/lirc/lircd"
+ "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
+ "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
+ "-DPYTHON_EXECUTABLE=${buildPackages.python2Packages.python}/bin/python"
+ ] ++ lib.optional useWayland [
+ "-DCORE_PLATFORM_NAME=wayland"
+ "-DWAYLAND_RENDER_SYSTEM=gl"
+ "-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
+ ] ++ lib.optional useGbm [
+ "-DCORE_PLATFORM_NAME=gbm"
+ "-DGBM_RENDER_SYSTEM=gles"
+ ];
+
+ enableParallelBuilding = true;
+
+ # 14 tests fail but the biggest issue is that every test takes 30 seconds -
+ # I'm guessing there is a thing waiting to time out
+ doCheck = false;
+
+ # Need these tools on the build system when cross compiling,
+ # hacky, but have found no other way.
+ preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ CXX=c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
+ cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
+
+ CXX=c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
+ cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
+ '';
+
+ postPatch = ''
+ substituteInPlace xbmc/platform/linux/LinuxTimezone.cpp \
+ --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
+ '';
+
+ postInstall = ''
+ for p in $(ls $out/bin/) ; do
+ wrapProgram $out/bin/$p \
+ --prefix PATH ":" "${lib.makeBinPath ([ python2Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo)}" \
+ --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
+ ([ curl systemd libmad libvdpau libcec libcec_platform libass ]
+ ++ lib.optional nfsSupport libnfs
+ ++ lib.optional rtmpSupport rtmpdump)}"
+ done
+
+ substituteInPlace $out/share/xsessions/kodi.desktop \
+ --replace kodi-standalone $out/bin/kodi-standalone
+ '';
+
+ doInstallCheck = true;
+
+ installCheckPhase = "$out/bin/kodi --version";
+
+ passthru = {
+ pythonPackages = python2Packages;
+ };
+
+ meta = with stdenv.lib; {
+ description = "Media center";
+ homepage = "https://kodi.tv/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ domenkozar titanous edwtjo peterhoeg sephalon ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/plugins.nix
new file mode 100644
index 000000000000..6863ef9ca622
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/plugins.nix
@@ -0,0 +1,552 @@
+{ stdenv, callPackage, fetchFromGitHub
+, cmake, kodiPlain, libcec_platform, tinyxml, rapidxml
+, steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
+, python2Packages, expat, glib, nspr, nss, openssl
+, libssh, libarchive, lzma, bzip2, lz4, lzo }:
+
+with stdenv.lib;
+
+let self = rec {
+
+ pluginDir = "/share/kodi/addons";
+ rel = "Leia";
+
+ kodi = kodiPlain;
+
+ # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
+ toKodiPlugin = drv: drv.overrideAttrs(oldAttrs: {
+ # Use passthru in order to prevent rebuilds when possible.
+ passthru = (oldAttrs.passthru or {})// {
+ kodiPluginFor = kodi;
+ requiredKodiPlugins = requiredKodiPlugins drv.propagatedBuildInputs;
+ };
+ });
+
+ # Check whether a derivation provides a Kodi plugin.
+ hasKodiPlugin = drv: drv ? kodiPluginFor && drv.kodiPluginFor == kodi;
+
+ # Get list of required Kodi plugins given a list of derivations.
+ requiredKodiPlugins = drvs: let
+ modules = filter hasKodiPlugin drvs;
+ in unique (modules ++ concatLists (catAttrs "requiredKodiPlugins" modules));
+
+ kodiWithPlugins = func: callPackage ./wrapper.nix {
+ inherit kodi;
+ plugins = requiredKodiPlugins (func self);
+ };
+
+ kodi-platform = stdenv.mkDerivation rec {
+ project = "kodi-platform";
+ version = "17.1";
+ name = "${project}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "xbmc";
+ repo = project;
+ rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
+ sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
+ };
+
+ buildInputs = [ cmake kodiPlain libcec_platform tinyxml ];
+ };
+
+ mkKodiPlugin = { plugin, namespace, version, sourceDir ? null, ... }@args:
+ toKodiPlugin (stdenv.mkDerivation ({
+ name = "kodi-plugin-${plugin}-${version}";
+
+ dontStrip = true;
+
+ extraRuntimeDependencies = [ ];
+
+ installPhase = ''
+ ${if sourceDir == null then "" else "cd $src/$sourceDir"}
+ d=$out${pluginDir}/${namespace}
+ mkdir -p $d
+ sauce="."
+ [ -d ${namespace} ] && sauce=${namespace}
+ cp -R "$sauce/"* $d
+ '';
+ } // args));
+
+ mkKodiABIPlugin = { plugin, namespace, version, extraBuildInputs ? [],
+ extraRuntimeDependencies ? [], extraInstallPhase ? "", ... }@args:
+ toKodiPlugin (stdenv.mkDerivation ({
+ name = "kodi-plugin-${plugin}-${version}";
+
+ dontStrip = true;
+
+ buildInputs = [ cmake kodiPlain kodi-platform libcec_platform ]
+ ++ extraBuildInputs;
+
+ inherit extraRuntimeDependencies;
+
+ # disables check ensuring install prefix is that of kodi
+ cmakeFlags = [
+ "-DOVERRIDE_PATHS=1"
+ ];
+
+ # kodi checks for plugin .so libs existance in the addon folder (share/...)
+ # and the non-wrapped kodi lib/... folder before even trying to dlopen
+ # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
+ installPhase = let n = namespace; in ''
+ make install
+ ln -s $out/lib/addons/${n}/${n}.so.${version} $out${pluginDir}/${n}/${n}.so.${version}
+ ${extraInstallPhase}
+ '';
+ } // args));
+
+ advanced-launcher = mkKodiPlugin rec {
+
+ plugin = "advanced-launcher";
+ namespace = "plugin.program.advanced.launcher";
+ version = "2.5.8";
+
+ src = fetchFromGitHub {
+ owner = "edwtjo";
+ repo = plugin;
+ rev = version;
+ sha256 = "142vvgs37asq5m54xqhjzqvgmb0xlirvm0kz6lxaqynp0vvgrkx2";
+ };
+
+ meta = {
+ homepage = "https://forum.kodi.tv/showthread.php?tid=85724";
+ description = "A program launcher for Kodi";
+ longDescription = ''
+ Advanced Launcher allows you to start any Linux, Windows and
+ macOS external applications (with command line support or not)
+ directly from the Kodi GUI. Advanced Launcher also give you
+ the possibility to edit, download (from Internet resources)
+ and manage all the meta-data (informations and images) related
+ to these applications.
+ '';
+ platforms = platforms.all;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+
+ };
+
+ advanced-emulator-launcher = mkKodiPlugin rec {
+
+ plugin = "advanced-emulator-launcher";
+ namespace = "plugin.program.advanced.emulator.launcher";
+ version = "0.9.6";
+
+ src = fetchFromGitHub {
+ owner = "Wintermute0110";
+ repo = namespace;
+ rev = version;
+ sha256 = "1sv9z77jj6bam6llcnd9b3dgkbvhwad2m1v541rv3acrackms2z2";
+ };
+
+ meta = {
+ homepage = "https://forum.kodi.tv/showthread.php?tid=287826";
+ description = "A program launcher for Kodi";
+ longDescription = ''
+ Advanced Emulator Launcher is a multi-emulator front-end for Kodi
+ scalable to collections of thousands of ROMs. Includes offline scrapers
+ for MAME and No-Intro ROM sets and also supports scrapping ROM metadata
+ and artwork online. ROM auditing for No-Intro ROMs using No-Intro XML
+ DATs. Launching of games and standalone applications is also available.
+ '';
+ platforms = platforms.all;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+
+ };
+
+ controllers = let
+ pname = "game-controller";
+ version = "1.0.3";
+
+ src = fetchFromGitHub {
+ owner = "kodi-game";
+ repo = "kodi-game-controllers";
+ rev = "01acb5b6e8b85392b3cb298b034aadb1b24ccf18";
+ sha256 = "0sbc0w0fwbp7rbmbgb6a1kglhnn5g85hijcbbvf5x6jdq9v3f1qb";
+ };
+
+ meta = {
+ description = "Add support for different gaming controllers.";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+
+ mkController = controller: {
+ ${controller} = mkKodiPlugin rec {
+ plugin = pname + "-" + controller;
+ namespace = "game.controller." + controller;
+ sourceDir = "addons/" + namespace;
+ inherit version src meta;
+ };
+ };
+ in (mkController "default")
+ // (mkController "dreamcast")
+ // (mkController "gba")
+ // (mkController "genesis")
+ // (mkController "mouse")
+ // (mkController "n64")
+ // (mkController "nes")
+ // (mkController "ps")
+ // (mkController "snes");
+
+ hyper-launcher = let
+ pname = "hyper-launcher";
+ version = "1.5.2";
+ src = fetchFromGitHub rec {
+ name = pname + "-" + version + ".tar.gz";
+ owner = "teeedubb";
+ repo = owner + "-xbmc-repo";
+ rev = "f958ba93fe85b9c9025b1745d89c2db2e7dd9bf6";
+ sha256 = "1dvff24fbas25k5kvca4ssks9l1g5rfa3hl8lqxczkaqi3pp41j5";
+ };
+ meta = {
+ homepage = "https://forum.kodi.tv/showthread.php?tid=258159";
+ description = "A ROM launcher for Kodi that uses HyperSpin assets.";
+ maintainers = with maintainers; [ edwtjo ];
+ };
+ in {
+ service = mkKodiPlugin {
+ plugin = pname + "-service";
+ version = "1.2.1";
+ namespace = "service.hyper.launcher";
+ inherit src meta;
+ };
+ plugin = mkKodiPlugin {
+ plugin = pname;
+ namespace = "plugin.hyper.launcher";
+ inherit version src meta;
+ };
+ };
+
+ joystick = mkKodiABIPlugin rec {
+ namespace = "peripheral.joystick";
+ version = "1.4.7";
+ plugin = namespace;
+
+ src = fetchFromGitHub {
+ owner = "xbmc";
+ repo = namespace;
+ rev = "v${version}";
+ sha256 = "03gsp4kg41s3n4ib4wsv7m3krfipgwc2z07i4mnd5zvg0c4xrmap";
+ };
+
+ meta = {
+ description = "Binary addon for raw joystick input.";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+
+ extraBuildInputs = [ udev ];
+ };
+
+ simpleplugin = mkKodiPlugin rec {
+ plugin = "simpleplugin";
+ namespace = "script.module.simpleplugin";
+ version = "2.3.2";
+
+ src = fetchFromGitHub {
+ owner = "romanvm";
+ repo = namespace;
+ rev = "v.${version}";
+ sha256 = "0myar8dqjigb75pcc8zx3i5z79p1ifgphgb82s5syqywk0zaxm3j";
+ };
+
+ meta = {
+ homepage = src.meta.homepage;
+ description = "Simpleplugin API";
+ license = licenses.gpl3;
+ };
+ };
+
+ svtplay = mkKodiPlugin rec {
+
+ plugin = "svtplay";
+ namespace = "plugin.video.svtplay";
+ version = "4.0.48";
+
+ src = fetchFromGitHub {
+ name = plugin + "-" + version + ".tar.gz";
+ owner = "nilzen";
+ repo = "xbmc-" + plugin;
+ rev = "dc18ad002cd69257611d0032fba91f57bb199165";
+ sha256 = "0klk1jpjc243ak306k94mag4b4s17w68v69yb8lzzydszqkaqa7x";
+ };
+
+ meta = {
+ homepage = "https://forum.kodi.tv/showthread.php?tid=67110";
+ description = "Watch content from SVT Play";
+ longDescription = ''
+ With this addon you can stream content from SVT Play
+ (svtplay.se). The plugin fetches the video URL from the SVT
+ Play website and feeds it to the Kodi video player. HLS (m3u8)
+ is the preferred video format by the plugin.
+ '';
+ platforms = platforms.all;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+
+ };
+
+ steam-controller = mkKodiABIPlugin rec {
+ namespace = "peripheral.steamcontroller";
+ version = "0.10.0";
+ plugin = namespace;
+
+ src = fetchFromGitHub {
+ owner = "kodi-game";
+ repo = namespace;
+ rev = "ea345392ab5aa4485f3a48d2037fa8a8e8ab82de";
+ sha256 = "1hbd8fdvn7xkr9csz1g9wah78nhnq1rkazl4zwa31y70830k3279";
+ };
+
+ extraBuildInputs = [ libusb1 ];
+
+ meta = {
+ description = "Binary addon for steam controller.";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ edwtjo ];
+ };
+
+ };
+
+ steam-launcher = mkKodiPlugin {
+
+ plugin = "steam-launcher";
+ namespace = "script.steam.launcher";
+ version = "3.1.4";
+
+ src = fetchFromGitHub rec {
+ owner = "teeedubb";
+ repo = owner + "-xbmc-repo";
+ rev = "db67704c3e16bdcdd3bdfe2926c609f1f6bdc4fb";
+ sha256 = "001a7zs3a4jfzj8ylxv2klc33mipmqsd5aqax7q81fbgwdlndvbm";
+ };
+
+ propagatedBuildInputs = [ steam ];
+
+ meta = {
+ homepage = "https://forum.kodi.tv/showthread.php?tid=157499";
+ description = "Launch Steam in Big Picture Mode from Kodi";
+ longDescription = ''
+ This add-on will close/minimise Kodi, launch Steam in Big
+ Picture Mode and when Steam BPM is exited (either by quitting
+ Steam or returning to the desktop) Kodi will
+ restart/maximise. Running pre/post Steam scripts can be
+ configured via the addon.
+ '';
+ maintainers = with maintainers; [ edwtjo ];
+ };
+ };
+
+ pdfreader = mkKodiPlugin rec {
+ plugin = "pdfreader";
+ namespace = "plugin.image.pdf";
+ version = "1.0.2";
+
+ src = fetchFromGitHub rec {
+ name = plugin + "-" + version + ".tar.gz";
+ owner = "teeedubb";
+ repo = owner + "-xbmc-repo";
+ rev = "0a405b95208ced8a1365ad3193eade8d1c2117ce";
+ sha256 = "1iv7d030z3xvlflvp4p5v3riqnwg9g0yvzxszy63v1a6x5kpjkqa";
+ };
+
+ meta = {
+ homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
+ description = "A comic book reader";
+ maintainers = with maintainers; [ edwtjo ];
+ };
+ };
+
+ pvr-hts = mkKodiABIPlugin rec {
+
+ plugin = "pvr-hts";
+ namespace = "pvr.hts";
+ version = "4.4.14";
+
+ src = fetchFromGitHub {
+ owner = "kodi-pvr";
+ repo = "pvr.hts";
+ rev = "${version}-${rel}";
+ sha256 = "1bcwcwd2yjhw85yk6lyhf0iqiclrsz7r7vpbxgc650fwqbb146gr";
+ };
+
+ meta = {
+ homepage = "https://github.com/kodi-pvr/pvr.hts";
+ description = "Kodi's Tvheadend HTSP client addon";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ cpages ];
+ };
+
+ };
+
+ pvr-hdhomerun = mkKodiABIPlugin rec {
+
+ plugin = "pvr-hdhomerun";
+ namespace = "pvr.hdhomerun";
+ version = "3.5.0";
+
+ src = fetchFromGitHub {
+ owner = "kodi-pvr";
+ repo = "pvr.hdhomerun";
+ rev = "${version}-${rel}";
+ sha256 = "1zrkvfn0im2qmvqm93pa3cg8xkxv61sxlj8nsz4r5z9v9nhqadf6";
+ };
+
+ meta = {
+ homepage = "https://github.com/kodi-pvr/pvr.hdhomerun";
+ description = "Kodi's HDHomeRun PVR client addon";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ titanous ];
+ };
+
+ extraBuildInputs = [ jsoncpp libhdhomerun ];
+
+ };
+
+ pvr-iptvsimple = mkKodiABIPlugin rec {
+
+ plugin = "pvr-iptvsimple";
+ namespace = "pvr.iptvsimple";
+ version = "3.5.7";
+
+ src = fetchFromGitHub {
+ owner = "kodi-pvr";
+ repo = "pvr.iptvsimple";
+ rev = "${version}-${rel}";
+ sha256 = "17znib7c491h2ii4gagxradh0jyvgga0d548gbk4yjj2nc9qqc6d";
+ };
+
+ meta = {
+ homepage = "https://github.com/kodi-pvr/pvr.iptvsimple";
+ description = "Kodi's IPTV Simple client addon";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ];
+ license = licenses.gpl2Plus;
+ };
+
+ extraBuildInputs = [ zlib rapidxml ];
+ };
+
+ osmc-skin = mkKodiPlugin rec {
+
+ plugin = "osmc-skin";
+ namespace = "skin.osmc";
+ version = "18.0.0";
+
+ src = fetchFromGitHub {
+ owner = "osmc";
+ repo = namespace;
+ rev = "40a6c318641e2cbeac58fb0e7dde9c2beac737a0";
+ sha256 = "1l7hyfj5zvjxjdm94y325bmy1naak455b9l8952sb0gllzrcwj6s";
+ };
+
+ meta = {
+ homepage = "https://github.com/osmc/skin.osmc";
+ description = "The default skin for OSMC";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ worldofpeace ];
+ license = licenses.cc-by-nc-sa-30;
+ };
+ };
+
+ yatp = python2Packages.toPythonModule (mkKodiPlugin rec {
+ plugin = "yatp";
+ namespace = "plugin.video.yatp";
+ version = "3.3.2";
+
+ src = fetchFromGitHub {
+ owner = "romanvm";
+ repo = "kodi.yatp";
+ rev = "v.${version}";
+ sha256 = "12g1f57sx7dy6wy7ljl7siz2qs1kxcmijcg7xx2xpvmq61x9qa2d";
+ };
+
+ patches = [ ./yatp/dont-monkey.patch ];
+
+ propagatedBuildInputs = [
+ simpleplugin
+ python2Packages.requests
+ python2Packages.libtorrentRasterbar
+ ];
+
+ meta = {
+ homepage = src.meta.homepage;
+ description = "Yet Another Torrent Player: libtorrent-based torrent streaming for Kodi";
+ license = licenses.gpl3;
+ };
+ });
+
+ inputstream-adaptive = mkKodiABIPlugin rec {
+
+ plugin = "inputstream-adaptive";
+ namespace = "inputstream.adaptive";
+ version = "2.4.6";
+
+ src = fetchFromGitHub {
+ owner = "peak3d";
+ repo = "inputstream.adaptive";
+ rev = "${version}-${rel}";
+ sha256 = "09d9b35mpaf3g5m51viyan9hv7d2i8ndvb9wm0j7rs5gwsf0k71z";
+ };
+
+ extraBuildInputs = [ expat ];
+
+ extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
+
+ extraInstallPhase = let n = namespace; in ''
+ ln -s $out/lib/addons/${n}/libssd_wv.so $out/${pluginDir}/${n}/libssd_wv.so
+ '';
+
+ meta = {
+ homepage = "https://github.com/peak3d/inputstream.adaptive";
+ description = "Kodi inputstream addon for several manifest types";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ sephalon ];
+ };
+ };
+
+ vfs-sftp = mkKodiABIPlugin rec {
+ namespace = "vfs.sftp";
+ version = "1.0.6";
+ plugin = namespace;
+
+ src = fetchFromGitHub {
+ owner = "xbmc";
+ repo = namespace;
+ rev = "${version}-${rel}";
+ sha256 = "044kkzcpzvbyih4vys33r4hqw38xa82snmvl4qj1r80wnszc8af1";
+ };
+
+ meta = with stdenv.lib; {
+ description = "SFTP Virtual Filesystem add-on for Kodi";
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ minijackson ];
+ };
+
+ extraBuildInputs = [ openssl libssh zlib ];
+ };
+
+ vfs-libarchive = mkKodiABIPlugin rec {
+ namespace = "vfs.libarchive";
+ version = "1.0.7";
+ plugin = namespace;
+
+ src = fetchFromGitHub {
+ owner = "xbmc";
+ repo = namespace;
+ rev = "${version}-${rel}";
+ sha256 = "01qhv095h5j67ispm4iw18pd3kl7a0mnjkgm92al9qqiyif8lzgh";
+ };
+
+ meta = with stdenv.lib; {
+ description = "LibArchive Virtual Filesystem add-on for Kodi";
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ minijackson ];
+ };
+
+ extraBuildInputs = [ libarchive lzma bzip2 zlib lz4 lzo openssl ];
+ };
+}; in self
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
new file mode 100644
index 000000000000..6a0b1cbdf739
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, makeWrapper, buildEnv, kodi, plugins }:
+
+let
+ drvName = builtins.parseDrvName kodi.name;
+in buildEnv {
+ name = "${drvName.name}-with-plugins-${drvName.version}";
+
+ paths = [ kodi ] ++ plugins;
+ pathsToLink = [ "/share" ];
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ mkdir $out/bin
+ for exe in kodi{,-standalone}
+ do
+ makeWrapper ${kodi}/bin/$exe $out/bin/$exe \
+ --prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath plugins} \
+ --prefix KODI_HOME : $out/share/kodi \
+ --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
+ (stdenv.lib.concatMap
+ (plugin: plugin.extraRuntimeDependencies) plugins)}"
+ done
+ '';
+
+ meta = kodi.meta // {
+ description = kodi.meta.description
+ + " (with plugins: ${lib.concatMapStringsSep ", " (x: x.name) plugins})";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch
new file mode 100644
index 000000000000..62d5d0c0d4c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch
@@ -0,0 +1,29 @@
+diff --git a/plugin.video.yatp/server.py b/plugin.video.yatp/server.py
+index 1adcbb5..488b72c 100644
+--- a/plugin.video.yatp/server.py
++++ b/plugin.video.yatp/server.py
+@@ -20,24 +20,8 @@ addon = Addon()
+ _ = addon.initialize_gettext()
+ addon.log_notice('Starting Torrent Server...')
+
+-# A monkey-patch to set the necessary librorrent version
+-librorrent_addon = Addon('script.module.libtorrent')
+-orig_custom_version = librorrent_addon.get_setting('custom_version', False)
+-orig_set_version = librorrent_addon.get_setting('set_version', False)
+-librorrent_addon.set_setting('custom_version', 'true')
+-if addon.libtorrent_version == '1.0.9':
+- librorrent_addon.set_setting('set_version', '4')
+-elif addon.libtorrent_version == '1.1.0':
+- librorrent_addon.set_setting('set_version', '5')
+-elif addon.libtorrent_version == '1.1.1':
+- librorrent_addon.set_setting('set_version', '6')
+-else:
+- librorrent_addon.set_setting('set_version', '0')
+-
+ from libs.server import wsgi_app
+
+-librorrent_addon.set_setting('custom_version', orig_custom_version)
+-librorrent_addon.set_setting('set_version', orig_set_version)
+ # ======
+
+ if addon.enable_limits:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/lightworks/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/lightworks/default.nix
new file mode 100644
index 000000000000..97e5e67aaec1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/lightworks/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, dpkg, makeWrapper, buildFHSUserEnv
+, gtk3, gdk-pixbuf, cairo, libjpeg_original, glib, pango, libGLU
+, nvidia_cg_toolkit, zlib, openssl, portaudio
+}:
+let
+ fullPath = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc
+ gtk3
+ gdk-pixbuf
+ cairo
+ libjpeg_original
+ glib
+ pango
+ libGLU
+ nvidia_cg_toolkit
+ zlib
+ openssl
+ portaudio
+ ];
+
+ lightworks = stdenv.mkDerivation rec {
+ version = "14.0.0";
+ pname = "lightworks";
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "http://downloads.lwks.com/v14/lwks-14.0.0-amd64.deb";
+ sha256 = "66eb9f9678d979db76199f1c99a71df0ddc017bb47dfda976b508849ab305033";
+ }
+ else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
+
+ buildInputs = [ dpkg makeWrapper ];
+
+ phases = [ "unpackPhase" "installPhase" ];
+ unpackPhase = "dpkg-deb -x ${src} ./";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ substitute usr/bin/lightworks $out/bin/lightworks \
+ --replace "/usr/lib/lightworks" "$out/lib/lightworks"
+ chmod +x $out/bin/lightworks
+
+ cp -r usr/lib $out
+
+ # /usr/share/fonts is not normally searched
+ # This adds it to lightworks' search path while keeping the default
+ # using the FONTCONFIG_FILE env variable
+ echo "<?xml version='1.0'?>
+ <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
+ <fontconfig>
+ <dir>/usr/share/fonts/truetype</dir>
+ <include>/etc/fonts/fonts.conf</include>
+ </fontconfig>" > $out/lib/lightworks/fonts.conf
+
+ patchelf \
+ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ $out/lib/lightworks/ntcardvt
+
+ wrapProgram $out/lib/lightworks/ntcardvt \
+ --prefix LD_LIBRARY_PATH : ${fullPath}:$out/lib/lightworks \
+ --set FONTCONFIG_FILE $out/lib/lightworks/fonts.conf
+
+ cp -r usr/share $out/share
+ '';
+
+ dontPatchELF = true;
+ };
+
+# Lightworks expects some files in /usr/share/lightworks
+in buildFHSUserEnv {
+ name = lightworks.name;
+
+ targetPkgs = pkgs: [
+ lightworks
+ ];
+
+ runScript = "lightworks";
+
+ meta = {
+ description = "Professional Non-Linear Video Editor";
+ homepage = "https://www.lwks.com/";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = [ stdenv.lib.maintainers.antonxy ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/linuxstopmotion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/linuxstopmotion/default.nix
new file mode 100644
index 000000000000..365fb1ea417a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/linuxstopmotion/default.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, lib, fetchgit, pkgconfig, qmake, qtbase, qttools, qtmultimedia, libvorbis, libtar, libxml2 }:
+
+mkDerivation rec {
+ version = "0.8.5";
+ pname = "linuxstopmotion";
+
+ src = fetchgit {
+ url = "https://git.code.sf.net/p/linuxstopmotion/code";
+ rev = version;
+ sha256 = "1612lkwsfzc59wvdj2zbj5cwsyw66bwn31jrzjrxvygxdh4ab069";
+ };
+
+ nativeBuildInputs = [ qmake pkgconfig ];
+ buildInputs = [ qtbase qttools qtmultimedia libvorbis libtar libxml2 ];
+
+ postPatch = ''
+ substituteInPlace stopmotion.pro --replace '$$[QT_INSTALL_BINS]' '${lib.getDev qttools}/bin'
+ '';
+
+ meta = with lib; {
+ description = "Create stop-motion animation movies";
+ homepage = "http://linuxstopmotion.org/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix
new file mode 100644
index 000000000000..16ade40f0b5a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libdvdread }:
+
+stdenv.mkDerivation rec {
+ name = "lxdvdrip-1.76";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/lxdvdrip/${name}.tgz";
+ sha256 = "0vgslc7dapfrbgslnaicc8bggdccyrvcgjv1dwi19qswhh7jkzj6";
+ };
+
+ prePatch = ''
+ sed -i -e s,/usr/local,$out, -e s,/etc,$out/etc,g Makefile
+ sed -i -e s,/usr/local,$out, buffer/Makefile
+ makeFlags="$makeFlags PREFIX=$out"
+ '';
+
+ preInstall = ''
+ mkdir -p $out/man/man1 $out/bin $out/share $out/etc
+ '';
+
+ buildInputs = [ libdvdread ];
+
+ meta = {
+ description = "Command line tool to make a copy from a video DVD for private use";
+ homepage = "https://sourceforge.net/projects/lxdvdrip";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/makemkv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/makemkv/default.nix
new file mode 100644
index 000000000000..6f47307f4a6a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/makemkv/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, mkDerivation
+, fetchurl
+, autoPatchelfHook
+, pkg-config
+, ffmpeg_3
+, openssl
+, qtbase
+, zlib
+
+, withJava ? true
+, jre_headless
+}:
+
+let
+ version = "1.15.3";
+ # Using two URLs as the first one will break as soon as a new version is released
+ src_bin = fetchurl {
+ urls = [
+ "http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
+ "http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
+ ];
+ hash = "sha256-Y23aetnwqLGaBIgJ/AP0oCrh8P5jpVrcMJgmc0Oe+i8=";
+ };
+ src_oss = fetchurl {
+ urls = [
+ "http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
+ "http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
+ ];
+ hash = "sha256-Qruq9YKAaNF1pDtOhptP95UjFL2NA4EuROR4v6XZHEw=";
+ };
+in mkDerivation {
+ pname = "makemkv";
+ inherit version;
+
+ srcs = [ src_bin src_oss ];
+
+ sourceRoot = "makemkv-oss-${version}";
+
+ nativeBuildInputs = [ autoPatchelfHook pkg-config ];
+
+ buildInputs = [ ffmpeg_3 openssl qtbase zlib ];
+
+ qtWrapperArgs =
+ let
+ binPath = stdenv.lib.makeBinPath [ jre_headless ];
+ in stdenv.lib.optionals withJava [
+ ''--prefix PATH : ${binPath}''
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm555 -t $out/bin out/makemkv ../makemkv-bin-${version}/bin/amd64/makemkvcon
+ install -D -t $out/lib out/lib{driveio,makemkv,mmbd}.so.*
+ install -D -t $out/share/MakeMKV ../makemkv-bin-${version}/src/share/*
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Convert blu-ray and dvd to mkv";
+ longDescription = ''
+ makemkv is a one-click QT application that transcodes an encrypted
+ blu-ray or DVD disc into a more portable set of mkv files, preserving
+ subtitles, chapter marks, all video and audio tracks.
+
+ Program is time-limited -- it will stop functioning after 60 days. You
+ can always download the latest version from makemkv.com that will reset the
+ expiration date.
+ '';
+ license = licenses.unfree;
+ homepage = "http://makemkv.com";
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ danieldk titanous ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/manim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/manim/default.nix
new file mode 100644
index 000000000000..667b2bb2b885
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/manim/default.nix
@@ -0,0 +1,64 @@
+{ lib, buildPythonApplication, fetchFromGitHub, pythonOlder, file, fetchpatch
+, cairo, ffmpeg_3, sox, xdg_utils, texlive
+, colour, numpy, pillow, progressbar, scipy, tqdm, opencv , pycairo, pydub
+, pbr, fetchPypi
+}:
+buildPythonApplication rec {
+ pname = "manim";
+ version = "0.1.10";
+
+ src = fetchPypi {
+ pname = "manimlib";
+ inherit version;
+ sha256 = "0vg9b3rwypq5zir74pi0pmj47yqlcg7hrvscwrpjzjbqq2yihn49";
+ };
+
+ patches = [ ./remove-dependency-constraints.patch ];
+
+ nativeBuildInputs = [ pbr ];
+
+ propagatedBuildInputs = [
+ colour
+ numpy
+ pillow
+ progressbar
+ scipy
+ tqdm
+ opencv
+ pycairo
+ pydub
+
+ cairo sox ffmpeg_3 xdg_utils
+ ];
+
+ # Test with texlive to see whether it works but don't propagate
+ # because it's huge and optional
+ # TODO: Use smaller TexLive distribution
+ # Doesn't need everything but it's hard to figure out what it needs
+ checkInputs = [ cairo sox ffmpeg_3 xdg_utils texlive.combined.scheme-full ];
+
+ # Simple test and complex test with LaTeX
+ checkPhase = ''
+ for scene in SquareToCircle OpeningManimExample
+ do
+ python3 manim.py example_scenes.py $scene -l
+ tail -n 20 files/Tex/*.log # Print potential LaTeX erorrs
+ ${file}/bin/file videos/example_scenes/480p15/$scene.mp4 \
+ | tee | grep -F "ISO Media, MP4 Base Media v1 [IS0 14496-12:2003]"
+ done
+ '';
+
+ disabled = pythonOlder "3.7";
+
+ meta = {
+ description = "Animation engine for explanatory math videos";
+ longDescription = ''
+ Manim is an animation engine for explanatory math videos. It's used to
+ create precise animations programmatically, as seen in the videos of
+ 3Blue1Brown on YouTube.
+ '';
+ homepage = "https://github.com/3b1b/manim";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ johnazoidberg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/manim/remove-dependency-constraints.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/manim/remove-dependency-constraints.patch
new file mode 100644
index 000000000000..4a7da45d0f57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/manim/remove-dependency-constraints.patch
@@ -0,0 +1,26 @@
+diff --git i/requirements.txt w/requirements.txt
+index 556122ad..11fd49d5 100644
+--- i/requirements.txt
++++ w/requirements.txt
+@@ -1,11 +1,10 @@
+-argparse==1.4.0
+-colour==0.1.5
+-numpy==1.15.0
+-Pillow==5.2.0
+-progressbar==2.5
+-scipy==1.1.0
+-tqdm==4.24.0
+-opencv-python==3.4.2.17
+-pycairo==1.17.1; sys_platform == 'linux'
+-pycairo>=1.18.0; sys_platform == 'win32'
+-pydub==0.23.0
++colour
++numpy
++Pillow
++progressbar
++scipy
++tqdm
++pycairo
++pycairo>=1.18.1; sys_platform == 'win32'
++pydub
++pyreadline==2.1; sys_platform == 'win32'
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mapmap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mapmap/default.nix
new file mode 100644
index 000000000000..7320deaf4ce4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mapmap/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, qttools
+, qtmultimedia
+, liblo
+, gst_all_1
+, qmake
+, pkgconfig
+, wrapQtAppsHook
+}:
+
+with stdenv;
+
+mkDerivation rec {
+
+ version = "0.6.2";
+ pname = "mapmap";
+
+ src = fetchFromGitHub {
+ owner = "mapmapteam";
+ repo = "mapmap";
+ rev = version;
+ sha256 = "1pyb3vz19lbfz2hrfqm9a29vnajw1bigdrblbmcy32imkf4isfvm";
+ };
+
+ nativeBuildInputs = [
+ qmake
+ pkgconfig
+ wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ qttools
+ qtmultimedia
+ liblo
+ gst_all_1.gstreamer
+ gst_all_1.gstreamermm
+ gst_all_1.gst-libav
+ gst_all_1.gst-vaapi
+ ];
+
+ patches = [
+ (fetchpatch {
+ name = "message-handler-segfault.patch";
+ url = "https://github.com/mapmapteam/mapmap/pull/519/commits/22eeee59ba7de6de7b73ecec3b0ea93bdc7f04e8.patch";
+ sha256 = "0is905a4lf9vvl5b1n4ky6shrnbs5kz9mlwfk78hrl4zabfmcl5l";
+ })
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp mapmap $out/bin/mapmap
+ mkdir -p $out/share/applications/
+ sed 's|Icon=/usr/share/icons/hicolor/scalable/apps/mapmap.svg|Icon=mapmap|g' resources/texts/mapmap.desktop > $out/share/applications/mapmap.desktop
+ mkdir -p $out/share/icons/hicolor/scalable/apps/
+ cp resources/images/logo/mapmap.* $out/share/icons/hicolor/scalable/apps/
+ '';
+
+ # RPATH in /tmp hack
+ # preFixup = ''
+ # rm -r $NIX_BUILD_TOP/__nix_qt5__
+ # '';
+
+ meta = with stdenv.lib; {
+ description = "Open source video mapping software";
+ homepage = "https://github.com/mapmapteam/mapmap";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.erictapen ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mediathekview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mediathekview/default.nix
new file mode 100644
index 000000000000..7c7ceb914ae7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mediathekview/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+ version = "13.5.1";
+ pname = "mediathekview";
+ src = fetchurl {
+ url = "https://download.mediathekview.de/stabil/MediathekView-${version}-linux.tar.gz";
+ sha256 = "0fixr6drim0wmh4q44zikcla4mrnm44nm95d5naqsgx6idalddrc";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/{bin,lib}
+
+ install -m644 MediathekView.jar $out/lib
+
+ makeWrapper ${jre}/bin/java $out/bin/mediathek \
+ --add-flags "-Xmx1G -jar $out/lib/MediathekView.jar"
+
+ makeWrapper ${jre}/bin/java $out/bin/MediathekView \
+ --add-flags "-Xmx1G -jar $out/lib/MediathekView.jar"
+
+ makeWrapper ${jre}/bin/java $out/bin/MediathekView_ipv4 \
+ --add-flags "-Xmx1G -Djava.net.preferIPv4Stack=true -jar $out/lib/MediathekView.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Offers access to the Mediathek of different tv stations (ARD, ZDF, Arte, etc.)";
+ homepage = "https://mediathekview.de/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ moredread ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/minitube/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/minitube/default.nix
new file mode 100644
index 000000000000..a5bd030e470c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/minitube/default.nix
@@ -0,0 +1,39 @@
+{ mkDerivation, lib, fetchFromGitHub, phonon, phonon-backend-vlc, qtbase, qmake
+, qtdeclarative, qttools, qtx11extras, mpv
+
+# "Free" key generated by nckx <github@tobias.gr>. I no longer have a Google
+# account. You'll need to generate (and please share :-) a new one if it breaks.
+, withAPIKey ? "AIzaSyBtFgbln3bu1swQC-naMxMtKh384D3xJZE" }:
+
+mkDerivation rec {
+ pname = "minitube";
+ version = "3.6";
+
+ src = fetchFromGitHub {
+ sha256 = "6IaBPYL/yGWKUHxPe1FnAR1gDHImXYGItYWq7VNjwEU=";
+ rev = version;
+ repo = "minitube";
+ owner = "flaviotordini";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [ phonon phonon-backend-vlc qtbase qtdeclarative qtx11extras mpv ];
+ nativeBuildInputs = [ qmake qttools ];
+
+ qmakeFlags = [ "DEFINES+=APP_GOOGLE_API_KEY=${withAPIKey}" ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Stand-alone YouTube video player";
+ longDescription = ''
+ Watch YouTube videos in a new way: you type a keyword, Minitube gives
+ you an endless video stream. Minitube is not about cloning the YouTube
+ website, it aims to create a new TV-like experience.
+ '';
+ homepage = "https://flavio.tordini.org/minitube";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mjpg-streamer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mjpg-streamer/default.nix
new file mode 100644
index 000000000000..b6856f1a18e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mjpg-streamer/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake, libjpeg }:
+
+stdenv.mkDerivation {
+ pname = "mjpg-streamer";
+ version = "unstable-2019-05-24";
+
+ src = fetchFromGitHub {
+ owner = "jacksonliam";
+ repo = "mjpg-streamer";
+ rev = "501f6362c5afddcfb41055f97ae484252c85c912";
+ sha256 = "1cl159svfs1zzzrd3zgn4x7qy6751bvlnxfwf5hn5fmg4iszajw7";
+ };
+
+ prePatch = ''
+ cd mjpg-streamer-experimental
+ '';
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libjpeg ];
+
+ postFixup = ''
+ patchelf --set-rpath "$(patchelf --print-rpath $out/bin/mjpg_streamer):$out/lib/mjpg-streamer" $out/bin/mjpg_streamer
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jacksonliam/mjpg-streamer";
+ description = "Takes JPGs from Linux-UVC compatible webcams, filesystem or other input plugins and streams them as M-JPEG via HTTP to webbrowsers, VLC and other software";
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mkclean/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mkclean/default.nix
new file mode 100644
index 000000000000..36cd2206070c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mkclean/default.nix
@@ -0,0 +1,37 @@
+{ dos2unix, fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+ pname = "mkclean";
+ version = "0.8.10";
+
+ hardeningDisable = [ "format" ];
+ nativeBuildInputs = [ dos2unix ];
+
+ src = fetchurl {
+ url = "mirror://sourceforge/matroska/${pname}-${version}.tar.bz2";
+ sha256 = "0zbpi4sm68zb20d53kbss93fv4aafhcmz7dsd0zdf01vj1r3wxwn";
+ };
+
+ configurePhase = ''
+ dos2unix ./mkclean/configure.compiled
+ ./mkclean/configure.compiled
+ '';
+
+ buildPhase = ''
+ make -C mkclean
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{bin,lib}
+ mv release/gcc_linux_*/*.* $out/lib
+ mv release/gcc_linux_*/* $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command line tool to clean and optimize Matroska (.mkv / .mka / .mks / .mk3d) and WebM (.webm / .weba) files that have already been muxed";
+ homepage = "https://www.matroska.org";
+ license = licenses.bsdOriginal;
+ maintainers = with maintainers; [ chrisaw ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
new file mode 100644
index 000000000000..77bacea2a232
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitLab, pkgconfig, autoconf, automake, libiconv, drake
+, ruby, docbook_xsl, file, xdg_utils, gettext, expat, boost, libebml, zlib
+, fmt, libmatroska, libogg, libvorbis, flac, libxslt, cmark, pcre2
+, withGUI ? true
+ , qtbase ? null
+ , qtmultimedia ? null
+ , wrapQtAppsHook ? null
+}:
+
+assert withGUI -> qtbase != null && qtmultimedia != null && wrapQtAppsHook != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "mkvtoolnix";
+ version = "51.0.0";
+
+ src = fetchFromGitLab {
+ owner = "mbunkus";
+ repo = "mkvtoolnix";
+ rev = "release-${version}";
+ sha256 = "06k2slgac0fhgypmdriwdc5s09mry22vxk316ixfj5sv3irwn7wc";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig autoconf automake gettext
+ drake ruby docbook_xsl libxslt
+ ];
+
+ buildInputs = [
+ expat file xdg_utils boost libebml zlib fmt
+ libmatroska libogg libvorbis flac cmark pcre2
+ ] ++ optional stdenv.isDarwin libiconv
+ ++ optionals withGUI [ qtbase qtmultimedia wrapQtAppsHook ];
+
+ preConfigure = "./autogen.sh; patchShebangs .";
+ buildPhase = "drake -j $NIX_BUILD_CORES";
+ installPhase = "drake install -j $NIX_BUILD_CORES";
+
+ configureFlags = [
+ "--enable-magic"
+ "--enable-optimization"
+ "--with-boost-libdir=${boost.out}/lib"
+ "--disable-debug"
+ "--disable-profiling"
+ "--disable-precompiled-headers"
+ "--disable-static-qt"
+ "--with-gettext"
+ "--with-docbook-xsl-root=${docbook_xsl}/share/xml/docbook-xsl"
+ (enableFeature withGUI "qt")
+ ];
+
+ CXXFLAGS = optional stdenv.cc.isClang "-std=c++17";
+
+ dontWrapQtApps = true;
+ postFixup = optionalString withGUI ''
+ wrapQtApp $out/bin/mkvtoolnix-gui
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Cross-platform tools for Matroska";
+ homepage = "http://www.bunkus.org/videotools/mkvtoolnix/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ codyopel rnhmjoj ];
+ platforms = platforms.linux
+ ++ optionals (!withGUI) platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mlv-app/aarch64-flags.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/mlv-app/aarch64-flags.patch
new file mode 100644
index 000000000000..b8c025b3b3fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mlv-app/aarch64-flags.patch
@@ -0,0 +1,13 @@
+diff --git a/platform/qt/MLVApp.pro b/platform/qt/MLVApp.pro
+index ebdc552..3e37573 100644
+--- a/platform/qt/MLVApp.pro
++++ b/platform/qt/MLVApp.pro
+@@ -84,7 +84,7 @@ win32{
+
+ # Linux
+ linux-g++*{
+- QMAKE_CFLAGS += -O3 -fopenmp -msse4.1 -mssse3 -msse3 -msse2 -msse -std=c99
++ QMAKE_CFLAGS += -O3 -fopenmp -march=native -std=c99
+ QMAKE_CXXFLAGS += -fopenmp
+ LIBS += -lgomp
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mlv-app/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mlv-app/default.nix
new file mode 100644
index 000000000000..757759b1146f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mlv-app/default.nix
@@ -0,0 +1,62 @@
+{ fetchFromGitHub
+, lib
+, mkDerivation
+, qmake
+, qtbase
+, qtmultimedia
+, stdenv
+}:
+
+mkDerivation rec {
+ pname = "mlv-app";
+ version = "1.11";
+
+ src = fetchFromGitHub {
+ owner = "ilia3101";
+ repo = "MLV-App";
+ rev = "QTv${version}";
+ sha256 = "0s5sjdxi8a17ddvih4ara7mlb2xrc9xqx52jmhfaca6ng341gi4x";
+ };
+
+ patches = if stdenv.isAarch64 then ./aarch64-flags.patch else null;
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm555 -t $out/bin mlvapp
+ install -Dm444 -t $out/share/applications mlvapp.desktop
+ install -Dm444 -t $out/share/icons/hicolor/512x512/apps RetinaIMG/MLVAPP.png
+ runHook postInstall
+ '';
+
+ qmakeFlags = [ "MLVApp.pro" ];
+
+ preConfigure = ''
+ export HOME=$TMPDIR
+ cd platform/qt/
+ '';
+
+ buildInputs = [
+ qtmultimedia
+ qtbase
+ ];
+
+ dontWrapQtApps = true;
+
+ preFixup = ''
+ wrapQtApp "$out/bin/mlvapp"
+ '';
+
+ nativeBuildInputs = [
+ qmake
+ ];
+
+ meta = with lib; {
+ description = "All in one MLV processing app that is pretty great";
+ homepage = "https://mlv.app";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [
+ kiwi
+ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/molotov/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/molotov/default.nix
new file mode 100644
index 000000000000..c4ee96cc2469
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/molotov/default.nix
@@ -0,0 +1,31 @@
+{ appimageTools, lib, fetchurl }:
+
+let
+ pname = "molotov";
+ version = "4.2.2";
+ name = "${pname}-${version}";
+ src = fetchurl {
+ url = "http://desktop-auto-upgrade.molotov.tv/linux/${version}/molotov.AppImage";
+ sha256 = "00p8srf4yswbihlsi3s7kfkav02h902yvrq99wys11is63n01x8z";
+ };
+ appimageContents = appimageTools.extractType2 { inherit name src; };
+in
+appimageTools.wrapType2 {
+ inherit name src;
+ extraInstallCommands = ''
+ mv $out/bin/${name} $out/bin/${pname}
+ install -m 444 -D \
+ ${appimageContents}/${pname}.desktop \
+ $out/share/applications/${pname}.desktop
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+ cp -r ${appimageContents}/usr/share/icons $out/share
+ '';
+ meta = with lib; {
+ description = "French TV service";
+ homepage = "https://www.molotov.tv/";
+ license = with licenses; [ unfree ];
+ maintainers = with maintainers; [ apeyroux freezeboy ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/motion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/motion/default.nix
new file mode 100644
index 000000000000..e25101250411
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/motion/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, ffmpeg, libjpeg, libmicrohttpd }:
+
+stdenv.mkDerivation rec {
+ pname = "motion";
+ version = "4.3.2";
+
+ src = fetchFromGitHub {
+ owner = "Motion-Project";
+ repo = "motion";
+ rev = "release-${version}";
+ sha256 = "09xs815jsivcilpmnrx2jkcxirj4lg5kp99fkr0p2sdxw03myi95";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ buildInputs = [ ffmpeg libjpeg libmicrohttpd ];
+
+ meta = with stdenv.lib; {
+ description = "Monitors the video signal from cameras";
+ homepage = "https://motion-project.github.io/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ puffnfresh veprbl ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mpc-qt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mpc-qt/default.nix
new file mode 100644
index 000000000000..d9de3eb699d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mpc-qt/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, mkDerivation, fetchFromGitLab, fetchpatch, pkg-config, qmake, qtx11extras, qttools, mpv }:
+
+mkDerivation rec {
+ pname = "mpc-qt";
+ version = "2019-06-09";
+
+ src = fetchFromGitLab {
+ owner = "mpc-qt";
+ repo = "mpc-qt";
+ rev = "2abe6e7fc643068d50522468fe75d614861555ad";
+ sha256 = "1cis8dl9pm91mpnp696zvwsfp96gkwr8jgs45anbwd7ldw78w4x5";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://gitlab.com/mpc-qt/mpc-qt/-/commit/02f2bc7a22e863a89ba322b9acb61cf1aef23ba0.diff";
+ sha256 = "0khld55i194zgi18d0wch5459lfzzkbfdbl1im8akvq8ks5xijis";
+ })
+ ];
+
+ nativeBuildInputs = [ pkg-config qmake qttools ];
+
+ buildInputs = [ mpv qtx11extras ];
+
+ qmakeFlags = [ "QMAKE_LUPDATE=${qttools.dev}/bin/lupdate" ];
+
+ meta = with stdenv.lib; {
+ description = "Media Player Classic Qute Theater";
+ homepage = "https://gitlab.com/mpc-qt/mpc-qt";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mplayer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mplayer/default.nix
new file mode 100644
index 000000000000..86047239cc56
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mplayer/default.nix
@@ -0,0 +1,230 @@
+{ config, stdenv, fetchurl, pkgconfig, freetype, yasm, ffmpeg_3
+, aalibSupport ? true, aalib ? null
+, fontconfigSupport ? true, fontconfig ? null, freefont_ttf ? null
+, fribidiSupport ? true, fribidi ? null
+, x11Support ? true, libX11 ? null, libXext ? null, libGLU, libGL ? null
+, xineramaSupport ? true, libXinerama ? null
+, xvSupport ? true, libXv ? null
+, alsaSupport ? stdenv.isLinux, alsaLib ? null
+, screenSaverSupport ? true, libXScrnSaver ? null
+, vdpauSupport ? false, libvdpau ? null
+, cddaSupport ? !stdenv.isDarwin, cdparanoia ? null
+, dvdnavSupport ? !stdenv.isDarwin, libdvdnav ? null
+, dvdreadSupport ? true, libdvdread ? null
+, bluraySupport ? true, libbluray ? null
+, amrSupport ? false, amrnb ? null, amrwb ? null
+, cacaSupport ? true, libcaca ? null
+, lameSupport ? true, lame ? null
+, speexSupport ? true, speex ? null
+, theoraSupport ? true, libtheora ? null
+, x264Support ? false, x264 ? null
+, jackaudioSupport ? false, libjack2 ? null
+, pulseSupport ? config.pulseaudio or false, libpulseaudio ? null
+, bs2bSupport ? false, libbs2b ? null
+, v4lSupport ? false, libv4l ? null
+# For screenshots
+, libpngSupport ? true, libpng ? null
+, libjpegSupport ? true, libjpeg ? null
+, useUnfreeCodecs ? false
+, darwin ? null
+, buildPackages
+}:
+
+assert fontconfigSupport -> (fontconfig != null);
+assert (!fontconfigSupport) -> (freefont_ttf != null);
+assert fribidiSupport -> (fribidi != null);
+assert x11Support -> (libX11 != null && libXext != null && libGLU != null && libGL != null);
+assert xineramaSupport -> (libXinerama != null && x11Support);
+assert xvSupport -> (libXv != null && x11Support);
+assert alsaSupport -> alsaLib != null;
+assert screenSaverSupport -> libXScrnSaver != null;
+assert vdpauSupport -> libvdpau != null;
+assert cddaSupport -> cdparanoia != null;
+assert dvdnavSupport -> libdvdnav != null;
+assert dvdreadSupport -> libdvdread != null;
+assert bluraySupport -> libbluray != null;
+assert amrSupport -> (amrnb != null && amrwb != null);
+assert cacaSupport -> libcaca != null;
+assert lameSupport -> lame != null;
+assert speexSupport -> speex != null;
+assert theoraSupport -> libtheora != null;
+assert x264Support -> x264 != null;
+assert jackaudioSupport -> libjack2 != null;
+assert pulseSupport -> libpulseaudio != null;
+assert bs2bSupport -> libbs2b != null;
+assert libpngSupport -> libpng != null;
+assert libjpegSupport -> libjpeg != null;
+assert v4lSupport -> libv4l != null;
+
+let
+
+ codecs_src =
+ let
+ dir = "http://www.mplayerhq.hu/MPlayer/releases/codecs/";
+ version = "20071007";
+ in
+ if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
+ url = "${dir}/essential-${version}.tar.bz2";
+ sha256 = "18vls12n12rjw0mzw4pkp9vpcfmd1c21rzha19d7zil4hn7fs2ic";
+ } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl {
+ url = "${dir}/essential-amd64-${version}.tar.bz2";
+ sha256 = "13xf5b92w1ra5hw00ck151lypbmnylrnznq9hhb0sj36z5wz290x";
+ } else if stdenv.hostPlatform.system == "powerpc-linux" then fetchurl {
+ url = "${dir}/essential-ppc-${version}.tar.bz2";
+ sha256 = "18mlj8dp4wnz42xbhdk1jlz2ygra6fbln9wyrcyvynxh96g1871z";
+ } else null;
+
+ codecs = if codecs_src != null then stdenv.mkDerivation {
+ pname = "MPlayer-codecs-essential";
+
+ src = codecs_src;
+
+ installPhase = ''
+ mkdir $out
+ cp -prv * $out
+ '';
+
+ meta.license = stdenv.lib.licenses.unfree;
+ } else null;
+
+ crossBuild = stdenv.hostPlatform != stdenv.buildPlatform;
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "mplayer";
+ version = "1.4";
+
+ src = fetchurl {
+ url = "http://www.mplayerhq.hu/MPlayer/releases/MPlayer-${version}.tar.xz";
+ sha256 = "0j5mflr0wnklxsvnpmxvk704hscyn2785hvvihj2i3a7b3anwnc2";
+ };
+
+ prePatch = ''
+ sed -i /^_install_strip/d configure
+
+ rm -rf ffmpeg
+ '';
+
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+ nativeBuildInputs = [ pkgconfig yasm ];
+ buildInputs = with stdenv.lib;
+ [ freetype ffmpeg_3 ]
+ ++ optional aalibSupport aalib
+ ++ optional fontconfigSupport fontconfig
+ ++ optional fribidiSupport fribidi
+ ++ optionals x11Support [ libX11 libXext libGLU libGL ]
+ ++ optional alsaSupport alsaLib
+ ++ optional xvSupport libXv
+ ++ optional theoraSupport libtheora
+ ++ optional cacaSupport libcaca
+ ++ optional xineramaSupport libXinerama
+ ++ optional dvdnavSupport libdvdnav
+ ++ optional dvdreadSupport libdvdread
+ ++ optional bluraySupport libbluray
+ ++ optional cddaSupport cdparanoia
+ ++ optional jackaudioSupport libjack2
+ ++ optionals amrSupport [ amrnb amrwb ]
+ ++ optional x264Support x264
+ ++ optional pulseSupport libpulseaudio
+ ++ optional screenSaverSupport libXScrnSaver
+ ++ optional lameSupport lame
+ ++ optional vdpauSupport libvdpau
+ ++ optional speexSupport speex
+ ++ optional libpngSupport libpng
+ ++ optional libjpegSupport libjpeg
+ ++ optional bs2bSupport libbs2b
+ ++ optional v4lSupport libv4l
+ ++ (with darwin.apple_sdk.frameworks; optionals stdenv.isDarwin [ Cocoa OpenGL ])
+ ;
+
+ configurePlatforms = [ ];
+ configureFlags = with stdenv.lib; [
+ "--enable-freetype"
+ (if fontconfigSupport then "--enable-fontconfig" else "--disable-fontconfig")
+ (if x11Support then "--enable-x11 --enable-gl" else "--disable-x11 --disable-gl")
+ (if xineramaSupport then "--enable-xinerama" else "--disable-xinerama")
+ (if xvSupport then "--enable-xv" else "--disable-xv")
+ (if alsaSupport then "--enable-alsa" else "--disable-alsa")
+ (if screenSaverSupport then "--enable-xss" else "--disable-xss")
+ (if vdpauSupport then "--enable-vdpau" else "--disable-vdpau")
+ (if cddaSupport then "--enable-cdparanoia" else "--disable-cdparanoia")
+ (if dvdnavSupport then "--enable-dvdnav" else "--disable-dvdnav")
+ (if bluraySupport then "--enable-bluray" else "--disable-bluray")
+ (if amrSupport then "--enable-libopencore_amrnb" else "--disable-libopencore_amrnb")
+ (if cacaSupport then "--enable-caca" else "--disable-caca")
+ (if lameSupport then "--enable-mp3lame --disable-mp3lame-lavc" else "--disable-mp3lame --enable-mp3lame-lavc")
+ (if speexSupport then "--enable-speex" else "--disable-speex")
+ (if theoraSupport then "--enable-theora" else "--disable-theora")
+ (if x264Support then "--enable-x264 --disable-x264-lavc" else "--disable-x264 --enable-x264-lavc")
+ (if jackaudioSupport then "" else "--disable-jack")
+ (if pulseSupport then "--enable-pulse" else "--disable-pulse")
+ (if v4lSupport then "--enable-v4l2 --enable-tv-v4l2" else "--disable-v4l2 --disable-tv-v4l2")
+ "--disable-xanim"
+ "--disable-ivtv"
+ "--disable-xvid --disable-xvid-lavc"
+ "--disable-ossaudio"
+ "--disable-ffmpeg_a"
+ "--yasm=${buildPackages.yasm}/bin/yasm"
+ # Note, the `target` vs `host` confusion is intensional.
+ "--target=${stdenv.hostPlatform.config}"
+ ] ++ optional
+ (useUnfreeCodecs && codecs != null && !crossBuild)
+ "--codecsdir=${codecs}"
+ ++ optional
+ ((stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) && !crossBuild)
+ "--enable-runtime-cpudetection"
+ ++ optional fribidiSupport "--enable-fribidi"
+ ++ optional stdenv.isLinux "--enable-vidix"
+ ++ optional stdenv.isLinux "--enable-fbdev"
+ ++ optionals (crossBuild) [
+ "--enable-cross-compile"
+ "--disable-vidix-pcidb"
+ "--with-vidix-drivers=no"
+ ];
+
+ preConfigure = ''
+ configureFlagsArray+=(
+ "--cc=$CC"
+ "--host-cc=$CC_FOR_BUILD"
+ "--as=$AS"
+ "--nm=$NM"
+ "--ar=$AR"
+ "--ranlib=$RANLIB"
+ "--windres=$WINDRES"
+ )
+ '';
+
+ postConfigure = ''
+ echo CONFIG_MPEGAUDIODSP=yes >> config.mak
+ '';
+
+ NIX_LDFLAGS = with stdenv.lib; toString (
+ optional fontconfigSupport "-lfontconfig"
+ ++ optional fribidiSupport "-lfribidi"
+ ++ optionals x11Support [ "-lX11" "-lXext" ]
+ ++ [ "-lfreetype" ]
+ );
+
+ installTargets = [ "install" ] ++ stdenv.lib.optional x11Support "install-gui";
+
+ enableParallelBuilding = true;
+
+ # Provide a reasonable standard font when not using fontconfig. Maybe we should symlink here.
+ postInstall = stdenv.lib.optionalString (!fontconfigSupport)
+ ''
+ mkdir -p $out/share/mplayer
+ cp ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mplayer/subfont.ttf
+ if test -f $out/share/applications/mplayer.desktop ; then
+ echo "NoDisplay=True" >> $out/share/applications/mplayer.desktop
+ fi
+ '';
+
+ meta = {
+ description = "A movie player that supports many video formats";
+ homepage = "http://mplayerhq.hu";
+ license = "GPL";
+ maintainers = [ stdenv.lib.maintainers.eelco ];
+ platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/default.nix
new file mode 100644
index 000000000000..d7dc865c1694
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/default.nix
@@ -0,0 +1,223 @@
+{ config, stdenv, fetchFromGitHub
+, addOpenGLRunpath, docutils, perl, pkgconfig, python3, wafHook, which
+, ffmpeg, freefont_ttf, freetype, libass, libpthreadstubs, mujs
+, nv-codec-headers, lua, libuchardet, libiconv ? null
+, CoreFoundation, Cocoa, CoreAudio, MediaPlayer
+
+, waylandSupport ? stdenv.isLinux
+ , wayland ? null
+ , wayland-protocols ? null
+ , libxkbcommon ? null
+
+, x11Support ? stdenv.isLinux
+ , libGLU, libGL ? null
+ , libX11 ? null
+ , libXext ? null
+ , libXxf86vm ? null
+ , libXrandr ? null
+
+, cddaSupport ? false
+ , libcdio ? null
+ , libcdio-paranoia ? null
+
+, vulkanSupport ? stdenv.isLinux
+ , libplacebo ? null
+ , shaderc ? null
+ , vulkan-headers ? null
+ , vulkan-loader ? null
+
+, drmSupport ? stdenv.isLinux
+ , libdrm ? null
+ , mesa ? null
+
+, alsaSupport ? stdenv.isLinux, alsaLib ? null
+, archiveSupport ? true, libarchive ? null
+, bluraySupport ? true, libbluray ? null
+, bs2bSupport ? true, libbs2b ? null
+, cacaSupport ? true, libcaca ? null
+, cmsSupport ? true, lcms2 ? null
+, dvdnavSupport ? stdenv.isLinux, libdvdnav ? null
+, jackaudioSupport ? false, libjack2 ? null
+, libpngSupport ? true, libpng ? null
+, openalSupport ? true, openalSoft ? null
+, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
+, rubberbandSupport ? stdenv.isLinux, rubberband ? null
+, screenSaverSupport ? true, libXScrnSaver ? null
+, sdl2Support ? true, SDL2 ? null
+, sixelSupport ? false, libsixel ? null
+, speexSupport ? true, speex ? null
+, swiftSupport ? false, swift ? null
+, theoraSupport ? true, libtheora ? null
+, vaapiSupport ? stdenv.isLinux, libva ? null
+, vapoursynthSupport ? false, vapoursynth ? null
+, vdpauSupport ? true, libvdpau ? null
+, xineramaSupport ? stdenv.isLinux, libXinerama ? null
+, xvSupport ? stdenv.isLinux, libXv ? null
+, zimgSupport ? true, zimg ? null
+}:
+
+with stdenv.lib;
+
+let
+ available = x: x != null;
+in
+assert alsaSupport -> available alsaLib;
+assert archiveSupport -> available libarchive;
+assert bluraySupport -> available libbluray;
+assert bs2bSupport -> available libbs2b;
+assert cacaSupport -> available libcaca;
+assert cddaSupport -> all available [ libcdio libcdio-paranoia ];
+assert cmsSupport -> available lcms2;
+assert drmSupport -> all available [ libdrm mesa ];
+assert dvdnavSupport -> available libdvdnav;
+assert jackaudioSupport -> available libjack2;
+assert libpngSupport -> available libpng;
+assert openalSupport -> available openalSoft;
+assert pulseSupport -> available libpulseaudio;
+assert rubberbandSupport -> available rubberband;
+assert screenSaverSupport -> available libXScrnSaver;
+assert sdl2Support -> available SDL2;
+assert sixelSupport -> available libsixel;
+assert speexSupport -> available speex;
+assert theoraSupport -> available libtheora;
+assert vaapiSupport -> available libva;
+assert vapoursynthSupport -> available vapoursynth;
+assert vdpauSupport -> available libvdpau;
+assert vulkanSupport -> all available [ libplacebo shaderc vulkan-headers vulkan-loader ];
+assert waylandSupport -> all available [ wayland wayland-protocols libxkbcommon ];
+assert x11Support -> all available [ libGLU libGL libX11 libXext libXxf86vm libXrandr ];
+assert xineramaSupport -> x11Support && available libXinerama;
+assert xvSupport -> x11Support && available libXv;
+assert zimgSupport -> available zimg;
+
+let
+ luaEnv = lua.withPackages (ps: with ps; [ luasocket ]);
+
+in stdenv.mkDerivation rec {
+ pname = "mpv";
+ version = "0.33.0";
+
+ src = fetchFromGitHub {
+ owner = "mpv-player";
+ repo = "mpv";
+ rev = "v${version}";
+ sha256 = "sha256-3l32qQBpvWVjbLp5CZtO039oDQeH7C/cNAKtJxrzlRk=";
+ };
+
+ postPatch = ''
+ patchShebangs ./TOOLS/
+ '';
+
+ passthru = {
+ inherit
+ # The wrapper consults luaEnv and lua.version
+ luaEnv
+ lua
+ # In the wrapper, we want to reference vapoursynth which has the
+ # `python3` passthru attribute (which has the `sitePrefix`
+ # attribute). This way we'll be sure that in the wrapper we'll
+ # use the same python3.sitePrefix used to build vapoursynth.
+ vapoursynthSupport
+ vapoursynth
+ ;
+ };
+
+ NIX_LDFLAGS = optionalString x11Support "-lX11 -lXext "
+ + optionalString stdenv.isDarwin "-framework CoreFoundation";
+
+ wafConfigureFlags = [
+ "--enable-libmpv-shared"
+ "--enable-manpage-build"
+ "--disable-libmpv-static"
+ "--disable-static-build"
+ "--disable-build-date" # Purity
+ (enableFeature archiveSupport "libarchive")
+ (enableFeature cddaSupport "cdda")
+ (enableFeature dvdnavSupport "dvdnav")
+ (enableFeature openalSupport "openal")
+ (enableFeature sdl2Support "sdl2")
+ (enableFeature sixelSupport "sixel")
+ (enableFeature vaapiSupport "vaapi")
+ (enableFeature waylandSupport "wayland")
+ (enableFeature stdenv.isLinux "dvbin")
+ ] # Disable whilst Swift isn't supported
+ ++ stdenv.lib.optional (!swiftSupport) "--disable-macos-cocoa-cb";
+
+ nativeBuildInputs = [
+ addOpenGLRunpath docutils perl pkgconfig python3 wafHook which
+ ]
+ ++ optional swiftSupport swift;
+
+ buildInputs = [
+ ffmpeg freetype libass libpthreadstubs
+ luaEnv libuchardet mujs
+ ] ++ optional alsaSupport alsaLib
+ ++ optional archiveSupport libarchive
+ ++ optional bluraySupport libbluray
+ ++ optional bs2bSupport libbs2b
+ ++ optional cacaSupport libcaca
+ ++ optional cmsSupport lcms2
+ ++ optional jackaudioSupport libjack2
+ ++ optional libpngSupport libpng
+ ++ optional openalSupport openalSoft
+ ++ optional pulseSupport libpulseaudio
+ ++ optional rubberbandSupport rubberband
+ ++ optional screenSaverSupport libXScrnSaver
+ ++ optional sdl2Support SDL2
+ ++ optional sixelSupport libsixel
+ ++ optional speexSupport speex
+ ++ optional theoraSupport libtheora
+ ++ optional vaapiSupport libva
+ ++ optional vapoursynthSupport vapoursynth
+ ++ optional vdpauSupport libvdpau
+ ++ optional xineramaSupport libXinerama
+ ++ optional xvSupport libXv
+ ++ optional zimgSupport zimg
+ ++ optional stdenv.isDarwin libiconv
+ ++ optional stdenv.isLinux nv-codec-headers
+ ++ optionals cddaSupport [ libcdio libcdio-paranoia ]
+ ++ optionals drmSupport [ libdrm mesa ]
+ ++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ]
+ ++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
+ ++ optionals x11Support [ libX11 libXext libGLU libGL libXxf86vm libXrandr ]
+ ++ optionals vulkanSupport [ libplacebo shaderc vulkan-headers vulkan-loader ]
+ ++ optionals stdenv.isDarwin [ CoreFoundation Cocoa CoreAudio MediaPlayer ];
+
+ enableParallelBuilding = true;
+
+ postBuild = optionalString stdenv.isDarwin ''
+ python3 TOOLS/osxbundle.py -s build/mpv
+ '';
+
+ postInstall = ''
+ # Use a standard font
+ mkdir -p $out/share/mpv
+ ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
+
+ cp TOOLS/mpv_identify.sh $out/bin
+ cp TOOLS/umpv $out/bin
+ '' + optionalString stdenv.isDarwin ''
+ mkdir -p $out/Applications
+ cp -r build/mpv.app $out/Applications
+ '';
+
+ # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
+ # See the explanation in addOpenGLRunpath.
+ postFixup = optionalString stdenv.isLinux ''
+ addOpenGLRunpath $out/bin/mpv
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A media player that supports many video formats (MPlayer and mplayer2 fork)";
+ homepage = "https://mpv.io";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ AndersonTorres fpletz globin ma27 tadeokondrak ];
+ platforms = platforms.darwin ++ platforms.linux;
+
+ longDescription = ''
+ mpv is a free and open-source general-purpose video player,
+ based on the MPlayer and mplayer2 projects, with great
+ improvements above both.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/autoload.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/autoload.nix
new file mode 100644
index 000000000000..f64e702f21cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/autoload.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, mpv-unwrapped, lib }:
+
+stdenv.mkDerivation rec {
+ pname = "mpv-autoload";
+ version = mpv-unwrapped.version;
+ src = "${mpv-unwrapped.src.outPath}/TOOLS/lua/autoload.lua";
+ dontBuild = true;
+ dontUnpack = true;
+ installPhase = ''
+ install -Dm644 ${src} $out/share/mpv/scripts/autoload.lua
+ '';
+ passthru.scriptName = "autoload.lua";
+
+ meta = {
+ description = "This script automatically loads playlist entries before and after the the currently played file";
+ homepage = "https://github.com/mpv-player/mpv/blob/master/TOOLS/lua/autoload.lua";
+ maintainers = [ lib.maintainers.dawidsowa ];
+ license = lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/convert.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/convert.nix
new file mode 100644
index 000000000000..ce0695203328
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/convert.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchgit, lib
+, yad, mkvtoolnix-cli, libnotify }:
+
+stdenv.mkDerivation {
+ pname = "mpv-convert-script";
+ version = "2016-03-18";
+ src = fetchgit {
+ url = "https://gist.github.com/Zehkul/25ea7ae77b30af959be0";
+ rev = "f95cee43e390e843a47e8ec9d1711a12a8cd343d";
+ sha256 = "13m7l4sy2r8jv2sfrb3vvqvnim4a9ilnv28q5drlg09v298z3mck";
+ };
+
+ patches = [ ./convert.patch ];
+
+ postPatch =
+ let
+ t = k: v: '' 'local ${k} = "${v}"' '';
+ subs = var: orig: repl: "--replace " + t var orig + t var repl;
+ in ''
+ substituteInPlace convert_script.lua \
+ ${subs "NOTIFY_CMD" "notify-send" "${libnotify}/bin/notify-send"} \
+ ${subs "YAD_CMD" "yad" "${yad}/bin/yad"} \
+ ${subs "MKVMERGE_CMD" "mkvmerge" "${mkvtoolnix-cli}/bin/mkvmerge"}
+ '';
+
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p $out/share/mpv/scripts
+ cp convert_script.lua $out/share/mpv/scripts
+ '';
+ passthru.scriptName = "convert_script.lua";
+
+ meta = {
+ description = "Convert parts of a video while you are watching it in mpv";
+ homepage = "https://gist.github.com/Zehkul/25ea7ae77b30af959be0";
+ maintainers = [ lib.maintainers.Profpatsch ];
+ longDescription = ''
+ When this script is loaded into mpv, you can hit Alt+W to mark the beginning
+ and Alt+W again to mark the end of the clip. Then a settings window opens.
+ '';
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/convert.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/convert.patch
new file mode 100644
index 000000000000..82171210b415
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/convert.patch
@@ -0,0 +1,67 @@
+--- convert/convert_script.lua 2016-03-18 19:30:49.675401969 +0100
++++ convert_script.lua 2016-03-19 01:18:00.801897043 +0100
+@@ -3,6 +3,10 @@
+ local opt = require 'mp.options'
+ local utils = require 'mp.utils'
+
++local NOTIFY_CMD = "notify-send"
++local YAD_CMD = "yad"
++local MKVMERGE_CMD = "mkvmerge"
++
+ -- default options, convert_script.conf is read
+ local options = {
+ bitrate_multiplier = 0.975, -- to make sure the file won’t go over the target file size, set it to 1 if you don’t care
+@@ -247,12 +247,12 @@
+ if string.len(vf) > 0 then
+ vf = vf .. ","
+ end
+- local sub_file_table = mp.get_property_native("options/sub-file")
++ local sub_file_table = mp.get_property_native("options/sub-files")
+ local sub_file = ""
+ for index, param in pairs(sub_file_table) do
+ sub_file = sub_file .. " --sub-file='" .. string.gsub(tostring(param), "'", "'\\''") .. "'"
+ end
+- local audio_file_table = mp.get_property_native("options/audio-file")
++ local audio_file_table = mp.get_property_native("options/audio-files")
+ local audio_file = ""
+ for index, param in pairs(audio_file_table) do
+ audio_file = audio_file .. " --audio-file='" .. string.gsub(tostring(param), "'", "'\\''") .. "'"
+@@ -354,9 +358,9 @@
+ if ovc == "gif" then
+ full_command = full_command .. ' --vf-add=lavfi=graph=\\"framestep=' .. framestep .. '\\" && convert '
+ .. tmpfolder .. '/*.png -set delay ' .. delay .. ' -loop 0 -fuzz ' .. fuzz .. '% ' .. dither .. ' -layers optimize '
+- .. full_output_path .. ' && rm -rf ' .. tmpfolder .. ' && notify-send "Gif done") & disown'
++ .. full_output_path .. ' && rm -rf ' .. tmpfolder .. ' && ' .. NOTIFY_CMD .. ' "Gif done") & disown'
+ else
+- full_command = full_command .. ' && notify-send "Encoding done"; mkvpropedit '
++ full_command = full_command .. ' && ' .. NOTIFY_CMD .. ' "Encoding done"; mkvpropedit '
+ .. full_output_path .. ' -s title="' .. metadata_title .. '") & disown'
+ end
+
+@@ -409,7 +413,7 @@
+ sep = ",+"
+
+ if enc then
+- local command = "mkvmerge '" .. video .. "' " .. mkvmerge_parts .. " -o " .. full_output_path
++ local command = MKVMERGE_CMD .. " '" .. video .. "' " .. mkvmerge_parts .. " -o " .. full_output_path
+ msg.info(command)
+ os.execute(command)
+ clear()
+@@ -508,7 +512,7 @@
+ end
+
+
+- local yad_command = [[LC_NUMERIC=C yad --title="Convert Script" --center --form --fixed --always-print-result \
++ local yad_command = [[LC_NUMERIC=C ]] .. YAD_CMD .. [[ --title="Convert Script" --center --form --fixed --always-print-result \
+ --name "convert script" --class "Convert Script" --field="Resize to height:NUM" "]] .. scale_sav --yad_table 1
+ .. [[" --field="Resize to width instead:CHK" ]] .. resize_to_width_instead .. " " --yad_table 2
+ if options.legacy_yad then
+@@ -543,7 +547,7 @@
+ yad_command = yad_command .. [[ --button="Crop:1" --button="gtk-cancel:2" --button="gtk-ok:0"; ret=$? && echo $ret]]
+
+ if gif_dialog then
+- yad_command = [[echo $(LC_NUMERIC=C yad --title="Gif settings" --name "convert script" --class "Convert Script" \
++ yad_command = [[echo $(LC_NUMERIC=C ]] .. YAD_CMD .. [[ --title="Gif settings" --name "convert script" --class "Convert Script" \
+ --center --form --always-print-result --separator="…" \
+ --field="Fuzz Factor:NUM" '1!0..100!0.5!1' \
+ --field="Framestep:NUM" '3!1..3!1' \
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/mpris.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/mpris.nix
new file mode 100644
index 000000000000..5f2a21ea7e44
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/mpris.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchpatch, fetchFromGitHub, pkgconfig, glib, mpv-unwrapped }:
+
+stdenv.mkDerivation rec {
+ pname = "mpv-mpris";
+ version = "0.5";
+
+ src = fetchFromGitHub {
+ owner = "hoyon";
+ repo = "mpv-mpris";
+ rev = version;
+ sha256 = "07p6li5z38pkfd40029ag2jqx917vyl3ng5p2i4v5a0af14slcnk";
+ };
+ patches = [
+ # Enables to "make SCRIPTS_DIR=... install" https://github.com/hoyon/mpv-mpris/pull/38
+ (fetchpatch {
+ url = "https://github.com/hoyon/mpv-mpris/commit/f1482350868bf20e4575f923943ec998469b255e.patch";
+ sha256 = "1lqy867wpmj6hv3zgi6g679a7x3dv5skpw24hwd05b28galnyd4l";
+ })
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ glib mpv-unwrapped ];
+
+ installFlags = [ "SCRIPTS_DIR=$(out)/share/mpv/scripts" ];
+
+ # Otherwise, the shared object isn't `strip`ped. See:
+ # https://discourse.nixos.org/t/debug-why-a-derivation-has-a-reference-to-gcc/7009
+ stripDebugList = [ "share/mpv/scripts" ];
+ passthru.scriptName = "mpris.so";
+
+ meta = with stdenv.lib; {
+ description = "MPRIS plugin for mpv";
+ homepage = "https://github.com/hoyon/mpv-mpris";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
new file mode 100644
index 000000000000..d51434e241c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+ pname = "simple-mpv-ui";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "open-dynaMIX";
+ repo = "simple-mpv-webui";
+ rev = "v${version}";
+ sha256 = "1glrnnl1slcl0ri0zs4j64lc9aa52p9ffh6av0d81fk95nm98917";
+ };
+
+ dontBuild = true;
+ installPhase = ''
+ mkdir -p $out/share/mpv/scripts
+ cp -r webui.lua webui-page $out/share/mpv/scripts/
+ '';
+ passthru.scriptName = "webui.lua";
+
+ meta = with stdenv.lib; {
+ description = "A web based user interface with controls for the mpv mediaplayer";
+ homepage = "https://github.com/open-dynaMIX/simple-mpv-webui";
+ maintainers = [ maintainers.cript0nauta ];
+ longDescription = ''
+ You can access the webui when accessing http://127.0.0.1:8080 or
+ http://[::1]:8080 in your webbrowser. By default it listens on
+ 0.0.0.0:8080 and [::0]:8080
+ '';
+ license = licenses.mit;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/sponsorblock.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/sponsorblock.nix
new file mode 100644
index 000000000000..8213e514d2ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/scripts/sponsorblock.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, fetchpatch, python3 }:
+
+# Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.sponsorblock ]; }`
+stdenv.mkDerivation {
+ pname = "mpv_sponsorblock";
+ version = "unstable-2020-07-05";
+
+ src = fetchFromGitHub {
+ owner = "po5";
+ repo = "mpv_sponsorblock";
+ rev = "f71e49e0531350339134502e095721fdc66eac20";
+ sha256 = "1fr4cagzs26ygxyk8dxqvjw4n85fzv6is6cb1jhr2qnsjg6pa0p8";
+ };
+
+ dontBuild = true;
+
+ patches = [
+ # Use XDG_DATA_HOME and XDG_CACHE_HOME if defined for UID and DB
+ # Necessary to avoid sponsorblock to write in the nix store at runtime.
+ # https://github.com/po5/mpv_sponsorblock/pull/17
+ (fetchpatch {
+ url = "https://github.com/po5/mpv_sponsorblock/pull/17/commits/e65b360a7d03a3430b4829e457a6670b2f617b09.patch";
+ sha256 = "00wv0pvbz0dz2ibka66zhl2jk0pil4pyv6ipjfz37i81q6szyhs5";
+ })
+ (fetchpatch {
+ url = "https://github.com/po5/mpv_sponsorblock/pull/17/commits/3832304d959205e99120a14c0560ed3c37104b08.patch";
+ sha256 = "149ffvn714n2m3mqs8mgrbs24bcr74kqfkx7wyql36ndhm88xd2z";
+ })
+ ];
+
+ postPatch = ''
+ substituteInPlace sponsorblock.lua \
+ --replace "python3" "${python3}/bin/python3" \
+ --replace 'mp.find_config_file("scripts")' "\"$out/share/mpv/scripts\""
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/mpv/scripts
+ cp -r sponsorblock.lua sponsorblock_shared $out/share/mpv/scripts/
+ '';
+
+ passthru.scriptName = "sponsorblock.lua";
+
+ meta = with stdenv.lib; {
+ description = "mpv script to skip sponsored segments of YouTube videos";
+ homepage = "https://github.com/po5/mpv_sponsorblock";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ pacien ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
new file mode 100644
index 000000000000..4d61971956e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
@@ -0,0 +1,83 @@
+# Arguments that this derivation gets when it is created with `callPackage`
+{ stdenv
+, lib
+, symlinkJoin
+, makeWrapper
+, youtube-dl
+}:
+
+# the unwrapped mpv derivation - 1st argument to `wrapMpv`
+mpv:
+
+let
+ # arguments to the function (called `wrapMpv` in all-packages.nix)
+ wrapper = {
+ extraMakeWrapperArgs ? [],
+ youtubeSupport ? true,
+ # a set of derivations (probably from `mpvScripts`) where each is
+ # expected to have a `scriptName` passthru attribute that points to the
+ # name of the script that would reside in the script's derivation's
+ # `$out/share/mpv/scripts/`.
+ scripts ? [],
+ extraUmpvWrapperArgs ? []
+ }:
+ let
+ binPath = lib.makeBinPath ([
+ mpv.luaEnv
+ ] ++ lib.optionals youtubeSupport [
+ youtube-dl
+ ] ++ lib.optionals mpv.vapoursynthSupport [
+ mpv.vapoursynth.python3
+ ]);
+ # All arguments besides the input and output binaries (${mpv}/bin/mpv and
+ # $out/bin/mpv). These are used by the darwin specific makeWrapper call
+ # used to wrap $out/Applications/mpv.app/Contents/MacOS/mpv as well.
+ mostMakeWrapperArgs = lib.strings.escapeShellArgs ([ "--argv0" "'$0'"
+ # These are always needed (TODO: Explain why)
+ "--prefix" "LUA_CPATH" ";" "${mpv.luaEnv}/lib/lua/${mpv.lua.luaversion}/?.so"
+ "--prefix" "LUA_PATH" ";" "${mpv.luaEnv}/share/lua/${mpv.lua.luaversion}/?.lua"
+ ] ++ lib.optionals mpv.vapoursynthSupport [
+ "--prefix" "PYTHONPATH" ":" "${mpv.vapoursynth}/${mpv.vapoursynth.python3.sitePackages}"
+ ] ++ lib.optionals (binPath != "") [
+ "--prefix" "PATH" ":" binPath
+ ] ++ (lib.lists.flatten (map
+ # For every script in the `scripts` argument, add the necessary flags to the wrapper
+ (script:
+ [
+ "--add-flags"
+ # Here we rely on the existence of the `scriptName` passthru
+ # attribute of the script derivation from the `scripts`
+ "--script=${script}/share/mpv/scripts/${script.scriptName}"
+ ]
+ ) scripts
+ )) ++ extraMakeWrapperArgs)
+ ;
+ umpvWrapperArgs = lib.strings.escapeShellArgs ([
+ "--argv0" "'$0'"
+ "--set" "MPV" "${placeholder "out"}/bin/mpv"
+ ] ++ extraUmpvWrapperArgs)
+ ;
+ in
+ symlinkJoin {
+ name = "mpv-with-scripts-${mpv.version}";
+
+ paths = [ mpv ];
+
+ buildInputs = [ makeWrapper ];
+
+ passthru.unwrapped = mpv;
+
+ postBuild = ''
+ # wrapProgram can't operate on symlinks
+ rm "$out/bin/mpv"
+ makeWrapper "${mpv}/bin/mpv" "$out/bin/mpv" ${mostMakeWrapperArgs}
+ rm "$out/bin/umpv"
+ makeWrapper "${mpv}/bin/umpv" "$out/bin/umpv" ${umpvWrapperArgs}
+ '' + lib.optionalString stdenv.isDarwin ''
+ # wrapProgram can't operate on symlinks
+ rm "$out/Applications/mpv.app/Contents/MacOS/mpv"
+ makeWrapper "${mpv}/Applications/mpv.app/Contents/MacOS/mpv" "$out/Applications/mpv.app/Contents/MacOS/mpv" ${mostMakeWrapperArgs}
+ '';
+ };
+in
+ lib.makeOverridable wrapper
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mythtv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/mythtv/default.nix
new file mode 100644
index 000000000000..db8d192b7587
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mythtv/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, mkDerivation, fetchFromGitHub, which, qtbase, qtwebkit, qtscript, xlibsWrapper
+, libpulseaudio, fftwSinglePrec , lame, zlib, libGLU, libGL, alsaLib, freetype
+, perl, pkgconfig , libsamplerate, libbluray, lzo, libX11, libXv, libXrandr, libXvMC, libXinerama, libXxf86vm
+, libXmu , yasm, libuuid, taglib, libtool, autoconf, automake, file, exiv2, linuxHeaders
+}:
+
+mkDerivation rec {
+ pname = "mythtv";
+ version = "31.0";
+
+ src = fetchFromGitHub {
+ owner = "MythTV";
+ repo = "mythtv";
+ rev = "v${version}";
+ sha256 = "092w5kvc1gjz6jd2lk2jhcazasz2h3xh0i5iq80k8x3znyp4i6v5";
+ };
+
+ patches = [
+ # Disables OS detection used while checking if enforce_wshadow should be disabled.
+ ./disable-os-detection.patch
+ ];
+
+ setSourceRoot = ''sourceRoot=$(echo */mythtv)'';
+
+ buildInputs = [
+ freetype qtbase qtwebkit qtscript lame zlib xlibsWrapper libGLU libGL
+ perl libsamplerate libbluray lzo alsaLib libpulseaudio fftwSinglePrec libX11 libXv libXrandr libXvMC
+ libXmu libXinerama libXxf86vm libXmu libuuid taglib exiv2
+ ];
+ nativeBuildInputs = [ pkgconfig which yasm libtool autoconf automake file ];
+
+ configureFlags =
+ [ "--dvb-path=${linuxHeaders}/include" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.mythtv.org/";
+ description = "Open Source DVR";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.titanous ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/mythtv/disable-os-detection.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/mythtv/disable-os-detection.patch
new file mode 100644
index 000000000000..09ce6f6ca4f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/mythtv/disable-os-detection.patch
@@ -0,0 +1,31 @@
+--- a/configure 2020-07-21 20:50:58.653989766 +0200
++++ b/configure 2020-07-21 20:52:21.236610586 +0200
+@@ -6537,17 +6537,17 @@
+ }
+
+ enable enforce_wshadow
+-case $target_os in
+- android)
+- disable enforce_wshadow
+- ;;
+- linux)
+- . /etc/os-release
+- if test $ID = "centos"; then
+- disable enforce_wshadow
+- fi
+- ;;
+-esac
++#case $target_os in
++# android)
++# disable enforce_wshadow
++# ;;
++# linux)
++# . /etc/os-release
++# if test $ID = "centos"; then
++# disable enforce_wshadow
++# fi
++# ;;
++#esac
+
+ if $(pkg-config --exists Qt5WebKit) || $(pkg-config --exists QtWebKit) ; then
+ enable qtwebkit
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/natron/config.pri b/infra/libkookie/nixpkgs/pkgs/applications/video/natron/config.pri
new file mode 100644
index 000000000000..c0d236c6b975
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/natron/config.pri
@@ -0,0 +1,20 @@
+boost: LIBS += -lboost_serialization
+expat: LIBS += -lexpat
+expat: PKGCONFIG -= expat
+cairo {
+ PKGCONFIG += cairo
+ LIBS -= $$system(pkg-config --variable=libdir cairo)/libcairo.a
+}
+pyside {
+ PKGCONFIG -= pyside
+ INCLUDEPATH += $$system(pkg-config --variable=includedir pyside)
+ INCLUDEPATH += $$system(pkg-config --variable=includedir pyside)/QtCore
+ INCLUDEPATH += $$system(pkg-config --variable=includedir pyside)/QtGui
+ INCLUDEPATH += $$system(pkg-config --variable=includedir QtGui)
+ LIBS += -lpyside-python2.7
+}
+shiboken {
+ PKGCONFIG -= shiboken
+ INCLUDEPATH += $$system(pkg-config --variable=includedir shiboken)
+ LIBS += -lshiboken-python2.7
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/natron/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/natron/default.nix
new file mode 100644
index 000000000000..dede7d6b29e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/natron/default.nix
@@ -0,0 +1,129 @@
+{ lib, stdenv, fetchurl, qt4, pkgconfig, boost, expat, cairo, python2Packages,
+ cmake, flex, bison, pango, librsvg, librevenge, libxml2, libcdr, libzip,
+ poppler, imagemagick, openexr, ffmpeg_3, opencolorio, openimageio,
+ qmake4Hook, libpng, libGL, lndir }:
+
+let
+ minorVersion = "2.1";
+ version = "${minorVersion}.9";
+ OpenColorIO-Configs = fetchurl {
+ url = "https://github.com/MrKepzie/OpenColorIO-Configs/archive/Natron-v${minorVersion}.tar.gz";
+ sha256 = "9eec5a02ca80c9cd8e751013cb347ea982fdddd592a4a9215cce462e332dac51";
+ };
+ seexpr = stdenv.mkDerivation rec {
+ version = "1.0.1";
+ pname = "seexpr";
+ src = fetchurl {
+ url = "https://github.com/wdas/SeExpr/archive/rel-${version}.tar.gz";
+ sha256 = "1ackh0xs4ip7mk34bam8zd4qdymkdk0dgv8x0f2mf6gbyzzyh7lp";
+ };
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libpng flex bison ];
+ };
+ buildPlugin = { pluginName, sha256, nativeBuildInputs ? [], buildInputs ? [], preConfigure ? "" }:
+ stdenv.mkDerivation {
+ name = "openfx-${pluginName}-${version}";
+ src = fetchurl {
+ url = "https://github.com/MrKepzie/Natron/releases/download/${version}/openfx-${pluginName}-${version}.tar.xz";
+ inherit sha256;
+ };
+ inherit nativeBuildInputs buildInputs;
+ preConfigure = ''
+ makeFlagsArray+=("CONFIG=release")
+ makeFlagsArray+=("PLUGINPATH=$out/Plugins/OFX/Natron")
+ ${preConfigure}
+ '';
+ };
+ lodepngcpp = fetchurl {
+ url = "https://raw.githubusercontent.com/lvandeve/lodepng/a70c086077c0eaecbae3845e4da4424de5f43361/lodepng.cpp";
+ sha256 = "1dxkkr4jbmvlwfr7m16i1mgcj1pqxg9s1a7y3aavs9rrk0ki8ys2";
+ };
+ lodepngh = fetchurl {
+ url = "https://raw.githubusercontent.com/lvandeve/lodepng/a70c086077c0eaecbae3845e4da4424de5f43361/lodepng.h";
+ sha256 = "14drdikd0vws3wwpyqq7zzm5z3kg98svv4q4w0hr45q6zh6hs0bq";
+ };
+ CImgh = fetchurl {
+ url = "https://raw.githubusercontent.com/dtschump/CImg/572c12d82b2f59ece21be8f52645c38f1dd407e6/CImg.h";
+ sha256 = "0n4qfxj8j6rmj4svf68gg2pzg8d1pb74bnphidnf8i2paj6lwniz";
+ };
+ plugins = map buildPlugin [
+ ({
+ pluginName = "arena";
+ sha256 = "0qba13vn9qdfax7nqlz1ps27zspr5kh795jp1xvbmwjzjzjpkqkf";
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ pango librsvg librevenge libcdr opencolorio libxml2 libzip
+ poppler imagemagick
+ ];
+ preConfigure = ''
+ sed -i 's|pkg-config poppler-glib|pkg-config poppler poppler-glib|g' Makefile.master
+ for i in Extra Bundle; do
+ cp ${lodepngcpp} $i/lodepng.cpp
+ cp ${lodepngh} $i/lodepng.h
+ done
+ '';
+ })
+ ({
+ pluginName = "io";
+ sha256 = "0s196i9fkgr9iw92c94mxgs1lkxbhynkf83vmsgrldflmf0xjky7";
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ libpng ffmpeg_3 openexr opencolorio openimageio boost libGL
+ seexpr
+ ];
+ })
+ ({
+ pluginName = "misc";
+ sha256 = "02h79jrll0c17azxj16as1mks3lmypm4m3da4mms9sg31l3n82qi";
+ buildInputs = [
+ libGL
+ ];
+ preConfigure = ''
+ cp ${CImgh} CImg/CImg.h
+ '';
+ })
+ ];
+in
+stdenv.mkDerivation {
+ inherit version;
+ name = "natron-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/MrKepzie/Natron/releases/download/${version}/Natron-${version}.tar.xz";
+ sha256 = "1wdc0zqriw2jhlrhzs6af3kagrv22cm086ffnbr1x43mgc9hfhjp";
+ };
+
+ nativeBuildInputs = [ qmake4Hook pkgconfig python2Packages.wrapPython ];
+
+ buildInputs = [
+ qt4 boost expat cairo python2Packages.pyside python2Packages.pysideShiboken
+ ];
+
+ preConfigure = ''
+ export MAKEFLAGS=-j$NIX_BUILD_CORES
+ cp ${./config.pri} config.pri
+ mkdir OpenColorIO-Configs
+ tar -xf ${OpenColorIO-Configs} --strip-components=1 -C OpenColorIO-Configs
+ '';
+
+ postFixup = ''
+ for i in ${lib.escapeShellArgs plugins}; do
+ ${lndir}/bin/lndir $i $out
+ done
+ wrapProgram $out/bin/Natron \
+ --set PYTHONPATH "$PYTHONPATH"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Node-graph based, open-source compositing software";
+ longDescription = ''
+ Node-graph based, open-source compositing software. Similar in
+ functionalities to Adobe After Effects and Nuke by The Foundry.
+ '';
+ homepage = "https://natron.fr/";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = [ maintainers.puffnfresh ];
+ platforms = platforms.linux;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/default.nix
new file mode 100644
index 000000000000..cdecde6b869a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -0,0 +1,125 @@
+{ config, stdenv
+, mkDerivation
+, fetchFromGitHub
+, addOpenGLRunpath
+, cmake
+, fdk_aac
+, ffmpeg
+, jansson
+, libjack2
+, libxkbcommon
+, libpthreadstubs
+, libXdmcp
+, qtbase
+, qtx11extras
+, qtsvg
+, speex
+, libv4l
+, x264
+, curl
+, xorg
+, makeWrapper
+, pkgconfig
+, libvlc
+, mbedtls
+
+, scriptingSupport ? true
+, luajit
+, swig
+, python3
+
+, alsaSupport ? stdenv.isLinux
+, alsaLib
+, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
+, libpulseaudio
+, libcef
+}:
+
+let
+ inherit (stdenv.lib) optional optionals;
+
+in mkDerivation rec {
+ pname = "obs-studio";
+ version = "26.0.2";
+
+ src = fetchFromGitHub {
+ owner = "obsproject";
+ repo = "obs-studio";
+ rev = "refs/tags/${version}";
+ sha256 = "1bf56z2yb7gq1knqwcqj369c3wl9jr3wll5vlngmfy2gwqrczjmw";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ addOpenGLRunpath cmake pkgconfig ];
+
+ buildInputs = [
+ curl
+ fdk_aac
+ ffmpeg
+ jansson
+ libcef
+ libjack2
+ libv4l
+ libxkbcommon
+ libpthreadstubs
+ libXdmcp
+ qtbase
+ qtx11extras
+ qtsvg
+ speex
+ x264
+ libvlc
+ makeWrapper
+ mbedtls
+ ]
+ ++ optionals scriptingSupport [ luajit swig python3 ]
+ ++ optional alsaSupport alsaLib
+ ++ optional pulseaudioSupport libpulseaudio;
+
+ # Copied from the obs-linuxbrowser
+ postUnpack = ''
+ mkdir -p cef/Release cef/Resources cef/libcef_dll_wrapper/
+ for i in ${libcef}/share/cef/*; do
+ cp -r $i cef/Release/
+ cp -r $i cef/Resources/
+ done
+ cp -r ${libcef}/lib/libcef.so cef/Release/
+ cp -r ${libcef}/lib/libcef_dll_wrapper.a cef/libcef_dll_wrapper/
+ cp -r ${libcef}/include cef/
+ '';
+
+ # obs attempts to dlopen libobs-opengl, it fails unless we make sure
+ # DL_OPENGL is an explicit path. Not sure if there's a better way
+ # to handle this.
+ cmakeFlags = [
+ "-DCMAKE_CXX_FLAGS=-DDL_OPENGL=\\\"$(out)/lib/libobs-opengl.so\\\""
+ "-DOBS_VERSION_OVERRIDE=${version}"
+ "-Wno-dev" # kill dev warnings that are useless for packaging
+ # Add support for browser source
+ "-DBUILD_BROWSER=ON"
+ "-DCEF_ROOT_DIR=../../cef"
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/obs \
+ --prefix "LD_LIBRARY_PATH" : "${xorg.libX11.out}/lib:${libvlc}/lib"
+ '';
+
+ postFixup = stdenv.lib.optionalString stdenv.isLinux ''
+ addOpenGLRunpath $out/lib/lib*.so
+ addOpenGLRunpath $out/lib/obs-plugins/*.so
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Free and open source software for video recording and live streaming";
+ longDescription = ''
+ This project is a rewrite of what was formerly known as "Open Broadcaster
+ Software", software originally designed for recording and streaming live
+ video content, efficiently
+ '';
+ homepage = "https://obsproject.com";
+ maintainers = with maintainers; [ jb55 MP2E ];
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/fix-search-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/fix-search-path.patch
new file mode 100644
index 000000000000..4503447ff5dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/fix-search-path.patch
@@ -0,0 +1,13 @@
+diff --git a/external/FindLibObs.cmake b/external/FindLibObs.cmake
+index ab0a3de..19c63ee 100644
+--- a/external/FindLibObs.cmake
++++ b/external/FindLibObs.cmake
+@@ -95,7 +95,7 @@ if(LIBOBS_FOUND)
+
+ set(LIBOBS_INCLUDE_DIRS ${LIBOBS_INCLUDE_DIR} ${W32_PTHREADS_INCLUDE_DIR})
+ set(LIBOBS_LIBRARIES ${LIBOBS_LIB} ${W32_PTHREADS_LIB})
+- include(${LIBOBS_INCLUDE_DIR}/../cmake/external/ObsPluginHelpers.cmake)
++ include(external/ObsPluginHelpers.cmake)
+
+ # allows external plugins to easily use/share common dependencies that are often included with libobs (such as FFmpeg)
+ if(NOT DEFINED INCLUDED_LIBOBS_CMAKE_MODULES)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/hardcode-ndi-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/hardcode-ndi-path.patch
new file mode 100644
index 000000000000..caef96c381f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/hardcode-ndi-path.patch
@@ -0,0 +1,17 @@
+diff --git a/src/obs-ndi.cpp b/src/obs-ndi.cpp
+index 493831c..7b0f8db 100644
+--- a/src/obs-ndi.cpp
++++ b/src/obs-ndi.cpp
+@@ -197,11 +197,7 @@ const char* obs_module_description()
+ const NDIlib_v4* load_ndilib()
+ {
+ QStringList locations;
+- locations << QString(qgetenv(NDILIB_REDIST_FOLDER));
+-#if defined(__linux__) || defined(__APPLE__)
+- locations << "/usr/lib";
+- locations << "/usr/local/lib";
+-#endif
++ locations << "@NDI@/lib";
+
+ for (QString path : locations) {
+ blog(LOG_INFO, "Trying '%s'", path.toUtf8().constData());
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-move-transition.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-move-transition.nix
new file mode 100644
index 000000000000..70985b438c6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-move-transition.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, fetchurl
+, cmake
+, obs-studio
+}:
+
+stdenv.mkDerivation rec {
+ pname = "obs-move-transition";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "exeldro";
+ repo = "obs-move-transition";
+ rev = version;
+ sha256 = "0kr868lxlanq0y98f2hb70y92ac2nla8khsj879kjf3z6dqdpd66";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ obs-studio ];
+
+ cmakeFlags = with lib; [
+ "-DLIBOBS_INCLUDE_DIR=${obs-studio.src}/libobs"
+ "-Wno-dev"
+ ];
+
+ preConfigure = ''
+ cp ${obs-studio.src}/cmake/external/FindLibobs.cmake FindLibobs.cmake
+ '';
+
+ patches = [ ./rename-obs-move-transition-cmake.patch ];
+
+ postPatch = ''
+ substituteInPlace move-source-filter.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
+ substituteInPlace move-value-filter.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
+ substituteInPlace move-transition.c --replace '<../UI/obs-frontend-api/obs-frontend-api.h>' '<obs-frontend-api.h>'
+ '';
+
+ # obs-studio expects the shared object to be located in bin/32bit or bin/64bit
+ # https://github.com/obsproject/obs-studio/blob/d60c736cb0ec0491013293c8a483d3a6573165cb/libobs/obs-nix.c#L48
+ postInstall = let
+ pluginPath = {
+ i686-linux = "bin/32bit";
+ x86_64-linux = "bin/64bit";
+ }.${stdenv.targetPlatform.system} or (throw "Unsupported system: ${stdenv.targetPlatform.system}");
+ in ''
+ mkdir -p $out/share/obs/obs-plugins/move-transition/${pluginPath}
+ ln -s $out/lib/obs-plugins/move-transition.so $out/share/obs/obs-plugins/move-transition/${pluginPath}
+ '';
+
+ meta = with lib; {
+ description = "Plugin for OBS Studio to move source to a new position during scene transition";
+ homepage = "https://github.com/exeldro/obs-move-transition";
+ maintainers = with maintainers; [ starcraft66 ];
+ license = licenses.gpl2Plus;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
new file mode 100644
index 000000000000..a250a365ac63
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
@@ -0,0 +1,41 @@
+# We don't have a wrapper which can supply obs-studio plugins so you have to
+# somewhat manually install this:
+
+# nix-env -f "<nixpkgs>" -iA obs-ndi
+# mkdir -p ~/.config/obs-studio/plugins/bin
+# ln -s ~/.nix-profile/lib/obs-plugins/obs-ndi.so ~/.config/obs-studio/plugins/bin/
+
+{ stdenv, fetchFromGitHub, obs-studio, cmake, qtbase, ndi }:
+
+stdenv.mkDerivation rec {
+ pname = "obs-ndi";
+ version = "4.9.1";
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ obs-studio qtbase ndi ];
+
+ src = fetchFromGitHub {
+ owner = "Palakis";
+ repo = "obs-ndi";
+ rev = version;
+ sha256 = "1y3xdqp55jayhg4sinwiwpk194zc4f4jf0abz647x2fprsk9jz7s";
+ };
+
+ patches = [ ./fix-search-path.patch ./hardcode-ndi-path.patch ];
+
+ postPatch = "sed -i -e s,@NDI@,${ndi},g src/obs-ndi.cpp";
+
+ cmakeFlags = [
+ "-DLIBOBS_INCLUDE_DIR=${obs-studio}/include/obs"
+ "-DLIBOBS_LIB=${obs-studio}/lib"
+ "-DCMAKE_CXX_FLAGS=-I${obs-studio.src}/UI/obs-frontend-api"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Network A/V plugin for OBS Studio";
+ homepage = "https://github.com/Palakis/obs-ndi";
+ maintainers = with maintainers; [ peti jshcmpbll ];
+ license = licenses.gpl2;
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/rename-obs-move-transition-cmake.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/rename-obs-move-transition-cmake.patch
new file mode 100644
index 000000000000..24c1848c10ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/rename-obs-move-transition-cmake.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d116619..a1366ce 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,17 @@
++if (POLICY CMP0048)
++ cmake_policy(SET CMP0048 NEW)
++endif (POLICY CMP0048)
++
+ project(move-transition VERSION 2.0.2)
+ set(PROJECT_FULL_NAME "Move Transition")
+
++include(FindLibobs.cmake)
++find_package(LibObs REQUIRED)
++
++include_directories(
++ "${LIBOBS_INCLUDE_DIR}/../plugins/obs-transitions"
++ "${LIBOBS_INCLUDE_DIR}/../UI/obs-frontend-api")
++
+ set(move-transition_HEADERS
+ move-transition.h
+ easing.h)
+@@ -34,4 +45,10 @@ target_link_libraries(move-transition
+ libobs)
+
+ set_target_properties(move-transition PROPERTIES FOLDER "plugins/exeldro")
+-install_obs_plugin_with_data(move-transition data)
++set_target_properties(move-transition PROPERTIES PREFIX "")
++
++install(TARGETS move-transition
++ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/obs-plugins)
++
++install(DIRECTORY data/locale/
++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/obs/obs-plugins/move-transition/locale")
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix
new file mode 100644
index 000000000000..eb8e41868822
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, qtbase
+, obs-studio
+}:
+
+stdenv.mkDerivation rec {
+ pname = "obs-v4l2sink";
+ version = "0.1.0-12-g1ec3c8a";
+
+ src = fetchFromGitHub {
+ owner = "CatxFish";
+ repo = "obs-v4l2sink";
+ rev = version;
+ sha256 = "03ah91cm1qz26k90mfx51l0d598i9bcmw39lkikjs1msm4c9dfxx";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ qtbase obs-studio ];
+
+ patches = [
+ # Fixes the segfault when stopping the plugin
+ (fetchpatch {
+ url = "https://github.com/CatxFish/obs-v4l2sink/commit/6604f01796d1b84a95714730ea51a6b8ac0e450b.diff";
+ sha256 = "0crcvw02dj0aqy7hnhizjdsnhiw03zmg6cbdkasxz2mrrbyc3s88";
+ })
+ ];
+
+ cmakeFlags = with lib; [
+ "-DLIBOBS_INCLUDE_DIR=${obs-studio.src}/libobs"
+ ];
+
+ # obs-studio expects the shared object to be located in bin/32bit or bin/64bit
+ # https://github.com/obsproject/obs-studio/blob/d60c736cb0ec0491013293c8a483d3a6573165cb/libobs/obs-nix.c#L48
+ postInstall = let
+ pluginPath = {
+ i686-linux = "bin/32bit";
+ x86_64-linux = "bin/64bit";
+ }.${stdenv.targetPlatform.system} or (throw "Unsupported system: ${stdenv.targetPlatform.system}");
+ in ''
+ mkdir -p $out/share/obs/obs-plugins/v4l2sink/${pluginPath}
+ ln -s $out/lib/obs-plugins/v4l2sink.so $out/share/obs/obs-plugins/v4l2sink/${pluginPath}
+ '';
+
+ meta = with lib; {
+ description = "obs studio output plugin for Video4Linux2 device";
+ homepage = "https://github.com/CatxFish/obs-v4l2sink";
+ maintainers = with maintainers; [ colemickens peelz ];
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix
new file mode 100644
index 000000000000..14bc80dd3880
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix
@@ -0,0 +1,42 @@
+# (the following is somewhat lifted from ./linuxbrowser.nix)
+# We don't have a wrapper which can supply obs-studio plugins so you have to
+# somewhat manually install this:
+
+# nix-env -f . -iA obs-wlrobs
+# mkdir -p ~/.config/obs-studio/plugins/wlrobs/bin/64bit
+# ln -s ~/.nix-profile/share/obs/obs-plugins/wlrobs/bin/64bit/libwlrobs.so ~/.config/obs-studio/plugins/wlrobs/bin/64bit
+{ stdenv, fetchhg, wayland, obs-studio
+, meson, ninja, pkgconfig, libX11
+, dmabufSupport ? false, libdrm ? null, libGL ? null, lib}:
+
+assert dmabufSupport -> libdrm != null && libGL != null;
+
+stdenv.mkDerivation {
+ pname = "obs-wlrobs";
+ version = "20200622";
+
+ src = fetchhg {
+ url = "https://hg.sr.ht/~scoopta/wlrobs";
+ rev = "1d3acaaf64049da3da9721aa8b9b47582fe0081b";
+ sha256 = "0qrcf8024r4ynfjw0zx8vn59ygx9q5rb196s6nyxmy3gkv2lfxlq";
+ };
+
+ buildInputs = [ libX11 libGL libdrm meson ninja pkgconfig wayland obs-studio ];
+
+ installPhase = ''
+ mkdir -p $out/share/obs/obs-plugins/wlrobs/bin/64bit
+ cp ./libwlrobs.so $out/share/obs/obs-plugins/wlrobs/bin/64bit/
+ '';
+
+ mesonFlags = [
+ "-Duse_dmabuf=${lib.boolToString dmabufSupport}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An obs-studio plugin that allows you to screen capture on wlroots based wayland compositors";
+ homepage = "https://hg.sr.ht/~scoopta/wlrobs";
+ maintainers = with maintainers; [ grahamc ];
+ license = licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/ogmtools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/ogmtools/default.nix
new file mode 100644
index 000000000000..c9c5190dc539
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/ogmtools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, libogg, libvorbis, libdvdread }:
+
+stdenv.mkDerivation rec {
+ name = "ogmtools-1.5";
+
+ src = fetchurl {
+ url = "https://www.bunkus.org/videotools/ogmtools/${name}.tar.bz2";
+ sha256 = "1spx81p5wf59ksl3r3gvf78d77sh7gj8a6lw773iv67bphfivmn8";
+ };
+
+ buildInputs = [libogg libvorbis libdvdread];
+
+ meta = {
+ description = "Tools for modifying and inspecting OGG media streams";
+ longDescription = ''
+ These tools allow information about (ogminfo) or extraction from
+ (ogmdemux) or creation of (ogmmerge) OGG media streams. Includes dvdxchap
+ tool for extracting chapter information from DVD.
+ '';
+ homepage = "https://www.bunkus.org/videotools/ogmtools/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/olive-editor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/olive-editor/default.nix
new file mode 100644
index 000000000000..b1e70cd037c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/olive-editor/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, pkgconfig, which, qmake, mkDerivation,
+ qtmultimedia, wrapQtAppsHook, frei0r, opencolorio, ffmpeg-full,
+ CoreFoundation }:
+
+mkDerivation rec {
+ pname = "olive-editor";
+ version = "0.1.2";
+
+ src = fetchFromGitHub {
+ owner = "olive-editor";
+ repo = "olive";
+ rev = version;
+ sha256 = "151g6jwhipgbq4llwib92sq23p1s9hm6avr7j4qq3bvykzrm8z1a";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ which
+ qmake
+ wrapQtAppsHook
+ ];
+
+ buildInputs = [
+ ffmpeg-full
+ frei0r
+ opencolorio
+ qtmultimedia
+ ] ++ stdenv.lib.optional stdenv.isDarwin CoreFoundation;
+
+ meta = with stdenv.lib; {
+ description = "Professional open-source NLE video editor";
+ homepage = "https://www.olivevideoeditor.org/";
+ downloadPage = "https://www.olivevideoeditor.org/download.php";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.balsoft ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/omxplayer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/omxplayer/default.nix
new file mode 100644
index 000000000000..28df8ead0c80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/omxplayer/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchurl
+, raspberrypifw, pcre, boost, freetype, zlib
+}:
+
+let
+ ffmpeg = stdenv.mkDerivation rec {
+ name = "ffmpeg-1.1.3";
+
+ src = fetchurl {
+ url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
+ sha256 = "03s1zsprz5p6gjgwwqcf7b6cvzwwid6l8k7bamx9i0f1iwkgdm0j";
+ };
+
+ configurePlatforms = [];
+ configureFlags = [
+ "--arch=${stdenv.hostPlatform.parsed.cpu.name}"
+ ] ++ stdenv.lib.optionals stdenv.hostPlatform.isAarch32 [
+ # TODO be better with condition
+ "--cpu=arm1176jzf-s"
+ ] ++ [
+ "--disable-muxers"
+ "--enable-muxer=spdif"
+ "--enable-muxer=adts"
+ "--disable-encoders"
+ "--enable-encoder=ac3"
+ "--enable-encoder=aac"
+ "--disable-decoder=mpeg_xvmc"
+ "--disable-devices"
+ "--disable-ffprobe"
+ "--disable-ffplay"
+ "--disable-ffserver"
+ "--disable-ffmpeg"
+ "--enable-shared"
+ "--disable-doc"
+ "--enable-postproc"
+ "--enable-gpl"
+ "--enable-protocol=http"
+ "--enable-pthreads"
+ "--disable-runtime-cpudetect"
+ "--enable-pic"
+ "--disable-armv5te"
+ "--disable-neon"
+ "--enable-armv6t2"
+ "--enable-armv6"
+ "--enable-hardcoded-tables"
+ "--disable-runtime-cpudetect"
+ "--disable-debug"
+ "--arch=${stdenv.hostPlatform.parsed.cpu.name}"
+ "--target_os=${stdenv.hostPlatform.parsed.kernel.name}"
+ ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "--cross-prefix=${stdenv.cc.targetPrefix}"
+ "--enable-cross-compile"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ homepage = "http://www.ffmpeg.org/";
+ description = "A complete, cross-platform solution to record, convert and stream audio and video";
+ };
+ };
+in
+stdenv.mkDerivation rec {
+ name = "omxplayer-20130328-fbee325dc2";
+ src = fetchurl {
+ url = "https://github.com/huceke/omxplayer/tarball/fbee325dc2";
+ name = "${name}.tar.gz";
+ sha256 = "0fkvv8il7ffqxki2gp8cxa5shh6sz9jsy5vv3f4025g4gss6afkg";
+ };
+ patchPhase = ''
+ sed -i 1d Makefile
+ export INCLUDES="-I${raspberrypifw}/include/interface/vcos/pthreads -I${raspberrypifw}/include/interface/vmcs_host/linux/"
+ '';
+ installPhase = ''
+ mkdir -p $out/bin
+ cp omxplayer.bin $out/bin
+ '';
+ buildInputs = [ raspberrypifw ffmpeg pcre boost freetype zlib ];
+
+ meta = {
+ homepage = "https://github.com/huceke/omxplayer";
+ description = "Commandline OMX player for the Raspberry Pi";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.arm;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
new file mode 100644
index 000000000000..9245bdf03e43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, mkDerivationWith, fetchFromGitHub, fetchpatch
+, doxygen, python3Packages, libopenshot
+, wrapGAppsHook, gtk3
+, qtsvg }:
+
+mkDerivationWith python3Packages.buildPythonApplication rec {
+ pname = "openshot-qt";
+ version = "2.5.1";
+
+ src = fetchFromGitHub {
+ owner = "OpenShot";
+ repo = "openshot-qt";
+ rev = "v${version}";
+ sha256 = "0qc5i0ay6j2wab1whl41sjb71cj02pg6y79drf7asrprq8b2rmfq";
+ };
+
+ nativeBuildInputs = [ doxygen wrapGAppsHook ];
+
+ buildInputs = [ gtk3 ];
+
+ propagatedBuildInputs = with python3Packages; [ libopenshot pyqt5_with_qtwebkit requests sip httplib2 pyzmq ];
+
+ dontWrapGApps = true;
+ dontWrapQtApps = true;
+
+ preConfigure = ''
+ # tries to create caching directories during install
+ export HOME=$(mktemp -d)
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/openshot-qt \
+ ''
+ # Fix toolbar icons on Darwin
+ + stdenv.lib.optionalString stdenv.isDarwin ''
+ --suffix QT_PLUGIN_PATH : "${stdenv.lib.getBin qtsvg}/lib/qt-5.12.7/plugins" \
+ ''
+ + ''
+ "''${gappsWrapperArgs[@]}" \
+ "''${qtWrapperArgs[@]}"
+ '';
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "http://openshot.org/";
+ description = "Free, open-source video editor";
+ longDescription = ''
+ OpenShot Video Editor is a free, open-source video editor for Linux.
+ OpenShot can take your videos, photos, and music files and help you
+ create the film you have always dreamed of. Easily add sub-titles,
+ transitions, and effects, and then export your film to DVD, YouTube,
+ Vimeo, Xbox 360, and many other common formats.
+ '';
+ license = with licenses; gpl3Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = with platforms; unix;
+ # Cannot use a newer Qt (5.15) version because it requires qtwebkit
+ # and our qtwebkit fails to build with 5.15. 01bcfd3579219d60e5d07df309a000f96b2b658b
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
new file mode 100644
index 000000000000..b6bb87e66512
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, doxygen
+, alsaLib, libX11, libXft, libXrandr, libXinerama, libXext, libXcursor
+, zlib, AGL, Cocoa, Foundation
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "libopenshot-audio";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "OpenShot";
+ repo = "libopenshot-audio";
+ rev = "v${version}";
+ sha256 = "13if0m5mvlqly8gmbhschzb9papkgp3yqivklhb949dhy16m8zgf";
+ };
+
+ nativeBuildInputs =
+ [ pkgconfig cmake doxygen ];
+
+ buildInputs =
+ optionals stdenv.isLinux [ alsaLib ]
+ ++ (if stdenv.isDarwin then
+ [ zlib AGL Cocoa Foundation ]
+ else
+ [ libX11 libXft libXrandr libXinerama libXext libXcursor ])
+ ;
+
+ doCheck = false;
+
+ meta = {
+ homepage = "http://openshot.org/";
+ description = "High-quality sound editing library";
+ longDescription = ''
+ OpenShot Audio Library (libopenshot-audio) is a program that allows the
+ high-quality editing and playback of audio, and is based on the amazing
+ JUCE library.
+ '';
+ license = with licenses; gpl3Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
new file mode 100644
index 000000000000..1b6084a1d2f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, cmake, doxygen
+, libopenshot-audio, imagemagick, ffmpeg_3
+, swig, python3
+, unittest-cpp, cppzmq, zeromq
+, qtbase, qtmultimedia
+, llvmPackages
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "libopenshot";
+ version = "0.2.5";
+
+ src = fetchFromGitHub {
+ owner = "OpenShot";
+ repo = "libopenshot";
+ rev = "v${version}";
+ sha256 = "1mxjkgjmjzgf628y3rscc6rqf55hxgjpmvwxlncfk1216i5xskwp";
+ };
+
+ patchPhase = ''
+ sed -i 's/{UNITTEST++_INCLUDE_DIR}/ENV{UNITTEST++_INCLUDE_DIR}/g' tests/CMakeLists.txt
+ sed -i 's/{_REL_PYTHON_MODULE_PATH}/ENV{_REL_PYTHON_MODULE_PATH}/g' src/bindings/python/CMakeLists.txt
+ export _REL_PYTHON_MODULE_PATH=$(toPythonPath $out)
+ '';
+
+ nativeBuildInputs = [ pkgconfig cmake doxygen ];
+
+ buildInputs =
+ [ imagemagick ffmpeg_3 swig python3 unittest-cpp
+ cppzmq zeromq qtbase qtmultimedia ]
+ ++ optional stdenv.isDarwin llvmPackages.openmp
+ ;
+
+ LIBOPENSHOT_AUDIO_DIR = libopenshot-audio;
+ "UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++";
+
+ doCheck = false;
+
+ cmakeFlags = [ "-DENABLE_RUBY=OFF" ];
+
+ meta = {
+ homepage = "http://openshot.org/";
+ description = "Free, open-source video editor library";
+ longDescription = ''
+ OpenShot Library (libopenshot) is an open-source project dedicated to
+ delivering high quality video editing, animation, and playback solutions
+ to the world. API currently supports C++, Python, and Ruby.
+ '';
+ license = with licenses; gpl3Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/p2pvc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/p2pvc/default.nix
new file mode 100644
index 000000000000..91468ea1ee60
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/p2pvc/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, pkgconfig, fetchFromGitHub, opencv2, ncurses, portaudio }:
+
+stdenv.mkDerivation {
+ name = "p2pvc";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ opencv2 ncurses portaudio ];
+
+ enableParallelBuilding = true;
+
+ installPhase = "mkdir -p $out/bin; cp p2pvc $out/bin/";
+
+ src = fetchFromGitHub {
+ owner = "mofarrell";
+ repo = "p2pvc";
+ rev = "d7b1c70288a7750fc8f9a22dbddbe51d34b5b9e5";
+ sha256 = "0d4vvrsjad5gk4rrjwgydn9ffj12jfb4aksw2px6jw75hp9pzmka";
+ };
+
+ meta = {
+ description = "A point to point color terminal video chat";
+ homepage = "https://github.com/mofarrell/p2pvc";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ trino ];
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/peek/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/peek/default.nix
new file mode 100644
index 000000000000..6ca5c5bed212
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/peek/default.nix
@@ -0,0 +1,86 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, gettext
+, desktop-file-utils
+, appstream-glib
+, pkgconfig
+, txt2man
+, gzip
+, vala
+, wrapGAppsHook
+, gsettings-desktop-schemas
+, gtk3
+, glib
+, cairo
+, keybinder3
+, ffmpeg_3
+, python3
+, libxml2
+, gst_all_1
+, which
+, gifski
+}:
+
+stdenv.mkDerivation rec {
+ pname = "peek";
+ version = "1.5.1";
+
+ src = fetchFromGitHub {
+ owner = "phw";
+ repo = "peek";
+ rev = version;
+ sha256 = "1xwlfizga6hvjqq127py8vabaphsny928ar7mwqj9cyqfl6fx41x";
+ };
+
+ nativeBuildInputs = [
+ appstream-glib
+ desktop-file-utils
+ gettext
+ gzip
+ meson
+ ninja
+ libxml2
+ pkgconfig
+ txt2man
+ python3
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ cairo
+ glib
+ gsettings-desktop-schemas
+ gtk3
+ gst_all_1.gstreamer
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-ugly
+ keybinder3
+ ];
+
+ postPatch = ''
+ patchShebangs build-aux/meson/postinstall.py data/man/build_man.sh
+ '';
+
+ preFixup = ''
+ gappsWrapperArgs+=(--prefix PATH : ${stdenv.lib.makeBinPath [ which ffmpeg_3 gifski ]})
+ '';
+
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/phw/peek";
+ description = "Simple animated GIF screen recorder with an easy to use interface";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ puffnfresh worldofpeace ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/pitivi/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/pitivi/default.nix
new file mode 100644
index 000000000000..7aef0bfd0353
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/pitivi/default.nix
@@ -0,0 +1,111 @@
+{ stdenv
+, fetchFromGitHub
+, fetchurl
+, pkg-config
+, gettext
+, itstool
+, python3
+, wrapGAppsHook
+, python3Packages
+, gst_all_1
+, gtk3
+, gobject-introspection
+, libpeas
+, librsvg
+, gnome3
+, libnotify
+, gsound
+, meson
+, ninja
+, gsettings-desktop-schemas
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "pitivi";
+ version = "2020.09.2";
+
+ format = "other";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0hzvv4wia4rk0kvq16y27imq2qd4q5lg3vx99hdcjdb1x3zqqfg0";
+ };
+
+ patches = [
+ # By default, the build picks up environment variables like PYTHONPATH
+ # and saves them to the generated binary. This would make the build-time
+ # dependencies part of the closure so we remove it.
+ ./prevent-closure-contamination.patch
+ ];
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ gettext
+ itstool
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gobject-introspection
+ gtk3
+ libpeas
+ librsvg
+ gnome3.gnome-desktop
+ gsound
+ gnome3.adwaita-icon-theme
+ gsettings-desktop-schemas
+ libnotify
+ ] ++ (with gst_all_1; [
+ gstreamer
+ gst-editing-services
+ gst-plugins-base
+ (gst-plugins-good.override { gtkSupport = true; })
+ gst-plugins-bad
+ gst-plugins-ugly
+ gst-libav
+ gst-devtools
+ ]);
+
+ pythonPath = with python3Packages; [
+ pygobject3
+ gst-python
+ pyxdg
+ numpy
+ pycairo
+ matplotlib
+ dbus-python
+ ];
+
+ postPatch = ''
+ patchShebangs ./getenvvar.py
+ '';
+
+ # Fixes error
+ # Couldn’t recognize the image file format for file ".../share/pitivi/pixmaps/asset-proxied.svg"
+ # at startup, see https://github.com/NixOS/nixpkgs/issues/56943
+ # and https://github.com/NixOS/nixpkgs/issues/89691#issuecomment-714398705.
+ strictDeps = false;
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = "pitivi";
+ versionPolicy = "none"; # we are using dev version, since the stable one is too old
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Non-Linear video editor utilizing the power of GStreamer";
+ homepage = "http://pitivi.org/";
+ longDescription = ''
+ Pitivi is a video editor built upon the GStreamer Editing Services.
+ It aims to be an intuitive and flexible application
+ that can appeal to newbies and professionals alike.
+ '';
+ license = licenses.lgpl21Plus;
+ maintainers = with maintainers; [];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/pitivi/prevent-closure-contamination.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/pitivi/prevent-closure-contamination.patch
new file mode 100644
index 000000000000..0025ecd0a4cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/pitivi/prevent-closure-contamination.patch
@@ -0,0 +1,23 @@
+--- a/meson.build
++++ b/meson.build
+@@ -26,15 +26,15 @@
+ geteenvvar = find_program('getenvvar.py')
+ cdata = configuration_data()
+ cdata.set('CONFIGURED_PYTHONPATH',
+- run_command(geteenvvar, 'PYTHONPATH').stdout().strip())
++ '')
+ cdata.set('CONFIGURED_GI_TYPELIB_PATH',
+- run_command(geteenvvar, 'GI_TYPELIB_PATH').stdout().strip())
++ '')
+ cdata.set('CONFIGURED_LD_LIBRARY_PATH',
+- run_command(geteenvvar, 'LD_LIBRARY_PATH').stdout().strip())
++ '')
+ cdata.set('CONFIGURED_GST_PLUGIN_PATH',
+- run_command(geteenvvar, 'GST_PLUGIN_PATH').stdout().strip())
++ '')
+ cdata.set('CONFIGURED_GST_PLUGIN_SYSTEM_PATH',
+- run_command(geteenvvar, 'GST_PLUGIN_SYSTEM_PATH').stdout().strip())
++ '')
+ cdata.set('LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
+ cdata.set('DATADIR', join_paths(get_option('prefix'), get_option('datadir')))
+ cdata.set('PACKAGE_NAME', 'Pitivi')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/default.nix
new file mode 100644
index 000000000000..107fd5f599ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, cmake, python3, mkDerivation
+, libX11, libXrandr, qtbase, qtwebchannel, qtwebengine, qtx11extras
+, libvdpau, SDL2, mpv, libGL }:
+let
+ # During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`,
+ # which then downloads a handful of web client-related files. To enable
+ # sandboxed builds, we manually download them and save them so these files
+ # are fetched ahead-of-time instead of during the CMake build. To update
+ # plex-media-player use the update.sh script, so the versions and hashes
+ # for these files are are also updated!
+ depSrcs = import ./deps.nix { inherit fetchurl; };
+in mkDerivation rec {
+ pname = "plex-media-player";
+ version = "2.58.0.1076";
+ vsnHash = "38e019da";
+
+ src = fetchFromGitHub {
+ owner = "plexinc";
+ repo = "plex-media-player";
+ rev = "v${version}-${vsnHash}";
+ sha256 = "XFwcSHn9wG30bDMGFITBmhp6/VI1RLmxMxFFxjntTmw=";
+ };
+
+ nativeBuildInputs = [ pkgconfig cmake python3 ];
+ buildInputs = [ libX11 libXrandr qtbase qtwebchannel qtwebengine qtx11extras
+ libvdpau SDL2 mpv libGL ];
+
+ preConfigure = with depSrcs; ''
+ mkdir -p build/dependencies
+ ln -s ${webClient} build/dependencies/buildid-${webClientBuildId}.cmake
+ ln -s ${webClientDesktopHash} build/dependencies/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1
+ ln -s ${webClientDesktop} build/dependencies/web-client-desktop-${webClientDesktopBuildId}.tar.xz
+ ln -s ${webClientTvHash} build/dependencies/web-client-tv-${webClientTvBuildId}.tar.xz.sha1
+ ln -s ${webClientTv} build/dependencies/web-client-tv-${webClientTvBuildId}.tar.xz
+ '';
+
+ cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DQTROOT=${qtbase}" ];
+
+ passthru.updateScript = ./update.sh;
+
+ meta = with stdenv.lib; {
+ description = "Streaming media player for Plex";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ];
+ homepage = "https://plex.tv";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/deps.nix
new file mode 100644
index 000000000000..fddbae9375c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/deps.nix
@@ -0,0 +1,28 @@
+{ fetchurl }:
+
+rec {
+ webClientBuildId = "183-045db5be50e175";
+ webClientDesktopBuildId = "4.29.2-e50e175";
+ webClientTvBuildId = "4.29.6-045db5b";
+
+ webClient = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake";
+ sha256 = "AzHlO7Z8SxQoT6++OphwDDQ47Ombnpaby0mh1YNnSvc=";
+ };
+ webClientDesktopHash = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1";
+ sha256 = "7vUcTuN5ypFFIrBygyutEZu4MYl5WPmFureQl6HvVx8=";
+ };
+ webClientDesktop = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz";
+ sha256 = "xWwXhN2N4Pvalxtm5PwZprkcFU6RIiE6fA71d2E6lP4=";
+ };
+ webClientTvHash = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1";
+ sha256 = "U8u5SOxPpz8HOJKrYXlIHx0X08Flspl67hlzc57g7v8=";
+ };
+ webClientTv = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz";
+ sha256 = "4Et9d4BO+4UParvsSJglJvb+cnp0oUP3O4MDNnLeP7g=";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/update.sh
new file mode 100755
index 000000000000..a8493a16c989
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/plex-media-player/update.sh
@@ -0,0 +1,71 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts nix-prefetch-scripts jq
+
+set -xeuo pipefail
+
+nixpkgs="$(git rev-parse --show-toplevel)"
+
+oldVersion="$(nix-instantiate --eval -E "with import $nixpkgs {}; plex-media-player.version or (builtins.parseDrvName plex-media-player.name).version" | tr -d '"')"
+latestTag="$(curl -s https://api.github.com/repos/plexinc/plex-media-player/tags | jq -r '.[] | .name' | sort --version-sort | tail -1)"
+latestVersion="$(expr $latestTag : 'v\(.*\)-.*')"
+latestHash="$(expr $latestTag : 'v.*-\(.*\)')"
+
+if [ ! "$oldVersion" = "$latestVersion" ]; then
+ # update default.nix with the new version and hash
+ expectedHash=$(nix-prefetch-git --url https://github.com/plexinc/plex-media-player.git --rev $latestTag --quiet | jq -r '.sha256')
+ update-source-version plex-media-player --version-key=vsnHash "${latestHash}" 0000
+ update-source-version plex-media-player "${latestVersion}" $expectedHash
+
+ # extract the webClientBuildId from the source folder
+ src="$(nix-build --no-out-link $nixpkgs -A plex-media-player.src)"
+ webClientBuildId="$(grep 'set(WEB_CLIENT_BUILD_ID' $src/CMakeModules/WebClient.cmake | cut -d' ' -f2 | tr -d ')')"
+
+ # retreive the included cmake file and hash
+ { read -r webClientBuildIdHash; read -r webClientBuildIdPath; } < \
+ <(nix-prefetch-url --print-path "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake")
+ webClientDesktopBuildId="$(grep 'set(DESKTOP_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')"
+ webClientTvBuildId="$(grep 'set(TV_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')"
+
+ # get the hashes for the other files
+ webClientDesktopHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1")"
+ webClientDesktop="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz")"
+ webClientTvHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1")"
+ webClientTv="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz")"
+
+ # update deps.nix
+ cat > $nixpkgs/pkgs/applications/video/plex-media-player/deps.nix <<EOF
+{ fetchurl }:
+
+rec {
+ webClientBuildId = "${webClientBuildId}";
+ webClientDesktopBuildId = "${webClientDesktopBuildId}";
+ webClientTvBuildId = "${webClientTvBuildId}";
+
+ webClient = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/buildid.cmake";
+ sha256 = "${webClientBuildIdHash}";
+ };
+ webClientDesktopHash = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz.sha1";
+ sha256 = "${webClientDesktopHash}";
+ };
+ webClientDesktop = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz";
+ sha256 = "${webClientDesktop}";
+ };
+ webClientTvHash = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz.sha1";
+ sha256 = "${webClientTvHash}";
+ };
+ webClientTv = fetchurl {
+ url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz";
+ sha256 = "${webClientTv}";
+ };
+}
+EOF
+
+ git add "$nixpkgs"/pkgs/applications/video/plex-media-player/{default,deps}.nix
+ git commit -m "plex-media-player: ${oldVersion} -> ${latestVersion}"
+else
+ echo "plex-media-player is already up-to-date"
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/plex-mpv-shim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/plex-mpv-shim/default.nix
new file mode 100644
index 000000000000..e25c101b5dfb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/plex-mpv-shim/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, mpv, requests, python-mpv-jsonipc }:
+
+buildPythonApplication rec {
+ pname = "plex-mpv-shim";
+ version = "1.9.0";
+
+ src = fetchFromGitHub {
+ owner = "iwalton3";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "06i6pp4jg0f9h6ash60fj1l5mbsdw3zyx7c6anbsrn86802i7paa";
+ };
+
+ propagatedBuildInputs = [ mpv requests python-mpv-jsonipc ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/iwalton3/plex-mpv-shim";
+ description = "Allows casting of videos to MPV via the Plex mobile and web app";
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/pyca/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/pyca/default.nix
new file mode 100644
index 000000000000..0fed17bb9999
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/pyca/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, pycurl, dateutil, configobj, sqlalchemy, sdnotify, flask }:
+
+buildPythonApplication rec {
+ pname = "pyca";
+ version = "2.1";
+
+ src = fetchFromGitHub {
+ owner = "opencast";
+ repo = "pyCA";
+ rev = "v${version}";
+ sha256 = "0cvkmdlcax9da9iw4ls73vw0pxvm8wvchab5gwdy9w9ibqdpcmwh";
+ };
+
+ propagatedBuildInputs = [
+ pycurl
+ dateutil
+ configobj
+ sqlalchemy
+ sdnotify
+ flask
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A fully functional Opencast capture agent written in Python";
+ homepage = "https://github.com/opencast/pyCA";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ pmiddend ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/qarte/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/qarte/default.nix
new file mode 100644
index 000000000000..26b3153019fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/qarte/default.nix
@@ -0,0 +1,42 @@
+{ mkDerivation, lib, fetchbzr, python3, rtmpdump }:
+
+let
+ pythonEnv = python3.withPackages (ps: with ps; [ pyqt5_with_qtmultimedia ]);
+in mkDerivation {
+ name = "qarte-4.6.0";
+ src = fetchbzr {
+ url = "http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4";
+ rev = "22";
+ sha256 = "0v4zpj8w67ydvnmanxbl8pwvn0cfv70c0mlw36a1r4n0rvgxffcn";
+ };
+
+ buildInputs = [ pythonEnv ];
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ mv qarte $out/bin/
+ substituteInPlace $out/bin/qarte \
+ --replace '/usr/share' "$out/share"
+
+ mkdir -p $out/share/man/man1/
+ mv qarte.1 $out/share/man/man1/
+
+ mkdir -p $out/share/qarte
+ mv * $out/share/qarte/
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ wrapQtApp $out/bin/qarte \
+ --prefix PATH : ${rtmpdump}/bin
+ '';
+
+ meta = {
+ homepage = "https://launchpad.net/qarte";
+ description = "A recorder for Arte TV Guide and Arte Concert";
+ license = lib.licenses.gpl3;
+ maintainers = with lib.maintainers; [ vbgl ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/qmediathekview/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/qmediathekview/default.nix
new file mode 100644
index 000000000000..7556727a80d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/qmediathekview/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, stdenv, fetchFromGitHub, qtbase, qttools, xz, boost, qmake, pkgconfig }:
+
+mkDerivation rec {
+ pname = "QMediathekView";
+ version = "2019-01-06";
+
+ src = fetchFromGitHub {
+ owner = "adamreichold";
+ repo = pname;
+ rev = "e098aaec552ec4e367078bf19953a08067316b4b";
+ sha256 = "0i9hac9alaajbra3lx23m0iiq6ww4is00lpbzg5x70agjrwj0nd6";
+ };
+
+ postPatch = ''
+ substituteInPlace ${pname}.pro \
+ --replace /usr ""
+ '';
+
+ buildInputs = [ qtbase qttools xz boost ];
+
+ nativeBuildInputs = [ qmake pkgconfig ];
+
+ installFlags = [ "INSTALL_ROOT=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "An alternative Qt-based front-end for the database maintained by the MediathekView project";
+ inherit (src.meta) homepage;
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ dotlambda ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/qmplay2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/qmplay2/default.nix
new file mode 100644
index 000000000000..b7f7f8c53023
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/qmplay2/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, alsaLib
+, ffmpeg
+, libass
+, libcddb
+, libcdio
+, libgme
+, libpulseaudio
+, libsidplayfp
+, libva
+, libXv
+, taglib
+, qtbase
+, qttools
+, vulkan-headers
+, vulkan-tools
+, wrapQtAppsHook
+}:
+
+let
+ pname = "qmplay2";
+ version = "20.07.04";
+in stdenv.mkDerivation {
+ inherit pname version;
+
+ src = fetchFromGitHub {
+ owner = "zaps166";
+ repo = "QMPlay2";
+ rev = version;
+ sha256 = "sha256-sUDucxSvsdD2C2FSVrrXeHdNdrjECtJSXVr106OdHzA=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
+ buildInputs = [
+ alsaLib
+ ffmpeg
+ libass
+ libcddb
+ libcdio
+ libgme
+ libpulseaudio
+ libsidplayfp
+ libva
+ libXv
+ qtbase
+ qttools
+ taglib
+ vulkan-headers
+ vulkan-tools
+ ];
+
+ postInstall = ''
+ # Because we think it is better to use only lowercase letters!
+ ln -s $out/bin/QMPlay2 $out/bin/qmplay2
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/zaps166/QMPlay2/";
+ description = "Qt-based Multimedia player";
+ longDescription = ''
+ QMPlay2 is a video and audio player. It can play all formats supported by
+ FFmpeg, libmodplug (including J2B and SFX). It also supports Audio CD, raw
+ files, Rayman 2 music and chiptunes. It contains YouTube and MyFreeMP3
+ browser.
+ '';
+ license = licenses.lgpl3Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/qstopmotion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
new file mode 100644
index 000000000000..dbb2128b50bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, mkDerivation
+, fetchurl
+, qtbase
+, qtmultimedia
+, qtquickcontrols
+, qtimageformats
+, qtxmlpatterns
+, ffmpeg_3
+, guvcview
+, cmake
+, ninja
+, libxml2
+, gettext
+, pkgconfig
+, libgphoto2
+, gphoto2
+, v4l-utils
+, libv4l
+, pcre
+, qwt
+, extra-cmake-modules
+}:
+
+mkDerivation rec {
+ pname = "qstopmotion";
+ version = "2.4.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/${pname}/Version_${builtins.replaceStrings ["."] ["_"] version}/${pname}-${version}-Source.tar.gz";
+ sha256 = "03r6jxyq0bak2vsy2b78nk27m7fm96hnl8cx11l3l17704j4iglh";
+ };
+
+ buildInputs = [
+ qtbase
+ qtmultimedia
+ qtquickcontrols
+ qtimageformats
+ qtxmlpatterns
+ v4l-utils
+ libv4l
+ pcre
+ ffmpeg_3
+ guvcview
+ qwt
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ cmake
+ extra-cmake-modules
+ ninja
+ gettext
+ libgphoto2
+ gphoto2
+ libxml2
+ libv4l
+ ];
+
+ patchPhase = ''
+ substituteInPlace CMakeLists.txt \
+ --replace "find_package(Qt5 REQUIRED COMPONENTS Core Widgets Xml" \
+ "find_package(Qt5 REQUIRED COMPONENTS Core Widgets Xml Multimedia"
+ grep -rl 'qwt' . | xargs sed -i 's@<qwt/qwt_slider.h>@<qwt_slider.h>@g'
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.qstopmotion.org";
+ description = "Create stopmotion animation with a (web)camera";
+ longDescription = ''
+ Qstopmotion is a tool to create stopmotion
+ animation. Its users are able to create stop-motions from pictures
+ imported from a camera or from the harddrive and export the
+ animation to different video formats such as mpeg or avi.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ maintainers.leenaars ];
+ broken = stdenv.isAarch64;
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/quvi/library.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/quvi/library.nix
new file mode 100644
index 000000000000..c4926bedd727
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/quvi/library.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, lua5, curl, quvi_scripts, libproxy, libgcrypt, glib }:
+
+stdenv.mkDerivation rec {
+ pname = "libquvi";
+ version="0.9.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/quvi/libquvi-${version}.tar.xz";
+ sha256 = "1cl1kbgxl1jnx2nwx4z90l0lap09lnnj1fg7hxsxk3m6aj4y4grd";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ lua5 curl quvi_scripts libproxy libgcrypt glib ];
+
+ meta = {
+ description = "Web video downloader";
+ homepage = "http://quvi.sf.net";
+ license = stdenv.lib.licenses.lgpl21Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/quvi/scripts.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/quvi/scripts.nix
new file mode 100644
index 000000000000..462c2df9962c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/quvi/scripts.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, pkgconfig}:
+
+stdenv.mkDerivation rec {
+ pname = "quvi-scripts";
+ version="0.9.20131130";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/quvi/libquvi-scripts-${version}.tar.xz";
+ sha256 = "1qvp6z5k1qgcys7vf7jd6fm0g07xixmciwj14ypn1kqhmjgizwhp";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = {
+ description = "Web video downloader";
+ homepage = "http://quvi.sf.net";
+ license = stdenv.lib.licenses.lgpl21Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/quvi/tool.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/quvi/tool.nix
new file mode 100644
index 000000000000..b2746ef82333
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/quvi/tool.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl, pkgconfig, lua5, curl, quvi_scripts, libquvi, lua5_sockets, glib, makeWrapper}:
+
+stdenv.mkDerivation rec {
+ pname = "quvi";
+ version="0.9.5";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/quvi/quvi-${version}.tar.xz";
+ sha256 = "1h52s265rp3af16dvq1xlscp2926jqap2l4ah94vrfchv6m1hffb";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ lua5 curl quvi_scripts libquvi glib makeWrapper ];
+ postInstall = ''
+ wrapProgram $out/bin/quvi --set LUA_PATH "${lua5_sockets}/share/lua/${lua5.luaversion}/?.lua"
+ '';
+
+ meta = {
+ description = "Web video downloader";
+ homepage = "http://quvi.sf.net";
+ license = stdenv.lib.licenses.lgpl21Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/screenkey/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/screenkey/default.nix
new file mode 100644
index 000000000000..00ead0f89a39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/screenkey/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, fetchFromGitLab
+# native
+, intltool
+, wrapGAppsHook
+, file
+# not native
+, xorg
+, gobject-introspection
+, gtk3
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "screenkey";
+ version = "1.2";
+
+ src = fetchFromGitLab {
+ owner = "screenkey";
+ repo = "screenkey";
+ rev = "v${version}";
+ sha256 = "1x13n57iy2pg3h3r994q3g5nbmh2gwk3qidmmcv0g7qa89n2gwbj";
+ };
+
+ nativeBuildInputs = [
+ python3.pkgs.distutils_extra
+ # Shouldn't be needed once https://gitlab.com/screenkey/screenkey/-/issues/122 is fixed.
+ intltool
+ # We are not sure why is this needed, but without it we get "file: command
+ # not found" errors during build.
+ file
+ wrapGAppsHook
+ # for setup hook
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ gtk3
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pycairo
+ pygobject3
+ ];
+
+ # Prevent double wrapping because of wrapGAppsHook
+ dontWrapGApps = true;
+ # https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ # screenkey does not have any tests
+ doCheck = false;
+
+ # Fix CDLL python calls for non absolute paths of xorg libraries
+ postPatch = ''
+ substituteInPlace Screenkey/xlib.py \
+ --replace libX11.so.6 ${lib.getLib xorg.libX11}/lib/libX11.so.6 \
+ --replace libXtst.so.6 ${lib.getLib xorg.libXtst}/lib/libXtst.so.6
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.thregr.org/~wavexx/software/screenkey/";
+ description = "A screencast tool to display your keys inspired by Screenflick";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.rasendubi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/shotcut/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/shotcut/default.nix
new file mode 100644
index 000000000000..1b3ca2850482
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/shotcut/default.nix
@@ -0,0 +1,102 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, mkDerivation
+, SDL2
+, frei0r
+, ladspaPlugins
+, gettext
+, mlt
+, jack1
+, pkgconfig
+, qtbase
+, qtmultimedia
+, qtx11extras
+, qtwebsockets
+, qtquickcontrols2
+, qtgraphicaleffects
+, qmake
+, qttools
+, genericUpdater
+, common-updater-scripts
+}:
+
+assert stdenv.lib.versionAtLeast mlt.version "6.22.1";
+
+mkDerivation rec {
+ pname = "shotcut";
+ version = "20.11.28";
+
+ src = fetchFromGitHub {
+ owner = "mltframework";
+ repo = "shotcut";
+ rev = "v${version}";
+ sha256 = "1yr71ihml9wnm7y5pv0gz41l1k6ybd16dk78zxf96kn9b838mzhq";
+ };
+
+ enableParallelBuilding = true;
+ nativeBuildInputs = [ pkgconfig qmake ];
+ buildInputs = [
+ SDL2
+ frei0r
+ ladspaPlugins
+ gettext
+ mlt
+ qtbase
+ qtmultimedia
+ qtx11extras
+ qtwebsockets
+ qtquickcontrols2
+ qtgraphicaleffects
+ ];
+
+ NIX_CFLAGS_COMPILE = "-I${mlt.dev}/include/mlt++ -I${mlt.dev}/include/mlt";
+ qmakeFlags = [
+ "QMAKE_LRELEASE=${stdenv.lib.getDev qttools}/bin/lrelease"
+ "SHOTCUT_VERSION=${version}"
+ "DEFINES+=SHOTCUT_NOUPGRADE"
+ ];
+
+ prePatch = ''
+ sed 's_shotcutPath, "melt"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
+ sed 's_shotcutPath, "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/jobs/ffmpegjob.cpp
+ sed 's_qApp->applicationDirPath(), "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/docks/encodedock.cpp
+ NICE=$(type -P nice)
+ sed "s_/usr/bin/nice_''${NICE}_" -i src/jobs/meltjob.cpp src/jobs/ffmpegjob.cpp
+ '';
+
+ qtWrapperArgs = [
+ "--prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1"
+ "--prefix LADSPA_PATH : ${ladspaPlugins}/lib/ladspa"
+ "--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ jack1 SDL2 ]}"
+ "--prefix PATH : ${mlt}/bin"
+ ];
+
+ postInstall = ''
+ mkdir -p $out/share/shotcut
+ cp -r src/qml $out/share/shotcut/
+ '';
+
+ passthru.updateScript = genericUpdater {
+ inherit pname version;
+ versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+ rev-prefix = "v";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A free, open source, cross-platform video editor";
+ longDescription = ''
+ An official binary for Shotcut, which includes all the
+ dependencies pinned to specific versions, is provided on
+ http://shotcut.org.
+
+ If you encounter problems with this version, please contact the
+ nixpkgs maintainer(s). If you wish to report any bugs upstream,
+ please use the official build from shotcut.org instead.
+ '';
+ homepage = "https://shotcut.org";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ goibhniu woffs peti ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix
new file mode 100644
index 000000000000..7176f5e2f09c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, mkDerivation, fetchurl, alsaLib, ffmpeg_3, libjack2, libX11, libXext, qtx11extras
+, libXfixes, libGLU, libGL, pkgconfig, libpulseaudio, qtbase, cmake, ninja
+}:
+
+mkDerivation rec {
+ pname = "simplescreenrecorder";
+ version = "0.3.11";
+
+ src = fetchurl {
+ url = "https://github.com/MaartenBaert/ssr/archive/${version}.tar.gz";
+ sha256 = "0l6irdadqpajvv0dj3ngs1231n559l0y1pykhs2h7526qm4w7xal";
+ };
+
+ cmakeFlags = [ "-DWITH_QT5=TRUE" ];
+
+ patches = [ ./fix-paths.patch ];
+
+ postPatch = ''
+ for i in scripts/ssr-glinject src/AV/Input/GLInjectInput.cpp; do
+ substituteInPlace $i \
+ --subst-var out \
+ --subst-var-by sh ${stdenv.shell}
+ done
+ '';
+
+ nativeBuildInputs = [ pkgconfig cmake ninja ];
+ buildInputs = [
+ alsaLib ffmpeg_3 libjack2 libX11 libXext libXfixes libGLU libGL
+ libpulseaudio qtbase qtx11extras
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A screen recorder for Linux";
+ homepage = "https://www.maartenbaert.be/simplescreenrecorder";
+ license = licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ maintainers.goibhniu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/simplescreenrecorder/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
new file mode 100644
index 000000000000..ba02240ce1f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
@@ -0,0 +1,35 @@
+diff --git a/scripts/ssr-glinject b/scripts/ssr-glinject
+index 48be48d..5038d4c 100755
+--- a/scripts/ssr-glinject
++++ b/scripts/ssr-glinject
+@@ -59,6 +59,6 @@ do
+ fi
+ done
+
+-echo "ssr-glinject: LD_PRELOAD = $LD_PRELOAD:libssr-glinject.so"
++echo "ssr-glinject: LD_PRELOAD = $LD_PRELOAD:@out@/lib/libssr-glinject.so"
+ echo "ssr-glinject: command = $@"
+-LD_PRELOAD="$LD_PRELOAD:libssr-glinject.so" "$@"
++LD_PRELOAD="$LD_PRELOAD:@out@/lib/libssr-glinject.so" "$@"
+diff --git a/src/AV/Input/GLInjectInput.cpp b/src/AV/Input/GLInjectInput.cpp
+index 6b378f8..cbcf82b 100644
+--- a/src/AV/Input/GLInjectInput.cpp
++++ b/src/AV/Input/GLInjectInput.cpp
+@@ -96,7 +96,7 @@ void GLInjectInput::SetCapturing(bool capturing) {
+ bool GLInjectInput::LaunchApplication(const QString& channel, bool relax_permissions, const QString& command, const QString& working_directory) {
+
+ // prepare command
+- QString full_command = "LD_PRELOAD=\"libssr-glinject.so\" ";
++ QString full_command = "LD_PRELOAD=\"@out@/lib/libssr-glinject.so\" ";
+ full_command += "SSR_CHANNEL=\"" + ShellEscape(channel) + "\" ";
+ if(relax_permissions)
+ full_command += "SSR_STREAM_RELAX_PERMISSIONS=1 ";
+@@ -106,7 +106,7 @@ bool GLInjectInput::LaunchApplication(const QString& channel, bool relax_permiss
+ QStringList args;
+ args.push_back("-c");
+ args.push_back(full_command);
+- return QProcess::startDetached("/bin/sh", args, working_directory);
++ return QProcess::startDetached("@sh@", args, working_directory);
+
+ }
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/smplayer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/smplayer/default.nix
new file mode 100644
index 000000000000..a8d2aaaff0ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/smplayer/default.nix
@@ -0,0 +1,26 @@
+{ lib, mkDerivation, fetchurl, qmake, qtscript }:
+
+mkDerivation rec {
+ pname = "smplayer";
+ version = "20.6.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
+ sha256 = "0c59gfgm2ya8yb2nx7gy1zc0nrr4206213xy86y7jw0bk9mmjxmy";
+ };
+
+ buildInputs = [ qtscript ];
+ nativeBuildInputs = [ qmake ];
+
+ dontUseQmakeConfigure = true;
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ meta = {
+ description = "A complete front-end for MPlayer";
+ longDescription = "Either mplayer or mpv should also be installed for smplayer to play medias";
+ homepage = "https://www.smplayer.info";
+ license = lib.licenses.gpl3Plus;
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/smtube/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/smtube/default.nix
new file mode 100644
index 000000000000..26b14ab739c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/smtube/default.nix
@@ -0,0 +1,28 @@
+{ lib, mkDerivation, fetchurl, qmake, qtscript, qtwebkit }:
+
+mkDerivation rec {
+ version = "20.6.0";
+ pname = "smtube";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/smtube/SMTube/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "0hnza5gszwqnkc1py5g34hi4p976vpkc4h3ab0247ynqs83fpwc2";
+ };
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ ];
+
+ dontUseQmakeConfigure = true;
+
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [ qtscript qtwebkit ];
+
+ meta = with lib; {
+ description = "Play and download Youtube videos";
+ homepage = "http://smplayer.sourceforge.net/smtube.php";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ vbgl ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
new file mode 100644
index 000000000000..1c955a36f34a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -0,0 +1,100 @@
+{ autoPatchelfHook, fetchurl, lib, makeDesktopItem, makeWrapper, stdenv, wrapGAppsHook
+, at-spi2-core, atk, alsaLib, cairo, cups, dbus, expat, gcc-unwrapped
+, gdk-pixbuf, glib, pango, gtk3-x11, libudev0-shim, libuuid, nss, nspr, xorg
+, streamlink }:
+
+let
+ basename = "streamlink-twitch-gui";
+ runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
+ arch =
+ if stdenv.hostPlatform.system == "x86_64-linux"
+ then
+ "linux64"
+ else
+ "linux32";
+
+in
+stdenv.mkDerivation rec {
+ pname = "${basename}-bin";
+ version = "1.10.0";
+
+ src = fetchurl {
+ url = "https://github.com/streamlink/${basename}/releases/download/v${version}/${basename}-v${version}-${arch}.tar.gz";
+ sha256 =
+ if arch == "linux64"
+ then
+ "17s9zbzj4pgz9mxxwjbp3788afkddc9s3p7xp28y5084z9wwzph2"
+ else
+ "1pww05hr48m6v0g1sz48g1c7p615lig3s12l21xgyz4gkjzmjy22";
+ };
+
+ nativeBuildInputs = with xorg; [
+ at-spi2-core
+ atk
+ alsaLib
+ autoPatchelfHook
+ cairo
+ cups.lib
+ dbus.daemon.lib
+ expat
+ gcc-unwrapped
+ gdk-pixbuf
+ glib
+ pango
+ gtk3-x11
+ nss
+ nspr
+ libuuid
+ libX11
+ libxcb
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXScrnSaver
+ libXtst
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ buildInputs = [ streamlink ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ installPhase = ''
+ mkdir -p $out/{bin,opt/${basename},share}
+
+ # Install all files, remove unnecessary ones
+ cp -a . $out/opt/${basename}/
+ rm -r $out/opt/${basename}/{{add,remove}-menuitem.sh,credits.html,icons/}
+
+ wrapProgram $out/opt/${basename}/${basename} --add-flags "--no-version-check" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
+
+ ln -s "$out/opt/${basename}/${basename}" $out/bin/
+ ln -s "${desktopItem}/share/applications" $out/share/
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = basename;
+ exec = basename;
+ icon = basename;
+ desktopName = "Streamlink Twitch GUI";
+ genericName = meta.description;
+ categories = "AudioVideo;Network;";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Twitch.tv browser for Streamlink";
+ longDescription = "Browse Twitch.tv and watch streams in your videoplayer of choice";
+ homepage = "https://streamlink.github.io/streamlink-twitch-gui/";
+ downloadPage = https://github.com/streamlink/streamlink-twitch-gui/releases;
+ license = licenses.mit;
+ maintainers = with maintainers; [ rileyinman ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/streamlink/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/streamlink/default.nix
new file mode 100644
index 000000000000..4c8800c918e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/streamlink/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, pythonPackages, fetchFromGitHub, rtmpdump, ffmpeg_3 }:
+
+pythonPackages.buildPythonApplication rec {
+ version = "1.5.0";
+ pname = "streamlink";
+
+ src = fetchFromGitHub {
+ owner = "streamlink";
+ repo = "streamlink";
+ rev = version;
+ sha256 = "00pishpyim3mcvr9njcbfhj79j85b5xhkslk3mspc2csqknw4k61";
+ };
+
+ checkInputs = with pythonPackages; [ pytest mock requests-mock freezegun ];
+
+ propagatedBuildInputs = (with pythonPackages; [ pycryptodome requests iso-639 iso3166 websocket_client isodate ]) ++ [ rtmpdump ffmpeg_3 ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/streamlink/streamlink";
+ description = "CLI for extracting streams from various websites to video player of your choosing";
+ longDescription = ''
+ Streamlink is a CLI utility that pipes flash videos from online
+ streaming services to a variety of video players such as VLC, or
+ alternatively, a browser.
+
+ Streamlink is a fork of the livestreamer project.
+ '';
+ license = licenses.bsd2;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ dezgeg zraexy enzime ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/subdl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/subdl/default.nix
new file mode 100644
index 000000000000..b2b020a20d23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/subdl/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, python3 }:
+
+stdenv.mkDerivation {
+ name = "subdl-0.0pre.2017.11.06";
+
+ src = fetchFromGitHub {
+ owner = "alexanderwink";
+ repo = "subdl";
+ rev = "4cf5789b11f0ff3f863b704b336190bf968cd471";
+ sha256 = "0kmk5ck1j49q4ww0lvas2767kwnzhkq0vdwkmjypdx5zkxz73fn8";
+ };
+
+ meta = {
+ homepage = "https://github.com/alexanderwink/subdl";
+ description = "A command-line tool to download subtitles from opensubtitles.org";
+ platforms = stdenv.lib.platforms.all;
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.exfalso ];
+ };
+
+ buildInputs = [ python3 ];
+
+ installPhase = ''
+ install -vD subdl $out/bin/subdl
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/subtitleeditor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/subtitleeditor/default.nix
new file mode 100644
index 000000000000..29e2de6b6c0a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/subtitleeditor/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, intltool, file,
+ desktop-file-utils, enchant, gtk3, gtkmm3, gst_all_1, hicolor-icon-theme,
+ libsigcxx, libxmlxx, xdg_utils, isocodes, wrapGAppsHook
+}:
+
+let
+ version = "0.54.0";
+in
+
+stdenv.mkDerivation {
+ pname = "subtitleeditor";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "kitone";
+ repo = "subtitleeditor";
+ rev = version;
+ sha256 = "0vxcscc9m6gymgj173ahk2g9hlk9588z5fdaavmkpyriqdlhwm11";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ intltool
+ file
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ desktop-file-utils
+ enchant
+ gtk3
+ gtkmm3
+ gst_all_1.gstreamer
+ gst_all_1.gstreamermm
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ hicolor-icon-theme
+ libsigcxx
+ libxmlxx
+ xdg_utils
+ isocodes
+ ];
+
+ enableParallelBuilding = true;
+
+ preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
+
+ configureFlags = [ "--disable-debug" ];
+
+ meta = {
+ description = "GTK 3 application to edit video subtitles";
+ longDescription = ''
+ Subtitle Editor is a GTK 3 tool to edit subtitles for GNU/Linux/*BSD. It
+ can be used for new subtitles or as a tool to transform, edit, correct
+ and refine existing subtitle. This program also shows sound waves, which
+ makes it easier to synchronise subtitles to voices.
+ '';
+ homepage = "http://kitone.github.io/subtitleeditor/";
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.plcplc ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/tartube/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/tartube/default.nix
new file mode 100644
index 000000000000..23ee76eb4693
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/tartube/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gdk-pixbuf
+, gobject-introspection
+, gtk3
+, libnotify
+, pango
+, python3Packages
+, wrapGAppsHook
+, youtube-dl
+, glib
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "tartube";
+ version = "2.1.0";
+
+ src = fetchFromGitHub {
+ owner = "axcore";
+ repo = "tartube";
+ rev = "v${version}";
+ sha256 = "1klqjwqm29y2f6nc8gn222ykfvb5d64z1w2kifw9bq5bv0np9bda";
+ };
+
+ nativeBuildInputs = [
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ strictDeps = false;
+
+ propagatedBuildInputs = with python3Packages; [
+ moviepy
+ pygobject3
+ pyxdg
+ requests
+ feedparser
+ playsound
+ ];
+
+ buildInputs = [
+ gdk-pixbuf
+ gtk3
+ glib
+ libnotify
+ pango
+ ];
+
+ postPatch = ''
+ sed -i "/^\s*install_requires/s/, 'gi'\|'gi', \|'gi'//" setup.py
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/{man/man1,applications,pixmaps}
+ cp pack/tartube.1 $out/share/man/man1
+ cp pack/tartube.desktop $out/share/applications
+ cp pack/tartube.{png,xpm} $out/share/pixmaps
+ '';
+
+ doCheck = false;
+
+ makeWrapperArgs = [
+ "--prefix PATH : ${stdenv.lib.makeBinPath [ youtube-dl ]}"
+ ];
+
+ meta = with lib; {
+ description = "A GUI front-end for youtube-dl";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mkg20001 luc65r ];
+ homepage = "https://tartube.sourceforge.io/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/tivodecode/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/tivodecode/default.nix
new file mode 100644
index 000000000000..33e04b77c4b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/tivodecode/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+let
+ version = "0.2pre4";
+
+in
+
+stdenv.mkDerivation {
+ pname = "tivodecode";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/tivodecode/tivodecode/${version}/tivodecode-${version}.tar.gz";
+ sha256 = "1pww5r2iygscqn20a1cz9xbfh18p84a6a5ifg4h5nvyn9b63k23q";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Converts a .TiVo file (produced by TiVoToGo) to a normal MPEG file";
+ homepage = "http://tivodecode.sourceforge.net";
+ platforms = platforms.unix;
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/uvccapture/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/uvccapture/default.nix
new file mode 100644
index 000000000000..f52ffa923d28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/uvccapture/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, libjpeg }:
+
+let
+ debianPatches = fetchurl {
+ url = "mirror://debian/pool/main/u/uvccapture/uvccapture_0.5-3.debian.tar.gz";
+ sha256 = "0m29by13nw1r8sch366qzdxg5rsd1k766kqg1nj2pdb8f7pwjh9r";
+ };
+
+in
+
+stdenv.mkDerivation {
+ name = "uvccapture-0.5";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/u/uvccapture/uvccapture_0.5.orig.tar.gz";
+ sha256 = "1b3akkcmr3brbf93akr8xi20w8zqf2g0qfq928500wy04qi6jqpi";
+ };
+
+ buildInputs = [ libjpeg ];
+
+ patchPhase = ''
+ tar xvf "${debianPatches}"
+ for fname in debian/patches/fix_videodev_include_FTBFS.patch \
+ debian/patches/warnings.patch \
+ debian/patches/numbuffers.patch
+ do
+ echo "Applying patch $fname"
+ patch < "$fname"
+ done
+ '';
+
+ makeFlagsArray = [ "PREFIX=$(out)/bin/" ];
+
+ preInstall = ''
+ mkdir -p "$out/bin"
+ '';
+
+ # Upstream has no man page, install one from Debian
+ postInstall = ''
+ mkdir -p "$out/share/man/man1"
+ cp -v debian/uvccapture.1 "$out/share/man/man1/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Capture image from USB webcam at a specified interval";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vcs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/vcs/default.nix
new file mode 100644
index 000000000000..0280cfb3f1f4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vcs/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, makeWrapper
+, coreutils, ffmpeg, gawk, gnugrep, gnused, imagemagick, mplayer, util-linux
+, dejavu_fonts
+}:
+with stdenv.lib;
+let
+ version = "1.13.4";
+ runtimeDeps = [ coreutils ffmpeg gawk gnugrep gnused imagemagick mplayer util-linux ];
+in
+stdenv.mkDerivation {
+ pname = "vcs";
+ inherit version;
+ src = fetchurl {
+ url = "http://p.outlyer.net/files/vcs/vcs-${version}.bash";
+ sha256 = "0nhwcpffp3skz24kdfg4445i6j37ks6a0qsbpfd3dbi4vnpa60a0";
+ };
+
+ unpackCmd = "mkdir src; cp $curSrc src/vcs";
+ patches = [ ./fonts.patch ];
+ nativeBuildInputs = [ makeWrapper ];
+ doBuild = false;
+
+ inherit dejavu_fonts;
+ installPhase = ''
+ mkdir -p $out/bin
+ mv vcs $out/bin/vcs
+ substituteAllInPlace $out/bin/vcs
+ chmod +x $out/bin/vcs
+ wrapProgram $out/bin/vcs --argv0 vcs --set PATH "${makeBinPath runtimeDeps}"
+ '';
+
+ meta = {
+ description = "Generates contact sheets from video files";
+ homepage = "http://p.outlyer.net/vcs";
+ license = licenses.cc-by-nc-sa-30;
+ maintainers = with maintainers; [ elitak ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vcs/fonts.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/vcs/fonts.patch
new file mode 100644
index 000000000000..3df0359f8b26
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vcs/fonts.patch
@@ -0,0 +1,23 @@
+--- a/vcs 2020-04-04 14:37:53.531095977 -0700
++++ b/vcs 2020-04-04 14:40:46.459407878 -0700
+@@ -3669,18 +3669,8 @@
+ [[ ( -z $USR_FONT_TITLE ) && ( $FONT_TITLE != 'DejaVu-Sans-Book' ) ]] && return
+ [[ ( -z $USR_FONT_TSTAMPS ) && ( $FONT_TSTAMPS != 'DejaVu-Sans-Book' ) ]] && return
+ [[ ( -z $USR_FONT_SIGN ) && ( $FONT_SIGN != 'DejaVu-Sans-Book' ) ]] && return
+- # Try to locate DejaVu Sans
+- local dvs=''
+- if [[ -d /usr/local/share/fonts ]]; then
+- dvs=$(find /usr/local/share/fonts/ -type f -iname 'dejavusans.ttf')
+- fi
+- if [[ ( -z $dvs ) && ( -d /usr/share/fonts ) ]]; then
+- dvs=$(find /usr/share/fonts/ -type f -iname 'dejavusans.ttf')
+- fi
+- if [[ -z $dvs ]]; then
+- warn "Unable to locate DejaVu Sans font. Falling back to helvetica."
+- dvs=helvetica
+- fi
++ # Use DejaVu Sans, by default
++ local dvs='@dejavu_fonts@/share/fonts/truetype/DejaVuSans.ttf'
+ [[ -z $USR_FONT_HEADING ]] && FONT_HEADING="$dvs"
+ [[ -z $USR_FONT_TITLE ]] && FONT_TITLE="$dvs"
+ [[ -z $USR_FONT_TSTAMPS ]] && FONT_TSTAMPS="$dvs"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/default.nix
new file mode 100644
index 000000000000..bc3d54f3b5b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchgit, fontconfig, libjpeg, libcap, freetype, fribidi, pkgconfig
+, gettext, systemd, perl, lib
+, enableSystemd ? true
+, enableBidi ? true
+}: stdenv.mkDerivation rec {
+
+ pname = "vdr";
+ version = "2.4.4";
+
+ src = fetchgit {
+ url = "git://git.tvdr.de/vdr.git";
+ rev = "V20404";
+ sha256 = "1fzghnp5mpcwn3a3fyk3w8h15z4f2cnc75247kvxj1c9069mgnwa";
+ };
+
+ enableParallelBuilding = true;
+
+ postPatch = "substituteInPlace Makefile --replace libsystemd-daemon libsystemd";
+
+ buildInputs = [ fontconfig libjpeg libcap freetype perl ]
+ ++ lib.optional enableSystemd systemd
+ ++ lib.optional enableBidi fribidi;
+
+ buildFlags = [ "vdr" "i18n" ]
+ ++ lib.optional enableSystemd "SDNOTIFY=1"
+ ++ lib.optional enableBidi "BIDI=1";
+
+ nativeBuildInputs = [ perl ];
+
+ # plugins uses the same build environment as vdr
+ propagatedNativeBuildInputs = [ pkgconfig gettext ];
+
+ installFlags = [
+ "DESTDIR=$(out)"
+ "PREFIX=" # needs to be empty, otherwise plugins try to install at same prefix
+ ];
+
+ installTargets = [ "install-pc" "install-bin" "install-doc" "install-i18n"
+ "install-includes" ];
+
+ postInstall = ''
+ mkdir -p $out/lib/vdr # only needed if vdr is started without any plugin
+ mkdir -p $out/share/vdr/conf
+ cp *.conf $out/share/vdr/conf
+ '';
+
+ outputs = [ "out" "dev" "man" ];
+
+ meta = with lib; {
+ homepage = "http://www.tvdr.de/";
+ description = "Video Disc Recorder";
+ maintainers = [ maintainers.ck3d ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/plugins.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/plugins.nix
new file mode 100644
index 000000000000..e72de8e61f20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/plugins.nix
@@ -0,0 +1,340 @@
+{ stdenv, fetchurl, fetchgit, vdr, alsaLib, fetchFromGitHub
+, libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg_3
+, libiconv, boost, libgcrypt, perl, util-linux, groff, libva, xorg, ncurses
+, callPackage
+}: let
+ mkPlugin = name: stdenv.mkDerivation {
+ name = "vdr-${vdr.version}-${name}";
+ inherit (vdr) src;
+ buildInputs = [ vdr ];
+ preConfigure = "cd PLUGINS/src/${name}";
+ installFlags = [ "DESTDIR=$(out)" ];
+ };
+in {
+
+ xineliboutput = callPackage ./xineliboutput {};
+
+ skincurses = (mkPlugin "skincurses").overrideAttrs(oldAttr: {
+ buildInputs = oldAttr.buildInputs ++ [ ncurses ];
+ });
+
+ inherit (stdenv.lib.genAttrs [
+ "epgtableid0" "hello" "osddemo" "pictures" "servicedemo" "status" "svdrpdemo"
+ ] mkPlugin);
+
+ femon = stdenv.mkDerivation rec {
+
+ name = "vdr-femon-2.4.0";
+
+ buildInputs = [ vdr ];
+
+ src = fetchurl {
+ url = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/${name}.tgz";
+ sha256 = "1hra1xslj8s68zbyr8zdqp8yap0aj1p6rxyc6cwy1j122kwcnapp";
+ };
+
+ postPatch = "substituteInPlace Makefile --replace /bin/true true";
+
+ makeFlags = [ "DESTDIR=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/";
+ description = "DVB Frontend Status Monitor plugin for VDR";
+ maintainers = [ maintainers.ck3d ];
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+
+ };
+
+ vaapidevice = stdenv.mkDerivation {
+
+ pname = "vdr-vaapidevice";
+ version = "20190525";
+
+ buildInputs = [
+ vdr libxcb xcbutilwm ffmpeg_3
+ alsaLib
+ libvdpau # vdpau
+ libva # va-api
+ ] ++ (with xorg; [ libxcb libX11 ]);
+
+ makeFlags = [ "DESTDIR=$(out)" ];
+
+ postPatch = ''
+ substituteInPlace vaapidev.c --replace /usr/bin/X ${xorgserver}/bin/X
+ '';
+
+ src = fetchFromGitHub {
+ owner = "pesintta";
+ repo = "vdr-plugin-vaapidevice";
+ sha256 = "1gwjp15kjki9x5742fhaqk3yc2bbma74yp2vpn6wk6kj46nbnwp6";
+ rev = "d19657bae399e79df107e316ca40922d21393f80";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/pesintta/vdr-plugin-vaapidevice";
+ description = "VDR SoftHDDevice Plug-in (with VA-API VPP additions)";
+ maintainers = [ maintainers.ck3d ];
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+
+ };
+
+
+ markad = stdenv.mkDerivation rec {
+ name = "vdr-markad-2017-03-13";
+
+ src = fetchgit {
+ url = "git://projects.vdr-developer.org/vdr-plugin-markad.git";
+ sha256 = "0jvy70r8bcmbs7zdqilfz019z5xkz5c6rs57h1dsgv8v6x86c2i4";
+ rev = "ea2e182ec798375f3830f8b794e7408576f139ad";
+ };
+
+ buildInputs = [ vdr libav ];
+
+ postPatch = ''
+ substituteInPlace command/Makefile --replace '$(DESTDIR)/usr' '$(DESTDIR)'
+
+ substituteInPlace plugin/markad.cpp \
+ --replace "/usr/bin" "$out/bin" \
+ --replace "/var/lib/markad" "$out/var/lib/markad"
+
+ substituteInPlace command/markad-standalone.cpp \
+ --replace "/var/lib/markad" "$out/var/lib/markad"
+ '';
+
+ preBuild = ''
+ mkdir -p $out/lib/vdr
+ '';
+
+ buildFlags = [
+ "DESTDIR=$(out)"
+ "LIBDIR=$(out)/lib/vdr"
+ "VDRDIR=${vdr.dev}/include/vdr"
+ "LOCALEDIR=$(DESTDIR)/share/locale"
+ ];
+
+ installFlags = buildFlags;
+
+ meta = with stdenv.lib; {
+ homepage = "https://projects.vdr-developer.org/projects/plg-markad";
+ description = "Ein Programm zum automatischen Setzen von Schnittmarken bei Werbeeinblendungen während einer Sendung.";
+ maintainers = [ maintainers.ck3d ];
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+
+ };
+
+ epgsearch = stdenv.mkDerivation rec {
+ pname = "vdr-epgsearch";
+ version = "20191202";
+
+ src = fetchgit {
+ url = "git://projects.vdr-developer.org/vdr-plugin-epgsearch.git";
+ sha256 = "18kskwnnscr4rb4yzfikw1la318zjgraf340cl7n9z77chi2gi8m";
+ rev = "602d66c55964998ce25c6c57b302949a9517f149";
+ };
+
+ postPatch = ''
+ for f in *.sh; do
+ patchShebangs "$f"
+ done
+ '';
+
+ nativeBuildInputs = [
+ perl # for pod2man and pos2html
+ util-linux
+ groff
+ ];
+
+ buildInputs = [
+ vdr
+ pcre
+ ];
+
+ buildFlags = [
+ "SENDMAIL="
+ "REGEXLIB=pcre"
+ ];
+
+ installFlags = [
+ "DESTDIR=$(out)"
+ ];
+
+ outputs = [ "out" "man" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://winni.vdr-developer.org/epgsearch";
+ description = "Searchtimer and replacement of the VDR program menu";
+ maintainers = [ maintainers.ck3d ];
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+
+ };
+
+ vnsiserver = let
+ name = "vnsiserver";
+ version = "1.8.0";
+ in stdenv.mkDerivation {
+ name = "vdr-${name}-${version}";
+
+ buildInputs = [ vdr ];
+
+ installFlags = [ "DESTDIR=$(out)" ];
+
+ src = fetchFromGitHub {
+ repo = "vdr-plugin-${name}";
+ owner = "FernetMenta";
+ rev = "v${version}";
+ sha256 = "0n7idpxqx7ayd63scl6xwdx828ik4kb2mwz0c30cfjnmnxxd45lw";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/FernetMenta/vdr-plugin-vnsiserver";
+ description = "VDR plugin to handle KODI clients.";
+ maintainers = [ maintainers.ck3d ];
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+
+ };
+
+ text2skin = stdenv.mkDerivation {
+ name = "vdr-text2skin-1.3.4-20170702";
+
+ src = fetchgit {
+ url = "git://projects.vdr-developer.org/vdr-plugin-text2skin.git";
+ sha256 = "19hkwmaw6nwak38bv6cm2vcjjkf4w5yjyxb98qq6zfjjh5wq54aa";
+ rev = "8f7954da2488ced734c30e7c2704b92a44e6e1ad";
+ };
+
+ buildInputs = [ vdr graphicsmagick ];
+
+ buildFlags = [
+ "DESTDIR=$(out)"
+ "IMAGELIB=graphicsmagic"
+ "VDRDIR=${vdr.dev}/include/vdr"
+ "LOCALEDIR=$(DESTDIR)/share/locale"
+ "LIBDIR=$(DESTDIR)/lib/vdr"
+ ];
+
+ preBuild = ''
+ mkdir -p $out/lib/vdr
+ '';
+
+ installPhase = ":";
+
+ meta = with stdenv.lib; {
+ homepage = "https://projects.vdr-developer.org/projects/plg-text2skin";
+ description = "VDR Text2Skin Plugin";
+ maintainers = [ maintainers.ck3d ];
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+ };
+
+ fritzbox = let
+ libconvpp = stdenv.mkDerivation {
+ name = "jowi24-libconv++-20130216";
+ propagatedBuildInputs = [ libiconv ];
+ CXXFLAGS = "-std=gnu++11 -Os";
+ src = fetchFromGitHub {
+ owner = "jowi24";
+ repo = "libconvpp";
+ rev = "90769b2216bc66c5ea5e41a929236c20d367c63b";
+ sha256 = "0bf0dwxrzd42l84p8nxcsjdk1gvzlhad93nsbn97z6kr61n4cr33";
+ };
+ installPhase = ''
+ mkdir -p $out/lib $out/include/libconv++
+ cp source.a $out/lib/libconv++.a
+ cp *.h $out/include/libconv++
+ '';
+ };
+
+ liblogpp = stdenv.mkDerivation {
+ name = "jowi24-liblogpp-20130216";
+ CXXFLAGS = "-std=gnu++11 -Os";
+ src = fetchFromGitHub {
+ owner = "jowi24";
+ repo = "liblogpp";
+ rev = "eee4046d2ae440974bcc8ceec00b069f0a2c62b9";
+ sha256 = "01aqvwmwh5kk3mncqpim8llwha9gj5qq0c4cvqfn4h8wqi3d9l3p";
+ };
+ installPhase = ''
+ mkdir -p $out/lib $out/include/liblog++
+ cp source.a $out/lib/liblog++.a
+ cp *.h $out/include/liblog++
+ '';
+ };
+
+ libnetpp = stdenv.mkDerivation {
+ name = "jowi24-libnet++-20180628";
+ CXXFLAGS = "-std=gnu++11 -Os";
+ src = fetchFromGitHub {
+ owner = "jowi24";
+ repo = "libnetpp";
+ rev = "212847f0efaeffee8422059b8e202d844174aaf3";
+ sha256 = "0vjl6ld6aj25rzxm26yjv3h2gy7gp7qnbinpw6sf1shg2xim9x0b";
+ };
+ installPhase = ''
+ mkdir -p $out/lib $out/include/libnet++
+ cp source.a $out/lib/libnet++.a
+ cp *.h $out/include/libnet++
+ '';
+ buildInputs = [ boost liblogpp libconvpp ];
+ };
+
+ libfritzpp = stdenv.mkDerivation {
+ name = "jowi24-libfritzpp-20131201";
+ CXXFLAGS = "-std=gnu++11 -Os";
+ src = fetchFromGitHub {
+ owner = "jowi24";
+ repo = "libfritzpp";
+ rev = "ca19013c9451cbac7a90155b486ea9959ced0f67";
+ sha256 = "0jk93zm3qzl9z96gfs6xl1c8ip8lckgbzibf7jay7dbgkg9kyjfg";
+ };
+ installPhase = ''
+ mkdir -p $out/lib $out/include/libfritz++
+ cp source.a $out/lib/libfritz++.a
+ cp *.h $out/include/libfritz++
+ '';
+ propagatedBuildInputs = [ libgcrypt ];
+ buildInputs = [ boost liblogpp libconvpp libnetpp ];
+ };
+
+ in stdenv.mkDerivation rec {
+ pname = "vdr-fritzbox";
+
+ version = "1.5.3";
+
+ src = fetchFromGitHub {
+ owner = "jowi24";
+ repo = "vdr-fritz";
+ rev = version;
+ sha256 = "0wab1kyma9jzhm6j33cv9hd2a5d1334ghgdi2051nmr1bdcfcsw8";
+ };
+
+ postUnpack = ''
+ cp ${libfritzpp}/lib/* $sourceRoot/libfritz++
+ cp ${liblogpp}/lib/* $sourceRoot/liblog++
+ cp ${libnetpp}/lib/* $sourceRoot/libnet++
+ cp ${libconvpp}/lib/* $sourceRoot/libconv++
+ '';
+
+ buildInputs = [ vdr boost libconvpp libfritzpp libnetpp liblogpp ];
+
+ installFlags = [ "DESTDIR=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jowi24/vdr-fritz";
+ description = "A plugin for VDR to access AVMs Fritz Box routers";
+ maintainers = [ maintainers.ck3d ];
+ license = licenses.gpl2;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/wrapper.nix
new file mode 100644
index 000000000000..50d3b9d65a8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/wrapper.nix
@@ -0,0 +1,30 @@
+{ symlinkJoin, lib, makeWrapper, vdr
+, plugins ? []
+}: let
+
+ makeXinePluginPath = l: lib.concatStringsSep ":" (map (p: "${p}/lib/xine/plugins") l);
+
+ requiredXinePlugins = lib.flatten (map (p: p.passthru.requiredXinePlugins or []) plugins);
+
+in symlinkJoin {
+
+ name = "vdr-with-plugins-${lib.getVersion vdr}";
+
+ paths = [ vdr ] ++ plugins;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/vdr \
+ --add-flags "-L $out/lib/vdr --localedir=$out/share/locale" \
+ --prefix XINE_PLUGIN_PATH ":" ${makeXinePluginPath requiredXinePlugins}
+ '';
+
+ meta = with vdr.meta; {
+ inherit license homepage;
+ description = description
+ + " (with plugins: "
+ + lib.concatStrings (lib.intersperse ", " (map (x: ""+x.name) plugins))
+ + ")";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix
new file mode 100644
index 000000000000..950cb253c129
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, lib, vdr
+, libav, libcap, libvdpau
+, xineLib, libjpeg, libextractor, libglvnd, libGLU
+, libX11, libXext, libXrender, libXrandr
+, makeWrapper
+}: let
+ makeXinePluginPath = l: lib.concatStringsSep ":" (map (p: "${p}/lib/xine/plugins") l);
+
+ self = stdenv.mkDerivation rec {
+ pname = "vdr-xineliboutput";
+ version = "2.2.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/xineliboutput/xineliboutput/${pname}-${version}/${pname}-${version}.tgz";
+ sha256 = "0a24hs5nr7ncf51c5agyfn1xrvb4p70y3i0s6dlyyd9bwbfjldns";
+ };
+
+ postPatch = ''
+ # pkg-config is called with opengl, which do not contain needed glx symbols
+ substituteInPlace configure \
+ --replace "X11 opengl" "X11 gl"
+ '';
+
+ # configure don't accept argument --prefix
+ dontAddPrefix = true;
+
+ postConfigure = ''
+ sed -i config.mak \
+ -e 's,XINEPLUGINDIR=/[^/]*/[^/]*/[^/]*/,XINEPLUGINDIR=/,'
+ '';
+
+ makeFlags = [ "DESTDIR=$(out)" ];
+
+ postFixup = ''
+ for f in $out/bin/*; do
+ wrapProgram $f \
+ --prefix XINE_PLUGIN_PATH ":" "${makeXinePluginPath [ "$out" xineLib ]}"
+ done
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [
+ libav
+ libcap
+ libextractor
+ libjpeg
+ libglvnd
+ libGLU
+ libvdpau
+ libXext
+ libXrandr
+ libXrender
+ libX11
+ vdr
+ xineLib
+ ];
+
+ passthru.requiredXinePlugins = [ xineLib self ];
+
+ meta = with lib;{
+ homepage = "https://sourceforge.net/projects/xineliboutput/";
+ description = "Xine-lib based software output device for VDR";
+ maintainers = [ maintainers.ck3d ];
+ license = licenses.gpl2;
+ inherit (vdr.meta) platforms;
+ };
+ };
+in self
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vlc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/vlc/default.nix
new file mode 100644
index 000000000000..58df85332ea0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vlc/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchurl, autoreconfHook
+, libarchive, perl, xorg, libdvdnav, libbluray
+, zlib, a52dec, libmad, faad2, ffmpeg_3, alsaLib
+, pkgconfig, dbus, fribidi, freefont_ttf, libebml, libmatroska
+, libvorbis, libtheora, speex, lua5, libgcrypt, libgpgerror, libupnp
+, libcaca, libpulseaudio, flac, schroedinger, libxml2, librsvg
+, mpeg2dec, systemd, gnutls, avahi, libcddb, libjack2, SDL, SDL_image
+, libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, libssh2, liboggz
+, libass, libva, libdvbpsi, libdc1394, libraw1394, libopus
+, libvdpau, libsamplerate, live555, fluidsynth, wayland, wayland-protocols
+, onlyLibVLC ? false
+, withQt5 ? true, qtbase ? null, qtsvg ? null, qtx11extras ? null, wrapQtAppsHook ? null
+, jackSupport ? false
+, removeReferencesTo
+, chromecastSupport ? true, protobuf, libmicrodns
+}:
+
+# chromecastSupport requires TCP port 8010 to be open for it to work.
+# If your firewall is enabled, make sure to have something like:
+# networking.firewall.allowedTCPPorts = [ 8010 ];
+
+with stdenv.lib;
+
+assert (withQt5 -> qtbase != null && qtsvg != null && qtx11extras != null && wrapQtAppsHook != null);
+
+stdenv.mkDerivation rec {
+ pname = "${optionalString onlyLibVLC "lib"}vlc";
+ version = "3.0.11.1";
+
+ src = fetchurl {
+ url = "http://get.videolan.org/vlc/${version}/vlc-${version}.tar.xz";
+ sha256 = "1f46h0hv7fk35zg4iczlp7ib7h2jmh8m4r5klw3g2558ib9134qq";
+ };
+
+ # VLC uses a *ton* of libraries for various pieces of functionality, many of
+ # which are not included here for no other reason that nobody has mentioned
+ # needing them
+ buildInputs = [
+ zlib a52dec libmad faad2 ffmpeg_3 alsaLib libdvdnav libdvdnav.libdvdread
+ libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpgerror
+ libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec
+ systemd gnutls avahi libcddb SDL SDL_image libmtp unzip taglib libarchive
+ libkate libtiger libv4l samba libssh2 liboggz libass libdvbpsi libva
+ xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms
+ libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate
+ fluidsynth wayland wayland-protocols
+ ] ++ optional (!stdenv.hostPlatform.isAarch64) live555
+ ++ optionals withQt5 [ qtbase qtsvg qtx11extras ]
+ ++ optional jackSupport libjack2
+ ++ optionals chromecastSupport [ protobuf libmicrodns ];
+
+ nativeBuildInputs = [ autoreconfHook perl pkgconfig removeReferencesTo ]
+ ++ optionals withQt5 [ wrapQtAppsHook ];
+
+ enableParallelBuilding = true;
+
+ LIVE555_PREFIX = if (!stdenv.hostPlatform.isAarch64) then live555 else null;
+
+ # vlc depends on a c11-gcc wrapper script which we don't have so we need to
+ # set the path to the compiler
+ BUILDCC = "${stdenv.cc}/bin/gcc";
+
+ postPatch = ''
+ substituteInPlace configure \
+ --replace /bin/echo echo
+
+ substituteInPlace modules/text_renderer/freetype/platform_fonts.h --replace \
+ /usr/share/fonts/truetype/freefont ${freefont_ttf}/share/fonts/truetype
+ '';
+
+ # - Touch plugins (plugins cache keyed off mtime and file size:
+ # https://github.com/NixOS/nixpkgs/pull/35124#issuecomment-370552830
+ # - Remove references to the Qt development headers (used in error messages)
+ postFixup = ''
+ find $out/lib/vlc/plugins -exec touch -d @1 '{}' ';'
+ $out/lib/vlc/vlc-cache-gen $out/vlc/plugins
+ '' + optionalString withQt5 ''
+ remove-references-to -t "${qtbase.dev}" $out/lib/vlc/plugins/gui/libqt_plugin.so
+ '';
+
+ # Most of the libraries are auto-detected so we don't need to set a bunch of
+ # "--enable-foo" flags here
+ configureFlags = [
+ "--with-kde-solid=$out/share/apps/solid/actions"
+ ] ++ optional onlyLibVLC "--disable-vlc"
+ ++ optionals chromecastSupport [
+ "--enable-sout"
+ "--enable-chromecast"
+ "--enable-microdns"
+ ];
+
+ # Remove runtime dependencies on libraries
+ postConfigure = ''
+ sed -i 's|^#define CONFIGURE_LINE.*$|#define CONFIGURE_LINE "<removed>"|g' config.h
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Cross-platform media player and streaming server";
+ homepage = "http://www.videolan.org/vlc/";
+ license = licenses.lgpl21Plus;
+ platforms = platforms.linux;
+ broken = if qtbase != null then versionAtLeast qtbase.version "5.15" else false;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen-ng/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen-ng/default.nix
new file mode 100644
index 000000000000..600bc715ffb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen-ng/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, pkg-config
+, qmake
+, qttools
+, gstreamer
+, libX11
+, qtbase
+, qtmultimedia
+, qtx11extras
+
+, gst-plugins-base
+, gst-plugins-good
+, gst-plugins-bad
+, gst-plugins-ugly
+}:
+mkDerivation rec {
+
+ pname = "vokoscreen-ng";
+ version = "3.0.5";
+
+ src = fetchFromGitHub {
+ owner = "vkohaupt";
+ repo = "vokoscreenNG";
+ rev = version;
+ sha256 = "1spyqw8h8bkc1prdb9aixiw5h3hk3gp2p0nj934bnwq04kmfp660";
+ };
+
+ patches = [
+ # Better linux integration
+ (fetchpatch {
+ url = "https://github.com/vkohaupt/vokoscreenNG/commit/0a3784095ecca582f7eb09551ceb34c309d83637.patch";
+ sha256 = "1iibimv8xfxxfk44kkbrkay37ibdndjvs9g53mxr8x8vrsp917bz";
+ })
+ ];
+
+ qmakeFlags = [ "src/vokoscreenNG.pro" ];
+
+ nativeBuildInputs = [ qttools pkg-config qmake ];
+ buildInputs = [
+ gstreamer
+ libX11
+ qtbase
+ qtmultimedia
+ qtx11extras
+
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugins-ugly
+ ];
+
+ postPatch = ''
+ substituteInPlace src/vokoscreenNG.pro \
+ --replace lrelease-qt5 lrelease
+ '';
+
+ postInstall = ''
+ qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+ '';
+
+ meta = with lib; {
+ description = "User friendly Open Source screencaster for Linux and Windows";
+ license = licenses.gpl2Plus;
+ homepage = "https://github.com/vkohaupt/vokoscreenNG";
+ maintainers = with maintainers; [ shamilton ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
new file mode 100644
index 000000000000..94d0de20ccf7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, mkDerivation
+, pkgconfig, qtbase, qttools, qmake, qtmultimedia, qtx11extras, alsaLib, libv4l, libXrandr
+, ffmpeg
+}:
+
+mkDerivation rec {
+
+ pname = "vokoscreen";
+ version = "2.5.8-beta";
+
+ src = fetchFromGitHub {
+ owner = "vkohaupt";
+ repo = "vokoscreen";
+ rev = version;
+ sha256 = "1a85vbsi53mhzva49smqwcs61c51wv3ic410nvb9is9nlsbifwan";
+ };
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+ buildInputs = [
+ alsaLib
+ libv4l
+ qtbase
+ qtmultimedia
+ qttools
+ qtx11extras
+ libXrandr
+ ];
+
+ patches = [
+ ./ffmpeg-out-of-box.patch
+ ];
+
+ preConfigure = ''
+ sed -i 's/lrelease-qt5/lrelease/g' vokoscreen.pro
+ '';
+
+ postConfigure = ''
+ substituteInPlace settings/QvkSettings.cpp --subst-var-by ffmpeg ${ffmpeg}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple GUI screencast recorder, using ffmpeg";
+ homepage = "https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html";
+ longDescription = ''
+ vokoscreen is an easy to use screencast creator to record
+ educational videos, live recordings of browser, installation,
+ videoconferences, etc.
+ '';
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.league ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen/ffmpeg-out-of-box.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen/ffmpeg-out-of-box.patch
new file mode 100644
index 000000000000..afcee3f9715f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/vokoscreen/ffmpeg-out-of-box.patch
@@ -0,0 +1,24 @@
+diff --git a/settings/QvkSettings.cpp b/settings/QvkSettings.cpp
+index 3008e62..07485bd 100644
+--- a/settings/QvkSettings.cpp
++++ b/settings/QvkSettings.cpp
+@@ -66,17 +66,8 @@ void QvkSettings::readAll()
+ Minimized = settings.value( "Minimized", 0 ).toUInt();
+ MinimizedByStart = settings.value( "MinimizedByStart", 0 ).toUInt();
+ Countdown = settings.value( "Countdown", 0 ).toUInt();
+- QFile file;
+- if ( file.exists( qApp->applicationDirPath().append( "/bin/ffmpeg" ) ) == true )
+- {
+- vokoscreenWithLibs = true;
+- Recorder = qApp->applicationDirPath().append( "/bin/ffmpeg" );
+- }
+- else
+- {
+- vokoscreenWithLibs = false;
+- Recorder = settings.value( "Recorder", "ffmpeg" ).toString();
+- }
++ vokoscreenWithLibs = true;
++ Recorder = settings.value( "Recorder", "@ffmpeg@/bin/ffmpeg" ).toString();
+ settings.endGroup();
+
+ settings.beginGroup( "Videooptions" );
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/w_scan/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/w_scan/default.nix
new file mode 100644
index 000000000000..7710c7d67a31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/w_scan/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "w_scan";
+ version = "20170107";
+
+ src = fetchurl {
+ url = "http://wirbel.htpc-forum.de/w_scan/${pname}-${version}.tar.bz2";
+ sha256 = "1zkgnj2sfvckix360wwk1v5s43g69snm45m0drnzyv7hgf5g7q1q";
+ };
+
+ meta = {
+ description = "Small CLI utility to scan DVB and ATSC transmissions";
+ homepage = "http://wirbel.htpc-forum.de/w_scan/index_en.html";
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.nico202 ] ;
+ license = stdenv.lib.licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/webcamoid/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/webcamoid/default.nix
new file mode 100644
index 000000000000..a0d25f2ec1ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/webcamoid/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchFromGitHub, pkgconfig, libxcb, mkDerivation, qmake
+, qtbase, qtdeclarative, qtquickcontrols, qtquickcontrols2
+, ffmpeg-full, gst_all_1, libpulseaudio, alsaLib, jack2
+, v4l-utils }:
+mkDerivation rec {
+ pname = "webcamoid";
+ version = "8.7.1";
+
+ src = fetchFromGitHub {
+ sha256 = "1d8g7mq0wf0ycds87xpdhr3zkljgjmb94n3ak9kkxj2fqp9242d2";
+ rev = version;
+ repo = "webcamoid";
+ owner = "webcamoid";
+ };
+
+ buildInputs = [
+ libxcb
+ qtbase qtdeclarative qtquickcontrols qtquickcontrols2
+ ffmpeg-full
+ gst_all_1.gstreamer gst_all_1.gst-plugins-base
+ alsaLib libpulseaudio jack2
+ v4l-utils
+ ];
+
+ nativeBuildInputs = [ pkgconfig qmake ];
+
+ qmakeFlags = [
+ "Webcamoid.pro"
+ "INSTALLQMLDIR=${placeholder "out"}/lib/qt/qml"
+ ];
+
+ meta = with lib; {
+ description = "Webcam Capture Software";
+ longDescription = "Webcamoid is a full featured and multiplatform webcam suite.";
+ homepage = "https://github.com/webcamoid/webcamoid/";
+ license = [ licenses.gpl3Plus ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ robaca ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
new file mode 100644
index 000000000000..961cb403f13c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -0,0 +1,96 @@
+{
+ alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype,
+ gdk-pixbuf, glib, gnome3, libX11, libXScrnSaver, libXcomposite, libXcursor,
+ libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst,
+ libxcb, nspr, nss, stdenv, udev, libuuid, pango, at-spi2-atk, at-spi2-core
+}:
+
+ let
+ rpath = stdenv.lib.makeLibraryPath ([
+ alsaLib
+ atk
+ at-spi2-core
+ at-spi2-atk
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gnome3.gtk
+ pango
+ libuuid
+ libX11
+ libXScrnSaver
+ libXcomposite
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXtst
+ libxcb
+ nspr
+ nss
+ stdenv.cc.cc
+ udev
+ ]);
+ in stdenv.mkDerivation rec {
+ pname = "webtorrent-desktop";
+ version = "0.21.0";
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchzip {
+ url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v${version}/WebTorrent-v${version}-linux.zip";
+ sha256 = "13gd8isq2l10kibsc1bsc15dbgpnwa7nw4cwcamycgx6pfz9a852";
+ }
+ else
+ throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}";
+ desktopFile = fetchurl {
+ url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/applications/webtorrent-desktop.desktop";
+ sha256 = "1v16dqbxqds3cqg3xkzxsa5fyd8ssddvjhy9g3i3lz90n47916ca";
+ };
+ icon256File = fetchurl {
+ url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/256x256/apps/webtorrent-desktop.png";
+ sha256 = "1dapxvvp7cx52zhyaby4bxm4rll9xc7x3wk8k0il4g3mc7zzn3yk";
+ };
+ icon48File = fetchurl {
+ url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png";
+ sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4";
+ };
+ phases = [ "unpackPhase" "installPhase" ];
+ nativeBuildInputs = [ dpkg ];
+ installPhase = ''
+ mkdir -p $out/share/{applications,icons/hicolor/{48x48,256x256}/apps}
+ cp -R . $out/libexec
+
+ # Patch WebTorrent
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath ${rpath}:$out/libexec $out/libexec/WebTorrent
+
+ # Symlink to bin
+ mkdir -p $out/bin
+ ln -s $out/libexec/WebTorrent $out/bin/WebTorrent
+
+ cp $icon48File $out/share/icons/hicolor/48x48/apps/webtorrent-desktop.png
+ cp $icon256File $out/share/icons/hicolor/256x256/apps/webtorrent-desktop.png
+ ## Fix the desktop link
+ substitute $desktopFile $out/share/applications/webtorrent-desktop.desktop \
+ --replace /opt/webtorrent-desktop $out/libexec
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Streaming torrent app for Mac, Windows, and Linux";
+ homepage = "https://webtorrent.io/desktop";
+ license = licenses.mit;
+ maintainers = [ maintainers.flokli ];
+ platforms = [
+ "x86_64-linux"
+ ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/wf-recorder/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/wf-recorder/default.nix
new file mode 100644
index 000000000000..09b67149f5a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/wf-recorder/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland, scdoc
+, wayland-protocols, ffmpeg, x264, libpulseaudio, ocl-icd, opencl-headers
+}:
+
+stdenv.mkDerivation rec {
+ pname = "wf-recorder";
+ version = "0.2.1";
+
+ src = fetchFromGitHub {
+ owner = "ammen99";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1cw6kpcbl33wh95pvy32xrsrm6kkk1awccr3phyh885xjs3b3iim";
+ };
+
+ nativeBuildInputs = [ meson ninja pkg-config wayland scdoc ];
+ buildInputs = [
+ wayland-protocols ffmpeg x264 libpulseaudio ocl-icd opencl-headers
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Utility program for screen recording of wlroots-based compositors";
+ inherit (src.meta) homepage;
+ changelog = "https://github.com/ammen99/wf-recorder/releases/tag/v${version}";
+ license = licenses.mit;
+ maintainers = with maintainers; [ primeos CrazedProgrammer ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/wxcam/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/wxcam/default.nix
new file mode 100644
index 000000000000..32712d5b9b07
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/wxcam/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl
+, pkgconfig
+, intltool
+, libX11, libXv, libSM
+, gtk, libglade
+, wxGTK
+, perlPackages
+, xvidcore
+, mjpegtools
+, alsaLib
+, libv4l
+, cimg }:
+
+stdenv.mkDerivation rec {
+
+ pname = "wxcam";
+ version = "1.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/wxcam/wxcam/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1765bvc65fpzn9ycnnj5hais9xkx9v0sm6a878d35x54bpanr859";
+ };
+
+ buildInputs = with stdenv.lib;
+ [ pkgconfig intltool libX11 libXv libSM gtk libglade wxGTK perlPackages.XMLParser xvidcore mjpegtools alsaLib libv4l cimg ];
+
+ NIX_CFLAGS_COMPILE="-I ${cimg}/include/cimg";
+
+ postUnpack = ''
+ sed -ie 's|/usr/share/|'"$out/share/"'|g' $sourceRoot/Makefile.in
+ '';
+
+ installPhase = ''
+ make install prefix="$out" wxcamdocdir="$out/share/doc/wxcam"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An open-source, wxGTK-based webcam app for Linux";
+ longDescription = ''
+ wxCam is a webcam application for linux. It supports video recording
+ (avi uncompressed and Xvid formats), snapshot taking, and some special
+ commands for philips webcams, so you can also use it for astronomy purposes.
+ It supports both video4linux 1 and 2 drivers,
+ so it should work on a very large number of devices.
+ '';
+ homepage = "http://wxcam.sourceforge.net/";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/xawtv/0001-Fix-build-for-glibc-2.32.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/xawtv/0001-Fix-build-for-glibc-2.32.patch
new file mode 100644
index 000000000000..227559f1f91c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/xawtv/0001-Fix-build-for-glibc-2.32.patch
@@ -0,0 +1,63 @@
+From 009c426ab37ef7f8d9d8e30f45096225203d694a Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Tue, 11 Aug 2020 11:27:21 +0200
+Subject: [PATCH] Fix build for glibc-2.32
+
+The `sys_siglist`-array has been removed. Instead, `strsignal` should be
+used.
+---
+ console/fbtools.c | 2 +-
+ console/record.c | 2 +-
+ x11/rootv.c | 4 ++--
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/console/fbtools.c b/console/fbtools.c
+index 9f876df..07739ff 100644
+--- a/console/fbtools.c
++++ b/console/fbtools.c
+@@ -520,6 +520,6 @@ fb_catch_exit_signals(void)
+
+ /* cleanup */
+ fb_cleanup();
+- fprintf(stderr,"Oops: %s\n",sys_siglist[termsig]);
++ fprintf(stderr,"Oops: %s\n",strsignal(termsig));
+ exit(42);
+ }
+diff --git a/console/record.c b/console/record.c
+index 685221b..90f0c85 100644
+--- a/console/record.c
++++ b/console/record.c
+@@ -429,7 +429,7 @@ ctrlc(int signal)
+ {
+ if (verbose)
+ fprintf(stderr,"\n%s - exiting\n",
+- sys_siglist[signal]);
++ strsignal(signal));
+ stop = 1;
+ }
+
+diff --git a/x11/rootv.c b/x11/rootv.c
+index 60a8406..4bf458b 100644
+--- a/x11/rootv.c
++++ b/x11/rootv.c
+@@ -133,7 +133,7 @@ catch_sig(int signal)
+ termsig = signal;
+ if (verbose)
+ fprintf(stderr,"received signal %d [%s]\n",
+- termsig,sys_siglist[termsig]);
++ termsig,strsignal(termsig));
+ }
+
+ static void usage(FILE *fp)
+@@ -422,7 +422,7 @@ main(int argc, char *argv[])
+ }
+ if (verbose && termsig)
+ fprintf(stderr,"exiting on signal %d [%s]\n",
+- termsig,sys_siglist[termsig]);
++ termsig,strsignal(termsig));
+ if (do_mute && have_mute)
+ XvSetPortAttribute(dpy,port,XV_MUTE,1);
+ XvStopVideo(dpy,port,win);
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/xawtv/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/xawtv/default.nix
new file mode 100644
index 000000000000..ee2f811cb4a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/xawtv/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, fetchurl
+, ncurses
+, libjpeg
+, libX11
+, libXt
+, alsaLib
+, aalib
+, libXft
+, xorgproto
+, libv4l
+, libFS
+, libXaw
+, libXpm
+, libXext
+, libSM
+, libICE
+, perl
+}:
+
+stdenv.mkDerivation rec {
+ name = "xawtv-3.107";
+
+ src = fetchurl {
+ url = "https://linuxtv.org/downloads/xawtv/${name}.tar.bz2";
+ sha256 = "055p0wia0xsj073l8mg4ifa6m81dmv6p45qyh99brramq5iylfy5";
+ };
+
+ patches = [
+ ./0001-Fix-build-for-glibc-2.32.patch
+ ];
+
+ buildInputs = [
+ ncurses
+ libjpeg
+ libX11
+ libXt
+ libXft
+ xorgproto
+ libFS
+ perl
+ alsaLib
+ aalib
+ libXaw
+ libXpm
+ libXext
+ libSM
+ libICE
+ libv4l
+ ];
+
+ makeFlags = [
+ "SUID_ROOT=" # do not try to setuid
+ "resdir=${placeholder ''out''}/share/X11"
+ ];
+
+ meta = {
+ description = "TV application for Linux with apps and tools such as a teletext browser";
+ license = stdenv.lib.licenses.gpl2;
+ homepage = "https://www.kraxel.org/blog/linux/xawtv/";
+ maintainers = with stdenv.lib.maintainers; [ domenkozar ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/xine-ui/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/xine-ui/default.nix
new file mode 100644
index 000000000000..f52db04928a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/xine-ui/default.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchurl, pkgconfig, xorg, libpng, xineLib, readline, ncurses, curl
+, lirc, shared-mime-info, libjpeg }:
+
+stdenv.mkDerivation rec {
+ name = "xine-ui-0.99.12";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xine/${name}.tar.xz";
+ sha256 = "10zmmss3hm8gjjyra20qhdc0lb1m6sym2nb2w62bmfk8isfw9gsl";
+ };
+
+ nativeBuildInputs = [ pkgconfig shared-mime-info ];
+
+ buildInputs =
+ [ xineLib libpng readline ncurses curl lirc libjpeg
+ xorg.xlibsWrapper xorg.libXext xorg.libXv xorg.libXxf86vm xorg.libXtst xorg.xorgproto
+ xorg.libXinerama xorg.libXi xorg.libXft
+ ];
+
+ patchPhase = ''sed -e '/curl\/types\.h/d' -i src/xitk/download.c'';
+
+ configureFlags = [ "--with-readline=${readline.dev}" ];
+
+ LIRC_CFLAGS="-I${lirc}/include";
+ LIRC_LIBS="-L ${lirc}/lib -llirc_client";
+#NIX_LDFLAGS = "-lXext -lgcc_s";
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.xine-project.org/";
+ description = "Xlib-based interface to Xine, a video player";
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/xscast/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/xscast/default.nix
new file mode 100644
index 000000000000..f9e6a3d6521f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/xscast/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, makeWrapper, ffmpeg_3, imagemagick, dzen2, xorg }:
+
+stdenv.mkDerivation {
+ pname = "xscast-unstable";
+ version = "2016-07-26";
+
+ src = fetchFromGitHub {
+ owner = "KeyboardFire";
+ repo = "xscast";
+ rev = "9e6fd3c28d3f5ae630619f6dbccaf1f6ca594b21";
+ sha256 = "0br27bq9bpglfdpv63h827bipgvhlh10liyhmhcxls4227kagz72";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 xscast.sh $out/bin/xscast
+ install -Dm644 xscast.1 $out/share/man/man1/xscast.1
+ patchShebangs $out/bin
+
+ wrapProgram "$out/bin/xscast" \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ ffmpeg_3 dzen2 xorg.xwininfo xorg.xinput xorg.xmodmap imagemagick ]}
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/KeyboardFire/xscast";
+ license = licenses.mit;
+ description = "Screencasts of windows with list of keystrokes overlayed";
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/xvidcap/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/xvidcap/default.nix
new file mode 100644
index 000000000000..20d4d84741cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/xvidcap/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, perlPackages, pkgconfig, gtk2
+, scrollkeeper, libglade, libXmu, libX11, libXext, gettext
+, lame, libXfixes, libXdamage }:
+
+stdenv.mkDerivation {
+ name = "xvidcap-1.1.7";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xvidcap/xvidcap-1.1.7.tar.gz";
+ sha256 = "0p8rhpyhxgy37crf1xk1046z4p663jg7ww776jw92pld3s024ihm";
+ };
+
+ patches = [ ./xlib.patch ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ gtk2 scrollkeeper
+ libglade libXmu gettext lame libXdamage libXfixes libXext libX11
+ ] ++ (with perlPackages; [ perl XMLParser ]);
+
+ # !!! don't know why this is necessary
+ NIX_LDFLAGS = "-lXext -lX11 -lz -lgcc_s";
+
+ meta = with stdenv.lib; {
+ description = "Screencast video catpuring tool";
+ homepage = "http://xvidcap.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/xvidcap/xlib.patch b/infra/libkookie/nixpkgs/pkgs/applications/video/xvidcap/xlib.patch
new file mode 100644
index 000000000000..eb97854386b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/xvidcap/xlib.patch
@@ -0,0 +1,15 @@
+diff --git a/src/app_data.c b/src/app_data.c
+index 5a44363..482b115 100644
+--- a/src/app_data.c
++++ b/src/app_data.c
+@@ -52,9 +52,9 @@
+ #include <pthread.h>
+ #include <signal.h>
+
++#include <X11/Xlib.h>
+ #ifdef HAVE_LIBXFIXES
+ #include <X11/X.h>
+-#include <X11/Xlib.h>
+ #include <X11/Xlibint.h>
+ #include <X11/Xproto.h>
+ #include <X11/Xutil.h>
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/8086tiny/builder.sh b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/8086tiny/builder.sh
new file mode 100644
index 000000000000..210f11e1328d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/8086tiny/builder.sh
@@ -0,0 +1,30 @@
+
+source $stdenv/setup
+
+unpackPhase
+cd $sourceRoot
+
+make 8086tiny
+
+if [ $bios ]; then
+ cd bios_source
+ nasm -f bin bios.asm -o bios
+ cd ..
+fi
+
+mkdir -p $out/bin $out/share/$name $out/share/doc/$name/images
+
+install -m 755 8086tiny $out/bin
+install -m 644 fd.img $out/share/$name/8086tiny-floppy.img
+install -m 644 bios_source/bios.asm $out/share/$name/8086tiny-bios-src.asm
+install -m 644 docs/8086tiny.css $out/share/doc/$name
+install -m 644 docs/doc.html $out/share/doc/$name
+for i in docs/images/*.gif
+do
+ install -m 644 $i $out/share/doc/$name/images
+done
+if [ $bios ]; then
+ install -m 644 bios_source/bios $out/share/$name/8086tiny-bios
+else
+ install -m 644 bios $out/share/$name/8086tiny-bios
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/8086tiny/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/8086tiny/default.nix
new file mode 100644
index 000000000000..db76efb96e5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/8086tiny/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub
+, localBios ? true, nasm ? null
+, sdlSupport ? true, SDL ? null }:
+
+assert sdlSupport -> (SDL != null);
+
+stdenv.mkDerivation rec {
+
+ pname = "8086tiny";
+ version = "1.25";
+
+ src = fetchFromGitHub {
+ owner = "adriancable";
+ repo = pname;
+ rev = "c79ca2a34d96931d55ef724c815b289d0767ae3a";
+ sha256 = "00aydg8f28sgy8l3rd2a7jvp56lx3b63hhak43p7g7vjdikv495w";
+ };
+
+ buildInputs = with stdenv.lib;
+ optionals localBios [ nasm ]
+ ++ optionals sdlSupport [ SDL ];
+
+ bios = localBios;
+
+ builder = ./builder.sh;
+
+ meta = with stdenv.lib; {
+ description = "An open-source small 8086 emulator";
+ longDescription = ''
+ 8086tiny is a tiny, open-source (MIT), portable (little-endian hosts)
+ Intel PC emulator, powerful enough to run DOS, Windows 3.0, Excel, MS
+ Flight Simulator, AutoCAD, Lotus 1-2-3, and similar applications. 8086tiny
+ emulates a "late 80's era" PC XT-type machine.
+
+ 8086tiny is based on an IOCCC 2013 winning entry. In fact that is the
+ "unobfuscated" version :)
+ '';
+ homepage = "https://github.com/adriancable/8086tiny";
+ license = licenses.mit;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
new file mode 100644
index 000000000000..6301182771fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib, edk2, util-linux, nasm, iasl
+, csmSupport ? false, seabios ? null
+, secureBoot ? false
+}:
+
+assert csmSupport -> seabios != null;
+
+let
+
+ projectDscPath = if stdenv.isi686 then
+ "OvmfPkg/OvmfPkgIa32.dsc"
+ else if stdenv.isx86_64 then
+ "OvmfPkg/OvmfPkgX64.dsc"
+ else if stdenv.isAarch64 then
+ "ArmVirtPkg/ArmVirtQemu.dsc"
+ else
+ throw "Unsupported architecture";
+
+ version = lib.getVersion edk2;
+in
+
+edk2.mkDerivation projectDscPath {
+ name = "OVMF-${version}";
+
+ outputs = [ "out" "fd" ];
+
+ buildInputs = [ util-linux nasm iasl ];
+
+ hardeningDisable = [ "format" "stackprotector" "pic" "fortify" ];
+
+ buildFlags =
+ lib.optional secureBoot "-DSECURE_BOOT_ENABLE=TRUE"
+ ++ lib.optionals csmSupport [ "-D CSM_ENABLE" "-D FD_SIZE_2MB" ];
+
+ postPatch = lib.optionalString csmSupport ''
+ cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
+ '';
+
+ postFixup = if stdenv.isAarch64 then ''
+ mkdir -vp $fd/FV
+ mkdir -vp $fd/AAVMF
+ mv -v $out/FV/QEMU_{EFI,VARS}.fd $fd/FV
+
+ # Use Debian dir layout: https://salsa.debian.org/qemu-team/edk2/blob/debian/debian/rules
+ dd of=$fd/FV/AAVMF_CODE.fd if=/dev/zero bs=1M count=64
+ dd of=$fd/FV/AAVMF_CODE.fd if=$fd/FV/QEMU_EFI.fd conv=notrunc
+ dd of=$fd/FV/AAVMF_VARS.fd if=/dev/zero bs=1M count=64
+
+ # Also add symlinks for Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec
+ ln -s $fd/FV/AAVMF_CODE.fd $fd/AAVMF/QEMU_EFI-pflash.raw
+ ln -s $fd/FV/AAVMF_VARS.fd $fd/AAVMF/vars-template-pflash.raw
+ '' else ''
+ mkdir -vp $fd/FV
+ mv -v $out/FV/OVMF{,_CODE,_VARS}.fd $fd/FV
+ '';
+
+ dontPatchELF = true;
+
+ meta = {
+ description = "Sample UEFI firmware for QEMU and KVM";
+ homepage = "https://github.com/tianocore/tianocore.github.io/wiki/OVMF";
+ license = stdenv.lib.licenses.bsd2;
+ platforms = ["x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix
new file mode 100644
index 000000000000..9177f2645028
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, cmake, fetchFromGitHub, libvncserver, qemu, qtbase, stdenv
+}:
+
+mkDerivation rec {
+ pname = "aqemu";
+ version = "0.9.2";
+
+ src = fetchFromGitHub {
+ owner = "tobimensch";
+ repo = "aqemu";
+ rev = "v${version}";
+ sha256 = "1h1mcw8x0jir5p39bs8ka0lcisiyi4jq61fsccgb9hsvl1i8fvk5";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ libvncserver qtbase qemu ];
+
+ meta = with stdenv.lib; {
+ description = "A virtual machine manager GUI for qemu";
+ homepage = "https://github.com/tobimensch/aqemu";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ hrdinka ];
+ platforms = with platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/arion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/arion/default.nix
new file mode 100644
index 000000000000..f144ec976779
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/arion/default.nix
@@ -0,0 +1,83 @@
+{ pkgs
+, lib
+, haskellPackages
+, haskell
+, runCommand
+}:
+
+let
+
+ /* This derivation builds the arion tool.
+
+ It is based on the arion-compose Haskell package, but adapted and extended to
+ - have the correct name
+ - have a smaller closure size
+ - have functions to use Arion from inside Nix: arion.eval and arion.build
+ - make it self-contained by including docker-compose
+ */
+ arion =
+ justStaticExecutables (
+ overrideCabal
+ arion-compose
+ cabalOverrides
+ );
+
+ inherit (haskell.lib) justStaticExecutables overrideCabal;
+
+ inherit (haskellPackages) arion-compose;
+
+ cabalOverrides = o: {
+ buildTools = (o.buildTools or []) ++ [pkgs.makeWrapper];
+ passthru = (o.passthru or {}) // {
+ inherit eval build;
+ };
+ # Patch away the arion-compose name. Unlike the Haskell library, the program
+ # is called arion (arion was already taken on hackage).
+ pname = "arion";
+ src = arion-compose.src;
+
+ # PYTHONPATH
+ #
+ # We close off the python module search path!
+ #
+ # Accepting directories from the environment into the search path
+ # tends to break things. Docker Compose does not have a plugin
+ # system as far as I can tell, so I don't expect this to break a
+ # feature, but rather to make the program more robustly self-
+ # contained.
+
+ postInstall = ''${o.postInstall or ""}
+ mkdir -p $out/libexec
+ mv $out/bin/arion $out/libexec
+ makeWrapper $out/libexec/arion $out/bin/arion \
+ --unset PYTHONPATH \
+ --prefix PATH : ${lib.makeBinPath [ pkgs.docker-compose ]} \
+ ;
+ '';
+ };
+
+ # Unpacked sources for evaluation by `eval`
+ srcUnpacked = runCommand "arion-src" {}
+ "mkdir $out; tar -C $out --strip-components=1 -xf ${arion-compose.src}";
+
+ /* Function for evaluating a composition
+
+ Re-uses this Nixpkgs evaluation instead of `arion-pkgs.nix`.
+
+ Returns the module system's `config` and `options` variables.
+ */
+ eval = args@{...}:
+ import (srcUnpacked + "/src/nix/eval-composition.nix")
+ ({ inherit pkgs; } // args);
+
+ /* Function to derivation of the docker compose yaml file
+ NOTE: The output will change: https://github.com/hercules-ci/arion/issues/82
+
+ This function is particularly useful on CI, although the references
+ to image tarballs may not always be desirable.
+ */
+ build = args@{...}:
+ let composition = eval args;
+ in composition.config.out.dockerComposeYaml;
+
+in arion
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/bochs-2.6.11-glibc-2.26.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/bochs-2.6.11-glibc-2.26.patch
new file mode 100644
index 000000000000..e662913574db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/bochs-2.6.11-glibc-2.26.patch
@@ -0,0 +1,13 @@
+diff -Naur bochs-2.6.10.orig/iodev/network/slirp/slirp.h bochs-2.6.10.mod/iodev/network/slirp/slirp.h
+--- bochs-2.6.10.orig/iodev/network/slirp/slirp.h 2019-11-02 16:30:39.843938000 -0300
++++ bochs-2.6.10.mod/iodev/network/slirp/slirp.h 2019-12-29 12:55:49.541630697 -0300
+@@ -44,8 +44,8 @@
+ #endif
+
+ #include <sys/types.h>
+-#if defined(__OpenBSD__) || defined(__linux__)
+ #include <stdint.h>
++#if defined(__OpenBSD__) || defined(__linux__)
+ #include <sys/wait.h>
+ #endif
+ #ifdef HAVE_SYS_BITYPES_H
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/default.nix
new file mode 100644
index 000000000000..e9982d61391d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/default.nix
@@ -0,0 +1,129 @@
+{ stdenv, fetchurl
+, pkgconfig, libtool
+, gtk2, libGLU, libGL, readline, libX11, libXpm
+, docbook_xml_dtd_45, docbook_xsl
+, sdlSupport ? true, SDL2 ? null
+, termSupport ? true, ncurses ? null
+, wxSupport ? true, wxGTK ? null
+, wgetSupport ? false, wget ? null
+, curlSupport ? false, curl ? null
+}:
+
+assert sdlSupport -> (SDL2 != null);
+assert termSupport -> (ncurses != null);
+assert wxSupport -> (gtk2 != null && wxGTK != null);
+assert wgetSupport -> (wget != null);
+assert curlSupport -> (curl != null);
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+ pname = "bochs";
+ version = "2.6.11";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/bochs/bochs/${version}/${pname}-${version}.tar.gz";
+ sha256 = "0ql8q6y1k356li1g9gbvl21448mlxphxxi6kjb2b3pxvzd0pp2b3";
+ };
+
+ patches = [ ./bochs-2.6.11-glibc-2.26.patch ./fix-build-smp.patch ];
+
+ buildInputs =
+ [ pkgconfig libtool gtk2 libGLU libGL readline libX11 libXpm docbook_xml_dtd_45 docbook_xsl ]
+ ++ optionals termSupport [ ncurses ]
+ ++ optionals sdlSupport [ SDL2 ]
+ ++ optionals wxSupport [ wxGTK ]
+ ++ optionals wgetSupport [ wget ]
+ ++ optionals curlSupport [ curl ];
+
+ configureFlags = [
+ "--with-x=yes"
+ "--with-x11=yes"
+
+ "--with-rfb=no"
+ "--with-vncsrv=no"
+ "--with-svga=no" # it doesn't compile on NixOS
+
+ # These will always be "yes" on NixOS
+ "--enable-ltdl-install=yes"
+ "--enable-readline=yes"
+ "--enable-all-optimizations=yes"
+ "--enable-logging=yes"
+ "--enable-xpm=yes"
+
+ # ... whereas these, always "no"!
+ "--enable-cpp=no"
+ "--enable-instrumentation=no"
+
+ "--enable-docbook=no" # Broken - it requires docbook2html
+
+ # Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
+ "--enable-3dnow=no"
+ "--enable-monitor-mwait=no"
+ "--enable-raw-serial=no" ]
+ # Boolean flags
+ ++ optionals termSupport [ "--with-term" ]
+ ++ optionals sdlSupport [ "--with-sdl2" ]
+ ++ optionals wxSupport [ "--with-wx" ]
+ # These are completely configurable, and they don't depend of external tools
+ ++ [ "--enable-cpu-level=6" # from 3 to 6
+ "--enable-largefile"
+ "--enable-idle-hack"
+ "--enable-plugins=no" # Plugins are a bit buggy in Bochs
+ "--enable-a20-pin"
+ "--enable-x86-64"
+ "--enable-smp"
+ "--enable-large-ramfile"
+ "--enable-repeat-speedups"
+ "--enable-handlers-chaining"
+ "--enable-trace-linking"
+ "--enable-configurable-msrs"
+ "--enable-show-ips"
+ "--enable-debugger" #conflicts with gdb-stub option
+ "--enable-disasm"
+ "--enable-debugger-gui"
+ "--enable-gdb-stub=no" # conflicts with debugger option
+ "--enable-iodebug"
+ "--enable-fpu"
+ "--enable-svm"
+ "--enable-avx"
+ "--enable-evex"
+ "--enable-x86-debugger"
+ "--enable-pci"
+ "--enable-usb"
+ "--enable-usb-ohci"
+ "--enable-usb-ehci"
+ "--enable-usb-xhci"
+ "--enable-ne2000"
+ "--enable-pnic"
+ "--enable-e1000"
+ "--enable-clgd54xx"
+ "--enable-voodoo"
+ "--enable-cdrom"
+ "--enable-sb16"
+ "--enable-es1370"
+ "--enable-busmouse" ];
+
+ NIX_CFLAGS_COMPILE="-I${gtk2.dev}/include/gtk-2.0/ -I${libtool}/include/";
+ NIX_LDFLAGS="-L${libtool.lib}/lib";
+
+ hardeningDisable = [ "format" ];
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "An open-source IA-32 (x86) PC emulator";
+ longDescription = ''
+ Bochs is an open-source (LGPL), highly portable IA-32 PC emulator, written
+ in C++, that runs on most popular platforms. It includes emulation of the
+ Intel x86 CPU, common I/O devices, and a custom BIOS.
+ '';
+ homepage = "http://bochs.sourceforge.net/";
+ license = licenses.lgpl2Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = platforms.unix;
+ };
+}
+# TODO: plugins
+# TODO: svga support - the Bochs sources explicitly cite /usr/include/vga.h
+# TODO: a better way to organize the options
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/fix-build-smp.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/fix-build-smp.patch
new file mode 100644
index 000000000000..faa2acfa5129
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/bochs/fix-build-smp.patch
@@ -0,0 +1,21 @@
+Description: A fix for SMP-enable configurations
+Inspired in: https://sourceforge.net/p/bochs/code/13778/
+
+============
+diff -Naur bochs-2.6.11-old/bx_debug/dbg_main.cc bochs-2.6.11-new/bx_debug/dbg_main.cc
+--- bochs-2.6.11-old/bx_debug/dbg_main.cc 2019-12-20 04:57:59.818924000 -0300
++++ bochs-2.6.11-new/bx_debug/dbg_main.cc 2020-03-30 23:20:29.402195707 -0300
+@@ -1494,11 +1494,11 @@
+ {
+ char cpu_param_name[16];
+
+- Bit32u index = BX_ITLB_INDEX_OF(laddr);
++ Bit32u index = BX_CPU(dbg_cpu)->ITLB.get_index_of(laddr);
+ sprintf(cpu_param_name, "ITLB.entry%d", index);
+ bx_dbg_show_param_command(cpu_param_name, 0);
+
+- index = BX_DTLB_INDEX_OF(laddr, 0);
++ index = BX_CPU(dbg_cpu)->DTLB.get_index_of(laddr);
+ sprintf(cpu_param_name, "DTLB.entry%d", index);
+ bx_dbg_show_param_command(cpu_param_name, 0);
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
new file mode 100644
index 000000000000..d6cbc25d883b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, python3, python3Packages, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }:
+
+stdenv.mkDerivation rec {
+
+ version = "0.20";
+ pname = "charliecloud";
+
+ src = fetchFromGitHub {
+ owner = "hpc";
+ repo = "charliecloud";
+ rev = "v${version}";
+ sha256 = "15ihffwhpjnzgz0ir5vc9la4fwkqj91vmrcsb2r58ikq7h9sk45j";
+ };
+
+ nativeBuildInputs = [ autoreconfHook makeWrapper ];
+ buildInputs = [
+ docker
+ (python3.withPackages (ps: [ ps.lark-parser ps.requests ]))
+ ];
+
+ configureFlags = let
+ pythonEnv = python3.withPackages (ps: [ ps.lark-parser ps.requests ]);
+ in [
+ "--with-python=${pythonEnv}/bin/python3"
+ ];
+
+ preConfigure = ''
+ patchShebangs test/
+ substituteInPlace configure.ac --replace "/usr/bin/env" "${coreutils}/bin/env"
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "LIBEXEC_DIR=lib/charliecloud"
+ ];
+
+ # Charliecloud calls some external system tools.
+ # Here we wrap those deps so they are resolved inside nixpkgs.
+ postInstall = ''
+ for file in $out/bin/* ; do \
+ wrapProgram $file --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils docker gnused gnutar gzip findutils sudo ]}
+ done
+ '';
+
+ passthru.tests.charliecloud = nixosTests.charliecloud;
+
+ meta = {
+ description = "User-defined software stacks (UDSS) for high-performance computing (HPC) centers";
+ longDescription = ''
+ Charliecloud uses Linux user namespaces to run containers with no
+ privileged operations or daemons and minimal configuration changes on
+ center resources. This simple approach avoids most security risks
+ while maintaining access to the performance and functionality already
+ on offer.
+ '';
+ homepage = "https://hpc.github.io/charliecloud";
+ license = stdenv.lib.licenses.asl20;
+ maintainers = [ stdenv.lib.maintainers.bzizou ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
new file mode 100644
index 000000000000..7a7378faa58b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
@@ -0,0 +1,53 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index e566ed25..a661a963 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -689,7 +689,7 @@ dependencies = [
+ "serde",
+ "serde_derive",
+ "serde_json",
+- "vfio-bindings 0.2.0 (git+https://github.com/rust-vmm/vfio-bindings)",
++ "vfio-bindings",
+ "vfio-ioctls",
+ "vm-allocator",
+ "vm-device",
+@@ -1346,17 +1346,12 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+ [[package]]
+ name = "vfio-bindings"
+ version = "0.2.0"
+-source = "git+https://github.com/rust-vmm/vfio-bindings#f08cbcbf4041c981441d9c036c49ebad5098ed1c"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
+ dependencies = [
+ "vmm-sys-util",
+ ]
+
+-[[package]]
+-name = "vfio-bindings"
+-version = "0.2.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
+-
+ [[package]]
+ name = "vfio-ioctls"
+ version = "0.1.0"
+@@ -1366,7 +1361,7 @@ dependencies = [
+ "kvm-bindings",
+ "kvm-ioctls",
+ "log 0.4.8",
+- "vfio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vfio-bindings",
+ "vm-memory",
+ "vmm-sys-util",
+ ]
+diff --git a/pci/Cargo.toml b/pci/Cargo.toml
+index 9c6955c7..4ecf8e6b 100644
+--- a/pci/Cargo.toml
++++ b/pci/Cargo.toml
+@@ -23,5 +23,5 @@ vm-memory = "0.2.1"
+ vm-migration = { path = "../vm-migration" }
+
+ [dependencies.vfio-bindings]
+-git = "https://github.com/rust-vmm/vfio-bindings"
++version = "0.2.0"
+ features = ["fam-wrappers"]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
new file mode 100644
index 000000000000..59c97c4a8dea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, rustPlatform, pkgconfig, openssl }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cloud-hypervisor";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "cloud-hypervisor";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "h2aWWjycTm84TS89/vhqnAvwOqeeSDtvvCt+Is6I0eI=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ];
+
+ cargoPatches = [ ./cargo-lock-vendor-fix.patch ];
+ cargoSha256 = "fOIB+qVDqAAgQPW3bK2NfST24GzYJeRXgaMFXyNPcPQ=";
+
+ meta = with lib; {
+ homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
+ description = "Open source Virtual Machine Monitor (VMM) that runs on top of KVM";
+ changelog = "https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v${version}";
+ license = with licenses; [ asl20 bsd3 ];
+ maintainers = with maintainers; [ offline ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cntr/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
new file mode 100644
index 000000000000..e3ab1c6c2f80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cntr";
+ version = "1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "Mic92";
+ repo = "cntr";
+ rev = version;
+ sha256 = "0dhfz7aj3cqi974ybf0axchih40rzrs9m8bxhwz1hgig57aisfc0";
+ };
+
+ cargoSha256 = "088drkpkgq8psv5j6igxyhfvvbalzg6nd98r9z0nxkawck5i2clz";
+
+ meta = with stdenv.lib; {
+ description = "A container debugging tool based on FUSE";
+ homepage = "https://github.com/Mic92/cntr";
+ license = licenses.mit;
+ # aarch64 support will be fixed soon
+ platforms = [ "x86_64-linux" ];
+ maintainers = [ maintainers.mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/conmon/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
new file mode 100644
index 000000000000..d2f1f2debe54
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, glib
+, glibc
+, systemd
+, nixosTests
+}:
+
+stdenv.mkDerivation rec {
+ pname = "conmon";
+ version = "2.0.21";
+
+ src = fetchFromGitHub {
+ owner = "containers";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "13g436s00bcwzs31qsx5rpgkbbyxd4zvx8mbkq10gkrsv4r04q23";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ glib systemd ]
+ ++ stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ passthru.tests = { inherit (nixosTests) cri-o podman; };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/containers/conmon";
+ description = "An OCI container runtime monitor";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ ] ++ teams.podman.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/containerd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
new file mode 100644
index 000000000000..cece3cc6b673
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
@@ -0,0 +1,54 @@
+{ lib, fetchFromGitHub, buildGoPackage, btrfs-progs, go-md2man, installShellFiles, util-linux, nixosTests }:
+
+with lib;
+
+buildGoPackage rec {
+ pname = "containerd";
+ version = "1.4.3";
+ # git commit for the above version's tag
+ commit = "269548fa27e0089a8b8278fc4fc781d7f65a939b";
+
+ src = fetchFromGitHub {
+ owner = "containerd";
+ repo = "containerd";
+ rev = "v${version}";
+ sha256 = "09xvhjg5f8h90w1y94kqqnqzhbhd62dcdd9wb9sdqakisjk6zrl0";
+ };
+
+ goPackagePath = "github.com/containerd/containerd";
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ go-md2man installShellFiles util-linux ];
+
+ buildInputs = [ btrfs-progs ];
+
+ buildFlags = [ "VERSION=v${version}" "REVISION=${commit}" ];
+
+ BUILDTAGS = []
+ ++ optional (btrfs-progs == null) "no_btrfs";
+
+ buildPhase = ''
+ cd go/src/${goPackagePath}
+ patchShebangs .
+ make binaries $buildFlags
+ '';
+
+ installPhase = ''
+ for b in bin/*; do
+ install -Dm555 $b $out/$b
+ done
+
+ make man
+ installManPage man/*.[1-9]
+ '';
+
+ passthru.tests = { inherit (nixosTests) docker; };
+
+ meta = {
+ homepage = "https://containerd.io/";
+ description = "A daemon to control runC";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline vdemeester ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
new file mode 100644
index 000000000000..54ffb036f3c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, btrfs-progs
+, buildGoModule
+, fetchFromGitHub
+, glibc
+, gpgme
+, installShellFiles
+, libapparmor
+, libseccomp
+, libselinux
+, lvm2
+, pkg-config
+, nixosTests
+}:
+
+buildGoModule rec {
+ pname = "cri-o";
+ version = "1.19.0";
+
+ src = fetchFromGitHub {
+ owner = "cri-o";
+ repo = "cri-o";
+ rev = "v${version}";
+ sha256 = "1lrr8y0k6609z4gb8cg277rq58sh0bqd2b4mzjlynyjdgp3xskfq";
+ };
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ outputs = [ "out" "man" ];
+ nativeBuildInputs = [ installShellFiles pkg-config ];
+
+ buildInputs = [
+ btrfs-progs
+ gpgme
+ libapparmor
+ libseccomp
+ libselinux
+ lvm2
+ ] ++ stdenv.lib.optionals (glibc != null) [ glibc glibc.static ];
+
+ BUILDTAGS = "apparmor seccomp selinux containers_image_openpgp containers_image_ostree_stub";
+ buildPhase = ''
+ make binaries docs BUILDTAGS="$BUILDTAGS"
+ '';
+
+ installPhase = ''
+ install -Dm755 bin/* -t $out/bin
+
+ for shell in bash fish zsh; do
+ installShellCompletion --$shell completions/$shell/*
+ done
+
+ installManPage docs/*.[1-9]
+ '';
+
+ passthru.tests = { inherit (nixosTests) cri-o; };
+
+ meta = with stdenv.lib; {
+ homepage = "https://cri-o.io";
+ description = ''
+ Open Container Initiative-based implementation of the
+ Kubernetes Container Runtime Interface
+ '';
+ license = licenses.asl20;
+ maintainers = with maintainers; [ ] ++ teams.podman.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix
new file mode 100644
index 000000000000..5aca291a6018
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix
@@ -0,0 +1,51 @@
+{ cri-o-unwrapped
+, runCommand
+, makeWrapper
+, lib
+, extraPackages ? []
+, cri-o
+, runc # Default container runtime
+, crun # Container runtime (default with cgroups v2 for podman/buildah)
+, conmon # Container runtime monitor
+, util-linux # nsenter
+, cni-plugins # not added to path
+, iptables
+}:
+
+let
+ cri-o = cri-o-unwrapped;
+
+ binPath = lib.makeBinPath ([
+ runc
+ crun
+ conmon
+ util-linux
+ iptables
+ ] ++ extraPackages);
+
+in runCommand cri-o.name {
+ name = "${cri-o.pname}-wrapper-${cri-o.version}";
+ inherit (cri-o) pname version passthru;
+
+ meta = builtins.removeAttrs cri-o.meta [ "outputsToInstall" ];
+
+ outputs = [
+ "out"
+ "man"
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+} ''
+ ln -s ${cri-o.man} $man
+
+ mkdir -p $out/bin
+ ln -s ${cri-o-unwrapped}/share $out/share
+
+ for p in ${cri-o-unwrapped}/bin/*; do
+ makeWrapper $p $out/bin/''${p##*/} \
+ --prefix PATH : ${binPath}
+ done
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.diff b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.diff
new file mode 100644
index 000000000000..f1aa50ee102c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/default-seccomp-policy-dir.diff
@@ -0,0 +1,15 @@
+diff --git a/src/crosvm.rs b/src/crosvm.rs
+index b7055df..5989c87 100644
+--- a/src/crosvm.rs
++++ b/src/crosvm.rs
+@@ -141,7 +141,9 @@ impl Default for Config {
+ x_display: None,
+ shared_dirs: Vec::new(),
+ sandbox: !cfg!(feature = "default-no-sandbox"),
+- seccomp_policy_dir: PathBuf::from(SECCOMP_POLICY_DIR),
++ seccomp_policy_dir: PathBuf::from(
++ option_env!("DEFAULT_SECCOMP_POLICY_DIR").unwrap_or(SECCOMP_POLICY_DIR),
++ ),
+ seccomp_log_failures: false,
+ cras_audio: false,
+ cras_capture: false,
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix
new file mode 100644
index 000000000000..38ce277bf3ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, lib, rustPlatform, fetchgit, runCommand, symlinkJoin
+, pkgconfig, minijail, dtc, libusb1, libcap, linux
+}:
+
+let
+
+ upstreamInfo = with builtins; fromJSON (readFile ./upstream-info.json);
+
+ arch = with stdenv.hostPlatform;
+ if isAarch64 then "arm"
+ else if isx86_64 then "x86_64"
+ else throw "no seccomp policy files available for host platform";
+
+ crosvmSrc = fetchgit {
+ inherit (upstreamInfo.components."chromiumos/platform/crosvm")
+ url rev sha256 fetchSubmodules;
+ };
+
+ adhdSrc = fetchgit {
+ inherit (upstreamInfo.components."chromiumos/third_party/adhd")
+ url rev sha256 fetchSubmodules;
+ };
+
+in
+
+ rustPlatform.buildRustPackage rec {
+ pname = "crosvm";
+ inherit (upstreamInfo) version;
+
+ unpackPhase = ''
+ runHook preUnpack
+
+ mkdir -p chromiumos/platform chromiumos/third_party
+
+ pushd chromiumos/platform
+ unpackFile ${crosvmSrc}
+ mv ${crosvmSrc.name} crosvm
+ popd
+
+ pushd chromiumos/third_party
+ unpackFile ${adhdSrc}
+ mv ${adhdSrc.name} adhd
+ popd
+
+ chmod -R u+w -- "$sourceRoot"
+
+ runHook postUnpack
+ '';
+
+ sourceRoot = "chromiumos/platform/crosvm";
+
+ patches = [
+ ./default-seccomp-policy-dir.diff
+ ];
+
+ cargoSha256 = "0lhivwvdihslwp81i3sa5q88p5hr83bzkvklrcgf6x73arwk8kdz";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ dtc libcap libusb1 minijail ];
+
+ postPatch = ''
+ sed -i "s|/usr/share/policy/crosvm/|$out/share/policy/|g" \
+ seccomp/*/*.policy
+ '';
+
+ preBuild = ''
+ export DEFAULT_SECCOMP_POLICY_DIR=$out/share/policy
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/policy/
+ cp seccomp/${arch}/* $out/share/policy/
+ '';
+
+ CROSVM_CARGO_TEST_KERNEL_BINARY =
+ lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform)
+ "${linux}/${stdenv.hostPlatform.platform.kernelTarget}";
+
+ passthru = {
+ inherit adhdSrc;
+ src = crosvmSrc;
+ updateScript = ./update.py;
+ };
+
+ meta = with lib; {
+ description = "A secure virtual machine monitor for KVM";
+ homepage = "https://chromium.googlesource.com/chromiumos/platform/crosvm/";
+ maintainers = with maintainers; [ qyliss ];
+ license = licenses.bsd3;
+ platforms = [ "aarch64-linux" "x86_64-linux" ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/update.py b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/update.py
new file mode 100755
index 000000000000..29e68b9f5790
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/update.py
@@ -0,0 +1,91 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -p nix-prefetch-git "python3.withPackages (ps: with ps; [ lxml ])"
+#! nix-shell -i python
+
+import base64
+import json
+import re
+import subprocess
+from codecs import iterdecode
+from os.path import dirname, splitext
+from lxml import etree
+from lxml.etree import HTMLParser
+from urllib.request import urlopen
+
+# ChromiumOS components required to build crosvm.
+components = ['chromiumos/platform/crosvm', 'chromiumos/third_party/adhd']
+
+git_root = 'https://chromium.googlesource.com/'
+manifest_versions = f'{git_root}chromiumos/manifest-versions'
+buildspecs_url = f'{manifest_versions}/+/refs/heads/master/full/buildspecs/'
+
+# CrOS version numbers look like this:
+# [<chrome-major-version>.]<tip-build>.<branch-build>.<branch-branch-build>
+#
+# As far as I can tell, branches are where internal Google
+# modifications are added to turn Chromium OS into Chrome OS, and
+# branch branches are used for fixes for specific devices. So for
+# Chromium OS they will always be 0. This is a best guess, and is not
+# documented.
+with urlopen('https://cros-updates-serving.appspot.com/') as resp:
+ document = etree.parse(resp, HTMLParser())
+ # bgcolor="lightgreen" is set on the most up-to-date version for
+ # each channel, so find a lightgreen cell in the "Stable" column.
+ (platform_version, chrome_version) = document.xpath("""
+ (//table[@id="cros-updates"]/tr/td[1 + count(
+ //table[@id="cros-updates"]/thead/tr[1]/th[text() = "Stable"]
+ /preceding-sibling::*)
+ ][@bgcolor="lightgreen"])[1]/text()
+ """)
+
+chrome_major_version = re.match(r'\d+', chrome_version)[0]
+chromeos_tip_build = re.match(r'\d+', platform_version)[0]
+
+# Find the most recent buildspec for the stable Chrome version and
+# Chromium OS build number. Its branch build and branch branch build
+# numbers will (almost?) certainly be 0. It will then end with an rc
+# number -- presumably these are release candidates, one of which
+# becomes the final release. Presumably the one with the highest rc
+# number.
+with urlopen(f'{buildspecs_url}{chrome_major_version}/?format=TEXT') as resp:
+ listing = base64.decodebytes(resp.read()).decode('utf-8')
+ buildspecs = [(line.split('\t', 1)[1]) for line in listing.splitlines()]
+ buildspecs = [s for s in buildspecs if s.startswith(chromeos_tip_build)]
+ buildspecs.sort(reverse=True)
+ buildspec = splitext(buildspecs[0])[0]
+
+revisions = {}
+
+# Read the buildspec, and extract the git revisions for each component.
+with urlopen(f'{buildspecs_url}{chrome_major_version}/{buildspec}.xml?format=TEXT') as resp:
+ xml = base64.decodebytes(resp.read())
+ root = etree.fromstring(xml)
+ for project in root.findall('project'):
+ revisions[project.get('name')] = project.get('revision')
+
+# Initialize the data that will be output from this script. Leave the
+# rc number in buildspec so nobody else is subject to the same level
+# of confusion I have been.
+data = {'version': f'{chrome_major_version}.{buildspec}', 'components': {}}
+
+# Fill in the 'components' dictionary with the output from
+# nix-prefetch-git, which can be passed straight to fetchGit when
+# imported by Nix.
+for component in components:
+ argv = ['nix-prefetch-git',
+ '--url', git_root + component,
+ '--rev', revisions[component]]
+
+ output = subprocess.check_output(argv)
+ data['components'][component] = json.loads(output.decode('utf-8'))
+
+# Find the path to crosvm's default.nix, so the srcs data can be
+# written into the same directory.
+argv = ['nix-instantiate', '--eval', '--json', '-A', 'crosvm.meta.position']
+position = json.loads(subprocess.check_output(argv).decode('utf-8'))
+filename = re.match(r'[^:]*', position)[0]
+
+# Finally, write the output.
+with open(dirname(filename) + '/upstream-info.json', 'w') as out:
+ json.dump(data, out, indent=2)
+ out.write('\n')
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/upstream-info.json b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/upstream-info.json
new file mode 100644
index 000000000000..bb9cc8841b4a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crosvm/upstream-info.json
@@ -0,0 +1,23 @@
+{
+ "version": "81.12871.0.0-rc1",
+ "components": {
+ "chromiumos/platform/crosvm": {
+ "url": "https://chromium.googlesource.com/chromiumos/platform/crosvm",
+ "rev": "8b8c01e1ad31718932491e4aee63f56109a138e2",
+ "date": "2020-01-25T02:28:10+00:00",
+ "sha256": "1qmf1k06pwynh15c3nr9m6v90z2pkk930xniwvlvbvnazrk4rllg",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+ },
+ "chromiumos/third_party/adhd": {
+ "url": "https://chromium.googlesource.com/chromiumos/third_party/adhd",
+ "rev": "f361d5b02623274723bff251dafa1e2a2887b013",
+ "date": "2020-01-23T18:37:46+00:00",
+ "sha256": "1p8iwjwgmcgmzri03ik2jaid8l0ch0bzn6z9z64dix1hlrvrlliw",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+ }
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crun/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crun/default.nix
new file mode 100644
index 000000000000..ef506c01cfb6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/crun/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, go-md2man
+, pkgconfig
+, libcap
+, libseccomp
+, python3
+, systemd
+, yajl
+, nixosTests
+}:
+
+let
+ # these tests require additional permissions
+ disabledTests = [
+ "test_capabilities.py"
+ "test_cwd.py"
+ "test_detach.py"
+ "test_exec.py"
+ "test_hooks.py"
+ "test_hostname.py"
+ "test_paths.py"
+ "test_pid.py"
+ "test_pid_file.py"
+ "test_preserve_fds.py"
+ "test_resources"
+ "test_start.py"
+ "test_uid_gid.py"
+ "test_update.py"
+ "tests_libcrun_utils"
+ ];
+
+in
+stdenv.mkDerivation rec {
+ pname = "crun";
+ version = "0.16";
+
+ src = fetchFromGitHub {
+ owner = "containers";
+ repo = pname;
+ rev = version;
+ sha256 = "03547axiwv161sbymh2vxqx591xr4nq6b9y8y45m15xvfv0f7vl8";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ autoreconfHook go-md2man pkgconfig python3 ];
+
+ buildInputs = [ libcap libseccomp systemd yajl ];
+
+ enableParallelBuilding = true;
+
+ # we need this before autoreconfHook does its thing in order to initialize
+ # config.h with the correct values
+ postPatch = ''
+ echo ${version} > .tarball-version
+ echo '#define GIT_VERSION "${src.rev}"' > git-version.h
+
+ ${lib.concatMapStringsSep "\n" (e:
+ "substituteInPlace Makefile.am --replace 'tests/${e}' ''"
+ ) disabledTests}
+ '';
+
+ doCheck = true;
+
+ passthru.tests = { inherit (nixosTests) podman; };
+
+ meta = with lib; {
+ description = "A fast and lightweight fully featured OCI runtime and C library for running containers";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ inherit (src.meta) homepage;
+ maintainers = with maintainers; [ ] ++ teams.podman.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
new file mode 100644
index 000000000000..766c81d6befe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, buildPythonApplication, fetchPypi, pythonOlder
+, installShellFiles
+, mock, pytest, nose
+, pyyaml, backports_ssl_match_hostname, colorama, docopt
+, dockerpty, docker, ipaddress, jsonschema, requests
+, six, texttable, websocket_client, cached-property
+, enum34, functools32, paramiko, distro, python-dotenv
+}:
+
+buildPythonApplication rec {
+ version = "1.27.4";
+ pname = "docker-compose";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "5a5690f24c27d4b43dcbe6b3fae91ba680713208e99ee863352b3bae37bcaa83";
+ };
+
+ # lots of networking and other fails
+ doCheck = false;
+ nativeBuildInputs = [ installShellFiles ];
+ checkInputs = [ mock pytest nose ];
+ propagatedBuildInputs = [
+ pyyaml backports_ssl_match_hostname colorama dockerpty docker
+ ipaddress jsonschema requests six texttable websocket_client
+ docopt cached-property paramiko distro python-dotenv
+ ] ++
+ stdenv.lib.optional (pythonOlder "3.4") enum34 ++
+ stdenv.lib.optional (pythonOlder "3.2") functools32;
+
+ postPatch = ''
+ # Remove upper bound on requires, see also
+ # https://github.com/docker/compose/issues/4431
+ sed -i "s/, < .*',$/',/" setup.py
+ '';
+
+ postInstall = ''
+ installShellCompletion --bash contrib/completion/bash/docker-compose
+ installShellCompletion --zsh contrib/completion/zsh/_docker-compose
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://docs.docker.com/compose/";
+ description = "Multi-container orchestration for Docker";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Frostman ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
new file mode 100644
index 000000000000..84e0135f665b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, buildGoPackage
+, fetchFromGitHub
+, makeWrapper
+}:
+
+buildGoPackage rec {
+ pname = "docker-slim";
+ version = "1.32.0";
+
+ goPackagePath = "github.com/docker-slim/docker-slim";
+
+ src = fetchFromGitHub {
+ owner = "docker-slim";
+ repo = "docker-slim";
+ rev = version;
+ sha256 = "0pd2v7df176ca923c4nw9ns5gz442jkb0jhzqjl53rwfwz1vxy9h";
+ };
+
+ subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ buildFlagsArray = [
+ ''-ldflags=
+ -s -w -X ${goPackagePath}/pkg/version.appVersionTag=${version}
+ -X ${goPackagePath}/pkg/version.appVersionRev=${src.rev}
+ ''
+ ];
+
+ # docker-slim tries to create its state dir next to the binary (inside the nix
+ # store), so we set it to use the working directory at the time of invocation
+ postInstall = ''
+ wrapProgram "$out/bin/docker-slim" --add-flags '--state-path "$(pwd)"'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Minify and secure Docker containers";
+ homepage = "https://dockersl.im/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Br1ght0ne marsam mbrgm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/default.nix
new file mode 100644
index 000000000000..1d55744efb49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/default.nix
@@ -0,0 +1,226 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, buildGoPackage
+, makeWrapper, installShellFiles, pkgconfig
+, go-md2man, go, containerd, runc, docker-proxy, tini, libtool
+, sqlite, iproute, lvm2, systemd
+, btrfs-progs, iptables, e2fsprogs, xz, util-linux, xfsprogs, git
+, procps, libseccomp
+, nixosTests
+}:
+
+with lib;
+
+rec {
+ dockerGen = {
+ version, rev, sha256
+ , runcRev, runcSha256
+ , containerdRev, containerdSha256
+ , tiniRev, tiniSha256
+ } :
+ let
+ docker-runc = runc.overrideAttrs (oldAttrs: {
+ name = "docker-runc-${version}";
+ inherit version;
+ src = fetchFromGitHub {
+ owner = "opencontainers";
+ repo = "runc";
+ rev = runcRev;
+ sha256 = runcSha256;
+ };
+ # docker/runc already include these patches / are not applicable
+ patches = [];
+ });
+
+ docker-containerd = let
+ withlibseccomp = lib.versionAtLeast version "19.03";
+ in containerd.overrideAttrs (oldAttrs: {
+ name = "docker-containerd-${version}";
+ inherit version;
+ src = fetchFromGitHub {
+ owner = "containerd";
+ repo = "containerd";
+ rev = containerdRev;
+ sha256 = containerdSha256;
+ };
+ # This should be removed once Docker uses containerd >=1.4
+ nativeBuildInputs = oldAttrs.nativeBuildInputs ++ lib.optional withlibseccomp pkgconfig;
+ buildInputs = oldAttrs.buildInputs ++ lib.optional withlibseccomp libseccomp;
+ });
+
+ docker-tini = tini.overrideAttrs (oldAttrs: {
+ name = "docker-init-${version}";
+ inherit version;
+ src = fetchFromGitHub {
+ owner = "krallin";
+ repo = "tini";
+ rev = tiniRev;
+ sha256 = tiniSha256;
+ };
+
+ # Do not remove static from make files as we want a static binary
+ patchPhase = ''
+ '';
+
+ NIX_CFLAGS_COMPILE = "-DMINIMAL=ON";
+ });
+ in
+ buildGoPackage ((optionalAttrs (stdenv.isLinux) {
+
+ inherit docker-runc docker-containerd docker-proxy docker-tini;
+
+ DOCKER_BUILDTAGS = []
+ ++ optional (systemd != null) [ "journald" ]
+ ++ optional (btrfs-progs == null) "exclude_graphdriver_btrfs"
+ ++ optional (lvm2 == null) "exclude_graphdriver_devicemapper"
+ ++ optional (libseccomp != null) "seccomp";
+
+ }) // rec {
+ inherit version rev;
+
+ name = "docker-${version}";
+
+ src = fetchFromGitHub {
+ owner = "docker";
+ repo = "docker-ce";
+ rev = "v${version}";
+ sha256 = sha256;
+ };
+
+ patches = lib.optional (versionAtLeast version "19.03") [
+ # Replace hard-coded cross-compiler with $CC
+ (fetchpatch {
+ url = https://github.com/docker/docker-ce/commit/2fdfb4404ab811cb00227a3de111437b829e55cf.patch;
+ sha256 = "1af20bzakhpfhaixc29qnl9iml9255xdinxdnaqp4an0n1xa686a";
+ })
+ ];
+
+ goPackagePath = "github.com/docker/docker-ce";
+
+ nativeBuildInputs = [ pkgconfig go-md2man go libtool installShellFiles ];
+ buildInputs = [
+ makeWrapper
+ ] ++ optionals (stdenv.isLinux) [
+ sqlite lvm2 btrfs-progs systemd libseccomp
+ ];
+
+ dontStrip = true;
+
+ buildPhase = ''
+ export GOCACHE="$TMPDIR/go-cache"
+ '' + (optionalString (stdenv.isLinux) ''
+ # build engine
+ cd ./go/src/${goPackagePath}/components/engine
+ export AUTO_GOPATH=1
+ export DOCKER_GITCOMMIT="${rev}"
+ export VERSION="${version}"
+ ./hack/make.sh dynbinary
+ cd -
+ '') + ''
+ # build cli
+ cd ./go/src/${goPackagePath}/components/cli
+ # Mimic AUTO_GOPATH
+ mkdir -p .gopath/src/github.com/docker/
+ ln -sf $PWD .gopath/src/github.com/docker/cli
+ export GOPATH="$PWD/.gopath:$GOPATH"
+ export GITCOMMIT="${rev}"
+ export VERSION="${version}"
+ source ./scripts/build/.variables
+ export CGO_ENABLED=1
+ go build -tags pkcs11 --ldflags "$LDFLAGS" github.com/docker/cli/cmd/docker
+ cd -
+ '';
+
+ # systemd 230 no longer has libsystemd-journal as a separate entity from libsystemd
+ postPatch = ''
+ substituteInPlace ./components/cli/scripts/build/.variables --replace "set -eu" ""
+ '' + optionalString (stdenv.isLinux) ''
+ patchShebangs .
+ substituteInPlace ./components/engine/hack/make.sh --replace libsystemd-journal libsystemd
+ substituteInPlace ./components/engine/daemon/logger/journald/read.go --replace libsystemd-journal libsystemd
+ '';
+
+ outputs = ["out" "man"];
+
+ extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps util-linux git ]);
+
+ installPhase = ''
+ cd ./go/src/${goPackagePath}
+ install -Dm755 ./components/cli/docker $out/libexec/docker/docker
+
+ makeWrapper $out/libexec/docker/docker $out/bin/docker \
+ --prefix PATH : "$out/libexec/docker:$extraPath"
+ '' + optionalString (stdenv.isLinux) ''
+ install -Dm755 ./components/engine/bundles/dynbinary-daemon/dockerd $out/libexec/docker/dockerd
+
+ makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \
+ --prefix PATH : "$out/libexec/docker:$extraPath"
+
+ # docker uses containerd now
+ ln -s ${docker-containerd}/bin/containerd $out/libexec/docker/containerd
+ ln -s ${docker-containerd}/bin/containerd-shim $out/libexec/docker/containerd-shim
+ ln -s ${docker-runc}/bin/runc $out/libexec/docker/runc
+ ln -s ${docker-proxy}/bin/docker-proxy $out/libexec/docker/docker-proxy
+ ln -s ${docker-tini}/bin/tini-static $out/libexec/docker/docker-init
+
+ # systemd
+ install -Dm644 ./components/engine/contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
+ '' + ''
+ # completion (cli)
+ installShellCompletion --bash ./components/cli/contrib/completion/bash/docker
+ installShellCompletion --fish ./components/cli/contrib/completion/fish/docker.fish
+ installShellCompletion --zsh ./components/cli/contrib/completion/zsh/_docker
+
+ # Include contributed man pages (cli)
+ cd ./components/cli
+ '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+ # Generate man pages from cobra commands
+ echo "Generate man pages from cobra"
+ mkdir -p ./man/man1
+ go build -o ./gen-manpages github.com/docker/cli/man
+ ./gen-manpages --root . --target ./man/man1
+ '' + ''
+ # Generate legacy pages from markdown
+ echo "Generate legacy manpages"
+ ./man/md2man-all.sh -q
+
+ installManPage man/*/*.[1-9]
+ '';
+
+ passthru.tests = { inherit (nixosTests) docker; };
+
+ meta = {
+ homepage = "https://www.docker.com/";
+ description = "An open source project to pack, ship and run any application as a lightweight container";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline tailhook vdemeester periklis ];
+ platforms = with platforms; linux ++ darwin;
+ };
+ });
+
+ # Get revisions from
+ # https://github.com/docker/docker-ce/tree/${version}/components/engine/hack/dockerfile/install/*
+
+ docker_18_09 = makeOverridable dockerGen rec {
+ version = "18.09.9";
+ rev = "v${version}";
+ sha256 = "0wqhjx9qs96q2jd091wffn3cyv2aslqn2cvpdpgljk8yr9s0yg7h";
+ runcRev = "3e425f80a8c931f88e6d94a8c831b9d5aa481657";
+ runcSha256 = "18psc830b2rkwml1x6vxngam5b5wi3pj14mw817rshpzy87prspj";
+ containerdRev = "894b81a4b802e4eb2a91d1ce216b8817763c29fb";
+ containerdSha256 = "0sp5mn5wd3xma4svm6hf67hyhiixzkzz6ijhyjkwdrc4alk81357";
+ tiniRev = "fec3683b971d9c3ef73f284f176672c44b448662";
+ tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
+ };
+
+ docker_19_03 = makeOverridable dockerGen rec {
+ version = "19.03.14";
+ rev = "v${version}";
+ sha256 = "0szr5dgfrypb5kyj5l1rf7rw4iqj0d0cyx6skdqlbgf4dqwa6g9y";
+ runcRev = "dc9208a3303feef5b3839f4323d9beb36df0a9dd"; # v1.0.0-rc10
+ runcSha256 = "0pi3rvj585997m4z9ljkxz2z9yxf9p2jr0pmqbqrc7bc95f5hagk";
+ # Note: Once all packaged Docker versions use containerd <=1.2 or >=1.4 remove the libseccomp and pkgconfig inputs above
+ containerdRev = "ea765aba0d05254012b0b9e595e995c09186427f"; # v1.3.9
+ containerdSha256 = "1isi1wgq61b4l0lxy1d8n6dnmcb8s5ihn2yqjb6525y3dj5c5i1j";
+ tiniRev = "fec3683b971d9c3ef73f284f176672c44b448662"; # v0.18.0
+ tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/distribution.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/distribution.nix
new file mode 100644
index 000000000000..a408d20f3ba0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/distribution.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "distribution";
+ version = "2.7.1";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/docker/distribution";
+
+ src = fetchFromGitHub {
+ owner = "docker";
+ repo = "distribution";
+ inherit rev;
+ sha256 = "1nx8b5a68rn81alp8wkkw6qd5v32mgf0fk23mxm60zdf63qk1nzw";
+ };
+
+ meta = with stdenv.lib; {
+ description = "The Docker toolset to pack, ship, store, and deliver content";
+ license = licenses.asl20;
+ maintainers = [ maintainers.globin ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/gc.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/gc.nix
new file mode 100644
index 000000000000..08cfba59918f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/gc.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, docker, coreutils, procps, gnused, findutils, gnugrep }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+ name = "docker-gc-${rev}";
+ rev = "b0cc52aa3da2e2ac0080794e0be6e674b1f063fc";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "spotify";
+ repo = "docker-gc";
+ sha256 = "07wf9yn0f771xkm3x12946x5rp83hxjkd70xgfgy35zvj27wskzm";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp docker-gc $out/bin
+ chmod +x $out/bin/docker-gc
+ wrapProgram $out/bin/docker-gc \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ docker coreutils procps gnused findutils gnugrep ]}"
+ '';
+
+ meta = {
+ description = "Docker garbage collection of containers and images";
+ license = licenses.asl20;
+ homepage = "https://github.com/spotify/docker-gc";
+ maintainers = with maintainers; [offline];
+ platforms = docker.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix
new file mode 100644
index 000000000000..cb3518d7d3da
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ name = "docker-proxy-${rev}";
+ rev = "7b2b1feb1de4817d522cc372af149ff48d25028e";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "docker";
+ repo = "libnetwork";
+ sha256 = "1ng577k11cyv207bp0vaz5jjfcn2igd6w95zn4izcq1nldzp5935";
+ };
+
+ goPackagePath = "github.com/docker/libnetwork";
+
+ goDeps = null;
+
+ installPhase = ''
+ install -m755 -D ./go/bin/proxy $out/bin/docker-proxy
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Docker proxy binary to forward traffic between host and containers";
+ license = licenses.asl20;
+ homepage = "https://github.com/docker/libnetwork";
+ maintainers = with maintainers; [vdemeester];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
new file mode 100644
index 000000000000..faa1076e2998
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation {
+ name = "win-pvdrivers-git-20150701";
+ version = "20150701";
+
+ src = fetchgit {
+ url = "https://github.com/ts468/win-pvdrivers";
+ rev = "3054d645fc3ee182bea3e97ff01869f01cc3637a";
+ sha256 = "6232ca2b7c9af874abbcb9262faf2c74c819727ed2eb64599c790879df535106";
+ };
+
+ buildPhase =
+ let unpack = x: "tar xf $src/${x}.tar; mkdir -p x86/${x} amd64/${x}; cp ${x}/x86/* x86/${x}/.; cp ${x}/x64/* amd64/${x}/.";
+ in stdenv.lib.concatStringsSep "\n" (map unpack ["xenbus" "xeniface" "xenvif" "xennet" "xenvbd"]);
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r x86 $out/.
+ cp -r amd64 $out/.
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Xen Subproject: Windows PV Driver";
+ homepage = "http://xenproject.org/downloads/windows-pv-drivers.html";
+ maintainers = [ maintainers.tstrobel ];
+ platforms = platforms.linux;
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix
new file mode 100644
index 000000000000..97a1f0b3039b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, p7zip }:
+
+stdenv.mkDerivation {
+ name = "win-qemu-0.1.105-1";
+ version = "0.1.105-1";
+
+ phases = [ "buildPhase" "installPhase" ];
+
+ src = fetchurl {
+ url = "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.105-1/virtio-win.iso";
+ sha256 = "065gz7s77y0q9kfqbr27451sr28rm9azpi88sqjkfph8c6r8q3wc";
+ };
+
+ buildPhase = ''
+ ${p7zip}/bin/7z x $src
+ '';
+
+ installPhase =
+ let
+ copy_pvpanic = arch: version: "mkdir -p $out/${arch}/qemupanic; cp pvpanic/${version}/${arch}/* $out/${arch}/qemupanic/. \n";
+ copy_pciserial = arch: "mkdir -p $out/${arch}/qemupciserial; cp qemupciserial/* $out/${arch}/qemupciserial/. \n";
+ copy_agent = arch: ''
+ mkdir -p $out/${arch}/qemuagent
+ cp guest-agent/${if arch=="x86" then "qemu-ga-x86.msi" else "qemu-ga-x64.msi"} $out/${arch}/qemuagent/qemu-guest-agent.msi
+ (cd $out/${arch}/qemuagent; ${p7zip}/bin/7z x qemu-guest-agent.msi; rm qemu-guest-agent.msi)
+ '';
+ copy = arch: version: (copy_pvpanic arch version) + (copy_pciserial arch) + (copy_agent arch);
+ in
+ (copy "amd64" "w8.1") + (copy "x86" "w8.1");
+
+ meta = with stdenv.lib; {
+ description = "Windows QEMU Drivers";
+ homepage = "https://fedoraproject.org/wiki/Windows_Virtio_Drivers";
+ maintainers = [ maintainers.tstrobel ];
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
new file mode 100644
index 000000000000..c4684a20914f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, p7zip }:
+
+let
+ src_x86 = fetchurl {
+ url = "http://apt.univention.de/download/addons/gplpv-drivers/gplpv_Vista2008x32_signed_0.11.0.373.msi";
+ sha256 = "04r11xw8ikjmcdhrsk878c86g0d0pvras5arsas3zs6dhgjykqap";
+ };
+
+ src_amd64 = fetchurl {
+ url = "http://apt.univention.de/download/addons/gplpv-drivers/gplpv_Vista2008x64_signed_0.11.0.373.msi";
+ sha256 = "00k628mg9b039p8lmg2l9n81dr15svy70p3m6xmq6f0frmci38ph";
+ };
+in
+
+stdenv.mkDerivation {
+ name = "gplpv-0.11.0.373";
+ version = "0.11.0.373";
+
+ phases = [ "buildPhase" "installPhase" ];
+
+ buildPhase = ''
+ mkdir -p x86
+ (cd x86; ${p7zip}/bin/7z e ${src_x86})
+ mkdir -p amd64
+ (cd amd64; ${p7zip}/bin/7z e ${src_amd64})
+ '';
+
+ installPhase = ''
+ mkdir -p $out/x86 $out/amd64
+ cp x86/* $out/x86/.
+ cp amd64/* $out/amd64/.
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ A collection of open source Window PV drivers that allow
+ Windows to be para-virtualized.
+ The drivers are signed by Univention with a Software Publishers
+ Certificate obtained from the VeriSign CA.
+ '';
+ homepage = "http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers";
+ maintainers = [ maintainers.tstrobel ];
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix
new file mode 100644
index 000000000000..f327512b128e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl, p7zip, win-virtio }:
+
+let
+ src_usbdk_x86 = fetchurl {
+ url = "https://www.spice-space.org/download/windows/usbdk/UsbDk_1.0.4_x86.msi";
+ sha256 = "17hv8034wk1xqnanm5jxs4741nl7asps1fdz6lhnrpp6gvj6yg9y";
+ };
+
+ src_usbdk_amd64 = fetchurl {
+ url = "https://www.spice-space.org/download/windows/usbdk/UsbDk_1.0.4_x64.msi";
+ sha256 = "0alcqsivp33pm8sy0lmkvq7m5yh6mmcmxdl39zjxjra67kw8r2sd";
+ };
+
+ src_qxlwddm = fetchurl {
+ url = "https://people.redhat.com/~vrozenfe/qxlwddm/qxlwddm-0.11.zip";
+ sha256 = "082zdpbh9i3bq2ds8g33rcbcw390jsm7cqf46rrlx02x8r03dm98";
+ };
+
+ src_vdagent_x86 = fetchurl {
+ url = "https://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/vdagent_0_7_3_x86.zip";
+ sha256 = "0d928g49rf4dl79jmvnqh6g864hp1flw1f0384sfp82himm3bxjs";
+ };
+
+ src_vdagent_amd64 = fetchurl {
+ url = "https://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/vdagent_0_7_3_x64.zip";
+ sha256 = "0djmvm66jcmcyhhbjppccbai45nqpva7vyvry6w8nyc0fwi1vm9l";
+ };
+in
+
+stdenv.mkDerivation {
+ # use version number of qxlwddm as qxlwddm is the most important component
+ name = "win-spice-0.11";
+ version = "0.11";
+
+ phases = [ "buildPhase" "installPhase" ];
+
+ buildPhase = ''
+ mkdir -p usbdk/x86 usbdk/amd64
+ (cd usbdk/x86; ${p7zip}/bin/7z x ${src_usbdk_x86})
+ (cd usbdk/amd64; ${p7zip}/bin/7z x ${src_usbdk_amd64})
+
+ mkdir -p vdagent/x86 vdagent/amd64
+ (cd vdagent/x86; ${p7zip}/bin/7z x ${src_vdagent_x86}; mv vdagent_0_7_3_x86/* .; rm -r vdagent_0_7_3_x86)
+ (cd vdagent/amd64; ${p7zip}/bin/7z x ${src_vdagent_amd64}; mv vdagent_0_7_3_x64/* .; rm -r vdagent_0_7_3_x64)
+
+ mkdir -p qxlwddm
+ (cd qxlwddm; ${p7zip}/bin/7z x ${src_qxlwddm}; mv Win8 w8.1; cd w8.1; mv x64 amd64)
+ '';
+
+ installPhase =
+ let
+ copy_qxl = arch: version: "mkdir -p $out/${arch}/qxl; cp qxlwddm/${version}/${arch}/* $out/${arch}/qxl/. \n";
+ copy_usbdk = arch: "mkdir -p $out/${arch}/usbdk; cp usbdk/${arch}/* $out/${arch}/usbdk/. \n";
+ copy_vdagent = arch: "mkdir -p $out/${arch}/vdagent; cp vdagent/${arch}/* $out/${arch}/vdagent/. \n";
+ # SPICE needs vioserial
+ # TODO: Link windows version in win-spice (here) to version used in win-virtio.
+ # That way it would never matter whether vioserial is installed from win-virtio or win-spice.
+ copy_vioserial = arch: "mkdir -p $out/${arch}/vioserial; cp ${win-virtio}/${arch}/vioserial/* $out/${arch}/vioserial/. \n";
+ copy = arch: version: (copy_qxl arch version) + (copy_usbdk arch) + (copy_vdagent arch) + (copy_vioserial arch);
+ in
+ (copy "amd64" "w8.1") + (copy "x86" "w8.1");
+
+ meta = with stdenv.lib; {
+ description = "Windows SPICE Drivers";
+ homepage = "https://www.spice-space.org/";
+ license = [ licenses.asl20 ]; # See https://github.com/vrozenfe/qxl-dod
+ maintainers = [ maintainers.tstrobel ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-virtio/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-virtio/default.nix
new file mode 100644
index 000000000000..f8a52f5b898d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/driver/win-virtio/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, p7zip }:
+stdenv.mkDerivation rec {
+ pname = "win-virtio";
+ version = "0.1.141-1";
+
+ phases = [ "buildPhase" "installPhase" ];
+
+ src = fetchurl {
+ url = "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-${version}/virtio-win.iso";
+ sha256 = "0mn5gcgb9dk59nrw9scdza628yiji4vdkxmixikn9v02kgwnkja3";
+ };
+
+ buildPhase = ''
+ ${p7zip}/bin/7z x $src
+ '';
+
+ installPhase =
+ let
+ copy = arch: version: {input, output}: "mkdir -p $out/${arch}/${output}; cp ${input}/${version}/${arch}/* $out/${arch}/${output}/.";
+ virtio = [{input="Balloon"; output="vioballoon";}
+ {input="NetKVM"; output="vionet";}
+ {input="vioscsi"; output="vioscsi";}
+ {input="vioserial"; output="vioserial";}
+ {input="viostor"; output="viostor";}
+ {input="viorng"; output="viorng";}
+ ];
+ in
+ stdenv.lib.concatStringsSep "\n" ((map (copy "amd64" "w8.1") virtio) ++ (map (copy "x86" "w8.1") virtio));
+
+ meta = with stdenv.lib; {
+ description = "Windows VirtIO Drivers";
+ homepage = "https://fedoraproject.org/wiki/Windows_Virtio_Drivers";
+ maintainers = [ maintainers.tstrobel ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/dumb-init/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/dumb-init/default.nix
new file mode 100644
index 000000000000..5e1bc9489d3f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/dumb-init/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, glibc }:
+
+stdenv.mkDerivation rec {
+ pname = "dumb-init";
+ version = "1.2.3";
+
+ src = fetchFromGitHub {
+ owner = "Yelp";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ws944y8gch6h7iqvznfwlh9hnmdn36aqh9w6cbc7am8vbyq0ffa";
+ };
+
+ buildInputs = [ glibc.static ];
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 -t $out/bin dumb-init
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A minimal init system for Linux containers";
+ homepage = "https://github.com/Yelp/dumb-init";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/dynamips/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/dynamips/default.nix
new file mode 100644
index 000000000000..6f35257b50fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/dynamips/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, libelf, libpcap }:
+
+stdenv.mkDerivation rec {
+ pname = "dynamips";
+ version = "0.2.21";
+
+ src = fetchFromGitHub {
+ owner = "GNS3";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0pvdqs6kjz0x0wqb5f1k3r25dg82wssm7wz4psm0m6bxsvf5l0i5";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ libelf libpcap ];
+
+ cmakeFlags = [ "-DDYNAMIPS_CODE=stable" ];
+
+ meta = with stdenv.lib; {
+ description = "A Cisco router emulator";
+ longDescription = ''
+ Dynamips is an emulator computer program that was written to emulate Cisco
+ routers.
+ '';
+ inherit (src.meta) homepage;
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/ecs-agent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/ecs-agent/default.nix
new file mode 100644
index 000000000000..691c74301e39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/ecs-agent/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "amazon-ecs-agent";
+ version = "1.18.0";
+
+ goPackagePath = "github.com/aws/${pname}";
+ subPackages = [ "agent" ];
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "aws";
+ repo = pname;
+ sha256 = "1l6c2if6wpjmq2hh6k818w38s1rsbwgd6igqy948dwcrb1g1mixr";
+ };
+
+ meta = with stdenv.lib; {
+ description = "The agent that runs on AWS EC2 container instances and starts containers on behalf of Amazon ECS";
+ homepage = "https://github.com/aws/amazon-ecs-agent";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ copumpkin ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
new file mode 100644
index 000000000000..98b95fa2bec3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
@@ -0,0 +1,61 @@
+{ fetchurl, stdenv }:
+
+let
+ version = "0.23.0";
+
+ suffix = {
+ x86_64-linux = "x86_64";
+ aarch64-linux = "aarch64";
+ }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+ baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download";
+ fetchbin = name: sha256: fetchurl {
+ url = "${baseurl}/v${version}/${name}-v${version}-${suffix}";
+ sha256 = sha256."${stdenv.hostPlatform.system}";
+ };
+
+ firecracker-bin = fetchbin "firecracker" {
+ x86_64-linux = "11h6qkq55y1w0mlkfkbnpxxai73rzxkiz07i747m7a9azbrmldp8";
+ aarch64-linux = "0zyx7md54w0fhqk1anfyjfdqrkg2mjyy17y9jk17p34yrw8j9y29";
+ };
+
+ jailer-bin = fetchbin "jailer" {
+ x86_64-linux = "15slr2azqvyqlhvlh7zk1n0rkfq282kj0pllp19r0yl1w8ns1gw5";
+ aarch64-linux = "1d92jhd6fb7w7ciz15rcfp8jf74r2503w2fl1b6pznpc8h4qscfd";
+ };
+
+in
+stdenv.mkDerivation {
+ pname = "firecracker";
+ inherit version;
+ srcs = [ firecracker-bin jailer-bin ];
+
+ unpackPhase = ":";
+ configurePhase = ":";
+
+ buildPhase = ''
+ cp ${firecracker-bin} firecracker
+ cp ${jailer-bin} jailer
+ chmod +x firecracker jailer
+ '';
+
+ doCheck = true;
+ checkPhase = ''
+ ./firecracker --version
+ ./jailer --version
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ install -D firecracker $out/bin/firecracker
+ install -D jailer $out/bin/jailer
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Secure, fast, minimal micro-container virtualization";
+ homepage = "http://firecracker-microvm.io";
+ license = licenses.asl20;
+ platforms = [ "x86_64-linux" "aarch64-linux" ];
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/firectl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/firectl/default.nix
new file mode 100644
index 000000000000..523e96f347cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/firectl/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "firectl";
+ version = "0.1.0";
+
+ patches = [ ./gomod.patch ];
+
+ src = fetchFromGitHub {
+ owner = "firecracker-microvm";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1ni3yx4rjhrkqk2038c6hkb2jwsdj2llx233wd5wgpvb6c57652p";
+ };
+
+ vendorSha256 = "1xbpck1gvzl75xgrajf5yzl199l4f2f6j3mac5586i7b00b9jxqj";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A command-line tool to run Firecracker microVMs";
+ homepage = "https://github.com/firecracker-microvm/firectl";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ xrelkd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/firectl/gomod.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/firectl/gomod.patch
new file mode 100644
index 000000000000..96c65e728221
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/firectl/gomod.patch
@@ -0,0 +1,15 @@
+diff --git a/go.mod b/go.mod
+index 1044001..7bafeda 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,7 +1,10 @@
+ module github.com/firecracker-microvm/firectl
+
++go 1.14
++
+ require (
+ github.com/firecracker-microvm/firecracker-go-sdk v0.15.1
++ github.com/go-openapi/strfmt v0.17.1
+ github.com/jessevdk/go-flags v1.4.0
+ github.com/pkg/errors v0.8.0
+ github.com/sirupsen/logrus v1.1.1
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/gvisor/containerd-shim.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/gvisor/containerd-shim.nix
new file mode 100644
index 000000000000..c8610b73865b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/gvisor/containerd-shim.nix
@@ -0,0 +1,35 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ name = "gvisor-containerd-shim-${version}";
+ version = "2019-10-09";
+
+ src = fetchFromGitHub {
+ owner = "google";
+ repo = "gvisor-containerd-shim";
+ rev = "f299b553afdd8455a0057862004061ea12e660f5";
+ sha256 = "077bhrmjrpcxv1z020yxhx2c4asn66j21gxlpa6hz0av3lfck9lm";
+ };
+
+ vendorSha256 = "11jai5jl024k7wbhz4a3zzdbvl0si07jwgwmyr8bn4i0nqx8ig2k";
+
+ buildPhase = ''
+ make
+ '';
+
+ checkPhase = ''
+ make test
+ '';
+
+ installPhase = ''
+ make install DESTDIR="$out"
+ '';
+
+ meta = with lib; {
+ description = "containerd shim for gVisor";
+ homepage = "https://github.com/google/gvisor-containerd-shim";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ andrew-d ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
new file mode 100644
index 000000000000..576f2d9e6f23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
@@ -0,0 +1,101 @@
+{ stdenv
+, buildBazelPackage
+, fetchFromGitHub
+, cacert
+, git
+, glibcLocales
+, go
+, iproute
+, iptables
+, makeWrapper
+, procps
+, python3
+}:
+
+let
+ preBuild = ''
+ patchShebangs .
+
+ # Tell rules_go to use the Go binary found in the PATH
+ sed -E -i \
+ -e 's|go_version\s*=\s*"[^"]+",|go_version = "host",|g' \
+ WORKSPACE
+
+ # The gazelle Go tooling needs CA certs
+ export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt"
+
+ # If we don't reset our GOPATH, the rules_go stdlib builder tries to
+ # install something into it. Ideally that wouldn't happen, but for now we
+ # can also get around it by unsetting GOPATH entirely, since rules_go
+ # doesn't need it.
+ export GOPATH=
+ '';
+
+in buildBazelPackage rec {
+ name = "gvisor-${version}";
+ version = "2019-11-14";
+
+ src = fetchFromGitHub {
+ owner = "google";
+ repo = "gvisor";
+ rev = "release-20191114.0";
+ sha256 = "0kyixjjlws9iz2r2srgpdd4rrq94vpxkmh2rmmzxd9mcqy2i9bg1";
+ };
+
+ nativeBuildInputs = [ git glibcLocales go makeWrapper python3 ];
+
+ bazelTarget = "//runsc:runsc";
+
+ # gvisor uses the Starlark implementation of rules_cc, not the built-in one,
+ # so we shouldn't delete it from our dependencies.
+ removeRulesCC = false;
+
+ fetchAttrs = {
+ inherit preBuild;
+
+ 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}
+
+ # 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}
+
+ # Remove the gazelle repository cache
+ chmod -R +w $bazelOut/external/bazel_gazelle_go_repository_cache
+ rm -rf $bazelOut/external/{bazel_gazelle_go_repository_cache,\@bazel_gazelle_go_repository_cache.marker}
+
+ # Remove log file(s)
+ rm -f "$bazelOut"/java.log "$bazelOut"/java.log.*
+ '';
+
+ sha256 = "0myffqywbvqhax995z55jymwnwyxmp13r27kpbc7wb5fk9s4skvr";
+ };
+
+ buildAttrs = {
+ inherit preBuild;
+
+ installPhase = ''
+ install -Dm755 bazel-bin/runsc/*_pure_stripped/runsc $out/bin/runsc
+
+ # Needed for the 'runsc do' subcomand
+ wrapProgram $out/bin/runsc \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ iproute iptables procps ]}
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ description = "Container Runtime Sandbox";
+ homepage = "https://github.com/google/gvisor";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ andrew-d ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/hercules/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/hercules/default.nix
new file mode 100644
index 000000000000..8746e66668ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/hercules/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "hercules";
+ version = "3.13";
+
+ src = fetchurl {
+ url = "http://downloads.hercules-390.eu/${pname}-${version}.tar.gz";
+ sha256 = "0zg6rwz8ib4alibf8lygi8qn69xx8n92kbi8b3jhi1ymb32mf349";
+ };
+
+ meta = with stdenv.lib; {
+ description = "IBM mainframe emulator";
+ homepage = "http://www.hercules-390.eu";
+ license = licenses.qpl;
+ maintainers = [ maintainers.anna328p ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/lkl/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/lkl/default.nix
new file mode 100644
index 000000000000..7a6ccc67bb50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/lkl/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub, bc, python, bison, flex, fuse, libarchive
+, buildPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "lkl";
+ version = "2019-10-04";
+ rev = "06ca3ddb74dc5b84fa54fa1746737f2df502e047";
+
+ outputs = [ "dev" "lib" "out" ];
+
+ nativeBuildInputs = [ bc bison flex python ];
+
+ buildInputs = [ fuse libarchive ];
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "lkl";
+ repo = "linux";
+ sha256 = "0qjp0r338bwgrqdsvy5mkdh7ryas23m47yvxfwdknfyl0k3ylq62";
+ };
+
+ # Fix a /usr/bin/env reference in here that breaks sandboxed builds
+ prePatch = "patchShebangs arch/lkl/scripts";
+ # Fixup build with newer Linux headers: https://github.com/lkl/linux/pull/484
+ postPatch = "sed '1i#include <linux/sockios.h>' -i tools/lkl/lib/hijack/xlate.c";
+
+ installPhase = ''
+ mkdir -p $out/bin $lib/lib $dev
+
+ cp tools/lkl/bin/lkl-hijack.sh $out/bin
+ sed -i $out/bin/lkl-hijack.sh \
+ -e "s,LD_LIBRARY_PATH=.*,LD_LIBRARY_PATH=$lib/lib,"
+
+ cp tools/lkl/{cptofs,fs2tar,lklfuse} $out/bin
+ ln -s cptofs $out/bin/cpfromfs
+ cp -r tools/lkl/include $dev/
+ cp tools/lkl/liblkl.a \
+ tools/lkl/lib/liblkl.so \
+ tools/lkl/lib/hijack/liblkl-hijack.so $lib/lib
+ '';
+
+ # We turn off format and fortify because of these errors (fortify implies -O2, which breaks the jitter entropy code):
+ # fs/xfs/xfs_log_recover.c:2575:3: error: format not a string literal and no format arguments [-Werror=format-security]
+ # crypto/jitterentropy.c:54:3: error: #error "The CPU Jitter random number generator must not be compiled with optimizations. See documentation. Use the compiler switch -O0 for compiling jitterentropy.c."
+ hardeningDisable = [ "format" "fortify" ];
+
+ makeFlags = [
+ "-C tools/lkl"
+ "CC=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+ "HOSTCC=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"
+ "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "The Linux kernel as a library";
+ longDescription = ''
+ LKL (Linux Kernel Library) aims to allow reusing the Linux kernel code as
+ extensively as possible with minimal effort and reduced maintenance
+ overhead
+ '';
+ homepage = "https://github.com/lkl/linux/";
+ platforms = [ "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ]; # Darwin probably works too but I haven't tested it
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ copumpkin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix
new file mode 100644
index 000000000000..74370aafa40e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, SDL2, SDL2_ttf, spice-protocol
+, fontconfig, libX11, freefont_ttf, nettle, libpthreadstubs, libXau, libXdmcp
+, libXi, libXext, wayland, libffi, libGLU, expat, libbfd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "looking-glass-client";
+ version = "B2";
+
+ src = fetchFromGitHub {
+ owner = "gnif";
+ repo = "LookingGlass";
+ rev = version;
+ sha256 = "100b5kzh8gr81kzw5fdqz2jsms25hv3815d31vy3qd6lrlm5gs3d";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ SDL2 SDL2_ttf spice-protocol fontconfig libX11 freefont_ttf nettle
+ libpthreadstubs libXau libXdmcp libXi libXext wayland libffi libGLU expat
+ libbfd
+ ];
+
+ sourceRoot = "source/client";
+ NIX_CFLAGS_COMPILE = "-mavx"; # Fix some sort of AVX compiler problem.
+
+ meta = with stdenv.lib; {
+ description = "A KVM Frame Relay (KVMFR) implementation";
+ longDescription = ''
+ Looking Glass is an open source application that allows the use of a KVM
+ (Kernel-based Virtual Machine) configured for VGA PCI Pass-through
+ without an attached physical monitor, keyboard or mouse. This is the final
+ step required to move away from dual booting with other operating systems
+ for legacy programs that require high performance graphics.
+ '';
+ homepage = "https://looking-glass.io/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ alexbakker ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/avoid-static-libtirpc-build.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/avoid-static-libtirpc-build.patch
new file mode 100644
index 000000000000..d3f207de00b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/avoid-static-libtirpc-build.patch
@@ -0,0 +1,21 @@
+diff --git a/Makefile b/Makefile
+index 0070ada..802cef0 100644
+--- a/Makefile
++++ b/Makefile
+@@ -202,7 +202,7 @@ $(BIN_NAME): $(BIN_OBJS)
+ ##### Public rules #####
+
+ all: CPPFLAGS += -DNDEBUG
+-all: shared static tools
++all: shared tools
+
+ # Run with ASAN_OPTIONS="protect_shadow_gap=0" to avoid CUDA OOM errors
+ debug: CFLAGS += -pedantic -fsanitize=undefined -fno-omit-frame-pointer -fno-common -fsanitize=address
+@@ -232,7 +232,6 @@ install: all
+ # Install header files
+ $(INSTALL) -m 644 $(LIB_INCS) $(DESTDIR)$(includedir)
+ # Install library files
+- $(INSTALL) -m 644 $(LIB_STATIC) $(DESTDIR)$(libdir)
+ $(INSTALL) -m 755 $(LIB_SHARED) $(DESTDIR)$(libdir)
+ $(LN) -sf $(LIB_SONAME) $(DESTDIR)$(libdir)/$(LIB_SYMLINK)
+ $(LDCONFIG) -n $(DESTDIR)$(libdir)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/config.toml b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/config.toml
new file mode 100644
index 000000000000..bbd166995f36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/config.toml
@@ -0,0 +1,13 @@
+disable-require = false
+#swarm-resource = "DOCKER_RESOURCE_GPU"
+
+[nvidia-container-cli]
+#root = "/run/nvidia/driver"
+#path = "/usr/bin/nvidia-container-cli"
+environment = []
+#debug = "/var/log/nvidia-container-runtime-hook.log"
+ldcache = "/tmp/ld.so.cache"
+load-kmods = true
+#no-cgroups = false
+#user = "root:video"
+ldconfig = "@@glibcbin@/bin/ldconfig"
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/default.nix
new file mode 100644
index 000000000000..d0d7125721f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, callPackage, makeWrapper
+, buildGoPackage, runc, glibc }:
+
+with lib; let
+
+ libnvidia-container = callPackage ./libnvc.nix { };
+
+ nvidia-container-runtime = fetchFromGitHub {
+ owner = "NVIDIA";
+ repo = "nvidia-container-runtime";
+ rev = "runtime-v2.0.0";
+ sha256 = "0jcj5xxbg7x7gyhbb67h3ds6vly62gx7j02zm6lg102h34jajj7a";
+ };
+
+ nvidia-container-runtime-hook = buildGoPackage {
+ pname = "nvidia-container-runtime-hook";
+ version = "1.4.0";
+
+ goPackagePath = "nvidia-container-runtime-hook";
+
+ src = "${nvidia-container-runtime}/hook/nvidia-container-runtime-hook";
+ };
+
+ nvidia-runc = runc.overrideAttrs (oldAttrs: rec {
+ name = "nvidia-runc";
+ version = "1.0.0-rc6";
+ src = fetchFromGitHub {
+ owner = "opencontainers";
+ repo = "runc";
+ rev = "v${version}";
+ sha256 = "1jwacb8xnmx5fr86gximhbl9dlbdwj3rpf27hav9q1si86w5pb1j";
+ };
+ patches = [ "${nvidia-container-runtime}/runtime/runc/3f2f8b84a77f73d38244dd690525642a72156c64/0001-Add-prestart-hook-nvidia-container-runtime-hook-to-t.patch" ];
+ });
+
+in stdenv.mkDerivation rec {
+ pname = "nvidia-docker";
+ version = "2.0.3";
+
+ src = fetchFromGitHub {
+ owner = "NVIDIA";
+ repo = "nvidia-docker";
+ rev = "v${version}";
+ sha256 = "1vx5m591mnvcb9vy0196x5lh3r8swjsk0fnlv5h62m7m4m07v6wx";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildPhase = ''
+ mkdir bin
+ cp nvidia-docker bin
+ cp ${libnvidia-container}/bin/nvidia-container-cli bin
+ cp ${nvidia-container-runtime-hook}/bin/nvidia-container-runtime-hook bin
+ cp ${nvidia-runc}/bin/runc bin/nvidia-container-runtime
+ '';
+
+ installPhase = ''
+ mkdir -p $out/{bin,etc}
+ cp -r bin $out
+ wrapProgram $out/bin/nvidia-container-cli \
+ --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:/run/opengl-driver-32/lib
+ cp ${./config.toml} $out/etc/config.toml
+ substituteInPlace $out/etc/config.toml --subst-var-by glibcbin ${lib.getBin glibc}
+ '';
+
+ meta = {
+ homepage = "https://github.com/NVIDIA/nvidia-docker";
+ description = "NVIDIA container runtime for Docker";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch
new file mode 100644
index 000000000000..9ae8d6b5e756
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch
@@ -0,0 +1,130 @@
+diff --git a/src/ldcache.c b/src/ldcache.c
+index 38bab05..e1abc89 100644
+--- a/src/ldcache.c
++++ b/src/ldcache.c
+@@ -108,40 +108,27 @@ ldcache_close(struct ldcache *ctx)
+
+ int
+ ldcache_resolve(struct ldcache *ctx, uint32_t arch, const char *root, const char * const libs[],
+- char *paths[], size_t size, ldcache_select_fn select, void *select_ctx)
++ char *paths[], size_t size, const char* version)
+ {
+ char path[PATH_MAX];
+- struct header_libc6 *h;
+- int override;
++ char dir[PATH_MAX];
++ char lib[PATH_MAX];
+
+- h = (struct header_libc6 *)ctx->ptr;
+ memset(paths, 0, size * sizeof(*paths));
+
+- for (uint32_t i = 0; i < h->nlibs; ++i) {
+- int32_t flags = h->libs[i].flags;
+- char *key = (char *)ctx->ptr + h->libs[i].key;
+- char *value = (char *)ctx->ptr + h->libs[i].value;
+-
+- if (!(flags & LD_ELF) || (flags & LD_ARCH_MASK) != arch)
++ for (size_t j = 0; j < size; ++j) {
++ snprintf(dir, 100, "/run/opengl-driver%s/lib",
++ arch == LD_I386_LIB32 ? "-32" : "");
++ if (!strncmp(libs[j], "libvdpau_nvidia.so", 100))
++ strcat(dir, "/vdpau");
++ snprintf(lib, 100, "%s/%s.%s", dir, libs[j], version);
++ if (path_resolve_full(ctx->err, path, "/", lib) < 0)
++ return (-1);
++ if (!file_exists(ctx->err, path))
+ continue;
+-
+- for (size_t j = 0; j < size; ++j) {
+- if (!str_has_prefix(key, libs[j]))
+- continue;
+- if (path_resolve(ctx->err, path, root, value) < 0)
+- return (-1);
+- if (paths[j] != NULL && str_equal(paths[j], path))
+- continue;
+- if ((override = select(ctx->err, select_ctx, root, paths[j], path)) < 0)
+- return (-1);
+- if (override) {
+- free(paths[j]);
+- paths[j] = xstrdup(ctx->err, path);
+- if (paths[j] == NULL)
+- return (-1);
+- }
+- break;
+- }
++ paths[j] = xstrdup(ctx->err, path);
++ if (paths[j] == NULL)
++ return (-1);
+ }
+ return (0);
+ }
+diff --git a/src/ldcache.h b/src/ldcache.h
+index 33d78dd..2b087db 100644
+--- a/src/ldcache.h
++++ b/src/ldcache.h
+@@ -50,6 +50,6 @@ void ldcache_init(struct ldcache *, struct error *, const char *);
+ int ldcache_open(struct ldcache *);
+ int ldcache_close(struct ldcache *);
+ int ldcache_resolve(struct ldcache *, uint32_t, const char *, const char * const [],
+- char *[], size_t, ldcache_select_fn, void *);
++ char *[], size_t, const char*);
+
+ #endif /* HEADER_LDCACHE_H */
+diff --git a/src/nvc_info.c b/src/nvc_info.c
+index 30e3cfd..6d12a50 100644
+--- a/src/nvc_info.c
++++ b/src/nvc_info.c
+@@ -167,15 +167,13 @@ find_library_paths(struct error *err, struct nvc_driver_info *info, const char *
+ if (path_resolve_full(err, path, root, ldcache) < 0)
+ return (-1);
+ ldcache_init(&ld, err, path);
+- if (ldcache_open(&ld) < 0)
+- return (-1);
+
+ info->nlibs = size;
+ info->libs = array_new(err, size);
+ if (info->libs == NULL)
+ goto fail;
+ if (ldcache_resolve(&ld, LIB_ARCH, root, libs,
+- info->libs, info->nlibs, select_libraries, info) < 0)
++ info->libs, info->nlibs, info->nvrm_version) < 0)
+ goto fail;
+
+ info->nlibs32 = size;
+@@ -183,13 +181,11 @@ find_library_paths(struct error *err, struct nvc_driver_info *info, const char *
+ if (info->libs32 == NULL)
+ goto fail;
+ if (ldcache_resolve(&ld, LIB32_ARCH, root, libs,
+- info->libs32, info->nlibs32, select_libraries, info) < 0)
++ info->libs32, info->nlibs32, info->nvrm_version) < 0)
+ goto fail;
+ rv = 0;
+
+ fail:
+- if (ldcache_close(&ld) < 0)
+- return (-1);
+ return (rv);
+ }
+
+@@ -203,7 +199,7 @@ find_binary_paths(struct error *err, struct nvc_driver_info *info, const char *r
+ char path[PATH_MAX];
+ int rv = -1;
+
+- if ((env = secure_getenv("PATH")) == NULL) {
++ if ((env = "/run/nvidia-docker/bin:/run/nvidia-docker/extras/bin") == NULL) {
+ error_setx(err, "environment variable PATH not found");
+ return (-1);
+ }
+diff --git a/src/nvc_ldcache.c b/src/nvc_ldcache.c
+index 6ff380f..cbe6a69 100644
+--- a/src/nvc_ldcache.c
++++ b/src/nvc_ldcache.c
+@@ -340,7 +340,7 @@ nvc_ldcache_update(struct nvc_context *ctx, const struct nvc_container *cnt)
+ if (validate_args(ctx, cnt != NULL) < 0)
+ return (-1);
+
+- argv = (char * []){cnt->cfg.ldconfig, cnt->cfg.libs_dir, cnt->cfg.libs32_dir, NULL};
++ argv = (char * []){cnt->cfg.ldconfig, "-f", "/tmp/ld.so.conf.nvidia-host", "-C", "/tmp/ld.so.cache.nvidia-host", cnt->cfg.libs_dir, cnt->cfg.libs32_dir, NULL};
+ if (*argv[0] == '@') {
+ /*
+ * We treat this path specially to be relative to the host filesystem.
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/libnvc.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/libnvc.nix
new file mode 100644
index 000000000000..6079f215ec80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/nvidia-docker/libnvc.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, pkgconfig
+, libelf
+, libcap
+, libseccomp
+, rpcsvc-proto
+, libtirpc
+}:
+let
+ modp-ver = "396.51";
+ nvidia-modprobe = fetchFromGitHub {
+ owner = "NVIDIA";
+ repo = "nvidia-modprobe";
+ rev = modp-ver;
+ sha256 = "1fw2qwc84k64agw6fx2v0mjf88aggph9c6qhs4cv7l3gmflv8qbk";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "libnvidia-container";
+ version = "1.0.6";
+
+ src = fetchFromGitHub {
+ owner = "NVIDIA";
+ repo = "libnvidia-container";
+ rev = "v${version}";
+ sha256 = "1pnpc9knwh8d1zqb28zc3spkjc00w0z10vd3jna8ksvpl35jl7w3";
+ };
+
+ patches = [
+ # locations of nvidia-driver libraries are not resolved via ldconfig which
+ # doesn't get used on NixOS. Additional support binaries like nvidia-smi
+ # are not resolved via the environment PATH but via the derivation output
+ # path.
+ ./libnvc-ldconfig-and-path-fixes.patch
+
+ # the libnvidia-container Makefile wants to build and install static
+ # libtirpc libraries; this patch prevents that from happening
+ ./avoid-static-libtirpc-build.patch
+ ];
+
+ makeFlags = [
+ "WITH_LIBELF=yes"
+ "prefix=$(out)"
+ # we can't use the WITH_TIRPC=yes flag that exists in the Makefile for the
+ # same reason we patch out the static library use of libtirpc so we set the
+ # define in CFLAGS
+ "CFLAGS=-DWITH_TIRPC"
+ ];
+
+ postPatch = ''
+ sed -i \
+ -e 's/^REVISION :=.*/REVISION = ${src.rev}/' \
+ -e 's/^COMPILER :=.*/COMPILER = $(CC)/' \
+ mk/common.mk
+
+ mkdir -p deps/src/nvidia-modprobe-${modp-ver}
+ cp -r ${nvidia-modprobe}/* deps/src/nvidia-modprobe-${modp-ver}
+ chmod -R u+w deps/src
+ touch deps/src/nvidia-modprobe-${modp-ver}/.download_stamp
+ '';
+
+ NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
+ NIX_LDFLAGS = [ "-L${libtirpc.dev}/lib" "-ltirpc" ];
+
+ nativeBuildInputs = [ pkgconfig rpcsvc-proto ];
+
+ buildInputs = [ libelf libcap libseccomp libtirpc ];
+
+ meta = with lib; {
+ homepage = "https://github.com/NVIDIA/libnvidia-container";
+ description = "NVIDIA container runtime library";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
new file mode 100644
index 000000000000..4cdce2172a21
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook,
+ fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps, libtirpc, rpcsvc-proto,
+ libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst,
+ pkgconfig, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute, dbus, systemd, which,
+ withX ? true }:
+
+stdenv.mkDerivation rec {
+ pname = "open-vm-tools";
+ version = "11.2.0";
+
+ src = fetchFromGitHub {
+ owner = "vmware";
+ repo = "open-vm-tools";
+ rev = "stable-${version}";
+ sha256 = "125y3zdhj353dmmjmssdaib2zp1jg5aiqmvpgkrzhnh5nx2icfv6";
+ };
+
+ sourceRoot = "${src.name}/open-vm-tools";
+
+ outputs = [ "out" "dev" ];
+
+ nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
+ buildInputs = [ fuse glib icu libdnet libmspack libtirpc openssl pam procps rpcsvc-proto xercesc ]
+ ++ lib.optionals withX [ gdk-pixbuf-xlib gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
+
+ postPatch = ''
+ # Build bugfix for 10.1.0, stolen from Arch PKGBUILD
+ mkdir -p common-agent/etc/config
+ sed -i 's|.*common-agent/etc/config/Makefile.*|\\|' configure.ac
+
+ sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' Makefile.am
+ sed -i 's,^confdir = ,confdir = ''${prefix},' scripts/Makefile.am
+ sed -i 's,usr/bin,''${prefix}/usr/bin,' scripts/Makefile.am
+ sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' services/vmtoolsd/Makefile.am
+ sed -i 's,$(PAM_PREFIX),''${prefix}/$(PAM_PREFIX),' services/vmtoolsd/Makefile.am
+ sed -i 's,$(UDEVRULESDIR),''${prefix}/$(UDEVRULESDIR),' udev/Makefile.am
+
+ # Avoid a glibc >= 2.25 deprecation warning that gets fatal via -Werror.
+ sed 1i'#include <sys/sysmacros.h>' -i lib/wiper/wiperPosix.c
+
+ # Make reboot work, shutdown is not in /sbin on NixOS
+ sed -i 's,/sbin/shutdown,shutdown,' lib/system/systemLinux.c
+ '';
+
+ configureFlags = [ "--without-kernel-modules" "--without-xmlsecurity" ]
+ ++ lib.optional (!withX) "--without-x";
+
+ enableParallelBuilding = true;
+
+ NIX_CFLAGS_COMPILE = builtins.toString [
+ # igrone glib-2.62 deprecations
+ # Drop in next stable release.
+ "-DGLIB_DISABLE_DEPRECATION_WARNINGS"
+
+ # fix build with gcc9
+ "-Wno-error=address-of-packed-member"
+ "-Wno-error=format-overflow"
+ ];
+
+ postInstall = ''
+ wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \
+ --prefix PATH ':' "${lib.makeBinPath [ iproute dbus systemd which ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/vmware/open-vm-tools";
+ description = "Set of tools for VMWare guests to improve host-guest interaction";
+ longDescription = ''
+ A set of services and modules that enable several features in VMware products for
+ better management of, and seamless user interactions with, guests.
+ '';
+ license = licenses.gpl2;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = with maintainers; [ joamaki ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix
new file mode 100644
index 000000000000..de3d944bacb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonApplication, fetchPypi, pyyaml }:
+
+buildPythonApplication rec {
+ version = "0.1.5";
+ pname = "podman-compose";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1sgbc889zq127qhxa9frhswa1mid19fs5qnyzfihx648y5i968pv";
+ };
+
+ propagatedBuildInputs = [ pyyaml ];
+
+ meta = {
+ description = "An implementation of docker-compose with podman backend";
+ homepage = "https://github.com/containers/podman-compose";
+ license = lib.licenses.gpl2;
+ platforms = lib.platforms.linux;
+ maintainers = [ lib.maintainers.sikmir ] ++ lib.teams.podman.members;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman/default.nix
new file mode 100644
index 000000000000..dd56efe60f83
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, installShellFiles
+, buildGoModule
+, gpgme
+, lvm2
+, btrfs-progs
+, libapparmor
+, libseccomp
+, libselinux
+, systemd
+, go-md2man
+, nixosTests
+}:
+
+buildGoModule rec {
+ pname = "podman";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "containers";
+ repo = "podman";
+ rev = "v${version}";
+ sha256 = "13na6ms0dapcmfb4pg8z3sds9nprr1lyyjs0v2izqifcyb1r1c00";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isLinux [
+ btrfs-progs
+ gpgme
+ libapparmor
+ libseccomp
+ libselinux
+ lvm2
+ systemd
+ ];
+
+ buildPhase = ''
+ patchShebangs .
+ ${if stdenv.isDarwin
+ then "make podman-remote"
+ else "make podman"}
+ make docs
+ '';
+
+ installPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+ mv bin/{podman-remote,podman}
+ '' + ''
+ install -Dm555 bin/podman $out/bin/podman
+ installShellCompletion --bash completions/bash/podman
+ installShellCompletion --zsh completions/zsh/_podman
+ MANDIR=$man/share/man make install.man-nobuild
+ '';
+
+ passthru.tests = { inherit (nixosTests) podman; };
+
+ meta = with stdenv.lib; {
+ homepage = "https://podman.io/";
+ description = "A program for managing pods, containers and container images";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ marsam ] ++ teams.podman.members;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix
new file mode 100644
index 000000000000..863888227b37
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix
@@ -0,0 +1,52 @@
+{ podman-unwrapped
+, runCommand
+, makeWrapper
+, lib
+, extraPackages ? []
+, podman # Docker compat
+, 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
+, util-linux # nsenter
+, cni-plugins # not added to path
+, iptables
+}:
+
+let
+ podman = podman-unwrapped;
+
+ binPath = lib.makeBinPath ([
+ runc
+ crun
+ conmon
+ slirp4netns
+ fuse-overlayfs
+ util-linux
+ iptables
+ ] ++ extraPackages);
+
+in runCommand podman.name {
+ name = "${podman.pname}-wrapper-${podman.version}";
+ inherit (podman) pname version passthru;
+
+ meta = builtins.removeAttrs podman.meta [ "outputsToInstall" ];
+
+ outputs = [
+ "out"
+ "man"
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+} ''
+ ln -s ${podman.man} $man
+
+ mkdir -p $out/bin
+ ln -s ${podman-unwrapped}/share $out/share
+ makeWrapper ${podman-unwrapped}/bin/podman $out/bin/podman \
+ --prefix PATH : ${binPath}
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qboot/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qboot/default.nix
new file mode 100644
index 000000000000..8d1f9dac2e51
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qboot/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, meson, ninja, fetchFromGitHub, nixosTests }:
+
+stdenv.mkDerivation {
+ name = "qboot-20200423";
+
+ src = fetchFromGitHub {
+ owner = "bonzini";
+ repo = "qboot";
+ rev = "de50b5931c08f5fba7039ddccfb249a5b3b0b18d";
+ sha256 = "1d0h29zz535m0pq18k3aya93q7lqm2858mlcp8mlfkbq54n8c5d8";
+ };
+
+ nativeBuildInputs = [ meson ninja ];
+
+ installPhase = ''
+ mkdir -p $out
+ cp bios.bin bios.bin.elf $out/.
+ '';
+
+ hardeningDisable = [ "stackprotector" "pic" ];
+
+ passthru.tests = { qboot = nixosTests.qboot; };
+
+ meta = {
+ description = "A simple x86 firmware for booting Linux";
+ homepage = "https://github.com/bonzini/qboot";
+ license = stdenv.lib.licenses.gpl2;
+ maintainers = with stdenv.lib.maintainers; [ tstrobel ];
+ platforms = ["x86_64-linux" "i686-linux"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/9p-ignore-noatime.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/9p-ignore-noatime.patch
new file mode 100644
index 000000000000..03e47a57863c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/9p-ignore-noatime.patch
@@ -0,0 +1,44 @@
+commit cdc3e7eeafa9f683214d2c15d52ef384c3de6611
+Author: aszlig <aszlig@nix.build>
+Date: Mon Mar 18 13:21:01 2019 +0100
+
+ 9pfs: Ignore O_NOATIME open flag
+
+ Since Linux 4.19, overlayfs uses the O_NOATIME flag on its lowerdir,
+ which in turn causes errors when the Nix store is mounted in the guest
+ because the file owner of the store paths typically don't match the
+ owner of the QEMU process.
+
+ After submitting a patch to the overlayfs mailing list[1], it turns out
+ that my patch was incomplete[2] and needs a bit more rework.
+
+ So instead of using an incomplete kernel patch in nixpkgs, which affects
+ *all* users of overlayfs, not just NixOS VM tests, I decided that for
+ now it's better to patch QEMU instead.
+
+ The change here really only ignores the O_NOATIME flag so that the
+ behaviour is similar to what NFS does. From open(2):
+
+ This flag may not be effective on all filesystems. One example is NFS,
+ where the server maintains the access time.
+
+ This change is therefore only temporary until the final fix lands in the
+ stable kernel releases.
+
+ [1]: https://www.spinics.net/lists/linux-unionfs/msg06755.html
+ [2]: https://www.spinics.net/lists/linux-unionfs/msg06756.html
+
+ Signed-off-by: aszlig <aszlig@nix.build>
+
+diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
+index 55821343e5..0b8425fe18 100644
+--- a/hw/9pfs/9p.c
++++ b/hw/9pfs/9p.c
+@@ -127,7 +127,6 @@ static int dotl_to_open_flags(int flags)
+ { P9_DOTL_LARGEFILE, O_LARGEFILE },
+ { P9_DOTL_DIRECTORY, O_DIRECTORY },
+ { P9_DOTL_NOFOLLOW, O_NOFOLLOW },
+- { P9_DOTL_NOATIME, O_NOATIME },
+ { P9_DOTL_SYNC, O_SYNC },
+ };
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/CVE-2020-27617.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/CVE-2020-27617.patch
new file mode 100644
index 000000000000..fa708b298365
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/CVE-2020-27617.patch
@@ -0,0 +1,43 @@
+From 6d19c0cc6c5a9bba308fc29d7c0edc2dc372c41b Mon Sep 17 00:00:00 2001
+From: Prasad J Pandit <pjp@fedoraproject.org>
+Date: Wed, 21 Oct 2020 11:35:50 +0530
+Subject: [PATCH] net: remove an assert call in eth_get_gso_type
+
+eth_get_gso_type() routine returns segmentation offload type based on
+L3 protocol type. It calls g_assert_not_reached if L3 protocol is
+unknown, making the following return statement unreachable. Remove the
+g_assert call, it maybe triggered by a guest user.
+
+Reported-by: Gaoning Pan <pgn@zju.edu.cn>
+Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
+---
+ net/eth.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/net/eth.c b/net/eth.c
+index 0c1d413ee2..eee77071f9 100644
+--- a/net/eth.c
++++ b/net/eth.c
+@@ -16,6 +16,7 @@
+ */
+
+ #include "qemu/osdep.h"
++#include "qemu/log.h"
+ #include "net/eth.h"
+ #include "net/checksum.h"
+ #include "net/tap.h"
+@@ -71,9 +72,8 @@ eth_get_gso_type(uint16_t l3_proto, uint8_t *l3_hdr, uint8_t l4proto)
+ return VIRTIO_NET_HDR_GSO_TCPV6 | ecn_state;
+ }
+ }
+-
+- /* Unsupported offload */
+- g_assert_not_reached();
++ qemu_log_mask(LOG_GUEST_ERROR, "%s: probably not GSO frame, "
++ "unknown L3 protocol: 0x%04"PRIx16"\n", __func__, l3_proto);
+
+ return VIRTIO_NET_HDR_GSO_NONE | ecn_state;
+ }
+--
+2.28.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
new file mode 100644
index 000000000000..5d4b891ad5de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
@@ -0,0 +1,190 @@
+{ stdenv, fetchurl, fetchpatch, python, zlib, pkgconfig, glib
+, perl, pixman, vde2, alsaLib, texinfo, flex
+, bison, lzo, snappy, libaio, gnutls, nettle, curl
+, makeWrapper
+, attr, libcap, libcap_ng
+, CoreServices, Cocoa, Hypervisor, rez, setfile
+, numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl
+, seccompSupport ? stdenv.isLinux, libseccomp
+, alsaSupport ? stdenv.lib.hasSuffix "linux" stdenv.hostPlatform.system && !nixosTestRunner
+, pulseSupport ? !stdenv.isDarwin && !nixosTestRunner, libpulseaudio
+, sdlSupport ? !stdenv.isDarwin && !nixosTestRunner, SDL2
+, gtkSupport ? !stdenv.isDarwin && !xenSupport && !nixosTestRunner, gtk3, gettext, vte, wrapGAppsHook
+, vncSupport ? !nixosTestRunner, libjpeg, libpng
+, smartcardSupport ? !nixosTestRunner, libcacard
+, spiceSupport ? !stdenv.isDarwin && !nixosTestRunner, spice, spice-protocol
+, ncursesSupport ? !nixosTestRunner, ncurses
+, usbredirSupport ? spiceSupport, usbredir
+, xenSupport ? false, xen
+, cephSupport ? false, ceph
+, openGLSupport ? sdlSupport, mesa, epoxy, libdrm
+, virglSupport ? openGLSupport, virglrenderer
+, smbdSupport ? false, samba
+, tpmSupport ? true
+, hostCpuOnly ? false
+, hostCpuTargets ? (if hostCpuOnly
+ then (stdenv.lib.optional stdenv.isx86_64 "i386-softmmu"
+ ++ ["${stdenv.hostPlatform.qemuArch}-softmmu"])
+ else null)
+, nixosTestRunner ? false
+}:
+
+with stdenv.lib;
+let
+ audio = optionalString alsaSupport "alsa,"
+ + optionalString pulseSupport "pa,"
+ + optionalString sdlSupport "sdl,";
+
+in
+
+stdenv.mkDerivation rec {
+ version = "5.1.0";
+ pname = "qemu"
+ + stdenv.lib.optionalString xenSupport "-xen"
+ + stdenv.lib.optionalString hostCpuOnly "-host-cpu-only"
+ + stdenv.lib.optionalString nixosTestRunner "-for-vm-tests";
+
+ src = fetchurl {
+ url= "https://download.qemu.org/qemu-${version}.tar.xz";
+ sha256 = "1rd41wwlvp0vpialjp2czs6i3lsc338xc72l3zkbb7ixjfslw5y9";
+ };
+
+ nativeBuildInputs = [ python python.pkgs.sphinx pkgconfig flex bison ]
+ ++ optionals gtkSupport [ wrapGAppsHook ];
+ buildInputs =
+ [ zlib glib perl pixman
+ vde2 texinfo makeWrapper lzo snappy
+ gnutls nettle curl
+ ]
+ ++ optionals ncursesSupport [ ncurses ]
+ ++ optionals stdenv.isDarwin [ CoreServices Cocoa Hypervisor rez setfile ]
+ ++ optionals seccompSupport [ libseccomp ]
+ ++ optionals numaSupport [ numactl ]
+ ++ optionals pulseSupport [ libpulseaudio ]
+ ++ optionals sdlSupport [ SDL2 ]
+ ++ optionals gtkSupport [ gtk3 gettext vte ]
+ ++ optionals vncSupport [ libjpeg libpng ]
+ ++ optionals smartcardSupport [ libcacard ]
+ ++ optionals spiceSupport [ spice-protocol spice ]
+ ++ optionals usbredirSupport [ usbredir ]
+ ++ optionals stdenv.isLinux [ alsaLib libaio libcap_ng libcap attr ]
+ ++ optionals xenSupport [ xen ]
+ ++ optionals cephSupport [ ceph ]
+ ++ optionals openGLSupport [ mesa epoxy libdrm ]
+ ++ optionals virglSupport [ virglrenderer ]
+ ++ optionals smbdSupport [ samba ];
+
+ enableParallelBuilding = true;
+
+ outputs = [ "out" "ga" ];
+
+ patches = [
+ ./no-etc-install.patch
+ ./fix-qemu-ga.patch
+ ./9p-ignore-noatime.patch
+ ./CVE-2020-27617.patch
+ (fetchpatch {
+ # e1000e: infinite loop scenario in case of null packet descriptor, remove for QEMU >= 5.2.0-rc3
+ name = "CVE-2020-28916.patch";
+ url = "https://git.qemu.org/?p=qemu.git;a=patch;h=c2cb511634012344e3d0fe49a037a33b12d8a98a";
+ sha256 = "1kvm6wl4vry0npiisxsn76h8nf1iv5fmqsyjvb46203f1yyg5pis";
+ })
+ ] ++ optional nixosTestRunner ./force-uid0-on-9p.patch
+ ++ optionals stdenv.hostPlatform.isMusl [
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/alpinelinux/aports/2bb133986e8fa90e2e76d53369f03861a87a74ef/main/qemu/xattr_size_max.patch";
+ sha256 = "1xfdjs1jlvs99hpf670yianb8c3qz2ars8syzyz8f2c2cp5y4bxb";
+ })
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/alpinelinux/aports/2bb133986e8fa90e2e76d53369f03861a87a74ef/main/qemu/musl-F_SHLCK-and-F_EXLCK.patch";
+ sha256 = "1gm67v41gw6apzgz7jr3zv9z80wvkv0jaxd2w4d16hmipa8bhs0k";
+ })
+ ./sigrtminmax.patch
+ (fetchpatch {
+ url = "https://raw.githubusercontent.com/alpinelinux/aports/2bb133986e8fa90e2e76d53369f03861a87a74ef/main/qemu/fix-sigevent-and-sigval_t.patch";
+ sha256 = "0wk0rrcqywhrw9hygy6ap0lfg314m9z1wr2hn8338r5gfcw75mav";
+ })
+ ];
+
+ # Remove CVE-2020-{29129,29130} for QEMU >5.1.0
+ postPatch = ''
+ (cd slirp && patch -p1 < ${fetchpatch {
+ name = "CVE-2020-29129_CVE-2020-29130.patch";
+ url = "https://gitlab.freedesktop.org/slirp/libslirp/-/commit/2e1dcbc0c2af64fcb17009eaf2ceedd81be2b27f.patch";
+ sha256 = "01vbjqgnc0kp881l5p6b31cyyirhwhavm6x36hlgkymswvl3wh9w";
+ }})
+ '';
+
+ hardeningDisable = [ "stackprotector" ];
+
+ preConfigure = ''
+ unset CPP # intereferes with dependency calculation
+ '' + optionalString stdenv.hostPlatform.isMusl ''
+ NIX_CFLAGS_COMPILE+=" -D_LINUX_SYSINFO_H"
+ '';
+
+ configureFlags =
+ [ "--audio-drv-list=${audio}"
+ "--sysconfdir=/etc"
+ "--localstatedir=/var"
+ "--enable-docs"
+ "--enable-tools"
+ "--enable-guest-agent"
+ ]
+ # disable sysctl check on darwin.
+ ++ optional stdenv.isDarwin "--cpu=x86_64"
+ ++ optional numaSupport "--enable-numa"
+ ++ optional seccompSupport "--enable-seccomp"
+ ++ optional smartcardSupport "--enable-smartcard"
+ ++ optional spiceSupport "--enable-spice"
+ ++ optional usbredirSupport "--enable-usb-redir"
+ ++ optional (hostCpuTargets != null) "--target-list=${stdenv.lib.concatStringsSep "," hostCpuTargets}"
+ ++ optional stdenv.isDarwin "--enable-cocoa"
+ ++ optional stdenv.isDarwin "--enable-hvf"
+ ++ optional stdenv.isLinux "--enable-linux-aio"
+ ++ optional gtkSupport "--enable-gtk"
+ ++ optional xenSupport "--enable-xen"
+ ++ optional cephSupport "--enable-rbd"
+ ++ optional openGLSupport "--enable-opengl"
+ ++ optional virglSupport "--enable-virglrenderer"
+ ++ optional tpmSupport "--enable-tpm"
+ ++ optional smbdSupport "--smbd=${samba}/bin/smbd";
+
+ doCheck = false; # tries to access /dev
+ dontWrapGApps = true;
+
+ postFixup = ''
+ # the .desktop is both invalid and pointless
+ rm $out/share/applications/qemu.desktop
+
+ # copy qemu-ga (guest agent) to separate output
+ mkdir -p $ga/bin
+ cp $out/bin/qemu-ga $ga/bin/
+ '' + optionalString gtkSupport ''
+ # wrap GTK Binaries
+ for f in $out/bin/qemu-system-*; do
+ wrapGApp $f
+ done
+ '';
+
+ # Add a ‘qemu-kvm’ wrapper for compatibility/convenience.
+ postInstall = ''
+ if [ -x $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} ]; then
+ makeWrapper $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} \
+ $out/bin/qemu-kvm \
+ --add-flags "\$([ -e /dev/kvm ] && echo -enable-kvm)"
+ fi
+ '';
+
+ passthru = {
+ qemu-system-i386 = "bin/qemu-system-i386";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.qemu.org/";
+ description = "A generic and open source machine emulator and virtualizer";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ eelco ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
new file mode 100644
index 000000000000..0b2dd0ee5ece
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
@@ -0,0 +1,36 @@
+diff -Naur a/qga/commands-posix.c b/qga/commands-posix.c
+--- a/qga/commands-posix.c
++++ b/qga/commands-posix.c
+@@ -109,6 +109,8 @@
+ reopen_fd_to_null(1);
+ reopen_fd_to_null(2);
+
++ execle("/run/current-system/sw/bin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
++ "hypervisor initiated shutdown", (char*)NULL, environ);
+ execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
+ "hypervisor initiated shutdown", (char*)NULL, environ);
+ _exit(EXIT_FAILURE);
+@@ -157,11 +159,13 @@
+ pid_t pid;
+ Error *local_err = NULL;
+ struct timeval tv;
++ static const char hwclock_path_nix[] = "/run/current-system/sw/bin/hwclock";
+ static const char hwclock_path[] = "/sbin/hwclock";
+ static int hwclock_available = -1;
+
+ if (hwclock_available < 0) {
+- hwclock_available = (access(hwclock_path, X_OK) == 0);
++ hwclock_available = (access(hwclock_path_nix, X_OK) == 0) ||
++ (access(hwclock_path, X_OK) == 0);
+ }
+
+ if (!hwclock_available) {
+@@ -207,6 +211,8 @@
+
+ /* Use '/sbin/hwclock -w' to set RTC from the system time,
+ * or '/sbin/hwclock -s' to set the system time from RTC. */
++ execle(hwclock_path_nix, "hwclock", has_time ? "-w" : "-s",
++ NULL, environ);
+ execle(hwclock_path, "hwclock", has_time ? "-w" : "-s",
+ NULL, environ);
+ _exit(EXIT_FAILURE);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/force-uid0-on-9p.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/force-uid0-on-9p.patch
new file mode 100644
index 000000000000..33c4ffff6fe5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/force-uid0-on-9p.patch
@@ -0,0 +1,81 @@
+diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
+index 45e9a1f9b0..494ee00c66 100644
+--- a/hw/9pfs/9p-local.c
++++ b/hw/9pfs/9p-local.c
+@@ -84,6 +84,23 @@ static void unlinkat_preserve_errno(int dirfd, const char *path, int flags)
+
+ #define VIRTFS_META_DIR ".virtfs_metadata"
+
++static int is_in_store_path(const char *path)
++{
++ static char *store_path = NULL;
++ int store_path_len = -1;
++
++ if (store_path_len == -1) {
++ if ((store_path = getenv("NIX_STORE")) != NULL)
++ store_path_len = strlen(store_path);
++ else
++ store_path_len = 0;
++ }
++
++ if (store_path_len > 0)
++ return strncmp(path, store_path, strlen(store_path)) == 0;
++ return 0;
++}
++
+ static FILE *local_fopenat(int dirfd, const char *name, const char *mode)
+ {
+ int fd, o_mode = 0;
+@@ -161,6 +178,8 @@ static int local_lstat(FsContext *fs_ctx, V9fsPath *fs_path, struct stat *stbuf)
+ if (err) {
+ goto err_out;
+ }
++ stbuf->st_uid = 0;
++ stbuf->st_gid = 0;
+ if (fs_ctx->export_flags & V9FS_SM_MAPPED) {
+ /* Actual credentials are part of extended attrs */
+ uid_t tmp_uid;
+@@ -280,6 +299,9 @@ static int fchmodat_nofollow(int dirfd, const char *name, mode_t mode)
+ {
+ int fd, ret;
+
++ if (is_in_store_path(name))
++ return 0;
++
+ /* FIXME: this should be handled with fchmodat(AT_SYMLINK_NOFOLLOW).
+ * Unfortunately, the linux kernel doesn't implement it yet. As an
+ * alternative, let's open the file and use fchmod() instead. This
+@@ -661,6 +683,8 @@ static int local_fstat(FsContext *fs_ctx, int fid_type,
+ if (err) {
+ return err;
+ }
++ stbuf->st_uid = 0;
++ stbuf->st_gid = 0;
+ if (fs_ctx->export_flags & V9FS_SM_MAPPED) {
+ /* Actual credentials are part of extended attrs */
+ uid_t tmp_uid;
+@@ -795,8 +819,11 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath,
+ if (err) {
+ goto out;
+ }
+- err = fchownat(dirfd, name, credp->fc_uid, credp->fc_gid,
+- AT_SYMLINK_NOFOLLOW);
++ if (is_in_store_path(name))
++ err = 0;
++ else
++ err = fchownat(dirfd, name, credp->fc_uid, credp->fc_gid,
++ AT_SYMLINK_NOFOLLOW);
+ if (err == -1) {
+ /*
+ * If we fail to change ownership and if we are
+@@ -911,7 +938,9 @@ static int local_chown(FsContext *fs_ctx, V9fsPath *fs_path, FsCred *credp)
+ goto out;
+ }
+
+- if ((credp->fc_uid == -1 && credp->fc_gid == -1) ||
++ if (is_in_store_path(name)) {
++ ret = 0;
++ } else if ((credp->fc_uid == -1 && credp->fc_gid == -1) ||
+ (fs_ctx->export_flags & V9FS_SM_PASSTHROUGH) ||
+ (fs_ctx->export_flags & V9FS_SM_NONE)) {
+ ret = fchownat(dirfd, name, credp->fc_uid, credp->fc_gid,
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/no-etc-install.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/no-etc-install.patch
new file mode 100644
index 000000000000..5bab930d06a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/no-etc-install.patch
@@ -0,0 +1,12 @@
+diff --git a/Makefile b/Makefile
+--- a/Makefile
++++ b/Makefile
+@@ -867,7 +867,7 @@ install-includedir:
+ $(INSTALL_DIR) "$(DESTDIR)$(includedir)"
+
+ install: all $(if $(BUILD_DOCS),install-doc) \
+- install-datadir install-localstatedir install-includedir \
++ install-datadir install-includedir \
+ $(if $(INSTALL_BLOBS),$(edk2-decompressed)) \
+ recurse-install
+ ifneq ($(TOOLS),)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/sigrtminmax.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/sigrtminmax.patch
new file mode 100644
index 000000000000..41050447ac64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/sigrtminmax.patch
@@ -0,0 +1,30 @@
+From 2697fcc42546e814a2d2617671cb8398b15256fb Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Fri, 17 Aug 2018 00:22:35 -0500
+Subject: [PATCH] quick port __SIGRTMIN/__SIGRTMAX patch for qemu 3.0
+
+---
+ linux-user/signal.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/linux-user/signal.c b/linux-user/signal.c
+index 602b631b92..87f9240134 100644
+--- a/linux-user/signal.c
++++ b/linux-user/signal.c
+@@ -26,6 +26,13 @@
+ #include "trace.h"
+ #include "signal-common.h"
+
++#ifndef __SIGRTMIN
++#define __SIGRTMIN 32
++#endif
++#ifndef __SIGRTMAX
++#define __SIGRTMAX (NSIG-1)
++#endif
++
+ struct target_sigaltstack target_sigaltstack_used = {
+ .ss_sp = 0,
+ .ss_size = 0,
+--
+2.18.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/utils.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/utils.nix
new file mode 100644
index 000000000000..90783039a1a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qemu/utils.nix
@@ -0,0 +1,22 @@
+{ stdenv, installShellFiles, qemu }:
+
+stdenv.mkDerivation rec {
+ name = "qemu-utils-${version}";
+ version = qemu.version;
+
+ nativeBuildInputs = [ installShellFiles ];
+ buildInputs = [ qemu ];
+ unpackPhase = "true";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp "${qemu}/bin/qemu-img" "$out/bin/qemu-img"
+ cp "${qemu}/bin/qemu-io" "$out/bin/qemu-io"
+ cp "${qemu}/bin/qemu-nbd" "$out/bin/qemu-nbd"
+
+ installManPage ${qemu}/share/man/man1/qemu-img.1.gz
+ installManPage ${qemu}/share/man/man8/qemu-nbd.8.gz
+ '';
+
+ inherit (qemu) meta;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qtemu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qtemu/default.nix
new file mode 100644
index 000000000000..29f0004be830
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/qtemu/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, mkDerivation, fetchFromGitLab, pkgconfig, qmake, qtbase, qemu, makeWrapper }:
+
+mkDerivation rec {
+ pname = "qtemu";
+ version = "2.1";
+
+ src = fetchFromGitLab {
+ owner = "qtemu";
+ repo = "gui";
+ rev = version;
+ sha256 = "1555178mkfw0gwmw8bsxmg4339j2ifp0yb4b2f39nxh9hwshg07j";
+ };
+
+ nativeBuildInputs = [
+ qmake
+ pkgconfig
+ ];
+
+ buildInputs = [
+ qtbase
+ qemu
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ # upstream lacks an install method
+ install -D -t $out/share/applications qtemu.desktop
+ install -D -t $out/share/pixmaps qtemu.png
+ install -D -t $out/bin qtemu
+
+ # make sure that the qemu-* executables are found
+ wrapProgram $out/bin/qtemu --prefix PATH : ${stdenv.lib.makeBinPath [ qemu ]}
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Qt-based front-end for QEMU emulator";
+ homepage = "https://qtemu.org";
+ license = licenses.gpl2;
+ platforms = with platforms; linux;
+ maintainers = with maintainers; [ romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/railcar/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/railcar/cargo-lock.patch
new file mode 100644
index 000000000000..bb9d5420f32a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/railcar/cargo-lock.patch
@@ -0,0 +1,435 @@
+From 97e1e2ca82c20317a6de1f345d2fb0adcde0b7fd Mon Sep 17 00:00:00 2001
+From: Katharina Fey <kookie@spacekookie.de>
+Date: Mon, 10 Dec 2018 17:42:58 +0100
+Subject: [PATCH] Adding `Cargo.lock` for release `v1.0.4`
+
+---
+ Cargo.lock | 416 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 416 insertions(+)
+ create mode 100644 Cargo.lock
+
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..bf6aa0e
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,416 @@
++[[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.45 (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 = "backtrace"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace-sys 0.1.24 (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.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-demangle 0.1.9 (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.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.45 (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 = "caps"
++version = "0.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "custom_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "enum_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "error-chain 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.25"
++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 = "custom_derive"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "dtoa"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "enum_derive"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "error-chain"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace 0.3.9 (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.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "itoa"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lazy_static"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "libc"
++version = "0.2.45"
++source = "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.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "log"
++version = "0.4.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "nix"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 0.7.0 (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.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "nix"
++version = "0.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.25 (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.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.1.43"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "oci"
++version = "0.1.0"
++dependencies = [
++ "serde 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "prctl"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nix 0.12.0 (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 = "railcar"
++version = "1.0.4"
++dependencies = [
++ "caps 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nix 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "oci 0.1.0",
++ "prctl 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "seccomp-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.43"
++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.43 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "scopeguard"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "seccomp-sys"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde"
++version = "0.9.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde_codegen_internals"
++version = "0.14.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_derive"
++version = "0.9.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_codegen_internals 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_json"
++version = "0.9.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 0.9.15 (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 = "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.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.43 (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 = "void"
++version = "1.0.2"
++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"
++
++[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 backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a"
++"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0"
++"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 caps 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c238ba41e8d1d354c8576228110585046ae379efd7af972932993d5c1d41c7d"
++"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
++"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 custom_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"
++"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
++"checksum enum_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "406ac2a8c9eedf8af9ee1489bee9e50029278a6456c740f7454cf8a158abc816"
++"checksum error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8"
++"checksum error-chain 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6930e04918388a9a2e41d518c25cf679ccafe26733fb4127dbf21993f2575d46"
++"checksum itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"
++"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
++"checksum libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "2d2857ec59fadc0773853c664d2d18e7198e83883e7060b63c924cb077bd5c74"
++"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
++"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
++"checksum nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "921f61dc817b379d0834e45d5ec45beaacfae97082090a49c2cf30dcbc30206f"
++"checksum nix 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "47e49f6982987135c5e9620ab317623e723bd06738fd85377e8d55f57c8b6487"
++"checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
++"checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1"
++"checksum prctl 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "059a34f111a9dee2ce1ac2826a68b24601c4298cfeb1a587c3cb493d5ab46f52"
++"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
++"checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d"
++"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
++"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395"
++"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
++"checksum seccomp-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0d4082b110d25cf281ddbf78dc56e1a65c929fd72ac6c2deb1a4c20a23999dfa"
++"checksum serde 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)" = "34b623917345a631dc9608d5194cc206b3fe6c3554cd1c75b937e55e285254af"
++"checksum serde_codegen_internals 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bc888bd283bd2420b16ad0d860e35ad8acb21941180a83a189bb2046f9d00400"
++"checksum serde_derive 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)" = "978fd866f4d4872084a81ccc35e275158351d3b9fe620074e7d7504b816b74ba"
++"checksum serde_json 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ad8bcf487be7d2e15d3d543f04312de991d631cfe1b43ea0ade69e6a8a5b16a1"
++"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
++"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 void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
++"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"
+--
+2.17.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/railcar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
new file mode 100644
index 000000000000..1a238bb475d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, rustPlatform, libseccomp }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "railcar";
+ version = "1.0.4";
+
+ src = fetchFromGitHub {
+ owner = "oracle";
+ repo = "railcar";
+ rev = "v${version}";
+ sha256 = "09zn160qxd7760ii6rs5nhr00qmaz49x1plclscznxh9hinyjyh9";
+ };
+
+ # Submitted upstream https://github.com/oracle/railcar/pull/44
+ cargoPatches = [ ./cargo-lock.patch ];
+ cargoSha256 = "10qxkxpdprl2rcgy52s3q5gyg3i75qmx68rpl7cx1bgjzppfn9c3";
+
+ buildInputs = [ libseccomp ];
+
+ meta = with lib; {
+ description = "Rust implementation of the Open Containers Initiative oci-runtime";
+ homepage = "https://github.com/oracle/railcar";
+ license = with licenses; [ asl20 /* or */ upl ];
+ maintainers = [ maintainers.spacekookie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/remotebox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/remotebox/default.nix
new file mode 100644
index 000000000000..dcc5efb6504a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/remotebox/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, makeWrapper, perl, perlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "remotebox";
+ version = "2.7";
+
+ src = fetchurl {
+ url = "http://remotebox.knobgoblin.org.uk/downloads/RemoteBox-${version}.tar.bz2";
+ sha256 = "0csf6gd7pqq4abia4z0zpzlq865ri1z0821kjy7p3iawqlfn75pb";
+ };
+
+ buildInputs = with perlPackages; [ perl Glib Gtk2 Pango SOAPLite ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -pv $out/bin
+
+ substituteInPlace remotebox --replace "\$Bin/" "\$Bin/../"
+ install -v -t $out/bin remotebox
+ wrapProgram $out/bin/remotebox --prefix PERL5LIB : $PERL5LIB
+
+ cp -av docs/ share/ $out
+
+ mkdir -pv $out/share/applications
+ cp -pv packagers-readme/*.desktop $out/share/applications
+ '';
+
+ meta = with stdenv.lib; {
+ description = "VirtualBox client with remote management";
+ homepage = "http://remotebox.knobgoblin.org.uk/";
+ license = licenses.gpl2Plus;
+ longDescription = ''
+ VirtualBox is traditionally considered to be a virtualization solution
+ aimed at the desktop. While it is certainly possible to install
+ VirtualBox on a server, it offers few remote management features beyond
+ using the vboxmanage command line.
+ RemoteBox aims to fill this gap by providing a graphical VirtualBox
+ client which is able to manage a VirtualBox server installation.
+ '';
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/runc/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/runc/default.nix
new file mode 100644
index 000000000000..c3882ae9472e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/runc/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, fetchFromGitHub
+, buildGoPackage
+, go-md2man
+, installShellFiles
+, pkg-config
+, which
+, libapparmor
+, apparmor-parser
+, libseccomp
+, libselinux
+, makeWrapper
+, procps
+, nixosTests
+}:
+
+buildGoPackage rec {
+ pname = "runc";
+ version = "1.0.0-rc92";
+
+ src = fetchFromGitHub {
+ owner = "opencontainers";
+ repo = "runc";
+ rev = "v${version}";
+ sha256 = "0r4zbxbs03xr639r7848282j1ybhibfdhnxyap9p76j5w8ixms94";
+ };
+
+ goPackagePath = "github.com/opencontainers/runc";
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ go-md2man installShellFiles makeWrapper pkg-config which ];
+
+ buildInputs = [ libselinux libseccomp libapparmor apparmor-parser ];
+
+ makeFlags = [ "BUILDTAGS+=seccomp" "BUILDTAGS+=apparmor" "BUILDTAGS+=selinux" ];
+
+ buildPhase = ''
+ cd go/src/${goPackagePath}
+ patchShebangs .
+ substituteInPlace libcontainer/apparmor/apparmor.go \
+ --replace /sbin/apparmor_parser ${apparmor-parser}/bin/apparmor_parser
+ make ${toString makeFlags} runc man
+ '';
+
+ installPhase = ''
+ install -Dm755 runc $out/bin/runc
+ installManPage man/*/*.[1-9]
+ wrapProgram $out/bin/runc \
+ --prefix PATH : ${lib.makeBinPath [ procps ]} \
+ --prefix PATH : /run/current-system/systemd/bin
+ '';
+
+ passthru.tests = { inherit (nixosTests) cri-o docker podman; };
+
+ meta = with lib; {
+ homepage = "https://github.com/opencontainers/runc";
+ description = "A CLI tool for spawning and running containers according to the OCI specification";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline ] ++ teams.podman.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/seabios/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/seabios/default.nix
new file mode 100644
index 000000000000..cd03759045a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/seabios/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, iasl, python }:
+
+stdenv.mkDerivation rec {
+
+ pname = "seabios";
+ version = "1.14.0";
+
+ src = fetchurl {
+ url = "https://www.seabios.org/downloads/${pname}-${version}.tar.gz";
+ sha256 = "1zc1brgafbbf5hmdr1qc1p859cabpz73l8sklq83xa4sn9icqw7b";
+ };
+
+ buildInputs = [ iasl python ];
+
+ hardeningDisable = [ "pic" "stackprotector" "fortify" ];
+
+ configurePhase = ''
+ # build SeaBIOS for CSM
+ cat > .config << EOF
+ CONFIG_CSM=y
+ CONFIG_QEMU_HARDWARE=y
+ CONFIG_PERMIT_UNALIGNED_PCIROM=y
+ EOF
+
+ make olddefconfig
+ '';
+
+ installPhase = ''
+ mkdir $out
+ cp out/Csm16.bin $out/Csm16.bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Open source implementation of a 16bit X86 BIOS";
+ longDescription = ''
+ SeaBIOS is an open source implementation of a 16bit X86 BIOS.
+ It can run in an emulator or it can run natively on X86 hardware with the use of coreboot.
+ SeaBIOS is the default BIOS for QEMU and KVM.
+ '';
+ homepage = "http://www.seabios.org";
+ license = licenses.lgpl3;
+ maintainers = [ maintainers.tstrobel ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/singularity/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
new file mode 100644
index 000000000000..b11f8d68189c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
@@ -0,0 +1,75 @@
+{stdenv
+, lib
+, fetchurl
+, util-linux
+, gpgme
+, openssl
+, libuuid
+, coreutils
+, go
+, which
+, makeWrapper
+, cryptsetup
+, squashfsTools
+, buildGoPackage}:
+
+with lib;
+
+buildGoPackage rec {
+ pname = "singularity";
+ version = "3.7.0";
+
+ src = fetchurl {
+ url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
+ sha256 = "0y6lm23g6a2ljm78w8iyak7yivxvpj3i55fjbd56m9b2ykssm5pv";
+ };
+
+ goPackagePath = "github.com/sylabs/singularity";
+
+ buildInputs = [ gpgme openssl libuuid ];
+ nativeBuildInputs = [ util-linux which makeWrapper cryptsetup ];
+ propagatedBuildInputs = [ coreutils squashfsTools ];
+
+ postPatch = ''
+ substituteInPlace internal/pkg/build/files/copy.go \
+ --replace /bin/cp ${coreutils}/bin/cp
+ '';
+
+ postConfigure = ''
+ cd go/src/github.com/sylabs/singularity
+
+ patchShebangs .
+ sed -i 's|defaultPath := "[^"]*"|defaultPath := "${stdenv.lib.makeBinPath propagatedBuildInputs}"|' cmd/internal/cli/actions.go
+
+ ./mconfig -V ${version} -p $out --localstatedir=/var
+
+ # Don't install SUID binaries
+ sed -i 's/-m 4755/-m 755/g' builddir/Makefile
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+ make -C builddir
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ make -C builddir install LOCALSTATEDIR=$out/var
+ chmod 755 $out/libexec/singularity/bin/starter-suid
+
+ # Explicitly configure paths in the config file
+ sed -i 's|^# mksquashfs path =.*$|mksquashfs path = ${stdenv.lib.makeBinPath [squashfsTools]}/mksquashfs|' $out/etc/singularity/singularity.conf
+ sed -i 's|^# cryptsetup path =.*$|cryptsetup path = ${stdenv.lib.makeBinPath [cryptsetup]}/cryptsetup|' $out/etc/singularity/singularity.conf
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.sylabs.io/";
+ description = "Application containers for linux";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.jbedo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix
new file mode 100644
index 000000000000..f577ded70bae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, pkgconfig, alsaLib, spice-protocol, glib,
+ libpciaccess, libxcb, libXrandr, libXinerama, libXfixes, dbus, libdrm,
+ systemd}:
+stdenv.mkDerivation rec {
+ name = "spice-vdagent-0.20.0";
+ src = fetchurl {
+ url = "https://www.spice-space.org/download/releases/${name}.tar.bz2";
+ sha256 = "0n9k2kna2gd1zi6jv45zsp2jlv439nz5l5jjijirxqaycwi74srf";
+ };
+ NIX_CFLAGS_COMPILE = [ "-Wno-error=address-of-packed-member" ];
+ patchFlags = [ "-uNp1" ];
+ # included in the next release.
+ patches = [ ./timeout.diff ];
+ postPatch = ''
+ substituteInPlace data/spice-vdagent.desktop --replace /usr $out
+ '';
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ alsaLib spice-protocol glib libdrm
+ libpciaccess libxcb libXrandr libXinerama libXfixes
+ dbus systemd ] ;
+ meta = {
+ description = "Enhanced SPICE integration for linux QEMU guest";
+ longDescription = ''
+ Spice agent for linux guests offering
+ * Client mouse mode
+ * Copy and paste
+ * Automatic adjustment of the X-session resolution
+ to the client resolution
+ * Multiple displays
+ '';
+ homepage = "https://www.spice-space.org/";
+ license = stdenv.lib.licenses.gpl3;
+ maintainers = [ stdenv.lib.maintainers.aboseley ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/spice-vdagent/timeout.diff b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/spice-vdagent/timeout.diff
new file mode 100644
index 000000000000..2021e98e41f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/spice-vdagent/timeout.diff
@@ -0,0 +1,84 @@
+diff --git a/src/udscs.c b/src/udscs.c
+index 4de75f8..7c99eed 100644
+--- a/src/udscs.c
++++ b/src/udscs.c
+@@ -186,6 +186,7 @@ struct udscs_server *udscs_server_new(
+ server->read_callback = read_callback;
+ server->error_cb = error_cb;
+ server->service = g_socket_service_new();
++ g_socket_service_stop(server->service);
+
+ g_signal_connect(server->service, "incoming",
+ G_CALLBACK(udscs_server_accept_cb), server);
+@@ -223,6 +224,11 @@ void udscs_server_listen_to_address(struct udscs_server *server,
+ g_object_unref(sock_addr);
+ }
+
++void udscs_server_start(struct udscs_server *server)
++{
++ g_socket_service_start(server->service);
++}
++
+ void udscs_server_destroy_connection(struct udscs_server *server,
+ UdscsConnection *conn)
+ {
+diff --git a/src/udscs.h b/src/udscs.h
+index 45ebd3f..4f7ea36 100644
+--- a/src/udscs.h
++++ b/src/udscs.h
+@@ -98,6 +98,8 @@ void udscs_server_listen_to_address(struct udscs_server *server,
+ const gchar *addr,
+ GError **err);
+
++void udscs_server_start(struct udscs_server *server);
++
+ void udscs_server_destroy_connection(struct udscs_server *server,
+ UdscsConnection *conn);
+
+diff --git a/src/vdagentd/vdagentd.c b/src/vdagentd/vdagentd.c
+index cfd0a51..753c9bf 100644
+--- a/src/vdagentd/vdagentd.c
++++ b/src/vdagentd/vdagentd.c
+@@ -1184,10 +1184,6 @@ int main(int argc, char *argv[])
+ uinput_device = g_strdup(DEFAULT_UINPUT_DEVICE);
+ }
+
+- g_unix_signal_add(SIGINT, signal_handler, NULL);
+- g_unix_signal_add(SIGHUP, signal_handler, NULL);
+- g_unix_signal_add(SIGTERM, signal_handler, NULL);
+-
+ openlog("spice-vdagentd", do_daemonize ? 0 : LOG_PERROR, LOG_USER);
+
+ /* Setup communication with vdagent process(es) */
+@@ -1228,9 +1224,6 @@ int main(int argc, char *argv[])
+ }
+ }
+
+- if (do_daemonize)
+- daemonize();
+-
+ #ifdef WITH_STATIC_UINPUT
+ uinput = vdagentd_uinput_create(uinput_device, 1024, 768, NULL, 0,
+ debug > 1, uinput_fake);
+@@ -1240,6 +1233,13 @@ int main(int argc, char *argv[])
+ }
+ #endif
+
++ if (do_daemonize)
++ daemonize();
++
++ g_unix_signal_add(SIGINT, signal_handler, NULL);
++ g_unix_signal_add(SIGHUP, signal_handler, NULL);
++ g_unix_signal_add(SIGTERM, signal_handler, NULL);
++
+ if (want_session_info)
+ session_info = session_info_create(debug);
+ if (session_info) {
+@@ -1252,6 +1252,7 @@ int main(int argc, char *argv[])
+
+ active_xfers = g_hash_table_new(g_direct_hash, g_direct_equal);
+
++ udscs_server_start(server);
+ loop = g_main_loop_new(NULL, FALSE);
+ g_main_loop_run(loop);
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/spike/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/spike/default.nix
new file mode 100644
index 000000000000..0f397bc272a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/spike/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchgit, dtc, nixosTests }:
+
+stdenv.mkDerivation rec {
+ pname = "spike";
+ version = "1.0.0";
+
+ src = fetchgit {
+ url = "https://github.com/riscv/riscv-isa-sim.git";
+ rev = "v${version}";
+ sha256 = "1hcl01nj96s3rkz4mrq747s5lkw81lgdjdimb8b1b9h8qnida7ww";
+ };
+
+ nativeBuildInputs = [ dtc ];
+ enableParallelBuilding = true;
+
+ patchPhase = ''
+ patchShebangs scripts/*.sh
+ patchShebangs tests/ebreak.py
+ '';
+
+ doCheck = true;
+
+ passthru.tests = {
+ can-run-hello-world = nixosTests.spike;
+ };
+
+ meta = with stdenv.lib; {
+ description = "A RISC-V ISA Simulator";
+ homepage = "https://github.com/riscv/riscv-isa-sim";
+ license = licenses.bsd3;
+ platforms = [ "x86_64-linux" "aarch64-linux" ];
+ maintainers = with maintainers; [ blitz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/tini/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/tini/default.nix
new file mode 100644
index 000000000000..e3b1ccd4ce24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/tini/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, glibc }:
+
+stdenv.mkDerivation rec {
+ version = "0.19.0";
+ pname = "tini";
+
+ src = fetchFromGitHub {
+ owner = "krallin";
+ repo = "tini";
+ rev = "v${version}";
+ sha256 ="1hnnvjydg7gi5gx6nibjjdnfipblh84qcpajc08nvr44rkzswck4";
+ };
+
+ patchPhase = "sed -i /tini-static/d CMakeLists.txt";
+
+ NIX_CFLAGS_COMPILE = "-DPR_SET_CHILD_SUBREAPER=36 -DPR_GET_CHILD_SUBREAPER=37";
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ glibc glibc.static ];
+
+ meta = with stdenv.lib; {
+ description = "A tiny but valid init for containers";
+ homepage = "https://github.com/krallin/tini";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/tinyemu/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/tinyemu/default.nix
new file mode 100644
index 000000000000..2c9098993d8f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/tinyemu/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, openssl, curl, SDL }:
+
+stdenv.mkDerivation rec {
+ pname = "tinyemu";
+ version = "2018-09-23";
+ src = fetchurl {
+ url = "https://bellard.org/tinyemu/${pname}-${version}.tar.gz";
+ sha256 = "0d6payyqf4lpvmmzvlpq1i8wpbg4sf3h6llsw0xnqdgq3m9dan4v";
+ };
+ buildInputs = [ openssl curl SDL ];
+ makeFlags = [ "DESTDIR=$(out)" "bindir=/bin" ];
+ preInstall = ''
+ mkdir -p "$out/bin"
+ '';
+ meta = {
+ homepage = "https://bellard.org/tinyemu/";
+ description = "A system emulator for the RISC-V and x86 architectures";
+ longDescription = "TinyEMU is a system emulator for the RISC-V and x86 architectures. Its purpose is to be small and simple while being complete.";
+ license = with stdenv.lib.licenses; [ mit bsd2 ];
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ jhhuh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/umoci/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
new file mode 100644
index 000000000000..bef40bef87b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, go-md2man
+, installShellFiles
+}:
+
+buildGoModule rec {
+ pname = "umoci";
+ version = "0.4.6";
+
+ src = fetchFromGitHub {
+ owner = "opencontainers";
+ repo = "umoci";
+ rev = "v${version}";
+ sha256 = "0jaar26l940yh77cs31c3zndiycp85m3fz4zivcibzi68g6n6yzg";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ nativeBuildInputs = [ go-md2man installShellFiles ];
+
+ postInstall = ''
+ sed -i '/SHELL =/d' Makefile
+ make docs
+ installManPage doc/man/*.[1-9]
+ '';
+
+ meta = with lib; {
+ description = "umoci modifies Open Container images";
+ homepage = "https://umo.ci";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ zokrezyl ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
new file mode 100644
index 000000000000..9673e93d0cc8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, python3Packages, intltool, file
+, wrapGAppsHook, gtk-vnc, vte, avahi, dconf
+, gobject-introspection, libvirt-glib, system-libvirt
+, gsettings-desktop-schemas, glib, libosinfo, gnome3
+, gtksourceview4, docutils
+, spiceSupport ? true, spice-gtk ? null
+, cpio, e2fsprogs, findutils, gzip
+}:
+
+with stdenv.lib;
+
+python3Packages.buildPythonApplication rec {
+ pname = "virt-manager";
+ version = "3.1.0";
+
+ src = fetchurl {
+ url = "http://virt-manager.org/download/sources/virt-manager/${pname}-${version}.tar.gz";
+ sha256 = "0al34lxlywqnj98hdm72a38zk8ns91wkqgrc3h1mhv1kikd8pjfc";
+ };
+
+ nativeBuildInputs = [
+ intltool file
+ gobject-introspection # for setup hook populating GI_TYPELIB_PATH
+ docutils
+ ];
+
+ buildInputs = [
+ wrapGAppsHook
+ libvirt-glib vte dconf gtk-vnc gnome3.adwaita-icon-theme avahi
+ gsettings-desktop-schemas libosinfo gtksourceview4
+ gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943
+ ] ++ optional spiceSupport spice-gtk;
+
+ propagatedBuildInputs = with python3Packages;
+ [
+ pygobject3 ipaddress libvirt libxml2 requests
+ ];
+
+ patchPhase = ''
+ sed -i 's|/usr/share/libvirt/cpu_map.xml|${system-libvirt}/share/libvirt/cpu_map.xml|g' virtinst/capabilities.py
+ sed -i "/'install_egg_info'/d" setup.py
+ '';
+
+ postConfigure = ''
+ ${python3Packages.python.interpreter} setup.py configure --prefix=$out
+ '';
+
+ setupPyGlobalFlags = [ "--no-update-icon-cache" ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(--set PYTHONPATH "$PYTHONPATH")
+ # these are called from virt-install in initrdinject.py
+ gappsWrapperArgs+=(--prefix PATH : "${makeBinPath [ cpio e2fsprogs file findutils gzip ]}")
+ '';
+
+ # Failed tests
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "http://virt-manager.org";
+ description = "Desktop user interface for managing virtual machines";
+ longDescription = ''
+ The virt-manager application is a desktop user interface for managing
+ virtual machines through libvirt. It primarily targets KVM VMs, but also
+ manages Xen and LXC (linux containers).
+ '';
+ license = licenses.gpl2;
+ # exclude Darwin since libvirt-glib currently doesn't build there
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ qknight offline fpletz globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
new file mode 100644
index 000000000000..1d2a32c54e3a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
@@ -0,0 +1,52 @@
+{ mkDerivation, lib, fetchFromGitHub, fetchpatch, cmake, pkgconfig
+, qtbase, qtmultimedia, qtsvg, qttools, krdc
+, libvncserver, libvirt, pcre, pixman, qtermwidget, spice-gtk, spice-protocol
+, libselinux, libsepol, util-linux
+}:
+
+mkDerivation rec {
+ pname = "virt-manager-qt";
+ version = "0.71.95";
+
+ src = fetchFromGitHub {
+ owner = "F1ash";
+ repo = "qt-virt-manager";
+ rev = version;
+ sha256 = "1s8753bzsjyixpv1c2l9d1xjcn8i47k45qj7pr50prc64ldf5f47";
+ };
+
+ cmakeFlags = [
+ "-DBUILD_QT_VERSION=5"
+ "-DQTERMWIDGET_INCLUDE_DIRS=${qtermwidget}/include/qtermwidget5"
+ ];
+
+ patches = [
+ (fetchpatch {
+ # Maintainer note: Check whether this patch is still needed when a new version is released
+ name = "krdc-variable-name-changes.patch";
+ url = "https://github.com/fadenb/qt-virt-manager/commit/4640f5f64534ed7c8a1ecc6851f1c7503988de6d.patch";
+ sha256 = "1chl58nra1mj96n8jmnjbsyr6vlwkhn38afhwqsbr0bgyg23781v";
+ })
+ ];
+
+ buildInputs = [
+ qtbase qtmultimedia qtsvg krdc
+ libvirt libvncserver pcre pixman qtermwidget spice-gtk spice-protocol
+ libselinux libsepol util-linux
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig qttools ];
+
+ meta = with lib; {
+ homepage = "https://f1ash.github.io/qt-virt-manager";
+ description = "Desktop user interface for managing virtual machines (QT)";
+ longDescription = ''
+ The virt-manager application is a desktop user interface for managing
+ virtual machines through libvirt. It primarily targets KVM VMs, but also
+ manages Xen and LXC (linux containers).
+ '';
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ peterhoeg ];
+ inherit (qtbase.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-top/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-top/default.nix
new file mode 100644
index 000000000000..692b5f01b5c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-top/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchgit, fetchpatch, ocamlPackages, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "virt-top";
+ version = "1.0.9";
+
+ src = fetchgit {
+ url = "git://git.annexia.org/virt-top.git";
+ rev = "v${version}";
+ sha256 = "0m7pm8lzlpngsj0vjv0hg8l9ck3gvwpva7r472f8f03xpjffwiga";
+ };
+
+ patches = [
+ (fetchpatch {
+ name = "ocaml-libvirt-0.6.1.5-fix.patch";
+ url = "http://git.annexia.org/?p=virt-top.git;a=patch;h=24a461715d5bce47f63cb0097606fc336230589f";
+ sha256 = "15w7w9iggvlw8m9w8g4h08251wzb3m3zkb58glr7ifsgi3flbn61";
+ })
+ ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = with ocamlPackages; [ ocaml findlib ocaml_extlib ocaml_libvirt gettext-stub curses csv xml-light ];
+
+ buildPhase = "make opt";
+
+ meta = with stdenv.lib; {
+ description = "A top-like utility for showing stats of virtualized domains";
+ homepage = "https://people.redhat.com/~rjones/virt-top/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.volth ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-viewer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-viewer/default.nix
new file mode 100644
index 000000000000..41e6c425a81a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-viewer/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, intltool, shared-mime-info, wrapGAppsHook
+, glib, gsettings-desktop-schemas, gtk-vnc, gtk3, libvirt, libvirt-glib, libxml2, vte
+, spiceSupport ? true
+, spice-gtk ? null, spice-protocol ? null, libcap ? null, gdbm ? null
+}:
+
+assert spiceSupport ->
+ spice-gtk != null && spice-protocol != null && libcap != null && gdbm != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ baseName = "virt-viewer";
+ version = "9.0";
+ name = "${baseName}-${version}";
+
+ src = fetchurl {
+ url = "http://virt-manager.org/download/sources/${baseName}/${name}.tar.gz";
+ sha256 = "09a83mzyn3b4nd7wpa659g1zf1fjbzb79rk968bz6k5xl21k7d4i";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool shared-mime-info wrapGAppsHook glib ];
+ buildInputs = [
+ glib gsettings-desktop-schemas gtk-vnc gtk3 libvirt libvirt-glib libxml2 vte
+ ] ++ optionals spiceSupport [
+ spice-gtk spice-protocol libcap gdbm
+ ];
+
+ # Required for USB redirection PolicyKit rules file
+ propagatedUserEnvPkgs = optional spiceSupport spice-gtk;
+
+ strictDeps = true;
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "A viewer for remote virtual machines";
+ maintainers = [ maintainers.raskin ];
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ };
+ passthru = {
+ updateInfo = {
+ downloadPage = "http://virt-manager.org/download.html";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-what/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-what/default.nix
new file mode 100644
index 000000000000..f3004267ed79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virt-what/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, lib, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "virt-what";
+ version = "1.20";
+
+ src = fetchurl {
+ url = "https://people.redhat.com/~rjones/virt-what/files/${pname}-${version}.tar.gz";
+ sha256 = "1s0hg5w47gmnllbs935bx21k3zqrgvqx1wn0zzij2lfxkb9dq4zr";
+ };
+
+ meta = with lib; {
+ description = "Detect if running in a virtual machine and prints its type";
+ homepage = "https://people.redhat.com/~rjones/virt-what/";
+ maintainers = with maintainers; [ fpletz ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtinst/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtinst/default.nix
new file mode 100644
index 000000000000..4d8987d6ed78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtinst/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, python2Packages, intltool, libxml2Python }:
+
+with stdenv.lib;
+
+let version = "0.600.4"; in
+
+stdenv.mkDerivation rec {
+ pname = "virtinst";
+ inherit version;
+
+ src = fetchurl {
+ url = "http://virt-manager.org/download/sources/virtinst/virtinst-${version}.tar.gz";
+ sha256 = "175laiy49dni8hzi0cn14bbsdsigvgr9h6d9z2bcvbpa29spldvf";
+ };
+
+ pythonPath = with python2Packages;
+ [ setuptools eventlet greenlet gflags netaddr carrot routes
+ PasteDeploy m2crypto ipy twisted
+ distutils_extra simplejson cheetah lockfile httplib2
+ # !!! should libvirt be a build-time dependency? Note that
+ # libxml2Python is a dependency of libvirt.py.
+ libvirt libxml2Python urlgrabber
+ ];
+
+ buildInputs =
+ [ python2Packages.python
+ python2Packages.wrapPython
+ python2Packages.mox
+ intltool
+ ] ++ pythonPath;
+
+ buildPhase = "python setup.py build";
+
+ installPhase =
+ ''
+ python setup.py install --prefix="$out";
+ wrapPythonPrograms
+ '';
+
+ meta = {
+ homepage = "http://virt-manager.org";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [qknight];
+ description = "Command line tool which provides an easy way to provision operating systems into virtual machines";
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
new file mode 100644
index 000000000000..e80edf72677a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
@@ -0,0 +1,235 @@
+{ config, stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, wrapQtAppsHook
+, libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL
+, libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
+, qttools, qtsvg, qtwayland, pkgconfig, which, docbook_xsl, docbook_xml_dtd_43
+, alsaLib, curl, libvpx, nettools, dbus, substituteAll, fetchpatch
+# If open-watcom-bin is not passed, VirtualBox will fall back to use
+# the shipped alternative sources (assembly).
+, open-watcom-bin ? null
+, makeself, perl
+, javaBindings ? true, jdk ? null # Almost doesn't affect closure size
+, pythonBindings ? false, python3 ? null
+, extensionPack ? null, fakeroot ? null
+, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
+, enableHardening ? false
+, headless ? false
+, enable32bitGuests ? true
+}:
+
+with stdenv.lib;
+
+let
+ python = python3;
+ buildType = "release";
+ # Use maintainers/scripts/update.nix to update the version and all related hashes or
+ # change the hashes in extpack.nix and guest-additions/default.nix as well manually.
+ version = "6.1.16";
+
+ iasl' = iasl.overrideAttrs (old: rec {
+ inherit (old) pname;
+ version = "20190108";
+ src = fetchurl {
+ url = "https://acpica.org/sites/acpica/files/acpica-unix-${version}.tar.gz";
+ sha256 = "0bqhr3ndchvfhxb31147z8gd81dysyz5dwkvmp56832d0js2564q";
+ };
+ NIX_CFLAGS_COMPILE = old.NIX_CFLAGS_COMPILE + " -Wno-error=stringop-truncation";
+ });
+in stdenv.mkDerivation {
+ pname = "virtualbox";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
+ sha256 = "49c1990da16d8a3d5bda8cdb961ec8195a901e67e4c79aea44c1521a5fc2f9f1";
+ };
+
+ outputs = [ "out" "modsrc" ];
+
+ nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 ]
+ ++ optional (!headless) wrapQtAppsHook;
+
+ # Wrap manually because we wrap just a small number of executables.
+ dontWrapQtApps = true;
+
+ buildInputs =
+ [ iasl' dev86 libxslt libxml2 xorgproto libX11 libXext libXcursor libIDL
+ libcap glib lvm2 alsaLib curl libvpx pam makeself perl
+ libXmu libpng libopus python ]
+ ++ optional javaBindings jdk
+ ++ optional pythonBindings python # Python is needed even when not building bindings
+ ++ optional pulseSupport libpulseaudio
+ ++ optionals (headless) [ libXrandr libGL ]
+ ++ optionals (!headless) [ qtbase qtx11extras libXinerama SDL ];
+
+ hardeningDisable = [ "format" "fortify" "pic" "stackprotector" ];
+
+ prePatch = ''
+ set -x
+ sed -e 's@MKISOFS --version@MKISOFS -version@' \
+ -e 's@PYTHONDIR=.*@PYTHONDIR=${if pythonBindings then python else ""}@' \
+ -e 's@CXX_FLAGS="\(.*\)"@CXX_FLAGS="-std=c++11 \1"@' \
+ ${optionalString (!headless) ''
+ -e 's@TOOLQT5BIN=.*@TOOLQT5BIN="${getDev qtbase}/bin"@' \
+ ''} -i configure
+ ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2
+ ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2
+
+ grep 'libpulse\.so\.0' src include -rI --files-with-match | xargs sed -i -e '
+ ${optionalString pulseSupport
+ ''s@"libpulse\.so\.0"@"${libpulseaudio.out}/lib/libpulse.so.0"@g''}'
+
+ grep 'libdbus-1\.so\.3' src include -rI --files-with-match | xargs sed -i -e '
+ s@"libdbus-1\.so\.3"@"${dbus.lib}/lib/libdbus-1.so.3"@g'
+
+ grep 'libasound\.so\.2' src include -rI --files-with-match | xargs sed -i -e '
+ s@"libasound\.so\.2"@"${alsaLib.out}/lib/libasound.so.2"@g'
+
+ export USER=nix
+ set +x
+ '';
+
+ patches =
+ optional enableHardening ./hardened.patch
+ ++ [ ./extra_symbols.patch ]
+ # When hardening is enabled, we cannot use wrapQtApp to ensure that VirtualBoxVM sees
+ # the correct environment variables needed for Qt to work, specifically QT_PLUGIN_PATH.
+ # This is because VirtualBoxVM would detect that it is wrapped that and refuse to run,
+ # and also because it would unset QT_PLUGIN_PATH for security reasons. We work around
+ # these issues by patching the code to set QT_PLUGIN_PATH to the necessary paths,
+ # after the code that unsets it. Note that qtsvg is included so that SVG icons from
+ # the user's icon theme can be loaded.
+ ++ optional (!headless && enableHardening) (substituteAll {
+ src = ./qt-env-vars.patch;
+ qtPluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}:${qtwayland.bin}/${qtbase.qtPluginPrefix}";
+ })
+ ++ [
+ ./qtx11extras.patch
+ ];
+
+ postPatch = ''
+ sed -i -e 's|/sbin/ifconfig|${nettools}/bin/ifconfig|' \
+ src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
+ '' + optionalString headless ''
+ # Fix compile error in version 6.1.6
+ substituteInPlace src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11-stubs.cpp \
+ --replace PSHCLFORMATDATA PSHCLFORMATS
+ '';
+
+ # first line: ugly hack, and it isn't yet clear why it's a problem
+ configurePhase = ''
+ NIX_CFLAGS_COMPILE=$(echo "$NIX_CFLAGS_COMPILE" | sed 's,\-isystem ${lib.getDev stdenv.cc.libc}/include,,g')
+
+ cat >> LocalConfig.kmk <<LOCAL_CONFIG
+ VBOX_WITH_TESTCASES :=
+ VBOX_WITH_TESTSUITE :=
+ VBOX_WITH_VALIDATIONKIT :=
+ VBOX_WITH_DOCS :=
+ VBOX_WITH_WARNINGS_AS_ERRORS :=
+
+ VBOX_WITH_ORIGIN :=
+ VBOX_PATH_APP_PRIVATE_ARCH_TOP := $out/share/virtualbox
+ VBOX_PATH_APP_PRIVATE_ARCH := $out/libexec/virtualbox
+ VBOX_PATH_SHARED_LIBS := $out/libexec/virtualbox
+ VBOX_WITH_RUNPATH := $out/libexec/virtualbox
+ VBOX_PATH_APP_PRIVATE := $out/share/virtualbox
+ VBOX_PATH_APP_DOCS := $out/doc
+ ${optionalString javaBindings ''
+ VBOX_JAVA_HOME := ${jdk}
+ ''}
+ ${optionalString (!headless) ''
+ PATH_QT5_X11_EXTRAS_LIB := ${getLib qtx11extras}/lib
+ PATH_QT5_X11_EXTRAS_INC := ${getDev qtx11extras}/include
+ TOOL_QT5_LRC := ${getDev qttools}/bin/lrelease
+ ''}
+ LOCAL_CONFIG
+
+ ./configure \
+ ${optionalString headless "--build-headless"} \
+ ${optionalString (!javaBindings) "--disable-java"} \
+ ${optionalString (!pythonBindings) "--disable-python"} \
+ ${optionalString (!pulseSupport) "--disable-pulse"} \
+ ${optionalString (!enableHardening) "--disable-hardening"} \
+ ${optionalString (!enable32bitGuests) "--disable-vmmraw"} \
+ ${optionalString (open-watcom-bin != null) "--with-ow-dir=${open-watcom-bin}"} \
+ --disable-kmods
+ sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib.dev}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
+ -i AutoConfig.kmk
+ sed -e 's@arch/x86/@@' \
+ -i Config.kmk
+ substituteInPlace Config.kmk --replace "VBOX_WITH_TESTCASES = 1" "#"
+ '';
+
+ enableParallelBuilding = true;
+
+ buildPhase = ''
+ source env.sh
+ kmk -j $NIX_BUILD_CORES BUILD_TYPE="${buildType}"
+ '';
+
+ installPhase = ''
+ libexec="$out/libexec/virtualbox"
+ share="${if enableHardening then "$out/share/virtualbox" else "$libexec"}"
+
+ # Install VirtualBox files
+ mkdir -p "$libexec"
+ find out/linux.*/${buildType}/bin -mindepth 1 -maxdepth 1 \
+ -name src -o -exec cp -avt "$libexec" {} +
+
+ mkdir -p $out/bin
+ for file in ${optionalString (!headless) "VirtualBox VBoxSDL rdesktop-vrdp"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
+ echo "Linking $file to /bin"
+ test -x "$libexec/$file"
+ ln -s "$libexec/$file" $out/bin/$file
+ done
+
+ ${optionalString (extensionPack != null) ''
+ mkdir -p "$share"
+ "${fakeroot}/bin/fakeroot" "${stdenv.shell}" <<EXTHELPER
+ "$libexec/VBoxExtPackHelperApp" install \
+ --base-dir "$share/ExtensionPacks" \
+ --cert-dir "$share/ExtPackCertificates" \
+ --name "Oracle VM VirtualBox Extension Pack" \
+ --tarball "${extensionPack}" \
+ --sha-256 "${extensionPack.outputHash}"
+ EXTHELPER
+ ''}
+
+ ${optionalString (!headless) ''
+ # Create and fix desktop item
+ mkdir -p $out/share/applications
+ sed -i -e "s|Icon=VBox|Icon=$libexec/VBox.png|" $libexec/virtualbox.desktop
+ ln -sfv $libexec/virtualbox.desktop $out/share/applications
+ # Icons
+ mkdir -p $out/share/icons/hicolor
+ for size in `ls -1 $libexec/icons`; do
+ mkdir -p $out/share/icons/hicolor/$size/apps
+ ln -s $libexec/icons/$size/*.png $out/share/icons/hicolor/$size/apps
+ done
+ ''}
+
+ cp -rv out/linux.*/${buildType}/bin/src "$modsrc"
+ '';
+
+ preFixup = optionalString (!headless) ''
+ wrapQtApp $out/bin/VirtualBox
+ ''
+ # If hardening is disabled, wrap the VirtualBoxVM binary instead of patching
+ # the source code (see postPatch).
+ + optionalString (!headless && !enableHardening) ''
+ wrapQtApp $out/libexec/virtualbox/VirtualBoxVM
+ '';
+
+ passthru = {
+ inherit version; # for guest additions
+ inherit extensionPack; # for inclusion in profile to prevent gc
+ updateScript = ./update.sh;
+ };
+
+ meta = {
+ description = "PC emulator";
+ license = licenses.gpl2;
+ homepage = "https://www.virtualbox.org/";
+ maintainers = with maintainers; [ sander ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
new file mode 100644
index 000000000000..302f2b5945a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -0,0 +1,25 @@
+{fetchurl, lib, virtualbox}:
+
+with lib;
+
+let
+ inherit (virtualbox) version;
+in
+fetchurl rec {
+ name = "Oracle_VM_VirtualBox_Extension_Pack-${version}.vbox-extpack";
+ url = "https://download.virtualbox.org/virtualbox/${version}/${name}";
+ sha256 =
+ # Manually sha256sum the extensionPack file, must be hex!
+ # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
+ # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
+ let value = "9802482b77b95a954cb5111793da10d009009a4e9a9c4eaa4bd1ae5dafe9db46";
+ in assert (builtins.stringLength value) == 64; value;
+
+ meta = {
+ description = "Oracle Extension pack for VirtualBox";
+ license = licenses.virtualbox-puel;
+ homepage = "https://www.virtualbox.org/";
+ maintainers = with maintainers; [ sander cdepillabout ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/extra_symbols.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/extra_symbols.patch
new file mode 100644
index 000000000000..44d3d972cfc2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/extra_symbols.patch
@@ -0,0 +1,25 @@
+diff --git a/src/VBox/HostDrivers/linux/Makefile b/src/VBox/HostDrivers/linux/Makefile
+index 8ba33952..3b8abe60 100644
+--- a/src/VBox/HostDrivers/linux/Makefile
++++ b/src/VBox/HostDrivers/linux/Makefile
+@@ -99,17 +99,17 @@ install-vboxdrv:
+
+ install-vboxnetflt:
+ +@if [ -d vboxnetflt ]; then \
+- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetflt install; \
++ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxnetflt/Module.symvers) -C vboxnetflt install; \
+ fi
+
+ install-vboxnetadp:
+ +@if [ -d vboxnetadp ]; then \
+- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp install; \
++ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxnetadp/Module.symvers) -C vboxnetadp install; \
+ fi
+
+ install-vboxpci:
+ +@if [ -d vboxpci ]; then \
+- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxpci install; \
++ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxpci/Module.symvers) -C vboxpci install; \
+ fi
+
+ install: install-vboxdrv install-vboxnetflt install-vboxnetadp install-vboxpci
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
new file mode 100644
index 000000000000..180970d51dac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -0,0 +1,166 @@
+{ stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
+, zlib, xorg, dbus, virtualbox}:
+
+let
+ version = virtualbox.version;
+ xserverVListFunc = builtins.elemAt (stdenv.lib.splitVersion xorg.xorgserver.version);
+
+ # Forced to 1.18 in <nixpkgs/nixos/modules/services/x11/xserver.nix>
+ # as it even fails to build otherwise. Still, override this even here,
+ # in case someone does just a standalone build
+ # (not via videoDrivers = ["vboxvideo"]).
+ # It's likely to work again in some future update.
+ xserverABI = let abi = xserverVListFunc 0 + xserverVListFunc 1;
+ in if abi == "119" || abi == "120" then "118" else abi;
+
+ # Specifies how to patch binaries to make sure that libraries loaded using
+ # dlopen are found. We grep binaries for specific library names and patch
+ # RUNPATH in matching binaries to contain the needed library paths.
+ dlopenLibs = [
+ { name = "libdbus-1.so"; pkg = dbus; }
+ { name = "libXfixes.so"; pkg = xorg.libXfixes; }
+ { name = "libXrandr.so"; pkg = xorg.libXrandr; }
+ ];
+
+in stdenv.mkDerivation rec {
+ name = "VirtualBox-GuestAdditions-${version}-${kernel.version}";
+
+ src = fetchurl {
+ url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
+ sha256 = "88db771a5efd7c048228e5c1e0b8fba56542e9d8c1b75f7af5b0c4cf334f0584";
+ };
+
+ KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
+ KERN_INCL = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/source/include";
+
+ hardeningDisable = [ "pic" ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
+
+ nativeBuildInputs = [ patchelf makeWrapper ];
+ buildInputs = [ cdrkit ] ++ kernel.moduleBuildDependencies;
+
+
+ prePatch = ''
+ substituteInPlace src/vboxguest-${version}/vboxvideo/vbox_ttm.c \
+ --replace "<ttm/" "<drm/ttm/"
+ '';
+
+ patchFlags = [ "-p1" "-d" "src/vboxguest-${version}" ];
+
+ unpackPhase = ''
+ ${if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" then ''
+ isoinfo -J -i $src -x /VBoxLinuxAdditions.run > ./VBoxLinuxAdditions.run
+ chmod 755 ./VBoxLinuxAdditions.run
+ # An overflow leads the is-there-enough-space check to fail when there's too much space available, so fake how much space there is
+ sed -i 's/\$leftspace/16383/' VBoxLinuxAdditions.run
+ ./VBoxLinuxAdditions.run --noexec --keep
+ ''
+ else throw ("Architecture: "+stdenv.hostPlatform.system+" not supported for VirtualBox guest additions")
+ }
+
+ # Unpack files
+ cd install
+ ${if stdenv.hostPlatform.system == "i686-linux" then ''
+ tar xfvj VBoxGuestAdditions-x86.tar.bz2
+ ''
+ else if stdenv.hostPlatform.system == "x86_64-linux" then ''
+ tar xfvj VBoxGuestAdditions-amd64.tar.bz2
+ ''
+ else throw ("Architecture: "+stdenv.hostPlatform.system+" not supported for VirtualBox guest additions")
+ }
+ '';
+
+ buildPhase = ''
+ # Build kernel modules.
+ cd src
+ find . -type f | xargs sed 's/depmod -a/true/' -i
+ cd vboxguest-${version}
+ # Run just make first. If we only did make install, we get symbol warnings during build.
+ make
+ cd ../..
+
+ # Change the interpreter for various binaries
+ for i in sbin/VBoxService bin/{VBoxClient,VBoxControl} other/mount.vboxsf; do
+ patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} $i
+ patchelf --set-rpath ${lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc zlib
+ xorg.libX11 xorg.libXt xorg.libXext xorg.libXmu xorg.libXfixes xorg.libXrandr xorg.libXcursor ]} $i
+ done
+
+ for i in lib/VBoxOGL*.so
+ do
+ patchelf --set-rpath ${lib.makeLibraryPath [ "$out"
+ xorg.libXcomposite xorg.libXdamage xorg.libXext xorg.libXfixes ]} $i
+ done
+
+ # FIXME: Virtualbox 4.3.22 moved VBoxClient-all (required by Guest Additions
+ # NixOS module) to 98vboxadd-xclient. For now, just work around it:
+ mv other/98vboxadd-xclient bin/VBoxClient-all
+
+ # Remove references to /usr from various scripts and files
+ sed -i -e "s|/usr/bin|$out/bin|" other/vboxclient.desktop
+ sed -i -e "s|/usr/bin|$out/bin|" bin/VBoxClient-all
+ '';
+
+ installPhase = ''
+ # Install kernel modules.
+ cd src/vboxguest-${version}
+ make install INSTALL_MOD_PATH=$out KBUILD_EXTRA_SYMBOLS=$PWD/vboxsf/Module.symvers
+ cd ../..
+
+ # Install binaries
+ install -D -m 755 other/mount.vboxsf $out/bin/mount.vboxsf
+ install -D -m 755 sbin/VBoxService $out/bin/VBoxService
+
+ mkdir -p $out/bin
+ install -m 755 bin/VBoxClient $out/bin
+ install -m 755 bin/VBoxControl $out/bin
+ install -m 755 bin/VBoxClient-all $out/bin
+
+ wrapProgram $out/bin/VBoxClient-all \
+ --prefix PATH : "${which}/bin"
+
+ # Don't install VBoxOGL for now
+ # It seems to be broken upstream too, and fixing it is far down the priority list:
+ # https://www.virtualbox.org/pipermail/vbox-dev/2017-June/014561.html
+ # Additionally, 3d support seems to rely on VBoxOGL.so being symlinked from
+ # libGL.so (which we can't), and Oracle doesn't plan on supporting libglvnd
+ # either. (#18457)
+ ## Install OpenGL libraries
+ #mkdir -p $out/lib
+ #cp -v lib/VBoxOGL*.so $out/lib
+ #mkdir -p $out/lib/dri
+ #ln -s $out/lib/VBoxOGL.so $out/lib/dri/vboxvideo_dri.so
+
+ # Install desktop file
+ mkdir -p $out/share/autostart
+ cp -v other/vboxclient.desktop $out/share/autostart
+
+ # Install Xorg drivers
+ mkdir -p $out/lib/xorg/modules/{drivers,input}
+ install -m 644 other/vboxvideo_drv_${xserverABI}.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
+ '';
+
+ # Stripping breaks these binaries for some reason.
+ dontStrip = true;
+
+ # Patch RUNPATH according to dlopenLibs (see the comment there).
+ postFixup = lib.concatMapStrings (library: ''
+ for i in $(grep -F ${lib.escapeShellArg library.name} -l -r $out/{lib,bin}); do
+ origRpath=$(patchelf --print-rpath "$i")
+ patchelf --set-rpath "$origRpath:${lib.makeLibraryPath [ library.pkg ]}" "$i"
+ done
+ '') dlopenLibs;
+
+ meta = {
+ description = "Guest additions for VirtualBox";
+ longDescription = ''
+ Various add-ons which makes NixOS work better as guest OS inside VirtualBox.
+ This add-on provides support for dynamic resizing of the X Display, shared
+ host/guest clipboard support and guest OpenGL support.
+ '';
+ license = "GPL";
+ maintainers = [ lib.maintainers.sander ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/hardened.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/hardened.patch
new file mode 100644
index 000000000000..180ea88461ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/hardened.patch
@@ -0,0 +1,182 @@
+diff --git a/include/iprt/mangling.h b/include/iprt/mangling.h
+index c1daa8f..8618371 100644
+--- a/include/iprt/mangling.h
++++ b/include/iprt/mangling.h
+@@ -1440,6 +1440,7 @@
+ # define RTPathStripSuffix RT_MANGLER(RTPathStripSuffix)
+ # define RTPathStripFilename RT_MANGLER(RTPathStripFilename)
+ # define RTPathStripTrailingSlash RT_MANGLER(RTPathStripTrailingSlash)
++# define RTPathSuidDir RT_MANGLER(RTPathSuidDir)
+ # define RTPathTemp RT_MANGLER(RTPathTemp)
+ # define RTPathTraverseList RT_MANGLER(RTPathTraverseList)
+ # define RTPathUnlink RT_MANGLER(RTPathUnlink)
+@@ -1478,6 +1479,7 @@
+ # define RTProcGetAffinityMask RT_MANGLER(RTProcGetAffinityMask)
+ # define RTProcGetExecutablePath RT_MANGLER(RTProcGetExecutablePath)
+ # define RTProcGetPriority RT_MANGLER(RTProcGetPriority)
++# define RTProcGetSuidPath RT_MANGLER(RTProcGetSuidPath)
+ # define RTProcIsRunningByName RT_MANGLER(RTProcIsRunningByName)
+ # define RTProcQueryParent RT_MANGLER(RTProcQueryParent)
+ # define RTProcQueryUsername RT_MANGLER(RTProcQueryUsername)
+diff --git a/include/iprt/path.h b/include/iprt/path.h
+index 8bd42bc..2c23d3e 100644
+--- a/include/iprt/path.h
++++ b/include/iprt/path.h
+@@ -1064,6 +1064,15 @@ RTDECL(int) RTPathCalcRelative(char *pszPathDst, size_t cbPathDst,
+ RTDECL(int) RTPathExecDir(char *pszPath, size_t cchPath);
+
+ /**
++ * Gets the path to the NixOS setuid wrappers directory.
++ *
++ * @returns iprt status code.
++ * @param pszPath Buffer where to store the path.
++ * @param cchPath Buffer size in bytes.
++ */
++RTDECL(int) RTPathSuidDir(char *pszPath, size_t cchPath);
++
++/**
+ * Gets the user home directory.
+ *
+ * @returns iprt status code.
+diff --git a/include/iprt/process.h b/include/iprt/process.h
+index 043653e..1070280 100644
+--- a/include/iprt/process.h
++++ b/include/iprt/process.h
+@@ -327,6 +327,16 @@ RTR3DECL(const char *) RTProcShortName(void);
+ RTR3DECL(char *) RTProcGetExecutablePath(char *pszExecPath, size_t cbExecPath);
+
+ /**
++ * Gets the path to the NixOS setuid wrappers directory.
++ *
++ * @returns pszExecPath on success. NULL on buffer overflow or other errors.
++ *
++ * @param pszExecPath Where to store the path.
++ * @param cbExecPath The size of the buffer.
++ */
++RTR3DECL(char *) RTProcGetSuidPath(char *pszExecPath, size_t cbExecPath);
++
++/**
+ * Daemonize the current process, making it a background process.
+ *
+ * The way this work is that it will spawn a detached / backgrounded /
+diff --git a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp b/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
+index ce0f288..6193108 100644
+--- a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
++++ b/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
+@@ -1502,9 +1502,9 @@ static int supR3HardenedVerifyFsObject(PCSUPR3HARDENEDFSOBJSTATE pFsObjState, bo
+ bool fBad = !fRelaxed || pFsObjState->Stat.st_gid != 2 /*bin*/ || suplibHardenedStrCmp(pszPath, "/usr/lib/iconv");
+ # else
+ NOREF(fRelaxed);
+- bool fBad = true;
++ bool fBad = !(fDir && pFsObjState->Stat.st_mode & S_ISVTX && !suplibHardenedStrCmp(pszPath, "/nix/store"));
+ # endif
+- if (fBad)
++ if (fBad && suplibHardenedStrCmp(pszPath, "/nix/store"))
+ return supR3HardenedSetError3(VERR_SUPLIB_WRITE_NON_SYS_GROUP, pErrInfo,
+ "An unknown (and thus untrusted) group has write access to '", pszPath,
+ "' and we therefore cannot trust the directory content or that of any subdirectory");
+diff --git a/src/VBox/Main/src-server/generic/NetIf-generic.cpp b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
+index 98dc91a..43a819f 100644
+--- a/src/VBox/Main/src-server/generic/NetIf-generic.cpp
++++ b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
+@@ -47,7 +47,7 @@ static int NetIfAdpCtl(const char * pcszIfName, const char *pszAddr, const char
+ const char *args[] = { NULL, pcszIfName, pszAddr, pszOption, pszMask, NULL };
+
+ char szAdpCtl[RTPATH_MAX];
+- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
++ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
+ if (RT_FAILURE(rc))
+ {
+ LogRel(("NetIfAdpCtl: failed to get program path, rc=%Rrc.\n", rc));
+@@ -89,7 +89,7 @@ static int NetIfAdpCtl(HostNetworkInterface * pIf, const char *pszAddr, const ch
+ int NetIfAdpCtlOut(const char * pcszName, const char * pcszCmd, char *pszBuffer, size_t cBufSize)
+ {
+ char szAdpCtl[RTPATH_MAX];
+- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " ") - strlen(pcszCmd));
++ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " ") - strlen(pcszCmd));
+ if (RT_FAILURE(rc))
+ {
+ LogRel(("NetIfAdpCtlOut: Failed to get program path, rc=%Rrc\n", rc));
+@@ -201,7 +201,7 @@ int NetIfCreateHostOnlyNetworkInterface(VirtualBox *pVirtualBox,
+ progress.queryInterfaceTo(aProgress);
+
+ char szAdpCtl[RTPATH_MAX];
+- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
++ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
+ if (RT_FAILURE(rc))
+ {
+ progress->i_notifyComplete(E_FAIL,
+diff --git a/src/VBox/Runtime/r3/path.cpp b/src/VBox/Runtime/r3/path.cpp
+index 944848e..744a261 100644
+--- a/src/VBox/Runtime/r3/path.cpp
++++ b/src/VBox/Runtime/r3/path.cpp
+@@ -81,6 +81,12 @@ RTDECL(int) RTPathExecDir(char *pszPath, size_t cchPath)
+ }
+
+
++RTDECL(int) RTPathSuidDir(char *pszPath, size_t cchPath)
++{
++ return RTStrCopy(pszPath, cchPath, "/run/wrappers/bin");
++}
++
++
+ RTDECL(int) RTPathAppPrivateNoArch(char *pszPath, size_t cchPath)
+ {
+ #if !defined(RT_OS_WINDOWS) && defined(RTPATH_APP_PRIVATE)
+diff --git a/src/VBox/Runtime/r3/process.cpp b/src/VBox/Runtime/r3/process.cpp
+index 2aab645..9795f21 100644
+--- a/src/VBox/Runtime/r3/process.cpp
++++ b/src/VBox/Runtime/r3/process.cpp
+@@ -111,6 +111,26 @@ RTR3DECL(char *) RTProcGetExecutablePath(char *pszExecPath, size_t cbExecPath)
+ return NULL;
+ }
+
++/*
++ * Note the / at the end! This is important, because the functions using this
++ * will cut off everything after the rightmost / as this function is analogous
++ * to RTProcGetExecutablePath().
++ */
++#define SUIDDIR "/run/wrappers/bin/"
++
++RTR3DECL(char *) RTProcGetSuidPath(char *pszExecPath, size_t cbExecPath)
++{
++ if (cbExecPath >= sizeof(SUIDDIR))
++ {
++ memcpy(pszExecPath, SUIDDIR, sizeof(SUIDDIR));
++ pszExecPath[sizeof(SUIDDIR)] = '\0';
++ return pszExecPath;
++ }
++
++ AssertMsgFailed(("Buffer too small (%zu <= %zu)\n", cbExecPath, sizeof(SUIDDIR)));
++ return NULL;
++}
++
+
+ RTR3DECL(const char *) RTProcShortName(void)
+ {
+diff --git a/src/VBox/Main/src-server/NetworkServiceRunner.cpp b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+index 2e57690..3272c84 100644
+--- a/src/VBox/Main/src-server/NetworkServiceRunner.cpp
++++ b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+@@ -188,7 +188,7 @@ int NetworkServiceRunner::start(bool aKillProcessOnStop)
+ * ASSUME it is relative to the directory that holds VBoxSVC.
+ */
+ char szExePath[RTPATH_MAX];
+- AssertReturn(RTProcGetExecutablePath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
++ AssertReturn(RTProcGetSuidPath(szExePath, RTPATH_MAX), VERR_FILENAME_TOO_LONG);
+ RTPathStripFilename(szExePath);
+ int vrc = RTPathAppend(szExePath, sizeof(szExePath), m->pszProcName);
+ AssertLogRelRCReturn(vrc, vrc);
+diff --git a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
+index 2991d3a7..d042a08b 100644
+--- a/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
++++ b/src/VBox/Main/src-all/MachineLaunchVMCommonWorker.cpp
+@@ -90,7 +90,7 @@ int MachineLaunchVMCommonWorker(const Utf8Str &aNameOrId,
+
+ /* Get the path to the executable directory w/ trailing slash: */
+ char szPath[RTPATH_MAX];
+- int vrc = RTPathAppPrivateArch(szPath, sizeof(szPath));
++ int vrc = RTStrCopy(szPath, sizeof(szPath) - 1, "/run/wrappers/bin");
+ AssertRCReturn(vrc, vrc);
+ size_t cbBufLeft = RTPathEnsureTrailingSeparator(szPath, sizeof(szPath));
+ AssertReturn(cbBufLeft > 0, VERR_FILENAME_TOO_LONG);
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/qt-env-vars.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/qt-env-vars.patch
new file mode 100644
index 000000000000..ad1d1fd11f87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/qt-env-vars.patch
@@ -0,0 +1,14 @@
+--- a/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp
++++ b/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp
+@@ -2131,6 +2131,11 @@ static void supR3HardenedMainPurgeEnvironment(char **envp)
+ /** @todo Call NT API to do the same. */
+ #endif
+ }
++
++ /*
++ * NixOS hack: Set QT_PLUGIN_PATH to make Qt find plugins.
++ */
++ setenv("QT_PLUGIN_PATH", "@qtPluginPath@", /*overwrite=*/ 1);
+ }
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/qtx11extras.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/qtx11extras.patch
new file mode 100644
index 000000000000..a3aa98b081d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/qtx11extras.patch
@@ -0,0 +1,16 @@
+diff --git a/kBuild/units/qt5.kmk b/kBuild/units/qt5.kmk
+index 71b96a3..73391f0 100644
+--- a/kBuild/units/qt5.kmk
++++ b/kBuild/units/qt5.kmk
+@@ -1054,9 +1054,9 @@ else
+ $(eval $(target)_LIBS += $(PATH_SDK_QT5_LIB)/$(qt_prefix)qtmain$(qt_infix)$(SUFF_LIB) )
+ endif
+ else
+- $(eval $(target)_LIBS += $(foreach module,$(qt_modules), $(PATH_SDK_QT5_LIB)/lib$(qt_prefix)Qt5$(module)$(qt_infix)$(SUFF_DLL)) )
++ $(eval $(target)_LIBS += $(foreach module,$(qt_modules), $(if $(filter X11Extras,$(module)),$(PATH_QT5_X11_EXTRAS_LIB),$(PATH_SDK_QT5_LIB))/lib$(qt_prefix)Qt5$(module)$(qt_infix)$(SUFF_DLL)) )
+ endif
+- $(eval $(target)_INCS += $(addprefix $(PATH_SDK_QT5_INC)/Qt,$(qt_modules)) $(PATH_SDK_QT5_INC) )
++ $(eval $(target)_INCS += $(addprefix $(PATH_SDK_QT5_INC)/Qt,$(qt_modules)) $(PATH_SDK_QT5_INC) $(PATH_QT5_X11_EXTRAS_INC)/QtX11Extras )
+ endif
+ $(eval $(target)_DEFS += $(foreach module,$(toupper $(qt_modules)), QT_$(module)_LIB) )
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh
new file mode 100755
index 000000000000..fcd02ae8a27b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts nix-prefetch-scripts jq
+
+set -xeuo pipefail
+
+nixpkgs="$(git rev-parse --show-toplevel)"
+
+attr=virtualbox
+oldVersion="$(nix-instantiate --eval -E "with import $nixpkgs {}; $attr.version or (builtins.parseDrvName $attr.name).version" | tr -d '"')"
+latestVersion="$(curl -sS https://download.virtualbox.org/virtualbox/LATEST.TXT)"
+
+function fileShaSum() {
+ echo "$1" | grep -w $2 | cut -f1 -d' '
+}
+function oldHash() {
+ nix-instantiate --eval --strict -A "$1.drvAttrs.outputHash" | tr -d '"'
+}
+function nixFile() {
+ nix-instantiate --eval --strict -A "${1}.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/'
+}
+
+if [ ! "$oldVersion" = "$latestVersion" ]; then
+ shaSums=$(curl -sS https://download.virtualbox.org/virtualbox/$latestVersion/SHA256SUMS)
+
+ virtualBoxShaSum=$(fileShaSum "$shaSums" "VirtualBox-$latestVersion.tar.bz2")
+ extpackShaSum=$(fileShaSum "$shaSums" "Oracle_VM_VirtualBox_Extension_Pack-$latestVersion.vbox-extpack")
+ guestAdditionsShaSum=$(fileShaSum "$shaSums" "*VBoxGuestAdditions_$latestVersion.iso")
+
+ virtualboxNixFile=$(nixFile ${attr})
+ extpackNixFile=$(nixFile ${attr}Extpack)
+ guestAdditionsNixFile=$(nixFile linuxPackages.${attr}GuestAdditions)
+
+ extpackOldShaSum=$(oldHash ${attr}Extpack)
+ guestAdditionsOldShaSum=$(oldHash linuxPackages.${attr}GuestAdditions.src)
+
+ update-source-version $attr $latestVersion $virtualBoxShaSum
+ sed -i -e 's|value = "'$extpackOldShaSum'"|value = "'$extpackShaSum'"|' $extpackNixFile
+ sed -i -e 's|sha256 = "'$guestAdditionsOldShaSum'"|sha256 = "'$guestAdditionsShaSum'"|' $guestAdditionsNixFile
+
+ git add $virtualboxNixFile $extpackNixFile $guestAdditionsNixFile
+ git commit -m "$attr: ${oldVersion} -> ${latestVersion}"
+else
+ echo "$attr is already up-to-date"
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/vpcs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/vpcs/default.nix
new file mode 100644
index 000000000000..464fe46b499c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/vpcs/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, glibc }:
+
+stdenv.mkDerivation rec {
+ pname = "vpcs";
+ version = "0.8";
+
+ src = fetchurl {
+ name = "${pname}-${version}.tar.bz2";
+ url = "mirror://sourceforge/project/${pname}/${version}/${pname}-${version}-src.tbz";
+ sha256 = "14y9nflcyq486vvw0na0fkfmg5dac004qb332v4m5a0vaz8059nw";
+ };
+
+ patches = [ ./vpcs-0.8-glibc-2.26.patch ];
+
+ buildInputs = [ glibc.static ];
+
+ buildPhase = ''(
+ cd src
+ ./mk.sh ${stdenv.buildPlatform.platform.kernelArch}
+ )'';
+
+ installPhase = ''
+ install -D -m555 src/vpcs $out/bin/vpcs;
+ install -D -m444 man/vpcs.1 $out/share/man/man1/vpcs.1;
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Virtual PC simulator";
+ longDescription = ''
+ The VPCS can simulate up to 9 PCs. You can ping/traceroute them, or
+ ping/traceroute the other hosts/routers from the VPCS when you study the
+ Cisco routers in the dynamips.
+ '';
+ homepage = "https://sourceforge.net/projects/vpcs/";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch
new file mode 100644
index 000000000000..d94a39ccd64d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch
@@ -0,0 +1,14 @@
+diff --git a/src/getopt.h b/src/getopt.h
+index 4394aa2..bf59e10 100644
+--- a/src/getopt.h
++++ b/src/getopt.h
+@@ -49,9 +49,6 @@ extern int optind;
+ extern int opterr;
+ extern int optopt;
+
+-#ifndef FreeBSD
+-int getopt(int argc, char** argv, char* optstr);
+-#endif
+ int arg_to_int(const char* arg, int min, int max, int defalt);
+
+ #ifdef __cplusplus
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix
new file mode 100644
index 000000000000..cbaa0a579926
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute }:
+stdenv.mkDerivation rec {
+ pname = "x11docker";
+ version = "6.6.2";
+ src = fetchFromGitHub {
+ owner = "mviereck";
+ repo = "x11docker";
+ rev = "v${version}";
+ sha256 = "1skdgr2hipd7yx9c7r7nr3914gm9cm1xj6h3qdsa9f92xxm3aml1";
+ };
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ # Don't install `x11docker-gui`, because requires `kaptain` dependency
+ installPhase = ''
+ install -D x11docker "$out/bin/x11docker";
+ wrapProgram "$out/bin/x11docker" \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ getopt gnugrep gawk ps mount iproute nx-libs xorg.xdpyinfo xorg.xhost xorg.xinit ]}"
+ '';
+
+ meta = {
+ description = "Run graphical applications with Docker";
+ homepage = "https://github.com/mviereck/x11docker";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ jD91mZM2 ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-install-python.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-install-python.patch
new file mode 100644
index 000000000000..53821c0d9c51
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-install-python.patch
@@ -0,0 +1,16 @@
+tools/python/install-wrap script brakes shebangs patching, disable
+
+diff --git a/tools/Rules.mk b/tools/Rules.mk
+index 87a56dc..a7da869 100644
+--- a/tools/Rules.mk
++++ b/tools/Rules.mk
+@@ -90,8 +90,7 @@ CFLAGS += $(CFLAGS-y)
+
+ CFLAGS += $(EXTRA_CFLAGS_XEN_TOOLS)
+
+-INSTALL_PYTHON_PROG = \
+- $(XEN_ROOT)/tools/python/install-wrap "$(PYTHON_PATH)" $(INSTALL_PROG)
++INSTALL_PYTHON_PROG = $(INSTALL_PROG)
+
+ %.opic: %.c
+ $(CC) $(CPPFLAGS) -DPIC $(CFLAGS) $(CFLAGS_$*.opic) -fPIC -c -o $@ $< $(APPEND_CFLAGS)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.patch
new file mode 100644
index 000000000000..072338b87aba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.patch
@@ -0,0 +1,27 @@
+hack to make etherboot use prefetched ipxe
+
+diff --git a/tools/firmware/etherboot/Makefile b/tools/firmware/etherboot/Makefile
+index a0578d2..64428a0 100644
+--- a/tools/firmware/etherboot/Makefile
++++ b/tools/firmware/etherboot/Makefile
+@@ -16,6 +16,7 @@ IPXE_TARBALL_URL ?= $(XEN_EXTFILES_URL)/ipxe-git-$(IPXE_GIT_TAG).tar.gz
+
+ D=ipxe
+ T=ipxe.tar.gz
++G=ipxe.git
+
+ ROMS = $(addprefix $D/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS)))
+
+@@ -36,9 +37,9 @@ $T:
+ fi
+ mv _$T $T
+
+-$D/src/arch/i386/Makefile: $T Config
+- rm -rf $D
+- gzip -dc $T | tar xf -
++$D/src/arch/i386/Makefile: $G Config
++ mkdir $D
++ cp -a $G/* $D
+ for i in $$(cat patches/series) ; do \
+ patch -d $D -p1 --quiet <patches/$$i || exit 1 ; \
+ done
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch
new file mode 100644
index 000000000000..339972a2cdeb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch
@@ -0,0 +1,19 @@
+diff -uNr a/src/Kconfig b/src/Kconfig
+--- a/src/Kconfig 2015-08-31 10:15:13.231134858 +0200
++++ b/src/Kconfig 2015-08-31 10:14:24.039180178 +0200
+@@ -144,13 +144,13 @@
+ config ATA_DMA
+ depends on ATA
+ bool "ATA DMA"
+- default n
++ default y
+ help
+ Detect and try to use ATA bus mastering DMA controllers.
+ config ATA_PIO32
+ depends on ATA
+ bool "ATA 32bit PIO"
+- default n
++ default y
+ help
+ Use 32bit PIO accesses on ATA (minor optimization on PCI transfers).
+ config AHCI
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch
new file mode 100644
index 000000000000..67b7ac777b5d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch
@@ -0,0 +1,104 @@
+From bd71555985efc423b1a119b6a3177de855763453 Mon Sep 17 00:00:00 2001
+From: Fabio Fantoni <fabio.fantoni@m2r.biz>
+Date: Tue, 20 Jan 2015 11:26:30 +0100
+Subject: [PATCH] libxl: Spice image compression setting support for upstream
+ qemu
+
+Usage:
+spice_image_compression=[auto_glz|auto_lz|quic|glz|lz|off]
+
+Specifies what image compression is to be used by spice (if given),
+otherwise the qemu default will be used.
+
+Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
+Acked-by: Wei Liu <wei.liu2@citrix.com>
+---
+ docs/man/xl.cfg.pod.5 | 6 ++++++
+ tools/libxl/libxl.h | 11 +++++++++++
+ tools/libxl/libxl_dm.c | 4 ++++
+ tools/libxl/libxl_types.idl | 1 +
+ tools/libxl/xl_cmdimpl.c | 2 ++
+ 5 files changed, 24 insertions(+)
+
+diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
+index e2f91fc..0c2cbac 100644
+--- a/docs/man/xl.cfg.pod.5
++++ b/docs/man/xl.cfg.pod.5
+@@ -1427,6 +1427,12 @@ for redirection of up to 4 usb devices from spice client to domU's qemu.
+ It requires an usb controller and if not defined it will automatically adds
+ an usb2 controller. The default is disabled (0).
+
++=item B<spice_image_compression=[auto_glz|auto_lz|quic|glz|lz|off]>
++
++Specifies what image compression is to be used by spice (if given), otherwise
++the qemu default will be used. Please see documentations of your current qemu
++version for details.
++
+ =back
+
+ =head3 Miscellaneous Emulated Hardware
+diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
+index 0a123f1..b8e0b67 100644
+--- a/tools/libxl/libxl.h
++++ b/tools/libxl/libxl.h
+@@ -528,6 +528,17 @@ typedef struct libxl__ctx libxl_ctx;
+ #define LIBXL_HAVE_SPICE_USBREDIREDIRECTION 1
+
+ /*
++ * LIBXL_HAVE_SPICE_IMAGECOMPRESSION
++ *
++ * If defined, then the libxl_spice_info structure will contain a string type
++ * field: image_compression. This value defines what Spice image compression
++ * is used.
++ *
++ * If this is not defined, the Spice image compression setting support is ignored.
++ */
++#define LIBXL_HAVE_SPICE_IMAGECOMPRESSION 1
++
++/*
+ * LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS 1
+ *
+ * If this is defined, libxl_domain_create_restore()'s API has changed to
+diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
+index c2b0487..40c8649 100644
+--- a/tools/libxl/libxl_dm.c
++++ b/tools/libxl/libxl_dm.c
+@@ -398,6 +398,10 @@ static char *dm_spice_options(libxl__gc *gc,
+ if (!libxl_defbool_val(spice->clipboard_sharing))
+ opt = libxl__sprintf(gc, "%s,disable-copy-paste", opt);
+
++ if (spice->image_compression)
++ opt = libxl__sprintf(gc, "%s,image-compression=%s", opt,
++ spice->image_compression);
++
+ return opt;
+ }
+
+diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
+index 1214d2e..052ded9 100644
+--- a/tools/libxl/libxl_types.idl
++++ b/tools/libxl/libxl_types.idl
+@@ -241,6 +241,7 @@ libxl_spice_info = Struct("spice_info", [
+ ("vdagent", libxl_defbool),
+ ("clipboard_sharing", libxl_defbool),
+ ("usbredirection", integer),
++ ("image_compression", string),
+ ])
+
+ libxl_sdl_info = Struct("sdl_info", [
+diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
+index 0b02a6c..00aa69d 100644
+--- a/tools/libxl/xl_cmdimpl.c
++++ b/tools/libxl/xl_cmdimpl.c
+@@ -1948,6 +1948,8 @@ skip_vfb:
+ &b_info->u.hvm.spice.clipboard_sharing, 0);
+ if (!xlu_cfg_get_long (config, "spiceusbredirection", &l, 0))
+ b_info->u.hvm.spice.usbredirection = l;
++ xlu_cfg_replace_string (config, "spice_image_compression",
++ &b_info->u.hvm.spice.image_compression, 0);
+ xlu_cfg_get_defbool(config, "nographic", &b_info->u.hvm.nographic, 0);
+ xlu_cfg_get_defbool(config, "gfx_passthru",
+ &b_info->u.hvm.gfx_passthru, 0);
+--
+1.9.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch
new file mode 100644
index 000000000000..acf9cff99251
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch
@@ -0,0 +1,104 @@
+From 296c7f3284efe655d95a8ae045a5dc1a20d6fff0 Mon Sep 17 00:00:00 2001
+From: Fabio Fantoni <fabio.fantoni@m2r.biz>
+Date: Tue, 20 Jan 2015 11:33:17 +0100
+Subject: [PATCH] libxl: Spice streaming video setting support for upstream
+ qemu
+
+Usage:
+spice_streaming_video=[filter|all|off]
+
+Specifies what streaming video setting is to be used by spice (if
+given),
+otherwise the qemu default will be used.
+
+Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
+Acked-by: Wei Liu <wei.liu2@citrix.com>
+---
+ docs/man/xl.cfg.pod.5 | 5 +++++
+ tools/libxl/libxl.h | 11 +++++++++++
+ tools/libxl/libxl_dm.c | 4 ++++
+ tools/libxl/libxl_types.idl | 1 +
+ tools/libxl/xl_cmdimpl.c | 2 ++
+ 5 files changed, 23 insertions(+)
+
+diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
+index 0c2cbac..408653f 100644
+--- a/docs/man/xl.cfg.pod.5
++++ b/docs/man/xl.cfg.pod.5
+@@ -1433,6 +1433,11 @@ Specifies what image compression is to be used by spice (if given), otherwise
+ the qemu default will be used. Please see documentations of your current qemu
+ version for details.
+
++=item B<spice_streaming_video=[filter|all|off]>
++
++Specifies what streaming video setting is to be used by spice (if given),
++otherwise the qemu default will be used.
++
+ =back
+
+ =head3 Miscellaneous Emulated Hardware
+diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
+index b8e0b67..c219f59 100644
+--- a/tools/libxl/libxl.h
++++ b/tools/libxl/libxl.h
+@@ -539,6 +539,17 @@ typedef struct libxl__ctx libxl_ctx;
+ #define LIBXL_HAVE_SPICE_IMAGECOMPRESSION 1
+
+ /*
++ * LIBXL_HAVE_SPICE_STREAMINGVIDEO
++ *
++ * If defined, then the libxl_spice_info structure will contain a string type
++ * field: streaming_video. This value defines what Spice streaming video setting
++ * is used.
++ *
++ * If this is not defined, the Spice streaming video setting support is ignored.
++ */
++#define LIBXL_HAVE_SPICE_STREAMINGVIDEO 1
++
++/*
+ * LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS 1
+ *
+ * If this is defined, libxl_domain_create_restore()'s API has changed to
+diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
+index 40c8649..d8d6f0c 100644
+--- a/tools/libxl/libxl_dm.c
++++ b/tools/libxl/libxl_dm.c
+@@ -402,6 +402,10 @@ static char *dm_spice_options(libxl__gc *gc,
+ opt = libxl__sprintf(gc, "%s,image-compression=%s", opt,
+ spice->image_compression);
+
++ if (spice->streaming_video)
++ opt = libxl__sprintf(gc, "%s,streaming-video=%s", opt,
++ spice->streaming_video);
++
+ return opt;
+ }
+
+diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
+index 052ded9..02be466 100644
+--- a/tools/libxl/libxl_types.idl
++++ b/tools/libxl/libxl_types.idl
+@@ -242,6 +242,7 @@ libxl_spice_info = Struct("spice_info", [
+ ("clipboard_sharing", libxl_defbool),
+ ("usbredirection", integer),
+ ("image_compression", string),
++ ("streaming_video", string),
+ ])
+
+ libxl_sdl_info = Struct("sdl_info", [
+diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
+index 00aa69d..b7eac29 100644
+--- a/tools/libxl/xl_cmdimpl.c
++++ b/tools/libxl/xl_cmdimpl.c
+@@ -1950,6 +1950,8 @@ skip_vfb:
+ b_info->u.hvm.spice.usbredirection = l;
+ xlu_cfg_replace_string (config, "spice_image_compression",
+ &b_info->u.hvm.spice.image_compression, 0);
++ xlu_cfg_replace_string (config, "spice_streaming_video",
++ &b_info->u.hvm.spice.streaming_video, 0);
+ xlu_cfg_get_defbool(config, "nographic", &b_info->u.hvm.nographic, 0);
+ xlu_cfg_get_defbool(config, "gfx_passthru",
+ &b_info->u.hvm.gfx_passthru, 0);
+--
+1.9.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch
new file mode 100644
index 000000000000..1771b662bc3a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch
@@ -0,0 +1,165 @@
+From 161212ef02312c0681d2d809c8ff1e1f0ea6f6f9 Mon Sep 17 00:00:00 2001
+From: Fabio Fantoni <fabio.fantoni@m2r.biz>
+Date: Wed, 29 Apr 2015 11:20:28 +0200
+Subject: [PATCH] libxl: Add qxl vga interface support for upstream qemu
+
+Usage:
+vga="qxl"
+
+Qxl vga support many resolutions that not supported by stdvga,
+mainly the 16:9 ones and other high up to 2560x1600.
+With QXL you can get improved performance and smooth video also
+with high resolutions and high quality.
+Require their drivers installed in the domU and spice used
+otherwise act as a simple stdvga.
+
+Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
+Signed-off-by: Zhou Peng <zpengxen@gmail.com>
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
+---
+ docs/man/xl.cfg.pod.5 | 10 +++++++++-
+ tools/libxl/libxl.h | 10 ++++++++++
+ tools/libxl/libxl_create.c | 13 +++++++++++++
+ tools/libxl/libxl_dm.c | 8 ++++++++
+ tools/libxl/libxl_types.idl | 1 +
+ tools/libxl/xl_cmdimpl.c | 2 ++
+ 6 files changed, 43 insertions(+), 1 deletion(-)
+
+diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
+index f936dfc..8e4154f 100644
+--- a/docs/man/xl.cfg.pod.5
++++ b/docs/man/xl.cfg.pod.5
+@@ -1360,6 +1360,9 @@ qemu-xen-traditional device-model, the amount of video RAM is fixed at 4 MB,
+ which is sufficient for 1024x768 at 32 bpp. For the upstream qemu-xen
+ device-model, the default and minimum is 8 MB.
+
++For B<qxl> vga, the default is both default and minimal 128MB.
++If B<videoram> is set less than 128MB, an error will be triggered.
++
+ =item B<stdvga=BOOLEAN>
+
+ Select a standard VGA card with VBE (VESA BIOS Extensions) as the
+@@ -1371,9 +1374,14 @@ This option is deprecated, use vga="stdvga" instead.
+
+ =item B<vga="STRING">
+
+-Selects the emulated video card (none|stdvga|cirrus).
++Selects the emulated video card (none|stdvga|cirrus|qxl).
+ The default is cirrus.
+
++In general, QXL should work with the Spice remote display protocol
++for acceleration, and QXL driver is necessary in guest in this case.
++QXL can also work with the VNC protocol, but it will be like a standard
++VGA without acceleration.
++
+ =item B<vnc=BOOLEAN>
+
+ Allow access to the display via the VNC protocol. This enables the
+diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
+index 44bd8e2..efc0617 100644
+--- a/tools/libxl/libxl.h
++++ b/tools/libxl/libxl.h
+@@ -535,6 +535,16 @@ typedef struct libxl__ctx libxl_ctx;
+ #define LIBXL_HAVE_DOMINFO_OUTSTANDING_MEMKB 1
+
+ /*
++ * LIBXL_HAVE_QXL
++ *
++ * If defined, then the libxl_vga_interface_type will contain another value:
++ * "QXL". This value define if qxl vga is supported.
++ *
++ * If this is not defined, the qxl vga support is missed.
++ */
++#define LIBXL_HAVE_QXL 1
++
++/*
+ * LIBXL_HAVE_SPICE_VDAGENT
+ *
+ * If defined, then the libxl_spice_info structure will contain a boolean type:
+diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
+index e5a343f..188f7df 100644
+--- a/tools/libxl/libxl_create.c
++++ b/tools/libxl/libxl_create.c
+@@ -248,6 +248,10 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
+ if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->video_memkb = 0;
+ break;
++ case LIBXL_VGA_INTERFACE_TYPE_QXL:
++ LOG(ERROR,"qemu upstream required for qxl vga");
++ return ERROR_INVAL;
++ break;
+ case LIBXL_VGA_INTERFACE_TYPE_STD:
+ if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->video_memkb = 8 * 1024;
+@@ -272,6 +276,15 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
+ if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->video_memkb = 0;
+ break;
++ case LIBXL_VGA_INTERFACE_TYPE_QXL:
++ if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) {
++ b_info->video_memkb = (128 * 1024);
++ } else if (b_info->video_memkb < (128 * 1024)) {
++ LOG(ERROR,
++ "128 Mib videoram is the minimum for qxl default");
++ return ERROR_INVAL;
++ }
++ break;
+ case LIBXL_VGA_INTERFACE_TYPE_STD:
+ if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->video_memkb = 16 * 1024;
+diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
+index 30c1578..58c9b99 100644
+--- a/tools/libxl/libxl_dm.c
++++ b/tools/libxl/libxl_dm.c
+@@ -251,6 +251,8 @@ static char ** libxl__build_device_model_args_old(libxl__gc *gc,
+ case LIBXL_VGA_INTERFACE_TYPE_NONE:
+ flexarray_append_pair(dm_args, "-vga", "none");
+ break;
++ case LIBXL_VGA_INTERFACE_TYPE_QXL:
++ break;
+ }
+
+ if (b_info->u.hvm.boot) {
+@@ -625,6 +627,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+ break;
+ case LIBXL_VGA_INTERFACE_TYPE_NONE:
+ break;
++ case LIBXL_VGA_INTERFACE_TYPE_QXL:
++ /* QXL have 2 ram regions, ram and vram */
++ flexarray_append_pair(dm_args, "-device",
++ GCSPRINTF("qxl-vga,vram_size_mb=%"PRIu64",ram_size_mb=%"PRIu64,
++ (b_info->video_memkb/2/1024), (b_info->video_memkb/2/1024) ) );
++ break;
+ }
+
+ if (b_info->u.hvm.boot) {
+diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
+index 117b61d..023b21e 100644
+--- a/tools/libxl/libxl_types.idl
++++ b/tools/libxl/libxl_types.idl
+@@ -183,6 +183,7 @@ libxl_vga_interface_type = Enumeration("vga_interface_type", [
+ (1, "CIRRUS"),
+ (2, "STD"),
+ (3, "NONE"),
++ (4, "QXL"),
+ ], init_val = "LIBXL_VGA_INTERFACE_TYPE_CIRRUS")
+
+ libxl_vendor_device = Enumeration("vendor_device", [
+diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
+index 648ca08..526a1f6 100644
+--- a/tools/libxl/xl_cmdimpl.c
++++ b/tools/libxl/xl_cmdimpl.c
+@@ -2115,6 +2115,8 @@ skip_vfb:
+ b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
+ } else if (!strcmp(buf, "none")) {
+ b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_NONE;
++ } else if (!strcmp(buf, "qxl")) {
++ b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_QXL;
+ } else {
+ fprintf(stderr, "Unknown vga \"%s\" specified\n", buf);
+ exit(1);
+--
+1.9.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0004-makefile-use-efi-ld.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0004-makefile-use-efi-ld.patch
new file mode 100644
index 000000000000..a103cb161710
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0004-makefile-use-efi-ld.patch
@@ -0,0 +1,36 @@
+diff -Naur xen-4.10.4-orig/xen/arch/x86/Makefile xen-4.10.4-patched/xen/arch/x86/Makefile
+--- xen-4.10.4-orig/xen/arch/x86/Makefile 2019-07-04 01:28:50.000000000 +1000
++++ xen-4.10.4-patched/xen/arch/x86/Makefile 2020-03-03 13:32:34.607951507 +1100
+@@ -166,7 +166,7 @@
+ # Check if the compiler supports the MS ABI.
+ export XEN_BUILD_EFI := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
+ # Check if the linker supports PE.
+-XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
++XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(EFI_LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
+ CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
+
+ $(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A VIRT_START$$,,p')
+@@ -188,20 +188,20 @@
+
+ $(TARGET).efi: prelink-efi.o $(note_file) efi.lds efi/relocs-dummy.o $(BASEDIR)/common/symbols-dummy.o efi/mkreloc
+ $(foreach base, $(VIRT_BASE) $(ALT_BASE), \
+- $(guard) $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< efi/relocs-dummy.o \
++ $(guard) $(EFI_LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< efi/relocs-dummy.o \
+ $(BASEDIR)/common/symbols-dummy.o $(note_file) -o $(@D)/.$(@F).$(base).0 &&) :
+ $(guard) efi/mkreloc $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).0) >$(@D)/.$(@F).0r.S
+ $(guard) $(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).0 \
+ | $(guard) $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0s.S
+ $(guard) $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o
+ $(foreach base, $(VIRT_BASE) $(ALT_BASE), \
+- $(guard) $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< \
++ $(guard) $(EFI_LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< \
+ $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o $(note_file) -o $(@D)/.$(@F).$(base).1 &&) :
+ $(guard) efi/mkreloc $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).1) >$(@D)/.$(@F).1r.S
+ $(guard) $(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).1 \
+ | $(guard) $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1s.S
+ $(guard) $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o
+- $(guard) $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T efi.lds -N $< \
++ $(guard) $(EFI_LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T efi.lds -N $< \
+ $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o $(note_file) -o $@
+ if $(guard) false; then rm -f $@; echo 'EFI support disabled'; \
+ else $(NM) -pa --format=sysv $(@D)/$(@F) \
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.patch
new file mode 100644
index 000000000000..11989e86c770
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.patch
@@ -0,0 +1,35 @@
+EFI_MOUNTPOINT is conventionally /boot/efi or /boot/EFI or something
+like that, and (on my machine) has directories within that called
+{Boot, nixos, gummiboot}.
+
+This patch does two things:
+
+1) Xen apparently wants to put files in
+$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR) - we remove the duplicate 'efi' name
+because I can't see why we have it
+
+2) Ensures the said directory exists
+
+
+--- a/xen/Makefile 2016-01-08 01:50:58.028045657 +0000
++++ b/xen/Makefile 2016-01-08 01:51:33.560268718 +0000
+@@ -49,7 +49,9 @@
+ ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
+ ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
+ if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
+- $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
++ [ -d $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR) ] || \
++ $(INSTALL_DIR) $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR) ;\
++ $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
+ elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
+ echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
+ fi; \
+@@ -69,7 +69,7 @@
+ rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi
+ rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi
+ rm -f $(D)$(EFI_DIR)/$(T).efi
+- rm -f $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi
++ rm -f $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi
+
+ .PHONY: _debug
+ _debug:
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix
new file mode 100644
index 000000000000..7e3c73fb11d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix
@@ -0,0 +1,181 @@
+{ stdenv, callPackage, fetchurl, fetchpatch, fetchgit
+, ocaml-ng
+, withInternalQemu ? true
+, withInternalTraditionalQemu ? true
+, withInternalSeabios ? true
+, withSeabios ? !withInternalSeabios, seabios ? null
+, withInternalOVMF ? false # FIXME: tricky to build
+, withOVMF ? false, OVMF
+, withLibHVM ? true
+
+# qemu
+, udev, pciutils, xorg, SDL, pixman, acl, glusterfs, spice-protocol, usbredir
+, alsaLib, glib, python2
+, ... } @ args:
+
+assert withInternalSeabios -> !withSeabios;
+assert withInternalOVMF -> !withOVMF;
+
+with stdenv.lib;
+
+# Patching XEN? Check the XSAs at
+# https://xenbits.xen.org/xsa/
+# and try applying all the ones we don't have yet.
+
+let
+ xsa = import ./xsa-patches.nix { inherit fetchpatch; };
+
+ qemuMemfdBuildFix = fetchpatch {
+ name = "xen-4.8-memfd-build-fix.patch";
+ url = "https://github.com/qemu/qemu/commit/75e5b70e6b5dcc4f2219992d7cffa462aa406af0.patch";
+ sha256 = "0gaz93kb33qc0jx6iphvny0yrd17i8zhcl3a9ky5ylc2idz0wiwa";
+ };
+
+ qemuDeps = [
+ udev pciutils xorg.libX11 SDL pixman acl glusterfs spice-protocol usbredir
+ alsaLib glib python2
+ ];
+in
+
+callPackage (import ./generic.nix (rec {
+ version = "4.10.4";
+
+ src = fetchurl {
+ url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz";
+ sha256 = "0ipkr7b3v3y183n6nfmz7q3gnzxa20011df4jpvxi6pmr8cpnkwh";
+ };
+
+ # Sources needed to build tools and firmwares.
+ xenfiles = optionalAttrs withInternalQemu {
+ qemu-xen = {
+ src = fetchgit {
+ url = "https://xenbits.xen.org/git-http/qemu-xen.git";
+ # rev = "refs/tags/qemu-xen-${version}";
+ # use revision hash - reproducible but must be updated with each new version
+ rev = "qemu-xen-${version}";
+ sha256 = "0laxvhdjz1njxjvq3jzw2yqvdr9gdn188kqjf2gcrfzgih7xv2ym";
+ };
+ buildInputs = qemuDeps;
+ postPatch = ''
+ # needed in build but /usr/bin/env is not available in sandbox
+ substituteInPlace scripts/tracetool.py \
+ --replace "/usr/bin/env python" "${python2}/bin/python"
+ '';
+ meta.description = "Xen's fork of upstream Qemu";
+ };
+ } // optionalAttrs withInternalTraditionalQemu {
+ qemu-xen-traditional = {
+ src = fetchgit {
+ url = "https://xenbits.xen.org/git-http/qemu-xen-traditional.git";
+ # rev = "refs/tags/xen-${version}";
+ # use revision hash - reproducible but must be updated with each new version
+ rev = "c8ea0457495342c417c3dc033bba25148b279f60";
+ sha256 = "0v5nl3c08kpjg57fb8l191h1y57ykp786kz6l525jgplif28vx13";
+ };
+ buildInputs = qemuDeps;
+ patches = [
+ ];
+ postPatch = ''
+ substituteInPlace xen-hooks.mak \
+ --replace /usr/include/pci ${pciutils}/include/pci
+ '';
+ meta.description = "Xen's fork of upstream Qemu that uses old device model";
+ };
+ } // optionalAttrs withInternalSeabios {
+ "firmware/seabios-dir-remote" = {
+ src = fetchgit {
+ url = "https://xenbits.xen.org/git-http/seabios.git";
+ rev = "f0cdc36d2f2424f6b40438f7ee7cc502c0eff4df";
+ sha256 = "1wq5pjkjrfzqnq3wyr15mcn1l4c563m65gdyf8jm97kgb13pwwfm";
+ };
+ patches = [ ./0000-qemu-seabios-enable-ATA_DMA.patch ];
+ meta.description = "Xen's fork of Seabios";
+ };
+ } // optionalAttrs withInternalOVMF {
+ "firmware/ovmf-dir-remote" = {
+ src = fetchgit {
+ url = "https://xenbits.xen.org/git-http/ovmf.git";
+ rev = "173bf5c847e3ca8b42c11796ce048d8e2e916ff8";
+ sha256 = "07zmdj90zjrzip74fvd4ss8n8njk6cim85s58mc6snxmqqv7gmcr";
+ };
+ meta.description = "Xen's fork of OVMF";
+ };
+ } // {
+ # TODO: patch Xen to make this optional?
+ "firmware/etherboot/ipxe.git" = {
+ src = fetchgit {
+ url = "https://git.ipxe.org/ipxe.git";
+ rev = "356f6c1b64d7a97746d1816cef8ca22bdd8d0b5d";
+ sha256 = "15n400vm3id5r8y3k6lrp9ab2911a9vh9856f5gvphkazfnmns09";
+ };
+ meta.description = "Xen's fork of iPXE";
+ };
+ } // optionalAttrs withLibHVM {
+ xen-libhvm-dir-remote = {
+ src = fetchgit {
+ name = "xen-libhvm";
+ url = "https://github.com/michalpalka/xen-libhvm";
+ rev = "83065d36b36d6d527c2a4e0f5aaf0a09ee83122c";
+ sha256 = "1jzv479wvgjkazprqdzcdjy199azmx2xl3pnxli39kc5mvjz3lzd";
+ };
+ buildPhase = ''
+ make
+ cd biospt
+ cc -Wall -g -D_LINUX -Wstrict-prototypes biospt.c -o biospt -I../libhvm -L../libhvm -lxenhvm
+ '';
+ installPhase = ''
+ make install
+ cp biospt/biospt $out/bin/
+ '';
+ meta = {
+ description = ''
+ Helper library for reading ACPI and SMBIOS firmware values
+ from the host system for use with the HVM guest firmware
+ pass-through feature in Xen'';
+ license = licenses.bsd2;
+ };
+ };
+ };
+
+ configureFlags = []
+ ++ optional (!withInternalQemu) "--with-system-qemu" # use qemu from PATH
+ ++ optional (withInternalTraditionalQemu) "--enable-qemu-traditional"
+ ++ optional (!withInternalTraditionalQemu) "--disable-qemu-traditional"
+
+ ++ optional (withSeabios) "--with-system-seabios=${seabios}"
+ ++ optional (!withInternalSeabios && !withSeabios) "--disable-seabios"
+
+ ++ optional (withOVMF) "--with-system-ovmf=${OVMF.fd}/FV/OVMF.fd"
+ ++ optional (withInternalOVMF) "--enable-ovmf";
+
+ NIX_CFLAGS_COMPILE = toString [
+ # Fix build on Glibc 2.24.
+ "-Wno-error=deprecated-declarations"
+ # Fix build with GCC 8
+ "-Wno-error=maybe-uninitialized"
+ "-Wno-error=stringop-truncation"
+ "-Wno-error=format-truncation"
+ "-Wno-error=array-bounds"
+ # Fix build with GCC 9
+ "-Wno-error=address-of-packed-member"
+ "-Wno-error=format-overflow"
+ "-Wno-error=absolute-value"
+ ];
+
+ postPatch = ''
+ # Avoid a glibc >= 2.25 deprecation warnings that get fatal via -Werror.
+ sed 1i'#include <sys/sysmacros.h>' \
+ -i tools/blktap2/control/tap-ctl-allocate.c \
+ -i tools/libxl/libxl_device.c
+ # Makefile didn't include previous PKG_CONFIG_PATH so glib wasn't found
+ substituteInPlace tools/Makefile \
+ --replace 'PKG_CONFIG_PATH=$(XEN_ROOT)/tools/pkg-config' 'PKG_CONFIG_PATH=$(XEN_ROOT)/tools/pkg-config:$(PKG_CONFIG_PATH)'
+ '';
+
+ passthru = {
+ qemu-system-i386 = if withInternalQemu
+ then "lib/xen/bin/qemu-system-i386"
+ else throw "this xen has no qemu builtin";
+ };
+
+})) ({ ocamlPackages = ocaml-ng.ocamlPackages_4_05; } // args)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/acpica-utils-20180427.patch b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/acpica-utils-20180427.patch
new file mode 100644
index 000000000000..aa4fd494082d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/acpica-utils-20180427.patch
@@ -0,0 +1,63 @@
+From 858dbaaeda33b05c1ac80aea0ba9a03924e09005 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
+Date: Wed, 9 May 2018 11:08:12 +0100
+Subject: [PATCH] libacpi: fixes for iasl >= 20180427
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+New versions of iasl have introduced improved C file generation, as
+reported in the changelog:
+
+iASL: Enhanced the -tc option (which creates an AML hex file in C,
+suitable for import into a firmware project):
+ 1) Create a unique name for the table, to simplify use of multiple
+SSDTs.
+ 2) Add a protection #ifdef in the file, similar to a .h header file.
+
+The net effect of that on generated files is:
+
+-unsigned char AmlCode[] =
++#ifndef __SSDT_S4_HEX__
++#define __SSDT_S4_HEX__
++
++unsigned char ssdt_s4_aml_code[] =
+
+The above example is from ssdt_s4.asl.
+
+Fix the build with newer versions of iasl by stripping the '_aml_code'
+suffix from the variable name on generated files.
+
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Wei Liu <wei.liu2@citrix.com>
+Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Release-acked-by: Juergen Gross <jgross@suse.com>
+---
+ tools/libacpi/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile
+index a47a658a25..c17f3924cc 100644
+--- a/tools/libacpi/Makefile
++++ b/tools/libacpi/Makefile
+@@ -43,7 +43,7 @@ all: $(C_SRC) $(H_SRC)
+
+ $(H_SRC): $(ACPI_BUILD_DIR)/%.h: %.asl iasl
+ iasl -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $<
+- sed -e 's/AmlCode/$*/g' $(ACPI_BUILD_DIR)/$*.hex >$@
++ sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $(ACPI_BUILD_DIR)/$*.hex >$@
+ rm -f $(addprefix $(ACPI_BUILD_DIR)/, $*.aml $*.hex)
+
+ $(MK_DSDT): mk_dsdt.c
+@@ -76,7 +76,7 @@ $(ACPI_BUILD_DIR)/dsdt_anycpu_arm.asl: $(MK_DSDT)
+
+ $(C_SRC): $(ACPI_BUILD_DIR)/%.c: iasl $(ACPI_BUILD_DIR)/%.asl
+ iasl -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $(ACPI_BUILD_DIR)/$*.asl
+- sed -e 's/AmlCode/$*/g' $(ACPI_BUILD_DIR)/$*.hex > $@.$(TMP_SUFFIX)
++ sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $(ACPI_BUILD_DIR)/$*.hex > $@.$(TMP_SUFFIX)
+ echo "int $*_len=sizeof($*);" >> $@.$(TMP_SUFFIX)
+ mv -f $@.$(TMP_SUFFIX) $@
+ rm -f $(addprefix $(ACPI_BUILD_DIR)/, $*.aml $*.hex)
+--
+2.11.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
new file mode 100644
index 000000000000..7cd02e69c5ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
@@ -0,0 +1,258 @@
+config:
+{ stdenv, cmake, pkgconfig, which
+
+# Xen
+, bison, bzip2, checkpolicy, dev86, figlet, flex, gettext, glib
+, iasl, libaio, libiconv, libuuid, ncurses, openssl, perl
+, python2Packages
+# python2Packages.python
+, xz, yajl, zlib
+
+# Xen Optional
+, ocamlPackages
+
+# Scripts
+, coreutils, gawk, gnused, gnugrep, diffutils, multipath-tools
+, iproute, inetutils, iptables, bridge-utils, openvswitch, nbd, drbd
+, lvm2, util-linux, procps, systemd
+
+# Documentation
+# python2Packages.markdown
+, transfig, ghostscript, texinfo, pandoc
+
+, binutils-unwrapped
+
+, ...} @ args:
+
+with stdenv.lib;
+
+let
+ #TODO: fix paths instead
+ scriptEnvPath = concatMapStringsSep ":" (x: "${x}/bin") [
+ which perl
+ coreutils gawk gnused gnugrep diffutils util-linux multipath-tools
+ iproute inetutils iptables bridge-utils openvswitch nbd drbd
+ ];
+
+ withXenfiles = f: concatStringsSep "\n" (mapAttrsToList f config.xenfiles);
+
+ withTools = a: f: withXenfiles (name: x: optionalString (hasAttr a x) ''
+ echo "processing ${name}"
+ __do() {
+ cd "tools/${name}"
+ ${f name x}
+ }
+ ( __do )
+ '');
+
+ # We don't want to use the wrapped version, because this version of ld is
+ # only used for linking the Xen EFI binary, and the build process really
+ # needs control over the LDFLAGS used
+ efiBinutils = binutils-unwrapped.overrideAttrs (oldAttrs: {
+ name = "efi-binutils";
+ configureFlags = oldAttrs.configureFlags ++ [
+ "--enable-targets=x86_64-pep"
+ ];
+ doInstallCheck = false; # We get a spurious failure otherwise, due to host/target mis-match
+ });
+in
+
+stdenv.mkDerivation (rec {
+ inherit (config) version;
+
+ name = "xen-${version}";
+
+ dontUseCmakeConfigure = true;
+
+ hardeningDisable = [ "stackprotector" "fortify" "pic" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cmake which
+
+ # Xen
+ bison bzip2 checkpolicy dev86 figlet flex gettext glib iasl libaio
+ libiconv libuuid ncurses openssl perl python2Packages.python xz yajl zlib
+
+ # oxenstored
+ ocamlPackages.findlib ocamlPackages.ocaml systemd
+
+ # Python fixes
+ python2Packages.wrapPython
+
+ # Documentation
+ python2Packages.markdown transfig ghostscript texinfo pandoc
+
+ # Others
+ ] ++ (concatMap (x: x.buildInputs or []) (attrValues config.xenfiles))
+ ++ (config.buildInputs or []);
+
+ prePatch = ''
+ ### Generic fixes
+
+ # Xen's stubdoms, tools and firmwares need various sources that
+ # are usually fetched at build time using wget and git. We can't
+ # have that, so we prefetch them in nix-expression and setup
+ # fake wget and git for debugging purposes.
+
+ mkdir fake-bin
+
+ # Fake git: just print what it wants and die
+ cat > fake-bin/wget << EOF
+ #!${stdenv.shell} -e
+ echo ===== FAKE WGET: Not fetching \$*
+ [ -e \$3 ]
+ EOF
+
+ # Fake git: just print what it wants and die
+ cat > fake-bin/git << EOF
+ #!${stdenv.shell}
+ echo ===== FAKE GIT: Not cloning \$*
+ [ -e \$3 ]
+ EOF
+
+ chmod +x fake-bin/*
+ export PATH=$PATH:$PWD/fake-bin
+
+ # Remove in-tree qemu stuff in case we build from a tar-ball
+ rm -rf tools/qemu-xen tools/qemu-xen-traditional
+
+ # Fix shebangs, mainly for build-scipts
+ # We want to do this before getting prefetched stuff to speed things up
+ # (prefetched stuff has lots of files)
+ find . -type f | xargs sed -i 's@/usr/bin/\(python\|perl\)@/usr/bin/env \1@g'
+ find . -type f -not -path "./tools/hotplug/Linux/xendomains.in" \
+ | xargs sed -i 's@/bin/bash@${stdenv.shell}@g'
+
+ # Get prefetched stuff
+ ${withXenfiles (name: x: ''
+ echo "${x.src} -> tools/${name}"
+ cp -r ${x.src} tools/${name}
+ chmod -R +w tools/${name}
+ '')}
+ '';
+
+ patches = [
+ ./0000-fix-ipxe-src.patch
+ ./0000-fix-install-python.patch
+ ./0004-makefile-use-efi-ld.patch
+ ./0005-makefile-fix-efi-mountdir-use.patch
+ ] ++ (config.patches or []);
+
+ postPatch = ''
+ ### Hacks
+
+ # Work around a bug in our GCC wrapper: `gcc -MF foo -v' doesn't
+ # print the GCC version number properly.
+ substituteInPlace xen/Makefile \
+ --replace '$(CC) $(CFLAGS) -v' '$(CC) -v'
+
+ # Hack to get `gcc -m32' to work without having 32-bit Glibc headers.
+ mkdir -p tools/include/gnu
+ touch tools/include/gnu/stubs-32.h
+
+ ### Fixing everything else
+
+ substituteInPlace tools/libfsimage/common/fsimage_plugin.c \
+ --replace /usr $out
+
+ substituteInPlace tools/blktap2/lvm/lvm-util.c \
+ --replace /usr/sbin/vgs ${lvm2}/bin/vgs \
+ --replace /usr/sbin/lvs ${lvm2}/bin/lvs
+
+ substituteInPlace tools/misc/xenpvnetboot \
+ --replace /usr/sbin/mount ${util-linux}/bin/mount \
+ --replace /usr/sbin/umount ${util-linux}/bin/umount
+
+ substituteInPlace tools/xenmon/xenmon.py \
+ --replace /usr/bin/pkill ${procps}/bin/pkill
+
+ substituteInPlace tools/xenstat/Makefile \
+ --replace /usr/include/curses.h ${ncurses.dev}/include/curses.h
+
+ ${optionalString (builtins.compareVersions config.version "4.8" >= 0) ''
+ substituteInPlace tools/hotplug/Linux/launch-xenstore.in \
+ --replace /bin/mkdir mkdir
+ ''}
+
+ ${optionalString (builtins.compareVersions config.version "4.6" < 0) ''
+ # TODO: use this as a template and support our own if-up scripts instead?
+ substituteInPlace tools/hotplug/Linux/xen-backend.rules.in \
+ --replace "@XEN_SCRIPT_DIR@" $out/etc/xen/scripts
+
+ # blktap is not provided by xen, but by xapi
+ sed -i '/blktap/d' tools/hotplug/Linux/xen-backend.rules.in
+ ''}
+
+ ${withTools "patches" (name: x: ''
+ ${concatMapStringsSep "\n" (p: ''
+ echo "# Patching with ${p}"
+ patch -p1 < ${p}
+ '') x.patches}
+ '')}
+
+ ${withTools "postPatch" (name: x: x.postPatch)}
+
+ ${config.postPatch or ""}
+ '';
+
+ postConfigure = ''
+ substituteInPlace tools/hotplug/Linux/xendomains \
+ --replace /bin/ls ls
+ '';
+
+ EFI_LD = "${efiBinutils}/bin/ld";
+ EFI_VENDOR = "nixos";
+
+ # TODO: Flask needs more testing before enabling it by default.
+ #makeFlags = [ "XSM_ENABLE=y" "FLASK_ENABLE=y" "PREFIX=$(out)" "CONFIG_DIR=/etc" "XEN_EXTFILES_URL=\\$(XEN_ROOT)/xen_ext_files" ];
+ makeFlags = [ "PREFIX=$(out) CONFIG_DIR=/etc" "XEN_SCRIPT_DIR=/etc/xen/scripts" ]
+ ++ (config.makeFlags or []);
+
+ buildFlags = [ "xen" "tools" ];
+
+ postBuild = ''
+ make -C docs man-pages
+
+ ${withTools "buildPhase" (name: x: x.buildPhase)}
+ '';
+
+ installPhase = ''
+ mkdir -p $out $out/share $out/share/man
+ cp -prvd dist/install/nix/store/*/* $out/
+ cp -prvd dist/install/boot $out/boot
+ cp -prvd dist/install/etc $out
+ cp -dR docs/man1 docs/man5 $out/share/man/
+
+ ${withTools "installPhase" (name: x: x.installPhase)}
+
+ # Hack
+ substituteInPlace $out/etc/xen/scripts/hotplugpath.sh \
+ --replace SBINDIR=\"$out/sbin\" SBINDIR=\"$out/bin\"
+
+ wrapPythonPrograms
+ # We also need to wrap pygrub, which lies in lib
+ wrapPythonProgramsIn "$out/lib" "$out $pythonPath"
+
+ shopt -s extglob
+ for i in $out/etc/xen/scripts/!(*.sh); do
+ sed -i "2s@^@export PATH=$out/bin:${scriptEnvPath}\n@" $i
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ # TODO(@oxij): Stop referencing args here
+ meta = {
+ homepage = "http://www.xen.org/";
+ description = "Xen hypervisor and related components"
+ + optionalString (args ? meta && args.meta ? description)
+ " (${args.meta.description})";
+ longDescription = (args.meta.longDescription or "")
+ + "\nIncludes:\n"
+ + withXenfiles (name: x: ''* ${name}: ${x.meta.description or "(No description)"}.'');
+ platforms = [ "x86_64-linux" ];
+ maintainers = with stdenv.lib.maintainers; [ eelco tstrobel oxij ];
+ license = stdenv.lib.licenses.gpl2;
+ } // (config.meta or {});
+} // removeAttrs config [ "xenfiles" "buildInputs" "patches" "postPatch" "meta" ])
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/packages.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/packages.nix
new file mode 100644
index 000000000000..55e3b12c3b7e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/packages.nix
@@ -0,0 +1,59 @@
+{ callPackage
+, stdenv
+}:
+
+# TODO(@oxij) on new Xen version: generalize this to generate [vanilla slim
+# light] for each ./<version>.nix.
+
+rec {
+ xen_4_10-vanilla = callPackage ./4.10.nix {
+ meta = {
+ description = "vanilla";
+ longDescription = ''
+ Vanilla version of Xen. Uses forks of Qemu and Seabios bundled
+ with Xen. This gives vanilla experince, but wastes space and
+ build time: typical NixOS setup that runs lots of VMs will
+ build three different versions of Qemu when using this (two
+ forks and upstream).
+ '';
+ };
+ };
+
+ xen_4_10-slim = xen_4_10-vanilla.override {
+ withInternalQemu = false;
+ withInternalTraditionalQemu = true;
+ withInternalSeabios = false;
+ withSeabios = true;
+
+ meta = {
+ description = "slim";
+ longDescription = ''
+ Slimmed-down version of Xen that reuses nixpkgs packages as
+ much as possible. Different parts may get out of sync, but
+ this builds faster and uses less space than vanilla. Use with
+ `qemu_xen` from nixpkgs.
+ '';
+ };
+ };
+
+ xen_4_10-light = xen_4_10-vanilla.override {
+ withInternalQemu = false;
+ withInternalTraditionalQemu = false;
+ withInternalSeabios = false;
+ withSeabios = true;
+
+ meta = {
+ description = "light";
+ longDescription = ''
+ Slimmed-down version of Xen without `qemu-traditional` (you
+ don't need it if you don't know what it is). Use with
+ `qemu_xen-light` from nixpkgs.
+ '';
+ };
+ };
+
+ xen-vanilla = xen_4_10-vanilla;
+ xen-slim = xen_4_10-slim;
+ xen-light = xen_4_10-light;
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/qemu-gluster-6-compat.diff b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/qemu-gluster-6-compat.diff
new file mode 100644
index 000000000000..7ec6ad3aba66
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/qemu-gluster-6-compat.diff
@@ -0,0 +1,95 @@
+diff --git a/block/gluster.c b/block/gluster.c
+index 01b479fbb9..29552e1186 100644
+--- a/block/gluster.c
++++ b/block/gluster.c
+@@ -15,6 +15,10 @@
+ #include "qemu/uri.h"
+ #include "qemu/error-report.h"
+
++#ifdef CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT
++# define glfs_ftruncate(fd, offset) glfs_ftruncate(fd, offset, NULL, NULL)
++#endif
++
+ #define GLUSTER_OPT_FILENAME "filename"
+ #define GLUSTER_OPT_VOLUME "volume"
+ #define GLUSTER_OPT_PATH "path"
+@@ -613,7 +617,11 @@ static void qemu_gluster_complete_aio(void *opaque)
+ /*
+ * AIO callback routine called from GlusterFS thread.
+ */
+-static void gluster_finish_aiocb(struct glfs_fd *fd, ssize_t ret, void *arg)
++static void gluster_finish_aiocb(struct glfs_fd *fd, ssize_t ret,
++#ifdef CONFIG_GLUSTERFS_IOCB_HAS_STAT
++ struct glfs_stat *pre, struct glfs_stat *post,
++#endif
++ void *arg)
+ {
+ GlusterAIOCB *acb = (GlusterAIOCB *)arg;
+
+diff --git a/configure b/configure
+index 4b808f9d17..89fb27fd0d 100755
+--- a/configure
++++ b/configure
+@@ -301,6 +301,8 @@ glusterfs=""
+ glusterfs_xlator_opt="no"
+ glusterfs_discard="no"
+ glusterfs_zerofill="no"
++glusterfs_ftruncate_has_stat="no"
++glusterfs_iocb_has_stat="no"
+ archipelago="no"
+ gtk=""
+ gtkabi=""
+@@ -3444,6 +3446,38 @@ if test "$glusterfs" != "no" ; then
+ if $pkg_config --atleast-version=6 glusterfs-api; then
+ glusterfs_zerofill="yes"
+ fi
++ cat > $TMPC << EOF
++#include <glusterfs/api/glfs.h>
++
++int
++main(void)
++{
++ /* new glfs_ftruncate() passes two additional args */
++ return glfs_ftruncate(NULL, 0, NULL, NULL);
++}
++EOF
++ if compile_prog "$glusterfs_cflags" "$glusterfs_libs" ; then
++ glusterfs_ftruncate_has_stat="yes"
++ fi
++ cat > $TMPC << EOF
++#include <glusterfs/api/glfs.h>
++
++/* new glfs_io_cbk() passes two additional glfs_stat structs */
++static void
++glusterfs_iocb(glfs_fd_t *fd, ssize_t ret, struct glfs_stat *prestat, struct glfs_stat *poststat, void *data)
++{}
++
++int
++main(void)
++{
++ glfs_io_cbk iocb = &glusterfs_iocb;
++ iocb(NULL, 0 , NULL, NULL, NULL);
++ return 0;
++}
++EOF
++ if compile_prog "$glusterfs_cflags" "$glusterfs_libs" ; then
++ glusterfs_iocb_has_stat="yes"
++ fi
+ else
+ if test "$glusterfs" = "yes" ; then
+ feature_not_found "GlusterFS backend support" \
+@@ -5415,6 +5449,14 @@ if test "$archipelago" = "yes" ; then
+ echo "ARCHIPELAGO_LIBS=$archipelago_libs" >> $config_host_mak
+ fi
+
++if test "$glusterfs_ftruncate_has_stat" = "yes" ; then
++ echo "CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT=y" >> $config_host_mak
++fi
++
++if test "$glusterfs_iocb_has_stat" = "yes" ; then
++ echo "CONFIG_GLUSTERFS_IOCB_HAS_STAT=y" >> $config_host_mak
++fi
++
+ if test "$libssh2" = "yes" ; then
+ echo "CONFIG_LIBSSH2=m" >> $config_host_mak
+ echo "LIBSSH2_CFLAGS=$libssh2_cflags" >> $config_host_mak
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/xsa-patches.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/xsa-patches.nix
new file mode 100644
index 000000000000..26cdbc1f65f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xen/xsa-patches.nix
@@ -0,0 +1,488 @@
+{ fetchpatch }:
+
+let
+ xsaPatch = { name , sha256 }: (fetchpatch {
+ url = "https://xenbits.xen.org/xsa/xsa${name}.patch";
+ inherit sha256;
+ });
+in {
+ # 4.5
+ XSA_190 = (xsaPatch {
+ name = "190-4.5";
+ sha256 = "0f8pw38kkxky89ny3ic5h26v9zsjj9id89lygx896zc3w1klafqm";
+ });
+
+ # 4.5
+ XSA_191 = (xsaPatch {
+ name = "191-4.6";
+ sha256 = "1wl1ndli8rflmc44pkp8cw4642gi8z7j7gipac8mmlavmn3wdqhg";
+ });
+
+ # 4.5
+ XSA_192 = (xsaPatch {
+ name = "192-4.5";
+ sha256 = "0m8cv0xqvx5pdk7fcmaw2vv43xhl62plyx33xqj48y66x5z9lxpm";
+ });
+
+ # 4.5
+ XSA_193 = (xsaPatch {
+ name = "193-4.5";
+ sha256 = "0k9mykhrpm4rbjkhv067f6s05lqmgnldcyb3vi8cl0ndlyh66lvr";
+ });
+
+ # 4.5
+ XSA_195 = (xsaPatch {
+ name = "195";
+ sha256 = "0m0g953qnjy2knd9qnkdagpvkkgjbk3ydgajia6kzs499dyqpdl7";
+ });
+
+ # 4.5
+ XSA_196 = [
+ (xsaPatch {
+ name = "196-0001-x86-emul-Correct-the-IDT-entry-calculation-in-inject";
+ sha256 = "0z53nzrjvc745y26z1qc8jlg3blxp7brawvji1hx3s74n346ssl6";
+ })
+ (xsaPatch {
+ name = "196-0002-x86-svm-Fix-injection-of-software-interrupts";
+ sha256 = "11cqvr5jn2s92wsshpilx9qnfczrd9hnyb5aim6qwmz3fq3hrrkz";
+ })
+ ];
+
+ # 4.5
+ XSA_198 = (xsaPatch {
+ name = "198";
+ sha256 = "0d1nndn4p520c9xa87ixnyks3mrvzcri7c702d6mm22m8ansx6d9";
+ });
+
+ # 4.5
+ XSA_200 = (xsaPatch {
+ name = "200-4.6";
+ sha256 = "0k918ja83470iz5k4vqi15293zjvz2dipdhgc9sy9rrhg4mqncl7";
+ });
+
+ # 4.5
+ XSA_202_45 = (xsaPatch {
+ name = "202-4.6";
+ sha256 = "0nnznkrvfbbc8z64dr9wvbdijd4qbpc0wz2j5vpmx6b32sm7932f";
+ });
+
+ # 4.5
+ XSA_204_45 = (xsaPatch {
+ name = "204-4.5";
+ sha256 = "083z9pbdz3f532fnzg7n2d5wzv6rmqc0f4mvc3mnmkd0rzqw8vcp";
+ });
+
+ # 4.5
+ XSA_206_45 = [
+ (xsaPatch {
+ name = "206-4.5/0001-xenstored-apply-a-write-transaction-rate-limit";
+ sha256 = "07vsm8mlbxh2s01ny2xywnm1bqhhxas1az31fzwb6f1g14vkzwm4";
+ })
+ (xsaPatch {
+ name = "206-4.5/0002-xenstored-Log-when-the-write-transaction-rate-limit-";
+ sha256 = "17pnvxjmhny22abwwivacfig4vfsy5bqlki07z236whc2y7yzbsx";
+ })
+ (xsaPatch {
+ name = "206-4.5/0003-oxenstored-refactor-putting-response-on-wire";
+ sha256 = "0xf566yicnisliy82cydb2s9k27l3bxc43qgmv6yr2ir3ixxlw5s";
+ })
+ (xsaPatch {
+ name = "206-4.5/0004-oxenstored-remove-some-unused-parameters";
+ sha256 = "16cqx9i0w4w3x06qqdk9rbw4z96yhm0kbc32j40spfgxl82d1zlk";
+ })
+ (xsaPatch {
+ name = "206-4.5/0005-oxenstored-refactor-request-processing";
+ sha256 = "1g2hzlv7w03sqnifbzda85mwlz3bw37rk80l248180sv3k7k6bgv";
+ })
+ (xsaPatch {
+ name = "206-4.5/0006-oxenstored-keep-track-of-each-transaction-s-operatio";
+ sha256 = "0n65yfxvpfd4cz95dpbwqj3nablyzq5g7a0klvi2y9zybhch9cmg";
+ })
+ (xsaPatch {
+ name = "206-4.5/0007-oxenstored-move-functions-that-process-simple-operat";
+ sha256 = "0qllvbc9rnj7jhhlslxxs35gvphvih0ywz52jszj4irm23ka5vnz";
+ })
+ (xsaPatch {
+ name = "206-4.5/0008-oxenstored-replay-transaction-upon-conflict";
+ sha256 = "0lixkxjfzciy9l0f980cmkr8mcsx14c289kg0mn5w1cscg0hb46g";
+ })
+ (xsaPatch {
+ name = "206-4.5/0009-oxenstored-log-request-and-response-during-transacti";
+ sha256 = "09ph8ddcx0k7rndd6hx6kszxh3fhxnvdjsq13p97n996xrpl1x7b";
+ })
+ (xsaPatch {
+ name = "206-4.5/0010-oxenstored-allow-compilation-prior-to-OCaml-3.12.0";
+ sha256 = "1y0m7sqdz89z2vs4dfr45cyvxxas323rxar0xdvvvivgkgxawvxj";
+ })
+ (xsaPatch {
+ name = "206-4.5/0011-oxenstored-comments-explaining-some-variables";
+ sha256 = "1d3n0y9syya4kaavrvqn01d3wsn85gmw7qrbylkclznqgkwdsr2p";
+ })
+ (xsaPatch {
+ name = "206-4.5/0012-oxenstored-handling-of-domain-conflict-credit";
+ sha256 = "12zgid5y9vrhhpk2syxp0x01lzzr6447fa76n6rjmzi1xgdzpaf8";
+ })
+ (xsaPatch {
+ name = "206-4.5/0013-oxenstored-ignore-domains-with-no-conflict-credit";
+ sha256 = "0v3g9pm60w6qi360hdqjcw838s0qcyywz9qpl8gzmhrg7a35avxl";
+ })
+ (xsaPatch {
+ name = "206-4.5/0014-oxenstored-add-transaction-info-relevant-to-history-";
+ sha256 = "0vv3w0h5xh554i9v2vbc8gzm8wabjf2vzya3dyv5yzvly6ygv0sb";
+ })
+ (xsaPatch {
+ name = "206-4.5/0015-oxenstored-support-commit-history-tracking";
+ sha256 = "1iv2vy29g437vj73x9p33rdcr5ln2q0kx1b3pgxq202ghbc1x1zj";
+ })
+ (xsaPatch {
+ name = "206-4.5/0016-oxenstored-only-record-operations-with-side-effects-";
+ sha256 = "1cjkw5ganbg6lq78qsg0igjqvbgph3j349faxgk1p5d6nr492zzy";
+ })
+ (xsaPatch {
+ name = "206-4.5/0017-oxenstored-discard-old-commit-history-on-txn-end";
+ sha256 = "0lm15lq77403qqwpwcqvxlzgirp6ffh301any9g401hs98f9y4ps";
+ })
+ (xsaPatch {
+ name = "206-4.5/0018-oxenstored-track-commit-history";
+ sha256 = "1jh92p6vjhkm3bn5vz260npvsjji63g2imsxflxs4f3r69sz1nkd";
+ })
+ (xsaPatch {
+ name = "206-4.5/0019-oxenstored-blame-the-connection-that-caused-a-transa";
+ sha256 = "17k264pk0fvsamj85578msgpx97mw63nmj0j9v5hbj4bgfazvj4h";
+ })
+ (xsaPatch {
+ name = "206-4.5/0020-oxenstored-allow-self-conflicts";
+ sha256 = "15z3rd49q0pa72si0s8wjsy2zvbm613d0hjswp4ikc6nzsnsh4qy";
+ })
+ (xsaPatch {
+ name = "206-4.5/0021-oxenstored-do-not-commit-read-only-transactions";
+ sha256 = "04wpzazhv90lg3228z5i6vnh1z4lzd08z0d0fvc4br6pkd0w4va8";
+ })
+ (xsaPatch {
+ name = "206-4.5/0022-oxenstored-don-t-wake-to-issue-no-conflict-credit";
+ sha256 = "1shbrn0w68rlywcc633zcgykfccck1a77igmg8ydzwjsbwxsmsjy";
+ })
+ (xsaPatch {
+ name = "206-4.5/0023-oxenstored-transaction-conflicts-improve-logging";
+ sha256 = "1086y268yh8047k1vxnxs2nhp6izp7lfmq01f1gq5n7jiy1sxcq7";
+ })
+ (xsaPatch {
+ name = "206-4.5/0024-oxenstored-trim-history-in-the-frequent_ops-function";
+ sha256 = "014zs6i4gzrimn814k5i7gz66vbb0adkzr2qyai7i4fxc9h9r7w8";
+ })
+ ];
+
+ # 4.5 - 4.8
+ XSA_207 = (xsaPatch {
+ name = "207";
+ sha256 = "0wdlhijmw9mdj6a82pyw1rwwiz605dwzjc392zr3fpb2jklrvibc";
+ });
+
+ # 4.5 - 4.8
+ XSA_212 = (xsaPatch {
+ name = "212";
+ sha256 = "1ggjbbym5irq534a3zc86md9jg8imlpc9wx8xsadb9akgjrr1r8d";
+ });
+
+ # 4.5
+ XSA_213_45 = (xsaPatch {
+ name = "213-4.5";
+ sha256 = "1vnqf89ydacr5bq3d6z2r33xb2sn5vsd934rncyc28ybc9rvj6wm";
+ });
+
+ # 4.5 - 4.8
+ XSA_214 = (xsaPatch {
+ name = "214";
+ sha256 = "0qapzx63z0yl84phnpnglpkxp6b9sy1y7cilhwjhxyigpfnm2rrk";
+ });
+
+ # 4.5
+ XSA_215 = (xsaPatch {
+ name = "215";
+ sha256 = "0sv8ccc5xp09f1w1gj5a9n3mlsdsh96sdb1n560vh31f4kkd61xs";
+ });
+
+ # 4.5
+ XSA_217_45 = (xsaPatch {
+ name = "217-4.5";
+ sha256 = "067pgsfrb9py2dhm1pk9g8f6fs40vyfrcxhj8c12vzamb6svzmn4";
+ });
+
+ # 4.5
+ XSA_218_45 = [
+ (xsaPatch {
+ name = "218-4.5/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures";
+ sha256 = "00y6j3yjxw0igpldsavikmhlxw711k2jsj1qx0s05w2k608gadkq";
+ })
+ (xsaPatch {
+ name = "218-4.5/0002-gnttab-fix-unmap-pin-accounting-race";
+ sha256 = "0qbbfnnjlpdcd29mzmacfmi859k92c213l91q7w1rg2k6pzx928k";
+ })
+ (xsaPatch {
+ name = "218-4.5/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry";
+ sha256 = "1cndzvyhf41mk4my6vh3bk9jvh2y4gpmqdhvl9zhxhmppszslqkc";
+ })
+ (xsaPatch {
+ name = "218-4.5/0004-gnttab-correct-maptrack-table-accesses";
+ sha256 = "02zpb0ffigijacqvyyjylwx3qpgibwslrka7mbxwnclf4s9c03a2";
+ })
+ ];
+
+ # 4.5
+ XSA_219_45 = (xsaPatch {
+ name = "219-4.5";
+ sha256 = "003msr5vhsc66scmdpgn0lp3p01g4zfw5vj86y5lw9ajkbaywdsm";
+ });
+
+ # 4.5
+ XSA_220_45 = (xsaPatch {
+ name = "220-4.5";
+ sha256 = "1dj9nn6lzxlipjb3nb7b9m4337fl6yn2bd7ap1lqrjn8h9zkk1pp";
+ });
+
+ # 4.5 - 4.8
+ XSA_221 = (xsaPatch {
+ name = "221";
+ sha256 = "1mcr1nqgxyjrkywdg7qhlfwgz7vj2if1dhic425vgd41p9cdgl26";
+ });
+
+ # 4.5
+ XSA_222_45 = [
+ (xsaPatch {
+ name = "222-1-4.6";
+ sha256 = "1g4dqm5qx4wqlv1520jpfiscph95vllcp4gqp1rdfailk8xi0mcf";
+ })
+ (xsaPatch {
+ name = "222-2-4.5";
+ sha256 = "1hw8rhc7q4v309f4w11gxfsn5x1pirvxkg7s4kr711fnmvp9hkzd";
+ })
+ ];
+
+ # 4.5 - 4.8
+ XSA_223 = (xsaPatch {
+ name = "223";
+ sha256 = "0803gjgcbq9vaz2mq0v5finf1fq8iik1g4hqsjqhjxvspn8l70c5";
+ });
+
+ # 4.5
+ XSA_224_45 = [
+ (xsaPatch {
+ name = "224-4.5/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap";
+ sha256 = "1aislj66ss4cb3v2bh12mrqsyrf288d4h54rj94jjq7h1hnycw7h";
+ })
+ (xsaPatch {
+ name = "224-4.5/0002-gnttab-never-create-host-mapping-unless-asked-to";
+ sha256 = "1j6fgm1ccb07gg0mi5qmdr0vqwwc3n12z433g1jrija2gbk1x8aq";
+ })
+ (xsaPatch {
+ name = "224-4.5/0003-gnttab-correct-logic-to-get-page-references-during-m";
+ sha256 = "166kmicwx280fjqjvgigbmhabjksa0hhvqx5h4v6kjlcjpmxqy08";
+ })
+ (xsaPatch {
+ name = "224-4.5/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth";
+ sha256 = "1skc0yj1zsn8xgyq1y57bdc0scvvlmd0ynrjwwf1zkias1wlilav";
+ })
+ ];
+
+ # 4.5
+ XSA_226_45 = [
+ (xsaPatch {
+ name = "226-4.5/0001-gnttab-dont-use-possibly-unbounded-tail-calls";
+ sha256 = "1hx47ppv5q33cw4dwp82lgvv4fp28gx7rxijw0iaczsv8bvb8vcg";
+ })
+ (xsaPatch {
+ name = "226-4.5/0002-gnttab-fix-transitive-grant-handling";
+ sha256 = "1gzp8m2zfihwlk71c3lqyd0ajh9h11pvkhzhw0mawckxy0qksvlc";
+ })
+ ];
+
+ # 4.5
+ XSA_227_45 = (xsaPatch {
+ name = "227-4.5";
+ sha256 = "1qfjfisgqm4x98qw54x2qrvgjnvvzizx9p1pjhcnsps9q6g1y3x8";
+ });
+
+ # 4.5 - 4.9
+ XSA_230 = (xsaPatch {
+ name = "230";
+ sha256 = "10x0j7wmzkrwycs1ng89fgjzvzh8vsdd4c5nb68b3j1azdx4ld83";
+ });
+
+ # 4.5
+ XSA_231_45 = (xsaPatch {
+ name = "231-4.5";
+ sha256 = "06gwx2f1lg51dfk2b4zxp7wv9c4pxdi87pg2asvmxqc78ir7l5s6";
+ });
+
+ # 4.5 - 4.9
+ XSA_232 = (xsaPatch {
+ name = "232";
+ sha256 = "0n6irjpmraa3hbxxm64a1cplc6y6g07x7v2fmlpvn70ql3fs0220";
+ });
+
+ # 4.5 - 4.9
+ XSA_233 = (xsaPatch {
+ name = "233";
+ sha256 = "1w3m8349cqav56av63w6jzvlsv4jw5rimwvskr9pq2rcbk2dx8kf";
+ });
+
+ # 4.5
+ XSA_234_45 = (xsaPatch {
+ name = "234-4.5";
+ sha256 = "1ji6hbgybb4gbgz5l5fis9midnvjbddzam8d63377rkzdyb3yz9f";
+ });
+
+ # 4.5
+ XSA_235_45 = (xsaPatch {
+ name = "235-4.5";
+ sha256 = "0hhgnql2gji111020z4wiyzg23wqs6ymanb67rg11p4qad1fp3ff";
+ });
+
+ # 4.5
+ XSA_236_45 = (xsaPatch {
+ name = "236-4.5";
+ sha256 = "0hcla86x81wykssd2967gblp7fzx61290p4ls4v0hcyxdg2bs2yz";
+ });
+
+ # 4.5
+ XSA_237_45 = [
+ (xsaPatch {
+ name = "237-4.5/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device";
+ sha256 = "0hjxs20jhls4i0iph45a0qpw4znkm04gv74jmwhw84gy4hrhzq3b";
+ })
+ (xsaPatch {
+ name = "237-4.5/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s";
+ sha256 = "0ki8nmbc2g1l9wnqsph45a2k4c6dk5s7jvdlxg3zznyiyxjcv8yn";
+ })
+ (xsaPatch {
+ name = "237-4.5/0003-x86-MSI-disallow-redundant-enabling";
+ sha256 = "1hdz83qrjaqnihz8ji186dypxiblbfpgyb01j9m5alhk4whjqvp1";
+ })
+ (xsaPatch {
+ name = "237-4.5/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error";
+ sha256 = "0csdfn9kzn1k94pg3fcwsgqw14wcd4myi1jkcq5alj1fmkhw4wmk";
+ })
+ (xsaPatch {
+ name = "237-4.5/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook";
+ sha256 = "14b73rkvbkd1a2gh9kp0zrvv2d3kfwkiv24fg9agh4hrf2w3nx7y";
+ })
+ ];
+
+ # 4.5
+ XSA_238_45 = (xsaPatch {
+ name = "238-4.5";
+ sha256 = "1x2fg5vfv5jc084h5gjm6fq0nxjpzvi96px3sqzz4pvsvy4y4i1z";
+ });
+
+ # 4.5
+ XSA_239_45 = (xsaPatch {
+ name = "239-4.5";
+ sha256 = "06bi8q3973yajxsdj7pcqarvb56q2gisxdiy0cpbyffbmpkfv3h6";
+ });
+
+ # 4.5
+ XSA_240_45 = [
+ (xsaPatch {
+ name = "240-4.5/0001-x86-limit-linear-page-table-use-to-a-single-level";
+ sha256 = "0pmf10mbnmb88y7mly8s2l0j88cg0ayhkcnmj1zbjrkjmpccv395";
+ })
+ (xsaPatch {
+ name = "240-4.5/0002-x86-mm-Disable-PV-linear-pagetables-by-default";
+ sha256 = "19f096ra3xndvzkjjasx73p2g25hfkm905px0p3yakwll0qzd029";
+ })
+ ];
+
+ # 4.5 - 4.8
+ XSA_241 = (xsaPatch {
+ name = "241-4.8";
+ sha256 = "16zb75kzs98f4mdxhbyczk5mbh9dvn6j3yhfafki34x1dfdnq4pj";
+ });
+
+ # 4.5 - 4.9
+ XSA_242 = (xsaPatch {
+ name = "242-4.9";
+ sha256 = "0yx3x0i2wybsm7lzdffxa2mm866bjl4ipbb9vipnw77dyg705zpr";
+ });
+
+ # 4.5
+ XSA_243_45 = [
+ (xsaPatch {
+ name = "243-4.6-1";
+ sha256 = "1cqanpyysa7px0j645z4jw9yqsvv6cbh7yq1b86ap134axfifcan";
+ })
+ (xsaPatch {
+ name = "243-4.5-2";
+ sha256 = "0wbcgw4m0nzm2902jnda2020l7bd5adkq8j5myi1zmsfzbq03hwn";
+ })
+ ];
+
+ # 4.5
+ XSA_244_45 = (xsaPatch {
+ name = "244-4.5";
+ sha256 = "05ci3vdl1ywfjpzcvsy1k52whxjk8pxzj7dh3r94yqasr56i5v2l";
+ });
+
+ # 4.5 - 4.9
+ XSA_245 = [
+ (xsaPatch {
+ name = "245/0001-xen-page_alloc-Cover-memory-unreserved-after-boot-in";
+ sha256 = "12brsgbn7xwakalsn10afykgqmx119mqg6vjj3v2b1pnmf4ss0w8";
+ })
+ (xsaPatch {
+ name = "245/0002-xen-arm-Correctly-report-the-memory-region-in-the-du";
+ sha256 = "1k6z5r7wnrswsczn2j3a1mc4nvxqm4ydj6n6rvgqizk2pszdkqg8";
+ })
+ ];
+
+ # 4.5 - 4.7
+ XSA_246_45 = [
+ (xsaPatch {
+ name = "246-4.7";
+ sha256 = "13rad4k8z3bq15d67dhgy96kdbrjiq9sy8px0jskbpx9ygjdahkn";
+ })
+ ];
+
+ # 4.5
+ XSA_247_45 = [
+ (xsaPatch {
+ name = "247-4.5/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu";
+ sha256 = "0h1mp5s9si8aw2gipds317f27h9pi7bgnhj0bcmw11p0ch98sg1m";
+ })
+ (xsaPatch {
+ name = "247-4.5/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas";
+ sha256 = "0vjjybxbcm4xl26wbqvcqfiyvvlayswm4f98i1fr5a9abmljn5sb";
+ })
+ ];
+
+ # 4.5
+ XSA_248_45 = [
+ (xsaPatch {
+ name = "248-4.5";
+ sha256 = "0csxg6h492ddsa210b45av28iqf7cn2dfdqk4zx10zwf1pv2shyn";
+ })
+ ];
+
+ # 4.5 .. 4.9
+ XSA_249 = [
+ (xsaPatch {
+ name = "249";
+ sha256 = "0v6ngzqhkz7yv4n83xlpxfbkr2qyg5b1cds7ikkinm86hiqy6agl";
+ })
+ ];
+
+ # 4.5
+ XSA_250_45 = [
+ (xsaPatch {
+ name = "250-4.5";
+ sha256 = "0pqldl6qnl834gvfp90z247q9xcjh3835s2iffnajz7jhjb2145d";
+ })
+ ];
+
+ # 4.5
+ XSA_251_45 = [
+ (xsaPatch {
+ name = "251-4.5";
+ sha256 = "0lc94cx271z09r0mhxaypyd9d4740051p28idf5calx5228dqjgm";
+ })
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xhyve/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xhyve/default.nix
new file mode 100644
index 000000000000..db9a7ef82577
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/xhyve/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchFromGitHub, Hypervisor, vmnet, xpc, libobjc, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "xhyve";
+ version = "20191001";
+
+ src = fetchFromGitHub {
+ owner = "machyve";
+ repo = "xhyve";
+ rev = "1f46a3d0bbeb6c90883f302425844fcc3800a776";
+ sha256 = "0mm9xa0v6n7xl2qypnppq5abdncd31vffiklrhcrlni5ymyh9ia5";
+ };
+
+ buildInputs = [ Hypervisor vmnet xpc libobjc zlib ];
+
+ # Don't use git to determine version
+ prePatch = ''
+ substituteInPlace Makefile \
+ --replace 'shell git describe --abbrev=6 --dirty --always --tags' "$version"
+ '';
+
+
+ makeFlags = [ "CFLAGS+=-Wno-shift-sign-overflow" ''CFLAGS+=-DVERSION=\"${version}\"'' ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp build/xhyve $out/bin
+ '';
+
+ meta = with lib; {
+ description = "Lightweight Virtualization on macOS Based on bhyve";
+ homepage = "https://github.com/mist64/xhyve";
+ maintainers = [ maintainers.lnl7 ];
+ license = licenses.bsd2;
+ platforms = platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/2bwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/2bwm/default.nix
new file mode 100644
index 000000000000..0a2dd63130eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/2bwm/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, patches
+, libxcb, xcbutilkeysyms, xcbutilwm
+, libX11, xcbutil, xcbutilxrm }:
+
+stdenv.mkDerivation rec {
+ version = "0.3";
+ pname = "2bwm";
+
+ src = fetchFromGitHub {
+ owner = "venam";
+ repo = "2bwm";
+ rev = "v${version}";
+ sha256 = "1xwib612ahv4rg9yl5injck89dlpyp5475xqgag0ydfd0r4sfld7";
+ };
+
+ # Allow users set their own list of patches
+ inherit patches;
+
+ buildInputs = [ libxcb xcbutilkeysyms xcbutilwm libX11 xcbutil xcbutilxrm ];
+
+ installPhase = "make install DESTDIR=$out PREFIX=\"\"";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/venam/2bwm";
+ description = "A fast floating WM written over the XCB library and derived from mcwm";
+ license = licenses.mit;
+ maintainers = [ maintainers.sternenseemann ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix
new file mode 100644
index 000000000000..001e624e1bed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, pkgconfig
+, libjpeg, libtiff, libpng, freetype
+, fltk, gtk
+, libX11, libXext, libICE
+, dbus
+, fetchpatch
+}:
+
+stdenv.mkDerivation rec {
+
+ pname = "afterstep";
+ version = "2.2.12";
+ sourceName = "AfterStep-${version}";
+
+ src = fetchurl {
+ urls = [ "ftp://ftp.afterstep.org/stable/${sourceName}.tar.bz2" ];
+ sha256 = "1j7vkx1ig4kzwffdxnkqv3kld9qi3sam4w2nhq18waqjsi8xl5gz";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://salsa.debian.org/debian/afterstep/raw/master/debian/patches/44-Fix-build-with-gcc-5.patch";
+ sha256 = "1vipy2lzzd2gqrsqk85pwgcdhargy815fxlbn57hsm45zglc3lj4";
+ })
+ ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libjpeg libtiff libpng freetype fltk gtk libX11 libXext libICE dbus dbus ];
+
+ # A strange type of bug: dbus is not immediately found by pkgconfig
+ preConfigure = ''
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A NEXTStep-inspired window manager";
+ longDescription = ''
+ AfterStep is a window manager for the Unix X Window
+ System. Originally based on the look and feel of the NeXTStep
+ interface, it provides end users with a consistent, clean, and
+ elegant desktop. The goal of AfterStep development is to provide
+ for flexibility of desktop configuration, improving aestetics,
+ and efficient use of system resources.
+ '';
+ homepage = "http://www.afterstep.org/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/awesome/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/awesome/default.nix
new file mode 100644
index 000000000000..609723b42d41
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/awesome/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, fetchFromGitHub, luaPackages, cairo, librsvg, cmake, imagemagick, pkgconfig, gdk-pixbuf
+, xorg, libstartup_notification, libxdg_basedir, libpthreadstubs
+, xcb-util-cursor, makeWrapper, pango, gobject-introspection
+, which, dbus, nettools, git, doxygen
+, xmlto, docbook_xml_dtd_45, docbook_xsl, findXMLCatalogs
+, libxkbcommon, xcbutilxrm, hicolor-icon-theme
+, asciidoctor
+, fontsConf
+, gtk3Support ? false, gtk3 ? null
+}:
+
+# needed for beautiful.gtk to work
+assert gtk3Support -> gtk3 != null;
+
+stdenv.mkDerivation rec {
+ lgi = luaPackages.lgi;
+ lua = luaPackages.lua;
+ ldoc = luaPackages.ldoc;
+ pname = "awesome";
+ version = "4.3";
+
+ src = fetchFromGitHub {
+ owner = "awesomewm";
+ repo = "awesome";
+ rev = "v${version}";
+ sha256 = "1i7ajmgbsax4lzpgnmkyv35x8vxqi0j84a14k6zys4blx94m9yjf";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ doxygen
+ imagemagick
+ makeWrapper
+ pkgconfig
+ xmlto docbook_xml_dtd_45
+ docbook_xsl findXMLCatalogs
+ asciidoctor
+ ldoc
+ ];
+
+ outputs = [ "out" "doc" ];
+
+ FONTCONFIG_FILE = toString fontsConf;
+
+ propagatedUserEnvPkgs = [ hicolor-icon-theme ];
+ buildInputs = [ cairo librsvg dbus gdk-pixbuf gobject-introspection
+ git lgi libpthreadstubs libstartup_notification
+ libxdg_basedir lua nettools pango xcb-util-cursor
+ xorg.libXau xorg.libXdmcp xorg.libxcb xorg.libxshmfence
+ xorg.xcbutil xorg.xcbutilimage xorg.xcbutilkeysyms
+ xorg.xcbutilrenderutil xorg.xcbutilwm libxkbcommon
+ xcbutilxrm ]
+ ++ stdenv.lib.optional gtk3Support gtk3;
+
+ cmakeFlags = [
+ #"-DGENERATE_MANPAGES=ON"
+ "-DOVERRIDE_VERSION=${version}"
+ ] ++ stdenv.lib.optional luaPackages.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so"
+ ;
+
+ GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
+ # LUA_CPATH and LUA_PATH are used only for *building*, see the --search flags
+ # below for how awesome finds the libraries it needs at runtime.
+ LUA_CPATH = "${lgi}/lib/lua/${lua.luaversion}/?.so";
+ LUA_PATH = "${lgi}/share/lua/${lua.luaversion}/?.lua;;";
+
+ postInstall = ''
+ # Don't use wrapProgram or the wrapper will duplicate the --search
+ # arguments every restart
+ mv "$out/bin/awesome" "$out/bin/.awesome-wrapped"
+ makeWrapper "$out/bin/.awesome-wrapped" "$out/bin/awesome" \
+ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+ --add-flags '--search ${lgi}/lib/lua/${lua.luaversion}' \
+ --add-flags '--search ${lgi}/share/lua/${lua.luaversion}' \
+ --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
+
+ wrapProgram $out/bin/awesome-client \
+ --prefix PATH : "${which}/bin"
+ '';
+
+ passthru = {
+ inherit lua;
+ };
+
+ meta = with stdenv.lib; {
+ description = "Highly configurable, dynamic window manager for X";
+ homepage = "https://awesomewm.org/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ lovek323 rasendubi ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/berry/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/berry/default.nix
new file mode 100644
index 000000000000..367d0214129c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/berry/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, fetchFromGitHub
+, libX11
+, libXft
+, libXinerama
+, fontconfig
+, freetype
+}:
+
+stdenv.mkDerivation rec {
+ pname = "berry";
+ version = "0.1.7";
+
+ src = fetchFromGitHub {
+ owner = "JLErvin";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-2kFVOE5l1KQvDb5KDL7y0p4M7awJLrxJF871cyc0YZ8=";
+ };
+
+ buildInputs =[
+ libX11
+ libXft
+ libXinerama
+ fontconfig
+ freetype
+ ];
+
+ preBuild = ''
+ makeFlagsArray+=( PREFIX="${placeholder "out"}"
+ X11INC="${libX11.dev}/include"
+ X11LIB="${libX11}/lib"
+ XINERAMALIBS="-lXinerama"
+ XINERAMAFLAGS="-DXINERAMA"
+ FREETYPELIBS="-lfontconfig -lXft"
+ FREETYPEINC="${freetype.dev}/include/freetype2" )
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A healthy, bite-sized window manager";
+ longDescription = ''
+ berry is a healthy, bite-sized window manager written in C for unix
+ systems. Its main features include:
+
+ - Controlled via a powerful command-line client, allowing users to control
+ windows via a hotkey daemon such as sxhkd or expand functionality via
+ shell scripts.
+ - Small, hackable source code.
+ - Extensible themeing options with double borders, title bars, and window
+ text.
+ - Intuitively place new windows in unoccupied spaces.
+ - Virtual desktops.
+ '';
+ homepage = "https://berrywm.org/";
+ license = licenses.mit;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/bevelbar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/bevelbar/default.nix
new file mode 100644
index 000000000000..40cebb572af3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/bevelbar/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libX11, libXrandr, libXft }:
+
+stdenv.mkDerivation rec {
+ pname = "bevelbar";
+ version = "16.11";
+
+ src = fetchFromGitHub {
+ owner = "vain";
+ repo = "bevelbar";
+ rev = "v${version}";
+ sha256 = "1hbwg3vdxw9fyshy85skv476p0zr4ynvhcz2xkijydpzm2j3rmjm";
+ };
+
+ buildInputs = [ libX11 libXrandr libXft ];
+
+ installFlags = [ "prefix=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "An X11 status bar with fancy schmancy 1985-ish beveled borders";
+ inherit (src.meta) homepage;
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.neeasade ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix
new file mode 100644
index 000000000000..7c7bdbe22a78
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libxcb, libXinerama
+, xcbutil, xcbutilkeysyms, xcbutilwm
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bspwm";
+ version = "0.9.10";
+
+ src = fetchFromGitHub {
+ owner = "baskerville";
+ repo = "bspwm";
+ rev = version;
+ sha256 = "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc";
+ };
+
+ buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "A tiling window manager based on binary space partitioning";
+ homepage = "https://github.com/baskerville/bspwm";
+ maintainers = with maintainers; [ meisternu epitrochoid rvolosatovs ];
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix
new file mode 100644
index 000000000000..e52e33ec544a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, libxcb, libXinerama, xcbutil, xcbutilkeysyms, xcbutilwm }:
+
+stdenv.mkDerivation {
+ name = "bspwm-unstable-2016-09-30";
+
+
+ src = fetchFromGitHub {
+ owner = "baskerville";
+ repo = "bspwm";
+ rev = "8664c007e44de162c1597fd7e163635b274fb747";
+ sha256 = "0clvpz32z38i8kr10hqlifa661szpfn93c63m2aq2h4dwmr44slz";
+ };
+
+ buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ];
+
+ buildPhase = ''
+ make PREFIX=$out
+ '';
+
+ installPhase = ''
+ make PREFIX=$out install
+ '';
+
+ meta = {
+ description = "A tiling window manager based on binary space partitioning (git version)";
+ homepage = "https://github.com/baskerville/bspwm";
+ maintainers = [ stdenv.lib.maintainers.meisternu stdenv.lib.maintainers.epitrochoid ];
+ license = stdenv.lib.licenses.bsd2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/btops/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/btops/default.nix
new file mode 100644
index 000000000000..132e2ba6ddd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/btops/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 = "btops";
+ version = "0.1.0";
+
+ goPackagePath = "github.com/cmschuetz/btops";
+
+ src = fetchgit {
+ url = "https://github.com/cmschuetz/btops.git";
+ rev = version;
+ sha256 = "1ilidvpy7gz49zqp6rf0q7wjrc3r0brdrcp4r5f6i6p9cwybqkbq";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "bspwm desktop management that supports dymanic appending, removing, and renaming";
+ homepage = "https://github.com/cmschuetz/btops";
+ maintainers = with maintainers; [ mnacamura ];
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/btops/deps.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/btops/deps.nix
new file mode 100644
index 000000000000..a893d40e2107
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/btops/deps.nix
@@ -0,0 +1,120 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/hcl";
+ rev = "ef8a98b0bbce4a65b5aa4c368430a80ddc533168";
+ sha256 = "1qalfsc31fra7hcw2lc3s20aj7al62fq3j5fn5kga3mg99b82nyr";
+ };
+ }
+ {
+ 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 = "bb74f1db0675b241733089d5a1faa5dd8b0ef57b";
+ sha256 = "1aqk9qr46bwgdc5j7n7als61xvssvyjf4qzfsvhacl4izpygqnw7";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-toml";
+ rev = "66540cf1fcd2c3aee6f6787dfa32a6ae9a870f12";
+ sha256 = "1n8na0yg90gm0rpifmzrby5r385vvd62cdam3ls7ssy02bjvfw15";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/afero";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/afero";
+ rev = "63644898a8da0bc22138abf860edaf5277b6102e";
+ sha256 = "13piahaq4vw1y1sklq5scrsflqx0a8hzmdqfz1fy4871kf2gl8qw";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cast";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cast";
+ rev = "8965335b8c7107321228e3e3702cab9832751bac";
+ sha256 = "177bk7lq40jbgv9p9r80aydpaccfk8ja3a7jjhfwiwk9r1pa4rr2";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/jwalterweatherman";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/jwalterweatherman";
+ rev = "7c0cea34c8ece3fbeb2b27ab9b59511d360fb394";
+ sha256 = "132p84i20b9s5r6fs597lsa6648vd415ch7c0d018vm8smzqpd0h";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "583c0c0531f06d5278b7d917446061adc344b5cd";
+ sha256 = "0nr4mdpfhhk94hq4ymn5b2sxc47b29p1akxd8b0hx4dvdybmipb5";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/viper";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/viper";
+ rev = "15738813a09db5c8e5b60a19d67d3f9bd38da3a4";
+ sha256 = "1mjfzg8zvnxckaq6l8gw99i2msrfqn9yr04dc3b7kd5bpxi6zr4v";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "7c87d13f8e835d2fb3a70a2912c811ed0c1d241b";
+ sha256 = "03fhkng37rczqwfgah5hd7d373jps3hcfx79dmky2fh62yvpcyn3";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877";
+ sha256 = "03br8p1sb1ffr02l8hyrgcyib7ms0z06wy3v4r1dj2l6q4ghwzfs";
+ };
+ }
+ {
+ 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/applications/window-managers/cage/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/cage/default.nix
new file mode 100644
index 000000000000..372ad1e27fc3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/cage/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkg-config, wayland, scdoc, makeWrapper
+, wlroots, wayland-protocols, pixman, libxkbcommon
+, systemd, libGL, libX11
+, xwayland ? null
+, nixosTests
+}:
+
+stdenv.mkDerivation rec {
+ pname = "cage";
+ version = "0.1.2.1";
+
+ src = fetchFromGitHub {
+ owner = "Hjdskes";
+ repo = "cage";
+ rev = "v${version}";
+ sha256 = "1i4rm3dpmk7gkl6hfs6a7vwz76ba7yqcdp63nlrdbnq81m9cy2am";
+ };
+
+ postPatch = ''
+ substituteInPlace meson.build --replace \
+ "0.1.2" "${version}"
+ '';
+
+ nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ];
+
+ buildInputs = [
+ wlroots wayland wayland-protocols pixman libxkbcommon
+ systemd libGL libX11
+ ];
+
+ mesonFlags = [ "-Dxwayland=${stdenv.lib.boolToString (xwayland != null)}" ];
+
+ postFixup = stdenv.lib.optionalString (xwayland != null) ''
+ wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin"
+ '';
+
+ # Tests Cage using the NixOS module by launching xterm:
+ passthru.tests.basic-nixos-module-functionality = nixosTests.cage;
+
+ meta = with stdenv.lib; {
+ description = "A Wayland kiosk that runs a single, maximized application";
+ homepage = "https://www.hjdskes.nl/projects/cage/";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
new file mode 100644
index 000000000000..36b3adb08e11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkg-config, wayland, scdoc, makeWrapper
+, wlroots, wayland-protocols, pixman, libxkbcommon
+, cairo , pango, fontconfig, pandoc, systemd
+, withXwayland ? true, xwayland
+, nixosTests
+}:
+
+stdenv.mkDerivation rec {
+ pname = "cagebreak";
+ version = "1.4.4";
+
+ src = fetchFromGitHub {
+ owner = "project-repo";
+ repo = "cagebreak";
+ rev = version;
+ hash = "sha256-YmUn5H0xNC/4MBGydrEk7dy5v+s2ja4VoA1neWrQ3VY=";
+ };
+
+ nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ];
+
+ buildInputs = [
+ wlroots wayland wayland-protocols pixman libxkbcommon cairo
+ pango fontconfig pandoc systemd
+ ];
+
+ outputs = [ "out" "contrib" ];
+
+ mesonFlags = [
+ "-Dxwayland=${stdenv.lib.boolToString withXwayland}"
+ "-Dversion_override=${version}"
+ ];
+
+ postInstall = ''
+ mkdir -p $contrib/share/cagebreak
+ cp $src/examples/config $contrib/share/cagebreak/config
+ '';
+
+ postFixup = stdenv.lib.optionalString withXwayland ''
+ wrapProgram $out/bin/cagebreak --prefix PATH : "${xwayland}/bin"
+ '';
+
+ passthru.tests.basic = nixosTests.cagebreak;
+
+ meta = with stdenv.lib; {
+ description = "A Wayland tiling compositor inspired by ratpoison";
+ homepage = "https://github.com/project-repo/cagebreak";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ berbiche ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/clfswm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/clfswm/default.nix
new file mode 100644
index 000000000000..e3864319f7bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/clfswm/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4
+, makeWrapper }:
+
+stdenv.mkDerivation {
+ name = "clfswm";
+
+ src = fetchgit {
+ url = "https://gitlab.common-lisp.net/clfswm/clfswm.git";
+ rev = "refs/heads/master";
+ sha256 = "0hynzh3a1zr719cxfb0k4cvh5lskzs616hwn7p942isyvhwzhynd";
+ };
+
+ buildInputs = [
+ texinfo4 makeWrapper autoconf
+ sbcl
+ lispPackages.clx
+ lispPackages.cl-ppcre
+ xdpyinfo
+ ];
+
+ patches = [ ./require-clx.patch ];
+
+ # Stripping destroys the generated SBCL image
+ dontStrip = true;
+
+ configurePhase = ''
+ substituteInPlace load.lisp --replace \
+ ";; (setf *contrib-dir* \"/usr/local/lib/clfswm/\")" \
+ "(setf *contrib-dir* \"$out/lib/clfswm/\")"
+ '';
+
+ installPhase = ''
+ mkdir -pv $out/bin
+ make DESTDIR=$out install
+
+ # Paths in the compressed image $out/bin/clfswm are not
+ # recognized by Nix. Add explicit reference here.
+ mkdir $out/nix-support
+ echo ${xdpyinfo} ${lispPackages.clx} ${lispPackages.cl-ppcre} > $out/nix-support/depends
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A(nother) Common Lisp FullScreen Window Manager";
+ homepage = "https://common-lisp.net/project/clfswm/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ robgssp ];
+ platforms = platforms.linux;
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/clfswm/require-clx.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/clfswm/require-clx.patch
new file mode 100644
index 000000000000..ae2234461d25
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/clfswm/require-clx.patch
@@ -0,0 +1,13 @@
+diff --git a/load.lisp b/load.lisp
+index c8c4cf0..8c9ca2e 100644
+--- a/load.lisp
++++ b/load.lisp
+@@ -111,6 +111,8 @@ from $XDG_CONFIG_HOME/clfswm/clfswmrc")
+ ;;;------------------
+ (load-info "Requiring CLX")
+
++(require 'clx)
++
+ ;;; Loading clisp dynamic module. This part needs clisp >= 2.50
+ ;;#+(AND CLISP (not CLX))
+ ;;(when (fboundp 'require)
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/cwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
new file mode 100644
index 000000000000..18baefdbf3eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, yacc, pkgconfig }:
+
+stdenv.mkDerivation rec {
+
+ pname = "cwm";
+ version = "6.7";
+
+ src = fetchFromGitHub {
+ owner = "leahneukirchen";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0f9xmki2hx10k8iisfzc7nm1l31zkf1r06pdgn06ar9w9nizrld9";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libX11 libXinerama libXrandr libXft yacc ];
+
+ prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
+
+ meta = with stdenv.lib; {
+ description = "A lightweight and efficient window manager for X11";
+ homepage = "https://github.com/leahneukirchen/cwm";
+ maintainers = with maintainers; [ _0x4A6F mkf ];
+ license = licenses.isc;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
new file mode 100644
index 000000000000..455e3249adf7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchurl, libX11, libXinerama, libXft, writeText, patches ? [], conf ? null}:
+
+with stdenv.lib;
+
+let
+ name = "dwm-6.2";
+in
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchurl {
+ url = "https://dl.suckless.org/dwm/${name}.tar.gz";
+ sha256 = "03hirnj8saxnsfqiszwl2ds7p0avg20izv9vdqyambks00p2x44p";
+ };
+
+ buildInputs = [ libX11 libXinerama libXft ];
+
+ prePatch = ''sed -i "s@/usr/local@$out@" config.mk'';
+
+ # Allow users set their own list of patches
+ inherit patches;
+
+ # Allow users to set the config.def.h file containing the configuration
+ postPatch = let configFile = if isDerivation conf || builtins.isPath conf then conf else writeText "config.def.h" conf;
+ in optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+ meta = {
+ homepage = "https://suckless.org/";
+ description = "Dynamic window manager for X";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [viric];
+ platforms = with stdenv.lib.platforms; all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
new file mode 100644
index 000000000000..c7c72b4d4025
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, dbus, gdk-pixbuf, libnotify, makeWrapper, pkgconfig, xorg
+, enableAlsaUtils ? true, alsaUtils, coreutils
+, enableNetwork ? true, dnsutils, iproute, wirelesstools }:
+
+let
+ bins = lib.optionals enableAlsaUtils [ alsaUtils coreutils ]
+ ++ lib.optionals enableNetwork [ dnsutils iproute wirelesstools ];
+in
+
+rustPlatform.buildRustPackage rec {
+ pname = "dwm-status";
+ version = "1.7.1";
+
+ src = fetchFromGitHub {
+ owner = "Gerschtli";
+ repo = "dwm-status";
+ rev = version;
+ sha256 = "172qkzbi37j6wx81pyqqffi9wxbg3bf8nis7d15ncn1yfd5r4gqh";
+ };
+
+ nativeBuildInputs = [ makeWrapper pkgconfig ];
+ buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ];
+
+ cargoSha256 = "041sd9zm1c3v6iihnwjcya2xg5yxb2y4biyxpjlfblz2srxa15dm";
+
+ postInstall = lib.optionalString (bins != []) ''
+ wrapProgram $out/bin/dwm-status --prefix "PATH" : "${stdenv.lib.makeBinPath bins}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Highly performant and configurable DWM status service";
+ homepage = "https://github.com/Gerschtli/dwm-status";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ gerschtli ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/git.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/git.nix
new file mode 100644
index 000000000000..3751a8de69f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dwm/git.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchgit, libX11, libXinerama, libXft, patches ? [], conf ? null }:
+
+let
+ name = "dwm-git-20180602";
+in
+
+stdenv.mkDerivation {
+ inherit name;
+
+ src = fetchgit {
+ url = "git://git.suckless.org/dwm";
+ rev = "b69c870a3076d78ab595ed1cd4b41cf6b03b2610";
+ sha256 = "10i079h79l4gdch1qy2vrrb2xxxkgkjmgphr5r9a75jbbagwvz0k";
+ };
+
+ buildInputs = [ libX11 libXinerama libXft ];
+
+ prePatch = ''sed -i "s@/usr/local@$out@" config.mk'';
+
+ # Allow users set their own list of patches
+ inherit patches;
+
+ # Allow users to override the entire config file AFTER appying the patches
+ postPatch = stdenv.lib.optionalString (conf!=null) ''
+ echo -n '${conf}' > config.def.h
+ '';
+
+ buildPhase = "make";
+
+ meta = with stdenv.lib; {
+ homepage = "https://suckless.org/";
+ description = "Dynamic window manager for X, development version";
+ license = licenses.mit;
+ maintainers = with maintainers; [xeji];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix
new file mode 100644
index 000000000000..367c78ec5cac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, pkgconfig, libX11, libXft, libXinerama, libXpm }:
+
+stdenv.mkDerivation {
+ name = "dzen2-0.9.5";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libX11 libXft libXinerama libXpm ];
+
+ src = fetchurl {
+ url = "https://github.com/robm/dzen/tarball/master/dzen2-0.9.5git.tar.gz";
+ sha256 = "d4f7943cd39dc23fd825eb684b49dc3484860fa8443d30b06ee38af72a53b556";
+ };
+
+ patchPhase = ''
+ CFLAGS=" -Wall -Os ''${INCS} -DVERSION=\"''${VERSION}\" -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT `pkg-config --cflags xft`"
+ LIBS=" -L/usr/lib -lc -lXft -lXpm -lXinerama -lX11"
+ echo "CFLAGS=$CFLAGS" >>config.mk
+ echo "LIBS=$LIBS" >>config.mk
+ echo "LDFLAGS=$LIBS" >>config.mk
+ substituteInPlace config.mk --replace /usr/local "$out"
+ substituteInPlace gadgets/config.mk --replace /usr/local "$out"
+ '';
+
+ buildPhase = ''
+ mkdir -p $out/bin $out/man/man1
+ make clean install
+ cd gadgets
+ make clean install
+ '';
+
+ meta = {
+ homepage = "https://github.com/robm/dzen";
+ license = stdenv.lib.licenses.mit;
+ description = "X notification utility";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
new file mode 100644
index 000000000000..64dc784e812f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, libX11, libXext, libXrandr, libXrender,
+ xorgproto, patches ? [] }:
+
+stdenv.mkDerivation rec {
+ name = "evilwm-1.1.1";
+
+ src = fetchurl {
+ url = "http://www.6809.org.uk/evilwm/${name}.tar.gz";
+ sha256 = "79589c296a5915ee0bae1d231e8912601fc794d9f0a9cacb6b648ff9a5f2602a";
+ };
+
+ buildInputs = [ libX11 libXext libXrandr libXrender
+ xorgproto ];
+
+ prePatch = ''substituteInPlace ./Makefile --replace /usr $out \
+ --replace "CC = gcc" "#CC = gcc"'';
+
+ # Allow users set their own list of patches
+ inherit patches;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.6809.org.uk/evilwm/";
+ description = "Minimalist window manager for the X Window System";
+
+ license = {
+ shortName = "evilwm";
+ fullName = "Custom, inherited from aewm and 9wm";
+ url = "http://www.6809.org.uk/evilwm/";
+ free = true;
+ }; # like BSD/MIT, but Share-Alike'y; See README.
+
+ maintainers = with maintainers; [ amiloradovsky ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/fbpanel/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/fbpanel/default.nix
new file mode 100644
index 000000000000..c44bf5f0bd88
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/fbpanel/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pkgconfig
+, libX11, libXmu, libXpm, gtk2, libpng, libjpeg, libtiff, librsvg, gdk-pixbuf, gdk-pixbuf-xlib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "fbpanel";
+ version = "6.1";
+ src = fetchurl {
+ url = "mirror://sourceforge/fbpanel/${pname}-${version}.tbz2";
+ sha256 = "e14542cc81ea06e64dd4708546f5fd3f5e01884c3e4617885c7ef22af8cf3965";
+ };
+ buildInputs =
+ [ pkgconfig libX11 libXmu libXpm gtk2 libpng libjpeg libtiff librsvg gdk-pixbuf gdk-pixbuf-xlib.dev ];
+
+ preConfigure = "patchShebangs .";
+
+ postConfigure = ''
+ substituteInPlace config.mk \
+ --replace "CFLAGSX =" "CFLAGSX = -I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"
+ '';
+
+ NIX_LDFLAGS="-lX11";
+
+ meta = with stdenv.lib; {
+ description = "A stand-alone panel";
+ maintainers = with maintainers; [ raskin ];
+ platforms = platforms.linux;
+ license = licenses.mit;
+ };
+
+ passthru = {
+ updateInfo = {
+ downloadPage = "fbpanel.sourceforge.net";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/fluxbox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/fluxbox/default.nix
new file mode 100644
index 000000000000..b1a11d7153c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/fluxbox/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, pkgconfig
+, freetype, fribidi
+, libXext, libXft, libXpm, libXrandr, libXrender, xorgproto
+, libXinerama
+, imlib2 }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+ pname = "fluxbox";
+ version = "1.3.7";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/fluxbox/${pname}-${version}.tar.xz";
+ sha256 = "1h1f70y40qd225dqx937vzb4k2cz219agm1zvnjxakn5jkz7b37w";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ freetype fribidi libXext libXft libXpm libXrandr libXrender xorgproto libXinerama imlib2 ];
+
+ enableParallelBuilding = true;
+
+ preConfigure = ''
+ substituteInPlace util/fluxbox-generate_menu.in \
+ --subst-var-by PREFIX "$out"
+ '';
+
+ meta = {
+ description = "Full-featured, light-resource X window manager";
+ longDescription = ''
+ Fluxbox is a X window manager based on Blackbox 0.61.1 window
+ manager sources. It is very light on resources and easy to
+ handle but yet full of features to make an easy, and extremely
+ fast, desktop experience. It is written in C++ and licensed
+ under MIT license.
+ '';
+ homepage = "http://fluxbox.org/";
+ license = licenses.mit;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
+# Many thanks Jack Ryan from Nix-dev mailing list!
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/fvwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/fvwm/default.nix
new file mode 100644
index 000000000000..6b3f40297550
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/fvwm/default.nix
@@ -0,0 +1,33 @@
+{ gestures ? false
+, stdenv, fetchurl, pkgconfig
+, cairo, fontconfig, freetype, libXft, libXcursor, libXinerama
+, libXpm, libXt, librsvg, libpng, fribidi, perl
+, libstroke ? null
+}:
+
+assert gestures -> libstroke != null;
+
+stdenv.mkDerivation rec {
+ pname = "fvwm";
+ version = "2.6.9";
+
+ src = fetchurl {
+ url = "https://github.com/fvwmorg/fvwm/releases/download/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1bliqcnap7vb3m2rn8wvxyfhbf35h9x34s41fl4301yhrkrlrihv";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cairo fontconfig freetype
+ libXft libXcursor libXinerama libXpm libXt
+ librsvg libpng fribidi perl
+ ] ++ stdenv.lib.optional gestures libstroke;
+
+ meta = {
+ homepage = "http://fvwm.org";
+ description = "A multiple large virtual desktop window manager";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ edanaher ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
new file mode 100644
index 000000000000..e547cea3c54c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, cmake, pkgconfig, glib, libX11, libXext, libXinerama, libXrandr
+, withDoc ? stdenv.buildPlatform == stdenv.targetPlatform, asciidoc ? null }:
+
+# Doc generation is disabled by default when cross compiling because asciidoc
+# does not cross compile for now
+
+assert withDoc -> asciidoc != null;
+
+stdenv.mkDerivation rec {
+ pname = "herbstluftwm";
+ version = "0.8.3";
+
+ src = fetchurl {
+ url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz";
+ sha256 = "1qmb4pjf2f6g0dvcg11cw9njwmxblhqzd70ai8qnlgqw1iz3nkm1";
+ };
+
+ outputs = [
+ "out"
+ ] ++ stdenv.lib.optionals withDoc [
+ "doc"
+ "man"
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_INSTALL_SYSCONF_PREFIX=${placeholder "out"}/etc"
+ ] ++ stdenv.lib.optional (!withDoc) "-DWITH_DOCUMENTATION=OFF";
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ ] ++ stdenv.lib.optional withDoc asciidoc;
+
+ buildInputs = [
+ libX11
+ libXext
+ libXinerama
+ libXrandr
+ ];
+
+ meta = {
+ description = "A manual tiling window manager for X";
+ homepage = "https://herbstluftwm.org/";
+ license = stdenv.lib.licenses.bsd2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/hikari/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/hikari/default.nix
new file mode 100644
index 000000000000..d23d6c07af0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/hikari/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchzip,
+ pkgconfig, bmake,
+ cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman,
+ libucl, wayland, wayland-protocols, wlroots,
+ features ? {
+ gammacontrol = true;
+ layershell = true;
+ screencopy = true;
+ xwayland = true;
+ }
+}:
+
+let
+ pname = "hikari";
+ version = "2.2.2";
+in
+
+stdenv.mkDerivation {
+ inherit pname version;
+
+ src = fetchzip {
+ url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
+ sha256 = "0sln1n5f67i3vxkybfi6xhzplb45djqyg272vqkv64m72rmm8875";
+ };
+
+ nativeBuildInputs = [ pkgconfig bmake ];
+
+ buildInputs = [
+ cairo
+ glib
+ libevdev
+ libinput
+ libxkbcommon
+ linux-pam
+ pango
+ pixman
+ libucl
+ wayland
+ wayland-protocols
+ wlroots
+ ];
+
+ enableParallelBuilding = true;
+
+ # Must replace GNU Make by bmake
+ buildPhase = with stdenv.lib; concatStringsSep " " (
+ [ "bmake" "-j$NIX_BUILD_CORES" "PREFIX=$out" ]
+ ++ optional stdenv.isLinux "WITH_POSIX_C_SOURCE=YES"
+ ++ mapAttrsToList (feat: enabled:
+ optionalString enabled "WITH_${toUpper feat}=YES"
+ ) features
+ );
+
+ # Can't suid in nix store
+ # Run hikari as root (it will drop privileges as early as possible), or create
+ # a systemd unit to give it the necessary permissions/capabilities.
+ patchPhase = ''
+ substituteInPlace Makefile --replace '4555' '555'
+ '';
+
+ installPhase = ''
+ bmake \
+ PREFIX=$out \
+ install
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Stacking Wayland compositor which is actively developed on FreeBSD but also supports Linux";
+ homepage = "https://hikari.acmelabs.space";
+ license = licenses.bsd2;
+ platforms = platforms.linux ++ platforms.freebsd;
+ maintainers = with maintainers; [ jpotier ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/altlayout.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/altlayout.nix
new file mode 100644
index 000000000000..973dee3eeed3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/altlayout.nix
@@ -0,0 +1,21 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "i3altlayout";
+ version = "0.3";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "1h0phf3s6ljffxw0bs73k041wildaz01h37iv5mxhami41wrh4qf";
+ };
+
+ pythonPath = with python3Packages; [ enum-compat i3ipc docopt ];
+
+ meta = with lib; {
+ maintainers = with maintainers; [ magnetophon ];
+ description = "Helps you handle more efficiently your screen real estate in i3wm by auto-splitting windows on their longest side";
+ homepage = "https://github.com/deadc0de6/i3altlayout";
+ license = licenses.gpl3Only;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
new file mode 100644
index 000000000000..4a91865fecac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
@@ -0,0 +1,51 @@
+{ fetchFromGitHub, stdenv, perl, makeWrapper
+, iproute, acpi, sysstat, alsaUtils
+, scripts ? [ "bandwidth" "battery" "cpu_usage" "disk" "iface"
+ "load_average" "memory" "volume" "wifi" ]
+}:
+
+with stdenv.lib;
+
+let
+ perlscripts = [ "battery" "cpu_usage" "openvpn" "temperature" ];
+ contains_any = l1: l2: 0 < length( intersectLists l1 l2 );
+
+in
+stdenv.mkDerivation rec {
+ pname = "i3blocks-gaps";
+ version = "1.4";
+
+ src = fetchFromGitHub {
+ owner = "Airblader";
+ repo = "i3blocks-gaps";
+ rev = "4cfdf93c75f729a2c96d471004d31734e923812f";
+ sha256 = "0v9307ij8xzwdaxay3r75sd2cp453s3qb6q7dy9fks2p6wwqpazi";
+ };
+
+ makeFlags = [ "all" ];
+ installFlags = [ "PREFIX=\${out}" "VERSION=${version}" ];
+
+ buildInputs = optional (contains_any scripts perlscripts) perl;
+ nativeBuildInputs = [ makeWrapper ];
+
+ postFixup = ''
+ wrapProgram $out/libexec/i3blocks/bandwidth \
+ --prefix PATH : ${makeBinPath (optional (elem "bandwidth" scripts) iproute)}
+ wrapProgram $out/libexec/i3blocks/battery \
+ --prefix PATH : ${makeBinPath (optional (elem "battery" scripts) acpi)}
+ wrapProgram $out/libexec/i3blocks/cpu_usage \
+ --prefix PATH : ${makeBinPath (optional (elem "cpu_usage" scripts) sysstat)}
+ wrapProgram $out/libexec/i3blocks/iface \
+ --prefix PATH : ${makeBinPath (optional (elem "iface" scripts) iproute)}
+ wrapProgram $out/libexec/i3blocks/volume \
+ --prefix PATH : ${makeBinPath (optional (elem "volume" scripts) alsaUtils)}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A flexible scheduler for your i3bar blocks -- this is a fork to use with i3-gaps";
+ homepage = "https://github.com/Airblader/i3blocks-gaps";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ carlsverre ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix
new file mode 100644
index 000000000000..bfd76b444375
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix
@@ -0,0 +1,33 @@
+{ fetchFromGitHub, fetchpatch, stdenv, autoreconfHook, pkg-config }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation {
+ pname = "i3blocks";
+ version = "1.5";
+
+ src = fetchFromGitHub {
+ owner = "vivien";
+ repo = "i3blocks";
+ rev = "3417602a2d8322bc866861297f535e1ef80b8cb0";
+ sha256 = "0v8mwnm8qzpv6xnqvrk43s4b9iyld4naqzbaxk4ldq1qkhai0wsv";
+ };
+
+ patches = [
+ # XDG_CONFIG_DIRS can contain multiple elements separated by colons, which should be searched in order.
+ (fetchpatch {
+ # https://github.com/vivien/i3blocks/pull/405
+ url = "https://github.com/edef1c/i3blocks/commit/d57b32f9a364aeaf36869efdd54240433c737e57.patch";
+ sha256 = "102xb0ax0hmg82dz2gzfag470dkckzf2yizai0izacvrz0d3ngj1";
+ })
+ ];
+
+ nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+ meta = {
+ description = "A flexible scheduler for your i3bar blocks";
+ homepage = "https://github.com/vivien/i3blocks";
+ license = licenses.gpl3;
+ platforms = with platforms; freebsd ++ linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/default.nix
new file mode 100644
index 000000000000..2ea2c8ac7766
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/default.nix
@@ -0,0 +1,74 @@
+{ fetchurl, stdenv, which, pkgconfig, makeWrapper, installShellFiles, libxcb, xcbutilkeysyms
+, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre, libev
+, yajl, xcb-util-cursor, perl, pango, perlPackages, libxkbcommon
+, xorgserver, xvfb_run }:
+
+stdenv.mkDerivation rec {
+ pname = "i3";
+ version = "4.18.3";
+
+ src = fetchurl {
+ url = "https://i3wm.org/downloads/${pname}-${version}.tar.bz2";
+ sha256 = "03dijnwv2n8ak9jq59fhq0rc80m5wjc9d54fslqaivnnz81pkbjk";
+ };
+
+ nativeBuildInputs = [ which pkgconfig makeWrapper installShellFiles ];
+
+ buildInputs = [
+ libxcb xcbutilkeysyms xcbutil xcbutilwm xcbutilxrm libxkbcommon
+ libstartup_notification libX11 pcre libev yajl xcb-util-cursor perl pango
+ perlPackages.AnyEventI3 perlPackages.X11XCB perlPackages.IPCRun
+ perlPackages.ExtUtilsPkgConfig perlPackages.InlineC
+ xorgserver xvfb_run
+ ];
+
+ configureFlags = [ "--disable-builddir" ];
+
+ enableParallelBuilding = true;
+
+ postPatch = ''
+ patchShebangs .
+ '';
+
+ # Tests have been failing (at least for some people in some cases)
+ # and have been disabled until someone wants to fix them. Some
+ # initial digging uncovers that the tests call out to `git`, which
+ # they shouldn't, and then even once that's fixed have some
+ # perl-related errors later on. For more, see
+ # https://github.com/NixOS/nixpkgs/issues/7957
+ doCheck = false; # stdenv.hostPlatform.system == "x86_64-linux";
+
+ checkPhase = stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
+ ''
+ (cd testcases && xvfb-run ./complete-run.pl -p 1 --keep-xserver-output)
+ ! grep -q '^not ok' testcases/latest/complete-run.log
+ '';
+
+ postInstall = ''
+ wrapProgram "$out/bin/i3-save-tree" --prefix PERL5LIB ":" "$PERL5LIB"
+ for program in $out/bin/i3-sensible-*; do
+ sed -i 's/which/command -v/' $program
+ done
+
+ installManPage man/*.1
+ '';
+
+ separateDebugInfo = true;
+
+ meta = with stdenv.lib; {
+ description = "A tiling window manager";
+ homepage = "https://i3wm.org";
+ maintainers = with maintainers; [ modulistic fpletz globin ];
+ license = licenses.bsd3;
+ platforms = platforms.all;
+
+ longDescription = ''
+ A tiling window manager primarily targeted at advanced users and
+ developers. Based on a tree as data structure, supports tiling,
+ stacking, and tabbing layouts, handled dynamically, as well as
+ floating windows. Configured via plain text file. Multi-monitor.
+ UTF-8 clean.
+ '';
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix
new file mode 100644
index 000000000000..5c7a22eb7694
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pkgconfig, xorgproto, libxcb, xcbutilkeysyms
+, xorg , i3ipc-glib , glib
+}:
+
+stdenv.mkDerivation {
+ pname = "i3easyfocus";
+ version = "20190411";
+
+ src = fetchFromGitHub {
+ owner = "cornerman";
+ repo = "i3-easyfocus";
+ rev = "fffb468f7274f9d7c9b92867c8cb9314ec6cf81a";
+ sha256 = "1db23vzzmp0hnfss1fkd80za6d2pajx7hdwikw50pk95jq0w8wfm";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libxcb xcbutilkeysyms xorgproto xorg.libX11.dev i3ipc-glib glib.dev ];
+
+ # Makefile has no rule for 'install'
+ installPhase = ''
+ mkdir -p $out/bin
+ cp i3-easyfocus $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Focus and select windows in i3";
+ homepage = "https://github.com/cornerman/i3-easyfocus";
+ maintainers = with maintainers; [teto];
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
new file mode 100644
index 000000000000..755ceb42161c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
@@ -0,0 +1,33 @@
+{ fetchurl, stdenv, i3, autoreconfHook }:
+
+i3.overrideAttrs (oldAttrs : rec {
+
+ name = "i3-gaps-${version}";
+ version = "4.18.3";
+
+ src = fetchurl {
+ url = "https://github.com/Airblader/i3/releases/download/${version}/i3-${version}.tar.bz2";
+ sha256 = "1hcakwyz78lgp8mhqv7pw86jlb3m415pfql1q19rkijnhm3fn3ci";
+ };
+
+ nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ autoreconfHook ];
+
+ # fatal error: GENERATED_config_enums.h: No such file or directory
+ enableParallelBuilding = false;
+
+ meta = with stdenv.lib; {
+ description = "A fork of the i3 tiling window manager with some additional features";
+ homepage = "https://github.com/Airblader/i3";
+ maintainers = with maintainers; [ fmthoma ];
+ license = licenses.bsd3;
+ platforms = platforms.all;
+
+ longDescription = ''
+ Fork of i3wm, a tiling window manager primarily targeted at advanced users
+ and developers. Based on a tree as data structure, supports tiling,
+ stacking, and tabbing layouts, handled dynamically, as well as floating
+ windows. This fork adds a few features such as gaps between windows.
+ Configured via plain text file. Multi-monitor. UTF-8 clean.
+ '';
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix
new file mode 100644
index 000000000000..af353589a7ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, pkgconfig, xorgproto, libxcb
+, autoreconfHook, json-glib, gtk-doc, which
+, gobject-introspection
+}:
+
+stdenv.mkDerivation rec {
+
+ pname = "i3ipc-glib";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "acrisci";
+ repo = "i3ipc-glib";
+ rev = "v${version}";
+ sha256 = "01fzvrbnzcwx0vxw29igfpza9zwzp2s7msmzb92v01z0rz0y5m0p";
+ };
+
+ nativeBuildInputs = [ autoreconfHook which pkgconfig ];
+
+ buildInputs = [ libxcb json-glib gtk-doc xorgproto gobject-introspection ];
+
+
+ preAutoreconf = ''
+ gtkdocize
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A C interface library to i3wm";
+ homepage = "https://github.com/acrisci/i3ipc-glib";
+ maintainers = with maintainers; [teto];
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix
new file mode 100644
index 000000000000..2d75aebc8228
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, vim, makeWrapper, jq, rofi, xrandr, xdotool, i3, gawk, libnotify }:
+
+let
+ path = stdenv.lib.makeBinPath [ vim jq rofi xrandr xdotool i3 gawk libnotify ];
+in
+
+stdenv.mkDerivation rec {
+ pname = "i3-layout-manager";
+ version = "unstable-2020-05-04";
+
+ src = fetchFromGitHub {
+ owner = "klaxalk";
+ repo = pname;
+ rev = "df54826bba351d8bcd7ebeaf26c07c713af7912c";
+ sha256 = "0ccvr43yp26fnh5d82cw7jcfq2sbxzzmdx2cp15bmxr8ixr8knc3";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ install -D layout_manager.sh $out/bin/layout_manager
+ wrapProgram $out/bin/layout_manager \
+ --prefix PATH : "${path}"
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/klaxalk/i3-layout-manager";
+ description = "Saving, loading and managing layouts for i3wm";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
new file mode 100644
index 000000000000..a64e5ea33693
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libxcb,
+ xcbutilkeysyms , xcbutilimage, pam, libX11, libev, cairo, libxkbcommon,
+ libxkbfile, libjpeg_turbo, xcbutilxrm
+}:
+
+stdenv.mkDerivation rec {
+ version = "2.12.c.5";
+ pname = "i3lock-color";
+
+ src = fetchFromGitHub {
+ owner = "PandorasFox";
+ repo = "i3lock-color";
+ rev = version;
+ sha256 = "10h50a6p9ivqjz8hd5pn9l03vz6y9dxdx68bprqssfzdkzqnzaiv";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libxcb xcbutilkeysyms xcbutilimage pam libX11
+ libev cairo libxkbcommon libxkbfile libjpeg_turbo xcbutilxrm ];
+
+ makeFlags = [ "all" ];
+ preInstall = ''
+ mkdir -p $out/share/man/man1
+ '';
+ installFlags = [ "PREFIX=\${out}" "SYSCONFDIR=\${out}/etc" "MANDIR=\${out}/share/man" ];
+ postInstall = ''
+ mv $out/bin/i3lock $out/bin/i3lock-color
+ mv $out/share/man/man1/i3lock.1 $out/share/man/man1/i3lock-color.1
+ sed -i 's/\(^\|\s\|"\)i3lock\(\s\|$\)/\1i3lock-color\2/g' $out/share/man/man1/i3lock-color.1
+ '';
+ meta = with stdenv.lib; {
+ description = "A simple screen locker like slock, enhanced version with extra configuration options";
+ longDescription = ''
+ Simple screen locker. After locking, a colored background (default: white) or
+ a configurable image is shown, and a ring-shaped unlock-indicator gives feedback
+ for every keystroke. After entering your password, the screen is unlocked again.
+
+ i3lock-color is forked from i3lock (https://i3wm.org/i3lock/) with the following
+ enhancements / additional configuration options:
+
+ - indicator:
+ - shape: ring or bar
+ - size: configurable
+ - all colors: configurable
+ - all texts: configurable
+ - visibility: can be always visible, can be restricted to some screens
+
+ - background: optionally show a blurred screen instead of a single color
+
+ - more information: show text at configurable positions:
+ - clock: time/date with configurable format
+ - keyboard-layout
+ '';
+ homepage = "https://github.com/PandorasFox/i3lock-color";
+ maintainers = with maintainers; [ malyn ];
+ license = licenses.bsd3;
+
+ # Needs the SSE2 instruction set. See upstream issue
+ # https://github.com/chrjguill/i3lock-color/issues/44
+ platforms = platforms.x86;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
new file mode 100644
index 000000000000..f6e24d979a45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, xorg, i3lock }:
+
+stdenv.mkDerivation rec {
+ pname = "i3lock-fancy-rapid";
+ version = "2019-10-09";
+ src = fetchFromGitHub {
+ owner = "yvbbrjdr";
+ repo = "i3lock-fancy-rapid";
+ rev = "c67f09bc8a48798c7c820d7d4749240b10865ce0";
+ sha256 = "0jhvlj6v6wx70239pgkjxd42z1s2bzfg886ra6n1rzsdclf4rkc6";
+ };
+
+ buildInputs = [ xorg.libX11 ];
+ propagatedBuildInputs = [ i3lock ];
+
+ postPatch = ''
+ substituteInPlace i3lock-fancy-rapid.c \
+ --replace '"i3lock"' '"${i3lock}/bin/i3lock"'
+ '';
+
+ installPhase = ''
+ install -D i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A faster implementation of i3lock-fancy";
+ homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid";
+ maintainers = with maintainers; [ nickhu ];
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix
new file mode 100644
index 000000000000..c71ed04e48d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, coreutils, scrot, imagemagick, gawk
+, i3lock-color, getopt, fontconfig
+}:
+
+stdenv.mkDerivation rec {
+ rev = "7accfb2aa2f918d1a3ab975b860df1693d20a81a";
+ name = "i3lock-fancy-unstable-2018-11-25_rev${builtins.substring 0 7 rev}";
+ src = fetchFromGitHub {
+ owner = "meskarune";
+ repo = "i3lock-fancy";
+ inherit rev;
+ sha256 = "00lqsvz1knb8iqy8lnkn3sf4c2c4nzb0smky63qf48m8za5aw9b1";
+ };
+ patchPhase = ''
+ sed -i -e "s|mktemp|${coreutils}/bin/mktemp|" i3lock-fancy
+ sed -i -e "s|'rm -f |'${coreutils}/bin/rm -f |" i3lock-fancy
+ sed -i -e "s|scrot -z |${scrot}/bin/scrot -z |" i3lock-fancy
+ sed -i -e "s|convert |${imagemagick.out}/bin/convert |" i3lock-fancy
+ sed -i -e "s|awk -F|${gawk}/bin/awk -F|" i3lock-fancy
+ sed -i -e "s| awk | ${gawk}/bin/awk |" i3lock-fancy
+ sed -i -e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" i3lock-fancy
+ sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' i3lock-fancy
+ sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' i3lock-fancy
+ sed -i -e "s|getopt |${getopt}/bin/getopt |" i3lock-fancy
+ sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" i3lock-fancy
+ sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z -o)|" i3lock-fancy
+ rm Makefile
+ '';
+ installPhase = ''
+ mkdir -p $out/bin $out/share/i3lock-fancy/icons
+ cp i3lock-fancy $out/bin/i3lock-fancy
+ cp icons/lock*.png $out/share/i3lock-fancy/icons
+ '';
+ meta = with stdenv.lib; {
+ description = "i3lock is a bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text";
+ homepage = "https://github.com/meskarune/i3lock-fancy";
+ maintainers = with maintainers; [ ];
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock.nix
new file mode 100644
index 000000000000..7a2812c2cfe0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/lock.nix
@@ -0,0 +1,37 @@
+{ fetchurl, stdenv, which, pkgconfig, libxcb, xcbutilkeysyms, xcbutilimage,
+ xcbutilxrm, pam, libX11, libev, cairo, libxkbcommon, libxkbfile }:
+
+stdenv.mkDerivation rec {
+ pname = "i3lock";
+ version = "2.13";
+
+ src = fetchurl {
+ url = "https://i3wm.org/i3lock/${pname}-${version}.tar.bz2";
+ sha256 = "02szjsaz7rqrdkd0r2nwgwa85c4hwfrcskxw7ryk695kmjcfhzv3";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ which libxcb xcbutilkeysyms xcbutilimage xcbutilxrm
+ pam libX11 libev cairo libxkbcommon libxkbfile ];
+
+ makeFlags = [ "all" ];
+ installFlags = [ "PREFIX=\${out}" "SYSCONFDIR=\${out}/etc" ];
+ postInstall = ''
+ mkdir -p $out/share/man/man1
+ cp *.1 $out/share/man/man1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple screen locker like slock";
+ longDescription = ''
+ Simple screen locker. After locking, a colored background (default: white) or
+ a configurable image is shown, and a ring-shaped unlock-indicator gives feedback
+ for every keystroke. After entering your password, the screen is unlocked again.
+ '';
+ homepage = "https://i3wm.org/i3lock/";
+ maintainers = with maintainers; [ malyn domenkozar ];
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/pystatus.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/pystatus.nix
new file mode 100644
index 000000000000..beefdaf891c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/pystatus.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, fetchFromGitHub
+, libpulseaudio
+, libnotify
+, gobject-introspection
+, python3Packages
+, wrapGAppsHook
+, extraLibs ? [] }:
+
+python3Packages.buildPythonApplication rec {
+ # i3pystatus moved to rolling release:
+ # https://github.com/enkore/i3pystatus/issues/584
+ version = "unstable-2020-06-12";
+ pname = "i3pystatus";
+
+ src = fetchFromGitHub {
+ owner = "enkore";
+ repo = "i3pystatus";
+ rev = "dad5eb0c5c8a2ecd20c37ade4732586c6e53f44b";
+ sha256 = "18ygvkl92yr69kxsym57k1mc90asdxpz4b943i61qr0s4fc5n4mq";
+ };
+
+ buildInputs = [ libpulseaudio libnotify gobject-introspection ];
+
+ propagatedBuildInputs = with python3Packages; [
+ keyring colour netifaces psutil basiciw pygobject3
+ ] ++ extraLibs;
+
+ makeWrapperArgs = [
+ # LC_TIME != C results in locale.Error: unsupported locale setting
+ "--set" "LC_TIME" "C"
+ "--suffix" "LD_LIBRARY_PATH" ":" "${stdenv.lib.makeLibraryPath [ libpulseaudio ]}"
+ ];
+
+ postPatch = ''
+ makeWrapperArgs+=(--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH")
+ '';
+
+ postInstall = ''
+ makeWrapper ${python3Packages.python.interpreter} $out/bin/${pname}-python-interpreter \
+ --prefix PYTHONPATH : "$PYTHONPATH" \
+ ''${makeWrapperArgs[@]}
+ '';
+
+ # no tests in tarball
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/enkore/i3pystatus";
+ description = "A complete replacement for i3status";
+ longDescription = ''
+ i3pystatus is a growing collection of python scripts for status output compatible
+ to i3status / i3bar of the i3 window manager.
+ '';
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.igsha ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
new file mode 100644
index 000000000000..66373250f71d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkgconfig
+, makeWrapper
+, dbus
+, libpulseaudio
+, notmuch
+, ethtool
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "i3status-rust";
+ version = "0.14.3";
+
+ src = fetchFromGitHub {
+ owner = "greshake";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1k9dgmd4wz9950kr35da31rhph43gmvg8dif7hg1xw41xch6bi60";
+ };
+
+ cargoSha256 = "0qqkcgl9iz4kxl1a2vv2p7vy7wxn970y28jynf3n7hfp16i3liy2";
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+ buildInputs = [ dbus libpulseaudio notmuch ];
+
+ cargoBuildFlags = [
+ "--features=notmuch"
+ ];
+
+ postFixup = ''
+ wrapProgram $out/bin/i3status-rs --prefix PATH : "${ethtool}/bin"
+ '';
+
+ # Currently no tests are implemented, so we avoid building the package twice
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Very resource-friendly and feature-rich replacement for i3status";
+ homepage = "https://github.com/greshake/i3status-rust";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ backuitist globin ma27 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/status.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/status.nix
new file mode 100644
index 000000000000..6005ca3ab3a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/status.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv, libconfuse, yajl, alsaLib, libpulseaudio, libnl, pkgconfig, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+ name = "i3status-2.13";
+
+ src = fetchurl {
+ url = "https://i3wm.org/i3status/${name}.tar.bz2";
+ sha256 = "0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff";
+ };
+
+ nativeBuildInputs = [ pkgconfig asciidoc xmlto docbook_xml_dtd_45 docbook_xsl ];
+ buildInputs = [ libconfuse yajl alsaLib libpulseaudio libnl ];
+
+ makeFlags = [ "all" "PREFIX=$(out)" ];
+
+ # This hack is needed because for unknown reasons configure generates a broken makefile on the 2.13 release under nixos
+ preBuild = ''
+ sed -i -e 's/\$(TEST_LOGS) \$(TEST_LOGS/\$(TEST_LOGS)/g' Makefile
+ '';
+
+ meta = {
+ description = "Generates a status line for i3bar, dzen2, xmobar or lemonbar";
+ homepage = "https://i3wm.org";
+ maintainers = [ ];
+ license = stdenv.lib.licenses.bsd3;
+ platforms = stdenv.lib.platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix
new file mode 100644
index 000000000000..51881975266d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "i3-wk-switch";
+ version = "2020-03-18";
+
+ src = fetchFromGitHub {
+ owner = "tmfink";
+ repo = pname;
+ rev = "a618cb8f52120aa8d533bb7c0c8de3ff13b3dc06";
+ sha256 = "0ci0w5igjk5xa8x4rx17cpgmdkamwjmavxhp0vp6213cl93ybjhz";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ i3ipc ];
+
+ dontBuild = true;
+ doCheck = false;
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp i3-wk-switch.py "$out/bin/i3-wk-switch"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "XMonad-like workspace switching for i3 and sway";
+ maintainers = with maintainers; [ synthetica ];
+ platforms = platforms.linux;
+ license = licenses.mit;
+ homepage = "https://travisf.net/i3-wk-switcher";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
new file mode 100644
index 000000000000..5c9f2b779530
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, rustPlatform
+, xorg, python3, pkgconfig, cairo, libxkbcommon }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "wmfocus";
+ version = "1.1.5";
+
+ src = fetchFromGitHub {
+ owner = "svenstaro";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "09xffklpz62h6yiksxdlv3a9s1z0wr3ax9syl399avwdmq3c0y49";
+ };
+
+ cargoSha256 = "0rczas6sgcppacz48xx7sarkvc4s2sgcdz6c661d7vcry1y46xms";
+
+ nativeBuildInputs = [ python3 pkgconfig ];
+ buildInputs = [ cairo libxkbcommon xorg.xcbutilkeysyms ];
+
+ # For now, this is the only available featureset. This is also why the file is
+ # in the i3 folder, even though it might be useful for more than just i3
+ # users.
+ cargoBuildFlags = [ "--features i3" ];
+
+ meta = with stdenv.lib; {
+ description = "Visually focus windows by label";
+ homepage = "https://github.com/svenstaro/wmfocus";
+ license = licenses.mit;
+ maintainers = with maintainers; [ synthetica ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/icewm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
new file mode 100644
index 000000000000..b86e598a4d08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc
+, libjpeg, libtiff, libungif, libpng, imlib, expat
+, freetype, fontconfig, pkgconfig, gdk-pixbuf, gdk-pixbuf-xlib, glib
+, mkfontdir, libX11, libXft, libXext, libXinerama
+, libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb
+, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
+, libsndfile, fribidi }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "icewm";
+ version = "1.9.2";
+
+ src = fetchFromGitHub {
+ owner = "bbidulock";
+ repo = pname;
+ rev = version;
+ sha256 = "16a9ikknjmhrrlc5r6z2ilkjj5vzyfk4ypwab39mg7vcmd7jzc41";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig perl asciidoc ];
+
+ buildInputs = [
+ gettext libjpeg libtiff libungif libpng imlib expat freetype fontconfig
+ gdk-pixbuf gdk-pixbuf-xlib glib mkfontdir libX11 libXft libXext libXinerama
+ libXrandr libICE libSM libXpm libXdmcp libxcb libpthreadstubs pcre
+ libsndfile fribidi libXdamage libXcomposite libXfixes ];
+
+ cmakeFlags = [ "-DPREFIX=$out" "-DCFGDIR=/etc/icewm" ];
+
+ # install legacy themes
+ postInstall = ''
+ cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/
+ '';
+
+ meta = {
+ description = "A simple, lightweight X window manager";
+ longDescription = ''
+ IceWM is a window manager for the X Window System. The goal of
+ IceWM is speed, simplicity, and not getting in the user's way.
+ '';
+ homepage = "https://www.ice-wm.org/";
+ license = licenses.lgpl2;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix
new file mode 100644
index 000000000000..57c91c2cfb72
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, xlibsWrapper, lua, gettext, groff }:
+
+stdenv.mkDerivation {
+ name = "ion-3-20090110";
+ meta = {
+ description = "Tiling tabbed window manager designed with keyboard users in mind";
+ homepage = "http://modeemi.fi/~tuomov/ion";
+ platforms = with stdenv.lib.platforms; linux;
+ license = stdenv.lib.licenses.lgpl21;
+ };
+ src = fetchurl {
+ url = "http://tuomov.iki.fi/software/dl/ion-3-20090110.tar.gz";
+ sha256 = "1nkks5a95986nyfkxvg2rik6zmwx0lh7szd5fji7yizccwzc9xns";
+ };
+ buildInputs = [ xlibsWrapper lua gettext groff ];
+ buildFlags = [ "LUA_DIR=${lua}" "X11_PREFIX=/no-such-path" "PREFIX=\${out}" ];
+ installFlags = [ "PREFIX=\${out}" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch
new file mode 100644
index 000000000000..f7b6a4cb9f16
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch
@@ -0,0 +1,14 @@
+diff --git a/configure.ac b/configure.ac
+index 347d325..dce95a0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -489,7 +489,8 @@ fi
+ ############################################################################
+ AM_ICONV
+ AM_GNU_GETTEXT([external])
+-AM_GNU_GETTEXT_VERSION([0.19])
++AM_GNU_GETTEXT_VERSION([0.19.6])
++AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
+ LDFLAGS="$LDFLAGS $LIBINTL $LIBICONV"
+
+ ############################################################################
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/default.nix
new file mode 100644
index 000000000000..61ea1b282733
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, pkgconfig, automake, autoconf, libtool, gettext
+, which, xorg, libX11, libXext, libXinerama, libXpm, libXft, libXau, libXdmcp
+, libXmu, libpng, libjpeg, expat, xorgproto, librsvg, freetype, fontconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "jwm";
+ version = "1685";
+
+ src = fetchFromGitHub {
+ owner = "joewing";
+ repo = "jwm";
+ rev = "s${version}";
+ sha256 = "1kyvy022sij898g2hm5spy5vq0kw6aqd7fsnawl2xyh06gwh29wg";
+ };
+
+ patches = [ ./0001-Fix-Gettext-Requirement.patch ];
+
+ nativeBuildInputs = [ pkgconfig automake autoconf libtool gettext which ];
+
+ buildInputs = [
+ libX11
+ libXext
+ libXinerama
+ libXpm
+ libXft
+ xorg.libXrender
+ libXau
+ libXdmcp
+ libXmu
+ libpng
+ libjpeg
+ expat
+ xorgproto
+ librsvg
+ freetype
+ fontconfig
+ ];
+
+ enableParallelBuilding = true;
+
+ preConfigure = "./autogen.sh";
+
+ meta = {
+ homepage = "http://joewing.net/projects/jwm/";
+ description = "Joe's Window Manager is a light-weight X11 window manager";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
new file mode 100644
index 000000000000..d6fe5b4200c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, gettext, libXpm, libGL, fltk, hicolor-icon-theme, glib, gnome2, which }:
+
+stdenv.mkDerivation {
+ pname = "jwm-settings-manager";
+ version = "2018-10-19";
+
+ src = fetchFromGitHub {
+ owner = "Israel-D";
+ repo = "jwm-settings-manager";
+ rev = "cb32a70563cf1f3927339093481542b85ec3c8c8";
+ sha256 = "0d5bqf74p8zg8azns44g46q973blhmp715k8kcd73x88g7sfir8s";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ gettext
+ ];
+
+ buildInputs = [
+ libXpm
+ libGL
+ fltk
+ hicolor-icon-theme
+ which # needed at runtime to locate optional programs
+ glib.bin # provides gsettings
+ gnome2.GConf # provides gconftool-2
+ ];
+
+ postPatch = ''
+ substituteInPlace CMakeLists.txt \
+ --replace 'CMAKE_INSTALL_PREFIX "/usr"' "CMAKE_INSTALL_PREFIX $out"
+ substituteInPlace data/CMakeLists.txt \
+ --replace 'DESTINATION usr/share' "DESTINATION share"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A full configuration manager for JWM";
+ homepage = "https://joewing.net/projects/jwm";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix
new file mode 100644
index 000000000000..de1a68a56bfb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, pkgconfig, dbus-glib, autoreconfHook, xorg }:
+
+stdenv.mkDerivation {
+ pname = "kbdd";
+ version = "unstable-2017-01-29";
+
+ src = fetchFromGitHub {
+ owner = "qnikst";
+ repo = "kbdd";
+ rev = "0e1056f066ab6e3c74fd0db0c9710a9a2b2538c3";
+ sha256 = "068iqkqxh7928xlmz2pvnykszn9bcq2qgkkiwf37k1vm8fdmgzlj";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ xorg.libX11 dbus-glib ];
+
+ meta = {
+ description = "Simple daemon and library to make per window layout using XKB";
+ homepage = "https://github.com/qnikst/kbdd";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.wedens ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/larswm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/larswm/default.nix
new file mode 100644
index 000000000000..b918c28938c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/larswm/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, imake, gccmakedep, libX11, libXext, libXmu }:
+
+stdenv.mkDerivation {
+ name = "larswm-7.5.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/larswm/larswm-7.5.3.tar.gz";
+ sha256 = "1xmlx9g1nhklxjrg0wvsya01s4k5b9fphnpl9zdwp29mm484ni3v";
+ };
+
+ nativeBuildInputs = [ imake gccmakedep ];
+ buildInputs = [ libX11 libXext libXmu ];
+
+ makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
+ installTargets = [ "install" "install.man" ];
+
+ meta = {
+ homepage = "http://www.fnurt.net/larswm";
+ description = "9wm-like tiling window manager";
+ license = stdenv.lib.licenses.free;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
new file mode 100644
index 000000000000..13c0818101f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, rustPlatform, libX11, libXinerama, makeWrapper }:
+
+let
+ rpath = stdenv.lib.makeLibraryPath [ libXinerama libX11 ];
+in
+
+rustPlatform.buildRustPackage rec {
+ pname = "leftwm";
+ version = "0.2.5";
+
+ src = fetchFromGitHub {
+ owner = "leftwm";
+ repo = "leftwm";
+ rev = version;
+ sha256 = "03kk3vg0r88317zv8j2bj44wq2fwxi25rv1aasvayrh1i5j6zr10";
+ };
+
+ cargoSha256 = "0m4sv4chxzk60njixlyja44rpn04apf3bm04fgd3v7abpr169f2s";
+
+ buildInputs = [ makeWrapper libX11 libXinerama ];
+
+ postInstall = ''
+ wrapProgram $out/bin/leftwm --prefix LD_LIBRARY_PATH : "${rpath}"
+ wrapProgram $out/bin/leftwm-state --prefix LD_LIBRARY_PATH : "${rpath}"
+ wrapProgram $out/bin/leftwm-worker --prefix LD_LIBRARY_PATH : "${rpath}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tiling window manager for the adventurer";
+ homepage = "https://github.com/leftwm/leftwm";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mschneider ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix
new file mode 100644
index 000000000000..5bdb04688ca5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, perl, libxcb }:
+
+stdenv.mkDerivation {
+ name = "lemonbar-1.4";
+
+ src = fetchurl {
+ url = "https://github.com/LemonBoy/bar/archive/v1.4.tar.gz";
+ sha256 = "0fa91vb968zh6fyg97kdaix7irvqjqhpsb6ks0ggcl59lkbkdzbv";
+ };
+
+ buildInputs = [ libxcb perl ];
+
+ prePatch = ''sed -i "s@/usr@$out@" Makefile'';
+
+ meta = with stdenv.lib; {
+ description = "A lightweight xcb based bar";
+ homepage = "https://github.com/LemonBoy/bar";
+ maintainers = [ maintainers.meisternu ];
+ license = "Custom";
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
new file mode 100644
index 000000000000..a70e5a4dc5c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, perl, libxcb, libXft }:
+
+stdenv.mkDerivation {
+ name = "lemonbar-xft-unstable-2016-02-17";
+
+ src = fetchFromGitHub {
+ owner = "krypt-n";
+ repo = "bar";
+ rev = "a43b801ddc0f015ce8b1211f4c062fad12cd63a9";
+ sha256 = "0iqas07qjvabxyvna2m9aj5bcwnkdii1izl9jxha63vz0zlsc4gd";
+ };
+
+ buildInputs = [ libxcb libXft perl ];
+
+ prePatch = ''sed -i "s@/usr@$out@" Makefile'';
+
+ meta = {
+ description = "A lightweight xcb based bar with XFT-support";
+ homepage = "https://github.com/krypt-n/bar";
+ license = "Custom";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/lwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/lwm/default.nix
new file mode 100644
index 000000000000..49cdc81b9ce0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/lwm/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl
+, imake, libX11, libSM, libXext, libICE }:
+
+stdenv.mkDerivation rec {
+ pname = "lwm";
+ version = "1.2.4";
+
+ src = fetchurl {
+ url = "http://www.jfc.org.uk/files/lwm/${pname}-${version}.tar.gz";
+ sha256 = "1bcdr173f0gl61fyl43p3gr145angci7lvjqb8rl00y9f9amvh3y";
+ };
+
+ nativeBuildInputs = [ imake ];
+
+ buildInputs = [ libX11 libSM libXext libICE ];
+
+ dontConfigure = true;
+
+ preBuild = ''
+ sed -i 's|^LOCAL_LIBRARIES.*|& $(ICELIB)|' Imakefile
+ xmkmf
+ '';
+
+ installPhase = ''
+ install -dm755 $out/bin $out/share/man/man1
+ install -m755 lwm $out/bin/lwm
+ install -m644 lwm.man $out/share/man/man1/lwm.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Lightweight Window Manager";
+ longDescription = ''
+ lwm is a window manager for X that tries to keep out of your face. There
+ are no icons, no button bars, no icon docks, no root menus, no nothing: if
+ you want all that, then other programs can provide it. There's no
+ configurability either: if you want that, you want a different window
+ manager; one that helps your operating system in its evil conquest of your
+ disc space and its annexation of your physical memory.
+ '';
+ homepage = "http://www.jfc.org.uk/software/lwm.html";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/matchbox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/matchbox/default.nix
new file mode 100644
index 000000000000..3c537d6c931b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/matchbox/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, libmatchbox, libX11, libXext }:
+
+stdenv.mkDerivation rec {
+ pname = "matchbox";
+ version = "1.2";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libmatchbox ];
+ NIX_LDFLAGS = "-lX11 -L${libX11}/lib -lXext -L${libXext}/lib";
+
+ src = fetchurl {
+ url = "https://downloads.yoctoproject.org/releases/matchbox/matchbox-window-manager/${version}/matchbox-window-manager-${version}.tar.bz2";
+ sha256 = "1zyfq438b466ygcz78nvsmnsc5bhg4wcfnpxb43kbkwpyx53m8l1";
+ };
+
+ meta = {
+ description = "X window manager for non-desktop embedded systems";
+ homepage = "https://www.yoctoproject.org/software-item/matchbox/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/neocomp/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/neocomp/default.nix
new file mode 100644
index 000000000000..57968922c390
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/neocomp/default.nix
@@ -0,0 +1,85 @@
+{ stdenv
+, fetchFromGitHub
+, asciidoc
+, docbook_xml_dtd_45
+, docbook_xsl
+, freetype
+, judy
+, libGL
+, libconfig
+, libdrm
+, libxml2
+, libxslt
+, libXcomposite
+, libXdamage
+, libXext
+, libXinerama
+, libXrandr
+, libXrender
+, pcre
+, pkgconfig
+}:
+let
+ rev = "v0.6-17-g271e784";
+in
+stdenv.mkDerivation rec {
+ pname = "neocomp-unstable";
+ version = "2019-03-12";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "DelusionalLogic";
+ repo = "NeoComp";
+ sha256 = "1mp338vz1jm5pwf7pi5azx4hzykmvpkwzx1kw6a9anj272f32zpg";
+ };
+
+ buildInputs = [
+ asciidoc
+ docbook_xml_dtd_45
+ docbook_xsl
+ freetype
+ judy
+ libGL
+ libconfig
+ libdrm
+ libxml2
+ libxslt
+ libXcomposite
+ libXdamage
+ libXext
+ libXinerama
+ libXrandr
+ libXrender
+ pcre
+ pkgconfig
+ ];
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "CFGDIR=${placeholder "out"}/etc/xdg/neocomp"
+ "ASTDIR=${placeholder "out"}/share/neocomp/assets"
+ "COMPTON_VERSION=git-${rev}-${version}"
+ ];
+
+ postPatch = ''
+ substituteInPlace src/compton.c --replace \
+ "assets_add_path(\"./assets/\");" \
+ "assets_add_path(\"$out/share/neocomp/assets/\");"
+ substituteInPlace src/assets/assets.c --replace \
+ "#define MAX_PATH_LENGTH 64" \
+ "#define MAX_PATH_LENGTH 128"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/DelusionalLogic/NeoComp";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ twey ];
+ platforms = platforms.linux;
+ description = "A fork of Compton, a compositor for X11";
+ longDescription = ''
+ NeoComp is a (hopefully) fast and (hopefully) simple compositor
+ for X11, focused on delivering frames from the window to the
+ framebuffer as quickly as possible.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/notion/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/notion/default.nix
new file mode 100644
index 000000000000..494bb9ff1b71
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/notion/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, pkgconfig
+, lua, gettext, which, groff, xmessage, xterm
+, readline, fontconfig, libX11, libXext, libSM
+, libXinerama, libXrandr, libXft
+, xlibsWrapper, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "notion";
+ version = "4.0.1";
+
+ src = fetchFromGitHub {
+ owner = "raboof";
+ repo = pname;
+ rev = version;
+ sha256 = "1s0fyacygvc9iz7b9v3b2cmzzqc02nh4g1p9bfcxbg254iscd502";
+ };
+
+ nativeBuildInputs = [ pkgconfig makeWrapper groff ];
+ buildInputs = [ lua gettext which readline fontconfig libX11 libXext libSM
+ libXinerama libXrandr libXft xlibsWrapper ];
+
+ buildFlags = [ "LUA_DIR=${lua}" "X11_PREFIX=/no-such-path" ];
+
+ makeFlags = [ "NOTION_RELEASE=${version}" "PREFIX=\${out}" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/notion \
+ --prefix PATH ":" "${xmessage}/bin:${xterm}/bin" \
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tiling tabbed window manager";
+ homepage = "https://notionwm.net";
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ jfb AndersonTorres raboof ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/openbox/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/openbox/default.nix
new file mode 100644
index 000000000000..39329e8004c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/openbox/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, python3
+, libxml2, libXinerama, libXcursor, libXau, libXrandr, libICE, libSM
+, imlib2, pango, libstartup_notification, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "openbox";
+ version = "3.6.1";
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ makeWrapper
+ python3.pkgs.wrapPython
+ ];
+
+ buildInputs = [
+ libxml2
+ libXinerama libXcursor libXau libXrandr libICE libSM
+ libstartup_notification
+ python3
+ ];
+
+ propagatedBuildInputs = [
+ pango imlib2
+ ];
+
+ pythonPath = with python3.pkgs; [
+ pyxdg
+ ];
+
+ src = fetchurl {
+ url = "http://openbox.org/dist/openbox/${pname}-${version}.tar.gz";
+ sha256 = "1xvyvqxlhy08n61rjkckmrzah2si1i7nmc7s8h07riqq01vc0jlb";
+ };
+
+ setlayoutSrc = fetchurl {
+ url = "http://openbox.org/dist/tools/setlayout.c";
+ sha256 = "1ci9lq4qqhl31yz1jwwjiawah0f7x0vx44ap8baw7r6rdi00pyiv";
+ };
+
+ patches = [
+ # Use fetchurl to avoid "fetchpatch: ignores file renames" #32084
+ # This patch adds python3 support
+ (fetchurl {
+ url = "https://git.archlinux.org/svntogit/community.git/plain/openbox/trunk/py3.patch?id=90cb57ef53d952bb6ab4c33a184f815bbe1791c0";
+ sha256 = "1ks99awlkhd5ph9kz94s1r6m1bfvh42g4rmxd14dyg5b421p1ljc";
+ })
+ ];
+
+ postBuild = "gcc -O2 -o setlayout $(pkg-config --cflags --libs x11) $setlayoutSrc";
+
+ # Openbox needs XDG_DATA_DIRS set or it can't find its default theme
+ postInstall = ''
+ cp -a setlayout "$out"/bin
+ wrapProgram "$out/bin/openbox" --prefix XDG_DATA_DIRS : "$out/share"
+ wrapProgram "$out/bin/openbox-session" --prefix XDG_DATA_DIRS : "$out/share"
+ wrapProgram "$out/bin/openbox-gnome-session" --prefix XDG_DATA_DIRS : "$out/share"
+ wrapProgram "$out/bin/openbox-kde-session" --prefix XDG_DATA_DIRS : "$out/share"
+ wrapPythonProgramsIn "$out/libexec" "$out $pythonPath"
+ '';
+
+ meta = {
+ description = "X window manager for non-desktop embedded systems";
+ homepage = "http://openbox.org/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/oroborus/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/oroborus/default.nix
new file mode 100644
index 000000000000..21b18a4917bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/oroborus/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig
+, freetype, fribidi
+, libSM, libICE, libXt, libXaw, libXmu
+, libXext, libXft, libXpm, libXrandr
+, libXrender, xorgproto, libXinerama }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+ pname = "oroborus";
+ version = "2.0.20";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ freetype fribidi libSM libICE libXt libXaw libXmu libXext
+ libXft libXpm libXrandr libXrender xorgproto libXinerama ];
+
+ src = fetchurl {
+ url = "http://ftp.debian.org/debian/pool/main/o/oroborus/oroborus_${version}.tar.gz";
+ sha256 = "12bvk8x8rfnymbfbwmdcrd9g8m1zxbcq7rgvfdkjr0gnpi0aa82j";
+ };
+
+ meta = {
+ description = "A really minimalistic X window manager";
+ homepage = "https://www.oroborus.org/";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/pekwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/pekwm/default.nix
new file mode 100644
index 000000000000..da2c11c873b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/pekwm/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig
+, libpng, libjpeg
+, libXext, libXft, libXpm, libXrandr, libXinerama }:
+
+stdenv.mkDerivation rec {
+
+ pname = "pekwm";
+ version = "0.1.17";
+
+ src = fetchurl {
+ url = "https://www.pekwm.org/projects/pekwm/files/${pname}-${version}.tar.bz2";
+ sha256 = "003x6bxj1lb2ljxz3v414bn0rdl6z68c0r185fxwgs1qkyzx67wa";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libpng libjpeg
+ libXext libXft libXpm libXrandr libXinerama ];
+
+ meta = with stdenv.lib; {
+ description = "A lightweight window manager";
+ longDescription = ''
+ pekwm is a window manager that once upon a time was based on the
+ aewm++ window manager, but it has evolved enough that it no
+ longer resembles aewm++ at all. It has a much expanded
+ feature-set, including window grouping (similar to ion, pwm, or
+ fluxbox), autoproperties, xinerama, keygrabber that supports
+ keychains, and much more.
+ - Lightweight and Unobtrusive, a window manager shouldn't be
+ noticed.
+ - Very configurable, we all work and think in different ways.
+ - Automatic properties, for all the lazy people, make things
+ appear as they should when starting applications.
+ - Chainable Keygrabber, usability for everyone.
+ '';
+ homepage = "http://www.pekwm.org";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/picom/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/picom/default.nix
new file mode 100644
index 000000000000..064e555f3a5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/picom/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, uthash, asciidoc, docbook_xml_dtd_45
+, docbook_xsl, libxslt, libxml2, makeWrapper, meson, ninja
+, xorgproto, libxcb ,xcbutilrenderutil, xcbutilimage, pixman, libev
+, dbus, libconfig, libdrm, libGL, pcre, libX11
+, libXinerama, libXext, xwininfo, libxdg_basedir }:
+
+stdenv.mkDerivation rec {
+ pname = "picom";
+ version = "8.2";
+
+ src = fetchFromGitHub {
+ owner = "yshui";
+ repo = "picom";
+ rev = "v${version}";
+ sha256 = "0gjksayz2xpmgglvw17ppsan2imrd1fijs579kbf27xwp503xgfl";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ meson ninja
+ pkgconfig
+ uthash
+ asciidoc
+ docbook_xml_dtd_45
+ docbook_xsl
+ makeWrapper
+ ];
+
+ buildInputs = [
+ dbus libX11 libXext
+ xorgproto
+ libXinerama libdrm pcre libxml2 libxslt libconfig libGL
+ libxcb xcbutilrenderutil xcbutilimage
+ pixman libev
+ libxdg_basedir
+ ];
+
+ NIX_CFLAGS_COMPILE = "-fno-strict-aliasing";
+
+ mesonFlags = [
+ "-Dbuild_docs=true"
+ ];
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/picom-trans \
+ --prefix PATH : ${lib.makeBinPath [ xwininfo ]}
+ '';
+
+ meta = with lib; {
+ description = "A fork of XCompMgr, a sample compositing manager for X servers";
+ longDescription = ''
+ A fork of XCompMgr, which is a sample compositing manager for X
+ servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
+ extensions. It enables basic eye-candy effects. This fork adds
+ additional features, such as additional effects, and a fork at a
+ well-defined and proper place.
+ '';
+ license = licenses.mit;
+ homepage = "https://github.com/yshui/picom";
+ maintainers = with maintainers; [ ertes enzime twey ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
new file mode 100644
index 000000000000..ed22ed99b078
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
@@ -0,0 +1,31 @@
+diff --git a/libqtile/backend/x11/xcursors.py b/libqtile/backend/x11/xcursors.py
+index 24454b83..ef37875c 100644
+--- a/libqtile/backend/x11/xcursors.py
++++ b/libqtile/backend/x11/xcursors.py
+@@ -107,7 +107,7 @@ class Cursors(dict):
+
+ def _setup_xcursor_binding(self):
+ try:
+- xcursor = ffi.dlopen('libxcb-cursor.so.0')
++ xcursor = ffi.dlopen('@xcb-cursor@/lib/libxcb-cursor.so.0')
+ except OSError:
+ logger.warning("xcb-cursor not found, fallback to font pointer")
+ return False
+diff --git a/libqtile/pangocffi.py b/libqtile/pangocffi.py
+index dbae27ed..54c2c35f 100644
+--- a/libqtile/pangocffi.py
++++ b/libqtile/pangocffi.py
+@@ -52,10 +52,9 @@ try:
+ except ImportError:
+ raise ImportError("No module named libqtile._ffi_pango, be sure to run `./scripts/ffibuild`")
+
+-gobject = ffi.dlopen('libgobject-2.0.so.0')
+-pango = ffi.dlopen('libpango-1.0.so.0')
+-pangocairo = ffi.dlopen('libpangocairo-1.0.so.0')
+-
++gobject = ffi.dlopen('@glib@/lib/libgobject-2.0.so.0')
++pango = ffi.dlopen('@pango@/lib/libpango-1.0.so.0')
++pangocairo = ffi.dlopen('@pango@/lib/libpangocairo-1.0.so.0')
+
+ def patch_cairo_context(cairo_t):
+ def create_layout():
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
new file mode 100644
index 000000000000..1eaa5b84174c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
@@ -0,0 +1,71 @@
+diff --git a/bin/qshell b/bin/qshell
+index 5c652b7a..2d169eb2 100755
+--- a/bin/qshell
++++ b/bin/qshell
+@@ -28,5 +28,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
+ sys.path.insert(0, base_dir)
+
+ if __name__ == '__main__':
++ __import__("importlib").import_module("libqtile.utils").restore_os_environment()
+ from libqtile.scripts import qshell
+ qshell.main()
+diff --git a/bin/qtile b/bin/qtile
+index ebc8fab5..08a965ef 100755
+--- a/bin/qtile
++++ b/bin/qtile
+@@ -29,5 +29,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
+ sys.path.insert(0, base_dir)
+
+ if __name__ == '__main__':
++ __import__("importlib").import_module("libqtile.utils").restore_os_environment()
+ from libqtile.scripts import qtile
+ qtile.main()
+diff --git a/bin/qtile-cmd b/bin/qtile-cmd
+index a2136ee6..3d37a6d9 100755
+--- a/bin/qtile-cmd
++++ b/bin/qtile-cmd
+@@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
+ sys.path.insert(0, base_dir)
+
+ if __name__ == '__main__':
++ __import__("importlib").import_module("libqtile.utils").restore_os_environment()
+ from libqtile.scripts import qtile_cmd
+ qtile_cmd.main()
+diff --git a/bin/qtile-run b/bin/qtile-run
+index ac4cb1fd..74c589cb 100755
+--- a/bin/qtile-run
++++ b/bin/qtile-run
+@@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
+ sys.path.insert(0, base_dir)
+
+ if __name__ == '__main__':
++ __import__("importlib").import_module("libqtile.utils").restore_os_environment()
+ from libqtile.scripts import qtile_run
+ qtile_run.main()
+diff --git a/bin/qtile-top b/bin/qtile-top
+index a6251f27..0d524b1d 100755
+--- a/bin/qtile-top
++++ b/bin/qtile-top
+@@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
+ sys.path.insert(0, base_dir)
+
+ if __name__ == '__main__':
++ __import__("importlib").import_module("libqtile.utils").restore_os_environment()
+ from libqtile.scripts import qtile_top
+ qtile_top.main()
+diff --git a/libqtile/utils.py b/libqtile/utils.py
+index 2628c898..05117be7 100644
+--- a/libqtile/utils.py
++++ b/libqtile/utils.py
+@@ -270,3 +270,10 @@ def guess_terminal():
+ return terminal
+
+ logger.error('Default terminal has not been found.')
++
++def restore_os_environment():
++ pythonpath = os.environ.pop("QTILE_SAVED_PYTHONPATH", "")
++ os.environ["PYTHONPATH"] = pythonpath
++ path = os.environ.pop("QTILE_SAVED_PATH", None)
++ if path:
++ os.environ["PATH"] = path
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
new file mode 100644
index 000000000000..c04d8a83c1a2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
@@ -0,0 +1,13 @@
+diff --git a/libqtile/core/manager.py b/libqtile/core/manager.py
+index c22eeb6a..2ffe4eab 100644
+--- a/libqtile/core/manager.py
++++ b/libqtile/core/manager.py
+@@ -278,7 +278,7 @@ class Qtile(CommandObject):
+ logger.error("Unable to pickle qtile state")
+ argv = [s for s in argv if not s.startswith('--with-state')]
+ argv.append('--with-state=' + buf.getvalue().decode())
+- self._restart = (sys.executable, argv)
++ self._restart = (os.environ.get("QTILE_WRAPPER", "@out@/bin/qtile"), argv[1:])
+ self.stop()
+
+ async def finalize(self):
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
new file mode 100644
index 000000000000..280ec067658a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchFromGitHub, python37Packages, glib, cairo, pango, pkgconfig, libxcb, xcbutilcursor }:
+
+let cairocffi-xcffib = python37Packages.cairocffi.override {
+ withXcffib = true;
+ };
+in
+
+python37Packages.buildPythonApplication rec {
+ name = "qtile-${version}";
+ version = "0.16.0";
+
+ src = fetchFromGitHub {
+ owner = "qtile";
+ repo = "qtile";
+ rev = "v${version}";
+ sha256 = "1klv1k9847nyx71sfrhqyl1k51k2w8phqnp2bns4dvbqii7q125l";
+ };
+
+ patches = [
+ ./0001-Substitution-vars-for-absolute-paths.patch
+ ./0002-Restore-PATH-and-PYTHONPATH.patch
+ ./0003-Restart-executable.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace libqtile/core/manager.py --subst-var-by out $out
+ substituteInPlace libqtile/pangocffi.py --subst-var-by glib ${glib.out}
+ substituteInPlace libqtile/pangocffi.py --subst-var-by pango ${pango.out}
+ substituteInPlace libqtile/backend/x11/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out}
+ '';
+
+ SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib libxcb cairo pango python37Packages.xcffib ];
+
+ pythonPath = with python37Packages; [
+ xcffib
+ cairocffi-xcffib
+ setuptools
+ setuptools_scm
+ dateutil
+ dbus-python
+ mpd2
+ psutil
+ pyxdg
+ pygobject3
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/qtile \
+ --run 'export QTILE_WRAPPER=$0' \
+ --run 'export QTILE_SAVED_PYTHONPATH=$PYTHONPATH' \
+ --run 'export QTILE_SAVED_PATH=$PATH'
+ '';
+
+ doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure.
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.qtile.org/";
+ license = licenses.mit;
+ description = "A small, flexible, scriptable tiling window manager written in Python";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ kamilchm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/ratpoison/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/ratpoison/default.nix
new file mode 100644
index 000000000000..4c7cdf1069f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/ratpoison/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, pkgconfig, perl, autoconf, automake
+, libX11, xorgproto, libXt, libXpm, libXft, libXtst, libXi
+, libXrandr, fontconfig, freetype, readline
+}:
+
+stdenv.mkDerivation rec {
+ pname = "ratpoison";
+ version = "1.4.9";
+
+ src = fetchurl {
+ url = "mirror://savannah/ratpoison/${pname}-${version}.tar.xz";
+ sha256 = "1wfir1gvh5h7izgvx2kd1pr2k7wlncd33zq7qi9s9k2y0aza93yr";
+ };
+
+ outputs = [ "out" "contrib" "man" "doc" "info" ];
+
+ configureFlags = [
+ # >=1.4.9 requires this even with readline in inputs
+ "--enable-history"
+ ];
+
+ nativeBuildInputs = [ pkgconfig autoconf automake ];
+
+ buildInputs =
+ [ perl
+ libX11 xorgproto libXt libXpm libXft libXtst libXi libXrandr
+ fontconfig freetype readline ];
+
+ postInstall = ''
+ mkdir -p $contrib/{bin,share}
+ mv $out/bin/rpws $contrib/bin
+ mv $out/share/ratpoison $contrib/share
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.nongnu.org/ratpoison/";
+ description = "Simple mouse-free tiling window manager";
+ license = licenses.gpl2Plus;
+
+ longDescription = ''
+ Ratpoison is a simple window manager with no fat library
+ dependencies, no fancy graphics, no window decorations, and no
+ rodent dependence. It is largely modelled after GNU Screen which
+ has done wonders in the virtual terminal market.
+
+ The screen can be split into non-overlapping frames. All windows
+ are kept maximized inside their frames to take full advantage of
+ your precious screen real estate.
+
+ All interaction with the window manager is done through keystrokes.
+ Ratpoison has a prefix map to minimize the key clobbering that
+ cripples Emacs and other quality pieces of software.
+ '';
+
+ platforms = platforms.unix;
+ maintainers = [ maintainers.AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix
new file mode 100644
index 000000000000..062597745194
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchurl
+, pkg-config
+, which
+, autoreconfHook
+, rep-gtk
+, pango
+, gdk-pixbuf-xlib
+, imlib
+, gettext
+, texinfo
+, libXinerama
+, libXrandr
+, libXtst
+, libICE
+, libSM
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sawfish";
+ version = "1.12.90";
+
+ src = fetchurl {
+ url = "https://download.tuxfamily.org/sawfish/${pname}_${version}.tar.xz";
+ sha256 = "18p8srqqj9vjffg13qhspfz2gr1h4vfs10qzlv89g76r289iam31";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkg-config ];
+ buildInputs = [ which
+ rep-gtk pango gdk-pixbuf-xlib imlib gettext texinfo
+ libXinerama libXrandr libXtst libICE libSM
+ makeWrapper ];
+
+ patchPhase = ''
+ sed -e 's|REP_DL_LOAD_PATH=|REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):|g' -i Makedefs.in
+ sed -e 's|$(repexecdir)|$(libdir)/rep|g' -i src/Makefile.in
+ '';
+
+ postInstall = ''
+ for i in $out/lib/sawfish/sawfish-menu $out/bin/sawfish-about \
+ $out/bin/sawfish-client $out/bin/sawfish-config $out/bin/sawfish; do
+ wrapProgram $i \
+ --prefix REP_DL_LOAD_PATH : "$out/lib/rep" \
+ --set REP_LOAD_PATH "$out/share/sawfish/lisp"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An extensible, Lisp-based window manager";
+ longDescription = ''
+ Sawfish is an extensible window manager using a Lisp-based scripting language.
+ Its policy is very minimal compared to most window managers. Its aim is simply
+ to manage windows in the most flexible and attractive manner possible.
+ All high-level WM functions are implemented in Lisp for future extensibility
+ or redefinition.
+ '';
+ homepage = "https://sawfish.fandom.com/wiki/Main_Page";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/smallwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/smallwm/default.nix
new file mode 100644
index 000000000000..b6d3821e8d06
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/smallwm/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub
+, doxygen, graphviz, libX11, libXrandr }:
+
+stdenv.mkDerivation rec {
+
+ pname = "smallwm";
+ version = "2020-02-28";
+
+ src = fetchFromGitHub {
+ owner = "adamnew123456";
+ repo = "SmallWM";
+ rev = "c2dc72afa87241bcf7e646630f4aae216ce78613";
+ sha256 = "0cqhy81ymdcdyvgi55a401rr96h2akskcxi9ddzjbln4a71yjlz8";
+ };
+
+ nativeBuildInputs = [ doxygen graphviz ];
+ buildInputs = [ libX11 libXrandr ];
+
+ dontConfigure = true;
+
+ makeFlags = [ "CC=${stdenv.cc}/bin/cc" "CXX=${stdenv.cc}/bin/c++" ];
+
+ buildFlags = [ "all" "doc" ];
+
+ installPhase = ''
+ install -dm755 $out/bin $out/share/doc/${pname}-${version}
+ install -m755 bin/smallwm -t $out/bin
+ cp -r README.markdown doc/html doc/latex $out/share/doc/${pname}-${version}
+ '';
+
+ meta = with stdenv.lib;{
+ description = "A small X window manager, extended from tinywm";
+ homepage = "https://github.com/adamnew123456/SmallWM";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
new file mode 100644
index 000000000000..c3ab55894860
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, pkgconfig, xorg }:
+
+stdenv.mkDerivation {
+ pname = "spectrwm";
+ version = "3.4.1";
+
+ src = fetchFromGitHub {
+ owner = "conformal";
+ repo = "spectrwm";
+ rev = "SPECTRWM_3_4_1";
+ sha256 = "0bf0d25yr0craksamczn2mdy6cjp27l88smihlw9bw4p6a2qhi41";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = with xorg; [
+ libXrandr
+ libXcursor
+ libXft
+ libXt
+ xcbutil
+ xcbutilkeysyms
+ xcbutilwm
+ ];
+
+ sourceRoot = let
+ subdir = if stdenv.isDarwin then "osx" else "linux";
+ in "source/${subdir}";
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ description = "A tiling window manager";
+ homepage = "https://github.com/conformal/spectrwm";
+ maintainers = with maintainers; [ christianharke ];
+ license = licenses.isc;
+ platforms = platforms.all;
+
+ longDescription = ''
+ spectrwm is a small dynamic tiling window manager for X11. It
+ tries to stay out of the way so that valuable screen real estate
+ can be used for much more important stuff. It has sane defaults
+ and does not require one to learn a language to do any
+ configuration. It was written by hackers for hackers and it
+ strives to be small, compact and fast.
+ '';
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stalonetray/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stalonetray/default.nix
new file mode 100644
index 000000000000..ad0baeb97dd2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stalonetray/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libX11, xorgproto }:
+
+stdenv.mkDerivation rec {
+ pname = "stalonetray";
+ version = "0.8.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/stalonetray/${pname}-${version}.tar.bz2";
+ sha256 = "0k7xnpdb6dvx25d67v0crlr32cdnzykdsi9j889njiididc8lm1n";
+ };
+
+ buildInputs = [ libX11 xorgproto ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "Stand alone tray";
+ homepage = "http://stalonetray.sourceforge.net";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ raskin ];
+ };
+
+ passthru = {
+ updateInfo = {
+ downloadPage = "https://sourceforge.net/projects/stalonetray/files/";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpish/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpish/default.nix
new file mode 100644
index 000000000000..c76a9ba762ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpish/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, substituteAll, fetchFromGitHub, gnused, ncurses, xorg, rlwrap }:
+
+stdenv.mkDerivation {
+ pname = "stumpish";
+ version = "0.0.1";
+
+ src = fetchFromGitHub {
+ owner = "stumpwm";
+ repo = "stumpwm-contrib";
+ rev = "9f5f06652c480159ec57d1fd8751b16f02db06dc";
+ sha256 = "1dxzsnir3158p8y2128s08r9ca0ywr9mcznivmhn1lycw8mg4nfl";
+ };
+
+ buildInputs = [
+ gnused xorg.xprop rlwrap ncurses
+ ];
+
+ patches = [
+ (substituteAll {
+ src = ./paths.patch;
+ sed = "${gnused}/bin/sed";
+ xprop = "${xorg.xprop}/bin/xprop";
+ rlwrap = "${rlwrap}/bin/rlwrap";
+ tput = "${ncurses}/bin/tput";
+ })
+ ];
+
+ buildPhase = ''
+ mkdir -p $out/bin
+ '';
+
+ installPhase = ''
+ cp util/stumpish/stumpish $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/stumpwm/stumpwm-contrib";
+ description = "STUMPwm Interactive SHell";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.ebzzry ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpish/paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpish/paths.patch
new file mode 100644
index 000000000000..d18392037015
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpish/paths.patch
@@ -0,0 +1,87 @@
+diff --git a/util/stumpish/stumpish b/util/stumpish/stumpish
+index 830cb1b..64213dc 100755
+--- a/util/stumpish/stumpish
++++ b/util/stumpish/stumpish
+@@ -28,8 +28,8 @@ then
+ fi
+
+ # replace -E with -r option for old versions of GNU sed
+-if ! sed -E 1p /dev/null 2>/dev/null; then
+- sed() { shift; command sed -r "$@"; }
++if ! @sed@ -E 1p /dev/null 2>/dev/null; then
++ sed() { shift; command @sed@ -r "$@"; }
+ fi
+
+ # parse C-style backslash sequences by default
+@@ -41,9 +41,9 @@ wait_result ()
+ {
+ while true
+ do
+- RESULT=$(xprop -root -f STUMPWM_COMMAND_RESULT 8s \
++ RESULT=$(@xprop@ -root -f STUMPWM_COMMAND_RESULT 8s \
+ STUMPWM_COMMAND_RESULT 2>/dev/null |
+- sed -E 's/\\([[:digit:]]+)/\\0\1/g')
++ @sed@ -E 's/\\([[:digit:]]+)/\\0\1/g')
+ if echo "$RESULT" | grep -v -q 'not found.$'
+ then
+ break
+@@ -52,7 +52,7 @@ wait_result ()
+ sleep $DELAY
+ done
+
+- xprop -root -remove STUMPWM_COMMAND_RESULT
++ @xprop@ -root -remove STUMPWM_COMMAND_RESULT
+
+ if echo "$RESULT" | grep -q '= $'
+ then
+@@ -60,7 +60,7 @@ wait_result ()
+ fi
+
+ echo "$RESULT" |
+- sed -E 's/[^"\\n]+"//
++ @sed@ -E 's/[^"\\n]+"//
+ /^"[[:space:]]*$/d
+ s/(^|[^\\])\\n/\1\
+ /g
+@@ -80,7 +80,7 @@ send_cmd ()
+ exit
+ fi
+
+- xprop -root -f STUMPWM_COMMAND 8s -set STUMPWM_COMMAND "$cmd"
++ @xprop@ -root -f STUMPWM_COMMAND 8s -set STUMPWM_COMMAND "$cmd"
+
+ wait_result
+ }
+@@ -123,8 +123,8 @@ tput ()
+ local cap1=$1 cap2=$2
+ shift 2
+
+- command tput $cap1 $@ 2>/dev/null ||
+- command tput $cap2 $@ 2>/dev/null
++ command @tput@ $cap1 $@ 2>/dev/null ||
++ command @tput@ $cap2 $@ 2>/dev/null
+ }
+
+ READLINE=yes
+@@ -156,18 +156,18 @@ then
+ else
+ if [ -t 0 ]
+ then
+- if ! type rlwrap 2>/dev/null >&2
++ if ! type @rlwrap@ 2>/dev/null >&2
+ then
+ warn rlwrap not found, command completion won\'t work
+ elif [ $READLINE = yes ]
+ then
+ COMMANDS="${TMPDIR:-/tmp}/stumpish.commands.$$"
+ echo $(send_cmd "commands") |
+- sed -E 's/[[:space:]]+/\
++ @sed@ -E 's/[[:space:]]+/\
+ /g' |
+ sort > "$COMMANDS"
+ trap 'rm -f "$COMMANDS"' exit int term
+- rlwrap -b '' -f "$COMMANDS" "$0" -r
++ @rlwrap@ -b '' -f "$COMMANDS" "$0" -r
+ exit
+ fi
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix
new file mode 100644
index 000000000000..b059423c23c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix
@@ -0,0 +1,103 @@
+{ stdenv, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4
+, makeWrapper , rlwrap, gnused, gnugrep, coreutils, xprop
+, extraModulePaths ? []
+, version }:
+
+let
+ contrib = (fetchgit {
+ url = "https://github.com/stumpwm/stumpwm-contrib.git";
+ rev = "9bebe3622b2b6c31a6bada9055ef3862fa79b86f";
+ sha256 = "1ml6mjk2fsfv4sf65fdbji3q5x0qiq99g1k8w7a99gsl2i8h60gc";
+ });
+ versionSpec = {
+ latest = {
+ name = "1.0.0";
+ rev = "refs/tags/1.0.0";
+ sha256 = "16r0lwhxl8g71masmfbjr7s7m7fah4ii4smi1g8zpbpiqjz48ryb";
+ patches = [];
+ };
+ "0.9.9" = {
+ name = "0.9.9";
+ rev = "refs/tags/0.9.9";
+ sha256 = "0hmvbdk2yr5wrkiwn9dfzf65s4xc2qifj0sn6w2mghzp96cph79k";
+ patches = [ ./fix-module-path.patch ];
+ };
+ git = {
+ name = "git-20170203";
+ rev = "d20f24e58ab62afceae2afb6262ffef3cc318b97";
+ sha256 = "1gi29ds1x6dq7lz8lamnhcvcrr3cvvrg5yappfkggyhyvib1ii70";
+ patches = [];
+ };
+ }.${version};
+in
+stdenv.mkDerivation {
+ name = "stumpwm-${versionSpec.name}";
+
+ src = fetchgit {
+ url = "https://github.com/stumpwm/stumpwm";
+ rev = versionSpec.rev;
+ sha256 = versionSpec.sha256;
+ };
+
+ # NOTE: The patch needs an update for the next release.
+ # `(stumpwm:set-module-dir "@MODULE_DIR@")' needs to be in it.
+ patches = versionSpec.patches;
+
+ buildInputs = [
+ texinfo4 makeWrapper autoconf
+ sbcl
+ lispPackages.clx
+ lispPackages.cl-ppcre
+ lispPackages.alexandria
+ xdpyinfo
+ ];
+
+
+ # Stripping destroys the generated SBCL image
+ dontStrip = true;
+
+ configurePhase = ''
+ ./autogen.sh
+ ./configure --prefix=$out --with-module-dir=$out/share/stumpwm/modules
+ '';
+
+ preBuild = ''
+ cp -r --no-preserve=mode ${contrib} modules
+ substituteInPlace head.lisp \
+ --replace 'run-shell-command "xdpyinfo' 'run-shell-command "${xdpyinfo}/bin/xdpyinfo'
+ '';
+
+ installPhase = ''
+ mkdir -pv $out/bin
+ make install
+
+ mkdir -p $out/share/stumpwm/modules
+ cp -r modules/* $out/share/stumpwm/modules/
+ for d in ${stdenv.lib.concatStringsSep " " extraModulePaths}; do
+ cp -r --no-preserve=mode "$d" $out/share/stumpwm/modules/
+ done
+
+ # Copy stumpish;
+ cp $out/share/stumpwm/modules/util/stumpish/stumpish $out/bin/
+ chmod +x $out/bin/stumpish
+ wrapProgram $out/bin/stumpish \
+ --prefix PATH ":" "${stdenv.lib.makeBinPath [ rlwrap gnused gnugrep coreutils xprop ]}"
+
+ # Paths in the compressed image $out/bin/stumpwm are not
+ # recognized by Nix. Add explicit reference here.
+ mkdir $out/nix-support
+ echo ${xdpyinfo} > $out/nix-support/xdpyinfo
+ '';
+
+ passthru = {
+ inherit sbcl lispPackages contrib;
+ };
+
+ meta = with stdenv.lib; {
+ description = "A tiling window manager for X11";
+ homepage = "https://github.com/stumpwm/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ broken = true; # 2018-04-11
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch
new file mode 100644
index 000000000000..79bfaad3dec3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch
@@ -0,0 +1,16 @@
+diff --git a/make-image.lisp.in b/make-image.lisp.in
+index 121e9d6..2210242 100644
+--- a/make-image.lisp.in
++++ b/make-image.lisp.in
+@@ -2,7 +2,10 @@
+
+ (load "load-stumpwm.lisp")
+
+-#-ecl (stumpwm:set-module-dir "@CONTRIB_DIR@")
++(setf asdf::*immutable-systems*
++ (uiop:list-to-hash-set (asdf:already-loaded-systems)))
++
++#-ecl (stumpwm:set-module-dir "@MODULE_DIR@")
+
+ #+sbcl
+ (sb-ext:save-lisp-and-die "stumpwm" :toplevel (lambda ()
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/bg.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/bg.nix
new file mode 100644
index 000000000000..86301492c468
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/bg.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkgconfig, scdoc
+, wayland, wayland-protocols, cairo, gdk-pixbuf
+}:
+
+stdenv.mkDerivation rec {
+ pname = "swaybg";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "swaywm";
+ repo = "swaybg";
+ rev = version;
+ sha256 = "1lmqz5bmig90gq2m7lwf02d2g7z4hzf8fhqz78c8vk92c6p4xwbc";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig scdoc ];
+ buildInputs = [ wayland wayland-protocols cairo gdk-pixbuf ];
+
+ mesonFlags = [
+ "-Dgdk-pixbuf=enabled" "-Dman-pages=enabled"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Wallpaper tool for Wayland compositors";
+ longDescription = ''
+ A wallpaper utility for Wayland compositors, that is compatible with any
+ Wayland compositor which implements the following Wayland protocols:
+ wlr-layer-shell, xdg-output, and xdg-shell.
+ '';
+ inherit (src.meta) homepage;
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/contrib.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/contrib.nix
new file mode 100644
index 000000000000..fd44f4a5be50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/contrib.nix
@@ -0,0 +1,95 @@
+{ stdenv
+
+, fetchurl
+, coreutils
+, makeWrapper
+, sway-unwrapped
+, installShellFiles
+, wl-clipboard
+, libnotify
+, slurp
+, grim
+, jq
+
+, python3Packages
+}:
+
+{
+
+grimshot = stdenv.mkDerivation rec {
+ pname = "grimshot";
+ version = sway-unwrapped.version;
+
+ src = sway-unwrapped.src;
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+ installPhase = ''
+ installManPage contrib/grimshot.1
+
+ install -Dm 0755 contrib/grimshot $out/bin/grimshot
+ wrapProgram $out/bin/grimshot --set PATH \
+ "${stdenv.lib.makeBinPath [
+ sway-unwrapped
+ wl-clipboard
+ coreutils
+ libnotify
+ slurp
+ grim
+ jq
+ ] }"
+ '';
+
+ doInstallCheck = true;
+
+ installCheckPhase = ''
+ # check always returns 0
+ if [[ $($out/bin/grimshot check | grep "NOT FOUND") ]]; then false
+ else
+ echo "grimshot check passed"
+ fi
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A helper for screenshots within sway";
+ homepage = "https://github.com/swaywm/sway/tree/master/contrib";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [
+ sway-unwrapped.meta.maintainers
+ evils
+ ];
+ };
+};
+
+
+inactive-windows-transparency = python3Packages.buildPythonApplication rec {
+ # long name is long
+ lname = "inactive-windows-transparency";
+ pname = "sway-${lname}";
+ version = sway-unwrapped.version;
+
+ src = sway-unwrapped.src;
+
+ format = "other";
+ dontBuild = true;
+ dontConfigure = true;
+
+ propagatedBuildInputs = [ python3Packages.i3ipc ];
+
+ installPhase = ''
+ install -Dm 0755 $src/contrib/${lname}.py $out/bin/${lname}.py
+ '';
+
+ meta = sway-unwrapped.meta // {
+ description = "It makes inactive sway windows transparent";
+ homepage = "https://github.com/swaywm/sway/tree/${sway-unwrapped.version}/contrib";
+ };
+};
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/default.nix
new file mode 100644
index 000000000000..23dcf68bddf3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, meson, ninja, pkg-config, wayland, scdoc
+, libxkbcommon, pcre, json_c, dbus, libevdev
+, pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
+, wlroots, wayland-protocols
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sway-unwrapped";
+ version = "1.5.1";
+
+ src = fetchFromGitHub {
+ owner = "swaywm";
+ repo = "sway";
+ rev = version;
+ sha256 = "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0";
+ };
+
+ patches = [
+ ./sway-config-no-nix-store-references.patch
+ ./load-configuration-from-etc.patch
+ ];
+
+ nativeBuildInputs = [
+ meson ninja pkg-config wayland scdoc
+ ];
+
+ buildInputs = [
+ wayland libxkbcommon pcre json_c dbus libevdev
+ pango cairo libinput libcap pam gdk-pixbuf librsvg
+ wlroots wayland-protocols
+ ];
+
+ mesonFlags = [
+ "-Ddefault-wallpaper=false"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An i3-compatible tiling Wayland compositor";
+ longDescription = ''
+ Sway is a tiling Wayland compositor and a drop-in replacement for the i3
+ window manager for X11. It works with your existing i3 configuration and
+ supports most of i3's features, plus a few extras.
+ Sway allows you to arrange your application windows logically, rather
+ than spatially. Windows are arranged into a grid by default which
+ maximizes the efficiency of your screen and can be quickly manipulated
+ using only the keyboard.
+ '';
+ homepage = "https://swaywm.org";
+ changelog = "https://github.com/swaywm/sway/releases/tag/${version}";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos synthetica ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/idle.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/idle.nix
new file mode 100644
index 000000000000..486ab79598df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/idle.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkgconfig, scdoc
+, wayland, wayland-protocols, systemd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "swayidle";
+ version = "1.6";
+
+ src = fetchFromGitHub {
+ owner = "swaywm";
+ repo = "swayidle";
+ rev = version;
+ sha256 = "1nd3v8r9549lykdwh4krldfl59lzaspmmai5k1icy7dvi6kkr18r";
+ };
+
+ postPatch = ''
+ substituteInPlace meson.build \
+ --replace "version: '1.5'" "version: '${version}'"
+ '';
+
+ nativeBuildInputs = [ meson ninja pkgconfig scdoc ];
+ buildInputs = [ wayland wayland-protocols systemd ];
+
+ mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=enabled" ];
+
+ meta = with stdenv.lib; {
+ description = "Idle management daemon for Wayland";
+ longDescription = ''
+ Sway's idle management daemon. It is compatible with any Wayland
+ compositor which implements the KDE idle protocol.
+ '';
+ inherit (src.meta) homepage;
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch
new file mode 100644
index 000000000000..26a3d40d66cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch
@@ -0,0 +1,42 @@
+From 26f9c65ef037892977a824f0d7d7111066856b53 Mon Sep 17 00:00:00 2001
+From: Michael Weiss <dev.primeos@gmail.com>
+Date: Sat, 27 Apr 2019 14:26:16 +0200
+Subject: [PATCH] Load configs from /etc but fallback to /nix/store
+
+This change will load all configuration files from /etc, to make it easy
+to override them, but fallback to /nix/store/.../etc/sway/config to make
+Sway work out-of-the-box with the default configuration on non NixOS
+systems.
+---
+ meson.build | 3 ++-
+ sway/config.c | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 02b5d606..c03a9c0f 100644
+--- a/meson.build
++++ b/meson.build
+@@ -129,7 +129,8 @@ if scdoc.found()
+ endforeach
+ endif
+
+-add_project_arguments('-DSYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
++add_project_arguments('-DSYSCONFDIR="/@0@"'.format(sysconfdir), language : 'c')
++add_project_arguments('-DNIX_SYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
+
+ version = '"@0@"'.format(meson.project_version())
+ if git.found()
+diff --git a/sway/config.c b/sway/config.c
+index 4cd21bbc..dd855753 100644
+--- a/sway/config.c
++++ b/sway/config.c
+@@ -317,6 +317,7 @@ static char *get_config_path(void) {
+ "$XDG_CONFIG_HOME/i3/config",
+ SYSCONFDIR "/sway/config",
+ SYSCONFDIR "/i3/config",
++ NIX_SYSCONFDIR "/sway/config",
+ };
+
+ char *config_home = getenv("XDG_CONFIG_HOME");
+--
+2.19.2
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix
new file mode 100644
index 000000000000..4bb4225d394d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub,
+ meson, ninja, pkgconfig, scdoc,
+ wayland, wayland-protocols, libxkbcommon,
+ cairo, gdk-pixbuf, pam
+}:
+
+stdenv.mkDerivation rec {
+ pname = "swaylock-effects";
+ version = "v1.6-2";
+
+ src = fetchFromGitHub {
+ owner = "mortie";
+ repo = "swaylock-effects";
+ rev = version;
+ sha256 = "0fs3c4liajgkax0a2pdc7117v1g9k73nv87g3kyv9wsnkfbbz534";
+ };
+
+ postPatch = ''
+ sed -iE "s/version: '1\.3',/version: '${version}',/" meson.build
+ '';
+
+ nativeBuildInputs = [ meson ninja pkgconfig scdoc ];
+ buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
+
+ mesonFlags = [
+ "-Dpam=enabled" "-Dgdk-pixbuf=enabled" "-Dman-pages=enabled"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Screen locker for Wayland";
+ longDescription = ''
+ Swaylock, with fancy effects
+ '';
+ inherit (src.meta) homepage;
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ gnxlxnxx ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock-fancy.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock-fancy.nix
new file mode 100644
index 000000000000..338d626d9908
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock-fancy.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, coreutils, grim, gawk, swaylock
+, imagemagick, getopt, fontconfig, makeWrapper
+}:
+
+let
+ depsPath = stdenv.lib.makeBinPath [
+ coreutils
+ grim
+ gawk
+ swaylock
+ imagemagick
+ getopt
+ fontconfig
+ ];
+in stdenv.mkDerivation rec {
+ pname = "swaylock-fancy-unstable";
+ version = "2020-02-22";
+
+ src = fetchFromGitHub {
+ owner = "Big-B";
+ repo = "swaylock-fancy";
+ rev = "5cf977b12f372740aa7b7e5a607d583f93f1e028";
+ sha256 = "0laqwzi6069sgz91i69438ns0g2nq4zkqickavrf80h4g3gcs8vm";
+ };
+
+ postPatch = ''
+ substituteInPlace swaylock-fancy \
+ --replace "/usr/share" "$out/share"
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/swaylock-fancy \
+ --prefix PATH : "${depsPath}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "This is an swaylock bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text";
+ homepage = "https://github.com/Big-B/swaylock-fancy";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock.nix
new file mode 100644
index 000000000000..7cbba5e981bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/lock.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkgconfig, scdoc
+, wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam
+}:
+
+stdenv.mkDerivation rec {
+ pname = "swaylock";
+ version = "1.5";
+
+ src = fetchFromGitHub {
+ owner = "swaywm";
+ repo = "swaylock";
+ rev = version;
+ sha256 = "0r95p4w11dwm5ra614vddz83r8j7z6gd120z2vcchy7m9b0f15kf";
+ };
+
+ postPatch = ''
+ substituteInPlace meson.build \
+ --replace "version: '1.4'" "version: '${version}'"
+ '';
+
+ nativeBuildInputs = [ meson ninja pkgconfig scdoc ];
+ buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
+
+ mesonFlags = [
+ "-Dpam=enabled" "-Dgdk-pixbuf=enabled" "-Dman-pages=enabled"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Screen locker for Wayland";
+ longDescription = ''
+ swaylock is a screen locking utility for Wayland compositors.
+ Important note: If you don't use the Sway module (programs.sway.enable)
+ you need to set "security.pam.services.swaylock = {};" manually.
+ '';
+ inherit (src.meta) homepage;
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/sway-config-no-nix-store-references.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/sway-config-no-nix-store-references.patch
new file mode 100644
index 000000000000..009c12959430
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/sway-config-no-nix-store-references.patch
@@ -0,0 +1,21 @@
+diff --git a/config.in b/config.in
+--- a/config.in
++++ b/config.in
+@@ -21,8 +21,8 @@ set $menu dmenu_path | dmenu | xargs swaymsg exec
+
+ ### Output configuration
+ #
+-# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/)
+-output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
++# Default wallpaper
++#output * bg ~/.config/sway/backgrounds/Sway_Wallpaper_Blue_1920x1080.png fill
+ #
+ # Example configuration:
+ #
+@@ -213,5 +213,3 @@ bar {
+ inactive_workspace #32323200 #32323200 #5c5c5c
+ }
+ }
+-
+-include @sysconfdir@/sway/config.d/*
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
new file mode 100644
index 000000000000..fe78e1a9ff96
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv
+, sway-unwrapped, swaybg
+, makeWrapper, symlinkJoin, writeShellScriptBin
+, withBaseWrapper ? true, extraSessionCommands ? "", dbus
+, withGtkWrapper ? false, wrapGAppsHook, gdk-pixbuf, glib, gtk3
+, extraOptions ? [] # E.g.: [ "--verbose" ]
+}:
+
+assert extraSessionCommands != "" -> withBaseWrapper;
+
+with lib;
+
+let
+ baseWrapper = writeShellScriptBin "sway" ''
+ set -o errexit
+ if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then
+ ${extraSessionCommands}
+ export _SWAY_WRAPPER_ALREADY_EXECUTED=1
+ fi
+ if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
+ export DBUS_SESSION_BUS_ADDRESS
+ exec ${sway-unwrapped}/bin/sway "$@"
+ else
+ exec ${dbus}/bin/dbus-run-session ${sway-unwrapped}/bin/sway "$@"
+ fi
+ '';
+in symlinkJoin {
+ name = "sway-${sway-unwrapped.version}";
+
+ paths = (optional withBaseWrapper baseWrapper)
+ ++ [ sway-unwrapped ];
+
+ nativeBuildInputs = [ makeWrapper ]
+ ++ (optional withGtkWrapper wrapGAppsHook);
+
+ buildInputs = optionals withGtkWrapper [ gdk-pixbuf glib gtk3 ];
+
+ # We want to run wrapProgram manually
+ dontWrapGApps = true;
+
+ postBuild = ''
+ ${optionalString withGtkWrapper "gappsWrapperArgsHook"}
+
+ wrapProgram $out/bin/sway \
+ --prefix PATH : "${swaybg}/bin" \
+ ${optionalString withGtkWrapper ''"''${gappsWrapperArgs[@]}"''} \
+ ${optionalString (extraOptions != []) "${concatMapStrings (x: " --add-flags " + x) extraOptions}"}
+ '';
+
+ passthru.providedSessions = [ "sway" ];
+
+ inherit (sway-unwrapped) meta;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix
new file mode 100644
index 000000000000..ac28abc31d3f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, asciidoc, libxcb, xcbutil, xcbutilkeysyms
+, xcbutilwm
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sxhkd";
+ version = "0.6.2";
+
+ src = fetchFromGitHub {
+ owner = "baskerville";
+ repo = "sxhkd";
+ rev = version;
+ sha256 = "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r";
+ };
+
+ buildInputs = [ asciidoc libxcb xcbutil xcbutilkeysyms xcbutilwm ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Simple X hotkey daemon";
+ homepage = "https://github.com/baskerville/sxhkd";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ vyp ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix
new file mode 100644
index 000000000000..f0a427e68395
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchgit, xorgproto, libX11, libXft, customConfig ? null, patches ? [] }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation {
+ name = "tabbed-20180310";
+
+ src = fetchgit {
+ url = "https://git.suckless.org/tabbed";
+ rev = "b5f9ec647aae2d9a1d3bd586eb7523a4e0a329a3";
+ sha256 = "0frj2yjaf0mfjwgyfappksfir52mx2xxd3cdg5533m5d88vbmxss";
+ };
+
+ inherit patches;
+
+ postPatch = stdenv.lib.optionalString (customConfig != null) ''
+ cp ${builtins.toFile "config.h" customConfig} ./config.h
+ '';
+
+ buildInputs = [ xorgproto libX11 libXft ];
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ ];
+
+ meta = {
+ homepage = "https://tools.suckless.org/tabbed";
+ description = "Simple generic tabbed fronted to xembed aware applications";
+ license = licenses.mit;
+ maintainers = with maintainers; [ vrthra ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix
new file mode 100644
index 000000000000..681a5baec82c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, ghcWithPackages, makeWrapper, packages ? (x: []) }:
+
+let
+taffybarEnv = ghcWithPackages (self: [ self.taffybar ] ++ packages self);
+in stdenv.mkDerivation {
+ name = "taffybar-with-packages-${taffybarEnv.version}";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ mkdir -p $out/bin
+ makeWrapper ${taffybarEnv}/bin/taffybar $out/bin/taffybar \
+ --set NIX_GHC "${taffybarEnv}/bin/ghc"
+ '';
+
+ meta = {
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/tinywm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/tinywm/default.nix
new file mode 100644
index 000000000000..d6ff4ad51a2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/tinywm/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub
+, libX11 }:
+
+stdenv.mkDerivation rec {
+ pname = "tinywm";
+ version = "2014-04-22";
+
+ src = fetchFromGitHub {
+ owner = "mackstann";
+ repo = pname;
+ rev = "9d05612f41fdb8bc359f1fd9cc930bf16315abb1";
+ sha256 = "1s7r4f2d3lk1i8h089v2vyrr02hh0y9i3ihl9kqgk9s87hqw8q5b";
+ };
+
+ buildInputs = [ libX11 ];
+
+ dontConfigure = true;
+
+ buildPhase = ''
+ ${stdenv.cc}/bin/cc -Wall -pedantic -I${libX11}/include tinywm.c -L${libX11}/lib -lX11 -o tinywm
+ '';
+
+ installPhase = ''
+ install -dm755 $out/bin $out/share/doc/${pname}-${version}
+ install -m755 tinywm -t $out/bin/
+ # The annotated source code is a piece of documentation
+ install -m644 annotated.c README -t $out/share/doc/${pname}-${version}
+ '';
+
+ meta = with stdenv.lib;{
+ description = "A tiny window manger for X11";
+ longDescription = ''
+
+ TinyWM is a tiny window manager that I created as an exercise in
+ minimalism. It is also maybe helpful in learning some of the very basics
+ of creating a window manager. It is only around 50 lines of C. There is
+ also a Python version using python-xlib.
+
+ It lets you do four basic things:
+
+ - Move windows interactively with Alt+Button1 drag (left mouse button)
+ - Resize windows interactively with Alt+Button3 drag (right mouse button)
+ - Raise windows with Alt+F1 (not high on usability I know, but I needed a
+ keybinding in there somewhere)
+ - Focus windows with the mouse pointer (X does this on its own)
+ '';
+ homepage = "http://incise.org/tinywm.html";
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = libX11.meta.platforms;
+ license = licenses.publicDomain;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/trayer/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/trayer/default.nix
new file mode 100644
index 000000000000..5c3d8710e35d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/trayer/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pkgconfig, gdk-pixbuf, gtk2 }:
+
+stdenv.mkDerivation rec {
+ name = "trayer-1.1.8";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gdk-pixbuf gtk2 ];
+
+ src = fetchFromGitHub {
+ owner = "sargon";
+ repo = "trayer-srg";
+ rev = name;
+ sha256 = "1mvhwaqa9bng9wh3jg3b7y8gl7nprbydmhg963xg0r076jyzv0cg";
+ };
+
+ preConfigure = ''
+ patchShebangs configure
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/sargon/trayer-srg";
+ license = licenses.mit;
+ description = "A lightweight GTK2-based systray for UNIX desktop";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/vwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/vwm/default.nix
new file mode 100644
index 000000000000..8eb42bb9a97d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/vwm/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, ncurses, pkgconfig, glib, libviper, libpseudo, gpm,
+libvterm}:
+
+stdenv.mkDerivation rec {
+ name = "vwm-2.1.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/vwm/${name}.tar.gz";
+ sha256 = "1r5wiqyfqwnyx7dfihixlnavbvg8rni36i4gq169aisjcg7laxaf";
+ };
+
+ prePatch = ''
+ sed -i -e s@/usr/local@$out@ \
+ -e s@/usr/lib@$out/lib@ \
+ -e 's@tic vwmterm@tic -o '$out/lib/terminfo' vwmterm@' \
+ -e /ldconfig/d Makefile modules/*/Makefile vwm.h
+ '';
+
+ preInstall = ''
+ mkdir -p $out/bin $out/include
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ ncurses glib libviper libpseudo gpm libvterm ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://vwm.sourceforge.net/";
+ description = "Dynamic window manager for the console";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/weston/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/weston/default.nix
new file mode 100644
index 000000000000..a1f3b3708a42
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/weston/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, meson, ninja, pkg-config, wayland
+, libGL, mesa, libxkbcommon, cairo, libxcb
+, libXcursor, xlibsWrapper, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput, libevdev
+, colord, lcms2, pipewire ? null
+, pango ? null, libunwind ? null, freerdp ? null, vaapi ? null, libva ? null
+, libwebp ? null, xwayland ? null, wayland-protocols
+# beware of null defaults, as the parameters *are* supplied by callPackage by default
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+ pname = "weston";
+ version = "9.0.0";
+
+ src = fetchurl {
+ url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
+ sha256 = "1zlql0xgiqc3pvgbpnnvj4xvpd91pwva8qf83xfb23if377ddxaw";
+ };
+
+ nativeBuildInputs = [ meson ninja pkg-config wayland ];
+ buildInputs = [
+ wayland libGL mesa libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm
+ mtdev libjpeg pam dbus libinput libevdev pango libunwind freerdp vaapi libva
+ libwebp wayland-protocols
+ colord lcms2 pipewire
+ ];
+
+ mesonFlags= [
+ "-Dbackend-drm-screencast-vaapi=${boolToString (vaapi != null)}"
+ "-Dbackend-rdp=${boolToString (freerdp != null)}"
+ "-Dxwayland=${boolToString (xwayland != null)}" # Default is true!
+ "-Dremoting=false" # TODO
+ "-Dpipewire=${boolToString (pipewire != null)}"
+ "-Dimage-webp=${boolToString (libwebp != null)}"
+ "-Ddemo-clients=false"
+ "-Dsimple-clients="
+ "-Dtest-junit-xml=false"
+ # TODO:
+ #"--enable-clients"
+ #"--disable-setuid-install" # prevent install target to chown root weston-launch, which fails
+ ] ++ optionals (xwayland != null) [
+ "-Dxwayland-path=${xwayland.out}/bin/Xwayland"
+ ];
+
+ passthru.providedSessions = [ "weston" ];
+
+ meta = {
+ description = "A lightweight and functional Wayland compositor";
+ longDescription = ''
+ Weston is the reference implementation of a Wayland compositor, as well
+ as a useful environment in and of itself.
+ Out of the box, Weston provides a very basic desktop, or a full-featured
+ environment for non-desktop uses such as automotive, embedded, in-flight,
+ industrial, kiosks, set-top boxes and TVs. It also provides a library
+ allowing other projects to build their own full-featured environments on
+ top of Weston's core. A small suite of example or demo clients are also
+ provided.
+ '';
+ homepage = "https://gitlab.freedesktop.org/wayland/weston";
+ license = licenses.mit; # Expat version
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowchef/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowchef/default.nix
new file mode 100644
index 000000000000..0f65e4443ca4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowchef/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libxcb, libXrandr
+, xcbutil, xcbutilkeysyms, xcbutilwm, xcbproto
+}:
+
+stdenv.mkDerivation rec {
+ pname = "windowchef";
+ version = "0.5.2";
+
+ src = fetchFromGitHub {
+ owner = "tudurom";
+ repo = "windowchef";
+ rev = "v${version}";
+ sha256 = "1m4vly7w2f28lrj26rhh3x9xsp3d97m5cxj91fafgh5rds4ygyhp";
+ };
+
+ buildInputs = [ libxcb libXrandr xcbutil xcbutilkeysyms xcbutilwm xcbproto];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "A stacking window manager that cooks windows with orders from the Waitron";
+ homepage = "https://github.com/tudurom/windowchef";
+ maintainers = with maintainers; [ bhougland ];
+ license = licenses.isc;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowlab/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowlab/default.nix
new file mode 100644
index 000000000000..1bbdb7a460fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowlab/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pkgconfig
+, libX11, libXext, libXft }:
+
+let version = "1.40"; in
+stdenv.mkDerivation {
+ pname = "windowlab";
+ inherit version;
+
+ src = fetchurl {
+ url = "http://nickgravgaard.com/windowlab/windowlab-${version}.tar";
+ sha256 = "1fx4jwq4s98p2wpvawsiww7d6568bpjgcjpks61dzfj8p2j32s4d";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libX11 libXext libXft ];
+
+ postPatch =
+ ''
+ mv Makefile Makefile.orig
+ echo \
+ "
+ DEFINES += -DXFT
+ EXTRA_INC += $(pkg-config --cflags xft)
+ EXTRA_LIBS += $(pkg-config --libs xft)
+ " > Makefile
+ sed "s|/usr/local|$out|g" Makefile.orig >> Makefile
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Small and simple stacking window manager";
+ homepage = "http://nickgravgaard.com/windowlab/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ehmry ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
new file mode 100644
index 000000000000..9f5d2e2539df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, pkgconfig
+, libX11, libXext, libXft, libXmu, libXinerama, libXrandr, libXpm
+, imagemagick, libpng, libjpeg, libexif, libtiff, libungif, libwebp }:
+
+stdenv.mkDerivation rec {
+ pname = "windowmaker";
+ version = "0.95.9";
+ srcName = "WindowMaker-${version}";
+
+ src = fetchurl {
+ url = "http://windowmaker.org/pub/source/release/${srcName}.tar.gz";
+ sha256 = "055pqvlkhipyjn7m6bb3fs4zz9rd1ynzl0mmwbhp05ihc3zmh8zj";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ libX11 libXext libXft libXmu libXinerama libXrandr libXpm
+ imagemagick libpng libjpeg libexif libtiff libungif libwebp ];
+
+ configureFlags = [
+ "--with-x"
+ "--enable-modelock"
+ "--enable-randr"
+ "--enable-webp"
+ "--disable-magick" # Many distros reported imagemagick fails to be found
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://windowmaker.org/";
+ description = "NeXTSTEP-like window manager";
+ longDescription = ''
+ Window Maker is an X11 window manager originally designed to
+ provide integration support for the GNUstep Desktop
+ Environment. In every way possible, it reproduces the elegant look
+ and feel of the NEXTSTEP user interface. It is fast, feature rich,
+ easy to configure, and easy to use. It is also free software, with
+ contributions being made by programmers from around the world.
+ '';
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix
new file mode 100644
index 000000000000..4ec021644011
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix
@@ -0,0 +1,38 @@
+{ stdenv, dockapps-sources, pkg-config, libX11, libXpm, libXext, alsaLib }:
+
+stdenv.mkDerivation rec {
+ pname = "AlsaMixer.app";
+ version = "0.2.1";
+
+ src = dockapps-sources;
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ libX11 libXpm libXext alsaLib ];
+
+ setSourceRoot = ''
+ export sourceRoot=$(echo */${pname})
+ '';
+
+ dontConfigure = true;
+
+ preInstall = ''
+ install -d ${placeholder "out"}/bin
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -t ${placeholder "out"}/bin AlsaMixer.app
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ ln -s ${placeholder "out"}/bin/AlsaMixer.app ${placeholder "out"}/bin/AlsaMixer
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Alsa mixer application for Windowmaker";
+ homepage = "https://www.dockapps.net/alsamixerapp";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.bstrik ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/default.nix
new file mode 100644
index 000000000000..8a66fdbd67f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/default.nix
@@ -0,0 +1,20 @@
+{ config, lib, pkgs }:
+
+lib.makeScope pkgs.newScope (self: with self; {
+
+ dockapps-sources = pkgs.fetchgit {
+ url = "https://repo.or.cz/dockapps.git";
+ rev = "b2b9d872ee61c9b329e4597c301e4417cbd9c3ea";
+ sha256 = "sha256-BuSnwPIj3gUWMjj++SK+117xm/77u4gXLQzRFttei0w=";
+ };
+
+ libdockapp = callPackage ./libdockapp.nix { };
+
+ AlsaMixer-app = callPackage ./AlsaMixer-app.nix { };
+
+ wmCalClock = callPackage ./wmCalClock.nix { };
+
+ wmsm-app = callPackage ./wmsm-app.nix { };
+
+ wmsystemtray = callPackage ./wmsystemtray.nix { };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/libdockapp.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/libdockapp.nix
new file mode 100644
index 000000000000..bcdef42a78a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/libdockapp.nix
@@ -0,0 +1,30 @@
+{ stdenv, dockapps-sources, autoreconfHook, pkg-config
+, libX11, libXext, libXpm, mkfontdir, fontutil }:
+
+stdenv.mkDerivation rec {
+ pname = "libdockapp";
+ version = "0.7.3";
+
+ src = dockapps-sources;
+
+ nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+ buildInputs = [ libX11 libXext libXpm fontutil mkfontdir ];
+
+ setSourceRoot = ''
+ export sourceRoot=$(echo */${pname})
+ '';
+
+ # There is a bug on --with-font
+ configureFlags = [
+ "--with-examples=no"
+ "--with-font=no"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A library providing a framework for dockapps";
+ homepage = "https://www.dockapps.net/libdockapp";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.bstrik ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmCalClock.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmCalClock.nix
new file mode 100644
index 000000000000..f8ea781858a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmCalClock.nix
@@ -0,0 +1,38 @@
+{ stdenv, dockapps-sources
+, libX11, libXpm, libXext }:
+
+stdenv.mkDerivation rec {
+ pname = "wmCalClock";
+ version = "1.25";
+
+ src = dockapps-sources;
+
+ buildInputs = [ libX11 libXpm libXext ];
+
+ setSourceRoot = ''
+ export sourceRoot=$(echo */${pname}/Src)
+ '';
+
+ preBuild = ''
+ makeFlagsArray+=(
+ CC="cc"
+ INCDIR="-I${libX11.dev}/include -I${libXext.dev}/include -I${libXpm.dev}/include"
+ LIBDIR="-I${libX11}/lib -I${libXext}/lib -I${libXpm}/lib"
+ )
+ '';
+
+ preInstall = ''
+ install -d ${placeholder "out"}/bin
+ install -d ${placeholder "out"}/man/man1
+ '';
+
+ installFlags = [ "DESTDIR=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ description = "A Calendar clock with antialiased text";
+ homepage = "https://www.dockapps.net/wmcalclock";
+ license = licenses.gpl2Plus;
+ maintainers = [ maintainers.bstrik ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
new file mode 100644
index 000000000000..dd25ee2b2fce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
@@ -0,0 +1,43 @@
+{ stdenv, dockapps-sources
+, libX11
+, libXpm
+, libXext
+, libdockapp }:
+
+stdenv.mkDerivation rec {
+ pname = "wmsm.app";
+ version = "0.2.1";
+
+ src = dockapps-sources;
+
+ buildInputs = [ libX11 libXpm libXext libdockapp ];
+
+ setSourceRoot = ''
+ export sourceRoot=$(echo */${pname}/wmsm)
+ '';
+
+ NIX_CFLAGS_COMPILE = "-std=gnu89";
+
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace "PREFIX = /usr/X11R6/bin" "" \
+ --replace "/usr/bin/install" "install"
+ '';
+
+ makeFlags = [ "CC=cc" ];
+
+ preInstall = ''
+ runHook preInstall
+ install -d ${placeholder "out"}/bin
+ runHook postInstall
+ '';
+
+ installFlags = [ "PREFIX=${placeholder "out"}/bin" ];
+
+ meta = with stdenv.lib; {
+ description = "System monitor for Windowmaker";
+ homepage = "https://www.dockapps.net/wmsmapp";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bstrik ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix
new file mode 100644
index 000000000000..6ec62af5d36e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, libX11, libXpm, libXext, libXfixes, libXmu }:
+
+stdenv.mkDerivation rec {
+ pname = "wmsystemtray";
+ version = "1.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/${pname}/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "sha256-jt70NpHp//BxAA4pFmx8GtQgwJVukGgVEGHogcisl+k=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libX11 libXpm libXext libXfixes libXmu ];
+
+ meta = with stdenv.lib; {
+ description = "A system tray for Windowmaker";
+ homepage = "http://wmsystemtray.sourceforge.net";
+ license = licenses.gpl2Only;
+ maintainers = [ maintainers.bstrik ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/wmfs/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/wmfs/default.nix
new file mode 100644
index 000000000000..a53fc560abca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/wmfs/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, gnumake,
+ libX11, libXinerama, libXrandr, libXpm, libXft, imlib2 }:
+stdenv.mkDerivation {
+ pname = "wmfs";
+
+ version = "201902";
+
+ src = fetchFromGitHub {
+ owner = "xorg62";
+ repo = "wmfs";
+ sha256 = "1m7dsmmlhq2qipim659cp9aqlriz1cwrrgspl8baa5pncln0gd5c";
+ rev = "b7b8ff812d28c79cb22a73db2739989996fdc6c2";
+ };
+
+ nativeBuildInputs = [
+ gnumake
+ ];
+
+ buildInputs = [
+ imlib2
+ libX11
+ libXinerama
+ libXrandr
+ libXpm
+ libXft
+ ];
+
+ preConfigure = "substituteInPlace configure --replace '-lxft' '-lXft'";
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "XDG_CONFIG_DIR=${placeholder "out"}/etc/xdg"
+ "MANPREFIX=${placeholder "out"}/share/man"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Window manager from scratch";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.balsoft ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix
new file mode 100644
index 000000000000..721e618b1d43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, unzip, pkgconfig, libixp_hg, txt2tags, dash, python, which
+, libX11 , libXrender, libXext, libXinerama, libXrandr, libXft }:
+
+stdenv.mkDerivation rec {
+ rev = "2823";
+ version = "hg-2012-12-09";
+ pname = "wmii";
+
+ src = fetchurl {
+ url = "https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/wmii/source-archive.zip";
+ sha256 = "1wmkq14zvmfrmydl8752xz852cy7agrx3qp4fy2cc5asb2r9abaz";
+ };
+
+ # for dlopen-ing
+ patchPhase = ''
+ substituteInPlace lib/libstuff/x11/xft.c --replace "libXft.so" "$(pkg-config --variable=libdir xft)/libXft.so.2"
+ substituteInPlace cmd/wmii.sh.sh --replace "\$(which which)" "${which}/bin/which"
+ '';
+
+ configurePhase = ''
+ for file in $(grep -lr '#!.*sh'); do
+ sed -i 's|#!.*sh|#!${dash}/bin/dash|' $file
+ done
+
+ cat <<EOF >> config.mk
+ PREFIX = $out
+ LIBIXP = ${libixp_hg}/lib/libixp.a
+ BINSH = ${dash}/bin/dash
+ EOF
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ unzip libixp_hg txt2tags dash python which
+ libX11 libXrender libXext libXinerama libXrandr libXft ];
+
+ # For some reason including mercurial in buildInputs did not help
+ makeFlags = [ "WMII_HGVERSION=hg${rev}" ];
+
+ meta = {
+ homepage = "https://suckless.org/"; # https://wmii.suckless.org/ does not exist anymore
+ description = "A small window manager controlled by a 9P filesystem";
+ maintainers = with stdenv.lib.maintainers; [ kovirobi ];
+ license = stdenv.lib.licenses.mit;
+ inherit version;
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
new file mode 100644
index 000000000000..ffd804eaba0e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, glib, dbus-glib
+, desktopSupport ? "gnomeflashback", xorg
+, gtk2
+, gtk3, gnome3, mate
+, libxfce4util, xfce4-panel
+}:
+
+assert desktopSupport == "gnomeflashback" || desktopSupport == "mate" || desktopSupport == "xfce4";
+
+stdenv.mkDerivation rec {
+ version = "unstable-2017-09-15";
+ pname = "xmonad-log-applet";
+ name = "${pname}-${desktopSupport}-${version}";
+
+ src = fetchFromGitHub {
+ owner = "kalj";
+ repo = pname;
+ rev = "a1b294cad2f266e4f18d9de34167fa96a0ffdba8";
+ sha256 = "042307grf4zvn61gnflhsj5xsjykrk9sjjsprprm4iij0qpybxcw";
+ };
+
+ buildInputs = [ glib dbus-glib xorg.xcbutilwm ]
+ ++ stdenv.lib.optionals (desktopSupport == "gnomeflashback") [ gtk3 gnome3.gnome-panel ]
+ ++ stdenv.lib.optionals (desktopSupport == "mate") [ gtk3 mate.mate-panel ]
+ ++ stdenv.lib.optionals (desktopSupport == "xfce4") [ gtk2 libxfce4util xfce4-panel ]
+ ;
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ configureFlags = [ "--with-panel=${desktopSupport}" ];
+
+ patches = [ ./fix-paths.patch ];
+
+ # Setup hook replaces ${prefix} in pc files so we cannot use
+ # --define-variable=prefix=$prefix
+ PKG_CONFIG_LIBXFCE4PANEL_1_0_LIBDIR = "$(out)/lib";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/kalj/xmonad-log-applet";
+ license = licenses.bsd3;
+ broken = desktopSupport == "gnomeflashback";
+ description = "An applet that will display XMonad log information (${desktopSupport} version)";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch
new file mode 100644
index 000000000000..5e1fc7114dc8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch
@@ -0,0 +1,57 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,7 +20,7 @@
+ PKG_CHECK_MODULES(XCB, xcb xcb-ewmh)
+
+ PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= 0.80)
+-SESSION_BUS_SERVICES_DIR=`$PKG_CONFIG --variable=session_bus_services_dir dbus-1`
++SESSION_BUS_SERVICES_DIR=$prefix/share/dbus-1/services
+ AC_SUBST([SESSION_BUS_SERVICES_DIR])
+
+ AC_ARG_WITH(
+@@ -32,35 +32,35 @@
+ AS_IF(
+ [test "x$panel" = xgnome2],
+ [PKG_CHECK_MODULES(LIBPANEL, libpanelapplet-3.0 >= 2.32.0)]
+- LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libpanelapplet-3.0`/share/gnome-panel/applets
+- PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libpanelapplet-3.0`/libexec
++ LIBPANEL_APPLET_DIR=$prefix/share/gnome-panel/applets
++ PLUGIN_DIR=$prefix/libexec
+ [AC_DEFINE(PANEL_GNOME, 1, [panel type])]
+ [AC_DEFINE(PANEL_GNOME2, 1, [panel type])]
+ ,
+ [test "x$panel" = xgnome3],
+ [PKG_CHECK_MODULES(LIBPANEL, libpanelapplet-4.0 >= 3.0.0)]
+- LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=libpanel_applet_dir libpanelapplet-4.0`
+- PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libpanelapplet-4.0`/libexec
++ LIBPANEL_APPLET_DIR=`$PKG_CONFIG --define-variable=prefix=$prefix --variable=libpanel_applet_dir libpanelapplet-4.0`
++ PLUGIN_DIR=$prefix/libexec
+ [AC_DEFINE(PANEL_GNOME, 1, [panel type])]
+ [AC_DEFINE(PANEL_GNOME3, 1, [panel type])]
+ ,
+ [test "x$panel" = xgnomeflashback],
+ [PKG_CHECK_MODULES(LIBPANEL, libpanel-applet >= 3.0.0)]
+- LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=libpanel_applet_dir libpanel-applet`
+- PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libpanel-applet`/libexec
++ LIBPANEL_APPLET_DIR=`$PKG_CONFIG --define-variable=prefix=$prefix --variable=libpanel_applet_dir libpanel-applet`
++ PLUGIN_DIR=$prefix/libexec
+ [AC_DEFINE(PANEL_GNOME, 1, [panel type])]
+ [AC_DEFINE(PANEL_GNOMEFLASHBACK, 1, [panel type])]
+ ,
+ [test "x$panel" = xmate],
+ [PKG_CHECK_MODULES(LIBPANEL, libmatepanelapplet-4.0 >= 1.4.0)]
+- LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libmatepanelapplet-4.0`/share/mate-panel/applets
+- PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libmatepanelapplet-4.0`/libexec
++ LIBPANEL_APPLET_DIR=$prefix/share/mate-panel/applets
++ PLUGIN_DIR=$prefix/libexec
+ [AC_DEFINE(PANEL_MATE, 1, [panel type])]
+ ,
+ [test "x$panel" = xxfce4],
+ [PKG_CHECK_MODULES(LIBPANEL, libxfce4panel-1.0 >= 4.6.0)]
+- LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libxfce4panel-1.0`/share/xfce4/panel-plugins
+- PLUGIN_DIR=`$PKG_CONFIG --variable=libdir libxfce4panel-1.0`/xfce4/panel/plugins
++ LIBPANEL_APPLET_DIR=$prefix/share/xfce4/panel-plugins
++ PLUGIN_DIR=`$PKG_CONFIG --define-variable=prefix=$prefix --variable=libdir libxfce4panel-1.0`/xfce4/panel/plugins
+ [AC_DEFINE(PANEL_XFCE4, 1, [panel type])]
+ ,
+ [AC_MSG_ERROR([Unknown panel type, use gnome2, gnome3, gnomeflashback, mate or xfce4])]
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/wrapper.nix
new file mode 100644
index 000000000000..f5c9f12a23f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/xmonad/wrapper.nix
@@ -0,0 +1,20 @@
+{ stdenv, ghcWithPackages, xmessage, makeWrapper, packages }:
+
+let
+xmonadEnv = ghcWithPackages (self: [ self.xmonad ] ++ packages self);
+in stdenv.mkDerivation {
+ name = "xmonad-with-packages-${xmonadEnv.version}";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ install -D ${xmonadEnv}/share/man/man1/xmonad.1.gz $out/share/man/man1/xmonad.1.gz
+ makeWrapper ${xmonadEnv}/bin/xmonad $out/bin/xmonad \
+ --set NIX_GHC "${xmonadEnv}/bin/ghc" \
+ --set XMONAD_XMESSAGE "${xmessage}/bin/xmessage"
+ '';
+
+ # trivial derivation
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/build.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/build.nix
new file mode 100644
index 000000000000..10806ba78cfe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/build.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, cairo, gdk-pixbuf, libconfig, pango, pkgconfig
+, xcbutilwm, alsaLib, wirelesstools, asciidoc, libxslt, makeWrapper, docbook_xsl
+, configFile ? null, lib
+, rev, sha256, version, patches ? []
+}:
+
+stdenv.mkDerivation {
+ pname = "yabar";
+ inherit version;
+
+ src = fetchFromGitHub {
+ inherit rev sha256;
+
+ owner = "geommer";
+ repo = "yabar";
+ };
+
+ inherit patches;
+
+ hardeningDisable = [ "format" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cairo gdk-pixbuf libconfig pango xcbutilwm docbook_xsl
+ alsaLib wirelesstools asciidoc libxslt makeWrapper
+ ];
+
+ postPatch = ''
+ substituteInPlace ./Makefile \
+ --replace "\$(shell git describe)" "${version}" \
+ --replace "a2x" "${asciidoc}/bin/a2x --no-xmllint"
+ '';
+
+ makeFlags = [ "DESTDIR=$(out)" "PREFIX=/" ];
+
+ postInstall = ''
+ mkdir -p $out/share/yabar/examples
+ cp -v examples/*.config $out/share/yabar/examples
+
+ ${lib.optionalString (configFile != null)
+ ''
+ wrapProgram "$out/bin/yabar" \
+ --add-flags "-c ${configFile}"
+ ''
+ }
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A modern and lightweight status bar for X window managers";
+ homepage = "https://github.com/geommer/yabar";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/default.nix
new file mode 100644
index 000000000000..a33a75676ee9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/default.nix
@@ -0,0 +1,18 @@
+{ callPackage, attrs ? {}, fetchpatch }:
+
+let
+ overrides = rec {
+ version = "0.4.0";
+
+ rev = version;
+ sha256 = "1nw9dar1caqln5fr0dqk7dg6naazbpfwwzxwlkxz42shsc3w30a6";
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/geommer/yabar/commit/9779a5e04bd6e8cdc1c9fcf5d7ac31416af85a53.patch";
+ sha256 = "1szhr3k1kq6ixgnp74wnzgfvgxm6r4zpc3ny2x2wzy6lh2czc07s";
+ })
+ ];
+
+ } // attrs;
+in callPackage ./build.nix overrides
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/unstable.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/unstable.nix
new file mode 100644
index 000000000000..47c8f6c5e568
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yabar/unstable.nix
@@ -0,0 +1,25 @@
+{ fetchpatch, playerctl, libxkbcommon, callPackage, attrs ? {} }:
+
+let
+ pkg = callPackage ./build.nix ({
+ version = "unstable-2018-01-18";
+
+ rev = "c516e8e78d39dd2b339acadc4c175347171150bb";
+ sha256 = "1p9lx78cayyn7qc2q66id2xfs76jyddnqv2x1ypsvixaxwcvqgdb";
+ } // attrs);
+in pkg.overrideAttrs (o: {
+ buildInputs = o.buildInputs ++ [
+ playerctl libxkbcommon
+ ];
+
+ makeFlags = o.makeFlags ++ [
+ "PLAYERCTL=1"
+ ];
+
+ patches = (o.patches or []) ++ [
+ (fetchpatch {
+ url = "https://github.com/geommer/yabar/commit/008dc1420ff684cf12ce2ef3ac9d642e054e39f5.patch";
+ sha256 = "1q7nd66ai6nr2m6iqxn55gvbr4r5gjc00c8wyjc3riv31qcbqbhv";
+ })
+ ];
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yeahwm/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yeahwm/default.nix
new file mode 100644
index 000000000000..a8323ff1d386
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/window-managers/yeahwm/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl
+, lesstif
+, libX11, libXext, libXmu, libXinerama }:
+
+stdenv.mkDerivation rec {
+
+ pname = "yeahwm";
+ version = "0.3.5";
+
+ src = fetchurl {
+ url = "http://phrat.de/${pname}_${version}.tar.gz";
+ sha256 = "01gfzjvb40n16m2ja4238nk08k4l203y6a61cydqvf68924fjb69";
+ };
+
+ buildInputs = [ lesstif libX11 libXext libXinerama libXmu ];
+
+ dontConfigure = true;
+
+ preBuild = ''
+ makeFlagsArray+=( CC="${stdenv.cc}/bin/cc" \
+ XROOT="${libX11}" \
+ INCLUDES="-I${libX11.dev}/include -I${libXext.dev}/include -I${libXinerama.dev}/include -I${libXmu.dev}/include" \
+ LDPATH="-L${libX11}/lib -L${libXext}/lib -L${libXinerama}/lib -L${libXmu}/lib" \
+ prefix="${placeholder "out"}" )
+ '';
+
+ postInstall = ''
+ gzip -9 --stdout yeahwm.1 > yeahwm.1.gz
+ install -m644 yeahwm.1.gz ${placeholder "out"}/share/man/man1/
+ '';
+
+ meta = with stdenv.lib;{
+ description = "An X window manager based on evilwm and aewm";
+ longDescription = ''
+ YeahWM is a h* window manager for X based on evilwm and aewm.
+
+ Features
+ - Sloppy Focus.
+ - BeOS-like tabbed titles, which can be repositioned.
+ - Support for Xinerama.
+ - Simple Appearance.
+ - Good keyboard control.
+ - Creative usage of the mouse.
+ - Respects aspect size hints.
+ - Solid resize and move operations.
+ - Virtual Desktops.
+ - "Magic" Screen edges for desktop switching.
+ - Snapping to other windows and screen borders when moving windows.
+ - Small binary size(ca. 23kb).
+ - Little resource usage.
+ - It's slick.
+ '';
+ homepage = "http://phrat.de/index.html";
+ license = licenses.isc;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = libX11.meta.platforms;
+ };
+}